JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB 'X~,@s>ddlmZddlZddlZddlZddlZddlmZdZdZ e dZ ej ddkr`e ZeZGd d d eZGd d d eZGd ddeZGdddeZddZddZddZddZddZddZd7ddZd d!Zd"d#Zd$d%Zd&d'Z d8d(d)Z!d*d+Z"d,d-Z#d.d/Z$d9d1d2Z%d:d3d4Z&d;d5d6Z'dS)<)idnadataN)intranges_contain sxn--u [.。.。]c@seZdZdZdS) IDNAErrorz7 Base exception for all IDNA-encoding related problems N)__name__ __module__ __qualname____doc__r r :/opt/alt/python37/lib/python3.7/site-packages/idna/core.pyrsrc@seZdZdZdS) IDNABidiErrorz= Exception when bidirectional requirements are not satisfied N)rr r r r r r r rsrc@seZdZdZdS)InvalidCodepointz> Exception when a disallowed or unallocated codepoint is used N)rr r r r r r r rsrc@seZdZdZdS)InvalidCodepointContextzE Exception when the codepoint is not valid in the context it is used N)rr r r r r r r rsrcCstt|S)N) unicodedataZ combiningunichr)cpr r r _combining_class$srcCstt|tj|S)N)rordrscripts)rscriptr r r _is_script'srcCs |dS)Npunycode)encode)sr r r _punycode*srcCs d|S)Nz U+{0:04X})format)rr r r _unot-srcCst|dkrdSdS)N?FT)len)labelr r r valid_label_length1s r"cCst||rdndkrdSdS)NFT)r )r! trailing_dotr r r valid_string_length8sr&Fc Cshd}xJt|dD]<\}}t|}|dkr>tdt|||dkrd}PqW|s\|s\dSt|d}|dkrxd}n |d krd}ntd t|d}d}xt|dD]\}}t|}|r|d krtd ||d krd}n |dkrd}|dkrR|s |}n||krRtdq|dkr6td||dkrFd}q|dkrd}qW|sdtddS)NFrz3Unknown directionality in label {0} at position {1})RALANTr)r(r)Lz>First codepoint in label {0} must be directionality L, R or AL) r(r)r*ENESCSETONBNNSMzHInvalid direction for codepoint at position {0} in a right-to-left label)r(r)r,r*r2)r*r,z2Can not mix numeral types in a right-to-left label)r+r,r-r.r/r0r1r2zHInvalid direction for codepoint at position {0} in a left-to-right label)r+r,z0Label ends with illegal codepoint directionality) enumeraterZ bidirectionalrrrepr) r!Z check_ltrZ bidi_labelidxr directionZrtlZ valid_endingZ number_typer r r check_bidi?sR       r7cCs"t|dddkrtddS)NrMz0Label begins with an illegal combining characterT)rcategoryr)r!r r r check_initial_combiner|sr:cCs<|dddkrtd|ddks0|ddkr8tdd S) Nz--z4Label has disallowed hyphens in 3rd and 4th positionr-z)Label must not start or end with a hyphenT)r)r!r r r check_hyphen_oks r?cCstd||krtddS)NNFCz%Label must be in Normalization Form C)r normalizer)r!r r r check_nfcsrBcCs8t||}|dkr|dkr8tt||dtkr8dSd}xTt|dddD]@}tjt||}|tdkrtqN|tdtd gkrNd}PqNW|sdSd}xVt|dt|D]@}tjt||}|tdkrq|td td gkrd}PqW|S|d kr0|dkr,tt||dtkr,dSdSdSdS) Ni rrTFr>Tr+Dr(i )rr_virama_combining_classrangerZ joining_typesgetr )r!poscp_valueokiZ joining_typer r r valid_contextjs<     rLcCst||}|dkrdd|kr0t|dkr`nn,t||ddkr`t||ddkr`dSdS|dkr|t|dkrt|dkrt||ddSdS|d ks|d kr|dkrt||dd SdS|d krx<|D]4}|d krqt|ds t|ds t|drdSqWdSd|kr0dkrlnn8x2|D]*}dt|krZdkr:nndSq:WdSd|krdkrnn8x2|D]*}dt|krdkrnndSqWdSdS)NrrlTFiuZGreekiiZHebrewi0u・ZHiraganaZKatakanaZHani`iiii)rr r)r!rH exceptionrIrr r r valid_contextos>  (  "      rPcCst|ttfr|d}t|dkr,tdt|t|t|xt |D]\}}t |}t |t j drrqNqNt |t j drt||stdt||dt|qNt |t j drt||std t||dt|qNtd t||dt|qNWt|dS) Nzutf-8rz Empty LabelZPVALIDZCONTEXTJz-Joiner {0} not allowed at position {1} in {2}rZCONTEXTOz0Codepoint {0} not allowed at position {1} in {2}z0Codepoint {0} at position {1} of {2} not allowed) isinstancebytes bytearraydecoder rrBr?r:r3rrrZcodepoint_classesrLrrrr4rPrr7)r!rHrrIr r r check_labels&      "rUcCsyN|d}y t|Wn"tk r:td|YnXt|sLtd|Stk rbYnX|sptdt|}t|t|}t |}t|std|S)Nasciiz$The label {0} is not a valid A-labelzLabel too longzNo Input) rulabelrrr"UnicodeEncodeErrorunicoderUr_alabel_prefix)r!r r r alabels(  r[cCst|ttfs:y|d}Wntk r8t||SX|}|tr^|t td}nt|| dS| d}t||S)NrVr) rQrRrSrrXrUlower startswithrZr rT)r!r r r rWs   rWTc Cs*ddlm}d}yxt|D]\}}t|}||dkr:|nt||dfd}|d} t|dkrl|dnd} | d ks| d kr|r| d kr|r| dkr||7}q| dk r| d ks| d kr|s| d kr|r|| 7}q| d krtqWtd|Stk r$t d t ||dt |YnXdS)zBRe-map the characters in the string according to UTS46 processing.r) uts46datar'Zrr;NVrD3r8Ir@z0Codepoint {0} not allowed at position {1} in {2}) r^r3rbisect bisect_leftr IndexErrorrrArrrr4) domain std3_rules transitionalr^outputrHcharZ code_pointZuts46rowstatus replacementr r r uts46_remap3s0        rnc Cst|ttfr|d}|r(t|||}d}g}|r@|d}n t|}x|r`|ds`|d=qLW|sntd|ddkr|d=d}x|D]}|t |qW|r|d d |}t ||std |S) NrVF.rz Empty domainr>r'T.zDomain too long) rQrRrSrTrnsplit_unicode_dots_rerappendr[joinr&) rstrictuts46rhrir%resultlabelsr!r r r rOs0          rcCst|ttfr|d}|r(t||d}d}g}|s@t|}n |d}x|r`|ds`|d=qLW|sntd|ds|d=d}x|D]}|t |qW|r|dd |S) NrVFrorz Empty domainr>Tr') rQrRrSrTrnrsrrrrtrWru)rrvrwrhr%rxryr!r r r rTls*       rT)F)F)TF)FFFF)FFF)(r'rrdrresysZ intrangesrrErZcompilers version_infostrrYchrr UnicodeErrorrrrrrrrrr"r&r7r:r?rBrLrPrUr[rWrnrrTr r r r sB    = , )