
    =6h3                        d dl Z d dlZd dlZd dlmZmZ ddlmZ ddlm	Z	 dZ
dZ ej                  d      Z G d	 d
e      Z G d de      Z G d de      Z G d de      ZdedefdZdededefdZdedefdZdedefdZdeeef   defdZdeeef   dedefdZd1dededefdZdedefdZdedefd Zdeddfd!Z ded"edefd#Z!d1ded"ed$edefd%Z"deeee#f   ddfd&Z$dedefd'Z%deeee#f   defd(Z&d2d)ed*ed+edefd,Z'	 	 	 	 d3deeee#f   d-ed.ed*ed+edefd/Z(	 	 	 d4deeee#f   d-ed.ed*edef
d0Z)y)5    N)OptionalUnion   )idnadata)intranges_contain	   s   xn--u   [.。．｡]c                       e Zd ZdZy)	IDNAErrorz5Base exception for all IDNA-encoding related problemsN__name__
__module____qualname____doc__     N/var/www/panel.atabookie.online/venv/lib/python3.12/site-packages/idna/core.pyr
   r
      s    ?r   r
   c                       e Zd ZdZy)IDNABidiErrorz;Exception when bidirectional requirements are not satisfiedNr   r   r   r   r   r      s    Er   r   c                       e Zd ZdZy)InvalidCodepointz<Exception when a disallowed or unallocated codepoint is usedNr   r   r   r   r   r      s    Fr   r   c                       e Zd ZdZy)InvalidCodepointContextzCException when the codepoint is not valid in the context it is usedNr   r   r   r   r   r       s    Mr   r   cpreturnc                     t        j                  t        |             }|dk(  r)t        j                  t        |             st	        d      |S )Nr   z Unknown character in unicodedata)unicodedata	combiningchrname
