Ë
    P/æjºy  ã                  ó  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z
d dlZd dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dl m!Z! d d	l"m#Z#  ejH                  e%«      Z&erd dl'Z'd dl(Z(	  G d
„ de«      Z) G d„ de«      Z* G d„ dejV                  «      Z,	  G d„ d«      Z- G d„ de«      Z.ej^                   G d„ d«      «       Z0 ed«      Z1	 ej^                   G d„ d«      «       Z2	 ej^                   G d„ de2«      «       Z3	  G d„ dee1   «      Z4 G d„ d«      Z5 G d„ d «      Z6 G d!„ d"e4e6   «      Z7 G d#„ d$«      Z8 G d%„ d&e4e8   «      Z9	  G d'„ d(«      Z: G d)„ d*e4e5   «      Z; ejx                  «       Z=	  G d+„ d,«      Z> G d-„ d.«      Z?ed9d/„«       Z@ed:d0„«       ZA ej^                  d1¬2«       G d3„ d4«      «       ZB ej^                  d1¬2«       G d5„ d6eB«      «       ZCd;d<d7„ZDd8„ ZEy)=é    )ÚannotationsN)Úabstractmethod)Úcontextmanager)ÚAnyÚCallableÚDictÚGenericÚListÚ
NamedTupleÚOptionalÚSetÚTupleÚTYPE_CHECKINGÚTypeVar)Úset_context_frame)Ú_pytree)ÚCapturedTraceback)ÚWeakTensorKeyDictionaryc                  ó(   — e Zd ZU ded<   ded<   d„ Zy)Ú	CompileIdÚintÚframe_idÚframe_compile_idc                ó8   — | j                   › d| j                  › �S )Nú/)r   r   ©Úselfs    úP/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/_guards.pyÚ__str__zCompileId.__str__@   s   € Ø—-‘-�  $×"7Ñ"7Ð!8Ð9Ð9ó    N©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   © r    r   r   r   7   s   … ØƒMð
 Óó:r    r   c                  ó(   — e Zd ZU ded<   ded<   d„ Zy)ÚTraceIdr   Ú
compile_idr   Úattemptc                ó€   — | j                   dk(  rt        | j                  «      S | j                  › d| j                   › �S )Nr   Ú_)r*   Ústrr)   r   s    r   r   zTraceId.__str__J   s7   € Ø�<‰<˜1ÒÜ�t—‘Ó'Ð'à—o‘oÐ& a¨¯© ~Ð6Ð6r    Nr!   r&   r    r   r(   r(   D   s   … ØÓð ƒLó7r    r(   c                  ór   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdd„Zdd„Zdd„Zdd„Zd„ Zy)ÚGuardSourcer   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   c                óF   — | t         j                  t         j                  fv S ©N)r/   ÚGLOBAL_FSDP_MODULEÚLOCAL_FSDP_MODULEr   s    r   Úis_fsdp_modulezGuardSource.is_fsdp_modulec   s   € Øœ×6Ñ6¼×8UÑ8UÐVÐVÐVr    c                ój   — | t         j                  t         j                  fv xs | j                  «       S r@   )r/   ÚGLOBAL_SPECIALIZED_NN_MODULEÚLOCAL_SPECIALIZED_NN_MODULErC   r   s    r   Úis_specialized_nn_modulez$GuardSource.is_specialized_nn_modulef   s9   € àä×8Ñ8Ü×7Ñ7ððò %ð ×"Ñ"Ó$ð	
r    c                ó‚   — | t         j                  t         j                  t         j                  t         j                  fv S r@   )r/   ÚGLOBAL_UNSPECIALIZED_NN_MODULEÚLOCAL_UNSPECIALIZED_NN_MODULEÚ&GLOBAL_UNSPECIALIZED_BUILTIN_NN_MODULEÚ%LOCAL_UNSPECIALIZED_BUILTIN_NN_MODULEr   s    r   Úis_unspecialized_nn_modulez&GuardSource.is_unspecialized_nn_moduleq   s8   € ØÜ×6Ñ6Ü×5Ñ5Ü×>Ñ>Ü×=Ñ=ð	
ð 
ð 	
r    c                óF   — | t         j                  t         j                  fv S r@   )r/   rK   rL   r   s    r   Ú"is_unspecialized_builtin_nn_modulez.GuardSource.is_unspecialized_builtin_nn_moduley   s&   € ØÜ×>Ñ>Ü×=Ñ=ð
ð 
ð 	
r    c                ó    — | t         j                  t         j                  t         j                  t         j                  t         j
                  fv S r@   )r/   ÚLOCALrF   rB   rJ   rL   r   s    r   Úis_localzGuardSource.is_local   sA   € ØÜ×ÑÜ×3Ñ3Ü×)Ñ)Ü×5Ñ5Ü×=Ñ=ð
