§
    |Øjë_  ã                   óB  — d Z ddlZddlmZmZmZ ddlmZ ddlm	Z	m
Z
mZmZmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZmZ ddlmZ ddlm Z  ddl!m"Z"m#Z#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z-  ede
dd¬¦  «        Z.dZ/dZ0de1de2e1         de1de3e         fd„Z4de5de5de3e         de2e1         d e1de3e         fd!„Z6d"Z7d#Z8d$Z9d%Z:d&Z;de5d'e<e,d(f         d)ede<e,d(f         fd*„Z=d+d,œde5d-e3e<e1e>f                  d'e<e,d(f         d)ed.e?de3e         fd/„Z@d0edefd1„ZAefddd2d3d+d+d4œde5d5ed6eBd7e2e1         dz  d8e2e1         dz  d e1d9e1d.e?d:e?de3e         fd;„ZCefddd2d3d+d+d4œde5d5ed6eBd7e2e1         dz  d8e2e1         dz  d e1d9e1d.e?d:e?de3e         fd<„ZDdS )=uç   Pipeline orchestrator â€” runs all detection stages in sequence.

Note: ``from __future__ import annotations`` is intentionally omitted because
this module is compiled with mypyc, which does not support PEP 563 string
annotations.
é    N)ÚDEFAULT_MAX_BYTESÚEVIDENCE_CAP_BYTESÚdecodes_without_error)ÚEncodingEra)Ú_NONE_RESULTÚDETERMINISTIC_CONFIDENCEÚ
HIGH_BYTESÚDetectionResultÚPipelineContext)Údetect_ascii)Ú	is_binary)Ú
detect_bom)Údetect_escape_encoding)Úfill_languages)Údetect_magic)Údetect_markup_charsetÚpromote_markup_superset)Úpostprocess_results)Úscore_candidates)Úcompute_lead_byte_diversityÚcompute_multibyte_byte_coverageÚcompute_structural_score)Ú	scan_utf8)Údetect_utf1632_patterns)Úfilter_by_validity)ÚEncodingInfoÚget_candidatesúapplication/octet-stream)ÚencodingÚ
confidenceÚlanguageÚ	mime_typeg333333ë?i @  r   ÚallowedÚ
param_nameÚreturnc                 ó„   — | |vr*t          j        |› d| ›d�t          d¬¦  «         t          gS t	          | dd¬¦  «        gS )zÞReturn a low-confidence result for *encoding*, or ``encoding=None`` if filtered out.

    ``stacklevel=5`` targets the public caller:
    detect() -> run_pipeline() -> _run_pipeline_core() -> _make_fallback_or_none().
    ú zL is excluded by include_encodings/exclude_encodings; returning encoding=Noneé   )Ú
stacklevelgš™™™™™¹?N)r   r    r!   )ÚwarningsÚwarnÚUserWarningr   r
   )r   r#   r$   s      ú’/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/chardet/pipeline/orchestrator.pyÚ_make_fallback_or_noner.   8   ss   € ð �wÐÐÝŒØð Lð L˜Hð Lð Lð LåØð		
