+
    –°³jBÊ ã                  ó:  a€ 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
HtHtHtHt ^ RIHt ^ RIHtHt ^ RIHtHtHtHtHt ^ RIHtHtHtHtHtH t  ^RI!H"t"H#t# ^R	I$H$t$ ^R
I%H&t&H't'H(t(H)t)H*t* ^RI+H,t,H-t- ^RI.H/t/H0t0 ^RI1H2t2H3t3 ]4! 0 ER-m4      t5]'       d+   ^ RI6H7t7 ^ RI8H9t9 ^RI:H;t; ^RI<H=t= ^RI>H?t? ^RI@HAtA ^RIBHCtC ]Pˆ                  ! ]E4      tF]PŽ                  ! RR7       ! R R4      4       tH]! RRR 7      tIR!]JR&    ! R" R#]4      tK ! R$ R%4      tL ! R& R']4      tM ! R( R)]L4      tN ! R* R+]L4      tO ! R, R-]L4      tP ! R. R/]P4      tQ ! R0 R1]P4      tRR2 R3 ltSR4 R5 ltTR6 R7 ltU ! R8 R94      tV ! R: R;]4      tWR< R= ltXER.w  tYtZt[t\t]]P¼                  R> R? l4       t_R@ RA lt`]PŽ                  ! RRB7       ! RC RD4      4       ta]PŽ                  ! RRB7       ! RE RF4      4       tb]PŽ                  ! RRB7       ! RG RH4      4       tcRI RJ ltdRK RL lteRM RN ltf ! RO RP]g4      thRQ RR ltiRS RT ltjRU RV ltkRW RX ltlRY RZ ltmR[ R\ ltnR] R^ ltoR_ R` ltpRa Rb ltqRc Rd ltrRe Rf ltsRg Rh lttRi Rj ltu]u! R4      tv]u! R4      tw]u! R4      tx]u! R4      ty]u! R4      tz]u! R4      t{Rk Rl lt|Rm Rn lt}Ro Rp lt~Rq Rr ltRs Rt lt€Ru Rv lt�Rw Rx lt‚Ry Rz ltƒ ! R{ R|]4      t„]PŽ                  ! RR7       ! R} R~4      4       t… ! R R€]4      t† ! R� R‚]4      t‡ ! Rƒ R„]4      tˆ ! R… R†]4      t‰]Š;QJ d    . R‡ ]‰EP                   4       F  NK  	  5M! R‡ ]‰EP                   4       4      tŒ]„EP                  ]†EP                   U u/ uF  p ]Ž! ]V EP                  4       4      V bK  	  up ]„EP                   ]‡EP                   U u/ uF  p ]Ž! ]V EP                  4       4      V bK  	  up ]„EP"                  ]ˆEP                   U u/ uF  p ]Ž! ]V EP                  4       4      V bK  	  up ]„EP$                  ]Œ U u/ uF  p ]Ž! ] V EP                  4       4      V bK  	  up /t“Rˆ]JR‰&   ]„EP                  ]†EP                   U u/ uF  q V  RŠ2bK
  	  up ]„EP                   ]‡EP                   U u/ uF  q V  RŠ2bK
  	  up ]„EP"                  ]ˆEP                   U u/ uF  q V  RŠ2bK
  	  up ]„EP$                  / ]Œ U u/ uF  q V  RŠ2bK
  	  up CR‹RŒR�RŽ/C/t”R�]JR�&   ]”EP+                  4        FE  w  t–t—]˜! ]—4      ]˜! ]“]–,          EP3                  4       4      8w  g   K1  ]š! ]–EP6                   R‘24      h	  R’ R“ ltœ]P¼                  R” R• l4       t�]R–R—]ER/,          ]žR–,          ]Ÿ] R–3,          .R–3,          t¡R˜]JR™&   ]PŽ                  ! RR7       ! Rš R›4      4       t¢Rœ R� lt£Rž RŸ lt¤R  R¡ lt¥R¢ R£ lt¦. ]¦! R¤R¥] EPN                  ]i4      N]¦! R¦RŒ] EPP                  ]|4      N]¦! R§R¨] EPR                  ]i4      N]¦! R©Rª] EPT                  ]€4      N]¦! R«Rª] EPT                  ]€4      N]¦! RR¬] EPV                  ]v4      N]¦! RR¬] EPV                  ]w4      N]¦! RR¬] EPV                  ]x4      N]¦! RR¬] EPV                  ]y4      N]¦! RR¬] EPV                  ]z4      N]¦! RR¬] EPV                  ]{4      N]¦! R­R®] EPX                  ]i4      N]¦! R¯R°] EPZ                  ]i4      N]¦! R±R²] EP\                  ]�4      N]¦! R³R´] EP^                  ]‚4      N]¦! RµR´] EP^                  ]ƒ4      N]¦! R¶R·] EP`                  ]}4      N]¥! R¸R¹]EPb                  ]j4      N]¥! RºR¹]EPb                  ]k4      N]¥! R»R¼]EPd                  ]j4      N]¥! R½R¼]EPd                  ]k4      N]¥! R¾R¿]EPf                  ]j4      N]¥! RÀR¿]EPf                  ]k4      N]¥! RÁRÂ]EPh                  ]j4      N]¥! RÃRÂ]EPh                  ]k4      N]¥! RÄRÅ]EPj                  ]j4      N]¥! RÆRÅ]EPj                  ]k4      N]¥! RÇRÈ]EPl                  ]l4      N]¥! RÉRÈ]EPl                  ]m4      N]¥! RÊRË]EPn                  ]i4      N]¥! RÌRÍ]EPp                  ]i4      N]¥! RÎRÏ]EPr                  ]i4      N]¥! RÐRÑ]EPt                  ]i4      N]¥! RÒRÓ]EPv                  ]i4      N]¥! RÔRÕ]EPx                  ]j4      N]¥! RÖRÕ]EPx                  ]k4      N]¥! R×RØ]EPz                  ]j4      N]¥! RÙRØ]EPz                  ]k4      N]¥! RÚRÛ]EP|                  ]j4      N]¥! RÜRÛ]EP|                  ]k4      N]¥! RÝRÞ]EP~                  ]j4      N]¥! RßRÞ]EP~                  ]k4      N]¥! RàRá]EP€                  ]j4      N]¥! RâRá]EP€                  ]k4      N]¥! RãRä]EP‚                  ]i4      N]¥! RåRæ]EP„                  ]i4      N]¥! RçRè]EP†                  ]j4      N]¥! RéRê]EPˆ                  ]j4      N]¥! RëRì]EPŠ                  ]j4      N]¥! RíRî]EPŒ                  ]j4      N]¥! RïRð]EPŽ                  ]j4      N]¥! RñRò]EP�                  ]j4      N]¥! RóRô]EP’                  ]j4      N]¥! RõRö]EP”                  ]j4      N]¥! R÷Rø]EP–                  ]j4      N]¥! RùRú]EP˜                  ]j4      N]¥! RûRü]EPš                  ]j4      N]¥! RýRü]EPš                  ]k4      N]¥! RþRÿ]EPœ                  ]j4      N]¥! ER Rÿ]EPœ                  ]k4      N]¥! ERER]EPž                  ]j4      N]¥! ERER]EP                   ]j4      N]¥! ERER]EP¢                  ]i4      N]¥! ERER]EP¤                  ]j4      N]¥! ER	ER]EP¤                  ]k4      N]¥! ER
ER]EP¦                  ]j4      N]¤! ERER]EP¨                  ]i4      N]¤! ERER]EPª                  ]j4      N]¤! ERER]EP¬                  ]q4      N]¤! ERER]EP¬                  ]r4      N]£! ERER]EP®                  ]i4      N]£! R¸ER]EP°                  ]j4      N]£! R¾ER]EP²                  ]p4      N]£! RÀER]EP²                  ]p4      N]£! ERER]EP´                  ]o4      N]£! ERER]EP¶                  ]n4      N]£! ERER]EP¶                  ]s4      N]£! ERER]EP¸                  ]t4      N]£! RçER]EPº                  ]j4      N]£! RëER]EP¼                  ]p4      NtßER]JER&   ]P¼                  ER ER l4       tà ! ER  ER!]á4      tâ ! ER" ER#]â4      tã ! ER$ R–]âER%7      täER& ER' ltå]áEPÌ                  tçER(tèER) ER* lté^ER+I!Hêtê ^ER,IëHìtì R# u up i u up i u up i u up i u up i u up i u up i u up i (0  a§  
Core variable tracking functionality for Dynamo. This module defines the fundamental
classes and systems used to track and manage variables during Dynamo's operation.

The module provides:
1. VariableTracker - The base class for tracking variables during compilation
2. MutationType system - Classes for tracking and managing mutations to variables
3. Source type management - Utilities for tracking variable origins and scope
4. Variable state management - Tools for managing variable state and transformations

These components form the foundation of Dynamo's variable handling system,
enabling accurate tracking and transformation of Python code into optimized
computations.
)ÚannotationsN)ÚCallableÚ	ItemsViewÚKeysViewÚ
ValuesView)Ú
ContextVar)ÚEnumÚIntFlag)ÚAnyÚ
NamedTupleÚNoReturnÚTYPE_CHECKINGÚ	TypeAlias)Úget_type_slotsÚhas_slotÚPyMappingSlotsÚPyNumberSlotsÚPySequenceSlotsÚPyTypeSlots)Úgraph_break_hintsÚ	variables)Úcurrent_scope_id)ÚObservedAttributeErrorÚraise_observed_exceptionÚraise_type_errorÚunimplementedÚUnsupported)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚSource)Úformat_source_rangeÚistypeÚ__eq__Ú__ne__Ú__lt__Ú__le__Ú__gt__Ú__ge__)ÚGuard)ÚNode)Ú	PyCodegen)ÚSideEffects)ÚInstructionTranslatorBase)ÚConstantVariable)ÚUserFunctionVariableT)Úfrozenc                  óf   € ] tR t^Gt$ RtR]R&   R]R&   RtR]R&   RtR]R	&   RtR]R
&   R R lt	Rt
R# )ÚSourceLocationzMSource position of the bytecode instruction that generated a VariableTracker.ÚstrÚfilenameÚintÚlinenoNú
int | NoneÚ
end_linenoÚ
col_offsetÚend_col_offsetc               ó   € V ^8„  d   QhRR/# ©é   Úreturnr3   © )Úformats   "Ú]/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/variables/base.pyÚ__annotate__ÚSourceLocation.__annotate__Q   s   € ÷ ñ ˜ñ ó    c                	ó:  € R V P                    RV P                   R2p\        V P                   V P                  V P                  V P                  V P
                  4      pV'       d5   V\        P                  ! VP                  R4      R4      R,           ,          pV# )z  File "z", line Ú
z    )	r4   r6   r!   r8   r9   r:   ÚtextwrapÚindentÚrstrip)ÚselfÚresultÚsources   &  rA   r@   ÚSourceLocation.formatQ   sz   € Ø˜DŸM™M˜?¨(°4·;±;°-¸rÐBˆÜ$Ø�M‰MØ�K‰KØ�O‰OØ�O‰OØ×Ñó
ˆ÷ Ø”h—o’o f§m¡m°DÓ&9¸6ÓBÀTÕIÕIˆFØˆrD   r?   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r8   r9   r:   r@   Ú__static_attributes__r?   rD   rA   r2   r2   G   s7   ‡ áWàƒMØƒKØ!€J�
Ó!Ø!€J�
Ó!Ø!%€N�JÓ%÷ñ rD   r2   Ú_vt_active_calls)Údefaultz'ContextVar[set[tuple[int, int]] | None]c                  ó"   € ] tR t^jtRt^ t^tRtR# )Ú
SourceTypeav  
This Enum divides VariableTracker into 2 cases, depending on the variable
it represents:
- already existed that Dynamo began tracking while introspection (Existing)
- is a new variable that is created during Dynamo introspection (New)

In general, we have these invariants:
1. for `VariableTracker` associated with `Existing`, its `source` field must not be None.
2. for `VariableTracker` associated with `New`, most of the time its
   `source` field is None, except for cases like side effect codegen for
   `AttributeMutationNew`, during which we generate a
   `LocalSource('tmp...')` for such variable, to facilitate codegen.
r?   N)rN   rO   rP   rQ   rR   ÚExistingÚNewrT   r?   rD   rA   rX   rX   j   s   † ñð €HØ
„CrD   rX   c                  ó&   € ] tR t^}tRtR R ltRtR# )ÚMutationTypezÕ
Base class for Variable.mutation_type. It encodes information about
1. The type of mutation Dynamo allows on the variable.
2. Whether the value represented by this variable already existed before
Dynamo tracing.
c               ó    € V ^8„  d   QhRRRR/# )r=   ÚtyprX   r>   ÚNoner?   )r@   s   "rA   rB   ÚMutationType.__annotate__…   s   € ÷ %ñ %˜Jð %¨4ñ %rD   c                	óÞ   € V\         P                  J d
   ^ V n        R# V\         P                  J d   \	        4       V n        R# \        RRV  RV 2RV R2R.\        P                  OR7       R# )	é    zUnsupported SourceTypezMutationType.__init__ Ú z"Dynamo does not support the type `Ú`z,This branch is not supposed to be reachable.©Úgb_typeÚcontextÚexplanationÚhintsN)rX   rY   ÚscoperZ   r   r   r   Ú
DYNAMO_BUG)rJ   r^   s   &&rA   Ú__init__ÚMutationType.__init__…   sl   € ð0 ”*×%Ñ%Ó%ØˆDŽJØ”J—N‘NÓ"Ü)Ó+ˆDŽJäØ0Ø0°°°a¸°uÐ=Ø@ÀÀÀQÐGàBðä&×1Ñ1ð÷	rD   )rj   N)rN   rO   rP   rQ   rR   rl   rT   r?   rD   rA   r\   r\   }   s   † ñ÷%ñ %rD   r\   c                  ó   € ] tR t^­t^ t^tRtR# )ÚAttrMutationKindr?   N)rN   rO   rP   rQ   ÚGENERIC_SETATTRÚINSTANCE_DICTrT   r?   rD   rA   ro   ro   ­   s   † ð €Oà„MrD   ro   c                  óJ   a € ] tR t^¶tRtR V 3R lltR R ltR R ltRtV ;t	# )	ÚValueMutationNewa¹  
This case of VariableTracker.mutation_type marker indicates
1. Dynamo allows mutation on the value itself (rather than its attributes).
2. The value is created by the bytecode Dynamo is tracing through.

For instance, Dynamo could model a newly created list with this marker,
indicating that while we need to model mutations to this list, we don't have
to emit bytecode for these mutations if the list doesn't escape into the
Python world.
c               ó   € V ^8„  d   QhRR/# ©r=   r>   r_   r?   )r@   s   "rA   rB   ÚValueMutationNew.__annotate__Â   s   € ÷ )ñ )˜$ñ )rD   c                	óB   <€ \         SV `  \        P                  4       R # ©N)Úsuperrl   rX   rZ   ©rJ   Ú	__class__s   &€rA   rl   ÚValueMutationNew.__init__Â   s   ø€ Ü‰ÑœŸ™Ö(rD   c               ó   € V ^8„  d   QhRR/# )r=   r>   r5   r?   )r@   s   "rA   rB   rv   Å   s   € ÷ ñ ˜#ñ rD   c                	ó   € \        V 4      # rx   )Úid©rJ   s   &rA   Ú__hash__ÚValueMutationNew.__hash__Å   s   € Ü�$‹xˆrD   c               ó    € V ^8„  d   QhRRRR/# )r=   ÚotherÚobjectr>   Úboolr?   )r@   s   "rA   rB   rv   È   s   € ÷ ñ ˜Fð  tñ rD   c                	ó   € WJ # rx   r?   )rJ   r„   s   &&rA   r#   ÚValueMutationNew.__eq__È   s
   € Øˆ}ÐrD   r?   )
rN   rO   rP   rQ   rR   rl   r�   r#   rT   Ú__classcell__©r{   s   @rA   rs   rs   ¶   s!   ø† ñ	÷)ð )õ÷ó rD   rs   c                  óB   a € ] tR t^Ìt$ RtR]R&   RR V 3R llltRtV ;t# )ÚValueMutationExistinga´  
This case of VariableTracker.mutation_type marker indicates
1. Dynamo allows mutation on the value itself (rather than its attributes).
2. The value exists before Dynamo tracing started.

For instance, Dynamo could model a pre-existing list with this marker,
indicating that if we encounter mutations to this list, we need to buffer
and re-apply those mutations after the graph runs, since the list might be
used afterwards in Python.
r†   Úis_modifiedc               ó    € V ^8„  d   QhRRRR/# )r=   r�   r†   r>   r_   r?   )r@   s   "rA   rB   Ú"ValueMutationExisting.__annotate__Ý   s   € ÷ 'ñ ' Dð '°Tñ 'rD   c                	óN   <€ \         SV `  \        P                  4       Wn        R # rx   )ry   rl   rX   rY   r�   )rJ   r�   r{   s   &&€rA   rl   ÚValueMutationExisting.__init__Ý   s   ø€ Ü‰Ñœ×,Ñ,Ô-Ø&ÖrD   )r�   ©F)	rN   rO   rP   rQ   rR   rS   rl   rT   r‰   rŠ   s   @rA   rŒ   rŒ   Ì   s   ø‡ ñ	ð Ó÷'÷ 'ð 'rD   rŒ   c                  ó   € ] tR t^âtRtRtR# )ÚAttributeMutationzt
This case of VariableTracker.mutation_type marker indicates that Dynamo
allows mutation on the value's attributes.
r?   N©rN   rO   rP   rQ   rR   rT   r?   rD   rA   r”   r”   â   s   † õrD   r”   c                  ó2   a € ] tR t^étRtR V 3R lltRtV ;t# )ÚAttributeMutationExistinga¤  
This case of VariableTracker.mutation_type marker indicates
1. Dynamo allows mutation on the value's attributes.
2. The value exists before Dynamo tracing started.

For instance, Dynamo could model a pre-existing object with this marker,
indicating that if we encounter mutations to this object, we need to buffer
then re-apply those mutations after the graph runs, since the object might
be used afterwards in Python.
c               ó   € V ^8„  d   QhRR/# ru   r?   )r@   s   "rA   rB   Ú&AttributeMutationExisting.__annotate__õ   s   € ÷ .ñ .˜$ñ .rD   c                	óB   <€ \         SV `  \        P                  4       R # rx   )ry   rl   rX   rY   rz   s   &€rA   rl   Ú"AttributeMutationExisting.__init__õ   s   ø€ Ü‰Ñœ×,Ñ,Ö-rD   r?   ©rN   rO   rP   rQ   rR   rl   rT   r‰   rŠ   s   @rA   r—   r—   é   s   ø† ñ	÷.ö .rD   r—   c                  ó6   a € ] tR t^ùtRtRR V 3R llltRtV ;t# )ÚAttributeMutationNewa¨  
This case of VariableTracker.mutation_type marker indicates
1. Dynamo allows mutation on the value's attributes.
2. The value is created by the bytecode Dynamo is tracing through.

For instance, Dynamo could model a newly created object with this marker,
indicating that while we need to model mutations to this object, we don't
have to emit bytecode for these mutations if the object doesn't escape into
the Python world.
c               ó    € V ^8„  d   QhRRRR/# )r=   Ú
cls_sourceúSource | Noner>   r_   r?   )r@   s   "rA   rB   Ú!AttributeMutationNew.__annotate__  s   € ÷ %ñ % =ð %¸Dñ %rD   c                	óN   <€ \         SV `  \        P                  4       Wn        R # rx   )ry   rl   rX   rZ   r    )rJ   r    r{   s   &&€rA   rl   ÚAttributeMutationNew.__init__  s   ø€ Ü‰ÑœŸ™Ô(Ø$ŽrD   )r    rx   rœ   rŠ   s   @rA   rž   rž   ù   s   ø† ñ	÷%÷ %ð %rD   rž   c               ó    € V ^8„  d   QhRRRR/# )r=   Úscope_idr5   r>   r†   r?   )r@   s   "rA   rB   rB   
  s   € ÷ ñ  #ð ¨$ñ rD   c                ó   € V ^8H  # )é   r?   )r¦   s   &rA   Ú_is_top_level_scoper©   
  s   € Ø�q‰=ÐrD   c               ó    € V ^8„  d   QhRRRR/# )r=   Úmr\   r>   r†   r?   )r@   s   "rA   rB   rB     s   € ÷ 	ñ 	˜<ð 	¨Dñ 	rD   c                óZ   € \        4       p\        V4      '       d   R # V P                  V8H  # )T)r   r©   rj   )r«   r¦   s   & rA   Úis_side_effect_safer­     s)   € ÜÓ!€Hô
 ˜8×$Ò$Ùà�7‰7�hÑÐrD   c               ó    € V ^8„  d   QhRRRR/# )r=   ÚobjÚVariableTrackerr>   Útyper?   )r@   s   "rA   rB   rB     s   € ÷ 
