§
    ¯õiÈŒ  ã                  óŠ  — d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
Z
d dlZd dlmZ 	 d dlZd dlmZ n# e$ rZ ee¦  «         Y dZ[ndZ[ww xY wd dlZd dlZd dlmZmZ d d	lmZmZ d
dlmZmZmZ erd dlmZ  ej         ¦   «         Z!e! "                    d¦  «        Z#ej$        dKd„¦   «         Z%dKd„Z&ej$        dKd„¦   «         Z'ej(         )                    dd ej*        de¬¦  «        gddg¬¦  «        Z+dLd„Z,eddddœdMd$„¦   «         Z-e+dNd'„¦   «         Z.edOd*„¦   «         Z/dPd+„Z0dPd,„Z1dPd-„Z2dQd.„Z3dQd/„Z4dRd0„Z5dQd1„Z6dSd3„Z7ej(         )                    d4d5d6g¦  «        dTd8„¦   «         Z8dUd9„Z9dVd:„Z:dUd;„Z;dQd<„Z<edPd=„¦   «         Z=dUd>„Z>dPd?„Z?e+dWd@„¦   «         Z@ej(         A                    dA¦  «        dXdB„¦   «         ZBej(         A                    dA¦  «        dRdC„¦   «         ZCej(         A                    dA¦  «        dRdD„¦   «         ZDej(         A                    dA¦  «        dRdE„¦   «         ZEdRdF„ZFdVdG„ZGdUdH„ZHdQdI„ZIdQdJ„ZJdS )Yé    )ÚannotationsN)Úasynccontextmanager)Úcount)ÚTYPE_CHECKINGÚNoReturn)Úskip_if_optional_else_raise)ÚSSL)ÚDTLSChannelÚDTLSEndpoint)ÚFakeNetÚ	UDPPacketé   )Ú
binds_ipv6Úgc_collect_harderÚslow)ÚAsyncGeneratorzexample.comÚreturnúSSL.Contextc                 óv   — t          j        t           j        ¦  «        } t                               | ¦  «         | S ©N)r	   ÚContextÚDTLS_METHODÚserver_certÚconfigure_cert©Úctxs    úa/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/trio/_tests/test_dtls.pyÚ
server_ctxr   "   s,   € å
Œ+•c”oÑ
&Ô
&€CÝ×Ò˜sÑ#Ô#Ð#Ø€Jó    c                 óv   — t          j        t           j        ¦  «        } t                               | ¦  «         | S r   )r	   r   r   ÚcaÚconfigure_trustr   s    r   Úclient_ctx_fnr#   )   s,   € Ý
Œ+•c”oÑ
&Ô
&€CÝ×Ò�sÑÔÐØ€Jr   c                 ó   — t          ¦   «         S r   )r#   © r   r   Ú
client_ctxr&   /   s   € å‰?Œ?Ðr   Úipv6FT)ÚmarksÚipv4)ÚidsÚkwargsú
int | boolr   c                 óð   — |                       dd¦  «        }|rt          j        j        nt          j        j        }t          j                             t          j        j        |¬¦  «        }t          |fi | ¤ŽS )Nr'   F)ÚtypeÚfamily)ÚpopÚtrioÚsocketÚAF_INET6ÚAF_INETÚ
SOCK_DGRAMr   )r+   r'   r/   Úsocks       r   Úendpointr7   ;   sc   € Ø�:Š:�f˜eÑ$Ô$€DØ%)ÐB�TŒ[Ô!Ð!­t¬{Ô/B€FÝŒ;×Ò¥4¤;Ô#9À&ÐÑIÔI€DÝ˜Ð'Ð' Ð'Ð'Ð'r   )Ú
autocancelÚmtur'   r   r8   Úboolr9   ú
int | Noneú:AsyncGenerator[tuple[DTLSEndpoint, tuple[str, int]], None]c               óê  ‡K  — t          |¬¦  «        5 }|rdnd}|j                             |df¦  «        ƒ d {V —† t          j        ¦   «         4 ƒd {V —†}d
ˆfd	„}|                     |j        | |¦  «        ƒ d {V —† ||j                             ¦   «         fW V — |r|j         	                    ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )N©r'   z::1ú	127.0.0.1r   Údtls_channelr
   r   ÚNonec              “  óâ  •K  — t          d| j        j                             ¦   «         ›d| j        ›�¦  «         ‰�|                      ‰¦  «         	 t          d¦  «         |                      ¦   «         ƒ d {V —† t          d¦  «         | 2 3 d {V —†}t          d|›d| j        ›�¦  «         |                      |¦  «        ƒ d {V —† Œ=6 d S # t          j	        $ r t          d¦  «         Y d S w xY w)Nzecho handler started: server z client zserver starting do_handshakezserver finished do_handshakezechoing ú -> zecho handler channel broken)
Úprintr7   r2   ÚgetsocknameÚpeer_addressÚset_ciphertext_mtuÚdo_handshakeÚsendr1   ÚBrokenResourceError)r@   Úpacketr9   s     €r   Úecho_handlerz&dtls_echo_server.<locals>.echo_handlerO   se  øè è € Ýð<Ø*Ô3Ô:×FÒFÑHÔHð<ð <à*Ô7ð<ð <ñô ð ð
 �?Ø ×3Ò3°CÑ8Ô8Ð8ð
9ÝÐ8Ñ9Ô9Ð9Ø&×3Ò3Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5ÝÐ8Ñ9Ô9Ð9ð )5ð 8ð 8ð 8ð 8ð 8ð 8ð 8˜fÝÐT¨ÐTÐT°|Ô7PÐTÐTÑUÔUÐUØ*×/Ò/°Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ð )5¨¨øõ Ô/ð 9ð 9ð 9ÝÐ7Ñ8Ô8Ð8Ð8Ð8Ð8ð9øøøs   Á:C ÂC	Â8C ÃC.Ã-C.)r@   r
   r   rA   )
