Ë
    f^(h±°  ã                   óô  — 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
Z
d dl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mZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@mAZAmBZBmCZD d dlEmFZF d d	lGmHZHmIZI d
ZJ	 d dlKZKdZJdZMdhZN eOej                   ej¢                  z   ej¤                  z   «      ZSd„ ZTe jª                  de jB                  de j4                  de j*                  de jp                  de jT                  de j                  de j¬                  de j®                  de j°                  de j(                  de j.                  diZYe jª                  de jB                  de j4                  de j*                  de jp                  de jT                  de j                  d e j¬                  d!e j®                  d"e j°                  d#e j(                  d$e j.                  d%iZZeYj·                  e j¸                  d&e jº                  d'e j¼                  d(e j¾                  d)e jÀ                  d*i«       eZj·                  e j¸                  d+e jº                  d,e j¼                  d-e j¾                  d.e jÀ                  d/i«       eYj·                  e jÂ                  d0i«        G d1„ d2eb«      Zc G d3„ d4ec«      Zd G d5„ d6ed«      Ze G d7„ d8ec«      Zfd9„ Zgd:„ Zhd;„ Zid<„ Zjd=„ ZkdQd>„Zld?„ Zm G d@„ dA«      ZndB„ ZodRdC„ZpdDZqdSdE„ZrdSdF„ZsdG„ ZtdH„ ZudI„ Zv G dJ„ dKen«      Zw G dL„ dMen«      Zx G dN„ dOen«      Zy ey«       Zz ex«       Z{ ew«       Z|dTdP„Z}y# eL$ r Y �Œ¸w xY w)Ué    N)Ú
namedtuple)Údedent)Ú_jit_internal),ÚApplyÚAssertÚAssignÚ	AttributeÚ	AugAssignÚBinOpÚBreakÚClassDefÚConstÚContinueÚDeclÚDefÚDeleteÚDictCompÚDictLiteralÚDotsÚEmptyTypeAnnotationÚExprStmtÚFalseLiteralÚForÚIdentÚIfÚListCompÚListLiteralÚNoneLiteralÚParamÚPassÚPropertyÚRaiseÚReturnÚSelectÚ	SliceExprÚStarredÚStmtÚStringLiteralÚ	SubscriptÚ	TernaryIfÚTrueLiteralÚTupleLiteralÚUnaryOpÚVarÚWhileÚWithÚWithItem)Ú_is_drop_fnÚFunctionModifiersÚis_static_fnÚshould_drop)Úget_source_lines_and_fileÚmake_source_contextÚ	parse_defÚ	ParsedDef)ÚDATACLASS_MAGIC_METHODS)Úget_qualified_nameÚmonkeytype_traceFTÚ__jitÚprintc                 ó@   — | j                  t        «      xs | t        v S ©N)Ú
startswithÚ_reserved_prefixÚ_reserved_names)Únames    úP/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/jit/frontend.pyÚis_reserved_namerF   \   s   € Ø�?‰?Ô+Ó,ÒG°¼Ð0GÐGó    zfunction definitionsz	for loopszdel statementszclass definitionszwith statementszraise statementsÚ
assertionszimport statementszglobal variableszbreak statementszcontinue statementsÚdefÚforÚdelÚclassÚwithÚraiseÚassertÚimportÚfromÚglobalÚbreakÚcontinuezasync function definitionszasync for loopszasync with statementsz
try blocksznonlocal variablesz	async defz	async forz
async withÚtryÚnonlocalzannotated assignmentsc                   ó   — e Zd Zd„ Zd„ Zy)ÚFrontendErrorc                 ó|   — || _         || _        t        j                  j	                  | j                   «      | _        y r@   )Úsource_rangeÚmsgÚtorchÚ_CÚErrorReportÚerror_report)ÚselfrZ   r[   s      rE   Ú__init__zFrontendError.__init__›   s0   € Ø(ˆÔØˆŒô "ŸH™H×0Ñ0°×1BÑ1BÓCˆÕrG   c                 ól   — | j                   | j                  j                  «       j                  «       z   S r@   )r[   r_   ÚwhatÚlstrip)r`   s    rE   Ú__str__zFrontendError.__str__£   s)   € Ø�x‰x˜$×+Ñ+×0Ñ0Ó2×9Ñ9Ó;Ñ;Ð;rG   N)Ú__name__Ú
__module__Ú__qualname__ra   re   © rG   rE   rX   rX   š   s   „ òDó<rG   rX   c                   ó   — e Zd Zy)ÚNotSupportedErrorN©rf   rg   rh   ri   rG   rE   rk   rk   §   ó   „ ØrG   rk   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )ÚUnsupportedNodeErrorc                 ó@  •— t        |«      }t        t        j                  |d«      «      }|j	                  |j
                  |j                  |j                  |z   «      }t        j                  ||j                  «      }|› d|r|dz   nd› d�}t        ‰	| �)  ||«       y )Nú Ú zaren't supported)ÚtypeÚlenÚnode_start_tokensÚgetÚ
make_rangeÚlinenoÚ
col_offsetÚpretty_node_namesrf   Úsuperra   )
r`   ÚctxÚoffending_nodeÚreasonÚ	node_typeÚ	range_lenrZ   Úfeature_namer[   Ú	__class__s
            €rE   ra   zUnsupportedNodeError.__init__¬   s˜   ø€ ä˜Ó(ˆ	ÜÔ)×-Ñ-¨i¸Ó=Ó>ˆ	Ø—~‘~Ø×!Ñ!Ø×%Ñ%Ø×%Ñ%¨	Ñ1ó
ˆô
 )×,Ñ,¨Y¸	×8JÑ8JÓKˆØ�˜a± ¨¢¸BÐ?Ð?OÐPˆÜ‰Ñ˜ sÕ+rG   )rr   )rf   rg   rh   ra   Ú__classcell__)r‚   s   @rE   ro   ro   «   s   ø„ ÷,ñ ,rG   ro   c                   ó   — e Zd Zy)ÚFrontendTypeErrorNrl   ri   rG   rE   r…   r…   º   rm   rG   r…   c                 óT   — |D �cg c]  }t        | |«      ‘Œ }}t        |«      S c c}w r@   )Úbuild_withitemÚlist)r|   ÚitemsÚis      rE   Úbuild_withitemsr‹   ¾   s+   € Ø-2Ö3¨Œ^˜C Õ#Ð3€EÐ3Ü�‹;Ðùò 4s   …%c                 óh   — |D �cg c]  }t        | |«      ‘Œ }}t        t        d |«      «      S c c}w r@   )Ú
build_stmtrˆ   Úfilter)r|   ÚstmtsÚss      rE   Úbuild_stmtsr‘   Ã   s3   € Ø).Ö/ AŒZ˜˜QÕÐ/€EÐ/Ü”�t˜UÓ#Ó$Ð$ùò 0s   …/c                 óÚ  — t        j                  | d„ ¬«      }t        | dg «      }g }|D ]¾  }|d   |vsŒt        |d   j                  «      rŒ$t        |d   j                  d|d   › d�|¬«      }|d   j                  r"t        |d   j                  d|d   › d	�|¬«      nd
}|j                  t        |j                  «       t        |j                  «       |d   «      ||«      «       ŒÀ |S )aj  
    Get a list of Property objects representing the properties of a class.

    Args:
        cls:  The class to get properties of.
        self_name: The name of the class that the properties should belong to.
    Returns:
        A list of Property objects corresponding to the properties of cls. Property
        here refers to the subclass of TreeView.
    c                 ó"   — t        | t        «      S r@   )Ú
isinstanceÚproperty)Úms    rE   ú<lambda>z&get_class_properties.<locals>.<lambda>Ó   s   € ¼
À1ÄhÓ8O€ rG   ©Ú	predicateÚ__jit_unused_properties__r   é   Ú__Ú_getter)Ú	self_nameÚ_setterN)ÚinspectÚ
getmembersÚgetattrr5   ÚfgetÚget_jit_defÚfsetÚappendr!   Úranger   )Úclsrž   ÚpropsÚunused_propertiesÚ
propertiesÚpropÚgetterÚsetters           rE   Úget_class_propertiesr¯   È   sõ   € ô ×Ñ˜sÑ.OÔP€Eä Ð%@À"ÓEÐð €JØò ˆØ�‰7Ð+Ò+´KÀÀQÁÇÁÕ4MÜ Ø�Q‘—‘  4¨¡7 )¨7Ð3¸yôˆFð
 ˜‘7—<’<ô ˜D ™GŸL™L¨B¨t°A©w¨i°wÐ*?È9ÕUàð ð
 ×ÑÜ˜Ÿ™›¬¨v¯|©|«~¸tÀA¹wÓ)GÈÐQWÓXõðð ÐrG   c                 ó  ‡ ‡— g Šˆˆ fd„}|j                   D ]f  }t        |t        j                  «      r |t        j
                  |«       Œ5t        |t        j                  «      sŒP |t        j                  |«       Œh ‰S )Nc                 óV   •— 	 ‰j                   | ‰|«      «       y # t        $ r Y y w xY wr@   )r¦   rk   )ÚbuilderÚentryÚassignsr|   s     €€rE   Úmaybe_build_assignz-get_class_assigns.<locals>.maybe_build_assigní   s-   ø€ ð	Ø�N‰N™7 3¨Ó.Õ/øÜ ò 	Ùð	ús   ƒ œ	(§()Úbodyr”   Úastr   ÚStmtBuilderÚbuild_AssignÚ	AnnAssignÚbuild_AnnAssign)r|   Úcls_astrµ   r³   r´   s   `   @rE   Úget_class_assignsr½   ê   sg   ù€ Ø€Gõð —‘ò CˆÜ�eœSŸZ™ZÔ(Ùœ{×7Ñ7¸Õ?Ü˜œsŸ}™}Õ-Ùœ{×:Ñ:¸EÕBð	Cð
 €NrG   c                 ój  ‡ — t        j                  ‰ ˆ fd„¬«      }ˆ fd„}t        ‰ t        j                  j
                  j                  «       «      \  }}}dj                  |«      }t        |«      }t        j                  |«      }	|	j                  d   }
