§
    ¯˜º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ZJn# eL$ r Y nw xY wdZMdhZN eOejP        ejQ        z   ejR        z   ¦  «        ZSd„ ZTe jU        de j!        de j        de j        de j8        de j*        de j        de jV        de jW        de jX        de j        de j        diZYe jU        de j!        de j        de j        de j8        de j*        de j        d e jV        d!e jW        d"e jX        d#e j        d$e j        d%iZZeY [                    e j\        d&e j]        d'e j^        d(e j_        d)e j`        d*i¦  «         eZ [                    e j\        d+e j]        d,e j^        d-e j_        d.e j`        d/i¦  «         eY [                    e ja        d0i¦  «          G d1„ d2eb¦  «        Zc G d3„ d4ec¦  «        Zd G d5„ d6ed¦  «        Ze G d7„ d8ec¦  «        Zfd9„ Zgd:„ Zhd;„ Zid<„ Zjd=„ ZkdRd>„Zld?„ Zm G d@„ dA¦  «        ZndB„ ZodSdC„ZpdDZqdTdE„ZrdTdF„ZsdG„ ZtdH„ ZudI„ Zv G dJ„ dKen¦  «        Zw G dL„ dMen¦  «        Zx G dN„ dOen¦  «        Zy ey¦   «         Zz ex¦   «         Z{ ew¦   «         Z|dUdQ„Z}dS )Vé    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                 óH   — |                       t          ¦  «        p| t          v S ©N)Ú
startswithÚ_reserved_prefixÚ_reserved_names©Únames    úZ/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/torch/jit/frontend.pyÚis_reserved_namerG   \   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dS )ÚFrontendErrorc                 ót   — || _         || _        t          j                             | j         ¦  «        | _        d S r@   )Úsource_rangeÚmsgÚtorchÚ_CÚErrorReportÚerror_report)Úselfr[   r\   s      rF   Ú__init__zFrontendError.__init__›   s4   € Ø(ˆÔØˆŒõ "œH×0Ò0°Ô1BÑCÔCˆÔÐÐrH   c                 óh   — | j         | j                             ¦   «                              ¦   «         z   S r@   )r\   r`   ÚwhatÚlstrip)ra   s    rF   Ú__str__zFrontendError.__str__£   s*   € ØŒx˜$Ô+×0Ò0Ñ2Ô2×9Ò9Ñ;Ô;Ñ;Ð;rH   N)Ú__name__Ú
__module__Ú__qualname__rb   rf   © rH   rF   rY   rY   š   s5   € € € € € ðDð Dð Dð<ð <ð <ð <ð <rH   rY   c                   ó   — e Zd ZdS )ÚNotSupportedErrorN©rg   rh   ri   rj   rH   rF   rl   rl   §   ó   € € € € € Ø€DrH   rl   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )ÚUnsupportedNodeErrorÚ c                 ój  •— t          |¦  «        }t          t                               |d¦  «        ¦  «        }|                     |j        |j        |j        |z   ¦  «        }t                               ||j        ¦  «        }|› d|r|dz   nd› d�}t          ¦   «          
                    ||¦  «         d S )Nú rq   zaren't supported)ÚtypeÚlenÚnode_start_tokensÚgetÚ
make_rangeÚlinenoÚ
col_offsetÚpretty_node_namesrg   Úsuperrb   )
ra   ÚctxÚoffending_nodeÚreasonÚ	node_typeÚ	range_lenr[   Úfeature_namer\   Ú	__class__s
            €rF   rb   zUnsupportedNodeError.__init__¬   sµ   ø€ å˜Ñ(Ô(ˆ	ÝÕ)×-Ò-¨i¸Ñ=Ô=Ñ>Ô>ˆ	Ø—~’~ØÔ!ØÔ%ØÔ%¨	Ñ1ñ
ô 
ˆõ
 )×,Ò,¨Y¸	Ô8JÑKÔKˆØÐPÐP°Ð > ¨¡ ¸BÐPÐPÐPˆÝ‰Œ×Ò˜ sÑ+Ô+Ð+Ð+Ð+rH   )rq   )rg   rh   ri   rb   Ú__classcell__)rƒ   s   @rF   rp   rp   «   s=   ø€ € € € € ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,rH   rp   c                   ó   — e Zd ZdS )ÚFrontendTypeErrorNrm   rj   rH   rF   r†   r†   º   rn   rH   r†   c                 ó>   ‡ — ˆ fd„|D ¦   «         }t          |¦  «        S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   )Úbuild_withitem)Ú.0Úir}   s     €rF   ú
<listcomp>z#build_withitems.<locals>.<listcomp>¿   s#   ø€ Ð3Ð3Ð3¨�^˜C Ñ#Ô#Ð3Ð3Ð3rH   )Úlist)r}   Úitemss   ` rF   Úbuild_withitemsr�   ¾   s(   ø€ Ø3Ð3Ð3Ð3¨UÐ3Ñ3Ô3€EÝ�‰;Œ;ÐrH   c                 óZ   ‡ — ˆ fd„|D ¦   «         }t          t          d |¦  «        ¦  «        S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   )Ú
build_stmt)rŠ   Úsr}   s     €rF   rŒ   zbuild_stmts.<locals>.<listcomp>Ä   s#   ø€ Ð/Ð/Ð/ A�Z˜˜QÑÔÐ/Ð/Ð/rH   )r�   Úfilter)r}   Ústmtss   ` rF   Úbuild_stmtsr–   Ã   s4   ø€ Ø/Ð/Ð/Ð/¨Ð/Ñ/Ô/€EÝ•�t˜UÑ#Ô#Ñ$Ô$Ð$rH   c                 ó   — t          j        | d„ ¬¦  «        }t          | dg ¦  «        }g }|D ]à}|d         |vrÔt          |d         j        ¦  «        sºt          |d         j        d|d         › d�|¬¦  «        }|d         j        r't          |d         j        d|d         › d	�|¬¦  «        nd
}|                     t          | 	                    ¦   «         t          | 	                    ¦   «         |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    rF   ú<lambda>z&get_class_properties.<locals>.<lambda>Ó   s   € ½
À1ÅhÑ8OÔ8O€ rH   ©Ú	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           rF   Úget_class_propertiesr´   È   s/  € õ Ô˜sÐ.OÐ.OÐPÑPÔP€Eå Ð%@À"ÑEÔEÐð €JØð ð ˆØ�Œ7Ð+Ð+Ð+µKÀÀQÄÄÑ4MÔ4MÐ+Ý Ø�Q””Ð3 4¨¤7Ð3Ð3Ð3¸yðñ ô ˆFð
 ˜”7”<ð•˜D œGœLÐ*?¨t°A¬wÐ*?Ð*?Ð*?È9ÐUÑUÔUÐUàð ð
 ×ÒÝ˜Ÿš™œ­¨v¯|ª|©~¬~¸tÀA¼wÑ)GÔ)GÈÐQWÑXÔXñô ð øð ÐrH   c                 óð   ‡ ‡— g Šˆˆ fd„}|j         D ]c}t          |t          j        ¦  «        r |t          j        |¦  «         Œ3t          |t          j        ¦  «        r |t          j        |¦  «         Œd‰S )Nc                 ój   •— 	 ‰                       | ‰|¦  «        ¦  «         d S # t          $ r Y d S w xY wr@   )r«   rl   )ÚbuilderÚentryÚassignsr}   s     €€rF   Úmaybe_build_assignz-get_class_assigns.<locals>.maybe_build_assigní   sN   ø€ ð	Ø�NŠN˜7˜7 3¨Ñ.Ô.Ñ/Ô/Ð/Ð/Ð/øÝ ð 	ð 	ð 	ØˆDˆDð	øøøs   ƒ$ ¤
2±2)Úbodyr™   Úastr   ÚStmtBuilderÚbuild_AssignÚ	AnnAssignÚbuild_AnnAssign)r}   Úcls_astrº   r¸   r¹   s   `   @rF   Úget_class_assignsrÂ   ê   s›   øø€ Ø€Gðð ð ð ð ð ð ”ð Cð CˆÝ�e�SœZÑ(Ô(ð 	CØÐ�{Ô7¸Ñ?Ô?Ð?Ð?Ý˜�sœ}Ñ-Ô-ð 	CØÐ�{Ô:¸EÑBÔBÐBøØ€NrH   c                 óþ  ‡ ‡‡— t          j        ‰ ˆ fd„¬¦  «        }ˆ fd„Št          ‰ t          j        j                             ¦   «         ¦  «        \  }}}d                     |¦  «        }t          |¦  «        }t          j
        |¦  «        }|j        d         }	t          |	t          j        ¦  «        sJ ‚t          j        ‰ ¦  «        rŠd„ |	j        D ¦   «         }
t!          |¦  «        D ]i\  }\  }}t#          j        |¦  «        }|rK||
vrG |‰ ¦  «        }||f||<   t'          ‰ |¦  «        }t(          j                             ||j        ¦  «         Œjˆˆfd„|D ¦   «         }t1          ‰ ‰¦  «        }t3          |                     dd	¦  «        d         ¦  «        t3          |                     dd	¦  «        d         ¦  «        z
  }t7          ||||d
¦  «        }t9          ||	¦  «        }t;          ||	||‰|¦  «        S )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        | ¦  «        st          j        | ¦  «        o3t          ‰| j        ¦  «         o| j        ‰j        v ot          | ¦  «         S r@   )r¥   ÚismethodÚ
isfunctionr4   rg   Ú__dict__r2   ©r›   r­   s    €rF   rœ   z#get_jit_class_def.<locals>.<lambda>
  s`   ø€ �WÔ-¨aÑ0Ô0ÐIµGÔ4FÀqÑ4IÔ4Ið Ý˜S !¤*Ñ-Ô-Ð-ðàŒJ˜#œ,Ð&ðõ ˜A‘”Ðð rH   r�   c                 óV   •— t          j        | ¦  «        ot          | dd ¦  «        ‰k    S )NÚ__self__)r¥   rÅ   r§   )Úfnr­   s    €rF   Úis_classmethodz)get_jit_class_def.<locals>.is_classmethod  s*   ø€ ÝÔ Ñ#Ô#ÐL­°°JÀÑ(EÔ(EÈÒ(LÐLrH   rq   r   c                 ól   — h | ]1}t          |t          j        ¦  «        r|j        t          v ¯*|j        ’Œ2S rj   )r™   r¼   ÚFunctionDefrE   r:   ©rŠ   Úmethods     rF   ú	<setcomp>z$get_jit_class_def.<locals>.<setcomp>&  sJ   € ð 
