
    =Og                        	 g d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 dZdZeefd	Zeefd
Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdefdefdefgdefdefdefgdefdefdefgdefdefdefgdZd Zd Z	 ddlmZ n# e$ r Y nw xY w e             Z!e!fdZ"	 dd lm"Z" n# e$ r Y nw xY w G d! d"          Z#	 dd#lm#Z# n# e$ r Y nw xY w G d$ d%e           Z$d& Z% ed'g d(          Z& G d) d*e'          Z( e             fe)e*he+e,e-fd+Z.d<d.Z/d/ Z0	 dd0lm0Z0 n# e$ r Y nw xY wd1 Z1d2 Z2d=d4Z3d5 Z4d6 Z5d7 Z6 G d8 d9          Z7 e             Z8 G d: d;          Z9d3S )>)update_wrapperwrapsWRAPPER_ASSIGNMENTSWRAPPER_UPDATEStotal_orderingcache
cmp_to_key	lru_cachereducepartialpartialmethodsingledispatchsingledispatchmethodcached_property    )get_cache_token)
namedtuple)recursive_repr)RLock)GenericAlias)
__module____name____qualname____doc____annotations__)__dict__c                     	 |D ]4}	 t          ||          }t          | ||           %# t          $ r Y 1w xY w|D ]4}t          | |                              t          ||i                      5|| _        | S N)getattrsetattrAttributeErrorupdate__wrapped__)wrapperwrappedassignedupdatedattrvalues         "/usr/lib64/python3.11/functools.pyr   r   #   s    
  * *	*GT**E GT5))))  	 	 	D	  B B%%ggtR&@&@AAAA "GNs   )
66c                 4    	 t          t          | ||          S )Nr$   r%   r&   )r   r   r+   s      r)   r   r   A   s)     >7$g7 7 7 7    c                 r    	 t          |                               | |          }|t          u r|S | o| |k    S r   type__lt__NotImplementedselfother	op_results      r)   _gt_from_ltr6   Y   B    OT

