+
    ˜°³jª„  ã                   ó$  € ^ RI Ht ^ RIHt ^ RIHtHt ^ RIHt ^ RI	t	^ RI
t	^ RIt	^ RIt	^ RIt	^ RIt	^ RIt^ RIt^ RIHt ^ RIHtHtHtHt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# ^ RI$t%^ RI&t&^ RI t ^ RI't'^ RI(t(^ RI)t)^ RI*t*^ RI+t+^ RI,t,^ RI-H.t. ^ RI/H0t0 ]	Pb                  Pe                  4       t3]3;'       d    ]	Pb                  Pi                  4       ^8„  t5]3t6]	Pb                  Pe                  4       '       d‹   ]	Pn                  Pp                  '       go   ]	Pr                  Pu                  4       t;]<! ]	Pb                  Pi                  4       4       F0  t=]	Pb                  P}                  ]=4      ^ ,          t?]?^8  g   K.  Rt6K2  	  R t@R tAR tBR tC ! R R4      tDRtE ! R R]4      tF ! R R4      tG]R 4       tH]R 4       tI]R0R l4       tJR tKR  tLR! tMR" tNR# tOR$ tPR% tQR& tRR' tSR( tTR) tUR* tV ! R+ R,4      tWR- tXR. tYR/ tZR# )1é    ©ÚVariable©Ú_nested_map)ÚBroadcastingList2ÚBroadcastingList3)ÚOperatorExportTypesN)Ú	FileCheck)Ú
IS_WINDOWSÚfreeze_rng_stateÚ)enable_profiling_mode_for_profiling_testsÚProfilingModeÚTEST_BAILOUTSÚis_iterable_of_tensors)ÚJitCommonTestCase)Úenable_profiling_mode)Úcontextmanager)Úreduce)ÚStringIO)Údefaultdict)ÚLoader)ÚAnyFc                 ó   € \        WV4       R # ©N)Úexec)ÚcodeÚglobÚlocs   &&&Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/testing/_internal/jit_utils.pyÚexecWrapperr    7   s   € Üˆ�SÖó    c                 ó(   € \        R  V 4      ! V4      # )c                 ó6   € \        V \        P                  4      # r   )Ú
isinstanceÚtorchÚTensor©Úts   &r   Ú<lambda>Údo_input_map.<locals>.<lambda>;   s   € ¤¨A¬u¯|©|Ô!<r!   r   )ÚfnÚinputs   &&r   Údo_input_mapr-   :   s   € ÜÑ<¸bÔAÀ%ÓHÐHr!   c                  ó  € \         P                  P                  4        \         P                  P                  P                  4       \         P                  P                  n        \         P                  P                  P                  4        R # r   )	r%   Ú_CÚ_jit_clear_class_registryÚjitÚ
_recursiveÚConcreteTypeStoreÚconcrete_type_storeÚ_stateÚ_clear_class_state© r!   r   Úclear_class_registryr8   =   sM   € Ü	‡H�H×&Ñ&Ô(Ü/4¯y©y×/CÑ/C×/UÑ/UÓ/W„E‡I�I×ÑÔ,Ü	‡I�I×Ñ×'Ñ'Ö)r!   c                 óš   € \        V P                  P                  4       4      p\        V4      pV^8w  d   \	        RV 24      hV^ ,          # )é   zOThis test assumes this GraphExecutor should only have one execution plan, got: )ÚlistÚexecution_plansÚvaluesÚlenÚRuntimeError)Úgraph_executor_stater<   Ú	num_planss   &  r   Úget_execution_planrB   B   sX   € ÜÐ/×?Ñ?×FÑFÓHÓI€OÜ�OÓ$€IØ�A„~Üð AØAJÀðMó Nð 	Nà˜1ÕÐr!   c                   ó6   a € ] tR t^Jt o RtR tR tR tRtV t	R# )Ú&_AssertRaisesRegexWithHighlightContextzr
A context manager that is useful for checking that error messages highlight
the correct part of the source code.
c                ó6   € Wn         W n        W0n        W@n        R # r   )Ú	test_caseÚexception_typeÚregexÚ	highlight)ÚselfrF   Ú	exceptionrH   rI   s   &&&&&r   Ú__init__Ú/_AssertRaisesRegexWithHighlightContext.__init__P   s   € Ø"ŒØ'ÔØŒ
Ø"Žr!   c                ó   € V # r   r7   ©rJ   s   &r   Ú	__enter__Ú0_AssertRaisesRegexWithHighlightContext.__enter__V   s   € Øˆr!   c                ó^  € V P                   P                  V P                  V P                  4      ;_uu_ 4        V'       d   Vh R R R 4       V P                  '       d<   \        4       P                  V P                  4      P                  \        V4      4       R#   + '       g   i     L_; i©NT)	rF   ÚassertRaisesRegexrG   rH   rI   r
   Úcheck_source_highlightedÚrunÚstr)rJ   ÚtypeÚvalueÚ	tracebacks   &&&&r   Ú__exit__Ú/_AssertRaisesRegexWithHighlightContext.__exit__Y   sq   € Ø�^‰^×-Ñ-¨d×.AÑ.AÀ4Ç:Á:×NÕNßØ�ð ÷ Oð �>�>ˆ>Ü‹K×0Ñ0°·±Ó@×DÑDÄSÈÃZÔPá÷ O×Nús   ¹BÂB,	)rG   rI   rH   rF   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rL   rP   r[   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   rD   rD   J   s   ø‡ € ñò
#ò÷ð r!   rD   zprim::TensorExprGroupc                   óH  a a€ ] tR t^et oRtRt ! R R]4      t ! R R]4      tR t	R t
V 3R	 ltV 3R
 ltR R ltR tR tR tR tR!R ltR"R ltR"R ltR tR tR tR tR tRRR^]P6                  3R ltR tRRRR^]P6                  RR3R ltR#R ltR t Rt!Vt"V ;t## )$ÚJitTestCaseTFc                   ó0   a € ] tR t^it o RtR tR tRtV tR# )ÚJitTestCase.capture_stdoutz.
Replace sys.stdout with a temporary StringIO
c                óx   € \         P                  V n        \        4       V n        V P                  \         n        V # r   )ÚsysÚstdoutÚ
sys_stdoutr   ÚstringiorO   s   &r   rP   Ú$JitTestCase.capture_stdout.__enter__m   ó&   € Ü!Ÿj™jˆDŒOÜ$›JˆDŒMØŸ™ŒCŒJØˆKr!   c                ó˜   € V P                  \        V P                  P                  4       4      4       V =V P                  \
        n        R # r   )ÚappendrW   rn   Úgetvaluerm   rk   rl   ©rJ   Úargss   &*r   r[   Ú#JitTestCase.capture_stdout.__exit__s   ó0   € Ø�K‰Kœ˜DŸM™M×2Ñ2Ó4Ó5Ô6Ø�ØŸ™ŒCŽJr!   )rn   rm   N©	r]   r^   r_   r`   ra   rP   r[   rb   rc   rd   s   @r   Úcapture_stdoutri   i   ó   ø‡ € ñ	ò	÷	)ð 	)r!   ry   c                   ó0   a € ] tR t^xt o RtR tR tRtV tR# )ÚJitTestCase.capture_stderrz.
Replace sys.stderr with a temporary StringIO
c                óx   € \         P                  V n        \        4       V n        V P                  \         n        V # r   )rk   ÚstderrÚ
sys_stderrr   rn   rO   s   &r   rP   Ú$JitTestCase.capture_stderr.__enter__|   rp   r!   c                ó˜   € V P                  \        V P                  P                  4       4      4       V =V P                  \
        n        R # r   )rr   rW   rn   rs   r   rk   r~   rt   s   &*r   r[   Ú#JitTestCase.capture_stderr.__exit__‚   rw   r!   )rn   r   Nrx   rd   s   @r   Úcapture_stderrr|   x   rz   r!   rƒ   c                ón   € \         P                  P                  V P                  V P                  4       R # r   )r%   r/   Ú_jit_set_emit_hooksÚemitModuleHookÚemitFunctionHookrO   s   &r   ÚsetHooksÚJitTestCase.setHooks‡   s"   € Ü�‰×$Ñ$ T×%8Ñ%8¸$×:OÑ:OÖPr!   c                óF   € \         P                  P                  R R 4       R # r   )r%   r/   r…   rO   s   &r   Ú
