Ë
    ^ãjx0  ã                   óê  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z
 	 e j                  j                   e j                  «       «      Zg d¢Zd„ Zd„ Zd„ Zd„ Zefd	„Z G d
„ d«      Z G d„ de«      Z G d„ de«      Z e«       a ej6                  d«      a e«       a[eZi Z ejB                  jE                  «       D ]  \  Z#Z$e#dd dk(  sŒde#vsŒe#e e$ <   Œ  e«       Z%y# e$ r dZY Œ¡w xY w)é    N)ÚWeakSet©Úprocess)ÚBaseProcessÚProcessÚcurrent_processÚactive_childrenc                  ó   — t         S )z@
    Return process object representing the current process
    )Ú_current_process© ó    úR/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/billiard/process.pyr   r   #   s
   € ô Ðr   c                 ó   — | xa t        _         y ©N)r   Ú_mprocr   s    r   Ú_set_current_processr   *   s   € à18Ð8Ð”vÕ.r   c                  óŒ   — t        t        «      D ]2  } | j                  j                  «       €Œt        j	                  | «       Œ4 y r   )ÚlistÚ	_childrenÚ_popenÚpollÚdiscard)Úps    r   Ú_cleanupr   /   s3   € ä”)‹_ò !ˆØ�8‰8�=‰=‹?Ñ&Ü×Ñ˜aÕ ñ!r   c                 óZ   — 	 | j                  «        y # t        t        t        f$ r Y y w xY wr   )ÚflushÚAttributeErrorÚEnvironmentErrorÚNotImplementedError)Úfs    r   Ú_maybe_flushr!   6   s+   € ðØ	�‰�	øÜÔ,Ô.AÐBò Ùðús   ‚ “*©*c                 óR   — 	  | «        t        t        «      S # t         $ r g cY S w xY w)zN
    Return list of process objects corresponding to live child processes
    )Ú	TypeErrorr   r   )r   s    r   r	   r	   =   s.   € ðÙŒ
ô ”	‹?Ðøô ò àŠ	ðús   ‚ ˜&¥&c                   óŽ  — e Zd ZdZd„ Zddddi dfd„Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zdd„Zd„ Zd„ Zed„ «       Zej"                  d„ «       Zed„ «       Zej"                  d„ «       Zed„ «       Zej"                  d„ «       Zed„ «       Zed„ «       ZeZed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zd„ Zd„ Zy) r   z€
    Process objects represent activity that is run in a separate process

    The class is analogous to `threading.Thread`
    c                 ó   — t        «       ‚r   )r   ©Úselfs    r   Ú_PopenzBaseProcess._PopenP   s   € Ü!Ó#Ð#r   Nr   c                 ó&  — |�J d«       ‚t        t        «      }t        j                  |fz   | _        t        j                  j                  «       | _        t        j                  «       | _        d | _	        d| _
        || _        t        |«      | _        t        |«      | _        |xs; t!        | «      j"                  dz   dj%                  d„ | j                  D «       «      z   | _        |�|| _        t*        �t*        j-                  | «       d| _        y )Nz#group argument must be None for nowFú-ú:c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Ústr)Ú.0Úis     r   ú	<genexpr>z'BaseProcess.__init__.<locals>.<genexpr>a   s   è ø€ Ò4 ”S˜—VÑ4ùs   ‚)ÚnextÚ_process_counterr   Ú	_identityÚ_configÚcopyÚosÚgetpidÚ_parent_pidr   Ú_closedÚ_targetÚtupleÚ_argsÚdictÚ_kwargsÚtypeÚ__name__ÚjoinÚ_nameÚdaemonÚ	_danglingÚaddÚ_controlled_termination)	r'   ÚgroupÚtargetÚnameÚargsÚkwargsrC   Ú_kwÚcounts	            r   Ú__init__zBaseProcess.__init__S   sä   € àˆ}ÐCÐCÓCˆ}ÜÔ%Ó&ˆÜ)×3Ñ3°u°iÑ?ˆŒÜ'×/Ñ/×4Ñ4Ó6ˆŒÜŸ9™9›;ˆÔØˆŒØˆŒØˆŒÜ˜4“[ˆŒ
