Ë
    òT•jí  ã                   óŽ   — d dl Z d dlZddlmZmZ ddlmZ ddlmZ ddlmZ dgZ	 G d„ d	e
«      Z G d
„ dej                  «      Zy)é    Né   )Ú	reductionÚset_spawning_popen)Ú
popen_fork)Úspawn)ÚutilÚPopenc                   ó   — e Zd Zd„ Zd„ Zy)Ú_DupFdc                 ó   — || _         y ©N©Úfd©Úselfr   s     ú8/usr/lib/python3.12/multiprocessing/popen_spawn_posix.pyÚ__init__z_DupFd.__init__   s	   € Øˆ�ó    c                 ó   — | j                   S r   r   )r   s    r   Údetachz_DupFd.detach   s   € Ø�w‰wˆr   N)Ú__name__Ú
__module__Ú__qualname__r   r   © r   r   r   r      s   „ òór   r   c                   ó2   ‡ — e Zd ZdZeZˆ fd„Zd„ Zd„ Zˆ xZ	S )r	   r   c                 ó2   •— g | _         t        ‰| �	  |«       y r   )Ú_fdsÚsuperr   )r   Úprocess_objÚ	__class__s     €r   r   zPopen.__init__   s   ø€ ØˆŒ	Ü‰Ñ˜Õ%r   c                 ó<   — | j                   j                  |«       |S r   )r   Úappendr   s     r   Úduplicate_for_childzPopen.duplicate_for_child"   s   € Ø�	‰	×Ñ˜ÔØˆ	r   c                 óü  — ddl m} |j                  «       }| j                  j	                  |«       t        j                  |j                  «      }t        j                  «       }t        | «       	 t        j                  ||«       t        j                  ||«       t        d «       d x}x}x}}		 t        j                  «       \  }}t        j                  «       \  }}	t        j                  ||¬«      }
| j                  j!                  ||g«       t#        j$                  t        j&                  «       |
| j                  «      | _        || _        t-        |	dd¬«      5 }|j/                  |j1                  «       «       d d d «       g }||	fD ]  }|€Œ|j	                  |«       Œ t#        j2                  | t"        j4                  |«      | _        ||fD ]  }|€Œt        j8                  |«       Œ y # t        d «       w xY w# 1 sw Y   Œ„xY w# g }||	fD ]  }|€Œ|j	                  |«       Œ t#        j2                  | t"        j4                  |«      | _        ||fD ]  }|€Œt        j8                  |«       Œ w xY w)Nr   )Úresource_tracker)Ú
tracker_fdÚpipe_handleÚwbF)Úclosefd)Ú r%   Úgetfdr   r"   r   Úget_preparation_dataÚ_nameÚioÚBytesIOr   r   ÚdumpÚosÚpipeÚget_command_lineÚextendr   Úspawnv_passfdsÚget_executableÚpidÚsentinelÚopenÚwriteÚ	getbufferÚFinalizeÚ	close_fdsÚ	finalizerÚclose)r   r   r%   r&   Ú	prep_dataÚfpÚparent_rÚchild_wÚchild_rÚparent_wÚcmdÚfÚfds_to_closer   s                 r   Ú_launchzPopen._launch&   s#  € Ý&Ø%×+Ñ+Ó-ˆ
Ø�	‰	×Ñ˜Ô$Ü×.Ñ.¨{×/@Ñ/@ÓAˆ	Ü�Z‰Z‹\ˆÜ˜4Ô ð	%Ü�N‰N˜9 bÔ)Ü�N‰N˜;¨Ô+ä˜tÔ$à26Ð6ˆÐ6�7Ð6˜W xð	!Ü "§¡£	ÑˆH�gÜ "§¡£	ÑˆG�XÜ×(Ñ(°JØ5<ô>ˆCà�I‰I×Ñ˜g wÐ/Ô0Ü×*Ñ*¬5×+?Ñ+?Ó+AØ+.°·	±	ó;ˆDŒHà$ˆDŒMÜ�h ¨eÔ4ð (¸Ø—‘˜Ÿ™›Ô'÷(ð ˆLØ Ð*ò ,�Ø‘>Ø ×'Ñ'¨Õ+ð,ô "Ÿ]™]¨4´·±ÀÓNˆDŒNà Ð(ò !�Ø‘>Ü—H‘H˜R•Lñ!øô+ ˜tÕ$ú÷(ð (ûð ˆLØ Ð*ò ,�Ø‘>Ø ×'Ñ'¨Õ+ð,ô "Ÿ]™]¨4´·±ÀÓNˆDŒNà Ð(ò !�Ø‘>Ü—H‘H˜R•Lñ!ús>   Á1,G3 Â1B/H Å  HÆ H Ç3H ÈHÈH ÈI;ÈAI;É#I;)
r   r   r   Úmethodr   ÚDupFdr   r#   rI   Ú__classcell__)r    s   @r   r	   r	      s   ø„ Ø€FØ€Eô&òö"!r   )r.   r1   Úcontextr   r   r*   r   r   r   Ú__all__Úobjectr   r	   r   r   r   ú<module>rP      s<   ðÛ 	Û 	ç 2Ý Ý Ý àˆ)€ôˆVô ô.!ˆJ×Ñõ .!r   