ValueError)r   vs     r   _combining_classr"   &   s@    c"g&AAvB(?@@Hr   scriptc                 N    t        t        |       t        j                  |         S )N)r   ordr   scripts)r   r#   s     r   
_is_scriptr'   .   s    SWh&6&6v&>??r   sc                 $    | j                  d      S )Npunycode)encoder(   s    r   	_punycoder-   2   s    88Jr   c                 $    dj                  |       S )NzU+{:04X})formatr,   s    r   _unotr0   6   s    Qr   labelc                 "    t        |       dkD  ryy)N?   FTlenr1   s    r   valid_label_lengthr7   :   s    
5zBr   trailing_dotc                 *    t        |       |rdndkD  ryy)N      FTr4   )r1   r8   s     r   valid_string_lengthr<   @   s    
5zLSc2r   	check_ltrc                    d}t        | d      D ]J  \  }}t        j                  |      }|dk(  r$t        dj	                  t        |       |            |dv sId}L |s|syt        j                  | d         }|dv rd}n+|d	k(  rd}n#t        d
j	                  t        |                   d}d }t        | d      D ]  \  }}t        j                  |      }|rG|dvrt        dj	                  |            |dv rd}n|dk7  rd}|dv sN|s|}S||k7  sYt        d      |dvrt        dj	                  |            |dv rd}|dk7  sd} |st        d      y)NFr    z1Unknown directionality in label {} at position {})RALANTr   )r@   rA   Lz=First codepoint in label {} must be directionality L, R or AL)
r@   rA   rB   ENESCSETONBNNSMzGInvalid direction for codepoint at position {} in a right-to-left label)r@   rA   rD   rB   rJ   )rB   rD   z2Can not mix numeral types in a right-to-left label)rC   rD   rE   rF   rG   rH   rI   rJ   zGInvalid direction for codepoint at position {} in a left-to-right label)rC   rD   z0Label ends with illegal codepoint directionality)	enumerater   bidirectionalr   r/   repr)	r1   r=   
bidi_labelidxr   	directionrtlvalid_endingnumber_types	            r   
check_bidirT   F   s   JUA& R--b1	? S Z Z[_`e[fhk lmm))J i ))%(3IK	c	[bbcghmcnoppL!%KUA& &%R--b1	 !  $$m$t$tux$yzz33#e#$L(""+K"i/+,`aa  PP#$m$t$tux$yzzK'#e#$M&%P NOOr   c                 V    t        j                  | d         d   dk(  rt        d      y)Nr   Mz0Label begins with an illegal combining characterT)r   categoryr
   r6   s    r   check_initial_combinerrX      s-    E!H%a(C/JKKr   c                 `    | dd dk(  rt        d      | d   dk(  s| d   dk(  rt        d      y	)
N      z--z4Label has disallowed hyphens in 3rd and 4th positionr   -z)Label must not start or end with a hyphenT)r
   r6   s    r   check_hyphen_okr^      sA    QqzTNOOQx3%)s*CDDr   c                 L    t        j                  d|       | k7  rt        d      y )NNFCz%Label must be in Normalization Form C)r   	normalizer
   r6   s    r   	check_nfcrb      s(    UE*e3?@@ 4r   posc                    t        | |         }|dk(  r|dkD  r"t        t        | |dz
                 t        k(  ryd}t        |dz
  dd      D ]Y  }t        j
                  j                  t        | |               }|t        d      k(  r=|t        d      t        d	      fv rd} n n |syd}t        |dz   t        |             D ][  }t        j
                  j                  t        | |               }|t        d      k(  r=|t        d
      t        d	      fv rd} |S  |S  |S |dk(  r(|dkD  r"t        t        | |dz
                 t        k(  ryyy)Ni   r   r   TFr]   TrC   Dr@   i   )r%   r"   _virama_combining_classranger   joining_typesgetr5   )r1   rc   cp_valueokijoining_types         r   valid_contextjro      sl   5:H67E#'N 348OOsQwB' 	A#1155c%(mDLs3x'#c(CH!55	 sQwE
+ 	A#1155c%(mDLs3x'#c(CH!55 	 		 	67E#'N 348OO r   	exceptionc                    t        | |         }|dk(  rDd|cxk  rt        |       dz
  k  r,n yt        | |dz
           dk(  rt        | |dz            dk(  ryy|dk(  r2|t        |       dz
  k  r t        |       dkD  rt        | |dz      d      S y|d	k(  s|d
k(  r|dkD  rt        | |dz
     d      S y|dk(  r4| D ].  }|dk(  r	t        |d      st        |d      st        |d      s. y yd|cxk  rdk  r#n n | D ]  }dt        |      cxk  rdk  s y  yd|cxk  rdk  r#n y| D ]  }dt        |      cxk  rdk  s y  yy)N   r   r   l   TFiu  Greeki  i  Hebrewi0  u   ・HiraganaKatakanaHani`  ii  i  i  )r%   r5   r'   )r1   rc   rp   rk   r   s        r   valid_contextory      s   5:H6s#SZ!^#  5q>"f,U37^1D1N	V	UaCJNeC!Gng66	V	x617eC!Gnh77	V	 	BX~"j)ZJ-G:VXZ_K`		
 	(	#e	# 	BB)6) *	 	(	#e	#   	BB)6) *	 r   c                    t        | t        t        f      r| j                  d      } t	        |       dk(  rt        d      t        |        t        |        t        |        t        |       D ]  \  }}t        |      }t        |t        j                  d         r0t        |t        j                  d         r?	 t        | |      s1t        dj!                  t#        |      |dz   t%        |                   t        |t        j                  d	         r>t)        | |      rt        d
j!                  t#        |      |dz   t%        |                   t+        dj!                  t#        |      |dz   t%        |                    t-        |        y # t&        $ r2 t        dj!                  t#        |      |dz   t%        |                   w xY w)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decoder5   r
   rb   r^   rX   rK   r%   r   r   codepoint_classesro   r   r/   r0   rM   r    ry   r   rT   )r1   rc   r   rk   s       r   check_labelr      s   %%+,W%
5zQ&&eE5!U# Rr7Xx'A'A('KLx)C)CJ)OP
%eS11DKKERZO]`cd]dfjkpfqr  2 x)C)CJ)OP!%--CJJ5QY?\_bc\ceijoepq  #?FFuXX[^_X_aefkalm -4 u!  RYYhq$u+ s   ;=F;Gc                     	 | j                  d      }t        |       t        |      st        d      |S # t        $ r Y nw xY wt        |        t        t        |       z   }t        |      st        d      |S )NasciizLabel too long)r+   ulabelr7   r
   UnicodeEncodeErrorr   _alabel_prefixr-   r1   label_bytess     r   alabelr     s|    ll7+{!+.,--   9U#33Kk*())s   36 	AAc                    t        | t        t        f      s	 | j                  d      }n| }|j                         }|j                  t              rA|t        t              d  }|st        d      |j                  d      d   dk(  r't        d      t        |       |j                  d      S 	 |j                  d      } t        |        | S # t        $ r t        |        | cY S w xY w# t        $ r t        d      w xY w)Nr   z5Malformed A-label, no Punycode eligible content foundr]   r\   z"A-label must not end with a hyphenr*   zInvalid A-label)r   r   r   r+   r   r   lower
startswithr   r5   r
   r   UnicodeErrorr   s     r   r   r   /  s   eeY/0	,,w/K
 ##%Kn-!#n"5"78STTg&r*c1@AAK !!'**+"":. L- " 	L	&  +)**+s   C /C) C&%C&)C>domain
std3_rulestransitionalc                     ddl m } d}t        |       D ]  \  }}t        |      }	 ||dk  r|nt        j                  ||df      dz
     }|d   }	d}
t        |      dk(  r|d   }
|	d	k(  s|	d
k(  r|r	|	dk(  r
|s|
||z  }n*|
|	dk(  s|	dk(  r|r|	d
k(  r|r||
z  }n|	dk7  r
t                t        j                  d|      S # t        $ r2 t        dj                  t        |      |dz   t        |                   w xY w)zBRe-map the characters in the string according to UTS46 processing.r   )	uts46datar?      ZN   rZ   Vrf   3rV   Ir~   r`   )r   rK   r%   bisectbisect_leftr5   
IndexErrorr   r/   r0   rM   r   ra   )r   r   r   r   outputrc   char
code_pointuts46rowstatusreplacements              r   uts46_remapr   L  s9   $Fv& 	TY
	 zC/?VEWEWXadnpsctEuxyEyzHa[F)-K8}!&qk#cM,cM*9L$(#&C-
