§
    ž²Åj–×  ã                   ó„  — U d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
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mZmZmZmZmZmZmZmZmZmZmZ ddlZddlZddlmc m Z! ddl"m#Z# ddl$m#Z%m&Z' ddl(m)Z)m*Z*m+Z+ ddl,m&Z& e	j-        dk    Z.ee/         e0d	<   e	j-        d
k    Z1ee/         e0d<   eeeedf         f         e0d<   e	j-        d
k    rej2        Z3ndZ3ee0d<   	 ddl4Z4e4j5        Z5n# e6$ r ddl7Z7e7j5        Z5Y nw xY w ej8        ¦   «         Z9de0d<   dZ:de/fd„Z; G d„ d¦  «        Z< e<¦   «         Z= e>dd¦  «        D ]Z?e= e@¦   «         de?› �<   Œde/fd„ZAdgdeBfd„ZC G d„ d¦  «        ZD eD¦   «         ZEd„ ZFdhd eGfd!„ZHd"„ ZId#„ ZJde/fd$„ZKdeeB         fd%„ZLd&„ ZMd'„ ZNd(„ ZOd)„ ZP G d*„ d+¦  «        ZQd,„ ZRd-„ ZS G d.„ d/ejT        ¦  «        ZUdid1„ZVd2„ ZWd3„ ZXd4„ ZYde/fd5„ZZde/fd6„Z[de/fd7„Z\de/fd8„Z]d9„ Z^d:„ Z_djd;„Z`i aaeeBee         f         e0d<<   d=Zbd>„ Zcd?„ Zdd@„ ZedA„ ZfdjdB„ZgdeeBeGf         fdC„Zhi aieeBeeBee         f         f         e0dD<   i ZjeeeBeBf         eGf         e0dE<   dF„ ZkdG„ Zlde/fdH„Zmde/fdI„Znde/fdJ„ZodK„ ZpdL„ Zqde/fdM„Zrde/fdN„Zsejt        ju         v                    ¦   «         rddOlwmxZx ddPlmyZy de/fdQ„Zzde/fdR„Z{nde/fdS„Z{dT„ Z|	 	 dkdUeej}        j~        j                 fdV„Z€dWeBdXeeB         dYeedf         fdZ„Z�ej‚        d[„ ¦   «         Zƒdjd\„Z„de/fd]„Z…djd^„Z†djd_„Z‡djd`„Zˆde/fda„Z‰de/fdb„ZŠ G dc„ ddej‹        ¦  «        ZŒde„ Z�deeB         fdf„ZŽe	j-        d
k    rV eWej�        j�        ¦  «          eWej�        j‘        ¦  «          eWej�        j’        ¦  «          eWej�        j“        ¦  «         dS dS )lzº
The weak_script annotation needs to be here instead of inside torch/jit/ so it
can be used in other places in torch/ (namely torch.nn) without running into
circular dependency problems
é    N)ÚAnyÚCallableÚDictÚFinalÚ
ForwardRefÚget_argsÚ
get_originÚListÚOptionalÚTupleÚTypeÚUnion)Ú_Await)r   ÚFuture)Ú
fake_rangeÚget_source_lines_and_fileÚ	parse_def)r   )é   é	   ÚIS_PY39_PLUS©r   é
   ÚIS_PY310_PLUS.ÚBuiltinUnionType© ÚLockTypez8weakref.WeakKeyDictionary[Callable, Dict[str, Callable]]Úboolean_dispatchedÚ__torch_jit_dataclassÚreturnc                 ó¤   — t          | d¦  «        o@| j        dv o7t          | ¦  «        t          u p!t	          | t          t          ¦  «        ¦  «        S )NÚ
__module__>   ÚtypingÚtyping_extensions)Úhasattrr!   r	   r   Ú
isinstanceÚtype©Úanns    úDC:\Projects\Historical\venv\Lib\site-packages\torch/_jit_internal.pyÚis_finalr*   R   sN   € å��\Ñ"Ô"ð 	GØŒNÐ=Ð=ð	Gå˜‰_Œ_¥Ð%ÐE­°C½½e¹¼Ñ)EÔ)Eðó    c                   ó   — e Zd Zd„ ZdS )ÚBroadcastingListClsc                 ó   — d S ©Nr   )ÚselfÚtypess     r)   Ú__getitem__zBroadcastingListCls.__getitem__\   s   € Øˆr+   N)Ú__name__r!   Ú__qualname__r2   r   r+   r)   r-   r-   [   s#   € € € € € ðð ð ð ð r+   r-   é   é   ÚBroadcastingListc                  ó   — dS )aö  
    Function that returns True when in compilation and False otherwise. This
    is useful especially with the @unused decorator to leave code in your
    model that is not yet TorchScript compatible.
    .. testcode::

        import torch

        @torch.jit.unused
        def unsupported_linear_op(x):
            return x

        def linear(x):
            if torch.jit.is_scripting():
                return torch.linear(x)
            else:
                return unsupported_linear_op(x)
    Fr   r   r+   r)   Úis_scriptingr9   g   s	   € ð& ˆ5r+   Tc                 óV  — t          | d¦  «        r| j        S t          | t          j        j        ¦  «        r| j        S t          | dd ¦  «        r| j        }n1t          | t          j
        ¦  «        r| j        }nt          d¦  «        ‚|dk    rd}| j        }|dk    r| j        S |€t          d|› d�¦  «        ‚t          j        |¦  «        r,|                     d	d
¦  «        }|                     dd
¦  «        }|r|dk    rd}nd|z   }d|v rt          d|› d|› d�¦  «        ‚|dz   |z   S )NÚ_jit_override_qualnamer3   z)Could not get name of python class objectz<lambda>Ú_lambdaztorch._classesz(Could not get qualified name for class 'z': __module__ can't be None.ú<Ú_ú>Ú__main__Ú	__torch__z
__torch__.ú.z': 'z' is not a valid identifier)r$   r;   r%   ÚtorchÚ_CÚScriptFunctionÚqualified_nameÚgetattrr3   ÚenumÚEnumÚnameÚRuntimeErrorr!   Úpackage_manglingÚ
is_mangledÚreplace)ÚobjÚmangle_namerJ   Úmodule_names       r)   Ú_qualified_namerR   ~   s   € õ ˆsÐ,Ñ-Ô-ð *ØÔ)Ð)å�#•u”xÔ.Ñ/Ô/ð "ØÔ!Ð!åˆs�J Ñ%Ô%ð HØŒ|ˆˆå	�C�œÑ	#Ô	#ð HØŒxˆˆåÐFÑGÔGÐGàˆzÒÐØˆà”.€Kð Ð&Ò&Ð&ØÔ!Ð!ð ÐÝð(°tð (ð (ð (ñ
ô 
ð 	
õ Ô" ;Ñ/Ô/ð 4Ø!×)Ò)¨#¨sÑ3Ô3ˆØ!×)Ò)¨#¨sÑ3Ô3ˆð ð 5à˜*Ò$Ð$Ø%ˆKˆKð '¨Ñ4ˆKà
ˆd€{€{Ýð2°tð 2ð 2Øð2ð 2ð 2ñ
ô 
ð 	
ð
 ˜Ñ˜tÑ#Ð#r+   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚSourceLoaderc                 ó   — i | _         d S r/   ©Úcontent©r0   s    r)   Ú__init__zSourceLoader.__init__Å   s   € ØˆŒˆˆr+   c                 ó   — || j         |<   d S r/   rV   )r0   ÚfnÚsources      r)   ÚcachezSourceLoader.cacheÈ   s   € Ø!ˆŒ�RÑÐÐr+   c                 ó6   — | j                              |¦  «        S r/   )rW   Úget)r0   r[   s     r)   Ú
get_sourcezSourceLoader.get_sourceË   s   € ØŒ|×Ò Ñ#Ô#Ð#r+   N)r3   r!   r4   rY   r]   r`   r   r+   r)   rT   rT   Ä   sA   € € € € € ðð ð ð"ð "ð "ð$ð $ð $ð $ð $r+   rT   c                 ój   ‡ ‡‡‡— ˆfd„Šdt           t          t          f         fˆˆfd„Šˆfd„Šˆ ˆfd„S )a_  
    Creates a resolution callback that will look up qualified names in an
    environment, starting with `lookup_base` for the base of any qualified
    names, then proceeding down the lookup chain with the resolved object.

    You should not use this directly, it should only be used from the other
    createResolutionCallbackFrom* functions.
    c                 ó˜   •— d| v r6|                       dd¬¦  «        \  }}t          ||¦  «        } ‰||¦  «        S t          || ¦  «        S )NrB   é   )Úmaxsplit)ÚsplitrG   )rF   ÚmoduleÚbaseÚremaining_piecesÚmodule_valueÚlookupInModules        €r)   rj   z7createResolutionCallbackFromEnv.<locals>.lookupInModuleÜ   s^   ø€ Ø�.Ð Ð Ø%3×%9Ò%9¸#ÈÐ%9Ñ%JÔ%JÑ"ˆDÐ"Ý" 6¨4Ñ0Ô0ˆLØ!�>Ð"2°LÑAÔAÐAå˜6 >Ñ2Ô2Ð2r+   r   c                 óª  •— d}|t          | ¦  «        k     r,| |         dvr"|dz  }|t          | ¦  «        k     r
