+
    LV-j‘ž ã                  óŽ  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIHtHtHt ^RIHtHtHt ^RIHtHtHtHtHtHt ^RI H!t!H"t"H#t#H$t$ ]%PL                  t'R	t(Rdt)R
t*]
PV                  ! / 4      t,]%! 4       t-]P\                  ! ]P^                  ]P`                  4      t1 ! R R]Pd                  4      t3]3Ph                  t4  ! R R]54      t6]4RRRRRRRRRRRRRR3R lt7ReR R llt8RfR R llt9R R lt: ! R R]4      t;R t<R t=R R lt>R t?R R lt@R  tAR! tBR" tCR# tD ! R$ R%4      tER& tFR' tGRgR( ltHRhR* ltI]ItJ R+ tKR, R- ltLR. R/ ltMR0 R1 ltNR2 tOR3 R4 ltPR5 tQRfR6 ltRR7 R8 ltSRiR9 ltTR: tUR; tVR< t0R= tWR> R? ltXR@ RA ltYRB RC ltZRD RE lt[RF RG lt\RH RI lt]RJ RK lt^RL RM lt_ ! RN RO4      t`]`PÂ                   U u. uF"  p ]`! V ]4RV RP8g  RRR)V RQ8g  RR)]_! V 4      RR7      NK$  	  up tb]N! ]R! ]T! ]`]bRS7      ]b Uu. uF  qPÆ                  RT8w  g   K  VNK  	  upRS7      ]b Uu. uF+  qPÈ                  '       g   K  VPÆ                  RT8w  g   K)  VNK-  	  upRS7      t` ! RU RV4      te]R! ]T! ]e4      4      te ! RW RX4      tf]fPÂ                   U u. uF  p ]`! V ]4RRRRR)RRR)]_! V 4      RR7      NK  	  up tg]R! ]T! ]f]gRS7      ]gRS7      tf ! RY RZ4      th]hPÂ                   U u. uF  p ]`! V ]4RRRRR)RRR)R[7
      NK  	  up ti]N! ]R! ]T! ]h]iRS7      ]iRS7      ]iRS7      th ! R\ R]4      tjRj U u. uF  p ]`! V ]4RRRRR)RRR)R[7
      NK  	  up ti]N! ]R! ]T! ]j]iRS7      ]iRS7      ]iRS7      tj]%3R3R^ ltk]I! RRR_7       ! R` Ra4      4       tlRb tmRc t.R# u up i u upi u upi u up i u up i u up i )ké    )ÚannotationsN)ÚCallableÚMapping)Úcached_property)ÚAnyÚ
NamedTupleÚTypeVar)Ú_compatÚ_configÚsetters)ÚPY_3_10_PLUSÚPY_3_11_PLUSÚPY_3_13_PLUSÚ_AnnotationExtractorÚ_get_annotationsÚget_generic_base)ÚDefaultAlreadySetErrorÚFrozenInstanceErrorÚNotAnAttrsClassErrorÚUnannotatedAttributeErrorz__attr_factory_%sÚ_attrs_cached_hashc                  óH   € ] tR t^>tRt]P                  ! 4       tR tR t	Rt
R# )Ú_Nothinga.  
Sentinel to indicate the lack of a value when `None` is ambiguous.

If extending attrs, you can use ``typing.Literal[NOTHING]`` to show
that a value may be ``NOTHING``.

.. versionchanged:: 21.1.0 ``bool(NOTHING)`` is now False.
.. versionchanged:: 22.2.0 ``NOTHING`` is now an ``enum.Enum`` variant.
c                	ó   € R # )ÚNOTHING© ©Úselfs   &Ú[/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/attr/_make.pyÚ__repr__Ú_Nothing.__repr__K   s   € Ùó    c                	ó   € R # ©Fr   r   s   &r   Ú__bool__Ú_Nothing.__bool__N   s   € Ùr"   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚenumÚautor   r    r%   Ú__static_attributes__r   r"   r   r   r   >   s   † ñð �iŠi‹k€Gòör"   r   c                  ó4   € ] tR t^ZtRt]! R4      R3R ltRtR# )Ú_CacheHashWrapperac  
An integer subclass that pickles / copies as None

This is used for non-slots classes with ``cache_hash=True``, to avoid
serializing a potentially (even likely) invalid hash value. Since `None`
is the default value for uncalculated hashes, whenever this is copied,
the copy's value for the hash should automatically reset.

See GH #613 for more details.
Nc                	ó   € W3# ©Nr   )r   Ú_none_constructorÚ_argss   &&&r   Ú
__reduce__Ú_CacheHashWrapper.__reduce__f   s   € Ø Ð'Ð'r"   r   )r'   r(   r)   r*   r+   Útyper5   r.   r   r"   r   r0   r0   Z   s   † ñ	ñ ,0°«:¸R÷ (ð (r"   r0   Tc                óx  € \        W;VR4      w  r¿ppVe   VRJd   VRJd   Rp\        V4      hV	eA   V \        Jd   Rp\        V4      h\	        V	4      '       g   Rp\        V4      h\        V	4      p Vf   / p\        V\        \        34      '       d   \        P                  ! V!  pV'       d&   \        V\        \        34      '       d
   \        V!  pV'       d&   \        V\        \        34      '       d
   \        V!  p\        R/ RV bRVbR	VbR
RbRVbRVbRVbRVbRVbRV
bRVbRVbRVbRVbRVbRVb # )a³  
Create a new field / attribute on a class.

Identical to `attrs.field`, except it's not keyword-only.

Consider using `attrs.field` in new code (``attr.ib`` will *never* go away,
though).

..  warning::

    Does **nothing** unless the class is also decorated with
    `attr.s` (or similar)!


.. versionadded:: 15.2.0 *convert*
.. versionadded:: 16.3.0 *metadata*
.. versionchanged:: 17.1.0 *validator* can be a ``list`` now.
.. versionchanged:: 17.1.0
   *hash* is `None` and therefore mirrors *eq* by default.
.. versionadded:: 17.3.0 *type*
.. deprecated:: 17.4.0 *convert*
.. versionadded:: 17.4.0
   *converter* as a replacement for the deprecated *convert* to achieve
   consistency with other noun-based arguments.
.. versionadded:: 18.1.0
   ``factory=f`` is syntactic sugar for ``default=attr.Factory(f)``.
.. versionadded:: 18.2.0 *kw_only*
.. versionchanged:: 19.2.0 *convert* keyword argument removed.
.. versionchanged:: 19.2.0 *repr* also accepts a custom callable.
.. deprecated:: 19.2.0 *cmp* Removal on or after 2021-06-01.
.. versionadded:: 19.2.0 *eq* and *order*
.. versionadded:: 20.1.0 *on_setattr*
.. versionchanged:: 20.3.0 *kw_only* backported to Python 2
.. versionchanged:: 21.1.0
   *eq*, *order*, and *cmp* also accept a custom callable
.. versionchanged:: 21.1.0 *cmp* undeprecated
.. versionadded:: 22.2.0 *alias*
.. versionchanged:: 25.4.0
   *kw_only* can now be None, and its default is also changed from False to
   None.
TNFú6Invalid value for hash.  Must be True, False, or None.z=The `default` and `factory` arguments are mutually exclusive.z*The `factory` argument must be a callable.ÚdefaultÚ	validatorÚreprÚcmpÚhashÚinitÚ	converterÚmetadatar7   Úkw_onlyÚeqÚeq_keyÚorderÚ	order_keyÚ
on_setattrÚaliasr   )Ú_determine_attrib_eq_orderÚ	TypeErrorr   Ú
ValueErrorÚcallableÚFactoryÚ
isinstanceÚlistÚtupler   ÚpipeÚand_Ú_CountingAttr)r:   r;   r<   r=   r>   r?   rA   r7   r@   ÚfactoryrB   rC   rE   rG   rH   rD   rF   Úmsgs   &&&&&&&&&&&&&&&   r   ÚattribrV   j   s—  € ôt $>Ø�˜ó$Ñ €B��yð Ò˜D¨Ó,°¸UÓ1BØFˆÜ˜‹nÐàÒØœ'Ó!àOð ô ˜S“/Ð!Ü˜× Ò Ø>ˆCÜ˜S“/Ð!Ü˜'Ó"ˆàÒØˆô �*œt¤U˜m×,Ò,Ü—\’\ :Ñ.ˆ
ç”Z 	¬D´%¨=×9Ò9Ü˜)Ñ$ˆ	ç”Z 	¬D´%¨=×9Ò9Ü˜)Ñ$ˆ	äò Ùðáðñ ðñ ð	ñ
 ðñ ðñ ðñ ðñ ðñ ðñ ðñ ðñ ðñ ðñ ðñ  ð!ð r"   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
é   ÚscriptÚstrÚglobsúdict[str, Any] | NoneÚlocsúMapping[str, object] | NoneÚfilenameÚreturnÚNoner   )Úformats   "r   Ú__annotate__rc   Ø   s:   € ÷  ñ  Øð à ð ð &ð ð ð	 ð
 
ñ r"   c                ó6   € \        WR4      p\        WAV4       R# )zO
Evaluate the script with the given global (globs) and local (locs)
variables.
ÚexecN)ÚcompileÚeval)rY   r[   r]   r_   Úbytecodes   &&&& r   Ú_compile_and_evalri   Ø   s   € ô �v¨Ó0€HÜˆ˜$Ör"   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rX   rY   rZ   r_   r[   r\   Úlocalsr^   r`   zdict[str, Any]r   )rb   s   "r   rc   rc   æ   s:   € ÷  ñ  Øð àð ð !ð ð (ð	 ð
 ñ r"   c                óì   € Vf   / MTp^pTp \        V 4      RV P                  R4      V3p\        P                  P	                  W4      pW‡8X  d   MVRR  RV R2pV^,          pK[  \        WWA4       V# )zH
Cache the script with _linecache_, compile it and return the _locals_.
NTÚ-Ú>éÿÿÿÿ)ÚlenÚ
splitlinesÚ	linecacheÚcacheÚ
setdefaultri   )	rY   r_   r[   rk   r]   ÚcountÚbase_filenameÚlinecache_tupleÚold_vals	   &&&&     r   Ú_linecache_and_compilery   æ   s‘   € ð ’‰2 V€Dð €EØ€MØ
ä�‹KØØ×Ñ˜dÓ#Øð	
ˆô —/‘/×,Ñ,¨XÓGˆØÔ%Øà# C RÐ(Ð)¨¨5¨'°Ð3ˆØ��
Šä�f TÔ4à€Kr"   c               ó$   € V ^8„  d   QhRRRRRR/# )rX   Úcls_namerZ   Ú
attr_namesz	list[str]r`   r7   r   )rb   s   "r   rc   rc   	  s!   € ÷ 1ñ 1 Sð 1°ið 1ÀDñ 1r"   c                ó‚   € V  R2p/ p\        V4       F  w  rEV3R lp\        V4      W5&   K  	  \        V\        3V4      # )zÑ
Create a tuple subclass to hold `Attribute`s for an `attrs` class.

The subclass is a bare tuple with properties for names.

class MyClassAttributes(tuple):
    __slots__ = ()
    x = property(itemgetter(0))
Ú
Attributesc                ó   € W,          # r2   r   )r   Úis   &&r   ÚgetterÚ&_make_attr_tuple_class.<locals>.getter  s	   € Ø•7ˆNr"   )Ú	enumerateÚpropertyr7   rP   )r{   r|   Úattr_class_nameÚbodyr€   Ú	attr_namer�   s   &&     r   Ú_make_attr_tuple_classrˆ   	  sO   € ð "˜
 *Ð-€OØ€DÜ! *Ö-‰ˆàô 	ô # 6Ó*ˆ‹ñ .ô �¤% ¨4Ó0Ð0r"   c                  ó6   € ] tR tRt$ R]R&   R]R&   R]R&   RtR	# )
Ú_Attributesi   r7   Úattrsúlist[Attribute]Ú
base_attrsúdict[str, type]Úbase_attrs_mapr   N)r'   r(   r)   r*   Ú__annotations__r.   r   r"   r   rŠ   rŠ      s   ‡ ØƒKØÓØ#×#r"   rŠ   c                ó¨   € \        V 4      p V P                  R4      '       d   V P                  R4      '       d   V ^R p V P                  \        4      # )zÝ
Check whether *annot* is a typing.ClassVar.

The string comparison hack is used to avoid evaluating all string
annotations which would put attrs-based classes at a performance
disadvantage compared to plain old classes.
)Ú'Ú"ro   )rZ   Ú
startswithÚendswithÚ_CLASSVAR_PREFIXES)Úannots   &r   Ú_is_class_varr˜   &  sK   € ô �‹J€Eð ×Ñ˜
×#Ò#¨¯©°z×(BÒ(BØ�a˜�ˆà×ÑÔ.Ó/Ð/r"   c                ó   € WP                   9   # )zJ
Check whether *cls* defines *attrib_name* (and doesn't just inherit it).
)Ú__dict__)ÚclsÚattrib_names   &&r   Ú_has_own_attributer�   7  s   € ð Ÿ,™,Ñ&Ð&r"   c               ó   € V ^8„  d   QhRR/# )rX   r`   z'tuple[list[Attribute], dict[str, type]]r   )rb   s   "r   rc   rc   >  s   € ÷ #ñ #à,ñ#r"   c                óÞ  € . p/ p\        V P                  ^R 4       Fm  p\        VR. 4       FY  pVP                  '       g   VP                  V9   d   K(  VP                  RR7      pVP                  V4       WCVP                  &   K[  	  Ko  	  . p\        4       p\        V4       FC  pVP                  V9   d   K  VP                  ^ V4       VP                  VP                  4       KE  	  Wc3# )zI
Collect attr.ibs from base classes of *cls*, except *taken_attr_names*.
Ú__attrs_attrs__T©Ú	inheritedro   )
ÚreversedÚ__mro__Úgetattrr¢   ÚnameÚevolveÚappendÚsetÚinsertÚadd)r›   Útaken_attr_namesr�   Úbase_attr_mapÚbase_clsÚaÚfilteredÚseens   &&      r   Ú_collect_base_attrsr²   >  sÔ   € ð €JØ€Mô ˜SŸ[™[¨¨2Ð.Ö/ˆÜ˜Ð#4°bÖ9ˆAØ�{�{ˆ{˜aŸf™fÐ(8Ô8Ùà—‘ 4�Ó(ˆAØ×Ñ˜aÔ Ø$,˜!Ÿ&™&Ó!ó :ñ 0ð €HÜ‹5€DÜ�jÖ!ˆØ�6‰6�TŒ>ÙØ�‰˜˜1ÔØ�‰�—‘Öñ	 "ð Ð"Ð"r"   c                ó"  € . p/ pV P                   ^R  Fv  p\        VR. 4       Fb  pVP                  V9   d   K  VP                  RR7      pVP	                  VP                  4       VP                  V4       WCVP                  &   Kd  	  Kx  	  W#3# )a  
Collect attr.ibs from base classes of *cls*, except *taken_attr_names*.

N.B. *taken_attr_names* will be mutated.

Adhere to the old incorrect behavior.

Notably it collects from the front and considers inherited attributes which
leads to the buggy behavior reported in #428.
r    Tr¡   ro   )r¤   r¥   r¦   r§   r«   r¨   )r›   r¬   r�   r­   r®   r¯   s   &&    r   Ú_collect_base_attrs_brokenr´   _  s�   € ð €JØ€Mð —K‘K  "Ó%ˆÜ˜Ð#4°bÖ9ˆAØ�v‰vÐ)Ô)Ùà—‘ 4�Ó(ˆAØ× Ñ  §¡Ô(Ø×Ñ˜aÔ Ø$,˜!Ÿ&™&Ó!ó :ñ &ð Ð$Ð$r"   c               ó   € V ^8„  d   QhRR/# )rX   r`   rŠ   r   )rb   s   "r   rc   rc   {  s   € ÷ }Eñ }Eð ñ}Er"   c                óp  a€ V P                   o\        V 4      pVe   \        VP                  4       4      pEM;VRJ Ed   SP                  4        UU	u0 uF  w  r‰V	P                  \
        J g   K  VkK  	  p
