Ë
    P/æj¶�  ã                   ó.  — 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mZmZm	Z	 d dl
mZ ddlmZmZ ddlmZmZ ddlmZ ddlmZmZ dd	lmZmZ dd
lmZmZ ddlmZmZm Z m!Z! ddl"m#Z#m$Z$ ddl%m&Z& e	rd dl'm(Z( d„ Z) G d„ de$«      Z* G d„ de*«      Z+ G d„ de*«      Z, G d„ de,«      Z- G d„ de$«      Z. G d„ de.«      Z/ G d„ de.«      Z0de1fd „Z2de1fd!„Z3d"d#d$e4dd%fd&„Z5 G d'„ d(e*«      Z6 ejn                  d«      d)„ «       Z8 G d*„ d+e$«      Z9 G d,„ d-e$«      Z:y).é    N)ÚDictÚListÚOptionalÚTYPE_CHECKING)Úis_fakeé   )Ú	polyfillsÚ	variables)Úcreate_call_functionÚcreate_instruction)Ú	skip_code)Úraise_observed_exceptionÚunimplemented)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚGetItemSource)Ú	dict_keysÚdict_valuesÚistypeÚspecialize_symnodeé   )ÚMutableLocalÚVariableTracker)ÚConstantVariable)ÚInstructionTranslatorc                 óð  — t        | t        j                  «      r5| j                  «       j                  j
                  j                  d«      d uS t        | t        j                  «      rt        d„ | j                  D «       «      S t        | t        j                  t        j                  t        j                  t        j                  t        j                  j                  t        j                   t        j"                  t        j$                  j&                  t        j(                  t        j*                  t        j,                  t        j.                  t        j0                  t        j2                  f«      S )NÚexample_valuec              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úis_hashable)Ú.0Úes     ú`/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/_dynamo/variables/dicts.pyú	<genexpr>zis_hashable.<locals>.<genexpr>'   s   è ø€ Ò3 a”;˜q—>Ñ3ùs   ‚)Ú
isinstancer
   ÚTensorVariableÚas_proxyÚnodeÚmetaÚgetÚTupleVariableÚallÚitemsÚBuiltinVariableÚSymNodeVariabler   ÚEnumVariableÚuser_definedÚUserDefinedClassVariableÚUserFunctionVariableÚSkipFunctionVariableÚmiscÚNumpyVariableÚNNModuleVariableÚUnspecializedNNModuleVariableÚMethodWrapperVariableÚTorchInGraphFunctionVariableÚTypingVariableÚFunctoolsPartialVariable©Úxs    r$   r!   r!       sþ   € Ü�!”Y×-Ñ-Ô.ð �z‰z‹|× Ñ ×%Ñ%×)Ñ)¨/Ó:À$ÐFÐFÜ	�A”y×.Ñ.Ô	/ÜÑ3¨1¯7©7Ô3Ó3Ð3äØä×)Ñ)Ü×)Ñ)Ü×*Ñ*Ü×&Ñ&Ü×&Ñ&×?Ñ?Ü×.Ñ.Ü×.Ñ.Ü—‘×,Ñ,Ü×*Ñ*Ü×7Ñ7Ü×/Ñ/Ü×6Ñ6Ü×(Ñ(Ü×2Ñ2ðó
ð 	
ó    c                   óî   ‡ — e Zd Zdhej                  £Z G d„ d«      Zefdeeef   ddfˆ fd„Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zdefd„Zd„ Zd„ Zdddefd„Zdddefd„Zdefd„Z	 	 	 	 	 	 dˆ fd„Zd„ Zd„ Zˆ xZS )ÚConstDictVariableÚuser_clsc                   óN   — e Zd ZdZd
d„Zed„ «       Zd„ Zed„ «       Z	dd de
fd	„Zy)ú"ConstDictVariable._HashableTrackeraB  
        Auxiliary opaque internal class that wraps a VariableTracker and makes it hashable
        This should not be seen or touched by anything outside of ConstDictVariable and its children
        Note that it's also fine to put VTs into dictionaries and sets, but doing so does not take into account aliasing
        ÚreturnNc                 ór   — t        |«      }t        |«      st        dt        |«      › d|› �«       || _        y )NzDict key of type z. Key: )r   r!   r   ÚtypeÚvt)ÚselfrI   s     r$   Ú__init__z+ConstDictVariable._HashableTracker.__init__K   s6   € ä# BÓ'ˆBô ˜r”?ÜÐ 1´$°r³(°¸7À2À$ÐGÔHØˆD�Gr@   c                 ó
  ‡— t        | j                  t        j                  «      r3| j                  j	                  «       j
                  j                  d   }|S t        | j                  t        j                  «      r:t        j                  Št        ˆfd„| j                  j                  D «       «      }|S t        | j                  t        j                  «      r| j                  j                  S t        | j                  t        j                  «      r| j                  j                  S t        | j                  t        j                   «      r| j                  j#                  «       S | j                  j%                  «       }|S )Nr   c              3   óB   •K  — | ]  } ‰|«      j                   –— Œ y ­wr    )Úunderlying_value)r"   r#   ÚHashables     €r$   r%   zFConstDictVariable._HashableTracker.underlying_value.<locals>.<genexpr>Z   s   øè ø€ ÒN¸1™( 1›+×6Õ6ÑNùs   ƒ)r&   rI   r
   r'   r(   r)   r*   r,   rB   Ú_HashableTrackerÚtupler.   r8   Úmoduler9   Úvaluer4   Úget_functionÚas_python_constant)rJ   r?   rO   s     @r$   rN   z3ConstDictVariable._HashableTracker.underlying_valueT   s  ø€ ä˜$Ÿ'™'¤9×#;Ñ#;Ô<Ø—G‘G×$Ñ$Ó&×+Ñ+×0Ñ0°ÑA�ð ˆHô ˜DŸG™G¤Y×%<Ñ%<Ô=Ü,×=Ñ=�ÜÓNÀÇÁÇÁÔNÓN�ð ˆHô ˜DŸG™G¤Y×%?Ñ%?Ô@Ø—w‘w—~‘~Ð%Ü˜DŸG™G¤Y×%LÑ%LÔMØ—w‘w—}‘}Ð$Ü˜DŸG™G¤Y×%CÑ%CÔDØ—w‘w×+Ñ+Ó-Ð-à—G‘G×.Ñ.Ó0�ØˆHr@   c                 ó,   — t        | j                  «      S r    )ÚhashrN   ©rJ   s    r$   Ú__hash__z+ConstDictVariable._HashableTracker.__hash__e   s   € Ü˜×-Ñ-Ó.Ð.r@   c                 ó
  ‡— t        | «      t        |«      k7  ryt        | t        «      rGt        j                  Št        | «      t        |«      k(  xr t        ˆfd„t        | |«      D «       «      S t        | «      r| |u S | |k(  S )NFc              3   óH   •K  — | ]  \  }}‰j                  ||«      –— Œ y ­wr    )Ú_eq_impl)r"   ÚuÚvrO   s      €r$   r%   z>ConstDictVariable._HashableTracker._eq_impl.<locals>.<genexpr>o   s'   øè ø€ ò 0Ù04°°1�H×%Ñ% a¨×+ñ0ùs   ƒ")	rH   r&   rQ   rB   rP   Úlenr-   Úzipr   )ÚaÚbrO   s     @r$   r\   z+ConstDictVariable._HashableTracker._eq_implh   s|   ø€ ô �A‹wœ$˜q›'Ò!ØÜ˜AœuÔ%Ü,×=Ñ=�Ü˜1“v¤ Q£Ñ'ò ¬Có 0Ü8;¸A¸q»	ô0ó -ð ô ˜”Ø˜A�v�à˜A‘v�r@   Úotherc                 ó   — t         j                  }t        ||«      s%t        j                  |«      sJ t        |«      «       ‚t        ||«      r&|j                  | j                  |j                  «      S |j                  | j                  |«      S r    )rB   rP   r&   r   Ú
