ó
    F\hÉ  ã                   ó8  • S r SSKrS rS rS rS rS rSrS	 rS
 r	S r
S rS rS rS r " S S\R                  5      r " S S\R                   5      r " S S\R"                  5      r " S S\\R$                  5      r " S S\\R&                  5      rS rg)uX   Codec for the Punycode encoding, as specified in RFC 3492

Written by Martin v. LÃ¶wis.
é    Nc                 óä   • [        5       n[        5       nU  H?  n[        U5      S:  a  UR                  [        U5      5        M.  UR	                  U5        MA     [        U5      n[        U5      U4$ )z 3.1 Basic code point segregationé€   )Ú	bytearrayÚsetÚordÚappendÚaddÚsortedÚbytes)ÚstrÚbaseÚextendedÚcs       Ú)/usr/lib/python3.13/encodings/punycode.pyÚ	segregater   
   s[   € ä‹;€DÜ‹u€HÛˆÜˆq‹6�C‹<Ø�K‰Kœ˜A›Öà�L‰L˜ŽOñ	 ô
 �hÓ€HÜ�‹;˜Ð Ð ó    c                 óH   • SnU  H  n[        U5      U:  d  M  US-  nM     U$ )z@Return the length of str, considering only characters below max.r   é   )r   )r   ÚmaxÚresr   s       r   Úselective_lenr      s,   € à
€CÛˆÜˆq‹6�C�<Ø�1‰HŠCñ ð €Jr   c                 óh   • [        U 5      n US-  nX4:X  a  gX   nXQ:X  a  US-   U4$ XQ:  a  US-  nM'  )a  Return a pair (index, pos), indicating the next occurrence of
char in str. index is the position of the character considering
only ordinals up to and including char, and pos is the position in
the full string. index/pos is the starting position in the full
string.r   )éÿÿÿÿr   )Úlen)r   ÚcharÚindexÚposÚlr   s         r   Úselective_findr      sN   € ô 	ˆC‹€AØ
Øˆq‰ˆØ‹8ØØ‰HˆØ‹9Ø˜‘7˜C�<ÐØ‹XØ�Q‰JˆEñ r   c                 óÜ   • Sn/ nSnU H_  nS=pg[        U5      n[        X5      n	U	S-   X‚-
  -  n
 [        XXg5      u  pgUS:X  a  O!X¦U-
  -  n
UR                  U
S-
  5        UnSn
M6  UnMa     U$ )z3.2 Insertion unsort codingr   r   r   r   )r   r   r   r   )r   r   ÚoldcharÚresultÚoldindexr   r   r   r   ÚcurlenÚdeltas              r   Úinsertion_unsortr&   0   s›   € à€GØ€FØ€HÛˆØÐˆÜ�1‹vˆÜ˜sÓ)ˆØ˜‘˜d™nÑ-ˆØÜ& s¨UÓ7‰IˆEØ˜‹{ØØ˜XÑ%Ñ%ˆEØ�M‰M˜% ™'Ô"ØˆHØˆEñ ð Šñ ð €Mr   c                 ó8   • SU S-   -  U-
  nUS:  a  gUS:”  a  gU$ )Né$   r   é   © )ÚjÚbiasr   s      r   ÚTr-   F   s+   € à
