Ë
    |D™jØ  ã                  óä  — U d dl mZ d dlmZmZ d dlmZmZ d dlmZ	 d dlm
Z d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZmZmZmZ d dlmZmZ d dlm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/m0Z0mZm1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmZ ddlDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZP ddlQmRZRmSZS ddlTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[ ddl\m]Z]m^Z^ ddl_m`Z`maZambZb ddlcmdZdmeZemfZf ddlgmhZhmiZimjZjmkZkmlZlmmZmmnZn ddlomlZp ddlommZq ddlrmsZs ddltmuZumvZvmwZw ddlxmyZy g d¢Zz ed«      Z{ ed«      Z| ed eUe[   ¬!«      Z}eeYe{ge[f   Z~d"ed#<    ed$d%¬!«      Z€ ed&d'¬!«      Z� ed(eUeX   ¬!«      Z‚eeYe{geXf   Zƒd"ed)<    ed*d+¬!«      Z„ ed,d-¬!«      Z… ed.e[¬!«      Z† ed/eX¬!«      Z‡ ed0e¬!«      Zˆ G d1„ d2e«      Z‰d:d3„ZŠ G d4„ d5«      Z‹ G d6„ d7e‹«      ZŒeŒZ�d"ed8<   y9);é    )Úannotations)ÚCounterÚdeque)ÚCallableÚIterable)ÚMapping)ÚMutableMapping)ÚField)ÚEnum)Ú	Signature)Ú	signature)ÚPath)ÚAnyÚOptionalÚTupleÚTypeVarÚoverload)Ú	AttributeÚresolve_types)Úhas)ÚSelfé   )$ÚANIESÚFrozenSetSubscriptabler   r	   ÚMutableSequenceÚNoneTypeÚOriginAbstractSetÚOriginMutableSetÚSequenceÚSetÚ	TypeAliasÚfieldsÚget_final_baseÚget_newtype_baseÚ
get_originr   Úhas_with_genericÚis_annotatedÚis_bareÚ
is_counterÚis_dequeÚis_frozensetÚ
is_genericÚis_generic_attrsÚis_hetero_tupleÚ
is_literalÚ
is_mappingÚis_mutable_sequenceÚis_mutable_setÚis_optionalÚis_protocolÚis_subclassÚis_tupleÚis_typeddictÚis_union_typer   )Údefaultdict_structure_factoryÚ"homogenous_tuple_structure_factoryÚis_abstract_setÚis_defaultdictÚis_namedtupleÚis_sequenceÚiterable_unstructure_factoryÚlist_structure_factoryÚmapping_structure_factoryÚmapping_unstructure_factoryÚnamedtuple_structure_factoryÚnamedtuple_unstructure_factory)Úcreate_default_dis_funcÚis_supported_union)ÚHookFactoryÚMultiStrategyDispatchÚStructuredValueÚStructureHookÚ
TargetTypeÚUnstructuredValueÚUnstructureHook)Úenum_structure_factoryÚenum_unstructure_factory)ÚIterableValidationErrorÚIterableValidationNoteÚStructureHandlerNotFoundError)Ú	PredicateÚidentityÚraise_error)ÚAttributeOverrideÚHeteroTupleUnstructureFnÚIterableUnstructureFnÚMappingUnstructureFnÚmake_dict_structure_fnÚmake_dict_unstructure_fnÚ make_hetero_tuple_unstructure_fn)rZ   )r[   )Úis_literal_containing_enums)Úget_type_alias_baseÚis_type_aliasÚtype_alias_structure_factory)ÚSimpleStructureHook)ÚBaseConverterÚ	ConverterÚGenConverterÚUnstructureStrategyÚTÚVÚUnstructureHookFactory)Úboundr!   ÚExtendedUnstructureHookFactoryÚAnyUnstructureHookFactoryBasezLHookFactory[UnstructureHook] | ExtendedUnstructureHookFactory[BaseConverter]ÚAnyUnstructureHookFactoryzHHookFactory[UnstructureHook] | ExtendedUnstructureHookFactory[Converter]ÚStructureHookFactoryÚExtendedStructureHookFactoryÚAnyStructureHookFactoryBasezHHookFactory[StructureHook] | ExtendedStructureHookFactory[BaseConverter]ÚAnyStructureHookFactoryzDHookFactory[StructureHook] | ExtendedStructureHookFactory[Converter]ÚUnstructureHookTÚStructureHookTÚCounterTc                  ó   — e Zd ZdZdZdZy)re   z)`attrs` classes unstructuring strategies.ÚasdictÚastupleN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚAS_DICTÚAS_TUPLE© ó    ú]/var/www/html/Astrologybackend/backend/venv/lib/python3.12/site-packages/cattrs/converters.pyre   re   ˜   s   „ Ù3à€GØ�Hr~   re   c                óÌ   — t        | «      }t        |j                  «      dk\  xr@ t        |j                  j	                  «       «      d   j
                  t        j                  u S )z.Does this factory also accept a converter arg?é   r   )Úinspect_signatureÚlenÚ
