
    d?                     b   U 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 dl
mZ d dlmZ ej        rd dlmZ d dlmZ d d	lmZ d
dlmZ daej        e j                 ed<    e            Z edd
d
                                          Z ed ej         ej         dD                       ZdddddZ  e e!d           e!dd                    D ]7Z"de"d#                    d          e e"$                    d
ej%                  <   8 ej&        d          Z' ej&        d          Z(dZ) ej&        dej*                  Z+ G d  d!          Z, e,            Z-ej.        d"e/d#ej0        e/ge/f         fd$            Z1ej.        d"e2d#ej0        e/ge2f         fd%            Z1d"ej3        d#ej0        e/gej3        f         fd&Z1d'ej4        ej3        d(f         d#dfd)Z5 ej6                    Z7e7d*fd+ej8        e/e2f         d,e/d-e/d#e2fd.Z9ej.        	 	 	 dZd+dd,ej        e/         d-e/d/e:d#df
d0            Z;ej.        	 	 	 dZd+ej<        d,ej        e/         d-e/d/e:d#e/f
d1            Z;e7d*d2fd+ej        ej<                 d,ej        e/         d-e/d/e:d#ej        ej8        e/e2f                  f
d3Z;	 d[d6e/d,e/d-e/d#e/fd7Z=	 d[d6e/d,e/d-e/d#e/fd8Z>d9ej8        d:         d#d;fd<Z?d=e j        d#e:fd>Z@ G d? d@e jA                  ZBdAe/dBe/dCej<        dDej<        d#df
dEZCej.        d\dG            ZDej.        dFed#efdH            ZDdFej        e         d#ej        e         fdIZD ejE        dJ          ZF G dK dLejG        eF                   ZHdMe2d#e2fdNZIdMe2d#e2fdOZJdMe2d#ejK        ej4        e2e2f                  fdPZLdQe/d#e2fdRZMdQej8        e/e2f         d#e/fdSZNej.        d]dT            ZOej.        dQe/d#e2fdU            ZOdQej        e/         d#ej        e2         fdVZOd^dWej        dX         d#dXfdYZPdS )_    N)date)datetime)timezone)chain)WeakKeyDictionary)StartResponse)WSGIApplication)WSGIEnvironment   )Request_loggeri  c              #   @   K   | ]}|                     d           V  dS )asciiNencode).0cs     2lib/python3.11/site-packages/werkzeug/_internal.py	<genexpr>r      sB          	 HHW               z/=!#$%&'*+-.^_`|~:s   \054s   \073s   \"s   \\)   ,   ;   "   \          \03olatin1s   \\[0-3][0-7][0-7]s   [\\].s/   [\w\d!#%&\'~_`><@,:/\$\*\+\-\.\^\|\)\(\?\}\{\=]s   
    (?P<key>[^=;]*)
    (?:\s*=\s*
        (?P<val>
            "(?:[^\\"]|\\.)*" |
             (?:.*?)
        )
    )?
    \s*;
)flagsc                   &    e Zd ZdefdZdefdZdS )_Missingreturnc                     dS )Nzno value selfs    r   __repr__z_Missing.__repr__3       zr   c                     dS )N_missingr&   r'   s    r   
__reduce__z_Missing.__reduce__6   r*   r   N)__name__
__module____qualname__strr)   r-   r&   r   r   r#   r#   2   sJ        #    C      r   r#   	referencer$   c                     d S Nr&   r2   s    r   _make_encode_wrapperr6   =       Cr   c                     d S r4   r&   r5   s    r   r6   r6   B   r7   r   c                 \    t          | t                    rd S t          j        dd          S )zCreate a function that will be called with a string argument. If
    the reference is bytes, values will be encoded to bytes.
    c                     | S r4   r&   )xs    r   <lambda>z&_make_encode_wrapper.<locals>.<lambda>L   s     r   r   r    )
