PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  lYP@sqddlZddlZddlZdddddddd d d d d ddddddgZeefZddZdddZddddZ ddZ ddZ ej ddZ ej ddZddZddZdZdadad dZddd!d Zd"d Zdd#d Zdadad$Zd%Zdddd&d'Zd(dd)dd*dd+dd,dZd(dd+dd-d.d/dZd0Zda da!da"dd1d Z#d2d Z$d3Z%e%d4d5Z&d6dZ'd7dZ(d8d9Z)d:dZ*d;d<Z+d=dZ,d>d?Z-d@dAZ.dBdCZ/e0dDkrme.dS)ENencodedecode encodebytes decodebytes b64encode b64decode b32encode b32decode b16encode b16decode b85encode b85decode a85encode a85decodestandard_b64encodestandard_b64decodeurlsafe_b64encodeurlsafe_b64decodecCst|trAy|jdSWntk r@tdYnXt|trT|Syt|jSWn+tk rtd|j j dYnXdS)Nasciiz4string argument should contain only ASCII charactersz>argument should be a bytes-like object or ASCII string, not %r) isinstancestrrUnicodeEncodeError ValueError bytes_types memoryviewtobytes TypeError __class____name__)sr %/opt/python35/lib/python3.5/base64.py_bytes_from_decode_data"s  r"cCsBtj|dd}|dk r>|jtjd|S|S)Ns+/)binascii b2a_base64 translatebytes maketrans)raltcharsencodedr r r!r3s FcCstt|}|dk r?t|}|jtj|d}|rgtjd| rgtjdtj|S)Ns+/s^[A-Za-z0-9+/]*={0,2}$zNon-base64 digit found) r"r'r(r)rematchr%Error a2b_base64)rr*Zvalidater r r!rBs   cCs t|S)N)r)rr r r!r[scCs t|S)N)r)rr r r!rbss+/s-_cCst|jtS)N)rr'_urlsafe_encode_translation)rr r r!rpscCs%t|}|jt}t|S)N)r"r'_urlsafe_decode_translationr)rr r r!rys s ABCDEFGHIJKLMNOPQRSTUVWXYZ234567cstdkr>ddtDfddDadt|ts_t|j}t|d}|r|td|}t}t j }t}x{t dt|dD]a}||||dd}|||d?||d?d @||d ?d @||d @7}qW|d kr>d |dds zb32encode..cs'g|]}D]}||qqSr r )r2ab)b32tabr r!r4s rbigi r#s======s====s====ir$) _b32tab2 _b32alphabetrrrrlenr( bytearrayint from_bytesrange)rZleftoverr+rIZb32tab2r3cr )r7r!rs4   +    c CsWtdkr%ddttDat|}t|drPtjd|dk rt|}|jtj dd|}|r|j }t|}|j d}|t|}t }t}xt dt|dD]}|||d}d} y'x |D]} | d >|| } qWWn$tk rYtjd dYnX|| jd d 7}qW|rM| d |K} | jd d } |d kr| dd|dd| dd|dds zb32decode..zIncorrect paddings01OrArr8zNon-base32 digit foundr9r#r@r>r?r=r$rQrCrQrBrQ)_b32rev enumeraterEr"rFr%r.r'r(r)upperrstriprGrJKeyErrorto_bytes) rcasefoldZmap01lZpadcharsdecodedZb32revr3ZquantaaccrKZlastr r r!r sJ             cCstj|jS)N)r%ZhexlifyrU)rr r r!r scCsLt|}|r|j}tjd|r?tjdtj|S)Ns [^0-9A-F]zNon-base16 digit found)r"rUr,searchr%r.Z unhexlify)rrYr r r!r s  s<~s~>c st|ts!t|j}t| d}|rF|d|}tjdt|dj|}fdd|D}|r| r|d dkrdd |d <|d d| |d.r#r^rr8r$r$r$r$) rrrrrFstructStructunpackjoin) r6rarbpadrcrdpaddingZwordschunksr )rarbrcrdr! _85encodes&  rmrdwrapcolrjadobecstdkr;ddtddDaddtDat|tt|d||rftrt|r{dndfd dtd tD}|rt|d dkr|jd d j||rt 7S)NcSsg|]}t|fqSr )r()r2r3r r r!r4Ls za85encode..!vcSs'g|]}tD]}||qqSr ) _a85chars)r2r5r6r r r!r4Ms Tr>r#cs$g|]}||qSr r )r2r3)resultrnr r!r4Us rres r$) rrrJ _a85chars2rm _A85STARTmaxrFappendri_A85END)r6rdrnrjrorlr )rsrnr!r7s"     ignorecharss c Cst|}|rh|jts6tdjt|jtrX|dd}n|dd}tjdj }g}|j }g}|j }|j } x6|dD]*} d| kodknrX|| t |dkrd} x |D]} d | | d } qWy||| Wn$tj k rMtd dYnX| q| dkr|rvtd |dq|r| dkr|rtd|dq| |krqqtd| qWdj|} dt |} | r| d| } | S)Nz1Ascii85 encoded byte sequences must end with {!r}r>z!Iur?!rr8r`rpzAscii85 overflowr^zz inside Ascii85 5-tuplesr_zy inside Ascii85 5-tuples zNon-Ascii85 digit found: %crerRrRsuuuurpuzy)r"endswithrxrformat startswithrurfrgpackrwclearrFerrorri)r6rdrorypackIr[Zdecoded_appendZcurrZ curr_appendZ curr_clearxr\rsrkr r r!r`sV              sU0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~cCsEtdkr2ddtDaddtDat|tt|S)NcSsg|]}t|fqSr )r()r2r3r r r!r4s zb85encode..cSs'g|]}tD]}||qqSr ) _b85chars)r2r5r6r r r!r4s )r _b85alphabet _b85chars2rm)r6rjr r r!r s c Cstdkr@dgdax$ttD]\}}|t|xAt|D]3\}}t|dkrt d||dqWYnXy|j ||Wqtj k rt d|dYqXqWd j |} |r| d| } | S) Nr8~z!Irr`z#bad base85 character at position %dz+base85 overflow in hunk starting at byte %dre)_b85decrTrr"rFrfrgrrJrrrwrri) r6r3rKrkoutrchunkr\jrsr r r!r s<     Lr?r@cCsxy|jt}|sPx@t|tkr[|jtt|}|sNP||7}qWtj|}|j|qWdS)N)read MAXBINSIZErFr%r&write)inputoutputrnsliner r r!rscCs:x3|j}|sPtj|}|j|qWdS)N)readliner%r/r)rrrrr r r!rs  cCsyt|}WnDtk rV}z$d|jj}t||WYdd}~XnX|jdkrd|j|jjf}t||jdkrd|j|jjf}t|dS) Nz"expected bytes-like object, not %srKr6Bz-expected single byte elements, not %r from %sr#z(expected 1-D data, not %d-D data from %s)rKr6r)rrrrrndim)rmerrmsgr r r!_input_type_checks" rcCsjt|g}xJtdt|tD]0}|||t}|jtj|q)Wdj|S)Nrre)rrJrFrrwr%r&ri)rpiecesr3rr r r!rs  cCs)ddl}|jdtdt|S)NrzAencodestring() is a deprecated alias since 3.1, use encodebytes()r>)warningswarnDeprecationWarningr)rrr r r! encodestrings   rcCst|tj|S)N)rr%r/)rr r r!r's cCs)ddl}|jdtdt|S)NrzHdecodestring() is a deprecated alias since Python 3.1, use decodebytes()r>)rrrr)rrr r r! decodestring,s   rc Cstddl}ddl}y)|j|jddd\}}Wn`|jk r}z=|j|_t|td|jd|jdWYdd}~XnXt}xa|D]Y\}}|dkrt}|dkrt }|dkrt }|d krt dSqW|rW|dd krWt |dd }|||jj WdQRXn||j j |jj dS) Nrr#Zdeutzusage: %s [-d|-e|-u|-t] [file|-] -d, -u: decode -e: encode (default) -t: encode and decode string 'Aladdin:open sesame'r>z-ez-dz-uz-t-rb)sysgetoptargvrstderrstdoutprintexitrrtestopenbufferstdin) rrZoptsargsrfuncor5fr r r!main6s0)       rcCsRd}tt|t|}tt|t|}tt|dS)NsAladdin:open sesame)rreprrr)Zs0s1s2r r r!rPs  r__main__)1r,rfr%__all__r(rGrr"rrrrr)r0r1rrrErDrSrr r r rrrtrurxrmrrrrrrr r Z MAXLINESIZErrrrrrrrrrrr r r r! sf             &J $)H -