§
    ¯eîiž  ã                   ó\  — U 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	m
Z
mZmZmZmZmZmZmZmZmZmZmZm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  dd
l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@ ddlAmBZB dZCed         ZD eEejF        ¦  «        ZGeeeH                  eId<    ejJ        d¦  «        ZKeeH         eId<    ejL        deK› d�¦  «        ZMeeeH                  eId<    ejL        d¦  «        ZNeeeH                  eId<    ejL        dejO        ¦  «        ZPeeeH                  eId<    ejL        dejO        ¦  «        ZQeeeH                  eId<    ejL        d¦  «        ZReeeS                  eId<    eTh d £¦  «        ZUeeTeH                  eId!<    G d"„ d#e¦  «        ZV G d$„ d%e¦  «        ZW ed&eVeW¦  «        ZX G d'„ d(e¦  «        ZY G d)„ d*e¦  «        ZZ G d+„ d,¦  «        Z[d-eeH         d.e\fd/„Z] G d0„ d1e j^        eeX         ¦  «        Z_ G d2„ d3e_eV         ¦  «        Z` G d4„ d5e_eW         ¦  «        Za G d6„ d7¦  «        Zb G d8„ d9¦  «        Zce`ZdeaZeeVZfeWZg	 e-sdd:lhm`Z`maZamVZVmWZW e`ZieaZjeVZkeWZldS dS # em$ r Y dS w xY w);é    N)Úsuppress)ÚIntEnum)ÚAnyÚClassVarÚFinalÚGenericÚListÚLiteralÚ
NamedTupleÚOptionalÚPatternÚSetÚTupleÚTypeÚTypeVarÚUnion)ÚCIMultiDictÚCIMultiDictProxyÚistr)ÚURLé   )Úhdrs)ÚBaseProtocol)ÚDEFAULT_MAX_DECOMPRESS_SIZEÚ
HAS_BROTLIÚHAS_ZSTDÚBrotliDecompressorÚZLibDecompressorÚZSTDDecompressor)Ú_EXC_SENTINELÚDEBUGÚEMPTY_BODY_METHODSÚEMPTY_BODY_STATUS_CODESÚNO_EXTENSIONSÚBaseTimerContextÚset_exception)
ÚBadHttpMessageÚBadHttpMethodÚBadStatusLineÚContentEncodingErrorÚContentLengthErrorÚDecompressSizeErrorÚInvalidHeaderÚInvalidURLErrorÚLineTooLongÚTransferEncodingError)ÚHttpVersionÚHttpVersion10)ÚEMPTY_PAYLOADÚStreamReader)Ú
RawHeaders)ÚHeadersParserÚ
HttpParserÚHttpRequestParserÚHttpResponseParserÚRawRequestMessageÚRawResponseMessage)ó   
ó   
ÚASCIISETz!#$%&'*+-.^_`|~Ú_TCHAR_SPECIALSz
[0-9A-Za-zz]+ÚTOKENREz[\x00-\x08\x0a-\x1f\x7f]Ú_FIELD_VALUE_FORBIDDEN_CTL_REzHTTP/(\d)\.(\d)ÚVERSREz\d+ÚDIGITSs   [0-9a-fA-F]+Ú	HEXDIGITS>
   ú
user-agentúcontent-typeúmax-forwardsúcontent-rangeúcontent-lengthúcontent-locationútransfer-encodingÚetagÚhostÚserverÚSINGLETON_HEADERSc                   ó€   — e Zd ZU eed<   eed<   eed<   ded<   eed<   eed<   ee         ed<   eed	<   eed
<   e	ed<   dS )r:   ÚmethodÚpathÚversionúCIMultiDictProxy[str]ÚheadersÚraw_headersÚshould_closeÚcompressionÚupgradeÚchunkedÚurlN)
Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r1   r5   Úboolr   r   © ó    úW/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/aiohttp/http_parser.pyr:   r:   q   s}   € € € € € € Ø€K€K�KØ
€I€I�IØÐÐÑØ$Ð$Ð$Ñ$ØÐÐÑØÐÐÑØ˜#”ÐÐÑØ€M€M�MØ€M€M�MØ	€H€H�H€H€Hrc   r:   c                   ó‚   — e Zd ZU eed<   eed<   eed<   ee         ed<   eed<   e	ed<   e
e         ed<   e	ed<   e	ed	<   d
S )r;   rS   ÚcodeÚreasonrU   rV   rW   rX   rY   rZ   N)r\   r]   r^   r1   r`   Úintr_   r   r5   ra   r   rb   rc   rd   r;   r;   ~   sy   € € € € € € ØÐÐÑØ
€I€I�IØ€K€K�KØ˜cÔ"Ð"Ð"Ñ"ØÐÐÑØÐÐÑØ˜#”ÐÐÑØ€M€M�MØ€M€M�M€M€Mrc   r;   Ú_MsgTc                   ó   — e Zd ZdZdZdZdZdS )Ú
ParseStater   r   é   é   N)r\   r]   r^   Ú
PARSE_NONEÚPARSE_LENGTHÚPARSE_CHUNKEDÚPARSE_UNTIL_EOFrb   rc   rd   rk   rk   �   s"   € € € € € à€JØ€LØ€MØ€O€O€Orc   rk   c                   ó"   — e Zd ZdZdZdZdZdZdS )Ú
ChunkStater   r   rl   rm   é   N)r\   r]   r^   ÚPARSE_CHUNKED_SIZEÚPARSE_CHUNKED_CHUNKÚPARSE_CHUNKED_CHUNK_EOFÚPARSE_MAYBE_TRAILERSÚPARSE_TRAILERSrb   rc   rd   rs   rs   •   s+   € € € € € ØÐØÐØÐØÐØ€N€N€Nrc   rs   c                   ó`   — e Zd Z	 	 	 	 ddededededd	f
d
„Zdee         dede	f         fd„Z
d	S )r6   éþ  é €  FÚmax_line_sizeÚmax_headersÚmax_field_sizeÚlaxÚreturnNc                 ó>   — || _         || _        || _        || _        d S ©N)r}   r~   r   Ú_lax)Úselfr}   r~   r   r€   s        rd   Ú__init__zHeadersParser.__init__ž   s'   € ð +ˆÔØ&ˆÔØ,ˆÔØˆŒ	ˆ	ˆ	rc   ÚlinesrT   c                 ó¶  — t          ¦   «         }g }d}||         }t          |¦  «        }|�r�	 |                     dd¦  «        \  }}n# t          $ r t	          |¦  «        d ‚w xY wt          |¦  «        dk    rt	          |¦  «        ‚|d         |d         hddhz  rt	          |¦  «        ‚|                     d¦  «        }|                     dd	¦  «        }	t                               |	¦  «        st	          |¦  «        ‚|dz  }||         }| j	        o|o	|d         d
v }
|
r»t          |¦  «        }|g}|
r’|t          |¦  «        z  }|| j
        k    r;|dz   d                     |¦  «        z   }t          |d d…         dz   | j
        ¦  «        ‚|                     |¦  «         |dz  }||k     r||         }|r
