+
     Bi%                        ^ RI H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$Ot]P                  R8H  ;'       g6    ]! ]R4      ;'       d%    ]! ]R4      ;'       d    ]! ]P                  R4      t ! R	 R]P                  4      t]P"                  tR%R
 lt]P                  R8X  d.   ]. R&O,          t^ RItR'RR/R lltR tR tR t ! R R]4      tM]. R(O,          t^ RItR tR tR tR tR tR t ! R R4      t]! ] ! ]! 4       PB                  4      ]4       R t"]! ] ! ]#PH                  4      ]"4       ]! ] ! ]%PL                  4      ]"4       R t'R t(]! ]PR                  ]'4       ]P                  R8X  d   R t*R t+]! ]P                  ]*4       MR t*R  t+]! ]P                  ]*4        ! R! R"]R#7      t,R# ))    )ABCMetaN)contextForkingPicklerwin32CMSG_LEN
SCM_RIGHTSsendmsgc                      a a ] tR t^!t oRt/ t]P                  tV 3R lt	]
R 4       t]
RR l4       t]P                  tRtVtV ;t# )r   z)Pickler subclass used by multiprocessing.c                   < \         SV `  ! V!   V P                  P                  4       V n        V P                  P                  V P                  4       R # N)super__init___copyreg_dispatch_tablecopydispatch_tableupdate_extra_reducers)selfargs	__class__s   &*0/usr/lib/python3.14/multiprocessing/reduction.pyr   ForkingPickler.__init__&   sA    $"::??A""4#7#78    c                "    W P                   V&   R# )z&Register a reduce function for a type.N)r   )clstypereduces   &&&r   registerForkingPickler.register+   s     %+D!r   c                z    \         P                  ! 4       pV ! W24      P                  V4       VP                  4       # r   )ioBytesIOdump	getbuffer)r   objprotocolbufs   &&& r   dumpsForkingPickler.dumps0   s,    jjlC$}}r   )r   r   )__name__
__module____qualname____firstlineno____doc__r   copyregr   r   r   classmethodr   r(   pickleloads__static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r   !   sS     3O%449
 + +  
 LLEEr   c                :    \        W4      P                  V 4       R# )z3Replacement for pickle.dump() using ForkingPickler.N)r   r#   )r%   filer&   s   &&&r   r#   r#   :   s    4"'',r   	DupHandlesource_processc                   \         P                  ! 4       pVf   TpVf   Tp\         P                  ! W0V^ V\         P                  4      # )z<Duplicate a handle.  (target_process is a handle not a pid!))_winapiGetCurrentProcessDuplicateHandleDUPLICATE_SAME_ACCESS)handletarget_processinheritabler:   current_processs   &&&$ r   	duplicaterD   G   sM     "335!,N!,N&&N{G99; 	;r   c           	     R   \         P                  ! \         P                  RV 4      p \         P                  ! W!\         P                  ! 4       ^ R\         P
                  \         P                  ,          4      \         P                  ! V4       #   \         P                  ! T4       i ; i)z5Steal a handle from process identified by source_pid.F)r<   OpenProcessPROCESS_DUP_HANDLEr>   r=   r?   DUPLICATE_CLOSE_SOURCECloseHandle)
source_pidr@   source_process_handles   && r   steal_handlerL   S   s|     ' 3 3&&z!;	7**%))+Q--0N0NNP
  56G 56s   AB B&c                ^    \        V\        P                  V4      pV P                  V4       R# z&Send a handle over a local connection.N)r9   r<   r?   send)connr@   destination_piddhs   &&& r   send_handlerS   _   s!    vw<<oN		"r   c                >    V P                  4       P                  4       # ))Receive a handle over a local connection.)recvdetach)rP   s   &r   recv_handlerX   d   s    yy{!!##r   c                   4   a  ] tR t^ht o RtRR ltR tRtV tR# )r9   zPicklable wrapper for a handle.Nc                d   Vf   \         P                  ! 4       p\        P                  ! \        P                  RV4      p \        P
                  ! \        P                  ! 4       WVR^ 4      V n        \        P                  ! V4       W n	        W0n
        R #   \        P                  ! T4       i ; iNF)osgetpidr<   rF   rG   r>   r=   _handlerI   _access_pid)r   r@   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                   V P                   \        P                  ! 4       8X  d   V P                  # \        P
                  ! \        P                  RV P                   4      p \        P                  ! WP                  \        P                  ! 4       V P                  R\        P                  4      \        P                  ! V4       #   \        P                  ! T4       i ; i)z1Get the handle.  This should only be called once.F)r`   r\   r]   r^   r<   rF   rG   r>   r=   r_   rH   rI   )r   rc   s   & r   rW   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+   r,   r-   r.   r   rW   r3   r4   r6   s   @r   r9   r9   h   s     -		* 	*r   c                   \         P                   ! RV4      p\        \        V4      R,          .4      pV P                  V.\        P
                  \        P                  V3.4       V P                  ^4      R8w  d   \        R4      hR# )z,Send an array of fds over an AF_UNIX socket.i      Az%did not receive acknowledgement of fdN)	arraybyteslenr	   socket
SOL_SOCKETr   rV   RuntimeError)sockfdsmsgs   && r   sendfdsru      sn    kk#s#SX^$%cUf//1B1BCHIJ99Q<4FGG  r   c                   \         P                   ! R4      pVP                  V,          pV P                  ^\        P                  ! V4      4      w  rErgV'       g   V'       g   \
        h V P                  R4       \        V4      ^8w  d   \        R\        V4      ,          4      hV^ ,          w  rp
