Ë
    rPêj^Š  ã                   óÊ  — 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Zd dlm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZ d dlZd dlmZmZmZmZmZ d dlmZm Z  dd	l!m"Z" dd
l#m$Z$ ddl%m&Z& ddl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z:m;Z; ddl<m=Z=m>Z> ddl?m@Z@mAZAmBZBmCZCmDZD ddlEmFZFmGZG ddlHmIZI ej”                  dk\  rd dlKmLZL n'd dlKZK G d„ deKj˜                  eM   ejœ                  «      ZLdZOerddlPmQZQ ddlRmSZS ddlTmUZU  ed«      ZVdZWeeX   eYd<    ej´                  ddd¬ «       G d!„ d"«      «       Z[e\eMz  e]z  e[z  Z^ej¾                  ejÀ                  z   d#z   Zaee\   eYd$<   d%ea› d&�Zbee\   eYd'<   d(jÇ                  d)jÉ                  d*„ d+ ee efd,d-«      «      z   D «       «      «      Zgee\   eYd.<   d/Zhee\   eYd0<   d1eh› d2eg› d3�Ziee\   eYd4<   d5eb› d6eb› d2ei› d7�Zjee\   eYd8<    ejÖ                  d9«      Zleee\      eYd:<    ejÖ                  ej«      Zmeee\      eYd;<   d<eXd=eFfd>„Zn G d?„ d@ee\e0e   z  ef   e/«      Zo G dA„ dBeo«      Zpy)Cé    N)ÚIteratorÚMappingÚMutableMapping)ÚPattern)ÚMappingProxyType)ÚIOÚTYPE_CHECKINGÚAnyÚFinalÚOptionalÚTypeVarÚcastÚoverload)ÚCIMultiDictÚCIMultiDictProxyÚ	MultiDictÚMultiDictProxyÚMultiMapping)ÚURLÚquery_to_pairsé   )Úhdrs)Úparse_cookie_header)ÚAbstractStreamWriter)Ú	_SENTINELÚDEBUGÚDEFAULT_CHUNK_SIZEÚETAG_ANYÚLIST_QUOTED_ETAG_REÚChainMapProxyÚETagÚHeadersMixinÚ
RequestKeyÚparse_http_dateÚreifyÚsentinelÚset_exception)ÚRawRequestMessage)ÚHttpVersion)ÚBodyPartReaderÚMultipartReader)ÚEmptyStreamReaderÚStreamReader)ÚDEFAULT_JSON_DECODERÚJSONDecoderÚLooseHeadersÚ
RawHeadersÚStrOrURL)ÚHTTPRequestEntityTooLargeÚNotAppKeyWarning)ÚStreamResponse)é   é   )ÚSpooledTemporaryFilec                   ó4   — e Zd ZdZdefd„Zdefd„Zdefd„Zy)r8   a€  Make the spooled file satisfy the documented `FileField.file` type.

        `tempfile.SpooledTemporaryFile` only became an `io.IOBase` subclass in
        3.11 (python/cpython#70363), and never grew the three capability
        predicates before then. Both underlying files (`io.BytesIO` before
        rollover, a `w+b` temp file after) are readable, writable and seekable.
        Úreturnc                  ó   — y©NT© ©Úselfs    úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/aiohttp/web_request.pyÚreadablezSpooledTemporaryFile.readableF   ó   € Øó    c                  ó   — yr<   r=   r>   s    r@   ÚwritablezSpooledTemporaryFile.writableI   rB   rC   c                  ó   — yr<   r=   r>   s    r@   ÚseekablezSpooledTemporaryFile.seekableL   rB   rC   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚboolrA   rE   rG   r=   rC   r@   r8   r8   =   s+   „ ñ	ð	˜dó 	ð	˜dó 	ð	˜dô 	rC   r8   )ÚBaseRequestÚ	FileFieldÚRequest)ÚApplication)ÚRequestHandler)ÚUrlMappingMatchInfoÚ_Té   Ú_FILE_SPOOL_MAX_SIZET)Úauto_attribsÚfrozenÚslotsc                   óL   — e Zd ZU eed<   eed<   ee   ed<   eed<   ee   ed<   y)rN   ÚnameÚfilenameÚfileÚcontent_typeÚheadersN)rH   rI   rJ   ÚstrÚ__annotations__r   Úbytesr   r=   rC   r@   rN   rN   c   s&   … à
ƒIØƒMØ
ˆU‰)ƒOØÓØ˜cÑ"Ô"rC   rN   z!#$%&'*+.^_`|~-Ú_TCHARú[z]+Ú_TOKENz[{}]Ú c              #   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úchr)Ú.0Úcs     r@   ú	<genexpr>rk   s   s   è ø€ ÒK˜ŒS��VÑKùs   ‚)é	   é    é!   é#   é   Ú_QDTEXTz
\\[\t !-~]Ú_QUOTED_PAIRz"(?:ú|z)*"Ú_QUOTED_STRINGú(z)=(z)(:\d{1,4})?Ú_FORWARDED_PAIRz\\([\t !-~])Ú_QUOTED_PAIR_REPLACE_REÚ_FORWARDED_PAIR_REÚ
max_fieldsr:   c                 ó$   — t        | d| › d�¬«      S )NzMaximum number of form fields z
 exceeded.©Útext)r3   )ry   s    r@   Ú_too_many_fieldsr}   ‰   s   € Ü$ØÐ9¸*¸ÀZÐPôð rC   c                   óÈ  — e Zd ZU ej                  ej
                  ej                  ej                  ej                  hZ	e
j                   eg d¢«      z  ZdZee   dz  ed<   dZedz  ed<    e«       Zee   ed<   dddddddœd	ed
edddedddej4                  dededeee   ez  ef   dz  dedz  dedz  dedz  ddfd„Ze e e e e e e e dœdee!z  de"e!z  de#e!z  dee!z  dee!z  dee!z  dee!z  dee!z  dd fd„Z$e%dfd„«       Z&e%dgd„«       Z'e%dejP                  dz  fd „«       Z)e%defd!„«       Z*e%defd"„«       Z+e%defd#„«       Z,e-defd$„«       Z.e-de/fd%„«       Z0e-dej4                  fd&„«       Z1e2d'ee3   de3fd(„«       Z4e2d'edefd)„«       Z4d'eee3   z  defd*„Z4e2d'ee3   d+e3ddfd,„«       Z5e2d'ed+eddfd-„«       Z5d'eee3   z  d+eddfd.„Z5d'eee3   z  ddfd/„Z6defd0„Z7de8eee   z     fd1„Z9e-de:fd2„«       Z;e-de<e=eef   d3f   fd4„«       Z>e-defd5„«       Z?e-defd6„«       Z@e-deAfd7„«       ZBe-defd8„«       ZCe-dedz  fd9„«       ZDe-de/fd:„«       ZEe-defd;„«       ZFe-defd<„«       ZGe-defd=„«       ZHe-dhd>„«       ZIe-defd?„«       ZJe-deKe   fd@„«       ZLe-deMfdA„«       ZNe-deOjž                  dz  fdB„«       ZPe-deOjž                  dz  fdC„«       ZQeRdDede8eS   fdE„«       ZTeUdFedz  de<eSd3f   dz  fdG„«       ZVe-de<eSd3f   dz  fdH„«       ZWe-de<eSd3f   dz  fdI„«       ZXe-deOjž                  dz  fdJ„«       ZYe-de:fdK„«       ZZe-de=eef   fdL„«       Z[e-de\fdM„«       Z]e-defdN„«       Z^e%de:fdO„«       Z_e%de:fdP„«       Z`e-de:fdQ„«       ZadidR„ZbdefdS„ZcdefdT„ZdeedUœdVefdefdW„ZgdehfdX„ZidjdY„ZjdkdZed[edefd\„Zkdefd]„Zld^emde:fd_„Znde:fd`„Zodaepddfdb„Zqdcerddfdd„Zsdide„Zty)lrM   )Ú_messageÚ	_protocolÚ_payload_writerÚ_payloadÚ_headersÚ_methodÚ_versionÚ_rel_urlÚ_postÚ_read_bytesÚ_stateÚ_cacheÚ_taskÚ_client_max_sizeÚ_client_max_fieldsÚ_loopÚ_transport_sslcontextÚ_transport_peernameÚ_transport_socknameNr‡   rˆ   Ú_seen_str_keysrT   iè  )Úclient_max_sizeÚclient_max_fieldsÚstateÚschemeÚhostÚremoteÚmessageÚpayloadÚprotocolrQ   Úpayload_writerÚtaskúasyncio.Task[None]Úloopr“   r”   r•   r–   r—   r˜   r:   c                ó,  — || _         || _        || _        || _        |j                  | _        |j                  | _        |j                  | _	        i | _
        |j                  }|j                  r‘|