pp	. p\        4       pVP                  4        Fp  w  rÍ\        V4      '       d   K  VP                  V4       SP                  V\        4      pVP                  \
        Jd   \        V4      pVP                  WÎ34       Kr  	  W«,
          pV'       d8   \        RRP                  \        VV3R lR7      4      ,           R,           4      hM#\        R SP                  4        4       R R7      p\         P"                  p\$        P&                  P(                  pV UUu. uF"  w  ppV! VVVVJVP                  V4      4      NK$  	  pppV'       d*   \+        T V Uu0 uF  qîP,                  kK  	  up4      w  ppM(\/        T V Uu0 uF  qîP,                  kK  	  up4      w  ppV\$        P&                  P0                  J dA   V Uu. uF  qîP3                  RR	7      NK  	  ppV Uu. uF  qîP3                  RR	7      NK  	  ppVV,           pV Fb  pVP4                  '       d   K  \6        P9                  V4      ! R
\;        VP,                  4      4       \6        P9                  V4      ! RR4       Kd  	  Ve   \=        V! V V4      4      pRpR V 4        FN  pVRJ d&   VP>                  \        J d   RV: 2p\A        V4      hVRJ g   K6  VP>                  \        Jg   KL  RpKP  	  V Fb  pVP4                  '       d   K  \6        P9                  V4      ! R
\;        VP,                  4      4       \6        P9                  V4      ! RR4       Kd  	  V Uu. uF  qîP,                  NK  	  pp\C        V PD                  V4      p\G        V! V4      VV4      # u up	pi u uppi u upi u upi u upi u upi u upi )a  
Transform all `_CountingAttr`s on a class into `Attribute`s.

If *these* is passed, use that and don't look for them on the class.

If *collect_by_mro* is True, collect them in the correct MRO order,
otherwise use the old -- incorrect -- order.  See #428.

Return an `_Attributes`.
Tz1The following `attr.ib`s lack a type annotation: ú, c                ó:   <€ SP                  V 4      P                  # r2   )ÚgetÚcounter)ÚnÚcds   &€r   Ú<lambda>Ú"_transform_attrs.<locals>.<lambda>©  s   ø€ °b·f±f¸Q³i×6GÒ6Gr"   )ÚkeyÚ.c              3  óX   "  € T F   w  rVP                   \        J g   K  W3x € K"  	  R # 5ir2   )Ú	__class__rS   )Ú.0r¦   Úattrs   &  r   Ú	<genexpr>Ú#_transform_attrs.<locals>.<genexpr>¯  s)   é € ð á",‘J�DØ—>‘>¤]Ð2ô �•Û",ùs   ‚*Ÿ*c                ó(   € V ^,          P                   # )é   )rº   )Úes   &r   r½   r¾   ´  s   € ˜!˜A�$Ÿ,š,r"   )rB   rH   Úalias_is_defaultFc              3  ól   "  € T F*  qP                   R Jg   K  VP                  R J g   K&  Vx € K,  	  R# 5i)FN)r?   rB   ©rÃ   r¯   s   & r   rÅ   rÆ   ä  s(   é € ÐM™�A§&¡&°Ð"5Œa¸!¿)¹)ÀuÐ:L�aŠa›ùs   ‚4˜4ª
4zlNo mandatory attributes allowed after an attribute with a default value or factory.  Attribute in question: )$rš   r   rO   ÚitemsrÂ   rS   r©   r˜   r«   r¹   r   rV   r¨   r   ÚjoinÚsortedÚ	AttributeÚfrom_counting_attrÚ
ClassPropsÚKeywordOnlyÚNOr²   r¦   r´   ÚFORCEr§   rH   Ú_OBJ_SETATTRÚ__get__Ú_default_init_alias_forrP   r:   rK   rˆ   r'   rŠ   )r›   ÚtheseÚauto_attribsrB   Úcollect_by_mroÚfield_transformerÚannsÚca_listr¦   rÄ   Úca_namesÚannot_namesr‡   r7   r¯   ÚunannotatedÚfcaÚnoÚcaÚ	own_attrsr�   r­   r‹   Úhad_defaultrU   r|   Ú
AttrsClassr¼   s   &&&&&&                     @r   Ú_transform_attrsrè   {  sÐ  ø€ ð$ 
�‰€BÜ˜CÓ €DàÒÜ�u—{‘{“}Ó%ŠØ	˜Ô	ð !Ÿh™hœjô
á(‘
�Ø�~‰~¤Ð.÷ ˆDÙ(ð 	ñ 
ð
 ˆÜ“eˆØ#Ÿz™zž|‰OˆIÜ˜T×"Ò"ÙØ�O‰O˜IÔ&Ø—‘�y¤'Ó*ˆAà�{‰{¤-Ó/Ü˜1“I�Ø�N‰N˜I˜>Ö*ñ  ,ð Õ,ˆßÜ+ØCØ—)‘)Ü˜;Ô,GÔHóõð õ	óð ð ô ñà"$§(¡(¤*óñ
 'ô
ˆô ×
&Ñ
&€CÜ	×	Ñ	×	"Ñ	"€Bñ %ôñ %‰MˆI�rñ 	ØØØ˜2ÐØ�H‰H�YÓö		
ñ %ð ñ ÷ Ü$7Ø¡)Ó,¡)˜Q—&”&¡)Ñ,ó%
Ñ!ˆ
‘Mô %?Ø¡)Ó,¡)˜Q—&”&¡)Ñ,ó%
Ñ!ˆ
�Mð ”*×(Ñ(×.Ñ.Ó.Ù5>Ó?±Y°—X‘X d�XÖ+±Yˆ	Ð?Ù6@ÓA±j°—h‘h t�hÖ,±jˆ
ÐAà˜Õ"€Eó
 ˆØ�w�wŠwä× Ñ  Ô# GÔ-DÀQÇVÁVÓ-LÔMÜ× Ñ  Ô#Ð$6¸Ö=ñ	 ð Ò$ÜÑ'¨¨UÓ3Ó4ˆð €KÙM™ÖMˆØ˜$Ó 1§9¡9´Ó#7ð Að  BCñ  AFð  GˆCÜ˜S“/Ð!à˜%Õ A§I¡I´WÕ$<ØŠKñ Nó ˆØ�w�wŠwÜ× Ñ  Ô# GÔ-DÀQÇVÁVÓ-LÔMÜ× Ñ  Ô#Ð$6¸Ö=ñ ñ #(Ó(¡%˜Q—&”&¡%€JÐ(Ü'¨¯©°jÓA€Jä‘z %Ó(¨*°mÓDÐDùóK
ùóLùò -ùò -ùò @ùÚAùòN )s0   ÁPÁ/PÆ"(PÇP
ÈP$
ÉP)É(P.ÏP3c                ó  € . ROpVe   VP                  R4       MVP                  . RO4       VP                  RR.4       \        VR4      pRV R\        P                  RV/p\        RP                  V4      WER	V/R
7      R,          # )údef wrapper(_cls):z,         return original_getattr(self, item)z    return __getattr__z__getattr__ = wrapper(_cls)r¥   Úcached_propertiesÚ_cached_setattr_getÚoriginal_getattrÚ
Ú_cls)rk   Ú__getattr__)	rê   z    __class__ = _clsz‘    def __getattr__(self, item, cached_properties=cached_properties, original_getattr=original_getattr, _cached_setattr_get=_cached_setattr_get):z+         func = cached_properties.get(item)z         if func is not None:z!              result = func(self)z1              _setter = _cached_setattr_get(self)z#              _setter(item, result)z              return result)z         try:z2             return super().__getattribute__(item)z         except AttributeError:z4             if not hasattr(super(), '__getattr__'):z                 raisez-             return super().__getattr__(item)zY         original_error = f"'{self.__class__.__name__}' object has no attribute '{item}'"z-         raise AttributeError(original_error))r¨   ÚextendÚ_generate_unique_filenamerÖ   r×   ry   rÎ   )rë   rí   r›   ÚlinesÚunique_filenameÚglobs   &&&   r   Ú_make_cached_property_getattrrö   û  s¥   € ò€Eð Ò#Ø�‰Ø:õ	
ð 	�‰ò	ô	
ð 
‡L�Là$Ø)ð	
ôô 0°°YÓ?€Oð 	Ð.Øœ|×3Ñ3ØÐ,ð€Dô "Ø�	‰	�%Ó˜/¸À¸ôàõð r"   c                óx   € \        V \        4      '       d    VR9   d   \        P                  WV4       R# \        h)z,
Attached to frozen classes as __setattr__.
N)Ú	__cause__Ú__context__Ú__traceback__Ú__suppress_context__Ú	__notes__)rN   ÚBaseExceptionÚ__setattr__r   ©r   r¦   Úvalues   &&&r   Ú_frozen_setattrsr  /  s8   € ô �$œ×&Ò&¨4ð 4ô ,ô 	×!Ñ! $¨eÔ4Ùä
Ðr"   c                óv   € \        V \        4      '       d   VR8X  d   \        P                  W4       R# \        h)z,
Attached to frozen classes as __delattr__.
rü   N)rN   rý   Ú__delattr__r   )r   r¦   s   &&r   Ú_frozen_delattrsr  @  s/   € ô �$œ×&Ò&¨4°;Ô+>Ü×!Ñ! $Ô-Ùä
Ðr"   c                 ó2  €  V w  pTP                  p\	        T4      pT FD  pTP
                  '       g   K  TP                  pTP                  pY�9  g   K7  \        Y'4      Y&   KF  	  T! R/ TB #   \          d    R\        T 4       R2p\        T4      Rhi ; i)a³  
Create a new instance, based on the first positional argument with
*changes* applied.

.. tip::

   On Python 3.13 and later, you can also use `copy.replace` instead.

Args:

    inst:
        Instance of a class with *attrs* attributes. *inst* must be passed
        as a positional argument.

    changes:
        Keyword changes in the new copy.

Returns:
    A copy of inst with *changes* incorporated.

Raises:
    TypeError:
        If *attr_name* couldn't be found in the class ``__init__``.

    attrs.exceptions.NotAnAttrsClassError:
        If *cls* is not an *attrs* class.

.. versionadded:: 17.1.0
.. deprecated:: 23.1.0
   It is now deprecated to pass the instance using the keyword argument
   *inst*. It will raise a warning until at least April 2024, after which
   it will become an error. Always pass the instance as a positional
   argument.
.. versionchanged:: 24.1.0
   *inst* can't be passed as a keyword argument anymore.
z*evolve() takes 1 positional argument, but z were givenNr   )	rK   rp   rJ   rÂ   Úfieldsr?   r¦   rH   r¥   )	ÚargsÚchangesÚinstrU   r›   r‹   r¯   r‡   Ú	init_names	   *,       r   r§   r§   K  s    € ðJ'Ø‰ˆð �.‰.€CÜ�3‹K€EÛˆØ�v�vˆvÙØ—F‘Fˆ	Ø—G‘Gˆ	ØÖ#Ü!(¨Ó!9ˆGÓñ ñ ‰>�‰>Ðøô! ô 'à8¼¸T»¸À;ÐOð 	ô ˜‹n $Ð&ð	'ús   ‚A/ Á/'Bc                  ó®   € ] tR tRtRtRtR R ltR tR R ltR t	R	 t
R
 tR tR tR tR tR tR tR tR tR tR tR tR tR R ltR R ltRtR# )Ú_ClassBuilderi…  z 
Iteratively build *one* class.
c               ó(   € V ^8„  d   QhRRRRRRRR/# )rX   r›   r7   rÚ   ÚboolÚpropsrÒ   Úhas_custom_setattrr   )rb   s   "r   rc   Ú_ClassBuilder.__annotate__¢  s>   € ÷ cGñ cGàðcGð ð	cGð
 ðcGð !ñcGr"   c                	óð  € \        VVVVP                  VP                  VP                  4      w  rgpWn        VP
                  '       d   \        VP                  4      M/ V n        W`n	        V U	u0 uF  q™P                  kK  	  up	V n        W€n        \        ;QJ d    . R  V 4       F  NK  	  5M! R  V 4       4      V n        VP
                  V n        VP                   V n        VP$                  V n        VP(                  \*        P,                  P.                  J V n        \3        \5        VRR4      4      V n        RV n        V P6                  '       d@   VP:                  p
\<        P>                  ! V
4      p\A        VPB                  4      ^8„  V n        \3        \5        VRR4      4      V n"        \3        V4      '       * V n#        VPH                  V n%        VPL                  V n'        WPn(        RV n)        V P                  V P                  R&   W@P                  R&   VP                   '       d/   \T        V P                  R&   \V        V P                  R&   RV n)        MîV PN                  \X        \Z        P\                  \Z        P^                  39   d»   R;rÍV F7  p	V	P`                  e   RpV	Pb                  e   RpV'       g   K-  V'       g   K7   M	  V PN                  \X        8X  d   V'       g	   V'       dO   V PN                  \Z        P\                  8X  d	   V'       d(   V PN                  \Z        P^                  8X  d   V'       g   R	V n'        VPd                  '       d.   V Pg                  4       w  V P                  R
&   V P                  R&   . V n4        RV n5        \m        V P                  R4      '       d   \m        V P                  R4      '       g   V Pn                  V n8        R	# V Pr                  V n8        R	# u up	i )c              3  ó8   "  € T F  qP                   x € K  	  R # 5ir2   ©r¦   rÌ   s   & r   rÅ   Ú)_ClassBuilder.__init__.<locals>.<genexpr>¸  s   é € Ð 7±¨A§¦³ùs   ‚Ú__attrs_pre_init__FÚ__attrs_post_init__r    Ú__attrs_props__rþ   r  TNÚ__getstate__Ú__setstate__r(   r)   ):rè   rB   Úcollected_fields_by_mrorÜ   rï   Ú
is_slottedÚdictrš   Ú	_cls_dictÚ_attrsr¦   Ú_base_namesÚ_base_attr_maprP   Ú_attr_namesÚ_slotsÚ	is_frozenÚ_frozenÚhas_weakref_slotÚ_weakref_slotÚhashabilityrÒ   ÚHashabilityÚHASHABLE_CACHEDÚ_cache_hashr  r¥   Ú_has_pre_initÚ_pre_init_has_argsr  ÚinspectÚ	signaturerp   Ú
parametersÚ_has_post_initÚ_delete_attribsÚis_exceptionÚ_is_excÚon_setattr_hookÚ_on_setattrÚ_has_custom_setattrÚ_wrote_own_setattrr  r  Ú_DEFAULT_ON_SETATTRr   ÚvalidateÚconvertr;   r@   Úadded_picklingÚ_make_getstate_setstateÚ_script_snippetsÚ_repr_addedÚhasattrÚ_add_method_dunders_safeÚ_add_method_dundersÚ_add_method_dunders_unsafe)r   r›   rÙ   rÚ   r  r  r‹   r�   Úbase_mapr¯   Úpre_init_funcÚpre_init_signatureÚhas_validatorÚhas_converters   &&&&&&        r   Ú__init__Ú_ClassBuilder.__init__¢  s-  € ô '7ØØØØ�M‰MØ×)Ñ)Ø×#Ñ#ó'
Ñ#ˆ˜8ð Œ	Ø/4×/?×/?Ð/?œ˜cŸl™lÔ+ÀRˆŒØŒÙ,6Ó7©J qŸFœF©JÑ7ˆÔØ&Ôß œ5Ñ 7±Ó 7Ÿ5™5Ñ 7±Ó 7Ó7ˆÔØ×&Ñ&ˆŒØ—‘ˆŒØ"×3Ñ3ˆÔà×Ñ¤×!7Ñ!7×!GÑ!GÐGð 	Ôô "¤'¨#Ð/CÀUÓ"KÓLˆÔØ"'ˆÔØ××Ðð  ×2Ñ2ˆMÜ!(×!2Ò!2°=Ó!AÐÜ&)Ð*<×*GÑ*GÓ&HÈ1Ñ&LˆDÔ#Ü"¤7¨3Ð0EÀuÓ#MÓNˆÔÜ#'¨£;œˆÔØ×)Ñ)ˆŒØ ×0Ñ0ˆÔà#5Ô Ø"'ˆÔà,0¯K©Kˆ�‰Ð(Ñ)Ø,1�‰Ð(Ñ)à�?�?ˆ?Ü,<ˆD�N‰N˜=Ñ)Ü,<ˆD�N‰N˜=Ñ)à&*ˆDÕ#Ø×ÑÜÜ×ÑÜ�O‰Oð"
ô 
ð
 -2Ð1ˆMÛ�Ø—;‘;Ò*Ø$(�MØ—;‘;Ò*Ø$(�Mç ‘=§]¡]Ùñ ð ×$Ñ$Ô(;Ô;ß*¯mà×$Ñ$¬×(8Ñ(8Ô8ÇØ×$Ñ$¬¯©Ô7Çð
 $(�Ô à××Ðð ×,Ñ,Ó.ñØ—‘˜~Ñ.Ø—‘˜~Ñ.ð ð 	Ôð !ˆÔô �t—y‘y ,×/Ò/´wØ�I‰I�~÷8
ò 8
ð (,×'DÑ'DˆDÖ$à'+×'FÑ'FˆDÖ$ùò_ 8s   Á0O3c                	ó6   € R V P                   P                   R2# )z<_ClassBuilder(cls=z)>)rï   r'   r   s   &r   r    Ú_ClassBuilder.__repr__  s   € Ø$ T§Y¡Y×%7Ñ%7Ð$8¸Ð;Ð;r"   c               ó   € V ^8„  d   QhRR/# )rX   r`   ra   r   )rb   s   "r   rc   r  
  s   € ÷ 'ñ ' ñ 'r"   c                óX  € RP                  V P                   Uu. uF  q^ ,          NK  	  up4      p/ pV P                   F  w  rEpVP                  V4       K  	  \        V\	        V P
                  R4      V4      pV P                   F  w   rGV! V P                  V4       K  	  R# u upi )z-
Evaluate any registered snippets in one go.
rî   ÚmethodsN)rÎ   r>  Úupdatery   rò   rï   r  )r   ÚsnippetrY   r[   Ú_Úsnippet_globsr]   Úhooks   &       r   Ú_eval_snippetsÚ_ClassBuilder._eval_snippets
  s�   € ð —‘°d×6KÒ6KÓLÑ6K¨7 AŸJ˜JÑ6KÑLÓMˆØˆØ#'×#8Ô#8ÑˆA˜aØ�L‰L˜Ö'ñ $9ô &ØÜ% d§i¡i°Ó;Øó
ˆð ×/Ô/‰JˆAˆqÙ�—‘ Ö&ó 0ùò Ms   šB'c                ó~  € V P                  4        V P                  RJ d7   V P                  4       p\        P                  ! V4      V P
                  n        M2V P                  4       p\        '       d   \        P                  ! V4      p\        VRR4      '       d"   RVP                  9  d   VP                  4        V# )zk
Finalize class based on the accumulated configuration.

Builder cannot be used after calling this method.
TÚ__attrs_init_subclass__N)rU  r#  Ú_create_slots_classÚweakrefÚrefrï   Ú__attrs_base_of_slotted__Ú_patch_original_classr   ÚabcÚupdate_abstractmethodsr¥   rš   rX  )r   r›   s   & r   Úbuild_classÚ_ClassBuilder.build_class  s‘   € ð 	×ÑÔØ�;‰;˜$ÓØ×*Ñ*Ó,ˆCÜ29·+²+¸cÓ2BˆD�I‰IÕ/à×,Ñ,Ó.ˆCß‹|Ü×0Ò0°Ó5�ô
 �CÐ2°D×9Ò9Ø)°·±Ô=à×'Ñ'Ô)àˆ
r"   c                óH  € V P                   pV P                  pV P                  '       dl   V P                   F[  pW29  g   K  \	        W\
        4      \
        Jg   K%  \        P                  ! \        4      ;_uu_ 4        \        W4       RRR4       K]  	  V P                  P                  4        F  w  r4\        WV4       K  	  V P                  '       g8   \	        VRR4      '       d%   RVn        V P                  '       g   \         Vn        V#   + '       g   i     Kê  ; i)z1
Apply accumulated methods and return the class.
NÚ__attrs_own_setattr__F)rï   r   r2  r"  r¥   Ú	_SENTINELÚ
contextlibÚsuppressÚAttributeErrorÚdelattrr  rÍ   Úsetattrr8  rc  r7  rÖ   rþ   )r   r›   Ú
base_namesr¦   r   s   &    r   r]  Ú#_ClassBuilder._patch_original_class5  sã   € ð �i‰iˆØ×%Ñ%ˆ
ð ××ÐØ×(Ô(�àÖ*Ü ¬9Ó5¼YÕFô
 $×,Ò,¬^×<Õ<Ü Ô*÷ =Ñ<ñ )ð  Ÿ>™>×/Ñ/Ö1‰KˆDÜ�C˜uÖ%ñ 2ð
 ×&×&Ð&¬7ØÐ(¨%÷,
ò ,
ð ).ˆCÔ%à×+×+Ð+Ü".�”àˆ
÷# =×<Ð<ús   Á>DÄD!c                ó&
  € V P                   P                  4        UUu/ uF*  w  rV. \        V P                  4      ORNRN59  g   K(  WbK,  	  ppp\	        \
        R4      '       d!   \
        P                  ! V P                  4       V P                  '       gb   RVR&   V P                  '       gK   V P                  P                   F0  pVP                  P                  RR4      '       g   K'  \        VR&    M	  / pRpV P                  P                  ^R  FY  pVP                  P                  RR4      e   RpTP                  \!        VR	. 4       Uu/ uF  pV\!        WG4      bK  	  up4       K[  	  \#        V P$                  4      pV P                  p	V P&                  '       d5   R\!        V P                  R	R4      9  d   RV	9  d   V'       g
   V	R,          p	VP                  4        UU
u/ uF)  w  rz\)        V
\*        4      '       g   K  WzP,                  bK+  	  ppp
. pV'       dÏ   \/        V P                  4      pVP                  4        Fe  w  r~W—3,          p	W7 VP1                  V4       \2        P4                  ! V4      P6                  pV\2        P8                  P:                  Jg   Ka  WýV&   Kg  	  VP                  R
4      pVe   VP1                  V4       \=        VVV P                  4      VR
&   V	 Uu. uF  qwV9  g   K  VNK  	  ppVP                  4        UUu/ uF  w  ppVV9   g   K  VVbK  	  pppV Uu. uF  qwV9  g   K  VNK  	  ppVP                  V4       V P>                  '       d   VP1                  \@        4       \        V4      VR	&   V P                  PB                  VR&   \E        V P                  4      ! V P                  PF                  V P                  P                  V4      p\H        PJ                  ! VP                  PM                  4       V4       F¯  p\)        V\N        \P        34      '       d   \!        VPR                  RR4      pM;\)        V\T        4      '       d   \!        VPV                  RR4      pM\!        VRR4      pV'       g   K|  V F-  p VPX                  V P                  J pV'       d
   VVn,        K-  K/  	  K±  	  V# u uppi u upi u up
