
    =OgZ                       	 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	Z	d dl
Z
d dlmZ d dlZ	 d dlZn# e$ r dZY nw xY wg dZ	 d dlZdZn# e$ r dZY nw xY wej        dvZerDd dlZd dlmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( e)                    g d           n@er*d d	l*m+Z, ej-        Z.ej/        Z0ej1        Z2ej3        Z4ej5        Z6ndZ,dZ.dZ0dZ2dZ4dZ6d dl7Z7d dl8Z8 G d
 de9          Z: G d de:          Z; G d de:          Z<er G d d          Z= G d de>          Z?n( e@e7dd          ZA eBe8d          re8jC        ZDne8jE        ZDerdZFd ZGng ZFd ZGdZHdZIdZJd ZKd ZLd ZMddd ZNd! ZOddd"ZP G d# d$eQ          ZRddddd%d&ZSd' ZTddd(d)ZUddd(d*ZVd+ ZW eW            ZXdZY G d, d-          ZZdS ).    N)	monotonic)PopenPIPESTDOUTcall
check_callgetstatusoutput	getoutputcheck_outputrunCalledProcessErrorDEVNULLSubprocessErrorTimeoutExpiredCompletedProcessTF>   wasi
emscripten)CREATE_NEW_CONSOLECREATE_NEW_PROCESS_GROUPSTD_INPUT_HANDLESTD_OUTPUT_HANDLESTD_ERROR_HANDLESW_HIDESTARTF_USESTDHANDLESSTARTF_USESHOWWINDOWABOVE_NORMAL_PRIORITY_CLASSBELOW_NORMAL_PRIORITY_CLASSHIGH_PRIORITY_CLASSIDLE_PRIORITY_CLASSNORMAL_PRIORITY_CLASSREALTIME_PRIORITY_CLASSCREATE_NO_WINDOWDETACHED_PROCESSCREATE_DEFAULT_ERROR_MODECREATE_BREAKAWAY_FROM_JOB)r   r   r   r   r   r   r   r   STARTUPINFOr   r   r   r   r    r!   r"   r#   r$   r%   )	fork_execc                       e Zd ZdS )r   N)__name__
__module____qualname__     #/usr/lib64/python3.11/subprocess.pyr   r   {   s          r-   r   c                   T    e Zd Z	 ddZd Zed             Zej        d             ZdS )r   Nc                 >    || _         || _        || _        || _        d S N)
returncodecmdoutputstderr)selfr2   r3   r4   r5   s        r.   __init__zCalledProcessError.__init__   s"    $r-   c                     | j         rS| j         dk     rHd| j        dt          j        | j                    dS # t          $ r d| j        | j          fz  cY S w xY wd| j        | j         fz  S )Nr   	Command 'z' died with .z)Command '%s' died with unknown signal %d.z.Command '%s' returned non-zero exit status %d.)r2   r3   signalSignals
ValueErrorr6   s    r.   __str__zCalledProcessError.__str__   s    ? 		/t224&.$/1A"B"B"B"BD D 4 4 4B4?"2F4 4 4 4 44 DHdoG/ / /s   %9 AAc                     	 | j         S r1   r4   r>   s    r.   stdoutzCalledProcessError.stdout   s    9{r-   c                     || _         d S r1   rA   r6   values     r.   rB   zCalledProcessError.stdout        r-   NNr)   r*   r+   r7   r?   propertyrB   setterr,   r-   r.   r   r   ~   st           
/ 
/ 
/   X ]  ]  r-   r   c                   T    e Zd Z	 ddZd Zed             Zej        d             ZdS )r   Nc                 >    || _         || _        || _        || _        d S r1   )r3   timeoutr4   r5   )r6   r3   rM   r4   r5   s        r.   r7   zTimeoutExpired.__init__   s"    r-   c                 (    d| j         d| j        dS )Nr9   z' timed out after z seconds)r3   rM   r>   s    r.   r?   zTimeoutExpired.__str__   s     4<<<) 	*r-   c                     | j         S r1   rA   r>   s    r.   rB   zTimeoutExpired.stdout   s
    {r-   c                     || _         d S r1   rA   rD   s     r.   rB   zTimeoutExpired.stdout   rF   r-   rG   rH   r,   r-   r.   r   r      st           * * *   X ]  ]  r-   r   c                   *    e Zd ZddddddddZd ZdS )r&   r   NdwFlags	hStdInput
hStdOutput	hStdErrorwShowWindowlpAttributeListc                b    || _         || _        || _        || _        || _        |pdg i| _        d S )Nhandle_listrR   )r6   rS   rT   rU   rV   rW   rX   s          r.   r7   zSTARTUPINFO.__init__   s>    "DL&DN(DO&DN*D#2#I}b6ID   r-   c                     | j                                         }d|v rt          |d                   |d<   t          | j        | j        | j        | j        | j        |          S )NrZ   rR   )	rX   copylistr&   rS   rT   rU   rV   rW   )r6   	attr_lists     r.   r\   zSTARTUPINFO.copy   sk    ,1133I	))+/	-0H+I+I	-(t|)-*./)-+/+;/8: : : :r-   )r)   r*   r+   r7   r\   r,   r-   r.   r&   r&      sO        &'4D#D	J 	J 	J 	J 	J
	: 
	: 
	: 
	: 
	:r-   r&   c                   6    e Zd ZdZej        fdZd Zd ZeZ	dS )HandleFc                 <    | j         sd| _          ||            d S d S )NT)closed)r6   CloseHandles     r.   ClosezHandle.Close   s3    ; ""D!!!!!" "r-   c                 Z    | j         sd| _         t          |           S t          d          )NTzalready closed)rb   intr=   r>   s    r.   DetachzHandle.Detach   s.    ; !"4yy -...r-   c                 >    d| j         j        t          |           fz  S )Nz%s(%d))	__class__r)   rf   r>   s    r.   __repr__zHandle.__repr__   s    t~6D		BBBr-   N)
r)   r*   r+   rb   _winapirc   rd   rg   rj   __del__r,   r-   r.   r`   r`      sU        $+$7 	" 	" 	" 	"
	/ 	/ 	/	C 	C 	C r-   r`   PIPE_BUFi   PollSelectorc                      d S r1   r,   r,   r-   r.   _cleanuprp     s    r-   c                      t           d S t           d d          D ]P} |                     t          j                  }|,	 t                               |            @# t
          $ r Y Lw xY wQd S )N
_deadstate)_active_internal_pollsysmaxsizeremover=   )instress     r.   rp   rp     s    ?FAAAJ 	 	D%%%==CNN4((((!    D 	 	s   A
A&%A&c                  p    	 g } t           j        j        }|dk    r|                     dd|z  z              | S )Nr   -O)rv   flagsoptimizeappend)argsrE   s     r.   "_optim_args_from_interpreter_flagsr   "  s?    +DIEqyyC#+%&&&Kr-   c                     	 ddddddd} t                      }|                                 D ]@\  }}t          t          j        |          }|dk    r|                    d	||z  z              At          j        j        r|                    d
           nrt          j        j        r|                    d           t          j        j        r|                    d           t          j        j	        r|                    d           t          j
        d d          }t          t          di           }t          j        j        }t          j        j        }|dk    r|                    d           n|r|                    d           |r|                    d           |D ]}|                    d|z              |r|                    d           dD ]3}||v r-||         }	|	du r|}
n|d|	}
|                    d|
f           4|S )NdBSvbq)debugdont_write_bytecodeno_siteverbosebytes_warningquietr   r   z-Iz-Ez-sz-P	_xoptions   zerror::BytesWarningzdefault::BytesWarningdefaultz-W)-Xdev)faulthandlertracemalloc
importtimefrozen_modulesshowrefcountutf8T=r   )r   itemsgetattrrv   r   r   isolatedignore_environmentno_user_site	safe_pathwarnoptionsr   dev_moderx   extend)flag_opt_mapr   flagoptr   warnoptsxoptionsr   r   rE   args              r.   _args_from_interpreter_flagsr   ,  s:   A   #
 
L .//D!'')) ' '	cCIt$$q55KKcAg&&&
y D9' 	KK9! 	KK9 	KK qqq!HsK,,HI+My!Hq-....	 1/000 #	"""    D3J  #M""": % %(??SME}}!$ee,KKs$$$Kr-   c                  8   t           j        j        rdt          j                    } | j        j        }d}| j        x} r| j        j        |k    rn|dz  }| j        x} t          j        dt          |           t           j        j
        rdS t          j                    S )N   r   z"'encoding' argument not specified.zutf-8)rv   r   warn_default_encoding	_getframef_codeco_filenamef_backwarningswarnEncodingWarning	utf8_modelocalegetencoding)ffilename
stacklevels      r.   _text_encodingr   i  s     y& 	3MOO8'
8ma 	x#x//!OJ 8ma 	 	:%z	3 	3 	3 y $w!###r-   rM   c                     	 t          |i |5 }	 |                    |           cd d d            S #  |                                  xY w# 1 swxY w Y   d S )Nr   )r   waitkill)rM   	popenargskwargsps       r.   r   r   }  s     
		$V	$	$ 	66'6**       	FFHHH         s    A2A		AAAc                      	 t          | i |}|r/|                    d          }|| d         }t          ||          dS )Nr   r   )r   getr   )r   r   retcoder3   s       r.   r   r     sW     I(((G /jj  ;A,C #...1r-   c                 B   	 dD ]}||v rt          | d          d|v rf|d         ^|                    d          s?|                    d          s*|                    d          s|                    d          rd}nd	}||d<   t          |t          | d
d|j        S )N)rB   checkz- argument not allowed, it will be overridden.inputuniversal_newlinestextencodingerrors r-   T)rB   rM   r   )r=   r   r   r   rB   )rM   r   r   kwemptys        r.   r   r     s    !D " S S<<QQQRRR  &VG_4 ::*++ 	vzz&/A/A 	VZZPZE[E[ 	::h''	EEEw	$t    r-   c                   D    e Zd Z	 ddZd Z eej                  Zd Z	dS )r   Nc                 >    || _         || _        || _        || _        d S r1   )r   r2   rB   r5   )r6   r   r2   rB   r5   s        r.   r7   zCompletedProcess.__init__  s"    	$r-   c                    d                     | j                  d                     | j                  g}| j        -|                    d                     | j                             | j        -|                    d                     | j                             d                     t          |           j        d                    |                    S )Nz	args={!r}zreturncode={!r}zstdout={!r}zstderr={!r}z{}({})z, )	formatr   r2   rB   r   r5   typer)   join)r6   r   s     r.   rj   zCompletedProcess.__repr__  s    ""49--!((99;;"KK,,T[99:::;"KK,,T[99:::tDzz2DIIdOODDDr-   c                 b    	 | j         r&t          | j         | j        | j        | j                  d S r1   )r2   r   r   rB   r5   r>   s    r.   check_returncodez!CompletedProcess.check_returncode  s<    D? 	2$T_di%)[2 2 2	2 	2r-   rG   )
r)   r*   r+   r7   rj   classmethodtypesGenericAlias__class_getitem__r   r,   r-   r.   r   r     sc        	   E E E $E$6772 2 2 2 2r-   r   )r   capture_outputrM   r   c                    	 | .|                     d          t          d          t          |d<   |rM|                     d          |                     d          t          d          t          |d<   t          |d<   t          |i |5 }	 |                    | |          \  }}ny# t
          $ rW}	|                                 t          r"|                                \  |	_        |	_	        n|
                                  d }	~	w |                                  xY w|                                }
|r|
rt          |
|j        ||          d d d            n# 1 swxY w Y   t          |j        |
||          S )Nstdinz/stdin and input arguments may not both be used.rB   r5   z@stdout and stderr arguments may not be used with capture_output.r   r4   r5   )r   r=   r   r   communicater   r   
_mswindowsrB   r5   r   pollr   r   r   )r   r   rM   r   r   r   processrB   r5   excr   s              r.   r   r     s   8 ::g*NOOOw  ::h+vzz(/C/C/O 4 5 5 5xx			$V	$	$ C	$000HHNFFF 	 	 	LLNNN 
 *1)<)<)>)>&
CJJ 	LLNNN,,.. 	CW 	C$Wgl,26C C C C/C C C C C C C C C C C C C C C2 GL'66BBBs7   EB*)E*
D 4ADD  3EE#&E#c                    	 g }d}t          t          j        |           D ]}g }|r|                    d           d|v pd|v p| }|r|                    d           |D ]}|dk    r|                    |           |dk    r@|                    dt	          |          z  dz             g }|                    d           d|r|                    |           g }|                    |           |r|                    |           |r*|                    |           |                    d           d                    |          S )	NF 	"\r   z\"r   )maposfsdecoder   lenr   r   )seqresult	needquoter   bs_bufcs         r.   list2cmdliner   @  s   : FI2;$$ ! !  	MM#CZ<TS[<W	 	MM# 	! 	!ADyya    cdS[[02333e$$$$   MM&)))Fa      	"MM&!!! 	MM&!!!MM#776??r-   r   r   c                    	 	 t          | ddt          ||          }d}n%# t          $ r}|j        }|j        }Y d }~nd }~ww xY w|dd          dk    r
|d d         }||fS )NT)shellr   r5   r   r   r   r{   
)r   r   r   r4   r2   )r3   r   r   dataexitcodeexs         r.   r	   r	     s    (!Ct$v%-f> > > ! ! !y=! BCCyDCRCyT>s     
A=Ac                4    	 t          | ||          d         S )Nr   r   )r	   )r3   r   r   s      r.   r
   r
     s#     3&AAA!DDr-   c                     	 t           st          t          d          sdS t          j        dv rdS 	 t          j        d          } |                     d          }t          |          dk    rt          |d	         }t          t          t          |d                             d
                              }t          j        dk    r|dk    r|dk    rdS n# t          t          t          f$ r Y nw xY wdS )Nposix_spawnF)darwinsunos5TCS_GNU_LIBC_VERSIONr   )maxsplitr   r   r:   linuxglibc)r      )r   hasattrr   rv   platformconfstrsplitr   r=   tupler   rf   AttributeErrorOSError)verpartslibcversions       r.   _use_posix_spawnr    s      ]33 u
|+++ tj.//		1	%%u::??QxCq!4!45566<7""tw7g;M;M 4 J0   
 5s   B#C C10C1c                      e Zd Z	 dZ	 	 	 	 	 	 	 d/dddddddddd	dZd	 Z eej                  Z	e
d
             Zej        d             Zd Zd Zd Zej        ej        fdZd Zd Zd0dZd Zd Z	 d1dZd2dZd Zej        d             Ze r6d Z!d Z"d Z#d Z$de%j&        e%j'        e%j(        fdZ)d Z*d Z+d  Z,d! Z-d" Z.e.Z/dS d# Z!d$ Z0d% Z$e1e2e3fd&Z4de5e6e7j8        fd'Z)d( Z9d) Z*d* Z,d+ Z:d, Z-d- Z.d. Z/dS )3r   Fr{   NTr   r,   )	usergroupextra_groupsr   r   r   umaskpipesizeprocess_groupc       	            	 t           s't          t          j        t          j         d          t                       t          j                    | _	        d | _
        d| _        |d}t          |t                    st          d          |d}t          |t                    st          d          t          r|t!          d          nF|r|st#          j        dt&                     d}|t!          d	          |d
k    rt!          d          || _        d | _        d | _        d | _        d | _        d | _        || _        || _        || _        |1|/t;          |          t;          |          k    rt=          d          |p|p|p|| _        | j        r|tA                      x| _        }d| _!        d| _"        | j        r|dk    rd}d}nd}|d}d }|tG          tH          d          st!          d          t          |tJ                    r>	 d
d l&}n# tN          $ r t!          d          w xY w|(                    |          j)        }nGt          |t                    r|}n/t          d*                    tW          |                              |d
k     rt!          d|           d }|+tG          tH          d          st!          d          t          |tJ                    rt!          d          g }|D ]}t          |tJ                    rQ	 d
d l&}n# tN          $ r t!          d          w xY w|,                    |(                    |          j)                   ht          |t                    r|,                    |           t          d*                    tW          |                              |D ]} | d
k     rt!          d|            d }!|tG          tH          d          st!          d          t          |tJ                    r>	 d
d l-}"n# tN          $ r t!          d          w xY w|".                    |          j/        }!n't          |t                    r|}!nt          d          |!d
k     rt!          d|!           | 0                    |||          \  }#}$}%}&}'}(t          r|$dk    r'tc          j2        |$3                                d
          }$|%dk    r'tc          j2        |%3                                d
          }%|'dk    r'tc          j2        |'3                                d
          }'	 |$dk    rEti          j5        |$d|          | _        | j        r#ti          j6        | j        d|||          | _        |%dk    rCti          j5        |%d |          | _        | j        r!ti          j6        | j        ||!          | _        |'dk    rCti          j5        |'d |          | _        | j        r!ti          j6        | j        ||!          | _        | 7                    ||||||
||||	|#|$|%|&|'|(||||!|||           d S #  tq          d | j        | j        | j        f          D ]'})	 |)9                                 # t          $ r Y $w xY w| j"        sg }*|tt          k    r|*,                    |#           |tt          k    r|*,                    |&           |tt          k    r|*,                    |(           tG          | d"          r|*,                    | j;                   |*D ]X}+	 t          r*t          |+tx                    r|+=                                 ntI          j9        |+           I# t          $ r Y Uw xY w xY w)#Nz does not support processes.Fr{   zbufsize must be an integerzpipesize must be an integerz0preexec_fn is not supported on Windows platformszpass_fds overriding close_fds.Tz2startupinfo is only supported on Windows platformsr   z4creationflags is only supported on Windows platformszlCannot disambiguate when both text and universal_newlines are supplied but different. Pass one or the other.g      ?r   setregidz>The 'group' parameter is not supported on the current platformzHThe group parameter cannot be a string on systems without the grp modulez,Group must be a string or an integer, not {}z!Group ID cannot be negative, got 	setgroupszEThe 'extra_groups' parameter is not supported on the current platformz#Groups must be a list, not a stringzIItems in extra_groups cannot be strings on systems without the grp modulez9Items in extra_groups must be a string or integer, not {}setreuidz=The 'user' parameter is not supported on the current platformzGThe user parameter cannot be a string on systems without the pwd modulez#User must be a string or an integerz User ID cannot be negative, got wb)write_throughline_bufferingr   r   rbr   _devnull)>_can_fork_execr  errnoENOTSUPrv   r
  rp   	threadingLock_waitpid_lock_input_communication_started
isinstancerf   	TypeErrorr   r=   r   r   RuntimeWarningr   r   rB   r5   pidr2   r   r   r  boolr   	text_moder   _sigint_wait_secs_closed_child_pipe_fdsr	  r   strgrpImportErrorgetgrnamgr_gidr   r   r   pwdgetpwnampw_uid_get_handlesmsvcrtopen_osfhandlerg   ioopenTextIOWrapper_execute_childfiltercloser   r$  r`   rd   ),r6   r   bufsize
executabler   rB   r5   
preexec_fn	close_fdsr   cwdenvr   startupinfocreationflagsrestore_signalsstart_new_sessionpass_fdsr  r  r  r   r   r   r  r  r  r"  gidr6  gidsextra_group	gid_checkuidr:  p2creadp2cwritec2preadc2pwriteerrreaderrwriter   to_closefds,                                               r.   r7   zPopen.__init__'  s	    	) 	#,LLL   	


 '^--&+#?G'3'' 	:8999H(C(( 	;9::: 	.%  "- . . . &
  !	 !>OOO 	&  "- . . .!!  "- . . . 	
   !3!?'((DJJ66! #F G G G "IVItI7I> 	8h.'5'7'77DMH
 "&&+#> 	'!||!% !& M2z** 6  "4 5 5 5 E3'' 6JJJJJ" J J J$ &I J J JJ ll5))0E3'' 6 N!'U!4!46 6 6 Qww !JS!J!JKKK#2{++ H  "E F F F L#.. H !FGGGD+ @ @k3// @7"



& 7 7 7( *6 7 7 77
 KK[ 9 9 @AAAAS11 @KK,,,,# %9%+VD,=,=%>%>@ @ @ " V V	q==$%T%T%TUUU ! 2z** G  "8 9 9 9 D#&& 
GJJJJJ" J J J$ &I J J JJ ll4((/D#&& G EFFFQww !IC!I!IJJJ& #//vvFF	(	(	(  	E2~~!01B1BAFF"}} /0@0@!DD"}} /0@0@!DD6	2~~WXtW==
> >!#!1$*D+9%-f"> "> ">DJ "}} ggtW==> >"$"24;%-f#> #> #>DK"}} ggtW==> >"$"24;%-f#> #> #>DK j*i (#s +]E ' ' ' / #T3 1=B B B B B	D4:t{DK"HII  GGIIII   D . D==OOG,,,T>>OOH---T>>OOH---4,, 3OODM222"  B% )*R*@*@ )HHJJJJHRLLL"    s{   H H3LL8P# #P=DY &^8Z^
Z^ZB^5A];:^;
^^^^c                     d| j         j         d| j         d| j        d}t	          |          dk    r|d d         dz   }|S )N<z: returncode: z args: >P   L   z...>)ri   r)   r2   r   r   )r6   obj_reprs     r.   rj   zPopen.__repr__(  sr    B' B B?B B379B B B 	 x==2}v-Hr-   c                     | j         S r1   )r2  r>   s    r.   r   zPopen.universal_newlines3  s     ~r-   c                 .    t          |          | _        d S r1   )r1  r2  )r6   r   s     r.   r   zPopen.universal_newlines9  s    011r-   c                     |                     ||          }|                    dd                              dd          S )Nz
r   )decodereplace)r6   r   r   r   s       r.   _translate_newlineszPopen._translate_newlines=  s9    {{8V,,||FD))11$===r-   c                     | S r1   r,   r>   s    r.   	__enter__zPopen.__enter__A  s    r-   c                 V   | j         r| j                                          | j        r| j                                         	 | j        r| j                                         |t          k    rA| j        dk    r-	 |                     | j                   n# t          $ r Y nw xY wd| _        d S |                                  d S # |t          k    rC| j        dk    r-	 |                     | j                   n# t          $ r Y nw xY wd| _         Y d S |                                  w xY w)Nr   r   )	rB   rE  r5   r   KeyboardInterruptr3  _waitr   r   )r6   exc_typerE   	tracebacks       r.   __exit__zPopen.__exit__D  s_   ; 	 K; 	 K	z #
  """,,, )A--

4+A
BBBB)   )*& IIKKKKK# ,,, )A--

4+A
BBBB)   )*& IIKKKKsH    C 9B 
B"!B"D(C87D(8
DD(DD(D(c                     | j         sd S | j         |d| j        z  t          |            |                     |           | j        #t
          t
                              |            d S d S d S )Nzsubprocess %s is still running)sourcerr   )_child_createdr2   r0  ResourceWarningru   rt   r   )r6   _maxsize_warns      r.   rl   zPopen.__del__`  s    " 	F?" E2TX=!$0 0 0 0 	x000?"w':NN4      #"':':r-   c                     t          | d          s.t          j        t          j        t          j                  | _        | j        S Nr$  )r	  r   rA  devnullO_RDWRr$  r>   s    r.   _get_devnullzPopen._get_devnullo  s3    tZ(( 	;GBJ	::DM}r-   c                 ^   |rU	 | j                             |           n9# t          $ r Y n-t          $ r!}|j        t          j        k    rn Y d }~nd }~ww xY w	 | j                                          d S # t          $ r Y d S t          $ r"}|j        t          j        k    rn Y d }~d S d }~ww xY wr1   )r   writeBrokenPipeErrorr  r&  EINVALrE  )r6   r   r   s      r.   _stdin_writezPopen._stdin_writet  s     	
  ''''"      9,,  DDDD	J 	 	 	DD 	 	 	yEL(( 	s7    
A	AAAA4 4
B,	B,
B''B,c                    	 | j         r|rt          d          || j         s| j        | j        | j        g                    d           dk    rd }d }| j        r|                     |           ns| j        r3| j                                        }| j                                         n9| j        r2| j                                        }| j                                         | 	                                 n|t                      |z   }nd }	 |                     |||          \  }}np# t          $ rc |)t          | j        |                     |                    }n| j        }d| _        	 |                     |           n# t"          $ r Y nw xY w w xY w	 d| _         n# d| _         w xY w| 	                    |                     |                    }||fS )Nz.Cannot send input after starting communicationr   r   r   T)r,  r=   r   rB   r5   countr  readrE  r   _time_communicatern  minr3  _remaining_timero  r   )r6   r   rM   rB   r5   endtimesigint_timeoutstss           r.   r   zPopen.communicate  s+   	" & 	O5 	OMNNN
 OD$?OZdk288>>!CCFFz $!!%(((( $))++!!#### $))++!!###IIKKKK"''G+3!%!2!25'7!K!K$    &%()?)-)=)=g)F)F&H &HNN &*%;N)*&JJ~J6666%   D " /3++d+2222))D$8$8$A$A)BBCsC   D) (F" )AF-FF
FFFFF" "	F+c                 ,    	 |                                  S r1   )ru   r>   s    r.   r   z
Popen.poll  s    	""$$$r-   c                 .    	 |d S |t                      z
  S r1   )r  )r6   r  s     r.   r  zPopen._remaining_time  s    C?4UWW$$r-   c                     	 |d S |st                      |k    rFt          | j        ||rd                    |          nd |rd                    |          nd           d S )Nr-   r   )r  r   r   r   )r6   r  orig_timeout
stdout_seq
stderr_seqskip_check_and_raises         r.   _check_timeoutzPopen._check_timeout  s    @?F 	I577W#4#4 I|3=G388J///43=G388J///4I I I I $5#4r-   c                 8   	 |t                      |z   }	 |                     |          S # t          $ rc |)t          | j        |                     |                    }n| j        }d| _        	 |                     |           n# t          $ r Y nw xY w w xY w)Nr   r   )r  ro  rn  r  r3  r  r   )r6   rM   r  r  s       r.   r   z
Popen.wait  s    Kgg'G	::g:...  	 	 	
 "!$T%;%)%9%9'%B%B"D "D "&!7%&D"

>
2222!   	s.   , AB0BB
BBBBc                    t          | dd           }t          j                    5 }t          ra|dk    r|                    |j                   |dk    r|                    |j                   |dk    r|                    |j                   n|dk    r,|dk    r&||k    r |                    t          j        |           |dk    r,|dk    r&||k    r |                    t          j        |           |dk    r,|dk    r&||k    r |                    t          j        |           | |                    t          j        |           d d d            n# 1 swxY w Y   d| _        d S )Nr$  r{   T)	r   
contextlib	ExitStackr   callbackrd   r   rE  r4  )	r6   rV  rW  rX  rY  rZ  r[  
devnull_fdstacks	            r.   _close_pipe_fdszPopen._close_pipe_fds  s   
 T:t44
!## 	5u 7b==NN7=111r>>NN8>222r>>NN8>222b==X^^:8M8MNN28W555r>>gmmJ8N8NNN28X666r>>gmmJ8N8NNN28X666%rx444#	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5( '+###s   D!EEEc              #   4  K   	 g }	 |V  d S #  t          | d          r|                    | j                   | `|D ]X}	 t          r*t	          |t
                    r|                                 nt          j        |           I# t          $ r Y Uw xY w xY wrz  )
r	  r   r$  r   r-  r`   rd   r   rE  r  )r6   r\  r]  s      r.   _on_error_fd_closerzPopen._on_error_fd_closer  s      Q	NNNNN	tZ(( "...M  ! %jV&<&< %



   Ds.    2B ABB
BBBBc                 	   	 |||dS d\  }}d\  }}d\  }}	|                                  5 }
|qt          j        t          j                  }|Pt          j        d d          \  }}t          |          }|
                    |           t          j        |           n|t          k    rNt          j        d d          \  }}t          |          t          |          }}|
	                    ||f           n|t          k    r't          j        |                                           }nPt          |t                    rt          j        |          }n&t          j        |                                          }|                     |          }|qt          j        t          j                  }|Pt          j        d d          \  }}t          |          }|
                    |           t          j        |           n|t          k    rNt          j        d d          \  }}t          |          t          |          }}|
	                    ||f           n|t          k    r't          j        |                                           }nPt          |t                    rt          j        |          }n&t          j        |                                          }|                     |          }|qt          j        t          j                  }	|	Pt          j        d d          \  }}	t          |	          }	|
                    |	           t          j        |           n|t          k    rNt          j        d d          \  }}	t          |          t          |	          }	}|
	                    ||	f           n|t(          k    r|}	n|t          k    r't          j        |                                           }	nPt          |t                    rt          j        |          }	n&t          j        |                                          }	|                     |	          }	d d d            n# 1 swxY w Y   ||||||	fS )N)r{   r{   r{   r{   r{   r{   r{   r{   r   )r  rk   GetStdHandler   
CreatePiper`   r   rc   r   r   r   r>  get_osfhandler}  r-  rf   fileno_make_inheritabler   r   r   )r6   r   rB   r5   rV  rW  rX  rY  rZ  r[  err_close_fds_s               r.   r=  zPopen._get_handles7  si    }FN// &GX &GX &GX))++ =<}=%273KLLG%,%7a%@%@
"(//%,,W555+A...d]](/(:4(C(C%GX(.w9I9IXG!(('8)<====g%%$243D3D3F3FGGGGs++ C$2599GG %25<<>>BBG0099>&3G4MNNH'&-&8q&A&A8#)(#3#3%,,X666+A...t^^(/(:4(C(C%GX(.w9I9IXG!(('8)<====w&&%3D4E4E4G4GHHHH,, E%3F;;HH  &3FMMOODDH11(;;>&3G4LMMH'&-&8q&A&A8#)(#3#3%,,X666+A...t^^(/(:4(C(C%GX(.w9I9IXG!(('8)<====v%%'HHw&&%3D4E4E4G4GHHHH,, E%3F;;HH  &3FMMOODDH11(;;{=< =< =< =< =< =< =< =< =< =< =< =< =< =< =<~ XXX' 's   P8Q11Q58Q5c                     	 t          j        t          j                    |t          j                    ddt           j                  }t	          |          S )Nr   r   )rk   DuplicateHandleGetCurrentProcessDUPLICATE_SAME_ACCESSr`   )r6   handlehs      r.   r  zPopen._make_inheritable  sI    D')++V)++Q-/ /A !99r-   c                 6    	 t          d |D                       S )Nc                 h    h | ]/}|d z  d k    s"t          j        |          t           j        k    -|0S )   )rk   GetFileTypeFILE_TYPE_CHAR).0r  s     r.   	<setcomp>z,Popen._filter_handle_list.<locals>.<setcomp>  sT     4 4 4F"SLC//#/77#23 3  3 3 3r-   )r]   )r6   rZ   s     r.   _filter_handle_listzPopen._filter_handle_list  s7    A  4 4k 4 4 4 5 5 5r-   c                 8   	 t          |t                    rnt          |t                    r"|
rt          d          t	          |g          }nKt          |t
          j                  r"|
rt          d          t	          |g          }nt	          |          }|t          j        |          }|t                      }n|	                                }d|||fv}|r/|xj
        t          j        z  c_
        ||_        ||_        ||_        |j        }t#          |od|v o|d                   }|s|r|r|	i x}|_        t%          |                    dg                     x}|d<   |r/|t)          |          t)          |          t)          |          gz  }|                     |          |d d <   |r|st-          j        dt0                     d}|
r|xj
        t          j        z  c_
        t          j        |_        |st
          j                            d          }|sot
          j                            dd	          }t
          j                            |d
d          }t
          j                            |          stA          d          t
          j                            |          r|}n|}d!                    ||          }|t          j        |          }tE          j#        d||||           	 t          j$        ||d d t)          |           |	|||	  	        \  }}} }!| %                    ||||||           n# | %                    ||||||           w xY wd| _&        tO          |          | _(        | | _)        t          j*        |           d S )Nz$bytes args is not allowed on Windows0path-like args is not allowed when shell is truer{   rZ   z?startupinfo.lpAttributeList['handle_list'] overriding close_fdsFComSpec
SystemRootr   System32zcmd.exez:shell not found: neither %ComSpec% nor %SystemRoot% is setz
{} /c "{}"subprocess.PopenT)+r-  r5  bytesr.  r   r   PathLiker   r&   r\   rS   rk   r   rT   rU   rV   rX   r1  r]   r   rf   r  r   r   r/  r   r   rW   environpathr   isabsFileNotFoundErrorr   rv   auditCreateProcessr  ru  r`   _handler0  rc   )"r6   r   rG  rH  rI  rP  rJ  rK  rL  rM  r   rV  rW  rX  rY  rZ  r[  unused_restore_signals
unused_gidunused_gids
unused_uidunused_umaskunused_start_new_sessionunused_process_groupuse_std_handlesattribute_listhave_handle_listrZ   comspecsystem_roothphtr0  tids"                                     r.   rC  zPopen._execute_child  s    7 $$$ *D%(( 
* L#$JKKK#TF++D"+.. * 5# %4 5 5 5#TF++#D))%[44
 ")mm *..00 (H(EEO 1##w'CC##(/%)1&(0%(8N#N %B$1^$C%B$2=$A C  C
   &O &	 &!)CEEN[%@++M2>>??@n]; # PCLL#h--X#OOK!%!9!9+!F!FAAA &$ N  '=>LN N N !&I ;##w'CC##*1/'! ) !jnnY77G" r&(jnn\2&F&F"$',,{J	"R"R!w}}W55 r"34p"q"qqw}}W-- -%,
(G#**GT::k#&&I(*dCEEE8#*#8T)-t),]););)6),),)4$6 $6 BS $$Wh%,h%,h8 8 8 8$$Wh%,h%,h8 8 8 8
 #'D!"::DLDH#####s   ;/M M!c                 t    	 | j         * || j        d          |k    r || j                  | _         | j         S Nr   )r2   r  )r6   rs   _WaitForSingleObject_WAIT_OBJECT_0_GetExitCodeProcesss        r.   ru   zPopen._internal_poll  sG     &''a88NJJ&9&9$,&G&GDO?"r-   c                 .   	 |t           j        }n|dk    rd}nt          |dz            }| j        ]t          j        | j        |          }|t           j        k    rt          | j        |          t          j	        | j                  | _        | j        S )Nr   i  )
rk   INFINITErf   r2   WaitForSingleObjectr  WAIT_TIMEOUTr   r   GetExitCodeProcess)r6   rM   timeout_millisr   s       r.   ro  zPopen._wait,  s    ?!(!1A!"!$Wt^!4!4& 4T\5CE EW111(G<<<")"<T\"J"J?"r-   c                 |    |                     |                                           |                                 d S r1   )r   r  rE  )r6   fhbuffers      r.   _readerthreadzPopen._readerthread>  s-    MM"''))$$$HHJJJJJr-   c                 Z   | j         rht          | d          sXg | _        t          j        | j        | j         | j        f          | _        d| j        _        | j                                         | j	        rht          | d          sXg | _
        t          j        | j        | j	        | j
        f          | _        d| j        _        | j                                         | j        r|                     |           | j         [| j                            |                     |                     | j                                        rt#          | j        |          | j	        [| j                            |                     |                     | j                                        rt#          | j        |          d }d }| j         r | j        }| j                                          | j	        r | j
        }| j	                                         |r|d         nd }|r|d         nd }||fS )N_stdout_buff)targetr   T_stderr_buffr   )rB   r	  r  r(  Threadr  stdout_threaddaemonstartr5   r  stderr_threadr   r  r   r  is_aliver   r   rE  )r6   r   r  r  rB   r5   s         r.   r  zPopen._communicateC  sI    { +74#@#@ +$&!!(0B/3{D<M.NP P P " -1")"((***{ +74#@#@ +$&!!(0B/3{D<M.NP P P " -1")"((***z )!!%(((
 {&"''(<(<W(E(EFFF%..00 B(LAAA{&"''(<(<W(E(EFFF%..00 B(LAAA FF{ $*!!###{ $*!!### #)2VAYYdF"(2VAYYdFF##r-   c                 ~   	 | j         d S |t          j        k    r|                                  d S |t          j        k    r&t          j        | j        t          j                   d S |t          j        k    r&t          j        | j        t          j                   d S t          d
                    |                    )NzUnsupported signal: {})r2   r;   SIGTERM	terminateCTRL_C_EVENTr   r   r0  CTRL_BREAK_EVENTr=   r   r6   sigs     r.   send_signalzPopen.send_signalu  s    /*fn$$     +++&"566666///&"9::::: !9!@!@!E!EFFFr-   c                     	 | j         d S 	 t          j        | j        d           d S # t          $ r5 t          j        | j                  }|t          j        k    r || _         Y d S w xY w)Nr   )r2   rk   TerminateProcessr  PermissionErrorr  STILL_ACTIVE)r6   rcs     r.   r  zPopen.terminate  s    )*%(q99999" % % % /==---"$%s   ( ;A'&A'c                    	 d\  }}d\  }}d\  }}	|                                  5 }
|n|t          k    rst          j                    \  }}|
                    ||f           | j        dk    r:t          t          d          r%t          j        |t          j        | j                   nL|t          k    r| 
                                }n,t          |t                    r|}n|                                }|n|t          k    rst          j                    \  }}|
                    ||f           | j        dk    r:t          t          d          r%t          j        |t          j        | j                   nL|t          k    r| 
                                }n,t          |t                    r|}n|                                }|n|t          k    rst          j                    \  }}	|
                    ||	f           | j        dk    r:t          t          d          r%t          j        |	t          j        | j                   n|t          k    r(|dk    r|}	nkt          j                                        }	nL|t          k    r| 
                                }	n,t          |t                    r|}	n|                                }	d d d            n# 1 swxY w Y   ||||||	fS )Nr  r   F_SETPIPE_SZr{   )r  r   r   piper   r  r	  fcntlr  r   r}  r-  rf   r  r   rv   
__stdout__)r6   r   rB   r5   rV  rW  rX  rY  rZ  r[  r  s              r.   r=  zPopen._get_handles  s    !'GX &GX &GX))++ 1/}=d]](*		%GX!(('8)<===}q((WUN-K-K(He.@$-PPPg%%"//11GGs++ -#GG $llnnG>t^^(*		%GX!(('8)<===}q((WUN-K-K(He.@$-PPPw&&#0022HH,, /%HH  &}}H>t^^(*		%GX!(('8)<===}q((WUN-K-K(He.@$-PPPv%%2~~#+#&>#8#8#:#:w&&#0022HH,, /%HH  &}}Hc1/ 1/ 1/ 1/ 1/ 1/ 1/ 1/ 1/ 1/ 1/ 1/ 1/ 1/ 1/f XXX' 's   JKKKc                    	 |t           j        }i }|r9g }dD ]/}t          t          |d           }||                    |           0||d<   g }|||	fD ])}|dk    r!|                    t           j        |f           *|df|df|
dffD ]-\  }}|dk    r"|                    t           j        ||f           .|r||d<   t          j        |||fi || _        d| _	        | 
                    |||||	|
           d S )	N)SIGPIPESIGXFZSIGXFSZ	setsigdefr{   r   r   r   file_actionsT)r   r  r   r;   r   POSIX_SPAWN_CLOSEPOSIX_SPAWN_DUP2r  r0  ru  r  )r6   r   rG  rK  rN  rV  rW  rX  rY  rZ  r[  r   sigsetsignamesignumr  r]  fd2s                     r.   _posix_spawnzPopen._posix_spawn  sh    :{jF -? . .G$VWd;;F)f---&,{#L'2 D D88 '')=r(BCCC!11 H HC
 88 '')<b#(FGGG 6)5~&~j$FFvFFDH"&D  (!((!((4 4 4 4 4r-   c                 X
   	 t          |t          t          f          r|g}n>t          |t          j                  r|
rt          d          |g}nt          |          }|
r't          t          d          rdnd}|dg|z   }r|d<   |d         t          j	        d|||           t          rt          j                                      r`|^|s\|sZ|X|dk    s|d	k    rL|dk    s|d	k    r@|dk    s|d	k    r4|s2|dk    r,|*|(|&|dk     r |                     |||||||||
  
         d S }t          j                    \  }}g }|d
k     r/|                    |           t          j        |          }|d
k     /|D ]}t          j        |           	 	 |qg }|                                D ]Y\  }} t          j        |          }d|v rt)          d          |                    |dz   t          j        |           z              Znd }t          j                  t          j                                      rf}!n-t+          fdt          j        |          D                       }!t/          |          }"|"                    |           t3          ||!|t+          t5          t7          t8          |"                              ||||||||||||||||||t:                    | _        d| _        t          j        |           n# t          j        |           w xY w|                      ||||||           tC                      }#	 t          j"        |d          }$|#|$z  }#|$rtG          |#          dk    rn1	 t          j        |           n# t          j        |           w xY w|#rt	 t          j$        | j        d          \  }%}&|%| j        k    r| %                    |&           nt          j&        | _'        n# tP          $ r Y nw xY w	 |#)                    dd	          \  }'}(})|)*                                })n6# t(          $ r) d}'d}(d+                    t          |#                    })Y nw xY wtY          tZ          |'*                    d          t\                    }*t_          |*t`                    r_|(r]t9          |(d          }+|)dk    rd})|},n|)dk    rd})d },n|},|+dk    rt          j1        |+          })|, |*|+|)|,           |*|+|)           |*|)          d S )Nr  getandroidapilevelz/system/bin/shz/bin/shz-cr   r  r{   r   r     =z!illegal environment variable namec              3   |   K   | ]6}t           j                            t          j        |                    V  7d S r1   )r   r  r   fsencode)r  dirrG  s     r.   	<genexpr>z'Popen._execute_child.<locals>.<genexpr>X  sQ       0> 0> # GLLS)9)9:FF0> 0> 0> 0> 0> 0>r-   TiP     :s   SubprocessError   0z#Bad exception data from child: {!r}ascii   znoexec:chdirr   noexec)2r-  r5  r  r   r  r.  r]   r	  rv   r  _USE_POSIX_SPAWNr  dirnamer  r  r   duprE  r   r  r=   r  get_exec_pathsetadd
_fork_execsortedr   rf   
_USE_VFORKr0  ru  r  	bytearrayr  r   waitpid_handle_exitstatusrw   r2   ChildProcessErrorr  rh  r   r   builtinsr   
issubclassr  strerror)-r6   r   rG  rH  rI  rP  rJ  rK  rL  rM  r   rV  rW  rX  rY  rZ  r[  rN  rQ  rR  rU  r  rO  r  
unix_shellorig_executableerrpipe_readerrpipe_writelow_fds_to_closelow_fdenv_listkr   executable_listfds_to_keeperrpipe_datapartr0  r  exception_name	hex_errnoerr_msgchild_exception_type	errno_numerr_filenames-     `                                          r.   rC  zPopen._execute_child  s[    2$e-- "vD"+.. " 5# %4 5 5 5vDzz ) "#';<<L..BK "D)D0 )(DG!!!W
I(*dCEEE  
33"*% +$ +  B'A++!R8a<<!R8a<<- ,8%++		!!$
C")8")8")85 5 5 (O
 +-'))'L-!!## ''666 "} 5 5  !## + ! !    7'&, #%$'IIKK G GDAq "AA#qyy&01T&U&U U$OOAHr{1~~,EFFFF	G $(!#Z!8!8Jwz22 >+5- +0 0> 0> 0> 0>')'7'<'<0> 0> 0> +> +> #&h--KOOM222) /%uVC[4I4I-J-J'K'K#Xw#X(-+->)3c5&
	 4 	 4DH +/D' H]++++BH]++++$$Wh%,h%,h8 8 8  ){{7<77D D(L 3|#4#4u#<#<	  &&&&&&&& *4!z$(A66HCdh//4444*-+(   D7(..tQ77 7NIw
 &nn..GG! 7 7 7%7N $ICJJ"'"5"57 7GGG7
 (/ ."7"7"@"@'() ()$ 2G<< G G #Ir 2 2I.00"$'* H,,"$'+'6 A~~"$+i"8"8#/229g|TTT229gFFF**7333U*4 *4sE   E L <N L''AN N07AP 
PP.Q 0Q:9Q:c                 d    	  ||          r ||           | _         d S  ||          | _         d S r1   )r2   )r6   r  _waitstatus_to_exitcode_WIFSTOPPED	_WSTOPSIGs        r.   r#  zPopen._handle_exitstatus  sG     M {3 ?#,9S>>/"9"9#">">r-   c                    	 | j         | j                            d          sd S 	 | j          | j         | j                                         S  || j        |          \  }}|| j        k    r|                     |           n3# t          $ r&}||| _         n|j        |k    rd| _         Y d }~nd }~ww xY w| j                                         n# | j                                         w xY w| j         S )NFr   )r2   r*  acquirereleaser0  r#  r  r&  )r6   rs   _waitpid_WNOHANG_ECHILDr0  r  es           r.   ru   zPopen._internal_poll  s    &)11%88    412# &..0000  (x(;;HCdh//444 	, 	, 	,!-*4G++ +,	, &..0000D&..0000?"s5   B 4B C 
B2B-(C -B22C C*c                 |    	 	 t          j        | j        |          \  }}n# t          $ r | j        }d}Y nw xY w||fS r  )r   r"  r0  r$  )r6   
wait_flagsr0  r  s       r.   	_try_waitzPopen._try_wait  s\    LZ*==
cc$    h :s   ! 77c                    	 | j         | j         S |Ct                      |z   }d}	 | j                            d          r	 | j         	 | j                                         nj|                     t          j                  \  }}|| j        k    r1| 	                    |           	 | j                                         n	 | j                                         n# | j                                         w xY w| 
                    |          }|dk    rt          | j        |          t          |dz  |d          }t          j        |           /| j         r| j        5  | j         	 d d d            nV|                     d          \  }}|| j        k    r| 	                    |           d d d            n# 1 swxY w Y   | j         r| j         S )NgMb@?TFr   r   g?)r2   r  r*  r?  r@  rG  r   WNOHANGr0  r#  r  r   r   r  timesleep)r6   rM   r  delayr0  r  	remainings          r.   ro  zPopen._wait  s?   =*&"''G+ &)11%88 
9	9#: % !.668888 *.
)C)CJS#"dh $ 7 7 < < < % .668888	  / !.668888D.668888 $ 4 4W = =I A~~,TY@@@	9c::EJu%%%!&$ o-+ 9 9?6!9 9 9 9 9 9 9 &*^^A%6%6
c $(?? 33C8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 o- ?"s+   C %AC C9$	F=98F==GGc                 <	   | j         r_| j        sX	 | j                                          n# t          $ r Y nw xY w|s+	 | j                                          n# t          $ r Y nw xY wd }d }| j        s3i | _        | j        rg | j        | j        <   | j        rg | j        | j        <   | j        r| j        | j                 }| j        r| j        | j                 }|                     |           | j	        rt          | j	                  }t                      5 }| j         r'|r%|                    | j         t          j                   | j        r1| j        j        s%|                    | j        t          j                   | j        r1| j        j        s%|                    | j        t          j                   |                                r|                     |          }|/|dk     r)|                     ||||d           t)          d          |                    |          }	|                     ||||           |	D ]v\  }
}|
j        | j         u r|| j        | j        t0          z            }	 | xj        t3          j        |
j        |          z  c_        | j        t9          | j	                  k    r3|                    |
j                   |
j                                         # t          $ r6 |                    |
j                   |
j                                         Y w xY w|
j        | j        | j        fv rtt3          j        |
j        d          }|s3|                    |
j                   |
j                                         | j        |
j                                     |           x|                                d d d            n# 1 swxY w Y   |                      |                     |                     |d!                    |          }|d!                    |          }| j"        rZ|+| #                    || j        j$        | j        j%                  }|+| #                    || j        j$        | j        j%                  }||fS )Nr   T)r  zN_check_timeout(..., skip_check_and_raise=True) failed to raise TimeoutExpired.i   r   r-   )&r   r,  flushr  rE  _fileobj2outputrB   r5   _save_inputr+  
memoryview_PopenSelectorregister	selectorsEVENT_WRITErb   
EVENT_READget_mapr  r  RuntimeErrorselectfileobj_input_offset	_PIPE_BUFr   r  r]  r   
unregisterr  r   r   r   r2  rj  r   r   )r6   r   r  r  rB   r5   
input_viewselectorrM   readykeyeventschunkr   s                 r.   r  zPopen._communicate  sU   z $"= J$$&&&&&   D 
((*****    FF . ;')$; ;8:D(5; ;8:D(5{ ;-dk:{ ;-dk:U###{ 5'44
!! *KX: I% I%%dj)2GHHH; It{'9 I%%dk93GHHH; It{'9 I%%dk93GHHH&&(( "K"227;;G*w{{++G\,2FAE , G G G +>? ? ? %OOG44E''vvNNN
 (- K KV;$*44$.t/A/3/AI/M0N %OE8 $ 2 2bhsvu6M6M M 2 2
 $(#5T[9I9I#I#I$,$7$7$D$D$D$'K$5$5$7$7$7 $3 4 4 4 ( 3 3CK @ @ @ # 1 1 3 3 3 3 34 ![T[$+,FFF#%7365#9#9D#' 4 ( 3 3CK @ @ @ # 1 1 3 3 3 0=DDTJJJE &&(( "K*K *K *K *K *K *K *K *K *K *K *K *K *K *K *KX IId227;;I<<< !&))!&)) ~ J%!55f6:k6J6:k6HJ JF %!55f6:k6J6:k6HJ JF F##sV   * 
77A 
A$#A$EO/(K(AO(=L(%O'L((B#OOOc                     | j         rT| j        Od| _        || _        |A| j        r<| j                            | j         j        | j         j                  | _        d S d S d S d S d S r  )r   r+  r\  r2  encoder   r   )r6   r   s     r.   rQ  zPopen._save_inputt  s     z Hdk1%&"#$$"&+"4"4TZ5H59Z5F#H #HDKKK	H H11 %$$$r-   c                     	 |                                   | j        d S 	 t          j        | j        |           d S # t
          $ r Y d S w xY wr1   )r   r2   r   r   r0  ProcessLookupErrorr  s     r.   r  zPopen.send_signal  sb    /" IIKKK*
#&&&&&%   s   < 
A
	A
c                 F    	 |                      t          j                   d S r1   )r  r;   r  r>   s    r.   r  zPopen.terminate  #    V^,,,,,r-   c                 F    	 |                      t          j                   d S r1   )r  r;   SIGKILLr>   s    r.   r   z
Popen.kill  rj  r-   )r{   NNNNNTFNNNNr   TFr,   rG   )Fr1   );r)   r*   r+   ru  r7   rj   r   r   r   r   rI   r   rJ   rj  rl  rr  rv   rw   r   r   rl   r}  r  r   r   r  r  r   r  r  contextmanagerr  r   r=  r  r  rC  rk   r  WAIT_OBJECT_0r  ru   ro  r  r  r  r  r   r  r;  r<  r=  r#  rA  rB  r&  ECHILDrG  rQ  r,   r-   r.   r   r     s       6n N4815,0EI129> '+$Tt$b2#    B   $E$677  X
 2 2 2> > >    8  #{(- ! ! ! !  
  2A  A  A  A H% % %% % % -2	I 	I 	I 	I   .+ + +:   &  u-L	' L	' L	'^	 	 	
	5 
	5 
	5}	$ }	$ }	$~ -1%,%@&4$+$>	# 	# 	# 	#"	# 	# 	#$	 	 	
0	$ 0	$ 0	$d	G 	G 	G	% 	% 	% =	' =	' =	'@%	4 %	4 %	4Ng	4 g	4 g	4V 8O+6)2
	? 
	? 
	? 
	? -18!5< 	#  	#  	#  	#F
	 
	 
	&	# &	# &	#Rc	$ c	$ c	$L		H 		H 		H	 	 	@	- 	- 	-
	- 	- 	- 	- 	-r-   r   )[r%  r&  r@  r   r   rJ  r;   rv   r(  r   r  r   r  r   r  r7  __all__r>  r   ModuleNotFoundErrorr
  r%  rk   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r   _posixsubprocessr'   r  r"  rA  waitstatus_to_exitcoder;  
WIFSTOPPEDr<  WSTOPSIGr=  rI  rB  rZ  rU  	Exceptionr   r   r   r&   rf   r`   r   r]  r	  rn   rS  SelectSelectorrt   rp   r   r   r   r   r   r   r   r   r   objectr   r   r   r	   r
   r  r  r   r   r,   r-   r.   <module>ry     s   D   				  				   



          # # # # # # LLLL   EEED D DMMM JJ    JJJ %;; 'NNNO O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O NN 	N 	N 	N 	O 	O 	O 	O  <<<<<<:"$";mK	:
"&	MMM ' & & & &i & & &" " " " " " " "J    _   8  62: : : : : : : :.        , 
C00I
 wy.)) 2"/"1   G    G   
	
  : : :z$ $ $( "     "  & &* 2  2  2  2  2 j!2 !2 !2 !2 !2v !2 !2 !2J 5$eCC CC CC CC CCLC C CR &*$     @  $D 
E 
E 
E 
E 
E- - -d $#%% 
{- {- {- {- {- {- {- {- {- {-s!   > AAA A! A!