Ë
    bQbjlG  ã                  óê  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZ d dlZd dlZd dlmZmZ e	r&d dlZd dlmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZ ej>                  ej@                  z  Z!d
e"d<   d d„Z#d!d„Z$d!d„Z%d"d„Z&d#d„Z'ejP                   G d„ d«      «       Z)ejP                   G d„ d«      «       Z*ejP                   G d„ d«      «       Z+ejP                   G d„ dejX                  jZ                  «      «       Z.ejP                   G d„ dejX                  j^                  «      «       Z0e G d„ d«      «       Z1e G d„ dej                  jd                  e¬«      «       Z3y)$é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚNoReturnÚ	TypeAliasÚoverload)ÚNoPublicConstructorÚfinal)ÚIterable)ÚAddressFamilyÚ
SocketKind)ÚTracebackType)ÚBufferÚSelf)ÚAddressFormatr   Ú	IPAddressc                óè   — t        | t        j                  «      rt        j                  j
                  S t        | t        j                  «      rt        j                  j                  S t        d«      ‚)Nz!Unhandled IPAddress instance type)	Ú
isinstanceÚ	ipaddressÚIPv4AddressÚtrioÚsocketÚAF_INETÚIPv6AddressÚAF_INET6ÚNotImplementedError)Úips    úI/var/www/html/venv/lib/python3.12/site-packages/trio/testing/_fake_net.pyÚ_family_forr   %   sN   € Ü�"”i×+Ñ+Ô,Ü�{‰{×"Ñ"Ð"Ü	�Bœ	×-Ñ-Ô	.Ü�{‰{×#Ñ#Ð#Ü
ÐAÓ
BÐBó    c                óà   — | t         j                  j                  k(  rt        j                  d«      S | t         j                  j
                  k(  rt        j                  d«      S t        d«      ‚)Nú0.0.0.0ú::úUnhandled ip address family©r   r   r   r   Ú
ip_addressr   r   ©Úfamilys    r   Ú_wildcard_ip_forr)   -   sT   € Ø”—‘×$Ñ$Ò$Ü×#Ñ# IÓ.Ð.Ø	”4—;‘;×'Ñ'Ò	'Ü×#Ñ# DÓ)Ð)Ü
Ð;Ó
<Ð<r    c                óà   — | t         j                  j                  k(  rt        j                  d«      S | t         j                  j
                  k(  rt        j                  d«      S t        d«      ‚)Nú	127.0.0.1ú::1r$   r%   r'   s    r   Ú_localhost_ip_forr-   6   sT   € Ø”—‘×$Ñ$Ò$Ü×#Ñ# KÓ0Ð0Ø	”4—;‘;×'Ñ'Ò	'Ü×#Ñ# EÓ*Ð*Ü
Ð;Ó
<Ð<r    c                ó@   — t        | t        j                  | «      «      ‚©N)ÚOSErrorÚosÚstrerror)Úcodes    r   Ú	_fake_errr4   >   s   € Ü
�$œŸ™ DÓ)Ó
*Ð*r    c                óè   — d}|D ]^  }| ||t        |«      j                  z    }t        |«      5 }||d t        |«       d d d «       |t        |«      z  }|t        | «      k(  sŒ] |S  |S # 1 sw Y   Œ,xY w)Nr   )Ú
memoryviewÚnbytesÚlen)ÚdataÚbuffersÚwrittenÚbufÚ
next_pieceÚmbufs         r   Ú_scatterr?   B   s‰   € Ø€GØò ˆØ˜' G¬j¸«o×.DÑ.DÑ$DÐEˆ
Ü˜‹_ð 	1 Ø&0ˆDÐ"”3�z“?Ð#÷	1à”3�z“?Ñ"ˆØ”c˜$“iÓØØ€Nðð €N÷	1ð 	1ús   ®A(Á(A1	c                  óD   — e Zd ZU ded<   ded<   dd„Ze	 	 	 	 d	d„«       Zy)
ÚUDPEndpointr   r   ÚintÚportc                óœ   — | j                   j                  | j                  f}t        | j                   t        j
                  «      r|dz  }|S )N©r   r   )r   Ú