| |         dv°"| d |…         dk    rd|fS  ‰| d |…                              ¦   «         |¦  «        }|€J d| d |…         › �¦   «         ‚|t          | ¦  «        k    s| |         dk    r||fS | |         dk    sJ ‚g }| |         dk    rDd}|dz  } ‰| |d …         |¦  «        \  }}|                     |¦  «         ||z  }| |         dk    °Dt          |¦  «        dk    r|t          |¦  «                 |dz   fS ||d                  |dz   fS )	Nr   )ú,ú[ú]rc   z()r   zUnresolvable type rm   rn   )ÚlenÚstripÚappendÚtuple)	Úexprrf   Úirg   ÚpartsÚpart_lenÚpartrj   ÚparseNestedExprs	          €€r)   rx   z8createResolutionCallbackFromEnv.<locals>.parseNestedExprä   s‘  ø€ ØˆØ•#�d‘)”)Šmˆm  Q¤¨Ð >Ð >Ø�‰FˆAð •#�d‘)”)Šmˆm  Q¤¨Ð >Ð >ð
 ���Œ8�tÒÐØ�q�5ˆLàˆ~˜d 2 A 2œhŸnšnÑ.Ô.°Ñ7Ô7ˆØÐÐÐ!@°d¸2¸A¸2´hÐ!@Ð!@ÑÔÐØ•�D‘	”	Š>ˆ>˜T !œW¨š^˜^Ø˜�7ˆNà�AŒw˜#Š~ˆ~ˆ~ˆ~ØˆØ�1Œg˜ŠnˆnØˆHØ�‰FˆAØ,˜_¨T°!°"°"¬X°vÑ>Ô>‰NˆD�(Ø�LŠL˜ÑÔÐØ�‰MˆAð �1Œg˜Šnˆnõ ˆu‰:Œ:˜Š>ˆ>Ø�˜e™œÔ% q¨1¡uÐ,Ð,à˜˜aœ”> 1 q¡5Ð(Ð(r+   c                 ó†   •— 	  ‰| |¦  «        \  }}|t          | ¦  «        k    s
J d¦   «         ‚|S # t          $ r 	 Y d S w xY w)Nz;whole expression was not parsed, falling back to c++ parser)ro   Ú	Exception)rs   rf   ÚvalueÚ
len_parsedrx   s       €r)   Ú	parseExprz2createResolutionCallbackFromEnv.<locals>.parseExpr   s�   ø€ ð	Ø / °°fÑ =Ô =ÑˆE�:Ø¥Øñ"ô "ò ð ð àLñô ð ð ˆLøÝð 	ð 	ð 	ðð �4�4ð	øøøs   ƒ-1 ±A ¿A c                 ó   •—  ‰| ‰¦  «        S r/   r   )rs   Úlookup_baser}   s    €€r)   ú<lambda>z1createResolutionCallbackFromEnv.<locals>.<lambda>  s   ø€ ˜	˜	 $¨Ñ4Ô4€ r+   )r   r   Úint)r   rj   r}   rx   s   `@@@r)   ÚcreateResolutionCallbackFromEnvr‚   Ò   s~   øøøø€ ð3ð 3ð 3ð 3ð 3ð)­­sµC¨x¬ð )ð )ð )ð )ð )ð )ð )ð8ð ð ð ð ð  5Ð4Ð4Ð4Ð4Ð4r+   Ú	frames_upc                 óæ   ‡‡— t          j        ¦   «         }d}|| dz   k     r|€J ‚|j        }|dz  }|| dz   k     °|€J ‚|j        Š|j        Š G ˆˆfd„d¦  «        }t           |¦   «         ¦  «        S )a\  
    Creates a function which, given a string variable name,
    returns the value of the variable in the scope of the caller of
    the function which called createResolutionCallbackFromFrame (by default).

    This is used to enable access in-scope Python variables inside
    TorchScript fragments.

    frames_up is number of additional frames to go up on the stack.
    The default value is 0, which correspond to the frame of the caller
    of createResolutionCallbackFromFrame. Also for example, if frames_up is set
    to 1, then the frame of the caller's caller of createResolutionCallbackFromFrame
    will be taken.

    For example, the following program prints 2::

        def bar():
            cb = createResolutionCallbackFromFrame(1)
            print(cb("foo"))


        def baz():
            foo = 2
            bar()


        baz()
    r   rc   Nc                   ó   •— e Zd Zˆ ˆfd„ZdS )ú.createResolutionCallbackFromFrame.<locals>.envc                 óŽ   •— |‰v r‰|         S |‰v r‰|         S |t          t          ¦  «        v rt          t          |¦  «        S d S r/   )ÚdirÚbuiltinsrG   )r0   ÚkeyÚ	f_globalsÚf_localss     €€r)   Ú__getattr__z:createResolutionCallbackFromFrame.<locals>.env.__getattr__<  sT   ø€ Ø�hˆˆØ ”}Ð$Ø˜	Ð!Ð!Ø  ”~Ð%Ø��H™œÐ%Ð%Ý�x¨Ñ-Ô-Ð-ð &Ð%r+   N©r3   r!   r4   r�   )r‹   rŒ   s   €€r)   Úenvr†   ;  s3   ø€ € € € € ð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.r+   r�   )ÚinspectÚcurrentframeÚf_backrŒ   r‹   r‚   )rƒ   Úframert   r�   r‹   rŒ   s       @@r)   Ú!createResolutionCallbackFromFramer”     s¾   øø€ õ: Ô Ñ"Ô"€EØ	€AØ
ˆi˜!‰mÒ
Ð
ØÐ Ð Ð Ø”ˆØ	ˆQ‰ˆð ˆi˜!‰mÒ
Ð
ð
 ÐÐÐØŒ~€HØ”€Ið.ð .ð .ð .ð .ð .ð .ð .ñ .ô .ð .õ +¨3¨3©5¬5Ñ1Ô1Ð1r+   c                 ó¦   — i }|                      | j        ¦  «         t          | j        j        ¦  «        D ]\  }}| j        |         j        ||<   Œ|S )zC
    Get a dictionary of closed over variables from a function
    )ÚupdateÚ__globals__Ú	enumerateÚ__code__Úco_freevarsÚ__closure__Úcell_contents)r[   ÚcapturesÚindexÚcaptured_names       r)   Úget_closurer    G  s\   € ð €HØ‡O‚O�B”NÑ#Ô#Ð#å )¨"¬+Ô*AÑ BÔ Bð Fð FÑˆˆ}Ø"$¤.°Ô"7Ô"Eˆ�ÑÐà€Or+   c                 ón   ‡— t          | ¦  «        Š G ˆfd„d¦  «        }t           |¦   «         ¦  «        S )z
    Create a resolutionCallback by introspecting the function instead of
    looking up the stack for the enclosing scope
    c                   ó   •— e Zd Zˆ fd„ZdS )ú;createResolutionCallbackFromClosure.<locals>.closure_lookupc                 óÈ   •— |‰v r‰|         S t          t          |¦  «        rt          t          |¦  «        S t          t          |¦  «        rt          t          |¦  «        S d S r/   )r$   r"   rG   r‰   )r0   rŠ   Úclosures     €r)   r�   zGcreateResolutionCallbackFromClosure.<locals>.closure_lookup.__getattr__‹  s_   ø€ Ø�gˆ~ˆ~Ø˜s”|Ð#Ý� Ñ%Ô%ð .Ý�v sÑ+Ô+Ð+Ý� 3Ñ'Ô'ð .Ý�x¨Ñ-Ô-Ð-Ø�4r+   NrŽ   )r¥   s   €r)   Úclosure_lookupr£   ˆ  s.   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ð 	r+   r¦   )r    r‚   )r[   r¦   r¥   s     @r)   Ú#createResolutionCallbackFromClosurer§   �  sZ   ø€ õ
 ˜"‰oŒo€Gð
ð 
ð 
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
õ +¨>¨>Ñ+;Ô+;Ñ<Ô<Ð<r+   c                 óò   ‡ — t          ‰ ¦  «        rdS t          j        j        t          t
          t          f}t          ‰ |¦  «        rdS ‰ j        }ˆ fd„|D ¦   «         }d„ |D ¦   «         }t          |¦  «        S )NFc           	      óv   •— g | ]5}t          j        t          ‰|d ¦  «        ¦  «        ¯%t          ‰|¦  «        ‘Œ6S r/   ©r�   Ú	isroutinerG   ©Ú.0rJ   Úclss     €r)   ú
<listcomp>z%can_compile_class.<locals>.<listcomp>£  sP   ø€ ð ð ð àÝÔ�W S¨$°Ñ5Ô5Ñ6Ô6ðÝ��TÑÔðð ð r+   c                 ó.   — g | ]}t          |d ¦  «        ‘ŒS )r™   )r$   ©r­   r[   s     r)   r¯   z%can_compile_class.<locals>.<listcomp>¨  s"   € Ð6Ð6Ð6¨B•˜˜JÑ'Ô'Ð6Ð6Ð6r+   )
Úis_ignored_fnrC   ÚnnÚModulerr   Úlistrz   Ú
issubclassÚ__dict__Úall)r®   Úignored_builtin_classesÚnamesÚfnsÚhas_codes   `    r)   Úcan_compile_classr½   —  s—   ø€ õ �SÑÔð Øˆuõ  %œxœµµt½YÐGÐÝ�#Ð.Ñ/Ô/ð ØˆuàŒL€Eðð ð ð àðñ ô €Cð
 7Ð6°#Ð6Ñ6Ô6€HÝˆx‰=Œ=Ðr+   c                 óä   — 	 t          j        | ¦  «        }n# t          $ r g cY S w xY wg }|j                             ¦   «         D ]+\  }}|j        |j        k    sŒ|                     |¦  «         Œ,|S )aU  
    Gets names of all POSITIONAL_OR_KEYWORD arguments for callable `fn`.
    Returns an empty list when other types of arguments are present.

    This is used by `torch.jit.trace` to assign meaningful argument names to
    traced functions and modules.

    Args:
        fn: A callable.
    Returns:
        Argument names: List[str]
    )r�   Ú	signaturerz   Ú
