
    vKg                       % S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
  S SKJrJrJrJrJrJrJrJrJr  S SKrS SKrS SKJr  SSKJr  \(       a*  S S	KJr  S S
KJ r   S SK!J"r"J#r#J$r$J%r%J&r&  SSK'J(r(J)r)  \$" S5      r*\" S5      r+\r,S\-S'    " S S5      r.\R^                  " S5      r0S\-S'   \R^                  " S5      r1S\-S'       S5S jr2    S6S jr3\Rh                  \Rj                  -  r6    S7             S8S jjr7      S9S jr8S:S jr9S;S jr:\" \Rv                  S S S!9\Rx                  \Rz                  S 4         S<S" jj5       r;\R|                  S#:X  d  \(       d(  \?" \S$5      (       a  \" \R                  S S S!9S=S% j5       r@\R|                  S#:X  a  \ArBS\-S&'   \ArCS\-S''   \Rx                  rDO*SrDS(\-S)'   \\A\	S4   rBS\-S&'   \\R                  \A4   rCS\-S''   \" \R                  S S S!9\D\
Rz                  S 4       S>S* jj5       rE\" \R                  S S S!9\Rx                  \Rz                  S S4         S?S+ jj5       r          S@S, jrF\G" \S-S 5      \G" \S.S 5      -  ) rH SA       SBS/ jjrI              SCS0 jrJ " S1 S5      rK\KR                  R                  5        H  u  rNrO\NR                  S25      (       d  \OR                  (       a  M/  \R                  \R                  4 H)  rR\G" \R\NS5      rS\S(       d  M  \SR                  (       d  M)    O   Mv  \SR                  \OlQ        M      " S3 S4\K5      rTg)D    )annotationsN)index)AddressFamily
SocketKind)	TYPE_CHECKINGAny	AwaitableCallableLiteralSupportsIndexTypeVarUnionoverload)wraps   )_core)Iterable)TracebackType)BufferConcatenate	ParamSpecSelf	TypeAlias)HostnameResolverSocketFactoryPTr   AddressFormatc                  T    \ rS rSr S S	S jjrS
S jrSS jr        SS jrSrg)	_try_sync?   Nc                    Xl         g N_blocking_exc_override)selfblocking_exc_overrides     L/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/trio/_socket.py__init___try_sync.__init__@   s
     '<#    c                ^    U R                   c  [        U[        5      $ U R                  U5      $ r#   )r%   