!!$..IN""=*TU]*r,   c                 p    	 t          |                               | |          }|t          u r|S |p| |k    S r   r.   r2   s      r)   _le_from_ltr9   `   @    KT

!!$..IN""%%r,   c                 f    	 t          |                               | |          }|t          u r|S | S r   r.   r2   s      r)   _ge_from_ltr<   g   9    CT

!!$..IN""=r,   c                 r    	 t          |                               | |          }|t          u r|S | p| |k    S r   r/   __le__r1   r2   s      r)   _ge_from_lerA   n   B    PT

!!$..IN""=)DEM)r,   c                 p    	 t          |                               | |          }|t          u r|S |o| |k    S r   r?   r2   s      r)   _lt_from_lerD   u   @    LT

!!$..IN""&&r,   c                 f    	 t          |                               | |          }|t          u r|S | S r   r?   r2   s      r)   _gt_from_lerG   |   r=   r,   c                 r    	 t          |                               | |          }|t          u r|S | o| |k    S r   r/   __gt__r1   r2   s      r)   _lt_from_gtrK      r7   r,   c                 p    	 t          |                               | |          }|t          u r|S |p| |k    S r   rI   r2   s      r)   _ge_from_gtrM      r:   r,   c                 f    	 t          |                               | |          }|t          u r|S | S r   rI   r2   s      r)   _le_from_gtrO      r=   r,   c                 r    	 t          |                               | |          }|t          u r|S | p| |k    S r   r/   __ge__r1   r2   s      r)   _le_from_gerS      rB   r,   c                 p    	 t          |                               | |          }|t          u r|S |o| |k    S r   rQ   r2   s      r)   _gt_from_gerU      rE   r,   c                 f    	 t          |                               | |          }|t          u r|S | S r   rQ   r2   s      r)   _lt_from_gerW      r=   r,   rJ   r@   rR   r0   )r0   r@   rJ   rR   c                      	  fdt           D             }|st          d          t          |          }t           |         D ]!\  }}||vr||_        t	           ||           " S )Nc                 b    h | ]+}t          |d           t          t          |d           u)|,S r   )r   object).0opclss     r)   	<setcomp>z!total_ordering.<locals>.<setcomp>   s=    ^^^Bgc2t&<&<GFTVX\D]D]&]&]R&]&]&]r,   z6must define at least one ordering operation: < > <= >=)_convert
ValueErrormaxr   r   )r]   rootsrootopnameopfuncs   `    r)   r   r      s    @^^^^(^^^E SQRRRu::D"4. ) )$FOC(((Jr,   c                 4     	  G  fddt                     }|S )Nc                   R    e Zd ZdgZd Z fdZ fdZ fdZ fdZ fdZ	dZ
dS )	cmp_to_key.<locals>.Kobjc                     || _         d S r   ri   )r3   ri   s     r)   __init__zcmp_to_key.<locals>.K.__init__   s    DHHHr,   c                 8     | j         |j                   dk     S Nr   rk   r3   r4   mycmps     r)   r0   zcmp_to_key.<locals>.K.__lt__       559--11r,   c                 8     | j         |j                   dk    S rn   rk   ro   s     r)   rJ   zcmp_to_key.<locals>.K.__gt__   rq   r,   c                 8     | j         |j                   dk    S rn   rk   ro   s     r)   __eq__zcmp_to_key.<locals>.K.__eq__       559--22r,   c                 8     | j         |j                   dk    S rn   rk   ro   s     r)   r@   zcmp_to_key.<locals>.K.__le__   ru   r,   c                 8     | j         |j                   dk    S rn   rk   ro   s     r)   rR   zcmp_to_key.<locals>.K.__ge__   ru   r,   N)r   r   r   	__slots__rl   r0   rJ   rt   r@   rR   __hash__)rp   s   r)   Krh      s        G		 	 		2 	2 	2 	2 	2	2 	2 	2 	2 	2	3 	3 	3 	3 	3	3 	3 	3 	3 	3	3 	3 	3 	3 	3r,   rz   )rZ   )rp   rz   s   ` r)   r   r      sA    6      F    Hr,   )r   c                     	 t          |          }|t          u r/	 t          |          }n # t          $ r t	          d          d w xY w|}|D ]} | ||          }|S )Nz0reduce() of empty iterable with no initial value)iter_initial_missingnextStopIteration	TypeError)functionsequenceinitialitr(   elements         r)   r
   r
      s    	 
hB"""	NHHEE 	N 	N 	NBD DIMN	N  ) )((Ls	   + A)r
   c                   \     e Zd Z	 dZ fdZd Z e            d             Zd Zd Z	 xZ
S )r   )funcargskeywordsr   __weakref__c                   t          |          st          d          t          |d          r|j        |z   }i |j        |}|j        }t          t          |                               |           }||_        ||_        ||_        |S )Nz#the first argument must be callabler   )	callabler   hasattrr   r   r   superr   __new__)r]   r   r   r   r3   	__class__s        r)   r   zpartial.__new__  s    ~~ 	CABBB4   	9t#D4$-484H9DWc""**3//		 r,   c                F    i | j         |} | j        g | j        |R i |S r   r   r   r   )r3   r   r   s      r)   __call__zpartial.__call__+  s:    0dm0x0ty7$)7d777h777r,   c                    t          |           j        }t          | j                  g}|                    d | j        D                        |                    d | j                                        D                        t          |           j        dk    rd| dd	                    |           dS | dd	                    |           dS )Nc              3   4   K   | ]}t          |          V  d S r   )repr)r[   xs     r)   	<genexpr>z#partial.__repr__.<locals>.<genexpr>3  s(      //DGG//////r,   c              3   *   K   | ]\  }}| d |V  dS )=N r[   kvs      r)   r   z#partial.__repr__.<locals>.<genexpr>4  s0      EEVaqLL1LLEEEEEEr,   	functoolsz
functools.(, ))
r/   r   r   r   extendr   r   itemsr   join)r3   qualnamer   s      r)   __repr__zpartial.__repr__/  s    ::*TY //TY//////EEt}/B/B/D/DEEEEEE:: K//===499T??====//TYYt__////r,   c                 j    t          |           | j        f| j        | j        | j        pd | j        pd ffS r   )r/   r   r   r   r   r3   s    r)   
__reduce__zpartial.__reduce__9  s;    DzzDI<$)TY}$dm&;t*= = 	=r,   c                 4   t          |t                    st          d          t          |          dk    rt          dt          |                     |\  }}}}t	          |          rCt          |t                    r.|t          |t
                    r|$t          |t
                    st          d          t          |          }|i }n%t          |          t
          urt          |          }|i }|| _        || _        || _	        || _
        d S )Nz(argument to __setstate__ must be a tuple   zexpected 4 items in state, got zinvalid partial state)
isinstancetupler   lenr   dictr/   r   r   r   r   )r3   stater   r   kwds	namespaces         r)   __setstate__zpartial.__setstate__=  s   %'' 	HFGGGu::??Jc%jjJJKKK&+#dD) 	5ju&=&= 	5Zd%;%;!*Y*E*E!3444T{{<DD$ZZt##::DI!		r,   )r   r   r   rx   r   r   r   r   r   r   __classcell__)r   s   @r)   r   r     s         FI     8 8 8 ^0 0 0= = =      r,   r   )r   c                   V    e Zd Z	 d Zd Zd ZddZed             Z e	e
          ZdS )r   c                6   t          |          s2t          |d          s"t          d                    |                    t	          |t
                    r-|j        | _        |j        |z   | _        i |j        || _        d S || _        || _        || _        d S )N__get__z${!r} is not callable or a descriptor)	r   r   r   formatr   r   r   r   r   )r3   r   r   r   s       r)   rl   zpartialmethod.__init__c  s    ~~ 	0gdI&>&> 	0B"(&,,0 0 0
 dM** 
	% 	DI	D(DI9t}99DMMMDIDI$DMMMr,   c                 2   d                     t          t          | j                            }d                     d | j                                        D                       }d}|                    | j        j        | j        j	        | j
        ||          S )Nr   c              3   H   K   | ]\  }}d                      ||          V  dS )z{}={!r}N)r   r   s      r)   r   z)partialmethod.__repr__.<locals>.<genexpr>x  sR       D D%)Q '--a33 D D D D D Dr,   z*{module}.{cls}({func}, {args}, {keywords}))moduler]   r   r   r   )r   mapr   r   r   r   r   r   r   r   r   )r3   r   r   format_strings       r)   r   zpartialmethod.__repr__v  s    yyT49--..99 D D-1]-@-@-B-BD D D D DD##4>+D(,(C)-)--5	 $ 7 7 	7r,   c                 8      fd} j         |_          |_        |S )Nc                J    i j         |} j        | gj        |R i |S r   r   )cls_or_selfr   r   r3   s      r)   _methodz3partialmethod._make_unbound_method.<locals>._method  s=    4$-484H49[H49HtHHHxHHHr,   )__isabstractmethod___partialmethod)r3   r   s   ` r)   _make_unbound_methodz"partialmethod._make_unbound_method  s;    	I 	I 	I 	I 	I (,'@$!%r,   Nc                 (   t          | j        dd           }d }|M |||          }|| j        ur8t          |g| j        R i | j        }	 |j        |_        n# t          $ r Y nw xY w|(|                                                     ||          }|S )Nr   )	r   r   r   r   r   __self__r    r   r   )r3   ri   r]   getresultnew_funcs         r)   r   zpartialmethod.__get__  s    diD11?s3}}Hty(( !GDIGGGGG&.&7FOO%   D> ..0088cBBFs   A 
