§
    À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j        cxk    odk     nc Zej        dk     Zep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+j)        Z,ese,Z)dS dS # e-$ r Y dS 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<   dS )r   ÚmajorÚminorN)Ú__name__Ú
__module__Ú__qualname__ÚintÚ__annotations__© ó    úX/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/aiohttp/http_writer.pyr   r   '   s"   € € € € € € Ø€J€J�JØ€J€J�J€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'dS )0r   NÚlengthFÚchunkedÚ_eofÚ	_compressÚprotocolÚloopÚon_chunk_sentÚon_headers_sentÚreturnc                 óZ   — || _         || _        || _        || _        d | _        d| _        d S )NF)Ú	_protocolr.   Ú_on_chunk_sentÚ_on_headers_sentÚ_headers_bufÚ_headers_written)Úselfr-   r.   r/   r0   s        r&   Ú__init__zStreamWriter.__init__;   s8   € ð "ˆŒØˆŒ	Ø.;ˆÔØ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| _         d S )NT)r*   r=   s    r&   Úenable_chunkingzStreamWriter.enable_chunkingQ   s   € ØˆŒˆˆr%   ÚdeflateÚencodingÚstrategyc                 ó2   — t          ||¬¦  «        | _        d S )N)rB   rC   )r   r,   )r8   rB   rC   s      r&   Úenable_compressionzStreamWriter.enable_compressionT   s   € õ (°ÀHÐMÑMÔMˆŒˆˆr%   Úchunkc                 óð   — t          |¦  «        }| xj        |z  c_        | xj        |z  c_        | j        j        }|�|                     ¦   «         rt          d¦  «        ‚|                     |¦  «         d S )Nú!Cannot write to closing transport)ÚlenÚbuffer_sizeÚoutput_sizer3   r<   Ú
is_closingr   Úwrite)r8   rF   Úsizer<   s       r&   Ú_writezStreamWriter._writeY   s}   € Ý�5‰zŒzˆØÐÔ˜DÑ ÐÔØÐÔ˜DÑ ÐÔØ”NÔ,ˆ	ØÐ 	× 4Ò 4Ñ 6Ô 6ÐÝ,Ð-PÑQÔQÐQØ�Š˜ÑÔÐÐÐr%   Úchunksc                 ó|  — d}|D ]}|t          |¦  «        z  }Œ| xj        |z  c_        | xj        |z  c_        | j        j        }|�|                     ¦   «         rt          d¦  «        ‚t          s|t          k     r*| 	                    d 
                    |¦  «        ¦  «         d S |                     |¦  «         d S )Nr   rH   r%   )rI   rJ   rK   r3   r<   rL   r   ÚSKIP_WRITELINESÚMIN_PAYLOAD_FOR_WRITELINESrM   ÚjoinÚ
