
    =Og
                       	 d gZ dZdZ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ZddlZddlmZ ddlmZ ddlmZ d	 Zd
 Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z) ej*        dej+                  Z,d Z-d Z.d Z/d Z0 e1ej2                  Z3dSdZ4d Z5d Z6d Z7d Z8i fdZ9 G d  d!e:          Z;d" Z<di fd#Z= G d$ d%          Z> G d& d'e          Z? G d( d)e>          Z@ G d* d+e          ZA G d, d-e>          ZB G d. d/eB          ZCd0 aDd1 ZEd2 ZFd3 ZGd4 ZHd5 ZId6 ZJd7 ZKd8 ZLdTd9ZM eB            ZN eC            ZO e@            ZPdTd:ZQ	 	 dUd<ZR	 	 dVd>ZSdTd?ZTdWdAZU G dB dC          ZV eV            ZW G dD dE          ZXdF ZYdG ZZdXdIZ[dTdJdKdLdMZ\dN Z]dO Z^dP Z_dQ Z`eadRk    r e`             dS dS )YhelpzKa-Ping Yee <ping@lfw.org>z26 February 2001zGuido van Rossum, for an excellent programming language.
Tommy Burnette, the original creator of manpy.
Paul Prescod, for all his work on onlinehelp.
Richard Chamberlain, for the first implementation of textdoc.
    N)deque)Repr)format_exception_onlyc                  H   	 g } g }t           j        D ]}t          j                            |pd          }t          j                            |          }||vrIt          j                            |          r*|                     |           |                    |           | S N.)syspathosabspathnormcaseisdirappend)dirsnormdirsdirnormdirs       /usr/lib64/python3.11/pydoc.pypathdirsr   R   s    KDHx % %goocjS))'""3''(""rw}}S'9'9"KKOOG$$$K    c                     t           j                            | j                  }|d S | j                            d          d d         D ]}t          ||          }t          j        |          sd S |S )Nr	   )	r
   modulesget
__module____qualname__splitgetattrinspectisclass)funcclsnames      r   
_findclassr%   ^   sw    
+//$/
*
*C
{t!'',,SbS1 ! !c4  ?3 tJr   c                 J   t          j        |           rZ| j        j        }| j        }t          j        |          r*t          t          ||d           d          | j        u r|}n~|j        }nut          j        |           r.| j        }t          |           }|t          ||          | urd S n3t          j
        |           rC| j        }| j        }t          j        |          r|j        dz   |z   | j        k    r|}n|j        }nt          | t                    r4| j        }|j        }t          |          }|t          ||          | urd S nt          j        |           st          j        |           ri| j        }| j        }t          ||          | urd S t          j        |           r2t          |dd           }t          |t&                    r||v r||         S nd S |j        D ]7}	 t+          t          ||                    }n# t,          $ r Y -w xY w||c S 8d S )N__func__r	   	__slots__)r    ismethodr'   __name____self__r!   r   	__class__
isfunctionr%   	isbuiltinr   
isinstancepropertyfgetismethoddescriptorisdatadescriptor__objclass__ismemberdescriptordict__mro__
_getowndocAttributeError)objr$   selfr#   r"   slotsbasedocs           r   _finddocr?   h   sd    (|$|OD!! 	!GD$--z::clJJCC.CC		C	 	  |oo;'#t,,C774 8		3		 ||OD!! 	!#d*c.>>>CC.CC	C	"	" x};'#t,,C774 8		#C	(	( 
G,DS,I,I 
|3S((4%c** 	#Cd33E%&& #45==T{"t  	WT40011CC 	 	 	H	?JJJ 4s   .H
HHc                     	 	 t                               | d          }|d S | t          ur1t          |           j        }t	          |t
                    r||k    rd S |S # t          $ r Y d S w xY w)N__doc__)object__getattribute__typerA   r/   strr9   )r:   r>   typedocs      r   r8   r8      s    !
%%c955;4d??3ii'G'3'' GsNNt
   tts   A 8A A 
A,+A,c                     	 t          |           }|)	 t          |           }n# t          t          f$ r Y d S w xY wt	          |t
                    sd S t          j        |          S N)r8   r?   r9   	TypeErrorr/   rE   r    cleandoc)rB   r>   s     r   _getdocrK      s    B
 V

C
{	6""CC	* 	 	 	44	c3 tC   s   $ 99c                     	 t          |           pt          j        |           }|r(t          j        dd|                                          pdS )Nz^ *
 )rK   r    getcommentsresubrstrip)rB   results     r   getdocrS      sF    7V__; 3F ; ;F:bfWb&--//::@b@r   c                 ^   	 |                                                      d          }t          |          dk    r
|d         dfS t          |          dk    r?|d                                         s%|d         d                    |dd                    fS dd                    |          fS )N
   r   rM      )stripr   lenrQ   join)r>   liness     r   splitdocr\      s    HIIKKd##E
5zzQQx|	Uqq!2!2Qx59----tyyr   c                 F    	 | j         }| j        |k    r| j        dz   |z   }|S r   )r*   r   rB   modnamer$   s      r   	classnamer`      s1    J?DG## 3&-Kr   c                     	 d| j         v r:| j                             d          d         }| j        |k    r| j        dz   |z   S |S | j        |k    r| j        S d S )Nr	   r   )r   
rpartitionr   r^   s      r   
parentnamerc      su     
f!!!"--c2215''$s*T11K''$$ ('r   c                     	 t          j        |           pct          j        |           pOt          j        |           p;t          j        |           p't          j        |           pt          j        |            S rH   )r    ismoduler!   	isroutineisframeistracebackiscode)rB   s    r   isdatarj      s    H (( FGOF,C,C F!&))F-4_V-D-DF#F++F/6~f/E/EG Gr   c                     	 |r@|d                              |                     |d                             } |dd          }|@| S )NrV   r   rW   )rZ   r   )textpairss     r   replacern      sP    9
 Qx}}TZZa1122abb	   Kr   c                     	 t          |           |k    rTt          d|dz
  dz            }t          d|dz
  |z
            }| d |         dz   | t          |           |z
  d          z   S | S )Nr      rW   ...)rY   max)rl   maxlenpreposts       r   cramrv      st    M
4yy6!fQh]##1fQhsl##DSDzE!DT4$999Kr   z at 0x[0-9a-f]{6,16}(>+)$c                 :    	 t                               d|           S )Nz\1)_re_stripidrP   rl   s    r   stripidrz      s    H??5$'''r   c                     	 t          j        |           rdS t          j        |           r*t          | dd           }t          j        |          p|d u  S dS )NTr+   F)r    r)   r.   r   re   )fnr;   s     r   _is_bound_methodr}      sg      t >r:t,,$T**<tt|==5r   c                 
   i }t          j        | t           j                  D ]
\  }}d||<   | j        D ]$}|                    t          |                     %|                                D ]}t          | |          ||<   |S NrV   )r    
getmembersrf   	__bases__update
allmethodskeysr   )clmethodskeyvaluer=   s        r   r   r     s    G(W->??  
U ) )z$''((((||~~ ( (r3''Nr   c                     	 g }g }| D ]8} ||          r|                     |           #|                     |           9||fS rH   r   )s	predicateyesnoxs        r   _split_listr     s]     C	B  9Q<< 	JJqMMMMIIaLLLL7Nr   c                 h   	 | dv rdS |                      d          r|                     d          rdS |                      d          rt          |d          rdS |t          ur4| t          v r+t          t          || d           t          j                  rdS || |v S |                      d           S )	N>   rA   __date____file__r*   __path____spec__r(   
__author__
__cached__
__loader__r   __credits____package____version____builtins__r   r   __rV   __fieldsTF)
startswithendswithhasattr
__future___future_feature_namesr/   r   _Feature)r$   allr:   s      r   visiblenamer   !  s    =  H H H qt>t!4!4>QQs Y 7 7 t
*)>!>!>gc4..
0CDD 	5
s{??3''''r   c                    	 g }t          j        |           D ]l\  }}}}t          j        |          r!d}t          |t                    r	|j        d}n|dk    rt          |          rd}|                    ||||f           m|S )Ndata descriptorreadonly propertymethodstatic method)r    classify_class_attrsr3   r/   r0   fsetr}   r   )rB   resultsr$   kindr#   r   s         r   r   r   9  s    _G$+$@$H$H 1 1 tS%#E** 	#$D%** +uz/A*X"25"9"9"DdC/0000Nr   c                     	 t          |dg           	 fdt                    D             n# t          $ r i Y nw xY wfd}|                     |           d S )Nr   c                 <    i | ]\  }}||t                    z
  S  )rY   ).0ir$   fieldss      r   
<dictcomp>z#sort_attributes.<locals>.<dictcomp>L  s)    OOO	DtaFmOOOr   c                 L                         | d         d          | d         fS Nr   )r   )attrfield_orders    r   <lambda>z!sort_attributes.<locals>.<lambda>O  s"    KOODGQ77aA r   r   )r   	enumeraterI   sort)attrsrB   keyfuncr   r   s      @@r   sort_attributesr   F  s    M VY++FOOOOYv=N=NOOO   AAAAG	JJ7Js   2 A Ac                     	 t           j                            |           rHdD ]E}t           j                            t           j                            | d|z                       r dS FdS )N)z.pyz.pyc__init__TF)r   r   r   isfilerZ   )r   exts     r   	ispackager   T  sf    =	w}}T " 	 	Cw~~bgll4c1ABBCC tt5r   c                 z   |                                  }|d d         dk    s|                                s9|                                  }|sn"|d d         dk    %|                                9|                                }|d d         dk    r
|dd          }|d d         dk    r|dd          }|dd          dk    r
|d d         }|                                s+|                                  }|sn|                                +|                    d          d	                                         }nd }|S )
NrV   #   zr"""rp   """r   \r   )readlinerX   r   )filelinerR   s      r   source_synopsisr   \  s4   ==??D
rr(c///}}U rr(c/// ::<<DBQBx6$qrr(4BQBx5ABBx9T#2#Yd**,, 	==??D **,, 	 E""1%++--&Mr   c                 Z   	 t          j        |           j        }|                    | d          \  }}|||k     rn|                     t          t          j        j                            rt          j        j	        }nE|                     t          t          j        j
                            rt          j        j        }nd }|Q	 t          j        |           }n# t          $ r Y d S w xY w|5  t          |          }d d d            n# 1 swxY w Y   n |d|           }t          j                            d| |          }	 t          j                            |          }	n#  Y d S xY wt(          j        d= |	j        r|	j                                        d         nd }||f|| <   |S )NNN__temp__loaderr   )r   statst_mtimer   r   tuple	importlib	machineryBYTECODE_SUFFIXESSourcelessFileLoaderEXTENSION_SUFFIXESExtensionFileLoadertokenizeopenOSErrorr   utilspec_from_file_location
_bootstrap_loadr
   r   rA   
splitlines)
filenamecachemtime
lastupdaterR   
loader_clsr   r   specmodules
             r   synopsisr   m  s   8GH&E8\::JZ%//U9#6#HIIJJ 	",AJJuY%8%KLLMM 	",@JJJ}X..   tt  / /(../ / / / / / / / / / / / / / /  Z
H55F>99*hAG : I ID"-33D99ttJ'7=~OV^..00334F &/hMs0   C 
C+*C+0DDDE' 'E,c                       e Zd Z	 d Zd ZdS )ErrorDuringImportc                 >    || _         |\  | _        | _        | _        d S rH   )r   excr   tb)r;   r   exc_infos      r   r   zErrorDuringImport.__init__  s     (0%$*dgggr   c                 D    | j         j        }d| j        d|d| j        S )Nzproblem in  - z: )r   r*   r   r   )r;   r   s     r   __str__zErrorDuringImport.__str__  s)    h+/===###tzzJJr   N)r*   r   r   r   r   r   r   r   r   r     s:        O1 1 1K K K K Kr   r   c                    	 t           j        j        }t          | d          5 }||                    t          |                    k    }d d d            n# 1 swxY w Y   t          j                            |           }t          j        	                    |          \  }}|r!t           j
                            ||           }n t           j
                            ||           }t           j                            || |          }	 t           j                            |          S #  t!          | t#          j                              xY w)Nrbr   )r   r   MAGIC_NUMBERr   readrY   r   r   basenamesplitext_bootstrap_externalr   SourceFileLoaderr   r   r   r   r
   r   )	r   magicr   is_bytecoder   r$   r   r   r   s	            r   
importfiler    sM   FN'E	dD		 5TtyyU4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5w%%H  **ID# L.CCD$OO.??dKK>11$V1LLD6#))$///6clnn555s   'AAAD' '#E
c                     	 	 |r_ t           j        v rQ t           j        vrC fdt           j        D             } g|z   D ]$}t           j        |         ||<   t           j        |= %t                     }n#  t          j                    x\  }}}}	 t           j        v r%t          t           j                  j        |	          |t          u rt          |j        |	          t          |t                    r|j         k    rY d S t           t          j                              xY w                     d          dd          D ]$}
t          ||
          }# t          $ r Y  d S w xY w|S )Nc                 D    g | ]}|                     d z             |S )r	   )r   )r   mr   s     r   
<listcomp>zsafeimport.<locals>.<listcomp>  s.    KKKa!,,tcz2J2JKKKKr   r	   rV   )r
   r   builtin_module_names
__import__r   r   r   SyntaxErrorr   
issubclassImportErrorr$   r   r   r9   )r   	forceloadr   subsr   r   r   r   r   infoparts   `          r   
safeimportr    s   O :
  	),,3333 LKKK3;KKK 6D= ) )C!$S!1E#JC((D!!:"%,..0eR43;#CK$5$>EEEK#END999[)) 	:ejD.@.@44 $D#,..999