A%$A%c                 .    t          | j        dd          S Nr   Fr   r   r   s    r)   r   z"partialmethod.__isabstractmethod__      ty"8%@@@r,   r   )r   r   r   rl   r   r   r   propertyr   classmethodr   __class_getitem__r   r,   r)   r   r   [  s        % % %&	7 	7 	7     & A A XA $L11r,   r   c                 h    t          | t                    r| j        } t          | t                    | S r   )r   r   r   r   s    r)   _unwrap_partialr     s4    
T7
#
# y T7
#
# Kr,   	CacheInfo)hitsmissesmaxsizecurrsizec                   $    e Zd Z	 dZefdZd ZdS )
_HashedSeq	hashvaluec                 4    || d d <    ||          | _         d S r   r   )r3   tuphashs      r)   rl   z_HashedSeq.__init__  s"    QQQcr,   c                     | j         S r   r   r   s    r)   ry   z_HashedSeq.__hash__  s
    ~r,   N)r   r   r   rx   r   rl   ry   r   r,   r)   r   r     sF         I!% # # # #    r,   r   c                 X   	 | }|r!||z  }|                                 D ]}	||	z  }|rI| |fd| D                       z  }|r,| |fd|                                D                       z  }n* ||          dk    r |d                   |v r|d         S t          |          S )Nc              3   .   K   | ]} |          V  d S r   r   r[   r   r/   s     r)   r   z_make_key.<locals>.<genexpr>  s+      ++TT!WW++++++r,   c              3   .   K   | ]} |          V  d S r   r   r   s     r)   r   z_make_key.<locals>.<genexpr>  s+      88Qa888888r,      r   )r   valuesr   )
