+
    Riz                    F   ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^RI
Ht ]P                  R8X  g   Q h]'       g   ^ RIt^ RIHt ^ R	IHtHtHt ^ R
IHtHt ^ RIHtHtHtHtHt ^ RIHt ^ RIHtH t  ^ RI!H"t" ^ RI#H$t$ ^ RI%H&t&H't' ^ RI(H)t)H*t*H+t+H,t,H-t- ^RI.H/t/ ^RI0H1t1 ^RI2H3t3 . R*Ot4^t5^t6^t7^t8Rt9 ! R R]14      t: ! R R]:4      t; ! R R4      t< ! R R4      t= ! R  R!4      t>]	R" R# l4       t?]	R$ R% l4       t@ ! R& R4      tA ! R' R]A4      tBR( R) ltCR# )+    )annotationsN)abstractmethod)get_running_loop)contextmanager)SPHINX_AUTODOC_RUNNINGwin32)windll)Arraybyrefpointer)DWORDHANDLE)CallableContextManagerIterableIteratorTextIOrun_in_executor_with_context)create_win32_eventwait_for_handles)KeyPress)Keys)MouseButtonMouseEventType)INPUT_RECORDKEY_EVENT_RECORDMOUSE_EVENT_RECORDSTD_INPUT_HANDLE
EventTypes)REVERSE_ANSI_SEQUENCES)Input)Vt100Parser
Win32InputConsoleInputReaderraw_modecooked_modei   c                  F    ] tR t^<tRtR R lt]]R R l4       4       tRt	R# )_Win32InputBasez3
Base class for `Win32Input` and `Win32PipeInput`.
c                   V ^8  d   QhRR/#    returnNone )formats   "Y/home/ubuntu/hermes-agent/venv/lib/python3.14/site-packages/prompt_toolkit/input/win32.py__annotate___Win32InputBase.__annotate__A   s     - -$ -    c                	$    \        4       V n        R # N)_Win32Handleswin32_handlesselfs   &r1   __init___Win32InputBase.__init__A   s    *_r4   c                   V ^8  d   QhRR/# r,   r-   r   r/   )r0   s   "r1   r2   r3   F   s       r4   c                	    R # r6   r/   r9   s   &r1   handle_Win32InputBase.handleD   s     	r4   )r8   N)
__name__
__module____qualname____firstlineno____doc__r;   propertyr   r@   __static_attributes__r/   r4   r1   r)   r)   <   s(    -   r4   r)   c                     a  ] tR t^JtRtRR V 3R llltR R ltR R ltR R	 ltR
 R lt	]
