+
    „WÝjgH  ã                  óh  € R t ^ RIHt RHtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R lt/ RRbRRbRRbRRbRRbRRbR R!bR"R#bR$R%bR&R'bR(R)bR*R+bR,R-bR.R/bR0R1bR2R3bR4R5bR6R7/Ct. ]! R8R94      O]! R:R;4      OR<N]! R=R>4      O5tR? R@ ltRA RB ltRC RD ltRE RF ltRG# )Iz7Augmentations to prompt_toolkit's input-parsing tables.)Úannotationsc               ó    € V ^8„  d   QhRRRR/# ©é   ÚmodifierÚintÚreturnztuple[int, ...]© )Úformats   "ÚNC:\Users\johnn\AppData\Local\hermes\hermes-agent\hermes_cli\pt_input_extras.pyÚ__annotate__r      s   € ÷ >ñ >˜Sð > _ñ >ó    c                óx   a € \         ;QJ d    . V 3R l\         4       F  NK  	  5# ! V 3R l\         4       4      # )z2``modifier`` plus its CapsLock/NumLock/both twins.c              3  ó6   <"  € T F  pSV,           x € K  	  R # 5i©Nr	   )Ú.0Úoffr   s   & €r   Ú	<genexpr>Ú!_lock_variants.<locals>.<genexpr>   s   øé € Ð=Ñ+< C�˜C—’Ó+<ùs   ƒ)ÚtupleÚ_LOCK_BIT_OFFSETS©r   s   fr   Ú_lock_variantsr      s'   ø€ çŒ5Ô=Õ+<Ó=�5Ð=ˆ5Ô=Õ+<Ó=Ó=Ð=r   c               ó    € V ^8„  d   QhRRRR/# r   r	   )r
   s   "r   r   r      s   € ÷ (ñ (˜#ð ( /ñ (r   c                ó&   € \        V 4      R,          # )z;Only the lock twins of ``modifier`` (never the base value).:é   NN©r   r   s   &r   Ú_lock_twinsr      s   € ä˜(Ó# BÕ'Ð'r   c               ó   € V ^8„  d   QhRR/# )r   r   ÚNoner	   )r
   s   "r   r   r      s   € ÷ 
ñ 
 4ñ 
r   c                 óX   €  ^ RI Hp  V P                  4        R#   \         d     R# i ; i)a  Drop prompt_toolkit's memoized prefix-match answers after mutating ``ANSI_SEQUENCES``.

The cache is module-global and lazily filled per prefix, so parsers created before an install
would keep stale ``False`` answers and misparse newly registered sequences.
©Ú _IS_PREFIX_OF_LONGER_MATCH_CACHEN)Ú!prompt_toolkit.input.vt100_parserr"   ÚclearÚ	Exceptionr!   s    r   Ú_clear_vt100_prefix_cacher&      s(   € ðÝVØ(×.Ñ.Ö0øÜô Úðús   ‚ š)¨)c               ó    € V ^8„  d   QhRRRR/# )r   Ú	overwriteÚboolr   r   r	   )r
   s   "r   r   r   $   s   € ÷ ñ  $ð ¨3ñ r   c               ó  €  ^ RI Hp ^ RIHp ^ pT ! Y#4      P                  4        F;  w  rVT'       d   TP                  T4      T8w  g   K%  MYR9  g   K.  YbT&   T^,          pK=  	  T'       d   \        4        T#   \         d     ^ # i ; i)aY  Install ``build(ANSI_SEQUENCES, Keys) -> {seq: key}`` into prompt_toolkit's table; return
the number of entries changed (0 when prompt_toolkit is unavailable).