t        |
t        j                  «      sJ ‚t        j                  ‰ «      rÇ|
j                  D �ch c]:  }t        |t        j                   «      r|j"                  t$        v r|j"                  ’Œ< }}t'        |«      D ]j  \  }\  }}t%        j(                  |«      }|sŒ!||vsŒ& |‰ «      }||f||<   t+        ‰ |«      }t,        j.                  j1                  ||j2                  «       Œl |D ��cg c]  \  }}t5        ||| ||«      ¬«      ‘Œ }}}t7        ‰ |«      }t9        |j;                  dd«      d   «      t9        |j;                  dd«      d   «      z
  }t=        ||||d	«      }t?        ||
«      }tA        ||
||||«      S c c}w c c}}w )
ap  Get definitions for each method within the current class independently.

    Args:
        cls: The class to get definition of.
        self_name: The name of the class that the properties should belong to.

    Returns:
        torch._C._jit_tree_views.ClassDef: A representation of the class,
            the methods in the class and their definition as a tree.
    c                 óÞ   •— t        j                  | «      xs t        j                  | «      xr? t        ‰| j                  «       xr& | j                  ‰j
                  v xr t        | «       S r@   )r    ÚismethodÚ
isfunctionr4   rf   Ú__dict__r2   ©r–   r¨   s    €rE   r—   z#get_jit_class_def.<locals>.<lambda>
  sa   ø€ œW×-Ñ-¨aÓ0ÒI´G×4FÑ4FÀqÓ4Iò Ü˜S !§*¡*Ó-Ð-òà�J‰J˜#Ÿ,™,Ð&òô ˜A“Ðð rG   r˜   c                 óR   •— t        j                  | «      xr t        | dd «      ‰k(  S )NÚ__self__)r    rÀ   r¢   )Úfnr¨   s    €rE   Úis_classmethodz)get_jit_class_def.<locals>.is_classmethod  s'   ø€ Ü×Ñ Ó#ÒL¬°°JÀÓ(EÈÑ(LÐLrG   rr   r   )rž   rÇ   ú