|d         d
v }
nd}n|
°’d                     |¦  «        }|                     d¦  «        }|                     dd	¦  «        }| j	        rd|v sd|v sd|v rt	          |¦  «        ‚n)t                               |¦  «        rt	          |¦  «        ‚| j	        s2|	|v r.|	                     ¦   «         t$          v rt'          d|	› d�¦  «        ‚|                     |	|¦  «         |                     ||f¦  «         |�°�t+          |¦  «        t-          |¦  «        fS )Nr   ó   :r   éÿÿÿÿé    é	   s    	úutf-8Úsurrogateescape)r‹   rŒ   s   : rc   éd   ó   ...Ú
úú zDuplicate 'z' header found.)r   ÚlenÚsplitÚ
ValueErrorr-   ÚlstripÚdecoder@   Ú	fullmatchr„   r   Újoinr/   ÚappendÚstriprA   ÚsearchÚlowerrO   r'   Úaddr   Útuple)r…   r‡   rU   rV   Ú	lines_idxÚlineÚ
line_countÚbnameÚbvalueÚnameÚcontinuationÚheader_lengthÚ
bvalue_lstÚheader_lineÚvalues                  rd   Úparse_headerszHeadersParser.parse_headersª   sQ  € õ %0¡M¤Mˆàˆàˆ	Ø�YÔˆÝ˜‘Z”Zˆ
àñ ?	0ð4Ø $§
¢
¨4°Ñ 3Ô 3‘��v�vøÝð 4ð 4ð 4Ý# DÑ)Ô)¨tÐ3ð4øøøõ �5‰zŒz˜QŠˆÝ# EÑ*Ô*Ð*ð �a”˜% œ)Ð$¨¨A wÑ.ð *Ý# DÑ)Ô)Ð)à—]’] 6Ñ*Ô*ˆFØ—<’< Ð):Ñ;Ô;ˆDÝ×$Ò$ TÑ*Ô*ð +Ý# EÑ*Ô*Ð*ð ˜‰NˆIØ˜Ô#ˆDð  œ9ÐD¨ÐD°$°q´'¸WÐ2DˆLð ð .Ý # F¡¤�Ø$˜X�
Ø"ð Ø!¥S¨¡Y¤YÑ.�MØ$ tÔ':Ò:Ð:Ø&+¨e¡m°c·h²h¸zÑ6JÔ6JÑ&J˜Ý)Ø'¨¨¨Ô-°Ñ6¸Ô8Kñô ð ð ×%Ò% dÑ+Ô+Ð+ð  ‘N�IØ  :Ò-Ð-Ø$ YÔ/˜Øð >Ø+/°¬7°gÐ+=˜Løà"˜Øð# #ð ð$ Ÿš *Ñ-Ô-�à—\’\ &Ñ)Ô)ˆFØ—M’M 'Ð+<Ñ=Ô=ˆEð Œyð ,Ø˜5�=�= D¨E M M°V¸u°_°_Ý'¨Ñ/Ô/Ð/ð 6Eå.×5Ò5°eÑ<Ô<ð ,Ý# FÑ+Ô+Ð+à”9ð J ¨  °T·Z²Z±\´\ÕEVÐ5VÐ5VÝ$Ð%H°4Ð%HÐ%HÐ%HÑIÔIÐIØ�KŠK˜˜eÑ$Ô$Ð$Ø×Ò  v˜Ñ/Ô/Ð/ð ñ ?	0õB ! Ñ)Ô)­5°Ñ+=Ô+=Ð>Ð>s   ®A ÁA#)r{   r|   r{   F)r\   r]   r^   rh   ra   r†   r	   Úbytesr   r5   r¬   rb   rc   rd   r6   r6   �   s¦   € € € € € ð "Ø Ø"Øð
ð 
àð
ð ð
ð ð	
ð
 ð
ð 
ð
ð 
ð 
ð 
ðL?Ø˜%”[ðL?à	Ð&¨
Ð2Ô	3ðL?ð L?ð L?ð L?ð L?ð L?rc   r6   rU   r�   c                 ó–   — |                       t          j        d¦  «        }|                     ¦   «         o|                     ¦   «         dv S )z)Check if the upgrade header is supported.Ú >   ÚtcpÚ	websocket)Úgetr   ÚUPGRADEÚisasciirž   )rU   Úus     rd   Ú_is_supported_upgrader¶   ù   s8   € à�Š•D”L "Ñ%Ô%€Aà�9Š9‰;Œ;Ð<˜1Ÿ7š7™9œ9Ð(<Ð<Ð<rc   c                   ó4  — e Zd ZU dZee         ed<   	 	 	 	 	 	 	 	 	 	 	 	 	 d)dee         d	ee	j
                 d
ededededee         dee         dee         deee                  dedededdfd„Zej        dee         defd„¦   «         Zej        dedefd„¦   «         Zdee         fd„Zddej        ej        ej        fdeded ed!ed"ed#edeeeee f                  eef         fd$„Z!dee         ded%e"ee         ee         eef         fd&„Z#d'eddfd(„Z$dS )*r7   Fr€   Né   r{   é€   TÚprotocolÚloopÚlimitr}   r~   r   Útimerrf   rQ   Úpayload_exceptionÚresponse_with_bodyÚread_until_eofÚauto_decompressr�   c                 óH  — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _        || _	        || _
        g | _        d| _        d| _        d | _        d | _        || _        || _        t%          |||| j        ¦  «        | _        d S )Nrc   F)rº   r»   r}   r~   r   r½   rf   rQ   r¾   r¿   rÀ   Ú_linesÚ_tailÚ	_upgradedÚ_payloadÚ_payload_parserÚ_auto_decompressÚ_limitr6   r€   Ú_headers_parser)r…   rº   r»   r¼   r}   r~   r   r½   rf   rQ   r¾   r¿   rÀ   rÁ   s                 rd   r†   zHttpParser.__init__  sµ   € ð  !ˆŒØˆŒ	Ø*ˆÔØ&ˆÔØ,ˆÔØ&ˆÔØˆŒ
ØˆŒ	ØˆŒØ!2ˆÔØ"4ˆÔØ,ˆÔà#%ˆŒØˆŒ
ØˆŒØˆŒØ<@ˆÔØ /ˆÔØˆŒÝ,Ø˜;¨¸¼ñ 
ô  
ˆÔÐÐrc   r‡   c                 ó   — d S rƒ   rb   )r…   r‡   s     rd   Úparse_messagezHttpParser.parse_message+  s   € Ø:=¸#rc   Útec                 ó   — d S rƒ   rb   ©r…   rÍ   s     rd   Ú_is_chunked_tezHttpParser._is_chunked_te.  s   € Ø/2¨src   c                 ó’  — | j         �!| j                              ¦   «          d | _         nž| j        r| j                             | j        ¦  «         | j        rq| j        d         dk    r| j                             d¦  «         t          t          ¦  «        5  |                      | j        ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )NrŠ   z
rc   )rÇ   Úfeed_eofrÄ   rÃ   r›   r   Ú	ExceptionrÌ   ©r…   s    rd   rÒ   zHttpParser.feed_eof1  s   € ØÔÐ+ØÔ ×)Ò)Ñ+Ô+Ð+Ø#'ˆDÔ Ð ð Œzð /Ø”×"Ò" 4¤:Ñ.Ô.Ð.àŒ{ð ;Ø”;˜r”? fÒ,Ð,Ø”K×&Ò& sÑ+Ô+Ð+Ý�iÑ(Ô(ð ;ð ;Ø×-Ò-¨d¬kÑ:Ô:ð;ð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;àˆts   ÂB<Â<C ÃC r<   rc   ÚdataÚSEPÚEMPTYÚCONTENT_LENGTHÚMETH_CONNECTÚSEC_WEBSOCKET_KEY1c                 ór  ‡‡— g }| j         r| j         |z   dc}| _         t          |¦  «        }d}	| j        }
| j        }d}|	|k     �rT| j        �€O| j        �sG|                     ||	¦  «        }||	k    r| j        s|t          |¦  «        z   }	ŒM||	k    �r¶|rt          d¦  «        ‚||	|…         }|dk    r| 	                    d¦  «        }t          |¦  «        |k    rt          |d d…         dz   |¦  «        ‚| j                             |¦  «         | j        }t          | j        ¦  «        | j        k    rt          d	¦  «        ‚|t          |¦  «        z   }	| j        d
         |k    �rß| j        t          | j        ¦  «        z
  }	 |                      | j        ¦  «        Š| j                             ¦   «          n# | j                             ¦   «          w xY wdt           t"                   fˆˆfd„} |¦   «         }|‰j        v rt'          |¦  «        ‚‰j        ot+          ‰j        ¦  «        | _        t-          ‰d| j        ¦  «        }t-          ‰dd¦  «        }| j        €J ‚|t2          v pt5          |o|t6          v ¦  «        }|s‘|�|dk    s‰j        r‚| j        s{t;          | j        | j        |
