python (3.11.7)

(root)/
lib/
python3.11/
http/
__pycache__/
server.cpython-311.opt-2.pyc

e_x	dZgdZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlmZdZdZGddejZGd	d
ejeZGddejZGd
deZdZ da!dZ"dZ#GddeZ$dZ%eedddfdZ&e'dkrddl(Z(ddl)Z)e(j*Z+e+,ddde+,dddd !e+,d"d#ej-d$%e+,d&d'd(dd)*e+,d+de.d,d-.e+/Z0e0j1re$Z2neZ2Gd/d0eZ3e&e2e3e0j4e0j5e0j61dSdS)2z0.6)
HTTPServerThreadingHTTPServerBaseHTTPRequestHandlerSimpleHTTPRequestHandlerCGIHTTPRequestHandlerN)
HTTPStatusaD<!DOCTYPE HTML>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Error response</title>
    </head>
    <body>
        <h1>Error response</h1>
        <p>Error code: %(code)d</p>
        <p>Message: %(message)s.</p>
        <p>Error code explanation: %(code)s - %(explain)s.</p>
    </body>
</html>
ztext/html;charset=utf-8ceZdZdZdZdS)rc	tj||jdd\}}t	j||_||_dS)N)socketserver	TCPServerserver_bindserver_addresssocketgetfqdnserver_nameserver_port)selfhostports   ?/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/http/server.pyrzHTTPServer.server_bindsQ<**4000(!,
d!>$//N)__name__
__module____qualname__allow_reuse_addressrrrrrs)     rrceZdZdZdS)rTN)rrrdaemon_threadsrrrrrsNNNrrc
eZdZ	dejdzZdezZe	Z
eZdZ
dZdZdZdZd"d
Zd#dZd#dZd
ZdZdZd$dZdZedejededdDZdee d<dZ!dZ"d#dZ#dZ$gdZ%gdZ&dZ'd Z(e)j*j+Z,d!e-j./DZ0d	S)%rzPython/rz	BaseHTTP/HTTP/0.9c	d|_|jx|_}d|_t	|jd}|d}||_|}t|dkrdSt|dkrp|d}	|
dst|d	d
d
}|d}t|dkrttd
|Drtdtd|Drtdt|dt|d
f}n;#ttf$r'|t jd|zYdSwxYw|dkr|jdkrd|_|dkr%|t jd|zdS||_dt|cxkrdks'n|t jd|zdS|dd\}}t|dkr2d|_|dkr%|t jd|zdS||c|_|_|j
dr"d	|jd	z|_	t,j|j|j|_n#t,jj$r9}|t jdt	|Yd}~dSd}~wt,jj$r9}|t jdt	|Yd}~dSd}~wwxYw|jdd}	|	 dkrd|_n*|	 d kr|jdkrd|_|jd!d}
|
 d"kr,|jdkr!|jdkr|!sdSdS)#NTz
iso-8859-1
rFzHTTP//r
.rc3@K|]}|VdSN)isdigit.0	components  r	<genexpr>z7BaseHTTPRequestHandler.parse_request.<locals>.<genexpr>/s1OO99,,...OOOOOOrznon digit in http versionc3<K|]}t|dkVdS)
N)lenr,s  rr/z7BaseHTTPRequestHandler.parse_request.<locals>.<genexpr>1s-KKys9~~*KKKKKKrz unreasonable length http versionzBad request version (%r))r
r
zHTTP/1.1)rrzInvalid HTTP version (%s)zBad request syntax (%r)GETzBad HTTP/0.9 request type (%r)z//)_classz
Line too longzToo many headers
Connectionclose
keep-aliveExpectz100-continue)"commanddefault_request_versionrequest_versionclose_connectionstrraw_requestlinerstriprequestlinesplitr2
startswith
ValueErroranyint
IndexError
send_errorrBAD_REQUESTprotocol_versionHTTP_VERSION_NOT_SUPPORTEDpathlstriphttpclient
parse_headersrfileMessageClassheadersLineTooLongREQUEST_HEADER_FIELDS_TOO_LARGE
HTTPExceptiongetlowerhandle_expect_100)rversionrAwordsbase_version_numberversion_numberr:rLerrconntypeexpects           r
parse_requestz$BaseHTTPRequestHandler.parse_requests		)-)EEw $$.==!((00&!!##u::??5u::??BiG
))'22%$$&-mmC&;&;A&>#!4!:!:3!?!?~&&!++$$OOOOOOOB$%@AAAKKNKKKKKI$%GHHH!$^A%6!7!7^A=N9O9O!O
+