parametersÚlistÚvaluesÚdefaultr   Úempty)ÚfactoryÚsigs     r   Ú_is_extended_factoryr‹   Ÿ   sS   € ô ˜GÓ
$€CäˆC�N‰NÓ˜qÑ ò 	JÜ�#—.‘.×'Ñ'Ó)Ó*¨1Ñ-×6Ñ6¼)¿/¹/ÐIðr~   c                  ó2  — e Zd ZdZdZeej                  ddd„ d„ f	 	 	 	 	 	 	 	 	 	 	 	 	 d6d„Zd7d8d	„Z	e
d9d
„«       Zed:d„«       Zed;d„«       Z	 d<	 	 	 	 	 d=d„Z	 	 	 	 	 	 d>d„Ze	 	 	 	 d?d„«       Ze	 	 	 	 	 	 d@d„«       Ze	 	 	 	 	 	 dAd„«       Zd7d„Z	 dB	 	 	 	 	 dCd„ZedDd„«       ZedEd„«       Z	 d7	 	 	 	 	 dFd„Z	 	 	 	 	 	 dGd„Ze	 	 	 	 dHd„«       Ze	 	 	 	 	 	 dId„«       Ze	 	 	 	 	 	 dJd„«       Zd7d„ZdKd„ZdBdLd„ZdMd„ZdNd„ZdOd „ZdPd!„ZdQd"„Z	 	 	 	 dRd#„Z	 dB	 	 	 	 	 dSd$„ZedTd%„«       Zed&„ «       Zed'„ «       Z dUd(„Z!d)„ Z"dVd*„Z#dWd+„Z$dXd,„Z%dYd-„Z&e'f	 	 	 	 	 	 	 dZd.„Z(	 	 	 	 	 	 d[d/„Z)d\d0„Z*d1„ Z+d]d2„Z,	 	 d^	 	 	 	 	 	 	 d_d3„Z-d`d4„Z.	 	 	 	 da	 	 	 	 	 	 	 	 	 dbd5„Z/y)crb   z2Converts between structured and unstructured data.)
Ú_dict_factoryÚ_prefer_attrib_convertersÚ_struct_copy_skipÚ_structure_attrsÚ_structure_funcÚ_union_struct_registryÚ_unstruct_copy_skipÚ_unstructure_attrsÚ_unstructure_funcÚdetailed_validationFTc                ó   — t         S ©N©rT   ©Ú_s    r   ú<lambda>zBaseConverter.<lambda>À   ó   € Ìx€ r~   c                ó   — t        d | «      S r˜   ©rU   ©Úts    r   rœ   zBaseConverter.<lambda>Á   ó   € Ì;Ø�!óL
€ r~   c                ó¦  ‡ — t        |«      }|‰ _        |‰ _        i ‰ _        |t         j                  u r#‰ j
                  ‰ _        ‰ j                  ‰ _        n"‰ j                  ‰ _        ‰ j                  ‰ _        t        |‰ «      ‰ _        ‰ j                  j                  t        t        ft         t        ft"        t         fg«       ‰ j                  j%                  d„ ˆ fd„ft&        ˆ fd„fd„ ˆ fd„dft(        ˆ fd„dft*        ‰ j,                  ft.        ‰ j0                  ft2        ‰ j0                  ft4        ‰ j0                  ft6        ‰ j8                  fd„ t:        d	ft<        ‰ j                  ft>        ‰ j@                  fd
„ ‰ j8                  fg«       t        |‰ «      ‰ _!        ‰ jB                  j%                  d„ d„ ftD        ‰ jF                  dfd„ ‰ jH                  ft(        tJ        d	fd„ ‰ jL                  dftN        ‰ jP                  ft6        ‰ jR                  ft.        tT        d	ftV        tX        d	ftZ        ‰ j\                  ft2        ‰ j^                  ft`        ‰ jb                  ft4        ‰ jb                  ftd        ‰ jf                  fth        tj        d	ft*        ‰ jl                  fg|t         j                  u rtn        ‰ jp                  dfgng ¢tr        ‰ jt                  f‘ˆ fd„‰ j                  jv                  df‘d„ tx        d	f‘t<        ‰ j                  f‘«       ‰ jB                  j                  t         ‰ jz                  ft        ‰ jz                  ft|        ‰ jz                  ft~        ‰ jz                  ft"        ‰ jz                  fg«       |‰ _@        ‰ j                  jƒ                  «       ‰ _B        ‰ jB                  jƒ                  «       ‰ _C        y)a¸  
        :param detailed_validation: Whether to use a slightly slower mode for detailed
            validation errors.
        :param unstructure_fallback_factory: A hook factory to be called when no
            registered unstructuring hooks match.
        :param structure_fallback_factory: A hook factory to be called when no
            registered structuring hooks match.

        ..  versionadded:: 23.2.0 *unstructure_fallback_factory*
        ..  versionadded:: 23.2.0 *structure_fallback_factory*
        ..  versionchanged:: 24.2.0
            The default `structure_fallback_factory` now raises errors for missing handlers
            more eagerly, surfacing problems earlier.
        c                ó   — t        | «      d uS r˜   ©r$   r    s    r   rœ   z(BaseConverter.__init__.<locals>.<lambda>ê   s   € Ô.¨qÓ1¸Ð=€ r~   c                ó>   •— ‰j                  | | j                  ¬«      S ©N)Úunstructure_as©ÚunstructureÚ	__class__©ÚoÚselfs    €r   rœ   z(BaseConverter.__init__.<locals>.<lambda>ë   ó   ø€ ˜d×.Ñ.¨qÀÇÁÐ.ÓM€ r~   c                ó>   •— ‰j                  | | j                  ¬«      S r§   r©   r¬   s    €r   rœ   z(BaseConverter.__init__.<locals>.<lambda>ï   r¯   r~   c                ó   — t        | «      d uS r˜   ©r#   r    s    r   rœ   z(BaseConverter.__init__.<locals>.<lambda>ò   ó   € œn¨QÓ/°tÐ;€ r~   c                ó8   •— ‰j                  t        | «      «      S r˜   )Úget_unstructure_hookr#   ©r¡   r®   s    €r   rœ   z(BaseConverter.__init__.<locals>.<lambda>ó   s   ø€ ˜d×7Ñ7¼ÀqÓ8IÓJ€ r~   Tc                ó8   •— ‰j                  t        | «      «      S r˜   )rµ   r^   r¶   s    €r   rœ   z(BaseConverter.__init__.<locals>.<lambda>ø   s   ø€ ˜d×7Ñ7Ô8KÈAÓ8NÓO€ r~   c                ó"   — t        | t        «      S r˜   ©r5   r   r    s    r   rœ   z(BaseConverter.__init__.<locals>.<lambda>   ó   € œ; q¬$Ó/€ r~   Úextendedc                ó   — | t         v S r˜   )r   r    s    r   rœ   z(BaseConverter.__init__.<locals>.<lambda>  s
   € ˜1¤˜:€ r~   c                ó2   — | t         v xs | t        u xs | d u S r˜   )r   r   )Úcls    r   rœ   z(BaseConverter.__init__.<locals>.<lambda>  s   € ˜r¤U˜{ÒJ¨b´H¨nÒJÀÀdÀ
€ r~   c                ó   — | S r˜   r}   )Úvr›   s     r   rœ   z(BaseConverter.__init__.<locals>.<lambda>  s   €  € r~   c                ó   — t        | «      d uS r˜   r¥   r    s    r   rœ   z(BaseConverter.__init__.<locals>.<lambda>  s   € Ô+¨AÓ.°dÐ:€ r~   c                ó   — t        | «      d uS r˜   r²   r    s    r   rœ   z(BaseConverter.__init__.<locals>.<lambda>  r³   r~   c                ó:   •— t        | «      xr | ‰j                  v S r˜   )r8   r’   r¶   s    €r   rœ   z(BaseConverter.__init__.<locals>.<lambda>+  s   ø€ œm¨AÓ.ÒS°1¸×8SÑ8SÐ3S€ r~   c                ó"   — t        | t        «      S r˜   r¹   r    s    r   rœ   z(BaseConverter.__init__.<locals>.<lambda>/  rº   r~   N)Dre   rŽ   r–   r’   r{   Úunstructure_attrs_asdictr”   Ústructure_attrs_fromdictr�   Úunstructure_attrs_astupleÚstructure_attrs_fromtuplerH   r•   Úregister_cls_listÚbytesrT   Ústrr   Úregister_func_listr4   r_   r0   Ú_unstructure_mappingr>   Ú_unstructure_seqr2   r+   r]   rª   rO   r   r8   Ú_unstructure_unionr‘   r-   Ú_gen_structure_genericÚ_structure_newtyper`   Ú_structure_final_factoryr/   Ú_structure_simple_literalÚ_structure_enum_literalr:   r1   r@   r*   Ú_structure_dequeÚ_structure_setr;   Ú_structure_frozensetr6   Ú_structure_tupler=   rC   Ú_structure_dictrF   Ú_gen_attrs_union_structurer3   Ú_structure_optionalÚ__getitem__rN   Ú_structure_callÚintÚfloatr�   Úget_num_fnsr“   r�   )r®   Údict_factoryÚunstruct_stratÚprefer_attrib_convertersr–   Úunstructure_fallback_factoryÚstructure_fallback_factorys   `      r   Ú__init__zBaseConverter.__init__º   s¸  ø€ ô2 -¨^Ó<ˆØ)AˆÔ&à#6ˆÔ ØNPˆÔ#ð Ô0×8Ñ8Ñ8Ø&*×&CÑ&CˆDÔ#Ø$(×$AÑ$AˆDÕ!à&*×&DÑ&DˆDÔ#Ø$(×$BÑ$BˆDÔ!ä!6Ø(¨$ó"
ˆÔð 	×Ñ×0Ñ0Ü”XÐ¤¤h ´$¼°Ð=ô	
ð 	×Ñ×1Ñ1ñ >ÛMðô
  ÛMðñ
 <ÛJØðô "ÛOØðô
 ˜T×6Ñ6Ð7Ü˜d×3Ñ3Ð4Ü ×!6Ñ!6Ð7Ü˜t×4Ñ4Ð5Ü,¨d×.>Ñ.>Ð?Ù/Ô1IÈ:ÐVÜ�d×-Ñ-Ð.Ü × 7Ñ 7Ð8Ù% t×'7Ñ'7Ð8ð7ô	
ôF  5Ð5OÐQUÓVˆÔØ×Ñ×/Ñ/ñ KÙ"ðô " 4×#>Ñ#>ÀÐEÙ:¸D×<SÑ<SÐTÜÔ <¸jÐIá;Ø×1Ñ1Øðô
 ˜T×;Ñ;Ð<Ü,¨d×.JÑ.JÐKÜÔ@À*ÐMÜ$Ô&<¸jÐIÜ˜4×0Ñ0Ð1Ü ×!4Ñ!4Ð5Ü  $×";Ñ";Ð<Ü˜t×8Ñ8Ð9Ü˜4×0Ñ0Ð1ÜÔ <¸jÐIÜ˜T×1Ñ1Ð2ð/%ð4 &Ô)<×)DÑ)DÑDô )¨$×*IÑ*IÈ4ÐPÑQàð7%ô: ˜d×6Ñ6Ð7ð;%ó> TØ×/Ñ/×;Ñ;Øðð=%ñF 0Ô1GÈÐTðG%ôH �d×+Ñ+Ð,ðI%ô'	
ðR 	×Ñ×.Ñ.ä�d×*Ñ*Ð+Ü˜×,Ñ,Ð-Ü�d×*Ñ*Ð+Ü˜×,Ñ,Ð-Ü�t×+Ñ+Ð,ðô	
ð *ˆÔà#'×#9Ñ#9×#EÑ#EÓ#GˆÔ Ø!%×!5Ñ!5×!AÑ!AÓ!CˆÕr~   Nc                ór   —  | j                   j                  |€|j                  «      |«      S |«      |«      S r˜   ©r•   Údispatchr«   )r®   Úobjr¨   s      r   rª   zBaseConverter.unstructureC  sH   € ð
ˆt×%Ñ%×.Ñ.Ø+Ð3ˆC�M‰Mó
à
óð 	Ø9Gó
à
óð 	r~   c                ót   — | j                   | j                  k(  rt        j                  S t        j                  S )z3The default way of unstructuring ``attrs`` classes.)r”   rÅ   re   r{   r|   )r®   s    r   râ   zBaseConverter.unstruct_stratH  s8   € ð
 ×&Ñ&¨$×*GÑ*GÒGô  ×'Ñ'ð	
ô %×-Ñ-ð	
r~   c                 ó   — y r˜   r}   )r®   Úclss     r   Úregister_unstructure_hookz'BaseConverter.register_unstructure_hookQ  s   € ØTWr~   c                 ó   — y r˜   r}   )r®   rí   Úfuncs      r   rî   z'BaseConverter.register_unstructure_hookT  s   € ØRUr~   c                ó.  ‡— |€W‰}t        |«      }t        t        |j                  j	                  «       «      «      j
                  Š| j                  ‰|«       |S t        ‰«      rt        ‰«       t        ‰«      r"| j                  j                  ˆfd„|fg«       yt        ‰«      r"| j                  j                  ˆfd„|fg«       yt        ‰«      �"| j                  j                  ˆfd„|fg«       y| j                  j                  ‰|fg«       y)a(  Register a class-to-primitive converter function for a class.

        The converter function should take an instance of the class and return
        its Python equivalent.

        May also be used as a decorator. When used as a decorator, the first
        argument annotation from the decorated function will be used as the
        type to register the hook for.

        .. versionchanged:: 24.1.0
            This method may now be used as a decorator.
        .. versionchanged:: 25.1.0
            Modern type aliases are now supported.
        Nc                ó   •— | ‰k(  S r˜   r}   ©r¡   rí   s    €r   rœ   z9BaseConverter.register_unstructure_hook.<locals>.<lambda>t  s   ø€ À!ÀsÁ(€ r~   c                ó   •— | ‰u S r˜   r}   ró   s    €r   rœ   z9BaseConverter.register_unstructure_hook.<locals>.<lambda>v  ó   ø€ À!ÀsÀ(€ r~   c                ó   •— | ‰u S r˜   r}   ró   s    €r   rœ   z9BaseConverter.register_unstructure_hook.<locals>.<lambda>y  rõ   r~   )r   ÚnextÚiterr„   r†   Ú
annotationrî   Ú	attrs_hasr   r8   r•   rÌ   r_   r$   rÉ   )r®   rí   rð   rŠ   s    `  r   rî   z'BaseConverter.register_unstructure_hookW  s  ø€ ð" ˆ<àˆDÜ˜D“/ˆCÜ”t˜CŸN™N×1Ñ1Ó3Ó4Ó5×@Ñ@ˆCØ×*Ñ*¨3°Ô5àˆKä�SŒ>Ü˜#ÔÜ˜ÔØ×"Ñ"×5Ñ5Ó8JÈDÐ7QÐ6RÔSð ô ˜3ÔØ×"Ñ"×5Ñ5Ó8JÈDÐ7QÐ6RÔSð ô ˜cÓ"Ð.à×"Ñ"×5Ñ5Ó8JÈDÐ7QÐ6RÔSð ð ×"Ñ"×4Ñ4°s¸D°k°]ÔCØr~   c                ó@   — | j                   j                  ||fg«       y©zyRegister a class-to-primitive converter function for a class, using
        a function to check if it's a match.
        N)r•   rÌ   ©r®   Ú