writelines)r8   rP   rN   rF   r<   s        r&   Ú_writelineszStreamWriter._writelinesb   sÑ   € ØˆØð 	ð 	ˆEØ•C˜‘J”JÑˆDˆDØÐÔ˜DÑ ÐÔØÐÔ˜DÑ ÐÔØ”NÔ,ˆ	ØÐ 	× 4Ò 4Ñ 6Ô 6ÐÝ,Ð-PÑQÔQÐQÝð 	)˜dÕ%?Ò?Ð?Ø�OŠO˜CŸHšH VÑ,Ô,Ñ-Ô-Ð-Ð-Ð-à× Ò  Ñ(Ô(Ð(Ð(Ð(r%   zmemoryview[int]zmemoryview[bytes]c                 ó‚   — t          |¦  «        d›d�                     d¦  «        }|                      ||df¦  «         dS )z+Write a chunk with proper chunked encoding.Úxú
Úasciió   
N)rI   ÚencoderV   )r8   rF   Úchunk_len_pres      r&   Ú_write_chunked_payloadz#StreamWriter._write_chunked_payloadp   sJ   € õ ˜u™:œ:Ð-Ð-Ð-Ð-×4Ò4°WÑ=Ô=ˆØ×Ò˜-¨°Ð8Ñ9Ô9Ð9Ð9Ð9r%   Úis_eofc                 óÖ  — d| _         | j        }d| _        t          r|€J ‚| j        s1|r|                      ||f¦  «         n|                      |¦  «         dS |r^t          |¦  «        d›d�                     d¦  «        }|r|                      |||df¦  «         dS |                      |||df¦  «         dS |r|                      |df¦  «         dS |                      |¦  «         dS )	zASend buffered headers with payload, coalescing into single write.TNrX   rY   rZ   ó   
0

r[   ó   0

)r7   r6   r   r*   rV   rO   rI   r\   )r8   rF   r_   Úheaders_bufr]   s        r&   Ú_send_headers_with_payloadz'StreamWriter._send_headers_with_payloadw   s5  € ð !%ˆÔØÔ'ˆØ ˆÔåð 	+ð Ð*Ð*Ð*àŒ|ð 	àð )Ø× Ò  +¨uÐ!5Ñ6Ô6Ð6Ð6à—’˜KÑ(Ô(Ð(ØˆFð ð 		%Ý" 5™zœzÐ1Ð1Ð1Ð1×8Ò8¸ÑAÔAˆMØð OØ× Ò  +¨}¸eÐEUÐ!VÑWÔWÐWÐWÐWà× Ò  +¨}¸eÀWÐ!MÑNÔNÐNÐNÐNØð 	%Ø×Ò˜k¨<Ð8Ñ9Ô9Ð9Ð9Ð9à�KŠK˜Ñ$Ô$Ð$Ð$Ð$r%   Ti   )ÚdrainÚLIMITre   rf   c             ƒ   ó6  K  — | j         �|                       |¦  «        ƒ d{V —† t          |t          ¦  «        r-|j        t	          |¦  «        k    r|                     d¦  «        }| j        �$| j                             |¦  «        ƒ d{V —†}|sdS | j        �Dt	          |¦  «        }| j        |k    r| j        |z
  | _        n|d| j        …         }d| _        |sdS | j	        rM| j
        sF|                      |d¦  «         |r,| j        |k    r!d| _        |                      ¦   «         ƒ d{V —† dS |rb| j        r|                      |¦  «         n|                      |¦  «         |r0| j        |k    r'd| _        |                      ¦   «         ƒ d{V —† dS dS dS dS )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ÚnbytesrI   Úcastr,   Úcompressr)   r6   r7   rd   rJ   re   r*   r^   rO   )r8   rF   re   rf   Ú	chunk_lens        r&   rM   zStreamWriter.write›   s  è è € ð ÔÐ*Ø×%Ò% eÑ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,å�e�ZÑ(Ô(ð 	(ØŒ|�s 5™zœzÒ)Ð)àŸ
š
 3™œ�àŒ>Ð%Øœ.×1Ò1°%Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆEØð Ø�àŒ;Ð"Ý˜E™
œ
ˆIØŒ{˜iÒ'Ð'Ø"œk¨IÑ5�”�à˜m ¤˜mÔ,�Ø�”Øð Ø�Fð Ôð 	 TÔ%:ð 	Ø×+Ò+¨E°5Ñ9Ô9Ð9Øð #˜Ô)¨EÒ1Ð1Ø#$�Ô Ø—j’j‘l”lÐ"Ð"Ð"Ð"Ð"Ð"Ð"ØˆFàð 	#ØŒ|ð #Ø×+Ò+¨EÑ2Ô2Ð2Ð2à—’˜EÑ"Ô"Ð"àð #˜Ô)¨EÒ1Ð1Ø#$�Ô Ø—j’j‘l”lÐ"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"ð	#ð 	#ð#ð #Ð1Ð1r%   Ústatus_lineÚheadersr'   c              ƒ   óŠ   K  — | j         �|                       |¦  «        ƒ d{V —† t          ||¦  «        }d| _        || _        dS )zWrite headers to the stream.NF)r5   Ú_serialize_headersr7   r6   )r8   ro   rp   Úbufs       r&   Úwrite_headerszStreamWriter.write_headersÒ   s\   è è € ð Ô Ð,Ø×'Ò'¨Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0å  ¨gÑ6Ô6ˆØ %ˆÔØˆÔÐÐr%   c                 ó�   — | j         r| j        rdS d| _        | j         }d| _         t          r|€J ‚|                      |¦  «         dS )z3Force sending buffered headers if not already sent.NT)r6   r7   r   rO   ©r8   rc   s     r&   Úsend_headerszStreamWriter.send_headersÝ   s`   € àÔ ð 	 DÔ$9ð 	ØˆFà $ˆÔØÔ'ˆØ ˆÔåð 	+àÐ*Ð*Ð*à�Š�KÑ Ô Ð Ð Ð r%   c                 ó2  — | j         rdS | j        r\| j        sUd| _        | j        }d| _        t          r|€J ‚| j        r|                      |df¦  «         n9|                      |¦  «         n#| j        r| j        r|                      d¦  «         d| _         dS )z&Indicate that the message is complete.NTrb   )r+   r6   r7   r   r*   rV   rO   rv   s     r&   Úset_eofzStreamWriter.set_eofì   sÂ   € àŒ9ð 	ØˆFð Ôð 	& TÔ%:ð 	&Ø$(ˆDÔ!ØÔ+ˆKØ $ˆDÔåð /à"Ð.Ð.Ð.ð Œ|ð )Ø× Ò  +¨|Ð!<Ñ=Ô=Ð=Ð=à—’˜KÑ(Ô(Ð(Ð(ØŒ\ð 	&˜dÔ3ð 	&à�KŠK˜Ñ%Ô%Ð%àˆŒ	ˆ	ˆ	r%   r%   c              ƒ   ó  K  — | j         rd S |r"| j        �|                      |¦  «        ƒ d {V —† | j        �rÏg }d}|rF| j                             |¦  «        ƒ d {V —†x}r$t	          |¦  «        }|                     |¦  «         | j                             ¦   «         }|t	          |¦  «        z  }|                     |¦  «         |sJ ‚| j        r•| j        sŽd| _        | j        }d | _        | j	        r6|d›d� 
                    d¦  «        }|                      ||g|¢d‘R ¦  «         n|                      |g|¢R ¦  «         |                      ¦   «         ƒ d {V —† d| _         d S | j	        r5|d›d� 
                    d¦  «        }|                      |g|¢d‘R ¦  «         nDt	          |¦  «        dk    r|                      |¦  «         n|                      |d         ¦  «         |                      ¦   «         ƒ d {V —† d| _         d S | j        r@| j        s9|                      |d¦  «         |                      ¦   «         ƒ d {V —† d| _         d S | j	        rw|r=|                      t	          |¦  «        d›d� 
                    d¦  «        |df¦  «         n|                      d¦  «         |                      ¦   «         ƒ d {V —† d| _         d S |r/|                      |¦  «         |                      ¦   «         ƒ d {V —† d| _         d S )	Nr   TrX   rY   rZ   ra   r   rb   )r+   r4   r,   rm   rI   ÚappendÚflushr6   r7   r*   r\   rV   re   rO   rd   )r8   rF   rP   Ú
chunks_lenÚcompressed_chunkÚflush_chunkrc   r]   s           r&   Ú	write_eofzStreamWriter.write_eof  sÉ  è è € ØŒ9ð 	ØˆFàð 	-�TÔ(Ð4Ø×%Ò% eÑ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ð Œ>ñ )	Ø"$ˆFØˆJØð 0°D´N×4KÒ4KÈEÑ4RÔ4RÐ.RÐ.RÐ.RÐ.RÐ.RÐ.RÐRÐ*ð 0Ý Ð!1Ñ2Ô2�
Ø—’Ð.Ñ/Ô/Ð/àœ.×.Ò.Ñ0Ô0ˆKØ�#˜kÑ*Ô*Ñ*ˆJØ�MŠM˜+Ñ&Ô&Ð&ØÐÐÐð Ô ð ¨Ô)>ð Ø(,�Ô%Ø"Ô/�Ø$(�Ô!à”<ð =à'1Ð$9Ð$9Ð$9Ð$9×$@Ò$@ÀÑ$IÔ$I�MØ×$Ò$Ø$ mÐO°fÐOÐ>NÐOÐOñô ð ð ð
 ×$Ò$ kÐ%;°FÐ%;Ð%;Ñ<Ô<Ð<Ø—j’j‘l”lÐ"Ð"Ð"Ð"Ð"Ð"Ð"Ø �”	Ø�ð Œ|ð 'Ø#-Ð 5Ð 5Ð 5Ð 5× <Ò <¸WÑ EÔ E�Ø× Ò  -Ð!K°&Ð!KÐ:JÐ!KÐ!KÑLÔLÐLÐLÝ�V‘”˜q’�Ø× Ò  Ñ(Ô(Ð(Ð(à—’˜F 1œIÑ&Ô&Ð&Ø—*’*‘,”,ÐÐÐÐÐÐÐØˆDŒIØˆFð Ôð 	 TÔ%:ð 	à×+Ò+¨E°4Ñ8Ô8Ð8Ø—*’*‘,”,ÐÐÐÐÐÐÐØˆDŒIØˆFð Œ<ð 
	Øð *à× Ò Ý˜E™
œ
Ð*Ð*Ð*Ð*×1Ò1°'Ñ:Ô:¸EÐCSÐTñô ð ð ð —’˜LÑ)Ô)Ð)Ø—*’*‘,”,ÐÐÐÐÐÐÐØˆDŒIØˆFàð 	Ø�KŠK˜ÑÔÐØ—*’*‘,”,ÐÐÐÐÐÐÐàˆŒ	ˆ	ˆ	r%   c              ƒ   óp   K  — | j         }|j        �#|j        r|                     ¦   «         ƒ d{V —† dS dS dS )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&   re   zStreamWriter.drainU  sX   è è € ð ”>ˆØÔÐ)¨hÔ.>Ð)Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð *Ð)Ð)Ð)r%   )NN)r1   N)rA   N)r%   )(r   r    r!   r)   r
   r"   r#   r*   Úboolr+   r,   r   r   ÚasyncioÚAbstractEventLoopÚ_T_OnChunkSentÚ_T_OnHeadersSentr9   ÚpropertyÚ	Transportr<   r-   r@   ÚstrrE   r   ÚbytesÚ	bytearrayrj   rO   r   rV   r^   rd   rM   rt   rw   ry   r€   re   r$   r%   r&   r   r   4   s  € € € € € € à €FˆH�SŒMÐ Ð Ñ Ø€GˆTÐÐÑØ€Dˆ$ÐÐÑØ*.€Iˆx˜Ô'Ð.Ð.Ñ.ð )-Ø,0ð,ð ,àð,ð Ô'ð,ð &ð	,ð
 *ð,ð 
ð,ð ,ð ,ð ,ð ð(˜8 GÔ$5Ô6ð (ð (ð (ñ „Xð(ð ð˜,ð ð ð ñ „Xððð ð ð ð DHðNð NØðNØ3;¸C´=ðNà	ðNð Nð Nð Nð
˜E %¨°JÐ">Ô?ð ÀDð ð ð ð ð) (¨5¤/ð )°dð )ð )ð )ð )ð:Ø˜5 )Ð->Ð@SÐSÔTð:à	ð:ð :ð :ð :ð"%à�U˜IÐ'8Ð:MÐMÔNð"%ð ð"%ð 
ð	"%ð "%ð "%ð "%ðP Øð5#ð 5#ð 5#à�U˜I zÐ1Ô2ð5#ð ð	5#ð
 ð5#ð 
ð5#ð 5#ð 5#ð 5#ðn	 Øð	 Ø);ð	 à	ð	 ð 	 ð 	 ð 	 ð!ð !ð !ð !ðð ð ð ð6Lð L Uð L°Tð Lð Lð Lð Lð\
+ð 
+ð 
+ð 
+ð 
+ð 
+r%   r   Ústringr1   c                 ó4   — 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  s1   € Øˆv€~€~˜ ˜˜Ýð1ñ
ô 
ð 	
ð €Mr%   ro   rp   c                 ó¤   — d„ |                      ¦   «         D ¦   «         }| dz   d                     |¦  «        z   dz   }|                     d¦  «        S )Nc              3   ó`   K  — | ])\  }}t          |¦  «        d z   t          |¦  «        z   V — Œ*dS )z: N)r“   )Ú.0ÚkÚvs      r&   ú	<genexpr>z(_py_serialize_headers.<locals>.<genexpr>l  s<   è è € ÐXÐXÁÀÀ1•< ‘?”? TÑ)­L¸©O¬OÑ;ÐXÐXÐXÐXÐXÐXr%   rY   z

zutf-8)ÚitemsrT   r\   )ro   rp   Úheaders_genÚlines       r&   Ú_py_serialize_headersr�   k  sO   € ØXÐXÈÏÊÉÌÐXÑ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__rS   Úversion_infoÚIS_PY313_BEFORE_313_2ÚIS_PY_BEFORE_312_9rR   r   r   r   rŒ   r‡   rˆ   r   r‹   r“   r�   rr   Úaiohttp._http_writerÚ_http_writerÚ_c_serialize_headersÚImportErrorr$   r%   r&   ú<module>r¯      s³  ðØ (Ð (à €€€Ø 
€
€
€
ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð "Ð !Ð !Ð !Ð !Ð !à %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø -Ð -Ð -Ð -Ð -Ð -Ø "Ð "Ð "Ð "Ð "Ð "à
K€ð "Ð Ø" cÔ&6ÐCÐCÒCÐC¸ÒCÐCÐCÐCÐ ØÔ%¨
Ò2Ð Ø'Ð=Ð+=€ðð ð ð ð �*ñ ô ð ð
 �˜A˜qÑ!Ô!€Ø�˜A˜qÑ!Ô!€ð ˜( E 7¨I°d¬OÐ#;Ô<Ô=€Ø˜HÐ&8Ð%9¸9ÀT¼?Ð%JÔKÔLÐ ðk+ð k+ð k+ð k+ð k+Ð'ñ k+ô k+ð k+ð\	˜ð  ð ð ð ð ð  sð  Ð5Gð  ÈEð  ð  ð  ð  ð +Ð ð	Ø/Ð/Ð/Ð/Ð/Ð/à'Ô:ÐØð 2Ø1ÐÐÐð2ð 2øàð 	ð 	ð 	Ø€D€Dð	øøøs   Ã$C9 Ã9DÄD