File: //lib/python3.10/__pycache__/codecs.cpython-310.pyc
o
    E�hj�  �                
   @   sD  d Z ddlZddlZzddlT W n ey" Z zede ��dZ[ww g d�ZdZd Z	Z
d ZZd	Z
d
ZejdkrAe
 ZZe
Zne ZZeZe
ZeZe
ZeZG dd
� d
e�ZG dd� d�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�Z G dd� d�Z!G dd� d�Z"dCd#d$�Z#dDd%d&�Z$d'd(� Z%d)d*� Z&d+d,� Z'd-d.� Z(d/d0� Z)d1d2� Z*dEd3d4�Z+dEd5d6�Z,d7d8� Z-d9d:� Z.ze/d!�Z0e/d;�Z1e/d<�Z2e/d=�Z3e/d>�Z4e/d?�Z5W n e6y�   dZ0dZ1dZ2dZ3dZ4dZ5Y nw dZ7e7�r	ddl8Z8e9d@k�r e$ej:dAdB�e_:e$ej;dBdA�e_;dS dS )Fz� codecs -- Python Codec Registry, API and helpers.
Written by Marc-Andre Lemburg (mal@lemburg.com).
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
�    N)�*z%Failed to load the builtin codecs: %s),�register�lookup�open�EncodedFile�BOM�BOM_BE�BOM_LE�BOM32_BE�BOM32_LE�BOM64_BE�BOM64_LE�BOM_UTF8�	BOM_UTF16�BOM_UTF16_LE�BOM_UTF16_BE�	BOM_UTF32�BOM_UTF32_LE�BOM_UTF32_BE�	CodecInfo�Codec�IncrementalEncoder�IncrementalDecoder�StreamReader�StreamWriter�StreamReaderWriter�
StreamRecoder�
getencoder�
getdecoder�getincrementalencoder�getincrementaldecoder�	getreader�	getwriter�encode�decode�
iterencode�
iterdecode�
strict_errors�
ignore_errors�replace_errors�xmlcharrefreplace_errors�backslashreplace_errors�namereplace_errors�register_error�lookup_errors   s   ��s   ��s   ��  s     ���littlec                   @   s0   e Zd ZdZdZ		d	dd�dd�Zdd� ZdS )
r   z0Codec details when looking up the codec registryTN)�_is_text_encodingc          
      C   sP   t �| ||||f�}	||	_||	_||	_||	_||	_||	_||	_|d ur&||	_	|	S �N)
�tuple�__new__�namer#   r$   �incrementalencoder�incrementaldecoder�streamwriter�streamreaderr0   )
�clsr#   r$   r8   r7   r5   r6   r4   r0   �self� r;   �/usr/lib/python3.10/codecs.pyr3   ^   s   zCodecInfo.__new__c                 C   s   d| j j| j j| jt| �f S )Nz%<%s.%s object for encoding %s at %#x>)�	__class__�
__module__�__qualname__r4   �id�r:   r;   r;   r<