check_funcrð   s      r   Úregister_unstructure_hook_funcz,BaseConverter.register_unstructure_hook_func~  s    € ð 	×Ñ×1Ñ1°JÀÐ3EÐ2FÕGr~   c                 ó   — y r˜   r}   ©r®   Ú	predicates     r   Ú!register_unstructure_hook_factoryz/BaseConverter.register_unstructure_hook_factory†  s	   € ð TWr~   c                 ó   — y r˜   r}   ©r®   r  r‰   s      r   r  z/BaseConverter.register_unstructure_hook_factory‹  ó   € ð "%r~   c                 ó   — y r˜   r}   r  s      r   r  z/BaseConverter.register_unstructure_hook_factory�  s   € ð
 9<r~   c                óv   ‡ ‡— |€ˆˆ fd„}|S ‰ j                   j                  ‰|t        |«      rdndfg«       |S )aí  
        Register a hook factory for a given predicate.

        The hook factory may expose an additional required parameter. In this case,
        the current converter will be provided to the hook factory as that
        parameter.

        May also be used as a decorator.

        :param predicate: A function that, given a type, returns whether the factory
            can produce a hook for that type.
        :param factory: A callable that, given a type, produces an unstructuring
            hook for that type. This unstructuring hook will be cached.

        .. versionchanged:: 24.1.0
            This method may now be used as a decorator.
            The factory may also receive the converter as a second, required argument.
        c                óš   •— t        | «      r ‰j                  j                  ‰| dfg«       y ‰j                  j                  ‰| dfg«       y ©Nr»   T)r‹   r•   rÌ   ©r‰   r  r®   s    €€r   Ú	decoratorzBBaseConverter.register_unstructure_hook_factory.<locals>.decorator¬  sO   ø€ ä'¨Ô0Ø×*Ñ*×=Ñ=Ø# W¨jÐ9Ð:õð ×*Ñ*×=Ñ=Ø# W¨dÐ3Ð4õr~   r»   T)r•   rÌ   r‹   ©r®   r  r‰   r  s   ``  r   r  z/BaseConverter.register_unstructure_hook_factory—  sP   ù€ ð& ˆ?õ	ð Ðà×Ñ×1Ñ1ð ØÜ"6°wÔ"?‘JÀTððô	
ð ˆr~   c                ór   — |r| j                   j                  |«      S | j                   j                  |«      S )al  Get the unstructure hook for the given type.

        This hook can be manually called, or composed with other functions
        and re-registered.

        If no hook is registered, the converter unstructure fallback factory
        will be used to produce one.

        :param cache: Whether to cache the returned hook.

        .. versionadded:: 24.1.0
        )r•   ré   Údispatch_without_caching©r®   ÚtypeÚcache_results      r   rµ   z"BaseConverter.get_unstructure_hookÄ  s=   € ñ" ð ×"Ñ"×+Ñ+¨DÓ1ð	
ð ×'Ñ'×@Ñ@ÀÓFð	
r~   c                 ó   — y r˜   r}   ©r®   r¾   s     r   Úregister_structure_hookz%BaseConverter.register_structure_hookÙ  ó   € ØMPr~   c                 ó   — y r˜   r}   )r®   r¾   rð   s      r   r  z%BaseConverter.register_structure_hookÜ  r  r~   c                óæ  ‡— |€+‰}t        |«      }| j                  |j                  |«       |S t        ‰«      rt	        ‰«       t        ‰«      r*|| j                  ‰<   | j                  j                  «        yt        ‰«      r"| j                  j                  ˆfd„|fg«       yt        ‰«      �"| j                  j                  ˆfd„|fg«       y| j                  j                  ‰|fg«       y)aá  Register a primitive-to-class converter function for a type.

        The converter function should take two arguments:
          * a Python object to be converted,
          * the type to convert to

        and return the instance of the class. The type may seem redundant, but
        is sometimes needed (for example, when dealing with generic classes).

        This method may be used as a decorator. In this case, the decorated
        hook must have a return type annotation, and this annotation will be used
        as the type for the hook.

        .. versionchanged:: 24.1.0
            This method may now be used as a decorator.
        .. versionchanged:: 25.1.0
            Modern type aliases are now supported.
        Nc                ó   •— | ‰u S r˜   r}   ©r¡   r¾   s    €r   rœ   z7BaseConverter.register_structure_hook.<locals>.<lambda>  ó   ø€ ÀÀRÀ€ r~   c                ó   •— | ‰u S r˜   r}   r  s    €r   rœ   z7BaseConverter.register_structure_hook.<locals>.<lambda>  r  r~   )r   r  Úreturn_annotationrú   r   r8   r’   r‘   Úclear_cacher_   rÌ   r$   rÉ   )r®   r¾   rð   rŠ   s    `  r   r  z%BaseConverter.register_structure_hookß  së   ø€ ð* ˆ<àˆDÜ˜D“/ˆCØ×(Ñ(¨×)>Ñ)>ÀÔEØˆKä�RŒ=Ü˜"ÔÜ˜ÔØ.2ˆD×'Ñ'¨Ñ+Ø× Ñ ×,Ñ,Ô.ð ô ˜2Ôà× Ñ ×3Ñ3Ó6GÈÐ5NÐ4OÔPð ô ˜bÓ!Ð-à× Ñ ×3Ñ3Ó6GÈÐ5NÐ4OÔPð ð × Ñ ×2Ñ2°R¸°J°<Ô@Ør~   c                ó@   — | j                   j                  ||fg«       yrü   )r‘   rÌ   rý   s      r   Úregister_structure_hook_funcz*BaseConverter.register_structure_hook_func
  s    € ð 	×Ñ×/Ñ/°*¸dÐ1CÐ0DÕEr~   c                 ó   — y r˜   r}   r  s     r   Úregister_structure_hook_factoryz-BaseConverter.register_structure_hook_factory  s	   € ð PSr~   c                 ó   — y r˜   r}   r  s      r   r"  z-BaseConverter.register_structure_hook_factory  ó   € ð  #r~   c                 ó   — y r˜   r}   r  s      r   r"  z-BaseConverter.register_structure_hook_factory  s   € ð 7:r~   c                óv   ‡ ‡— |€ˆˆ fd„}|S ‰ j                   j                  ‰|t        |«      rdndfg«       |S )aè  
        Register a hook factory for a given predicate.

        The hook factory may expose an additional required parameter. In this case,
        the current converter will be provided to the hook factory as that
        parameter.

        May also be used as a decorator.

        :param predicate: A function that, given a type, returns whether the factory
            can produce a hook for that type.
        :param factory: A callable that, given a type, produces a structuring
            hook for that type. This structuring hook will be cached.

        .. versionchanged:: 24.1.0
            This method may now be used as a decorator.
            The factory may also receive the converter as a second, required argument.
        c                óš   •— t        | «      r ‰j                  j                  ‰| dfg«       y ‰j                  j                  ‰| dfg«       y r
  )r‹   r‘   rÌ   r  s    €€r   r  z@BaseConverter.register_structure_hook_factory.<locals>.decorator6  sO   ø€ ä'¨Ô0Ø×(Ñ(×;Ñ;Ø# W¨jÐ9Ð:õð ×(Ñ(×;Ñ;Ø# W¨dÐ3Ð4õr~   r»   T)r‘   rÌ   r‹   r  s   ``  r   r"  z-BaseConverter.register_structure_hook_factory!  sP   ù€ ð& ˆ?õ	ð ÐØ×Ñ×/Ñ/ð ØÜ"6°wÔ"?‘JÀTððô	
ð ˆr~   c                óF   —  | j                   j                  |«      ||«      S )z?Convert unstructured Python data structures to structured data.)r‘   ré   ©r®   rê   r¾   s      r   Ú	structurezBaseConverter.structureM  s"   € à0ˆt×#Ñ#×,Ñ,¨RÓ0°°bÓ9Ð9r~   c                ór   — |r| j                   j                  |«      S | j                   j                  |«      S )ah  Get the structure hook for the given type.

        This hook can be manually called, or composed with other functions
        and re-registered.

        If no hook is registered, the converter structure fallback factory
        will be used to produce one.

        :param cache: Whether to cache the returned hook.

        .. versionadded:: 24.1.0
        )r‘   ré   r  r  s      r   Úget_structure_hookz BaseConverter.get_structure_hookQ  s=   € ñ ð × Ñ ×)Ñ)¨$Ó/ð	
ð ×%Ñ%×>Ñ>¸tÓDð	
r~   c                ó  — t        |j                  «      }| j                  j                  }| j	                  «       }|D ]C  }|j
                  }t        ||«      }  ||j                  xs |j                  «      |«      ||<   ŒE |S )z9Our version of `attrs.asdict`, so we can call back to us.)r"   r«   r•   ré   r�   ÚnameÚgetattrr  )r®   rê   Úattrsré   ÚrvÚar.  rÀ   s           r   rÅ   z&BaseConverter.unstructure_attrs_asdicte  s|   € ä�s—}‘}Ó%ˆØ×)Ñ)×2Ñ2ˆØ×ÑÓ!ˆØò 	:ˆAØ—6‘6ˆDÜ˜˜TÓ"ˆAØ6‘x §¡Ò 5¨!¯+©+Ó6°qÓ9ˆBˆtŠHð	:ð ˆ	r~   c                ó  — t        |j                  «      }| j                  j                  }g }|D ]O  }|j                  }t        ||«      }|j                    ||j                  xs |j                  «      |«      «       ŒQ t        |«      S )z:Our version of `attrs.astuple`, so we can call back to us.)	r"   r«   r•   ré   r.  r/  Úappendr  Útuple)r®   rê   r0  ré   Úresr2  r.  rÀ   s           r   rÇ   z'BaseConverter.unstructure_attrs_astuplep  s|   € ä�s—}‘}Ó%ˆØ×)Ñ)×2Ñ2ˆØˆØò 	;ˆAØ—6‘6ˆDÜ˜˜TÓ"ˆAØ�J‰JÐ6‘x §¡Ò 5¨!¯+©+Ó6°qÓ9Õ:ð	;ô �S‹zÐr~   c                ód   ‡— | j                   j                  Š|j                  ˆfd„|D «       «      S )z,Convert a sequence to primitive equivalents.c              3  óN   •K  — | ]  }  ‰|j                   «      |«      –— Œ y ­wr˜   ©r«   )Ú.0Úeré   s     €r   ú	<genexpr>z1BaseConverter._unstructure_seq.<locals>.<genexpr>  s"   øè ø€ ÒC¸!Ð2™X a§k¡kÓ2°1×5ÑCùs   ƒ"%rè   )r®   Úseqré   s     @r   rÎ   zBaseConverter._unstructure_seq{  s+   ø€ ð ×)Ñ)×2Ñ2ˆØ�}‰}ÓC¸sÔCÓCÐCr~   c                ó€   ‡— | j                   j                  Š|j                  ˆfd„|j                  «       D «       «      S )z;Convert a mapping of attr classes to primitive equivalents.c              3  ó„   •K  — | ]7  \  }}  ‰|j                   «      |«        ‰|j                   «      |«      f–— Œ9 y ­wr˜   r9  )r:  ÚkrÀ   ré   s      €r   r<  z5BaseConverter._unstructure_mapping.<locals>.<genexpr>‡  sC   øè ø€ ò !
á��1ð #‰X�a—k‘kÓ" 1Ó%Ð'<¡x°·±Ó'<¸QÓ'?Ô@ñ!
ùs   ƒ=A )r•   ré   r«   Úitems)r®   Úmappingré   s     @r   rÍ   z"BaseConverter._unstructure_mapping�  s<   ø€ ð
 ×)Ñ)×2Ñ2ˆØ× Ñ ó !
àŸ™›ô!
ó 
ð 	
r~   c                óX   —  | j                   j                  |j                  «      |«      S )zh
        Unstructure an object as a union.

        By default, just unstructures the instance.
        rè   )r®   rê   s     r   rÏ   z BaseConverter._unstructure_union�  s&   € ð >ˆt×%Ñ%×.Ñ.¨s¯}©}Ó=¸cÓBÐBr~   c                ó2   — t        || | j                  ¬«      S )z2Create and return a hook for structuring generics.)Ú _cattrs_prefer_attrib_converters)rZ   rŽ   r  s     r   rÐ   z$BaseConverter._gen_structure_generic™  s   € ô &Ø�°t×7UÑ7Uô
ð 	
r~   c                óv   ‡ ‡— ‰ j                  ||¬«      Št        |j                  v }|r	dˆˆ fd„}|S ˆˆ fd„}|S )z¢
        Generate a structuring function for a union of attrs classes (and maybe None).

        :param use_literals: Whether to consider literal fields.
        )Úuse_literalsc                ó:   •— | €y ‰j                  |  ‰| «      «      S r˜   ©r*  ©rê   r›   Údis_fnr®   s     €€r   Ústructure_attrs_unionzGBaseConverter._gen_attrs_union_structure.<locals>.structure_attrs_union®  s    ø€ Ø�;ØØ—~‘~ c©6°#«;Ó7Ð7r~   c                ó4   •— ‰j                  |  ‰| «      «      S r˜   rI  rJ  s     €€r   rL  zGBaseConverter._gen_attrs_union_structure.<locals>.structure_attrs_unionµ  s   ø€ Ø—~‘~ c©6°#«;Ó7Ð7r~   )Úreturnr¾   )Ú_get_dis_funcr   Ú__args__)r®   r¾   rG  Úhas_nonerL  rK  s   `    @r   rÚ   z(BaseConverter._gen_attrs_union_structure¡  sE   ù€ ð ×#Ñ# B°\Ð#ÓBˆÜ˜rŸ{™{Ð*ˆáö8ð %Ð$õ8ð %Ð$r~   c                ó   —  || «      S )zÝJust call ``cl`` with the given ``obj``.

        This is just an optimization on the ``_structure_default`` case, when
        we know we can skip the ``if`` s. Use for ``str``, ``bytes``, ``enum``,
        etc.
        r}   )rê   r¾   s     r   rÝ   zBaseConverter._structure_callº  s   € ñ �#‹wˆr~   c                óB   — | |j                   vrt        | › d|› �«      ‚| S ©Nz not in literal )rP  Ú	Exception)Úvalr  s     r   rÓ   z'BaseConverter._structure_simple_literalÄ  s*   € à�d—m‘mÑ#Ü˜s˜eÐ#3°D°6Ð:Ó;Ð;Øˆ