ð 
ð 
àÝ˜&¥#¤/Ñ2Ô2ð
ð ”Õ6Ð6Ð6ð ŒKð 7Ð6Ð6rH   c           
      óN   •— g | ]!\  }}t          ||‰ ‰|¦  «        ¬ ¦  «        ‘Œ"S ))r£   rÌ   )r©   )rŠ   rE   ÚobjrÌ   r£   s      €€rF   rŒ   z%get_jit_class_def.<locals>.<listcomp>5  sI   ø€ ð ð ð áˆT�3õ 	�C˜¨À>À>ÐRUÑCVÔCVÐWÑWÔWðð ð rH   ú
r    F)r¥   r¦   r6   r]   r^   r_   Ú
call_stackÚjoinr   r¼   Úparser»   r™   r   ÚdataclassesÚis_dataclassÚ	enumerater:   rw   r§   r   ÚloaderÚcacheÚsourcer´   ru   Úsplitr7   rÂ   Úbuild_class_def)r­   r£   ÚmethodsÚsourcelinesÚfile_linenoÚfilenamerÝ   Ú
dedent_srcÚpy_astÚ	class_astÚ	overridesr‹   rE   Ú_Úsynthesizer_fnÚ
parsed_defÚfuncÚmethod_defsr°   Úleading_whitespace_lenr}   r¹   rÌ   s   ``                    @rF   Úget_jit_class_defrî   ü   se  øøø€ õ Ô Øðð ð ð ðñ ô €GðMð Mð Mð Mð Mõ *CØ�UŒXÔ!×,Ò,Ñ.Ô.ñ*ô *Ñ&€K�˜hð �WŠW�[Ñ!Ô!€Få˜‘”€JÝŒY�zÑ"Ô"€Fà”˜A”€IÝ�i¥¤Ñ.Ô.Ð.Ð.Ð.õ Ô Ñ$Ô$ð Dð
ð 
à#œ.ð
ñ 
ô 
ˆ	õ & gÑ.Ô.ð 	Dð 	D‰LˆA‰y��aå4Ô8¸Ñ>Ô>ˆNØð D $¨iÐ"7Ð"7Ø+˜^¨CÑ0Ô0�
Ø! :Ð-�˜‘
Ý˜s DÑ)Ô)�ÝÔ$×*Ò*¨4°Ô1BÑCÔCÐCøðð ð ð ð à"ðñ ô €Kõ & c¨9Ñ5Ô5€Jå  §¢¨d°AÑ!6Ô!6°qÔ!9Ñ:Ô:½SØ×Ò˜˜qÑ!Ô! !Ô$ñ>ô >ñ Ðõ Ø�˜+Ð'=¸uñô €Cõ    YÑ/Ô/€Gå˜3 	¨;¸
ÀIÈwÑWÔWÐWrH   c                 ó|  — t          | t          ¦  «        st          | ¦  «        n| }t          j        j                             |j        ¦  «        }|j        j	        d         }|rV|j
        j
        d         j        }t          j        |› d|› �¦  «        j	        d         }|j	                             d|¦  «         t          | ¦  «        röt          j        d¦  «        }	t          |	j	        ¦  «        dk    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        j                             ¦   «         }d}t:          r9t          | t          ¦  «        s$t=          | ¦  «        }|                     |¦  «        }tA          |j!        |||||¬¦  «        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   ru   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                  rF   r©   r©   F  s*  € õ '1°µZÑ&@Ô&@ÐH•˜2‘”�Àb€JÝ”	Ô%×3Ò3°JÔ4EÑFÔF€IØŒ^Ô  Ô#€Fàð +Ø”;Ô# AÔ&Ô*ˆå”i 8Ð ;Ð ;°	Ð ;Ð ;Ñ<Ô<ÔAÀ!ÔDˆØŒ×Ò˜1˜kÑ*Ô*Ð*õ �2�„ð 'Ýœ	Ø\ñ
ô 
ˆõ ˆ}Ô!Ñ"Ô" aÒ'Ð'­zØÔ˜qÔ!¥3¤?ñ0
ô 0
Ð'õ Øg¸Ô9LÐgÐgÈzÔOeÐgÐgñô ð ð #Ô'¨Ô*ˆ
Ø ”oˆŒà15Ð5ˆŒÔ˜FœKÔ.Ø”;Ô# f¤kÔ&<Ñ<ð 	@ð 	@ˆCà'œ_Ô1°!Ô4Ô?ˆCŒNˆNÝ�r‰?Œ?ð 	'à!ˆFŒNØ"&ˆFÔõ ”IÔ%×8Ò8Ñ:Ô:€MØ€MÝð ?¥
¨2­zÑ :Ô :ð ?Ý% bÑ)Ô)ˆØ%×4Ò4°XÑ>Ô>ˆåØŒØØØØØ#ðñ ô ð rH   c                 ó�  — t          | j        d         j        t          j        ¦  «        r›| j        d         j        j        }t          |t          j        ¦  «        rj|j        }|j        }|dk    rVt          |t          j        ¦  «        r<|j        dk    r1t          |j        t          j	        ¦  «        r|j        j
        dk    rdS dS )Nr   Ú_IgnoreContextManagerrô   r]   TF)r™   rŽ   Úcontext_exprr¼   ÚCallrë   r	   ÚattrÚvalueÚNameÚid)ÚstmtÚfunctionÚ	attr_nameÚ
attr_values       rF   Ú#is_torch_jit_ignore_context_managerr  ‰  s²   € å�$”*˜Q”-Ô,­c¬hÑ7Ô7ð $à”:˜a”=Ô-Ô2ˆÝ�h¥¤Ñ.Ô.ð 		$Ø œˆIØ!œˆJØÐ3Ò3Ð3½
Ø�CœMñ9ô 9Ð3ð ”? eÒ+Ð+µ
¸:Ô;KÍSÌXÑ0VÔ0VÐ+Ø!Ô'Ô*¨gÒ5Ð5Ø#˜tØˆ5rH   c                   ó   — e Zd Zd„ ZdS )ÚBuilderc                 óz   — t          | d|j        j        z   d ¦  «        }|€t          ||¦  «        ‚ |||¦  «        S )NÚbuild_)r§   rƒ   rg   rp   )ra   r}   ÚnoderÐ   s       rF   Ú__call__zBuilder.__call__œ  sD   € Ý˜˜x¨$¬.Ô*AÑAÀ4ÑHÔHˆØˆ>Ý& s¨DÑ1Ô1Ð1Øˆv�c˜4Ñ Ô Ð rH   N)rg   rh   ri   r   rj   rH   rF   r  r  ›  s#   € € € € € ð!ð !ð !ð !ð !rH   r  c                 óÂ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          t          ||¦  «        d„ |D ¦   «         ||¦  «        S )NrM   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rj   )r'   rÏ   s     rF   rŒ   z#build_class_def.<locals>.<listcomp>¨  s   € ÐAÐAÐA¨v�d 6™lœlÐAÐAÐArH   )rx   ry   rz   ru   r   r   )r}   Úpy_defrà   r°   r£   r¹   Úrs          rF   rß   rß   £  se   € Ø�ŠØŒ�vÔ(¨&Ô*;½cÀ'¹l¼lÑ*Jñ	ô 	€Aõ Ýˆa�ÑÔÐAÐA¸ÐAÑAÔAÀ:Èwñô ð rH   c                 ó  — |j         }|                      |j        |j        |j        t	          d¦  «        z   ¦  «        }t          | |j        ||¦  «        }d }	t          |dd ¦  «        �t          | |j	        ¦  «        }	t          |||	¦  «        }
|d u}|�@t          j                             |¦  «        }t          j                             |
||¦  «        }
t          t!          ||¦  «        |
t#          | |¦  «        ¦  «        S )NrJ   rÿ   )r»   rx   ry   rz   ru   Ú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                rF   r  r  ¬  sæ   € ØŒ;€DØ�Š�v”} fÔ&7¸Ô9JÍSÐQVÉZÌZÑ9WÑXÔX€Aå! # v¤{°I¸}ÑMÔM€JØ€KÝˆv�y $Ñ'Ô'Ð3Ý   f¤nÑ5Ô5ˆå��:˜{Ñ+Ô+€DØ Ð%€IØÐÝ!œH×7Ò7¸	ÑBÔBÐÝŒx×4Ò4°TÐ;LÈiÑXÔXˆå�u�Q˜Ñ!Ô! 4­°S¸$Ñ)?Ô)?Ñ@Ô@Ð@rH   zfCompiled functions can't take variable number of arguments or use keyword-only arguments with defaultsc                 óÔ  ‡ ‡‡— |j         �Z|j         }‰                      |j        |j        dz
  |j        t	          |j        ¦  «        z   ¦  «        }t          |t          ¦  «        ‚|j        �Z|j        }‰                      |j        |j        dz
  |j        t	          |j        ¦  «        z   ¦  «        }t          |t          ¦  «        ‚t	          |j	        ¦  «        dk    rC|j	        D ];}|�7t          ‰ |¦  «                             ¦   «         }t          |t          ¦  «        ‚Œ<ˆfd„|j        D ¦   «         }ˆfd„|j        D ¦   «         }ˆ ˆfd„|D ¦   «         }	|	ˆ ˆfd„|D ¦   «         z  }	|	S )Nr    r   c                 ój   •— g | ]/}|‰r't          ‰|j                 ¦  «        r‰|j                 nd f‘Œ0S r@   ©Úboolrø   ©rŠ   rø   rò   s     €rF   rŒ   z$build_param_list.<locals>.<listcomp>Ú  s^   ø€ ð ð ð ð ð àðÝ!% m°C´GÔ&<Ñ!=Ô!=ðˆM˜#œ'Ô"Ð"àð		
