+
    "Ý³j˜E  ã                   ól  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHtHtHtH	t	H
t
 ^ RIt^ RIt^ RIHt ^ RIHtHt ^ RIHtHt ^ RIHt ^ RIHt ^RIHt ^R	IHt ^R
IHt ^RIHtHt R3t R4R lt!]PD                  PF                  PH                  t%]!]PD                  PF                  n$        R R lt&R R lt'R R lt(R R lt)R R lt*R R lt+R5R R llt,R6R R llt-R6R R llt.R6R  R! llt/R6R" R# llt0R$ R% lt1] Pd                  R& R' l4       t3R( R) lt4R* R+ lt5R, R- lt6R. R/ lt7]R0RR3R1 R2 llt8R# )7é    N)ÚIterableÚListÚOptionalÚSetÚTuple)Údisk_offload)Úremove_hook_from_moduleÚremove_hook_from_submodules)Úalign_module_deviceÚhas_offloaded_params)Ú	save_file)Únn)ÚNamedModule)Ú
get_device)Úparent_module_lock)ÚCPUÚMETAFc                 ó   € R # ©N© )Úgarbage_collections   &ÚX/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/offload.pyÚ_fake_clear_device_cacher   !   s   € Ùó    c                óŒ   € V ^8„  d   QhR\         P                  P                  R\         P                  P                  R\        /# )é   ÚmodelÚmoduleÚreturn©Útorchr   ÚModuleÚstr)Úformats   "r   Ú__annotate__r%   (   s6   € ÷ Tñ TœuŸx™xŸ™ð T¼¿¹¿¹ð TÌCñ Tr   c                 ó˜   € V P                  4        F  w  r#W1J g   K  Vu # 	  V\        J d   VP                  MR p\        RV RV 24      h)Ú z"module not found in model: name = z, module = )Únamed_modulesr   Ú	full_nameÚ	Exception)r   r   ÚnameÚmods   &&  r   Úget_module_fullnamer-   (   sP   € Ø×(Ñ(Ö*‰	ˆØ�=ØŠKñ +ð  &¬Ó4ˆ6×Ò¸"€DÜ
Ð8¸¸¸kÈ&ÈÐRÓ
SÐSr   c                ó�   € V ^8„  d   QhR\         P                  P                  R\        R\         P                  P                  RR/# )r   ÚrootÚpathÚnew_modr   Nr    )r$   s   "r   r%   r%   0   s9   € ÷ (ñ (œŸ™Ÿ™ð (¬sð (¼U¿X¹X¿_¹_ð (ÐQUñ (r   c                 ó€   € VP                  R 4      pT pVRR  F  p\        WE4      pK  	  \        WCR,          V4       R# )Ú.Néÿÿÿÿ)ÚsplitÚgetattrÚsetattr)r/   r0   r1   ÚpartsÚparentÚps   &&&   r   Úset_submoduler;   0   s<   € Ø�J‰J�s‹O€EØ€FØ�3�B‹ZˆÜ˜Ó#Šñ äˆF˜"•I˜wÖ'r   c                óŒ   € V ^8„  d   QhR\         P                  P                  R\        R\         P                  P                  /# )r   r/   r0   r   r    )r$   s   "r   r%   r%   8   s1   € ÷ ñ œŸ™Ÿ™ð ¬sð ´u·x±x·±ñ r   c                 óP   € T pVP                  R 4       F  p\        W#4      pK  	  V# )r3   )r5   r6   )r/   r0   ÚmÚparts   &&  r   Úget_submoduler@   8   s(   € Ø€AØ—
‘
˜3–ˆÜ�AÓŠñ  à€Hr   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r   r>   r   )r   r"   Úbool)r$   s   "r   r%   r%   >   s   € ÷ ñ ”b—i‘ið ¤Dñ r   c                 ó<  € V P                  R R7       FA  p\        VRR4      '       g+   \        VR4      '       g   K*  VP                  \        J g   K@   R # 	  V P                  R R7       F.  p\        VR4      '       g   K  VP                  \        J g   K-   R # 	  R# )T©ÚrecurseÚis_metaFÚdevice)Ú
parametersr6   ÚhasattrrG   r   Úbuffers)r>   r:   Úbs   &  r   Úis_meta_modulerL   >   sx   € Ø�\‰\ $ˆ\Ö'ˆÜ�1�i ×'Ò'¬G°A°x×,@Ô,@ÀQÇXÁXÔQUÕEUÚñ (ð �Y‰Y˜tˆYÖ$ˆÜ�1�h×Ô A§H¡H´Õ$4Úñ %ñ r   c                ó(   € V ^8„  d   QhR\         RR/# )r   Ú
target_dirr   N)r#   )r$   s   "r   r%   r%   I   s   € ÷ +ñ +¬3ð +°4ñ +r   c                 ó¬   € \         P                  P                  V 4      '       d   \        P                  ! V 4       \         P
                  ! V R R7       R# )T)Úexist_okN)Úosr0   ÚisdirÚshutilÚrmtreeÚmakedirs)rN   s   &r   Ú_prepare_offload_directoryrV   I   s/   € Ü	‡w�w‡}�}�Z× Ò Ü�Š�jÔ!Ü‡K‚K�
 T×*r   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r   Útensorr   )r!   ÚTensorÚint)r$   s   "r   r%   r%   O   s   € ÷ %ñ %œ5Ÿ<™<ð %¬Cñ %r   c                 óÔ   €  V P                  4       pV P                  4       V,          #   \         d4    \        P                  ! RT P                  R 7      P                  4       p LTi ; i))Údtyper   )Úelement_sizeÚRuntimeErrorr!   Úemptyr\   Únumel)rX   Úitemsizes   & r   Ú_tensor_nbytesrb   O   sY   € ðFØ×&Ñ&Ó(ˆð �<‰<‹>˜HÕ$Ð$øô ô FÜ—;’;˜r¨¯©Ô6×CÑCÓEŠðFús   ‚) ©;A'Á&A'c                ór   € V ^8„  d   QhR\         P                  R\        R\        \        ,          R\        /# )r   r   Úoffload_dirÚ	index_dirr   )r   r"   r#   r   Údict)r$   s   "r   r%   r%   W   s2   € ÷ -ñ -¤b§i¡ið -¼cð -ÌhÔWZÍmð -Ôgkñ -r   c                óä  € \         P                  P                  VR4      pV'       d!   \         P                  P                  VR4      MTp/ p/ p\        P                  ! 4       ;_uu_ 4        \        V P                  4       P                  4       4      pV F—  w  r‰V	P                  4       P                  R4      p