r~   c                óÀ   — |j                   D �ci c]!  }t        |t        «      r|j                  n||“Œ# }}	 ||    S c c}w # t        $ r t        | › d|› �«      d ‚w xY wrT  )rP  Ú
isinstancer   ÚvalueÚKeyErrorrU  )rV  r  ÚxÚvalss       r   rÔ   z%BaseConverter._structure_enum_literalÊ  so   € àDHÇMÁMÖR¸qœJ q¬$Ô/�—’°Q¸Ñ:ÐRˆÐRð	FØ˜‘9Ðùò Søô ò 	FÜ˜s˜eÐ#3°D°6Ð:Ó;ÀÐEð	Fús   �&=¸A ÁAc                óH   — t        |«      } | j                  |«      ||«      S r˜   ©r$   r,  )r®   rV  r  Úbases       r   rÑ   z BaseConverter._structure_newtypeÒ  s&   € Ü Ó%ˆØ,ˆt×&Ñ& tÓ,¨S°$Ó7Ð7r~   c                óJ   ‡— t        |«      }| j                  |«      Š|fˆfd„	S )Nc                ó   •—  ‰| |«      S r˜   r}   )rÀ   r›   Ú_BaseConverter__baser6  s      €r   rœ   z8BaseConverter._structure_final_factory.<locals>.<lambda>Ù  s   ø€ ©¨Q°«€ r~   )r#   r,  )r®   r  r_  r6  s      @r   rÒ   z&BaseConverter._structure_final_factoryÖ  s&   ø€ Ü˜dÓ#ˆØ×%Ñ% dÓ+ˆØ#'Ô7Ð7r~   c                ó�   — g }t        t        |«      |«      D ](  \  }}| j                  ||«      }|j                  |«       Œ*  ||Ž S )z,Load an attrs class from a sequence (tuple).)Úzipr"   Ú_structure_attributer4  )r®   rê   r¾   Úconv_objr2  rY  Ú	converteds          r   rÈ   z'BaseConverter.structure_attrs_fromtupleÝ  sO   € àˆÜœF 2›J¨Ó,ò 	'‰HˆAˆuà×1Ñ1°!°UÓ;ˆIØ�O‰O˜IÕ&ð	'ñ
 �8ˆ}Ðr~   c                óÊ   — |j                   }t        |dd«      }| j                  r|r|S |€|S 	  | j                  j	                  |«      ||«      S # t
        $ r |r|cY S ‚ w xY w)z%Handle an individual attrs attribute.Ú	converterN)r  r/  rŽ   r‘   ré   rR   )r®   r2  rY  Útype_Úattrib_converters        r   re  z"BaseConverter._structure_attributeç  sv   € à—‘ˆÜ" 1 k°4Ó8ÐØ×)Ò)Ñ.>ð
 ˆLØˆ=àˆLð	Ø7�4×'Ñ'×0Ñ0°Ó7¸¸uÓEÐEøÜ,ò 	Ùà’Øð		ús   ¯!A ÁA"Á A"c                óÈ   — i }t        |«      D ]<  }	 ||j                     }| j                  ||«      |t	        |d|j                  «      <   Œ>  |di |¤ŽS # t        $ r Y ŒRw xY w)z1Instantiate an attrs class from a mapping (dict).Úaliasr}   )r"   r.  rZ  re  r/  )r®   rê   r¾   rf  r2  rV  s         r   rÆ   z&BaseConverter.structure_attrs_fromdictý  sy   € ð ˆÜ˜“ò 	VˆAðØ˜!Ÿ&™&‘k�ð
 59×4MÑ4MÈaÐQTÓ4UˆH”W˜Q ¨¯©Ó0Ò1ð	Vñ ‰~�H‰~Ðøô ò Ùðús   ’AÁ	A!Á A!c                ó<  ‡‡	— t        |«      s|j                  d   t        v rt        |«      }|S |j                  d   Š| j                  j                  ‰«      Š	| j                  rGg }t        «       }d}|D ]   }	 |j                   ‰	|‰«      «       |dz  }Œ" |rt        d|›�||«      ‚|S t        ˆˆ	fd„|D «       «      }|S # t        $ rD}t        d|› d|› �|‰«      }g t        |dg «      ¢|‘|_        |j                  |«       Y d}~Œzd}~ww xY w# |dz  }w xY w)	z3Convert an iterable to a potentially generic deque.r   úStructuring ú	 @ index Ú	__notes__Nr   úWhile structuring c              3  ó0   •K  — | ]  } ‰|‰«      –— Œ y ­wr˜   r}   )r:  r;  Ú	elem_typeÚhandlers     €€r   r<  z1BaseConverter._structure_deque.<locals>.<genexpr>(  s   øè ø€ Ò?°a™G A y×1Ñ?ùó   ƒ)r(   rP  r   r   r‘   ré   r–   r4  rU  rQ   r/  rq  rP   )
r®   rê   r¾   r6  ÚerrorsÚixr;  Úmsgrt  ru  s
           @@r   rÕ   zBaseConverter._structure_deque  s@  ù€ ä�2Œ;˜"Ÿ+™+ a™.¬EÑ1Ü˜“*ˆCð2 ˆ
ð/ Ÿ™ A™ˆIØ×*Ñ*×3Ñ3°IÓ>ˆGØ×'Ò'Ø�Ü“g�Ø�Øò 
 �Að	 ØŸ
™
¡7¨1¨iÓ#8Ô9ð ˜a™™ð
 ñ Ü1Ø,¨R¨FÐ3°V¸Róð ð
 ˆ
ô Ô?¸3Ô?Ó?�Øˆ
øô %ò )Ü4Ø*¨2¨$¨i¸°tÐ<¸bÀ)ó˜ð 'J¬°°;ÀÓ(CÐ&IÀSÐ&I˜œØŸ™ a×(Ñ(ûð)ûð ˜a™™ús*   Á:CÃ	DÃ:DÄDÄDÄDÄDc           	     óÀ  — t        |«      s|j                  d   t        v r ||«      S |j                  d   }| j                  j	                  |«      }| j
                  rWg }t        «       }d}|D ]   }		 |j                   ||	|«      «       |dz  }Œ" |rt        d|›�||«      ‚|t        u r|S  ||«      S |t        u r|D �	ch c]  }	 ||	|«      ’Œ c}	S  ||D �	cg c]  }	 ||	|«      ‘Œ c}	«      S # t        $ rN}
t        d|j                  › d|	›�||«      }g t        |
dg «      ¢|‘|
_        |j                  |
«       Y d}
~
Œ¹d}
~
ww xY w# |dz  }w xY wc c}	w c c}	w )z3Convert an iterable into a potentially generic set.r   ro  z @ element rq  Nr   rr  )r(   rP  r   r‘   ré   r–   ÚsetÚaddrU  rQ   rw   r/  rq  r4  rP   )r®   rê   r¾   Ústructure_tort  ru  rw  r6  rx  r;  Úexcry  s               r   rÖ   zBaseConverter._structure_set+  s}  € ô �2Œ;˜"Ÿ+™+ a™.¬EÑ1Ù Ó$Ð$Ø—K‘K ‘Nˆ	Ø×&Ñ&×/Ñ/°	Ó:ˆØ×#Ò#ØˆFÜ“%ˆCØˆBØò �ðØ—G‘G™G A yÓ1Ô2ð ˜!‘G‘Bðñ Ü-Ð0BÀ2À&Ð.IÈ6ÐSUÓVÐVØ&¬#Ñ-�3ÐD±<ÀÓ3DÐDØœ3ÑØ36Ö7¨a‘G˜A˜yÕ)Ò7Ð7Ù¸CÖ@°q™W Q¨	Õ2Ò@ÓAÐAøô !ò 'Ü0Ø& |×'<Ñ'<Ð&=¸[ÈÈÐNØØ!ó�Cð
 %J¤g¨c°;ÀÓ&CÐ$IÀSÐ$I�C”MØ—M‘M #×&Ñ&ûð'ûð ˜!‘G‘Büò
 8ùÚ@s7   Á3C2ÃEÃEÃ2	E	Ã;AEÄ?EÅE	Å	EÅEc                ó2   — | j                  ||t        ¬«      S )z9Convert an iterable into a potentially generic frozenset.)r}  )rÖ   Ú	frozensetr)  s      r   r×   z"BaseConverter._structure_frozensetK  s   € ð ×"Ñ" 3¨¼Ð"ÓCÐCr~   c           	     óø  — t        |«      s|j                  t        t        fk(  rt        |«      S |j                  \  }}| j                  r| j
                  j                  |«      }| j
                  j                  |«      }g }i }|j                  «       D ]  \  }	}
	  ||