pi u upi u uppi u upi   \Z         d     Kf  i ; i)z<
Build and return a new class with a `__slots__` attribute.
rš   Ú__weakref__Ú_clear_type_descriptorsFrc  rþ   NTÚ	__slots__rð   r)   Ú__closure__ro   r   )rm  ).r  rÍ   rP   r"  r@  Úsysrn  rï   r8  r7  Ú	__bases__rš   r¹   rÖ   r¤   rP  r¥   r©   r   r'  rN   r   Úfuncr   r¨   r.  r/  Úreturn_annotationÚ	ParameterÚemptyrö   r+  Ú_HASH_CACHE_FIELDr)   r7   r'   Ú	itertoolsÚchainÚvaluesÚclassmethodÚstaticmethodÚ__func__r„   ÚfgetÚcell_contentsrK   )r   ÚkÚvr¼   r®   Úexisting_slotsÚweakref_inheritedr¦   rj  ÚnamesÚcached_proprë   Ú&additional_closure_functions_to_updateÚclass_annotationsrs  Ú
annotationrí   Ú
slot_namesÚslotÚslot_descriptorÚreused_slotsr›   ÚitemÚclosure_cellsÚcellÚmatchs   &                         r   rY  Ú!_ClassBuilder._create_slots_classY  sš  € ð Ÿ™×,Ñ,Ô.ô
á.‘�ØÐMœ% × 0Ñ 0Ó1ÐM°:ÐM¸}ÑMÑMô ˆAŠDÙ.ð 	ñ 
ô ”3Ð1×2Ò2Ü×'Ò'¨¯	©	Ô2ð ×&×&Ð&Ø*/ˆBÐ&Ñ'à×+×+Ð+Ø $§	¡	× 3Ô 3�HØ×(Ñ(×,Ñ,Ð-DÀe×LÔLÜ,8˜˜=Ñ)Ùñ !4ð ˆØ!ÐØŸ	™	×)Ñ)¨!¨BÓ/ˆHØ× Ñ ×$Ñ$ ]°DÓ9ÒEØ$(Ð!Ø×!Ñ!ô !(¨°+¸rÔ Bóá B˜ð œ' (Ó1Ò1Ù Bñöñ 0ô ˜×)Ñ)Ó*ˆ
à× Ñ ˆà××ÐØ¤W¨T¯Y©Y¸ÀRÓ%HÔHØ UÔ*ß%àÐ%Õ%ˆEð &(§X¡X¤Zô
á%/Ñ!�Ü˜+¤×7ô #ˆD×"Ñ"Ò"Ù%/ð 	ñ 
ð 24Ð.ßÜ 0°·±Ó ;ÐØ/×5Ñ5Ö7‘
�à˜Õ �à�HØ6×=Ñ=¸dÔCÜ$×.Ò.¨tÓ4×FÑF�
Ø¤W×%6Ñ%6×%<Ñ%<Õ<Ø.8 dÓ+ñ 8ð  "Ÿv™v mÓ4ÐØÒ+Ø6×=Ñ=Ð>NÔOä =Ø!Ð#3°T·Y±Yó!ˆBˆ}Ññ (-ÓG¡u˜t¸JÑ0F—d�d¡uˆ
ÐGð *8×)=Ñ)=Ô)?ô
á)?Ñ%��oØ�zÑ!ô "ˆD�/Ò!Ù)?ð 	ñ 
ñ
 (2ÓN¡z˜tÀÑ5M—d�d¡zˆ
ÐNØ
�	‰	�,ÔØ××ÐØ×ÑÔ/Ô0ä 
Ó+ˆˆ;‰à!ŸY™Y×3Ñ3ˆˆ>Ñô �4—9‘9Œo˜dŸi™i×0Ñ0°$·)±)×2EÑ2EÀrÓJˆô —O’OØ�L‰L×ÑÓ!Ð#Iö
ˆDô ˜$¤¬lÐ ;×<Ò<ô !(¨¯©°}ÀdÓ K‘Ü˜D¤(×+Ò+ô !(¨¯	©	°=À$Ó G‘ä '¨¨m¸TÓ B�ç ÙÛ%�ð1Ø ×.Ñ.°$·)±)Ð;�E÷
 Ø-0˜Ö*ñ ó &ñ!
ð2 ˆ
ùóS
ùòFùó"
ùò> Hùó
ùò
 OøôJ "ô âðúsS   ž%S ÁS ÅS&
Ç.S+ÈS+Ë<S1Ì	S1Ì$S6Ì5S6ÍS<ÍS<Ò-TÔTÔTc                	óŒ   a € \        S P                  V4      w  r#V 3R  lpS P                  P                  W#V34       RS n        S # )c                ó>   <€ SP                  VR ,          4      V R &   R# )r    N©rB  ©Úcls_dictr[   r   s   &&€r   Ú_attach_reprÚ,_ClassBuilder.add_repr.<locals>._attach_reprë  s   ø€ Ø#'×#;Ñ#;¸EÀ*Õ<MÓ#NˆH�ZÓ r"   T)Ú_make_repr_scriptr  r>  r¨   r?  )r   ÚnsrY   r[   r—  s   f&   r   Úadd_reprÚ_ClassBuilder.add_reprè  sC   ø€ Ü)¨$¯+©+°rÓ:‰ˆõ	Oð 	×Ñ×$Ñ$ f°\Ð%BÔCØˆÔØˆr"   c                	ó†   € V P                   '       g   R p\        V4      hR pV P                  V4      V P                  R&   V # )z3__str__ can only be generated if a __repr__ exists.c                ó"   € V P                  4       # r2   ©r    r   s   &r   Ú__str__Ú&_ClassBuilder.add_str.<locals>.__str__÷  s   € Ø—=‘=“?Ð"r"   r   )r?  rK   rB  r  )r   rU   r   s   &  r   Úadd_strÚ_ClassBuilder.add_strò  sB   € Ø××ÐØGˆCÜ˜S“/Ð!ò	#ð %)×$<Ñ$<¸WÓ$Eˆ�‰�yÑ!Øˆr"   c                ó¾   aa€ \         ;QJ d    . R V P                   4       F  NK  	  5M! R V P                   4       4      oV3R lpV P                  oVV3R lpW3# )z6
Create custom __setstate__ and __getstate__ methods.
c              3  ó6   "  € T F  qR 8w  g   K  Vx € K  	  R# 5i)rm  Nr   )rÃ   Úans   & r   rÅ   Ú8_ClassBuilder._make_getstate_setstate.<locals>.<genexpr>  s   é € ð !
Ù)�2°=Ñ-@�BŠBÓ)ùs   ‚�
c                óD   <€ S Uu/ uF  q\        W4      bK  	  up# u upi ©ú!
Automatically created by attrs.
©r¥   )r   r¦   Ústate_attr_namess   & €r   Úslots_getstateÚ=_ClassBuilder._make_getstate_setstate.<locals>.slots_getstate  s(   ø€ ñ ;KÓKÑ:J°$œ' $Ó-Ò-Ñ:JÑKÐKùÒKs   †c                ó  <€ \         P                  V 4      p\        V\        4      '       d   \	        SV4       F  w  r4V! W44       K  	  M S F  pW19   g   K  V! W1V,          4       K  	  S'       d   V! \
        R4       R# R# )rª  N)rÖ   r×   rN   rP   Úziprw  )r   ÚstateÚ_ClassBuilder__bound_setattrr¦   r   Úhash_caching_enabledr¬  s   &&   €€r   Úslots_setstateÚ=_ClassBuilder._make_getstate_setstate.<locals>.slots_setstate  ss   ø€ ô +×2Ñ2°4Ó8ˆOÜ˜%¤×'Ò'ô $'Ð'7¸Ö#?‘K�DÙ# DÖ0ò $@ó -�DØ–}Ù'¨°D­kÖ:ñ -÷ $ÙÔ 1°4Ö8ñ $r"   )rP   r"  r+  )r   r­  r´  r³  r¬  s   &  @@r   r=  Ú%_ClassBuilder._make_getstate_setstateý  s`   ù€ ÷
 !œ5ñ !
Ø×)Ò)ó!
Ÿ5™5ñ !
Ø×)Ò)ó!
ó 
Ðõ	Lð  $×/Ñ/Ðö	9ð, Ð-Ð-r"   c                	ó$   € R V P                   R&   V # )NÚ__hash__)r  r   s   &r   Úmake_unhashableÚ_ClassBuilder.make_unhashable&  s   € Ø%)ˆ�‰�zÑ"Øˆr"   c                	óÆ   a € \        S P                  S P                  S P                  S P                  R 7      w  rR V 3R llpS P
                  P                  WV34       S # )©ÚfrozenÚ
cache_hashc               ó$   € V ^8„  d   QhRRRRRR/# )rX   r–  r  r]   r`   ra   r   )rb   s   "r   rc   Ú,_ClassBuilder.add_hash.<locals>.__annotate__2  s&   € ÷ 	Nñ 	N $ð 	N¨dð 	N°tñ 	Nr"   c                ó>   <€ SP                  VR ,          4      V R &   R# )r¸  Nr”  )r–  r]   r   s   &&€r   Úattach_hashÚ+_ClassBuilder.add_hash.<locals>.attach_hash2  s   ø€ Ø#'×#;Ñ#;¸DÀÕ<LÓ#MˆH�ZÓ r"   )Ú_make_hash_scriptrï   r  r%  r+  r>  r¨   )r   rY   r[   rÂ  s   f   r   Úadd_hashÚ_ClassBuilder.add_hash*  sY   ø€ Ü)Ø�I‰IØ�K‰KØ—<‘<Ø×'Ñ'ô	
‰ˆ÷	Nð 	Nð 	×Ñ×$Ñ$ f°[Ð%AÔBàˆr"   c                	ób  a a€ \        S P                  S P                  S P                  S P                  S P
                  S P                  S P                  S P                  S P                  S P                  S P                  R R7      w  roVV 3R lpS P                  P                  WV34       S # )F©Ú
attrs_initc                óP   <€ VR ,          pSVn         SP                  V4      V R &   R# )rI  N©r�   rB  ©r–  r[   r?   r   r   s   && €€r   Ú_attach_initÚ,_ClassBuilder.add_init.<locals>._attach_initI  s*   ø€ Ø˜Õ$ˆDØ#.ˆDÔ Ø#'×#;Ñ#;¸DÓ#AˆH�ZÓ r"   ©Ú_make_init_scriptrï   r  r,  r-  r1  r%  r#  r+  r!  r4  r6  r>  r¨   )r   rY   r[   rÍ  r   s   f   @r   Úadd_initÚ_ClassBuilder.add_init9  s”   ù€ Ü%6Ø�I‰IØ�K‰KØ×ÑØ×#Ñ#Ø×ÑØ�L‰LØ�K‰KØ×ÑØ×ÑØ�L‰LØ×ÑØô&
Ñ"ˆ�{ö	Bð
 	×Ñ×$Ñ$ f°\Ð%BÔCàˆr"   c                	óJ   € V P                  \        4      V P                  R &   V # )Ú__replace__)rB  r§   r  r   s   &r   Úadd_replaceÚ_ClassBuilder.add_replaceR  s    € Ø(,×(@Ñ(@ÄÓ(Hˆ�‰�}Ñ%Øˆr"   c                	ó    € \         ;QJ d    . R  V P                   4       F  NK  	  5M! R  V P                   4       4      V P                  R&   R# )c              3  óŠ   "  € T F9  pVP                   '       g   K  VP                  '       d   K+  VP                  x € K;  	  R # 5ir2   )r?   rB   r¦   )rÃ   Úfields   & r   rÅ   Ú/_ClassBuilder.add_match_args.<locals>.<genexpr>W  s0   é € ð 1
á$�Ø�z�zô à"'§-¥-ô ˆE�JŽJÛ$ùs   ‚A›A¯AÚ__match_args__N)rP   r  r  r   s   &r   Úadd_match_argsÚ_ClassBuilder.add_match_argsV  s>   € ß+0¬5ñ 1
àŸšó1
¯5©5ñ 1
àŸšó1
ó ,
ˆ�‰Ð'Ó(r"   c                	ób  a a€ \        S P                  S P                  S P                  S P                  S P
                  S P                  S P                  S P                  S P                  S P                  S P                  R R7      w  roVV 3R lpS P                  P                  WV34       S # )TrÈ  c                óP   <€ VR ,          pSVn         SP                  V4      V R &   R# )Ú__attrs_init__NrË  rÌ  s   && €€r   Ú_attach_attrs_initÚ8_ClassBuilder.add_attrs_init.<locals>._attach_attrs_initm  s,   ø€ ØÐ)Õ*ˆDØ#.ˆDÔ Ø)-×)AÑ)AÀ$Ó)GˆHÐ%Ó&r"   rÏ  )r   rY   r[   rá  r   s   f   @r   Úadd_attrs_initÚ_ClassBuilder.add_attrs_init]  s•   ù€ Ü%6Ø�I‰IØ�K‰KØ×ÑØ×#Ñ#Ø×ÑØ�L‰LØ�K‰KØ×ÑØ×ÑØ�L‰LØ×ÑØô&
Ñ"ˆ�{ö	Hð
 	×Ñ×$Ñ$ fÐ5GÐ%HÔIàˆr"   c                	ó¦   a € S P                   p\        S P                  4      w  r#V 3R  lpS P                  P	                  W#V34       \
        VR&   S # )c                ó>   <€ SP                  VR ,          4      V R &   R# )Ú__eq__Nr”  r•  s   &&€r   Ú
_attach_eqÚ(_ClassBuilder.add_eq.<locals>._attach_eq{  s   ø€ Ø!%×!9Ñ!9¸%À½/Ó!JˆH�XÓr"   Ú__ne__)r  Ú_make_eq_scriptr  r>  r¨   rê  )r   r¼   rY   r[   rè  s   f    r   Úadd_eqÚ_ClassBuilder.add_eqv  sK   ø€ Ø�^‰^ˆä'¨¯©Ó4‰ˆõ	Kð 	×Ñ×$Ñ$ f°ZÐ%@ÔAäˆˆ8‰àˆr"   c                	ó–   a € S P                   pV 3R  l\        S P                  S P                  4       4       w  VR&   VR&   VR&   VR&   S # )c              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir2   r”  )rÃ   Úmethr   s   & €r   rÅ   Ú*_ClassBuilder.add_order.<locals>.<genexpr>‡  s'   øé € ð B
á;�ð ×$Ñ$ T×*Ð*Û;ùs   ƒ!Ú__lt__Ú__le__Ú__gt__Ú__ge__)r  Ú_make_orderrï   r  )r   r¼   s   f r   Ú	add_orderÚ_ClassBuilder.add_order„  sL   ø€ Ø�^‰^ˆôB
ä# D§I¡I¨t¯{©{Ô;óB
Ñ>ˆˆ8‰�b˜‘l B x¡L°"°X±,ð
 ˆr"   c                	ó˜  a€ / oV P                    FS  pVP                  ;'       g    V P                  pV'       g   K-  V\        P                  Jg   KC  W3SVP
                  &   KU  	  S'       g   V # V P                  '       d   R p\        V4      hV3R lpRV P                  R&   V P                  V4      V P                  R&   RV n
        V # )z7Can't combine custom __setattr__ with on_setattr hooks.c                óp   <€  SV,          w  r4V! WV4      p\        WV4       R #   \          d    Tp Li ; ir2   )ÚKeyErrorrÖ   )r   r¦   Úvalr¯   rT  ÚnvalÚsa_attrss   &&&   €r   rþ   Ú._ClassBuilder.add_setattr.<locals>.__setattr__ž  sA   ø€ ð*Ø" 4�.‘�ñ ˜D SÓ)�ä˜ TÖ*øô ô Ø’ðús   ƒ% ¥5´5Trc  rþ   )r  rG   r6  r   ÚNO_OPr¦   r7  rK   r  rB  r8  )r   r¯   rG   rU   rþ   rþ  s   &    @r   Úadd_setattrÚ_ClassBuilder.add_setattrŽ  s®   ø€ ØˆØ—”ˆAØŸ™×9Ð9¨×)9Ñ)9ˆJß‰z˜j´·±Õ=Ø#$ =�˜Ÿ™Ó ñ ÷
 ØˆKà×#×#Ð#àKˆCÜ˜S“/Ð!õ	+ð 37ˆ�‰Ð.Ñ/Ø(,×(@Ñ(@ÀÓ(Mˆ�‰�}Ñ%Ø"&ˆÔàˆr"   c               ó    € V ^8„  d   QhRRRR/# ©rX   Úmethodr   r`   r   )rb   s   "r   rc   r  ®  s   € ÷ ñ °ð ¸hñ r"   c                óÎ   € V P                   P                  Vn        V P                   P                   RVP                   2Vn        RV P                   P                   R2Vn        V# )z0
Add __module__ and __qualname__ to a *method*.
rÀ   ú$Method generated by attrs for class )rï   r(   r)   r'   r+   ©r   r  s   &&r   rC  Ú(_ClassBuilder._add_method_dunders_unsafe®  s`   € ð !ŸI™I×0Ñ0ˆÔà!%§¡×!7Ñ!7Ð 8¸¸&¿/¹/Ð9JÐKˆÔð 3°4·9±9×3IÑ3IÐ2JÈ!ÐLð 	Œð ˆr"   c               ó    € V ^8„  d   QhRRRR/# r  r   )rb   s   "r   rc   r  ¼  s   € ÷ ñ ¨xð ¸Hñ r"   c                óD  € \         P                  ! \        4      ;_uu_ 4        V P                  P                  Vn        RRR4       \         P                  ! \        4      ;_uu_ 4        V P                  P
                   RVP                   2Vn        RRR4       \         P                  ! \        4      ;_uu_ 4        RV P                  P
                   R2Vn        RRR4       V#   + '       g   i     L±; i  + '       g   i     Lo; i  + '       g   i     T# ; i)z<
