<!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>

Yf                 @   sJ  d  Z  d d l Z e j d k r- e d   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 d d d	 g Z d
 Z e	 j Z e	 j Z e j   Z e e d  r e j Z n e j e j d d d  Z d d d d d e d d  Z Gd d	   d	  Z Gd d   d e	 j  Z d S)z*
Various Windows specific bits and pieces
    Nwin32z
win32 only
socketpairpipePopenPIPE
PipeHandlei    c       
      C   sk  |  t  j k r d } n$ |  t  j k r0 d } n t d   | t  j k rW t d   | d k ro t d   t  j  |  | |  } z | j | d f  | j d  | j   d d	  \ } } t  j  |  | |  } yb | j d
  y | j	 | | f  Wn t
 t f k
 rYn X| j d  | j   \ } }	 Wn | j     Yn XWd | j   X| | f S)zA socket pair usable as a self-pipe, for Windows.

        Origin: https://gist.github.com/4325783, by Geert Jansen.
        Public domain.
        z	127.0.0.1z::1z?Only AF_INET and AF_INET6 socket address families are supportedz)Only SOCK_STREAM socket type is supportedr   zOnly protocol zero is supported   N   FT)socketAF_INETZAF_INET6
ValueErrorSOCK_STREAMZbindZlistenZgetsocknameZsetblockingZconnectBlockingIOErrorInterruptedErrorZacceptclose)
ZfamilytypeprotohostZlsockZaddrZportZcsockZssock_ r   :/opt/alt/python35/lib64/python3.5/asyncio/windows_utils.pyr   %   s8    		
duplexF
overlappedTbufsizec             C   s  t  j d d t j   t t  f  } |  rW t j } t j t j	 B} | | } } n t j
 } t j	 } d | } } | t j O} | d r | t j O} | d r t j } n d } d }	 }
 y t j | | t j d | | t j t j  }	 t j | | d t j t j | t j  }
 t j |	 d d } | j d  |	 |
 f SWn= |	 d k	 rft j |	  |
 d k	 rt j |
    Yn Xd S)zELike os.pipe() but with overlapped support and using handles not fds.prefixz\\.\pipe\python-pipe-%d-%d-r   r   Nr   T)tempfileZmktemposgetpidnext_mmap_counter_winapiZPIPE_ACCESS_DUPLEXZGENERIC_READZGENERIC_WRITEZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ	PIPE_WAITZNMPWAIT_WAIT_FOREVERZNULLZ
CreateFileZOPEN_EXISTINGZConnectNamedPipeZGetOverlappedResultCloseHandle)r   r   r   ZaddressZopenmodeaccessZobsizeZibsizeZflags_and_attribsZh1Zh2Zovr   r   r   r   S   s@    			


c               @   s   e  Z d  Z d Z d d   Z d d   Z e d d    Z d d	   Z d
 e	 j
 d d  Z d d   Z d d   Z d d   Z d S)r   zWrapper for an overlapped pipe handle which is vaguely file-object like.

    The IOCP event loop can use these instead of socket objects.
    c             C   s   | |  _  d  S)N)_handle)selfhandler   r   r   __init__   s    zPipeHandle.__init__c             C   s9   |  j  d  k	 r d |  j  } n d } d |  j j | f S)Nz	handle=%rclosedz<%s %s>)r#   	__class____name__)r$   r%   r   r   r   __repr__   s    zPipeHandle.__repr__c             C   s   |  j  S)N)r#   )r$   r   r   r   r%      s    zPipeHandle.handlec             C   s"   |  j  d  k r t d   |  j  S)NzI/O operatioon on closed pipe)r#   r   )r$   r   r   r   fileno   s    zPipeHandle.filenor!   c            C   s)   |  j  d  k	 r% | |  j   d  |  _  d  S)N)r#   )r$   r!   r   r   r   r      s    zPipeHandle.closec             C   s1   |  j  d  k	 r- t j d |  t  |  j   d  S)Nzunclosed %r)r#   warningswarnResourceWarningr   )r$   r   r   r   __del__   s    zPipeHandle.__del__c             C   s   |  S)Nr   )r$   r   r   r   	__enter__   s    zPipeHandle.__enter__c             C   s   |  j    d  S)N)r   )r$   tvtbr   r   r   __exit__   s    zPipeHandle.__exit__N)r)   
__module____qualname____doc__r&   r*   propertyr%   r+   r    r!   r   r/   r0   r4   r   r   r   r   r      s   c                   s1   e  Z d  Z d Z d d d   f d d  Z   S)r   zReplacement for subprocess.Popen using overlapped pipe handles.

    The stdin, stdout, stderr are None or instances of PipeHandle.
    Nc                s4  | j  d  s t  | j  d d  d k s4 t  d  } } } d  }	 }
 } | t k r t d d d d  \ } }	 t j | t j  } n | } | t k r t d d  \ }
 } t j | d  } n | } | t k rt d d  \ } } t j | d  } n | t k r| } n | } z y) t	   j
 | d | d	 | d
 | | Wn> x0 |	 |
 | f D] } | d  k	 rdt j |  qdW  YnR X|	 d  k	 rt |	  |  _ |
 d  k	 rt |
  |  _ | d  k	 rt |  |  _ Wd  | t k rt j |  | t k rt j |  | t k r/t j |  Xd  S)NZuniversal_newlinesr   r   r   FTr   stdinstdoutstderr)FT)TF)TF)getAssertionErrorr   r   msvcrtZopen_osfhandler   O_RDONLYSTDOUTsuperr&   r    r!   r   r9   r:   r;   r   )r$   argsr9   r:   r;   kwdsZ	stdin_rfdZ
stdout_wfdZ
stderr_wfdZstdin_whZ	stdout_rhZ	stderr_rhZstdin_rhZ	stdout_whZ	stderr_whh)r(   r   r   r&      sL    	zPopen.__init__)r)   r5   r6   r7   r&   r   r   )r(   r   r      s   )TT)r7   sysplatformImportErrorr    	itertoolsr>   r   r
   
subprocessr   r,   __all__ZBUFSIZEr   r@   countr   hasattrr   r   r   r   r   r   r   r   r   r   <module>   s,   		.0,