is_literalrH   r\   rN   )rJ   rc   rO   s      r$   Ú__eq__z)ConstDictVariable._HashableTracker.__eq__w   s„   € Ü(×9Ñ9ˆHÜ˜e XÔ.Ô2B×2MÑ2MØô3ð ä�E‹{óð ô ˜% Ô*Ø×(Ñ(¨×)>Ñ)>À×@VÑ@VÓWÐWð ×$Ñ$ T×%:Ñ%:¸EÓBÐBr@   ©rF   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rK   ÚpropertyrN   rY   Ústaticmethodr\   Úboolrf   © r@   r$   rP   rE   D   sP   „ ñ	ó	ð 
ñ	ó 
ð	ò 	/ð 
ñ	ó 
ð	ð		CÐ Dð 		CÈô 		Cr@   rP   r.   rF   Nc                 ó  •‡— t        ‰| �  di |¤Ž t        j                  Št	        ˆfd„|j                  «       D «       «      sJ ‚ˆfd„}|j                  «       D ��ci c]  \  }} ||«      |“Œ c}}| _        || _        y c c}}w )Nc              3   ól   •K  — | ]+  \  }}t        |t        ‰f«      xr t        |t        «      –— Œ- y ­wr    )r&   r   )r"   r?   r^   rO   s      €r$   r%   z-ConstDictVariable.__init__.<locals>.<genexpr>Š   s?   øè ø€ ò 
ñ ��1ô �qœ?¨HÐ5Ó6ò /Ü˜1œoÓ.ó/ñ
ùs   ƒ14c                 ó0   •— t        | ‰«      r| S  ‰| «      S r    )r&   )ÚkeyrO   s    €r$   Úmake_hashablez1ConstDictVariable.__init__.<locals>.make_hashable�   s   ø€ Ü$ S¨(Ô3�3ÐF¹À#»ÐFr@   ro   )ÚsuperrK   rB   rP   r-   r.   rC   )	rJ   r.   rC   Úkwargsrt   r?   r^   rO   Ú	__class__s	          @€r$   rK   zConstDictVariable.__init__‚   s„   ù€ ô 	‰ÑÑ"˜6Ò"ä$×5Ñ5ˆô ó 
ð Ÿ™›ô
ô 
ð 	
ð 
ô	Gð 7<·k±k³m×D©d¨a°‘m AÓ&¨Ñ)ÓDˆŒ
Ø ˆ�ùó Es   ÁBc                 ó¶   — | j                   j                  «       D ��ci c].  \  }}|j                  j                  «       |j                  «       “Œ0 c}}S c c}}w r    )r.   rI   r(   ©rJ   Úkr^   s      r$   r(   zConstDictVariable.as_proxy–   s<   € Ø:>¿*¹*×:JÑ:JÓ:L×M±$°!°Q�—‘—‘“ §¡£Ñ-ÓMÐMùÓMó   ž3Ac                 ón   — ddj                  d„ | j                  j                  «       D «       «      z   dz   S )Nú{ú, c              3   ó|   K  — | ]4  \  }}|j                   j                  «       › d |j                  «       › �–— Œ6 y­w)z: N©rI   Ú
debug_repr)r"   rz   r^   s      r$   r%   z/ConstDictVariable.debug_repr.<locals>.<genexpr>œ   s7   è ø€ ò Ù=A¸QÀ�1—4‘4—?‘?Ó$Ð% R¨¯©«Ð'7Ô8ñùs   ‚:<ú})Újoinr.   rX   s    r$   r�   zConstDictVariable.debug_repr™   s?   € àØ�i‰iñ ØEIÇZÁZ×EUÑEUÓEWôó ñð ñ	ð	
r@   c                 ó¶   — | j                   j                  «       D ��ci c].  \  }}|j                  j                  «       |j                  «       “Œ0 c}}S c c}}w r    ©r.   rI   rU   ry   s      r$   rU   z$ConstDictVariable.as_python_constant¢   sP   € ð Ÿ
™
×(Ñ(Ó*÷
á��1ð �D‰D×#Ñ#Ó% q×';Ñ';Ó'=Ñ=ó
ð 	
ùó 
r{   c                 óš   — | j                   j                  «       D ��ci c]   \  }}|j                  j                  «       |“Œ" c}}S c c}}w r    r…   ry   s      r$   Úkeys_as_python_constantz)ConstDictVariable.keys_as_python_constant¨   s9   € Ø9=¿¹×9IÑ9IÓ9K×L±°°A�—‘×'Ñ'Ó)¨1Ñ,ÓLÐLùÓLs   ž%Ac                 ó   — | j                   S r    )rC   rX   s    r$   Úpython_typezConstDictVariable.python_type«   s   € Ø�}‰}Ðr@   c                 óè   — t        |t        «      sJ ‚t        j                  }t	        |«      xrD  ||«      | j
                  v xr. t        | j
                   ||«         t        j                  «       S r    )r&   r   rB   rP   r!   r.   r
   ÚDeletedVariable)rJ   rI   rO   s      r$   Ú__contains__zConstDictVariable.__contains__®   se   € Ü˜"œoÔ.Ð.Ð.Ü$×5Ñ5ˆä˜‹Oò TÙ˜“ §
¡
Ð*òTä˜tŸz™z©(°2«,Ñ7¼×9RÑ9RÓSÐSð	
r@   c           	      ó¢   — t        | j                  j                  «       D �cg c]  }t        |t        j
                  «      s|‘Œ  c}«      S c c}w r    )r_   r.   Úvaluesr&   r
   r‹   ©rJ   r?   s     r$   r_   zConstDictVariable.len·   sI   € Üð Ÿ™×*Ñ*Ó,öàÜ! !¤Y×%>Ñ%>Ô?ò òó