compressedrC   r   r   r   )ÚselfÚsockaddrs     r   Úas_python_sockaddrzUDPEndpoint.as_python_sockaddrS   sC   € à�G‰G×ÑØ�I‰IðA
ˆô �d—g‘gœy×4Ñ4Ô5Ø˜ÑˆHØˆr    c                óL   — |d d \  }} | t        j                  |«      |¬«      S )Né   )r   rC   )r   r&   )ÚclsrH   r   rC   s       r   Úfrom_python_sockaddrz UDPEndpoint.from_python_sockaddr\   s+   € ð
 ˜B˜Q�<‰ˆˆDÙ”i×*Ñ*¨2Ó.°TÔ:Ð:r    N©Úreturnú+tuple[str, int] | tuple[str, int, int, int])rH   rP   rO   rA   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__rI   ÚclassmethodrM   © r    r   rA   rA   N   s7   … àƒMØ
ƒIóð ð;à=ð;ð 
ò;ó ñ;r    rA   c                  ó   — e Zd ZU ded<   y)Ú
UDPBindingrA   ÚlocalN)rQ   rR   rS   rT   rV   r    r   rX   rX   e   s   … àÔr    rX   c                  ó\   — e Zd ZU ded<   ded<    ej
                  d„ ¬«      Zded<   d