ðð ð rH   c                 ój   •— g | ]/}|‰r't          ‰|j                 ¦  «        r‰|j                 nd f‘Œ0S r@   r1  r3  s     €rF   rŒ   z$build_param_list.<locals>.<listcomp>ã  s^   ø€ ð  ð  ð  ð ð àðÝ!% m°C´GÔ&<Ñ!=Ô!=ðˆM˜#œ'Ô"Ð"àð		
ð ð  ð  rH   c           	      ó>   •— g | ]\  }}t          ‰|‰d |¬¦  «        ‘ŒS )F©Ú
kwarg_onlyÚpdt_arg_type©Úbuild_param©rŠ   rø   Úarg_typer}   r£   s      €€rF   rŒ   z$build_param_list.<locals>.<listcomp>í  s@   ø€ ð ð ð áˆC�õ 	�C˜˜i°EÈÐQÑQÔQðð ð rH   c           	      ó>   •— g | ]\  }}t          ‰|‰d |¬¦  «        ‘ŒS )Tr6  r9  r;  s      €€rF   rŒ   z$build_param_list.<locals>.<listcomp>ñ  s@   ø€ ð ð ð áˆC�õ 	�C˜˜i°DÀxÐPÑPÔPðð ð rH   )rû   rx   ry   rz   ru   rø   rl   Ú_vararg_kwarg_errrü   Úkw_defaultsr'  r¬   r÷   rý   )
r}   Úpy_argsr£   rò   ÚexprÚ	ctx_rangerø   Úarg_and_typesÚarg_and_types_kwonlyargsÚresults
   ` ``      rF   r&  r&  Ä  sÔ  øøø€ Ø„}Ð ØŒ}ˆØ—N’NØŒK˜œ¨1Ñ,¨d¬oÅÀDÄHÁÄÑ.Mñ
ô 
ˆ	õ   	Õ+<Ñ=Ô=Ð=Ø„~Ð!ØŒ~ˆØ—N’NØŒK˜œ¨1Ñ,¨d¬oÅÀDÄHÁÄÑ.Mñ
ô 
ˆ	õ   	Õ+<Ñ=Ô=Ð=Ý
ˆ7ÔÑÔ !Ò#Ð#ð Ô&ð 	Fð 	FˆCØˆÝ& s¨CÑ0Ô0×6Ò6Ñ8Ô8�	Ý'¨	Õ3DÑEÔEÐEð ð
ð ð ð ð ”<ðñ ô €Mð ð  ð  ð  ð Ô%ð ñ  ô  Ððð ð ð ð à*ðñ ô €Fð ð ð ð ð ð à5ðñ ô ñ €Fð €MrH   c                 ó²  — |j         }|                      |j        |j        |j        t	          |¦  «        z   ¦  «        }t          |dd ¦  «        �t          | |j        ¦  «        }nU|rt          t          ||¦  «        ¦  «        }n5|�$|dk    rt          t          ||¦  «        ¦  «        }nt          |¦  «        }t          |t          ||¦  «        |¦  «        S )Nrþ   ra   )rø   rx   ry   rz   ru   r§   r'  rþ   r.   r   r   r   )r}   Úpy_argr£   r7  r8  rE   r$  Úannotation_exprs           rF   r:  r:  ø  sÇ   € àŒ:€DØ�Š�v”} fÔ&7¸Ô9JÍSÐQUÉYÌYÑ9VÑWÔW€AÝˆv�| TÑ*Ô*Ð6Ý$ S¨&Ô*;Ñ<Ô<ˆˆØ	ð 1Ý�e A |Ñ4Ô4Ñ5Ô5ˆˆØ	Ð	 4¨6¢> >Ý�e A yÑ1Ô1Ñ2Ô2ˆˆå-¨aÑ0Ô0ˆÝ�¥%¨¨4¡.¤.°*Ñ=Ô=Ð=rH   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                     d„ |D ¦   «         ¦  «        z   dz   z  }	 ||¦  «        \  }
}|	|
dz   z  }	t          j        |	¦  «        j        d	         }|j        |_        t          j        |¦  «        j        d	         }|j                             |¦  «         dt          j
        |¦  «        › d�}t          j        t          ¦   «         ¦  «        }t          ||¦  «         ||         t          ¦   «         |<    ||¦  «        }d|› d� ||¦  «        z   dz   }t          |¦  «        d	k    r	|dz   |z   }n|}t          j        |¦  «        j        d	         }|S )NÚ	InputTyperE   ÚannÚ
OutputTypec                 ó  •— g }g }| D ]w}|j         }|j        j        }|                     d¦  «        \  }}|dk    r|                      ‰||¦  «        ¦  «         |dk    r|                      ‰||¦  «        ¦  «         Œx||fS )Nrñ   ÚinpÚout)rø   r  rÞ   r«   )	r÷   ÚinputsÚoutputsrø   Úvar_nameÚvar_annÚvar_decl_typerJ  rL  s	          €€rF   Úprocess_ins_outsz6build_ignore_context_manager.<locals>.process_ins_outs  s¡   ø€ ð ˆØˆØð 	>ð 	>ˆCØ”wˆHØ”i”oˆGØ%,§]¢]°3Ñ%7Ô%7Ñ"ˆM˜7Ø Ò%Ð%Ø—’˜i˜i¨°'Ñ:Ô:Ñ;Ô;Ð;Ø Ò%Ð%Ø—’˜z˜z¨(°GÑ<Ô<Ñ=Ô=Ð=øØ�wˆÐrH   c                 óP   — t          j        dd| j        ¦  «        }|› d|j        › �S )Nz[^a-zA-Z0-9_]rè   )ÚreÚsubrã   ry   )r}   r  rË   s      rF   Úcreate_unique_name_extz<build_ignore_context_manager.<locals>.create_unique_name_ext  s0   € õ ŒVÐ$ c¨3¬<Ñ8Ô8ˆØÐ$Ð$�t”{Ð$Ð$Ð$rH   c                 óf  — d}d}t          | ¦  «        dk    r|dz  }t          | ¦  «        dk    r d| d         j        z   }|| d         j        z  }t          | ¦  «        dk    rLd}|dd	                     d
„ | D ¦   «         ¦  «        z   dz   z  }|d	                     d„ | D ¦   «         ¦  «        z  }||fS )Nrq   zreturn r   z -> Noner    z -> z	 -> tupleú[ú, c                 ó   — g | ]	}|j         ‘Œ
S rj   )rK  ©rŠ   Úvars     rF   rŒ   zObuild_ignore_context_manager.<locals>.build_return_ann_stmt.<locals>.<listcomp>+  s   € Ð/KÐ/KÐ/K¸C°´Ð/KÐ/KÐ/KrH   ú]c                 ó   — g | ]	}|j         ‘Œ
S rj   rD   r^  s     rF   rŒ   zObuild_ignore_context_manager.<locals>.build_return_ann_stmt.<locals>.<listcomp>,  s   € Ð.KÐ.KÐ.K¸C¨s¬xÐ.KÐ.KÐ.KrH   )ru   rK  rE   rÖ   )rQ  Úreturn_type_annÚreturn_statement_strs      rF   Ú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Ñ3Ð Ýˆw‰<Œ<˜!ÒÐØ)ˆOØ˜s T§Y¢YÐ/KÐ/KÀ7Ð/KÑ/KÔ/KÑ%LÔ%LÑLÈsÑRÑRˆOØ  D§I¢IÐ.KÐ.KÀ7Ð.KÑ.KÔ.KÑ$LÔ$LÑLÐ ØÐ 4Ð4Ð4rH   c                 ó@   — d                      d„ | D ¦   «         ¦  «        S )Nr\  c                 ó   — g | ]	}|j         ‘Œ
S rj   rD   )rŠ   rø   s     rF   rŒ   zDbuild_ignore_context_manager.<locals>.build_args.<locals>.<listcomp>0  s   € Ð3Ð3Ð3 s˜#œ(Ð3Ð3Ð3rH   )rÖ   )r÷   s    rF   Ú
build_argsz0build_ignore_context_manager.<locals>.build_args/  s#   € Ø�yŠyÐ3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4Ð4rH   r   Úfunc_ignore_z
def ú(r\  c                 ó2   — g | ]}|j         d z   |j        z   ‘ŒS )z :)rE   rK  r^  s     rF   rŒ   z0build_ignore_context_manager.<locals>.<listcomp>8  s%   € ÐEÐEÐE°s˜œ D™¨3¬7Ñ2ÐEÐEÐErH   ú)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Ö   r¼   r×   r»   r«   Ú
astunparseÚunparseÚcopyÚglobalsÚexecru   )r}   r  rU  rY  rd  rg  rP  rQ  Úignore_function_nameÚignore_function_strÚ
return_annÚreturn_stmtÚignore_functionÚignore_func_strÚgÚassign_str_lhsÚassign_str_rhsÚ
assign_strÚ
assign_astrJ  rL  s                      @@rF   Úbuild_ignore_context_managerr}    sO  øø€ Ý˜;¨°¨Ñ8Ô8€IÝ˜L¨6°5¨/Ñ:Ô:€Jðð ð ð ð ð ð %ð %ð %ð5ð 5ð 5ð5ð 5ð 5ð 'Ð& t¤z°!¤}Ô'AÔ'JÑKÔK�O€FˆGð *Ð,BÐ,BÀ3ÈÑ,MÔ,MÑMÐØ"Ð%9Ñ9ÐØØˆd�iŠiÐEÐE¸fÐEÑEÔEÑFÔFÑFÈÑLñÐð 4Ð3°GÑ<Ô<Ñ€J�Ø˜:¨Ñ0Ñ0Ðõ ”iÐ 3Ñ4Ô4Ô9¸!Ô<€Oð  œ9€OÔõ ”)˜KÑ(Ô(Ô-¨aÔ0€KØÔ×Ò Ñ,Ô,Ð,ðõ Ô�OÑ$Ô$ðð ð €Oõ 	Œ	•'‘)”)ÑÔ€AÝˆ˜!ÑÔÐà&'Ð(<Ô&=…G�I„IÐ"Ñ#ð  �Z Ñ(Ô(€Nð 	6Ð2Ð5Ð5Ð5¸
¸
À6Ñ8JÔ8JÑJÈSÑPð õ ˆ7�|„|�aÒÐØ# eÑ+¨nÑ<ˆ
ˆ
à#ˆ
Ý”˜:Ñ&Ô&Ô+¨AÔ.€JØÐrH   c                 óx   — | €i S t          j        | ¦  «        }d„ |j                             ¦   «         D ¦   «         S )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.
    Nc                 óT   — i | ]%\  }}|j         t          j        j        u¯||j         “Œ&S rj   )Údefaultr¥   Ú	ParameterÚempty)rŠ   ÚkÚvs      rF   ú
<dictcomp>z$get_default_args.<locals>.<dictcomp>t  s=   € ð ð ð áˆAˆqØŒ9�GÔ-Ô3Ð3Ð3ð 	
ˆ1Œ9à3Ð3Ð3rH   )r¥   Ú	signatureÚ
parametersrŽ   )rË   r†  s     rF   Úget_default_argsrˆ  e  sN   € ð 
€zØˆ	åÔ! "Ñ%Ô%€Iðð àÔ(×.Ò.Ñ0Ô0ðñ ô ð rH   c                 óR   ‡ — t          j        ‰ ˆ fd„¬¦  «        }d„ |D ¦   «         }|S )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        | ¦  «        st          j        | ¦  «        o#t          ‰| j        ¦  «         o| j        ‰j        v S r@   )r¥   rÅ   rÆ   r4   rg   rÇ   rÈ   s    €rF   rœ   z,get_default_args_for_class.<locals>.<lambda>‰  sM   ø€ �WÔ-¨aÑ0Ô0ÐIµGÔ4FÀqÑ4IÔ4Ið 'Ý˜S !¤*Ñ-Ô-Ð-ð'àŒJ˜#œ,Ð&ð rH   r�   c                 ó4   — i | ]\  }}|t          |¦  «        “ŒS rj   )rˆ  )rŠ   Úmethod_nameÚmethod_impls      rF   r…  z.get_default_args_for_class.<locals>.<dictcomp>�  s7   € ð ð ð á$ˆK˜ð 	Õ% kÑ2Ô2ðð ð rH   )r¥   r¦   )r­   rà   Údefaultss   `  rF   Úget_default_args_for_classr�  {  sX   ø€ õ Ô Øð'ð 'ð 'ð 'ðñ ô €Gðð à(/ðñ ô €Hð
 €OrH   c                   ó$   — e Zd Zed„ ¦   «         ZdS )ÚWithItemBuilderc                 ó(  — |j         j        }|j         j        }|t          t          t
          j                 ¦  «        z   }|j        }|                      |||¦  «        }t          |t          | |j         ¦  «        |rt          | |¦  «        nd ¦  «        S r@   )r  ry   rz   ru   r{   r¼   r0   Úoptional_varsrx   r1   r'  )r}   Úitemry   ÚstartÚendÚop_varsr$  s          rF   r‰   zWithItemBuilder.build_withitem™  s‹   € àÔ"Ô)ˆØÔ!Ô,ˆØ•cÕ+­C¬HÔ5Ñ6Ô6Ñ6ˆØÔ$ˆØ�NŠN˜6 5¨#Ñ.Ô.ˆåØÝ�s˜DÔ-Ñ.Ô.Ø(/Ð9�J�s˜GÑ$Ô$Ð$°Tñ
ô 
ð 	
rH   N)rg   rh   ri   Ústaticmethodr‰   rj   rH   rF   r‘  r‘  ˜  s-   € € € € € Øð
ð 
ñ „\ð
ð 
ð 
rH   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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 dS )r½   ú+ú-Ú*ú/ú%ú|ú&ú^ú<<ú>>ú**c                 ón   — |j         }|j        j        dk    rd S t          t	          | |¦  «        ¦  «        S )NÚStr)r  rƒ   rg   r   r'  )r}   r  r  s      rF   Ú
build_ExprzStmtBuilder.build_Expr·  s8   € à”
ˆØŒ?Ô# uÒ,Ð,ð �4å�J s¨EÑ2Ô2Ñ3Ô3Ð3rH   c                 ót   ‡ — t          ‰ |j        ¦  «        }ˆ fd„|j        D ¦   «         }t          ||¦  «        S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   ©r'  )rŠ   Úxr}   s     €rF   rŒ   z,StmtBuilder.build_Assign.<locals>.<listcomp>Ä  s#   ø€ Ð8Ð8Ð8 a�z˜#˜qÑ!Ô!Ð8Ð8Ð8rH   )r'  r  Útargetsr   )r}   r  ÚrhsÚlhss   `   rF   r¾   zStmtBuilder.build_AssignÁ  s?   ø€ å˜˜dœjÑ)Ô)ˆØ8Ð8Ð8Ð8¨4¬<Ð8Ñ8Ô8ˆÝ�c˜3ÑÔÐrH   c                 óz  — |j         €t          | |d¬¦  «        ‚t          |j        ¦  «        t          j        k    r°|j        j         j        dk    r›| j        dk    r�|j        }|t          d|j        j
        › �¦  «        z   }t          |j        d¦  «        r|t          d|j        j        › �¦  «        z  }|                      |j        ||¦  «        }t          d| j        › d	|› �¦  «        ‚t!          | |j         ¦  «        }t!          | |j        ¦  «        }t!          | |j        ¦  «        }t#          |g||¦  «        S )
