o ?Og|Q@s ddlZddlZddlZgdZeefZddZdPddZdQdd Z d d Z d d Z e ddZ e ddZddZddZdZdZdZdZdZiaiaddZdRddZddZejdd e_dRd!d"Zejded#e_d$d%Zejd&d e_dSd'd(Zejd&d)d#e_d*d+Z dSd,d-Z!da"da#d.Z$d/Z%dTd0d1Z&ddddd2d3d4Z'ddd5d6d7d8Z(d9Z)da*da+da,dSd:d;Z-dZ/e/d?d@Z0dAdBZ1dCdDZ2dEdFZ3dGdHZ4dIdJZ5dKdLZ6dMdNZ7e8dOkre6dSdS)UN)encodedecode encodebytes decodebytes b64encode b64decode b32encode b32decode b32hexencode b32hexdecode b16encode b16decode b85encode b85decode a85encode a85decodestandard_b64encodestandard_b64decodeurlsafe_b64encodeurlsafe_b64decodecCslt|trz|dWStytdwt|tr|Szt|WSty5td|j j dw)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/alt/python310/lib64/python3.10/base64.py_bytes_from_decode_data"s"     r%cCs. tj|dd}|dur|td|S|S)NF)newline+/)binascii b2a_base64 translatebytes maketrans)r"altcharsencodedr#r#r$r3s rFcCsP t|}|durt|}|t|d}|r#td|s#tdt|S)Nr's[A-Za-z0-9+/]*={0,2}zNon-base64 digit found) r%r*r+r,re fullmatchr(Error a2b_base64)r"r-Zvalidater#r#r$rAs  rcC t|SN)rr!r#r#r$rZsrcCr3r4)rr!r#r#r$rasrr's-_cCs t|tSr4)rr*_urlsafe_encode_translationr!r#r#r$rosrcCs t|}|t}t|Sr4)r%r*_urlsafe_decode_translationrr!r#r#r$rxs rzK Encode the bytes-like objects using {encoding} and return a bytes object. a Decode the {encoding} encoded bytes-like object or ASCII string s. Optional casefold is a flag specifying whether a lowercase alphabet is acceptable as input. For security purposes, the default is False. {extra_args} The result is returned as a bytes object. A binascii.Error is raised if the input is incorrectly padded or if there are non-alphabet characters present in the input. a RFC 3548 allows for optional mapping of the digit 0 (zero) to the letter O (oh), and for optional mapping of the digit 1 (one) to either the letter I (eye) or letter L (el). The optional argument map01 when not None, specifies which letter the digit 1 should be mapped to (when map01 is not None, the digit 0 is always mapped to the letter O). For security purposes the default is None, so that 0 and 1 are not allowed in the input. s ABCDEFGHIJKLMNOPQRSTUVWXYZ234567s 0123456789ABCDEFGHIJKLMNOPQRSTUVcsR|tvrdd|DfddDt|<dt|ts#t|}t|d}|r3|dd|}t}tj}t|}t dt|dD]+}||||dd}|||d?||d ?d @||d ?d @||d @7}qE|d krd |dd<t |S|dkrd|dd<t |S|dkrd|dd<t |S|dkrd|dd<t |S)NcSg|]}t|fqSr#r+.0ir#r#r$ z_b32encode..csg|] }D]}||qqSr#r#r:abZb32tabr#r$r<rbigi s======is====s====) _b32tab2rrrrlen bytearrayint from_bytesranger+)alphabetr"leftoverr.rUZb32tab2r;cr#rAr$ _b32encodesB         rZc Cst|tvrddt|Dt|<t|}t|drtd|dur1t|}|tdd|}|r7| }t|}| d}|t|}t }t|}t dt|dD]1}|||d} d} z| D] } | d >|| } qdWn t y}td dw|| d d 7}qU|ds|d vrtd|r|r| d |K} | d d } d d |d} | d| |dd<t|S)NcSsi|]\}}||qSr#r#)r:kvr#r#r$ r=z_b32decode..zIncorrect paddings01OrOrrCzNon-base32 digit foundrE>rrIrLrN+)_b32rev enumerater%rRr(r1r*r+r,upperrstriprSrVKeyErrorto_bytes)rWr"casefoldmap01lZpadcharsdecodedZb32revr;ZquantaaccrYZlastrXr#r#r$ _b32decodesD         rncC tt|Sr4)rZ _b32alphabetr!r#r#r$r rZbase32)encodingcCstt|||Sr4)rnrp)r"rirjr#r#r$r sr )rrZ extra_argscCror4)rZ_b32hexalphabetr!r#r#r$r rqr Z base32hexcCs tt||Sr4)rnrsr"rir#r#r$r s r cCs t|Sr4)r(Zhexlifyrer!r#r#r$r sr cCs6 t|}|r |}td|rtdt|S)Ns [^0-9A-F]zNon-base16 digit found)r%rer/searchr(r1Z unhexlifyrtr#r#r$r s    r s<~s~>c st|ts t|}t| d}|r|d|}tdt|d|}fdd|D}|rQ|sQ|ddkrFdd |d<|dd| |d<d |S) NrNrDz!%dIcsPg|]$}r |s dnr|dkrdn|d|dd|dqS)zi yi^ Ui9r#)r:Zwordcharschars2foldnuls foldspacesr#r$r<9s   z_85encode..rPrwrrC) rrrrrRstructStructZunpackjoin) r@r{r|padr}r~paddingZwordschunksr#rzr$ _85encode/s     r)r~wrapcolradobecs tdurddtddDaddtDat|tt|d||r%trVt|r,dndfd dtd tD}|rQt|d dkrQ|d d ||r\t 7S)NcSr7r#r8r9r#r#r$r<\r=za85encode..!vcSg|] }tD]}||qqSr#) _a85charsr>r#r#r$r<]rBTrJrIcsg|] }||qSr#r#r9resultrr#r$r<esrrPr ) _a85chars2rVrr _A85STARTmaxrRappendr_A85END)r@r~rrrrr#rr$rGs&   rs )r~r ignorecharsc Cs| t|}|r%|tstdt|tr|dd}n|dd}tdj }g}|j }g}|j }|j } |dD]k} d| krHdkr}nn3|| t |dkr|d } |D] } d | | d} qXz||| Wn tj yxtd dw| q<| d kr|rtd |dq<|r| dkr|rtd|dq<| |vrq?@^_`{|}~cCs4 tdurddtDaddtDat|tt|S)NcSr7r#r8r9r#r#r$r<r=zb85encode..cSrr#) _b85charsr>r#r#r$r<rB) _b85chars2 _b85alphabetrr)r@rr#r#r$rs rc Cs: tdurdgdattD]\}}|t|<qt|}t| d}|d|}g}tdj}tdt|dD]T}|||d}d}z|D] }|dt|}qGWn t yst|D]\}}t|durqt d||dq^wz | ||Wq8tj yt d|dwd |} |r| d| } | S) NrC~rrryz#bad base85 character at position %dz+base85 overflow in hunk starting at byte %dr)_b85decrdrr%rRrrrrVrrrrr) r@r;rYroutrchunkrmjrr#r#r$rsR       rLrNrLcCsd |t}|s dSt|tkr'|tt|}|sn ||7}t|tkst|}||qr4)read MAXBINSIZErRr(r)write)inputoutputr"nsliner#r#r$rs    rcCs* |}|s dSt|}||qr4)readliner(r2r)rrrr"r#r#r$r s  rc Cszt|}Wnty}z d|jj}t||d}~ww|jdvr0d|j|jjf}t||jdkrBd|j|jjf}t|dS)Nz"expected bytes-like object, not %s)rYr@Bz-expected single byte elements, not %r from %srIz(expected 1-D data, not %d-D data from %s)rrrr rndim)r"merrmsgr#r#r$_input_type_checks$       rcCsN t|g}tdt|tD]}|||t}|t|qd|S)Nrr)rrVrRrrr(r)r)r"piecesr;rr#r#r$r$s rcCs t|t|Sr4)rr(r2r!r#r#r$r/s rc Cs6 ddl}ddl}z||jddd\}}Wn)|jyA}z|j|_t|td|jd|dWYd}~nd}~wwt}|D] \}}|dkrPt}|dkrVt }|dkr\t }|d krft dSqF|r|dd krt |dd }|||jj WddS1swYdS||j j |jj dS) NrrIZdeutzusage: %s [-d|-e|-u|-t] [file|-] -d, -u: decode -e: encode (default) -t: encode and decode string 'Aladdin:open sesame'rJz-ez-dz-uz-t-rb)sysgetoptargvrstderrstdoutprintexitrrtestopenbufferstdin) rrZoptsargsrfuncor?fr#r#r$main6s0    "rcCs<d}tt|t|}tt|t|}tt|dS)NsAladdin:open sesame)rreprrr)Zs0s1s2r#r#r$rPs   r__main__r4)NF)FN)F)FFF)9r/rr(__all__r+rSrr%rrrrr,r5r6rrZ_B32_ENCODE_DOCSTRINGZ_B32_DECODE_DOCSTRINGZ_B32_DECODE_MAP01_DOCSTRINGrprsrQrcrZrnrr__doc__r r r r r rrrrrrrrrrrrrZ MAXLINESIZErrrrrrrrr r#r#r#r$s~       $/    )H -