Add __module__ and __qualname__ to a *method* if possible.
NrÀ   r  )re  rf  rg  rï   r(   r)   r'   r+   r  s   &&r   rA  Ú&_ClassBuilder._add_method_dunders_safe¼  sÄ   € ô × Ò ¤×0Õ0Ø $§	¡	× 4Ñ 4ˆFÔ÷ 1ô × Ò ¤×0Õ0Ø%)§Y¡Y×%;Ñ%;Ð$<¸A¸f¿o¹oÐ=NÐ"OˆFÔ÷ 1ô × Ò ¤×0Õ0ØCÀDÇIÁI×DZÑDZÐC[Ð[\Ð]ˆFŒN÷ 1ð ˆ÷ 1×0ú÷ 1×0ú÷ 1Ö0ð ˆús#   £C(Á)+C;Â> DÃ(C8	Ã;D	ÄD	)rB  r"  r  r!  r   r+  rï   r  r2  r%  r7  r1  r,  r4  r6  r-  r?  r>  r#  r'  r8  N)r'   r(   r)   r*   r+   ro  rI  r    rU  r`  r]  rY  r›  r¢  r=  r¹  rÅ  rÑ  rÕ  rÜ  rã  rì  r÷  r  rC  rA  r.   r   r"   r   r  r  …  s   † ñð€Iõ0cGòJ<õ'ò$ò2"òHMò^ò	ò'.òRòòò2ò
òò2òòõ@÷ñ r"   r  c                ó°   € V e%   \        VRJVRJ34      '       d   Rp\        V4      hV e   W 3# Vf   TpVf   TpVRJ d   VRJ d   Rp\        V4      hW3# )úŽ
Validate the combination of *cmp*, *eq*, and *order*. Derive the effective
values of eq and order.  If *eq* is None, set it to *default_eq*.
Nú&Don't mix `cmp` with `eq' and `order`.FTú-`order` can only be True if `eq` is True too.©ÚanyrK   )r=   rC   rE   Ú
default_eqrU   s   &&&& r   Ú_determine_attrs_eq_orderr  Ì  sx   € ð
 ‚œ3 ¨$ °¸TÐ0AÐB×CÒCØ6ˆÜ˜‹oÐð ‚Øˆxˆð 
‚zØˆà‚}Øˆà	ˆUƒ{�u “}Ø=ˆÜ˜‹oÐàˆ9Ðr"   c                óü   € V e%   \        VRJVRJ34      '       d   Rp\        V4      hR pV e   V! V 4      w  rWW3# Vf   TRrqM
V! V4      w  rVf   Yr‚M
V! V4      w  r(VRJ d   VRJ d   Rp\        V4      hWW(3# )r  Nr  c                ó:   € \        V 4      '       d   RT rW3# RpW3# )z(
Decide whether a key function is used.
TN)rL   )r   r¿   s   & r   Údecide_callable_or_booleanÚ>_determine_attrib_eq_order.<locals>.decide_callable_or_booleanñ  s-   € ô �E�?Š?Ø˜u�3ð ˆzÐð ˆCØˆzÐr"   FTr  r  )	r=   rC   rE   r  rU   r  Úcmp_keyrD   rF   s	   &&&&     r   rI   rI   è  s«   € ð
 ‚œ3 ¨$ °¸TÐ0AÐB×CÒCØ6ˆÜ˜‹oÐòð ‚Ù1°#Ó6‰ˆØ˜SÐ)Ð)ð 
‚zØ ‰Fá/°Ó3‰
ˆà‚}Ø‰yá5°eÓ<Ñˆà	ˆUƒ{�u “}Ø=ˆÜ˜‹oÐà�uÐ'Ð'r"   c                ót   € VRJ g   VRJ d   V# Vf	   VRJ d   V# V F  p\        W4      '       g   K   R# 	  V# )aX  
Check whether we should implement a set of methods for *cls*.

*flag* is the argument passed into @attr.s like 'init', *auto_detect* the
same as passed into @attr.s and *dunders* is a tuple of attribute names
whose presence signal that the user has implemented it themselves.

Return *default* if no reason for either for or against is found.
TF)r�   )r›   ÚflagÚauto_detectÚdundersr:   Údunders   &&&&& r   Ú_determine_whether_to_implementr    sH   € ð ˆtƒ|�t˜u“}Øˆà‚|˜ uÓ,Øˆó ˆÜ˜c×*Ô*Úñ ð €Nr"   Fc                óT  aaaaaaaa	a
aaaaaaaaaaaaa€ Se!   ^ RI pVP                  \        R4      ^R7       \        WOVR4      w  ooVe   Vo\	        S\
        \        34      '       d   \        P                  ! S!  oVVVVVVVVVVVVVVVVVVVV
VV	3R lpV f   V# V! V 4      # )aÐ  
A class decorator that adds :term:`dunder methods` according to the
specified attributes using `attr.ib` or the *these* argument.

Consider using `attrs.define` / `attrs.frozen` in new code (``attr.s`` will
*never* go away, though).

Args:
    repr_ns (str):
        When using nested classes, there was no way in Python 2 to
        automatically detect that.  This argument allows to set a custom
        name for a more meaningful ``repr`` output.  This argument is
        pointless in Python 3 and is therefore deprecated.

.. caution::
    Refer to `attrs.define` for the rest of the parameters, but note that they
    can have different defaults.

    Notably, leaving *on_setattr* as `None` will **not** add any hooks.

.. versionadded:: 16.0.0 *slots*
.. versionadded:: 16.1.0 *frozen*
.. versionadded:: 16.3.0 *str*
.. versionadded:: 16.3.0 Support for ``__attrs_post_init__``.
.. versionchanged:: 17.1.0
   *hash* supports `None` as value which is also the default now.
.. versionadded:: 17.3.0 *auto_attribs*
.. versionchanged:: 18.1.0
   If *these* is passed, no attributes are deleted from the class body.
.. versionchanged:: 18.1.0 If *these* is ordered, the order is retained.
.. versionadded:: 18.2.0 *weakref_slot*
.. deprecated:: 18.2.0
   ``__lt__``, ``__le__``, ``__gt__``, and ``__ge__`` now raise a
   `DeprecationWarning` if the classes compared are subclasses of
   each other. ``__eq`` and ``__ne__`` never tried to compared subclasses
   to each other.
.. versionchanged:: 19.2.0
   ``__lt__``, ``__le__``, ``__gt__``, and ``__ge__`` now do not consider
   subclasses comparable anymore.
.. versionadded:: 18.2.0 *kw_only*
.. versionadded:: 18.2.0 *cache_hash*
.. versionadded:: 19.1.0 *auto_exc*
.. deprecated:: 19.2.0 *cmp* Removal on or after 2021-06-01.
.. versionadded:: 19.2.0 *eq* and *order*
.. versionadded:: 20.1.0 *auto_detect*
.. versionadded:: 20.1.0 *collect_by_mro*
.. versionadded:: 20.1.0 *getstate_setstate*
.. versionadded:: 20.1.0 *on_setattr*
.. versionadded:: 20.3.0 *field_transformer*
.. versionchanged:: 21.1.0
   ``init=False`` injects ``__attrs_init__``
.. versionchanged:: 21.1.0 Support for ``__attrs_pre_init__``
.. versionchanged:: 21.1.0 *cmp* undeprecated
.. versionadded:: 21.3.0 *match_args*
.. versionadded:: 22.2.0
   *unsafe_hash* as an alias for *hash* (for :pep:`681` compliance).
.. deprecated:: 24.1.0 *repr_ns*
.. versionchanged:: 24.1.0
   Instances are not compared as tuples of attributes anymore, but using a
   big ``and`` condition. This is faster and has more correct behavior for
   uncomparable values like `math.nan`.
.. versionadded:: 24.1.0
   If a class has an *inherited* classmethod called
   ``__attrs_init_subclass__``, it is executed after the class is created.
.. deprecated:: 24.1.0 *hash* is deprecated in favor of *unsafe_hash*.
.. versionchanged:: 25.4.0
   *kw_only* now only applies to attributes defined in the current class,
   and respects attribute-level ``kw_only=False`` settings.
.. versionadded:: 25.4.0 *force_kw_only*
NzQThe `repr_ns` argument is deprecated and will be removed in or after August 2025.)Ú
stacklevelc                ó
  <€ S;'       g    \        V 4      pSR J ;'       d    \        V \        4      pS;'       d    \        V R4      pV'       d   V'       d   Rp\	        V4      hV'       * ;'       d    \        V SSR4      p\        P                  pV'       d   VP                  pM½SR J d"   S'       d   VP                  MVP                  pM–SRJ d   VP                  pMƒSfs   SR J d    \        V R4      '       d   VP                  pMZVR J d(   VR J d"   S'       d   VP                  MVP                  pM-VRJ d   VP                  pMVP                  pMRp\        V4      h\        P                  pS'       d"   S'       d   VP                  MVP                  p	MVP                   p	\        R/ RVbRVbRSbR	SbR
\        V SSR4      bR\        V SSR4      bRVbRV'       * ;'       d    \        V SSR 4      bRVbRSbRV	bRS!bRSbR\        V SSR!SR7      bRSbRSb p
V
P"                  '       g   S'       d   Rp\        V4      h\%        V S SV
VR7      pV
P&                  '       d   VP)                  S4       V
P*                  '       d   VP-                  4        V
P.                  '       d   VP1                  4        V
P2                  '       d   VP5                  4        S'       g   VP7                  4        V
P"                  '       d   VP9                  4        M*V
P:                  VP                  J d   VP=                  4        V
P>                  '       d   VPA                  4        M%VPC                  4        S'       d   Rp\        V4      h\D        '       d#   \        V R4      '       g   VPG                  4        \H        '       d+   S'       d#   \        V R4      '       g   VPK                  4        VPM                  4       # )"Trþ   z/Can't freeze a class with a custom __setattr__.Fr¸  r9   r3  r$  r  r  Ú
added_initÚ
added_reprÚadded_eqÚadded_orderingr(  Úadded_match_argsrB   r&  Ú	added_strr<  )r:   r5  rÜ   zlInvalid value for cache_hash.  To use hash caching, hashing must be either explicitly or implicitly enabled.)rÚ   r  r  zFInvalid value for cache_hash.  To use hash caching, init must be True.rÔ  rÛ  )rç  rê  r   ©rI  rŸ  )rò  ró  rô  rõ  )r  r  )'Ú_has_frozen_base_classÚ
issubclassrý   r�   rK   r  rÒ   r)  ÚLEAVE_ALONEr*  ÚHASHABLEÚ
UNHASHABLErJ   rÓ   rÕ   ÚYESrÔ   Úis_hashabler  r$  r›  r(  r¢  r%  rì  r&  r÷  r  rÅ  r(  r¹  r#  rÑ  rã  r   rÕ  r   rÜ  r`  )"r›   r$  Úis_excÚhas_own_setattrrU   rC   r)  r(  rÓ   Úkwor  ÚbuilderrÚ   r  Úauto_excr¾  rÛ   Úeq_rÜ   Úforce_kw_onlyr½  Úgetstate_setstater>   r?   rB   Ú
match_argsrG   Úorder_r<   Úrepr_nsÚslotsrZ   rÙ   Úweakref_slots"   &           €€€€€€€€€€€€€€€€€€€€€€r   ÚwrapÚattrs.<locals>.wrap¡  sÞ  ø€ à×9Ð9Ô4°SÓ9ˆ	Ø˜TÐ!×DÐD¤j°´mÓ&DˆØ%÷ 
ð 
Ô*<Ø�ó+
ˆ÷ ŸyØCˆCÜ˜S“/Ð!àŒZ÷ 
ð 
Ô;Ø��kÐ#7ó
ˆô !×,Ñ,ˆçØ%×1Ñ1‰KØ�T‹\÷ ð ×+Ò+à ×)Ñ)ñ ð
 �U‹]Ø%×1Ñ1‰KØŠ\Ø˜dÓ"Ô'9¸#¸z×'JÒ'JØ)×5Ñ5‘Ø�t“ 	¨TÓ 1÷ "ð  ×/Ò/à$×-Ñ-ñ ð
 �u“Ø)×5Ñ5‘à)×4Ñ4‘àJˆCÜ˜C“.Ð ä ×,Ñ,ˆßß'4�+×#Ò#¸+¿/¹/‰Cà—.‘.ˆCäò !
Ùð!
áð!
ñ ð!
ñ %3ð	!
ô
 7Ø�T˜;¨ôð!
ô 7Ø�T˜;¨ôð!
ñ ð!
ð  &œ:÷ ð Ü/ØØØØ8ó	øð!
ñ& $ð'!
ñ( (ð)!
ñ* ð+!
ñ, *ð-!
ñ. ð/!
ô0 ;ØØ!ØØ0Øõð1!
ñ> 'ð?!
ñ@ 0ðA!
ˆðF × × Ð §Zð AˆCÜ˜C“.Ð äØØØ%ØØ.ô
ˆð ××ÐØ×Ñ˜WÔ%à�?�?ˆ?Ø�O‰OÔà�>�>ˆ>Ø�N‰NÔØ××ÐØ×ÑÔçØ×ÑÔ!à××ÐØ×ÑÕØ×Ñ +×"8Ñ"8Ó8Ø×#Ñ#Ô%à××ÐØ×ÑÕà×"Ñ"Ô$ßØ^�Ü “nÐ$ç‹<Ô 2°3¸× FÒ FØ×ÑÔ!÷ ‹LßÜ& sÐ,<×=Ò=à×"Ñ"Ô$à×"Ñ"Ó$Ð$r"   )	ÚwarningsÚwarnÚDeprecationWarningr  rN   rO   rP   r   rQ   )Ú	maybe_clsrÙ   r;  r<   r=   r>   r?   r<  r½  r=  rZ   rÚ   rB   r¾  r5  rC   rE   r  rÛ   r8  rG   rÜ   r9  Úunsafe_hashr7  r@  r>  r6  r:  s   &fff&ffffffffff&&ffffff&f  @@r   r‹   r‹   -  s¢   ÿÿý€ ðB ÒÛà�‰ÜØcóð ð	 	ô 	
ô ,¨C°U¸DÓA�K€Cˆð ÒØˆä�*œt¤U˜m×,Ò,Ü—\’\ :Ñ.ˆ
÷G%÷ G%÷ G%ò G%ðV ÒØˆá�	‹?Ðr"   c                ó&   € V P                   \        J # )zJ
Check whether *cls* has a frozen ancestor by looking at its
__setattr__.
)rþ   r  )r›   s   &r   r*  r*  9  s   € ð
 �?‰?Ô.Ð.Ð.r"   c               ó$   € V ^8„  d   QhRRRRRR/# )rX   r›   r7   Ú	func_namerZ   r`   r   )rb   s   "r   rc   rc   A  s!   € ÷ ñ  4ð °Cð ¸Cñ r"   c           
     óX   € RV RV P                    R\        V RV P                  4       R2# )z>