Nzwithout assigned value)r   ra   rb   zself.r  z: zKType annotations on instance attributes must be declared in __init__, not 'z': )r  rp   rt   Útargetr¼   r	   r  Úfuncnamerz   ru   r  Úhasattrrþ   rx   ry   Ú
ValueErrorr'  r   )r}   r  r•  r–  Úsrr­  r®  Úthe_types           rF   rÀ   zStmtBuilder.build_AnnAssignÇ  sG  € àŒ:ÐÝ& s¨DÐ9QÐRÑRÔRÐRõ �”ÑÔ¥¤Ò.Ð.Ø”Ô!Ô$¨Ò.Ð.Ø” 
Ò*Ð*à”OˆEØ�#Ð8 d¤kÔ&6Ð8Ð8Ñ9Ô9Ñ9ˆCÝ�t”¨Ñ-Ô-ð 6Ø•sÐ4 ¤Ô 2Ð4Ð4Ñ5Ô5Ñ5�Ø—’ ¤¨U°CÑ8Ô8ˆBÝð8Ø"%¤,ð8ð 8Ø35ð8ð 8ñô ð õ
 ˜˜dœjÑ)Ô)ˆÝ˜˜dœkÑ*Ô*ˆÝ˜c 4¤?Ñ3Ô3ˆÝ�s�e˜S (Ñ+Ô+Ð+rH   c                 ó²   ‡ — ‰                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |ˆ fd„|j        D ¦   «         ¦  «        S )NrL   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  )rŠ   r°  r}   s     €rF   rŒ   z,StmtBuilder.build_Delete.<locals>.<listcomp>å  s#   ø€ ÐMÐMÐM°f�* S¨&Ñ1Ô1ÐMÐMÐMrH   )rx   ry   rz   ru   r   r¬  ©r}   r  r$  s   `  rF   Úbuild_DeletezStmtBuilder.build_Deleteá  sP   ø€ à�NŠN˜4œ;¨¬¸¼Í3ÈuÉ:Ì:Ñ9UÑVÔVˆå�aÐMÐMÐMÐMÀÄÐMÑMÔMÑNÔNÐNrH   c                 óÆ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          ||j        €d nt          | |j        ¦  «        ¦  «        S )NÚreturn)rx   ry   rz   ru   r#   r  r'  r¸  s      rF   Úbuild_ReturnzStmtBuilder.build_Returnç  sV   € à�NŠNØŒK˜œ¨$¬/½CÀ¹M¼MÑ*Iñ
ô 
ˆõ �a ¤Ð!3˜˜½ÀCÈÌÑ9TÔ9TÑUÔUÐUrH   c                 ó¸   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          | |j        ¦  «        }t          ||¦  «        S )NrO   )rx   ry   rz   ru   r'  Úexcr"   )r}   r  r$  rA  s       rF   Úbuild_RaisezStmtBuilder.build_Raiseî  sG   € à�NŠN˜4œ;¨¬¸¼Í3ÈwÉ<Ì<Ñ9WÑXÔXˆÝ˜#˜tœxÑ(Ô(ˆÝ�Q˜‰~Œ~ÐrH   c                 óö   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          | |j        ¦  «        }|j        �t	          | |j        ¦  «        nd }t          |||¦  «        S )NrP   )rx   ry   rz   ru   r'  Útestr\   r   )r}   r  r$  rÁ  r\   s        rF   Úbuild_AssertzStmtBuilder.build_Assertô  so   € à�NŠNØŒK˜œ¨$¬/½CÀ¹M¼MÑ*Iñ
ô 
ˆõ ˜#˜tœyÑ)Ô)ˆØ+/¬8Ð+?�j˜˜dœhÑ'Ô'Ð'ÀTˆÝ�a˜˜sÑ#Ô#Ð#rH   c                 ób  — t          | |j        ¦  «        }t          | |j        ¦  «        }t          |j        ¦  «        }|t
          j        v rt
          j        |         }n@t          t          | | 	                    ¦   «         j
        dd¬¦  «        d|j        z   ¦  «        ‚t          |||¦  «        S )Nú=)éÿÿÿÿr   )Úoffsetsz*unsupported kind of augmented assignment: )r'  r°  r  rt   Úopr½   Úaugassign_maprl   Úfind_beforer¬   r•  rg   r
   )r}   r  r®  r­  rÇ  Úop_tokens         rF   Úbuild_AugAssignzStmtBuilder.build_AugAssigný  s�   € å˜˜dœkÑ*Ô*ˆÝ˜˜dœjÑ)Ô)ˆÝ�$”'‰]Œ]ˆØ•Ô*Ð*Ð*Ý"Ô0°Ô4ˆHˆHå#Ý˜C §¢¡¤Ô!2°CÀÐIÑIÔIØ<¸r¼{ÑJñô ð õ ˜˜h¨Ñ,Ô,Ð,rH   c                 ó
  — |j         rt          d d¦  «        ‚|                      |j        |j        |j        t          d¦  «        z   ¦  «        }t          |t          | |j        ¦  «        t          | |j
        ¦  «        ¦  «        S )Nz-else branches of while loops aren't supportedÚwhile)Úorelserl   rx   ry   rz   ru   r/   r'  rÁ  r–   r»   r¸  s      rF   Úbuild_WhilezStmtBuilder.build_While  sx   € àŒ;ð 	õ $ØÐEñô ð ð �NŠN˜4œ;¨¬¸¼Í3ÈwÉ<Ì<Ñ9WÑXÔXˆÝ�Q�
 3¨¬	Ñ2Ô2µKÀÀTÄYÑ4OÔ4OÑPÔPÐPrH   c           	      ó6  — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }|j        rt          |d¦  «        ‚t          |t          | |j        ¦  «        gt          | |j	        ¦  «        gt          | |j        ¦  «        ¦  «        S )NrK   z+else branches of for loops aren't supported)rx   ry   rz   ru   rÎ  rl   r   r'  r°  Úiterr–   r»   r¸  s      rF   Ú	build_ForzStmtBuilder.build_For  sŒ   € à�NŠN˜4œ;¨¬¸¼Í3ÈuÉ:Ì:Ñ9UÑVÔVˆØŒ;ð 	VÝ# AÐ'TÑUÔUÐUåØÝ˜˜Tœ[Ñ)Ô)Ð*Ý˜˜TœYÑ'Ô'Ð(Ý˜˜TœYÑ'Ô'ñ	