ñ 	
ô 	
ð 	
õ ˆ~ÐÝ X¸$ÈÐNÑNÔNÐOÐOó    ÚdataÚevidenceÚresultsÚno_match_encodingc                 óò   — t          | ¦  «        t          |¦  «        k    r|S t          |¦  «        D ]5\  }}|j        �)t          | |j        ¦  «        r|dk    r|n	||d…         c S Œ6t	          ||d¦  «        S )aI  Keep the validity contract for the part of the window past the evidence cap.

    Byte-validity filtering converges on the first ``EVIDENCE_CAP_BYTES``
    of the window (ADR-0006), so on a longer window a candidate that
    cannot decode the rest can still reach the top.  What callers rely on
    is that the answer decodes the window chardet examined: they pass
    ``max_bytes`` precisely to say how much of the input the verdict is
    about.  So walk the corrected ranking and drop every entry ahead of
    the first one that decodes the whole window, under the same tolerant
    judgment the validity filter passes on the evidence slice.  Those
    entries are what validity would have removed had it seen the bytes;
    the survivors keep their own ranks and confidences, since nothing
    about the evidence they were scored on has changed.

    The walk is bounded by the ranking's length, each step is one C-speed
    decode that stops at the first bad byte, and it costs nothing at all
    when the window fits inside the cap, which every default call does.
    Entries below the first decodable one are not re-examined, so a
    ``detect_all`` ranking on a long window is exact down to its winner
    and unverified past it.  When no listed entry decodes, the answer is
    the no-match fallback, as it is when validity leaves nothing.
    Nr   r3   )ÚlenÚ	enumerater   r   r.   )r0   r1   r2   r#   r3   ÚiÚrs          r-   Ú_hold_validity_past_capr9   M   sŠ   € õ: ˆ4�y„y•C˜‘M”MÒ!Ð!ØˆÝ˜'Ñ"Ô"ð 6ð 6‰ˆˆ1ØŒ:Ð!Õ&;¸DÀ!Ä*Ñ&MÔ&MÐ!Ø 1šf˜f�7�7¨'°!°"°"¬+Ð5Ð5Ð5øÝ!Ð"3°WÐ>QÑRÔRÐRr/   gš™™™™™©?é   gffffffÖ?é   é   Úvalid_candidates.Úctxc                 ó,  — g }|D �] }|j         rát          | ||¦  «        }||j        |j        <   |t          k     rŒ6|j        €=t          | ¦  «        t          |                      dt          ¦  «        ¦  «        z
  |_        |j        t          k     rŒ‹t          | |||j        ¬¦  «        }||j        |j        <   |t          k     rŒ¾|j        t          k    rt          | ||¦  «        }|t          k     rŒë|                     |¦  «         �Œt#          |¦  «        S )aÇ  Eliminate CJK multi-byte candidates that lack genuine multi-byte structure.

    Four checks are applied in order to each multi-byte candidate:

    1. **Structural pair ratio** (valid_pairs / lead_bytes) must be
       >= ``_CJK_MIN_MB_RATIO``.  Catches files with many orphan lead bytes.

    2. **Minimum non-ASCII byte count**: the data must contain at least
       ``_CJK_MIN_NON_ASCII`` bytes > 0x7F.  Tiny files with 1-5 high bytes
       can accidentally form perfect pairs and score 1.0 structurally.

    3. **Byte coverage** (non-ASCII bytes in valid multi-byte sequences /
       total non-ASCII bytes) must be >= ``_CJK_MIN_BYTE_COVERAGE``.  Latin
       text has many high bytes that are NOT consumed by multi-byte pairs;
       genuine CJK text has nearly all high bytes accounted for.

    4. **Lead byte diversity**: the number of distinct lead byte values in
       valid pairs must be >= ``_CJK_MIN_LEAD_DIVERSITY``.  Genuine CJK text
       draws from a wide repertoire of lead bytes; European false positives
       cluster in a narrow band (e.g. 0xC0-0xDF for accented Latin).

    Returns the filtered candidate list.  Structural scores are cached in
    ``ctx.mb_scores`` for reuse in Stage 2b.
    N)Únon_ascii_count)Úis_multibyte_cjkr   Ú	mb_scoresÚnameÚ_CJK_MIN_MB_RATIOr@   r5   Ú	translater	   Ú_CJK_MIN_NON_ASCIIr   Úmb_coverageÚ_CJK_MIN_BYTE_COVERAGEÚ_CJK_DIVERSITY_MIN_NON_ASCIIr   Ú_CJK_MIN_LEAD_DIVERSITYÚappendÚtuple)r0   r=   r>   ÚgatedÚencÚmb_scoreÚbyte_coverageÚlead_diversitys           r-   Ú_gate_cjk_candidatesrR   �   s$  € ð: !#€EØð ñ ˆØÔð 	Ý/°°c¸3Ñ?Ô?ˆHØ&.ˆCŒM˜#œ(Ñ#ØÕ+Ò+Ð+ØØÔ"Ð*Ý&)¨$¡i¤iµ#°d·n²nÀTÍ:Ñ6VÔ6VÑ2WÔ2WÑ&W�Ô#ØÔ"Õ%7Ò7Ð7ØÝ;Ø�c˜3°Ô0Cðñ ô ˆMð )6ˆCŒO˜CœHÑ%ØÕ5Ò5Ð5ØØÔ"Õ&BÒBÐBÝ!<¸TÀ3ÈÑ!LÔ!L�Ø!Õ$;Ò;Ð;ØØ�Š�SÑÔÐÑÝ�‰<Œ<Ðr/   F©Úfull_rankingÚstructural_scoresrT   c          	      ó0  ‡— d„ |D ¦   «         Št          ˆfd„|D ¦   «         ¦  «        }t          d„ |D ¦   «         ¦  «        }t          t          | dt          …         g |¢|¢R |¬¦  «        ¦  «        }g }|D ]†}	|	j        r |j                             |	j        d¦  «        nd}