R R l4       tR R ltR R ltR R ltR R ltR R lt]
R R l4       tRtV ;t# )r$   z4
`Input` class that reads from the Windows console.
c                    V ^8  d   QhRRRR/# )r,   stdinzTextIO | Noner-   r.   r/   )r0   s   "r1   r2   Win32Input.__annotate__O   s     	= 	=m 	=t 	=r4   c                	   < \         SV `  4        \        4       V n        V  V P                  '       d   \	        4       V n        R # \        4       V n        R # r6   )superr;   _is_win_vt100_input_enabled_use_virtual_terminal_inputVt100ConsoleInputReaderconsole_input_readerr%   )r:   rK   	__class__s   &&r1   r;   Win32Input.__init__O   s>    +F+H(+++(?(AD%(:(<D%r4   c                    V ^8  d   QhRRRR/# )r,   input_ready_callbackCallable[[], None]r-   ContextManager[None]r/   )r0   s   "r1   r2   rL   Z   s     > >+= >BV >r4   c                    \        W4      # )zR
Return a context manager that makes this input active in the current
event loop.
)attach_win32_input)r:   rV   s   &&r1   attachWin32Input.attachZ   s    
 "$==r4   c                   V ^8  d   QhRR/# r,   r-   rX   r/   )r0   s   "r1   r2   rL   a   s     ( (, (r4   c                    \        V 4      # )zc
Return a context manager that makes sure that this input is not active
in the current event loop.
)detach_win32_inputr9   s   &r1   detachWin32Input.detacha   s    
 "$''r4   c                   V ^8  d   QhRR/# r,   r-   list[KeyPress]r/   )r0   s   "r1   r2   rL   h   s     6 6> 6r4   c                	H    \        V P                  P                  4       4      # r6   )listrR   readr9   s   &r1   	read_keysWin32Input.read_keysh   s    D--22455r4   c                   V ^8  d   QhRR/# rd   r/   )r0   s   "r1   r2   rL   k   s     6 6N 6r4   c                	6    V P                   P                  4       # r6   )rR   
flush_keysr9   s   &r1   rm   Win32Input.flush_keysk   s    ((3355r4   c                   V ^8  d   QhRR/# r,   r-   boolr/   )r0   s   "r1   r2   rL   o   s       r4   c                	    R # )Fr/   r9   s   &r1   closedWin32Input.closedn   s    r4   c                   V ^8  d   QhRR/# r^   r/   )r0   s   "r1   r2   rL   r   s     
 
. 
r4   c                	.    \        V P                  R 7      # )) use_win10_virtual_terminal_input)r&   rP   r9   s   &r1   r&   Win32Input.raw_moder   s    -1-M-M
 	
r4   c                   V ^8  d   QhRR/# r^   r/   )r0   s   "r1   r2   rL   w   s      1 r4   c                	    \        4       # r6   )r'   r9   s   &r1   r'   Win32Input.cooked_modew   s
    }r4   c                   V ^8  d   QhRR/# )r,   r-   intr/   )r0   s   "r1   r2   rL   z   s     " " "r4   c                	>    \         P                  P                  4       # r6   )sysrK   filenor9   s   &r1   r   Win32Input.filenoz   s    
 yy!!r4   c                   V ^8  d   QhRR/# )r,   r-   strr/   )r0   s   "r1   r2   rL      s       r4   c                	    R # )zwin32-inputr/   r9   s   &r1   typeahead_hashWin32Input.typeahead_hash   s    r4   c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   rL      s     * *t *r4   c                	:    V P                   P                  4        R # r6   )rR   closer9   s   &r1   r   Win32Input.close   s    !!'')r4   c                   V ^8  d   QhRR/# r>   r/   )r0   s   "r1   r2   rL      s     0 0 0r4   c                	.    V P                   P                  # r6   )rR   r@   r9   s   &r1   r@   Win32Input.handle   s    ((///r4   )rP   rR   r6   )rB   rC   rD   rE   rF   r;   r[   ra   ri   rm   rG   rs   r&   r'   r   r   r   r@   rH   __classcell__)rS   s   @r1   r$   r$   J   sg    	= 	=>(66  

"* 0 0r4   c                  Z   ] tR t^tRt/ R]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR	]P                  bR
]P                  bR]P                  bR]P                   bR]P"                  bR]P$                  bR]P&                  bR]P(                  bR]P*                  bR]P,                  b/ R]P.                  bR]P0                  bR]P2                  bR]P4                  bR]P6                  bR]P8                  bR]P:                  bR]P<                  bR]P>                  bR]P@                  bR]PB                  bR]PD                  bR]PF                  bR ]PH                  bR!]PJ                  bR"]PL                  bCt'/ ^!]PP                  b^"]PR                  b^#]PT                  b^$]PV                  b^%]PX                  b^&]PZ                  b^']P\                  b^(]P^                  b^-]P`                  b^.]Pb                  b^p]Pd                  b^q]Pf                  b^r]Ph                  b^s]Pj                  b^t]Pl                  b^u]Pn                  b^v]Pp                  b^w]Pr                  ^x]Pt                  ^y]Pv                  ^z]Px                  ^{]Pz                  /Ct>^t?^t@^tA^tB^tCR9R# R$ lltDR% R& ltER' R( ltFR) R* ltGR+ R, ltHR- R. ltI]JR/ R0 l4       tK]JR1 R2 l4       tLR3 R4 ltMR5 R6 ltNR7tOR8# ):r%   zp
:param recognize_paste: When True, try to discover paste actions and turn
    the event into a BracketedPaste.
                                  	   
                                                               c                    V ^8  d   QhRRRR/# )r,   recognize_pasterq   r-   r.   r/   )r0   s   "r1   r2   ConsoleInputReader.__annotate__   s     D D D Dr4   c                	   R V n         Wn        V  \        P                  P	                  4       '       d4   \        \        P                  P                  \        4      4      V n
        R # \        P                  ! R\        P                  \        P                  ,          4      V n         \        \        P                   ! V P                   4      4      V n
        R # )NCONIN$)_fdconr   r   rK   isattyr   r	   kernel32GetStdHandler   r@   osopenO_RDWRO_BINARYmsvcrtget_osfhandle)r:   r   s   &&r1   r;   ConsoleInputReader.__init__   s}    . 	99 !=!=>N!OPDK''(BII,CDDK !5!5dkk!BCDKr4   c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   r           " "t "r4   c                f    V P                   e#   \        P                  ! V P                   4       R# R# zClose fdcon.Nr   r   r   r9   s   &r1   r   ConsoleInputReader.close   !    ;;"HHT[[! #r4   c                   V ^8  d   QhRR/# r,   r-   zIterable[KeyPress]r/   )r0   s   "r1   r2   r      s     <  < ( < r4   c              #    "   Rp\        ^ 4      p\        V,          pV! 4       p\        V P                  .^ R7      '       g   R# \        P
                  P                  V P                  \        V4      V\        V4      4       \        V P                  W$4      4      pV Uu. uF  q`P                  V4      NK  	  pp\        V P                  V4      4      pV P                  '       d   V P                  V4      '       d   \        V4      pV F  p. p	V'       dy   \        VP                   \"        4      '       d0   VP                   \"        P$                  \"        P&                  09   d*   V	P)                  VP*                  4        \-        V4      pK  V	'       d,   \1        \"        P2                  RP5                  V	4      4      x  Vf   K  Vx  K  	  R# T Rj  xL
  R# u upi   \.         d    Rp K  i ; i L5i)
