+
    i<  c                   s   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^RI
Ht ^RI
Ht ^RI
Ht ^RIHt ^RI
Ht ^RI
Ht ^RI
Ht . ROtR	t]P*                  ! R
4      t^ t ! R R]4      tRRRRR/R lltR tR tR t]! 4       t]P>                  t]P@                  t ]PB                  t!]PD                  t"R# )    N)AuthenticationError)
connection)process)	reduction)resource_tracker)spawn)utili   Zqc                   sJ   a  ] tR t^#t o R tR tR tR tR tR t	R t
RtV tR	# )

ForkServerc                s    R V n         R V n        R V n        R V n        R V n        \
        P                  ! 4       V n        R.V n        R # )N__main__)	_forkserver_authkey_forkserver_address_forkserver_alive_fd_forkserver_pid_inherited_fds	threadingZLock_lock_preload_modulesself   &3/usr/lib64/python3.14/multiprocessing/forkserver.py__init__ZForkServer.__init__%   sB    #' #' $(!#"^^%
!+    c                s    V P                   ;_uu_ 4        V P                  4        R R R 4       R #   + '       g   i     R # ; iN)r   _stop_unlockedr   r   r   _stopZForkServer._stop.   s#    ZZZ! ZZZs	   0A	c                sl   V P                   f   R # \        P                  ! V P                  4       R V n        \        P                  ! V P                   ^ 4       R V n         \
        P                  ! V P                  4      '       g!   \        P                  ! V P                  4       R V n        R V n	        R # r   )
r   oscloser   waitpidr   is_abstract_socket_namespacer   Zunlinkr
   r   r   r   r   ZForkServer._stop_unlocked3   s    ' 	**+$(!


4''+#001I1IJJIId../#' #' r   c                s    \         ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \        R4      hWn        R# )z>Set list of module names to try to load in forkserver process.c              3   sD   "   T F  p\        V4      \        J x  K  	  R # 5ir   )ZtypeZstr)Z.0Zmods   & r   Z	<genexpr>Z4ForkServer.set_forkserver_preload.<locals>.<genexpr>E   s     =}49#}s    FTz&module_names must be a list of stringsN)ZallZ	TypeErrorr   )r   Zmodules_namess   &&r   set_forkserver_preloadZ!ForkServer.set_forkserver_preloadC   s5    s=}=sss=}===DEE -r   c                s    V P                   # )z|Return list of fds inherited from parent process.

This returns None if the current process was not started by fork
server.
)r   r   r   r   get_inherited_fdsZForkServer.get_inherited_fdsI   s     """r   c                sv   V P                  4        \        V4      ^,           \        8  d   \        R4      h\        P                  ! \        P
                  4      ;_uu_ 4       pVP                  V P                  4       \        P                  ! 4       w  r4\        P                  ! 4       w  rVWTV P                  \        P                  ! 4       .pWq,          p VP                  R4       \        P                  ! VP!                  4       4      p \        P"                  ! WP$                  4       \        P&                  ! WP$                  4       VP)                  4        ?\*        P,                  ! W'4       W63\        P.                  ! V4       \        P.                  ! V4       uuRRR4       #   TP)                  4        ?i ; i   \        P.                  ! T4       \        P.                  ! T4       h ; i  \        P.                  ! T4       \        P.                  ! T4       i ; i  + '       g   i     R# ; i)a  Request forkserver to create a child process.

Returns a pair of fds (status_r, data_w).  The calling process can read
the child process's pid and (eventually) its returncode from status_r.
The calling process should write to data_w the pickled preparation and
process data.
ztoo many fdsTN)ensure_runninglenMAXFDS_TO_SENDZ
ValueErrorsocketAF_UNIXZconnectr   r   piper   r   ZgetfdZsetblockingr   
Connectionfilenoanswer_challenger
   deliver_challenge_detachr   Zsendfdsr   )	r   fdsZclientZparent_rchild_wchild_rZparent_wZallfdsZwrapped_clients	   &&       r   connect_to_new_processZ!ForkServer.connect_to_new_processQ   s    	s8a<>)^,,]]6>>**fNN4334 "	H "	G(A(A&,,.0FMF"""4(!+!6!6v}}!G'//*,D,DF00*,D,DF #**,&!!&1) !!9 +*$ #**,&""!!9 +**sJ   #A4H'5GA F.)G7,H'.GG/G33G66.H$$H''H8	c           	     sz   V P                   ;_uu_ 4        \        P                  ! 4        V P                  e   \        P
                  ! V P                  \        P                  4      w  rV'       g    RRR4       R# \        P                  ! V P                  4       RV n	        RV n
        RV n        RV n        Rp/ pV P                  '       dP   \        P                  ! R4      pRV9   d   VR,          VR&   RV9   d   VR,          VR&   RV9   d   VR,          VR&   \        P                  ! \        P                  4      ;_uu_ 4       p\         P"                  ! R4      pVP%                  V4       \&        P(                  ! V4      '       g   \        P*                  ! VR4       VP-                  4        \        P.                  ! 4       w  r\        P.                  ! 4       w  r VP1                  4       W.pWR	&   W6P1                  4       WP                  V3,          p\        P2                  ! 4       pV.\&        P4                  ! 4       ,           pVR
