Ë
    ŠV.j   ã                   ó‚  — 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 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 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%jF                  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ÚIterableÚListÚ
NamedTupleÚOptionalÚUnion)ÚCIMultiDicté   )ÚAbstractStreamWriter)ÚBaseProtocol)ÚClientConnectionResetError)Ú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__© ó    úUC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\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ej0                  fdededdfd„Zdeddfd„Zde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"„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                 ó<   — || _         || _        || _        || _        y ©N)Ú	_protocolr(   Ú_on_chunk_sentÚ_on_headers_sent)Úselfr'   r(   r)   r*   s        r    Ú__init__zStreamWriter.__init__/   s"   € ð "ˆŒØˆŒ	Ø.;ˆÔØ2AˆÕr   c                 ó.   — | j                   j                  S r-   )r.   Ú	transport©r1   s    r    r4   zStreamWriter.transport;   s   € à�~‰~×'Ñ'Ð'r   c                 ó   — | j                   S r-   )r.   r5   s    r    r'   zStreamWriter.protocol?   s   € à�~‰~Ðr   c                 ó   — d| _         y )NT)r$   r5   s    r    Úenable_chunkingzStreamWriter.enable_chunkingC   s	   € Øˆ�r   ÚdeflateÚencodingÚstrategyc                 ó(   — t        ||¬«      | _        y )N)r:   r;   )r   r&   )r1   r:   r;   s      r    Úenable_compressionzStreamWriter.enable_compressionF   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_sizer.   r4   Ú
is_closingr   Úwrite)r1   r>   Úsizer4   s       r    Ú_writezStreamWriter._writeK   se   € Ü�5‹zˆØ×Ò˜DÑ ÕØ×Ò˜DÑ ÕØ—N‘N×,Ñ,ˆ	ØÐ 	× 4Ñ 4Ô 6Ü,Ð-PÓQÐQØ�‰˜Õr   Úchunksc                 ó,  — d}|D ]  }|t        |«      z  }Œ | xj                  |z  c_        | xj                  |z  c_        | j                  j                  }|�|j                  «       rt        d«      ‚|j                  dj                  |«      «       y )Nr   r@   r   )	rA   rB   rC   r.   r4   rD   r   rE   Újoin)r1   rH   rF   r>   r4   s        r    Ú_writelineszStreamWriter._writelinesT   s‚   € ØˆÛˆEØ”C˜“JÑ‰Dð à×Ò˜DÑ ÕØ×Ò˜DÑ ÕØ—N‘N×,Ñ,ˆ	ØÐ 	× 4Ñ 4Ô 6Ü,Ð-PÓQÐQØ�‰˜Ÿ™ Ó(Õ)r   Ti   )ÚdrainÚLIMITrL   rM   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|r�| j                  r1| j                  t	        |«      d›d�j                  d«      |df«       n| j                  |«       | j                  |kD  r#|r d| _        | j                  «       ƒ d{  –—†  yyyy7 �ŒH7 Œâ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ÚnbytesrA   Úcastr&   Úcompressr#   r$   rK   ÚencoderG   rB   rL   )r1   r>   rL   rM   Ú	chunk_lens        r    rE   zStreamWriter.write_   sO  è ø€ ð ×ÑÐ*Ø×%Ñ% eÓ,×,Ð,ä�eœZÔ(Ø�|‰|œs 5›zÒ)àŸ
™
 3›�à�>‰>Ð%ØŸ.™.×1Ñ1°%Ó8×8ˆEÙØà�;‰;Ð"Ü˜E›
ˆIØ�{‰{˜iÒ'Ø"Ÿk™k¨IÑ5�•à˜m §¡Ð,�Ø�”ÙØáØ�|Š|Ø× Ñ Ü˜E›
 1�~ TÐ*×1Ñ1°'Ó:¸EÀ7ÐKõð —‘˜EÔ"à×Ñ %Ò'©EØ#$�Ô Ø—j‘j“l×"Ñ"ð -2Ð'ð ð- -ùð 9øð0 #ús5   ‚!E2£E+¤A'E2ÂE.ÂCE2Å"E0Å#	E2Å.E2Å0E2Ústatus_lineÚheadersr!   c              ƒ   ó”   K  — | j                   �| j                  |«      ƒ d{  –—†  t        ||«      }| j                  |«       y7 Œ"­w)z*Write request/response status and headers.N)r0   Ú_serialize_headersrG   )r1   rZ   r[   Úbufs       r    Úwrite_headerszStreamWriter.write_headers‹   sG   è ø€ ð × Ñ Ð,Ø×'Ñ'¨Ó0×0Ð0ô ! ¨gÓ6ˆØ�‰�CÕð	 1ús   ‚!A£A¤#Ac                 ó   — d| _         y)z&Indicate that the message is complete.TN)r%   r5   s    r    Úset_eofzStreamWriter.set_eof–   s	   € àˆ�	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-|d›d�j                  d«      }| j                  |g|¢d‘­«       n›t	        |«      dkD  r| j                  |«       n{| j                  |d   «       nf| j                  rG|r3t	        |«      d›d�j                  d«      }| j                  ||df«       n%| j                  d«       n|r| j                  |«       | j                  «       ƒ d {  –—†  d| _         y 7 �Œ‰7 �ŒW7 Œ­w)	Nr   rP   rQ   rR   s   
0

r   s   0

T)r%   r/   r&   rW   rA   ÚappendÚflushr$   rX   rK   rG   rL   )r1   r>   rH   Ú
chunks_lenÚcompressed_chunkÚflush_chunkÚchunk_len_pres          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˜+Ô&ÙÐ�:à�|Š|Ø#-¨a .°Ð 5× <Ñ <¸WÓ E�Ø× Ñ  -Ð!K°&Ð!KÐ:JÑ!KÕLÜ�V“˜q’Ø× Ñ  Õ(à—‘˜F 1™IÕ&Ø�\Š\ÙÜ#& u£:¨a .°Ð 5× <Ñ <¸WÓ E�Ø× Ñ  -°Ð8HÐ!IÕJà—‘˜LÕ)ÙØ�K‰K˜Ôà�j‰j‹l×Ðàˆ�	ðA -ùð
 /Sùð2 	ús4   ‚0G²F;³4GÁ'F>Á(EGÆ.GÆ/GÆ>GÇG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)r.   r4   Ú_pausedÚ_drain_helper)r1   r'   s     r    rL   zStreamWriter.drainÁ   sB   è ø€ ð —>‘>ˆØ×ÑÐ)¨h×.>Ò.>Ø×(Ñ(Ó*×*Ñ*ð /?Ð)Ø*ús   ‚8AºA»A)NN)r+   N)r   )$r   r   r   r#   r	   r   r   r$   Úboolr%   r&   r   r   ÚasyncioÚAbstractEventLoopÚ_T_OnChunkSentÚ_T_OnHeadersSentr2   ÚpropertyÚ	Transportr4   r'   r8   ÚzlibÚZ_DEFAULT_STRATEGYÚstrr=   ÚbytesrG   r   rK   rE   r_   ra   ri   rL   r   r   r    r   r   (   s‚  … à €FˆH�S‰MÓ Ø€GˆTÓØ€Dˆ$ÓØ*.€Iˆx˜Ñ'Ó.ð )-Ø,0ñ
Bàð
Bð ×'Ñ'ð
Bð &ð	
Bð
 *ð
Bð 
ó
Bð ð(˜8 G×$5Ñ$5Ñ6ò (ó ð(ð ð˜,ò ó ðóð (¸×9PÑ9PñNØðNØ36ðNà	óNð
˜Eð  dó ð	* (¨5¡/ð 	*°dó 	*ð .2Àò*#Øð*#Ø&*ð*#Ø:=ð*#à	ó*#ðX	Øð	Ø);ð	à	ó	óñ% Uð %°Tó %ôN
+r   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)rx   s    r    Ú_safe_headerr}   Î   s(   € Øˆv�~˜ ™Üð1ó
ð 	
ð €Mr   rZ   r[   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>Ø   s'   è ø€ ÐXÉÁÀÀ1”< “? TÑ)¬L¸«OÕ;Éùs   ‚')rQ   z

zutf-8)ÚitemsrJ   rX   )rZ   r[   Úheaders_genÚlines       r    Ú_py_serialize_headersr‡   ×   s>   € ÙXÈÏÉÌÓX€KØ˜Ñ &§+¡+¨kÓ":Ñ:¸ZÑG€DØ�;‰;�wÓÐr   )(Ú__doc__rn   rt   Útypingr   r   r   r   r   r   r	   r
   Ú	multidictr   Úabcr   Úbase_protocolr   Úclient_exceptionsr   Úcompression_utilsr   Úhelpersr   Ú__all__r   r   r   rw   rp   rq   r   rv   r}   r‡   r]   Úaiohttp._http_writerÚ_http_writerÚ_c_serialize_headersÚImportErrorr   r   r    Ú<module>r•      s  ðÙ (ã Û ÷	÷ 	ó 	õ "å %Ý 'Ý 9Ý -Ý "à
K€ô�*ô ñ
 ˜A˜qÓ!€Ù˜A˜qÓ!€ð ˜( E 7¨I°d©OÐ#;Ñ<Ñ=€Ø˜HÐ&8Ð%9¸9ÀT¹?Ð%JÑKÑLÐ ôc+Ð'ô c+ðL˜ð  ó ð  sð  Ð5Gð  ÈEó  ð +Ð ð	Ý/à'×:Ñ:ÐÙØ1Ñð øàò 	Ùð	ús   ÂB6 Â6B>Â=B>