Ë
    M²jÅ]  ã                   ó²  — U 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m	Z	m
Z
mZmZmZ d dlZd dlmZ d dlmZmZ d dlmZ ddlmZ erdd	lmZ g d
¢Z ed¬«       G d„ de«      «       Zi Zeedef   eej>                     f   e d<   deej>                     fd„Z! e!«       eejD                  <    G d„ d«      Z#ejH                  ejJ                  ejL                  ejN                  ejP                  jR                  e jT                  ejV                   e#«        e,d«      ejZ                   ej\                  d«      edœZ/ e0e«      D ]  Z1 e2ee1«      e/e1<   Œ dddefd„Z3dejh                  jj                  dej>                  fd„Z6i Z7ee8e9e9f   ej>                  f   e d<   dejh                  jj                  dej>                  fd„Z: ed¬«      dedef   de8d    d!ee9d"f   ddfd#„«       Z;ed$edef   d%e
d&   de8eej>                     dz  eejh                  jj                     dz  f   fd'„«       Z<e	 d8d$edef   d%e
d   deej>                     dz  fd(„«       Z< ed¬«      	 d9d$edef   d%e=deej>                     e8eej>                     dz  eejh                  jj                     dz  f   z  dz  fd)„«       Z< ed¬«      d*e>de>fd+„«       Z? ed¬«      d,ed-ede=fd.„«       Z@ ed¬«      	 	 	 	 d:dedef   de8edf   d!ee9ef   dz  d/e8e   dz  d0ee9ef   dz  d1e=defd2„«       ZA ed¬«      	 	 	 	 d:dedef   de8edf   d!ee9ef   dz  d/e8e   dz  d0ee9ef   dz  d1e=dedz  fd3„«       ZB ed¬«      	 	 d;d4ej†                  jˆ                  de9de8e   d!ee9ef   dz  d1e=dedz  fd5„«       ZEd6ej>                  de8edf   d!ee9ef   d1e=dedz  f
d7„ZFy)<é    N)ÚCallable)ÚAnyÚcastÚLiteralÚ
NamedTupleÚoverloadÚTYPE_CHECKING)Úboolean_dispatched)Ú
OpOverloadÚOpOverloadPacket)Ú
_fast_bindé   )Úcompatibility)ÚArgument)ÚArgsKwargsPairÚcheck_for_mutable_operationÚget_signature_for_torch_opÚcreate_type_hintÚtype_matchesÚnormalize_functionÚnormalize_moduleF)Úis_backward_compatiblec                   ó:   — e Zd ZU dZeedf   ed<   eeef   ed<   y)r   z<
    Simple named tuple for wrapping args/kwargs pairs.
    .ÚargsÚkwargsN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Útupler   Ú__annotations__ÚdictÚstr© ó    úX/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/fx/operator_schemas.pyr   r       s%   … ñð ��S�‰/ÓØ��c�‰NÔr%   r   .Ú_manual_overridesÚreturnc                  óþ   — g } dt         j                  dd fd„}| j                  t        j                  |«      «       dt         j                  dt
        dd fd„}| j                  t        j                  |«      «       | S )NÚselfr(   c                  ó   — y ©Nr$   )r*   s    r&   Únonzeroz!_nonzero_schemas.<locals>.nonzero0   ó   € Ør%   Úas_tuplec                 ó   — y r,   r$   )r*   r/   s     r&   r-   z!_nonzero_schemas.<locals>.nonzero5   r.   r%   )ÚtorchÚTensorÚappendÚinspectÚ	signatureÚbool)Ú
signaturesr-   s     r&   Ú_nonzero_schemasr8   -   sx   € Ø€Jð”e—l‘lð  tó ð ×Ñ”g×'Ñ'¨Ó0Ô1ð”e—l‘lð ´ð ¸$ó ð ×Ñ”g×'Ñ'¨Ó0Ô1àÐr%   c                   ó0   — e Zd Zdedej
                  fd„Zy)Ú_FakeGlobalNamespaceÚnamer(   c                 ó.   — |dk(  rt         S t        d«      ‚)Nr1   z!Expected a torch namespace lookup)r1   ÚRuntimeError)r*   r;   s     r&   Ú__getattr__z _FakeGlobalNamespace.__getattr__A   s   € Ø�7Š?ÜˆLÜÐ>Ó?Ð?r%   N)r   r   r   r#   ÚtypesÚ