ð 	
ùòs   ¢#Ac                 óî  ‡— | j                   t        j                  u r‰j                  ˆfd„«       | j                  j	                  «       D ]  \  }} ‰|j
                  «        ‰|«       Œ! | j                   t        j                  u r=‰j                  t        dt        | j                  «      ¬«      gt        dd«      ¢«       y ‰j                  t        dt        | j                  «      ¬«      «       y )Nc                  ón   •— ‰ j                  ‰ j                  t        «      ‰ j                  d«      g«      S )NÚOrderedDict)Úextend_outputÚcreate_load_python_moduleÚcollectionsÚcreate_load_attr©Úcodegens   €r$   ú<lambda>z/ConstDictVariable.reconstruct.<locals>.<lambda>Ä   s3   ø€ ˜×-Ñ-à×9Ñ9¼+ÓFØ×0Ñ0°Ó?ðó€ r@   Ú	BUILD_MAP©Úargr   F)rC   r•   r’   Úadd_push_nullr.   rI   r“   r   r_   r   Úappend_output)rJ   r˜   rs   rS   s    `  r$   ÚreconstructzConstDictVariable.reconstructÀ   sÄ   ø€ à�=‰=œK×3Ñ3Ñ3Ø×!Ñ!óôð Ÿ*™*×*Ñ*Ó,ò 	‰JˆC�Ù�C—F‘FŒOÙ�E�Nð	ð �=‰=œK×3Ñ3Ñ3Ø×!Ñ!ä& {¼¸D¿J¹J»ÔHðä)¨!¨UÓ3ðõð ×!Ñ!Ô"4°[ÄcÈ$Ï*É*ÃoÔ"VÕWr@   Útxr   rœ   c                 óˆ   — t         j                  |«      }|| j                  vrt        t        || «       | j                  |   S r    )rB   rP   r.   r   ÚKeyError©rJ   r    rœ   rs   s       r$   Ú'getitem_const_raise_exception_if_absentz9ConstDictVariable.getitem_const_raise_exception_if_absentÛ   s:   € ô  ×0Ñ0°Ó5ˆØ�d—j‘jÑ Ü$¤X¨r°4Ô8Ø�z‰z˜#‰Ðr@   c                 ó–   — t         j                  |«      }|| j                  vrt        d|j                  › �«       | j                  |   S )Nzdict KeyError: )rB   rP   r.   r   rS   r£   s       r$   Úgetitem_constzConstDictVariable.getitem_constã   s?   € Ü×0Ñ0°Ó5ˆØ�d—j‘jÑ Ü˜O¨C¯I©I¨;Ð7Ô8Ø�z‰z˜#‰Ðr@   c                 óh   — t         j                  |«      }|| j                  vry | j                  |   S r    )rB   rP   r.   )rJ   rœ   rs   s      r$   Úmaybe_getitem_constz%ConstDictVariable.maybe_getitem_consté   s/   € Ü×0Ñ0°Ó5ˆØ�d—j‘jÑ ØØ�z‰z˜#‰Ðr@   c           
      óH  •— ddl m}m}m}m}m}	m}
 t        j                  }|xr t        |d   «      }|dk(  r%t        |«      dk(  sJ ‚| j                  ||d   «      S |dk(  r”|s|rJ ‚| j                  r=|j                  j                  j                  | j                  j!                  «       «        |	| j"                  j#                  «       D ��cg c]  \  }} |	|j$                  |g«      ‘Œ c}}«      S |dk(  rZ| j                  r=|j                  j                  j                  | j                  j!                  «       «       |s|rJ ‚t'        | «      S |dk(  rZ| j                  r=|j                  j                  j                  | j                  j!                  «       «       |s|rJ ‚t)        | «      S |dk(  r9|s|rJ ‚| j+                  | j"                  j-                  «       t/        «       ¬	«      S |d
k(  r+|s|rJ ‚ |j0                  t        | j"                  «      «      S |dk(  rr|rp| j2                  rd|st        |«      dk(  sJ ‚|j                  j4                  j7                  | «       |d   | j"                   ||d   «      <    |j0                  d «      S |dk(  ri|rg| j2                  r[|j                  j4                  j7                  | «       | j"                  j9                   ||d   «      «        |j0                  d «      S |dv r/t        |«      dv r"|d   | vrt        |«      dk(  r |d «      S |d   S |dk(  rW|rU| j2                  rI|j                  j4                  j7                  | «       | j"                  j;                   ||d   «      «      S |dk(  rQ|j                  j4                  j7                  | «       | j"                  j=                  «         |j0                  d «      S |dk(  �r%t        |«      dk(  �rt?        |d   t        ||	|t@        jB                  |
f«      rï| j2                  rã|j                  j4                  j7                  | «       t?        |d   t        «      r|d   }n|jE                  |tF        |d   «      }| j"                  jI                  |j"                  «       |j#                  «       D ��ci c]  \  }} | |j0                  |«      «      |“Œ  }}}| j"                  jI                  |«        |j0                  d «      S |dv r|d   | v r| jK                  ||d   «      S |dk(  r%t        |«      dk(  r |j0                  |d   | v «      S |dk(  rŸ|r�| j2                  r‘|rJ ‚t        |«      dk  sJ ‚| jM                  |d   «      }|�|S t        |«      dk(  r |j0                  d «      }n|d   }|j                  j4                  j7                  | «       || j"                   ||d   «      <   |S tN        ‰| �¡  ||||«      S c c}}w c c}}w )Nr   )r/   r   ÚListIteratorVariableÚListVariabler,   ÚUserDefinedObjectVariabler   Ú__getitem__r.   ÚkeysrŽ   Úcopy)r.   Úmutable_localÚ__len__Ú__setitem__r   Ú__delitem__)Úpopr+   )r   r   r´   ÚclearÚupdate)r+   Ú__getattr__rŒ   Ú
setdefault))Ú r/   r   rª   r«   r,   r¬   rB   rP   r!   r_   r¤   ÚsourceÚoutputÚguard_on_key_orderÚaddÚnamer.   rI   ÚDictKeysÚ
DictValuesÚcloner¯   r   Úcreater°   Úside_effectsÚmutationr³   r´   rµ   r&   r
   ÚIteratorVariableÚcall_custom_dictÚdictr¶   r¦   r¨   ru   Úcall_method)rJ   r    r¾   Úargsrv   r/   r   rª   r«   r,   r¬   rO   Úarg_hashablerz   r^   Údict_vtrS   r?   rw   s                     €r$   rÈ   zConstDictVariable.call_methodï   s‚  ø€ ÷	
÷ 	
ô %×5Ñ5ˆàÒ4¤¨D°©GÓ 4ˆà�=Ò Ü�t“9 ’>Ð!�>Ø×?Ñ?ÀÀDÈÁGÓLÐLØ�WŠ_Ù¡Ð'Ð'Ø�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±×1AÑ1AÓ1CÔDÙ Ø6:·j±j×6FÑ6FÓ6H×I©d¨a°‘ §¡ a˜yÕ)ÓIóð ð �VŠ^Ø�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±×1AÑ1AÓ1CÔDÙ¡Ð'Ð'Ü˜D“>Ð!Ø�XÒØ�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±×1AÑ1AÓ1CÔDÙ¡Ð'Ð'Ü˜dÓ#Ð#Ø�VŠ^Ù¡Ð'Ð'Ø—:‘: D§J¡J§O¡OÓ$5Ä\Ã^�:ÓTÐTØ�YÒÙ¡Ð'Ð'Ø*Ð#×*Ñ*¬3¨t¯z©z«?Ó;Ð;Ø�]Ò"¡|¸×8JÒ8JÙ¤# d£)¨q¢.Ð0Ð0Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø,0°©GˆD�J‰J‘x  Q¡Ó(Ñ)Ø*Ð#×*Ñ*¨4Ó0Ð0Ø�]Ò"¡|¸×8JÒ8JØ�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×"Ñ"¡8¨D°©GÓ#4Ô5Ø*Ð#×*Ñ*¨4Ó0Ð0Ø�^Ñ#¬¨D«	°VÑ(;ÀÀQÁÈtÑ@Sä�4‹y˜AŠ~Ù'¨Ó-Ð-à˜A‘w�Ø�UŠ]™|°×0BÒ0BØ�I‰I×"Ñ"×+Ñ+¨DÔ1Ø—:‘:—>‘>¡(¨4°©7Ó"3Ó4Ð4Ø�WŠ_Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×ÑÔØ*Ð#×*Ñ*¨4Ó0Ð0à�HÓÜ�D“	˜Q“ÜØ�Q‘ä%Ø Ø!Ø(Ü×.Ñ.Ø-ðô
ð ×"Ò"à�I‰I×"Ñ"×+Ñ+¨DÔ1Ü˜$˜q™'Ô#4Ô5Ø˜q™'‘à)×:Ñ:¸2¼tÀTÈ!ÁWÓM�Ø�J‰J×Ñ˜gŸm™mÔ,ð EKÇLÁLÃN÷Ù<@¸A¸q‘Ð0Ð)×0Ñ0°Ó3Ó4°aÑ7ðˆFñ ð �J‰J×Ñ˜fÔ%Ø*Ð#×*Ñ*¨4Ó0Ð0ØÐ+Ñ+°°Q±¸4±Ø×%Ñ% b¨$¨q©'Ó2Ð2Ø�^Ò#¬¨D«	°QªØ*Ð#×*Ñ*¨4°©7°d¨?Ó;Ð;Ø�\Ò!¡l°t×7IÒ7IÙÐ�:Ü�t“9 ’>Ð!�>Ø×,Ñ,¨T°!©WÓ5ˆEØÐ Ø�ä�t“9 ’>Ø/Ð(×/Ñ/°Ó5‘Aà˜Q™�AØ—	‘	×&Ñ&×/Ñ/°Ô5Ø01�—
‘
™8 D¨¡GÓ,Ñ-Ø�ä‘7Ñ& r¨4°°vÓ>Ð>ùóo Jùó~s   ÃX
Ó#Xc                 óp   — | j                   j                  «       D �cg c]  }|j                  ‘Œ c}S c c}w r    )r.   r®   rI   )rJ   r    r?   s      r$   Úunpack_var_sequencez%ConstDictVariable.unpack_var_sequenced  s%   € Ø"Ÿj™jŸo™oÓ/Ö0˜�—“Ò0Ð0ùÒ0s   �3c                 óÞ   — | j                   t        u rB|| j                   j                  v rt        j                  d«      S t        j                  d«      S t        d| j                   › d�«       y )NTFzhasattr on z is not supported)rC   rÇ   Ú__dict__r   rÂ   r   ©rJ   r    r¾   s      r$   Úcall_hasattrzConstDictVariable.call_hasattrg  sZ   € ð �=‰=œDÑ Ø�t—}‘}×-Ñ-Ñ-Ü'×.Ñ.¨tÓ4Ð4Ü#×*Ñ*¨5Ó1Ð1Ü˜ D§M¡M ?Ð2CÐDÕEr@   ©rÉ   zList[VariableTracker]rv   zDict[str, VariableTracker]rF   r   )rh   ri   rj   r   Ú_nonvar_fieldsrP   rÇ   r   rK   r(   r�   rU   r‡   r‰   rn   rŒ   r_   rŸ   r¤   r¦   r¨   rÈ   rÍ   rÑ   Ú__classcell__©rw   s   @r$   rB   rB   >   sè   ø„ àðà	×	'Ñ	'ð€N÷
<Cñ <Cð~ GKñ!Ø˜/¨?Ð:Ñ;ð!à	õ!ò(Nò
ò
òMòð
 $ó 
ò
òXð6Ø)ðØ0?óðÐ 7ð ¸oó ð ó ðs?ð &ð	s?ð
 -ðs?ð 
õs?òj1öFr@   rB   c                   ó^   ‡ — e Zd Zddˆ fd„Zˆ fd„Zˆ fd„Zed„ «       Z	 	 	 	 	 	 dˆ fd„Zˆ xZ	S )	ÚDefaultDictVariablec                 ó^   •— t        ‰| �  ||fi |¤Ž |t        j                  u sJ ‚|| _        y r    )ru   rK   r•   ÚdefaultdictÚdefault_factory)rJ   r.   rC   rÚ   rv   rw   s        €r$   rK   zDefaultDictVariable.__init__r  s3   ø€ Ü‰Ñ˜ Ñ3¨FÒ3Øœ;×2Ñ2Ñ2Ð2Ð2Ø.ˆÕr@   c                 ót   •— | j                   t        t        t        fvr| j                  syt
        ‰| �  «       S )NF)rÚ   ÚlistrQ   rÇ   r.   ru   Úis_python_constant©rJ   rw   s    €r$   rÝ   z&DefaultDictVariable.is_python_constantw  s1   ø€ ð ×Ñ¬¬e´TÐ':Ñ:À4Ç:Â:ØÜ‰wÑ)Ó+Ð+r@   c                 ó^   •— d| j                   j                  «       › dt        ‰| �  «       › d�S )Nzdefaultdict(r~   ú))rÚ   r�   ru   rÞ   s    €r$   r�   zDefaultDictVariable.debug_repr~  s4   ø€ à˜4×/Ñ/×:Ñ:Ó<Ð=¸RÄÁÑ@RÓ@TÐ?UÐUVÐWð	
r@   c                 óÂ   — t        | t        j                  «      r"| j                  t        t
        t        t        fv S t        | t        j                  j                  «      S r    )
r&   r
   r/   ÚfnrÜ   rQ   rÇ   ÚsetÚ	functionsÚBaseUserFunctionVariabler›   s    r$   Úis_supported_argz$DefaultDictVariable.is_supported_argƒ  sC   € ä�cœ9×4Ñ4Ô5Ø—6‘6œd¤E¬4´Ð5Ð5Ð5ä˜c¤9×#6Ñ#6×#OÑ#OÓPÐPr@   c                 ó,  •— |dk(  r}t        |«      dk(  sJ ‚|d   | v r| j                  ||d   «      S | j                  €t        |d   › «      ‚| j                  j	                  |g i «      }t
        ‰| �  |d|d   |f|«       |S t
        ‰| �  ||||«      S )Nr­   r   r   r²   )r_   r¦   rÚ   r¢   Úcall_functionru   rÈ   )rJ   r    r¾   rÉ   rv   Údefault_varrw   s         €r$   rÈ   zDefaultDictVariable.call_methodŠ  s³   ø€ ð �=Ò Ü�t“9 ’>Ð!�>à�A‰w˜$‰Ø×)Ñ)¨"¨d°1©gÓ6Ð6à×'Ñ'Ð/Ü" d¨1¡g YÓ0Ð0à"&×"6Ñ"6×"DÑ"DÀRÈÈRÓ"P�KÜ‘GÑ'Ø˜M¨D°©G°[Ð+AÀ6ôð 'Ð&ä‘7Ñ& r¨4°°vÓ>Ð>r@   r    rg   rÒ   )
rh   ri   rj   rK   rÝ   r�   rm   ræ   rÈ   rÔ   rÕ   s   @r$   r×   r×   q  sP   ø„ ö/ô
,ô
ð
 ñQó ðQð?ð &ð	?ð
 -ð?ð 
÷?ñ ?r@   r×   c                   ó¨   ‡ — e Zd ZdZdee   ddfˆ fd„Zd„ Zed„ «       Z	e
d„ «       Zd	„ Zd
„ Zd„ Zd„ Zdee   deeef   ddfˆ fd„Zdddefd„Zˆ xZS )ÚSetVariablez-We model a sets as dictonary with None valuesr.   rF   Nc                 óv   •— t         j                  |t        j                  «       «      }t	        ‰| �  |fi |¤Ž y r    )rÇ   Úfromkeysrë   Ú_default_valueru   rK   ©rJ   r.   rv   rw   s      €r$   rK   zSetVariable.__init__©  s0   ø€ ô
 —‘˜e¤[×%?Ñ%?Ó%AÓBˆÜ‰Ñ˜Ñ) &Ó)r@   c                 óˆ   — | j                   syddj                  d„ | j                   j                  «       D «       «      z   dz   S )Nzset()r}   ú,c              3   óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr    r€   ©r"   rz   s     r$   r%   z)SetVariable.debug_repr.<locals>.<genexpr>µ  ó   è ø€ Ò!O¸ !§$¡$§/¡/×"3Ñ!Oùó   ‚$&r‚   ©r.   rƒ   r®   rX   s    r$   r�   zSetVariable.debug_repr±  s7   € Ø�zŠzØà˜Ÿ™Ñ!O¸T¿Z¹Z¿_¹_Ó=NÔ!OÓOÑOÐRUÑUÐUr@   c                 óH   — t        | j                  j                  «       «      S r    )rã   r.   r®   rX   s    r$   Ú	set_itemszSetVariable.set_items·  s   € ä�4—:‘:—?‘?Ó$Ó%Ð%r@   c                  ó,   — t        j                  d «      S r    )r   rÂ   ro   r@   r$   rî   zSetVariable._default_value»  s   € ô  ×&Ñ& tÓ,Ð,r@   c                 óp   — | j                   D �ch c]  }|j                  j                  «       ’Œ c}S c c}w r    )rø   rI   r(   ©rJ   rz   s     r$   r(   zSetVariable.as_proxyÀ  s$   € Ø)-¯©Ö8 A�—‘—‘•Ò8Ð8ùÒ8ó   �!3c                 ó   — t         S r    )rã   rX   s    r$   r‰   zSetVariable.python_typeÃ  s   € Üˆ
r@   c                 óp   — | j                   D �ch c]  }|j                  j                  «       ’Œ c}S c c}w r    ©rø   rI   rU   rû   s     r$   rU   zSetVariable.as_python_constantÆ  ó'   € Ø37·>±>ÖB¨a�—‘×'Ñ'Õ)ÒBÐBùÒBrü   c                 óÒ   — |j                  | j                  D �cg c]  }|j                  ‘Œ c}«       |j                  t	        dt        | j                  «      ¬«      «       y c c}w )NÚ	BUILD_SETr›   )Úforeachrø   rI   rž   r   r_   ©rJ   r˜   r?   s      r$   rŸ   zSetVariable.reconstructÉ  sE   € Ø�‰ t§~¡~Ö6 !˜Ÿ›Ò6Ô7Ø×ÑÔ0°Ä#ÀdÇnÁnÓBUÔVÕWùò 7s   šA$rÉ   rv   r   c                 óÂ  •— ddl m}m} |dk(  r1|rJ ‚t        |«      dk(  sJ ‚d}|d   t        j                  «       f}�n�|dk(  rA|rJ ‚|rJ ‚| j                  j                  «       j                  }t        ‰	| �)  |||f|«       |S |dk(  rM|rJ ‚t        |«      dk(  sJ ‚t        j                  t        j                  «      j                  || |d   gi «      S |dk(  rM|rJ ‚t        |«      dk(  sJ ‚t        j                  t        j                   «      j                  || |d   gi «      S |d	k(  rM|rJ ‚t        |«      dk(  sJ ‚t        j                  t        j"                  «      j                  || |d   gi «      S |d
k(  rM|rJ ‚t        |«      dk(  sJ ‚t        j                  t        j$                  «      j                  || |d   gi «      S |dk(  rwt        |«      dk(  rit'        |d   t        ||f«      rS| j(                  rGt'        |d   ||f«      rt	        |d   j+                  |«      «      }n|d   }t        ‰	| �)  |d|f|«      S |dk(  r8|rJ ‚t        |«      dk(  sJ ‚|d   | vrt-        d«       t        ‰	| �)  |d||«      S |dk(  rC|rJ ‚t        |«      dk(  sJ ‚|d   | v rt        ‰	| �)  |d||«      S t/        j0                  d ¬«      S t        ‰	| �)  ||||«      S )Nr   )r«   r,   r½   r²   r   r´   Ú
isdisjointÚintersectionÚunionÚ
differencer¶   Úremovezkey does not existÚdiscard©rS   )r¹   r«   r,   r_   rë   rî   rø   r´   rI   ru   rÈ   r
   r4   r	   Úset_isdisjointrè   Úset_intersectionÚ	set_unionÚset_differencer&   r°   rÍ   r   r   rÂ   )
rJ   r    r¾   rÉ   rv   r«   r,   Úresultrœ   rw   s
            €r$   rÈ   zSetVariable.call_methodÍ  s  ø€ ÷ 	2ð �5Š=ÙÐ�:Ü�t“9 ’>Ð!�>Ø ˆDØ˜‘Gœ[×7Ñ7Ó9Ð:ŠDØ�UŠ]ÙÐ�:ÙˆO�8à—^‘^×'Ñ'Ó)×,Ñ,ˆFÜ‰GÑ  D¨6¨)°VÔ<ØˆMØ�\Ò!ÙÐ�:Ü�t“9 ’>Ð!�>Ü×1Ñ1Ü×(Ñ(óç‰m˜B  t¨A¡w °Ó4ð5ð �^Ò#ÙÐ�:Ü�t“9 ’>Ð!�>Ü×1Ñ1Ü×*Ñ*óç‰m˜B  t¨A¡w °Ó4ð5ð �WŠ_ÙÐ�:Ü�t“9 ’>Ð!�>Ü×1Ñ1´)×2EÑ2EÓF×TÑTØ�T˜4 ™7�O Róð ð �\Ò!ÙÐ�:Ü�t“9 ’>Ð!�>Ü×1Ñ1Ü×(Ñ(óç‰m˜B  t¨A¡w °Ó4ð5ð �HÒÜ�D“	˜Q’ÜØ�Q‘äØ Ø!ðôð ×"Ò"ä˜$˜q™' L°-Ð#@ÔAÜ! $ q¡'×"=Ñ"=¸bÓ"AÓB‘à˜1‘g�Ü‘7Ñ& r¨8°c°V¸VÓDÐDØ�XÒÙÐ�:Ü�t“9 ’>Ð!�>Ø�A‰w˜dÑ"ÜÐ2Ô3Ü‘7Ñ& r¨5°$¸Ó?Ð?Ø�YÒÙÐ�:Ü�t“9 ’>Ð!�>Ø�A‰w˜$‰Ü‘wÑ*¨2¨u°d¸FÓCÐCä'×.Ñ.°TÔ:Ð:Ü‰wÑ" 2 t¨T°6Ó:Ð:r@   r    r   rœ   c                 ó   — t        d«      ‚)NzIllegal to getitem on a set)ÚRuntimeError)rJ   r    rœ   s      r$   r¦   zSetVariable.getitem_const  s   € ÜÐ8Ó9Ð9r@   )rh   ri   rj   rk   r   r   rK   r�   rl   rø   rm   rî   r(   r‰   rU   rŸ   r   ÚstrrÈ   r¦   rÔ   rÕ   s   @r$   rë   rë   ¦  s±   ø„ Ù7ð*à�OÑ$ð*ð 
õ	*òVð ñ&ó ð&ð ñ-ó ð-ò9òòCòXðM;ð �?Ñ#ð	M;ð
 �S˜/Ð)Ñ*ðM;ð 
õM;ð^:Ð 7ð :¸o÷ :r@   rë   c                   ó~   ‡ — e Zd Zdee   ddfˆ fd„Zd„ Zed„ «       Zd„ Z	d„ Z
d	„ Zd
ee   deeef   ddfˆ fd„Zˆ xZS )ÚFrozensetVariabler.   rF   Nc                 ó&   •— t        ‰| �  |fi |¤Ž y r    )ru   rK   rï   s      €r$   rK   zFrozensetVariable.__init__!  s   ø€ ô
 	‰Ñ˜Ñ) &Ó)r@   c                 óˆ   — | j                   syddj                  d„ | j                   j                  «       D «       «      z   dz   S )Nzfrozenset()r}   rñ   c              3   óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr    r€   ró   s     r$   r%   z/FrozensetVariable.debug_repr.<locals>.<genexpr>,  rô   rõ   r‚   rö   rX   s    r$   r�   zFrozensetVariable.debug_repr(  s7   € Ø�zŠzØ à˜Ÿ™Ñ!O¸T¿Z¹Z¿_¹_Ó=NÔ!OÓOÑOÐRUÑUÐUr@   c                 ó6   — | j                   j                  «       S r    )r.   r®   rX   s    r$   rø   zFrozensetVariable.set_items.  s   € à�z‰z�‰Ó Ð r@   c                 ó   — t         S r    )Ú	frozensetrX   s    r$   r‰   zFrozensetVariable.python_type2  ó   € ÜÐr@   c                 óp   — | j                   D �ch c]  }|j                  j                  «       ’Œ c}S c c}w r    rÿ   rû   s     r$   rU   z$FrozensetVariable.as_python_constant5  r   rü   c                 óÔ   ‡— ‰j                  | j                  D �cg c]  }|j                  ‘Œ c}«       ‰j                  ˆfd„«       ‰j	                  t        dd«      «       y c c}w )Nc                  óF   •— ‰ j                  ‰ j                  d«      g«      S )Nr  )r“   Úcreate_load_globalr—   s   €r$   r™   z/FrozensetVariable.reconstruct.<locals>.<lambda>;  s%   ø€ �G×)Ñ)à×.Ñ.¨{Ó;ðó€ r@   r   F)r  rø   rI   r�   r“   r   r  s    ` r$   rŸ   zFrozensetVariable.reconstruct8  sR   ø€ Ø�‰ t§~¡~Ö6 !˜Ÿ›Ò6Ô7Ø×Ñóô	