€|j                  r|j                  rdnd}
|
� |j                  |
«      }|
| j                  d<   |�|j!                  |«      }|| j                  d<   |j"                  | j                  d<   |j%                  «       | _        n)|| _        |
�|
| j                  d<   |�|| j                  d<   |	€i n|	| _        || _        || _        || _        || _        |j                  | _        |j4                  | _        |j8                  | _        |�|| j                  d<   y y )NÚhttpsÚhttpr–   Úurlr—   r˜   )r   r€   r�   r‚   r^   rƒ   Úmethodr„   Úversionr…   rŠ   r£   Úabsoluter–   Ússl_contextÚwith_schemeÚ	with_hostr—   Úrelativer†   r‰   r‹   rŒ   r�   rŽ   r�   Úpeernamer�   Úsocknamer‘   )r?   r™   rš   r›   rœ   r�   rŸ   r“   r”   r•   r–   r—   r˜   r£   s                 r@   Ú__init__zBaseRequest.__init__³   sw  € ð   ˆŒØ!ˆŒØ-ˆÔàˆŒØ/6¯©ˆŒØ—~‘~ˆŒØŸ™ˆŒØ&(ˆŒØ�k‰kˆØ�<Š<Øˆ~ #§*¢*à$,×$8Ò$8™¸f�ØÐ!ð —o‘o fÓ-�Ø(.�—‘˜HÑ%ØÐØ—m‘m DÓ)�ð "%ˆD�K‰K˜ÑØ"%§(¡(ˆD�K‰K˜ÑØŸL™L›NˆD�MàˆDŒMØÐ!Ø(.�—‘˜HÑ%ØÐØ&*�—‘˜FÑ#à!˜M‘b¨uˆŒØˆŒ
Ø /ˆÔØ"3ˆÔØˆŒ
à%-×%9Ñ%9ˆÔ"Ø#+×#4Ñ#4ˆÔ Ø#+×#4Ñ#4ˆÔ àÐØ$*ˆD�K‰K˜Ò!ð rC   ©r¤   Úrel_urlr^   r–   r—   r˜   r“   r”   r¤   r¯   r^   c                óÊ  — | j                   rt        d«      ‚i }	|t        ur||	d<   |t        urt        |«      }
|
|	d<   t	        |
«      |	d<   |t        ur=t        t        |«      «      |	d<   t        d„ |	d   j                  «       D «       «      |	d<    | j                  j                  di |	¤Ž}i }|t        ur||d<   |t        ur||d	<   |t        ur||d
<   |t        u r| j                  }|t        u r| j                  } | j                  || j                  | j                  | j                   | j"                  | j$                  f||| j&                  j)                  «       dœ|¤ŽS )a  Clone itself with replacement some attributes.

        Creates and returns a new instance of Request object. If no parameters
        are given, an exact copy is returned. If a parameter is not passed, it
        will reuse the one from the current request object.
        z.Cannot clone request after reading its contentr¤   r£   Úpathr^   c              3   óf   K  — | ])  \  }}|j                  d «      |j                  d «      f–— Œ+ y­w)úutf-8N)Úencode)ri   ÚkÚvs      r@   rk   z$BaseRequest.clone.<locals>.<genexpr>  s3   è ø€ ò 'á�A�qð —‘˜'Ó" A§H¡H¨WÓ$5Ô6ñ'ùs   ‚/1Úraw_headersr–   r—   r˜   )r“   r”   r•   r=   )rˆ   ÚRuntimeErrorr&   r   r_   r   r   ÚtupleÚitemsr   Ú_replacerŒ   r�   Ú	__class__r‚   r€   r�   r‹   rŽ   r‰   Úcopy)r?   r¤   r¯   r^   r–   r—   r˜   r“   r”   ÚdctÚnew_urlr™   Úkwargss                r@   ÚclonezBaseRequest.cloneò   sx  € ð$ ×ÒÜÐOÓPÐPà ˆØœÑ!Ø"ˆC�‰MØœ(Ñ"Ü˜w›<ˆGØ ˆC�‰JÜ˜g›,ˆC�‰KØœ(Ñ"ä-¬k¸'Ó.BÓCˆC�	‰NÜ!&ñ 'à 	™N×0Ñ0Ó2ô'ó "ˆC�Ñð
 )�$—-‘-×(Ñ(Ñ/¨3Ñ/ˆàˆØœÑ!Ø%ˆF�8ÑØ”xÑØ!ˆF�6‰NØœÑ!Ø%ˆF�8ÑØœhÑ&Ø"×3Ñ3ˆOØ¤Ñ(Ø $× 7Ñ 7Ðàˆt�~‰~ØØ�M‰MØ�N‰NØ× Ñ Ø�J‰JØ�J‰Jð
ð ,Ø/Ø—+‘+×"Ñ"Ó$ñ
ð ñ
ð 	
rC   c                 ó   — | j                   S rg   )r‹   r>   s    r@   r�   zBaseRequest.task1  s   € à�z‰zÐrC   c                 ó   — | j                   S rg   )r€   r>   s    r@   r›   zBaseRequest.protocol5  s   € à�~‰~ÐrC   c                 óH   — | j                   €y | j                   j                  S rg   )r€   Ú	transportr>   s    r@   rÅ   zBaseRequest.transport9  s   € à�>‰>Ð!ØØ�~‰~×'Ñ'Ð'rC   c                 ó   — | j                   S rg   )r�   r>   s    r@   ÚwriterzBaseRequest.writer?  s   € à×#Ñ#Ð#rC   c                 ó   — | j                   S rg   )rŒ   r>   s    r@   r“   zBaseRequest.client_max_sizeC  s   € à×$Ñ$Ð$rC   c                 ó   — | j                   S rg   )r�   r>   s    r@   r”   zBaseRequest.client_max_fieldsG  s   € à×&Ñ&Ð&rC   c                 óR   — t        j                  dt        d¬«       | j                  S )NzRequest.message is deprecatedr6   ©Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarningr   r>   s    r@   r™   zBaseRequest.messageK  s   € ä�‰Ð5Ô7IÐVWÕXØ�}‰}ÐrC   c                 ó   — | j                   S rg   )r†   r>   s    r@   r¯   zBaseRequest.rel_urlP  s   € à�}‰}ÐrC   c                 óR   — t        j                  dt        d¬«       | j                  S )Nz#request.loop property is deprecatedé   rË   )rÍ   rÎ   rÏ   rŽ   r>   s    r@   rŸ   zBaseRequest.loopT  s#   € ä�‰Ø1Ô3EÐRSõ	
ð �z‰zÐrC   Úkeyc                  ó   — y rg   r=   ©r?   rÓ   s     r@   Ú__getitem__zBaseRequest.__getitem__]  s   € Ø69rC   c                  ó   — y rg   r=   rÕ   s     r@   rÖ   zBaseRequest.__getitem__`  s   € Ø,/rC   c                 ó    — | j                   |   S rg   ©r‰   rÕ   s     r@   rÖ   zBaseRequest.__getitem__c  s   € Ø�{‰{˜3ÑÐrC   Úvaluec                  ó   — y rg   r=   ©r?   rÓ   rÚ   s      r@   Ú__setitem__zBaseRequest.__setitem__f  s   € ØCFrC   c                  ó   — y rg   r=   rÜ   s      r@   rÝ   zBaseRequest.__setitem__i  s   € Ø9<rC   c                 óÜ   — t        |t        «      sM|t        j                  vr;t        j                  j	                  |«       t        j                  dt        d¬«       || j                  |<   y )Nz‚It is recommended to use web.RequestKey instances for keys.
https://docs.aiohttp.org/en/stable/web_advanced.html#request-s-storagerÒ   )ÚcategoryrÌ   )	Ú
isinstancer#   rM   r’   ÚaddrÍ   rÎ   r4   r‰   rÜ   s      r@   rÝ   zBaseRequest.__setitem__l  sV   € Ü˜#œzÔ*¨s¼+×:TÑ:TÑ/TÜ×&Ñ&×*Ñ*¨3Ô/Ü�M‰Mð'ô *Øõð !ˆ�‰�CÒrC   c                 ó   — | j                   |= y rg   rÙ   rÕ   s     r@   Ú__delitem__zBaseRequest.__delitem__x  s   € Ø�K‰K˜ÑrC   c                 ó,   — t        | j                  «      S rg   )Úlenr‰   r>   s    r@   Ú__len__zBaseRequest.__len__{  s   € Ü�4—;‘;ÓÐrC   c                 ó,   — t        | j                  «      S rg   )Úiterr‰   r>   s    r@   Ú__iter__zBaseRequest.__iter__~  s   € Ü�D—K‘KÓ Ð rC   c                 ó    — | j                   dk(  S )z5A bool indicating if the request is handled with SSL.r¡   )r–   r>   s    r@   ÚsecurezBaseRequest.secureƒ  s   € ð �{‰{˜gÑ%Ð%rC   .c                 ó<  — g }| j                   j                  j                  t        j                  d«      D �]X  }t        |«      }d}d}i }|j                  t        j                  |«      «       d|cxk  r|k  sŒEn ŒHt        j                  ||«      }|�„|r|j                  d|«      }nÔ|j                  «       \  }}	}
|	d   dk(  rt        j                  d|	dd «      }	|
r|	|
z  }	|	||j                  «       <   |t        |j!                  d«      «      z  }d	}ne||   dk(  r.d}i }|j                  t        j                  |«      «       |dz  }n/||   d
k(  rd}|dz  }n||   dv r|dz  }n|j                  d|«      }d|cxk  r|k  r�Œ�ŒX �Œ[ t#        |«      S )a˜  A tuple containing all parsed Forwarded header(s).

        Makes an effort to parse Forwarded headers as specified by RFC 7239:

        - It adds one (immutable) dictionary per Forwarded 'field-value', ie
          per proxy. The element corresponds to the data in the Forwarded
          field-value added by the first proxy encountered by the client. Each
          subsequent item corresponds to those added by later proxies.
        - It checks that every value has valid syntax in general as specified
          in section 4: either a 'token' or a 'quoted-string'.
        - It un-escapes found escape sequences.
        - It does NOT validate 'by' and 'for' contents as specified in section
          6.
        - It does NOT validate 'host' contents (Host ABNF).
        - It does NOT validate 'proto' contents for valid URI scheme names.

        Returns a tuple containing one or more immutable dicts
        r=   r   Fú,ú"z\1r   éÿÿÿÿTú;z 	)r   r^   Úgetallr   Ú	FORWARDEDræ   ÚappendÚtypesr   rx   ÚmatchÚfindÚgroupsrw   ÚsubÚlowerÚgroupr¹   )r?   ÚelemsÚfield_valueÚlengthÚposÚneed_separatorÚelemrö   rZ   rÚ   Úports              r@   Ú	forwardedzBaseRequest.forwardedˆ  s§  € ð( ˆØŸ=™=×0Ñ0×7Ñ7¼¿¹ÈÓKó %	5ˆKÜ˜Ó%ˆFØˆCØ"ˆNØ#%ˆDØ�L‰Lœ×/Ñ/°Ó5Ô6Ø�sÔ#˜VÖ#Ü*×0Ñ0°¸cÓB�ØÐ$Ù%à)×.Ñ.¨s°CÓ8™à,1¯L©L«NÑ)˜˜e TØ  ™8 sš?ä$;×$?Ñ$?ÀÀuÈQÈrÀ{Ó$S˜EÙØ! T™M˜EØ-2˜˜TŸZ™Z›\Ñ*Øœs 5§;¡;¨q£>Ó2Ñ2˜Ø)-™Ø  Ñ%¨Ò,Ø%*�NØ�DØ—L‘L¤×!7Ñ!7¸Ó!=Ô>Ø˜1‘H‘CØ  Ñ%¨Ò,Ø%*�NØ˜1‘H‘CØ  Ñ%¨Ñ.ð ˜1‘H‘Cð &×*Ñ*¨3°Ó4�Cð? �sÔ#˜V×#Ñ#ð%	5ôL �U‹|ÐrC   c                 ó   — | j                   ryy)a  A string representing the scheme of the request.

        Hostname is resolved in this order:

        - overridden value by .clone(scheme=new_scheme) call.
        - type of connection to peer: HTTPS if socket is SSL, HTTP otherwise.

        'http' or 'https'.
        r¡   r¢   )r�   r>   s    r@   r–   zBaseRequest.schemeÅ  s   € ð ×%Ò%ØàrC   c                 ó   — | j                   S )zyRead only property for getting HTTP method.

        The value is upper-cased str like 'GET', 'POST', 'PUT' etc.
        )r„   r>   s    r@   r¤   zBaseRequest.methodÕ  s   € ð �|‰|ÐrC   c                 ó   — | j                   S )zxRead only property for getting HTTP version of request.

        Returns aiohttp.protocol.HttpVersion instance.
        )r…   r>   s    r@   r¥   zBaseRequest.versionÝ  s   € ð �}‰}ÐrC   c                 ó  — | j                   j                  j                  t        j                  «      }|�|S | j
                  }|€yt        |t        «      r%t        |«      dk(  r	d|d   › d�S t        |d   «      S t        |«      S )a¸  Hostname of the request.

        Hostname is resolved in this order:

        - overridden value by .clone(host=new_host) call.
        - HOST HTTP header
        - local socket address the request arrived on
          (transport ``sockname``)
        - empty string if no transport information is available

        For example, 'example.com' or 'localhost:8080'.

        For historical reasons, the port number may be included.
        re   é   rc   r   ú])
r   r^   Úgetr   ÚHOSTr‘   rá   r¹   ræ   r_   )r?   r—   r¬   s      r@   r—   zBaseRequest.hostå  s…   € ð  �}‰}×$Ñ$×(Ñ(¬¯©Ó3ˆØÐØˆKØ×+Ñ+ˆØÐØÜ�h¤Ô&ô �8‹} Ò!Ø˜8 A™;˜- qÐ)Ð)Ü�x ‘{Ó#Ð#Ü�8‹}ÐrC   c                 ó¶   — | j                   €yt        | j                   t        t        f«      rt	        | j                   d   «      S t	        | j                   «      S )zÂRemote IP of client initiated HTTP request.

        The IP is resolved in this order:

        - overridden value by .clone(remote=new_remote) call.
        - peername of opened socket
        Nr   )r�   rá   Úlistr¹   r_   r>   s    r@   r˜   zBaseRequest.remote  sN   € ð ×#Ñ#Ð+ØÜ�d×.Ñ.´´u°Ô>Ü�t×/Ñ/°Ñ2Ó3Ð3Ü�4×+Ñ+Ó,Ð,rC   c                 óŠ   — t        j                  | j                  | j                  ¬«      j	                  | j
                  «      S )zThe full URL of the request.)r–   Ú	authority)r   Úbuildr–   r—   Újoinr†   r>   s    r@   r£   zBaseRequest.url  s,   € ô
 �y‰y §¡°t·y±yÔA×FÑFÀtÇ}Á}ÓUÐUrC   c                 ó.   — | j                   j                  S )z_The URL including *PATH INFO* without the host or scheme.

        E.g., ``/app/blog``
        )r†   r±   r>   s    r@   r±   zBaseRequest.path  s   € ð �}‰}×!Ñ!Ð!rC   c                 ó,   — t        | j                  «      S )zXThe URL including PATH_INFO and the query string.

        E.g, /app/blog?id=10
        )r_   r†   r>   s    r@   Úpath_qszBaseRequest.path_qs"  s   € ô �4—=‘=Ó!Ð!rC   c                 ó.   — | j                   j                  S )zÚThe URL including raw *PATH INFO* without the host or scheme.

        Warning, the path is unquoted and may contains non valid URL characters

        E.g., ``/my%2Fpath%7Cwith%21some%25strange%24characters``
        )r   r±   r>   s    r@   Úraw_pathzBaseRequest.raw_path*  s   € ð �}‰}×!Ñ!Ð!rC   c                 ó.   — | j                   j                  S )z7A multidict with all the variables in the query string.)r†   Úqueryr>   s    r@   r  zBaseRequest.query4  s   € ð �}‰}×"Ñ"Ð"rC   c                 ó.   — | j                   j                  S )z:The query string in the URL.

        E.g., id=10
        )r†   Úquery_stringr>   s    r@   r  zBaseRequest.query_string9  s   € ð �}‰}×)Ñ)Ð)rC   c                 ó   — | j                   S )z4A case-insensitive multidict proxy with all headers.)rƒ   r>   s    r@   r^   zBaseRequest.headersA  ó   € ð �}‰}ÐrC   c                 ó.   — | j                   j                  S )z$A sequence of pairs for all headers.)r   r·   r>   s    r@   r·   zBaseRequest.raw_headersF  s   € ð �}‰}×(Ñ(Ð(rC   c                 óf   — t        | j                  j                  t        j                  «      «      S )zyThe value of If-Modified-Since HTTP header, or None.

        This header is represented as a `datetime` object.
        )r$   r^   r
  r   ÚIF_MODIFIED_SINCEr>   s    r@   Úif_modified_sincezBaseRequest.if_modified_sinceK  s$   € ô ˜tŸ|™|×/Ñ/´×0FÑ0FÓGÓHÐHrC   c                 óf   — t        | j                  j                  t        j                  «      «      S )z{The value of If-Unmodified-Since HTTP header, or None.

        This header is represented as a `datetime` object.
        )r$   r^   r
  r   ÚIF_UNMODIFIED_SINCEr>   s    r@   Úif_unmodified_sincezBaseRequest.if_unmodified_sinceS  s$   € ô ˜tŸ|™|×/Ñ/´×0HÑ0HÓIÓJÐJrC   Úetag_headerc              #   óà   K  — | t         k(  rt        dt         ¬«      –— yt        j                  | «      D ]5  }|j	                  ddd«      \  }}}|r yt        t        |«      |¬«      –— Œ7 y­w)z'Extract `ETag` objects from raw header.F)Úis_weakrÚ   rÒ   r6   r  N)r   r!   r   Úfinditerrû   rL   )r$  rö   r&  rÚ   Úgarbages        r@   Ú_etag_valueszBaseRequest._etag_values[  sw   è ø€ ð œ(Ò"ÜØÜôó ô
 -×5Ñ5°kÓBò 
�Ø*/¯+©+°a¸¸AÓ*>Ñ'�˜ ñ ÙäÜ  ›MØôó ñ
ùs   ‚A,A.Úheader_valuec                 ó<   — |sy t        | j                  |«      «      S rg   )r¹   r)  )Úclsr*  s     r@   Ú_if_match_or_none_implz"BaseRequest._if_match_or_none_implp  s    € ñ Øä�S×%Ñ% lÓ3Ó4Ð4rC   c                 ór   — | j                  | j                  j                  t        j                  «      «      S )zxThe value of If-Match HTTP header, or None.

        This header is represented as a `tuple` of `ETag` objects.
        )r-  r^   r
  r   ÚIF_MATCHr>   s    r@   Úif_matchzBaseRequest.if_matchy  s(   € ð ×*Ñ*¨4¯<©<×+;Ñ+;¼D¿M¹MÓ+JÓKÐKrC   c                 ór   — | j                  | j                  j                  t        j                  «      «      S )z}The value of If-None-Match HTTP header, or None.

        This header is represented as a `tuple` of `ETag` objects.
        )r-  r^   r
  r   ÚIF_NONE_MATCHr>   s    r@   Úif_none_matchzBaseRequest.if_none_match�  s*   € ð ×*Ñ*¨4¯<©<×+;Ñ+;¼D×<NÑ<NÓ+OÓPÐPrC   c                 óf   — t        | j                  j                  t        j                  «      «      S )zpThe value of If-Range HTTP header, or None.

        This header is represented as a `datetime` object.
        )r$   r^   r
  r   ÚIF_RANGEr>   s    r@   Úif_rangezBaseRequest.if_range‰  s"   € ô ˜tŸ|™|×/Ñ/´·±Ó>Ó?Ð?rC   c                 ó0   — | j                   j                   S )zIs keepalive enabled by client?)r   Úshould_closer>   s    r@   Ú
keep_alivezBaseRequest.keep_alive‘  s   € ð —=‘=×-Ñ-Ð-Ð-rC   c                 óÆ   — t        | j                  j                  t        j                  d«      «      }t        |D ��ci c]  \  }}||j                  “Œ c}}«      S c c}}w )zMReturn request cookies.

        A read-only dictionary-like object.
        re   )r   r^   r
  r   ÚCOOKIEr   rÚ   )r?   ÚparsedrZ   Úmorsels       r@   ÚcookieszBaseRequest.cookies–  sI   € ô % T§\¡\×%5Ñ%5´d·k±kÀ2Ó%FÓGˆäÈ× O¹¸¸f  v§|¡|Ñ!3Ó OÓPÐPùÓ Os   ¾A
c                 óÐ  — | j                   j                  t        j                  «      }d\  }}|�’	 d}t	        j
                  ||t        j                  t        j                  z  «      d   \  }}|rt        |«      nd}|rt        |«      nd}|€|�| }d}|�|�|dz  }||k\  rt        d«      ‚||cxu r€t        d«      ‚ t        ||d«      S # t        $ r t        d«      ‚w xY w)	zMThe content of Range HTTP header.

        Return a slice instance.

        )NNNz^bytes=(\d*)-(\d*)$r   zrange not in acceptable formatr   zstart cannot be after endz"No start or end of range specified)rƒ   r
  r   ÚRANGEÚreÚfindallÚASCIIÚ
IGNORECASEÚ
IndexErrorÚ
ValueErrorÚintÚslice)r?   ÚrngÚstartÚendÚpatterns        r@   Ú
http_rangezBaseRequest.http_range¢  sþ   € ð �m‰m×Ñ¤§
¡
Ó+ˆØ‰
ˆˆsØˆ?ðCØ0�äŸZ™Z¨°´b·h±hÄÇÁÑ6NÓOÐPQÑR‘
��sñ "”#�c”( tˆCÙ"'”C˜”J¨TˆEàˆ}  à˜�Ø�àÐ  S _à�q‘�à˜C’<Ü$Ð%@ÓAÐAà˜Ô#Ü Ð!EÓFÐFð $ô �U˜C Ó#Ð#øô+ ò CÜ Ð!AÓBÐBðCús   ²>C ÃC%c                 ó   — | j                   S )zReturn raw payload stream.)r‚   r>   s    r@   ÚcontentzBaseRequest.contentÇ  r  rC   c                 óp   — t        j                  dt        d¬«       | j                  j	                  «        S )ú@Return True if request's HTTP BODY can be read, False otherwise.z$Deprecated, use .can_read_body #2005rÒ   rË   )rÍ   rÎ   rÏ   r‚   Úat_eofr>   s    r@   Úhas_bodyzBaseRequest.has_bodyÌ  s1   € ô 	�‰Ø2Ô4FÐSTõ	
ð —=‘=×'Ñ'Ó)Ð)Ð)rC   c                 ó8   — | j                   j                  «        S )rQ  )r‚   rR  r>   s    r@   Úcan_read_bodyzBaseRequest.can_read_bodyÔ  s   € ð —=‘=×'Ñ'Ó)Ð)Ð)rC   c                 ó8   — t        | j                  «      t        uS )z6Return True if request has HTTP BODY, False otherwise.)Útyper‚   r,   r>   s    r@   Úbody_existszBaseRequest.body_existsÙ  s   € ô �D—M‘MÓ"Ô*;Ð;Ð;rC   c              ƒ   óÀ   K  — | j                   j                  «       s>| j                   j                  «       ƒ d{  –—†  | j                   j                  «       sŒ=yy7 Œ!­w)zKRelease request.

        Eat unread part of HTTP BODY if present.
        N)r‚   rR  Úreadanyr>   s    r@   ÚreleasezBaseRequest.releaseÞ  sC   è ø€ ð
 —-‘-×&Ñ&Ô(Ø—-‘-×'Ñ'Ó)×)Ð)ð —-‘-×&Ñ&×(Ø)ús   ‚8AºA»AÁAc              ƒ   óº  K  — | j                   €¾| j                  r%| j                  j                  | j                  «       t	        «       }	 | j                  j                  «       ƒ d{  –—† }|j                  |«       | j                  r/t        |«      }|| j                  kD  rt        | j                  «      ‚|snŒrt        |«      | _         | j                   S 7 Œp­w)z_Read request body if present.

        Returns bytes object with full request content.
        N)
rˆ   rŒ   r‚   Úset_read_chunk_sizeÚ	bytearrayrZ  Úextendræ   r3   ra   )r?   ÚbodyÚchunkÚ	body_sizes       r@   ÚreadzBaseRequest.readæ  s½   è ø€ ð
 ×ÑÐ#ð ×$Ò$Ø—‘×1Ñ1°$×2GÑ2GÔHÜ“;ˆDØØ"Ÿm™m×3Ñ3Ó5×5�Ø—‘˜EÔ"Ø×(Ò(Ü # D£	�IØ  4×#8Ñ#8Ò8Ü7¸×8MÑ8MÓNÐNÙØð ô  % T›{ˆDÔØ×ÑÐð 6ús   ‚A&CÁ(CÁ)A1Cc              ƒ   ó€   K  — | j                  «       ƒ d{  –—† }| j                  xs d}|j                  |«      S 7 Œ%­w)z1Return BODY as text using encoding from .charset.Nr³   )rc  ÚcharsetÚdecode)r?   Ú
bytes_bodyÚencodings      r@   r|   zBaseRequest.textý  s8   è ø€ àŸ9™9›;×&ˆ
Ø—<‘<Ò* 7ˆØ× Ñ  Ó*Ð*ð 'ús   ‚>–<—&>)Úloadsri  c             ƒ   óN   K  — | j                  «       ƒ d{  –—† } ||«      S 7 Œ­w)zReturn BODY as JSON.Nr{   )r?   ri  r`  s      r@   ÚjsonzBaseRequest.json  s#   è ø€ à—Y‘Y“[× ˆÙ�T‹{Ðð !ús   ‚%–#—%c              ƒ   óÀ   K  — t        | j                  | j                  | j                  | j                  j
                  | j                  j                  t        ¬«      S ­w)z3Return async iterator to process BODY as multipart.)r“   Úmax_field_sizeÚmax_headersÚmax_size_error_cls)r+   rƒ   r‚   rŒ   r€   rm  rn  r3   r>   s    r@   Ú	multipartzBaseRequest.multipart  sG   è ø€ äØ�M‰MØ�M‰MØ ×1Ñ1ØŸ>™>×8Ñ8ØŸ™×2Ñ2Ü8ô
