Ë T… ¥i€ãóB—ddlmZmZddlmZddlmZGd„de«Zy)é)ÚListÚUnioné)Ú CharSetProber)Ú ProbingStatecó‡—eZdZdZdZdZdˆfd„ Zdˆfd„ Zede fd„«Z ede fd „«Z de fd „Z de fd „Zdefd „Zdefd „Zdefd„Zdefd„Zdeeddfd„Zdeeddfd„Zdeeefdefd„Zedefd„«Zde fd„ZˆxZS)Ú UTF1632Proberad This class simply looks for occurrences of zero bytes, and infers whether the file is UTF16 or UTF32 (low-endian or big-endian) For instance, files looking like ( [nonzero] )+ have a good probability to be UTF32BE. Files looking like ( [nonzero] )+ may be guessed to be UTF16BE, and inversely for little-endian varieties. ég®Gázî?ÚreturnNcó •—t‰|�«d|_dgdz|_dgdz|_t j |_gd¢|_d|_ d|_ d|_ d|_ d|_ d|_|j«y)Nré©rrrrF)ÚsuperÚ__init__ÚpositionÚ zeros_at_modÚnonzeros_at_modrÚ DETECTINGÚ_stateÚquadÚinvalid_utf16beÚinvalid_utf16leÚinvalid_utf32beÚinvalid_utf32leÚ'first_half_surrogate_pair_detected_16beÚ'first_half_surrogate_pair_detected_16leÚreset©ÚselfÚ __class__s €ú:/usr/lib/python3.12/site-packages/chardet/utf1632prober.pyrzUTF1632Prober.__init__)s~ø€Ü ‰ÑÔØˆŒ ؘC !™GˆÔØ !˜s Q™wˆÔÜ"×,Ñ,ˆŒ Ú ˆŒ Ø$ˆÔØ$ˆÔØ$ˆÔØ$ˆÔØ7<ˆÔ4Ø7<ˆÔ4Ø � ‰ � ócóì•—t‰|�«d|_dgdz|_dgdz|_t j |_d|_d|_ d|_ d|_ d|_ d|_ gd¢|_y)Nrr Fr)rrrrrrrrrrrrrrrrs €r!rzUTF1632Prober.reset8ssø€Ü ‰‰ ŒØˆŒ ؘC !™GˆÔØ !˜s Q™wˆÔÜ"×,Ñ,ˆŒ Ø$ˆÔØ$ˆÔØ$ˆÔØ$ˆÔØ7<ˆÔ4Ø7<ˆÔ4Ú ˆ� r"cóŒ—|j«ry|j«ry|j«ry|j«ryy)Nzutf-32bezutf-32lezutf-16bezutf-16lezutf-16)Úis_likely_utf32beÚis_likely_utf32leÚis_likely_utf16beÚis_likely_utf16le©rs r!Ú charset_namezUTF1632Prober.charset_nameFsA€à × !Ñ !Ô #ØØ × !Ñ !Ô #ØØ × !Ñ !Ô #ØØ × !Ñ !Ô #Øàr"có—y)NÚ©r)s r!ÚlanguagezUTF1632Prober.languageSs€àr"có4—td|jdz «S)Nçð?g@©Úmaxrr)s r!Úapprox_32bit_charsz UTF1632Prober.approx_32bit_charsWó€Ü�3˜Ÿ ™ ¨Ñ+Ó,Ð,r"có4—td|jdz «S)Nr0g@r1r)s r!Úapprox_16bit_charsz UTF1632Prober.approx_16bit_charsZr4r"cóf—|j«}||jk\xr‘|jd|z |jkDxrp|jd|z |jkDxrO|jd|z |jkDxr.|jd|z |jkDxr |j S©Nrréé)r3ÚMIN_CHARS_FOR_DETECTIONrÚEXPECTED_RATIOrr©rÚ approx_charss r!r%zUTF1632Prober.is_likely_utf32be]sÄ€Ø×.Ñ.Ó0ˆ ؘt×;Ñ;Ñ;ò Ø × Ñ ˜aÑ  <Ñ /°$×2EÑ2EÑ Eò )Ø×!Ñ! !Ñ$ |Ñ3°d×6IÑ6IÑIò )à×!Ñ! !Ñ$ |Ñ3°d×6IÑ6IÑIò )ð×$Ñ$ QÑ'¨,Ñ6¸×9LÑ9LÑLò )ð×(Ñ(Ð(ð  r"cóf—|j«}||jk\xr‘|jd|z |jkDxrp|jd|z |jkDxrO|jd|z |jkDxr.|jd|z |jkDxr |j Sr8)r3r;rr<rrr=s r!r&zUTF1632Prober.is_likely_utf32legsÄ€Ø×.Ñ.Ó0ˆ ؘt×;Ñ;Ñ;ò Ø × Ñ  Ñ # lÑ 2°T×5HÑ5HÑ Hò )Ø×!Ñ! !Ñ$ |Ñ3°d×6IÑ6IÑIò )à×!Ñ! !Ñ$ |Ñ3°d×6IÑ6IÑIò )ð×!Ñ! !Ñ$ |Ñ3°d×6IÑ6IÑIò )ð×(Ñ(Ð(ð  r"có"—|j«}||jk\xro|jd|jdz|z |jkDxr>|jd|jdz|z |jkDxr |j S)Nrr:rr9)r6r;rr<rrr=s r!r'zUTF1632Prober.is_likely_utf16beq󢀨×.Ñ.Ó0ˆ ؘt×;Ñ;Ñ;ò Ø × !Ñ ! !Ñ $ t×';Ñ';¸AÑ'>Ñ >À,Ñ NØ×!Ñ!ñ "ò )à×"Ñ" 1Ñ%¨×(9Ñ(9¸!Ñ(<Ñ<À ÑLØ×!Ñ!ñ"ò )ð×(Ñ(Ð(ð  r"có"—|j«}||jk\xro|jd|jdz|z |jkDxr>|jd|jdz|z |jkDxr |j S)Nrr9rr:)r6r;rr<rrr=s r!r(zUTF1632Prober.is_likely_utf16le{rAr"rcóê—|ddk7s)|ddkDs!|ddk(r |ddk(rd|dcxkrdkr nnd|_|ddk7s)|ddkDs!|ddk(r#|ddk(rd|dcxkrdkr ny d|_y y y y ) zÖ Validate if the quad of bytes is valid UTF-32. UTF-32 is valid in the range 0x00000000 - 0x0010FFFF excluding 0x0000D800 - 0x0000DFFF https://en.wikipedia.org/wiki/UTF-32 rrééØr9éßTr:N)rr)rrs r!Úvalidate_utf32_charactersz'UTF1632Prober.validate_utf32_characters…s”€ð �‰G�qŠLØ�A‰w˜Š~Ø�Q‘˜1’   a¡¨A¢°$¸$¸q¹'Ô2IÀTÕ2Ià#'ˆDÔ à �‰G�qŠLØ�A‰w˜Š~Ø�Q‘˜1’   a¡¨A¢°$¸$¸q¹'Ô2IÀTÕ2Ià#'ˆDÕ ð3J � r"Úpaircóz—|js2d|dcxkrdkr nnd|_n9d|dcxkrdkr+nn(d|_n d|dcxkrdkr nnd|_nd|_|js3d|dcxkrdkr nnd|_y d|dcxkrdkr ny d|_y y d|dcxkr dkr d|_y d|_y ) a9 Validate if the pair of bytes is valid UTF-16. UTF-16 is valid in the range 0x0000 - 0xFFFF excluding 0xD800 - 0xFFFF with an exception for surrogate pairs, which must be in the range 0xD800-0xDBFF followed by 0xDC00-0xDFFF https://en.wikipedia.org/wiki/UTF-16 rEréÛTéÜrFFrN)rrrr)rrHs r!Úvalidate_utf16_charactersz'UTF1632Prober.validate_utf16_characters›sÊ€ð×;Ò;Ø�t˜A‘wÔ& $Õ&Ø?C�Õ<ؘ˜a™Ô( DÕ(Ø'+�Õ$à�t˜A‘wÔ& $Õ&Ø?D�Õ<à'+�Ô$à×;Ò;Ø�t˜A‘wÔ& $Õ&Ø?C�Õ<ؘ˜a™Ô( DÕ(Ø'+�Õ$ð)ð�t˜A‘wÔ& $Ò&Ø?D�Õ<ð'ð(,�Õ$r"Úbyte_strcó®—|D]Å}|jdz}||j|<|dk(rW|j|j«|j|jdd«|j|jdd«|dk(r|j|xxdz cc<n|j |xxdz cc<|xjdz c_ŒÇ|j S)Nr r:rr9r)rrrGrLrrÚstate)rrMÚcÚmod4s r!ÚfeedzUTF1632Prober.feed»s½€ÛˆAØ—=‘= 1Ñ$ˆD؈D�I‰I�d‰OØ�qŠyØ×.Ñ.¨t¯y©yÔ9Ø×.Ñ.¨t¯y©y¸¸1¨~Ô>Ø×.Ñ.¨t¯y©y¸¸1¨~Ô>Ø�AŠvØ×!Ñ! $Ó'¨1Ñ,Ô'à×$Ñ$ TÓ*¨aÑ/Ó*Ø �MŠM˜QÑ ŽMðð�z‰zÐr"có:—|jtjtjhvr |jS|j «dkDr!tj|_|jS|j dkDrtj|_|jS)Ngš™™™™™é?i)rrÚNOT_MEÚFOUND_ITÚget_confidencerr)s r!rOzUTF1632Prober.stateÊsz€à �;‰;œ<×.Ñ.´ ×0EÑ0EÐFÑ Fà—;‘;Ð Ø × Ñ Ó  4Ò 'Ü&×/Ñ/ˆDŒKð �{‰{Ðð �]‰]˜XÒ %ô'×-Ñ-ˆDŒKØ�{‰{Ðr"cóŠ—|j«s0|j«s |j«s|j«rdSdS)Ng333333ë?g)r(r'r&r%r)s r!rVzUTF1632Prober.get_confidence×sH€ð×&Ñ&Ô(Ø×)Ñ)Ô+Ø×)Ñ)Ô+Ø×)Ñ)Ô+ð ð ðð r")r N) Ú__name__Ú __module__Ú __qualname__Ú__doc__r;r<rrÚpropertyÚstrr*r.Úfloatr3r6Úboolr%r&r'r(rÚintrGrLrÚbytesÚ bytearrayrrRrOrVÚ __classcell__)r s@r!r r sø„ñð!Ðà€Nõ õ !ðð ˜cò óð ðð˜#òóðð- Eó-ð- Eó-ð  4ó ð  4ó ð  4ó ð  4ó ð(¨d°3©ið(¸Dó(ð,,¨d°3©ið,¸Dó,ð@ ˜U 5¨)Ð#3Ñ4ð ¸ó ðð �|ò óð ð   ÷  r"r N)ÚtypingrrÚ charsetproberrÚenumsrr r-r"r!Úrgsð÷*å(ÝôF �MõF r"