§
    
Á³g9!  ã                   óJ   — d dl mZmZ ddlmZ ddlmZ  G d„ de¦  «        ZdS )é    )ÚListÚUnioné   )ÚCharSetProber)ÚProbingStatec                   ó8  ‡ — e Zd ZdZdZdZdˆ fd„Zdˆ fd„Zede	fd„¦   «         Z
ede	fd	„¦   «         Zdefd
„Zdefd„Zdefd„Zdefd„Zdefd„Zdefd„Zdee         ddfd„Zdee         ddfd„Zdeeef         defd„Zedefd„¦   «         Zdefd„Zˆ xZS )Ú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                 ó2  •— t          ¦   «                              ¦   «          d| _        dgdz  | _        dgdz  | _        t
          j        | _        g d¢| _        d| _	        d| _
        d| _        d| _        d| _        d| _        |                      ¦   «          d S )Nr   é   ©r   r   r   r   F)Ú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    €ú_/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_vendor/chardet/utf1632prober.pyr   zUTF1632Prober.__init__)   s’   ø€ Ý‰Œ×ÒÑÔÐØˆŒØ˜C !™GˆÔØ !˜s Q™wˆÔÝ"Ô,ˆŒØ �L�LˆŒ	Ø$ˆÔØ$ˆÔØ$ˆÔØ$ˆÔØ7<ˆÔ4Ø7<ˆÔ4Ø�
Š
‰Œˆˆˆó    c                 ó
  •— t          ¦   «                              ¦   «          d| _        dgdz  | _        dgdz  | _        t
          j        | _        d| _        d| _	        d| _
        d| _        d| _        d| _        g d¢| _        d S )Nr   r   Fr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s    €r!   r   zUTF1632Prober.reset8   s€   ø€ Ý‰Œ�Š‰ŒˆØˆŒØ˜C !™GˆÔØ !˜s Q™wˆÔÝ"Ô,ˆŒØ$ˆÔØ$ˆÔØ$ˆÔØ$ˆÔØ7<ˆÔ4Ø7<ˆÔ4Ø �L�LˆŒ	ˆ	ˆ	r"   c                 ó¶   — |                       ¦   «         rdS |                      ¦   «         rdS |                      ¦   «         rdS |                      ¦   «         rdS dS )Nzutf-32bezutf-32lezutf-16bezutf-16lezutf-16)Úis_likely_utf32beÚis_likely_utf32leÚis_likely_utf16beÚis_likely_utf16le©r   s    r!   Úcharset_namezUTF1632Prober.charset_nameF   sk   € à×!Ò!Ñ#Ô#ð 	Ø�:Ø×!Ò!Ñ#Ô#ð 	Ø�:Ø×!Ò!Ñ#Ô#ð 	Ø�:Ø×!Ò!Ñ#Ô#ð 	Ø�:àˆxr"   c                 ó   — dS )NÚ © r)   s    r!   ÚlanguagezUTF1632Prober.languageS   s   € àˆrr"   c                 ó2   — t          d| j        dz  ¦  «        S )Nç      ð?g      @©Úmaxr   r)   s    r!   Úapprox_32bit_charsz UTF1632Prober.approx_32bit_charsW   ó   € Ý�3˜œ¨Ñ+Ñ,Ô,Ð,r"   c                 ó2   — t          d| j        dz  ¦  «        S )Nr0   g       @r1   r)   s    r!   Úapprox_16bit_charsz UTF1632Prober.approx_16bit_charsZ   r4   r"   c                 ó  — |                       ¦   «         }|| j        k    ok| j        d         |z  | j        k    oR| j        d         |z  | j        k    o9| j        d         |z  | j        k    o | j        d         |z  | j        k    o| j         S ©Nr   r   é   é   )r3   ÚMIN_CHARS_FOR_DETECTIONr   ÚEXPECTED_RATIOr   r   ©r   Úapprox_charss     r!   r%   zUTF1632Prober.is_likely_utf32be]   s©   € Ø×.Ò.Ñ0Ô0ˆØ˜tÔ;Ò;ð 