Create a "filename" suitable for a function being generated.
z<attrs generated Ú rÀ   r)   rn   )r(   r¥   r'   )r›   rG  s   &&r   rò   rò   A  s7   € ð
 ˜I˜; a¨¯©Ð'7°qÜ�3˜¨¯©Ó5Ð
6°að	9ðr"   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rX   r›   r7   r‹   rŒ   r½  r  r¾  r`   útuple[str, dict]r   )rb   s   "r   rc   rc   K  s;   € ÷ Eñ EØ	ðEØ%ðEØ/3ðEØAEðEàñEr"   c                ó¨  aaa	a
aa€ \         ;QJ d    . R  S 4       F  NK  	  5M! R  S 4       4      oRp\        \        V R4      4      o/ o	RpRo
RoV'       g   VR,          pM$VR,          pVR,          pR	S
,           o
SR
,          oV.oVVV	V
VV3R lpV'       d™   SP                  VR\         R2,           4       V'       d9   V! R\         R2V^,          4       SP                  V^,          R
,           4       MV! R\         R2V^,          4       SP                  VR\         2,           4       M	V! RV4       RP                  S4      pVS	3# )c              3  óˆ   "  € T F8  qP                   R J g#   VP                   e   K"  VP                  R J g   K4  Vx € K:  	  R# 5i)TN)r>   rC   rÌ   s   & r   rÅ   Ú$_make_hash_script.<locals>.<genexpr>N  s/   é € ð ÙˆaŸF™F d›N¨q¯v©vŒÀ!Ç$Á$È$À,�Š“5ùs   ‚A¦A¸
Aú        r>   zdef __hash__(selfzhash((z))z):z, *zC, _cache_wrapper=__import__('attr._make')._make._CacheHashWrapper):z_cache_wrapper(Ú)c           	     ó²  <€ SP                  W,           S,           VRS	 R2,           .4       S F…  pVP                  '       dK   RVP                   R2pVP                  SV&   SP                  VRV RVP                   R2,           4       K_  SP                  VRVP                   R2,           4       K‡  	  SP                  VR,           S,           4       R	# )
z»
Generate the code for actually computing the hash code.
Below this will either be returned directly or used to compute
a value which is then cached, depending on the value of cache_hash
rO  Ú,rR  Ú_keyú(self.z),ú        self.ú    N)rñ   rD   r¦   r¨   )
ÚprefixÚindentr¯   Úcmp_namer‹   Úclosing_bracesr[   Ú	hash_funcÚmethod_linesÚ	type_hashs
   &&  €€€€€€r   Úappend_hash_computation_linesÚ8_make_hash_script.<locals>.append_hash_computation_linesf  sË   ø€ ð 	×Ñà• )Õ+Ø˜8 I ;¨aÐ0Õ0ðô	
ó ˆAØ�x�xˆxØ˜qŸv™v˜h dÐ+�Ø"#§(¡(��h‘Ø×#Ñ#Ø˜x¨ z°¸¿¹°x¸rÐBÕBöð ×#Ñ# F¨}¸Q¿V¹V¸HÀAÐ-FÕ$FÖGñ ð 	×Ñ˜F V�O¨nÕ<Ö=r"   zif self.z	 is None:zobject.__setattr__(self, 'ú', úself.ú = zreturn self.zreturn rî   )rP   r>   rò   r¨   rw  rÎ   )r›   r‹   r½  r¾  ÚtabÚhash_defr^  rY   rZ  r[   r[  r\  r]  s   &f&&    @@@@@r   rÄ  rÄ  K  sY  ý€ ÷ ŒEñ Ùó�E‰Eñ Ùóó €Eð €CäÔ.¨s°FÓ;Ó<€Ià€Eà"€HØ€IØ€NßØ�DÕ‰à�EÕˆàÐYÕYˆØ%¨	Õ1ˆ	Ø˜#Õˆà�:€L÷>ò >÷4 Ø×Ñ˜C HÔ->Ð,?¸yÐ"IÕIÔJßÙ)Ø,Ô->Ð,?¸sÐCÀSÈ1ÅWôð ×Ñ  a¥¨#¥Õ.á)ØÔ)Ð*¨#Ð.°°aµôð 	×Ñ˜C LÔ1BÐ0CÐ"DÕDÕEá% i°Ô5à�Y‰Y�|Ó$€FØ�5ˆ=Ðr"   c               ó    € V ^8„  d   QhRRRR/# )rX   r›   r7   r‹   rŒ   r   )rb   s   "r   rc   rc   “  s   € ÷ ñ �4ð  ñ r"   c                óp   € \        WRRR7      w  r#\        W#\        V R4      R7       VR,          V n        V # )z
Add a hash method to *cls*.
Fr¼  r¸  ©r_   )rÄ  ri   rò   r¸  ©r›   r‹   rY   r[   s   &&  r   Ú	_add_hashri  “  sA   € ô &Ø˜5¨Uô�M€Fô ØÔ 9¸#¸zÓ Jõð ˜Õ$€C„LØ€Jr"   c                óR   € V P                  V4      pV\        J d   \        # V'       * # )zR
Check equality and either forward a NotImplemented or
return the result negated.
)rç  ÚNotImplemented)r   ÚotherÚresults   && r   rê  rê  ¡  s(   € ð
 �[‰[˜Ó€FØ”ÓÜÐàŒ:Ðr"   c               ó    € V ^8„  d   QhRRRR/# )rX   r‹   rO   r`   rK  r   )rb   s   "r   rc   rc   ­  s   € ÷ "ñ "˜4ð "Ð$4ñ "r"   c                óh  € V  Uu. uF  qP                   '       g   K  VNK  	  p p. ROp/ pV '       dØ   VP                  R4       V  F®  pVP                  '       dR   RVP                   R2pVP                  W4&   VP                  RV RVP                   RV RVP                   R2	4       M+VP                  R	VP                   R
VP                   24       WR,          Jg   KŸ  VR,           R2VR&   K°  	  VP                  R4       MVP                  R4       RP	                  V4      pWS3# u upi )z.
Create __eq__ method for *cls* with *attrs*.
z    return  (rR  rS  rO  rT  z) == z(other.rP  rU  z
 == other.z andz    )z    return Truerî   )zdef __eq__(self, other):z-    if other.__class__ is not self.__class__:z        return NotImplementedro   )rC   r¨   rD   r¦   rÎ   )r‹   r¯   ró   r[   rY  rY   s   &     r   rë  rë  ­  s  € ñ Ó&™�1§¥�QˆQ™€EÐ&ò€Eð €EßØ�‰�_Ô%ÛˆAØ�x�xˆxØ˜qŸv™v˜h dÐ+�ð #$§(¡(�‘Ø—‘Ø˜x˜j¨¨q¯v©v¨h°e¸H¸:ÀWÈQÏVÉVÈHÐTUÐVõð —‘˜}¨Q¯V©V¨H°J¸q¿v¹v¸hÐGÔHØ˜b�	Õ!Ø$ R�y˜k¨Ð.��b“	ñ ð 	�‰�WÕà�‰Ð&Ô'à�Y‰Y�uÓ€Fàˆ=Ðùò= 's
   …D/�D/c                óž   aa€ S Uu. uF  q"P                   '       g   K  VNK  	  upoV3R loV3R lpV3R lpV3R lpV3R lpW4WV3# u upi )z1
Create ordering methods for *cls* with *attrs*.
c                ó†   <a € \         ;QJ d    . R V 3R lS 4        4       F  NK  	  5# ! R V 3R lS 4        4       4      # )z
Save us some typing.
c              3  óJ   "  € T F  w  rV'       d	   V! V4      MTx € K  	  R # 5ir2   r   )rÃ   r   r¿   s   &  r   rÅ   Ú6_make_order.<locals>.attrs_to_tuple.<locals>.<genexpr>Ü  s(   é € ð 
ñ‘
�÷ ‰C�ŒJ 5Ô(óùs   ‚!#c              3  óh   <"  € T F'  p\        SVP                  4      VP                  3x € K)  	  R # 5ir2   )r¥   r¦   rF   )rÃ   r¯   Úobjs   & €r   rÅ   rs  Þ  s(   øé € ð Ù=B¸”˜˜aŸf™fÓ% q§{¡{Õ3»Uùs   ƒ/2)rP   )ru  r‹   s   f€r   Úattrs_to_tupleÚ#_make_order.<locals>.attrs_to_tupleØ  sK   ù€ ÷ Œuñ 
ôÙ=Bôó
�uð 	
ˆuñ 
ôÙ=Bôó
ó 
ð 	
r"   c                óf   <€ VP                   V P                   J d   S! V 4      S! V4      8  # \        # r©  ©rÂ   rk  ©r   rl  rv  s   &&€r   rò  Ú_make_order.<locals>.__lt__ã  ó0   ø€ ð �?‰?˜dŸn™nÓ,Ù! $Ó'©.¸Ó*?Ñ?Ð?äÐr"   c                óf   <€ VP                   V P                   J d   S! V 4      S! V4      8*  # \        # r©  ry  rz  s   &&€r   ró  Ú_make_order.<locals>.__le__ì  ó0   ø€ ð �?‰?˜dŸn™nÓ,Ù! $Ó'©>¸%Ó+@Ñ@Ð@äÐr"   c                óf   <€ VP                   V P                   J d   S! V 4      S! V4      8„  # \        # r©  ry  rz  s   &&€r   rô  Ú_make_order.<locals>.__gt__õ  r|  r"   c                óf   <€ VP                   V P                   J d   S! V 4      S! V4      8¬  # \        # r©  ry  rz  s   &&€r   rõ  Ú_make_order.<locals>.__ge__þ  r  r"   )rE   )r›   r‹   r¯   rò  ró  rô  rõ  rv  s   &f     @r   rö  rö  Ò  sK   ù€ ñ Ó)™�1§¥�QˆQ™Ñ)€Eõ	
õõõõð ˜6Ð)Ð)ùòc *s
   ‡A
ŸA
c                ó    € Vf   V P                   p\        V4      w  r#\        W#\        V R4      R7       VR,          V n        \
        V n        V # )z-
Add equality methods to *cls* with *attrs*.
rç  rg  )r    rë  ri   rò   rç  rê  rh  s   &&  r   Ú_add_eqr…  
  sN   € ð ‚}Ø×#Ñ#ˆä# EÓ*�M€FÜØÔ 9¸#¸xÓ Hõð �x•€C„JÜ€C„Jà€Jr"   c               ó   € V ^8„  d   QhRR/# )rX   r`   rK  r   )rb   s   "r   rc   rc     s   € ÷ 6#ñ 6#Ð$4ñ 6#r"   c                óT  € \         ;QJ d    . R V  4       F  NK  	  5M! R V  4       4      pV UUUu/ uF  w  r4qT\        8w  g   K  VR,           VbK  	  pppp\        VR&   \        VR&   \        VR&   . pV F[  w  r4pV'       d
   RV,           MRV,           R,           p	V\        8X  d   V: R	V	: R
2MV: R	V: RV	: R2p
VP                  V
4       K]  	  RP                  V4      pVf   RpM	VR,           pRRRRRRRRRRRRRV RV R2RR.pR P                  V4      V3# u upppi )!z;
Create the source and globs for a __repr__ and return it.
c              3  ó¸   "  € T FP  pVP                   R Jg   K  VP                  VP                   RJ d   \         MVP                   VP                  3x € KR  	  R# 5i)FTN)r<   r¦   r?   rÌ   s   & r   rÅ   Ú$_make_repr_script.<locals>.<genexpr>"  sD   é € ð "áˆAØ�6‰6˜Ðô 	?ˆ�‰˜!Ÿ&™& D›.•$¨a¯f©f°q·v±vÕ>Ûùs   ‚A™AAÚ_reprr
   rg  r   ra  zgetattr(self, "z", NOTHING)z={z!r}z_repr(z)}r·   z1{self.__class__.__qualname__.rsplit(">.", 1)[-1]}z.{self.__class__.__name__}zdef __repr__(self):z  try:z:    already_repring = _compat.repr_context.already_repringz  except AttributeError:z!    already_repring = {id(self),}z:    _compat.repr_context.already_repring = already_repringz  else:z#    if id(self) in already_repring:z      return '...'z	    else:z#      already_repring.add(id(self))z    return f'Ú(z)'z
  finally:z$    already_repring.remove(id(self))rî   )rP   r<   r
   rg  r   r¨   rÎ   )r‹   rš  Úattr_names_with_reprsr¦   ÚrrR  r[   Úattribute_fragmentsr€   ÚaccessorÚfragmentÚrepr_fragmentÚcls_name_fragmentró   s   &&            r   r™  r™    sp  € ÷ "œEñ "áó"ŸE™Eñ "áó"ó Ðñ -BõÙ,A™j˜d qÌ$ÁYÔˆˆw�˜ÒÑ,Að 
ò ô €Eˆ)ÑÜ,€EÐ
ÑÜ€Eˆ)ÑØÐÛ+‰
ˆ�çˆG�dŽNÐ%6¸Õ%=ÀÕ%Mð 	ð
 ”DŒyó  £Ñ*ã'+«T³8Ð<ð 	ð
 	×"Ñ" 8Ö,ñ ,ð —I‘IÐ1Ó2€Mà	‚zØOÑàÐ!=Õ=Ðð 	ØØDØ"Ø+ØDØØ-ØØØ-ØØ
Ð)Ð*¨!¨M¨?¸"Ð=ØØ.ð€Eð$ �9‰9�UÓ˜UÐ"Ð"ùôUs   ³D#ÁD#c                óŠ   € Vf   V P                   p\        W!4      w  r4\        W4\        V R4      R7       VR,          V n        V # )z
Add a repr method to *cls*.
r    rg  )r    r™  ri   rò   r    )r›   rš  r‹   rY   r[   s   &&&  r   Ú	_add_reprr”  T  sH   € ð ‚}Ø×#Ñ#ˆä% eÓ0�M€FÜØÔ 9¸#¸zÓ Jõð ˜Õ$€C„LØ€Jr"   c                ó2  € \        V 4      pVfI   \        V \        4      '       g3   \        V 4      p\        VRR4      f   Rp\	        V4      h\        V4      # \        V RR4      pVf/   Ve   \        VRR4      pVe	   W@n        V# V : R2p\        V4      hV# )au  
Return the tuple of *attrs* attributes for a class or instance.

The tuple also allows accessing the fields by their names (see below for
examples).

Args:
    cls (type): Class or instance to introspect.

Raises:
    TypeError: If *cls* is neither a class nor an *attrs* instance.

    attrs.exceptions.NotAnAttrsClassError:
        If *cls* is not an *attrs* class.

Returns:
    tuple (with name accessors) of `attrs.Attribute`

.. versionchanged:: 16.2.0 Returned tuple allows accessing the fields
   by name.
.. versionchanged:: 23.1.0 Add support for generic classes.
.. versionchanged:: 26.1.0 Add support for instances.
Nr    z0Passed object must be a class or attrs instance.ú! is not an attrs-decorated class.)r   rN   r7   r¥   rJ   r  r    r   )r›   Úgeneric_baseÚtype_rU   r‹   s   &    r   r  r  c  s«   € ô0 $ CÓ(€LàÒ¤J¨s´D×$9Ò$9Ü�S“	ˆÜ�5Ð+¨TÓ2Ò:ØDˆCÜ˜C“.Ð ä�e‹}Ðä�CÐ*¨DÓ1€Eà‚}ØÒ#Ü˜LÐ*;¸TÓBˆEØÒ ð ',Ô#Ø�Ø‘Ð8Ð9ˆÜ" 3Ó'Ð'à€Lr"   c                óÎ   € \        V \        4      '       g   Rp\        V4      h\        V RR4      pVf   V : R2p\	        V4      hV Uu/ uF  q3P
                  VbK  	  up# u upi )a�  
Return an ordered dictionary of *attrs* attributes for a class, whose keys
are the attribute names.

Args:
    cls (type): Class to introspect.

Raises:
    TypeError: If *cls* is not a class.

    attrs.exceptions.NotAnAttrsClassError:
        If *cls* is not an *attrs* class.

Returns:
    dict[str, attrs.Attribute]: Dict of attribute name to definition

.. versionadded:: 18.1.0
zPassed object must be a class.r    Nr–  )rN   r7   rJ   r¥   r   r¦   )r›   rU   r‹   r¯   s   &   r   Úfields_dictrš  –  sj   € ô& �cœ4× Ò Ø.ˆÜ˜‹nÐÜ�CÐ*¨DÓ1€EØ‚}Ø‘Ð8Ð9ˆÜ" 3Ó'Ð'Ù$Ó%™u˜!�F‰F�AŠI™uÑ%Ð%ùÒ%s   Á
A"c           	     óÆ   € \         P                  RJ d   R# \        V P                  4       F1  pVP                  pVf   K  V! W\        WP                  4      4       K3  	  R# )z˜
Validate all attributes on *inst* that have a validator.

Leaves all exceptions through.

Args:
    inst: Instance of a class with *attrs* attributes.