ð 
ð 	
r    N©ÚreturnÚbool)r"   r#   r$   rQ   ÚGLOBALrF   rE   ÚCONSTANTÚRANDOM_VALUEÚ	SHAPE_ENVrB   rA   ÚBACKWARD_STATEÚ	EPHEMERALÚSYNTHETIC_LOCALrJ   rI   rL   rK   rC   rG   rM   rO   rR   r&   r    r   r/   r/   Q   st   „ Ø€EØ€FØ"#ÐØ#$Ð Ø€HØ€LØ€IØÐØÐØ€NØ€IØ€OØ$&Ð!Ø%'Ð"Ø,.Ð)Ø-/Ð*óWó	
ó
ó
ó
r    r/   c                  ó   — e Zd Zy)ÚGuardBuilderBaseN©r"   r#   r$   r&   r    r   r^   r^   —   s   „ Ør    r^   c                  ó"   — e Zd ZU ded<   ded<   y)Ú
ShapeGuardz
sympy.ExprÚexprr   ÚstackN)r"   r#   r$   r%   r&   r    r   ra   ra   ›   s   … Ø
ÓØÔr    ra   c                  óü   — e Zd ZU ded<   ded<   dZded<   dZded<   dZd	ed
<   dZded<   dZded<   dZ	ded<   dZ
ded<   d„ Zd„ Zd„ Zd„ Zed!d„«       Zed"d„«       Zed„ «       Zd„ Zd„ Zd#d„Zd„ Zd„ Zd„ Zd „ Zy)$ÚGuardÚSourceÚoriginating_sourcez)Callable[[GuardBuilderBase, Guard], None]Ú	create_fnNzOptional[List[str]]Úguard_typesÚ	code_listzOptional[object]Úobj_weakrefzOptional[type]Úguarded_class_weakrefzOptional[CapturedTraceback]rc   z Optional[traceback.StackSummary]Ú
user_stackzOptional[int]Ú_hashc                ó¦   — | j                   €:t        | j                  | j                  t	        | j
                  «      f«      | _         | j                   S r@   )rn   ÚhashÚnameÚsourceÚidrh   r   s    r   Ú__hash__zGuard.__hash__À   s:   € Ø�:‰:ÐÜ˜tŸy™y¨$¯+©+´r¸$¿.¹.Ó7IÐJÓKˆDŒJØ�z‰zÐr    c                ón  — ddl m} t        | j                  t        j
                  «      xr" | j                  j                  |j                  u }|| j                  r| j                  j                  ndt        | j                  «      | j                  | j                  «       j                  j                  fS )Nr   )ÚGuardBuilderéÿÿÿÿ)Útorch._dynamo.guardsrv   Ú
isinstancerh   Ú	functoolsÚpartialÚfuncÚDUPLICATE_INPUTrr   ÚvalueÚlenrq   Úinner_create_fnÚ__code__Úco_firstlineno)r   rv   Úis_duplicate_inputs      r   Úsort_keyzGuard.sort_keyÅ   sŽ   € õ 	6ô �t—~‘~¤y×'8Ñ'8Ó9ò DØ—‘×#Ñ# |×'CÑ'CÐCð 	ð
 Ø!%§¢ˆD�K‰K×Ò°"Ü�—	‘	‹NØ�I‰IØ× Ñ Ó"×+Ñ+×:Ñ:ð
ð 	
r    c                óD   — | j                  «       |j                  «       k  S r@   )r„   ©r   Úothers     r   Ú__lt__zGuard.__lt__Ö   s   € Ø�}‰}‹ §¡Ó!1Ñ1Ð1r    c                óŽ   — t        | j                  t        j                  «      r| j                  j                  S | j                  S r@   )ry   rh   rz   r{   r|   r   s    r   r€   zGuard.inner_create_fnÙ   s0   € Ü�d—n‘n¤i×&7Ñ&7Ô8Ø—>‘>×&Ñ&Ð&à—>‘>Ð!r    c                ó6   — | j                   j                  «       S r@   )rg   rq   r   s    r   rq   z
Guard.nameß   s   € à×&Ñ&×+Ñ+Ó-Ð-r    c                ó6   — | j                   j                  «       S r@   )rg   Úguard_sourcer   s    r   rr   zGuard.sourceã   s   € à×&Ñ&×3Ñ3Ó5Ð5r    c           
     ó  — t        | t        j                  «      re | «       }|�Ddt        t	        | «      «      › d|j
                  j                  › dt        t	        |«      «      › d�S dt        t	        | «      «      › d�S t        | «      S )aÔ  
        This is a workaround of a Python weakref bug.

        `obj_weakref` is instance returned by `weakref.ref`,
        `str(obj_weakref)` is buggy if the original obj overrides __getattr__, e.g:

            class MyConfig(dict):
                def __getattr__(self, x):
                    return self[x]

            obj = MyConfig(offset=5)
            obj_weakref = weakref.ref(obj)
            str(obj_weakref)  # raise error: KeyError: '__name__'
        z<weakref at z; to 'z' at ú>z; dead>)ry   ÚweakrefÚReferenceTypeÚhexrs   Ú	__class__r"   r-   )rk   Úobjs     r   Úweakref_to_strzGuard.weakref_to_strç   s„   € ô  �k¤7×#8Ñ#8Ô9Ù“-ˆCØˆØ%¤c¬"¨[«/Ó&:Ð%;¸6À#Ç-Á-×BXÑBXÐAYÐY^Ô_bÔceÐfiÓcjÓ_kÐ^lÐlmÐnÐnà%¤c¬"¨[«/Ó&:Ð%;¸7ÐCÐCä�{Ó#Ð#r    c                óZ  — d| j                   r$| j                   j                  j                  «       nd› dt        | j                  «      › d| j	                  «       j
                  › d| j                  › d| j                  › d| j                  | j                  «      › d| j                  › d�}|S )	Nz	
        Ú ú z&
        {
            'guard_types': z,
            'code': z,
            'obj_weakref': z
            'guarded_class': z
        }
        )rr   rq   ÚlowerÚreprr€   r"   ri   rj   r”   rk   rl   )r   Úss     r   Ú__repr__zGuard.__repr__   s¯   € ð	Ø%)§[¢[ˆ�‰×	Ñ	×	Ñ	Ô	!°bÐ9¸¼4ÀÇ	Á	»?Ð:KÈ1ÈT×MaÑMaÓMc×MlÑMlÐLmð nà ×,Ñ,Ð-ð .Ø—^‘^Ð$ð %Ø ×/Ñ/°×0@Ñ0@ÓAÐBð CØ"×8Ñ8Ð9ð :	ðˆð ˆr    c                ó¦  — dt        | j                  «      › d�}| j                  r$| j                  j                  j                  «       nd}|d|› d�z  }|d| j	                  «       j
                  › d�z  }|d| j                  › d�z  }|d| j                  › d�z  }|d| j                  | j                  «      › d�z  }|d	| j                  › d�z  }|S )
