
    z%i                        	 d dl Z d dl  d dlZd dlZd dlZd dlZd dlmZmZ 	 d dlZ e
edd      Z e
edd      Z e
edd      Zg d	Zej                   ej                   e               ej"                  d
ed         ej"                  ded         ej"                  ded         ej"                  ded        dZdZd Zej,                  j/                         j1                  d      ri Zded<   ded<   ded<   ded<   ded<   d ed!<   d"ed#<   d$ed%<   d&ed'<   d(ed)<   d*ed+<   d,ed-<   d.ed/<   d0ed1<   d2ed3<   d4ed5<   d6ed7<   d8ed9<   d:ed;<   d<ed=<   d>ed?<   d@edA<   dBedC<   dDedE<   dFedG<   dHedI<   dJedK<   dLedM<   dNedO<   dPedQ<   dRedS<   dTedU<   dVedW<   dXedY<   dZed[<   d\ed]<   d^ed_<   d`eda<   dbedc<   ddede<   dfedg<   dhedi<   djedk<   dledm<   dnedo<   dpedq<   dreds<   dtedu<   dvedw<   dxedy<   dzed{<   d|ed}<   d~ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ej5                  dҫ        G dӄ de      Z G dՄ de j:                        ZddׄZ ee j:                  dث      rd dl Z ddلZ!ej5                  dګ        ee j:                  d۫      rd dl Z dd܄Z"ej5                  dݫ        ee j:                  dޫ      rd߄ Z#ej5                  d        ee d      rde$d fdZ%ne&e$d fdZ%ej5                  d       de%_'        eehZ( G d dejR                        Z*ddZ+ e,       Z-e-dfdddZ.d Z/e&dddddZ0ddZ1y# e	$ r dZY w xY w)    N)*)IntEnumIntFlagEBADF	   EAGAIN   EWOULDBLOCK)fromfdgetfqdncreate_connectioncreate_serverhas_dualstack_ipv6AddressFamily
SocketKindr   c                 H    | j                         xr | j                  d      S )NAF_isupper
startswithCs    :/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/socket.py<lambda>r   O       !))+5!,,u"5     r   c                 H    | j                         xr | j                  d      S )NSOCK_r   r   s    r   r   r   T   s    !))+7!,,w"7 r   MsgFlagc                 H    | j                         xr | j                  d      S )NMSG_r   r   s    r   r   r   Y   s    !))+6!,,v"6 r   AddressInfoc                 H    | j                         xr | j                  d      S )NAI_r   r   s    r   r   r   ^   r   r   z	127.0.0.1z::1c                 8    	 	  ||       S # t         $ r | cY S w xY wN)
ValueError)value
enum_klasss     r   _intenum_converterr*   d   s+    %   s    winz)Specified event object handle is invalid.   zInsufficient memory available.   z#One or more parameters are invalid.W   zOverlapped operation aborted.i  z2Overlapped I/O event object not in signaled state.i  z)Overlapped operation will complete later.i  zThe operation was interrupted.i'  zA bad file handle was passed.i'  zPermission denied.i'  z!A fault occurred on the network??i'  z#An invalid operation was attempted.i&'  zToo many open files.i('  z!The socket operation would block.i3'  z,A blocking operation is already in progress.i4'  zOperation already in progress.i5'  zSocket operation on nonsocket.i6'  zDestination address required.i7'  zMessage too long.i8'  zProtocol wrong type for socket.i9'  zBad protocol option.i:'  zProtocol not supported.i;'  zSocket type not supported.i<'  zOperation not supported.i='  zProtocol family not supported.i>'  z0Address family not supported by protocol family.i?'  zThe network address is in use.i@'  z Cannot assign requested address.iA'  zNetwork is down.iB'  zNetwork is unreachable.iC'  z$Network dropped connection on reset.iD'  z!Software caused connection abort.iE'  zThe connection has been reset.iF'  zNo buffer space available.iG'  zSocket is already connected.iH'  zSocket is not connected.iI'  zThe network has been shut down.iJ'  zToo many references.iK'  zThe operation timed out.iL'  zConnection refused.iM'  zCannot translate name.iN'  zThe name is too long.iO'  zThe host is down.iP'  zThe host is unreachable.iQ'  zDirectory not empty.iR'  zToo many processes.iS'  zUser quota exceeded.iT'  zDisk quota exceeded.iU'  zStale file handle reference.iV'  zItem is remote.iW'  z!Network subsystem is unavailable.ik'  z!Winsock.dll version out of range.il'  z(Successful WSAStartup not yet performed.im'  zGraceful shutdown in progress.iu'  z*No more results from WSALookupServiceNext.iv'  zCall has been canceled.iw'  z Procedure call table is invalid.ix'  zService provider is invalid.iy'  z&Service provider failed to initialize.iz'  zSystem call failure.i{'  zService not found.i|'  zClass type not found.i}'  i~'  zCall was canceled.i'  zDatabase query was refused.i'  zHost not found.i*  z Nonauthoritative host not found.i*  zThis is a nonrecoverable error.i*  z*Valid name, no data record requested type.i*  zQoS receivers.i*  zQoS senders.i*  zNo QoS senders.i*  zQoS no receivers.i +  zQoS request confirmed.i+  zQoS admission error.i+  zQoS policy failure.i+  zQoS bad style.i+  zQoS bad object.i+  zQoS traffic control error.i+  zQoS generic error.i+  zQoS service type error.i+  zQoS flowspec error.i	+  zInvalid QoS provider buffer.i
+  zInvalid QoS filter style.i+  i+  zIncorrect QoS filter count.i+  zInvalid QoS object length.i+  zIncorrect QoS flow count.i+  zUnrecognized QoS object.i+  zInvalid QoS policy object.i+  zInvalid QoS flow descriptor.i+  z'Invalid QoS provider-specific flowspec.i+  z)Invalid QoS provider-specific filterspec.i+  z&Invalid QoS shape discard mode object.i+  z Invalid QoS shaping rate object.i+  z!Reserved policy QoS element type.i+  errorTabc                       e Zd Zy)_GiveupOnSendfileN)__name__
__module____qualname__ r   r   r1   r1      s    r   r1   c                   F    e Zd Z	 g dZddZd Zd Zd Zd Zd Z	d	 Z
d dddd
dZ eed      rd!dZnd!dZd!dZd Zd!dZd Zej(                  fdZd Z fdZe fd       Ze fd       Zej6                  dk(  rd Zd Znd Zd Zde_        de_         xZS )"socket)__weakref___io_refs_closedNc                     ||dk(  rt         }|dk(  rt        }|dk(  rd}t        j                  j	                  | ||||       d| _        d| _        y )Nr   F)AF_INETSOCK_STREAM_socketr7   __init__r9   r:   )selffamilytypeprotofilenos        r   r@   zsocket.__init__   sU    
 >| rz"{fdE6Br   c                     | S r&   r5   rA   s    r   	__enter__zsocket.__enter__   s    r   c                 >    | j                   s| j                          y y r&   )r:   close)rA   argss     r   __exit__zsocket.__exit__   s    ||JJL r   c                    	 t        | dd      }d| j                  j                  | j                  j                  |rdnd| j	                         | j
                  | j                  | j                  fz  }|sH	 | j                         }|r|dt        |      z  z  }	 | j                         }|r|dt        |      z  z  }|dz  }|S # t        t        f$ r Y <w xY w# t        t        f$ r Y -w xY w)	Nr:   Fz,<%s.%s%s fd=%i, family=%s, type=%s, proto=%iz	 [closed] z