FN)r   Ú_run_validatorsr  rÂ   r;   r¥   r¦   )r	  r¯   r�  s   &  r   r:  r:  ³  sI   € ô ×Ñ %Ó'Ùä�D—N‘NÖ#ˆØ�K‰KˆØŒ=Ùˆd”w˜t§V¡VÓ,Ö-ó $r"   c                óV   € VP                  V 4      pT;'       d    RVP                  9   # )z6
Check if the attribute name comes from a slot class.
ro  )r¹   rš   )Úa_namer­   r›   s   && r   Ú_is_slot_attrrŸ  Å  s+   € ð ×
Ñ
˜FÓ
#€CØ×.Ð.�; #§,¡,Ñ.Ð.r"   c               ó   € V ^8„  d   QhRR/# )rX   r`   útuple[str, dict, dict]r   )rb   s   "r   rc   rc   Í  s   € ÷ B&ñ B&ð ñB&r"   c                ó„  € V
R J;'       d    V
\         P                  JpV'       d   V'       d   Rp\        V4      hT;'       g    Tp. p/ pV Fº  pVP                  '       g   VP                  \
        J d   K+  VP                  V4       VVVP                  &   VP                  e6   VRJ d,   VP                  \         P                  Jd   Rp\        V4      hRpKŽ  V'       g   K˜  VP                  \         P                  Jg   K¸  RpK¼  	  \        TTTTTTTTT	TTV'       d   RMR4      w  pppV P                  \        P                  9   d;   VP                  \        P                  V P                  ,          P                  4       VP                  R\
        RV/4       V'       d   \        P                   VR&   VVV3# )Nz$Frozen classes can't use on_setattr.Trà  rI  r   Ú	attr_dictrì   )r   r   rK   r?   r:   r   r¨   r¦   rG   Ú_attrs_to_init_scriptr(   rq  ÚmodulesrP  rš   rÖ   r×   )r›   r‹   Úpre_initÚpre_init_has_argsÚ	post_initr½  r<  r¾  r­   r1  Úcls_on_setattrrÉ  Úhas_cls_on_setattrrU   Úneeds_cached_setattrÚfiltered_attrsr£  r¯   rY   r[   r   s   &&&&&&&&&&&&         r   rÐ  rÐ  Í  sƒ  € ð 	˜dÐ"×JÐJ ~¼W¿]¹]Ð'Jð ÷ ×$Ø4ˆÜ˜‹oÐà%×/Ð/¨ÐØ€NØ€IÛˆØ�v�vˆv˜!Ÿ)™)¤wÓ.Ùà×Ñ˜aÔ Øˆ	�!—&‘&Ñà�<‰<Ò#Ø˜‹~ !§,¡,´g·m±mÓ"CØ<�Ü  “oÐ%à#'Ò ßÑ A§L¡L¼¿¹Õ$EØ#'Ò ñ ô  "7ØØØØØØØØØØØß&Ñ¨Jó"Ñ€FˆE�;ð ‡~�~œŸ™Ô$à�‰”S—[‘[ §¡Õ0×9Ñ9Ô:à	‡L�L�)œW k°9Ð=Ô>çô (4×';Ñ';ˆÐ#Ñ$à�5˜+Ð%Ð%r"   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©rX   r‡   rZ   Ú	value_varÚhas_on_setattrr  r`   r   )rb   s   "r   rc   rc     s(   € ÷ 3ñ 3˜ð 3¨ð 3¸Tð 3Àcñ 3r"   c                ó   € RV  RV R2# )zB
Use the cached object.setattr to set *attr_name* to *value_var*.
ú
_setattr('r`  rP  r   )r‡   r¯  r°  s   &&&r   Ú_setattrr³    s   € ð ˜	�{ # i [°Ð2Ð2r"   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# ©	rX   r‡   rZ   r¯  r°  r  r@   Ú	Converterr`   r   )rb   s   "r   rc   rc     s;   € ÷ ]ñ ]Øð]Ø"ð]Ø48ð]ØENð]àñ]r"   c                ó2   € RV  RVP                  W4       R2# )z_
Use the cached object.setattr to set *attr_name* to *value_var*, but run
its converter first.
r²  r`  rP  )Ú_fmt_converter_call©r‡   r¯  r°  r@   s   &&&&r   Ú_setattr_with_converterrº    s&   € ð ˜	�{ # i×&CÑ&CÀIÓ&YÐ%ZÐZ[Ð\Ð\r"   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rX   r‡   rZ   r   r°  r  r`   r   )rb   s   "r   rc   rc   #  s(   € ÷ )ñ )�sð ) 3ð )¸ð )Àñ )r"   c                ó:   € V'       d   \        WR4      # RV  RV 2# )zc
Unless *attr_name* has an on_setattr hook, use normal assignment. Otherwise
relegate to _setattr.
Tra  rb  )r³  )r‡   r   r°  s   &&&r   Ú_assignr½  #  s'   € ÷
 Ü˜	¨$Ó/Ð/à�9�+˜S  Ð(Ð(r"   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# rµ  r   )rb   s   "r   rc   rc   .  s;   € ÷ 
Wñ 
WØð
WØ"ð
WØ48ð
WØENð
Wàñ
Wr"   c                óZ   € V'       d   \        WRV4      # RV  RVP                  W4       2# )zƒ
Unless *attr_name* has an on_setattr hook, use normal assignment after
conversion. Otherwise relegate to _setattr_with_converter.
Tra  rb  )rº  r¸  r¹  s   &&&&r   Ú_assign_with_converterrÀ  .  s5   € ÷ Ü& y¸TÀ9ÓMÐMà�9�+˜S ×!>Ñ!>¸yÓ!TÐ UÐVÐVr"   c               ó$   € V ^8„  d   QhRRRRRR/# )rX   r½  r  r<  r­   rŽ   r   )rb   s   "r   rc   rc   ;  s$   € ÷ ,/ñ ,/Øð,/Øð,/Ø.=ñ,/r"   c                ó~   a€ V RJ d+   VRJ d   R\         \        3# R V3R llpR V3R llpRVV3# R\        \        3# )z[
Determine the correct setter functions based on whether a class is frozen
and/or slotted.
Tc               ó(   € V ^8„  d   QhRRRRRRRR/# r®  r   )rb   s   "r   rc   Ú(_determine_setters.<locals>.__annotate__K  s,   € ÷ 	>ñ 	>Øð	>Ø'*ð	>Ø<@ð	>àñ	>r"   c                óP   <€ \        V S4      '       d   \        WV4      # R V  RV 2# ©ú_inst_dict['z'] = )rŸ  r³  )r‡   r¯  r°  r­   s   &&&€r   Ú
fmt_setterÚ&_determine_setters.<locals>.fmt_setterK  s2   ø€ ô ˜Y¨×6Ò6Ü 	°nÓEÐEà! ) ¨E°)°Ð=Ð=r"   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# rµ  r   )rb   s   "r   rc   rÄ  S  sA   € ÷ 	hñ 	hØð	hàð	hð !ð	hð !ð		hð
 ñ	hr"   c                ó~   <€ V'       g   \        V S4      '       d   \        WW#4      # R V  RVP                  W4       2# rÆ  )rŸ  rº  r¸  )r‡   r¯  r°  r@   r­   s   &&&&€r   Úfmt_setter_with_converterÚ5_determine_setters.<locals>.fmt_setter_with_converterS  sH   ø€ ÷ ¤¨y¸-×!HÒ!HÜ.Ø¨.óð ð " ) ¨E°)×2OÑ2OÐPYÓ2eÐ1fÐgÐgr"   r   )z_inst_dict = self.__dict__)r³  rº  r½  rÀ  )r½  r<  r­   rÈ  rÌ  s   &&f  r   Ú_determine_settersrÎ  ;  s\   ø€ ð �ƒ~Ø�D‹=Ø”xÔ!8Ð8Ð8÷	>ð 	>÷	hð 	hð ,ØØ%ð
ð 	
ð ŒwÔ.Ð.Ð.r"   c               óL   € V ^8„  d   QhRRRRRRRRRRRRR	RR
RRRRRRRRRRR/# )rX   r‹   rŒ   r$  r  r  Úcall_pre_initr§  Úcall_post_initÚdoes_cache_hashr­   rŽ   r1  r«  rª  Úmethod_namerZ   r`   r¡  r   )rb   s   "r   rc   rc   j  s™   € ÷ Eñ EØðEàðEð ðEð ð	Eð
 ðEð ðEð ðEð #ðEð ðEð ðEð ðEð ðEð ñEr"   c           
     ó  € V'       d   R.M. pV	'       d   VP                  R4       \        WV4      w  rÞpVP                  V4       . p. p. p. p/ pRR/pV  EF¥  pVP                  '       d   VP                  V4       VP                  pVP
                  RJ;'       g'    VP
                  \        P                  J;'       d    T
pVP                  p\        VP                  \        4      pV'       d   VP                  P                  '       d   RMRpVP                  e7   \        VP                  \        4      '       g   \        VP                  4      pMVP                  pVP                  RJ Ed   V'       dª   \         VP                  3,          pVeO   VP                  V! VVRV R	2,           VV4      4       VP                  VVP#                  VP                  4      &   M$VP                  V! VVRV R	2,           V4      4       VP                  P$                  VV&   EMtVeI   VP                  V! VR
V R2VV4      4       VP                  VVP#                  VP                  4      &   EM(VP                  V! VR
V R2V4      4       EM	VP                  \&        Jdº   V'       g²   V RV R2pVP(                  '       d   VP                  V4       M"VP                  V4       VP                  V4       VeE   VP                  V! VVVV4      4       VP                  VVP#                  VP                  4      &   EMWVP                  V! VVV4      4       EM<V'       EdŽ   V R2pVP(                  '       d   VP                  V4       M"VP                  V4       VP                  V4       VP                  RV R24       \         VP                  3,          pVe’   VP                  RV! VVVV4      ,           4       VP                  R4       VP                  RV! VVR,           V,           R	,           VV4      ,           4       VP                  VVP#                  VP                  4      &   MfVP                  RV! VVV4      ,           4       VP                  R4       VP                  RV! VVR,           V,           R	,           V4      ,           4       VP                  P$                  VV&   M¦VP(                  '       d   VP                  V4       M"VP                  V4       VP                  V4       VeD   VP                  V! VVVV4      4       VP                  VVP#                  VP                  4      &   MVP                  V! VVV4      4       VP                  RJ g   EKV  VP*                  e   Vf   VP*                  VV&   EKz  Vf   EK�  VP,                  '       g   EK–  VP,                  VV&   EK¨  	  V'       dƒ   \.        VR&   VP                  R4       V Fb  pRVP                  ,           pRVP                  ,           pVP                  RV RV RVP                   R	24       VP                  VV&   VVV&   Kd  	  V'       d   VP                  R4       V'       dB   V'       d   V'       d   R\0         R2p MR\0         R2p M
R\0         R2p VP                  V 4       V'       d.   R P3                  R! V  4       4      p!VP                  R"V! R	24       R#P3                  V4      pR#P3                  V4      pV'       dq   TV'       d   R#MR R$R#P3                  V4       2,          pR#P3                  R% V 4        U"u. uF
  p"V" R&V" 2NK  	  up"4      p#TV'       d   R#MR,          pVV#,          pV'       d   V'       d
   R'V R	2V^ &   R(p$R)T RT R*V'       d   V$P3                  V4      MR+ R,2VV3# u up"i )-z›
Return a script of an initializer for *attrs*, a dict of globals, and
annotations for the initializer.

The globals are required by the generated script.
zself.__attrs_pre_init__()z$_setattr = _cached_setattr_get(self)r`   Nr   Ú Fr‹  rP  zattr_dict['z
'].defaultz=attr_dict['z=NOTHINGzif z is not NOTHING:rV  zelse:Tr   z#if _config._run_validators is True:Ú__attr_validator_Ú__attr_z(self, z, self.zself.__attrs_post_init__()r²  z', None)rÇ  z	'] = Nonera  z = NonerR  c              3  óf   "  € T F'  qP                   '       g   K  R VP                   2x € K)  	  R# 5i)ra  N)r?   r¦   rÌ   s   & r   rÅ   Ú(_attrs_to_init_script.<locals>.<genexpr>P	  s"   é € ÐB±%¨Q¿6½6Ô(˜% §¡˜xÕ(³%ùs   ‚1š1zBaseException.__init__(self, r·   z*, c              3  óP   "  € T F  qP                  R 4      ^ ,          x € K  	  R# 5i)Ú=N)Úsplit)rÃ   Úkwas   & r   rÅ   rÙ  ]	  s   é € Ð#NÁ¸#§I¡I¨c£N°1×$5Ò$5Ãùs   ‚$&rÛ  zself.__attrs_pre_init__(z
    zdef z):
    Úpassrî   )r¨   rÎ  rñ   r;   r¦   rG   r   r   rH   rN   r:   rM   Ú
takes_selfr@   r¶  r?   Ú_INIT_FACTORY_PATÚ_get_global_namerT   r   rB   r7   Ú_first_param_typer   rw  rÎ   )%r‹   r$  r  rÐ  r§  rÑ  rÒ  r­   r1  r«  rª  rÓ  ró   Úextra_linesrÈ  rÌ  r  Úpre_init_argsÚkw_only_argsÚattrs_to_validateÚnames_for_globalsr   r¯   r‡   r°  Úarg_nameÚhas_factoryÚ
maybe_selfr@   Úinit_factory_nameÚargÚval_nameÚinit_hash_cacheÚvalsÚkw_arg_nameÚpre_init_kw_only_argsÚNLs%   &&&&&&&&&&&&                         r   r¤  r¤  j  sw  € ÷( .;Ð(Ñ)À€EçØ�‰ð 3ô		
ô :LØ˜}ó:Ñ6€KÐ6ð 
‡L�L�Ôà€DØ€MØ€LØÐð ÐØ˜TÐ"€KäˆØ�;�;ˆ;Ø×$Ñ$ QÔ'à—F‘Fˆ	ØŸ™¨TÐ1÷ 
ð 
Ø�L‰L¤§¡Ð-×DÐDÐ2Dð 	ð
 —7‘7ˆä  §¡¬GÓ4ˆß*¨q¯y©y×/C×/CÐ/C‘VÈˆ
à�;‰;Ò"¬:°a·k±kÄ9×+MÒ+MÜ! !§+¡+Ó.‰IàŸ™ˆIà�6‰6�UŒ?ßÜ$5¸¿¹¸	Õ$AÐ!ØÒ(Ø—L‘LÙ1Ø%Ø-°!°J°<¸qÐ0AÕAØ*Ø%ó	ôð "×+Ñ+ð & i×&@Ñ&@ÀÇÁÓ&HÒIð —L‘LÙ"Ø%Ø-°!°J°<¸qÐ0AÕAØ*óôð 89·y±y×7HÑ7HÐ!Ð"3Ó4ØÒ&Ø—‘Ù-Ø!Ø% i [°
Ð;Ø&Ø!ó	ôð ×'Ñ'ð " )×"<Ñ"<¸Q¿V¹VÓ"DÓEð —‘ÙØ!Ø% i [°
Ð;Ø&óöð �Y‰YœgÓ%¯kØ�J˜l¨9¨+°ZÐ@ˆCØ�y�yˆyØ×#Ñ# CÕ(à—‘˜CÔ Ø×$Ñ$ XÔ.àÒ$Ø—‘Ù-Ø! 8¨^¸Yóôð ×'Ñ'ð " )×"<Ñ"<¸Q¿V¹VÓ"DÓEð —‘™Z¨	°8¸^ÓLÖMçˆ[Ø�J˜hÐ'ˆCØ�y�yˆyØ×#Ñ# CÕ(à—‘˜CÔ Ø×$Ñ$ XÔ.Ø�L‰L˜3˜x˜jÐ(8Ð9Ô:ä 1°Q·V±V°IÕ =ÐØÒ$Ø—‘ØÙ/Ø! 8¨^¸Yóõôð —‘˜WÔ%Ø—‘ØÙ/Ø!Ø)¨CÕ/°*Õ<¸sÕBØ&Ø!ó	õôð ×'Ñ'ð " )×"<Ñ"<¸Q¿V¹VÓ"DÒEð —‘Ø™Z¨	°8¸^ÓLÕLôð —‘˜WÔ%Ø—‘ØÙ Ø!Ø)¨CÕ/°*Õ<¸sÕBØ&óõôð 45·9±9×3DÑ3DÐÐ/Ò0à�y�yˆyØ×#Ñ# HÕ-à—‘˜HÔ%Ø×$Ñ$ XÔ.àÒ$Ø—‘Ù-Ø! 8¨^¸Yóôð ×'Ñ'ð " )×"<Ñ"<¸Q¿V¹VÓ"DÒEð —‘™Z¨	°8¸^ÓLÔMà�6‰6�TŽ>Ø�v‰vÒ! iÒ&7Ø()¯©�˜HÔ%ØÕ&¨9×+F×+FÓ+Fà(1×(CÑ(C�˜HÔ%ñq ÷t Ü'.Ð˜)Ñ$Ø�‰Ð:Ô;Û"ˆAØ*¨Q¯V©VÕ3ˆHØ! A§F¡FÕ*ˆIØ�L‰L˜4 ˜z¨°°¸7À1Ç6Á6À(È!ÐLÔMØ*+¯+©+Ð˜hÑ'Ø+,Ð˜iÓ(ñ #÷ Ø�‰Ð1Ô2÷ ßßØ$.Ô/@Ð.AÀÐ"J‘à$0Ô1BÐ0CÀ9Ð"M‘à %Ô&7Ð%8¸Ð@ˆOØ�‰�_Ô%÷ Ø�x‰xÑB±%ÓBÓBˆà�‰Ð4°T°F¸!Ð<Ô=à�9‰9�T‹?€DØ—I‘I˜mÓ,€MßàŸ4‘4 RÐ(¨¨D¯I©I°lÓ,CÐ+DÐEÕEˆØ $§	¡	ñ $OÁÔ#Nóñ $O�Kð �-˜q  Ó.á#Nñó!
Ðð 	§™°BÕ6ˆØÐ.Õ.ˆç×*à-¨m¨_¸AÐ>ˆˆa‰ð 
€Bà��˜W T Fð +ß€R‡W�WˆU„^ &Ð)ð *ð	ð 	Øðð ùòs   Þ	_?c               ó    € V ^8„  d   QhRRRR/# )rX   r¦   rZ   r`   r   )rb   s   "r   rc   rc   r	  s   € ÷ ñ  #ð ¨#ñ r"   c                ó$   € V P                  R4      # )zµ
The default __init__ parameter name for a field.

