+
    –°³jþ  ã                   óX  a€ R7 tY0 t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
 ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHtHtHtHtHtHtHt ^ R
IHt ]P@                  ! ]!4      t"R t#R t$R R lt%R t&R t'R t(R R lt)R t*R8R R llt+R R lt,R t-]P\                  ^ ]P^                  ^]P`                  ^]Pb                  ^]Pd                  ^]Pf                  ^]Ph                  ^]Pj                  ^]Pl                  ^]Pn                  ^	]Pp                  ^
]Pr                  ^]Pt                  ^]Pv                  ^]Px                  ^/t=]=P}                  4        U Uu/ uF  w  rWbK	  	  upp t?R t@R]P‚                  R]P„                  R]P†                  R]Pˆ                  R]PŠ                  R ]PŒ                  R!]PŽ                  R"]@R#]HR$]P’                  P”                  P–                  R%]P’                  P”                  P˜                  R&]P’                  P”                  Pš                  R']P’                  P”                  Pœ                  /tO] ^ k R( tPR) tQR* R+ ltRR, R- ltSR. R/ ltT ! R0 R14      tU ! R2 R3]U4      tV]
R4 4       tW ! R5 R64      tXR# u upp i )9é    N)ÚCallableÚSequence)Úcontextmanager)ÚAny)Ú_C)Ú'replace_quantized_ops_with_standard_ops)Ú_tree_map_with_pathÚDim©ÚExportedProgram)ÚConstantArgumentÚCustomObjArgumentÚ	InputKindÚ	InputSpecÚ
OutputKindÚ
OutputSpecÚTensorArgument)Úsubgraph_rewriterc                 ó,  € . p\        V P                  4       V4       Fs  w  r4R \        VP                  4       4      9   d>   \        P
                  P                  V4      w  rVVP                  \        V4      4       K`  VP                  VRJ4       Ku  	  V# )ÚPackedParamsN)	ÚzipÚinputsÚstrÚtypeÚtorchÚjitÚ_flattenÚappendÚlen)Úmethod_graphÚargs_paramsÚparam_count_listÚinput_Úarg_params_Úin_varsÚ_s   &&     ÚX/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_export/converter.pyÚ_get_param_count_listr(   "   s|   € ØÐÜ" <×#6Ñ#6Ó#8¸+ÖFÑˆØœS §¡£Ó/Ô/ÜŸ™×+Ñ+¨KÓ8‰JˆGØ×#Ñ#¤C¨£LÖ1à×#Ñ# K°tÐ$;Ö<ñ  Gð Ðó    c                 ó¬  € \         P                  P                  V 4      P                  4       p\         P                  ! 4       p\         P
                  ! R 4       \         P                  P                  V VR R RR7      w  rEp\         P
                  ! V4       V\         P                  P                  V 4      P                  4       8w  d   \        R4      hWE3# )FT)ÚstrictÚ_force_outplaceÚ_return_inputs_stateszXstate_dict changed after running the tracer; something weird is happening in your model!)r   r   Ú_unique_state_dictÚkeysÚis_autocast_cache_enabledÚset_autocast_cache_enabledÚ_get_trace_graphÚRuntimeError)ÚmodelÚargsÚorig_state_dict_keysÚprev_autocast_cache_enabledÚtrace_graphÚ	torch_outÚ_inputs_statess   &&     r'   Ú_trace_and_get_graph_from_modelr;   .   s½   € ô !Ÿ9™9×7Ñ7¸Ó>×CÑCÓEÐô
 #(×"AÒ"AÓ"CÐÜ	×$Ò$ UÔ+Ü-2¯Y©Y×-GÑ-GØØØØØ"ð .Hó .Ñ*€K˜Nô 
×$Ò$Ð%@ÔAàœuŸy™y×;Ñ;¸EÓB×GÑGÓIÔIÜð:ó
ð 	
ð
 Ð!Ð!r)   c                ó2  € V ^8„  d   QhR\         P                  P                  \         P                  P                  ,          R\
        \        ,          R\        \         P                  \        R,          \        \         P                  R,          3,          /# )é   r4   r5   Úreturnz	_C.IValueN)r   ÚnnÚModuler   ÚScriptFunctionr   r   ÚtupleÚGraphÚlistÚScriptModule)Úformats   "r'   Ú__annotate__rG   J   sa   € ÷ /*ñ /*Ü�8‰8�?‰?œUŸY™Y×5Ñ5Õ5ð/*Ü=EÄc½]ð/*ä
Œ5�;‰;œ˜[Õ)¬3´×0BÑ0BÀTÕ0IÐIÕJñ/*r)   c                 óT  € \        V \        P                  P                  \        P                  P                  34      '       EdÆ   \        \        P                  P                  \        V4      4      ^ ,          4      pRp\        V \        P                  P                  4      '       Ed    V P                  P                  p\        P                  ! T4       \        P                  ! \        P                  ! \        P                  T P                   4      RR7      p\        P"                  ! T4      w  rxTP%                  R4      P                  p	\        T4      \        T4      ,           p
\'        Yš4      p\        P                  P                  T
4      w  rÍ\        P(                  ! T	\        T4      TRR4      pYHY73# . pV P                  p\        P                  ! V4       \'        WA4      p\        P(                  ! WBVRR4      pWHVR3# \+        W4      w  rC\        P,                  ! V4       \        P                  P/                  V 4      p\1        VP3                  4       4      p\1        VP5                  4       4      p\7        V4      \7        V4      ,
          p\1        VP9                  4       4      p\;        V4       F.  w  ppVV8¼  g   K  VP=                  VVV,
          ,          4       K0  	  \        P                  ! V4       WHVR3#   \         d   p\        R4      ThRp?ii ; i)r   Nz('forward' method must be a script methodT)ÚpreserveParametersÚforwardF)Ú
isinstancer   r   rA   rE   rB   r   rJ   ÚgraphÚAttributeErrorr3   r   Ú$_jit_pass_onnx_function_substitutionÚ_freeze_moduleÚtypingÚcastÚ_cÚ_jit_onnx_list_model_parametersÚ_get_methodr(   Ú"_propagate_and_assign_input_shapesr;   Ú_jit_pass_onnx_lintr.   rD   Úvaluesr   r   r/   Ú	enumerateÚsetDebugName)r4   r5   Úflattened_argsr9   rL   ÚeÚfreezed_moduleÚmoduleÚparamsr    r!   r"   r%   r&   Ú
state_dictÚgraph_inputsÚuser_input_numÚparam_namesÚiÚinps   &&                  r'   Ú_create_jit_graphre   J   s{  € ô �%œ%Ÿ)™)×2Ñ2´E·I±I×4JÑ4JÐK×LÓLÜœuŸy™y×1Ñ1´%¸³+Ó>¸qÕAÓBˆØˆ	ä�eœUŸY™Y×3Ñ3×4Ó4ðVØŸ™×+Ñ+�ô ×3Ò3°EÔ:Ü×.Ò.Ü—’œBŸO™O¨U¯X©XÓ6È4ôˆNô  ×?Ò?ÀÓO‰NˆFØ!×-Ñ-¨iÓ8×>Ñ>ˆLÜ ›+¬¨f«Õ5ˆKÜ4°\ÓOÐÜŸ™×+Ñ+¨KÓ8‰JˆGÜ×9Ò9Øœe G›nÐ.>ÀÀuóˆEð  )Ð3Ð3ð ˆØ—‘ˆÜ
×/Ò/°Ô6Ü0°Ó=ÐÜ×5Ò5ØÐ#3°U¸Eó
ˆð ˜i¨Ð-Ð-ä6°uÓCÑ€EÜ×Ò˜5Ô!Ü—‘×-Ñ-¨eÓ4€JÜ�*×#Ñ#Ó%Ó&€FÜ˜Ÿ™›Ó'€LÜ˜Ó&¬¨Z«Õ8€NÜ�z—‘Ó(Ó)€KÜ˜LÖ)‰ˆˆ3Ø�ÖØ×Ñ˜[¨¨^Õ);Õ<Ö=ñ *ô ×+Ò+¨EÔ2Ø˜) TÐ)Ð)øôK "ô VÜ"Ð#MÓNÐTUÐUûðVús   Â,L ÌL'ÌL"Ì"L'c                 ó   € W,           # ©N© )ÚaÚbs   &&r'   Úlist_addrk   |   s	   € Ø�5€Lr)   c                 ó   € W.,           # rg   rh   )Ú	containerÚelements   &&r'   Úlist_appendro   €   s   € Ø�yÕ Ð r)   c                ó2   € VRV pW2R pV ! . VOVNVO5/ VB # )z‘
subgraph: GraphModule from sub-block.
iter_idx: The index of interaction.
len_loop_local_arguments: The number of loop local arguments in args.
Nrh   )ÚsubgraphÚiter_idxÚlen_loop_local_argumentsr5   ÚkwargsÚloop_local_argsÚglobal_argss   &&&*,  r'   Úexecute_subgraph_from_prim_looprw   „   s<   € ð Ð4Ð4Ð5€Oð
 Ð0Ð1€KÙÐG�[ÐG (ÐG¨_ÒGÀÑGÐGr)   c                óL   € V ^8„  d   QhR\         P                  P                  /# )r=   Úgm©r   ÚfxÚGraphModule)rF   s   "r'   rG   rG   ˜   s    € ÷ @ñ @¤e§h¡h×&:Ñ&:ñ @r)   c                 ó@   € R  pR p\         P                  ! WV4       R# )c                 óŽ  € \         P                  P                  P                  P	                  W4      p\         P                  P                  P                  V4      p\         P                  P                  P                  P                  WBR R7      p\         P                  P                  P                  P                  V4      pV# )Útrunc)Úrounding_mode)
r   ÚopsÚatenÚsym_sizeÚintÚscalar_tensorÚdivÚScalar_modeÚIntÚTensor)ÚimÚdimÚscaleÚsym_size_intr…   Údiv_scalar_modeÚ
int_tensors   &&&    r'   ÚpatternÚ.inplace_optimize_sym_size_div.<locals>.pattern™   s†   € Ü—y‘y—~‘~×.Ñ.×2Ñ2°2Ó;ˆÜŸ	™	Ÿ™×4Ñ4°\ÓBˆÜŸ)™)Ÿ.™.×,Ñ,×8Ñ8Ø°ð 9ó 
ˆô —Y‘Y—^‘^×'Ñ'×.Ñ.¨Ó?ˆ
ØÐr)   c                 óx   € \         P                  P                  P                  P	                  W4      pW2,          # rg   )r   r�   r‚   rƒ   r„   )rŠ   r‹   rŒ   r�   s   &&& r'   ÚreplacementÚ2inplace_optimize_sym_size_div.<locals>.replacement¢   s)   € Ü—y‘y—~‘~×.Ñ.×2Ñ2°2Ó;ˆØÕ$Ð$r)   N)r   Úreplace_pattern)ry   r�   r“   s   &  r'   Úinplace_optimize_sym_size_divr–   ˜   s   € òò%ô ×%Ò% b°;Ö?r)   c                 óz   € \        V 4      ^ 8X  d   \        R4      hV ^ ,          P                  4       '       d   R# R# )r   zEmpty argument name for codegenFT)r   r3   Úisdigit©Únames   &r'   Úis_valid_for_codegenr›   ©   s0   € Ü
ˆ4ƒy�A„~ÜÐ<Ó=Ð=ØˆA…w‡�×ÒÙÙr)   c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r=   rš   Úprefixr>   ©r   )rF   s   "r'   rG   rG   ±   s!   € ÷ ñ œð ¤cð ¼ñ r)   c                 óZ   € V P                  R R4      p \        V 4      '       d   V # V RV  2# )Ú.r&   )Úreplacer›   )rš   r�   s   &&r'   Únormalize_namer¢   ±   s3   € Ø�<‰<˜˜SÓ!€DÜ˜D×!Ò!ØˆØˆX�Q�t�fÐÐr)   c                ó0   € V ^8„  d   QhR\         R\         /# )r=   rš   r>   rž   )rF   s   "r'   rG   rG   ¸   s   € ÷ ,ñ ,œsð ,¤sñ ,r)   c                óT   € V P                  R4      pRRP                  V4      ,           # )zprim::If -> convert_prim_Ifú::Úconvert_r&   )ÚsplitÚjoin)rš   Ú	name_lists   & r'   Úir_name_to_func_namerª   ¸   s$   € à—
‘
˜4Ó €IØ˜Ÿ™ Ó+Õ+Ð+r)   c                 óV   € V'       d   V P                  V4      # V P                  V4      # rg   )Úget_attrÚplaceholder)Úfx_graphrš   Úis_top_level_graphs   &&&r'   Ú#get_node_as_placeholder_or_get_attrr°   ¾   s'   € ßØ× Ñ  Ó&Ð&Ø×Ñ Ó%Ð%r)   c                óf   € V P                   pV\        9  d   \        RV 24      h\        V,          # )z¯
prim::dtype has the signature "Tensor a) -> int", where it gets the dtype of
the tensor and returns the integer corresponding to this dtype based on the
enum in ScalarType.h
zUnsupported dtype )ÚdtypeÚ_TORCH_DTYPE_TO_ENUMr3   )Útensorr²   s   & r'   Úget_dtype_as_intrµ   Ù   s4   € ð �L‰L€EØÔ(Ô(ÜÐ/°¨wÐ7Ó8Ð8Ü Õ&Ð&r)   z	prim::maxz	prim::minzprim::TupleIndexzaten::__is__zaten::__isnot__zaten::__not__zaten::__contains__zprim::dtypez	aten::lenzaten::numelz
aten::sizezaten::storage_offsetzaten::stridec                 ó¢   € V P                  4       P                  4       V P                  4       P                  4       r!V P                  R 4      pW!V3# r™   )ÚinputÚ	debugNameÚoutputÚs)ÚnodeÚirv_parent_nameÚirv_nameÚ	attr_names   &   r'   Ú&get_ir_value_parent_name_and_attr_namer¿   û   s?   € Ø $§
¡
£× 6Ñ 6Ó 8¸$¿+¹+»-×:QÑ:QÓ:S�XØ—‘�v“€IØ iÐ/Ð/r)   c                 óˆ   € . pW9   d"   VP                  W ,          4       W,          p K'  R P                  \        V4      4      # ©r    )r   r¨   Úreversed)ÚirÚref_mapÚname_mapr©   s   &&& r'   Úconstruct_fqnrÆ     s7   € Ø€IØ
Œ-Ø×Ñ˜�Ô&Ø�[ŠØ�8‰8”H˜YÓ'Ó(Ð(r)   c                óü   € V ^8„  d   QhR\         P                  P                  R\        \        \         P                  P
                  \        \        ,          3,          \        \        \        3,          3,          /# )r=   rL   r>   )r   r   rC   rB   ÚdictÚBlockÚsetr   )rF   s   "r'   rG   rG   	  sP   € ÷ M5ñ M5Ü�8‰8�>‰>ðM5ä
Œ4”—‘—‘¤¤C¥Ð(Õ)¬4´´S°­>Ð9Õ:ñM5r)   c                ób   aaaaa€ / o/ o/ oVVV3R loVVVV3R loS! V 4       S! V 4       SS3# )af  
Perform two passes to get a mapping of blocks to a set of FQNs of its lifted attributes.
When a graph has control flow, the graph will be divided into multiple blocks. We want to convert
each block to a graph which will be passed into torch.cond. A restriction for torch.cond is that model
parameters/buffers are expected to be lifted as inputs to the subgraphs. Before converting the model,
we will run this pass which will:
    1. Figure out which params/buffers are used within blocks through tracing the GetAttr calls.
    2. Process the graph bottom up to find the lifted attributes of each block by taking the union
    of the attributes used in the current block, and the lifted attributes of all its child blocks.

Returns:
    A mapping of blocks to a set of FQNs of its lifted attributes, and a
    mapping of node names to the FQNs of its lifted attributes.
c                óÐ   <€ V P                  4        FP  pVP                  4       R8X  d   \        V4      w  pppVSV&   VSV&   VP                  4        F  pS! V4       K  	  KR  	  R# )z9
First DFS path to construct reference map and name map.
úprim::GetAttrN)ÚnodesÚkindr¿   Úblocks)	Úentryr»   r½   r¼   r¾   ÚblockÚ_dfs_get_attr_dependencyÚnode_to_attr_nameÚnode_to_parent_maps	   &     €€€r'   rÓ   Ú;get_block_to_lifted_attrs.<locals>._dfs_get_attr_dependency*  si   ø€ ð —K‘K–MˆDØ�y‰y‹{˜oÔ-ô
 ;¸4Ó@ñ	ØØ#Øà/>Ð" 8Ñ,Ø.7Ð! (Ñ+ØŸ™ž�Ù(¨Ö/ó 'ó "r)   c                óæ  <€ \        4       pV P                  4        F¢  pVP                  4        F  pVP                  S! V4      4      pK  	  VP	                  4       R8X  g   KH  VP                  4       P                  4       pV\        SP                  4       4      9  g   K†  VP                  \        VSS4      4       K¤  	  \        V \        P                  P                  4      '       g   VSV &   V# )zd
Walk the graph in a bottom-up fashion to build the expected to be
lifted arguments for each block.
rÍ   )rÊ   rÎ   rÐ   ÚunionrÏ   r¹   r¸   rW   ÚaddrÆ   rK   r   r   rC   )	rÑ   Ú	argumentsr»   rÒ   r½   Ú_map_blocks_to_lifted_attrsÚblocks_to_lifted_attrsrÔ   rÕ   s	   &    €€€€r'   rÛ   Ú>get_block_to_lifted_attrs.<locals>._map_blocks_to_lifted_attrs:  s¿   ø€ ô
 "›eˆ	Ø—K‘K–MˆDØŸ™ž�à%ŸO™OÑ,GÈÓ,NÓO’	ñ 'ð �y‰y‹{˜oÖ-ØŸ;™;›=×2Ñ2Ó4�ð ¤3Ð'9×'@Ñ'@Ó'BÓ#CÖCØ—M‘MÜ% hÐ0BÐDUÓVöñ "ô ˜%¤§¡§¡×0Ò0Ø,5Ð" 5Ñ)ØÐr)   rh   )rL   rÓ   rÛ   rÜ   rÔ   rÕ   s   &@@@@@r'   Úget_block_to_lifted_attrsrÞ   	  sI   ü€ ð& >@Ðð *,Ðð )+Ð÷0÷ ð ñ2 ˜UÔ#Ù Ô&à!Ð#4Ð4Ð4r)   c                ó†   € V ^8„  d   QhR\         \        \        3,          R\        P                  P                  R\        /# )r=   Úname_to_attribute_fqnr»   r>   )rÈ   r   r   r   ÚNode)rF   s   "r'   rG   rG   Y  s4   € ÷ ñ Ü¤¤S �>ðÜ16·±·±ðäñr)   c                 ór  a € R  V 3R llpVP                  4       R8X  d)   \        VP                  4       4      P                  4       pMCVP                  4       R8X  d    VP	                  4       P                  4       pM\        RV R24      hVP                  R4      pV! V4      pV'       d
   V RV 2pV# TpV# )c                ó$   € V ^8„  d   QhR\         /# )r=   rš   rž   )rF   s   "r'   rG   Ú4get_attribute_fqn_from_ts_node.<locals>.__annotate__\  s   € ÷ <ñ <”sñ <r)   c                 óB   <€ V S9   d
   SV ,          # \        R V  R24      h©z
Attribute ú
 not found)Ú
ValueError)rš   rà   s   &€r'   r¬   Ú0get_attribute_fqn_from_ts_node.<locals>.get_attr\  s+   ø€ ØÐ(Ô(Ø(¨Õ.Ð.ä˜z¨$¨¨zÐ:Ó;Ð;r)   úprim::SetAttrrÍ   z7Unexpected node kind when getting attribute fqn. node: Ú rš   r    )rÏ   Únextr   r¸   r·   r3   rº   )rà   r»   r¬   Ú
input_namer¾   Úroot_attr_nameÚattr_fqns   f&     r'   Úget_attribute_fqn_from_ts_noderð   Y  s°   ø€ ÷<ð <ð ‡y�yƒ{�oÔ%Ü˜$Ÿ+™+›-Ó(×2Ñ2Ó4‰
Ø	�‰‹˜Ô	'Ø—Z‘Z“\×+Ñ+Ó-‰
äØEÀdÀVÈ1ÐMó
ð 	
ð —‘�v“€IÙ˜jÓ)€Nß2@�.Ð!  9 +Ð.€Hà€Oð GP€Hà€Or)   c                óL   € V ^8„  d   QhR\         P                  P                  /# ©r=   r»   ©r   r   rá   )rF   s   "r'   rG   rG   r  s   € ÷ ñ œ%Ÿ(™(Ÿ-™-ñ r)   c                 ó  € V P                  4       pVR 8X  d   \        RV  24      h\        P                  P	                  V4      p\        VP                  4      P                  R4      w  r4VP                  p \        \        P                  V4      p\        Wd4      pV'       d   \        Wu4      pV# VP                  p V#   \         d4   p	\        RT P                  4        RT P                  4        24      T	hRp	?	ii ; i)ú(no schema)zgot empty schema for r¥   zUnable to find operator z with schema N)ÚschemaÚAssertionErrorr   r   Úparse_schemar   rš   r§   Úoverload_nameÚgetattrr�   ÚdefaultÚ	Exceptionr3   rÏ   )
r»   Ú
schema_strrö   ÚnsÚop_nameÚoverrideÚop_overload_modÚop_overload_packetÚop_overloadr[   s
   &         r'   Úget_op_overloadr  r  së   € Ø—‘“€JØ�]Ô"ÜÐ4°T°FÐ;Ó<Ð<Ü&+§h¡h×&;Ñ&;¸JÓ&G€FÜ�f—k‘kÓ"×(Ñ(¨Ó.�K€BØ×#Ñ#€Hð
Ü!¤%§)¡)¨RÓ0ˆÜ$ _Ó>ÐßÜ!Ð"4Ó?ˆKð Ðð -×4Ñ4‰Kð Ðøô ô ÜØ& t§y¡y£{ m°=ÀÇÁÃÀÐPó
àð	ûðús   Á88C Â2C ÃC?Ã.C:Ã:C?c                   ó>  a € ] tR tRt o V 3R lR ltR tV 3R lR ltR tR tV 3R	 lR
 lt	V 3R lR lt
V 3R lR ltR tV 3R lR ltR tV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR  ltV 3R! lR" ltV 3R# lR$ ltV 3R% lR& ltV 3R' lR( ltV 3R) lR* ltV 3R+ lR, ltV 3R- lR. ltV 3R/ lR0 ltV 3R1 lR2 ltV 3R3 lR4 ltV 3R5 lR6 lt V 3R7 lR8 lt!V 3R9 lR: lt"V 3R; lR< lt#V 3R= lR> lt$V 3R? lR@ lt%V 3RA lRB lt&RC t'V 3RD lRE lt(V 3RF lRG lt)V 3RH lRI lt*V 3RJ lRK lt+V 3RL lRM lt,V 3RN lRO lt-V 3RP lRQ lt.V 3RR lRS lt/V 3RT lRU lt0V 3RV lRW lt1V 3RX lRY lt2V 3RZ lR[ lt3R\ t4R]t5V t6R^# )_ÚTS2FXGraphConverteri‰  c                óˆ  <€ V ^8„  d   QhRS[ P                  P                  S[ P                  P                  ,          RS[S[S[ P                  3,          RS[S[S[ P                  3,          RS[S[ P                  P                  S[S[,          3,          RS[S[S[3,          RS[S[S[3,          RS[S[S[3,          /# ©r=   Úts_graphÚname_to_paramÚname_to_bufferrÜ   Úname_to_non_tensor_attributeÚname_to_constantrà   ©	r   r   rC   rÉ   rÈ   r   r‰   rÊ   r   )rF   Ú__classdict__s   "€r'   rG   Ú TS2FXGraphConverter.__annotate__Š  sÂ   ø€ ÷ DCñ DCá—(‘(—.‘.¡5§8¡8§>¡>Õ1ðDCñ ™C¡§¡Ð-Õ.ðDCñ ™S¡%§,¡,Ð.Õ/ð	DCñ
 !%¡U§X¡X§^¡^±S¹µXÐ%=Õ >ðDCñ '+©3±¨8¥nðDCñ ™s¡C˜x�.ðDCñ  $¡C© H�~ñDCr)   c                óf  a € VS n         VS n        VS n        \        P                  P                  4       S n        . S n        . S n        / S n	        VS n
        VS n        / S n        VS n        / S n        VS n        \          F  p\#        V4      p	\%        S V	V 3R  l4       K!  	  \'        4       S n        R# )c                 ó&   <€ SP                  V 4      # rg   )Ú_convert_standard_operators)r»   Úselfs   &€r'   Ú<lambda>Ú.TS2FXGraphConverter.__init__.<locals>.<lambda>Æ  s   ø€ ˜T×=Ñ=¸dÔCr)   N)r	  r
  r  r   r{   rC   r®   Úinput_specsÚoutput_specsÚname_to_noder  rà   Ú!name_to_non_tensor_attribute_noder  Ú	subgraphsrÜ   Úkind_to_standard_operatorsrª   ÚsetattrrÊ   Ú#name_update_from_subblock_to_parent)
r  r	  r
  r  rÜ   r  r  rà   ÚkÚhandler_func_names
   f&&&&&&&  r'   Ú__init__ÚTS2FXGraphConverter.__init__Š  sÀ   ø€ ð !ˆŒà*ˆÔà,ˆÔä(-¯©¯©Ó(8ˆŒØ,.ˆÔØ.0ˆÔð
 ð 	Ôð
 1AˆÔð 6KˆÔ"ð BDˆÔ.ð
 =YˆÔ)à:<ˆŒð '=ˆÔ#÷ ,ˆAÜ 4°QÓ 7Ðô ØØ!ÜCöñ	 ,ô >A»UˆÖ0r)   c                óÜ   € WP                   9   ;'       gX    WP                  9   ;'       gB    WP                  9   ;'       d,    \        V P                  V,          \        P
                  4      # rg   )r  r
  r  rK   r   ÚScriptObject)r  Úfqns   &&r'   Ú_is_get_attr_nodeÚ%TS2FXGraphConverter._is_get_attr_nodeÐ  sh   € à×&Ñ&Ñ&÷ ð Ø×(Ñ(Ñ(÷ð ð ×,Ñ,Ñ,÷ Oð OÜ˜t×4Ñ4°SÕ9¼5×;MÑ;MÓNð	
r)   c                ó^   <€ V ^8„  d   QhRS[ P                  P                  RS[S[,          /# )r=   r»   rÚ   )r   r   rá   rD   r   )rF   r  s   "€r'   rG   r  Ú  s'   ø€ ÷ 3ñ 3©u¯x©x¯}©}ð 3ÉÉcÍñ 3r)   c           
     óô  € . . rCVP                  4        Fß  p\        VV P                  V P                  V P                  / V P
                  V P                  4      pV F7  p\        V4      pVP                  P                  V4      p	W–P                  V&   K9  	  VP                  4       p
V P                  V
4      pVP                  V P                  P                  V4      4       VP                  V4       Ká  	  W43# rg   )rÐ   r  r
  r  rÜ   r  rà   r¢   r®   r­   r  ÚconvertÚadd_subgraphr   r¬   )r  r»   rÚ   Úsubgraph_nodesÚsubgraph_convertersrÒ   Úsubgraph_converterÚ	block_argÚnormalized_block_arg_nameÚplaceholder_noderq   Úsubgraph_names   &&&         r'   Ú_convert_block_to_subgraphÚ.TS2FXGraphConverter._convert_block_to_subgraphÚ  sñ   € Ø.0°"Ð+Ø—[‘[–]ˆEÜ!4ØØ×"Ñ"Ø×#Ñ#Ø×+Ñ+ØØ×%Ñ%Ø×*Ñ*ó"Ðó '�	Ü,:¸9Ó,EÐ)Ø#5×#>Ñ#>×#JÑ#JØ-ó$Ð ð >N×/Ñ/°	Ó:ñ 'ð *×1Ñ1Ó3ˆHØ ×-Ñ-¨hÓ7ˆMØ×!Ñ! $§-¡-×"8Ñ"8¸Ó"GÔHØ×&Ñ&Ð'9Ö:ñ+ #ð, Ð2Ð2r)   c                ó¦  € \        4       pVP                  4        F²  pVP                  4        F›  pVP                  4        Fd  pVP	                  4       V P
                  9   g   K$  VP	                  4       V P                  9  g   KE  VP                  VP	                  4       4       Kf  	  VP                  V P                  V4      4      pK�  	  K´  	  V# )a  
Identify inputs from the innermost sub-block. This is needed
for nested sub-blocks when the input is hidden in the nested sub-block.
E.g., example IR of input is hidden in the nested sub-block.
Graph[x.1]
%1 = ...
    Block[]
        Block[x.1]
            %2 = x.1 ...
)
rÊ   rÐ   rÎ   r   r¸   r  rà   rÙ   rØ   Ú_identify_inputs_as_arguments)r  rÑ   rÚ   rÒ   Ú
block_nodeÚblock_node_ins   &&    r'   r6  Ú1TS2FXGraphConverter._identify_inputs_as_argumentsô  s§   € ô "›eˆ	Ø—\‘\–^ˆEØ#Ÿk™kžm�
Ø%/×%6Ñ%6Ö%8�Mà%×/Ñ/Ó1°T×5FÑ5FÖFØ)×3Ñ3Ó5¸T×=WÑ=WÖWà!Ÿ™ m×&=Ñ&=Ó&?Ö@ñ &9ð &ŸO™OØ×6Ñ6°zÓBó’	ó ,ñ $ð Ðr)   c                ó^   € \        V P                  \        P                  P                  4      # rg   )rK   r	  r   r   rC   )r  s   &r'   r¯   Ú&TS2FXGraphConverter.is_top_level_graph  s   € Ü˜$Ÿ-™-¬¯©¯©Ó8Ð8r)   c                ó    <€ V ^8„  d   QhRS[ /# ©r=   r>   rž   )rF   r  s   "€r'   rG   r    s   ø€ ÷ ñ ©ñ r)   c                óR   € R \        V P                  4       2pWP                  V&   V# )Ú	subgraph_)r   r  )r  rq   rš   s   && r'   r+  Ú TS2FXGraphConverter.add_subgraph  s)   € Øœ3˜tŸ~™~Ó.Ð/Ð0ˆØ'�‰�tÑØˆr)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r    s   ø€ ÷ 	#ñ 	#¡E§H¡H§M¡Mñ 	#r)   c                ó   € . p/ p\        VP                  4       VP                  4       FV  w  rVVP                  '       d    V P	                  V4      WFP
                  &   K6  VP                  V P	                  V4      4       KX  	  \        V4      V3# rg   )r   r   rÚ   Ú
kwarg_onlyÚget_fx_value_by_ir_valuerš   r   rB   )r  r»   rö   r5   rt   r·   Ú
schema_args   &&&    r'   Úget_args_kwargsÚ#TS2FXGraphConverter.get_args_kwargs  sx   € ØˆØˆÜ!$ T§[¡[£]°F×4DÑ4DÖ!EÑˆEØ×$×$Ð$Ø*.×*GÑ*GÈÓ*N�—‘Ó'à—‘˜D×9Ñ9¸%Ó@ÖAñ	 "Fô �T‹{˜FÐ"Ð"r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# )r=   Úvalue)r   r   ÚValue)rF   r  s   "€r'   rG   r     s   ø€ ÷ >ñ >©e¯h©h¯n©nñ >r)   c                óÌ  € VP                  4       pW P                  9   d   V P                  V,          pV# W P                  9   d`   \        V P                  V,          \        P
                  4      '       d   V P                  P                  V4      # V P                  V,          # W P                  9   d#   V P                  V P                  V,          4      # \        R V R24      h)zInput rç   )r¸   r  r  rK   r   r$  r®   r¬   rà   Úget_fx_value_by_fqnrè   )r  rI  Ú
