ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3

  \3k                 @   sl  d dl Z d dl T d dlZd dlZd dlZd dlZd dlmZmZ yd dlZW n e	k
rd   dZY nX e
eddZe
eddZe
eddZd	d
dddgZejeje  ejdedd  ejdedd  ejdedd  ejdedd  dZdZdd ZeZejj j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/< d0ed1< d2ed3< d4ed5< d6ed7< ejd8 G d9d: d:eZG d;d< d<e jZdLd=d	Ze e jd>rd?d@ Z!ejd@ e e dArde"d fdBdAZ#ne$e"d fdCdAZ#ejdA dDe#_%eehZ&G dEdF dFej'Z(dMdHd
Z)e* Z+e+dfdIdZ,dNdJdKZ-dS )O    N)*)IntEnumIntFlagEBADF	   EAGAIN   EWOULDBLOCKfromfdgetfqdncreate_connectionAddressFamily
SocketKindc             C   s   | j  o| jdS )NZAF_)isupper
startswith)C r   /usr/lib64/python3.6/socket.py<lambda>L   s    r   c             C   s   | j  o| jdS )NZSOCK_)r   r   )r   r   r   r   r   Q   s    ZMsgFlagc             C   s   | j  o| jdS )NZMSG_)r   r   )r   r   r   r   r   V   s    ZAddressInfoc             C   s   | j  o| jdS )NZAI_)r   r   )r   r   r   r   r   [   s    z	127.0.0.1z::1c             C   s"   y|| S  t k
r   | S X d S )N)
ValueError)valueZ
enum_klassr   r   r   _intenum_convertera   s    r   winz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 The socket operation would blocki3'  z,A blocking operation is already in progress.i4'  zThe network address is in use.i@'  zThe connection has been reset.iF'  zThe network has been shut down.iJ'  zThe operation timed out.iL'  zConnection refused.iM'  zThe name is too long.iO'  zThe host is down.iP'  zThe host is unreachable.iQ'  errorTabc               @   s   e Zd ZdS )_GiveupOnSendfileN)__name__
__module____qualname__r   r   r   r   r      s    r   c                   s0  e Zd ZdddgZeeddfddZdd	 Zd
d Zdd Z	dd Z
dd Zdd Zd7ddddddZeedr~d8ddZn
d9ddZd:ddZdd Zd;d d!Zd"d# Zejfd$d%Zd&d' Z fd(d)Ze fd*d+Ze fd,d-Zejd.krd/d0 Zd1d2 Znd3d0 Zd4d2 Zd5e_ d6e_   Z!S )<socket__weakref___io_refs_closedr   Nc             C   s$   t jj| |||| d| _d| _d S )Nr   F)_socketr   __init__r    r!   )selffamilytypeprotofilenor   r   r   r#      s    zsocket.__init__c             C   s   | S )Nr   )r$   r   r   r   	__enter__   s    zsocket.__enter__c             G   s   | j s| j  d S )N)r!   close)r$   argsr   r   r   __exit__   s    zsocket.__exit__c             C   s   t | dd}d| jj| jj|r"dnd| j | j| j| jf }|sy | j }|r^|dt	| 7 }W n t
k
rt   Y nX y | j }|r|dt	| 7 }W n t
k
r   Y nX |d7 }|S )	Nr!   Fz,<%s.%s%s fd=%i, family=%s, type=%s, proto=%iz	 [closed] z
, laddr=%sz
, raddr=%s>)getattr	__class__r   r   r(   r%   r&   r'   getsocknamestrerrorZgetpeername)r$   closedsZladdrZraddrr   r   r   __repr__   s0    

zsocket.__repr__c             C   s   t dd S )NzCannot serialize socket object)	TypeError)r$   r   r   r   __getstate__   s    zsocket.__getstate__c             C   s6   t | j }| j| j| j| j|d}|j| j  |S )N)r(   )dupr(   r0   r%   r&   r'   
settimeout
gettimeout)r$   fdsockr   r   r   r9      s    z
socket.dupc             C   sZ   | j  \}}| jt jdd @ }t| j|| j|d}t d krR| j rR|j	d ||fS )NZSOCK_NONBLOCKr   )r(   T)
Z_acceptr&   globalsgetr   r%   r'   Zgetdefaulttimeoutr;   setblocking)r$   r<   addrr&   r=   r   r   r   accept   s    
zsocket.acceptr)encodingerrorsnewlinec            C   s   t |dddhks td|f d|k}d|kp4| }d|k}d}	|rN|	d7 }	|rZ|	d7 }	t| |	}
|  jd7  _|d kr~d	}|dk rtj}|dkr|std|
S |r|rtj|
|
|}n|rtj|
|}ntj|
|}|r|S tj	||||}||_
|S )
NrC   wbz&invalid mode %r (only r, w, b allowed)r-      r   z!unbuffered streams must be binary)setr   SocketIOr    ioDEFAULT_BUFFER_SIZEBufferedRWPairBufferedReaderBufferedWriterTextIOWrappermode)r$   rS   	bufferingrD   rE   rF   ZwritingZreadingZbinaryZrawmoderawbuffertextr   r   r   makefile   s<    
zsocket.makefilesendfilec          2   C   s  | j ||| | j }y|j }W n0 ttjfk
rR } zt|W Y d d }~X nX ytj|j}W n* t	k
r } zt|W Y d d }~X nX |sdS |s|n|}| j
 }	|	dkrtdttdrtj }