V
P                  4       Wh&   R\        V
P                  4      P                  RR4      R\        V
P                  4      R\         P                  P                  V4      RV/pWµV&   K™  	  R	R	R	4       \!        Wc4       \#        VR
4      ;_uu_ 4       p\$        P&                  ! RVP)                  ^4      4      ^ ,          p\*        P,                  ! VP)                  V4      P/                  R4      4      pVP1                  4       pR	R	R	4       XP                  4        Fv  w  ppVR8X  d   K  VP3                  V4      pVf   K&  VP3                  R4      pVf   K=  \5        V^ ,          4      \5        V^,          4      ppXV,           VV,           .VR&   Kx  	  \         P                  P                  VR4      p\#        VRRR7      ;_uu_ 4       p\*        P6                  ! VV^R7       R	R	R	4       V#   + '       g   i     ELŽ; i  + '       g   i     EL	; i  + '       g   i     T# ; i)zÕSerialize module state into offload_dir. index_dir is the directory
the index.json should reference -- pass the final destination when writing
into a temporary directory that will be atomically renamed into place.zmodule.safetensorsÚcpur\   ztorch.r'   ÚshapeÚsafetensors_fileÚweight_nameNÚrbz<Qzutf-8Ú__metadata__Údata_offsetsz
index.jsonÚw)Úencoding)Úindent)rQ   r0   Újoinr!   Úinference_modeÚlistÚ
state_dictÚitemsÚdetachÚtoÚ
contiguousr#   r\   Úreplaceri   ÚabspathÚsafetensors_save_fileÚopenÚstructÚunpackÚreadÚjsonÚloadsÚdecodeÚtellÚgetrZ   Údump)r   rd   re   Úbundle_pathÚindex_bundle_pathÚindexÚtensorsÚstate_itemsÚkeyrX   Ú
cpu_tensorÚentryÚfhÚ
header_lenÚheaderÚdata_offset_baseÚtensor_metaÚoffsetsÚstartÚendÚ
index_pathÚfps   &&&                   r   Ú_bundle_module_state_dictr™   W   sI  € ô —'‘'—,‘,˜{Ð,@ÓA€KßIRœŸ™Ÿ™ YÐ0DÔEÐXcÐØ€EØ')€Gä	×	Ò	×	Õ	Ü˜6×,Ñ,Ó.×4Ñ4Ó6Ó7ˆã&‰KˆCØŸ™›×+Ñ+¨EÓ2ˆJØ%×0Ñ0Ó2ˆG‰Làœ˜Z×-Ñ-Ó.×6Ñ6°xÀÓDØœ˜j×.Ñ.Ó/Ø"¤B§G¡G§O¡OÐ4EÓ$FØ˜sð	ˆEð �#‹Jñ '÷ 
 ô ˜'Ô/ä	ˆk˜4×	 Ô	  BÜ—]’] 4¨¯©°«Ó4°QÕ7ˆ
Ü—’˜BŸG™G JÓ/×6Ñ6°wÓ?Ó@ˆØŸ7™7›9Ð÷ 
!ð
 #ŸL™LžNÑˆˆ[Ø�.Ô ÙØ—	‘	˜#“ˆØŠ=ÙØ—/‘/ .Ó1ˆØÔÜ˜g a�j›/¬3¨w°q­z«?�3ˆEØ%5¸Õ%=Ð?OÐRUÕ?UÐ$VˆE�.Ó!ñ +ô —‘—‘˜k¨<Ó8€JÜ	ˆj˜#¨×	0Õ	0°BÜ�	Š	�%˜ AÕ&÷ 
1ð €L÷I 
 ×	Ð	ú÷  
!×	 Ð	 ú÷" 
1Ö	0ð €Lús&   Á,CJ6ÅA2K
ÊKÊ6K	Ë
K	ËK/	c                óœ   € V ^8„  d   QhR\         \        ,          \        P                  ,          R\        P                  R\        R\        /# ©r   r   r   Ú	disk_pathÚforce©r   r#   r   r"   rB   )r$   s   "r   r%   r%   ‡   sA   € ÷ Xñ XœD¤�I¬¯	©	Õ1ð X¼"¿)¹)ð XÔPSð XÔbfñ Xr   c                ó    € \        WW#R7       R# )zÖOffload module state to disk. force=True also writes modules below the
small-module threshold -- required when the on-disk bundle is the only
durable record (e.g. quantized modules that a resumed run must restore).©r   r   rœ   r�   N)Ú_offload_to_disk_implr    s   &&&&r   Úoffload_to_diskr¢   ‡   s   € ô  À	×Wr   c                óœ   € V ^8„  d   QhR\         \        ,          \        P                  ,          R\        P                  R\        R\        /# r›   rž   )r$   s   "r   r%   r%   Ž   s;   € ÷ ñ ¤$¤s¥)¬b¯i©iÕ"7ð ÄÇ	Á	ð ÔVYð Ôhlñ r   c                 ó  € V f   Q hVf   Q h\        V \        4      '       dQ   V  FI  p\        W4      p\        V\        4      '       d   VP                  p\        WR7      p\        WVW#R7       KK  	  M;\        V \        4      '       d   V P                  p \        WR7      p\        WW#R7       \        V R4      '       dF   \        V R4      '       d2   \        V P                  RR4      '       d   V P                  4        R # R # R # R # )N)r   r   ©r   r+   rœ   r�   ÚconfigÚtie_weightsÚtie_word_embeddingsF)Ú
isinstancer   r@   r   r   r-   Ú_offload_diskrI   r6   r¦   r§   )r   r   rœ   r�   r+   r>   r)   s   &&&&   r   r¡   r¡   Ž   sã   € ØÒÐÐØÒÐÐô �&œ$×ÒÛˆDÜ˜eÓ*ˆAä˜!œ[×)Ò)à—H‘H�ä+°%ÔBˆIÜ ¸i×Uò ô �fœk×*Ò*à—]‘]ˆFä'¨eÔCˆ	ä˜V¸yÕVäˆv�x× Ò ¤W¨V°]×%CÒ%CÌÐPV×P]ÑP]Ø-BÀE÷IKò IKà×ÑÖñIKÑ%CÑ r   c                ó\   € V ^8„  d   QhR\         P                  R\        R\        R\        /# ©r   r   r+   rœ   r�   ©r   r"   r#   rB   )r$   s   "r   r%   r%   ³   s2   € ÷ Yñ Yœ"Ÿ)™)ð Y¬3ð Y¼3ð YÌTñ Yr   c           	      ó€   € \        V4      ;_uu_ 4        \        WW#R 7       RRR4       R#   + '       g   i     R# ; i)r¥   N)r   Ú_offload_disk_lockedr¥   s   &&&&r   rª   rª   ³   s&   € Ü	˜D×	!Õ	!Ü FÀÕX÷ 
"×	!×	!Ò	!ús   ”,¬=	c                ó\   € V ^8„  d   QhR\         P                  R\        R\        R\        /# r¬   r­   )r$   s   "r   r%   r%   ¸   s-   € ÷ 8ñ 8¤§¡ð 8´#ð 8Ä#ð 8ÔTXñ 8r   c                 óö  € \        V 4      '       d   R # \        V 4      pVP                  R8X  d    \        P                  P                  V4       \        ;QJ d,    R V P                  RR7       4       F  '       g   K   RM!	  RM! R V P                  RR7       4       4      p\        ;QJ d,    R V P                  RR7       4       F  '       g   K   RM!	  RM! R V P                  RR7       4       4      pV'       g   V'       g   R # \        P                  P                  W!4      p^ p\        V P                  4       P                  4       4      p	V	 F  p
V\        V
4      ,          pK  	  V'       g   V\         8:  d   R # V R2pV R2p\#        V4       \        P                  P%                  V4      '       d   \&        P(                  ! V4       \+        WVR	7       \        P                  P%                  V4      '       d   \        P,                  ! W|4       \        P,                  ! W·4       \        P                  P%                  V4      '       d   \&        P(                  ! V4       \/        V VRVR
7      pR # )NÚcudac              3   óF   "  € T F  qP                  4       ^ 8„  x € K  	  R# 5i©r   N©r`   )Ú.0r:   s   & r   Ú	<genexpr>Ú'_offload_disk_locked.<locals>.<genexpr>Ç   s   é € ÐNÑ-M¨—g‘g“i !–mÓ-Mùó   ‚!FrD   Tc              3   óF   "  € T F  qP                  4       ^ 8„  x € K  	  R# 5ir´   rµ   )r¶   rK   s   & r   r·   r¸   È   s   é € ÐKÑ-J¨—g‘g“i !–mÓ-Jùr¹   z.tmpz.old)re   )rd   Úoffload_buffersÚexecution_device)rL   r   Útyper!   r²   Ú
set_deviceÚanyrH   rJ   rQ   r0   rr   rt   ru   Úvaluesrb   Ú_SMALL_MODULE_OFFLOAD_BYTESrV   rR   rS   rT   r™   Úrenamer   )r   r+   rœ   r�   Úm_deviceÚ
has_paramsÚhas_buffersÚmodule_offload_dirÚtotal_bytesr‹   rX   Útmp_dirÚold_dirÚ_s   &&&&          r   r¯   r¯   ¸   sÃ  € ô �f×Òáä˜&Ó!€HØ‡}�}˜ÔÜ�
‰
×Ñ˜hÔ'÷
 “#ÑN¨V×->Ñ->ÀuÐ->Ô-MÓN—#—#’#ÑN¨V×->Ñ->ÀuÐ->Ô-MÓNÓN€Jß“#ÑK¨V¯^©^ÀE¨^Ô-JÓK—#—#’#ÑK¨V¯^©^ÀE¨^Ô-JÓKÓK€KßŸkÙäŸ™Ÿ™ iÓ6Ðà€Kä�v×(Ñ(Ó*×1Ñ1Ó3Ó4€KãˆØ”~ fÓ-Õ-Šñ ÷ �[Ô$?Ô?Ùð $Ð$ DÐ)€GØ#Ð$ DÐ)€GÜ˜wÔ'Ü	‡w�w‡}�}�W×ÒÜ�Š�gÔÜ˜fÐ9KÕLä	‡w�w‡}�}Ð'×(Ò(Ü