clearHooksÚJitTestCase.clearHooksŠ   s   € Ü�‰×$Ñ$ T¨4Ö0r!   c                óÖ   <€ \         SV `  4        \        P                  '       g4   \        P
                  P                  P                  4        R \        n        V P                  4        R# ©TN)	ÚsuperÚsetUprg   Ú_restored_warningsr%   r1   ÚTracerWarningÚignore_lib_warningsrˆ   ©rJ   Ú	__class__s   &€r   r�   ÚJitTestCase.setUp�   sA   ø€ Ü‰‰Œô ×-×-Ð-Ü�I‰I×#Ñ#×7Ñ7Ô9Ø-1ŒKÔ*Ø�‰Žr!   c                óX   <€ \         SV `  4        V P                  4        \        4        R # r   )r�   ÚtearDownr‹   r8   r”   s   &€r   r˜   ÚJitTestCase.tearDown—   s    ø€ Ü‰ÑÔð 	�‰ÔÜÖr!   c                ó(  aa€ V3R  loR\         RRRRR0\        V4      ,          o\        \        4      pS! V\         V4       V P	                  \        V4      ^8H  RV 24       \        \        VP                  4       4      4      w  rV P	                  \        V4      ^8H  RV 24       T P	                  \        ;QJ d-    V3R lVP                  4        4       F  '       d   K   R	M"	  R