|«      }	  ||	|«      }|||<   Œ  |rt        d|›�||«      ‚|S |t        v rF| j
                  j                  |«      }|j                  «       D �	�
ci c]  \  }	}
|	 ||
|«      “Œ c}
}	S |t        v rF| j
                  j                  |«      }|j                  «       D �	�
ci c]  \  }	}
 ||	|«      |
“Œ c}
}	S | j
                  j                  |«      }| j
                  j                  |«      }|j                  «       D �	�
ci c]  \  }	}
 ||	|«       ||
|«      “Œ c}
}	S # t        $ rB}t        d|	›�|	|«      }g t        |dg «      ¢|‘|_        |j                  |«       Y d}~�Œd}~ww xY w# t        $ rB}t        d|	›�|	|«      }g t        |dg «      ¢|‘|_        |j                  |«       Y d}~�ŒÍd}~ww xY wc c}
}	w c c}
}	w c c}
}	w )z2Convert a mapping into a potentially generic dict.z Structuring mapping value @ key rq  NzStructuring mapping key @ key rr  )r(   rP  r   Údictr–   r‘   ré   rA  rU  rQ   r/  rq  r4  rP   r   )r®   rê   r¾   Úkey_typeÚval_typeÚkey_handlerÚval_handlerrw  r6  r@  rÀ   rY  r~  ry  ÚkeyÚval_convÚkey_convs                    r   rÙ   zBaseConverter._structure_dictQ  su  € ä�2Œ;˜"Ÿ+™+¬#¬s¨Ò3Ü˜“9ÐØŸ[™[Ñˆ�(à×#Ò#Ø×.Ñ.×7Ñ7¸ÓAˆKØ×.Ñ.×7Ñ7¸ÓAˆKØˆFØˆCàŸ	™	›ò '‘��1ðÙ'¨¨8Ó4�Eð'Ù% a¨Ó2�CØ$�C˜’Hð'ñ* Ü-Ð0BÀ2À&Ð.IÈ6ÐSUÓVÐVØˆJà”uÑØ×+Ñ+×4Ñ4°XÓ>ˆHØ9<¿¹»×E±°°A�A‘x  8Ó,Ñ,ÓEÐEØ”uÑØ×+Ñ+×4Ñ4°XÓ>ˆHØ9<¿¹»×E±°°A‘H˜Q Ó)¨1Ñ,ÓEÐEØ×'Ñ'×0Ñ0°Ó:ˆØ×'Ñ'×0Ñ0°Ó:ˆØILÏÉË×UÁÀÀA‘˜˜HÓ%¡x°°8Ó'<Ñ<ÓUÐUøô= !ò Ü0Ø:¸1¸%Ð@À!ÀXó�Cð %J¤g¨c°;ÀÓ&CÐ$IÀSÐ$I�C”MØ—M‘M #Ô&Ýûðûô !ò 'Ü0Ø8¸¸Ð>ÀÀ8ó�Cð %J¤g¨c°;ÀÓ&CÐ$IÀSÐ$I�C”MØ—M‘M #×&Ò&ûð'üó Fùó Fùó VsB   Â	GÂ&HÄ I*ÅI0Æ/I6Ç	HÇ7HÈHÈ	I'È%7I"É"I'c                óŽ   — |€y |j                   }|d   t        u r|d   n|d   } | j                  j                  |«      ||«      S )Nr   r   )rP  r   r‘   ré   )r®   rê   ÚunionÚunion_paramsÚothers        r   rÛ   z!BaseConverter._structure_optional€  sN   € Øˆ;ØØ—~‘~ˆØ#/°¡?´hÑ#>�˜Q’ÀLÐQRÁOˆà3ˆt×#Ñ#×,Ñ,¨UÓ3°C¸Ó?Ð?r~   c           
     óè  ‡‡— |t         t        fv rdn|j                  }|xr |d   t        u }|�|r|d   t        v rt        |«      S |r‰|d   Š| j
                  j                  ‰«      Š| j                  rHg }g }d}|D ]   }	 |j                   ‰|‰«      «       |dz  }Œ" |rt        d|›�||«      ‚t        |«      S t        ˆˆfd	„|D «       «      S t        |«      }| j                  rÔg }g }t        t!        ||«      «      D ]<  \  }\  }}	 | j
                  j                  |«      Š|j                   ‰||«      «       Œ> t        |«      |k7  rQt        |«      |k  rd
nd}t#        |› d|›d|›�«      }	d|› �}
g t        |	dg «      ¢|
‘|	_        |j                  |	«       |rt        d|›�||«      ‚t        |«      S t        |«      |k7  r.t        |«      t        |«      k  rd
nd}t#        |› d|›d|›�«      ‚t        t!        ||«      D ��cg c]'  \  }} | j
                  j                  |«      ||«      ‘Œ) c}}«      S # t        $ rE}	t        d|› d|› �|‰«      }
g t        |	dg «      ¢|
‘|	_        |j                  |	«       Y d}	~	�Œñd}	~	ww xY w# |dz  }w xY w# t        $ rE}	t        d|› d|› �||«      }
g t        |	dg «      ¢|
‘|	_        |j                  |	«       Y d}	~	�Œãd}	~	ww xY wc c}}w )z#Deal with structuring into a tuple.Néÿÿÿÿr   ro  rp  rq  r   rr  c              3  ó0   •K  — | ]  } ‰|‰«      –— Œ y ­wr˜   r}   )r:  r;  ÚconvÚtup_types     €€r   r<  z1BaseConverter._structure_tuple.<locals>.<genexpr>§  s   øè ø€ Ò8¨q™˜a ×*Ñ8ùrv  z
Not enoughzToo manyz values in z to structure as )r   r5  rP  ÚEllipsisr   r‘   ré   r–   r4  rU  rQ   r/  rq  rP   rƒ   Ú	enumeraterd  Ú
ValueError)r®   rê   ÚtupÚ
tup_paramsÚhas_ellipsisrw  r6  rx  r;  r~  ry  Úexp_lenr¡   Úproblemr‘  r’  s                 @@r   rØ   zBaseConverter._structure_tupleˆ  s>  ù€ à ¤U¬E NÑ2‘T¸¿¹ˆ
Ø!Ò@ j°¡n¼Ð&@ˆØÐ¡,°:¸a±=ÄEÑ3Iä˜“:ÐÙà! !‘}ˆHØ×'Ñ'×0Ñ0°Ó:ˆDØ×'Ò'Ø�Ø�Ø�Øò 
 �Að	 ØŸ
™
¡4¨¨8Ó#4Ô5ð ˜a™™ð
 ñ Ü1Ø,¨S¨GÐ4°f¸cóð ô ˜S“zÐ!ÜÔ8°CÔ8Ó8Ð8ô �j“/ˆØ×#Ò#ØˆFØˆCÜ'¬¨J¸Ó(<Ó=ò 	'‘
�‘F�Q˜ð'Ø×/Ñ/×8Ñ8¸Ó;�DØ—J‘J™t A q›zÕ*ð	'ô �3‹x˜7Ò"Ü*-¨c«(°WÒ*<™,À*�Ü  G 9¨K¸°wÐ>OÐPSÈwÐ!WÓX�Ø$ S EÐ*�Ø E¤'¨#¨{¸BÓ"?Ð EÀÐ E�”Ø—‘˜cÔ"ÙÜ-Ð0BÀ3À'Ð.JÈFÐTWÓXÐXÜ˜“:Ðäˆs‹8�wÒÜ&)¨#£h´°Z³Ò&@‘lÀjˆGÜ ˜y¨°C°7Ð:KÈCÈ7ÐSÓTÐTÜÜ@CÀJÐPSÓ@T×U¹¸¸1Ð-ˆT×!Ñ!×*Ñ*¨1Ó-¨a°Õ3ÓUó
ð 	
øôW %ò +Ü4Ø*¨3¨%¨y¸¸Ð=¸rÀ8ó˜ð )N¬'°#°{ÀBÓ*GÐ(MÈÐ(M˜œØŸ™ c×*Ò*ûð+ûð ˜a™™ûô" !ò 'Ü0Ø& s e¨9°R°DÐ9¸2¸qó�Cð %J¤g¨c°;ÀÓ&CÐ$IÀSÐ$I�C”MØ—M‘M #×&Ò&ûð'üó( VsH   ÂIÄ3JÈ,K.
É	JÉ:JÊJÊJÊJÊJÊ	K+Ê&:K&Ë&K+c                óº   — |j                   }t        |v rt        d„ |D «       «      }t        d„ |D «       «      st	        d|¬«      ‚t        | g|¢­||�|dœŽS ddœŽS )z<Fetch or try creating a disambiguation function for a union.c              3  ó2   K  — | ]  }|t         usŒ|–— Œ y ­wr˜   )r   ©r:  r;  s     r   r<  z.BaseConverter._get_dis_func.<locals>.<genexpr>Ô  s   è ø€ ÒL a¸!Ä8Ò:K¤ÑLùs   ‚�c              3  óL   K  — | ]  }t        t        |«      xs |«      –— Œ y ­wr˜   )r   r%   r�  s     r   r<  z.BaseConverter._get_dis_func.<locals>.<genexpr>Ö  s   è ø€ Ò@¨q”3”z !“}Ò)¨×*Ñ@ùs   ‚"$zeOnly unions of attrs classes and dataclasses supported currently. Register a structure hook manually.)rj  Úfrom_converter)rG  Ú	overrides)rP  r   r5  ÚallrR   rE   )r®   r‹  rG  r   Úunion_typess        r   rO  zBaseConverter._get_dis_funcÉ  s‡   € ð —n‘nˆÜ�{Ñ"ô  ÑL¨;ÔLÓLˆKäÑ@°KÔ@Ô@Ü/ðAàôð ô 'Øð
àñ
ð &Ø#,Ð#8�iò	
ð 	
ð ?Oò	
ð 	
r~   c                ó"   — | j                  «       S r˜   )Úcopy)r®   r›   s     r   Ú__deepcopy__zBaseConverter.__deepcopy__ä  s   € Ø�y‰y‹{Ðr~   c                ó¸  — | j                  |�|n| j                  |�|n8| j                  | j                  k(  rt        j
                  nt        j                  |�|n| j                  |�|n| j                  «      }| j                  j                  |j                  | j                  «       | j                  j                  |j                  | j                  «       |S )úÂCreate a copy of the converter, keeping all existing custom hooks.

        :param detailed_validation: Whether to use a slightly slower mode for detailed
            validation errors.
        )r«   r�   r”   rÅ   re   r{   r|   rŽ   r–   r•   Úcopy_tor“   r‘   r�   )r®   rá   râ   rã   r–   r6  s         r   r¤  zBaseConverter.copyç  sÐ   € ð �n‰nØ(Ð4‰L¸$×:LÑ:Lð "Ð-ñ ð ×.Ñ.°$×2OÑ2OÒOô (×/Ò/ä,×5Ñ5ð
 ,Ð7ñ )à×3Ñ3ð 'Ð2ñ $à×-Ñ-ó'