d„Zy	)Ú	UDPPacketrA   ÚsourceÚdestinationc                ó"   — | j                  «       S r/   )Úhex)Úps    r   ú<lambda>zUDPPacket.<lambda>o   s   € °·±³€ r    )ÚreprÚbytesÚpayloadc                óF   — t        | j                  | j                  |¬«      S )N©r\   r]   rd   )r[   r]   r\   )rG   rd   s     r   ÚreplyzUDPPacket.replyr   s"   € ÜØ×#Ñ#ØŸ™Øô
ð 	
r    N)rd   rc   rO   r[   )rQ   rR   rS   rT   ÚattrsÚfieldrd   rg   rV   r    r   r[   r[   k   s)   … àÓØÓØ �U—[‘[Ñ&7Ô8€GˆUÓ8ô
r    r[   c                  ó    — e Zd ZU ded<   dd„Zy)ÚFakeSocketFactoryÚFakeNetÚfake_netc                óF   — t         j                  | j                  |||«      S r/   )Ú
FakeSocketÚ_createrm   )rG   r(   Útype_Úprotos       r   r   zFakeSocketFactory.socket~   s   € Ü×!Ñ! $§-¡-°¸ÀÓFÐFr    N)r(   rB   rq   rB   rr   rB   rO   ro   )rQ   rR   rS   rT   r   rV   r    r   rk   rk   z   s   … àÓôGr    rk   c                  óX   — e Zd ZU ded<   	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zy)	ÚFakeHostnameResolverrl   rm   c              ƒ  ó    K  — t        d«      ‚­w©NzFakeNet doesn't do fake DNS yet©r   )rG   ÚhostrC   r(   Útyperr   Úflagss          r   Úgetaddrinfoz FakeHostnameResolver.getaddrinfo†   s   è ø€ ô" "Ð"CÓDÐDùó   ‚c              ƒ  ó    K  — t        d«      ‚­wrv   rw   )rG   rH   rz   s      r   Úgetnameinfoz FakeHostnameResolver.getnameinfo™   s   è ø€ ô
 "Ð"CÓDÐDùr|   N)r   r   r   r   )rx   zbytes | NonerC   zbytes | str | int | Noner(   rB   ry   rB   rr   rB   rz   rB   rO   zqlist[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]])rH   rP   rz   rB   rO   ztuple[str, str])rQ   rR   rS   rT   r{   r~   rV   r    r   rt   rt   ‚   sŒ   … àÓð ØØØðEàðEð 'ðEð ð	Eð
 ðEð ðEð ðEð
óEð&Eà=ðEð ðEð 
ô	Er    rt   c                  ó4   — e Zd Zdd„Zdd„Zdd„Zd	d„Zd	d„Zy)
rl   c                óô   — t        j                  d«      j                  «       | _        t        j                  d«      j                  «       | _        t        t        dd«      «      | _        i | _	        d | _
        y )Nz	1.0.0.0/8z1::/16iPÃ  iÿÿ  )r   ÚIPv4NetworkÚhostsÚ_auto_ipv4_iterÚIPv6NetworkÚ_auto_ipv6_iterÚiterÚrangeÚ_auto_port_iterÚ_boundÚroute_packet©rG   s    r   Ú__init__zFakeNet.__init__£   s]   € ä(×4Ñ4°[ÓA×GÑGÓIˆÔÜ(×4Ñ4°XÓ>×DÑDÓFˆÔÜ#¤E¨%°Ó$7Ó8ˆÔà46ˆŒà ˆÕr    c                óp   — || j                   v rt        t        j                  «       || j                   |<   y r/   )r‰   r4   ÚerrnoÚ
EADDRINUSE)rG   Úbindingr   s      r   Ú_bindzFakeNet._bind­   s*   € Ø�d—k‘kÑ!Ü”e×&Ñ&Ô'Ø%ˆ�‰�GÒr    c                ó¤   — t         j                  j                  t        | «      «       t         j                  j	                  t        | «      «       y r/   )r   r   Úset_custom_socket_factoryrk   Úset_custom_hostname_resolverrt   r‹   s    r   ÚenablezFakeNet.enable²   s2   € Ü�‰×-Ñ-Ô.?ÀÓ.EÔFÜ�‰×0Ñ0Ô1EÀdÓ1KÕLr    c                ób   — | j                   €| j                  |«       y | j                  |«       y r/   )rŠ   Údeliver_packet©rG   Úpackets     r   Úsend_packetzFakeNet.send_packet¶   s*   € Ø×ÑÐ$Ø×Ñ Õ'à×Ñ˜fÕ%r    c                óŠ   — t        |j                  ¬«      }|| j                  v r| j                  |   j                  |«       y y )N©rY   )rX   r]   r‰   Ú_deliver_packet)rG   r™   r�   s      r   r—   zFakeNet.deliver_packet¼   s:   € Ü 6×#5Ñ#5Ô6ˆØ�d—k‘kÑ!Ø�K‰K˜Ñ ×0Ñ0°Õ8ð r    N©rO   ÚNone)r�   rX   r   ro   rO   rŸ   ©r™   r[   rO   rŸ   )rQ   rR   rS   rŒ   r‘   r•   rš   r—   rV   r    r   rl   rl   ¡   s   „ ó!ó&ó
Mó&ôr    rl   c                  ó°  — e Zd Z	 	 	 	 	 	 	 	 	 	 d)d„Zed*d„«       Zed+d„«       Zed,d„«       Zd-d„Zd-d„Z		 	 	 	 	 	 d.d„Z
d/d„Zd0d	„Zd1d
„Z	 	 	 d2	 	 	 	 	 	 	 	 	 d3d„Zej                   dk7  ses eej&                  d«      reZ	 	 d4	 	 	 	 	 	 	 d5d„Zej                   dk7  ses eej&                  d«      reZd6d„Zd6d„Zed7d„«       Zed8d„«       Z	 d9	 	 	 	 	 	 	 d:d„Zed;d„«       Ze	 	 	 	 	 	 	 	 	 	 d<d„«       Z	 d9	 	 	 	 	 	 	 	 	 d=d„Zd>d„Z	 	 	 	 	 	 	 	 d?d„Zd@dAd„Ze	 	 	 	 	 	 dBd„«       Ze	 	 	 	 	 	 	 	 dCd„«       Z	 	 	 	 dDd„Zd@dEd„Z d4dFd„Z!	 d@	 	 	 	 	 dGd „Z"	 	 d4	 	 	 	 	 	 	 dHd!„Z#	 	 d4	 	 	 	 	 	 	 dId"„Z$ej                   dk7  ses eej&                  d«      re$Z%d,d#„Z&d,d$„Z'dJd%„Z(dKd&„Z)ej                   dk(  ses eej&                  d'«      rdLd(„Z*yyy)Mro   c                ó
  — || _         |st        j                  j                  }|st        j                  j                  }|t        j                  j                  t        j                  j
                  fvrt        d|› �«      ‚|t        j                  j                  k7  rt        d|› �«      ‚|| _        || _	        || _
        d| _        t        j                  t           t        d«      «      \  | _        | _        d | _        y )Nz%FakeNet doesn't (yet) support family=z#FakeNet doesn't (yet) support type=FÚinf)Ú	_fake_netr   r   r   ÚSOCK_STREAMr   r   Ú