ð 	
ùs   ‚AAc              ƒ   ó  K  — | j                   �| j                   S | j                  | j                  vr$t        t	        «       «      | _         | j                   S | j
                  }|dvr$t        t	        «       «      | _         | j                   S |dk(  �r„t	        «       }| j                  «       ƒ d{  –—† }| j                  }| j                  }| j                  }|j                  «       ƒ d{  –—† x}��¢d|cxk  r|j                  k  rt        |«      ‚ d|cxk  rt        |«      k  rt        |«      ‚ |j                  j!                  t"        j$                  «      }t'        |t(        «      �r€|j*                  €t-        d«      ‚|j.                  �rµt1        t2        «      }	d}
|j5                  t6        ¬«      ƒ d{  –—† x}ród|cxk  r|j                  k  rYn nV|
r9| j8                  j;                  d|	j<                  «      ƒ d{  –—†  t        |«      ‚|	j=                  «        t        |«      ‚|j?                  |«      2 3 d{  –—† }|
xs# |	jA                  «       t        |«      z   t2        kD  }
|
r0| j8                  j;                  d|	jB                  |«      ƒ d{  –—†  Œb|	jC                  |«       Œt|
r0| j8                  j;                  d|	jD                  d«      ƒ d{  –—†  n|	jE                  d«       |€d}tG        |j*                  |j.                  |	||j                  «      }|jI                  |j*                  |«       n²tK        «       }|j5                  «       ƒ d{  –—† x}rMd|cxk  r|j                  k  rt        |«      ‚ |jM                  |«       |j5                  «       ƒ d{  –—† x}rŒMtK        «       }|j?                  |«      2 3 d{  –—† }|jM                  |«       Œt-        d«      ‚|j                  «       ƒ d{  –—† x}��Œ"n| jU                  «       ƒ d{  –—† x}st	        «       }nZ| jV                  xs d
}|jY                  «       jS                  |«      }| j                  }	 t	        t[        ||dkD  r|nd|¬«      «      }t        |«      | _         | j                   S 7 �Œ7 �ŒÉ7 �Œû7 �Œ´7 �Œw7 �Œ"6 |j5                  t6        ¬«      ƒ d{  –—†7  x}r�Œ$�Œ37 �Œ7 �Œˆ7 �Œ?7 �Œ6 |�|jO                  d	«      r?|jQ                  d
¬«      }|jI                  |j*                  |jS                  |«      «       �ŒO|jI                  |j*                  |«       �Œm7 �ŒZ7 �Œ@# t,        $ r t        |«      d‚w xY w­w)zReturn POST parameters.N)re   z!application/x-www-form-urlencodedúmultipart/form-datarr  r   zMultipart field missing name.F)Úsizezapplication/octet-streamztext/r³   )Údefaultz8To decode nested multipart you need to use custom reader)ry   rh  ).r‡   r„   ÚPOST_METHODSr   r   r]   rp  rŒ   r�   r‚   ÚnextÚtotal_bytesr3   ræ   r}   r^   r
  r   ÚCONTENT_TYPErá   r*   rZ   rF  r[   r8   rU   Ú
read_chunkr   rŽ   Úrun_in_executorÚcloseÚdecode_iterÚtellÚwriteÚseekrN   râ   r^  r_  Ú
startswithÚget_charsetrf  rc  re  Úrstripr   )r?   r]   Úoutrp  Úmax_sizery   rš   ÚfieldÚfield_ctÚtmpÚrolledra  Údecoded_chunkÚffÚraw_datarÚ   Údre  Údatar  s                       r@   ÚpostzBaseRequest.post  s  è ø€ à�:‰:Ð!Ø—:‘:ÐØ�<‰<˜t×0Ñ0Ñ0Ü'¬	«Ó4ˆDŒJØ—:‘:Ðà×(Ñ(ˆØð  
ñ 
ô
 (¬	«Ó4ˆDŒJØ—:‘:Ðð Ð0Ó0Ü“+ˆCØ"Ÿn™nÓ.×.ˆIØ×,Ñ,ˆHØ×0Ñ0ˆJà—m‘mˆGØ"+§.¡.Ó"2×2Ð2�5Ñ?ð �xÔ5 '×"5Ñ"5Ò5Ü3°HÓ=Ð=ð 6à�zÔ-¤S¨£XÒ-Ü*¨:Ó6Ð6ð .ð !Ÿ=™=×,Ñ,¬T×->Ñ->Ó?�ä˜e¤^Õ4Ø—z‘zÐ)Ü(Ð)HÓIÐIð —~“~Ü2Ô3GÓH˜ð "'˜Ø-2×-=Ñ-=ÔCUÐ-=Ó-V×'VÐV˜eÐVà  8ÔA¨g×.AÑ.AÕAÙ#)Ø*.¯*©*×*DÑ*DÀTÈ3Ï9É9Ó*U×$UÐ$Uô '@ÀÓ&IÐ Ið %(§I¡I¤KÜ&?ÀÓ&IÐ IØ7<×7HÑ7HÈÓ7O÷ =ð = mð *0ò *"Ø$'§H¡H£J´°]Ó1CÑ$CÜ&:ñ%;ð !'ñ $*Ø*.¯*©*×*DÑ*DØ(,¨c¯i©i¸ó+&÷ %&ñ %&ð %(§I¡I¨mÕ$<Ù!Ø"&§*¡*×"<Ñ"<¸TÀ3Ç8Á8ÈQÓ"O×OÑOàŸH™H QœKà#Ð+Ø'A˜Hä&Ø!ŸJ™JØ!ŸN™NØØ$Ø!ŸM™Mó˜ð Ÿ™ §
¡
¨BÕ/ô $-£;˜Ø-2×-=Ñ-=Ó-?×'?Ð?˜eÐ?Ø  8ÔA¨g×.AÑ.AÒAÜ&?ÀÓ&IÐ Ið  Bà$ŸO™O¨EÔ2ð .3×-=Ñ-=Ó-?×'?Ð?˜eÑ?ô
 !*£˜à',×'8Ñ'8¸Ó'B÷ ,ð , !Ø!ŸL™L¨�Oô %ØRóð ð_ #,§.¡.Ó"2×2Ð2�5Ó?ðd !%§	¡	£×+Ð+�$Ð+Ü“+‰Cà—l‘lÒ- gˆGØ—K‘K“M×(Ñ(¨Ó1ˆEØ×0Ñ0ˆJð	=ÜÜ"ØØ1;¸a²¡:ÀTØ!(ôó�ô $ CÓ(ˆŒ
Ø�z‰zÐðS /ùð
 3ùð. (Wùð %Vùð=ùð%&ùð 8Pð .3×-=Ñ-=ÔCUÐ-=Ó-V×'VÐ'VÐV˜eÒVùð, Pùð$ (@ùÐ'?ùð,ùÐ'Bð $Ð+¨x×/BÑ/BÀ7Ô/KØ&+×&7Ñ&7ÀÐ&7Ó&H˜GØŸG™G E§J¡J°·±¸WÓ0EÖFàŸG™G E§J¡J°Ö6ð[ 3ùðd ,úô ò =Ü& zÓ2¸Ð<ð=üs.  ‚B,VÂ.R0Â/;VÃ*R3Ã+CVÆ;R6Æ<A	VÈR9È;VÉSÉR<ÉSÉ	AVÊR?ÊAVË!S(Ë"BVÍ#S+Í$AVÎ/S.Î0VÎ7VÏS4ÏS1ÏS4Ï1VÐU%ÐVÐVÐ(U(Ð)AVÑ6U+ ÒVÒ3VÒ6VÒ9VÒ<SÒ?VÓVÓSÓVÓ(VÓ+VÓ.VÓ1S4Ó4A2VÕ(VÕ+VÖVrZ   rt  c                 óf   — | j                   }|€|S |j                  }|€|S |j                  ||«      S )z"Extra info from protocol transport)r€   rÅ   Úget_extra_info)r?   rZ   rt  r›   rÅ   s        r@   r�  zBaseRequest.get_extra_info“  s?   € à—>‘>ˆØÐØˆNà×&Ñ&ˆ	ØÐØˆNà×'Ñ'¨¨gÓ6Ð6rC   c                 ó¬   — | j                   j                  dd«      j                  d«      }d| j                  j                  › d| j
                  › d|› d�S )NÚasciiÚbackslashreplaceú<ú z >)r±   r´   rf  r¼   rH   r„   )r?   Úascii_encodable_paths     r@   Ú__repr__zBaseRequest.__repr__Ÿ  sW   € Ø#Ÿy™y×/Ñ/°Ð9KÓL×SÑSØó 