3# + +fd++VV***dddd*Ms%   A0A5 5BD%!D%E
E'&E'c                       e Zd Zej                            ddej        dd         z            Zd	dZ	d	dZ
e
xZxZxZxZxZZ ej        d          fdZdS )
Doc
PYTHONDOCSz%https://docs.python.org/%d.%d/libraryNrW   c                 :   	 ||f|z   }	 t          j        |          r
 | j        | S t          j        |          r
 | j        | S t          j        |          r
 | j        | S n# t          $ r Y nw xY wt          j        |          r
 | j	        | S  | j
        | S rH   )r    re   	docmoduler!   docclassrf   
docroutiner9   r3   docdatadocother)r;   rB   r$   argss       r   documentzDoc.document  s    3~$
	''E0E)Ev&&C}t}d/C(C ((G$1G*GG 	 	 	D	#F++GLDL$4G-Gt}d##s   A% A% A% %
A21A2c                 x    d|odt          |          z   dt          |          j        }t          |          )Nz!don't know how to document object z	 of type )reprrD   r*   rI   )r;   rB   r$   r  messages        r   failzDoc.fail  sA    9%S4::%%%tF||'<'<>   r   stdlibc                    	 	 t          j        |          }n# t          $ r d}Y nw xY wt          j                            d| j                  }t          j                            |          }t          |t          t                              r|j        dv sH|                    |          r|                    t          j                            |d                    s|j        dvr|                    d          rAd                    |                    d          |j                                                  }n=t          j                            ||j                                        d	z             }nd }|S )
N
(built-in)r  )
errno
exceptionsgcimpmarshalposixsignalr
   _thread	zipimportzsite-packages)z	xml.etreeztest.test_pydoc.pydoc_mod)zhttp://zhttps://z
{}/{}.html/.html)r    
getabsfilerI   r   environr   r  r   r   r/   rD   r*   r   rZ   formatrQ   lower)r;   rB   basedirr   doclocs        r   	getdocloczDoc.getdocloc  sc   8	 %f--DD 	  	  	 DDD	  do>>'""7++vtBxx(( 	_ !9 9 9 oog&&9 //"',,w"H"HII	9
 O#MMM  !899 Q%,,V]]3-?-?AVAVAXAXYYffo.C.C.E.E.OPPFs    ''rH   )r*   r   r   r   r0  r   r
   version_infor  r  r   r  r  r  r  docpropertyr  	sysconfigget_pathr5  r   r   r   r  r    s         G"%"22A2"6!78 8J$ $ $ $ ! ! ! ! LPOIOO:OO;(:	(:8(D(D      r   r  c                   <    e Zd Z	 d Zd Zd Zd Zd ZeZd Z	eZ
dS )HTMLReprc                 t    t          j        |            dx| _        | _        d| _        dx| _        | _        d S N   
   d   r   r   maxlistmaxtuplemaxdict	maxstringmaxotherr;   s    r   r   zHTMLRepr.__init__  9    d'))t}),,r   c           	      ,    t          |dddddd          S )N&z&amp;<z&lt;>z&gt;)rn   r;   rl   s     r   escapezHTMLRepr.escape"  s    tS'3VDDDr   c                 ,    t          j        | |          S rH   )r   r  r;   rB   s     r   r  zHTMLRepr.repr%  s    yv&&&r   c           	         t          t          |          d          rfdd                    t          |          j                                                  z   }t          | |          r t          | |          ||          S |                     t          t          t          |                    | j
                            S Nr*   repr_r   )r   rD   rZ   r*   r   r   rN  rv   rz   r  rF  r;   r   level
methodnames       r   repr1zHTMLRepr.repr1(  s    477J'' 	; 388DGG,<,B,B,D,D#E#EEJtZ(( ;0wtZ00E:::{{4Q 0 0$-@@AAAr   c                    t          || j                  }t          |          }d|v r=dt          |dd          vr*d|d         z   |                     |          z   |d         z   S t          j        dd|                     |                    S )Nr   \\rM   rr   z-((\\[\\abfnrtv\'"]|\\[0-9]..|\\x..|\\u....)+)z<span class="repr">\1</span>)rv   rE  r  rn   rN  rO   rP   r;   r   rU  testtestreprs        r   repr_stringzHTMLRepr.repr_string/  s    At~&&::4<<D%(D(DDD !$t{{4'8'888A;FFvF5kk(++- - 	-r   c           	          	 |                      t          t          t          |                    | j                            S #  |                      d|j        j        z            cY S xY wNz<%s instance>)rN  rv   rz   r  rE  r,   r*   r;   r   rU  s      r   repr_instancezHTMLRepr.repr_instance<  s`    	G;;tGDGG$4$4dnEEFFF	G;;1EEFFFFFs   AA $A*N)r*   r   r   r   rN  r  rW  r^  repr_strrb  repr_unicoder   r   r   r;  r;    s        L- - -E E E' ' 'B B B	- 	- 	- HG G G LLLr   r;  c                       e Zd Z	  e            Zej        Zej        Zd ZddZ	 	 ddZ	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zdi i i fdZddZddZddi i fdZd Zddi i i ddfdZddZeZddZddZdS ) HTMLDocc                     d|d|dS )NzN<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Python: z</title>
</head><body>
z
</body></html>r   )r;   titlecontentss      r   pagezHTMLDoc.pageM  s    " UUHHH& 	&r   rM   c                     d|d|pddS )NzU
<table class="heading">
<tr class="heading-text decor">
<td class="title">&nbsp;<br>z</td>
<td class="extra">&nbsp;z</td></tr></table>
    r   )r;   rh  extrass      r   headingzHTMLDoc.headingY  s%    $ 55&$H$$& 	&r      Nrl  c                     	 |dd|z  z   dz   }d|d|d}|r|d|d|d	|d
|d|dz   }n|d|d|d|dz   }|d|z  z   S )Nz<span class="code">rl  z</span>z-<p>
<table class="section">
<tr class="decor zD-decor heading-text">
<td class="section-title" colspan=3>&nbsp;<br>z</td></tr>
    z
<tr><td class="decor z-decor" rowspan=2>z</td>
<td class="decor z-decor" colspan=2>z</td></tr>
<tr><td></td>z-decor">z	</td><td>z.
<td class="singlecolumn">%s</td></tr></table>r   )	r;   rh  r#   ri  widthprelude
marginaliagaprR   s	            r   sectionzHTMLDoc.sectionb  s    ..E1AAIMJ
 33	
  	NV cc:::sssGGGSSS: :FF
 V8;ZZZN NF IHTTTr   c                 *    	 d|z  } | j         |g|R  S )Nz&<strong class="bigsection">%s</strong>)rv  )r;   rh  r  s      r   
bigsectionzHTMLDoc.bigsectionw  s)    285@t|E)D))))r   c                     	 |                      |                                          }t          |dddddddd	  	        S )N

z
 
r  rl  rU   <br>
)rN  
expandtabsrn   rM  s     r   	preformatzHTMLDoc.preformat|  sE    /{{4??,,--tVWfg (D(< < 	<r   c                     	 d}t          |          dz   dz  }t          d          D ]R}|dz   }t          ||z  ||z  |z             D ],}|t          |          k     r| |||                   z   dz   }-|dz   }Sd|z  S )NrM   rp   r   z<td class="multicolumn">r{  rq  z<table><tr>%s</tr></table>)rY   range)r;   listr1  rR   rowscolr   s          r   multicolumnzHTMLDoc.multicolumn  s    >D		A!#88 	& 	&C88F48T#Xd]33 A As4yy==#ffT!Woo5@Fg%FF+f44r   c                     d|z  S )Nz<span class="grey">%s</span>r   rM  s     r   greyzHTMLDoc.grey  s    !?$!FFr   c                 <    	 |D ]}||v rd||         d|dc S |S )N	<a href=""></a>r   )r;   r$   dictsr6   s       r   namelinkzHTMLDoc.namelink  sH    H 	B 	BDt|||04T


DDDAAAA r   c           	          	 |j         t          j                            |j                  }}t          ||          r1t          ||          |u rd|j         d|dt          ||          dS t          ||          S )Nr  .html#r  r  )r*   r
   r   r   r   r   r   r`   )r;   rB   r_   r$   r   s        r   	classlinkzHTMLDoc.classlink  s    &8I(J(Jf64   	CWVT%:%:f%D%D%Dy'A'A'A'AC C)))r   c                    	 d }|j         t          j                            |j                  }}t          ||          rnt          ||          |u r\d|j        v r>|j                            d          d         }|j        |k    r|j         d|}nd|z  }n|j        |k    r
d|j         z  }|rd|dt          ||          dS t          ||          S )	Nr	   r   r  z#%s%s.htmlr  r  r  )
r*   r
   r   r   r   r   r   r   rb   rc   )r;   rB   r_   linkr$   r   s         r   
parentlinkzHTMLDoc.parentlink  s    <8I(J(Jf64   		7WVT%:%:f%D%Df)))*55c::1=$//+1???DDADD 4<DD$//$v6D 	/ 	/,0DD*VW2M2M2M2MNNfg...r   c                 (    d|j         d|j         dS Nr  z.html">r  )r*   rP  s     r   
modulelinkzHTMLDoc.modulelink  s    '-3___foooNNr   c                     	 |\  }}}}|r|                      |          S |r	|d|d}nd|z  }|rd|z  }n|}d|d|dS )Nr	   r.  r  z"<strong>%s</strong>&nbsp;(package)r  r  r  )r  )r;   
modpkginfor$   r   r   shadowedurlrl   s           r   
modpkglinkzHTMLDoc.modpkglink  s~    I*4'dIx 	#99T??" 	#"&$$-CCd"C 	7$>DDD(+TTT22r   c                     d|d|dS )Nz<a href="file:r  r  r   )r;   r  r   s      r   filelinkzHTMLDoc.filelink  s    )-0SS$$$77r   c                    	 |p| j         }g }d}t          j        d          }	 |                    ||          }	|	sn|	                                \  }
}|                     ||||
                              |	                                \  }}}}}}|r= ||                              dd          }|                    d|d|d           n3|r8d	t          |          z  }|                    d|d ||          d           n|r8d
t          |          z  }|                    d|d ||          d           n|rW|||dz            dk    r-|                    d| 	                    ||          z              n|                    d|z             nf|||dz            dk    r,|                    | 	                    ||||                     n)|                    | 	                    ||                     |}|                     |||d                               d
                    |          S )Nr   zJ\b((http|https|ftp)://\S+[\w/]|RFC[- ]?(\d+)|PEP[- ]?(\d+)|(self\.)?(\w+))T"z&quot;r  r  r  z(https://www.rfc-editor.org/rfc/rfc%d.txtz!https://peps.python.org/pep-%04d/rV   (zself.zself.<strong>%s</strong>rM   )rN  rO   compilesearchspanr   groupsrn   intr  rZ   )r;   rl   rN  funcsclassesr   r   herepatternmatchstartendr   schemerfcpepselfdotr$   r  s                      r   markupzHTMLDoc.markup  sy   	F&4;* 3 4 4	NN4..E%JE3NN66$tEz"23344438<<>>0Cc7D =fSkk))#x88SSSABBBB =@3s88KVVC[[[[IJJJJ =9CHHDVVC[[[[IJJJJ 
= CE	?c))NN7T]]4-I-I#IJJJJNN#=#DEEEEc#a%iC''t}}T7E7KKLLLLt}}T7;;<<<D7	8 	vvd455k**+++wwwr   c                    	 d}|D ]}t          |          t          d          u r|\  }}|dz   }||                     ||          z   }|rU||fk    rNg }|D ]+}	|                    |                     |	|                     ,|dz   d                    |          z   dz   }|dz   }t          |          t          g           u r|d|                     |||          z  z   }d	|z  S )
NrM   r   z<dt class="heading-text">r  , )z
</dt>z<dd>
%s</dd>
z<dl>
%s</dl>
)rD   r  r   rZ   
formattree)
r;   treer_   parentrR   entrycbasesparentsr=   s
             r   r  zHTMLDoc.formattree  s!   O 	' 	'EE{{d2hh&& 5"==$..G"<"<< EUvi// G % F Ft~~dG'D'DEEEE#c\DIIg,>,>>DF)+eR(("3doo7A7' 7' #' ' 6))r   c           
          	 |j         }	 |j        }n# t          $ r d }Y nw xY w|                    d          }g }t	          t          |          dz
            D ]B}|                    dd                    |d |dz                      d||         d           Cd                    ||dd          z             }	d|	z  }
	 t          j	        |          }t          j                            |          }                     ||          }n# t          $ r d}Y nw xY wg }t          |d	          rwt!          |j                  }|d d
         dk    r*|dd          dk    r|d
d                                         }|                    d                     |          z             t          |d          r:|                                         t!          |j                                       |r|
dd                    |          z  z   }
                     |          }|dt-                      z  }nd}                     |
d|z   |z             }t          j        |t          j                  }g i }}t          j        |t          j                  D ]T\  }}|t          j        |          p||u r5t9          |||          r$|                    ||f           d|z   x||<   ||<   U|D ]z\  }}|j        D ]m}|j         |j        }}t>          j         !                    |          }||k    r8|r6t          ||          r&tE          ||          |u r||vr|dz   |z   x||<   ||<   n{g i }}t          j        |t          j#                  D ]\  }}|*t          j$        |          st          j        |          |u rOt9          |||          r>|                    ||f           d|z   ||<   t          j%        |          r||         ||<   g }t          j        |tL                    D ]-\  }}t9          |||          r|                    ||f           . '                    tQ          |           j)        ||          }|od|z  }|d|z  z   }t          |d          rg }tU          j+        |j,                  D ]\  }}} |                    ||| df            |-                                  .                    | j/                  }!| 0                    dd|!          z   }n5|r3 .                    | fd          }!| 0                    dd|!          z   }|rd |D             }" 1                    t          j2        |"d          |          g}!|D ]1\  }}|!                     3                    |||||                     2| 0                    d d!d"                    |!                    z   }|rcg }!|D ]1\  }}|!                     3                    |||||                     2| 0                    d#d$d"                    |!                    z   }|r`g }!|D ].\  }}|!                     3                    ||                     /| 0                    d%d&d'                    |!                    z   }t          |d(          rG '                    t!          |j4                   j)                  }!| 0                    d)d*|!          z   }t          |d+          rG '                    t!          |j5                   j)                  }!| 0                    d,d-|!          z   }|S ).Nr	   rV   r  z.html" class="white">r  r   !<strong class="title">%s</strong>r#  r      $Revision: $z
version %sr   z (%s)r  z-<br><a href="%(docloc)s">Module Reference</a>rM   z<a href=".">index</a><br>r   r  z#-z<span class="code">%s</span>z
<p>%s</p>
r   r   zPackage Contentszpkg-contentc                 :                         | d                   S r   )r  )tr;   s    r   r   z#HTMLDoc.docmodule.<locals>.<lambda>[  s    4??1Q4#8#8 r   Modulesc                     g | ]\  }}|S r   r   r   r   r   s      r   r  z%HTMLDoc.docmodule.<locals>.<listcomp>`  s    ;;;<C;;;r   Classesindexr  	Functions	functionsDatadatar{  r   Authorauthorr   Creditscredits)6r*   __all__r9   r   r  rY   r   rZ   r    r/  urllibparsequoter  rI   r   rE   r   rX   rN  r   r5  localsrn  r   re   r!   	getmoduler   r   r   r
   r   r   r   rf   r.   r-   rj   r  rS   r}  pkgutiliter_modulesr   r   r  r  rx  r  getclasstreer  r   r   )#r;   rB   r$   modignoredr   partslinksr   
