<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    if{                     @   s  d dddg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ZddlZddl	Z	ddl
mZ ddl
mZmZ dd	lmZ ejZz$ddlZdd
lmZmZmZmZ W n$ ek
r   ejdkr dZY nX dZdZe ZdZdgZeedrdZedg7 ZejdkrdZedg7 ZefddZ dd Z!dd Z"dd Z#dd Z$G dd dZ%erhG dd de%Z&G dd  d e%Z'G d!d de(Z)dOd"d Z*ejdkrdPd$dZ+n
dQd%dZ+G d&d' d'e(Z,d(d) Z-ejdkrG d*d+ d+e(Z.d,d- Z/d.Z0d/Z1d0Z2d1Z3d2d3 Z4d4d5 Z5G d6d7 d7e(Z6d8d9 Z7d:d; Z8G d<d= d=e)Z9d>d? Z:ejdkrtd@dA Z;ej<ej=hZ>dRdBdZ?n,ddl@Z@ee@dCre@jAZBne@jCZBdSdDdZ?ejdkrdEdF ZDdGdH ZEeFe'eD dIdJ ZGdKdL ZHeFe&eG ndMdF ZDdNdH ZEeFe'eD dS )TClientListenerPipewait    N   )util)AuthenticationErrorBufferTooShort)	reduction)WAIT_OBJECT_0WAIT_ABANDONED_0WAIT_TIMEOUTINFINITEwin32i    g      4@AF_INETAF_UNIXAF_PIPEc                 C   s   t  |  S Ntime	monotonic)timeout r   ?/opt/alt/python38/lib64/python3.8/multiprocessing/connection.py_init_timeout;   s    r   c                 C   s   t  | kS r   r   )tr   r   r   _check_timeout>   s    r   c                 C   sX   | dkrdS | dkr&t jdt dS | dkrLt jdt ttf ddS td	d S )
Nr   )Z	localhostr   r   z	listener-)prefixdirr   z\\.\pipe\pyc-%d-%d- zunrecognized family)	tempfileZmktempr   Zget_temp_dirosgetpidnext_mmap_counter
ValueErrorfamilyr   r   r   arbitrary_addressE   s    r(   c                 C   sJ   t jdkr| dkrtd|  t jdkrF| dkrFtt| sFtd|  d S )Nr   r   zFamily %s is not recognized.r   )sysplatformr%   hasattrsocketr&   r   r   r   _validate_familyS   s
    
r-   c                 C   sT   t | tkrdS t | tkr*| dr*dS t | tks@t| rDdS td|  d S )Nr   z\\r   r   zaddress type of %r unrecognized)typetuplestr
startswithr   is_abstract_socket_namespacer%   )addressr   r   r   address_type_   s    r4   c                   @   s   e Zd ZdZd+ddZdd Zdd Zd	d
 Zd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dZdd Zd-ddZd.d d!Zd"d# Zd/d%d&Zd'd( Zd)d* ZdS )0_ConnectionBaseNTc                 C   s>   |  }|dk rtd|s(|s(td|| _|| _|| _d S )Nr   zinvalid handlez6at least one of `readable` and `writable` must be True)	__index__r%   _handle	_readable	_writable)selfhandlereadablewritabler   r   r   __init__u   s    z_ConnectionBase.__init__c                 C   s   | j d k	r|   d S r   r7   _closer:   r   r   r   __del__   s    
