Ë
    W¸‘iž0  ã                   óè  — d Z ddlZddlZddlmZmZmZmZmZm	Z	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 dd	lmZ dd
lmZ dZdZdej6                  cxk  xr dk  nc Zej6                  dk  Zexs eZ G d„ de
«      Z edd«      Z  edd«      Z!eee"ged   f      Z#eedged   f      Z$ G d„ de«      Z%de&de&fd„Z'de&ddde"fd„Z(e(Z)	 ddl*m+Z+ e+jR                  Z,ese,Z)yy# e-$ r Y yw xY w)z"Http related parsers and protocol.é    N)	ÚTYPE_CHECKINGÚAnyÚ	AwaitableÚCallableÚIterableÚListÚ
NamedTupleÚOptionalÚUnion)ÚCIMultiDicté   )ÚAbstractStreamWriter)ÚBaseProtocol)ÚClientConnectionResetError)ÚZLibCompressor)ÚNO_EXTENSIONS)ÚStreamWriterÚHttpVersionÚHttpVersion10ÚHttpVersion11i   )é   é   r   )r   r   é   )r   é   é	   c                   ó"   — e Zd ZU eed<   eed<   y)r   ÚmajorÚminorN)Ú__name__Ú
__module__Ú__qualname__ÚintÚ__annotations__© ó    úJ/var/www/telegram/venv/lib/python3.12/site-packages/aiohttp/http_writer.pyr   r   '   s   … ØƒJØ„Jr%   r   úCIMultiDict[str]c                   óÐ  — e Zd ZU dZee   ed<   dZeed<   dZ	eed<   dZ
ee   ed<   	 	 d*dedej                  d	ed
eddf
d„Zedeej&                     fd„«       Zedefd„«       Zd+d„Z	 d,dedee   ddfd„Zdeeeef   ddfd„Zdee   ddfd„Zdeeeddf   ddfd„Z deeeddf   deddfd„Z!dddœdeeeef   ded eddfd!„Z"d"ed#d$ddfd%„Z#d+d&„Z$d+d'„Z%d-deddfd(„Z&d+d)„Z'y).r   NÚlengthFÚchunkedÚ_eofÚ	_compressÚprotocolÚloopÚon_chunk_sentÚon_headers_sentÚreturnc                 óX   — || _         || _        || _        || _        d | _        d| _        y )NF)Ú	_protocolr.   Ú_on_chunk_sentÚ_on_headers_sentÚ_headers_bufÚ_headers_written)Úselfr-   r.   r/   r0   s        r&   Ú__init__zStreamWriter.__init__;   s2   € ð "ˆŒØˆŒ	Ø.;ˆÔØ2AˆÔØ-1ˆÔØ&+ˆÕr%   c                 ó.   — | j                   j                  S ©N)r3   Ú	transport©r8   s    r&   r<   zStreamWriter.transportI   s   € à�~‰~×'Ñ'Ð'r%   c                 ó   — | j                   S r;   )r3   r=   s    r&   r-   zStreamWriter.protocolM   s   € à�~‰~Ðr%   c                 ó   — d| _         y )NT)r*   r=   s    r&   Úenable_chunkingzStreamWriter.enable_chunkingQ   s	   € Øˆ�r%   ÚencodingÚstrategyc                 ó(   — t        ||¬«      | _        y )N)rA   rB   )r   r,   )r8   rA   rB   s      r&   Úenable_compressionzStreamWriter.enable_compressionT   s   € ô (°ÀHÔMˆ�r%   Úchunkc                 óö   — t        |«      }| xj                  |z  c_        | xj                  |z  c_        | j                  j                  }|�|j                  «       rt        d«      ‚|j                  |«       y )Nú!Cannot write to closing transport)ÚlenÚbuffer_sizeÚoutput_sizer3   r<   Ú
is_closingr   Úwrite)r8   rE   Úsizer<   s       r&   Ú_writezStreamWriter._writeY   se   € Ü�5‹zˆØ×Ò˜DÑ ÕØ×Ò˜DÑ ÕØ—N‘N×,Ñ,ˆ	ØÐ 	× 4Ñ 4Ô 6Ü,Ð-PÓQÐQØ�‰˜Õr%   Úchunksc                 ón  — d}|D ]  }|t        |«      z  }Œ | xj                  |z  c_        | xj                  |z  c_        | j                  j                  }|�|j                  «       rt        d«      ‚t        s	|t        k  r!|j                  dj                  |«      «       y |j                  |«       y )Nr   rG   r%   )rH   rI   rJ   r3   r<   rK   r   ÚSKIP_WRITELINESÚMIN_PAYLOAD_FOR_WRITELINESrL   ÚjoinÚ
writelines)r8   rO   rM   rE   r<   s        r&   Ú_writelineszStreamWriter._writelinesb   s    € ØˆØò 	ˆEØ”C˜“JÑ‰Dð	à×Ò˜DÑ ÕØ×Ò˜DÑ ÕØ—N‘N×,Ñ,ˆ	ØÐ 	× 4Ñ 4Ô 6Ü,Ð-PÓQÐQÝ˜dÔ%?Ò?Ø�O‰O˜CŸH™H VÓ,Õ-à× Ñ  Õ(r%   zmemoryview[int]zmemoryview[bytes]c                 óh   — t        |«      d›d�j                  d«      }| j                  ||df«       y)z+Write a chunk with proper chunked encoding.Úxú
Úasciió   
N)rH   ÚencoderU   )r8   rE   Úchunk_len_pres      r&   Ú_write_chunked_payloadz#StreamWriter._write_chunked_payloadp   s6   € ô ˜u›: a˜.¨Ð-×4Ñ4°WÓ=ˆØ×Ñ˜-¨°Ð8Õ9r%   Úis_eofc                 óž  — d| _         | j                  }d| _        t        r|€J ‚| j                  s(|r| j	                  ||f«       y| j                  |«       y|rLt        |«      d›d�j                  d«      }|r| j	                  |||df«       y| j	                  |||df«       y|r| j	                  |df«       y| j                  |«       y)	zASend buffered headers with payload, coalescing into single write.TNrW   rX   rY   ó   
0