Return a list of `KeyPress` instances. It won't return anything when
there was nothing to read.  (This function doesn't block.)

http://msdn.microsoft.com/en-us/library/windows/desktop/ms684961(v=vs.85).aspx
   timeoutN )r   r   r   r@   r	   r   ReadConsoleInputWr   rg   	_get_keys_insert_key_data_merge_paired_surrogatesr   	_is_pasteiter
isinstancekeyr   ControlJControlMappenddatanextStopIterationr   BracketedPastejoin)
r:   	max_countrh   arrtypeinput_recordsall_keysr   genkr   s
   &         r1   rh   ConsoleInputReader.read   s     	Qx*	  q99 	))KK/GDM	
 t;< ;CC(3))#.(C 55h?@DNN8$<$<x.C  "155$//uu >>KK'! I "4#6#6FF=G# &  9 D( ) ! !  s\   BG: G9AG:>G:A*G:G$	G:,G:	G:G8G:$G51G:4G55G:c                   V ^8  d   QhRR/# rd   r/   )r0   s   "r1   r2   r   *  s      N r4   c                	    . # r6   r/   r9   s   &r1   rm   ConsoleInputReader.flush_keys*  s    	r4   c                    V ^8  d   QhRRRR/# )r,   	key_pressr   r-   r/   )r0   s   "r1   r2   r   .  s     - -( -x -r4   c                    VP                   '       d   V# \        VP                  \        4      '       d#   \        P
                  ! VP                  R4      pMRp\        VP                  V4      # )z0
Insert KeyPress data, for vt100 compatibility.
r   )r   r   r   r   r!   getr   )r:   r   r   s   && r1   r   #ConsoleInputReader._insert_key_data.  sP     >>>immT**)--immR@DD	t,,r4   c               $    V ^8  d   QhRRRRRR/# )r,   rh   r   r   Array[INPUT_RECORD]r-   Iterator[KeyPress]r/   )r0   s   "r1   r2   r   <  s$     6 66*=6	6r4   c              #    "   \        VP                  4       F  pW#,          pVP                  \        9   g   K"  \	        VP
                  \        VP                  ,          4      p\        V\        4      '       d.   VP                  '       d   V P                  V4       Rj  xL
  K  \        V\        4      '       g   K  V P                  V4       Rj  xL
  K  	  R#  L= L5i)B
Generator that yields `KeyPress` objects from the input records.
N)rangevalue	EventTyper    getattrEventr   r   KeyDown_event_to_key_pressesr   _handle_mouse)r:   rh   r   iirevs   &&&   r1   r   ConsoleInputReader._get_keys<  s      tzz"A!B ||z)RXXz",,'?@ b"233