ô 
ð 	
rH   c           	      ó  — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |t          | |j        ¦  «        t          | |j        ¦  «        t          | |j	        ¦  «        ¦  «        S )NÚif)
rx   ry   rz   ru   r   r'  rÁ  r–   r»   rÎ  r¸  s      rF   Úbuild_IfzStmtBuilder.build_If#  sj   € à�NŠN˜4œ;¨¬¸¼Í3ÈtÉ9Ì9Ñ9TÑUÔUˆÝØÝ�s˜DœIÑ&Ô&Ý˜˜TœYÑ'Ô'Ý˜˜Tœ[Ñ)Ô)ñ	
ô 
ð 	
rH   c           
      ó6  ‡ — ‰                       |j        |j        |j        t          d¦  «        z   ¦  «        }|j        rt          |d¦  «        ‚ˆ fd„|j        D ¦   «         }t          t          t          t          |d¦  «        ¦  «        |g ¦  «        ¦  «        S )Nr>   z?print statements with non-default destinations aren't supportedc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  )rŠ   Úvalr}   s     €rF   rŒ   z+StmtBuilder.build_Print.<locals>.<listcomp>4  s#   ø€ Ð<Ð<Ð<¨•
˜3 Ñ$Ô$Ð<Ð<Ð<rH   )rx   ry   rz   ru   Údestrl   Úvaluesr   r   r.   r   )r}   r  r$  r÷   s   `   rF   Úbuild_PrintzStmtBuilder.build_Print-  s”   ø€ à�NŠN˜4œ;¨¬¸¼Í3ÈwÉ<Ì<Ñ9WÑXÔXˆØŒ9ð 	Ý#ØÐTñô ð ð =Ð<Ð<Ð<°´Ð<Ñ<Ô<ˆÝ��c¥%¨¨7Ñ"3Ô"3Ñ4Ô4°d¸BÑ?Ô?Ñ@Ô@Ð@rH   c                 óŒ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |¦  «        S )NÚpass)rx   ry   rz   ru   r    r¸  s      rF   Ú
build_PasszStmtBuilder.build_Pass7  s3   € à�NŠN˜4œ;¨¬¸¼Í3ÈvÉ;Ì;Ñ9VÑWÔWˆÝ�A‰wŒwˆrH   c                 óŒ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |¦  «        S )NrT   )rx   ry   rz   ru   r   r¸  s      rF   Úbuild_BreakzStmtBuilder.build_Break<  s3   € à�NŠN˜4œ;¨¬¸¼Í3ÈwÉ<Ì<Ñ9WÑXÔXˆÝ�Q‰xŒxˆrH   c                 óŒ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |¦  «        S )NrU   )rx   ry   rz   ru   r   r¸  s      rF   Úbuild_ContinuezStmtBuilder.build_ContinueA  s;   € à�NŠNØŒK˜œ¨$¬/½CÀ
¹O¼OÑ*Kñ
ô 
ˆõ ˜‰{Œ{ÐrH   c                 óf  — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |¦  «        r6t
          st          d¦  «        ‚t          | |¦  «        }t          | |¦  «        S t          |t          | |j        ¦  «        t          | |j        ¦  «        ¦  «        S )NrN   z torch.jit._IgnoreContextManager requires installing Python library `astunparse`,                                    please install it in your Python environment)rx   ry   rz   ru   r  Ú_IS_ASTUNPARSE_INSTALLEDrú   r}  r’   r0   r�   rŽ   r–   r»   )r}   r  r$  r|  s       rF   Ú
build_WithzStmtBuilder.build_WithH  s£   € à�NŠN˜4œ;¨¬¸¼Í3ÈvÉ;Ì;Ñ9VÑWÔWˆå.¨tÑ4Ô4ð 	/Ý+ð Ý"ðQñô ð õ 6°c¸4Ñ@Ô@ˆJÝ˜c :Ñ.Ô.Ð.Ý�A• s¨D¬JÑ7Ô7½ÀSÈ$Ì)Ñ9TÔ9TÑUÔUÐUrH   N)!rg   rh   ri   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å  rj   rH   rF   r½   r½   ¨  s)  € € € € € àŒ�ØŒ�ØŒ�#ØŒ�ØŒ�ØŒ	�3ØŒ
�CØŒ
�CØŒ
�DØŒ
�DØŒ�ð€Mð ð4ð 4ñ „\ð4ð ð ð  ñ „\ð ð
 ð,ð ,ñ „\ð,ð2 ðOð Oñ „\ðOð
 ðVð Vñ „\ðVð ðð ñ „\ðð
 ð$ð $ñ „\ð$ð ð-ð -ñ „\ð-ð ðQð Qñ „\ðQð ð

ð 

ñ „\ð

ð ð
ð 
ñ „\ð
ð ðAð Añ „\ðAð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðVð Vñ „\ðVð Vð VrH   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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'„ ¦   «         Z0e$d(„ ¦   «         Z1e$d)„ ¦   «         Z2e$d*„ ¦   «         Z3e$d+„ ¦   «         Z4e$d,„ ¦   «         Z5e$d-„ ¦   «         Z6e$d.„ ¦   «         Z7e$d/„ ¦   «         Z8e$d0„ ¦   «         Z9e$d1„ ¦   «         Z:d2S )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                             d¦  «        Šˆfd„}|                     ¦   «         j        dz   } ||¦  «        t          j        v r|dz  } ||¦  «        t          j        v °|t          |j	        ¦  «        z   }|  
                    ||¦  «        }t          |t          ||j	        ¦  «        ¦  «        S )Nzutf-8c                 ó.   •— t          ‰|          ¦  «        S r@   )Úchr)ÚindexrÝ   s    €rF   Úget_charz-ExprBuilder.build_Attribute.<locals>.get_charˆ  s   ø€ Ý�v˜e”}Ñ%Ô%Ð%rH   r    )r'  r  rÝ   Úencoder¬   r–  ÚstringÚ
whitespaceru   r  Úmake_raw_ranger$   r   )r}   rA  Úbaser   Ú	start_posÚend_posÚ
name_rangerÝ   s          @rF   Úbuild_AttributezExprBuilder.build_Attribute�  sÙ   ø€ å˜#˜tœzÑ*Ô*ˆð ”×"Ò" 7Ñ+Ô+ˆð	&ð 	&ð 	&ð 	&ð 	&ð —J’J‘L”LÔ$ qÑ(ˆ	Øˆh�yÑ!Ô!¥VÔ%6Ð6Ð6Ø˜‰NˆIð ˆh�yÑ!Ô!¥VÔ%6Ð6Ð6à�c $¤)™nœnÑ,ˆØ×'Ò'¨	°7Ñ;Ô;ˆ
Ý�d�E *¨d¬iÑ8Ô8Ñ9Ô9Ð9rH   c           	      ó>  ‡ — t          ‰ |j        ¦  «        }ˆ fd„|j        D ¦   «         }t          |d¦  «        rB|j        r;t          ‰ |j        ¦  «        }|t          |                     ¦   «         |¦  «        gz  }g }|j        D ]ˆ}t          ‰ |j        ¦  «        }|j	        s"t          |                     ¦   «         d¦  «        ‚|                     t          t          |                     ¦   «         |j	        ¦  «        |¦  «        ¦  «         Œ‰t          |||¦  «        S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  )rŠ   rG  r}   s     €rF   rŒ   z*ExprBuilder.build_Call.<locals>.<listcomp>•  s#   ø€ Ð@Ð@Ð@¨F•
˜3 Ñ'Ô'Ð@Ð@Ð@rH   Ústarargsz&keyword-arg expansion is not supported)r'  rë   r÷   r²  r  r&   r¬   rl  r  rø   rl   r«   r	   r   r   )r}   rA  rë   r÷   Ústararg_exprÚkwargsÚkwÚkw_exprs   `       rF   Ú
build_CallzExprBuilder.build_Call’  s  ø€ å˜#˜tœyÑ)Ô)ˆØ@Ð@Ð@Ð@°d´iÐ@Ñ@Ô@ˆÝ�4˜Ñ$Ô$ð 	B¨¬ð 	BÝ% c¨4¬=Ñ9Ô9ˆLØ•W˜\×/Ò/Ñ1Ô1°<Ñ@Ô@ÐAÑAˆDØˆØ”-ð 	Nð 	NˆBÝ   b¤hÑ/Ô/ˆGà”6ð Ý'Ø—M’M‘O”OÐ%Mñô ð ð �MŠM�)¥E¨'¯-ª-©/¬/¸2¼6Ñ$BÔ$BÀGÑLÔLÑMÔMÐMÐMÝ�T˜4 Ñ(Ô(Ð(rH   c                 ór   — |                       |j        |j        |j        dz   ¦  «        }t          |¦  «        S )Né   )rx   ry   rz   r   ©r}   rA  r$  s      rF   Úbuild_EllipsiszExprBuilder.build_Ellipsis¤  s4   € à�NŠNØŒK˜œ¨$¬/¸AÑ*=ñ
ô 
ˆõ �A‰wŒwˆrH   c                 óú  — |                       |j        |j        |j        t          |j        ¦  «        z   ¦  «        }|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)rx   ry   rz   ru   r  rA   rB   rl   r+   r   r   r   r.   r   r  s      rF   Ú
build_NamezExprBuilder.build_Name«  sä   € à�NŠN˜4œ;¨¬¸¼Í3ÈtÌwÉ<Ì<Ñ9WÑXÔXˆØŒ7×ÒÕ.Ñ/Ô/ð 	Ý#Øð$Ý&6ñ7ñô ð ð
 Œ7�fÒÐÝ˜q‘>”>Ð!ØŒW˜ÒÐÝ ‘?”?Ð"ØŒW˜ÒÐÝ˜q‘>”>Ð!ØŒW˜