linkednameheadr   r  r  r  versionr4  rR   r   r  cdictr   r   r=   r_   r   r  fdictr  r>   modpkgsimporterispkgri  	classlists#   `                                  r   r  zHTMLDoc.docmodule  s$   =	.CC 	 	 	CCC	

3s5zz!|$$ 	3 	3ALLL%1+&&&&a23 3 3 3 XXeeBCCj011
2Z?	$%f--D,$$T**C}}S$//HH 	$ 	$ 	$#HHH	$6=)) 	=&,--Gss|111gbcclc6I6I!"R%...00KKt{{7';';;<<<6:&& 	;KKC$8$899::: 	4'DIIdOO33D''DvxxOFFFd$?($JV$STT$VW-=>>R!,VW_EE 	: 	:JC"5))3V>>sC00 :NNC<00003c	9E#Ju! 	P 	PJC P P#}doW11d??v?'&#2F2F?vs++t33"e||7>7IC7OOE#JtP 2u!,VW5FGG 	L 	LJC!%((  ,3,=e,D,D,N,NsC00 LLL#u...!%E#J)%00Ks%,!,VV<< 	* 	*JC3V,, *S%L)))kk&..$.%GG:4s:-#--6:&& 	4G,3,@,Q,Q : :('5ua89999LLNNN''AAHdoo"M8= = =FF 	4''8888: :Hdoo=(4 4 4F  	8;;7;;;I 4Y B BDIIKH% O O
UeS$u M MNNNNdoo7CHHX$6$68 8 8F 	>H# O O
UeS$u M MNNNNdoo[#((8*<*<> > >F 	9H" ; ;
UeS 9 9::::dooh 7 79 9 9F6<(( 	L{{3v'8#9#94>JJHdooh(KKKF6=)) 	N{{3v'9#:#:DNKKHdooiHMMMFs    ""A	D DDc                 ,    ! 	 j         }|p|}j        }g }	|	j          G  fdd          }
 |
            t          t	          j                            }t          |          dk    rV                                   d           |D ])}  d                     |j	                  z             *  d             fd}  fd}  fd	}fd
t                    D             }i |D ]O\  }}}}d|z   dz   |z   x|<   }	 t          |          }n# t          $ r Y nw xY w	 ||<   @# t          $ r Y Lw xY w|r|r|                                !n|d         d         !t          |!fd          \  }}t           j        ur!t           j        u r|}\!u rd}nd                     !j	                  z  }|dz  }t%          |            |d|z  |d           } |d|z  |d           } |d|z  |d           } |d|z  |d           } |d|z  |d           } |d|z  |d           }|}|d                    |	          }	||k    r
d|d |d!}nd"|d#|d$|d%}|rPg }|D ]0}|                                         |j	                             1|d&d'                    |          z  z   }d}	 t	          j                  }n# t*          t          f$ r d }Y nw xY w|r2t-          |          }|r!|d(k    r|                     |          z   d)z   }t1                    }|r||pdz   }                     | j                  }|od*|z  }                     |d+|	d,|          S )-Nc                        e Zd Zd Z fdZdS )(HTMLDoc.docclass.<locals>.HorizontalRulec                     d| _         d S r   needonerG  s    r   r   z1HTMLDoc.docclass.<locals>.HorizontalRule.__init__       r   c                 :    | j         r d           d| _         d S )Nz<hr>
rV   r  r;   pushs    r   maybez.HTMLDoc.docclass.<locals>.HorizontalRule.maybe  %    < #DNNN r   Nr*   r   r   r   r  r  s   r   HorizontalRuler    =        ! ! !! ! ! ! ! ! !r   r  rW   z&<dl><dt>Method resolution order:</dt>
z<dd>%s</dd>
</dl>
c                 h   t          ||          \  }}|r
                                  |            |D ]y\  }}}}	 t          |          }                     ||	|                     n0# t          $ r#                      ||                     Y nw xY w d           z|S )NrU   r   r  r   r  	Exceptionr  )msgr   r   okr$   r   homeclsr   r  r  hrmdictr  rB   r  r;   s           r   spillzHTMLDoc.docclass.<locals>.spill  s   #E955IB 


S			24 
 
.D$Q ' 5 5 T]]5$(-wvwP P Q Q Q Q % = = = T\\%s;;<<<<<= DJJJJLs    A66*B#"B#c                     t          ||          \  }}|rI                                  
|            |D ]'\  }}}} 
                    ||	                     (|S rH   r   r  r  r  r   r   r  r$   r   r  r   r  r  r  r;   s           r   spilldescriptorsz*HTMLDoc.docclass.<locals>.spilldescriptors  x    #E955IB 9


S			24 9 9.D$DeT3778888Lr   c                    t          ||          \  }}|r                                  |            |D ]\  }}}}                    t          |          |          }t	          |          }	|	s d|z             nA                    t	          |          j        
          }	d|	z  }	 d||	d            d           |S )Nz<dl><dt>%s</dl>
z <dd><span class="code">%s</span><dl><dt>r  rU   )r   r  r  r   rS   r  r}  )r  r   r   r  r$   r   r  r   r=   r>   r  r  r  r  r  rB   r  r;   s             r   	spilldataz#HTMLDoc.docclass.<locals>.spilldata  s    #E955IB 


S			24 
 
.D$==)>)>cJJD --C B0478888"kk&--*/%A A@3FddCCC@AAADJJJJLr   c                 H    g | ]\  }}}}t          |           ||||fS )r:   r   r   r$   r   r#   r   rB   s        r   r  z$HTMLDoc.docclass.<locals>.<listcomp>  L     3 3 3+T4e&1113$c5) 3 3 3r   r   -r   c                     | d         u S NrW   r   r  	thisclasss    r   r   z"HTMLDoc.docclass.<locals>.<lambda>      AaDI<M r   defined hereinherited from %sz:<br>
z
Methods %sc                     | d         dk    S NrV   r   r   r  s    r   r   z"HTMLDoc.docclass.<locals>.<lambda>      AaDH$4 r   zClass methods %sc                     | d         dk    S NrV   zclass methodr   r  s    r   r   z"HTMLDoc.docclass.<locals>.<lambda>      AaDN$: r   zStatic methods %sc                     | d         dk    S NrV   r   r   r  s    r   r   z"HTMLDoc.docclass.<locals>.<lambda>      AaDO$; r   zReadonly properties %sc                     | d         dk    S NrV   r   r   r  s    r   r   z"HTMLDoc.docclass.<locals>.<lambda>      qt7J/J r   zData descriptors %sc                     | d         dk    S NrV   r   r   r  s    r   r   z"HTMLDoc.docclass.<locals>.<lambda>      qt7H/H r   zData and other attributes %sc                     | d         dk    S NrV   r  r   r  s    r   r   z"HTMLDoc.docclass.<locals>.<lambda>      ! r   rM   	<a name="z">class <strong></strong></a>z<strong>z</strong> = <a name="z">class r  (%s)r  ()rz  z&<span class="code">%s<br>&nbsp;</span>rh  rp   )r*   r   r   r   r    getmrorY   r  r  r   r   r   r  rI   popleftr   builtinsrB   r   rZ   	signature
ValueErrorrE   rN  rS   r  r}  rv  )"r;   rB   r$   r  r  r  r  realnamer  ri  r  mror=   r  r  r  r   r   r   r  r   anchor	inheritedtagrh  r  declr.  argspecr>   r  r  r  r  s"   `` ```                        @@@@r   r  zHTMLDoc.docclass|  s   <?x 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ^ GN6**++s88a<<HHJJJD:;;; J J_t~~d6<6G(I (I I J J J JDOOO	 	 	 	 	 	 	 	 	 	 	 	$	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	$3 3 3 3/CF/K/K3 3 3 ). 	 	%Cw"%*s"2S"88E#J--      &e     !	 (KKMM		!!HQK	*52M2M2M2MNNE9X_,,ho1M1M!f$$$)DNN9;A;L-N -N N9CE6*** E,,e446 6EE,s2E::< <EE-3U;;= =E$$%=%CU%J%JL LE$$%:S%@%%H%HJ JEI<sBE668 8E EC  !	F 778$$8hhh EE 
 dddHHH&E 	8G H Ht~~dF4EFFGGGGFTYYw%7%777E	)&11III& 	 	 	III	 	<)nnG <7d??dkk'222V;Vnn 	%#)$Ckk#t~uguEED>D||E7Ha===s6    D11
D>=D>E
EEK3 3L	L	c                 Z    	 |                      d|                     |          z             S N=)r  r  rP  s     r   formatvaluezHTMLDoc.formatvalue  s(    7yytyy000111r   c	                    	 |j         }	|p|	}||}|dn|j         dz   |z   }
d}d}d }t          |          rj|j        }||u rt          |dd           }nt	          j        |          rd|                     ||          z  }nd|                     |j        |          z  }n|t	          j        |          st	          j	        |          rR	 |j
        }|d|                     ||          z  }n0||urd|                     ||          z   }n# t          $ r Y nw xY w|}t	          j        |          rE|C|j        |j        k    s|j        |j        d	z   |	z   k    r|                     ||          }|rd
|z  }t	          j        |          st	          j        |          rd}nd}||	k    r
d|
d|	d}nU|Ft	          j        ||	g           |u r.d|j         dz   |	z   d|	d}d}|                    d          rd}n|	}d|
d|d|}d }t	          j        |          r\	 t	          j        |          }n# t,          t.          f$ r d }Y nw xY w|r+t1          |          }|	dk    rd|z  }|j        s
|dd         }|sd}||z   |                     |          z   |o|                     d|z            z   }|rd|z  S |                     t;          |          | j        |||          }|od|z  }d|d|dS )NrM   r  Fr'    class method of %s method of %s instance unbound %s method from r	    from %sasync r'  z
"><strong>r(  z
<a href="#r  r  Tz</strong></a> = <lambda>z$<strong>%s</strong> <em>lambda</em> rV   r   (...)z$<span class="heading-text">%s</span>z<dl><dt>%s</dt></dl>
z%<dd><span class="code">%s</span></dd>r  z</dt>r  )r*   r}   r+   r   r    r!   r  r,   r2   ismethodwrapperr4   r9   r-   r   r   r  iscoroutinefunctionisasyncgenfunctiongetattr_staticr   rf   r.  r/  rI   rE   __annotations__rN  r  r  rS   r}  )r;   rB   r$   r  r  r  r   r   r  r0  r2  noteskipdocsimfuncimselfobjclasspnameasyncqualifierrh  reallinkr6  r.  r5  r>   s                           r   r  zHTMLDoc.docroutine"  s   I?x?G
""s:TAF## 	_F|| T::(( +,t~~fc/J/JJ/$..$c3+ 3+ +(00 	%f--	D!. :/$..32O2OODDW,,#dnnXs&C&CCD "    Ff%% 	*'*=!3337#7##=#HHHOOFC00E *!E)'// 	 *622	 %NNN8>DffhhhOEE&r8R88FBBBK#%000(((<??8,, D#hh(EV$$ 	0!#-f55			* ! ! ! 			! 0i..z))BTIE "1 0")!B$- 	G%G(<(<< AHyy?$FGGI  	<+d22++vwI ICGACGCC15sss;;s$   
D 
DDH4 4I
	I
c                     	 g }|j         }|r |d|z             |                     t          |          | j                  }|r |d|z              |d           d                    |          S )Nz!<dl><dt><strong>%s</strong></dt>
z&<dd><span class="code">%s</span></dd>
r  rM   )r   r  rS   r}  rZ   	r;   rB   r$   r  r   r  r   r  r>   s	            r   r  zHTMLDoc.docdata{  s    ?~ 	>D5<===kk&..$.99 	BD:S@AAAYwwwr   c                 F    	 |rd|z  pd}||                      |          z   S )Nz<strong>%s</strong> = rM   r  )r;   rB   r$   r  r  lhss         r   r  zHTMLDoc.docother  s1    ;6/$6<"TYYv&&&&r   c                 H   	 g }|i }t          j        |g          D ]@\  }}}t          d |D                       r |                    |d|||v f           d||<   A|                                 |                     || j                  }|                     |d|          S )Nc              3   P   K   | ]!}d t          |          cxk    odk    nc V  "dS )i   i  N)ordr   chs     r   	<genexpr>z HTMLDoc.index.<locals>.<genexpr>  sD      @@RFc"gg////////@@@@@@r   rM   rV   r  )r  r  anyr   r   r  r  rx  )r;   r   r  r  r  r$   r  ri  s           r   r  zHTMLDoc.index  s    @X%,%93%%@%@ 	 	!HdE@@4@@@@@ NND"eTX-=>???HTNN##GT_==sGX666r   rM   )ro  rM   Nrl  rH   r   NNN)r*   r   r   r;  _repr_instancer  rN  rj  rn  rv  rx  r}  r  r  r  r  r  r  r  r  r  r  r  r  r:  r  r  r7  r  r  r   r   r   rf  rf  D  s       1 XZZND"F
& 
& 
&& & & & 3419U U U U** * *
< < <
5 
5 
5 GFF  * * */ / /&O O O3 3 38 8 8 #'b"b '  '  '  ' V* * * *&s s s sj %)d"b `> `> `> `>D2 2 2 '+RdW< W< W< W<r        K' ' ' '
7 7 7 7 7 7r   rf  c                   ,    e Zd Z	 d Zd Zd ZeZd ZdS )TextReprc                 t    t          j        |            dx| _        | _        d| _        dx| _        | _        d S r=  rA  rG  s    r   r   zTextRepr.__init__  rH  r   c                 f   t          t          |          d          rfdd                    t          |          j                                                  z   }t          | |          r t          | |          ||          S t          t          t          |                    | j	                  S rR  )
r   rD   rZ   r*   r   r   rv   rz   r  rF  rT  s       r   rW  zTextRepr.repr1  s    477J'' 	; 388DGG,<,B,B,D,D#E#EEJtZ(( ;0wtZ00E:::GDGG$$dm444r   c                     t          || j                  }t          |          }d|v r*dt          |dd          vrd|d         z   |z   |d         z   S |S )Nr   rY  rM   rZ  r   )rv   rE  r  rn   r[  s        r   r^  zTextRepr.repr_string  sa    At~&&::4<<D%(D(DDD !$t+hqk99r   c                     	 t          t          t          |                    | j                  S #  d|j        j        z  cY S xY wr`  )rv   rz   r  rE  r,   r*   ra  s      r   rb  zTextRepr.repr_instance  sF    	:Q(($.999	:"Q[%99999s	   .1 AN)r*   r   r   r   rW  r^  rc  rb  r   r   r   ra  ra    sZ        K- - -5 5 5   H: : : : :r   ra  c                       e Zd Z	  e            Zej        Zd ZddZd ZddZ	ddZ
dd	Zd
 ZddZddZeZdddddZdS )TextDocc                 B    	 d                     d |D                       S )NrM   c              3   &   K   | ]}|d z   |z   V  dS )Nr   rY  s     r   r[  zTextDoc.bold.<locals>.<genexpr>  s*      55"rDy2~555555r   )rZ   rM  s     r   boldzTextDoc.bold  s&    6ww55555555r       c                     	 |sdS fd|                     d          D             }|r|d                                         |d<   d                    |          S )NrM   c                     g | ]}|z   S r   r   )r   r   prefixs     r   r  z"TextDoc.indent.<locals>.<listcomp>  s    <<<4$<<<r   rU   r   )r   rQ   rZ   )r;   rl   ro  r[   s     ` r   indentzTextDoc.indent  se    DBB<<<<4::d+;+;<<<0eBi..00%)yyr   c                     	 |                      |                                          }|                     |          dz   |z   dz   S )NrU   rz  )rp  rQ   rk  )r;   rh  ri  clean_contentss       r   rv  zTextDoc.section  sC    4X..5577yy$&7&@@r   NrM   c           	      r   	 d}|D ]}t          |          t          d          u rS|\  }}||z   t          |          z   }|r0||fk    r)fd|D             }	|dd                    |	          z  z   }|dz   }st          |          t          g           u r||                     |||dz             z   }|S )NrM   r   c              3   8   K   | ]}t          |          V  d S rH   r`   )r   r  r_   s     r   r[  z%TextDoc.formattree.<locals>.<genexpr>  s-      DDyG44DDDDDDr   r)  r  rU   rl  )rD   r`   rZ   r  )
r;   r  r_   r  ro  rR   r  r  r  r  s
     `       r   r  zTextDoc.formattree  s    P 
	8 
	8EE{{d2hh&& 5&9Q+@+@@ BUvi//DDDDeDDDG#ftyy/A/A&AAF$eR(($//7Av#8 #8 8r   c           	         	 |j         }t          t          |                    \  }}|                     d||od|z   z             }t	          |dd           }|                     |          }	|	||                     d|	dz             z   }|r||                     d|          z   }g }
t          j        |t          j                  D ]G\  }}|t          j	        |          p||u r(t          |||          r|
                    ||f           Hg }t          j        |t          j                  D ]Y\  }}|*t          j        |          st          j	        |          |u r(t          |||          r|                    ||f           Zg }t          j        |t                    D ]-\  }}t          |||          r|                    ||f           .g }t                      }t!          |d          rt#          j        |j                  D ]K\  }}}|                    |           |r|                    |dz              6|                    |           L|                                 ||                     d	d
                    |                    z   }g }t          j        |t          j                  D ];\  }}|j                             |dz             r||vr|                    |           <|r@|                                 ||                     dd
                    |                    z   }|