#99"===$677#11"555! # > 6s5   3C#AC#C#!C"C# C#C!C#!C#c                    V ^8  d   QhRRRR/# )r,   key_pressesre   r-   r   r/   )r0   s   "r1   r2   r   U  s     * *n *AS *r4   c              #    "   RpV  F  p\        VP                  \        4      '       * pT;'       d!    RVP                  u;8*  ;'       d    R8*  Mu pT;'       d!    RVP                  u;8*  ;'       d    R8*  Mu pV'       dW   V'       dI   VP                  VP                  ,           P                  RR4      P	                  R4      p\        Wf4      pMVx  RpV'       d   TpK  Vx  K  	  V'       d   Vx  R# R# 5i)zU
Combines consecutive KeyPresses with high and low surrogates into
single characters
Nu   u   u   u   z	utf-16-lesurrogatepass)r   r   r   encodedecoder   )r  buffered_high_surrogater   is_textis_high_surrogateis_low_surrogatefullchars   &      r1   r   +ConsoleInputReader._merge_paired_surrogatesT  s      #'C$SWWd33G ' K KH,K,K8,K&JJ8sww+J+J(+J&# 144sww>_=, 
 #86C11*.' *-'	+ . #)) #s5   /C?C?C?C?5C?C?AC?#C?7C?c                    V ^8  d   QhRRRR/# )r,   keysre   r-   rq   r/   )r0   s   "r1   r2   r   v  s     6 6 64 6r4   c                    ^ p^ pV  FV  p\        VP                  \        4      '       g
   V^,          pVP                  \        P                  8X  g   KM  V^,          pKX  	  V^8  ;'       d    V^8  # )a  
Return `True` when we should consider this list of keys as a paste
event. Pasted text on windows will be turned into a
`Keys.BracketedPaste` event. (It's not 100% correct, but it is probably
the best possible way to detect pasting of text and handle that
correctly.)
)r   r   r   r   )r  
text_countnewline_countr   s   &   r1   r   ConsoleInputReader._is_pasteu  se     
AaeeT**a
uu%"	  !55jAo5r4   c                    V ^8  d   QhRRRR/# )r,   r   r   r-   re   r/   )r0   s   "r1   r2   r     s     B B(8 B^ Br4   c                   \        V\        4      '       d   VP                  '       g   Q hRpVP                  pVP                  P
                  pVP                  RR4      pVR8X  dD   VP                  V P                  9   d(   \        V P                  VP                  ,          R4      pMaWPP                  9   dG   V P                  V,          \        P                  8X  d   Rp\        V P                  V,          V4      pM\        WD4      pW0P                  ,          '       g   W0P                  ,          '       Ed^   W0P                  ,          '       EdE   V'       Ed<   \        P                   \        P"                  \        P$                  \        P&                  \        P(                  \        P*                  \        P,                  \        P.                  \        P0                  \        P2                  \        P4                  \        P6                  \        P8                  \        P:                  \        P<                  \        P>                  \        P@                  \        PB                  /	pVPE                  VPF                  VPF                  4      Vn#        W0P                  ,          '       g   W0P                  ,          '       Edc   V'       EdZ   \        P                   \        PH                  \        P$                  \        PJ                  \        P(                  \        PL                  \        P,                  \        PN                  \        P0                  \        PP                  \        P4                  \        PR                  \        P8                  \        PT                  \        PV                  \        PX                  \        P<                  \        PZ                  \        P@                  \        P\                  /
pVPE                  VPF                  VPF                  4      Vn#        W0P                  ,          '       Ed   V'       Edx   \        P^                  \        P`                  \        P                   \        Pb                  \        P$                  \        Pd                  \        P(                  \        Pf                  \        P,                  \        Ph                  \        P0                  \        Pj                  \        P4                  \        Pl                  \        P8                  \        Pn                  \        PV                  \        Pp                  \        P<                  \        Pr                  \        P@                  \        Pt                  /pVPE                  VPF                  VPF                  4      Vn#        W0P                  ,          '       g   W0P                  ,          '       d4   V'       d,   VPv                  R8X  d   \        \        Px                  R4      pW0P                  ,          '       g   W0P                  ,          '       dD   V'       d<   VPF                  \        P                  8X  d   \        \        Pz                  R4      V.# V'       d:   W0P|                  ,          pV'       d   \        \        Pz                  R4      V.# V.# . # )zE
For this `KEY_EVENT_RECORD`, return a list of `KeyPress` instances.
Nzutf-8r   r   
 )?r   r   r   ControlKeyStateuCharUnicodeCharr  VirtualKeyCodekeycodesr   mappingsr   r   LEFT_CTRL_PRESSEDRIGHT_CTRL_PRESSEDSHIFT_PRESSEDLeftControlShiftLeftRightControlShiftRightUpControlShiftUpDownControlShiftDownHomeControlShiftHomeEndControlShiftEndInsertControlShiftInsertPageUpControlShiftPageUpPageDownControlShiftPageDownr   r   ControlLeftControlRight	ControlUpControlDownControlHome
ControlEndControlInsertDeleteControlDeleteControlPageUpControlPageDownTabBackTab	ShiftLeft
ShiftRightShiftUp	ShiftDown	ShiftHomeShiftEndShiftInsertShiftDeleteShiftPageUpShiftPageDownr   ControlSpaceEscapeLEFT_ALT_PRESSED)r:   r   resultcontrol_key_stateu_char
ascii_charmappingmeta_presseds   &&      r1   r   (ConsoleInputReader._event_to_key_presses  s    ".//BJJJ>>"&..%%]]7O<
 V  DMM1!$--0A0A"BBG]]*==,=  "$--
