diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/rust/jsparagus-parser/src/unicode_data.rs | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/jsparagus-parser/src/unicode_data.rs')
-rw-r--r-- | third_party/rust/jsparagus-parser/src/unicode_data.rs | 2117 |
1 files changed, 2117 insertions, 0 deletions
diff --git a/third_party/rust/jsparagus-parser/src/unicode_data.rs b/third_party/rust/jsparagus-parser/src/unicode_data.rs new file mode 100644 index 0000000000..7b2acb773b --- /dev/null +++ b/third_party/rust/jsparagus-parser/src/unicode_data.rs @@ -0,0 +1,2117 @@ +// Generated by update_unicode.py DO NOT MODIFY +// Unicode version: 14.0.0 + +const FLAG_ID_START: u8 = 1; +const FLAG_ID_CONTINUE: u8 = 2; + +pub struct CharInfo { + flags: u8, +} + +impl CharInfo { + pub fn is_id_start(&self) -> bool { + self.flags & FLAG_ID_START != 0 + } + + pub fn is_id_continue(&self) -> bool { + self.flags & FLAG_ID_CONTINUE != 0 + } +} + +pub const CHAR_INFO_TABLE: &'static [CharInfo] = &[ + CharInfo { flags: 0 }, + CharInfo { flags: 2 }, + CharInfo { flags: 3 }, +]; + +pub const INDEX1: &'static [u8] = &[ + 0, 0, 0, 1, 2, 3, 2, 4, 0, 0, 5, 6, 7, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 10, 11, 0, 12, 12, 12, 12, 12, 12, 12, 13, 14, 7, 15, 7, + 7, 7, 7, 16, 7, 7, 7, 7, 7, 7, 7, 7, 17, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 7, 18, 7, 7, 19, 20, + 12, 21, 22, 7, 23, 24, 0, 25, 7, 7, 26, 12, 27, 28, 7, 7, 7, 7, 7, 29, 30, 31, 0, 32, 7, 12, + 33, 7, 7, 7, 7, 7, 34, 35, 36, 7, 26, 37, 7, 38, 39, 0, 7, 40, 4, 7, 41, 42, 7, 7, 43, 12, 44, + 12, 45, 7, 7, 46, 12, 47, 48, 2, 49, 50, 51, 52, 53, 54, 48, 55, 56, 50, 51, 57, 58, 59, 60, + 61, 62, 15, 51, 63, 64, 65, 48, 66, 67, 50, 51, 63, 68, 69, 48, 70, 71, 72, 73, 74, 75, 76, 60, + 0, 77, 78, 51, 79, 80, 81, 48, 0, 82, 78, 51, 83, 80, 84, 48, 85, 86, 78, 7, 87, 88, 89, 48, + 90, 91, 92, 7, 93, 94, 95, 60, 96, 2, 7, 7, 97, 98, 1, 0, 0, 99, 7, 100, 101, 102, 103, 0, 0, + 65, 104, 1, 105, 106, 7, 107, 20, 108, 109, 12, 110, 111, 0, 0, 0, 7, 7, 26, 112, 1, 113, 114, + 115, 116, 117, 7, 7, 118, 7, 7, 119, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 120, 121, 7, 7, 120, 7, 7, 122, 123, 8, 7, 7, 7, 123, 7, 7, 7, 124, 125, 126, 7, 0, 7, 7, 7, + 7, 7, 127, 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 128, 7, 2, 4, 7, 7, 7, 7, 129, 19, 7, 130, 7, 131, 7, 132, 133, + 134, 7, 7, 7, 135, 12, 136, 1, 0, 137, 1, 7, 7, 7, 7, 7, 19, 7, 7, 138, 7, 7, 7, 7, 139, 7, + 140, 141, 141, 60, 7, 142, 143, 7, 7, 144, 7, 145, 25, 0, 0, 7, 146, 7, 7, 7, 147, 12, 148, 1, + 1, 149, 21, 150, 0, 0, 0, 151, 7, 7, 135, 152, 1, 153, 154, 155, 7, 156, 36, 7, 7, 34, 154, 7, + 7, 135, 157, 158, 36, 7, 142, 19, 7, 7, 159, 0, 160, 161, 162, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 12, 12, 12, 12, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 127, 7, 7, 127, 163, 7, + 142, 7, 7, 7, 164, 165, 166, 107, 165, 0, 0, 0, 167, 168, 169, 0, 170, 0, 107, 0, 0, 0, 110, + 171, 168, 172, 173, 174, 175, 176, 0, 7, 7, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 177, 178, 7, 7, 118, 7, 7, 7, 179, 167, 7, 180, 181, 181, 181, 181, 12, 12, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 182, 0, 183, 184, 2, 7, 7, 7, 7, 185, 2, 7, 7, 7, 7, 119, 186, 7, 7, 2, 7, 7, 7, 7, 140, 0, 7, + 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 107, 0, 0, 0, 0, 7, 7, 142, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 107, 7, 187, 0, 7, 7, 188, 189, 7, 190, 7, 7, 7, 7, 7, 126, 0, 191, 192, + 7, 7, 7, 7, 7, 193, 7, 7, 7, 4, 194, 0, 192, 195, 7, 196, 0, 7, 7, 7, 197, 198, 7, 7, 135, 199, + 1, 12, 200, 36, 7, 201, 7, 202, 154, 7, 107, 45, 7, 7, 203, 204, 1, 205, 206, 7, 7, 207, 208, + 209, 1, 7, 210, 7, 7, 7, 211, 212, 213, 26, 214, 215, 216, 181, 7, 7, 119, 145, 7, 7, 7, 7, 7, + 7, 7, 217, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 197, 7, 218, 7, 7, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 142, 7, 7, 7, 7, 7, 7, 145, 0, 0, 180, 219, 51, 220, + 221, 7, 7, 7, 7, 7, 7, 10, 0, 222, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 142, 0, 7, 7, 7, 7, 192, 7, 7, 223, 0, 0, 144, 12, 0, 12, 224, 225, 0, 0, 226, 7, 7, 7, 7, + 7, 7, 7, 107, 0, 1, 2, 3, 2, 4, 227, 7, 7, 7, 7, 140, 228, 229, 0, 0, +]; + +pub const INDEX2: &'static [u8] = &[ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 2, 2, 2, 2, 0, 2, + 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 0, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, + 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, + 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, + 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 0, 2, + 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, + 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, + 0, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 1, 0, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, + 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 2, 2, 0, 2, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 2, 2, 2, 0, 0, 2, 0, 0, + 2, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 1, 2, 1, 1, + 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 2, 0, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, + 2, 2, 2, 2, 2, 0, 2, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, + 1, 1, 1, 1, 1, 0, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, + 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, + 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, + 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, + 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, + 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, + 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, + 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 1, + 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 0, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, + 2, 2, 0, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, + 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, + 0, 0, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, + 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, + 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, +]; + +const SHIFT: usize = 4; + +pub fn char_info(c: char) -> &'static CharInfo { + let code = c as usize; + let index = INDEX1[code >> SHIFT] as usize; + let index = INDEX2[(index << SHIFT) + (code & ((1 << SHIFT) - 1))] as usize; + + &CHAR_INFO_TABLE[index] +} + +pub const IS_ID_START_TABLE: &'static [bool] = &[ + false, false, false, false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, false, false, false, + true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, + false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, + false, false, +]; + +pub const IS_ID_CONTINUE_TABLE: &'static [bool] = &[ + false, false, false, false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, true, true, true, true, true, + true, true, true, true, true, false, false, false, false, false, false, false, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, false, false, false, false, true, false, true, + true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, false, false, false, false, false, +]; + +pub fn is_id_start_non_bmp(c: char) -> bool { + if c >= '\u{10000}' && c <= '\u{1000B}' { + return true; + } + if c >= '\u{1000D}' && c <= '\u{10026}' { + return true; + } + if c >= '\u{10028}' && c <= '\u{1003A}' { + return true; + } + if c >= '\u{1003C}' && c <= '\u{1003D}' { + return true; + } + if c >= '\u{1003F}' && c <= '\u{1004D}' { + return true; + } + if c >= '\u{10050}' && c <= '\u{1005D}' { + return true; + } + if c >= '\u{10080}' && c <= '\u{100FA}' { + return true; + } + if c >= '\u{10140}' && c <= '\u{10174}' { + return true; + } + if c >= '\u{10280}' && c <= '\u{1029C}' { + return true; + } + if c >= '\u{102A0}' && c <= '\u{102D0}' { + return true; + } + if c >= '\u{10300}' && c <= '\u{1031F}' { + return true; + } + if c >= '\u{1032D}' && c <= '\u{1034A}' { + return true; + } + if c >= '\u{10350}' && c <= '\u{10375}' { + return true; + } + if c >= '\u{10380}' && c <= '\u{1039D}' { + return true; + } + if c >= '\u{103A0}' && c <= '\u{103C3}' { + return true; + } + if c >= '\u{103C8}' && c <= '\u{103CF}' { + return true; + } + if c >= '\u{103D1}' && c <= '\u{103D5}' { + return true; + } + if c >= '\u{10400}' && c <= '\u{1049D}' { + return true; + } + if c >= '\u{104B0}' && c <= '\u{104D3}' { + return true; + } + if c >= '\u{104D8}' && c <= '\u{104FB}' { + return true; + } + if c >= '\u{10500}' && c <= '\u{10527}' { + return true; + } + if c >= '\u{10530}' && c <= '\u{10563}' { + return true; + } + if c >= '\u{10570}' && c <= '\u{1057A}' { + return true; + } + if c >= '\u{1057C}' && c <= '\u{1058A}' { + return true; + } + if c >= '\u{1058C}' && c <= '\u{10592}' { + return true; + } + if c >= '\u{10594}' && c <= '\u{10595}' { + return true; + } + if c >= '\u{10597}' && c <= '\u{105A1}' { + return true; + } + if c >= '\u{105A3}' && c <= '\u{105B1}' { + return true; + } + if c >= '\u{105B3}' && c <= '\u{105B9}' { + return true; + } + if c >= '\u{105BB}' && c <= '\u{105BC}' { + return true; + } + if c >= '\u{10600}' && c <= '\u{10736}' { + return true; + } + if c >= '\u{10740}' && c <= '\u{10755}' { + return true; + } + if c >= '\u{10760}' && c <= '\u{10767}' { + return true; + } + if c >= '\u{10780}' && c <= '\u{10785}' { + return true; + } + if c >= '\u{10787}' && c <= '\u{107B0}' { + return true; + } + if c >= '\u{107B2}' && c <= '\u{107BA}' { + return true; + } + if c >= '\u{10800}' && c <= '\u{10805}' { + return true; + } + if c >= '\u{10808}' && c <= '\u{10808}' { + return true; + } + if c >= '\u{1080A}' && c <= '\u{10835}' { + return true; + } + if c >= '\u{10837}' && c <= '\u{10838}' { + return true; + } + if c >= '\u{1083C}' && c <= '\u{1083C}' { + return true; + } + if c >= '\u{1083F}' && c <= '\u{10855}' { + return true; + } + if c >= '\u{10860}' && c <= '\u{10876}' { + return true; + } + if c >= '\u{10880}' && c <= '\u{1089E}' { + return true; + } + if c >= '\u{108E0}' && c <= '\u{108F2}' { + return true; + } + if c >= '\u{108F4}' && c <= '\u{108F5}' { + return true; + } + if c >= '\u{10900}' && c <= '\u{10915}' { + return true; + } + if c >= '\u{10920}' && c <= '\u{10939}' { + return true; + } + if c >= '\u{10980}' && c <= '\u{109B7}' { + return true; + } + if c >= '\u{109BE}' && c <= '\u{109BF}' { + return true; + } + if c >= '\u{10A00}' && c <= '\u{10A00}' { + return true; + } + if c >= '\u{10A10}' && c <= '\u{10A13}' { + return true; + } + if c >= '\u{10A15}' && c <= '\u{10A17}' { + return true; + } + if c >= '\u{10A19}' && c <= '\u{10A35}' { + return true; + } + if c >= '\u{10A60}' && c <= '\u{10A7C}' { + return true; + } + if c >= '\u{10A80}' && c <= '\u{10A9C}' { + return true; + } + if c >= '\u{10AC0}' && c <= '\u{10AC7}' { + return true; + } + if c >= '\u{10AC9}' && c <= '\u{10AE4}' { + return true; + } + if c >= '\u{10B00}' && c <= '\u{10B35}' { + return true; + } + if c >= '\u{10B40}' && c <= '\u{10B55}' { + return true; + } + if c >= '\u{10B60}' && c <= '\u{10B72}' { + return true; + } + if c >= '\u{10B80}' && c <= '\u{10B91}' { + return true; + } + if c >= '\u{10C00}' && c <= '\u{10C48}' { + return true; + } + if c >= '\u{10C80}' && c <= '\u{10CB2}' { + return true; + } + if c >= '\u{10CC0}' && c <= '\u{10CF2}' { + return true; + } + if c >= '\u{10D00}' && c <= '\u{10D23}' { + return true; + } + if c >= '\u{10E80}' && c <= '\u{10EA9}' { + return true; + } + if c >= '\u{10EB0}' && c <= '\u{10EB1}' { + return true; + } + if c >= '\u{10F00}' && c <= '\u{10F1C}' { + return true; + } + if c >= '\u{10F27}' && c <= '\u{10F27}' { + return true; + } + if c >= '\u{10F30}' && c <= '\u{10F45}' { + return true; + } + if c >= '\u{10F70}' && c <= '\u{10F81}' { + return true; + } + if c >= '\u{10FB0}' && c <= '\u{10FC4}' { + return true; + } + if c >= '\u{10FE0}' && c <= '\u{10FF6}' { + return true; + } + if c >= '\u{11003}' && c <= '\u{11037}' { + return true; + } + if c >= '\u{11071}' && c <= '\u{11072}' { + return true; + } + if c >= '\u{11075}' && c <= '\u{11075}' { + return true; + } + if c >= '\u{11083}' && c <= '\u{110AF}' { + return true; + } + if c >= '\u{110D0}' && c <= '\u{110E8}' { + return true; + } + if c >= '\u{11103}' && c <= '\u{11126}' { + return true; + } + if c >= '\u{11144}' && c <= '\u{11144}' { + return true; + } + if c >= '\u{11147}' && c <= '\u{11147}' { + return true; + } + if c >= '\u{11150}' && c <= '\u{11172}' { + return true; + } + if c >= '\u{11176}' && c <= '\u{11176}' { + return true; + } + if c >= '\u{11183}' && c <= '\u{111B2}' { + return true; + } + if c >= '\u{111C1}' && c <= '\u{111C4}' { + return true; + } + if c >= '\u{111DA}' && c <= '\u{111DA}' { + return true; + } + if c >= '\u{111DC}' && c <= '\u{111DC}' { + return true; + } + if c >= '\u{11200}' && c <= '\u{11211}' { + return true; + } + if c >= '\u{11213}' && c <= '\u{1122B}' { + return true; + } + if c >= '\u{11280}' && c <= '\u{11286}' { + return true; + } + if c >= '\u{11288}' && c <= '\u{11288}' { + return true; + } + if c >= '\u{1128A}' && c <= '\u{1128D}' { + return true; + } + if c >= '\u{1128F}' && c <= '\u{1129D}' { + return true; + } + if c >= '\u{1129F}' && c <= '\u{112A8}' { + return true; + } + if c >= '\u{112B0}' && c <= '\u{112DE}' { + return true; + } + if c >= '\u{11305}' && c <= '\u{1130C}' { + return true; + } + if c >= '\u{1130F}' && c <= '\u{11310}' { + return true; + } + if c >= '\u{11313}' && c <= '\u{11328}' { + return true; + } + if c >= '\u{1132A}' && c <= '\u{11330}' { + return true; + } + if c >= '\u{11332}' && c <= '\u{11333}' { + return true; + } + if c >= '\u{11335}' && c <= '\u{11339}' { + return true; + } + if c >= '\u{1133D}' && c <= '\u{1133D}' { + return true; + } + if c >= '\u{11350}' && c <= '\u{11350}' { + return true; + } + if c >= '\u{1135D}' && c <= '\u{11361}' { + return true; + } + if c >= '\u{11400}' && c <= '\u{11434}' { + return true; + } + if c >= '\u{11447}' && c <= '\u{1144A}' { + return true; + } + if c >= '\u{1145F}' && c <= '\u{11461}' { + return true; + } + if c >= '\u{11480}' && c <= '\u{114AF}' { + return true; + } + if c >= '\u{114C4}' && c <= '\u{114C5}' { + return true; + } + if c >= '\u{114C7}' && c <= '\u{114C7}' { + return true; + } + if c >= '\u{11580}' && c <= '\u{115AE}' { + return true; + } + if c >= '\u{115D8}' && c <= '\u{115DB}' { + return true; + } + if c >= '\u{11600}' && c <= '\u{1162F}' { + return true; + } + if c >= '\u{11644}' && c <= '\u{11644}' { + return true; + } + if c >= '\u{11680}' && c <= '\u{116AA}' { + return true; + } + if c >= '\u{116B8}' && c <= '\u{116B8}' { + return true; + } + if c >= '\u{11700}' && c <= '\u{1171A}' { + return true; + } + if c >= '\u{11740}' && c <= '\u{11746}' { + return true; + } + if c >= '\u{11800}' && c <= '\u{1182B}' { + return true; + } + if c >= '\u{118A0}' && c <= '\u{118DF}' { + return true; + } + if c >= '\u{118FF}' && c <= '\u{11906}' { + return true; + } + if c >= '\u{11909}' && c <= '\u{11909}' { + return true; + } + if c >= '\u{1190C}' && c <= '\u{11913}' { + return true; + } + if c >= '\u{11915}' && c <= '\u{11916}' { + return true; + } + if c >= '\u{11918}' && c <= '\u{1192F}' { + return true; + } + if c >= '\u{1193F}' && c <= '\u{1193F}' { + return true; + } + if c >= '\u{11941}' && c <= '\u{11941}' { + return true; + } + if c >= '\u{119A0}' && c <= '\u{119A7}' { + return true; + } + if c >= '\u{119AA}' && c <= '\u{119D0}' { + return true; + } + if c >= '\u{119E1}' && c <= '\u{119E1}' { + return true; + } + if c >= '\u{119E3}' && c <= '\u{119E3}' { + return true; + } + if c >= '\u{11A00}' && c <= '\u{11A00}' { + return true; + } + if c >= '\u{11A0B}' && c <= '\u{11A32}' { + return true; + } + if c >= '\u{11A3A}' && c <= '\u{11A3A}' { + return true; + } + if c >= '\u{11A50}' && c <= '\u{11A50}' { + return true; + } + if c >= '\u{11A5C}' && c <= '\u{11A89}' { + return true; + } + if c >= '\u{11A9D}' && c <= '\u{11A9D}' { + return true; + } + if c >= '\u{11AB0}' && c <= '\u{11AF8}' { + return true; + } + if c >= '\u{11C00}' && c <= '\u{11C08}' { + return true; + } + if c >= '\u{11C0A}' && c <= '\u{11C2E}' { + return true; + } + if c >= '\u{11C40}' && c <= '\u{11C40}' { + return true; + } + if c >= '\u{11C72}' && c <= '\u{11C8F}' { + return true; + } + if c >= '\u{11D00}' && c <= '\u{11D06}' { + return true; + } + if c >= '\u{11D08}' && c <= '\u{11D09}' { + return true; + } + if c >= '\u{11D0B}' && c <= '\u{11D30}' { + return true; + } + if c >= '\u{11D46}' && c <= '\u{11D46}' { + return true; + } + if c >= '\u{11D60}' && c <= '\u{11D65}' { + return true; + } + if c >= '\u{11D67}' && c <= '\u{11D68}' { + return true; + } + if c >= '\u{11D6A}' && c <= '\u{11D89}' { + return true; + } + if c >= '\u{11D98}' && c <= '\u{11D98}' { + return true; + } + if c >= '\u{11EE0}' && c <= '\u{11EF2}' { + return true; + } + if c >= '\u{11FB0}' && c <= '\u{11FB0}' { + return true; + } + if c >= '\u{12000}' && c <= '\u{12399}' { + return true; + } + if c >= '\u{12400}' && c <= '\u{1246E}' { + return true; + } + if c >= '\u{12480}' && c <= '\u{12543}' { + return true; + } + if c >= '\u{12F90}' && c <= '\u{12FF0}' { + return true; + } + if c >= '\u{13000}' && c <= '\u{1342E}' { + return true; + } + if c >= '\u{14400}' && c <= '\u{14646}' { + return true; + } + if c >= '\u{16800}' && c <= '\u{16A38}' { + return true; + } + if c >= '\u{16A40}' && c <= '\u{16A5E}' { + return true; + } + if c >= '\u{16A70}' && c <= '\u{16ABE}' { + return true; + } + if c >= '\u{16AD0}' && c <= '\u{16AED}' { + return true; + } + if c >= '\u{16B00}' && c <= '\u{16B2F}' { + return true; + } + if c >= '\u{16B40}' && c <= '\u{16B43}' { + return true; + } + if c >= '\u{16B63}' && c <= '\u{16B77}' { + return true; + } + if c >= '\u{16B7D}' && c <= '\u{16B8F}' { + return true; + } + if c >= '\u{16E40}' && c <= '\u{16E7F}' { + return true; + } + if c >= '\u{16F00}' && c <= '\u{16F4A}' { + return true; + } + if c >= '\u{16F50}' && c <= '\u{16F50}' { + return true; + } + if c >= '\u{16F93}' && c <= '\u{16F9F}' { + return true; + } + if c >= '\u{16FE0}' && c <= '\u{16FE1}' { + return true; + } + if c >= '\u{16FE3}' && c <= '\u{16FE3}' { + return true; + } + if c >= '\u{17000}' && c <= '\u{187F7}' { + return true; + } + if c >= '\u{18800}' && c <= '\u{18CD5}' { + return true; + } + if c >= '\u{18D00}' && c <= '\u{18D08}' { + return true; + } + if c >= '\u{1AFF0}' && c <= '\u{1AFF3}' { + return true; + } + if c >= '\u{1AFF5}' && c <= '\u{1AFFB}' { + return true; + } + if c >= '\u{1AFFD}' && c <= '\u{1AFFE}' { + return true; + } + if c >= '\u{1B000}' && c <= '\u{1B122}' { + return true; + } + if c >= '\u{1B150}' && c <= '\u{1B152}' { + return true; + } + if c >= '\u{1B164}' && c <= '\u{1B167}' { + return true; + } + if c >= '\u{1B170}' && c <= '\u{1B2FB}' { + return true; + } + if c >= '\u{1BC00}' && c <= '\u{1BC6A}' { + return true; + } + if c >= '\u{1BC70}' && c <= '\u{1BC7C}' { + return true; + } + if c >= '\u{1BC80}' && c <= '\u{1BC88}' { + return true; + } + if c >= '\u{1BC90}' && c <= '\u{1BC99}' { + return true; + } + if c >= '\u{1D400}' && c <= '\u{1D454}' { + return true; + } + if c >= '\u{1D456}' && c <= '\u{1D49C}' { + return true; + } + if c >= '\u{1D49E}' && c <= '\u{1D49F}' { + return true; + } + if c >= '\u{1D4A2}' && c <= '\u{1D4A2}' { + return true; + } + if c >= '\u{1D4A5}' && c <= '\u{1D4A6}' { + return true; + } + if c >= '\u{1D4A9}' && c <= '\u{1D4AC}' { + return true; + } + if c >= '\u{1D4AE}' && c <= '\u{1D4B9}' { + return true; + } + if c >= '\u{1D4BB}' && c <= '\u{1D4BB}' { + return true; + } + if c >= '\u{1D4BD}' && c <= '\u{1D4C3}' { + return true; + } + if c >= '\u{1D4C5}' && c <= '\u{1D505}' { + return true; + } + if c >= '\u{1D507}' && c <= '\u{1D50A}' { + return true; + } + if c >= '\u{1D50D}' && c <= '\u{1D514}' { + return true; + } + if c >= '\u{1D516}' && c <= '\u{1D51C}' { + return true; + } + if c >= '\u{1D51E}' && c <= '\u{1D539}' { + return true; + } + if c >= '\u{1D53B}' && c <= '\u{1D53E}' { + return true; + } + if c >= '\u{1D540}' && c <= '\u{1D544}' { + return true; + } + if c >= '\u{1D546}' && c <= '\u{1D546}' { + return true; + } + if c >= '\u{1D54A}' && c <= '\u{1D550}' { + return true; + } + if c >= '\u{1D552}' && c <= '\u{1D6A5}' { + return true; + } + if c >= '\u{1D6A8}' && c <= '\u{1D6C0}' { + return true; + } + if c >= '\u{1D6C2}' && c <= '\u{1D6DA}' { + return true; + } + if c >= '\u{1D6DC}' && c <= '\u{1D6FA}' { + return true; + } + if c >= '\u{1D6FC}' && c <= '\u{1D714}' { + return true; + } + if c >= '\u{1D716}' && c <= '\u{1D734}' { + return true; + } + if c >= '\u{1D736}' && c <= '\u{1D74E}' { + return true; + } + if c >= '\u{1D750}' && c <= '\u{1D76E}' { + return true; + } + if c >= '\u{1D770}' && c <= '\u{1D788}' { + return true; + } + if c >= '\u{1D78A}' && c <= '\u{1D7A8}' { + return true; + } + if c >= '\u{1D7AA}' && c <= '\u{1D7C2}' { + return true; + } + if c >= '\u{1D7C4}' && c <= '\u{1D7CB}' { + return true; + } + if c >= '\u{1DF00}' && c <= '\u{1DF1E}' { + return true; + } + if c >= '\u{1E100}' && c <= '\u{1E12C}' { + return true; + } + if c >= '\u{1E137}' && c <= '\u{1E13D}' { + return true; + } + if c >= '\u{1E14E}' && c <= '\u{1E14E}' { + return true; + } + if c >= '\u{1E290}' && c <= '\u{1E2AD}' { + return true; + } + if c >= '\u{1E2C0}' && c <= '\u{1E2EB}' { + return true; + } + if c >= '\u{1E7E0}' && c <= '\u{1E7E6}' { + return true; + } + if c >= '\u{1E7E8}' && c <= '\u{1E7EB}' { + return true; + } + if c >= '\u{1E7ED}' && c <= '\u{1E7EE}' { + return true; + } + if c >= '\u{1E7F0}' && c <= '\u{1E7FE}' { + return true; + } + if c >= '\u{1E800}' && c <= '\u{1E8C4}' { + return true; + } + if c >= '\u{1E900}' && c <= '\u{1E943}' { + return true; + } + if c >= '\u{1E94B}' && c <= '\u{1E94B}' { + return true; + } + if c >= '\u{1EE00}' && c <= '\u{1EE03}' { + return true; + } + if c >= '\u{1EE05}' && c <= '\u{1EE1F}' { + return true; + } + if c >= '\u{1EE21}' && c <= '\u{1EE22}' { + return true; + } + if c >= '\u{1EE24}' && c <= '\u{1EE24}' { + return true; + } + if c >= '\u{1EE27}' && c <= '\u{1EE27}' { + return true; + } + if c >= '\u{1EE29}' && c <= '\u{1EE32}' { + return true; + } + if c >= '\u{1EE34}' && c <= '\u{1EE37}' { + return true; + } + if c >= '\u{1EE39}' && c <= '\u{1EE39}' { + return true; + } + if c >= '\u{1EE3B}' && c <= '\u{1EE3B}' { + return true; + } + if c >= '\u{1EE42}' && c <= '\u{1EE42}' { + return true; + } + if c >= '\u{1EE47}' && c <= '\u{1EE47}' { + return true; + } + if c >= '\u{1EE49}' && c <= '\u{1EE49}' { + return true; + } + if c >= '\u{1EE4B}' && c <= '\u{1EE4B}' { + return true; + } + if c >= '\u{1EE4D}' && c <= '\u{1EE4F}' { + return true; + } + if c >= '\u{1EE51}' && c <= '\u{1EE52}' { + return true; + } + if c >= '\u{1EE54}' && c <= '\u{1EE54}' { + return true; + } + if c >= '\u{1EE57}' && c <= '\u{1EE57}' { + return true; + } + if c >= '\u{1EE59}' && c <= '\u{1EE59}' { + return true; + } + if c >= '\u{1EE5B}' && c <= '\u{1EE5B}' { + return true; + } + if c >= '\u{1EE5D}' && c <= '\u{1EE5D}' { + return true; + } + if c >= '\u{1EE5F}' && c <= '\u{1EE5F}' { + return true; + } + if c >= '\u{1EE61}' && c <= '\u{1EE62}' { + return true; + } + if c >= '\u{1EE64}' && c <= '\u{1EE64}' { + return true; + } + if c >= '\u{1EE67}' && c <= '\u{1EE6A}' { + return true; + } + if c >= '\u{1EE6C}' && c <= '\u{1EE72}' { + return true; + } + if c >= '\u{1EE74}' && c <= '\u{1EE77}' { + return true; + } + if c >= '\u{1EE79}' && c <= '\u{1EE7C}' { + return true; + } + if c >= '\u{1EE7E}' && c <= '\u{1EE7E}' { + return true; + } + if c >= '\u{1EE80}' && c <= '\u{1EE89}' { + return true; + } + if c >= '\u{1EE8B}' && c <= '\u{1EE9B}' { + return true; + } + if c >= '\u{1EEA1}' && c <= '\u{1EEA3}' { + return true; + } + if c >= '\u{1EEA5}' && c <= '\u{1EEA9}' { + return true; + } + if c >= '\u{1EEAB}' && c <= '\u{1EEBB}' { + return true; + } + if c >= '\u{20000}' && c <= '\u{2A6DF}' { + return true; + } + if c >= '\u{2A700}' && c <= '\u{2B738}' { + return true; + } + if c >= '\u{2B740}' && c <= '\u{2B81D}' { + return true; + } + if c >= '\u{2B820}' && c <= '\u{2CEA1}' { + return true; + } + if c >= '\u{2CEB0}' && c <= '\u{2EBE0}' { + return true; + } + if c >= '\u{2F800}' && c <= '\u{2FA1D}' { + return true; + } + if c >= '\u{30000}' && c <= '\u{3134A}' { + return true; + } + false +} + +pub fn is_id_continue_non_bmp(c: char) -> bool { + if c >= '\u{10000}' && c <= '\u{1000B}' { + return true; + } + if c >= '\u{1000D}' && c <= '\u{10026}' { + return true; + } + if c >= '\u{10028}' && c <= '\u{1003A}' { + return true; + } + if c >= '\u{1003C}' && c <= '\u{1003D}' { + return true; + } + if c >= '\u{1003F}' && c <= '\u{1004D}' { + return true; + } + if c >= '\u{10050}' && c <= '\u{1005D}' { + return true; + } + if c >= '\u{10080}' && c <= '\u{100FA}' { + return true; + } + if c >= '\u{10140}' && c <= '\u{10174}' { + return true; + } + if c >= '\u{101FD}' && c <= '\u{101FD}' { + return true; + } + if c >= '\u{10280}' && c <= '\u{1029C}' { + return true; + } + if c >= '\u{102A0}' && c <= '\u{102D0}' { + return true; + } + if c >= '\u{102E0}' && c <= '\u{102E0}' { + return true; + } + if c >= '\u{10300}' && c <= '\u{1031F}' { + return true; + } + if c >= '\u{1032D}' && c <= '\u{1034A}' { + return true; + } + if c >= '\u{10350}' && c <= '\u{1037A}' { + return true; + } + if c >= '\u{10380}' && c <= '\u{1039D}' { + return true; + } + if c >= '\u{103A0}' && c <= '\u{103C3}' { + return true; + } + if c >= '\u{103C8}' && c <= '\u{103CF}' { + return true; + } + if c >= '\u{103D1}' && c <= '\u{103D5}' { + return true; + } + if c >= '\u{10400}' && c <= '\u{1049D}' { + return true; + } + if c >= '\u{104A0}' && c <= '\u{104A9}' { + return true; + } + if c >= '\u{104B0}' && c <= '\u{104D3}' { + return true; + } + if c >= '\u{104D8}' && c <= '\u{104FB}' { + return true; + } + if c >= '\u{10500}' && c <= '\u{10527}' { + return true; + } + if c >= '\u{10530}' && c <= '\u{10563}' { + return true; + } + if c >= '\u{10570}' && c <= '\u{1057A}' { + return true; + } + if c >= '\u{1057C}' && c <= '\u{1058A}' { + return true; + } + if c >= '\u{1058C}' && c <= '\u{10592}' { + return true; + } + if c >= '\u{10594}' && c <= '\u{10595}' { + return true; + } + if c >= '\u{10597}' && c <= '\u{105A1}' { + return true; + } + if c >= '\u{105A3}' && c <= '\u{105B1}' { + return true; + } + if c >= '\u{105B3}' && c <= '\u{105B9}' { + return true; + } + if c >= '\u{105BB}' && c <= '\u{105BC}' { + return true; + } + if c >= '\u{10600}' && c <= '\u{10736}' { + return true; + } + if c >= '\u{10740}' && c <= '\u{10755}' { + return true; + } + if c >= '\u{10760}' && c <= '\u{10767}' { + return true; + } + if c >= '\u{10780}' && c <= '\u{10785}' { + return true; + } + if c >= '\u{10787}' && c <= '\u{107B0}' { + return true; + } + if c >= '\u{107B2}' && c <= '\u{107BA}' { + return true; + } + if c >= '\u{10800}' && c <= '\u{10805}' { + return true; + } + if c >= '\u{10808}' && c <= '\u{10808}' { + return true; + } + if c >= '\u{1080A}' && c <= '\u{10835}' { + return true; + } + if c >= '\u{10837}' && c <= '\u{10838}' { + return true; + } + if c >= '\u{1083C}' && c <= '\u{1083C}' { + return true; + } + if c >= '\u{1083F}' && c <= '\u{10855}' { + return true; + } + if c >= '\u{10860}' && c <= '\u{10876}' { + return true; + } + if c >= '\u{10880}' && c <= '\u{1089E}' { + return true; + } + if c >= '\u{108E0}' && c <= '\u{108F2}' { + return true; + } + if c >= '\u{108F4}' && c <= '\u{108F5}' { + return true; + } + if c >= '\u{10900}' && c <= '\u{10915}' { + return true; + } + if c >= '\u{10920}' && c <= '\u{10939}' { + return true; + } + if c >= '\u{10980}' && c <= '\u{109B7}' { + return true; + } + if c >= '\u{109BE}' && c <= '\u{109BF}' { + return true; + } + if c >= '\u{10A00}' && c <= '\u{10A03}' { + return true; + } + if c >= '\u{10A05}' && c <= '\u{10A06}' { + return true; + } + if c >= '\u{10A0C}' && c <= '\u{10A13}' { + return true; + } + if c >= '\u{10A15}' && c <= '\u{10A17}' { + return true; + } + if c >= '\u{10A19}' && c <= '\u{10A35}' { + return true; + } + if c >= '\u{10A38}' && c <= '\u{10A3A}' { + return true; + } + if c >= '\u{10A3F}' && c <= '\u{10A3F}' { + return true; + } + if c >= '\u{10A60}' && c <= '\u{10A7C}' { + return true; + } + if c >= '\u{10A80}' && c <= '\u{10A9C}' { + return true; + } + if c >= '\u{10AC0}' && c <= '\u{10AC7}' { + return true; + } + if c >= '\u{10AC9}' && c <= '\u{10AE6}' { + return true; + } + if c >= '\u{10B00}' && c <= '\u{10B35}' { + return true; + } + if c >= '\u{10B40}' && c <= '\u{10B55}' { + return true; + } + if c >= '\u{10B60}' && c <= '\u{10B72}' { + return true; + } + if c >= '\u{10B80}' && c <= '\u{10B91}' { + return true; + } + if c >= '\u{10C00}' && c <= '\u{10C48}' { + return true; + } + if c >= '\u{10C80}' && c <= '\u{10CB2}' { + return true; + } + if c >= '\u{10CC0}' && c <= '\u{10CF2}' { + return true; + } + if c >= '\u{10D00}' && c <= '\u{10D27}' { + return true; + } + if c >= '\u{10D30}' && c <= '\u{10D39}' { + return true; + } + if c >= '\u{10E80}' && c <= '\u{10EA9}' { + return true; + } + if c >= '\u{10EAB}' && c <= '\u{10EAC}' { + return true; + } + if c >= '\u{10EB0}' && c <= '\u{10EB1}' { + return true; + } + if c >= '\u{10F00}' && c <= '\u{10F1C}' { + return true; + } + if c >= '\u{10F27}' && c <= '\u{10F27}' { + return true; + } + if c >= '\u{10F30}' && c <= '\u{10F50}' { + return true; + } + if c >= '\u{10F70}' && c <= '\u{10F85}' { + return true; + } + if c >= '\u{10FB0}' && c <= '\u{10FC4}' { + return true; + } + if c >= '\u{10FE0}' && c <= '\u{10FF6}' { + return true; + } + if c >= '\u{11000}' && c <= '\u{11046}' { + return true; + } + if c >= '\u{11066}' && c <= '\u{11075}' { + return true; + } + if c >= '\u{1107F}' && c <= '\u{110BA}' { + return true; + } + if c >= '\u{110C2}' && c <= '\u{110C2}' { + return true; + } + if c >= '\u{110D0}' && c <= '\u{110E8}' { + return true; + } + if c >= '\u{110F0}' && c <= '\u{110F9}' { + return true; + } + if c >= '\u{11100}' && c <= '\u{11134}' { + return true; + } + if c >= '\u{11136}' && c <= '\u{1113F}' { + return true; + } + if c >= '\u{11144}' && c <= '\u{11147}' { + return true; + } + if c >= '\u{11150}' && c <= '\u{11173}' { + return true; + } + if c >= '\u{11176}' && c <= '\u{11176}' { + return true; + } + if c >= '\u{11180}' && c <= '\u{111C4}' { + return true; + } + if c >= '\u{111C9}' && c <= '\u{111CC}' { + return true; + } + if c >= '\u{111CE}' && c <= '\u{111DA}' { + return true; + } + if c >= '\u{111DC}' && c <= '\u{111DC}' { + return true; + } + if c >= '\u{11200}' && c <= '\u{11211}' { + return true; + } + if c >= '\u{11213}' && c <= '\u{11237}' { + return true; + } + if c >= '\u{1123E}' && c <= '\u{1123E}' { + return true; + } + if c >= '\u{11280}' && c <= '\u{11286}' { + return true; + } + if c >= '\u{11288}' && c <= '\u{11288}' { + return true; + } + if c >= '\u{1128A}' && c <= '\u{1128D}' { + return true; + } + if c >= '\u{1128F}' && c <= '\u{1129D}' { + return true; + } + if c >= '\u{1129F}' && c <= '\u{112A8}' { + return true; + } + if c >= '\u{112B0}' && c <= '\u{112EA}' { + return true; + } + if c >= '\u{112F0}' && c <= '\u{112F9}' { + return true; + } + if c >= '\u{11300}' && c <= '\u{11303}' { + return true; + } + if c >= '\u{11305}' && c <= '\u{1130C}' { + return true; + } + if c >= '\u{1130F}' && c <= '\u{11310}' { + return true; + } + if c >= '\u{11313}' && c <= '\u{11328}' { + return true; + } + if c >= '\u{1132A}' && c <= '\u{11330}' { + return true; + } + if c >= '\u{11332}' && c <= '\u{11333}' { + return true; + } + if c >= '\u{11335}' && c <= '\u{11339}' { + return true; + } + if c >= '\u{1133B}' && c <= '\u{11344}' { + return true; + } + if c >= '\u{11347}' && c <= '\u{11348}' { + return true; + } + if c >= '\u{1134B}' && c <= '\u{1134D}' { + return true; + } + if c >= '\u{11350}' && c <= '\u{11350}' { + return true; + } + if c >= '\u{11357}' && c <= '\u{11357}' { + return true; + } + if c >= '\u{1135D}' && c <= '\u{11363}' { + return true; + } + if c >= '\u{11366}' && c <= '\u{1136C}' { + return true; + } + if c >= '\u{11370}' && c <= '\u{11374}' { + return true; + } + if c >= '\u{11400}' && c <= '\u{1144A}' { + return true; + } + if c >= '\u{11450}' && c <= '\u{11459}' { + return true; + } + if c >= '\u{1145E}' && c <= '\u{11461}' { + return true; + } + if c >= '\u{11480}' && c <= '\u{114C5}' { + return true; + } + if c >= '\u{114C7}' && c <= '\u{114C7}' { + return true; + } + if c >= '\u{114D0}' && c <= '\u{114D9}' { + return true; + } + if c >= '\u{11580}' && c <= '\u{115B5}' { + return true; + } + if c >= '\u{115B8}' && c <= '\u{115C0}' { + return true; + } + if c >= '\u{115D8}' && c <= '\u{115DD}' { + return true; + } + if c >= '\u{11600}' && c <= '\u{11640}' { + return true; + } + if c >= '\u{11644}' && c <= '\u{11644}' { + return true; + } + if c >= '\u{11650}' && c <= '\u{11659}' { + return true; + } + if c >= '\u{11680}' && c <= '\u{116B8}' { + return true; + } + if c >= '\u{116C0}' && c <= '\u{116C9}' { + return true; + } + if c >= '\u{11700}' && c <= '\u{1171A}' { + return true; + } + if c >= '\u{1171D}' && c <= '\u{1172B}' { + return true; + } + if c >= '\u{11730}' && c <= '\u{11739}' { + return true; + } + if c >= '\u{11740}' && c <= '\u{11746}' { + return true; + } + if c >= '\u{11800}' && c <= '\u{1183A}' { + return true; + } + if c >= '\u{118A0}' && c <= '\u{118E9}' { + return true; + } + if c >= '\u{118FF}' && c <= '\u{11906}' { + return true; + } + if c >= '\u{11909}' && c <= '\u{11909}' { + return true; + } + if c >= '\u{1190C}' && c <= '\u{11913}' { + return true; + } + if c >= '\u{11915}' && c <= '\u{11916}' { + return true; + } + if c >= '\u{11918}' && c <= '\u{11935}' { + return true; + } + if c >= '\u{11937}' && c <= '\u{11938}' { + return true; + } + if c >= '\u{1193B}' && c <= '\u{11943}' { + return true; + } + if c >= '\u{11950}' && c <= '\u{11959}' { + return true; + } + if c >= '\u{119A0}' && c <= '\u{119A7}' { + return true; + } + if c >= '\u{119AA}' && c <= '\u{119D7}' { + return true; + } + if c >= '\u{119DA}' && c <= '\u{119E1}' { + return true; + } + if c >= '\u{119E3}' && c <= '\u{119E4}' { + return true; + } + if c >= '\u{11A00}' && c <= '\u{11A3E}' { + return true; + } + if c >= '\u{11A47}' && c <= '\u{11A47}' { + return true; + } + if c >= '\u{11A50}' && c <= '\u{11A99}' { + return true; + } + if c >= '\u{11A9D}' && c <= '\u{11A9D}' { + return true; + } + if c >= '\u{11AB0}' && c <= '\u{11AF8}' { + return true; + } + if c >= '\u{11C00}' && c <= '\u{11C08}' { + return true; + } + if c >= '\u{11C0A}' && c <= '\u{11C36}' { + return true; + } + if c >= '\u{11C38}' && c <= '\u{11C40}' { + return true; + } + if c >= '\u{11C50}' && c <= '\u{11C59}' { + return true; + } + if c >= '\u{11C72}' && c <= '\u{11C8F}' { + return true; + } + if c >= '\u{11C92}' && c <= '\u{11CA7}' { + return true; + } + if c >= '\u{11CA9}' && c <= '\u{11CB6}' { + return true; + } + if c >= '\u{11D00}' && c <= '\u{11D06}' { + return true; + } + if c >= '\u{11D08}' && c <= '\u{11D09}' { + return true; + } + if c >= '\u{11D0B}' && c <= '\u{11D36}' { + return true; + } + if c >= '\u{11D3A}' && c <= '\u{11D3A}' { + return true; + } + if c >= '\u{11D3C}' && c <= '\u{11D3D}' { + return true; + } + if c >= '\u{11D3F}' && c <= '\u{11D47}' { + return true; + } + if c >= '\u{11D50}' && c <= '\u{11D59}' { + return true; + } + if c >= '\u{11D60}' && c <= '\u{11D65}' { + return true; + } + if c >= '\u{11D67}' && c <= '\u{11D68}' { + return true; + } + if c >= '\u{11D6A}' && c <= '\u{11D8E}' { + return true; + } + if c >= '\u{11D90}' && c <= '\u{11D91}' { + return true; + } + if c >= '\u{11D93}' && c <= '\u{11D98}' { + return true; + } + if c >= '\u{11DA0}' && c <= '\u{11DA9}' { + return true; + } + if c >= '\u{11EE0}' && c <= '\u{11EF6}' { + return true; + } + if c >= '\u{11FB0}' && c <= '\u{11FB0}' { + return true; + } + if c >= '\u{12000}' && c <= '\u{12399}' { + return true; + } + if c >= '\u{12400}' && c <= '\u{1246E}' { + return true; + } + if c >= '\u{12480}' && c <= '\u{12543}' { + return true; + } + if c >= '\u{12F90}' && c <= '\u{12FF0}' { + return true; + } + if c >= '\u{13000}' && c <= '\u{1342E}' { + return true; + } + if c >= '\u{14400}' && c <= '\u{14646}' { + return true; + } + if c >= '\u{16800}' && c <= '\u{16A38}' { + return true; + } + if c >= '\u{16A40}' && c <= '\u{16A5E}' { + return true; + } + if c >= '\u{16A60}' && c <= '\u{16A69}' { + return true; + } + if c >= '\u{16A70}' && c <= '\u{16ABE}' { + return true; + } + if c >= '\u{16AC0}' && c <= '\u{16AC9}' { + return true; + } + if c >= '\u{16AD0}' && c <= '\u{16AED}' { + return true; + } + if c >= '\u{16AF0}' && c <= '\u{16AF4}' { + return true; + } + if c >= '\u{16B00}' && c <= '\u{16B36}' { + return true; + } + if c >= '\u{16B40}' && c <= '\u{16B43}' { + return true; + } + if c >= '\u{16B50}' && c <= '\u{16B59}' { + return true; + } + if c >= '\u{16B63}' && c <= '\u{16B77}' { + return true; + } + if c >= '\u{16B7D}' && c <= '\u{16B8F}' { + return true; + } + if c >= '\u{16E40}' && c <= '\u{16E7F}' { + return true; + } + if c >= '\u{16F00}' && c <= '\u{16F4A}' { + return true; + } + if c >= '\u{16F4F}' && c <= '\u{16F87}' { + return true; + } + if c >= '\u{16F8F}' && c <= '\u{16F9F}' { + return true; + } + if c >= '\u{16FE0}' && c <= '\u{16FE1}' { + return true; + } + if c >= '\u{16FE3}' && c <= '\u{16FE4}' { + return true; + } + if c >= '\u{16FF0}' && c <= '\u{16FF1}' { + return true; + } + if c >= '\u{17000}' && c <= '\u{187F7}' { + return true; + } + if c >= '\u{18800}' && c <= '\u{18CD5}' { + return true; + } + if c >= '\u{18D00}' && c <= '\u{18D08}' { + return true; + } + if c >= '\u{1AFF0}' && c <= '\u{1AFF3}' { + return true; + } + if c >= '\u{1AFF5}' && c <= '\u{1AFFB}' { + return true; + } + if c >= '\u{1AFFD}' && c <= '\u{1AFFE}' { + return true; + } + if c >= '\u{1B000}' && c <= '\u{1B122}' { + return true; + } + if c >= '\u{1B150}' && c <= '\u{1B152}' { + return true; + } + if c >= '\u{1B164}' && c <= '\u{1B167}' { + return true; + } + if c >= '\u{1B170}' && c <= '\u{1B2FB}' { + return true; + } + if c >= '\u{1BC00}' && c <= '\u{1BC6A}' { + return true; + } + if c >= '\u{1BC70}' && c <= '\u{1BC7C}' { + return true; + } + if c >= '\u{1BC80}' && c <= '\u{1BC88}' { + return true; + } + if c >= '\u{1BC90}' && c <= '\u{1BC99}' { + return true; + } + if c >= '\u{1BC9D}' && c <= '\u{1BC9E}' { + return true; + } + if c >= '\u{1CF00}' && c <= '\u{1CF2D}' { + return true; + } + if c >= '\u{1CF30}' && c <= '\u{1CF46}' { + return true; + } + if c >= '\u{1D165}' && c <= '\u{1D169}' { + return true; + } + if c >= '\u{1D16D}' && c <= '\u{1D172}' { + return true; + } + if c >= '\u{1D17B}' && c <= '\u{1D182}' { + return true; + } + if c >= '\u{1D185}' && c <= '\u{1D18B}' { + return true; + } + if c >= '\u{1D1AA}' && c <= '\u{1D1AD}' { + return true; + } + if c >= '\u{1D242}' && c <= '\u{1D244}' { + return true; + } + if c >= '\u{1D400}' && c <= '\u{1D454}' { + return true; + } + if c >= '\u{1D456}' && c <= '\u{1D49C}' { + return true; + } + if c >= '\u{1D49E}' && c <= '\u{1D49F}' { + return true; + } + if c >= '\u{1D4A2}' && c <= '\u{1D4A2}' { + return true; + } + if c >= '\u{1D4A5}' && c <= '\u{1D4A6}' { + return true; + } + if c >= '\u{1D4A9}' && c <= '\u{1D4AC}' { + return true; + } + if c >= '\u{1D4AE}' && c <= '\u{1D4B9}' { + return true; + } + if c >= '\u{1D4BB}' && c <= '\u{1D4BB}' { + return true; + } + if c >= '\u{1D4BD}' && c <= '\u{1D4C3}' { + return true; + } + if c >= '\u{1D4C5}' && c <= '\u{1D505}' { + return true; + } + if c >= '\u{1D507}' && c <= '\u{1D50A}' { + return true; + } + if c >= '\u{1D50D}' && c <= '\u{1D514}' { + return true; + } + if c >= '\u{1D516}' && c <= '\u{1D51C}' { + return true; + } + if c >= '\u{1D51E}' && c <= '\u{1D539}' { + return true; + } + if c >= '\u{1D53B}' && c <= '\u{1D53E}' { + return true; + } + if c >= '\u{1D540}' && c <= '\u{1D544}' { + return true; + } + if c >= '\u{1D546}' && c <= '\u{1D546}' { + return true; + } + if c >= '\u{1D54A}' && c <= '\u{1D550}' { + return true; + } + if c >= '\u{1D552}' && c <= '\u{1D6A5}' { + return true; + } + if c >= '\u{1D6A8}' && c <= '\u{1D6C0}' { + return true; + } + if c >= '\u{1D6C2}' && c <= '\u{1D6DA}' { + return true; + } + if c >= '\u{1D6DC}' && c <= '\u{1D6FA}' { + return true; + } + if c >= '\u{1D6FC}' && c <= '\u{1D714}' { + return true; + } + if c >= '\u{1D716}' && c <= '\u{1D734}' { + return true; + } + if c >= '\u{1D736}' && c <= '\u{1D74E}' { + return true; + } + if c >= '\u{1D750}' && c <= '\u{1D76E}' { + return true; + } + if c >= '\u{1D770}' && c <= '\u{1D788}' { + return true; + } + if c >= '\u{1D78A}' && c <= '\u{1D7A8}' { + return true; + } + if c >= '\u{1D7AA}' && c <= '\u{1D7C2}' { + return true; + } + if c >= '\u{1D7C4}' && c <= '\u{1D7CB}' { + return true; + } + if c >= '\u{1D7CE}' && c <= '\u{1D7FF}' { + return true; + } + if c >= '\u{1DA00}' && c <= '\u{1DA36}' { + return true; + } + if c >= '\u{1DA3B}' && c <= '\u{1DA6C}' { + return true; + } + if c >= '\u{1DA75}' && c <= '\u{1DA75}' { + return true; + } + if c >= '\u{1DA84}' && c <= '\u{1DA84}' { + return true; + } + if c >= '\u{1DA9B}' && c <= '\u{1DA9F}' { + return true; + } + if c >= '\u{1DAA1}' && c <= '\u{1DAAF}' { + return true; + } + if c >= '\u{1DF00}' && c <= '\u{1DF1E}' { + return true; + } + if c >= '\u{1E000}' && c <= '\u{1E006}' { + return true; + } + if c >= '\u{1E008}' && c <= '\u{1E018}' { + return true; + } + if c >= '\u{1E01B}' && c <= '\u{1E021}' { + return true; + } + if c >= '\u{1E023}' && c <= '\u{1E024}' { + return true; + } + if c >= '\u{1E026}' && c <= '\u{1E02A}' { + return true; + } + if c >= '\u{1E100}' && c <= '\u{1E12C}' { + return true; + } + if c >= '\u{1E130}' && c <= '\u{1E13D}' { + return true; + } + if c >= '\u{1E140}' && c <= '\u{1E149}' { + return true; + } + if c >= '\u{1E14E}' && c <= '\u{1E14E}' { + return true; + } + if c >= '\u{1E290}' && c <= '\u{1E2AE}' { + return true; + } + if c >= '\u{1E2C0}' && c <= '\u{1E2F9}' { + return true; + } + if c >= '\u{1E7E0}' && c <= '\u{1E7E6}' { + return true; + } + if c >= '\u{1E7E8}' && c <= '\u{1E7EB}' { + return true; + } + if c >= '\u{1E7ED}' && c <= '\u{1E7EE}' { + return true; + } + if c >= '\u{1E7F0}' && c <= '\u{1E7FE}' { + return true; + } + if c >= '\u{1E800}' && c <= '\u{1E8C4}' { + return true; + } + if c >= '\u{1E8D0}' && c <= '\u{1E8D6}' { + return true; + } + if c >= '\u{1E900}' && c <= '\u{1E94B}' { + return true; + } + if c >= '\u{1E950}' && c <= '\u{1E959}' { + return true; + } + if c >= '\u{1EE00}' && c <= '\u{1EE03}' { + return true; + } + if c >= '\u{1EE05}' && c <= '\u{1EE1F}' { + return true; + } + if c >= '\u{1EE21}' && c <= '\u{1EE22}' { + return true; + } + if c >= '\u{1EE24}' && c <= '\u{1EE24}' { + return true; + } + if c >= '\u{1EE27}' && c <= '\u{1EE27}' { + return true; + } + if c >= '\u{1EE29}' && c <= '\u{1EE32}' { + return true; + } + if c >= '\u{1EE34}' && c <= '\u{1EE37}' { + return true; + } + if c >= '\u{1EE39}' && c <= '\u{1EE39}' { + return true; + } + if c >= '\u{1EE3B}' && c <= '\u{1EE3B}' { + return true; + } + if c >= '\u{1EE42}' && c <= '\u{1EE42}' { + return true; + } + if c >= '\u{1EE47}' && c <= '\u{1EE47}' { + return true; + } + if c >= '\u{1EE49}' && c <= '\u{1EE49}' { + return true; + } + if c >= '\u{1EE4B}' && c <= '\u{1EE4B}' { + return true; + } + if c >= '\u{1EE4D}' && c <= '\u{1EE4F}' { + return true; + } + if c >= '\u{1EE51}' && c <= '\u{1EE52}' { + return true; + } + if c >= '\u{1EE54}' && c <= '\u{1EE54}' { + return true; + } + if c >= '\u{1EE57}' && c <= '\u{1EE57}' { + return true; + } + if c >= '\u{1EE59}' && c <= '\u{1EE59}' { + return true; + } + if c >= '\u{1EE5B}' && c <= '\u{1EE5B}' { + return true; + } + if c >= '\u{1EE5D}' && c <= '\u{1EE5D}' { + return true; + } + if c >= '\u{1EE5F}' && c <= '\u{1EE5F}' { + return true; + } + if c >= '\u{1EE61}' && c <= '\u{1EE62}' { + return true; + } + if c >= '\u{1EE64}' && c <= '\u{1EE64}' { + return true; + } + if c >= '\u{1EE67}' && c <= '\u{1EE6A}' { + return true; + } + if c >= '\u{1EE6C}' && c <= '\u{1EE72}' { + return true; + } + if c >= '\u{1EE74}' && c <= '\u{1EE77}' { + return true; + } + if c >= '\u{1EE79}' && c <= '\u{1EE7C}' { + return true; + } + if c >= '\u{1EE7E}' && c <= '\u{1EE7E}' { + return true; + } + if c >= '\u{1EE80}' && c <= '\u{1EE89}' { + return true; + } + if c >= '\u{1EE8B}' && c <= '\u{1EE9B}' { + return true; + } + if c >= '\u{1EEA1}' && c <= '\u{1EEA3}' { + return true; + } + if c >= '\u{1EEA5}' && c <= '\u{1EEA9}' { + return true; + } + if c >= '\u{1EEAB}' && c <= '\u{1EEBB}' { + return true; + } + if c >= '\u{1FBF0}' && c <= '\u{1FBF9}' { + return true; + } + if c >= '\u{20000}' && c <= '\u{2A6DF}' { + return true; + } + if c >= '\u{2A700}' && c <= '\u{2B738}' { + return true; + } + if c >= '\u{2B740}' && c <= '\u{2B81D}' { + return true; + } + if c >= '\u{2B820}' && c <= '\u{2CEA1}' { + return true; + } + if c >= '\u{2CEB0}' && c <= '\u{2EBE0}' { + return true; + } + if c >= '\u{2F800}' && c <= '\u{2FA1D}' { + return true; + } + if c >= '\u{30000}' && c <= '\u{3134A}' { + return true; + } + if c >= '\u{E0100}' && c <= '\u{E01EF}' { + return true; + } + false +} |