rd |
D             }|                     t          j        |d          |          g}|
D ]/\  }}|                    |                     |||                     0||                     dd
                    |                    z   }|r`g }|D ]/\  }}|                    |                     |||                     0||                     dd
                    |                    z   }|rbg }|D ]1\  }}|                    |                     |||d                     2||                     dd
                    |                    z   }t!          |d          ret;          |j                  }|d d         dk    r*|dd          dk    r|dd                                         }||                     d|          z   }t!          |d          r+||                     dt;          |j                             z   }t!          |d          r+||                     dt;          |j!                            z   }t!          |d          r+||                     dt;          |j"                            z   }	 t          j#        |          }n# tH          $ r d }Y nw xY w||                     d!|          z   }|S )"NNAMEr   r  zMODULE REFERENCEa.  

The following documentation is automatically generated from the Python
source files.  It may be incomplete, incorrect or include features that
are considered implementation detail and may vary between Python
implementations.  When in doubt, consult the module reference at the
location listed above.
DESCRIPTIONr   
 (package)zPACKAGE CONTENTSrU   r	   
SUBMODULESc                     g | ]\  }}|S r   r   r  s      r   r  z%TextDoc.docmodule.<locals>.<listcomp>+  s    999:3999r   rV   CLASSES	FUNCTIONSF   )rs   DATAr   r  r  r   r  VERSIONr   DATEr   AUTHORr   CREDITSr#  FILE)%r*   r\   rS   rv  r   r5  r    r   r!   r  r   r   rf   r.   rj   setr   r  r  r   addr   rZ   re   r   r  r  r  r  rE   r   rX   r   r   r   r/  rI   )r;   rB   r$   r  r  synopdescrR   r   r4  r  r   r   r  r  r  modpkgs_namesr  r_   r  
submodulesr  ri  r  r   s                            r   r  zTextDoc.docmodule  s_   Cvf~~..tfde.E&FGGfi..''dll+=v I @   F  	@dll=$???F!,VW_EE 	1 	1JC%e,,66AAsC00 1NNC<000!,VW5FGG 	/ 	/JC!%((  ,3,=e,D,D,N,NsC00 /LL#u...!,VV<< 	* 	*JC3V,, *S%L)))6:&& 
	8,3,@,Q,Q , ,('5!!'*** ,NN7\#9::::NN7++++LLNNNdll"DIIg$6$68 8 8F 
!,VW5EFF 	' 	'JC~((44 'M9Q9Q!!#&&& 	5OOdlldii
335 5 5F  	K99999I$Y22D: : ;H% A A
UeS$ ? ?@@@@dll9dii6I6IJJJF 	MH# A A
UeS$ ? ?@@@@dll;		(8K8KLLLF 	HH" L L
UeS$r J JKKKKdll6499X3F3FGGGF6=)) 	?&,--Gss|111gbcclc6I6I!"R%...00dll9g>>>F6:&& 	Idll63v3G3GHHHF6<(( 	Mdll8S9J5K5KLLLF6=)) 	Odll9c&:L6M6MNNNF	 %f--DD 	  	  	 DDD	 $,,vt444s   :W WWc                 T    	 j         }|p|}j        }j        fd}||k    rd                     |          z   }n                     |          dz   |z   }|r+t	          ||          }	|dd                    |	          z  z   }g }
|
j        	 t          j                  }n# t          t          f$ r d }Y nw xY w|r(t          |          }|r|dk    r ||z   dz              t                    }|r |dz              t          t          j                            }t          |          dk    r2 d	           |D ]} d
 ||          z               d           t!          d t"                                        D             t          j                  }t          |          }d}|rX d           |d |         D ]} d
|z              ||k    r! dt          ||z
            z   dz               d            G fdd          } |             fd} fd} fd}fdt)                    D             }|r|r|                                n|d         d         t-          |fd          \  }}t.          j        urt.          j        u r|}\u rd}ndt3          j                  z  }t5          |            |d|z  |d           } |d|z  |d           } |d |z  |d!           } |d"|z  |d#           } |d$|z  |d%           } |d&|z  |d'           }|}|d                    |
          }
|
s|dz   S |dz                        |
                                d(          z   dz   S ))Nc                 "    t          | |          S rH   ru  )r  r  s     r   makenamez"TextDoc.docclass.<locals>.makenameV  s    Q??"r   class z	 = class r)  r  r*  rU   rW   zMethod resolution order:rl  rM   c              3      K   | ]=}|j                             d           s!|j        dk    't          |j                   V  >dS )r   r-  N)r*   r   r   rE   )r   r#   s     r   r[  z#TextDoc.docclass.<locals>.<genexpr>{  sa       S S3L++C00S58^z5Q5Q 5Q5Q5Q5QS Sr   r   r   zBuilt-in subclasses:z    ... and z other subclassesc                        e Zd Zd Z fdZdS )(TextDoc.docclass.<locals>.HorizontalRulec                     d| _         d S r   r  rG  s    r   r   z1TextDoc.docclass.<locals>.HorizontalRule.__init__  r  r   c                 :    | j         r d           d| _         d S )NzF----------------------------------------------------------------------rV   r  r  s    r   r  z.TextDoc.docclass.<locals>.HorizontalRule.maybe  r  r   Nr  r  s   r   r  r    r  r   r  c           
      J   t          ||          \  }}|r                                  |            |D ]j\  }}}}	 t          
|          }                     ||	
|                     ;# t          $ r#                      ||	                     Y gw xY w|S rH   r  )r  r   r   r  r$   r   r  r   r  r  rB   r  r;   s           r   r  zTextDoc.docclass.<locals>.spill  s    #E955IB E


S			24 	E 	E.D$E ' 5 5 T]]5(,c67D D E E E E % = = = T\\%s;;<<<<<= Ls    A33*B B c                     t          ||          \  }}|rI                                  
|            |D ]'\  }}}} 
                    ||	                     (|S rH   r   r  s           r   r  z*TextDoc.docclass.<locals>.spilldescriptors  r  r   c           
      L   t          ||          \  }}|r
                                  |            |D ]k\  }}}}t          |          }	 t          |          }	n# t          $ r |j        |         }	Y nw xY w                     |	|d|          dz              l|S )Nr~  rs   r>   rU   )r   r  rS   r   r9   __dict__r  )r  r   r   r  r$   r   r  r   r>   r:   r  r  rB   r  r;   s             r   r  z#TextDoc.docclass.<locals>.spilldata  s    #E955IB 



S			24  .D$ --C5%fd33) 5 5 5%.t45DsD#bcJJ    Ls   A  A:9A:c                 H    g | ]\  }}}}t          |           ||||fS r  r	  r
  s        r   r  z$TextDoc.docclass.<locals>.<listcomp>  r  r   r   c                     | d         u S r  r   r  s    r   r   z"TextDoc.docclass.<locals>.<lambda>  r  r   r  r  zMethods %s:
c                     | d         dk    S r  r   r  s    r   r   z"TextDoc.docclass.<locals>.<lambda>  r  r   zClass methods %s:
c                     | d         dk    S r  r   r  s    r   r   z"TextDoc.docclass.<locals>.<lambda>  r  r   zStatic methods %s:
c                     | d         dk    S r  r   r  s    r   r   z"TextDoc.docclass.<locals>.<lambda>  r  r   zReadonly properties %s:
c                     | d         dk    S r  r   r  s    r   r   z"TextDoc.docclass.<locals>.<lambda>  r   r   zData descriptors %s:
c                     | d         dk    S r"  r   r  s    r   r   z"TextDoc.docclass.<locals>.<lambda>  r#  r   zData and other attributes %s:
c                     | d         dk    S r%  r   r  s    r   r   z"TextDoc.docclass.<locals>.<lambda>  r&  r   z |  )r*   r   r   rk  maprZ   r   r    r.  r/  rI   rE   rS   r   r+  rY   sortedrD   __subclasses__r2  r   r,  r   r-  rB   r`   r   rp  rQ   )r;   rB   r$   r  r  r0  r  r  rh  r  ri  r.  r6  r>   r1  r=   
subclassesno_of_subclassesMAX_SUBCLASSES_TO_DISPLAYsubclassnamer  r  r  r  r   r3  r4  r  r  r  s   `` `                       @@@r   r  zTextDoc.docclassP  s   B?x  + 	# 	# 	# 	# 8tyy222EEIIdOOk1H<E 	8(E**GFTYYw%7%777E	)&11III& 	 	 	III	 	,)nnG ,7d??TG^d*+++Vnn 	Dt GN6**++s88a<<D+,,, . .Vhhtnn,----DHHH S S$*=*=f*E*E S S S	
 
 


 z??$%! 	D'((( *+E,E+E F , ,Vl*++++";;;^),EEFFG() * * * DHHH	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ^	 	 	 	 	 	 	 	 	"	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	3 3 3 3/CF/K/K3 3 3  !	 (KKMM		!!HQK	*52M2M2M2MNNE9X_,,ho1M1M!f$$$)Ii6<6G-I -I I E6*** E/C/446 6EE/#5u::< <EE036;;= =E$$%@3%F%J%JL LE$$%=%CU%H%HJ JEI?#Eu668 8E EC  !	F 99X&& 	 4<t|dkk(//*;*;VDDDtKKs   B* *C ?C c                 4    	 d|                      |          z   S r8  rT  rP  s     r   r:  zTextDoc.formatvalue  s    7TYYv&&&&r   c                 x   	 |j         }|p|}||}d}d}d }	t          |          r^|j        }
|
|u rt          |dd           }	nt	          j        |
          rdt          |
|          z  }ndt          |
j        |          z  }npt	          j        |          st	          j	        |          rF	 |j
        }|dt          ||          z  }n*||urdt          ||          z   }n# t          $ r Y nw xY w|}	t	          j        |	          r?|=|	j        |j        k    s|	j        |j        dz   |z   k    rt          |	|          }|rd	|z  }t	          j        |          st	          j        |          rd
}nd}||k    r|                     |          }nN|1t	          j        ||g           |u rd}|                    d          rd}|                     |          dz   |z   }d }t	          j        |          ro	 t	          j        |          }n# t.          t0          f$ r d }Y nw xY w|r>t3          |          }|dk    r)|                     |          dz   }|j        s
|dd         }|sd}||z   |z   |z   }|r|dz   S t7          |          pd}|dz   |o)|                     |                                          dz   z   S )NrM   Fr'   r<  r=  r>  r?  r	   r@  rA  T = rB  z lambda rV   r   rC  rU   )r*   r}   r+   r   r    r!   r`   r,   r2   rD  r4   r9   r-   r   r   rc   rE  rF  rk  rG  r   rf   r.  r/  rI   rE   rH  rS   rp  rQ   )r;   rB   r$   r  r   r  r0  rI  rJ  rK  rL  rM  rN  rO  rh  r6  r.  r5  r>   s                      r   r  zTextDoc.docroutine  sg   I?x?GF## 	_F|| T::(( +,y/E/EE/)$c3+ 3+ +(00 	%f--	?!. :/)Hc2J2JJDDW,,#i#&>&>>D "    Ff%% 	*'*=!3337#7##=#HHHvs++E *!E)'// 	 *622	 %NNN8IIh''EE&r8R88FBB??8,, DIIdOOe+h6EV$$ 	0!#-f55			* ! ! ! 			! 0i..z)) IIdOOj8E "1 0")!B$- 	G%/$6 	L$;..&BC$;#"J$++c*:*:*A*A*C*Cd*JKKs$   -C" "
C/.C/5H
 