| j        ¬¦  «        }tA          ||‰j        |‰j!        | j"        | j#        | j$        | j%        | j&        | j        | j        |¬¦  «        }|j'        s|| _        �n||k    r�tQ          ‰tR          ¦  «        sJ ‚t;          | j        | j        |
| j        ¬¦  «        }d| _        tA          |‰j        ‰j!        | j$        | j%        | j&        | j        | j        |¬¦	  «	        | _        nŒ|sƒ|€�| j*        rzt;          | j        | j        |
| j        ¬¦  «        }tA          ||‰j        |‰j!        | j"        | j#        | j$        | j%        | j&        | j        | j        |¬¦  «        }|j'        s|| _        ntV          }|                     ‰|f¦  «         ‰j,        }�nJ||	d …         | _         t          | j         ¦  «        | j        k    r%t          | j         d d…         dz   | j        ¦  «        ‚|}ný| j        €| j        r
| j        rJ ‚nå|rÛ|	|k     rÕ| j        rJ ‚| j        €J ‚	 | j         -                    ||	d …         |¦  «        \  }}n~# t\          $ rq}|}| j/        �"|  /                    ta          |¦  «        ¦  «        }tc          | j        j2        ||¦  «         d}d}tQ          |t&          tf          f¦  «        r‚ Y d }~nd }~ww xY w|rd}	t          |¦  «        }d | _        �ŒRnn|	|k     �°T|r|	|k     r||	d …         }n|}|| j        |fS )Nrc   r   FzData after `Connection: close`r=   ó   r�   r�   zToo many headers receivedrŠ   r�   c                  ó°   •— ‰j                              ‰¦  «        } | €d S t                               | ¦  «        st	          ‰¦  «        ‚t          | ¦  «        S rƒ   )rU   r²   rC   r™   r-   rh   )Ú
length_hdrrØ   Úmsgs    €€rd   Úget_content_lengthz0HttpParser.feed_data.<locals>.get_content_length}  sT   ø€ à),¬¯ª¸Ñ)HÔ)H˜JØ)Ð1Ø'+ tõ
 $*×#3Ò#3°JÑ#?Ô#?ð DÝ&3°NÑ&CÔ&CÐ Cå#& z¡?¤?Ð2rc   rQ   rf   )r½   r»   r¼   )ÚlengthrZ   rQ   rX   rf   r¿   rÁ   r€   Úheaders_parserr}   r   Úmax_trailersT)rQ   rX   rÁ   r€   râ   r}   r   rã   )4rÄ   r”   r»   r}   rÇ   rÅ   ÚfindrÃ   r'   Úrstripr/   r›   r   r~   rÌ   Úclearr   rh   rU   r-   rY   r¶   ÚgetattrrQ   rº   r#   ra   r"   rZ   r4   r½   rÉ   ÚHttpPayloadParserrX   rf   r¿   rÈ   r€   rÊ   ÚdoneÚ