parametersÚitemsÚkindÚPOSITIONAL_OR_KEYWORDrq   )r[   Úcallable_signatureÚargument_namesrJ   Úparams        r)   Úget_callable_argument_namesrÇ   ¬  sš   € ðÝ$Ô.¨rÑ2Ô2ÐÐøÝð ð ð Øˆ	ˆ	ˆ	ðøøøð €NØ)Ô4×:Ò:Ñ<Ô<ð $ð $‰ˆˆeð Œz˜UÔ8Ò8Ð8Øà×Ò˜dÑ#Ô#Ð#Ð#àÐs   ‚ —&¥&c                 óN  — t          | t          j        ¦  «        r| j        S t          | t          j        ¦  «        r.d                     t          | j        ¦  «        | j        g¦  «        S t          | t          j	        ¦  «        rAt          r| j        n| j        j        }t          | j        ¦  «        › dt          |¦  «        › d�S t          | t          j        ¦  «        r$d                     d„ | j        D ¦   «         ¦  «        S t          | t          j        ¦  «        r| j        › S dS )z‡
    Convert an AST node containing a type annotation to the string present in the source
    that represents the same annotation.
    rB   rm   rn   rl   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   )Úget_annotation_str)r­   Úelts     r)   r¯   z&get_annotation_str.<locals>.<listcomp>Ù  s!   € ÐLÐLÐL°SÕ+¨CÑ0Ô0ÐLÐLÐLr+   N)r%   ÚastÚNameÚidÚ	AttributeÚjoinrÊ   r{   ÚattrÚ	Subscriptr   Úslicer   ÚeltsÚConstant)Ú
annotationÚsubscript_slices     r)   rÊ   rÊ   Ë  s  € õ
 �*�cœhÑ'Ô'ð %ØŒ}ÐÝ	�J¥¤Ñ	.Ô	.ð 	%Ø�xŠxÕ+¨JÔ,<Ñ=Ô=¸z¼ÐOÑPÔPÐPÝ	�J¥¤Ñ	.Ô	.ð %å.:ÐV˜*Ô*Ð*À
Ô@PÔ@VˆÝ$ ZÔ%5Ñ6Ô6Ð_Ð_Õ9KÈOÑ9\Ô9\Ð_Ð_Ð_Ð_Ý	�J¥¤	Ñ	*Ô	*ð %Ø�xŠxÐLÐL¸J¼OÐLÑLÔLÑMÔMÐMÝ	�J¥¤Ñ	-Ô	-ð %ØÔ"Ð$Ð$ð ˆ4r+   c                 óZ  — t                                | ¦  «        }|€<	 t          j        | ¦  «        }n&# t          $ r}t	          d| › d�¦  «        |‚d}~ww xY wt          j        | ¦  «        }d„ |j                             ¦   «         D ¦   «         }t          j	        t          j        |¦  «        ¦  «        }t          |j        ¦  «        dk    s%t          |j        d         t          j        ¦  «        st!          d| › d�¦  «        ‚|j        d         }i }|j        j        D ]8}|j        rt'          |j        ¦  «        nd}	|	€Œ"|j        }
|
|v r||
         ||	<   Œ9t'          |j        ¦  «        }|du}|j        }|t          j        j        uot          |t2          ¦  «         }|r|r|||<   |S )	a¦  
    Get a dictionary containing type resolution mappings necessary to resolve types
    for the literal annotations on 'fn'. These are not considered to be closed-over by fn
    and must be obtained separately (e.g. using this function).

    Args:
        fn: A callable.
    Returns:
        A Dict[str, Any] containing a mapping from the literal annotations used on
        fn to the Python objects they refer to.
    NzFailed to get source for z using inspect.getsourcec                 óˆ   — i | ]?\  }}|j         t          j        j        u¯t	          |j         t
          ¦  «        °7||j         “Œ@S r   )rÖ   r�   Ú	ParameterÚemptyr%   Ústr)r­   rJ   Ú	parameters      r)   ú
<dictcomp>z*get_type_hint_captures.<locals>.<dictcomp>   sT   € ð ð ð áˆD�)ØÔ¥wÔ'8Ô'>Ð>Ð>Ý˜9Ô/µÑ5Ô5ð ?ð 	ˆiÔ"à>Ð>Ð>r+   rc   r   z	Expected z to be a function)Úloaderr`   r�   Ú	getsourceÚOSErrorr¿   rÀ   rÁ   rÌ   ÚparseÚtextwrapÚdedentro   Úbodyr%   ÚFunctionDefrK   ÚargsrÖ   rÊ   ÚargÚreturnsÚreturn_annotationrÚ   rÛ   rÜ   )r[   ÚsrcÚer¿   Úname_to_typeÚaÚfÚannotation_to_typerè   Úarg_annotation_strÚarg_nameÚliteral_return_annotationÚvalid_literal_annotationrê   Úvalid_return_annotation_types                  r)   Úget_type_hint_capturesrö   á  s  € õ  ×
Ò
˜BÑ
Ô
€CØ
€{ð	ÝÔ# BÑ'Ô'ˆCˆCøÝð 	ð 	ð 	ÝØH¨BÐHÐHÐHñô àðøøøøð	øøøõ Ô! "Ñ%Ô%€Iðð à(Ô3×9Ò9Ñ;Ô;ðñ ô €Lõ 	Œ	•(”/ #Ñ&Ô&Ñ'Ô'€AÝ
ˆ1Œ6�{„{�aÒÐ�z¨!¬&°¬)µS´_ÑEÔEÐÝÐ< rÐ<Ð<Ð<Ñ=Ô=Ð=Ø	ŒˆqŒ	€Að
 ÐàŒvŒ{ð Lð Lˆð 36´.ÐJÕ˜sœ~Ñ.Ô.Ð.Àdð 	ð Ð%Øð
 ”7ˆØ�|Ð#Ð#Ø5AÀ(Ô5KÐÐ1Ñ2øõ
 !3°1´9Ñ =Ô =ÐØ8ÀÐDÐØ!Ô3Ðà¥Ô!2Ô!8Ð8ð 	3ÝÐ,­cÑ2Ô2Ð2ð !ð  ð JÐ$@ð JØ8IÐÐ4Ñ5àÐs   ž3 ³
A½AÁAc                 óè   ‡ ‡— ˆ fd„‰ j         D ¦   «         }d„ |D ¦   «         }i Š|D ]F}‰                     t          |¦  «        ¦  «         ‰                     t          |¦  «        ¦  «         ŒGˆfd„}|S )zš
    This looks at all the methods defined in a class and pulls their closed-over
    variables into a dictionary and uses that to resolve variables.
    c                 ót   •— g | ]4}t          j        t          ‰|¦  «        ¦  «        ¯$t          ‰|¦  «        ‘Œ5S r   rª   r¬   s     €r)   r¯   z;createResolutionCallbackForClassMethods.<locals>.<listcomp>?  sN   ø€ ð ð ð àÝÔ�W S¨$Ñ/Ô/Ñ0Ô0ðÝ��TÑÔðð ð r+   c                 óZ   — g | ](}t          j        |¦  «        °t          |d ¦  «        ¯&|‘Œ)S )r—   )r�   Ú	isbuiltinr$   r±   s     r)   r¯   z;createResolutionCallbackForClassMethods.<locals>.<listcomp>G  s7   € Ð
XÐ
XÐ
X�"¥7Ô#4°RÑ#8Ô#8Ð
X½WÀRÈÑ=WÔ=WÐ
Xˆ2Ð
XÐ
XÐ
Xr+   c                 óH   •— | ‰v r‰|          S t          t          | d ¦  «        S r/   )rG   r‰   )rŠ   r�   s    €r)   Úlookup_in_classz@createResolutionCallbackForClassMethods.<locals>.lookup_in_classN  s(   ø€ Ø�(ˆ?ˆ?Ø˜C”=Ð å�8 S¨$Ñ/Ô/Ð/r+   )r·   r–   r    rö   )r®   r»   r[   rü   r�   s   `   @r)   Ú'createResolutionCallbackForClassMethodsrý   8  s¯   øø€ ðð ð ð à”Lðñ ô €Cð YÐ
X˜Ð
XÑ
XÔ
X€CØ€Hàð 4ð 4ˆØ�Š� B™œÑ(Ô(Ð(Ø�ŠÕ.¨rÑ2Ô2Ñ3Ô3Ð3Ð3ð0ð 0ð 0ð 0ð 0ð Ðr+   c                 ó(  ‡ ‡‡‡‡— ˆˆ ˆˆˆfd„}‰j         €‰j         �‰j         }|‰_         n=‰j         €‰j         �‰j         }|‰_         n ‰j         €
‰j         €d}nt          d¦  «        ‚||_         |�||_        |�||_        ‰‰‰‰‰ dœt          |<   |S )zÖ
    Dispatches to either of 2 script functions based on a boolean argument.
    In TorchScript, the boolean argument must be constant so that the correct
    function to use can be determined at compile time.
    c                  ó|   •— ‰}‰|v r	|‰         }n‰t          | ¦  «        k     r| ‰         }|r ‰| i |¤ŽS  ‰| i |¤ŽS r/   )ro   )rç   ÚkwargsÚdispatch_flagÚ	arg_indexrò   ÚdefaultÚif_falseÚif_trues      €€€€€r)   r[   zboolean_dispatch.<locals>.fnf  sk   ø€ ØˆØ�vÐÐØ" 8Ô,ˆMˆMØ�˜T™œÒ"Ð"Ø  œOˆMàð 	-Ø�7˜DÐ+ FÐ+Ð+Ð+à�8˜TÐ, VÐ,Ð,Ð,r+   Nz&only one function can have a docstring)r  r  rž   r  rò   )Ú__doc__rK   r!   r3   r   )	rò   r  r  r  r  rQ   Ú	func_namer[   Údocs	   `````    r)   Úboolean_dispatchr	  W  sê   øøøøø€ ð
