
    =Og                       	 d Z g dZddlZddlZddlZddlZddlZddlZ	ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlmZ ddlmZmZ  e            Zej                                        D ]\  ZZeedez   <   [[[dZ ddd	d
dZ!d Z"d Z#d Z$d Z%d Z& e'ed          rd Z(nd Z( e'ed          rd Z)nd Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d  Z3d! Z4d" Z5d# Z6d$ Z7d% Z8d& Z9d' Z:dd(Z;dd)Z< ed*d+          Z=d, Z>d- Z?dd.d/Z@d0 ZAd1 ZBd2 ZCd3 ZDd4 ZEd5 ZFd6 ZGd7 ZHdd8ZIi ZJi ZKdd9ZL G d: d;eM          ZN G d< d=ejO                  ZPd> ZQd? ZR G d@ dAeM          ZS G dB dC          ZTdD ZUdE ZVdF ZWdG ZXddHZY edIdJ          ZZdK Z[ edLdM          Z\dN Z] edOdP          Z^dQ Z_ddRZ`dS ZaebdT dU dV fdWZcdX ZddY ZedZ Zf ed[d\          Zgd] Zh ed^d_          Zi G d` daei          Zjdb Zkdc ZlddeZmdf Zn edgdhejjo        z             Zp G di djep          ZqddkZrddlZsdm ZtddnZuddoZv ew            Zxdp Zydq Zzdr Z{ds Z|dt Z}exfduZ~dvZdwZdxZdyZdz Zd{ Zd|Zd}Zd~ZdZd Zd Zej        ej        ej        ej        fZd ZddZd Zd Zd Zd ZddZddZ	 	 ddZd Zddddd	ddZ G d d          Z G d d          Z G d dej                  Zej        Zej        Zej        Zej        Zej        Z G d d          Z G d d          Z G d d          Zdddd	ddZd Zedk    r e             dS dS ))zKa-Ping Yee <ping@lfw.org>z'Yury Selivanov <yselivanov@sprymix.com>)`ArgInfo	Arguments	AttributeBlockFinderBoundArgumentsCORO_CLOSEDCORO_CREATEDCORO_RUNNINGCORO_SUSPENDEDCO_ASYNC_GENERATORCO_COROUTINECO_GENERATORCO_ITERABLE_COROUTINE	CO_NESTEDCO_NEWLOCALS	CO_NOFREECO_OPTIMIZED
CO_VARARGSCO_VARKEYWORDSClassFoundExceptionClosureVars
EndOfBlock	FrameInfoFullArgSpec
GEN_CLOSEDGEN_CREATEDGEN_RUNNINGGEN_SUSPENDED	Parameter	SignatureTPFLAGS_IS_ABSTRACT	Tracebackclassify_class_attrscleandoccurrentframe
findsourceformatannotationformatannotationrelativetoformatargvaluesget_annotations
getabsfilegetargsgetargvaluesgetattr_staticgetblockgetcallargsgetclasstreegetclosurevarsgetcommentsgetcoroutinelocalsgetcoroutinestategetdocgetfilegetframeinfogetfullargspecgetgeneratorlocalsgetgeneratorstategetinnerframes	getlineno
getmembersgetmembers_static	getmodulegetmodulenamegetmrogetouterframes	getsourcegetsourcefilegetsourcelines
indentsize
isabstract
isasyncgenisasyncgenfunctionisawaitable	isbuiltinisclassiscodeiscoroutineiscoroutinefunctionisdatadescriptorisframe
isfunctionisgeneratorisgeneratorfunctionisgetsetdescriptorismemberdescriptorismethodismethoddescriptorismethodwrapperismodule	isroutineistraceback	signaturestacktraceunwrapwalktree    N)	iskeyword)
attrgetter)
namedtupleOrderedDictCO_i   Fglobalslocalseval_strc                @   	 t          | t                    rt          | dd           }|rCt          |d          r3|                    dd           }t          |t
          j                  rd }nd }d }t          | dd           }|r3t          j                            |d           }|rt          |dd           }t          t          |                     }	| }
nt          | t
          j                  r&t          | dd           }t          | d          }d }	d }