ð 	×ÑÔ2°1°eÓ<Õ=ùò 7s   ›A%rÉ   rv   r   c                 óN   •— |dv rt        d|› d�«      ‚t        ‰| �	  ||||«      S )N)r½   r´   r¶   r
  r  rµ   zIllegal call_method z on a frozenset)r  ru   rÈ   ©rJ   r    r¾   rÉ   rv   rw   s        €r$   rÈ   zFrozensetVariable.call_methodC  s9   ø€ ð ÐIÑIÜÐ!5°d°V¸?ÐKÓLÐLÜ‰wÑ" 2 t¨T°6Ó:Ð:r@   )rh   ri   rj   r   r   rK   r�   rl   rø   r‰   rU   rŸ   r   r  rÈ   rÔ   rÕ   s   @r$   r  r     s€   ø„ ð*à�OÑ$ð*ð 
õ	*òVð ñ!ó ð!òòCò	>ð	;ð �?Ñ#ð		;ð
 �S˜/Ð)Ñ*ð	;ð 
÷	;ñ 	;r@   r  c                   ó–   ‡ — e Zd ZU dZdZee   ed<   deddfˆ fd„Z	e
d„ «       Ze
d„ «       Zd	„ Zd
„ Zded   deedf   ddfˆ fd„Zˆ xZS )ÚDictViewzu
    Models _PyDictViewObject

    This is an "abstract" class. Subclasses will override kv and the items method
    NÚkvÚdv_dictrF   c                 óv   •— t        ‰| �  di |¤Ž | j                  dv sJ ‚t        |t        «      sJ ‚|| _        y )N)r®   rŽ   ro   )ru   rK   r&  r&   rB   r'  )rJ   r'  rv   rw   s      €r$   rK   zDictView.__init__X  s>   ø€ Ü‰ÑÑ"˜6Ò"Ø�w‰wÐ,Ñ,Ð,Ð,Ü˜'Ô#4Ô5Ð5Ð5Øˆ�r@   c                 ó`   —  t        | j                  j                  | j                  «      «       S r    )Úgetattrr'  r.   r&  rX   s    r$   Ú