Ðð �4—>‘>×*Ñ*Ð+¨1¨T¯\©\¨N¸!Ð<PÐ;QÐQSÐTÐTrC   Úotherc                 ó0   — t        | «      t        |«      k(  S rg   )Úid)r?   r˜  s     r@   Ú__eq__zBaseRequest.__eq__¥  s   € Ü�$‹xœ2˜e›9Ñ$Ð$rC   c                  ó   — yr<   r=   r>   s    r@   Ú__bool__zBaseRequest.__bool__¨  s   € ØrC   Úresponsec              ƒ   ó   K  — y ­wrg   r=   )r?   rž  s     r@   Ú_prepare_hookzBaseRequest._prepare_hook«  s	   è ø€ Øùs   ‚Úexcc                 ó0   — t        | j                  |«       y rg   )r'   r‚   )r?   r¡  s     r@   Ú_cancelzBaseRequest._cancel®  s   € Ü�d—m‘m SÕ)rC   c                 óÖ   — | j                   �| j                  dk7  ry | j                   j                  «       D ]0  \  }}t        |t        «      sŒ|j
                  j                  «        Œ2 y )Nrr  )r‡   r]   rº   rá   rN   r\   r{  )r?   Ú	file_nameÚfile_field_objects      r@   Ú_finishzBaseRequest._finish±  s^   € Ø�:‰:Ð ×!2Ñ!2Ð6KÒ!KØð -1¯J©J×,<Ñ,<Ó,>ò 	/Ñ(ˆIÐ(ÜÐ+¬YÕ7Ø!×&Ñ&×,Ñ,Õ.ñ	/rC   )r:   rž   )r:   rQ   )r:   zMultiMapping[str])r:   N)r:   zMultiDictProxy[_Post]rg   )urH   rI   rJ   r   Ú
