+
    i c                   sZ   ^ 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
 . RXOt ! R R]4      t ! R R4      t]! 4       t ! R	 R
4      t]! 4       t ! R R4      t]! 4       t]P(                  ! / 4      t ! R R4      t]! R4      t]! R4      t]! R4      tRtRtRt] P:                  ! R4      t]! ]P@                  ]!]"]#]$]%]&]PN                  ]PP                  ]PR                  ]PT                  ]PV                  ],]-].04      t/]0! 4       t1 ! R R4      t2 ! R R4      t3 ! R R4      t4R]R]RRRRRRR RR!RR"]R#R/	R$ lt5R% t6R& t7 ! R' R(4      t8R) t9R* t:R+ t;R, t<R- t=R. t>R/ t?R0 t@R1 tAR2 tBR3 tCR4 tDR5 tER6 tFR7 tG/ RYRbRZRbR[RbR\RbR]]EbR^RbR_]FbR`RbRa]FbRb]GbRc]FbRd]GbRe]FbRf]GbRg]FbRh]GbtHR9 tIR: tJR; tKR< tLR= tMR> tNR? tORiRRRRR@RRAR8RBR8RCR8RDRR"R8RER8RFR8/
RG lltPRH tQRI tRRJ tSRK]T/RL ltURM tVRN]W/RO ltXRP tYRQRjRRRRRRRR@RRAR8RBR8RCR8RDRR"R8RER8RFR8RSRRT]P/RU ltZRV t[RW t\R# )ki    N)recursive_reprFieldFrozenInstanceErrorInitVarc                   s    ] tR t^tRtR# )r    N__name__
__module____qualname____firstlineno____static_attributes__r       $/usr/lib64/python3.14/dataclasses.pyr   r      s    4r   c                   s&   a  ] tR t^t o R tRtV tR# )_HAS_DEFAULT_FACTORY_CLASSc                s    R # )z	<factory>r   self   &r   __repr__Z#_HAS_DEFAULT_FACTORY_CLASS.__repr__   s    r   r   N)r   r   r   r	   r   r
   __classdictcell__Z__classdict__   @r   r   r      s      r   r   c                   s    ] tR t^tRtR# )_MISSING_TYPEr   Nr   r   r   r   r   r          r   r   c                   s    ] tR t^tRtR# )_KW_ONLY_TYPEr   Nr   r   r   r   r   r      r   r   r   c                   s,   a  ] tR t^t o R tR tRtV tR# )_FIELD_BASEc                    Wn         R # Nnamer   r      &&r   __init__Z_FIELD_BASE.__init__       	r   c                s    V P                   # r   r   r   r   r   r   Z_FIELD_BASE.__repr__   s    yyr   r   N)r   r   r   r	   r   r   r
   r   r   r   r   r   r      s      r   r   _FIELD_FIELD_CLASSVAR_FIELD_INITVARZ__dataclass_fields__Z__dataclass_params__Z__post_init__z^(?:\s*(\w+)\s*\.)?\s*(\w+)c                   s6   a  ] tR t^t o RtR tR tR tRtV t	R# )r   c                r   r   type)r   r%   r   r   r   ZInitVar.__init__   r    r   c                s    \        V P                  \        4      '       d   V P                  P                  pM\        V P                  4      pR V R2# )zdataclasses.InitVar[Z])
isinstancer%   r   repr)r   Z	type_name   & r   r   ZInitVar.__repr__  s@    dii&&		**I TYYI%i[22r   c                s    \        V4      # r   )r   )clsr%   r   r   __class_getitem__ZInitVar.__class_getitem__
  s    t}r   r$   N)
r   r   r   r	   	__slots__r   r   r*   r
   r   r   r   r   r   r      s     I3 r   c                   sn   a  ] tR tRt o RtR t]! 4       R 4       tR t]	! ]
P                  4      tRtV tR# )r   i  c
                s    R V n         R V n        Wn        W n        W0n        W@n        WPn        W`n        Vf   \        M\        P                  ! V4      V n        Wn        Wn        R V n        R # r   )r   r%   defaultdefault_factoryinitr'   hashcompare_EMPTY_METADATAtypesMappingProxyTypemetadatakw_onlydoc_field_type)
r   r,   r-   r.   r'   r/   r0   r4   r5   r6   s
   &&&&&&&&&&r   r   ZField.__init__&  sc    		.			$, )//9 	 r   c                sV   R V P                   : RV P                  : RV P                  : RV P                  : RV P                  : RV P
                  : RV P                  : RV P                  : RV P                  : R	V P                  : R
V P                  : RV P                   R2# )zField(name=z,type=z	,default=z,default_factory=z,init=,repr=z,hash=z	,compare=z
,metadata=	,kw_only=z,doc=z,_field_type=))r   r%   r,   r-   r.   r'   r/   r0   r4   r5   r6   r7   r   r   r   r   ZField.__repr__7  s    		} %		} %<<* +##'#7#7": ;		} %		} %		} %<<* + MM, -<<* +xxl ##//0 	r   c                s    \        \        V P                  4      R R4      pV'       d   V! V P                  W4       R# R# )__set_name__N)getattrr%   r,   )r   Zownerr   Zfuncs   &&& r   r;   ZField.__set_name__P  s1    tDLL)>4@ u+ r   )r7   r0   r,   r-   r6   r/   r.   r5   r4   r   r'   r%   N)r   r%   r,   r-   r'   r/   r.   r0   r4   r5   r6   r7   )r   r   r   r	   r+   r   r    r   r;   Zclassmethodr2   ZGenericAliasr*   r
   r   r   r   r   r   r     s@     I "  0, $E$6$67r   c                   s0   a  ] tR tRt o RtR tR tRtV tR# )_DataclassParamsiZ  c                s~    Wn         W n        W0n        W@n        WPn        W`n        Wpn        Wn        Wn        Wn	        R # r   
