+
    Ë	4i:	  ã                   óJ   € R t ^ RIt^ RIt^ RIHtHtHtHt ^RIH	t	 R t
R tR# )z<Substitute for the forkpty system call, to support Solaris.
N)ÚSTDIN_FILENOÚSTDOUT_FILENOÚSTDERR_FILENOÚCHILD)ÚPtyProcessErrorc                 ó¾  € \         P                  ! 4       w  rV ^ 8  g   V^ 8  d   \        R4      h\         P                  ! 4       pV\        8X  dv   \         P
                  ! V 4       \        V4       \         P                  ! V\        4       \         P                  ! V\        4       \         P                  ! V\        4       W 3# \         P
                  ! V4       W 3# )aÁ  This implements a substitute for the forkpty system call. This
should be more portable than the pty.fork() function. Specifically,
this should work on Solaris.

Modified 10.06.05 by Geoff Marshall: Implemented __fork_pty() method to
resolve the issue with Python's pty.fork() not supporting Solaris,
particularly ssh. Based on patch to posixmodule.c authored by Noah
Spurrier::

    http://mail.python.org/pipermail/python-dev/2003-May/035281.html

zos.openpty() failed)ÚosÚopenptyÚOSErrorÚforkr   ÚcloseÚpty_make_controlling_ttyÚdup2r   r   r   )Ú	parent_fdÚchild_fdÚpids      Ú6/usr/lib/python3/dist-packages/ptyprocess/_fork_pty.pyÚfork_ptyr   	   s›   € ô Ÿ*š*›,Ñ€IØ�1„}˜ 1œÜÐ+Ó,Ð,ä
�'Š'‹)€CØ
Œe„|ä
�Š�ÔÜ  Ô*ä
�Š�œ,Ô'Ü
�Š�œ-Ô(Ü
�Š�œ-Ô(ð ˆ>Ðô 	�Š�Ôàˆ>Ðó    c                ó‚  € \         P                  ! V 4      p \         P                  ! R\         P                  \         P                  ,          4      p\         P
                  ! V4       \         P                  ! 4         \         P                  ! R\         P                  \         P                  ,          4      p\         P
                  ! V4       \        R4      h  \         d+   pTP                  \        P                  8w  d   h  Rp?L¡Rp?ii ; i  \         d+   pTP                  \        P                  8w  d   h  Rp?MRp?ii ; i\         P                  ! T\         P                  4      p\         P
                  ! T4       \         P                  ! R\         P                  4      p\         P
                  ! T4       R# )zšThis makes the pseudo-terminal the controlling tty. This should be
more portable than the pty.fork() function. Specifically, this should
work on Solaris. z/dev/ttyNz(OSError of errno.ENXIO should be raised.)r   ÚttynameÚopenÚO_RDWRÚO_NOCTTYr   r
   ÚerrnoÚENXIOÚsetsidr   ÚO_WRONLY)Útty_fdÚ
child_nameÚfdÚerrs   &   r   r   r   +   s  € ô
 —’˜FÓ#€Jð
Ü�WŠW�Z¤§¡¬R¯[©[Õ!8Ó9ˆÜ
�Š�Œô
 ‡I‚I„KðÜ�WŠW�Z¤§¡¬R¯[©[Õ!8Ó9ˆÜ
�Š�ŒÜÐHÓIÐIøô ô Ø�9‰9œŸ™Ô#Øô $ûðûô ô Ø�9‰9œŸ™Ô#Øô $ûðúô
 
�Š�œRŸY™YÓ	'€BÜ‡H‚HˆR„Lô 
�Š�œRŸ[™[Ó	)€BÜ‡H‚HˆR†Ls1   ˜AC Á>AD ÃDÃ$ D	Ä	DÄEÄ EÅE)Ú__doc__r   r   Úptyr   r   r   r   Úutilr   r   r   © r   r   Ú<module>r&      s$   ðñã 	Û ç CÓ CÝ !ò ôD#r   