, laddr=%sz
, raddr=%s>)getattr	__class__r3   r4   rE   rB   rC   rD   getsocknamestrerrorAttributeErrorgetpeername)rA   closedsladdrraddrs        r   __repr__zsocket.__repr__   s    	 y%0:~~((~~**${"{{}{{yyzz ((*E
22A((*E
22A 	
S >*  >* s$   6#C #C CCC+*C+c                 H    t        d| j                  j                  d      )Nzcannot pickle z object)	TypeErrorrQ   r2   rG   s    r   __getstate__zsocket.__getstate__  s!    .)@)@(C7KLLr   c                     	 t        | j                               }| j                  | j                  | j                  | j
                  |      }|j                  | j                                |S )NrE   )duprE   rQ   rB   rC   rD   
settimeout
gettimeout)rA   fdsocks      r   ra   z
socket.dup  sS    	
 ~~dkk499djj~L)*r   c                     	 | j                         \  }}t        | j                  | j                  | j                  |      }t               !| j                         r|j                  d       ||fS )Nr`   T)_acceptr7   rB   rC   rD   getdefaulttimeoutrc   setblocking)rA   rd   addrre   s       r   acceptzsocket.accept   s`    	 <<>Ddkk499djjD &4??+<T"Tzr   )encodingerrorsnewlinec                *   	 t        |      h dk  st        d|d      d|v }d|v xs | }d|v }d}	|r|	dz  }	|r|	dz  }	t        | |	      }