H H c                    	 g }|j         }|r) ||                     |                      |d           t          |          pd}|r) ||                     |                      |d           d                    |          S )NrU   rM   )r   rk  rS   rp  rZ   rR  s	            r   r  zTextDoc.docdata=  s    ?~ 	D4!!!DJJJVnn" 	DS!!"""DJJJwwwr   r  c                R   	 |                      |          }|r1|r|dz   pd|z   }	|t          |	          z
  }
|
dk     r|d |
         dz   }|r|                     |          dz   pd|z   }	|st          |          }|r+|	d|                     t          |                    z   dz   z  }	|	S )Nr  rM   r   rq   rU   )r  rY   rk  rS   rp  rE   )r;   rB   r$   r  r  rs   r>   r  r  r   chops              r   r  zTextDoc.docotherM  s    ;yy   	4)TE\/R47DCII%DaxxUdUe 304506B$> 	!..C 	8D4;;s3xx000477Dr   )rl  )NrM   r   )NNNNr^  )r*   r   r   ra  r_  r  rk  rp  rv  r  r  r  r:  r  r  r7  r  r   r   r   rg  rg    s       1 XZZND6 6 6       A A A    c c c cJXL XL XL XLt' ' 'ML ML ML ML^        K$      r   rg  c                       e Zd Z	 d ZdS )_PlainTextDocc                     |S rH   r   rM  s     r   rk  z_PlainTextDoc.bold^  s    r   N)r*   r   r   rk  r   r   r   r  r  \  s&        <    r   r  c                 B    	 t                      at          |            d S rH   )getpagerpagerry   s    r   r  r  c  s    MJJE	$KKKKKr   c                  j   	 t          t          j        d          st          S t          t          j        d          st          S t          j                                        rt          j                                        st          S t          j        dk    rt          S t          j        	                    d          pt          j        	                    d          r@t          j        dk    rfdS t          j        	                    d          dv rfd	S fd
S t          j        	                    d          dv rt          S t          j        dk    rd S t          t          d          rt          j
        d          dk    rd S dd l} |                                 \  }}t          j        |           	 t          t          d          r2t          j
        d|z            dk    rd t          j        |           S t          t          j        |           S # t          j        |           w xY w)Nisatty
emscriptenMANPAGERPAGERwin32c                 >    t          t          |                     S rH   tempfilepagerplainrl   	use_pagers    r   r   zgetpager.<locals>.<lambda>v  s    eDkk9 E E r   TERM)dumbemacsc                 >    t          t          |                     S rH   )	pipepagerr  r  s    r   r   zgetpager.<locals>.<lambda>x  s    	%++y A A r   c                 $    t          |           S rH   r  r  s    r   r   zgetpager.<locals>.<lambda>z  s    	$	 : : r   c                 <    t          t          |           d          S )Nzmore <r  ry   s    r   r   zgetpager.<locals>.<lambda>~  s    M%++x@@ r   systemz(less) 2>/dev/nullr   c                 "    t          | d          S )Nlessr  ry   s    r   r   zgetpager.<locals>.<lambda>  s    IdF33 r   z	more "%s"c                 "    t          | d          S )Nmorer  ry   s    r   r   zgetpager.<locals>.<lambda>  s    	$ 7 7 r   )r   r
   stdin