view_itemszDictView.view_items^  s"   € à3Œw�t—|‘|×)Ñ)¨4¯7©7Ó3Ó5Ð5r@   c                 ó   — t         ‚r    ©ÚNotImplementedErrorrX   s    r$   Úview_items_vtzDictView.view_items_vtb  s
   € ô "Ð!r@   c                 óX   ‡ — ˆ fd„}‰ j                   D �cg c]
  } ||«      ‘Œ c}S c c}w )Nc                 ó>   •— ‰j                   dk(  r| j                  S | S )Nr®   )r&  rI   )r?   rJ   s    €r$   Úunwrapz,DictView.unpack_var_sequence.<locals>.unwrapi  s   ø€ ØŸ7™7 fÒ,�1—4‘4Ð3°!Ð3r@   )r+  )rJ   r    r2  r?   s   `   r$   rÍ   zDictView.unpack_var_sequenceh  s&   ø€ ô	4ð $(§?¡?Ö3˜a‘�q•	Ò3Ð3ùÒ3s   •'c                 ó€   —  || j                   «       |j                  | j                  «       |j                  d«       y )Nr   )r'  Úload_methodr&  rÈ   ©rJ   r˜   s     r$   rŸ   zDictView.reconstructn  s.   € Ù�—‘ÔØ×Ñ˜DŸG™GÔ$Ø×Ñ˜AÕr@   rÉ   r   rv   c                 ón   •— |dk(  r| j                   j                  ||||«      S t        ‰| �  ||||«      S )Nr±   ©r'  rÈ   ru   r#  s        €r$   rÈ   zDictView.call_methods  s>   ø€ ð �9ÒØ—<‘<×+Ñ+¨B°°d¸FÓCÐCÜ‰wÑ" 2 t¨T°6Ó:Ð:r@   )rh   ri   rj   rk   r&  r   r  Ú__annotations__rB   rK   rl   r+  r/  rÍ   rŸ   r   r   rÈ   rÔ   rÕ   s   @r$   r%  r%  O  s—   ø… ñð €Bˆ�‰ÓðÐ 1ð Àõ ð ñ6ó ð6ð ñ"ó ð"ò
4òð
	;ð Ð$Ñ%ð		;ð
 �SÐ+Ð+Ñ,ð	;ð 
÷	;ñ 	;r@   r%  c                   óf   ‡ — e Zd ZdZed„ «       Zed„ «       Zd„ Zded   de	e
df   ddfˆ fd	„Zˆ xZS )
r¿   r®   c                 ó,   — t        | j                  «      S r    )rã   r+  rX   s    r$   rø   zDictKeys.set_items‚  s   € ä�4—?‘?Ó#Ð#r@   c                 óT   — | j                   D �cg c]  }|j                  ‘Œ c}S c c}w r    )r+  rI   r�   s     r$   r/  zDictKeys.view_items_vt†  s    € ð #Ÿo™oÖ.˜�—“Ò.Ð.ùÒ.s   �%c                 ó   — t         S r    )r   rX   s    r$   r‰   zDictKeys.python_type‹  r  r@   rÉ   r   rv   rF   c                 ón   •— |dk(  r| j                   j                  ||||«      S t        ‰| �  ||||«      S )NrŒ   r7  r#  s        €r$   rÈ   zDictKeys.call_methodŽ  s>   ø€ ð �>Ò!Ø—<‘<×+Ñ+¨B°°d¸FÓCÐCÜ‰wÑ" 2 t¨T°6Ó:Ð:r@   )rh   ri   rj   r&  rl   rø   r/  r‰   r   r   r  rÈ   rÔ   rÕ   s   @r$   r¿   r¿     sl   ø„ Ø	€Bàñ$ó ð$ð ñ/ó ð/òð	;ð Ð$Ñ%ð		;ð
 �SÐ+Ð+Ñ,ð	;ð 
÷	;ñ 	;r@   r¿   c                   ó&   — e Zd ZdZed„ «       Zd„ Zy)rÀ   rŽ   c                 ó,   — t        | j                  «      S r    )rÜ   r+  rX   s    r$   r/  zDictValues.view_items_vtž  s   € ä�D—O‘OÓ$Ð$r@   c                 ó   — t         S r    )r   rX   s    r$   r‰   zDictValues.python_type¢  s   € ÜÐr@   N)rh   ri   rj   r&  rl   r/  r‰   ro   r@   r$   rÀ   rÀ   š  s   „ à	€Bàñ%ó ð%ór@   rÀ   rF   c                 óº   — t         j                  j                  d«      }|€t         j                  j                  d«      }|d uxr t        | |j                  «      S )Nztransformers.file_utilsztransformers.utils.generic)ÚsysÚmodulesr+   Ú
issubclassÚModelOutput©ÚclsÚmods     r$   Ú_is_matching_transformers_clsrI  ¦  sG   € Ü
�+‰+�/‰/Ð3Ó
4€CØ
€{Ü�k‰k�o‰oÐ:Ó;ˆØ�dˆ?Ò?œz¨#¨s¯©Ó?Ð?r@   c                 óx   — t         j                  j                  d«      }|d uxr t        | |j                  «      S )Nzdiffusers.utils)rB  rC  r+   rD  Ú
BaseOutputrF  s     r$   Ú_is_matching_diffusers_clsrL  ­  s/   € Ü
�+‰+�/‰/Ð+Ó
,€CØ�dˆ?Ò>œz¨#¨s¯~©~Ó>Ð>r@   r    r   r¾   r   c           
      ó¦  — |j                   j                  j                  | «      ra	 |j                   j                  j                  | |d¬«      }t        j
                  j                  t        |t        j                  «       «      S || j                  v st        | j                  |«      rt        d«      S t        | j                  t        «      r| j                   €t        d«      S | j                   r�	 |j                   j"                  j%                  | j                   «      }t'        t)        | j                   |«      j+                  t,        j.                  «      «       t        t        ||«      «      S t1        d| j2                  j4                  › d|› d| j                  › d| j                   › �«       y# t        $ r Y �Œ9w xY w# t        $ r Y Œ[w xY w)	zXShared method between DataClassVariable and CustomizedDictVariable where items are attrsT)Ú
deleted_okNFzhasattr(r~   z) ú )r»   rÃ   Úis_attribute_mutationÚ	load_attrr
   r   rÂ   r&   r‹   r¢   r.   ÚhasattrrC   r   r°   r   rº   Úroot_txÚget_example_valuer   r   Ú
make_guardr   ÚHASATTRr   rw   rh   )rJ   r    r¾   r  Úexamples        r$   Ú_call_hasattr_customobjrX  ²  s€  € ð 
‡y�y×Ñ×3Ñ3°DÔ9ð	Ø—Y‘Y×+Ñ+×5Ñ5°d¸DÈTÐ5ÓRˆFÜ×-Ñ-×4Ñ4Ü˜v¤y×'@Ñ'@ÓAÐAóð ð
 ˆt�z‰zÑœW T§]¡]°DÔ9Ü Ó%Ð%Ü	�×"Ñ"¤LÔ	1°d·k±kÐ6Iä Ó&Ð&Ø	�Šð	Ø—i‘i×'Ñ'×9Ñ9¸$¿+¹+ÓFˆGÜÜ˜4Ÿ;™;¨Ó-×8Ñ8¼×9MÑ9MÓNôô $¤G¨G°TÓ$:Ó;Ð;ô Ø
�4—>‘>×*Ñ*Ð+¨2¨d¨V°2°d×6HÑ6HÐ5IÈÈ4Ï;É;È-ÐXõøô# ò 	Úð	ûô ò 	Ùð	ús%   §AF4 Ã4A?G Æ4	GÇ GÇ	GÇGc                   ó°   ‡ — e Zd Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	dˆ fd„Z
d„ Zd	„ Z	 	 	 	 	 	 dˆ fd„Zdddedd
fˆ fd„ZeZˆ xZS )ÚCustomizedDictVariablec                 ó2   — t        | «      xs t        | «      S r    )rI  rL  ©rG  s    r$   Úis_matching_cls_hfz)CustomizedDictVariable.is_matching_cls_hfÓ  s   € ä,¨SÓ1ÒTÔ5OÐPSÓ5TÐTr@   c                 óê   — t        | t        j                  «      rE| t        j                  ur3| j                  t        j                  j                  u rt	        | d«      syt
        j                  | «      S )NÚ__post_init__T)rD  r•   r’   rK   rR  rZ  r]  r\  s    r$   Úis_matching_clsz&CustomizedDictVariable.is_matching_cls×  sZ   € ô �sœK×3Ñ3Ô4Øœ;×2Ñ2Ñ2Ø—‘¤× 7Ñ 7× @Ñ @Ñ@Ü˜C Ô1àô &×8Ñ8¸Ó=Ð=r@   c                 ó6   — | j                  t        |«      «      S r    ©r`  rH   ©rG  Úobjs     r$   Úis_matching_objectz)CustomizedDictVariable.is_matching_objectæ  ó   € à×"Ñ"¤4¨£9Ó-Ð-r@   c                 óª  — dD ]R  }t        ||«      sŒt        ||«      }t        |«      s
