U e5dãã@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)'éNcCsPtƒ}tƒ}|D]*}t|ƒdkr0| t|ƒ¡q| |¡qt|ƒ}t|ƒ|fS)Né€)Ú bytearrayÚsetÚordÚappendÚaddÚsortedÚbytes)ÚstrÚbaseÚextendedÚc©rú*/usr/lib64/python3.8/encodings/punycode.pyÚ segregate s  rcCs&d}|D]}t|ƒ|kr|d7}q|S)Nré)r)r ÚmaxÚresr rrrÚ selective_lens   rcCsNt|ƒ}|d7}||krdS||}||kr8|d|fS||kr|d7}qdS)Nr)éÿÿÿÿr)Úlen)r ÚcharÚindexÚposÚlr rrrÚselective_finds rc Csˆd}g}d}|D]r}d}}t|ƒ}t||ƒ} | d||} t||||ƒ\}}|dkrZq~| ||7} | | d¡|}d} q>|}q|S)Nrrrr)rrrr) r r ZoldcharÚresultZoldindexr rrrZcurlenÚdeltarrrÚinsertion_unsort0s"  rcCs,d|d|}|dkrdS|dkr(dS|S)Né$rér)ÚjÚbiasrrrrÚTFs r#s$abcdefghijklmnopqrstuvwxyz0123456789cCsntƒ}d}t||ƒ}||kr2| t|¡t|ƒS| t|||d|¡||d|}|d7}q dS)Nrrr)rr#rÚdigitsr )ÚNr"rr!ÚtrrrÚgenerate_generalized_integerNs r'cCsX|r|d}n|d}|||7}d}|dkr@|d}|d7}q&|d||d}|S)Ni¼ériÇé#ré&r)rÚfirstÚnumcharsZ divisionsr"rrrÚadapt[s   r-cCsPtƒ}d}t|ƒD]4\}}t||ƒ}| |¡t||dk||dƒ}qt|ƒ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 Csd}d}d}zt||ƒ}Wn0tk rL|dkrrÚchrr-) r r r@rrr"r?ZnewposrrrrÚinsertion_sort�s, ÿ   rFcCs†t|tƒr| d¡}t|tƒr&t|ƒ}| d¡}|dkrLd}t|dƒ ¡}n.t|d|…d|ƒ}t||dd…dƒ ¡}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©N)r7ÚreplaceÚignorezUnsupported error handling )r>rNrrQrrrÚdecodeÌs  z Codec.decodeN)r7)r7)Ú__name__Ú __module__Ú __qualname__rJrWrrrrrOÆs rOc@seZdZddd„ZdS)ÚIncrementalEncoderFcCst|ƒSrP)r6©rRrSÚfinalrrrrJÓszIncrementalEncoder.encodeN)F)rXrYrZrJrrrrr[Òsr[c@seZdZddd„ZdS)ÚIncrementalDecoderFcCs$|jdkrtd|jƒ‚t||jƒSrT)r@r>rNr\rrrrW×s zIncrementalDecoder.decodeN)F)rXrYrZrWrrrrr^Ösr^c@s eZdZdS)Ú StreamWriterN©rXrYrZrrrrr_Üsr_c@s eZdZdS)Ú StreamReaderNr`rrrrraßsrac Cs tjdtƒjtƒjttttd�S)NZpunycode)ÚnamerJrWÚincrementalencoderÚincrementaldecoderÚ streamwriterÚ streamreader) ÚcodecsÚ CodecInforOrJrWr[r^r_rarrrrÚ getregentryäsùri)rgrrrrr#r$r'r-r3r6rCrFrNrOr[r^r_rarirrrrÚs&