METH_PATCHÚ	METH_POSTÚMETH_PUTÚ
METH_TRACEÚMETH_DELETEru  r"   ÚATTRSÚ	frozensetr‡   r   Ú_Postr`   rˆ   ra   Úsetr’   r_   r(   r-   r   ÚasyncioÚAbstractEventLooprG  Údictr#   r
   r­   r&   r   r2   r0   rÁ   Úpropertyr�   r›   Ú	TransportrÅ   rÇ   r“   r”   r%   r™   r   r¯   rŸ   r   rS   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^   r1   r·   Údatetimer   r#  Ústaticmethodr!   r)  Úclassmethodr-  r0  r3  r6  r9  r>  rH  rM  rO  rS  rU  rX  r[  rc  r|   r.   r/   rk  r+   rp  rŽ  r�  r—  Úobjectr›  r�  r5   r   ÚBaseExceptionr£  r§  r=   rC   r@   rM   rM   �   s2  … à�‰Ø�‰Ø�‰Ø�‰Ø×Ñð€Lð ×Ñ¡ò	
ó"ñ €Eð. +/€Eˆ>˜%Ñ  4Ñ'Ó.Ø $€K�˜‘Ó$Ù"›u€N�C˜‘HÓ$ð  'Ø!%Ø9=Ø!ØØ!ò=+à"ð=+ð ð=+ð #ð	=+ð
 -ð=+ð #ð=+ð ×'Ñ'ð=+ð ð=+ð ð=+ð �J˜s‘O cÑ)¨3Ð.Ñ/°$Ñ6ð=+ð �d‘