isinstancer:   rÀ   r3   rW   Ú	feed_dataÚBaseExceptionr¾   r_   r&   Úpayloadr0   )r…   rÕ   rÖ   r×   rØ   rÙ   rÚ   ÚmessagesÚdata_lenÚ	start_posr»   Úmax_line_lengthrW   Úposr¢   rã   rà   rá   rQ   rf   Ú
empty_bodyrí   Úpayload_parserÚeofÚunderlying_excÚreraised_excrß   s       `                     @rd   rë   zHttpParser.feed_dataA  sÕ  øø€ ð ˆàŒ:ð 	6Ø#œz¨DÑ0°#ÐˆD�$”*å�t‘9”9ˆØˆ	ØŒyˆØÔ,ˆàˆØ˜(Ò"Ñ"ð Ô#Ñ+°D´NÑ+Ø—i’i  YÑ/Ô/�à˜)Ò#Ð#¨D¬KÐ#Ø #¥c¨#¡h¤h¡�IØà˜)Ò#Ñ#Ø#ð OÝ,Ð-MÑNÔNÐNð   	¨# Ô.�DØ˜e’|�|Ø#Ÿ{š{¨5Ñ1Ô1˜Ý˜4‘y”y ?Ò2Ð2Ý)¨$¨t°¨t¬*°vÑ*=¸ÑOÔOÐOà”K×&Ò& tÑ,Ô,Ð,à&*Ô&9�Oå˜4œ;Ñ'Ô'¨$Ô*:Ò:Ð:Ý,Ð-HÑIÔIÐIà #¥c¨#¡h¤h¡�Ið ”{ 2”¨%Ò/Ñ/Ø'+Ô'7½#¸d¼kÑ:JÔ:JÑ'J˜ð0Ø)-×);Ò);¸D¼KÑ)HÔ)H˜Cà œK×-Ò-Ñ/Ô/Ð/Ð/ø˜DœK×-Ò-Ñ/Ô/Ð/Ð/øøøð3µH½S´Mð 3ð 3ð 3ð 3ð 3ð 3ð 3ð "4Ð!3Ñ!5Ô!5˜à-°´Ð<Ð<Ý"/Ð0BÑ"CÔ"CÐCà),¬ð *Õ9NØœKñ:ô :˜œõ ")¨¨h¸¼Ñ!DÔ!D˜å& s¨F°AÑ6Ô6˜à#œ}Ð8Ð8Ð8à%)Õ-DÐ%Dð &ÍØ"ÐC vÕ1CÐ'CñIô I˜
ð  *ð H4Ø$Ð0°V¸a²Z°ZÀCÄK°ZØ$(¤Nð 6@õ '3Ø $¤Ø&*¤jØ%)Ø&*¤kð	'ñ 'ô '˜Gõ .?Ø 'Ø'-Ø(+¬Ø'-Ø,/¬OØ%)¤YØ37Ô3JØ04Ô0EØ$(¤HØ/3Ô/CØ.2Ô.@Ø/3Ô/BØ-9ð.ñ .ô .˜Nð $2Ô#6ð FØ7E Ô 4ùØ# |Ò3Ð3Ý#-¨cÕ3DÑ#EÔ#EÐEÐEÐ#EÝ&2Ø $¤Ø&*¤jØ%)Ø&*¤kð	'ñ 'ô '˜Gð .2˜DœNÝ3DØ 'Ø'*¤zØ,/¬OØ04Ô0EØ$(¤HØ/3Ô/CØ.2Ô.@Ø/3Ô/BØ-9ð
4ñ 
4ô 
4˜DÔ0Ð0ð ",ð 4°°À4ÔCV°Ý&2Ø $¤Ø&*¤jØ%)Ø&*¤kð	'ñ 'ô '˜Gõ .?Ø 'Ø'-Ø(+¬Ø'-Ø,/¬OØ%)¤YØ37Ô3JØ04Ô0EØ$(¤HØ/3Ô/CØ.2Ô.@Ø/3Ô/BØ-9ð.ñ .ô .˜Nð $2Ô#6ð FØ7E Ô 4øå&3˜Gà Ÿš¨¨g¨Ñ7Ô7Ð7Ø'*Ô'7˜ùà!% i j jÔ!1�D”JÝ˜4œ:‘”¨Ô);Ò;Ð;Ý)¨$¬*°T°c°TÔ*:¸VÑ*CÀTÔEWÑXÔXÐXØ �DØð Ô%Ð-°$´.Ð-Øœ;Ð&Ð&�Øð ð ˜) hÒ.Ð.Øœ;Ð&Ð&�ØÔ+Ð7Ð7Ð7ðØ $Ô 4× >Ò >¸tÀIÀJÀJÔ?OÐQTÑ UÔ U‘I�C˜˜øÝ$ð ð ð Ø#1�LØÔ-Ð9Ø'+×'=Ò'=½cÀ.Ñ>QÔ>QÑ'RÔ'R˜å!ØÔ,Ô4Ø$Ø&ñô ð ð �CØ�DÝ!Ø&­Õ8MÐ(Nñô ð ð ðð ð ð ð øøøøðøøøð$ ð Ø !�IÝ" 4™yœy�HØ+/�DÔ(Ùð	ð ð{ ˜(Ò"Ñ"ð~ ð 	�I Ò(Ð(Ø˜	˜
˜
Ô#ˆDˆDàˆDà˜œ¨Ð-Ð-s%   ÆF9 Æ9GÓ&S7 Ó7
U2ÔA'U-Õ-U2rT   c                 ó^  — | j                              |¦  «        \  }}d}d}d}d}|                     t          j        d¦  «        }|r>d„ |D ¦   «         }	d|	v rd}nd|	v rd}d|	v r!|                     t          j        ¦  «        rd}|                     t          j        d	¦  «        }
|
                     ¦   «         r|
 	                    ¦   «         d
v r|
}|                     t          j
        ¦  «        }|�4|                      |¦  «        rd}t          j        |v rt          d¦  «        ‚||||||fS )z­Parses RFC 5322 headers from a stream.

        Line continuations are supported. Returns list of header name
        and value pairs. Header name is in upper case.
        NFrb   c                 ó¦   — h | ]N}d „ |                      d¦  «        D ¦   «         D ],}|¯|                     ¦   «         ¯|                     ¦   «         ’Œ-ŒOS )c              3   ó@   K  — | ]}|                      d ¦  «        V — ŒdS )ú 	N)rœ   )Ú.0Úparts     rd   ú	<genexpr>z5HttpParser.parse_headers.<locals>.<setcomp>.<genexpr>3  s.   è è € ÐRÐR°D˜dŸjšj¨Ñ/Ô/ÐRÐRÐRÐRÐRÐRrc   Ú,)r•   r´   rž   )rü   Ú
conn_valueÚtokens      rd   ú	<setcomp>z+HttpParser.parse_headers.<locals>.<setcomp>0  s{   € ð ð ð àØRÐR¸J×<LÒ<LÈSÑ<QÔ<QÐRÑRÔRðð ð Øð	ð #Ÿ]š]™_œ_ð	Ø—’‘”ðð ð ð rc   ÚcloseTz
keep-aliverY   r¯   >   ÚbrÚgzipÚzstdÚdeflatez6Transfer-Encoding can't be present with Content-Length)rÊ   r¬   Úgetallr   Ú
CONNECTIONr²   r³   ÚCONTENT_ENCODINGr´   rž   ÚTRANSFER_ENCODINGrÐ   rØ   r'   )r…   r‡   rU   rV   Ú
close_connÚencodingrY   rZ   Úconn_valuesÚconn_tokensÚencrÍ   s               rd   r¬   zHttpParser.parse_headers  sg  € ð  $Ô3×AÒAÀ%ÑHÔHÑˆ�Øˆ
ØˆØˆØˆð —n’n¥T¤_°bÑ9Ô9ˆØð 	ðð à"-ðñ ô ˆKð ˜+Ð%Ð%Ø!�
�
Ø Ð,Ð,Ø"�
ð ˜KÐ'Ð'¨G¯KªK½¼Ñ,EÔ,EÐ'Ø�ð �kŠk�$Ô/°Ñ4Ô4ˆØ�;Š;‰=Œ=ð 	˜SŸYšY™[œ[Ð,MÐMÐMØˆHð �[Š[�Ô/Ñ0Ô0ˆØˆ>Ø×"Ò" 2Ñ&Ô&ð Ø�åÔ" gÐ-Ð-Ý$ØLñô ð ð ˜ j°(¸GÀWÐMÐMrc   Úvalc                 ó   — || _         dS )zZSet connection upgraded (to websocket) mode.

        :param bool val: new state.
        N)rÅ   )r…   r  s     rd   Úset_upgradedzHttpParser.set_upgradedR  s   € ð
 ˆŒˆˆrc   )NNr¸   r{   r¹   r{   NNNNTFT)%r\   r]   r^   r€   r   ra   r`   r   r   ÚasyncioÚAbstractEventLooprh   r%   r_   r   rì   r†   ÚabcÚabstractmethodr	   r­   ri   rÌ   rÐ   rÒ   r   rØ   rÙ   rÚ   Ú_SEPr   r   r4   rë   r5   r¬   r  rb   rc   rd   r7   r7      s—  € € € € € € Ø€Cˆ�$ŒÐÐÑð ,0Ø48ØØ!ØØ"Ø,0Ø"Ø $Ø;?Ø#'Ø$Ø $ð&
ð &
à˜<Ô(ð&
ð �wÔ0Ô1ð&
ð ð	&
ð
 ð&
ð ð&
ð ð&
ð Ð(Ô)ð&
ð �sŒmð&
ð ˜”ð&
ð $ D¨Ô$7Ô8ð&
ð !ð&
ð ð&
ð ð&
ð 
ð&
ð &
ð &
ð &
ðP 	ÔØ= 4¨¤;Ð=°5Ð=Ð=Ð=ñ ÔØ=àÔØ2 Ð2¨Ð2Ð2Ð2ñ ÔØ2ð˜( 5œ/ð ð ð ð ð& ØØ#Ô2Ø Ô-Ø#'Ô#:ðY.ð Y.àðY.ð ðY.ð ð	Y.ð
 ðY.ð ðY.ð !ðY.ð 
ˆt�E˜% Ð-Ô.Ô/°°uÐ<Ô	=ðY.ð Y.ð Y.ð Y.ðv4NØ˜%”[ð4Nà	Ø ¨X°d¬^¸XÀc¼]ÈDÐRVÐVô
ð4Nð 4Nð 4Nð 4Nðl ð ¨ð ð ð ð ð ð rc   r7   c                   ó>   — e Zd ZdZdee         defd„Zdede	fd„Z
dS )r8   z¥Read request status line.

    Exception .http_exceptions.BadStatusLine
    could be raised in case of any errors in status line.
    Returns RawRequestMessage.
    r‡   r�   c                 ón  — |d                               dd¦  «        }	 |                     dd¬¦  «        \  }}}n# t          $ r t          |¦  «        d ‚w xY wt                               |¦  «        st          |¦  «        ‚t                               |¦  «        }|€t          |¦  «        ‚t          t          | 
                    d¦  «        ¦  «        t          | 
                    d¦  «        ¦  «        ¦  «        }|dk    rt          j        |d	¬