�	Š	Ð$Ô.Ü‡I‚IˆgÔ*Ü	‡w�w‡}�}�W×ÒÜ�Š�gÔäØØ&ØØ!ô		‚Ar   c          
      ó¦   € V ^8„  d   QhR\         P                  R\        R\        \        \
        \        P                  \        3,          ,          /# )r   r,   Úinclude_buffersr   )r   r"   rB   r   r   r#   r!   rY   )r$   s   "r   r%   r%   ö   s?   € ÷ ñ œBŸI™Ið ¼4ð ÄHÌUÔSVÔX]×XdÑXdÔfjÐSjÕMkÕDlñ r   c             #  ó¦   "  € V P                  RR7       F  w  r#W#R3x € K  	  V'       d$   V P                  RR7       F  w  r$W$R3x € K  	  R# R# 5i)zcYield (name, tensor, is_param) for direct children (no recurse) to preserve module attribute names.FrD   TN)Únamed_parametersÚnamed_buffers)r,   rÌ   Únr:   rK   s   &$   r   Ú_iter_leaf_tensorsrÑ   ö   sU   é € à×$Ñ$¨UÐ$Ö3‰ˆØ�DˆjÔñ 4çØ×%Ñ%¨eÐ%Ö4‰DˆAØ˜�+Ôó 5ñ ùs
   ‚)A¬%Ac                óX   € V ^8„  d   QhR\         P                  R\        P                  /# )r   r,   rG   )r   r"   r!   rG   )r$   s   "r   r%   r%      s"   € ÷ 	ñ 	”b—i‘ið 	¬¯©ñ 	r   c              #  ó¦   "  € \        V 4      '       d$   \        WR7      ;_uu_ 4        Rx € RRR4       R# Rx € R#   + '       g   i     R# ; i5i)zœ