ModuleTyper>   r$   r%   r&   r:   r:   @   s   „ ð@ ð @¨×(8Ñ(8ô @r%   r:   Út)r2   ÚDeviceÚLayoutÚnumberÚFutureÚAnyEnumTypeÚQSchemeÚ	__torch__ÚNoneTypeÚStoragerA   ÚPyObjectÚts_typeztorch._C.JitTypec                 ó6   — t        | j                  t        «      S )zç
    Convert a TorchScript type to a Python type (including subtypes) via
    eval'ing the annotation_str. _type_eval_globals sets up expressions
    like "List" and "Future" to map to actual types (typing.List and jit.Future)
    )ÚevalÚannotation_strÚ_type_eval_globals)rL   s    r&   Ú _torchscript_type_to_python_typerQ   Y   s   € ô �×&Ñ&Ô(:Ó;Ð;r%   Ú	ts_schemac           	      óÆ  — ddl m} g }| j                  D �]R  }t        |j                  «      }|j                  «       r|j                  n|j                  }|j                  dk7  r|j                  nd}|j                  r|j                  n|j                  }|dk(  r±||j                  k7  rt        d|› �«      ‚|j                  }t        |«      D ]z  \  }}	|	j                  |j                  k7  r%t        d|	j                  › d|	j                  › �«      ‚ ||	j                  |j                  |	j                   |	j"                  ¬	«      ||<   Œ| |j%                   |||||¬	«      «       �ŒU | j&                  D �
cg c]  }
t        |
j                  «      ‘Œ }}
t)        |«      dk(  rd }nt)        |«      d
k(  r|d   }nt+        |«      }t        j,                  ||¬«      S c c}
w )Nr   )Ú	Parameterr*   ÚinputÚfromz$Expected POSITIONAL_OR_KEYWORD, got z)Expected POSITIONAL_OR_KEYWORD for param z, got )r;   ÚkindÚdefaultÚ
annotationr   )Úreturn_annotation)r4   rT   Ú	argumentsrQ   ÚtypeÚhas_default_valueÚdefault_valueÚemptyr;   Ú
kwarg_onlyÚKEYWORD_ONLYÚPOSITIONAL_OR_KEYWORDÚAssertionErrorÚPOSITIONAL_ONLYÚ	enumeraterW   rX   rY   r3   ÚreturnsÚlenr    Ú	Signature)rR   rT   Ú
parametersÚargÚarg_typerX   r;   rW   ÚidxÚpÚretÚreturn_typesÚreturn_types                r&   Ú%_torchscript_schema_to_signature_implrq   b   sØ  € õ "à"$€JØ×"Ñ"ó %
ˆÜ3°C·H±HÓ=ˆØ'*×'<Ñ'<Ô'>�#×#Ò#ÀIÇOÁOˆð Ÿ8™8 vÒ-ˆs�xŠx°7ˆð �~Š~ð ×"Ò"à×0Ñ0ð 	ð �6Š>Ø�y×6Ñ6Ò6Ü$Ð'KÈDÈ6Ð%RÓSÐSð ×,Ñ,ˆDô $ JÓ/ò 
‘��QØ—6‘6˜Y×<Ñ<Ò<Ü(ØCÀAÇFÁFÀ8È6ÐRS×RXÑRXÐQYÐZóð ñ #,ØŸ™Ø"×2Ñ2ØŸI™IØ Ÿ|™|ô	#�
˜3’ð
ð 	×ÑÙ˜4 d°GÈÔQö	
ðG%
ðN ?H×>OÑ>OöØ7:Ô(¨¯©Õ2ð€Lð ô ˆ<Ó˜AÒØ‰Ü	ˆ\Ó	˜aÒ	Ø" 1‘o‰ä˜LÓ)ˆä×Ñ˜Z¸;ÔGÐGùòs   Å9GÚ_SCHEMA_TO_SIGNATURE_CACHEc                 ó�   — | j                   | j                  f}t        j                  |«      }|�|S t	        | «      }|t        |<   |S r,   )r;   Úoverload_namerr   Úgetrq   )rR   Ú	cache_keyÚ	cache_valÚress       r&   Ú _torchscript_schema_to_signaturery   ž   sN   € ð —‘ 	× 7Ñ 7Ð7€IÜ*×.Ñ.¨yÓ9€IØÐØÐä
/°	Ó
:€CØ,/Ô˜yÑ)Ø€Jr%   Útargetr   )r   .r   r   c                 ó\  — t        | d¬«      \  }}|r‹|rˆg }t        ||«      D ](  \  }}	 t        |g|¢­i |¤Ž |j                  ||f«       Œ* dt
        j                  j                  dd fd„}t        |«      dk(  ry t        |«      dk(  r|d   \  }	}
 ||