ð=+ð �D‰jð=+ð �d‘
ð=+ð 
ó=+ðD #+Ø(0Ø,4Ø"*Ø (Ø"*Ø+3Ø-5ò=
ð �i‘ð=
ð ˜IÑ%ð	=
ð
  	Ñ)ð=
ð �i‘ð=
ð �I‰oð=
ð �i‘ð=
ð ˜y™ð=
ð  ™?ð=
ð 
ó=
ð~ òó ðð òó ðð ð(˜7×,Ñ,¨tÑ3ò (ó ð(ð
 ð$Ð,ò $ó ð$ð ð% ò %ó ð%ð ð' 3ò 'ó ð'ð ðÐ*ò ó ðð ð˜ò ó ðð ð�g×/Ñ/ò ó ðð Ø9˜z¨"™~Ð9°"Ò9ó Ø9àØ/˜sÐ/ sÒ/ó Ø/ð ˜s Z°¡^Ñ3ð  ¸ó  ð ØF˜z¨"™~ÐF°bÐF¸TÒFó ØFàØ<˜sÐ<¨3Ð<°4Ò<ó Ø<ð
!˜s Z°¡^Ñ3ð 
!¸Cð 
!ÀDó 
!ð˜s Z°¡^Ñ3ð ¸ó ð ˜ó  ð!˜( 3¨°C©Ñ#8Ñ9ó !ð
 ð&˜ò &ó ð&ð ð:˜5 ¨¨c¨Ñ!2°CÐ!7Ñ8ò :ó ð:ðx ð˜ò ó ðð ð˜ò ó ðð ð˜ò ó ðð ð�cò ó ðð< ð-˜˜d™
ò -ó ð-ð ðV�Sò Vó ðVð ð"�cò "ó ð"ð ð"˜ò "ó ð"ð ð"˜#ò "ó ð"ð ò#ó ð#ð ð*˜cò *ó ð*ð ðÐ)¨#Ñ.ò ó ðð ð)˜Zò )ó ð)ð ðI 8×#4Ñ#4°tÑ#;ò Ió ðIð ðK X×%6Ñ%6¸Ñ%=ò Kó ðKð ð #ð ¨(°4©.ò ó ðð( ð5Ø ™:ð5à	ˆt�SˆyÑ	˜DÑ	 ò5ó ð5ð ðL˜%  c 	Ñ*¨TÑ1ò Ló ðLð ðQ˜u T¨3 YÑ/°$Ñ6ò Qó ðQð ð@˜(×+Ñ+¨dÑ2ò @ó ð@ð ð.˜Dò .ó ð.ð ð	Q˜  c Ñ*ò 	Qó ð	Qð ð"$˜Eò "$ó ð"$ðH ð˜ò ó ðð ð*˜$ò *ó ð*ð ð*˜tò *ó ð*ð ð<˜Tò <ó ð<ó*ð ˜Eó  ð.+˜Có +ð 2Fò  ;ð È#ó ð
	
 ó 	
ó~ñ@
7 3ð 
7°ð 
7Àó 
7ðU˜#ó Uð%˜Fð % tó %ð˜$ó ð¨Nð ¸tó ð*˜=ð *¨Tó *ô/rC   rM   c                   ó0  ‡ — e Zd ZU ej                   edg«      z  ZdZed   ed<   e	rde
deddfˆ fd„Zeeeeeeeedœd	e
ez  d
eez  deez  de
ez  de
ez  de
ez  deez  deez  dd fˆ fd„Zedd„«       Zedd„«       Zedefd„«       Zdeddfd„Zˆ xZS )rO   Ú_match_infoNrR   rZ   Úvalr:   c                 ó°   •— || j                   vr7t        j                  d| j                  j                  › d|› d�t
        d¬«       t        ‰| �  ||«       y )NzSetting custom ú.z attribute is discouragedrÒ   rË   )r­  rÍ   rÎ   r¼   rH   rÏ   ÚsuperÚ__setattr__)r?   rZ   r½  r¼   s      €r@   rÁ  zRequest.__setattr__Ã  sU   ø€ Ø˜4Ÿ:™:Ñ%Ü—‘Ø% d§n¡n×&=Ñ&=Ð%>¸aÀ¸vð F%ð %ä&Ø õ	ô ‰GÑ  cÕ*rC   r®   r¤   r¯   r^   r–   r—   r˜   r“   r”   c          
      óx   •— t         ‰| �  ||||||||¬«      }	t        t        |	«      }