ØÔ˜aÔ  <Ñ/°$Ô2EÒEð )ØÔ! !Ô$ |Ñ3°dÔ6IÒIð)àÔ! !Ô$ |Ñ3°dÔ6IÒIð)ð Ô$ QÔ'¨,Ñ6¸Ô9LÒLð)ð Ô(Ð(ð	
r"   c                 ó  — |                       ¦   «         }|| j        k    ok| j        d         |z  | j        k    oR| j        d         |z  | j        k    o9| j        d         |z  | j        k    o | j        d         |z  | j        k    o| j         S r8   )r3   r;   r   r<   r   r   r=   s     r!   r&   zUTF1632Prober.is_likely_utf32leg   s©   € Ø×.Ò.Ñ0Ô0ˆØ˜tÔ;Ò;ð 
ØÔ  Ô# lÑ2°TÔ5HÒHð )ØÔ! !Ô$ |Ñ3°dÔ6IÒIð)àÔ! !Ô$ |Ñ3°dÔ6IÒIð)ð Ô! !Ô$ |Ñ3°dÔ6IÒIð)ð Ô(Ð(ð	
r"   c                 óì   — |                       ¦   «         }|| j        k    oU| j        d         | j        d         z   |z  | j        k    o.| j        d         | j        d         z   |z  | j        k    o| j         S )Nr   r:   r   r9   )r6   r;   r   r<   r   r   r=   s     r!   r'   zUTF1632Prober.is_likely_utf16beq   ó�   € Ø×.Ò.Ñ0Ô0ˆØ˜tÔ;Ò;ð 
ØÔ! !Ô$ tÔ';¸AÔ'>Ñ>À,ÑNØÔ!ò"ð )àÔ" 1Ô%¨Ô(9¸!Ô(<Ñ<ÀÑLØÔ!ò"ð)ð Ô(Ð(ð	
r"   c                 óì   — |                       ¦   «         }|| j        k    oU| j        d         | j        d         z   |z  | j        k    o.| j        d         | j        d         z   |z  | j        k    o| j         S )Nr   r9   r   r:   )r6   r;   r   r<   r   r   r=   s     r!   r(   zUTF1632Prober.is_likely_utf16le{   rA   r"   r   c                 óH  — |d         dk    s:|d         dk    s.|d         dk    r)|d         dk    rd|d         cxk    rdk    r
n nd| _         |d         dk    s;|d         dk    s/|d         dk    r,|d         dk    r"d|d         cxk    rdk    rn d	S d| _        d	S d	S d	S d	S )
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
        r   r   é   éØ   r9   éß   Tr:   N)r   r   )r   r   s     r!   Úvalidate_utf32_charactersz'UTF1632Prober.validate_utf32_characters…   sÞ   € ð �ŒG�qŠLˆLØ�AŒw˜Š~ˆ~Ø�Q”˜1’�  a¤¨A¢ °$¸$¸q¼'Ð2IÐ2IÒ2IÐ2IÀTÒ2IÐ2IÐ2IÐ2IÐ2Ià#'ˆDÔ à�ŒG�qŠLˆLØ�AŒw˜Š~ˆ~Ø�Q”˜1’�  a¤¨A¢ °$¸$¸q¼'Ð2IÐ2IÒ2IÐ2IÀTÒ2IÐ2IÐ2IÐ2IÐ2IÐ2Ià#'ˆDÔ Ð Ð ð �  Ð2IÐ2Ir"   Úpairc                 ó²  — | j         s<d|d         cxk    rdk    rn nd| _         nCd|d         cxk    rdk    r