NzName: ú
r–   z    Source: z    Create Function: z    Guard Types: z    Code List: z    Object Weakref: z    Guarded Class Weakref: )r™   rq   rr   r˜   r€   r"   ri   rj   r”   rk   rl   )r   Úoutputrr   s      r   r   zGuard.__str__  sé   € Øœ$˜tŸy™y›/Ð*¨"Ð-ˆØ-1¯[ª[�—‘×!Ñ!×'Ñ'Ô)¸bˆØ�L  ¨Ð+Ñ+ˆØÐ)¨$×*>Ñ*>Ó*@×*IÑ*IÐ)JÈ"ÐMÑMˆØÐ% d×&6Ñ&6Ð%7°rÐ:Ñ:ˆØ�O D§N¡NÐ#3°2Ð6Ñ6ˆØÐ(¨×)<Ñ)<¸T×=MÑ=MÓ)NÐ(OÈrÐRÑRˆØÐ/°×0JÑ0JÐ/KÈ2ÐNÑNˆØˆr    c           	     óR  — 	 | j                  || «      S # t        $ r‰ t        j                  dt	        | «      j                  «       «       | j                  rNt        j                  ddj                  | j                  j                  «       dd  «      j                  «       «       ‚ w xY w)NzError while creating guard:
%szCreated at:
%sr–   éüÿÿÿ)
rh   Ú	ExceptionÚlogÚ	exceptionr-   Úrstriprc   ÚerrorÚjoinÚformat)r   Úbuilders     r   ÚcreatezGuard.create  s‚   € ð	Ø—>‘> '¨4Ó0Ð0øÜò 	Ü�M‰MÐ;¼SÀ»Y×=MÑ=MÓ=OÔPØ�zŠzÜ—	‘	Ð+¨R¯W©W°T·Z±Z×5FÑ5FÓ5HÈÈÐ5MÓ-N×-UÑ-UÓ-WÔXØð		ús
   ‚ ”BB&c                ó6   — | j                   j                  «       S r@   )rr   rG   r   s    r   rG   zGuard.is_specialized_nn_module   s   € Ø�{‰{×3Ñ3Ó5Ð5r    c                ó6   — | j                   j                  «       S r@   )rr   rC   r   s    r   rC   zGuard.is_fsdp_module#  s   € Ø�{‰{×)Ñ)Ó+Ð+r    c                ó6   — | j                   j                  «       S r@   )rr   rR   r   s    r   rR   zGuard.is_local&  s   € Ø�{‰{×#Ñ#Ó%Ð%r    c                ó€  — | j                   sg | _         | j                   j                  |«       | j                  |d fv sJ d«       ‚|| _        | j                  s|| _        n| j                  j	                  |«       | j
                  |d fv s,t        | j
                  «      r| j                  «       �J d«       ‚|| _        y )Nz+Guarded class id must be identical, or NonezBGuarded object must be identical, None or ephemeral (dead weakref))ri   Úappendrl   rj   Úextendrk   Úcallable)r   Ú
guard_typeÚguarded_classrj   rk   s        r   Úset_export_infozGuard.set_export_info)  sÑ   € Ø×ÒØ!ˆDÔà×Ñ×Ñ 
Ô+à×)Ñ)ØØð.
ñ 
ð 	9ð 9ó	9ð 
ð &3ˆÔ"à�~Š~Ø&ˆD�Nà�N‰N×!Ñ! )Ô,ð ×Ñ ¨dÐ 3Ñ3Ü˜×(Ñ(Ô)Ø× Ñ Ó"Ð*ð	Pð Pó		Pð+ð 'ˆÕr    ©rT   r-   ©rT   r/   )r¨   r^   )r"   r#   r$   r%   ri   rj   rk   rl   rc   rm   rn   rt   r„   rˆ   r€   Úpropertyrq   rr   Ústaticmethodr”   r›   r   r©   rG   rC   rR   r³   r&   r    r   re   re       sÑ   … ð& ÓØ8Ó8ð (,€KÐ$Ó+Ø%)€IÐ"Ó)Ø$(€KÐ!Ó(Ø,0Ð˜>Ó0à)-€EÐ&Ó-Ø37€JÐ0Ó7Ø€Eˆ=Óòò

ò"2ò"ð ò.ó ð.ð ò6ó ð6ð ñ$ó ð$ò0
ò	óò6ò,ò&ó'r    re   ÚTc                  ó   — e Zd Zy)ÚGuardEnvExprNr_   r&   r    r   rº   rº   P  s   „ àr    rº   c                  ó(   — e Zd ZU ded<   ded<   d„ Zy)ÚDuplicateInputsrf   Úinput_source_aÚinput_source_bc                ó:   — | j                   | j                  k7  sJ ‚y r@   )r½   r¾   r   s    r   Ú__post_init__zDuplicateInputs.__post_init__`  s   € Ø×"Ñ" d×&9Ñ&9Ò9Ð9Ñ9r    N)r"   r#   r$   r%   rÀ   r&   r    r   r¼   r¼   [  s   … àÓØÓó:r    r¼   c                  ó0   — e Zd Zedd„«       Zedd„«       Zy)ÚCheckpointablec                 ó   — y r@   r&   r   s    r   Úcopy_graphstatezCheckpointable.copy_graphstater  s   € Ø$'r    c                 ó   — y r@   r&   ©r   Ústates     r   Úrestore_graphstatez!Checkpointable.restore_graphstateu  s   € Ø,/r    N)rT   r¸   )rÇ   r¸   )r"   r#   r$   r   rÄ   rÈ   r&   r    r   rÂ   rÂ   q  s   „ ØÚ'ó Ø'àÚ/ó Ù/r    rÂ   c                  ó<   — e Zd ZU dZ e«       Zded<   d„ Zd„ Zd„ Z	y)ÚGuardsCheckpointStatezW
    The GuardCheckpointState - it is the T of Checkpointable[T] for GuardsContext
    ú