value_nameÚ
input_nodes   &&  r'   rD  Ú,TS2FXGraphConverter.get_fx_value_by_ir_value   s¼   € Ø—_‘_Ó&ˆ
à×*Ñ*Ô*Ø×*Ñ*¨:Õ6ˆJØÐØ×0Ñ0Ô0Ü˜$×/Ñ/°
Õ;¼U×=OÑ=O×PÒPØ—}‘}×-Ñ-¨jÓ9Ð9Ø×(Ñ(¨Õ4Ð4Ø×5Ñ5Ô5Ø×+Ñ+¨D×,FÑ,FÀzÕ,RÓSÐSä˜v j \°Ð<Ó=Ð=r)   c                óH  € WP                   9   d   V P                   V,          pV# WP                  9   d   V P                  V,          pV# WP                  9   d   V P                  V,          pV# WP                  9   d   V P                  V,          pV# \	        R V R24      hræ   )r  r  r  r  rè   )r  rš   Úfx_nodes   && r'   rL  Ú'TS2FXGraphConverter.get_fx_value_by_fqn/  sª   € Ø×$Ñ$Ô$Ø×'Ñ'¨Õ-ˆGð ˆð ×*Ñ*Ô*Ø×+Ñ+¨DÕ1ˆGð ˆð ×;Ñ;Ô;Ø×<Ñ<¸TÕBˆGð
 ˆð	 ×6Ñ6Ô6Ø×7Ñ7¸Õ=ˆGð ˆô ˜z¨$¨¨zÐ:Ó;Ð;r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# r=  rz   )rF   r  s   "€r'   rG   r  <  s   ø€ ÷ ñ ™Ÿ™×-Ñ-ñ r)   c                óÀ  € V P                  4        V P                  P                  4        F  pV P                  V4       K  	  V P	                  4        \
        P                  P                  / V P                  CV P                  CV P                  CV P                  CV P                  CV P                  4      p\        V4       VP                  P!                  4        V# rg   )Úconvert_graph_inputsr	  rÎ   Úconvert_nodeÚconvert_graph_outputsr   r{   r|   r  r
  r  r  r  r®   r–   rL   Úlint)r  r»   ry   s   &  r'   r*  ÚTS2FXGraphConverter.convert<  sË   € Ø×!Ñ!Ô#à—M‘M×'Ñ'Ö)ˆDØ×Ñ˜dÖ#ñ *ð 	×"Ñ"Ô$ô �X‰X×!Ñ!ðØ—.‘.ðà×$Ñ$ðð ×%Ñ%ðð ×3Ñ3ð	ð
 ×'Ñ'ðð �M‰Mó	