J d|› �«       ‚t        |d«      sŒ>t        |j                  «       ŒT t        j                  |«      rÛ t        j                  |«      j                  |i |¤Ž}|j                  «        d„ }i }	| j                  |«      rG|j                  j                  «       D ])  \  }
}t        |t        «      r|j                   �|€Œ%||	|
<   Œ+ n|j                  }	|	j                  «       D �
�ci c]!  \  }
}t        j"                  |
«       ||«      “Œ# }}
}nw|s7|j                  «       D �
�ci c]  \  }
}t        j"                  |
«      |“Œ }}
}n>t%        |«      dk(  r%t        |d   t&        «      r|s|d   j                  }nt)        d«        | |fi |¤ŽS c c}}
w c c}}
w )N)rK   r_  Ú__setattr__r²   zexpect callable attr Ú__code__c                 ó’   — t        | t        «      r| S t        j                  | «      rt        j                  | «      S t        d«       y )Nz5expect VariableTracker or ConstantVariable.is_literal)r&   r   r   re   rÂ   r   r>   s    r$   Úmake_varz/CustomizedDictVariable.create.<locals>.make_varû  s;   € Ü˜a¤Ô1Ø�HÜ%×0Ñ0°Ô3Ü+×2Ñ2°1Ó5Ð5ä!ØOõr@   r   r   z/custom dict init with args/kwargs unimplemented)rR  r*  Úcallabler   ri  ÚdataclassesÚis_dataclassÚinspectÚ	signatureÚbindÚapply_defaultsr]  Ú	argumentsr.   r&   r   rS   rÂ   r_   rB   r   )rG  rC   rÉ   rv   ÚoptionsÚ	attr_namerâ   Úboundrk  Ú
bound_argsrz   r^   r.   s                r$   rÂ   zCustomizedDictVariable.createì  sÀ  € ð Uò 	+ˆIÜ�x Õ+Ü˜X yÓ1�Ü ”|ÐHÐ'<¸Y¸KÐ%HÓH�|Ü˜2˜zÕ*Ü˜bŸk™kÕ*ð	+ô ×#Ñ# HÔ-à4”G×%Ñ% hÓ/×4Ñ4°dÐE¸fÑEˆEØ× Ñ Ô"òð ˆJØ×%Ñ% hÔ/à!ŸO™O×1Ñ1Ó3ò &‘D�A�qÜ! !Ô%5Ô6¸1¿7¹7¸?ÈaÈiØ Ø$%�J˜q’Mñ&ð
 #Ÿ_™_�
ð EO×DTÑDTÓDV÷Ù<@¸A¸qÔ ×'Ñ'¨Ó*©H°Q«KÑ7ðˆEò ñ à?E¿|¹|»~×N±t°q¸!Ô%×,Ñ,¨QÓ/°Ñ2ÐNˆEÒNÜ�‹Y˜!Š^¤
¨4°©7Ô4EÔ FÉvà˜‘G—M‘M‰EäÐKÔLá�5˜(Ñ. gÑ.Ð.ùóùó
 Os   Ä&G	Å Gc           	      ó@  — t        |«      }| j                  |«      st        d«        |j                  |j                  |j
                  ¬«      t        j                  |«      «      j                  }t        j                  |«      D �cg c]  }|j                  ‘Œ }}|D ]o  }t        ||«      sŒt        ||«      } |j                  |j                  t        |j
                  |«      ¬«      |«      }	|€ŒVt        j                   |«      }|	||<   Œq  | ||«      S c c}w )Nz.custom non-hf dict subclass wrap unimplemented)r    rº   )rH   r]  r   rw   r    rº   r•   r’   r.   rm  Úfieldsr¾   rR  r*  r   r   rÂ   )
rG  Úbuilderrd  rC   r.   Úfr®   rs   ÚvalÚvars
             r$   ÚwrapzCustomizedDictVariable.wrap  s  € ä˜“9ˆà×%Ñ% hÔ/ÜÐJÔKàG�×!Ñ! W§Z¡Z¸¿¹Ð!ÓGÜ×#Ñ# CÓ(ó
ç
‰%ð 	ô !,× 2Ñ 2°8Ó <Ö=˜1�—“Ð=ˆÐ=Øò 		%ˆCä�s˜CÕ Ü˜c 3Ó'�ð�g×'Ñ'Ø—z‘z¬*°W·^±^ÀSÓ*Ið (ó àó�ð ‘?Ü*×1Ñ1°#Ó6�CØ!$�E˜#’Jð		%ñ �5˜(Ó#Ð#ùò >s   Â	DrF   c                 óN   •— t        ‰| �  ||fi |¤Ž | j                  |«      sJ ‚y r    )ru   rK   r`  )rJ   r.   rC   rt  rw   s       €r$   rK   zCustomizedDictVariable.__init__6  s+   ø€ Ü‰Ñ˜ Ñ4¨GÒ4Ø×#Ñ# HÔ-Ð-Ñ-r@   c                 ó   — t         ‚r    r-  rX   s    r$   r(   zCustomizedDictVariable.as_proxy:  s   € Ü!Ð!r@   c                 óV  ‡ ‡‡— ‰ j                  ‰ j                  «      Šˆˆˆ fd„}‰j                  |«       ‰ j                  «       }‰j	                  |j                  «       «       t        |j                  «       «      }‰j                  ‰j                  t        |«      |d«      «       y )Nc                  óÈ   •— ‰rˆfd„} ‰j                  | «       ‰j                  ‰j                  ‰j                  «      g«       ‰r‰j                  t	        dd«      «       y y )Nc                  óÊ   •— ‰ j                  ‰ j                  dd¬«      «       ‰ j                  ‰ j                  d«      «       ‰ j                  ‰ j                  d«      «       y )NÚtorchT)r½   Ú_dynamoÚdisable)rž   r!  r–   r—   s   €r$   Úgen_fn2zDCustomizedDictVariable.reconstruct.<locals>.gen_fn1.<locals>.gen_fn2L  sT   ø€ Ø×)Ñ)¨'×*DÑ*DÀWÐRVÐ*DÓ*WÔXØ×)Ñ)¨'×*BÑ*BÀ9Ó*MÔNØ×)Ñ)¨'×*BÑ*BÀ9Ó*MÕNr@   r   F)r�   r“   Ú_create_load_constrC   r   )r‡  r˜   Úis_hf_model_outputrJ   s    €€€r$   Úgen_fn1z3CustomizedDictVariable.reconstruct.<locals>.gen_fn1B  s\   ø€ ñ "ôOð
 ×%Ñ% gÔ.à×!Ñ! 7×#=Ñ#=¸d¿m¹mÓ#LÐ"MÔNá!à×%Ñ%Ô&:¸1¸eÓ&DÕEð "r@   F)r]  rC   r�   r‡   r  rŽ   rQ   r®   r“   Úcreate_call_function_kwr_   )rJ   r˜   rŠ  Údr®   r‰  s   ``   @r$   rŸ   z"CustomizedDictVariable.reconstruct?  s€   ú€ Ø!×4Ñ4°T·]±]ÓCÐö	Fð. 	×Ñ˜gÔ&ð ×(Ñ(Ó*ˆØ�‰˜Ÿ™›
Ô#Ü�Q—V‘V“X‹ˆØ×Ñ˜g×=Ñ=¼cÀ$»iÈÈuÓUÕVr@   r   c                 óæ  •— t        | j                  |«      }| j                  €d nt        | j                  |«      }t	        |d«      r4|j
                  t        t        j                  fv rt        ‰| �)  ||||«      S |dv r5|j                  t        j                  ||¬«      | gt        |«      z   |«      S |t        t        j                  |d «      u rt        ‰| �)  ||||«      S t        d|› �«       y )NÚ__objclass__)r­   Úto_tupler²   rh  r_  )rº   z,custom dict: call_method unimplemented name=)r*  rC   rº   r   rR  rŽ  rÇ   r•   r’   ru   rÈ   Úinline_user_function_returnr
   r4   rÜ   r   )rJ   r    r¾   rÉ   rv   râ   rº   rw   s          €r$   rÈ   z"CustomizedDictVariable.call_methoda  sð   ø€ ô �T—]‘] DÓ)ˆØŸ™Ð,‘´*¸T¿[¹[È$Ó2Oˆä�2�~Ô&¨2¯?©?ÜÜ×#Ñ#ð?
ñ ,
ô
 ‘7Ñ& r¨4°°vÓ>Ð>Øð 
ñ 
ð ×1Ñ1Ü×.Ñ.¨r¸&ÔAØ�œ˜d›Ñ#Øóð ð
 ”7œ;×2Ñ2°D¸$Ó?Ñ?Ü‘7Ñ& r¨4°°vÓ>Ð>äÐDÀTÀFÐKÕLr@   r    r   r¾   c                 óÞ  •— t        j                  |«      }|| v r| j                  |d|gi «      S t        j                  | j
                  «      r‹t        j                  | j
                  «      D �ci c]  }|j                  |j                  “Œ }}||v rFt        j                   j                  ||   «      sJ ‚t        j                   j                  ||   «      S t        ‰| �1  ||«      S c c}w )Nr­   )r   rÂ   rÈ   rm  rn  rC   ry  r¾   Údefaultr
   re   ru   Úvar_getattr)rJ   r    r¾   Úname_vtr{  Údefaultsrw   s         €r$   r“  z"CustomizedDictVariable.var_getattrƒ  sÍ   ø€ Ü"×)Ñ)¨$Ó/ˆØ�d‰?Ø×#Ñ# B¨¸°yÀ"ÓEÐEÜ×#Ñ# D§M¡MÔ2Ü3>×3EÑ3EÀdÇmÁmÓ3TÖU¨a˜Ÿ™ §	¡	Ñ)ÐUˆHÐUØ�xÑÜ ×1Ñ1×<Ñ<¸XÀd¹^ÔLÐLÐLÜ ×1Ñ1×8Ñ8¸À$¹ÓHÐHÜ‰wÑ" 2 tÓ,Ð,ùò	 Vs   Á0C*rg   rÒ   )rh   ri   rj   rm   r]  r`  Úclassmethodre  rÂ   r~  rK   r(   rŸ   rÈ   r  r“  rX  rÑ   rÔ   rÕ   s   @r$   rZ  rZ  Ò  sÄ   ø„ ØñUó ðUð ñ>ó ð>ð ñ.ó ð.ð
 ñ./ó ð./ðb ñ$ó ð$õ..ò"ò
 WðD Mð &ð	 Mð
 -ð Mð 
õ MðD	-Ð5ð 	-¸Sð 	-ÐEVõ 	-ð +„Lr@   rZ  c                  óH   — dd l } d„ }|| j                  j                  _        y )Nr   c                 óN   — t        |d«      sy| j                  |j                  k(  S )NrÏ   F)rR  rÏ   )rJ   rc   s     r$   Ú!_dynamo_overriden_transformers_eqzJ_install_PretrainedConfig_patch.<locals>._dynamo_overriden_transformers_eq˜  s"   € Ü�u˜jÔ)ØØ�}‰} §¡Ñ.Ð.r@   )ÚtransformersÚconfiguration_utilsÚPretrainedConfigrf   )rš  r™  s     r$   Ú_install_PretrainedConfig_patchr�  ‘  s#   € ãò
/ð 	*ð ×$Ñ$×5Ñ5Õ<r@   c                   ól   ‡ — e Zd ZdZed„ «       Zed„ «       Zdˆ fd„Zddde	dd	fd
„Z
ddde	dd	fd„Zˆ xZS )ÚHFPretrainedConfigVariablez/
    Hack for HuggingFace PretrainedConfig
    c                 ó”   — t         j                  j                  d«      }|d uxr t        | |j                  «      }|r