|
dk    r@|                     t          |	j        |	j	        d|
z   z  |	j
        |	j        ¦  «        ¦  «         Œq|                     |	¦  «         Œ‡|                     d	„ d
¬¦  «         |S )a‘  Score structurally-valid CJK candidates using statistical bigrams.

    When multiple CJK encodings score equally high structurally, statistical
    scoring differentiates them (e.g. euc-jp vs big5 for Japanese data).
    Single-byte candidates are also scored and included so that the caller
    can compare CJK vs single-byte confidence.

    Multi-byte candidates with high byte coverage (>= 0.95) receive a
    confidence boost proportional to coverage.  When nearly all non-ASCII
    bytes form valid multi-byte pairs, the structural evidence is strong
    and should increase the candidate's ranking relative to single-byte
    alternatives whose bigram models may score higher on small samples.

    Note: boosted confidence values may exceed 1.0 and are used only for
    relative ranking among candidates.  ``run_pipeline`` clamps all
    confidence values to [0.0, 1.0] before returning to callers.
    c                 ó,   — i | ]}|j         ¯	|j        |“ŒS © )rA   rC   ©Ú.0Úes     r-   ú
<dictcomp>z0_score_structural_candidates.<locals>.<dictcomp>ß   s4   € ð +ð +ð +Ø¨qÔ/Að+Ø	Œ�ð+ð +ð +r/   c              3   ó6   •K  — | ]\  }}|‰v ¯	‰|         V — Œd S ©NrX   )rZ   rC   Ú_scÚ
enc_lookups      €r-   ú	<genexpr>z/_score_structural_candidates.<locals>.<genexpr>â   s?   øè è € ð ð Ù&˜T 3¸tÀzÐ?QÐ?Qˆ
�4ÔÐ?QÐ?QÐ?QÐ?Qðð r/   c              3   ó(   K  — | ]}|j         °	|V — Œd S r^   )rA   rY   s     r-   ra   z/_score_structural_candidates.<locals>.<genexpr>å   s*   è è € ÐNÐN˜a¸1Ô;MÐN˜ÐNÐNÐNÐNÐNÐNr/   NrS   ç        gffffffî?é   c                 ó   — | j         S r^   )r    ©Úxs    r-   ú<lambda>z._score_structural_candidates.<locals>.<lambda>ú   s   € ˜qœ|€ r/   T©ÚkeyÚreverse)rL   Úlistr   Ú_STAT_SCORE_MAX_BYTESr   rG   ÚgetrK   r
   r    r!   r"   Úsort)r0   rU   r=   r>   rT   Úvalid_mbÚsingle_byter2   Úboostedr8   Úcoverager`   s              @r-   Ú_score_structural_candidatesrt   Æ   sx  ø€ ð2+ð +Ø+ð+ñ +ô +€Jõ ð ð ð ð Ø*;ðñ ô ñ ô €Hõ ÐNÐNÐ#3ÐNÑNÔNÑNÔN€KÝÝØÐ'Õ'Ð'Ô(Ø%ˆhÐ%˜Ð%Ð%Ø%ð	
ñ 	
ô 	
ñô €Gð &(€GØð 	ð 	ˆØ;<¼:ÐN�3”?×&Ò& q¤z°3Ñ7Ô7Ð7È3ˆØ�tÒÐØ�NŠNÝØ”J ¤°°H±Ñ =¸q¼zÈ1Ì;ñô ñô ð ð ð �NŠN˜1ÑÔÐÐØ‡L‚LÐ+Ð+°T€LÑ:Ô:Ð:Ø€Nr/   Úresultc                 ól   — | j         �| S | j        �dnd}t          | j        | j        | j        |¦  «        S )zXDefault ``mime_type`` to ``text/plain`` (text) or ``application/octet-stream`` (binary).Nz
text/plainr   )r"   r   r
   r    r!   )ru   Úmimes     r-   Ú_with_default_mimerx   þ   s=   € àÔÐ#ØˆØ!œ?Ð6ˆ<ˆ<Ð<V€DÝ˜6œ?¨FÔ,=¸v¼ÐPTÑUÔUÐUr/   Úcp1252úutf-8)Úinclude_encodingsÚexclude_encodingsr3   Úempty_input_encodingrT   Úinput_truncatedÚencoding_eraÚ	max_bytesr{   r|   r}   r~   c                óp  — t          ¦   «         }	|pt          | ¦  «        |k    }| d|…         } t          |||¦  «        }
