o
    IAf!                     @   sT  	 d dl Z d dlZd dlmZ G dd deZeZzd dlmZ W n e	y,   dZY nw g dZ
dd Zi  ZZd	d
 Zedeeeeeeeeeeeee jeeeee jejfD ]Z eee < qZe!e ddZ e duroeee < e"jee"< e#jee#< e$jee$< e%jee%< edurejee< [[ dg fddZ&i  Z'Zdd Z(e(eed< e(eee< e(eee< e(ee< e(ee< e(ee< e(ee< e(ee< e(ee< e(ee j)< e(ee< e(ee< e(ee j< e(ee j< e(eej< e(ee< e&fddZ*e*ee"< e&fddZ+e+ee< e&fddZ,e,ee#< edure,ee< dd Z-e-ee j.< [dd Z/	de&dddZ0[ [[dS )    N)dispatch_tablec                   @   s   e Zd ZdS )ErrorN)__name__
__module____qualname__ r   r   /usr/lib/python3.10/copy.pyr   7   s    r   )PyStringMap)r   copydeepcopyc                 C   s   	 t | }t|}|r|| S t|t rt| S t|dd }|d ur'|| S t|}|d ur5|| }n!t| dd }|d urD|d}nt| dd }|rP| }ntd| t|t	r]| S t
| d g|R  S )N__copy____reduce_ex__   
__reduce__z%un(shallow)copyable object of type %s)type_copy_dispatchget
issubclass_copy_immutablegetattrr   r   
isinstancestr_reconstruct)xclscopierreductorrvr   r   r   r
   B   s.   





r
   c                 C      | S Nr   )r   r   r   r   r   k      r   CodeTypec           	      C   s"  	 |d u ri }t | }|||}||ur|S t| }t|}|d ur*|| |}nXt|tr5t| |}nMt| dd }|d urD||}n>t|}|rP|| }n!t| dd }|d ur_|d}nt| dd }|rk| }ntd| t	|t
ry| }n	t| |g|R  }|| ur|||< t| | |S )N__deepcopy__r   r   r   z"un(deep)copyable object of type %s)idr   r   _deepcopy_dispatchr   _deepcopy_atomicr   r   r   r   r   r   _keep_alive)	r   memoZ_nildyr   r   r   r   r   r   r   r      sF   







r   c                 C   r   r   r   r   r'   r   r   r   r%      r    r%   c                 C   s2   g }||t | < |j}| D ]	}|||| q|S r   )r#   append)r   r'   r   r)   r+   ar   r   r   _deepcopy_list   s   r-   c                    sh    fdd| D }zt |  W S  ty   Y nw t| |D ]\}}||ur/t|} |S q | }|S )Nc                    s   g | ]} |qS r   r   ).0r,   r   r'   r   r   
<listcomp>   s    z#_deepcopy_tuple.<locals>.<listcomp>)r#   KeyErrorziptuple)r   r'   r   r)   kjr   r/   r   _deepcopy_tuple   s   r6   c                 C   s:   i }||t | < |  D ]\}}|||||||< q|S r   )r#   items)r   r'   r   r)   keyvaluer   r   r   _deepcopy_dict   s
   r:   c                 C   s   t | | jt| j|S r   )r   __func__r   __self__r*   r   r   r   _deepcopy_method   s   r=   c                 C   s>   	 z|t | |  W d S  ty   | g|t |< Y d S w r   )r#   r+   r1   r*   r   r   r   r&      s   	r&   )r   c                   sZ  d u}|r|r fdd|D }|| }	|r|	t | < |d urc|r) |}t|	dr4|	| n/t|trDt|dkrD|\}}
nd }
|d urP|	j| |
d urc|
 D ]
\}}t	|	|| qX|d ur|ry|D ]} |}|	
| qkn
|D ]}|	
| q{|d ur|r|D ]\}} |} |}||	|< q|	S |D ]\}}||	|< q|	S )Nc                 3   s    | ]} |V  qd S r   r   )r.   argr/   r   r   	<genexpr>  s    z_reconstruct.<locals>.<genexpr>__setstate__   )r#   hasattrr@   r   r3   len__dict__updater7   setattrr+   )r   r'   funcargsstateZlistiterZdictiterr   Zdeepr)   	slotstater8   r9   itemr   r/   r   r     sJ   







r   )NNN)1typesweakrefcopyregr   	Exceptionr   errorZorg.python.corer	   ImportError__all__r
   r   r(   r   r   intfloatboolcomplexr   r3   bytes	frozensetrangeslicepropertyBuiltinFunctionTypeEllipsisNotImplementedFunctionTypereftr   listdictset	bytearrayr   r$   r%   r!   r-   r6   r:   r=   
MethodTyper&   r   r   r   r   r   <module>   s    2'





4






-