ñ 
˜ð 
°4ñ 
rD   c                óŒ   €  V P                  4       #   \         d'    \        R T  R2R. \        P                  OR7        R# i ; i)zUnsupported python_type() callz! does not implement python_type()zhThis VariableTracker does not implement python_type(), which is required for object protocol operations.re   N)Úpython_typeÚNotImplementedErrorr   r   rk   )r¯   s   &rA   Úmaybe_get_python_typerµ     sW   € ð
Ø�‰Ó Ð øÜô 	
ÜØ4Ø�eÐ<Ð=ð@ðÜ"×-Ñ-ð÷	
ð 	
ð	
ús   ‚ ’-AÁAc                  ó   € ] tR tRtRtRtR# )ÚNO_SUCH_SUBOBJi)  z;Sentinel indicating no concrete Python object is available.r?   Nr•   r?   rD   rA   r·   r·   )  s   † ÝErD   r·   c                  ó*   € ] tR tRtRt^t^t^t^tRt	R# )ÚMethodFlagsi-  zËCalling convention for a `Method` handler, mirroring CPython's
PyMethodDef ml_flags. `call_method` enforces arity from these before
invoking the handler, centralizing the raise_args_mismatch boilerplate.r?   N)
rN   rO   rP   rQ   rR   ÚVARARGSÚKEYWORDSÚNOARGSÚOrT   r?   rD   rA   r¹   r¹   -  s   † ñOð €GØ€HØ€FØ	„ArD   r¹   c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RR
RR/# )r=   Úvtr°   Útxr-   Únamer3   Úflagsr¹   Úargsr
   Úkwargsr>   r_   r?   )r@   s   "rA   rB   rB   8  sW   € ÷ Yñ YØðYà!ðYð ðYð ð	Yð
 ðYð ðYð 
ñYrD   c                óò  € \        V4      pV P                  4        R V 2pV'       d,   V\        P                  ,          '       g   \	        W R24       V\        P
                  \        P                  ,          ,          '       dr   V\        P
                  ,          '       d   V'       d   \	        W RV R24       V\        P                  ,          '       d   V^8w  d   \	        W RV R24       R# R# R# R# )Ú.z() takes no keyword argumentsz() takes no arguments (z given)z() takes exactly one argument (N)ÚlenÚpython_type_namer¹   r»   r   r¼   r½   )r¿   rÀ   rÁ   rÂ   rÃ   rÄ   ÚnÚqualnames   &&&&&&  rA   Ú_check_method_arityrË   8  sÅ   € ô 	ˆD‹	€AØ×%Ñ%Ó'Ð(¨¨$¨Ð0€Hß�uœ{×3Ñ3×3Ô3Ü˜˜zÐ)FÐGÔHØ”×"Ñ"¤[§]¡]Õ2×3Ô3Ø”;×%Ñ%×%Ô%¯$Ü˜R :Ð-DÀQÀCÀwÐ!OÔPØ”;—=‘=× Ô  Q¨!¤VÜ˜R :Ð-LÈQÈCÈwÐ!WÖXñ &,Ñ ñ 4rD   c               ó$   € V ^8„  d   QhRRRRRR/# )r=   r³   r±   rÁ   r3   r>   r¹   r?   )r@   s   "rA   rB   rB   T  s!   € ÷ ñ  dð °#ð ¸+ñ rD   c                óv  € ^ RI p\        P                  \        P                  ,          p\	        WR4      pVf   RM.VP
                  P                  P                  P                  V4      pVf   V# \        ^ 4      pV\        ,          '       d   V\        P                  ,          pV\        ,          '       d   V\        P                  ,          pV\        \        ,          ,          '       d   V\        P                  ,          pV\        ,          '       d   V\        P                  ,          pT;'       g    T# )zÜArity convention for `python_type.name`, read from its CPython
PyMethodDef.ml_flags. Falls back to VARARGS|KEYWORDS when python_type has no
such attribute or it carries no ml_flags (slot wrappers, pure-Python
functions).N)Útorchr¹   rº   r»   ÚgetattrÚ_CÚ_dynamoÚ
eval_frameÚget_method_ml_flagsÚ_METH_NOARGSr¼   Ú_METH_Or½   Ú_METH_VARARGSÚ_METH_FASTCALLÚ_METH_KEYWORDS)r³   rÁ   rÎ   rV   ÚfnÚmlrÂ   s   &&     rA   Ú_flags_from_ml_flagsrÛ   S  sÞ   € ó ä×!Ñ!¤K×$8Ñ$8Õ8€GÜ	� DÓ	)€BØ’‰ §¡×!1Ñ!1×!<Ñ!<×!PÑ!PÐQSÓ!T€BØ	‚zØˆÜ˜‹N€EØ	ŒL×ÔØ”×#Ñ#Õ#ˆØ	ŒG‡|„|Ø”—‘ÕˆØ	Œ]œ^Õ+×,Ô,Ø”×$Ñ$Õ$ˆØ	ŒN×ÔØ”×%Ñ%Õ%ˆØ×Ð�GÐrD   c               ó$   € V ^8„  d   QhRRRRRR/# )r=   r¿   r°   rÁ   r3   r>   r¹   r?   )r@   s   "rA   rB   rB   l  s!   € ÷ >ñ >˜_ð >°Cð >¸Kñ >rD   c                ó6   € \        V P                  4       V4      # )zuResolve the arity flags for method `name` from the VT's arity-reference
type (see VariableTracker.method_flags_type).)rÛ   Úmethod_flags_type)r¿   rÁ   s   &&rA   Ú_derive_method_flagsrß   l  s   € ô   × 4Ñ 4Ó 6¸Ó=Ð=rD   )Úslotsc                  ó2   € ] tR tRt$ RtR]R&   R R ltRtR# )	ÚMethodir  aü  Declarative entry in a VariableTracker's `tp_methods` table, analogous
to CPython's PyMethodDef.

Handlers have signature `(self, tx, args, kwargs)` and return the result
VariableTracker, or None to decline the call (the equivalent of the old
`super().call_method` fall-through) so `call_method` continues to the
object-protocol dispatch below. The method name is the tp_methods key this
entry is stored under; its arity convention is derived
on demand from that method's ml_flags (see _derive_method_flags).ú%Callable[..., VariableTracker | None]Úhandlerc               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )r=   r¿   r°   rÀ   r-   rÁ   r3   rÃ   r
   rÄ   r>   úVariableTracker | Noner?   )r@   s   "rA   rB   ÚMethod.__annotate__€  sF   € ÷ 
2ñ 
2àð
2ð &ð
2ð ð	
2ð
 ð
2ð ð
2ð 
 ñ
2rD   c                	óV   € \        W4      p\        WW6WE4       V P                  WWE4      # rx   )rß   rË   rä   )rJ   r¿   rÀ   rÁ   rÃ   rÄ   rÂ   s   &&&&&& rA   Ú__call__ÚMethod.__call__€  s+   € ô % RÓ.ˆÜ˜B D°Ô>Ø�|‰|˜B DÓ1Ð1rD   r?   N©rN   rO   rP   rQ   rR   rS   ré   rT   r?   rD   rA   râ   râ   r  s   ‡ ñIð 3Ó2÷
2ñ 
2rD   râ   c                  ó4   € ] tR tRt$ RtR]R&   RtR]R&   RtR# )	ÚGetSeti�  z©`tp_getset` entry, analogous to CPython's PyGetSetDef. `getter`
`(self, tx) -> VT | None` (None declines); `setter`
`(self, tx, value) -> VT | None`, None for read-only.rã   ÚgetterNú,Callable[..., VariableTracker | None] | NoneÚsetterr?   ©rN   rO   rP   rQ   rR   rS   rð   rT   r?   rD   rA   rí   rí   �  s   ‡ ñ=ð 2Ó1Ø;?€FÐ8×?rD   rí   c                  ó4   € ] tR tRt$ RtR]R&   RtR]R&   RtR# )	ÚMemberi—  z‰`tp_members` entry, analogous to CPython's PyMemberDef. Same shape as
GetSet; a distinct type so members and getsets never share a class.rã   rî   Nrï   rð   r?   rñ   r?   rD   rA   ró   ró   —  s   ‡ ñKð 2Ó1Ø;?€FÐ8×?rD   ró   c               ó    € V ^8„  d   QhRRRR/# )r=   Úaccessorz Callable[[Any], VariableTracker]r>   úCallable[..., VariableTracker]r?   )r@   s   "rA   rB   rB      s   € ÷ +ñ +Ø.ð+à#ñ+rD   c                ó   a € V 3R l# )z>Getter for a GetSet/Member whose value is an already-built VT.c                ó   <€ S! V 4      # rx   r?   ©rJ   rÀ   rõ   s   &&€rA   Ú<lambda>Úgetset_read.<locals>.<lambda>¤  s	   ø€ ™H TœNrD   r?   ©rõ   s   frA   Úgetset_readrý      s   ø€ ô +Ð*rD   c               ó    € V ^8„  d   QhRRRR/# )r=   rõ   zCallable[[Any], Any]r>   rö   r?   )r@   s   "rA   rB   rB   §  s    € ÷ Fñ FØ"ðFà#ñFrD   c                ó   a € V 3R l# )zBGetter that builds a VT from the raw value returned by `accessor`.c                ó<   <€ \         P                  VS! V 4      4      # rx   )r°   Úbuildrù   s   &&€rA   rú   Úgetset_build.<locals>.<lambda>«  s   ø€ œO×1Ñ1°"±h¸t³nÔErD   r?   rü   s   frA   Úgetset_buildr  §  s   ø€ ô FÐErD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÁ   r3   r>   rã   r?   )r@   s   "rA   rB   rB   ®  s   € ÷ ñ ˜3ð Ð#Hñ rD   c                ó   a € R  V 3R llpV# )c               ó$   € V ^8„  d   QhRRRRRR/# )r=   r¿   r°   rÀ   r-   r>   ræ   r?   )r@   s   "rA   rB   Ú&unsupported_attr.<locals>.__annotate__¯  s$   € ÷ 
ñ 
Øð
Ø!:ð
à	ñ
rD   c                ó„   <€ \        R RV  RS 2\        V 4      P                   RS R2. \        P                  OR7       R# )zUnsupported attributezattr_unsupported rc   z does not support attribute 'Ú're   N©r   r±   rN   r   rk   )r¿   rÀ   rÁ   s   &&€rA   Úgraph_breakÚ%unsupported_attr.<locals>.graph_break¯  sL   ø€ ô 	Ø+Ø'¨ t¨1¨T¨FÐ3Ü ›8×,Ñ,Ð-Ð-JÈ4È&ÐPQÐRØ1Ô%×0Ñ0Ð1÷		
rD   r?   )rÁ   r  s   f rA   Úunsupported_attrr  ®  s   ø€ ÷
ð 
ð ÐrD   c                  ó>   a € ] tR tRt$ R]R&   RR V 3R llltRtV ;t# )Ú#AsPythonConstantNotImplementedErrori¿  r°   r¿   c               ó$   € V ^8„  d   QhRRRRRR/# )r=   r¿   r°   Úmsgz
str | Noner>   r_   r?   )r@   s   "rA   rB   Ú0AsPythonConstantNotImplementedError.__annotate__Â  s!   € ÷ ñ ˜?ð °ð Àtñ rD   c                	óH   <€ Vf   V R2MTp\         SV `  V4       Wn        R # )Nz is not a constant)ry   rl   r¿   )rJ   r¿   r  r{   s   &&&€rA   rl   Ú,AsPythonConstantNotImplementedError.__init__Â  s(   ø€ Ø+.ª;��Ð&Ñ'¸CˆÜ‰Ñ˜ÔØŽrD   )r¿   rx   )rN   rO   rP   rQ   rS   rl   rT   r‰   rŠ   s   @rA   r  r  ¿  s   ø‡ ØÓ÷÷ ð rD   r  c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# ©r=   rJ   r°   rÀ   r-   Úfuncrö   rÃ   úlist[VariableTracker]rÄ   údict[str, VariableTracker]r>   r?   )r@   s   "rA   rB   rB   ×  sD   € ÷ ñ Ø
ðà!ðð )ðð  ð	ð
 'ðð ñrD   c                óŠ   € V'       d   \        VR 4       \        V4      ^ 8w  d   \        VR\        V4       24       V! W4      # )ú&this method takes no keyword argumentszexpected 0 arguments, got ©r   rÇ   ©rJ   rÀ   r  rÃ   rÄ   s   &&&&&rA   Ú_wrap_unaryfuncr  ×  s=   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð9¼#¸d»)¸ÐEÔFÙ�‹>ÐrD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   å  sD   € ÷ !ñ !Ø
ð!à!ð!ð )ð!ð  ð	!ð
 'ð!ð ñ!rD   c                óž   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       V^ ,          pV! WV4      # ©r  úexpected 1 argument, got r  ©rJ   rÀ   r  rÃ   rÄ   r„   s   &&&&& rA   Ú_wrap_binaryfuncr$  å  sI   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEØ��G€EÙ�˜%Ó Ð rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   ô  sD   € ÷ /ñ /Ø
ð/à!ð/ð )ð/ð  ð	/ð
 'ð/ð ñ/rD   c                ó¢   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       V^ ,          pV! WVRR7      # )r  r"  T©Úreverser  r#  s   &&&&& rA   Ú_wrap_binaryfunc_rr)  ô  sK   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEØ��G€EÙ�˜%¨Ô.Ð.rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB     sD   € ÷ &ñ &Ø
ð&à!ð&ð )ð&ð  ð	&ð
 'ð&ð ñ&rD   c                óÒ   € V'       d   \        VR 4       \        V4      R9  d   \        VR\        V4       24       \        V4      ^8X  d
   V^,          MRpV! WV^ ,          V4      # )r  úexpected 1 or 2 arguments, got N©r¨   r=   r  ©rJ   rÀ   r  rÃ   rÄ   Úzs   &&&&& rA   Ú_wrap_ternaryfuncr0    s\   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy˜ÔÜ˜Ð>¼sÀ4»y¸kÐJÔKÜ�t“9 ”>ˆˆQŽ t€AÙ�˜$˜q�' 1Ó%Ð%rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB     sD   € ÷ 4ñ 4Ø
ð4à!ð4ð )ð4ð  ð	4ð
 'ð4ð ñ4rD   c                óÖ   € V'       d   \        VR 4       \        V4      R9  d   \        VR\        V4       24       \        V4      ^8X  d
   V^,          MRpV! WV^ ,          VRR7      # )r  r,  NTr'  r-  r  r.  s   &&&&& rA   Ú_wrap_ternaryfunc_rr3    s^   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy˜ÔÜ˜Ð>¼sÀ4»y¸kÐJÔKÜ�t“9 ”>ˆˆQŽ t€AÙ�˜$˜q�' 1¨dÔ3Ð3rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   $  sD   € ÷ $ñ $Ø
ð$à!ð$ð )ð$ð  ð	$ð
 'ð$ð ñ$rD   c                ó²   € V'       d   \        VR 4       ^RIHp \        V4      ^8w  d   \        VR\        V4       24       Vw  rgV! WV4      pV! WW‡4      # )r  ©Úgetindexúexpected 2 arguments, got ©r   Úobject_protocolr7  rÇ   )	rJ   rÀ   r  rÃ   rÄ   r7  ÚargÚvalueÚis	   &&&&&    rA   Ú_wrap_sq_setitemr>  $  sV   € ÷ Ü˜ÐEÔFÝ)ä
ˆ4ƒy�A„~Ü˜Ð9¼#¸d»)¸ÐEÔFØ�L€SÙ�˜3Ó€AÙ�˜!Ó#Ð#rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   6  óD   € ÷ ñ Ø
ðà!ðð )ðð  ð	ð
 'ðð ñrD   c                ó²   € V'       d   \        VR 4       ^RIHp \        V4      ^8w  d   \        VR\        V4       24       Vw  pV! WV4      pV! WV4      # )r  r6  r"  r9  ©rJ   rÀ   r  rÃ   rÄ   r7  r;  r=  s   &&&&&   rA   Ú_wrap_sq_itemrC  6  sV   € ÷ Ü˜ÐEÔFÝ)ä
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEà�E€SÙ�˜3Ó€AÙ�˜!ÓÐrD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   I  r@  rD   c                ó¼   € V'       d   \        VR 4       ^RIHp \        V4      ^8w  d   \        VR\        V4       24       Vw  pV! W\        R7      pV! WV4      # )r  )Úpynumber_as_ssize_tr"  )Úerr)r   r:  rF  rÇ   ÚOverflowError)rJ   rÀ   r  rÃ   rÄ   rF  Úor=  s   &&&&&   rA   Ú_wrap_indexargfuncrJ  I  sV   € ÷ Ü˜ÐEÔFÝ4ä
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEà
�C€QÙ˜B¤}Ô5€AÙ�˜!ÓÐrD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   \  sD   € ÷ &ñ &Ø
ð&à!ð&ð )ð&ð  ð	&ð
 'ð&ð ñ&rD   c                ó”   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       Vw  rVV! WWV4      # ©r  r8  r  )rJ   rÀ   r  rÃ   rÄ   Úkeyr<  s   &&&&&  rA   Ú_wrap_objobjargprocrO  \  sG   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð9¼#¸d»)¸ÐEÔFØ�L€SÙ�˜#Ó%Ð%rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   k  sD   € ÷ %ñ %Ø
ð%à!ð%ð )ð%ð  ð	%ð
 'ð%ð ñ%rD   c                ó–   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       Vw  pV! WVR4      # ©r  r"  Nr  )rJ   rÀ   r  rÃ   rÄ   rN  s   &&&&& rA   Ú_wrap_delitemrS  k  sI   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEØ�E€SÙ�˜#˜tÓ$Ð$rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   z  sD   € ÷ #ñ #Ø
ð#à!ð#ð )ð#ð  ð	#ð
 'ð#ð ñ#rD   c                ó´   € V'       d   \        VR 4       ^RIHp \        V4      ^8w  d   \        VR\        V4       24       Vw  pV! WV4      pV! WVR4      # )r  r6  r"  Nr9  rB  s   &&&&&   rA   Ú_wrap_sq_delitemrV  z  sX   € ÷ Ü˜ÐEÔFÝ)ä
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEØ�E€SÙ�˜3Ó€AÙ�˜!˜TÓ"Ð"rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   Œ  sD   € ÷ !ñ !Ø
ð!à!ð!ð )ð!ð  ð	!ð
 'ð!ð ñ!rD   c                ó”   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       Vw  pV! WV4      # r!  r  r#  s   &&&&& rA   Ú_wrap_objobjprocrY  Œ  sG   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEØ�G€UÙ�˜%Ó Ð rD   c               ó    € V ^8„  d   QhRRRR/# )r=   Úopr3   r>   zšCallable[[VariableTracker, InstructionTranslatorBase, Callable[..., VariableTracker], list[VariableTracker], dict[str, VariableTracker]], VariableTracker]r?   )r@   s   "rA   rB   rB   œ  s   € ÷ ñ Øðð	ñrD   c                ó   a € R  V 3R llpV# )c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   Ú#_make_richcmp.<locals>.__annotate__©  sD   € ÷ +ñ +Øð+à%ð+ð -ð+ð $ð	+ð
 +ð+ð 
ñ+rD   c                óž   <€ V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       V! WV^ ,          S4      # r!  r  )rJ   rÀ   r  rÃ   rÄ   r[  s   &&&&&€rA   ÚwrapperÚ_make_richcmp.<locals>.wrapper©  sG   ø€ ÷ Ü˜RÐ!IÔJÜˆt‹9˜Œ>Ü˜RÐ#<¼SÀ»Y¸KÐ!HÔIÙ�D˜d 1�g rÓ*Ð*rD   r?   )r[  r`  s   f rA   Ú_make_richcmprb  œ  s   ø€ ÷+ð +ð €NrD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   Á  sD   € ÷ (ñ (Ø
ð(à!ð(ð )ð(ð  ð	(ð
 'ð(ð ñ(rD   c                ó   € V! WW44      # rx   r?   r  s   &&&&&rA   Ú	wrap_callre  Á  s   € ñ �˜$Ó'Ð'rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   Ì  sD   € ÷ 	(ñ 	(Ø
ð	(à!ð	(ð )ð	(ð  ð		(ð
 'ð	(ð ñ	(rD   c                ó   € V! WW44      # rx   r?   r  s   &&&&&rA   Ú
_wrap_initrh  Ì  s   € ñ �˜$Ó'Ð'rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   Ø  óD   € ÷ ,ñ ,Ø
ð,à!ð,ð )ð,ð  ð	,ð
 'ð,ð ñ,rD   c                óª   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       V! WV^ ,          V^,          4      # rM  r  r  s   &&&&&rA   Ú_wrap_setattrrl  Ø  óJ   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð9¼#¸d»)¸ÐEÔFÙ�˜$˜q�' 4¨¥7Ó+Ð+rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   ç  sD   € ÷ #ñ #Ø
ð#à!ð#ð )ð#ð  ð	#ð
 'ð#ð ñ#rD   c                óš   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       V! WV^ ,          4      # r!  r  r  s   &&&&&rA   Ú_wrap_delattrrp  ç  sD   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEÙ�˜$˜q�'Ó"Ð"rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   ö  sD   € ÷ 8ñ 8Ø
ð8à!ð8ð )ð8ð  ð	8ð
 'ð8ð ñ8rD   c                ó¶   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       V! WV^ ,          P                  4       4      # r!  )r   rÇ   Úas_python_constantr  s   &&&&&rA   Ú_wrap_getattrort  ö  sM   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEÙ�˜$˜q�'×4Ñ4Ó6Ó7Ð7rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB     sD   € ÷ &ñ &Ø
ð&à!ð&ð )ð&ð  ð	&ð
 'ð&ð ñ&rD   c                óô   € V'       d   \        VR 4       \        V4      R9  d   \        VR\        V4       24       V^ ,          p\        V4      ^8”  d
   V^,          MVP                  VR4      pV! WWV4      # )r  r,  r{   r-  )r   rÇ   Útp_getattro_impl)rJ   rÀ   r  rÃ   rÄ   r¯   Úowners   &&&&&  rA   Ú_wrap_descr_getry    sl   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy˜ÔÜ˜Ð>¼sÀ4»y¸kÐJÔKØ
ˆq�'€CÜ˜4“y 1”}ˆD�ŽG¨#×*>Ñ*>¸rÀ;Ó*O€EÙ�˜#Ó%Ð%rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB     rj  rD   c                óª   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       V! WV^ ,          V^,          4      # rM  r  r  s   &&&&&rA   Ú_wrap_descr_setr|    rm  rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# r  r?   )r@   s   "rA   rB   rB   %  sD   € ÷ )ñ )Ø
ð)à!ð)ð )ð)ð  ð	)ð
 'ð)ð ñ)rD   c                óœ   € V'       d   \        VR 4       \        V4      ^8w  d   \        VR\        V4       24       V! WV^ ,          R4      # rR  r  r  s   &&&&&rA   Ú_wrap_descr_deleter  %  sF   € ÷ Ü˜ÐEÔFÜ