V.,          p\&        P6                  ! WV4      p \        P                  ! T4       \        P                  ! T
4        \        P8                  ! \:        4      T n	        \        P<                  ! YP                  4       \        P                  ! T4       Ypn
        Yn        Yn        RRR4       RRR4       R#    \        P                  ! T	4       \        P                  ! T4       h ; i  \        P                  ! T4       \        P                  ! T
4       i ; i  \        P                  ! T4       i ; i  + '       g   i     L; i  + '       g   i     R# ; i)zMake sure that a fork server is running.

This can be called from any process.  Note that usually a child
process will just reuse the forkserver started by its parent, so
ensure_running() will do nothing.
NZignoresys_pathZinit_main_from_path	main_pathsys_argvr%   i  	authkey_rz-czCfrom multiprocessing.forkserver import main; main(%d, %d, %r, **%r))r   r   r!   r   r   r   WNOHANGr   r   r
   r   r   r   Zget_preparation_datar$   r%   r   Zarbitrary_addressZbindr   r   ZchmodZlistenr&   r(   Zget_executableZ_args_from_interpreter_flagsZspawnv_passfdsZurandom_AUTHKEY_LENwrite)r   pidZstatusZcmdZmain_kwsdatalistenerZaddressalive_rZalive_wr3   Z	authkey_wZfds_to_passZexeZargss   &              r   r!   ZForkServer.ensure_running{   s    ZZZ++-##/ jj)=)=rzzJ Z 223+/(+/(,0)'+$,C H$$$11(;%+/
+;HZ((D0,01F,GH[)%+/
+;HZ(v~~..($66yAg&88AAHHWe,! $&779 ')wwy$	(#+??#4g"IK,5[)OO-w8M8M$& &C..0C54#D#D#FFDT3K'D--cEC HHW%HHY'(/1zz,/GD,HHY(@(@AHHY'+2(,3)'*$K /9 ZbHHW%HHY'HHW%HHY' HHY'E /.9 ZZsi   AN)=CN)
BN	$BL2,N	?M;(N	N)/MM

.M88N	;NN	N&!N))N:	)r   r   r
   r   r   r   r   N)Z__name__Z