";VD!&1
 "$:$:::$'>'>>>!$6$666 		400

D22,,		400		400$..T44T44t88
'G !VZZ<FJ  6 666 #:#:::f		4++

D--		4++		4++$//T//T//T//t33G !VZZ<FJ 1111ff$,,		4>>

DOO		4>>		4>>$--T--T--T--t11G !VZZ<FJ
 "$:$:::$'>'>>>s"d//5F "$:$:::$'>'>>>

dmm+T[["-v66 ,/D/DDL b16::x Ir4   c                    V ^8  d   QhRRRR/# )r,   r   r   r-   re   r/   )r0   s   "r1   r2   r     s     -8 -8 2 -8~ -8r4   c                   VP                   pVP                  pRp\        P                  pV\        ,          '       d*   V^ 8  d   \
        P                  pMH\
        P                  pM7V\        8X  d   \        P                  pMV\        8X  d   \        P                  pV\        ,          '       d   \
        P                  pVf)   V^ 8  d   \
        P                  pM\
        P                  pRP!                  VP"                  VP"                  \%        VP&                  P(                  4      \%        VP&                  P*                  4      .4      p\-        \.        P0                  V4      .# )z;
Handle mouse events. Return a list of KeyPress instances.
N;)
EventFlagsButtonStater   NONEMOUSE_WHEELEDr   	SCROLL_UPSCROLL_DOWNFROM_LEFT_1ST_BUTTON_PRESSEDLEFTRIGHTMOST_BUTTON_PRESSEDRIGHTMOUSE_MOVED
MOUSE_MOVE
MOUSE_DOWNMOUSE_UPr   r   r   MousePositionXYr   r   WindowsMouseEvent)r:   r   event_flagsbutton_state
event_typebuttonr   s   &&     r1   r    ConsoleInputReader._handle_mouse  s    mm~~,0
).. &&a+55
+77
 ;;$))!99$** $$'22J a+66
 ,44