��A‘‰,˜Ñ
€CØ
ˆQƒw�qØ
ˆRƒx˜Ø€Jr   s$   abcdefghijklmnopqrstuvwxyz0123456789c                 óê   • [        5       nSn [        X15      nX:  a#  UR                  [        U    5        [	        U5      $ UR                  [        X@U-
  SU-
  -  -      5        X-
  SU-
  -  n US-  nMg  )ú(3.3 Generalized variable-length integersr   r   r(   )r   r-   r   Údigitsr   )ÚNr,   r"   r+   Úts        r   Úgenerate_generalized_integerr3   N   sx   € ä‹[€FØ	€AØ
Üˆa‹JˆØ‹5Ø�M‰Mœ& ™)Ô$Ü˜“=Ð Ø�‰”f˜Q q¡5¨R°!©VÑ"4Ñ5Ñ6Ô7Ø‰U˜˜Q™ÑˆØ	ˆQ‰ˆñ r   c                 óˆ   • U(       a  U S-  n OU S-  n X U-  -  n SnU S:”  a  U S-  n US-  nU S:”  a  M  USU -  U S-   -  -   nU$ )Ni¼  é   r   iÇ  é#   r(   é&   r*   )r%   ÚfirstÚnumcharsÚ	divisionsr,   s        r   Úadaptr;   [   si   € ÞØ�#‰‰à�!‰ˆØ	�hÑÑ€Eà€IØ
�#‹+Ø˜‘ˆØ�R‰ˆ	ð �#�+ð ˜˜U™
 u¨r¡zÑ2Ñ3€DØ€Kr   c                 ó¸   • [        5       nSn[        U5       H5  u  pE[        XS5      nUR                  U5        [	        XTS:H  X-   S-   5      nM7     [        U5      $ )z3.4 Bias adaptationéH   r   r   )r   Ú	enumerater3   Úextendr;   r   )ÚbaselenÚdeltasr"   r,   Úpointsr%   Úss          r   Úgenerate_integersrD   j   sZ   € ô ‹[€FØ€DÜ" 6Ö*‰ˆÜ(¨Ó5ˆØ�‰�aÔÜ�U A™I w¡~°aÑ'7Ó8Šñ +ô �‹=Ðr   c                 ó~   • [        U 5      u  p[        X5      n[        [        U5      U5      nU(       a  US-   U-   $ U$ )Nó   -)r   r&   rD   r   )Útextr   r   rA   s       r   Úpunycode_encoderH   u   s>   € Ü˜t“_�N€DÜ˜dÓ-€FÜ ¤ T£¨FÓ3€HÞØ�d‰{˜XÑ%Ð%Ø€Or   c           
      ór  • SnSnSn  X   nUS-  nSUs=::  a  S::  a	  O  OUS-
  nO:S	Us=::  a  S
::  a	  O  OUS-
  nO$US:X  a  [        SXS-
  USXS-
      S35      eUS4$ [        Xb5      n	XHU-  -  nX‰:  a  X4$ USU	-
  -  nUS-  nMƒ  ! [          a!    US:X  a  [        SXUS-   S5      eUS-   S4s $ f = f)r/   r   r   ÚstrictÚpunycodezincomplete punycode stringNéA   éZ   é0   é9   é   zInvalid extended code point 'Ú'r(   )Ú
IndexErrorÚUnicodeDecodeErrorr-   )
r   Úextposr,   Úerrorsr"   Úwr+   r   Údigitr2   s
             r   Údecode_generalized_numberrX      s  € à€FØ	€AØ	€AØ
ð	$ØÑ#ˆDð 	�!‰ˆØ�4Õ˜4ÖØ˜4‘K‰EØ�TÕ!˜TÖ!Ø˜2‘I‰EØ�xÓÜ$ Z°À!¹8ÀVØ'DÀXÐUVÉhÑEWÐDXÐXYÐ%Zó\ð \ð ˜4�<ÐÜˆa‹JˆØ˜!‘)ÑˆØ‹9Ø�>Ð!Ø��a‘‰LˆØ	ˆQ‰ˆñ/ øô ó 	$Ø˜Ó!Ü(¨°XÀvÈaÁxØ)EóGð Gà˜A‘:˜tÐ#Ò#ð		$ús   ‰B Â(B6Â5B6c           	      óŠ  • SnSnSnSnU[        U5      :  a«  [        XXR5      u  pxUc  U $ XHS-   -  nX4[        U 5      S-   -  -  nUS:”  a&  US:X  a  [        S	XS-
  US
US 35      e[        S5      nU[        U 5      S-   -  nU SU [	        U5      -   XS -   n [        X†S:H  [        U 5      5      nUnU[        U5      :  a  M«  U $ )z3.2 Insertion sort codingr   r   r=   r   Nr   iÿÿ rJ   rK   zInvalid character U+ÚxÚ?)r   rX   rS   r   Úchrr;   )	r   r   rU   r   r   r,   rT   Únewposr%   s	            r   Úinsertion_sortr^   ž   sý   € ð €DØ
€CØ€DØ€Fà
”3�x“=Ó
 Ü1°(Ø26ó@‰ˆà‰=ð ˆKØ�Q‰w‰ˆØœ˜D›	 A™Ñ&Ñ&ˆØ�(‹?Ø˜Ó!Ü(Ø ¨a©%°Ø*¨4°¨(Ð3ó5ð 5ô �s“8ˆDØ”S˜“Y ‘]Ñ#ˆØ�D�SˆzœC ›IÑ%¨¨T¨
Ñ2ˆÜ�U q™[¬3¨t«9Ó5ˆØˆð% ”3�x“=Õ
 ð& €Kr   c                 óX  • [        U [        5      (       a  U R                  S5      n [        U [        5      (       a  [	        U 5      n U R                  S5      nUS:X  a  SnU R                  5       nO& [        U S U SU5      nXS-   S  R                  5       n [        X4U5      $ ! [         a2  n[        SXR                  UR                  UR                  5      S eS nAff = f! [         a<  nUS-   n[        SU XeR                  -   XeR                  -   UR                  5      S eS nAff = f)NÚasciirF   r   Ú r   rK   )Ú
isinstancer   ÚencodeÚ
memoryviewr   ÚrfindÚupperrS   ÚstartÚendÚreasonr^   )rG   rU   r   r   r   ÚexcÚoffsets          r   Úpunycode_decoderl   ¼   s  € Ü�$œ×ÑØ�{‰{˜7Ó#ˆÜ�$œ
×#Ñ#Ü�T‹{ˆØ
�*‰*�TÓ
€CØ
ˆbƒyØˆØ—:‘:“<‰ð	;Ü�t˜D˜S�z 7¨FÓ3ˆDð ˜A™˜�<×%Ñ%Ó'ˆð7Ü˜d¨fÓ5Ð5øô "ó 	;Ü$ W¨d·I±I¸s¿w¹wØ%(§Z¡Zó1Ø6:ð;ûð	;ûô ó 7Ø�q‘ˆÜ  ¨TØ!'¯	©	Ñ!1°6¿'¹'±>Ø!$§¡ó-à26ð	7ûð7ús0   Á2B$ ÂC# Â$
C Â.-CÃC Ã#
D)Ã-7D$Ä$D)c                   ó(   • \ rS rSrSS jrSS jrSrg)ÚCodecéÖ   c                 ó2   • [        U5      nU[        U5      4$ ©N)rH   r   ©ÚselfÚinputrU   r   s       r   rc   ÚCodec.encodeØ   s   € Ü˜eÓ$ˆØ”C˜“JˆÐr   c                 óZ   • US;  a  [        SU 35      e[        X5      nU[        U5      4$ ©N)rJ   ÚreplaceÚignorezUnsupported error handling: )ÚUnicodeErrorrl   r   rr   s       r   ÚdecodeÚCodec.decodeÜ   s6   € ØÐ8Ó8ÜÐ!=¸f¸XÐFÓGÐGÜ˜eÓ,ˆØ”C˜“JˆÐr   r*   N)rJ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rc   r{   Ú__static_attributes__r*   r   r   rn   rn   Ö   s   † ô÷r   rn   c                   ó   • \ rS rSrSS jrSrg)ÚIncrementalEncoderéâ   c                 ó   • [        U5      $ rq   )rH   ©rs   rt   Úfinals      r   rc   ÚIncrementalEncoder.encodeã   s   € Ü˜uÓ%Ð%r   r*   N©F)r}   r~   r   r€   rc   r�   r*   r   r   rƒ   rƒ   â   s   † ÷&r   rƒ   c                   ó   • \ rS rSrSS jrSrg)ÚIncrementalDecoderéæ   c                 ó|   • U R                   S;  a  [        SU R                    35      e[        XR                   5      $ rw   )rU   rz   rl   r†   s      r   r{   ÚIncrementalDecoder.decodeç   s5   € Ø�;‰;Ð=Ó=ÜÐ!=¸d¿k¹k¸]ÐKÓLÐLÜ˜u§k¡kÓ2Ð2r   r*   Nr‰   )r}   r~   r   r€   r{   r�   r*   r   r   r‹   r‹   æ   s   † ÷3r   r‹   c                   ó   • \ rS rSrSrg)ÚStreamWriteréì   r*   N©r}   r~   r   r€   r�   r*   r   r   r�   r�   ì   ó   † Úr   r�   c                   ó   • \ rS rSrSrg)ÚStreamReaderéï   r*   Nr’   r*   r   r   r•   r•   ï   r“   r   r•   c            
      óž   • [         R                  " S[        5       R                  [        5       R                  [
        [        [        [        S9$ )NrK   )Únamerc   r{   ÚincrementalencoderÚincrementaldecoderÚstreamwriterÚstreamreader)	ÚcodecsÚ	CodecInforn   rc   r{   rƒ   r‹   r�   r•   r*   r   r   ÚgetregentryrŸ   ô   s6   € Ü×ÒØÜ‹w�~‰~Ü‹w�~‰~Ü-Ü-Ü!Ü!ñð r   )Ú__doc__r�   r   r   r   r&   r-   r0   r3   r;   rD   rH   rX   r^   rl   rn   rƒ   r‹   r�   r•   rŸ   r*   r   r   Ú<module>r¡      s³   ðñó
 ò
!òòò$ò,ð 
1€òòò	òòò>ò<7ô4
ˆF�L‰Lô 
ô&˜×2Ñ2ô &ô3˜×2Ñ2ô 3ô	�5˜×,Ñ,ô 	ô	�5˜×,Ñ,ô 	ó
	r   