Ü˜F“|ˆŒàò 5”D˜“J×'Ñ'¨#Ñ-Ø�H‰HÑ4 T§^¡^Ô4Ó4ñ5ð 	Œ
ð ÐØ ˆDŒKÜÐ Ü�M‰M˜$Ôà',ˆÕ$r   c                 ó2   — | j                   rt        d«      ‚y )Nzprocess object is closed)r9   Ú
ValueErrorr&   s    r   Ú_check_closedzBaseProcess._check_closedj   s   € Ø�<Š<ÜÐ7Ó8Ð8ð r   c                 ój   — | j                   r' | j                   | j                  i | j                  ¤Ž yy)zQ
        Method to be run in sub-process; can be overridden in sub-class
        N)r:   r<   r>   r&   s    r   ÚrunzBaseProcess.runn   s+   € ð �<Š<ØˆD�L‰L˜$Ÿ*™*Ð5¨¯©Ó5ð r   c                 ó:  — | j                  «        | j                  �J d«       ‚| j                  t        j                  «       k(  sJ d«       ‚t        «        | j                  | «      | _        | j                  j                  | _        t        j                  | «       y)z%
        Start child process
        Nzcannot start a process twicez:can only start a process object created by current process)rQ   r   r8   r6   r7   r   r(   ÚsentinelÚ	_sentinelr   rE   r&   s    r   ÚstartzBaseProcess.startu   s~   € ð 	×ÑÔØ�{‰{Ð"ÐBÐ$BÓBÐ"Ø×Ñ¤2§9¡9£;Ò.ð 	IØHó	IÐ.äŒ
Ø—k‘k $Ó'ˆŒØŸ™×-Ñ-ˆŒÜ�‰�dÕr   c                 óä   — | j                   �]| j                   j                  «       €t        d«      ‚| j                   j                  «        d| _         | `t
        j                  | «       d| _        y)zØ
        Close the Process object and release the resources it holds.

        It is an error to call this method while the child is still running.
        Other methods and properties then raise ValueError.
        Nz^Cannot close a process while it is still running. You should first call join() or terminate().T)r   r   rP   ÚcloserV   r   r   r9   r&   s    r   rY   zBaseProcess.close‚   sk   € ð �;‰;Ð"ð
 �{‰{×ÑÓ!Ð)Ü ðCóDð Dð �K‰K×ÑÔØˆDŒKØ�Ü×Ñ˜dÔ#Øˆ�r   c                 óX   — | j                  «        | j                  j                  «        y)zT
        Terminate process; sends SIGTERM signal or uses TerminateProcess()
        N)rQ   r   Ú	terminater&   s    r   r[   zBaseProcess.terminate˜   s    € ð 	×ÑÔØ�‰×ÑÕr   c                 ó2   — d| _         | j                  «        y )NT)rF   r[   r&   s    r   Úterminate_controlledz BaseProcess.terminate_controlledŸ   s   € Ø'+ˆÔ$Ø�‰Õr   c                 ó4  — | j                  «        | j                  t        j                  «       k(  sJ d«       ‚| j                  €J d«       ‚| j                  j                  |«      }|�0t        j                  | «       | j                  j                  «        yy)z5
        Wait until child process terminates
        zcan only join a child processNzcan only join a started process)	rQ   r8   r6   r7   r   Úwaitr   r   rY   )r'   ÚtimeoutÚress      r   rA   zBaseProcess.join£   s‚   € ð 	×ÑÔØ×Ñ¤2§9¡9£;Ò.ÐOÐ0OÓOÐ.Ø�{‰{Ð&ÐIÐ(IÓIÐ&Ø�k‰k×Ñ˜wÓ'ˆØˆ?Ü×Ñ˜dÔ#à�K‰K×ÑÕð r   c                 ó  — | j                  «        | t        u ry| j                  t        j                  «       k(  sJ d«       ‚| j
                  €y| j
                  j                  «        | j
                  j                  du S )z1
        Return whether process is alive
        Tzcan only test a child processNF)rQ   r   r8   r6   r7   r   r   Ú
