+
    –°³j
  ã                   óô   € ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RItRP                  4       t	 ! R R]P                  P                  4      tR R	 ltR
 R lt] P                  ! 4       t]R R l4       tR R ltR# )é    N)Ú	Generator)Úcontextmanager)ÚAnya   
This is used when dynamo traces torch.nn.Parameter, which normally would not trace properly
with AOTAutograd.  We instead create a placeholder torch.nn.Parameter before the graph, which
becomes a graph arg and has no storage backing it.  At the point in the graph where the parameter
actually should be created we mutate this sacrificial placeholder into it.  This allows gradients
to flow into the parameter as if it were an input to the graph (which is the only thing we are
allowed to compute gradients on).
c                   óX   a € ] tR t^t o ]V 3R lR l4       t]V 3R lR l4       tRtV tR# )ÚTracableCreateParameterc                óZ   <€ V ^8„  d   QhRS[ RS[ RS[ RS[P                  P                  /# )é   ÚctxÚtensorÚplaceholderÚreturn)r   ÚtorchÚnnÚ	Parameter)ÚformatÚ__classdict__s   "€Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/create_parameter_op.pyÚ__annotate__Ú$TracableCreateParameter.__annotate__   s3   ø€ ÷ (ñ (‘Sð (¡#ð (±Cð (¹E¿H¹H×<NÑ<Nñ (ó    c                óh   € VP                   '       d   VP                  4       pVP                  V4      # ©N)Úrequires_gradÚdetachÚset_)r
   r   r   s   &&&r   ÚforwardÚTracableCreateParameter.forward   s,   € ð ××ÐØ—]‘]“_ˆFØ×Ñ Ó'Ð'r   c                óh   <€ V ^8„  d   QhRS[ RS[P                  RS[RS[P                  3,          /# )r	   r
   Úgrad_outputsr   N)r   r   ÚTensorÚtuple)r   r   s   "€r   r   r      s4   ø€ ÷ ñ ‘cð ©%¯,©,ð ¹5ÀÁuÇ|Á|ÐASÕ;Tñ r   c                ó   € V^ ,          pRV3# )r   N© )r
   r   Úgrads   &* r   ÚbackwardÚ TracableCreateParameter.backward   s   € à˜A�ˆØ�TˆzÐr   r#   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústaticmethodr   r%   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s+   ø‡ € Ø÷(ó ð(ð
 ÷ó ör   r   c                ó    € V ^8„  d   QhR\         P                  R\         P                  P                  R\         P                  P                  /# )r	   r   r   r   )r   r    r   r   )r   s   "r   r   r   #   s<   € ÷ ñ Ü�L‰LðÜ',§x¡x×'9Ñ'9ðä
‡X�X×Ññr   c                 óº   € \         P                  ! VP                  4      ;_uu_ 4        \        P	                  W4      pR R R 4       V#   + '       g   i     X# ; ir   )r   Úset_grad_enabledr   r   Úapply)r   r   Úouts   && r   Útracable_create_parameterr3   #   sC   € ô 
×	Ò	 × 9Ñ 9×	:Õ	:Ü%×+Ñ+¨FÓ@ˆ÷ 
;à€J÷ 
;Ö	:à€Jús   ©A	Á	A	c          
      ó¾   € V ^8„  d   QhR\         \        R3,          R\        P                  R\        P                  R\
        R\        P                  P                  /# )r	   Úsize.ÚdtypeÚdevicer   r   )r!   Úintr   r6   r7   Úboolr   r   )r   s   "r   r   r   +   sN   € ÷ 
ñ 
Ü
”�S��/ð
Ü"'§+¡+ð
Ü7<·|±|ð
ÜTXð
ä
‡X�X×Ññ
r   c                ó²   € \         P                  P                  \         P                  ! WVR7      VR7      pVP	                  4       P                  ^ 4       V# )z8Create a placeholder to be passed to the above functions)r6   r7   )r   )r   r   r   ÚemptyÚuntyped_storageÚresize_)r5   r6   r7   r   Úresults   &&&& r   Únew_parameter_placeholderr?   +   sK   € ô �X‰X×ÑÜ�Š�D¨fÔ5À]ð  ó €Fð
 ×ÑÓ×$Ñ$ QÔ'Ø€Mr   c                ó@   € V ^8„  d   QhR\         \        RR3,          /# )r	   r   N)r   r9   )r   s   "r   r   r   <   s   € ÷ 3ñ 3¬i¼¸dÀDÐ8HÕ.Iñ 3r   c               #   ó†   "  € \        \        R R4      p R\        n         Rx € V \        n        R#   T \        n        i ; i5i)Úconvert_tracable_parameterTFN)ÚgetattrÚ_TLSrB   )Úold_flags    r   Ú$do_not_convert_to_tracable_parameterrF   ;   s6   é € ä”tÐ9¸4Ó@€HØ&+„DÔ#ð3ØŠà*2ŒÖ'ø¨(ŒÕ'üs   ‚A 1 ¤A±>¾Ac                ó$   € V ^8„  d   QhR\         /# )r	   r   )r9   )r   s   "r   r   r   E   s   € ÷ =ñ =¬4ñ =r   c                  ó$   € \        \        R R4      # )rB   T)rC   rD   r#   r   r   Ú!can_convert_to_tracable_parameterrI   E   s   € Ü”4Ð5°tÓ<Ð<r   )Ú	threadingÚcollections.abcr   Ú
contextlibr   Útypingr   r   ÚstripÚdocÚautogradÚFunctionr   r3   r?   ÚlocalrD   rF   rI   r#   r   r   Ú<module>rS      sn   ðÛ Ý %Ý %Ý ã ð
÷ 
�EƒGð ô˜eŸn™n×5Ñ5ô õõ
ð ‡‚Ó€ð ô3ó ð3÷=r   