r›   F)!r    r¡   r6   r\   r]   r^   Ú
call_stackÚjoinr   r·   Úparser¶   r”   r   ÚdataclassesÚis_dataclassÚFunctionDefrD   r:   Ú	enumeraterv   r¢   r   ÚloaderÚcacheÚsourcer¤   r¯   rt   Úsplitr7   r½   Úbuild_class_def)r¨   rž   ÚmethodsrÇ   ÚsourcelinesÚfile_linenoÚfilenamerÒ   Ú
dedent_srcÚpy_astÚ	class_astÚmethodÚ	overridesrŠ   rD   Ú_Úsynthesizer_fnÚ
parsed_defÚfuncÚobjÚmethod_defsr«   Úleading_whitespace_lenr|   r´   s   `                        rE   Úget_jit_class_defrå   ü   s&  ø€ ô × Ñ Øóô€GôMô *CØŒU�X‰X×!Ñ!×,Ñ,Ó.ó*Ñ&€K�˜hð �W‰W�[Ó!€Fä˜“€JÜ�Y‰Y�zÓ"€Fà—‘˜A‘€IÜ�i¤§¡Ô.Ð.Ð.ô ×Ñ Ô$ð
 $Ÿ.™.ö
àÜ˜&¤#§/¡/Ô2Ø—‘Ô6Ñ6ð �K‹Kð
ˆ	ð 
ô & gÓ.ò 	D‰LˆA‰y��aä4×8Ñ8¸Ó>ˆNÚ $¨iÒ"7Ù+¨CÓ0�
Ø! :Ð-�˜‘
Ü˜s DÓ)�Ü×$Ñ$×*Ñ*¨4°×1BÑ1BÕCð	Dð #÷áˆT�3ô 	�C˜¨Á>ÐRUÓCVÖWð€Kñ ô & c¨9Ó5€Jä  §¡¨d°AÓ!6°qÑ!9Ó:¼SØ×Ñ˜˜qÓ! !Ñ$ó>ñ Ðô Ø�˜+Ð'=¸uó€Cô    YÓ/€Gä˜3 	¨;¸
ÀIÈwÓWÐWùò;
ùós   Ã?H*ÆH/c                 ó  — t        | t        «      st        | «      n| }t        j                  j
                  j                  |j                  «      }|j                  j                  d   }|rf|j                  j                  d   j                  }t        j                  |› d|› �«      j                  d   }|j                  j                  d|«       t        | «      �r.t        j                  d«      }	t        |	j                  «      dk7  s't        |	j                  d   t        j                   «      s%t#        d|j$                  › d|j&                  › �«      ‚|	j                  d   }
|
j                  |_	        dx|j                  _        |j                  _        |j                  j                  |j                  j,                  z   D ]*  }|
j                  j                  d   j.                  |_        Œ, t1        | «      rd|_        d|_        t        j                  j6                  j9                  «       }d}t:        r,t        | t        «      st=        | «      }|j?                  |«      }tA        |jB                  |||||¬«      S )	af  
    Build a JIT AST (TreeView) from the given function.

    Args:
        fn: A function object to compile or a pre-parsed ParsedDef object
        def_name: The name to give to the resulting AST object. This is not
            always the same as `fn.__name__`, for example:
                def _forward(self):
                    ...
                forward = _forward
            In this case, the `__name__` attribute of the function object is "_forward",
            but we want the result AST to have the name "forward".
        self_name: If this function is a method, what the type name of `self` is.
    r   ú = zLdef unused_fn(self: Any):
	raise RuntimeError("Cannot call @unused methods")r›   z&Expected a single top-level function: ú:N)rž   Úpdt_arg_types)"r”   Ú
_ParsedDefr8   r\   ÚjitÚannotationsÚget_type_linerÒ   r·   r¶   ÚargsÚargrË   Úinsertr5   rt   rÎ   ÚRuntimeErrorrØ   r×   ÚkwargÚvarargÚ
kwonlyargsÚ
annotationr2   ÚreturnsÚtype_commentÚ_scriptÚ_get_type_trace_dbr<   r;   Úget_args_typesÚ	build_defr|   )rÆ   Údef_namerž   rÇ   rà   Ú	type_lineÚfn_defÚarg_nameÚassign_stmtÚunused_fn_defÚ
unused_defrï   Útype_trace_dbré   Úqualnames                  rE   r¤   r¤   F  s  € ô '1°´ZÔ&@”˜2”Àb€JÜ—	‘	×%Ñ%×3Ñ3°J×4EÑ4EÓF€IØ�^‰^× Ñ  Ñ#€FáØ—;‘;×#Ñ# AÑ&×*Ñ*ˆä—i‘i 8 *¨C°	¨{Ð ;Ó<×AÑAÀ!ÑDˆØ�‰×Ñ˜1˜kÔ*ô �2…ÜŸ	™	Ø\ó
ˆô ˆ}×!Ñ!Ó" aÒ'¬zØ×Ñ˜qÑ!¤3§?¡?ô0
ô Ø8¸×9LÑ9LÐ8MÈQÈz×OeÑOeÐNfÐgóð ð #×'Ñ'¨Ñ*ˆ
Ø —o‘oˆŒà15Ð5ˆ�‰Ô˜FŸK™KÔ.Ø—;‘;×#Ñ# f§k¡k×&<Ñ&<Ñ<ò 	@ˆCà'Ÿ_™_×1Ñ1°!Ñ4×?Ñ?ˆC�Nð	@ô �rŒ?à!ˆFŒNØ"&ˆFÔô —I‘I×%Ñ%×8Ñ8Ó:€MØ€MÝ¤
¨2¬zÔ :Ü% bÓ)ˆØ%×4Ñ4°XÓ>ˆäØ�‰ØØØØØ#ôð rG   c                 óè  — t        | j                  d   j                  t        j                  «      rÁ| j                  d   j                  j
                  }t        |t        j                  «      r„|j                  }|j                  }|dk(  rgt        |t        j                  «      rM|j                  dk(  r>t        |j                  t        j                  «      r|j                  j                  dk(  ryy)Nr   Ú_IgnoreContextManagerrë   r\   TF)r”   r‰   Úcontext_exprr·   ÚCallrá   r	   ÚattrÚvalueÚNameÚid)ÚstmtÚfunctionÚ	attr_nameÚ
attr_values       rE   Ú#is_torch_jit_ignore_context_managerr  ‰  s«   € ä�$—*‘*˜Q‘-×,Ñ,¬c¯h©hÔ7à—:‘:˜a‘=×-Ñ-×2Ñ2ˆÜ�h¤§¡Ô.Ø Ÿ™ˆIØ!Ÿ™ˆJØÐ3Ò3¼
ØœCŸM™Mô9ð —?‘? eÒ+´
¸:×;KÑ;KÌSÏXÉXÔ0VØ!×'Ñ'×*Ñ*¨gÒ5Ø#ØrG   c                   ó   — e Zd Zd„ Zy)ÚBuilderc                 óx   — t        | d|j                  j                  z   d «      }|€t        ||«      ‚ |||«      S )NÚbuild_)r¢   r‚   rf   ro   )r`   r|   ÚnoderÜ   s       rE   Ú__call__zBuilder.__call__œ  s>   € Ü˜˜x¨$¯.©.×*AÑ*AÑAÀ4ÓHˆØˆ>Ü& s¨DÓ1Ð1Ù�c˜4Ó Ð rG   N)rf   rg   rh   r  ri   rG   rE   r  r  ›  s   „ ó!rG   r  c           	      óä   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        t        ||«      |D �cg c]  }t        |«      ‘Œ c}||«      S c c}w )NrL   )rw   rx   ry   rt   r   r   r'   )r|   Úpy_defrÕ   r«   rž   r´   ÚrrÜ   s           rE   rÔ   rÔ   £  sa   € Ø�‰Ø�‰�v×(Ñ(¨&×*;Ñ*;¼cÀ'»lÑ*Jó	€Aô Üˆa�Ó¸ÖA¨vœd 6�lÒAÀ:Èwóð ùÚAs   ÁA-
c                 óö  — |j                   }| j                  |j                  |j                  |j                  t	        d«      z   «      }t        | |j                  ||«      }d }	t        |dd «      �t        | |j                  «      }	t        |||	«      }
|d u}|�@t        j                  j                  |«      }t        j                  j                  |
||«      }
t        t!        ||«      |
t#        | |«      «      S )NrI   rö   )r¶   rw   rx   ry   rt   Úbuild_param_listrî   r¢   Ú
build_exprrö   r   r\   r]   Úparse_type_commentÚmerge_type_from_type_commentr   r   r‘   )r|   r  rý   rü   rž   ré   r¶   r  Ú
param_listÚreturn_typeÚdeclÚ	is_methodÚtype_comment_decls                rE   rû   rû   ¬  sØ   € Ø�;‰;€DØ�‰�v—}‘} f×&7Ñ&7¸×9JÑ9JÌSÐQVËZÑ9WÓX€Aä! # v§{¡{°I¸}ÓM€JØ€KÜˆv�y $Ó'Ð3Ü   f§n¡nÓ5ˆä��:˜{Ó+€DØ Ð%€IØÐÜ!ŸH™H×7Ñ7¸	ÓBÐÜ�x‰x×4Ñ4°TÐ;LÈiÓXˆäŒu�Q˜Ó! 4¬°S¸$Ó)?Ó@Ð@rG   zfCompiled functions can't take variable number of arguments or use keyword-only arguments with defaultsc                 óD  — |j                   �f|j                   }| j                  |j                  |j                  dz
  |j                  t	        |j
                  «      z   «      }t        |t        «      ‚|j                  �f|j                  }| j                  |j                  |j                  dz
  |j                  t	        |j
                  «      z   «      }t        |t        «      ‚t	        |j                  «      dkD  r=|j                  D ].  }|€Œt        | |«      j                  «       }t        |t        «      ‚ |j                  D �cg c]/  }||r't        ||j
                     «      r||j
                     nd f‘Œ1 }}|j                  D �cg c]/  }||r't        ||j
                     «      r||j
                     nd f‘Œ1 }}|D ��	cg c]  \  }}	t        | ||d|	¬«      ‘Œ }
}}	|
|D ��	cg c]  \  }}	t        | ||d|	¬«      ‘Œ c}	}z  }
|
S c c}w c c}w c c}	}w c c}	}w )Nr›   r   F)Ú
kwarg_onlyÚpdt_arg_typeT)rò   rw   rx   ry   rt   rï   rk   Ú_vararg_kwarg_errró   Úkw_defaultsr  r§   rî   Úboolrô   Úbuild_param)r|   Úpy_argsrž   ré   ÚexprÚ	ctx_rangerï   Úarg_and_typesÚarg_and_types_kwonlyargsÚarg_typeÚresults              rE   r  r  Ä  s  € Ø‡}�}Ð Ø�}‰}ˆØ—N‘NØ�K‰K˜Ÿ™¨1Ñ,¨d¯o©oÄÀDÇHÁHÃÑ.Mó
ˆ	ô   	Ô+<Ó=Ð=Ø‡~�~Ð!Ø�~‰~ˆØ—N‘NØ�K‰K˜Ÿ™¨1Ñ,¨d¯o©oÄÀDÇHÁHÃÑ.Mó
ˆ	ô   	Ô+<Ó=Ð=Ü
ˆ7×ÑÓ !Ò#ð ×&Ñ&ò 	FˆCØ‰Ü& s¨CÓ0×6Ñ6Ó8�	Ü'¨	Ô3DÓEÐEð	Fð —<‘<öð ð á¤ m°C·G±GÑ&<Ô!=ð ˜#Ÿ'™'Ò"àò		
ð€Mð ð  ×%Ñ%ö ð ð á¤ m°C·G±GÑ&<Ô!=ð ˜#Ÿ'™'Ò"àò		
ð Ðð  ð +÷áˆC�ô 	�C˜˜i°EÈÖQð€Fñ ð à5÷áˆC�ô 	�C˜˜i°DÀxÖPóñ €Fð €Mùò7ùò ùóùós   Å4HÆ4HÇHÇ*Hc                 óŠ  — |j                   }| j                  |j                  |j                  |j                  t	        |«      z   «      }t        |dd «      �t        | |j                  «      }n@|rt        t        ||«      «      }n(|�|dk(  rt        t        ||«      «      }nt        |«      }t        |t        ||«      |«      S )Nrõ   r`   )rï   rw   rx   ry   rt   r¢   r  rõ   r.   r   r   r   )r|   Úpy_argrž   r&  r'  rD   r  Úannotation_exprs           rE   r+  r+  ø  s¨   € à�:‰:€DØ�‰�v—}‘} f×&7Ñ&7¸×9JÑ9JÌSÐQUËYÑ9VÓW€AÜˆv�| TÓ*Ð6Ü$ S¨&×*;Ñ*;Ó<‰Ù	Üœe A |Ó4Ó5‰Ø	Ð	 4¨6¢>Üœe A yÓ1Ó2‰ä-¨aÓ0ˆÜ�¤%¨¨4£.°*Ó=Ð=rG   c           	      ó¼  ‡‡— t        dddg«      Št        dddg«      Šˆˆfd„}d„ }d„ }d„ } ||j                  d	   j                  j                  «      \  }}d
 || |«      z   }d|z   }	|	ddj	                  |D �
cg c]  }
|
j
                  dz   |
j                  z   ‘Œ  c}
«      z   dz   z  }	 ||«      \  }}|	|dz   z  }	t        j                  |	«      j                  d	   }|j                  |_	        t        j                  |«      j                  d	   }|j                  j                  |«       dt        j                  |«      › d�}t        j                  t        «       «      }t        ||«       ||   t        «       |<    ||«      }d|› d� ||«      z   dz   }t!        |«      d	kD  r	|dz   |z   }n|}t        j                  |«      j                  d	   }|S c c}
w )NÚ	InputTyperD   ÚannÚ
OutputTypec                 ó  •— g }g }| D ]s  }|j                   }|j                  j                  }|j                  d«      \  }}|dk(  r|j                   ‰||«      «       |dk(  sŒ\|j                   ‰||«      «       Œu ||fS )Nrè   ÚinpÚout)rï   r
  rÓ   r¦   )	rî   ÚinputsÚoutputsrï   Úvar_nameÚvar_annÚvar_decl_typer7  r9  s	          €€rE   Úprocess_ins_outsz6build_ignore_context_manager.<locals>.process_ins_outs  s‰   ø€ ð ˆØˆØò 	>ˆCØ—w‘wˆHØ—i‘i—o‘oˆGØ%,§]¡]°3Ó%7Ñ"ˆM˜7Ø Ò%Ø—‘™i¨°'Ó:Ô;Ø Ó%Ø—‘™z¨(°GÓ<Õ=ð	>ð �wˆÐrG   c                 óf   — t        j                  dd| j                  «      }|› d|j                  › �S )Nz[^a-zA-Z0-9_]rÞ   )ÚreÚsubrØ   rx   )r|   r  rÆ   s      rE   Úcreate_unique_name_extz<build_ignore_context_manager.<locals>.create_unique_name_ext  s0   € ô �V‰VÐ$ c¨3¯<©<Ó8ˆØ��Q�t—{‘{�mÐ$Ð$rG   c                 óŒ  — d}d}t        | «      dk(  r|dz  }t        | «      dk(  r$d| d   j                  z   }|| d   j                  z  }t        | «      dkD  r`d}|dd	j                  | D �cg c]  }|j                  ‘Œ c}«      z   d
z   z  }|d	j                  | D �cg c]  }|j                  ‘Œ c}«      z  }||fS c c}w c c}w )Nrr   zreturn r   z -> Noner›   z -> z	 -> tupleú[ú, ú])rt   r8  rD   rÊ   )r>  Úreturn_type_annÚreturn_statement_strÚvars       rE   Úbuild_return_ann_stmtz;build_ignore_context_manager.<locals>.build_return_ann_stmt!  sÉ   € ØˆØ(ÐÜˆw‹<˜1ÒØ˜zÑ)ˆOÜˆw‹<˜1ÒØ$ w¨q¡z§~¡~Ñ5ˆOØ  G¨A¡J§O¡OÑ3Ð Üˆw‹<˜!ÒØ)ˆOØ˜s T§Y¡YÀ7Ö/K¸C°·³Ò/KÓ%LÑLÈsÑRÑRˆOØ  D§I¡IÀ7Ö.K¸C¨s¯x«xÒ.KÓ$LÑLÐ ØÐ 4Ð4Ð4ùò 0LùÚ.Ks   Á+B<ÂC
c                 ó^   — dj                  | D �cg c]  }|j                  ‘Œ c}«      S c c}w )NrI  )rÊ   rD   )rî   rï   s     rE   Ú
build_argsz0build_ignore_context_manager.<locals>.build_args/  s#   € Ø�y‰y¨dÖ3 s˜#Ÿ(›(Ò3Ó4Ð4ùÒ3s   �*r   Úfunc_ignore_z
def ú(rI  z :ú)z: passz§# Backward compat: These used to be imported into the outer global scope so some
# code may still expect them.
from typing import List, Dict, Tuple