¦  «        }nÐ|                     d¦  «        rK|                     d¦  «        \  }	}
}|	                     d¦  «        \  }	}}t          j        |	||d	¬¦  «        }np|dk    r|dk    rt          |d	¬¦  «        }nRt          |d	¬¦  «        }|j        dk    r6t!          |                     d¬¦  «                              d¦  «        ¦  «        ‚|                      |dd …         ¦  «        \  }}}}}}|€|t&          k    rd	}nd}t)          ||||||||||¦
  «
        S )Nr   r�   rŽ   Ú rl   ©Úmaxsplitr   ÚCONNECTT)Ú	authorityÚencodedú/ú#ú?)rR   Úquery_stringÚfragmentr   Ú*ÚOPTIONS)r   r¯   )ÚerrorsÚlatin1F)r˜   r•   r–   r(   r@   r™   rB   r)   r1   rh   Úgroupr   ÚbuildÚ
startswithÚ	partitionÚschemer.   Úencoder¬   r2   r:   )r…   r‡   r¢   rQ   rR   rS   ÚmatchÚ	version_or[   Ú	path_partÚ_hash_separatorÚurl_fragmentÚ_question_mark_separatorÚqs_partrU   rV   r  rX   rY   rZ   s                       rd   rÌ   zHttpRequestParser.parse_messageb  sw  € à�QŒx�Š˜wÐ(9Ñ:Ô:ˆð	0Ø$(§J¢J¨s¸Q JÑ$?Ô$?Ñ!ˆF�D˜'˜'øÝð 	0ð 	0ð 	0Ý Ñ%Ô%¨4Ð/ð	0øøøõ × Ò  Ñ(Ô(ð 	(Ý Ñ'Ô'Ð'õ × Ò  Ñ)Ô)ˆØˆ=Ý Ñ%Ô%Ð%Ý¥ E§K¢K°¡N¤NÑ 3Ô 3µS¸¿ºÀQ¹¼Ñ5HÔ5HÑIÔIˆ	à�YÒÐõ ”) d°DÐ9Ñ9Ô9ˆCˆCØ�_Š_˜SÑ!Ô!ð 	ð 8<·~²~ÀcÑ7JÔ7JÑ4ˆI�¨Ø;D×;NÒ;NÈsÑ;SÔ;SÑ8ˆIÐ/°õ ”)ØØ$Ø%Øð	ñ ô ˆCˆCð �SŠ[ˆ[˜V yÒ0Ð0å�d DÐ)Ñ)Ô)ˆCˆCõ �d DÐ)Ñ)Ô)ˆCØŒz˜RÒÐå%Ø—K’KÐ'8�KÑ9Ô9×@Ò@ÀÑJÔJñô ð ð ×Ò˜u Q R RœyÑ)Ô)ñ	
ØØØØØØð ˆ=Ø�MÒ)Ð)Ø��à�å ØØØØØØØØØØñ
ô 
ð 	
s	   ž: ºArÍ   c                 óÜ   — |                      dd¬¦  «        d                              d¦  «        }|                     ¦   «         r|                     ¦   «         dk    rdS t	          d¦  «        ‚)	Nrÿ   r   r  rŠ   rû   rZ   Tz'Request has invalid `Transfer-Encoding`)Úrsplitrœ   r´   rž   r'   rÏ   s     rd   rÐ   z HttpRequestParser._is_chunked_te²  s`   € Ø�YŠY�s QˆYÑ'Ô'¨Ô+×1Ò1°%Ñ8Ô8ˆà�:Š:‰<Œ<ð 	˜BŸHšH™JœJ¨)Ò3Ð3Ø�4åÐFÑGÔGÐGrc   N)r\   r]   r^   Ú__doc__r	   r­   r:   rÌ   r_   ra   rÐ   rb   rc   rd   r8   r8   Z  sv   € € € € € ðð ðN
 4¨¤;ð N
Ð3Dð N
ð N
ð N
ð N
ð`H ð H¨ð Hð Hð Hð Hð Hð Hrc   r8   c                   ó¨   ‡ — e Zd ZdZe Z	 ddedee         de	de	de
ee
eef                  eef         f
ˆ fd„Zd	ee         defd
„Zdedefd„Zˆ xZS )r9   z”Read response status line and headers.

    BadStatusLine could be raised in case of any errors in status line.
    Returns RawResponseMessage.
    NrÕ   rÖ   ÚargsÚkwargsr�   c                 óZ   •— |€t           rdnd} t          ¦   «         j        ||g|¢R i |¤ŽS )Nr<   r=   )r!   Úsuperrë   )r…   rÕ   rÖ   r;  r<  Ú	__class__s        €rd   rë   zHttpResponseParser.feed_dataÅ  sA   ø€ ð ˆ;Ý"Ð-�'�'¨ˆCØ �u‰wŒwÔ   sÐ<¨TÐ<Ð<Ð<°VÐ<Ð<Ð<rc   r‡   c                 óâ  — |d                               dd¦  «        }	 |                     d¬¦  «        \  }}n# t          $ r t          |¦  «        d ‚w xY w	 |                     d¬¦  «        \  }}n&# t          $ r |                     ¦   «         }d}Y nw xY wt
                               |¦  «        }|€t          |¦  «        ‚t          t          | 	                    d¦  «        ¦  «        t          | 	                    d¦  «        ¦  «        ¦  «        }t          |¦  «        dk    st                               |¦  «        st          |¦  «        ‚t          |¦  «        }|                      |dd …         ¦  «        \  }	}
}}}}|€E|t          k    rd	}n7d
|cxk    rdk     sn |dv rd}n!t          j        |	v st          j        |	v rd}nd	}t#          |||                     ¦   «         |	|
||||¦	  «	        S )Nr   r�   rŽ   r   r  r¯   rl   rm   Tr�   éÈ   >   é0  éÌ   F)r˜   r•   r–   r)   rœ   rB   r™   r1   rh   r*  r”   rC   r¬   r2   r   rØ   r  r;   )r…   r‡   r¢   rS   Ústatusrg   r0  r1  Ústatus_irU   rV   r  rX   rY   rZ   s                  rd   rÌ   z HttpResponseParser.parse_messageÐ  s%  € Ø�QŒx�Š˜wÐ(9Ñ:Ô:ˆð	0Ø"Ÿjšj°!˜jÑ4Ô4‰OˆG�V�VøÝð 	0ð 	0ð 	0Ý Ñ%Ô%¨4Ð/ð	0øøøð	Ø#Ÿ\š\°1˜\Ñ5Ô5‰NˆF�F�FøÝð 	ð 	ð 	Ø—\’\‘^”^ˆFØˆFˆFˆFð	øøøõ
 × Ò  Ñ)Ô)ˆØˆ=Ý Ñ%Ô%Ð%Ý¥ E§K¢K°¡N¤NÑ 3Ô 3µS¸¿ºÀQ¹¼Ñ5HÔ5HÑIÔIˆ	õ ˆv‰;Œ;˜!ÒÐ¥6×#3Ò#3°FÑ#;Ô#;ÐÝ Ñ%Ô%Ð%Ý�v‘;”;ˆð ×Ò˜u Q R RœyÑ)Ô)ñ	