r7   r2   Úbindr1   Úopen_nurseryÚstartÚserverE   Úcancel_scopeÚcancel)r   r8   r9   r'   ÚserverÚ	localhostÚnurseryrL   s     `     r   Údtls_echo_serverrV   B   sù  øè è € õ 
�tÐ	Ñ	Ô	ð . Ø!Ð2�E�E {ˆ	ØŒm× Ò  )¨Q Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ÝÔ$Ñ&Ô&ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.¨'ð9ð 9ð 9ð 9ð 9ð 9ð( —-’- ¤¨j¸,ÑGÔGÐGÐGÐGÐGÐGÐGÐGà˜&œ-×3Ò3Ñ5Ô5Ð5Ð5Ð5Ð5Ð5àð .ØÔ$×+Ò+Ñ-Ô-Ð-ð7	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s7   ”AC(ÁA"C
Â8C(Ã

C	ÃC(ÃC	ÃC(Ã(C,Ã/C,r&   rA   c              ƒ  ód  K  — t          | |¬¦  «        4 ƒd {V —†\  }}t          | ¬¦  «        5 }|                     ||¦  «        }t          j        t
          j        ¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         ƒ d {V —† | 	                    d¦  «        ƒ d {V —† | 
                    ¦   «         ƒ d {V —†dk    sJ ‚| 	                    d¦  «        ƒ d {V —† | 
                    ¦   «         ƒ d {V —†dk    sJ ‚t          j        t          d¬¦  «        5  | 	                    d¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |                     d¦  «         |                     ¦   «         }|                     d	¦  «         |                     ¦   «         |k    sJ ‚|                     d¦  «         |                     ¦   «         |k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )
N©r'   r   r>   ó   hellos   goodbyez4^openssl doesn't support sending empty DTLS packets$©Úmatchr   iÒ  iá  )rV   r7   ÚconnectÚpytestÚraisesr1   ÚNeedHandshakeErrorÚget_cleartext_mturH   rI   ÚreceiveÚ
ValueErrorrG   )r'   r   r&   Ú_server_endpointÚaddressÚclient_endpointÚclient_channelÚcleartext_mtu_1234s           r   Ú
test_smokerh   k   s   è è € õ   T°jÐAÑAÔAð Lð Lð Lð Lð Lð Lð Lñ FØØå˜4Ð Ñ Ô ð 	L OØ,×4Ò4°W¸jÑIÔIˆNÝ”�tÔ6Ñ7Ô7ð 3ð 3Ø×0Ò0Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð !×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø ×%Ò% hÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø'×/Ò/Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1°XÒ=Ð=Ð=Ð=Ø ×%Ò% jÑ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ø'×/Ò/Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1°ZÒ?Ð?Ð?Ð?å”ÝØMðñ ô ð /ð /ð %×)Ò)¨#Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ð	/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð ×-Ò-¨dÑ3Ô3Ð3Ø!/×!AÒ!AÑ!CÔ!CÐØ×-Ò-¨dÑ3Ô3Ð3Ø!×3Ò3Ñ5Ô5Ð8JÒJÐJÐJÐJØ×-Ò-¨dÑ3Ô3Ð3Ø!×3Ò3Ñ5Ô5Ð9KÒKÐKÐKÐKÐKð-	Lð 	Lð 	Lñ 	Lô 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Løøøð 	Lð 	Lð 	Lð 	Lð	Lð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð Lð Ls~   šH®5HÁ#BÁ8HÂBÂHÂBÂB.HÄ:E"ÅHÅ"E&Å&HÅ)E&Å*B
HÇ5HÈH	ÈHÈH	È	HÈ
H)È,H)Úautojump_clockútrio.testing.MockClockc           
   ƒ  ó\  ‡‡‡‡K  — d}t          j        d¦  «        Št          ¦   «         Š‰                     ¦   «          d| _        t          |¬¦  «        4 ƒd {V —†\  }}t          j        ¦   «         4 ƒd {V —†Šdˆˆfd	„Šdˆˆfd
„}|‰_        t          |¦  «        D �]D}t          d¦  «         t          d¦  «         t          d¦  «         t          ¦   «         5 }|                     |t          ¦   «         ¦  «        }t          d¦  «         |                     ¦   «         ƒ d {V —† t          d¦  «         t          |¦  «                             ¦   «         }		 t          j        d¦  «        5 }
|                     |	¦  «        ƒ d {V —† |                     ¦   «         ƒ d {V —†|	k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   |
j        snŒq	 d d d ¦  «         n# 1 swxY w Y   �ŒF	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Néd   r   gü©ñÒMbP?©r   rK   r   r   rA   c              “  óò  •K  — 	 ‰                      g d¢g d¢¬¦  «        d         }t          | j        › d| j        › d|› �¦  «         |dk    rd S |d	k    r‰                     | ¦  «         n�|d
k    r0t          j        ‰                     ¦   «         dz  ¦  «        ƒ d {V —† nW|dk    sJ ‚t          | j        › d| j        › d| j         	                    ¦   «         › �¦  «         ‰ 
                    | ¦  «         d S Œô)NT)ÚdeliverÚdropÚdupeÚdelay)gffffffæ?çš™™™™™¹?rs   rs   )Úweightsr   rC   z: rp   rq   rr   é   ro   z: delivered )ÚchoicesrD   ÚsourceÚdestinationÚsend_packetr1   ÚsleepÚrandomÚpayloadÚhexÚdeliver_packet)rK   ÚopÚfnÚrs     €€r   Úroute_packetz:test_handshake_over_terrible_network.<locals>.route_packet›   sL  øè è € ð*ØŸšØ<Ð<Ð<Ø 4Ð 4Ð 4ð #ñ ô ð ô�Bõ ˜Vœ]ÐJÐJ°Ô0BÐJÐJÀbÐJÐJÑKÔKÐKØ˜V’|�|Ø˜Ø˜vš˜ØŸš vÑ.Ô.Ð.Ð.Ø˜wš˜Ý"œj¨¯ª©¬°a©Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ð2  " Yš˜˜˜ÝØ%œ}ð 7ð 7°&Ô2Dð 7ð 7Ø &¤× 2Ò 2Ñ 4Ô 4ð7ð 7ñô ð ð ×)Ò)¨&Ñ1Ô1Ð1Ø˜ðU*r   c                óX   •— 	 ‰                      ‰| ¦  «         d S # t          $ r Y d S w xY wr   )Ú
start_soonÚRuntimeError)rK   rU   r‚   s    €€r   Úroute_packet_wrapperzBtest_handshake_over_terrible_network.<locals>.route_packet_wrapperÈ   sH   ø€ ðØ×&Ò& |°VÑ<Ô<Ð<Ð<Ð<øÝ#ð ð ð ð �D�Dðøøøs   ƒ ›
)¨)zP################################################################################zclient starting do_handshakezclient finished do_handshakeTé
   ©rK   r   r   rA   )r{   ÚRandomr   ÚenableÚautojump_thresholdrV   r1   rN   r‚   ÚrangerD   r7   r\   r#   rH   ÚstrÚencodeÚmove_on_afterrI   ra   Úcancelled_caught)ri   r   Ú
HANDSHAKESÚ_rd   r†   Úire   ÚclientÚmsgÚcscoper€   rU   r�   r‚   s              @@@@r   Ú$test_handshake_over_terrible_networkr—   Œ   sO  øøøøè è € ð
 €JÝŒ�aÑÔ€AÝ	‰Œ€BØ‡I‚I�K„K€Kà(-€NÔ%å¨:Ð6Ñ6Ô6ð K"ð K"ð K"ð K"ð K"ð K"ð K"¹,¸1¸gÝÔ$Ñ&Ô&ð J	"ð J	"ð J	"ð J	"ð J	"ð J	"ð J	"¨'ð+ð +ð +ð +ð +ð +ð +ðZð ð ð ð ð ð ð 3ˆBŒOå˜:Ñ&Ô&ð "ñ "�Ý�h‘”�Ý�h‘”�Ý�h‘”�Ý‘Z”Zð " ?Ø,×4Ò4°W½m¹o¼oÑNÔN�FÝÐ8Ñ9Ô9Ð9Ø ×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ÝÐ8Ñ9Ô9Ð9Ý˜a™&œ&Ÿ-š-™/œ/�Cð"Ý!Ô/°Ñ3Ô3ð A°vØ"(§+¢+¨cÑ"2Ô"2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ø)/¯ªÑ)9Ô)9Ð#9Ð#9Ð#9Ð#9Ð#9Ð#9¸SÒ#@Ð#@Ð#@Ð#@Ð#@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Að  &Ô6ð "Ø!ð"ð
 "ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ùð	"ðs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	"ð J	"ðK"ð K"ð K"ñ K"ô K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"ð K"øøøð K"ð K"ð K"ð K"ð K"ð K"s€   ÁHÁ9A#G7ÃBG	Å-<F6Æ*G	Æ6F:Æ:G	Æ=F:Æ>G	ÇG7ÇGÇG7ÇGÇG7Ç%HÇ7
H	ÈHÈH	ÈHÈ
H%È(H%c              ƒ  óv  K  — t          | ¬¦  «        4 ƒd {V —†\  }}t          ¦   «         5 }|                     ||¦  «        }|                     d¦  «        ƒ d {V —† |                     ¦   «         ƒ d {V —†dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nrm   ó   xyz)rV   r7   r\   rI   ra   ©r   r&   r’   rd   re   r”   s         r   Útest_implicit_handshaker›   æ   sŸ  è è € õ  ¨:Ð6Ñ6Ô6ð 4ð 4ð 4ð 4ð 4ð 4ð 4¹,¸1¸gÝ‰ZŒZð 	4˜?Ø$×,Ò,¨W°jÑAÔAˆFð —+’+˜fÑ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØŸšÑ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)¨VÒ3Ð3Ð3Ð3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s5   ™B(«AB
Á>B(Â
B	ÂB(ÂB	ÂB(Â(
B2Â5B2c           	   ƒ  ó  K  — t          ¦   «         5 }t          ¦   «         5 }|j                             d¦  «        ƒ d {V —† t          j        ¦   «         4 ƒd {V —†}dd„}|                     |j        | |¦  «        ƒ d {V —† |                     |j                             ¦   «         |¦  «        }t          j        ¦   «         4 ƒd {V —†}| 	                    |j
        d¦  «         | 	                    |j        ¦  «         d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   |j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	N©r?   r   Úchannelr
   r   rA   c              “  óð   K  — t          j        ¦   «         4 ƒd {V —†}|                     | j        d¦  «         |                     | j        ¦  «         d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Ns   from server)r1   rN   r„   rI   ra   )rž   rU   s     r   Úhandlerz!test_full_duplex.<locals>.handlerù   sþ   è è € ÝÔ,Ñ.Ô.ð 8ð 8ð 8ð 8ð 8ð 8ð 8°'Ø×&Ò& w¤|°^ÑDÔDÐDØ×&Ò& w¤Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8s   œ6A%Á%
A/Á2A/s   from client©rž   r
   r   rA   )r7   r2   rM   r1   rN   rO   rP   r\   rE   r„   rI   ra   rQ   rR   )r   r&   Úserver_endpointre   Úserver_nurseryr    r”   rU   s           r   Útest_full_duplexr¤   ò   s"  è è € õ 