ˆô 	& bÔ)à
�‰�‰Œàˆ	r)   c                ól  € V P                   P                  4        EF”  pVP                  4       pW P                  9   dq   \	        V4      pV P
                  P                  \        \        P                  \        VR 7      VR7      4       \        V P                  W P                  4       4      pEMòW P                  9   dr   \	        V4      pV P
                  P                  \        \        P                  \        VR 7      VRR7      4       \        V P                  W P                  4       4      pEMqW P                   9   dÊ   \#        V P                   V,          \$        P&                  4      '       g)   \)        R\+        V P                   V,          4       24      h\	        V4      pV P
                  P                  \        \        P,                  \/        W3R7      VRR7      4       \        V P                  W P                  4       4      pM˜\#        VP+                  4       \$        P0                  4      '       d   EK  \	        VRR7      pV P
                  P                  \        \        P2                  \        VR 7      VR7      4       V P                  P5                  V4      pW@P6                  V&   EK—  	  R	# )
r™   ©ÚargÚtargetT)r\  r]  Ú
persistentz0Input conversion only handles ScriptObject, got )rš   Ú	class_fqnFr·   )r�   N)r	  r   r¸   r
  r¢   r  r   r   r   Ú	PARAMETERr   r°   r®   r¯   r  ÚBUFFERr  rK   r   r$  r÷   r   Ú
CUSTOM_OBJr   Ú	ClassTypeÚ
USER_INPUTr­   r  )r  Úgraph_inputrš   Únormalized_namerQ  s   &    r'   rU  Ú(TS2FXGraphConverter.convert_graph_inputsV  s,  € ØŸ=™=×/Ñ/×1ˆKØ×(Ñ(Ó*ˆDà×)Ñ)Ô)Ü"0°Ó"6�Ø× Ñ ×'Ñ'ÜÜ!×+Ñ+Ü*°Ô@Ø#ôôô >Ø—M‘M 4×)@Ñ)@Ó)Bó’ð ×,Ñ,Ô,Ü"0°Ó"6�Ø× Ñ ×'Ñ'ÜÜ!×(Ñ(Ü*°Ô@Ø#Ø#'ô	ôô >Ø—M‘M 4×)@Ñ)@Ó)Bó’ð ×.Ñ.Ô.Ü! $×"7Ñ"7¸Õ"=¼u×?QÑ?Q×RÒRÜ(ØJÌ4ÐPT×PeÑPeÐfjÕPkÓKlÐJmÐnóð ô #1°Ó"6�Ø× Ñ ×'Ñ'ÜÜ!×,Ñ,Ü-Ø!0ôð  $Ø#(ôô	ô >Ø—M‘M 4×)@Ñ)@Ó)Bó‘ô ˜K×,Ñ,Ó.´·±×@Ò@âä"0°¸gÔ"F�Ø× Ñ ×'Ñ'ÜÜ!×,Ñ,Ü*°Ô@Ø#ôôð Ÿ-™-×3Ñ3°OÓD�à&-×Ñ˜dÔ#ó{ 2r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  –  s   ø€ ÷ 	?ñ 	?¡u§x¡x§}¡}ñ 	?r)   c                ó  € R  pVP                  4        Uu. uF  q0P                  V4      NK  	  ppV P                  P                  V\	        V4      4      pWPP
                  VP                  4       P                  4       &   R# u upi )c                 ó^   € V P                  \        P                  R 7      P                  4       # )©r²   )Útor   ÚfloatÚitem)Úts   &r'   Úto_float_tensorÚ?TS2FXGraphConverter.convert_aten_Float.<locals>.to_float_tensor—  s    € Ø—4‘4œeŸk™k�4Ó*×/Ñ/Ó1Ð1r)   N)r   rD  r®   Úcall_functionrB   r  r¹   r¸   )r  r»   rp  rd   Úinp_listrQ  s   &&    r'   Úconvert_aten_FloatÚ&TS2FXGraphConverter.convert_aten_Float–  sq   € ò	2ð CGÇ+Á+Ä-ÓPÁ-¸3×1Ñ1°#Ö6Á-ˆÐPØ—-‘-×-Ñ-ØÜ�(‹Oó
