+
    iD  c                   s   ^ 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(Ot
^ t^t^
t^t^t^tRtRtRsR	sR
 tR tR tR tR tR tR)R ltR tR t]! 4       t]P>                  R8X  d   ^lt M9]P>                  PC                  R*4      '       d   ^ht M] PD                  R8X  d   RM^\t R t#R t$R t%]PL                  ! 4       t']PP                  ! 4       t)R t*R t+/ t,]PP                  ! 4       t- ! R R].4      t/R)R lt0R t1R	s2]]]0]	Pf                  ]	Ph                  3R lt5]Pl                  ! ]54        ! R R].4      t7 ! R R]Pp                  4      t9 ] Pt                  ! R 4      t;R" t=R# t>R$ t?R% t@R& tAR' tBR#   ]< d    R!t; Li ; i)+    N)_args_from_interpreter_flags)processFinalizeForkAwareThreadLockForkAwareLocalmultiprocessingz+[%(levelname)s/%(processName)s] %(message)sFc                 `    \         '       d"   \         P                  ! \        V .VO5R ^/  R# R# Z
stacklevelN)_loggerlogSUBDEBUGZmsgargs   &*-/usr/lib64/python3.14/multiprocessing/util.py	sub_debugr   -   s$    wHc7D7Q7     c                 r   r   )r	   r
   DEBUGr   r   r   debugr   1   s$    wE344!4 r   c                 r   r   )r	   r
   INFOr   r   r   infor   5   s$    wD#333 r   c                 r   r   )r	   r
   WARNINGr   r   r   warnr   9   s$    wGS646A6 r   c                 r   r   )r	   r
   
SUBWARNINGr   r   r   sub_warningr   =   s$    wJ9d9q9 r   c                 s   ^ RI p V P                  ;_uu_ 4        \        '       g   V P                  \        4      s^ \        n        \        \        R4      '       d6   \        P                  ! \        4       \        P                  ! \        4       ML\        P                  P                  \        R/ 34       \        P                  P                  \        R/ 34       RRR4       \        #   + '       g   i     \        # ; i)z(
Returns logger used by multiprocessing
N
unregister )logging_lockr	   Z	getLoggerLOGGER_NAMEZ	propagateZhasattratexitr   _exit_functionregisterZ_exithandlersZremoveZappend)r       r   
get_loggerr#   A   s    
 	w''4G !G v|,,!!.1/$$++^R,DE$$++^R,DE 
 N 
 Ns   CC++D 	c                s    ^ RI p\        4       pVP                  \        4      pVP	                  4       pVP                  V4       VP                  V4       V '       d   VP                  V 4       Rs\        # )z:
Turn on logging and add a handler which prints to stderr
NT)
r   r#   Z	FormatterDEFAULT_LOGGING_FORMATZStreamHandlerZsetFormatterZ
addHandlerZsetLevel_log_to_stderrr	   )Zlevelr   ZloggerZ	formatterZhandler   &    r   log_to_stderrr'   X   sb    
 \F!!"89I##%G#
gNNr   c                  s(    \         P                  R9   # )linux)r(   Zandroid)sysplatformr   r   r   #_platform_supports_abstract_socketsr+   m   s    <<///r   c                 s    V '       g   R # \        V \        4      '       d   V ^ ,          ^ 8H  # \        V \        4      '       d   V ^ ,          R8H  # \        RV : R24      h)FZ zaddress type of z unrecognized)
isinstanceZbytesstr	TypeError)Zaddress   &r   is_abstract_socket_namespacer0   q   sT    '5!!qzQ	GS	!	!qzT!!
&wk?
@@r   r(   ntc                 sj    V ! V4       \         P                  ! 4       pVe   R VP                  R&   R # R # )Ntempdir)r   current_process_config)rmtreer2   r3   s   && r   _remove_temp_dirr6      s4    
7O--/O "-1	* #r   c                s"   \         P                  R8X  d   R# V P                  4       p\        V4      ^,           ^,           pV\        8  d   V# . ROp V P                  V4      p\        RT4       T#   \         d    \        RY4       Tu # i ; i)zGet a temporary directory where socket files will be created.

To prevent additional imports, pass a pre-imported 'tempfile' module.
r1   NzProcess-wide temporary directory %s will not be usable for creating socket files and no usable system-wide temporary directory was found in %sz-Ignoring user-defined temporary directory: %s)z/tmpz/var/tmpz/usr/tmp)osnameZ
gettempdirlen_SUN_PATH_MAXZ_get_default_tempdirZFileNotFoundErrorr   )tempfilebase_tempdirZsun_path_lenZdirlistZbase_system_tempdirr&   r   _get_base_temp_dirr=      s    
 