«       y y y y # t        $ r Y Œ‡w xY w)NT)Úreturn_schemasÚschemar(   c                 ó:   — | j                   rt        d| › d�«      ‚y )Nz!Tried to trace mutable operation z|. FX only supports functional code, so operations that mutate operands in-place (e.g. via `out` arguments) are not supported)Ú
is_mutabler=   )r}   s    r&   Úthrow_if_mutablez5check_for_mutable_operation.<locals>.throw_if_mutableÁ   s/   € Ø× Ò Ü"Ø7¸°xð @(ð )óð ð !r%   r   r   )	r   Úzipr   r3   Ú	TypeErrorr1   Ú_CÚFunctionSchemarg   )rz   r   r   r7   ÚschemasÚmatched_schemasÚcandidate_signaturer}   r€   Ú_Úschema_to_checks              r&   r   r   ¬   sÜ   € ô 5°VÈDÔQÑ€J�á‘gØSUˆô
 ,/¨z¸7Ó+Cò 	Ñ'Ð ðÜÐ.Ð@°Ò@¸Ò@Ø×&Ñ&Ð(;¸VÐ'DÕEð	ð	¤U§X¡X×%<Ñ%<ð 	Àó 	ô ˆÓ 1Ò$àÜ�Ó! QÒ&à!0°Ñ!3ÑˆAˆÙ˜_Õ-ð ð? €zøô ò Ùðús   ª"BÂ	B+Â*B+Úopr|   Tc                  ó   — y r,   r$   ©rŠ   r|   s     r&   r   r   Ö   s	   € ð SVr%   c                  ó   — y r,   r$   rŒ   s     r&   r   r   Ü   s   € ð &)r%   c                 óô  — t        | t        «      r| j                  g}n±t        | t        «      r2| j	                  «       D �cg c]  }t        | |«      j                  ‘Œ }}not        j                  | «      }|r|r|dfS dS t        j                  j                  j                  | «      }|€|rdS dS t        j                  j                  |«      }|D �cg c]  }t        |«      ‘Œ }}|r||fS |S c c}w c c}w )a„  
    Given an operator on the `torch` namespace, return a list of `inspect.Signature`
    objects corresponding to the overloads of that op.. May return `None` if a signature
    could not be retrieved.

    Args:
        op (Callable): An operator on the `torch` namespace to look up a signature for

    Returns:
        Optional[List[inspect.Signature]]: A list of signatures for the overloads of this
            operator, or None if the operator signatures could not be retrieved. If
            return_schemas=True, returns a tuple containing the optional Python signatures
            and the optional TorchScript Function signature
    N)NN)Ú