*.8:::uu	

''D,AZ,O,O(-%''9/2EEGGGu#*D CJJ####!####OO&)K7
9
9
95bqb	
u::??$(D!%*4w>@@@u")4di9%%	4di..s333DI	;44TZ<@<M5OODLL{&			OO:C


55555{(			OO:"C



55555
	<##L"55>>w&&$(D!!nn,..#z11$)D!!!(B//LLNNn,,%33$
22))++
uts7C!E774F/.F/0LN$ .MN$+.NN$cn	|tj|dSNT)send_response_onlyrCONTINUEend_headersrs rrYz(BaseHTTPRequestHandler.handle_expect_100ys7		

 3444trc		|jd|_t|jdkr6d|_d|_d|_|tj	dS|js	d|_
dS|sdSd|jz}t||s*|tj
d|jzdSt||}||jdS#t"$r(}|d|d|_
Yd}~dSd}~wwxYw)Niir6Tdo_zUnsupported method (%r)zRequest timed out: %r)rQreadliner?r2rAr<r:rHrREQUEST_URI_TOO_LONGr=rahasattrNOT_IMPLEMENTEDgetattrwfileflushTimeoutError	log_error)rmnamemethodes    rhandle_one_requestz)BaseHTTPRequestHandler.handle_one_requestsd		#':#6#6u#=#=D 4'((500#% ')$!
 ?@@@'