ˆð 8?×Ñ˜$Ÿ+™+›-×1Ñ1Ó3Ó4ùò Qs   –Bc                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ¡  s   ø€ ÷ 1ñ 1©¯©¯©ñ 1r)   c                óJ  a€ V P                  V\        P                  P                  P                  P
                  P                  4      w  r#V F  pVR8X  g   K  \        W4,          4      W4&   K!  	  \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d   \        P                  M\        P                  P                  oV3R lpVP                  4       P                  4       pV P                  P                  WRV4      pWpP                  V&   R# )z9aten::tensor creates a constant tensor ad-hoc --> GetAttrÚrequires_gradc              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5irg   )rK   r„   )Ú.0ri   s   & r'   Ú	<genexpr>Ú:TS2FXGraphConverter.convert_aten_tensor.<locals>.<genexpr>«  s   é € Ð4©t¨!”:˜a¤×%Ð%«tùs   ‚FTc                  óf   <€ R V9   d#   VR ,          e   \         VR ,          ,          VR &   S! V / VB # rk  )Ú_TORCH_ENUM_TO_DTYPE)r5   rt   Ú	to_tensors   *,€r'   r]  Ú7TS2FXGraphConverter.convert_aten_tensor.<locals>.target¯  s6   ø€ Ø˜&Ô  V¨G¥_Ò%@Ü"6°v¸gµÕ"G��w‘Ù˜dÐ- fÑ-Ð-r)   N)rF  r   r�   r‚   r´   rû   Ú_schemaÚboolÚallÚ_refsr¹   r¸   r®   rr  r  )	r  r»   r5   rt   r  r]  Úoutput_namerQ  r  s	   &&      @r'   Úconvert_aten_tensorÚ'TS2FXGraphConverter.convert_aten_tensor¡  sÍ   ø€ à×+Ñ+¨D´%·)±)·.±.×2GÑ2G×2OÑ2O×2WÑ2WÓX‰ˆãˆAØ�OÖ#Ü  ¥›O�“	ñ ÷ ‹sÑ4©tÓ4�s�sŠsÑ4©tÓ4×4Ò4ô �LŠLä—‘×#Ñ#ð 	õ	.ð —k‘k“m×-Ñ-Ó/ˆØ—-‘-×-Ñ-¨f¸FÓCˆØ)0×Ñ˜+Ó&r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ½  s   ø€ ÷ Wñ W©¯©¯©ñ Wr)   c                ó–  a € \         P                  ! R ^R7       \        ;QJ d%    . V 3R lVP                  4        4       F  NK  	  5M! V 3R lVP                  4        4       4      pS P                  P                  \        V4      pVS P                  VP                  4       P                  4       &   VS P                  VP                  ^ 4      P                  4       &   S P                  4       '       gU   V^ ,          P                  R8X  d;   S P                  P                  VP                  ^ 4      P                  4       4       R# R# R# )z²Converting aten::append.t, which is an inplace mutation of the list. This makes the converter non-functional: the result depends on the order of the append nodes being converted!©Ú
stacklevelc              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irg   ©rD  )rz  rd   r  s   & €r'   r{  Ú:TS2FXGraphConverter.convert_aten_append.<locals>.<genexpr>É  s   øé € ÐQÁ=¸C�T×2Ñ2°3×7Ð7Ã=ùó   ƒ!r­   N)ÚwarningsÚwarnrB   r   r®   rr  ro   r  r¹   r¸   ÚinputsAtr¯   Úopr  rÙ   )r  r»   r5   rQ  s   f&  r'   Úconvert_aten_appendÚ'TS2FXGraphConverter.convert_aten_append½  sï   ø€ ô 	�Šð|àõ	
÷ ŒuÔQÀ4Ç;Á;Ä=ÓQ�u‰uÔQÀ4Ç;Á;Ä=ÓQÓQˆØ—-‘-×-Ñ-¬k¸4Ó@ˆØ7>ˆ×Ñ˜$Ÿ+™+›-×1Ñ1Ó3Ñ4ð ;Bˆ×Ñ˜$Ÿ-™-¨Ó*×4Ñ4Ó6Ñ7ð ×&Ñ&×(Ò(¨T°!­W¯Z©Z¸=Ô-HØ×4Ñ4×8Ñ8¸¿¹ÀqÓ9I×9SÑ9SÓ9UÖVñ .IÑ(r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  Ô  s   ø€ ÷ ,ñ ,©%¯(©(¯-©-ñ ,r)   c                óF  € VP                  4       P                  4       pR pVP                  R4      '       dÚ   VP                  R4      pVR8X  d   VP	                  R4      pM±VR8X  d   VP                  R4      pM˜VR8X  d   VP                  R4      pMVR8X  dA   RV 2pV P                  P                  V4      pW`P                  V&   YQP                  R4      r2M8VR8X  d   VP                  R4      pM\        RVP                  R4       24      hR pW0P                  V&   R # )	NrI  rc   Úfrº   ro  Úlifted_tensor_ÚivalzUnsupported constant type: )r¹   r¸   ÚhasAttributeÚkindOfrc   r˜  rº   r®   r¬   r  ro  rš  rè   r  )r  r»   rš   rI  Úconstant_kindÚ
alias_namerQ  s   &&     r'   Úconvert_prim_ConstantÚ)TS2FXGraphConverter.convert_prim_ConstantÔ  s  € Ø�{‰{‹}×&Ñ&Ó(ˆàˆØ×Ñ˜W×%Ò%Ø ŸK™K¨Ó0ˆMØ Ô#ØŸ™˜w›‘Ø #Ô%ØŸ™˜w›‘Ø #Ô%ØŸ™˜w›‘Ø #Ô%à$ T FÐ+ð ð Ÿ-™-×0Ñ0°Ó<�Ø*1×!Ñ! $Ñ'Ø(¯&©&°«/‘eØ &Ô(ØŸ	™	 'Ó*‘ä Ð#>¸t¿{¹{È7Ó?SÐ>TÐ!UÓVÐVàˆEà&+×Ñ˜dÓ#r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ð  s   ø€ ÷ ?ñ ?©E¯H©H¯M©Mñ ?r)   c                ó&  € VP                  4        Uu. uF  q P                  V4      NK  	  ppV P                  P                  VP	                  R 4      \        V4      4      pW@P                  VP                  4       P                  4       &   R# u upi )rš   N)	r   rD  r®   Úcall_methodrº   rB   r  r¹   r¸   )r  r»   rd   rs  rQ  s   &&   r'   Úconvert_prim_CallMethodÚ+TS2FXGraphConverter.convert_prim_CallMethodð  sp   € ØBFÇ+Á+Ä-ÓPÁ-¸3×1Ñ1°#Ö6Á-ˆÐPØ—-‘-×+Ñ+Ø�F‰F�6‹NÜ�(‹Oó
ˆð 8?×Ñ˜$Ÿ+™+›-×1Ñ1Ó3Ó4ùò Qs   “Bc                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ø  s   ø€ ÷ Tñ T©¯©¯©ñ Tr)   c                óR  € VP                  4       P                  4       pVP                  \        P                  P
                  P                  4       4      '       d?   VP                  4       pVP                  4       P                  4       pW0P                  V&   R# \        R V R24      h)zUnsupported JitType (z) when get deviceN)r·   r   ÚisSubtypeOfr   r   Ú
TensorTypeÚgetÚdevicer¹   r¸   r  rè   )r  r»   Ú
input_typer«  r…  s   &&   r'   Úconvert_prim_deviceÚ'TS2FXGraphConverter.convert_prim_deviceø  s€   € Ø—Z‘Z“\×&Ñ&Ó(ˆ
Ø×!Ñ!¤%§(¡(×"5Ñ"5×"9Ñ"9Ó";×<Ò<Ø×&Ñ&Ó(ˆFØŸ+™+›-×1Ñ1Ó3ˆKØ17×!Ñ! +Ó.äÐ4°Z°LÐ@QÐRÓSÐSr)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r    s   ø€ ÷ Mñ M©¯©¯©ñ Mr)   c                óN  € \        V P                  V4      pVP                  4       P                  4       pW P                  V&   V P	                  4       '       d”   V P                  V4      '       d+   V P                  P                  V4      V P                  V&   R # W P                  9  d!   V P                  V,          V P                  V&   V P                  V,          V P                  V&   R # V P                  V4      '       d#   V P                  V,          V P                  V&   R # R # rg   )rð   rà   r¹   r¸   r¯   r&  r®   r¬   r  r  r  )r  r»   rï   r…  s   &&  r'   Úconvert_prim_GetAttrÚ(TS2FXGraphConverter.convert_prim_GetAttr  sô   € ä1°$×2LÑ2LÈdÓSˆØ—k‘k“m×-Ñ-Ó/ˆØ2:×"Ñ" ;Ñ/à×"Ñ"×$Ò$Ø×%Ñ% h×/Ò/ð 26·±×1GÑ1GÈÓ1Q�×!Ñ! +Ó.à×#IÑ#IÔIà×9Ñ9¸(ÕCð ×:Ñ:¸8ÑDð 26×1WÑ1WØõ2�×!Ñ! +Ó.ð ×%Ñ% h×/Ò/Ø15×1BÑ1BÀ8Õ1L�×!Ñ! +Ó.ñ 0r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r    s   ø€ ÷ 
Uñ 
U©¯©¯©ñ 
Ur)   c                ó‚  € \        V P                  V4      p\        VP                  4       4      ^,          pV P	                  V4      pV P                  V4      '       dS   V P                  P                  V4      pV P                  P                  \        P                  P                  WT34       R# W@P                  V&   R# ©é   N)rð   rà   rB   r   rD  r&  r®   r¬   rr  r   r‰   Úcopy_r  )r  r»   rï   Ú
attr_valueÚts_graph_tensor_inputÚfx_attr_nodes   &&    r'   Úconvert_prim_SetAttrÚ(TS2FXGraphConverter.convert_prim_SetAttr  s•   € Ü1°$×2LÑ2LÈdÓSˆÜ˜4Ÿ;™;›=Ó)¨!Õ,ˆ
Ø $× =Ñ =¸jÓ IÐØ×!Ñ! (×+Ò+ØŸ=™=×1Ñ1°(Ó;ˆLØ�M‰M×'Ñ'Ü—‘×"Ñ" \Ð$Iöð @U×2Ñ2°8Ó<r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  )  s   ø€ ÷ >ñ >©U¯X©X¯]©]ñ >r)   c                óê  € \        V4      pV P                  WP                  4      w  r4V P                  P	                  W#V4      pVP                  4       ^8X  d/   VP                  4       P                  4       pWPP                  V&   R# \        VP                  4       4       FN  w  rxVP                  4       pV P                  P	                  \        P                  WW34      p	W�P                  V&   KP  	  R# rµ  )r  rF  r�  r®   rr  ÚoutputsSizer¹   r¸   r  rX   ÚoutputsÚoperatorÚgetitem)
r  r»   r]  r5   rt   rQ  r…  rc   ÚoutpÚnext_fx_nodes
   &&        r'   Úconvert_call_function_opÚ,TS2FXGraphConverter.convert_call_function_op)  sÁ   € Ü  Ó&ˆà×+Ñ+¨D·.±.ÓA‰ˆà—-‘-×-Ñ-¨f¸FÓCˆð
 ×ÑÓ Ô"ØŸ+™+›-×1Ñ1Ó3ˆKØ-4×Ñ˜kÓ*ä$ T§\¡\£^Ö4‘�Ø"Ÿn™nÓ.�Ø#Ÿ}™}×:Ñ:Ü×$Ñ$ w ló �ð 2>×!Ñ! +Ó.ó 5r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  >  s   ø€ ÷ *ñ *±·±·±ñ *r)   c                ó(   € V P                  V4       R # rg   ©Ú_convert_prim_iterator©r  r»   s   &&r'   Úconvert_prim_TupleConstructÚ/TS2FXGraphConverter.convert_prim_TupleConstruct>  ó   € Ø×#Ñ# DÖ)r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  A  s   ø€ ÷ *ñ *©u¯x©x¯}©}ñ *r)   c                ó(   € V P                  V4       R # rg   rÉ  rË  s   &&r'   Úconvert_prim_ListConstructÚ.TS2FXGraphConverter.convert_prim_ListConstructA  rÎ  r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  D  s   ø€ ÷ 5ñ 5©5¯8©8¯=©=ñ 5r)   c                óÂ   € VP                  4        Uu. uF  q P                  V4      NK  	  ppVP                  4       P                  4       pW0P                  V&   R # u upi rg   )r   rD  r¹   r¸   r  )r  r»   rd   Úoutput_listr…  s   &&   r'   rÊ  Ú*TS2FXGraphConverter._convert_prim_iteratorD  sM   € ØEIÇ[Á[Ä]ÓSÁ]¸c×4Ñ4°SÖ9Á]ˆÐSà—k‘k“m×-Ñ-Ó/ˆØ)4×Ñ˜+Ó&ùò Ts   “Ac                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  J  s   ø€ ÷ 5ñ 5©u¯x©x¯}©}ñ 5r)   c                ój  € / pR R rC\        VP                  4       4       FQ  w  rVV^,          ^ 8X  d   V P                  V4      pK&  V P                  V4      pVe   Vf   \        R4      hWBV&   R R rCKS  	  Vf   Ve   \        R4      hVP	                  4       P                  4       pW P                  V&   R # )Nz*DictConstruct has an empty key value pair.zGDictConstruct has an odd number of elements (violating our assumption).)rX   r   rD  r÷   r¹   r¸   r  )r  r»   Úoutput_dictr  Úvrc   rd   r…  s   &&      r'   Úconvert_prim_DictConstructÚ.TS2FXGraphConverter.convert_prim_DictConstructJ  s´   € ØˆØ�Tˆ1Ü §¡£Ö.‰FˆAð �1�u˜ŒzØ×1Ñ1°#Ó6’à×1Ñ1°#Ó6�Ø’9 ¢	Ü(Ð)UÓVÐVØ!"˜A‘Ø˜T’1ñ /ð Š=˜AšMÜ ØYóð ð —k‘k“m×-Ñ-Ó/ˆØ)4×Ñ˜+Ó&r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  a  s   ø€ ÷ 1ñ 1©E¯H©H¯M©Mñ 1r)   c                ó(   € V P                  V4       R # rg   ©Ú_convert_prim_unpack_iteratorrË  s   &&r'   Úconvert_prim_ListUnpackÚ+TS2FXGraphConverter.convert_prim_ListUnpacka  ó   € Ø×*Ñ*¨4Ö0r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  d  s   ø€ ÷ 1ñ 1©U¯X©X¯]©]ñ 1r)   c                ó(   € V P                  V4       R # rg   rß  rË  s   &&r'   Úconvert_prim_TupleUnpackÚ,TS2FXGraphConverter.convert_prim_TupleUnpackd  rã  r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  g  s   ø€ ÷ 3ñ 3±%·(±(·-±-ñ 3r)   c                ó  € \        VP                  4       4       Fm  w  r#VP                  4       pV P                  VP	                  4       4      pV P
                  P                  \        P                  WR34      pW`P                  V&   Ko  	  R # rg   )
rX   rÀ  r¸   rD  r·   r®   rr  rÁ  rÂ  r  )r  r»   rc   rÃ  Ú	outp_namerd   rQ  s   &&     r'   rà  Ú1TS2FXGraphConverter._convert_prim_unpack_iteratorg  sg   € ä  §¡£Ö0‰GˆAØŸ™Ó(ˆIØ×/Ñ/°·
±
³Ó=ˆCØ—m‘m×1Ñ1´(×2BÑ2BÀSÀHÓMˆGØ+2×Ñ˜iÓ(ó	 1r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  o  s   ø€ ÷ 1ñ 1¡U§X¡X§]¡]ñ 1r)   c                óD  a € \         P                  P                  P                  P                  p\
        ;QJ d%    . V 3R  lVP                  4        4       F  NK  	  5M! V 3R  lVP                  4        4       4      pS P                  P                  W#R\         P                  /4      pS P                  P                  \         P                  P                  P                  P                  V34      pVP                  4       P                  4       pVS P                  V&   R# )c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irg   r�  ©rz  r·   r  s   & €r'   r{  Ú7TS2FXGraphConverter.convert_aten_Int.<locals>.<genexpr>r  ó   øé € ÐUÁ}¸e�T×2Ñ2°5×9Ð9Ã}ùr�  r²   N)r   r�   r‚   Ú_to_copyrû   rB   r   r®   rr  Úint32Ú_local_scalar_denser¹   r¸   r  )r  r»   r]  r5   Úto_copy_noderQ  r…  s   f&     r'   Úconvert_aten_IntÚ$TS2FXGraphConverter.convert_aten_Into  sº   ø€ ä—‘—‘×(Ñ(×0Ñ0ˆßŒuÔUÀtÇ{Á{Ä}ÓU�u‰uÔUÀtÇ{Á{Ä}ÓUÓUˆØ—}‘}×2Ñ2°6À'Ì5Ï;É;ÐAWÓXˆà—-‘-×-Ñ-Ü�I‰I�N‰N×.Ñ.×6Ñ6¸¸ó
ˆð —k‘k“m×-Ñ-Ó/ˆØ)0ˆ×Ñ˜+Ó&r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r    s   ø€ ÷ 1ñ 1©U¯X©X¯]©]ñ 1r)   c                óž  a € \         P                  P                  P                  p\        ;QJ d%    . V 3R  lVP                  4        4       F  NK  	  5M! V 3R  lVP                  4        4       4      pS P                  P                  W#R\         P                  /4      pVP                  4       P                  4       pVS P                  V&   R# )c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irg   r�  rï  s   & €r'   r{  Ú?TS2FXGraphConverter.convert_prim_NumToTensor.<locals>.<genexpr>‡  rñ  r�  r²   N)r   r�   r‚   r…   rB   r   r®   rr  Úlongr¹   r¸   r  ©r  r»   r]  r5   rQ  r…  s   f&    r'   Úconvert_prim_NumToTensorÚ,TS2FXGraphConverter.convert_prim_NumToTensor  s…   ø€ ô —‘—‘×-Ñ-ˆßŒuÔUÀtÇ{Á{Ä}ÓU�u‰uÔUÀtÇ{Á{Ä}ÓUÓUˆà—-‘-×-Ñ-¨f¸WÄeÇjÁjÐ<QÓRˆØ—k‘k“m×-Ñ-Ó/ˆØ)0ˆ×Ñ˜+Ó&r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  �  s   ø€ ÷ 5ñ 5©e¯h©h¯m©mñ 5r)   c                ó`   € VP                  4       P                  4       pR V P                  V&   R# )Ú N)r¹   r¸   rà   ©r  r»   r…  s   && r'   Úconvert_prim_CreateObjectÚ-TS2FXGraphConverter.convert_prim_CreateObject�  s&   € Ø—k‘k“m×-Ñ-Ó/ˆØ24ˆ×"Ñ" ;Ó/r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ‘  s   ø€ ÷ 	1ñ 	1©e¯h©h¯m©mñ 	1r)   c                ó,  € \         P                  P                  P                  P                  pV P                  WP                  4      w  r4V P                  P                  W#V4      pVP                  4       P                  4       pWPP                  V&   R # rg   )r   r�   r‚   Úconvolutionrû   rF  r�  r®   rr  r¹   r¸   r  )r  r»   r]  r5   rt   rQ  r…  s   &&     r'   Úconvert_aten__convolutionÚ-TS2FXGraphConverter.convert_aten__convolution‘  sk   € ô —‘—‘×+Ñ+×3Ñ3ˆØ×+Ñ+¨D·.±.ÓA‰ˆà—-‘-×-Ñ-¨f¸FÓCˆà—k‘k“m×-Ñ-Ó/ˆØ)0×Ñ˜+Ó&r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  œ  s   ø€ ÷ ,ñ ,¡U§X¡X§]¡]ñ ,r)   c                óø  € \        V4      pVP                  pV P                  W4      w  rEVP                  R 8X  Ed-   V^,          P                  pW`P
                  9   Ed	   \        V P
                  V,          \        P                  4      '       dØ   V P
                  V,          pVP                  4       ^8X  d°   \        V4      pV P
                  V,          P                  4       V^&   V P                  P                  \        P                  P                  P                   P"                  \%        V4      V4      p	VP'                  4       P)                  4       p
W�P*                  V
&   R# V P-                  V4       R# )ÚTensor_modeN)r  r�  rF  rù   rš   r  rK   r   r‰   ÚnumelrD   rn  r®   rr  r�   r‚   r†   r‡   rB   r¹   r¸   r  rÅ  )r  r»   r]  rö   r5   rt   Ú	arg1_nameÚtensor_constantÚupdated_argsrQ  r…  s   &&         r'   Úconvert_aten_divÚ$TS2FXGraphConverter.convert_aten_divœ  s$  € Ü  Ó&ˆØ—‘ˆà×+Ñ+¨DÓ9‰ˆð ×Ñ =Õ0Ø˜Q�Ÿ™ˆIØ×1Ñ1Õ1´jØ×%Ñ% iÕ0´%·,±,÷7ò 7ð #'×"7Ñ"7¸	Õ"B�Ø"×(Ñ(Ó*¨aÔ/Ü#'¨£:�LØ&*×&;Ñ&;¸IÕ&F×&KÑ&KÓ&M�L ‘Oà"Ÿm™m×9Ñ9ÜŸ	™	Ÿ™×*Ñ*×6Ñ6Ü˜lÓ+Øó�Gð #'§+¡+£-×"9Ñ"9Ó";�KØ5<×%Ñ% kÑ2Ùà×%Ñ% dÖ+r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ½  s   ø€ ÷ 1ñ 1©U¯X©X¯]©]ñ 1r)   c                óX  a € \         ;QJ d%    . V 3R  lVP                  4        4       F  NK  	  5M! V 3R  lVP                  4        4       4      w  r#S P                  P                  \        P
                  W#34      pVP                  4       P                  4       pVS P                  V&   R# )c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irg   r�  rï  s   & €r'   r{  Ú?TS2FXGraphConverter.convert_aten___getitem__.<locals>.<genexpr>¾  s"   øé € ð '
Ù>K°UˆD×)Ñ)¨%×0Ð0»mùr�  N)	rB   r   r®   rr  rÁ  rÂ  r¹   r¸   r  )r  r»   Úinput_containerÚindexrQ  r…  s   f&    r'   Úconvert_aten___getitem__Ú,TS2FXGraphConverter.convert_aten___getitem__½  s†   ø€ ß!&¤ô '
Ø>B¿k¹k¼mó'
§¡ô '
Ø>B¿k¹k¼mó'
ó "
Ñˆð —-‘-×-Ñ-Ü×Ñ˜Ð6ó
ˆð —k‘k“m×-Ñ-Ó/ˆØ)0ˆ×Ñ˜+Ó&r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  Ç  s   ø€ ÷ %,ñ %,¡E§H¡H§M¡Mñ %,r)   c                óœ  € \        V4      pV P                  WP                  4      w  r4V\        P                  P
                  P                  P                  J g4   V\        P                  P
                  P                  P                  J Ed¤   VP                  4       P                  4        Uu. uF  qUP                  NK  	  ppV Uu. uF%  pVP                  4       R 8w  g   K  \        V4      NK'  	  pp\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      p	V	'       Ed    \        V4      ^8  d   \        R\        V4       24      h\!        V4      p