ˆð. 	×Ñ×&Ñ& s×'<Ñ'<¸d×>VÑ>VÔWØ×Ñ×$Ñ$ S×%8Ñ%8¸$×:PÑ:PÔQàˆ
r~   )rá   úCallable[[], Any]râ   re   rã   Úboolr–   rª  rä   úHookFactory[UnstructureHook]rå   úHookFactory[StructureHook]rN  ÚNoner˜   )rê   r   r¨   r   rN  r   )rN  re   )rí   rq   rN  rq   )rí   r   rð   rM   rN  r­  ©NN)rí   r   rð   zUnstructureHook | NonerN  z"Callable[[UnstructureHook]] | None)rþ   rS   rð   rM   rN  r­  )r  rS   rN  zHCallable[[AnyUnstructureHookFactoryBase], AnyUnstructureHookFactoryBase]©r  rS   r‰   rh   rN  rh   )r  rS   r‰   ú-ExtendedUnstructureHookFactory[BaseConverter]rN  r°  )T)r  r   r  rª  rN  rM   )r¾   rr   rN  rr   )r¾   r   rð   rJ   rN  r­  )r¾   r   rð   zStructureHook | NonerN  r­  )rþ   rS   rð   rJ   rN  r­  )r  rS   rN  zDCallable[[AnyStructureHookFactoryBase], AnyStructureHookFactoryBase]©r  rS   r‰   rm   rN  rm   )r  rS   r‰   ú+ExtendedStructureHookFactory[BaseConverter]rN  r²  )rê   rL   r¾   útype[T]rN  rf   )r  r   r  rª  rN  rJ   )rê   r   rN  zdict[str, Any])rê   r   rN  útuple[Any, ...])r=  úSequence[T]rN  rµ  )rB  úMapping[T, V]rN  r¶  )rê   r   rN  r   )r¾   r³  rN  z)SimpleStructureHook[Mapping[str, Any], T])r¾   r   rG  rª  rN  z(Callable[[Any, type[T]], type[T] | None])rê   r   r¾   r³  rN  r   )rV  rL   rN  rI   )rê   r´  r¾   r³  rN  rf   )r2  zAttribute | FieldrY  r   rN  r   )rê   zMapping[str, Any]r¾   r³  rN  rf   )rê   úIterable[T]r¾   r   rN  zdeque[T])rê   r·  r¾   r   r}  r  rN  zSet[T])rê   r·  r¾   r   rN  zFrozenSetSubscriptable[T])rê   r¶  r¾   r   rN  z
dict[T, V])rê   r   r–  r³  rN  rf   )TN)r‹  r   rG  rª  r   z#dict[str, AttributeOverride] | NonerN  zCallable[[Any], type])rN  rb   )NNNN)
rá   úCallable[[], Any] | Nonerâ   úUnstructureStrategy | Nonerã   úbool | Noner–   rº  rN  r   )0rw   rx   ry   rz   Ú	__slots__r‚  re   r{   ræ   rª   Úpropertyrâ   r   rî   rÿ   r  rµ   r  r   r"  r*  r,  rÅ   rÇ   rÎ   rÍ   rÏ   rÐ   rÚ   ÚstaticmethodrÝ   rÓ   rÔ   rÑ   rÒ   rÈ   re  rÆ   rÕ   r{  rÖ   r×   rÙ   rÛ   rØ   rO  r¥  r¤  r}   r~   r   rb   rb   ª   s,  „ Ù<ð€Ið +/Ø.A×.IÑ.IØ).Ø$(ÙEWñB
ðGDà'ðGDð ,ðGDð #'ð	GDð
 "ðGDð 'CðGDð %?ðGDð 
óGDôRð
 ò
ó ð
ð ÚWó ØWàÚUó ØUð ?Cð%Øð%Ø%;ð%à	+ó%ðNHØ#ðHØ+:ðHà	óHð ðWØ"ðWà	QòWó ðWð ð%Ø"ð%Ø-Cð%à	ò%ó ð%ð ð<àð<ð ?ð<ð 
7ò	<ó ð<ó+ð\ /3ð
Øð
Ø'+ð
à	ó
ð* ÚPó ØPàÚPó ØPð 59ð)Øð)Ø1ð)à	ó)ðVFØ#ðFØ+8ðFà	óFð ðSØ"ðSà	MòSó ðSð ð#Ø"ð#Ø-Að#à	ò#ó ð#ð ð:Ø"ð:Ø-Xð:à	4ò:ó ð:ó*óX:ô
ó(	ó	óDó	
óCð
Øð
à	2ó
ð -1ð%Øð%Ø%)ð%à	1ó%ð2 òó ðð ñó ðð
 ñFó ðFó8ò8óóó,ó ð> ?BðBØðBØ$'ðBØ7;ðBà	óBð@DØðDØ$'ðDà	"óDó-Vò^@ó?
ðH "Ø9=ð	
àð
ð ð
ð 7ð	
ð
 
ó
ó6ð
 26Ø59Ø04Ø+/ð&à.ð&ð 3ð&ð #.ð	&ð
 )ð&ð 
ô&r~   rb   c                  ó>  ‡ — e Zd ZdZdZeej                  ddi i ddd„ d„ df	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Ze		 	 	 	 dd„«       Z
e		 	 	 	 	 	 d d	„«       Z
e		 	 	 	 	 	 d!d
„«       Z
d"ˆ fd„	Z
e		 	 	 	 d#d„«       Ze		 	 	 	 	 	 d$d„«       Ze		 	 	 	 	 	 d%d„«       Zd"ˆ fd„	Zd&d„Zd„ Zd'd„Zd(d„Z	 	 	 	 d)d„Zd*d„Zd+d„Z	 	 	 	 d,d„Z	 d"	 	 	 	 	 d-d„Z	 d"	 	 	 	 	 d.d„Z	 	 d/	 	 	 	 	 	 	 d0d„Z	 	 	 	 d1d„Z	 	 	 	 d2d„Z	 	 	 	 	 	 	 	 	 d3	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d4d„Zˆ xZS )5rc   zAA converter which generates specialized un/structuring functions.)Ú_unstruct_collection_overridesÚforbid_extra_keysÚomit_if_defaultÚtype_overridesÚ	use_aliasFTc                ó   — t         S r˜   r™   rš   s    r   rœ   zConverter.<lambda>%  r�   r~   c                ó   — t        d | «      S r˜   rŸ   r    s    r   rœ   zConverter.<lambda>&  r¢   r~   c                ó&  •‡ — t         ‰‰ �  |||||	|
¬«       |‰ _        |‰ _        t	        |«      ‰ _        |‰ _        |j                  «       D ��ci c]  \  }}t        |«      xs ||“Œ }}}|‰ _	        |}t        |v r0t        |vr|t           |t        <   t        |vr|t           |t        <   t        |v rt        |vr|t           |t        <   t        |v r0t        |vr|t           |t        <   t         |vr|t           |t         <   t        |v r0t"        |vr|t           |t"        <   t$        |vr|t           |t$        <   t&        |v rt(        |vr|t&           |t(        <   t(        |v rt        |vr|t(           |t        <   t        |v rt*        |vr|t           |t*        <   |t,        j.                  u r@‰ j1                  t2        ‰ j4                  «       ‰ j7                  t2        ‰ j8                  «       ‰ j1                  t:        ‰ j<                  «       ‰ j1                  t>        ‰ j@                  «        ‰ j1                  tB        «      tD        «       ‰ j1                  tF        ‰ jH                  «       ‰ j1                  tJ        ‰ jL                  «       ‰ j1                  tN        ˆ fd„«       ‰ j1                  tP        ˆ fd„«       ‰ j1                  tR        ‰ jT                  «       ‰ j1                  tV        ‰ jX                  «       ‰ j1                  d„ ˆ fd„«       ‰ j7                  t:        ‰ jZ                  «       ‰ j7                  tJ        ‰ j\                  «       ‰ j7                  t^        ‰ j`                  «       ‰ j7                  tb        td        «       ‰ j7                  tV        ‰ jf                  «       ‰ j7                  d„ ‰ jh                  «       ‰ jj                  jm                  «       ‰ _7        ‰ jp                  jm                  «       ‰ _9        yc c}}w )au  
        :param detailed_validation: Whether to use a slightly slower mode for detailed
            validation errors.
        :param unstructure_fallback_factory: A hook factory to be called when no
            registered unstructuring hooks match.
        :param structure_fallback_factory: A hook factory to be called when no
            registered structuring hooks match.
        :param use_alias: Whether to use the field alias instead of the field name as
            the un/structured dictionary key by default.

        ..  versionadded:: 23.2.0 *unstructure_fallback_factory*
        ..  versionadded:: 23.2.0 *structure_fallback_factory*
        ..  versionchanged:: 24.2.0
            The default `structure_fallback_factory` now raises errors for missing handlers
            more eagerly, surfacing problems earlier.
        ..  versionadded:: 25.2.0 *use_alias*
        )rá   râ   rã   r–   rä   rå   c                ó2   •— ‰j                  | t        ¬«      S ©N©Úunstructure_to)Úgen_unstructure_iterabler{  ©r¾   r®   s    €r   rœ   z$Converter.__init__.<locals>.<lambda>�  s   ø€ �t×4Ñ4°RÌÐ4ÓL€ r~   c                ó2   •— ‰j                  | t        ¬«      S rÈ  )rË  r€  rÌ  s    €r   rœ   z$Converter.__init__.<locals>.<lambda>“  s   ø€ �t×4Ñ4°RÌ	Ð4ÓR€ r~   c                ó   — t        | «      d uS r˜   r¥   r    s    r   rœ   z$Converter.__init__.<locals>.<lambda>œ  ó   € Ô& qÓ)°Ð5€ r~   c                ó8   •— ‰j                  t        | «      «      S r˜   )rµ   r$   r¶   s    €r   rœ   z$Converter.__init__.<locals>.<lambda>�  s   ø€ �d×/Ñ/Ô0@ÀÓ0CÓD€ r~   c                ó   — t        | «      d uS r˜   r¥   r    s    r   rœ   z$Converter.__init__.<locals>.<lambda>¨  rÏ  r~   N):Úsuperræ   rÁ  rÀ  r‚  rÂ  rÃ  rA  r%   r¿  r   r   r   r{  r   r   r5  r…   r   r   r	   r   re   r{   r  r&   Úgen_unstructure_attrs_fromdictr"  Úgen_structure_attrs_fromdictr'   Úgen_unstructure_annotatedr.   Úgen_unstructure_hetero_tupler=   rD   r>   rË  r0   Úgen_unstructure_mappingr2   r+   r3   Úgen_unstructure_optionalr7   Úgen_unstructure_typeddictÚgen_structure_annotatedÚgen_structure_mappingr)   Úgen_structure_counterr<   r9   Úgen_structure_typeddictÚget_structure_newtyper‘   rà   r�   r•   r“   )r®   rá   râ   rÁ  rÀ  rÂ  Úunstruct_collection_overridesrã   r–   rä   rå   rÃ  r@  rÀ   Úcor«   s   `              €r   ræ   zConverter.__init__  s±  ù€ ôB 	‰ÑØ%Ø)Ø%=Ø 3Ø)EØ'Að 	ô 	
ð  /ˆÔØ!2ˆÔÜ" >Ó2ˆÔØ"ˆŒð /L×.QÑ.QÓ.S÷)
Ù&* a¨ŒJ�q‹MÒ˜Q Ñ!ð)
Ð%ñ )
ð /LˆÔ+ð +ˆô  Ñ"Ü rÑ)Ø')Ô*;Ñ'<�Ô#Ñ$Ü%¨RÑ/Ø-/Ô0AÑ-B�Ô)Ñ*ô ˜rÑ!¤c°¡mØÔ)Ñ*ˆBŒs‰Gô �r‰>Ü bÑ(Ø&(¬¡l�”?Ñ#Ü˜B‰Øœx™L�”5‘	ô ˜bÑ Ü˜2‰~ØœoÑ.�”4‘Ü˜B‰ØœÑ/�”5‘	ô �b‰=œ^°2Ñ5Ø!#¤G¡ˆBŒ~Ñô ˜RÑ¤D°¡NØœ.Ñ)ˆBŒt‰Hô �2‰:œ'¨Ñ+ØœT™(ˆBŒw‰KàÔ0×8Ñ8Ñ8à×2Ñ2Ü  $×"EÑ"Eôð ×0Ñ0Ü  $×"CÑ"Côð 	×.Ñ.Ü˜$×8Ñ8ô	
ð 	×.Ñ.Ü˜T×>Ñ>ô	
ð 	>ˆ×.Ñ.¬}Ó=Ü*ô	
ð 	×.Ñ.Ü˜×6Ñ6ô	
ð 	×.Ñ.¬z¸4×;WÑ;WÔXØ×.Ñ.ÜÛLô	
ð 	×.Ñ.ÜÛRô	
ð 	×.Ñ.Ü˜×6Ñ6ô	
ð 	×.Ñ.Ü˜$×8Ñ8ô	
ð 	×.Ñ.Ù5ÛDô	
ð
 	×,Ñ,¬\¸4×;WÑ;WÔXØ×,Ñ,¬Z¸×9SÑ9SÔTØ×,Ñ,¬Z¸×9SÑ9SÔTØ×,Ñ,ÜÔ9ô	
