eaiovnaovbqoebvqoeavibavo B YI~d@sddlmZddlZddlZdddgZdZdZdZdZddZd d Z d d Z d dZ ddZ ddZ ddZeefddZeefddZdS))selectNopenptyforkspawnc Cs<ytSttfk r YnXt\}}t|}||fS)N)osrAttributeErrorOSError_open_terminal slave_open) master_fd slave_nameslave_fdr(/opt/alt/python37/lib64/python3.7/pty.pyrs c CsLyt\}}Wnttfk r(YnXt|}t|||fStS)N)rrr r ttynamecloser )r rrrrr master_open!s  rc Cslx^dD]V}xPdD]H}d||}yt|tj}Wntk rHwYnX|d||fSWqWtddS)NZpqrstuvwxyzPQRSTZ0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devices)ropenO_RDWRr )xyZpty_namefdrrrr 1s   r cCsnt|tj}yddlm}m}Wntk r6|SXy|||d|||dWntk rhYnX|S)Nr)ioctlI_PUSHZptemZldterm)rrrZfcntlrr ImportErrorr )Ztty_nameresultrrrrrr =s r c Csyt\}}Wnttfk r(Yn4X|tkrTy tWntk rRYnX||fSt\}}t}|tkrtt|t |t t |t t |t |t krt|t tt tj}t|n t|||fS)N)rforkptyr r CHILDsetsidrrrdup2 STDIN_FILENO STDOUT_FILENO STDERR_FILENOrrr)pidrr rZtmp_fdrrrrOs0         cCs&x |r t||}||d}qWdS)N)rwrite)rdatanrrr_writenws r)cCs t|dS)Ni)rread)rrrr_read}sr+cCsz|tg}xlt|gg\}}}||krH||}|s<||n tt|t|kr |t}|sh|tq t||q WdS)N)r"rremoverr&r#r))r master_read stdin_readZfdsZrfdsZwfdsZxfdsr'rrr_copys   r/cCst|tdkr|f}t\}}|tkr s    (