
    : j>4                        S SK r S SKrS SKrS SKrS SKJrJr  SSKJr  SSK	J
r
  SrSr\R                  " S5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      rS\S\4S jrS\S\S\4S jrS\S\4S jrS\S\4S jrS\\\4   S\4S jrS\\\4   S\S\4S jrS1S\S\S\4S jjrS\S\4S jrS\S\4S  jr S\SS4S! jr!S\S"\S\4S# jr"S1S\S"\S$\S\4S% jjr#S\\\\$4   SS4S& jr%S\S\4S' jr&S\\\\$4   S\4S( jr'S2S)\S*\S+\S\4S, jjr(    S3S\\\\$4   S-\S.\S*\S+\S\4S/ jjr)   S4S\\\\$4   S-\S.\S*\S\4
S0 jjr*g)5    N)OptionalUnion   )idnadata)intranges_contain	   s   xn--u   [.。．｡]c                       \ rS rSrSrSrg)	IDNAError   z5Base exception for all IDNA-encoding related problems N__name__
__module____qualname____firstlineno____doc____static_attributes__r       Z/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/idna/core.pyr
   r
      s    ?r   r
   c                       \ rS rSrSrSrg)IDNABidiError   z;Exception when bidirectional requirements are not satisfiedr   Nr   r   r   r   r   r      s    Er   r   c                       \ rS rSrSrSrg)InvalidCodepoint   z<Exception when a disallowed or unallocated codepoint is usedr   Nr   r   r   r   r   r      s    Fr   r   c                       \ rS rSrSrSrg)InvalidCodepointContext!   zCException when the codepoint is not valid in the context it is usedr   Nr   r   r   r   r   r   !   s    Mr   r   cpreturnc                     [         R                  " [        U 5      5      nUS:X  a/  [         R                  " [        U 5      5      (       d  [	        S5      eU$ )Nr   z Unknown character in unicodedata)unicodedata	combiningchrname
ValueError)r   vs     r   _combining_classr(   '   sC    c"g&AAvB((?@@Hr   scriptc                 N    [        [        U 5      [        R                  U   5      $ )N)r   ordr   scripts)r   r)   s     r   
_is_scriptr-   /   s    SWh&6&6v&>??r   sc                 $    U R                  S5      $ )Npunycode)encoder.   s    r   	_punycoder3   3   s    88Jr   c                 $    SR                  U 5      $ )NzU+{:04X})formatr2   s    r   _unotr6   7   s    Qr   labelc                 $    [        U 5      S:  a  gg)N?   FTlenr7   s    r   valid_label_lengthr=   ;   s    
5zBr   trailing_dotc                 6    [        U 5      U(       a  SOS:  a  gg)N      FTr:   )r7   r>   s     r   valid_string_lengthrB   A   s    
5zLSc2r   	check_ltrc                 $   Sn[        U S5       HO  u  p4[        R                  " U5      nUS:X  a$  [        SR	                  [        U 5      U5      5      eUS;   d  MM  SnMQ     U(       d  U(       d  g[        R                  " U S   5      nUS;   a  SnO,US	:X  a  SnO#[        S
R	                  [        U 5      5      5      eSnS n[        U S5       H  u  p4[        R                  " U5      nU(       aV  US;  a  [        SR	                  U5      5      eUS;   a  SnOUS:w  a  SnUS;   a  U(       d  UnMd  X:w  a  [        S5      eMv  Mx  US;  a  [        SR	                  U5      5      eUS;   a  SnM  US:w  d  M  SnM     U(       d  [        S5      eg)NFr    z1Unknown directionality in label {} at position {})RALANTr   )rF   rG   Lz=First codepoint in label {} must be directionality L, R or AL)
rF   rG   rH   ENESCSETONBNNSMzGInvalid direction for codepoint at position {} in a right-to-left label)rF   rG   rJ   rH   rP   )rH   rJ   z2Can not mix numeral types in a right-to-left label)rI   rJ   rK   rL   rM   rN   rO   rP   zGInvalid direction for codepoint at position {} in a left-to-right label)rI   rJ   z0Label ends with illegal codepoint directionality)	enumerater"   bidirectionalr   r5   repr)	r7   rC   
bidi_labelidxr   	directionrtlvalid_endingnumber_types	            r   
check_bidirZ   G   s   JUA&--b1	? S Z Z[_`e[fhk lmm))J ' i ))%(3IK	c	[bbcghmcnoppL!%KUA&--b1	 !  $$m$t$tux$yzz33#e#$L(""+K"/+,`aa 0	 )  PP#$m$t$tux$yzzK'#e#$M 'P NOOr   c                 Z    [         R                  " U S   5      S   S:X  a  [        S5      eg)Nr   Mz0Label begins with an illegal combining characterT)r"   categoryr
   r<   s    r   check_initial_combinerr^      s-    E!H%a(C/JKKr   c                 f    U SS S:X  a  [        S5      eU S   S:X  d	  U S   S:X  a  [        S5      eg	)
N      z--z4Label has disallowed hyphens in 3rd and 4th positionr   -z)Label must not start or end with a hyphenT)r
   r<   s    r   check_hyphen_okrd      sA    QqzTNOOQx3%)s*CDDr   c                 P    [         R                  " SU 5      U :w  a  [        S5      eg )NNFCz%Label must be in Normalization Form C)r"   	normalizer
   r<   s    r   	check_nfcrh      s(    UE*e3?@@ 4r   posc                    [        X   5      nUS:X  Ga*  US:  a"  [        [        XS-
     5      5      [        :X  a  gSn[        US-
  SS5       Ha  n[        R
                  " 5       R                  [        X   5      5      nU[        S5      :X  a  MC  U[        S5      [        S	5      4;   a  Sn  O  O   U(       d  gSn[        US-   [        U 5      5       Hc  n[        R
                  " 5       R                  [        X   5      5      nU[        S5      :X  a  MC  U[        S
5      [        S	5      4;   a  Sn  U$   U$    U$ US:X  a)  US:  a"  [        [        XS-
     5      5      [        :X  a  ggg)Ni   r   r   TFrc   TrI   DrF   i   )r+   r(   _virama_combining_classranger   joining_typesgetr;   )r7   ri   cp_valueokijoining_types         r   valid_contextjru      s^   5:H67E'N 348OOsQwB'A#11377EHFLs3x'#c(CH!55 ( sQwE
+A#11377EHFLs3x'#c(CH!55 	 	 , 	67E'N 348OO r   	exceptionc                    [        X   5      nUS:X  aF  SUs=:  a  [        U 5      S-
  :  a,  O  g[        XS-
     5      S:X  a  [        XS-      5      S:X  a  ggUS:X  a3  U[        U 5      S-
  :  a   [        U 5      S:  a  [        XS-      S5      $ gUS	:X  d  US
:X  a  US:  a  [        XS-
     S5      $ gUS:X  aG  U  H@  nUS:X  a  M  [        US5      (       d$  [        US5      (       d  [        US5      (       d  M@    g   gSUs=::  a  S::  a)  O  O&U  H  nS[        U5      s=::  a
  S::  d  M     g  M!     gSUs=::  a  S::  a)  O  gU  H  nS[        U5      s=::  a
  S::  d  M     g  M!     gg)N   r   r   l   TFiu  Greeki  i  Hebrewi0  u   ・HiraganaKatakanaHani`  ii  i  i  )r+   r;   r-   )r7   ri   rv   rq   r   s        r   valid_contextor      s   5:H6s#SZ!^#  5q>"f,U7^1D1N	V	UaCJNe!Gng66	V	x617e!Gnh77	V	BX~"j))ZJ-G-G:VXZ_K`K`	 
 	(	#e	#BB)6) *  	(	#e	#  BB)6) *  r   c                    [        U [        [        45      (       a  U R                  S5      n [	        U 5      S:X  a  [        S5      e[        U 5        [        U 5        [        U 5        [        U 5       GH/  u  p[        U5      n[        U[        R                  S   5      (       a  M5  [        U[        R                  S   5      (       aD   [        X5      (       d1  [        SR!                  [#        U5      US-   [%        U 5      5      5      eM  [        U[        R                  S	   5      (       aD  [)        X5      (       d1  [        S
R!                  [#        U5      US-   [%        U 5      5      5      eGM  [+        SR!                  [#        U5      US-   [%        U 5      5      5      e   [-        U 5        g ! [&         a2    [        SR!                  [#        U5      US-   [%        U 5      5      5      ef = f)Nzutf-8r   zEmpty LabelPVALIDCONTEXTJz*Joiner {} not allowed at position {} in {}r   z<Unknown codepoint adjacent to joiner {} at position {} in {}CONTEXTO-Codepoint {} not allowed at position {} in {}z-Codepoint {} at position {} of {} not allowed)
isinstancebytes	bytearraydecoder;   r
   rh   rd   r^   rQ   r+   r   r   codepoint_classesru   r   r5   r6   rS   r&   r   r   rZ   )r7   ri   r   rq   s       r   check_labelr      s   %%+,,W%
5zQ&&eE5!U#r7Xx'A'A('KLLx)C)CJ)OPP
%e111DKKERZO]`cd]dfjkpfqr  2 x)C)CJ)OPP!%---CJJ5QY?\_bc\ceijoepq  .
 #?FFuXX[^_X_aefkalm - $4 u!  RYYhq$u+ s   AF33<G/c                 
    U R                  S5      n[        U5        [        U5      (       d  [        S5      eU$ ! [         a     Of = f[        U 5        [        [        U 5      -   n[        U5      (       d  [        S5      eU$ )NasciizLabel too long)r1   ulabelr=   r
   UnicodeEncodeErrorr   _alabel_prefixr3   r7   label_bytess     r   alabelr     s    ll7+{!+..,--   9U#33Kk**())s   8; 
AAc                 :   [        U [        [        45      (       d   U R                  S5      nO[        U 5      nUR                  5       nUR                  [        5      (       aH  U[        [        5      S  nU(       d  [        S5      eUR                  S5      S   S:X  a  [        S5      eO[        U5        UR                  S5      $  UR                  S5      n [        U 5        U $ ! [         a    [        U 5        U s $ f = f! [         a    [        S5      ef = f)Nr   z5Malformed A-label, no Punycode eligible content foundrc   rb   z"A-label must not end with a hyphenr0   zInvalid A-label)r   r   r   r1   r   r   lower
startswithr   r;   r
   r   UnicodeErrorr   s     r   r   r   0  s   eeY/00	,,w/K
 El##%Kn--!#n"5"78STTg&r*c1@AA 2 	K !!'**+"":. L- " 	L	&  +)**+s   C' 	D 'D DDdomain
std3_rulestransitionalc           
         SSK J n  Sn[        U 5       H  u  pV[        U5      nX7S:  a  UO[        R                  " X7S45      S-
     nUS   n	Sn
[        U5      S:X  a  US   n
U	S	:X  d  U	S
:X  a  U(       a  U	S:X  a  U(       d	  U
c  XF-  nMy  U
b&  U	S:X  d  U	S:X  a  U(       a  U	S
:X  a  U(       a  XJ-  nM  U	S:X  a  M  [        SR                  [        U5      US-   [        U 5      5      5      e   [        R                  " SU5      $ )zBRe-map the characters in the string according to UTS46 processing.r   )	uts46datarE      ZN   r`   Vrl   3r\   Ir   rf   )r   rQ   r+   bisectbisect_leftr;   r   r5   r6   rS   r"   rg   )r   r   r   r   outputri   char
code_pointuts46rowstatusreplacements              r   uts46_remapr   M  s   $Fv&	Y
+;ZASAST]lo_pAqtuAuv!%)x=A"1+KS=Vs]<Vs][ejuj}NF$cMfmJFcMVb!Fs]"?FFuZGXZ]`aZacghncop ! '(   //r   strictuts46c                    U(       a  [         R                  " S[        SS9  [        U [        5      (       d   [	        U S5      n U(       a  [        XU5      n Sn/ nU(       a  U R                  S5      nO[        R                  U 5      nU(       a  US/:X  a  [        S	5      eUS
   S:X  a  US
	 SnU H1  n[        U5      n U (       a  UR                  U 5        M(  [        S5      e   U(       a  UR                  S5        SR                  U5      n [        X5      (       d  [        S5      eU $ ! [
         a    [        S5      ef = f)NzuTransitional processing has been removed from UTS #46. The transitional argument will be removed in a future version.r`   )
stacklevelr   zGshould pass a unicode string to the function rather than a byte string.F.rE   Empty domainrc   TEmpty labelr      .zDomain too long)warningswarnDeprecationWarningr   strUnicodeDecodeErrorr
   r   split_unicode_dots_rer   appendjoinrB   )	r.   r   r   r   r   r>   resultlabelsr7   s	            r   r1   r1   j  s/    M		
 a	gAwA |4LF!''*Vt^''bzR2J5MMM!M**  c		&Aq//)**H5 " 	geff	gs   D- -Ec                     [        U [        5      (       d  [        U S5      n U(       a  [	        XS5      n Sn/ nU(       d  [
        R                  U 5      nOU R                  S5      nU(       a  US/:X  a  [        S5      eUS   (       d  US	 SnU H1  n[        U5      n U (       a  UR                  U 5        M(  [        S	5      e   U(       a  UR                  S5        SR                  U5      $ ! [         a    [        S5      ef = f)
Nr   zInvalid ASCII in A-labelFr   rE   r   rc   Tr   )
r   r   r   r
   r   r   r   r   r   r   )r.   r   r   r   r>   r   r   r7   s           r   r   r     s    4!S!!AwA u-LF!''*Vt^''":2J5MMM!M**  b88F/  42334s   !C0 0D)F)TF)FFFF)FFF)+r   rer"   r   typingr   r   rE   r   	intrangesr   rm   r   compiler   r   r
   r   r   r   intr(   r   boolr-   r   r3   r6   r=   rB   rZ   r^   rd   rh   ru   r   r   r   r   r   r   r1   r   r   r   r   <module>r      s    	   "  ( :::; 	 		I 		y 		i 	  @3 @ @ @      S  S  eE3J/ D uUCZ0   Cc Cd Ct CL# $ 3 4 AS AT A
)# )C )D )X'# 'C 'D 'T 'T$uS%23 $ $N# % &%UI-. 3 :0 0 0D 0UX 0> +S%"#++ + 	+
 + +` 	 S%"#     	 
 	 r   