r.   r'   eqorderunsafe_hashfrozen
match_argsr5   slotsweakref_slot)r   r.   r'   r?   r@   rA   rB   rC   r5   rD   rE   s   &&&&&&&&&&&r   r   Z_DataclassParams.__init__g  s8     		
&$
(r   c                s    R V P                   : RV P                  : RV P                  : RV P                  : RV P                  : RV P
                  : RV P                  : RV P                  : RV P                  : R	V P                  : R
2# )z_DataclassParams(init=r8   z,eq=z,order=z,unsafe_hash=z,frozen=z,match_args=r9   z,slots=z,weakref_slot=r:   r>   r   r   r   r   Z_DataclassParams.__repr__u  s    		} %		} %gg[ ! '#//2 3++ )"oo0 1<<* + '  $ 1 14 	r   )
r?   rB   r.   r5   rC   r@   r'   rD   rA   rE   Nr>   )	r   r   r   r	   r+   r   r   r
   r   r   r   r   r=   r=   Z  s     
I) r   r=   r,   r-   r.   Tr'   r/   r0   r4   r5   r6   c        	        s^    V \         Jd   V\         Jd   \        R4      h\        WW#WEWgV4	      # )a  Return an object to identify dataclass fields.

default is the default value of the field.  default_factory is a
0-argument function called to initialize a field's value.  If init
is true, the field will be a parameter to the class's __init__()
function.  If repr is true, the field will be included in the
object's repr().  If hash is true, the field will be included in the
object's hash().  If compare is true, the field will be used in
comparison functions.  metadata, if specified, must be a mapping
which is stored but not otherwise examined by dataclass.  If kw_only
is true, the field will become a keyword-only parameter to
__init__().  doc is an optional docstring for this field.

It is an error to specify both default and default_factory.
z/cannot specify both default and default_factory)MISSING
ValueErrorr   )	r,   r-   r.   r'   r/   r0   r4   r5   r6   s	   $$$$$$$$$r   fieldrH     s7    $ g/"@JKK4tC) )r   c                 s    \         ;QJ d    . R  V  4       F  NK  	  5M! R  V  4       4      \         ;QJ d    . R V  4       F  NK  	  53# ! R V  4       4      3# )c              3   st   "   T F.  qP                   '       g   K  VP                  '       d   K*  Vx  K0  	  R # 5ir   r.   r5   .0fr(   r   	<genexpr>(_fields_in_init_order.<locals>.<genexpr>  s     @Vvv!aii!!V   88
8c              3   st   "   T F.  qP                   '       g   K  VP                  '       g   K*  Vx  K0  	  R # 5ir   rI   rJ   r(   r   rM   rN     s     <Vvv!!))!!VrO   )tuple)fieldsr   r   _fields_in_init_orderrR     sQ     E@V@EE@V@@E<V<E <V<< r   c           	      s    V'       g   R # RRP                  V Uu. uF  q  RVP                   2NK  	  up4       R2# u upi )()(,.,))joinr   )Zobj_namerQ   rL   s   && r   
_tuple_strrY     sB     sxx@A:Qqvvh/@AB"EE@s   >
c                   sN   a  ] tR tRt o R tRRR]RRRRR	RR
R/R ltR tRtV t	R# )_FuncBuilderi  c                sf    . V n         . V n        Wn        / V n        / V n        / V n        / V n        R # r   )namessrcglobalslocalsoverwrite_errorsunconditional_addsmethod_annotations)r   r]   r   r   r   Z_FuncBuilder.__init__  s4    
 ""$"$r   r^   Nreturn_typeoverwrite_errorFunconditional_add	decoratorannotation_fieldsc          	     s   Ve   V P                   P                  V4       V'       d   W`P                  V&   V'       d   RV P                  V&   V P                  P                  V4       V	e   W3V P                  V&   RP                  V4      pRP                  V4      pV P                  P                  V'       d   RV R2MR RV RV RV 24       R # )	NTrU   
  z def rT   ):
)	r^   updater_   r`   r[   appendra   rX   r\   )
r   r   ZargsZbodyr^   rb   rc   rd   re   rf   s
   &&&&$$$$$$r   add_fnZ_FuncBuilder.add_fn  s     KKv& *9!!$'
 ,0D##D)

$(->,LD##D)xx~yy 		Qyk,rB%vQtfTXY]X^_`r   c                s   R P                  V P                  4      pRP                  V P                  P                  4       4      p\	        V P
                  4      ^ 8X  d   RpMRRP                  V P
                  4       R2pRV RV RV 2p/ p\        WPP                  V4       VR,          ! R/ V P                  B p\        V P
                  V4       F  w  rVP                   R	V	P                   2V	n	         V P                  V,          w  r\        WW4      pWn        V P                  P!                  VR