RV
^&   V P"                  P%                  \        P                  P
                  P                  P                  \'        V
4      4      pV P"                  P%                  \        P                  P
                  P(                  P*                  V34      pVP                  4       P-                  4       pWÀP.                  V&   R# V P1                  V4       R# u upi u upi )rõ   c              3   óL   "  € T F  qP                   P                  x € K  	  R # 5irg   )r�  Ú
is_mutable)rz  r]  s   & r'   r{  Ú6TS2FXGraphConverter.convert_aten_to.<locals>.<genexpr>×  s   é € ð %Ù8D¨f—‘×)Ö)»ùs   ‚"$TFzexpected at least 4 args, got N)r  rF  r�  r   r�   r‚   rl  r²   Ú
prim_dtyper¹   ÚusesÚuserrö   Úanyr   r÷   rD   r®   rr  rB   Úclonerû   r¸   r  rÅ  )r  r»   r]  r5   Ú_kwargsÚuseÚ
user_nodesÚ	user_nodeÚuser_targetsÚhas_mutable_targetÚnew_argsrQ  Ú
clone_noder…  s   &&            r'   Úconvert_aten_toÚ#TS2FXGraphConverter.convert_aten_toÇ  sÉ  € Ü  Ó&ˆØ×,Ñ,¨T·>±>ÓB‰ˆð ”U—Y‘Y—^‘^×&Ñ&×,Ñ,Ó,°¼%¿)¹)¿.¹.×:KÑ:K×:VÑ:VÔ0VØ.2¯k©k«m×.@Ñ.@Ô.BÓCÑ.B sŸ(œ(Ñ.BˆJÐCñ ",óá!+�IØ×#Ñ#Ó%¨Ñ6ô +” 	Ö*Ù!+ð ð ÷
 "%£ñ %Ù8Dó%§§¢ñ %Ù8Dó%ó "Ð÷ "Ð!Ü�t“9˜q”=Ü(Ð+IÌ#ÈdË)ÈÐ)UÓVÐVÜ ›:�Ø"�˜‘ØŸ-™-×5Ñ5Ü—I‘I—N‘N×%Ñ%×+Ñ+¬U°8«_ó�ð
 "Ÿ]™]×8Ñ8Ü—I‘I—N‘N×(Ñ(×0Ñ0°7°*ó�
ð #Ÿk™k›m×5Ñ5Ó7�Ø1;×!Ñ! +Ñ.Ùà×%Ñ% dÖ+ùò7 Dùòs   Â.IÃI	Ã$I	c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  î  s   ø€ ÷ 0ñ 0¡U§X¡X§]¡]ñ 0r)   c                ó  € VP                  4       R 8X  d¸   \        VP                  ^ 4      P                  4       \        P
                  4      '       dm   \        VP                  ^4      P                  4       \        P
                  4      '       d0   \        P                  P                  P                  P                  pM\        RV 24      h\        V4      pV\        P                  P                  P                  P                  J dk   V P                  WP                  4      w  r4VP                  4       P                  4       pV P                   P#                  \$        V4      V P&                  V&   R# V P)                  V4       R# )rõ   z$unable to determined the target for N)rö   rK   r’  r   r   ÚListTyper�   r‚   rÙ   ro  r3   r  rF  r�  r¹   r¸   r®   rr  rk   r  rÅ  )r  r»   r]  r5   r&  r…  s   &&    r'   Úconvert_aten_addÚ$TS2FXGraphConverter.convert_aten_addî  s  € Ø�;‰;‹=˜MÔ)Ü˜$Ÿ-™-¨Ó*×/Ñ/Ó1´5·>±>×BÒBÄzØ—‘˜aÓ ×%Ñ%Ó'¬¯©÷Hò Hô Ÿ™Ÿ™×+Ñ+×-Ñ-‘ä"Ð%IÈ$ÈÐ#PÓQÐQä$ TÓ*ˆFà”U—Y‘Y—^‘^×'Ñ'×)Ñ)Ó)ð !×0Ñ0°·~±~ÓF‰MˆDØŸ+™+›-×1Ñ1Ó3ˆKØ-1¯]©]×-HÑ-HÌÐSWÓ-XˆD×Ñ˜kÓ*à×)Ñ)¨$Ö/r)   c                ój  € \        VP                  4       4      pV^ ,          P                  4       V P                  9  d   \	        R4      h\        VP                  4       4      p\        VP                  4       4      P                  4       pVP                  4        F”  pVP                  4       ^8X  d/   VP                  4       P                  4       V8X  d   \	        R4      hVP                  4       ^8¼  g   K]  VP                  4        F#  pVP                  4       V8X  g   K  \	        R4      h	  K–  	  R# )r   zKprim::Loop currently cannot run with dynamic value of number of iterations.z@prim::Loop currently cannot run with dynamic value of condition.N)rD   r   r¸   r  r3   rì   rÐ   rÀ  rÎ   r¿  r¹   )r  r»   r   ÚsubblockÚcondition_output_namerÃ  s   &&    r'   Ú_check_prim_loop_supportÚ,TS2FXGraphConverter._check_prim_loop_support  sû   € Ü�d—k‘k“mÓ$ˆð �!�9×ÑÓ ¨×(=Ñ(=Ô=ÜØ]óð ô
 ˜Ÿ™›Ó&ˆÜ $ X×%5Ñ%5Ó%7Ó 8× BÑ BÓ DÐØ—N‘NÖ$ˆDà× Ñ Ó" aÔ'Ø—K‘K“M×+Ñ+Ó-Ð1FÔFä"ØVóð ð ×ÑÓ! QÖ&Ø ŸL™LžN�DØ—~‘~Ó'Ð+@Ö@Ü*Ø^óð ó +ó %r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r    s   ø€ ÷ Nñ N¡e§h¡h§m¡mñ Nr)   c           	     ó  € \        VP                  4       4      pV P                  V4       V P                  V^ ,          4      pVR,           Uu. uF  qDP	                  4       NK  	  ppV P                  V4      pVP                  4        F%  pVP                  V P                  V,          4      pK'  	  \        V4      pV P                  W4      w  r‰\        V4      ^8w  d   \        R\        V4       24      hV	^ ,          p
V P                  4       '       g+   V P                  P                  V
P                  4      V n        WV,            Uu. uF  pV P                  V4      NK  	  pp\        V4       EFŒ  pV P                   P#                  \$        V^ ,          V\        V4      .VO5/ 4      pVP'                  4       ^8¼  d‰   \)        VP+                  4       4       Fk  w  ppVP	                  4       pV P                   P#                  \,        P.                  VV^,           34      V P0                  V&   V P0                  V,          WÏ&   Km  	  \)        V
P                  4       F›  w  rûV P                   P#                  \,        P.                  VWñP'                  4       ,           ^,           34      V P0                  V&   VP3                  V4      pV P0                  V,          WÏVP'                  4       ,           V,           &   K�  	  EK�  	  R# u upi u upi )r   :r=   NNzexpected 1 subgraph node, got N)rD   r   r8  rD  r¸   r6  rÐ   rØ   rÜ   r3  r   r÷   r¯   r  rL  Úranger®   rr  rw   r¿  rX   rÀ  rÁ  rÂ  r  r  )r  r»   r   Únum_iterationsrd   Úloop_local_argumentsÚglobal_argumentsrÒ   r,  r-  r.  rš   Úfx_block_argsrr   Ú	loop_noderc   rÃ  r…  Úglobal_argument_indexs   &&                 r'   Úconvert_prim_LoopÚ%TS2FXGraphConverter.convert_prim_Loop  sÑ  € Ü�d—k‘k“mÓ$ˆØ×%Ñ% dÔ+à×6Ñ6°v¸aµyÓAˆð <BÀ"¾:ÓF¹:°C§¡¦¹:ÐÐFà×=Ñ=¸dÓCÐð —[‘[–]ˆEØ/×5Ñ5Ø×+Ñ+¨EÕ2ó Òñ #ô
  Ð 0Ó1Ðà.2×.MÑ.MØó/
Ñ+ˆô ˆ~Ó !Ô#Ü Ð#AÄ#ÀnÓBUÐAVÐ!WÓXÐXØ0°Õ3ÐØ×&Ñ&×(Ò(à×8Ñ8×>Ñ>Ø&×JÑJóð Ô4ð -Ö?ó
á?�ð ×$Ñ$ TÖ*Ù?ð 	ð 
ô ˜n×-ˆHØŸ™×3Ñ3Ü/ð # 1Õ%ØÜÐ,Ó-ðð #ñ	ð ó
ˆIð ×ÑÓ! QÔ&Ü(¨¯©«Ö8‘G�A�tØ"&§.¡.Ó"2�KØ59·]±]×5PÑ5PÜ ×(Ñ(à%Ø �Eðó6�D×%Ñ% kÑ2ð (,×'8Ñ'8¸Õ'E�MÓ$ñ  9ô %Ø"×FÑFö‘�ð +/¯-©-×*EÑ*EÜ×$Ñ$à!Ø×,Ñ,Ó.Õ.°Õ2ðó+�×!Ñ! $Ñ'ð )9×(>Ñ(>¸tÓ(DÐ%à×%Ñ% dÕ+ð  $×"2Ñ"2Ó"4Õ4Ð7LÕLÓMôó9 .ùò=  Gùò4
s   ÁLÅ
L	c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# )r=   Úif_noderó   )rF   r  s   "€r'   rG   r  m  s   ø€ ÷ ñ ±5·8±8·=±=ñ r)   c                ó¢   € VP                  4        F:  pVP                  4        F#  pVP                  4       R 8X  g   K  \        R4      h	  K<  	  R# )rê   z�During converting prim::If to torch.cond, found prim::SetAttr op which is not supported yet. Please file an issue if you come across this error.N)rÐ   rÎ   rÏ   r3   )r  rF  rÒ   r»   s   &&  r'   Ú_check_set_attr_in_if_blockÚ/TS2FXGraphConverter._check_set_attr_in_if_blockm  sC   € Ø—^‘^Ö%ˆEØŸ™ž�Ø—9‘9“; /Ö1Ü&ð-óð ó &ó &r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  w  s   ø€ ÷ *9ñ *9¡E§H¡H§M¡Mñ *9r)   c                óX  € V P                  V4       \        VP                  4       4      p\        V4      ^8w  d   \	        R\        V4       24      hV P                  V^ ,          4      pV P                  V4      pVP                  4        F%  pVP                  V P                  V,          4      pK'  	  \        V4      pV P                  W4      w  rg\        V4      ^8w  d   \	        R\        V4       24      hV Uu. uF  q€P                  V4      NK  	  p	pVV^ ,          V^,          \        V	4      3p
V P                  P                  \        P                   V
/ 4      pVP#                  4       ^8X  d/   VP%                  4       P'                  4       pW°P(                  V&   R# VP#                  4       ^8”  dn   \+        VP-                  4       4       FN  w  rÞVP'                  4       pV P                  P                  \.        P0                  W½34      pWðP(                  V&   KP  	  R# R# u upi )r¶  z#expected 1 input for prim::If, got zexpected 2 subgraph nodes, got N)rH  rD   r   r   r÷   rD  r6  rÐ   rØ   rÜ   r3  rL  rB   r®   rr  r   Úcondr¿  r¹   r¸   r  rX   rÀ  rÁ  rÂ  )r  r»   r   Ú	predicaterÚ   rÒ   r,  r&   rš   r@  r5   Ú	cond_noder…  rc   r¹   rÂ  s   &&              r'   Úconvert_prim_IfÚ#TS2FXGraphConverter.convert_prim_Ifw  sá  € Ø×(Ñ(¨Ô.ä�d—k‘k“mÓ$ˆÜˆv‹;˜!ÔÜ Ð#FÄsÈ6Ã{ÀmÐ!TÓUÐUØ×1Ñ1°&¸µ)Ó<ˆ	ð ×6Ñ6°tÓ<ˆ	ð —[‘[–]ˆEØ!Ÿ™¨×(CÑ(CÀEÕ(JÓKŠIñ #ô ˜“Oˆ	Ø ×;Ñ;¸DÓLÑˆäˆ~Ó !Ô#Ü Ø1´#°nÓ2EÐ1FÐGóð ñ ENÓNÁI¸D×1Ñ1°$Ö7ÁIˆÐNð Ø˜1ÕØ˜1ÕÜ�-Ó ð	
ˆð —M‘M×/Ñ/´·
±
¸DÀ"ÓEˆ	ð ×ÑÓ Ô"ØŸ+™+›-×1Ñ1Ó3ˆKØ-6×Ñ˜kÓ*Ø×ÑÓ !Ô#Ü& t§|¡|£~Ö6‘	�Ø$×.Ñ.Ó0�ØŸ-™-×5Ñ5´h×6FÑ6FÈÈÓW�Ø18×!Ñ! +Ó.ó 7ñ $ùò Os   Ã=H'c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  £  s   ø€ ÷ $ñ $¡e§h¡h§m¡mñ $r)   c                ó(   € V P                  V4       R # rg   )Ú_convert_as_nooprË  s   &&r'   Úconvert_aten_BoolÚ%TS2FXGraphConverter.convert_aten_Bool£  s   € Ø×Ñ˜dÖ#r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ¦  s   ø€ ÷ ñ ¡u§x¡x§}¡}ñ r)   c                ó   € R # rg   rh   rË  s   &&r'   Úconvert_prim_EnterÚ&TS2FXGraphConverter.convert_prim_Enter¦  s   € ñ
 	r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ­  s   ø€ ÷ ñ ¡e§h¡h§m¡mñ r)   c                ó   € R # rg   rh   rË  s   &&r'   Úconvert_prim_ExitÚ%TS2FXGraphConverter.convert_prim_Exit­  s   € ár)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ±  s   ø€ ÷ 	1ñ 	1¡U§X¡X§]¡]ñ 	1r)   c                óÂ   € \        V4      pVP                  pV P                  W4      w  rEVP                  4       P	                  4       pV^ ,          V P
                  V&   R# )r   N)r  r�  rF  r¹   r¸   r  )r  r»   r]  rö   r5   r&  r…  s   &&     r'   rS  Ú$TS2FXGraphConverter._convert_as_noop±  sQ   € ô ! Ó&ˆØ—‘ˆà×,Ñ,¨TÓ:‰ˆà—k‘k“m×-Ñ-Ó/ˆØ)-¨a­ˆ×Ñ˜+Ó&r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  ¼  s   ø€ ÷ 2ñ 2¹5¿8¹8¿=¹=ñ 2r)   c                ó"  a € \         P                  P                  P                  p\        ;QJ d%    . V 3R  lVP                  4        4       F  NK  	  5M! V 3R  lVP                  4        4       4      pS P                  P                  W#4       R# )c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irg   r�  rï  s   & €r'   r{  ÚMTS2FXGraphConverter.convert_profiler__record_function_exit.<locals>.<genexpr>Á  rñ  r�  N)r   r�   ÚprofilerÚ_record_function_exitrB   r   r®   rr  )r  r»   r]  r5   s   f&  r'   Ú&convert_profiler__record_function_exitÚ:TS2FXGraphConverter.convert_profiler__record_function_exit¼  sV   ø€ ô —‘×#Ñ#×9Ñ9ˆßŒuÔUÀtÇ{Á{Ä}ÓU�u‰uÔUÀtÇ{Á{Ä}ÓUÓUˆØ�‰×#Ñ# FÖ1r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  Ä  s   ø€ ÷ 1ñ 1©¯©¯©ñ 1r)   c                óê   € R pV P                  \        VP                  4       4      4      3pV P                  P	                  W#4      pVP                  4       P                  4       pW@P                  V&   R# )ÚtolistN)rD  rì   r   r®   r£  r¹   r¸   r  rý  s   &&    r'   Úconvert_prim_tolistÚ'TS2FXGraphConverter.convert_prim_tolistÄ  s]   € ð ˆØ×-Ñ-¬d°4·;±;³=Ó.AÓBÐDˆØ—-‘-×+Ñ+¨FÓ9ˆØ—k‘k“m×-Ñ-Ó/ˆØ)0×Ñ˜+Ó&r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  Í  s   ø€ ÷ <ñ <©u¯x©x¯}©}ñ <r)   c                ó†   € VP                  4       P                  4       p\        P                  ! 4       V P                  V&   R # rg   )r¹   r¸   r   r‰   r  r  s   && r'   Úconvert_prim_UninitializedÚ.TS2FXGraphConverter.convert_prim_UninitializedÍ  s.   € ð
 —k‘k“m×-Ñ-Ó/ˆÜ-2¯\ª\«^ˆ×Ñ˜kÓ*r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  Õ  s   ø€ ÷ 1ñ 1±·±·±ñ 1r)   c                ój  a € \         VP                  4       ,          p\        ;QJ d%    . V 3R  lVP                  4        4       F  NK  	  5M! V 3R  lVP                  4        4       4      pS P                  P                  W#4      pVP                  4       P                  4       pVS P                  V&   R# )c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irg   r�  rï  s   & €r'   r{  ÚBTS2FXGraphConverter._convert_standard_operators.<locals>.<genexpr>×  rñ  r�  N)	r  rÏ   rB   r   r®   rr  r¹   r¸   r  rý  s   f&    r'   r  Ú/TS2FXGraphConverter._convert_standard_operatorsÕ  su   ø€ Ü+¨D¯I©I«KÕ8ˆßŒuÔUÀtÇ{Á{Ä}ÓU�u‰uÔUÀtÇ{Á{Ä}ÓUÓUˆØ—-‘-×-Ñ-¨fÓ;ˆØ—k‘k“m×-Ñ-Ó/ˆØ)0ˆ×Ñ˜+Ó&r)   c                óH   <€ V ^8„  d   QhRS[ P                  P                  /# rò   ró   )rF   r  s   "€r'   rG   r  Ü  s   ø€ ÷ Uñ U¡§¡§¡ñ Ur)   c                ó`  € VP                  4       p\        V4      p\        WV P                  4      pR P	                  \        V4      P                  R4      R,          4      p\        P                  RVP                  V4        V! V4       R#   \         d   p\        RT 24      ThRp?ii ; i)r  Ú
ºNr¶  Nz[%s] converts [%s]zTS2EPConverter failed for node N)rÏ   rª   rú   rÅ  r¨   r   r§   ÚlogÚdebugÚ__name__rü   r3   )r  r»   Ú	node_kindr   Úhandler_funcÚnode_strr[   s   &&     r'   rV  Ú TS2FXGraphConverter.convert_nodeÜ  s›   € Ø—I‘I“Kˆ	ô
 1°Ó;ÐÜ˜t¸×8UÑ8UÓVˆð
 —7‘7œ3˜t›9Ÿ?™?¨4Ó0°Õ4Ó5ˆÜ�	‰	Ð&¨×(=Ñ(=¸xÔHð	UÙ˜ÖøÜô 	UÜÐ!@ÀÀÐLÓMÐSTÐTûð	Uús   ÂB ÂB-ÂB(Â(B-c                ó"  € . pV P                   P                  4        Uu. uF  q"P                  4       NK  	  up\        V P                  4      ,           pV EF†  pW@P
                  9   dâ   V P
                  V,          pV P                  4       '       gg   \        V\        P                  P                  4      '       d=   VP                  R 8X  d,   V P                  P                  \        P                  V34      pVP                  V4       V P                   P                  \#        \$        P&                  \)        VR7      VR7      4       Kõ  W@P*                  9   dv   VP                  V P*                  V,          4       V P                   P                  \#        \$        P&                  \-        W@P*                  V,          R7      VR7      4       EKz  \/        RV R24      h	  \1        V4      ^ 8X  d   V P                  P3                  . 4       R# \1        V4      ^8X  d%   V P                  P3                  V^ ,          4       R# \1        V4      ^8”  d   V P                  P3                  V4       R# V P                  P3                  V4       R# u upi )r­   r™   r[  )rš   rI  zOutput rç   N)r	  rÀ  r¸   rD   r  r  r¯   rK   r   r{   rá   r“  r®   rr  r%  r   r  r   r   ÚUSER_OUTPUTr   r  r   rè   r   r¹   )r  r5   rÃ  Úoutp_name_listr…  rQ  s   &     r'   rW  Ú)TS2FXGraphConverter.convert_graph_outputsï  sô  € ØˆØ7;·}±}×7LÑ7LÔ7NÓOÑ7N¨tŸ.™.Ö*Ñ7NÑOÔRVØ×4Ñ4óS
õ 
ˆô *ˆKØ×/Ñ/Ô/Ø×+Ñ+¨KÕ8�ð ×/Ñ/×1Ò1Ü" 7¬E¯H©H¯M©M×:Ò:ØŸ
™
 mÔ3à"Ÿm™m×9Ñ9¼%¿+¹+ÈÀzÓR�GØ—‘˜GÔ$Ø×!Ñ!×(Ñ(ÜÜ"×.Ñ.Ü*°Ô<Ø*ôöð × 5Ñ 5Ô5Ø—‘˜D×1Ñ1°+Õ>Ô?Ø×!Ñ!×(Ñ(ÜÜ"×.Ñ.Ü,Ø!,×4IÑ4IÈ+Õ4Vôð  +ô÷ô ! 7¨;¨-°zÐ!BÓCÐCñ? *ôB ˆt‹9˜Œ>à�M‰M× Ñ  Ö$Ü�‹Y˜!Œ^Ø�M‰M× Ñ Ø�Q•öô �‹Y˜Œ]Ø�M‰M× Ñ Øöð
 �M‰M× Ñ  Ö&ùòc Ps   ŸJ)rÜ   r®   r  rà   r  r  r  r  r  r
  r  r  r  r	  N)7r}  Ú
__module__Ú__qualname__Ú__firstlineno__r!  r&  r3  r6  r¯   r+  rF  rD  rL  r*  rU  rt  r†  r”  rŸ  r¤  r­  r±  r»  rÅ  rÌ  rÑ  rÊ  rÛ  rá  ræ  rà  rö  rþ  r  r	  r  r  r.  r3  r8  rC  rH  rO  rT  rX  r\  rS  rg  rl  rp  r  rV  rW  Ú__static_attributes__Ú__classdictcell__©r  s   @r'   r  r  ‰  sç  ø‡ € ÷DCð DCòL
÷3ð 3ò4ò29÷ð ÷
	#ð 	#÷>ð >ò÷ð ò4>.÷@	?ð 	?÷1ð 1÷8Wð W÷.,ð ,÷8?ð ?÷Tð T÷Mð M÷8
Uð 
U÷>ð >÷**ð *÷*ð *÷5ð 5÷5ð 5÷.1ð 1÷1ð 1÷3ð 3÷1ð 1÷ 1ð 1÷5ð 5÷	1ð 	1÷,ð ,÷B1ð 1÷%,ð %,÷N0ð 0ò(÷6Nð N÷`ð ÷*9ð *9÷X$ð $÷ð ÷ð ÷	1ð 	1÷2ð 2÷1ð 1÷<ð <÷1ð 1÷Uð U÷&3'ð 3'r)   r  c                   ój   a a€ ] tR tRt oRt ! R R]4      tV3R lV 3R lltR tV 3R lt	R	t
VtV ;t# )
ÚExplainTS2FXGraphConverteri%  zê
Run TS2FXGraphConverter in an explain mode. It collects all failed operators conversions
and provide that information to users. In order to collect all failed conversions, it
also mocks some internal attributes (e.g., name_to_node).
c                   óD   a a€ ] tR tRt oV 3R ltV 3R ltR tRtVtV ;t	# )Ú$ExplainTS2FXGraphConverter._DictMocki,  c                ó2   <€ \         SV `  V4       W n        R # rg   )Úsuperr!  Ú
mock_value)r  Ú	dict_datar’  Ú	__class__s   &&&€r'   r!  Ú-ExplainTS2FXGraphConverter._DictMock.__init__-  s   ø€ Ü‰GÑ˜YÔ'Ø(ŽOr)   c                ód   <€ \         SV `  V4      '       g   V P                  # \         SV `  V4      # rg   )r‘  Ú__contains__r’  Ú__getitem__)r  Úkeyr”  s   &&€r'   r˜  Ú0ExplainTS2FXGraphConverter._DictMock.__getitem__1  s/   ø€ ô ‘7Ñ'¨×,Ò,Ø—‘Ð&Ü‘7Ñ& sÓ+Ð+r)   c                ó   € R # ©Trh   )r  r™  s   &&r'   r—  Ú1ExplainTS2FXGraphConverter._DictMock.__contains__8  s   € Ùr)   )r’  )
r}  r†  r‡  rˆ  r!  r˜  r—  r‰  rŠ  Ú__classcell__©r”  r  s   @@r'   Ú	_DictMockr�  ,  s   ù‡ € õ	)õ	,÷	ò 	r)   r   c                óˆ  <€ V ^8„  d   QhRS[ P                  P                  S[ P                  P                  ,          RS[S[S[ P                  3,          RS[S[S[ P                  3,          RS[S[ P                  P                  S[S[,          3,          RS[S[S[3,          RS[S[S[3,          RS[S[S[3,          /# r  r  )rF   r  s   "€r'   rG   Ú'ExplainTS2FXGraphConverter.__annotate__;  s°   ø€ ÷ #
ñ #
á—(‘(—.‘.¡5§8¡8§>¡>Õ1ð#
ñ ™C¡§¡Ð-Õ.ð#
ñ ™S¡%§,¡,Ð.Õ/ð	#
ñ
 !%¡U§X¡X§^¡^±S¹µXÐ%=Õ >ð#
ñ '+©3±¨8¥nð#
ñ ™s¡C˜x�.ð#
ñ  $¡C© H�~ñ#
r)   c                óÐ   <€ \         SV `  VVVVVVV4       . V n        \        P	                  V P
                  \        P                  P                  R RRR R/ 4      4      V n        R # )NÚmockrr  c                  ó   € R # rg   rh   rh   r)   r'   r  Ú5ExplainTS2FXGraphConverter.__init__.<locals>.<lambda>Z  s   € ™r)   rh   )	r‘  r!  Úunsupported_node_listr�  r   r  r   r{   rá   )	r  r	  r
  r  rÜ   r  r  rà   r”  s	   &&&&&&&&€r'   r!  Ú#ExplainTS2FXGraphConverter.__init__;  sq   ø€ ô 	‰ÑØØØØ"Ø(ØØ!ô	
ð ;=ˆÔ"ô 7×@Ñ@Ø×Ñä�H‰H�M‰MØØØÙØØóó
ˆÖr)   c                óª   € V P                  4        V P                  P                  4        F  pV P                  V4       K  	  V P	                  4        R # rg   )rU  r	  rÎ   rV  rW  rË  s   & r'   ÚexplainÚ"ExplainTS2FXGraphConverter.explain`  s?   € Ø×!Ñ!Ô#Ø—M‘M×'Ñ'Ö)ˆDØ×Ñ˜dÖ#ñ *à×"Ñ"Ö$r)   c                ó‚   <€  \         SV `  V4       R #   \         d     T P                  P	                  T4        R # i ; irg   )r‘  rV  rü   r§  r   )r  r»   r”  s   &&€r'   rV  Ú'ExplainTS2FXGraphConverter.convert_nodef  s8   ø€ ð	4Ü‰GÑ  Ö&øÜô 	4Ø×&Ñ&×-Ñ-¨d×3ð	4ús   ƒ ”&>½>)r  r§  )r}  r†  r‡  rˆ  Ú__doc__rÈ   r   r!  rª  rV  r‰  rŠ  rž  rŸ  s   @@r'   r�  r�  %  s0   ù‡ € ñô�Dô ÷#
ó #
òJ%÷4õ 4r)   r�  c              #   ó`   "  € V P                   pR V n          Rx € Wn         R#   Yn         i ; i5i)TN)Údisabled)r{  r°  s   & r'   Údisable_loggingr±  m  s'   é € à�|‰|€HØ€C„Lð ÛàŽø�x�üs   ‚.—# ›.£+«.c                   ó€   a € ] tR tRt o RV 3R lR lltV 3R lR lt]! ]4      RR l4       tV 3R lR	 lt	R
 t
RtV tR# )ÚTS2EPConverteriw  Nc                óÄ   <€ V ^8„  d   QhRS[ P                  P                  S[ P                  P                  ,          RS[S[R3,          RS[S[S[3,          R,          /# )r=   Úts_modelÚsample_args.Úsample_kwargsN)r   r   rE   rA   rB   r   rÈ   r   )rF   r  s   "€r'   rG   ÚTS2EPConverter.__annotate__y  sW   ø€ ÷ "ñ "á—)‘)×(Ñ(©5¯9©9×+CÑ+CÕCð"ñ ™3 ˜8•_ð"ñ ™C¡˜H•~¨Õ,ñ	"r)   c                óö  a€ Wn         \        W4      w  V n        V n         pW n        W0n        / V n        / V n        \        V P                   \        P                  P                  4      '       g$   \        V P                   P                  4       4      M. p\        V P                   \        P                  P                  4      '       g“   V P                   P                  4       P                  4        Ff  w  po\         ;QJ d    V3R  lV 4       F  '       g   K   RM	  RM! V3R  lV 4       4      '       d   SV P                  V&   KW  SV P                  V&   Kh  	  / V n        / V n        V P'                  4        R# )c              3   ó„   <"  € T F5  pSP                   VP                   8X  g   K   SV8H  P                  4       x € K7  	  R # 5irg   )Úshaperƒ  )rz  Úparamr´   s   & €r'   r{  Ú*TS2EPConverter.__init__.<locals>.<genexpr>�  s:   øé € ð á!+˜Ø—|‘| u§{¡{Ñ2ô ,�V˜u‘_×)Ñ)×+Ð+Û!+ùs
   ƒA ¥A TFN)rµ  re   r	  r^   r¶  r·  r
  r  rK   r   r   rA   rD   Ú
parametersr_   Úitemsr$  Úname_to_non_tensor_attributesr  Úlift_get_attr)r  rµ  r¶  r·  r&   Ú
param_listr  r´   s   &&&&   @r'   r!  ÚTS2EPConverter.__init__y  s+  ø€ ð !ŒÜ+<¸XÓ+SÑ(ˆŒ�t”{ A qà&ÔØ*Ôà68ˆÔØ79ˆÔô ˜dŸm™m¬U¯X©X×-DÑ-D×EÒEô �—‘×)Ñ)Ó+Ô,àð 	ô
 ˜$Ÿ-™-¬¯©×)@Ñ)@×AÒAØ!Ÿ]™]×5Ñ5Ó7×=Ñ=Ö?‘	��6ç“3ô á!+ó—3—3’3ô á!+ó÷ ò ð
 -3�D×&Ñ& qÓ)à-3�D×'Ñ'¨Ó*ñ @ð >@ˆÔ*Ø02ˆÔà×ÑÖr)   c                ó    <€ V ^8„  d   QhRS[ /# r=  r   )rF   r  s   "€r'   rG   r¸  �  s   ø€ ÷ 3ñ 3™ñ 3r)   c           	     óL  € \         P                  R 4       \         P                  RV P                  4       \        V P                  4      w  r\	        V P                  V P
                  V P                  VV P                  V P                  V4      pVP                  4       p\        V4       \         P                  RVP                  RR7      4       V P                  VVP                  4      p\         P                  RV4       \        V P                  \        P                   P"                  4      '       gn   V P                  P%                  4       P'                  4        FA  w  rgWeP$                  9  g   K  \(        P*                  ! RV R2^R7       WuP$                  V&   KC  	  V# )	zü
TS2EPConverter logging starts from here.

INFO: (TORCH_LOGS="export" <cmd>)
    * Log TorchScript IR.

DEBUG: (TORCH_LOGS="+export" <cmd>), additionally
    * Log conversion IR by IR in a format of [<conversion handler name>] converts [<IR>].
        zTorchScript graph

%s
zGraphModule: %sF)Úprint_outputz%szManually populate zN into state_dict ExportedProgram, but it is never used by the ExportedProgram.rŠ  )r{  Úinfor	  rÞ   r  r
  r  rÀ  r  r*  r   Úprint_readableÚretrace_as_exported_programrK   rµ  r   r   rA   r_   r¿  r�  r‘  )r  rÜ   rà   Úgraph_converterry   Úepr  r´   s   &       r'   r*  ÚTS2EPConverter.convert�  sX  € Ü�‰ðô
	