rZ   ó   0

)r7   r6   r   r*   rU   rN   rH   r[   )r8   rE   r^   Úheaders_bufr\   s        r&   Ú_send_headers_with_payloadz'StreamWriter._send_headers_with_payloadw   sÙ   € ð !%ˆÔØ×'Ñ'ˆØ ˆÔåð Ð*Ð*Ð*à�|Š|áØ× Ñ  +¨uÐ!5Ô6ð ð —‘˜KÔ(Øñ Ü" 5›z¨!˜n¨DÐ1×8Ñ8¸ÓAˆMÙØ× Ñ  +¨}¸eÐEUÐ!VÕWà× Ñ  +¨}¸eÀWÐ!MÕNÙØ×Ñ˜k¨<Ð8Õ9à�K‰K˜Õ$r%   Ti   )ÚdrainÚLIMITrd   re   c             ƒ   óf  K  — | j                   �| j                  |«      ƒ d{  –—†  t        |t        «      r)|j                  t	        |«      k7  r|j                  d«      }| j                  �&| j                  j                  |«      ƒ d{  –—† }|sy| j                  �Ht	        |«      }| j                  |k\  r| j                  |z
  | _        n|d| j                   }d| _        |sy| j                  rO| j                  sC| j                  |d«       |r.| j                  |kD  rd| _        | j                  «       ƒ d{  –—†  y|rb| j                  r| j                  |«       n| j!                  |«       |r0| j                  |kD  r d| _        | j                  «       ƒ d{  –—†  yyyy7 �Œ„7 �Œ7 Œp7 Œ­w)zÊ
        Writes chunk of data to a stream.

        write_eof() indicates end of stream.
        writer can't be used after write_eof() method being called.
        write() return drain future.
        NÚcr   F)r4   Ú
