Ë
    V.j~'  ã                   ón   — d dl Z d dlZd dlZd dlZd dlmZ  G d„ de«      Z G d„ d«      Z G d„ d«      Z	y)	é    N)Úclusterc                   ó   — e Zd Zy)Ú
StopServerN)Ú__name__Ú
__module__Ú__qualname__© ó    úZC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\asyncpg/_testbase/fuzzer.pyr   r      s   „ Ør
   r   c                   ó¾   — e Zd Zddddœdedej
                  e   dededej
                  e   d	dfd
„Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTCPFuzzingProxyz	127.0.0.1N)Úlistening_addrÚlistening_portÚsettingsr   r   Úbackend_hostÚbackend_portr   Úreturnc                ó´   — || _         || _        || _        || _        |xs i | _        d | _        d | _        d | _        d | _        i | _	        d | _
        d | _        y ©N)r   r   r   r   r   ÚloopÚconnectivityÚconnectivity_lossÚ
stop_eventÚconnectionsÚsockÚlisten_task)Úselfr   r   r   r   r   s         r   Ú__init__zTCPFuzzingProxy.__init__   sd   € ð -ˆÔØ,ˆÔØ(ˆÔØ(ˆÔØ š BˆŒØˆŒ	Ø ˆÔØ!%ˆÔØˆŒØˆÔØˆŒ	ØˆÕr
   c              ƒ   óh  K  — t        j                  |«      }t        j                  | j                  j                  «       «      }	 t        j                  ||gt         j                  ¬«      ƒ d {  –—†  | j                  j                  «       r
t        «       ‚|j                  «       |j                  «       s|j                  «        |j                  «       s|j                  «        S S 7 Œy# |j                  «       s|j                  «        |j                  «       s|j                  «        w w xY w­w©N)Úreturn_when)
ÚasyncioÚensure_futurer   ÚwaitÚFIRST_COMPLETEDÚis_setr   ÚresultÚdoneÚcancel)r   ÚworkÚ	work_taskÚstop_event_tasks       r   Ú_waitzTCPFuzzingProxy._wait&   só   è ø€ Ü×)Ñ)¨$Ó/ˆ	Ü!×/Ñ/°·±×0DÑ0DÓ0FÓGˆð	)Ü—,‘,Ø˜OÐ,Ü#×3Ñ3ô5÷ 5ð 5ð �‰×%Ñ%Ô'Ü “lÐ"à ×'Ñ'Ó)à—>‘>Ô#Ø× Ñ Ô"Ø"×'Ñ'Ô)Ø×&Ñ&Õ(ð *ð5ùð —>‘>Ô#Ø× Ñ Ô"Ø"×'Ñ'Ô)Ø×&Ñ&Õ(ð *üs2   ‚AD2Á*C, Á0C*Á17C, Â(AD2Ã*C, Ã,AD/Ä/D2c                 óè   — t        j                  «       }t        j                  | j                  |f¬«      | _        | j                  j                  «        |j                  d¬«      st        d«      ‚y )N)ÚtargetÚargsé   )Útimeoutzfuzzer proxy failed to start)Ú	threadingÚEventÚThreadÚ_start_threadÚthreadÚstartr$   ÚRuntimeError)r   Ústarteds     r   r8   zTCPFuzzingProxy.start9   s\   € Ü—/‘/Ó#ˆÜ×&Ñ&Ø×%Ñ%¨W¨Jô8ˆŒà�‰×ÑÔØ�|‰| Aˆ|Ô&ÜÐ=Ó>Ð>ð 'r
   c                 ó‚   — | j                   j                  | j                  «       | j                  j	                  «        y r   )r   Úcall_soon_threadsafeÚ_stopr7   Újoin©r   s    r   ÚstopzTCPFuzzingProxy.stopA   s(   € Ø�	‰	×&Ñ& t§z¡zÔ2Ø�‰×ÑÕr
   c                 ó8   — | j                   j                  «        y r   )r   Úsetr?   s    r   r=   zTCPFuzzingProxy._stopE   s   € Ø�‰×ÑÕr
   c                 óP  — t        j                  «       | _        t        j                  | j                  «       t        j                  «       | _        | j
                  j                  «        t        j                  «       | _        t        j                  «       | _        | j                  €t        j                  «       | _	        t        j                  «       | _        | j                  j                  | j                  | j                  f«       | j                  j!                  d«       | j                  j#                  d«       	 | j                  j%                  | j'                  |«      «       | j                  j)                  «        y # | j                  j)                  «        w xY w)Né2   F)r"   Únew_event_loopr   Úset_event_loopr4   r   rB   r   r   r   r   Úfind_available_portÚsocketr   Úbindr   ÚlistenÚsetblockingÚrun_until_completeÚ_mainÚclose)r   Ústarted_events     r   r6   zTCPFuzzingProxy._start_threadH   s  € Ü×*Ñ*Ó,ˆŒ	Ü×Ñ˜tŸy™yÔ)ä#ŸM™M›OˆÔØ×Ñ×ÑÔÜ!(§¡£ˆÔÜ!Ÿ-™-›/ˆŒà×ÑÐ&Ü")×"=Ñ"=Ó"?ˆDÔä—M‘M“OˆŒ	Ø�	‰	�‰˜×+Ñ+¨T×-@Ñ-@ÐAÔBØ�	‰	×Ñ˜ÔØ�	‰	×Ñ˜eÔ$ð	Ø�I‰I×(Ñ(¨¯©°MÓ)BÔCà�I‰I�O‰OÕøˆD�I‰I�O‰OÕús   Å*F	 Æ	F%c              ƒ   ób  K  — t        j                  | j                  «       «      | _        |j	                  «        	 | j                  ƒ d {  –—†  t        | j                  «      D ]  }|j                  «        Œ t        j                  d«      ƒ d {  –—†  t        | j                  d«      r3| j                  j                  | j                  j                  «       «       | j                  j                  «        y 7 Œ¯7 Œj# t        | j                  «      D ]  }|j                  «        Œ t        j                  d«      ƒ d {  –—†7   t        | j                  d«      r3| j                  j                  | j                  j                  «       «       | j                  j                  «        w xY w­w)Ng{®Gáz„?Úremove_reader)r"   r#   rJ   r   rB   Úlistr   rN   ÚsleepÚhasattrr   rQ   r   Úfileno)r   rO   Úcs      r   rM   zTCPFuzzingProxy._main^   s#  è ø€ Ü"×0Ñ0°·±³Ó?ˆÔà×ÑÔð	Ø×"Ñ"×"Ð"ä˜$×*Ñ*Ö+�Ø—‘•	ð ,ä—-‘- Ó%×%Ð%Ü�t—y‘y /Ô2Ø—	‘	×'Ñ'¨¯	©	×(8Ñ(8Ó(:Ô;Ø�I‰I�O‰OÕð #øð &ùô ˜$×*Ñ*Ö+�Ø—‘•	ð ,ä—-‘- Ó%×%Ñ%Ü�t—y‘y /Ô2Ø—	‘	×'Ñ'¨¯	©	×(8Ñ(8Ó(:Ô;Ø�I‰I�O‰OÕüsP   ‚9F/¼C? ÁC;ÁC? ÁAF/ÂC=ÂA(F/Ã;C? Ã=F/Ã?AF,ÅEÅA)F,Æ,F/c              ƒ   ó  K  — 	 	 | j                  | j                  j                  | j                  «      «      ƒ d {  –—† \  }}t	        j                  «       }|j                  d«       | j                  | j                  j                  || j                  | j                  f«      «      ƒ d {  –—†  t        ||| «      }| j                  j                  |j                  «       «      }|| j                  |<   Œô7 Œ»7 ŒL# t        $ r Y y w xY w­w©NF)r-   r   Úsock_acceptr   rH   rK   Úsock_connectr   r   r   Ú