plainpagerstdoutr  platformr   r0  r   r  tempfilemkstempcloseunlinkttypager)r  fdr   r  s      @r   r  r  i  s
   <39h'' 3:x(( 9 SZ%6%6%8%8 
||##
z**EbjnnW.E.EI ;<7""EEEEEZ^^F##'888AAAAA:::::	z~~f!222
|w@@@r8 4+?!@!@A!E!E333OOO%%''NRHRLLL2x   	RY{X/E%F%F!%K%K77 		( 
	(	(s   :2H H H2c                 0    	 t          j        dd|           S )Nz.rM   )rO   rP   ry   s    r   r  r    s    /6%T"""r   c                 J   	 dd l }|                    |d|j        d          }	 |j        5 }	 |                    |            n# t
          $ r Y nw xY wd d d            n# 1 swxY w Y   n# t          $ r Y nw xY w	 	 |                                 d S # t
          $ r Y nw xY w()Nr   Tbackslashreplace)shellr  errors)
subprocessPopenPIPEr  writeKeyboardInterruptr   wait)rl   cmdr  procpipes        r   r  r    s7   =Ct:?#5  7 7D	Z 	4

4    $    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	    	IIKKKE  	 	 	 D		si   A, A AA 
AA AA A,  A$$A, 'A$(A, ,
A98A9>B 
B! B!c           	         	 dd l }|                                5 }t          j                            |d          }t          |ddt          j        dk    rt          j        d          nd           5 }|	                    |            d d d            n# 1 swxY w Y   t          j
        |dz   |z   dz              d d d            d S # 1 swxY w Y   d S )	Nr   z	pydoc.outwr  r  )r  encodingz "r  )r  TemporaryDirectoryr   r   rZ   r   r
   r  device_encodingr  r  )rl   r  r  tempdirr   r   s         r   r  r    s\   FOOO		$	$	&	& /'7<<55(C(:,')) -a000/3   	 JJt		 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 		#*x'#-.../ / / / / / / / / / / / / / / / / /s6   AC	2BC	B	C	B	 C		CCc                     t          t          j        dd           pd}|                     |d                              |          S )Nr  utf-8r  )r   r
   r  encodedecode)rl   r  s     r   _escape_stdoutr    s=    sz:t44?H;;x!344;;HEEEr   c           	         	 t          t          |                                         d          }	 dd l}t          j                                        }|                    |          }|                    |           d }n'# t          t          t          j        f$ r d }d }Y nw xY w	 	 t          t          j                            dd                    }n# t"          $ r d}Y nw xY w|dk    rd}|dz
  x}}t          j                            d                    |d |                   dz              ||d          rt          j                            d           t          j                                          |            }	|	d	v r t          j                            d
           n|	dv r1t          j                            d
||         z   dz              |dz   }|	dv r||z
  |z
  }|dk     rd}t          j                            dd                    ||||z                      z   dz              ||z   }||d          |r|                    ||j        |           d S d S # |r|                    ||j        |           w w xY w)NrU   r   c                  @    t           j                            d          S r   )r
   r  r   r   r   r   r   zttypager.<locals>.<lambda>  s    #)..++ r   c                  ^    t           j                                        d d         d d         S )Nr   rV   )r
   r  r   r   r   r   r   zttypager.<locals>.<lambda>  s&    #),,..ss3BQB7 r   LINESrV      z
-- more --)qQz          )rU   )bB)r  r  r   ttyr
   r  fileno	tcgetattr	setcbreakr  r9   ioUnsupportedOperationr  r   r0  r   r/  r  r  rZ   flush	tcsetattr	TCSAFLUSH)
rl   r[   r  r  oldgetcharhrZ  incr  s
             r   r  r    s   /.&&''--d33E8


YmmBb++)@A 8 8 87782	BJNN7A..//AA 	 	 	AAA	66Aa%C
5#;//$6777ABBi 	J\***J		AJ
  !1222l""
  !1E!H!<t!CDDDE&&&GcMq55a!JTDIIeAaeGn$=$==DEEECA! ABBi 	&  	2MM"cmS11111	2 	23 	2MM"cmS1111	2s=   AB !B&%B&+-C I+ C(%I+ 'C((E!I+ +!Jc                 z    	 t           j                            t          t	          |                                d S rH   )r
   r  r  r  r  ry   s    r   r  r    s1    HJU>$//0011111r   c                    	 t          j        |           rA| j        t          j        v r
d| j        z   S t          | d          r
d| j        z   S d| j        z   S t          j        |           r
d| j        z   S t          j        |           r$d| j        j	        d| j        j        d| j        S t          j
        |           r$d| j        j	        d| j        j        d| j        S t          j        |           r
d	| j        z   S t          j        |           r
d
| j        z   S t          j        |           r
d| j        z   S t          |           j        S )Nzbuilt-in module r   zpackage zmodule zbuilt-in function zgetset descriptor r	   zmember descriptor r  z	function zmethod )r    re   r*   r
   r  r   r.   isgetsetdescriptorr4   r   r5   r!   r-   r)   rD   )things    r   describer    s   9 .>S555%665*%% 	...u~-- 5#en44!%((  )))5+=+F+F+FNN 	 !%((  )))5+=+F+F+FNN 	 u )%.((%   ,U^++ *5>));;r   c                    	 d |                      d          D             }d\  }}|t          |          k     rLt          d                    |d |dz                      |          }|r||dz   }}nn|t          |          k     L|r|}nt          }||d          D ]%}	 t          ||          }# t          $ r Y  d S w xY w|S )Nc                     g | ]}||S r   r   )r   r  s     r   r  zlocate.<locals>.<listcomp>  s    666d6T666r   r	   r   rV   )r   rY   r  rZ   r-  r   r9   )r   r  r  r   n
nextmodulerB   r  s           r   locater    s    J66djjoo666EIFA
c%jj..t!t 5 5yAA
 	:q1uqvv c%jj..  abb	  	VT**FF 	 	 	444	Ms   B//
B>=B>c                     	 t          | t                    r(t          | |          }|t          d| z            || fS t	          | dd           }| t          |t                    r|nd fS )Nz~No Python documentation found for %r.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.r*   )r/   rE   r  r  r   )r  r  rB   r$   s       r   resolver    s    N% 
>y))> , /44 5 5 5 u}uj$//js33=dd==r    Python Library Documentation: %sc                 P   	 |t           }t          | |          \  }}t          |          }t          j        |          }|r(d|v r$|d|d |                    d                   z   z  }n|r||ur|d|j        z   z  }t          j        |          swt          j        |          sct          j	        |          sOt          j
        |          s;t          |          s,t          |d          r|j        }nt          |          }|dz  }||z  dz   |                    ||          z   S )Nr	   z in z in module 
__origin__z objectrz  )rl   r  r  r    r  rfindr*   re   r!   rf   r3   rK   r   r  rD   r  )r  rh  r  rendererrB   r$   r  r   s           r   
render_docr  ,  sM   L5),,LFDFDv&&F 0t.tzz#.///	 0F&((//V$$ of%%'' &v.. foo	 6<(( 	&FF&\\FID4<& 8#4#4VT#B#BBBr   Fc                 J   	 |K	 t          t          | ||                     d S # t          $ r}|r t          |           Y d }~d S d }~ww xY w	 t          | ||t                    }n&# t          $ r}t          |          }Y d }~nd }~ww xY w|                    |           d S rH   )r  r  r  print	plaintextrE   r  )r  rh  r  outputis_clir   r   s          r   r>   r>   G  s    M~	*UE95566666 	 	 	 #JJJJJJJJJ	
	5%I>>AA 	 	 	CAAAAAA	Qs,   % 
AAAA( (
B2BBc                 Z   	 t          | |          \  }}t                              t          |          t                              ||                    }t          |dz   dd          5 }|                    |           d d d            n# 1 swxY w Y   t          d|dz              d S )Nr.  r  r  )r  wrote)r  htmlrj  r  r  r   r  r  )r  r  rB   r$   rj  r   s         r   writedocr"  X  s    F5),,LFD99Xf%%t}}VT'B'BCCD	dWncG	4	4	4 

4              	'4'>"""""s   +BBBrM   c                 h    	 |i }t          j        | g|          D ]\  }}}t          |           d S rH   )r  walk_packagesr"  )r   pkgpathdoner  r_   r  s         r   	writedocsr'  `  sI    K|BT$+$93%$I$I   '5
Fr   c                   >   e Zd Zi ddddddddddd	d
ddddddddddddddddddddddi d d!d"d#d$d%dd&d#d'd(d)d*d+d,d-d.d/d0dd1dd2d3d4d5d6d7dd8d9d:dd;d<d=iZd> d?D             Zd@dAdBdCgeR dDdEdFdGdHdIdJZdKdLdMdNdOdPdQdRdSdTdUdVdVdWdWdXZe                                D ]1\  ZZ	e	D ])Z
e                    e
e          ZeevredYz   ez   Zeee
<   *2[[	[
[i dZd[dRd\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdZdxdZi dydzdOd{d|d}d~ddddd#ddddddddddddddddddddddi dddddddddddddddddddSdddddkdddddddndddi dddddddddLdddddddddēd+dœddƓdd	ddɓdd˓dddd6dd#ddddddӜZddՄZedք             Zedׄ             Zd؄ Z e            ZefdلZdڄ Zdۄ Zdd݄Zdބ ZddZd Zd Zd ZddZddZd ZddZ dS )HelperFalserM   NoneTrueandBOOLEANaswithassert)r1  rM   async)r2  rM   await)r3  rM   break)r4  	while forclass)r6  zCLASSES SPECIALMETHODScontinue)r7  r5  def)functionrM   del)r:  BASICMETHODSelififelse)r>  r5  excepttryfinallyfor)rB  zbreak continue whilefromimportglobal)rE  znonlocal NAMESPACES)r=  
TRUTHVALUE)rD  MODULESin)rH  SEQUENCEMETHODSis
COMPARISONlambda)rL  r}  nonlocal)rM  zglobal NAMESPACESnotorpass)rP  rM   raise)rQ  
EXCEPTIONSreturn)rS  r}  )r@  rR  while)rT  zbreak continue if TRUTHVALUE)r0  z CONTEXTMANAGERS EXCEPTIONS yieldyield)rU  rM   c                 "    g | ]}d D ]}||z   S )'r  r   )r   pr  s      r   r  zHelper.<listcomp>  s)    LLLaLLAAELLLLr   )r  frZ  urX  z'''r  r   )+r  ***r-  z//%<<>>rJ  |^~rK  rL  <=>===!=<>)rK  rL  re  rf  rg  rh  ri  )r  rd  )z+=z-=z*=z/=z%=z&=z|=z^=z<<=z>>=z**=z//=)r`  ra  rJ  rb  rc  rd  )jJ)STRINGS	OPERATORSrK  UNARYAUGMENTEDASSIGNMENTBITWISECOMPLEXzOPERATORS FORMATTINGPOWERzTUPLES LISTS FUNCTIONSz ATTRIBUTES FLOAT MODULES OBJECTSELLIPSISzSLICINGS DICTIONARYLITERALSz	def classrl  PRIVATENAMESzPRIVATENAMES SPECIALMETHODS
BACKQUOTESzTUPLES FUNCTIONS CALLSzLISTS SUBSCRIPTS SLICINGS)r_  r^  ,r	   rq   :@r   r   r   `r  r  []r  TYPES)typeszRSTRINGS UNICODE NUMBERS SEQUENCES MAPPINGS FUNCTIONS CLASSES MODULES FILES inspect)stringsz4str UNICODE SEQUENCES STRINGMETHODS FORMATTING TYPESSTRINGMETHODS)zstring-methodszSTRINGS FORMATTING
FORMATTING)formatstringsrm  UNICODE)r~  z:encodings unicode SEQUENCES STRINGMETHODS FORMATTING TYPESNUMBERS)numberszINTEGER FLOAT COMPLEX TYPESINTEGER)integersz	int rangeFLOAT)floatingz
float mathrq  )	imaginaryzcomplex cmath	SEQUENCES)typesseqz$STRINGMETHODS FORMATTING range LISTSMAPPINGSDICTIONARIESr}  )typesfunctionsz	def TYPESMETHODS)typesmethodszclass def CLASSES TYPESCODEOBJECTS)zbltin-code-objectszcompile FUNCTIONS TYPESTYPEOBJECTS)zbltin-type-objectsztypes TYPESFRAMEOBJECTS
TRACEBACKSNONE)zbltin-null-objectrM   )zbltin-ellipsis-objectSLICINGSSPECIALATTRIBUTES)specialattrsrM   r|  )r}  z!class SPECIALMETHODS PRIVATENAMESrG  )typesmodulesrD  PACKAGESEXPRESSIONS)zoperator-summaryzlambda or and not in is BOOLEAN COMPARISON BITWISE SHIFTING BINARY FORMATTING POWER UNARY ATTRIBUTES SUBSCRIPTS SLICINGS CALLS TUPLES LISTS DICTIONARIESrm  
PRECEDENCEOBJECTS)objectsr|  SPECIALMETHODS)specialnameszbBASICMETHODS ATTRIBUTEMETHODS CALLABLEMETHODS SEQUENCEMETHODS MAPPINGMETHODS NUMBERMETHODS CLASSESr;  )customizationzhash repr str SPECIALMETHODSATTRIBUTEMETHODS)zattribute-accesszATTRIBUTES SPECIALMETHODSCALLABLEMETHODS)zcallable-typeszCALLS SPECIALMETHODSrI  )sequence-typesz(SEQUENCES SEQUENCEMETHODS SPECIALMETHODSMAPPINGMETHODS)r  zMAPPINGS SPECIALMETHODSNUMBERMETHODS)znumeric-typesz*NUMBERS AUGMENTEDASSIGNMENT SPECIALMETHODS	EXECUTION)	execmodelz%NAMESPACES DYNAMICFEATURES EXCEPTIONS
NAMESPACES)namingz3global nonlocal ASSIGNMENT DELETION DYNAMICFEATURESDYNAMICFEATURES)zdynamic-featuresrM   SCOPINGFRAMESrR  )r%  ztry except finally raiseCONVERSIONS)conversionsrM   IDENTIFIERS)identifierszkeywords SPECIALIDENTIFIERSSPECIALIDENTIFIERS)z
id-classesrM   )zatom-identifiersrM   LITERALS)zatom-literalsz=STRINGS NUMBERS TUPLELITERALS LISTLITERALS DICTIONARYLITERALSTUPLESTUPLELITERALS)	exprlistszTUPLES LITERALSLISTS)ztypesseq-mutableLISTLITERALSr  )listszLISTS LITERALS)typesmappingDICTIONARYLITERALSr  )r6   zDICTIONARIES LITERALS
ATTRIBUTES)zattribute-referencesz(getattr hasattr setattr ATTRIBUTEMETHODS
SUBSCRIPTS)subscriptionsrI  r  )slicingsrI  CALLS)callsr  )powerr  rn  )unaryr  BINARY)binaryr  SHIFTING)shiftingr  rp  )bitwiser  )comparisonszEXPRESSIONS BASICMETHODS)booleanszEXPRESSIONS TRUTHVALUE	ASSERTION
ASSIGNMENT)
assignmentro  ro  )	augassignr  DELETION	RETURNING	IMPORTING)compoundzfor while break continue)truthz if while and or not BASICMETHODS)debuggerpdb)zcontext-managersr0  )CONDITIONALLOOPINGrF  	DEBUGGINGCONTEXTMANAGERSNc                 "    || _         || _        d S rH   )_input_output)r;   inputr  s      r   r   zHelper.__init__  s    r   c                 (    | j         pt          j        S rH   )r  r
   r  rG  s    r   r  zHelper.input  s    {'ci'r   c                 (    | j         pt          j        S rH   )r  r
   r  rG  s    r   r  zHelper.output  s    |)sz)r   c                     t          j                    d         d         dk    r |              dS d| j        j        d| j        j        dS )NrV   rp   ?rM   rK  r	   z
 instance>)r    stackr,   r   r   rG  s    r   __repr__zHelper.__repr__#  s\    =??1a C''DFFF2 ( &*^%>%>%>%)^%@%@%@B 	Br   c                 6   || j         urM	 |                     |           d S # t          $ r(}| j                            | d           Y d }~d S d }~ww xY w|                                  |                                  | j                            d           d S )NrU   a  
You are now leaving help and returning to the Python interpreter.
If you want to ask for help on a particular object directly from the
interpreter, you can type "help(object)".  Executing "help('string')"
has the same effect as typing a particular string at the help> prompt.
)_GoInteractiver   r  r  r  introinteract)r;   requestes      r   __call__zHelper.__call__+  s    $---,		'""""" , , ,!!Q(((+++++++++, JJLLLMMOOOK      s   " 
AAAc                    | j                             d           	 	 |                     d          }|sd S n# t          t          f$ r Y d S w xY w|                                }t          |          dk    r6|d         |d         cxk    rdv rn n|d         |dd         vr
|dd         }|                                d	v rd S |d
k    r|                                  n| 	                    |           )NrU   Tzhelp> rW   r   r   rW  rV   )r  quitr   )
r  r  getliner  EOFErrorrX   rY   r2  r  r   )r;   r  s     r   r  zHelper.interact;  s   $	#,,x00%%%x0   mmooG Gq  WQZ72;%L%L%L%L*%L%L%L%L%L
'!B$-77!!B$-}}-//&  

		'"""#	#s   7 AAc                     	 | j         t          j        u rt          |          S | j                            |           | j                                         | j                                         S rH   )r  r
   r  r  r  r  r   )r;   prompts     r   r  zHelper.getlineP  s^    <:""== Kf%%%K:&&(((r   Fc                    t          |t                    rz|                                }|dk    r|                                  n|dk    r|                                  nf|dk    r|                                  nJ|dk    r|                                  n.|d d         dk    r.|                     |                                d                    n|| j        v r| 	                    |           n|dv r t          t          |          d	|
           n|| j        v r|                     |           n|| j        v r|                     |           nq|rt          |d	| j        |           nVt          t          d	| j        |           n8t          |t                     r |              nt          |d	| j        |           | j                            d           d S )Nkeywordssymbolstopicsr      zmodules rV   )r,  r*  r+  zHelp on %s:r  )r  r  rU   )r/   rE   rX   listkeywordslistsymbols
listtopicslistmodulesr   r  
showsymbolr>   evalr  	showtopicr  r  r)  r  r  )r;   r  r  s      r   r   zHelper.helpY  s   gs## 	NmmooG*$$d&7&7&9&9&9&9I%%t'7'7'9'9'9'9H$$doo&7&7&7&7I%%t'7'7'9'9'9'9!
**  !34444DL(($//'*B*B*B*B555DMM=@@@@@DM))4>>'+B+B+B+BDK'')@)@)@)@ N#g}T\RXYYYYYc=fMMMMM(( 	N$$&&&&'=fMMMM$r   c                     | j                             d                    dt          j        d d         z                       d S )Na  Welcome to Python {0}'s help utility! If this is your first time using
Python, you should definitely check out the tutorial at
https://docs.python.org/{0}/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules.  To get a list of available
modules, keywords, symbols, or topics, enter "modules", "keywords",
"symbols", or "topics".

Each module also comes with a one-line summary of what it does; to list
the modules whose name or summary contain a given string such as "spam",
enter "modules spam".

To quit this help utility and return to the interpreter,
enter "q" or "quit".
z%d.%drW   )r  r  r1  r
   r6  rG  s    r   r  zHelper.intron  sK       F7S%bqb))**!	, 	, 	, 	, 	,r   r   P   c                    t          t          |                    }||z  }t          |          |z   dz
  |z  }t          |          D ]}t          |          D ]}||z  |z   }|t          |          k     rb| j                            ||                    ||dz
  k     r9| j                            dd|dz
  t          ||                   z
  z  z              | j                            d           d S )NrV   r  rU   )r  r  rY   r  r  r  )	r;   itemscolumnsrr  colwr  rowr  r   s	            r   r  zHelper.list  s   VE]]##E

W$q(W4;; 	$ 	$CW~~ R R$J$s5zz>>K%%eAh///Wq[(())#tax#eAh--7O0P*PQQQKd####	$ 	$r   c                     | j                             d           |                     | j                                                   d S )NzN
Here is a list of the Python keywords.  Enter any keyword to get more help.

)r  r  r  r  r   rG  s    r   r  zHelper.listkeywords  sI      	 	 	 			$-$$&&'''''r   c                     | j                             d           |                     | j                                                   d S )Nzx
Here is a list of the punctuation symbols which Python assigns special meaning
to. Enter any symbol to get more help.

)r  r  r  r  r   rG  s    r   r  zHelper.listsymbols  sI      	 	 	
 			$,##%%&&&&&r   c                     | j                             d           |                     | j                                                   d S )NzN
Here is a list of available topics.  Enter any topic name to get more help.

)r  r  r  r  r   rG  s    r   r  zHelper.listtopics  sI      	 	 	 			$+""$$%%%%%r   c                 f   	 dd l }n+# t          $ r | j                            d           Y d S w xY w| j                            || j                            |                    }|s,| j                            dt          |          z             d S t          |          t          d          u r| 	                    ||          S |\  }}	 |j        j        |         }n;# t          $ r. | j                            dt          |          z             Y d S w xY w|                                dz   }|r
|pddz   |z   }|rbdd l}dd                    |                                          z   dz   }	|                    |	d	          }
|d
d                    |
          z  z  }t!          |           d S )Nr   t
Sorry, topic and keyword documentation is not available because the
module "pydoc_data.topics" could not be found.
zno documentation found for %s
rM   rU   r  Related help topics: r  H   z
%s
)pydoc_data.topicsr  r  r  r  r   r  r  rD   r  KeyErrorrX   textwraprZ   r   wrapr  )r;   topic
more_xrefs
pydoc_datatargetlabelxrefsr>   r  rl   wrapped_texts              r   r  zHelper.showtopic  s   	$$$$$ 	 	 	K     FF	 (9(9%(@(@AA 	K?$u++MNNNF<<488##>>&*555u	#*51CC 	 	 	K?$u++MNNNFF	 iikkD  	5[bC'*4E 	6OOO*TYYu{{}}-E-EELD#==r22L8dii5555Cc




s    $//C   4DDc                 ^   	 	 dd l }n# t          $ r Y dS w xY w| j                            || j                            |                    }|st          d          t          |t                    r|                     ||          S |\  }}|j        j        |         }|r
|pddz   |z   }||fS )Nr   )r	  rM   zcould not find topicrM   r  )	r  r  r  r   r  r/  r/   rE   	_gettopic)r;   r  r  r  r  r  r  r>   s           r   r  zHelper._gettopic  s    		
$$$$$ 	
 	
 	

 
 
	

 (9(9%(@(@AA 	53444fc"" 	6>>&*555u&u- 	5[bC'*4EEzs    
c                 ~    | j         |         }|                    d          \  }}}|                     ||           d S )Nr  )r  	partitionr  )r;   symbolr  r  r   r  s         r   r  zHelper.showsymbol  sA    f% **3//q%ue$$$$$r   c                    |r>| j                             d                    |                     t          |           d S | j                             d           i }|fdfd}t	                                          |           |                     |                                           | j                             d           d S )Nzy
Here is a list of modules whose name or summary contains '{}'.
If there are any, enter a module name to get more help.

zI
Please wait a moment while I gather a list of all available modules...

c                     |r|dd          dk    r|d d         dz   }|                     d          dk     rd||<   d S d S )N	.__init__ry  r	   r   rV   )find)r   r_   r  r   s       r   callbackz$Helper.listmodules.<locals>.callback  s]     :wrss|{::%crcl\9G<<$$q(('(GG$$$ )(r   c                 "     d | d            d S rH   r   )r_   r!  s    r   onerrorz#Helper.listmodules.<locals>.onerror  s    w-----r   r#  z
Enter any module name to get more help.  Or, type "modules spam" to search
for modules whose name or summary contain the string "spam".
)r  r  r1  aproposModuleScannerrunr  r   )r;   r   r   r#  r!  s       @r   r  zHelper.listmodules  s     	K  F3KK	  
 CLLLLLK     G6= ) ) ) )
. . . . .OO':::IIgllnn%%%K      r   r   )F)r   r  r]  )!r*   r   r   r  _strprefixes_symbols_inverser  r  r  symbols_r  r   r  r   r0   r  r  r  rB   r  r  r  r  r   r  r  r  r  r  r  r  r  r  r   r   r   r)  r)  g  s       $$$ 	$ 	y	$
 	f$ 	.$ 	$ 	$ 	'$ 	4$ 	-$ 	$ 	&$ 	$ 	%$  	%!$" 	5#$ $$ 	.%$& 	'$( 	3)$* 	"+$, 	'-$. 	'/$0 	l1$2 	)3$4 	55$6 	y7$8 	i9$: 	;$< 	(=$> 	)?$@ 	$A$B 	:C$D 	<E$ $F 	G$ $HN ML#7LLLL%e;l;;N?!B4
 
 $%/*+%%(( G" ,1133 % %x 	% 	%F[[//FF""#-$GFOO		%
 	xU =U 	 (U
 	AU 	4U 	 (U 	=U 	,U 	+U 	1U 	IU 	NU 	4U  	>!U" 	H#U$ 	<%U& 	'U( 	g)U U* 	)+U, 	9-U. 	1/U0 	A1U2 	-3U4 	H5U6 	 .7U> 	]?U@ 	mAUB 	'CUD 	 4EUJ 	IKUL 	MMUN 	EOUP 	 /QUT 	GUUV 	 ,WU U UZ 	K[U\ 	W]U^ 	3_U` 	<aUb 	,cUd 	@eUf 	*gUh 	EiUj 	0kUl 	0mUn 	 8oUr 	+sUt 	9uUv 	5wUx 	3yUz 	>{U| 	?}U U U~ 	ZU@ 	:AUB 	3CUD 	)EUF 	)GUH 	)IUJ 	+KUL 	/MUN 	-OUP 	AQUR 	9SUT 	XUUV 	;WUX 	=YUZ 	E[U\ 	X]U^ 	X_U U` ;C(7iU U UFn    ( ( X( * * X*B B B VXXN-     # # #*) ) )       *, , ,&$ $ $ $( ( (' ' '& & &   @   6% % %
     r   r)  c                       e Zd Z	 ddZdS )r&  Nc                    |r|                                 }d| _        i }t          j        D ]}|dk    rd||<   | |d |d           t	          |          j        pd}|                    d          d         }|dz   |z   }|                                                     |          dk    r |d ||           t          j	        |          D ]\  }	}}
| j        r n| |d |d           !	 t          j
        |	|          }n# t          $ r Y Dw xY w|j        }t          |d	          r	 |                    |          }n# t          $ r |r ||           Y w xY wt!          t#          j        |                    pd}t          |d
          r|                    |          }n{d }nx	 t(          j                            |          }n# t.          $ r |r ||           Y w xY w|j        r|j                                        d         nd}t3          |dd           }|dz   |z   }|                                                     |          dk    r ||||           |r |             d S d S )NF__main__rV   rM   rU   r   r   r$  
get_sourceget_filenamer   )r2  r  r
   r  r  rA   r   r   r  r$  	_get_specr	  r   r   r.  r  r   r  StringIOr/  r   r   r   r  r   r   )r;   r!  r   	completerr#  seenr_   r$   r  r  r  r   r   sourcer   r   s                   r   r'  zModuleScanner.run	  s   !ciikk	/ 
	6 
	6G*$$ !W;HT7B////%g..6<"D::d++A.D"U?T1Dzz||((--22 w555(/(=g(N(N(N $	2 $	2$Hguy {w++++",Xw??DD"   H 6<00 ;!!'!2!27!;!;$ ! ! !" -#GG,,, ! +2;v+>+>??E2Dv~66 $%227;;#!!*!5!;!;D!A!A& ! ! !" -#GG,,, ! >D^S6>4466q99QSD"6*T::D-::<<$$S))Q..HT7D111 	IKKKKK	 	s6   2D
DD0EE E 0GG+*G+r^  )r*   r   r   r'  r   r   r   r&  r&  	  s+        A8 8 8 8 8 8r   r&  c                     	 d }d }t          j                    5  t          j        d           t                                          || |           d d d            d S # 1 swxY w Y   d S )Nc                 f    |dd          dk    r|d d         dz   }t          ||od|z              d S Nr  r  ry  z- )r  )r   r_   r  s      r   r!  zapropos.<locals>.callbackA	  sF    233<;&&crcl\1Ggt+t,,,,,r   c                     d S rH   r   r_   s    r   r#  zapropos.<locals>.onerrorE	  s    r   ignorer$  )warningscatch_warningsfilterwarningsr&  r'  )r   r!  r#  s      r   r%  r%  ?	  s    K- - -  		 	"	" < <)))Hc7;;;< < < < < < < < < < < < < < < < < <s   9A!!A%(A%c                   	
 	 dd l dd ldd l	dd l
 G d dj        j                   G 	fddj        j                   G 
fdd
j                  } || ||          }|                                 |j	        s7|j
        r|j        s)t          j        d           |j	        s|j
        "|j        )|S )	Nr   c                       e Zd Zd Zd ZdS )!_start_server.<locals>.DocHandlerc                 V   	 | j                             d          rd}nd}|                     d           |                     dd|z             |                                  | j                            |                     | j         |                              d                     d S )Nz.csstext/css	text/html   zContent-Typez%s; charset=UTF-8r  )	r   r   send_responsesend_headerend_headerswfiler  
urlhandlerr  )r;   content_types     r   do_GETz(_start_server.<locals>.DocHandler.do_GET	  s    
 y!!&)) +)*s###^-@<-OPPPJT__	<) ))/: : : : :r   c                     d S rH   r   )r;   r  s     r   log_messagez-_start_server.<locals>.DocHandler.log_message	  s    Dr   N)r*   r   r   rK  rM  r   r   r   
DocHandlerr@  	  s2        	: 	: 	: 	 	 	 	 	r   rN  c                   &    e Zd Zd Z fdZd ZdS ) _start_server.<locals>.DocServerc                     || _         | j         |f| _        || _        | j                            | | j        | j                   d| _        d S NF)hostaddressr!  r=   r   handlerr  )r;   rS  portr!  s       r   r   z)_start_server.<locals>.DocServer.__init__	  sG    DI It,DL$DMItT\4<@@@DIIIr   c                     | j         sQ                    | j                                        gg g d          \  }}}|r|                                  | j         Q|                                  d S r   )r  selectsocketr  handle_requestserver_close)r;   rdwrexrX  s       r   serve_until_quitz1_start_server.<locals>.DocServer.serve_until_quit	  s{    i *#]]DK,>,>,@,@+A2r1MM
B *''))) i * r   c                 v    | j                             |            | j        r|                     |            d S d S rH   )r=   server_activater!  rG  s    r   ra  z0_start_server.<locals>.DocServer.server_activate	  sD    I%%d+++} $d#####$ $r   N)r*   r   r   r   r_  ra  )rX  s   r   	DocServerrP  	  sL        	 	 		  	  	  	  	 	$ 	$ 	$ 	$ 	$r   rb  c                   6    e Zd ZfdZ fdZd Zd ZdS )#_start_server.<locals>.ServerThreadc                     || _         || _        t          |          | _        j                            |            d| _        d | _        d | _        d S rR  )	rI  rS  r  rV  Threadr   servingerror	docserver)r;   rI  rS  rV  	threadings       r   r   z,_start_server.<locals>.ServerThread.__init__	  sN    (DODID		DI%%d+++ DLDJ!DNNNr   c                 <   	 	 j         j        _        _        j        j        _        t          | j                  _         | j	        | j
        | j                  }|| _        |                                 d S # t          $ r}|| _        Y d }~d S d }~ww xY wrH   )server
HTTPServerr=   rU  r  MessageMessageClassstaticmethodrI  rS  rV  readyri  r_  r  rh  )r;   docsvrr  rN  rb  emailhttps      r   r'  z'_start_server.<locals>.ServerThread.run	  s    #	!%!7	$.	!*/-*?
'(4T_(E(E
%"49diDD!''')))))   






s   A9A? ?
B	BBc                 p    d| _         |j        | _        |j        | _        d| j        | j        fz  | _        d S )NTzhttp://%s:%d/)rg  rS  server_portrV  r  )r;   rl  s     r   rq  z)_start_server.<locals>.ServerThread.ready	  s5    DLDI*DI&$)TY)??DHHHr   c                 r    	 d| j         _        |                                  d | _         d| _        d | _        d S )NTF)ri  r  rZ   rg  r  rG  s    r   stopz(_start_server.<locals>.ServerThread.stop	  s7    8"&DNIIKKK "DN DLDHHHr   N)r*   r   r   r   r'  rq  rx  )rN  rb  rs  rt  rj  s   r   ServerThreadrd  	  sw        	" 	" 	" 	" 	"	 	 	 	 	 	 	 		@ 	@ 	@	 	 	 	 	r   ry  g{Gz?)http.serveremail.messagerX  rj  rl  BaseHTTPRequestHandlerrm  rf  r  rh  rg  ri  timesleep)rI  hostnamerV  ry  threadrN  rb  rs  rt  rX  rj  s        @@@@@@r   _start_serverr  M	  sc   6n MMM    T[7   ,$ $ $ $ $ $ $DK* $ $ $*& & & & & & & & & & &y' & & &P \*h55F
LLNNN l FN v7G 
3 l FN v7G Mr   rC  c                   	
 	  G fddt                     } |            fdfd
fdfdfdfdfd		fd
	
fd}|                     d          r
| dd          } |dk    rt          j                            t          j                            t                              }t          j                            ||           }t          |          5 }d                    |	                                          cd d d            S # 1 swxY w Y   n|dk    r ||           S t          d|d|           )Nc                       e Zd Z fdZdS )_url_handler.<locals>._HTMLDocc           	      B    	 d}d|z  }d|d|d             d|d	S )Nzpydoc_data/_pydoc.cssz1<link rel="stylesheet" type="text/css" href="%s">zH<!DOCTYPE>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Pydoc: z	</title>
z</head><body>z*<div style="clear:both;padding-top:.5em;">z</div>
</body></html>r   )r;   rh  ri  css_pathcss_linkhtml_navbars        r   rj  z#_url_handler.<locals>._HTMLDoc.page	  sH    &.HC H UUHHHkkmmmmXXX? ?r   N)r*   r   r   rj  )r  s   r   _HTMLDocr  	  s.        	? 	? 	? 	? 	? 	? 	?r   r  c                                          t          j                    dt          j                    d         dt          j                    d          } d| d                     t          j        d                    d	S )
Nz [r   r  r{  z=
            <div style='float:left'>
                Python <br>T)tersea  
            </div>
            <div style='float:right'>
                <div style='text-align:center'>
                  <a href="index.html">Module Index</a>
                  : <a href="topics.html">Topics</a>
                  : <a href="keywords.html">Keywords</a>
                </div>
                <div>
                    <form action="get" style='display:inline;'>
                      <input type=text name=key size=15>
                      <input type=submit value="Get">
                    </form>&nbsp;
                    <form action="search" style='display:inline;'>
                      <input type=text name=key size=15>
                      <input type=submit value="Search">
                    </form>
                </div>
            </div>
            )rN  r  python_versionpython_buildpython_compiler)r  r!  s    r   r  z!_url_handler.<locals>.html_navbar
  s    ++x/F/H/H/H/H/7/D/F/Fq/I/I/I/7/G/I/I/I/IK L L0 77DKK(9(E(E(EFFFF+H 	Hr   c                     	 d }                      d          }d t          j        D             }                    ||           }|d                    dd|          z   g}i }t          j        D ]+}|                                        ||                     ,|                    d           dd	                    |          fS )
Nc                     d| d| dS r  r   r$   s    r   	bltinlinkz3_url_handler.<locals>.html_index.<locals>.bltinlink!
       15ttt<<r   z/<strong class="title">Index of Modules</strong>c                     g | ]
}|d k    |S )r-  r   )r   r$   s     r   r  z4_url_handler.<locals>.html_index.<locals>.<listcomp>'
  s,     ( ( ($J&& &&&r   z<p>zBuilt-in Modulesr  zf<p align=right class="heading-text grey"><strong>pydoc</strong> by Ka-Ping Yee&lt;ping@lfw.org&gt;</p>zIndex of ModulesrM   )	rn  r
   r  r  rx  r   r   r  rZ   )r  rn  namesri  r3  r   r!  s         r   
html_indexz _url_handler.<locals>.html_index
  s     	= 	= 	= ,,=
 
( (#": ( ( (##E955UT__&3 &3 3 4 8 	3 	3COODJJsD112222'	( 	( 	( "2778#4#444r   c                   	 	 g 		fd}t          j                    5  t          j        d           d }t                                          || |           d d d            n# 1 swxY w Y   d }g }
                    d          }	D ]&\  }}|                     ||          |z              '|
                    d| z  dd	                    |                    z   }d
|fS )Nc                 v    |dd          dk    r|d d         dz   }                     ||od|z   f           d S r7  r   )r   r_   r  search_results      r   r!  z3_url_handler.<locals>.html_search.<locals>.callback;
  sP    rss|{**!#2#,5  '4+?D4K!@AAAAAr   r:  c                     d S rH   r   r9  s    r   r#  z2_url_handler.<locals>.html_search.<locals>.onerrorB
  s    r   r$  c                     d| d| dS r  r   r  s    r   r  z4_url_handler.<locals>.html_search.<locals>.bltinlinkG
  r  r   z-<strong class="title">Search Results</strong>zkey = %sr  r  zSearch Results)	r;  r<  r=  r&  r'  rn  r   rx  rZ   )r   r!  r#  r  r   rn  r$   r  ri  r  r!  s            @r   html_searchz!_url_handler.<locals>.html_search6
  s   "	B 	B 	B 	B 	B
 $&& 	@ 	@#H---  OO#w???		@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@	= 	= 	= ,,;
 
 ( 	3 	3JD$NN99T??T12222T__gv{{7';';= = =))s   <A&&A*-A*c                      	 d }                      d          }t          t          j                                                  }                    ||           }|                    dd|          z   }d|fS )Nc                     d| d| dS Nz<a href="topic?key=r  r  r   r  s    r   r  z4_url_handler.<locals>.html_topics.<locals>.bltinlinkW
       6:ddDDDAAr   $<strong class="title">INDEX</strong>Topicsr  )rn  r  r)  r  r   r  rx  )r  rn  r  ri  r!  s       r   html_topicsz!_url_handler.<locals>.html_topicsT
  s    -	B 	B 	B ,,2
 
 v}))++,,##E955T__gx) ) )!!r   c                      	                      d          } t          t          j                                                  }d }                    ||          }|                     dd|          z   }d|fS )Nr  c                     d| d| dS r  r   r  s    r   r  z6_url_handler.<locals>.html_keywords.<locals>.bltinlinkk
  r  r   Keywordsr  )rn  r  r)  r  r   r  rx  )rn  r  r  ri  r!  s       r   html_keywordsz#_url_handler.<locals>.html_keywordsd
  s     ,,2
 
 v++--..	B 	B 	B ##E955T__+ + +8##r   c                 
   	 t          j                    }t          ||          }|                    |           \  }}| |j        v rd}nd}                    d|z            }d                    |          z  }                    | d|          }|rQt          |	                                          }d }
                    ||          }                    dd|          }|d| d	                    |||f          fS )
NKEYWORDTOPICr  z<pre>%s</pre>r  c                     d| d| dS r  r   r  s    r   r  z7_url_handler.<locals>.html_topicpage.<locals>.bltinlink
  s     :>$$EEr   r
  r  rM   )r  r1  r)  r  r  rn  r  rx  r  r   r  rv  rZ   )	r  bufhtmlhelpri  r  rh  rn  r  r!  s	           r   html_topicpagez$_url_handler.<locals>.html_topicpages
  s$   )kmm#s##",,U33%H%%%EEE,,/%7
 
 #T[[%:%::??57H== 	J5;;==))EF F F $$UI66ELL!8'5IIE 55%%((E2335 	5r   c                     t          | d          }|| dk    rt          d          t          |          }                    ||           }||fS )NrV   )r  r+  zcould not find object)r  r/  r  r  )r  r:   rh  contentr!  s       r   html_getobjz!_url_handler.<locals>.html_getobj
  sY    SA&&&;3&==4555--S))g~r   c                                          d          }d                    fdt          t          |          |          D                       }|                    | d|          z   }d| z  |fS )Nz$<strong class="title">Error</strong>r  c              3   B   K   | ]}                     |          V  d S rH   )rN  )r   r   r!  s     r   r[  z3_url_handler.<locals>.html_error.<locals>.<genexpr>
  sG       F FTt{{400 F F F F F Fr   rh  z
Error - %s)rn  rZ   r   rD   rx  )r  r   rn  ri  r!  s       r   
html_errorz _url_handler.<locals>.html_error
  s    ,,2
 
 ;; F F F F4T#YYDDF F F F FT__S'8DDDc!8++r   c                    	 | }|                      d          r
| d d         } 	 | dv r 
            \  }}n| dk    r             \  }}n| dk    r             \  }}nd| v r|                     d          \  }}} |dk    r |           \  }}n|dk    r.	  |           \  }}n# t          $ r  	|           \  }}Y ngw xY w|d	k    r@| dv r 
            \  }}nK	  	|           \  }}n;# t          $ r  |           \  }}Y n!w xY wt          d
           	|           \  }}n&# t          $ r} ||          \  }}Y d }~nd }~ww xY w                    ||          S )Nr.  )rM   r  r  r  r9  z
search?keyz	topic?keyzget?keyzbad pydoc url)r   r  r/  r  rj  )r  complete_urlrh  r  opr   r   r!  r  r  r  r  r  r  r  s          r   get_html_pagez#_url_handler.<locals>.get_html_page
  s   ,<<   	crc(C 	;m##!+ww!,ww
""!.ww ]]3//
As%%%0[%5%5NE77;&&:)7)<)<ww% : : :)4S)9)9www:9__m++)3wwA-8[-=-=NE77) A A A-;^C-@-@NE777A %_555!,S!1!1w 	; 	; 	;'Zc::NE777777	; yy(((s`   A2D) B' &D) 'C?D) CD) C- ,D) -DD) D D) )
E3EEr-  rV   rB  rM   rC  zunknown content type z	 for url )rf  r   r   r   dirnamerealpathr   rZ   r   	readlinesrI   )r  rJ  r  r  	path_herer  fpr!  r  r  r  r  r  r  r  r  s          @@@@@@@@@r   _url_handlerr  	  sv   ? ? ? ? ? ? ?7 ? ? ?$ 8::DH H H H H65 5 5 5 50* * * * *<" " " " " $ $ $ $ $5 5 5 5 52    , , , , ,&) &) &) &) &) &) &) &) &) &) &) &)P ~~c !""gz!!GOOBG$4$4X$>$>??	7<<	3//(^^ 	+r772<<>>**	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+		$	$}S!!!
)LLL##N
O
OOs   3'D''D+.D+T	localhost)open_browserr  c                   	 dd l }t          t          ||           }|j        rt	          |j                   d S |j        r/d}|r|                    |j                   	 t	          d|j                   t	          |           |j        rat          d          }|	                                }|dk    rn7|dk    r|                    |j                   nt	          |           |j        an%# t          t          f$ r t	                       Y nw xY w|j        r%|                                 t	          d           d S d S # |j        r$|                                 t	          d           w w xY wd S )Nr   z"Server commands: [b]rowser, [q]uitzServer ready atzserver> r  r  zServer stopped)
webbrowserr  r  rh  r  rg  r   r  r  r2  r  r  rx  )rV  r  r  r  serverthreadserver_help_msgr  s          r   browser  
  s   
  x>>L l !!! (> 	.OOL,---	(#\%5666/"""& +J''iikk#::CZZOOL$45555/*** & + "8, 	 	 	GGGGG	 # (!!###&'''''( (|# (!!###&''''('( (s+    BC- ,E  -DE  DE   -E-c                 r    t          | t                    o"|                     t          j                  dk    S r   )r/   rE   r   r   sep)r   s    r   ispathr  
  s(    a5!&&..A"55r   c                    	 d| v s#t           j        | v st          j                    | v rd S t           j                            t
                    }t           j                            |          }|                                 }|| v r5t           j                            ||          s|                    |           |	                    dt          j                               |S )NrM   r   )