| j                  |
_        |
S )Nr®   )rÀ  rÁ   r   rO   r¼  )r?   r¤   r¯   r^   r–   r—   r˜   r“   r”   ÚretÚnew_retr¼   s              €r@   rÁ   zRequest.cloneÍ  sQ   ø€ ô ‰g‰mØØØØØØØ+Ø/ð ó 	
ˆô ”w Ó$ˆØ"×.Ñ.ˆÔØˆrC   c                 ó&   — | j                   }|€J ‚|S )zResult of route resolving.)r¼  ©r?   Ú
match_infos     r@   rÇ  zRequest.match_infoç  s!   € ð ×%Ñ%ˆ
ØÐ%Ð%Ð%ØÐrC   c                 ó:   — | j                   }|€J ‚|j                  S )zApplication instance.)r¼  Úcurrent_apprÆ  s     r@   ÚappzRequest.appî  s'   € ð ×%Ñ%ˆ
ØÐ%Ð%Ð%Ø×%Ñ%Ð%rC   c                 ó¾   — | j                   }|€J ‚|j                  }| j                  }|j                  |«      }t	        t        |d |dz    «      «      }t        |«      S )Nr   )r¼  ÚappsrÊ  Úindexr  Úreversedr    )r?   rÇ  ÚlstrÊ  ÚidxÚsublists         r@   Úconfig_dictzRequest.config_dictõ  s\   € à×%Ñ%ˆ
ØÐ%Ð%Ð%Ø�o‰oˆØ�h‰hˆØ�i‰i˜‹nˆÜ”x  I c¨A¡g Ó/Ó0ˆÜ˜WÓ%Ð%rC   rž  c              ƒ   ó¢   K  — | j                   }|€y |j                  D ]+  }|j                  x}sŒ|j                  | |«      ƒ d {  –—†  Œ- y 7 Œ­wrg   )r¼  Ú_appsÚon_response_prepareÚsend)r?   rž  rÇ  rÊ  rÕ  s        r@   r   zRequest._prepare_hookÿ  sZ   è ø€ Ø×%Ñ%ˆ
ØÐØØ×#Ñ#ò 	?ˆCØ&)×&=Ñ&=Ð=Ð"Ñ=Ø)×.Ñ.¨t°XÓ>×>Ñ>ñ	?à>ús   ‚-A°AÁAÁA)r:   rR   )r:   rP   )rH   rI   rJ   rM   r­  r®  r¼  r   r`   r   r_   r
   rÁ  r&   r   r2   r0   rG  rÁ   r%   rÇ  r´  rÊ  r    rÒ  r5   r   Ú__classcell__)r¼   s   @r@   rO   rO   »  s8  ø… à×Ñ¡	¨=¨/Ó :Ñ:€Eà37€K�Ð/Ñ0Ó7áð	+ Cð 	+¨cð 	+°dõ 	+ð #+Ø(0Ø,4Ø"*Ø (Ø"*Ø+3Ø-5òð �i‘ðð ˜IÑ%ð	ð
  	Ñ)ðð �i‘ðð �I‰oðð �i‘ðð ˜y™ðð  ™?ðð 
