Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 2øªj ã@sÈdZddlZddlZejZGdd„deƒZdd„Zdd„Zd d „Z d%d d „Z dd„Z dd„Z dd„Z d&dd„Zd'dd„Zdd„Zdd„Zd(dd „Zd)d"d#„Zed$krÄddlZddlZejejƒjƒdS)*z6fontTools.misc.textTools.py -- miscellaneous routines.éNc@s@eZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd d „Z d S)ÚTagcCst|tƒr|jdƒ}|S)Nzlatin-1)Ú isinstanceÚbytesÚdecode)Zblob©rú=/tmp/pip-build-_d5lkt3n/fonttools/fontTools/misc/textTools.pyÚ transcode s  z Tag.transcodecCstj||j|ƒƒS)N)ÚstrÚ__new__r)ÚselfÚcontentrrrr sz Tag.__new__cCs |j|ƒ S)N)Ú__eq__)r ÚotherrrrÚ__ne__sz Tag.__ne__cCstj||j|ƒƒS)N)r r r)r rrrrr sz Tag.__eq__cCs tj|ƒS)N)r Ú__hash__)r rrrrsz Tag.__hash__cCs |jdƒS)Nzlatin-1)Úencode)r rrrÚtobytessz Tag.tobytesN) Ú__name__Ú __module__Ú __qualname__Ú staticmethodrr rr rrrrrrr s  rcCsttdd„|DƒƒƒS)z-Convert a list of hex strings to binary data.css|]}t|tƒr|VqdS)N)rr )Ú.0Úchunkrrrú %szreadHex..)ÚdeHexStrÚstrjoin)r rrrÚreadHex#srcCsft|jƒƒ}t|ƒdr |d}g}x8tdt|ƒdƒD]$}|jtt|||d…dƒƒƒq6Wt|ƒS)z$Convert a hex string to binary data.éÚ0ré)rÚsplitÚlenÚrangeÚappendÚbytechrÚintÚ bytesjoin)ZhexdataÚdataÚirrrr(s  $rcCsDtj}d}x4|D],}t|ƒ}|||d?d@||d@}qW|S)z$Convert binary data to a hex string.Úéé)ÚstringÚ hexdigitsÚbyteord)r'ÚhÚrÚcr(rrrÚhexStr3s  $r2é cCs†g}d}xLt|ƒD]@}|d@r(d|}nd|}|d?}|dds|j|ƒd}qW|rd|j|ƒ|jƒ|d ks|tdƒ‚dj|ƒS) Nr)éÚ1rérz$number doesn't fit in number of bitsú éÿÿÿÿ)rr8)r"r#ÚreverseÚAssertionErrorÚjoin)ÚlÚbitsÚitemsÚbinaryr(rrrÚ num2binary=s    r@cCs:t|jƒƒ}d}x$|D]}|d>}|dkr|dB}qW|S)Nrr4r)rr )Úbinr<ÚdigitrrrÚ binary2numPs   rCc Cs.yt|dd„d�Stk r(t|ƒSXdS)zdReturn a sorted copy of a list. If there are only strings in the list, it will not consider case. cSs |jƒ|fS)N)Úlower)ÚarrrÚ`szcaselessSort..)ÚkeyN)ÚsortedÚ TypeError)ÚalistrrrÚ caselessSortZsrKcCs4t|ƒ}|dkr0t|ƒ|}|r0|d||7}|S)zà Pad byte string 'data' with null bytes until its length is a multiple of 'size'. >>> len(pad(b'abcd', 4)) 4 >>> len(pad(b'abcde', 2)) 6 >>> len(pad(b'abcde', 4)) 8 >>> pad(b'abcdef', 4) == b'abcdef\x00\x00' True r4ó)rr!)r'ÚsizeÚ remainderrrrÚpades  rOÚasciiÚstrictcCst|tƒs|j||ƒS|SdS)N)rr r)ÚsÚencodingÚerrorsrrrÚtostrzs  rUcCs"t|tƒr|j||ƒSt|ƒSdS)N)rr rr)rRrSrTrrrr�s  rcCs t|gƒS)N)r)Únrrrr$ˆsr$cCst|tƒr|St|ƒS)N)rr%Úord)r1rrrr.Œsr.r)cCst|ƒj|ƒS)N)rUr;)ÚiterableÚjoinerrrrr�srócCst|ƒjdd„|DƒƒS)Ncss|]}t|ƒVqdS)N)r)rÚitemrrrr•szbytesjoin..)rr;)rXrYrrrr&”sr&Ú__main__)r3)rPrQ)rPrQ)r))rZ)Ú__doc__Úastr,Ú literal_evalZsafeEvalr rrrr2r@rCrKrOrUrr$r.rr&rÚdoctestÚsysÚexitÚtestmodÚfailedrrrrÚs(