ˆ4ƒy�A„~Ü˜Ð8¼¸T»¸ÐDÔEÙ�˜$˜q�' 4Ó(Ð(rD   c                  ó*   € ] tR tRtRt^ t^t^t^tRt	R# )Ú	SlotGroupi5  zVA CPython slot group.  The value is the group's index into
get_type_slots()'s 4-tuple.r?   N)
rN   rO   rP   rQ   rR   ÚSEQUENCEÚMAPPINGÚNUMBERÚTYPErT   r?   rD   rA   r�  r�  5  s   † ñ#ð €HØ€GØ€FØ„DrD   r�  c                  ó2   € ] tR tRt$ RtR]R&   R R ltRtR# )	ÚSloti?  z\A CPython type slot: the name of the VariableTracker method implementing
the slot function.
r3   Úimplc          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r=   r¿   r°   rÀ   r-   rÃ   r
   rÄ   r>   r?   )r@   s   "rA   rB   ÚSlot.__annotate__G  sC   € ÷ Eñ EàðEð &ðEð ð	Eð
 ðEð 
ñErD   c                	óT   € \        \        V4      V P                  4      ! W.VO5/ VB # rx   )rÏ   r±   rˆ  )rJ   r¿   rÀ   rÃ   rÄ   s   &&&*,rA   ré   ÚSlot.__call__G  s(   € ô ”t˜B“x §¡Ô+¨BÐD°TÒD¸VÑDÐDrD   r?   Nrë   r?   rD   rA   r‡  r‡  ?  s   ‡ ñð ƒI÷Eñ ErD   r‡  c                  óv  € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R &   R]R!&   R]R"&   R]R#&   R]R$&   R]R%&   R&tR'# )(ÚPyNumberMethodsiQ  úSlot | NoneÚnb_boolÚnb_indexÚnb_intÚnb_floatÚnb_negativeÚnb_positiveÚnb_absoluteÚ	nb_invertÚnb_addÚnb_inplace_addÚnb_subtractÚnb_inplace_subtractÚnb_multiplyÚnb_inplace_multiplyÚnb_remainderÚnb_inplace_remainderÚnb_powerÚnb_inplace_powerÚ	nb_lshiftÚnb_inplace_lshiftÚ	nb_rshiftÚnb_inplace_rshiftÚnb_andÚnb_inplace_andÚnb_xorÚnb_inplace_xorÚnb_orÚnb_inplace_orÚnb_floor_divideÚnb_inplace_floor_divideÚnb_true_divideÚnb_inplace_true_divideÚ	nb_divmodÚnb_matrix_multiplyÚnb_inplace_matrix_multiplyr?   N©rN   rO   rP   rQ   rS   rT   r?   rD   rA   rŽ  rŽ  Q  sÔ   ‡ ØÓØÓØÓØÓØÓØÓØÓØÓØÓØÓØÓØ$Ó$ØÓØ$Ó$ØÓØ%Ó%ØÓØ!Ó!ØÓØ"Ó"ØÓØ"Ó"ØÓØÓØÓØÓØÓØÓØ Ó Ø(Ó(ØÓØ'Ó'ØÓØ#Ó#Ø +×+rD   rŽ  c                  óh   € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   RtR# )ÚPySequenceMethodsiw  r�  Ú	sq_lengthÚ	sq_concatÚ	sq_repeatÚsq_itemÚsq_ass_itemÚsq_containsÚsq_inplace_concatÚsq_inplace_repeatr?   Nr³  r?   rD   rA   rµ  rµ  w  s2   ‡ ØÓØÓØÓØÓØÓØÓØ"Ó"Ø"×"rD   rµ  c                  ó6   € ] tR tRt$ R]R&   R]R&   R]R&   RtR# )ÚPyMappingMethodsi‚  r�  Ú	mp_lengthÚmp_subscriptÚmp_ass_subscriptr?   Nr³  r?   rD   rA   r¿  r¿  ‚  s   ‡ ØÓØÓØ!×!rD   r¿  c                  ó®   € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   RtR# )ÚPyTypeObjectiˆ  r�  Útp_reprÚtp_hashÚtp_callÚtp_strÚtp_getattroÚtp_setattroÚtp_richcompareÚtp_iterÚtp_iternextÚtp_descr_getÚtp_descr_setÚtp_initrŽ  Útp_as_numberrµ  Útp_as_sequencer¿  Útp_as_mappingr?   Nr³  r?   rD   rA   rÄ  rÄ  ˆ  s\   ‡ ØÓØÓØÓØÓØÓØÓØÓØÓØÓØÓØÓØÓØ!Ó!Ø%Ó%Ø#×#rD   rÄ  c              #  óV   "  € T F  qP                  R 4      '       d   K  Vx € K!  	  R# 5i)Útp_as_N)Ú
startswith)Ú.0Úfs   & rA   Ú	<genexpr>rÙ  ›  s   é € ÐSÑ 4˜1¿L¹LÈ×<R—Q’QÓ 4ùs   ‚)Ÿ
)zdict[SlotGroup, dict[int, str]]Ú
_BIT_FIELDÚ_implrÇ  Úcall_functionrÆ  Ú	hash_implzdict[SlotGroup, dict[str, str]]Ú_SLOT_FNz": _SLOT_FN fields != struct fieldsc               ó$   € V ^8„  d   QhRRRRRR/# )r=   Úgroupr�  Úmasksztuple[int, int, int, int]r>   údict[str, Any]r?   )r@   s   "rA   rB   rB   ¾  s"   € ÷ ñ �ð Ð#<ð Àñ rD   c           	     óð   € WP                   ,          p\        V ,          p\        V ,          P                  4        UUu/ uF*  w  rET\	        W$4      '       d   \        W5,          4      MR bK,  	  upp# u uppi rx   )r<  rÞ  rÚ  Úitemsr   r‡  )rà  rá  ÚmaskÚfn_mapÚbitÚfields   &&    rA   Ú_fillré  ¾  sf   € à—‘Õ€DÜ�e�_€Fô % UÕ+×1Ñ1Ô3ôá3‰JˆCð 	¤h¨t×&9Ò&9Œt�F•MÔ"¸tÒCÙ3òð ùó s   ¾0A2c               ó    € V ^8„  d   QhRRRR/# )r=   Úobj_typer±   r>   rÄ  r?   )r@   s   "rA   rB   rB   É  s   € ÷ 
ñ 
�tð 
 ñ 
rD   c                ó0  € \        V 4      p\        RR \        R/ \        \        P
                  V4      B R\        R/ \        \        P                  V4      B R\        R/ \        \        P                  V4      B /\        \        P                  V4      B # )rÑ  rÒ  rÓ  r?   )r   rÄ  rŽ  ré  r�  r„  rµ  r‚  r¿  rƒ  r…  )rë  rá  s   & rA   Ú_tp_typerí  È  s‰   € ô
 ˜8Ó$€EÜñ Ü$ÑF¤u¬Y×-=Ñ-=¸uÓ'EÑFðä(ÑL¬5´×1CÑ1CÀUÓ+KÑLðô 'ÑI¬¬y×/@Ñ/@À%Ó)HÑIðô ”	—‘ Ó
&ñ	ð rD   r°   r-   r   ÚWrapperTypec                  óZ   € ] tR tRt$ RtR]R&   R]R&   R]R&   R]R	&   R
]R&   R R ltRtR# )ÚSlotDefiâ  a;  One slotdefs entry: dunder name -> (impl method, call wrapper).

``impl`` is the VariableTracker method implementing the behavior; ``wrapper``
adapts a generic ``(self, tx, args)`` call to it (arity + operand order).  A
reflected op reuses the forward impl with ``_wrap_binaryfunc_r``; an in-place
op is a plain binary call into its own ``nb_inplace_*`` impl -- so no
reverse/inplace flags are needed.

``group`` is the CPython slot group (``SlotGroup``) the entry lives in and
``slot`` is the bit within it; together they decide whether a real type
implements the slot.
r3   rÁ   rˆ  r�  rà  r5   Úslotrî  r`  c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# )
r=   r¿   r°   rÀ   r-   rÃ   r  rÄ   r  r>   r?   )r@   s   "rA   rB   ÚSlotDef.__annotate__÷  s<   € ÷ 	8ñ 	8àð	8ð &ð	8ð $ð		8ð
 +ð	8ð 
ñ	8rD   c                óf   € \        \        V4      V P                  4      pV P                  WWSV4      # )z:Call the impl via the wrapper, passing self, tx, and args.)rÏ   r±   rˆ  r`  )rJ   r¿   rÀ   rÃ   rÄ   r  s   &&&&& rA   ré   ÚSlotDef.__call__÷  s+   € ô ”t˜B“x §¡Ó+ˆØ�|‰|˜B D°Ó7Ð7rD   r?   Nrë   r?   rD   rA   rð  rð  â  s.   ‡ ñð ƒIØ
ƒIØÓØ
ƒIØÓ÷	8ñ 	8rD   rð  c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# ©
r=   rÁ   r3   rˆ  rñ  r5   r`  rî  r>   rð  r?   )r@   s   "rA   rB   rB     s6   € ÷ Bñ B�ð B˜Cð B sð B°[ð BÀWñ BrD   c                ó8   € \        W\        P                  W#4      # rx   )rð  r�  r‚  ©rÁ   rˆ  rñ  r`  s   &&&&rA   ÚSQSLOTrú    s   € Ü�4œy×1Ñ1°4ÓAÐArD   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# r÷  r?   )r@   s   "rA   rB   rB     s6   € ÷ Añ A�ð A˜Cð A sð A°[ð AÀWñ ArD   c                ó8   € \        W\        P                  W#4      # rx   )rð  r�  rƒ  rù  s   &&&&rA   ÚMPSLOTrý    s   € Ü�4œy×0Ñ0°$Ó@Ð@rD   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# r÷  r?   )r@   s   "rA   rB   rB     s6   € ÷ @ñ @�ð @˜Cð @ sð @°[ð @ÀWñ @rD   c                ó8   € \        W\        P                  W#4      # rx   )rð  r�  r„  rù  s   &&&&rA   ÚNBSLOTr     s   € Ü�4œy×/Ñ/°Ó?Ð?rD   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# r÷  r?   )r@   s   "rA   rB   rB     s/   € ÷ >ñ >�ð >˜Cð > sð >°[ð >ÀWñ >rD   c                ó8   € \        W\        P                  W#4      # rx   )rð  r�  r…  rù  s   &&&&rA   ÚTPSLOTr    s   € Ü�4œyŸ~™~¨tÓ=Ð=rD   Ú__repr__Útp_repr_implré   Ú__str__Útp_str_implÚ__getattribute__rw  Ú__getattr__Útp_richcompare_implÚ__iter__Útp_iter_implÚ__next__Útp_iternext_implÚ__get__Útp_descr_get_implÚ__set__Útp_descr_set_implÚ
__delete__rl   Útp_init_implÚ__add__Únb_add_implÚ__radd__Ú__sub__Únb_subtract_implÚ__rsub__Ú__mul__Únb_multiply_implÚ__rmul__Ú__mod__Únb_remainder_implÚ__rmod__Ú
__divmod__Únb_divmod_implÚ__rdivmod__Ú__pow__Únb_power_implÚ__rpow__Ú__neg__Únb_negative_implÚ__pos__Únb_positive_implÚ__abs__Únb_absolute_implÚ__bool__Únb_bool_implÚ
__invert__Únb_invert_implÚ
__lshift__Únb_lshift_implÚ__rlshift__Ú
__rshift__Únb_rshift_implÚ__rrshift__Ú__and__Únb_and_implÚ__rand__Ú__xor__Únb_xor_implÚ__rxor__Ú__or__Ú
nb_or_implÚ__ror__Ú__int__Únb_int_implÚ	__float__Únb_float_implÚ__iadd__Únb_inplace_add_implÚ__isub__Únb_inplace_subtract_implÚ__imul__Únb_inplace_multiply_implÚ__imod__Únb_inplace_remainder_implÚ__ipow__Únb_inplace_power_implÚ__ilshift__Únb_inplace_lshift_implÚ__irshift__Únb_inplace_rshift_implÚ__iand__Únb_inplace_and_implÚ__ixor__Únb_inplace_xor_implÚ__ior__Únb_inplace_or_implÚ__floordiv__Únb_floor_divide_implÚ__rfloordiv__Ú__truediv__Únb_true_divide_implÚ__rtruediv__Ú__ifloordiv__Únb_inplace_floor_divide_implÚ__itruediv__Únb_inplace_true_divide_implÚ	__index__Únb_index_implÚ
__matmul__Únb_matrix_multiply_implÚ__rmatmul__Ú__imatmul__Únb_inplace_matrix_multiply_implÚ__len__Úmp_length_implÚ__getitem__Úmp_subscript_implÚ__setitem__Úmp_ass_subscript_implÚ__delitem__Úsq_length_implÚsq_concat_implÚsq_repeat_implÚsq_item_implÚsq_ass_item_implÚ__contains__Úsq_contains_implÚsq_inplace_concat_implÚsq_inplace_repeat_implzlist[SlotDef]Ú	_SLOTDEFSc               ó    € V ^8„  d   QhRRRR/# )r=   rë  r±   r>   zdict[str, SlotDef]r?   )r@   s   "rA   rB   rB   þ  s   € ÷ ñ  ð Ð);ñ rD   c                óì   € \        V 4      p/ p\         F\  pVP                  V9   d   K  \        WP                  P
                  ,          VP                  4      '       g   KN  W2VP                  &   K^  	  V# rx   )r   ry  rÁ   r   rà  r<  rñ  )rë  rá  ÚdÚsds   &   rA   Ú_compute_slotdefsr~  ý  sW   € ä˜8Ó$€EØ€AßˆØ�7‰7�aŒ<ÙÜ�EŸ(™(Ÿ.™.Õ)¨2¯7©7×3Ô3Øˆb�g‰g‹Jñ	 ð
 €HrD   c                  óP   a € ] tR tRt$ . tR]R&   R V 3R lltR V 3R lltRtV ;t	# )	ÚVariableTrackerMetai	  z
list[type]Úall_subclassesc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# )
r=   Úmcsr±   rÁ   r3   Úbasesútuple[type, ...]Úattrsrâ  r>   r?   )r@   s   "rA   rB   Ú VariableTrackerMeta.__annotate__  s4   € ÷ ñ ØðØðØ%5ðØ>Lðà	ñrD   c                	ó  <€ VP                  R R4      ;'       g5    \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      pV'       g   VR8X  d   \        SV `  \        WV4      # \        SV `  \
        WV4      # )Ú_no_implicit_realizeFc              3  ó<   "  € T F  p\        VR R4      x € K  	  R# 5i)r‰  FN)rÏ   )r×  Úbases   & rA   rÙ  Ú.VariableTrackerMeta.__new__.<locals>.<genexpr>  s!   é € ð N
