[INFO] cloning repository https://github.com/geldata/vtio
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/geldata/vtio" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeldata%2Fvtio", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeldata%2Fvtio'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 141358760fa3f4a7ef1d8df640c46b9ccb11f79e
[INFO] testing geldata/vtio against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeldata%2Fvtio" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/geldata/vtio
[INFO] finished tweaking git repo https://github.com/geldata/vtio
[INFO] tweaked toml for git repo https://github.com/geldata/vtio written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/geldata/vtio on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/geldata/vtio already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 1 package to latest compatible version
[INFO] [stderr]       Adding vt-push-parser v0.11.0 (available: v0.13.1)
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded vt-push-parser v0.11.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5e252d57a787b6fa030f7ee8ff1f396dc8d9201e26996ee09bde6a22178abf0a
[INFO] running `Command { std: "docker" "start" "-a" "5e252d57a787b6fa030f7ee8ff1f396dc8d9201e26996ee09bde6a22178abf0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5e252d57a787b6fa030f7ee8ff1f396dc8d9201e26996ee09bde6a22178abf0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5e252d57a787b6fa030f7ee8ff1f396dc8d9201e26996ee09bde6a22178abf0a", kill_on_drop: false }`
[INFO] [stdout] 5e252d57a787b6fa030f7ee8ff1f396dc8d9201e26996ee09bde6a22178abf0a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e2a61c1d1d24f7f1eef005c46ec7a26357cf36e12d54df5b4a6abea1855e2ccd
[INFO] running `Command { std: "docker" "start" "-a" "e2a61c1d1d24f7f1eef005c46ec7a26357cf36e12d54df5b4a6abea1855e2ccd", kill_on_drop: false }`
[INFO] [stderr]    Compiling vt-push-parser v0.11.0
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling vtinput v0.0.0 (/opt/rustwide/workdir/crates/vtinput)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.40s
[INFO] running `Command { std: "docker" "inspect" "e2a61c1d1d24f7f1eef005c46ec7a26357cf36e12d54df5b4a6abea1855e2ccd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e2a61c1d1d24f7f1eef005c46ec7a26357cf36e12d54df5b4a6abea1855e2ccd", kill_on_drop: false }`
[INFO] [stdout] e2a61c1d1d24f7f1eef005c46ec7a26357cf36e12d54df5b4a6abea1855e2ccd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 02a235281878127e150e7fe23442da9f5aa66cd5824c2acae9574fff3764666c
[INFO] running `Command { std: "docker" "start" "-a" "02a235281878127e150e7fe23442da9f5aa66cd5824c2acae9574fff3764666c", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling cfg-if v1.0.3
[INFO] [stderr]    Compiling libc v0.2.176
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling clap_builder v4.5.48
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling regex-automata v0.4.11
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling is-terminal v0.4.16
[INFO] [stderr]    Compiling clap v4.5.48
[INFO] [stderr]    Compiling regex v1.11.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling vtinput v0.0.0 (/opt/rustwide/workdir/crates/vtinput)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 19.81s
[INFO] running `Command { std: "docker" "inspect" "02a235281878127e150e7fe23442da9f5aa66cd5824c2acae9574fff3764666c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "02a235281878127e150e7fe23442da9f5aa66cd5824c2acae9574fff3764666c", kill_on_drop: false }`
[INFO] [stdout] 02a235281878127e150e7fe23442da9f5aa66cd5824c2acae9574fff3764666c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d25dbdec383eef94b7339e95e225f4a37d5df83be687499c96cb5c461098d194
[INFO] running `Command { std: "docker" "start" "-a" "d25dbdec383eef94b7339e95e225f4a37d5df83be687499c96cb5c461098d194", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vtinput-82fefc68f692798b)
[INFO] [stdout] 
[INFO] [stdout] running 81 tests
[INFO] [stdout] test c0::tests::test_backspace ... ok
[INFO] [stdout] test c0::tests::test_ctrl_space ... ok
[INFO] [stdout] test c0::tests::test_ctrl_special_chars ... ok
[INFO] [stdout] test c0::tests::test_ctrl_letters ... ok
[INFO] [stdout] test c0::tests::test_esc ... ok
[INFO] [stdout] test c0::tests::test_tab ... ok
[INFO] [stdout] test c0::tests::test_unsupported_c0 ... ok
[INFO] [stdout] test c0::tests::test_enter ... ok
[INFO] [stdout] test esc::tests::test_alt_backspace ... ok
[INFO] [stdout] test esc::tests::test_alt_ctrl ... ok
[INFO] [stdout] test esc::tests::test_alt_enter_cr ... ok
[INFO] [stdout] test esc::tests::test_alt_enter_lf ... ok
[INFO] [stdout] test esc::tests::test_alt_lowercase ... ok
[INFO] [stdout] test esc::tests::test_alt_tab ... ok
[INFO] [stdout] test esc::tests::test_alt_uppercase ... ok
[INFO] [stdout] test esc::tests::test_esc_delegates_to_alt_key ... ok
[INFO] [stdout] test esc::tests::test_esc_esc ... ok
[INFO] [stdout] test esc::tests::test_esc_with_intermediates ... ok
[INFO] [stdout] test esc::tests_alt_key::test_esc_key_enter_cr ... ok
[INFO] [stdout] test esc::tests_alt_key::test_esc_key_enter_lf ... ok
[INFO] [stdout] test esc::tests_alt_key::test_esc_key_esc ... ok
[INFO] [stdout] test esc::tests_alt_key::test_esc_key_lowercase ... ok
[INFO] [stdout] test esc::tests_alt_key::test_esc_key_tab ... ok
[INFO] [stdout] test event::tests::key_modifiers_display ... ok
[INFO] [stdout] test event::tests::media_keycode_display ... ok
[INFO] [stdout] test event::tests::modifier_keycode_display_other ... ok
[INFO] [stdout] test event::tests::test_base_layout_key ... ok
[INFO] [stdout] test event::tests::test_base_layout_key_equality ... ok
[INFO] [stdout] test event::tests::test_encode_key_event_arrow ... ok
[INFO] [stdout] test event::tests::test_encode_key_event_ctrl_char ... ok
[INFO] [stdout] test event::tests::test_encode_key_event_enter ... ok
[INFO] [stdout] test event::tests::test_base_layout_key_hash ... ok
[INFO] [stdout] test event::tests::test_encode_key_event_f1 ... ok
[INFO] [stdout] test event::tests::test_encode_key_event_f5 ... ok
[INFO] [stdout] test event::tests::test_encode_mouse_event_down ... ok
[INFO] [stdout] test event::tests::test_encode_key_event_arrow_with_modifiers ... ok
[INFO] [stdout] test event::tests::test_encode_mouse_event_up ... ok
[INFO] [stdout] test event::tests::test_encode_mouse_event_scroll ... ok
[INFO] [stdout] test event::tests::test_encode_terminal_event_focus ... ok
[INFO] [stdout] test event::tests::test_encode_terminal_event_paste ... ok
[INFO] [stdout] test event::tests::test_equality ... ok
[INFO] [stdout] test event::tests::test_matches_key_with_base_layout ... ok
[INFO] [stdout] test event::tests::test_encode_key_event_char ... ok
[INFO] [stdout] test parser::tests::test_basic_text_input ... ok
[INFO] [stdout] test parser::tests::test_arrow_key ... ok
[INFO] [stdout] test parser::tests::test_alt_enter ... ok
[INFO] [stdout] test event::tests::test_encode_terminal_event_resize ... ok
[INFO] [stdout] test event::tests::test_matches_key_without_base_layout ... ok
[INFO] [stdout] test parser::tests::test_bracketed_paste_with_csi_sequence ... ok
[INFO] [stdout] test parser::tests::test_bracketed_paste_with_ss3_sequence ... ok
[INFO] [stdout] test parser::tests::test_bracketed_paste_with_newlines ... ok
[INFO] [stdout] test parser::tests::test_complex_sequence_combination ... ok
[INFO] [stdout] test parser::tests::test_bracketed_paste_multiple_chunks ... ok
[INFO] [stdout] test parser::tests::test_cursor_position_report ... ok
[INFO] [stdout] test event::tests::test_hash ... ok
[INFO] [stdout] test event::tests::keycode_display ... ok
[INFO] [stdout] test parser::tests::test_emoji_input ... ok
[INFO] [stdout] test parser::tests::test_device_attributes ... ok
[INFO] [stdout] test event::tests::modifier_keycode_display ... ok
[INFO] [stdout] test parser::tests::test_bracketed_paste_large_content ... ok
[INFO] [stdout] test parser::tests::test_bracketed_paste_with_escape_sequences ... ok
[INFO] [stdout] test parser::tests::test_escape_key_with_idle ... ok
[INFO] [stdout] test parser::tests::test_focus_events ... ok
[INFO] [stdout] test parser::tests::test_idle_resets_incomplete_sequence ... ok
[INFO] [stdout] test parser::tests::test_incomplete_utf8_across_chunks ... ok
[INFO] [stdout] test parser::tests::test_keyboard_enhancement_flags ... ok
[INFO] [stdout] test parser::tests::test_keyboard_enhancement_push ... ok
[INFO] [stdout] test parser::tests::test_bracketed_paste_basic ... ok
[INFO] [stdout] test parser::tests::test_escape_key_followed_by_text ... ok
[INFO] [stdout] test parser::tests::test_keyboard_enhancement_query ... ok
[INFO] [stdout] test parser::tests::test_low_level_csi_event ... ok
[INFO] [stdout] test parser::tests::test_mouse_events ... ok
[INFO] [stdout] test parser::tests::test_vi_startup_sequence ... ok
[INFO] [stdout] test ss::tests::test_parse_ss3_cursor_keys ... ok
[INFO] [stdout] test parser::tests::test_osc_sequences ... ok
[INFO] [stdout] test parser::tests::test_keyboard_enhancement_pop ... ok
[INFO] [stdout] test parser::tests::test_osc_and_keyboard_enhancement ... ok
[INFO] [stdout] test ss::tests::test_parse_ss3_function_keys ... ok
[INFO] [stdout] test ss::tests::test_parse_ss3_home_end ... ok
[INFO] [stdout] test ss::tests::test_parse_ss3_keypad_keys ... ok
[INFO] [stdout] test ss::tests::test_parse_ss3_unrecognized ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 81 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/parser.rs (/opt/rustwide/target/debug/deps/parser-75eb8a5f9f7be777)
[INFO] [stdout] 
[INFO] [stdout] === Running test suite: Keyboard Input ===
[INFO] [stdout] 
[INFO] [stdout]   running "Regular character 'a'" ...
[INFO] [stdout]   running "Regular character 'z'" ...
[INFO] [stdout]   running "Space character" ...
[INFO] [stdout]   running "Enter key" ...
[INFO] [stdout]   running "Tab key" ...
[INFO] [stdout]   running "Ctrl+A" ...
[INFO] [stdout]   running "Ctrl+C" ...
[INFO] [stdout]   running "Ctrl+D" ...
[INFO] [stdout]   running "Escape key" ...
[INFO] [stdout]   running "Alt+a (ESC followed by 'a')" ...
[INFO] [stdout]   running "Alt+z" ...
[INFO] [stdout]   running "Arrow Up (CSI sequence)" ...
[INFO] [stdout]   running "Arrow Down" ...
[INFO] [stdout]   running "Arrow Right" ...
[INFO] [stdout]   running "Arrow Left" ...
[INFO] [stdout]   running "Home key" ...
[INFO] [stdout]   running "End key" ...
[INFO] [stdout]   running "F1 key (SS3 sequence)" ...
[INFO] [stdout]   running "F2 key" ...
[INFO] [stdout]   running "F3 key" ...
[INFO] [stdout]   running "F4 key" ...
[INFO] [stdout]   running "Delete key" ...
[INFO] [stdout]   running "Backspace" ...
[INFO] [stdout]   running "Multiple characters" ...
[INFO] [stdout]   running "Mixed regular and control" ...
[INFO] [stdout]   running "Ctrl+Shift+A" ...
[INFO] [stdout]   running "Ctrl+Alt+Delete" ...
[INFO] [stdout]   running "Alt+Shift+F1" ...
[INFO] [stdout]   running "Ctrl+Alt+Shift+Up" ...
[INFO] [stdout] 
[INFO] [stdout] all tests passed
[INFO] [stdout] 
[INFO] [stdout] === Keyboard Input completed ===
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] === Running test suite: UTF-8 Handling ===
[INFO] [stdout] 
[INFO] [stdout]   running "Lowercase characters (no SHIFT modifier)" ...
[INFO] [stdout]   running "Uppercase characters (SHIFT modifier)" ...
[INFO] [stdout]   running "Mixed case" ...
[INFO] [stdout]   running "Numbers" ...
[INFO] [stdout]   running "Special ASCII characters" ...
[INFO] [stdout]   running "Valid 2-byte UTF-8 (café)" ...
[INFO] [stdout]   running "Valid 3-byte UTF-8 (€100)" ...
[INFO] [stdout]   running "Valid 4-byte UTF-8 (😀)" ...
[INFO] [stdout]   running "Multiple emoji" ...
[INFO] [stdout]   running "Mixed ASCII and UTF-8" ...
[INFO] [stdout]   running "UTF-8 accented characters" ...
[INFO] [stdout]   running "UTF-8 German characters" ...
[INFO] [stdout]   running "UTF-8 Greek characters" ...
[INFO] [stdout]   running "UTF-8 Cyrillic characters" ...
[INFO] [stdout]   running "UTF-8 Chinese characters" ...
[INFO] [stdout]   running "UTF-8 Japanese characters" ...
[INFO] [stdout]   running "UTF-8 with newlines" ...
[INFO] [stdout]   running "Mixed regular and UTF-8" ...
[INFO] [stdout]   running "Invalid UTF-8: start byte 0xFF (invalid in UTF-8)" ...
[INFO] [stdout]   running "Invalid UTF-8: continuation byte 0x80 without start" ...
[INFO] [stdout]   running "Invalid UTF-8: incomplete 2-byte sequence (0xC3 alone)" ...
[INFO] [stdout]   running "Invalid UTF-8: incomplete 3-byte sequence (0xE2 0x82 alone)" ...
[INFO] [stdout]   running "Invalid UTF-8: incomplete 4-byte sequence (0xF0 0x9F 0x98 alone)" ...
[INFO] [stdout]   running "Invalid UTF-8: invalid continuation in 2-byte (0xC3 0x28)" ...
[INFO] [stdout]   running "Invalid UTF-8: overlong encoding (0xC0 0xAF for '/')" ...
[INFO] [stdout]   running "Invalid UTF-8: surrogate half (0xED 0xA0 0x80)" ...
[INFO] [stdout]   running "Mixed valid and invalid UTF-8" ...
[INFO] [stdout]   running "Invalid UTF-8 followed by valid" ...
[INFO] [stdout]   running "Valid UTF-8 followed by invalid" ...
[INFO] [stdout]   running "Multiple invalid bytes in sequence" ...
[INFO] [stdout]   running "Invalid in middle of valid text" ...
[INFO] [stdout] 
[INFO] [stdout] all tests passed
[INFO] [stdout] 
[INFO] [stdout] === UTF-8 Handling completed ===
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] === Running test suite: Bracketed Paste ===
[INFO] [stdout] 
[INFO] [stdout]   running "Simple bracketed paste with ASCII text" ...
[INFO] [stdout]   running "Bracketed paste with UTF-8 (café 😀)" ...
[INFO] [stdout]   running "Bracketed paste with newlines" ...
[INFO] [stdout]   running "Events before and after bracketed paste" ...
[INFO] [stdout]   running "Empty bracketed paste" ...
[INFO] [stdout]   running "Bracketed paste with only whitespace" ...
[INFO] [stdout]   running "Multiple bracketed pastes in sequence" ...
[INFO] [stdout]   running "Bracketed paste end without start" ...
[INFO] [stdout]   running "Multiple consecutive bracketed pastes" ...
[INFO] [stdout]   running "Bracketed paste with special characters" ...
[INFO] [stdout]   running "Bracketed paste with tabs" ...
[INFO] [stdout]   running "Bracketed paste with control characters" ...
[INFO] [stdout]   running "Bracketed paste with backslash and quotes" ...
[INFO] [stdout]   running "Bracketed paste with null bytes" ...
[INFO] [stdout]   running "Long bracketed paste" ...
[INFO] [stdout] 
[INFO] [stdout] all tests passed
[INFO] [stdout] 
[INFO] [stdout] === Bracketed Paste completed ===
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] === Running test suite: Control Keys ===
[INFO] [stdout] 
[INFO] [stdout]   running "Tab key" ...
[INFO] [stdout]   running "Enter key" ...
[INFO] [stdout]   running "Backspace (DEL character)" ...
[INFO] [stdout]   running "Ctrl+Space (null byte)" ...
[INFO] [stdout]   running "Ctrl+A" ...
[INFO] [stdout]   running "Ctrl+B" ...
[INFO] [stdout]   running "Ctrl+C" ...
[INFO] [stdout]   running "Ctrl+D" ...
[INFO] [stdout]   running "Ctrl+E" ...
[INFO] [stdout]   running "Ctrl+F" ...
[INFO] [stdout]   running "Ctrl+G (bell)" ...
[INFO] [stdout]   running "Ctrl+H (backspace)" ...
[INFO] [stdout]   running "Ctrl+I (tab - same as TAB)" ...
[INFO] [stdout]   running "Ctrl+J (line feed)" ...
[INFO] [stdout]   running "Ctrl+K" ...
[INFO] [stdout]   running "Ctrl+L (form feed)" ...
[INFO] [stdout]   running "Ctrl+M (carriage return - becomes Enter)" ...
[INFO] [stdout]   running "Ctrl+N" ...
[INFO] [stdout]   running "Ctrl+O" ...
[INFO] [stdout]   running "Ctrl+P" ...
[INFO] [stdout]   running "Ctrl+Q" ...
[INFO] [stdout]   running "Ctrl+R" ...
[INFO] [stdout]   running "Ctrl+S" ...
[INFO] [stdout]   running "Ctrl+T" ...
[INFO] [stdout]   running "Ctrl+U" ...
[INFO] [stdout]   running "Ctrl+V" ...
[INFO] [stdout]   running "Ctrl+W" ...
[INFO] [stdout]   running "Ctrl+X" ...
[INFO] [stdout]   running "Ctrl+Y" ...
[INFO] [stdout]   running "Ctrl+Z" ...
[INFO] [stdout]   running "Ctrl+[ (same as ESC)" ...
[INFO] [stdout]   running "Ctrl+\\ (FS)" ...
[INFO] [stdout]   running "Ctrl+] (GS)" ...
[INFO] [stdout]   running "Ctrl+^ (RS)" ...
[INFO] [stdout]   running "Ctrl+_ (US)" ...
[INFO] [stdout]   running "ESC ESC" ...
[INFO] [stdout]   running "Alt+[ (not CSI, just ESC + [)" ...
[INFO] [stdout]   running "Multiple control characters in sequence" ...
[INFO] [stdout]   running "Mixed control and regular characters" ...
[INFO] [stdout]   running "Control characters with uppercase" ...
[INFO] [stdout]   running "Newline character" ...
[INFO] [stdout]   running "Carriage return and line feed" ...
[INFO] [stdout]   running "Mixed newlines" ...
[INFO] [stdout]   running "Vertical tab" ...
[INFO] [stdout]   running "Multiple tabs" ...
[INFO] [stdout]   running "Tab separated values" ...
[INFO] [stdout]   running "Null bytes in text" ...
[INFO] [stdout] 
[INFO] [stdout] all tests passed
[INFO] [stdout] 
[INFO] [stdout] === Control Keys completed ===
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] === Running test suite: Alt Keys ===
[INFO] [stdout] 
[INFO] [stdout]   running "Alt+a" ...
[INFO] [stdout]   running "Alt+z" ...
[INFO] [stdout]   running "Alt+A (uppercase)" ...
[INFO] [stdout]   running "Alt+Z (uppercase)" ...
[INFO] [stdout]   running "Alt+0" ...
[INFO] [stdout]   running "Alt+9" ...
[INFO] [stdout]   running "Alt+Space" ...
[INFO] [stdout]   running "Alt+Enter" ...
[INFO] [stdout]   running "Alt+Tab" ...
[INFO] [stdout]   running "Alt+!" ...
[INFO] [stdout]   running "Alt+(" ...
[INFO] [stdout]   running "Alt+)" ...
[INFO] [stdout]   running "Alt+[" ...
[INFO] [stdout]   running "Alt+]" ...
[INFO] [stdout]   running "Alt+/" ...
[INFO] [stdout]   running "Alt+?" ...
[INFO] [stdout]   running "Alt+>" ...
[INFO] [stdout]   running "Alt+<" ...
[INFO] [stdout]   running "Alt+1" ...
[INFO] [stdout]   running "Alt+M" ...
[INFO] [stdout]   running "Alt+N (NOT SS2 in input mode)" ...
[INFO] [stdout]   running "Alt+Backspace" ...
[INFO] [stdout]   running "Alt+ESC" ...
[INFO] [stdout]   running "Alt+intermediate characters (space through /)" ...
[INFO] [stdout]   running "Alt+! - intermediate character" ...
[INFO] [stdout]   running "Alt+\" - intermediate character" ...
[INFO] [stdout]   running "Alt+# - intermediate character" ...
[INFO] [stdout]   running "Alt+$ - intermediate character" ...
[INFO] [stdout]   running "Alt+% - intermediate character" ...
[INFO] [stdout]   running "Alt+& - intermediate character" ...
[INFO] [stdout]   running "Alt+' - intermediate character" ...
[INFO] [stdout]   running "Alt+( - intermediate character" ...
[INFO] [stdout]   running "Alt+) - intermediate character" ...
[INFO] [stdout]   running "Alt+* - intermediate character" ...
[INFO] [stdout]   running "Alt++ - intermediate character" ...
[INFO] [stdout]   running "Alt+, - intermediate character" ...
[INFO] [stdout]   running "Alt+- - intermediate character" ...
[INFO] [stdout]   running "Alt+. - intermediate character" ...
[INFO] [stdout]   running "Alt+/ - intermediate character (last intermediate)" ...
[INFO] [stdout]   running "Multiple Alt+key in sequence" ...
[INFO] [stdout]   running "Alt+key mixed with regular text" ...
[INFO] [stdout]   running "Alt followed by various C0 controls" ...
[INFO] [stdout]   running "Alt+Ctrl+A" ...
[INFO] [stdout]   running "Alt+Ctrl+C" ...
[INFO] [stdout]   running "Alt+Ctrl+Z" ...
[INFO] [stdout]   running "Alt+CAN" ...
[INFO] [stdout]   running "Alt+SUB" ...
[INFO] [stdout]   running "Alt+lowercase letters sequence" ...
[INFO] [stdout]   running "Alt+uppercase letters sequence" ...
[INFO] [stdout]   running "Alt+digits sequence" ...
[INFO] [stdout]   running "Mixed Alt and non-Alt" ...
[INFO] [stdout]   running "Alt+Ctrl combinations" ...
[INFO] [stdout] 
[INFO] [stdout] all tests passed
[INFO] [stdout] 
[INFO] [stdout] === Alt Keys completed ===
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] === Running test suite: Kitty Keyboard Protocol ===
[INFO] [stdout] 
[INFO] [stdout]   running "Basic CSI u encoding - simple key" ...
[INFO] [stdout]   running "Basic CSI u encoding - uppercase A" ...
[INFO] [stdout]   running "CSI u with shift modifier (2 = 1 + 0b1)" ...
[INFO] [stdout]   running "CSI u with alt modifier (3 = 1 + 0b10)" ...
[INFO] [stdout]   running "CSI u with ctrl modifier (5 = 1 + 0b100)" ...
[INFO] [stdout]   running "CSI u with ctrl+shift (6 = 1 + 0b101)" ...
[INFO] [stdout]   running "CSI u with ctrl+alt (7 = 1 + 0b110)" ...
[INFO] [stdout]   running "CSI u with ctrl+alt+shift (8 = 1 + 0b111)" ...
[INFO] [stdout]   running "CSI u with super modifier (9 = 1 + 0b1000)" ...
[INFO] [stdout]   running "CSI u with hyper modifier (17 = 1 + 0b10000)" ...
[INFO] [stdout]   running "CSI u with meta modifier (33 = 1 + 0b100000)" ...
[INFO] [stdout]   running "CSI u with ctrl+super (13 = 1 + 0b1100)" ...
[INFO] [stdout]   running "CSI u with ctrl+alt+shift+super (16 = 1 + 0b1111)" ...
[INFO] [stdout]   running "Escape key with CSI u encoding" ...
[INFO] [stdout]   running "Enter key with CSI u encoding" ...
[INFO] [stdout]   running "Tab key with CSI u encoding" ...
[INFO] [stdout]   running "Backspace with CSI u encoding" ...
[INFO] [stdout]   running "Space with ctrl modifier" ...
[INFO] [stdout]   running "Function key F13" ...
[INFO] [stdout]   running "Function key F14" ...
[INFO] [stdout]   running "Function key F24" ...
[INFO] [stdout]   running "Keypad Left" ...
[INFO] [stdout]   running "Keypad Right" ...
[INFO] [stdout]   running "Keypad Up" ...
[INFO] [stdout]   running "Keypad Down" ...
[INFO] [stdout]   running "Keypad Insert" ...
[INFO] [stdout]   running "Keypad Delete" ...
[INFO] [stdout]   running "Keypad Page Up" ...
[INFO] [stdout]   running "Keypad Page Down" ...
[INFO] [stdout]   running "Keypad Home" ...
[INFO] [stdout]   running "Keypad End" ...
[INFO] [stdout]   running "Keypad 0" ...
[INFO] [stdout]   running "Keypad Enter" ...
[INFO] [stdout]   running "Left Shift key press" ...
[INFO] [stdout]   running "Left Control key press" ...
[INFO] [stdout]   running "Left Alt key press" ...
[INFO] [stdout]   running "Left Super key press" ...
[INFO] [stdout]   running "Right Shift key press" ...
[INFO] [stdout]   running "Right Control key press" ...
[INFO] [stdout]   running "CSI u with alternate key - shifted a becomes A" ...
[INFO] [stdout]   running "CSI u with base layout key - Cyrillic layout" ...
[INFO] [stdout]   running "CSI u with both shifted and base layout keys" ...
[INFO] [stdout]   running "Press event explicitly specified" ...
[INFO] [stdout]   running "Repeat event" ...
[INFO] [stdout]   running "Release event" ...
[INFO] [stdout]   running "Shift+a press event" ...
[INFO] [stdout]   running "Shift+a repeat event" ...
[INFO] [stdout]   running "Shift+a release event" ...
[INFO] [stdout]   running "Ctrl+c release event" ...
[INFO] [stdout]   running "Keypad Left press with modifiers" ...
[INFO] [stdout]   running "Keypad Left repeat with modifiers" ...
[INFO] [stdout]   running "Keypad Left release with modifiers" ...
[INFO] [stdout]   running "CSI u with text as codepoints - shift+a produces A (65)" ...
[INFO] [stdout]   running "CSI u with text - option+a produces å (229)" ...
[INFO] [stdout]   running "CSI u with multiple text codepoints" ...
[INFO] [stdout]   running "Key with no keycode but text (composition)" ...
[INFO] [stdout]   running "Caps Lock on (modifier bit 64 = 0b1000000, so 65 = 1 + 64)" ...
[INFO] [stdout]   running "Num Lock on (modifier bit 128 = 0b10000000, so 129 = 1 + 128)" ...
[INFO] [stdout]   running "Caps Lock + Shift (1 + 64 + 1 = 66)" ...
[INFO] [stdout]   running "Ctrl+Shift+A with caps lock (1 + 4 + 1 + 64 = 70)" ...
[INFO] [stdout]   running "Legacy compatibility - Ctrl+Shift+A before disambiguation" ...
[INFO] [stdout]   running "F1 with shift" ...
[INFO] [stdout]   running "F5 with ctrl+alt" ...
[INFO] [stdout]   running "Keypad 5 with num lock" ...
[INFO] [stdout]   running "Media Play key" ...
[INFO] [stdout]   running "Media Pause key" ...
[INFO] [stdout]   running "Volume Up key" ...
[INFO] [stdout]   running "Volume Down key" ...
[INFO] [stdout]   running "Mute key" ...
[INFO] [stdout]   running "Left Shift press with shift modifier set" ...
[INFO] [stdout]   running "Left Control press with ctrl modifier set" ...
[INFO] [stdout]   running "Left Control release with ctrl modifier cleared" ...
[INFO] [stdout]   running "Right Alt press with alt modifier set" ...
[INFO] [stdout]   running "Ctrl+[ (Escape) with CSI u" ...
[INFO] [stdout]   running "Ctrl+Space (null)" ...
[INFO] [stdout]   running "Alt+Escape" ...
[INFO] [stdout]   running "Super+a (Windows/Command key)" ...
[INFO] [stdout]   running "Hyper+Meta+a" ...
[INFO] [stdout]   running "All modifiers except locks on 'a' (1+1+2+4+8+16+32=64, so 65)" ...
[INFO] [stdout]   running "Shift+Tab (BackTab)" ...
[INFO] [stdout]   running "Ctrl+BackTab" ...
[INFO] [stdout]   running "Escape key press event" ...
[INFO] [stdout]   running "Escape key release event" ...
[INFO] [stdout]   running "ISO Level3 Shift key" ...
[INFO] [stdout]   running "ISO Level5 Shift key" ...
[INFO] [stdout]   running "Caps Lock key press" ...
[INFO] [stdout]   running "Scroll Lock key" ...
[INFO] [stdout]   running "Num Lock key" ...
[INFO] [stdout]   running "Print Screen key" ...
[INFO] [stdout]   running "Pause key" ...
[INFO] [stdout]   running "Menu key" ...
[INFO] [stdout]   running "F15" ...
[INFO] [stdout]   running "F20" ...
[INFO] [stdout]   running "F35" ...
[INFO] [stdout]   running "Keypad Begin" ...
[INFO] [stdout]   running "Keypad Decimal (period)" ...
[INFO] [stdout]   running "Keypad Divide (slash)" ...
[INFO] [stdout]   running "Keypad Multiply (asterisk)" ...
[INFO] [stdout]   running "Keypad Subtract (minus)" ...
[INFO] [stdout]   running "Keypad Add (plus)" ...
[INFO] [stdout]   running "Keypad Equal" ...
[INFO] [stdout]   running "Keypad Separator (comma)" ...
[INFO] [stdout]   running "Multiple modifier keys - Ctrl+Alt+Shift+Super+a (1+1+2+4+8=16, so 17)" ...
[INFO] [stdout]   running "Test uppercase letter Z with shift" ...
[INFO] [stdout]   running "Test number 1 with shift (becomes !)" ...
[INFO] [stdout]   running "Test equals with shift (becomes +)" ...
[INFO] [stdout]   running "Ctrl+Shift+equals (for ctrl+plus shortcut matching)" ...
[INFO] [stdout]   running "Alt+[ (not CSI, using CSI u encoding)" ...
[INFO] [stdout]   running "Alt+]" ...
[INFO] [stdout]   running "Ctrl+\\ (FS)" ...
[INFO] [stdout]   running "Ctrl+]" ...
[INFO] [stdout]   running "Press '/' with no modifiers" ...
[INFO] [stdout]   running "Ctrl+/" ...
[INFO] [stdout]   running "Shift+/ (becomes ?)" ...
[INFO] [stdout]   running "Space bar press event" ...
[INFO] [stdout]   running "Space bar release event" ...
[INFO] [stdout]   running "Enter with alt" ...
[INFO] [stdout]   running "Backspace with ctrl" ...
[INFO] [stdout]   running "Tab with alt" ...
[INFO] [stdout]   running "Test digit 0" ...
[INFO] [stdout]   running "Test digit 9" ...
[INFO] [stdout]   running "Semicolon key" ...
[INFO] [stdout]   running "Semicolon with shift (colon)" ...
[INFO] [stdout]   running "Comma key" ...
[INFO] [stdout]   running "Comma with shift (less-than)" ...
[INFO] [stdout]   running "Period key" ...
[INFO] [stdout]   running "Period with shift (greater-than)" ...
[INFO] [stdout]   running "Backtick key" ...
[INFO] [stdout]   running "Backtick with shift (tilde)" ...
[INFO] [stdout]   running "Minus key" ...
[INFO] [stdout]   running "Minus with shift (underscore)" ...
[INFO] [stdout]   running "Left bracket" ...
[INFO] [stdout]   running "Left bracket with shift (left brace)" ...
[INFO] [stdout]   running "Right bracket" ...
[INFO] [stdout]   running "Right bracket with shift (right brace)" ...
[INFO] [stdout]   running "Backslash" ...
[INFO] [stdout]   running "Backslash with shift (pipe)" ...
[INFO] [stdout]   running "Single quote" ...
[INFO] [stdout]   running "Single quote with shift (double quote)" ...
[INFO] [stdout]   running "Protocol negotiation - Query current flags" ...
[INFO] [stdout]   running "Protocol negotiation - Push flags (disambiguate only)" ...
[INFO] [stdout]   running "Protocol negotiation - Push flags (all enhancements)" ...
[INFO] [stdout]   running "Protocol negotiation - Pop keyboard enhancement flags" ...
[INFO] [stdout]   running "Protocol negotiation - Pop two levels" ...
[INFO] [stdout]   running "Legacy F1 with modifiers (SS3 P)" ...
[INFO] [stdout]   running "Legacy F2 (SS3 Q)" ...
[INFO] [stdout]   running "Legacy F3 (SS3 R)" ...
[INFO] [stdout]   running "Legacy F4 (SS3 S)" ...
[INFO] [stdout]   running "Legacy F1 with shift (CSI 1;2P)" ...
[INFO] [stdout]   running "Legacy F2 with ctrl (CSI 1;5Q)" ...
[INFO] [stdout]   running "Legacy Home (CSI H)" ...
[INFO] [stdout]   running "Legacy End (CSI F)" ...
[INFO] [stdout]   running "Legacy Home with shift (CSI 1;2H)" ...
[INFO] [stdout]   running "Legacy Page Up with ctrl (CSI 5;5~)" ...
[INFO] [stdout]   running "Legacy Insert (CSI 2~)" ...
[INFO] [stdout]   running "Legacy Delete with alt (CSI 3;3~)" ...
[INFO] [stdout]   running "Escape sequence for Ctrl+I (same as Tab)" ...
[INFO] [stdout]   running "Escape sequence for Ctrl+M (same as Enter)" ...
[INFO] [stdout]   running "Multiple keys in sequence" ...
[INFO] [stdout]   running "Modifier key followed by regular key" ...
[INFO] [stdout]   running "Repeat events for same key" ...
[INFO] [stdout]   running "Base layout key matching - Cyrillic С maps to Latin c" ...
[INFO] [stdout]   running "Base layout key matching - Greek α maps to Latin a" ...
[INFO] [stdout]   running "Base layout key matching - Hebrew ש maps to Latin a" ...
[INFO] [stdout]   running "Base layout key with shift - Cyrillic С (uppercase)" ...
[INFO] [stdout]   running "Base layout for number keys - French keyboard 1 with shift (!)" ...
[INFO] [stdout]   running "Base layout for special keys - German keyboard Z key (maps to Y in QWERTY)" ...
[INFO] [stdout]   running "Base layout with function key - keypad key mapping" ...
[INFO] [stdout]   running "Complex case - alt+ctrl+shift with base layout" ...
[INFO] [stdout]   running "Base layout only (empty shifted field) - Cyrillic в maps to Latin d" ...
[INFO] [stdout]   running "Base layout with no modifiers" ...
[INFO] [stdout]   running "Multiple alternates with all fields populated" ...
[INFO] [stdout]   running "Text as Codepoints - Basic single character" ...
[INFO] [stdout]   running "Text as Codepoints - Shift+a with text \"A\"" ...
[INFO] [stdout]   running "Text as Codepoints - Multiple codepoints (e.g., composed character)" ...
[INFO] [stdout]   running "Text as Codepoints - Emoji" ...
[INFO] [stdout]   running "Text as Codepoints - Empty text field" ...
[INFO] [stdout]   running "Text as Codepoints - Ctrl+a with text (C0 control)" ...
[INFO] [stdout]   running "Text as Codepoints - Complex: base layout + text" ...
[INFO] [stdout]   running "Text as Codepoints - Multiple characters in text" ...
[INFO] [stdout]   running "Protocol Negotiation - Query keyboard enhancement flags" ...
[INFO] [stdout]   running "Protocol Negotiation - Response with flags (disambiguate escape codes)" ...
[INFO] [stdout]   running "Protocol Negotiation - Response with flags (disambiguate + report event types)" ...
[INFO] [stdout]   running "Protocol Negotiation - Response with flags (all enhancements)" ...
[INFO] [stdout]   running "Protocol Negotiation - Push flags (disambiguate escape codes)" ...
[INFO] [stdout]   running "Protocol Negotiation - Push flags (all enhancements)" ...
[INFO] [stdout]   running "Protocol Negotiation - Push default flags (empty)" ...
[INFO] [stdout]   running "Protocol Negotiation - Pop one entry" ...
[INFO] [stdout]   running "Protocol Negotiation - Pop two entries" ...
[INFO] [stdout]   running "Protocol Negotiation - Pop five entries" ...
[INFO] [stdout] 
[INFO] [stderr] 
[INFO] [stderr] thread 'main' (106) panicked at crates/vtinput/tests/common/mod.rs:149:13:
[INFO] [stderr] assertion failed: `(left == right)`
[INFO] [stderr] 
[INFO] [stderr] [1mDiff[0m [31m< left[0m / [32mright >[0m :
[INFO] [stderr]  # Kitty Keyboard Protocol
[INFO] [stderr]  ## Basic CSI u encoding - simple key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Basic CSI u encoding - uppercase A
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[65u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:A)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with shift modifier (2 = 1 + 0b1)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with alt modifier (3 = 1 + 0b10)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:alt-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with ctrl modifier (5 = 1 + 0b100)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with ctrl+shift (6 = 1 + 0b101)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;6u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-shift-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with ctrl+alt (7 = 1 + 0b110)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;7u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-alt-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with ctrl+alt+shift (8 = 1 + 0b111)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;8u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-alt-shift-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with super modifier (9 = 1 + 0b1000)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;9u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:super-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with hyper modifier (17 = 1 + 0b10000)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;17u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:hyper-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with meta modifier (33 = 1 + 0b100000)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;33u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:meta-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with ctrl+super (13 = 1 + 0b1100)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;13u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-super-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with ctrl+alt+shift+super (16 = 1 + 0b1111)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;16u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-alt-shift-super-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Escape key with CSI u encoding
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[27u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:esc)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Enter key with CSI u encoding
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[13u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:enter)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Tab key with CSI u encoding
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[9u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:tab)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Backspace with CSI u encoding
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[127u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:backspace)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Space with ctrl modifier
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[32;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-space)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Function key F13
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57376u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f13)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Function key F14
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57377u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f14)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Function key F24
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57387u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f24)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Left
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57417u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:left:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Right
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57418u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:right:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Up
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57419u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:up:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Down
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57420u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:down:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Insert
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57425u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:insert:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Delete
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57426u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:delete:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Page Up
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57421u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:pageup:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Page Down
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57422u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:pagedown:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Home
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57423u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:home:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad End
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57424u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:end:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad 0
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57399u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:0:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Enter
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57414u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:enter:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Left Shift key press
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57441u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-modifier:Left Shift)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Left Control key press
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57442u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr] [31m<key(press:ctrl-modifier:Left C[0m[1;48;5;52;31mon[0m[31mtr[0m[1;48;5;52;31mo[0m[31ml)[0m
[INFO] [stderr] [32m>key(press:ctrl-modifier:Left Ctrl)[0m
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Left Alt key press
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57443u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr] [31m<key(press:alt-modifier:Left [0m[1;48;5;52;31mOp[0m[31mt[0m[1;48;5;52;31mion[0m[31m)[0m
[INFO] [stderr] [32m>key(press:alt-modifier:Left [0m[1;48;5;22;32mAl[0m[32mt)[0m
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Left Super key press
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57444u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr] [31m<key(press:super-modifier:Left [0m[1;48;5;52;31mCommand[0m[31m)[0m
[INFO] [stderr] [32m>key(press:super-modifier:Left [0m[1;48;5;22;32mSuper[0m[32m)[0m
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Right Shift key press
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57447u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-modifier:Right Shift)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Right Control key press
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57448u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr] [31m<key(press:ctrl-modifier:Right C[0m[1;48;5;52;31mon[0m[31mtr[0m[1;48;5;52;31mo[0m[31ml)[0m
[INFO] [stderr] [32m>key(press:ctrl-modifier:Right Ctrl)[0m
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with alternate key - shifted a becomes A
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97:65;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:A)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with base layout key - Cyrillic layout
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1057::99;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-С:base=c)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with both shifted and base layout keys
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97:65:99;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:A:base=c)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Press event explicitly specified
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;1:1u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Repeat event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;1:2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(repeat:a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Release event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;1:3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(release:a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Shift+a press event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2:1u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Shift+a repeat event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2:2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(repeat:shift-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Shift+a release event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2:3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(release:shift-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Ctrl+c release event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[99;5:3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(release:ctrl-c)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Left press with modifiers
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57417;5:1u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-left:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Left repeat with modifiers
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57417;5:2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(repeat:ctrl-left:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Left release with modifiers
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57417;5:3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(release:ctrl-left:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with text as codepoints - shift+a produces A (65)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2;;65u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-a:text="A")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with text - option+a produces å (229)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;;;229u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:a:text="å")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## CSI u with multiple text codepoints
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;;;65:66u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:a:text="AB")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Key with no keycode but text (composition)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[0;;;229u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press: :text="å")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Caps Lock on (modifier bit 64 = 0b1000000, so 65 = 1 + 64)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;65u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:a:caps_lock)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Num Lock on (modifier bit 128 = 0b10000000, so 129 = 1 + 128)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57399;129u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:0:keypad:num_lock)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Caps Lock + Shift (1 + 64 + 1 = 66)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;66u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-a:caps_lock)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Ctrl+Shift+A with caps lock (1 + 4 + 1 + 64 = 70)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;70u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-shift-a:caps_lock)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy compatibility - Ctrl+Shift+A before disambiguation
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[65;6u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-shift-A)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## F1 with shift
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57344;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## F5 with ctrl+alt
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57348;7u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-alt-)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad 5 with num lock
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57404;129u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:5:keypad:num_lock)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Media Play key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57428u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:media:Play)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Media Pause key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57429u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:media:Pause)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Volume Up key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57439u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:media:Raise Volume)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Volume Down key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57438u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:media:Lower Volume)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Mute key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57440u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:media:Mute Volume)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Left Shift press with shift modifier set
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57441;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-modifier:Left Shift)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Left Control press with ctrl modifier set
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57442;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr] [31m<key(press:ctrl-modifier:Left C[0m[1;48;5;52;31mon[0m[31mtr[0m[1;48;5;52;31mo[0m[31ml)[0m
[INFO] [stderr] [32m>key(press:ctrl-modifier:Left Ctrl)[0m
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Left Control release with ctrl modifier cleared
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57442;1:3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr] [31m<key(release:ctrl-modifier:Left C[0m[1;48;5;52;31mon[0m[31mtr[0m[1;48;5;52;31mo[0m[31ml)[0m
[INFO] [stderr] [32m>key(release:ctrl-modifier:Left Ctrl)[0m
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Right Alt press with alt modifier set
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57449;3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr] [31m<key(press:alt-modifier:Right [0m[1;48;5;52;31mOp[0m[31mt[0m[1;48;5;52;31mion[0m[31m)[0m
[INFO] [stderr] [32m>key(press:alt-modifier:Right [0m[1;48;5;22;32mAl[0m[32mt)[0m
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Ctrl+[ (Escape) with CSI u
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[27;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-esc)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Ctrl+Space (null)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[32;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-space)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Alt+Escape
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[27;3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:alt-esc)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Super+a (Windows/Command key)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;9u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:super-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Hyper+Meta+a
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;49u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:hyper-meta-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## All modifiers except locks on 'a' (1+1+2+4+8+16+32=64, so 65)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;64u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-alt-shift-super-hyper-meta-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Shift+Tab (BackTab)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[9;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-backtab)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Ctrl+BackTab
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[9;6u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-shift-backtab)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Escape key press event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[27;1:1u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:esc)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Escape key release event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[27;1:3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(release:esc)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## ISO Level3 Shift key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57453u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:modifier:Iso Level 3 Shift)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## ISO Level5 Shift key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57454u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:modifier:Iso Level 5 Shift)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Caps Lock key press
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57358u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:capslock)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Scroll Lock key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57359u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:scrolllock)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Num Lock key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57360u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:numlock)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Print Screen key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57361u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:printscreen)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Pause key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57362u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:pause)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Menu key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57363u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:menu)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## F15
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57378u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f15)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## F20
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57383u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f20)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## F35
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57398u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f35)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Begin
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57427u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:keypadbegin:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Decimal (period)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57409u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:.:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Divide (slash)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57410u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:/:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Multiply (asterisk)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57411u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:*:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Subtract (minus)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57412u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:-:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Add (plus)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57413u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:+:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Equal
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57415u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:=:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Keypad Separator (comma)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57416u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:,:keypad)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Multiple modifier keys - Ctrl+Alt+Shift+Super+a (1+1+2+4+8=16, so 17)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;17u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:hyper-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Test uppercase letter Z with shift
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[122:90;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:Z)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Test number 1 with shift (becomes !)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[49:33;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:!)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Test equals with shift (becomes +)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[61:43;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:+)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Ctrl+Shift+equals (for ctrl+plus shortcut matching)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[61;6u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-shift-=)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Alt+[ (not CSI, using CSI u encoding)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[91;3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:alt-[)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Alt+]
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[93;3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:alt-])
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Ctrl+\ (FS)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[92;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-\)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Ctrl+]
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[93;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-])
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Press '/' with no modifiers
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[47u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:/)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Ctrl+/
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[47;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-/)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Shift+/ (becomes ?)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[47:63;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:?)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Space bar press event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[32;1:1u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:space)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Space bar release event
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[32;1:3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(release:space)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Enter with alt
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[13;3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:alt-enter)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Backspace with ctrl
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[127;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-backspace)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Tab with alt
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[9;3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:alt-tab)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Test digit 0
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[48u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:0)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Test digit 9
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:9)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Semicolon key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[59u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:;)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Semicolon with shift (colon)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[59:58;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press::)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Comma key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[44u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:,)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Comma with shift (less-than)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[44:60;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:<)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Period key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[46u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:.)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Period with shift (greater-than)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[46:62;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:>)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Backtick key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[96u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:`)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Backtick with shift (tilde)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[96:126;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:~)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Minus key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[45u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:-)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Minus with shift (underscore)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[45:95;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:_)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Left bracket
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[91u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:[)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Left bracket with shift (left brace)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[91:123;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:{)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Right bracket
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[93u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:])
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Right bracket with shift (right brace)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[93:125;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:})
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Backslash
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[92u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:\)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Backslash with shift (pipe)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[92:124;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:|)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Single quote
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[39u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:')
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Single quote with shift (double quote)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[39:34;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol negotiation - Query current flags
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[?u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsQuery
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol negotiation - Push flags (disambiguate only)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[>1u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPush(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES))
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol negotiation - Push flags (all enhancements)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[>31u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPush(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES | REPORT_EVENT_TYPES | REPORT_ALTERNATE_KEYS | REPORT_ALL_KEYS_AS_ESCAPE_CODES | REPORT_ASSOCIATED_TEXT))
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol negotiation - Pop keyboard enhancement flags
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[<u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPop(1)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol negotiation - Pop two levels
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[<2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPop(2)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy F1 with modifiers (SS3 P)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>OP
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f1)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy F2 (SS3 Q)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>OQ
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f2)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy F3 (SS3 R)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>OR
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f3)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy F4 (SS3 S)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>OS
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:f4)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy F1 with shift (CSI 1;2P)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1;2P
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-f1)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy F2 with ctrl (CSI 1;5Q)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1;5Q
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-f2)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy Home (CSI H)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[H
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:home)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy End (CSI F)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[F
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:end)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy Home with shift (CSI 1;2H)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1;2H
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-home)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy Page Up with ctrl (CSI 5;5~)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[5;5~
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-pageup)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy Insert (CSI 2~)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[2~
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:insert)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Legacy Delete with alt (CSI 3;3~)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[3;3~
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:alt-delete)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Escape sequence for Ctrl+I (same as Tab)
[INFO] [stderr]  ```
[INFO] [stderr]  <HT>
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:tab)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Escape sequence for Ctrl+M (same as Enter)
[INFO] [stderr]  ```
[INFO] [stderr]  <CR>
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:enter)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Multiple keys in sequence
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97u<ESC>[98u<ESC>[99u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:a)
[INFO] [stderr]  key(press:b)
[INFO] [stderr]  key(press:c)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Modifier key followed by regular key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57441;2u<ESC>[97;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-modifier:Left Shift)
[INFO] [stderr]  key(press:shift-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Repeat events for same key
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;1:1u<ESC>[97;1:2u<ESC>[97;1:2u<ESC>[97;1:3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:a)
[INFO] [stderr]  key(repeat:a)
[INFO] [stderr]  key(repeat:a)
[INFO] [stderr]  key(release:a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Base layout key matching - Cyrillic С maps to Latin c
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1057::99;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-С:base=c)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Base layout key matching - Greek α maps to Latin a
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[945::97;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-α:base=a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Base layout key matching - Hebrew ש maps to Latin a
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1513::97;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-ש:base=a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Base layout key with shift - Cyrillic С (uppercase)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1057:1057:99;6u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-С:base=c)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Base layout for number keys - French keyboard 1 with shift (!)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[49:33:49;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:!:base=1)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Base layout for special keys - German keyboard Z key (maps to Y in QWERTY)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[122::121;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-z:base=y)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Base layout with function key - keypad key mapping
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[57399::48u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:0:keypad:base=0)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Complex case - alt+ctrl+shift with base layout
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1057:1057:99;8u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-alt-С:base=c)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Base layout only (empty shifted field) - Cyrillic в maps to Latin d
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1074::100;5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-в:base=d)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Base layout with no modifiers
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1057::99u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:С:base=c)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Multiple alternates with all fields populated
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97:65:99;2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:A:base=c)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Text as Codepoints - Basic single character
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2;;65u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-a:text="A")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Text as Codepoints - Shift+a with text "A"
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2;;65u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-a:text="A")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Text as Codepoints - Multiple codepoints (e.g., composed character)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;5;;195:161u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-a:text="Ã¡")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Text as Codepoints - Emoji
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2;;128512u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-a:text="😀")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Text as Codepoints - Empty text field
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2;;u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-a)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Text as Codepoints - Ctrl+a with text (C0 control)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;5;;1u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:ctrl-a:text="\u{1}")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Text as Codepoints - Complex: base layout + text
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[1057::99;2;;1057u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-С:base=c:text="С")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Text as Codepoints - Multiple characters in text
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[97;2;;65:66:67u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  key(press:shift-a:text="ABC")
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Query keyboard enhancement flags
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[?u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsQuery
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Response with flags (disambiguate escape codes)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[?1u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlags(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES))
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Response with flags (disambiguate + report event types)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[?3u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlags(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES | REPORT_EVENT_TYPES))
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Response with flags (all enhancements)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[?31u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlags(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES | REPORT_EVENT_TYPES | REPORT_ALTERNATE_KEYS | REPORT_ALL_KEYS_AS_ESCAPE_CODES | REPORT_ASSOCIATED_TEXT))
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Push flags (disambiguate escape codes)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[>1u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPush(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES))
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Push flags (all enhancements)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[>31u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPush(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES | REPORT_EVENT_TYPES | REPORT_ALTERNATE_KEYS | REPORT_ALL_KEYS_AS_ESCAPE_CODES | REPORT_ASSOCIATED_TEXT))
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Push default flags (empty)
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[>u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPush(None)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Pop one entry
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[<u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPop(1)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Pop two entries
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[<2u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPop(2)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  ## Protocol Negotiation - Pop five entries
[INFO] [stderr]  ```
[INFO] [stderr]  <ESC>[<5u
[INFO] [stderr]  ```
[INFO] [stderr]  
[INFO] [stderr]  ```
[INFO] [stderr]  KeyboardEnhancementFlagsPop(5)
[INFO] [stderr]  ```
[INFO] [stderr]  ---
[INFO] [stderr]  
[INFO] [stderr] 
[INFO] [stderr] 
[INFO] [stderr] stack backtrace:
[INFO] [stderr]    0:     0x5bdacd2ec672 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stderr]    1:     0x5bdacd2ec672 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stderr]    2:     0x5bdacd2ec672 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stderr]    3:     0x5bdacd2ec672 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stderr]    4:     0x5bdacd2ff11a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stderr]    5:     0x5bdacd2ff11a - core[27de1724e4349be2]::fmt::write
[INFO] [stderr]    6:     0x5bdacd2f10d6 - std[3b51380354919863]::io::default_write_fmt::<std[3b51380354919863]::sys::stdio::unix::Stderr>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stderr]    7:     0x5bdacd2f10d6 - <std[3b51380354919863]::sys::stdio::unix::Stderr as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stderr]    8:     0x5bdacd2d6baf - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stderr]    9:     0x5bdacd2d6baf - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stderr]   10:     0x5bdacd2e8161 - std[3b51380354919863]::panicking::default_hook
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:319:9
[INFO] [stderr]   11:     0x5bdacd2e831b - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:825:13
[INFO] [stderr]   12:     0x5bdacd2d6c68 - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:698:13
[INFO] [stderr]   13:     0x5bdacd2cc099 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stderr]   14:     0x5bdacd2d750d - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stderr]   15:     0x5bdacd2ff82c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stderr]   16:     0x5bdacd27faf5 - parser[e28bf55bcb8530d0]::common::run_tests
[INFO] [stderr]                                at /opt/rustwide/workdir/crates/vtinput/tests/common/mod.rs:149:13
[INFO] [stderr]   17:     0x5bdacd28538f - parser[e28bf55bcb8530d0]::main
[INFO] [stderr]                                at /opt/rustwide/workdir/crates/vtinput/tests/parser.rs:73:9
[INFO] [stderr]   18:     0x5bdacd286c0b - <fn() as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   19:     0x5bdacd2839de - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stderr]   20:     0x5bdacd284061 - std[3b51380354919863]::rt::lang_start::<()>::{closure#0}
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/rt.rs:206:18
[INFO] [stderr]   21:     0x5bdacd2e7426 - <&dyn core[27de1724e4349be2]::ops::function::Fn<(), Output = i32> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::panic::unwind_safe::RefUnwindSafe as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:287:21
[INFO] [stderr]   22:     0x5bdacd2e7426 - std[3b51380354919863]::panicking::catch_unwind::do_call::<&dyn core[27de1724e4349be2]::ops::function::Fn<(), Output = i32> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::panic::unwind_safe::RefUnwindSafe, i32>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stderr]   23:     0x5bdacd2e7426 - std[3b51380354919863]::panicking::catch_unwind::<i32, &dyn core[27de1724e4349be2]::ops::function::Fn<(), Output = i32> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::panic::unwind_safe::RefUnwindSafe>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stderr]   24:     0x5bdacd2e7426 - std[3b51380354919863]::panic::catch_unwind::<&dyn core[27de1724e4349be2]::ops::function::Fn<(), Output = i32> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::panic::unwind_safe::RefUnwindSafe, i32>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stderr]   25:     0x5bdacd2e7426 - std[3b51380354919863]::rt::lang_start_internal::{closure#0}
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/rt.rs:175:24
[INFO] [stderr]   26:     0x5bdacd2e7426 - std[3b51380354919863]::panicking::catch_unwind::do_call::<std[3b51380354919863]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stderr]   27:     0x5bdacd2e7426 - std[3b51380354919863]::panicking::catch_unwind::<isize, std[3b51380354919863]::rt::lang_start_internal::{closure#0}>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stderr]   28:     0x5bdacd2e7426 - std[3b51380354919863]::panic::catch_unwind::<std[3b51380354919863]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stderr]   29:     0x5bdacd2e7426 - std[3b51380354919863]::rt::lang_start_internal
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/rt.rs:171:5
[INFO] [stderr]   30:     0x5bdacd2837f7 - std[3b51380354919863]::rt::lang_start::<()>
[INFO] [stderr]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/rt.rs:205:5
[INFO] [stderr]   31:     0x5bdacd286e4e - main
[INFO] [stderr]   32:     0x7eeb720891ca - <unknown>
[INFO] [stderr]   33:     0x7eeb7208928b - __libc_start_main
[INFO] [stderr]   34:     0x5bdacd26bb55 - _start
[INFO] [stderr]   35:                0x0 - <unknown>
[INFO] [stderr] error: test failed, to rerun pass `--test parser`
[INFO] running `Command { std: "docker" "inspect" "d25dbdec383eef94b7339e95e225f4a37d5df83be687499c96cb5c461098d194", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d25dbdec383eef94b7339e95e225f4a37d5df83be687499c96cb5c461098d194", kill_on_drop: false }`
[INFO] [stdout] d25dbdec383eef94b7339e95e225f4a37d5df83be687499c96cb5c461098d194