@torch.jit.ignore
rÈ   ztorch.jit.frontend.rç   )r   r‰   r  ÚkeywordsrÊ   rD   r8  r·   rË   r¶   r¦   Ú
astunparseÚunparseÚcopyÚglobalsÚexecrt   )r|   r  rB  rF  rN  rP  r=  r>  Úignore_function_nameÚignore_function_strrM  Ú
return_annÚreturn_stmtÚignore_functionÚignore_func_strÚgÚassign_str_lhsÚassign_str_rhsÚ
assign_strÚ
assign_astr7  r9  s                       @@rE   Úbuild_ignore_context_managerre    sþ  ù€ Ü˜;¨°¨Ó8€IÜ˜L¨6°5¨/Ó:€Jõò %ò5ò5ñ ' t§z¡z°!¡}×'AÑ'A×'JÑ'JÓK�O€FˆGð *Ñ,BÀ3ÈÓ,MÑMÐØ"Ð%9Ñ9ÐØØˆd�i‰i¸fÖE°s˜Ÿ™ D™¨3¯7©7Ó2ÒEÓFÑFÈÑLñÐñ 4°GÓ<Ñ€J�Ø˜:¨Ñ0Ñ0Ðô —i‘iÐ 3Ó4×9Ñ9¸!Ñ<€Oð  Ÿ9™9€OÔô —)‘)˜KÓ(×-Ñ-¨aÑ0€KØ×Ñ×Ñ Ô,ðô ×Ñ�OÓ$Ð %ð &ð€Oô 	�	‰	”'“)Ó€AÜˆ˜!Ôà&'Ð(<Ñ&=„GƒIÐ"Ñ#ñ   Ó(€Nð Ð2Ð3°1Ð5¹
À6Ó8JÑJÈSÑPð ô ˆ7ƒ|�aÒØ# eÑ+¨nÑ<‰
à#ˆ
Ü—‘˜:Ó&×+Ñ+¨AÑ.€JØÐùòU Fs   Á<#Gc                 óü   — | €i S t        j                  | «      }|j                  j                  «       D ��ci c]8  \  }}|j                  t         j
                  j                  ur||j                  “Œ: c}}S c c}}w )a   
    Get a dictionary of default arguments for a function.

    Args:
        fn: Callable - The function to inspect for default arguments.
    Returns:
        (Dict[str, Any]): mapping argument names to their default values if
        :attr:`fn` is not None, else empty dictionary.
    )r    Ú	signatureÚ
parametersr‰   ÚdefaultÚ	ParameterÚempty)rÆ   rg  ÚkÚvs       rE   Úget_default_argsrn  e  ss   € ð 
€zØˆ	ä×!Ñ! "Ó%€Ið ×(Ñ(×.Ñ.Ó0÷áˆAˆqØ�9‰9œG×-Ñ-×3Ñ3Ñ3ð 	
ˆ1�9‰9‰óð ùó s   ·=A8c                 ó„   ‡ — t        j                  ‰ ˆ fd„¬«      }|D ��ci c]  \  }}|t        |«      “Œ }}}|S c c}}w )aC  
    Get default arguments for all methods in a class (except for static methods).

    Args:
        cls: type - The class type to inspect for default arguments.
    Returns:
        A Dict[str, Dict[str, Any]] which maps each method name to a Dict[str, Any]
        that maps each argument name to its default value.
    c                 óÂ   •— t        j                  | «      xs t        j                  | «      xr1 t        ‰| j                  «       xr | j                  ‰j
                  v S r@   )r    rÀ   rÁ   r4   rf   rÂ   rÃ   s    €rE   r—   z,get_default_args_for_class.<locals>.<lambda>‰  sP   ø€ œW×-Ñ-¨aÓ0ÒI´G×4FÑ4FÀqÓ4Iò 'Ü˜S !§*¡*Ó-Ð-ò'à�J‰J˜#Ÿ,™,Ð&ð rG   r˜   )r    r¡   rn  )r¨   rÕ   Úmethod_nameÚmethod_implÚdefaultss   `    rE   Úget_default_args_for_classrt  {  sW   ø€ ô × Ñ Øó'ô€Gð )0÷á$ˆK˜ð 	Ô% kÓ2Ñ2ð€Hñ ð
 €Oùós   ¡<c                   ó   — e Zd Zed„ «       Zy)ÚWithItemBuilderc                 óD  — |j                   j                  }|j                   j                  }|t        t        t
        j                     «      z   }|j                  }| j                  |||«      }t        |t        | |j                   «      |rt        | |«      «      S d «      S r@   )r  rx   ry   rt   rz   r·   r0   Úoptional_varsrw   r1   r  )r|   Úitemrx   ÚstartÚendÚop_varsr  s          rE   r‡   zWithItemBuilder.build_withitem™  s•   € à×"Ñ"×)Ñ)ˆØ×!Ñ!×,Ñ,ˆØ”cÔ+¬C¯H©HÑ5Ó6Ñ6ˆØ×$Ñ$ˆØ�N‰N˜6 5¨#Ó.ˆäØÜ�s˜D×-Ñ-Ó.Ù(/ŒJ�s˜GÓ$ó
ð 	
ð 6:ó
ð 	
rG   N)rf   rg   rh   Ústaticmethodr‡   ri   rG   rE   rv  rv  ˜  s   „ Øñ
ó ñ
rG   rv  c                   ó  — e Zd Zej                  dej
                  dej                  dej                  dej                  dej                  dej                  dej                  dej                  d	ej                  d
ej                  diZed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z y)r¸   ú+ú-Ú*ú/ú%ú|ú&ú^ú<<ú>>ú**c                 óx   — |j                   }|j                  j                  dk(  ry t        t	        | |«      «      S )NÚStr)r
  r‚   rf   r   r  )r|   r  r
  s      rE   Ú
build_ExprzStmtBuilder.build_Expr·  s4   € à—
‘
ˆØ�?‰?×#Ñ# uÒ,ð äœJ s¨EÓ2Ó3Ð3rG   c                 ó–   — t        | |j                  «      }|j                  D �cg c]  }t        | |«      ‘Œ }}t        ||«      S c c}w r@   )r  r
  Útargetsr   )r|   r  ÚrhsÚxÚlhss        rE   r¹   zStmtBuilder.build_AssignÁ  sB   € ä˜˜dŸj™jÓ)ˆØ+/¯<©<Ö8 aŒz˜#˜qÕ!Ð8ˆÐ8Ü�c˜3ÓÐùò 9s   ¥Ac                 óÎ  — |j                   €t        | |d¬«      ‚t        |j                  «      t        j
                  k(  rÖ|j                  j                   j                  dk(  r³| j                  dk7  r¤|j                  }|t        d|j                  j                  › �«      z   }t        |j                  d«      r%|t        d|j                  j                  › �«      z  }| j                  |j                  ||«      }t        d| j                  › d	|› �«      ‚t!        | |j                   «      }t!        | |j                  «      }t!        | |j                  «      }t#        |g||«      S )