ÙEJ¸TŒG�DÐ0°%×8Ð8ÃUùs   ‚Tr°   )ÚgetÚanyry   Ú__new__r€  Ú$ImplicitRealizingVariableTrackerMeta)rƒ  rÁ   r„  r†  Úno_implicit_realizer{   s   &&&& €rA   r�  ÚVariableTrackerMeta.__new__  sŠ   ø€ ð $Ÿi™iÐ(>ÀÓF÷ 
ð 
Ï#Ë#ñ N
ÙEJóN
Ï#Ï#Ê#ñ N
ÙEJóN
ó K
Ð÷  $Ð*;Ô";ä‘7‘?Ô#6¸ÀUÓKÐKô ‘7‘?Ü4°dÀ5óð rD   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r=   Úclsr±   rÁ   r3   r„  r…  r†  râ  r>   r_   r?   )r@   s   "rA   rB   r‡    s4   € ÷ 7ñ 7Øð7Øð7Ø%5ð7Ø>Lð7à	ñ7rD   c                	óf   <€ \         SV `  WV4       \        P                  P	                  V 4       R # rx   )ry   rl   r€  r�  Úappend)r”  rÁ   r„  r†  r{   s   &&&&€rA   rl   ÚVariableTrackerMeta.__init__  s(   ø€ ô 	‰Ñ˜ eÔ,Ü×*Ñ*×1Ñ1°#Ö6rD   r?   )
rN   rO   rP   rQ   r�  rS   r�  rl   rT   r‰   rŠ   s   @rA   r€  r€  	  s!   ø‡ Ø!#€N�JÓ#÷ð ÷&7ö 7rD   r€  c                  ó"   € ] tR tRtR R ltRtR# )r�  i&  c               ó    € V ^8„  d   QhRRRR/# )r=   Úinstancer…   r>   r†   r?   )r@   s   "rA   rB   Ú1ImplicitRealizingVariableTrackerMeta.__annotate__'  s   € ÷ -ñ -¨&ð -°Tñ -rD   c                óf   € \        \        V4      '       d   VP                  V 4      # \        W4      # )z-Make isinstance work with LazyVariableTracker)ÚinstancecheckÚLazyVariableTrackerÚlazy_isinstance)rJ   rš  s   &&rA   Ú__instancecheck__Ú6ImplicitRealizingVariableTrackerMeta.__instancecheck__'  s,   € äÔ,¨h×7Ò7Ø×+Ñ+¨DÓ1Ð1Ü˜TÓ,Ð,rD   r?   N)rN   rO   rP   rQ   r   rT   r?   rD   rA   r�  r�  &  s   † ÷-ñ -rD   r�  c                  óL  a € ] tR tRt$ RtRtR]R&   / tR]R&   / tR]R	&   / t	R
]R&   R R lt
R R ltR R ltR R lt0 ER	mtRtR]R&   R R lt]ER
R R ll4       tR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 ltR1 R2 ltR3 R4 ltR5 R6 ltR7 R8 lt R9 R: lt!R; R< lt"R= R> lt#R? R@ lt$RA RB lt%RC RD lt&RE RF lt'RG RH lt(RI RJ lt)RK RL lt*RM RN lt+RO RP lt,RQ RR lt-RS RT lt.RU RV lt/RW RX lt0RY RZ lt1R[ R\ lt2R] R^ lt3R_ R` lt4Ra Rb lt5Rc Rd lt6Re Rf lt7Rg Rh lt8Ri Rj lt9Rk Rl lt:Rm Rn lt;Ro Rp lt<Rq Rr lt=Rs Rt lt>Ru Rv lt?Rw Rx lt@Ry Rz ltAR{ R| ltBR} R~ ltCR R€ ltDR� R‚ ltERƒ R„ ltFR… R† ltGR‡ Rˆ ltHR‰ RŠ ltIR‹ RŒ ltJR� RŽ ltKR� R� ltLR‘ R’ ltMR“ R” ltNR• R– ltOR— R˜ ltP]QERR™ Rš ll4       tRR› Rœ ltSR� Rž ltTRŸ R  ltUR¡ R¢ ltVR£ R¤ ltWR¥ R¦ ltXR§ R¨ ltYR© Rª ltZERR« R¬ llt[ERR­ R® llt\R¯ R° lt]ERR± R² llt^R³ R´ lt_ERRµ R¶ llt`R· R¸ ltaERR¹ Rº lltbR» R¼ ltcERR½ R¾ lltdR¿ RÀ lteERRÁ RÂ lltfRÃ RÄ ltgERRÅ RÆ llthRÇ RÈ ltiERRÉ RÊ lltjERRË RÌ lltkRÍ RÎ ltlRÏ RÐ ltmERRÑ RÒ lltnRÓ RÔ ltoERRÕ RÖ lltpR× RØ ltqRÙ RÚ ltrRÛ RÜ ltsERRÝ RÞ llttRß Rà ltuRá Râ ltvRã Rä ltwERRå Ræ lltxRç Rè ltyERRé Rê lltzRë Rì lt{Rí Rî lt|Rï Rð lt}RRRRRRRR/Rñ V 3Rò lllt~]Ró Rô l4       t€]Rõ Rö l4       t�]R÷ Rø l4       t‚]Rù Rú l4       tƒ]Rû Rü l4       t„]Rý Rþ l4       t…]Rÿ ER  l4       t†]ER ER l4       t‡]ER 4       tˆER V 3ER llt‰]QER ER l4       tŠERt‹V ;tŒ# (  r°   i.  zÝ
Base class for tracked locals and stack values

VariableTracker instances are immutable and should be copied in
order to change them.

Prefer the factory function VariableTracker.build() over VariableTracker.__init__().
Nztype | tuple[type, ...] | NoneÚ_cpython_typezdict[str, Method]Ú
tp_methodszdict[str, GetSet]Ú	tp_getsetzdict[str, Member]Ú
tp_membersc               ó$   € V ^8„  d   QhRRRRRR/# )r=   rÁ   r3   Útable_attrsr>   r
   r?   )r@   s   "rA   rB   ÚVariableTracker.__annotate__I  s!   € ÷ ñ  Sð ¸ð Àñ rD   c                óº   € \        V 4      P                   FA  pVP                  pV F,  pVP                  V4      pVf   K  W9   g   K"  Wa,          u u # 	  KC  	  R# )aŠ  Resolve *name* in the given declarative tables across the class MRO.

Mirrors CPython method/getset/member inheritance: each class contributes
its own table entries into its own tp_dict, and lookup walks the MRO with
the most-derived class winning. A subclass table therefore *adds* to
(rather than replaces) the entries it inherits. Within a class the tables
are consulted in the order given.
N)r±   Ú__mro__Ú__dict__r�  )rJ   rÁ   r¨  Úklassr|  ÚattrÚtables   &&*    rA   Ú_lookup_tp_tableÚ VariableTracker._lookup_tp_tableI  sO   € ô ˜$“Z×'Ô'ˆEØ—‘ˆAÛ#�ØŸ™˜d›�ØÔ$¨®Ø �;Ô&ó $ñ (ñ rD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÁ   r3   r>   zGetSet | Member | Noner?   )r@   s   "rA   rB   r©  Z  s   € ÷ Fñ F¨Cð FÐ4Jñ FrD   c                	ó(   € V P                  VR R4      # )r¥  r¦  ©r°  ©rJ   rÁ   s   &&rA   Úlookup_tp_getset_memberÚ'VariableTracker.lookup_tp_getset_memberZ  s   € Ø×$Ñ$ T¨;¸ÓEÐErD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÁ   r3   r>   zMethod | Noner?   )r@   s   "rA   rB   r©  ]  s   € ÷ 9ñ 9 Sð 9¨]ñ 9rD   c                	ó&   € V P                  VR 4      # )r¤  r´  rµ  s   &&rA   Úlookup_tp_methodÚ VariableTracker.lookup_tp_method]  s   € Ø×$Ñ$ T¨<Ó8Ð8rD   c               ó   € V ^8„  d   QhRR/# ©r=   r>   r±   r?   )r@   s   "rA   rB   r©  `  s   € ÷ +ñ + 4ñ +rD   c                ó   € \        V 4      # )a2  Type whose CPython ml_flags define this VT's tp_methods arities
(see _derive_method_flags). Defaults to python_type(); a VT whose
python_type() is a pure-Python stand-in without C ml_flags (e.g.
OrderedSet) overrides this to the builtin whose method arities it
mirrors, so MethodFlags still enforces arity.)rµ   r€   s   &rA   rÞ   Ú!VariableTracker.method_flags_type`  s   € ô % TÓ*Ð*rD   rL   Úsource_locationÚmutation_typeÚdict_vtú#variables.DunderDictVariable | Nonec               ó    € V ^8„  d   QhRRRR/# )r=   rÄ   r
   r>   r°   r?   )r@   s   "rA   rB   r©  w  s   € ÷ &ñ &˜cð & oñ &rD   c                ór   € \        V P                  4      pVP                  V4       V P                  ! R/ VB # )z)Shallow copy with some (optional) changesr?   )Údictr¬  Úupdater{   )rJ   rÄ   rÃ   s   &, rA   ÚcloneÚVariableTracker.clonew  s.   € ä�D—M‘MÓ"ˆØ�‰�FÔØ�~Š~Ñ% Ñ%Ð%rD   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r=   rÙ   z!Callable[[VariableTracker], None]r<  r
   Úcachezdict[int, Any] | NoneÚside_effectszSideEffects | Noner>   r_   r?   )r@   s   "rA   rB   r©  ~  s<   € ÷ 80ñ 80à-ð80ð ð80ð %ð	80ð
 )ð80ð 
ñ80rD   c                ó  € Vf   / pV.pV'       Edt   VP                  4       p\        V4      pWs9   d   K,  WcV&   \        V\        4      '       d¯   VP	                  4       pV! V4       VP	                  4       pVP
                  pVP                  P                  4        U	U
u. uF  w  ršW˜9  g   K  V
NK  	  pp	p
VeA   WdP                  9   d1   VP                  VP                  V,          P                  4       4       Mk\        V\        \        34      '       d   \        V4      pMC\        V\        \        P                   34      '       d   \        VP                  4       4      pMEK_  VP                  \#        V4      4       EK|  R# u up
p	i )a}  
Walk value and call fn on all the VariableTracker instances.

When side_effects is provided, also walks attributes stored in
store_attr_mutations (e.g. dataclass fields set during tracing
that aren't in the VT's __dict__).

Implemented with an explicit worklist rather than recursion so that
deeply chained structures (e.g. the ~N-node buffer built by
itertools.tee over a long iterable) do not overflow the Python stack.
Children are pushed in reverse so they are popped in their original
order, matching the pre-order DFS the previous recursive version
produced (callers rely on the visitation order, e.g. for graph output
ordering).
N)Úpopr   Ú
isinstancer°   ÚunwrapÚ_nonvar_fieldsr¬  rä  Ústore_attr_mutationsÚextendÚvaluesr"   ÚlistÚtuplerÆ  ÚcollectionsÚOrderedDictÚreversed)r”  rÙ   r<  rË  rÌ  ÚworklistÚcurÚidxÚnonvarsrN  ÚsubvalueÚchildrens   &&&&&       rA   ÚvisitÚVariableTracker.visit}  sB  € ð. Š=ØˆEà�7ˆßˆhØ—,‘,“.ˆCÜ�S“'ˆCØŒ|Ùà�#‰Jô ˜#œ×/Ò/Ø—j‘j“l�Ù�3”Ø—j‘j“l�Ø×,Ñ,�ð *-¯©×);Ñ);Ô)=ôá)=™˜ØÑ)÷ �HÙ)=ð ñ ð !Ò,Ø×@Ñ@Ô@à—O‘O L×$EÑ$EÀcÕ$J×$QÑ$QÓ$SÔTøÜ˜œd¤E˜]×+Ò+Ü ›9‘Ü˜œd¤K×$;Ñ$;Ð<×=Ò=Ü §
¡
£Ó-‘âØ�O‰OœH XÓ.×/ñ= ùós   Â!
FÂ0Fc               ó   € V ^8„  d   QhRR/# r<   r?   )r@   s   "rA   rB   r©  ¸  s   € ÷ .ñ .˜#ñ .rD   c                	ó4   € V P                   P                   R 2# )z())r{   rN   r€   s   &rA   r  ÚVariableTracker.__repr__¸  s   € Ø—.‘.×)Ñ)Ð*¨"Ð-Ð-rD   c               ó   € V ^8„  d   QhRR/# r<   r?   )r@   s   "rA   rB   r©  »  s   € ÷ ñ ˜Cñ rD   c                	ón   €  \        V P                  4       4      #   \         d    \        T 4      u # i ; irx   )Úreprrs  r´   r€   s   &rA   Ú
debug_reprÚVariableTracker.debug_repr»  s4   € ð	Ü˜×/Ñ/Ó1Ó2Ð2øÜ"ô 	Ü˜“:Òð	ús   ‚ ›4³4c               ó   € V ^8„  d   QhRR/# r½  r?   )r@   s   "rA   rB   r©  Â  s   € ÷ Gñ G˜Tñ GrD   c                ór   €  \        V P                  4       4      #   \         d    \        T  R24      Rhi ; i)aú  
Abstract method to be implemented by subclasses of VariableTracker.

This method should return the type represented by the instance of the subclass.
The purpose is to provide a standardized way to retrieve the Python type information
of the variable being tracked.

Returns:
    type: The Python type (such as int, str, list, etc.) of the variable tracked by
        the subclass. If the type cannot be determined or is not relevant,
        leaving it undefined or invoking super() is always sound.

Note:
    This is an abstract method and may be overridden in subclasses.

Example:
    class SetVariable(VariableTracker):
        def python_type(self):
            return set

Raises:
    NotImplementedError: If the method is not implemented in a subclass.
z has no typeN)r±   rs  r´   r€   s   &rA   r³   ÚVariableTracker.python_typeÂ  sA   € ð0	GÜ˜×/Ñ/Ó1Ó2Ð2øÜ"ô 	GÜ%¨¨¨lÐ&;Ó<À$ÐFð	Gús   ‚ ›6c               ó   € V ^8„  d   QhRR/# r<   r?   )r@   s   "rA   rB   r©  ß  s   € ÷ $ñ $ #ñ $rD   c                ó\   €  V P                  4       P                  #   \         d     R# i ; i)aq  
Return the type name for the Python type this VariableTracker represents.

Mirrors CPython's tp_name slot (PyTypeObject.tp_name). In Python 3.10+,
type.__name__ matches CPython's tp_name exactly (e.g., "list", "NoneType").

Note: There are no external callers outside torch._dynamo that rely on this.
Internal uses should prefer this over hardcoded type name strings.
ú<unknown type>)r³   rN   r´   r€   s   &rA   rÈ   Ú VariableTracker.python_type_nameß  s.   € ð	$Ø×#Ñ#Ó%×.Ñ.Ð.øÜ"ô 	$Ú#ð	$ús   ‚ œ+ª+c               ó   € V ^8„  d   QhRR/# r<   r?   )r@   s   "rA   rB   r©  î  s   € ÷ ñ  sñ rD   c                ó˜   €  V P                  4       pTP                  pTP                  pTR9  d   T RT 2# T#   \         d     R# i ; i)z~
Equivalent to _PyType_GetFullyQualifiedName

See https://github.com/python/cpython/blob/v3.15.0b4/Objects/typeobject.c#L1658
rï  rÆ   )Ú__main__Úbuiltins)r³   r´   rO   rP   )rJ   Útype_ÚmodÚqns   &   rA   Úpython_qualified_nameÚ%VariableTracker.python_qualified_nameî  s_   € ð	$Ø×$Ñ$Ó&ˆEð
 ×ÑˆØ×ÑˆØÐ.Ô.Ø�U˜!˜B˜4�=Ð àˆIøô #ô 	$Ú#ð	$ús   ‚: ºA	ÁA	c               ó   € V ^8„  d   QhRR/# ©r=   r>   r
   r?   )r@   s   "rA   rB   r©    s   € ÷ 8ñ 8 Cñ 8rD   c                ó   € \        V 4      h)zFor constants©r  r€   s   &rA   rs  Ú"VariableTracker.as_python_constant  s   € ä1°$Ó7Ð7rD   c               ó   € V ^8„  d   QhRR/# rû  r?   )r@   s   "rA   rB   r©    s   € ÷ 
ñ 
¨#ñ 
rD   c                ót   €  V P                  4       #   \         d    \        RRT  2RT  R2. R7        R# i ; i)zcSimilar to as_python_constant(), but add ID_MATCH guards to try to force things to become constantszNot a Python constantzguard_as_python_constant zFailed to convert z into a Python constant.re   N)rs  r´   r   r€   s   &rA   Úguard_as_python_constantÚ(VariableTracker.guard_as_python_constant  sO   € ð	Ø×*Ñ*Ó,Ð,øÜ"ô 	ÜØ/Ø3°D°6Ð:Ø0°°Ð6NÐOØ÷	ð ð	ús   ‚ ’!7¶7c               ó   € V ^8„  d   QhRR/# ©r=   r>   r†   r?   )r@   s   "rA   rB   r©    s   € ÷ ñ  Dñ rD   c                	óL   €  V P                  4        R #   \         d     R# i ; i©TF)rs  r´   r€   s   &rA   Úis_python_constantÚ"VariableTracker.is_python_constant  s(   € ð	Ø×#Ñ#Ô%ÙøÜ"ô 	Úð	úó   ‚ ”#¢#c               ó    € V ^8„  d   QhRRRR/# )r=   rÀ   r-   r>   ræ   r?   )r@   s   "rA   rB   r©    s   € ÷ ñ Ð8ð Ð=Sñ rD   c                	ó   € R # rx   r?   ©rJ   rÀ   s   &&rA   r.  ÚVariableTracker.nb_bool_impl  s   € ñ rD   c               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r©     s   € ÷ ñ ˜Tñ rD   c                ó   € R# )uÈ  Whether the underlying Python object is hashable.

Defaults to True â€” in CPython, all objects are hashable unless the type
explicitly sets __hash__ = None (PyObject_HashNotImplemented).
https://github.com/python/cpython/blob/e76aa128fe/Objects/typeobject.c#L7288

Subclasses override to return False for unhashable types (list, dict,
set, etc.).  This is a fast, side-effect-free check used by
HashableTracker and __contains__ before attempting to hash.
Tr?   r€   s   &rA   Úis_hashableÚVariableTracker.is_hashable   s   € ñ rD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÀ   r-   r>   ztuple[int, bool]r?   )r@   s   "rA   rB   r©  -  s   € ÷ !ñ !Ð5ð !Ð:Jñ !rD   c                óº  € V P                   '       d¾   VP                  P                  V P                   4      p\        V4      P                  \
        P                  Jde   \        RRV  2\        V 4      P                   R\        V4      P                   R\        V 4      P                   R2. \        P                  OR7       \        V4      R3# \        V 4      R3# )ae  Default tp_hash: object.__hash__ = PyObject_GenericHash (identity hash).

PyObject_GenericHash: https://github.com/python/cpython/blob/e76aa128fe/Python/pyhash.c#L143-L147
Assigned on object: https://github.com/python/cpython/blob/e76aa128fe/Objects/typeobject.c#L7288

Returns (hash_value, is_fake).  is_fake=True means the hash depends on
a sourceless object's identity and must not escape into output bytecode.

VT subclasses override this for types with their own C tp_hash.
UserDefinedObjectVariable.hash_impl handles the MRO walk for custom
Python __hash__, builtin-inherited C hash, and unknown C tp_hash.
zMissing hash_impl overridez
hash_impl z wraps z> which has a non-default tp_hash. Add a hash_impl override to rÆ   re   T)rL   ÚoutputÚresolve_source_valuer±   r�   r…   r   rN   r   rk   Úhashr   )rJ   rÀ   Úreal_vals   && rA   rÝ  ÚVariableTracker.hash_impl-  s¾   € ð �;�;ˆ;Ø—y‘y×5Ñ5°d·k±kÓBˆHÜ�H‹~×&Ñ&¬f¯o©oÓ=ÜØ8Ø(¨¨Ð/Ü#'¨£:×#6Ñ#6Ð"7°wÜ˜H“~×.Ñ.Ð/ð 0<ä˜D“z×*Ñ*Ð+¨1ð!.ð :Ô-×8Ñ8Ð9õô ˜“> 4Ð'Ð'ä�$‹x˜ˆ~ÐrD   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r=   rÀ   r-   r„   r°   r[  r3   r>   r?   )r@   s   "rA   rB   r©  P  s2   € ÷ 
ñ 
à%ð
ð ð
ð ð	
ð
 
ñ
rD   c           	     ó¨   € \        RRV  RV 2\        V 4      P                   R\        V 4      P                   R2. \        P                  OR7       R# )aA  Per-VT tp_richcompare slot. Subclasses must override.

Analogous to CPython's tp_richcompare function pointer on PyTypeObject.
Returns ConstantVariable(NotImplemented) when the type does not handle
the comparison (signaling do_richcompare to try the other operand).

Called from two paths:
- call_method("__eq__") calls tp_richcompare_impl directly (like CPython's
  a.__eq__(b) calling tp_richcompare without do_richcompare).
- generic_richcompare calls tp_richcompare_impl as part of the 4-step
  do_richcompare algorithm (subclass priority, forward, reflected,
  fallback).
z$Missing tp_richcompare_impl overrideztp_richcompare_impl rc   zO does not implement tp_richcompare_impl. Add a tp_richcompare_impl override to rÆ   re   Nr
  )rJ   rÀ   r„   r[  s   &&&&rA   r
  Ú#VariableTracker.tp_richcompare_implP  s]   € ô& 	Ø:Ø*¨4¨&°°"°Ð6Ü ›:×.Ñ.Ð/ð 0Jä�D‹z×"Ñ"Ð# 1ð&ð 2Ô%×0Ñ0Ð1÷	
rD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÔ  r
   r>   r†   r?   )r@   s   "rA   rB   r©  l  s   € ÷ 	ñ 	¨ð 	°ñ 	rD   c                ó   € R# )a>  
Check if this variable is a python constant matching one of the given values.

Examples:
    var.is_constant_match(None)  # True if var is constant None
    var.is_constant_match(True, False)  # True if var is constant True or False
    var.is_constant_match(NotImplemented)  # True if var is constant NotImplemented
Fr?   )rJ   rÔ  s   &*rA   Úis_constant_matchÚ!VariableTracker.is_constant_matchl  s   € ñ rD   c               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r©  w  s   € ÷ ñ  $ñ rD   c                ó   € R# )z0Check if this variable is a constant None value.Fr?   r€   s   &rA   Úis_constant_noneÚ VariableTracker.is_constant_nonew  ó   € árD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÙ   zCallable[..., Any]r>   r)   r?   )r@   s   "rA   rB   r©  {  s   € ÷ "ñ "Ð/ð "°Eñ "rD   c                	óh   € V P                   '       d   V P                   P                  V4      # \        hrx   )rL   Ú
make_guardr´   )rJ   rÙ   s   &&rA   r'  ÚVariableTracker.make_guard{  s&   € Ø�;�;ˆ;Ø—;‘;×)Ñ)¨"Ó-Ð-Ü!Ð!rD   c               ó$   € V ^8„  d   QhRRRRRR/# )r=   rÀ   r-   rÁ   r3   r>   r
   r?   )r@   s   "rA   rB   r©  €  s"   € ÷ "ñ "Ð 9ð "Àð "Èñ "rD   c                ó   € \         h)z/getattr(self, name) returning a python constant©r´   ©rJ   rÀ   rÁ   s   &&&rA   Úconst_getattrÚVariableTracker.const_getattr€  s   € ä!Ð!rD   c               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r©  „  s   € ÷ ñ  ñ rD   c                ó   € R# )zAReturn True for values that can participate in SymNode operationsFr?   r€   s   &rA   Úis_symnode_likeÚVariableTracker.is_symnode_like„  r$  rD   c               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r©  ˆ  s   € ÷ ñ ˜4ñ rD   c                ó   € R# )z(Return True for TensorVariable instancesFr?   r€   s   &rA   Ú	is_tensorÚVariableTracker.is_tensorˆ  r$  rD   c               ó   € V ^8„  d   QhRR/# )r=   r>   útype[VariableTracker]r?   )r@   s   "rA   rB   r©  Œ  s   € ÷ ñ Ð/Dñ rD   c                ó   € \        V 4      # )a¿  Return the VariableTracker type to use for builtin handler dispatch.

This is used by BuiltinVariable to look up the appropriate handler for
a given set of arguments. Most VariableTrackers just return their own
type, but LazyConstantVariable returns ConstantVariable since it can
be treated as a constant for most builtin operations.

Subclasses that override this should install appropriate guards to
ensure the dispatched handler remains valid.
)r±   r€   s   &rA   Úget_handler_type_for_dispatchÚ-VariableTracker.get_handler_type_for_dispatchŒ  s   € ô �D‹zÐrD   c               ó   € V ^8„  d   QhRR/# )r=   r>   zobject | Noner?   )r@   s   "rA   rB   r©  ™  s   € ÷ ñ  }ñ rD   c                ó   € R# )z”Return the wrapped Python object for generic STORE_ATTR mutation,
or None to decline.  Only override for VTs with __dict__ and
standard __setattr__.Nr?   r€   s   &rA   Úget_value_for_setattrÚ%VariableTracker.get_value_for_setattr™  s   € ñ rD   c               ó$   € V ^8„  d   QhRRRRRR/# ©r=   rÀ   r-   rÁ   r3   r>   ræ   r?   )r@   s   "rA   rB   r©  Ÿ  ó$   € ÷ 	ñ 	Ø+ð	Ø36ð	à	ñ	rD   c                ó   € R# )a  Look up *name* in the instance __dict__ (tp_dictoffset equivalent).

Returns a VT if the attribute exists in the instance dict, None if
the attribute is absent or the VT has no instance dict at all.
UDOV overrides to check self.value.__dict__ + side effects.
Nr?   r,  s   &&&rA   Úlookup_instance_dictÚ$VariableTracker.lookup_instance_dictŸ  ó   € ñ rD   c               ó$   € V ^8„  d   QhRRRRRR/# rA  r?   )r@   s   "rA   rB   r©  ª  rB  rD   c                ó   € R# )zïCall __getattr__ fallback (step 6 of GenericGetAttr).

Returns a VT if the type defines __getattr__ and it succeeds,
None otherwise.  The base returns None (most types have no
__getattr__).  UDOV overrides to walk the MRO for __getattr__.
Nr?   r,  s   &&&rA   Úcall_getattr_fallbackÚ%VariableTracker.call_getattr_fallbackª  rF  rD   c               ó$   € V ^8„  d   QhRRRRRR/# )r=   rÀ   r-   rÁ   r3   r>   r°   r?   )r@   s   "rA   rB   r©  µ  s)   € ÷ ,Gñ ,GØ+ð,GØ36ð,Gà	ñ,GrD   c                óÔ  € V P                  V4      pVe   VP                  W4      pVe   V# VR8X  d$   \        P                  WP	                  4       4      #  V P	                  4       pVe   ^RIHpHp  V! WV4      # V P                  W4      p\        P                  P                  V4      '       g   \
        hV P                  ;'       d    \        V P                  V4      p	V	'       d?   V P                  4       '       g)   \!        V	P#                  \$        P&                  4      4       \        P                  P)                  W‰R7      #   \
         d    Rp Lñi ; i  T d     Lèi ; i)z÷Default attribute access via object_generic_getattr.

Tries the MRO-based descriptor protocol first (PyObject_GenericGetAttr),
falls back to const_getattr for VTs without a known python_type or
when the descriptor protocol hits an unhandled type.
Nr{   )Ú_UnhandledDescriptorErrorÚobject_generic_getattr)rL   )r¶  rî   r°   r  r³   r´   r:  rM  rN  r-  r   r.   Ú
is_literalrL   r   r  r   r'  r   ÚCONSTANT_MATCHÚcreate)
rJ   rÀ   rÁ   ÚgetsetrK   Úpy_typerM  rN  r<  rL   s
   &&&       rA   rw  Ú VariableTracker.tp_getattro_implµ  sA  € ð ×-Ñ-¨dÓ3ˆØÒØ—]‘] 4Ó,ˆFØÒ!Ø�ð �;ÔÜ"×(Ñ(¨×-=Ñ-=Ó-?Ó@Ð@ð	Ø×&Ñ&Ó(ˆGð Ò÷ð
Ù-¨b¸Ó=Ð=ð ×"Ñ" 2Ó,ˆÜ×)Ñ)×4Ñ4°U×;Ò;Ü%Ð%Ø—‘×>Ð>¤¨D¯K©K¸Ó!>ˆß˜$×1Ñ1×3Ò3ä˜&×+Ñ+¬L×,GÑ,GÓHÔIÜ×)Ñ)×0Ñ0°Ð0ÓFÐFøô+ #ô 	ØŠGð	ûð -ô Ùðús$   ÁE
 Á5E Å
EÅEÅE'Å&E'c               ó    € V ^8„  d   QhRRRR/# )r=   rÀ   r-   r>   zvariables.DunderDictVariabler?   )r@   s   "rA   rB   r©  ã  s   € ÷ 	ñ 	Ø+ð	à	%ñ	rD   c                	ó~   € V P                   f%   \        P                  P                  W4      V n         V P                   # rx   )rÂ  r   ÚDunderDictVariablerQ  r  s   &&rA   Úget_dict_vtÚVariableTracker.get_dict_vtã  s0   € ð �<‰<ÒÜ$×7Ñ7×>Ñ>¸rÓHˆDŒLØ�|‰|ÐrD   c               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r©  î  s   € ÷ ñ ˜$ñ rD   c                	óL   €  V P                  4        R #   \         d     R# i ; ir  )Úas_proxyr´   r€   s   &rA   Úis_proxyÚVariableTracker.is_proxyî  s%   € ð	Ø�M‰MŒOÙøÜ"ô 	Úð	úr	  c               ó   € V ^8„  d   QhRR/# rû  r?   )r@   s   "rA   rB   r©  õ  s   € ÷ -ñ -˜#ñ -rD   c                	ó*   € \        \        V 4      4      hrx   )r´   r3   r€   s   &rA   r\  ÚVariableTracker.as_proxyõ  s   € Ü!¤# d£)Ó,Ð,rD   c               ó   € V ^8„  d   QhRR/# )r=   r>   zNode | Noner?   )r@   s   "rA   rB   r©  ø  s   € ÷ 	ñ 	˜{ñ 	rD   c                	ó¶   €  V P                  4       p^ RIp\        WP                  P                  4      '       d   VP
                  # R#   \         d     R# i ; i)rb   N)r\  Útorch.fxrÏ  ÚfxÚProxyÚnoder´   )rJ   ÚproxyrÎ   s   &  rA   Úmaybe_fx_nodeÚVariableTracker.maybe_fx_nodeø  sG   € ð	Ø—M‘M“OˆEÛä˜%§¡§¡×0Ò0Ø—z‘zÐ!ÙøÜ"ô 	Úð	ús   ‚AA	 Á	AÁAc               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r©    s   € ÷ ñ ¨$ñ rD   c                ó¸   a a€ RoR VV 3R llpS P                   P                  4        F-  w  r#VS P                  9  g   K  \        P	                  W4       K/  	  S# )zBCheck if this variable references itself (directly or indirectly).Fc               ó    € V ^8„  d   QhRRRR/# )r=   r¿   r°   r>   r_   r?   )r@   s   "rA   rB   Ú>VariableTracker._contains_self_reference.<locals>.__annotate__  s   € ÷ 	"ñ 	"�oð 	"¨$ñ 	"rD   c                ó   <€ V SJ d   R oR# R# )TNr?   )r¿   Ú
found_selfrJ   s   &€€rA   ÚcheckÚ7VariableTracker._contains_self_reference.<locals>.check  s   ø€ à�T‹zØ!’
ñ rD   )r¬  rä  rÑ  r°   rà  )rJ   rq  rN  rÞ  rp  s   f   @rA   Ú_contains_self_referenceÚ(VariableTracker._contains_self_reference  sQ   ù€ àˆ
÷	"ñ 	"ð "Ÿ]™]×0Ñ0Ö2‰MˆCØ˜$×-Ñ-Ö-Ü×%Ñ% eÖ6ñ 3ð ÐrD   c               ó    € V ^8„  d   QhRRRR/# )r=   Úcodegenr+   r>   r_   r?   )r@   s   "rA   rB   r©    s   € ÷ "ñ " 9ð "°ñ "rD   c                	ó   € \         hrx   r+  ©rJ   rv  s   &&rA   ÚreconstructÚVariableTracker.reconstruct  s   € Ü!Ð!rD   c               ó    € V ^8„  d   QhRRRR/# )r=   rv  r+   r>   r3   r?   )r@   s   "rA   rB   r©    s   € ÷ Tñ T¨)ð T¸ñ TrD   c                	ó   € \        R V  24      h)z'reconstruct_pycode not implemented for r+  rx  s   &&rA   Úreconstruct_pycodeÚ"VariableTracker.reconstruct_pycode  s   € Ü!Ð$KÈDÈ6Ð"RÓSÐSrD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÀ   r-   r>   r  r?   )r@   s   "rA   rB   r©    s   € ÷ "ñ "Ø+ð"à	ñ"rD   c                	ó   € \         hrx   r+  r  s   &&rA   Úunpack_var_sequenceÚ#VariableTracker.unpack_var_sequence  s
   € ô "Ð!rD   c               ó$   € V ^8„  d   QhRRRRRR/# )r=   rÀ   r-   rÁ   r3   r>   zConstantVariable | Noner?   )r@   s   "rA   rB   r©    s$   € ÷ 	ñ 	Ø+ð	Ø36ð	à	 ñ	rD   c                ó"  € VP                   P                  P                  W4      '       dd   VP                   P                  P                  WRR7      p\        P
                  P                  \        V\        P                  4      '       * 4      # R# )zGIf *name* has a pending mutation, return the hasattr result; else None.T)Ú
deleted_okN)	r  rÌ  Úhas_pending_mutation_of_attrÚ	load_attrr   r.   rQ  rÏ  ÚDeletedVariable)rJ   rÀ   rÁ   r<  s   &&& rA   Ú_hasattr_check_side_effectsÚ+VariableTracker._hasattr_check_side_effects  so   € ð �9‰9×!Ñ!×>Ñ>¸t×JÒJØ—I‘I×*Ñ*×4Ñ4°TÈDÐ4ÓQˆEÜ×-Ñ-×4Ñ4Ü˜u¤i×&?Ñ&?Ó@Ô@óð ñ rD   c               ó$   € V ^8„  d   QhRRRRRR/# )r=   rÀ   r-   rÁ   r3   r>   r.   r?   )r@   s   "rA   rB   r©  )  s$   € ÷ 
ñ 
Ø+ð
Ø36ð
à	ñ
rD   c           
     óô  € V P                  W4      pVe   V#  V P                  W4       \        P                  P	                  R4      #   \
         d=    TP                  P                  4        \        P                  P	                  R4      u # \        \        3 d     Mi ; i\        RRT  RT 2RT P                  4        R2R	T P                  P                   R
T R2.\        P                  OR7       R# )a9  Dynamo's hasattr(): try tp_getattro_impl, catch AttributeError.

Mirrors CPython's PyObject_HasAttr (via PyObject_GetOptionalAttr):
call tp_getattro, suppress AttributeError via PyErr_Clear, return
True/False.
https://github.com/python/cpython/blob/848cb25624ab44c9fef2966c777419376b65af1b/Objects/object.c#L1346
NTFzUnsupported hasattr callzcall_obj_hasattr rc   ú0Dynamo does not know how to trace the function `rd   zAvoid calling `hasattr(ú, z)` in your code.re   )r‰  rw  r   r.   rQ  r   Úexn_vt_stackÚclear_current_exceptionr´   r   r   rè  r{   rN   r   ÚSUPPORTABLE)rJ   rÀ   rÁ   rK   s   &&& rA   Úcall_obj_hasattrÚ VariableTracker.call_obj_hasattr)  sò   € ð ×1Ñ1°"Ó;ˆØÒØˆMð	Ø×!Ñ! "Ô+Ü×-Ñ-×4Ñ4°TÓ:Ð:øÜ%ô 	<Ø�O‰O×3Ñ3Ô5Ü×-Ñ-×4Ñ4°UÓ;Ò;Ü#¤[Ð1ô 	Ùð	úô 	Ø.Ø'¨ v¨Q¨t¨fÐ5ØJÈ4Ï?É?ÓK\ÐJ]Ð]^Ð_à)¨$¯.©.×*AÑ*AÐ)BÀ"ÀTÀFÐJZÐ[ðä"×.Ñ.ð÷		
s   ™/A	 Á	AB"ÂB"ÂB"Â!B"c               ó    € V ^8„  d   QhRRRR/# ©r=   rÀ   r-   r>   r°   r?   )r@   s   "rA   rB   r©  J  s   € ÷ 
ñ 
Ð8ð 
¸_ñ 
rD   c                óŠ   € \        RRV P                  4        2RV P                  4        R2. \        P                  OR7       R# )zf
Implements PyObject_GetIter semantics (tp_iter slot).
Subclasses override this to support iteration.
zmissing tp_iterz!tp_iter_impl not implemented for z*Dynamo does not know how to iterate over `ú`.re   N©r   rÈ   rè  r   r‘  r  s   &&rA   r  ÚVariableTracker.tp_iter_implJ  sG   € ô 	Ø%Ø7¸×8MÑ8MÓ8OÐ7PÐQØDÀTÇ_Á_ÓEVÐDWÐWYÐZØ2Ô%×1Ñ1Ð2÷		
rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	r=   rÀ   r-   rÃ   r  rÄ   r  r>   r°   r?   )r@   s   "rA   rB   r©  Y  s2   € ÷ 
ñ 
à%ð
ð $ð
ð +ð	
ð
 