xx  B$$&&'B$$&&'	
 //677r4   )r   r@   r   N)T)PrB   rC   rD   rE   rF   r   rJ  rI  ControlAControlBControlCControlDControlEControlFControlGControlHControlIr   ControlKControlLr   ControlNControlOControlPControlQControlRControlSControlTControlUControlVControlWControlXControlYControlZControlBackslashControlSquareCloseControlCircumflexControlUnderscore	Backspacer  r.  r0  r*  r(  r   r$  r"  r&  r,  r9  F1F2F3F4F5F6F7F8F9F10F11F12r  rK  RIGHT_ALT_PRESSEDr  r  r  r;   r   rh   rm   r   r   staticmethodr   r   r   r   rH   r/   r4   r1   r%   r%      s   """"" 	" 		"
 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"  	!"" 	#"$ 	%"& 	'"( 	)"* 	+", 	-". 	/"0 	1"2 	3"4 	5"6 	7"8 	9": 	&&;"< 	((="> 	''?"@ 	''A"B 	C"HJ
DKK 	DMM 	DHH	
 	DII 	DII 	DGG 	DJJ 	DII 	DKK 	DKK 	TWW 	TWW  	TWW!" 	TWW#$ 	TWW%& 	TWW'( 	TWW)* 	TWWTWWTXXTXXTXX3H8 MD"
< |-60 * *@ 6 6*BH-8 -8r4   c                  V    ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	Rt
R# )rQ   i?  a  
Similar to `ConsoleInputReader`, but for usage when
`ENABLE_VIRTUAL_TERMINAL_INPUT` is enabled. This assumes that Windows sends
us the right vt100 escape sequences and we parse those with our vt100
parser.

(Using this instead of `ConsoleInputReader` results in the "data" attribute
from the `KeyPress` instances to be more correct in edge cases, because
this responds to for instance the terminal being in application cursor keys
mode.)
c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   $Vt100ConsoleInputReader.__annotate__L  s     D D$ Dr4   c                	  a  R S n         . S n        \        V 3R l4      S n        S  \        P
                  P                  4       '       d4   \        \        P                  P                  \        4      4      S n        R # \        P                  ! R\        P                  \        P                   ,          4      S n         \        \"        P$                  ! S P                   4      4      S n        R # )Nc                :   < SP                   P                  V 4      # r6   )_bufferr   )r   r:   s   &r1   <lambda>2Vt100ConsoleInputReader.__init__.<locals>.<lambda>Q  s    dll11)<r4   r   )r   r  r#   _vt100_parserr   rK   r   r   r	   r   r   r   r@   r   r   r   r   r   r   r9   s   fr1   r;    Vt100ConsoleInputReader.__init__L  s    ')(<
 	99 !=!=>N!OPDK''(BII,CDDK !5!5dkk!BCDKr4   c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   r  ]  r   r4   c                f    V P                   e#   \        P                  ! V P                   4       R# R# r   r   r9   s   &r1   r   Vt100ConsoleInputReader.close]  r   r4   c                   V ^8  d   QhRR/# r   r/   )r0   s   "r1   r2   r  b  s     # #( #r4   c                   Rp\        ^ 4      p\        V,          pV! 4       p\        V P                  .^ R7      '       g   . # \        P
                  P                  V P                  \        V4      V\        V4      4       V P                  W$4       F  pV P                  P                  V4       K   	  V P                  p. V n        V# )r   r   r   )r   r   r   r@   r	   r   r   r   r   r  feedr  )r:   r   rh   r   r   key_datarL  s   &      r1   rh   Vt100ConsoleInputReader.readb  s     	Qx*	  q99I 	))KK/GDM	
 t;H##H- < r4   c                   V ^8  d   QhRR/# rd   r/   )r0   s   "r1   r2   r    s      N r4   c                `    V P                   P                  4        V P                  p. V n        V# )zK
Flush pending keys and return them.
(Used for flushing the 'escape' key.)
)r  flushr  )r:   rL  s   & r1   rm   "Vt100ConsoleInputReader.flush_keys  s-     	  " r4   c               $    V ^8  d   QhRRRRRR/# )r,   rh   r   r   r   r-   zIterator[str]r/   )r0   s   "r1   r2   r    s$     % %%*=%	%r4   c              #  x  "   \        VP                  4       F  pW#,          pVP                  \        9   g   K"  \	        VP
                  \        VP                  ,          4      p\        V\        4      '       g   Ke  VP                  '       g   Ky  VP                  P                  pVR8w  g   K  Vx  K  	  R# 5i)r   r  N)r   r   r   r    r   r   r   r   r   r  r  )r:   rh   r   r   r   r   rN  s   &&&    r1   r   !Vt100ConsoleInputReader._get_keys  s}      tzz"A!B ||z)RXXz",,'?@ b"233


XX11F'$ #s   3B:>B:=B:B:0
B:)r  r   r  r@   N)rB   rC   rD   rE   rF   r;   r   rh   rm   r   rH   r/   r4   r1   rQ   rQ   ?  s'    
D""
#J% %r4   rQ   c                  >    ] tR tRtRtR R ltR R ltR R ltR	tR
# )r7   i  a  
Utility to keep track of which handles are connectod to which callbacks.

`add_win32_handle` starts a tiny event loop in another thread which waits
for the Win32 handle to become ready. When this happens, the callback will
be called in the current asyncio event loop using `call_soon_threadsafe`.

`remove_win32_handle` will stop this tiny event loop.

NOTE: We use this technique, so that we don't have to use the
      `ProactorEventLoop` on Windows and we can wait for things like stdin
      in a `SelectorEventLoop`. This is important, because our inputhook
      mechanism (used by IPython), only works with the `SelectorEventLoop`.