‰Œð 1�­©
¬
ð 1°oØÔ$×)Ò)Ð*:Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ÝÔ$Ñ&Ô&ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1¨.ð8ð 8ð 8ð 8ð
 !×&Ò& Ô'<¸jÈ'ÑRÔRÐRÐRÐRÐRÐRÐRÐRà$×,Ò,ØÔ&×2Ò2Ñ4Ô4Øñô ˆFõ Ô(Ñ*Ô*ð 3ð 3ð 3ð 3ð 3ð 3ð 3¨gØ×"Ò" 6¤;°Ñ?Ô?Ð?Ø×"Ò" 6¤>Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð Ô'×.Ò.Ñ0Ô0Ð0ð#	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s}   ‘F  :E(ÁA-EÃ6D	Ã=EÄ
DÄEÄDÄEÄ9E(Å
EÅE(ÅEÅE(ÅF Å(E,	Å,F Å/E,	Å0F Æ FÆFc              ƒ  óø  K  — t          | ¬¦  «        4 ƒd {V —†\  }}t          ¦   «         5 }|                     ||¦  «        }|                     ¦   «         ƒ d {V —† |                     ¦   «          t          j        t          j        ¦  «        5  | 	                    d¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          j        t          j        ¦  «        5  | 
                    ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nrm   ó   abc)rV   r7   r\   rH   Úcloser]   r^   r1   ÚClosedResourceErrorrI   ra   Úacloserš   s         r   Útest_channel_closingrª     s¿  è è € õ  ¨:Ð6Ñ6Ô6ð "ð "ð "ð "ð "ð "ð "¹,¸1¸gÝ‰ZŒZð 	"˜?Ø$×,Ò,¨W°jÑAÔAˆFØ×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø�LŠL‰NŒNˆNå”�tÔ7Ñ8Ô8ð *ð *Ø—k’k &Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *å”�tÔ7Ñ8Ô8ð 'ð 'Ø—n’nÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð �LŠL‰NŒNˆNà—-’-‘/”/Ð!Ð!Ð!Ð!Ð!Ð!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s}   ™E)«A#EÂB6Â*EÂ6B:Â:EÂ=B:Â>!EÃDÃ:EÄD
Ä
EÄD
Ä1EÄ?E)ÅE	ÅE)ÅE	ÅE)Å)
E3Å6E3c              ƒ  óÖ   K  — t          d| ¬¦  «        4 ƒd {V —†\  }}|                     ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   |                     ¦   «          d S )NF)r8   r   )rV   r§   )r   r¢   Ú_addresss      r   Ú!test_serve_exits_cleanly_on_closer­     sû   è è € Ý¨5¸ZÐHÑHÔHð  ð  ð  ð  ð  ð  ð  ñ MØØà×ÒÑÔÐð	 ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð ×ÒÑÔÐÐÐs   šAÁ
AÁAc           
   ƒ  ó  K  — t          | ¬¦  «        4 ƒd {V —†	 \  }}t          | ¬¦  «        4 ƒd {V —†	 \  }}t          ¦   «         5 }|                     |t          ¦   «         ¦  «        }|                     |t          ¦   «         ¦  «        }|                     d¦  «        ƒ d {V —† |                     d¦  «        ƒ d {V —† |                     ¦   «         ƒ d {V —†dk    sJ ‚|                     ¦   «         ƒ d {V —†dk    sJ ‚|                     ¦   «          t          j        t          j
        ¦  «        5  |                     d¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          j        t          j
        ¦  «        5  |                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          j        t          j
        ¦  «        5  |                     |t          ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   d
d	„}t          j        ¦   «         4 ƒd {V —†}t          j        t          j
        ¦  «        5  |                     |j        | |¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nrm   r¦   r™   ó   xxxr’   Úobjectr   rA   c              “  ó
   K  — d S r   r%   ©r’   s    r   Únull_handlerz+test_client_multiplex.<locals>.null_handlerA  s   è è € Ø�r   ©r’   r°   r   rA   )rV   r7   r\   r#   rI   ra   r§   r]   r^   r1   r¨   rN   rO   rP   )	r   r’   Úaddress1Úaddress2re   Úclient1Úclient2r³   rU   s	            r   Útest_client_multiplexr¹   *  s~  è è € å JÐ/Ñ/Ô/ðYð Yð Yð Yð Yð Yð Yð YÙ3@°A°xÝ JÐ/Ñ/Ô/ðYð Yð Yð Yð Yð Yð Yð Yá3@°A°xå‰ZŒZð 	Y˜?Ø%×-Ò-¨h½¹¼ÑHÔHˆGØ%×-Ò-¨h½¹¼ÑHÔHˆGà—,’,˜vÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø—,’,˜vÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø ŸšÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*¨fÒ4Ð4Ð4Ð4Ø ŸšÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*¨fÒ4Ð4Ð4Ð4à×!Ò!Ñ#Ô#Ð#å”�tÔ7Ñ8Ô8ð +ð +Ø—l’l 6Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +å”�tÔ7Ñ8Ô8ð (ð (Ø—o’oÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (å”�tÔ7Ñ8Ô8ð Cð CØ×'Ò'¨µ-±/´/ÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cðð ð ð õ Ô(Ñ*Ô*ð Yð Yð Yð Yð Yð Yð Y¨gÝ”]¥4Ô#;Ñ<Ô<ð Yð YØ!Ÿ-š-¨Ô(=¸zÈ<ÑXÔXÐXÐXÐXÐXÐXÐXÐXðYð Yð Yñ Yô Yð Yð Yð Yð Yð Yð Yøøøð Yð Yð Yð YðYð Yð Yñ Yô Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yøøøð Yð Yð Yð Yð+	Yð 	Yð 	Yñ 	Yô 	Yð 	Yð 	Yð 	Yð 	Yð 	Yð 	Yøøøð 	Yð 	Yð 	Yð 	Yð	Yð Yð Yñ Yô Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yøøøð Yð Yð Yð Yð Yð Yð Yñ Yô Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yð Yøøøð Yð Yð Yð Yð Yð Ys  šK5µKÁC-J4Ä4E	ÅJ4ÅE Å J4Å#E Å$!J4ÆF,	Æ J4Æ,F0Æ0J4Æ3F0Æ4!J4Ç#H	Ç8J4ÈHÈJ4ÈHÈ J4È,J	É#I:É.J	É:I>É>J	ÊI>ÊJ	ÊJ4Ê
J!Ê!J4Ê$J!Ê%J4Ê(KÊ4J8Ê8KÊ;J8Ê<KÊ?K5Ë
K	ËK5ËK	ËK5Ë5
K?ÌK?c               ƒ  óü   K  — t           j                             ¦   «         5 } t          j        t          d¬¦  «        5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz#^DTLS requires a SOCK_DGRAM socket$rZ   )r1   r2   r]   r^   rb   r   )Úss    r   Útest_dtls_over_dgram_onlyr¼   I  sñ   è è € Ý	Œ×	Ò	Ñ	Ô	ð  ÝŒ]�:Ð-SÐTÑTÔTð 	ð 	Ý˜‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s4   ¡A1½AÁA1ÁA	ÁA1Á A	Á!A1Á1A5Á8A5c              ƒ  ó0  K  — dd„}t          ¦   «         5 }|j                             d¦  «        ƒ d {V —† t          j        ¦   «         4 ƒd {V —†}|                     |j        | |¦  «        ƒ d {V —† t          j        t          j	        ¦  «        5  |                     |j        | |¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |j
                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t          j        ¦   «         4 ƒd {V —†}|                     |j        | |¦  «        ƒ d {V —† |j
                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr’   r°   r   rA   c              “  ó
   K  — d S r   r%   r²   s    r   r³   z'test_double_serve.<locals>.null_handlerP  s   è è € Øˆr   r�   r´   )r7   r2   rM   r1   rN   rO   rP   r]   r^   ÚBusyResourceErrorrQ   rR   )r   r³   r¢   rU   s       r   Útest_double_serverÀ   O  sO  è è € ðð ð ð õ 
‰Œð *�ØÔ$×)Ò)Ð*:Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ÝÔ$Ñ&Ô&ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*¨'Ø—-’- Ô 5°zÀ<ÑPÔPÐPÐPÐPÐPÐPÐPÐPÝ”�tÔ5Ñ6Ô6ð Uð UØ—m’m OÔ$9¸:À|ÑTÔTÐTÐTÐTÐTÐTÐTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð Ô ×'Ò'Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*õ Ô$Ñ&Ô&ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*¨'Ø—-’- Ô 5°zÀ<ÑPÔPÐPÐPÐPÐPÐPÐPÐPØÔ ×'Ò'Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s~   •:FÁAC5Â#B?Â3C5Â?CÃC5ÃCÃC5Ã#FÃ5
C?	Ã?FÄC?	ÄFÄ<E-ÅFÅ-
E7	Å7FÅ:E7	Å;FÆFÆFútrio.abc.Clockc              ƒ  ó"  K  — t          ¦   «         }|                     ¦   «          t          ¦   «         5 }t          ¦   «         5 }|j                             d¦  «        ƒ d {V —† t          j        d¦  «        5 }|                     |j                             ¦   «         |¦  «        }| 	                    ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |j
        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   rl   )r   rŠ   r7   r2   rM   r1   r�   r\   rE   rH   r�   )ri   r&   r€   r·   r¸   r–   rž   s          r   Útest_connect_to_non_serverrÃ   a  sÉ  è è € õ 