isinstancer   Ú_schemar   Ú	overloadsÚgetattrr'   ru   r1   ÚjitÚ	_builtinsÚ_find_builtinrƒ   Ú_jit_get_schemas_for_operatorry   )rŠ   r|   r…   r   ÚoverrideÚaten_fnr}   r7   s           r&   r   r   â   sæ   € ô, �"”jÔ!Ø—:‘:�,‰Ü	�BÔ(Ô	)ØACÇÁÃÖP°X”7˜2˜xÓ(×0Ó0ÐPˆÑPä$×(Ñ(¨Ó,ˆÙÙ'5�H˜dÐ#Ð?¸4Ð?ä—)‘)×%Ñ%×3Ñ3°BÓ7ˆàˆ?Ù#1�<Ð;°tÐ;Ü—(‘(×8Ñ8¸ÓAˆàIPÖQ¸vÔ2°6Õ:ÐQ€JÐQÙ$2ˆJ˜Ð ÐB¸
ÐBùò Qùò Rs   ÁC0ÃC5Úxc                 ó–  — 	 t        | t        t        f«      rˆt        | t        «      rdt        dt        fd„}ndt        dt        fd„}t	        | «      dk(  r |t        «      S | d   }| D ]+  }t        ||«      rŒt        ||«      r|}Œ |t        «      c S   ||«      S 	 | S # t        $ r t        j                  d| › �«       Y | S w xY w)aË  
    Produces a type hint for the given argument.

    The :func:`create_type_hint` looks for a type hint compatible with the input argument `x`.

    If `x` is a `list` or `tuple`, it looks for an object in the list whose type is a superclass
    of the rest, and uses that as `base_type` for the `List` or `Tuple` to be returned.
    If no such object is found, it defaults to `List[Any]`.

    If `x` is neither a `list` nor a `tuple`, it returns `x`.
    r™   r(   c                 ó   — t         |    S r,   )Úlist©r™   s    r&   Úret_typez"create_type_hint.<locals>.ret_type  s   € Ü ™7�Nr%   c                 ó   — t         | df   S )N.)r    r�   s    r&   rž   z"create_type_hint.<locals>.ret_type"  s   € Ü   C ™=Ð(r%   r   z@We were not able to successfully create type hint from the type )	r�   rœ   r    r   rg   Ú
issubclassÚ	ExceptionÚwarningsÚwarn)r™   rž   Ú	base_typerA   s       r&   r   r     sá   € ð
Ü�aœ$¤˜Ô'ä˜!œTÔ"ð#¤ð #¬ô #ð
)¤ð )¬ó )ô �1‹v˜Š{Ù¤“}Ð$Ø˜!™ˆIØò )�Ü˜a Ô+ØÜ 	¨1Ô-Ø !‘Iá#¤C›=Ò(ð)ñ ˜IÓ&Ð&ð- (ð8 €Høô ò 
ä�‰ØNÈqÈcÐRõ	
ð €Hð
ús   ‚A B# Á#3B# ÂB# Â#!CÃCÚsignature_typeÚargument_typec                 óÎ  ‡‡— t        | d| «      }| ‰u ry|t        j                  u r%| ‰k7  r | j                  }t	        ˆfd„|D «       «      S t        | dd «      t
        u r•| j                  d   Š‰t        u r	‰t        u ryt        j                  ‰«      st        j                  d| › d�«       yt        ‰dd «      t
        u rt        ‰j                  d   ‰«      S dt        d	t        fˆfd
