Ë
    CØïi-  ã                   ón  — 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	 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 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!j>                  Z"ese"Zyy# e#$ r Y yw xY w)z"Http related parsers and protocol.é    N)ÚAnyÚ	AwaitableÚCallableÚ
NamedTupleÚOptionalÚUnion)ÚCIMultiDicté   )ÚAbstractStreamWriter)ÚBaseProtocol)ÚZLibCompressor)ÚNO_EXTENSIONS)ÚStreamWriterÚHttpVersionÚHttpVersion10ÚHttpVersion11c                   ó"   — e Zd ZU eed<   eed<   y)r   ÚmajorÚminorN)Ú__name__Ú
__module__Ú__qualname__ÚintÚ__annotations__© ó    úM/var/www/html/aiagents/fe/lib/python3.12/site-packages/aiohttp/http_writer.pyr   r      s   … ØƒJØ„Jr   r   úCIMultiDict[str]c                   ó  — e Zd Z	 	 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ej                   fdededdfd„Zdeddfd„Zdddœdedededdfd„Zdeddddfd„Zddeddfd„Zdd„Zy) r   NÚprotocolÚloopÚon_chunk_sentÚon_headers_sentÚreturnc                 óž   — || _         || _        d | _        d| _        d| _        d| _        d| _        d | _        d | _        || _	        || _
        y )NFr   )Ú	_protocolr!   ÚlengthÚchunkedÚbuffer_sizeÚoutput_sizeÚ_eofÚ	_compressÚ_drain_waiterÚ_on_chunk_sentÚ_on_headers_sent)Úselfr    r!   r"   r#   s        r   Ú__init__zStreamWriter.__init__   sV   € ð "ˆŒàˆŒ	ØˆŒØˆŒØˆÔØˆÔàˆŒ	Ø37ˆŒØ!ˆÔà.;ˆÔØ2AˆÕr   c                 ó.   — | j                   j                  S ©N)r&   Ú	transport©r0   s    r   r4   zStreamWriter.transport5   s   € à�~‰~×'Ñ'Ð'r   c                 ó   — | j                   S r3   )r&   r5   s    r   r    zStreamWriter.protocol9   s   € à�~‰~Ðr   c                 ó   — d| _         y )NT)r(   r5   s    r   Úenable_chunkingzStreamWriter.enable_chunking=   s	   € Øˆ�r   ÚdeflateÚencodingÚstrategyc                 ó(   — t        ||¬«      | _        y )N)r:   r;   )r   r,   )r0   r:   r;   s      r   Úenable_compressionzStreamWriter.enable_compression@   s   € ô (°ÀHÔMˆ�r   Úchunkc                 ó  — t        |«      }| xj                  |z  c_        | xj                  |z  c_        | j                  }| j                  j
                  r|�|j                  «       rt        d«      ‚|j                  |«       y )Nz!Cannot write to closing transport)	Úlenr)   r*   r4   r&   Ú	connectedÚ
is_closingÚConnectionResetErrorÚwrite)r0   r>   Úsizer4   s       r   Ú_writezStreamWriter._writeE   sk   € Ü�5‹zˆØ×Ò˜DÑ ÕØ×Ò˜DÑ ÕØ—N‘Nˆ	Ø�~‰~×'Ò'¨9Ð+<À	×@TÑ@TÔ@VÜ&Ð'JÓKÐKØ�‰˜Õr   Ti   )ÚdrainÚLIMITrG   rH   c             ƒ   óÐ  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|ru| j                  r%dt	        |«      z  j                  d«      }||z   dz   }| j                  |«       | j                  |kD  r#|r d| _        | j                  «       ƒ d{  –—†  yyyy7 �Œ<7 ŒÖ7 Œ­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   ú%x
Úasciis   
)r.   Ú
isinstanceÚ
memoryviewÚnbytesr@   Úcastr,   Úcompressr'   r(   ÚencoderF   r)   rG   )r0   r>   rG   rH   Ú	chunk_lenÚchunk_len_pres         r   rD   zStreamWriter.writeN   sE  è ø€ ð ×ÑÐ*Ø×%Ñ% eÓ,×,Ð,ä�eœZÔ(Ø�|‰|œs 5›zÒ)àŸ
™
 3›�à�>‰>Ð%ØŸ.™.×1Ñ1°%Ó8×8ˆEÙØà�;‰;Ð"Ü˜E›
ˆIØ�{‰{˜iÒ'Ø"Ÿk™k¨IÑ5�•à˜m §¡Ð,�Ø�”ÙØáØ�|Š|Ø!)¬C°«JÑ!6× >Ñ >¸wÓ G�Ø%¨Ñ-°Ñ7�à�K‰K˜Ôà×Ñ %Ò'©EØ#$�Ô Ø—j‘j“l×"Ñ"ð -2Ð'ð ð- -ùð 9øð. #ús5   ‚!E&£E¤A'E&ÂE"ÂC
E&ÅE$Å	E&Å"E&Å$E&Ústatus_lineÚheadersr   c              ƒ   ó”   K  — | j                   �| j                  |«      ƒ d{  –—†  t        ||«      }| j                  |«       y7 Œ"­w)z*Write request/response status and headers.N)r/   Ú_serialize_headersrF   )r0   rU   rV   Úbufs       r   Úwrite_headerszStreamWriter.write_headersy   sG   è ø€ ð × Ñ Ð,Ø×'Ñ'¨Ó0×0Ð0ô ! ¨gÓ6ˆØ�‰�CÕð	 1ús   ‚!A£A¤#Ac              ƒ   óT  K  — | j                   ry |r%| j                  �| j                  |«      ƒ d {  –—†  | j                  rv|r#| j                  j                  |«      ƒ d {  –—† }|| j                  j	                  «       z  }|rh| j
                  r\dt        |«      z  j                  d«      }||z   dz   }n6| j
                  r*|r&dt        |«      z  j                  d«      }||z   dz   }nd}|r| j                  |«       | j                  «       ƒ d {  –—†  d| _         y 7 Œï7 ŒÀ7 Œ­w)NrK   rL   s   
0

s   0

T)
r+   r.   r,   rQ   Úflushr(   r@   rR   rF   rG   )r0   r>   rS   s      r   Ú	write_eofzStreamWriter.write_eof„   s
  è ø€ Ø�9Š9Øá�T×(Ñ(Ð4Ø×%Ñ% eÓ,×,Ð,à�>Š>ÙØ"Ÿn™n×5Ñ5°eÓ<×<�à�T—^‘^×)Ñ)Ó+Ñ+ˆEÙ˜ŸšØ%¬¨E«
Ñ2×:Ñ:¸7ÓC�	Ø! EÑ)Ð,<Ñ<‘à�|Š|ÙØ!)¬C°«JÑ!6× >Ñ >¸wÓ G�IØ%¨Ñ-Ð0@Ñ@‘Eà(�EáØ�K‰K˜Ôà�j‰j‹l×Ðàˆ�	ð/ -øð =øð" 	ús4   ‚0D(²D"³0D(Á#D$Á$B1D(ÄD&ÄD(Ä$D(Ä&D(c              ƒ   ó‚   K  — | j                   j                  �#| j                   j                  «       ƒ d{  –—†  yy7 Œ­w)zFlush the write buffer.

        The intended use is to write

          await w.write(data)
          await w.drain()
        N)r&   r4   Ú_drain_helperr5   s    r   rG   zStreamWriter.drain¢   s6   è ø€ ð �>‰>×#Ñ#Ð/Ø—.‘.×.Ñ.Ó0×0Ñ0ð 0Ø0ús   ‚4?¶=·?)NN)r$   N)r   )r   r   r   r   ÚasyncioÚAbstractEventLoopÚ_T_OnChunkSentÚ_T_OnHeadersSentr1   Úpropertyr   Ú	Transportr4   r    r8   ÚzlibÚZ_DEFAULT_STRATEGYÚstrr   r=   ÚbytesrF   ÚboolrD   rZ   r]   rG   r   r   r   r   r      s4  „ ð
 )-Ø,0ñBàðBð ×'Ñ'ðBð &ð	Bð
 *ðBð 
óBð, ð(˜8 G×$5Ñ$5Ñ6ò (ó ð(ð ð˜,ò ó ðóð (¸×9PÑ9PñNØðNØ36ðNà	óNð
˜Eð  dó ð .2Àò)#Øð)#Ø&*ð)#Ø:=ð)#à	ó)#ðV	Øð	Ø);ð	à	ó	ñ Uð °Tó ô<	1r   r   Ústringr$   c                 ó,   — d| v sd| v rt        d«      ‚| S )Núú
zRNewline or carriage return detected in headers. Potential header injection attack.)Ú
ValueError)rk   s    r   Ú_safe_headerrp   ®   s(   € Øˆv�~˜ ™Üð1ó
ð 	
ð €Mr   rU   rV   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)rp   )Ú.0ÚkÚvs      r   ú	<genexpr>z(_py_serialize_headers.<locals>.<genexpr>¸   s&   è ø€ ÒXÁÀÀ1”< “? TÑ)¬L¸«OÕ;ÑXùs   ‚')z
z

zutf-8)ÚitemsÚjoinrR   )rU   rV   Úheaders_genÚlines       r   Ú_py_serialize_headersr{   ·   s>   € ÙXÈÏÉËÔX€KØ˜Ñ &§+¡+¨kÓ":Ñ:¸ZÑG€DØ�;‰;�wÓÐr   )$Ú__doc__r`   rf   Útypingr   r   r   r   r   r   Ú	multidictr	   Úabcr   Úbase_protocolr   Úcompression_utilsr   Úhelpersr   Ú__all__r   r   r   ri   rb   rc   r   rh   rp   r{   rX   Úaiohttp._http_writerÚ_http_writerÚ_c_serialize_headersÚImportErrorr   r   r   ú<module>rˆ      s  ðÙ (ã Û ß H× Hå !å %Ý 'Ý -Ý "à
K€ô�*ô ñ
 ˜A˜qÓ!€Ù˜A˜qÓ!€ð ˜( E 7¨I°d©OÐ#;Ñ<Ñ=€Ø˜HÐ&8Ð%9¸9ÀT¹?Ð%JÑKÑLÐ ôM1Ð'ô M1ð`˜ð  ó ð  sð  Ð5Gð  ÈEó  ð +Ð ð	Ý/à'×:Ñ:ÐÙØ1Ñð øàò 	Ùð	ús   ÂB, Â,B4Â3B4