This performs private-name adjustment via leading-unscore stripping,
and is the default value of Attribute.alias if not provided.
rR  )Úlstripr  s   &r   rØ   rØ   r	  s   € ð �;‰;�sÓÐr"   c                  ó`   € ] tR tRtRtRtRR ltR t]RR R ll4       t	R t
R	 tR
 tR tRtR# )rÐ   i}	  aò  
*Read-only* representation of an attribute.

.. warning::

   You should never instantiate this class yourself.

The class has *all* arguments of `attr.ib` (except for ``factory`` which is
only syntactic sugar for ``default=Factory(...)`` plus the following:

- ``name`` (`str`): The name of the attribute.
- ``alias`` (`str`): The __init__ parameter name of the attribute, after
  any explicit overrides and default private-attribute-name handling.
- ``alias_is_default`` (`bool`): Whether the ``alias`` was automatically
  generated (``True``) or explicitly provided by the user (``False``).
- ``inherited`` (`bool`): Whether or not that attribute has been inherited
  from a base class.
- ``eq_key`` and ``order_key`` (`typing.Callable` or `None`): The
  callables that are used for comparing and ordering objects by this
  attribute, respectively. These are set by passing a callable to
  `attr.ib`'s ``eq``, ``order``, or ``cmp`` arguments. See also
  :ref:`comparison customization <custom-comparison>`.

Instances of this class are frequently used for introspection purposes
like:

- `fields` returns a tuple of them.
- Validators get them passed as the first argument.
- The :ref:`field transformer <transform-fields>` hook receives a list of
  them.
- The ``alias`` property exposes the __init__ parameter name of the field,
  with any overrides and default private-attribute handling applied.


.. versionadded:: 20.1.0 *inherited*
.. versionadded:: 20.1.0 *on_setattr*
.. versionchanged:: 20.2.0 *inherited* is not taken into account for
    equality checks and hashing anymore.
.. versionadded:: 21.1.0 *eq_key* and *order_key*
.. versionadded:: 22.2.0 *alias*
.. versionadded:: 26.1.0 *alias_is_default*

For the full version history of the fields, see `attr.ib`.
Nc                	ó0  € \        Y^;'       g    TT;'       g    TR 4      w  rÞpp\        P                  V 4      pV! RV4       V! RV4       V! RV4       V! RV4       V! RV4       V! RV4       V! RV4       V! RV4       V! R	V4       V! R
V4       V! RV4       T! RV	'       d    \        P                  ! \        V	4      4      M\        4       V! RV
4       V! RV4       V! RV4       V! RV4       V! RV4       T! RVf   VRJ 4       R# T4       R# )Tr¦   r:   r;   r<   rC   rD   rE   rF   r>   r?   r@   rA   r7   rB   r¢   rG   rH   rÊ   N)rI   rÖ   r×   ÚtypesÚMappingProxyTyper  Ú_EMPTY_METADATA_SINGLETON)r   r¦   r:   r;   r<   r=   r>   r?   r¢   rA   r7   r@   rB   rC   rD   rE   rF   rG   rH   rÊ   Úbound_setattrs   &&&&&&&&&&&&&&&&&&&& r   rI  ÚAttribute.__init__Â	  s'  € ô, (BØ—�˜2˜y×1Ð1¨E°4ó(
Ñ$ˆ�E˜9ô
 %×,Ñ,¨TÓ2ˆñ 	�f˜dÔ#Ù�i Ô)Ù�k 9Ô-Ù�f˜dÔ#Ù�d˜BÔÙ�h Ô'Ù�g˜uÔ%Ù�k 9Ô-Ù�f˜dÔ#Ù�f˜dÔ#Ù�k 9Ô-ÙØ÷ ô ×&Ò&¤t¨H£~Ô6ä.ô	
ñ 	�f˜dÔ#Ù�i Ô)Ù�k 9Ô-Ù�l JÔ/Ù�g˜uÔ%ÙØØ-Ò5ˆE�TˆMö	
à;Kö	
r"   c                	ó   € \         hr2   )r   rÿ   s   &&&r   rþ   ÚAttribute.__setattr__þ	  s   € Ü!Ð!r"   c               ó$   € V ^8„  d   QhRRRRRR/# )rX   r¦   rZ   rä   rS   rB   r  r   )rb   s   "r   rc   ÚAttribute.__annotate__
  s$   € ÷ 
ñ 
Øð
Ø)ð
Ø48ñ
r"   c                	óæ  € Vf   VP                   pMVP                   e   RV R2p\        V4      hT ! TVP                  VP                  VP                  R VP
                  VP                  RVP                  TVP                  VP                  f   TMVP                  VP                  VP                  VP                  VP                  VP                  VP                  VP                  R J 4      # )Nz>Type annotation and type argument cannot both be present for 'z'.F)r7   rK   Ú_defaultÚ
_validatorr<   r>   r?   rA   r@   rB   rC   rD   rE   rF   rG   rH   )r›   r¦   rä   rB   r7   rU   s   &&&&& r   rÑ   ÚAttribute.from_counting_attr
  sÉ   € ð Š<Ø—7‘7‰DØ�W‰WÒ ØRÐSWÐRXÐXZÐ[ˆCÜ˜S“/Ð!ÙØØ�K‰KØ�M‰MØ�G‰GØØ�G‰GØ�G‰GØØ�K‰KØØ�L‰LØ—z‘zÒ)‰G¨r¯z©zØ�E‰EØ�I‰IØ�H‰HØ�L‰LØ�M‰MØ�H‰HØ�H‰H˜Ðó'
ð 	
r"   c                óf  € \         P                   ! V 4      pVP                  VP                  4       4       RV9   d&   RV9  d   \        P	                  V4      ! RR4       V# RV9   dI   RV9  dB   V P
                  '       d0   \        P	                  V4      ! R\        VP                  4      4       V# )zÚ
Copy *self* and apply *changes*.

This works similarly to `attrs.evolve` but that function does not work
with :class:`attrs.Attribute`.

It is mainly meant to be used for `transform-fields`.

.. versionadded:: 20.3.0
rH   rÊ   Fr¦   )ÚcopyÚ	_setattrsrÍ   rÖ   r×   rÊ   rØ   r¦   )r   r  Únews   &, r   r§   ÚAttribute.evolve$
  s™   € ô �iŠi˜‹oˆà�‰�g—m‘m“oÔ&à�gÔÐ"4¸GÔ"Cä× Ñ  Ô%Ð&8¸%Ô@ð ˆ
ð �gÔØ˜wÔ&à×%×%Ð%ô × Ñ  Ô%ØÔ0°·±Ó:ôð ˆ
r"   c                ó�   a € \         ;QJ d!    . V 3R lS P                   4       F  NK  	  5# ! V 3R lS P                   4       4      # )ú
Play nice with pickle.
c              3  ót   <"  € T F-  pVR 8w  d   \        SV4      M\        SP                  4      x € K/  	  R# 5i©rA   N)r¥   r  rA   ©rÃ   r¦   r   s   & €r   rÅ   Ú)Attribute.__getstate__.<locals>.<genexpr>H
  s4   øé € ð 
á&�ð $(¨:Ô#5ŒG�D˜$Ô¼4ÀÇÁÓ;NÔNÛ&ùs   ƒ58©rP   ro  r   s   fr   r  ÚAttribute.__getstate__D
  s?   ø€ ÷ Œuô 
àŸšó
�uð 	
ˆuô 
àŸšó
ó 
ð 	
r"   c                ó`  € \        V4      \        V P                  4      8  df   \        \        V P                  V4      4      pVP	                  R4      RJ ;'       g%    VP	                  R4      \        VR,          4      8H  p. VOVN5pV P                  \        V P                  V4      4       R# )r  rH   Nr¦   )rp   ro  r  r°  r¹   rØ   r  )r   r±  Ú
state_dictrÊ   s   &&  r   r  ÚAttribute.__setstate__M
  s    € ô ˆu‹:œ˜DŸN™NÓ+Ô+ô œc $§.¡.°%Ó8Ó9ˆJØ)Ÿ~™~Øó àð ÷  ð  à#Ÿ™¨Ó0Ô4KØ˜6Õ"ó5ñ ð ð
 /�eÐ.Ð-Ñ.ˆEà�‰”s˜4Ÿ>™>¨5Ó1Ö2r"   c           	     	óÐ   € \         P                  V 4      pV FJ  w  r4VR 8w  d   V! W44       K  T! TV'       d    \        P                  ! \	        V4      4      M\
        4       KL  	  R# r  )rÖ   r×   rø  rù  r  rú  )r   Úname_values_pairsrû  r¦   r   s   &&   r   r  ÚAttribute._setattrs^
  sU   € Ü$×,Ñ,¨TÓ2ˆÛ,‰KˆDØ�zÔ!Ù˜dÖ*áØ÷ !ô ×.Ò.¬t°E«{Ô;ä6öó	 -r"   r   )r¦   r:   r;   r<   rC   rD   rE   rF   r>   r?   rA   r7   r@   rB   r¢   rG   rH   rÊ   )NNNFNNNNNNNr2   )r'   r(   r)   r*   r+   ro  rI  rþ   r{  rÑ   r§   r  r  r  r.   r   r"   r   rÐ   rÐ   }	  sD   † ñ+ð^€Iô*:
òx"ð ö
ó ð
òDò@
ò3ö"r"   rÐ   rÊ   rA   )r¦   r:   r;   r<   r=   rC   rE   r>   r?   r¢   rH   )r‹   r¢   c                  ó¸   € ] tR tRtRtRt. ];QJ d    . R R 4       F  NK  	  5M! R R 4       4      O]! RRRRRRRRRRRRRRRR7      N5t^ t	R	 t
R
 tR tRtR# )rS   iˆ
  a  
Intermediate representation of attributes that uses a counter to preserve
the order in which the attributes have been defined.

*Internal* data structure of the attrs library.  Running into is most
likely the result of a bug like a forgotten `@attr.s` decorator.
rA   c              #  	óp   "  € T F,  p\        V\        V4      \        R RR RRRRR RR RR R7      x € K.  	  R # 5i)NTF©r¦   rH   r:   r;   r<   r=   r>   r?   rB   rC   rD   rE   rF   r¢   rG   )rÐ   rØ   r   )rÃ   r¦   s   & r   rÅ   Ú_CountingAttr.<genexpr>¤
  sW   é € ð 
ñ$
�ô# ØÜ-¨dÓ3ÜØØØØØØØØØØØØ÷ñ ó"
ùs   ‚46NTFr  c                	ó   € \         ;P                  ^,          un        \         P                  V n        Wn        W n        Wpn        W0n        W°n        WÀn        WÐn	        Wàn
        WPn        W`n        W€n        W�n        W n        Wðn        VV n        R# )rÈ   N)rS   Úcls_counterrº   r  r  r@   r<   rC   rD   rE   rF   r>   r?   rA   r7   rB   rG   rH   )r   r:   r;   r<   r=   r>   r?   r@   rA   r7   rB   rC   rD   rE   rF   rG   rH   s   &&&&&&&&&&&&&&&&&r   rI  Ú_CountingAttr.__init__Ö
  so   € ô& 	×!Ò! QÕ&Õ!Ü$×0Ñ0ˆŒØŒØ#ŒØ"ŒØŒ	ØŒØŒØŒ
Ø"ŒØŒ	ØŒ	Ø ŒØŒ	ØŒØ$ŒØˆŽ
r"   c                óh   € V P                   f	   Wn         V# \        V P                   V4      V n         V# )zl
Decorator that adds *meth* to the list of validators.

Returns *meth* unchanged.

.. versionadded:: 17.1.0
)r  rR   ©r   rð  s   &&r   r;   Ú_CountingAttr.validatorû
  s3   € ð �?‰?Ò"Ø"ŒOð ˆô # 4§?¡?°DÓ9ˆDŒOØˆr"   c                ó^   € V P                   \        Jd   \        h\        VRR7      V n         V# )z¶
Decorator that allows to set the default for an attribute.

Returns *meth* unchanged.

Raises:
    DefaultAlreadySetError: If default has been set before.

.. versionadded:: 17.1.0
T)rß  )r  r   r   rM   r   s   &&r   r:   Ú_CountingAttr.default	  s)   € ð �=‰=¤Ó'Ü(Ð(ä °Ô6ˆŒàˆr"   )r  r  rH   r@   rº   rC   rD   r>   r?   rB   rA   rG   rE   rF   r<   r7   )	rº   r  r<   rC   rE   r>   r?   rG   rH   )r'   r(   r)   r*   r+   ro  rP   rÐ   r    r  rI  r;   r:   r.   r   r"   r   rS   rS   ˆ
  sš   † ñð€Ið$0ß	ˆñ 
ñ$
ó%
�‰ñ 
ñ$
ó%
ó 

ð0ñ> 	ØØØØØØØØØØØØØØØô	
ñ?0€Oðb €Kò#òJör"   rS   c                  óˆ   € ] tR tRtRt ! R R]P                  4      t ! R R]P                  4      tRt	R t
]R 4       tR	tR
# )rÒ   i  añ  
Effective class properties as derived from parameters to `attr.s()` or
`define()` decorators.

This is the same data structure that *attrs* uses internally to decide how
to construct the final class.

Warning:

    This feature is currently **experimental** and is not covered by our
    strict backwards-compatibility guarantees.


Attributes:
    is_exception (bool):
        Whether the class is treated as an exception class.

    is_slotted (bool):
        Whether the class is `slotted <slotted classes>`.

    has_weakref_slot (bool):
        Whether the class has a slot for weak references.

    is_frozen (bool):
        Whether the class is frozen.

    kw_only (KeywordOnly):
        Whether / how the class enforces keyword-only arguments on the
        ``__init__`` method.

    collected_fields_by_mro (bool):
        Whether the class fields were collected by method resolution order.
        That is, correctly but unlike `dataclasses`.

    added_init (bool):
        Whether the class has an *attrs*-generated ``__init__`` method.

    added_repr (bool):
        Whether the class has an *attrs*-generated ``__repr__`` method.

    added_eq (bool):
        Whether the class has *attrs*-generated equality methods.

    added_ordering (bool):
        Whether the class has *attrs*-generated ordering methods.

    hashability (Hashability): How `hashable <hashing>` the class is.

    added_match_args (bool):
        Whether the class supports positional `match <match>` over its
        fields.

    added_str (bool):
        Whether the class has an *attrs*-generated ``__str__`` method.

    added_pickling (bool):
        Whether the class has *attrs*-generated ``__getstate__`` and
        ``__setstate__`` methods for `pickle`.

    on_setattr_hook (Callable[[Any, Attribute[Any], Any], Any] | None):
        The class's ``__setattr__`` hook.

    field_transformer (Callable[[Attribute[Any]], Attribute[Any]] | None):
        The class's `field transformers <transform-fields>`.

.. versionadded:: 25.4.0
c                  ó0   € ] tR tRtRtRt Rt Rt RtRt	R# )	ÚClassProps.Hashabilityid  z7
The hashability of a class.

.. versionadded:: 25.4.0
ÚhashableÚhashable_cacheÚ
unhashableÚleave_aloner   N)
r'   r(   r)   r*   r+   r-  r*  r.  r,  r.   r   r"   r   r)  r&  d  s)   † ñ	ð ˆØ#Ø*ˆØ6Ø!ˆ
Ø+Ø#ˆÛ'r"   r)  c                  ó*   € ] tR tRtRtRt Rt RtRtR# )ÚClassProps.KeywordOnlyit  z_
How attributes should be treated regarding keyword-only parameters.

.. versionadded:: 25.4.0
rã   ÚyesÚforcer   N)	r'   r(   r)   r*   r+   rÔ   r/  rÕ   r.   r   r"   r   rÓ   r,  t  s!   † ñ	ð ˆØ.ØˆØQØˆÛ.r"   rÓ   c                	óÈ   € Wn         W n        W0n        W@n        WPn        W`n        Wpn        W€n        W�n        W n	        W°n
        WÀn        WÐn        Wàn        Wðn        VV n        R # r2   ©r3  r  r&  r$  rB   r  r#  r$  r%  r&  r(  r'  r(  r<  r5  rÜ   )r   r3  r  r&  r$  rB   r  r#  r$  r%  r&  r(  r'  r(  r<  r5  rÜ   s   &&&&&&&&&&&&&&&&&r   rI  ÚClassProps.__init__•  s_   € ð& )ÔØ$ŒØ 0ÔØ"ŒØŒØ'>Ô$Ø$ŒØ$ŒØ ŒØ,ÔØ&ÔØ 0ÔØ"ŒØ,ÔØ.ÔØ!2ˆÖr"   c                	óª   € V P                   \        P                  P                  J ;'       g'    V P                   \        P                  P                  J # r2   )r(  rÒ   r)  r-  r*  r   s   &r   r0  ÚClassProps.is_hashable¹  sI   € ð ×Ñ¤
