U ��.em�@sfddlZddlZddlZdddgZGdd�de�Zd dd�dd�Zdd d�Zd d �Ze d krbe�dS)�N�Error�encode�decodec@s eZdZdS)rN)�__name__� __module__� __qualname__�rr�/usr/lib64/python3.8/uu.pyr&sF��backtickc Csjg}�zH|dkrtjj}n`t|t�rz|dkr8tj�|�}|dkrfzt� |�j }Wnt k rdYnXt |d�}|� |�|dkr�tjj}nt|t�r�t |d�}|� |�|dkr�d}|dkr�d}|�dd�}|�dd�}|�d |d @|f�d ��|�d �}t|�d k�r0|�tj||d��|�d �}�q|�rB|�d�n |�d�W5|D]}|���qTXdS)N�-�rb�wbi�� z\n� z\rz begin %o %s i��ascii�-rr s` end s end )�close�sys�stdin�buffer� isinstance�str�os�path�basename�stat�st_mode�AttributeError�open�append�stdout�replace�writer�read�len�binasciiZb2a_uu)�in_file�out_file�name�moder � opened_files�f�datarrr r)sF             c Cspg}|dkrtjj}nt|t�r4t|d�}|�|��z|��}|sLt d��|� d�sXq8|� dd�}t |�dkr8|ddkr8zt |d d �Wq�Wq8tk r�Yq8Xq8|dk�r:|d�d ��d �}tj�|�r�t d |����|� tj��s*dtj��|k�s*tj�r:|� tj��s*dtj��|k�r:t d|�d���|dk�rRt |d d �}|dk�rftjj}n0t|t��r�t|d�}t�||�|}|�|�|��} | �rD| �d �dk�rDzt�| �} Wnjtj k �r,} zH| ddd@ddd} t�| d| ��} |�stj�d| �W5d} ~ XYnX|�| �|��} �q�| �sRt d��W5|D]}|���qZXdS)Nr r z'No valid begin line found in input filesbegin� ��r��s rz Cannot overwrite existing file: z..zRefusing to write to z due to directory traversalrsend� �?��z Warning: %s zTruncated input file)rrrrrrr r�readliner� startswith�splitr%�int� ValueError�rstriprrr�exists�sep�altsepr!�chmod�stripr&Za2b_uu�stderrr#) r'r(r*�quietr+r,ZhdrZ hdrfields�fp�sr-�v�nbytesrrr rcsr        �� ��       "   cCs4ddl}|jdd�}|jdddddd d �|jd d d ddd d �|��\}}t|�dkrl|�d�t�d�tjj }tj j }t|�dkr�|d}t|�dkr�|d}|j r�|j r�t |t�r�t|d�}nttjdd�t�d�t ||�nD|j �r&t |t��r t|d�}nttjdd�t�d�t||�dS)Nrz'usage: %prog [-d] [-t] [input [output]])Zusagez-dz--decoderzDecode (instead of encode)?F� store_true)�dest�help�default�actionz-tz--text�textz2data is text, encoded format unix-compatible text?r/zincorrect number of argumentsr1rz: cannot do -t to stdoutr z: cannot do -t from stdin)�optparseZ OptionParserZ add_option� parse_argsr%�errorr�exitrrr!rrMrrr�print�argvr)rN�parserZoptions�args�input�outputrrr �test�s6              rX�__main__)NN)NNF) r&rr�__all__� ExceptionrrrrXrrrrr � s : J&