isinstanceBlockingIOError)r&   excs     r(   _is_blocking_io_error_try_sync._is_blocking_io_errorF   s,    &&.c?33..s33r+   c                \   #    [         R                  R                  5       I S h  vN   g  N7fr#   )triolowlevelcheckpoint_if_cancelledr&   s    r(   
__aenter___try_sync.__aenter__L   s     mm33555s   ",*,c                   #    Ub  U R                  U5      (       a  g[        R                  R                  5       I S h  vN   g N7f)NTF)r0   r3   r4   cancel_shielded_checkpointr&   exc_type	exc_value	tracebacks       r(   	__aexit___try_sync.__aexit__O   s@       T%?%?	%J%J --::<<< =s   <AAAr$   r#   )r'   z&Callable[[BaseException], bool] | Noner/   BaseExceptionreturnboolrC   None)r<   type[BaseException] | Noner=   BaseException | Noner>   TracebackType | NonerC   rD   )	__name__
__module____qualname____firstlineno__r)   r0   r7   r?   __static_attributes__ r+   r(   r    r    ?   sK     IM<E<46, ( (	
 
r+   r    hostname_resolverz%_core.RunVar[HostnameResolver | None]	_resolversocket_factoryz"_core.RunVar[SocketFactory | None]_socket_factoryc                Z    [         R                  S5      n[         R                  U 5        U$ )a  Set a custom hostname resolver.

By default, Trio's :func:`getaddrinfo` and :func:`getnameinfo` functions
use the standard system resolver functions. This function allows you to
customize that behavior. The main intended use case is for testing, but it
might also be useful for using third-party resolvers like `c-ares
<https://c-ares.haxx.se/>`__ (though be warned that these rarely make
perfect drop-in replacements for the system resolver). See
:class:`trio.abc.HostnameResolver` for more details.

Setting a custom hostname resolver affects all future calls to
:func:`getaddrinfo` and :func:`getnameinfo` within the enclosing call to
:func:`trio.run`. All other hostname resolution in Trio is implemented in
terms of these functions.

Generally you should call this function just once, right at the beginning
of your program.

Args:
  hostname_resolver (trio.abc.HostnameResolver or None): The new custom
      hostname resolver, or None to restore the default behavior.

Returns:
  The previous hostname resolver (which may be None).

N)rQ   getset)rP   olds     r(   set_custom_hostname_resolverrX   g   s$    : --
CMM#$Jr+   c                Z    [         R                  S5      n[         R                  U 5        U$ )a  Set a custom socket object factory.

This function allows you to replace Trio's normal socket class with a
custom class. This is very useful for testing, and probably a bad idea in
any other circumstance. See :class:`trio.abc.HostnameResolver` for more
details.

Setting a custom socket factory affects all future calls to :func:`socket`
within the enclosing call to :func:`trio.run`.

Generally you should call this function just once, right at the beginning
of your program.

Args:
  socket_factory (trio.abc.SocketFactory or None): The new custom
      socket factory, or None to restore the default behavior.

Returns:
  The previous socket factory (which may be None).

N)rS   rU   rV   )rR   rW   s     r(   set_custom_socket_factoryrZ      s'    0 

d
#C'Jr+   c                V  #    SS jn[        U5       ISh  vN   [        R                  " U UUUUU[        -  5      sSSS5      ISh  vN   $  N7 N! , ISh  vN  (       d  f       O= f[	        U [
        5      (       a8   U R                  S5      n O%! [         a    [        R                  " U SS9n  Of = f[        R                  S5      nUb  UR                  XX#XE5      I Sh  vN  $ [        R                  R                  [        R                  U UUUUUSS9I Sh  vN  $ 7f)a,  Look up a numeric address given a name.

Arguments and return values are identical to :func:`socket.getaddrinfo`,
except that this version is async.

Also, :func:`trio.socket.getaddrinfo` correctly uses IDNA 2008 to process
non-ASCII domain names. (:func:`socket.getaddrinfo` uses IDNA 2003, which
can give the wrong result in some cases and cause you to connect to a
different host than the one you intended; see `bpo-17305
<https://bugs.python.org/issue17305>`__.)

This function's behavior can be customized using
:func:`set_custom_hostname_resolver`.

c                ~    [        U [        R                  5      =(       a    U R                  [        R                  :H  $ r#   )r-   _stdlib_socketgaierrorerrno
EAI_NONAME)r/   s    r(   numeric_only_failure)getaddrinfo.<locals>.numeric_only_failure   s.    sN334 7		^666	
r+   NasciiT)uts46abandon_on_cancelrA   )r    r]   getaddrinfo_NUMERIC_ONLYr-   strencodeUnicodeEncodeError_idnarQ   rU   r3   	to_threadrun_sync)hostportfamilytypeprotoflagsra   hrs           r(   rg   rg      s    H
 -..))M!
 /....." $	2;;w'D! 	2 <<D1D		2
 
t	B	~^^DeKKKK^^,,&&" - 	
 	
 	
 		
s   D)AD)"AD)	A
D)D)A*AA*&D)B D)B74D)6B771D)(C+):D)#D&$D)c                   #    [         R                  S5      nUb  UR                  X5      I Sh  vN $ [        R                  R                  [        R                  U USS9I Sh  vN $  N: N7f)zLook up a name given a numeric address.

Arguments and return values are identical to :func:`socket.getnameinfo`,
except that this version is async.

This function's behavior can be customized using
:func:`set_custom_hostname_resolver`.