| xj                  dz  c_        |d	}|d
k  rt        j
                  }|d
k(  r|st        d      |
S |r|rt	        j                  |
|
|      }n/|rt	        j                  |
|      }nt	        j                  |
|      }|r|S t	        j                  |      }t	        j                  ||||      }||_        |S )N>   brwzinvalid mode z (only r, w, b allowed)rr   rq   rp   rN      r<   r   z!unbuffered streams must be binary)setr'   SocketIOr9   ioDEFAULT_BUFFER_SIZEBufferedRWPairBufferedReaderBufferedWritertext_encodingTextIOWrappermode)rA   r}   	bufferingrl   rm   rn   writingreadingbinaryrawmoderawbuffertexts                r   makefilezsocket.makefile0  s0   	 4yO+OPP++,WsNGsNGtW%Iq=..I> !DEEJw&&sC;F&&sI6F &&sI6FM##H-&'B	r   sendfilec                    | j                  |||       | j                         }	 |j                         }	 t        j                  |      j                  }|syt        |xs |d      }| j                         }	|	dk(  rt        d      t        t        d      rt        j                         }
nt        j                          }
|
j#                  |t        j$                         d}|
j&                  }t        j(                  }	 	 |	r ||	      st+        d      |r||z
  }|dk  rn	  |||||      }|dk(  rn||z  }||z  }?||dkD  rt        |d      r|j/                  |       S S S # t        t        j                  f$ r}t        |      d }~ww xY w# t        $ r}t        |      d }~ww xY w# t,        $ r |	s |        Y t        $ r}|dk(  rt        |      |d d }~ww xY w# |dkD  rt        |d      r|j/                  |       w w w xY w)Nr   i   @&non-blocking sockets are not supportedPollSelectorz	timed outseek)_check_sendfile_paramsrE   rU   rv   UnsupportedOperationr1   osfstatst_sizeOSErrorminrc   r'   hasattr	selectorsr   SelectSelectorregisterEVENT_WRITEselectr   TimeoutErrorBlockingIOErrorr   )rA   fileoffsetcountsocknorE   errfsize	blocksizetimeoutselector