isinstancer1   operatormethodcallerr5   s    r   r6   r6   G   s1     )S!! { 8444r   value.c                     | sdS t          | d         t                    rt          nt          t          fd| D                       rt	          d| d          dS )z0Ensure tuple items are all strings or all bytes.Nr   c              3   :   K   | ]}t          |           V  d S r4   )r=   )r   item	item_types     r   r   z#_check_str_tuple.<locals>.<genexpr>X   s0      
=
=tz$	***
=
=
=
=
=
=r   z(Cannot mix str and bytes arguments (got ))r=   r1   bytesany	TypeError)r@   rD   s    @r   _check_str_tuplerI   Q   sx     !%(C00;eI

=
=
=
=u
=
=
=== OM5MMMNNNO Or   strictr;   charseterrorsc                     | t          | t                    r| S t          | t          t          f          rt          |           S t          | t                    r|                     ||          S t          d          )NzExpected bytes)r=   rF   	bytearray
memoryviewr1   r   rH   )r;   rK   rL   s      r   	_to_bytesrP   _   sy     	 Jq%(( !i,-- Qxx!S )xx(((
$
%
%%r   allow_none_charsetc                     d S r4   r&   r;   rK   rL   rQ   s       r   _to_strrT   n   	     Cr   c                     d S r4   r&   rS   s       r   rT   rT   x   rU   r   Fc                     | t          | t                    r| S t          | t          t          f          st          |           S ||r| S |                     ||          S r4   )r=   r1   rF   rN   decoderS   s       r   rT   rT      sm     	 Jq#&& a%+,, 1vv  	H88GV$$$r   utf-8replacesc                 T    |                      d                              ||          S Nr    )r   rX   r[   rK   rL   s      r   _wsgi_decoding_dancer_      s&     88H$$Wf555r   c                     t          | t                    r|                     d|          S |                     |                              d|          S r]   )r=   rF   rX   r   r^   s      r   _wsgi_encoding_dancera      sL     !U *xx&)))88G##Hf555r   obj)r
   r   r
   c                     t          | d|           }t          |t                    sJ t          |           j        d            |S )Nenvironz- is not a WSGI environment (has to be a dict))getattrr=   dicttyper.   )rb   envs     r   _get_environri      s_    
#y#
&
&CT  N N
s))
MMMN N N Jr   loggerc                     |                                  | }|r3t          fd|j        D                       rdS |j        sn	|j        }|3dS )znCheck if there is a handler in the logging chain that will handle
    the given logger's effective level.
    c              3   .   K   | ]}|j         k    V  d S r4   )level)r   handlerrm   s     r   r   z%_has_level_handler.<locals>.<genexpr>   s*      FF'w}%FFFFFFr   TF)getEffectiveLevelrG   handlers	propagateparent)rj   currentrm   s     @r   _has_level_handlerrt      sv     $$&&EG
 !FFFFW5EFFFFF 	4  	.  ! 5r   c                   $     e Zd ZdZd fdZ xZS )_ColorStreamHandlerz=On Windows, wrap stream with Colorama for ANSI style support.r$   Nc                     	 dd l }|                    t          j                  }n# t          $ r d }Y nw xY wt                                          |           d S )Nr   )coloramaAnsiToWin32sysstderrImportErrorsuper__init__)r(   rx   stream	__class__s      r   r~   z_ColorStreamHandler.__init__   sp    	6OOO ))#*55FF  	 	 	FFF	
 	     s   ' 66)r$   N)r.   r/   r0   __doc__r~   __classcell__)r   s   @r   rv   rv      sC        GG! ! ! ! ! ! ! ! ! !r   rv   rg   messageargskwargsc                    t           t          j        d          a t           j        t          j        k    r$t                               t          j                   t          t                     s&t                               t                                  t          t           |           |                                g|R i | dS )a  Log a message to the 'werkzeug' logger.

    The logger is created the first time it is needed. If there is no
    level set, it is set to :data:`logging.INFO`. If there is no handler
    for the logger's effective level, a :class:`logging.StreamHandler`
    is added.
    Nwerkzeug)r   logging	getLoggerrm   NOTSETsetLevelINFOrt   