NTre   )rQ   rU   getnameinfor3   rm   rn   r]   )sockaddrrt   ru   s      r(   rw   rw     si      
t	B	~^^H444^^,,&&"	 - 
 
 	
 5
s!   -A.A*5A.%A,&A.,A.c                x   #    [         R                  R                  [        R                  U SS9I Sh  vN $  N7f)zcLook up a protocol number by name. (Rarely used.)

Like :func:`socket.getprotobyname`, but async.

Tre   N)r3   rm   rn   r]   getprotobyname)names    r(   rz   rz     s<      ((%% )    s   1:8:
SocketTypec                    [        U 5      $ )zUConvert a standard library :class:`socket.socket` object into a Trio
socket object.

)_SocketType)socks    r(   from_stdlib_socketr   /  s    
 tr+   rO   assignedupdatedc                t    [        XU[        U 5      5      u  pn[        [        R                  " XXC5      5      $ )z=Like :func:`socket.fromfd`, but returns a Trio socket object.)_sniff_sockopts_for_filenor   r   r]   fromfd)fdrq   rr   rs   type_s        r(   r   r   7  s4     6fE5QS9UF5n33BMNNr+   win32	fromsharec                @    [        [        R                  " U 5      5      $ )z@Like :func:`socket.fromshare`, but returns a Trio socket object.)r   r]   r   )infos    r(   r   r   G  s     ".":":4"@AAr+   FamilyTTypeTzLiteral[None]FamilyDefaultc                `    [         R                  " XU5      u  p4[        U5      [        U5      4$ )zLLike :func:`socket.socketpair`, but returns a pair of Trio socket
objects.

)r]   
socketpairr   )rq   rr   rs   leftrights        r(   r   r   W  s.     !++F%@KDt$&8&?@@r+   c                    Uc+  [         R                  S5      nUb  UR                  XU5      $ O[        U UUU5      u  pn[        R                  " XX#5      n[        U5      $ )zCreate a new Trio socket, like :class:`socket.socket`.

This function's behavior can be customized using
:func:`set_custom_socket_factory`.

N)rS   rU   socketr   r]   r   )rq   rr   rs   filenosfstdlib_sockets         r(   r   r   e  sp     ~  &>99V511  9	
e #))&FMm,,r+   c                .   [         R                  S:w  a  XU4$ SSKJnJnJnJn  [        R                  " XX#S9n UR                  Xt5      n UR                  Xu5      nUR                  Xv5      nUR                  5         XU4$ ! UR                  5         f = f)zCCorrect SOCKOPTS for given fileno, falling back to provided values.linuxr   )	SO_DOMAINSO_PROTOCOLSO_TYPE
SOL_SOCKET)r   )
sysplatformr   r   r   r   r   r]   
getsockoptdetach)	rq   r   rs   r   r   r   r   r   sockobjs	            r(   r   r     s     ||we##  ##F5HG##J:"":;"":7 	% 	s   3B BSOCK_NONBLOCKSOCK_CLOEXECc                   ^ ^ [        T SSS9S	U U4S jj5       nST R                   S3Ul        U(       a#  U=R                  ST R                   S3-  sl        U$ )
N)rJ   rO   r   c                N   >#    U R                   " TT/UQ70 UD6I S h  vN $  N7fr#   )_nonblocking_helper)r&   argskwargsfnwait_fns      r(   wrapper1_make_simple_sock_method_wrapper.<locals>.wrapper  s)     --grKDKFKKKKs   %#%zLike :meth:`socket.socket.z`, but async.

            z7Only available on platforms where :meth:`socket.socket.z` is available.)r&   r~   r   P.argsr   P.kwargsrC   r   )_wrapsrJ   __doc__)r   r   maybe_availr   s   ``  r(    _make_simple_sock_method_wrapperr     sn    
 B3L 4L 5R[[M B GO Ebkk] S 	
 Nr+   c                 #    U[         R                  :X  a0  [        U[        5      (       a  [	        U5      S:X  d  [        S5      eOU[         R                  :X  a9  [        U[        5      (       a  S[	        U5      s=::  a  S::  d  O  [        S5      eOm[        [         S5      (       aV  U[         R                  :X  aB  [        U[        [        [        R                  45      (       d   e[        R                  " U5      $ U$ Utpgn[        U[        5      (       a  Ub   [         R                  " X5        U$ US:X  a  S nUS:X  a  SnS	n	U(       a  U	[         R$                  -  n	U[         R                  :X  a  U(       d  U	[         R&                  -  n	[)        XgXX)5      I S h  vN n
[	        U
5      S
:  d   eU
tGt pnU[         R                  :X  aU  [+        U5      n[	        U5      S:X  d   e[	        U5      S:  a  US   US'   [	        U5      S:  a  US   US'   [        U5      $ U$ ! [         ["        4 a     GNf = f N7f)N   z&address should be a (host, port) tuple   z=address should be a (host, port, [flowinfo, [scopeid]]) tupleAF_UNIX z<broadcast>z255.255.255.255r   r      )r]   AF_INETr-   tuplelen
ValueErrorAF_INET6hasattrr   ri   bytesosPathLikefspathint	inet_ptonOSError	TypeError
AI_PASSIVEAI_V4MAPPEDrg   list)r   rq   rs   ipv6_v6onlyaddresslocalro   rp   _rt   gai_resnormedlist_normeds                r(   _resolve_address_nocpr     s     ''''5))W1BEFF 2C	>**	*'5))c'l1Ga1GO  2H 
	+	+.:P:P0P'C#<====yy!! ND $!1	$$V2 Nrz} E*** (((+++F5HHG w<1La1 (((6l6{aw<1$QZKNw<1$QZKN[!!MK # 		* Is8   DI H' 4A,I  H>!BI 'H;7I :H;;I c                    ^  \ rS rSrS3U 4S jjrS4S jrS4S jrS5S jrS5S jr\	S6S j5       r
\	S7S j5       r
 S8       S9S	 jjr
\	S:S
 j5       r\	          S;S j5       r S8         S<S jjr\" \R                  S5      4S=S jjrS>S jrS?S jr\R&                  S:X  d  \(       d  \" \R,                  S5      (       a  S@S jrSAS jr        SBS jr\SCS j5       r\SDS j5       r\S4S j5       r\S>S j5       rSES jrSFS jr S3S jr!SGS jr"SHS jr#S>S jr$S3S  jr%SIS! jr&SGS" jr'SJSKS# jjr(  SL       SMS$ jjr) SJ     SNS% jjr*  SL       SOS& jjr+\R&                  S:w  d  \(       d(  \" \R,                  S'5      (       a    SL       SPS( jjr,\R&                  S:w  d  \(       d(  \" \R,                  S)5      (       a    SL       SQS* jjr-SJSRS+ jjr.\	      SSS, j5       r/\	        STS- j5       r/SUS. jr/\R&                  S:w  d  \(       dV  \" \R,                  S/5      (       a8  \0" \R,                  Rb                  S0S0S19   SV         SWS2 jj5       r1S0r2U =r3$ S0r2U =r3$ S0r2U =r3$ )Xr|   i!  c                \   > [         TU ]  5         [        U 5      [        L a  [	        S5      eg )Nz`SocketType is an abstract class; use trio.socket.socket if you want to construct a socket object)superr)   rr   r|   r   )r&   	__class__s    r(   r)   SocketType.__init__"  s1    :#4  $r+   c                    [         er#   NotImplementedErrorr6   s    r(   r   SocketType.detach,      !!r+   c                    [         er#   r   r6   s    r(   r   SocketType.fileno/  r   r+   c                    [         er#   r   r6   s    r(   getpeernameSocketType.getpeername2  r   r+   c                    [         er#   r   r6   s    r(   getsocknameSocketType.getsockname5  r   r+   c                   g r#   rO   r&   leveloptnames      r(   r   SocketType.getsockopt8      >Ar+   c                   g r#   rO   r&   r   r   buflens       r(   r   r   ;      MPr+   c                   [         er#   r   r   s       r(   r   r   >  s
     "!r+   c                   g r#   rO   r&   r   r   values       r(   
