U
    ªÊ¹jÜ)  ã                   @   s  d dl Zd dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0m1Z1 d dl2Z2ej3dd�dd	„ ƒZ4G d
d„ dƒZ5ddœe6dœdd„Z7dS )é    N)ÚOrderedDict)%ÚAPPENDÚAPPENDSÚBINFLOATÚBINGETÚBININTÚBININT1ÚBININT2Ú	BINPERSIDÚBINPUTÚ
BINUNICODEÚBUILDÚbytes_typesÚdecode_longÚ
EMPTY_DICTÚ
EMPTY_LISTÚ	EMPTY_SETÚEMPTY_TUPLEÚGLOBALÚLONG1ÚLONG_BINGETÚLONG_BINPUTÚMARKÚNEWFALSEÚNEWOBJÚNEWTRUEÚNONEÚPROTOÚREDUCEÚSETITEMÚSETITEMSÚSHORT_BINSTRINGÚSTOPÚTUPLEÚTUPLE1ÚTUPLE2ÚTUPLE3ÚUnpicklingError)Úunpack)Úmaxsize)ÚAnyÚDictÚListé   c               
   C   sæ   t tjjtjjtjtjdœ} tjtj	tj
tjtjtjtjtjtjtjf
D ]}|| t|ƒ< qHtjD ]}|| |j› d|j› �< q`tjD ]}|| |j› d|j› �< q‚tjjtjjtjjtjjtjjfD ]}|| d|j› �< qÀtjj| d< | S )N)zcollections.OrderedDictztorch.nn.parameter.Parameterztorch.serialization._get_layoutz
torch.Sizeztorch.TensorÚ.ztorch._utils.z#torch._tensor._rebuild_from_type_v2)r   ÚtorchÚnnÚ	ParameterÚserializationZ_get_layoutÚSizeÚTensorZ	complex32Z	complex64Z
complex128Zfloat16Zfloat32Zfloat64Zint8Zint16Zint32Zint64ÚstrZ_tensor_classesÚ
__module__Ú__name__Z_storage_classesZ_utilsZ_rebuild_parameterZ_rebuild_tensorZ_rebuild_tensor_v2Z_rebuild_sparse_tensorZ_rebuild_meta_tensor_no_storageZ_tensorZ_rebuild_from_type_v2)ÚrcÚtÚttÚtsÚf© r=   ú\/var/www/html/bwave/python/venv/lib/python3.8/site-packages/torch/_weights_only_unpickler.pyÚ_get_allowed_globalsD   s>    û	ö

ûr?   c                   @   s8   e Zd Zddœedœdd„Zdd„ Zdd„ Zd	d
„ ZdS )Ú	UnpicklerÚbytes©Úencodingc                C   s    || _ |j| _|j| _i | _d S ©N)rC   ÚreadlineÚreadÚmemo)ÚselfÚfilerC   r=   r=   r>   Ú__init__r   s    zUnpickler.__init__c                 C   s  g | _ g | _| jj| _| j}| j}|dƒ}|s2t‚t|tƒs@t‚|d t	d kr²|ƒ dd…  
d¡}|ƒ dd…  
d¡}|› d|› �}|tƒ kr¢|  tƒ | ¡ ntd|› �ƒ‚q"|d td k�r| j ¡ }| j ¡ }|tjjk	ròtd|› �ƒ‚|  tjj|Ž ¡ q"|d td k�rZ| j ¡ }| jd }	|	tƒ  ¡ k�rJtd	|	› �ƒ‚|	|Ž | jd< q"|d td k�rê| j ¡ }
| jd }t|ƒtjk�rœ|j|
Ž  nLt|ƒtjjk�rº| |
¡ n.t|ƒtk�rÖ|j |
¡ ntd
t|ƒ› �ƒ‚q"|d td k�r<| j ¡ }| jd }t|ƒtk	�r0tdt|ƒ› �ƒ‚| |¡ q"|d td k�rŒ|  ¡ }| jd }t|ƒtk	�r€tdt|ƒ› �ƒ‚|  |¡ q"|d t!d k�rÄ| j ¡ | j ¡  }}|| jd |< q"|d t"d k�r|  ¡ }t#dt$|ƒdƒD ] }||d  | jd || < �qîq"|d t%d k�rD| j  | j¡ g | _| jj| _q"|d t&d k�rn|  ¡ }|  t'|ƒ¡ q"|d t(d k�r”| jd f| jd< q"|d t)d k�rÈ| jd | jd fg| jdd…< q"|d t*d k�r| jd | jd | jd fg| jdd…< q"|d t+d k�r"|  d¡ q"|d t,d k�r@|  d¡ q"|d t-d k�r^|  d¡ q"|d t.d k�r||  d¡ q"|d t/d k�rš|  g ¡ q"|d t0d k�r¸|  i ¡ q"|d t1d k�rØ|  t2ƒ ¡ q"|d t3d k�r|  t4d|dƒƒd ¡ q"|d t5d k�r,|  |  d¡d ¡ q"|d t6d k�rX|  t4d|dƒƒd ¡ q"|d t7d k�r†|  t4d|  d¡ƒd ¡ q"|d t8d k�rØt4d|dƒƒd }|t9k�r¼tdƒ‚t:||ƒddƒ}|  |¡ q"|d t;d k�r$|dƒd }||ƒ}| j<dk�r| 
| j<d¡}|  |¡ q"|d t=d k�rÄ| j ¡ }t|ƒt'k	�rnt|ƒt>k�rntdt|ƒ› �ƒ‚t|ƒt'k�r²t$|ƒdk�r²tj? @|d ¡dk�r²td|d › �ƒ‚|  |  A|¡¡ q"|d tBd tCd fk�r|d tBd k�rø|dƒnt4d|dƒƒd }|  | jD| ¡ q"|d tEd tFd fk�r†|d tEd k�rP|dƒnt4d|dƒƒd }|dk �rttGd ƒ‚| jd | jD|< q"|d tHd k�r¼|dƒd }||ƒ}|  tI|ƒ¡ q"|d tJd k�rÜ|dƒd  q"|d tKd k�rü| j ¡ }|S td!|d › �ƒ‚q"dS )"z‹Read a pickled object representation from the open file.

        Return the reconstituted object hierarchy specified in the file.
        r-   r   Néÿÿÿÿzutf-8r.   zUnsupported class z(Trying to instantiate unsupported class z0Trying to call reduce for unrecognized function z:Can only build Tensor, parameter or dict objects, but got z"Can only append to lists, but got zCan only extend lists, but got é   éþÿÿÿéýÿÿÿFTr=   z<ié   z<Hz>dé   z<IzString is too longÚsurrogatepassrA   Ústrictz1persistent_load id must be tuple or int, but got Zstoragez4Only persistent_load of storage is allowed, but got znegative argumentzUnsupported operand )LÚ	metastackÚstackÚappendrF   rE   ÚEOFErrorÚ
isinstancer   ÚAssertionErrorr   Údecoder?   ÚRuntimeErrorr   Úpopr/   r0   r1   r   Úvaluesr   Útyper4   Úset_Ú__setstate__r   Ú__dict__Úupdater   Úlistr   Úpop_markÚextendr   r    ÚrangeÚlenr   r#   Útupler$   r%   r&   r   r   r   r   r   r   r   Úsetr   r(   r   r	   r   r   r)   r5   r!   rC   r
   Úintr2   Z_maybe_decode_asciiÚpersistent_loadr   r   rG   r   r   Ú
ValueErrorr   r   r   r"   )rH   rF   rE   ÚkeyÚmoduleÚnameÚ	full_pathÚargsÚclsÚfuncÚstateÚinstÚitemÚlist_objÚitemsÚvÚkÚiZstrlenÚstrvalZstrdataÚpidÚidxÚnÚdatar8   r=   r=   r>   Úloadx   s$   





ÿ

ÿ

ÿ
ÿ "*

ÿ
ÿ
þýÿ,,

zUnpickler.loadc                 C   s    | j }| j ¡ | _ | j j| _|S rD   )rT   rS   r[   rU   )rH   rw   r=   r=   r>   rc     s    
zUnpickler.pop_markc                 C   s   t dƒ‚d S )Nz%unsupported persistent id encountered)r'   )rH   r|   r=   r=   r>   rj   !  s    zUnpickler.persistent_loadN)r7   r6   Ú__qualname__r5   rJ   r€   rc   rj   r=   r=   r=   r>   r@   q   s
    $r@   ÚASCIIrB   c                C   s   t | |d� ¡ S )NrB   )r@   r€   )rI   rC   r=   r=   r>   r€   %  s    r€   )8Ú	functoolsÚ
_functoolsÚcollectionsr   Úpickler   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   Ústructr(   Úsysr)   Útypingr*   r+   r,   r/   Ú	lru_cacher?   r@   r5   r€   r=   r=   r=   r>   Ú<module>   s   œ'

, 5