§
    X�’je%  ã                   óü   — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dl	m
Z d dlZd dlmc mZ d dlmZ d„ Z ed¬¦  «        d„ ¦   «         Zdd	œd
ej        dedefd„Z G d„ d¦  «        Z G d„ d¦  «        ZdS )é    N)Údefaultdict)ÚStorageWeakRefc                  ó   ‡ — ˆ fd„}|S )zkLazily wrap a function with torch.compile on the first call

    This avoids eagerly importing dynamo.
    c                 óJ   •‡ — t          j        ‰ ¦  «        ˆˆ fd„¦   «         }|S )Nc                  óš   •— t          j        ‰fi ‰¤Ž} t          j        ‰¦  «        |¦  «        t	          ¦   «         ‰j        <    || i |¤ŽS ©N)ÚtorchÚcompileÚ	functoolsÚwrapsÚglobalsÚ__name__)ÚargsÚkwargsÚcompiled_fnÚcompile_kwargsÚfns      €€úHC:\Projects\DSCons\.venv\Lib\site-packages\torch\utils\_content_store.pyÚcompile_hookz7lazy_compile.<locals>.decorate_fn.<locals>.compile_hook4   sS   ø€ åœ-¨Ð=Ð=¨nÐ=Ð=ˆKØ%8¥Y¤_°RÑ%8Ô%8¸Ñ%EÔ%E�G‰IŒI�b”kÑ"Ø�; Ð/¨Ð/Ð/Ð/ó    )r   r   )r   r   r   s   ` €r   Údecorate_fnz!lazy_compile.<locals>.decorate_fn3   s?   øø€ Ý	Œ˜Ñ	Ô	ð	0ð 	0ð 	0ð 	0ð 	0ñ 