If the module has offloaded params, temporarily align its tensors to `device`
so we can clone them out as real tensors. If not offloaded, this is a no-op.
)r¼   N)r   r   )r,   rG   s   &&r   Ú_maybe_alignrÔ   ÿ   s8   é € ô ˜C× Ò Ü  ×>Ö>Û÷ ?Ñ>õ 	÷ ?×>Ð>üs   ‚&A¨=­A½A	Á	Ac          
      óº   € V ^8„  d   QhR\         P                  R\         P                  R\        \         P                  ,          R\
        R\        P                  /# )r   ÚtrG   r\   Úrequires_gradr   )r!   rY   rG   r   r\   rB   r   Ú	Parameter)r$   s   "r   r%   r%     sS   € ÷ =ñ =œUŸ\™\ð =´e·l±lð =Ì8ÔTY×T_ÑT_ÕK`ð =Ôquð =Ôz|÷  {Gñ  {Gñ =r   c                ó  € T pVe#   VP                   V8w  d   VP                  V4      pVP                  V8w  d   VP                  VRR7      pVP                  4       P	                  4       p\
        P                  ! WCR7      # )NF©Únon_blocking)r×   )r\   rx   rG   rw   Úcloner   rØ   )rÖ   rG   r\   r×   Útargets   &$$$ r   Ú_clone_into_parameterrÞ     sg   € Ø€FØÒ˜VŸ\™\¨UÔ2Ø—‘˜5Ó!ˆØ‡}�}˜ÔØ—‘˜6°�Ó6ˆà�]‰]‹_×"Ñ"Ó$€FÜ�<Š<˜Ô<Ð<r   c                ó®   € V ^8„  d   QhR\         P                  R\         P                  R\        \         P                  ,          R\         P                  /# )r   rÖ   rG   r\   r   )r!   rY   rG   r   r\   )r$   s   "r   r%   r%     sC   € ÷ #ñ #œ%Ÿ,™,ð #´5·<±<ð #ÌÔQV×Q\ÑQ\ÕH]ð #Ôbg×bnÑbnñ #r   c                óÖ   € T pVe#   VP                   V8w  d   VP                  V4      pVP                  V8w  d   VP                  VRR7      pVP                  4       P	                  4       # )NFrÚ   )r\   rx   rG   rw   rÜ   )rÖ   rG   r\   rÝ   s   &$$ r   Ú_clone_into_bufferrá     sY   € Ø€FØÒ˜VŸ\™\¨UÔ2Ø—‘˜5Ó!ˆØ‡}�}˜ÔØ—‘˜6°�Ó6ˆØ�=‰=‹?× Ñ Ó"Ð"r   c                óZ   € V ^8„  d   QhR\         P                  R\        \        ,          /# )r   r,   r   )r   r"   r   r#   )r$   s   "r   r%   r%      s"   € ÷ ñ ¬"¯)©)ð ¼¼C½ñ r   c                ó˜  € \        4       p\        V RR4      pVe   \        VRR4      MRpR Fƒ  p\        W4R4      p\        V\        \        P
                  34      '       g   K7  \        P                  P                  V4      '       g   K^  VP                  \        P                  ! V4      4       K…  	  \        VRR4      pR Fƒ  p\        WdR4      p\        V\        \        P
                  34      '       g   K7  \        P                  P                  V4      '       g   K^  VP                  \        P                  ! V4      4       K…  	  V# )z¤