Nzwithout assigned value)r~   r`   ra   zself.r  z: zKType annotations on instance attributes must be declared in __init__, not 'z': )r
  ro   rs   Útargetr·   r	   r  Úfuncnamery   rt   r	  Úhasattrrõ   rw   rx   Ú
ValueErrorr  r   )r|   r  rz  r{  Úsrr�  r‘  Úthe_types           rE   r»   zStmtBuilder.build_AnnAssignÇ  s/  € à�:‰:ÐÜ& s¨DÐ9QÔRÐRô �—‘Ó¤§¡Ò.Ø—‘×!Ñ!×$Ñ$¨Ò.Ø—‘ 
Ò*à—O‘OˆEØœ#  d§k¡k×&6Ñ&6Ð%7Ð8Ó9Ñ9ˆCÜ�t—‘¨Ô-Ø”s˜R §¡× 2Ñ 2Ð3Ð4Ó5Ñ5�Ø—‘ §¡¨U°CÓ8ˆBÜð"Ø"%§,¡, ¨s°2°$ð8óð ô
 ˜˜dŸj™jÓ)ˆÜ˜˜dŸk™kÓ*ˆÜ˜c 4§?¡?Ó3ˆÜ�s�e˜S (Ó+Ð+rG   c           
      óâ   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        ||j
                  D �cg c]  }t        | |«      ‘Œ c}«      S c c}w )NrK   )rw   rx   ry   rt   r   rŽ  r  )r|   r  r  r“  s       rE   Úbuild_DeletezStmtBuilder.build_Deleteá  sO   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈuË:Ñ9UÓVˆä�aÀÇÁÖM°fœ* S¨&Õ1ÒMÓNÐNùÒMs   ÁA,
c                 óà   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        ||j
                  €d «      S t        | |j
                  «      «      S )NÚreturn)rw   rx   ry   rt   r#   r
  r  ©r|   r  r  s      rE   Úbuild_ReturnzStmtBuilder.build_Returnç  sW   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ»MÑ*Ió
ˆô �a §¡Ð!3˜ÓUÐU¼ÀCÈÏÉÓ9TÓUÐUrG   c                 óÀ   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        | |j
                  «      }t        ||«      S )NrN   )rw   rx   ry   rt   r  Úexcr"   )r|   r  r  r-  s       rE   Úbuild_RaisezStmtBuilder.build_Raiseî  sE   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈwË<Ñ9WÓXˆÜ˜#˜tŸx™xÓ(ˆÜ�Q˜‹~ÐrG   c                 ó
  — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        | |j
                  «      }|j                  �t	        | |j                  «      nd }t        |||«      S )NrO   )rw   rx   ry   rt   r  Útestr[   r   )r|   r  r  r£  r[   s        rE   Úbuild_AssertzStmtBuilder.build_Assertô  sh   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ»MÑ*Ió
ˆô ˜#˜tŸy™yÓ)ˆØ+/¯8©8Ð+?Œj˜˜dŸh™hÔ'ÀTˆÜ�a˜˜sÓ#Ð#rG   c                 óf  — t        | |j                  «      }t        | |j                  «      }t        |j                  «      }|t
        j                  v rt
        j                  |   }n>t        t        | |j                  «       j                  dd¬«      d|j                  z   «      ‚t        |||«      S )Nú=)éÿÿÿÿr   )Úoffsetsz*unsupported kind of augmented assignment: )r  r“  r
  rs   Úopr¸   Úaugassign_maprk   Úfind_beforer§   rz  rf   r
   )r|   r  r‘  r�  r©  Úop_tokens         rE   Úbuild_AugAssignzStmtBuilder.build_AugAssigný  s‘   € ä˜˜dŸk™kÓ*ˆÜ˜˜dŸj™jÓ)ˆÜ�$—'‘'‹]ˆØ”×*Ñ*Ñ*Ü"×0Ñ0°Ñ4‰Hä#Ü˜C §¡£×!2Ñ!2°CÀÔIØ<¸r¿{¹{ÑJóð ô ˜˜h¨Ó,Ð,rG   c                 ó  — |j                   rt        d d«      ‚| j                  |j                  |j                  |j                  t        d«      z   «      }t        |t        | |j                  «      t        | |j                  «      «      S )Nz-else branches of while loops aren't supportedÚwhile)Úorelserk   rw   rx   ry   rt   r/   r  r£  r‘   r¶   r�  s      rE   Úbuild_WhilezStmtBuilder.build_While  sl   € à�;Š;ô $ØÐEóð ð �N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈwË<Ñ9WÓXˆÜ�Qœ
 3¨¯	©	Ó2´KÀÀTÇYÁYÓ4OÓPÐPrG   c           	      óD  — | j                  |j                  |j                  |j                  t        d«      z   «      }|j                  rt        |d«      ‚t        |t        | |j                  «      gt        | |j                  «      gt        | |j                  «      «      S )NrJ   z+else branches of for loops aren't supported)rw   rx   ry   rt   r°  rk   r   r  r“  Úiterr‘   r¶   r�  s      rE   Ú	build_ForzStmtBuilder.build_For  s~   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈuË:Ñ9UÓVˆØ�;Š;Ü# AÐ'TÓUÐUäØÜ˜˜TŸ[™[Ó)Ð*Ü˜˜TŸY™YÓ'Ð(Ü˜˜TŸY™YÓ'ó	
ð 	
rG   c           	      ó  — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |t        | |j                  «      t        | |j                  «      t        | |j                  «      «      S )NÚif)
rw   rx   ry   rt   r   r  r£  r‘   r¶   r°  r�  s      rE   Úbuild_IfzStmtBuilder.build_If#  sc   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈtË9Ñ9TÓUˆÜØÜ�s˜DŸI™IÓ&Ü˜˜TŸY™YÓ'Ü˜˜TŸ[™[Ó)ó	
ð 	
rG   c           
      óN  — | j                  |j                  |j                  |j                  t        d«      z   «      }|j                  rt        |d«      ‚|j                  D �cg c]  }t        | |«      ‘Œ }}t        t        t        t        |d«      «      |g «      «      S c c}w )Nr>   z?print statements with non-default destinations aren't supported)rw   rx   ry   rt   Údestrk   Úvaluesr  r   r   r.   r   )r|   r  r  Úvalrî   s        rE   Úbuild_PrintzStmtBuilder.build_Print-  sˆ   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈwË<Ñ9WÓXˆØ�9Š9Ü#ØÐTóð ð 15·±Ö<¨”
˜3 Õ$Ð<ˆÐ<Üœœc¤%¨¨7Ó"3Ó4°d¸BÓ?Ó@Ð@ùò =s   Á$B"c                 ó’   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |«      S )NÚpass)rw   rx   ry   rt   r    r�  s      rE   Ú
build_PasszStmtBuilder.build_Pass7  s2   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈvË;Ñ9VÓWˆÜ�A‹wˆrG   c                 ó’   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |«      S )NrS   )rw   rx   ry   rt   r   r�  s      rE   Úbuild_BreakzStmtBuilder.build_Break<  s2   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈwË<Ñ9WÓXˆÜ�Q‹xˆrG   c                 ó’   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |«      S )NrT   )rw   rx   ry   rt   r   r�  s      rE   Úbuild_ContinuezStmtBuilder.build_ContinueA  s8   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ
»OÑ*Kó
ˆô ˜‹{ÐrG   c                 óN  — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |«      r)t
        st        d«      ‚t        | |«      }t        | |«      S t        |t        | |j                  «      t        | |j                  «      «      S )NrM   z torch.jit._IgnoreContextManager requires installing Python library `astunparse`,                                    please install it in your Python environment)rw   rx   ry   rt   r  Ú_IS_ASTUNPARSE_INSTALLEDrñ   re  r�   r0   r‹   r‰   r‘   r¶   )r|   r  r  rd  s       rE   Ú
build_WithzStmtBuilder.build_WithH  s‡   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈvË;Ñ9VÓWˆä.¨tÔ4Ý+Ü"ðQóð ô 6°c¸4Ó@ˆJÜ˜c :Ó.Ð.Ü�A” s¨D¯J©JÓ7¼ÀSÈ$Ï)É)Ó9TÓUÐUrG   N)!rf   rg   rh   r·   ÚAddÚSubÚMultÚDivÚModÚBitOrÚBitAndÚBitXorÚLShiftÚRShiftÚPowrª  r}  rŒ  r¹   r»   rš  rž  r¡  r¤  r­  r±  r´  r·  r¼  r¿  rÁ  rÃ  rÆ  ri   rG   rE   r¸   r¸   ¨  s¶  „ à�‰�Ø�‰�Ø�‰�#Ø�‰�Ø�‰�Ø�	‰	�3Ø�
‰
�CØ�
‰
�CØ�
‰
�DØ�
‰
�DØ�‰�ð€Mð ñ4ó ð4ð ñ ó ð ð
 ñ,ó ð,ð2 ñOó ðOð
 ñVó ðVð ñó ðð
 ñ$ó ð$ð ñ-ó ð-ð ñQó ðQð ñ

ó ð

ð ñ
ó ð
ð ñAó ðAð ñó ðð ñó ðð ñó ðð ñVó ñVrG   r¸   c                   ó"  — e Zd Zej                  dej
                  dej                  dej                  dej                  dej                  dej                  dej                  dej                  d	ej                  d
ej                  dej                  diZdeej"                  <   ej$                  dej&                  dej(                  diZej,                  dej.                  diZej2                  dej4                  dej6                  dej8                  dej:                  dej<                  dej>                  dej@                  dejB                  dejD                  di
Z#e$d„ «       Z%e$d„ «       Z&e$d„ «       Z'e$d„ «       Z(e$d „ «       Z)e$d!„ «       Z*e$d"„ «       Z+e$d#„ «       Z,e$d$„ «       Z-e$d%„ «       Z.e$d&„ «       Z/e$d'„ «       Z0e$d(„ «       Z1e$d)„ «       Z2e$d*„ «       Z3e$d+„ «       Z4e$d,„ «       Z5e$d-„ «       Z6e$d.„ «       Z7e$d/„ «       Z8e$d0„ «       Z9e$d1„ «       Z:y2)3ÚExprBuilderr  r€  r�  r‚  r‰  rƒ  z//r…  r†  r„  r‡  rˆ  ú@Únotú~ÚandÚorz==z!=z<=ú<z>=ú>Úiszis notÚinznot inc                 óª  ‡— t        | |j                  «      }| j                  j                  d«      Šˆfd„}|j	                  «       j
                  dz   } ||«      t        j                  v r|dz  } ||«      t        j                  v rŒ|t        |j                  «      z   }| j                  ||«      }t        |t        ||j                  «      «      S )Nzutf-8c                 ó    •— t        ‰|    «      S r@   )Úchr)ÚindexrÒ   s    €rE   Úget_charz-ExprBuilder.build_Attribute.<locals>.get_charˆ  s   ø€ Ü�v˜e‘}Ó%Ð%rG   r›   )r  r
  rÒ   Úencoder§   r{  ÚstringÚ
whitespacert   r	  Úmake_raw_ranger$   r   )r|   r-  Úbaserá  Ú	start_posÚend_posÚ
name_rangerÒ   s          @rE   Úbuild_AttributezExprBuilder.build_Attribute�  s³   ø€ ä˜#˜tŸz™zÓ*ˆð —‘×"Ñ" 7Ó+ˆô	&ð —J‘J“L×$Ñ$ qÑ(ˆ	Ù�yÓ!¤V×%6Ñ%6Ñ6Ø˜‰NˆIñ �yÓ!¤V×%6Ñ%6Ò6àœc $§)¡)›nÑ,ˆØ×'Ñ'¨	°7Ó;ˆ
Ü�dœE *¨d¯i©iÓ8Ó9Ð9rG   c           	      óH  — t        | |j                  «      }|j                  D �cg c]  }t        | |«      ‘Œ }}t        |d«      r@|j                  r4t        | |j                  «      }|t        |j                  «       |«      gz  }g }|j                  D ]{  }t        | |j                  «      }|j                  st        |j                  «       d«      ‚|j                  t        t        |j                  «       |j                  «      |«      «       Œ} t        |||«      S c c}w )NÚstarargsz&keyword-arg expansion is not supported)r  rá   rî   r•  rì  r&   r§   rT  r
  rï   rk   r¦   r	   r   r   )	r|   r-  rá   r4  rî   Ústararg_exprÚkwargsÚkwÚkw_exprs	            rE   Ú
build_CallzExprBuilder.build_Call’  sô   € ä˜#˜tŸy™yÓ)ˆØ6:·i±iÖ@¨F”
˜3 Õ'Ð@ˆÐ@Ü�4˜Ô$¨¯ªÜ% c¨4¯=©=Ó9ˆLØ”W˜\×/Ñ/Ó1°<Ó@ÐAÑAˆDØˆØ—-‘-ò 	NˆBÜ   b§h¡hÓ/ˆGà—6’6Ü'Ø—M‘M“OÐ%Móð ð �M‰Mœ)¤E¨'¯-©-«/¸2¿6¹6Ó$BÀGÓLÕMð	Nô �T˜4 Ó(Ð(ùò As   ¥Dc                 ó€   — | j                  |j                  |j                  |j                  dz   «      }t        |«      S )Né   )rw   rx   ry   r   ©r|   r-  r  s      rE   Úbuild_EllipsiszExprBuilder.build_Ellipsis¤  s3   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¸AÑ*=ó
ˆô �A‹wˆrG   c                 ó  — | j                  |j                  |j                  |j                  t        |j                  «      z   «      }|j                  j                  t        «      rt        |dt        z   «      ‚|j                  dk(  rt        |«      S |j                  dk(  rt        |«      S |j                  dk(  rt        |«      S |j                  dk(  rt        |«      S t        t        ||j                  «      «      S )Nz=names of variables used in JIT-ed functions can't start with ÚTrueÚFalseÚNoneÚEllipsis)rw   rx   ry   rt   r  rA   rB   rk   r+   r   r   r   r.   r   rô  s      rE   Ú
build_NamezExprBuilder.build_Name«  sÌ   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈtÏwÉwË<Ñ9WÓXˆØ�7‰7×ÑÔ.Ô/Ü#Øð$Ü&6ñ7óð ð
 �7‰7�fÒÜ˜q“>Ð!Ø�W‰W˜ÒÜ “?Ð"Ø�W‰W˜ÒÜ˜q“>Ð!Ø�W‰W˜
Ò"Ü˜“7ˆNÜ”5˜˜DŸG™GÓ$Ó%Ð%rG   c           
      ó²  — | j                  |j                  |j                  |j                  t        t	        |j
                  «      «      z   «      }|j
                  du rt        |«      S |j
                  du rt        |«      S |j
                  €t        |«      S |j
                  t        k(  rt        |«      S t        dt	        |j
                  «      z   «      ‚)NTFz!Name constant value unsupported: )rw   rx   ry   rt   Ústrr
  r+   r   r   rú  r   r–  rô  s      rE   Úbuild_NameConstantzExprBuilder.build_NameConstant¾  s¥   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÄÀDÇJÁJÃÓ<PÑ*Pó
ˆð �:‰:˜ÑÜ˜q“>Ð!Ø�Z‰Z˜5Ñ Ü “?Ð"Ø�Z‰ZÐÜ˜q“>Ð!Ø�Z‰Zœ8Ò#Ü˜“7ˆNäÐ@Ä3ÀtÇzÁzÃ?ÑRÓSÐSrG   c                 óp  — t        | |j                  «      }t        | |j                  «      }t        |j                  «      }|t
        j                  k(  rZ| j                  sN| j                  |j                  «       j                  |j                  «       j                  «      }t        |d«      ‚t        j                  j                  |«      }|€[| j                  |j                  «       j                  |j                  «       j                  «      }t!        |d|j"                  z   «      ‚t%        |||«      S )Nz‹Division of ints in TorchScript uses Python 3 true division semantics. Please put `from __future__ import division` at the top of your filezunsupported binary operator: )r  ÚleftÚrightrs   r©  r·   rÊ  Úuses_true_divisionrå  r§   r{  rz  rX   rÓ  Ú	binop_maprv   rk   rf   r   )r|   r-  r‘  r�  r©  Ú	err_ranger¬  s          rE   Úbuild_BinOpzExprBuilder.build_BinOpÎ  sò   € ä˜˜dŸi™iÓ(ˆÜ˜˜dŸj™jÓ)ˆÜ�$—'‘'‹]ˆà”—‘Š= ×!7Ò!7Ø×*Ñ*¨3¯9©9«;¯?©?¸C¿I¹I»K×<MÑ<MÓNˆIÜØð;óð ô ×(Ñ(×,Ñ,¨RÓ0ˆØÐØ×*Ñ*¨3¯9©9«;¯?©?¸C¿I¹I»K×<MÑ<MÓNˆIÜ#ØÐ:¸R¿[¹[ÑHóð ô �X˜s CÓ(Ð(rG   c                 ó|  — t        | |j                  «      }t        |j                  «      }t        j
                  j                  |«      }|€'t        |j                  «       d|j                  z   «      ‚| j                  |j                  |j                  |j                  t        |«      z   «      }t        |||«      S )Nzunsupported unary operator: )r  Úoperandrs   r©  rÓ  Úunop_maprv   rk   r§   rf   rw   rx   ry   rt   r-   )r|   r-  Úsub_exprr©  r¬  r  s         rE   Úbuild_UnaryOpzExprBuilder.build_UnaryOpä  sš   € ä˜c 4§<¡<Ó0ˆÜ�$—'‘'‹]ˆÜ×'Ñ'×+Ñ+¨BÓ/ˆØÐÜ#Ø—
‘
“Ð<¸r¿{¹{ÑJóð ð �N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ»MÑ*Ió
ˆô �q˜( HÓ-Ð-rG   c                 ó@  — t        |j                  «      dk  r*t        dt        t        |j                  «      «      z   «      ‚|j                  D �cg c]  }t	        | |«      ‘Œ }}t        |j                  «      }t        j                  j                  |«      }|€a| j                  |d   j                  «       j                  |d   j                  «       j                  «      }t        |d|j                  z   «      ‚|d   }|dd  D ]  }t!        |||«      }Œ |S c c}w )Né   z.expected at least 2 values in BoolOp, but got r   r›   zunsupported boolean operator: )rt   rº  ÚAssertionErrorrý  r  rs   r©  rÓ  Ú
boolop_maprv   rå  r§   r{  rz  rk   rf   r   )	r|   r-  r	  Ú	sub_exprsr©  r¬  r  r‘  r�  s	            rE   Úbuild_BoolOpzExprBuilder.build_BoolOpò  s  € äˆt�{‰{Ó˜aÒÜ Ø@Ä3ÄsÈ4Ï;É;ÓGWÓCXÑXóð ð @D¿{¹{ÖK°8”Z  XÕ.ÐKˆ	ÐKÜ�$—'‘'‹]ˆÜ×)Ñ)×-Ñ-¨bÓ1ˆØÐØ×*Ñ*Ø˜!‘×"Ñ"Ó$×(Ñ(¨)°A©,×*<Ñ*<Ó*>×*DÑ*DóˆIô $ØÐ;¸b¿k¹kÑIóð ð ˜‰lˆØ˜Q˜R�=ò 	,ˆCÜ˜ # sÓ+‰Cð	,àˆ
ùò Ls   ÁDc                 ó”   — t        t        | |j                  «      t        | |j                  «      t        | |j                  «      «      S r@   )r*   r  r£  r¶   r°  )r|   r-  s     rE   Úbuild_IfExpzExprBuilder.build_IfExp  s9   € äÜ�s˜DŸI™IÓ&Ü�s˜DŸI™IÓ&Ü�s˜DŸK™KÓ(ó
ð 	
rG   c                 óv  — |j                   gt        |j                  «      z   D �cg c]  }t        | |«      ‘Œ }}d }t	        ||j
                  |dd  «      D ]Ú  \  }}}t        |«      }t        j                  j                  |«      }	| j                  |j                  «       j                  |j                  «       j                  «      }
|	€t        |
d|j                  z   «      ‚|t         j"                  k(  rt%        d||«      }t'        |
d|«      }nt%        |	||«      }|€|}ŒÎt%        d||«      }ŒÜ |S c c}w )Nr›   z!unsupported comparison operator: rÜ  rÕ  r×  )r   rˆ   Úcomparatorsr  ÚzipÚopsrs   rÓ  Ú	cmpop_maprv   rå  r§   r{  rz  rk   rf   r·   ÚNotInr   r-   )r|   r-  ÚeÚoperandsr2  r‘  Úop_r�  r©  r¬  r  Úin_exprÚcmp_exprs                rE   Úbuild_ComparezExprBuilder.build_Compare  s&  € à15·±°¼dÀ4×CSÑCSÓ>TÑ0TÖU¨1”J˜s AÕ&ÐUˆÐUØˆÜ  ¨4¯8©8°X¸a¸b°\ÓBò 	8‰MˆC��cÜ�c“ˆBÜ"×,Ñ,×0Ñ0°Ó4ˆHØ×"Ñ" 3§9¡9£;§?¡?°C·I±I³K×4EÑ4EÓFˆAØÐÜ'ØÐ:¸R¿[¹[ÑHóð ð ”S—Y‘YŠô    c¨3Ó/�Ü" 1 e¨WÓ5‘ä  ¨3°Ó4�àˆ~Ø!‘ä˜u f¨hÓ7‘ð)	8ð* ˆùò/ Vs   ¦D6c                 ó¸  ‡	‡
— d„ Š
d„ Š	ˆ	ˆ
fd„}t        | |j                  «      }t        |j                  «      }|t        j
                  u �rt        |j                  j                  t        j                  «      r¾|j                  j                  j                  D �cg c]  }t        | |«      ‘Œ }}|sy| j                  |j                  |j                  j                  j                  |j                  j                  j                  dz   «      }t        |g «      }|j                  |«       t        ||«      S t        |t        | |j                  j                  «      g«      S |t        j                  u rt        | ‰
| ||j                  «      g«      S |t        j                   u rt        | || ||j                  «      «      S |t        j                  u rßg }|j                  j                  D ]Q  }t        |t        j                  «      r|j                   ‰
| ||«      «       Œ7|j                  t        | |«      «       ŒS |se| j                  |j                  |j                  j                  |j                  j                  dz   «      }t        |g «      }|j                  |«       t        ||«      S t        |t        | |j                  «      g«      S c c}w )Nc                 ó  — |j                   �t        | |j                   «      nd }|j                  �t        | |j                  «      nd }|j                  �t        | |j                  «      nd }t	        |j                  «       |||«      S r@   )Úlowerr  ÚupperÚstepr%   r§   )r|   ræ  Ú
slice_exprr!  r"  r#  s         rE   Úbuild_SliceExprz4ExprBuilder.build_Subscript.<locals>.build_SliceExpr,  s�   € ð ×#Ñ#Ð/ô ˜3 
× 0Ñ 0Ô1àð ð ×#Ñ#Ð/ô ˜3 
× 0Ñ 0Ô1àð ð —?‘?Ð.ô ˜3 
§¡Ô0àð ô
 ˜TŸZ™Z›\¨5°%¸Ó>Ð>rG   c                 óª   — t        |j                  t        j                  «      rt	        |j                  «       d«      ‚t        | |j                  «      S )Nz9slicing multiple dimensions with tuples not supported yet)r”   r
  r·   ÚTuplerk   r§   r  )r|   ræ  Ú
index_exprs      rE   Úbuild_Indexz0ExprBuilder.build_Subscript.<locals>.build_Index>  sD   € Ü˜*×*Ñ*¬C¯I©IÔ6Ü'Ø—J‘J“LØOóð ô ˜c :×#3Ñ#3Ó4Ð4rG   c                 óÈ  •— g }|j                   D ]Ï  }t        |«      }|t        j                  u r|j	                   ‰| ||«      «       Œ:|t        j
                  u r|j	                   ‰| ||«      «       Œf|t        j                  u r;|j                  t        u r)|j	                  t        |j                  «       «      «       Œ³t        |j                  «       d|› d�«      ‚ |S )Nz!slicing multiple dimensions with z not supported)Údimsrs   r·   ÚIndexr¦   ÚSliceÚConstantr
  rú  r   r§   rk   )r|   ræ  Úextslicer  r-  Úsub_typer)  r%  s         €€rE   Úbuild_ExtSlicez3ExprBuilder.build_Subscript.<locals>.build_ExtSliceF  sÄ   ø€ ØˆIØ Ÿ™ò �Ü ›:�ØœsŸy™yÑ(Ø×$Ñ$¡[°°d¸DÓ%AÕBØ¤§¡Ñ*Ø×$Ñ$¡_°S¸$ÀÓ%EÕFØ¤§¡Ñ-°$·*±*ÄÑ2HØ×$Ñ$¤T¨$¯*©*«,Ó%7Õ8ä+ØŸ
™
›Ø;¸H¸:À^ÐTóð ðð ÐrG   r  )r  r
  rs   Úslicer·   r,  r”   r'  Úeltsrw   rx   ry   r,   r¦   r)   r-  ÚExtSlice)r|   r-  r1  ræ  r0  r(  Úindicesr  Útupr)  r%  s            @@rE   Úbuild_SubscriptzExprBuilder.build_Subscript*  sI  ù€ ò	?ò$	5õ	ô" ˜#˜tŸz™zÓ*ˆÜ˜Ÿ
™
Ó#ˆØ”s—y‘yÒ Ü˜$Ÿ*™*×*Ñ*¬C¯I©IÔ6ð CGÇ*Á*×BRÑBR×BWÑBWöØ4>”J˜s JÕ/ð�ð ñ ð Ÿ™ØŸ™ØŸ
™
×(Ñ(×3Ñ3ØŸ
™
×(Ñ(×3Ñ3°aÑ7ó�Aô
 ' q¨"Ó-�CØ—N‘N 3Ô'Ü   wÓ/Ð/ä  ¬
°3¸¿
¹
×8HÑ8HÓ(IÐ'JÓKÐKØœŸ™Ñ"Ü˜T¡O°C¸¸t¿z¹zÓ$JÐ#KÓLÐLØœŸ™Ñ%Ü˜T¡>°#°t¸T¿Z¹ZÓ#HÓIÐIàœ3Ÿ9™9Ñ$à�Ø"&§*¡*§/¡/ò D�JÜ! *¬c¯i©iÔ8ØŸ™¡°s¸DÀ*Ó'MÕNàŸ™¤z°#°zÓ'BÕCð	Dñ àŸ™ØŸ™ T§Z¡Z×%:Ñ%:¸D¿J¹J×<QÑ<QÐTUÑ<Uó�Aô ' q¨"Ó-�CØ—N‘N 3Ô'Ü   wÓ/Ð/Ü˜T¤J¨s°D·J±JÓ$?Ð#@ÓAÐAùòOs   ÂKc           
      óÌ   — t        | j                  |j                  |j                  |j                  dz   «      |j                  D �cg c]  }t        | |«      ‘Œ c}«      S c c}w ©Nr›   )r   rw   rx   ry   r3  r  ©r|   r-  r  s      rE   Ú
build_ListzExprBuilder.build_List†  sL   € äØ�N‰N˜4Ÿ;™;¨¯©¸¿¹È1Ñ9LÓMØ)-¯©Ö3 AŒZ˜˜QÕÒ3ó
ð 	
ùâ3ó   ÁA!
c           
      óÌ   — t        | j                  |j                  |j                  |j                  dz   «      |j                  D �cg c]  }t        | |«      ‘Œ c}«      S c c}w r9  )r,   rw   rx   ry   r3  r  r:  s      rE   Úbuild_TuplezExprBuilder.build_Tuple�  sL   € äØ�N‰N˜4Ÿ;™;¨¯©¸¿¹È1Ñ9LÓMØ)-¯©Ö3 AŒZ˜˜QÕÒ3ó
ð 	
ùâ3r<  c                 ón  — | j                  |j                  |j                  |j                  dz   «      }|j                  r|j                  d   st	        |d«      ‚t        ||j                  D �cg c]  }t        | |«      ‘Œ c}|j                  D �cg c]  }t        | |«      ‘Œ c}«      S c c}w c c}w )Nr›   r   z1Dict expansion (e.g. `{**dict}`) is not supported)rw   rx   ry   Úkeysrk   r   r  rº  )r|   r-  r§   r  s       rE   Ú
build_DictzExprBuilder.build_Dict”  s“   € à—‘˜tŸ{™{¨D¯O©O¸T¿_¹_ÈqÑ=PÓQˆØ�9Š9˜TŸY™Y qš\Ü#ØÐJóð ô ØØ)-¯©Ö3 AŒZ˜˜QÕÒ3Ø)-¯©Ö5 AŒZ˜˜QÕÒ5ó
ð 	
ùâ3ùÚ5s   Á0B-
ÂB2c                 ó¾   — t        |j                  «      }| j                  |j                  |j                  |j                  t        |«      z   «      }t        ||«      S r@   )rý  r
  rw   rx   ry   rt   r   ©r|   r-  r
  r  s       rE   Ú	build_NumzExprBuilder.build_Num¡  sB   € ä�D—J‘J“ˆØ�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈuË:Ñ9UÓVˆÜ�Q˜‹ÐrG   c           
      ó  — |j                   }|�t        |t        «      rt        j	                  | |«      S t        |t
        t        t        f«      rt        j                  | |«      S t        |t        «      rt        j                  | |«      S t        |t        t        «      «      rt        j                  | |«      S | j                  |j                  |j                   |j                   t#        t        |«      «      z   «      }t%        |d«      ‚)Nz Unknown Constant expression type)r
  r”   r*  rÓ  rþ  ÚintÚfloatÚcomplexrD  rý  Ú	build_Strrs   rú  rõ  rw   rx   ry   rt   rX   )r|   r-  r
  Úerror_ranges       rE   Úbuild_ConstantzExprBuilder.build_Constant§  sÎ   € à—
‘
ˆØˆ=œJ u¬dÔ3ô ×1Ñ1°#°tÓ<Ð<Ü�eœc¤5¬'Ð2Ô3Ü×(Ñ(¨¨dÓ3Ð3Ü˜œsÔ#Ü×(Ñ(¨¨dÓ3Ð3Ü˜œt¤H›~Ô.Ü×-Ñ-¨c°4Ó8Ð8àŸ.™.Ø—‘˜TŸ_™_¨d¯o©oÄÄCÈÃJÃÑ.OóˆKô   Ð-OÓPÐPrG   c                 óÄ   — t        |j                  «      }| j                  |j                  |j                  |j                  t        |«      z   dz   «      }t        ||«      S r9  )rý  r
  rw   rx   ry   rt   r(   rC  s       rE   rI  zExprBuilder.build_Strº  sM   € ä�D—J‘J“ˆØ�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ»JÑ*FÈÑ*Jó
ˆô ˜Q Ó&Ð&rG   c           	      ó¬  — d}g }|j                   D ]ã  }| j                  |j                  |j                  |j                  dz   «      }t	        |t
        j                  «      r^|j                  dk7  rt        |d«      ‚|j                  �t        |d«      ‚|dz  }|j                  t        | |j                  «      «       Œ¯t	        |t
        j                  «      r||j                  z  }ŒÙt        |d«      ‚ | j                  |j                  |j                  |j                  dz   «      }t        t        t!        ||«      t#        |d«      «      |g «      S )	Nrr   r›   r§  z%Don't support conversion in JoinedStrz%Don't support formatting in JoinedStrz{}zUnsupported value in JoinedStrÚformat)rº  rw   rx   ry   r”   r·   ÚFormattedValueÚ
conversionrk   Úformat_specr¦   r  r
  r.  r   r$   r(   r   )r|   r-  r�   rî   r
  r  s         rE   Úbuild_JoinedStrzExprBuilder.build_JoinedStrÂ  s"  € àˆØˆØ—[‘[ò 	MˆEØ—‘˜uŸ|™|¨U×-=Ñ-=¸u×?OÑ?OÐRSÑ?SÓTˆAÜ˜%¤×!3Ñ!3Ô4Ø×#Ñ# rÒ)Ü+¨AÐ/VÓWÐWØ×$Ñ$Ð0Ü+¨AÐ/VÓWÐWØ�T‘	�Ø—‘œJ s¨E¯K©KÓ8Õ9Ü˜E¤3§<¡<Ô0Ø�U—[‘[Ñ ‘ä'¨Ð+KÓLÐLð	Mð �N‰N˜4Ÿ;™;¨¯©¸¿¹È1Ñ9LÓMˆÜ”VœM¨!¨QÓ/´°q¸(Ó1CÓDÀdÈBÓOÐOrG   c                 óâ  — | j                  |j                  |j                  |j                  «      }t        |j                  «      dk7  rt        |d«      ‚t        |j                  d   j                  «      dk7  rt        |d«      ‚t        | |j                  «      }t        | |j                  d   j                  «      }t        | |j                  d   j                  «      }t        ||||«      S ©Nr›   z.Only a single generator is currently supportedr   z'Comprehension ifs are not supported yet)rw   rx   ry   rt   Ú
generatorsrk   Úifsr  Úeltr“  r³  r   )r|   r  r  Úelt_exprÚtarget_exprÚ	iter_exprs         rE   Úbuild_ListCompzExprBuilder.build_ListComp×  sÀ   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹ÓIˆÜˆt�‰Ó 1Ò$Ü# AÐ'WÓXÐXäˆt�‰˜qÑ!×%Ñ%Ó&¨!Ò+Ü# AÐ'PÓQÐQä˜c 4§8¡8Ó,ˆÜ   d§o¡o°aÑ&8×&?Ñ&?Ó@ˆÜ˜s D§O¡O°AÑ$6×$;Ñ$;Ó<ˆ	ä˜˜8 [°)Ó<Ð<rG   c                 ó.   — t         j                  | |«      S r@   )rÓ  r[  )r|   r  s     rE   Úbuild_GeneratorExpzExprBuilder.build_GeneratorExpæ  s   € ô ×)Ñ)¨#¨tÓ4Ð4rG   c                 ó  — | j                  |j                  |j                  |j                  «      }t        |j                  «      dk7  rt        |d«      ‚t        |j                  d   j                  «      dk7  rt        |d«      ‚t        | |j                  «      }t        | |j                  «      }t        | |j                  d   j                  «      }t        | |j                  d   j                  «      }t        |||||«      S rT  )rw   rx   ry   rt   rU  rk   rV  r  Úkeyr
  r“  r³  r   )r|   r  r  Úkey_exprÚ
value_exprrY  rZ  s          rE   Úbuild_DictCompzExprBuilder.build_DictCompë  sÒ   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹ÓIˆÜˆt�‰Ó 1Ò$Ü# AÐ'WÓXÐXäˆt�‰˜qÑ!×%Ñ%Ó&¨!Ò+Ü# AÐ'PÓQÐQä˜c 4§8¡8Ó,ˆÜ  T§Z¡ZÓ0ˆ
Ü   d§o¡o°aÑ&8×&?Ñ&?Ó@ˆÜ˜s D§O¡O°AÑ$6×$;Ñ$;Ó<ˆ	ä˜˜8 Z°¸iÓHÐHrG   c                 óª   — | j                  |j                  |j                  |j                  dz   «      }t        |t	        | |j
                  «      «      S r9  )rw   rx   ry   r&   r  r
  rô  s      rE   Úbuild_StarredzExprBuilder.build_Starredû  s=   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹È1Ñ9LÓMˆÜ�qœ* S¨$¯*©*Ó5Ó6Ð6rG   N);rf   rg   rh   r·   rÇ  rÈ  rÉ  rÊ  rÑ  rË  ÚFloorDivrÍ  rÎ  rÌ  rÏ  rÐ  r  ÚMatMultÚNotÚUSubÚInvertr  ÚAndÚOrr  ÚEqÚNotEqÚLtEÚLtÚGtEÚGtÚIsÚIsNotÚInr  r  r}  rê  rñ  rõ  rû  rþ  r  r
  r  r  r  r7  r;  r>  rA  rD  rK  rI  rR  r[  r]  rb  rd  ri   rG   rE   rÓ  rÓ  W  sì  „ à�‰�Ø�‰�Ø�‰�#Ø�‰�Ø�‰�Ø�‰�Ø�‰�dØ�
‰
�CØ�
‰
�CØ�	‰	�3Ø�
‰
�DØ�
‰
�Dð€Ið !€Iˆc�k‰kÑð 	�‰�Ø�‰�#Ø�
‰
�Cð€Hð 	�‰�Ø�‰�ð€Jð 	�‰�Ø�	‰	�4Ø�‰�Ø�‰�Ø�‰�Ø�‰�Ø�‰�Ø�	‰	�8Ø�‰�Ø�	‰	�8ð€Ið ñ:ó ð:ð  ñ)ó ð)ð" ñó ðð ñ&ó ð&ð$ ñTó ðTð ñ)ó ð)ð* ñ.ó ð.ð ñó ðð( ñ
ó ð
ð ñó ðð4 ñYBó ðYBðv ñ
ó ð
ð ñ
ó ð
ð ñ

ó ð

ð ñó ðð
 ñQó ðQð$ ñ'ó ð'ð ñPó ðPð( ñ=ó ð=ð ñ5ó ð5ð ñIó ðIð ñ7ó ñ7rG   rÓ  c                 ó’   — | j                   d | j                  |«      }| j                  ||d   z   |t        |«      z   |d   z   «      S )Nr   r›   )rÒ   Úrindexrå  rt   )r|   ÚposÚsubstrr¨  Únew_poss        rE   r«  r«    sL   € Ø�j‰j˜˜#Ð×%Ñ% fÓ-€GØ×Ñ˜g¨°©
Ñ2°G¼cÀ&»kÑ4IÈGÐTUÉJÑ4VÓWÐWrG   )NF)NNr@   ))r   r   )~r·   rW  rÌ   r    rD  rã  Úcollectionsr   Útextwrapr   r\   Útorch.jit.annotationsr   Útorch._C._jit_tree_viewsr   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/   r0   r1   Útorch._jit_internalr2   r3   r4   r5   Útorch._sourcesr6   r7   r8   r9   rê   Útorch.jit._dataclass_implsr:   Útorch.jit._monkeytype_configr;   r<   rÅ  rU  ÚImportErrorrB   rC   ÚsetÚascii_lowercaseÚascii_uppercaseÚdigitsÚ_identifier_charsrF   rÎ   ÚImportÚ
ImportFromÚGlobalrz   ru   ÚupdateÚAsyncFunctionDefÚAsyncForÚ	AsyncWithÚTryÚNonlocalrº   Ú	ExceptionrX   rk   ro   r…   r‹   r‘   r¯   r½   rå   r¤   r  r  rÔ   rû   r(  r  r+  re  rn  rt  rv  r¸   rÓ  r  r�   r‡   r«  ri   rG   rE   ú<module>r’     sc  ðã 
Û Û Û Û 	Û Ý "Ý ã Û Ý ÷-÷ -÷ -÷ -÷ -÷ -÷ -÷ -÷ -÷ -÷ -ó -÷\ó ÷ó õ ?ß Mð !Ð ð	Ûà#Ðð Ð Ø�)€Ù˜×.Ñ.°×1GÑ1GÑGÈ&Ï-É-ÑWÓXÐ òHð
 ‡O�OÐ+Ø‡G�Gˆ[Ø‡J�JÐ Ø‡L�LÐ%Ø‡H�HÐØ‡I�IÐ!Ø‡J�J�Ø‡J�JÐ#Ø‡N�NÐ'Ø‡J�JÐ"Ø‡I�IÐ!Ø‡L�LÐ'ðÐ ð  ‡O�O�UØ‡G�GˆUØ‡J�J�Ø‡L�L�'Ø‡H�HˆfØ‡I�IˆwØ‡J�J�Ø‡J�J�Ø‡N�N�FØ‡J�J�Ø‡I�IˆwØ‡L�L�*ðÐ ð × Ñ à×ÑÐ:Ø�‰Ð'Ø�‰Ð.Ø�‰�Ø�‰Ð*ðôð × Ñ à×Ñ˜kØ�‰�kØ�‰�|Ø�‰�Ø�‰�jðôð × Ñ à�‰Ð.ðôô
<�Iô 
<ô	˜ô 	ô,Ð,ô ,ô	˜ô 	òò
%ò
òDò$GXóT?òF÷$!ñ !òóAð&2ð ó1óh>ò[ò|ò,ô:
�gô 
ô lV�'ô lVô^g7�'ô g7ñT ‹]€
Ù‹]€
Ù Ó"€ôXøðk% ò 	Úð	ús   Â8M. Í.M7Í6M7