RUZf+%3 l"'2   //  	"?FFuZGXZ]`aZacghncop 	s   BC;C=strictuts46c                    t        | t              s	 t        | d      } |rt	        | ||      } d}g }|r| j                  d      }nt        j                  |       }|r|dgk(  rt        d      |d   dk(  r|d= d}|D ]+  }t        |      } | r|j                  |        "t        d	       |r|j                  d
       dj                  |      } t        | |      st        d      | S # t        $ r t        d      w xY w)Nr   zGshould pass a unicode string to the function rather than a byte string.F.r?   Empty domainr]   TEmpty labelr      .zDomain too long)r   strUnicodeDecodeErrorr
   r   split_unicode_dots_rer   appendjoinr<   )	r(   r   r   r   r   r8   resultlabelsr1   s	            r   r+   r+   n  s    a	gAwA :|4LF!''*Vt^''bzR2J +5MMM!M**+ c		&Aq,/)**H5 " 	geff	gs   C' 'C<c                    	 t        | t              st        | d      } |rt	        | |d      } d}g }|st
        j                  |       }n| j                  d      }|r|dgk(  rt        d      |d   s|d= d}|D ]+  }t        |      } | r|j                  |        "t        d	       |r|j                  d       dj                  |      S # t        $ r t        d      w xY w)
Nr   zInvalid ASCII in A-labelFr   r?   r   r]   Tr   )
r   r   r   r
   r   r   r   r   r   r   )r(   r   r   r   r8   r   r   r1   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   C C )F)TF)FFFF)FFF)*r   rer   typingr   r   r?   r   	intrangesr   rg   r   compiler   r   r
   r   r   r   intr"   r   boolr'   r   r-   r0   r7   r<   rT   rX   r^   rb   ro   ry   r   r   r   r   r   r+   r   r   r   r   <module>r      s    	  "  ( 2:::; 	 		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 0H $S%"#$$ $ 	$
 $ $R 	 S%"#     	 
 	 r   