r   curdirgetcwdr   r  r   copysamefileremoveinsert)
given_pathargv0
stdlib_dir
script_dirrevised_paths        r   _get_revised_pathr  
  s     
Z29
22bikkZ6O6Ot **J''J??$$LZ(8(8Z(P(PJ'''29;;'''r   c                      	 t          t          j        t          j        d                   } | | t          j        d d <   d S d S r   )r  r
   r   argv)r  s    r   _adjust_cli_sys_pathr    sA     %SXsx{;;L"  r   c                  2   	 dd l }  G d dt                    }t                       	 |                      t          j        dd          d          \  }}d}d}d}d}d}|D ]C\  }	}
|	dk    rd	}d	}|	d
k    rt          |
            d S |	dk    rd	}|
}|	dk    rd	}|	dk    rd	}|
}D|rt          |||           d S |s||D ]C}t          |          rEt          j	        
                    |          s&t          d|z             t          j        d           	 t          |          r.t          j	                            |          rt          |          }|rNt          |          r/t          j	                            |          rt!          |           n,t#          |           nt$                              |d	           # t&          t(          f$ r.}t          |           t          j        d           Y d }~=d }~ww xY wd S # | j        |f$ r t          j	                            t          j	                            t          j        d                             d         }t          d                    |t          j                             Y d S w xY w)Nr   c                       e Zd ZdS )cli.<locals>.BadUsageN)r*   r   r   r   r   r   BadUsager  #  s          r   r  rV   zbk:n:p:wFr  z-bTz-kz-pz-wz-n)r  r  zfile %r does not existr  a  pydoc - the Python documentation tool