t          d„ |
D ¦   «         ¦  «        }| st	          ||d¦  «        S t          | |¬¦  «        }|�|j        |v r|gS t          | ¦  «        }|�(|j        �!|j        |v rt          | |j        ¦  «        r|gS t          | ¦  «        }|�|j        �|j        |v r|gS t          | ¦  «        }|�|gS t          | ¦  «        \  }}t          | ¦  «        }|€|€t          | |¬¦  «        rt          gS t          | ¦  «        }|�_|j        |v rV|�@|j        |j        k    r0|j        |v r't!          |j        |j        |j        |j        ¦  «        gS t)          | ||¦  «        }|gS |�|j        |v r|gS |�|j        |v r|gS | dt*          …         }|pt          | ¦  «        t          |¦  «        k    }t-          ||
¦  «        }|s9t          | ¦  «        t          |¦  «        k    rt/          d„ |D ¦   «         ¦  «        }|st	          ||d¦  «        S t1          |||	¦  «        }|st	          ||d¦  «        S g }|D ]]}|j        rT|	j                             |j        ¦  «        }|€t;          |||	¦  «        }|dk    r|                     |j        |f¦  «         Œ^|ri|                     d	„ d
¬¦  «         |d         \  }}|t@          k    r;tC          ||||	|¬¦  «        }|r%tE          |||¬¦  «        }tG          | ||||¦  «        S |dtH          …         }tK          tM          |t/          |¦  «        |¬¦  «        ¦  «        }|st	          ||d¦  «        S tE          |||¬¦  «        }tG          | ||||¦  «        S )zBCore pipeline logic. Returns list of results sorted by confidence.Nc              3   ó$   K  — | ]}|j         V — Œd S r^   ©rC   )rZ   rN   s     r-   ra   z%_run_pipeline_core.<locals>.<genexpr>  s$   è è € Ð'GÐ'G°S¨¬Ð'GÐ'GÐ'GÐ'GÐ'GÐ'Gr/   r}   )r~   )r€   c              3   ó0   K  — | ]}|j         d k    ¯|V — ŒdS )rz   Nrƒ   rY   s     r-   ra   z%_run_pipeline_core.<locals>.<genexpr>›  s.   è è € Ð RÐ R qÀÄÈ'Ò@QÐ@Q Ð@QÐ@QÐ@QÐ@QÐ RÐ Rr/   r3   rc   c                 ó   — | d         S )Nrd   rX   rf   s    r-   rh   z$_run_pipeline_core.<locals>.<lambda>µ  s
   € ¨Q¨q¬T€ r/   Tri   r   rS   )'r   r5   r   Ú	frozensetr.   r   r   r   r   r   r   r   r   r   Ú_BINARY_RESULTr   r
   r    r!   r"   r   r   r   rL   rR   rA   rB   rn   rC   r   rK   ro   Ú _STRUCTURAL_CONFIDENCE_THRESHOLDrt   r   r9   rm   rl   r   )r0   r   r€   r{   r|   r3   r}   rT   r~   r>   Ú
candidatesr#   Ú
bom_resultÚutf1632_resultÚescape_resultÚmagic_resultÚ
utf8_validÚutf8_precheckÚascii_precheckÚmarkup_resultr1   Úevidence_truncatedr=   rU   rN   ÚscoreÚ_Ú
best_scorer2   Ú	stat_datas                                 r-   Ú_run_pipeline_corer—     sç  € õ Ñ
Ô
€CØ%Ð>­¨T©¬°YÒ)>€OØ�
��
Ô€Dõ
   Ð.?ÐARÑSÔS€JÝ'Ð'GÐ'G¸JÐ'GÑ'GÔ'GÑGÔG€Gàð 