-ð 
-ð 
-ð 
-ð 
-ð 
-ð 
-ð 
-ð 
-ð „Ð 8Ô#3Ð#?ØÔˆØˆŒˆØ	Ô	Ð	! g¤oÐ&AØŒoˆØˆÔÐØ	Ô	Ð	! g¤oÐ&=àˆˆåÐCÑDÔDÐDØ€B„JàÐØ#ˆŒØÐØˆŒð ØØØØðð Õ�rÑð €Ir+   c                   ó*   — e Zd ZdZdZdZdZdZdZdZ	dS )	ÚFunctionModifierszn
    Used to denote the behavior of a function in TorchScript. See export() and
    ignore() for details.
    z:unused (ignored and replaced with raising of an exception)z>ignore (leave as a call to Python, cannot be torch.jit.save'd)z7export (compile this function even if nothing calls it)z>default (compile if called from a exported function / forward)zNif this method is not scripted, copy the python method onto the scripted modelzB_drop (function is fully ignored, declaration can be unscriptable)N)
r3   r!   r4   r  ÚUNUSEDÚIGNOREÚEXPORTÚDEFAULTÚCOPY_TO_SCRIPT_WRAPPERÚ_DROPr   r+   r)   r  r  Ž  s?   € € € € € ðð ð
 J€FØM€FØF€FØN€GàXð ð Q€E€E€Er+   r  c                 ó(   — t           j        | _        | S )aÎ  
    This decorator indicates that a method on an ``nn.Module`` is used as an entry point into a
    :class:`ScriptModule` and should be compiled.

    ``forward`` implicitly is assumed to be an entry point, so it does not need this decorator.
    Functions and methods called from ``forward`` are compiled as they are seen
    by the compiler, so they do not need this decorator either.

    Example (using ``@torch.jit.export`` on a method):

    .. testcode::

        import torch
        import torch.nn as nn

        class MyModule(nn.Module):
            def implicitly_compiled_method(self, x):
                return x + 99

            # `forward` is implicitly decorated with `@torch.jit.export`,
            # so adding it here would have no effect
            def forward(self, x):
                return x + 10

            @torch.jit.export
            def another_forward(self, x):
                # When the compiler sees this call, it will compile
                # `implicitly_compiled_method`
                return self.implicitly_compiled_method(x)

            def unused_method(self, x):
                return x - 20

        # `m` will contain compiled methods:
        #     `forward`
        #     `another_forward`
        #     `implicitly_compiled_method`
        # `unused_method` will not be compiled since it was not called from
        # any compiled methods and wasn't decorated with `@torch.jit.export`
        m = torch.jit.script(MyModule())
    )r  r  Ú_torchscript_modifier©r[   s    r)   Úexportr  ž  s   € õT  1Ô7€BÔØ€Ir+   c                 óè   — t          | t          ¦  «        rK| }t          |j        dt          j        ¦  «         |j        r t          |j        dt          j        ¦  «         |S t          j        | _        | S )a  
    This decorator indicates to the compiler that a function or method should
    be ignored and replaced with the raising of an exception. This allows you
    to leave code in your model that is not yet TorchScript compatible and still
    export your model.

        Example (using ``@torch.jit.unused`` on a method)::

            import torch
            import torch.nn as nn


            class MyModule(nn.Module):
                def __init__(self, use_memory_efficient):
                    super().__init__()
                    self.use_memory_efficient = use_memory_efficient

                @torch.jit.unused
                def memory_efficient(self, x):
                    import pdb

                    pdb.set_trace()
                    return x + 10

                def forward(self, x):
                    # Use not-yet-scriptable memory efficient mode
                    if self.use_memory_efficient:
                        return self.memory_efficient(x)
                    else:
                        return x + 10


            m = torch.jit.script(MyModule(use_memory_efficient=False))
            m.save("m.pt")

            m = torch.jit.script(MyModule(use_memory_efficient=True))
            # exception raised
            m(torch.rand(100))
    r  )r%   ÚpropertyÚsetattrÚfgetr  r  Úfsetr  )r[   Úprops     r)   Úunusedr  Ì  s   € õP �"•hÑÔð ØˆÝØŒIÐ.Õ0AÔ0Hñ	