SOCK_DGRAMÚ_familyÚ_typeÚ_protoÚ_closedÚopen_memory_channelr[   ÚfloatÚ_packet_senderÚ_packet_receiverÚ_binding)rG   rm   r(   ry   rr   s        r   rŒ   zFakeSocket.__init__Ç   s×   € ð "ˆŒáÜ—[‘[×(Ñ(ˆFÙÜ—;‘;×*Ñ*ˆDàœ$Ÿ+™+×-Ñ-¬t¯{©{×/CÑ/CÐDÑDÜ%Ð(MÈfÈXÐ&VÓWÐWØ”4—;‘;×)Ñ)Ò)Ü%Ð(KÈDÈ6Ð&RÓSÐSàˆŒØˆŒ
ØˆŒàˆŒä59×5MÑ5MÜñ6
ä
�‹,ó6Ñ2ˆÔ˜TÔ2ð
 ,0ˆ�r    c                ó   — | j                   S r/   )r¨   r‹   s    r   ry   zFakeSocket.typeç   s   € à�z‰zÐr    c                ó   — | j                   S r/   )r§   r‹   s    r   r(   zFakeSocket.familyë   s   € à�|‰|Ðr    c                ó   — | j                   S r/   )r©   r‹   s    r   rr   zFakeSocket.protoï   s   € à�{‰{Ðr    c                óP   — | j                   rt        t        j                  «       y y r/   )rª   r4   rŽ   ÚEBADFr‹   s    r   Ú_check_closedzFakeSocket._check_closedó   s   € Ø�<Š<Ü”e—k‘kÕ"ð r    c                óº   — | j                   ry d| _         | j                  �!| j                  j                  | j                  = | j                  j                  «        y )NT)rª   r¯   r¤   r‰   r®   Úcloser‹   s    r   r·   zFakeSocket.close÷   sE   € Ø�<Š<ØØˆŒØ�=‰=Ð$Ø—‘×%Ñ% d§m¡mÐ4Ø×Ñ×#Ñ#Õ%r    c             ƒ  ó¤   K  — t         j                  j                  | j                  | j                  | j
                  |d|¬«      ƒ d {  –—† S 7 Œ­w)NF)ÚaddressÚipv6_v6onlyrY   )r   Ú_socketÚ_resolve_address_nocpry   r(   rr   )rG   r¹   rY   s      r   r¼   z FakeSocket._resolve_address_nocpÿ   sL   è ø€ ô —\‘\×7Ñ7Ø�I‰IØ�K‰KØ�J‰JØØØð 8ó 