õð4 òó ðð ò&ó ð&ð ð&˜]ò &ó ð&ð?¨Nð ?¸t÷ ?rC   rO   )qr±  r¶  ÚiorA  ÚstringÚsysrõ   rÍ   Úcollections.abcr   r   r   r   r   Útypingr   r	   r
   r   r   r   r   r   ÚattrÚ	multidictr   r   r   r   r   Úyarlr   r   re   r   Ú_cookie_helpersr   Úabcr   Úhelpersr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   Úhttp_parserr(   Úhttp_writerr)   rp  r*   r+   Ústreamsr,   r-   Útypedefsr.   r/   r0   r1   r2   Úweb_exceptionsr3   r4   Úweb_responser5   Úversion_infoÚtempfiler8   ra   ÚIOBaseÚ__all__Úweb_apprP   Úweb_protocolrQ   Úweb_urldispatcherrR   rS   rU   rG  r`   ÚsrN   r_   r^  r¯  ÚdigitsÚascii_lettersrb   rd   Úformatr  r¹   Úrangerq   rr   rt   rv   Úcompilerw   rx   r}   rM   rO   r=   rC   r@   ú<module>rö     sr  ðÜ Û Û 	Û 	Û Û 
Û Û ß =Ñ =Ý Ý "ß S× SÓ Sã ÷õ ÷ %å Ý 0Ý %÷÷ ÷ õ õ +Ý $ß 6ß 4÷õ ÷ HÝ (à×Ñ�wÒÞ-ãô˜x×<Ñ<¸UÑCÀRÇYÁYô ð& 2€ñ Ý$Ý,Ý6ñ ˆTƒ]€ð $+Ð �e˜C‘jÓ *ð €‡��T $¨dÔ3÷#ð #ó 4ð#ð 	ˆe‰�iÑ )Ñ+€Ø—]‘] V×%9Ñ%9Ñ9Ð<NÑN€ˆˆc‰
Ó Nð ˜&˜ �_€ˆˆc‰
Ó $à—n‘nØ‡H�HÑKÐ/±%¹¸dÀDÓ8IÓ2JÑJÔKÓKó€ˆˆs‰ó ð )€ˆe�C‰jÓ (à $ \ N°!°G°9¸CÐ@€��c‘
Ó @ð "# 6 (¨#¨f¨X°Q°~Ð6FÀnÐU€��s‘Ó Uà/9¨r¯z©z¸/Ó/JÐ ˜˜w s™|Ñ,Ó Jð +5¨"¯*©*°_Ó*EÐ �E˜' #™,Ñ'Ó Eð ð Ð)Bó ôi/�.  z°#¡Ñ!6¸Ð!;Ñ<¸lô i/ôXJ?ˆkõ J?rC   