nHt          |           r't          | dd           }t          | dd           }d }	| }
nt          | d          |i S t          |t                    st          | d          |si S |st          |          S |
S	 t          |
d	          r|
j        }
t          |
t           j                  r|
j        }
;	 t          |
d          r|
j        }||	fd
|                                D             }|S )N__dict__get__annotations__
__module____globals__z% is not a module, class, or callable.z+.__annotations__ is neither a dict nor NoneT__wrapped__c                 h    i | ].\  }}|t          |t                    s|nt          |          /S  )
isinstancestreval).0keyvalueri   rj   s       /usr/lib64/python3.11/inspect.py
<dictcomp>z#get_annotations.<locals>.<dictcomp>  sO     ( ( (C s++MeWf1M1M( ( (    )ru   typegetattrhasattrrn   typesGetSetDescriptorTypesysmodulesdictvars
ModuleTypecallable	TypeError
ValueErrorrr   	functoolspartialfuncrq   items)objri   rj   rk   obj_dictannobj_globalsmodule_namemodule
obj_localsr`   return_values    ``         r{   r)   r)      s   +X #t !I3
D11 	%00 	,,0$77C#u9:: Cc<66 	@[__[$77F @%fj$??$s))__
	C)	*	* Ic,d33c:..
	# 	I c,d33c=$77
3GGGHHH
{	c4   PCNNNOOO 	 Cyy	v}-- +&)"344 6=)) 	- ,K~( ( ( ( ())++( ( (L r}   c                 8    	 t          | t          j                  S N)ru   r   r   objects    r{   rZ   rZ     s    C fe.///r}   c                 .    	 t          | t                    S r   )ru   r~   r   s    r{   rL   rL   $  s    J
 fd###r}   c                 8    	 t          | t          j                  S r   )ru   r   
MethodTyper   s    r{   rW   rW   ,  s    B fe.///r}   c                     	 t          |           st          |           st          |           rdS t          |           }t	          |d          ot	          |d           S )NF__get____set__rL   rW   rR   r~   r   r   tps     r{   rX   rX   6  sh    B v (6** j.@.@ u	fB2y!!@'"i*@*@&@@r}   c                     	 t          |           st          |           st          |           rdS t          |           }t	          |d          pt	          |d          S )NFr   
__delete__r   r   s     r{   rP   rP   J  sd     v (6** j.@.@ u	fB2y!!>WR%>%>>r}   MemberDescriptorTypec                 8    	 t          | t          j                  S r   )ru   r   r   r   s    r{   rV   rV   Z      	 &%"<===r}   c                     	 dS NFrt   r   s    r{   rV   rV   b      	 ur}   r   c                 8    	 t          | t          j                  S r   )ru   r   r   r   s    r{   rU   rU   k  r   r}   c                     	 dS r   rt   r   s    r{   rU   rU   s  r   r}   c                 8    	 t          | t          j                  S r   )ru   r   FunctionTyper   s    r{   rR   rR   z  s    	I fe0111r}   c                     	 t          |           r| j        } t          |           t          j        |           } t	          |           st          |           sdS t          | j        j        |z            S r   )	rW   __func__r   _unwrap_partialrR   _signature_is_functionlikebool__code__co_flags)fflags     r{   _has_code_flagr     sy     1++ J 1++ !!$$AqMM 7:: u
#d*+++r}   c                 .    	 t          | t                    S r   )r   r   r   s    r{   rT   rT     s    6 #|,,,r}   c                 .    	 t          | t                    S r   )r   r   r   s    r{   rO   rO     s     #|,,,r}   c                 .    	 t          | t                    S r   )r   r   r   s    r{   rI   rI     s    
 #1222r}   c                 8    	 t          | t          j                  S r   )ru   r   AsyncGeneratorTyper   s    r{   rH   rH     s    Afe6777r}   c                 8    	 t          | t          j                  S r   )ru   r   GeneratorTyper   s    r{   rS   rS     s    K fe1222r}   c                 8    	 t          | t          j                  S r   )ru   r   CoroutineTyper   s    r{   rN   rN     s    3fe1222r}   c                     	 t          | t          j                  pYt          | t          j                  o t	          | j        j        t          z            pt          | t          j	        j
                  S r   )ru   r   r   r   r   gi_coder   r   collectionsabc	Awaitabler   s    r{   rJ   rJ     sd    Ivu233 :vu233 FV^,/DDEE: v{899;r}   c                 8    	 t          | t          j                  S r   )ru   r   TracebackTyper   s    r{   r\   r\     s    N fe1222r}   c                 8    	 t          | t          j                  S r   )ru   r   	FrameTyper   s    r{   rQ   rQ     s    
D feo...r}   c                 8    	 t          | t          j                  S r   )ru   r   CodeTyper   s    r{   rM   rM     s    O, fen---r}   c                 8    	 t          | t          j                  S r   )ru   r   BuiltinFunctionTyper   s    r{   rK   rK     s    H fe7888r}   c                 8    	 t          | t          j                  S r   )ru   r   MethodWrapperTyper   s    r{   rY   rY     s    8fe5666r}   c                     	 t          |           p;t          |           p,t          |           pt          |           pt	          |           S r   )rK   rR   rW   rX   rY   r   s    r{   r[   r[     sY    Ff '&!!'' "&))' v&&	(r}   c                    	 t          | t                    sdS | j        t          z  rdS t	          t          |           t
          j                  sdS t          | d          rdS | j        	                                D ]\  }}t          |dd          r dS | j        D ]<}t          |dd          D ](}t          | |d           }t          |dd          r  dS )=dS )NFT__abstractmethods____isabstractmethod__rt   )ru   r~   	__flags__r    
issubclassr   ABCMetar   rm   r   r   	__bases__)r   namerz   bases       r{   rG   rG     s   Dfd## u-- td6llCK00 uv,--  u ,,..  e50%88 	44	   D"7<< 	 	DFD$//Eu4e<< ttt	 5r}   c                    g }t                      }t          |           }t          |           r}| ft          |           z   }	 | j        D ]P}|j                                        D ]4\  }}	t          |	t          j	                  r|
                    |           5Qn# t          $ r Y nw xY wd}|D ]}
	  || |
          }|
|v rt          n/# t          $ r" |D ]}|
|j        v r|j        |
         } nY DY nw xY w|r ||          r|
                    |
|f           |                    |
           |                    d            |S )Nrt   c                     | d         S )Nrb   rt   )pairs    r{   <lambda>z_getmembers.<locals>.<lambda>M  s
    $q' r}   ry   )setdirrL   rA   r   rm   r   ru   r   DynamicClassAttributeappendAttributeErroraddsort)r   	predicategetterresults	processednamesmror   kvry   rz   s               r{   _getmembersr   &  s   GIKKEv i&..(	( ( ( M//11 ( (DAq!!U%@AA (Q((  	 	 	D	   	F63''Ei$$   	 	 	  $-'' M#.EE ( 	 E		  	)IIe,, 	)NNC<(((cLL))L***Ns%   AB 
B)(B)3C'C76C7c                 0    	 t          | |t                    S r   )r   r   r   r   s     r{   r=   r=   P  s    Gvy'222r}   c                 0    	 t          | |t                    S r   )r   r-   r   s     r{   r>   r>   U  s    
 vy.999r}   r   zname kind defining_class objectc           	         	 t          |           }t          t          |                     }t          d |D                       }| f|z   }||z   }t          |           }|D ]W}|j                                        D ];\  }}t          |t          j                  r|j	        |
                    |           <Xg }	t                      }
|D ]}d }d }d }||
vr	 |dk    rt          d          t          | |          }t          |d|          }||vrWd }d }|D ]}t          ||d           }||u r|}|D ]0}	 |                    | |          }n# t          $ r Y &w xY w||u r|}1||}n# t          $ r
}Y d }~nd }~ww xY w|D ] }||j        v r|j        |         }||vr|} n!|||n|}t          |t           t          j        f          rd}|}nTt          |t$          t          j        f          rd}|}n.t          |t(                    rd}|}nt+          |          rd}nd	}|	
                    t-          ||||                     |
                    |           |	S )
Nc              3   :   K   | ]}|t           t          fv|V  d S r   )r~   r   )rx   clss     r{   	<genexpr>z'classify_class_attrs.<locals>.<genexpr>  s0      HHCc$.G.GC.G.G.G.GHHr}   rm   z)__dict__ is special, don't want the proxy__objclass__zstatic methodzclass methodpropertymethoddata)rA   r~   tupler   rm   r   ru   r   r   fgetr   r   	Exceptionr   __getattr__r   staticmethodBuiltinMethodTypeclassmethodClassMethodDescriptorTyper   r[   r   r   )r   r   metamroclass_bases	all_basesr   r   r   r   resultr   r   homeclsget_objdict_objlast_clssrch_clssrch_objexcr   kinds                        r{   r"   r"   e  s<   4 ++CT#YYGHH7HHHHHG&3,Kg%IHHE     M'')) 	  	 DAq!U899  af>PQ	  FI D D y  +:%%#$OPPP!#t,, "'>7CC+-- #G#H$/ 0 0#*8T4#@#@#w..'/H$+ 0 0%'/';';C'F'FHH- % % %$H%#w..'/H+"*/    0  	 	Dt}$$=.'))"G	 %
 ?  ,gg(hu/F GHH 	"DCC;0O"PQQ 		!DCC(++ 	DCCs^^ 	DDDidGS99:::dMs$   %E,9E
EE,
F ;F c                     	 | j         S r   )__mro__)r   s    r{   rA   rA     s    N;r}   stopc                   	 | }t          |          |i}t          j                    }t          | t                    st          | d          r| ||           rny| j        } t          |           }||v st          |          |k    r"t          d	                    |                    | ||<   t          | t                    st          | d          | S )Nrr   z!wrapper loop when unwrapping {!r})
idr   getrecursionlimitru   r~   r   rr   lenr   format)r   r  r   memorecursion_limitid_funcs         r{   r`   r`     s     	A qEE1:D+--Ot$$ })E)E T

T((tOOTo!=!=@GGJJKKKW t$$ })E)E  Kr}   c                     	 |                                  }t          |          t          |                                          z
  S r   )
expandtabsr  lstrip)lineexplines     r{   rF   rF     s7    LooGw<<#gnn..////r}   c                     t           j                            | j                  }|d S | j                            d          d d         D ]}t          ||          }t          |          sd S |S )N.)r   r   rn   rp   __qualname__splitr   rL   )r   r   r   s      r{   
_findclassr'    ss    
+//$/
*
*C
{t!'',,SbS1 ! !c4  3<< tJr}   c                 p   t          |           r4| j        D ]*}|t          ur	 |j        }n# t          $ r Y  w xY w||c S +d S t          |           rU| j        j        }| j        }t          |          r*t          t          ||d           d          | j        u r|}n`|j
        }nWt          |           r.| j        }t          |           }|t          ||          | urd S nt          |           r>| j        }| j        }t          |          r|j        dz   |z   | j        k    r|}n|j
        }nt          | t                     r4| j        }|j        }t          |          }|t          ||          | urd S nt%          |           st'          |           rd| j        }| j        }t          ||          | urd S t+          |           r2t          |dd           }t          |t,                    r||v r||         S nd S |j        D ]/}	 t          ||          j        }n# t          $ r Y %w xY w||c S 0d S )Nr   r#  	__slots__)rL   r  r   __doc__r   rW   r   __name____self__r   	__class__rR   r'  rK   r%  ru   r   r   rX   rP   r   rV   r   )r   r   docr   selfr   r   slotss           r{   _finddocr1    s   s|| 	K 	 	D6!!,CC%   H?JJJt}} (|$|DMM 	!GD$--z::clJJCC.CC	C |oo;'#t,,C774 8	3 ||DMM 	!#d*c.>>>CC.CC	C	"	" x};'#t,,C774 8	C	 	  
$4S$9$9 
|3S((4c"" 	#Cd33E%&& #45==T{"t  	$%%-CC 	 	 	H	?JJJ 4s   +
88	H
H,+H,c                     	 	 | j         }n# t          $ r Y d S w xY w|)	 t          |           }n# t          t          f$ r Y d S w xY wt	          |t
                    sd S t          |          S r   )r*  r   r1  r   ru   rv   r#   )r   r.  s     r{   r5   r5   L  s    B
n   tt
{	6""CC	* 	 	 	44	c3 tC==s    
/ AAc                    	 	 |                                                      d          }t          j        }|dd          D ]G}t	          |                                          }|r"t	          |          |z
  }t          ||          }H|r|d                                         |d<   |t          j        k     r3t          dt	          |                    D ]}||         |d          ||<   |r&|d         s|                                 |r|d         |r'|d         s|                    d           |r|d         d	                    |          S # t          $ r Y d S w xY w)N
   rb   r$  )r  r&  r   maxsizer  r  minrangepopjoinUnicodeError)r.  linesmarginr   contentindentis          r{   r#   r#   _  s      &&t,,
 !""I 	- 	-D$++--((G -TW,VV,, 	)Qx((E!HCK1c%jj))GGeAhvww6G588 	E"I 	IIKKK  	E"I 	 	E!H 	IIaLLL  	E!H 	yy)    tts   'E 
EEc                    	 t          |           r:t          | dd           r| j        S t          d                    |                     t          |           rt          | d          rVt          j        	                    | j
                  }t          |dd           r|j        S | j
        dk    rt          d          t          d                    |                     t          |           r| j        } t          |           r| j        } t!          |           r| j        } t%          |           r| j        } t)          |           r| j        S t          d                    t-          |           j                            )N__file__z{!r} is a built-in modulerp   __main__source code not availablez{!r} is a built-in classzVmodule, class, method, function, traceback, frame, or code object was expected, got {})rZ   r   rB  r   r  rL   r   r   r   rn   rp   OSErrorrW   r   rR   r   r\   tb_framerQ   f_coderM   co_filenamer~   r+  )r   r   s     r{   r6   r6   |  s   J D6:t,, 	#?"3::6BBCCCv C6<(( 	;[__V%677Fvz400 '& J..9:::299&AABBB !& !6 !v f~~ "!!
 77=vLL)8+ 8+, , ,r}   c                    	 t           j                            |           }d t          j                                        D             }|                                 |D ]&\  }}|                    |          r|d |         c S 'd S )Nc                 2    g | ]}t          |           |fS rt   )r  )rx   suffixs     r{   
<listcomp>z!getmodulename.<locals>.<listcomp>  s;     F F F f++v& F F Fr}   )ospathbasename	importlib	machineryall_suffixesr   endswith)rN  fnamesuffixesneglenrK  s        r{   r@   r@     s    ;GT""EF F"+"5"B"B"D"DF F FHMMOOO" " ">>&!! 	"&>!!!	"4r}   c                    	 t          |           t          j        j        d d          }|t          j        j        d d          z  }t          fd|D                       r>t          j                                      d         t          j        j	        d         z   n,t          fdt          j        j
        D                       rd S t          j                                      rS t          |           }t          |dd           S t          t          |dd           dd           S t          j        v rS d S )Nc              3   B   K   | ]}                     |          V  d S r   rS  rx   sfilenames     r{   r   z getsourcefile.<locals>.<genexpr>  s1      
?
?A8Q
?
?
?
?
?
?r}   rb   c              3   B   K   | ]}                     |          V  d S r   rY  rZ  s     r{   r   z getsourcefile.<locals>.<genexpr>  sA       9 9aXq!! 9 9 9 9 9 9r}   
__loader____spec__loader)r6   rP  rQ  DEBUG_BYTECODE_SUFFIXESOPTIMIZED_BYTECODE_SUFFIXESanyrM  rN  splitextSOURCE_SUFFIXESEXTENSION_SUFFIXESexistsr?   r   	linecachecache)r   all_bytecode_suffixesr   r\  s      @r{   rD   rD     sZ    vH%/GJY0LQQQOO

?
?
?
?)>
?
?
??? G$$X..q1'7:;	 9 9 9 9$79 9 9 
9 
9 t	w~~h vx((Fv|T**6	T22Hd	C	C	O	Y_	$	$ 
%	$r}   c                     	 |t          |           pt          |           }t          j                            t          j                            |                    S r   )rD   r6   rM  rN  normcaseabspath)r   	_filenames     r{   r*   r*     sK    2 !&))<WV__	7BGOOI66777r}   c                    	 t          |           r| S t          | d          r$t          j                            | j                  S |3|t          v r*t          j                            t          |                   S 	 t          | |          }n# t          t          f$ r Y d S w xY w|t          v r*t          j                            t          |                   S t          j        
                                                                D ]\  }}t          |          rt          |d          rv|j        }|t                              |d           k    rK|t          |<   t          |          }|j        xt          |<   t          t          j                            |          <   |t          v r*t          j                            t          |                   S t          j        d         }t          | d          sd S t          || j                  rt%          || j                  }|| u r|S t          j        d         }t          || j                  rt%          || j                  }	|	| u r|S d S d S )Nrp   rB  rC  r+  builtins)rZ   r   r   r   rn   rp   modulesbyfiler*   r   FileNotFoundErrorcopyr   rB  _filesbymodnamer+  rM  rN  realpathr   )