„} |‰«      S | t        u r‰t        j                  u ry| t         j"                  u r‰t        t$        hv ryt        j                  ‰«      r!t        j                  | «      rt        ‰| «      S y)NÚ
__origin__Tc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr,   )r   )Ú.0Úcr¦   s     €r&   ú	<genexpr>ztype_matches.<locals>.<genexpr>C  s   øè ø€ ÒI°a”<  =×1ÑIùs   ƒr   z.Does not support nested parametric types, got z. Please file a bug.FrA   r(   c                 óš   •— t        j                  | «      t        uryt        j                  | «      }|dk(  ryt	        ˆfd„|D «       «      S )NF)r$   Tc              3   óJ   •K  — | ]  }|t         u xs t        |‰«      –— Œ y ­wr,   )ÚEllipsisr    )rª   r«   Úsig_el_types     €r&   r¬   z=type_matches.<locals>.is_homogeneous_tuple.<locals>.<genexpr>Z  s$   øè ø€ ÒXÈ˜œX˜ÒD¬*°Q¸Ó*DÓDÑXùs   ƒ #)ÚtypingÚ
get_originr    Úget_argsÚall)rA   Ú	containedr°   s     €r&   Úis_homogeneous_tuplez*type_matches.<locals>.is_homogeneous_tupleT  sC   ø€ Ü× Ñ  Ó#¬5Ñ0ØÜŸ™¨Ó*ˆIØ˜EÒ!ØÜÓXÈiÔXÓXÐXr%   )r’   r±   ÚUnionÚ__args__Úanyrœ   Úintr4   Úisclassr¢   r£   r    Úobjectr6   r1   ÚdtypeÚnumbersÚNumberÚfloat)r¥   r¦   Úsig_origin_typeÚsig_containedr¶   r°   s    `   @r&   r   r   8  sR  ù€ ä˜n¨l¸NÓK€Oà˜Ñ&Øð œ&Ÿ,™,Ñ&¨>¸]Ò+JØ&×/Ñ/ˆÜÓI¸=ÔIÓIÐIäˆ~˜|¨TÓ2´dÑ:Ø$×-Ñ-¨aÑ0ˆð œCÑ K´3Ñ$6Øä�‰˜{Ô+Ü�M‰MØ@ÀÐ@PÐPdÐeôð Ü�= ,°Ó5¼Ñ=Ü˜m×4Ñ4°QÑ7¸ÓEÐEð	Y¤Fð 	Y¬tõ 	Yñ $ MÓ2Ð2ð œÑ ´%·+±+Ñ!=ØàœŸ™Ñ'¨M¼cÄ5¸\Ñ,IØÜ‡��}Ô%¬'¯/©/¸.Ô*IÜ˜-¨Ó8Ð8àr%   Ú	arg_typesÚkwarg_typesÚnormalize_to_only_use_kwargsc                 óR   — t        | |||||«      }|€t        d| › d|› d|› �«      ‚|S )zb
    Wrapper around normalize_function that never returns None, but
    loudly errors instead
    zFailed to normalize function z with args z and kwargs )r   r=   )rz   r   r   rÃ   rÄ   rÅ   rx   s          r&   Ú_normalize_function_or_errorrÇ   k  sO   € ô Ø��f˜i¨Ð6Ró€Cð €{ÜØ+¨F¨8°;¸t¸fÀLÐQWÐPXÐYó
ð 	
ð ˆ
r%   c                 óº  — |€i }d}t        | t        j                  «      s.t        | t        t        f«      st        | d«      r| j                  } t        | t        j                  «      sêt        | t        t        f«      sÔ| }| t        v rpt        | t        «      rt        d«      ‚t        |    }|d   |d   }
}	t        j                  |	«      j                  t        j                  |
«      j                  k7  ry|	}t        |«      st        dt        |«      › �«      ‚t        j                  t        j                  |«      «      }t!        ||||«      }|S t        | «      st        dt        | «      › �«      ‚t#        | «      }g }|�r5|D ]#  }	 t%        |g|¢­i |¤Ž |j'                  |«       Œ% t+        |«      dk(  r	 |S t+        |«      d	k(  rt!        |d   |||«      }|S |€|�›|r|nt-        t.        t0           d
«      }|r|ni }|D ]s  }d}	 t%        |g|¢­i |¤Ž}|j2                  j5                  «       D ].  \  }}|j                  |   }|xr t7        |j8                  |«      }Œ0 	 |sŒdt!        ||||«      } |S  |S dj;                  d„ |D «       «      }t=        dt?        j@                  | «      › d|› �«      ‚|S # t(        $ r Y �ŒAw xY w# t(        $ r d}Y Œrw xY w)að  
    Returns normalized arguments to PyTorch functions. This means that
    `args/kwargs` will be matched up to the functional's
    signature and return exclusively kwargs in positional order if
    `normalize_to_only_use_kwargs` is True.
    Also populates default values. Does not support positional-only
    parameters or varargs parameters (*args, **kwargs). Does not support modules.

    May require `arg_types` and `kwarg_types` in order to disambiguate overloads.

    Args:
        target (Callable): Function that we are normalizing
        args (Tuple[Any]): Tuple of args to the function
        kwargs (Optional[Dict[str, Any]]): Dict of kwargs to the function
        arg_types (Optional[Tuple[Any]]): Tuple of arg types for the args
        kwarg_types (Optional[Dict[str, Any]]): Dict of arg types for the kwargs
        normalize_to_only_use_kwargs (bool): Whether to normalize to only use kwargs.

    Returns:

        Returns normalized_args_and_kwargs, or `None` if not successful.
    NÚ_opz"target should not be a string hereÚif_trueÚif_falsez*target_for_analysis must be callable, got ztarget must be callable, got r   r   r$   TFú