ntj }
|
j|tj d}|
j}tj}zx|	r||	 rtjd|r0|| }|dkr0P y|||||}W n^ tk
rf   |	s`|  wY q t	k
r } z|dkrt||d W Y d d }~X qX |dkrP ||7 }||7 }qW |S |dkrt|dr|j| X d S )Nr   z&non-blocking sockets are not supportedPollSelectorz	timed outseek)_check_sendfile_paramsr(   AttributeErrorrM   UnsupportedOperationr   osfstatst_sizeOSErrorr;   r   hasattr	selectorsrZ   ZSelectSelectorregisterZEVENT_WRITEZselectrY   r"   timeoutBlockingIOErrorr[   )r$   fileoffsetcountZsocknor(   errZfsize	blocksizerf   Zselector
total_sentZselector_selectZos_sendfilesentr   r   r   _sendfile_use_sendfile  s`    





zsocket._sendfile_use_sendfilec             C   s   t dd S )Nz,os.sendfile() not available on this platform)r   )r$   rh   ri   rj   r   r   r   ro   G  s    c       
      C   s  | j ||| | j dkr"td|r0|j| |r>t|dnd}d}|j}| j}zx|rrt|| |}|dkrrP t||}|sP xLy||}	W n tk
r   wY qX ||	7 }|	t	|k r||	d  }qP qW qVW |S |dkot
|d r|j||  X d S )Nr   z&non-blocking sockets are not supportedi    r[   )r\   r;   r   r[   minreadsend
memoryviewrg   lenrc   )
r$   rh   ri   rj   rl   rm   Z	file_readZ	sock_senddatarn   r   r   r   _sendfile_use_sendK  s<    

zsocket._sendfile_use_sendc             C   sd   dt |ddkrtd| jt@ s*td|d k	r`t|tsJtdj||dkr`tdj|d S )NrH   rS   z$file should be opened in binary modez+only SOCK_STREAM type sockets are supportedz+count must be a positive integer (got {!r})r   )r/   r   r&   SOCK_STREAM
isinstanceintr7   format)r$   rh   ri   rj   r   r   r   r\   o  s    

zsocket._check_sendfile_paramsc             C   s2   y| j |||S  tk
r,   | j|||S X d S )N)ro   r   rv   )r$   rh   ri   rj   r   r   r   rY   |  s    zsocket.sendfilec             C   s*   | j dkr|  j d8  _ | jr&| j  d S )Nr   rI   )r    r!   r*   )r$   r   r   r   _decref_socketios  s    
zsocket._decref_socketiosc             C   s   |j |  d S )N)r*   )r$   Z_ssr   r   r   _real_close  s    zsocket._real_closec             C   s   d| _ | jdkr| j  d S )NTr   )r!   r    r|   )r$   r   r   r   r*     s    
zsocket.closec                s   d| _ t j S )NT)r!   superdetach)r$   )r0   r   r   r~     s    zsocket.detachc                s   t t jtS )N)r   r}   r%   r   )r$   )r0   r   r   r%     s    zsocket.familyc                s   t t jtS )N)r   r}   r&   r   )r$   )r0   r   r   r&     s    zsocket.typentc             C   s   t j| j S )N)r_   Zget_handle_inheritabler(   )r$   r   r   r   get_inheritable  s    zsocket.get_inheritablec             C   s   t j| j | d S )N)r_   Zset_handle_inheritabler(   )r$   inheritabler   r   r   set_inheritable  s    zsocket.set_inheritablec             C   s   t j| j S )N)r_   r   r(   )r$   r   r   r   r     s    c             C   s   t j| j | d S )N)r_   r   r(   )r$   r   r   r   r   r     s    z&Get the inheritable flag of the socketz&Set the inheritable flag of the socket)rC   N)r   N)r   N)r   N)r   N)"r   r   r   	__slots__AF_INETrw   r#   r)   r,   r6   r8   r9   rB   rX   rc   r_   ro   rv   r\   rY   r{   r"   r   r|   r*   r~   propertyr%   r&   namer   r   __doc____classcell__r   r   )r0   r   r      s:   
	)
A

$


r   c             C   s   t | }t||||S )N)r9   r   )r<   r%   r&   r'   Znfdr   r   r   r
     s    Zsharec             C   s   t ddd| S )Nr   )r   )infor   r   r   	fromshare  s    r   