ô 	
ð 	
ð Œ9ð 	ÝØ”	Ð2Õ4EÔ4Lñô ð ð ˆå0Ô7€BÔØ€Ir+   c                   ó,   — e Zd Zd„ Zdedededdfd„ZdS )Ú_IgnoreContextManagerc                 ó   — d S r/   r   )r0   r   s     r)   rY   z_IgnoreContextManager.__init__  ó   € Øˆr+   Úexc_typeÚ	exc_valueÚ	tracebackr   Nc                 ó   — d S r/   r   )r0   r!  r"  r#  s       r)   Ú__exit__z_IgnoreContextManager.__exit__
  r   r+   )r3   r!   r4   rY   r   r%  r   r+   r)   r  r    sS   € € € € € ðð ð ð ð °ð Àð Èð ð ð ð ð ð r+   r  Fc                 óN  ‡ — t          ‰ ¦  «        r‰ }t          j        |_        |S t	          ‰ t
          ¦  «        st          d‰ › �¦  «        ‚|                     dd¦  «        }|rt          j	        dt          ¬¦  «         |Š n‰ rt          j	        dt          ¬¦  «         ˆ fd„}|S )a&  
    This decorator indicates to the compiler that a function or method should
    be ignored and left as a Python function. This allows you to leave code in
    your model that is not yet TorchScript compatible. If called from TorchScript,
    ignored functions will dispatch the call to the Python interpreter. Models with ignored
    functions cannot be exported; use :func:`@torch.jit.unused <torch.jit.unused>` instead.

    Example (using ``@torch.jit.ignore`` on a method)::

        import torch
        import torch.nn as nn


        class MyModule(nn.Module):
            @torch.jit.ignore
            def debugger(self, x):
                import pdb

                pdb.set_trace()

            def forward(self, x):
                x += 10
                # The compiler would normally try to compile `debugger`,
                # but since it is `@ignore`d, it will be left as a call
                # to Python
                self.debugger(x)
                return x


        m = torch.jit.script(MyModule())

        # Error! The call `debugger` cannot be saved since it calls into Python
        m.save("m.pt")

    Example (using ``@torch.jit.ignore(drop=True)`` on a method):

    .. testcode::

        import torch
        import torch.nn as nn

        class MyModule(nn.Module):
            @torch.jit.ignore(drop=True)
            def training_method(self, x):
                import pdb
                pdb.set_trace()

            def forward(self, x):
                if self.training:
                    self.training_method(x)
                return x

        m = torch.jit.script(MyModule())

        # This is OK since `training_method` is not saved, the call is replaced
        # with a `raise`.
        m.save("m.pt")

    .. testcleanup::

        import os
        os.remove('m.pt')
    zCArgument to @torch.jit.ignore must be a bool or a function but got Údrop_on_exportNz‰ignore(drop_on_export=True) has been deprecated. TorchScript will now drop the function call on compilation. Use torch.jit.unused now. {})Úcategoryzzignore(True) has been deprecated. TorchScript will now drop the function call on compilation. Use torch.jit.unused now. {}c                 óR   •— ‰rt           j        | _        nt           j        | _        | S r/   )r  r  r  r  )r[   Údrops    €r)   Ú	decoratorzignore.<locals>.decoratorn  s*   ø€ Øð 	@Ý'8Ô'?ˆBÔ$Ð$å'8Ô'?ˆBÔ$Øˆ	r+   )Úcallabler  r  r  r%   ÚboolrK   ÚpopÚwarningsÚwarnÚFutureWarning)r*  r   r[   r'  r+  s   `    r)   Úignorer2    sõ   ø€ õB ��~„~ð ð ˆÝ#4Ô#;ˆÔ Øˆ	å�d�DÑ!Ô!ð 
Ýð)Ø"&ð)ð )ñ
ô 
ð 	
ð —Z’ZÐ 0°$Ñ7Ô7€NØð 
ÝŒð@å"ð	
ñ 	
ô 	
ð 	
ð ˆˆØ	ð 
ÝŒð@å"ð	
ñ 	
ô 	
ð 	
ðð ð ð ð ð Ðr+   c                 ó(   — t           j        | _        | S r/   )r  r  r  r  s    r)   Ú_dropr4  x  s   € Ý0Ô6€BÔØ€Ir+   c                 ó(   — t           j        | _        | S r/   )r  r  r  r  s    r)   Ú_copy_to_script_wrapperr6  }  s   € Ý0ÔG€BÔØ€Ir+   c                 óÄ   — t          | ¦  «        D ]O}t          | |¦  «        r=t          | |¦  «        }t          |¦  «        rt	          |¦  «        t
          j        u r dS ŒPdS )NTF)rˆ   r$   rG   r,  Úget_torchscript_modifierr  r  )ÚmodrJ   Úitems      r)   Úmodule_has_exportsr;  ‚  sj   € Ý�C‘”ð  ð  ˆÝ�3˜ÑÔð 	 Ý˜3 Ñ%Ô%ˆDÝ˜‰~Œ~ð  Ý+¨DÑ1Ô1Õ5FÔ5MÐMÐMØ˜4˜4øØˆ5r+   c                 ó`   — t          | ¦  «        }|€dS |t          j        u p|t          j        u S ©NF)r8  r  r  r  )r[   rÑ   s     r)   Úshould_dropr>  �  s6   € Ý# BÑ'Ô'€DØ€|ØˆuØÕ$Ô+Ð+ÐN¨tÕ7HÔ7NÐ/NÐNr+   c                 ót   — t          | ¦  «        }|t          j        u p|t          j        u p|t          j        u S r/   )r8  r  r  r  r  ©r[   r9  s     r)   r²   r²   –  sB   € Ý
" 2Ñ
&Ô
&€CàÕ Ô'Ð'ð 	*ØÕ#Ô*Ð*ð	*àÕ#Ô)Ð)ðr+   c                 ó<   — t          | ¦  «        }|t          j        u S r/   )r8  r  r  r@  s     r)   Ú_is_drop_fnrB  Ÿ  s   € Ý
" 2Ñ
&Ô
&€CØÕ#Ô)Ð)Ð)r+   c                 óV   — t          t          j        | |d ¬¦  «        t          ¦  «        S )N)r  )r%   r�   Úgetattr_staticÚstaticmethod©r®   r[   s     r)   Úis_static_fnrG  ¤  s$   € Ý•gÔ,¨S°"¸dÐCÑCÔCÅ\ÑRÔRÐRr+   c                 ó6   — t          j        | |¦  «        j        S r/   )r�   rD  Ú__func__rF  s     r)   Úget_static_fnrJ  ¨  s   € ÝÔ! # rÑ*Ô*Ô3Ð3r+   c                 óˆ   — t          | ¦  «        sd S t          | d¦  «        r| j        } t          | dt          j        ¦  «        S )NrI  r  )r,  r$   rI  rG   r  r  r  s    r)   r8  r8  ¬  sE   € Ý�B‰<Œ<ð ØˆtÝˆr�:ÑÔð ØŒ[ˆÝ�2Ð.Õ0AÔ0IÑJÔJÐJr+   c                 ó:   — t          | ¦  «        }|€d S ||_        d S r/   )r8  r  )ÚorigÚnewrÑ   s      r)   Úcopy_torchscript_modifierrO  ´  s'   € Ý# DÑ)Ô)€DØ€|ØˆØ $€CÔÐÐr+   Ú_overloaded_fnsaP  
Example usage of overload function:
@torch.jit._overload
def my_function(x: type0) -> type0: # decl 1
    pass

@torch.jit._overload
def my_function(x: type1) -> type1: # decl 2
    pass

def my_function(x):                 # implementation
    if isinstance(x, type0):
        return x
    elif isinstance(x, type1):
        return x
c           	      ó¢   — t          |¦  «        \  }}}d| › dt          |¦  «        › d|› d|› d�	d                     |¦  «        z   dz   t          z   S )NzImplementation for the z "zk" is missing. Please make sure a definition is provided and defined after all overload declarations.
File "z", line z:
Ú ú
)r   rR   rÐ   Ú_OVERLOAD_EXAMPLE)rÂ   rO   ÚsourcelinesÚfile_linenoÚfilenames        r)   Ú,get_overload_no_implementation_error_messagerX  Õ  s‰   € Ý)BÀ3Ñ)GÔ)GÑ&€K�˜hð	4 $ð 	4ð 	4­/¸#Ñ*>Ô*>ð 	4ð 	4àð	4ð 	4à#.ð	4ð 	4ð 	4ð �'Š'�+Ñ
Ô
ñ	ð ñ		õ
 ñ	ðr+   c                 óÜ  — 	 t          | ¦  «        }n0# t          $ r#}t          j        d| › d�¦  «         Y d }~d S d }~ww xY w|j        j        d         j        }d„ }d„ }t          |¦  «        dk    s" ||d         ¦  «        sg ||d         ¦  «        sXd}|d                     |j         	                    d¦  «        d d	…         ¦  «        z  }|d
t          z   z  }t          |¦  «        ‚d S d S )Nz=Unable to retrieve source for @torch.jit._overload function: rB   r   c                 ó6   — t          | t          j        ¦  «        S r/   )r%   rÌ   ÚPass©Úxs    r)   Úis_passz%_check_overload_body.<locals>.is_passî  s   € Ý˜!�SœXÑ&Ô&Ð&r+   c                 óš   — t          | t          j        ¦  «        o1t          | j        t          j        ¦  «        o| j        j        t
          u S r/   )r%   rÌ   ÚExprr{   rÕ   ÚEllipsisr\  s    r)   Úis_ellipsisz)_check_overload_body.<locals>.is_ellipsisñ  s=   € å�q�#œ(Ñ#Ô#ð *Ý˜1œ7¥C¤LÑ1Ô1ð*à””¥Ð)ð	
r+   rc   zHOnly `pass` statement or `...` can be the body of overload declaration:
rS  r   z$ <- Expecting `pass` or `...` here!
)r   rá   r/  r0  rÌ   rå   ro   rÐ   r\   re   rT  rK   )ÚfuncÚ
parsed_defrì   rå   r^  rb  Úmsgs          r)   Ú_check_overload_bodyrf  á  s1  € ðÝ˜t‘_”_ˆ
ˆ
øÝð ð ð õ 	ŒØSÈDÐSÐSÐSñ	
ô 	
ð 	
ð 	ˆˆˆˆˆøøøøðøøøð Œ>Ô˜qÔ!Ô&€Dð'ð 'ð 'ð
ð 
ð 
õ ˆ4�y„y�A‚~€~˜g˜g d¨1¤gÑ.Ô.€~°+°+¸dÀ1¼gÑ2FÔ2F€~àWð 	ð 	ˆt�yŠy˜Ô*×0Ò0°Ñ6Ô6°r¸°rÔ:Ñ;Ô;Ñ;ˆØÐ6Õ9JÑJÑJˆÝ˜3ÑÔÐð €~€~€~s   ‚ ’
?œ:º?c                 ó¼   — t          | ¦  «         t          | ¦  «        }t                               |¦  «        }|€g }|t          |<   |                     | ¦  «         | S r/   )rf  rR   rP  r_   rq   )rc  Ú	qual_nameÚfn_overload_lists      r)   Ú	_overloadrj    s`   € Ý˜ÑÔÐÝ Ñ%Ô%€Iå&×*Ò*¨9Ñ5Ô5ÐØÐØÐØ%5�˜	Ñ"Ø×Ò˜DÑ!Ô!Ð!Ø€Kr+   c                 ó6   — t                                | ¦  «        S r/   )rP  r_   ©rh  s    r)   Ú_get_fn_overloadsrm    s   € Ý×Ò˜yÑ)Ô)Ð)r+   c                 ó   — t           | = d S r/   )rP  rl  s    r)   Ú_clear_fn_overloadsro    s   € Ý˜	Ð"Ð"Ð"r+   c                 ó¢   — t          j        ¦   «         }t          d¦  «        D ]}|€J ‚|j        }Œ|€J ‚|j        j        }|j        j        }||fS ©Nr5   )r�   r‘   Úranger’   Úf_codeÚco_nameÚco_firstlineno)ÚmethodÚcurrent_framert   Ú
class_nameÚline_nos        r)   Úget_class_name_linenorz    sj   € ÝÔ(Ñ*Ô*€Mõ �1‰XŒXð -ð -ˆàÐ%Ð%Ð%à%Ô,ˆˆàÐ$Ð$Ð$ØÔ%Ô-€JØÔ"Ô1€GØ�wÐÐr+   Ú_overloaded_methodsÚ_overloaded_method_class_filenoc                 ó‚  — t          | ¦  «         t          | ¦  «        }t                               |d ¦  «        }|€i }|t          |<   t	          | ¦  «        \  }}|                     |d ¦  «        }|€g }|||<   |t
          ||f<   n$t
          ||f         }||k    rt          d¦  «        ‚|                     | ¦  «         | S )NzmCannot currently overload the same method name in two different classes with the same name in the same module)rf  rR   r{  r_   rz  r|  rK   rq   )rc  rh  Úclass_name_maprx  ry  Úmethod_overloadsÚexisting_linenos          r)   Ú_overload_methodr�  6  sæ   € Ý˜ÑÔÐÝ Ñ%Ô%€Iå(×,Ò,¨Y¸Ñ=Ô=€NØÐØˆØ)7Õ˜IÑ&å/°Ñ5Ô5Ñ€J�Ø%×)Ò)¨*°dÑ;Ô;ÐØÐØÐØ%5ˆ�zÑ"ØCJÕ'¨°JÐ(?Ñ@Ð@å9¸9ÀjÐ:QÔRˆØ˜gÒ%Ð%ÝðAñô ð ð
 ×Ò˜DÑ!Ô!Ð!Ø€Kr+   c                 ó¸  — t          | d¦  «        sd S t          | ¦  «        }t                               |d ¦  «        }|€d S |                     |j        d ¦  «        }|€d S t          | ¦  «        d         }t          |¦  «        d         }|t          t          |¦  «        d         ¦  «        z   }||k    r||k    st          dt          | ¦  «        z   ¦  «        ‚|S )Nr3   rc   r   zLOverloads are not useable when a module is redeclared within the same file: )	r$   rR   r{  r_   r3   r   ro   ÚAssertionErrorrÜ   )rv  Ú	mod_classrh  r~  Ú	overloadsÚmethod_line_noÚmod_class_filenoÚmod_end_filenos           r)   Ú_get_overloaded_methodsr‰  Q  sð   € å�6˜:Ñ&Ô&ð ØˆtÝ Ñ'Ô'€IÝ(×,Ò,¨Y¸Ñ=Ô=€NØÐØˆtØ×"Ò" 9Ô#5°tÑ<Ô<€IØÐØˆtå.¨vÑ6Ô6°qÔ9€NÝ0°Ñ;Ô;¸AÔ>ÐØ%­Õ,EÀiÑ,PÔ,PÐQRÔ,SÑ(TÔ(TÑT€NØÐ.Ò.Ð.°>À^Ò3SÐ3SÝØZÝ�&‰kŒkññ
ô 
ð 	
ð Ðr+   c                 óè   — | t           u rt          d¦  «         t          | d¦  «        sdS t          | ¦  «        }t          r| j        dk    r|t          u rdS | j        dk    o|t           u p|t          u S )Nr   r!   Fr‰   Tr"   )r   Ú'raise_error_container_parameter_missingr$   r	   r   r!   rr   ©r(   Ú
ann_origins     r)   Úis_tuplerŽ  h  s‚   € Ø
�e€|€|Ý/°Ñ8Ô8Ð8õ �3˜Ñ%Ô%ð Øˆuå˜C‘”€JÝð ˜œ¨*Ò4Ð4¸ÅuÐ9LÐ9LØˆtØŒ>˜XÒ%ÐV¨:½Ð+>Ð+UÀ*ÕPUÐBUÐVr+   c                 óè   — | t           u rt          d¦  «         t          | d¦  «        sdS t          | ¦  «        }t          r| j        dk    r|t          u rdS | j        dk    o|t           u p|t          u S )Nr
   r!   Fr‰   Tr"   )r
   r‹  r$   r	   r   r!   rµ   rŒ  s     r)   Úis_listr�  v  ó   € Ø