c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   _Win32Handles.__annotate__  s     4 4$ 4r4   c                	"    / V n         / V n        R # r6   _handle_callbacks_remove_eventsr9   s   &r1   r;   _Win32Handles.__init__  s    @B 24r4   c               $    V ^8  d   QhRRRRRR/# )r,   r@   r   callbackrW   r-   r.   r/   )r0   s   "r1   r2   r    s#     )6 )6v )69K )6PT )6r4   c                  aaaaaa SP                   pVf   \        R4      hV P                  S4       \        4       oSV P                  V&   \        4       oSV P                  V&   R VVV3R lloR VVVV3R llo\        SSR7       R# )z'
Add a Win32 handle to the event loop.
NInvalid handle.c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   4_Win32Handles.add_win32_handle.<locals>.__annotate__  s     	> 	>t 	>r4   c                 V   <  S ! 4        \        SSR 7       R#   \        SSR 7       i ; i)loopNr   )r  r  waits   r1   ready-_Win32Handles.add_win32_handle.<locals>.ready  s#    >
,T=,T=s    (c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   r    s     		1 		1d 		1r4   c                    < \        SS.4      p V SJ d"   \        P                  P                  S4       R # SP	                  S4       R # r6   )r   r	   r   CloseHandlecall_soon_threadsafe)rL  r@   r  r  remove_events    r1   r  ,_Win32Handles.add_win32_handle.<locals>.wait  s?     &|V&<=F%++L9))%0r4   r  )r   
ValueErrorremove_win32_handler   r  r   r  r   )r:   r@   r  handle_valuer  r  r  r  s   &ff @@@@r1   add_win32_handle_Win32Handles.add_win32_handle  s     ||.// 	  (!/7|, *+,8L)	> 	>		1 		1 	%T5r4   c                    V ^8  d   QhRRRR/# )r,   r@   r   r-   zCallable[[], None] | Noner/   )r0   s   "r1   r2   r    s      & 5N r4   c                >   VP                   f   R#  V P                  P                  VP                   4      p\        P                  P                  V4        V P                  P                  VP                   4      #   \         d     L3i ; i  \         d     R# i ; i)z\
Remove a Win32 handle from the event loop.
Return either the registered handler or `None`.
N)r   r  popr	   r   SetEventKeyErrorr  )r:   r@   events   && r1   r  !_Win32Handles.remove_win32_handle  s    
 <<	,''++FLL9E OO$$U+	))--fll;;  		  		s#   %A< $B <B
	B
BBr  N)	rB   rC   rD   rE   rF   r;   r  r  rH   r/   r4   r1   r7   r7     s    4)6V r4   r7   c               $    V ^8  d   QhRRRRRR/# )r,   inputr)   r  rW   r-   Iterator[None]r/   )r0   s   "r1   r2   r2     s)     F FF&8FFr4   c              #  v  "   V P                   pV P                  pVP                  f   \        R4      hVP	                  V4      pVP                  W14        Rx  VP	                  V4       V'       d   VP                  W44       R# R#   TP	                  T4       T'       d   TP                  Y44       i i ; i5i)z
Context manager that makes this input active in the current event loop.

:param input: :class:`~prompt_toolkit.input.Input` object.
:param input_ready_callback: Called when the input is ready to read.
Nr  r8   r@   r   r  r  r  )r  r  r8   r@   previous_callbacks   &&   r1   rZ   rZ     s      ''M\\F||*++ &99&A""64F))&1**6E  	))&1**6E s   AB9B	 .B9	-B66B9c                    V ^8  d   QhRRRR/# )r,   r  r)   r-   r  r/   )r0   s   "r1   r2   r2   #  s     F Fo F. Fr4   c              #    "   V P                   pV P                  pVP                  f   \        R4      hVP	                  V4      p R x  V'       d   VP                  W#4       R # R #   T'       d   TP                  Y#4       i i ; i5i)Nr  r  )r  r8   r@   r  s   &   r1   r`   r`   "  sv     ''M\\F||*++%99&AF**6E **6E s   ABA' 
B'BBc                  N    ] tR tRtRtRR R lltR R ltR R	 ltR
 R ltRt	R# )r&   i3  z
::

    with raw_mode(stdin):
        ''' the windows terminal is now in 'raw' mode. '''

