Edit File: quopri.cpython-37.opt-1.pyc
B ����q}�ca������������������@���s����d�Z�ddddgZdZdZdZdZyd d lmZmZ�W�n�e k rP���dZdZY�nX�dd ��Z dd��Zddd�Zddd�Z ddd�Zddd�Zdd��Zdd��Zdd��Zedkr�e���dS�) zHConversions to/from quoted-printable transport encoding as per RFC 1521.�encode�decode�encodestring�decodestring����=�L���s���0123456789ABCDEF����������)�a2b_qp�b2a_qpNc�������������C���s:���|�dkr|S�|�dkr|S�|�t�kp8d|���ko2dkn���S�)z�Decide whether a particular byte ordinal needs to be quoted. The 'quotetabs' flag indicates whether embedded tabs and spaces should be quoted. Note that line-ending tabs and spaces are always encoded, as per RFC 1521. s��� ����_���� ����~)�ESCAPE)�c� quotetabs�header��r����+/opt/alt/python37/lib64/python3.7/quopri.py�needsquoting���s ����r���c�������������C���s(���t�|��}�ttt|�d��t|�d��f��S�)zQuote a single character.����)�ordr����bytes�HEX)r���r���r���r����quote$���s����r���Fc������� ������C���s<��t�dk r,|����}t�|||d�}|�|��dS�|dfdd�}d}x�|����}|sNP�g�} d} |dd��dkrv|dd��}d} xL|D�]D}t|f�}t|||�r�t|�}|r�|dkr�| �d ��q|| �|��q|W�|dk r�||��t� | �}x:t |�tk�r||dtd ���dd��|td �d��}q�W�|}q@W�|dk �r8||| d��dS�) av��Read 'input', apply quoted-printable encoding, and write to 'output'. 'input' and 'output' are binary file objects. The 'quotetabs' flag indicates whether embedded tabs and spaces should be quoted. Note that line-ending tabs and spaces are always encoded, as per RFC 1521. The 'header' flag indicates whether we are encoding spaces as _ as per RFC 1522.N)r���r������� c�������������S���sj���|�r<|�dd���dkr<|��|�d�d��t|�dd�����|���n*|�dkrX|��t|��|���n|��|�|���d�S�)N���s��� ����.)�writer���)�s�output�lineEndr���r���r���r���;���s ����(zencode.<locals>.writer���r���r���r�������s���= )r ���)r ����readr����readliner���r���r����append�EMPTYSTRING�join�len�MAXLINESIZE) �inputr���r���r����data�odatar���Zprevline�lineZoutline�strippedr���Zthisliner���r���r���r���,���s@���� c�������������C���sF���t�d�k rt�|�||d�S�ddlm}�||��}|��}t||||��|���S�)N)r���r���r���)�BytesIO)r ����ior.���r����getvalue)r���r���r���r.����infp�outfpr���r���r���r���j���s����c�������������C���s��t�dk r*|����}t�||d�}|�|��dS�d}�x�|����}|s@P�dt|��}}|dkr�||d�|��dkr�d} |d�}x.|dkr�||d�|��dkr�|d�}qxW�nd} �x*||k��r�|||d���} | dkr�|r�|d �}|d�}q�| tkr�|| �}|d�}q�|d�|k�r| �sd} P�q�|d�|k��rR||d�|d ���tk�rR|t�}|d �}q�|d �|k��r�t||d�|d �����r�t||d �|d�����r�|tt||d�|d����f��}|d�}q�|| �}|d�}q�W�| s2|�|d���d}q2W�|�r�|�|��dS�)z�Read 'input', apply quoted-printable decoding, and write to 'output'. 'input' and 'output' are binary file objects. If 'header' is true, decode underscore as space (per RFC 1522).N)r���r���r���r!���r���s��� r���r�����������) r ���r"���r���r#���r'���r����ishexr����unhex)r)���r���r���r*���r+����newr,����i�n�partialr���r���r���r���r���u���sR���� ��� � �(� B"� �c�������������C���sD���t�d�k rt�|�|d�S�ddlm}�||��}|��}t|||d��|���S�)N)r���r���)r.���)r ���r/���r.���r���r0���)r���r���r.���r1���r2���r���r���r���r�������s����c�������������C���sH���d|���kodkn��pFd|���ko*dkn��pFd|���koBdkS���S�)zDReturn true if the byte ordinal 'c' is a hexadecimal digit in ASCII.����0����9����a����f����A����Fr���)r���r���r���r���r5�������s����r5���c�������������C���s����d}x�|�D�]�}t�|f�}d|��kr,dkr:n�n td�}nLd|��krNdkr`n�ntd�d�}n&d |��krtd kr�n�ntd �d�}n�|d�t|�|��}q W�|S�)z.Get the integer value of a hexadecimal number.r���r;���r<����0r=���r>����a� ���r?���r@���r���)r���r���)r����bitsr���r8���r���r���r���r6�������s���� r6���c��������������C���s���dd�l�}�dd�l}y|�|�jdd���d�\}}W�nV�|jk r��}�z6|�j|�_t|��td��td��td��|��d��W�d�d�}~X�Y�nX�d}d}x(|D�] \}}|dkr�d}|d kr�d}q�W�|r�|r�|�j|�_td ��|��d��|s�dg}d} x�|D�]�} | dk�r|�jj }nNyt | d�}W�n>�tk �rR�}�z|�j�d | |f���d} w�W�d�d�}~X�Y�nX�z*|�rlt ||�jj ��nt||�jj |��W�d�| dk�r�|����X�q�W�| �r�|��| ��d�S�)Nr���r!���Ztdz"usage: quopri [-t | -d] [file] ...z-t: quote tabsz-d: decode; default encoder3���z-tz-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���r���r����close)rG���rH���Zopts�args�msgZdecoZtabs�orB����sts�file�fpr���r���r����main����sT������ � rZ����__main__)F)FF)F)F)�__doc__�__all__r���r(���r���r%���Zbinasciir ���r ����ImportErrorr���r���r���r���r���r���r5���r6���rZ����__name__r���r���r���r����<module>���s*��� > + .