�d€{€{Ý/°Ñ7Ô7Ð7å�3˜Ñ%Ô%ð Øˆuå˜C‘”€JÝð ˜œ¨*Ò4Ð4¸ÅtÐ9KÐ9KØˆtØŒ>˜XÒ%ÐT¨:½Ð+=Ð+SÀÍtÐASÐTr+   c                 óè   — | t           u rt          d¦  «         t          | d¦  «        sdS t          | ¦  «        }t          r| j        dk    r|t          u rdS | j        dk    o|t           u p|t          u S )Nr   r!   Fr‰   Tr"   )r   r‹  r$   r	   r   r!   ÚdictrŒ  s     r)   Úis_dictr”  ƒ  r‘  r+   c                 ó¾   — | t           u rt          d¦  «         t          | t          ¦  «        p0t	          | d¦  «        o | j        dk    ot          | ¦  «        t           u S )Nr   r!   r"   )r   r‹  r%   r   r$   r!   r	   r'   s    r)   Úis_unionr–  �  s`   € Ø
�e€|€|Ý/°Ñ8Ô8Ð8å�cÕ+Ñ,Ô,ð Ý��\Ñ"Ô"ð 	'ØŒN˜hÒ&ð	'å˜‰_Œ_¥Ð%ðr+   c                 óˆ   — | t           u rt          d¦  «         d„ }d„ } || ¦  «        pt          | ¦  «        o
 || ¦  «        S )Nr   c                 ód   — t          | d¦  «        o | j        dk    ot          | ¦  «        t          u S )Nr!   r"   )r$   r!   r	   r   r'   s    r)   Úis_optional_as_optionalz,is_optional.<locals>.is_optional_as_optionalŸ  s6   € å�C˜Ñ&Ô&ð .Ø” (Ò*ð.å˜C‘”¥HÐ,ð	
r+   c                 óp   — t          | ¦  «        }t          |¦  «        dk    od |v pt          d ¦  «        |v S rq  )r   ro   r&   )r(   Úann_argss     r)   Úis_union_as_optionalz)is_optional.<locals>.is_union_as_optional¦  s8   € Ý˜C‘=”=ˆÝ�8‰}Œ} Ò!ÐR t¨xÐ'7Ð'Q½4À¹:¼:ÈÐ;QÐRr+   )r   r‹  r–  )r(   r™  rœ  s      r)   Úis_optionalr�  ›  sj   € Ø
�h€€Ý/°
Ñ;Ô;Ð;ð
ð 
ð 
ðSð Sð Sð #Ð" 3Ñ'Ô'ÐX­H°S©M¬MÐ,WÐ>RÐ>RÐSVÑ>WÔ>WÐXr+   c                 ó^   — | t           u rt          d¦  «        ‚t          | ¦  «        t           u S )Nz_Attempted to use Future without a contained type. Please add a contained type, e.g. Future[int])r   rK   r	   r'   s    r)   Ú	is_futurerŸ  ­  s5   € Ø
�f€}€}Ýðñ
ô 
ð 	
õ
 �c‰?Œ?�fÐ$Ð$r+   c                 óD   — | t           u rdS t          | ¦  «        t           u S )NT)r   r	   r'   s    r)   Úis_awaitr¡  ·  s!   € Ø
�f€}€}ØˆtÝ�c‰?Œ?�fÐ$Ð$r+   )ÚPyRRef)ÚRRefc                 ó^   — | t           u rt          d¦  «        ‚t          | ¦  «        t           u S )Nz[Attempted to use RRef without a contained type. Please add a contained type, e.g. RRef[int])r£  rK   r	   r'   s    r)   Úis_rrefr¥  Á  s5   € Ø•$ˆ;ˆ;Ýðñô ð õ
 ˜#‰Œ¥$Ð&Ð&r+   c                 ó,   — t          | t          ¦  «        S r/   )r%   r¢  ©rO   s    r)   Úis_rref_instancer¨  Ê  s   € Ý˜#�vÑ&Ô&Ð&r+   c                 ó   — dS r=  r   r§  s    r)   r¨  r¨  Ï  s   € àˆur+   c                 óX   — t          | ¦  «        sd S t                               | ¦  «        S r/   )r,  r   r_   r  s    r)   Ú_try_get_dispatched_fnr«  Ô  s)   € Ý�B‰<Œ<ð ØˆtÝ×!Ò! "Ñ%Ô%Ð%r+   Úlocc           
      ó´  ‡ — |€t          ¦   «         }t          ‰ t          ¦  «        rt          ‰ d¦  «        sJ ‚t          ‰ d¦  «        rˆ fd„‰ j        D ¦   «         }ng }t
          j        d d…         dk     rt          ‰ di ¦  «        }nPt          j	        ‰ ¦  «        }t          |¦  «        dk    r)t          ‰ d¦  «        rt          j	        ‰ j        ¦  «        }g }‰ j        D ]Ú}||v rž||         }t          |t          ¦  «        rE|�C ||j        ¦  «        }|€/t          d	|› d