(,%%%''
DL(E4''
.-<>>>T5))FFHHHJ			NN2A666$(D!FFFFF		s1A+D0DDAD3D
ED<<Ec	d|_||js||jdSdSrc)r=rvrgs rhandlezBaseHTTPRequestHandler.handles]4 $!!!'	&##%%%'	&	&	&	&	&rNc		|j|\}}n#t$rd\}}YnwxYw||}||}|d||||||ddd}|dkr|t
jt
jt
jfvr|j	|tj|dtj|ddz}|d	d
}|d|j
|dtt|||jd
kr|r|j|dSdSdS)N)???rzzcode %d, message %sr5r7Fquote)codemessageexplainzUTF-8replacezContent-TypeContent-LengthHEAD)	responsesKeyErrorrr
send_responsesend_headerr
NO_CONTENT
RESET_CONTENTNOT_MODIFIEDerror_message_formathtmlescapeencodeerror_content_typer>r2rfr:rowrite)rr~rrshortmsglongmsgbodycontents        rrHz!BaseHTTPRequestHandler.send_errors	"	- $t 4Hgg	-	-	- ,Hggg	-?G?G,dG<<<4)))w///
CKK.#1#02
2
2
0;we<<<;we<<<44G
>>'955D^T-DEEE-s3t99~~>>><6!!d!JT""""""!!!s&&c	||||||d||d|dS)NServerDate)log_requestrdrversion_stringdate_time_stringrr~rs   rrz$BaseHTTPRequestHandler.send_responses}		
g...4#6#6#8#8999!6!6!8!899999rc	|jdkrs|||jvr|j|d}nd}t|dsg|_|jd|j||fzdddSdS)Nr"rr6_headers_bufferz
%s %d %s
latin-1strict)r<rrlrappendrJrrs   rrdz)BaseHTTPRequestHandler.send_response_onlys,:--4>))"nT215GG G4!233
*')$ ''*D':*;<BF!8=-=-
.
.
.
.
..-rcl	|jdkrKt|dsg|_|j|d|ddd|dkrB|dkr	d	|_dS|d
krd|_dSdSdS)Nr"rz: r$rr
connectionr7Tr8F)r<rlrrrrXr=)rkeywordvalues   rrz"BaseHTTPRequestHandler.send_headers7:--4!233
*')$ ''!(%%%088HMM
O
O
O==??l**{{}}''(,%%%,..(-%%%	+*/.rc~	|jdkr0|jd|dSdS)Nr"s
)r<rr
flush_headersrgs rrfz"BaseHTTPRequestHandler.end_headerssJ::-- ''000     .-rct|dr;|jd|jg|_dSdS)Nrr)rlrorjoinrrgs rrz$BaseHTTPRequestHandler.flush_headerssR4*++	&JSXXd&:;;<<<#%D   	&	&r-c	t|tr|j}|d|jt|t|dS)Nz
"%s" %s %s)
isinstancerrlog_messagerAr>)rr~sizes   rrz"BaseHTTPRequestHandler.log_request!sa	
dJ''	:D)3t99c$ii	A	A	A	A	Arc$	|j|g|RdSr*)r)rformatargss   rrrz BaseHTTPRequestHandler.log_error,s*			'$''''''rci|]	}|d|d
S)z\x02xr)r-cs  r
<dictcomp>z!BaseHTTPRequestHandler.<dictcomp><s"VVV!Q
a


VVVr z\\\c		||z}tj|d|d||jddS)Nz - - [z] 
)sysstderrraddress_stringlog_date_time_string	translate_control_char_table)rrrrs    rrz"BaseHTTPRequestHandler.log_message?s	&4-
--////335555!++D,DEEEEG	H	H	H	H	Hrc(	|jdz|jzS)N )server_versionsys_versionrgs rrz%BaseHTTPRequestHandler.version_stringYs8"S(4+;;;rcp	|tj}tj|dS)NT)usegmt)timeemailutils
formatdate)r	timestamps  rrz'BaseHTTPRequestHandler.date_time_string]s1N	I{%%i%===rc		tj}tj|\	}}}}}}}}	}
d||j|||||fz}|S)Nz%02d/%3s/%04d %02d:%02d:%02d)r	localtime	monthname)rnowyearmonthdayhhmmssxyzss            rrz+BaseHTTPRequestHandler.log_date_time_stringcsZ<ikk04s0C0C-eS"b"aA*T^E*D"b".>
>r)MonTueWedThuFriSatSun)
NJanFebMarAprMayJunJulAugSepOctNovDecc	|jdSNr)client_addressrgs rrz%BaseHTTPRequestHandler.address_stringqs("1%%rHTTP/1.0c,i|]}||j|jfSr)phrasedescription)r-vs  rrz!BaseHTTPRequestHandler.<dictcomp>s3
	
AHam$r)NNr*)rr)1rrrrrZrBr__version__rDEFAULT_ERROR_MESSAGErDEFAULT_ERROR_CONTENT_TYPErr;rarYrvrxrHrrdrrfrrrrr>	maketrans	itertoolschainrangerordrrrrweekdaynamerrrJrNrOHTTPMessagerRr__members__valuesrrrrrrs7dNck//11!44K
!;.N03)lll\$###J&&&3#3#3#3#j::::.......!!!&&&
	A	A	A	A(((--VVyuuT{{EE$tDTDT'U'UVVVXX%*D		"HHH4<<<>>>>DCCK;;;I&&&";*L'..00IIIrrcleZdZ	dezZdddddxZZddfd	
Zd
ZdZ	dZ
d
ZdZdZ
dZxZS)rzSimpleHTTP/zapplication/gzipapplication/octet-streamzapplication/x-bzip2zapplication/x-xz)z.gzz.Zz.bz2z.xzN	directoryc|tj}tj||_t	j|i|dSr*)osgetcwdfspathrsuper__init__)rrrkwargs	__class__s    rr
z!SimpleHTTPRequestHandler.__init__sG	I9--$)&)))))rc	|}|rK	|||j|dS#|wxYwdSr*)	send_headcopyfileror7rfs  rdo_GETzSimpleHTTPRequestHandler.do_GETsd"NN	


a,,,												sA

A c`	|}|r|dSdSr*)rr7rs  rdo_HEADz SimpleHTTPRequestHandler.do_HEADs7#NN	
GGIIIII		rcf	||j}d}tj|rCtj|j}|jds|tj
|d|d|ddz|d|df}tj|}|d||dd	|
dSd
D]E}tj||}tj|r|}nF||S||}|dr"|tjddS	t)|d}n1#t*$r$|tjdYdSwxYw	tj|}d
|jvr6d|jvr,	t2j|jd
}	|	j%|	t<jj }	|	jt<jj urt<j!|j"t<jj }
|
d}
|
|	krI|tj#|
|$dSn##tJtLtNtPf$rYnwxYw|tj)|d||dtU|d|d|+|j"|
|S#|$xYw)Nr'rr
rr%Locationr0)z
index.htmlz	index.htmzFile not foundrbzIf-Modified-Sincez
If-None-Match)tzinfo)microsecondContent-typez
Last-Modified),translate_pathrLrisdirurllibparseurlsplitendswithrrMOVED_PERMANENTLY
urlunsplitrrfrisfilelist_directory
guess_typerH	NOT_FOUNDopenOSErrorfstatfilenorSrrparsedate_to_datetimerrdatetimetimezoneutc
fromtimestampst_mtimerr7	TypeErrorrG
OverflowErrorrDOKr>r)rrLrparts	new_partsnew_urlindexctypefsims
last_modifs           rrz"SimpleHTTPRequestHandler.send_heads		""49--
7==	1L))$)44E:&&s++	
"":#?@@@"1XuQxqC"1XuQx1	 ,11)<<  W555  !13777  """t2
1
1T5117>>%(( DE**4000%%==	OOJ02BCCC4	T4  AA			OOJ02BCCC44	'	!((**%%B#t|33't|;;(+;;%89;;Cz)"kk1B1FkGGzX%6%:::%-%6%D%DK):)>&@&@
&0%7%7A%7%F%F
%,, ..z/FGGG ,,...GGIII#'4'":}jID*
z}---^U333-s2a5zz:::_%%bk22
4
4
4H	
GGIIIsJG*H
H
:P*M6CPPM41P3M44B$PP0c
		tj|}n1#t$r$|tjdYdSwxYw|dg}	tj	|j
d}n4#t$r'tj	|j
}YnwxYwtj
|d}tj}d|}|d	|d
|d|d|d
|d|d|d|d|d|D]}tj
||}|x}	}
tj
|r
|dz}	|dz}
tj
|r|dz}	|dtj|
dd
tj
|	dd|dd||d}t-j}|||d|tj|dd|z|dt;t=|||S)NzNo permission to list directoryc*|Sr*)rX)as r<lambda>z9SimpleHTTPRequestHandler.list_directory.<locals>.<lambda>s		r)key
surrogatepasserrorsFr|zDirectory listing for z<!DOCTYPE HTML>z<html lang="en">z<head>z<meta charset="z">z<title>z</title>
</head>z<body>
<h1>z</h1>z	<hr>
<ul>r'@z
<li><a href="z	</a></li>z</ul>
<hr>
</body>
</html>
rsurrogateescaperrztext/html; charset=%sr) rlistdirr+rHrr)sortr r!unquoterLUnicodeDecodeErrorrrrgetfilesystemencodingrrrislinkr}rioBytesIOrseekrr6rr>r2rf)
rrLlistrdisplaypathenctitlenamefullnamedisplaynamelinknameencodedrs
             rr'z'SimpleHTTPRequestHandler.list_directorys_		:d##DD			OO$1
3
3
344		
	
		))	***	: ,..ty6E/GGKK!	:	:	: ,..ty99KKK	:k+U;;;'))666	"###	#$$$		*3***+++	35333444	,,,,---	
	?
	?Dw||D$//H%))K(w}}X&&
&"Sj#:w~~h''
)"Sj
HHH|))(1@*BBBB{;e<<<<<>
?
?
?
?	
2333))A,,%%c+<==JLL		q			:=))))@3)FGGG)3s7||+<+<===s!*AA#&B

.B;:B;c	|ddd}|ddd}|d}	tj|d}n/#t$r"tj|}YnwxYwtj|}|d}td|}|j
}|D]\}tj
|s|tjtjfvr<tj||}]|r|dz
}|S)N?r
r#r'rDrE)rBr@r#r r!rKrL	posixpathnormpathfilterrrrLdirnamecurdirpardirr)rrLtrailing_slashr[words     rrz'SimpleHTTPRequestHandler.translate_pathAsF	zz#a  #zz#a  #//44	.<''_'EEDD!	.	.	.<''--DDD	.!$''

3tU##~	,	,Dwt$$
BI0F(F(F7<<d++DD	CKDs"!B)B0/B0c2	tj||dSr*)shutilcopyfileobj)rsource
outputfiles   rrz!SimpleHTTPRequestHandler.copyfile_s"		6:.....rc	tj|\}}||jvr
|j|S|}||jvr
|j|St	j|\}}|r|SdS)Nr)r_splitextextensions_maprX	mimetypesr()rrLbaseextguess_s      rr(z#SimpleHTTPRequestHandler.guess_typeos	&t,,	c$%%%&s++iikk$%%%&s++'--q	L))r)rrrrrrn_encodings_map_defaultr
rrrr'rrr(
__classcell__rs@rrrs	#[0N!(%!	//N+)-*******VVVp777r</// *******rrc@	|d\}}}tj|}|d}g}|ddD]:}|dkr||r|dkr||;|r<|}|r%|dkr|d}n|dkrd}nd}|rd||f}dd|z|f}d|}|S)Nr]r'r&z..r(r6)	partitionr r!rKrBpoprr)	rLrsquery
path_parts
head_partspart	tail_part	splitpathcollapsed_paths	         r_url_collapse_pathrsJ^^C((ND!U<%%DCJJ3B3&&4<<NN
	&dckkt%%%	NN$$		D     		c!!		1HHi/00	sxx
+++Y7IXXi((Nrc	trtS	ddl}n#t$rYdSwxYw	|ddan>#t$r1dtd|DzaYnwxYwtS)Nrr&nobodyrr
c3&K|]}|dV
dS)rNr)r-rs  rr/znobody_uid.<locals>.<genexpr>s&66!1666666r)rpwdImportErrorgetpwnamrmaxgetpwall)rs r
nobody_uidrs.





rr7h''*777S66s||~~6666667Ms
$$A8A?>A?cB	tj|tjSr*)raccessX_OK)rLs r
executablers#
9T27###rcXeZdZ	eedZdZdZdZdZ	ddgZ
dZd	Zd
Z
dS)rforkrc	|r|dS|tjddS)NzCan only POST to CGI scripts)is_cgirun_cgirHrrmrgs rdo_POSTzCGIHTTPRequestHandler.do_POSTsS	;;==	0LLNNNNNOO*.
0
0
0
0
0rc	|r|St|Sr*)rrrrrgs rrzCGIHTTPRequestHandler.send_heads7;;;==	<<<>>!+55d;;;rc:	t|j}|dd}|dkrA|d||jvr0|d|dz}|dkr|d||jv0|dkr"|d|||dzd}}||f|_dSdS)Nr'r
rTF)rrLfindcgi_directoriescgi_info)rrdir_sepheadtails     rrzCGIHTTPRequestHandler.is_cgis
	,DI66 %%c1--kk.'":d>R"R"R$))#wqy99Gkk.'":d>R"R"RQ;;'1>'!)**3M$D $JDM4urz/cgi-binz/htbinc"	t|Sr*)r)rrLs  r
is_executablez#CGIHTTPRequestHandler.is_executables?$rct	tj|\}}|dvS)N)z.pyz.pyw)rrLrmrX)rrLrrs    r	is_pythonzCGIHTTPRequestHandler.is_pythons1<W%%d++
dzz||..rcR	|j\}}|dz|z}|dt|dz}|dkr}|d|}||dzd}||}tj|r+||}}|dt|dz}nn|dk}|d\}}}	|d}|dkr|d|||d}}
n|d}}
|dz|
z}||}tj|s%|	tjd|zdStj|s%|	tj
d|zdS||}
|js|
s:||s%|	tj
d|zdSt#jtj}||d	<|jj|d
<d|d<|j|d
<t1|jj|d<|j|d<t6j|}||d<|||d<||d<|	|d<|jd|d<|j d}|r|!}t|dkrddl"}ddl#}|d|d<|d$dkr	|d%d}|&|'d}|!d}t|dkr|d|d<n#|j(tRf$rYnwxYw|j d|j*|d<n|jd|d<|j d}|r||d<|j d }|r||d!<|j+d"d#}d$,||d%<|j d&}|r||d'<t[d|j+d(g}d),|}|r||d*<d+D]}|.|d|/tj0d,|1|	2d-d.}|jr|
g}d/|vr|3|ti}|j56t	j7}|dkrt	j8|d\}}tsj9|j:gggddr>|j:;dsn#tsj9|j:gggdd>t	j<|}|r|=d0|dS		t	j>|n#t~$rYnwxYwt	j@|j:Adt	j@|j5Adt	jB|||dS#|jC|jD|jt	jEd1YdSxYwddlF} |g}!||rOtjH}"|"$Id2r|"dd3|"d4dz}"|"d5g|!z}!d/|	vr|!3|	|Jd6| K|!	t|}#n#ttf$rd}#YnwxYw| O|!| jP| jP| jP|7}$|j$d8kr!|#dkr|j:;|#}%nd}%tsj9|j:jQgggddrH|j:jQRdsn(tsj9|j:jQgggddH|$S|%\}&}'|j5T|&|'r|=d9|'|$jUV|$jWV|$jX}(|(r|=d:|(dS|Jd;dS)<Nr'r
rr]r6zNo such CGI script (%r)z#CGI script is not a plain file (%r)z!CGI script is not executable (%r)SERVER_SOFTWARESERVER_NAMEzCGI/1.1GATEWAY_INTERFACESERVER_PROTOCOLSERVER_PORTREQUEST_METHOD	PATH_INFOPATH_TRANSLATEDSCRIPT_NAMEQUERY_STRINGREMOTE_ADDR
authorizationr	AUTH_TYPEbasicascii:REMOTE_USERzcontent-typeCONTENT_TYPEzcontent-lengthCONTENT_LENGTHrefererHTTP_REFERERacceptr,HTTP_ACCEPTz
user-agentHTTP_USER_AGENTcookiez, HTTP_COOKIE)rREMOTE_HOSTrrrrzScript output follows+r=zCGI script exit code rzw.exez-uzcommand: %s)stdinstdoutrenvpostz%szCGI script exit status %#xzCGI script exited OK)Yrrr2rrrLrrxexistsrHrr)r&	FORBIDDENr	have_forkrcopydeepcopyenvironrserverrrJr>rr:r r!rKrrSrWrBbase64binasciirXrdecodebytesdecodeErrorUnicodeErrorget_content_typeget_allrra
setdefaultrr6rrrrrorprwaitpidselectrQreadwaitstatus_to_exitcoderrsetuidr+dup2r-execvehandle_errorrequest_exit
subprocessrrr#rlist2cmdlinerFr4rDPopenPIPE_sockrecvcommunicaterrr7r
returncode))rdirrestrLinextdirnextrest	scriptdirrsrzscript
scriptname
scriptfileispyruqrestrrrlengthrruaco
cookie_strk
decoded_queryrrpidstsexitcodercmdlineinterpnbytespdatarrstatuss)                                         rrzCGIHTTPRequestHandler.run_cgis
#M	TSy4IIc3s88A:&&1ff2A2hGAaCDDzH++G44Iw}}Y''
#XTIIc3s88A:..1ff,,a
IIcNN668T!""XDFFDF3Y'
((44
w~~j))	OO$)J6
8
8
8
Fw~~j))	OO$5
B
D
D
D
F~~j))>		%%j11
(7*DFFFmBJ''!%!4!4!6!6![4M#, !%!6 !899M $%%d++!K!%!4!4V!<!<'M#N!03M((99
	B)//11M=!!Q&&''''''''#0#3K  #))++w66	B(5a(8(?(?(H(H
(.(:(:=(I(I(.w&
)6(;(;C(@(@
}--221>q1AC
.%NL9<N++3"&,"?"?"A"AC"&,~">C!!"233	+$*C !,""9--	*")C%%h33 XXf--M
\

l
+
+
	(%'C!"
D$,..x<<
=
=YYr]]
	,!+C
D	"	"ANN1b!!!!:=*ABBB

c3//
>I	98D-''M***\\FJ'))Caxx:c1--SmTZL"b!<<Q?:??1--mTZL"b!<<Q?4S99GNN#E8#E#EFFF

If%%%%D
))++Q///
))++Q///	*dC00000
((t7JKKK






!lG~~j))
3<<>>**7337#CRC[6"##;6F!4.72%u%%%]J,C,CG,L,LMMM
Vz*



  '1(2(2'*	!##A|!!##v--&1**zv..-!1 2BA>>qA
z',,Q//-!1 2BA>>qA
]]400NFFJV$$$
-tV,,,
HNN
HNN\F
9;VDDDDD  !788888sPAOOO/Z\
Z\ZA1\;]3```N)rrrrlrrrbufsizerrrrrrrrrrrrsF##IH000<<<4"8,O   ///
x9x9x9x9x9rrctj|tjtjd}t	t|\}}}}}||fS)N)typeflags)rgetaddrinfoSOCK_STREAM
AI_PASSIVEnextiter)addressinfosfamilyrproto	canonnamesockaddrs       r_get_best_familyrsS	




E
04DKK/@/@,FD%H8rri@c	t||\|_}||_|||5}|jdd\}}d|vrd|dn|}td|d|d|d|d		|n3#t$r&td	tj	d
YnwxYwddddS#1swxYwYdS)Nrr[]zServing HTTP on z port z	 (http://z/) ...z&
Keyboard interrupt received, exiting.r)
raddress_familyrJrgetsocknameprint
serve_foreverKeyboardInterruptrexit)	HandlerClassServerClassprotocolrbindaddrhttpdrurl_hosts	         rtestr"sw
(8d'C'C$K$,L!	T<	(	(E\--//3
d"%++;t;;;;4

/t
/
/4
/
/
/
/"&
/
/
/	
	
	
	!!!! 			;<<<HQKKKKK	s6A
C;BC-C=C?CCCC__main__z--cgi
store_truezrun as CGI server)actionhelpz-bz--bindADDRESSz.bind to this address (default: all interfaces))metavarr&z-dz--directoryz1serve this directory (default: current directory))defaultr&z-pz
--protocolVERSIONz3conform to this HTTP version (default: %(default)s))r(r)r&rr]z(bind to this port (default: %(default)s))r)rnargsr&c$eZdZfdZdZxZS)DualStackServerctjt5|jtjtjddddn#1swxYwYtSr)	
contextlibsuppress	Exceptionr
setsockoptIPPROTO_IPV6IPV6_V6ONLYr	r)rrs rrzDualStackServer.server_binds$Y//
@
@&&');Q@@@
@
@
@
@
@
@
@
@
@
@
@
@
@
@
@77&&(((s1AAAcL||||tjdS)Nr)RequestHandlerClassrr)rrrs   rfinish_requestzDualStackServer.finish_requests4$$Wnd/3~
%
?
?
?
?
?r)rrrrr7rurvs@rr-r-sG	)	)	)	)	)	?	?	?	?	?	?	?rr-)rrrrr)7r__all__rr/email.utilsrrhttp.clientrNrOrrorr_rrhrr
rrurllib.parser rrrrrThreadingMixInrStreamRequestHandlerrrrrrrrrr"rargparser/ArgumentParserparseradd_argumentrrF
parse_argsrcgi
handler_classr-rrrrrr<module>rEsd
								















 7	 	 	 	 	 '	 	 	 ,5zqqqqq\>qqqh@*@*@*@*@*5@*@*@*J,,,`



 $$$
C9C9C9C9C94C9C9C9L-(4d.zOOO
$X
$
&
&F
0222
h	9:::mYRY[[<===lI *67773c6777Dx1-

0
?????-???	D"#
Y
YQr