ØØØØØØð ˆ=Ø�MÒ)Ð)Ø��à˜Ð&Ð&Ò&Ð& 3Ò&Ð&Ð&Ð&¨(°jÐ*@Ð*@Ø��ÝÔ$¨Ð/Ð/µ4Ô3IÈWÐ3TÐ3TØ��ð �å!ØØØ�LŠL‰NŒNØØØØØØñ

ô 

ð 
	
s   ž8 ¸AÁA1 Á1 BÂBrÍ   c                 óŽ   — |                      dd¬¦  «        d                              d¦  «                             ¦   «         dk    S )Nrÿ   r   r  rŠ   rû   rZ   )r8  rœ   rž   rÏ   s     rd   rÐ   z!HttpResponseParser._is_chunked_te
  s<   € à�yŠy˜ qˆyÑ)Ô)¨"Ô-×3Ò3°EÑ:Ô:×@Ò@ÑBÔBÀiÒOÐOrc   rƒ   )r\   r]   r^   r9  r!   r€   r­   r   r  r   r   r	   r;   r4   ra   rë   rÌ   r_   rÐ   Ú__classcell__)r?  s   @rd   r9   r9   »  sþ   ø€ € € € € ðð ð ˆ)€Cð
 #ð	=ð 	=àð	=ð �dŒ^ð	=ð ð		=ð
 ð	=ð 
ˆt�EÐ,¨lÐ:Ô;Ô<¸dÀEÐIÔ	Jð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð8
 4¨¤;ð 8
Ð3Eð 8
ð 8
ð 8
ð 8
ðtP ð P¨ð Pð Pð Pð Pð Pð Pð Pð Prc   r9   c                   óÎ   — e Zd Z	 	 	 	 	 	 	 	 dddddœdedee         d	ed
ee         dee         dee         dedededededededdfd„Z	dd„Z
	 ddedededeeef         fd„ZdS ) rè   NFTr{   r¹   )r}   r   rã   rí   rá   rZ   rX   rf   rQ   r¿   rÁ   r€   râ   r}   r   rã   r�   c
                ó4  — d| _         t          j        | _        t          j        | _        d| _        d| _        || _	        |	| _
        |
| _        || _        || _        || _        g | _        d| _        |r|r| j	        rt#          ||¦  «        }n|}|s-t          j        | _        |                     ¦   «          d| _        nT|rt          j        | _        n@|�>t          j        | _        || _         | j         dk    r|                     ¦   «          d| _        || _        d S )Nr   rc   FT)Ú_lengthrk   rq   Ú_typers   ru   Ú_chunkÚ_chunk_sizeÚ_chunk_tailrÈ   r„   rÊ   Ú_max_line_sizeÚ_max_field_sizeÚ_max_trailersÚ_trailer_linesré   ÚDeflateBufferrn   rÒ   rp   ro   rí   )r…   rí   rá   rZ   rX   rf   rQ   r¿   rÁ   r€   râ   r}   r   rã   Úreal_payloads                  rd   r†   zHttpPayloadParser.__init__  s2  € ð" ˆŒÝÔ/ˆŒ
Ý Ô3ˆŒØˆÔØˆÔØ /ˆÔØˆŒ	Ø-ˆÔØ+ˆÔØ-ˆÔØ)ˆÔØ+-ˆÔØˆŒ	ð ð 	# +ð 	#°$Ô2Gð 	#Ý?LØ˜ñ@ô @ˆLˆLð #ˆLð "ð 	!å#Ô.ˆDŒJØ×!Ò!Ñ#Ô#Ð#ØˆDŒIˆIØð 	!Ý#Ô1ˆDŒJˆJØÐÝ#Ô0ˆDŒJØ!ˆDŒLØŒ|˜qÒ Ð Ø×%Ò%Ñ'Ô'Ð'Ø �”	à#ˆŒˆˆrc   c                 óö   — | j         t          j        k    r| j                             ¦   «          d S | j         t          j        k    rt          d¦  «        ‚| j         t          j        k    rt          d¦  «        ‚d S )Nz1Not enough data to satisfy content length header.z2Not enough data to satisfy transfer length header.)	rK  rk   rq   rí   rÒ   ro   r+   rp   r0   rÔ   s    rd   rÒ   zHttpPayloadParser.feed_eofH  s€   € ØŒ:�Ô3Ò3Ð3ØŒL×!Ò!Ñ#Ô#Ð#Ð#Ð#ØŒZ�:Ô2Ò2Ð2Ý$ØCñô ð ð ŒZ�:Ô3Ò3Ð3Ý'ØDñô ð ð 4Ð3rc   r<   ó   ;ÚchunkrÖ   Ú	CHUNK_EXTc                 ó*  — | j         t          j        k    r¸| j        }t	          |¦  «        }||k    rM||z
  | _        | j                             ||¦  «         | j        dk    r| j                             ¦   «          dS �nd| _        | j                             |d |…         |¦  «         | j                             ¦   «          d||d …         fS | j         t          j        k    �rr| j	        rƒ| j
        t          j        k    sJ ‚| j        }| j
        t          j        k    r| j        }t	          | j	        ¦  «        |k    r t!          | j	        d d…         dz   |¦  «        ‚| j	        |z   }d| _	        |�rä| j
        t          j        k    �r¬|                     |¦  «        }|dk    �r‡|                     |d|¦  «        }|dk    rB|d |…         }	d|||…         x}
v r)t'          d|
›�¦  «        }t)          | j        |¦  «         |‚n
|d |…         }	| j        r|	                     ¦   «         }	t/          j        t2          |	¦  «        sBt'          |d |…                              d	d
¦  «        ¦  «        }t)          | j        |¦  «         |‚t7          t9          |	¦  «        d¦  «        }||t	          |¦  «        z   d …         }|dk    r8t          j        | _
        | j        r|                     d¦  «        r
|dd …         }n;t          j        | _
        || _        | j                             ¦   «          n	|| _	        dS | j
        t          j        k    r¡| j        }t	          |¦  «        }||k    r'||z
  | _        | j                             ||¦  «         dS d| _        | j                             |d |…         |¦  «         ||d …         }t          j         | _
        | j         !                    ¦   «          | j
        t          j         k    rÔ| j        r|                     d¦  «        r
|dd …         }|d t	          |¦  «        …         |k    r)|t	          |¦  «        d …         }t          j        | _
        njt	          |¦  «        t	          |¦  «        k    s||d t	          |¦  «        …         k    r&t'          d¦  «        }t)          | j        |¦  «         |‚|| _	        dS | j
        t          j        k    �rj|                     |¦  «        }|dk     r	|| _	        dS |d |…         }||t	          |¦  «        z   d …         }|dk    r| "                    d¦  «        }t	          |¦  «        | j        k    r t!          |d d…         dz   | j        ¦  «        ‚| j#         $                    |¦  «         t	          | j#        ¦  «        | j%        k    rtM          d¦  «        ‚| j#        d         dk    rx	 | j'         (                    | j#        ¦  «        \  }}| j#         )                    ¦   «          n# | j#         )                    ¦   «          w xY w| j                             ¦   «          d|fS |�°än=| j         t          j*        k    r(| j                             |t	          |¦  «        ¦  «         dS )Nr   )Trc   Tr�   r�   rc   r=   z"Unexpected LF in chunk-extension: ÚasciirŽ   é   rÜ   r   )Frc   z3Chunk size mismatch: expected CRLF after chunk datazToo many trailers receivedrŠ   )+rK  rk   ro   rJ  r”   rí   rë   rÒ   rp   rN  rL  rs   rv   rO  ry   rP  r/   ru   rä   r0   r&   r„   rœ   Úrer™   rD   r˜   rh   r­   r,  rM  Úbegin_http_chunk_receivingrw   Úend_http_chunk_receivingrå   rR  r›   rQ  r'   rÊ   r¬   ræ   rq   )r…   rW  rÖ   rX  ÚrequiredÚ	chunk_lenrñ   rò   ÚiÚsize_bÚextÚexcÚsizer¢   ÚtrailersÚraw_trailerss                   rd   rë   zHttpPayloadParser.feed_dataT  s�  € ð Œ:�Ô0Ò0Ð0Ø”|ˆHÝ˜E™