Ô	ð	0ð
 Ðr   © )r   r   s   ` r   Úlazy_compiler   -   s$   ø€ ðð ð ð ð ð Ðr   T)Údynamicc                 ó²  — t          j        dd| j        | j        t           j        ¬¦  «                             ¦   «         }|dz  dz                        ¦   «         }t          j        dd| j        | j        t           j        ¬¦  «                             ¦   «                              ¦   «         }t          j        || z  |z    	                    ¦   «         dg¦  «        S )Ni   €l        )ÚdeviceÚdtypeiÿÿÿé   r   )
r	   ÚrandintÚshaper   Úint32ÚabsÚlongÚprimsÚxor_sumÚint)ÚxÚaÚbs      r   Úhash_storage_kernelr*   C   s°   € õ
 	ŒØ�%˜œ¨¬½¼ð	ñ 	ô 	ç	‚c�e„eð ð ˆy‰/˜QÑ	×$Ò$Ñ&Ô&€AåŒ�h  q¤w°q´xÅuÄ{ÐSÑSÔSß	Š‰Œß	Š‰Œð õ Œ=˜!˜a™% !™)ŸšÑ*Ô*¨Q¨CÑ0Ô0Ð0r   F©Ústable_hashÚstorager,   Úreturnc                óÒ  ‡— dd l }ddlm} | j        j        }|s ||¦  «        s˜|                      ¦   «         }t          j        |                     ¦   «         z   	                    | 
                    ¦   «         ¦  «        }t          j        d¬¦  «        }|                     |¦  «         |                     ¦   «         S |dk    r|j        j        }nx|dk    r|j        j        | j        j                 }nU|dk    r|j                             ¦   «         }n5|dk    r|j        j        | j        j                 }nt/          d	|› �¦  «        ‚|                     ¦   «         }		 |                     d¦  «          |j        d|j        | j        ¬
¦  «                             | ¦  «        Š‰                     ¦   «          dz  }
|
dk    rt=          j        ‰d|
fdd¦  «        Š‰                      |j!        ¦  «        Šd}ˆfd„tE          |¦  «        D ¦   «         }tG          j$        dd|z  z   g|¢R Ž  %                    ¦   «         | &                    |	¦  «         S # | &                    |	¦  «         w xY w)Nr   )Úis_compile_supportedF)ÚusedforsecurityÚcpuÚcudaÚmpsÚxpuzunhandled device type ©r   r   é   Úconstanté   c                 óR   •— g | ]#}t          ‰¦  «                             ¦   «         ‘Œ$S r   )r*   Úitem)Ú.0Ú_r'   s     €r   ú
<listcomp>z hash_storage.<locals>.<listcomp>‡   s.   ø€ ÐAÐAÐA°Õ! !Ñ$Ô$×)Ò)Ñ+Ô+ÐAÐAÐAr   ú>Úi)'Útorch._dynamoÚtorch._dynamo.utilsr0   r   Útyper2   ÚctypesÚc_byteÚnbytesÚfrom_addressÚdata_ptrÚhashlibÚsha1ÚupdateÚ	hexdigestÚ_CÚdefault_generatorr3   Údefault_generatorsÚindexr4   Ú_get_default_mps_generatorr5   ÚAssertionErrorÚ	get_stateÚmanual_seedÚemptyÚuint8Úset_ÚnumelÚFÚpadÚviewr!   ÚrangeÚstructÚpackÚhexÚ	set_state)r-   r,   r	   r0   Údevice_typeÚcpu_storageÚbufrJ   Ú	generatorÚstaterZ   ÚITERÚcsr'   s                @r   Úhash_storagerh   ^   ss  ø€ ØÐÐÐØ8Ð8Ð8Ð8Ð8Ð8à”.Ô%€KØð 	 Ð.Ð.¨{Ñ;Ô;ð 	 Ø—k’k‘m”mˆõ Œ}˜{×1Ò1Ñ3Ô3Ñ3×AÒAØ× Ò Ñ"Ô"ñ
ô 
ˆõ Œ|¨EÐ2Ñ2Ô2ˆØ�Š�CÑÔÐØ�~Š~ÑÔÐð �eÒÐØ”HÔ.ˆ	ˆ	Ø	˜Ò	Ð	Ø”JÔ1°'´.Ô2FÔGˆ	ˆ	Ø	˜Ò	Ð	Ø”I×8Ò8Ñ:Ô:ˆ	ˆ	Ø	˜Ò	Ð	Ø”IÔ0°´Ô1EÔFˆ	ˆ	åÐC°kÐCÐCÑDÔDÐDØ×ÒÑ!Ô!€Eð#Ø×Ò˜aÑ Ô Ð ØˆEŒK˜ ¤°W´^ÐDÑDÔD×IÒIÈ'ÑRÔRˆð �wŠw‰yŒyˆj˜1‰nˆØ�Š7ˆ7Ý”�a˜!˜S˜ :¨qÑ1Ô1ˆAØ�FŠF�5”;ÑÔˆð ˆØAÐAÐAÐAµU¸4±[´[ÐAÑAÔAˆÝŒ{˜3  t¡Ñ+Ð1¨bÐ1Ð1Ð1×5Ò5Ñ7Ô7à×Ò˜EÑ"Ô"Ð"Ð"øˆ	×Ò˜EÑ"Ô"Ð"Ð"øøøs   ÅCI ÉI&c                   ót   — e Zd Zddededdfd„Zdej        defd„Zdd	ej	        fd
„Z
ded	ej	        ddfd„ZdS )ÚContentStoreWriterFÚlocr,   r.   Nc                 óH   — || _         t          ¦   «         | _        || _        d S r   )rk   ÚsetÚseen_storage_hashesr,   )Úselfrk   r,   s      r   Ú__init__zContentStoreWriter.__init__”   s#   € ØˆŒÝ-0©U¬UˆÔ Ø&ˆÔÐÐr   r-   c                 óž  — t          || j        ¬¦  «        }|| j        v r|S t          j                             | j        d¦  «        }t          j        |d¬¦  «         t          j                             ||¦  «        }t          j                             |¦  «        r|S t          j
        ||¦  «         | j                             |¦  «         |S )Nr+   ÚstoragesT©Úexist_ok)rh   r,   rn   ÚosÚpathÚjoinrk   ÚmakedirsÚexistsr	   ÚsaveÚadd)ro   r-   ÚhÚ	subfolderÚtargets        r   Úwrite_storagez ContentStoreWriter.write_storageš   s¶   € Ý˜¨dÔ.>Ð?Ñ?Ô?ˆØ�Ô(Ð(Ð(ØˆHõ ”G—L’L ¤¨:Ñ6Ô6ˆ	Ý
Œ�I¨Ð-Ñ-Ô-Ð-Ý”—’˜i¨Ñ+Ô+ˆÝŒ7�>Š>˜&Ñ!Ô!ð 	ØˆHÝŒ
�7˜FÑ#Ô#Ð#ØÔ ×$Ò$ QÑ'Ô'Ð'Øˆr   Útc                 ó  — |€(t          |                     ¦   «         | j        ¬¦  «        }|j        ||                     ¦   «         t          |j        ¦  «        |                     ¦   «         t          j	         
                    |¦  «        fS )Nr+   )rh   Úuntyped_storager,   r   Ústorage_offsetÚtupler    Ústrider	   Ú_utilsÚget_tensor_metadata)ro   r€   r|   s      r   Úcompute_tensor_metadataz*ContentStoreWriter.compute_tensor_metadata©   sr   € Øˆ9Ý˜Q×.Ò.Ñ0Ô0¸dÔ>NÐOÑOÔOˆAàŒGØØ×ÒÑÔÝ�!”'‰NŒNØ�HŠH‰JŒJÝŒL×,Ò,¨QÑ/Ô/ð
ð 	
r   Únamec                 ó¨  — |                      ¦   «         }|                      |¦  «        }t          j                             |¦  «        \  }}|                      ||¬¦  «        }t          j                             | j        d|¦  «        }t          j        |d¬¦  «         t          j
        |t          j                             ||¦  «        ¦  «         d S )N)r|   ÚtensorsTrs   )r‚   r   ru   rv   Úsplitrˆ   rw   rk   rx   r	   rz   )	ro   r‰   r€   r-   r|   ÚdÚfÚpayloadr}   s	            r   Úwrite_tensorzContentStoreWriter.write_tensorµ   s«   € Ø×#Ò#Ñ%Ô%ˆØ×Ò˜wÑ'Ô'ˆåŒw�}Š}˜TÑ"Ô"‰ˆˆ1Ø×.Ò.¨q°AÐ.Ñ6Ô6ˆÝ”G—L’L ¤¨9°aÑ8Ô8ˆ	Ý
Œ�I¨Ð-Ñ-Ô-Ð-ÝŒ
�7�BœGŸLšL¨°AÑ6Ô6Ñ7Ô7Ð7Ð7Ð7r   )Fr   )r   Ú
__module__Ú__qualname__ÚstrÚboolrp   r	   ÚUntypedStorager   ÚTensorrˆ   r�   r   r   r   rj   rj   �   s´   € € € € € ð'ð '˜Cð '¨dð '¸tð 'ð 'ð 'ð 'ð UÔ%9ð ¸cð ð ð ð ð

ð 

¨¬ð 

ð 

ð 

ð 

ð8 ð 8¨¬ð 8¸$ð 8ð 8ð 8ð 8ð 8ð 8r   rj   c                   óp   — e Zd Zddœdeddfd„Zddœdedej        fd	„Zd
efd„Zddœd
edej	        fd„Z
dS )ÚContentStoreReaderT)Úcacherk   r.   Nc                ó\   — || _         d | _        |rt          t          ¦  «        | _        d S d S r   )rk   Ústorage_cacher   Údict)ro   rk   r™   s      r   rp   zContentStoreReader.__init__Á   s@   € ØˆŒð ð 	Ôð ð 	3Ý!,­TÑ!2Ô!2ˆDÔÐÐð	3ð 	3r   ©r   r|   c          	      ó  — |�t          j        |¦  «        }| j        � | j        |                              |¦  «        nd }|�(t           j                             |j        ¦  «        }|�|S t          j        t          j	         
                    | j        d|¦  «        d|¬¦  «        j        }|€9t          d|› dt          j	         
                    | j        d¦  «        › d�¦  «        ‚| j        �t          |¦  «        | j        |         |<   |S )Nrr   T)Úweights_onlyÚmap_locationzexpected storage for hash z in z
, got None)r	   r   r›   Úgetr•   Ú_new_with_weak_ptrÚcdataÚloadru   rv   rw   rk   Ú_untyped_storagerR   r   )ro   r|   r   ÚwsÚss        r   Úread_storagezContentStoreReader.read_storageÉ   s  € ØÐÝ”\ &Ñ)Ô)ˆFð Ô!Ð-ð Ô˜vÔ&×*Ò*¨1Ñ-Ô-Ð-àð 	ð ˆ>ÝÔ$×7Ò7¸¼ÑAÔAˆAØˆ}Ø�ÝŒJÝŒG�LŠL˜œ :¨qÑ1Ô1ØØð
ñ 
ô 
ô ð	 	
ð
 ˆ9Ý Øb¨QÐbÐbµB´G·L²LÀÄÈ:Ñ4VÔ4VÐbÐbÐbñô ð ð ÔÐ)Ý,:¸1Ñ,=Ô,=ˆDÔ˜vÔ& qÑ)Øˆr   r‰   c                 óÖ   — t           j                             | j        d|¦  «        }t           j                             |¦  «        st          |¦  «        ‚t          j        |d¬¦  «        S )Nr‹   T)rŸ   )ru   rv   rw   rk   ry   ÚFileNotFoundErrorr	   r¤   )ro   r‰   r   s      r   Úread_tensor_metadataz'ContentStoreReader.read_tensor_metadataã   sT   € ÝŒW�\Š\˜$œ( I¨tÑ4Ô4ˆÝŒw�~Š~˜bÑ!Ô!ð 	(Ý# BÑ'Ô'Ð'ÝŒz˜"¨4Ð0Ñ0Ô0Ð0r   c                ó  — |                       |¦  «        \  }}}}}}|                      ||¬¦  «        }	t          j        g ||	j        ¬¦  «        }
|
                     |	|||¦  «         t          j                             |
|¦  «         |
S )Nr�   r6   )r«   r¨   r	   Útensorr   rW   r†   Úset_tensor_metadata)ro   r‰   r   r   r|   rƒ   Úsizer…   Úmetadatar-   r€   s              r   Úread_tensorzContentStoreReader.read_tensoré   sŽ   € Ø;?×;TÒ;TØñ<
ô <
Ñ8ˆˆq�. $¨°ð ×#Ò# A¨fÐ#Ñ5Ô5ˆÝŒL˜ 5°´Ð@Ñ@Ô@ˆØ	�Šˆw˜¨¨fÑ5Ô5Ð5ÝŒ×(Ò(¨¨HÑ5Ô5Ð5Øˆr   )r   r‘   r’   r“   rp   r	   r•   r¨   r«   r–   r±   r   r   r   r˜   r˜   À   sÅ   € € € € € Ø*.ð 3ð 3ð 3˜Cð 3°4ð 3ð 3ð 3ð 3ð .2ð ð ð ˜cð °eÔ6Jð ð ð ð ð41¨ð 1ð 1ð 1ð 1ð 04ð ð ð  ð ¸¼ð ð ð ð ð ð r   r˜   )rD   r   rI   Úos.pathru   r]   Úcollectionsr   r	   Útorch._primsÚ_primsr$   Útorch._utilsÚtorch.nn.functionalÚnnÚ
functionalrY   Ú torch.multiprocessing.reductionsr   r   r*   r•   r”   r“   rh   rj   r˜   r   r   r   ú<module>r»      so  ðð> €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð, €�dÐÑÔð1ð 1ñ Ôð1ð4 HMð ,#ð ,#ð ,#˜%Ô.ð ,#Àð ,#ÐQTð ,#ð ,#ð ,#ð ,#ð^08ð 08ð 08ð 08ð 08ñ 08ô 08ð 08ðf1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1r   