÷ 
ð 	
ð 
ús   ‚AAÁ	AÁ
Ac                óª   — t        j                  t        j                  «      5  | j                  j                  |«       d d d «       y # 1 sw Y   y xY wr/   )Ú
contextlibÚsuppressr   ÚBrokenResourceErrorr­   Úsend_nowaitr˜   s     r   r�   zFakeSocket._deliver_packet  s?   € ä× Ñ ¤×!9Ñ!9Ó:ñ 	4Ø×Ñ×+Ñ+¨FÔ3÷	4÷ 	4ñ 	4ús   ¤A	Á	Ac              ƒ  óî  K  — | j                  «        | j                  �t        t        j                  «       t
        j                  j                  «       ƒ d {  –—†  | j                  |d¬«      ƒ d {  –—† ^}}}|g k(  sJ d«       ‚t        j                  |«      }t        |«      | j                  k(  sJ ‚|t        j                  d«      k(  rt        j                  d«      }n-|t        j                  d«      k(  rt        j                  d«      }|dk(  rt        | j                  j                  «      }t!        t#        ||«      ¬«      }| j                  j%                  || «       || _        y 7 �Œ7 Œþ­w)	NTrœ   zTODO: handle other values?r"   r+   r#   r,   r   )rµ   r¯   r4   rŽ   ÚEINVALr   ÚlowlevelÚ
checkpointr¼   r   r&   r   r(   Únextr¤   rˆ   rX   rA   r‘   )rG   ÚaddrÚip_strrC   Ú_r   r�   s          r   ÚbindzFakeSocket.bind  s+  è ø€ Ø×ÑÔØ�=‰=Ð$Ü”e—l‘lÔ#Ü�m‰m×&Ñ&Ó(×(Ð(Ø!%×!;Ñ!;¸DÈÐ!;Ó!M×MÐˆ��qØ�BŠwÐ4Ð4Ó4ˆwä×!Ñ! &Ó)ˆÜ˜2‹ $§+¡+Ò-Ð-Ð-à”×%Ñ% iÓ0Ò0Ü×%Ñ% kÓ2‰BØ”9×'Ñ'¨Ó-Ò-Ü×%Ñ% eÓ,ˆBØ�1Š9Ü˜Ÿ™×6Ñ6Ó7ˆDÜ¤;¨r°4Ó#8Ô9ˆØ�‰×Ñ˜W dÔ+Øˆ�ð 	)ùØMús%   ‚AE5ÁE0ÁE5Á4E3Á5C<E5Å3E5c              ƒ  ó    K  — t        d«      ‚­w)Nz0FakeNet does not (yet) support connected socketsrw   )rG   Úpeers     r   ÚconnectzFakeSocket.connect,  s   è ø€ Ü!Ð"TÓUÐUùr|   Nc              ƒ  ó®  K  — | j                  «        t        j                  j                  «       ƒ d {  –—†  |�| j	                  |d¬«      ƒ d {  –—† }|rt        d«      ‚|rt        d|› �«      ‚|€t        t        j                  «       t        j                  |«      }| j                  €8| j                  t        | j                  «      j                  df«      ƒ d {  –—†  dj!                  |«      }| j                  €J ‚t#        | j                  j$                  ||¬«      }| j&                  j)                  |«       t+        |«      S 7 �Œ7 Œÿ7 Œp­w)NFrœ   ú&FakeNet doesn't support ancillary dataz"FakeNet send flags must be 0, not r   r    rf   )rµ   r   rÄ   rÅ   r¼   r   r4   rŽ   ÚENOTCONNrA   rM   r¯   rÊ   r)   r(   rF   Újoinr[   rY   r¤   rš   r8   )rG   r:   Úancdatarz   r¹   r]   rd   r™   s           r   Ú_sendmsgzFakeSocket._sendmsg/  s+  è ø€ ð 	×ÑÔä�m‰m×&Ñ&Ó(×(Ð(àÐØ ×6Ñ6°wÀeÐ6ÓL×LˆGÙÜ%Ð&NÓOÐOÙÜ%Ð(JÈ5È'Ð&RÓSÐSàˆ?Ü”e—n‘nÔ%ä!×6Ñ6°wÓ?ˆà�=‰=Ð Ø—)‘)Ô-¨d¯k©kÓ:×EÑEÀqÐIÓJ×JÐJà—(‘(˜7Ó#ˆà�}‰}Ð(Ð(Ð(ÜØ—=‘=×&Ñ&Ø#Øô
ˆð 	�‰×"Ñ" 6Ô*ä�7‹|Ðð9 	)ùð Møð Kús5   ‚2E´EµEÁEÁBEÃ"EÃ#A,EÅEÅEÚwin32Úsendmsgc              ƒ  ó¾  K  — |dk7  rt        d«      ‚|dk7  rt        d«      ‚| j                  €t        d«      ‚| j                  «        g }d}| j                  j	                  «       ƒ d {  –—† }|j
                  j                  «       }t        |j                  |«      }|t        |j                  «      k  r|t        j                  j                  z  }||||fS 7 Œo­w)Nr   rÏ   z&FakeNet doesn't support any recv flagszªThe code will most likely hang if you try to receive on a fakesocket without a binding. If that is not the case, or you explicitly want to test that, remove this warning.)r   r¯   rµ   r®   Úreceiver\   rI   r?   rd   r8   r   r   Ú	MSG_TRUNC)	rG   r:   Ú
ancbufsizerz   rÒ   Ú	msg_flagsr™   r¹   r;   s	            r   Ú_recvmsg_intozFakeSocket._recvmsg_into[  sÖ   è ø€ ð ˜Š?Ü%Ð&NÓOÐOØ�AŠ:Ü%Ð&NÓOÐOØ�=‰=Ð ô &ð2óð ð 	×ÑÔà02ˆØˆ	à×,Ñ,×4Ñ4Ó6×6ˆØ—-‘-×2Ñ2Ó4ˆÜ˜6Ÿ>™>¨7Ó3ˆØ”S˜Ÿ™Ó(Ò(ØœŸ™×.Ñ.Ñ.ˆIØ˜ ¨GÐ3Ð3ð 7ús   ‚A)CÁ+CÁ,A0Cc                ó&  — | j                  «        | j                  �$| j                  j                  j                  «       S | j                  t
        j                  j                  k(  ry| j                  t
        j                  j                  k(  sJ ‚y)N)r"   r   )r#   r   )	rµ   r¯   rY   rI   r(   r   r   r   r   r‹   s    r   ÚgetsocknamezFakeSocket.getsocknameˆ  si   € Ø×ÑÔØ�=‰=Ð$Ø—=‘=×&Ñ&×9Ñ9Ó;Ð;Ø�[‰[œDŸK™K×/Ñ/Ò/Ø!à—;‘;¤$§+¡+×"6Ñ"6Ò6Ð6Ð6Ør    c                ór  — | j                  «        | j                  �‚t        | j                  d«      sJ d«       ‚| j                  j                  �Ot	        | j                  j                  t
        «      sJ d«       ‚| j                  j                  j                  «       S t        t        j                  «       y )NÚremotezGThis method seems to assume that self._binding has a remote UDPEndpointz,Self._binding.remote should be a UDPEndpoint)