total_sentselector_selectos_sendfilesents                  r   _sendfile_use_sendfilezsocket._sendfile_use_sendfile]  s   ''fe<[[]F--(00 ENUG4Ioo'G!| !IJJ y.1$113$335fi&;&;<J&ooO++K &w'?*;77$)J$6	$>!+*6669M   19!$"d*
7 8 ">gdF&;IIf% '<>s #B$;$;< -',,-  -',,-@ + !& ,- " ,%?
 #4C"88!t+, >gdF&;IIf% '<>sj   E& F  #G% $F. /G% &F?F

F	F+F&&F+.G" G% G"
GG""G% %&Hc                     t        d      )Nz,os.sendfile() not available on this platform)r1   rA   r   r   r   s       r   r   zsocket._sendfile_use_sendfile  s    #>@ @r   c                 L   | j                  |||       | j                         dk(  rt        d      |r|j                  |       |rt	        |d      nd}d}|j
                  }| j                  }	 	 |rt	        ||z
  |      }|dk  rn:t         ||            }|sn&	 	  ||      }	||	z  }|	t        |      k  r||	d  }nn$Q||dkD  r"t        |d      r|j                  ||z          S S S # t        $ r Y Zw xY w# |dkD  r"t        |d      r|j                  ||z          w w w xY w)Nr   r   i    r   )r   rc   r'   r   r   readsend
memoryviewlenr   r   )
rA   r   r   r   r   r   	file_read	sock_senddatar   s
             r   _sendfile_use_sendzsocket._sendfile_use_send  sM   ##D&%8??!EFFIIf(-Ct$4	
II	II		/ #EJ$6	 BI A~!)I"67	"( #d*
#d)+#';D!  & A~'$"7		&:-. #8~ + ! ! A~'$"7		&:-. #8~s0   0-C: C+ &C: +	C74C: 6C77C: :)D#c                    dt        |dd      vrt        d      | j                  t        z  st        d      |Jt	        |t
              st        dj                  |            |dk  rt        dj                  |            y y )Nrp   r}   z$file should be opened in binary modez+only SOCK_STREAM type sockets are supportedz+count must be a positive integer (got {!r})r   )rP   r'   rC   r>   
isinstanceintr]   formatr   s       r   r   zsocket._check_sendfile_params  s    gdFC00CDDyy;&JKKeS)AHHOQ Qz AHHOQ Q 	 r   c                 p    	 	 | j                  |||      S # t        $ r | j                  |||      cY S w xY wr&   )r   r1   r   r   s       r   r   zsocket.sendfile  sH    	"	@..tVUCC  	@**4??	@s    55c                     | j                   dkD  r| xj                   dz  c_         | j                  r| j                          y y )Nr   rs   )r9   r:   rJ   rG   s    r   _decref_socketioszsocket._decref_socketios  s1    ==1MMQM<<JJL r   c                 &    |j                  |        y r&   )rJ   )rA   _sss     r   _real_closezsocket._real_close  s    		$r   c                 R    d| _         | j                  dk  r| j                          y y )NTr   )r:   r9   r   rG   s    r   rJ   zsocket.close  s&    ==A r   c                 0    	 d| _         t        | 	         S )NT)r:   superdetachrA   rQ   s    r   r   zsocket.detach  s    	 w~r   c                 6    	 t        t        |   t              S r&   )r*   r   rB   r   r   s    r   rB   zsocket.family  s    	!%'.-@@r   c                 6    	 t        t        |   t              S r&   )r*   r   rC   r   r   s    r   rC   zsocket.type
  s    	!%',
;;r   ntc                 H    t        j                  | j                               S r&   )r   get_handle_inheritablerE   rG   s    r   get_inheritablezsocket.get_inheritable  s    ,,T[[];;r   c                 L    t        j                  | j                         |       y r&   )r   set_handle_inheritablerE   rA   inheritables     r   set_inheritablezsocket.set_inheritable  s    %%dkkm[Ar   c                 H    t        j                  | j                               S r&   )r   r   rE   rG   s    r   r   zsocket.get_inheritable  s    %%dkkm44r   c                 L    t        j                  | j                         |       y r&   )r   r   rE   r   s     r   r   zsocket.set_inheritable  s    t{{}k:r   z&Get the inheritable flag of the socketz&Set the inheritable flag of the socket)r<   r<   r<   N)rq   Nr   N) r2   r3   r4   	__slots__r@   rH   rL   r[   r^   ra   rk   r   r   r   r   r   r   r   r   r?   r7   r   rJ   r   propertyrB   rC   namer   r   __doc____classcell__rQ   s   @r   r7   r7      s    D6I <M	 )tT)V r:?	&B	@"/HQ@. &nn   A A
 < <
 
