+
    –°³j1+  ã                   óÒ   € ^ RI t ^ RIHt ^ RI Ht ^ RIHtHt ^ RIHtH	t	H
t
Ht ^ RIHt ^RIHt  ! R R	]4      t] P                   ! R
 R4      4       tR R ltR R ltR tR tR# )é    N©ÚCallable)Ú	dataclass)ÚAnyÚProtocol)Ú_CÚ_opsÚautogradÚTensor)Ú_pytree)Úutilsc                   ó,   a € ] tR t^t o V 3R ltRtV tR# )ÚInfoProtocolc                óN   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[ R,          ;R&   # ©é   NÚ_backward_fnÚ_setup_context_fnr   )ÚformatÚ__classdict__s   "€ÚX/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_library/autograd.pyÚ__annotate__ÚInfoProtocol.__annotate__   s#   ø‡ ‚ Ù˜T•/Ñ!ñ á $•Ñ&ò ó    © N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      ó   ø‡ ‡ „ r   r   c                   ó,   a € ] tR t^t o V 3R ltRtV tR# )ÚInfoc                óN   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[ R,          ;R&   # r   r   )r   r   s   "€r   r   ÚInfo.__annotate__   s%   ø‡ ‚ á˜T•/Ñ!ñ ñ   $•Ñ&ò r   r   Nr   r$   s   @r   r'   r'      r%   r   r'   c                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )r   ÚopÚinfoÚreturn)r	   Ú
OpOverloadr   r   )r   s   "r   r   r      s*   € ÷ ~ñ ~œ4Ÿ?™?ð ~´,ð ~Ä8ñ ~r   c           
      óà  a aaaa	a
aaa€ R S P                    RS P                   RS P                   2pS P                  p\        P
                  ! S 4      o\        P                  ! S P                  4      o	\        R VP                   4       4      o\        ;QJ d4    R . VP                  OVP                  O 4       F  '       g   K   RM)	  RM%! R . VP                  OVP                  O 4       4      o
\         ! R R4      4       oV 3R loV	VV 3R	 lpV
VVV 3R
 lp\        V\        P                  3R\        V4      R\        V4      /4      oS
'       d   \!        S4      oVVVV V3R lpV# )ÚGeneratedBackwardFor_Ú_c              3   óB   "  € T F  qP                   '       * x € K  	  R # 5i©N)Ú
kwarg_only©Ú.0Úas   & r   Ú	<genexpr>Ú%make_autograd_impl.<locals>.<genexpr>   s   é € ÐIÑ8H°1§,¡,×.Ñ.Ó8Hùs   ‚c              3   ób   "  € T F%  p\         P                  ! VP                  4      x € K'  	  R # 5ir3   )r   Úis_tensorlist_like_typeÚtyper5   s   & r   r8   r9      s)   é € ð #á5ˆAô 	×%Ò% a§f¡f×-Ð-Û5ùs   ‚-/TFc                   ó,   a € ] tR t^$t o V 3R ltRtV tR# )Ú$make_autograd_impl.<locals>.Metadatac                ó\   <€ V ^8„  d   Qh/ S[ P                  ;R&   S[S[S[3,          ;R&   # )r   ÚkeysetÚkeyword_only_args)r   ÚDispatchKeySetÚdictÚstrr   )r   r   s   "€r   r   Ú1make_autograd_impl.<locals>.Metadata.__annotate__$   s+   ø‡ ‚ á×!Ñ!Ñ!ñ ñ  ¡¡S �>Ñ)ò r   r   Nr   r$   s   @r   ÚMetadatar>   $   r%   r   rF   c                 óÖ   <€ \         P                  ! 4       ;_uu_ 4        SP                  ! V \         P                  ,          .VO5/ VB pVuuR R R 4       #   + '       g   i     R # ; ir3   )r   Ú_AutoDispatchBelowAutogradÚ
redispatchÚ_after_autograd_keyset)r@   ÚargsÚkwargsÚresultr+   s   &&& €r   Úredispatch_no_gradÚ.make_autograd_impl.<locals>.redispatch_no_grad)   sH   ø€ Ü×*Ò*×,Õ,Ø—]’] 6¬B×,EÑ,EÕ#EÐWÈÒWÐPVÑWˆFØ÷ -×,×,Ó,ús   Ÿ-AÁA(	c           	      óê  <€ VR,          pVRR p\         P                  ! 4       ;_uu_ 4        VP                  pVP                  pSP                  ! V\         P
                  ,          .VO5/ VB pSP                  '       dS   \        P                  ! SP                  W4      w  rS'       d   SP                  WWER7       MSP                  WVR7       VuuRRR4       #   + '       g   i     R# ; i)é   N)ÚctxÚinputsÚkeyword_only_inputsÚoutput)rR   rS   rU   éÿÿÿÿ)