ð 	×,Ñ,¬\¸4×;WÑ;WÔXØ×,Ñ,Ù5°t×7QÑ7Qô	
ð
 "&×!5Ñ!5×!AÑ!AÓ!CˆÔØ#'×#9Ñ#9×#EÑ#EÓ#GˆÕ ùóI)
s   ÁPc                 ó   — y r˜   r}   r  s     r   r  z+Converter.register_unstructure_hook_factory¯  s	   € ð LOr~   c                 ó   — y r˜   r}   r  s      r   r  z+Converter.register_unstructure_hook_factory´  r  r~   c                 ó   — y r˜   r}   r  s      r   r  z+Converter.register_unstructure_hook_factory¹  s   € ð 58r~   c                ó$   •— t         ‰| �  ||«      S r˜   )rÒ  r  ©r®   r  r‰   r«   s      €r   r  z+Converter.register_unstructure_hook_factory¾  s   ø€ ä‰wÑ8¸ÀGÓLÐLr~   c                 ó   — y r˜   r}   r  s     r   r"  z)Converter.register_structure_hook_factoryÂ  s	   € ð HKr~   c                 ó   — y r˜   r}   r  s      r   r"  z)Converter.register_structure_hook_factoryÇ  r$  r~   c                 ó   — y r˜   r}   r  s      r   r"  z)Converter.register_structure_hook_factoryÌ  s   € ð 36r~   c                ó$   •— t         ‰| �  ||«      S r˜   )rÒ  r"  rå  s      €r   r"  z)Converter.register_structure_hook_factoryÑ  s   ø€ ä‰wÑ6°yÀ'ÓJÐJr~   c                óJ   ‡‡— t        |«      Š| j                  ‰«      Šˆˆfd„S )Nc                ó   •—  ‰| ‰«      S r˜   r}   )rÀ   r›   r_  ru  s     €€r   rœ   z1Converter.get_structure_newtype.<locals>.<lambda>Ø  s   ø€ ™G A tÓ,€ r~   r^  )r®   r  r_  ru  s     @@r   rÞ  zConverter.get_structure_newtypeÕ  s#   ù€ Ü Ó%ˆØ×)Ñ)¨$Ó/ˆÜ,Ð,r~   c                ó<   — |j                   }| j                  |«      S r˜   )Ú
__origin__rµ   )r®   r  Úorigins      r   rÕ  z#Converter.gen_unstructure_annotatedÚ  s   € Ø—‘ˆØ×(Ñ(¨Ó0Ð0r~   c                óL   ‡‡— |j                   Š| j                  ‰«      Šˆˆfd„S )z#A hook factory for annotated types.c                ó   •—  ‰| ‰«      S r˜   r}   )rÀ   r›   Úhookrî  s     €€r   rœ   z3Converter.gen_structure_annotated.<locals>.<lambda>â  s   ø€ ™D  F›O€ r~   )rí  r,  )r®   r  rñ  rî  s     @@r   rÚ  z!Converter.gen_structure_annotatedÞ  s"   ù€ à—‘ˆØ×&Ñ& vÓ.ˆÜ+Ð+r~   c                ó   — t        || «      S )zgGenerate a TypedDict unstructure function.

        Also apply converter-scored modifications.
        )Úmake_typeddict_dict_unstruct_fnr  s     r   rÙ  z#Converter.gen_unstructure_typeddictä  s   € ô
 /¨r°4Ó8Ð8r~   c                ó\  — t        |«      }t        |xs |«      }t        |«      r!t        d„ |D «       «      rt	        |xs |«       |D �ci c]>  }|j
                  | j                  v r$|j                  | j                  |j
                     “Œ@ }}t        || fd| j                  i|¤ŽS c c}w )Nc              3  óP   K  — | ]  }t        |j                  t        «      –— Œ  y ­wr˜   ©rX  r  rË   ©r:  r2  s     r   r<  z;Converter.gen_unstructure_attrs_fromdict.<locals>.<genexpr>ð  ó   è ø€ Ò J¸Q¤¨A¯F©F´C×!8Ñ Jùó   ‚$&Ú_cattrs_omit_if_default)
r%   r"   rú   Úanyr   r  rÂ  r.  r[   rÁ  ©r®   r¾   rî  Úattribsr2  Úattrib_overridess         r   rÓ  z(Converter.gen_unstructure_attrs_fromdictë  s´   € ô ˜B“ˆÜ˜š 2Ó&ˆÜ�RŒ=œSÑ JÀ'Ô JÔJä˜&š, BÔ'ð ö
àØ�v‰v˜×,Ñ,Ñ,ð �F‰F�D×'Ñ'¨¯©Ñ/Ñ/ð
Ðð 
ô (Ø�ñ
Ø.2×.BÑ.Bð
ØFVñ
ð 	
ùò
s   ÁAB)c                ó®   — |j                   }|d   t        u r|d   n|d   }t        |t        «      r| j                  }n| j                  |«      }|fd„}|S )z2Generate an unstructuring hook for optional types.r   r   c                ó   — | €d S  || «      S r˜   r}   )rV  Ú_handlers     r   Úunstructure_optionalz@Converter.gen_unstructure_optional.<locals>.unstructure_optional  s   € Ø˜;�4Ð9©H°S«MÐ9r~   )rP  r   rX  r   rª   rµ   )r®   r¾   rŒ  r�  ru  r  s         r   rØ  z"Converter.gen_unstructure_optionalý  s[   € à—{‘{ˆØ#/°¡?´hÑ#>�˜Q’ÀLÐQRÁOˆä�eœWÔ%Ø×&Ñ&‰Gà×/Ñ/°Ó6ˆGà/6ó 	:ð $Ð#r~   c                ó2   — t        || | j                  ¬«      S )zeGenerate a TypedDict structure function.

        Also apply converter-scored modifications.
        )Ú_cattrs_detailed_validation)Úmake_typeddict_dict_struct_fnr–   r  s     r   rÝ  z!Converter.gen_structure_typeddict  s   € ô
 -Ø�°$×2JÑ2Jô
ð 	
r~   c                ó¸  — t        |«      }t        t        |«      r|xs |n|«      }t        |«      r!t	        d„ |D «       «      rt        |xs |«       |D �ci c]>  }|j                  | j                  v r$|j                  | j                  |j                     “Œ@ }}t        || f| j                  | j                  | j                  | j                  dœ|¤ŽS c c}w )Nc              3  óP   K  — | ]  }t        |j                  t        «      –— Œ  y ­wr˜   rö  r÷  s     r   r<  z9Converter.gen_structure_attrs_fromdict.<locals>.<genexpr>  rø  rù  )Ú_cattrs_forbid_extra_keysrE  r  Ú_cattrs_use_alias)r%   r"   r,   rú   rû  r   r  rÂ  r.  rZ   rÀ  rŽ   r–   rÃ  rü  s         r   rÔ  z&Converter.gen_structure_attrs_fromdict  sÚ   € ô ˜B“ˆÜ¬°B¬˜š¡2¸RÓ@ˆÜ�RŒ=œSÑ JÀ'Ô JÔJä˜&š, BÔ'ð ö
àØ�v‰v˜×,Ñ,Ñ,ð �F‰F�D×'Ñ'¨¯©Ñ/Ñ/ð
Ðð 
ô
 &ØØð
