+
     Bi                     *   R t ^ RIt]P                  R8w  d	   ]! R4      h^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
RtRt]P                  t]P                  t]P                  ! 4       tRRR	RR
]/R lt ! R R4      t ! R R]P&                  4      tR# )z)Various Windows specific bits and pieces.Nwin32z
win32 onlyPopen
PipeHandlei    duplexF
overlappedbufsizec           
        \         P                  ! RP                  \        P                  ! 4       \        \        4      4      R7      pV '       d9   \        P                  p\        P                  \        P                  ,          pY"rvM#\        P                  p\        P                  p^ TrvV\        P                  ,          pV^ ,          '       d   V\        P                  ,          pV^,          '       d   \        P                  pM^ pR;r \        P                  ! W4\        P                  ^Wg\        P                   \        P"                  4      p	\        P$                  ! W5^ \        P"                  \        P&                  V\        P"                  4      p
\        P(                  ! V	RR7      pVP+                  R4       W3#    T	e   \        P,                  ! T	4       T
e   \        P,                  ! T
4       h ; i)zELike os.pipe() but with overlapped support and using handles not fds.z\\.\pipe\python-pipe-{:d}-{:d}-)prefixNTr   )tempfilemktempformatosgetpidnext_mmap_counter_winapiPIPE_ACCESS_DUPLEXGENERIC_READGENERIC_WRITEPIPE_ACCESS_INBOUNDFILE_FLAG_FIRST_PIPE_INSTANCEFILE_FLAG_OVERLAPPEDCreateNamedPipe	PIPE_WAITNMPWAIT_WAIT_FOREVERNULL
CreateFileOPEN_EXISTINGConnectNamedPipeGetOverlappedResultCloseHandle)r   r   r   addressopenmodeaccessobsizeibsizeflags_and_attribsh1h2ovs   $$$         ,/usr/lib/python3.14/asyncio/windows_utils.pypiper,       s|   oo188IIKm,./G --%%(=(== ..&&G555H!}}G000!}}#88NB$$w00vw;;W\\K Qg.C.Cw||- %%bT:
t$v>#>#s   B5G 7G;c                      a  ] tR t^Qt o RtR tR t]R 4       tR t	R]
P                  /R lt]P                  3R ltR	 tR
 tRtV tR# )r   zWrapper for an overlapped pipe handle which is vaguely file-object like.

The IOCP event loop can use these instead of socket objects.
c                    Wn         R # N_handleselfhandles   &&r+   __init__PipeHandle.__init__V   s        c                ~    V P                   e   RV P                   : 2pMRpRV P                  P                   RV R2# )Nzhandle=closed< >)r1   	__class____name__r2   s   & r+   __repr__PipeHandle.__repr__Y   sB    <<#t||./FF4>>**+1VHA66r7   c                    V P                   # r/   r0   r3   s   &r+   r4   PipeHandle.handle`   s    ||r7   c                L    V P                   f   \        R4      hV P                   # )NzI/O operation on closed pipe)r1   
ValueErrorrB   s   &r+   filenoPipeHandle.filenod   s"    <<;<<||r7   r!   c               X    V P                   e   V! V P                   4       R V n         R # R # r/   r0   )r3   r!   s   &$r+   closePipeHandle.closei   s$    <<#%DL $r7   c                l    V P                   e&   V! RV : 2\        V R7       V P                  4        R # R # )Nz	unclosed )source)r1   ResourceWarningrI   )r3   _warns   &&r+   __del__PipeHandle.__del__n   s-    <<#IdX&EJJL $r7   c                    V # r/    rB   s   &r+   	__enter__PipeHandle.__enter__s   s    r7   c                &    V P                  4        R # r/   )rI   )r3   tvtbs   &&&&r+   __exit__PipeHandle.__exit__v   s    

r7   r0   N)r>   
__module____qualname____firstlineno____doc__r5   r?   propertyr4   rF   r   r!   rI   warningswarnrO   rS   rY   __static_attributes____classdictcell__)__classdict__s   @r+   r   r   Q   s\     7  
 7#6#6  
 %MM 
 r7   c                   :   a a ] tR t^}t oRtRV 3R lltRtVtV ;t# )r   zReplacement for subprocess.Popen using overlapped pipe handles.

The stdin, stdout, stderr are None or instances of PipeHandle.
c           	       < VP                  R 4      '       d   Q hVP                  R^ 4      ^ 8X  g   Q hR;p;rxR;p	;rV\        8X  d6   \        R	RR7      w  r\        P                  ! V\
        P                  4      pMTpV\        8X  d'   \        R
R7      w  r\        P                  ! V^ 4      pMTpV\        8X  d'   \        R
R7      w  r\        P                  ! V^ 4      pMV\        8X  d   TpMTp \        SV `$  ! V3RVRVRV/VB  V	e   \        V	4      V n        V
e   \        V
4      V n        Ve   \        V4      V n        T\        8X  d   \
        P                   ! T4       T\        8X  d   \
        P                   ! T4       T\        8X  d   \
        P                   ! T4       R# R#    YT3 F  pTf   K	  \        P                  ! T4       K!  	  h ; i  T\        8X  d   \
        P                   ! T4       T\        8X  d   \
        P                   ! T4       T\        8X  d   \
        P                   ! T4       i i ; i)universal_newlinesr   NT)r   r   r
   stdinstdoutstderr)FT)TF)getPIPEr,   msvcrtopen_osfhandler   O_RDONLYSTDOUTsuperr5   r   rh   ri   rj   r   r!   rI   )r3   argsrh   ri   rj   kwds	stdin_rfd
stdout_wfd
stderr_wfdstdin_wh	stdout_rh	stderr_rhstdin_rh	stdout_wh	stderr_whhr=   s   &&&&&,          r+   r5   Popen.__init__   s   8801111xx	1%***.22	2J+///9D=!%t!LH--hDIIT>#'=#A I..y!<JJT>#'=#A I..y!<Jv#JJ	%GT 8 8: 8$.8268 #'1
$(3$(3}#~$~$ #	95=''* 6  }#~$~$ s%   5F/ <G /
G>GG A&I)rj   rh   ri   )NNN)	r>   r[   r\   r]   r^   r5   rb   rc   __classcell__)r=   rd   s   @@r+   r   r   }   s     +% +%r7   )r,   r   rl   r   )TT)r^   sysplatformImportErrorr   	itertoolsrm   r   
subprocessr   r`   __all__BUFSIZErl   rp   countr   r,   r   r   rR   r7   r+   <module>r      s    / 
<<7
l
##    	    0 			!+5 +\ +7 +b& &X0%J 0%r7   