ñ
rD   c                óŠ   € \        RRV P                  4        2RV P                  4        R2. \        P                  OR7       R# )z>tp_init slot (__init__). VTs override to initialize instances.zmissing tp_initz!tp_init_impl not implemented for z/Dynamo does not know how to trace __init__ on `r—  re   N)r   rÈ   rè  r   rk   )rJ   rÀ   rÃ   rÄ   s   &&&&rA   r  ÚVariableTracker.tp_init_implY  sG   € ô 	Ø%Ø7¸×8MÑ8MÓ8OÐ7PÐQØIÈ$Ï/É/ÓJ[ÐI\Ð\^Ð_Ø1Ô%×0Ñ0Ð1÷		
rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# r›  r?   )r@   s   "rA   rB   r©  g  s2   € ÷ 
ñ 
à%ð
ð $ð
ð +ð	
ð
 
ñ
rD   c           	     	ó6  € ^RI Hp  V P                  4       pVe-   V! V4      '       g   \	        VRV P                  4        R24       \        RRV  RV RV 2RV P                  4        R	2R
V P                  4        R2R.R7       R#   \         d    Rp Li ; i)r¨   )Úpycallable_checkNr	  z' object is not callablezUnsupported function callzcall_function rc   r�  rd   úAvoid calling `ú` in your code.ú"Please report an issue to PyTorch.re   )r:  r   r³   r´   r   rÈ   r   rè  )rJ   rÀ   rÃ   rÄ   r   rë  s   &&&&  rA   rÜ  ÚVariableTracker.call_functiong  s³   € õ 	6ð	Ø×'Ñ'Ó)ˆHð ÒÑ(8¸×(BÒ(BÜ˜R 1 T×%:Ñ%:Ó%<Ð$=Ð=UÐ!VÔWÜØ/Ø$ T F¨!¨D¨6°°6°(Ð;ØJÈ4Ï?É?ÓK\ÐJ]Ð]^Ð_à! $§/¡/Ó"3Ð!4°OÐDØ4ð÷		
øô	 #ô 	ØŠHð	ús   ˆB ÂBÂBc               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  ƒ  ó   € ÷ 
ñ 
Ð!:ð 
¸ñ 
rD   c                óP   € \        \        VRV P                  4        R2.R7       R# )z)Called when sq_length is not implemented.úobject of type 'ú' has no len()©rÃ   N©r   Ú	TypeErrorrÈ   r  s   &&rA   rp  ÚVariableTracker.sq_length_implƒ  ó)   € ä ÜØØ$ T×%:Ñ%:Ó%<Ð$=¸^ÐLÐM÷	
rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  ‹  r¦  rD   c                óP   € \        \        VRV P                  4        R2.R7       R# )z)Called when mp_length is not implemented.r¨  r©  rª  Nr«  r  s   &&rA   rj  ÚVariableTracker.mp_length_impl‹  r®  rD   c               ó$   € V ^8„  d   QhRRRRRR/# ©r=   rÀ   r-   rN  r°   r>   r?   )r@   s   "rA   rB   r©  “  s(   € ÷ 
ñ 
à%ð
ð ð
ð 
ñ	
rD   c                	ó”   € \        R R\        V 4      P                   2RV P                  4        R2. \        P
                  OR7       R# )Úmissing_mp_subscriptz"mp_subscript_impl not defined for z*Dynamo does not yet support subscripting 'ú'.re   N©r   r±   rN   rÈ   r   r‘  ©rJ   rÀ   rN  s   &&&rA   rl  Ú!VariableTracker.mp_subscript_impl“  sJ   € ô 	Ø*Ø8¼¸d»×9LÑ9LÐ8MÐNØDÀT×EZÑEZÓE\ÐD]Ð]_Ð`Ø2Ô%×1Ñ1Ð2÷		
rD   c               ó$   € V ^8„  d   QhRRRRRR/# r³  r?   )r@   s   "rA   rB   r©  £  s(   € ÷ 
ñ 
à%ð
ð ð
ð 
ñ	
rD   c                	ó6   € \        R RV  RV 2RV  2. R7       R# )z!unsupported __getitem__ (sq_item)zsq_item_impl rc   z.Dynamo does not know how to handle sq_item on re   N©r   r¸  s   &&&rA   rs  ÚVariableTracker.sq_item_impl£  s,   € ô 	Ø7Ø# D 6¨¨3¨%Ð0ØHÈÈÐOØ÷		
rD   c               ó$   € V ^8„  d   QhRRRRRR/# )r=   rÀ   r-   Úitemr°   r>   r?   )r@   s   "rA   rB   r©  ²  s$   € ÷ 	
ñ 	
Ø+ð	
Ø3Bð	
à	ñ	
rD   c           	     ó¬   € \        RRV P                  4        2RVP                  4        RV P                  4        R2. \        P                  OR7       R# )z+Called when sq_contains is not implemented.zmissing sq_containsz%sq_contains_impl not implemented for z&Dynamo does not know how to check if `z	` is in `r—  re   Nr˜  )rJ   rÀ   r¿  s   &&&rA   rv  Ú VariableTracker.sq_contains_impl²  sY   € ô 	Ø)Ø;¸D×<QÑ<QÓ<SÐ;TÐUØ@ÀÇÁÓARÐ@SÐS\Ð]a×]lÑ]lÓ]nÐ\oÐoqÐrØ2Ô%×1Ñ1Ð2÷		
rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r=   rÀ   r-   rN  r°   r<  ræ   r>   r?   )r@   s   "rA   rB   r©  ½  ó2   € ÷ 
ñ 
à%ð
ð ð
ð &ð	
ð
 
ñ
rD   c                	óŠ   € \        R RV P                  4        2RV P                  4        R2. \        P                  OR7       R# )Úmissing_mp_ass_subscriptz&mp_ass_subscript_impl not defined for z0Dynamo does not yet support item assignment on 'r¶  re   N©r   rÈ   r   r‘  ©rJ   rÀ   rN  r<  s   &&&&rA   rn  Ú%VariableTracker.mp_ass_subscript_impl½  sI   € ô 	Ø.Ø<¸T×=RÑ=RÓ=TÐ<UÐVØJÈ4×K`ÑK`ÓKbÐJcÐceÐfØ2Ô%×1Ñ1Ð2÷		
rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rÃ  r?   )r@   s   "rA   rB   r©  Ê  rÄ  rD   c           	     	ó<   € \        R RV  RV RV 2RV  2. R7       R# )z%unsupported __setitem__ (sq_ass_item)zsq_ass_item_impl rc   z2Dynamo does not know how to handle sq_ass_item on re   Nr¼  rÈ  s   &&&&rA   rt  Ú VariableTracker.sq_ass_item_implÊ  s2   € ô 	Ø;Ø'¨ v¨Q¨s¨e°1°U°GÐ<ØLÈTÈFÐSØ÷		
rD   c               ó$   € V ^8„  d   QhRRRRRR/# ©r=   rÀ   r-   r„   r°   r>   r?   )r@   s   "rA   rB   r©  ×  ó(   € ÷ 
ñ 
à%ð
ð ð
ð 
ñ	
rD   c           	     ó¶   € \        RR\        V 4      P                   2RV P                  4        RVP                  4        R2. \        P
                  OR7       R# )z7Sequence concatenation via + operator (sq_concat slot).zmissing sq_concatzsq_concat not defined for z+Dynamo does not yet support concatenating 'ú' and 'r	  re   Nr·  ©rJ   rÀ   r„   s   &&&rA   rq  ÚVariableTracker.sq_concat_impl×  sc   € ô 	Ø'Ø0´°d³×1DÑ1DÐ0EÐFØEÀd×F[ÑF[ÓF]ÐE^Ð^eÐfk×f|Ñf|Óf~Ðeð  @Að  BØ2Ô%×1Ñ1Ð2÷		
rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  ä  rÏ  rD   c           	     ó¶   € \        RR\        V 4      P                   2RV P                  4        RVP                  4        R2. \        P
                  OR7       R# )zIIn-place sequence concatenation via += operator (sq_inplace_concat slot).zmissing sq_inplace_concatz"sq_inplace_concat not defined for z/Dynamo does not yet support inplace concat of 'rÑ  r	  re   Nr·  rÒ  s   &&&rA   rw  Ú&VariableTracker.sq_inplace_concat_implä  ss   € ô 	Ø/Ø8¼¸d»×9LÑ9LÐ8MÐNØIÈ$×J_ÑJ_ÓJaÐIbÐbiÐjo÷  kAñ  kAó  kCð  jDð  DEð  FØ2Ô%×1Ñ1Ð2÷		
rD   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r=   rÀ   r-   rÁ   r3   rÃ   r  rÄ   r  r>   r°   r?   )r@   s   "rA   rB   r©  ñ  sC   € ÷ Q
ñ Q
à%ðQ
ð ðQ
ð $ð	Q
ð
 +ðQ
ð 
ñQ
rD   c                	óÒ  € V P                  V4      pVe   V! WW#V4      pVe   V# V P                  P                  V4      pVe
   V! WW44      # VR8X  d   V'       g   V'       g   ^RIHp V! W4      # VR8X  d¢   \        V4      ^8X  d’   V'       gŠ   V P                  4       ;p	'       dr   V^ ,          P                  4       ;p