‰ j        › d|                     ¦   «         › �¦  «        ‚|}t$          j        j                             |||¦  «        }	|                     |	¦  «         Œ¤|                     t$          j        j                             ¦   «         ¦  «         ŒÛt5          ‰ ¦  «        j        ‰ j        ||fS )NÚ_fieldsÚ_field_defaultsc                 ó<   •— g | ]}|‰j         v ¯‰j         |         ‘ŒS r   )r¯  )r­   ÚfieldrO   s     €r)   r¯   z/_get_named_tuple_properties.<locals>.<listcomp>ä  s9   ø€ ð 
ð 
ð 
àØ˜Ô+Ð+Ð+ð Ô Ô&à+Ð+Ð+r+   r5   r   Ú__annotations__r   Ú__base__zUnknown type annotation: 'z' in NamedTuple zh. Likely due to partial support for ForwardRef parameters in NamedTuples, see #95858. Issue occurred at )r   r¶   rr   r$   r®  ÚsysÚversion_inforG   r�   Úget_annotationsro   r³  r%   r   Ú__forward_arg__Ú
ValueErrorr3   Ú	highlightrC   ÚjitÚannotationsÚann_to_typerq   rD   Ú
TensorTypeÚgetInferredr&   )
rO   r¬  ÚrcbÚdefaultsÚobj_annotationsr»  r±  Ú
field_typeÚrcb_typeÚthe_types
   `         r)   Ú_get_named_tuple_propertiesrÅ  Ú  s  ø€ ð
 €{Ý‰lŒlˆå�c�5Ñ!Ô!Ð=¥g¨c°9Ñ&=Ô&=Ð=Ð=Ð=ÝˆsÐ%Ñ&Ô&ð ð
ð 
ð 
ð 
àœð
ñ 
ô 
ˆˆð ˆõ Ô˜˜˜Ô˜gÒ%Ð%Ý! #Ð'8¸"Ñ=Ô=ˆˆå!Ô1°#Ñ6Ô6ˆÝˆÑÔ 1Ò$Ð$­°°jÑ)AÔ)AÐ$Ý%Ô5°c´lÑCÔCˆOà€KØ”ð 3Bð 3BˆØ�OÐ#Ð#Ø(¨Ô/ˆJõH ˜*¥jÑ1Ô1ð 	&°c°oØ˜3˜zÔ9Ñ:Ô:�àÐ#Ý$ð@°Zð @ð @ÐQTÔQ]ð @ð @à.1¯mªm©o¬oð@ð @ñô ð ð
 &�
Ý”yÔ,×8Ò8¸ÀSÈ#ÑNÔNˆHØ×Ò˜xÑ(Ô(Ð(Ð(à×Ò�uœxÔ2×>Ò>Ñ@Ô@ÑAÔAÐAÐAÝ�‰9Œ9Ô˜sœ{¨K¸ÐAÐAr+   Úunqual_nameÚfield_namesrÀ  c                 ó:   — t          j        |||¬¦  «        } || Ž S )N)rÀ  )ÚcollectionsÚ
namedtuple)ÚtrÆ  rÇ  rÀ  Ú	TupleTypes        r)   Ú_create_named_tuplerÍ  ,  s'   € õ Ô& {°KÈ(ÐSÑSÔS€IØˆ9�aˆ=Ðr+   c               #   óJ  K  — t           j                             ¦   «         } t           j                             d d ¦  «         	 d V — t           j                             | d         | d         ¦  «         d S # t           j                             | d         | d         ¦  «         w xY w©Nr   rc   )rC   rD   Ú_jit_get_emit_hooksÚ_jit_set_emit_hooks)Úhookss    r)   Ú_disable_emit_hooksrÓ  6  s‹   è è € åŒH×(Ò(Ñ*Ô*€EÝ	„H× Ò   tÑ,Ô,Ð,ð9ØˆˆˆåŒ×$Ò$ U¨1¤X¨u°Q¬xÑ8Ô8Ð8Ð8Ð8ø�Œ×$Ò$ U¨1¤X¨u°Q¬xÑ8Ô8Ð8Ð8øøøs   ÁA4 Á4.B"c                 ó   — dd„}dd„}d S )Nr   c                 óŒ   — t           j                             ¦   «         | _        t           j                             d d ¦  «         d S r/   )rC   rD   rÐ  rÒ  rÑ  rX   s    r)   Ú	__enter__z0_disable_emit_hooks_decorator.<locals>.__enter__A  s5   € Ý”X×1Ò1Ñ3Ô3ˆŒ
ÝŒ×$Ò$ T¨4Ñ0Ô0Ð0Ð0Ð0r+   c                 ór   — t           j                             | j        d         | j        d         ¦  «         d S rÏ  )rC   rD   rÑ  rÒ  )r0   rç   s     r)   r%  z/_disable_emit_hooks_decorator.<locals>.__exit__E  s,   € ÝŒ×$Ò$ T¤Z°¤]°D´J¸q´MÑBÔBÐBÐBÐBr+   ©r   Nr   )Ú_DecoratorContextManagerrÖ  r%  s      r)   Ú_disable_emit_hooks_decoratorrÚ  @  s:   € ð1ð 1ð 1ð 1ðCð Cð Cð Cð Cð Cr+   c                 óX   — t          j        | ¦  «        sdS t          | t          ¦  «        S r=  )r�   Úisclassr¶   rz   r§  s    r)   Ú_is_exceptionrÝ  I  s)   € ÝŒ?˜3ÑÔð ØˆuÝ�c�9Ñ%Ô%Ð%r+   c                 óX   — | dk    rt          d¦  «        ‚t          d| › d| › d�¦  «        ‚)Nr   z]Attempted to use Dict without contained types. Please add contained type, e.g. Dict[int, int]zAttempted to use z= without a contained type. Please add a contained type, e.g. z[int])rK   ©Útarget_types    r)   r‹  r‹  O  s[   € Ø�fÒÐÝðñ
ô 
ð 	
õ
 ð	˜Kð 	ð 	àð	ð 	ð 	ñô ð r+   c                 ó  — | t           u s	| t          u rt          d¦  «         d S | t          u s	| t          u rt          d¦  «         d S | t
          u s	| t          u rt          d¦  «         d S | �	| t          u rt          d¦  «         d S d S )Nr
   r   r   r   )r
   rµ   r‹  r   rr   r   r“  r   rß  s    r)   Úcheck_args_existrâ  ]  s©   € Ø•dÐÐ˜k­TÐ1Ð1Ý/°Ñ7Ô7Ð7Ð7Ð7Ø	�Ð	Ð	 µÐ!5Ð!5Ý/°Ñ8Ô8Ð8Ð8Ð8Ø	�Ð	Ð	 ­tÐ 3Ð 3Ý/°Ñ7Ô7Ð7Ð7Ð7Ø	Ð	 ­xÐ 7Ð 7Ý/°
Ñ;Ô;Ð;Ð;Ð;ð !8Ð 7r+   c                 óV   — | g k    s| i k    s| dk    rt          j        d¦  «         d S d S )Nr   z¿The inner type of a container is lost when calling torch.jit.isinstance in eager mode. For example, List[int] would become list and therefore falsely return True for List[float] or List[str].)r/  r0  r§  s    r)   Úcheck_empty_containersrä  h  sE   € Ø
ˆb‚y€y�C˜2’I�I ¨¢ ÝŒðñ	
ô 	
ð 	
ð 	
ð 	
ð "+ r+   c                 ó>  — t          |¦  «        }t          |¦  «         |€dS |t          u s	|t          u rzt	          | ¦  «         t          | t          ¦  «        sdS t          |¦  «        d         }t          |¦  «        }| D ]+}|rt          ||¦  «        s dS Œt          ||¦  «        s dS Œ,dS |t          u s	|t          u r·t	          | ¦  «         t          | t          ¦  «        sdS t          |¦  «        d         }t          |¦  «        d         }|  
                    ¦   «         D ]P\  }}	t          ||¦  «        s dS t          |¦  «        }
|
rt          |	|¦  «        s dS Œ=t          |	|¦  «        s dS ŒQdS |t          u s	|t          u r§t	          | ¦  «         t          | t          ¦  «        sdS t          |¦  «        }t          | ¦  «        t          |¦  «        k    rdS t          | |¦  «        D ]=\  }}t          |¦  «        }|rt          ||¦  «        s dS Œ*t          ||¦  «        s dS Œ>dS |t          u st!          |t"          ¦  «        rN| €dS t          |¦  «        }|D ]8}t          |¦  «        }|rt          | |¦  «        c S t          | |¦  «        r dS Œ9dS )NFr   Trc   )r	   râ  rµ   r
   rä  r%   r   Úcontainer_checkerr   r“  rÁ   r   rr   ro   Úzipr   r¶   r   )rO   rà  Úorigin_typeÚarg_typeÚ
arg_originÚelÚkey_typeÚval_typerŠ   ÚvalÚ
val_originÚ	arg_typesÚel_typeÚ	el_originÚinner_typesrË  Út_origins                    r)   ræ  ræ  u  s+  € Ý˜[Ñ)Ô)€KÝ�[Ñ!Ô!Ð!ØÐØˆuØ	�Ð	Ð	 ­tÐ 3Ð 3Ý˜sÑ#Ô#Ð#Ý˜#�tÑ$Ô$ð 	Ø�5Ý˜KÑ(Ô(¨Ô+ˆÝ Ñ)Ô)ˆ
Øð 	ð 	ˆBàð Ý(¨¨XÑ6Ô6ð !Ø ˜5˜5ð!å  HÑ-Ô-ð Ø�u�uðàˆtØ	�Ð	Ð	 ­tÐ 3Ð 3Ý˜sÑ#Ô#Ð#Ý˜#�tÑ$Ô$ð 	Ø�5Ý˜KÑ(Ô(¨Ô+ˆÝ˜KÑ(Ô(¨Ô+ˆØŸ	š	™œð 		ð 		‰HˆC�å˜c 8Ñ,Ô,ð Ø�u�uÝ# HÑ-Ô-ˆJØð Ý(¨¨hÑ7Ô7ð !Ø ˜5˜5ð!å  XÑ.Ô.ð Ø�u�uðàˆtØ	�Ð	Ð	 µÐ!5Ð!5Ý˜sÑ#Ô#Ð#Ý˜#�uÑ%Ô%ð 	Ø�5Ý˜[Ñ)Ô)ˆ	Ýˆs‰8Œ8•s˜9‘~”~Ò%Ð%Ø�5Ý˜s IÑ.Ô.ð 	ð 	‰KˆB�Ý" 7Ñ+Ô+ˆIØð Ý(¨¨WÑ5Ô5ð !Ø ˜5˜5ð!å  GÑ,Ô,ð Ø�u�uðàˆtØ	�Ð	Ð	¥ØÕ%ñ"ô "Ð	ð ˆ;Ø�4Ý˜{Ñ+Ô+ˆØð 	ð 	ˆAÝ! !‘}”}ˆHØð Ý(¨¨aÑ0Ô0Ð0Ð0Ð0Ý˜C Ñ#Ô#ð Ø�t�tðàˆ5r+   c                 ó<  — t          |t          j        j        ¦  «        r>t          |t          ¦  «        st          d¦  «        ‚|D ]}t          | |¦  «        r dS ŒdS t          |¦  «        }|rt          | |¦  «        S t          |¦  «         t          | |¦  «        S )NzPThe second argument to `torch.jit.isinstance` must be a type or a tuple of typesTF)
r%   rÉ  ÚabcÚ	Containerrr   rK   Ú_isinstancer	   ræ  râ  )rO   rà  Út_typerè  s       r)   rø  rø  ·  s½   € Ý�+�{œÔ8Ñ9Ô9ð 
Ý˜+¥uÑ-Ô-ð 	Ýð&ñô ð ð
 "ð 	ð 	ˆFÝ˜3 Ñ'Ô'ð Ø�t�tðàˆuå˜[Ñ)Ô)€KØð 3Ý   kÑ2Ô2Ð2õ �[Ñ!Ô!Ð!õ �c˜;Ñ'Ô'Ð'r+   c                   ó@   ‡ — e Zd Zdeej                 fˆ fd„Zd„ Zˆ xZS )Ú_TensorExtractorÚtensorsc                óH   •—  t          ¦   «         j        |i |¤Ž || _        d S r/   )ÚsuperrY   rü  )r0   rü  rç   r   Ú	__class__s       €r)   rY   z_TensorExtractor.__init__Ñ  s*   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)ØˆŒˆˆr+   c                 ó”  — t          |t          j        ¦  «        r| j                             |¦  «         dS t          |t
          ¦  «        rdS t          |t          ¦  «        st          |¦  «        rdS t          |t          ¦  «        rdS t          |t          j	        j
        ¦  «        rdS t          |t          j        ¦  «        rdS d S )NrR  )r%   rC   ÚTensorrü  rq   r   ÚCFuturer¨  ÚCAwaitÚcudaÚEventÚ	threadingÚThread)r0   rO   s     r)   Úpersistent_idz_TensorExtractor.persistent_idÕ  sÅ   € Ý�c�5œ<Ñ(Ô(ð 	ØŒL×Ò Ñ$Ô$Ð$Ø�2õ �c�8Ñ$Ô$ð 	Ø�2õ �c�7Ñ#Ô#ð 	Õ'7¸Ñ'<Ô'<ð 	Ø�2Ý�c�6Ñ"Ô"ð 	Ø�2Ý�c�5œ:Ô+Ñ,Ô,ð 	Ø�2Ý�c�9Ô+Ñ,Ô,ð 	Ø�2Øˆtr+   )	r3   r!   r4   r
   rC   r  rY   r  Ú__classcell__)rÿ  s   @r)   rû  rû  Ð  sZ   ø€ € € € € ð t¨E¬LÔ'9ð ð ð ð ð ð ðð ð ð ð ð ð r+   rû  c                 óz   — g }t          t          j        ¦   «         d|¬¦  «        }|                     | ¦  «         |S )z¸
    This function is exclusively called from C++.
    See ``torch/csrc/jit/python/python_ivalue.h``.

    It extracts the tensors contained in the given object, through pickling.
    éÿÿÿÿ)Úprotocolrü  )rû  ÚioÚBytesIOÚdump)rO   rü  Ú	extractors      r)   Ú_extract_tensorsr  î  s:   € ð #%€GÝ ¥¤¡¤¸ÀGÐLÑLÔL€IØ‡N‚N�3ÑÔÐØ€Nr+   c                 óÜ   — t          | t          j        j        ¦  «        r&t	          | j                             ¦   «         ¦  «        S t          | t          j        j        ¦  «        r| j        S d S r/   )	r%   rC   rº  ÚScriptModulerÜ   Ú_cÚ_typerE   rF   r§  s    r)   Ú_get_model_idr  û  sV   € Ý�#•u”yÔ-Ñ.Ô.ð Ý�3”6—<’<‘>”>Ñ"Ô"Ð"Ý	�C�œÔ1Ñ	2Ô	2ð ØÔ!Ð!àˆtr+   )T)r   )FrØ  )NN)”r  rÌ   r‰   rÉ  Ú
contextlibrH   r�   r  Úpickler´  rã   r  r1   r"   r/  Úweakrefr   r   r   r   r   r   r	   r
   r   r   r   r   rC   Útorch.distributed.rpcÚtorch.package._manglingÚpackageÚ	_manglingrL   Útorch._awaitsr   Útorch._Cr  r   r  Útorch._sourcesr   r   r   Útorch.futuresrµ  r   r-  r²  r   Ú	UnionTyper   Ú_threadr   ÚImportErrorÚ_dummy_threadÚWeakKeyDictionaryr   ÚFAKE_FILENAME_PREFIXr*   r-   ÚBroadcastingList1rr  rt   Úglobalsr9   rÜ   rR   rT   rß   r‚   r�   r”   r    r§   r½   rÇ   rÊ   rö   rý   r	  r  r  r  ÚAbstractContextManagerr  r2  r4  r6  r;  r>  r²   rB  rG  rJ  r8  rO  rP  rT  rX  rf  rj  rm  ro  rz  r{  r|  r�  r‰  rŽ  r�  r”  r–  r�  rŸ  r¡  ÚdistributedÚrpcÚis_availableÚtorch._C._distributed_rpcr¢  r£  r¥  r¨  r«  rD   Ú_jit_tree_viewsÚSourceRangerÅ  rÍ  ÚcontextmanagerrÓ  rÚ  rÝ  r‹  râ  rä  ræ  rø  ÚPicklerrû  r  r  rI   Ú__new__Ú
__format__Ú__repr__Ú__str__r   r+   r)   ú<module>r7     sm
  ððð ð ð €
€
€
Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€ð
 Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø  Ð  Ð  Ð  Ð  Ð  Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ  Ð  Ð  Ð  Ð  Ð  ð  Ô,°Ò6€ˆe�DŒkÐ 6Ð 6Ñ 6Ø Ô-°Ò8€ˆu�TŒ{Ð 8Ð 8Ñ 8à˜˜e D¨# IÔ.Ð.Ô/Ð /Ð /Ñ /ØÔ�wÒÐð ”ÐÐàÐà
€€�ð&Ø€N€N€NàÔ€H€HøØð &ð &ð &ØÐÐÐàÔ%€H€H€Hð&øøøð €GÔÑÔð ÐNð ð ñ ð
 /Ð ð�Tð ð ð ð ðð ð ð ð ñ ô ð ð (Ð'Ñ)Ô)Ð Ø	ˆˆq�!‰Œð :ð :€AØ(9€G€G�I„IÐ$ Ð$Ð$Ñ%Ð%ð�dð ð ð ð ð.C$ð C$¨cð C$ð C$ð C$ð C$ðL$ð $ð $ð $ð $ñ $ô $ð $ð 
ˆ‰Œ€ð>5ð >5ð >5ðB12ð 12°ð 12ð 12ð 12ð 12ðh
ð 
ð 
ðt=ð =ð =ð,˜dð ð ð ð ð* t¨C¤yð ð ð ð ð>ð ð ð,Tð Tð Tðnð ð ð>4ð 4ð 4ðnQð Qð Qð Qð Qñ Qô Qð Qð +ð +ð +ð\6ð 6ð 6ðtð ð ð ð ˜JÔ=ñ ô ð ðgð gð gð gðTð ð ð
ð ð ð
ð ð ðO�tð Oð Oð Oð Oð˜ð ð ð ð ð*�tð *ð *ð *ð *ð
S˜Tð Sð Sð Sð Sð4ð 4ð 4ðKð Kð Kð%ð %ð %ð %ð .0€��c˜4 œ>Ð)Ô*Ð /Ð /Ñ /ðÐ ð$	ð 	ð 	ð ð  ð  ð@	ð 	ð 	ð*ð *ð *ð#ð #ð #ð #ð U¨3°¨8¤_ð ð ð ð ð4 =?Ð �T˜#˜t C¨¨h¬Ð$7Ô8Ð8Ô9Ð >Ð >Ñ >ð ?AÐ   e¨C°¨H¤o°sÐ&:Ô!;Ð @Ð @Ñ @ðð ð ð6ð ð ð.W�Tð Wð Wð Wð Wð
U�Dð 
Uð 
Uð 
Uð 
Uð
U�Dð 
Uð 
Uð 
Uð 
Uðð ð ðYð Yð Yð$%�dð %ð %ð %ð %ð%�Tð %ð %ð %ð %ð 	ÔÔ×%Ò%Ñ'Ô'ð Ø0Ð0Ð0Ð0Ð0Ð0Ø*Ð*Ð*Ð*Ð*Ð*ð'˜ð 'ð 'ð 'ð 'ð' ð 'ð 'ð 'ð 'ð 'ð
 ð ð ð ð ð
&ð &ð &ð ;?ØðOBð OBà	�%”(Ô*Ô6Ô	7ðOBð OBð OBð OBðdàðð �c”ðð �C˜�HŒoð	ð ð ð ð Ôð9ð 9ñ Ôð9ðCð Cð Cð Cð&˜$ð &ð &ð &ð &ðð ð ð ð<ð <ð <ð <ð
ð 
ð 
ð 
ð?¨4ð ?ð ?ð ?ð ?ðD( Tð (ð (ð (ð (ð2ð ð ð ð �v”~ñ ô ð ð<
ð 
ð 
ð˜( 3œ-ð ð ð ð ð Ô�gÒÐØ	€Eˆ$Œ)Ô
ÑÔÐØ	€Eˆ$Œ)Ô
ÑÔÐØ	€Eˆ$Œ)Ô
ÑÔÐØ	€Eˆ$Œ)Ô
ÑÔÐÐÐð	 Ðs   Ã'C3 Ã3DÄD