socketpairc             C   sh   | d kr*yt } W n tk
r(   t} Y nX tj| ||\}}t| |||j }t| |||j }||fS )N)ZAF_UNIX	NameErrorr   r"   r   r   r~   )r%   r&   r'   arH   r   r   r   r     s    
c       
      C   s  | t krt}n| tkrt}ntd|tkr4td|dkrDtdt| ||}z|j|df |j  |j	 d d \}}t| ||}yP|j
d y|j||f W n ttfk
r   Y nX |j
d |j \}}	W n   |j   Y nX W d |j  X ||fS )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   
_LOCALHOSTZAF_INET6_LOCALHOST_V6r   rw   r   bindZlistenr1   r@   connectrg   InterruptedErrorrB   r*   )
r%   r&   r'   hostZlsockrA   portZcsockZssock_r   r   r   r     s8    


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                   sl   e Zd Zdd Zdd Zdd Zdd Zd	d
 Z fddZdd Z	e
dd Ze
dd Zdd Z  ZS )rL   c             C   sZ   |d
krt d| tjj|  || _d|kr6|d7 }|| _d|k| _d|k| _d	| _d S )NrC   rG   rwrbwbrwbzinvalid mode: %rrH   F)rC   rG   r   r   r   r   )	r   rM   	RawIOBaser#   _sock_mode_reading_writing_timeout_occurred)r$   r=   rS   r   r   r   r#   0  s    

zSocketIO.__init__c             C   s   | j   | j  | jrtdxby| jj|S  tk
rH   d| _ Y q  tk
r| } z|jd t	krjd S  W Y d d }~X q X q W d S )Nz!cannot read from timed out objectTr   )
_checkClosed_checkReadabler   rb   r   Z	recv_intorf   r3   r+   _blocking_errnos)r$   rH   er   r   r   readinto<  s    zSocketIO.readintoc             C   sX   | j   | j  y| jj|S  tk
rR } z|jd tkr@d S  W Y d d }~X nX d S )Nr   )r   _checkWritabler   rr   r3   r+   r   )r$   rH   r   r   r   r   writeS  s    zSocketIO.writec             C   s   | j rtd| jS )NzI/O operation on closed socket.)r4   r   r   )r$   r   r   r   readablec  s    zSocketIO.readablec             C   s   | j rtd| jS )NzI/O operation on closed socket.)r4   r   r   )r$   r   r   r   writablej  s    zSocketIO.writablec                s   | j rtdt j S )NzI/O operation on closed socket.)r4   r   r}   seekable)r$   )r0   r   r   r   q  s    zSocketIO.seekablec             C   s   | j   | jj S )N)r   r   r(   )r$   r   r   r   r(   x  s    zSocketIO.filenoc             C   s   | j s| j S dS d S )NrI   rJ   )r4   r(   )r$   r   r   r   r   ~  s    zSocketIO.namec             C   s   | j S )N)r   )r$   r   r   r   rS     s    zSocketIO.modec             C   s*   | j r
d S tjj|  | jj  d | _d S )N)r4   rM   r   r*   r   r{   )r$   r   r   r   r*     s
    
zSocketIO.close)r   r   r   r#   r   r   r   r   r   r(   r   r   rS   r*   r   r   r   )r0   r   rL     s   rL   r-   c             C   sp   | j  } |  s| dkrt } yt| \}}}W n tk
rB   Y n*X |jd| x|D ]} d| krVP qVW |} | S )Nz0.0.0.0r   .)stripZgethostnameZgethostbyaddrr3   insert)r   ZhostnamealiasesZipaddrsr   r   r   r     s    	
c             C   s   | \}}d }xt ||dtD ]}|\}}}	}
}d }y>t|||	}|tk	rR|j| |r`|j| |j| d }|S  tk
r } z|}|d k	r|j  W Y d d }~X qX qW |d k	r|ntdd S )Nr   z!getaddrinfo returns an empty list)	getaddrinforw   r   _GLOBAL_DEFAULT_TIMEOUTr:   r   r   r3   r*   )Zaddressrf   Zsource_addressr   r   rk   resafsocktyper'   	canonnamesar=   r   r   r   r   r     s*    


c             C   sT   g }xJt j| |||||D ]2}|\}}	}}
}|jt|tt|	t||
|f qW |S )N)r"   r   appendr   r   r   )r   r   r%   r&   r'   flagsZaddrlistr   r   r   r   r   r   r   r   r     s    r   )r   )r-   )r   r   r   r   ).r"   r_   sysrM   rd   enumr   r   errnoImportErrorr/   r   r   r	   __all__extend_get_exports_list_convertr   r   r   r   r   Z_realsocketplatformlowerr   r   r   	Exceptionr   r
   rc   r   rw   r   r   r   r   r   rL   r   objectr   r   r   r   r   r   r   <module>1   s    






  C
	
$
u
'