Set[Guard]Údynamo_guardsc                ó   — || _         y r@   )rÌ   )r   rÌ   s     r   Ú__init__zGuardsCheckpointState.__init__€  s
   € Ø*ˆÕr    c                ón   — | j                   j                  |j                   «      }t        |«      dk(  ry|S )z¹
        Produces a delta against another GuardsCheckpointState.

        Returns None if no delta is found, otherwise, return a set() of mismatched
        Guard type objects.
        r   N)rÌ   Ú
differencer   ©r   r‡   Úrs      r   ÚdiffzGuardsCheckpointState.diffƒ  s3   € ð ×Ñ×)Ñ)¨%×*=Ñ*=Ó>ˆÜˆq‹6�QŠ;ØØˆr    c                ó(   — | j                  |«      d u S r@   ©rÓ   r†   s     r   Ú__eq__zGuardsCheckpointState.__eq__�  ó   € Ø�y‰y˜Ó 4Ð'Ð'r    N)
r"   r#   r$   Ú__doc__ÚsetrÌ   r%   rÎ   rÓ   rÖ   r&   r    r   rÊ   rÊ   y  s$   … ññ !$£€M�:Ó%ò+ò
ó(r    rÊ   c                  ó.   — e Zd ZU i Zded<   d„ Zd„ Zd„ Zy)ÚModuleContextCheckpointStatezDict[str, torch.nn.Module]Ú
nn_modulesc                ó   — || _         y r@   ©rÜ   )r   rÜ   s     r   rÎ   z%ModuleContextCheckpointState.__init__–  s	   € Ø$ˆ�r    c                óÊ   — t        | j                  j                  «       «      j                  t        |j                  j                  «       «      «      }t	        |«      dk(  ry|S )z¾
        Produces a delta against another ModuleContextCheckpointState.

        Returns None if no delta is found, otherwise, return a set() of mismatched
        module key names.
        r   N)rÙ   rÜ   ÚkeysrÐ   r   rÑ   s      r   rÓ   z!ModuleContextCheckpointState.diff™  sM   € ô �—‘×$Ñ$Ó&Ó'×2Ñ2´3°u×7GÑ7G×7LÑ7LÓ7NÓ3OÓPˆÜˆq‹6�QŠ;ØØˆr    c                ó(   — | j                  |«      d u S r@   rÕ   r†   s     r   rÖ   z#ModuleContextCheckpointState.__eq__¥  r×   r    N)r"   r#   r$   rÜ   r%   rÎ   rÓ   rÖ   r&   r    r   rÛ   rÛ   “  s   … Ø-/€JÐ*Ó/ò%ò
ó(r    rÛ   c                  ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚModuleContextc                ó   — i | _         y r@   rÞ   r   s    r   rÎ   zModuleContext.__init__ª  s	   € Ø*,ˆ�r    c                ó>   — t        t        | j                  «      «      S r@   )rÛ   ÚdictrÜ   r   s    r   rÄ   zModuleContext.copy_graphstate­  s   € Ü+¬D°·±Ó,AÓBÐBr    c                óJ   — t        |t        «      sJ ‚|j                  | _        y r@   )ry   rÛ   rÜ   rÆ   s     r   rÈ   z ModuleContext.restore_graphstate°  s    € Ü˜%Ô!=Ô>Ð>Ð>Ø×*Ñ*ˆ�r    N©rT   ÚNone©r"   r#   r$   rÎ   rÄ   rÈ   r&   r    r   rã   rã   ©  s   „ ó-òCó+r    rã   c                  ó.   — e Zd ZU i Zded<   d„ Zd„ Zd„ Zy)ÚGlobalContextCheckpointStatezDict[str, Tuple[Callable, ...]]Úglobal_statec                ó   — || _         y r@   ©rí   )r   Úglobal_statess     r   rÎ   z%GlobalContextCheckpointState.__init__¸  s
   € Ø)ˆÕr    c                óÊ   — t        | j                  j                  «       «      j                  t        |j                  j                  «       «      «      }t	        |«      dk(  ry|S )z¾
        Produces a delta against another GlobalContextCheckpointState.

        Returns None if no delta is found, otherwise, return a set() of mismatched
        global key names.
        r   N)rÙ   rí   rà   rÐ   r   rÑ   s      r   rÓ   z!GlobalContextCheckpointState.diff»  sO   € ô �×!Ñ!×&Ñ&Ó(Ó)×4Ñ4´S¸×9KÑ9K×9PÑ9PÓ9RÓ5SÓTˆÜˆq‹6�QŠ;ØØˆr    c                ó(   — | j                  |«      d u S r@   rÕ   r†   s     r   rÖ   z#GlobalContextCheckpointState.__eq__Ç  r×   r    N)r"   r#   r$   rí   r%   rÎ   rÓ   rÖ   r&   r    r   rì   rì   µ  s   … Ø46€LÐ1Ó6ò*ò
ó(r    rì   c                  ó,   — e Zd ZdZh d£Zdd„Zd„ Zd„ Zy)ÚGlobalContextzz
    This keeps track of the global torch state during tracing of a function.
    For example, torch.is_grad_enabled.
    >   Úgrad_enabledÚautocast_enabledÚautocast_cpu_dtypeÚautocast_gpu_dtypeÚautocast_cpu_enabledÚautocast_cache_enabledÚtorch_function_enabledc                ó   — i | _         y r@   rï   r   s    r   rÎ   zGlobalContext.__init__Û  s
   € Ø=?ˆÕr    c                ó>   — t        t        | j                  «      «      S r@   )rì   ræ   rí   r   s    r   rÄ   zGlobalContext.copy_graphstateÞ  s   € Ü+¬D°×1BÑ1BÓ,CÓDÐDr    c                ób  — t        |t        «      sJ ‚|j                  | _        t        | j                  «      t        | j                  «      k(  r0t        | j                  j                  «       «      | j                  k(  sJ d«       ‚| j                  j                  «       D ]  \  }} ||«       Œ y )NzGlobal state mismatch)ry   rì   rí   r   Ú_supported_global_statesrÙ   rà   Úvalues)r   rÇ   r|   Úargss       r   rÈ   z GlobalContext.restore_graphstateá  s¡   € Ü˜%Ô!=Ô>Ð>Ð>Ø!×.Ñ.ˆÔä�×!Ñ!Ó"¤c¨$×*GÑ*GÓ&HÒHÜ�D×%Ñ%×*Ñ*Ó,Ó-°×1NÑ1NÒNð	#ð #ó	#ðOð ×+Ñ+×2Ñ2Ó4ò 	‰JˆD�$Ù��Jñ	r    Nrè   )r"   r#   r$   rØ   rÿ   rÎ   rÄ   rÈ   r&   r    r   rô   rô   Ë  s    „ ñò
 Ðó@òEór    rô   c                  óJ   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zddd	œdd