r   rH   r@   rA   rI   rJ   r   r   Úfill_defaultsÚ_schema)	rR   rK   Úmetadatar@   rL   rM   Úhas_kwarg_only_argsr,   r+   s	   &*    €€€r   ÚforwardÚ#make_autograd_impl.<locals>.forward.   sÆ   ø€ Ø˜•8ˆØ�C�Rˆyˆä×*Ò*×,Õ,Ø—_‘_ˆFØ×/Ñ/ˆFØ—]’] 6¬B×,EÑ,EÕ#EÐWÈÒWÐPVÑWˆFØ×%×%Ð%ô  %×2Ò2°2·:±:¸tÓL‘�ç&Ø×*Ñ*ØÀ&ð +õ ð ×*Ñ*¨sÈÐ*ÔOØ÷/ -×,×,Ó,ús   ­B)C!Ã!C2	c           	      ó’  <€ S
P                   '       Ed    V P                  pVR R V n        S
P                   ! V .VO5!  pW n        \        V4      ^,
          pVS0p\        V\        4      '       d   \        V4      M^pWe9  d/   VS8X  d   \        V4      MV RS 2p\        RS RV RV R24      h\        V\        4      '       db   W4R  p\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        RS R	24      hS	'       d   VR V p. VOR N5# VR 3# \        R