t        «        |S )Nz transformers.configuration_utils)rB  rC  r+   rD  rœ  r�  )rG  rH  Úis_matchs      r$   r`  z*HFPretrainedConfigVariable.is_matching_cls§  s@   € ä�k‰k�o‰oÐ@ÓAˆØ˜d�?ÒL¤z°#°s×7KÑ7KÓ'Lˆñ Ü+Ô-Øˆr@   c                 ó6   — | j                  t        |«      «      S r    rb  rc  s     r$   re  z-HFPretrainedConfigVariable.is_matching_object±  rf  r@   rF   c                 ój   •— t        ‰| �  di |¤Ž || _        | j                  t	        |«      «      sJ ‚y )Nro   )ru   rK   rd  r`  rH   )rJ   rd  rv   rw   s      €r$   rK   z#HFPretrainedConfigVariable.__init__µ  s2   ø€ Ü‰ÑÑ"˜6Ò"ØˆŒØ×#Ñ#¤D¨£IÔ.Ð.Ñ.r@   r    r   r¾   r   c                 óÜ   — ddl m} 	 t        | j                  |«      }t	        | j
                  |«      }  |||«      |«      S # t        $ r t        d| j                  › d|› d�«       Y y w xY w)Nr   ©ÚVariableBuilderzgetattr(r~   rà   )	rz  r¦  r*  rd  r   rº   ÚAttributeErrorr   rS   )rJ   r    r¾   r¦  Ú
attr_valueÚattr_sources         r$   r“  z&HFPretrainedConfigVariable.var_getattrº  sh   € Ý,ð	<Ü  §¡¨4Ó0ˆJÜ$ T§[¡[°$Ó7ˆKØ3‘? 2 {Ó3°JÓ?Ð?øäò 	<Ü˜H T§Z¡Z L°°4°&¸Ð:Ö;ð	<ús   ˆ:A Á%A+Á*A+c                 óh   — t         j                  j                  t        | j                  |«      «      S r    )r
   r   rÂ   rR  rd  rÐ   s      r$   rÑ   z'HFPretrainedConfigVariable.call_hasattrÅ  s$   € Ü×)Ñ)×0Ñ0´¸¿¹À4Ó1HÓIÐIr@   rg   )rh   ri   rj   rk   rm   r`  r–  re  rK   r  r“  rÑ   rÔ   rÕ   s   @r$   rŸ  rŸ  ¢  sq   ø„ ñð ñó ðð ñ.ó ð.õ/ð
	<Ð5ð 	<¸Sð 	<ÐEVó 	<ðJÐ6ð J¸cð JÐFW÷ Jr@   rŸ  c                   óŽ   — e Zd ZdZd„ Zd„ Zdddee   dee	ef   fd„Z
ddd	efd
„Zddd	efd„Z	 dddd	edee   fd„Zddd	efd„Zy)ÚPythonSysModulesVariablez’Special case for sys.modules.

    Without this we will guard on the exact set of modules imported in the
    lifetime of the python program.
    c                 ó   — t         S r    )rÇ   rX   s    r$   r‰   z$PythonSysModulesVariable.python_typeÐ  s   € Üˆr@   c                 ó.   ‡— ‰j                  ˆfd„«       y )Nc                  ón   •— ‰ j                  ‰ j                  t        «      ‰ j                  d«      g«      S )NrC  )r“   r”   rB  r–   r—   s   €r$   r™   z6PythonSysModulesVariable.reconstruct.<locals>.<lambda>Õ  s3   ø€ �G×)Ñ)à×5Ñ5´cÓ:Ø×,Ñ,¨YÓ7ðó€ r@   )r�   r5  s    `r$   rŸ   z$PythonSysModulesVariable.reconstructÓ  s   ø€ Ø×Ñóõ	
r@   r    r   rÉ   rv   c           	      óÐ   — |dk(  r | j                   |g|¢­i |¤ŽS |dk(  r | j                  |g|¢­i |¤ŽS |dk(  r | j                  |g|¢­i |¤ŽS t        d|› d|› d|› d�«       y )Nr­   r+   rŒ   zsys.modules.z(*z, **rà   )Úcall_getitemÚcall_getÚcall_containsr   )rJ   r    r¾   rÉ   rv   s        r$   rÈ   z$PythonSysModulesVariable.call_methodÝ  s�   € ð �=Ò Ø$�4×$Ñ$ RÐ9¨$Ò9°&Ñ9Ð9Ø�UŠ]Ø �4—=‘= Ð5 dÒ5¨fÑ5Ð5Ø�^Ò#Ø%�4×%Ñ% bÐ:¨4Ò:°6Ñ:Ð:Ü˜ T F¨"¨T¨F°$°v°h¸aÐ@ÕAr@   rs   c           	      óÌ   — |j                  «       }|t        j                  v }t        | j	                  t        j                  t        j                  || ¬«      «      «       ||fS )N)rs   Úinvert)	rU   rB  rC  r   rU  Ú	functoolsÚpartialr   ÚDICT_CONTAINS©rJ   r    rs   rz   Úhas_keys        r$   Ú_contains_helperz)PythonSysModulesVariable._contains_helperì  sY   € Ø×"Ñ"Ó$ˆØ”s—{‘{Ð"ˆÜØ�O‰OÜ×!Ñ!¤,×"<Ñ"<À!ÐPWÈKÔXóô	
ð
 �'ˆzÐr@   c                 óX   — | j                  ||«      \  }}t        j                  |¬«      S )Nr  )r»  r   rÂ   r¹  s        r$   r³  z&PythonSysModulesVariable.call_containsö  s)   € Ø×*Ñ*¨2¨sÓ3‰
ˆˆ7Ü×&Ñ&¨WÔ5Ð5r@   Nr’  c                 óØ   — ddl m} | j                  ||«      \  }}|r4  ||t        | j                  |«      «      t
        j                  |   «      S |�|S t        j                  d ¬«      S )Nr   r¥  r  )	rz  r¦  r»  r   rº   rB  rC  r   rÂ   )rJ   r    rs   r’  r¦  rz   rº  s          r$   r²  z!PythonSysModulesVariable.call_getú  sr   € õ 	-à×*Ñ*¨2¨sÓ3‰
ˆˆ7áð‘?ØÜ˜dŸk™k¨1Ó-óô �k‰k˜!‰nóð ð
 ÐØˆNä×&Ñ&¨TÔ2Ð2r@   c                 ó    — ddl m} | j                  ||«      \  }}  ||t        | j                  |«      «      t
        j                  |   «      S )Nr   r¥  )rz  r¦  r»  r   rº   rB  rC  )rJ   r    rs   r¦  rz   rº  s         r$   r±  z%PythonSysModulesVariable.call_getitem  sO   € Ý,à×*Ñ*¨2¨sÓ3‰
ˆˆ7ð
‰ØÜ˜$Ÿ+™+ qÓ)ó
ô �+‰+�a‰.óð 	r@   r    )rh   ri   rj   rk   r‰   rŸ   r   r   r   r  rÈ   r»  r³  r   r²  r±  ro   r@   r$   r¬  r¬  É  s¬   „ ñòò
ðBà#ðBð �?Ñ#ð	Bð
 �S˜/Ð)Ñ*óBðÐ#:ð Àó ð6Ð 7ð 6¸oó 6ð .2ñ	3à#ð3ð ð3ð ˜/Ñ*ó	3ð*Ð6ð ¸_ô r@   r¬  );r•   rm  r¶  ro  rB  Útypingr   r   r   r   Útorch._subclasses.fake_tensorr   r¹   r	   r
   Úbytecode_transformationr   r   Ú
eval_framer   Úexcr   r   Úguardsr   r   rº   r   r   Úutilsr   r   r   r   Úbaser   r   Úconstantr   Útorch._dynamo.symbolic_convertr   r!   rB   r×   rë   r  r%  r¿   rÀ   rn   rI  rL  r  rX  rZ  Ú	lru_cacher�  rŸ  r¬  ro   r@   r$   ú<module>rÊ     s1  ðó Û Û Û Û 
ß 6Ó 6å 1ç #ß NÝ "ß 9ß 0ß .ß FÓ Fß /Ý &ñ ÝDò
ô<pF˜ô pFôf	/?Ð+ô /?ôjw:Ð#ô w:ôt,;˜ô ,;ô^-;ˆô -;ô`;ˆxô ;ô6	�ô 	ð@¨$ó @ð? tó ?ð
Ø%ðØ-0ðàóô@|+Ð.ô |+ð~ €×Ñ�TÓñó ðô $J ô $JôNM˜õ Mr@   