+
    f4j^                     &   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t
Rt]P                  t]P                  t]P                  ! 4       t^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                    V '       d9   \         P                  p\         P                  \         P                  ,          pY"reM#\         P                  p\         P                  p^ TreV\         P
                  ,          pV^ ,          '       d   V\         P                  ,          pV^,          '       d   \         P                  pM^ pR;r \        P                  ! 4        F  p
RP                  \        P                  ! 4       \        \        4      \        P                  ! ^4      P                  4       4      p \         P                   ! W\         P"                  ^WV\         P$                  \         P&                  4      p M	  \         P2                  ! XV^ \         P&                  \         P4                  V\         P&                  4      p	\         P6                  ! VRR7      pVP9                  R4       W3#   \(         dI   pT
\*        8  d   h TP,                  \         P.                  \         P0                  39  d   h  Rp?EKb  Rp?ii ; i   Te   \         P:                  ! T4       T	e   \         P:                  ! T	4       h ; i)zELike os.pipe() but with overlapped support and using handles not fds.Nz!\\.\pipe\python-pipe-{:d}-{:d}-{}Tr   )_winapiPIPE_ACCESS_DUPLEXGENERIC_READGENERIC_WRITEPIPE_ACCESS_INBOUNDFILE_FLAG_FIRST_PIPE_INSTANCEFILE_FLAG_OVERLAPPED	itertoolscountformatosgetpidnext_mmap_counterurandomhexCreateNamedPipe	PIPE_WAITNMPWAIT_WAIT_FOREVERNULLOSError_MAX_PIPE_ATTEMPTSwinerrorERROR_PIPE_BUSYERROR_ACCESS_DENIED
CreateFileOPEN_EXISTINGConnectNamedPipeGetOverlappedResultCloseHandle)r   r   r   openmodeaccessobsizeibsizeflags_and_attribsh1h2attemptsaddresseovs   $$$           'lib/python3.14/asyncio/windows_utils.pypiper4       s   --%%(=(== ..&&G555H!}}G000!}}#88NB!)H:AA		T-0"**Q-2C2C2EGG
,,w'8'8vw'C'CW\\S  * VQg.C.Cw||- %%bT:
t$v  11::g&=&=&-&A&A&C CC>#>#s9   A-I 5AG0:A5I 0I;<H>7I >II 7I=c                      a  ] tR t^Xt 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   &&r3   __init__PipeHandle.__init__]   s        c                ~    V P                   e   RV P                   : 2pMRpRV P                  P                   RV R2# )Nzhandle=closed< >)r9   	__class____name__r:   s   & r3   __repr__PipeHandle.__repr__`   sB    <<#t||./FF4>>**+1VHA66r?   c                    V P                   # r7   r8   r;   s   &r3   r<   PipeHandle.handleg   s    ||r?   c                L    V P                   f   \        R4      hV P                   # )NzI/O operation on closed pipe)r9   
ValueErrorrJ   s   &r3   filenoPipeHandle.filenok   s"    <<;<<||r?   r'   c               \    V P                   e   V P                   pR V n         V! V4       R # R # r7   r8   )r;   r'   r<   s   &$ r3   closePipeHandle.closep   s)    <<#\\FDL $r?   c                l    V P                   e&   V! RV : 2\        V R7       V P                  4        R # R # )Nz	unclosed )source)r9   ResourceWarningrQ   )r;   _warns   &&r3   __del__PipeHandle.__del__v   s-    <<#IdX&EJJL $r?   c                    V # r7    rJ   s   &r3   	__enter__PipeHandle.__enter__{   s    r?   c                &    V P                  4        R # r7   )rQ   )r;   tvtbs   &&&&r3   __exit__PipeHandle.__exit__~   s    

r?   r8   N)rF   
__module____qualname____firstlineno____doc__r=   rG   propertyr<   rN   r
   r'   rQ   warningswarnrW   r[   ra   __static_attributes____classdictcell__)__classdict__s   @r3   r   r   X   s\     7  
 7#6#6   %MM 
 r?   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PIPEr4   msvcrtopen_osfhandler   O_RDONLYSTDOUTsuperr=   r   rp   rq   rr   r
   r'   rQ   )r;   argsrp   rq   rr   kwds	stdin_rfd
stdout_wfd
stderr_wfdstdin_wh	stdout_rh	stderr_rhstdin_rh	stdout_wh	stderr_whhrE   s   &&&&&,          r3   r=   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)rr   rp   rq   )NNN)	rF   rc   rd   re   rf   r=   rj   rk   __classcell__)rE   rl   s   @@r3   r   r      s     +% +%r?   )r4   r   rt   r   )TT)rf   sysplatformImportErrorr
   r   ru   r   
subprocessrh   __all__BUFSIZErt   rx   r   r   r   r4   r   r   rZ   r?   r3   <module>r      s    / 
<<7
l
##    	   0 			! 25 2\ 27 2p' 'Z0%J 0%r?   