Ò"Ð"Ý˜‘7”7ˆNÝ•5˜˜DœGÑ$Ô$Ñ%Ô%Ð%rH   c           
      ó¤  — |                       |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: )rx   ry   rz   ru   Ústrr  r+   r   r   r  r   r³  r  s      rF   Úbuild_NameConstantzExprBuilder.build_NameConstant¾  s³   € à�NŠNØŒK˜œ¨$¬/½CÅÀDÄJÁÄÑ<PÔ<PÑ*Pñ
ô 
ˆð Œ:˜ÐÐÝ˜q‘>”>Ð!ØŒZ˜5Ð Ð Ý ‘?”?Ð"ØŒZÐÝ˜q‘>”>Ð!ØŒZ�8Ò#Ð#Ý˜‘7”7ˆNåÐ@Å3ÀtÄzÁ?Ä?ÑRÑSÔSÐSrH   c                 óp  — t          | |j        ¦  «        }t          | |j        ¦  «        }t          |j        ¦  «        }|t
          j        k    r[| j        sT|                      | 	                    ¦   «         j
        | 	                    ¦   «         j        ¦  «        }t          |d¦  «        ‚t          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Úrightrt   rÇ  r¼   ré  Úuses_true_divisionr  r¬   r–  r•  rY   rò  Ú	binop_maprw   rl   rg   r   )r}   rA  r®  r­  rÇ  Ú	err_rangerÊ  s          rF   Úbuild_BinOpzExprBuilder.build_BinOpÎ  s  € å˜˜dœiÑ(Ô(ˆÝ˜˜dœjÑ)Ô)ˆÝ�$”'‰]Œ]ˆà•”Š=ˆ= Ô!7ˆ=Ø×*Ò*¨3¯9ª9©;¬;¬?¸C¿IºI¹K¼KÔ<MÑNÔNˆIÝØð;ñô ð õ Ô(×,Ò,¨RÑ0Ô0ˆØÐØ×*Ò*¨3¯9ª9©;¬;¬?¸C¿IºI¹K¼KÔ<MÑNÔNˆIÝ#ØÐ:¸R¼[ÑHñô ð õ �X˜s CÑ(Ô(Ð(rH   c                 óx  — t          | |j        ¦  «        }t          |j        ¦  «        }t          j                             |¦  «        }|€*t          |                     ¦   «         d|j	        z   ¦  «        ‚|  
                    |j        |j        |j        t          |¦  «        z   ¦  «        }t          |||¦  «        S )Nzunsupported unary operator: )r'  Úoperandrt   rÇ  rò  Úunop_maprw   rl   r¬   rg   rx   ry   rz   ru   r-   )r}   rA  Úsub_exprrÇ  rÊ  r$  s         rF   Úbuild_UnaryOpzExprBuilder.build_UnaryOpä  s¤   € å˜c 4¤<Ñ0Ô0ˆÝ�$”'‰]Œ]ˆÝÔ'×+Ò+¨BÑ/Ô/ˆØÐÝ#Ø—
’
‘”Ð<¸r¼{ÑJñô ð ð �NŠNØŒK˜œ¨$¬/½CÀ¹M¼MÑ*Iñ
ô 
ˆõ �q˜( HÑ-Ô-Ð-rH   c                 óF  ‡ — t          |j        ¦  «        dk     r1t          dt          t          |j        ¦  «        ¦  «        z   ¦  «        ‚ˆ fd„|j        D ¦   «         }t	          |j        ¦  «        }t          j                             |¦  «        }|€h‰  	                    |d          
                    ¦   «         j        |d          
                    ¦   «         j        ¦  «        }t          |d|j        z   ¦  «        ‚|d         }|dd …         D ]}t          |||¦  «        }Œ|S )Né   z.expected at least 2 values in BoolOp, but got c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  )rŠ   r)  r}   s     €rF   rŒ   z,ExprBuilder.build_BoolOp.<locals>.<listcomp>ø  s#   ø€ ÐKÐKÐK°8•Z  XÑ.Ô.ÐKÐKÐKrH   r   r    zunsupported boolean operator: )ru   rÚ  ÚAssertionErrorr  rt   rÇ  rò  Ú