{cmd} <name> ...
    Show text documentation on something.  <name> may be the name of a
    Python keyword, topic, function, module, or package, or a dotted
    reference to a class or function within a module or module in a
    package.  If <name> contains a '{sep}', it is used as the path to a
    Python source file to document. If name is 'keywords', 'topics',
    or 'modules', a listing of these things is displayed.

{cmd} -k <keyword>
    Search for a keyword in the synopsis lines of all available modules.

{cmd} -n <hostname>
    Start an HTTP server with the given hostname (default: localhost).

{cmd} -p <port>
    Start an HTTP server on the given port on the local machine.  Port
    number 0 can be used to get an arbitrary unused port.

{cmd} -b
    Start an HTTP server on an arbitrary unused port and open a web browser
    to interactively browse documentation.  This option can be used in
    combination with -n and/or -p.

{cmd} -w <name> ...
    Write out the HTML documentation for a module to a file in the current
    directory.  If <name> contains a '{sep}', it is treated as a filename; if
    it names a directory, documentation is written for all the contents.
)r  r  )getoptr  r  r
   r  r%  r  r  r   r   existsr  exitr   r  r   r'  r"  r   r  r   rh  r   r   r1  r  )r  r  optsr  writingstart_serverr  rV  r  optvalargr   r  s                 r   clir     s   JMMM#####9###M!]]38ABB<<<
d 	 	HCd{{##d{{d{{#d{{d{{# 	4(FFFFF#8^ 	 	Cc{{ 27>>##6#6 .4555#;; *27>>##6#6 *$S//C 0c{{ &rw}}S'9'9 &!# IIc$I///!23   e	 	$ L(# ! ! !grw//<<==a@ : FsF;	! 	! 	! 	! 	! 	!!sK   AH 1H 9AH B)G H H#G<6H <HH BJJr-  r   )r   )r  r   N)r  r   NF)rM   N)rC  )br  r   r   r   r   r-  importlib._bootstrapr   importlib._bootstrap_externalimportlib.machineryimportlib.utilr    r  r   r  r  rO   r
   r8  r}  r   urllib.parser  r;  collectionsr   reprlibr   	tracebackr   r   r%   r?   r8   rK   rS   r\   r`   rc   rj   rn   rv   r  
IGNORECASErx   rz   r}   r   r   r  all_feature_namesr   r   r   r   r   r   r   r  r   r  r  r  r;  rf  ra  rg  r  r  r  r  r  r  r  r  r  r  r  rl   r  r!  r  r  r>   r"  r'  r)  r   r&  r%  r  r  r  r  r  r  r  r*   r   r   r   <module>r     sz  %L ()
          $ $ $ $          				 				   				 



                        + + + + + +

 
 
  1 1 1f  ! ! ! A A A
       % % %G G G     bj5r}EE( ( (

 
 
    " J899 ( ( ( (0  
 
 
    "   % % % %NK K K K K	 K K K6 6 6$  ! , , , ,`6 6 6 6 6 6 6 6t( ( ( ( (t ( ( (TY	7 Y	7 Y	7 Y	7 Y	7c Y	7 Y	7 Y	7z: : : : :t : : :@Y Y Y Y Yc Y Y Yv    G     " " "H# # #  0
/ 
/ 
/F F F
*2 *2 *2X2 2 2     6   * wyyMOO	wyy> > > > KLC C C C6 DE!   "# # # #   W W W W W W W Wr vxx; ; ; ; ; ; ; ;z
< 
< 
<V V VriP iP iP iPX (4+  (  (  (  (  (J6 6 6  8# # #T! T! T!l zCEEEEE r   