§
    C�’j©  ã                   óp  — U d dl Z d dlmZ d dlmZ d dlmZ eZi ae	e
eegdf         f         ed<   i ae	e
e j        e         f         ed<   g aee         ed<   defd	„Zd
edefd„Zd Zde
deddfd„Zde
defd„Zdeddfd„Zdd„Zdedee
egdf         de
fd„Zdedede
fd„Zd dlmZ  ee¦  «         dS )é    N)ÚCallable)ÚAny)ÚSourceÚindex_to_bytecode_constructorÚ index_to_external_object_weakrefÚ
keep_aliveÚreturnc                  ó*   — t          t          ¦  «        S ©N)Úboolr   © ó    úQC:\Projects\DSCons\.venv\Lib\site-packages\torch\_dynamo\graph_bytecode_inputs.pyÚhas_user_objectsr      s   € ÝÕ-Ñ.Ô.Ð.r   Úobjc                 ó:   — t                                | ¦  «         | S r   )r   Úappend)r   s    r   Ústash_graph_created_objectr      s   € Ý×Ò�cÑÔÐØ€Jr   ÚindexÚvaluec                 ór   — t                                |¦  «         t          j        |¦  «        t          | <   dS )z;Update an entry in the external object registry at runtime.N)r   r   ÚweakrefÚrefr   )r   r   s     r   Úset_external_object_by_indexr   $   s1   € å×Ò�eÑÔÐÝ.5¬k¸%Ñ.@Ô.@Õ$ UÑ+Ð+Ð+r   c                 ó¤   — | t           vrt          d¦  «        ‚t          |          ¦   «         }|€t          d¦  «        ‚t          |          ¦   «         S )Nz4Index not registered in index_to_user_object_weakrefzUser object is no longer alive)r   ÚAssertionError)r   r   s     r   Úget_external_object_by_indexr   *   sR   € ØÕ4Ð4Ð4ÝÐSÑTÔTÐTÝ
*¨5Ô
1Ñ
3Ô
3€CØ
€{ÝÐ=Ñ>Ô>Ð>Ý+¨EÔ2Ñ4Ô4Ð4r   Úargsc                  óš   — t                                ¦   «          t                                d„ t          | ¦  «        D ¦   «         ¦  «         d S )Nc                 ó>   — i | ]\  }}|t          j        |¦  «        “ŒS r   )r   r   )Ú.0ÚiÚargs      r   ú
<dictcomp>z.store_user_object_weakrefs.<locals>.<dictcomp>7   s(   € Ð;Ð;Ð;¡  Cˆ�GŒK˜ÑÔÐ;Ð;Ð;r   )r   ÚclearÚupdateÚ	enumerate)r   s    r   Ústore_user_object_weakrefsr(   3   sM   € å$×*Ò*Ñ,Ô,Ð,Ý$×+Ò+Ø;Ð;­9°T©?¬?Ð;Ñ;Ô;ñô ð ð ð r   c                  óœ   — t                                ¦   «          t                               ¦   «          t                               ¦   «          d S r   )r   r%   r   r   r   r   r   Úreset_user_object_trackingr*   ;   s>   € Ý!×'Ò'Ñ)Ô)Ð)Ý$×*Ò*Ñ,Ô,Ð,Ý×ÒÑÔÐÐÐr   Úexample_valueÚconstruct_fnc                 ó  ‡‡— t                                | ¦  «         t          t          ¦  «        Šˆˆfd„t          ‰<   	 t	          j        | ¦  «        t          ‰<   n0# t          $ r#}ddlm	}  |dd| › �dg |¬¦  «         Y d }~nd }~ww xY w‰S )Nc                 ó   •—  ‰‰| ¦  «        S r   r   )Úcgr,   r   s    €€r   ú<lambda>z/register_graph_created_object.<locals>.<lambda>H   s   ø€ °l°lÀ5È"Ñ6MÔ6M€ r   é   ©Úunimplementedz7Failed to make weakref to graph-created external objectúuser_object: ú0Object does not allow us to make a weakref to it©Úgb_typeÚcontextÚexplanationÚhintsÚfrom_exc)
r   r   Úlenr   r   r   r   Ú	TypeErrorÚexcr3   )r+   r,   Úer3   r   s    `  @r   Úregister_graph_created_objectr@   A   sÝ   øø€ õ
 ×Ò�mÑ$Ô$Ð$ÝÕ-Ñ.Ô.€EØ+MÐ+MÐ+MÐ+MÐ+MÕ! %Ñ(ð
Ý29´+¸mÑ2LÔ2LÕ(¨Ñ/Ð/øÝð 	
ð 	
ð 	
Ø&Ð&Ð&Ð&Ð&Ð&àˆØMØ3 MÐ3Ð3ØJØØð	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð	
øøøð €Ls   Á A Á
B
Á'BÂB
Úsourcec                 óæ   ‡— t          t          ¦  «        }ˆfd„t          |<   	 t          j        | ¦  «        t          |<   n0# t
          $ r#}ddlm}  |dd| › �dg |¬¦  «         Y d }~nd }~ww xY w|S )Nc                 ó   •—  | ‰¦  «        S r   r   )r/   rA   s    €r   r0   z&register_user_object.<locals>.<lambda>\   s   ø€ °b°b¸±j´j€ r   r1   r2   z%Failed to make weakref to User Objectr4   r5   r6   )r<   r   r   r   r   r=   r>   r3   )r   rA   r   r?   r3   s    `   r   Úregister_user_objectrD   Y   sÃ   ø€ åÕ-Ñ.Ô.€EØ+@Ð+@Ð+@Ð+@Õ! %Ñ(ð
Ý29´+¸eÑ2DÔ2DÕ(¨Ñ/Ð/øÝð 	
ð 	
ð 	
Ø&Ð&Ð&Ð&Ð&Ð&àˆØ;Ø+ EÐ+Ð+ØJØØð	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð	
øøøð €Ls   ¤A Á
A.ÁA)Á)A.)Ú"set_leaf_function_module_retriever)r	   N)r   Úcollections.abcr   Útypingr   Útorch._dynamo.sourcer   Ú	PyCodegenr   ÚdictÚintÚ__annotations__r   ÚReferenceTyper   Úlistr   r   r   ÚCURRENT_STREAM_INDEXr   r   r(   r*   r@   rD   Ú,torch._higher_order_ops.invoke_leaf_functionrE   r   r   r   ú<module>rQ      s  ðØ €€€€Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'ð €	ð IKÐ ˜t C¨°9°+¸tÐ2CÔ)DÐ$DÔEÐ JÐ JÑ JàJLÐ   $ s¨GÔ,AÀ#Ô,FÐ'FÔ"GÐ LÐ LÑ Là€
ˆD�ŒIÐ Ð Ñ ð/˜$ð /ð /ð /ð /ð Cð ¨Cð ð ð ð ð
 Ð ðA¨ð A°Cð A¸Dð Að Að Að Að5¨ð 5°ð 5ð 5ð 5ð 5ð cð ¨dð ð ð ð ðð ð ð ðØðØ&.°°YÐ/?ÀÐ/EÔ&Fðàðð ð ð ð0 ð ¨Vð ¸ð ð ð ð ð,ð ð ð ð ð ð
 #Ð "Ð#?Ñ @Ô @Ð @Ð @Ð @r   