r   rn  filemodnamer   r   main
mainobjectbuiltinbuiltinobjects
             r{   r?   r?     sU   K v|$$ 2{v0111m!;!;{}Y7888&),,()   tt}{}T2333 ;++--3355 
7 
7F 		7
 ; ; 		7AO''6666'(OG$6""A (.7M!}  ## %}{}T2333;z"D6:&& ttV_%% T6?33
Kk*%Gw(( 99F""N ""s   =B B#"B#c                       e Zd ZdS )r   Nr+  rp   r%  rt   r}   r{   r   r     s        Dr}   r   c                   $    e Zd Zd Zd ZeZd ZdS )_ClassFinderc                 "    g | _         || _        d S r   )r^   qualname)r/  r  s     r{   __init__z_ClassFinder.__init__  s    
 r}   c                    | j                             |j                   | j                             d           |                     |           | j                                          | j                                          d S )Nz<locals>)r^   r   r   generic_visitr9  )r/  nodes     r{   visit_FunctionDefz_ClassFinder.visit_FunctionDef  sn    
$)$$$
*%%%4   

r}   c                 P   | j                             |j                   | j        d                    | j                   k    r5|j        r|j        d         j        }n|j        }|dz  }t          |          |                     |           | j         	                                 d S )Nr#  rb   r5  )
r^   r   r   r  r:  decorator_listlinenor   r  r9  )r/  r  line_numbers      r{   visit_ClassDefz_ClassFinder.visit_ClassDef  s    
$)$$$=CHHTZ0000" *"1!4;"k 1K%k2224   
r}   N)r+  rp   r%  r  r  visit_AsyncFunctionDefr  rt   r}   r{   r  r    sI        ! ! !   /    r}   r  c                    	 t          |           }|rt          j        |           nHt          |           }|                    d          r|                    d          st          d          t          | |          }|rt          j        ||j	                  }nt          j        |          }|st          d          t          |           r|dfS t          |           r| j        }d                    |          }t          j        |          }t!          |          }	 |                    |           t          d          # t$          $ r}|j        d         }	||	fcY d }~S d }~ww xY wt)          |           r| j        } t-          |           r| j        } t1          |           r| j        } t5          |           r| j        } t9          |           rt;          | d          st          d	          | j        d
z
  }
t?          j         d          }|
dk    rH	 ||
         }n# tB          $ r t          d          w xY w|"                    |          rn|
d
z
  }