addHandlerrv   re   rstrip)rg   r   r   r   s       r   _logr      s      6#J//=GN* 	+W\***!'** 	6244555GGT7>>++=d===f=====r   dtc                     d S r4   r&   r   s    r   
_dt_as_utcr      r7   r   c                     d S r4   r&   r   s    r   r   r      r7   r   c                     | | S | j          |                     t          j                  S | j         t          j        k    r|                     t          j                  S | S )N)tzinfo)r   rZ   r   utc
astimezoner   s    r   r   r      sY    	 		y +zzz...	hl	" +}}X\***Ir   _TAccessorValuec                   "   e Zd ZdZdZ	 	 	 	 	 ddedej        e         dej        ej	        egef                  dej        ej	        egef                  dej        e
         d	ej        e         d
dfdZdej        d
ej        eej        f         fdZej        ddded
dfd            Zej        dej        ded
efd            Zdej        ej                 ded
ej        edf         fdZdej        ded
dfdZdej        d
dfdZd
efdZdS )_DictAccessorPropertyz7Baseclass for `environ_property` and `header_property`.FNnamedefault	load_func	dump_func	read_onlydocr$   c                 ^    || _         || _        || _        || _        ||| _        || _        d S r4   )r   r   r   r   r   r   )r(   r   r   r   r   r   r   s          r   r~   z_DictAccessorProperty.__init__  s:     	"" 	'&DNr   instancec                     t           r4   )NotImplementedErrorr(   r   s     r   lookupz_DictAccessorProperty.lookup  s    !!r   ownerz&_DictAccessorProperty[_TAccessorValue]c                     d S r4   r&   r(   r   r   s      r   __get__z_DictAccessorProperty.__get__  s	     	r   c                     d S r4   r&   r   s      r   r   z_DictAccessorProperty.__get__  s    r   c                     || S |                      |          }| j        |vr| j        S || j                 }| j        4	 |                     |          S # t          t
          f$ r
 | j        cY S w xY w|S r4   )r   r   r   r   
ValueErrorrH   )r(   r   r   storager@   s        r   r   z_DictAccessorProperty.__get__  s      	K++h''9G# 	 <	"> 	$$~~e,,,	* $ $ $|###$ s   A A/.A/r@   c                     | j         rt          d          | j        2|                     |          |                     |          | j        <   d S ||                     |          | j        <   d S Nzread only property)r   AttributeErrorr   r   r   )r(   r   r@   s      r   __set__z_DictAccessorProperty.__set__4  sm    > 	7 !5666> 	5/3~~e/D/DDKK!!$),,,/4DKK!!$),,,r   c                     | j         rt          d          |                     |                              | j        d            d S r   )r   r   r   popr   r   s     r   
__delete__z _DictAccessorProperty.__delete__=  sE    > 	7 !5666H!!$)T22222r   c                 B    dt          |           j         d| j         dS )N< >)rg   r.   r   r'   s    r   r)   z_DictAccessorProperty.__repr__C  s&    54::&555555r   )NNNNN)r.   r/   r0   r   r   r1   tOptionalr   Callableboolr~   AnyMutableMappingr   typingoverloadrg   r   Unionr   r   r)   r&   r   r   r   r      s       AAI
 04DHDH&*#  O, :aj#)?@A	
 :aj/):C)?@A :d# Z_ 
   ""qu ")9#qu*)E " " " " _%)	1   _
 _ d     _
15)26	
"JJ	K   *5 5o 5$ 5 5 5 5315 3T 3 3 3 36# 6 6 6 6 6 6r   r   bc                 "   t                      }d}t          j        }|j        }| D ]D}|                    dt
          j                  }|t          vrd} |||          } ||           E|rt          |          S t          d|z   dz             S )NTr   Fr   )	rN   _cookie_quoting_mapgetextendto_bytesrz   	byteorder_legal_cookie_charsrF   )r   buf	all_legal_lookup_pushchar_intchars          r   _cookie_quoter   G  s    