‰Œ€BØ‡I‚I�K„K€KÝ	‰Œð '�w¥¡
¤
ð '¨gØŒn×!Ò!Ð"2Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3åÔ Ñ$Ô$ð 	)¨Ø—o’o g¤n×&@Ò&@Ñ&BÔ&BÀJÑOÔOˆGØ×&Ò&Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð Ô&Ð&Ð&Ð&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'sZ   ³DÁ5C,Á7ACÂ?C,ÃCÃC,ÃCÃC,Ã DÃ,C0	Ã0DÃ3C0	Ã4DÄDÄDÚbuffer_sizer‡   é   Úintc              ƒ  óŽ  K  — t          ¦   «         }|                     ¦   «          t          |¬¦  «        4 ƒd {V —†\  }}t          |¬¦  «        5 }|j        |k    sJ ‚|                     ||¦  «        }t          |dz   ¦  «        D ]V}	|                     t          |	¦  «         	                    ¦   «         ¦  «        ƒ d {V —† t          j        d¦  «        ƒ d {V —† ŒW|                     ¦   «         }
|
j        dk    sJ ‚t          |¦  «        D ]A}	|                     ¦   «         ƒ d {V —†t          |	¦  «         	                    ¦   «         k    sJ ‚ŒB|                     d¦  «        ƒ d {V —† |                     ¦   «         ƒ d {V —†dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nrm   )Úincoming_packets_bufferé   é   s   buffer clear now)r   rŠ   rV   r7   rÈ   r\   rŒ   rI   r�   rŽ   r1   rz   Ú
statisticsÚ incoming_packets_dropped_in_triora   )ri   r   r&   rÄ   r€   r’   rd   re   r”   r“   Ústatss              r   Útest_incoming_buffer_overflowrÎ   o  sò  è è € õ 
‰Œ€BØ‡I‚I�K„K€KÝ¨:Ð6Ñ6Ô6ð Að Að Að Að Að Að A¹,¸1¸gÝ¨kÐ:Ñ:Ô:ð 	A¸oØ"Ô:¸kÒIÐIÐIÐIØ$×,Ò,¨W°jÑAÔAˆFÝ˜;¨Ñ+Ñ,Ô,ð $ð $�Ø—k’k¥# a¡&¤&§-¢-¡/¤/Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ý”j ‘m”mÐ#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø×%Ò%Ñ'Ô'ˆEØÔ9¸RÒ?Ð?Ð?Ð?Ý˜;Ñ'Ô'ð Að A�Ø#Ÿ^š^Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-µ°Q±´·²±´Ò@Ð@Ð@Ð@Ð@Ø—+’+Ð1Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ØŸšÑ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð-@Ò@Ð@Ð@Ð@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	AðAð Að Añ Aô Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að As6   »F4ÁD:FÆ
F4ÆF	ÆF4ÆF	ÆF4Æ4
F>ÇF>c              ƒ  óØ  K  — t          ¦   «         }|                     ¦   «          ddlm}m}m}m}m}m}m	}	  |	 ||j
        |j        d | ||j        ddddt          d¦  «        ¬¦  «        ¦  «        ¬¦  «        ¦  «        }
|
dz   }|
d d…         }|
d d…         }t          |
¦  «        }d	|d
<    |	 ||j
        |j        d | ||j        ddddt          d¦  «        ¬¦  «        ¦  «        ¬¦  «        ¦  «        } |	 ||j
        |j        d | ||j        ddddt          d¦  «        ¬¦  «        ¦  «        dz   ¬¦  «        ¦  «        } |	 ||j
        |j        dd¬¦  «        ¦  «        } |	 ||j
        |j        dt          d¦  «        dz   ¬¦  «        ¦  «        }t          |¬¦  «        4 ƒd {V —†\  }}t           j                             t           j        j        ¬¦  «        5 }dd||||||||f
D ]8}|                     ||¦  «        ƒ d {V —† t!          j        d¦  «        ƒ d {V —† Œ9	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nr   )ÚContentTypeÚHandshakeFragmentÚHandshakeTypeÚProtocolVersionÚRecordÚencode_handshake_fragmentÚencode_recordr‡   )Úmsg_typeÚmsg_lenÚmsg_seqÚfrag_offsetÚfrag_lenÚfrag)Úcontent_typeÚversionÚepoch_seqnor|   ó    éÿÿÿÿé   éÿ   é   rÅ   r   é#   ó   ÿrm   ©r.   r™   rÊ   )r   rŠ   Ú
trio._dtlsrÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   Ú	handshakeÚDTLS10Úclient_helloÚbytesÚ	bytearrayrV   r1   r2   r5   Úsendtorz   )ri   r   r€   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   rë   Úclient_hello_extendedÚclient_hello_shortÚclient_hello_really_shortÚclient_hello_corrupt_record_lenÚclient_hello_fragmentedÚ$client_hello_trailing_data_in_recordÚhandshake_emptyÚ client_hello_truncated_in_cookier’   rd   r6   Ú
bad_packets                          r   Ú*test_server_socket_doesnt_crash_on_garbagerø   ‡  si  è è € õ 
‰Œ€BØ‡I‚I�K„K€Kðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð !�=ØˆØ$Ô.Ø#Ô*ØØ-Ð-Ø!Ð!Ø*Ô7ØØØ !ØÝ˜r™œðñ ô ñ	ô 	ð		
ñ 	
ô 	
ñô €Lð$ )¨7Ñ2ÐØ% c r cÔ*Ðà ,¨S¨b¨SÔ 1ÐÝ&/°Ñ&=Ô&=Ð#Ø*.Ð# BÑ'à+˜mØˆØ$Ô.Ø#Ô*ØØ-Ð-Ø!Ð!Ø*Ô7ØØØ !ØÝ˜r™œðñ ô ñ	ô 	ð		
ñ 	
ô 	
ñô Ðð$ ,9¨=ØˆØ$Ô.Ø#Ô*ØØ-Ð-Ø!Ð!Ø*Ô7ØØØ !ØÝ˜r™œðñ ô ñ	ô 	ð ñ
ð		
ñ 	
ô 	
ñ,ô ,Ð(ð& $�mØˆØ$Ô.Ø#Ô*ØØð		
ñ 	
ô 	
ñô €Oð (5 }ØˆØ$Ô.Ø#Ô*ØÝ˜*Ñ%Ô%¨Ñ/ð		
ñ 	
ô 	
ñ(ô (Ð$õ  ¨:Ð6Ñ6Ô6ð $ð $ð $ð $ð $ð $ð $¹,¸1¸gÝŒ[×Ò¥T¤[Ô%;ÐÑ<Ô<ð 	$ÀàØØ%Ø"Ø)Ø/Ø'Ø4ØØ0ðð $ð $�
ð —k’k *¨gÑ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ý”j ‘m”mÐ#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð$ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s7   Æ53IÇ(AH;È/IÈ;H?	È?IÉH?	ÉIÉ
I#É&I#c              ƒ  ó  ‡‡	‡
‡‡K  — t          ¦   «         Š‰                     ¦   «          ddlmŠmŠ
 t          j        ¦   «         5 Š	t          d¦  «        Šdˆˆ	ˆ
ˆˆfd„}|‰_        t          |¬	¦  «        4 ƒd {V —†\  }}	 t          ¦   «         5 }|                     ||¦  «        }|                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ŒW# 1 ƒd {V —†swxY w Y   	 d d d ¦  «         n# 1 swxY w Y   ‰	j        sJ ‚d S )Nr   )Ú	BadPacketÚdecode_client_hello_untrustedrä   rK   r   r   rA   c                óž  •— 	  ‰| j         ¦  «        \  }}}t          |¦  «        dk    r‚t          | j         ¦  «        }t          ‰	¦  «        }|t          |¦  «        k    r&t          |¦  «        dz
  }‰                     ¦   «          ||xx         dz  cc<   t          j        | |¬¦  «        } n# ‰$ r Y nw xY w‰                     | ¦  «         d S )Nr   rÊ   )r|   )r|   Úlenrí   ÚnextrR   ÚattrsÚevolver~   )
