f.T ddlmZmZmZddlmZddlZddlZddlZgdZ gdZ gdZ dZ hd j Zd Zd ZGd d ZGddeZGddeZGddeZGddeZdS)) FileWrapper guess_scheme is_hop_by_hop)HeadersN) BaseHandler SimpleHandlerBaseCGIHandler CGIHandler IISCGIHandler read_environ)MonTueWedThuFriSatSun) NJanFebMarAprMayJunJulAugSepOctNovDecc tj|\ }}}}}}}}} dt||t|||||fzS)Nz#%s, %02d %3s %4d %02d:%02d:%02d GMT)timegmtime _weekdayname _monthname) timestampyearmonthdayhhmmsswdyzs 7/opt/alt/python311/lib64/python3.11/wsgiref/handlers.pyformat_date_timer1sO-1[-C-C*D%b"b"a 0R#z%0$B4 > HTTPS AUTH_TYPE PATH_INFO REMOTE_USER SCRIPT_NAME CONTENT_TYPE QUERY_STRING REMOTE_IDENTCONTENT_LENGTHREQUEST_METHODct|pU|dp@|dp+|dot|ddS)NHTTP_SSL_ REDIRECT_ ) _is_request startswith_needs_transcode)ks r0rDrDsd q>> CQ\\'22 Call66J6J C LL % % A*:1QRR5*A*ACr2cV tj}d} dd|n#t$rd}YnwxYwi}tjD]F\}}t|r+tjdkrtj dd }| dr)|d d}n| d rn| d r-d |vr)|d d}nS||d d}n)||| d}|||<H|S) Nsurrogateescapezutf-8replacewin32SERVER_SOFTWAREzmicrosoft-iis/ iso-8859-1zapache/z simplehttp/zpython/3) sysgetfilesystemencodingencode LookupErrorosenvironitemsrDplatformgetlowerrCdecode)encescrRrEvsoftwares r0r r "s1 # % %C C '3 G    ""++1 A  ( <|w&&:>>*;R@@FFHH&&'788F))00>>AA((33F '' 66 F"h..))00>>AA i0077 EEAA HHS#&&--l;; Ns / >>ceZdZ dZdZdZdZdZdZdZ e Z e Z eZdZdZdgZdZdxZZdZdZd Zd Zd Zd Zd ZdZdZd"dZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.d Z/d!Z0dS)#r)rrTFz1.0Nz500 Internal Server Error)z Content-Typez text/plains;A server error occurred. Please contact the administrator.rc0 |||j|j|_|dS#t t tf$rYdS |YdS#| xYwxYwN) setup_environrRstart_responseresultfinish_responseConnectionAbortedErrorBrokenPipeErrorConnectionResetError handle_errorclose)self applications r0runzBaseHandler.runs$      %+dlD4GHHDK  " " " " "&9MN    FF  !!######  s$AAB"B$A;;BBc |jx}|_|||d<||d<|j|d<|j|d<||d<|j |d<|j |d<|j |j |d<|j r$|j r|d |j dSdSdS) Nz wsgi.inputz wsgi.errorsz wsgi.versionz wsgi.run_oncezwsgi.url_schemezwsgi.multithreadzwsgi.multiprocesszwsgi.file_wrapperrK) os_environcopyrR add_cgi_vars get_stdin get_stderr wsgi_version wsgi_run_once get_schemewsgi_multithreadwsgi_multiprocesswsgi_file_wrapper origin_serverserver_software setdefault)rhenvs r0r_zBaseHandler.setup_environs4!_11333dl #'>>#3#3L#'??#4#4M#'#4N#'#5O#'??#4#4 #'#8 #'#9   ! -'+'=C# $   C$"6 C NN,T-A B B B B B C C C Cr2cP |r|s3|jD]}||||dS#t |jdr|jxYw)Nrg)result_is_filesendfilerawritefinish_contentrghasattrrhdatas r0rbzBaseHandler.finish_responses  &&(( &  & K%%DJJt$$$$##%%% JJLLLLL t{G,, $ !!### s AA441B%c, t|jSr^)rrRrhs r0rszBaseHandler.get_schemes.DL)))r2c t|j}|dkrt|j|jd<dSdS#t t tf$rYdSwxYw)NrContent-Length)lenrastr bytes_sentheaders TypeErrorAttributeErrorNotImplementedError)rhblockss r0set_content_lengthzBaseHandler.set_content_lengthssN %%Fqyy14T_1E1E -.y.)<=    DD s=AAcF d|jvr|dSdS)Nr)rrrs r0cleanup_headerszBaseHandler.cleanup_headerss6  4< / /  # # % % % % % 0 /r2c |r |jr d}n#d}wxYw|jtd||_|||_||d} |jS)NzHeaders already set!Status) headers_sentrAssertionErrorstatus headers_class_convert_string_typer~)rhrrexc_infonamevals r0r`zBaseHandler.start_responsesB  9 $ 4 \ % !788 8 ))'22 **68<<  Jzsc t|tur|Std|t |)Nz!{0} must be of type str (got {1}))typerrformatrepr)rhvaluetitles r0rz BaseHandler._convert_string_typesF' ;;#  L / 6 6ud5kk J J   r2cD |jr|r|d|jd|jddd|jvrI|dttjzd|j r=d|jvr6|d|j zddSdSdSdS|d |jzddS) NzHTTP/ z rLDatez Date: %s Serverz Server: %s z Status: %s ) rwclient_is_modern_write http_versionrrOrr1r"rxrs r0 send_preamblezBaseHandler.send_preambles>D   O$$&& ` 1B1B1B4;;;OWWXdeefff--KK'*:49;;*G*GGOOP\]]'`HDL,H,HKK!1D4H!H P PQ] ^ ^_____ ` ` ``,H,H KK)DK7?? MM N N N N Nr2c  |jstd|js)t||_|n|xjt|z c_|||dS)Nzwrite() before start_response())rrrrr send_headersr_flushrs r0r~zBaseHandler.writes9 { ) !BCC C" )!$iiDO        OOs4yy (OO D r2c dS)NFrs r0r}zBaseHandler.sendfile(s "ur2cx |js1|jdd|dSdS)Nr0)rrryrrs r0rzBaseHandler.finish_content=sH<   L # #$4c : : :         Dr2c t|jdr|jdx|_x|_x|_|_d|_d|_dS#dx|_x|_x|_|_d|_d|_wxYw)NrgrF)rrargrrrRrrrs r0rgzBaseHandler.closeGs  ;t{7++ $ !!###FJ JDK J$, Jt|DOU!2!2!2GK JDK J$, Jt|DOU!2!:!:!:!:s .A,B c |d|_|jr|r=||t |jdSdS)NT)rrrwrrrbytesrrs r0rzBaseHandler.send_headersTs{?  ! -T%:%:%<%< -    KKdl++ , , , , , - -r2cD |j}|duot|j|Sr^)rv isinstancera)rhwrappers r0r|zBaseHandler.result_is_file]s)N(d"Fz$+g'F'FFr2cJ |jddkS)NSERVER_PROTOCOLzHTTP/0.9)rRupperrs r0rzBaseHandler.client_is_moderncs$:|-.4466*DDr2c ddlm}|}||d|d|d|j||d}dS#d}wxYw)Nr)print_exceptionr) tracebackrrptraceback_limitflush)rhrrstderrs r0 log_exceptionzBaseHandler.log_exceptionhs   1 1 1 1 1 1__&&F O Xa[(1+$f    LLNNNHHHtHOOOOs AAAc |tj|js;||j|j|_|dSdSr^) rrMrr error_outputrRr`rarbrs r0rfzBaseHandler.handle_errorxshL 3<>>***  #++DL$:MNNDK  " " " " " # #r2ct ||j|jddtj|jgSr^) error_status error_headersrMr error_body)rhrRr`s r0rzBaseHandler.error_outputs=  t();AAA)>s|~~NNN  r2c tr^rrs r0rzBaseHandler._writes "!r2c tr^rrs r0rzBaseHandler._flushs "!r2c tr^rrs r0rozBaseHandler.get_stdins B!!r2c tr^rrs r0rpzBaseHandler.get_stderrs C!!r2c tr^rrs r0rnzBaseHandler.add_cgi_varss L!!r2r^)1__name__ __module__ __qualname__rqrtrurrrwrrxr rlrrvrrrrrrrrarrrrjr_rbrsrrr`rrr~r}rrgrr|rrrfrrrrorprnrr2r0rr^s5LMMLO  J$MO.L23MOJFVLGJ0CCC*4***   &&&8    O O O** ; ; ;---GGG EEE  ###!!!&"""""""""""""""""r2rc8eZdZ d dZdZdZdZdZdZd S) r TFcZ||_||_||_||_||_||_dSr^)stdinstdoutrbase_envrtru)rhrrrrR multithread multiprocesss r0__init__zSimpleHandler.__init__s6    +!-r2c|jSr^)rrs r0rozSimpleHandler.get_stdins zr2c|jSr^)rrs r0rpzSimpleHandler.get_stderrs {r2cD|j|jdSr^)rRupdaterrs r0rnzSimpleHandler.add_cgi_varss  DM*****r2c|j|}||t|krdSddlm}|dt  ||d}|sdS|j|}))Nr)warnz9SimpleHandler.stdout.write() should not do partial writes)rr~rwarningsrDeprecationWarning)rhrrars r0rzSimpleHandler._writes""4(( >Vs4yy00 F!!!!!!  H     -=D [&&t,,F  -r2cZ|j|jj|_dSr^)rrrrs r0rzSimpleHandler._flushs& k' r2N)TF) rrrrrorprnrrrr2r0r r s} (-....+++ - - -(((((r2r ceZdZ dZdS)r FN)rrrrwrr2r0r r s&MMMr2r ceZdZ dZiZdZdS)r Tc t|tjjtjjtjtdddS)NFTrr)r rrMrbufferrrr rs r0rzCGIHandler.__init__sI #)"CJ$5sz NND      r2Nrrrrrrlrrr2r0r r s6 MJ     r2r ceZdZ dZiZdZdS)r Tc vt}|dd}|dd}|dz|dzr|t|d|d<t|t jjt j jt j |dddS)Nr5rHr7/FTr) r rUrCrr rrMrrrr)rhrRpathscripts r0rzIISCGIHandler.__init__1s{{;++]B// H  , , 6#'F #5GK  #)"CJ$5sz T      r2Nrrr2r0r r s4 MJ      r2r )utilrrrrrrMrQr"__all__r$r%r1 __contains__rBrDr rr r r r rr2r0rs5::::::::::    A@@ 888   CCC999xP"P"P"P"P"P"P"P"f /(/(/(/(/(K/(/(/(d]0