œ
ˆIà˜9Ò$Ð$Ø'¨)Ñ3�”Ø”×&Ò& u¨iÑ8Ô8Ð8Ø”< 1Ò$Ð$Ø”L×)Ò)Ñ+Ô+Ð+Ø$˜9ñ %ð  !�”Ø”×&Ò& u¨Y¨h¨YÔ'7¸ÑBÔBÐBØ”×%Ò%Ñ'Ô'Ð'Ø˜U 8 9 9Ô-Ð-Ð-ð ŒZ�:Ô3Ò3Ñ3ØÔð 'à”{¥jÔ&DÒDÐDÐDÐDà"&Ô"5�Ø”;¥*Ô";Ò;Ð;Ø&*Ô&:�OÝ�tÔ'Ñ(Ô(¨?Ò:Ð:Ý% dÔ&6°t¸°tÔ&<¸vÑ&EÀÑWÔWÐWàÔ(¨5Ñ0�Ø#&�Ô àñ j+ð ”;¥*Ô"?Ò?Ñ?ØŸ*š* S™/œ/�CØ˜a’x‘xØ!ŸJšJ y°!°SÑ9Ô9˜Ø š6˜6Ø%*¨2¨A¨2¤Y˜Fà$°°a¸°e´Ð)<¨Ð=Ð=Ý&;Ø$PÈÐ$PÐ$Pñ'"ô '" õ !.¨d¬l¸CÑ @Ô @Ð @Ø&) 	ð  >ð &+¨4¨C¨4¤[˜Fàœ9ð 4Ø%+§\¢\¡^¤^˜Få!œ|­I°vÑ>Ô>ð &Ý"7Ø % d s d¤× 2Ò 2°7Ð<MÑ NÔ Nñ#ô #˜Cõ *¨$¬,¸Ñ<Ô<Ð<Ø"%˜IÝ"¥5¨¡=¤=°"Ñ5Ô5˜à % c­C°©H¬H¡nÐ&6Ð&6Ô 7˜Ø 1š9˜9Ý*4Ô*C˜DœKØ#œyð 2¨U×-=Ò-=¸eÑ-DÔ-Dð 2Ø(-¨a¨b¨b¬	 øå*4Ô*H˜DœKØ/3˜DÔ,Ø œL×CÒCÑEÔEÐEÐEà+0˜Ô(Ø)˜zð ”;¥*Ô"@Ò@Ð@Ø#Ô/�HÝ # E¡
¤
�Ià )Ò+Ð+Ø+3°iÑ+?˜Ô(Øœ×.Ò.¨u°iÑ@Ô@Ð@Ø)˜zà+,˜Ô(Øœ×.Ò.¨u°Y°h°YÔ/?ÀÑJÔJÐJØ % h i iÔ 0˜Ý&0Ô&H˜œØœ×=Ò=Ñ?Ô?Ð?ð ”;¥*Ô"DÒDÐDØ”yð * U×%5Ò%5°eÑ%<Ô%<ð *Ø % a b b¤	˜Ø˜Z�s 3™xœx˜ZÔ(¨CÒ/Ð/Ø %¥c¨#¡h¤h j jÔ 1˜Ý&0Ô&C˜œ˜Ý˜U™œ¥s¨3¡x¤xÒ/Ð/°5¸CÀÅ#ÀeÁ*Ä*ÀÔ<MÒ3MÐ3MÝ3ØQñô ˜õ & d¤l°CÑ8Ô8Ð8Ø!˜	à+0˜Ô(Ø)˜zà”;¥*Ô";Ò;Ñ;ØŸ*š* S™/œ/�CØ˜Q’w�wØ+0˜Ô(Ø)˜zà   # œ;�DØ! #­¨C©¬¡.Ð"2Ð"2Ô3�EØ˜e’|�|Ø#Ÿ{š{¨5Ñ1Ô1˜å˜4‘y”y 4Ô#7Ò7Ð7Ý)¨$¨t°¨t¬*°vÑ*=¸tÔ?SÑTÔTÐTàÔ'×.Ò.¨tÑ4Ô4Ð4å˜4Ô.Ñ/Ô/°$Ô2DÒDÐDÝ,Ð-IÑJÔJÐJð Ô*¨2Ô.°#Ò5Ð5ð8Ø59Ô5I×5WÒ5WØ $Ô 3ñ6ô 6Ñ2˜H lð !Ô/×5Ò5Ñ7Ô7Ð7Ð7ø˜DÔ/×5Ò5Ñ7Ô7Ð7Ð7øøøØœ×-Ò-Ñ/Ô/Ð/Ø# U˜{Ð*ðU ñ j+øðZ ŒZ�:Ô5Ò5Ð5ØŒL×"Ò" 5­#¨e©*¬*Ñ5Ô5Ð5àˆzs   ×"X ØX2)NFNNNTTF©r�   N)r<   rV  )r\   r]   r^   r4   r   rh   ra   r_   r6   r†   rÒ   r­   r  r   rë   rb   rc   rd   rè   rè     s_  € € € € € ð !%ØØ%)Ø"Ø $Ø#'Ø $Øð6$ð "Ø"Øð6$ð 6$ð 6$àð6$ð ˜”ð6$ð ð	6$ð
 ˜c”]ð6$ð �sŒmð6$ð ˜”ð6$ð !ð6$ð ð6$ð ð6$ð &ð6$ð ð6$ð ð6$ð ð6$ð  
ð!6$ð 6$ð 6$ð 6$ðp
ð 
ð 
ð 
ð EIðSð SØðSØ!%ðSØ<AðSà	ˆt�Uˆ{Ô	ðSð Sð Sð Sð Sð Src   rè   c            	       óŠ   — e Zd ZU dZeed<   efdedee	         de
ddfd„Zefd	ed
eddfd„Zdede
ddfd„Zdd„Zdd„Zdd„ZdS )rS  zDDeflateStream decompress stream and feed data into specified stream.ÚdecompressorÚoutr  Úmax_decompress_sizer�   Nc                 óR  — || _         d| _        | j        |_        || _        d| _        |  |dk    r*t
          st          d¦  «        ‚t          ¦   «         | _        nE|dk    r*t          st          d¦  «        ‚t          ¦   «         | _        nt          |¬¦  «        | _        || _        d S )Nr   Fr  zECan not decode content-encoding: brotli (br). Please install `Brotli`r  zRCan not decode content-encoding: zstandard (zstd). Please install `backports.zstd`)r  )rk  re  Útotal_compressed_bytesr  Ú_started_decodingr   r*   r   rj  r   r   r   Ú_max_decompress_size)r…   rk  r  rl  s       rd   r†   zDeflateBuffer.__init__ï  sÌ   € ð ˆŒØˆŒ	Ø%)¤YˆÔ"Ø ˆŒØ!&ˆÔàÐXØ�tÒÐÝð Ý*ð.ñô ð õ !3Ñ 4Ô 4ˆDÔÐØ˜ÒÐÝð Ý*ð6ñô ð õ !1Ñ 2Ô 2ˆDÔÐå 0¸(Ð CÑ CÔ CˆDÔà$7ˆÔ!Ð!Ð!rc   rd  Ú	exc_causec                 ó2   — t          | j        ||¦  «         d S rƒ   )r&   rk  )r…   rd  rq  s      rd   r&   zDeflateBuffer.set_exception  s   € õ
 	�d”h  YÑ/Ô/Ð/Ð/Ð/rc   rW  re  c                 ó"  — |sd S | xj         |z  c_         | j         | j        _        | j        s5| j        dk    r*|d         dz  dk    rt          | j        d¬¦  «        | _        	 | j                             || j        dz   ¬¦  «        }n%# t          $ r t          d	| j        z  ¦  «        ‚w xY wd| _        t          |¦  «        | j        k    rt          d