ConnectionÚcreate_taskÚhandler   )r   Úclient_sockÚ_Úbackend_sockÚconnÚ	conn_tasks         r   rJ   zTCPFuzzingProxy.listenl   só   è ø€ Øð
Ø'+§z¡zØ—I‘I×)Ñ)¨$¯)©)Ó4ó(6÷ "6‘�˜Qô  &Ÿ}™}›�Ø×(Ñ(¨Ô/à—j‘j §¡×!7Ñ!7Ø  4×#4Ñ#4°d×6GÑ6GÐ"Hó"Jó K÷ Kð Kô
 ˜k¨<¸Ó>ˆDØŸ	™	×-Ñ-¨d¯k©k«mÓ<ˆIØ%.ˆD×Ñ˜TÑ"ð ð"6øðKùäò ÙðüsL   ‚D…7C< ¼C8½A0C< Â-C:Â.C< Â2ADÃ8C< Ã:C< Ã<	DÄDÄDÄDc                 óN   — | j                   j                  | j                  «       y r   )r   r<   Ú_trigger_connectivity_lossr?   s    r   Útrigger_connectivity_lossz)TCPFuzzingProxy.trigger_connectivity_loss~   s   € Ø�	‰	×&Ñ& t×'FÑ'FÕGr
   c                 ól   — | j                   j                  «        | j                  j                  «        y r   )r   Úclearr   rB   r?   s    r   rd   z*TCPFuzzingProxy._trigger_connectivity_loss�   s&   € Ø×Ñ×ÑÔ!Ø×Ñ×"Ñ"Õ$r
   c                 óN   — | j                   j                  | j                  «       y r   )r   r<   Ú_restore_connectivityr?   s    r   Úrestore_connectivityz$TCPFuzzingProxy.restore_connectivity…   s   € Ø�	‰	×&Ñ& t×'AÑ'AÕBr
   c                 ól   — | j                   j                  «        | j                  j                  «        y r   )r   rB   r   rg   r?   s    r   ri   z%TCPFuzzingProxy._restore_connectivityˆ   s&   € Ø×Ñ×ÑÔØ×Ñ×$Ñ$Õ&r
   c                 ó$   — | j                  «        y r   )rj   r?   s    r   ÚresetzTCPFuzzingProxy.resetŒ   s   € Ø×!Ñ!Õ#r
   c                 ób   — | j                   j                  |d «      }|�|j                  «        y y r   )r   Úpopr)   )r   Ú