Best-effort discovery of the on-disk folder used by Accelerate's offload weights_map.
We *feature-detect* known attributes but never rely on them for correctness.
Ú_hf_hookNÚweights_mapÚdataset)Úsave_folderÚfolderÚbase_folderrd   )rç   rè   ré   )
Úsetr6   r©   r#   rQ   ÚPathLiker0   rR   ÚaddÚfspath)r,   ÚdirsÚhookÚwmÚattrÚvalÚdss   &      r   Ú _possible_offload_dirs_from_hookrô      sê   € ô
 “U€DÜ�3˜
 DÓ)€DØ/3Ò/?Œ��} dÔ	+ÀT€BãGˆÜ�b Ó%ˆÜ�cœC¤§¡Ð-×.Ô.´2·7±7·=±=À×3EÔ3EØ�H‰H”R—Y’Y˜s“^Ö$ñ Hô
 
��Y Ó	%€BÛ8ˆÜ�b Ó%ˆÜ�cœC¤§¡Ð-×.Ô.´2·7±7·=±=À×3EÔ3EØ�H‰H”R—Y’Y˜s“^Ö$ñ 9ð
 €Kr   c                óš   € V ^8„  d   QhR\         P                  R\        P                  R\        \        P
                  ,          R\        /# )r   r,   rG   r\   r   )r   r"   r!   rG   r   r\   rB   )r$   s   "r   r%   r%   7  s>   € ÷ *ñ *¬"¯)©)ð *¼U¿\¹\ð *ÔRZÔ[`×[fÑ[fÕRgð *Ôlpñ *r   c           
     ó¦  € \        V RR4      pVe   \        VRR4      MRpVf   R#  \        \        V RR7      R4      pVf   R# Vw  p pWF,          p\        P
                  ! 4       ;_uu_ 4        \        \        T RR7      4       F†  w  r‰p