ww$	<	B	5	;FOFOr   r7   c                 6    	 t        |       }t        ||||      S r&   )ra   r7   )rd   rB   rC   rD   nfds        r   r   r     s#    
 b'C&$s++r   sendmsgc           	          	 | j                  |t        j                  t        j                  t	        j                  d|      fg      S Ni)r   r?   
SOL_SOCKET
SCM_RIGHTSarray)re   buffersfdsflagsaddresss        r   send_fdsr   )  sD    	 ||Gw'9'9C 5'7 &8 9 	9r   r   recvmsgc           	         	 t        j                   d      }| j                  |t        j                  ||j                  z              \  }}}}|D ]d  \  }}	}
|t        j
                  k(  s|	t        j                  k(  s/|j                  |
d t        |
      t        |
      |j                  z  z
          f |t        |      ||fS r   )
r   r   r?   CMSG_LENitemsizer   r   	frombytesr   list)re   bufsizemaxfdsr   r   msgancdatarj   
cmsg_level	cmsg_type	cmsg_datas              r   recv_fdsr   5  s    	 kk#$(LLVcll23%5!WeT07 	K,J	9g000Y'BTBT5Ti )II#i.3<<*GHJ K	K
 DIud**r   r   sharec                      	 t        ddd|       S )Nr   )r7   )infos    r   	fromsharer   I  s    	
 aAt$$r   r   
socketpairc                     	 | 	 t         } t        j                  | ||      \  }}t        | |||j                               }t        | |||j                               }||fS # t        $ r	 t        } Y gw xY wr&   )AF_UNIX	NameErrorr=   r?   r   r7   r   )rB   rC   rD   arp   s        r   r   r   T  s}    	 >!  !!&$6164
364
3!t  ! !s   A! !A32A3c                    | t         k(  rt        }n| t        k(  rt        }nt	        d      |t
        k7  rt	        d      |dk7  rt	        d      t        | ||      }	 |j                  |df       |j                          |j                         d d \  }}t        | ||      }	 |j                  d       	 |j                  ||f       |j                  d       |j                         \  }}		 |j                          ||fS # t        t        f$ r Y Jw xY w#  |j                           xY w# |j                          w xY w)Nz?Only AF_INET and AF_INET6 socket address families are supportedz)Only SOCK_STREAM socket type is supportedr   zOnly protocol zero is supported   FT)r=   
_LOCALHOSTAF_INET6_LOCALHOST_V6r'   r>   r7   bindlistenrR   ri   connectr   InterruptedErrorrk   rJ   )
rB   rC   rD   hostlsockrj   portcsockssock_s
             r   r   r   i  s<   WDx D - . .;HIIA:>?? vtU+	JJay!LLN**,Ra0JD$64/E
!!%(MM4,/ !!$' <<>q
 KKMu~ ()9: KKMsC   AD. %D 7D 
$D DD DD D++D. .E a8  socketpair([family[, type[, proto]]]) -> (socket object, socket object)
Create a pair of socket objects from the sockets returned by the platform
socketpair() function.
The arguments are the same as for socket() except the default family is AF_UNIX
if defined on the platform; otherwise, the default is AF_INET.
c                   j     e Zd Z	 d Zd Zd Zd Zd Z fdZd Z	e
d        Ze
d	        Zd
 Z xZS )ru   c                     |dvrt        d|z        t        j                  j                  |        || _        d|vr|dz  }|| _        d|v | _        d|v | _        d| _        y )N)rq   rr   rwrbwbrwbzinvalid mode: %rrp   rq   rr   F)	r'   rv   	RawIOBaser@   _sock_mode_reading_writing_timeout_occurred)rA   re   r}   s      r   r@   zSocketIO.__init__  sj    ::/$677
