+
    šh©j>  ã                   ój   € R t ^ RIt^ RIt^ RItR t ! R R4      t ! R R4      t ! R R4      tR	 tR# )
a  
Abstraction of a one-way pipe where the read end can be used in
`select.select`. Normally this is trivial, but Windows makes it nearly
impossible.

The pipe acts like an Event, which can be set or cleared. When set, the pipe
will trigger as readable in `select <select.select>`.
Nc                  ój   € \         P                  R ,          R8w  d   \        4       p V # \        4       p V # ):Né   NÚwin)ÚsysÚplatformÚ	PosixPipeÚWindowsPipe)Úps    ÚH/var/www/html/bestweb/venv/lib/python3.14/site-packages/paramiko/pipe.pyÚ	make_piper   !   s/   € Ü
‡|�|�BÕ˜5Ô Ü‹Kˆð €Hô ‹MˆØ€Hó    c                   óD   a € ] tR t^)t o R tR tR tR tR tR t	Rt
V tR# )	r   c                ót   € \         P                  ! 4       w  V n        V n        R V n        R V n        R V n        R# ©FN)ÚosÚpipeÚ_rfdÚ_wfdÚ_setÚ_foreverÚ_closed©Úselfs   &r
   Ú__init__ÚPosixPipe.__init__*   s+   € Ü!Ÿwšw›yÑˆŒ	�4”9ØˆŒ	ØˆŒØˆŽr   c                ó”   € \         P                  ! V P                  4       \         P                  ! V P                  4       R V n        R# ©TN)r   Úcloser   r   r   r   s   &r
   r   ÚPosixPipe.close0   s)   € Ü
�Š�—‘ÔÜ
�Š�—‘ÔàˆŽr   c                ó   € V P                   # ©N)r   r   s   &r
   ÚfilenoÚPosixPipe.fileno6   s   € Ø�y‰yÐr   c                ó¢   € V P                   '       d   V P                  '       d   R # \        P                  ! V P                  ^4       RV n         R # ©NF)r   r   r   Úreadr   r   s   &r
   ÚclearÚPosixPipe.clear9   s/   € Ø�y�yˆy˜DŸMŸM˜MÙÜ
�Š�—	‘	˜1ÔØˆŽ	r   c                ó¢   € V P                   '       g   V P                  '       d   R # RV n         \        P                  ! V P                  R4       R # ©NTó   *)r   r   r   Úwriter   r   s   &r
   ÚsetÚPosixPipe.set?   s/   € Ø�9�9ˆ9˜ŸŸ˜ÙØˆŒ	Ü
�Š�—‘˜DÖ!r   c                ó4   € R V n         V P                  4        R# r   ©r   r,   r   s   &r
   Úset_foreverÚPosixPipe.set_foreverE   ó   € ØˆŒØ�‰Ž
r   )r   r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r!   r&   r,   r0   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r
   r   r   )   s(   ø‡ € òòòòò"÷ð r   r   c                   óH   a € ] tR t^Jt o RtR tR tR tR tR t	R t
RtV tR	# )
r   z{
On Windows, only an OS-level "WinSock" may be used in select(), but reads
and writes must be to the actual socket object.
c                óþ  € \         P                   ! \         P                  \         P                  4      pVP                  R4       VP	                  ^4       \         P                   ! \         P                  \         P                  4      V n        V P
                  P                  R VP                  4       ^,          34       VP                  4       w  V n	        pVP                  4        RV n        RV n        RV n        R# )ú	127.0.0.1FN)r=   é    )ÚsocketÚAF_INETÚSOCK_STREAMÚbindÚlistenÚ_rsockÚconnectÚgetsocknameÚacceptÚ_wsockr   r   r   r   )r   ÚservÚaddrs   &  r
   r   ÚWindowsPipe.__init__P   s§   € Ü�}Š}œVŸ^™^¬V×-?Ñ-?Ó@ˆØ�	‰	Ð"Ô#Ø�‰�AŒô —m’m¤F§N¡N´F×4FÑ4FÓGˆŒØ�‰×Ñ˜[¨$×*:Ñ*:Ó*<¸QÕ*?Ð@ÔAà ŸK™K›MÑˆŒ�TØ�
‰
ŒØˆŒ	ØˆŒØˆŽr   c                ó|   € V P                   P                  4        V P                  P                  4        R V n        R# r   )rD   r   rH   r   r   s   &r
   r   ÚWindowsPipe.close_   s)   € Ø�‰×ÑÔØ�‰×ÑÔàˆŽr   c                ó6   € V P                   P                  4       # r    )rD   r!   r   s   &r
   r!   ÚWindowsPipe.filenoe   s   € Ø�{‰{×!Ñ!Ó#Ð#r   c                ó–   € V P                   '       d   V P                  '       d   R # V P                  P                  ^4       RV n         R # r$   )r   r   rD   Úrecvr   s   &r
   r&   ÚWindowsPipe.clearh   s/   € Ø�y�yˆy˜DŸMŸM˜MÙØ�‰×Ñ˜ÔØˆŽ	r   c                ó–   € V P                   '       g   V P                  '       d   R # RV n         V P                  P                  R4       R # r)   )r   r   rH   Úsendr   s   &r
   r,   ÚWindowsPipe.setn   s/   € Ø�9�9ˆ9˜ŸŸ˜ÙØˆŒ	Ø�‰×Ñ˜Ör   c                ó4   € R V n         V P                  4        R# r   r/   r   s   &r
   r0   ÚWindowsPipe.set_forevert   r2   r   )r   r   rD   r   rH   N)r3   r4   r5   r6   Ú__doc__r   r   r!   r&   r,   r0   r7   r8   r9   s   @r
   r   r   J   s-   ø‡ € ñò
òò$òò÷ð r   r   c                   ó2   a € ] tR t^yt o R tR tR tRtV tR# )ÚOrPipec                ó.   € R V n         RV n        Wn        R# r   )r   Ú_partnerÚ_pipe)r   r   s   &&r
   r   ÚOrPipe.__init__z   s   € ØˆŒ	ØˆŒØŽ
r   c                ó„   € R V n         V P                  P                   '       g   V P                  P                  4        R# R# r   )r   r\   r]   r,   r   s   &r
   r,   Ú
OrPipe.set   s,   € ØˆŒ	Ø�}‰}×!×!Ð!Ø�J‰J�N‰NÖñ "r   c                ó„   € R V n         V P                  P                   '       g   V P                  P                  4        R# R# r   )r   r\   r]   r&   r   s   &r
   r&   ÚOrPipe.clear„   s.   € ØˆŒ	Ø�}‰}×!×!Ð!Ø�J‰J×ÑÖñ "r   )r\   r]   r   N)	r3   r4   r5   r6   r   r,   r&   r7   r8   r9   s   @r
   rZ   rZ   y   s   ø‡ € òò
÷
ð r   rZ   c                óL   € \        V 4      p\        V 4      pW!n        Wn        W3# )zÈ
wraps a pipe into two pipe-like objects which are "or"d together to
affect the real pipe. if either returned pipe is set, the wrapped pipe
is set. when both are cleared, the wrapped pipe is cleared.
)rZ   r\   )r   Úp1Úp2s   &  r
   Úmake_or_piperf   Š   s'   € ô 
�‹€BÜ	�‹€BØ„KØ„KØˆ6€Mr   )	rX   r   r   r?   r   r   r   rZ   rf   © r   r
   Ú<module>rh      s?   ðñ&ó Û 	Û ò÷ñ ÷B,ñ ,÷^ñ ô"
r   