returncoder&   s    r   Úis_alivezBaseProcess.is_alive°   sn   € ð 	×ÑÔØÔ#Ñ#ØØ×Ñ¤2§9¡9£;Ò.ÐOÐ0OÓOÐ.Ø�;‰;ÐØØ�‰×ÑÔØ�{‰{×%Ñ%¨Ð-Ð-r   c                 óT   — | j                   €y| j                   j                  «       d u S )NF)r   r   r&   s    r   Ú	_is_alivezBaseProcess._is_alive½   s'   € Ø�;‰;ÐØØ�{‰{×ÑÓ! TÐ)Ð)r   c                 ó   — | j                   S r   )rB   r&   s    r   rI   zBaseProcess.nameÂ   s   € à�z‰zÐr   c                 ó@   — t        |t        «      sJ d«       ‚|| _        y )Nzname must be a string)Ú
isinstancer-   rB   )r'   rI   s     r   rI   zBaseProcess.nameÆ   s   € ä˜$¤Ô$Ð=Ð&=Ó=Ð$Øˆ�
r   c                 ó:   — | j                   j                  dd«      S )z4
        Return whether process is a daemon
        rC   F©r4   Úgetr&   s    r   rC   zBaseProcess.daemonË   s   € ð
 �|‰|×Ñ ¨%Ó0Ð0r   c                 óH   — | j                   �J d«       ‚|| j                  d<   y)z1
        Set whether process is a daemon
        Nzprocess has already startedrC   )r   r4   )r'   Údaemonics     r   rC   zBaseProcess.daemonÒ   s(   € ð
 �{‰{Ð"ÐAÐ$AÓAÐ"Ø!)ˆ�‰�XÒr   c                 ó    — | j                   d   S )NÚauthkey)r4   r&   s    r   rp   zBaseProcess.authkeyÚ   s   € à�|‰|˜IÑ&Ð&r   c                 ó4   — t        |«      | j                  d<   y)z2
        Set authorization key of process
        rp   N)ÚAuthenticationStringr4   )r'   rp   s     r   rp   zBaseProcess.authkeyÞ   s   € ô
 #7°wÓ"?ˆ�‰�YÒr   c                 ó†   — | j                  «        | j                  €| j                  S | j                  j                  «       S )zM
        Return exit code of process or `None` if it has yet to stop
        )rQ   r   r   r&   s    r   ÚexitcodezBaseProcess.exitcodeå   s7   € ð
 	×ÑÔØ�;‰;ÐØ—;‘;ÐØ�{‰{×ÑÓ!Ð!r   c                 ó¢   — | j                  «        | t        u rt        j                  «       S | j                  xr | j                  j
                  S )zU
        Return identifier (PID) of process or `None` if it has yet to start
        )rQ   r   r6   r7   r   Úpidr&   s    r   ÚidentzBaseProcess.identï   s<   € ð
 	×ÑÔØÔ#Ñ#Ü—9‘9“;Ðà—;‘;Ò2 4§;¡;§?¡?Ð2r   c                 ól   — | j                  «        	 | j                  S # t        $ r t        d«      ‚w xY w)z{
        Return a file descriptor (Unix) or handle (Windows) suitable for
        waiting for process termination.
        zprocess not started)rQ   rV   r   rP   r&   s    r   rU   zBaseProcess.sentinelü   s:   € ð 	×ÑÔð	4Ø—>‘>Ð!øÜò 	4ÜÐ2Ó3Ð3ð	4ús   ’ ž3c                 ó   — t         S r   )r2   r&   s    r   Ú_counterzBaseProcess._counter  s
   € ô  Ðr   c                 ó   — t         S r   )r   r&   s    r   r   zBaseProcess._children  s
   € ô Ðr   c                 ó   — | j                   S r   )rp   r&   s    r   Ú_authkeyzBaseProcess._authkey  s   € ð �|‰|Ðr   c                 ó   — | j                   S r   )rC   r&   s    r   Ú	_daemoniczBaseProcess._daemonic  s   € ð �{‰{Ðr   c                 ó8   — | j                   j                  d«      S )NÚtempdirrk   r&   s    r   Ú_tempdirzBaseProcess._tempdir  s   € ð �|‰|×Ñ 	Ó*Ð*r   c                 óÌ  — | t         u rd}nk| j                  rd}n\| j                  t        j                  «       k7  rd}n8| j
                  €d}n)| j
                  j                  «       �| j                  }nd}t        |«      t        u r!|dk(  rd}ndt        j                  ||«      z  }dt        | «      j                  ›d	| j                  ›d
