
    .hh(%                        S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrSSK	J
r
  / SQr\R                  S:H  =(       d3    \" \S5      =(       a#    \" \S5      =(       a    \" \R                  S	5      r " S
 S\R                  5      r\R"                  rS)S jr\R                  S:X  a)  \/ SQ-  rS SKrS*SS.S jjrS rS rS r " S S\5      rO)\/ SQ-  rS SKr\R                  S:H  rS rS rS rS rS rS r " S S5      r \" \!" \ " 5       RD                  5      \5        S r#\" \!" \$RJ                  5      \#5        \" \!" \&RN                  5      \#5        S  r(S! r)\" \RT                  \(5        \R                  S:X  a  S" r+S# r,\" \R                  \+5        OS$ r+S% r,\" \R                  \+5         " S& S'\S(9r-g)+    )ABCMetaN   )context)send_handlerecv_handleForkingPicklerregisterdumpwin32CMSG_LEN
SCM_RIGHTSsendmsgc                      ^  \ rS rSr0 r\R                  rU 4S jr\	S 5       r
\	SS j5       r\R                  rSrU =r$ )r   !   c                    > [         TU ]  " U6   U R                  R                  5       U l        U R                  R                  U R                  5        g N)super__init___copyreg_dispatch_tablecopydispatch_tableupdate_extra_reducers)selfargs	__class__s     B/opt/python-3.13.8/usr/lib/python3.13/multiprocessing/reduction.pyr   ForkingPickler.__init__&   sA    $"::??A""4#7#78    c                      X R                   U'   g r   )r   )clstypereduces      r   r	   ForkingPickler.register+   s     %+D!r   c                 z    [         R                  " 5       nU " X25      R                  U5        UR                  5       $ r   )ioBytesIOr
   	getbuffer)r!   objprotocolbufs       r   dumpsForkingPickler.dumps0   s,    jjlC$}}r   )r   r   )__name__
