й¼]áã@s5ddlZdd„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ƒ}xC|D];}t|ƒdkrG|jt|ƒƒq|j|ƒqWt|ƒ}t|ƒ|fS)Né€)Ú bytearrayÚsetÚordÚappendÚaddÚsortedÚbytes)ÚstrÚbaseÚextendedÚc©rú-/opt/alt/python35/lib64/python3.5/punycode.pyÚ segregate s    rcCs7d}x*|D]"}t|ƒ|kr |d7}q W|S)Nré)r)r ÚmaxÚresr rrrÚ selective_lens  rcCskt|ƒ}xX|d7}||kr)dS||}||krM|d|fS||kr|d7}qWdS)Nréÿÿÿÿr)rr)Úlen)r ÚcharÚindexÚposÚlr rrrÚselective_finds      rc Cs¾d}g}d}x¥|D]�}d}}t|ƒ}t||ƒ} | d||} xWt||||ƒ\}}|dkr�P| ||7} |j| dƒ|}d} qYW|}qW|S)Nrrrrrr)rrrr) r r ZoldcharÚresultZoldindexr rrrZcurlenÚdeltarrrÚinsertion_unsort0s$      rcCs6d|d|}|dkr"dS|dkr2dS|S)Né$rér)ÚjÚbiasrrrrÚTFs   r#s$abcdefghijklmnopqrstuvwxyz0123456789cCs�tƒ}d}xwt||ƒ}||krH|jt|ƒt|ƒS|jt|||d|ƒ||d|}|d7}qWdS)Nrrr)rr#rÚdigitsr )ÚNr"rr!ÚtrrrÚgenerate_generalized_integerNs   !r'cCsr|r|d}n |d}|||7}d}x$|dkrW|d}|d7}q4W|d||d}|S)Ni¼ériÇé#ré&r)rÚfirstÚnumcharsZ divisionsr"rrrÚadapt[s   r-cCsrtƒ}d}xVt|ƒD]H\}}t||ƒ}|j|ƒt||dk||dƒ}qWt|ƒS)NéHrr)rÚ enumerater'Úextendr-r )ZbaselenÚdeltasrr"ZpointsrÚsrrrÚgenerate_integersjs  $r3cCsLt|ƒ\}}t||ƒ}tt|ƒ|ƒ}|rH|d|S|S)Nó-)rrr3r)Útextr r r1rrrÚpunycode_encodeus  r6c Cs@d}d}d}x'yt||ƒ}Wn8tk rc|dkrQtdƒ‚|ddfSYnX|d7}d|ko…dknr—|d}nVd|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!rZdigitr&rrrÚdecode_generalized_numbers2          rBc Csd}d }d}d}xû|t|ƒkrt||||ƒ\}}|dkrX|S||d7}||t|ƒd7}|dkr²|dkr¦td|ƒ‚tdƒ}|t|ƒd}|d|…t|ƒ||d…}t||dkt|ƒƒ}|}qW|S) Nrrr.riÿÿr7zInvalid character U+%xú?r)rrBr>rÚchrr-) r r r@rrr"r?ZnewposrrrrÚinsertion_sort�s(     ( rEcCsÁt|tƒr|jdƒ}t|tƒr9t|ƒ}|jdƒ}|dkrrd}t|dƒjƒ}n?t|d|…d|ƒ}t||dd…dƒjƒ}t|||ƒS)NÚasciir4rÚr)Ú isinstancer ÚencodeÚ memoryviewr ÚrfindÚupperrE)r5r@rr r rrrÚpunycode_decode¶s  #rMc@s.eZdZddd„Zddd„ZdS)ÚCodecr7cCst|ƒ}|t|ƒfS)N)r6r)ÚselfÚinputr@rrrrrIÈs z Codec.encodecCs;|dkrtd|ƒ‚t||ƒ}|t|ƒfS)Nr7ÚreplaceÚignorezUnsupported error handling )r7rQrR)r>rMr)rOrPr@rrrrÚdecodeÌs z Codec.decodeN)Ú__name__Ú __module__Ú __qualname__rIrSrrrrrNÆs rNc@seZdZddd„ZdS)ÚIncrementalEncoderFcCs t|ƒS)N)r6)rOrPÚfinalrrrrIÓszIncrementalEncoder.encodeN)rTrUrVrIrrrrrWÒs rWc@seZdZddd„ZdS)ÚIncrementalDecoderFcCs2|jdkr"td|jƒ‚t||jƒS)Nr7rQrRzUnsupported error handling )r7rQrR)r@r>rM)rOrPrXrrrrS×szIncrementalDecoder.decodeN)rTrUrVrSrrrrrYÖs rYc@seZdZdS)Ú StreamWriterN)rTrUrVrrrrrZÜs rZc@seZdZdS)Ú StreamReaderN)rTrUrVrrrrr[ßs r[cCs@tjdddtƒjdtƒjdtdtdtdtƒS) NÚnameZpunycoderIrSÚincrementalencoderÚincrementaldecoderÚ streamwriterÚ streamreader) ÚcodecsÚ CodecInforNrIrSrWrYrZr[rrrrÚ getregentryäs   rc)rarrrrr#r$r'r-r3r6rBrErMrNrWrYrZr[rcrrrrÚs&