M! V3R lVP                  4        4       4      RV 24       R# )c                 ó(  <€ V P                  4        EF{  pVP                  4       V8X  d   W ,          P                  V4       K2  VP                  4       R 8X  d   S! VP                  R4      W4       Ka  VP                  4       R8X  dæ   VP	                  4       P                  4       P                  4       P                  4       R8X  g   VP	                  4       P                  4       P                  4       P                  4       R8X  g@   VP	                  4       P                  4       P                  4       P                  4       R8X  d)   S! VP                  4       P                  4       W4       EK[  VP                  4        F  pS! WAV4       K  	  EK~  	  R# )zprim::DifferentiableGraphÚSubgraphúprim::Ifz	aten::allúprim::TypeCheckúprim::RequiresGradCheckN)ÚnodesÚkindrr   ÚgÚinputsÚ__next__ÚnodeÚblocks)Úblockr¡   Úaccr¥   Úinner_blockÚ!get_nodes_and_parents_recursivelys   &&&  €r   rª   ÚEJitTestCase.assertAllFused.<locals>.get_nodes_and_parents_recursively¢   s  ø€ ØŸ™Ÿ�Ø—9‘9“; $Ô&Ø•J×%Ñ% dÖ+Ø—Y‘Y“[Ð$?Ô?Ù5°d·f±f¸ZÓ6HÈ$ÖTØ—Y‘Y“[ JÔ.°D·K±K³M×4JÑ4JÓ4L×4QÑ4QÓ4S×4XÑ4XÓ4ZÐ^iÔ4iØ48·K±K³M×4JÑ4JÓ4L×4QÑ4QÓ4S×4XÑ4XÓ4ZÐ^oÔ4oØ48·K±K³M×4JÑ4JÓ4L×4QÑ4QÓ4S×4XÑ4XÓ4ZÐ^wÔ4wÙ5°d·k±k³m×6LÑ6LÓ6NÐPT×Zà'+§{¡{¦}˜Ù9¸+ÈSÖQô (5ó &r!   zprim::Constantzprim::BailoutTemplatezprim::TupleConstructr�   rž   rŸ   zgot c              3   óH   <"  € T F  qP                  4       S9   x € K  	  R # 5ir   )r¡   )Ú.0r¥   Úallowed_nodess   & €r   Ú	<genexpr>Ú-JitTestCase.assertAllFused.<locals>.<genexpr>¹   s   øé € ÐSÁ]¸TŸI™I›K¨=Ö8Ã]ùs   ƒ"FTN)ÚFUSION_GROUPÚsetr   r;   Ú
assertTruer>   ÚnextÚiterÚitemsÚallr    )rJ   ÚgraphÚ
except_forÚfusion_groupsÚfusion_nodesr®   rª   s   &&&  @@r   ÚassertAllFusedÚJitTestCase.assertAllFusedž   så   ù€ õ	Rð *¬<Ð9PØ/°Ð=NÐPiðkÜmpÐq{Óm|õ}ˆô EPÔPTÓDUˆÙ)¨%´¸}ÔMØ�‰œ˜MÓ*¨aÑ/°4¸°w°Ô@Ü $¤T¨-×*=Ñ*=Ó*?Ó%@Ó AÑˆà�‰œ˜LÓ)¨QÑ.°$°u°g°Ô?Ø�‰Ÿ›ÔSÀUÇ[Á[Ä]ÓSŸŸšÔSÀUÇ[Á[Ä]ÓSÓSØ˜u˜g˜ö	(r!   c                óD   € \        V4      pRpV F  pWB9   g   K   R# 	  R# )ú Could not export Python functionTF)r¿   zclosures are not exportable)rW   )rJ   ÚeÚseÚallowedÚas   &&   r   Ú_isHookExceptionOkÚJitTestCase._isHookExceptionOk¼   s)   € Ü�‹Vˆð2ˆãˆAØŽwÚñ ñ r!   c                ó´  a € V 3R  lp\         P                  P                  4       ;_uu_ 4         \        VP                  4      ^ 8X  d    RRR4       R# \        V\         P                  P                  4      '       d*   \        VP                  4       4      ^ 8X  d    RRR4       R# \        P                  ! 4       p\         P                  P                  W4       VP                  4       pV! V4      w  rV\        P                  ! T4      p\         P                  P!                  T4      p	\        P                  ! 4       p
\         P                  P                  Yš4       T
P#                  ^ 4       T! T
4      w  r¼\%        Y[RR7       F  w  rÞS P'                  YÞ4       K  	  \        T\         P                  P                  4      '       d9   S P)                  \         P                  P+                  YP,                  4      4       RRR4       R#   \         d,   pS P                  T4      '       g   h  Rp?RRR4       R# Rp?ii ; i  + '       g   i     R# ; i)c                 ód  <€ \         P                  ! V 4      ;_uu_ 4       pS
P                  \        \	        VP                  4       4      4      \        VP                  4       4      4       \        \        R  VP                  4       4      4      p\        R V4      p. pV Fb  pVP                  V4      ;_uu_ 4       pTP                  RP                  V Uu. uF  qwP                  4       NK  	  up4      4       RRR4       Kd  	  \        R V4      p. p	V FJ  pVP                  V4      ;_uu_ 4       pV	P                  \        P                  ! V4      4       RRR4       KL  	  WI3uuRRR4       # u upi   + '       g   i     Kè  ; i  + '       g   i     K…  ; i  + '       g   i     R# ; i)c                 ó$   € V P                  R 4      # )zarchive/code/)Ú
startswith©Úxs   &r   r)   ÚKJitTestCase._compared_saved_loaded.<locals>.extract_files.<locals>.<lambda>Ë   s   € ¨a¯l©l¸?Ô.Kr!   c                 ó$   € V P                  R 4      # )z.py©ÚendswithrÊ   s   &r   r)   rÌ   Í   s   € °!·*±*¸UÔ2Cr!   Ú Nc                 ó$   € V P                  R 4      # )z
.debug_pklrÎ   )Úfs   &r   r)   rÌ   Ô   s   € °1·:±:¸lÔ3Kr!   )ÚzipfileÚZipFileÚassertEqualr>   r²   Únamelistr;   ÚfilterÚopenrr   ÚjoinÚdecodeÚpickleÚload)ÚbufferÚarchiveÚfilesÚcode_files_strÚ
code_filesrÒ   ÚstreamÚlineÚdebug_files_strÚdebug_filesrJ   s   &         €r   Úextract_filesÚ9JitTestCase._compared_saved_loaded.<locals>.extract_filesÆ   s=  ø€ ä—’ ×(Ô(¨Gà× Ñ ¤¤S¨×)9Ñ)9Ó);Ó%<Ó!=¼sÀ7×CSÑCSÓCUÓ?VÔWÜœVÑ$KÈW×M]ÑM]ÓM_Ó`Óa�ä!'Ñ(CÀUÓ!K�Ø�
Û'�AØ Ÿ™ aŸœ¨FØ"×)Ñ)¨"¯'©'ÉVÓ2TÉVÀT·;±;¶=ÉVÑ2TÓ*UÔV÷ )™ñ (ô
 #)Ñ)KÈUÓ"S�Ø �Û(�AØ Ÿ™ aŸœ¨FØ#×*Ñ*¬6¯;ª;°vÓ+>Ô?÷ )™ñ )ð "Ð.÷# )Ò(ùò 3U÷ )Ÿ˜ú÷ )Ÿ˜ú÷ )×(Ð(úsN    BFÂ;E6ÃE1Ã.E6Ã99FÄ2&F
ÅFÅ1E6Å6FÆ	FÆ
FÆ	FÆF/	NT©Ústrict)r%   Ú_jit_internalÚ_disable_emit_hooksr>   r   r$   r/   ÚScriptModuleÚ_method_namesÚioÚBytesIOr1   Úsavers   r?   rÄ   rÜ   ÚseekÚzipÚassertMultiLineEqualr³   Ú_ivalue_tags_matchÚ_c)rJ   Úmræ   rÝ   Úbuffer_copyrá   Ú_debug_filesrÀ   Úbuffer2ÚimportedÚsaved_module_buffer_2Úcode_files_2Ú_debug_files_2rÃ   Úbs   f&             r   Ú_compared_saved_loadedÚ"JitTestCase._compared_saved_loadedÅ   s«  ø€ õ	/ô, × Ñ ×4Ñ4×6Õ6ðä�q—v‘v“; !Ô#Ø÷	 7Ñ6ô
 ˜a¤§¡×!6Ñ!6×7Ò7Ü˜1Ÿ?™?Ó,Ó-°Ô2Ø÷ 7Ñ6ô Ÿš›�Ü—	‘	—‘˜qÔ)ð %Ÿo™oÓ/�á+8¸Ó+@Ñ(�
ô —j’j Ó-ˆGÜ—y‘y—~‘~ gÓ.ˆHô %'§J¢J£LÐ!Ü�I‰I�N‰N˜8Ô;à!×&Ñ& qÔ)Ù+8Ð9NÓ+OÑ(ˆLä˜J¸T×B‘�Ø×)Ñ)¨!Ö/ñ Cô ˜!œUŸX™X×2Ñ2×3Ò3Ø—‘¤§¡× ;Ñ ;¸A¿{¹{Ó KÔL÷Q 7Ñ6øô&  ô Ø×.Ñ.¨q×1Ò1Øã÷/ 7Ñ6ûð&ú÷' 7×6Ð6úsC   ®I°HÁAHÂ(AHÃ6DIÈIÈH>È0IÈ>IÉIÉI	c                óp   € VP                   R 8X  g   RVP                   9   d   R# V P                  V4       R# )z<lambda>zaten::N)Únamerÿ   )rJ   Úfuncs   &&r   r‡   ÚJitTestCase.emitFunctionHook  s*   € à�9‰9˜
Ô" h°$·)±)Ô&;ÙØ×#Ñ# DÖ)r!   c                ó(   € V P                  V4       R # r   )rÿ   )rJ   Úmodules   &&r   r†   ÚJitTestCase.emitModuleHook  s   € Ø×#Ñ# FÖ+r!   Nc                ó$  € \         P                  ! 4       pVP                  R  4       \        P                  P                  W4       VP                  R 4       VP                  ^ 4       \        P                  P                  WCR7      pVP                  R 4       V'       g   V# \        P                  ! RR7      ;_uu_ 4       p VP                  4        VP                  VP                  4       \        P                  P                  VP                  VR7      p\        P                  ! VP                  4        RRR4       XP                  R 4       V#   \        P                  ! TP                  4       i ; i  + '       g   i     LI; i)c                 óh   € V P                   P                  R 4      '       d   V P                  4       # R# )Ú_packN)rõ   Ú_has_methodr
  ©Úss   &r   r)   Ú<JitTestCase.getExportImportCopyWithPacking.<locals>.<lambda>  s&   €  q§t¡t×'7Ñ'7¸×'@Ò'@˜!Ÿ'™'›)ÐJÀdÐJr!   c                 óh   € V P                   P                  R 4      '       d   V P                  4       # R# ©Ú_unpackN©rõ   r  r  r  s   &r   r)   r    s&   € ¨¯©×)9Ñ)9¸)×)DÒ)D˜!Ÿ)™)›+ÐNÈ$ÐNr!   )Úmap_locationc                 óh   € V P                   P                  R 4      '       d   V P                  4       # R# r  r  r  s   &r   r)   r    s'   € °·±×0@Ñ0@À×0KÒ0K §¡£Ð!UÐQUÐ!Ur!   F)ÚdeleteNc                 óh   € V P                   P                  R 4      '       d   V P                  4       # R# r  r  r  s   &r   r)   r  (  s&   € ¨a¯d©d×.>Ñ.>¸y×.IÒ.I˜qŸy™y›{ÐSÈtÐSr!   )rî   rï   Úapplyr%   r1   rð   rñ   rÜ   ÚtempfileÚNamedTemporaryFileÚcloser  ÚosÚunlink)rJ   rö   Úalso_test_filer  rÝ   rú   rÒ   Úresults   &&&&    r   ÚgetExportImportCopyWithPackingÚ*JitTestCase.getExportImportCopyWithPacking  sþ   € Ü—’“ˆØ	�‰ÑJÔKÜ�	‰	�‰�qÔ!Ø	�‰ÑNÔOØ�‰�AŒÜ—9‘9—>‘> &�>ÓDˆØ�‰ÑUÔVçØˆOô
 ×(Ò(°×6Õ6¸!ð"Ø—‘”	Ø—‘˜aŸf™fÔ%ÜŸ™Ÿ™¨¯©¸\˜ÓJ�ä—	’	˜!Ÿ&™&Õ!÷ 7ð 	�‰ÑSÔTØˆøô —	’	˜!Ÿ&™&Õ!ú÷ 7×6ús%   ÃE?ÃAEÄ E?Å"E<Å<E?Å?F	c                ó  aa€ V'       dL   \        V4      pVP                  S4      VP                  R S 24      ,
          pV P                  V^ 8„  4       R# VV3R loS! V4      pV P                  \        V4      ^ 8„  4       R# )úwith Nc                 óÒ   <€ . pV P                  4        FO  pVP                  4       S8X  d   VP                  V4       VP                  4        F  p VS! V 4      ,          pK  	  KQ  	  V# r   ©r    r¡   rr   r¦   ©r§   Úoutr¥   r¡   r    s   &  €€r   r    Ú.JitTestCase.assertGraphContains.<locals>.nodes3  óW   ø€ ØˆCØŸ™ž�Ø—9‘9“; $Ô&Ø—J‘J˜tÔ$Ø!Ÿ[™[ž]�EØ™5 ›<Õ'’Có +ñ &ð
 ˆJr!   )rW   Úcountr³   r>   )rJ   r¸   r¡   Úconsider_subgraphsÚstrgraphr)  Ú	out_nodesr    s   &&f&   @r   ÚassertGraphContainsÚJitTestCase.assertGraphContains+  si   ù€ çÜ˜5“zˆHØ—N‘N 4Ó(¨8¯>©>¸EÀ$À¸.Ó+IÕIˆEØ�O‰O˜E A™IÔ&Ùö	ñ ˜%“Lˆ	Ø�‰œ˜I›¨Ñ*Ö+r!   c                óì   aa	€ R  pV'       dC   \        V4      pVP                  S4      VP                  RS 24      ,
          pV! VSWsV4       R# VV	3R lo	S	! V4      pV! VS\        V4      VV4       R# )c                 ó\   € W#8X  d   R # V'       d   RMRp\        V  RV RV RV RV 2	4      h)NÚ	includingÚ	excludingz
Error: graph contains Ú z nodes (z subgraphs) but expected )ÚAssertionError)r¸   r¡   ÚactualÚexpectedr*  Úsubgraphs   &&&&& r   Úperform_assertÚ>JitTestCase.assertGraphContainsExactly.<locals>.perform_assert@  sG   € ØÔ!Ùß&8‘{¸kˆHÜ Ø�'Ð1°&°¸¸4¸&ÀÈÈ
ÐRkÐltÐkuÐvóxð xr!   r"  Nc                 óÒ   <€ . pV P                  4        FO  pVP                  4       S8X  d   VP                  V4       VP                  4        F  p VS! V 4      ,          pK  	  KQ  	  V# r   r$  r%  s   &  €€r   r    Ú5JitTestCase.assertGraphContainsExactly.<locals>.nodesN  r(  r!   )rW   r)  r>   )
rJ   r¸   r¡   Únum_kind_nodesr*  r8  r+  r)  r,  r    s
   &&f&&    @r   ÚassertGraphContainsExactlyÚ&JitTestCase.assertGraphContainsExactly?  st   ù€ ò	x÷ Ü˜5“zˆHØ—N‘N 4Ó(¨8¯>©>¸EÀ$À¸.Ó+IÕIˆEÙ˜5 $¨Ø-ô/áö	ñ ˜%“Lˆ	Ù�u˜d¤C¨	£N°NØ)ö	+r!   c                ó�   € \         P                  P                  V\        P                  R 7      pV P
                  ! V.VO5/ VB  R# ))Úoperator_export_typeN)r%   ÚonnxÚ_optimize_tracer	   ÚONNXÚassertExpectedGraph)rJ   r¢   ru   Úkwargss   &&*,r   ÚassertExpectedONNXGraphÚ#JitTestCase.assertExpectedONNXGraph[  s:   € Ü�J‰J×&Ñ& qÔ?R×?WÑ?WÐ&ÓXˆØ× Ò  Ð4 TÒ4¨VÔ4r!   c                óô  € \        V\        P                  P                  4      '       d   TpMVP	                  4       p\        P                  P                  V4       \        P                  P                  V4       \        P                  P                  V4       \        P                  P                  V4      p\        P                  P                  V4       V P                  ! \        V4      .VO5/ VB  R # r   )
r$   r%   r/   ÚGraphr¸   Ú_jit_pass_lintÚ_jit_pass_dceÚ_jit_pass_canonicalizeÚassertExpectedrW   )rJ   Útraceru   rE  r¸   s   &&*, r   rD  ÚJitTestCase.assertExpectedGraph_  sŸ   € Ü�eœUŸX™XŸ^™^×,Ò,Ø‰Eà—K‘K“MˆEä�‰×Ñ Ô&Ü�‰×Ñ˜uÔ%Ü�‰×Ñ Ô&Ü—‘×/Ñ/°Ó6ˆÜ�‰×Ñ Ô&Ø×ÒœC ›JÐ8¨Ò8°Ô8r!   c                ó¼  € \        V\        P                  P                  4      '       d   TpR pMRpVP	                  4       p\        P                  P                  V4       \        \        P                  RV,           4      ! V4      pVe   \        V\        4      '       g   Tp\        P                  P                  V4       V'       d   VP                  V4       V# )FTÚ
_jit_pass_)	r$   r%   r/   rI  r¸   rJ  ÚgetattrÚboolÚ	set_graph)rJ   r  rN  r¸   rT  r  s   &&&   r   Úrun_passÚJitTestCase.run_passl  sš   € Ü�eœUŸX™XŸ^™^×,Ò,ØˆEØ‰IàˆIØ—K‘K“MˆEä�‰×Ñ Ô&ÜœŸ™ <°$Õ#6Ô7¸Ó>ˆØÒ¤j°¼×&>Ò&>ØˆEÜ�‰×Ñ Ô&çØ�O‰O˜EÔ"Øˆr!   c                ó8  € \         P                  ! 4       pV'       g   \        R 4      h^ pW1^,           8  d+   VP                  pV'       g   \        R4      hV^,          pK7  / pVP	                  VP
                  4       VP	                  VP                  4       V# )zfailed to inspect framezfailed to get frame)ÚinspectÚcurrentframer?   Úf_backÚupdateÚf_localsÚ	f_globals)rJ   Ú	frames_upÚframeÚiÚdefined_varss   &&   r   Úget_frame_varsÚJitTestCase.get_frame_vars~  s~   € Ü×$Ò$Ó&ˆßÜÐ8Ó9Ð9ØˆØ˜a•-ÔØ—L‘LˆEßÜ"Ð#8Ó9Ð9Ø��FŠAØ')ˆØ×Ñ˜EŸN™NÔ+Ø×Ñ˜EŸO™OÔ,ØÐr!   c                ó   € \        WW#4      # r   )rD   )rJ   rK   rH   rI   s   &&&&r   ÚassertRaisesRegexWithHighlightÚ*JitTestCase.assertRaisesRegexWithHighlight�  s   € Ü5°dÀuÓXÐXr!   c
           
     ó  € \        4       ;_uu_ 4        V P                  W44      ;_uu_ 4        \        V\        4      '       d;   V P	                  V4      p
/ p\        WVR7       V
P                  V4       W¥,          pMTpV! V!   RRR4       V P                  W44      ;_uu_ 4        \        V\        4      '       d-   \        P                  P                  WR7      p\        WÕ4      pM_\        P                  ! \        P                  ! V4      4      p\        P                  P                  WøR7      p\        WÑP                  4      pV! V!   RRR4       \        V\        4      '       gH   V P                  W44      ;_uu_ 4        \        P                  P!                  X4      pV! V!   RRR4       RRR4       R#   + '       g   i     ELA; i  + '       g   i     L‹; i  + '       g   i     LA; i  + '       g   i     R# ; i)zÍ
Checks that a given function will throw the correct exception,
when executed with normal python, the string frontend, and the
AST frontend. Logic taken from `checkScript` (see comments there
for details)
©r   r   N©Ú
_frames_up)r   rT   r$   rW   rb  r    r[  r%   r1   ÚCompilationUnitrR  ÚtextwrapÚdedentrX  Ú	getsourcer]   Úscript)rJ   ro  r£   rK   rH   r  ÚoutputsÚcapture_outputr^  Ú	profilingr_  Ú
the_localsÚ	python_fnÚcuÚstring_frontendÚsourceÚges   &&&&&&&&&&       r   ÚcheckScriptRaisesRegexÚ"JitTestCase.checkScriptRaisesRegex�  sk  € ô 7×8Õ8à×'Ñ'¨	×9Õ9Ü˜f¤c×*Ò*Ø ×/Ñ/°	Ó:�EØ13�JÜ ¸
ÕCØ—L‘L Ô,à %¥‘Ià &�Iá˜6Ò"÷ :ð ×'Ñ'¨	×9Õ9Ü˜f¤c×*Ò*ÜŸ™×2Ñ2°6Ð2ÓP�BÜ&-¨bÓ&7‘Oä%Ÿ_š_¬W×->Ò->¸vÓ-FÓG�FÜŸ™×2Ñ2°6Ð2ÓP�BÜ&-¨b·/±/Ó&B�Oá Ò(÷ :ô ˜f¤c×*Ò*Ø×+Ñ+¨I×=Õ=ÜŸ™×)Ñ)¨)Ó4�BÙ˜’K÷ >÷; 9Ñ8ç9×9Ð9ú÷ :×9ú÷ >×=ú÷; 9×8Ð8úsT   “G8­AF>	Â!G8Â'B(G	Å7G8Æ&G%	Æ,G8Æ>GÇ		G8ÇG"ÇG8Ç%G5Ç0G8Ç8H		c                óø   € VP                  4       p\        V4      pVP                  P                  4       p\	        V4       F5  pVP                  P                  V4       V! V!  pV P                  Wƒ4       K7  	  R # r   )Úget_debug_staterB   r   Únum_bailoutsÚrangeÚrequest_bailoutrÕ   )	rJ   Úmodelr£   r6  ÚstateÚplanr}  r`  Úbailout_outputss	   &&&&     r   ÚcheckBailoutsÚJitTestCase.checkBailoutsº  sd   € Ø×%Ñ%Ó'ˆÜ! %Ó(ˆØ—y‘y×-Ñ-Ó/ˆÜ�|Ö$ˆAØ�I‰I×%Ñ% aÔ(Ù# V™nˆOØ×Ñ˜_Ö7ó %r!   r  c                ó8  € \         P                  P                  V4      ;_uu_ 4        \        4       ;_uu_ 4        \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      p\        V\        4      '       df   \         P                  P                  WR7      pV P                  V4      p/ p\        WVR7       VP                  V4       WÓ,          p\        WÃ4      pMp\        P                  ! \        P                  ! V4      4      pV P!                  VVVP"                  VVVV^R7       \         P                  P%                  V^R7      pTpV'       d   \'        R V4      pMTpV'       d±   V P)                  4       ;_uu_ 4       pV! V!  pRRR4       V P)                  4       ;_uu_ 4        V! V!  pRRR4       V P)                  4       ;_uu_ 4        V! V!  pRRR4       \*        '       g   V P-                  X^ ,          R	R
7       V P/                  XXWšR7       MGV! V!  pV'       g	   V'       d   V! V!  pV! V!  p\0        '       d   V P3                  VVV4       V! V!  pV P/                  VXWšR7       V P/                  VVWšR7       VuuRRR4       uuRRR4       #   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     Lø; i  + '       g   i     M; iRRR4       R#   + '       g   i     R# ; i)zd
Checks that a given script generates the same output as the Python
version using the given inputs.
c              3   ó~   "  € T F3  p\        V\        P                  4      ;'       d    VP                  x € K5  	  R # 5ir   )r$   r%   r&   Úrequires_grad)r­   rË   s   & r   r¯   Ú*JitTestCase.checkScript.<locals>.<genexpr>Ó  s-   é € Ð$eÑ^dÐYZ¤Z°´5·<±<Ó%@×%TÐ%TÀQÇ_Á_Ô%TÓ^dùs   ‚%=¨=TFri  rh  )ÚoptimizeÚinputs_requires_gradrq  rr  r^  c                 ó>   € V P                  4       P                  4       # r   )ÚdetachÚrequires_grad_r'   s   &r   r)   Ú)JitTestCase.checkScript.<locals>.<lambda>ö  s   € ¸!¿(¹(»*×:SÑ:SÔ:Ur!   Nrl   )Úsubname©ÚatolÚrtol)r%   r1   Úoptimized_executionr   Úanyr$   rW   rk  rb  r    r[  rR  rl  rm  rX  rn  ÚcheckScriptr]   ro  r-   ry   r   rM  rÕ   r   r„  )rJ   ro  r£   r  rŠ  r‹  rq  r^  rr  r’  r“  Úextra_profile_runsru  r_  rs  rt  Úscripted_fnrw  Úrecording_inputsÚscript_stdoutÚscript_outputsÚopt_script_outputsÚpython_outputss   &&&&&&&&&&&            r   r–  ÚJitTestCase.checkScriptÃ  s�  € ô �Y‰Y×*Ñ*¨8×4Õ4Ô6_×6aÕ6aß!$£Ñ$eÑ^dÓ$e§§¢Ñ$eÑ^dÓ$eÓ!eÐÜ˜&¤#×&Ò&ô —Y‘Y×.Ñ.¨vÐ.ÓL�ð
 ×+Ñ+¨IÓ6�Ø-/�
Ü˜F°JÕ?Ø—‘˜ZÔ(à!�K�	Ü% bÓ/‘ô "Ÿš¬×):Ò):¸6Ó)BÓC�Ø× Ñ ØØØ—O‘OØ%Ø)=Ø#1Ø'Øð !ô !ô $Ÿi™i×.Ñ.¨vÀ!Ð.ÓD�Ø"�	ç#Ü#/Ñ0UÐW]Ó#^Ñ à#)Ð çØ×(Ñ(×*Ô*¨mÙ%0Ð2BÑ%C�N÷ +à×(Ñ(×*Õ*Ù)4Ð6FÑ)GÐ&÷ +à×(Ñ(×*Õ*Ù%.°Ñ%7�N÷ +ç!“zØ×'Ñ'¨°aÕ(8À(Ð'ÔKØ× Ñ  Ð1CÈ$Ð ÕZñ "-Ð.>Ñ!?�ß'×+=Ù)4Ð6FÑ)GÐ&á%0Ð2BÑ%CÐ"ß “=Ø×&Ñ& {°FÐ<NÔOÙ!*¨FÑ!3�Ø×Ñ˜^¨^À$ÐÔRØ×Ñ˜^Ð-?ÀdÐÔVØ÷} 7bÑ6a×4Ò4÷R +×*Ð*úç*×*Ð*úç*×*ú÷[ 7b×6aú×4×4×4Ò4ús–   ¨L»K+	ÁDK+	Å#K+	Å;K+	ÆJ0Æ K+	Æ:KÇ K+	Ç!KÇ(K+	Ç<<K+	È9K+	ÉK+	ÉAK+	Ê
LÊ0KÊ;	K+	ËKË	K+	ËK(Ë#K+	Ë+K;Ë6LÌL	c                ó`  aa€ V3R  lpVf   TpV3R lpTpV'       d   \        R V4      oV! S4      pMVo\        P                  P                  WVV
RR7      pV	'       d   V P	                  V4      pV'       d   \        VP                  4       V! V!  pV! V!  pV P                  VV4       V! S!  pV'       d)   \        P                  P                  V! V4      XVR7      pV! S!  pV'       d)   \        P                  P                  V! V4      XVR7      pV P                  VV4       V'       d   V P                  XXW¼R7       V! S!  pV! V4      pV'       d$   \        P                  P                  VXRVR7      pV'       d2   V! X4      V,          p\        P                  P                  VXVR7      pV'       d   \        R	 V4      oV! S4      pV! S!  pV! V4      pV'       d$   \        P                  P                  VXRVR7      pV'       d2   V! X4      V,          p\        P                  P                  VXVR7      pV P                  VV4       V'       dL   V P                  XXW¼R7       \        XXRR
7       F%  w  ppVf   Vf   K  V P                  VVRRR7       K'  	  V# )c                 óN   <€ Se   V R S)  p \        R \        V 4       4       4      # )Nc              3   ó–   "  € T F?  w  rVf   K  \         P                  ! V^,           4      VP                  4       ,          x € KA  	  R # 5ir   )ÚmathÚlogÚsum)r­   r`  Úvs   &  r   r¯   Ú9JitTestCase.checkTrace.<locals>.allSum.<locals>.<genexpr>  s1   é € Ð\¹]±T°QÈaÔ0”t—x’x  A¥“¨¯©«×0Ò0»]ùs
   ‚A	�:A	)r¤  Ú	enumerate)ÚvsÚdrops   &€r   ÚallSumÚ&JitTestCase.checkTrace.<locals>.allSum  s/   ø€ ð ÒØ˜˜$˜�Z�ô Ñ\¼YÀr¼]Ó\Ó\Ð\r!   c                 ó:   <a€ V3R  lo\        S! SR . 4      4      # )c                 óÜ   <a a€ \        S \        P                  4      '       d   S! S V4       V# \        S \        4      '       d   \	        VV V3R  lS V4       V# \	        VV3R lS V4       V# )c                 ó&   <€ S! SV,          SV 4      # r   r7   )r¨   Úkeyr+   r,   Úinput_reduces   &&€€€r   r)   ÚVJitTestCase.checkTrace.<locals>.flatten_inputs.<locals>.input_reduce.<locals>.<lambda>(  s   ø€ ©L¸¸s½ÀRÈÔ,Mr!   c                 ó   <€ S! VSV 4      # r   r7   )r¨   Úvalr+   r°  s   &&€€r   r)   r±  *  s   ø€ ©L¸¸bÀ#Ô,Fr!   )r$   r%   r&   Údictr   )r,   r+   r¨   r°  s   ff&€r   r°  ÚDJitTestCase.checkTrace.<locals>.flatten_inputs.<locals>.input_reduce$  s\   ú€ Ü˜e¤U§\¡\×2Ò2Ù�u˜c”Nð
 �
ô	   ¤t×,Ò,ÜÖMÈuÐVYÔZð �
ô ÕFÈÈsÔSØ�
r!   c                 ó$   € VP                  V 4      # r   )rr   )r(   r¨   s   &&r   r)   Ú@JitTestCase.checkTrace.<locals>.flatten_inputs.<locals>.<lambda>,  s   € ÀsÇzÁzÐRSÄ}r!   )Útuple)r£   r°  r™  s   &@€r   Úflatten_inputsÚ.JitTestCase.checkTrace.<locals>.flatten_inputs#  s!   ù€ õô ™Ð&6Ñ8TÐVXÓYÓZÐZr!   c                 ó>   € V P                  4       P                  4       # r   )ÚclonerŽ  r'   s   &r   r)   Ú(JitTestCase.checkTrace.<locals>.<lambda>0  s   € °a·g±g³i×6NÑ6NÔ6Pr!   F)Úcheck_toleranceÚ_force_outplaceÚcheck_trace)Úallow_unusedr‘  T)Úcreate_graphrÁ  c                 ó   € \        V R R7      # )T)rˆ  r   r'   s   &r   r)   r½  _  s   € ´h¸qÐPTÕ6Ur!   rè   g-Cëâ6J?)r-   r%   r1   rN  ÚgetExportImportCopyÚprintr¸   rÕ   ÚautogradÚgradrò   )rJ   r  Úreference_tensorsÚinput_tensorsr©  rÁ  ÚverboseÚinputs_require_gradsr¾  Úexport_importr¿  Ú	grad_atolÚ	grad_rtolrª  r¹  Únograd_inputsÚflattened_recording_inputsrx  rp  Ú
outputs_geÚgradsÚgrads_geÚl1Úl2Úgrads2Úl1_geÚl2_geÚ	grads2_geÚg2Úg2_ger™  s   &&&&f&&&&&&&&                 @r   Ú
checkTraceÚJitTestCase.checkTrace  sª  ù€ õ	]ð Ò Ø-ˆMõ		[ð *ˆßÜ+Ñ,PÐRcÓdÐÙ)7Ð8HÓ)IÑ&à0Ðô
 �Y‰Y�_‰_˜TÀ/Ø-<È%ð ó Qˆ÷ Ø×)Ñ)¨"Ó-ˆBçÜ�"—(‘(ŒOñ ˜Ñ&ˆÙ˜Ñ'ˆ
Ø×Ñ˜ *Ô-ñ Ð(Ñ)ˆßÜ—N‘N×'Ñ'©¨w«Ð9SØ5Að (ó CˆEñ Ð)Ñ*ˆ
ßÜ—~‘~×*Ñ*©6°*Ó+=Ð?YØ8Dð +ó FˆHà×Ñ˜ *Ô-ßØ×Ñ˜U H°9ÐÔMñ Ð(Ñ)ˆÙ�G‹_ˆßÜ—N‘N×'Ñ'¨Ð,FÐUYØ5Að (ó CˆEçÙ˜“- "Õ$ˆBÜ—^‘^×(Ñ(¨Ð-GÐVbÐ(ÓcˆFçÜ+Ñ,UÐWhÓiÐÙ)7Ð8HÓ)IÐ&áÐ)Ñ*ˆ
Ù�zÓ"ˆßÜ—~‘~×*Ñ*ØÐ1ÀÐS_ð +ó aˆH÷  Ù˜HÓ%¨Õ-ˆEÜŸ™×+Ñ+¨EÐ3MÐ\hÐ+ÓiˆIà×Ñ˜ *Ô-ßØ×Ñ˜U H°9ÐÔMÜ  ¨¸4×@‘	��EØ’: %¢-ÙØ× Ñ   U°¸DÐ ÖAñ Að
 ˆ	r!   c                óZ  € \         P                  P                  V4      p\        4       ;_uu_ 4        V! V!  pRRR4       \        4       ;_uu_ 4        V! V!  pRRR4       V P	                  XX4       V P                  W24       V#   + '       g   i     LV; i  + '       g   i     LH; i)zY
Check that a nn.Module's results in Script mode match eager and that it
can be exported
N)r%   r1   ro  r   rÕ   ÚassertExportImportModule)rJ   Ú	nn_moduleru   ÚsmÚ	eager_outÚ
script_outs   &&&   r   ÚcheckModuleÚJitTestCase.checkModulev  s€   € ô
 �Y‰Y×Ñ˜iÓ(ˆä×ÕÙ! 4Ñ(ˆI÷  ô ×ÕÙ˜T™ˆJ÷  ð 	×Ñ˜ JÔ/Ø×%Ñ% bÔ/àˆ	÷  ×ú÷  ×ús   ²BÁBÂB	ÂB*	r7   )r7   rŽ   )F)