++CI!%GJE    CM22** 	'I74&&Dd Szzd"###r   c                 H   t          |           dk     r| S | d d         dk    s| dd          dk    r| S | dd         } d}t          |           }t                      }|j        }d|cxk    r|k     r#n nt                              | |          }t
                              | |          }|s |s|                    | |d                     ndx}}|r|                    d          }|r|                    d          }|r:|r||k     r2 || ||                     || |dz   |dz                       |dz   }nI || ||                    |                    t          | |dz   |dz            d                     |dz   }d|cxk    r|k     n t          |          S )N   r   r   r         )
lenrN   r   	_octal_research	_quote_restartappendintrF   )	r   inrvr   o_matchq_matchjks	            r   _cookie_unquoter   Y  s   
1vvz !u} "##$ 	!B$A	AAA	BIE
q    1     ""1a((""1a(( 	w 	IIae
A 	!a  A 	!a  A 	G 	q1u 	E!AaC&MMME!AEAEM"###AAAE!AaC&MMMIIc!AEAEM*A..///AA% q    1    ( 99r   c              #   b  K   d}t          |           }| dz  } ||k     rt                              | |          }|sdS |                    d          }|                    d                                          }|sd|                    d          pd}|t          |          fV  ||k     dS dS )z8Lowlevel cookie parsing facility that operates on bytes.r   r   keyvalr   N)r   
_cookie_rematchendgroupstripr   )r   r   r   r   r   r@   s         r   _cookie_parse_implr   }  s      	AAAIA
a% *  A&& 	EIIaLLkk%  &&(( 	E"")c?5)))))) a% * * * * *r   domainc                 
   t          | t                    r|                     d           | S 	 |                     d          S # t          $ r Y nw xY wd                    d |                     d          D                       S )Nr      .c              3   @   K   | ]}|                     d           V  dS )idnaNr   )r   ps     r   r   z_encode_idna.<locals>.<genexpr>  s.      AA!QXXf%%AAAAAAr   .)r=   rF   rX   r   UnicodeErrorjoinsplitr   s    r   _encode_idnar     s    &%   g}}W%%%    99AAv||C/@/@AAAAAAs   A 
AAc                    t          | t                    r)	 |                     d          } n# t          $ r | cY S w xY wdt          dt          fdd                    fd|                     d          D                       S )Nr   partr$   c                 z    	 |                      d          S # t          $ r |                      dd          cY S w xY w)Nr   r   ignore)rX   r   )r   s    r   decode_partz!_decode_idna.<locals>.decode_part  sN    	2;;v&&& 	2 	2 	2;;w11111	2s     ::r   c              3   .   K   | ]} |          V  d S r4   r&   )r   r   r   s     r   r   z_decode_idna.<locals>.<genexpr>  s+      ??qKKNN??????r   r   )r=   r1   r   r   rF   r   r   )r   r   s    @r   _decode_idnar    s     &# 	]]7++FF 	 	 	MMM	2% 2C 2 2 2 2 88????FLL,>,>??????s   . ==c                     d S r4   r&   r   s    r   _make_cookie_domainr    r7   r   c                     d S r4   r&   r   s    r   r  r    r7   r   c                     | d S t          |           } d| v r|                     dd          d         } d| v r| S t          d          )N   :r   r   r   a'  Setting 'domain' for a cookie on a server running locally (ex: localhost) is not supported by complying browsers. You should have something like: '127.0.0.1 localhost dev.localhost' on your hosts file and then point your server to run on 'dev.localhost' and also set 'domain' for 'dev.localhost')r   r   r   r   s    r   r  r    si     t&!!Fv~ *dA&&q)v~ 
	D  r   appr	   c                      dt           dt          fd}d                    d  |d                                          D                       ddd	d
dt          j        t                    f fd}|S )z0Like the name says.  But who knows how it works?gyverr$   c                     dd l }dd l}|                    |                    |                                         d          S )Nr   r   )base64zlib
decompress	b64decoderX   )r
  r  r  s      r   bzzzzzzzz_easteregg.<locals>.bzzzzzzz  sB    v//6677>>wGGGr   
c                 >    g | ]}|d t          |          z
  dz  z   S )M   r   )r   )r   r;   s     r   
<listcomp>z_easteregg.<locals>.<listcomp>  s<     $	
 $	
 $	
 c!ff##$	
 $	
 $	