__module__Z__qualname__Z__firstlineno__r   r   r   r   r    r/   r!   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r   #   s0     -"
( .#("TH+ H+r   r   r2   r3   c               sF   Ve4    \         P                  ! V\        4      p\         P                  ! V4       MRpV'       d   Ve   V\        P
                  R&   Ve   V\        P                  R&   RV9   dK   VeG   R\        P                  ! 4       n	         \        P                  ! V4       \        P                  ! 4       =	V F  p \        V4       K  	  \        P                  ! 4        \        P                   ! 4        \         P"                  ! 4       w  r\         P$                  ! V	R4       \         P$                  ! V
R4       R p\&        P(                  V\&        P*                  \&        P,                  /pVP/                  4        UUu/ uF  w  rV\&        P&                  ! W4      bK  	  ppp\&        P0                  ! V
4       / p\2        P2                  ! \2        P4                  V R7      ;_uu_ 4       p\6        P8                  ! 4       ;_uu_ 4       pVP;                  4       \<        n        VPA                  V\6        PB                  4       VPA                  V\6        PB                  4       VPA                  V	\6        PB                  4          VPE                  4        UUu. uF  w  ppVPF                  NK  	  pppV'       g   K9   TT9   d   \H        hT	T9   d   \         P                  ! T	R	4         \         PJ                  ! R\         PL                  4      w  ppT^ 8X  d   MpTPQ                  TR4      pTe<   \         PR                  ! T4      p \U        TT4       \         P                  ! T4       K  \X        PZ                  ! R
T,          4       K  TT9   Ed$   TP]                  4       ^ ,          ;_uu_ 4       p T'       de   \^        P`                  ! TPc                  4       4      p \^        Pd                  ! TT4       \^        Pf                  ! TT4       TPi                  4        ?\j        Pl                  ! T\n        ^,           4      p\u        T4      \n        8  d$   \w        RPy                  \u        T4      4      4      hTvpppTP                  4        \         Pz                  ! 4       pT^ 8X  d   ^p TP                  4        TP                  4        TTY.pTP}                  TP                  4       4       \        P                  ! 4        \        P@                  ! \        P                  4       \        TTTT4      p\        P                  ! 4        \         P                  ! T4       MG \U        TT4       TTT&   \         P                  ! T4       T F  p \         P                  ! T 4       K  	  RRR4       EK4  EK7    \         P                  ! T4       i ; i  \        P                  ! 4       =	i ; i  \         d     EKF  i ; iu uppi u uppi   \N         d     EK  i ; i  \V         d     ELi ; i  TPi                  4        ?i ; i  \p        \V        \r        3 d    TP                  4         RRR4       EK  i ; i  \         dJ    \        P                  ! \        P                  ! 4       !   \        P                  P                  4         ELi ; i  \        P                  ! 4        \         P                  ! T4       i ; i  \V         d     ELi ; i  + '       g   i     EK  ; i  \         d-   p!T!P                  \        P                  8w  d   h  Rp!?!EK  Rp!?!ii ; i  + '       g   i     M; iRRR4       R#   + '       g   i     R# ; i)zRun forkserver.Nr   :NNNr	   TFc                  s    R # r    )Z_unuseds   *r   sigchld_handlerZmain.<locals>.sigchld_handler   s    r   )r(   i   z.forkserver: waitpid returned unexpected pid %dzToo many ({0:n}) fds to send)Nr   Zreadr5   r   sysZargvZpathr   Zcurrent_processZ_inheritingr   Zimport_main_pathZ
__import__ZImportErrorr   Z_flush_std_streamsZ_close_stdinr&   Zset_blockingsignalZSIGCHLDZSIGINTZSIG_IGNitemsset_wakeup_fdr$   r%   	selectorsZDefaultSelectorZgetsockname_forkserverr   ZregisterZ
EVENT_READZselectZfileobjZ
SystemExitr   r4   ZChildProcessErrorZpopZwaitstatus_to_exitcodewrite_signedZBrokenPipeErrorwarningsZwarnZacceptr   r'   r(   r*   r)   r+   r   Zrecvfdsr#   EOFErrorr   r"   RuntimeErrorZformatZforkZextendZvaluesatexitZ_clearZ_exit_function
_serve_oneZ	ExceptionZ
excepthookZexc_infoZstderrZflushZ_run_exitfuncsZ_exitZOSErrorerrnoZECONNABORTED)"Zlistener_fdr:   Zpreloadr1   r0   r2   r3   ZauthkeyZmodnameZsig_rZsig_wr<   handlerssigvalZold_handlersZ	pid_to_fdr9   ZselectorZkeyZeventsZrfdsr7   Zstsr-   Z
returncodeZsZ	wrapped_sr,   r.   code
unused_fdsfdZes"   &&&&&$$                           r   mainrQ      s    	 ggi6G HHY"CHHQK"CHHQK Y%:48G##%1:&&y1++-9G7#  	!779LEOOE5!OOE5! 	v~~	
H '/nn&68&6
 s00&6  8  I	v~~k	:	:h		"	"	$	$*2*>*>*@'(I$8$89'9#7#78%!5!56c=E__=NO=NMS&CKK=NDOtd? %$D=GGE5)"')zz"bjj'AHC !8!"+--T":".)+)B)B3)GJ% ,Wj A HHW- %MM +>@C+D E t#!*1--%&,6,A,A!((*,M	!2$.$@$@,5w%@$.$?$?,5w%@ %.$5$5$7(1"+"3"3A~7I"JC s8n4". > E E$'H!.#/ / 25.3	 ggi!8#$D/ ( 0 ( 0.5w-M
 * 1 1)2B2B2D E & &0C0C D'1'32<2>(@ !' 5 5 7 "% ,Wc : .5IcNHHW-&) " '*m .- $C HHY ++-9  .8( P   1 "!" $3 % $%. %.$5$5$7(1 !)/;NO %GGI$% .- %. $- 3 # ? #

 0 0 23 !' 5 5 7 "
 $3 % $%c .--r  77e000 1S 
%	$ 
;	:	:	:s  W W  W:"X6^A;]2	\8$X<\8	-\87(X4\8X, A\8>\# ,Y-.X>3YA*\#9BZ
,\#1\=:\#7\8?]2	W W7:X
	X
\8X)$\8(X))\8,X;7\8:X;;\8>YY&Z:\#;\8]2	Z\#
A[[![[!!-\\#\ \#\  \##\5.\82]2	5\88]/ ]*#]2	*]//]2	2^=^^ 	c                 sz   \         P                  ! R4       VP                  4        F  w  rE\         P                   ! WE4       K  	  V F  p\        P                  ! V4       K  	  Vv\
        n        \        P                  n	        \
        n
        \        P                  ! V 4      p\        P                  ! W4      pV# )i   r=   )r?   rA   r@   r   r   rC   r   r   Z_resource_trackerZ_fdr   Zdupr   Z_main)	r.   r,   rO   rK   rL   rM   rP   Zparent_sentinelrN   s	   &&&&     r   rI   rI   r  s    
NN$c %
 
 %("[%''+  ffWoO;;w0DKr   c                 s    \        \        P                  4      p\        V4      pV'       d/   \        P
                  ! W4      pV^ 8X  d   \        R4      hW#R pK6  \        P                  V4      ^ ,          # )r    zunexpected EOFN)Z	bytearraySIGNED_STRUCTZsizeZ
memoryviewr   ZreadintorF   Zunpack)rP   r8   ZunreadZcounts   &   r   read_signedrS     s_    ]''(DF
B'A:+,,%a((r   c                 s    \         P                  V4      pV'       d/   \        P                  ! W4      pV^ 8X  d   \	        R4      hW#R pK6  R# )r    zshould not get hereN)rR   Zpackr   r6   rG   )rP   ZnZmsgZnbytess   &&  r   rD   rD     sD    


Q
C
""Q;455'l	 r   )r!   r    r/   r   )NN)#rH   rJ   r   rB   r?   r$   Zstructr>   r   rE   Z r   r   r   Zcontextr   r   r   r   Z__all__r#   ZStructrR   r5   Zobjectr   rQ   rI   rS   rD   rC   r!   r    r/   r   r;   r   r   <module>rT      s      	     
   !      % c"`+ `+Lff%)fR.	) l++11 $;; $;; r   