c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr,   )r#   )rª   r}   s     r&   r¬   z%normalize_function.<locals>.<genexpr>  s   è ø€ ò 1Ø(.œ˜FŸñ1ùs   ‚z Tried to normalize arguments to zy but the schema match was ambiguous! Please provide argument types to the normalize_arguments() call. Available schemas:
)!r�   r?   ÚBuiltinFunctionTyper   r   ÚhasattrrÉ   r
   r#   rc   r4   r5   ri   Úcallabler\   ÚunwrapÚ&_args_kwargs_to_normalized_args_kwargsr   r   r3   r‚   rg   r   r    r   r[   Úitemsr   rY   Újoinr=   r1   Útypename)rz   r   r   rÃ   rÄ   rÅ   Únew_args_and_kwargsÚtarget_for_analysisÚ
dispatchedrÊ   rË   ÚsigÚtorch_op_schemasr†   r‡   Úsig_matchesÚbound_typesÚarg_namerk   ÚparamÚschema_printoutss                        r&   r   r   ƒ  sp  € ð> €~ØˆØÐä�vœu×8Ñ8Ô9Ü˜FÔ%5´zÐ$BÔCÜ�F˜EÔ"ð —‘ˆô �fœe×7Ñ7Ô8Ü�6Ô,¬jÐ9Ô:à$ÐØÔ'Ñ'ô
 ˜&¤#Ô&Ü$Ð%IÓJÐJÜ+¨FÑ3ˆJØ *¨9Ñ 5°zÀ*Ñ7M�XˆGä×!Ñ! 'Ó*×5Ñ5Ü×$Ñ$ XÓ.×9Ñ9ò:ð Ø")ÐäÐ+Ô,Ü Ø<¼TÐBUÓ=VÐ<WÐXóð ô ×Ñ¤§¡Ð/BÓ CÓDˆÜDØ��vÐ;ó