ô 	�‰Ð,¨d¯m©mÔ<ä8QØ�M‰Mó9
Ñ5Ðô .Ø�M‰MØ×ÑØ×ÑØ"Ø×.Ñ.Ø×!Ñ!Ø!ó
ˆð ×$Ñ$Ó&ˆô 	0°Ô3Ü�‰Ð" B×$5Ñ$5À5Ð$5Ó$IÔJà×-Ñ-ØØ×,Ñ,ó
ˆô 	�‰��rÔô
 ˜$Ÿ-™-¬¯©×)@Ñ)@×AÒAØ!Ÿ]™]×5Ñ5Ó7×=Ñ=Ö?‘	�ØŸM™MÖ)Ü—M’MØ,¨Q¨CÐ/}Ð~Ø#$õð (.—M‘M !Ó$ñ @ð ˆ	r)   c           	     ó  € \        V P                  4      w  r#\        V P                  V P                  V P                  VV P
                  V P                  V4      pVP                  4        \        VP                  4      ^ 8”  ds   Rp\        VP                  4       FV  w  rgRP                  \        V4      P                  R4      R,          4      pVRV RVP                  4        RV R2,          pKX  	  MR	pV'       d   \        V4       V# )
r   z2Unsupported nodes are found in the following list:r  ry  rz  z

    z. z [Ú]zSuccess!)rÞ   r	  r�  r
  r  rÀ  r  rª  r   r§  rX   r¨   r   r§   rÏ   Úprint)	r  rÆ  rÜ   rà   rÊ  Úexplain_strrc   Únr€  s	   &&       r'   rª  ÚTS2EPConverter.explainÒ  sï   € ä8QØ�M‰Mó9