'       dS   \        P                  ! V	RR 4      \        P                  J d)   \        P                  P                  \        W©4      4      # VR8X  dx   \        V4      ^8X  dh   V'       g`   V P                  4       '       dJ   V^ ,          P                  4       p\         P#                  WP                  4       P%                  V4      4      # RV P'                  4        RV R2R.p\)        V \        P*                  4      '       df   VR9   d_   \)        V P,                  \.        \0        \2        34      '       d   VP5                  R	4       VP5                  R
4       VP5                  R4       \7        RRV  RV RV RV 2RV RV P'                  4        R2VR7       R # )Nr�   )Úgeneric_hashÚ__subclasscheck__Ú__reduce_ex__r¡  rÆ   r¢  r£  z¨Consider moving the creation of dict view object (e.g. `dict.keys()`, `dict.items()`,) to the compiled region, instead of passing it as an input to the compiled region.a   Dynamo does not fully support tracing builtin iterators (e.g. `map`, `zip`, `enumerate`) passed in from uncompiled to compiled regions (e.g. `torch.compile(fn)(enumerate(...))`). This can happen unintentionally if a previous graph break happens with a builtin iterator in the local scope.aF  List/dict comprehensions in Python <= 3.11 result in implicit function calls, which Dynamo cannot trace as a top level frame. Possible workarounds are (1) use a loop instead of a comprehension, (2) fix any graph breaks in the function above the comprehension, (3) wrap the comprehension in a function, or (4) use Python 3.12+.zUnsupported method callzcall_method rc   z*Dynamo does not know how to trace method `z` of class `rd   re   )r  r  )rº  Ú	_slotdefsr�  r:  rÙ  rÇ   rs  ÚinspectÚgetattr_staticr±   rÚ  r   r.   rQ  Ú
issubclassr  r°   r  rÛ  rÈ   rÏ  ÚUserDefinedObjectVariabler<  r   r   r   r–  r   )rJ   rÀ   rÁ   rÃ   rÄ   ÚmethodrK   ÚslotdefrÙ  Úself_pyÚ
derived_pyÚprotocolri   s   &&&&&        rA   Úcall_methodÚVariableTracker.call_methodñ  sE  € ð ×&Ñ& tÓ,ˆØÒÙ˜D d°&Ó9ˆFØÒ!Ø�à—.‘.×$Ñ$ TÓ*ˆØÒÙ˜4 TÓ2Ð2à�:Ô§d·6Ý5á Ó)Ð)àÐ&Ô&¬3¨t«9¸¬>Ç&Ø×2Ñ2Ó4Ð4�Ö4Ø" 1�g×8Ñ8Ó:Ð:�
Ö:ô ×*Ò*¨7Ð4GÈÓNÜ×-Ñ-ó.ô %×5Ñ5×<Ñ<Ü" :Ó7óð ð �OÔ#Ü�D“	˜Q”ßØ×'Ñ'×)Ò)à˜A•w×1Ñ1Ó3ˆHÜ"×(Ñ(Ø×+Ñ+Ó-×;Ñ;¸HÓEóð ð
 ˜d×3Ñ3Ó5Ð6°a¸°v¸_ÐMØ0ð
ˆô
 �dœI×?Ñ?×@Ò@ÀTð N
ô F
ô ˜$Ÿ*™*¤x´¼JÐ&G×HÒHØ—‘ðhôð �L‰Lð&ôð �L‰Lð5ôô 	Ø-Ø" 4 &¨¨$¨¨q°°°a¸°xÐ@ØDÀTÀFÈ,ÐW[×WlÑWlÓWnÐVoÐopÐqØ÷		
rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# ©r=   rÀ   r-   Útree_map_fnr/   Úmap_fnr°   Úrestr  Útree_map_kwargsr  r>   r?   )r@   s   "rA   rB   r©  D	  sF   € ÷ 
ñ 
à%ð
ð *ð
ð  ð	
ð
 $ð
ð 4ð
ð 
ñ
rD   c                óP  € VP                  R4      pVeX   VP                  4       '       gB   VP                  W./ 4      p VP                  4       pT'       d   TP                  Y.TO/ 4      # V P                  VVVVV4      #   \         d    T P                  TTTTT4      u # i ; i)zLPerformance optimization to implement optree.tree_map faster than tracing itÚis_leaf)r�  r"  rÜ  rs  r´   Ú_tree_map_fallbackÚcall_tree_map_branch)	rJ   rÀ   rê  rë  rì  rí  Úis_leaf_varÚpred_resultÚleaf_decisions	   &&&&&&   rA   Úcall_tree_mapÚVariableTracker.call_tree_mapD	  sÂ   € ð &×)Ñ)¨)Ó4ˆØÒ"¨;×+GÑ+G×+IÒ+IØ%×3Ñ3°B¸ÀÓCˆKð	Ø +× >Ñ >Ó @�÷ Ø×+Ñ+¨B°¸°¸rÓBÐBà×(Ñ(ØØØØØó
ð 	
øô 'ô Ø×.Ñ.ØØØØØ#óò ðús   Á B Â B%Â$B%c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# ré  r?   )r@   s   "rA   rB   r©  e	  sF   € ÷ 
ñ 
à%ð
ð *ð
ð  ð	
ð
 $ð
ð 4ð
ð 
ñ
rD   c                ó,   € V P                  VVVVV4      # )zKEmulate optree.tree_map without is_leaf/none_is_leaf checks (handled above))rð  )rJ   rÀ   rê  rë  rì  rí  s   &&&&&&rA   rñ  Ú$VariableTracker.call_tree_map_branche	  s&   € ð ×&Ñ&ØØØØØó
ð 	
rD   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# ré  r?   )r@   s   "rA   rB   r©  v	  sF   € ÷ 
ñ 
à%ð
ð *ð
ð  ð	
ð
 $ð
ð 4ð
ð 
ñ
rD   c                	óŽ   € VP                  4       pR  Vn        \        P                  RV VV4       VP	                  VW0.VOV4      # )c                 ó   € R # rx   r?   ©rÃ   rÄ   s   *,rA   rú   Ú4VariableTracker._tree_map_fallback.<locals>.<lambda>	  ó   € ÑQUrD   z@tree_map fastpath fallback triggered for %s (rest=%s, kwargs=%s)©rÈ  Ú_maybe_call_tree_map_fastpathÚlogÚdebugrÜ  )rJ   rÀ   rê  rë  rì  rí  Útree_map_fn_copys   &&&&&& rA   rð  Ú"VariableTracker._tree_map_fallbackv	  sZ   € ð '×,Ñ,Ó.ÐÙ9UÐÔ6Ü�	‰	ØNØØØô		
ð  ×-Ñ-ØØÐ!˜DÐ!Øó
ð 	
rD   c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# ©r=   rÀ   r-   rê  r/   rë  r°   rì  r  rí  r  Úkeypathztuple[Any, ...]r>   r?   )r@   s   "rA   rB   r©  Œ	  sP   € ÷ %
ñ %
à%ð%
ð *ð%
ð  ð	%
ð
 $ð%
ð 4ð%
ð !ð%
ð 
ñ%
rD   c           	     óÒ  € VP                  R4      pVe’   VP                  4       '       g|   VP                  W./ 4      p VP                  4       p	T	'       dP   \        P                  ! T U
u. uF  p
\        P                  Y4      NK  	  up
4      pTP                  YT .TO/ 4      # V P                  VVVVVV4      #   \         d    T P                  TTTTTT4      u # i ; iu up
i )zOPerformance optimization to implement tree_map_with_path faster than tracing itrï  )r�  r"  rÜ  rs  r´   Ú_tree_map_with_path_fallbackr   ÚTupleVariabler°   r  Úcall_tree_map_with_path_branch)rJ   rÀ   rê  rë  rì  rí  r  rò  ró  rô  ÚkÚkeypath_vars   &&&&&&&     rA   Úcall_tree_map_with_pathÚ'VariableTracker.call_tree_map_with_pathŒ	  s   € ð &×)Ñ)¨)Ó4ˆØÒ"¨;×+GÑ+G×+IÒ+IØ%×3Ñ3°B¸ÀÓCˆKð
Ø +× >Ñ >Ó @�÷ Ü'×5Ò5Ù;BÓC¹7°a”_×*Ñ*¨2Ö1¹7ÑCó�ð ×+Ñ+¨B¸dÐ0JÀTÐ0JÈBÓOÐOà×2Ñ2ØØØØØØó
ð 	
øô 'ô Ø×8Ñ8ØØØØØ#Øóò ðüò Ds   Á B= Á,C$Â=!C!Ã C!c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# r  r?   )r@   s   "rA   rB   r©  ³	  sY   € ÷ Hñ Hà%ðHð *ðHð  ð	Hð
 $ðHð 4ðHð !ðHð 
ñHrD   c           	     óª   € \         P                  ! V Uu. uF  p\        P                  W4      NK  	  up4      pVP	                  WV .VO/ 4      # u upi )z;Handle tree_map_with_path for leaf nodes (default behavior))r   r  r°   r  rÜ  )	rJ   rÀ   rê  rë  rì  rí  r  r  r  s	   &&&&&&&  rA   r  Ú.VariableTracker.call_tree_map_with_path_branch³	  sU   € ô  ×-Ò-Ù3:Ó;±7¨aŒ_×"Ñ" 2Ö)±7Ñ;ó
ˆð ×#Ñ# B°dÐ(B¸TÐ(BÀBÓGÐGùò <s   •Ac               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# r  r?   )r@   s   "rA   rB   r©  Â	  sP   € ÷ 
ñ 
à%ð
ð *ð
ð  ð	
ð
 $ð
ð 4ð
ð !ð
ð 
ñ
rD   c                	ó�   € VP                  4       pR  Vn        \        P                  RV VVV4       VP	                  VW0.VOV4      # )c                 ó   € R # rx   r?   rý  s   *,rA   rú   Ú>VariableTracker._tree_map_with_path_fallback.<locals>.<lambda>Ì	  rÿ  rD   zVtree_map_with_path fastpath fallback triggered for %s (rest=%s, kwargs=%s, keypath=%s)r   )rJ   rÀ   rê  rë  rì  rí  r  r  s   &&&&&&& rA   r
  Ú,VariableTracker._tree_map_with_path_fallbackÂ	  s]   € ð '×,Ñ,Ó.ÐÙ9UÐÔ6Ü�	‰	ØdØØØØô	
ð  ×-Ñ-ØØÐ!˜DÐ!Øó
ð 	
rD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÁ   r3   r>   r_   r?   )r@   s   "rA   rB   r©  Ú	  s   € ÷ ñ  #ð ¨$ñ rD   c                	ó   € R # rx   r?   rµ  s   &&rA   Úset_name_hintÚVariableTracker.set_name_hintÚ	  s   € ÙrD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÀ  r2   r>   r_   r?   )r@   s   "rA   rB   r©  Ý	  s   € ÷ /ñ /°>ð /Àdñ /rD   c                	ó   € Wn         R # rx   )rÀ  )rJ   rÀ  s   &&rA   Úset_source_locationÚ#VariableTracker.set_source_locationÝ	  s   € Ø.ÖrD   c               ó   € V ^8„  d   QhRR/# ©r=   r>   r°   r?   )r@   s   "rA   rB   r©  à	  s   € ÷ ñ ˜ñ rD   c                ó   € V # )z=Used by LazyVariableTracker to build the real VariableTrackerr?   r€   s   &rA   ÚrealizeÚVariableTracker.realizeà	  ó   € àˆrD   c               ó   € V ^8„  d   QhRR/# r"  r?   )r@   s   "rA   rB   r©  ä	  s   € ÷ ñ ˜ñ rD   c                ó   € V # )zSUsed by LazyVariableTracker to return the real VariableTracker if it already existsr?   r€   s   &rA   rÐ  ÚVariableTracker.unwrapä	  r&  rD   c               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r©  è	  s   € ÷ ñ ˜Tñ rD   c                ó   € R# )z:Used by LazyVariableTracker to indicate an unrealized nodeTr?   r€   s   &rA   Úis_realizedÚVariableTracker.is_realizedè	  s   € árD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  ì	  s   € ÷ 
ñ 
Ð#<ð 
Àñ 
rD   c                óŒ   € \        RRV P                  4        R2RV P                  4        R2. \        P                  OR7       R# )u·   
Implements tp_iternext slot semantics.
Subclasses override this to support next(). Reaching this base is a
bug â€” it means tp_iternext is missing for that VariableTracker subclass.
zMissing tp_iternextznext(Ú)z"Dynamo does not support next() on z8. Add tp_iternext_impl to this VariableTracker subclass.re   NrÇ  r  s   &&rA   r  Ú VariableTracker.tp_iternext_implì	  sT   € ô 	Ø)Ø˜D×1Ñ1Ó3Ð4°AÐ6à4°T×5JÑ5JÓ5LÐ4Mð NJð Jð 3Ô%×1Ñ1Ð2÷	
rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  ü	  s   € ÷ )ñ )Ð 9ð )¸oñ )rD   c                	ó$   € V P                  V4      # rx   )r  r  s   &&rA   Únext_variableÚVariableTracker.next_variableü	  s   € Ø×$Ñ$ RÓ(Ð(rD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÀ   r-   r>   r†   r?   )r@   s   "rA   rB   r©  ÿ	  s   € ÷ Gñ GÐ!:ð G¸tñ GrD   c                	ó^   € \        VP                  ;'       d    VP                  V 4      4      # rx   )r†   Ústrict_checks_fnr  s   &&rA   Úis_strict_modeÚVariableTracker.is_strict_modeÿ	  s&   € Ü�B×'Ñ'×EÐE¨B×,?Ñ,?ÀÓ,EÓFÐFrD   c               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r©  
  s   € ÷ 'ñ '˜Dñ 'rD   c                ó,   € V P                  4       '       * # )z0Whether Dynamo allows mutation on this variable.)Úis_immutabler€   s   &rA   Ú
is_mutableÚVariableTracker.is_mutable
  s   € à×$Ñ$Ó&Ô&Ð&rD   c               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r©  
  s   € ÷ *ñ *˜dñ *rD   c                ó   € V P                   RJ # )z.Whether Dynamo bans mutation on this variable.N)rÁ  r€   s   &rA   r=  ÚVariableTracker.is_immutable
  s   € à×!Ñ! TÐ)Ð)rD   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# )
r=   rÀ   r-   r<  r
   rL   r¡   r$  r†   r>   r?   )r@   s   "rA   rB   r©  
  sA   € ÷ Nñ NØ%ðNàðNð ðNð ð	Nð
 