z_ConnectionBase.__del__c                 C   s   | j d krtdd S )Nzhandle is closed)r7   OSErrorrA   r   r   r   _check_closed   s    
z_ConnectionBase._check_closedc                 C   s   | j stdd S )Nzconnection is write-only)r8   rC   rA   r   r   r   _check_readable   s    z_ConnectionBase._check_readablec                 C   s   | j stdd S )Nzconnection is read-only)r9   rC   rA   r   r   r   _check_writable   s    z_ConnectionBase._check_writablec                 C   s"   | j rd| _n|   tdd S )NFzbad message length)r9   r8   closerC   rA   r   r   r   _bad_message_length   s    z#_ConnectionBase._bad_message_lengthc                 C   s
   | j d kS r   r7   rA   r   r   r   closed   s    z_ConnectionBase.closedc                 C   s   | j S r   )r8   rA   r   r   r   r<      s    z_ConnectionBase.readablec                 C   s   | j S r   )r9   rA   r   r   r   r=      s    z_ConnectionBase.writablec                 C   s   |    | jS r   )rD   r7   rA   r   r   r   fileno   s    z_ConnectionBase.filenoc                 C   s$   | j d k	r z|   W 5 d | _ X d S r   r?   rA   r   r   r   rG      s    
z_ConnectionBase.closer   c                 C   s   |    |   t|}|jdkr.tt|}t|}|dk rFtd||k rVtd|d krh|| }n&|dk rztdn|| |krtd| ||||   d S )Nr   r   zoffset is negativezbuffer length < offsetzsize is negativezbuffer length < offset + size)rD   rF   
memoryviewitemsizebyteslenr%   _send_bytes)r:   bufoffsetsizemnr   r   r   
send_bytes   s"    


z_ConnectionBase.send_bytesc                 C   s$   |    |   | t| d S r   )rD   rF   rP   _ForkingPicklerdumpsr:   objr   r   r   send   s    z_ConnectionBase.sendc                 C   sJ   |    |   |d k	r(|dk r(td| |}|d krB|   | S )Nr   znegative maxlength)rD   rE   r%   _recv_bytesrH   getvalue)r:   Z	maxlengthrQ   r   r   r   
recv_bytes   s    
z_ConnectionBase.recv_bytesc              
   C   s   |    |   t|}|j}|t| }|dk r>tdn||krNtd|  }| }||| k rvt|	 |
d |||| || |   |W  5 Q R  S Q R X d S )Nr   znegative offsetzoffset too large)rD   rE   rL   rM   rO   r%   r\   tellr	   r]   seekreadinto)r:   rQ   rR   rT   rM   ZbytesizeresultrS   r   r   r   recv_bytes_into   s$    



z_ConnectionBase.recv_bytes_intoc                 C   s&   |    |   |  }t| S r   )rD   rE   r\   rW   loads	getbuffer)r:   rQ   r   r   r   recv   s    z_ConnectionBase.recv        c                 C   s   |    |   | |S r   )rD   rE   _pollr:   r   r   r   r   poll   s    z_ConnectionBase.pollc                 C   s   | S r   r   rA   r   r   r   	__enter__  s    z_ConnectionBase.__enter__c                 C   s   |    d S r   rG   r:   exc_type	exc_valueZexc_tbr   r   r   __exit__  s    z_ConnectionBase.__exit__)TT)r   N)N)r   )rg   )__name__
__module____qualname__r7   r>   rB   rD   rE   rF   rH   propertyrJ   r<   r=   rK   rG   rV   r[   r^   rc   rf   rj   rk   rp   r   r   r   r   r5   r   s.   







r5   c                   @   s@   e Zd ZdZejfddZdd ZdddZd	d
 Z	dd Z
dS )PipeConnectionFc                 C   s   || j  d S r   rI   )r:   Z_CloseHandler   r   r   r@     s    zPipeConnection._closec              	   C   sh   t j| j|dd\}}z<z |t jkr6t |jgdt}W n   |   Y nX W 5 |d\}}X d S )NT
overlappedF)	_winapiZ	WriteFiler7   GetOverlappedResultERROR_IO_PENDINGWaitForMultipleObjectseventr   cancel)r:   rQ   overrZnwrittenwaitresr   r   r   rP     s    
  zPipeConnection._send_bytesNc           	      C   s&  | j rd| _ t S |d kr dnt|d}ztj| j|dd\}}d z<z |tjkrdt|jgdt}W n   |   Y nX W 5 |d\}}|dkrt }||	  |  W S |tj