Ñ5Ðô 5Ø�M‰MØ×ÑØ×ÑØ"Ø×.Ñ.Ø×!Ñ!Ø!ó
ˆð 	×ÑÔ!Üˆ×4Ñ4Ó5¸Ô9ØNˆKÜ! /×"GÑ"GÖH‘�ØŸ7™7¤3 q£6§<¡<°Ó#5°bÕ#9Ó:�Ø ¨!¨¨B¨q¯v©v«x¨j¸¸8¸*ÀAÐFÕF’ò Ið %ˆKßÜ�+ÔØÐr)   c                ód   <€ V ^8„  d   QhRS[ P                  P                  RS[S[S[3,          /# )r=   ry   r  )r   r{   r|   rÈ   r   r   )rF   r  s   "€r'   rG   r¸  í  s1   ø€ ÷ .ñ .á�H‰H× Ñ ð.ñ ™s¡C˜x�.ñ.r)   c                óž  € \        R  V P                  4      p\        P                  P                  P                  VV P                  VRRR7      pVP                  P                  VP                  4        UUu/ uF9  w  rV\        V\        P                  \        P                  34      '       g   K7  WVbK;  	  upp4       V F  pVP                  P                  VR4       K!  	  VP                  P                   Fª  pVP                   \"        P$                  8X  g   K$  VP&                  V9   g   K7  \        W'P&                  ,          \        P                  4      '       g(   \)        \+        W'P&                  ,          4       R24      h\"        P,                  Vn        RVn        K¬  	  VP1                  4       P3                  V4       V# u uppi )c                 ó’   € \        V\        P                  4      '       d'   \        P                  .VP                  4       ,          # R # rg   )rK   r   r‰   r
   ÚAUTOr‹   )ÚpathÚxs   &&r'   r  Ú<TS2EPConverter.retrace_as_exported_program.<locals>.<lambda>ó  s.   € Ü(2°1´e·l±l×(CÒ(C”—‘�
˜QŸU™U›WÕ$ÐMÈÐMr)   FT)Údynamic_shapesr+   Úpre_dispatchNz& has been erroneously marked as buffer)r	   r¶  r   ÚexportÚ_traceÚ_exportÚ
_constantsÚupdater¿  rK   r‰   r$  r_   ÚpopÚgraph_signaturer  rÏ   r   ra  r]  r÷   r   ÚCONSTANT_TENSORr^  ÚverifierÚcheck)r  ry   r  rÚ  rË  r  rÚ  Úspecs   &&&     r'   rÉ  Ú*TS2EPConverter.retrace_as_exported_programí  sx  € ô
 -ñð ×Ñó	
ˆô �\‰\× Ñ ×(Ñ(ØØ×ÑØ)ØØð )ó 
ˆð 	�‰×Ñð -×2Ñ2Ô4ôá4‘D�AÜ˜a¤%§,¡,´×0BÑ0BÐ!C×Dô �’Ù4òô	
ó "ˆAØ�M‰M×Ñ˜a Ö&ñ "ð ×&Ñ&×2Ô2ˆDà�y‰yœI×,Ñ,Ö,°·±Ð@PÖ1PÜ!Ð"2·;±;Õ"?ÄÇÁ×NÒNÜ(ÜÐ 0·±Õ =Ó>Ð?Ð?eÐfóð ô &×5Ñ5�”	Ø"&�–ñ 3ð 	�‰‹×Ñ˜BÔàˆ	ùó)s   Á84G	
Â1G	
c                óp   a aaaa€ / oR  V 3R lloR V3R lloVVVVV 3R loS! S P                   4       R# )c                ó$   € V ^8„  d   QhR\         /# )r=   r%  rž   )rF   s   "r'   rG   Ú2TS2EPConverter.lift_get_attr.<locals>.__annotate__0  s   € ÷ 	ñ 	œ#ñ 	r)   c                 ój   <€ V P                  R 4      pSP                  pV F  p\        W#4      pK  	  V# rÁ   )r§   rµ  rú   )r%  rš   rÚ  rÑ  r  s   &   €r'   r¬   Ú.TS2EPConverter.lift_get_attr.<locals>.get_attr0  s1   ø€ Ø—9‘9˜S“>ˆDØ—‘ˆAÛ�Ü˜A“M’ñ àˆHr)   c                óL   € V ^8„  d   QhR\         P                  P                  /# rò   ró   )rF   s   "r'   rG   rê  7  s   € ÷ 	ñ 	œ%Ÿ(™(Ÿ-™-ñ 	r)   c                 óž   <€ V P                  R 4      pV P                  4       P                  4       pSV,          pV'       d
   V RV 2pV# TpV# )rš   r    )rº   r·   r¸   )r»   r¾   rí   rî   rï   rà   s   &    €r'   Úget_fqnÚ-TS2EPConverter.lift_get_attr.<locals>.get_fqn7  sT   ø€ ØŸ™˜v›ˆIØŸ™›×/Ñ/Ó1ˆJØ2°:Õ>ˆNß:H˜.Ð)¨¨9¨+Ð6ˆHØˆOð OXˆHØˆOr)   c                 óš  <€ V P                  4        EF4  pVP                  4       R 8X  d$   VP                  4       P                  4       pRS	V&   VP                  4       R8X  dÅ   S! V4      pS! V4      pVP                  4       P                  4       pVS	V&   \	        V\
        P                  4      '       d"   VS
P                  9  d   VS
P                  V&   MP\	        V\
        P                  4      '       d"   VS
P                  9  d   VS
P                  V&   MVS
P                  V&   VP                  4        F  pS! V4       K  	  EK7  	  R# )zprim::CreateObjectr  rÍ   N)rÎ   rÏ   r¹   r¸   rK   r   r‰   r  r$  r  rÀ  rÐ   )rÒ   r»   r…  rï   rI  r6  Ú_dfs_get_attrr¬   rï  rà   r  s   &     €€€€€r'   rò  Ú3TS2EPConverter.lift_get_attr.<locals>._dfs_get_attr>  s  ø€ ØŸ™Ÿ�Ø—9‘9“;Ð"6Ô6Ø"&§+¡+£-×"9Ñ"9Ó";�KØ9;Ð)¨+Ñ6à—9‘9“; /Ô1Ù& t›}�HÙ$ XÓ.�EØ"&§+¡+£-×"9Ñ"9Ó";�KØ9AÐ)¨+Ñ6Ü! %¬¯©×6Ò6Ø#¨4×+>Ñ+>Ô>à<A˜D×/Ñ/°Ñ9øÜ# E¬5×+=Ñ+=×>Ò>Ø#¨4×+@Ñ+@Ô@Ø>C˜D×1Ñ1°(Ñ;øàGL˜×:Ñ:¸8ÑDà $§¡¦�HÙ! (Ö+ô !.ó) &r)   N)r	  )r  rò  r¬   rï  rà   s   f@@@@r'   rÁ  ÚTS2EPConverter.lift_get_attr  s7   ü€ ð" 13Ð÷	ð 	÷	ð 	÷	,ñ 	,ñ0 	�d—m‘mÖ$r)   )	r  r  rÀ  r
  r^   r¶  r·  r	  rµ  rg   rœ  )r}  r†  r‡  rˆ  r!  r*  r±  r{  rª  rÉ  rÁ  r‰  rŠ  r‹  s   @r'   r³  r³  w  sI   ø‡ € ÷"ò "÷H3ð 3ñj �SÓóó ð÷4.ð .÷`9%ð 9%r)   r³  c                ó|   € V ^8„  d   Qh/ ^ \         9   d(   \        \        \        R\        3,          3,          ;R&   # )r=   .r  )Ú__conditional_annotations__rÈ   r   r   r   )rF   s   "r'   rG   rG      s1   € ‡�÷Lò œD¤¤h¨s´C¨xÕ&8Ð!8Õ9ñ òM r)   )Úrename)Zrö  ÚbuiltinsÚloggingrÁ  rP   r�  Úcollections.abcr   r   Ú
contextlibr   r   r   Útorch.export._tracer   ÚAtorch._export.passes.replace_quantized_ops_with_standard_ops_passr   Útorch.export.dynamic_shapesr	   r
   Útorch.export.exported_programr   Útorch.export.graph_signaturer   r   r   r   r   r   r   Útorch.fxr   Ú	getLoggerr}  r{  r(   r;   re   rk   ro   rw   r–   r›   r¢   rª   r°   Úuint8Úint8Úint16ró  Úint64Úfloat16Úfloat32Úfloat64Ú	complex32Ú	complex64Ú
complex128r‚  Úqint8Úquint8Úbfloat16r³   r¿  r~  rµ   ÚmaxÚminrÂ  Úis_Úis_notÚnot_Úcontainsr   r�   r‚   Ú	sym_numelrƒ   Úsym_storage_offsetÚ
sym_strider  r¿   rÆ   rÞ   rð   r  r  r�  r±  r³  rG   )r™  rI  rö  s   00@r'   Ú<module>r     s`  øðç €Û Û Û Û ß .Ý %Ý ã Û Ý õ÷ AÝ 9÷÷ ñ õ 'ð ×Ò˜Ó!€ò	ò"õ8/*òdò!òHõ(@ò"÷õ,ò&ð 
‡K�K�Ø	‡J�J�Ø	‡K�K�Ø	‡K�K�Ø	‡K�K�Ø	‡M�M�1Ø	‡M�M�1Ø	‡M�M�1Ø	‡O�O�QØ	‡O�O�QØ	×Ñ�bØ	‡J�J�Ø	‡K�K�Ø	‡L�L�"Ø	‡N�N�BðÐ ð$ 6J×5OÑ5OÔ5QÔRÑ5Q¡z s˜š
Ñ5QÒRÐ ò	'ð  �—‘Ø�—‘Ø˜×(Ñ(Ø�H—L‘LØ�x—‘Ø�X—]‘]Ø˜(×+Ñ+ØÐ#Ø�ð �5—9‘9—>‘>×+Ñ+Ø�%—)‘)—.‘.×)Ñ)Ø˜EŸI™IŸN™N×=Ñ=Ø�E—I‘I—N‘N×-Ñ-ð=Ð ó ò&0ò)õM5õ`õ2÷.Y'ñ Y'ôxE4Ð!4ô E4ðP ñ ó ð ÷_%ó _%ùóC% Ss   Å3J&