ð '+×&<Ñ&<Ø-1×-KÑ-KØ(,×(@Ñ(@Ø"Ÿn™nñ
ð ñ
ð 	
ùò
s   ÁACc                óÄ   — | j                   j                  t        |«      xs ||xs t        «      }t	        || |¬«      }| j
                  j                  ||fgd¬«       |S ©NrÉ  T©Údirect)r¿  Úgetr%   r…   r?   r•   rÉ   ©r®   r¾   rÊ  Úhs       r   rË  z"Converter.gen_unstructure_iterable,  sa   € ð ×<Ñ<×@Ñ@Ü�r‹NÒ ˜b .Ò"8´Dó
ˆô )¨¨TÀ.ÔQˆØ×Ñ×0Ñ0°2°q°'°À4Ð0ÔHØˆr~   c                óÄ   — | j                   j                  t        |«      xs ||xs t        «      }t	        || |¬«      }| j
                  j                  ||fgd¬«       |S r  )r¿  r  r%   r5  r\   r•   rÉ   r  s       r   rÖ  z&Converter.gen_unstructure_hetero_tuple6  sa   € ð ×<Ñ<×@Ñ@Ü�r‹NÒ ˜b .Ò"9´Eó
ˆô -¨R°ÀnÔUˆØ×Ñ×0Ñ0°2°q°'°À4Ð0ÔHØˆr~   c                óÆ   — | j                   j                  t        |«      xs ||xs t        «      }t	        || ||¬«      }| j
                  j                  ||fgd¬«       |S )N)rÊ  r…  Tr  )r¿  r  r%   r‚  rB   r•   rÉ   )r®   r¾   rÊ  r…  r  s        r   r×  z!Converter.gen_unstructure_mapping@  sh   € ð ×<Ñ<×@Ñ@Ü�r‹NÒ ˜b .Ò"8´Dó
ˆô (Ø� ^Àô
ˆð 	×Ñ×0Ñ0°2°q°'°À4Ð0ÔHØˆr~   c                óŠ   — t        || t        t        | j                  ¬«      }| j                  j                  ||fgd¬«       |S )N)r}  r„  r–   Tr  )rA   r   rÞ   r–   r‘   rÉ   )r®   r¾   r  s      r   rÜ  zConverter.gen_structure_counterO  sI   € ô &ØØÜ ÜØ $× 8Ñ 8ô
ˆð 	×Ñ×.Ñ.°°Q°¨yÀÐ.ÔFØˆr~   c                óÒ   — t        |«      xs |}|t        t        t        t        fv rt
        }t        || || j                  ¬«      }| j                  j                  ||fgd¬«       |S )N)r–   Tr  )
r%   r	   ÚAbcMutableMappingr   Ú
AbcMappingr‚  rA   r–   r‘   rÉ   )r®   r¾   r}  r  s       r   rÛ  zConverter.gen_structure_mapping\  sq   € ô " "“~Ò+¨ˆØÜÜÜÜð	
ñ 
ô  ˆLÜ%Ø��l¸×8PÑ8Pô
ˆð 	×Ñ×.Ñ.°°Q°¨yÀÐ.ÔFØˆr~   c
                óT  — | j                  |�|n| j                  |�|n8| j                  | j                  k(  rt        j
                  nt        j                  |�|n| j                  |�|n| j                  |�|n| j                  |�|n| j                  |�|n| j                  |�|n| j                  |	�|	n| j                  ¬«	      }
| j                  j                  |
j                  | j                   ¬«       | j"                  j                  |
j"                  | j$                  ¬«       |
S )r§  )rÃ  )Úskip)r«   r�   r”   rÅ   re   r{   r|   rÁ  rÀ  rÂ  r¿  rŽ   r–   rÃ  r•   r¨  r“   r‘   r�   )r®   rá   râ   rÁ  rÀ  rÂ  rß  rã   r–   rÃ  r6  s              r   r¤  zConverter.copym  s@  € ð" �n‰nØ(Ð4‰L¸$×:LÑ:Lð "Ð-ñ ð ×.Ñ.°$×2OÑ2OÒOô (×/Ò/ä,×5Ñ5ð  /Ð:‰OÀ×@TÑ@Tð %Ð0ñ "à×+Ñ+à,Ð8‰N¸d×>QÑ>Qð 1Ð<ñ .à×8Ñ8ð ,Ð7ñ )à×3Ñ3ð 'Ð2ñ $à×-Ñ-à$-Ð$9‘y¸t¿~¹~ðC ó "
ˆðH 	×Ñ×&Ñ&Ø×!Ñ!¨×(@Ñ(@ð 	'ô 	
ð 	×Ñ×$Ñ$ S×%8Ñ%8¸t×?UÑ?UÐ$ÔVàˆ
r~   )rá   r©  râ   re   rÁ  rª  rÀ  rª  rÂ  z Mapping[type, AttributeOverride]rß  zMapping[type, UnstructureHook]rã   rª  r–   rª  rä   r«  rå   r¬  rÃ  rª  )r  rS   rN  z@Callable[[AnyUnstructureHookFactory], AnyUnstructureHookFactory]r¯  )r  rS   r‰   ú)ExtendedUnstructureHookFactory[Converter]rN  r  r˜   )r  rS   rN  z<Callable[[AnyStructureHookFactory], AnyStructureHookFactory]r±  )r  rS   r‰   ú'ExtendedStructureHookFactory[Converter]rN  r  )r  r³  rN  zCallable[[Any, Any], T])rN  r   )r¾   r   rN  zCallable[[dict], dict])r¾   r³  rN  zCallable[[T], dict[str, Any]])r¾   r³  rN  zCallable[[T], Any])r¾   r   rN  zCallable[[dict, Any], dict])r¾   r³  rN  z%Callable[[Mapping[str, Any], Any], T])r¾   r   rÊ  r   rN  rX   )r¾   r   rÊ  r   rN  rW   r®  )r¾   r   rÊ  r   r…  z'Callable[[Any, Any | None], Any] | NonerN  rY   )r¾   ztype[CounterT]rN  z0SimpleStructureHook[Mapping[Any, Any], CounterT])r¾   r   rN  z+SimpleStructureHook[Mapping[Any, Any], Any])	NNNNNNNNN)rá   r¸  râ   r¹  rÁ  rº  rÀ  rº  rÂ  z'Mapping[type, AttributeOverride] | Nonerß  z%Mapping[type, UnstructureHook] | Nonerã   rº  r–   rº  rÃ  rº  rN  r   )rw   rx   ry   rz   r»  r‚  re   r{   ræ   r   r  r"  rÞ  rÕ  rÚ  rÙ  rÓ  rØ  rÝ  rÔ  rË  rÖ  r×  rÜ  rÛ  r¤  Ú__classcell__r9  s   @r   rc   rc     sB  ø„ ÙKð€Ið +/Ø.A×.IÑ.IØ %Ø"'Ø;=ØHJØ).Ø$(ÙEWñB
ð  ðRHà'ðRHð ,ðRHð ð	RHð
  ðRHð 9ðRHð (FðRHð #'ðRHð "ðRHð 'CðRHð %?ðRHð õRHðh ðOØ"ðOà	IòOó ðOð ð%Ø"ð%Ø-Cð%à	ò%ó ð%ð ð8Ø"ð8Ø-Vð8à	2ò8ó ð8õMð ðKØ"ðKà	EòKó ðKð ð#Ø"ð#Ø-Að#à	ò#ó ð#ð ð6Ø"ð6Ø-Tð6à	0ò6ó ð6õKó-ò
1ó,ó9ð
Øð
à	&ó
ó$$ó
ð
Øð
à	.ó
ð0 .2ðØðØ'*ðà	óð .2ðØðØ'*ðà	!óð #Ø?Cð	àðð ðð =ð	ð
 
óðØ ðà	9óðØðà	4óð& 26Ø59Ø'+Ø)-ØBFØOSØ04Ø+/Ø!%ð:à.ð:ð 3ð:ð %ð	:ð
 'ð:ð @ð:ð (Mð:ð #.ð:ð )ð:ð ð:ð 
÷:r~   rc   rd   N)r‰   r   rN  rª  )ŽÚ
__future__r   Úcollectionsr   r   Úcollections.abcr   r   r   r  r	   r  Údataclassesr
   Úenumr   Úinspectr   r   r‚   Úpathlibr   Útypingr   r   r   r   r   r0  r   r   r   rú   Útyping_extensionsr   Ú_compatr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   Úcolsr9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   ÚdisambiguatorsrE   rF   ré   rG   rH   rI   rJ   rK   rL   rM   ÚenumsrN   rO   rw  rP   rQ   rR   ÚfnsrS   rT   rU   ÚgenrV   rW   rX   rY   rZ   r[   r\   Úgen.typeddictsr  ró  Úliteralsr]   Útypealiasesr^   r_   r`   Útypesra   Ú__all__rf   rg   rh   rj   Ú__annotations__rk   rl   rm   rn   ro   rp   rq   rr   rs   re   r‹   rb   rc   rd   r}   r~   r   ú<module>r1     sõ  ðÞ "ç &ß .Ý 1Ý ?Ý Ý Ý Ý 2Ý ß :Õ :ç *Ý "Ý "÷%÷ %÷ %÷ %÷ %÷ %÷ %÷ %÷ %ó %÷L÷ ÷ ó ÷ H÷÷ ñ ÷ D÷ñ ÷
 2Ñ 1÷÷ ñ õ TÝ WÝ 1÷ñ õ
 'â
O€áˆCƒL€ÙˆCƒL€á Ø K°Ñ$@ôÐ ð
 -5°jÀ!°_ÀoÐ5UÑ,VÐ  	Ó Vñ !(Ø#Ø
Xô!Ð ñ $ØØ
TôÐ ñ
 Ð5¸[ÈÑ=WÔXÐ ð +3°JÀ°?ÀMÐ3QÑ*RÐ ˜iÓ Rñ &Ø!Ø
TôÐ ñ "ØØ
PôÐ ñ
 Ð-°_ÔEÐ ÙÐ)°Ô?€Ù�: WÔ-€ô˜$ô ó÷cñ côLW�ô Wðt $€ˆiÔ #r~   