S R24      h  XT n        i ; i)Nz or zThe backward formula for z5 returned an incorrect number of gradients (expected z, got z’). Expected one gradient for each forward input, or for each positional input to the operator. Use None for inputs that do not require a gradient.c              3   ó(   "  € T F  qR Jx € K
  	  R # 5ir3   r   )r6   Úgrads   & r   r8   Ú7make_autograd_impl.<locals>.backward.<locals>.<genexpr>e   s   é € Ð@±K¨D 4Õ'³Kùs   ‚TFz˜ returned a non-None gradient for an input that was not passed to the operator. Defaulted inputs that were not passed through autograd must return None.zTrying to backward through zQ but no autograd formula was registered. Please use register_autograd to add one.rV   )r   Úneeds_input_gradÚlenÚ
isinstanceÚtuplerD   ÚRuntimeErrorÚany)rR   ÚgradsÚprev_needs_input_gradrM   Únum_actual_inputsÚvalid_return_countsÚactualÚexpectedÚextra_gradsÚhas_tensorlist_like_argsr,   Únum_positional_argsr+   s   &*       €€€€r   ÚbackwardÚ$make_autograd_impl.<locals>.backwardK   s�  ø€ Ø××Ñð=Ø(+×(<Ñ(<Ð%Ø'<¸S¸bÐ'A�Ô$Ø×*Ò*¨3Ð7°Ó7�à'<Ô$Ü #Ð$9Ó :¸QÕ >ÐØ#4Ð6IÐ"JÐÜ$.¨v´u×$=Ò$=”S˜”[À1ˆFØÔ0ð )Ð,?Ô?ô Ð)Ô*à-Ð.¨dÐ3FÐ2GÐHð ô
 #Ø/°¨tð 45Ø5=°J¸fÀVÀHð M=ð>óð ô ˜&¤%×(Ò(Ø$Ð%7Ð8�ß“3Ñ@±KÓ@—3—3’3Ñ@±KÓ@×@Ò@Ü&Ø3°B°4ð 8=ð >óð ÷ ,Ø#Ð$6Ð%6Ð7�FØ&˜� ‘Ð&Ø˜4�<ÐÜØ)¨"¨ð .7ð 8ó
ð 	
øð= (=�Õ$ús   –*D= Ä=	Er[   rp   c                 ó~  <€ S'       dY   \         P                  ! 4       '       d5   \         P                  ! V/ VB '       d   \        SP                   R 24      hS! WV4      # \         P                  ! 4       '       d8   \         P                  ! V!  '       d   SP
                  ! . VOS! W4      N5!  pV# S! WV4      pV# )zu(): functions with out=... arguments don't support automatic differentiation, but one of the arguments requires grad.)r   Úis_grad_enabledÚ_any_requires_gradre   Ú_opnameÚapply)	r@   rK   rA   rM   Ú	GeneratedrF   Ú	is_out_opr+   rN   s	   &*, €€€€€r   Úautograd_implÚ)make_autograd_impl.<locals>.autograd_impl„   s¹   ø€ ßÜ×!Ò!×#Ò#¬×(=Ò(=Øð)Ø*÷)ð )ô #Ø—z‘z�lð #%ð %óð ñ
 & fÐ4EÓFÐFä×Ò×Ò¤B×$9Ò$9¸4×$@Ð$@Ø—_’_ÐP dÐP©H°VÓ,OÓPˆFð ˆñ (¨Ð6GÓHˆFØˆr   )Ú
_namespaceru   Ú_overloadnamerX   r   Úis_outrZ   ÚsumÚ	argumentsrf   Úreturnsr   r<   r
   ÚFunctionÚstaticmethodÚsupports_tensorlist)r+   r,   ÚnameÚschemar[   rp   ry   rw   rF   rZ   rn   rx   ro   rN   s   ff     @@@@@@@r   Úmake_autograd_implr†      sF  ÿø€ Ø'¨¯© °a¸¿
¹
°|À1ÀR×EUÑEUÐDVÐW€Dà�Z‰Z€FÜ—’˜RÓ €IÜ×3Ò3°B·J±JÓ?ÐÜÑI¸×8HÒ8HÓIÓIÐß"›sñ #à5�6×#Ñ#Ð5 f§n¡nÑ5ó#ŸsŸsšsñ #à5�6×#Ñ#Ð5 f§n¡nÑ5ó#ó  Ðô
 ÷*ð *ó ð*õ÷
÷:)
ð )
ôV ØÜ	×	Ñ	Ðà”| GÓ,Øœ XÓ.ð	
ó€I÷  Ü'¨	Ó2ˆ	÷ñ ð$ Ðr   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Úclsr-   )r   )r   s   "r   r   r   ™   s   € ÷ jñ jœSð j¤Sñ jr   c                óÈ   aaaa€ V P                   oV P                  oV P                  o\         ! R R4      4       oVV3R lpV3R lpVV3R lpWn         W n        W0n        V # )a$  Allows a given autograd.Function class to support List[Tensor] inputs/outputs.

Regular autograd.Function has a constraint that it only directly supports autograd for
Tensors. Applying @supports_tensorlist enables an autograd.Function to support
autograd for List[Tensor] inputs and outputs.
c                   ó4   a € ] tR t^¤t o RtRtV 3R ltRtV tR# )Ú/supports_tensorlist.<locals>.TensorListMetadataNc                ó‚   <€ V ^8„  d   Qh/ S[ P                  ;R&   S[ P                  R,          ;R&   S[R,          ;R&   # )r   Ú
input_specNÚoutput_specÚresult_is_tuple)r   ÚTreeSpecÚbool)r   r   s   "€r   r   Ú<supports_tensorlist.<locals>.TensorListMetadata.__annotate__¤   s?   ø‡ ‚ á×$Ñ$Ñ$ñ ñ ×%Ñ%¨Õ,Ñ3ñ ñ  �Ñ+ò	 r   r   )	r   r   r   r    rŽ   r�   r!   r"   r#   r$   s   @r   ÚTensorListMetadatar‹   ¤   s   ø‡ € ð 04ˆØ'+ˆ÷	 ƒ r   r“   c                 ó¸  <€ VR,          pVRR p\        VS4      '       g   \        R4      h\        P                  ! \	        V4      VP
                  4      pS! V .VO5!  p\        V\        4      Vn        VP                  '       g   V3p\        P                  ! V\        4      w  rEWRn
        \        V R4      '       d   \        R4      hW n        \        V4      # )rQ   Nz�NYI: calling supports_tensorlist autograd.Function.forward directly. You should probably be calling .apply instead. Please file an issue if not.Ú_pt_metadataz@Please don't set ctx._pt_metadata; PyTorch uses it to store inforV   )rc   ÚNotImplementedErrorr   Útree_unflattenÚlistr�   rd   r�   Útree_flattenÚnot_list_of_tensorrŽ   Úhasattrre   r•   )rR   rK   rY   rM   Úflat_resultrŽ   r“   Úorig_forwards   &*    €€r   Únew_forwardÚ(supports_tensorlist.<locals>.new_forwardª   sÒ   ø€ Ø˜•8ˆØ�C�RˆyˆÜ˜(Ð$6×7Ò7Ü%ð/óð ô
 ×%Ò%¤d¨4£j°(×2EÑ2EÓFˆÙ˜cÐ) DÓ)ˆÜ#-¨f´eÓ#<ˆÔ Ø×'×'Ð'Ø�YˆFÜ#*×#7Ò#7¸Ô@RÓ#SÑ ˆØ*Ôä�3˜×'Ò'ÜØRóð ð $Ôä�[Ó!Ð!r   c                 ó\  <€ \        V R 4      '       g   \        R4      hV P                  p\        P                  ! \        V4      VP                  4      pV P                  p \        P                  ! \        V P                  RR 4      VP                  4      V n        S! V .VO5!  pW0n        \        V\        4      '       g   V3p\        P                  ! V\        4      w  rVWbP                  8w  d   \        RV RVP                   R24      h\        VR.,           4      #   Y0n        i ; i)r•   z¤NYI: calling supports_tensorlist autograd.Function.backward directly. This will automatically get called by PyTorch autograd. Please file an issue if you need this.NzRExpected the return from backward to be of the same structure as the inputs. Got: z (return from backward), z	 (inputs)rV   )r›   r–   r•   r   r—   r˜   rŽ   ra   r�   rc   rd   r™   Únot_list_of_optional_tensorre   )rR   rg   rY   rh   Úgrad_inputsÚflat_grad_inputsÚgrad_inputs_specÚorig_backwards   &*     €r   Únew_backwardÚ)supports_tensorlist.<locals>.new_backwardÃ   s0  ø€ Ü�s˜N×+Ò+Ü%ð9óð ð ×#Ñ#ˆÜ×&Ò&¤t¨E£{°H×4HÑ4HÓIˆð !$× 4Ñ 4Ðð	9Ü#*×#9Ò#9Ü�S×)Ñ)¨#¨2Ð.Ó/°×1DÑ1Dó$ˆCÔ ñ (¨Ð4¨eÓ4ˆKà#8Ô ä˜+¤u×-Ò-Ø&˜.ˆKô .5×-AÒ-AØÔ4ó.
Ñ*Ðð ×2Ñ2Ô2Üð'Ø'7Ð&8Ð8QØ×&Ñ&Ð' yð2óð ô
 Ð%¨¨Õ.Ó/Ð/øð% $9Õ ús   Á"AD# Ä#D+c                  óÎ  <€ \         P                  ! V \        R 7      w  rS! V4      pS! . VOVN5!  pVP                  f   \	        R4      h\         P
                  ! \        V4      VP                  4      pVP                  '       g^   \        V\        4      '       g   \	        R\        V4       24      h\        V4      ^8w  d   \	        R\        V4       24      hV^ ,          # V# ))Úis_leafz%metadata.output_spec must not be Nonezresult must be tuple, got z%result tuple must have length 1, got )r   r™   rš   rŽ   ÚAssertionErrorr—   r˜   r�   rc   rd   r<   rb   )rK   Ú	flat_argsr�   rY   rM   r“   Ú
orig_applys   *    €€r   Ú	new_applyÚ&supports_tensorlist.<locals>.new_applyï   sÑ   ø€ Ü '× 4Ò 4°TÔCUÔ VÑˆ	Ù% jÓ1ˆÙÐ1˜YÐ1¨Ó1ˆØ×ÑÒ'Ü Ð!HÓIÐIÜ×'Ò'¬¨V«°h×6JÑ6JÓKˆØ×'×'Ð'Ü˜f¤e×,Ò,Ü$Ð'AÄ$ÀvÃ,ÀÐ%PÓQÐQÜ�6‹{˜aÔÜ$Ø;¼CÀ»K¸=ÐIóð ð ˜!•9ÐØˆr   )r[   rp   rv   r   )rˆ   rž   r¦   r­   r“   r¬   r¥   r�   s   &   @@@@r   rƒ   rƒ   ™   s]   û€ ð —;‘;€LØ—L‘L€MØ—‘€Jä÷,ð ,ó ð,ö
"õ2*0öXð" „KØ„LØ„IØ€Jr   c                 óÊ   € \        V \        4      '       d   R # \        V \        4      '       d5   \        ;QJ d    R V  4       F  '       g   K   R# 	  R # ! R V  4       4      # R# )Fc              3   óL   "  € T F  p\        V\        4      '       * x € K  	  R # 5ir3   ©rc   r   ©r6   Úls   & r   r8   Ú%not_list_of_tensor.<locals>.<genexpr>
  s   é € Ð;±d°”z !¤VÓ,×,Ñ,³dùs   ‚"$T©rc   rd   r˜   rf   ©Útrees   &r   rš   rš     sK   € Ü�$œ×ÒÙÜ�$œ×Òß‹sÑ;±dÓ;�sŒsÐ;ŠsÐ;ˆsÑ;±dÓ;Ó;Ð;Ùr   c                 óÊ   € \        V \        4      '       d   R # \        V \        4      '       d5   \        ;QJ d    R V  4       F  '       g   K   R# 	  R # ! R V  4       4      # R# )Fc              3   ób   "  € T F%  qR J;'       d    \        V\        4      '       * x € K'  	  R # 5ir3   r±   r²   s   & r   r8   Ú.not_list_of_optional_tensor.<locals>.<genexpr>  s'   é € ÐMÉÀ1˜D�=×>Ð>¬°A´vÓ)>Ô%>Ô>Ëùs   ‚/‘/Trµ   r¶   s   &r   r¡   r¡     sK   € Ü�$œ×ÒÙÜ�$œ×Òß‹sÑMÉÓM�sŒsÐMŠsÐMˆsÑMÉÓMÓMÐMÙr   )ÚdataclassesÚcollections.abcr   r   Útypingr   r   Útorchr   r	   r
   r   Útorch.utilsr   Ú r   r   r'   r†   rƒ   rš   r¡   r   r   r   Ú<module>rÁ      s`   ðã Ý $Ý !ß  ç ,Ó ,Ý å ô'�8ô 'ð
 ×Ñ÷'ð 'ó ð'õ
~õBjòZôr   