``overwrite=True`` replaces differing entries; ``overwrite=False`` behaves like ``setdefault``
so existing/user registrations win. Clears the VT100 prefix cache when anything changed.
)ÚANSI_SEQUENCES©ÚKeys)Ú*prompt_toolkit.input.ansi_escape_sequencesr+   Úprompt_toolkit.keysr-   r%   ÚitemsÚgetr&   )Úbuildr(   r+   r-   ÚchangedÚseqÚkeys   &$     r   Ú_installr6   $   s}   € ðÝMÝ,ð €GÙ˜.Ó/×5Ñ5Ö7‰ˆß/8ˆN×Ñ˜sÓ# s×*¸sÖ?XØ"%˜3ÑØ�q�LŠGñ 8÷ Ü!Ô#Ø€Nøô ô Úðús   ‚A9 Á9BÂBc               ó   € V ^8„  d   QhRR/# ©r   r   r   r	   )r
   s   "r   r   r   :   s   € ÷ ñ ¨Sñ r   c                 óà   aa€  ^ RI Hu Hp  ^ RIHo T P                  P                  o\        SRR4      '       d   ^ # TT3R lpRTn	        YP                  n        ^#   \
         d     ^ # i ; i)u´  Normalize KeyPress data for extended-key aliases that map to a single plain character
(Shift+Space â†’ ``' '``, Shift+letter â†’ uppercase, keypad digits/operators).

