+
    TŎi!                     T  a  R- th0 t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
HtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHtHtHt ^ RIHt ^RIHt ^RI H!t! ^R	I"H#t#H$t$H%t%H&t&H't'H(t( ^R
I)H*t*H+t+H,t,H-t-H.t.H/t/H0t0 ^RI1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t; ^RI<H=t=H>t> ^RI?H@t@HAtA ^RIBHCtC R.tD]R/,          tE]F! ]P                  4      tH] ^ k ]P                  ! R4      tJ] ^k ]P                  ! R]J R24      tL] ^k ]P                  ! R]P                  4      tN] ^k ]P                  ! R]P                  4      tO] ^k ]P                  ! R4      tP] ^k  ! R R]4      tQ ! R R]4      tR]! R]Q]R4      tS ! R R]4      tT ! R  R!]4      tU ! R" R4      tVR# R$ ltW ! R% R]P                  ]]S,          4      tY ! R& R]Y]Q,          4      tZ ! R' R]Y]R,          4      t[ ! R( R)4      t\ ! R* R+4      t]]Zt^][t_]Qt`]Rta ].'       g   ^R,IbHZtZH[t[HQtQHRtR ]Ztc][td]Qte]RtfR# R#   ]g d     R# i ; i)0    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RawResponseMessagez!#$%&'*+-.^_`|~z
[0-9A-Za-zz]+zHTTP/(\d)\.(\d)z\d+s   [0-9a-fA-F]+c                   ,   a  ] tR t^Yt o V 3R ltRtV tR# )r9   c                   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[;R&   R;R&   S[;R&   S[;R&   S[S[ ,          ;R&   S[;R	&   S[;R
&   S[;R&   # )   methodpathversionCIMultiDictProxy[str]headersraw_headersshould_closecompressionupgradechunkedurl)strr0   r4   boolr   r   )format__classdict__s   "b/Users/ahmad/.openclaw/workspace/scripts/.venv/lib/python3.14/site-packages/aiohttp/http_parser.py__annotate__RawRequestMessage.__annotate__Y   s     K 
I    %$	 
     #  M  M  
H      N__name__
__module____qualname____firstlineno____annotate_func____static_attributes____classdictcell__rL   s   @rM   r9   r9   Y         rP   c                   ,   a  ] tR t^ft o V 3R ltRtV tR# )r:   c                   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[S[,          ;R&   S[;R&   S[;R&   S[S[,          ;R&   S[;R&   S[;R	&   # )
r=   r@   codereasonrB   rC   rD   rE   rF   rG   )r0   intrI   r   r4   rJ   r   )rK   rL   s   "rM   rN   RawResponseMessage.__annotate__f   s{      
I  K  c""	 
     #  M  M rP   rQ   NrR   rZ   s   @rM   r:   r:   f   r[   rP   _MsgTc                   &    ] tR t^ut^ t^t^t^tRtR# )
