3 \áã@sÖddlZdd„Zdd„Zdd„Zdd „Zd d „Zd Zd d„Zdd„Zdd„Z dd„Z dd„Z dd„Z dd„Z Gdd„dejƒZGdd„dejƒZGdd „d ejƒZGd!d"„d"eejƒZGd#d$„d$eejƒZd%d&„ZdS)'éNcCsTtƒ}tƒ}x2|D]*}t|ƒdkr2|jt|ƒƒq|j|ƒqWt|ƒ}t|ƒ|fS)Né€)Ú bytearrayÚsetÚordÚappendÚaddÚsortedÚbytes)ÚstrÚbaseÚextendedÚc©rú*/usr/lib64/python3.6/encodings/punycode.pyÚ segregate s  rcCs*d}x |D]}t|ƒ|kr |d7}q W|S)Nré)r)r ÚmaxÚresr rrrÚ selective_lens    rcCsRt|ƒ}xD|d7}||krdS||}||kr:|d|fS||kr |d7}q WdS)Nréÿÿÿÿr)rr)Úlen)r ÚcharÚindexÚposÚlr rrrÚselective_finds rc Cs�d}g}d}x~|D]v}d}}t|ƒ}t||ƒ} | d||} xBt||||ƒ\}}|dkr^P| ||7} |j| dƒ|}d} qBW|}qW|S)Nrrrrrr)rrrr) r r ZoldcharÚresultZoldindexr rrrZcurlenÚdeltarrrÚinsertion_unsort0s$   rcCs,d|d|}|dkrdS|dkr(dS|S)Né$rér)ÚjÚbiasrrrrÚTFs r#s$abcdefghijklmnopqrstuvwxyz0123456789cCsrtƒ}d}xbt||ƒ}||kr4|jt|ƒt|ƒS|jt|||d|ƒ||d|}|d7}q WdS)Nrrr)rr#rÚdigitsr )ÚNr"rr!ÚtrrrÚgenerate_generalized_integerNs r'cCs\|r|d}n|d}|||7}d}x|dkrB|d}|d7}q(W|d||d}|S)Ni¼ériÇé#ré&r)rÚfirstÚnumcharsZ divisionsr"rrrÚadapt[s    r-cCsTtƒ}d}x@t|ƒD]4\}}t||ƒ}|j|ƒt||dk||dƒ}qWt|ƒS)NéHrr)rÚ enumerater'Úextendr-r )ZbaselenÚdeltasrr"ZpointsrÚsrrrÚgenerate_integersjs  r3cCs8t|ƒ\}}t||ƒ}tt|ƒ|ƒ}|r4|d|S|S)Nó-)rrr3r)Útextr r r1rrrÚpunycode_encodeus    r6c Csüd}d}d}xêyt||ƒ}Wn,tk rJ|dkr>tdƒ‚|ddfSX|d7}d|kofdknrv|d}nDd|koˆdknr˜|d }n"|dkr²td ||ƒ‚n|dfSt||ƒ} |||7}|| krà||fS|d | }|d7}qWdS) NrrÚstrictzincomplete punicode stringéAéZé0é9éz Invalid extended code point '%s'r)rÚ IndexErrorÚ UnicodeErrorr#) r Úextposr"ÚerrorsrÚwr!rÚdigitr&rrrÚdecode_generalized_numbers2     rCc CsÐd}d }d}d}xº|t|ƒkrÊt||||ƒ\}}|dkr<|S||d7}||t|ƒd7}|dkr€|dkrxtd|ƒ‚tdƒ}|t|ƒd}|d|…t|ƒ||d…}t||dkt|ƒƒ}|}qW|S) Nrrr.riÿÿr7zInvalid character U+%xú?r)rrCr>rÚchrr-) r r r@rrr"r?ZnewposrrrrÚinsertion_sort�s(    rFcCs†t|tƒr|jdƒ}t|tƒr&t|ƒ}|jdƒ}|dkrLd}t|dƒjƒ}n.t|d|…d|ƒ}t||dd…dƒjƒ}t|||ƒS)NÚasciir4rÚr)Ú isinstancer ÚencodeÚ memoryviewr ÚrfindÚupperrF)r5r@rr r rrrÚpunycode_decode¶s    rNc@s eZdZddd„Zddd„ZdS) ÚCodecr7cCst|ƒ}|t|ƒfS)N)r6r)ÚselfÚinputr@rrrrrJÈsz Codec.encodecCs*|dkrtd|ƒ‚t||ƒ}|t|ƒfS)Nr7ÚreplaceÚignorezUnsupported error handling )r7rRrS)r>rNr)rPrQr@rrrrÚdecodeÌs  z Codec.decodeN)r7)r7)Ú__name__Ú __module__Ú __qualname__rJrTrrrrrOÆs rOc@seZdZddd„ZdS)ÚIncrementalEncoderFcCst|ƒS)N)r6)rPrQÚfinalrrrrJÓszIncrementalEncoder.encodeN)F)rUrVrWrJrrrrrXÒsrXc@seZdZddd„ZdS)ÚIncrementalDecoderFcCs$|jdkrtd|jƒ‚t||jƒS)Nr7rRrSzUnsupported error handling )r7rRrS)r@r>rN)rPrQrYrrrrT×s zIncrementalDecoder.decodeN)F)rUrVrWrTrrrrrZÖsrZc@s eZdZdS)Ú StreamWriterN)rUrVrWrrrrr[Üsr[c@s eZdZdS)Ú StreamReaderN)rUrVrWrrrrr\ßsr\c Cs tjdtƒjtƒjttttd�S)NZpunycode)ÚnamerJrTÚincrementalencoderÚincrementaldecoderÚ streamwriterÚ streamreader) ÚcodecsÚ CodecInforOrJrTrXrZr[r\rrrrÚ getregentryäsrd)rbrrrrr#r$r'r-r3r6rCrFrNrOrXrZr[r\rdrrrrÚs&