V\        P                  8X  d   V	\        P                  8X  d   \        V
4      VP                  ,          ^ 8w  d   \        hVP                  V
4       \        V4      R,          V^ ,          8w  d,   \        RP                  \        V4      V^ ,          4      4      h\        V4      # \        R4      h  \        \         3 d     Li ; i)z/Receive an array of fds over an AF_UNIX socket.ri   rk   zreceived %d items of ancdatarj   z Len is {0:n} but msg[0] is {1!r}zInvalid data received)rl   itemsizerecvmsgro   
CMSG_SPACEEOFErrorrO   rn   rq   rp   r   
ValueError	frombytesAssertionErrorformatlist
IndexError)rr   sizea
bytes_sizert   ancdataflagsaddr
cmsg_level	cmsg_type	cmsg_datas   &&         r   recvfdsr      sA   KKZZ$&
$(LLF4E4Ej4Q$R!e7N	
 IIdO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=E3 3FFc                    \         P                  ! V P                  4       \         P                  \         P                  4      ;_uu_ 4       p\        W1.4       RRR4       R#   + '       g   i     R# ; irN   )ro   fromfdfilenoAF_UNIXSOCK_STREAMru   )rP   r@   rQ   ss   &&& r   rS   rS      sB    ]]4;;=&..&:L:LMMQRAx  NMMMs   A""A3	c                    \         P                  ! V P                  4       \         P                  \         P                  4      ;_uu_ 4       p\        V^4      ^ ,          uuRRR4       #   + '       g   i     R# ; i)rU   N)ro   r   r   r   r   r   )rP   r   s   & r   rX   rX      sF    ]]4;;=&..&:L:LMMQR1a=# NMMMs   A))A:	c                    \         P                  ! 4       pVe!   VP                  VP                  V 4      4      # \        '       d   ^RIHp VP                  V 4      # \        R4      h)zReturn a wrapper for an fd.)resource_sharerz&SCM_RIGHTS appears not to be available)r   get_spawning_popenDupFdduplicate_for_childHAVE_SEND_HANDLE r   r{   )fd	popen_objr   s   &  r   r   r      sV    ..0	 ??9#@#@#DEE)"((,,EFFr   c                     V P                   f)   \        V P                  V P                  P                  33# \        V P                   V P                  P                  33# r   )__self__getattrr   __func__r*   ms   &r   _reduce_methodr      sH    zzajj&9&9:::QZZ%8%8999r   c                   &   a  ] tR t^t o R tRtV tR# )_Cc                    R # r    )r   s   &r   f_C.f   s    r   r   N)r*   r+   r,   r-   r   r3   r4   rg   s   @r   r   r      s      r   r   c                 >    \         V P                  V P                  33# r   )r   __objclass__r*   r   s   &r   _reduce_method_descriptorr      s    Q^^QZZ000r   c                 h    \         V P                  V P                  V P                  ;'       g    / 33# r   )_rebuild_partialfuncr   keywords)ps   &r   _reduce_partialr      s(    affaffajj.>.>B???r   c                 6    \         P                  ! V .VO5/ VB # r   )	functoolspartial)r   r   r   s   &&&r   r   r      s    T5D5H55r   c                 ,    ^RI Hp \        V! V 4      33# )   )	DupSocket)r   r   _rebuild_socket)r   r   s   & r   _reduce_socketr      s    .1//r   c                 "    V P                  4       # r   )rW   )dss   &r   r   r      s    yy{r   c                     \        V P                  4       4      p\        WP                  V P                  V P
                  33# r   )r   r   r   familyr   proto)r   dfs   & r   r   r      s0    188:XXqvvqww ???r   c                 R    V P                  4       p\        P                  ! WW4R 7      # ))r   )rW   ro   )r   r   r   r   r   s   &&&& r   r   r      s    YY[}}V5<<r   c                      a  ] tR t^t o Rt]t]t]t]t]	t	]
P                  R8X  d   ]t]t]tM]t]t]t]t]t]t]t]tR tRtV tR# )AbstractReducerzAbstract base class for use in implementing a Reduction class
suitable for use in replacing the standard reduction mechanism
used in multiprocessing.r   c                p   \        \        \        4       P                  4      \        4       \        \        \
        P                  4      \        4       \        \        \        P                  4      \        4       \        \        P                  \        4       \        \        P                  \        4       R # r   )r   r   r   r   r   r   appendr   int__add__r   r   r   ro   r   )r   r   s   &*r   r   AbstractReducer.__init__  s\    bdff~.dkk"$=>ckk"$=>""O4/r   r   N)r*   r+   r,   r-   r.   r   r   r#   rS   rX   sysplatformrL   rD   r9   ru   r   r   r   r   r   r   r   r   r3   r4   rg   s   @r   r   r      st       $NHDKK
||w#		#N 9'#N%O0 0r   r   )	metaclass)rS   rX   r   r   r#   r   )r9   rD   rL   r[   )r   ru   r   )-abcr   r/   r   r!   r\   r1   ro   r   r   r   __all__r   hasattrr   Picklerr   r   r#   r<   rD   rL   rS   rX   objectr9   rl   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s      	 	   
 
N LLG+ 8 8VZ0 7 7V\27 7V]]I6 V^^ . ""- <<799G
;$(
;
7
$*F *F ..GH4>!
$
	G:
  	bdff~ &1 dkk	5 6 ckk	5 6@6 		O , <<70V]]N+@= V]]N+0 0r   