× 6Ñ 6× ?Ñ ?Ð?÷ Jð JØ×Ñ¤:×#9Ñ#9×#IÑ#IÐIð	
r"   )r%  r#  r'  r&  r<  r$  r(  r  rÜ   r&  r(  r3  r$  r  rB   r5  Nr0  )r'   r(   r)   r*   r+   r,   ÚEnumr)  rÓ   ro  rI  r„   r0  r.   r   r"   r   rÒ   rÒ     sJ   † ñBôH(�d—i‘iô (ô /�d—i‘iô /ð€Iò&"3ðH ñ
ó ô
r"   rÒ   c                  ó4   € ] tR tRtRtRtRR ltR tR tRt	R# )	rM   iÕ  aÇ  
Stores a factory callable.

If passed as the default value to `attrs.field`, the factory is used to
generate a new value.

Args:
    factory (typing.Callable):
        A callable that takes either none or exactly one mandatory
        positional argument depending on *takes_self*.

    takes_self (bool):
        Pass the partially initialized instance that is being initialized
        as a positional argument.

.. versionadded:: 17.1.0  *takes_self*
c                	ó   € Wn         W n        R # r2   ©rT   rß  )r   rT   rß  s   &&&r   rI  ÚFactory.__init__ê  s   € ØŒØ$Žr"   c                ó�   a € \         ;QJ d!    . V 3R lS P                   4       F  NK  	  5# ! V 3R lS P                   4       4      # )r  c              3  ó<   <"  € T F  p\        SV4      x € K  	  R # 5ir2   r«  r  s   & €r   rÅ   Ú'Factory.__getstate__.<locals>.<genexpr>ò  s   øé € ÐD±^¨T”W˜T 4×(Ð(³^ùs   ƒr  r   s   fr   r  ÚFactory.__getstate__î  s/   ø€ ÷ ŒuÔD°T·^²^ÓD�uÐDˆuÔD°T·^²^ÓDÓDÐDr"   c                ó\   € \        V P                  V4       F  w  r#\        WV4       K  	  R# )r  N)r°  ro  ri  )r   r±  r¦   r   s   &&  r   r  ÚFactory.__setstate__ô  s%   € ô ˜tŸ~™~¨uÖ5‰KˆDÜ�D Ö&ó 6r"   r7  Nr$   )
r'   r(   r)   r*   r+   ro  rI  r  r  r.   r   r"   r   rM   rM   Õ  s   † ñð$ *€Iô%òEö'r"   rM   )
r¦   r:   r;   r<   r=   rC   rE   r>   r?   r¢   c                  ó^   € ] tR tRtRtRtRRRR/R lt]R R l4       tR	 R
 lt	R t
R tRtR# )r¶  i  a1  
Stores a converter callable.

Allows for the wrapped converter to take additional arguments. The
arguments are passed in the order they are documented.

Args:
    converter (Callable): A callable that converts the passed value.

    takes_self (bool):
        Pass the partially initialized instance that is being initialized
        as a positional argument. (default: `False`)

    takes_field (bool):
        Pass the field definition (an :class:`Attribute`) into the
        converter as a positional argument. (default: `False`)

.. versionadded:: 24.1.0
Útakes_fieldrß  Fc               	ó  a € VS n         VS n        VS n        \        V4      pVP	                  4       S n        S P                  '       g   S P                  '       g   V 3R  lS n        MqS P                  '       d   S P                  '       g   V 3R lS n        MAS P                  '       g   S P                  '       d   V 3R lS n        MS P                   S n        VP                  4       pVe   VS P                  P                  R&   R# R# )c                ó&   <€ SP                  V 4      # r2   ©r@   )r   rR  Ú__r   s   &&&€r   r½   Ú$Converter.__init__.<locals>.<lambda>6  s   ø€ °·±ÀÔ1Fr"   c                ó&   <€ SP                  W4      # r2   rC  )r   ÚinstancerD  r   s   &&&€r   r½   rE  8  s   ø€ ¸¿¹Øô9r"   c                ó&   <€ SP                  W4      # r2   rC  )r   rD  rÙ  r   s   &&&€r   r½   rE  <  s   ø€ °T·^±^Øô6r"   Nr`   )	r@   rß  r@  r   Úget_first_param_typerâ  Ú__call__Úget_return_typer�   )r   r@   rß  r@  ÚexÚrts   f&$$  r   rI  ÚConverter.__init__-  sÄ   ø€ Ø"ˆŒØ$ˆŒØ&ˆÔä! )Ó,ˆØ!#×!8Ñ!8Ó!:ˆÔà——� 4×#3×#3Ð#3ÜFˆD�MØ�_�_ˆ_ T×%5×%5Ð%5ôˆD�Mð ——� T×%5×%5Ð%5ôˆD�Mð !ŸN™NˆDŒMà×ÑÓ!ˆØŠ>Ø68ˆD�M‰M×)Ñ)¨(Ó3ñ r"   c               ó    € V ^8„  d   QhRRRR/# )rX   r‡   rZ   r`   r   )rb   s   "r   rc   ÚConverter.__annotate__G  s   € ÷ /ñ / Cð /¨Cñ /r"   c                ó   € RV  2# )zP
Return the name that a converter for an attribute name *attr_name*
would have.
Ú__attr_converter_r   )r‡   s   &r   rá  ÚConverter._get_global_nameF  s   € ð # 9 +Ð.Ð.r"   c               ó$   € V ^8„  d   QhRRRRRR/# )rX   r‡   rZ   r¯  r`   r   )rb   s   "r   rc   rP  N  s&   € ÷ \ñ \¨Sð \¸Sð \ÀSñ \r"   c                óz  € V P                   '       g*   V P                  '       g   V P                  V4       RV R2# V P                   '       d-   V P                  '       d   V P                  V4       RV RV R2# V P                   '       d   V P                  V4       RV R2# V P                  V4       RV RV R2# )z¯
Return a string that calls the converter for an attribute name
*attr_name* and the value in variable named *value_var* according to
`self.takes_self` and `self.takes_field`.
r‹  rP  z, self, attr_dict['z'])z, self)z, attr_dict[')rß  r@  rá  )r   r‡   r¯  s   &&&r   r¸  ÚConverter._fmt_converter_callN  sÂ   € ð ——� 4×#3×#3Ð#3Ø×+Ñ+¨IÓ6Ð7°q¸¸À1ÐEÐEà�?�?ˆ?˜t×/×/Ð/Ø×+Ñ+¨IÓ6Ð7°q¸¸ÐCVÐW`ÐVaÐadÐeÐeà�?�?ˆ?Ø×+Ñ+¨IÓ6Ð7°q¸¸À7ÐKÐKà×'Ñ'¨	Ó2Ð3°1°Y°K¸}ÈYÈKÐWZÐ[Ð[r"   c                óN   € RV P                   RV P                  RV P                  /# )z`
Return a dict containing only converter and takes_self -- the rest gets
computed when loading.
r@   rß  r@  ©r@   rß  r@  r   s   &r   r  ÚConverter.__getstate___  s+   € ð ˜Ÿ™Ø˜$Ÿ/™/Ø˜4×+Ñ+ð
ð 	
r"   c                ó*   € V P                   ! R/ VB  R# )z
Load instance from state.
Nr   r)  )r   r±  s   &&r   r  ÚConverter.__setstate__j  s   € ð 	�ŠÑ˜Ôr"   )rJ  râ  r@   r@  rß  N)rJ  râ  Ú_global_namer@   r@  rß  )r'   r(   r)   r*   r+   ro  rI  r|  rá  r¸  r  r  r.   r   r"   r   r¶  r¶    sE   † ñð(€Ið9°ð 9À5ô 9ð2 ô/ó ð/õ\ò"	
ör"   r¶  c                ó6  a€ \         P                  ! RV 4      p \        V\        4      '       d   TpMC\        V\        \
        34      '       d   V Uu/ uF  qf\        4       bK  	  ppMRp\        V4      hVP                  RR4      pVP                  RR4      p	VP                  RR4      p
/ oVe   SP                  V4       Ve   VSR&   V	e   V	SR&   V
e   V
SR&   \        P                  ! W/ V3R l4      p\        P                  ! \        \        4      ;_uu_ 4        \         P"                  ! ^4      P$                  P'                  RR	4      Vn        RRR4       VP                  R
R4      p\+        VVP'                  R4      VP'                  R4      R4      w  VR&   VR&   \-        RRV/VB ! V4      pVP/                  4        UUu/ uF!  w  rïVP0                  f   K  WïP0                  bK#  	  uppVn        V# u upi   + '       g   i     L´; iu uppi )aš  
A quick way to create a new class called *name* with *attrs*.

.. note::

    ``make_class()`` is a thin wrapper around `attr.s`, not `attrs.define`
    which means that it doesn't come with some of the improved defaults.

    For example, if you want the same ``on_setattr`` behavior as in
    `attrs.define`, you have to pass the hooks yourself: ``make_class(...,
    on_setattr=setters.pipe(setters.convert, setters.validate)``

.. warning::

    It is *your* duty to ensure that the class name and the attribute names
    are valid identifiers. ``make_class()`` will *not* validate them for
    you.

Args:
    name (str): The name for the new class.

    attrs (list | dict):
        A list of names or a dictionary of mappings of names to `attr.ib`\
        s / `attrs.field`\ s.

        The order is deduced from the order of the names or attributes
        inside *attrs*.  Otherwise the order of the definition of the
        attributes is used.

    bases (tuple[type, ...]): Classes that the new class will subclass.

    class_body (dict):
        An optional dictionary of class attributes for the new class.

    attributes_arguments: Passed unmodified to `attr.s`.

Returns:
    type: A new class with *attrs*.

.. versionadded:: 17.1.0 *bases*
.. versionchanged:: 18.1.0 If *attrs* is ordered, the order is retained.
.. versionchanged:: 23.2.0 *class_body*
.. versionchanged:: 25.2.0 Class names can now be unicode.
ÚNFKCz(attrs argument must be a dict or a list.r  Nr  rI  c                ó&   <€ V P                  S4      # r2   )rP  )rš  r†   s   &€r   r½   Úmake_class.<locals>.<lambda>Î  s   ø€ ¸¿	¹	À$¼r"   r'   Ú__main__r=   rC   rE   TrÙ   r   )ÚunicodedataÚ	normalizerN   r  rO   rP   rV   rJ   ÚpoprP  rø  Ú	new_classre  rf  rg  rK   rq  Ú	_getframeÚ	f_globalsr¹   r(   r  r  rÍ   r7   r�   )r¦   r‹   ÚbasesÚ
class_bodyÚattributes_argumentsr–  r¯   rU   r¦  r¨  Ú	user_initr˜  r=   r›   r€  r�  r†   s   &&&&,           @r   Ú
make_classrl  †  sò  ø€ ô` × Ò  ¨Ó.€Dä�%œ×ÒØ‰Ü	�EœD¤%˜=×	)Ò	)Ù).Ó/© A”v“x’K©ˆÐ/ˆà8ˆÜ˜‹nÐà�|‰|Ð0°$Ó7€HØ—‘Ð2°DÓ9€IØ—‘˜Z¨Ó.€Ià€DØÒØ�‰�JÔØÒØ%-ˆÐ!Ñ"ØÒØ&/ˆÐ"Ñ#ØÒØ$ˆˆZÑä�OŠO˜D¨Ô-GÓH€Eô 
×	Ò	œ^¬Z×	8Õ	8ÜŸ=š=¨Ó+×5Ñ5×9Ñ9Ø˜
ó
ˆÔ÷ 
9ð ×
"Ñ
" 5¨$Ó
/€Cô 	"ØØ× Ñ  Ó&Ø× Ñ  Ó)Øó		ñØ˜TÑ"Ø˜WÑ%ô Ñ
8�xÐ
8Ð#7Ò
8¸Ó
?€Cð 'Ÿn™nÔ.ôÙ.‘d�a°!·&±&Œ	ˆ�6‰6Š	Ñ.ò€CÔð €Jùò_ 0÷2 
9×	8üó&s   ÁG=Ä 6HÇHÇ"HÈH	)r<  rD  c                  ó.   € ] tR tRtRt]! 4       tR tRtR# )Ú_AndValidatoriñ  z*
Compose many validators to a single one.
c                	ó>   € V P                    F  pV! WV4       K  	  R # r2   )Ú_validators)r   r	  rÄ   r   r�  s   &&&& r   rJ  Ú_AndValidator.__call__ù  s   € Ø×!Ô!ˆAÙˆd˜%Ö ó "r"   r   N)	r'   r(   r)   r*   r+   rV   rp  rJ  r.   r   r"   r   rn  rn  ñ  s   † ññ “(€Kö!r"   rn  c                 ó¨   € . pV  F7  pTP                  \        V\        4      '       d   VP                  MV.4       K9  	  \        \	        V4      4      # )zø
A validator that composes multiple validators into one.

When called on a value, it runs all wrapped validators.

Args:
    validators (~collections.abc.Iterable[typing.Callable]):
        Arbitrary number of validators.

.. versionadded:: 17.1.0
)rñ   rN   rn  rp  rP   )Ú
validatorsrï  r;   s   *  r   rR   rR   þ  sM   € ð €DÛˆ	Ø�‰ä˜)¤]×3Ò3ð ×!Ò!à�ö	
ñ  ô œ˜t›Ó%Ð%r"   c                 ód  a € \         ;QJ d    R S  4       F  '       g   K   RM	  RM! R S  4       4      pV'       d   V 3R lpMV 3R lpS '       g,   \        R4      pVP                  P                  RVRV/4       Mœ\	        S ^ ,          4      P                  4       pV'       d   WBP                  R&   S R
,          p\        '       g#   \        V\        4      '       d   VP                  p\	        V4      P                  4       pV'       d   WbP                  R&   V'       d   \        VRRR	7      # V# )aa  
A converter that composes multiple converters into one.

When called on a value, it runs all wrapped converters, returning the
*last* value.

Type annotations will be inferred from the wrapped converters', if they
have any.

    converters (~collections.abc.Iterable[typing.Callable]):
        Arbitrary number of converters.

.. versionadded:: 20.1.0
c              3  óB   "  € T F  p\        V\        4      x € K  	  R # 5ir2   ©rN   r¶  )rÃ   Úcs   & r   rÅ   Úpipe.<locals>.<genexpr>%  s   é € ÐG¹J°qœ* Q¬	×2Ð2»Jùs   ‚TFc                óh   <€ S F*  p\        V\        4      '       d
   V! WV4      MV! V 4      p K,  	  V # r2   rv  )rü  r	  rÙ  rw  Ú
converterss   &&& €r   Úpipe_converterÚpipe.<locals>.pipe_converter)  s5   ø€ Û�ä+5°a¼×+CÒ+C‘A�c Ô'ÉÈ3Ëò ñ  ð
 ˆJr"   c                ó*   <€ S F  pV! V 4      p K  	  V # r2   r   )rü  rw  rz  s   & €r   r{  r|  3  s   ø€ Û�Ù˜“f’ñ  ð ˆJr"   ÚArü  r`   )rß  r@  ro   )r  r	   r�   rP  r   rI  r   rN   r¶  rJ  rK  )rz  Úreturn_instancer{  r~  ÚtÚlastrM  s   j      r   rQ   rQ     sè   ø€ ÷  “cÑG¹JÓG—c—c’cÑG¹JÓGÓG€Oçö	õ	÷ ä�C‹LˆØ×&Ñ&×-Ñ-¨u°a¸À1Ð.EÕFô ! ¨A¥Ó/×DÑDÓFˆßØ45×*Ñ*¨5Ñ1à˜"�~ˆß‹|¤
¨4´× ;Ò ;Ø—=‘=ˆDô " $Ó'×7Ñ7Ó9ˆßØ79×*Ñ*¨8Ñ4çÜ˜°DÀdÔKÐKØÐr"   )ztyping.ClassVarz
t.ClassVarÚClassVarztyping_extensions.ClassVar)NrÕ  r2   )T)NNNNNNNFFTFFFFFNNFFNNNTNT)NNrX  )nÚ
__future__r   r^  re  r  r,   r.  rx  rr   rq  rø  rb  rZ  Úcollections.abcr   r   Ú	functoolsr   Útypingr   r   r	   rÕ  r
   r   r   r   r   r   r   r   r   Ú
exceptionsr   r   r   r   Úobjectrþ   rÖ   rà  r–   rw  rù  rú  rd  rQ   r;  r:  r9  r4  r   r   Úintr0   rV   ri   ry   rˆ   rŠ   r˜   r�   r²   r´   rè   rö   r  r  r§   r  r  rI   r  r‹   r  r*  rò   rÄ  ri  rê  rë  rö  r…  r™  r”  r  rš  rŸ  rÐ  r³  rº  r½  rÀ  rÎ  r¤  rØ   rÐ   ro  Ú_ar¦   r>   rS   rÒ   Ú_casrM   Ú_fr¶  rl  rn  rR   )r¦   r¯   s   00r   Ú<module>r�     sª  ðõ #ã 
Û Û Û Û Û Û Û 
Û Û Û ç -Ý %ß +Ñ +÷ (Ñ '÷÷ ÷ó ð ×!Ñ!€Ø'Ð ðÐ ð )Ð à!×2Ò2°2Ó6Ð ñ ‹H€	à—l’l 7§?¡?°G×4DÑ4DÓEÐ ôˆt�y‰yô ð( ×
Ñ
€ðô(˜ô (ð" ØØ	ØØ	Ø	ØØ	ØØØØØ
ØØ
ôk÷\ ÷ õF1ô.$�*ô $ò0ò"'õ#òB%õ8}Eò@1òhò"ò7÷tD	ñ D	òNò8((ôVô4BðJ 
€ðò/õõEõPò	õ"òJ5*ôpõ"6#ôrò0òf&ò:.ò$/õB&õJ3õ]õ)õ
Wõ,/õ^EõP÷nñ nð~ ×#Ò#óñ $ˆñ ØØØØÐ(Ñ(ØØØØ�jÑ ØØÙ% dÓ+÷ñ $ñ€ñ" ÙÙ�) 2Ô&ÙÓ6™"�Q§¡¨+Ñ 5�qˆq™"Ñ6ôñ Ó
=‘b�ŸF�FŒ1 q§v¡v°Ñ'<�1ˆ1‘bÑ
=ô€	÷Qñ Qñh ™	 -Ó0Ó1€÷_
ñ _
ð` ×$Ò$óñ %ˆñ ØØØØØØØØØØÙ% dÓ+÷ñ %ñ€ñ" ‘Y˜z°Ô6¸dÔC€
÷$'ñ $'ðh ×!Ò!óñ "ˆñ ØØØØØØØØØØ÷ñ "ñ€ñ  ‘G™I g°RÔ8ÀÔCÈ2Ô
N€÷_ñ _ñ^ ;óñ ;ˆñ ØØØØØØØØØØ÷ñ ;ñ€ñ  Ù‰I�i rÔ*°"Ô5¸Rô€	ð �y¨TôdñV ˆT˜tÔ$÷	!ð 	!ó %ð	!ò&ô.9ùòOùò( 7ùâ
=ùòz	ùòvùòjs6   Ç((N)È$N.È;N.ÉN3
É$N3
É7N3
Ê5"N8ÌN=Í
O