ww$ &&(L |$r)B.L m# /G	&;;GD 		8,G    )*6	A s   A2 2BBc                  sP   \         P                  ! 4       P                  P                  R 4      p V ft   ^ RIp^ RIp\        V4      pVP                  RVR7      p \        RV 4       \        R\        VP                  V 3RR7       V \         P                  ! 4       P                  R &   V # )r2   Nzpymp-)ZprefixZdirzcreated temp directory %s)r   exitpriorityi)r   r3   r4   getshutilr;   r=   Zmkdtempr   r   r6   r5   )r2   r@   r;   r<   s       r   get_temp_dirrA      s    %%'//33I>G)(3""'|"D('2 	'v}}g.F"	$7>!)))4Nr   c                  s    \        \        P                  4       4      p V P                  4        V  F  w  w  rr4 V! V4       K  	  R#   \         d   p\        R T4        Rp?K4  Rp?ii ; i)z after forker raised exception %sN)list_afterfork_registryitemssort	Exceptionr   )rD   ZindexZidentfuncobjZes         r   _run_after_forkersrI      s]    $**,-E	JJL%*!t	8I &+  	83Q77	8s   AA)A$$A)c                 sJ    V \         \        \        4      \        V 4      V3&   R # N)rC   next_afterfork_counterZid)rH   rG   s   &&r   register_after_forkrM      s    EH012c7DABr   c                   sf   a  ] tR t^t o RtR	R ltR]]]P                  3R lt
R tR tR tRtV tR# )
r   z9
Class which supports object finalization using weakrefs
Nc                s   Ve;   \        V\        4      '       g%   \        RP                  V\	        V4      4      4      hVe   \
        P                  ! W4      V n        MVf   \        R4      hW n	        W0n
        T;'       g    / V n        V\        \        4      3V n        \        P                   ! 4       V n        V \$        V P                  &   R # )Nz3Exitpriority ({0!r}) must be None or int, not {1!s}z+Without object, exitpriority cannot be None)r,   intr.   ZformattypeweakrefZref_weakref