Ý%Ø  'Ð+Añ
ô 
ð 	
õ ˜D°/ÐBÑBÔB€JØÐ *Ô"5¸Ð"@Ð"@Øˆ|Ðõ
 -¨TÑ2Ô2€Nð
 	Ð"ØÔ#Ð/ØÔ# wÐ.Ð.Ý! $¨Ô(?Ñ@Ô@ð /ð ÐÐõ
 +¨4Ñ0Ô0€MàÐ!ØÔ"Ð.ØÔ" gÐ-Ð-àˆÐõ   Ñ%Ô%€LØÐØˆ~Ðõ !*¨$¡¤Ñ€J�õ " $Ñ'Ô'€Nð
 	ÐØÐ"Ý�d iÐ0Ñ0Ô0ð #õ ÐÐõ
 *¨$Ñ/Ô/€MØÐ  ]Ô%;¸wÐ%FÐ%Fð Ð%ØÔ&¨-Ô*@Ò@Ð@ØÔ&¨'Ð1Ð1õ  Ø!Ô*Ø!Ô,Ø!Ô*Ø!Ô+ñ	ô ðð õ 0°°mÀWÑMÔMˆØˆÐð Ð! nÔ&=ÀÐ&HÐ&HØÐÐð Ð  ]Ô%;¸wÐ%FÐ%FØˆÐð Ð'Õ'Ð'Ô(€HØ(ÐE­C°©I¬I½¸H¹¼Ò,EÐõ *¨(°JÑ?Ô?Ðð ð S�#˜d™)œ)¥c¨(¡m¤mÒ3Ð3Ý Ð RÐ RÐ,<Ð RÑ RÔ RÑRÔRÐàð WÝ%Ð&7¸ÐBUÑVÔVÐVõ ,¨HÐ6FÈÑLÔLÐàð WÝ%Ð&7¸ÐBUÑVÔVÐVð 24ÐØð <ð <ˆØÔð 	<Ø”M×%Ò% c¤hÑ/Ô/ˆEØˆ}Ý0°¸3ÀÑDÔD�Ø�sŠ{ˆ{Ø!×(Ò(¨#¬(°EÐ):Ñ;Ô;Ð;øð ð Ø×Ò > >¸4ÐÑ@Ô@Ð@Ø)¨!Ô,‰ˆˆ:ØÕ9Ò9Ð9Ý2ØØ!Ø ØØ)ðñ ô ˆGð ð Ý-Ø˜gÐ7Iðñ ô �õ /Ø˜( G¨WÐ6Gñô ð ð Ð/Õ/Ð/Ô0€IÝÝ˜¥EÐ*:Ñ$;Ô$;È,ÐWÑWÔWñô €Gð ð WÝ%Ð&7¸ÐBUÑVÔVÐVõ " (¨GÐEWÐXÑXÔX€GÝ" 4¨°7¸GÐEVÑWÔWÐWr/   c                óÐ   — t          | ||||||||¬¦	  «	        }	t          | d|…         |	¦  «        }	d„ |	D ¦   «         }	d„ |	D ¦   «         }	|	sd}
t          |
¦  «        ‚d„ |	D ¦   «         S )aË  Run the full detection pipeline.

    :param data: The raw byte data to analyze.
    :param encoding_era: Filter candidates to a specific era of encodings.
    :param max_bytes: Maximum number of bytes to process.
    :param include_encodings: If not ``None``, only return these encodings.
    :param exclude_encodings: If not ``None``, never return these encodings.
    :param no_match_encoding: Encoding returned when no candidate survives.
    :param empty_input_encoding: Encoding returned for empty input.
    :param full_ranking: When ``True``, statistical scoring evaluates every
        candidate so the returned list is complete (``detect_all`` needs
        this).  When ``False``, candidates that provably cannot affect the
        top of the ranking may be omitted from the tail.
    :param input_truncated: Pass ``True`` when *data* is already a truncated
        view of the caller's input (``UniversalDetector`` caps its buffer at
        ``max_bytes``, which this function cannot see from ``len(data)``
        alone).  Truncation by the ``max_bytes`` slice here is detected
        either way; the flag only ever widens it.
    :returns: A list of :class:`DetectionResult` sorted by confidence descending.
    )r~   r{   r|   r3   r}   rT   Nc                 ój   — g | ]0}|j         d k    r!t          |j        |j        d|j        ¦  «        n|‘Œ1S )ÚzxxN)r!   r
   r   r    r"   ©rZ   r8   s     r-   ú
