
    ȅiY                     h   % S SK rS SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/  S SK0J1r1  S SK2J3r3  S SK4J5r5  S SK6r6S S	K7J8r8J9r9J:r:  / S
Qr;\<" 5       q=\<\	\>\	\?4   -     \@S'   S\A\	\>\	\?4   -     4S jrBS\A\	\>\	\?4   -     4S jrCS rDS\A\	\>\	\?4   -     4S jrE " S S5      rFS rGS rH\R                  " SS9S 5       rJS\	S\>\?\?4   4S jrKS\<\?   4S jrL " S S5      rMSS.S \?4S! jjrNg)"    N)encode)CounterOrderedDict)Callable)%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)_sparse_tensors_to_validateIMPORT_MAPPINGNAME_MAPPING)sysosposixnt_marked_safe_globals_setsafe_globalsc                 @    [         R                  [        U 5      5      q g N)r6   unionsetr7   s    W/home/james-whalen/.local/lib/python3.13/site-packages/torch/_weights_only_unpickler.py_add_safe_globalsr>   Z   s    7==c,>OP    returnc                       [        [        5      $ r9   )listr6    r?   r=   _get_safe_globalsrD   _   s    ())r?   c                      [        5       qg r9   )r;   r6   rC   r?   r=   _clear_safe_globalsrF   d   s
    "ur?   globals_to_removec                 (    [         [        U 5      -
  q g r9   )r6   r;   )rG   s    r=   _remove_safe_globalsrI   i   s      8#>O:PPr?   c                   D    \ rS rSrS\\\\\4   -     4S jrS r	S r