ñNrD   c                ó`  € Vf    \         P                  P                  W4      # V'       d   \         P                  ! W4      ! V4      # \	        V4      \
        P                  P                  9   d    \
        P                  P                  W4      # \
        P                  P                  WV R7      # )z=Create a new VariableTracker from a value and optional Source)rÀ   )	ÚbuilderÚSourcelessBuilderrQ  ÚVariableBuilderr±   r   ÚLazyConstantVariableÚsupported_typesrž  )rÀ   r<  rL   r$  s   &&&&rA   r  ÚVariableTracker.build

  s†   € ð Š>Ü×,Ñ,×3Ñ3°BÓ>Ð>ßÜ×*Ò*¨2Ô6°uÓ=Ð=Ü�%‹[œI×:Ñ:×JÑJÔJô ×1Ñ1×8Ñ8¸ÓGÐGä×0Ñ0×7Ñ7¸È"Ð7ÓMÐMrD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÀ   r-   r>   r7   r?   )r@   s   "rA   rB   r©  
  s   € ÷ ñ Ð2ð °zñ rD   c                ó†   € V P                   '       d/   \        VP                  P                  V P                   4      4      # R# )ut  Return id() of the underlying Python object, or None if unavailable.

The base implementation uses source resolution for sourceful VTs.
Subclasses override for special cases (e.g. NNModuleVariable uses
get_submodule, ConstantVariable handles singletons).

Returns None for sourceless VTs â€” callers use FakeIdVariable in
that case (see generic_id in object_protocol.py).
N)rL   r   r  r  r  s   &&rA   Úget_idÚVariableTracker.get_id
  s.   € ð �;�;ˆ;Ü�b—i‘i×4Ñ4°T·[±[ÓAÓBÐBÙrD   c               ó   € V ^8„  d   QhRR/# )r=   r>   zCallable[..., Any] | Noner?   )r@   s   "rA   rB   r©  ,
  s   € ÷ ñ Ð#<ñ rD   c                	óJ   € V P                   '       d   \        P                  # R # rx   )rL   r   ÚID_MATCHr€   s   &rA   Úget_id_guard_typeÚ!VariableTracker.get_id_guard_type,
  s   € Ø�;�;ˆ;Ü×(Ñ(Ð(ÙrD   c               ó   € V ^8„  d   QhRR/# )r=   r>   r…   r?   )r@   s   "rA   rB   r©  1
  s   € ÷ 	"ñ 	"¨fñ 	"rD   c                óR   €  V P                  4       #   \         d
    \        u # i ; i)z€Return the Python object this VT wraps, for `is` comparison.

Returns NO_SUCH_SUBOBJ if no concrete Python object is available.
)rs  r´   r·   r€   s   &rA   Úget_real_python_backed_valueÚ,VariableTracker.get_real_python_backed_value1
  s+   € ð	"Ø×*Ñ*Ó,Ð,øÜ"ô 	"Ü!Ò!ð	"ús   ‚ ’&¥&c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  <
  ó   € ÷ 
ñ 
à%ð
ð 
ñ
rD   c                óP   € \        \        VRV P                  4        R2.R7       R# )a  Mirrors CPython's PyNumber_Index / nb_index slot.

https://github.com/python/cpython/blob/c09ccd9c429/Objects/abstract.c#L1411-L1450

The base implementation raises TypeError, matching CPython's behavior
when tp_as_number->nb_index is NULL (_PyIndex_Check fails).
r	  z,' object cannot be interpreted as an integerrª  Nr«  r  s   &&rA   rc  ÚVariableTracker.nb_index_impl<
  s.   € ô 	!ÜØà�D×)Ñ)Ó+Ð,Ð,XÐYð÷	
rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  O
  rY  rD   c                ó”   € \        R\        V 4      P                   R2RV P                  4        R2. \        P
                  OR7       R# )zëMirrors CPython's tp_repr slot.

https://github.com/python/cpython/blob/v3.13.3/Objects/object.c#L745-L778

Called when type_implements_tp_repr returns True for this type.
Subclasses override to provide the actual repr implementation.
ztp_repr_impl not implementedz. has tp_repr slot but no tp_repr_impl overrideú	The type z[ has a tp_repr C slot but the corresponding VariableTracker doesn't implement tp_repr_impl.re   Nr·  r  s   &&rA   r  ÚVariableTracker.tp_repr_implO
  sQ   € ô 	Ø2Ü˜D“z×*Ñ*Ð+Ð+YÐZØ# D×$9Ñ$9Ó$;Ð#<ð =Pð Pà2Ô%×1Ñ1Ð2÷	
rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  b
  s   € ÷ 
ñ 
à%ð
ð 
ñ
rD   c           
     óà   € \        R\        V 4      P                   RV P                  4        2RV P                  4        R\        V 4      P                   R2. \        P
                  OR7       R# )z¦Dynamo hook for VariableTrackers with dedicated str behavior.
Subclasses override this for the per-type str result; generic_str()
handles dispatch and repr fallback.
ztp_str_impl not implementedz! has no tp_str_impl override for z&Dynamo does not implement __str__ for z in rÆ   re   Nr·  r  s   &&rA   r  ÚVariableTracker.tp_str_implb
  sp   € ô 	Ø1Ü˜D“z×*Ñ*Ð+Ð+LÈT×MbÑMbÓMdÐLeÐfØ@À×AVÑAVÓAXÐ@Yð ZÜ�t“*×%Ñ%Ð& að)à2Ô%×1Ñ1Ð2÷	
rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  r
  ó   € ÷ 
ñ 
à%ð
ð 
ñ
rD   c                ó”   € \        R\        V 4      P                   R2RV P                  4        R2. \        P
                  OR7       R# )z£Mirrors CPython's tp_as_number->nb_int slot.

Called when type_implements_nb_int returns True for this type.
Subclasses override to provide the actual conversion.
znb_int_impl not implementedz, has nb_int slot but no nb_int_impl overrider^  zZ has an nb_int C slot but the corresponding VariableTracker doesn't implement nb_int_impl.re   Nr·  r  s   &&rA   rA  ÚVariableTracker.nb_int_implr
  sQ   € ô 	Ø1Ü˜D“z×*Ñ*Ð+Ð+WÐXØ# D×$9Ñ$9Ó$;Ð#<ð =Oð Oà2Ô%×1Ñ1Ð2÷	
rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  ƒ
  rd  rD   c                ó”   € \        R\        V 4      P                   R2RV P                  4        R2. \        P
                  OR7       R# )z§Mirrors CPython's tp_as_number->nb_float slot.

Called when type_implements_nb_float returns True for this type.
Subclasses override to provide the actual conversion.
znb_float_impl not implementedz0 has nb_float slot but no nb_float_impl overrider^  z^ has an nb_float C slot but the corresponding VariableTracker doesn't implement nb_float_impl.re   Nr·  r  s   &&rA   rC  ÚVariableTracker.nb_float_implƒ
  sQ   € ô 	Ø3Ü˜D“z×*Ñ*Ð+Ð+[Ð\Ø# D×$9Ñ$9Ó$;Ð#<ð =Qð Qà2Ô%×1Ñ1Ð2÷	
rD   c               ó$   € V ^8„  d   QhRRRRRR/# )r=   Útp_slot_namer3   r„   r°   r(  r†   r?   )r@   s   "rA   rB   r©  ”
  s(   € ÷ 
ñ 
àð
ð ð
ð ñ	
rD   c                	ó¼   € \        R V RV P                  4        RVP                  4        RV R2RV P                  4        RV 2. \        P                  OR7       R# )	z!tp_as_number slot not implementedÚ(rŽ  z
, reverse=r0  r^  z does not implement the re   NrÇ  )rJ   rk  r„   r(  s   &&&&rA   Ú_nb_slot_not_implementedÚ(VariableTracker._nb_slot_not_implemented”
  so   € ô 	Ø7Ø#�n A d×&;Ñ&;Ó&=Ð%>¸bÀ×AWÑAWÓAYÐ@ZÐZdÐelÐdmÐmnÐoØ# D×$9Ñ$9Ó$;Ð#<Ð<TÐUaÐTbÐcØ2Ô%×1Ñ1Ð2÷		
rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r=   rÀ   r-   r„   r°   r(  r†   r>   r?   )r@   s   "rA   rB   r©  ¡
  ó2   € ÷ :ñ :à%ð:ð ð:ð ð	:ð
 
ñ:rD   c                ó6   € \         P                  ! \        4      # )z¹tp_as_number->nb_lshift slot. Default: returns NotImplemented.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rlshift__`` instead of ``__lshift__``).
©r   r.   ÚNotImplemented©rJ   rÀ   r„   r(  s   &&&&rA   r2  ÚVariableTracker.nb_lshift_impl¡
  ó   € ô ×)Ò)¬.Ó9Ð9rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  ®
  ó(   € ÷ :ñ :à%ð:ð ð:ð 
ñ	:rD   c                ó6   € \         P                  ! \        4      # )zFtp_as_number->nb_inplace_lshift slot. Default: returns NotImplemented.rt  rÒ  s   &&&rA   rO  Ú&VariableTracker.nb_inplace_lshift_impl®
  ó   € ô ×)Ò)¬.Ó9Ð9rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  ¶
  rr  rD   c                ó6   € \         P                  ! \        4      # )z¹tp_as_number->nb_rshift slot. Default: returns NotImplemented.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rrshift__`` instead of ``__rshift__``).
rt  rv  s   &&&&rA   r5  ÚVariableTracker.nb_rshift_impl¶
  rx  rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  Ã
  rz  rD   c                ó6   € \         P                  ! \        4      # )zFtp_as_number->nb_inplace_rshift slot. Default: returns NotImplemented.rt  rÒ  s   &&&rA   rQ  Ú&VariableTracker.nb_inplace_rshift_implÃ
  r}  rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  Ë
  rr  rD   c                ó6   € \         P                  ! \        4      # )z°tp_as_number->nb_and slot. Default: returns NotImplemented.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rand__`` instead of ``__and__``).
rt  rv  s   &&&&rA   r8  ÚVariableTracker.nb_and_implË
  rx  rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  Ø
  rz  rD   c                ó6   € \         P                  ! \        4      # )zCtp_as_number->nb_inplace_and slot. Default: returns NotImplemented.rt  rÒ  s   &&&rA   rS  Ú#VariableTracker.nb_inplace_and_implØ
  r}  rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  à
  rr  rD   c                ó6   € \         P                  ! \        4      # )z°tp_as_number->nb_xor slot. Default: returns NotImplemented.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rxor__`` instead of ``__xor__``).
rt  rv  s   &&&&rA   r;  ÚVariableTracker.nb_xor_implà
  rx  rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  í
  rz  rD   c                ó6   € \         P                  ! \        4      # )zCtp_as_number->nb_inplace_xor slot. Default: returns NotImplemented.rt  rÒ  s   &&&rA   rU  Ú#VariableTracker.nb_inplace_xor_implí
  r}  rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  õ
  rr  rD   c                ó6   € \         P                  ! \        4      # )zÃtp_as_number->nb_floor_divide slot. Default: returns NotImplemented.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rfloordiv__`` instead of ``__floordiv__``).
rt  rv  s   &&&&rA   rY  Ú$VariableTracker.nb_floor_divide_implõ
  rx  rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©    rz  rD   c                ó6   € \         P                  ! \        4      # )zLtp_as_number->nb_inplace_floor_divide slot. Default: returns NotImplemented.rt  rÒ  s   &&&rA   r_  Ú,VariableTracker.nb_inplace_floor_divide_impl  r}  rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  
  rr  rD   c                ó6   € \         P                  ! \        4      # )zÀtp_as_number->nb_true_divide slot. Default: returns NotImplemented.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rtruediv__`` instead of ``__truediv__``).
rt  rv  s   &&&&rA   r\  Ú#VariableTracker.nb_true_divide_impl
  rx  rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©    rz  rD   c                ó6   € \         P                  ! \        4      # )zKtp_as_number->nb_inplace_true_divide slot. Default: returns NotImplemented.rt  rÒ  s   &&&rA   ra  Ú+VariableTracker.nb_inplace_true_divide_impl  r}  rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©    rr  rD   c                ó6   € \         P                  ! \        4      # )z¶tp_as_number->nb_remainder slot. Default: returns NotImplemented.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rmod__`` instead of ``__mod__``).
rt  rv  s   &&&&rA   r  Ú!VariableTracker.nb_remainder_impl  rx  rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  ,  rz  rD   c                ó6   € \         P                  ! \        4      # )zItp_as_number->nb_inplace_remainder slot. Default: returns NotImplemented.rt  rÒ  s   &&&rA   rK  Ú)VariableTracker.nb_inplace_remainder_impl,  r}  rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  4  ó2   € ÷ :ñ :à%ð:ð ð:ð ð	:ð
 
ñ:rD   c                ó6   € \         P                  ! \        4      # )zÖtp_as_number->nb_divmod slot. Default: returns NotImplemented.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rdivmod__`` instead of ``__divmod__``). divmod has no
in-place form.
rt  rv  s   &&&&rA   r"  ÚVariableTracker.nb_divmod_impl4  ó   € ô ×)Ò)¬.Ó9Ð9rD   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# )
r=   rÀ   r-   r„   r°   r/  ræ   r(  r†   r>   r?   )r@   s   "rA   rB   r©  B  s<   € ÷ :ñ :à%ð:ð ð:ð "ð	:ð
 ð:ð 
ñ:rD   c                	ó6   € \         P                  ! \        4      # rx   rt  )rJ   rÀ   r„   r/  r(  s   &&&&&rA   r%  ÚVariableTracker.nb_power_implB  ó   € ô ×)Ò)¬.Ó9Ð9rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r=   rÀ   r-   Úvr°   Úwr>   r?   )r@   s   "rA   rB   r©  K  s2   € ÷ 
:ñ 
:à%ð
:ð ð
:ð ð	
:ð
 
ñ
:rD   c                ó6   € \         P                  ! \        4      # )z†tp_as_number->nb_power slot when self is the modulus (z) operand.

``v`` is the base, ``w`` is the exponent, ``self`` is the modulus.
rt  )rJ   rÀ   r¬  r­  s   &&&&rA   Únb_power_z_implÚVariableTracker.nb_power_z_implK  s   € ô ×)Ò)¬.Ó9Ð9rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r=   rÀ   r-   r„   r°   r/  ræ   r>   r?   )r@   s   "rA   rB   r©  W  s2   € ÷ :ñ :à%ð:ð ð:ð "ð	:ð
 
ñ:rD   c                	ó6   € \         P                  ! \        4      # rx   rt  )rJ   rÀ   r„   r/  s   &&&&rA   rM  Ú%VariableTracker.nb_inplace_power_implW  r}  rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  _  s8   € ÷ Yñ Yà%ðYð ðYð ð	Yð
 
ñYrD   c                ó(   € V P                  RW#R7      # )a>  tp_as_number->nb_multiply slot. Default: graph-breaks.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rmul__`` instead of ``__mul__``).  The base default
graph-breaks so unmigrated VTs surface loudly; ``binary_op1`` only
invokes this on types whose CPython type advertises the slot.
r  r'  ©rn  rv  s   &&&&rA   r  Ú VariableTracker.nb_multiply_impl_  s   € ð ×,Ñ,Ð-?ÀÐ,ÓXÐXrD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  n  s-   € ÷ Pñ Pà%ðPð ðPð 
ñ	PrD   c                ó&   € V P                  RV4      # )z>tp_as_number->nb_inplace_multiply slot. Default: graph-breaks.rI  r¶  rÒ  s   &&&rA   rI  Ú(VariableTracker.nb_inplace_multiply_impln  s   € ð ×,Ñ,Ð-GÈÓOÐOrD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  v  s2   € ÷ 
ñ 
à%ð
ð ð
ð ð	
ð
 
ñ
rD   c                ó(   € V P                  RW#R7      # )z¸tp_as_number->nb_matrix_multiply slot. Default: graph-breaks.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rmatmul__`` instead of ``__matmul__``).
re  r'  r¶  rv  s   &&&&rA   re  Ú'VariableTracker.nb_matrix_multiply_implv  s!   € ð ×,Ñ,Ø% uð -ó 
ð 	
rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  …  s-   € ÷ Wñ Wà%ðWð ðWð 
ñ	WrD   c                ó&   € V P                  RV4      # )zEtp_as_number->nb_inplace_matrix_multiply slot. Default: graph-breaks.rh  r¶  rÒ  s   &&&rA   rh  Ú/VariableTracker.nb_inplace_matrix_multiply_impl…  s   € ð ×,Ñ,Ð-NÐPUÓVÐVrD   c               ó$   € V ^8„  d   QhRRRRRR/# ©r=   rÀ   r-   Úcountr°   r>   r?   )r@   s   "rA   rB   r©  �  s(   € ÷ 
ñ 
à%ð
ð ð
ð 
ñ	
rD   c                ó”   € \        R\        V 4      P                   R2RV P                  4        R2. \        P
                  OR7       R# )z£tp_as_sequence->sq_repeat slot.

Implements sequence repetition (e.g. ``[1, 2] * 3``).  ``count`` is
an int VariableTracker already produced by ``nb_index_impl``.
zsq_repeat_impl not implementedz2 has sq_repeat slot but no sq_repeat_impl overrider^  z` has an sq_repeat C slot but the corresponding VariableTracker doesn't implement sq_repeat_impl.re   Nr·  ©rJ   rÀ   rÃ  s   &&&rA   rr  ÚVariableTracker.sq_repeat_impl�  sQ   € ô 	Ø4Ü˜D“z×*Ñ*Ð+Ð+]Ð^Ø# D×$9Ñ$9Ó$;Ð#<ð =Rð Rà2Ô%×1Ñ1Ð2÷	
rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÂ  r?   )r@   s   "rA   rB   r©  Ÿ  s(   € ÷ 
ñ 
à%ð
ð ð
ð 
ñ	
rD   c                ó”   € \        R\        V 4      P                   R2RV P                  4        R2. \        P
                  OR7       R# )z'tp_as_sequence->sq_inplace_repeat slot.z&sq_inplace_repeat_impl not implementedzB has sq_inplace_repeat slot but no sq_inplace_repeat_impl overrider^  zp has an sq_inplace_repeat C slot but the corresponding VariableTracker doesn't implement sq_inplace_repeat_impl.re   Nr·  rÅ  s   &&&rA   rx  Ú&VariableTracker.sq_inplace_repeat_implŸ  sQ   € ô 	Ø<Ü˜D“z×*Ñ*Ð+Ð+mÐnØ# D×$9Ñ$9Ó$;Ð#<ð =Zð Zà2Ô%×1Ñ1Ð2÷	
rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  ­  rr  rD   c                ó6   € \         P                  ! \        4      # )z­tp_as_number->nb_or slot. Default: returns NotImplemented.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__ror__`` instead of ``__or__``).
rt  rv  s   &&&&rA   r>  ÚVariableTracker.nb_or_impl­  rx  rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  º  rz  rD   c                ó6   € \         P                  ! \        4      # )zBtp_as_number->nb_inplace_or slot. Default: returns NotImplemented.rt  rÒ  s   &&&rA   rW  Ú"VariableTracker.nb_inplace_or_implº  r}  rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  Â  rd  rD   c                ó”   € \        R\        V 4      P                   R2RV P                  4        R2. \        P
                  OR7       R# )z«Mirrors CPython's tp_as_number->nb_negative slot.

Called when type_implements_nb_negative returns True for this type.
Subclasses override to provide the actual negation.
z nb_negative_impl not implementedz6 has nb_negative slot but no nb_negative_impl overrider^  zd has an nb_negative C slot but the corresponding VariableTracker doesn't implement nb_negative_impl.re   Nr·  r  s   &&rA   r(  Ú VariableTracker.nb_negative_implÂ  óQ   € ô 	Ø6Ü˜D“z×*Ñ*Ð+Ð+aÐbØ# D×$9Ñ$9Ó$;Ð#<ð =Tð Tà2Ô%×1Ñ1Ð2÷	
rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  Ó  rd  rD   c                ó”   € \        R\        V 4      P                   R2RV P                  4        R2. \        P
                  OR7       R# )z«Mirrors CPython's tp_as_number->nb_positive slot.

Called when type_implements_nb_positive returns True for this type.
Subclasses override to provide the actual positive.
z nb_positive_impl not implementedz6 has nb_positive slot but no nb_positive_impl overrider^  zd has an nb_positive C slot but the corresponding VariableTracker doesn't implement nb_positive_impl.re   Nr·  r  s   &&rA   r*  Ú VariableTracker.nb_positive_implÓ  rÓ  rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  ä  r£  rD   c                ó6   € \         P                  ! \        4      # )z¥tp_as_number->nb_add slot. Default: graph break.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__radd__`` instead of ``__add__``).
rt  rv  s   &&&&rA   r  ÚVariableTracker.nb_add_implä  r¦  rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©  ò  s(   € ÷ :ñ :à%ð:ð ð:ð 
ñ	:rD   c                ó6   € \         P                  ! \        4      # )z8tp_as_number->nb_inplace_add slot. Default: graph break.rt  rÒ  s   &&&rA   rE  Ú#VariableTracker.nb_inplace_add_implò  rª  rD   c               ó(   € V ^8„  d   QhRRRRRRRR/# rq  r?   )r@   s   "rA   rB   r©  û  rr  rD   c                ó6   € \         P                  ! \        4      # )zªtp_as_number->nb_subtract slot. Default: graph break.

``reverse=True`` means self is the right-hand operand (CPython would
look up ``__rsub__`` instead of ``__sub__``).
rt  rv  s   &&&&rA   r  Ú VariableTracker.nb_subtract_implû  rx  rD   c               ó$   € V ^8„  d   QhRRRRRR/# rÎ  r?   )r@   s   "rA   rB   r©    rz  rD   c                ó6   € \         P                  ! \        4      # )z=tp_as_number->nb_inplace_subtract slot. Default: graph break.rt  rÒ  s   &&&rA   rG  Ú(VariableTracker.nb_inplace_subtract_impl  r}  rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©    rd  rD   c                ó”   € \        R\        V 4      P                   R2RV P                  4        R2. \        P
                  OR7       R# )z±Mirrors CPython's tp_as_number->nb_absolute slot.

Called when type_implements_nb_absolute returns True for this type.
Subclasses override to provide the actual absolute value.
z nb_absolute_impl not implementedz6 has nb_absolute slot but no nb_absolute_impl overrider^  zd has an nb_absolute C slot but the corresponding VariableTracker doesn't implement nb_absolute_impl.re   Nr·  r  s   &&rA   r,  Ú VariableTracker.nb_absolute_impl  rÓ  rD   c               ó    € V ^8„  d   QhRRRR/# r•  r?   )r@   s   "rA   rB   r©  !  rd  rD   c                ó”   € \        R\        V 4      P                   R2RV P                  4        R2. \        P
                  OR7       R# )z°Mirrors CPython's tp_as_number->nb_invert slot.

Called when type_implements_nb_invert returns True for this type.
Subclasses override to provide the actual bitwise inversion.
znb_invert_impl not implementedz2 has nb_invert slot but no nb_invert_impl overrider^  z` has an nb_invert C slot but the corresponding VariableTracker doesn't implement nb_invert_impl.re   Nr·  r  s   &&rA   r0  ÚVariableTracker.nb_invert_impl!  sQ   € ô 	Ø4Ü˜D“z×*Ñ*Ð+Ð+]Ð^Ø# D×$9Ñ$9Ó$;Ð#<ð =Rð Rà2Ô%×1Ñ1Ð2÷	
rD   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r=   rL   r¡   rÁ  zMutationType | NonerÀ  zSourceLocation | NonerÂ  rÃ  r>   r_   r?   )r@   s   "rA   rB   r©  2  s>   € ÷ (ñ (ð ð(ð +ð	(ð
 /ð(ð 5ð(ð 
ñ(rD   c               	ó>  <€ \         SV `  4        Wn        W0n        W n        W@n        Ver   \        V\        \        34      '       d   Ve   \        R4      hR # \        V\        \        34      '       g   \        R\        V4       24      hVf   \        R4      hR # R # )Nz=source must be None for ValueMutationNew/AttributeMutationNewzAExpected ValueMutationExisting or AttributeMutationExisting, got zKsource must not be None for ValueMutationExisting/AttributeMutationExisting)ry   rl   rL   rÀ  rÁ  rÂ  rÏ  rs   rž   ÚAssertionErrorrŒ   r—   r±   )rJ   rL   rÁ  rÀ  rÂ  r{   s   &$$$$€rA   rl   ÚVariableTracker.__init__2  s¿   ø€ ô 	‰ÑÔØŒØ.ÔØ*ÔàŒð Ò$Ü˜-Ô*:Ô<PÐ)Q×RÒRð Ò%Ü(ØWóð ñ &ô
 "Ø!Ô$9Ô;TÐ#U÷ò ô )ðÜ# MÓ2Ð3ð5óð ð ’>Ü(Øeóð ñ "ñ) %rD   c               ó   € V ^8„  d   QhRR/# )r=   r>   rÄ  r?   )r@   s   "rA   rB   r©  ]  s   € ÷ 5ñ 5˜ñ 5rD   c                	ó*   € \        \        V 4      4      # rx   )rí  rµ   r€   s   &rA   Útp_typeÚVariableTracker.tp_type\  s   € äÔ-¨dÓ3Ó4Ð4rD   c               ó   € V ^8„  d   QhRR/# )r=   r>   rŽ  r?   )r@   s   "rA   rB   r©  a  s   € ÷ Bñ B˜oñ BrD   c                	ó>   € \        \        V 4      4      P                  # rx   )rí  rµ   rÑ  r€   s   &rA   rÑ  ÚVariableTracker.tp_as_number`  s   € äÔ-¨dÓ3Ó4×AÑAÐArD   c               ó   € V ^8„  d   QhRR/# )r=   r>   rµ  r?   )r@   s   "rA   rB   r©  e  s   € ÷ Dñ DÐ 1ñ DrD   c                	ó>   € \        \        V 4      4      P                  # rx   )rí  rµ   rÒ  r€   s   &rA   rÒ  ÚVariableTracker.tp_as_sequenced  s   € äÔ-¨dÓ3Ó4×CÑCÐCrD   c               ó   € V ^8„  d   QhRR/# )r=   r>   r¿  r?   )r@   s   "rA   rB   r©  i  s   € ÷ Cñ CÐ/ñ CrD   c                	ó>   € \        \        V 4      4      P                  # rx   )rí  rµ   rÓ  r€   s   &rA   rÓ  ÚVariableTracker.tp_as_mappingh  s   € äÔ-¨dÓ3Ó4×BÑBÐBrD   c               ó   € V ^8„  d   QhRR/# ©r=   r>   r�  r?   )r@   s   "rA   rB   r©  m  ó   € ÷ =ñ =˜ñ =rD   c                	ó>   € \        \        V 4      4      P                  # rx   )rí  rµ   rÌ  r€   s   &rA   rÌ  ÚVariableTracker.tp_iterl  ó   € äÔ-¨dÓ3Ó4×<Ñ<Ð<rD   c               ó   € V ^8„  d   QhRR/# rû  r?   )r@   s   "rA   rB   r©  q  s   € ÷ Añ A˜[ñ ArD   c                	ó>   € \        \        V 4      4      P                  # rx   )rí  rµ   rÍ  r€   s   &rA   rÍ  ÚVariableTracker.tp_iternextp  s   € äÔ-¨dÓ3Ó4×@Ñ@Ð@rD   c               ó   € V ^8„  d   QhRR/# rû  r?   )r@   s   "rA   rB   r©  u  s   € ÷ <ñ <˜ñ <rD   c                	ó>   € \        \        V 4      4      P                  # rx   )rí  rµ   rÈ  r€   s   &rA   rÈ  ÚVariableTracker.tp_strt  s   € äÔ-¨dÓ3Ó4×;Ñ;Ð;rD   c               ó   € V ^8„  d   QhRR/# rû  r?   )r@   s   "rA   rB   r©  y  rü  rD   c                	ó>   € \        \        V 4      4      P                  # rx   )rí  rµ   rÅ  r€   s   &rA   rÅ  ÚVariableTracker.tp_reprx  rÿ  rD   c                	ó*   € \        \        V 4      4      # rx   )r~  rµ   r€   s   &rA   rÜ  ÚVariableTracker._slotdefs|  s   € ä Ô!6°tÓ!<Ó=Ð=rD   c               ó    € V ^8„  d   QhRRRR/# )r=   rÄ   r
   r>   r_   r?   )r@   s   "rA   rB   r©  €  s   € ÷ "Vñ "V¨ð "V°ñ "VrD   c                óœ   <€ \         SV `  ! R/ VB  R R lp\        P                  V RV4       R R lp\        P                  V RV4       R# )	aª  