„Zdd„Z	d„ Z
y)Ú	GuardsSetNc                ó*   — |€
t        «       }|| _        y r@   )rÙ   Úinner)r   r  s     r   rÎ   zGuardsSet.__init__÷  s   € Øˆ=Ü“EˆEØˆ�
r    c                ó,   — t        | j                  «      S r@   )Úiterr  r   s    r   Ú__iter__zGuardsSet.__iter__ü  ó   € Ü�D—J‘JÓÐr    c                ó,   — t        | j                  «      S r@   )r   r  r   s    r   Ú__len__zGuardsSet.__len__ÿ  s   € Ü�4—:‘:‹Ðr    c                óF   — t        | j                  |j                  z
  «      S r@   )r  r  r†   s     r   Ú__sub__zGuardsSet.__sub__  s   € Ü˜Ÿ™ e§k¡kÑ1Ó2Ð2r    c                ó,   — t        | j                  «      S r@   )rU   r  r   s    r   Ú__bool__zGuardsSet.__bool__  r	  r    Tr   )Úcollect_debug_stackÚskipc               óú   — || j                   v ry |rO|j                  €t        j                  d|z   ¬«      |_        |j                  €t
        j                  «       |_        | j                   j                  |«       y ©Nr0   )r  )r  rc   r   Úextractrm   ÚTracingContextÚextract_stackÚadd)r   Úguardr  r  s       r   r  zGuardsSet.add
  sa   € Ø�D—J‘JÑØÙØ�{‰{Ð"Ü/×7Ñ7¸QÀ¹XÔF�”Ø×ÑÐ'Ü#1×#?Ñ#?Ó#A�Ô Ø�
‰
�‰�uÕr    c                óF   — |D ]  }|D ]  }| j                  |d¬«       Œ Œ y r  )r  )r   ÚothersÚoÚgs       r   ÚupdatezGuardsSet.update  s0   € Øò 	$ˆAØò $�Ø—‘˜ �Õ#ñ$ñ	$r    c                ól   — | j                   D �ch c]  }|j                  |k7  sŒ|’Œ c}| _         yc c}w )z%Delete all guards with a given sourceN)r  rg   )r   rr   r  s      r   Úremove_guards_with_sourcez#GuardsSet.remove_guards_with_source  s(   € à!%§¡ÖN˜A¨q×/CÑ/CÀvÓ/M’aÒNˆ�
ùÒNs   �1¤1r@   )r  re   )r  rË   )r"   r#   r$   rÎ   r  r  r  r  r  r  r  r&   r    r   r  r  ö  s2   „ óò
 òò
3ò ð 8<À!õ ó$ó
Or    r  c                  ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚGuardsContextc                ó0   — t        «       | _        g | _        y r@   )r  rÌ   Úaotautograd_guardsr   s    r   rÎ   zGuardsContext.__init__  s   € Ü(1«ˆÔØ68ˆÕr    c                óR   — t        t        | j                  j                  «      «      S r@   )rÊ   rÙ   rÌ   r  r   s    r   rÄ   zGuardsContext.copy_graphstate#  s   € Ü$¤S¨×);Ñ);×)AÑ)AÓ%BÓCÐCr    c                ó\   — t        |t        «      sJ ‚t        |j                  «      | _        y r@   )ry   rÊ   r  rÌ   rÆ   s     r   rÈ   z GuardsContext.restore_graphstate&  s&   € ä˜%Ô!6Ô7Ð7Ð7Ü& u×':Ñ':Ó;ˆÕr    Nrè   rê   r&   r    r   r!  r!    s   „ ó9òDó<r    r!  c                  óV   — e Zd Zedd„«       Zedd„«       Zd„ Zed„ «       Zed„ «       Zy)	ÚCompileContextc                 óF   — t         j                  €J ‚t         j                  S r@   )Ú_TLSÚcompile_contextr&   r    r   ÚgetzCompileContext.getB  s    € ä×#Ñ#Ð/Ð/Ð/Ü×#Ñ#Ð#r    c                 ó$   — t        t        dd «      S ©Nr*  ©Úgetattrr)  r&   r    r   Útry_getzCompileContext.try_getG  ó   € ä”tÐ.°Ó5Ð5r    c                óH   — |�t        |t        «      sJ ‚|| _        d| _        y )Nr   )ry   r   r)   r*   )r   r)   s     r   rÎ   zCompileContext.__init__K  s%   € ØÐ!¤Z°
¼IÔ%FÐFÐFØ/9ˆŒØˆ�r    c                 óH   — t         j                  «       } | €y | j                  S r@   )r'  r0  r)   r   s    r   Úcurrent_compile_idz!CompileContext.current_compile_idP  s"   € ä×%Ñ%Ó'ˆØˆ<ØØ�‰Ðr    c                 óŠ   — t         j                  «       } | €y | j                  €y t        | j                  | j                  «      S r@   )r'  r0  r)   r(   r*   r   s    r   Úcurrent_trace_idzCompileContext.current_trace_idW  s:   € ä×%Ñ%Ó'ˆØˆ<ØØ�?‰?Ð"ØÜ�t—‘¨¯©Ó5Ð5r    N)rT   r'  )rT   úOptional[CompileContext])	r"   r#   r$   r·   r+  r0  rÎ   r4  r6  r&   r    r   r'  r'  A  sU   „ Øò$ó ð$ð ò6ó ð6òð
 ñó ðð ñ6ó ñ6r    r'  c                  ó  — e Zd ZdZedd„«       Zedd„«       Zd„ Zd„ Zee	d„ «       «       Z