kr| ||  W S X  W n: tk
r } z|jtjkrtn W 5 d }~X Y nX tdd S )NF   Trv   r   z.shouldn't get here; expected KeyboardInterrupt)_got_empty_messageioBytesIOminrx   ReadFiler7   ry   writere   ZERROR_MORE_DATA_get_more_datarz   r{   r|   r   r}   rC   winerrorERROR_BROKEN_PIPEEOFErrorRuntimeError)	r:   maxsizeZbsizer~   r   Znreadfr   er   r   r   r\   &  s>    


  
zPipeConnection._recv_bytesc                 C   s.   | j st| jd dkrdS tt| g|S )Nr   T)r   rx   PeekNamedPiper7   boolr   ri   r   r   r   rh   F  s
    zPipeConnection._pollc                 C   s   |  }t }|| t| jd }|d k	rJt|| |krJ|   tj	| j|dd\}}|
d\}}||   |S )Nr   Trv   )re   r   r   r   rx   r   r7   rO   rH   r   ry   )r:   r~   r   rQ   r   leftr   Zrbytesr   r   r   r   L  s    
zPipeConnection._get_more_data)N)rq   rr   rs   r   rx   CloseHandler@   rP   r\   rh   r   r   r   r   r   ru     s   
 ru   c                   @   sx   e Zd Zer(ejfddZejZej	Z
nejfddZejZejZ
efddZe
fddZdd	 ZdddZdd Zd
S )
Connectionc                 C   s   || j  d S r   rI   r:   r@   r   r   r   r@   c  s    zConnection._closec                 C   s   || j  d S r   rI   r   r   r   r   r@   h  s    c                 C   s8   t |}|| j|}||8 }|dkr&q4||d  }qd S Nr   )rO   r7   )r:   rQ   r   	remainingrU   r   r   r   _sendm  s    zConnection._sendc                 C   sb   t  }| j}|}|dkr^|||}t|}|dkrJ||krBtntd|| ||8 }q|S )Nr   zgot end of file during message)r   r   r7   rO   r   rC   r   )r:   rS   readrQ   r;   r   chunkrU   r   r   r   _recvv  s    


zConnection._recvc                 C   s   t |}|dkrHtdd}td|}| | | | | | n8td|}|dkrr| | | | n| ||  d S )Ni!i!Qi @  )rO   structZpackr   )r:   rQ   rU   Z
pre_headerheaderr   r   r   rP     s    


zConnection._send_bytesNc                 C   s^   |  d}td| \}|dkr@|  d}td| \}|d k	rT||krTd S |  |S )N   r   r      r   )r   r   Zunpackr]   )r:   r   rQ   rS   r   r   r   r\     s    

zConnection._recv_bytesc                 C   s   t | g|}t|S r   )r   r   )r:   r   rr   r   r   rh     s    zConnection._poll)N)rq   rr   rs   rx   _multiprocessingZclosesocketr@   r[   Z_writerf   Z_readr!   rG   r   r   r   r   rP   r\   rh   r   r   r   r   r   \  s   	

r   c                   @   sN   e Zd ZdddZdd Zdd Zed	d
 Zedd Zdd Z	dd Z
dS )r   Nr   c                 C   sp   |p|rt |pt}|pt|}t| |dkr>t||| _nt|||| _|d k	rft|tsft	d|| _
d S Nr   zauthkey should be a byte string)r4   default_familyr(   r-   PipeListener	_listenerSocketListener
isinstancerN   	TypeError_authkey)r:   r3   r'   backlogauthkeyr   r   r   r>     s    zListener.__init__c                 C   s>   | j d krtd| j  }| jr:t|| j t|| j |S )Nzlistener is closed)r   rC   acceptr   deliver_challengeanswer_challenge)r:   cr   r   r   r     s    