boolop_maprw   r  r¬   r–  r•  rl   rg   r   )r}   rA  Ú	sub_exprsrÇ  rÊ  r$  r®  r­  s   `       rF   Úbuild_BoolOpzExprBuilder.build_BoolOpò  s&  ø€ åˆtŒ{ÑÔ˜aÒÐÝ Ø@Å3ÅsÈ4Ì;ÑGWÔGWÑCXÔCXÑXñô ð ð LÐKÐKÐK¸t¼{ÐKÑKÔKˆ	Ý�$”'‰]Œ]ˆÝÔ)×-Ò-¨bÑ1Ô1ˆØÐØ×*Ò*Ø˜!”×"Ò"Ñ$Ô$Ô(¨)°A¬,×*<Ò*<Ñ*>Ô*>Ô*Dñô ˆIõ $ØÐ;¸b¼kÑIñô ð ð ˜ŒlˆØ˜Q˜R˜R”=ð 	,ð 	,ˆCÝ˜ # sÑ+Ô+ˆCˆCØˆ
rH   c                 ó–   — t          t          | |j        ¦  «        t          | |j        ¦  «        t          | |j        ¦  «        ¦  «        S r@   )r*   r'  rÁ  r»   rÎ  ©r}   rA  s     rF   Úbuild_IfExpzExprBuilder.build_IfExp  sA   € åÝ�s˜DœIÑ&Ô&Ý�s˜DœIÑ&Ô&Ý�s˜DœKÑ(Ô(ñ
ô 
ð 	
rH   c                 ót  ‡ — ˆ fd„|j         gt          |j        ¦  «        z   D ¦   «         }d }t          ||j        |dd …         ¦  «        D ]ì\  }}}t          |¦  «        }t          j                             |¦  «        }‰  	                    | 
                    ¦   «         j        | 
                    ¦   «         j        ¦  «        }	|€t          |	d|j        z   ¦  «        ‚|t          j        k    r#t#          d||¦  «        }
t%          |	d|
¦  «        }nt#          |||¦  «        }|€|}ŒÛt#          d||¦  «        }Œí|S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  ©rŠ   Úer}   s     €rF   rŒ   z-ExprBuilder.build_Compare.<locals>.<listcomp>  s#   ø€ ÐUÐUÐU¨1•J˜s AÑ&Ô&ÐUÐUÐUrH   r    z!unsupported comparison operator: rû  rô  rö  )r   r�   ÚcomparatorsÚzipÚopsrt   rò  Ú	cmpop_maprw   r  r¬   r–  r•  rl   rg   r¼   ÚNotInr   r-   )r}   rA  ÚoperandsrE  r®  Úop_r­  rÇ  rÊ  r$  Úin_exprÚcmp_exprs   `           rF   Úbuild_ComparezExprBuilder.build_Compare  s8  ø€ àUÐUÐUÐU°´°½dÀ4ÔCSÑ>TÔ>TÑ0TÐUÑUÔUˆØˆÝ  ¨4¬8°X¸a¸b¸b´\ÑBÔBð 	8ð 	8‰MˆC��cÝ�c‘”ˆBÝ"Ô,×0Ò0°Ñ4Ô4ˆHØ×"Ò" 3§9¢9¡;¤;¤?°C·I²I±K´KÔ4EÑFÔFˆAØÐÝ'ØÐ:¸R¼[ÑHñô ð ð •S”YŠˆõ    c¨3Ñ/Ô/�Ý" 1 e¨WÑ5Ô5��å  ¨3°Ñ4Ô4�àˆ~Ø!��å˜u f¨hÑ7Ô7��ØˆrH   c                 ó  ‡ ‡	‡
— d„ Š
d„ Š	ˆ	ˆ
fd„}t          ‰ |j        ¦  «        }t          |j        ¦  «        }|t          j        u rÞt          |j        j        t          j        ¦  «        r‘ˆ fd„|j        j        j        D ¦   «         }|sb‰  	                    |j
        |j        j        j        |j        j        j        dz   ¦  «        }t          |g ¦  «        }|                     |¦  «         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 ]`}t          |t          j        ¦  «        r!|                      ‰
‰ ||¦  «        ¦  «         Œ=|                     t          ‰ |¦  «        ¦  «         Œa|sX‰  	                    |j
        |j        j        |j        j        dz   ¦  «        }t          |g ¦  «        }|                     |¦  «         t          ||¦  «        S t          |t          ‰ |j        ¦  «        g¦  «        S )Nc                 óþ   — |j         �t          | |j         ¦  «        nd }|j        �t          | |j        ¦  «        nd }|j        �t          | |j        ¦  «        nd }t	          |                     ¦   «         |||¦  «        S r@   )Úlowerr'  ÚupperÚstepr%   r¬   )r}   r  Ú
slice_exprrE  rF  rG  s         rF   Úbuild_SliceExprz4ExprBuilder.build_Subscript.<locals>.build_SliceExpr,  s–   € ð Ô#Ð/õ ˜3 
Ô 0Ñ1Ô1Ð1àð ð Ô#Ð/õ ˜3 
Ô 0Ñ1Ô1Ð1àð ð ”?Ð.õ ˜3 
¤Ñ0Ô0Ð0àð õ
 ˜TŸZšZ™\œ\¨5°%¸Ñ>Ô>Ð>rH   c                 ó®   — t          |j        t          j        ¦  «        r"t	          |                     ¦   «         d¦  «        ‚t          | |j        ¦  «        S )Nz9slicing multiple dimensions with tuples not supported yet)r™   r  r¼   ÚTuplerl   r¬   r'  )r}   r  Ú
index_exprs      rF   Úbuild_Indexz0ExprBuilder.build_Subscript.<locals>.build_Index>  sN   € Ý˜*Ô*­C¬IÑ6Ô6ð Ý'Ø—J’J‘L”LØOñô ð õ ˜c :Ô#3Ñ4Ô4Ð4rH   c                 óæ  •— g }|j         D ]å}t          |¦  «        }|t          j        u r!|                      ‰| ||¦  «        ¦  «         Œ@|t          j        u r!|                      ‰| ||¦  «        ¦  «         Œo|t          j        u rC|j        t          u r5|                     t          | 
                    ¦   «         ¦  «        ¦  «         ŒÀt          | 
                    ¦   «         d|› d�¦  «        ‚|S )Nz!slicing multiple dimensions with z not supported)Údimsrt   r¼   ÚIndexr«   ÚSliceÚConstantr  r  r   r¬   rl   )r}   r  Úextslicer0  rA  Úsub_typerM  rI  s         €€rF   Úbuild_ExtSlicez3ExprBuilder.build_Subscript.<locals>.build_ExtSliceF  sû   ø€ ØˆIØ œð ð �Ý ™:œ:�Ø�sœyÐ(Ð(Ø×$Ò$ [ [°°d¸DÑ%AÔ%AÑBÔBÐBÐBØ¥¤Ð*Ð*Ø×$Ò$ _ _°S¸$ÀÑ%EÔ%EÑFÔFÐFÐFØ¥¤Ð-Ð-°$´*ÅÐ2HÐ2HØ×$Ò$¥T¨$¯*ª*©,¬,Ñ%7Ô%7Ñ8Ô8Ð8Ð8å+ØŸ
š
™œØT¸HÐTÐTÐTñô ð ð ÐrH   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  )rŠ   rL  r}   s     €rF   rŒ   z/ExprBuilder.build_Subscript.<locals>.<listcomp>]  s0   ø€ ð ð ð Ø4>•J˜s JÑ/Ô/ðð ð rH   r,  )r'  r  rt   Úslicer¼   rP  r™   rK  Úeltsrx   ry   rz   r,   r«   r)   rQ  ÚExtSlice)r}   rA  rU  r  rT  Úindicesr$  ÚtuprL  rM  rI  s   `        @@rF   Úbuild_SubscriptzExprBuilder.build_Subscript*  s¯  øøø€ ð	?ð 	?ð 	?ð$	5ð 	5ð 	5ð	ð 	ð 	ð 	ð 	ð 	õ" ˜#˜tœzÑ*Ô*ˆÝ˜œ
Ñ#Ô#ˆØ•s”yÐ Ð Ý˜$œ*Ô*­C¬IÑ6Ô6ð Lðð ð ð ØBFÄ*ÔBRÔBWðñ ô �ð ð 
(ð ŸšØœØœ
Ô(Ô3Øœ
Ô(Ô3°aÑ7ñô �Aõ
 ' q¨"Ñ-Ô-�CØ—N’N 3Ñ'Ô'Ð'Ý   wÑ/Ô/Ð/å  ­
°3¸¼
Ô8HÑ(IÔ(IÐ'JÑKÔKÐKØ�œÐ"Ð"Ý˜T O O°C¸¸t¼zÑ$JÔ$JÐ#KÑLÔLÐLØ�œÐ%Ð%Ý˜T > >°#°t¸T¼ZÑ#HÔ#HÑIÔIÐIà�3œ9Ð$Ð$à�Ø"&¤*¤/ð Dð D�JÝ! *­c¬iÑ8Ô8ð DØŸš  °s¸DÀ*Ñ'MÔ'MÑNÔNÐNÐNàŸš¥z°#°zÑ'BÔ'BÑCÔCÐCÐCàð (àŸšØœ T¤ZÔ%:¸D¼JÔ<QÐTUÑ<Uñô �Aõ ' q¨"Ñ-Ô-�CØ—N’N 3Ñ'Ô'Ð'Ý   wÑ/Ô/Ð/Ý˜T¥J¨s°D´JÑ$?Ô$?Ð#@ÑAÔAÐArH   c                 ó”   ‡ — t          ‰                      |j        |j        |j        dz   ¦  «        ˆ fd„|j        D ¦   «         ¦  «        S )Nr    c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  r7  s     €rF   rŒ   z*ExprBuilder.build_List.<locals>.<listcomp>Š  ó#   ø€ Ð3Ð3Ð3 A�Z˜˜QÑÔÐ3Ð3Ð3rH   )r   rx   ry   rz   rX  r3  s   ` rF   Ú
build_ListzExprBuilder.build_List†  sL   ø€ åØ�NŠN˜4œ;¨¬¸¼È1Ñ9LÑMÔMØ3Ð3Ð3Ð3¨¬Ð3Ñ3Ô3ñ
ô 
ð 	
rH   c                 ó”   ‡ — t          ‰                      |j        |j        |j        dz   ¦  «        ˆ fd„|j        D ¦   «         ¦  «        S )Nr    c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  r7  s     €rF   rŒ   z+ExprBuilder.build_Tuple.<locals>.<listcomp>‘  r_  rH   )r,   rx   ry   rz   rX  r3  s   ` rF   Úbuild_TuplezExprBuilder.build_Tuple�  sL   ø€ åØ�NŠN˜4œ;¨¬¸¼È1Ñ9LÑMÔMØ3Ð3Ð3Ð3¨¬Ð3Ñ3Ô3ñ
ô 
ð 	
rH   c                 ó  ‡ — ‰                       |j        |j        |j        dz   ¦  «        }|j        r|j        d         st	          |d¦  «        ‚t          |ˆ fd„|j        D ¦   «         ˆ fd„|j        D ¦   «         ¦  «        S )Nr    r   z1Dict expansion (e.g. `{**dict}`) is not supportedc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  r7  s     €rF   rŒ   z*ExprBuilder.build_Dict.<locals>.<listcomp>�  r_  rH   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rj   rª  r7  s     €rF   rŒ   z*ExprBuilder.build_Dict.<locals>.<listcomp>ž  s#   ø€ Ð5Ð5Ð5 A�Z˜˜QÑÔÐ5Ð5Ð5rH   )rx   ry   rz   Úkeysrl   r   rÚ  )r}   rA  r¬   s   `  rF   Ú
build_DictzExprBuilder.build_Dict”  s›   ø€ à—’˜tœ{¨D¬O¸T¼_ÈqÑ=PÑQÔQˆØŒ9ð 	˜TœY qœ\ð 	Ý#ØÐJñô ð õ ØØ3Ð3Ð3Ð3¨¬Ð3Ñ3Ô3Ø5Ð5Ð5Ð5¨¬Ð5Ñ5Ô5ñ
ô 
ð 	
rH   c                 ó¶   — t          |j        ¦  «        }|                      |j        |j        |j        t          |¦  «        z   ¦  «        }t          ||¦  «        S r@   )r  r  rx   ry   rz   ru   r   ©r}   rA  r  r$  s       rF   Ú	build_NumzExprBuilder.build_Num¡  sC   € å�D”J‘”ˆØ�NŠN˜4œ;¨¬¸¼Í3ÈuÉ:Ì:Ñ9UÑVÔVˆÝ�Q˜‰ŒÐrH   c           
      ón  — |j         }|�t          |t          ¦  «        rt                               | |¦  «        S t          |t
          t          t          f¦  «        rt                               | |¦  «        S t          |t          ¦  «        rt           
                    | |¦  «        S t          |t          t          ¦  «        ¦  «        rt                               | |¦  «        S |                      |j        |j        |j        t#          t          |¦  «        ¦  «        z   ¦  «        }t%          |d¦  «        ‚)Nz Unknown Constant expression type)r  r™   r2  rò  r  ÚintÚfloatÚcomplexrk  r  Ú	build_Strrt   r  r  rx   ry   rz   ru   rY   )r}   rA  r  Úerror_ranges       rF   Úbuild_ConstantzExprBuilder.build_Constant§  s   € à”