ParseStaterQ   N)	rS   rT   rU   rV   
PARSE_NONEPARSE_LENGTHPARSE_CHUNKEDPARSE_UNTIL_EOFrX   rQ   rP   rM   rd   rd   u   s    JLMOrP   rd   c                   *    ] tR t^}t^ t^t^t^t^tRt	R# )
ChunkStaterQ   N)
rS   rT   rU   rV   PARSE_CHUNKED_SIZEPARSE_CHUNKED_CHUNKPARSE_CHUNKED_CHUNK_EOFPARSE_MAYBE_TRAILERSPARSE_TRAILERSrX   rQ   rP   rM   rj   rj   }   s    NrP   rj   c                   H   a  ] tR t^t o RV 3R lR lltV 3R lR ltRtV tR# )r5   c          
      6   < V ^8  d   QhRS[ RS[ RS[ RS[RR/# )r=   max_line_sizemax_headersmax_field_sizelaxreturnN)r`   rJ   )rK   rL   s   "rM   rN   HeadersParser.__annotate__   s=     
 

 
 	

 
 

rP   c                6    Wn         W n        W0n        W@n        R # N)rr   rs   rt   _lax)selfrr   rs   rt   ru   s   &&&&&rM   __init__HeadersParser.__init__   s     +&,	rP   c                J   < V ^8  d   QhRS[ S[,          RS[RS[3,          /# r=   linesrv   rA   )r	   bytesr   r4   )rK   rL   s   "rM   rN   rw      s0     \? \?%[\?	&
2	3\?rP   c           	        \        4       p. p^ pW,          p\        V4      pV'       Ed    VP                  R^4      w  rx\        T4      ^ 8X  d   \	        T4      hT^ ,          TR,          0^ ^	0,          '       d   \	        T4      hTP                  R4      p\        T4      T P                  8  dR   \        RP                  TP                  RR4      4      \        T P                  4      \        \        T4      4      4      hTP                  RR4      p	\        P                  T	4      '       g   \	        T4      h\        T4      p
T^,          pY,          pT P                  ;'       d    T;'       d    T^ ,          R9   pT'       d   T.pT'       d   T
\        T4      ,          p
YP                  8  dI   \        R	P                  TP                  RR4      4      \        T P                  4      \        T
4      4      hTP                  T4       T^,          pYF8  d!   Y,          pT'       d   T^ ,          R9   pK  K  R
p R
P                  T4      pMXYP                  8  dI   \        R	P                  TP                  RR4      4      \        T P                  4      \        T
4      4      hTP!                  R4      pTP                  RR4      pRT9   g   RT9   g   RT9   d   \	        T4      hTP#                  Y4       TP                  Yx34       EK  \%        V4      \'        V4      3#   \         d    \	        T4      Rhi ; i)r      :Ns    	zrequest header name {}utf8backslashreplaceutf-8surrogateescapezrequest header field {}rP   
 )    	   )r   lensplit
ValueErrorr,   lstriprt   r.   rK   decoderI   TOKENRE	fullmatchrz   appendjoinstripaddr   tuple)r{   r   rB   rC   	lines_idxline
line_countbnamebvaluenameheader_lengthcontinuation
bvalue_lstvalues   &&            rM   parse_headersHeadersParser.parse_headers   s    %0M	Z
d4 $

4 3 5zQ#E** a%)$Aw..#D))]]6*F5zD///!,33V-?@ ++,E
O  <<):;D$$T**#E**KM NI#D  99DDDD$q'W2DL $X
"!SY.M$':'::)5<< %V5G H   3 34.  %%d+ NI -$/+/7g+=L    #*- #6#66%188!LL1CD D//0M*  \\&)FMM'+<=E u}5#F++KK$/ )5+=>>[  4#D)t34s   L* *M)rz   rt   rs   rr   N)     r   F)rS   rT   rU   rV   r|   r   rX   rY   rZ   s   @rM   r5   r5      s     
 
\? \?rP   c                F    V ^8  d   QhR\         \        ,          R\        /# )r=   rB   rv   )r   rI   rJ   )rK   s   "rM   rN   rN      s      = =#3C#8 =T =rP   c                    V P                  \        P                  R4      pVP                  4       ;'       d    VP	                  4       R9   # )z)Check if the upgrade header is supported. >   tcp	websocket)getr   UPGRADEisasciilower)rB   us   & rM   _is_supported_upgrader      s6    DLL"%A99;<<1779(<<<rP   c                   8  a  ] tR t^t o RtRV 3R lR llt]P                  V 3R lR l4       t]P                  V 3R lR l4       t	V 3R	 lR
 lt
RR]P                  ]P                  ]P                  3V 3R lR lltV 3R lR ltV 3R lR ltV 3R ltRtV tR# )r6   FNc                   < V ^8  d   QhRS[ S[,          RS[ S[P                  ,          RS[RS[RS[RS[RS[ S[,          RS[ S[,          R	S[ S[,          R
S[ S[S[,          ,          RS[	RS[	RS[	RR/# )r=   protocollooplimitrr   rs   rt   timerr^   r>   payload_exceptionresponse_with_bodyread_until_eofauto_decompressrv   N)
r   r   asyncioAbstractEventLoopr`   r$   rI   r   BaseExceptionrJ   )rK   rL   s   "rM   rN   HttpParser.__annotate__   s     %
 %
<(%
 w001%
 	%

 %
 %
 %
 ()%
 sm%
 %
 $D$78%
 !%
 %
 %
 
%
rP   c                   Wn         W n        W@n        WPn        W`n        Wpn        Wn        Wn        Wn        Wn	        Wn
        . V n        R V n        RV n        RV n        RV n        Wn        W0n        \%        WEW`P&                  4      V n        R# )rP   FN)r   r   rr   rs   rt   r   r^   r>   r   r   r   _lines_tail	_upgraded_payload_payload_parser_auto_decompress_limitr5   ru   _headers_parser)r{   r   r   r   rr   rs   rt   r   r^   r>   r   r   r   r   s   &&&&&&&&&&&&&&rM   r|   HttpParser.__init__   s      !	*&,
	!2"4,#%
<@ /, 
rP   c                6   < V ^8  d   QhRS[ S[,          RS[/# r=   r   rv   )r	   r   rb   )rK   rL   s   "rM   rN   r   #  s    ==4;=5=rP   c                    R # ry   rQ   )r{   r   s   &&rM   parse_messageHttpParser.parse_message"  s    :=rP   c                &   < V ^8  d   QhRS[ RS[/# r=   terv   rI   rJ   )rK   rL   s   "rM   rN   r   &  s    2222rP   c                    R # ry   rQ   r{   r   s   &&rM   _is_chunked_teHttpParser._is_chunked_te%  s    /2rP   c                0   < V ^8  d   QhRS[ S[,          /# r=   rv   )r   rb   )rK   rL   s   "rM   rN   r   (  s      (5/ rP   c                   V P                   e$   V P                   P                  4        R V n         R # V P                  '       d&   V P                  P	                  V P                  4       V P                  '       dq   V P                  R,          R8w  d   V P                  P	                  R4       \        \        4      ;_uu_ 4        V P                  V P                  4      uuR R R 4       # R #   + '       g   i     R # ; i)Nz
rP   r   )r   feed_eofr   r   r   r   	Exceptionr   r{   s   &rM   r   HttpParser.feed_eof(  s    +  ))+#'D   zzz""4::.{{{;;r?f,KK&&s+i((--dkk: )( )(s   C--C>	   
rP   c                   < V ^8  d   QhRS[ RS[RS[ RS[RS[RS[RS[S[S[S[S[3,          ,          S[S[ 3,          /# )r=   dataSEPEMPTYCONTENT_LENGTHMETH_CONNECTSEC_WEBSOCKET_KEY1rv   )	r   _SEPr   rI   r   r	   rb   r3   rJ   )rK   rL   s   "rM   rN   r   8  su     C. C.C. C. 	C.
 C. C. !C. 
tE%-./u<	=C.rP   c                  aa . pV P                   '       d   V P                   V,           R uqn         \        V4      p^ p	V P                  p
RpW8  Ed   V P                  Ef,   V P                  '       Eg   VP                  W)4      pW8X  d'   V P                  '       g   V\        V4      ,           p	Kf  W8  Ed   V'       d   \        R4      hWV pVR8X  d   VP                  R4      pV P                  P                  V4       V\        V4      ,           p	V P                  R,          V8X  EdQ    V P                  V P                  4      oV P                  P                  4        R VV3R llpV! 4       pVSP                  9   d   \        V4      hSP                  ;'       d    \        SP                  4      V n        \!        SRV P"                  4      p\!        SR	^ 4      pV P$                  f   Q hV\&        9   ;'       g    \)        T;'       d
    V\*        9   4      pV'       g   Ve   V^ 8  g   SP,                  '       d   V P                  '       g   \/        V P$                  V P0                  V
V P2                  R
7      p\5        VVSP,                  VSP6                  V P8                  V P:                  V P<                  V P>                  V P@                  R7
      pVPB                  '       g   VV n        EMbVV8X  d   \E        S\F        4      '       g   Q h\/        V P$                  V P0                  V
V P2                  R
7      pRV n        \5        VSP"                  SP6                  V P<                  V P>                  V P@                  R7      V n        MV'       g   Vf   V PH                  '       d   \/        V P$                  V P0                  V
V P2                  R
7      p\5        VVSP,                  VSP6                  V P8                  V P:                  V P<                  V P>                  V P@                  R7
      pVPB                  '       g   VV n        M\J        pVP                  SV34       SPL                  pEK2  EK5  WR V n         TpMV P                  f(   V P                  '       d   V P                  '       d   Q hMwV'       do   W8  di   V P                  '       d   Q hV P                  f   Q h V P                  PO                  WR V4      w  ppV'       d   ^ p	\        V4      pRV n        EK  EK   V'       d   W8  d   WR pMTpWpP                  V3#   T P                  P                  4        i ; i  \P         dw   pTpT PR                  e   T PS                  \U        T4      4      p\W        T P                  PX                  TT4       RpR p\E        T\        \Z        34      '       d   h  Rp?LRp?ii ; i)rP   FNzData after `Connection: close`   
   c                :    V ^8  d   QhR\         \        ,          /# r   )r   r`   )rK   s   "rM   rN   *HttpParser.feed_data.<locals>.__annotate__i  s     3 3HSM 3rP   c                     < SP                   P                  S4      p V f   R # \        P                  V 4      '       g   \	        S4      h\        V 4      # ry   )rB   r   DIGITSr   r,   r`   )
length_hdrr   msgs    rM   get_content_length0HttpParser.feed_data.<locals>.get_content_lengthi  sF    ),)HJ)1'+
 $*#3#3J#?#?&3N&C C#&z?2rP   r>   r^   )r   r   r   )	lengthrG   r>   rE   r^   r   r   ru   headers_parserT)r>   rE   r   ru   r   r   ).r   r   r   r   r   findr   r&   rstripr   r   clearrB   r,   rF   r   getattrr>   r   r"   rJ   r!   rG   r3   r   r   HttpPayloadParserrE   r^   r   r   ru   r   done
isinstancer9   r   r2   rD   	feed_datar   r   rI   r%   payloadr/   )r{   r   r   r   r   r   r   messagesdata_len	start_posr   rD   posr   r   r   r>   r^   
empty_bodyr   payload_parsereofunderlying_excreraised_excr   s   &&&&f&&                 @rM   r   HttpParser.feed_data8  s%    :::#zzD0#D*t9	yy" ##+DNNNii/#DKKK #c#hI##,-MNN  #.De|#{{51KK&&t, #c#hI {{2%/0)-););DKK)HC KK--/3 3 "4!5-<"/0B"CC), * *9NKK: ")h!D&sFA6#}}888%)-D%D & &"CCv1C'CI
  *$0VaZCKKK$(NNN&2 $&*jj%)&*kk	'G .? ''-(+'-,/OO%)YY373J3J040E0E$(HH/3/C/C.N $2#6#6#67E 4#|3#-c3D#E#EE#E&2 $&*jj%)&*kk	'G .2DN3D ''*zz,/OO040E0E$(HH/3/C/C4D0 ",4CVCVCV&2 $&*jj%)&*kk	'G .? ''-(+'-,/OO%)YY373J3J040E0E$(HH/3/C/C.N $2#6#6#67E 4&3G g7'*'7'7Q 0T "&j!1DJ D %%-$...;;;& ).;;;&++777 $ 4 4 > >tJ?OQT UIC&  !I"4yH+/D(	  I(
#DD--i !KK--/j % #1L--9'+'='=c.>Q'R!,,44$& CD!&8M(N  s%   /U 5!U; U8;W<A,W77W<c          
      z   < V ^8  d   QhRS[ S[,          RS[RS[S[S[,          S[S[,          S[S[3,          /# r   )r	   r   r   r4   r   rJ   rI   )rK   rL   s   "rM   rN   r     sC     >N >N%[>N	Xd^Xc]DRVV
>NrP   c           
     "  a V P                   P                  V4      w  opRpRpRpRp\        P                  \        P                  \        P
                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  3
p\        V3R lV 4       R4      pVe   \        RV R24      hSP                  \        P                   4      p	V	'       dS   V	P#                  4       p
V
R8X  d   RpM8V
R8X  d   RpM.V
R	8X  d(   SP                  \        P$                  4      '       d   RpSP                  \        P&                  R
4      pVP)                  4       '       d   VP#                  4       R9   d   TpSP                  \        P                  4      pVe:   V P+                  V4      '       d   Rp\        P                  S9   d   \        R4      hSW#WEV3# )zParses RFC 5322 headers from a stream.

Line continuations are supported. Returns list of header name
and value pairs. Header name is in upper case.
NFc              3   l   <"   T F)  p\        SP                  VR4      4      ^8  g   K%  Vx  K+  	  R# 5i)   NrQ   )r   getall).0hrB   s   & rM   	<genexpr>+HttpParser.parse_headers.<locals>.<genexpr>  s*     P:aW^^Ar5J1Ka1O:s   "4
4zDuplicate 'z' header found.closeTz
keep-aliverF   r   z6Transfer-Encoding can't be present with Content-Length>   brgzipzstddeflate)r   r   r   r   CONTENT_LOCATIONCONTENT_RANGECONTENT_TYPEETAGHOSTMAX_FORWARDSSERVERTRANSFER_ENCODING
USER_AGENTnextr&   r   
CONNECTIONr   r   CONTENT_ENCODINGr   r   )r{   r   rC   
close_connencodingrF   rG   
singletonsbad_hdrconnvencr   rB   s   &&           @rM   r   HttpParser.parse_headers  s     $33AA%H

 !!IIIIKK""OO

 P:PRVW ;wi!GHH {{4??+

AG|!
l""
iGKK$=$= kk$//4;;==SYY[,MMH [[//0>""2&&""g-$L  (WMMrP   c                $   < V ^8  d   QhRS[ RR/# )r=   valrv   N)rJ   )rK   rL   s   "rM   rN   r   =  s        rP   c                    Wn         R# )zJSet connection upgraded (to websocket) mode.

:param bool val: new state.
N)r   )r{   r+  s   &&rM   set_upgradedHttpParser.set_upgraded=  s	    
 rP   c                6   < V ^8  d   Qh/ S[ S[,          ;R&   # )r=   ru   )r   rJ   )rK   rL   s   "rM   rN   r      s     	$ rP   )r   r   r   r   r   r   r   r   r^   r   rt   rs   rr   r>   r   r   r   r   r   )NNi   r   r   r   NNNNTFT)rS   rT   rU   rV   ru   r|   abcabstractmethodr   r   r   r   r   r   r   r   r   r-  rW   rX   rY   rZ   s   @rM   r6   r6      s     C%
 %
N 	= =2 2 & #22 --#'#:#:C. C.J>N >N@ K
  rP   c                   H   a  ] tR tRt o RtV 3R lR ltV 3R lR ltRtV tR# )	r7   iE  zRead request status line.

Exception .http_exceptions.BadStatusLine
could be raised in case of any errors in status line.
Returns RawRequestMessage.
c                6   < V ^8  d   QhRS[ S[,          RS[/# r   )r	   r   r9   )rK   rL   s   "rM   rN   HttpRequestParser.__annotate__M  s$     S
 S
4; S
3D S
rP   c                   V^ ,          P                  RR4      p VP                  R^R7      w  r4p\	        T4      T P
                  8  d3   \        R\        T P
                  4      \        \	        T4      4      4      h\        P                  T4      '       g   \        T4      h\        P                  T4      pTf   \        T4      h\        \        TP                  ^4      4      \        TP                  ^4      4      4      pTR8X  d   \        P                   ! TRR	7      pMTP#                  R
4      '       dD   TP%                  R4      w  rpT	P%                  R4      w  rp\        P                   ! T	TTRR7      pMdTR8X  d   TR8X  d   \        TRR7      pMH\        TRR7      pTP&                  R8X  d+   \)        TP+                  RR7      P                  R4      4      hT P-                  TR,          4      w  ppppppTf   T\.        8:  d   RpMRp\1        TTTTTTTTTT4
      #   \         d    \        T4      Rhi ; i)r   r   r    maxsplitNStatus line is too longCONNECTT)	authorityencoded/#?)r?   query_stringfragmentr<  *OPTIONS)r<  r   )errorslatin1r  NNF)r   r   r   r'   r   rr   r.   rI   r   r   VERSREr(   r0   r`   groupr   build
startswith	partitionschemer-   encoder   r1   r9   )r{   r   r   r>   r?   r@   match	version_orH   	path_part_hash_separatorurl_fragment_question_mark_separatorqs_partrB   rC   r  rE   rF   rG   s   &&                  rM   r   HttpRequestParser.parse_messageM  s.   Qxw(9:	0$(JJsQJ$?!F' t9t))))3t/A/A+BCD	N 
   ((''   )=%%EKKN 3SQ5HI	Y ))dD9C__S!! 8<~~c7J4I;D;N;Ns;S8I ))$%	C S[Vy0dD)C dD)CzzR%KK'8K9@@J  uRy)	
 =M) 
 	
G  	0%4/	0s   H( (I c                &   < V ^8  d   QhRS[ RS[/# r   r   )rK   rL   s   "rM   rN   r4    s     H H H HrP   c                    VP                  R ^R7      R,          P                  R4      pVP                  4       '       d   VP                  4       R8X  d   R# \	        R4      h),r7   	rG   Tz'Request has invalid `Transfer-Encoding`r   )rsplitr   r   r   r&   r   s   &&rM   r    HttpRequestParser._is_chunked_te  sK    YYsQY'+11%8::<<BHHJ)3FGGrP   rQ   N)	rS   rT   rU   rV   __doc__r   r   rX   rY   rZ   s   @rM   r7   r7   E  s#     S
 S
jH HrP   c                   x   a a ] tR tRt oRt]'       * tR
V3R lV 3R llltV3R lR ltV3R lR lt	R	t
VtV ;t# )r8   i  zRead response status line and headers.

BadStatusLine could be raised in case of any errors in status line.
Returns RawResponseMessage.
c                   < V ^8  d   QhRS[ RS[S[,          RS[RS[RS[S[S[S[S[3,          ,          S[S[ 3,          /# )r=   r   r   argskwargsrv   )	r   r   r   r   r   r	   r:   r3   rJ   )rK   rL   s   "rM   rN   HttpResponseParser.__annotate__  s]     	= 	=	= d^	= 		=
 	= 
tE,l:;<dEI	J	=rP   c                T   < Vf   \         '       d   RMRp\        SV `  ! W.VO5/ VB # )Nr   r   )r    superr   )r{   r   r   r_  r`  	__class__s   &&&*,rM   r   HttpResponseParser.feed_data  s/     ;"U'Cw <T<V<<rP   c                6   < V ^8  d   QhRS[ S[,          RS[/# r   )r	   r   r:   )rK   rL   s   "rM   rN   ra    s      =
 =
4; =
3E =
rP   c                   V^ ,          P                  RR4      p VP                  ^R7      w  r4 TP                  ^R7      w  rE\        T4      T P                  8  d3   \        R\        T P                  4      \        \        T4      4      4      h\        P                  T4      pTf   \        T4      h\        \        TP                  ^4      4      \        TP                  ^4      4      4      p\        T4      ^8w  g   \        P                  T4      '       g   \        T4      h\        T4      pT P                  TR,          4      w  p	p
ppppTfY   T\         8:  d   RpMJ^dTu;8:  d   ^8  g
   M TR
9   d   R	pM/\"        P$                  T	9   g   \"        P&                  T	9   d   R	pMRp\)        TTTP	                  4       T	T
TTTT4	      #   \         d    \        T4      Rhi ; i  \         d    TP	                  4       pRp ELi ; i)r   r   r   r7  Nr   r9  rF  TF>   0     )r   r   r   r(   r   r   rr   r.   rI   rG  r   r0   r`   rH  r   r   r1   r   r   r  r:   )r{   r   r   r@   statusr_   rN  rO  status_irB   rC   r  rE   rF   rG   s   &&             rM   r    HttpResponseParser.parse_message  s   Qxw(9:	0"jj!j4OG	#\\1\5NF
 v;+++)3t/A/A+BCFDT 
   )=%%EKKN 3SQ5HI	 v;!6#3#3F#;#;%%v; uRy)	
 =M)&3&(j*@$$/43I3IW3T !LLN

 
	
_  	0%4/	0
  	\\^FF	s   G G( G%(H	H	c                &   < V ^8  d   QhRS[ RS[/# r   r   )rK   rL   s   "rM   rN   ra    s     P P P PrP   c                v    VP                  R ^R7      R,          P                  R4      P                  4       R8H  # )rX  r7  rY  rG   r   )rZ  r   r   r   s   &&rM   r   !HttpResponseParser._is_chunked_te  s3    yyqy)"-33E:@@BiOOrP   rQ   ry   )rS   rT   rU   rV   r\  r    ru   r   r   r   rX   rY   __classcell__)rd  rL   s   @@rM   r8   r8     s:      )C	= 	==
 =
~P P PrP   c                   ^   a  ] tR tRt o R
V 3R lR lltV 3R lR ltRV 3R lR lltR	tV tR# )r   i  Nc                   < V ^8  d   QhRS[ RS[S[,          RS[RS[S[,          RS[S[,          RS[S[,          RS[RS[R	S[R
S[RR/# )r=   r   r   rG   rE   r^   r>   r   r   ru   r   rv   N)r3   r   r`   rJ   rI   r5   )rK   rL   s   "rM   rN   HttpPayloadParser.__annotate__  s     0$ 0$0$ 0$ 	0$
 c]0$ sm0$ 0$ !0$ 0$ 0$ &0$ 
0$rP   c
               d   ^ V n         \        P                  V n        \        P
                  V n        ^ V n        RV n        Wn	        Wn
        Wn        . V n        RV n        V'       d'   V'       d   V P                  '       d   \        W4      pMTpV'       g.   \        P                  V n        VP!                  4        RV n        MeV'       d   \        P"                  V n        MGVeD   \        P$                  V n        W n         V P                   ^ 8X  d   VP!                  4        RV n        Wn        R# )r   rP   FTN)_lengthrd   rh   _typerj   rk   _chunk_chunk_size_chunk_tailr   rz   r   _trailer_linesr   DeflateBufferre   r   rg   rf   r   )r{   r   r   rG   rE   r^   r>   r   r   ru   r   real_payloads   &&&&&&&&&&$ rM   r|   HttpPayloadParser.__init__  s     //
 33 /	-+-	 +$2G2G2G?L@L #L "#..DJ!!#DI#11DJ#00DJ!L||q %%' 	#rP   c                   < V ^8  d   QhRR/# r=   rv   NrQ   )rK   rL   s   "rM   rN   rs  7  s     
 
$ 
rP   c                $   V P                   \        P                  8X  d   V P                  P	                  4        R# V P                   \        P
                  8X  d   \        R 4      hV P                   \        P                  8X  d   \        R4      hR# )z1Not enough data to satisfy content length header.z2Not enough data to satisfy transfer length header.N)	rv  rd   rh   r   r   rf   r*   rg   r/   r   s   &rM   r   HttpPayloadParser.feed_eof7  so    ::333LL!!#ZZ:222$C  ZZ:333'D  4rP   c          
      H   < V ^8  d   QhRS[ RS[RS[ RS[S[S[ 3,          /# )r=   chunkr   	CHUNK_EXTrv   )r   r   r   rJ   )rK   rL   s   "rM   rN   rs  C  s<     } }}!%}<A}	tU{	}rP   c                ^   V P                   \        P                  8X  d   V P                  p\	        V4      pWE8  dY   WE,
          V n        V P
                  P                  W4       V P                  ^ 8X  d   V P
                  P                  4        R
#  R# ^ V n        V P
                  P                  VRV V4       V P
                  P                  4        RWR 3# V P                   \        P                  8X  EdP   V P                  '       d   V P                  V,           pRV n	        V'       Ed   V P                  \        P                  8X  Ed   VP                  V4      pV^ 8  Ed   VP                  V^ V4      pV^ 8  d9   VRV pRWV ;p	9   d(   \        RV	: 24      p
\        V P
                  V
4       V
hMVRV pV P                   '       d   VP#                  4       p\$        P&                  ! \(        V4      '       g7   \        VRV P+                  RR4      4      p
\        V P
                  V
4       V
h\-        \/        V4      ^4      pW\	        V4      ,           R pV^ 8X  dI   \        P0                  V n
        V P                   '       d!   VP3                  R4      '       d
   VR	,          pM>\        P4                  V n
        Wn        V P
                  P9                  4        MWn	        R# V P                  \        P4                  8X  d   V P6                  p\	        V4      pWE8  d+   WE,
          V n        V P
                  P                  W4       R# ^ V n        V P
                  P                  VRV V4       WR p\        P:                  V n
        V P
                  P=                  4        V P                  \        P:                  8X  dr   V P                   '       d!   VP3                  R4      '       d
   VR	,          pVR\	        V4       V8X  d%   V\	        V4      R p\        P                  V n
        MWn	        R# V P                  \        P0                  8X  g   EK9  VP                  V4      pV^ 8  d	   Wn	        R# VRV pW\	        V4      ,           R pVR8X  d   VP?                  R4      pV P@                  PC                  V4       V P@                  R,          R8X  g   EK   V PD                  PG                  V P@                  4      w  rV P@                  PI                  4        V P
                  P                  4        RV3#  R# V P                   \        PJ                  8X  d&   V P
                  P                  V\	        V4      4       R#   T P@                  PI                  4        i ; i)r   TrP   Nr   z"Unexpected LF in chunk-extension: asciir   r   rF  )TrP   )FrP   r   )&rv  rd   rf   ru  r   r   r   r   rg   ry  rw  rj   rk   r   r/   r%   rz   r   rer   	HEXDIGITSr   r`   r   ro   rJ  rl   rx  begin_http_chunk_receivingrm   end_http_chunk_receivingr   rz  r   r   r   r   rh   )r{   r  r   r  required	chunk_lenr  isize_bextexcsizer   trailersraw_trailerss   &&&&           rM   r   HttpPayloadParser.feed_dataC  s    ::000||HE
I$'3&&u8<<1$LL))+$$ %d ]  !&&uYh'7B%%'U9--- ZZ:333((50#& % ;;*"?"??**S/Cax!JJy!S96%*2AYF$)<=&;&H$P'" !.dllC @&)	  > &+4C[F999%+\\^F!||Iv>>"7 %ds 2 27<M N#C *$,,<"%I"5="5 %CHn&6 719*4*C*CDK#yyyU-=-=e-D-D(-b	*4*H*HDK/3, LLCCE+0()) ;;*"@"@@#//H #E
I++3+?(..u@))+,(..uYh/?J %i 0&0&H&H==? ;;*"D"DDyyyU%5%5e%<%< %b	Zs3x(C/ %c#hj 1&0&C&C+0());;*";";;**S/CQw+0()) #;D!C."23Ee|#{{51''..t4 **2.#58595I5I5W5W $ 3 362H !//557--/#U{*{ F  ZZ:555LL""5#e*5 !//557s   ('V V,)r   rw  rx  ry  r   rz   ru  rz  rv  r   r   )NFNNNTTF)r      ;)	rS   rT   rU   rV   r|   r   r   rX   rY   rZ   s   @rM   r   r     s,     0$ 0$d
 
} } }rP   r   c                      a  ] tR tRt o Rt]3V 3R lR llt]3V 3R lR lltV 3R lR lt	V 3R	 lR
 lt
V 3R lR ltV 3R lR ltV 3R ltRtV tR# )r{  i  zDDeflateStream decompress stream and feed data into specified stream.c                @   < V ^8  d   QhRS[ RS[S[,          RS[RR/# )r=   outr#  max_decompress_sizerv   N)r3   r   rI   r`   )rK   rL   s   "rM   rN   DeflateBuffer.__annotate__  s7     8 88 3-8 !	8
 
8rP   c                F   Wn         ^ V n        V P                  Vn        W n        RV n        V  VR8X  d(   \
        '       g   \        R4      h\        4       V n        M?VR8X  d(   \        '       g   \        R4      h\        4       V n        M\        VR7      V n        W0n        R# )r   Fr  zECan not decode content-encoding: brotli (br). Please install `Brotli`r  zRCan not decode content-encoding: zstandard (zstd). Please install `backports.zstd`)r#  N)r  r  total_compressed_bytesr#  _started_decodingr   r)   r   decompressorr   r   r   _max_decompress_size)r{   r  r#  r  s   &&&&rM   r|   DeflateBuffer.__init__  s     	%)YY" !&t:*.  !3 4D8*6  !1 2D 0( CD$7!rP   c                *   < V ^8  d   QhRS[ RS[ RR/# )r=   r  	exc_causerv   N)r   )rK   rL   s   "rM   rN   r    s)     0 00 !0 
	0rP   c                2    \        V P                  W4       R # ry   )r%   r  )r{   r  r  s   &&&rM   r%   DeflateBuffer.set_exception  s    
 	dhh/rP   c                *   < V ^8  d   QhRS[ RS[RR/# )r=   r  r  rv   N)r   r`   )rK   rL   s   "rM   rN   r    s"     )2 )2u )2C )2D )2rP   c                   V'       g   R # V ;P                   V,          un         V P                   V P                  n        V P                  '       gC   V P                  R8X  d2   V^ ,          ^,          ^8w  d   \        V P                  RR7      V n         V P                  P                  WP                  ^,           R7      pRT n        \        T4      T P                  8  d   \        RT P                  ,          4      hT'       d(   T P                  P                  T\        T4      4       R # R #   \         d    \        RT P                  ,          4      hi ; i)Nr  T)r#  suppress_deflate_header)
max_lengthz#Can not decode content-encoding: %sz:Decompressed data exceeds the configured limit of %d bytes)r  r  r  r  r#  r   r  decompress_syncr  r   r)   r   r+   r   )r{   r  r  s   &&&rM   r   DeflateBuffer.feed_data  s   		T	*.))' &&&*a3!# !1!D	%%55";";a"? 6 E "& u:111%L++, 
 HHuc%j1   	&5E 	s   -D/ /(Ec                   < V ^8  d   QhRR/# r  rQ   )rK   rL   s   "rM   rN   r    s      $ rP   c                Z   V P                   P                  4       pV'       g   V P                  ^ 8  d^   V P                  P	                  V\        V4      4       V P                  R8X  d(   V P                   P                  '       g   \        R4      hV P                  P                  4        R# )r   r  N)
r  flushr  r  r   r   r#  r  r)   r   )r{   r  s   & rM   r   DeflateBuffer.feed_eof  ss    !!'')DIIMHHuc%j1}}	)$2C2C2G2G2G*955rP   c                   < V ^8  d   QhRR/# r  rQ   )rK   rL   s   "rM   rN   r  $  s     . .D .rP   c                :    V P                   P                  4        R # ry   )r  r  r   s   &rM   r  (DeflateBuffer.begin_http_chunk_receiving$  s    ++-rP   c                   < V ^8  d   QhRR/# r  rQ   )rK   rL   s   "rM   rN   r  '  s     , ,$ ,rP   c                :    V P                   P                  4        R # ry   )r  r  r   s   &rM   r  &DeflateBuffer.end_http_chunk_receiving'  s    ))+rP   c                &   < V ^8  d   Qh/ S[ ;R&   # )r=   r  )r   )rK   rL   s   "rM   rN   r    s       rP   )r  r  r  r#  r  r  N)rS   rT   rU   rV   r\  r   r|   r   r%   r   r   r  r  rW   rX   rY   rZ   s   @rM   r{  r{    sX     N $?	8 8F $10 0)2 )2V . ., ,I  rP   r{  )r7   r8   r9   r:   c                   V ^8  d   Qh/ ^ \         9   d    \        \        \        ,          ,          ;R&   ^\         9   d   \        \        ,          ;R&   ^\         9   d    \        \        \        ,          ,          ;R&   ^\         9   d    \        \        \        ,          ,          ;R&   ^\         9   d    \        \        \        ,          ,          ;R&   ^\         9   d    \        \        \
        ,          ,          ;R&   # )r=   ASCIISET_TCHAR_SPECIALSr   rG  r   r  )__conditional_annotations__r   r   rI   r   r   )rK   s   "rM   rN   rN      s    

P 2 1%C/ 1Q b ; :s :c d L Kws|	 Ke f G Fgcl Fg h ; :gcl :i j @ ?5  ?k rP   )r5   r6   r7   r8   r9   r:   )r   r   )ir  r0  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.   r/   http_writerr0   r1   streamsr2   r3   typedefsr4   __all__r   set	printabler  escaper  compiler   ASCIIrG  r   r  r9   r:   rb   rd   rj   r5   r   ABCr6   r7   r8   r   r{  HttpRequestParserPyHttpResponseParserPyRawRequestMessagePyRawResponseMessagePy_http_parserHttpRequestParserCHttpResponseParserCRawRequestMessageCRawResponseMessageCImportErrorrN   )r  s   @rM   <module>r     s   

  	      " : 9   '      4 0   ~ 0 01 1 !ii(9: :!zzJ6Gr*JK K jj);RXXF F jj: :#%::.>#?	 ?

 
	 	 	*,>?  i? i?X=J'%. JZ
cH
#45 cHLVP$67 VPr| |~e, e,P ( ) ' ) 		
 	
 /0.0   		s   <H H H'&H'