n n-d| _        n%d|d         cxk    rdk    rn nd| _         nd| _        | j        sAd|d         cxk    rdk    rn n	d| _        d	S d|d         cxk    rdk    rn d	S d| _        d	S d	S d|d         cxk    rdk    rn n	d| _        d	S d| _        d	S )
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
        rE   r   éÛ   TéÜ   rF   Fr   N)r   r   r   r   )r   rH   s     r!   Úvalidate_utf16_charactersz'UTF1632Prober.validate_utf16_characters›   sj  € ð Ô;ð 		,Ø�t˜A”wÐ&Ð&Ò&Ð& $Ò&Ð&Ð&Ð&Ð&Ø?C�Ô<Ð<Ø˜˜aœÐ(Ð(Ò(Ð( DÒ(Ð(Ð(Ð(Ð(Ø'+�Ô$øà�t˜A”wÐ&Ð&Ò&Ð& $Ò&Ð&Ð&Ð&Ð&Ø?D�Ô<Ð<à'+�Ô$àÔ;ð 		,Ø�t˜A”wÐ&Ð&Ò&Ð& $Ò&Ð&Ð&Ð&Ð&Ø?C�Ô<Ð<Ð<Ø˜˜aœÐ(Ð(Ò(Ð( DÒ(Ð(Ð(Ð(Ð(Ð(Ø'+�Ô$Ð$Ð$ð )Ð(ð �t˜A”wÐ&Ð&Ò&Ð& $Ò&Ð&Ð&Ð&Ð&Ø?D�Ô<Ð<Ð<à'+�Ô$Ð$Ð$r"   Úbyte_strc                 óŒ  — |D ]»}| j         dz  }|| j        |<   |dk    r^|                      | j        ¦  «         |                      | j        dd…         ¦  «         |                      | j        dd…         ¦  «         |dk    r| j        |xx         dz  cc<   n| j        |xx         dz  cc<   | xj         dz  c_         Œ¼| j        S )Nr   r:   r   r9   r   )r   r   rG   rL   r   r   Ústate)r   rM   ÚcÚmod4s       r!   ÚfeedzUTF1632Prober.feed»   sç   € Øð 	ð 	ˆAØ”= 1Ñ$ˆDØˆDŒI�d‰OØ�qŠyˆyØ×.Ò.¨t¬yÑ9Ô9Ð9Ø×.Ò.¨t¬y¸¸1¸¬~Ñ>Ô>Ð>Ø×.Ò.¨t¬y¸¸1¸¬~Ñ>Ô>Ð>Ø�AŠvˆvØÔ! $Ð'Ð'Ô'¨1Ñ,Ð'Ð'Ñ'Ð'àÔ$ TÐ*Ð*Ô*¨aÑ/Ð*Ð*Ñ*ØˆMŒM˜QÑˆMŒMˆMØŒzÐr"   c                 óè   — | j         t          j        t          j        hv r| j         S |                      ¦   «         dk    rt          j        | _         n| j        dk    rt          j        | _         | j         S )Ngš™™™™™é?i   )r   r   ÚNOT_MEÚFOUND_ITÚget_confidencer   r)   s    r!   rO   zUTF1632Prober.stateÊ   sf   € àŒ;�<Ô.µÔ0EÐFÐFÐFà”;ÐØ×ÒÑ Ô  4Ò'Ð'Ý&Ô/ˆDŒKˆKØŒ]˜XÒ%Ð%õ 'Ô-ˆDŒKØŒ{Ðr"   c                 óª   — |                       ¦   «         s<|                      ¦   «         s(|                      ¦   «         s|                      ¦   «         rdndS )Ng333333ë?g        )r(   r'   r&   r%   r)   s    r!   rV   zUTF1632Prober.get_confidence×   sh   € ð ×&Ò&Ñ(Ô(ðð ×)Ò)Ñ+Ô+ðð ×)Ò)Ñ+Ô+ð	ð
 ×)Ò)Ñ+Ô+ðˆDˆDð ð		
r"   )r   N) Ú__name__Ú
__module__Ú__qualname__Ú__doc__r;   r<   r   r   ÚpropertyÚstrr*   r.   Úfloatr3   r6   Úboolr%   r&   r'   r(   r   ÚintrG   rL   r   ÚbytesÚ	bytearrayr   rR   rO   rV   Ú__classcell__)r    s   @r!   r	   r	      s  ø€ € € € € ðð ð !Ðà€Nðð ð ð ð ð ð!ð !ð !ð !ð !ð !ð ð
˜cð 
ð 
ð 
ñ „Xð
ð ð˜#ð ð ð ñ „Xðð- Eð -ð -ð -ð -ð- Eð -ð -ð -ð -ð
 4ð 
ð 
ð 
ð 
ð
 4ð 
ð 
ð 
ð 
ð
 4ð 
ð 
ð 
ð 
ð
 4ð 
ð 
ð 
ð 
ð(¨d°3¬ið (¸Dð (ð (ð (ð (ð,,¨d°3¬ið ,¸Dð ,ð ,ð ,ð ,ð@˜U 5¨)Ð#3Ô4ð ¸ð ð ð ð ð ð
�|ð 
ð 
ð 
ñ „Xð
ð

 ð 

ð 

ð 

ð 

ð 

ð 

ð 

ð 

r"   r	   N)Útypingr   r   Úcharsetproberr   Úenumsr   r	   r-   r"   r!   ú<module>rg      s�   ðð* Ð Ð Ð Ð Ð Ð Ð à (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð ðF
ð F
ð F
ð F
ð F
�Mñ F
ô F
ð F
ð F
ð F
r"   