\        T	RR4      ;'       g    T	P                  \        J pT'       g   K7   YH,          pT
'       d&   \        YÁY)P                  R7      p\        YT4       Km  \        YÁTR	7      p\        YT4       Kˆ  	  RRR4       R#   \         d     R# i ; i  \         d     K´  i ; i  + '       g   i     R# ; i)
zú
Fast path: if this version of Accelerate exposes a per-module weights_map (as observed in
multiple stacks), directly read tensors by name instead of going through a forward-time preloader.
Returns True if handled, False to fall back to align+clone.
rä   Nrå   FT©rÌ   rF   ©rG   r\   r×   ©rG   r\   )r6   ÚnextrÑ   r*   r!   rs   rt   rG   r   ÚKeyErrorrÞ   r×   r7   rá   )r,   rG   r\   rï   rð   ÚsampleÚsample_namerÊ   r+   rX   Úis_paramrF   ÚsrcÚnew_pÚnew_bs   &&&            r   Ú _restore_leaves_from_weights_mapr  7  s;  € ô �3˜
 DÓ)€DØ/3Ò/?Œ��} dÔ	+ÀT€BØ	‚zÙð	ô Ô(¨¸dÔCÀTÓJˆØŠ>ÙØ"Ñˆ�Q˜Ø�Oˆô 
×	Ò	×	Õ	Ü&*Ô+=¸cÐSWÔ+XÖ&YÑ"ˆD˜(Ü˜f i°Ó7×PÐP¸6¿=¹=ÌDÐ;PˆGßÙðØ•h�÷
 Ü-¨cÈ×]qÑ]qÔr�Ü˜ 5Ö)ä*¨3ÀUÔK�Ü˜ 5Ö)ñ 'Z÷ 
 ñ$ øô+ ô Úðûô ô âðú÷ 
 Ö	ñ$ úsU   ¨D ÁD Á0AD?Â<D?Â?D-ÃD?ÃAD?ÄD*Ä)D*Ä-D<	Ä8D?Ä;D<	Ä<D?Ä?E	Tc                óÆ   € V ^8„  d   QhR\         P                  R\        P                  R\        R\        R\
        \        P                  ,          R\         P                  /# )r   r   rG   rÌ   Údelete_offload_foldersr\   r   )r   r"   r!   rG   rB   r   r\   )r$   s   "r   r%   r%   d  sa   € ÷ Mñ MÜ�I‰IðMä�L‰LðMô ðMô !ð	Mô
 ”E—K‘KÕ ðMô ‡Y�YñMr   c                ó^  € \        4       p\        P                  ! 4       ;_uu_ 4        V P                  4        Fõ  p\	        V4      '       g   K  V\        V4      ,          p\        WaVR7      pV'       d   K?  \        WaR7      ;_uu_ 4        \        \        WbR7      4       F€  w  r‰p