ValueError	_callback_args_kwargsrK   _finalizer_counter_keyr7   getpid_pid_finalizer_registry)selfrH   Zcallbackr   Zkwargsr>   s   &&&&&&r   __init__ZFinalize.__init__  s    $jc.J.JELL $|"467 7 ?#KK2DM!JKK!
||!4(:#;<	IIK	)-DII&r   c                sz    W P                    V P                  V! 4       8w  d   V! R4       RpMOV! RV P                  V P                  V P                  4       V P                  ! V P                  / V P                  B pR;V n        ;V n        ;V n        ;V n        V n         V#   \         d    T! R4        R# i ; i)zA
Run the callback unless it has already been called or cancelled
z+finalizer ignored because different processNz/finalizer calling %s with args %s and kwargs %szfinalizer no longer registered)rW   rY   rS   rT   rU   rQ   KeyError)r[   ZwrrZ   r   rX   Zres   &&&&& r   __call__ZFinalize.__call__  s    	#II. yyFH$GHK..$**dllDnndjjADLLA7;<DM <DN <TZ < L49J  	867	8s   B# #B:9B:c                s     \         V P                   R;V n        ;V n        ;V n        ;V n        V n        R#   \         d     R# i ; i)z#
Cancel finalization of the object
N)rZ   rW   rQ   rS   rT   rU   r]   r[   r/   r   cancelZFinalize.cancel,  sU    	<#DII.
 8<<DM <DN <TZ < L49	  		s   8 AAc                s(    V P                   \        9   # )zC
Return whether this finalizer is still waiting to invoke callback
)rW   rZ   r`   r/   r   still_activeZFinalize.still_active8  s     yy///r   c                sx    V P                  4       pVf   RV P                  P                  ,          # RV P                  P                  : R\        V P                  RV P                  4      : 2pV P                  '       d$   VR\        V P                  4      ,           ,          pV P                  '       d$   VR\        V P                  4      ,           ,          pV P                  ^ ,          e+   VR\        V P                  ^ ,          4      ,           ,          pVR,           #   \        \        3 d    R p EL&i ; i)	Nz<%s object, dead>Z<z object, callback=__name__z, args=z	, kwargs=z, exitpriority=Z>)rQ   AttributeErrorr.   Z	__class__rc   ZgetattrrS   rT   r-   rU   rW   )r[   rH   Zxs   &  r   __repr__ZFinalize.__repr__>  s    	--/C ;&)@)@@@  ''
DNNCE :::S_,,A<<<s4<<000A99Q<#"S1%666A3w 	* 	C	s   D" "D98D9)rT   rS   rW   rU   rY   rQ   )r   NN)rc   
__module____qualname____firstlineno__Z__doc__r\   rZ   r   r7   rX   r_   ra   rb   re   __static_attributes____classdictcell__Z__classdict__   @r   r   r      s;     .&  &9$RYY	0
<0 r   c                s  a  \         f   R# S f   R pMV 3R lp\        \         4       Uu. uF  q!! V4      '       g   K  VNK  	  ppVP                  RR7       V F2  p\         P                  V4      pVf   K  \	        RV4        V! 4        K4  	  S f   \         P                  4        R# R# u upi   \
         d    ^ RIpTP                  4         Ky  i ; i)z
Run all finalizers whose exit priority is not None and at least minpriority

Finalizers with highest priority are called first; finalizers with
the same priority will be called in reverse order of creation.
Nc                 s    V ^ ,          RJ# r    Nr   )pr/   r   <lambda>!_run_finalizers.<locals>.<lambda>a  s    qt4'r   c                 sB   < V ^ ,          RJ;'       d    V ^ ,          S8  # rm   r   )rn   minprioritys   &r   ro   rp   c  s"    qt4'??AaDK,??r   T)Zreversez
calling %s)	rZ   rB   rE   r?   r   rF   	tracebackZ	print_excclear)rq   ZfZkeyZkeysZ	finalizerrr   s   f     r   _run_finalizersrt   S  s     " 	'?   34?4C#CC4D?IIdI'++C0	 lI.&  !!#  @  & ##%&s   B-B-B22CCc                 s.    \         ;'       g	    \         RJ # )z.
Returns true if the process is shutting down
N)_exitingr   r   r   
is_exitingrv     s     ''x4''r   c                 s   \         '       g   R s V ! R4       V! R4       V! ^ 4       V! 4       e   V! 4        FD  pVP                  '       g   K  V ! RVP                  4       VP                  P	                  4        KF  	  V! 4        F&  pV ! RVP                  4       VP                  4        K(  	  V! R4       V! 4        R# R# )Tzprocess shutting downz2running all "atexit" finalizers with priority >= 0Nz!calling terminate() for daemon %szcalling join() for process %sz)running the remaining "atexit" finalizers)ru   Zdaemonr8   Z_popenZ	terminateZjoin)r   r   rt   active_childrenr3   rn   r^   r   r    r      s     8$%BC( %&888<affEHH&&( '
 %&4aff= ' 	9:? r   c                   s8   a  ] tR tRt o R tR tR tR tRtV t	R# )r   i  c                s    \         P                  ! 4       V n        V P                  P                  V n        V P                  P                  V n        \        V \        P                  4       R # rJ   )	threadingZLockr   acquirereleaserM   r   _at_fork_reinitr`   r/   r   r\   ZForkAwareThreadLock.__init__  sC    ^^%
zz))zz))D"5"E"EFr   c                s:    V P                   P                  4        R # rJ   )r   r{   r`   r/   r   r{   Z#ForkAwareThreadLock._at_fork_reinit  s    