ed„ «       Zeej                  d„ «       «       Zeej                  d	„ «       «       Zeej                  d
„ «       «       Zed„ «       Zy)r  zÅ
    Provides the currently installed TracingContext, or None.

    Note that it is a staticmethod, and invocations outside of `with tracing()` (see below), are valid but
    will return None.
    c                 ó$   — t        t        dd «      S )NÚtracing_contextr.  r&   r    r   r0  zTracingContext.try_geti  r1  r    c                 óH   — t         j                  «       x} r| S t        d«      ‚)Nz<TracingContext.get() must be called within an ongoing trace.)r  r0  ÚRuntimeError)Úctxs    r   r+  zTracingContext.getm  s+   € ä ×(Ñ(Ó*Ð*ˆ3Ð*ØˆJÜØJó
ð 	
r    c                óú   — t        «       | _        t        «       | _        t	        «       | _        || _        g | _        d | _        d | _	        d | _
        d | _        d | _        d| _        t        «       | _        d| _        y ©NF)r!  Úguards_contextrã   Úmodule_contextrô   Úglobal_contextÚ	fake_modeÚframe_summary_stackÚloc_in_frameÚfw_metadataÚaot_graph_nameÚparams_flatÚoutput_stridesÚ#force_unspec_int_unbacked_size_liker   Útensor_to_contextÚfakify_first_call)r   rC  s     r   rÎ   zTracingContext.__init__u  s|   € Ü+›oˆÔÜ+›oˆÔÜ+›oˆÔØ"ˆŒØ#%ˆÔ ð !ˆÔàˆÔà"ˆÔØˆÔð JNˆÔð 49ˆÔ0ä!8Ó!:ˆÔð
 "'ˆÕr    c                ó&   — i | j                   _        y r@   )rB  rí   r   s    r   ÚclearzTracingContext.clearŸ  s   € ð ,.ˆ×ÑÕ(r    c               +  ór  K  — i }t         j                  «       }| j                  «       D ]  }t        ||«      ||<   Œ | j	                  «       D ]  \  }}t        |||«       Œ 	 d –— |j	                  «       D ]  \  }}t        |||«       Œ y # |j	                  «       D ]  \  }}t        |||«       Œ w xY w­wr@   )r  r+  rà   r/  ÚitemsÚsetattr)ÚkwargsÚpriorr=  ÚkeyÚvals        r   ÚpatchzTracingContext.patch¤  s¹   è ø€ ð ˆÜ× Ñ Ó"ˆà—;‘;“=ò 	+ˆCä   cÓ*ˆE�#ŠJð	+ð Ÿ™›ò 	#‰HˆC�Ü�C˜˜cÕ"ð	#ð	'Ûà!ŸK™K›Mò '‘��SÜ˜˜S #Õ&ñ'ø˜EŸK™K›Mò '‘��SÜ˜˜S #Õ&ñ'üs   ‚A B7Á#B Á'&B7Â'B4Â4B7c                 óä   — t         j                  «       } | €t        j                  «       S | j                  }| j
                  �|| j
                  gz   }t        j                  j                  |«      S r@   )r  r0  Ú	tracebackÚStackSummaryrD  rE  Ú	from_list)r   rc   s     r   r  zTracingContext.extract_stackµ  se   € ä×%Ñ%Ó'ˆØˆ<Ü×)Ñ)Ó+Ð+Ø×(Ñ(ˆØ×ÑÐ(Ø˜T×.Ñ.Ð/Ñ/ˆEÜ×%Ñ%×/Ñ/°Ó6Ð6r    c               #  óŠ  K  — t         j                  «       } t        j                  j                  j                  | dg «      5  t        j                  j                  j                  | dd «      5  	 d –— 	 d d d «       d d d «       y # t        $ r}t        |d«      sd |_        ‚ d }~ww xY w# 1 sw Y   Œ7xY w# 1 sw Y   y xY w­w)NrD  rE  Ú
real_stack)	r  r+  ÚunittestÚmockrV  Úobjectr¡   Úhasattrr\  )ÚtcÚes     r   Úclear_framezTracingContext.clear_frameÁ  s°   è ø€ ô ×ÑÓ!ˆÜ�]‰]× Ñ ×'Ñ'ØÐ% ró
ñ 	ä�=‰=×Ñ×%Ñ% b¨.¸$Ó?ñ	ðÜ÷		÷ 	ð 	øô
 ò ô$ ˜q ,Ô/Ø#'�A”LØûð)ú÷	ð 	ú÷ 	ð 	üsT   ‚A CÁ,B7Á.B+Á0BÁ5B7Á=	CÂ	B(ÂB#Â#B(Â(B+Â+B4	Â0B7Â7C Â<Cc              #  óœ  K  — t         j                  «       }| �|j                  j                  | «       |j                  }d |_        	 d –— 	 | �|j                  j                  «        ||_        y # t
        $ r'}t        |d«      s|j                  «       |_        ‚ d }~ww xY w# | �|j                  j                  «        ||_        w xY w­w)Nr\  )