\        V	RR4      ;'       g    V	P                  \        J pV'       g   T	pMT	pV
'       d&   \        WÁWIP                  R7      p\        WhV4       Kg  \!        WÁVR7      p\        WhV4       K‚  	  RRR4       K÷  	  \#        V 4       \%        V RR7       \'        V R	4      '       d.   \        V P(                  R
R4      '       d   V P+                  4        V'       dV   \-        V4       FF  p\.        P0                  ! \2        4      ;_uu_ 4        \4        P6                  ! VRR7       RRR4       KH  	  V uuRRR4       #   + '       g   i     EKË  ; i  + '       g   i     K|  ; i  + '       g   i     R# ; i)u€  
Reverse the effects of `accelerate.disk_offload` (or partial per-submodule disk offload) on `module`.

What it does:
  1) Materializes all offloaded parameters (and optionally buffers) back into regular tensors on `device`.
  2) Detaches all Accelerate hooks on `module` and its submodules (restoring original `forward`).
  3) Optionally deletes discovered offload folders on disk.

Args:
    module: Root module (can be the whole model or any sub-tree you disk_offloaded).
    device: Target device for restored tensors (default: CPU if unknown).
    dtype:  Optional dtype conversion for restored tensors (default: keep each tensor's original dtype).
    include_buffers: Restore buffers too (e.g., rotary caches) if they were offloaded.
    delete_offload_folders: Best-effort cleanup of the on-disk folders backing offloaded weights.

Returns:
    The same `module`, now â€œde-offloadedâ€�.
rù   )rG   r÷   rF   Frø   NrD   r¦   r¨   T)Úignore_errors)rê   r!   rs   Úmodulesr   rô   r  rÔ   rt   rÑ   r6   rG   r   rÞ   r×   r7   rá   r
   r	   rI   r¦   r§   ÚsortedÚ