Root cause of #88071: ``Vt100Parser._call_handler`` builds ``KeyPress(key, match.group(0))`` â€” the *key*
is correctly remapped by ``ANSI_SEQUENCES``, but the *data* field still carries the full raw escape text
(e.g. ``"\x1b[32;2u"``). prompt_toolkit's default character-insert binding (``self-insert``,
``basic.py``) inserts ``event.data``, so the raw CSI bytes land in the prompt buffer. For a plain space
both fields are ``' '`` so it is invisible; for any mapped extended sequence the escape text is what
gets inserted.
Nr,   Ú_hermes_char_data_normalizedFc                óä   <€ \        V\        4      '       dR   \        V4      ^8X  dB   \        VS4      '       g0   \        V\        4      '       d   VP                  R4      '       d   TpS! WV4      # )r   Ú)Ú
isinstanceÚstrÚlenÚ
startswith)Úselfr5   Úinsert_textÚ_PtKeysÚ_orig_call_handlers   &&&€€r   Ú_patched_call_handlerÚBinstall_keypress_data_normalization.<locals>._patched_call_handlerO   sW   ø€ ô �sœC× Ò ¤S¨£X°¤]¼:ÀcÈ7×;SÒ;SÜ˜{¬C×0Ò0°[×5KÑ5KÈF×5SÒ5SØˆKÙ! $¨[Ó9Ð9r   T)
r#   ÚinputÚvt100_parserr/   r-   r%   ÚVt100ParserÚ_call_handlerÚgetattrr:   )Ú
_vt100_modrE   rC   rD   s     @@r   Ú#install_keypress_data_normalizationrM   :   sl   ù€ ðß>Ð>Ý7ð $×/Ñ/×=Ñ=ÐÜÐ!Ð#AÀ5×IÒIÙö:ð :>ÐÔ6Ø+@×ÑÔ(Ùøô# ô Úðús   „A ÁA-Á,A-c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   r	   )r
   s   "r   r   r   \   s   € ÷ +ñ + 3ð +¨3ñ +r   c                ó*   a € V 3R lp\        VRR7      # )aG  Map <modifier>+Enter (Kitty CSI-u ``ESC[13;<m>u`` plus lock twins, xterm ``ESC[27;<m>;13~``
/ ``;13u``) to (Escape, ControlM) so the Alt+Enter newline handler fires.

Stock prompt_toolkit maps the tilde form to plain ControlM (i.e. Shift+Enter == Enter, the very
bug this fixes), so these keys are overwritten unconditionally.
c                óÈ   <€ VP                   VP                  3p\        S4       Uu. uF	  pR V R2NK  	  upRS R2RS R2.,           p\        P	                  WB4      # u upi )z[13;Úuú[27;z;13~z;13u)ÚEscapeÚControlMr   ÚdictÚfromkeys)Ú_seqsÚkeysÚ	alt_enterÚmÚseqsr   s   &&   €r   r2   Ú#_install_enter_alias.<locals>.buildc   sp   ø€ Ø—[‘[ $§-¡-Ð0ˆ	Ü)7¸Ô)AÓBÑ)A A�(˜1˜#˜Q“Ñ)AÑBÈÐQYÐPZÐZ^ÐF_ÐckÐltÐkuÐuyÐazÐE{Õ{ˆÜ�}‰}˜TÓ-Ð-ùò Cs   §AT©r(   ©r6   )r   r2   s   f r   Ú_install_enter_aliasr_   \   s   ø€ õ.ô
 �E TÔ*Ð*r   c               ó   € V ^8„  d   QhRR/# r8   r	   )r
   s   "r   r   r   k   s   € ÷ #ñ # 3ñ #r   c                 ó   € \        ^4      # )z¥Map Shift+Enter to (Escape, ControlM). macOS Terminal and stock Windows Terminal send the
same byte for Enter and Shift+Enter, so nothing can be done for them here.
©r_   r	   r   r   Úinstall_shift_enter_aliasrc   k   s   € ô   Ó"Ð"r   c               ó   € V ^8„  d   QhRR/# r8   r	   )r
   s   "r   r   r   r   s   € ÷ #ñ # #ñ #r   c                 ó   € \        ^4      # )uù  Map Ctrl+Enter to (Escape, ControlM); otherwise Kitty/mintty/xterm over SSH insert raw CSI.

Stock prompt_toolkit maps only the tilde form ``\x1b[27;5;13~`` (to plain ``Keys.ControlM``, which this
deliberately overwrites â€” same bug-fix rationale as install_shift_enter_alias). Without this alias,
Kitty/mintty/xterm-with-modifyOtherKeys users over SSH never get a Ctrl+Enter newline â€” the keystroke
arrives as a raw CSI sequence that falls through to the default character-insert handler. See #22379.
rb   r	   r   r   Úinstall_ctrl_enter_aliasrf   r   s   € ô   Ó"Ð"r   c               ó   € V ^8„  d   QhRR/# r8   r	   )r
   s   "r   r   r   }   s   € ÷ +ñ + Sñ +r   c                 ó"   € R p \        V RR7      # )a  Map Cmd+Backspace -> ControlU and Cmd+ForwardDelete -> ControlK.

Kitty/modifyOtherKeys report Cmd as the super bit (8), yielding unmapped sequences that insert
literally. Forward-delete is not a CSI-u codepoint, so it uses the CSI tilde form ``ESC[3;9~``.
c                ó,  € R UUu. uF  p\        V4       F  q3NK  	  K  	  pppV Uu/ uF  pRV R2VP                  bK  	  ppTP                  V Uu/ uF  pRV R2VP                  bK  	  up4       VP                  VR&   V# u uppi u upi u upi )é	   z[127;rQ   z[3;Ú~z[27;9;127~)rj   é
   )r   ÚControlUÚupdateÚControlK)rW   rX   ÚbaseÚmodÚmodsÚaliasess   &&    r   r2   Ú*install_cmd_backspace_alias.<locals>.buildƒ   s—   € Ù 'ÔH¡˜´>À$Ö3G¨C’Ñ3G‘¡ˆÑHÙ@DÓEÁ¸�Y˜s˜e 1Ð% t§}¡}Ò4ÁˆÐEØ�‰Á4ÓHÁ4¸C˜' #  aÐ(¨$¯-©-Ò7Á4ÑHÔIØ$(§M¡MˆÐ Ñ!Øˆùó	 IùÚEùÚHs   †B©BÁBTr]   r^   )r2   s    r   Úinstall_cmd_backspace_aliasru   }   s   € òô �E TÔ*Ð*r   iAà  Ú.iBà  Ú/iCà  Ú*iDà  Ú-iEà  Ú+éFà  rT   iGà  Ú=iHà  Ú,éIà  ÚLeftéJà  ÚRightéKà  ÚUpéLà  ÚDownéMà  ÚPageUpéNà  ÚPageDownéOà  ÚHomeéPà  ÚEndéQà  ÚInsertéRà  ÚDeleteià  ià  i,à  é7à  iSà  iTà  ioà  c               ó   € V ^8„  d   QhRR/# )r   r   zdict[int, object]r	   )r
   s   "r   r   r   š   s   € ÷ ñ Ð#4ñ r   c                ó  € \        ^
4       Uu/ uF  pRV,           \        V4      bK  	  ppTP                  \        P	                  4        UUu/ uF/  w  r4Y4^ ,          P                  4       '       d   \        W4      MTbK1  	  upp4       TP                  \        ^^4       Uu/ uF!  pRV^,
          ,           \        V RV 24      bK#  	  up4       \         F  pVP                  W`P                  4       K   	  V# u upi u uppi u upi )rl   r’   i à  ÚF)
Úranger>   rn   Ú_KITTY_FUNCTIONAL_NAMEDr0   ÚisupperrK   Ú_KITTY_FUNCTIONAL_IGNOREDÚ
setdefaultÚIgnore)r-   ÚdÚfmÚcpÚvÚnÚcodes   &      r   Ú_kitty_functional_mapr¢   š   sÏ   € Ü8=¸b¼	ÓB¹	°1˜U Q�Y¬¨A«Ò.¹	€BÐBØ‡I�IÔJa×JgÑJgÔJiÔjÑJiÁÀˆr¨¥t§|¡|§~¢~”7˜4Ô#¸1Ò<ÑJiÒjÔkØ‡I�IÄÀrÈ2ÄÓOÁ¸Aˆu˜˜B�Õ¤¨°°1°#¨wÓ!7Ò7ÁÑOÔPß)ˆØ
�‰�dŸK™KÖ(ñ *à€Iùò CùÛjùÚOs   ŽC<Á5D
Â$'Dc               ó   € V ^8„  d   QhRR/# r8   r	   )r
   s   "r   r   r   £   s   € ÷ !Añ !A¨3ñ !Ar   c                 ó$   € \        \        RR7      # )u½
  Map modifyOtherKeys-2 / Kitty CSI-u Ctrl/Alt+key sequences to their raw-byte ``Keys``.

Once ``modifyOtherKeys=2`` is pushed (to distinguish Shift+Enter) the terminal re-encodes
EVERY Ctrl combo as ``ESC[27;5;<cp>~``; stock prompt_toolkit maps only Ctrl+Enter, so
Ctrl+A/C/D/... leak as text. Installs Ctrl/Alt/Shift letters, digits, symbols, multi-modifier
combos, lock-bit variants, CSI-u Esc, modified Enter/Tab/Backspace/Space and Kitty functional
keys. ``setdefault`` semantics: existing mappings (incl. the Shift/Ctrl+Enter aliases) win.

(#56684, #86866, #87390).
* **Ctrl+letter** (aâ€“z): ``ESC[27;5;<codepoint>~`` and ``ESC[<codepoint>;5u`` â†’ ``Keys.ControlA`` .. *
**Ctrl+digit** (0â€“9): same formats â†’ ``Keys.Control0`` .. * **Ctrl+symbol** (``[`` ``\`` ``]`` ``^``
``_`` `` `` ``@``): same formats â†’ the same ``Keys`` value the raw control byte maps to. *
**Alt+letter** (aâ€“z, Aâ€“Z): ``ESC[27;3;<codepoint>~`` and ``ESC[<codepoint>;3u`` â†’ ``(Keys.Escape,
<letter>)`` â€” matching how prompt_toolkit handles a bare ``ESC`` followed by a character. *
**Shift+letter** (aâ€“z): â†’ the uppercase character. * **Shift+symbol** (tilde form only): ``ESC[27;2;<cp>~``
â†’ ``chr(cp)`` for printable ASCII â€” xterm and Ghostty put the produced character in that codepoint (#114242).
* **Multi-modifier letters** (Shift+Alt=4,
Ctrl+Shift=6, Ctrl+Alt=7, Ctrl+Alt+Shift=8): normalized onto the same targets â€” Ctrl-bearing combos
behave as the Ctrl key (Alt adds an ``Escape`` prefix), matching how dte/kakoune normalize these
protocols. * **Lock-bit variants**: every CSI-u mapping above is also installed with the CapsLock (64)
and NumLock (128) bits ORed into the modifier parameter â€” kitty/ghostty include them while a lock is on,
and without the variants every key combo dies with the lock enabled (``ESC[99;133u`` instead of
``ESC[99;5u``, #89651). * **Esc key**: ``ESC[27u`` / ``ESC[27;<mod>u`` (Kitty disambiguate mode reports
Esc this way, #56684) â†’ ``Keys.Escape``. * **Modified Enter/Tab/Backspace/Space**: Alt+Enter â†’ the
Alt+Enter newline tuple; Shift+Tab â†’ ``BackTab``; Ctrl+Tab â†’ plain Tab; Ctrl/Alt+Backspace â†’ ``(Escape,
ControlH)`` (backward-kill-word, matching the Ink TUI and Desktop, #78285); Shift+Backspace â†’ plain
backspace; Shift+Space â†’ a plain space (#86866); Alt+Space â†’ ``(Escape, " ")``. * **Kitty functional
keys** (Private Use Area codepoints): keypad keys â†’ their non-keypad equivalents (KP_ENTER â†’ Enter, KP_4
â†’ '4', KP_LEFT â†’ Left, â€¦); F13â€“F24 â†’ ``Keys.F13``..``F24``; lock/media/ modifier-event keys â†’
``Keys.Ignore`` so they are consumed instead of leaking as literal text. kitty emits these CSI-u forms
even in legacy mode for keys that have no legacy encoding.
Fr]   )r6   Ú_modify_other_keys_aliasesr	   r   r   Ú!install_modify_other_keys_aliasesr¦   £   s   € ôB Ô.¸%Ô@Ð@r   c               ó    € V ^8„  d   QhRRRR/# )r   r+   rU   r   zdict[str, object]r	   )r
   s   "r   r   r   Ç   s   € ÷ uñ u¨tð uÐ>Oñ ur   c                ó²
  a€ / pVP                   oR  V3R llp\        \        R4      \        R4      ^,           4      p. VO^@N^[N^\N^]N^^N^_N^ N Uu/ uF,  pV P                  \	        V^,          4      4      ;pf   K*  WVbK.  	  ppTP                  \        ^
4       Uu/ uF#  p\        R4      V,           \        VRV 24      bK%  	  up4       V! ^V4       V Fº  p	\	        V	^ ,
          4      p
VP                  V	4      pV! ^W‘P                  \	        V	4      3V	^ ,
          VP                  V
3/4       W™^ ,
          3 FR  pV! ^WZ/4       V! ^WQP                  V
3/4       Vf   K)  V! ^W[/4       R F  pV! WÅVP                  V3/4       K  	  KT  	  K¼  	  \        ^!^4       F%  pR F  pS! RV RV R	2\	        V4      4       K  	  K'  	  S! R
VP                  4       R \        ^^4       4        F  pS! RV R2VP                  4       K  	  VP                  VP                  3pV! ^^	VP                  ^VP                  ^ R/4       V! ^^VP                  VP                  3^V^ VP                  R3/4       V! ^^	VP                  ^V/4       V! ^^	VP                  ^VP                  ^ R^VP                  /4       \        ^^4       Fß  pR Uu. uF  pV^8”  d   RV V 2MRV 2RV 2RV 23NK!  	  ppT\        ^^	4       Uu. uF   pV^8”  d
   RV RV R	2MRV R	2RV R2R3NK"  	  up,          pV Fm  w  pppV P                  V4      pVf!   V^8X  d   V'       d   V P                  V4      pVe   \        V4      MR F  pS! VP                  VR7      V4       K  	  Ko  	  Ká  	  RR/\        RR4       UUu/ uF  w  ppVRV,           bK  	  uppCR UUu/ uF  w  ppVRV R2bK  	  uppCp\        V4      P!                  4        EF  w  ppS! RV R2V4       \        ^4       F  pS! RV RV R2V4       K  	  VP                  V4      p\#        V\$        4      '       d2   \#        VV4      '       g    \'        V4      ^8X  d   R\        V4       R2p\        ^^	4       F�  p\)        V4       Fo  pRpVe5   VP                  VR7      pV P                  VVP                  V4      4      pMVVP*                  J d   VP*                  pVf   K_  S! RV RV R2V4       Kq  	  Kƒ  	  EK"  	  V# u upi u upi u upi u upi u uppi u uppi )c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   ÚmappingrU   r   r   r	   )r
   s   "r   r   Ú0_modify_other_keys_aliases.<locals>.__annotate__Ñ   s!   € ÷ :ñ : #ð :°ð :¸ñ :r   c           	     ó¬   <€ VP                  4        F>  w  r#V ^8w  d   S! RV  RV R2V4       \        V 4       F  pS! RV RV R2V4       K  	  K@  	  R# )zXBoth modifyOtherKeys (ESC[27;N;CP~, never for mod 1) and CSI-u (ESC[CP;Nu + lock twins).rR   Ú;rk   ú[rQ   N)r0   r   )r   rª   Ú	codepointÚkey_valrq   Ú_puts   &&   €r   Ú_install_pairedÚ3_modify_other_keys_aliases.<locals>._install_pairedÑ   s^   ø€ à")§-¡-¦/ÑˆIØ˜1Œ}Ù�x ˜z¨¨9¨+°QÐ7¸ÔAÜ% hÖ/�Ù�u˜Y˜K q¨¨¨QÐ/°Ö9ó 0ó #2r   ÚaÚzNÚ0ÚControlrR   r­   rk   z[27uc              3  óH   "  € T F  p\        V4       F  q"x € K  	  K  	  R # 5ir   r   )r   rZ   rq   s   &  r   r   Ú-_modify_other_keys_aliases.<locals>.<genexpr>	  s   é € ÐG™\˜´^ÀAÖ5F¨c”Ñ5F‘›\ùs   ‚ "rQ   Ú Ú
ABCDFHPQRSz[1;r®   z	[1;{mod}zOz;{mod}~)rq   r{   z[13;{mod}uÚDCABHFz;{mod}u)é   é   )r   rj   rl   r	   )r~   r€   r‚   r„   rŠ   rŒ   ))r†   é   )rˆ   é   )rŽ   r   )r�   é   )rš   r–   Úordr1   Úchrrn   rK   rS   ÚControlHÚBackTabrT   ÚControlIr   r
   Úzipr¢   r0   r=   r>   r?   r   r›   )r+   r-   rs   r²   Úlettersrž   r5   Úctrl_key_maprœ   ÚchÚ
upper_charÚctrl_keyr   rq   Úalt_backspacerZ   ÚtÚlegacyr    Úbase_seqÚtwin_fmtÚss3_seqr¡   ÚsuffixÚnumberÚkeypad_twinsr°   ÚtwinÚ
equivalentÚsourcer±   s   &&                            @r   r¥   r¥   Ç   s¡  ø€ à!#€GØ×Ñ€D÷:ð :ô ”C˜“Hœc #›h¨�lÓ+€Gà@˜GÐ@ RÐ@¨Ð@¨RÐ@°Ð@°RÐ@¸Ð@¸RÑ@ó'Ù@�BØ!×%Ñ%¤c¨"¨t­)£nÓ5Ð5ˆCô 	ˆŠÑ@ð ð 'ð
 ×ÑÌUÐSUÌYÓWÉYÈœ˜S› A�¤w¨t°w¸q¸c°]Ó'CÒCÉYÑWÔXÙ�A�|Ô$ó ˆÜ˜˜b�“\ˆ
Ø×#Ñ# BÓ'ˆÙ˜˜B§¡¬c°"«gÐ 6¸¸R½À$Ç+Á+ÈzÐAZÐ[Ô\Ø˜B•w“-ˆBÙ˜A Ð/Ô0Ù˜A §[¡[°*Ð$=Ð>Ô?ØÔ#Ù  B >Ô2Û &�HÙ# H°D·K±KÀÐ3JÐ.KÖLó !'ó  ñ	 ô. �B˜ŽnˆÛ"ˆHÙ�8˜H˜: Q r d¨!Ð,¬c°"«gÖ6ó #ñ ñ 	ˆ�T—[‘[Ô!ÙGœU 1 bœ\ÖGˆÙˆx˜�u˜AÐ §¡Ö,ñ Hð —[‘[ $§-¡-Ð0€MÙ�A˜˜4Ÿ<™<¨¨d¯m©m¸RÀÐEÔFÙ�A˜˜TŸ[™[¨$¯-©-Ð8¸#¸}ÈbÐSW×S^ÑS^Ð`cÐRdÐeÔfÙ�A˜˜4Ÿ=™=¨#¨}Ð=Ô>Ù�A˜˜4Ÿ=™=¨"¨d¯m©m¸RÀÀcÈ4Ï=É=ÐYÔZô
 �1�bŽ\ˆÙkwÓxÑkwÐfg q¨1¤u�W˜Q˜C ˜sÑ#°E¸!¸°+ÀÐPQÈsÐ?SÐW\Ð]^Ð\_ÐU`ÓaÑkwˆÐxØÔfkÐlmÐopÔfqÓrÑfqÐab¨¨A¬�e˜A˜3˜a ˜s !Ñ$°U¸1¸#¸Q°<À5ÈÈÈ9ÐAUÐW[Ó\ÑfqÑrÕrˆÛ+1Ñ'ˆH�h Ø ×$Ñ$ XÓ.ˆCØŠ{˜q Aœv¯'Ø$×(Ñ(¨Ó1�Ø),ª”{ 1”~¸bÒ@�Ù�X—_‘_¨�_Ó-¨sÖ3ó Aó	 ,2ñ ð 	Ððô Ð9¸8ÔDôFÙDñ .:¨T°6ˆ4� &Õ(Ò(ÙDòFðñ
 <ô=Ù;ñ 0<¨t°Vˆ4�5˜˜ 	Ð*Ò*Ù;ò=ð	€Lô /¨tÓ4×:Ñ:×<‰ˆˆgÙˆu�T�F˜!ˆ_˜gÔ&Ü˜q–>ˆCÙ�5˜˜˜a ˜u AÐ&¨Ö0ñ "à×Ñ Ó%ˆÜ�gœs×#Ò#¬J°wÀ×,EÒ,EÌ#ÈgË,ÐZ[ÔJ[Øœ3˜w›<˜.¨	Ð2ˆDô ˜a žˆHÜ% hÖ/�Ø!�
ØÒ#Ø!Ÿ[™[¨S˜[Ó1�FØ!/×!3Ñ!3°F¸G¿K¹KÈÓ<OÓ!P‘JØ §¡Ó+Ø!%§¡�JØÔ)Ù˜5   a¨ u¨AÐ.°
Ö;ó 0ô $ñ =ð& €Nùò'ùò
 Xùòn yùÚrùóFùó=s*   Á'T9Á>T9Â)T>Ë%UÌ&UÏUÏ"Uc               ó   € V ^8„  d   QhRR/# r8   r	   )r
   s   "r   r   r   ?  s   € ÷ iñ i¨Cñ ir   c                 ó   € \        R RR7      # )zòMap focus reports ``ESC[I`` / ``ESC[O`` (Ghostty, iTerm2, some xterms) to ``Keys.Ignore``.

Parser-level handling beats post-hoc regex stripping because the bytes never reach the buffer.
``setdefault`` lets user/downstream registrations win.
c                ó6   € R VP                   RVP                   /# )z[Iz[O)r›   )rW   rX   s   &&r   Ú<lambda>Ú4install_ignored_terminal_sequences.<locals>.<lambda>E  s   € ¨°4·;±;ÀÈ$Ï+É+Ñ(Vr   Fr]   r^   r	   r   r   Ú"install_ignored_terminal_sequencesrÞ   ?  s   € ô ÑVÐbgÔhÐhr   N)é    é@   é€   éÀ   )Ú__doc__Ú
__future__r   r   r   r   r&   r6   rM   r_   rc   rf   ru   r—   r–   r™   r¢   r¦   r¥   rÞ   r	   r   r   Ú<module>rå      sc  ðÙ =å "ð &Ð õ>õ
(õ

õõ,õD+õ#õ#õ+ð$Ø	ˆ3ðØ�sðØ! 3ðØ(-¨sðØ49¸3ðØ@EÀzðà	ˆ3ðà�sðð 
ˆ6ðð ˜'ðð $)¨$ðð 16°vðð @EÀhðð 
ˆ:ð	ð ˜fð	ð ',¨Uð	ð 5:¸8ð	ð FKÈHñ	Ð ð f™e E¨5Ó1Ðe±E¸%ÀÓ4GÐeÈÐeÑQVÐW\Ð^cÓQdÑeÐ õõ!AõHu÷pir   