r  r+  rD  r®   rE  r¡   r`  r  r\  Úpop)Úframe_summaryra  Úoldrb  s       r   Úcurrent_framezTracingContext.current_frameà  s¹   è ø€ ô
 ×ÑÓ!ˆØÐ$Ø×"Ñ"×)Ñ)¨-Ô8Ø�o‰oˆØˆŒð		"Üð Ð(Ø×&Ñ&×*Ñ*Ô,Ø!ˆB�Oøô ò 	Ü˜1˜lÔ+Ø!×/Ñ/Ó1�”Øûð	ûð
 Ð(Ø×&Ñ&×*Ñ*Ô,Ø!ˆB�Oüs6   ‚ACÁA1 Á$CÁ1	B!Á:"BÂB!Â!B$ Â$%C	Ã	Cc               #  ó¬   K  — t         j                  «       } | €d –— y | j                  }g | _        	 | j                  –— || _        y # || _        w xY w­wr@   )r  r0  rI  )ra  Úold_output_stridess     r   Úreport_output_stridesz$TracingContext.report_output_stridesõ  sY   è ø€ ô ×#Ñ#Ó%ˆØˆ:ØŠJØØ×.Ñ.ÐØˆÔð	3Ø×#Ñ#Ò#à 2ˆBÕøÐ 2ˆBÕüs   ‚/A²A Á AÁ	AÁAc                ód   — t        j                  | ||d¬«      t        j                  «       _        y )NF)Úlookup_line)rX  ÚFrameSummaryr  r+  rE  )ÚfilenameÚlinenoÚ
frame_names      r   Úset_current_loczTracingContext.set_current_loc  s'   € ä,5×,BÑ,BØ�f˜j°eô-
Œ×ÑÓÕ)r    N)rT   úOptional[TracingContext])rT   r  )r"   r#   r$   rØ   r·   r0  r+  rÎ   rN  r   rV  r  Ú
contextlibrc  rh  rk  rr  r&   r    r   r  r  a  sä   „ ñð ò6ó ð6ð ò
ó ð
ò('òT.ð
 Øñ'ó ó ð'ð ñ7ó ð7ð Ø×Ññó ó ðð: Ø×Ññ"ó ó ð"ð& Ø×Ññ
3ó ó ð
3ð ñ
ó ñ
r    r  c              #  ó¼  K  — t        t        dd «      }| t        _        	 | –— | �L| j                  �@t	        | j                  j
                  | j                  j                  | j                  f«       |t        _        y # | �L| j                  �@t	        | j                  j
                  | j                  j                  | j                  f«       |t        _        w xY w­wr-  )r/  r)  r*  r)   r   r   r   r*   )ÚcontextÚold_contexts     r   r*  r*  
  sÆ   è ø€ äœ$Ð 1°4Ó8€KØ"„DÔð+ØŠàÐØ×!Ñ!Ð-Ü!à×*Ñ*×3Ñ3Ø×*Ñ*×;Ñ;ØŸ™ðôð  +ŒÕøð ÐØ×!Ñ!Ð-Ü!à×*Ñ*×3Ñ3Ø×*Ñ*×;Ñ;ØŸ™ðôð  +ŒÕüs   ‚C A> ¤ACÁ>ACÃCc              #  ó  K  — t        t        dd«      }| t        _        	 | –— 	 | �F| j                  �:| j                  j                  �$| j                  j                  j                  «        |t        _        y# t        $ r)}t	        |d«      s| �| j                  «       |_        ‚ d}~ww xY w# | �F| j                  �:| j                  j                  �$| j                  j                  j                  «        |t        _        w xY w­w)zË
    This function installs the passed in tracing context as a dynamic scoped
    global variable.

    Calls to TracingContext.get() while not under a `with tracing()` context
    will return None.
    r:  Nr\  )
r/  r)  r:  r¡   r`  r  r\  rC  Ú	shape_envÚcleanup)rv  rw  rb  s      r   Útracingr{    sé   è ø€ ô œ$Ð 1°4Ó8€KØ"„DÔð+Ø‹ð ÐØ×!Ñ!Ð-Ø×!Ñ!×+Ñ+Ð7à×Ñ×'Ñ'×/Ñ/Ô1Ø*ŒÕøô ò Ü�q˜,Ô'¨GÐ,?Ø"×0Ñ0Ó2ˆAŒLØûðûð ÐØ×!Ñ!Ð-Ø×!Ñ!×+Ñ+Ð7à×Ñ×'Ñ'×/Ñ/Ô1Ø*ŒÕüs5   ‚D A9 ¥ADÁ9	B+Â$B&Â&B+Â+B. Â.ADÄDT)Úfrozenc                  óD   — e Zd Zd„ Zd„ Zd„ Zd
d„Zdd„Zdd„Zdd„Z	d„ Z
y	)rf   c                 ó   — yr?  r&   r   s    r   Úis_dict_keyzSource.is_dict_key<  ó   € Ør    c                 ó   — yr?  r&   r   s    r   Úis_ephemeralzSource.is_ephemeral?  r€  r    c                ó   — t         ‚r@   ©ÚNotImplementedError)r   Úcodegens     r   ÚreconstructzSource.reconstructB  ó   € Ü!Ð!r    c                ó   — t         ‚r@   r„  r   s    r   rŒ   zSource.guard_sourceE  rˆ  r    c                ó   — t         ‚r@   r„  r   s    r   rq   zSource.nameH  rˆ  r    c                óf   — | j                  «       t        j                  u rt        ‚t	        | |«      S r@   )rŒ   r/   rW   r…  re   )r   Úfns     r   Ú
make_guardzSource.make_guardK  s+   € Ø×ÑÓ¤+×"6Ñ"6Ñ6Ü%Ð%Ü�T˜2‹Ðr    c                ó>   — | j                  «       j                  «       S r@   )rŒ   rG   r   s    r   rG   zSource.is_specialized_nn_moduleP  s   € Ø× Ñ Ó"×;Ñ;Ó=Ð=r    c                óD   — | j                  «       t        j                  k7  S )z+True if you can guard on attributes of this)rŒ   r/   r\   r   s    r   Úsubguards_allowedzSource.subguards_allowedS  s   € à× Ñ Ó"¤k×&AÑ&AÑAÐAr    Nrµ   r´   )rT   re   rS   )r"   r#   r$   r  r‚  r‡  rŒ   rq   r�  rG   r�  r&   r    r   rf   rf   :  s+   „ òòò"ó"ó"óó
>óBr    rf   c                  ó$   — e Zd ZU ded<   d„ Zd„ Zy)ÚChainedSourcerf   Úbasec                ó6   — | j                   j                  «       S r@   )r“  r  r   s    r   r  zChainedSource.is_dict_key]  s   € à�y‰y×$Ñ$Ó&Ð&r    c                ó6   — | j                   j                  «       S r@   )r“  r‚  r   s    r   r‚  zChainedSource.is_ephemerala  s   € Ø�y‰y×%Ñ%Ó'Ð'r    N)r"   r#   r$   r%   r  r‚  r&   r    r   r’  r’  Y  s   … à
ƒLò'ó(r    r’  c                óz  — ddl m}m} g }t        j	                  «       x}r"|j
                  }|�|j                  |ddf«       ddlm} t        t         |«       «      «      D ]&  \  }}t        ||«      sŒ|j                  |d|f«       Œ( t        j                  | «      }	t        |	«      D ]0  \  }}