isinstanceÚ
memoryviewÚnbytesrH   Úcastr,   Úcompressr)   r6   r7   rc   rI   rd   r*   r]   rN   )r8   rE   rd   re   Ú	chunk_lens        r&   rL   zStreamWriter.write›   s}  è ø€ ð ×ÑÐ*Ø×%Ñ% eÓ,×,Ð,ä�eœZÔ(Ø�|‰|œs 5›zÒ)àŸ
™
 3›�à�>‰>Ð%ØŸ.™.×1Ñ1°%Ó8×8ˆEÙØà�;‰;Ð"Ü˜E›
ˆIØ�{‰{˜iÒ'Ø"Ÿk™k¨IÑ5�•à˜m §¡Ð,�Ø�”ÙØð ×Ò T×%:Ò%:Ø×+Ñ+¨E°5Ô9Ù˜×)Ñ)¨EÒ1Ø#$�Ô Ø—j‘j“l×"Ð"ØáØ�|Š|Ø×+Ñ+¨EÕ2à—‘˜EÔ"á˜×)Ñ)¨EÒ1Ø#$�Ô Ø—j‘j“l×"Ñ"ð 2ˆuð ð= -ùð 9ùð& #øð #úsH   ‚!F1£F'¤A'F1ÂF*ÂB0F1Ä<F-Ä=A!F1ÆF/Æ	F1Æ*F1Æ-F1Æ/F1Ústatus_lineÚheadersr'   c              ƒ   óŽ   K  — | j                   �| j                  |«      ƒ d{  –—†  t        ||«      }d| _        || _        y7 Œ­w)zWrite headers to the stream.NF)r5   Ú_serialize_headersr7   r6   )r8   rn   ro   Úbufs       r&   Úwrite_headerszStreamWriter.write_headersÒ   sI   è ø€ ð × Ñ Ð,Ø×'Ñ'¨Ó0×0Ð0ä  ¨gÓ6ˆØ %ˆÔØˆÕð	 1ús   ‚!A£A¤ Ac                 ó    — | j                   r| j                  ryd| _        | j                   }d| _         t        r|€J ‚| j                  |«       y)z3Force sending buffered headers if not already sent.NT)r6   r7   r   rN   ©r8   rb   s     r&   Úsend_headerszStreamWriter.send_headersÝ   sL   € à× Ò  D×$9Ò$9Øà $ˆÔØ×'Ñ'ˆØ ˆÔåàÐ*Ð*Ð*à�‰�KÕ r%   c                 óv  — | j                   ry| j                  rp| j                  sdd| _        | j                  }d| _        t        r|€J ‚| j                  r| j                  |df«       d| _         y| j                  |«       d| _         y| j                  r| j                  r| j                  d«       d| _         y)z&Indicate that the message is complete.NTra   )r+   r6   r7   r   r*   rU   rN   ru   s     r&   Úset_eofzStreamWriter.set_eofì   s©   € à�9Š9Øð ×Ò T×%:Ò%:Ø$(ˆDÔ!Ø×+Ñ+ˆKØ $ˆDÔåà"Ð.Ð.Ð.ð �|Š|Ø× Ñ  +¨|Ð!<Ô=ð ˆ�	ð —‘˜KÔ(ð
 ˆ�	ð	 �\Š\˜d×3Ò3à�K‰K˜Ô%àˆ�	r%   c              ƒ   óî  K  — | j                   ry |r%| j                  �| j                  |«      ƒ d {  –—†  | j                  �r²g }d}|rA| j                  j                  |«      ƒ d {  –—† x}rt	        |«      }|j                  |«       | j                  j                  «       }|t	        |«      z  }|j                  |«       |sJ ‚| j                  r•| j                  s‰d| _        | j                  }d | _        | j                  r.|d›d�j                  d«      }| j                  ||g|¢d‘­«       n| j                  |g|¢­«       | j                  «       ƒ d {  –—†  d| _         y | j                  r-|d›d�j                  d«      }| j                  |g|¢d‘­«       n4t	        |«      dkD  r| j                  |«       n| j                  |d   «       | j                  «       ƒ d {  –—†  d| _         y | j                  r>| j                  s2| j                  |d«       | j                  «       ƒ d {  –—†  d| _         y | j                  rd|r1| j                  t	        |«      d›d�j                  d«      |df«       n| j                  d«       | j                  «       ƒ d {  –—†  d| _         y |r)| j                  |«       | j                  «       ƒ d {  –—†  d| _         y 7 �Œ±7 �Œ~7 �Œ�7 �Œ7 Œ»7 ŒM7 Œ­w)	Nr   TrW   rX   rY   r`   r   ra   )r+   r4   r,   rl   rH   ÚappendÚflushr6   r7   r*   r[   rU   rd   rN   rc   )r8   rE   rO   Ú
chunks_lenÚcompressed_chunkÚflush_chunkrb   r\   s           r&   Ú	write_eofzStreamWriter.write_eof  sÂ  è ø€ Ø�9Š9Øá�T×(Ñ(Ð4Ø×%Ñ% eÓ,×,Ð,ð �>‹>Ø"$ˆFØˆJÙ°D·N±N×4KÑ4KÈEÓ4R×.RÐRÐ*ÐRÜ Ð!1Ó2�
Ø—‘Ð.Ô/àŸ.™.×.Ñ.Ó0ˆKØœ#˜kÓ*Ñ*ˆJØ�M‰M˜+Ô&ÙÐ�:ð × Ò ¨×)>Ò)>Ø(,�Ô%Ø"×/Ñ/�Ø$(�Ô!à—<’<à'1°! n°DÐ$9×$@Ñ$@ÀÓ$I�MØ×$Ñ$Ø$ mÐO°fÐOÐ>NÑOõð
 ×$Ñ$ kÐ%;°FÑ%;Ô<Ø—j‘j“l×"Ð"Ø �”	Øð �|Š|Ø#-¨a .°Ð 5× <Ñ <¸WÓ E�Ø× Ñ  -Ð!K°&Ð!KÐ:JÑ!KÕLÜ�V“˜q’Ø× Ñ  Õ(à—‘˜F 1™IÔ&Ø—*‘*“,×ÐØˆDŒIØð ×Ò T×%:Ò%:à×+Ñ+¨E°4Ô8Ø—*‘*“,×ÐØˆDŒIØð �<Š<Ùà× Ñ Ü˜E›
 1�~ TÐ*×1Ñ1°'Ó:¸EÐCSÐTõð —‘˜LÔ)Ø—*‘*“,×ÐØˆDŒIØáØ�K‰K˜ÔØ—*‘*“,×Ðàˆ�	ðO -ùð /Sùð0 #ùð ùð øð øð ús   ‚0K5²K#³5K5Á(K&Á)C3K5ÅK)ÅBK5Ç)K,Ç*A	K5È3K/È4A/K5Ê#K1Ê$2K5ËK3ËK5Ë&K5Ë)K5Ë,K5Ë/K5Ë1K5Ë3K5c              ƒ   óŒ   K  — | j                   }|j                  �&|j                  r|j                  «       ƒ d{  –—†  yyy7 Œ­w)zFlush the write buffer.

        The intended use is to write

          await w.write(data)
          await w.drain()
        N)r3   r<   Ú_pausedÚ_drain_helper)r8   r-   s     r&   rd   zStreamWriter.drainU  sB   è ø€ ð —>‘>ˆØ×ÑÐ)¨h×.>Ò.>Ø×(Ñ(Ó*×*Ñ*ð /?Ð)Ø*ús   ‚8AºA»A)NN)r1   N)ÚdeflateN)r%   )(r   r    r!   r)   r
   r"   r#   r*   Úboolr+   r,   r   r   ÚasyncioÚAbstractEventLoopÚ_T_OnChunkSentÚ_T_OnHeadersSentr9   ÚpropertyÚ	Transportr<   r-   r@   ÚstrrD   r   ÚbytesÚ	bytearrayri   rN   r   rU   r]   rc   rL   rs   rv   rx   r   rd   r$   r%   r&   r   r   4   sø  … à €FˆH�S‰MÓ Ø€GˆTÓØ€Dˆ$ÓØ*.€Iˆx˜Ñ'Ó.ð )-Ø,0ñ,àð,ð ×'Ñ'ð,ð &ð	,ð
 *ð,ð 
ó,ð ð(˜8 G×$5Ñ$5Ñ6ò (ó ð(ð ð˜,ò ó ðóð DHñNØðNØ3;¸C±=ðNà	óNð
˜E %¨°JÐ">Ñ?ð ÀDó ð) (¨5¡/ð )°dó )ð:Ø˜5 )Ð->Ð@SÐSÑTð:à	ó:ð"%à�U˜IÐ'8Ð:MÐMÑNð"%ð ð"%ð 
ó	"%ðP Øò5#à�U˜I zÐ1Ñ2ð5#ð ð	5#ð
 ð5#ð 
ó5#ðn	 Øð	 Ø);ð	 à	ó	 ó!óñ6L Uð L°Tó Lô\
+r%   r   Ústringr1   c                 ó,   — d| v sd| v rt        d«      ‚| S )Núú
zRNewline or carriage return detected in headers. Potential header injection attack.)Ú
ValueError)rŽ   s    r&   Ú_safe_headerr“   b  s(   € Øˆv�~˜ ™Üð1ó
ð 	
ð €Mr%   rn   ro   c                 ó†   — d„ |j                  «       D «       }| dz   dj                  |«      z   dz   }|j                  d«      S )Nc              3   óV   K  — | ]!  \  }}t        |«      d z   t        |«      z   –— Œ# y­w)z: N)r“   )Ú.0ÚkÚvs      r&   ú	<genexpr>z(_py_serialize_headers.<locals>.<genexpr>l  s&   è ø€ ÒXÁÀÀ1”< “? TÑ)¬L¸«OÕ;ÑXùs   ‚')rX   z

zutf-8)ÚitemsrS   r[   )rn   ro   Úheaders_genÚlines       r&   Ú_py_serialize_headersr�   k  s>   € ÙXÈÏÉËÔX€KØ˜Ñ &§+¡+¨kÓ":Ñ:¸ZÑG€DØ�;‰;�wÓÐr%   ).Ú__doc__r…   ÚsysÚtypingr   r   r   r   r   r   r	   r
   r   Ú	multidictr   Úabcr   Úbase_protocolr   Úclient_exceptionsr   Úcompression_utilsr   Úhelpersr   Ú__all__rR   Úversion_infoÚIS_PY313_BEFORE_313_2ÚIS_PY_BEFORE_312_9rQ   r   r   r   rŒ   r‡   rˆ   r   r‹   r“   r�   rq   Úaiohttp._http_writerÚ_http_writerÚ_c_serialize_headersÚImportErrorr$   r%   r&   ú<module>r¯      sI  ðÙ (ã Û 
÷
÷ 
õ 
õ "å %Ý 'Ý 9Ý -Ý "à
K€ð "Ð Ø" c×&6Ñ&6ÖC¸ÔCÐ Ø×%Ñ%¨
Ñ2Ð Ø'Ò=Ð+=€ô�*ô ñ
 ˜A˜qÓ!€Ù˜A˜qÓ!€ð ˜( E 7¨I°d©OÐ#;Ñ<Ñ=€Ø˜HÐ&8Ð%9¸9ÀT¹?Ð%JÑKÑLÐ ôk+Ð'ô k+ð\	˜ð  ó ð  sð  Ð5Gð  ÈEó  ð +Ð ð	Ý/à'×:Ñ:ÐÙØ1Ñð øàò 	Ùð	ús   ÃC) Ã)C1Ã0C1