<listcomp>z run_pipeline.<locals>.<listcomp>	  sS   € ð ð ð ð ð Œ:˜ÒÐõ 	˜œ
 A¤L°$¸¼ÑDÔDÐDàðð ð r/   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rX   )rx   r›   s     r-   rœ   z run_pipeline.<locals>.<listcomp>  s!   € Ð6Ð6Ð6¨Õ! !Ñ$Ô$Ð6Ð6Ð6r/   z/pipeline must always return at least one resultc           	      ó�   — g | ]C}|j         d k    r4t          |j        t          |j         d ¦  «        |j        |j        ¦  «        n|‘ŒDS )g      ð?)r    r
   r   Úminr!   r"   r›   s     r-   rœ   z run_pipeline.<locals>.<listcomp>  s_   € ð ð ð ð ð Œ<˜#ÒÐõ 	˜œ
¥C¨¬°cÑ$:Ô$:¸A¼JÈÌÑTÔTÐTàðð ð r/   )r—   r   ÚRuntimeError)r0   r   r€   r{   r|   r3   r}   rT   r~   r2   Úmsgs              r-   Úrun_pipeliner¢   ×  sÁ   € õ@ !ØØØØ'Ø+Ø+Ø+Ø1Ø!ð
ñ 
ô 
€Gõ ˜T * 9 *Ô-¨wÑ7Ô7€Gðð ð ð	ñ ô €Gð 7Ð6¨gÐ6Ñ6Ô6€GØð  Ø?ˆÝ˜3ÑÔÐðð ð ð	ñ ô ð r/   )EÚ__doc__r*   Úchardet._utilsr   r   r   Úchardet.enumsr   Úchardet.pipeliner   r   r	   r
   r   Úchardet.pipeline.asciir   Úchardet.pipeline.binaryr   Úchardet.pipeline.bomr   Úchardet.pipeline.escaper   Úchardet.pipeline.languager   Úchardet.pipeline.magicr   Úchardet.pipeline.markupr   r   Úchardet.pipeline.postprocessr   Úchardet.pipeline.statisticalr   Úchardet.pipeline.structuralr   r   r   Úchardet.pipeline.utf8r   Úchardet.pipeline.utf1632r   Úchardet.pipeline.validityr   Úchardet.registryr   r   r‡   rˆ   rm   Ústrr†   rl   r.   Úbytesr9   rD   rF   rH   rJ   rI   rL   rR   ÚfloatÚboolrt   rx   Úintr—   r¢   rX   r/   r-   ú<module>rº      sX  ððð ð €€€à WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WØ %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ø -Ð -Ð -Ð -Ð -Ð -Ø +Ð +Ð +Ð +Ð +Ð +Ø :Ð :Ð :Ð :Ð :Ð :Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø /Ð /Ð /Ð /Ð /Ð /Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ <Ð <Ð <Ð <Ð <Ð <Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð
 ,Ð +Ð +Ð +Ð +Ð +Ø <Ð <Ð <Ð <Ð <Ð <Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9à �ØØ'ØØ(ð	ñ ô €ð $(Ð  ð Ð ðPØðPà�sŒ^ðPð ðPð 
ˆ/Ôð	Pð Pð Pð Pð*"SØ
ð"Sàð"Sð �/Ô"ð"Sð �sŒ^ð	"Sð
 ð"Sð 
ˆ/Ôð"Sð "Sð "Sð "SðR Ð ð Ð ð Ð ð Ð ð  "Ð ð3Ø
ð3à˜L¨#Ð-Ô.ð3ð 
ð3ð ˆ<˜ÐÔð	3ð 3ð 3ð 3ðx ð5ð 5ð 5Ø
ð5à˜E # u *Ô-Ô.ð5ð ˜L¨#Ð-Ô.ð5ð 
ð	5ð ð5ð 
ˆ/Ôð5ð 5ð 5ð 5ðpV˜ð V°?ð Vð Vð Vð Vð 'ðNXð
 04Ø/3Ø%Ø 'ØØ!ðNXð NXð NXØ
ðNXàðNXð ðNXð
 ! ”~¨Ñ,ðNXð ! ”~¨Ñ,ðNXð ðNXð ðNXð ðNXð ðNXð 
ˆ/ÔðNXð NXð NXð NXðh 'ðDð
 04Ø/3Ø%Ø 'ØØ!ðDð Dð DØ
ðDàðDð ðDð
 ! ”~¨Ñ,ðDð ! ”~¨Ñ,ðDð ðDð ðDð ðDð ðDð 
ˆ/ÔðDð Dð Dð Dð Dð Dr/   