__module____qualname____firstlineno__r   copyregr   r   r   classmethodr	   r,   pickleloads__static_attributes____classcell__)r   s   @r   r   r   !   sL    O%449
 + +  
 LLEr   r   c                 8    [        X5      R                  U 5        g r   )r   r
   )r)   filer*   s      r   r
   r
   :   s    4"'',r   )	DupHandle	duplicatesteal_handle)source_processc                    [         R                  " 5       nUc  UnUc  Un[         R                  " X0USU[         R                  5      $ )Nr   )_winapiGetCurrentProcessDuplicateHandleDUPLICATE_SAME_ACCESS)handletarget_processinheritabler=   current_processs        r   r;   r;   G   sM     "335!,N!,N&&N{G99; 	;r   c           	      J   [         R                  " [         R                  SU 5      n [         R                  " X![         R                  " 5       SS[         R
                  [         R                  -  5      [         R                  " U5        $ ! [         R                  " U5        f = fNFr   )r?   OpenProcessPROCESS_DUP_HANDLErA   r@   rB   DUPLICATE_CLOSE_SOURCECloseHandle)
source_pidrC   source_process_handles      r   r<   r<   S   s|     ' 3 3&&z!;	7**%))+Q--0N0NNP
  56G 56s   AB
 
B"c                 \    [        U[        R                  U5      nU R                  U5        g r   )r:   r?   rB   send)connrC   destination_piddhs       r   r   r   _   s!    vw<<oN		"r   c                 >    U R                  5       R                  5       $ r   )recvdetach)rQ   s    r   r   r   d   s    yy{!!##r   c                   $    \ rS rSrSS jrS rSrg)r:   h   Nc                 `   Uc  [         R                  " 5       n[        R                  " [        R                  SU5      n [        R
                  " [        R                  " 5       XUSS5      U l        [        R                  " U5        X l	        X0l
        g ! [        R                  " U5        f = frH   )osgetpidr?   rI   rJ   rA   r@   _handlerL   _access_pid)r   rC   accesspidprocs        r   r   DupHandle.__init__j   s    { iik&&w'A'A5#ND*&66--/&% 4 ##D)!LI ##D)s    2B B-c                    U R                   [        R                  " 5       :X  a  U R                  $ [        R
                  " [        R                  SU R                   5      n [        R                  " XR                  [        R                  " 5       U R                  S[        R                  5      [        R                  " U5        $ ! [        R                  " U5        f = fNF)r^   rZ   r[   r\   r?   rI   rJ   rA   r@   r]   rK   rL   )r   ra   s     r   rV   DupHandle.detachy   s     yyBIIK'||#&&w'A'A5'+yy2D*..,,(A(A(CLL%)G)GI ##D)##D)s   !AC C)r]   r\   r^   r   )r.   r/   r0   r1   r   rV   r6    r   r   r:   r:   h   s    		*r   r:   )DupFdsendfdsrecvfdsdarwinc                     [         R                   " SU5      n[        [        U5      S-  /5      nU R                  U/[        R
                  [        R                  U4/5        [        (       a!  U R                  S5      S:w  a  [        S5      eg g )Ni   r      Az%did not receive acknowledgement of fd)
arraybyteslenr   socket
SOL_SOCKETr   ACKNOWLEDGErU   RuntimeError)sockfdsmsgs      r   rh   rh      st    kk#s#SX^$%cUf//1B1BCHIJ;499Q<4/FGG 0;r   c                    [         R                   " S5      nUR                  U-  nU R                  S[        R                  " U5      5      u  pEpgU(       d  U(       d  [
        e [        (       a  U R                  S5        [        U5      S:w  a  [        S[        U5      -  5      eUS   u  pn
U[        R                  :X  a  U	[        R                  :X  az  [        U
5      UR                  -  S:w  a  [        eUR                  U
5        [        U5      S-  US   :w  a'  [        SR                  [        U5      US   5      5      e[!        U5      $ [        S5      e! [        ["        4 a     Nf = f)	Nrl   r   rn   zreceived %d items of ancdatar   rm   z Len is {0:n} but msg[0] is {1!r}zInvalid data received)ro   itemsizerecvmsgrr   
CMSG_SPACEEOFErrorrt   rP   rq   ru   rs   r   
ValueError	frombytesAssertionErrorformatlist
IndexError)rv   sizea
bytes_sizerx   ancdataflagsaddr
cmsg_level	cmsg_type	cmsg_datas              r   ri   ri      sD   KKZZ$&
$(LLF4E4Ej4Q$R!e7N	{		$7|q "#A#&w<$0 1 1/6qz,J9f///V...y>AJJ.!3$$I&q6C<3q6)(:AAFCF,- - Aw 233 J' 		s   $C+E E.-E.c                     [         R                  " U R                  5       [         R                  [         R                  5       n[        X1/5        S S S 5        g ! , (       d  f       g = fr   )rr   fromfdfilenoAF_UNIXSOCK_STREAMrh   )rQ   rC   rR   ss       r   r   r      s<    ]]4;;=&..&:L:LMQRAx  NMMs   A
A'c                     [         R                  " U R                  5       [         R                  [         R                  5       n[        US5      S   sS S S 5        $ ! , (       d  f       g = f)Nr   r   )rr   r   r   r   r   ri   )rQ   r   s     r   r   r      s@    ]]4;;=&..&:L:LMQR1a=# NMMs   A
A*c                     [         R                  " 5       nUb   UR                  UR                  U 5      5      $ [        (       a  SSKJn  UR                  U 5      $ [        S5      e)Nr   )resource_sharerz&SCM_RIGHTS appears not to be available)r   get_spawning_popenrg   duplicate_for_childHAVE_SEND_HANDLE r   r~   )fd	popen_objr   s      r   rg   rg      sV    ..0	 ??9#@#@#DEE)"((,,EFFr   c                     U R                   c(  [        U R                  U R                  R                  44$ [        U R                   U R                  R                  44$ r   )__self__getattrr   __func__r.   ms    r   _reduce_methodr      sH    zzajj&9&9:::QZZ%8%8999r   c                       \ rS rSrS rSrg)_C   c                     g r   rf   )r   s    r   f_C.f   s    r   rf   N)r.   r/   r0   r1   r   r6   rf   r   r   r   r      s    r   r   c                 >    [         U R                  U R                  44$ r   )r   __objclass__r.   r   s    r   _reduce_method_descriptorr      s    Q^^QZZ000r   c                 f    [         U R                  U R                  U R                  =(       d    0 44$ r   )_rebuild_partialfuncr   keywords)ps    r   _reduce_partialr      s%    affaffajj.>B???r   c                 6    [         R                  " U /UQ70 UD6$ r   )	functoolspartial)r   r   r   s      r   r   r      s    T5D5H55r   c                 ,    SSK Jn  [        U" U 5      44$ )Nr   )	DupSocket)r   r   _rebuild_socket)r   r   s     r   _reduce_socketr      s    .1//r   c                 "    U R                  5       $ r   )rV   )dss    r   r   r      s    yy{r   c                     [        U R                  5       5      n[        XR                  U R                  U R
                  44$ r   )rg   r   r   familyr"   proto)r   dfs     r   r   r      s0    188:XXqvvqww ???r   c                 L    U R                  5       n[        R                  " XX4S9$ )N)r   )rV   rr   )r   r   r"   r   r   s        r   r   r      s    YY[}}V5<<r   c                   |    \ rS rSr\r\r\r\r\r\	R                  S:X  a  \r\r\rO\r\r\r\r\r\r\r\rS rSrg)AbstractReducer   r   c                 n   [        [        [        5       R                  5      [        5        [        [        [
        R                  5      [        5        [        [        [        R                  5      [        5        [        [        R                  [        5        [        [        R                  [        5        g r   )r	   r"   r   r   r   r   appendr   int__add__r   r   r   rr   r   )r   r   s     r   r   AbstractReducer.__init__  s\    bdff~.dkk"$=>ckk"$=>""O4/r   rf   N)r.   r/   r0   r1   r   r	   r
   r   r   sysplatformr<   r;   r:   rh   ri   rg   r   r   r   r   r   r   r6   rf   r   r   r   r      sg     $NHDKK
||w#		#N 9'#N%O0r   r   )	metaclassr   rd   ).abcr   r2   r   r&   rZ   r4   rr   r   r   r   __all__r   hasattrr   Picklerr   r	   r
   r?   r;   r<   r   r   objectr:   ro   rt   rh   ri   rg   r   r   r"   r   r   r   r   r   r   r   r   r   r   r   r   rf   r   r   <module>r      s      	 	   
 
N LLG+ 8VZ0 7V\27V]]I6 V^^ . ""- <<799G
;$(
;
7
$*F *F ..G ,,(*KH48!
$
	G:
  	bdff~ &1 dkk	5 6 ckk	5 6@6 		O , <<70V]]N+@= V]]N+0 0r   