ÐðD Ðô} ˜ÔÜ Ð#@ÄÀfÃÀÐ!OÓPÐPÜ5°fÓ=ÐØ35ˆÚð (8ò Ð#ðÜÐ2ÐD°TÒD¸VÒDØ#×*Ñ*Ð+>Õ?ðô �?Ó# qÒ(àðZ ÐôY �_Ó%¨Ò*ä&LØ# AÑ&¨¨fÐ6Ró'Ð#ðT ÐðM Ð(¨KÐ,CÙ-6¡	¼DÄÄsÁÈRÓ<P�IÙ1<¡+À"�KØ/?ò "Ð+Ø&*˜ð
0Ü*4Ø 3ð+Ø6?ò+ØCNñ+˜Kð 7B×6KÑ6K×6QÑ6QÓ6Sò "Ñ 2 ¨(Ø(;×(FÑ(FÀxÑ(P Ø.9ò /"¼lØ$)×$4Ñ$4°hó?"¡ñ"ò 'ä FØ$7Ø$(Ø$*Ø$@ó	!"ð 0ð "ð ÐðG"ðF Ðð (,§y¡yñ 1Ø2Aô1ó (Ð$ô 'Ø:¼5¿>¹>È&Ó;QÐ:Rð SOàO_ÐN`ðbóð ð Ðøôe !ò Úðûô4  )ò 0Ø*/šKð0ús%   Æ J<ÈAKÊ<	K	ËK	ËKËKÚrootc                 óž  — 	 | j                  |«      }t        |j                  d«      r„|j                  j
                  }t        t        j                  |d«      |j                  k(  rFt        j                  t        j                  |j                  «      «      }|€i }t        ||||«      }	|	S y# t        $ r}t        d|› d�«      |‚d}~ww xY w)a(  
    Returns normalized arguments to PyTorch modules. This means that
    `args/kwargs` will be matched up to the functional's
    signature and return exclusively kwargs in positional order if
    `normalize_to_only_use_kwargs` is True.
    Also populates default values. Does not support positional-only
    parameters or varargs parameters (*args, **kwargs).

    Args:
        root (nn.Module): root module upon which we query modules
        target (Callable): Function that we are normalizing
        args (Tuple[Any]): Tuple of args to the function
        kwargs (Optional[Dict[str, Any]]): Dict of kwargs to the function
        normalize_to_only_use_kwargs (bool): Whether to normalize to only use kwargs.

    Returns:

        Returns normalized_args_and_kwargs, or `None` if not successful.
    z$Tried to normalize node with target z# but root did not have that target!Nr   )Úget_submoduleÚAttributeErrorr=   rÏ   Ú	__class__r   r’   r1   Únnr4   r5   rÑ   ÚforwardrÒ   )
rà   rz   r   r   rÅ   ÚsubmodÚeÚ	classnamerÙ   rÖ   s
             r&   r   r     sÑ   € ð6Ø×#Ñ# FÓ+ˆô ˆv×Ñ Ô,Ø×$Ñ$×-Ñ-ˆ	Ü”5—8‘8˜Y¨Ó-°×1AÑ1AÒAÜ×#Ñ#¤G§N¡N°6·>±>Ó$BÓCˆCØˆ~Ø�Ü"HØ�T˜6Ð#?ó#Ðð 'Ð&Øøô ò ÜØ2°6°(ð ; ð !ó
ð ð	ûðús   ‚B. Â.	CÂ7CÃCrÙ   c                 óB  ‡	— t         j                  j                  t         j                  j                  hŠ	t	        ˆ	fd„| j
                  j                  «       D «       «      r)t        | j
                  j                  «       «      g d¢k7  ryt        | g|¢­i |¤Ž}|j                  «        i }g }t        | j
                  «      D ]F  \  }}|s-|t        |«      k  r|j                  |j                  |   «       Œ5|j                  |   ||<   ŒH t        t!        |«      |«      S )a…  
    Given a call target, args, and kwargs, return the arguments normalized into
    an ArgsKwargsPair, or None if the type signature is not supported by
    this normalization.

    Args:

        sig (inspect.Signature): Signature object for the target
        args (Tuple): Arguments that appear at the callsite for `target`
        kwargs (Dict): Keyword arguments that appear at the callsite for `target`
        normalize_to_only_use_kwargs (bool): Whether to normalize to only use kwargs.

    Returns:

        Optional[ArgsKwargsPair]: Normalized args and kwargs for `target`, or `None` if
            this target is not supported.
    c              3   ó:   •K  — | ]  }|j                   ‰v–— Œ y ­wr,   )rW   )rª   rm   Úsupported_parameter_typess     €r&   r¬   z9_args_kwargs_to_normalized_args_kwargs.<locals>.<genexpr>\  s   øè ø€ Ò
T°qˆ1�6‰6Ð2Ô2Ñ
Tùs   ƒ)rU   rV   ÚtoÚ	generatorN)r4   rT   rb   ra   r¹   ri   Úvaluesrœ   Úkeysr   Úapply_defaultsre   rg   r3   r[   r   r    )
rÙ   r   r   rÅ   Ú
bound_argsÚ
new_kwargsÚnew_argsÚirÞ   rì   s
            @r&   rÒ   rÒ   >  sú   ø€ ô6 	×Ñ×/Ñ/Ü×Ñ×&Ñ&ð!Ðô Ó
T¸C¿N¹N×<QÑ<QÓ<SÔ
TÔTô
 �—‘×#Ñ#Ó%Ó&Ò*NÒNØä˜CÐ1 $Ò1¨&Ñ1€JØ×ÑÔà!#€JØ€HÜ˜cŸn™nÓ-ò <‰ˆˆ5Ù+°´C¸³I²Ø�O‰O˜J×0Ñ0°Ñ7Õ8à *× 4Ñ 4°UÑ ;ˆJ�uÒð	<ô œ% ›/¨:Ó6Ð6r%   ).)F)NNNF)NF)GÚenumr4   r¾   r?   r±   r¢   Úcollections.abcr   r   r   r   r   r   r	   r1   Útorch._jit_internalr
   Ú
torch._opsr   r   Útorch.utils._inspectr   Ú_compatibilityr   Únoder   Ú__all__r   r'   r"   rœ   rh   r!   r8   r-   r:   r2   ÚdeviceÚlayoutr¿   r“   rE   ÚEnumÚqschemer\   ÚUntypedStorageÚTypeVarrP   ÚdirÚkr’   rQ   rƒ   r„   rq   rr   r    r#   ry   r   r   r6   r¼   r   r   rÇ   r   rå   ÚModuler   rÒ   r$   r%   r&   ú<module>r     sÜ  ðÜ Û Û Û Û Û Ý $ß J× Jã Ý 2ß 3Ý +å )ñ Ýò€ñ  eÔ,ô�Zó ó -ðð HJÐ �4˜  c Ñ*¨D°×1BÑ1BÑ,CÐCÑDÓ Ið˜$˜w×0Ñ0Ñ1ó ñ  $4Ó#5Ð �%—-‘-Ñ  ÷@ñ @ð �l‰lØ�l‰lØ�l‰lØ�n‰nØ�i‰i×ÑØ—9‘9Ø�}‰}Ù%Ó'Ù�T“
Ø×#Ñ#Ø	ˆ�‰˜Ó	ØñÐ ñ 
ˆV‹ò /€AÙ# F¨AÓ.Ð�qÒð/ð<Ð.@ð <ÀSó <ð6HØ�x‰x×&Ñ&ð6Hà×Ñó6Hðr HJÐ ˜D  s¨C x¡°'×2CÑ2CÐ!CÑDÓ IðØ�x‰x×&Ñ&ðà×Ñóñ  eÔ,ð&Ø�S˜#�XÑð&à
�Ñ
 ð&ð ��j�Ñ!ð&ð 
ò	&ó -ð&ðR 
ðVØ��c�ÑðVØ,3°D©MðVà
ˆ4�×!Ñ!Ñ" TÑ)¨4°·±×0GÑ0GÑ+HÈ4Ñ+OÐOÑPòVó 
ðVð
 
à=@ñ)Ø��c�Ñð)Ø,3°E©Nð)à	ˆ'×
Ñ
Ñ˜tÑ#ò)ó 
ð)ñ
  eÔ,à38ñ%CØ��c�Ñð%CØ,0ð%Cð 	ˆ×	Ñ	ÑØˆD�×"Ñ"Ñ# dÑ*¨D°·±×1HÑ1HÑ,IÈDÑ,PÐPÑQñRà
ñò%Có -ð%CñP  eÔ,ð)˜ð ) 6ò )ó -ð)ñX  eÔ,ð/ ð /°Sð /¸Tò /ó -ð/ñd  eÔ,ð %)Ø#'Ø)-Ø).ñØ�S˜#�XÑðà
��S�‰/ðð ��c�‰N˜TÑ!ðð �S‰z˜DÑ ð	ð
 �c˜3�h‘ $Ñ&ðð #'ðð òó -ðñ.  eÔ,ð %)Ø#'Ø)-Ø).ñHØ�S˜#�XÑðHà
��S�‰/ðHð ��c�‰N˜TÑ!ðHð �S‰z˜DÑ ð	Hð
 �c˜3�h‘ $Ñ&ðHð #'ðHð �dÑòHó -ðHñV  eÔ,ð
 %)Ø).ñ+Ø
�(‰(�/‰/ð+àð+ð �‰*ð+ð ��c�‰N˜TÑ!ð	+ð
 #'ð+ð �dÑò+ó -ð+ð\17Ø	×	Ñ	ð17à
��S�‰/ð17ð ��c�‰Nð17ð #'ð	17ð
 �dÑô17r%   