setsockoptSocketType.setsockoptG      TWr+   c                   g r#   rO   r&   r   r   r   optlens        r(   r   r   J       r+   c                   [         er#   r   r   s        r(   r   r   T  s
     "!r+      c                   [         er#   r   r&   backlogs     r(   listenSocketType.listen^  r   r+   c                    [         er#   r   r6   s    r(   get_inheritableSocketType.get_inheritablea  r   r+   c                    [         er#   r   r&   inheritables     r(   set_inheritableSocketType.set_inheritabled  r   r+   r   sharec                   [         er#   r   r&   
process_ids     r(   r
  SocketType.sharek  s    %%r+   c                    [         er#   r   r6   s    r(   	__enter__SocketType.__enter__n  r   r+   c                    [         er#   r   r;   s       r(   __exit__SocketType.__exit__q  
     "!r+   c                    [         er#   r   r6   s    r(   rq   SocketType.familyy      !!r+   c                    [         er#   r   r6   s    r(   rr   SocketType.type}  r  r+   c                    [         er#   r   r6   s    r(   rs   SocketType.proto  r  r+   c                    [         e)zBReturn True if the socket has been shut down with the SHUT_WR flagr   r6   s    r(   did_shutdown_SHUT_WRSocketType.did_shutdown_SHUT_WR  s
     "!r+   c                    [         er#   r   r6   s    r(   __repr__SocketType.__repr__  r   r+   c                    [         er#   r   r6   s    r(   dupSocketType.dup  r   r+   c                    [         er#   r   r6   s    r(   closeSocketType.close  r   r+   c                   #    [         e7fr#   r   r&   r   s     r(   bindSocketType.bind       !!   	c                    [         er#   r   r&   flags     r(   shutdownSocketType.shutdown  r   r+   c                    [         e)zpReturn True if the socket is readable. This is checked with `select.select` on Windows, otherwise `select.poll`.r   r6   s    r(   is_readableSocketType.is_readable  r  r+   c                   #    [         e7f)zIConvenience method that calls trio.lowlevel.wait_writable for the object.r   r6   s    r(   wait_writableSocketType.wait_writable  s     !!r.  c                   #    [         e7fr#   r   r6   s    r(   acceptSocketType.accept  r-  r.  c                   #    [         e7fr#   r   r*  s     r(   connectSocketType.connect  r-  r.  c                    [         er#   r   _SocketType__self_SocketType__buflen_SocketType__flagss      r(   recvSocketType.recv  r   r+   c                    [         er#   r   rB  buffernbytesrt   s       r(   	recv_intoSocketType.recv_into  r  r+   c                    [         er#   r   rB  _SocketType__bufsizerD  s      r(   recvfromSocketType.recvfrom  s
    
 "!r+   c                    [         er#   r   rH  s       r(   recvfrom_intoSocketType.recvfrom_into  r  r+   recvmsgc                    [         er#   r   rB  rO  _SocketType__ancbufsizerD  s       r(   rU  SocketType.recvmsg  
     &%r+   recvmsg_intoc                    [         er#   r   rB  _SocketType__buffersrX  rD  s       r(   r[  SocketType.recvmsg_into  rZ  r+   c                    [         er#   r   rB  _SocketType__bytesrD  s      r(   sendSocketType.send  r   r+   c                   #    g 7fr#   rO   r&   _SocketType__data_SocketType__addresss      r(   sendtoSocketType.sendto  
     
    c                   #    g 7fr#   rO   r&   rg  rD  rh  s       r(   ri  rj    
      rl  c                   #    [         e7fr#   r   )r&   r   s     r(   ri  rj    r-  r.  sendmsgrO   r   c                   #    [         e7fr#   r   r&   r^  _SocketType__ancdatarD  rh  s        r(   rq  SocketType.sendmsg  s      &%r.  rE   rC   r   rC   r   r   r   r   r   rC   r   r   r   r   r   r   r   rC   r   r#   r   r   r   r   r   
int | NonerC   zint | bytesr   r   r   r   r   zint | BufferrC   rF   
r   r   r   r   r   rF   r   r   rC   rF   
r   r   r   r   r   zint | Buffer | Noner   r{  rC   rF   r   r   rC   rF   rC   rD   r  rD   rC   rF   r  r   rC   r   rC   r   r<   rG   r=   rH   r>   rI   rC   rF   rC   r   rC   r   rC   ri   rC   r|   r   r   rC   rF   r1  r   rC   rF   rC   z tuple[SocketType, AddressFormat]r   rC  r   rD  r   rC   zAwaitable[bytes]r   r   rI  r   rJ  r   rt   r   rC   Awaitable[int]rO  r   rD  r   rC   z&Awaitable[tuple[bytes, AddressFormat]]rI  r   rJ  r   rt   r   rC   z$Awaitable[tuple[int, AddressFormat]]rO  r   rX  r   rD  r   rC   z?Awaitable[tuple[bytes, list[tuple[int, int, bytes]], int, Any]]r^  Iterable[Buffer]rX  r   rD  r   rC   z=Awaitable[tuple[int, list[tuple[int, int, bytes]], int, Any]]rb  r   rD  r   rC   r  rg  r   rh  !tuple[object, ...] | str | BufferrC   r   rg  r   rD  r   rh  r  rC   r   r   r   rC   r   rO   r   N
r^  r  rt  z!Iterable[tuple[int, int, Buffer]]rD  r   rh  zAddressFormat | NonerC   r   )4rJ   rK   rL   rM   r)   r   r   r   r   r   r   r   minr]   	SOMAXCONNr   r  r  r   r   r   r   r   r
  r  r  propertyrq   rr   rs   r  r!  r$  r'  r+  r2  r5  r8  r;  r>  rE  rK  rP  rS  rU  r[  rc  ri  r   rq  rN   __classcell__)r   s   @r(   r|   r|   !  s5   """" A AP P "" " 	"
 " 
" W W  	
   
  "" " 	"
 #" " 
" (+>+C+CS'I """ ||wgn&;&;WEE	&""," (" (	"
 
" " " " " " " " """"""""""" 	"" " 	"
 
" "" " 
0	" 	"" " 	"
 
." ||wgn&;&;YGG !"		&	& 	& 		&
 M	& ||wgn&;&;^LL !"		&'	& 	& 		&
 K	&"  5 
	    5	
 
 " ||wgn&;&;YGG 
%%--B	G <>.2	&'	& 9	& 		&
 ,	& 	& 
H	&	 HMr+   __c                  4   \ rS rSrS9S jrS:S jrS:S jrS;S jrS;S jr\	S<S j5       r
\	S=S j5       r
 S>       S?S
 jjr
\	S@S j5       r\	          SAS j5       r S>         SBS jjr\" \R                  S5      4SCS jjrSDS jrSES jr\R&                  S:X  d  \(       d  \" \R,                  S5      (       a  SFS jrSGS jr        SHS jr\SIS j5       r\SJS j5       r\S:S j5       r\SDS j5       rSKS jrSLS jr SMS jr!SNS jr"SOS jr#SDS  jr$SMS! jr%      SPS" jr&          SQS# jr'\(" \R,                  RR                  \*RV                  5      r,SRS$ jr)SNS% jr-\(       a  SSSTS& jjr.\(" \R,                  R\                  \*RV                  5      r.\(       a    SU       SVS' jjr/\(" \R,                  R^                  \*RV                  5      r/\(       a   SS     SWS( jjr0\(" \R,                  R`                  \*RV                  5      r0\(       a    SU       SXS) jjr1\(" \R,                  Rb                  \*RV                  5      r1\R&                  S:w  d  \(       dU  \" \R,                  S*5      (       a=  \(       a    SU       SYS+ jjr2\(" \R,                  Rd                  \*RV                  S,S-9r2\R&                  S:w  d  \(       dU  \" \R,                  S.5      (       a=  \(       a    SU       SZS/ jjr3\(" \R,                  Rf                  \*RV                  S,S-9r3\(       a  SSS[S0 jjr4\(" \R,                  Rh                  \*RJ                  5      r4\	      S\S1 j5       r5\	        S]S2 j5       r5\6" \R,                  Rj                  S3S3S49S^S5 j5       r5\R&                  S:w  d  \(       dP  \" \R,                  S65      (       a5  \6" \R,                  Rn                  S3S3S49   S_         S`S7 jj5       r7S8r8g	S8r8g	S8r8g	)ar~   i  c                    [        U5      [        R                  La"  [        S[        U5      R                   S35      eXl        U R
                  R                  S5        SU l        g )Nz.expected object of type 'socket.socket', not ''F)rr   r]   r   r   rJ   _socksetblocking_did_shutdown_SHUT_WR)r&   r   s     r(   r)   _SocketType.__init__  s\    :^222 @dATAT@UUVW  


u%%*"r+   c                6    U R                   R                  5       $ r#   )r  r   r6   s    r(   r   _SocketType.detach       zz  ""r+   c                6    U R                   R                  5       $ r#   )r  r   r6   s    r(   r   _SocketType.fileno#  r  r+   c                6    U R                   R                  5       $ r#   )r  r   r6   s    r(   r   _SocketType.getpeername&      zz%%''r+   c                6    U R                   R                  5       $ r#   )r  r   r6   s    r(   r   _SocketType.getsockname)  r  r+   c                   g r#   rO   r   s      r(   r   _SocketType.getsockopt,  r   r+   c                   g r#   rO   r   s       r(   r   r  /  r   r+   Nc               v    Uc  U R                   R                  X5      $ U R                   R                  XU5      $ r#   )r  r   r   s       r(   r   r  2  s5     >::((88zz$$UV<<r+   c                   g r#   rO   r   s       r(   r   _SocketType.setsockopt=  r   r+   c                   g r#   rO   r   s        r(   r   r  @  r   r+   c                   Uc*  Uc  [        S5      eU R                  R                  XU5      $ Ub  [        SU< S35      eU R                  R                  XX45      $ )NzKinvalid value for argument 'value', must not be None when specifying optlenz$invalid value for argument 'value': z%, must be None when specifying optlen)r   r  r   r   s        r(   r   r  J  sp     >}a  ::((??6ui?de  zz$$UUCCr+   r   c               8    U R                   R                  U5      $ r#   )r  r   r   s     r(   r   _SocketType.listena  s    zz  ))r+   c                6    U R                   R                  5       $ r#   )r  r  r6   s    r(   r  _SocketType.get_inheritabled  s    zz))++r+   c                8    U R                   R                  U5      $ r#   )r  r  r  s     r(   r  _SocketType.set_inheritableg  s    zz))+66r+   r   r
  c               8    U R                   R                  U5      $ r#   )r  r
  r  s     r(   r
  _SocketType.sharen  s    ::##J//r+   c                    U $ r#   rO   r6   s    r(   r  _SocketType.__enter__q  s    r+   c                :    U R                   R                  XU5      $ r#   )r  r  r;   s       r(   r  _SocketType.__exit__t  s     zz""8	BBr+   c                .    U R                   R                  $ r#   )r  rq   r6   s    r(   rq   _SocketType.family|  s    zz   r+   c                .    U R                   R                  $ r#   )r  rr   r6   s    r(   rr   _SocketType.type  s    zzr+   c                .    U R                   R                  $ r#   )r  rs   r6   s    r(   rs   _SocketType.proto  s    zzr+   c                    U R                   $ r#   )r  r6   s    r(   r   _SocketType.did_shutdown_SHUT_WR  s    )))r+   c                L    [        U R                  5      R                  SS5      $ )Nzsocket.socketztrio.socket.socket)reprr  replacer6   s    r(   r!  _SocketType.__repr__  s    DJJ''9MNNr+   c                H    [        U R                  R                  5       5      $ )z"Same as :meth:`socket.socket.dup`.)r~   r  r$  r6   s    r(   r$  _SocketType.dup  s    4::>>+,,r+   c                    U R                   R                  5       S:w  aD  [        R                  R	                  U R                   5        U R                   R                  5         g g )N)r  r   r3   r4   notify_closingr'  r6   s    r(   r'  _SocketType.close  sB    ::"$MM((4JJ %r+   c                  #    U R                  USS9I S h  vN n[        [        S5      (       ad  U R                  [        R                  :X  aF  US   (       a<  [
        R                  R                  U R                  R                  U5      I S h  vN $ [
        R                  R                  5       I S h  vN   U R                  R                  U5      $  N NG N#7f)NTr   r   r   )r   r   r]   rq   r   r3   rm   rn   r  r+  r4   
checkpointr*  s     r(   r+  _SocketType.bind  s     227$2GGNI..~555
 00'JJJ --**,,,::??7++ H K -s4   CCA8CC%C5C6 CCCc                    U R                   R                  U5        U[        R                  [        R                  4;   a  SU l        g g )NT)r  r2  r]   SHUT_WR	SHUT_RDWRr  r0  s     r(   r2  _SocketType.shutdown  s;    

D!N**N,D,DEE)-D& Fr+   c                B   [         R                  S:X  a3  [        R                  " U R                  // / S5      u  n  n[	        U5      $ [        R
                  " 5       nUR                  U R                  [        R                  5        [	        UR                  S5      5      $ )Nr   r   )r   r   selectr  rD   pollregisterPOLLIN)r&   rreadyr   ps       r(   r5  _SocketType.is_readable  sk    <<7"!==$**r2qALFAq<KKM	

4::v}}-AFF1Ir+   c                `   #    [         R                  " U R                  5      I S h  vN   g  N7fr#   )r   r8  r  r6   s    r(   r8  _SocketType.wait_writable  s     !!$**---s   $.,.c          	     (  #    U R                   [        R                  :X  a9  U R                  R	                  [        R
                  [        R                  5      nOSn[        U R                  U R                   U R                  UUUS9I S h  vN $  N7f)NF)r   r   r   )
rq   r]   r   r  r   IPPROTO_IPV6IPV6_V6ONLYr   rr   rs   )r&   r   r   r   s       r(   r   !_SocketType._resolve_address_nocp  s{      ;;.111**//++**K
  K*IIKKJJ#
 
 	
 
s   B	BBBc                D  #    [        5        IS h  vN   U" U R                  /UQ70 UD6sS S S 5      IS h  vN   $  N+ N! , IS h  vN  (       d  f       O= f U" U R                  5      I S h  vN     U" U R                  /UQ70 UD6$ ! [         a     Of = fMD  7fr#   )r    r  r.   )r&   r   r   r   r   s        r(   r   _SocketType._nonblocking_helper  s     8 ;;djj24262 ;;;;; $**%%%$**6t6v66" 	 sn   B =B AB ?B B AA
AB 1A42B 8B B 
BB BB c                \   #    U R                  5       I Sh  vN u  p[        U5      U4$  N7f)z-Like :meth:`socket.socket.accept`, but async.N)_acceptr   )r&   r   addrs      r(   r;  _SocketType.accept  s*     <<>)
!$'-- *s   ,*,c           	       #     U R                  USS9I S h  vN n[        5        IS h  vN   U R                  R                  U5      sS S S 5      IS h  vN   $  NC N2 N	! , IS h  vN  (       d  f       O= f[        R
                  " U R                  5      I S h  vN    O3! [        R                   a    U R                  R                  5         e f = fU R                  R                  [        R                  [        R                  5      nUS:w  a'  [        USU< S[        R                  " U5       35      eg 7f)NFr  r   zError connecting to z: )r   r    r  r>  r   r8  r3   	Cancelledr'  r   r]   r   SO_ERRORr   r   strerror)r&   r   errs      r(   r>  _SocketType.connect  s     
;	 66we6LLG {{` zz))'2a #{{ M"{{{f %%djj111~~ 	 JJ	 jj##N$=$=~?V?VW!8#!5g[2;;sCSBTUVV s   D>B% AB% AB% A!	B% AB% D>B% B% B% !A8'A*(A84*B% B!B% $D>%0CA)D>c                    g r#   rO   rA  s      r(   rE  _SocketType.recva      sr+   c                    g r#   rO   rH  s       r(   rK  _SocketType.recv_intoq  s    
 !r+   c                    g r#   rO   rN  s      r(   rP  _SocketType.recvfrom  s     69r+   c                    g r#   rO   rH  s       r(   rS  _SocketType.recvfrom_into  s    
 47r+   rU  c                    g r#   rO   rW  s       r(   rU  _SocketType.recvmsg  s	    
 SVr+   T)r   r[  c                    g r#   rO   r]  s       r(   r[  _SocketType.recvmsg_into  s	    
 QTr+   c                    g r#   rO   ra  s      r(   rc  _SocketType.send  r  r+   c                   #    g 7fr#   rO   rf  s      r(   ri  _SocketType.sendto  rk  rl  c                   #    g 7fr#   rO   rn  s       r(   ri  r    ro  rl  rO   r   c                   #    [        U5      nU R                  US   SS9I Sh  vN US'   U R                  " [        R                  [
        R                  R                  /UQ76 I Sh  vN $  NI N7f)z3Similar to :meth:`socket.socket.sendto`, but async.r  Fr  N)r   r   r   r   r8  r]   r   ri  )r&   r   	args_lists      r(   ri  r    sw     
 J	"88b8OO	" --!!((
 
 
 	
 P
s"   "A2A.AA2)A0*A20A2rq  c                   #    Ub  U R                  USS9I Sh  vN nU R                  [        R                  [        R
                  R                  UUUU5      I Sh  vN $  NH N7f)zSimilar to :meth:`socket.socket.sendmsg`, but async.

Only available on platforms where :meth:`socket.socket.sendmsg` is
available.

NFr  )r   r   r   r8  r]   r   rq  rs  s        r(   rq  _SocketType.sendmsg  sl      $"&"<"<Ye"<"TT	11##%%--   Us"   A&A"AA&A$A&$A&)r  r  )r   _stdlib_socket.socketrv  rw  rx  ry  r#   rz  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  rE   r  r  )r   r   r   rD   rC   r   )
r   2Callable[[_stdlib_socket.socket], Awaitable[None]]r   2Callable[Concatenate[_stdlib_socket.socket, P], T]r   r   r   r   rC   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )9rJ   rK   rL   rM   r)   r   r   r   r   r   r   r   r  r]   r  r   r  r  r   r   r   r   r   r
  r  r  r  rq   rr   rs   r  r!  r$  r'  r+  r2  r5  r8  r   r   r   r;  r   wait_readabler  r>  rE  rK  rP  rS  rU  r[  rc  ri  r   rq  rN   rO   r+   r(   r~   r~     s   	+ ##(( A AP P "	= 	= 		=
 	= 
	= W W  	
   
  "D D 	D
 #D D 
D. (+>+C+CS'I *,7 ||wgn&;&;WEE	0C,C (C (	C
 
C ! !       * *O-
,$..

 	

 

8$C$ ?$ 	$
 $ 
$T /$$G
.DW\ R
 ,""D 
 		!	! 	! 		!
 	! 1''I 
 	9	9 	9 4		9 0&&H 
 		7	7 	7 		7
 2	7 5++M ||wgn&;&;YGG
 %& 	VV "V 	V
 QV 3!!))
 ||wgn&;&;^LL
 %& 	T+T "T 	T
 OT 8!!..
 R+""D  5 
	    5	
 
  N!!((2rB
 C
$ ||wgn&;&;YGG 
%%--B	G <>.2	'	 9	 		
 ,	 	 
H		 HMr+   r~   )rP   HostnameResolver | NonerC   r  )rR   SocketFactory | NonerC   r  )r   r   r   r   )ro   zbytes | str | Nonerp   zbytes | str | int | Nonerq   r   rr   r   rs   r   rt   r   rC   z]list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]])rx   z+tuple[str, int] | tuple[str, int, int, int]rt   r   rC   ztuple[str, str])r{   ri   rC   r   )r   r  rC   r|   )
r   r   rq   AddressFamily | intrr   SocketKind | intrs   r   rC   r|   )r   r   rC   r|   )rq   r   rr   r   rs   r   rC   ztuple[SocketType, SocketType])
rq   r  rr   r  rs   r   r   r{  rC   r|   )
rq   r  r   r  rs   r   r   r{  rC   z1tuple[AddressFamily | int, SocketKind | int, int])F)r   r  r   r  r   rD   rC   z3Callable[Concatenate[_SocketType, P], Awaitable[T]])r   r   rq   r   rs   r   r   z
bool | intr   r   r   rD   rC   r   )U
__future__r   r   r  r   r]   r   operatorr   r   r   typingr   r   r	   r
   r   r   r   r   r   idnarl   r3   
trio._utilr   r   r   r   collections.abcr   typesr   typing_extensionsr   r   r   r   r   _abcr   r   r   r   r   __annotations__r    RunVarrQ   rS   rX   rZ   AI_NUMERICHOSTAI_NUMERICSERVrh   rg   rw   rz   r   r   r   SOCK_STREAMr   r   r   r   r   r   r   r   r   getattr_SOCK_TYPE_MASKr   r   r|   __dict__itemsr{   obj
startswithr   stdlib_type
stdlib_objr~   rO   r+   r(   <module>r/     s   " 	   
  ,
 
 
   & (#QQ5#A CL y  H 49<<@S3T	0 T6;llCS6T3 T.D(B --0M0MM P

P

"P
 P
 	P

 P
 P
P
f
9

 
2
* B7 #1"8"8+77	OOO O 	O
 O 8O <<7'.+>> N$$r2>B ?B
 <<7GYE9"**M#'M='sM478GY8^22C78E98 !!B;#((
A
A

A 
A #	
A <
A B7"0"8"8+77	--
- - 	-
 - 8-6      	 
 7 T NOQ/nna01 :?  9	NGGG G
 G G G 	GT\& \&@ $$**,ID#t%,,n.G.GG[$5
:*,,, H
 	$$CK -K* Kr+   