|
dk    H||
fS t          d          )N<>rD  zcould not get source coderb    zcould not find class definitionco_firstlinenoz"could not find function definitionr5  z>^(\s*def\s)|(\s*async\s+def\s)|(.*(?<!\w)lambda(:|\s))|^(\s*@)zlineno is out of boundszcould not find code object)#rD   rh  
checkcacher6   
startswithrS  rE  r?   getlinesrm   rZ   rL   r%  r:  astparser  visitr   argsrW   r   rR   r   r\   rF  rQ   rG  rM   r   r  recompile
IndexErrormatch)r   rv  r   r<  r  sourcetreeclass_finderer  lnumpatr   s                r{   r%   r%     s   9   D 	7T""""v $$ 	7s);); 	75666vt$$F )"499"4(( 31222 axv =&y  #H--	=t$$$
 ;<<<	 # 	& 	& 	&&)K+%%%%%%%	&  !& !6 !v f~~ v/00 	@>???$q(jZ[[Qhh9T{ 9 9 978889yy !8D Qhh d{
.
/
//s*   $E 
E-E("E-(E-H$ $H>c                 
   	 	 t          |           \  }}n# t          t          f$ r Y d S w xY wt          |           rAd}|r|d         d d         dk    rd}|t	          |          k     rP||                                         dv r4|dz   }|t	          |          k     r||                                         dv 4|t	          |          k     r||         d d         dk    rg }|}|t	          |          k     rm||         d d         dk    rY|                    ||                                                    |dz   }|t	          |          k     r||         d d         dk    Yd                    |          S d S d S |dk    rt          ||                   }|dz
  }|dk    r||         
                                d d         dk    rt          ||                   |k    r||                                         
                                g}|dk    r|dz
  }||                                         
                                }|d d         dk    rt          ||                   |k    rg|g|d d<   |dz
  }|dk     rnS||                                         
                                }|d d         dk    rt          ||                   |k    g|rE|d                                         dk    r'g |d d<   |r|d                                         dk    '|rE|d                                         dk    r'g |dd <   |r|d                                         dk    'd                    |          S d S d S d S d S )	Nrb      z#!r5  )r  #r  r  r$  )r%   rE  r   rZ   r  stripr   r  r:  rF   r  )r   r<  r  startcommentsendr?  comments           r{   r2   r2   _  s    ((ttY   tt  !%4U1Xbqb\T))15c%jj  U5\%7%7%9%9Y%F%FAIE c%jj  U5\%7%7%9%9Y%F%F3u::%,rr"2c"9"9HCE

""uSz"1"~'<'<c
 5 5 7 7888Ag E

""uSz"1"~'<'< 778$$$ "9"9 
E$K((Qh!88c
))++BQB/366uSz""f,,c
--//66889HQwwAg*//1188::bqbkS((Zc
-C-Cv-M-M$+9HRaRL'CQww#Cj3355<<>>G	 bqbkS((Zc
-C-Cv-M-M
  "x{0022c99!!  "x{0022c99 #x|1133s:: "  #x|1133s::778$$$% 
 866,,s    ++c                       e Zd ZdS )r   Nr}  rt   r}   r{   r   r     s          r}   r   c                       e Zd Z	 d Zd ZdS )r   c                 h    d| _         d| _        d| _        d| _        d| _        d| _        d | _        d S )Nrb   Fr5  )r?  islambdastartedpasslineindecoratorlast	body_col0r/  s    r{   r  zBlockFinder.__init__  s8     	r}   c                    | j         s6| j        s/|dk    rd| _        n|dv r|dk    rd| _        d| _         d| _        d S |t          j        k    r4d| _        |d         | _        | j        rt          | j        r	d| _        d S d S | j        rd S |t          j        k    r3| j	        | j         r|d         | _	        | j
        dz   | _
        d| _        d S |t          j        k    r#| j
        dz
  | _
        | j
        dk    rt          d S |t          j        k    r+| j	         |d         | j	        k    r|d         | _        d S d S d S | j
        dk    r!|t          j        t          j        fvr	t          d S d S )N@T)defclasslambdar  Frb   r5  )r  r  r  r  tokenizeNEWLINEr  r   INDENTr  r?  DEDENTCOMMENTNL)r/  r~   tokensrowcolerowcolr   s         r{   
tokeneaterzBlockFinder.tokeneater  s   | (	D$4 (	||#'  444H$$$(DM# DMMMX%%%!DM
DI} !    )#(   ) )] 	DX_$$~%$,%!(+/DK DMMMX_$$+/DK {a    X%%%~)gajDN.J.J#AJ			 *).J.J [A$x/?.M"M"M  "M"Mr}   N)r+  rp   r%  r  r  rt   r}   r{   r   r     s5        J  ) ) ) ) )r}   r   c                     	 t                      }	 t          j        t          |           j                  }|D ]} |j        |  n# t          t          f$ r Y nw xY w| d |j                 S r   )	r   r  generate_tokensiter__next__r  r   IndentationErrorr  )r<  blockfindertokens_tokens       r{   r.   r.     s    J--K)$u++*>?? 	, 	,F"K"F+++	,()   "+""##s   5A AAc                    	 t          |           } t          |           \  }}t          |           r| j        } t	          |           st          |           r| j        j        dk    r|dfS t          ||d                    |dz   fS )Nz<module>rb   r5  )	r`   r%   r\   rF  rZ   rQ   rG  co_namer.   r   r<  r  s      r{   rE   rE     s    6 F^^FV$$KE46 ! 	 0	0#]2j@@axdee%%tax//r}   c                 R    	 t          |           \  }}d                    |          S )Nr  )rE   r:  r  s      r{   rC   rC     s+    A
 !((KE4775>>r}   c                     	 g }|                      t          dd                     | D ]L}|                    ||j        f           ||v r*|                    t	          ||         ||                     M|S )Nrp   r+  r   )r   rd   r   r   ra   )classeschildrenparentr   cs        r{   ra   ra     s    7GLLZj99L::: ? ?1;'(((==NN8HQK1==>>>Nr}   c                 6   	 i }g }| D ]c}|j         rA|j         D ]8}||vrg ||<   |||         vr||                             |           |r|| v r n9J||vr|                    |           d|D ]}|| vr|                    |           t          ||d           S r   )r   r   ra   )r  uniquer  rootsr  r  s         r{   r0   r0     s    E HE 	 	; 	+ 7 7))')HV$HV,,,V$++A...6f//e^^LLOOO ! !  LL   E8T***r}   r   zargs, varargs, varkwc                    	 t          |           s"t          d                    |                     | j        }| j        }| j        }t          |d |                   }t          ||||z                      }d}||z  }d }| j        t          z  r| j        |         }|dz   }d }| j        t          z  r| j        |         }t          ||z   ||          S )Nz{!r} is not a code objectrb   r5  )rM   r   r  co_varnamesco_argcountco_kwonlyargcountlistr   r   r   r   )	cor   nargsnkwargsr  
kwonlyargsstepvarargsvarkws	            r{   r+   r+     s     ":: @3::2>>???NENE"GfufDeE%-/011JD	WEG	{Z .'	E	{^# &u%TJ&777r}   r   zGargs, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotationsc           	         	 	 t          | ddt          d          }n"# t          $ r}t          d          |d }~ww xY wg }d }d }g }g }i }d}	i }
|j        |j        ur
|j        |d<   |j                                        D ]}|j        }|j	        }|t          u r/|                    |           |j        |j        ur|	|j        fz  }	n|t          u r/|                    |           |j        |j        ur|	|j        fz  }	nN|t          u r|}nB|t          u r.|                    |           |j        |j        ur
|j        |
|<   n|t           u r|}|j        |j        ur
|j        ||<   |
sd }
|	sd }	t%          ||z   |||	||
|          S )NF)follow_wrapper_chainsskip_bound_argsigclsrk   zunsupported callablert   return)_signature_from_callabler   r   r   return_annotationempty
parametersvaluesr  r   _POSITIONAL_ONLYr   default_POSITIONAL_OR_KEYWORD_VAR_POSITIONAL_KEYWORD_ONLY_VAR_KEYWORD
annotationr   )r   sigexr  r  r  posonlyargsr  annotationsdefaults
kwdefaultsparamr  r   s                 r{   r8   r8   4  s   8" 't=B6;.705	7 7 7
  8 8 8
 .//R78 DGEKJKHJ
CI-- # 5H&&(( 1 1zz###t$$$}EK//U],,+++KK}EK//U],,_$$GG]""d###}EK//#(=
4 \!!E5;.. % 0K 
 {T)7E8!:{< < <s    
<7<r   zargs varargs keywords localsc                 b    	 t          | j                  \  }}}t          |||| j                  S r   )r+   rG  r   f_locals)framer  r  r  s       r{   r,   r,     s5    = #5<00D'54%888r}   c                 Z   t          | dd           dk    r&d }t          j        d|t          |                     S t	          | t
          j                  rt          |           S t	          | t                    r$| j	        d|fv r| j
        S | j	        dz   | j
        z   S t          |           S )Nrp   typingc                 T    |                                  }|                    d          S )Nztyping.)groupremoveprefix)r  texts     r{   replzformatannotation.<locals>.repl  s#    ;;==D$$Y///r}   z[\w\.]+rp  r#  )r   r  subreprru   r   GenericAliasrv   r~   rp   r%  )r  base_moduler  s      r{   r&   r&     s    z<..(::	0 	0 	0 vj$Z(8(8999*e011 :*d## A Z$===**$S()@@@
r}   c                 4    t          | dd           fd}|S )Nrp   c                 $    t          |           S r   )r&   )r  r   s    r{   _formatannotationz5formatannotationrelativeto.<locals>._formatannotation  s    
F333r}   )r   )r   r  r   s     @r{   r'   r'     s3    V\400F4 4 4 4 4r}   c                     d| z   S )N*rt   r   s    r{   r   r     s
    sTz r}   c                     d| z   S )N**rt   r  s    r{   r   r     s
    TD[ r}   c                 &    dt          |           z   S )N=r  )rz   s    r{   r   r     s    cDKK.? r}   c                    	 |||fd}g }	t          t          |                     D ]&}
|	                     || |
                              '|r0|	                     ||           |||                   z              |r0|	                     ||           |||                   z              dd                    |	          z   dz   S )Nc                 <     ||            |||                    z   S r   rt   )r   rj   	formatargformatvalues       r{   convertz formatargvalues.<locals>.convert  s#    yVD\!:!:::r}   (, ))r8  r  r   r:  )r  r  r  rj   r  formatvarargsformatvarkwr  r  specsr@  s              r{   r(   r(     s    
M $#; ; ; ; E3t99 ' 'WWT!W%%&&&& L]]7++kk&/.J.JJKKK F[[''++fUm*D*DDEEE5!!!C''r}   c                 "   fd|D             }t          |          }|dk    r	|d         }n@|dk    r dj        | }n/ dj        |dd           }|dd = d                    |          |z   }t          d	| ||rd
nd|dk    rdnd|fz            )Nc                 6    g | ]}|vt          |          S rt   r  )rx   r   r  s     r{   rL  z&_missing_arguments.<locals>.<listcomp>  s)    CCCDF0B0BT$ZZ0B0B0Br}   r5  rb   r  z	{} and {}z, {} and {}r  z*%s() missing %i required %s argument%s: %s
positionalkeyword-onlyr  r[  )r  r  r:  r   )f_nameargnamesposr  r   missingr[  tails      `    r{   _missing_argumentsr*    s    CCCCHCCCE%jjG!||!H	AK&#}#U233Z0"##JIIet#
@W&)=ll~#qLLbbc166 7 7 7r}   c           
         t          |          |z
  }t          fd|D                       }|r|dk    }	d|fz  }
nH|rd}	d|t          |          fz  }
n/t          |          dk    }	t          t          |                    }
d}|rd}||dk    rdnd||dk    rdndfz  }t          d	| |
|	rdnd|||dk    r|sd
ndfz            )Nc                     g | ]}|v |	S rt   rt   )rx   argr  s     r{   rL  z_too_many.<locals>.<listcomp>  s    ???r}   r5  zat least %dTzfrom %d to %dr  z7 positional argument%s (and %d keyword-only argument%s)r[  z5%s() takes %s positional argument%s but %d%s %s givenwaswere)r  rv   r   )r%  r  kwonlyr  defcountgivenr  atleastkwonly_givenpluralr  
kwonly_sigmsgs         `      r{   	_too_manyr8    s&   $ii("G????v???@@L Awj(	 #d)) 44Ta#d))nnJ @GEQJJSSB$0A$5$5SS2? ?

KS/##R
qjjjUU6CC D D Dr}   c          	         	 t          |           }|\  }}}}}}	}
| j        }i }t          |           r| j        | j        f|z   }t	          |          }t	          |          }|rt	          |          nd}t          ||          }t          |          D ]}||         |||         <   |rt          ||d                    ||<   t          ||z             }|ri ||<   |	                                D ]H\  }}||vr"|st          |d|          |||         |<   +||v rt          |d|          |||<   I||k    r|st          |||||||           ||k     rW|d ||z
           }|D ]}||vrt          ||d|           t          |||z
  d                    D ]\  }}||vr||         ||<   d}|D ]}||vr|	r||	v r|	|         ||<   |dz  }|rt          ||d|           |S )Nrb   z&() got an unexpected keyword argument z$() got multiple values for argument Tr5  F)r8   r+  rW   r,  r  r7  r8  r   r   r   r   r8  r*  	enumerate)r   r#  namedspecr  r  r  r  r  kwonlydefaultsr   r%  	arg2valuenum_posnum_argsnum_defaultsnr@  possible_kwargskwrz   reqr-  r(  kwargs                            r{   r/   r/     s   -
 $DFJCD'5(J]FI ~~ 3$-3m%
2
*ooG4yyH$,33x===!LGXA1XX + +']	$q' 3":abb>22	'$+,,O 	%[[]] 
 
	E_$$ .!'!- . . .#(IeR ??#VVRR) * * *	"'&$
G\I	' 	' 	'+H|++, 	A 	AC)##"63i@@@X%<%=%= >?? 	- 	-FAs)##!)!	#G  	!! %>"9"9#1%#8	%  1 A6:ui@@@r}   r   z"nonlocals globals builtins unboundc                 x   	 t          |           r| j        } t          |           s"t          d                    |                     | j        }| j        i }n$d t          |j        | j                  D             }| j	        }|
                    dt          j                  }t          |          r|j        }i }i }t                      }|j        D ]U}|dv r	 ||         ||<   # t           $ r5 	 ||         ||<   n%# t           $ r |                    |           Y nw xY wY Rw xY wt%          ||||          S )N{!r} is not a Python functionc                 $    i | ]\  }}||j         S rt   )cell_contents)rx   varcells      r{   r|   z"getclosurevars.<locals>.<dictcomp>A  s1     	 	 	T $$	 	 	r}   __builtins__)NoneTrueFalse)rW   r   rR   r   r  r   __closure__zipco_freevarsrq   rn   rp  rm   rZ   r   co_namesKeyErrorr   r   )	r   codenonlocal_vars	global_ns
builtin_nsglobal_varsbuiltin_varsunbound_namesr   s	            r{   r1   r1   ,  s    ~~ }d F7>>tDDEEE=D 	 	 !143CDD	 	 	  I~x/@AAJ
 )(
KLEEM ( (,,, 	( )$K 	( 	( 	((%/%5T"" ( ( (!!$'''''(	( }k#]4 4 4s6   C((
D'3C?>D'?D!D' D!!D'&D'
_Tracebackz+filename lineno function code_context indexc                   *     e Zd Zdd fd
Zd Z xZS )r!   N	positionsc                b    t                                          | |||||          }||_        |S r   super__new__r`  )	r   r\  r  functioncode_contextindexr`  instancer-  s	           r{   rd  zTraceback.__new__d  s0    77??3&(LRWXX&r}   c                 r    d                     | j        | j        | j        | j        | j        | j                  S )NzcTraceback(filename={!r}, lineno={!r}, function={!r}, code_context={!r}, index={!r}, positions={!r}))r  r\  r  re  rf  rg  r`  r  s    r{   __repr__zTraceback.__repr__i  s9    @@Ft{DM4;L
DNA, A,	-r}   r+  rp   r%  rd  rj  __classcell__r-  s   @r{   r!   r!   c  sT        SW       
- - - - - - -r}   r!   c                 H    | j         j        | j        }}t          ||          S r   )rF  rG  tb_lasti_get_code_position)tbrV  instruction_indexs      r{   _get_code_position_from_tbrs  o  s$     k0"+
Dd$5666r}   c                     |dk     rdS |                                  }t          t          j        ||dz  d                     S )Nrb   )NNNNr  )co_positionsnext	itertoolsislice)rV  rr  positions_gens      r{   rp  rp  s  sG    1''%%''M	 0AQ0FMMNNNr}   r5  c           
         	 t          |           rt          |           }| j        }| j        } n!| j        }t          | j        | j                  }|d         | |g|dd          R ^} }n| g|R ^} }|d         }t          |           s"t          d
                    |                     t          |           pt          |           }|dk    rv|dz
  |dz  z
  }	 t          |           \  }}t          dt          |t!          |          |z
                      }||||z            }|dz
  |z
  }n# t"          $ r d x}}Y nw xY wd x}}t%          ||| j        j        ||t)          j        |           S )Nrb   r5  z'{!r} is not a frame or traceback objectr  r_  )r\   rs  	tb_linenorF  f_linenorp  rG  f_lastirQ   r   r  rD   r6   r%   maxr7  r  rE  r!   r  dis	Positions)	r  contextr`  r  r\  r  r<  r  rg  s	            r{   r7   r7   z  s   > 5 D.u55	&u|U]CC	|"F;Yqrr];;		"/Y//	q\F5>> QAHHOOPPPU##5wu~~H{{
WaZ'	'$U++KE4 3uc%jj7&:;;<<E%g-.EQJ&EE  	! 	! 	!  EEEE	! Xvu|';UcmY&?A A A As   D1 1EEc                     	 | j         S r   )r|  r  s    r{   r<   r<     s    M>r}   
_FrameInfor  c                   *     e Zd Zdd fd
Zd Z xZS )r   Nr_  c          	      d    t                                          | ||||||          }||_        |S r   rb  )
r   r  r\  r  re  rf  rg  r`  rh  r-  s
            r{   rd  zFrameInfo.__new__  s2    77??3x<Y^__&r}   c           	      ~    d                     | j        | j        | j        | j        | j        | j        | j                  S )NzoFrameInfo(frame={!r}, filename={!r}, lineno={!r}, function={!r}, code_context={!r}, index={!r}, positions={!r}))r  r  r\  r  re  rf  rg  r`  r  s    r{   rj  zFrameInfo.__repr__  s>    @@F
DM4;!4:t~A? A?	@r}   rk  rm  s   @r{   r   r     s[        Z^       
@ @ @ @ @ @ @r}   r   c                     	 g }| rCt          | |          }| f|z   }|                    t          |d|j        i           | j        } | C|S Nr`  )r7   r   r   r`  f_back)r  r  	framelisttraceback_info	frameinfos        r{   rB   rB     so    G I
 %eW55H~-	IR9QRRSSS	  
 r}   c                     	 g }| rHt          | |          }| j        f|z   }|                    t          |d|j        i           | j        } | H|S r  )r7   rF  r   r   r`  tb_next)rq  r  r  r  r  s        r{   r;   r;     sq    G I
 %b'22[N^3	IR9QRRSSSZ	  
 r}   c                  Z    	 t          t          d          rt          j        d          nd S )N	_getframer5  )r   r   r  rt   r}   r{   r$   r$     s)    I&sK88B3=dBr}   c                 H    	 t          t          j        d          |           S )Nr5  )rB   r   r  r  s    r{   r^   r^     s    J#-**G444r}   c                 R    	 t          t          j                    d         |           S )Nr  )r;   r   exc_infor  s    r{   r_   r_     s     M#,..+W555r}   c                 L    t           j        d                             |           S )Nr  )r~   rm   r   )klasss    r{   _static_getmror    s    =#++E222r}   c                     i }	 t                               | d          }n# t          $ r Y nw xY wt                              ||t
                    S Nrm   )r   __getattribute__r   r   rn   	_sentinel)r   attrinstance_dicts      r{   _check_instancer    sY    M//Z@@   88M4333s     
--c                     t          |           D ]E}t          t          |                    t          u r 	 |j        |         c S # t
          $ r Y Aw xY wFt          S r   )r  _shadowed_dictr~   r  rm   rU  )r  r  entrys      r{   _check_classr    sw    &&  $u++&&)33~d++++    4
 s   A
AAc                 J    	 t          |            n# t          $ r Y dS w xY wdS NFT)r  r   r   s    r{   _is_typer    s?    s   uu4s    
  c                    t           j        d         }t          |           D ]a}	 |                    |          d         }t          |          t          j        u r|j        dk    r	|j        |u s|c S R# t          $ r Y ^w xY wt          S r  )
r~   rm   r  r   r   r   r+  r   rU  r  )r  	dict_attrr  
class_dicts       r{   r  r    s    j)I&& 	" 	"	""**511*=J $$(BBB':55+u44!!!! 5  	 	 	D	 s   A44
B Bc                 &   	 t           }t          |           sSt          |           }t          |          }|t           u st          |          t          j        u rt          | |          }n| }t          ||          }|t           urw|t           urnt          t          |          d          t           urJt          t          |          d          t           us$t          t          |          d          t           ur|S |t           ur|S |t           ur|S | |u rbt          t          |                    D ]E}t          t          |                    t           u r 	 |j	        |         c S # t          $ r Y Aw xY wF|t           ur|S t          |          )Nr   r   r   )r  r  r~   r  r   r   r  r  r  rm   rU  r   )r   r  r  instance_resultr  r  klass_resultr  s           r{   r-   r-     s   	  OC== S		"5))	""OOu999-c488Ot,,Li''L	,I,I\**I66iGGl++Y77yHHD..==YNNi''9$$
e||#DKK00 	 	Ed5kk**i77 >$////   D 8
 i


s   E((
E54E5r   r   r   r   c                 f    	 | j         rt          S | j        rt          S | j        t
          S t          S r   )
gi_runningr   gi_suspendedr   gi_framer   r   )	generators    r{   r:   r:   C  s@       !r}   c                     	 t          |           s"t          d                    |                     t          | dd           }|| j        j        S i S )Nz{!r} is not a Python generatorr  )rS   r   r  r   r  r  )r  r  s     r{   r9   r9   U  s_     y!! L8??	JJKKKIz400E!**	r}   r   r	   r
   r   c                 f    	 | j         rt          S | j        rt          S | j        t
          S t          S r   )
cr_runningr	   cr_suspendedr
   cr_framer   r   )	coroutines    r{   r4   r4   m  s@       !r}   c                 <    	 t          | dd           }||j        S i S )Nr  )r   r  )r  r  s     r{   r3   r3     s-    
 Iz400E~	r}   c                     	 |dk    rt          | |d           }nt          | |d           }|t          |t                    rd S |dk    rt	          ||           }|S )Nrd  )r   r-   ru   _NonUserDefinedCallables_descriptor_get)r   method_namemeths      r{   "_signature_get_user_defined_methodr    sr     isK..c;55|z$(@AA| titS))Kr}   rt   c                 F   	 | j         }t          |                                          }|j        pd}|j        pi }|r||z   }	  | j        |i |}n7# t          $ r*}d                    |          }	t          |	          |d }~ww xY wd}
|                                D ]Z\  }}	 |j	        |         }|j
        t          u r|                    |           8|j
        t          u r;||v rd}
|                    |          ||<   n|                    |j                   |j
        t           u r|                    |          ||<   n# t"          $ r Y nw xY w|
r|j
        t          u r=||                             t                     }|||<   |                    |           |j
        t           t&          fv r|                    |           2|j
        t(          u r|                    |j                   \|                     |                                          S )Nrt   z+partial object {!r} has incorrect argumentsFT)r  r  r  )r  rf   r   r  keywordsbind_partialr   r  r   	argumentsr  r  r9  r  replacer   r  rU  move_to_endr  r  r  )wrapped_sigr   
extra_args
old_params
new_paramspartial_argspartial_keywordsbar  r7  transform_to_kwonly
param_namer  	arg_value	new_params                  r{   _signature_get_partialr    sz   
 'JZ--//00J<%2L'-2 1!L0&%[%|H7GHH & & &;BB7KKoo2%&
  '--// 0+ 0+
E#	JZ0I z--- z***z333!111 +/'-2]]9]-M-MJz** NN5:...z]**).y)I)I
:&C  	 	 	D	F  
	+ z333&z2:::NN	)2
:&&&z2222|<<<&&z2222..uz*****;*;*=*=>>>s*   A 
B%BB&E
EEc                 T   	 t          | j                                                  }|r|d         j        t          t
          fv rt          d          |d         j        }|t          t          fv r|dd          }n|t          urt          d          | 
                    |          S )Nrb   zinvalid method signaturer5  zinvalid argument typer  )r   r  r  r  r  r  r   r  r  r  r  )r  paramsr  s      r{   _signature_bound_methodr    s     3>((**++F 5VAY^m'DDD3444!9>D&(8999 && 4555 ;;&;)))r}   c                     	 t          |           p3t          |           p$t          | t                    p| t          t
          fv S r   )rK   rX   ru   r  r~   r   r   s    r{   _signature_is_builtinr    sM     cNN "s##"s455"
 D&>!#r}   c                    	 t          |           rt          |           rdS t          | dd           }t          | dd           }t          | dt                    }t          | dt                    }t          | dd           }t	          |t
          j                  o_t	          |t                    oJ|d u pt	          |t                    o1|d u pt	          |t                    ot	          |t                    p|d u S )NFr+  r   __defaults____kwdefaults__ro   )
r   rL   r   _voidru   r   r   rv   r   r   )r   r   rV  r  r  r  s         r{   r   r     s    C== GCLL  u3
D))D3
D))DsNE22H.66J#0$77KtU^,, EtS!!E<He!<!<E 4?:j$#?#?E d,,Ct0C	Gr}   c                 H   	 | s| d d fS d }d }d |                      d          D             }t          |          j        }t          j        |          }d}d}g }|j        }	d}
t
          j        }t
          j        }t          |          }|D ]}}|j	        |j
        }}||k    r!|dk    r|rd}nd}|
dz  }
)|dk    rd}|
dz
  }7||k    r	|d	k    r|
}F|rd}||k    r|d
k    s |	d            |	|           |dk    r |	d           ~d                    |          }|||fS )Nc                 <    g | ]}||                     d           S )ascii)encode)rx   ls     r{   rL  z6_signature_strip_non_python_syntax.<locals>.<listcomp>G  s)    CCC1CQXXgCCCr}   r4  Frb   ,Tr5  /$r  r   r  )r&  r  r  r  r   r  OP
ERRORTOKENrv  r~   stringr:  )r]   self_parameterlast_positional_onlyr<  r  token_streamdelayed_commaskip_next_commar  r   current_parameterr  r  tr~   r  clean_signatures                    r{   "_signature_strip_non_python_syntaxr  4  s   
  %$$$NCC	(=(=CCCEU$I$Y//LMOD
+C	B!J 	\A   vqxf2::}}" +&+OO %)M%*%}} #''81'<$JVs]].N 	!MRZZfmmD			FcMMCHHHggdmmON,@@@r}   Tc                    	 | j         t          |          \  }}}d|z   dz   }	 t          j        |          }n# t          $ r d }Y nw xY wt          |t          j                  s"t          d                                        |j	        d         }	g j
        d }i t          dd           }
|
r)t          j                            |
d           }|r|j        t          j                                        d fd G fdd	t          j                  ffd
	}t%          |	j        j                  }t%          |	j        j                  }t+          j        ||d           }|j        nj        t3          t%          t5          |                              D ]!\  }\  }} |||           ||k    rj        "|	j        j        rj         ||	j        j                   j        t=          |	j        j        |	j        j                   D ]\  }} |||           |	j        j!        rj"         ||	j        j!                   |ft          dd           }|d u}tG          |          }|r|s|r$                    d           n&d         %                    j                  }|d<    | | j
                  S )Nzdef fooz: pass"{!r} builtin has invalid signaturerb   rp   c                 <    | j         t          d          | j        S )Nz'Annotations are not currently supported)r  r   r-  )r  s    r{   
parse_namez&_signature_fromstr.<locals>.parse_name  s     ?&FGGGxr}   c                 D   	 t          |           }n7# t          $ r* 	 t          |           }n# t          $ r t          w xY wY nw xY wt          |t          t
          t          t          t          t          d           f          rt          j        |          S t          r   )rw   	NameErrorr   ru   rv   intfloatbytesr   r~   r  Constant)r[  rz   module_dictsys_module_dicts     r{   
wrap_valuez&_signature_fromstr.<locals>.wrap_value  s    	!K((EE 	! 	! 	!!Q00 ! ! !  ! 	! ec3udDJJGHH 	'<&&&s#    
A0AAAAc                   *    e Zd Z fdZ fdZd ZdS ),_signature_fromstr.<locals>.RewriteSymbolicsc                    g }|}t          |t          j                  r;|                    |j                   |j        }t          |t          j                  ;t          |t          j                  st          |                    |j                   d	                    t          |                    } |          S )Nr#  )ru   r  r   r   r  rz   Namer   r  r:  reversed)r/  r  arB  rz   r  s        r{   visit_Attributez<_signature_fromstr.<locals>.RewriteSymbolics.visit_Attribute  s    AAQ..    G Q..  a** !  HHQTNNNHHXa[[))E:e$$$r}   c                 ~    t          |j        t          j                  st	                       |j                  S r   )ru   ctxr  Loadr   r  )r/  r  r  s     r{   
visit_Namez7_signature_fromstr.<locals>.RewriteSymbolics.visit_Name  s5    dh11 # ll":dg&&&r}   c                 n   |                      |j                  }|                      |j                  }t          |t          j                  rt          |t          j                  st          t          |j        t          j                  r!t	          j        |j	        |j	        z             S t          |j        t          j
                  r!t	          j        |j	        |j	        z
            S t          |j        t          j                  r!t	          j        |j	        |j	        z            S t          r   )r  leftrightru   r  r  r   opAddrz   SubBitOr)r/  r  r
  r  s       r{   visit_BinOpz8_signature_fromstr.<locals>.RewriteSymbolics.visit_BinOp  s     ::di((DJJtz**EdCL11 !E3<9X9X !  $'37++ >|DJ$<===DGSW-- >|DJ$<===DGSY// >|DJ$<===r}   N)r+  rp   r%  r  r  r  )r  s   r{   RewriteSymbolicsr    sV        
	% 
	% 
	% 
	% 
	%	' 	' 	' 	' 	'
	 	 	 	 	r}   r  c                 @    
|           }|rm|t           urd	                                  |          }t          j        |          }n1# t          $ r$ t	          d                                        d w xY w	                     ||                     d S )Nr  r  r  )_emptyr  r  literal_evalr   r  r   )	name_nodedefault_noder  r   r   r  r  r  r   r  r  s       r{   pz_signature_fromstr.<locals>.p  s    z)$$ 	]L66]//1177EE*<88 ] ] ] !E!L!LS!Q!QRRX\\]))D$ERRRSSSSSs   1A .A9)	fillvaluer,  r  r  )&_parameter_clsr  r  r  SyntaxErrorru   Moduler   r  bodyr  r   r   r   rn   rm   rs  NodeTransformerr  r  r  rw  zip_longestPOSITIONAL_ONLYPOSITIONAL_OR_KEYWORDr:  r  varargVAR_POSITIONALKEYWORD_ONLYrR  r  kw_defaultsrF  VAR_KEYWORDrZ   r9  r  )r   r   r[  r  r  r  r  programr   r   r   r  r  r  r  r@  r   r  _selfself_isboundself_ismoduler   r  r  r  r  r  r  r  r  s    `                   @@@@@@@@@r{   _signature_fromstrr,  |  s    "I 	+1-- :O^%9 /)H4G7##    fcj)) K=DDSIIJJJAAJOEFK#|T22K *d33 	* /Kk&&((O             3.   B ,1 T T T T T T T T T T T T AFK  D((H x4@@@D'(.'d(<(<== 3 3?D'	$$$$2D 	v}  '	!&- !DQV.0BCC  g	$ 	v| $	!&,! Z..D(  	] 	n 	NN1 1%%9+D%EEAJqM3zSY7777s   A AAc                     	 t          |          s"t          d                    |                    t          |dd           }|s"t	          d                    |                    t          | |||          S )Nz%{!r} is not a Python builtin function__text_signature__z#no signature found for builtin {!r})r  r   r  r   r   r,  )r   r   r  r[  s       r{   _signature_from_builtinr/  	  s     !&& 1 ##)6$<<1 1 	1 	*D11A M>EEdKKLLLc4N;;;r}   c           
      @   	 d}t          |          s4t          |          rd}n"t          d                    |                    t	          |dd           }|rt          | |||          S | j        }|j        }	|	j        }
|	j	        }|	j
        }|d |
         }|	j        }||
|
|z            }t          ||||          }|j        }|j        }|rt          |          }nd}g }|
|z
  }|}|d |         D ]U}|rt           nt"          }|                    |t&                    }|                     ||||                     |r|dz  }Vt+          ||d                    D ]_\  }}|rt           nt"          }|                    |t&                    }|                     ||||||         	                     |r|dz  }`|	j        t.          z  rL||
|z            }|                    |t&                    }|                     |||t0                               |D ]h}t&          }||                    |t&                    }|                    |t&                    }|                     |||t2          |	                     i|	j        t4          z  rb|
|z   }|	j        t.          z  r|dz  }||         }|                    |t&                    }|                     |||t6                                | ||                    d
t&                    |          S )NFTrH  r.  rh   rb   )r  r  r5  )r  r  r  r  r  __validate_parameters__)rR   r   r   r  r   r,  r  r   r  r  co_posonlyargcountr  r)   r  r  r  r  r  rn   r  r   r:  r   r   r  r  r   r  )r   r   r  ri   rj   rk   is_duck_functionr[  r   	func_code	pos_count	arg_namesposonly_countr#  keyword_only_countkeyword_onlyr  r  r  pos_default_countr  non_default_countposonly_leftr   r  r  offsetr  rg  s                                r{   _signature_from_functionr?  	  s   Md J%d++ 	J# ;BB4HHIII*D11A @!#tQ???"I I%I%I0M:I:&J"4Yy3E'EEFL!$QYZZZK H$J MMJ!$55 L ---.  #/K5K __T622
))DZ)-/ / / 	0 	0 	0 	AL "*->-?-?"@AA  #/K5K __T622
))DZ)-,4V,<> > > 	? 	? 	?  	AL J& ;%778 __T622
))DZ)8: : : 	; 	; 	;  6 6! nnT622G __T622
))DZ)6,35 5 5 	6 	6 	6 	6 N* 8..
* 	QJE __T622
))DZ)57 7 7 	8 	8 	8
 3z!,6!B!B'79 9 9 9r}   c                     t          |           r| S t          t          |           dt                    }|t          u r| S  || |t          |                    S )Nr   )rL   r   r~   r  )
descriptorr   rn   s      r{   r  r  z	  s\    z 
$z""Iy
9
9C
i3z3S		***r}   )r  r  ri   rj   rk   c          	      x   	 t          j        t          ||||||          }t          |           s"t	          d                    |                     t          | t          j                  r# || j	                  }|rt          |          S |S |r7t          | d           } t          | t          j                  r ||           S 	 | j        }|9t          |t                    s"t	          d                    |                    |S n# t          $ r Y nw xY w	 | j        }	t          |	t           j                  r ||	j                  }
t%          |
|	d          }t'          |
j                                                  d         }|j        t.          j        u r|S t'          |j                                                  }|f|z   }|                    |          S n# t          $ r Y nw xY wt5          |           st7          |           rt9          || ||||	          S t;          |           rt=          || |
          S t          | t           j                  r  || j                  }
t%          |
|           S t          | t>                    rGtA          t?          |           d          }| ||          S tA          | d          }tA          | d          }| j!        D ]E}|)d|j"        v r  ||          }|rt          |          }|c S |d|j"        v r ||          c S F| j!        d d         D ]/}	 |j#        }|rtI          |||          c S  # t          $ r Y ,w xY wt>          | j!        vrb| j%        tL          j%        u r-| j'        tL          j'        u r|(                    tL                    S tS          d                    |                     n;tU          t?          |           dd           }|tW          ||           } ||          S tS          d                    |                     )N)r  r  ri   rj   r  rk   z{!r} is not a callable objectc                 V    t          | d          pt          | t          j                  S )N__signature__)r   ru   r   r   )r   s    r{   r   z*_signature_from_callable.<locals>.<lambda>	  s)    '!_*E*E +C#-a1A#B#B r}   r  z1unexpected object {!r} in __signature__ attributer   rb   r  )r  ri   rj   rk   )r  __call__rd  r  r$  z(no signature found for builtin type {!r}z+callable {!r} is not supported by signature),r   r   r  r   r   r  ru   r   r   r   r  r`   rD  r   r   _partialmethodpartialmethodr   r  r   r  r  r  r   r$  r  rR   r   r?  r  r/  r~   r  r  rm   r.  r,  r  r   rd  from_callabler   r-   r  )r   r  r  ri   rj   rk   r  _get_signature_ofr  rG  r  first_wrapped_param
sig_paramsr  callnewinitr   text_sigs                      r{   r  r  	  s:    ")*B6K/=(/'-'-)13 3 3 C== E7>>sCCDDD#u'((   -- 	*3///J  	* S !C !C E E Ec5+,, 	* %$S)))
 ?c9-- -  &s- - - J     :* mY%<== 	: ,+M,>??K(mWMMC"'(>(E(E(G(G"H"H"K"'9+CCC 
"3>#8#8#:#:;;
 23j@
{{j{999+	:    4 # [4S99 [ (7E07QY[ [ [ 	[ S!! F&vs6DF F F 	F #y()) 8''11%k3777#t A+
 2$s))ZHH$$T***0i@@1#zBB K 		/ 		/D9#=#='',,! 71#66C


!jDM&A&A((.....
 K$ 	F 	FDF2  F .fdHEEEEEF "    s{"" //v~--++F333 >EEcJJL L L # d3iiT::"4--D$$T***
BII#NN
O
OOs6   
D 
DDG$ $
G10G1M
M+*M+c                       e Zd ZdS )r  Nr}  rt   r}   r{   r  r  -
  s        ;;r}   r  c                       e Zd ZdS )r  Nr}  rt   r}   r{   r  r  1
  s        @@r}   r  c                   .    e Zd ZdZdZdZdZdZd Zd Z	dS )	_ParameterKindzpositional-onlyzpositional or keywordzvariadic positionalr$  zvariadic keywordc                     t          | j                  }t                              | |          }||_        ||_        |S r   )r  __members__r  rd  _value_description)r   rW  rz   members       r{   rd  z_ParameterKind.__new__<
  s8    CO$$S%(((r}   c                     | j         S r   r  r  s    r{   __str__z_ParameterKind.__str__C
  s
    yr}   N)
r+  rp   r%  r!  r"  r$  r%  r'  rd  rZ  rt   r}   r{   rS  rS  5
  sL        'O3*N!L$K      r}   rS  c                       e Zd Z	 dZeZeZeZ	e
ZeZeZeeddZd Zd Zed             Zed             Zed             Zed	             Zeeeed
dZd Zd Zd Zd ZdS )r   )_name_kind_default_annotationr  c                   	 t          |          | _        n!# t          $ r t          d|d          w xY w|t          urE| j        t          t
          fv r0d}|                    | j        j                  }t          |          || _        || _	        |t          u rt          d          t          |t                    s6d                    t          |          j                  }t          |          |d         dk    r|dd                                          ri| j        t           k    r0d	}|                    | j        j                  }t          |          t"          | _        d
                    |dd                    }t%          |          o| j        t"          u}|s|                                s"t          d                    |                    || _        d S )Nzvalue z is not a valid Parameter.kindz({} parameters cannot have default valuesz*name is a required attribute for Parameterzname must be a str, not a {}rb   r#  r5  zLimplicit arguments must be passed as positional or keyword arguments, not {}z
implicit{}z"{!r} is not a valid parameter name)rS  r]  r   r  r  r  r  rW  r^  r_  ru   rv   r~   r+  r   isdigitr  r  rc   isidentifierr\  )r/  r   r  r  r  r7  
is_keywords          r{   r  zParameter.__init__m
  s   	N'--DJJ 	N 	N 	NLdLLLMMM	N&  zo|<<<@jj!788 oo%%6>>IJJJ$$$ 	!077T

8KLLCC.. 7c>>d122h..00>
 z333>  jj!788 oo%)DJ&&tABBx00D t__K;K)K
 	PT..00 	PAHHNNOOO


s    5c                 X    t          |           | j        | j        f| j        | j        dfS )Nr^  r_  )r~   r\  r]  r^  r_  r  s    r{   
__reduce__zParameter.__reduce__
  s6    T

TZ(!] $ 02 23 	3r}   c                 :    |d         | _         |d         | _        d S )Nr^  r_  re  r/  states     r{   __setstate__zParameter.__setstate__
  s!    j) /r}   c                     | j         S r   )r\  r  s    r{   r   zParameter.name
  
    zr}   c                     | j         S r   )r^  r  s    r{   r  zParameter.default
  s
    }r}   c                     | j         S r   )r_  r  s    r{   r  zParameter.annotation
      r}   c                     | j         S r   )r]  r  s    r{   r  zParameter.kind
  rl  r}   )r   r  r  r  c                    	 |t           u r| j        }|t           u r| j        }|t           u r| j        }|t           u r| j        } t          |           ||||          S )Nr  )r  r\  r]  r_  r^  r~   )r/  r   r  r  r  s        r{   r  zParameter.replace
  si    95==:D5==:D)JemGtDzz$g*MMMMr}   c                    | j         }| j        }| j        t          ur(d                    |t          | j                            }| j        t          ur_| j        t          ur)d                    |t          | j                            }n(d                    |t          | j                            }|t          k    rd|z   }n|t          k    rd|z   }|S )Nz{}: {}z{} = {}z{}={}r  r  )
r  r\  r_  r  r  r&   r^  r  r  r  )r/  r  	formatteds      r{   rZ  zParameter.__str__
  s    yJ	 6)) 	'78H'I'IK KI =&&v--%,,YT]8K8KLL		#NN9d4=6I6IJJ	?""iII\!!y(Ir}   c                 B    d                     | j        j        |           S )Nz	<{} "{}">r  r-  r+  r  s    r{   rj  zParameter.__repr__
  s    !!$."94@@@r}   c                 P    t          | j        | j        | j        | j        f          S r   )hashr   r  r  r  r  s    r{   __hash__zParameter.__hash__
  s!    TY	4?DLIJJJr}   c                     | |u rdS t          |t                    st          S | j        |j        k    o/| j        |j        k    o| j        |j        k    o| j        |j        k    S NT)ru   r   NotImplementedr\  r]  r^  r_  r/  others     r{   __eq__zParameter.__eq__
  sp    5==4%++ 	"!!
ek) 6
ek)6/6  E$55	7r}   N)r+  rp   r%  r)  r  r!  r  r"  r  r$  r  r%  r  r'  r  r  r  rf  rj  r   r   r  r  r  r  r  rZ  rj  rx  r~  rt   r}   r{   r   r   M
  sT       * >I.O4-N+L*KE.4 ) ) ) ) )V3 3 30 0 0   X   X     X    X $% %N N N N N$  ,A A AK K K7 7 7 7 7r}   r   c                   z    e Zd Z	 dZd Zed             Zed             Zed             Zd Z	d Z
d Zd	 Zd
 ZdS )r   )r  
_signature__weakref__c                 "    || _         || _        d S r   )r  r  )r/  r]   r  s      r{   r  zBoundArguments.__init__
  s    "#r}   c                     | j         S r   )r  r  s    r{   r]   zBoundArguments.signature  s
    r}   c                 N   g }| j         j                                        D ]v\  }}|j        t          t
          fv r n[	 | j        |         }|j        t          k    r|                    |           P|	                    |           f# t          $ r Y  nw xY wt          |          S r   )r  r  r   r  r  r  r  r  extendr   rU  r   )r/  r  r  r  r-  s        r{   r  zBoundArguments.args  s    !%!;!A!A!C!C 	% 	%JzlM:::%nZ0 :00KK$$$$ KK$$$$      T{{s   B
BBc                 :   i }d}| j         j                                        D ]w\  }}|s$|j        t          t
          fv rd}n|| j        vrd}+|s.	 | j        |         }|j        t          k    r|                    |           b|||<   h# t          $ r Y tw xY w|S r  )	r  r  r   r  r  r  r  updaterU  )r/  kwargskwargs_startedr  r  r-  s         r{   r  zBoundArguments.kwargs  s    !%!;!A!A!C!C 	- 	-J! !:,!>>>%)NN!77)- ! 
-nZ0 :--MM#&&&& *-F:&&     s   B
BBc                    	 | j         }g }| j        j                                        D ]\  }}	 |                    |||         f           $# t
          $ rT |j        t          ur|j        }n$|j        t          u rd}n|j        t          u ri }nY h|                    ||f           Y w xY wt          |          | _         d S )Nrt   )r  r  r  r   r   rU  r  r  r  r  r  r   )r/  r  new_argumentsr   r  vals         r{   apply_defaultszBoundArguments.apply_defaults;  s    	 N	?5;;== 	2 	2KD%2$$dIdO%<==== 2 2 2=..-CCZ?22CCZ<//CC H$$dC[111112 m,,s   AAB+B+*B+c                     | |u rdS t          |t                    st          S | j        |j        k    o| j        |j        k    S rz  )ru   r   r{  r]   r  r|  s     r{   r~  zBoundArguments.__eq__W  sJ    5==4%00 	"!!%/1 2%/1	3r}   c                 :    |d         | _         |d         | _        d S )Nr  r  r  r  rh  s     r{   rj  zBoundArguments.__setstate___  s    -{+r}   c                      | j         | j        dS )Nr  r  r  s    r{   __getstate__zBoundArguments.__getstate__c  s    "oDNKKKr}   c                     g }| j                                         D ].\  }}|                    d                    ||                     /d                    | j        j        d                    |                    S )Nz{}={!r}z	<{} ({})>r  )r  r   r   r  r-  r+  r:  )r/  r  r-  rz   s       r{   rj  zBoundArguments.__repr__f  sr    ...00 	6 	6JCKK	((e445555!!$."9499T??KKKr}   N)r+  rp   r%  r)  r  r   r]   r  r  r  r~  rj  r  rj  rt   r}   r{   r   r   
  s          ;I$ $ $   X   X,   X:- - -83 3 3, , ,L L LL L L L Lr}   r   c                       e Zd Z	 dZeZeZeZ	dedddZ
edddddd            Zed	             Zed
             ZeeddZd Zd Zd ZdddZd Zd Zd Zd Zd Zd ZdS )r   )_return_annotation_parametersNTr1  c                6   	 |t                      }n|rt                      }t          }d}|D ]}|j        }|j        }	||k     r1d}
|
                    |j        |j                  }
t          |
          ||k    r|}|t          t          fv r$|j        t          u r|rd}
t          |
          nd}|	|v r$d                    |	          }
t          |
          |||	<   nt          d |D                       }t          j        |          | _        || _        d S )NFz7wrong parameter order: {} parameter before {} parameterz-non-default argument follows default argumentTzduplicate parameter name: {!r}c              3   (   K   | ]}|j         |fV  d S r   r  rx   r  s     r{   r   z%Signature.__init__.<locals>.<genexpr>  s)      $Q$QUej%%8$Q$Q$Q$Q$Q$Qr}   )rf   r  r  r   r  rW  r   r  r  r  r   MappingProxyTyper  r  )r/  r  r  r2  r  top_kindseen_defaultr  r  r   r7  s              r{   r  zSignature.__init__  s^   	  ]]FF& &R$+$' ) )E :D :Dh(  "jj)=)-)9; ;(oo-#' 02HIII =F22+ 6'1&0oo 56 ,0Lv~~>EEdKK(oo-#(F4LL?)B %$Q$Qj$Q$Q$QQQ 1&99"3r}   Ffollow_wrappedri   rj   rk   c                .    	 t          || ||||          S )N)r  r  ri   rj   rk   )r  )r   r   r  ri   rj   rk   s         r{   rH  zSignature.from_callable  s2     	B'C>L07QY[ [ [ 	[r}   c                     | j         S r   )r  r  s    r{   r  zSignature.parameters  ro  r}   c                     | j         S r   r  r  s    r{   r  zSignature.return_annotation  s    &&r}   )r  r  c                    	 |t           u r| j                                        }|t           u r| j        } t	          |           ||          S )Nr  )r  r  r  r  r~   )r/  r  r  s      r{   r  zSignature.replace  s_    	
 //11J%% $ 7tDzz*,=? ? ? 	?r}   c                     t          d | j                                        D                       }d | j                                        D             }||| j        fS )Nc              3   :   K   | ]}|j         t          k    |V  d S r   )r  r  r  s     r{   r   z(Signature._hash_basis.<locals>.<genexpr>  s:       = = %
m ; ;  ; ; ; ;= =r}   c                 >    i | ]}|j         t          k    |j        |S rt   )r  r  r   r  s     r{   r|   z)Signature._hash_basis.<locals>.<dictcomp>  s5     H H HE+0:+F+F j%+F+F+Fr}   )r   r  r  r  )r/  r  
kwo_paramss      r{   _hash_basiszSignature._hash_basis  s|     = =$/*@*@*B*B = = = = =H HT_5K5K5M5M H H H
 z4#999r}   c                     |                                  \  }}}t          |                                          }t          |||f          S r   )r  	frozensetr  rw  )r/  r  r  r  s       r{   rx  zSignature.__hash__  sJ    040@0@0B0B-
-z002233
VZ):;<<<r}   c                     | |u rdS t          |t                    st          S |                                 |                                k    S rz  )ru   r   r{  r  r|  s     r{   r~  zSignature.__eq__  sK    5==4%++ 	"!!!!U%6%6%8%888r}   r   c          	         	 i }t          | j                                                  }d}t          |          }	 	 t          |          }	 t          |          }	|	j        t
          t          fv rt          d          d |	j        t          k    r1|g}
|
	                    |           t          |
          ||	j        <   nQ|	j        |v r9|	j        t          k    r)t          d                    |	j                            d |||	j        <   n# t          $ r t          d          d w xY w# t          $ r 	 t          |          }	|	j        t          k    rY n|	j        |v rB|	j        t          k    r-d}|                    |	j                  }t          |          d |	f}Y nn|	j        t
          k    s|	j        t           ur|	f}Y nK|r|	f}Y nDd}|                    |	j                  }t          |          d # t          $ r Y Y n
w xY ww xY wd }t#          j        ||          D ]}	|	j        t
          k    r|	}|	j        t          k    r&|	j        }	 |                    |          }|	j        t          k    r(t          d                    |	j                            |||<   # t(          $ rG |sB|	j        t          k    r2|	j        t           u r$t          d                    |                    d Y w xY w|rJ||||j        <   n=t          d                    t          t          |                                        |                     | |          S )	Nrt   Tztoo many positional argumentsz$multiple values for argument {arg!r})r-  zA{arg!r} parameter is positional only, but was passed as a keywordz$missing a required argument: {arg!r}z*got an unexpected keyword argument {arg!r})r  r  r  rv  r  r  r  r   r  r  r   r   r  r  StopIterationr  r  rw  chainr9  rU  _bound_arguments_cls)r/  r  r  r   r  r  parameters_exarg_valsarg_valr  r  r7  kwargs_paramr  s                 r{   _bindzSignature._bind  s   1	$/002233
::F	4C4x..R4 ,,E zlM%BBB (;= =BFG z_44 #*h///05f	%*-zV++
>N0N0N'BII$)J J 0 01 16:; -4Iej))/ % O O O#$CDD$NOU ! %; %; %;#; ,,E z_44 v-- :)999#@C"%***"<"<C"+C..d:).*4405V0K0K */ # ;-2HM!E"HC"%***"<"<C"+C..d:C %    EE	%;F	4T _]J?? "	0 "	0Ez\))$z_,, J0 **Z00 :!111 $ %B$*FuzF$:$:< < < )0	*%%'  F F F
   FEJ/$A$A49MV4K4K#$J$*FzF$:$:< <AEFF*  	1'/5	,+,,@GG f.. H 0 01 1 1 ((y999sg   D. D D+.
H9G<HA	H%!HH-H<
H
H	H

HJ++AK<;K<c                0    	 |                      ||          S r   r  r/  r  r  s      r{   bindzSignature.bindv  s    	 zz$'''r}   c                4    	 |                      ||d          S )NTr  r  r  s      r{   r  zSignature.bind_partial}  s!    	 zz$z555r}   c                 ~    t          |           t          | j                                                  fd| j        ifS Nr  )r~   r   r  r  r  r  s    r{   rf  zSignature.__reduce__  s?    T

t'..00113%t'>?A 	Ar}   c                      |d         | _         d S r  r  rh  s     r{   rj  zSignature.__setstate__  s    "'(<"=r}   c                 B    d                     | j        j        |           S )Nz<{} {}>ru  r  s    r{   rj  zSignature.__repr__  s     7>>>r}   c                 D   g }d}d}| j                                         D ]}t          |          }|j        }|t          k    rd}n|r|                    d           d}|t          k    rd}n$|t          k    r|r|                    d           d}|                    |           |r|                    d           d                    d	                    |                    }| j
        t          ur,t          | j
                  }|d                    |          z  }|S )NFTr  r  z({})r  z -> {})r  r  rv   r  r  r   r  r  r  r:  r  r  r&   )	r/  r  render_pos_only_separatorrender_kw_only_separatorr  rs  r  renderedannos	            r{   rZ  zSignature.__str__  sC   $)!#' _++-- 	% 	%EE

I:D''',0))* 2 c""",1)&& ,1((&&+C& c""" ,1(MM)$$$$$ 	 MM#==6!2!233!//#D$:;;D---Hr}   r   )r+  rp   r%  r)  r   r  r   r  r  r  r  r  rH  r   r  r  r  r  r  rx  r~  r  r  r  rf  rj  rj  rZ  rt   r}   r{   r   r   m  s       , 6IN)E24V)-24 24 24 24 24h %)4u[ [ [ [ [[     X  ' ' X' %*U ? ? ? ? ?: : := = =
9 9 9 .3 A: A: A: A: A:F( ( (6 6 6A A A
> > >? ? ?+ + + + +r}   r   r  c                B    	 t                               | ||||          S )Nr  )r   rH  )r   r  ri   rj   rk   s        r{   r]   r]     s0    9""3~+26H # V V Vr}   c                     	 dd l } dd l}|                                 }|                    dd           |                    dddd	           |                                }|j        }|                    d
          \  }}}	  |j        |          x}}	no# t          $ rb}
d	                    |t          |
          j        |
          }t          |t          j                   t          j        d           Y d }
~
nd }
~
ww xY w|r,|                    d          }|	}|D ]}t#          ||          }|	j        t          j        v r/t          dt          j                   t          j        d           |j        r?t          d	                    |                     t          d	                    t)          |	                               t          d	                    |	j                             ||	u rlt          d	                    t-          |	j                                       t1          |	d          r't          d	                    |	j                             nF	 t5          |          \  }}t          d	                    |                     n# t          $ r Y nw xY wt          d           d S t          t7          |                     d S )Nrb   r   zCThe object to be analysed. It supports the 'module:qualname' syntax)helpz-dz	--details
store_truez9Display info about the module rather than its source code)actionr  :zFailed to import {} ({}: {}))rv  r  r#  z#Can't get info for builtin modules.r5  z
Target: {}z
Origin: {}z
Cached: {}z
Loader: {}__path__zSubmodule search path: {}zLine: {}r4  )argparserP  ArgumentParseradd_argument
parse_argsr   	partitionimport_moduler   r  r~   r+  printr   stderrexitr&  r   builtin_module_namesdetailsrD   
__cached__r  r^  r   r  r%   rC   )r  rP  parserr  targetmod_name	has_attrsattrsr   r   r  r7  partspart__r  s                   r{   _mainr    s   @OOO$$&&F
9  : : : k,H  J J J D[F!'!1!1#!6!6Hi.y.x888ff   ,33H48II4F479 9 	c
####  %C   	% 	%D#t$$CC#2223#*EEEE| l!!&))***l!!-"7"788999l!!&"344555&==,%%d6+<&=&=>>???vz** K188IIJJJ1'__
F j''//0000    
 	dinns+   B 
D AC==D&J 
J('J(rC  r   )F)r5  )rt   )T)TNNF)
__author____all__r   r  r  collections.abcr   enumimportlib.machineryrP  rw  rh  rM  r  r   r  r  r   r   rp  keywordrc   operatorrd   re   rf   ri   mod_dictCOMPILER_FLAG_NAMESr   r   r   r    r)   rZ   rL   rW   rX   rP   r   rV   rU   rR   r   rT   rO   rI   rH   rS   rN   rJ   r\   rQ   rM   rK   rY   r[   rG   r   r=   r>   r   r"   rA   r`   rF   r'  r1  r5   r#   r6   r@   rD   r*   rq  rt  r?   r   r   NodeVisitorr  r%   r2   r   r   r.   rE   rC   ra   r0   r   r+   r   r8   r   r,   r&   r'   rv   r(   r*  r8  r/   r   r1   r]  r!   rs  rp  r7   r<   _fieldsr  r   rB   r;   r$   r^   r_   r   r  r  r  r  r  r  r-   r   r   r   r   r:   r9   r   r	   r
   r   r4   r3   WrapperDescriptorTyper   r  r   r  r  r  r  r  r   r  r,  r/  r?  r  r  r  r  IntEnumrS  r!  r  r"  r  r$  r  r%  r  r'  r  r   r   r   r]   r  r+  rt   r}   r{   <module>r     sf  @9
a a aH 


 



 



                  				 				 



                     / / / / / / / / 799#))++  DAqHUQYq(   %) p p p p ph0 0 0$ $ $0 0 0A A A(? ? ? 75()) > > > >   75()) > > > >  2 2 2	, 	, 	,- - -- - -3 3 38 8 83 3 3"3 3 3; ; ;3 3 3/ / /. . .29 9 97 7 7( ( (  0( ( (T3 3 3 3
: : : : J{$EFF	p p ph        @0 0 0
  < < <|  &     :, , ,8
 
 
  28 8 8 8 , , , ,^	 	 	 	 	) 	 	 	    3?   >B0 B0 B0H+% +% +%Z " ! ! ! ! ! ! !4 4 4 4 4 4 4 4l	$ 	$ 	$0 0 0*    + + + +6 J{$:;;	8 8 88 jMO OZ< Z< Z<z *Y >
?
?9 9 9      ""9"9 8 8 ? ?	( ( ( (.7 7 7 D D D*: : :x j(LMM14 14 14j Z&STT

- 
- 
- 
- 
-
 
- 
- 
-7 7 7O O O)A )A )A )AV  
 Zj93D&DEE

@ 
@ 
@ 
@ 
@
 
@ 
@ 
@      C C C5 5 5 56 6 6 6 FHH	3 3 34 4 4       '0 - - - -d 
  $  & !  $
 
 
$ "7!3!;!57   $I? I? I? I?X* * *4	# 	# 	#G G G2EA EA EAPL8 L8 L8 L8^< < < <  8<AF\9 \9 \9 \9~+ + + 48,0%)$(&+gP gP gP gP gPT< < < < < < < <A A A A A A A A    T\   " *9 )? )8)6)5[7 [7 [7 [7 [7 [7 [7 [7|L L L L L L L LDM M M M M M M M`
 &*4u V V V V V7 7 7t z	EGGGGG r}   