rµ   r¯   Úhasattrrß   r   rA   rI   r4   rŽ   rÐ   r‹   s    r   ÚgetpeernamezFakeSocket.getpeername“  s©   € Ø×ÑÔØ�=‰=Ð$ÜØ—‘Øôð Yð YóYð ð �}‰}×#Ñ#Ð/Ü!Ø—M‘M×(Ñ(Üôð Bð BóBð ð —}‘}×+Ñ+×>Ñ>Ó@Ð@Ü”%—.‘.Õ!r    c                ó   — y r/   rV   )rG   ÚlevelÚoptnames      r   Ú
getsockoptzFakeSocket.getsockopt¢  s   € Ø>Ar    c                ó   — y r/   rV   ©rG   rã   rä   Úbuflens       r   rå   zFakeSocket.getsockopt¥  s   € ØMPr    c               óF   — | j                  «        t        d|› d|› d�«      ‚)Nz%FakeNet doesn't implement getsockopt(ú, ú))rµ   r0   rç   s       r   rå   zFakeSocket.getsockopt¨  s+   € ð 	×ÑÔÜÐ=¸e¸WÀBÀwÀiÈqÐQÓRÐRr    c                ó   — y r/   rV   )rG   rã   rä   Úvalues       r   Ú
setsockoptzFakeSocket.setsockopt²  s   € ØTWr    c                ó   — y r/   rV   ©rG   rã   rä   rí   Úoptlens        r   rî   zFakeSocket.setsockoptµ  s   € ð r    c               óÒ   — | j                  «        ||ft        j                  j                  t        j                  j                  fk(  r|st        d«      ‚t        d|› d|› d�«      ‚)Nz#FakeNet always has IPV6_V6ONLY=Truez%FakeNet doesn't implement setsockopt(rê   z, ...))rµ   r   r   ÚIPPROTO_IPV6ÚIPV6_V6ONLYr   r0   rð   s        r   rî   zFakeSocket.setsockopt¿  sh   € ð 	×ÑÔà�7ÐÜ�K‰K×$Ñ$Ü�K‰K×#Ñ#ð 
ò 
ñ Ü%Ð&KÓLÐLäÐ=¸e¸WÀBÀwÀiÈvÐVÓWÐWr    c                ó   — | S r/   rV   r‹   s    r   Ú	__enter__zFakeSocket.__enter__Õ  s   € Øˆr    c                ó$   — | j                  «        y r/   )r·   )rG   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú__exit__zFakeSocket.__exit__Ø  s   € ð 	�
‰
�r    c              ƒ  óD   K  — | j                  ||d «      ƒ d {  –—† S 7 Œ­wr/   )Úsendto)rG   r9   rz   s      r   ÚsendzFakeSocket.sendà  s   è ø€ Ø—[‘[  u¨dÓ3×3Ð3Ð3ús   ‚ ™š c              ƒ  ó   K  — y ­wr/   rV   )rG   Ú_FakeSocket__dataÚ_FakeSocket__addresss      r   rý   zFakeSocket.sendtoä  s   è ø€ ð
 ùó   ‚c              ƒ  ó   K  — y ­wr/   rV   )rG   r   Ú_FakeSocket__flagsr  s       r   rý   zFakeSocket.sendtoì  s   è ø€ ð ùr  c              ‡  ó´   K  — t        |«      dk(  r|\  }}d}n t        |«      dk(  r|\  }}}nt        d«      ‚| j                  |gg ||«      ƒ d {  –—† S 7 Œ­w)NrK   r   é   zwrong number of arguments)r8   Ú	TypeErrorrÓ   )rG   Úargsr9   r¹   rz   s        r   rý   zFakeSocket.sendtoô  sa   è ø€ ô ˆt‹9˜Š>Ø ‰MˆD�'Ø‰EÜ�‹Y˜!Š^Ø#'Ñ ˆD�%™äÐ7Ó8Ð8Ø—]‘] D 6¨2¨u°gÓ>×>Ð>Ð>ús   ‚AAÁAÁAc              ƒ  óL   K  — | j                  ||«      ƒ d {  –—† \  }}|S 7 Œ	­wr/   )Úrecvfrom)rG   Úbufsizerz   r9   Ú_addresss        r   ÚrecvzFakeSocket.recv  s'   è ø€ Ø#Ÿ}™}¨W°eÓ<×<‰ˆˆhØˆð =ús   ‚$˜"™