""$r   c                6    V P                   P                  4       # rJ   )r   	__enter__r`   r/   r   r}   ZForkAwareThreadLock.__enter__  s    zz##%%r   c                s6    V P                   P                  ! V!  # rJ   )r   __exit__)r[   r   r   r   r~   ZForkAwareThreadLock.__exit__  s    zz""D))r   )r   ry   rz   N)
rc   rf   rg   rh   r\   r{   r}   r~   ri   rj   rk   rl   r   r   r     s     G%&* *r   c                   s,   a  ] tR tRt o R tR tRtV tR# )r   i  c                s     \        V R  4       R# )c                 r|   rJ   )Z__dict__rs   )rH   r/   r   ro   Z)ForkAwareLocal.__init__.<locals>.<lambda>  s    s||/A/A/Cr   N)rM   r`   r/   r   r\   ZForkAwareLocal.__init__  s    D"CDr   c                s    \        V 4      R3# )Nr   )rO   r`   r/   r   
__reduce__ZForkAwareLocal.__reduce__  s    Dz2~r   r   N)rc   rf   rg   rh   r\   r   ri   rj   rk   rl   r   r   r     s     E r   ZSC_OPEN_MAXi   c                 s    \        V 4      R\        .,           p V P                  4        \        \	        V 4      ^,
          4       F4  p\
        P                  ! W,          ^,           W^,           ,          4       K6  	  R# )i   N)rB   MAXFDrE   Zranger9   r7   Z
closerange)fdsZis   & r   close_all_fds_exceptr     sN    
s)r5k
!CHHJ3s8a< 
cfQhaC) !r   c                  s   \         P                  f   R #  \         P                  P                  4         \
        P                  ! \
        P                  \
        P                  4      p  \        V RRR7      \         n        R #   \        \        3 d     Lai ; i   \
        P                  ! T 4       h ; i  \        \        3 d     R # i ; i)Nzutf-8F)ZencodingZclosefd)	r)   ZstdincloseZOSErrorrR   r7   ZopenZdevnullZO_RDONLY)fdr"   r   _close_stdinr     s    
yy		WWRZZ-	R'5ACI Z  	HHRLZ  s4   B 3B5 )B BBB22B5 5C
	C
c                  s     \         P                  P                  4         \         P
                  P                  4        R #   \        \        3 d     L4i ; i  \        \        3 d     R # i ; irJ   )r)   ZstdoutZflushrd   rR   Zstderrr   r   r   _flush_std_streamsr     s]    



 J'  J' s"   A A AAA-,A-c                 s   ^ RI p\        \        \        \        V4      4      4      p\
        P                  ! 4       w  rE VP                  W.RVRRRRRRRRWERRRRRRRR4      \
        P                  ! V4       \
        P                  ! V4       #   \
        P                  ! T4       \
        P                  ! T4       i ; i)r    NTFr   )	_posixsubprocessZtupleZsortedZmaprN   r7   ZpipeZ	fork_execr   )Zpathr   Zpassfdsr   Zerrpipe_readZerrpipe_writes   &&&   r   spawnv_passfdsr     s    F3sG,-.G"$'')L ))&$tBBL5"dD$D:
 	
 	
s   $B .B>c                 sD    V  F  p\         P                  ! V4       K  	  R# )z/Close each file descriptor given as an argumentN)r7   r   )r   r   s   * r   	close_fdsr     s    
 r   c                 s   ^ RI Hp  \        P                  ! 4        ^ RIHp VP                  P                  4        ^ RIHp VP                  P                  4        \        4        V P                  4        V P                  4        R# )zGCleanup multiprocessing resources when multiprocessing tests
completed.)support)
forkserver)resource_trackerN)Ztestr   r   Z_cleanupr   r   Z_forkserverZ_stopr   Z_resource_trackerrt   Z
gc_collectZreap_children)r   r   r   s      r   _cleanup_testsr     sc       +  " 1&&,,. r   )r   r   r   r   r   r#   r'   rA   rM   rv   r   r   r   r   r   r   rJ   )ZopenbsdZfreebsd)Cr7   Z	itertoolsr)   rP   r   rx   Z
subprocessr   Z r   Z__all__ZNOTSETr   r   r   r   r   r   r$   r	   r%   r   r   r   r   r   r#   r'   r+   r0   Zabstract_sockets_supportedr*   r:   Z
startswithr8   r6   r=   rA   ZWeakValueDictionaryrC   ZcountrL   rI   rM   rZ   rV   Zobjectr   rt   rv   ru   rw   r3   r    r!   r   Zlocalr   Zsysconfr   rF   r   r   r   r   r   r   r   r   r   <module>r      s   
  
    3  

	

F 
8547:.*0A AB  <<7M\\344M GGtODM26p& 113 __& 8I  __& Sv Sl&$X( E?#*#:#:#*#:#:(T  *& *"Y__ JJ}%E*. M  Es   E> >	F
	F
