a �DOgb�@s�gd�ZdZdZdZdZzddlmZmZWneyFdZdZYn0dd �Z d d �Z dd d�Z ddd�Z ddd�Z ddd�Zdd�Zdd�Zdd�Zedkr�e�dS) )�encode�decode� encodestring� decodestring�=�Ls0123456789ABCDEF��)�a2b_qp�b2a_qpNcCs:|dvr |S|dkr|S|tkp8d|ko2dkn S)N� �_� �~)�ESCAPE)�c� quotetabs�header�r�/usr/lib64/python3.9/quopri.py� needsquotings rcCs(t|�}ttt|dt|df�S)N�)�ordr�bytes�HEX�rrrr�quote$srFc Cs2tdur,|��}t|||d�}|�|�dS|dfdd�}d}|��}|sN�qg} d} |dd�dkrv|dd�}d} |D]D} t| f�} t| ||�r�t| �} |r�| dkr�| �d�qz| �| �qz|dur�||�t� | �} t | �t k�r|| dt d �d d �| t d d�} q�| }q>|du�r.||| d �dS) N�rr� cSsj|r<|dd�dvr<|�|dd�t|dd��|�n*|dkrX|�t|�|�n|�||�dS)N�����r �.)�writer)�s�output�lineEndrrrr ;s (zencode..writerrr r �s= )r#) r �readr �readlinerrr�append� EMPTYSTRING�join�len� MAXLINESIZE) �inputr"rr�data�odatar Zprevline�lineZoutline�strippedrZthislinerrrr,s>           rcCsFtdurt|||d�Sddlm}||�}|�}t||||�|��S)Nrr��BytesIO)r �ior2r�getvalue)r!rrr2�infp�outfprrrrjs rc Cs�tdur*|��}t||d�}|�|�dSd}|��}|s>�q�dt|�}}|dkr�||d|�dkr�d} |d}|dkr�||d|�dvr�|d}qtnd} ||k�r�|||d�} | dkr�|r�|d}|d}q�| tkr�|| }|d}q�|d|k�r| �sd} �q�q�|d|k�rJ||d|d �tk�rJ|t}|d }q�|d |k�r�t||d|d ���r�t||d |d ���r�|tt||d|d ��f�}|d }q�|| }|d}q�| s.|�|d�d}q.|�r�|�|�dS) N�rrrr$rs r r ��) r r%r r&r*r�ishexr�unhex) r,r"rr-r.�newr/�i�n�partialrrrrrus@       (B,rcCsDtdurt||d�Sddlm}||�}|�}t|||d�|��S)Nr7rr1)r r3r2rr4)r!rr2r5r6rrrr�s  rcCsHd|kodknpFd|ko*dknpFd|koBdkSS)N�0�9�a�f�A�Frrrrrr:�sr:cCs�d}|D]�}t|f�}d|kr*dkr8nn td�}nLd|krLdkr^nntd�d}n&d |krrd kr�nntd �d}n|d t|�|}q|S) Nrr@rA�0rBrC�a� rDrEr)rr)r!�bitsrr=rrrr;�s  r;c Cs�ddl}ddl}z|�|jdd�d�\}}WnX|jy�}z>|j|_t|�td�td�td�|�d�WYd}~n d}~00d}d}|D] \}}|d kr�d }|d kr�d }q�|r�|r�|j|_td �|�d�|s�d g}d} |D]�} | d k�r|jj } nZzt | d�} WnJt �yZ}z0|j� d| |f�d} WYd}~q�WYd}~n d}~00z<|�rtt | |jj �nt| |jj |�W| d k�r�| ��q�| d k�r�| ��0q�| �r�|�| �dS)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) )�sys�getopt�argv�error�stderr�stdout�print�exit�stdin�buffer�open�OSErrorr rr�close) rLrMZopts�args�msgZdecoZtabs�orG�sts�file�fprrr�main�sR       "  �  r_�__main__)F)FF)F)F)�__all__rr+rr(Zbinasciir r � ImportErrorrrrrrrr:r;r_�__name__rrrr�s(   > + .