contextlibÚsuppressr*   rS   rT   )r   rG   rÌ   r  r\   Úoffload_dirsÚsubÚhandledr+   rX   rþ   rF   rÿ   r   r  Úds   &&&&&           r   Úundo_offload_to_diskr  d  s«  € ô6 !›U€Lô 
×	Ò	×	Õ	Ø—>‘>Ö#ˆCÜ'¨×,Ò,Ùð Ô<¸SÓAÕAˆLô 7°sÐQVÔWˆGßÙô ˜c×1Ö1Ü.2Ô3EÀcÔ3kÖ.lÑ*�D (Ü& v¨y¸%Ó@×YÐYÀFÇMÁMÔUYÐDY�Gß"ð %™ð %˜çÜ 5°cÐPU×eyÑeyÔ z˜Ü ¨5Ö1ä 2°3ÈUÔ S˜Ü ¨5Ö1ñ /m÷ 2Ñ1ñ $ôB 	$ FÔ+Ü °Õ6ô �6˜8×$Ò$¬°·±Ð@UÐW\×)]Ò)]Ø×ÑÔ ÷ "Ü˜LÖ)�Ü×(Ò(¬×3Õ3Ü—M’M !°4Õ8÷ 4Ñ3ñ *ð ÷_ 
 Ò	÷ 2×1Ñ1ú÷: 4×3Ð3ú÷Y 
 ×	Ð	úsQ   ¨A$HÂA
G2ÃG2Ã$AG2Ä&A*HÆ0HÇHÇHÇ2HÇ=
HÈHÈ	HÈH,	i   )Fr   )r3   F)9r	  r�   rQ   rS   r~   Útypingr   r   r   r   r   Ú
accelerater!   r   Úaccelerate.hooksr	   r
   Úaccelerate.utilsr   r   Úsafetensors.torchr   r|   r   Úlooper.named_moduler   rG   r   Úmodule_locksr   r   r   rÁ   r   ÚutilsÚmodelingÚclear_device_cacheÚACCELERATE_CLEAR_DEVICE_CACHEr-   r;   r@   rL   rV   rb   r™   r¢   r¡   rª   r¯   rÑ   ÚcontextmanagerrÔ   rÞ   rá   rô   r  r  r   r   r   Ú<module>r     s  ðó Û Û 	Û Û ß 7Õ 7ã Û õ $ß Qß FÝ @Ý å -Ý Ý ,ß ð 'Ð ô	ð !+× 0Ñ 0× 9Ñ 9× LÑ LÐ Ø/G€
× Ñ × Ñ Ô ,õTõ(õõõ+õ%÷-÷`X÷÷JY÷
8õ|ð ×Ñô	ó ð	õ=õ#õõ.*ð^ Ø Ø#(Ø#'÷Mñ Mr   