d#
d?CKD
tt!&r   c                    	 | j                          | j                          | j                  rt        d      	 	 | j                  j                  |      S # t        $ r	 d| _         t        $ r}|j                  t        v rY d }~y  d }~ww xY w)Nz!cannot read from timed out objectT)
_checkClosed_checkReadabler  r   r  	recv_intor   rT   errno_blocking_errnosrA   rp   es      r   readintozSocketIO.readinto  s    	 	!!=>>zz++A.. )-& 77..s   A B/BBBc                     	 | j                          | j                          	 | j                  j                  |      S # t        $ r}|j
                  t        v rY d }~y  d }~ww xY wr&   )r  _checkWritabler  r   rT   r  r  r  s      r   writezSocketIO.write  s\    	
 		::??1%% 	ww**		s   > 	A$AAA$c                 J    	 | j                   rt        d      | j                  S NzI/O operation on closed socket.)rW   r'   r  rG   s    r   readablezSocketIO.readable  $    	;;>??}}r   c                 J    	 | j                   rt        d      | j                  S r$  )rW   r'   r  rG   s    r   writablezSocketIO.writable  r&  r   c                 P    	 | j                   rt        d      t        |          S r$  )rW   r'   r   seekabler   s    r   r*  zSocketIO.seekable  s)    	;;>??w!!r   c                 X    	 | j                          | j                  j                         S r&   )r  r  rE   rG   s    r   rE   zSocketIO.fileno  s&    	zz  ""r   c                 <    | j                   s| j                         S y)Nr<   )rW   rE   rG   s    r   r   zSocketIO.name  s    {{;;= r   c                     | j                   S r&   )r  rG   s    r   r}   zSocketIO.mode  s    zzr   c                     	 | j                   ry t        j                  j                  |        | j                  j                          d | _        y r&   )rW   rv   r  rJ   r  r   rG   s    r   rJ   zSocketIO.close  s<    	 ;;
4 

$$&
r   )r2   r3   r4   r@   r  r"  r%  r(  r*  rE   r   r   r}   rJ   r   r   s   @r   ru   ru     sX    
'. "#    r   ru   c                     	 | j                         } | r| dv r
t               } 	 t        |       \  }}}|j                  d|       |D ]	  } d| v s | S  |} | S # t        $ r Y | S w xY w)N)z0.0.0.0z::r   .)stripgethostnamegethostbyaddrinsertrT   )r   hostnamealiasesipaddrss       r   r   r     s     ::<D4,,}
%24%8"'7 	q(# 	Dd{ K	 DK   Ks   A 	A#"A#F)
all_errorsc                $   	 | \  }}g }t        ||dt              D ]j  }|\  }}	}
}}d }	 t        ||	|
      }|t        ur|j	                  |       |r|j                  |       |j                  |       |j                          |c S  t        |      r	 |s|d   t        d|      t        d      # t        $ r?}|s|j                          |j                  |       ||j                          Y d }~d }~ww xY w# |j                          w xY w)Nr   zcreate_connection failedz!getaddrinfo returns an empty list)getaddrinfor>   r7   _GLOBAL_DEFAULT_TIMEOUTrb   r  r  clearrT   appendrJ   r   ExceptionGroup)r   r   source_addressr8  r  r  
exceptionsresafsocktyperD   	canonnamesare   excs                  r   r   r   *  s    JD$J4q+6 -0*HeY	"h.D55(		.)LLK* :	 m# !;ZHH
 788!  	  "c"

	 s$   AB2C= 2	C:;5C55C:=Dc                      	 t         r t        t        d      rt        t        d      sy	 t        t        t
              5 } | j                  t        t        d       	 d d d        y# 1 sw Y   y xY w# t        $ r Y yw xY w)NIPPROTO_IPV6IPV6_V6ONLYFr   T)