connectionrb   s      r   Ú_close_connectionz!TCPFuzzingProxy._close_connection�   s1   € Ø×$Ñ$×(Ñ(¨°TÓ:ˆ	ØÐ Ø×ÑÕð !r
   c                 ó„   — t        | j                  «      D ](  }| j                  j                  | j                  |«       Œ* y r   )rR   r   r   r<   rq   )r   ra   s     r   Úclose_all_connectionsz%TCPFuzzingProxy.close_all_connections”   s1   € Ü˜×)Ñ)Ö*ˆDØ�I‰I×*Ñ*¨4×+AÑ+AÀ4ÕHñ +r
   )r   r   r   ÚstrÚtypingÚOptionalÚintÚdictr   r-   r8   r@   r=   r6   rM   rJ   re   rd   rj   ri   rm   rq   rs   r	   r
   r   r   r      sž   „ Ø.9Ø6:à15ò ¨#ð  Ø!'§¡°Ñ!5ð à"ð à25ð ð "Ÿ?™?¨4Ñ0ð ð ;?ó ò")ò&?òòòò,ò/ò$Hò%òCò'ò$òó
Ir
   r   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	r[   c                 ó¾   — || _         || _        || _        |j                  | _        |j                  | _        |j
                  | _        d | _        d | _        d| _        y rX   )	r^   r`   Úproxyr   r   r   Úproxy_to_backend_taskÚproxy_from_backend_taskÚ	is_closed)r   r^   r`   r{   s       r   r   zConnection.__init__š   sW   € Ø&ˆÔØ(ˆÔØˆŒ
Ø—J‘JˆŒ	Ø!×.Ñ.ˆÔØ!&×!8Ñ!8ˆÔØ%)ˆÔ"Ø'+ˆÔ$Øˆ�r
   c                 ó  — | j                   ry d| _         | j                  �!| j                  j                  «        d | _        | j                  �!| j                  j                  «        d | _        | j                  j                  | «       y )NT)r~   r|   r)   r}   r{   rq   r?   s    r   rN   zConnection.close¥   sq   € Ø�>Š>ØàˆŒà×%Ñ%Ð1Ø×&Ñ&×-Ñ-Ô/Ø)-ˆDÔ&à×'Ñ'Ð3Ø×(Ñ(×/Ñ/Ô1Ø+/ˆDÔ(à�
‰
×$Ñ$ TÕ*r
   c              ƒ   ót  K  — t        j                  | j                  «       «      | _        t        j                  | j	                  «       «      | _        	 t        j                  | j                  | j
                  gt         j                  ¬«      ƒ d {  –—†  | j                  �| j                  j                  «        | j
                  �| j
                  j                  «        | j                  j                  | j                  j                  «       «       | j                  j                  | j                  j                  «       «       | j                  j                  | j                  j                  «       «       | j                  j                  | j                  j                  «       «       | j                  j                  «        | j                  j                  «        y 7 �ŒR# | j                  �| j                  j                  «        | j
                  �| j
                  j                  «        | j                  j                  | j                  j                  «       «       | j                  j                  | j                  j                  «       «       | j                  j                  | j                  j                  «       «       | j                  j                  | j                  j                  «       «       | j                  j                  «        | j                  j                  «        w xY w­wr    )r"   r#   Úproxy_to_backendr|   Úproxy_from_backendr}   r$   r%   r)   r   rQ   r^   rU   Úremove_writerr`   rN   r?   s    r   r]   zConnection.handleµ   sT  è ø€ Ü%,×%:Ñ%:Ø×!Ñ!Ó#ó&%ˆÔ"ô (/×'<Ñ'<Ø×#Ñ#Ó%ó('ˆÔ$ð	&Ü—,‘,Ø×+Ñ+¨T×-IÑ-IÐJÜ#×3Ñ3ô5÷ 5ð 5ð
 ×)Ñ)Ð5Ø×*Ñ*×1Ñ1Ô3à×+Ñ+Ð7Ø×,Ñ,×3Ñ3Ô5ð �I‰I×#Ñ# D×$4Ñ$4×$;Ñ$;Ó$=Ô>Ø�I‰I×#Ñ# D×$4Ñ$4×$;Ñ$;Ó$=Ô>Ø�I‰I×#Ñ# D×$5Ñ$5×$<Ñ$<Ó$>Ô?Ø�I‰I×#Ñ# D×$5Ñ$5×$<Ñ$<Ó$>Ô?à×Ñ×"Ñ"Ô$Ø×Ñ×#Ñ#Õ%ð+5úð
 ×)Ñ)Ð5Ø×*Ñ*×1Ñ1Ô3à×+Ñ+Ð7Ø×,Ñ,×3Ñ3Ô5ð �I‰I×#Ñ# D×$4Ñ$4×$;Ñ$;Ó$=Ô>Ø�I‰I×#Ñ# D×$4Ñ$4×$;Ñ$;Ó$=Ô>Ø�I‰I×#Ñ# D×$5Ñ$5×$<Ñ$<Ó$>Ô?Ø�I‰I×#Ñ# D×$5Ñ$5×$<Ñ$<Ó$>Ô?à×Ñ×"Ñ"Ô$Ø×Ñ×#Ñ#Õ%üs2   ‚AL8Á>G' ÂG$ÂG' ÂEL8Ç$G' Ç'EL5Ì5L8c              ƒ   ó°  K  — t        j                  | j                  j                  ||«      «      }t        j                  | j                  j                  «       «      }	 t        j
                  ||gt         j                  ¬«      ƒ d {  –—†  | j                  j                  «       r^	 | j                  j                  «       sB|j                  «       s|j                  «        |j                  «       s|j                  «        y y y |j                  «       | j                  j                  «       sB|j                  «       s|j                  «        |j                  «       s|j                  «        S S S 7 Œè# | j                  j                  «       sB|j                  «       s|j                  «        |j                  «       s|j                  «        w w w xY w­wr    )r"   r#   r   Ú	sock_recvr   r$   r%   r&   r~   r(   r)   r'   )r   r   ÚnÚ	read_taskÚconn_event_tasks        r   Ú_readzConnection._readÔ   s  è ø€ Ü×)Ñ)Ø�I‰I×Ñ  aÓ(ó*ˆ	ä!×/Ñ/Ø×"Ñ"×'Ñ'Ó)ó+ˆð	-Ü—,‘,Ø˜OÐ,Ü#×3Ñ3ô5÷ 5ð 5ð ×%Ñ%×,Ñ,Ô.Øð —9‘9×&Ñ&Ô(Ø —~‘~Ô'Ø×$Ñ$Ô&Ø&×+Ñ+Ô-Ø#×*Ñ*Õ,ð .ð )ð !×'Ñ'Ó)à—9‘9×&Ñ&Ô(Ø —~‘~Ô'Ø×$Ñ$Ô&Ø&×+Ñ+Ô-Ø#×*Ñ*Õ,ð .ð )ð5ùð —9‘9×&Ñ&Ô(Ø —~‘~Ô'Ø×$Ñ$Ô&Ø&×+Ñ+Ô-Ø#×*Ñ*Õ,ð .ð )üó?   ‚AGÁ *E5 Â
E3ÂE5 Â*AGÄE5 ÄAGÅ3E5 Å5AGÇGc              ƒ   ó°  K  — t        j                  | j                  j                  ||«      «      }t        j                  | j                  j                  «       «      }	 t        j
                  ||gt         j                  ¬«      ƒ d {  –—†  | j                  j                  «       r^	 | j                  j                  «       sB|j                  «       s|j                  «        |j                  «       s|j                  «        y y y |j                  «       | j                  j                  «       sB|j                  «       s|j                  «        |j                  «       s|j                  «        S S S 7 Œè# | j                  j                  «       sB|j                  «       s|j                  «        |j                  «       s|j                  «        w w w xY w­wr    )r"   r#   r   Úsock_sendallr   r$   r%   r&   r~   r(   r)   r'   )r   r   ÚdataÚ
write_taskrˆ   s        r   Ú_writezConnection._writeê   s  è ø€ Ü×*Ñ*Ø�I‰I×"Ñ" 4¨Ó.ó0ˆ
ä!×/Ñ/Ø×"Ñ"×'Ñ'Ó)ó+ˆð	-Ü—,‘,Ø˜_Ð-Ü#×3Ñ3ô5÷ 5ð 5ð ×%Ñ%×,Ñ,Ô.Øð —9‘9×&Ñ&Ô(Ø!—‘Ô(Ø×%Ñ%Ô'Ø&×+Ñ+Ô-Ø#×*Ñ*Õ,ð .ð )ð "×(Ñ(Ó*à—9‘9×&Ñ&Ô(Ø!—‘Ô(Ø×%Ñ%Ô'Ø&×+Ñ+Ô-Ø#×*Ñ*Õ,ð .ð )ð5ùð —9‘9×&Ñ&Ô(Ø!—‘Ô(Ø×%Ñ%Ô'Ø&×+Ñ+Ô-Ø#×*Ñ*Õ,ð .ð )ürŠ   c              ƒ   óx  K  — d }	 	 | j                   j                  «       ƒ d {  –—†  |�|}d }n$| j                  | j                  d«      ƒ d {  –—† }|dk(  rnD| j                  j                  «       r|r|}Œs| j                  | j                  |«      ƒ d {  –—†  Œ—	 | j                  j                  «       s&| j                  j                  | j                  «       y y 7 Œ»7 Œ’7 ŒK# t        $ r Y ŒRw xY w# | j                  j                  «       s&| j                  j                  | j                  «       w w xY w­w©Ni   r
   )r   r$   r‰   r^   r   r&   r�   r`   ÚConnectionErrorr   r~   Ú	call_soonrN   ©r   Úbufr�   s      r   r�   zConnection.proxy_to_backend   s  è ø€ Øˆð	0ØØ×'Ñ'×,Ñ,Ó.×.Ð.Ø�?Ø�DØ‘Cà!%§¡¨D×,<Ñ,<¸dÓ!C×C�DØ˜3’;ØØ×)Ñ)×0Ñ0Ô2ÙØ"˜ØØ—k‘k $×"3Ñ"3°TÓ:×:Ð:ð ð ð —9‘9×&Ñ&Ô(Ø—	‘	×#Ñ# D§J¡JÕ/ð )ð% /øð
 Døð ;ùäò 	Ùð	ûð —9‘9×&Ñ&Ô(Ø—	‘	×#Ñ# D§J¡JÕ/ð )üóq   ‚D:†C& ¤C ¥*C& ÁC"ÁAC& ÂC$ÂC& ÂC5 ÂAD:Ã C& Ã"C& Ã$C& Ã&	C2Ã/C5 Ã1C2Ã2C5 Ã5AD7Ä7D:c              ƒ   óx  K  — d }	 	 | j                   j                  «       ƒ d {  –—†  |�|}d }n$| j                  | j                  d«      ƒ d {  –—† }|dk(  rnD| j                  j                  «       r|r|}Œs| j                  | j                  |«      ƒ d {  –—†  Œ—	 | j                  j                  «       s&| j                  j                  | j                  «       y y 7 Œ»7 Œ’7 ŒK# t        $ r Y ŒRw xY w# | j                  j                  «       s&| j                  j                  | j                  «       w w xY w­wr‘   )r   r$   r‰   r`   r   r&   r�   r^   r’   r   r~   r“   rN   r”   s      r   r‚   zConnection.proxy_from_backend  s  è ø€ Øˆð	0ØØ×'Ñ'×,Ñ,Ó.×.Ð.Ø�?Ø�DØ‘Cà!%§¡¨D×,=Ñ,=¸tÓ!D×D�DØ˜3’;ØØ×)Ñ)×0Ñ0Ô2ÙØ"˜ØØ—k‘k $×"2Ñ"2°DÓ9×9Ð9ð ð ð —9‘9×&Ñ&Ô(Ø—	‘	×#Ñ# D§J¡JÕ/ð )ð% /øð
 Eøð :ùäò 	Ùð	ûð —9‘9×&Ñ&Ô(Ø—	‘	×#Ñ# D§J¡JÕ/ð )ür–   N)
r   r   r   r   rN   r]   r‰   r�   r�   r‚   r	   r
   r   r[   r[   ™   s%   „ ò	ò+ò &ò>-ò,-ò,0ó40r
   r[   )
r"   rH   r3   ru   Úasyncpgr   Ú	Exceptionr   r   r[   r	   r
   r   Ú<module>rš      s=   ðó Û Û Û å ô	�ô 	÷BIñ BI÷JY0ò Y0r
   