zListener.acceptc                 C   s    | j }|d k	rd | _ |  d S r   )r   rG   )r:   Zlistenerr   r   r   rG     s    zListener.closec                 C   s   | j jS r   )r   _addressrA   r   r   r   r3     s    zListener.addressc                 C   s   | j jS r   )r   _last_acceptedrA   r   r   r   last_accepted  s    zListener.last_acceptedc                 C   s   | S r   r   rA   r   r   r   rk     s    zListener.__enter__c                 C   s   |    d S r   rl   rm   r   r   r   rp     s    zListener.__exit__)NNr   N)rq   rr   rs   r>   r   rG   rt   r3   r   rk   rp   r   r   r   r   r     s   
	

c                 C   sh   |p
t | }t| |dkr&t| }nt| }|d k	rHt|tsHtd|d k	rdt|| t|| |S r   )	r4   r-   
PipeClientSocketClientr   rN   r   r   r   )r3   r'   r   r   r   r   r   r     s    


Tc                 C   sj   | r>t  \}}|d |d t| }t| }n$t \}}t|dd}t|dd}||fS )NTFr=   r<   )r,   Z
socketpairsetblockingr   detachr!   pipe)duplexs1s2c1c2Zfd1Zfd2r   r   r   r     s    

c              
   C   s   t d}| r*tj}tjtjB }tt }}ntj}tj}dt }}t||tjB tj	B tj
tjB tjB d||tjtj}t||dtjtjtjtj}t|tjd d  tj|dd}|d\}	}
t|| d}t|| d}||fS )Nr   r   r   Trv   r   r   )r(   rx   PIPE_ACCESS_DUPLEXGENERIC_READGENERIC_WRITEBUFSIZEZPIPE_ACCESS_INBOUNDCreateNamedPipeFILE_FLAG_OVERLAPPEDFILE_FLAG_FIRST_PIPE_INSTANCEPIPE_TYPE_MESSAGEPIPE_READMODE_MESSAGE	PIPE_WAITNMPWAIT_WAIT_FOREVERNULL
CreateFileOPEN_EXISTINGSetNamedPipeHandleStateConnectNamedPipery   ru   )r   r3   ZopenmodeaccessZobsizeZibsizeZh1Zh2rw   _r   r   r   r   r   r   r     sT    
 
   	        c                   @   s&   e Zd Zd	ddZdd Zdd ZdS )
r   r   c                 C   s   t  tt || _zRtjdkr2| jt jt jd | jd | j	| | j
| | j | _W n  tk
r   | j   Y nX || _d | _|dkrt|stj| tj|fdd| _nd | _d S )Nposixr   Tr   r   argsZexitpriority)r,   getattr_socketr!   nameZ
setsockoptZ
SOL_SOCKETZSO_REUSEADDRr   ZbindZlistenZgetsocknamer   rC   rG   Z_familyr   r   r2   Finalizeunlink_unlink)r:   r3   r'   r   r   r   r   r>   G  s0    

 
   