|›| j                  xr dxs d›d�S )NÚstartedÚclosedÚunknownÚinitialr   Ústoppedzstopped[%s]ú<ú(z, z daemonÚ z)>)r   r9   r8   r6   r7   r   r   rt   r?   ÚintÚ_exitcode_to_namerl   r@   rB   rC   )r'   Ústatuss     r   Ú__repr__zBaseProcess.__repr__!  sË   € ØÔ#Ñ#Ø‰FØ�\Š\Ø‰FØ×Ñ¤§¡£Ò,Ø‰FØ�[‰[Ð Ø‰Fà�{‰{×ÑÓ!Ð-ØŸ™‘à"�ä�‹<œ3ÑØ˜Š{Ø"‘à&Ô):×)>Ñ)>¸vÀvÓ)NÑN�øä#'¨£:×#6Ó#6¸¿
»
Ù#)¨4¯;©;Ò+D¸9Ò+JÈÑ+JðLð 	Lr   c                 óÎ  — ddl m}m} 	 | j                  �|j	                  | j                  «       t        j                  d«      at        «       a	t        j                  �A	 t        j                  j                  «        t        t        j                  «      t        _        t&        }t)        | «       t*        j,                  j.                  j0                  }t3        |j5                  «       «      }|j7                  d «       |D ]V  }|rt9        ||   t*        j:                  «      rŒ#t+        j<                  |«      j>                  D ]  }|jA                  «        Œ ŒX tC        jD                  «       t*        _#        	 |jH                  jK                  «        |jM                  «        ~|jO                  d| jP                  «       	 | jS                  «        d}|jU                  «        	 |jO                  d
| jP                  |«       tc        t        jl                  «       tc        t        j\                  «       |S # t         t"        t$        f$ r Y �Œ«w xY w# ~w xY w# |jU                  «        w xY w# tV        $ r¹}	|	jX                  sd}nŸt9        |	jX                  d   tZ        «      r|	jX                  d   }nrt        j\                  j_                  ta        |	jX                  d   «      dz   «       tc        t        j\                  «       t9        |	jX                  d   t`        «      rdnd}Y d }	~	�ŒDd }	~	w d}|je                  d| jf                  d¬«      s@dd l4}
t        j\                  j_                  d	| jf                  z  «       |
jk                  «        Y �Œ¬xY w# |jO                  d
| jP                  «       tc        t        jl                  «       tc        t        j\                  «       w xY w)Né   )ÚutilÚcontextz#child process %s calling self.run()r   ú
z
Process %sT)Úexc_infozProcess %s:
z#process %s exiting with exitcode %d)7r‹   r’   r“   Ú_start_methodÚ_force_start_methodÚ	itertoolsrM   r2   Úsetr   ÚsysÚstdinrY   Úopenr6   Údevnullr   ÚOSErrorrP   r   r   ÚloggingÚLoggerÚmanagerÚ
loggerDictr   ÚkeysÚappendri   ÚPlaceHolderÚ	getLoggerÚhandlersÚ
createLockÚ	threadingÚRLockÚ_lockÚ_finalizer_registryÚclearÚ_run_after_forkersÚinforv   rS   Ú_exit_functionÚ
SystemExitrJ   rŒ   ÚstderrÚwriter-   r!   ÚerrorrI   Ú	tracebackÚ	print_excÚstdout)r'   r’   r“   Úold_processr¢   Úlogger_namesrI   Úhandlerrt   Úexcrµ   s              r   Ú
_bootstrapzBaseProcess._bootstrap;  sÔ  € ß#ð<	%Ø×!Ñ!Ð-Ø×+Ñ+¨D×,>Ñ,>Ô?Ü(Ÿ™¨qÓ1ÐÜ›ˆIÜ�y‰yÐ$ðÜ—I‘I—O‘OÔ%Ü $¤R§Z¡ZÓ 0”C”Iô +ˆKÜ  Ô&ô !Ÿ™×/Ñ/×:Ñ:ˆJÜ 
§¡Ó 1Ó2ˆLØ×Ñ Ô%Ø$ò -�Ù¤:¨j¸Ñ.>Ü.5×.AÑ.Aõ$Cä#*×#4Ñ#4°TÓ#:×#CÑ#Cò -˜Ø×*Ñ*Õ,ñ-ð-ô
 &ŸO™OÓ-ŒGŒMð Ø×(Ñ(×.Ñ.Ô0Ø×'Ñ'Ô)ð  Ø�I‰IÐ;¸T¿X¹XÔFð&Ø—‘”
Ø�à×#Ñ#Õ%ð" �I‰IÐ;Ø—h‘h ô*äœŸ™Ô$ÜœŸ™Ô$àˆøôk )¬'´:Ð>ò Úðûñ2  ûð ×#Ñ#Õ%ûÜò 	DØ—8’8Ø‘Ü˜CŸH™H Q™K¬Ô-ØŸ8™8 A™;‘ä—
‘
× Ñ ¤ S§X¡X¨a¡[Ó!1°DÑ!8Ô9ÜœSŸZ™ZÔ(Ü *¨3¯8©8°A©;¼Ô <™1À!�ÿùð	&ØˆHØ—:‘:˜l¨D¯I©IÀ�:ÔEÛ Ü—
‘
× Ñ  °4·9±9Ñ!<Ô=Ø×#Ñ#Ô%þà�I‰IÐ;Ø—h‘h ô*äœŸ™Ô$ÜœŸ™Õ$ús�   ŠAI+ Á!A H5 Â!BI+ Ä%AI+ Å9*I Æ#I+ ÇI ÇI+ Ç#N È5IÉ	I+ ÉIÉI+ ÉIÉI+ ÉI(É(I+ É+	NÉ4B.L(Ì"N Ì(A%NÎN ÎAO$r   )r@   Ú
__module__Ú__qualname__Ú__doc__r(   rN   rQ   rS   rW   rY   r[   r]   rA   rd   rf   ÚpropertyrI   ÚsetterrC   rp   rt   rw   rv   rU   rz   r   r}   r   r‚   r�   r¼   r   r   r   r   r   I   s…  „ ñò$ð "¨$°TØ ¨Dó-ò.9ò6òòò, òó ò.ò*ð
 ñó ðð 
‡[�[ñó ðð ñ1ó ð1ð ‡]�]ñ*ó ð*ð ñ'ó ð'ð ‡^�^ñ@ó ð@ð ñ"ó ð"ð ñ3ó ð3ð €Càñ	4ó ð	4ð ñ ó ð ð ñó ðð ñó ðð ñó ðð ñ+ó ð+òLó4Br   r   c                   ó   — e Zd Zd„ Zy)rr   c                 óV   — ddl m}  |«       €t        d«      ‚t        t	        | «      ffS )Nr‘   )Úget_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)r“   rÄ   r#   rr   Úbytes)r'   rÄ   s     r   Ú
__reduce__zAuthenticationString.__reduce__†  s3   € Ý/áÓÐ'Üð2ó3ð 3ô $¤e¨D£k ^Ð3Ð3r   N)r@   r½   r¾   rÆ   r   r   r   rr   rr   „  s   „ ó4r   rr   c                   ó   — e Zd Zd„ Zy)Ú_MainProcessc                 ó–   — d| _         d| _        d | _        d | _        d| _        t        t        j                  d«      «      ddœ| _        y )Nr   ÚMainProcessFé    z/mp)rp   Ú	semprefix)	r3   rB   r8   r   r9   rr   r6   Úurandomr4   r&   s    r   rN   z_MainProcess.__init__–  sB   € ØˆŒØ"ˆŒ
ØˆÔØˆŒØˆŒÜ#7¼¿
¹
À2»Ó#GØ%*ñ,ˆ�r   N)r@   r½   r¾   rN   r   r   r   rÈ   rÈ   ”  s   „ ó,r   rÈ   r‘   é   ÚSIGÚ_)&r6   rš   Úsignalr˜   rŸ   r©   Ú_weakrefsetr   Úmultiprocessingr   r   ÚpathÚabspathÚgetcwdÚORIGINAL_DIRrž   Ú__all__r   r   r   r!   r	   r   rÅ   rr   rÈ   r   rM   r2   r™   r   r   r�   Ú__dict__ÚitemsrI   ÚsignumrD   r   r   r   ú<module>rÜ      s  ðó 
Û 
Û Û Û Û Ý å -ðØ—7‘7—?‘? 9 2§9¡9£;Ó/€Lò K€òò9ò
!òð &ó 	÷tñ tôv		4˜5ô 	4ô 	,�;ô 	,ñ  “>Ð Ø"�9—?‘? 1Ó%Ð Ù‹E€	Øð €ð Ð à—O‘O×)Ñ)Ó+ò *�L€Dˆ&ØˆBˆQ€x�5Ó˜S¨š_Ø%)Ð˜6˜'Ò"ð*ñ
 ‹I�	øðs ò Ø‚Lðús   ¦*C( Ã(C2Ã1C2