rK   r’   Úcookier|   Úoffsetrú   r–   rû   r€   Úoffset_to_corrupts
        €€€€€r   r‚   z2test_invalid_cookie_rejected.<locals>.route_packet  sì   ø€ ðCØ<Ð<¸V¼^ÑLÔL‘��6˜1õ �v‘;”; !Ò#Ð#õ (¨¬Ñ7Ô7�GÝ!Ð"3Ñ4Ô4�FØ¥ W¡¤Ò-Ð-õ "% W¡¤°Ñ!1˜ØŸš™œ˜Ø˜F�O�O”O tÑ+�O�O‘OÝ"œ\¨&¸'ÐBÑBÔB�Føøð ð ð ð Ø�ðøøøð  ×Ò˜fÑ%Ô%Ð%Ð%Ð%s   ƒB- Â-B5Â4B5rm   Trˆ   )r   rŠ   rè   rú   rû   r1   ÚCancelScoper   r‚   rV   r7   r\   rH   r�   )ri   r   r&   r‚   r’   rd   r”   rž   rú   r–   rû   r€   r  s           @@@@@r   Útest_invalid_cookie_rejectedr  ù  s  øøøøøè è € õ 
‰Œ€BØ‡I‚I�K„K€KàCÐCÐCÐCÐCÐCÐCÐCå	Ô	Ñ	Ô	ð  1˜võ " "™IœIÐð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð* 'ˆŒå#¨zÐ:Ñ:Ô:ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1¹l¸qÀ'ð1Ý‘Z”Zð 1 6Ø$Ÿnšn¨W°jÑAÔA�GØ!×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð1ð	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð9 1ð  1ð  1ñ  1ô  1ð  1ð  1ð  1ð  1ð  1ð  1øøøð  1ð  1ð  1ð  1ðB Ô"Ð"Ð"Ð"Ð"Ð"sT   Á7C6Á<CÂ1CÃ CÃCÃCÃCÃCÃ
C"	Ã"C6Ã%C"	Ã&C6Ã6C:Ã=C:c           	   ƒ  ó^  ‡‡	K  — t          ¦   «         }|                     ¦   «          t          ¦   «         5 }t          ¦   «         5 }|j                             d¦  «        ƒ d {V —† t          j        ¦   «         4 ƒd {V —†}dŠ	dˆˆ	fd„}|                     |j        ||¦  «        ƒ d {V —† t          d¦  «         t          j
        ¦   «         5 Š|                     |j                             ¦   «         t          ¦   «         ¦  «        }|                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ‰j        sJ ‚t          d	¦  «         |                     |j                             ¦   «         t          ¦   «         ¦  «        }|                     ¦   «         ƒ d {V —†d
k    sJ ‚t          j        d¦  «        ƒ d {V —† |j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   Trž   r
   r   rA   c              “  ó¦  •K  — ‰r¡dŠt          d¦  «         ‰                     ¦   «          t          j        d¦  «        ƒ d {V —† t          d¦  «         t	          j        t          j        ¦  «        5  |                      ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S t          d¦  «         |                      d¦  «        ƒ d {V —† d S )NFz'handler: first time, cancelling connectg      à?z"handler: handshake should fail nowz&handler: not first time, sending hellorY   )	rD   rR   r1   rz   r]   r^   rJ   rH   rI   )rž   Úconnect_cscopeÚ
first_times    €€r   r    zAtest_client_cancels_handshake_and_starts_new_one.<locals>.handler3  s:  øè è € àð 
1Ø!&�JÝÐCÑDÔDÐDØ"×)Ò)Ñ+Ô+Ð+Ýœ* S™/œ/Ð)Ð)Ð)Ð)Ð)Ð)Ð)ÝÐ>Ñ?Ô?Ð?Ýœ¥tÔ'?Ñ@Ô@ð 5ð 5Ø%×2Ò2Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5õ ÐBÑCÔCÐCØ!Ÿ,š, xÑ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0s   Á2BÂBÂ!Bzclient: starting first connectzclient: starting second connectrY   r‡   r¡   )r   rŠ   r7   r2   rM   r1   rN   rO   rP   rD   r  r\   rE   r#   rH   r�   ra   rz   rQ   rR   )
ri   r   r€   rS   r”   rU   r    rž   r  r	  s
           @@r   Ú0test_client_cancels_handshake_and_starts_new_oner
  %  s€  øøè è € õ 
‰Œ€BØ‡I‚I�K„K€Kå	‰Œð !*�v�x™zœzð !*¨VØŒm× Ò Ð!1Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ÝÔ$Ñ&Ô&ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*¨'ØˆJð1ð 1ð 1ð 1ð 1ð 1ð 1ð —-’- ¤¨j¸'ÑBÔBÐBÐBÐBÐBÐBÐBÐBåÐ2Ñ3Ô3Ð3ÝÔ!Ñ#Ô#ð - ~Ø Ÿ.š.¨¬×)BÒ)BÑ)DÔ)DÅmÁoÄoÑVÔV�Ø×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð "Ô2Ð2Ð2Ð2åÐ3Ñ4Ô4Ð4Ø—n’n V¤]×%>Ò%>Ñ%@Ô%@Å-Á/Ä/ÑRÔRˆGØ ŸšÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*¨hÒ6Ð6Ð6Ð6õ ”*˜R‘.”.Ð Ð Ð Ð Ð Ð Ð ØÔ ×'Ò'Ñ)Ô)Ð)ð?	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð!*ð !*ð !*ñ !*ô !*ð !*ð !*ð !*ð !*ð !*ð !*øøøð !*ð !*ð !*ð !*ð !*ð !*ð !*ñ !*ô !*ð !*ð !*ð !*ð !*ð !*ð !*ð !*øøøð !*ð !*ð !*ð !*ð !*ð !*s€   µH"Á:H
Á>AG-ÃAD,	Ä G-Ä,D0Ä0G-Ä3D0Ä4B'G-ÇH
Ç-
G7Ç7H
Ç:G7Ç;H
Ç>H"È
H	ÈH"ÈH	ÈH"È"H&È)H&c           	   ƒ  ó  ‡K  — t          ¦   «         5 }t          ¦   «         5 }|j                             d¦  «        ƒ d {V —† |j                             d¦  «        ƒ d {V —† dd„Šdˆfd„}t          j        ¦   «         4 ƒd {V —†}|                     |j        | |¦  «        ƒ d {V —† |                     |j        | ‰¦  «        ƒ d {V —† |                     |j                             ¦   «         t          ¦   «         ¦  «        }| 
                    d¦  «        ƒ d {V —† |                     ¦   «         ƒ d {V —†dk    sJ ‚|                     |j                             ¦   «         t          ¦   «         ¦  «        }|                     ¦   «         ƒ d {V —† t          j        t          j        ¦  «        5  | 
                    d	¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   | 
                    d
¦  «        ƒ d {V —† |                     ¦   «         ƒ d {V —†d
k    sJ ‚|j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   rž   r
   r   rA   c              “  óV   K  — | 2 3 d {V —†}|                       |¦  «        ƒ d {V —† Œ#6 d S r   )rI   )rž   rK   s     r   rL   z-test_swap_client_server.<locals>.echo_handlerW  s^   è è € Ø 'ð +ð +ð +ð +ð +ð +ð +�fØ—l’l 6Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð !(  s   …(c              “  óœ   •K  — t          j        t          j        ¦  «        5   ‰| ¦  «        ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S r   )r]   r^   r1   rJ   )rž   rL   s    €r   Úcrashing_echo_handlerz6test_swap_client_server.<locals>.crashing_echo_handler[  s    øè è € Ý”�tÔ7Ñ8Ô8ð ,ð ,Ø"�l 7Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s   ¢AÁAÁAs   b as clients   association brokens   a as clientr¡   )r7   r2   rM   r1   rN   rO   rP   r\   rE   r#   rI   ra   rH   r]   r^   rJ   rQ   rR   )r   ÚaÚbr  rU   Úb_to_aÚa_to_brL   s          @r   Útest_swap_client_serverr  R  s  øè è € Ý	‰Œð *�q�(™*œ*ð *¨ØŒh�mŠmÐ,Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØŒh�mŠmÐ,Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð	+ð 	+ð 	+ð 	+ð	,ð 	,ð 	,ð 	,ð 	,ð 	,õ Ô$Ñ&Ô&ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*¨'Ø—-’- ¤¨Ð5JÑKÔKÐKÐKÐKÐKÐKÐKÐKØ—-’- ¤¨°\ÑBÔBÐBÐBÐBÐBÐBÐBÐBà—Y’Y˜qœx×3Ò3Ñ5Ô5µ}±´ÑGÔGˆFØ—+’+˜nÑ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØŸšÑ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)¨^Ò;Ð;Ð;Ð;à—Y’Y˜qœx×3Ò3Ñ5Ô5µ}±´ÑGÔGˆFØ×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ý”�tÔ7Ñ8Ô8ð 9ð 9Ø—k’kÐ"7Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9à—+’+˜nÑ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØŸšÑ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)¨^Ò;Ð;Ð;Ð;àÔ ×'Ò'Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s   ’I=¡A$I%ÂD*IÆ/G	ÇIÇGÇIÇGÇAIÈ6I%É
IÉI%ÉIÉI%ÉI=É%I)	É)I=É,I)	É-I=É=JÊJc              ƒ  óœ  ‡‡‡‡‡	K  — t          ¦   «         Š	‰	                     ¦   «          dŠdˆˆ	fd„}|‰	_        t          | ¬¦  «        4 ƒd {V —†\  }Št	          ¦   «         5 Št          j        ¦   «         4 ƒd {V —†}dˆˆˆfd„}|                     |¦  «         t          j        d	¦  «        ƒ d {V —† d
Š|j	         
                    d‰j	                             ¦   «         ¦  «        ƒ d {V —† d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )NTrK   r   r   rA   c                óz   •— ‰rt          d| ¦  «         d S t          d| ¦  «         ‰                     | ¦  «         d S )Nzdropped packetzdelivered packet)rD   r~   ©rK   Ú
blackholedr€   s    €€r   r‚   z@test_openssl_retransmit_doesnt_break_stuff.<locals>.route_packet}  sN   ø€ Øð 	ÝÐ" FÑ+Ô+Ð+ØˆFÝÐ  &Ñ)Ô)Ð)ð 	×Ò˜&Ñ!Ô!Ð!Ð!Ð!r   rm   c               “  óæ   •K  — ‰                      ‰‰¦  «        } |                      d¬¦  «        ƒ d {V —† |                      d¦  «        ƒ d {V —† |                      ¦   «         ƒ d {V —†dk    sJ ‚d S )Ng      ø?©Úinitial_retransmit_timeoutó   hi)r\   rH   rI   ra   )r”   rd   r&   re   s    €€€r   Ú	connecterz=test_openssl_retransmit_doesnt_break_stuff.<locals>.connecter‘  sœ   øè è € Ø,×4Ò4°W¸jÑIÔI�FØ ×-Ò-ÈÐ-ÑMÔMÐMÐMÐMÐMÐMÐMÐMØ Ÿ+š+ eÑ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø!'§¢Ñ!1Ô!1Ð1Ð1Ð1Ð1Ð1Ð1°UÒ:Ð:Ð:Ð:Ð:Ð:r   gš™™™™™ñ?Fr¯   rˆ   ©r   rA   )r   rŠ   r‚   rV   r7   r1   rN   r„   rz   r2   rî   rE   )
r   r&   r‚   r¢   rU   r  rd   r  re   r€   s
    `    @@@@r   Ú*test_openssl_retransmit_doesnt_break_stuffr  q  sñ  øøøøøè è € õ 
‰Œ€BØ‡I‚I�K„K€Kà€Jð"ð "ð "ð "ð "ð "ð "ð #€B„Oå¨:Ð6Ñ6Ô6ð ð ð ð ð ð ð Ñ:T¸?ÈGÝ‰ZŒZð 	˜?ÝÔ(Ñ*Ô*ð ð ð ð ð ð ð ¨gð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ×"Ò" 9Ñ-Ô-Ð-õ ”j ‘o”oÐ%Ð%Ð%Ð%Ð%Ð%Ð%ð #�
Ø%Ô,×3Ò3ØØ#Ô*×6Ò6Ñ8Ô8ñô ð ð ð ð ð ð ð ð!ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð s[   ÁD;Á"DÁ<A2D Ã.DÄ 
D
Ä
DÄD
ÄDÄD;ÄD!	Ä!D;Ä$D!	Ä%D;Ä;
EÅEc              ƒ  ó*  ‡
‡K  — t          ¦   «         Š‰                     ¦   «          dŠ
d
ˆ
ˆfd„}|‰_        t          |¬¦  «        4 ƒd {V —†\  }}dD ]š}t	          ¦   «         5 }t          j        ¦   «         }dŠ
|                     |t          ¦   «         ¦  «        }| 	                    |¬	¦  «        ƒ d {V —† t          j        ¦   «         }	|	|z
  |k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   Œ›	 d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )NTrK   r   r   rA   c                ó>   •— ‰rdŠd S ‰                      | ¦  «         d S )NF)r~   r  s    €€r   r‚   zCtest_initial_retransmit_timeout_configuration.<locals>.route_packet°  s.   ø€ àð 	&ØˆJˆJˆJà×Ò˜fÑ%Ô%Ð%Ð%Ð%r   rm   )rÊ   r   é   r  rˆ   )
r   rŠ   r‚   rV   r7   r1   Úcurrent_timer\   r#   rH   )ri   r   r‚   r’   rd   Útr”   Úbeforerž   Úafterr  r€   s             @@r   Ú-test_initial_retransmit_timeout_configurationr&  ¨  s  øøè è € õ 
‰Œ€BØ‡I‚I�K„K€Kà€Jð&ð &ð &ð &ð &ð &ð &ð #€B„Oå¨:Ð6Ñ6Ô6ð +ð +ð +ð +ð +ð +ð +¹,¸1¸gØð 	+ð 	+ˆAÝ‘”ð +˜vÝÔ*Ñ,Ô,�Ø!�
Ø Ÿ.š.¨µ-±/´/ÑBÔB�Ø×*Ò*ÀaÐ*ÑHÔHÐHÐHÐHÐHÐHÐHÐHÝÔ)Ñ+Ô+�Ø˜v‘~¨Ò*Ð*Ð*Ð*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øð	+ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s7   ÁDÁ#A2C"ÃDÃ"C&Ã&DÃ)C&Ã*DÄ
DÄDc              ƒ  ó>  ‡‡K  — dŠt          ¦   «         Š‰                     ¦   «          d	ˆˆfd„}|‰_        t          ‰| ¬¦  «        4 ƒd {V —†\  }}t	          ¦   «         5 }|                     ||¦  «        }|                     ‰¦  «         |                     ¦   «         ƒ d {V —† |                     d¦  «        ƒ d {V —† | 	                    ¦   «         ƒ d {V —†dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )
Ni,  rK   r   r   rA   c                óÒ   •— t          d| › �¦  «         t          dt          | j        ¦  «        › �¦  «         t          | j        ¦  «        ‰k    sJ ‚‰                     | ¦  «         d S )Núdelivering zpayload size: )rD   rý   r|   r~   )rK   ÚMTUr€   s    €€r   r‚   z9test_explicit_tiny_mtu_is_respected.<locals>.route_packetÎ  sp   ø€ ÝÐ$˜FÐ$Ð$Ñ%Ô%Ð%ÝÐ4�s 6¤>Ñ2Ô2Ð4Ð4Ñ5Ô5Ð5Ý�6”>Ñ"Ô" cÒ)Ð)Ð)Ð)Ø
×Ò˜&Ñ!Ô!Ð!Ð!Ð!r   )r9   r   r  rˆ   )
r   rŠ   r‚   rV   r7   r\   rG   rH   rI   ra   )	r   r&   r‚   Ú_serverrd   r”   rž   r*  r€   s	          @@r   Ú#test_explicit_tiny_mtu_is_respectedr,  Ä  s  øøè è € ð
 €Cå	‰Œ€BØ‡I‚I�K„K€Kð"ð "ð "ð "ð "ð "ð "ð #€B„Oå C°JÐ?Ñ?Ô?ð 4ð 4ð 4ð 4ð 4ð 4ð 4ÑCUÀGÈWÝ‰ZŒZð 	4˜6Ø—n’n W¨jÑ9Ô9ˆGØ×&Ò& sÑ+Ô+Ð+Ø×&Ò&Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø—,’,˜uÑ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø ŸšÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*¨eÒ3Ð3Ð3Ð3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s7   ÁDÁ BC.Ã"DÃ.C2	Ã2DÃ5C2	Ã6DÄ
DÄDc              ƒ  óJ  ‡	‡
K  — t          ¦   «         Š	‰	                     ¦   «          | rdndŠ
dˆ	ˆ
fd„}|‰	_        t          | |¬¦  «        4 ƒd {V —†\  }}t	          | ¬	¦  «        5 }|                     ||¦  «        }|                     d
¦  «         |                     d¦  «        ƒ d {V —† |                     ¦   «         ƒ d {V —†dk    sJ ‚| 	                    ¦   «         dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )NiÐ  i$  rK   r   r   rA   c                ó®   •— t          | j        ¦  «        ‰k    rt          d| › �¦  «         d S t          d| › �¦  «         ‰                     | ¦  «         d S )Nz	dropping r)  )rý   r|   rD   r~   )rK   r€   r9   s    €€r   r‚   z@test_handshake_handles_minimum_network_mtu.<locals>.route_packetì  sf   ø€ ÝˆvŒ~ÑÔ Ò$Ð$ÝÐ&˜fÐ&Ð&Ñ'Ô'Ð'Ð'Ð'åÐ( Ð(Ð(Ñ)Ô)Ð)Ø×Ò˜fÑ%Ô%Ð%Ð%Ð%r   rX   r>   i'  r™   i(#  rˆ   )
r   rŠ   r‚   rV   r7   r\   rG   rI   ra   r`   )r'   ri   r   r&   r‚   r’   rd   re   r”   r€   r9   s            @@r   Ú*test_handshake_handles_minimum_network_mtur/  ß  s-  øøè è € õ 
‰Œ€BØ‡I‚I�K„K€KàÐ
)ˆ)ˆ) €Cð&ð &ð &ð &ð &ð &ð &ð #€B„Oõ
   T°jÐAÑAÔAð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5Á\ÀaÈÝ˜4Ð Ñ Ô ð 	5 OØ$×,Ò,¨W°jÑAÔAˆFð ×%Ò% dÑ+Ô+Ð+Ø—+’+˜fÑ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØŸšÑ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)¨VÒ3Ð3Ð3Ð3Ø×+Ò+Ñ-Ô-°Ò4Ð4Ð4Ð4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s7   ÁDÁ&BC4Ã(DÃ4C8	Ã8DÃ;C8	Ã<DÄ
DÄDz$always:unclosed DTLS:ResourceWarningc              ƒ  óò  ‡ K  — t           j                             ¦   «         j        }dˆ fd„}t	          j        t          ¦  «        5   |¦   «         ƒ d {V —†}t           j                             ¦   «         ƒ d {V —† t          ¦   «          d d d ¦  «         n# 1 swxY w Y   t           j                             ¦   «         ƒ d {V —† t           j                             ¦   «         j        }||k     sJ ‚||k    sJ ‚d S )Nr   rÆ   c               “  óª  •K  — t          ¦   «         } t          j                             t          j        j        ¬¦  «        5 }|                     d¦  «        ƒ d {V —† |                      |                     ¦   «         ‰¦  «        }t          j        ¦   «         4 ƒd {V —†}|                     |j	        ¦  «         t          j
                             ¦   «         ƒ d {V —† |j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j                             ¦   «         j        }|S )Nrç   r�   )r7   r1   r2   r5   rM   r\   rE   rN   r„   rH   ÚtestingÚwait_all_tasks_blockedrQ   rR   ÚlowlevelÚcurrent_statisticsÚtasks_living)Úer»   ÚcrU   Úduring_tasksr&   s        €r   Ústart_and_forget_endpointzDtest_system_task_cleaned_up_on_gc.<locals>.start_and_forget_endpoint  sì  øè è € Ý‰JŒJˆõ Œ[×Ò¥T¤[Ô%;ÐÑ<Ô<ð 	.ÀØ—&’&Ð)Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ø—	’	˜!Ÿ-š-™/œ/¨:Ñ6Ô6ˆAÝÔ(Ñ*Ô*ð .ð .ð .ð .ð .ð .ð .¨gØ×"Ò" 1¤>Ñ2Ô2Ð2Ý”l×9Ò9Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØÔ$×+Ò+Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.õ ”}×7Ò7Ñ9Ô9ÔFˆØÐs8   ÁAD%ÂADÃ6D%Ä
D	ÄD%ÄD	ÄD%Ä%D)Ä,D))r   rÆ   )
r1   r4  r5  r6  r]   ÚwarnsÚResourceWarningr2  r3  r   )r&   Úbefore_tasksr:  r9  Úafter_taskss   `    r   Ú!test_system_task_cleaned_up_on_gcr?    sZ  øè è € å”=×3Ò3Ñ5Ô5ÔB€Lðð ð ð ð ð õ  
Œ•oÑ	&Ô	&ð ð Ø6Ð6Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆÝŒl×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ÝÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ
 Œ,×
-Ò
-Ñ
/Ô
/Ð/Ð/Ð/Ð/Ð/Ð/Ð/å”-×2Ò2Ñ4Ô4ÔA€KØ˜,Ò&Ð&Ð&Ð&Ø˜;Ò&Ð&Ð&Ð&Ð&Ð&s   ÁABÂBÂBc               ƒ  óî   K  — t          ¦   «         } t          j        t          ¦  «        5  ~ t	          ¦   «          d d d ¦  «         n# 1 swxY w Y   t
          j                             ¦   «         ƒ d {V —† d S r   )r7   r]   r;  r<  r   r1   r2  r3  ©r7  s    r   Ú!test_gc_before_system_task_startsrB  (  s±   è è € å‰
Œ
€Aå	Œ•oÑ	&Ô	&ð ð ØÝÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Œ,×
-Ò
-Ñ
/Ô
/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/s   ªAÁA
ÁA
c               ƒ  ó�  K  — t          ¦   «         } |                      ¦   «          t          ¦   «         }|j                             d¦  «        ƒ d {V —† |                     ¦   «          t          j                             ¦   «         ƒ d {V —† t          j                             t          j        j	        ¬¦  «        5 }| 
                    d|j                             ¦   «         ¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  ~t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   rç   r¯   )r   rŠ   r7   r2   rM   Ú_ensure_receive_loopr1   r2  r3  r5   rî   rE   r]   r;  r<  r   )r€   r7  r»   s      r   Útest_gc_as_packet_receivedrE  3  s­  è è € å	‰Œ€BØ‡I‚I�K„K€Kå‰
Œ
€AØ
Œ(�-Š-Ð(Ñ
)Ô
)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø×ÒÑÔÐå
Œ,×
-Ò
-Ñ
/Ô
/Ð/Ð/Ð/Ð/Ð/Ð/Ð/å	Œ×	Ò	¥¤Ô!7Ð	Ñ	8Ô	8ð 7¸AØ�hŠh�v˜qœx×3Ò3Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7õ
 
Œ•oÑ	&Ô	&ð ð ØÝÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   Â:4C:Ã:C>ÄC>ÄD;Ä;D?ÅD?c                 ó¸   — dd„} t          j        | ¦  «        }t          j        t          ¦  «        5  ~t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   c               “  óf   K  — t          ¦   «         } |                      ¦   «          t          ¦   «         S r   )r   rŠ   r7   )r€   s    r   Úmainz&test_gc_after_trio_exits.<locals>.mainJ  s(   è è € õ
 ‰YŒYˆØ
�	Š	‰ŒˆÝ‰zŒzÐr   )r   r   )r1   Úrunr]   r;  r<  r   )rH  r7  s     r   Útest_gc_after_trio_exitsrJ  H  s¨   € ðð ð ð õ 	Œ�‰Œ€AÝ	Œ•oÑ	&Ô	&ð ð ØÝÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ²AÁAÁAc               ƒ  óÒ   K  — t          ¦   «         5 } | j                             ¦   «          t          j                             ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S r   )r7   r2   r§   r1   r2  r3  rA  s    r   Ú'test_already_closed_socket_doesnt_crashrL  Y  s«   è è € Ý	‰Œð 4�qð 	
Œ�ŠÑÔÐåŒl×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s   ‘>AÁA Á#A c              ƒ  óî  ‡‡K  — t          ¦   «         Š‰                     ¦   «          t          |¬¦  «        4 ƒd {V —†\  Š}dˆˆfd„}|‰_        t	          ¦   «         5 }t          j        d¦  «        5  |                     ||¦  «        }|                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )	Nrm   rK   r   r   rA   c                ód   •— ‰                      | ¦  «         ‰j                             ¦   «          d S r   )r~   r2   r§   )rK   r€   rS   s    €€r   r‚   zEtest_socket_closed_while_processing_clienthello.<locals>.route_packetl  s1   ø€ Ø×Ò˜fÑ%Ô%Ð%ØŒM×ÒÑ!Ô!Ð!Ð!Ð!r   r‡   rˆ   )	r   rŠ   rV   r‚   r7   r1   r�   r\   rH   )	ri   r   r&   rd   r‚   re   r”   r€   rS   s	          @@r   Ú/test_socket_closed_while_processing_clienthellorO  b  s  øøè è € õ 
‰Œ€BØ‡I‚I�K„K€Kõ  ¨:Ð6Ñ6Ô6ð ,ð ,ð ,ð ,ð ,ð ,ð ,Ñ:K¸6À7ð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 'ˆŒå‰ZŒZð 	,˜?ÝÔ# BÑ'Ô'ð ,ð ,Ø(×0Ò0°¸*ÑEÔE�Ø×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,sY   ½ C$ÁCÁ21B/Â#CÂ/B3Â3CÂ6B3Â7CÂ:C$ÃC
	Ã
C$ÃC
	ÃC$Ã$
C.Ã1C.c              ƒ  óš  ‡	K  — t          ¦   «         }|                     ¦   «          d	d„}||_        t          |¬¦  «        4 ƒd {V —†\  }}t	          ¦   «         5 }|                     |t          ¦   «         ¦  «        Š	t          j        ¦   «         4 ƒd {V —†}d
ˆ	fd„}| 	                    |¦  «         t          j
        d¦  «        ƒ d {V —† |                     |t          ¦   «         ¦  «         d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )NrK   r   r   rA   c                ó   — d S r   r%   ©rK   s    r   r‚   zGtest_association_replaced_while_handshake_running.<locals>.route_packet~  s   € Øˆr   rm   c               “  ó®   •K  — t          j        t          j        ¦  «        5  ‰                      ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S r   )r]   r^   r1   rJ   rH   )Úc1s   €r   Údoomed_handshakezKtest_association_replaced_while_handshake_running.<locals>.doomed_handshake‰  s    øè è € Ýœ¥tÔ'?Ñ@Ô@ð 0ð 0Ø ŸošoÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s   ¢A
Á
AÁAr‡   rˆ   r  )r   rŠ   r‚   rV   r7   r\   r#   r1   rN   r„   rz   )
ri   r   r€   r‚   r’   rd   re   rU   rU  rT  s
            @r   Ú1test_association_replaced_while_handshake_runningrV  x  s  øè è € õ 
‰Œ€BØ‡I‚I�K„K€Kðð ð ð ð #€B„Oå¨:Ð6Ñ6Ô6ð Bð Bð Bð Bð Bð Bð B¹,¸1¸gÝ‰ZŒZð 	B˜?à ×(Ò(¨µ-±/´/ÑBÔBˆBÝÔ(Ñ*Ô*ð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
B¨gð0ð 0ð 0ð 0ð 0ð 0ð ×"Ò"Ð#3Ñ4Ô4Ð4å”j ‘n”nÐ$Ð$Ð$Ð$Ð$Ð$Ð$à×'Ò'¨µ±´ÑAÔAÐAð
Bð 
Bð 
Bñ 
Bô 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bð 
Bøøøð 
Bð 
Bð 
Bð 
Bð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	BðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs[   ÁD:Á<DÂAC?Ã-DÃ?
D	Ä	DÄD	ÄDÄD:ÄD 	Ä D:Ä#D 	Ä$D:Ä:
EÅEc              ƒ  óT  K  — t          ¦   «         }|                     ¦   «          dd„}||_        t          | ¬¦  «        4 ƒd {V —†\  }}t	          ¦   «         5 }|                     |t          ¦   «         ¦  «        }|                     |t          ¦   «         ¦  «         t          j        t          j
        ¦  «        5  |                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )NrK   r   r   r   c                ó   — t          ¦   «         ‚r   )ÚAssertionErrorrR  s    r   r‚   zGtest_association_replaced_before_handshake_starts.<locals>.route_packet›  s   € ÝÑÔÐr   rm   )rK   r   r   r   )r   rŠ   r‚   rV   r7   r\   r#   r]   r^   r1   rJ   rH   )r   r€   r‚   r’   rd   re   rT  s          r   Ú1test_association_replaced_before_handshake_startsrZ  ”  s$  è è € õ 
‰Œ€BØ‡I‚I�K„K€Kðð ð ð ð #€B„Oå¨:Ð6Ñ6Ô6ð (ð (ð (ð (ð (ð (ð (¹,¸1¸gÝ‰ZŒZð 	(˜?à ×(Ò(¨µ-±/´/ÑBÔBˆBØ×#Ò# G­]©_¬_Ñ=Ô=Ð=Ý”�tÔ7Ñ8Ô8ð (ð (Ø—o’oÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð		(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s[   ÁDÁA#C9Â;C"ÃC9Ã"C&Ã&C9Ã)C&Ã*C9Ã-DÃ9C=	Ã=DÄ C=	ÄDÄ
D!Ä$D!c           	   ƒ  óÚ  K  — t          | ¬¦  «        4 ƒd {V —†\  }}t          ¦   «         5 }t          j        ¦   «         4 ƒd {V —†}t	          dd¦  «        D ]@}|                     d|ft          ¦   «         ¦  «        }|                     |j        ¦  «         ŒA|                     |t          ¦   «         ¦  «        }| 	                    d¦  «        ƒ d {V —† | 
                    ¦   «         ƒ d {V —†dk    sJ ‚|j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nrm   rÊ   r‡   r?   r¯   )rV   r7   r1   rN   rŒ   r\   r#   r„   rH   rI   ra   rQ   rR   )r   r’   rd   re   rU   r“   rž   s          r   Útest_send_to_closed_local_portr\  ©  s½  è è € õ  ¨:Ð6Ñ6Ô6ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.¹,¸1¸gÝ‰ZŒZð 	.˜?ÝÔ(Ñ*Ô*ð .ð .ð .ð .ð .ð .ð .¨gÝ˜q "™œð =ð =�AØ-×5Ò5°{ÀAÐ6FÍÉÌÑXÔX�GØ×&Ò& wÔ';Ñ<Ô<Ð<Ð<Ø)×1Ò1°'½=¹?¼?ÑKÔK�Ø—l’l 6Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ø$Ÿ_š_Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.°&Ò8Ð8Ð8Ð8ØÔ$×+Ò+Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.sY   ™E«D<ÁCDÄD<Ä
D)Ä)D<Ä,D)Ä-D<Ä0EÄ<E 	Å EÅE 	ÅEÅ
E$Å'E$)r   r   )r+   r,   r   r   )
r   r   r8   r:   r9   r;   r'   r:   r   r<   )r'   r:   r   r   r&   r   r   rA   )ri   rj   r   r   r   rA   )r   r   r&   r   r   rA   )r   r   r   rA   r  )ri   rÁ   r&   r   r   rA   )
ri   rÁ   r   r   r&   r   rÄ   rÆ   r   rA   )ri   rÁ   r   r   r   rA   )ri   rÁ   r   r   r&   r   r   rA   )
r'   r:   ri   rÁ   r   r   r&   r   r   rA   )r&   r   r   rA   )KÚ
__future__r   r{   Ú
contextlibr   Ú	itertoolsr   Útypingr   r   rÿ   r]   Útrio._tests.pytest_pluginr   ÚtrustmeÚOpenSSLr	   ÚImportErrorÚerrorr1   Útrio.testingr
   r   Útrio.testing._fake_netr   r   Ú_core._tests.tutilr   r   r   Úcollections.abcr   ÚCAr!   Ú
issue_certr   Úfixturer   r#   r&   ÚmarkÚparametrizeÚparamÚparametrize_ipv6r7   rV   rh   r—   r›   r¤   rª   r­   r¹   r¼   rÀ   rÃ   rÎ   rø   r  r
  r  r  r&  r,  r/  Úfilterwarningsr?  rB  rE  rJ  rL  rO  rV  rZ  r\  r%   r   r   ú<module>rr     s�  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à €€€Ø €€€à AÐ AÐ AÐ AÐ AÐ Að'Ø€N€N€NØÐÐÐÐÐÐøØð 'ð 'ð 'ØÐ Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&øøøøð'øøøð €€€Ø Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dàð /Ø.Ð.Ð.Ð.Ð.Ð.à€W„Z�\„\€Ø�mŠm˜MÑ*Ô*€ð „ðð ð ñ „ððð ð ð ð „ðð ð ñ „ðð ”;×*Ò*Ø
Ø
ˆLˆFŒL˜ ZÐ0Ñ0Ô0Ð1Ø	�Ðð +ñ ô Ð ð(ð (ð (ð (ð ð ØØð%.ð %.ð %.ð %.ð %.ñ Ôð%.ðP ðLð Lð Lñ ÔðLð@ ðV"ð V"ð V"ñ „ðV"ðr	4ð 	4ð 	4ð 	4ð1ð 1ð 1ð 1ð2"ð "ð "ð "ð(ð ð ð ðYð Yð Yð Yð>ð ð ð ð*ð *ð *ð *ð$'ð 'ð 'ð 'ð „×Ò˜¨¨R¨Ñ1Ô1ðAð Að Añ 2Ô1ðAð.o$ð o$ð o$ð o$ðd)#ð )#ð )#ð )#ðX**ð **ð **ð **ðZ*ð *ð *ð *ð> ð0ð 0ð 0ñ „ð0ðl+ð +ð +ð +ð84ð 4ð 4ð 4ð6 ð!5ð !5ð !5ñ Ôð!5ðH „×ÒÐBÑCÔCð 'ð  'ð  'ñ DÔCð 'ðF „×ÒÐBÑCÔCð0ð 0ð 0ñ DÔCð0ð „×ÒÐBÑCÔCðð ð ñ DÔCðð( „×ÒÐBÑCÔCðð ð ñ DÔCðð 4ð 4ð 4ð 4ð,ð ,ð ,ð ,ð,Bð Bð Bð Bð8(ð (ð (ð (ð*.ð .ð .ð .ð .ð .s   ®
9 ¹A¾AÁA