The ``fileno`` attribute is ignored. This is to be compatible with the
`raw_input` method of `.vt100_input`.
Nc               $    V ^8  d   QhRRRRRR/# )r,   r   z
int | Nonerw   rq   r-   r.   r/   )r0   s   "r1   r2   raw_mode.__annotate__>  s)     Q Q QKOQ	Qr4   c                	t    \        \        P                  P                  \        4      4      V n        W n        R # r6   )r   r	   r   r   r   r@   rw   )r:   r   rw   s   &&&r1   r;   raw_mode.__init__>  s&     V__99:JKL0P-r4   c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   r  D  s      4 r4   c                	    \        4       p\        P                  P                  V P                  \        V4      4       Wn        V P                  4        R # r6   )r   r	   r   GetConsoleModer@   r   original_mode_patch)r:   r  s   & r1   	__enter__raw_mode.__enter__D  s5    &&t{{GM4JK*r4   c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   r  L  s     > > >r4   c                	    ^p^p^pV P                   P                  W,          V,          ( ,          pV P                  '       d   V\        ,          p\        P
                  P                  V P                  V4       R#    N)r  r   rw   ENABLE_VIRTUAL_TERMINAL_INPUTr	   r   SetConsoleModer@   )r:   ENABLE_ECHO_INPUTENABLE_LINE_INPUTENABLE_PROCESSED_INPUTnew_modes   &    r1   r  raw_mode._patchL  sl    ""!'%%++14JJ/
 
 00055H&&t{{H=r4   c                    V ^8  d   QhRRRR/# )r,   aobjectr-   r.   r/   )r0   s   "r1   r2   r  [  s     H H6 Hd Hr4   c                	n    \         P                  P                  V P                  V P                  4       R # r6   )r	   r   r  r@   r  )r:   r  s   &*r1   __exit__raw_mode.__exit__[  s     &&t{{D4F4FGr4   )r@   r  rw   )NF)
rB   rC   rD   rE   rF   r;   r  r  r  rH   r/   r4   r1   r&   r&   3  s#    Q>H Hr4   c                  &    ] tR tRtRtR R ltRtR# )r'   i`  zh
::

    with cooked_mode(stdin):
        ''' The pseudo-terminal stdin is now used in cooked mode. '''
c                   V ^8  d   QhRR/# r+   r/   )r0   s   "r1   r2   cooked_mode.__annotate__h  s     

 

 

r4   c                	    ^p^p^p\         P                  P                  V P                  V P                  P
                  W,          V,          ,          4       R# r  )r	   r   r  r@   r  r   )r:   r  r  r  s   &   r1   r  cooked_mode._patchh  sN    ""!'&&KK$$ 47MMO	
r4   r/   N)rB   rC   rD   rE   rF   r  rH   r/   r4   r1   r'   r'   `  s    

 

r4   c                   V ^8  d   QhRR/# rp   r/   )r0   s   "r1   r2   r2   u  s     @ @T @r4   c                    \        \        P                  P                  \        4      4      p \        ^ 4      p\        P                  P                  V \        V4      4        \        P                  P                  V \        \        4      4      pV^8H  \        P                  P                  W4       #   \        P                  P                  Y4       i ; i)zS
Returns True when we're running Windows and VT100 escape sequences are
supported.
)
r   r	   r   r   r   r   r  r   r  r  )hconsoler  rL  s      r1   rO   rO   u  s    
 foo223CDEH !HM
OO""8U=-AB@oo44e9:
 {&&x?&&x?s   "1B3 3!C)r$   r%   r&   r'   rZ   r`   )D
__future__r   r   r   abcr   asyncior   
contextlibr   utilsr   platformr   ctypesr	   r
   r   r   ctypes.wintypesr   r   typingr   r   r   r   r   prompt_toolkit.eventloopr   prompt_toolkit.eventloop.win32r   r   (prompt_toolkit.key_binding.key_processorr   prompt_toolkit.keysr   prompt_toolkit.mouse_eventsr   r   prompt_toolkit.win32_typesr   r   r   r   r    ansi_escape_sequencesr!   baser"   vt100_parserr#   __all__r\  r^  r`  rY  r  r)   r$   r%   rQ   r7   rZ   r`   r&   r'   rO   r/   r4   r1   <module>r     s   " 	 
  $ % *
||w   ( ( ) G G A O = $ C  :  %  #   !' e ?0 ?0Dp8 p8fk% k%\U Up F F8 F F *H *HZ
( 
*@r4   