o ?Ogq@s gdZdZdZdZdZz ddlmZmZWn ey$dZdZYnwdd Z d d Z dd dZ dddZ dddZ dddZddZddZddZedkrVedSdS))encodedecode encodestring decodestring=Ls0123456789ABCDEF)a2b_qpb2a_qpNcCs< |dvr|S|dkr |S|tkpd|kodkn S)N _ ~)ESCAPE)c quotetabsheaderr-/opt/alt/python310/lib64/python3.10/quopri.py needsquotings "rcCs* t|}ttt|dt|dfS)N)ordrbytesHEXrrrrquote$s rFc Cs> tdur|}t|||d}||dS|dfdd}d} |}|s(nig} d} |dddkr<|dd}d} |D]"} t| f} t| ||rOt| } |r[| dkr[| d q>| | q>|duri||t | } t | t kr|| dt dd d | t dd} t | t kst| }q!|dur||| d dSdS) Nrr cSsn|r|dddvr||ddt|dd|dS|dkr.|t||dS|||dS)Nr .)writer)soutputlineEndrrrr ;s *zencode..writerrr r s= )r#) r readr readlinerrrappend EMPTYSTRINGjoinlen MAXLINESIZE) inputr"rrdataodatar ZprevlinelineZoutlinestrippedrZthislinerrrr,sH           !rcCsFtdur t|||dSddlm}||}|}t|||||S)NrrBytesIO)r ior2rgetvalue)r!rrr2infpoutfprrrrjs rc Cs tdur|}t||d}||dSd} |}|s ndt|}}|dkr\||d|dkr\d} |d}|dkr[||d|dvr[|d}|dkr[||d|dvsInd} ||kr|||d} | dkry|ry|d}|d}no| tkr|| }|d}nb|d|kr| sd} n[|d|kr||d|d tkr|t}|d }n<|d |krt||d|d rt||d |d r|tt||d|d f}|d }n|| }|d}||ksb| s||dd}q|r||dSdS) Nrrr$rrs r r ) r r%r r&r*rishexrunhex) r,r"rr-r.newr/inpartialrrrrrusN    $<,rcCsDtdur t||dSddlm}||}|}t|||d|S)Nr7rr1)r r3r2rr4)r!rr2r5r6rrrrs  rcCsJ d|ko dknp$d|kodknp$d|ko"dkSS)N09afAFrrrrrr:sHr:cCs d}|D]G}t|f}d|krdkrnntd}n%d|kr'dkr0nntdd}nd |kr:d krBnntd d}|d t||}q|S) Nrr@rA0rBrCa rDrEr)rr)r!bitsrr=rrrr;s   r;c Csddl}ddl}z||jddd\}}Wn,|jyC}z|j|_t|tdtdtd|dWYd}~nd}~wwd}d}|D]\}}|d krTd }|d krZd }qJ|rl|rl|j|_td |d|sqd g}d} |D]W} | d kr|jj } n&zt | d} Wnt y}z|j d| |fd} WYd}~qud}~wwz|rt | |jj nt| |jj |W| d kr| qu| d kr| ww| r|| dSdS)Nrr$Ztdz"usage: quopri [-t | -d] [file] ...z-t: quote tabsz-d: decode; default encoder8Fz-tTz-dz -t and -d are mutually exclusive-rbz%s: can't open (%s) )sysgetoptargverrorstderrstdoutprintexitstdinbufferopenOSErrorr rrclose) rLrMZoptsargsmsgZdecoZtabsorGstsfilefprrrmainsd        r___main__)F)FF)__all__rr+rr(Zbinasciir r ImportErrorrrrrrrr:r;r___name__rrrrs0   > + .