$c              ƒ  óN   K  — | j                  |||«      ƒ d {  –—† \  }}|S 7 Œ	­wr/   )Úrecvfrom_into)rG   r<   r7   rz   Ú	got_bytesr  s         r   Ú	recv_intozFakeSocket.recv_into  s.   è ø€ Ø$(×$6Ñ$6°s¸FÀEÓ$J×JÑˆ	�8ØÐð Kús   ‚%™#š
%c              ƒ  óT   K  — | j                  ||«      ƒ d {  –—† \  }}}}||fS 7 Œ­wr/   )Ú_recvmsg)rG   r  rz   r9   Ú_ancdataÚ
_msg_flagsr¹   s          r   r
  zFakeSocket.recvfrom  s4   è ø€ ð
 59·M±MÀ'È5Ó4Q×.QÑ+ˆˆh˜
 GØ�Wˆ}Ðð /Rús   ‚(˜&™(c              ƒ  ó¨   K  — |dk7  r#|t        |«      j                  k7  rt        d«      ‚| j                  |gd|«      ƒ d {  –—† \  }}}}||fS 7 Œ­w)Nr   zpartial recvfrom_into)r6   r7   r   rÛ   )rG   r<   r7   rz   Ú
got_nbytesr  r  r¹   s           r   r  zFakeSocket.recvfrom_into  sg   è ø€ ð �QŠ;˜6¤Z°£_×%;Ñ%;Ò;Ü%Ð&=Ó>Ð>Ø:>×:LÑ:LØˆEØØó;
÷ 5
Ñ1ˆ
�H˜j¨'ð
 ˜7Ð"Ð"ð5
ús   ‚A AÁAÁAc              ƒ  óŠ   K  — t        |«      }| j                  |g||«      ƒ d {  –—† \  }}}}t        |d | «      |||fS 7 Œ­wr/   )Ú	bytearrayrÛ   rc   )	rG   r  rÙ   rz   r<   r  rÒ   rÚ   r¹   s	            r   r  zFakeSocket._recvmsg#  s]   è ø€ ô ˜Ó ˆØ8<×8JÑ8JØˆEØØó9
÷ 3
Ñ/ˆ
�G˜Y¨ô
 �c˜+˜:Ð&Ó'¨°)¸WÐEÐEð3
ús   ‚#A¥A¦Ac                ó   — t        d«      ‚)Nz&can't get fileno() for FakeNet socketsrw   r‹   s    r   ÚfilenozFakeSocket.fileno6  s   € Ü!Ð"JÓKÐKr    c                ó   — t        d«      ‚)Nzcan't detach() a FakeNet socketrw   r‹   s    r   ÚdetachzFakeSocket.detach9  s   € Ü!Ð"CÓDÐDr    c                 ó   — y)NFrV   r‹   s    r   Úget_inheritablezFakeSocket.get_inheritable<  s   € Ør    c                ó   — |rt        d«      ‚y )Nz&FakeNet can't make inheritable socketsrw   )rG   Úinheritables     r   Úset_inheritablezFakeSocket.set_inheritable?  s   € ÙÜ%Ð&NÓOÐOð r    Úsharec                ó   — t        d«      ‚)NzFakeNet can't share socketsrw   )rG   Ú
process_ids     r   r#  zFakeSocket.shareG  s   € Ü%Ð&CÓDÐDr    )
rm   rl   r(   r   ry   r   rr   rB   rO   rŸ   )rO   r   )rO   r   )rO   rB   rž   )r¹   ÚobjectrY   ÚboolrO   ztuple[str, int]r    )rÇ   r&  rO   rŸ   )rÌ   r&  rO   r   )rV   r   N)
r:   úIterable[Buffer]rÒ   z!Iterable[tuple[int, int, Buffer]]rz   rB   r¹   zAddressFormat | NonerO   rB   rE   )r:   r(  rÙ   rB   rz   rB   rO   zZtuple[int, list[tuple[int, int, bytes]], int, tuple[str, int] | tuple[str, int, int, int]]rN   )rã   rB   rä   rB   rO   rB   )rã   rB   rä   rB   rè   rB   rO   rc   r/   )rã   rB   rä   rB   rè   ú
int | NonerO   zint | bytes)rã   rB   rä   rB   rí   zint | BufferrO   rŸ   )
rã   rB   rä   rB   rí   rŸ   rñ   rB   rO   rŸ   )
rã   rB   rä   rB   rí   zint | Buffer | Nonerñ   r)  rO   rŸ   )rO   r   )rø   z#builtins.type[BaseException] | Nonerù   zBaseException | Nonerú   zTracebackType | NonerO   rŸ   )r   )r9   r   rz   rB   rO   rB   )r   r   r  z!tuple[object, ...] | str | BufferrO   rB   )r   r   r  rB   r  z(tuple[object, ...] | str | Buffer | NonerO   rB   )r  r   rO   rB   )r  rB   rz   rB   rO   rc   )r<   r   r7   rB   rz   rB   rO   rB   )r  rB   rz   rB   rO   ztuple[bytes, AddressFormat])r<   r   r7   rB   rz   rB   rO   ztuple[int, AddressFormat])r  rB   rÙ   rB   rz   rB   rO   z>tuple[bytes, list[tuple[int, int, bytes]], int, AddressFormat])rO   r'  )r!  r'  rO   rŸ   )r%  rB   rO   rc   )+rQ   rR   rS   rŒ   Úpropertyry   r(   rr   rµ   r·   r¼   r�   rÊ   rÍ   rÓ   ÚsysÚplatformr   rà   r   rÕ   rÛ   Úrecvmsg_intorÝ   rá   r   rå   rî   rö   rû   rþ   rý   r  r  r
  r  r  Úrecvmsgr  r  r  r"  r#  rV   r    r   ro   ro   Å   s  „ ð0àð0ð ð0ð ð	0ð
 ð0ð 
