File: //lib64/python3.9/encodings/__pycache__/uu_codec.cpython-39.pyc
a
    �DOg#  �                   @   s�   d Z ddlZddlZddlmZ ddd�Zdd	d
�ZG dd� dej�ZG d
d� dej�ZG dd� dej	�Z	G dd� deej
�Z
G dd� deej�Zdd� ZdS )a  Python 'uu_codec' Codec - UU content transfer encoding.
This codec de/encodes from bytes to bytes.
Written by Marc-Andre Lemburg (mal@lemburg.com). Some details were
adapted from uu.py which was written by Lance Ellinghouse and
modified by Jack Jansen and Fredrik Lundh.
�    N)�BytesIO�strict�<data>�  c           	      C   s�   |dksJ �t | �}t � }|j}|j}|�dd�}|�dd�}|d|d@ |f �d�� |d	�}|r||t�|�� |d	�}q`|d
� |�� t| �fS )Nr   �
z\n�
z\rzbegin %o %s
i�  �ascii�-   s    
end
)	r   �read�write�replace�encode�binasciiZb2a_uu�getvalue�len)	�input�errors�filename�mode�infile�outfiler
   r   �chunk� r   �*/usr/lib64/python3.9/encodings/uu_codec.py�	uu_encode   s    
r   c           
   
   C   s�   |dksJ �t | �}t � }|j}|j}|� }|s8td��|d d� dkr&qLq&|� }|r�|dkr`q�zt�|�}W nT tjy� } z:|d d d@ d	 d d
 }	t�|d |	� �}W Y d }~n
d }~0 0 ||� qL|s�td��|�� t| �fS )Nr   z"Missing "begin" line in input data�   s   begins   end
r   �    �?   �   �   zTruncated input data)	r   �readliner   �
ValueErrorr   Za2b_uu�Errorr   r   )
r   r   r   r   r    r   �s�data�v�nbytesr   r   r   �	uu_decode%   s,    (
r'