r   s#	  
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
7f2zLkGNv8b191cD/3vs9Q833z8trd   r
   start_responser   c                 |   	 ddt           dt          j        t          j        t           t           f                  dt          j        dt          j        t          gt          j        f         ffd}%|                     d          dk    r | |          S  |dd	g           d
 d                    d          gS )Nstatusheadersexc_infor$   c                 H    |                     d            | ||          S )N)zX-Powered-ByWerkzeug)r   )r  r  r  r  s      r   injecting_start_responsezA_easteregg.<locals>.easteregged.<locals>.injecting_start_response  s,     NN7888!>&'8<<<r   QUERY_STRINGmacgybarchakkuz200 OK)zContent-Typez	text/htmla  <!doctype html>
<html lang=en>
<head>
<title>About Werkzeug</title>
<style type="text/css">
  body { font: 15px Georgia, serif; text-align: center; }
  a { color: #333; text-decoration: none; }
  h1 { font-size: 30px; margin: 20px 0 10px 0; }
  p { margin: 0 0 30px 0; }
  pre { font: 11px 'Consolas', 'Monaco', monospace; line-height: 0.95; }
</style>
</head>
<body>
<h1><a href="http://werkzeug.pocoo.org/">Werkzeug</a></h1>
<p>the Swiss Army knife of Python web development.</p>
<pre>z


</pre>
</body>
</html>r    r4   )	r1   r   ListTupler   r   rF   r   r   )rd   r  r  r  r
  s    ` r   eastereggedz_easteregg.<locals>.easteregged  s     PT	= 	=	="#&c):";	=GHu	=Z'	= 	= 	= 	= 	= 	=  	:w{{>::>NN 	:3w 8999  ,I+JKKK  !  $ 6 '
 	
r   )rF   r1   r   
splitlinesr   Iterable)r  r  r!  r
  s   `  @r   
_eastereggr$    s    H H# H H H H II$	
 $	
X ! !B jllG$	
 $	
 $	
& &EP"
""
4C"
	
E	"
 "
 "
 "
 "
 "
 "
H r   )...)rY   rZ   )r   Nr$   N)r   Nr$   Nr4   )Qr   r>   restringrz   r   r   r   r   r   	itertoolsr   weakrefr   TYPE_CHECKING_typeshed.wsgir   r	   r
   wrappers.requestr   r   r   Logger__annotations___signature_cache	toordinal
_epoch_ord	frozensetascii_lettersdigitsr   r   range_ir   r   r   compiler   r   _legal_cookie_chars_reVERBOSEr   r#   r,   r   r1   r   r6   rF   AnyStrr   rI   getdefaultencoding_default_encodingr   rP   r   rT   r   r_   ra   ri   rt   StreamHandlerrv   r   r   TypeVarr   Genericr   r   r   Iteratorr   r   r  r  r$  r&   r   r   <module>r@     s     				  



                              % % % % % %? *,,,,,,............))))))&*GN	# * * *$$&& T$1''))
i    $GfmGGG        
 &XVGTT 
%b		55c??
+
+ X XB9Fb9M9Mh9W9WAs}5566BJ,--	BJy!!	L RZ	 *  
        8:: C AJucz,B     E aj#.F    5AH 5SE18O1L 5 5 5 5OAGAHcM2 Ot O O O O +C*,,  ,=H& &wsEz&%(&FI&
& & & &   #"	 Z_  	
 
      #"	 uZ_  	
 	     1$	% %z!%%Z_% % 	%
 ZU
#$% % % %( 3<6 6
66,/66 6 6 6 3<6 6
66,/66 6 6 6ag:; @Q    w~ $    &! ! ! ! !'/ ! ! !>s >S > >!% >D > > > >,     8     	1:h' 	AJx,@ 	 	 	 	 !)-..H6 H6 H6 H6 H6AIo6 H6 H6 H6V$U $u $ $ $ $$!u ! ! ! ! !H*% *AJqwue|/D$E * * * *,B B B B B B @e, @ @ @ @ @,          
3 AJu4E    "U UAJ01 U=N U U U U U Ur   