ó0ð@ òó ðð òó ðð òó ðó#ó&ð
àð
ð ð	
ð
 
ó
ó4ó ó*Vð 68ØØ(,ð%à!ð%ð 3ð%ð ð	%ð
 &ð%ð 
ó%ðN ‡|�|�wÒÙ™g f§m¡m°YÔ?àˆð
 Øð	"4à!ð"4ð ð"4ð ð	"4ð

ó"4ðH ‡|�|�wÒÙ™g f§m¡m°YÔ?à$ˆóó"ð ÚAó ØAàÚPó ØPð "ðSð ðSð ð	Sð
 ðSð 
óSð ÚWó ØWàðð ðð ð	ð
 ðð ðð 
òó ðð "ðXð ðXð ð	Xð
 #ðXð ðXð 
óXó,ðà5ðð (ðð (ð	ð
 
óô4ð ðàðð 5ðð 
ò	ó ðð ðàðð ðð <ð	ð
 
òó ðð?àð?ð 
ó?ô ôð ðàðð ðð 
%ó	ð Øð	#àð#ð ð#ð ð	#ð
 
#ó#ð$ Øð	FàðFð ðFð ð	Fð
 
HóFð ‡|�|�wÒÙ™g f§m¡m°YÔ?àˆóLóEóóPð ‡|�|�wÒÙ™g f§m¡m°WÔ=ô	Eð >ˆMr    ro   )Ú	metaclass)r   r   rO   rB   )r(   rB   rO   r   )r3   rB   rO   r   )r9   rc   r:   r(  rO   rB   )4Ú
__future__r   r¾   rŽ   r   r1   r   r+  Útypingr   r   r   r   r   rh   r   Ú
trio._utilr	   r
   ÚbuiltinsÚcollections.abcr   r   r   Útypesr   Útyping_extensionsr   r   Útrio._socketr   r   r   r   rT   r   r)   r-   r4   r?   ÚfrozenrA   rX   r[   ÚabcÚSocketFactoryrk   ÚHostnameResolverrt   rl   Ú
SocketTypero   rV   r    r   ú<module>r=     sl  ðö #ã Û Û Û 	Û Û 
ß DÕ Dã ã ß 1áÛÝ(ß0Ý#ç.å*à ×,Ñ,¨y×/DÑ/DÑD€	ˆ9Ó DóCó=ó=ó+ó	ð ‡�÷;ð ;ó ð;ð, ‡�÷ð ó ðð
 ‡�÷
ð 
ó ð
ð ‡�ôG˜Ÿ™×.Ñ.ó Gó ðGð ‡�ôE˜4Ÿ8™8×4Ñ4ó Eó ðEð< ÷ ð  ó ð ðF ôBE�—‘×'Ñ'Ð3Fô BEó ñBEr    