Wraps all subclasses' `as_python_constant` and `reconstruct` so that it cannot be
called twice in the same call chain - i.e. self-referential objects.
For `as_python_constant` - self-referential objects are NOT treated as constants.
For `reconstruct` - we will graph break. The graph break can be avoided if the VT subclass
can generate and cache itself before recursively `reconstruct`ing - see ListVariable for an example.
c               ó   € V ^8„  d   QhRR/# ©r=   r>   r   r?   )r@   s   "rA   rB   Ú7VariableTracker.__init_subclass__.<locals>.__annotate__Š  s   € ÷ 	ñ 	°ñ 	rD   c                ó    € \        W  R 2R7      h)z is self-referential)r  rý  r€   s   &rA   Úas_python_constant_failureÚEVariableTracker.__init_subclass__.<locals>.as_python_constant_failureŠ  s   € Ü5Ø˜FÐ"6Ð7ôð rD   rs  c               ó   € V ^8„  d   QhRR/# r  r?   )r@   s   "rA   rB   r  “  s   € ÷ 	ñ 	¨ñ 	rD   c                óf   € \        R \        V 4      RV  R2RR.\        P                  ORNR7       R# )z)Reconstruction failure (self-referential)z0Dynamo tried to reconstruct sourceless variable z~, but it is self-referential. Dynamo must manually implement reconstruction rules for self-referentiable sourceless variables.z®If Dynamo is attempting to trace a return statement and your code is attempting to return a variable that Dynamo cannot reconstruct, then remove it from the return statement.zhRemove the self-reference in the variable. A self-referring list, for example, is `l = []; l.append(l)`.zPReport an issue to PyTorch if you need self-referential reconstrtuction support.re   N)r   r3   r   ÚCAUSED_BY_EARLIER_GRAPH_BREAKr€   s   &rA   Úreconstruct_failureÚ>VariableTracker.__init_subclass__.<locals>.reconstruct_failure“  sQ   € ÜØCÜ˜D›	ØNÈtÈfð Usð sð`à~ðô '×DÑDð	ð
 gð÷rD   ry  Nr?   )ry   Ú__init_subclass__r°   Ú_add_call_once_guard)r”  rÄ   r  r  r{   s   &,  €rA   r  Ú!VariableTracker.__init_subclass__€  sM   ø€ ô 	‰Ò!Ñ+ FÒ+õ	ô
 	×,Ñ,ØÐ%Ð'Aô	
õ	ô 	×,Ñ,¨S°-ÐATÖUrD   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r=   r”  r8  rá  r3   Úcallbackz Callable[[VariableTracker], Any]r>   r_   r?   )r@   s   "rA   rB   r©  ¥  s0   € ÷ -ñ -Ø"ð-àð-ð 3ð-ð 
ñ	-rD   c                	óÜ   aa€ \        W4      oS\        \        V4      J g   \        SR 4      '       d   R# \        P                  ! S4      R VV3R ll4       pRVn        \        WV4       R# )Ú_call_once_guardedNc               ó$   € V ^8„  d   QhRRRRRR/# )r=   rÃ   r
   rÄ   r>   r°   r?   )r@   s   "rA   rB   Ú:VariableTracker._add_call_once_guard.<locals>.__annotate__²  s!   € ÷ 	$ñ 	$¨ð 	$°sð 	$¸ñ 	$rD   c                óD  <€ \         P                  4       pVf    \        4       p\         P                  V4       \        V 4      \        S4      3pWC9   d	   S! V 4       VP	                  V4        S! V .VO5/ VB VP                  V4       #   TP                  T4       i ; irx   )rU   r�  Úsetr   ÚaddÚdiscard)rJ   rÃ   rÄ   ÚactiverN  r  Úoriginal_methods   &*,  €€rA   Úguarded_methodÚ<VariableTracker._add_call_once_guard.<locals>.guarded_method±  s…   ø€ ä%×)Ñ)Ó+ˆFØŠ~Ü›�Ü ×$Ñ$ VÔ,ä�d“8œR Ó0Ð1ˆCØŒ}Ù˜”à�J‰J�sŒOð$Ù& tÐ=¨dÒ=°fÑ=à—‘˜sÕ#ø�—‘˜sÕ#ús   Á/B ÂBT)rÏ   r°   ÚhasattrÚ	functoolsÚwrapsr  Úsetattr)r”  rá  r  r'  r&  s   &&f @rA   r  Ú$VariableTracker._add_call_once_guard¤  sk   ù€ ô " #Ó.ˆàœg¤o°vÓ>Ó>Ä'ØÐ1÷C
ò C
ñ ä	�Š˜Ó	)÷	$ð 	$ó 
*ð	$ð  -1ˆÔ)Ü�˜^Ö,rD   )rÂ  rÁ  rL   rÀ  >   r<  ÚguardsrL   rÂ  rÁ  Úparents_trackerrÀ  Úuser_code_variable_name)NN)NFr’   )�rN   rO   rP   rQ   rR   r£  rS   r¤  r¥  r¦  r°  r¶  rº  rÞ   rÑ  rÂ  rÈ  Úclassmethodrà  r  rè  r³   rÈ   rø  rs  r  r  r.  r  rÝ  r
  r  r"  r'  r-  r1  r5  r:  r>  rD  rI  rw  rX  r]  r\  ri  rs  ry  r}  r�  r‰  r’  r  r  rÜ  rp  rj  rl  rs  rv  rn  rt  rq  rw  ræ  rõ  rñ  rð  r  r  r
  r  r  r$  rÐ  r,  r  r4  r9  r>  r=  Ústaticmethodr  rM  rR  rV  rc  r  r  rA  rC  rn  r2  rO  r5  rQ  r8  rS  r;  rU  rY  r_  r\  ra  r  rK  r"  r%  r¯  rM  r  rI  re  rh  rr  rx  r>  rW  r(  r*  r  rE  r  rG  r,  r0  rl   Úpropertyrï  rÑ  rÒ  rÓ  rÌ  rÍ  rÈ  rÅ  rÜ  r  r  rT   r‰   rŠ   s   @rA   r°   r°   .  s  ø‡ ñð 59€MÐ1Ó8ð %'€JÐ!Ó&ð $&€IÐ Ó%Ø$&€JÐ!Ó&õõ"Fõ9õ+ó	€Nð 48€GÐ0Ó7õ&ð ÷80ó ð80õt.õõGõ:$õõ&8õ
õõõõ!õF
õ8	õõ"õ
"õõõõõ	õ	õ,Gõ\	õõ-õ	õõ "õTõ"õ
	õ
õB
õ
õ
õ8
õ
õ
õ 
õ	
õ
õ
õ
õ
õQ
õf
õB
õ"
õ,%
õNHõ
õ0õ/õõõõ
õ )õGõ'õ*ð ÷Nó ðNõ&õõ
	"õ
õ&
õ&
õ 
õ"
÷"
ð 
÷:ð :õ:÷:ð :õ:÷:ð :õ:÷:ð :õ:÷:ð :õ:÷:ð :õ:÷:ð :õ:÷:ð :÷:ð :õ
:õ:÷Yð YõP÷
ð 
õWõ
õ$
÷:ð :õ:õ
õ"
÷":ð :õ:÷:ð :õ:õ
õ"
ð"(ð !%ð(ð .2ð	(ð
 26ð(ð 8<÷(ò (ðT ô5ó ð5ð ôBó ðBð ôDó ðDð ôCó ðCð ô=ó ð=ð ôAó ðAð õ<ó ð<ð ö=ó ð=ð ò>ó ð>÷"Vò "VðH ö-ó ÷-rD   )Ú	metaclassc               ó    € V ^8„  d   QhRRRR/# )r=   Úobjsr…   r>   r3   r?   )r@   s   "rA   rB   rB   Æ  s   € ÷ ,ñ ,�6ð ,˜cñ ,rD   c                 óÔ   € \        V 4      ^8X  d;   V w  p\        V\        4      '       d   \        V4      # \	        V4      P
                  # RP                  \        \        V 4      4      # )r¨   rc   )	rÇ   rÏ  r°   r3   r±   rN   ÚjoinÚmapÚtypestr)r6  r¯   s   * rA   r:  r:  Æ  sP   € Ü
ˆ4ƒy�A„~Ø‰ˆÜ�cœ?×+Ò+Ü�s“8ˆOä˜“9×%Ñ%Ð%à�x‰xœœG TÓ*Ó+Ð+rD   z/https://github.com/python/cpython/blob/v3.13.0/c               ó   € V ^8„  d   QhRR/# ru   r?   )r@   s   "rA   rB   rB   ×  s   € ÷ 'ñ ' Tñ 'rD   c            	     ó  € ^RI Hp HpHpHpHpHpHpHpH	pH
p	Hp
HpHpHpHpHpHp / p\$        P&                   Fi  pVP(                  P+                  R4      pVf   K$  \-        V\.        4      '       d   TMV3pV F$  pVP1                  V. 4      P3                  V4       K&  	  Kk  	  \5        VP7                  4       R R7       FA  w  ppV F5  p\9        VP:                   RVP<                  R RVP>                   24       K7  	  KC  	  R# )	z˜Print the mapping from CPython types to Dynamo VariableTracker classes.

Reads _cpython_type from each VT subclass (own attribute only, not inherited).
)ÚbuiltinÚconstantÚctx_managerÚdictsÚdistributedÚ	functionsÚhigher_order_opsÚiterÚlazyÚlistsÚmiscÚ	nn_moduleÚstreamsÚtensorrÎ   Útorch_functionÚuser_definedr£  Nc                ó(   € V ^ ,          P                   # )rb   )rP   )Úxs   &rA   rú   Ú-print_cpython_to_vt_mapping.<locals>.<lambda>ú  s   € ÀQÀqÅT×EVÒEVrD   )rN  rÆ   Ú30sz -> ) Ú r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rÎ   rK  rL  r€  r�  r¬  r�  rÏ  rÖ  Ú
setdefaultr–  Úsortedrä  ÚprintrO   rP   rN   )r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rÎ   rK  rL  ÚmappingÚvt_clsÚcpython_typeÚtypesÚtrS  Ú
vt_classess                           rA   Úprint_cpython_to_vt_mappingr[  ×  sä   € ÷÷ ÷ ÷ õ ð( ')€GÜ%×4Ô4ˆØ—‘×*Ñ*¨?Ó;ˆØÒÙÜ *¨<¼× ?Ò ?‘ÀlÀ_ˆÛˆAØ×Ñ˜q "Ó%×,Ñ,¨VÖ4ó ñ 5ô  & g§m¡m£oÑ;V×WÑˆ�Û ˆFÜØ×%Ñ%Ð& a¨×(<Ñ(<¸SÐ'AÀÀfÇoÁoÐEVÐWöó !ó  XrD   )rE  )rž  >   r#   r(   r'   r&   r%   r$   )r¨   r=   é   é   é€   ).r°   )íÚ__conditional_annotations__rR   Ú
__future__r   r×  Údataclassesr*  rÝ  ÚloggingrG   Úcollections.abcr   r   r   r   Úcontextvarsr   Úenumr   r	   Útypingr
   r   r   r   r   Útorch._C._dynamor   r   r   r   r   r   rQ  r   r   r   Úexcr   r   r   r   r   r.  r   r   rL   r   r    Úutilsr!   r"   Ú	frozensetÚ_RICHCOMPARE_OPSÚtorch._guardsr)   Útorch.fx.proxyr*   rv  r+   rÌ  r,   Úsymbolic_convertr-   r>  r.   rB  r/   Ú	getLoggerrN   r  Ú	dataclassr2   rU   rS   rX   r\   ro   rs   rŒ   r”   r—   rž   r©   r­   rµ   r·   r¹   rË   rÖ   rØ   rÔ   rÕ   r×   rË  rÛ   rß   râ   rí   ró   rý   r  r  r´   r  r  r$  r)  r0  r3  r>  rC  rJ  rO  rS  rV  rY  rb  Ú
richcmp_ltÚ
richcmp_leÚ
richcmp_eqÚ
richcmp_neÚ
richcmp_gtÚ
richcmp_gere  rh  rl  rp  rt  ry  r|  r  r�  r‡  rŽ  rµ  r¿  rÄ  rÖ  Ú_fieldsÚ_TYPE_FIELDSr„  rÏ   Úupperr‚  rƒ  r…  rÚ  rÞ  rä  Ú_groupÚ_fnsr"  rÔ  rë  rÁ   ré  rí  rÕ  rÆ  r3   rî  rð  rú  rý  r   r  ÚTP_REPRÚTP_CALLÚTP_STRÚTP_GETATTROÚTP_RICHCOMPAREÚTP_ITERÚTP_ITERNEXTÚTP_DESCR_GETÚTP_DESCR_SETÚTP_INITÚNB_ADDÚNB_SUBTRACTÚNB_MULTIPLYÚNB_REMAINDERÚ	NB_DIVMODÚNB_POWERÚNB_NEGATIVEÚNB_POSITIVEÚNB_ABSOLUTEÚNB_BOOLÚ	NB_INVERTÚ	NB_LSHIFTÚ	NB_RSHIFTÚNB_ANDÚNB_XORÚNB_ORÚNB_INTÚNB_FLOATÚNB_INPLACE_ADDÚNB_INPLACE_SUBTRACTÚNB_INPLACE_MULTIPLYÚNB_INPLACE_REMAINDERÚNB_INPLACE_POWERÚNB_INPLACE_LSHIFTÚNB_INPLACE_RSHIFTÚNB_INPLACE_ANDÚNB_INPLACE_XORÚNB_INPLACE_ORÚNB_FLOOR_DIVIDEÚNB_TRUE_DIVIDEÚNB_INPLACE_FLOOR_DIVIDEÚNB_INPLACE_TRUE_DIVIDEÚNB_INDEXÚNB_MATRIX_MULTIPLYÚNB_INPLACE_MATRIX_MULTIPLYÚ	MP_LENGTHÚMP_SUBSCRIPTÚMP_ASS_SUBSCRIPTÚ	SQ_LENGTHÚ	SQ_CONCATÚ	SQ_REPEATÚSQ_ITEMÚSQ_ASS_ITEMÚSQ_CONTAINSÚSQ_INPLACE_CONCATÚSQ_INPLACE_REPEATry  r~  r±   r€  r�  r°   r:  r   r�  Ú_CPYTHON_BASE_URLr[  rE  rE  rž  )rØ  r_  s   0@rA   Ú<module>rµ     s¼  øðôõ #ã Û Û Û Û Û ß EÓ EÝ "ß ß FÕ F÷÷ ÷ ,Ý /÷õ ÷ 1ß 'ß /ñ Û@óÐ ÷
 Ý#Ý#å#Ý*Ý<Ý*Ý/ð ×Ò˜Ó!€ð ×Ò˜dÔ#÷ð ó $ðñ: =GØ ô=Ð Ð9ó ô
�ô ÷&-ñ -ô`�tô ô�|ô ô,'˜Lô 'ô,˜ô ô.Ð 1ô .ô %Ð,ô %õ"õ	õ
÷Fñ Fô
�'ô 
õYñ0 HXÑ D€ˆ~˜|¨W°nð ‡�ôó ðõ0>ð ×Ò˜TÔ"÷2ð 2ó #ð2ð4 ×Ò˜TÔ"÷@ð @ó #ð@ð ×Ò˜TÔ"÷@ð @ó #ð@õ+õFõô"Ð*=ô õ0õ!õ/õ &õ 4õ $õ$õ&õ&&õ%õ#õ$!õ ñ: ˜8Ó$€
Ù˜8Ó$€
Ù˜8Ó$€
Ù˜8Ó$€
Ù˜8Ó$€
Ù˜8Ó$€
õ(õ	(õ,õ#õ8õ&õ",õ)ô �ô ð ×Ò˜dÔ#÷Eð Eó $ðEô"#,�jô #,ôL#˜
ô #ô"�zô "ô$�:ô $÷& ˆuÑS × 4Ó 4ÓS�u‰uÑS × 4Ó 4ÓSÓS€ð ×ÒØ6E×6MÓ6MóÙ6M°‰�˜qŸwšw›yÓ)¨1Ò,Ñ6Mñð ×ÒØ8I×8QÓ8QóÙ8Q°1‰� §¢£Ó+¨QÒ.Ñ8Qñð ×ÒØ7G×7OÓ7OóÙ7O°!‰� §¢£	Ó*¨AÒ-Ñ7Oñð ‡N‚NÁÓNÁ¸A‘W˜[¨!¯'ª'«)Ó4°aÒ7ÁÑNð/€
Ð+ó ð  ×Ò¨×/FÓ/FÓGÑ/F¨!˜Q˜C˜u˜+’~Ñ/FÑGØ×ÒÐ1B×1JÓ1JÓKÑ1J¨A˜q˜c ˜KšÑ1JÑKØ×ÒÐ0@×0HÓ0HÓIÑ0H¨1˜a˜S ˜;šÑ0HÑIØ‡N‚Nð Ù#/Ó
0¡<˜a���5ˆkŠ>¡<Ñ
0ðà�?Ø�;ñð		-€Ð
)ó 	ð —N’NÖ$�L€FˆDÙ
ˆ4ƒy‘C˜
 6Õ*×1Ò1Ó3Ó4Ö4Ù §¢˜}Ð,NÐOÓPÐPñ %õ
ð ‡�ô
ó ð
ð "àØ#ØÑ'Õ(ØÐÕØˆSÐ#Ð#Õ$ðð ðõ	€ˆYó 	ð ×Ò˜dÔ#÷8ð 8ó $ð8õ@BõAõ@õ>ðcñ
 ˆ:�~ {×':Ò':¸OÓLðcñ ˆ:�¨×(;Ò(;¸YÓGðcñ ˆ9�m [×%7Ò%7¸ÓIðcñ ØØØ×ÒØó	ðcñ ØØØ×ÒØó	ðcñD ØØØ×"Ò"Øó	ðEcñP ØØØ×"Ò"Øó	ðQcñ\ ØØØ×"Ò"Øó	ð]cñh ØØØ×"Ò"Øó	ðicñt ØØØ×"Ò"Øó	ðucñ@ ØØØ×"Ò"Øó	ðAcñL ˆ:�~ {×':Ò':¸OÓLðMcñN ØØØ×ÒØó	ðOcñZ ØØØ× Ò Øó	ð[cñf ØØØ× Ò Øó	ðgcñr ØØØ× Ò Øó	ðscñ~ ˆ:�~ {×':Ò':¸JÓGðcñN ØØØ×ÒØó	ðOcñZ ØØØ×ÒØó	ð[cñf ØØØ×!Ò!Øó	ðgcñr ØØØ×!Ò!Øó	ðscñ~ ØØØ×!Ò!Øó	ðcñJ ØØØ×!Ò!Øó	ðKcñV ØØØ×"Ò"Øó	ðWcñb ØØØ×"Ò"Øó	ðccñn ØØØ×ÒØó	ðocñz ØØØ×ÒØó	ð{cñF ØØØ×ÒØó	ðGcñR ØØØ×ÒØó	ðScñ^ ØØØ×!Ò!Øó	ð_cñj ØØØ×!Ò!Øó	ðkcñv ØØØ×!Ò!Øó	ðwcñB ØØØ×ÒØó	ðCcñN ØØØ×ÒØó	ðOcñZ ØØØ×ÒØó	ð[cñf ØØØ×ÒØó	ðgcñr ØØØ×ÒØó	ðscñ~ ØØØ×ÒØó	ðcñJ ØØØ×ÒØó	ðKcñV ØØØ×ÒØó	ðWcñb ØØØ×ÒØó	ðccñn ØØØ×ÒØó	ðocñz ØØØ×ÒØó	ð{cñF ØØØ×ÒØó	ðGcñR ØØØ×ÒØó	ðScñ^ ØØØ×ÒØó	ð_cñj ØØØ×$Ò$Øó	ðkcñv ØØ"Ø×)Ò)Øó	ðwcñB	 ØØ"Ø×)Ò)Øó	ðC	cñN	 ØØ#Ø×*Ò*Øó	ðO	cñZ	 ØØØ×&Ò&Øó	ð[	cñf	 ØØ Ø×'Ò'Øó	ðg	cñr	 ØØ Ø×'Ò'Øó	ðs	cñ~	 ØØØ×$Ò$Øó	ð	cñJ
 ØØØ×$Ò$Øó	ðK
cñV
 ØØØ×#Ò#Øó	ðW
cñb
 ØØØ×%Ò%Øó	ðc
cñn
 ØØØ×%Ò%Øó	ðo
cñz
 ØØØ×$Ò$Øó	ð{
cñF ÙØØ×$Ò$Øó	ðGcñR ÙÙ&Ø×-Ò-Øó	ðScñ^ ÙÙ%Ø×,Ò,Øó	ð_cñj ÙÙØ×ÒØó	ðkcñv ÙÙ!Ø×(Ò(Øó	ðwcñB ÙÙ!Ø×(Ò(Øó	ðCcñN ÙÙ)Ø×0Ò0Øó	ðOcñ\ ÙÙØ× Ò Øó	ð]cñh ÙÙØ×#Ò#Øó	ðicñt ÙÙØ×'Ò'Øó	ðucñ@ ÙÙØ×'Ò'Øó	ðAcñN ÙÙØ×!Ò!Øó	ðOcñZ ØÙØ×!Ò!Øó	ð[cñf ØÙØ×!Ò!Øó	ðgcñr ØÙØ×!Ò!Øó	ðscñ~ ÙÙØ×ÒØó	ðcñJ ÙÙØ×#Ò#Øó	ðKcñV ÙÙØ×#Ò#Øó	ðWcñb ÙÙØ×#Ò#Øó	ðccñn ØÙ Ø×)Ò)Øó	ðocñz ØÙ Ø×)Ò)Øó	ð{c€	‰=ô cðL ‡�öó ðö7˜$ô 7ö:-Ð+>ô -õU-Ð 3ö U-÷p4,ð ×&Ò&€ñ FÐ ÷'öT ß %Ð %ùòGKùòùòùò Oùò HùÚKùÚIùâ
0s0   Î"u5Ï"u:
Ð"u?Ñ"vÒ
v	Ò5v
Ó vÔv