r   r   typedkwd_mark	fasttypesr   r/   r   keyitems
         `   r)   	_make_keyr     s    	 C xJJLL 	 	D4KCC uu++++d++++++ 	9558888$++--888888C	SQ44A<<9441vc??r,      Fc                 ,    	 t           t                    r	 dk     rd nlt                     rLt          t                    r7 dc} t	          | t
                    } fd|_        t          ||          S  t          d           fd}|S )Nr   r   c                       dS Nr   r   r   r   s   r)   <lambda>zlru_cache.<locals>.<lambda>       %,P,P r,   z=Expected first argument to be an integer, a callable, or Nonec                 h    t          | t                    }fd|_        t          ||           S )Nc                       dS r   r   r   s   r)   r   z8lru_cache.<locals>.decorating_function.<locals>.<lambda>  r   r,   )_lru_cache_wrapper
_CacheInfocache_parametersr   )user_functionr#   r   r   s     r)   decorating_functionz&lru_cache.<locals>.decorating_function  s:    $]GUJOO#P#P#P#P#P g}555r,   )	r   intr   boolr   r   r   r   r   )r   r   r   r#   r   s   ``   r)   r	   r	     s    0 '3 MQ;;G	'		 Mz%66 M!(#w$]GUJOO#P#P#P#P#P g}555		KM M 	M6 6 6 6 6 6
 r,   c                 h   	
 t                      t          d\  	
i dxdj        j        t	                      g d d gd d <   dk    r fd}n# fd}n	
 fd}fd}fd}||_        ||_        |S )	N)r   r         r   Fc                  "    dz   | i |}|S Nr   r   )r   r   r   r   r   s      r)   r#   z#_lru_cache_wrapper.<locals>.wrapper  s'     aKF"]D1D11FMr,   c                  t     | |
          } |	          }|	urdz  |S dz   | i |}||<   |S r  r   )r   r   r   r   r   	cache_getr   make_keyr   sentinelr   r   s       r)   r#   z#_lru_cache_wrapper.<locals>.wrapper'  sm     (4u--CYsH--FX%%	aKF"]D1D11FE#JMr,   c                      | |          }5   |          }|@|\  }}}}||<   ||<            }|x|<   <   ||<   |<   dz  |cd d d            S dz  d d d            n# 1 swxY w Y    | i |}5  |v rndr7}	||	<   ||	<   |	                  }
         }d x<   <   |
= |	|<   n+         }|||g}|x|<   x<   |<                k    d d d            n# 1 swxY w Y   |S r  r   )r   r   r   link	link_prev	link_next_keyr   lastoldrootoldkey	oldresultKEYNEXTPREVRESULTr   r  	cache_lenfullr   lockr  r   r   rc   r   r   s               r)   r#   z#_lru_cache_wrapper.<locals>.wrapper6  sB    (4u--C   y~~#9=6Iy$&/IdO&/IdO:D.22DJd!%DJ!%DJAID!        !               #]D1D11F #4 #4%<<
  4"G#&GCL&,GFO #4=D!#YF $VI/33DIVf ")E#JJ  :D $V4D;??DJ?deCj &IKK72DG#4 #4 #4 #4 #4 #4 #4 #4 #4 #4 #4 #4 #4 #4 #4H Ms+   AA0A00A47A4A*C;;C?C?c                  j    	 5                           cd d d            S # 1 swxY w Y   d S r   r   )r   r  r   r  r   r   s   r)   
cache_infoz&_lru_cache_wrapper.<locals>.cache_infoo  s    % 	B 	B:dFGYY[[AA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   (,,c                      	 5                                     d d gd d <   dxdd d d            d S # 1 swxY w Y   d S )Nr   F)clear)r   r  r   r  r   rc   s   r)   cache_clearz'_lru_cache_wrapper.<locals>.cache_cleart  s    2 	 	KKMMMT4.DGD6D		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   &8<<)rZ   r   r   __len__r   r  r  )r   r   r   r   r#   r  r  r  r  r  r  r   r  r  r  r   r  r  r   rc   r  s   ````   @@@@@@@@@@@@@@r)   r   r     s   xxHH(D$VED6D	II77DDT4&DG!||	 	 	 	 	 	 	 
	 	 	 	 	 	 	 	 	 	 	 	 	7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	 7	rB B B B B B B B B B
          $G%GNr,   )r   c                6    	  t          d           |           S )N)r   )r	   )r   s    r)   r   r     s     F"9T"""=111r,   c                     	 g }	 d | D             } | s|S | D ]!}|d         }| D ]}||dd          v rd } n n"|t          d          |                    |           | D ]}|d         |k    r|d= o)NTc                     g | ]}||S r   r   )r[   ss     r)   
<listcomp>z_c3_merge.<locals>.<listcomp>  s    ///1Q/Q///r,   r   r   zInconsistent hierarchy)RuntimeErrorappend)	sequencesr   s1	candidates2seqs         r)   	_c3_merger)    s    
 F//	///	 	M 	 	B1I  122&& $IE '   7888i    	 	C1v""F%r,   Nc                   
 	 t          t          | j                            D ].\  }
t          
d          rt	          | j                  |z
  } n/d}rt                    ng t          | j        d |                   }g }t          | j        |d                    }D ]G
t          | 
          r5t          
fd| j        D                       s|                    
           H|D ]
	                    
           fd|D             }fd|D             }fd|D             }	t          | gg|z   |z   |	z   |gz   |gz   |gz             S )N__abstractmethods__r   c              3   8   K   | ]}t          |          V  d S r   )
issubclass)r[   bbases     r)   r   z_c3_mro.<locals>.<genexpr>  s>       - -()
1d##- - - - - -r,   c                 2    g | ]}t          |           S abcs_c3_mror[   r/  r3  s     r)   r!  z_c3_mro.<locals>.<listcomp>  &    LLLT4000LLLr,   c                 2    g | ]}t          |           S r1  r4  r6  s     r)   r!  z_c3_mro.<locals>.<listcomp>  r7  r,   c                 2    g | ]}t          |           S r1  r4  r6  s     r)   r!  z_c3_mro.<locals>.<listcomp>  s&    FFF$WT---FFFr,   )	enumeratereversed	__bases__r   r   listr-  anyr#  remover)  )r]   r3  iboundaryexplicit_basesabstract_basesother_basesexplicit_c3_mrosabstract_c3_mrosother_c3_mrosr/  s    `        @r)   r5  r5    s     Xcm4455  44.// 	3=))A-HE	 %4:::2D#-		233NNs}XYY/00K ( (c4   	( - - - --0]- - - * * 	(
 !!$'''  DLLLL^LLLLLLL^LLLFFFF+FFFM
	+	,.;	<		*+	,/:m	<  r,   c                 (   	
 	 t           j                   fdfdD             fd		fdD             t                    
g }D ]}g }|                                D ]<}|vr6t           |          r&|                    
fd|j        D                        =|s|                    |           m|                    t          d           |D ] }|D ]}||vr|                    |           !t           |          S )	Nc                 x    | vo5t          | d          o%t          | t                     ot          |           S )N__mro__)r   r   r   r-  )typbasesr]   s    r)   
is_relatedz _compose_mro.<locals>.is_related  sH    5  :WS)%<%< :)3C)F)F%F:%/S%9%9	;r,   c                 *    g | ]} |          |S r   r   )r[   nrM  s     r)   r!  z _compose_mro.<locals>.<listcomp>  s&    ///1A/Q///r,   c                 6    D ]}| |k    r| |j         v r dS dS )NTF)rJ  )rK  r4   typess     r)   is_strict_basez$_compose_mro.<locals>.is_strict_base  s4     	 	Ee||u} 4 4ttur,   c                 *    g | ]} |          |S r   r   )r[   rO  rR  s     r)   r!  z _compose_mro.<locals>.<listcomp>  s(    7771^^A%6%67Q777r,   c                     g | ]}|v |	S r   r   )r[   r   type_sets     r)   r!  z _compose_mro.<locals>.<listcomp>  s    FFFAXar,   T)r   reverser2  )setrJ  __subclasses__r-  r#  sortr   r5  )r]   rQ  mrorK  foundsubsubclsrL  rM  rR  rU  s   ``     @@@@r)   _compose_mror^    s    E; ; ; ; ; ; 0//////E    
 8777777E 5zzH
C ' '%%'' 	H 	HC%JsC$8$8FFFFFFFGGG 	JJsOOO

sD
))) 	' 	'C ' '$$JJv&&&'	' 3S!!!!r,   c                 &   	 t          | |                                          }d }|D ]U}|K||v rE|| j        vr<|| j        vr3t          ||          s#t	          d                    ||                     n||v r|}V|                    |          S )NzAmbiguous dispatch: {} or {})r^  keysrJ  r-  r"  r   r   )r]   registryrZ  matchts        r)   
_find_implrd    s     sHMMOO
,
,CE   X!3;"6"6"'s{":":&0&:&: #;"#A#H#H1$ $   E==E<<r,   c                 \  	
 	 dd l dd l}i 
|                                d 
fdfdfdd		
fd		fd}t          | dd          | 
t          <   	|_        |_                            
          |_        j	        |_
        t          ||            |S )
Nr   c                     	 *t                      }|k    r                                 |	 |          }n?# t          $ r2 	 |          }n # t          $ r t          |           }Y nw xY w|| <   Y nw xY w|S r   )r   r  KeyErrorrd  )r]   current_tokenimplcache_tokendispatch_cachera  s      r)   dispatchz singledispatch.<locals>.dispatch2  s    	 "+--Mm++$$&&&+	'!#&DD 	' 	' 	'1} 1 1 1!#x001"&N3	' s3   9 
A5AA5A*'A5)A**A54A5c                 <    ddl m}m}  ||           |j        hv S )Nr   )
get_originUnion)typingrn  ro  	UnionType)r]   rn  ro  rQ  s      r)   _is_union_typez&singledispatch.<locals>._is_union_typeI  s5    ,,,,,,,,z#5%/":::r,   c                     t          | t                    rdS ddlm}  |           o!t	          d  ||           D                       S )NTr   get_argsc              3   @   K   | ]}t          |t                    V  d S r   )r   r/   )r[   args     r)   r   zBsingledispatch.<locals>._is_valid_dispatch_type.<locals>.<genexpr>R  s,      CCcJsD))CCCCCCr,   )r   r/   rp  ru  all)r]   ru  rr  s     r)   _is_valid_dispatch_typez/singledispatch.<locals>._is_valid_dispatch_typeM  sg    c4   	4######s## DCCXXc]]CCCCC	Er,   c                 n    	             r	| fdS n|t          d d          t           di           }|st          d d           }ddlm} t	          t           ||                                                              \  }             s7            rt          d	|d
 d          t          d	|d
 d                      rddlm}  |           D ]}||<   n| <   	t           d          rt                      	

                                 |S )Nc                      |           S r   r   )fr]   registers    r)   r   z2singledispatch.<locals>.register.<locals>.<lambda>]  s    #q!1!1 r,   z(Invalid first argument to `register()`. z is not a class or union type.r   z(Invalid first argument to `register()`: zS. Use either `@register(some_class)` or plain `@register` on an annotated function.r   )get_type_hintszInvalid annotation for z. z not all arguments are classes.z is not a class.rt  r+  )r   r   rp  r~  r~   r|   r   ru  r   r   r  )r]   r   annr~  argnameru  rw  rr  ry  rj  rk  r}  ra  s   `      r)   r}  z singledispatch.<locals>.registerT  s    	 #"3'' 	|111111  == = =   #0"55C 1s 1 1 1  
 D .-----^^D%9%9%?%?%A%A B BCCLGS**3// 
!>#&& 	#B' B BB B B  
 $3' 3 33 3 3  
 ># 	!''''''x}} % % $% !HSM730E#F#F)++Kr,   c                  d    | st           d            | d         j                  | i |S )Nz( requires at least 1 positional argumentr   )r   r   )r   kwrl  funcnames     r)   r#   zsingledispatch.<locals>.wrapper  sV     	5x 4 4 4 5 5 5 +xxQ)**D7B777r,   r   zsingledispatch functionr   )rQ  weakrefWeakKeyDictionaryr   rZ   r}  rl  MappingProxyTypera  r  _clear_cacher   )r   r  r#   rr  ry  rj  rl  rk  r  r}  ra  rQ  s      @@@@@@@@@r)   r   r      sY    H..00NK      .; ; ; ; ;E E E E E2 2 2 2 2 2 2 2 2 2 2h8 8 8 8 8 8 tZ)BCCHHVGG--h77G)/G7D!!!Nr,   c                   <    e Zd Z	 d ZddZddZed             ZdS )r   c                     t          |          s"t          |d          st          |d          t          |          | _        || _        d S )Nr   z  is not callable or a descriptor)r   r   r   r   
dispatcherr   r3   r   s     r)   rl   zsingledispatchmethod.__init__  sT    ~~ 	IgdI&>&> 	ItGGGHHH(..			r,   Nc                 <    	 | j                             ||          S )Nr   )r  r}  )r3   r]   methods      r)   r}  zsingledispatchmethod.register  s$    	 ''&'999r,   c                 t      fd} j         |_          j        |_        t          | j                   |S )Nc                      j                             | d         j                  } |                              | i |S rn   )r  rl  r   r   )r   kwargsr  r]   ri   r3   s      r)   r   z-singledispatchmethod.__get__.<locals>._method  sB    _--d1g.?@@F+6>>#s++T<V<<<r,   )r   r}  r   r   )r3   ri   r]   r   s   ``` r)   r   zsingledispatchmethod.__get__  sV    	= 	= 	= 	= 	= 	= 	= (,'@$=w	***r,   c                 .    t          | j        dd          S r   r   r   s    r)   r   z)singledispatchmethod.__isabstractmethod__  r   r,   r   )r   r   r   rl   r}  r   r   r   r   r,   r)   r   r     sp          : : : :    A A XA A Ar,   r   c                   8    e Zd Zd Zd ZddZ ee          ZdS )r   c                 `    || _         d | _        |j        | _        t                      | _        d S r   )r   attrnamer   r   r  r  s     r)   rl   zcached_property.__init__  s(    	|GG			r,   c                 r    | j         	|| _         d S || j         k    rt          d| j         d|d          d S )Nz?Cannot assign the same cached_property to two different names (z and z).)r  r   )r3   ownernames      r)   __set_name__zcached_property.__set_name__  sb    =  DMMMT]""5M5 5*.5 5 5   #"r,   Nc                 h   || S | j         t          d          	 |j        }n># t          $ r1 dt	          |          j        d| j         d}t          |          d w xY w|                    | j         t                    }|t          u r| j        5  |                    | j         t                    }|t          u r_| 	                    |          }	 ||| j         <   n># t          $ r1 dt	          |          j        d| j         d}t          |          d w xY wd d d            n# 1 swxY w Y   |S )NzGCannot use cached_property instance without calling __set_name__ on it.zNo '__dict__' attribute on z instance to cache z
 property.zThe '__dict__' attribute on z7 instance does not support item assignment for caching )
r  r   r   r    r/   r   r   
_NOT_FOUNDr  r   )r3   instancer  r   msgvals         r)   r   zcached_property.__get__  s   K= Y[ [ [	+%EE 	+ 	+ 	+Ad8nn.E A A%)]A A A  C..d*	+ iiz22* 7 7iiz::*$$))H--C7/2dm,,$ 7 7 7h4>>;R h hLPMh h h  (nn$677 7 7 7 7 7 7 7 7 7 7 7 7 7 7 
s3   $ ;A?D'
CD';DD''D+.D+r   )	r   r   r   rl   r  r   r   r   r   r   r,   r)   r   r     sT               > $L11r,   r   )r   Fr   ):__all__abcr   collectionsr   reprlibr   _threadr   rQ  r   r   r   r   r   r6   r9   r<   rA   rD   rG   rK   rM   rO   rS   rU   rW   r_   r   r   
_functoolsImportErrorrZ   r}   r
   r   r   r   r   r=  r   r   strr   r/   r   r   r	   r   r   r)  r5  r^  rd  r   r   r  r   r   r,   r)   <module>r     s    
        " " " " " " " " " " " "            *  2,   > )#7 7 7 70+ + +& & &  * * *' ' '  + + +& & &  * * *' ' '   +&+&+&( +&+&+&( +&+&+&( +&+&+&(   $  &	%%%%%%% 	 	 	D	 688 '7    8	!!!!!!! 	 	 	D	? ? ? ? ? ? ? ?B	""""""" 	 	 	D	E2 E2 E2 E2 E2F E2 E2 E2T   Z%N%N%NOO
       "  st   >, , , ,\r r rh	------- 	 	 	D	2 2 2  6+ + + +Z(" (" ("T  4v v vt!A !A !A !A !A !A !A !AP VXX
/2 /2 /2 /2 /2 /2 /2 /2 /2 /2sH   
B BB,B3 3B;:B;C CC'D. .D65D6