4      '       d   \#        WV	4       K}  \%        WV	4      pV'       g   K  V P&                  P!                  V4      ;p'       g   K  RV	P                   RVP                   2pVRJ g   V RV 2p\)        V4      h	  R#   \         d     Li ; i)rg   rU   rS   rT   rW   zdef __create_fn__(rj   z	
 return Z__create_fn__rV   FzCannot overwrite attribute z
 in class Trh   Nr   )rX   r\   r^   Zkeyslenr[   Zexecr]   zipr   r   ra   _make_annotate_function__annotate__KeyErrorr`   getsetattr_set_new_attributer_   	TypeError)r   r)   Zfns_srcZ
local_varsZreturn_namesZtxtnsZfnsr   Zfnrf   rb   Zannotate_fnZalready_existsZ	msg_extraZ	error_msgs   &&              r   add_fns_to_classZ_FuncBuilder.add_fns_to_class  s   ))DHH% XXdkk..01
 tzz?aLsxx

34B7L #:,d7):l^TS,,#!0DKK0 DJJ,HD!$!1!1 2!BKK=ABO.151H1H1N.! 6cAR`"-&&**4772&!3Cr!B ">D4I4I4M4Md4S'Sy'S'S#>r{{m L--0\\N"<I$,'0k9+$>	#I../ -
  s   9GGG)r]   r^   ra   r[   r_   r\   r`   )
r   r   r   r	   r   rF   rm   rx   r
   r   r   r   r   rZ   rZ     sO     %a a7 a$a8=aIMa!%a@7/ 7/r   rZ   c                 sX   a aa V VV3R  lpRVn         S P                   RV R2Vn        V# )c                s   < \         P                  pT ;VP                  8X  d   M&;VP                  8X  d   M;VP                  8X  d   M M / p\        SP                  4       F)  pVP                  \         P                  ! W0R 7      4       K+  	  / pS F  p W%,          WE&   K  	  S\        Jd1   WP                  8X  d   \         P                  ! S4      VR&   V# SVR&   V#  \        V 4      h  \         d     Kh  i ; i)formatZreturn)annotationlibFormatVALUE
FORWARDREFSTRINGZreversed__mro__rk   get_annotationsrr   rF   Z	type_reprNotImplementedError)	rz   r|   cls_annotationsZbaseZnew_annotationsk	__class__rf   rb   s	   "     r   rq   Z-_make_annotate_function.<locals>.__annotate__  s    %% 1 1 1MFMMA"$$Y%6%67D#**%55dJ 8
 #%*A-<-?*	 + g-.4A4K4KK4X1 '& 5@1&&)&11 $ s   
C..C=<C=TrV   z.__annotate__)__generated_by_dataclasses__r   )r   Zmethod_namerf   rb   rq   s   f&ff r   rp   rp     s5    
2@ 15L-#,#9#9":!K= VLr   c                 sB    V '       d   R V RV: RV R2# RV RV RV 2# )z,  __dataclass_builtins_object__.__setattr__(rU   r:     rV   Z=r   )rB   r   value	self_names   &&&&r   _field_assignr   C  s?     =i[$QRSXRYYZ[[	{!D65'**r   c                 sl   R V P                    R2pV P                  \        JdT   V P                  '       d.   V P                  W%&   V RV P                    RV P                    2pMV P                  W%&   V R2pMV P                  '       dQ   V P                  \        J d   V P                   pM^V P                  \        Jd   V P                  W%&   V P                   pM/V'       d&   V P                  \        Jd   V P                  W%&   TpMR# V P
                  \        J d   R# \        WP                   XV4      # )Z__dataclass_dflt___z() if z+ is __dataclass_HAS_DEFAULT_FACTORY__ else rS   N)r   r-   rF   r.   r,   r7   r#   r   )rL   rB   r]   r   rD   Zdefault_namer   s   &&&&&  r   _field_initr   O  s    'qvvhb1L'666 %&$5$5G!$~ &66( #VVH&E$ %&$5$5G!#nB'E 666yyG#')()		% '1()		%$
 
 	}}& 	::r   c                 s    V P                   \        J d   V P                  \        J d   R pM;V P                   \        Jd   RV P                   R2pMV P                  \        Jd   RpV P                   X 2# )ri   z=__dataclass_dflt_r   z"=__dataclass_HAS_DEFAULT_FACTORY__)r,   rF   r-   r   )rL   r,   r(   r   _init_paramr     sj    
 	yyG 1 1W < 	
'	! 'qvvhb1	
		'	)6ffXgYr   c           	      sb   R pV Fr  p	V	P                   '       g   K  V	P                  \        J d   V	P                  \        J g   T	pKC  V'       g   KM  \	        RV	P
                  : RVP
                  : 24      h	  V  U	u. uF"  qP                   '       g   K  V	P
                  NK$  	  p
p	R\        R\        /p. pV  F+  p	\        WWV4      pV'       g   K  VP                  V4       K-  	  V'       d8   RP                  R V  4       4      pVP                  RV R\         R	V R
24       V'       g   R.pV U	u. uF  p	\        V	4      NK  	  pp	V'       d,   VR.,          pY U	u. uF  p	\        V	4      NK  	  up	,          pVP                  RV.V,           VVR V
R7       R # u up	i u up	i u up	i )Nznon-default argument z follows default argument Z!__dataclass_HAS_DEFAULT_FACTORY__Z__dataclass_builtins_object__rU   c              3   sf   "   T F'  pVP                   \        J g   K  VP                  x  K)  	  R # 5ir   )r7   r#   r   rJ   r(   r   rM   Z_init_fn.<locals>.<genexpr>  s(      Bf!".!@ %afffs   11r   rV   rT   r:   z  passZ*r   )r^   rb   rf   )r.   r,   rF   r-   rv   r   _HAS_DEFAULT_FACTORYobjectr   rl   rX   _POST_INIT_NAMEr   rm   )rQ   Z
std_fieldsZkw_only_fieldsrB   has_post_initr   func_builderrD   Zseen_defaultrL   rf   r^   Z
body_linesZlineZ
params_strZ_init_paramss   &&&&&&&&        r   _init_fnr     s    L666II(Q->->'-I "7z B<<H<M<M;P!R S S  *0:A66:13G-v7F J1f? 4d#  XX Bf B B
Byk?*;1ZLJK Z
,67JqKNJL7 	@AQ@@
"l2"%$(*;  == ;. 8 As   ?F"F"8F'$F,c                 s    R V R\         /pRpV'       d.   VRRP                  R V 4       4      ,           R,           ,          pVP                  RRRV R	2R
R3VRR7       VP                  RRRV R	2RR3VRR7       R# )r)   r   ztype(self) is clsz or name in {, c              3   sL   "   T F  p\        VP                  4      x  K  	  R # 5ir   )r'   r   rJ   r(   r   rM   Z'_frozen_get_del_attr.<locals>.<genexpr>  s     0Nv!affvs   "$Z}__setattr__z  if Z:z@   raise FrozenInstanceError(f"cannot assign to field {name!r}")z+  super(cls, self).__setattr__(name, value)T)r^   rc   Z__delattr__z=   raise FrozenInstanceError(f"cannot delete field {name!r}")z$  super(cls, self).__delattr__(name)N)r   r   r   r   )r   rX   rm   )r)   rQ   r   r^   Z	condition   &&&  r   _frozen_get_del_attrr     s    S#%8:F#I_tyy0Nv0N'NNQTTT	1 1-\FI  &(,  . ( 1-Y?B  &(,  .r   c                 sf    WP                   J ;'       g    VP                  V 4      VP                   J # r   )ClassVarZ
get_origin)a_typetypingr   r   _is_classvarr     s2    oo% > >!!&)V__<?r   c                 sZ    WP                   J ;'       g    \        V 4      VP                   J # r   )r   r%   r   dataclassesr   r   _is_initvarr     s1     ))) 3 3F|{2224r   c                 s    WP                   J # r   )KW_ONLYr   r   r   _is_kw_onlyr     s    ((((r   c                 sT   \         P                  V 4      pV'       Ed
   R pVP                  ^4      pV'       g5   \        P                  P                  VP                  4      P                  pM\        P                  P                  VP                  4      pV'       dS   VP                  P                  V4      VJ d4   \        P                  P                  VP                  4      P                  pV'       d0   V! VP                  VP                  ^4      4      V4      '       d   R# R# )NTF)_MODULE_IDENTIFIER_REmatchZgroupsysmodulesrs   r   __dict__)	Z
annotationr)   Za_moduler   Zis_type_predicater   rw   Zmodule_namemodules	   &&&&&    r   _is_typer     s    R "''
3Eukk!n 099B [[__S^^4F&//--k:hF[[__V%6%67@@#BFF5;;q>$:HEEr   c                 sV   \        W\        4      p\        V\        4      '       d   TpM2\        V\        P
                  4      '       d   \        p\        VR 7      pWn        W%n        \        Vn
        \        P                  P                  R4      pV'       di   \        W&4      '       gM   \        VP                  \        4      '       d8   \!        VP                  WVP"                  \        4      '       d   \$        Vn
        VP                  \        J d   \        P                  \&        ,          p\)        W'4      '       gM   \        VP                  \        4      '       d8   \!        VP                  WVP*                  \(        4      '       d   \,        Vn
        VP                  \$        \,        39   d.   VP.                  \        Jd   \1        RVP                   R24      hVP                  \        \,        39   d   VP2                  \        J d   W5n        M-VP2                  \        Jd   \1        RVP                   R24      hVP                  \        J dR   VP4                  P6                  P8                  f0   \;        R\        VP4                  4       RVP                   R24      hV# ))r,   r   field z cannot have a default factoryz$ is a ClassVar but specifies kw_onlyzmutable default z for field z$ is not allowed: use default_factory)r<   rF   r&   r   r2   ZMemberDescriptorTyperH   r   r%   r!   r7   r   r   rs   r   strr   r   r"   r   r   r   r#   r-   rv   r5   r,   r   __hash__rG   )r)   Za_namer   Zdefault_kw_onlyr,   rL   r   r      &&&&    r   
_get_fieldr   9  s    c7+G'5!!gu99::G'" FF
 AM  [[__X&F((1663''QVVS&//)+ ++AM 	}} kk(+,,1663''QVVS{7J7J(* **AM 	}}.99G+fQVVH -. . / / 	}}00 99'I 99G#fQVVH -& & ' ' 	}}199#6#6#?#?#G+DO+<KFF8#GI J 	J Hr   c                 sB    WP                   9   d   R # \        WV4       R# )TF)r   rt   )r)   r   r      &&&r   ru   ru     s     ||Cur   c                 s    R V n         R # r   )r   r)   rQ   r   r   r   _hash_set_noner     s    
 CLr   c                 s    V Uu. uF;  q3P                   f   VP                  '       g   K$  MVP                   '       g   K9  VNK=  	  pp\        RV4      pVP                  RRRV R2.RR7       R # u upi )Nr   r   z  return hash(r:   T)rd   r   )r/   r0   rY   rm   )r)   rQ   r   rL   flds
self_tuples   &&&   r   	_hash_addr     sj    Kv!vv~!))A)166AAvDKFD)J
!)*Q78*.  0 Ls   !A0A0 A0c                 s2    \        R V P                   24      h)z-Cannot overwrite attribute __hash__ in class )rv   r   r   r   r   _hash_exceptionr     s"    
   #~/ 0 0r   Fc                 s   / pV P                   \        P                  9   d-   \        P                  V P                   ,          P                  pM/ p\	        V \
        \        WW4WVWxW4
      4       R pRpR pV P                  R+^ R+1,           Fz  p\        V\        R4      pVf   K  RpVP                  4        F  pVVVP                  &   K  	  Vf   Rp\        V\
        4      P                  pT;'       d    TpT;'       g    TpK|  	  \        P                  ! V \        P                  P                   R7      p. pR p\        P                  \"        ,          pVP%                  4        F  w  pp\'        VV4      '       g:   \)        V\*        4      '       dA   \-        VV VVP.                  \&        4      '       d   V'       d   \1        V: R24      hRpRpKn  VP3                  \5        V VVV4      4       K  	  V F  pVVVP                  &   \)        \        V VP                  R4      \6        4      '       g   K?  VP8                  \:        J d   \=        V VP                  4       Kk  \	        V VP                  VP8                  4       K  	  V P                  P%                  4        F4  w  pp\)        V\6        4      '       g   K  VV9   d   K'  \1        V: R24      h	  V'       d5   V'       d   V'       g   \1        R4      hVR J d   V'       d   \1        R4      h\	        V \        V4       V P                  P?                  R\:        4      pV\:        J ;'       g    VRJ ;'       d    R	V P                  9   '       * pV'       d   V'       g   \A        R
4      hVP                  4        Uu. uF"  pVPB                  \D        \F        39   g   K   VNK$  	  pp\I        V4      w  pp\K        V4      p V'       d,   \M        V \N        4      p!\Q        TTTTT!RV9   d   RMRV V	4       \S        V R\T        4       VP                  4        Uu. uF  pVPB                  \D        J g   K  VNK  	  p"pV'       d   V" Uu. uF  pVPV                  '       g   K  VNK  	  p#pT PY                  RR,RRP[                  V# Uu. uF  pVP                   RVP                   R2NK!  	  up4      ,           R,           .R\\        /RR7       V'       dk   R V" 4       p$V$ U%u. uF  p%RV%P                   RV%P                   2NK!  	  p&p%RP[                  V&4      ;'       g    Rp'V PY                  R	R-RRRR V' 2R!.4       V'       di   V" Uu. uF  pVP^                  '       g   K  VNK  	  p#p\a        RV#4      p(\a        RV#4      p)R. F%  w  pp*V PY                  VR-RR V( V* V) 2R!.R"R#7       K'  	  V'       d   \c        V V"V 4       \d        \g        V4      \g        V4      \g        V4      V3,          p+V+'       d   V+! V V"V 4      V n4        V Pk                  V 4       \        V R$4      '       gc    \+        \l        Pn                  ! V \        P                  P                   R%7      4      Pq                  R&R'4      p,V P"                  V,,           V n9        V'       d8   \S        T R(\t        ;QJ d    . R) V 4       F  NK  	  5M! R) V 4       4      4       V
'       d   V	'       g   \1        R*4      hV	'       d   \w        WW4      p \x        Pz                  ! V 4       V # u upi u upi u upi u upi u up%i u upi   \0        \@        3 d    R'p, Li ; i)/FNTry   z3 is KW_ONLY, but KW_ONLY has already been specifiedz& is a field but has no type annotationz5cannot inherit non-frozen dataclass from a frozen onez5cannot inherit frozen dataclass from a non-frozen oner   Z__eq__z eq must be true if order is truer   Z__dataclass_self__Z__replace__r   z)  return f"{self.__class__.__qualname__}(r   z={self.z!r}z)"Z__dataclasses_recursive_reprz@__dataclasses_recursive_repr())r^   re   c              3   sL   "   T F  qP                   '       g   K  Vx  K  	  R # 5ir   )r0   )rK   rH   r(   r   rM   !_process_class.<locals>.<genexpr>  s     E}}ees   $
$zself.z==other.z and ZTrueotherz  if self is other:z   return Truez'  if other.__class__ is self.__class__:z
   return z  return NotImplementedz'Consider using functools.total_ordering)rc   __doc__)Zannotation_formatz -> Noneri   Z__match_args__c              3   8   "   T F  qP                   x  K  	  R # 5ir   r   rJ   r(   r   rM   r     s      AA   z'weakref_slot is True but slots is Falser   )r   r   ))Z__lt__Z<)Z__le__z<=)Z__gt__Z>)Z__ge__z>=)>r   r   r   r   rt   _PARAMSr=   r   r<   _FIELDSvaluesr   rB   r{   r   r|   r~   r   itemsr   r&   r   r   r   rv   rl   r   r   r,   rF   Zdelattrrs   rG   r7   r!   r#   rR   rZ   hasattrr   r   ru   _replacer'   rm   rX   r    r0   rY   r   _hash_actionboolr   rx   inspectZ	signaturereplacer   rP   
_add_slotsabcZupdate_abstractmethods)-r)   r.   r'   r?   r@   rA   rB   rC   r5   rD   rE   rQ   r]   Zany_frozen_baseZall_frozen_basesZhas_dataclass_basesZbZbase_fieldsrL   Zcurrent_frozenr   Z
cls_fieldsZKW_ONLY_seenr   r   r%   r   Z
class_hashZhas_explicit_hashZall_init_fieldsZstd_init_fieldsZkw_only_init_fieldsr   r   Z
field_listr   Z
cmp_fieldsrH   ZtermsZfield_comparisonsr   Zother_tupleZopZhash_actionZtext_sigs-   &&&&&&&&&&&                                  r   _process_classr     s    F
~~$++cnn-66 C*4r+6+5+0@ A O [[Ab!! a$/""& '')!"qvv *'#' $Q077N/BBN-??O ". $33M((335O JL++h'K%++-
dk**4%%T3[5H5H(* * 4( += != > >LG jdD'BC ." qvv gc16640%88yyG# QVV$QVVQYY/# ( ||))+eeU##DO,Cth&LMNN ,
 6 ) * * u$ - . .
 C&! !!*g6J'72 O O(D0MMX5MP
 R;<<
 #)--/ E/Q--FN+CC q/O E 2/B_(L_5 $ *06)9%	 sM84 $]]_H_0G!!_JH%0:a:0J%H!YY15(715A ,-66((166($(G15(7 88:>? @ %CN#S&G 	 	I 
 FE
GQRze5HUZZL9zR#LL/996H-3.G)*;)<=7	9	: %3:a:3-
 $/HD" -G)*bT+G79 -V   W  S*l; tK0#Bx#F|0 1 2K "3
LA
 !!#&3	""	 7,,"/"6"6"A"A  wz2&  ||h.3 0 5 A A55 A AA	C EABBl;s#JmE: I 1(7 S 4X :& 	H	sO   $\6\6=\;\;,] ] *%]%]
/]]A	] ]*)]*c                 sh    \        V 4       Uu. uF  p\        WP                  4      NK  	  up# u upi r   )rQ   r<   r   )r   rL   r(   r   _dataclass_getstater     s'    +1$<8<aGD&&!<888s   /c                 s    \        \        V 4      V4       F%  w  r#\        P                  WP                  V4       K'  	  R # r   )ro   rQ   r   r   r   )r   ZstaterH   r   s   &&  r   _dataclass_setstater     s-    F4L%04U3 1r   c              #   s  "   V P                   P                  R 4      ;fV    . p\        V RR
4      ^ 8w  d   VP                  R4       \        V RR
4      ^ 8w  d   VP                  R4       T Rj  xL
  R# ;\        Rc;e   w  p Vx  R#  p\        VR4      '       g   T Rj  xL
  R#  \        RV P                   R	24      h LV L"5i)r+   NZ__weakrefoffset____weakref__Z__dictoffset__r   r   Z__next__z
Slots of 'z' cannot be determinedr   )r   rs   r<   rl   r   r   rv   r   )r)   rD   slotZiterables   &   r   
_get_slotsr     s     
,,

;
'
 Es/49]+s,b1Q6Z(SYYJ  WXz::j6LMNN   s$   A-C
/C05C
%C&!C
C
c                 s    V f   R#  V P                   P                  P                  R4      pT P                  T,          pTP
                  TJ d	   Y$n        R# R#   \         d     R# i ; i)NFr   T)Z__code__Zco_freevarsZindexrG   Z__closure__Zcell_contents)rL   ZoldclsnewclsZidxZclosurer   r   _update_func_cell_for__class__r     si    y jj$$**;7 mmC G& &  s   %A A)(A)c                 s   R p/ p\         P                  ! VP                  \         P                  ! Y#'       d   RMR4      4       F)  p\	        V P                  V4      RR4      pVe   RpWuV&   K+  	  V'       d   V# \        V4      # )Fr6   NT)r   r   )	itertoolsZfilterfalseZ__contains__chainr<   rs   rP   )defined_fieldsinherited_slotsfield_namesrE   Z	seen_docsrD   r   r6   r   r   _create_slotsr     s     IE%%$$ \)r	
 n((.t<?Id <r   c           
      s   R V P                   9   d   \        V P                   R24      h\        P                  ! V 4       \        V P                   4      p\        ;QJ d    . R \        V 4       4       F  NK  	  5M! R \        V 4       4       4      p\        \        P                  P                  \        \        V P                  ^R 4      4      4      p\        W6WR4      VR &   V F  pVP!                  VR4       K  	  \#        V RR4      p\%        V 4      ! V P                  V P&                  V4      p	Ve   Wn        V'       d%   RV9  d   \*        V	n        RV9  d   \.        V	n        V	P                   P3                  4        F  p
\4        P6                  ! V
4      p
\9        V
\:        P<                  4      '       d   \?        WV	4      '       d    MtKO  \9        V
\@        4      '       g   Kg  \?        V
PB                  W	4      '       g;   \?        V
PD                  W	4      '       g   \?        V
PF                  W	4      '       g   K   M	  \H        PJ                  ! V	\H        PL                  PN                  R7      p\#        V	\P        4      P3                  4        F  p WPR                  ,          pWn        K  	  V	PV                  p\#        VRR4      ;p'       d    \#        VR	R
4      '       d   \?        WV	4       V	#   \T         d     Kp  i ; i)r+   z already specifies __slots__c              3   r   r   r   rJ   r(   r   rM   Z_add_slots.<locals>.<genexpr>@  s     41r   Nr   __getstate____setstate__ry   rq   r   Fr   ),r   rv   r   r   Z_clear_type_descriptorsdictrP   rQ   setr   r   Zfrom_iterableZmapr   r   r   Zpopr<   r%   Z	__bases__r   r   r   r   r   r   r   Zunwrapr&   r2   FunctionTyper   propertyZfgetZfsetZfdelr{   r   r|   r~   r   r   rr   r   )r)   Z	is_frozenrE   r   Zcls_dictr   r   Z
field_nameZqualnamer   ZmemberZ
newcls_annrL   annr.   Zinit_annotates   &&&&            r   r   r   1  sb    cll"3<<.(DEFF $ CLL!H%4s4%%4s44K%%c*ckk!B6G&HIO *H[ "
 	Z& " sND1H#Ys||S]]H=F&)"5F)"5F //((*'fe0011-f6BB C)).v{{CHH1&++sKK1&++sKK + ..}++668J VW%,,.	VV$C F / ??Dnd;;};="@%HH*=vFM  		s   K55LLr?   r@   rA   rB   rC   rD   rE   c      
   
     sP   aaaaaaaaa	a
 VVVVVVVV	VV
3
R lpV f   V# V! V 4      # )a^  Add dunder methods based on the fields defined in the class.

Examines PEP 526 __annotations__ to determine fields.

If init is true, an __init__() method is added to the class. If repr
is true, a __repr__() method is added. If order is true, rich
comparison dunder methods are added. If unsafe_hash is true, a
__hash__() method is added. If frozen is true, fields may not be
assigned to after instance creation. If match_args is true, the
__match_args__ tuple is added. If kw_only is true, then by default
all fields are keyword-only. If slots is true, a new class with a
__slots__ attribute is returned.
c                 s.   <
 \        V SSSSS	SSSSS
4      # r   )r   )r)   r?   rB   r.   r5   rC   r@   r'   rD   rA   rE   s   &r   wrapZdataclass.<locals>.wrap  s(    c4r5+$j'5*, 	,r   r   )r)   r.   r'   r?   r@   rA   rB   rC   r5   rD   rE   r   s   "dddddddddd r   	dataclassr     s&    ", , { 9r   c                s     \        V \        4      p\        ;QJ d"    . R TP                  4        4       F  NK  	  5# ! R TP                  4        4       4      #   \         d    \        R4      Rhi ; i)zReturn a tuple describing the fields of this dataclass.

Accepts a dataclass or an instance of one. Tuple elements are of
type Field.
z0must be called with a dataclass type or instanceNc              3   sP   "   T F  qP                   \        J g   K  Vx  K  	  R # 5ir   )r7   r!   rJ   r(   r   rM   Zfields.<locals>.<genexpr>  s     GOq}}/FOs   &
&)r<   r   AttributeErrorrv   rP   r   )Zclass_or_instancerQ   r(   r   rQ   rQ     sg    V*G4 5GFMMOG5G5GFMMOGGG  VJKQUUVs   A A2c                s4    \        \        V 4      \        4      # )z2Returns True if obj is an instance of a dataclass.)r   r%   r   )objr   r   _is_dataclass_instancer     s    49g&&r   c                sh    \        V \        4      '       d   T M
\        V 4      p\        V\        4      # )zAReturns True if obj is a dataclass or an instance of a
dataclass.)r&   r%   r   r   )r   r)   r(   r   is_dataclassr     s(     C&&#DIC3  r   dict_factoryc               P    \        V 4      '       g   \        R4      h\        W4      # )a  Return the fields of a dataclass instance as a new dictionary mapping
field names to field values.

Example usage::

  @dataclass
  class C:
      x: int
      y: int

  c = C(1, 2)
  assert asdict(c) == {'x': 1, 'y': 2}

If given, 'dict_factory' will be used instead of built-in dict.
The function applies recursively to field values that are
dataclass instances. This will also look into built-in containers:
tuples, lists, and dicts. Other objects are copied with 'copy.deepcopy()'.
z0asdict() should be called on dataclass instances)r   rv   _asdict_inner)r   r      &$r   asdictr     s&    & "#&&JKK++r   c                 sP  a \        V 4      pV\        9   d   V # \        V\        4      '       d   S\        J dH   \        V 4       Uu/ uF1  pVP                  \        \        WP                  4      \        4      bK3  	  up# S! \        V 4       Uu. uF.  pVP                  \        \        WP                  4      S4      3NK0  	  up4      # V\        J d   V  Uu. uF  p\        VS4      NK  	  up# V\        J d:   V P                  4        UUu/ uF  w  rT\        VS4      \        VS4      bK  	  upp# V\        J d&   \        V  Uu. uF  p\        VS4      NK  	  up4      # \        V\        4      '       dE   \        V R 4      '       d!   T! V  Uu. uF  p\        VS4      NK  	  up!  # V! V3R lV  4       4      # \        V\        4      '       dy   \        VR4      '       dG   V! V P                  4      pV P                  4        F  w  rT\        VS4      V\        VS4      &   K   	  V# V! V3R lV P                  4        4       4      # \        V\        4      '       d   V! V3R lV  4       4      # \        P                  ! V 4      # u upi u upi u upi u uppi u upi u upi )_fieldsc              3   <   <"   T F  p\        VS4      x  K  	  R # 5ir   r   rK   vr      & r   rM    _asdict_inner.<locals>.<genexpr>  s     HCqM!\::C   r-   c              3   X   <"   T F  w  r\        VS4      \        VS4      3x  K!  	  R # 5ir   r   )rK   r   r   r      &  r   rM   r     s0      1$/DA 'q,7&q,79$/   '*c              3   r   r   r   r   r   r   rM   r     s     D1a66r   )r%   _ATOMIC_TYPESr   r   r   rQ   r   r   r<   listr   rP   Z
issubclassr-   copydeepcopy)r   r   obj_typerL   r   r   result   &f     r   r   r     sf   CyH= 
	7	#	#4  $A gc66&:DAA$ 
  !$A wsFF';\JK$!  
 
T	8;<1a.<<	T	 		
# !\*M!\,JJ#
 	
 
U	cBcmA|4cBCC	He	$	$3	""& cJcmA|<cJKKHCHHH	Hd	#	#8.// c112F		9Fq,9W}Q56 $M 1$'IIK1 1 	1 
Hd	#	# DDDD}}S!!u
! =

 C* Ks$   7J	4JJ"JJJ#tuple_factoryc               r   )a  Return the fields of a dataclass instance as a new tuple of field values.

Example usage::

  @dataclass
  class C:
      x: int
      y: int

  c = C(1, 2)
  assert astuple(c) == (1, 2)

If given, 'tuple_factory' will be used instead of built-in tuple.
The function applies recursively to field values that are
dataclass instances. This will also look into built-in containers:
tuples, lists, and dicts. Other objects are copied with 'copy.deepcopy()'.
z1astuple() should be called on dataclass instances)r   rv   _astuple_inner)r   r   r   r   astupler     s&    & "#&&KLL#--r   c                 sP  a \        V 4      \        9   d   V # \        V 4      '       d?   S! \        V 4       Uu. uF"  p\	        \        WP                  4      S4      NK$  	  up4      # \        V \        4      '       d<   \        V R 4      '       d*   \        V 4      ! V  Uu. uF  p\	        VS4      NK  	  up!  # \        V \        \        34      '       d   \        V 4      ! V3R lV  4       4      # \        V \        4      '       d   \        V 4      p\        VR4      '       dG   V! \        V R4      4      pV P                  4        F  w  rc\	        VS4      V\	        VS4      &   K   	  V# V! V3R lV P                  4        4       4      # \        P                  ! V 4      # u upi u upi )r   c              3   r   r   r   )rK   r   r   r   r   rM   !_astuple_inner.<locals>.<genexpr>K  s     G3a=993r   r-   c              3   r   r   r   )rK   r   r   r   r   r   rM   r   U  s-      3&1da (=9>!];[\&1r   )r%   r   r   rQ   r   r<   r   r&   rP   r   r   r   r   r   r   )r   r   rL   r   r   r   r   r   r   r   r   7  sh   CyM!
		$	$C[
  73/? 
  	 
C		GC$;$; CySIS>!];SIJJ	C$	'	' CyG3GGG	C		98.// gc+<=>F		;I!];[~a78 $M 3&)iik3 3 	3 }}S!!;
 Js   (FF#bases	namespacer   re   c               s  aaaa Sf   / o\        4       p/ o/ oV F  p\        V\        4      '       d
   Tp\        pMA\	        V4      ^8X  d   Vw  ppM+\	        V4      ^8X  d   Vw  pppVSV&   M\        RV: 24      h\        V\        4      '       d   VP                  4       '       g   \        RV: 24      h\        P                  ! V4      '       d   \        RV: 24      hVV9   d   \        RV: 24      hVP                  V4       VSV&   K  	  RoVV3R lpVV3R lp\        P                  ! W/ V4      pVVn        Vf"    \        P                  ! ^4      ;'       g    RpVe   VVn        V! VWEWgWWVVR
7      pRoV#   \         dM     \        P                   ! ^4      P"                  P%                  R	R4      p L\  \        \&        3 d      Lpi ; ii ; i)a?  Return a new dynamically created dataclass.

The dataclass name will be 'cls_name'.  'fields' is an iterable
of either (name), (name, type) or (name, type, Field) objects. If type is
omitted, use the string 'typing.Any'.  Field objects are created by
the equivalent of calling 'field(name, type [, Field-info])'.::

  C = make_dataclass('C', ['x', ('y', int), ('z', int, field(init=False))], bases=(Base,))

is equivalent to::

  @dataclass
  class C(Base):
      x: 'typing.Any'
      y: int
      z: int = field(init=False)

For the bases and namespace parameters, see the builtin type() function.

The parameters init, repr, eq, order, unsafe_hash, frozen, match_args, kw_only,
slots, and weakref_slot are passed to dataclass().

If module parameter is defined, the '__module__' attribute of the dataclass is
set to that value.
zInvalid field: z'Field names must be valid identifiers: z"Field names must not be keywords: zField name duplicated: Tc                 s   <a  V V3R  lpSP                  4        UUu/ uF  w  r#Y#\        J d   V! 4       MTbK  	  pppS \        P                  P                  8X  d   \        P
                  ! V4      # V# u uppi )c                  s  < S;\         P                  P                  8X  d    R # ;\         P                  P                  8X  dI    \        P
                  P                  R4      p V f   \         P                  ! RRR7      # V P                  # \         P                  P                  8X  d   S'       d   \        h^ RIHp V#  \        h)z
typing.Anyr   Any)r   )r   )r{   r|   r   r~   r   r   rs   Z
ForwardRefr   r}   r   r   )r   r   rz   value_blockeds     r   get_anyZ8make_dataclass.<locals>.annotate_method.<locals>.get_any  s    0]))00'4]))44 [[__X6F~,77hOO%zz)"))//$11*J--r   )r   _ANY_MARKERr{   r|   r   Zannotations_to_string)rz   r  r   ZtZannosannotationsr   s   f    r   annotate_methodZ'make_dataclass.<locals>.annotate_method  st    	.& &++-
- ;.A5- 	 
 ]))000 66u==L
s   A5c                 sL   < V P                  S4       V P                  S4       R # r   )rk   )rw   defaultsr   s   &r   exec_body_callbackZ*make_dataclass.<locals>.exec_body_callback  s    
		)
		(r   Z__main__r   r>   F)r   r&   r   r  rn   rv   ZisidentifierkeywordZ	iskeywordZaddr2   Z	new_classrq   r   Z_getframemodulenamer   Z	_getframeZ	f_globalsrs   rG   r   )Zcls_namerQ   r   r   r.   r'   r?   r@   rA   rB   rC   r5   rD   rE   r   re   ZseenZitemr   ZtpZspecr  r  r)   r  r  r   s   &&$d$$$$$$$$$$$$        @@@r   make_dataclassr  [  s   < 	 5DKHdC  DBY!^ID"Y!^!ND"d!HTNodX677$$$D,=,=,?,?EdXNOOT""@IJJ4<5dX>??D) 4 M8 //(2/A
BC&C ~	,,Q/==:F  Cd" +)%!-/C
 MJ  	q)3377
JO"J/ 	s0   F %F G0GGGGGc               sR    \        V 4      '       g   \        R4      h\        V 3/ VB # )a  Return a new object replacing specified fields with new values.

This is especially useful for frozen classes.  Example usage::

  @dataclass(frozen=True)
  class C:
      x: int
      y: int

  c = C(1, 2)
  c1 = replace(c, x=3)
  assert c1.x == 3 and c1.y == 2
z1replace() should be called on dataclass instances)r   rv   r   )r   changess   ",r   r   r     s+     "#&&KLLC#7##r   c                s   \        V \        4      P                  4        F  pVP                  \        J d   K  VP
                  '       g-   VP                  V9   d   \        R VP                   R24      hKW  VP                  V9  g   Kj  VP                  \        J d/   VP                  \        J d   \        RVP                  : R24      h\        WP                  4      WP                  &   K  	  V P                  ! R/ VB # )r   zC is declared with init=False, it cannot be specified with replace()zInitVar z! must be specified with replace()r   )r<   r   r   r7   r"   r.   r   rv   r#   r,   rF   r   )r   r	  rL   s   ", r   r   r     s     T7#**,==O+vvvvv & 1, !- . . 66 }}.1993G(166* 5C !D E E%dFF3GFFO# -0 >>$G$$r   )r   rH   r   r   r   r   rF   rQ   r   r   r  r   r   )FFFF)FFFT)FFTF)FFTT)FTFF)FTFT)FTTF)FTTT)TFFF)TFFT)TFTF)TFTT)TTFF)TTFT)TTTF)TTTTr   r   )]Zrer   r   r2   r   r  r   r{   r   Zreprlibr    Z__all__r   r   r   r   r   rF   r   r   r3   r1   r   r!   r"   r#   r   r   r   Zcompiler   Z	frozensetZNoneTyper   ZintZfloatr   ZcomplexZbytesZEllipsisTypeZNotImplementedTypeZCodeTypeZBuiltinFunctionTyper   r%   Zranger   r   r   r  r   r   r=   rH   rR   rY   rZ   rp   r   r   r   r   r   r   r   r   r   r   ru   r   r   r   r   r   r   r   r   r   r   r   r   rQ   r   r   r   r   r   rP   r   r   r  r   r   r   r   r   <module>r
     s   	 
       
 "| 0. /
  23 	 	
/	 	
/ ((, 
 
X	/0-. ! ! "
 

#AB  	NN					NN			% . h 6@8 @8F' 'Z)W )g )D )t ))!),0):A)GK)0	Fa/ a/H(V	+9;x &7=t..?
4)8v_B00,d ,d,d -d -n	
 -d -i -d -i -o -i -o -i -o -i -o*AP94O.*2Rj4 d t 5 (-:>#(7<>H$'
!, ,0A"H.% .0!"H|b |D |t ||!%|-2|@E||,0|:?|GL| !&| /3| ?H|~$&%r   