| j        z  ¦  «        ‚|r*| j                             |t          |¦  «        ¦  «         d S d S )Nr  r   é   é   T)r  Úsuppress_deflate_headerr   )Ú
max_lengthz#Can not decode content-encoding: %sz:Decompressed data exceeds the configured limit of %d bytes)re  rk  rn  ro  r  r   rj  Údecompress_syncrp  rÓ   r*   r”   r,   rë   )r…   rW  re  s      rd   rë   zDeflateBuffer.feed_data  sZ  € Øð 	ØˆFàˆ	Œ	�TÑˆ	Œ	Ø*.¬)ˆŒÔ'ð Ô&ð		à” Ò*Ð*Ø�a”˜3‘ !Ò#Ð#õ !1ØœÀð!ñ !ô !ˆDÔð	àÔ%×5Ò5Ø $Ô";¸aÑ"?ð 6ñ ô ˆEˆEøõ ð 	ð 	ð 	Ý&Ø5¸¼ÑEñô ð ð	øøøð
 "&ˆÔõ ˆu‰:Œ:˜Ô1Ò1Ð1Ý%ØLØÔ+ñ,ñô ð ð
 ð 	2ØŒH×Ò˜u¥c¨%¡j¤jÑ1Ô1Ð1Ð1Ð1ð	2ð 	2s   Á#$B Â"B*c                 ó   — | j                              ¦   «         }|s| j        dk    rN| j                             |t          |¦  «        ¦  «         | j        dk    r| j         j        st          d¦  «        ‚| j         	                    ¦   «          d S )Nr   r  )
rj  Úflushre  rk  rë   r”   r  rõ   r*   rÒ   )r…   rW  s     rd   rÒ   zDeflateBuffer.feed_eofA  s†   € ØÔ!×'Ò'Ñ)Ô)ˆàð 	6�D”I ’M�MØŒH×Ò˜u¥c¨%¡j¤jÑ1Ô1Ð1ØŒ} 	Ò)Ð)°$Ô2CÔ2GÐ)Ý*¨9Ñ5Ô5Ð5àŒ×ÒÑÔÐÐÐrc   c                 ó8   — | j                              ¦   «          d S rƒ   )rk  r]  rÔ   s    rd   r]  z(DeflateBuffer.begin_http_chunk_receivingK  s   € ØŒ×+Ò+Ñ-Ô-Ð-Ð-Ð-rc   c                 ó8   — | j                              ¦   «          d S rƒ   )rk  r^  rÔ   s    rd   r^  z&DeflateBuffer.end_http_chunk_receivingN  s   € ØŒ×)Ò)Ñ+Ô+Ð+Ð+Ð+rc   rh  )r\   r]   r^   r9  r   r`   r   r4   r   r_   rh   r†   r    rì   r&   r­   rë   rÒ   r]  r^  rb   rc   rd   rS  rS  ê  s  € € € € € € ØNÐNàÐÐÑð $?ð	8ð 8àð8ð ˜3”-ð8ð !ð	8ð
 
ð8ð 8ð 8ð 8ðF $1ð0ð 0àð0ð !ð0ð 
ð	0ð 0ð 0ð 0ð)2˜uð )2¨Cð )2°Dð )2ð )2ð )2ð )2ðVð ð ð ð.ð .ð .ð .ð,ð ,ð ,ð ,ð ,ð ,rc   rS  )r8   r9   r:   r;   )nr  r  r\  ÚstringÚ
contextlibr   Úenumr   Útypingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Ú	multidictr   r   r   Úyarlr   r¯   r   Úbase_protocolr   Úcompression_utilsr   r   r   r   r   r   Úhelpersr    r!   r"   r#   r$   r%   r&   Úhttp_exceptionsr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   Úhttp_writerr1   r2   Ústreamsr3   r4   Útypedefsr5   Ú__all__r  ÚsetÚ	printabler>   r_   r`   Úescaper?   Úcompiler@   rA   ÚASCIIrB   rC   rD   r­   Ú	frozensetrO   r:   r;   ri   rk   rs   r6   ra   r¶   ÚABCr7   r8   r9   rè   rS  ÚHttpRequestParserPyÚHttpResponseParserPyÚRawRequestMessagePyÚRawResponseMessagePyÚ_http_parserÚHttpRequestParserCÚHttpResponseParserCÚRawRequestMessageCÚRawResponseMessageCÚImportErrorrb   rc   rd   ú<module>rœ     s  ðØ 
€
€
€
€
Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð" :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø  Ð  Ð  Ð  Ð  Ð  ð€ð ˆ~Ô€à˜C Ô 0Ñ1Ô1€ˆ%��C”Œ/Ð 1Ð 1Ñ 1ð (˜bœiÐ(9Ñ:Ô:€��s”Ð :Ð :Ñ :Ø)˜rœzÐ*J°Ð*JÐ*JÐ*JÑKÔK€ˆˆw�sŒ|Ô	Ð KÐ KÑ Kà5?°R´ZØñ6ô 6Ð ˜u W¨S¤\Ô2ð ð ñ ð )˜bœjÐ);¸R¼XÑFÔF€ˆˆg�cŒlÔÐ FÐ FÑ FØ(˜bœj¨°´Ñ:Ô:€ˆˆg�cŒlÔÐ :Ð :Ñ :Ø#- 2¤:Ð.>Ñ#?Ô#?€	ˆ5�˜”Ô Ð ?Ð ?Ñ ?ð ,5¨9ðð ð ñ,ô ,Ð �5˜ 3œÔ(ð ð ñ ð 
ð 
ð 
ð 
ð 
˜
ñ 
ô 
ð 
ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð 	ˆ�Ð*Ð,>Ñ?Ô?€ðð ð ð ð �ñ ô ð ðð ð ð ð �ñ ô ð ðY?ð Y?ð Y?ð Y?ð Y?ñ Y?ô Y?ð Y?ðx=Ð#3°CÔ#8ð =¸Tð =ð =ð =ð =ðWð Wð Wð Wð W�”˜' %œ.ñ Wô Wð Wðt
^Hð ^Hð ^Hð ^Hð ^H˜
Ð#4Ô5ñ ^Hô ^Hð ^HðBQPð QPð QPð QPð QP˜Ð$6Ô7ñ QPô QPð QPðhXð Xð Xð Xð Xñ Xô Xð Xðve,ð e,ð e,ð e,ð e,ñ e,ô e,ð e,ðP (Ð Ø)Ð Ø'Ð Ø)Ð ð	Øð 1ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð /ÐØ0ÐØ.ÐØ0ÐÐÐð1ð 1øð ð 	ð 	ð 	Ø€D€Dð	øøøs   ÊJ" Ê"J+Ê*J+