ˆØˆ=�J u­dÑ3Ô3ˆ=õ ×1Ò1°#°tÑ<Ô<Ð<Ý�e�c¥5­'Ð2Ñ3Ô3ð 
	QÝ×(Ò(¨¨dÑ3Ô3Ð3Ý˜�sÑ#Ô#ð 	QÝ×(Ò(¨¨dÑ3Ô3Ð3Ý˜�t¥H™~œ~Ñ.Ô.ð 	QÝ×-Ò-¨c°4Ñ8Ô8Ð8àŸ.š.Ø”˜Tœ_¨d¬oÅÅCÈÁJÄJÁÄÑ.Oñô ˆKõ   Ð-OÑPÔPÐPrH   c                 ó¼   — t          |j        ¦  «        }|                      |j        |j        |j        t          |¦  «        z   dz   ¦  «        }t          ||¦  «        S ©Nr    )r  r  rx   ry   rz   ru   r(   rj  s       rF   rp  zExprBuilder.build_Strº  sQ   € å�D”J‘”ˆØ�NŠNØŒK˜œ¨$¬/½CÀ¹J¼JÑ*FÈÑ*Jñ
ô 
ˆõ ˜Q Ñ&Ô&Ð&rH   c           	      ó”  — d}g }|j         D ]Ù}|                      |j        |j        |j        dz   ¦  «        }t	          |t
          j        ¦  «        r`|j        dk    rt          |d¦  «        ‚|j	        �t          |d¦  «        ‚|dz  }| 
                    t          | |j        ¦  «        ¦  «         Œ¥t	          |t
          j        ¦  «        r||j        z  }ŒÊt          |d¦  «        ‚|                      |j        |j        |j        dz   ¦  «        }t          t          t!          ||¦  «        t#          |d¦  «        ¦  «        |g ¦  «        S )	Nrq   r    rÅ  z%Don't support conversion in JoinedStrz%Don't support formatting in JoinedStrz{}zUnsupported value in JoinedStrÚformat)rÚ  rx   ry   rz   r™   r¼   ÚFormattedValueÚ
conversionrl   Úformat_specr«   r'  r  rR  r   r$   r(   r   )r}   rA  r“   r÷   r  r$  s         rF   Úbuild_JoinedStrzExprBuilder.build_JoinedStrÂ  s?  € àˆØˆØ”[ð 	Mð 	MˆEØ—’˜uœ|¨UÔ-=¸uÔ?OÐRSÑ?SÑTÔTˆAÝ˜%¥Ô!3Ñ4Ô4ð 
MØÔ# rÒ)Ð)Ý+¨AÐ/VÑWÔWÐWØÔ$Ð0Ý+¨AÐ/VÑWÔWÐWØ�T‘	�Ø—’�J s¨E¬KÑ8Ô8Ñ9Ô9Ð9Ð9Ý˜E¥3¤<Ñ0Ô0ð MØ�U”[Ñ ��å'¨Ð+KÑLÔLÐLà�NŠN˜4œ;¨¬¸¼È1Ñ9LÑMÔMˆÝ•V�M¨!¨QÑ/Ô/µ°q¸(Ñ1CÔ1CÑDÔDÀdÈBÑOÔOÐOrH   c                 óÒ  — |                       |j        |j        |j        ¦  «        }t          |j        ¦  «        dk    rt          |d¦  «        ‚t          |j        d         j        ¦  «        dk    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)rx   ry   rz   ru   Ú
generatorsrl   Úifsr'  Úeltr°  rÑ  r   )r}   r  r$  Úelt_exprÚtarget_exprÚ	iter_exprs         rF   Úbuild_ListCompzExprBuilder.build_ListComp×  sÈ   € à�NŠN˜4œ;¨¬¸¼ÑIÔIˆÝˆtŒÑÔ 1Ò$Ð$Ý# AÐ'WÑXÔXÐXåˆtŒ˜qÔ!Ô%Ñ&Ô&¨!Ò+Ð+Ý# AÐ'PÑQÔQÐQå˜c 4¤8Ñ,Ô,ˆÝ   d¤o°aÔ&8Ô&?Ñ@Ô@ˆÝ˜s D¤O°AÔ$6Ô$;Ñ<Ô<ˆ	å˜˜8 [°)Ñ<Ô<Ð<rH   c                 ó8   — t                                | |¦  «        S r@   )rò  rƒ  )r}   r  s     rF   Úbuild_GeneratorExpzExprBuilder.build_GeneratorExpæ  s   € õ ×)Ò)¨#¨tÑ4Ô4Ð4rH   c                 óþ  — |                       |j        |j        |j        ¦  «        }t          |j        ¦  «        dk    rt          |d¦  «        ‚t          |j        d         j        ¦  «        dk    rt          |d¦  «        ‚t          | |j        ¦  «        }t          | |j	        ¦  «        }t          | |j        d         j
        ¦  «        }t          | |j        d         j        ¦  «        }t          |||||¦  «        S r|  )rx   ry   rz   ru   r}  rl   r~  r'  Úkeyr  r°  rÑ  r   )r}   r  r$  Úkey_exprÚ
value_exprr�  r‚  s          rF   Úbuild_DictCompzExprBuilder.build_DictCompë  sÛ   € à�NŠN˜4œ;¨¬¸¼ÑIÔIˆÝˆtŒÑÔ 1Ò$Ð$Ý# AÐ'WÑXÔXÐXåˆtŒ˜qÔ!Ô%Ñ&Ô&¨!Ò+Ð+Ý# AÐ'PÑQÔQÐQå˜c 4¤8Ñ,Ô,ˆÝ  T¤ZÑ0Ô0ˆ
Ý   d¤o°aÔ&8Ô&?Ñ@Ô@ˆÝ˜s D¤O°AÔ$6Ô$;Ñ<Ô<ˆ	å˜˜8 Z°¸iÑHÔHÐHrH   c                 óš   — |                       |j        |j        |j        dz   ¦  «        }t          |t	          | |j        ¦  «        ¦  «        S rt  )rx   ry   rz   r&   r'  r  r  s      rF   Úbuild_StarredzExprBuilder.build_Starredû  s>   € à�NŠN˜4œ;¨¬¸¼È1Ñ9LÑMÔMˆÝ�q�* S¨$¬*Ñ5Ô5Ñ6Ô6Ð6rH   N);rg   rh   ri   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*  r1  r4  rB  r\  r`  rc  rh  rk  rr  rp  rz  rƒ  r…  rŠ  rŒ  rj   rH   rF   rò  rò  W  sf  € € € € € àŒ�ØŒ�ØŒ�#ØŒ�ØŒ�ØŒ�ØŒ�dØŒ
�CØŒ
�CØŒ	�3ØŒ
�DØŒ
�Dð€Ið !€IˆcŒkÑð 	Œ�ØŒ�#ØŒ
�Cð€Hð 	Œ�ØŒ�ð€Jð 	Œ�ØŒ	�4ØŒ�ØŒ�ØŒ�ØŒ�ØŒ�ØŒ	�8ØŒ�ØŒ	�8ð€Ið ð:ð :ñ „\ð:ð  ð)ð )ñ „\ð)ð" ðð ñ „\ðð ð&ð &ñ „\ð&ð$ ðTð Tñ „\ðTð ð)ð )ñ „\ð)ð* ð.ð .ñ „\ð.ð ðð ñ „\ðð( ð
ð 
ñ „\ð
ð ðð ñ „\ðð4 ðYBð YBñ „\ðYBðv ð
ð 
ñ „\ð
ð ð
ð 
ñ „\ð
ð ð

ð 

ñ „\ð

ð ðð ñ „\ðð
 ðQð Qñ „\ðQð$ ð'ð 'ñ „\ð'ð ðPð Pñ „\ðPð( ð=ð =ñ „\ð=ð ð5ð 5ñ „\ð5ð ðIð Iñ „\ðIð ð7ð 7ñ „\ð7ð 7ð 7rH   rò  ©r   r   c                 ó¶   — | j         d |…                              |¦  «        }|                      ||d         z   |t          |¦  «        z   |d         z   ¦  «        S )Nr   r    )rÝ   Úrindexr  ru   )r}   ÚposÚsubstrrÆ  Únew_poss        rF   rÉ  rÉ    sT   € ØŒj˜˜#˜Ô×%Ò% fÑ-Ô-€GØ×Ò˜g¨°¬
Ñ2°G½cÀ&¹k¼kÑ4IÈGÐTUÌJÑ4VÑWÔWÐWrH   )NF)NNr@   )r�  )~r¼   ro  rØ   r¥   rW  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ä  rm  ÚImportErrorrB   rC   ÚsetÚascii_lowercaseÚascii_uppercaseÚdigitsÚ_identifier_charsrG   rÎ   ÚImportÚ
ImportFromÚGlobalr{   rv   ÚupdateÚAsyncFunctionDefÚAsyncForÚ	AsyncWithÚTryÚNonlocalr¿   Ú	ExceptionrY   rl   rp   r†   r�   r–   r´   rÂ   rî   r©   r  r  rß   r  r>  r&  r:  r}  rˆ  r�  r‘  r½   rò  r'  r’   r‰   rÉ  rj   rH   rF   ú<module>r»     sª  ðà 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð ð-ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð\ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mð !Ð ð	ØÐÐÐà#ÐÐøØð 	ð 	ð 	Ø€Dð	øøøð Ð Ø�)€Ø�C˜Ô.°Ô1GÑGÈ&Ì-ÑWÑXÔXÐ ðHð Hð Hð
 „OÐ+Ø„Gˆ[Ø„JÐ Ø„LÐ%Ø„HÐØ„IÐ!Ø„J�Ø„JÐ#Ø„NÐ'Ø„JÐ"Ø„IÐ!Ø„LÐ'ðÐ ð  „O�UØ„GˆUØ„J�Ø„L�'Ø„HˆfØ„IˆwØ„J�Ø„J�Ø„N�FØ„J�Ø„IˆwØ„L�*ðÐ ð × Ò àÔÐ:ØŒÐ'ØŒÐ.ØŒ�ØŒÐ*ðñô ð ð × Ò àÔ˜kØŒ�kØŒ�|ØŒ�ØŒ�jðñô ð ð × Ò àŒÐ.ðñô ð ð
<ð 
<ð 
<ð 
<ð 
<�Iñ 
<ô 
<ð 
<ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð,ð ,ð ,ð ,ð ,Ð,ñ ,ô ,ð ,ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ðð ð ð
%ð %ð %ð
ð ð ðDð ð ð$GXð GXð GXðT?ð ?ð ?ð ?ðFð ð ð$!ð !ð !ð !ð !ñ !ô !ð !ðð ð ðAð Að Að Að&2ð ð1ð 1ð 1ð 1ðh>ð >ð >ð >ð[ð [ð [ð|ð ð ð,ð ð ð:
ð 
ð 
ð 
ð 
�gñ 
ô 
ð 
ð lVð lVð lVð lVð lV�'ñ lVô lVð lVð^g7ð g7ð g7ð g7ð g7�'ñ g7ô g7ð g7ðT ˆ[‰]Œ]€
Øˆ[‰]Œ]€
Ø �Ñ"Ô"€ðXð Xð Xð Xð Xð Xs   Â8B? Â?CÃC