+
    "Ý³j1B  ã                   ó"  € ^ RI t ^ RIHtHtHt ^ RIt^ RIHu Ht	 ^ RI
Ht ^ RIHt ^ RIHt ]P                   P"                  tRtRtRtRR	 R
 lltR R lt ! R R]P.                  P0                  4      tRR R lltRR R lltRR R lltR# )é    N)ÚAnyÚCallableÚOptional)Úmaybe_set_is_frozen_param)Ú
OrderedSet)Úcollect_producer_nodesÚMODULE_TYPEÚ_MAIN_MODULEÚ_CONST_MODULEc          
      óÜ   € V ^8„  d   QhR\         P                  P                  R\         P                  P                  R\        \         P
                  ,          R\        \        ,          RR/# )é   ÚgmÚnodeÚconstantÚnameÚreturnN)ÚtorchÚfxÚGraphModuleÚNoder   ÚTensorÚstr)Úformats   "Úh/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchao/quantization/pt2e/constant_fold.pyÚ__annotate__r      sY   € ÷ ',ñ ',Ü�‰×Ñð',ä
�(‰(�-‰-ð',ô ”u—|‘|Õ$ð',ô ”3�-ð	',ð
 
ñ',ó    c                 ó°  € V P                   pV'       d   TpMV\        V R 4      '       g   ^ V n        V P                  p RV 2p\        W4      '       g   MV^,          pK#  V^,           V n        VP                  V4      ;_uu_ 4        Ve   VP	                  RVR/ 4      pMVP	                  RVR/ 4      pVP                  V4       VP                  P                  VP                  4       VP                  V4       VP                  Vn	        RRR4       Ve+   V P                  WR4       \        WV4       \        V4       R# R#   + '       g   i     L@; i)Ú_frozen_param_countÚ_frozen_paramNÚget_attrÚplaceholder© )ÚgraphÚhasattrr   Úinserting_beforeÚcreate_nodeÚreplace_all_uses_withÚmetaÚupdateÚ
erase_noder   Úregister_bufferÚsetattrr   )r   r   r   r   ÚgÚqualnameÚiÚnew_input_nodes   &&&&    r   Úreplace_node_with_constantr1      s"  € ð 	�‰€AçØ‰ä�rÐ0×1Ò1Ø%&ˆBÔ"Ø×"Ñ"ˆàØ& q cÐ*ˆHÜ˜2×(Ò(ØØ��FŠAà!" Q¥ˆÔà	
×	Ñ	˜D×	!Õ	!ØÒØŸ]™]¨:°xÀÀRÓH‰Nð Ÿ]™]¨=¸(ÀBÈÓKˆNØ×"Ñ" >Ô2Ø×Ñ×"Ñ" 4§9¡9Ô-Ø	�‰�TÔØ"Ÿi™iˆÔ÷ 
"ð Òà
×Ñ˜8Ô.Ü�˜hÔ'ä! (Ö+ñ ÷ 
"×	!ús   ÂBEÅE	c                ó�   € V ^8„  d   QhR\         P                  P                  R\        \        \
        ,          ,          R\        /# )r   r   Úlifted_constant_namesr   )r   r   r   r   Úlistr   Úbool)r   s   "r   r   r   E   s:   € ÷ Oñ OÜ
�(‰(�-‰-ðOÜ08¼¼c½Õ0CðOä	ñOr   c                 ób   € V P                   R 8H  ;'       g    V P                  T;'       g    R9   # )r    r"   )Úopr   )r   r3   s   &&r   Úis_const_sourcer8   E   s-   € ð �7‰7�jÑ ×NÐN D§I¡IÐ2G×2MÐ2MÈ2Ñ$NÐNr   c                   ó  a a€ ] tR t^Kt oRV3R lV 3R ll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V 3R
 lltV3R lR lt	V3R lR lt
V3R lV 3R lltV3R lR ltV3R lR ltV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚConstantFolderc                óÎ   <€ V ^8„  d   QhRS[ P                  P                  RS[RS[S[S[,          ,          RS[S[S[ P                  P                  .S[3,          ,          RR/# ©r   r   Úskip_constructorsr3   Úskip_folding_node_fnr   N©	r   r   r   r5   r   r4   r   r   r   )r   Ú__classdict__s   "€r   r   ÚConstantFolder.__annotate__L   si   ø€ ÷ <ñ <á�H‰H× Ñ ð<ñ  ð<ñ  (©©S­	Õ2ð	<ñ
 '¡x±·±·±°ÁÐ0EÕ'FÕGð<ð 
ñ<r   c                ó  <€ \         SV `  V4       / V n        \        P                  ! 4       V n        \        4       V n        W n        V P                  4       V n
        W0n        \        4       V n        W@n        V P                  4       V n        R # ©N)ÚsuperÚ__init__Únode_replacementsÚcollectionsÚCounterÚreplaced_usesÚobjectÚunknown_valuer=   Únode_to_last_non_output_useÚuser_to_last_usesr3   Údeferred_valuer>   Ú_find_mutable_buffersÚmutable_buffers)Úselfr   r=   r3   r>   Ú	__class__s   &&&&&€r   rE   ÚConstantFolder.__init__L   sw   ø€ ô 	‰Ñ˜ÔØ;=ˆÔÜ7B×7JÒ7JÓ7LˆÔÜ#›XˆÔØ'8Ôð "&×!AÑ!AÓ!CˆÔØ%:Ô"Ü$›hˆÔØ$8Ô!ð  $×9Ñ9Ó;ˆÖr   c                óN   <€ V ^8„  d   QhRS[ P                  P                  RS[/# ©r   r   r   ©r   r   r   r5   )r   r@   s   "€r   r   rA   c   s#   ø€ ÷ 	ñ 	¡u§x¡x§}¡}ð 	¹ñ 	r   c                óÌ   € \        V P                  P                  4       4      pVP                  R8X  d   R# VP                  R8X  d   \	        VP
                  4      V9   d   R# R# )z$Check if a node is a mutable buffer.r!   Tr    F)ÚdictÚmoduleÚnamed_buffersr7   r   Útarget)rQ   r   rZ   s   && r   Ú_is_mutable_bufferÚ!ConstantFolder._is_mutable_bufferc   sJ   € ä˜TŸ[™[×6Ñ6Ó8Ó9ˆØ�7‰7�mÔ#Ùà�7‰7�jÔ ¤S¨¯©Ó%5¸Ô%FÙár   c                óX   <€ V ^8„  d   QhRS[ S[P                  P                  ,          /# ©r   r   )Úsetr   r   r   )r   r@   s   "€r   r   rA   n   s!   ø€ ÷ ñ ¡s©5¯8©8¯=©=Õ'9ñ r   c                óÚ  a € \        4       pS P                  P                  P                   EF:  pVP                  R8X  g   K  \        VP                  R4      '       g   K5  R\        VP                  4      9   g   R\        VP                  4      9   g   Kk  \        VP                  4      ^ 8”  g   K‡  \        VP                  ^ ,          \        P                  P                  4      '       g   KÄ  \        VP                  ^ ,          4      pVf   Kæ  \        ;QJ d    V 3R lV 4       F  '       g   K   RM	  RM! V 3R lV 4       4      '       g   EK)  VP!                  V4       EK=  	  V# )z|Find mutable buffers by identifying copy_ or put_ operations.
The graph then traces all nodes that lead to a mutable buffer.Úcall_functionÚ_schemaÚcopy_Úput_c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irC   )r\   )Ú.0ÚprQ   s   & €r   Ú	<genexpr>Ú7ConstantFolder._find_mutable_buffers.<locals>.<genexpr>}   s"   øé € ð :Ù<J°q˜×/Ñ/°×2Ð2»Nùs   ƒ!TF)r`   rY   r#   Únodesr7   r$   r[   r   ÚlenÚargsÚ
isinstancer   r   r   r   Úanyr)   )rQ   rP   r   Úproducer_nodess   f   r   rO   Ú$ConstantFolder._find_mutable_buffersn   sð   ø€ ô ›%ˆØ—K‘K×%Ñ%×+Õ+ˆDà—‘˜?Ö*Ü˜DŸK™K¨×3Ô3Ø¤ D§K¡KÓ 0Ô0°F¼cÀ$Ç+Á+Ó>NÖ4Nô
 �t—y‘y“> AÖ%¬*°T·Y±Y¸qµ\Ä5Ç8Á8Ç=Á=×*QÔ*QÜ%;¸D¿I¹IÀa½LÓ%I�NØ%Ô1·c³cô :Ù<Jó:·c·c²cô :Ù<Jó:÷ 7õ 7ð (×.Ñ.¨~×>ñ ,ð  Ðr   c                ó    <€ V ^8„  d   QhRS[ /# r_   )r5   )r   r@   s   "€r   r   rA   „   s   ø€ ÷ ñ ©ñ r   c                ó   € R # )Fr"   )rQ   s   &r   Ú_support_dynamic_shapeÚ%ConstantFolder._support_dynamic_shape„   s   € ár   c                óN   <€ V ^8„  d   QhRS[ P                  P                  RS[/# rU   ©r   r   r   r   )r   r@   s   "€r   r   rA   ˆ   s#   ø€ ÷ #ñ #¡%§(¡(§-¡-ð #±Cñ #r   c                ó$  <€ V P                   f   \        SV `	  V4      # V P                  e$   V P                  V4      '       d   V P                  # \
        P                  ! VP                  / VP                  B pV F†  p\        V\        P                  P                  4      '       g   K/  VP                  V P                   ;'       g    R9  g   KV  V P                  V,          V P                  8w  g   Kz  V P                  u # 	  V P                  # )Nr"   )r3   rD   Úrun_noder>   rK   ÚpytreeÚarg_tree_leavesrm   Úkwargsrn   r   r   r   r   ÚenvrN   )rQ   r   Úflattened_node_inpsÚinprR   s   &&  €r   Ú_deduce_valueÚConstantFolder._deduce_valueˆ   sÐ   ø€ Ø×%Ñ%Ò-Ü‘7Ñ# DÓ)Ð)ð ×$Ñ$Ò0°T×5NÑ5NÈt×5TÒ5TØ×%Ñ%Ð%Ü$×4Ò4°d·i±iÐOÀ4Ç;Á;ÑOÐÛ&ˆCä˜3¤§¡§¡×.Ô.Ø—H‘H T×%?Ñ%?×%EÐ%EÀ2ÖFØ—H‘H˜S•M T×%8Ñ%8Ö8à×)Ñ)Ò)ñ 'ð ×"Ñ"Ð"r   c                ób   <€ V ^8„  d   QhRS[ P                  P                  P                  RS[/# rU   ©r   r   r   r   r5   )r   r@   s   "€r   r   rA   ™   s)   ø€ ÷ -ñ -™eŸh™hŸm™m×0Ñ0ð -±Tñ -r   c                ó
  € R  R lpV! V4      '       g‚   VP                   \        P                  P                  P                  P
                  8X  dt   \        VP                  4      ^8X  dZ   V! \        \        VP                  4      4      4      '       d0   \        VP                  ^ ,          V P                  4      '       d   R# \        P                  P                  P                  P
                  \        P                  P                  P                  P
                  \        P                  P                  P                  P                   \        P                  P                  P"                  P$                  \        P                  P&                  P(                  .pVP                   V9   d   R# VP                   FB  p\+        V\        P,                  P.                  4      '       g   K/  W@P0                  9   g   KA   R# 	  R# )c                ól   € V ^8„  d   QhR\         P                  P                  P                  R\        /# rU   rƒ   )r   s   "r   r   Ú.ConstantFolder.is_impure.<locals>.__annotate__š   s(   € ÷ 	ñ 	¤e§h¡h§m¡m×&8Ñ&8ð 	¼Tñ 	r   c                 ó(  € V P                   \        P                  P                  P                  P
                  8H  ;'       dÑ    \        V P                  ^ ,          \        P                  P                  4      ;'       d”    RV P                  ^ ,          P                  9   ;'       dl    V P                  ^ ,          P                  R,          P                  \        P                  8H  ;'       d%    V P                  ^,          \        P                  8H  # )r   Úval)r[   r   ÚopsÚprimsÚconvert_element_typeÚdefaultrn   rm   r   r   r(   ÚdtypeÚint8Úbfloat16)r   s   &r   Úis_woq_int8_patternÚ5ConstantFolder.is_impure.<locals>.is_woq_int8_patternš   s¼   € à—‘œuŸy™yŸ™×CÑC×KÑKÑK÷ 3ð 3Ü˜tŸy™y¨�|¬U¯X©X¯]©]Ó;÷3ð 3à˜TŸY™Y q�\×.Ñ.Ñ.÷3ð 3ð —I‘I˜a•L×%Ñ% eÕ,×2Ñ2´e·j±jÑ@÷3ð 3ð —I‘I˜a•L¤E§N¡NÑ2ðr   TF)r[   r   r‰   ÚatenÚpermuterŒ   rl   ÚusersÚnextÚiterr8   rm   r3   Úquantized_decomposedÚdequantize_per_channelÚdequantize_per_tensorÚtensorr‹   Úno_fuseÚtorchaoÚdequantize_affinern   r   r   rP   )rQ   r   r�   ÚDEQUANT_OPSÚargs   &&   r   Ú	is_impureÚConstantFolder.is_impure™   sN  € õ	ñ   ×%Ò%à—‘œuŸy™yŸ~™~×5Ñ5×=Ñ=Ô=Ü˜Ÿ
™
“O qÔ(Ù'¬¬T°$·*±*Ó-=Ó(>×?Ò?äØ�I‰I�a�LØ×&Ñ&÷
ò 
ñ ô �I‰I×*Ñ*×AÑA×IÑIÜ�I‰I×*Ñ*×@Ñ@×HÑHÜ�I‰I×*Ñ*×@Ñ@×GÑGÜ�I‰I×*Ñ*×?Ñ?×GÑGÜ�I‰I×Ñ×/Ñ/ð
ˆð �;‰;˜+Ô%ñ ð —9”9ˆCÜ˜#œuŸx™xŸ}™}×-Ô-°#×9MÑ9MÖ2MÚñ ñ r   c                ó–   <€ V ^8„  d   QhRS[ S[P                  P                  S[S[P                  P                  ,          3,          /# r_   )rX   r   r   r   r4   )r   r@   s   "€r   r   rA   È   s3   ø€ ÷ #ñ #©T±%·(±(·-±-ÁÁeÇhÁhÇmÁmÕATÐ2TÕ-Uñ #r   c                óÀ  aaa€ \         P                  ! \        4      o\        \        P
                  P                  ,          ! 4       o\        \        \        V P                  P                  P                  4      4      4      p\        V P                  P                  P                  4       F®  oSP                  R 8X  d   K  R VVV3R llp\        P                  ! \        P
                  P                  VSP                   SP"                  34       \%        SP&                  4      ^8X  g   Kƒ  VSP&                  9   g   K–  SS,          P)                  S4       K°  	  S# )Úoutputc                óP   € V ^8„  d   QhR\         P                  P                  RR/# )r   r   r   N©r   r   r   )r   s   "r   r   Ú@ConstantFolder.node_to_last_non_output_use.<locals>.__annotate__Ñ   s"   € ÷ 6ñ 6œUŸX™XŸ]™]ð 6¨tñ 6r   c                 ól   <€ V S9   d   R # SP                  V 4       SS,          P                  V 4       R # rC   )ÚaddÚappend)r   Úlast_non_output_user   Ú	seen_usess   &€€€r   Úadd_useÚ;ConstantFolder.node_to_last_non_output_use.<locals>.add_useÑ   s-   ø€ Ø˜)Ô#Ùà—‘˜cÔ"Ø# DÕ)×0Ñ0°Ö5r   )rG   Údefaultdictr4   r   r   r   r   r•   r–   ÚreversedrY   r#   rk   r[   rz   Útree_map_only_rm   r|   rl   r”   rª   )rQ   Úoutput_noder­   r«   r   r¬   s   &  @@@r   rL   Ú*ConstantFolder.node_to_last_non_output_useÈ   sæ   ú€ Ü)×5Ò5´dÓ;ÐÜœuŸx™xŸ}™}Ö-Ó/ˆ	Üœ4¤¨¯©×):Ñ):×)@Ñ)@Ó AÓBÓCˆä˜TŸ[™[×.Ñ.×4Ñ4Ö5ˆDØ�{‰{˜hÔ&Ù÷6ò 6ô ×!Ò!¤%§(¡(§-¡-°¸4¿9¹9ÀdÇkÁkÐ:RÔSô �4—:‘:‹ !Ö#¨°t·z±zÖ(AØ# DÕ)×0Ñ0°Ö6ñ! 6ð$ #Ð"r   c                óN   <€ V ^8„  d   QhRS[ P                  P                  RS[/# rU   rw   )r   r@   s   "€r   r   rA   á   s'   ø€ ÷ ]ñ ]™UŸX™XŸ]™]ð ]©sñ ]r   c                ó,	  <a € VP                   R 8X  dR   R V 3R llp\        P                  ! \        P                  P
                  W!P                  4       \        S
S `!  V4      # S P                  V4      w  r4\        P                  ! V/ VB p\        ;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 P                  # VP                  R8X  d6   VP                   \        P                  P                   8X  d   S P                  # VP                  R8X  d   VP"                  R8X  d   S P                  # S P$                  '       dc   \'        VS P(                  4      '       gG   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       g   S P                  # \+        VP                   \        P,                  P.                  4      '       d@   \        P0                  P2                  VP                   P4                  9   d   S P                  # VP                  R8X  dA   \+        VP                   \        P,                  P6                  4      '       d   S P                  # S P9                  V4      p\+        V\        P:                  P<                  4      '       d   V# VS P                  8X  d   S P                  # \'        VS P(                  4      '       Eg˜   \+        V\        P>                  4      '       g   VS P@                  8X  Edf   VS P@                  8w  d   VPB                  PD                  R	8X  d   V# S PG                  V4      '       g   V# S PI                  V4      '       d   S P                  # S PK                  W4       \        P                  ! VP                  / VPL                  B pV FN  p\+        V\        P                  P
                  4      '       g   K/  S PN                  V;;,          ^,          uu&   KP  	  S PP                  PS                  V. 4       FL  p	S PN                  V	,          \U        V	PV                  4      8X  g   K0  S PX                  P[                  V	R
4       KN  	  V# )r¤   c                óP   € V ^8„  d   QhR\         P                  P                  RR/# )r   rŸ   r   Nr¦   )r   s   "r   r   Ú-ConstantFolder.run_node.<locals>.__annotate__å   s"   € ÷ 3ñ 3œUŸX™XŸ]™]ð 3¨tñ 3r   c                 ó:   <€ SP                   SP                  V &   R # rC   )rK   r}   )rŸ   rQ   s   &€r   Úset_envÚ(ConstantFolder.run_node.<locals>.set_envå   s   ø€ Ø $× 2Ñ 2�—‘˜“r   c              3   ó”   <"  € T F=  p\        SP                  4      \        V4      8H  ;'       d    SP                  V8H  x € K?  	  R # 5irC   )ÚtyperK   )rg   Úinput_rQ   s   & €r   ri   Ú*ConstantFolder.run_node.<locals>.<genexpr>ò   sB   øé € ð 
á*�ô �×#Ñ#Ó$¬¨V«Ñ4×UÐU¸×9KÑ9KÈvÑ9UÔUÛ*ùs
   ƒ,A°ATFrb   Ú&triton_kernel_wrapper_functional_proxyc              3   óV   "  € T F  p\        V\        P                  4      x € K!  	  R # 5irC   )rn   r   r   )rg   Úes   & r   ri   r¾     s    é € ÐNÑ=M¸œ
 1¤e§l¡l×3Ð3Ó=Mùs   ‚')r(   N).r[   rz   r±   r   r   r   rm   rD   ry   Úfetch_args_kwargs_from_envr{   ro   rK   r7   r’   Ú_efficientzerotensorrŒ   r   r=   r8   r3   rn   Ú_opsÚ
OpOverloadÚTagÚnondeterministic_seededÚtagsÚHigherOrderOperatorr€   Ú_CÚScriptObjectr   rN   Údevicer¼   Úinsertable_tensor_checkr    Úadd_node_replacementr|   rI   rM   Úgetrl   r”   rF   Úpop)rQ   r   r¹   rm   r|   Úflattened_inputsÚoutr~   ÚnÚ	to_deleterR   s   f&        €r   ry   ÚConstantFolder.run_nodeá   s\  ù€ Ø�;‰;˜(Ô"÷3ð 3ô ×!Ò!¤%§(¡(§-¡-°¿)¹)ÔDÜ‘7Ñ# DÓ)Ð)à×6Ñ6°tÓ<‰ˆÜ!×1Ò1°4ÐB¸6ÑBÐ÷
 ‹3ô 
á*ó
�3�3Š3ô 
á*ó
÷ 
ò 
ð ×%Ñ%Ð%ð �G‰G�Ô&Ø—‘œt×8Ñ8×@Ñ@Ô@à×%Ñ%Ð%ð �G‰G�Ô&Ø—	‘	ÐEÔEà×%Ñ%Ð%ð ×"×"Ð"Ü# D¨$×*DÑ*D×EÒEß“CÑNÑ=MÓN—C—C’CÑNÑ=MÓN×NÒNà×%Ñ%Ð%ô �t—{‘{¤E§J¡J×$9Ñ$9×:Ò:Ü—	‘	×1Ñ1°T·[±[×5EÑ5EÔEà×%Ñ%Ð%à�7‰7�oÔ%¬*Ø�K‰KœŸ™×7Ñ7÷+
ò +
ð ×%Ñ%Ð%à× Ñ  Ó&ˆä�cœ5Ÿ8™8×0Ñ0×1Ò1ØˆJà�$×$Ñ$Ô$Ø×%Ñ%Ð%ä˜t T×%?Ñ%?×@Ó@Ü�sœEŸL™L×)Ò)¨S°D×4GÑ4GÕ-Gà�d×)Ñ)Ô)¨c¯j©j¯o©oÀÔ.GØ�
à×/Ñ/°×4Ò4Ø�
à�~‰~˜d×#Ò#Ø×)Ñ)Ð)à×%Ñ% dÔ0ä"(×"8Ò"8¸$¿)¹)Ð"SÀtÇ{Á{Ñ"SÐã(�Ü! !¤U§X¡X§]¡]×3Ò3Ùà×"Ñ" 1×%¨Õ*Õ%ñ	 )ð "×3Ñ3×7Ñ7¸¸bÖA�	Ø×%Ñ% iÕ0´C¸	¿¹Ó4HÖHØ×*Ñ*×.Ñ.¨y¸$Ö?ñ Bð ˆ
r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# )r   rš   r   )r   r   r5   )r   r@   s   "€r   r   rA   @  s   ø€ ÷ ñ ©e¯l©lð ¹tñ r   c                ó   € R # )Tr"   )rQ   rš   s   &&r   rÍ   Ú&ConstantFolder.insertable_tensor_check@  s   € Ùr   c                óf   <€ V ^8„  d   QhRS[ P                  P                  RS[ P                  RR/# )r   r   rš   r   N)r   r   r   r   )r   r@   s   "€r   r   rA   C  s/   ø€ ÷ .ñ .©¯©¯©ð .ÁÇÁð .ÐQUñ .r   c                ó"   € W P                   V&   R # rC   )rF   )rQ   r   rš   s   &&&r   rÎ   Ú#ConstantFolder.add_node_replacementC  s   € Ø'-×Ñ˜tÓ$r   c                ó    <€ V ^8„  d   QhRS[ /# r_   )r   )r   r@   s   "€r   r   rA   F  s   ø€ ÷ ,ñ ,‘Sñ ,r   c                óJ   <€ / pV P                  V4       \        SV `	  VR 7      # ))Úinitial_env)Úinsert_placerholder_valuesrD   Úrun)rQ   r}   rR   s   & €r   rà   ÚConstantFolder.runF  s'   ø€ Ø(*ˆØ×'Ñ'¨Ô,Ü‰w‰{ sˆ{Ó+Ð+r   c                ób   <€ V ^8„  d   QhRS[ S[P                  P                  S[3,          RR/# )r   r}   r   N)rX   r   r   r   r   )r   r@   s   "€r   r   rA   K  s-   ø€ ÷ -ñ -©d±5·8±8·=±=Á#Ð3EÕ.Fð -È4ñ -r   c                óT  € V P                   P                  P                  R R7       F  pV P                  W&   K  	  V P                  f   R# V P                   P                  P
                   F8  pVP                  V P                  ;'       g    R9   g   K*  V P                  W&   K:  	  R# )r!   ©r7   Nr"   )rY   r#   Ú
find_nodesrK   r3   rk   r   rN   )rQ   r}   rÓ   s   && r   rß   Ú)ConstantFolder.insert_placerholder_valuesK  s‚   € Ø—‘×"Ñ"×-Ñ-°Ð-Ö?ˆAØ×'Ñ'ˆC‹Fñ @à×%Ñ%Ò-ÙØ—‘×"Ñ"×(Ô(ˆAØ�v‰v˜$×4Ñ4×:Ð:¸Ö;Ø×,Ñ,�“ó )r   )	rN   r3   rP   rF   rI   r=   r>   rK   rM   )FNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rE   r\   rO   rt   r€   r    rL   ry   rÍ   rÎ   rà   rß   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rR   r@   s   @@r   r:   r:   K   s†   ù‡ € ÷<õ <÷.	ð 	÷ð ÷,ð ÷#ó #÷"-ð -÷^#ð #÷2]ó ]÷~ð ÷.ð .÷,ó ,÷
-÷ -ð -r   r:   c                ó¾   € V ^8„  d   QhR\         P                  P                  R\        \        \         P                  P
                  .\        3,          ,          RR/# )r   r   Úconstraint_fnr   N)r   r   r   r   r   r   r5   )r   s   "r   r   r   U  sI   € ÷ ñ Ü�‰×ÑðäœH¤e§h¡h§m¡m _´dÐ%:Õ;Õ<ðð 
ñr   c                 ó4  € \         P                  P                  P                  4       ;_uu_ 4        \	        V R R7      pVP                  4        VP                  P                  4        F%  w  r4Ve   V! V4      '       g   K  \        WV4       K'  	  . pV P                  P                  RR7       F`  p\        VP                  4      ^ 8X  g   K  \        WP                  4      '       d   \        WP                  4       VP!                  V4       Kb  	  V F  pV P                  P#                  V4       K   	  V P                  P%                  4        V P                  P'                  4        V P)                  4        RRR4       R#   + '       g   i     R# ; i)T)r=   Nr    rä   )r   ÚutilsÚ_python_dispatchÚ_disable_current_modesr:   rà   rF   Úitemsr1   r#   rå   rl   r”   r$   r[   Údelattrrª   r*   Úeliminate_dead_codeÚlintÚ	recompile)r   rï   Úcfr   r   Úerased_paramss   &&    r   Úconstant_foldrû   U  s  € ô 
�‰×	%Ñ	%×	<Ñ	<×	>Õ	>Ü˜B°$Ô7ˆØ
�‰Œà ×2Ñ2×8Ñ8Ö:‰NˆDØÒ(±¸t×1DÒ1DÙÜ& r°Ö:ñ ;ð
 ˆØ—H‘H×'Ñ'¨:Ð'Ö6ˆDÜ�4—:‘:‹ !Ö#Ü˜2Ÿ{™{×+Ò+Ü˜B§¡Ô,Ø×$Ñ$ TÖ*ñ	 7ó "ˆDØ�H‰H×Ñ Ö%ñ "ð 	�‰×$Ñ$Ô&Ø
�‰�‰ŒØ
�‰Œ÷+ 
?×	>×	>Ò	>ús   ±AFÂ A
FÃB-FÆF	c                ó  € V ^8„  d   QhR\         P                  P                  R\        R\        \
        \        ,          ,          R\        \        \         P                  P                  .\        3,          ,          RR/# r<   r?   )r   s   "r   r   r   q  sf   € ÷ 1ñ 1Ü�‰×Ñð1äð1ô $¤D¬¥IÕ.ð1ô #¤8¬U¯X©X¯]©]¨O¼TÐ,AÕ#BÕCð	1ð
 
ñ1r   c           	      ó0  € \         P                  P                  P                  4       ;_uu_ 4        \	        V VVVR 7      pVP                  4        V P                  P                   F�  pVe(   V! V4      '       d   \        VP                  \        &   K.  \        WR4      '       g!   WTP                  9   g   WTP                  9   d   \        VP                  \        &   Kx  \        VP                  \        &   K‘  	  RRR4       R#   + '       g   i     R# ; i))r=   r3   r>   N)r   rñ   rò   ró   r:   rà   r#   rk   Ú
MODULE_TAGr(   ÚMETA_TAGr8   rF   rI   ÚCONST_MODULE_TAG)r   r=   r3   r>   rù   r   s   &&&&  r   Úconstant_graph_tagr  q  sÀ   € ô 
�‰×	%Ñ	%×	<Ñ	<×	>Õ	>ÜØØ/Ø"7Ø!5ô	
ˆð 	�‰Œà—H‘H—N”NˆDØ#Ò/Ñ4HÈ×4NÒ4NÜ&0�—	‘	œ(Ñ#Ùä ×<Ò<Ø×/Ñ/Ô/Ø×+Ñ+Ô+ä&6�—	‘	œ(Ó#ä&0�—	‘	œ(Ó#ñ #÷ 
?×	>×	>Ò	>ús   ±A
DÁ<A>DÄD	c                ó2  € V ^8„  d   QhR\         P                  P                  R\        R\        \
        \        ,          ,          R\        \        \         P                  P                  .\        3,          ,          R\         P                  P                  /# )r   r   r=   r3   r>   r   r?   )r   s   "r   r   r   Ž  sp   € ÷ 3ñ 3Ü�‰×Ñð3äð3ô $¤D¬¥IÕ.ð3ô #¤8¬U¯X©X¯]©]¨O¼TÐ,AÕ#BÕCð	3ô
 ‡X�X×Ññ3r   c                óê  a€ \        WW#4       R R lpV P                  P                   F9  pVP                  R8X  g   VP                  T;'       g    R9   g   K1  V! V4       K;  	  \
        P                  P                  4       p/ o. pV P                  P                   F‡  pVP                  \        ,          \        8X  d   K%  VP                  VV3R l4      pVSV&   VP                   F7  p	V	P                  \        ,          \        8X  g   K%  VP                  V4        K…  	  K‰  	  VP                  \        V4      4       VP!                  4        \
        P                  P#                  W4      p
V
# )zf
Construct a GraphModule which corresponds to the part which could be
constant folded in provided gm.
c                óX   € V ^8„  d   QhR\         P                  P                  R\        /# rU   rV   )r   s   "r   r   Ú0run_and_get_constant_graph.<locals>.__annotate__�  s"   € ÷ ñ ”E—H‘H—M‘Mð ¤dñ r   c                 ó¶   € R pV P                    F'  pVP                  \        ,          \        8X  g   K%  Rp M	  V'       g   \        V P                  \        &   V# )FT)r”   r(   rÿ   r   rþ   )r   Úused_to_foldÚus   &  r   ÚuntagÚ)run_and_get_constant_graph.<locals>.untag�  sH   € ØˆØ—”ˆAØ�v‰v”hÕÔ#3Ö3Ø#�Ùñ ÷ Ü",ˆD�I‰I”hÑØÐr   Úgetattrc                 ó   <€ SV ,          # rC   r"   )ÚxÚnode_remappings   &€r   Ú<lambda>Ú,run_and_get_constant_graph.<locals>.<lambda>µ  s
   ø€ °~ÀaÖ7Hr   r"   )r  r#   rk   r7   r   r   r   ÚGraphr(   rÿ   rþ   Ú	node_copyr”   rª   r¤   Útupler÷   r   )r   r=   r3   r>   r	  r   Ú	new_graphÚoutput_nodesÚnew_nodeÚuserÚnew_gmr  s   &&&&       @r   Úrun_and_get_constant_graphr  Ž  s  ø€ ô Ø
Ð4ôõð —‘—”ˆØ�7‰7�iÔ D§I¡IÐ2G×2MÐ2MÈ2Ö$NÙ�$ŽKñ ô —‘—‘Ó €Ià9;€NØ€LØ—‘—”ˆØ�9‰9”XÕ¤*Ô,Ùà×&Ñ& tÔ-HÓIˆØ'ˆ�tÑà—J”JˆDØ�y‰yœÕ"¤jÖ0Ø×#Ñ# HÔ-Úó ñ ð ×Ñ”U˜<Ó(Ô)Ø‡N�NÔÜ�X‰X×!Ñ! "Ó0€Fà€Mr   )NNrC   )TNN)rG   Útypingr   r   r   r   Útorch.utils._pytreerñ   Ú_pytreerz   Útorch._inductor.freezing_utilsr   Útorch.utils._ordered_setr   Ú%torchao.quantization.pt2e.graph_utilsr   r‰   r’   rÿ   rþ   r   r1   r8   r   ÚInterpreterr:   rû   r  r  r"   r   r   Ú<module>r!     sz   ðó ß *Ñ *ã ß $Ð $Ý DÝ /å Hà‡y�y‡~�~€ð
 €Ø€
Ø"Ð ÷',õTOôG-�U—X‘X×)Ñ)ô G-÷T÷81÷:3ñ 3r   