NNFFTgñhãˆµøä>TFNN)$r]   r^   r_   r`   Ú_do_cuda_memory_leak_checkr‘   r;   ry   rƒ   rˆ   r‹   r�   r˜   r¼   rÄ   rÿ   r‡   r†   r  r-  r=  rF  rD  rU  rb  re  r   Ú	PROFILINGry  r„  r–  rÜ  rä  rb   rc   Ú__classcell__)r•   re   s   @@r   rg   rg   e   sÙ   ù‡ € Ø!%ÐØÐô)˜ô )ô)˜ô )òQò1õõô(ò<ò?MòD*ò,ôô4,ô(+ò85ò9òò$òYð %)°$ÀuØ)*°m×6MÑ6Mô( òT8ð  Ø!Ø).Ø#(ØØ+×5Ñ5ØØôMô^b÷Hò r!   rg   c                   ó,   a € ] tR tRt o R tR tRtV tR# )ÚNoTracerWarnContextManageriˆ  c                óŠ   € \         P                  P                  4       V n        \         P                  P	                  R 4       R# ©FN)r%   r/   Ú_jit_get_tracer_state_warnÚprevÚ_jit_set_tracer_state_warnrO   s   &r   rP   Ú$NoTracerWarnContextManager.__enter__‰  s(   € Ü—H‘H×7Ñ7Ó9ˆŒ	Ü�‰×+Ñ+¨EÖ2r!   c                óX   € \         P                  P                  V P                  4       R # r   )r%   r/   rï  rî  rt   s   &*r   r[   Ú#NoTracerWarnContextManager.__exit__�  s   € Ü�‰×+Ñ+¨D¯I©IÖ6r!   )rî  N)r]   r^   r_   r`   rP   r[   rb   rc   rd   s   @r   rê  rê  ˆ  s   ø‡ € ò3÷7ð 7r!   rê  c              #   ó  "  € \         P                  P                  4       p\         P                  P                  V 4        R x € \         P                  P                  V4       R #   \         P                  P                  T4       i ; i5ir   )r%   r/   Ú_jit_get_inline_everything_modeÚ_jit_set_inline_everything_mode)Úshould_inlineÚolds   & r   Úinline_everything_moderø  �  sU   é € ä
�(‰(×
2Ñ
2Ó
4€CÜ	‡H�H×,Ñ,¨]Ô;ð6Ûä�‰×0Ñ0°Ö5øŒ�‰×0Ñ0°Õ5üó   ‚>B
ÁA& Á!B
Á&!BÂB
c              #   ó  "  € \         P                  P                  4       p\         P                  P                  V 4        R x € \         P                  P                  V4       R #   \         P                  P                  T4       i ; i5ir   )r%   r/   Ú _debug_get_fusion_group_inliningÚ _debug_set_fusion_group_inlining)Úinliningr÷  s   & r   Úset_fusion_group_inliningrþ  ™  sU   é € ä
�(‰(×
3Ñ
3Ó
5€CÜ	‡H�H×-Ñ-¨hÔ7ð7Ûä�‰×1Ñ1°#Ö6øŒ�‰×1Ñ1°#Õ6ürù  c              #   óæ   "  € \         P                  P                  V '       * 4        R x € \         P                  P                  R4       R #   \         P                  P                  R4       i ; i5irS   )r%   r/   Ú%_debug_set_autodiff_subgraph_inlining)Úenableds   &r   Ú"disable_autodiff_subgraph_inliningr  £  sE   é € ä	‡H�H×2Ñ2°w´;Ô?ð=Ûä�‰×6Ñ6°tÖ<øŒ�‰×6Ñ6°tÕ<üs   ‚%A1¨A ¬!A1Á!A.Á.A1c                 óF   a € \         P                  ! S 4      V 3R  l4       pV# )c                  óx   <€ \        R 4      ;_uu_ 4        S! V / VB  RRR4       R#   + '       g   i     R# ; irŽ   ©rø  ©ru   rE  r+   s   *,€r   ÚwrapperÚ#_inline_everything.<locals>.wrapper¬  s*   ø€ ä# D×)Õ)Ù�Ð˜Ò÷ *×)×)Ò)úó   •	(¨9	©Ú	functoolsÚwraps©r+   r  s   f r   Ú_inline_everythingr  «  ó%   ø€ Ü‡_‚_�RÓô ó ð ð €Nr!   c                 óF   a € \         P                  ! S 4      V 3R  l4       pV# )c                  óx   <€ \        R 4      ;_uu_ 4        S! V / VB  RRR4       R#   + '       g   i     R# ; irì  r  r  s   *,€r   r  Ú5_tmp_donotuse_dont_inline_everything.<locals>.wrapperµ  s*   ø€ ä# E×*Õ*Ù�Ð˜Ò÷ +×*×*Ò*úr	  r
  r  s   f r   Ú$_tmp_donotuse_dont_inline_everythingr  ´  r  r!   c                  ó   a a€ V V3R  lpV# )c                 óH   <€ \         P                  P                  ! V S3/ SB # r   )r%   r1   rN  )r  ru   rE  s   &€€r   r  Ú_trace.<locals>.wrapper½  s   ø€ Ü�y‰y�Š˜t TÑ4¨VÑ4Ð4r!   r7   )ru   rE  r  s   jl r   Ú_tracer  ¼  s   ù€ ö5à€Nr!   c                 ó   a € V 3R  lpV# )c                  óR  <€ \         P                  P                  R 4       \         P                  P                  R 4       \         P                  P	                  R4        S! V / VB  \         P                  P                  R4       \         P                  P                  R4       \         P                  P	                  R 4       R#   \         P                  P                  R4       \         P                  P                  R4       \         P                  P	                  R 4       i ; i©TFN)r%   r/   Ú$_jit_override_can_fuse_on_cpu_legacyÚ_jit_override_can_fuse_on_cpuÚ_jit_set_te_must_use_llvm_cpur  s   *,€r   r  Ú!enable_cpu_fuser.<locals>.wrapperÃ  s»   ø€ Ü�‰×5Ñ5°dÔ;Ü�‰×.Ñ.¨tÔ4Ü�‰×.Ñ.¨uÔ5ð	9Ù�Ð˜Òä�H‰H×9Ñ9¸%Ô@Ü�H‰H×2Ñ2°5Ô9Ü�H‰H×2Ñ2°4Ö8øô �H‰H×9Ñ9¸%Ô@Ü�H‰H×2Ñ2°5Ô9Ü�H‰H×2Ñ2°4Õ8ús   Á C ÃAD&r7   r  s   f r   Úenable_cpu_fuserr  Â  s   ø€ õ	9ð €Nr!   c                 ó(   € V '       d   \         # R  pV# )c                 ó   a € V 3R  lpV# )c                  ó   <€ S! V / VB # r   r7   r  s   *,€r   r  Ú8enable_cpu_fuser_if.<locals>.noop_fuser.<locals>.wrapperÕ  s   ø€ Ù˜4Ð* 6Ñ*Ð*r!   r7   r  s   f r   Ú
noop_fuserÚ'enable_cpu_fuser_if.<locals>.noop_fuserÔ  s   ø€ õ+àˆNr!   )r  )Úcondr$  s   & r   Úenable_cpu_fuser_ifr'  Ð  s   € ßÜÐò	ð Ðr!   c                 ó$   € V P                  R 4      # ©Úforward)Ú_get_method©Úcs   &r   Úget_forwardr.  Ú  s   € Ø�=‰=˜Ó#Ð#r!   c                 ó8   € V P                  R 4      P                  # r)  )r+  r¸   r,  s   &r   Úget_forward_graphr0  Ý  s   € Ø�=‰=˜Ó#×)Ñ)Ð)r!   c                 óV   € V P                   P                  V4      P                  V4      # r   )rõ   rR  r+  )rö   r  Úmethods   &&&r   Úget_module_methodr3  à  s    € Ø�4‰4�<‰<˜Ó×+Ñ+¨FÓ3Ð3r!   c                 ó°   € V P                   P                  P                  4        UUu. uF   w  r#VP                  V4      '       g   K  VNK"  	  upp# u uppi r   )Ú_modulesrõ   r¶   rÉ   )r  ÚprefixrË   Ú_s   &&  r   Úattrs_with_prefixr8  ã  sJ   € Ø Ÿ/™/×,Ñ,×2Ñ2Ô4ô %Ñ4‘$�!Ø�|‰|˜F×#÷ ˆAÑ4ò %ð %ùó %s   ¨AÁAc                 óà   € ^p. p\        V4       FZ  p\        V4      ^ 8”  d6   \        P                  P                  ! V .VO5!  pVP                  V4       KH  V P                  RR7       K\  	  V# )é   T)Úretain_graph)r~  r>   r%   rÆ  rÇ  rr   Úbackward)rÒ   ru   Úprofiling_countÚresultsr7  Úrs   &*    r   Úwarmup_backwardr@  ç  s`   € Ø€OØ€GÜ�?Ö#ˆÜˆt‹9�qŒ=Ü—‘×#Ò# AÐ-¨Ó-ˆAØ�N‰N˜1Öà�J‰J DˆJÖ)ñ $ð €Nr!   c                  ó„   € V  F9  p\        \        P                  VP                  ,          VP                  V4       K;  	  R # r   )Úsetattrrk   Úmodulesr^   r]   )ru   Úargs   * r   Úmake_globalrE  ô  s)   € ÛˆÜ”—‘˜CŸN™NÕ+¨S¯\©\¸3Ö?ó r!   c           	      óf  € \         P                  ! 4       ;_uu_ 4       p\        P                  P	                  VR 4      p\        VR4      ;_uu_ 4       pVP                  V 4       RRR4       \        P                  P                  W4      p\        P                  P                  V4      pVP                  p\        V\        4      '       g   \        R\        V4       24      hVP!                  V4       \#        Wa4      pVuuRRR4       #   + '       g   i     L¯; i  + '       g   i     R# ; i)z	script.pyÚwNz"Expected loader to be Loader, got )r  ÚTemporaryDirectoryr  ÚpathrÙ   rØ   ÚwriteÚ	importlibÚutilÚspec_from_file_locationÚmodule_from_specÚloaderr$   r   r4  rX   Úexec_modulerR  )	r   Úfn_nameÚtmp_dirÚscript_pathrÒ   Úspecr  rO  r+   s	   &&       r   Ú_get_py3_coderU  ú  sÑ   € Ü	×	$Ò	$×	&Ô	&¨'Ü—g‘g—l‘l 7¨KÓ8ˆÜ�+˜s×#Ô# qØ�G‰G�DŒM÷ $ä�~‰~×5Ñ5°gÓKˆÜ—‘×0Ñ0°Ó6ˆØ—‘ˆÜ˜&¤&×)Ò)Ü Ð#EÄdÈ6ÃlÀ^Ð!TÓUÐUØ×Ñ˜6Ô"Ü�VÓ%ˆØ÷ 
'Ò	&ç#×#ú÷ 
'×	&Ð	&ús$   ž5DÁD	Á%BDÄDÄDÄD0	c                   ó8   a € ] tR tRt o V 3R lR ltR tRtV tR# )ÚTensorExprTestOptionsi  c                ó   <€ V ^8„  d   QhRR/# )é   ÚreturnNr7   )Úformatre   s   "€r   Ú__annotate__Ú"TensorExprTestOptions.__annotate__	  s   ø€ ÷ 6ñ 6˜$ñ 6r!   c                ó*  € \         P                  P                  R 4      V n        \         P                  P	                  R 4      V n        \         P                  P                  4       V n        \         P                  P                  4       V n	        \         P                  P                  R 4       \         P                  P                  R 4       \         P                  P                  4       V n        \         P                  P                  R 4       \         P                  P                  4       V n        \         P                  P#                  R4       \         P                  P%                  4       V n        \         P                  P)                  R4       R# r  )r%   r/   Ú_jit_set_profiling_executorÚold_profiling_executorÚ_get_graph_executor_optimizeÚold_profiling_modeÚ_jit_can_fuse_on_cpuÚold_cpu_fuser_stateÚ_jit_can_fuse_on_gpuÚold_gpu_fuser_stater  Ú_jit_override_can_fuse_on_gpuÚ_jit_texpr_fuser_enabledÚtexpr_fuser_stateÚ_jit_set_texpr_fuser_enabledrû  Úold_fusion_inliningrü  Ú_jit_get_te_must_use_llvm_cpuÚold_te_must_use_llvm_cpur  rO   s   &r   rL   ÚTensorExprTestOptions.__init__	  só   € Ü&+§h¡h×&JÑ&JÈ4Ó&PˆÔ#Ü"'§(¡(×"GÑ"GÈÓ"MˆÔä#(§8¡8×#@Ñ#@Ó#BˆÔ Ü#(§8¡8×#@Ñ#@Ó#BˆÔ Ü�‰×.Ñ.¨tÔ4Ü�‰×.Ñ.¨tÔ4Ü!&§¡×!BÑ!BÓ!DˆÔÜ�‰×-Ñ-¨dÔ3Ü#(§8¡8×#LÑ#LÓ#NˆÔ Ü�‰×1Ñ1°%Ô8Ü(-¯©×(NÑ(NÓ(PˆÔ%Ü�‰×.Ñ.¨uÖ5r!   c                óD  € \         P                  P                  V P                  4       \         P                  P	                  V P
                  4       \         P                  P                  V P                  4       \         P                  P                  V P                  4       \         P                  P                  V P                  4       \         P                  P                  V P                  4       \         P                  P                  V P                  4       R # r   )r%   r/   r_  r`  ra  rb  rj  ri  rg  rf  r  rd  rü  rk  r  rm  rO   s   &r   ÚrestoreÚTensorExprTestOptions.restore  sª   € Ü�‰×,Ñ,¨T×-HÑ-HÔIÜ�‰×-Ñ-¨d×.EÑ.EÔFä�‰×-Ñ-¨d×.DÑ.DÔEÜ�‰×.Ñ.¨t×/GÑ/GÔHÜ�‰×.Ñ.¨t×/GÑ/GÔHÜ�‰×1Ñ1°$×2JÑ2JÔKÜ�‰×.Ñ.¨t×/LÑ/LÖMr!   )rd  rk  rf  r`  rb  rm  ri  N)r]   r^   r_   r`   rL   rp  rb   rc   rd   s   @r   rW  rW    s   ø‡ € ÷6ð 6÷Nð Nr!   rW  c                 ó„  € . pV  F²  p\        V\        P                  4      '       d0   VP                  VP	                  4       P                  4       4       KR  \        V4      '       d?   TP                  V Uu. uF   q3P	                  4       P                  4       NK"  	  up4       K¡  VP                  V4       K´  	  V# u upi r   )r$   r%   r&   rr   r�  r¼  r   )ru   r£   rD  r(   s   &   r   Úclone_inputsrs  "  sˆ   € Ø68€FãˆÜ�cœ5Ÿ<™<×(Ò(Ø�M‰M˜#Ÿ*™*›,×,Ñ,Ó.Ö/Ü# C×(Ò(Ø�M‰M±sÓ;±s°!Ÿ8™8›:×+Ñ+Ö-±sÑ;Ö<à�M‰M˜#Öñ ð €Mùò	 <s   Á7&B=
c           
      ó:  a€ . pSP                  W4      pSP                  4       pSP                  4       pR VRV/pSP                  R9   pV'       d'   R\	        \
        P                  SP                  4      /pRRR^ ./RRR^ ./RRR^ ./RRR^./RRR^ ./RR	R^ ./RR
R^./.p	V'       d   V# V Fç  p
VP                  4        FÐ  pVf   K	  \        V4      '       d   K  \        V3R lV	4      pV FŒ  pVR,           F|  p\        V
P                  4      p\        V
P                  4      V8”  d;   \        V
P                  V,          \        4      '       d   \        Wþ,          4      Wþ&   \!        V4      V
n        K~  	  KŽ  	  VP#                  Wº34       KÒ  	  Ké  	  V# )Úfunctionr2  r  Údiv_floor_roundingÚarg_idxÚdiv_no_rounding_modeÚdiv_trunc_roundingÚ
index_fillÚ	full_likeÚmulÚnew_fullc                 ó0   <€ SP                   V R ,          8H  # )r  )Úformatted_name)rË   Úops   &€r   r)   Ú1get_traced_sample_variant_pairs.<locals>.<lambda>r  s   ø€ ¨B×,=Ñ,=ÀÀ6ÅÒ,Jr!   )Úresize_Ú
resize_as_)Úsample_inputsÚget_opÚ
get_methodr  rR  r%   r&   r=   Ú	is_lambdar×   r;   ru   r>   r$   rS  Úintr¸  rr   )ÚdeviceÚdtyper€  rp  Úsamplesr  r2  ÚvariantsÚhas_fake_functionÚops_with_unsupported_bool_argsÚsampleÚvariantÚmatching_opsÚop_dataÚidxru   s   &&f             r   Úget_traced_sample_variant_pairsr”  /  sÊ  ø€ à%'€Gà×Ñ˜vÓ-€Gð �9‰9‹;€DØ�]‰]‹_€Fð 	�D˜( Fð€Hð Ÿ™Ð#<Ñ<ÐçØœg¤e§l¡l°B·G±GÓ<Ð=ˆð Ð(Ø˜�sð	
ð
 Ð*Ø˜�sð	
ð
 Ð(Ø˜�sð	
ð
 �LØ˜�sð	
ð
 �KØ˜�sð	
ð
 �EØ˜�sð	
ð
 �JØ˜�sð	
ð3&Ð"÷@ ØˆãˆØ—‘Ö(ˆGØŠÙä˜×!Ò!Ùä!Ô"JÐLjÓkˆLÛ'�Ø" 9×-Ð-�CÜ §¡Ó,�DÜ˜6Ÿ;™;Ó'¨#Ô-´*¸V¿[¹[ÈÕ=MÌt×2TÒ2TÜ$'¨­	£N˜™	Ü"'¨£+�F–Kó	 .ñ (ð �N‰N˜GÐ,Ö-ó )ñ ð$ €Nr!   c                 ót   € R  p\        V \        V4      4      ;'       d    V P                  VP                  8H  # )c                  ó   € ^ # )r   r7   r7   r!   r   r)   Úis_lambda.<locals>.<lambda>€  s   € ‘Qr!   )r$   rX   r]   )ÚlambÚLAMBDAs   & r   r‡  r‡    s-   € Ù€FÜ�dœD ›LÓ)×NÐN¨d¯m©m¸v¿¹Ñ.NÐNr!   )T)[Útorch.autogradr   Útorch.autograd.functionr   Útorch.jit.annotationsr   r   Ú
torch.onnxr	   r%   Ú
torch.cudaÚ	torch.jitÚtorch.jit._loggingÚtorch.jit.frontendÚtorch.jit.quantizedrÓ   r  Útorch.testingr
   Ú$torch.testing._internal.common_utilsr   r   r   r   r   r   Ú"torch.testing._internal.common_jitr   r   Ú
contextlibr   r   rî   r   Úcollectionsr   Úimportlib.utilrK  rX  r¢  r  rÛ   rk   r  rl  Úimportlib.abcr   Útypingr   ÚcudaÚis_availableÚRUN_CUDAÚdevice_countÚRUN_CUDA_MULTI_GPUÚRUN_CUDA_HALFÚversionÚhipr/   Ú_cuda_getCompiledVersionÚCUDA_VERSIONr~  ÚdÚget_device_capabilityÚmajorr    r-   r8   rB   rD   r±   rg   rê  rø  rþ  r  r  r  r  r  r'  r.  r0  r3  r8  r@  rE  rU  rW  rs  r”  r‡  r7   r!   r   Ú<module>r¸     sõ  ðõ $Ý /ß Få *Û Û Û Û Û Û Û Û õ $÷÷ õ AÝ Fõ &Ý Ý Ý #ã Û Û 	Û Û 	Û Û 
Û Û Ý  Ý à�:‰:×"Ñ"Ó$€Ø×?Ð? %§*¡*×"9Ñ"9Ó";¸aÑ"?Ð Ø€à‡:�:×Ñ×Ò U§]¡]×%6×%6Ð%6Ø—8‘8×4Ñ4Ó6€LÙ�5—:‘:×*Ñ*Ó,Ö-ˆØ—
‘
×0Ñ0°Ó3°AÕ6ˆØ�AŽIØ!ŠMñ .ò
òIò*ò
÷ñ ð2 '€ôaÐ#ô a÷F7ñ 7ð ñ6ó ð6ð ñ7ó ð7ð ó=ó ð=òòòòòò$ò*ò4ò%ò
ò@ò÷Nñ Nò4òMô`Or!   