t        |
|«      sŒ|j                  |
j
                  d|f«       Œ2 |r\|d   \  }}}|dd D ]I  \  }}}||u rŒJ d	|› d
|› d|› d|› d
|› d|› d|› d|› d|j                  › d|› d|› d|j                  › �«       ‚ |S y)a˜  
    Attempts to "detect" what the current fake mode is.  If there is one ambiently
    available from TracingContext, we preferentially use that.  Otherwise, we
    heuristically detect the fake mode via the following sources, in order of
    priority:

        - Currently active fake mode on stack
        - Fake mode associated with passed in tensors (inputs does not
          have to be flattened)
    r   )Ú
FakeTensorÚFakeTensorModeNztracing context©Ú _get_current_dispatch_mode_stackzactive fake modezfake tensor inputr0   zfake mode (z) from r—   z doesn't match mode (z

fake mode from z allocated at:
z
fake mode from )Útorch._subclasses.fake_tensorr—  r˜  r  r0  rC  r®   Útorch.utils._python_dispatchrš  Ú	enumerateÚreversedry   ÚpytreeÚtree_leavesrc   )Úinputsr—  r˜  Ú
fake_modesrv  rC  rš  ÚiÚmÚflat_inputsÚ
flat_inputÚdesc1Úi1Údesc2Úi2s                  r   Údetect_fake_moder«  e  s™  € ÷ Ià€Jä ×(Ñ(Ó*Ð*€wÐ*Ø×%Ñ%ˆ	ØÐ Ø×Ñ˜yÐ*;¸QÐ?Ô@åMäœ(Ñ#CÓ#EÓFÓGò :‰ˆˆ1Ü�a˜Õ(Ø×Ñ˜qÐ"4°aÐ8Õ9ð:ô ×$Ñ$ VÓ,€KÜ" ;Ó/ò N‰ˆˆ:Ü�j *Õ-Ø×Ñ˜z×3Ñ3Ð5HÈ!ÐLÕMðNñ Ø)¨!™}Ñˆ	�5˜"Ø& q r˜Nò 	‰LˆAˆu�bØ ’>ð Ø˜i˜[¨°¨w°a¸°tÐ;PÐQRÐPSÐSZÐ[`ÐZaÐabÐceÐbfð g"Ø"' ¨¨"¨Ð-=¸i¿o¹oÐ=Nð O"Ø"' ¨¨"¨Ð-=¸a¿g¹g¸YðHó�>ð	ð Ðàr    c                 ó~   — ddl m}  ddlm} t	        t         |«       «      «      D ]  \  }}t        || «      sŒ|c S  y)z~
    Inspects the dispatch mode stack for an active fake mode and returns it.
    Returns None if no fake mode is active.
    r   )r˜  r™  N)r›  r˜  rœ  rš  r�  rž  ry   )r˜  rš  r,   r¤  s       r   Úactive_fake_moder­  ‘  s?   € õ
 =ÝMäœ(Ñ#CÓ#EÓFÓGò ‰ˆˆ1Ü�a˜Õ(ØŠHðð r    )rv  r7  )rv  rs  r@   )r¡  r   )FÚ
__future__r   rt  ÚdataclassesÚenumrz   ÚloggingÚ	threadingrX  Úunittest.mockr]  r�   Úabcr   r   Útypingr   r   r   r	   r
   r   r   r   r   r   r   Útorch._C._dynamo.eval_framer   Útorch.utilsr   rŸ  Útorch.utils._tracebackr   Útorch.utils.weakr   Ú	getLoggerr"   r¢   ÚsympyÚtorchr   r(   ÚEnumr/   r^   ra   Ú	dataclassre   r¸   rº   r¼   rÂ   rÊ   rÛ   rã   rì   rô   r  r!  Úlocalr)  r'  r  r*  r{  rf   r’  r«  r­  r&   r    r   ú<module>rÀ     sZ  ðå "ã Û Û Û Û Û Û Û Û Ý Ý %÷÷ ÷ ñ õ :Ý )Ý 4Ý 4ð €g×Ñ˜Ó!€ñ Ûó
 ðô
:�
ô 
:ô
7ˆjô 
7ô5
�$—)‘)ô 5
ðp÷	ñ 	ô�ô ð
 ×Ñ÷b'ð b'ó ðb'ñJ ˆCƒL€ðð ×Ñ÷	ð 	ó ð	ðð ×Ñô:�ló :ó ð:ð
ô0�W˜Q‘Zô 0÷(ñ (÷4(ñ (ô,	+�NÐ#?Ñ@ô 	+÷(ñ (ô,�NÐ#?Ñ@ô ðB÷%Oñ %OôP<�NÐ#8Ñ9ô <ð €y‡�Ó€ð÷&6ñ 6÷@f
ñ f
ðR ò+ó ð+ð$ ò+ó ð+ð8 €×Ñ˜dÔ#÷Bð Bó $ðBð< €×Ñ˜dÔ#ô(�Fó (ó $ð(ô)óXr    