zSocketListener.__init__c                 C   s&   | j  \}| _|d t| S NT)r   r   r   r   r   r   r:   sr   r   r   r   `  s    
zSocketListener.acceptc                 C   s0   z| j  W 5 | j }|d k	r*d | _ |  X d S r   )r   r   rG   )r:   r   r   r   r   rG   e  s    zSocketListener.closeN)r   )rq   rr   rs   r>   r   rG   r   r   r   r   r   C  s   
r   c              
   C   sP   t | }ttt|.}|d ||  t| W  5 Q R  S Q R X d S r   )r4   r,   r   r   Zconnectr   r   )r3   r'   r   r   r   r   r   o  s
    

r   c                   @   s4   e Zd ZdddZdddZdd Zed	d
 ZdS )r   Nc                 C   sL   || _ | jddg| _d | _td| j  tj| tj| j| j fdd| _	d S )NT)firstz listener created with address=%rr   r   )
r   _new_handle_handle_queuer   r   	sub_debugr   r   _finalize_pipe_listenerrG   )r:   r3   r   r   r   r   r>     s     
 zPipeListener.__init__Fc              
   C   sH   t jt jB }|r|t jO }t | j|t jt jB t jB t j	t
t
t jt jS r   )rx   r   r   r   r   r   r   r   r   ZPIPE_UNLIMITED_INSTANCESr   r   r   )r:   r   flagsr   r   r   r     s    
 
   zPipeListener._new_handlec              
   C   s   | j |   | j d}ztj|dd}W n0 tk
r^ } z|jtjkrN W 5 d }~X Y nPX z<zt
|jgdt}W n    |  t|  Y nX W 5 |	d\}}X t|S )Nr   Trv   F)r   appendr   poprx   r   rC   r   ZERROR_NO_DATAry   r{   r|   r   r}   r   ru   )r:   r;   r~   r   r   r   resr   r   r   r     s(      
zPipeListener.acceptc                 C   s$   t d| | D ]}t| qd S )Nz closing listener with address=%r)r   r   rx   r   )Zqueuer3   r;   r   r   r   r     s    z$PipeListener._finalize_pipe_listener)N)F)rq   rr   rs   r>   r   r   staticmethodr   r   r   r   r   r     s
   

r   c              
   C   s   t  }z6t| d t| tjtjB dtjtjtjtj}W q t	k
rz } z |j
tjtjfksht|rj W 5 d }~X Y qX qq t|tjd d  t|S )N  r   )r   rx   ZWaitNamedPiper   r   r   r   r   r   rC   r   ZERROR_SEM_TIMEOUTZERROR_PIPE_BUSYr   r   r   ru   )r3   r   hr   r   r   r   r     s8     
      r      s   #CHALLENGE#s	   #WELCOME#s	   #FAILURE#c                 C   s   dd l }t|ts$tdt|tt}| 	t
|  |||d }| d}||krl| 	t n| 	t tdd S )Nr    Authkey must be bytes, not {0!s}md5   zdigest received was wrong)hmacr   rN   r%   formatr.   r!   urandomMESSAGE_LENGTHrV   	CHALLENGEnewdigestr^   WELCOMEFAILUREr   Z
connectionr   r   messager   Zresponser   r   r   r     s    



r   c                 C   sx   dd l }t|ts$tdt|| d}|ttd  }|	||d
 }| | | d}|tkrttdd S )Nr   r   r   r   zdigest sent was rejected)r   r   rN   r%   r   r.   r^   rO   r   r   r   rV   r   r   r   r   r   r   r     s    



r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )ConnectionWrapperc                 C   s6   || _ || _|| _dD ]}t||}t| || qd S )N)rK   rG   rj   r^   rV   )_conn_dumps_loadsr   setattr)r:   connrX   rd   attrrZ   r   r   r   r>     s    
zConnectionWrapper.__init__c                 C   s   |  |}| j| d S r   )r   r   rV   )r:   rZ   r   r   r   r   r[     s    
zConnectionWrapper.sendc                 C   s   | j  }| |S r   )r   r^   r   r   r   r   r   rf     s    
zConnectionWrapper.recvN)rq   rr   rs   r>   r[   rf   r   r   r   r   r     s   r   c                 C   s   t | fd d d ddS )Nr   utf-8)	xmlrpclibrX   encode)rZ   r   r   r   
_xml_dumps  s    r  c                 C   s   t | d\\}}|S )Nr  )r  rd   decode)r   rZ   methodr   r   r   
_xml_loads  s    r  c                   @   s   e Zd Zdd ZdS )XmlListenerc                 C   s"   dd l ma t| }t|ttS r   )xmlrpc.clientclientr  r   r   r   r  r  rY   r   r   r   r     s    
zXmlListener.acceptN)rq   rr   rs   r   r   r   r   r   r	    s   r	  c                  O   s   dd l ma tt| |ttS r   )r
  r  r  r   r   r  r  )r   kwdsr   r   r   	XmlClient  s    r  c                 C   s   t | }g }|rt|d|}|tkr*qn\t|  krFtt| k rTn n
|t8 }n2t|  krptt| k r~n n
|t8 }ntd|||  ||d d  }d}q|S )NFzShould not get herer   r   )	listrx   r{   r   r   rO   r   r   r   )Zhandlesr   Lreadyr   r   r   r   _exhaustive_wait%  s     
 
r  c           
         s^  |d krt }n|dk rd}nt|d d }t| } i g }t  t }z@| D ]&}zt|d}	W n  tk
r   || < Y qPX zt	|	 dd\}}W n8 tk
r } zd |j }}|tkrƂ W 5 d }~X Y nX |t	jkr|| ||j< qP|rjt d d dkrjz|d	\}}W n* tk
rP } z
|j}W 5 d }~X Y nX |sjt|drjd|_ | d}qPt |}W 5 |D ]}|  q|D ]}z|d\}}W n6 tk
r } z|j}|tkr W 5 d }~X Y nX |t	j
kr|j } | |dkrt|drd|_qX  fd
d|D   fdd| D S )Nr   r   g      ?Tr   rK      )   r  Fc                 3   s   | ]} | V  qd S r   r   ).0r   )waithandle_to_objr   r   	<genexpr>  s     zwait.<locals>.<genexpr>c                    s   g | ]}| kr|qS r   r   )r  o)ready_objectsr   r   
<listcomp>  s      wait.<locals>.<listcomp>)r   intr  setr}   ry   rC   r   _ready_errorsrx   ZERROR_OPERATION_ABORTEDr|   addr+   r   r   AttributeErrorr6   r   rz   r   r)   Zgetwindowsversionr  keysupdate)
object_listr   Zov_listZready_handlesr~   r   r   r   r  rK   r   )r  r  r   r   ;  sh    







PollSelectorc              
   C   s   t  }| D ]}||tj q|d k	r4t | }||}|r\dd |D W  5 Q R  S |d k	r4|t  }|dk r4|W  5 Q R  S q4W 5 Q R X d S )Nc                 S   s   g | ]\}}|j qS r   )Zfileobj)r  keyZeventsr   r   r   r    s     r  r   )_WaitSelectorregister	selectorsZ
EVENT_READr   r   Zselect)r"  r   ZselectorrZ   Zdeadliner  r   r   r   r     s    
c              
   C   sZ   |   }t|tjtj6}ddlm} ||}t|| j	| j
ffW  5 Q R  S Q R X d S )Nr   )resource_sharer)rK   r,   Zfromfdr   ZSOCK_STREAMr   r(  Z	DupSocketrebuild_connectionr<   r=   )r   r;   r   r(  dsr   r   r   reduce_connection  s
    
r+  c                 C   s   |   }t|  ||S r   r   r   )r*  r<   r=   Zsockr   r   r   r)    s    r)  c                 C   sB   | j rtjnd| jrtjndB }t|  |}t|| j | jffS r   )	r<   rx   ZFILE_GENERIC_READr=   ZFILE_GENERIC_WRITEr
   Z	DupHandlerK   rebuild_pipe_connection)r   r   dhr   r   r   reduce_pipe_connection  s
    r/  c                 C   s   |   }t|||S r   )r   ru   )r.  r<   r=   r;   r   r   r   r-    s    r-  c                 C   s    t |  }t|| j| jffS r   )r
   ZDupFdrK   r)  r<   r=   )r   dfr   r   r   r+    s    c                 C   s   |   }t|||S r   r,  )r0  r<   r=   fdr   r   r   r)    s    )NN)T)T)N)N)I__all__r   r!   r)   r,   r   r   r    	itertoolsr   r   r   r   r	   contextr
   ZForkingPicklerrW   rx   r   r   r   r   ImportErrorr*   r   ZCONNECTION_TIMEOUTcountr$   r   Zfamiliesr+   r   r   r(   r-   r4   r5   ru   r   objectr   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r   ZERROR_NETNAME_DELETEDr  r   r'  r#  r%  ZSelectSelectorr+  r)  r&  r/  r-  r   r   r   r   <module>
   s   




 PT=

,,8	P