Srg)_safe_globalsp   r7   c                     Xl         g r9   r<   )selfr7   s     r=   __init___safe_globals.__init__q   s    (r?   c                 .    [        U R                  5        g r9   )r>   r7   )rN   s    r=   	__enter___safe_globals.__enter__t   s    $++,r?   c                 .    [        U R                  5        g r9   )rI   r7   )rN   typevaluetbs       r=   __exit___safe_globals.__exit__w   s    T../r?   r<   N)__name__
__module____qualname____firstlineno__rB   r   tuplestrrO   rR   rX   __static_attributes__rC   r?   r=   rK   rK   p   s+    )T(U8S=5I*I%J )-0r?   rK   c                  L   0 n [          H  n[        U[        5      (       a_  [        U5      S:w  a  [	        S[        U5       35      e[        US   5      [        La  [        S[        US   5       35      eUu  pXU'   Mw  UR                  UR                  p#XU SU 3'   M     U $ )N   zYExpected tuple of length 2 (global, str of callable full path), but got tuple of length:    zHExpected second item in tuple to be str of callable full path, but got: .)
r6   
isinstancer^   len
ValueErrorrU   r_   	TypeErrorr[   r\   )rcfnamemodules       r=   _get_user_allowed_globalsrm      s    B%a1v{ opstupvowx  AaDz$^_cdefgdh_i^jk  GAtH<<D%&&4&!" & Ir?   c                  ^   [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R
                  [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  1$ r9   )torch_utils_rebuild_parameter_rebuild_parameter_with_state_rebuild_qtensor_rebuild_tensor_rebuild_tensor_v2_rebuild_tensor_v3_rebuild_sparse_tensor_rebuild_meta_tensor_no_storage_rebuild_nested_tensor_rebuild_wrapper_subclass!_rebuild_device_tensor_from_numpy&_rebuild_device_tensor_from_cpu_tensorrC   r?   r=   _tensor_rebuild_functionsr}      s    ''22%%$$''''++44++.. 	66 	;;# r?   rc   c                     [         [        [        R                  R                  [        R
                  R                  [        R                  [        R                  [        R                  [        [        [        [        S.n [        R                  R                  5        H  nX[!        U5      '   M     [        R                  R#                  5        H  nX[!        U5      '   M     [%        SS5       Vs/ s H  n['        [        SU 35      PM     sn H  nX[!        U5      '   M     [%        SS5       Vs/ s H  n['        [        SU 35      PM     sn H  nX[!        U5      '   M     [        R(                   H   nX0UR*                   SUR,                   3'   M"     [        R.                   H  nU[        R                  R0                  [        R                  R2                  4;  aF  [        R
                  R5                  UR,                  5      XR*                   SUR,                   3'   M  X@UR*                   SUR,                   3'   M     [        R6                  [        R8                  [        R:                  [        R<                  [        R>                  4 H  nXP[!        U5      '   M     [A        5        H  nX`SUR,                   3'   M     [        RB                  RD                  U S'   U $ s  snf s  snf )	N)zcollections.OrderedDictzcollections.Counterztorch.nn.parameter.Parameterztorch.serialization._get_layoutz
torch.Sizeztorch.Tensorztorch.devicez_codecs.encodezbuiltins.bytearrayzbuiltins.setzbuiltins.complexrc      uintintrd   ztorch._utils.z#torch._tensor._rebuild_from_type_v2)#r   r   ro   nn	Parameterserialization_get_layoutSizeTensordevicer   	bytearrayr;   complexstorage_dtype_to_storage_type_mapr_   _new_dtypesrangegetattr_tensor_classesr[   rZ   _storage_classesTypedStorageUntypedStorageStorageTypeper_tensor_affineper_tensor_symmetricper_channel_affineper_channel_symmetric per_channel_affine_float_qparamsr}   _tensor_rebuild_from_type_v2)ri   txtttsqtrj   s          r=   _get_allowed_globalsr      sA    $/&(-(:(:+0+>+>+J+Jjj '#B ]]5573q6
 8]]&&(3q6
 )271+>+QgetA3Z(+>3q6
 ?16q!=Ages1#Y'=3q6
 > ##/1bmm_Abkk]+, $ $$emm00%--2N2NOO383F3F3R3R4B--"++/0 46"--"++/0 % 	""  ##.. 3r7 '(+,]1::,'( )
 160S0SB,-IC ?=s   3K15K6readlinec                     U " 5       S S R                  S5      nU " 5       S S R                  S5      nX4[        ;   a  [        X4   u  pX4$ U[        ;   a	  [        U   nX4$ )Nutf-8)decoder1   r0   )r   rl   rk   s      r=   _read_global_instructionr      sr    Z_##G,F:cr?!!'*D 	~%#VN3 < 
>	!'<r?   c                    [        5       nU R                  nU R                  n0 [        S   S_[        S   S_[
        S   S_[        S   S_[        S   S_[        S   S_[        S   S_[        S   S_[        S   S_[        S   S_[        S   S_[        S   S_[        S   S_[         S   S_["        S   S_[$        S   S_[&        S   S_[(        S   S[*        S   S[,        S   S[.        S   S[0        S   S[2        S   S[4        S   S[6        S   S[8        S   S[:        S   S[<        S   S0En U" S5      nU(       d  [>        e[A        U[B        5      (       d!  [E        S[G        U5      RH                   35      eUS   [J        S   :X  a$  [M        U5      u  pgURO                  U SU 35        OUS   U;   a  XES      nU(       a  U" U5        OUS   [P        S   :X  a3  [S        SU" S5      5      S   n	U	[T        :  a  [W        S	5      eU" U	5        OlUS   [X        S   [Z        S   1;   a  U" S5      S   n	U" U	5        O?US   [\        S   :X  a  U" S5      S     O#US   [^        S   :X  a  U$ [W        S
US    35      eGMQ  )Nr      rc   rb   r   Expected bytes, got rd   <IString is too longUnsupported operand )0r;   readr   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   EOFErrorre   r   AssertionErrorrU   rZ   r   r   addr   r,   r-   r+   r%   r   r!   r&   )
fileglobals_in_checkpointr   r   op_to_bytes_to_readkeyrl   rk   bytes_to_readstrlens
             r=   get_globals_in_pklr      s   E99D}}Hq	1q	1 	a! 	q	1	
 	
A 	
A 	Q 	Q 	a! 	q	1 	q	1 	q	1 	Q 	Q 	
A  	A!" 	1q#$ 	1q!a!aq	1
A
AQq	1Aq	1A9< 1gN#{++ #7S	8J8J7K!LMMq6VAY3H=LF!%%$&89V**/A7M]#Vz!}$D$q'*1-F%&:;;LV*E!H55!WQZFLVuQxGAJVtAw((!$8Q"ABB9 r?   c                   J    \ rS rSrSS.S\4S jjrS rS rS\4S	 jrS
 r	Sr
g)	Unpickleri3  bytesencodingr   c                p    X l         UR                  U l        UR                  U l        0 U l        SU l        g )Nr   )r   r   r   memoproto)rN   r   r   s      r=   rO   Unpickler.__init__4  s+     II	$&	
r?   c           	         / U l         / U l        U R                  R                  U l        U R                  n U" S5      nU(       d  [        e[        U[        5      (       d!  [        S[        U5      R                   35      eUS   [        S   :X  Ga  [        U R                  5      u  p4U SU 3nU[        ;   a  [        SU SU S35      eU[        5       ;   a  U R                  [        5       U   5        GOU[!        5       ;   a  U R                  [!        5       U   5        GOUS	;   a  [        S
5      eUS;   a  [        S5      eSnXe;   a@  XeS[#        U5       :X  a/  U[#        U5      S n[#        U5      S:  a  US   S:X  a  USS OXe-   n[        SU SU SU S35      eUS   [$        S   :X  Ga%  U R                  R'                  5       nU R                  R'                  5       nU[(        R*                  R,                  L a.  U R                  [(        R*                  R,                  " U6 5        GOU[!        5       R/                  5       ;   d  U[        5       R/                  5       ;   a`  UR0                  " U/UQ76 n	U[(        R2                  ;   a&  SUR4                  ;   a  [6        R                  " U	5        U R                  U	5        GO[        SU 35      eUS   [8        S   :X  a  U R                  R'                  5       nU R                  S   n
U
[        5       R/                  5       ;  aO  U
[!        5       R/                  5       ;  a3  SU
 3n[;        U
S5      (       a  USU
R<                   3-  n[        U5      eU
" U6 n	U
[(        R2                  ;   a&  SU
R4                  ;   a  [6        R                  " U	5        XR                  S'   G
OUS   [>        S   :X  Ga  U R                  R'                  5       nU R                  S   n[        U5      [(        R@                  L a  URB                  " U6   G	O[        U5      [(        R*                  R,                  L a  URE                  U5        G	Oa[        U5      [F        L a  URH                  RK                  U5        G	O2[        U5      [!        5       R/                  5       ;   d%  [        U5      [        5       R/                  5       ;   a  [;        US5      (       a  URE                  U5        GOSn[        U[L        5      (       a  [#        U5      S:X  a  Uu  pU(       a  URH                  RK                  U5        U(       a&  URO                  5        H  u  nn[Q        XU5        M     GOI[        S[        U5       35      eUS   [R        S   :X  ae  U R                  R'                  5       nU R                  S   n[        U5      [T        La  [        S[        U5       35      eUR                  U5        GOUS   [V        S   :X  a[  U RY                  5       nU R                  S   n[        U5      [T        La  [        S[        U5       35      eUR[                  U5        GORUS   [\        S   :X  aY  U R                  R'                  5       U R                  R'                  5       nnU R_                  S5        UU R                  S   U'   GOUS   [`        S   :X  a[  U RY                  5       nU R_                  S5        [c        S[#        U5      S5       H  nUUS-      U R                  S   UU   '   M      GO~US   [d        S   :X  aI  U R                   R                  U R                  5        / U l        U R                  R                  U l        GO%US   [f        S   :X  a,  U RY                  5       nU R                  [M        U5      5        GOUS   [h        S   :X  a  U R                  S   4U R                  S'   GOUS   [j        S   :X  a.  U R                  S    U R                  S   4/U R                  S S& GO|US   [l        S   :X  a<  U R                  S!   U R                  S    U R                  S   4/U R                  S!S& GO0US   [n        S   :X  a  U R                  S5        GOUS   [p        S   :X  a  U R                  S"5        GOUS   [r        S   :X  a  U R                  S5        GOUS   [t        S   :X  a  U R                  S#5        GOUS   [v        S   :X  a  U R                  / 5        GOUS   [x        S   :X  a  U R                  0 5        GO^US   [z        S   :X  a  U R                  [}        5       5        GO3US   [~        S   :X  a&  U R                  [        S$U" S%5      5      S   5        GOUS   [        S   :X  a%  U R                  U R                  S5      S   5        GOUS   [        S   :X  a&  U R                  [        S&U" S5      5      S   5        GOUS   [        S   :X  a/  U R                  [        S'U R                  S(5      5      S   5        GOSUS   [        S   :X  aP  [        S)U" S%5      5      S   nU[        :  a  [        S*5      e[        U" U5      S+S,5      nU R                  U5        GOUS   [        S   :X  aR  U" S5      S   nU" U5      nU R                  S-:w  a  UR                  U R                  S.5      nU R                  U5        GOUS   [        S   :X  a  U R                  R'                  5       n[        U5      [L        La)  [        U5      [        La  [        S/[        U5       35      e[        U5      [L        L aO  [#        U5      S:  a@  [(        R                  R                  US   5      S0:w  a  [        S1[        US   5       35      eU R                  U R                  U5      5        GOUS   [        S   [        S   4;   aM  US   [        S   :X  a  U" S5      O[        S)U" S%5      5      S   nU R                  U R                  U   5        GOCUS   [        S   [        S   4;   a[  US   [        S   :X  a  U" S5      O[        S)U" S%5      5      S   nUS:  a  [        S25      eU R                  S   U R                  U'   OUS   [        S   :X  a.  U" S5      S   nU" U5      nU R                  [        U5      5        OUS   [        S   :X  aD  U" S5      S   U lX        U R                  S:w  a#  [        R                  " S3U R                   S43SS59  O=US   [        S   :X  a  U R                  R'                  5       nU$ [        S6US    35      eGM  )7z{Read a pickled object representation from the open file.

Return the reconstituted object hierarchy specified in the file.
Trc   r   r   rd   z"Trying to load unsupported GLOBAL z whose module z is blocked.)z1torch.nested._internal.nested_tensor.NestedTensorz1torch.nested._internal.nested_tensor._rebuild_njtz"torch._dynamo.decorators._DimRangez\``torch.nested`` and ``torch._dynamo`` must be imported to load nested jagged tensors (NJTs))z(torch.distributed.device_mesh.DeviceMeshz2torch.distributed.tensor._dtensor_spec.DTensorSpecz1torch.distributed.tensor._dtensor_spec.TensorMetaz torch.distributed.tensor.DTensorz0torch.distributed.tensor.placement_types.Partialz2torch.distributed.tensor.placement_types.Replicatez.torch.distributed.tensor.placement_types.Shardz>``torch.distributed.tensor`` must be imported to load DTensorsbuiltinsNzUnsupported global: GLOBAL zY was not an allowed global by default. Please use `torch.serialization.add_safe_globals([z.])` or the `torch.serialization.safe_globals([zN])` context manager to allowlist this global if you trust this class/function.sparsezbCan only create new object for nn.Parameter or classes allowlisted via `add_safe_globals` but got r   z0Trying to call reduce for unrecognized function __self__z which belongs to __setstate__rb   zcCan only build Tensor, Parameter, OrderedDict or types allowlisted via `add_safe_globals`, but got z"Can only append to lists, but got zCan only extend lists, but got r#   r$   FrC   z<ir   z<Hz>dr   r   r   r   surrogatepassr   strictz1persistent_load id must be tuple or int, but got r   z4Only persistent_load of storage is allowed, but got znegative argumentzDetected pickle protocol z in the checkpoint, which was not the default pickle protocol used by `torch.load` (2). The weights_only Unpickler might not support all instructions implemented by this protocol, please file an issue for adding support if you encounter this.)
stacklevelr   )\	metastackstackappendr   r   re   r   r   rU   rZ   r   r   r   _blocklisted_modulesr+   r   rm   rf   r   popro   r   r   values__new__r   r[   r/   r"   hasattrr   r   r   set_r   r   __dict__updater^   itemssetattrr   rB   r   pop_markextendr#   _check_set_item_targetr$   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   _maybe_decode_asciipersistent_loadr
   r   r   r   r   rg   r   r   r!   r   warningswarnr&   )rN   r   r   rl   rk   	full_pathbuiltins_nameargsclsresultfunc	error_msgstateinst	slotstatekvitemlist_objr   ir   strvalstrdatapididxndatari   s                                r=   loadUnpickler.load;  s   
  "
jj''yyq'Cc;//$';DI<N<N;O%PQQ1v"7F%hav.	11)<YK~V\U]]ij   4 66KK 4 6y AB";"==KK 9 ;I FG *v  
 *X  %/M%2)7K]9K-LL$-c-.@.B$C	  #9~1ilc6I &abM!.!: "
 *5i[ AMMVK X>>G[ I<<  Q6!9$zz~~'jjnn&%((,,,KK 2 2D 9:46==??24;;== [[4t4Fe333CNN8R3::6BKK')::=@  Q6!9$zz~~'zz"~ 4 6 = = ??$=$?$F$F$HH K4&Q  tZ00!'9$--%II	))44t5000X5P/66v>!'

2Q58#

(zz"~:- IIu%$Z588#5#55%%e,$Z;.MM((/J";"="D"D"FFDz%9%;%B%B%DDt^44))%0 %)	%eU33E
a/4,E  MM007$(1(91 ' 3 ): *;;?:,H 
 Q6!9$zz~~'::b>>-)<T(^<LM  %Q71:%::b>>-)9$x.9IJ  &Q71:%**..*DJJNN,<A++I6$%

2q!Q8A;&++J7q#e*a0A/4QU|DJJrN58, 1Q47"%%djj1
"jj//Q58#E%L)Q6!9$"&**R.!2

2Q6!9$$(JJrNDJJrN#C"D

23Q6!9$$(JJrNDJJrNDJJrN#S"T

23Q47"D!Q8A;&E"Q71:%D!Q;q>)BQ:a=(BQ:a=(BQ9Q<'CE"Q6!9$F4a1!45Q71:%DIIaLO,Q71:%F4a1!45Q8A;&F416q9:Q:a=(d1g.q1G#)*>??T&\7ODF#Q?1--av,==G+%nnT]]HEGG$Q9Q<'jjnn&9E)d3is.B)KDQTI;W  I&C1++??AG9T)NtTWXYTZ|n]  D0056QF1I{1~66"%a&F1I"5tAw6$Q;PRSTDIIcN+QF1I{1~66 #A&) 3T!Wd1g9NPQRq5$%899#zz"~		!Q58#GAJAwK-.Q58#!!WQZ
::?MM3DJJ< @Y Y $% Q47"ZZ^^%	%(<SVH&EFFk r?   c                     U R                   nU R                  R                  5       U l         U R                   R                  U l        U$ r9   )r   r   r   r   )rN   r   s     r=   r   Unpickler.pop_mark<  s5    

^^'')
jj''r?   opcodec           	          [        U R                  S   5      [        [        [        4;  a'  [        SU S[        U R                  S   5       35      eg )Nr   z	Can only zA for dict, collections.OrderedDict, collections.Counter, but got )rU   r   dictr   r   r+   )rN   r   s     r=   r    Unpickler._check_set_item_targetB  sV    

2k7'CC!F8 $004TZZ^0D/EG  Dr?   c                     [        S5      e)Nz%unsupported persistent id encountered)r+   )rN   r   s     r=   r   Unpickler.persistent_loadI  s    EFFr?   )r   r   r   r   r   r   r   r   N)rZ   r[   r\   r]   r_   rO   r   r   r   r   r`   rC   r?   r=   r   r   3  s0    07 # ~GBS Gr?   r   ASCIIr   r   c                0    [        XS9R                  5       $ )Nr   )r   r   )r   r   s     r=   r   r   M  s    T-2244r?   )O	functools
_functoolsr   _codecsr   collectionsr   r   collections.abcr   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,   r2   r-   typingr.   ro   torch._utilsr/   r0   r1   r   r;   r6   r^   r_   __annotations__rB   r>   rD   rF   rI   rK   rm   r}   	lru_cacher   r   r   r   r   rC   r?   r=   <module>r     sr  2    , $& & & & & & & & & &N     R R
  BE #hx})==> FQDE(C-4H)H$I Q
*453+? ?@ *
%
QHuXs]';;<Q0 0$(. a 5 !5p	x 	E#s(O 	>CC >CBWG WGt #* 5C 5r?   