has_ipv6r   r?   r7   r   r>   
setsockoptrH  rI  rT   )re   s    r   r   r   ]  so     7N37M2Hk* 	dOOL+q9	 	 	  s.   A0 A$A0 $A-)A0 -A0 0	A<;A<)rB   backlog
reuse_portdualstack_ipv6c                |   	 |rt        t        d      st        d      |r)t               st        d      |t        k7  rt        d      t        |t              }	 t        j                  dvr,t        t        d      r	 |j                  t        t        d       |r|j                  t        t        d       t        rb|t        k(  rY|r|j                  t        t         d       n;t        t        d	      r+t        t        d
      r|j                  t        t         d       	 |j#                  |        ||j)                          |S |j)                  |       |S # t        $ r Y w xY w# t        $ r.}|j$                  d| d}t        |j&                  |      d d }~ww xY w# t        $ r |j+                           w xY w)NSO_REUSEPORTz+SO_REUSEPORT not supported on this platformz-dualstack_ipv6 not supported on this platformz'dualstack_ipv6 requires AF_INET6 family)r   cygwinSO_REUSEADDRrs   r   rI  rH  z& (while attempting to bind on address ))r   r?   r'   r   r   r7   r>   r   r   rK  r   rR  rT   rP  rJ  rH  rI  r  strerrorr  r  rJ   )r   rB   rL  rM  rN  re   r   r   s           r   r   r   m  s   " ''>:FGG!#LMMXFGG&+&D' 77**0
L!<
 OOJa8(*k1=-0G^4k1=	2IIg
 ?KKM  KK -     	2w(C		3'T1	2  

s[   "F  >E BF  E& 0F  F  	E# F  "E##F  &	F/)FFF   F;c                     	 g }t        j                  | |||||      D ]<  }|\  }}	}}
}|j                  t        |t              t        |	t
              ||
|f       > |S r&   )r?   r:  r=  r*   r   r   )r  r  rB   rC   rD   r   addrlistrA  rB  rC  rD  rE  s               r   r:  r:    su     H""4vtUEJ 0-0*HeY+B>+HjA	2/ 	00
 Or   )r   r   )rN   )r   r   r   r   )2r?   r   sysrv   r   enumr   r   r  ImportErrorrP   r   r   r
   __all__extend_get_exports_list	_convert_r2   r   r   r*   platformlowerr   r/   r=  	Exceptionr1   r7   r   r   r   r   r   r   r>   r   r=   r   r  r  ru   r   objectr;  r   r   r   r:  r5   r   r   <module>rb     s  .`     ! 	w"	"	%e]B/@ #r##G, -   57
   79
   68
   57
 
 <<""5)H=HQK2HQK8HRL3HSMHHSM?HSM6HUO5HUO*HUO9HUO;HUO,HUO9HUODHUO6HUO6HUO5HUO)HUO7HUO,HUO/HUO2HUO0HUO6HUOHHUO6HUO8HUO(HUO/HUO<HUO9HUO6HUO2HUO4HUO0HUO7HUO,HUO0HUO+HUO.HUO-HUO)HUO0HUO,HUO+HUO,HUO,HUO4HUO'HUO9HUO9HUO@HUO6HUOBHUO/HUO8HUO4HUO>HUO,HUO*HUO-HUOBHUO*HUO3HUO'HUO8HUO7HUOBHUO&HUO$HUO'HUO)HUO.HUO,HUO+HUO&HUO'HUO2HUO*HUO/HUO+HUO4HUO1HUO1HUO3HUO2HUO1HUO0HUO2HUO4HUO?HUOAHUO>HUO8HUO9HUONN: )	 (DGW^^ DGL
, 7>>9%9 NN:
7>>9%+" NN:
7>>7#% NN;
7L![ * "1 #H NN< 
  [* rr|| rj6 !( '>%)099>09f  &-du!&BJm  Es   O/ /O:9O: