a DOglF@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddlm Z ddl Z z ddl Z WneydZ Yn0z ddlZWneydZYn0gdZzddlZddlZdZWn.eydZddlZddlZddlZYn`0ddlmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)e*gdGdd d e+Z,Gd d d e,Z-Gd d d e,Z.erGdddZ/Gddde0Z1n&e2eddZ3e4edrej5Z6nej7Z6erdZ8ddZ9n gZ8ddZ9dZ:dZ;dZddd d!Z?d"d#Z@ddd$d%ZAGd&d'd'eBZCddddd(d)d*ZDd+d,ZEd-d.ZFd/d0ZGd1d2ZHeHZIGd3d4d4eBZJdS)5N) monotonic)PopenPIPESTDOUTcall check_callgetstatusoutput getoutput check_outputrunCalledProcessErrorDEVNULLSubprocessErrorTimeoutExpiredCompletedProcessTF)CREATE_NEW_CONSOLECREATE_NEW_PROCESS_GROUPSTD_INPUT_HANDLESTD_OUTPUT_HANDLESTD_ERROR_HANDLESW_HIDESTARTF_USESTDHANDLESSTARTF_USESHOWWINDOWABOVE_NORMAL_PRIORITY_CLASSBELOW_NORMAL_PRIORITY_CLASSHIGH_PRIORITY_CLASSIDLE_PRIORITY_CLASSNORMAL_PRIORITY_CLASSREALTIME_PRIORITY_CLASSCREATE_NO_WINDOWDETACHED_PROCESSCREATE_DEFAULT_ERROR_MODECREATE_BREAKAWAY_FROM_JOB)rrrrrrrr STARTUPINFOrrrrrrrr r!r"c@s eZdZdS)rN)__name__ __module__ __qualname__r'r'"/usr/lib64/python3.9/subprocess.pyrirc@s8eZdZd ddZddZeddZejddZdS) r NcCs||_||_||_||_dSN) returncodecmdoutputstderr)selfr+r,r-r.r'r'r(__init__sszCalledProcessError.__init__cCsf|jrR|jdkrRzd|jt|j fWStyNd|j|j fYS0nd|j|jfSdS)NrzCommand '%s' died with %r.z)Command '%s' died with unknown signal %d.z.Command '%s' returned non-zero exit status %d.)r+r,signalSignals ValueErrorr/r'r'r(__str__ys  zCalledProcessError.__str__cCs|jSr*r-r4r'r'r(stdoutszCalledProcessError.stdoutcCs ||_dSr*r6r/valuer'r'r(r7s)NNr$r%r&r0r5propertyr7setterr'r'r'r(r ls    r c@s8eZdZd ddZddZeddZejddZdS) rNcCs||_||_||_||_dSr*)r,timeoutr-r.)r/r,r=r-r.r'r'r(r0szTimeoutExpired.__init__cCsd|j|jfS)Nz'Command '%s' timed out after %s seconds)r,r=r4r'r'r(r5s zTimeoutExpired.__str__cCs|jSr*r6r4r'r'r(r7szTimeoutExpired.stdoutcCs ||_dSr*r6r8r'r'r(r7s)NNr:r'r'r'r(rs   rc@s,eZdZdddddddddZddZdS)r#rNdwFlags hStdInput hStdOutput hStdError wShowWindowlpAttributeListcCs0||_||_||_||_||_|p(dgi|_dS)N handle_listr>)r/r?r@rArBrCrDr'r'r(r0s zSTARTUPINFO.__init__cCs@|j}d|vr"t|d|d<t|j|j|j|j|j|dS)NrEr>) rDcopylistr#r?r@rArBrC)r/Z attr_listr'r'r(rFs zSTARTUPINFO.copy)r$r%r&r0rFr'r'r'r(r#s r#c@s2eZdZdZejfddZddZddZeZ dS) HandleFcCs|jsd|_||dS)NT)closed)r/ CloseHandler'r'r(Closesz Handle.ClosecCs |jsd|_t|StddS)NTzalready closed)rIintr3r4r'r'r(Detachsz Handle.DetachcCsd|jjt|fS)Nz%s(%d)) __class__r$rLr4r'r'r(__repr__szHandle.__repr__N) r$r%r&rI_winapirJrKrMrO__del__r'r'r'r(rHs rHPIPE_BUFi PollSelectorcCsdSr*r'r'r'r'r(_cleanupsrTc CsZtdur dStddD]<}|jtjd}|durzt|WqtyRYq0qdS)N _deadstate)_active_internal_pollsysmaxsizeremover3)instresr'r'r(rTs cCs*g}tjj}|dkr&|dd||S)Nr-O)rYflagsoptimizeappend)argsr9r'r'r("_optim_args_from_interpreter_flagss rgc CsVddddddd}t}|D].\}}ttj|}|dkr |d ||q tjjrd|d n$tjjrv|d tjjr|d tj dd}tjj }ttd i}d|v}|dkr| dn|r| d|r| d|D]}|d|q|r | ddD]B}||vr||} | dur4|} n d|| f} | d| fq|S)NdBSvbq)debugdont_write_bytecodeno_siteverbose bytes_warningquietrraz-Iz-Ez-s _xoptionsdevzerror::BytesWarningzdefault::BytesWarningdefaultz-W)-Xru) faulthandler tracemalloc importtime showrefcountutf8 oldparserTz%s=%srx) rgitemsgetattrrYrcreisolatedignore_environment no_user_site warnoptionsrrr[extend) flag_opt_maprfflagoptrkwarnoptsrrxoptionsdev_moder9argr'r'r(_args_from_interpreter_flagssP             rr=cOsft|i|D}z|j|dWWdS|Yn0Wdn1sX0YdS)Nr)rwaitkill)r= popenargskwargspr'r'r(rUs rcOs:t|i|}|r6|d}|dur,|d}t||dS)Nrfr)rgetr )rrretcoder,r'r'r(rfs   rcOsbd|vrtdd|vrJ|ddurJ|ds8|dr>d}nd}||d<t|t|dd |jS) Nr7z3stdout argument not allowed, it will be overridden.inputuniversal_newlinestextr)T)r7r=check)r3rr rr7)r=rremptyr'r'r(r ys#r c@s0eZdZdddZddZeejZddZ dS) rNcCs||_||_||_||_dSr*)rfr+r7r.)r/rfr+r7r.r'r'r(r0szCompletedProcess.__init__cCshd|jd|jg}|jdur4|d|j|jdurP|d|jdt|jd|S)Nz args={!r}zreturncode={!r}z stdout={!r}z stderr={!r}z{}({})z, ) formatrfr+r7rer.typer$join)r/rfr'r'r(rOs    zCompletedProcess.__repr__cCs |jrt|j|j|j|jdSr*)r+r rfr7r.r4r'r'r(check_returncodesz!CompletedProcess.check_returncode)NN) r$r%r&r0rO classmethodtypes GenericAlias__class_getitem__rr'r'r'r(rs  r)rcapture_outputr=rc Os<|dur&|ddurtdt|d<|r^|ddusF|ddurNtdt|d<t|d<t|i|}z|j||d\}}Wn`ty} z4|tr|\| _| _ n| WYd} ~ nd} ~ 0|Yn0| } |r | r t | |j ||dWdn1s"0Yt|j | ||S)Nstdinz/stdin and input arguments may not both be used.r7r.z@stdout and stderr arguments may not be used with capture_output.rr-r.)rr3rr communicaterr _mswindowsr7r.rpollr rfr) rrr=rrrprocessr7r.excrr'r'r(r s6 &r cCsg}d}ttj|D]}g}|r*|dd|vp>d|vp>| }|rN|d|D]b}|dkrj||qR|dkr|dt|dg}|dqR|r||g}||qR|r|||r|||dqd|S) NF  "\z\"r)maposfsdecoderelenrr)seqresult needquoterbs_bufcr'r'r( list2cmdlines4         rc Csnzt|ddtd}d}Wn0tyH}z|j}|j}WYd}~n d}~00|dddkrf|dd}||fS)NT)shellrr.rr^ )r rr r-r+)r,dataexitcodeexr'r'r(r^s rcCs t|dSNrv)r)r,r'r'r(r }s r c CststtdsdStjdkr dSzjtd}|jdd}t|dkrHt|d }t t t |dd }tjd kr|d kr|d krWdSWnt tt fyYn0dS)N posix_spawnFdarwinTCS_GNU_LIBC_VERSIONrv)maxsplitrr.linuxglibc)r)rhasattrrrYplatformconfstrsplitrr3tuplerrLAttributeErrorOSError)verpartslibcversionr'r'r(_use_posix_spawns      rc@seZdZdZdLdddddddddd Zd d ZeejZ e d d Z e j dd Z ddZ ddZddZejejfddZddZddZdMddZddZdd ZdNd!d"ZdOd#d$Zd%d&Zer0d'd(Zd)d*Zd+d,Z d-d.Z!de"j#e"j$e"j%fd/d0Z&d1d2Z'd3d4Z(d5d6Z)d7d8Z*d9d:Z+e+Z,n~d;d(Zdd.Z!e.j/e.j0e.j1fd?d@Z2de.j3e.j4e5j6fdAd0Z&dBdCZ7dDd2Z'dEd6Z)dFdGZ8dHd8Z*dId:Z+dJdKZ,dS)PrFr^NTrr')usergroup extra_groupsencodingerrorsrumaskc(CsFtt|_d|_d|_|dur(d}t|ts:tdt rP|durt dn8|rh|sht dt d}| durxt d|dkrt d ||_d|_d|_d|_d|_d|_||_||_|dur| durt| t|krtd ||||\}}}}}}t rN|dkrt|d}|dkr4t|d}|dkrNt|d}|pb|pb|pb| |_d |_d|_|jr|d krd}d}nd}d} |durtt d st dnPt|t!rt"durt dt"#|j$} n$t|tr|} ntd%t&|| dkrt d| d}!|durtt dsBt dnt|t!rVt dg}!|D]b}"t|"t!rt"durt d|!'t"#|"j$n*t|"tr|!'|"ntd%t&|"q^|!D]}#|#dkrt d|#qd}$|durhtt ds t dnFt|t!r6t(dur(t dt()|j*}$nt|trH|}$ntd|$dkrht d|$z|dkrt+,|d||_|jrt+j-|jd|||d|_|dkrt+,|d||_|jrt+j-|j||d|_|dkrt+,|d||_|jrt+j-|j||d|_|.|||||| | | || |||||||| |!|$||Wnt/d|j|j|jfD](}%z |%0Wnt1yYn0qd|js:g}&|t2kr|&'||t2kr|&'||t2kr|&'|t|d r|&'|j3|&D]F}'z*t rt|'t4r|'5n t 0|'Wnt1y4Yn0qYn0dS)!NFr^zbufsize must be an integerz0preexec_fn is not supported on Windows platformszpass_fds overriding close_fds.Tz2startupinfo is only supported on Windows platformsrz4creationflags is only supported on Windows platformszlCannot disambiguate when both text and universal_newlines are supplied but different. Pass one or the other.g?rvsetregidz>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_throughline_bufferingrrrb)rr_devnull)6rT threadingLock _waitpid_lock_input_communication_started isinstancerL TypeErrorrr3warningswarnRuntimeWarningrfrr7r.pidr+rrboolr _get_handlesmsvcrtopen_osfhandlerM text_mode_sigint_wait_secs_closed_child_pipe_fdsrrstrgrpgetgrnamgr_gidrrrepwdgetpwnampw_uidioopen TextIOWrapper_execute_childfiltercloserrrrHrK)(r/rfbufsize executablerr7r. preexec_fn close_fdsrcwdenvr startupinfo creationflagsrestore_signalsstart_new_sessionpass_fdsrrrrrrrp2creadp2cwritec2preadc2pwriteerrreaderrwritergidgids extra_group gid_checkuidfto_closefdr'r'r(r0s.                                                    zPopen.__init__cCs@d|jjd|jd|jd}t|dkr<|ddd}|S)NPLz...>)rNr$r+rfr)r/obj_reprr'r'r(rOs  zPopen.__repr__cCs|jSr*)rr4r'r'r(rszPopen.universal_newlinescCst||_dSr*)rr)r/rr'r'r(rscCs |||}|ddddS)Nz r )decodereplace)r/rrrr'r'r(_translate_newliness zPopen._translate_newlinescCs|Sr*r'r4r'r'r( __enter__szPopen.__enter__cCs|jr|j|jr |jz^|jr2|jW|tkrv|jdkrlz|j|jdWntyjYn0d|_dS|nT|tkr|jdkrz|j|jdWntyYn0d|_YdS|0dS)Nrr) r7rr.rKeyboardInterruptr_waitrr)r/exc_typer9 tracebackr'r'r(__exit__s2         zPopen.__exit__cCsT|js dS|jdur(|d|jt|d|j|d|jdurPtdurPt|dS)Nzsubprocess %s is still running)sourcerU)_child_createdr+rResourceWarningrXrWre)r/_maxsize_warnr'r'r(rQs   z Popen.__del__cCs"t|dsttjtj|_|jS)Nr)rrrdevnullO_RDWRrr4r'r'r( _get_devnull$s zPopen._get_devnullc Cs|rZz|j|WnDty&Yn4tyX}z|jtjkrBnWYd}~n d}~00z|jWnDtyzYn4ty}z|jtjkrnWYd}~n d}~00dSr*)rwriteBrokenPipeErrorrerrnoEINVALr)r/rrr'r'r( _stdin_write)s"    zPopen._stdin_writec CsV|jr|rtd|dur|js|j|j|jgddkrd}d}|jrT||n6|jrp|j}|jn|jr|j}|j| n|durt |}nd}zz| |||\}}Wndt y(|durt |j||}n|j}d|_z|j|dWnty Yn0Yn0Wd|_nd|_0|j ||d}||fS)Nz.Cannot send input after starting communicationrrrT)rr3rr7r.countr6readrr_time _communicater%minr_remaining_timer&r)r/rr=r7r.endtimesigint_timeoutstsr'r'r(rBsH         zPopen.communicatecCs|Sr*)rXr4r'r'r(rsz Popen.pollcCs|dur dS|tSdSr*)r9)r/r=r'r'r(r<szPopen._remaining_timecCsL|dur dS|st|krHt|j||r0d|nd|r@d|ndddS)Nr)r)r9rrfr)r/r= orig_timeout stdout_seq stderr_seqskip_check_and_raiser'r'r(_check_timeoutszPopen._check_timeoutc Cs|durt|}z|j|dWSty|durJt|j||}n|j}d|_z|j|dWntyxYn0Yn0dS)Nrr)r9r&r%r;rr<r)r/r=r=r>r'r'r(rs    z Popen.waitc Cst|dd}t}trX|dkr.||j|dkrB||j|dkr||jnr|dkr~|dkr~||kr~|tj||dkr|dkr||kr|tj||dkr|dkr||kr|tj||dur|tj|Wdn1s0Yd|_dS)Nrr^T) r contextlib ExitStackrcallbackrKrrr) r/r rrrrr devnull_fdstackr'r'r(_close_pipe_fdss$    ,zPopen._close_pipe_fdsc Cs~|dur|dur|durdSd\}}d\}}d\}} |durtttj}|durtdd\}} t|}t| nh|tkrtdd\}}t|t|}}n<|tkrt | }n$t |t rt |}nt | }||}|dur*ttj}|durtdd\} }t|}t| nn|tkrXtdd\}}t|t|}}n@|tkrrt | }n&t |t rt |}nt | }||}|durttj} | durdtdd\} } t| } t| n~|tkrtdd\}} t|t| }} nP|tkr$|} n@|tkr>t | } n&t |t rVt |} nt | } || } |||||| fS)N)r^r^r^r^r^r^r^r^r)rPZ GetStdHandlerZ CreatePiperHrJrr rZ get_osfhandler1rrLfileno_make_inheritablerrr) r/rr7r.r rrrrr_r'r'r(rsp                        zPopen._get_handlescCs&tt|tddtj}t|S)Nrrv)rPZDuplicateHandleZGetCurrentProcessZDUPLICATE_SAME_ACCESSrH)r/handlehr'r'r(rM s  zPopen._make_inheritablecCstdd|DS)NcSs,h|]$}|d@dks$t|tjkr|qS))rPZ GetFileTypeZFILE_TYPE_CHAR).0rOr'r'r( 0s  z,Popen._filter_handle_list..)rG)r/rEr'r'r(_filter_handle_list)szPopen._filter_handle_listc!Cst|tr nNt|tr.| r"tdt|g}n,t|tjrR| rFtdt|g}nt|}|durlt|}|dur|t}n| }d| ||fv}|r|j t j O_ | |_ ||_||_|j}t|od|vo|d}|s|r^|r^|duri}|_t|dg}|d<|r0|t| t|t|g7}|||dd<|r^|sZtdtd}| r|j t jO_ t j|_|stjd}|stjdd }tj|d d }tj|st d tj|r|}n|}d !||}|durt|}t"#d||||z@t $||ddt| | ||| \}}}} W|%| | | |||n|%| | | |||0d|_&t'||_(||_)t *|dS)Nz$bytes args is not allowed on Windows0path-like args is not allowed when shell is truer^rEz?startupinfo.lpAttributeList['handle_list'] overriding close_fdsFZComSpecZ SystemRootrZSystem32zcmd.exez:shell not found: neither %ComSpec% nor %SystemRoot% is setz {} /c "{}"subprocess.PopenT)+rrbytesrrrPathLikerr#rFr?rPrr@rArBrDrrGrrLrTrrrrrrCenvironpathrisabsFileNotFoundErrorrrYauditZ CreateProcessrJr+rH_handlerrJ)!r/rfrrrr rrrr rr rrrrrZunused_restore_signalsZ unused_gidZ unused_gidsZ unused_uidZ unused_umaskZunused_start_new_sessionZuse_std_handlesZattribute_listZhave_handle_listrEZcomspecZ system_rootZhpZhtrtidr'r'r(r6s             zPopen._execute_childcCs,|jdur&||jd|kr&||j|_|jSNr)r+r^)r/rVZ_WaitForSingleObjectZ_WAIT_OBJECT_0Z_GetExitCodeProcessr'r'r(rXs  zPopen._internal_pollcCs^|durtj}n t|d}|jdurXt|j|}|tjkrJt|j|t |j|_|jS)Ni) rPZINFINITErLr+WaitForSingleObjectr^Z WAIT_TIMEOUTrrfGetExitCodeProcess)r/r=Ztimeout_millisrr'r'r(r&s    z Popen._waitcCs|||dSr*)rer8r)r/Zfhbufferr'r'r( _readerthreadszPopen._readerthreadcCs\|jrBt|dsBg|_tj|j|j|jfd|_d|j_|j|j rt|dsg|_ tj|j|j |j fd|_ d|j _|j |j r| ||jdur|j|||jrt|j||j dur|j |||j rt|j|d}d}|jr|j}|j|j r0|j }|j |r>|dnd}|rP|dnd}||fS)N _stdout_buff)targetrfT _stderr_buffr)r7rrerThreadrdZ stdout_threaddaemonstartr.rgZ stderr_threadrr6rr<is_aliverrfr)r/rr=r@r7r.r'r'r(r:sJ             zPopen._communicatecCsl|jdurdS|tjkr"|nF|tjkr>t|jtjn*|tjkrZt|jtjnt d |dS)NzUnsupported signal: {}) r+r1SIGTERM terminateZ CTRL_C_EVENTrrrZCTRL_BREAK_EVENTr3rr/sigr'r'r( send_signal s     zPopen.send_signalcCsV|jdurdSzt|jdWn0tyPt|j}|tjkrF||_Yn0dSr)r+rPZTerminateProcessr^PermissionErrorrbZ STILL_ACTIVE)r/rcr'r'r(rms    zPopen.terminatec Cs,d\}}d\}}d\}} |dur"n@|tkr8t\}}n*|tkrJ|}nt|trZ|}n|}|durln@|tkrt\}}n*|tkr|}nt|tr|}n|}|durnf|tkrt\}} nP|tkr|dkr|} n t j } n.|tkr|} nt|tr|} n|} |||||| fS)NrKr^) rrpiper r1rrLrLrrY __stdout__) r/rr7r.r rrrrrr'r'r(r0sL        c Cs|durtj}i} |rJg} dD]"} tt| d}|dur| |q| | d<g}||| fD]}|dkrX|tj|fqX|df|df| dffD]"\}}|dkr|tj||fq|r|| d<tj|||fi| |_d|_ | ||||| | dS) N)SIGPIPESIGXFZSIGXFSZ setsigdefr^rrvr file_actionsT) rrYrr1rePOSIX_SPAWN_CLOSEPOSIX_SPAWN_DUP2rrr+rJ)r/rfrrr r rrrrrrsigsetsignamesignumryrfd2r'r'r( _posix_spawnfs8   zPopen._posix_spawnc-st|ttfr|g}n(t|tjr6| r.td|g}nt|}| rlttdrPdnd}|dg|}rl|d<dur||dt d|||t rFtj rF|durF|sF|sF|durF| dks| d krF|dks|d krF|dks|d krF|sF|durF|durF|durF|dkrF| |||| | | ||| dS}t\}}g}|d kr|||t|}qZ|D]}t|qzhz|durg}|D]>\}}t|}d |vrtd ||d t|qnd}ttj rf} ntfd dt|D} t|}!|!|t|| |tttt|!||| | | |||||||||||||_d|_Wt|n t|0| | | | |||t!}"t"|d}#|"|#7}"|#rt#|"dkrqqWt|n t|0|"rz6t$|jd\}$}%|$|jkr<|%|%ntj&|_'Wnt(yZYn0z|")dd \}&}'}(|(*}(Wn*tyd}&d}'d+t|"}(Yn0t,t-|&*dt.})t/|)t0r|'rt|'d}*|(dk}+|+rd}(|},n|},|*dkrt1|*}(|)|*|(|,|)|(dS)NrUgetandroidapilevelz/system/bin/shz/bin/shz-crrVr^rrQ=z!illegal environment variable namec3s"|]}tjt|VqdSr*)rrZrfsencode)rRdirrr'r( sz'Popen._execute_child..TiP:sSubprocessError0z#Bad exception data from child: {!r}asciinoexecr)2rrrWrrXrrGrrYr]_USE_POSIX_SPAWNrZdirnamerrsreduprrrr3r get_exec_pathsetadd_posixsubprocess fork_execsortedrrLrr+rJ bytearrayr8rwaitpid_handle_exitstatusrZr+ChildProcessErrorrr!rrbuiltinsr issubclassrstrerror)-r/rfrrrr rrrr rr rrrrrr rrrrr  unix_shellorig_executable errpipe_read errpipe_writelow_fds_to_closelow_fdenv_listkrkexecutable_list fds_to_keep errpipe_datapartrr?exception_name hex_errnoerr_msgchild_exception_type errno_numchild_exec_never_called err_filenamer'rr(rs                                 cCs$||r|| |_n |||_dSr*)r+)r/r?waitstatus_to_exitcode _WIFSTOPPED _WSTOPSIGr'r'r(r1szPopen._handle_exitstatusc Cs|jdur|jdsdSzzF|jdur<|jWW|jS||j|\}}||jkr`||WnDty}z,|dur||_n|j|krd|_WYd}~n d}~00W|jn |j0|jS)NFr)r+racquirereleaserrrr4)r/rV_waitpid_WNOHANG_ECHILDrr?er'r'r(rX=s$      cCs<zt|j|\}}Wnty2|j}d}Yn0||fSr`)rrrr)r/ wait_flagsrr?r'r'r( _try_wait`s   zPopen._try_waitcCsP|jdur|jS|durt|}d}|jdrzX|jdurLW|jq|tj\}}||jkr~| |W|jqW|jn |j0| |}|dkrt |j |t |d|d}t|q&nv|jdurJ|jP|jdurWdqJ|d\}}||jkr(| |Wdq1s>0Yq|jS)NgMb@?Frrg?)r+r9rrrrrWNOHANGrrr<rrfr;timesleep)r/r=r=delayrr? remainingr'r'r(r&ms>             ,c Cs2|jrT|jsTz|jWnty,Yn0|sTz|jWntyRYn0d}d}|jsi|_|jrzg|j|j<|jrg|j|j<|jr|j|j}|jr|j|j}|||j rt |j }t }|jr|r| |jt j|jr|jjs| |jt j|jr2|jjs2| |jt j|r||}|durv|dkrv|j||||ddtd||} |||||| D]\} } | j|jur0||j|jt} z|jt| j| 7_Wn*ty|| j| jYn*0|jt|j kr|| j| jnP| j|j|jfvrt| jd} | sn|| j| j|j| j| qq2Wdn1s0Y|j ||d|durd!|}|durd!|}|j"r*|dur |#||jj$|jj%}|dur*|#||jj$|jj%}||fS)NrT)rCzN_check_timeout(..., skip_check_and_raise=True) failed to raise TimeoutExpired.irr))&rrflushr3r_fileobj2outputr7r. _save_inputr memoryview_PopenSelectorregister selectors EVENT_WRITErI EVENT_READget_mapr<rD RuntimeErrorselectfileobj _input_offset _PIPE_BUFrr2r unregisterrr8rerrrr#rr)r/rr=r@r7r. input_viewselectorr=readykeyeventschunkrr'r'r(r:s                    :      cCsF|jrB|jdurBd|_||_|durB|jrB|j|jj|jj|_dSr`)rrrrencoderr)r/rr'r'r(rs zPopen._save_inputcCs@||jdurdSzt|j|Wnty:Yn0dSr*)rr+rrrProcessLookupErrorrnr'r'r(rps  cCs|tjdSr*)rpr1rlr4r'r'r(rm(scCs|tjdSr*)rpr1SIGKILLr4r'r'r(r-sz Popen.kill)r^NNNNNTFNNNNrTFr')NN)F)N)9r$r%r&r+r0rOrrrrr;rr<r#r$r)rYrZrrrQr1r6rrr<rDrrJrrrMrTrrPraZ WAIT_OBJECT_0rbrXr&rdr:rprmrrrr WIFSTOPPEDWSTOPSIGrrrr4ZECHILDrrr'r'r'r(rs6 j    D H   26'&  # )f  r)Krr4rrrr1rYrrrErr9rr ImportErrorr__all__rrPrModuleNotFoundErrorrrrrrrrrrrrrrrrrrrr r!r"r Exceptionrr rr#rLrHrrrrSrSelectSelectorrWrTrrr rgrrrr objectrr rrr rrrr'r'r'r(,s~        P  %      ;3% EI /