Sfoglia il codice sorgente

idna: combine two tables

Dirkjan Ochtman 5 anni fa
parent
commit
04b7f49019
3 ha cambiato i file con 1892 aggiunte e 3782 eliminazioni
  1. 6 11
      idna/src/make_uts46_mapping_table.py
  2. 3 3
      idna/src/uts46.rs
  3. 1883 3768
      idna/src/uts46_mapping_table.rs

+ 6 - 11
idna/src/make_uts46_mapping_table.py

@@ -150,27 +150,22 @@ def merge_single_char_ranges(ranges):
 
 optimized_ranges = list(merge_single_char_ranges(optimized_ranges))
 
-
-print("static TABLE: &[char] = &[")
-
-for ranges in optimized_ranges:
-    print("    '%s'," % escape_char(char(ranges[0][0])))
-
-print("];\n")
-
-print("static INDEX_TABLE: &[u16] = &[")
-
 SINGLE_MARKER = 1 << 15
 
+print("static TABLE: &[(char, u16)] = &[")
+
 offset = 0
 for ranges in optimized_ranges:
     assert offset < SINGLE_MARKER
 
     block_len = len(ranges)
     single = SINGLE_MARKER if block_len == 1 else 0
-    print("    %s," % (offset | single))
+    index = offset | single
     offset += block_len
 
+    start = escape_char(char(ranges[0][0]))
+    print("    ('%s', %s)," % (start, index))
+
 print("];\n")
 
 print("static MAPPING_TABLE: &[Mapping] = &[")

+ 3 - 3
idna/src/uts46.rs

@@ -51,21 +51,21 @@ enum Mapping {
 }
 
 fn find_char(codepoint: char) -> &'static Mapping {
-    let idx = match TABLE.binary_search(&codepoint) {
+    let idx = match TABLE.binary_search_by_key(&codepoint, |&val| val.0) {
         Ok(idx) => idx,
         Err(idx) => idx - 1,
     };
 
     const SINGLE_MARKER: u16 = 1 << 15;
 
-    let x = INDEX_TABLE[idx];
+    let (base, x) = TABLE[idx];
     let single = (x & SINGLE_MARKER) != 0;
     let offset = !SINGLE_MARKER & x;
 
     if single {
         &MAPPING_TABLE[offset as usize]
     } else {
-        &MAPPING_TABLE[(offset + (codepoint as u16 - TABLE[idx] as u16)) as usize]
+        &MAPPING_TABLE[(offset + (codepoint as u16 - base as u16)) as usize]
     }
 }
 

+ 1883 - 3768
idna/src/uts46_mapping_table.rs

@@ -8,3774 +8,1889 @@
 
 // Generated by make_idna_table.py
 
-static TABLE: &[char] = &[
-    '\u{0}',
-    '\u{2d}',
-    '\u{2f}',
-    '\u{30}',
-    '\u{3a}',
-    '\u{41}',
-    '\u{5b}',
-    '\u{61}',
-    '\u{7b}',
-    '\u{80}',
-    '\u{a0}',
-    '\u{a1}',
-    '\u{a8}',
-    '\u{ab}',
-    '\u{ad}',
-    '\u{b0}',
-    '\u{b2}',
-    '\u{e0}',
-    '\u{f7}',
-    '\u{f8}',
-    '\u{100}',
-    '\u{132}',
-    '\u{134}',
-    '\u{137}',
-    '\u{139}',
-    '\u{13f}',
-    '\u{141}',
-    '\u{18c}',
-    '\u{18e}',
-    '\u{199}',
-    '\u{19c}',
-    '\u{1aa}',
-    '\u{1ac}',
-    '\u{1b9}',
-    '\u{1bc}',
-    '\u{1bd}',
-    '\u{1c4}',
-    '\u{1c7}',
-    '\u{1ca}',
-    '\u{1cd}',
-    '\u{1dc}',
-    '\u{1de}',
-    '\u{1ef}',
-    '\u{1f1}',
-    '\u{1f4}',
-    '\u{233}',
-    '\u{23a}',
-    '\u{23f}',
-    '\u{241}',
-    '\u{24f}',
-    '\u{2b0}',
-    '\u{2b9}',
-    '\u{2c2}',
-    '\u{2c6}',
-    '\u{2d2}',
-    '\u{2d8}',
-    '\u{2de}',
-    '\u{2e0}',
-    '\u{2e5}',
-    '\u{2ec}',
-    '\u{2ef}',
-    '\u{300}',
-    '\u{340}',
-    '\u{346}',
-    '\u{34f}',
-    '\u{350}',
-    '\u{370}',
-    '\u{378}',
-    '\u{37a}',
-    '\u{37b}',
-    '\u{37e}',
-    '\u{380}',
-    '\u{384}',
-    '\u{3ac}',
-    '\u{3c2}',
-    '\u{3c3}',
-    '\u{3cf}',
-    '\u{3fb}',
-    '\u{3fd}',
-    '\u{430}',
-    '\u{460}',
-    '\u{483}',
-    '\u{488}',
-    '\u{48a}',
-    '\u{4ce}',
-    '\u{4d0}',
-    '\u{557}',
-    '\u{559}',
-    '\u{55a}',
-    '\u{560}',
-    '\u{587}',
-    '\u{589}',
-    '\u{58b}',
-    '\u{58d}',
-    '\u{590}',
-    '\u{591}',
-    '\u{5be}',
-    '\u{5c1}',
-    '\u{5c3}',
-    '\u{5c4}',
-    '\u{5c6}',
-    '\u{5c8}',
-    '\u{5d0}',
-    '\u{5eb}',
-    '\u{5ef}',
-    '\u{5f5}',
-    '\u{606}',
-    '\u{610}',
-    '\u{61b}',
-    '\u{61c}',
-    '\u{61e}',
-    '\u{620}',
-    '\u{640}',
-    '\u{641}',
-    '\u{66a}',
-    '\u{66e}',
-    '\u{675}',
-    '\u{679}',
-    '\u{6d4}',
-    '\u{6d5}',
-    '\u{6dd}',
-    '\u{6df}',
-    '\u{6e9}',
-    '\u{6ea}',
-    '\u{700}',
-    '\u{70e}',
-    '\u{710}',
-    '\u{74b}',
-    '\u{74d}',
-    '\u{7b2}',
-    '\u{7c0}',
-    '\u{7f6}',
-    '\u{7fb}',
-    '\u{7fd}',
-    '\u{7fe}',
-    '\u{800}',
-    '\u{82e}',
-    '\u{830}',
-    '\u{83f}',
-    '\u{840}',
-    '\u{85c}',
-    '\u{85e}',
-    '\u{860}',
-    '\u{86b}',
-    '\u{8a0}',
-    '\u{8b5}',
-    '\u{8b6}',
-    '\u{8c8}',
-    '\u{8d3}',
-    '\u{8e2}',
-    '\u{8e3}',
-    '\u{958}',
-    '\u{960}',
-    '\u{964}',
-    '\u{966}',
-    '\u{970}',
-    '\u{971}',
-    '\u{984}',
-    '\u{985}',
-    '\u{98d}',
-    '\u{98f}',
-    '\u{991}',
-    '\u{993}',
-    '\u{9a9}',
-    '\u{9aa}',
-    '\u{9b1}',
-    '\u{9b3}',
-    '\u{9b6}',
-    '\u{9ba}',
-    '\u{9bc}',
-    '\u{9c5}',
-    '\u{9c7}',
-    '\u{9c9}',
-    '\u{9cb}',
-    '\u{9cf}',
-    '\u{9d7}',
-    '\u{9d8}',
-    '\u{9dc}',
-    '\u{9e0}',
-    '\u{9e4}',
-    '\u{9e6}',
-    '\u{9f2}',
-    '\u{9fc}',
-    '\u{9ff}',
-    '\u{a01}',
-    '\u{a04}',
-    '\u{a05}',
-    '\u{a0b}',
-    '\u{a0f}',
-    '\u{a11}',
-    '\u{a13}',
-    '\u{a29}',
-    '\u{a2a}',
-    '\u{a31}',
-    '\u{a38}',
-    '\u{a3a}',
-    '\u{a3c}',
-    '\u{a3e}',
-    '\u{a43}',
-    '\u{a47}',
-    '\u{a49}',
-    '\u{a4b}',
-    '\u{a4e}',
-    '\u{a51}',
-    '\u{a52}',
-    '\u{a59}',
-    '\u{a5f}',
-    '\u{a66}',
-    '\u{a76}',
-    '\u{a77}',
-    '\u{a81}',
-    '\u{a84}',
-    '\u{a85}',
-    '\u{a8e}',
-    '\u{a8f}',
-    '\u{a92}',
-    '\u{a93}',
-    '\u{aa9}',
-    '\u{aaa}',
-    '\u{ab1}',
-    '\u{ab2}',
-    '\u{ab4}',
-    '\u{ab5}',
-    '\u{aba}',
-    '\u{abc}',
-    '\u{ac6}',
-    '\u{ac7}',
-    '\u{aca}',
-    '\u{acb}',
-    '\u{ace}',
-    '\u{ad0}',
-    '\u{ad1}',
-    '\u{ae0}',
-    '\u{ae4}',
-    '\u{ae6}',
-    '\u{af0}',
-    '\u{af2}',
-    '\u{af9}',
-    '\u{b00}',
-    '\u{b01}',
-    '\u{b04}',
-    '\u{b05}',
-    '\u{b0d}',
-    '\u{b0f}',
-    '\u{b11}',
-    '\u{b13}',
-    '\u{b29}',
-    '\u{b2a}',
-    '\u{b31}',
-    '\u{b32}',
-    '\u{b34}',
-    '\u{b35}',
-    '\u{b3a}',
-    '\u{b3c}',
-    '\u{b45}',
-    '\u{b47}',
-    '\u{b49}',
-    '\u{b4b}',
-    '\u{b4e}',
-    '\u{b55}',
-    '\u{b58}',
-    '\u{b5c}',
-    '\u{b5f}',
-    '\u{b64}',
-    '\u{b66}',
-    '\u{b70}',
-    '\u{b72}',
-    '\u{b78}',
-    '\u{b82}',
-    '\u{b84}',
-    '\u{b85}',
-    '\u{b8b}',
-    '\u{b8e}',
-    '\u{b91}',
-    '\u{b92}',
-    '\u{b96}',
-    '\u{b99}',
-    '\u{b9b}',
-    '\u{b9e}',
-    '\u{ba0}',
-    '\u{ba3}',
-    '\u{ba5}',
-    '\u{ba8}',
-    '\u{bab}',
-    '\u{bae}',
-    '\u{bba}',
-    '\u{bbe}',
-    '\u{bc3}',
-    '\u{bc6}',
-    '\u{bc9}',
-    '\u{bca}',
-    '\u{bce}',
-    '\u{bd0}',
-    '\u{bd1}',
-    '\u{bd7}',
-    '\u{bd8}',
-    '\u{be6}',
-    '\u{bf0}',
-    '\u{bfb}',
-    '\u{c00}',
-    '\u{c0d}',
-    '\u{c0e}',
-    '\u{c11}',
-    '\u{c12}',
-    '\u{c29}',
-    '\u{c2a}',
-    '\u{c3a}',
-    '\u{c3d}',
-    '\u{c45}',
-    '\u{c46}',
-    '\u{c49}',
-    '\u{c4a}',
-    '\u{c4e}',
-    '\u{c55}',
-    '\u{c57}',
-    '\u{c58}',
-    '\u{c5b}',
-    '\u{c60}',
-    '\u{c64}',
-    '\u{c66}',
-    '\u{c70}',
-    '\u{c77}',
-    '\u{c80}',
-    '\u{c84}',
-    '\u{c85}',
-    '\u{c8d}',
-    '\u{c8e}',
-    '\u{c91}',
-    '\u{c92}',
-    '\u{ca9}',
-    '\u{caa}',
-    '\u{cb4}',
-    '\u{cb5}',
-    '\u{cba}',
-    '\u{cbc}',
-    '\u{cc5}',
-    '\u{cc6}',
-    '\u{cc9}',
-    '\u{cca}',
-    '\u{cce}',
-    '\u{cd5}',
-    '\u{cd7}',
-    '\u{cde}',
-    '\u{ce0}',
-    '\u{ce4}',
-    '\u{ce6}',
-    '\u{cf0}',
-    '\u{cf1}',
-    '\u{cf3}',
-    '\u{d00}',
-    '\u{d0d}',
-    '\u{d0e}',
-    '\u{d11}',
-    '\u{d12}',
-    '\u{d45}',
-    '\u{d46}',
-    '\u{d49}',
-    '\u{d4a}',
-    '\u{d4f}',
-    '\u{d50}',
-    '\u{d54}',
-    '\u{d58}',
-    '\u{d5f}',
-    '\u{d64}',
-    '\u{d66}',
-    '\u{d70}',
-    '\u{d7a}',
-    '\u{d80}',
-    '\u{d81}',
-    '\u{d84}',
-    '\u{d85}',
-    '\u{d97}',
-    '\u{d9a}',
-    '\u{db2}',
-    '\u{db3}',
-    '\u{dbc}',
-    '\u{dbe}',
-    '\u{dc0}',
-    '\u{dc7}',
-    '\u{dca}',
-    '\u{dcb}',
-    '\u{dcf}',
-    '\u{dd5}',
-    '\u{dd8}',
-    '\u{de0}',
-    '\u{de6}',
-    '\u{df0}',
-    '\u{df2}',
-    '\u{df4}',
-    '\u{df5}',
-    '\u{e01}',
-    '\u{e33}',
-    '\u{e34}',
-    '\u{e3b}',
-    '\u{e3f}',
-    '\u{e40}',
-    '\u{e4f}',
-    '\u{e50}',
-    '\u{e5a}',
-    '\u{e5c}',
-    '\u{e81}',
-    '\u{e83}',
-    '\u{e86}',
-    '\u{e8b}',
-    '\u{e8c}',
-    '\u{ea4}',
-    '\u{ea7}',
-    '\u{eb3}',
-    '\u{eb4}',
-    '\u{ebe}',
-    '\u{ec0}',
-    '\u{ec5}',
-    '\u{ec8}',
-    '\u{ece}',
-    '\u{ed0}',
-    '\u{eda}',
-    '\u{edc}',
-    '\u{ede}',
-    '\u{ee0}',
-    '\u{f00}',
-    '\u{f01}',
-    '\u{f0b}',
-    '\u{f0d}',
-    '\u{f18}',
-    '\u{f1a}',
-    '\u{f20}',
-    '\u{f2a}',
-    '\u{f35}',
-    '\u{f3a}',
-    '\u{f3e}',
-    '\u{f43}',
-    '\u{f44}',
-    '\u{f48}',
-    '\u{f49}',
-    '\u{f4d}',
-    '\u{f4e}',
-    '\u{f52}',
-    '\u{f53}',
-    '\u{f57}',
-    '\u{f58}',
-    '\u{f5c}',
-    '\u{f5d}',
-    '\u{f69}',
-    '\u{f6a}',
-    '\u{f6d}',
-    '\u{f71}',
-    '\u{f73}',
-    '\u{f7a}',
-    '\u{f81}',
-    '\u{f82}',
-    '\u{f85}',
-    '\u{f86}',
-    '\u{f93}',
-    '\u{f94}',
-    '\u{f98}',
-    '\u{f99}',
-    '\u{f9d}',
-    '\u{f9e}',
-    '\u{fa2}',
-    '\u{fa3}',
-    '\u{fa7}',
-    '\u{fa8}',
-    '\u{fac}',
-    '\u{fad}',
-    '\u{fb9}',
-    '\u{fba}',
-    '\u{fbd}',
-    '\u{fbe}',
-    '\u{fc6}',
-    '\u{fc7}',
-    '\u{fcd}',
-    '\u{fce}',
-    '\u{fdb}',
-    '\u{1000}',
-    '\u{104a}',
-    '\u{1050}',
-    '\u{109e}',
-    '\u{10a0}',
-    '\u{10c7}',
-    '\u{10c8}',
-    '\u{10cd}',
-    '\u{10ce}',
-    '\u{10d0}',
-    '\u{10fb}',
-    '\u{10fd}',
-    '\u{1100}',
-    '\u{115f}',
-    '\u{1161}',
-    '\u{1200}',
-    '\u{1249}',
-    '\u{124a}',
-    '\u{124e}',
-    '\u{1250}',
-    '\u{1257}',
-    '\u{125a}',
-    '\u{125e}',
-    '\u{1260}',
-    '\u{1289}',
-    '\u{128a}',
-    '\u{128e}',
-    '\u{1290}',
-    '\u{12b1}',
-    '\u{12b2}',
-    '\u{12b6}',
-    '\u{12b8}',
-    '\u{12bf}',
-    '\u{12c2}',
-    '\u{12c6}',
-    '\u{12c8}',
-    '\u{12d7}',
-    '\u{12d8}',
-    '\u{1311}',
-    '\u{1312}',
-    '\u{1316}',
-    '\u{1318}',
-    '\u{135b}',
-    '\u{135d}',
-    '\u{1360}',
-    '\u{137d}',
-    '\u{1380}',
-    '\u{1390}',
-    '\u{139a}',
-    '\u{13a0}',
-    '\u{13f6}',
-    '\u{13f8}',
-    '\u{13fe}',
-    '\u{1400}',
-    '\u{1401}',
-    '\u{166d}',
-    '\u{166f}',
-    '\u{1680}',
-    '\u{1681}',
-    '\u{169b}',
-    '\u{169d}',
-    '\u{16a0}',
-    '\u{16eb}',
-    '\u{16f1}',
-    '\u{16f9}',
-    '\u{1700}',
-    '\u{170d}',
-    '\u{170e}',
-    '\u{1715}',
-    '\u{1720}',
-    '\u{1735}',
-    '\u{1737}',
-    '\u{1740}',
-    '\u{1754}',
-    '\u{1760}',
-    '\u{176d}',
-    '\u{176e}',
-    '\u{1771}',
-    '\u{1772}',
-    '\u{1774}',
-    '\u{1780}',
-    '\u{17b4}',
-    '\u{17b6}',
-    '\u{17d4}',
-    '\u{17d7}',
-    '\u{17d8}',
-    '\u{17dc}',
-    '\u{17de}',
-    '\u{17e0}',
-    '\u{17ea}',
-    '\u{17f0}',
-    '\u{17fa}',
-    '\u{1800}',
-    '\u{1806}',
-    '\u{1807}',
-    '\u{180b}',
-    '\u{180e}',
-    '\u{1810}',
-    '\u{181a}',
-    '\u{1820}',
-    '\u{1879}',
-    '\u{1880}',
-    '\u{18ab}',
-    '\u{18b0}',
-    '\u{18f6}',
-    '\u{1900}',
-    '\u{191f}',
-    '\u{1920}',
-    '\u{192c}',
-    '\u{1930}',
-    '\u{193c}',
-    '\u{1940}',
-    '\u{1941}',
-    '\u{1944}',
-    '\u{1946}',
-    '\u{196e}',
-    '\u{1970}',
-    '\u{1975}',
-    '\u{1980}',
-    '\u{19ac}',
-    '\u{19b0}',
-    '\u{19ca}',
-    '\u{19d0}',
-    '\u{19da}',
-    '\u{19db}',
-    '\u{19de}',
-    '\u{1a00}',
-    '\u{1a1c}',
-    '\u{1a1e}',
-    '\u{1a20}',
-    '\u{1a5f}',
-    '\u{1a60}',
-    '\u{1a7d}',
-    '\u{1a7f}',
-    '\u{1a8a}',
-    '\u{1a90}',
-    '\u{1a9a}',
-    '\u{1aa0}',
-    '\u{1aa7}',
-    '\u{1aa8}',
-    '\u{1aae}',
-    '\u{1ab0}',
-    '\u{1abe}',
-    '\u{1abf}',
-    '\u{1ac1}',
-    '\u{1b00}',
-    '\u{1b4c}',
-    '\u{1b50}',
-    '\u{1b5a}',
-    '\u{1b6b}',
-    '\u{1b74}',
-    '\u{1b7d}',
-    '\u{1b80}',
-    '\u{1bf4}',
-    '\u{1bfc}',
-    '\u{1c00}',
-    '\u{1c38}',
-    '\u{1c3b}',
-    '\u{1c40}',
-    '\u{1c4a}',
-    '\u{1c4d}',
-    '\u{1c7e}',
-    '\u{1c80}',
-    '\u{1c84}',
-    '\u{1c86}',
-    '\u{1c89}',
-    '\u{1c90}',
-    '\u{1cbb}',
-    '\u{1cbd}',
-    '\u{1cc0}',
-    '\u{1cc8}',
-    '\u{1cd0}',
-    '\u{1cd3}',
-    '\u{1cd4}',
-    '\u{1cfb}',
-    '\u{1d00}',
-    '\u{1d2c}',
-    '\u{1d6b}',
-    '\u{1d78}',
-    '\u{1d79}',
-    '\u{1d9b}',
-    '\u{1dc0}',
-    '\u{1dfa}',
-    '\u{1dfb}',
-    '\u{1e00}',
-    '\u{1e95}',
-    '\u{1e9a}',
-    '\u{1e9c}',
-    '\u{1e9e}',
-    '\u{1eff}',
-    '\u{1f08}',
-    '\u{1f10}',
-    '\u{1f16}',
-    '\u{1f18}',
-    '\u{1f1e}',
-    '\u{1f20}',
-    '\u{1f28}',
-    '\u{1f30}',
-    '\u{1f38}',
-    '\u{1f40}',
-    '\u{1f46}',
-    '\u{1f48}',
-    '\u{1f4e}',
-    '\u{1f50}',
-    '\u{1f58}',
-    '\u{1f60}',
-    '\u{1f68}',
-    '\u{1f7e}',
-    '\u{1f80}',
-    '\u{1fb0}',
-    '\u{1fb2}',
-    '\u{1fd0}',
-    '\u{1fd3}',
-    '\u{1fd4}',
-    '\u{1fd6}',
-    '\u{1fd8}',
-    '\u{1fe0}',
-    '\u{1fe3}',
-    '\u{1fe4}',
-    '\u{1fe8}',
-    '\u{1ff0}',
-    '\u{1ff2}',
-    '\u{2000}',
-    '\u{200b}',
-    '\u{200c}',
-    '\u{200e}',
-    '\u{2010}',
-    '\u{2012}',
-    '\u{2017}',
-    '\u{2018}',
-    '\u{2024}',
-    '\u{2027}',
-    '\u{2028}',
-    '\u{202f}',
-    '\u{2030}',
-    '\u{2033}',
-    '\u{2038}',
-    '\u{203c}',
-    '\u{203f}',
-    '\u{2047}',
-    '\u{204a}',
-    '\u{2057}',
-    '\u{2058}',
-    '\u{205f}',
-    '\u{2061}',
-    '\u{2064}',
-    '\u{2065}',
-    '\u{2070}',
-    '\u{2072}',
-    '\u{2074}',
-    '\u{209d}',
-    '\u{20a0}',
-    '\u{20a8}',
-    '\u{20a9}',
-    '\u{20c0}',
-    '\u{20d0}',
-    '\u{20f1}',
-    '\u{2100}',
-    '\u{210b}',
-    '\u{210f}',
-    '\u{2110}',
-    '\u{2112}',
-    '\u{2114}',
-    '\u{2117}',
-    '\u{2119}',
-    '\u{211b}',
-    '\u{211e}',
-    '\u{2120}',
-    '\u{212f}',
-    '\u{2131}',
-    '\u{213d}',
-    '\u{213f}',
-    '\u{2141}',
-    '\u{2145}',
-    '\u{2147}',
-    '\u{214a}',
-    '\u{214e}',
-    '\u{2180}',
-    '\u{2183}',
-    '\u{2185}',
-    '\u{2189}',
-    '\u{218a}',
-    '\u{218c}',
-    '\u{2190}',
-    '\u{222c}',
-    '\u{2231}',
-    '\u{2260}',
-    '\u{2261}',
-    '\u{226e}',
-    '\u{2270}',
-    '\u{2329}',
-    '\u{232b}',
-    '\u{2427}',
-    '\u{2440}',
-    '\u{244b}',
-    '\u{2460}',
-    '\u{2488}',
-    '\u{249c}',
-    '\u{24eb}',
-    '\u{2a0c}',
-    '\u{2a0d}',
-    '\u{2a74}',
-    '\u{2a77}',
-    '\u{2adc}',
-    '\u{2add}',
-    '\u{2b74}',
-    '\u{2b76}',
-    '\u{2b96}',
-    '\u{2b97}',
-    '\u{2c00}',
-    '\u{2c30}',
-    '\u{2c5f}',
-    '\u{2c65}',
-    '\u{2c67}',
-    '\u{2c73}',
-    '\u{2c75}',
-    '\u{2c76}',
-    '\u{2c7c}',
-    '\u{2ce3}',
-    '\u{2ce5}',
-    '\u{2ceb}',
-    '\u{2cee}',
-    '\u{2cf2}',
-    '\u{2cf4}',
-    '\u{2cf9}',
-    '\u{2d00}',
-    '\u{2d26}',
-    '\u{2d28}',
-    '\u{2d2d}',
-    '\u{2d2e}',
-    '\u{2d30}',
-    '\u{2d68}',
-    '\u{2d6f}',
-    '\u{2d71}',
-    '\u{2d7f}',
-    '\u{2d97}',
-    '\u{2da0}',
-    '\u{2da7}',
-    '\u{2da8}',
-    '\u{2daf}',
-    '\u{2db0}',
-    '\u{2db7}',
-    '\u{2db8}',
-    '\u{2dbf}',
-    '\u{2dc0}',
-    '\u{2dc7}',
-    '\u{2dc8}',
-    '\u{2dcf}',
-    '\u{2dd0}',
-    '\u{2dd7}',
-    '\u{2dd8}',
-    '\u{2ddf}',
-    '\u{2de0}',
-    '\u{2e00}',
-    '\u{2e2f}',
-    '\u{2e30}',
-    '\u{2e53}',
-    '\u{2e80}',
-    '\u{2e9a}',
-    '\u{2e9b}',
-    '\u{2e9f}',
-    '\u{2ea0}',
-    '\u{2ef3}',
-    '\u{2ef4}',
-    '\u{2f00}',
-    '\u{2fd6}',
-    '\u{3000}',
-    '\u{3003}',
-    '\u{3005}',
-    '\u{3008}',
-    '\u{302a}',
-    '\u{302e}',
-    '\u{3036}',
-    '\u{303d}',
-    '\u{3040}',
-    '\u{3041}',
-    '\u{3097}',
-    '\u{3099}',
-    '\u{309b}',
-    '\u{309d}',
-    '\u{309f}',
-    '\u{30a1}',
-    '\u{30ff}',
-    '\u{3100}',
-    '\u{3105}',
-    '\u{3130}',
-    '\u{3190}',
-    '\u{3192}',
-    '\u{31a0}',
-    '\u{31c0}',
-    '\u{31e4}',
-    '\u{31f0}',
-    '\u{3200}',
-    '\u{3248}',
-    '\u{3250}',
-    '\u{3400}',
-    '\u{4dc0}',
-    '\u{4e00}',
-    '\u{9ffd}',
-    '\u{a000}',
-    '\u{a48d}',
-    '\u{a490}',
-    '\u{a4c7}',
-    '\u{a4d0}',
-    '\u{a4fe}',
-    '\u{a500}',
-    '\u{a60d}',
-    '\u{a610}',
-    '\u{a62c}',
-    '\u{a640}',
-    '\u{a66d}',
-    '\u{a670}',
-    '\u{a674}',
-    '\u{a67e}',
-    '\u{a69e}',
-    '\u{a6e6}',
-    '\u{a6f0}',
-    '\u{a6f2}',
-    '\u{a6f8}',
-    '\u{a700}',
-    '\u{a717}',
-    '\u{a720}',
-    '\u{a722}',
-    '\u{a72f}',
-    '\u{a732}',
-    '\u{a771}',
-    '\u{a779}',
-    '\u{a787}',
-    '\u{a789}',
-    '\u{a78b}',
-    '\u{a78e}',
-    '\u{a790}',
-    '\u{a793}',
-    '\u{a796}',
-    '\u{a7c0}',
-    '\u{a7c2}',
-    '\u{a7cb}',
-    '\u{a7f5}',
-    '\u{a7f6}',
-    '\u{a7f8}',
-    '\u{a7fa}',
-    '\u{a828}',
-    '\u{a82c}',
-    '\u{a82d}',
-    '\u{a830}',
-    '\u{a83a}',
-    '\u{a840}',
-    '\u{a874}',
-    '\u{a878}',
-    '\u{a880}',
-    '\u{a8c6}',
-    '\u{a8ce}',
-    '\u{a8d0}',
-    '\u{a8da}',
-    '\u{a8e0}',
-    '\u{a8f8}',
-    '\u{a8fb}',
-    '\u{a8fd}',
-    '\u{a92e}',
-    '\u{a930}',
-    '\u{a954}',
-    '\u{a95f}',
-    '\u{a97d}',
-    '\u{a980}',
-    '\u{a9c1}',
-    '\u{a9ce}',
-    '\u{a9cf}',
-    '\u{a9da}',
-    '\u{a9de}',
-    '\u{a9e0}',
-    '\u{a9ff}',
-    '\u{aa00}',
-    '\u{aa37}',
-    '\u{aa40}',
-    '\u{aa4e}',
-    '\u{aa50}',
-    '\u{aa5a}',
-    '\u{aa5c}',
-    '\u{aa60}',
-    '\u{aa77}',
-    '\u{aa7a}',
-    '\u{aac3}',
-    '\u{aadb}',
-    '\u{aade}',
-    '\u{aae0}',
-    '\u{aaf0}',
-    '\u{aaf2}',
-    '\u{aaf7}',
-    '\u{ab01}',
-    '\u{ab07}',
-    '\u{ab09}',
-    '\u{ab0f}',
-    '\u{ab11}',
-    '\u{ab17}',
-    '\u{ab20}',
-    '\u{ab27}',
-    '\u{ab28}',
-    '\u{ab2f}',
-    '\u{ab30}',
-    '\u{ab5b}',
-    '\u{ab60}',
-    '\u{ab69}',
-    '\u{ab6a}',
-    '\u{ab6c}',
-    '\u{ab70}',
-    '\u{abc0}',
-    '\u{abeb}',
-    '\u{abec}',
-    '\u{abee}',
-    '\u{abf0}',
-    '\u{abfa}',
-    '\u{ac00}',
-    '\u{d7a4}',
-    '\u{d7b0}',
-    '\u{d7c7}',
-    '\u{d7cb}',
-    '\u{d7fc}',
-    '\u{f900}',
-    '\u{f907}',
-    '\u{f909}',
-    '\u{fa0e}',
-    '\u{fa10}',
-    '\u{fa13}',
-    '\u{fa15}',
-    '\u{fa23}',
-    '\u{fa25}',
-    '\u{fa27}',
-    '\u{fa2a}',
-    '\u{fa5d}',
-    '\u{fa5f}',
-    '\u{fa6e}',
-    '\u{fa70}',
-    '\u{fada}',
-    '\u{fb00}',
-    '\u{fb05}',
-    '\u{fb07}',
-    '\u{fb13}',
-    '\u{fb18}',
-    '\u{fb1d}',
-    '\u{fb50}',
-    '\u{fb52}',
-    '\u{fb56}',
-    '\u{fb5a}',
-    '\u{fb5e}',
-    '\u{fb62}',
-    '\u{fb66}',
-    '\u{fb6a}',
-    '\u{fb6e}',
-    '\u{fb72}',
-    '\u{fb76}',
-    '\u{fb7a}',
-    '\u{fb7e}',
-    '\u{fb82}',
-    '\u{fb84}',
-    '\u{fb86}',
-    '\u{fb88}',
-    '\u{fb8a}',
-    '\u{fb8c}',
-    '\u{fb8e}',
-    '\u{fb92}',
-    '\u{fb96}',
-    '\u{fb9a}',
-    '\u{fb9e}',
-    '\u{fba0}',
-    '\u{fba4}',
-    '\u{fba6}',
-    '\u{fbaa}',
-    '\u{fbae}',
-    '\u{fbb0}',
-    '\u{fbb2}',
-    '\u{fbc2}',
-    '\u{fbd3}',
-    '\u{fbd7}',
-    '\u{fbd9}',
-    '\u{fbdb}',
-    '\u{fbdd}',
-    '\u{fbde}',
-    '\u{fbe0}',
-    '\u{fbe2}',
-    '\u{fbe4}',
-    '\u{fbe8}',
-    '\u{fbea}',
-    '\u{fbec}',
-    '\u{fbee}',
-    '\u{fbf0}',
-    '\u{fbf2}',
-    '\u{fbf4}',
-    '\u{fbf6}',
-    '\u{fbf9}',
-    '\u{fbfc}',
-    '\u{fc00}',
-    '\u{fd3c}',
-    '\u{fd3e}',
-    '\u{fd40}',
-    '\u{fd50}',
-    '\u{fd51}',
-    '\u{fd53}',
-    '\u{fd58}',
-    '\u{fd5a}',
-    '\u{fd5f}',
-    '\u{fd61}',
-    '\u{fd62}',
-    '\u{fd64}',
-    '\u{fd66}',
-    '\u{fd67}',
-    '\u{fd69}',
-    '\u{fd6a}',
-    '\u{fd6c}',
-    '\u{fd6e}',
-    '\u{fd6f}',
-    '\u{fd71}',
-    '\u{fd73}',
-    '\u{fd76}',
-    '\u{fd78}',
-    '\u{fd7c}',
-    '\u{fd7e}',
-    '\u{fd83}',
-    '\u{fd85}',
-    '\u{fd87}',
-    '\u{fd89}',
-    '\u{fd90}',
-    '\u{fd92}',
-    '\u{fd97}',
-    '\u{fd99}',
-    '\u{fd9c}',
-    '\u{fd9e}',
-    '\u{fdc8}',
-    '\u{fdf0}',
-    '\u{fdfe}',
-    '\u{fe00}',
-    '\u{fe10}',
-    '\u{fe19}',
-    '\u{fe20}',
-    '\u{fe30}',
-    '\u{fe33}',
-    '\u{fe35}',
-    '\u{fe45}',
-    '\u{fe47}',
-    '\u{fe49}',
-    '\u{fe4d}',
-    '\u{fe50}',
-    '\u{fe52}',
-    '\u{fe54}',
-    '\u{fe6c}',
-    '\u{fe70}',
-    '\u{fe81}',
-    '\u{fe83}',
-    '\u{fe85}',
-    '\u{fe87}',
-    '\u{fe89}',
-    '\u{fe8d}',
-    '\u{fe8f}',
-    '\u{fe93}',
-    '\u{fe95}',
-    '\u{fe99}',
-    '\u{fe9d}',
-    '\u{fea1}',
-    '\u{fea5}',
-    '\u{fea9}',
-    '\u{feab}',
-    '\u{fead}',
-    '\u{feaf}',
-    '\u{feb1}',
-    '\u{feb5}',
-    '\u{feb9}',
-    '\u{febd}',
-    '\u{fec1}',
-    '\u{fec5}',
-    '\u{fec9}',
-    '\u{fecd}',
-    '\u{fed1}',
-    '\u{fed5}',
-    '\u{fed9}',
-    '\u{fedd}',
-    '\u{fee1}',
-    '\u{fee5}',
-    '\u{fee9}',
-    '\u{feed}',
-    '\u{feef}',
-    '\u{fef1}',
-    '\u{fef5}',
-    '\u{fef7}',
-    '\u{fef9}',
-    '\u{fefb}',
-    '\u{fefd}',
-    '\u{feff}',
-    '\u{ffbf}',
-    '\u{ffc2}',
-    '\u{ffc8}',
-    '\u{ffca}',
-    '\u{ffd0}',
-    '\u{ffd2}',
-    '\u{ffd8}',
-    '\u{ffda}',
-    '\u{ffdd}',
-    '\u{ffe0}',
-    '\u{ffef}',
-    '\u{10000}',
-    '\u{1000c}',
-    '\u{1000d}',
-    '\u{10027}',
-    '\u{10028}',
-    '\u{1003b}',
-    '\u{1003c}',
-    '\u{1003e}',
-    '\u{1003f}',
-    '\u{1004e}',
-    '\u{10050}',
-    '\u{1005e}',
-    '\u{10080}',
-    '\u{100fb}',
-    '\u{10100}',
-    '\u{10103}',
-    '\u{10107}',
-    '\u{10134}',
-    '\u{10137}',
-    '\u{1018f}',
-    '\u{10190}',
-    '\u{1019d}',
-    '\u{101a0}',
-    '\u{101a1}',
-    '\u{101d0}',
-    '\u{101fd}',
-    '\u{101fe}',
-    '\u{10280}',
-    '\u{1029d}',
-    '\u{102a0}',
-    '\u{102d1}',
-    '\u{102e0}',
-    '\u{102e1}',
-    '\u{102fc}',
-    '\u{10300}',
-    '\u{10320}',
-    '\u{10324}',
-    '\u{1032d}',
-    '\u{10341}',
-    '\u{10342}',
-    '\u{1034a}',
-    '\u{1034b}',
-    '\u{10350}',
-    '\u{1037b}',
-    '\u{10380}',
-    '\u{1039e}',
-    '\u{103a0}',
-    '\u{103c4}',
-    '\u{103c8}',
-    '\u{103d0}',
-    '\u{103d6}',
-    '\u{10400}',
-    '\u{10428}',
-    '\u{1049e}',
-    '\u{104a0}',
-    '\u{104aa}',
-    '\u{104b0}',
-    '\u{104d4}',
-    '\u{104d8}',
-    '\u{104fc}',
-    '\u{10500}',
-    '\u{10528}',
-    '\u{10530}',
-    '\u{10564}',
-    '\u{1056f}',
-    '\u{10570}',
-    '\u{10600}',
-    '\u{10737}',
-    '\u{10740}',
-    '\u{10756}',
-    '\u{10760}',
-    '\u{10768}',
-    '\u{10800}',
-    '\u{10806}',
-    '\u{10808}',
-    '\u{1080a}',
-    '\u{10836}',
-    '\u{10837}',
-    '\u{10839}',
-    '\u{1083c}',
-    '\u{1083d}',
-    '\u{1083f}',
-    '\u{10856}',
-    '\u{10857}',
-    '\u{10860}',
-    '\u{10877}',
-    '\u{10880}',
-    '\u{1089f}',
-    '\u{108a7}',
-    '\u{108b0}',
-    '\u{108e0}',
-    '\u{108f3}',
-    '\u{108f4}',
-    '\u{108f6}',
-    '\u{108fb}',
-    '\u{10900}',
-    '\u{10916}',
-    '\u{1091c}',
-    '\u{1091f}',
-    '\u{10920}',
-    '\u{1093a}',
-    '\u{1093f}',
-    '\u{10940}',
-    '\u{10980}',
-    '\u{109b8}',
-    '\u{109bc}',
-    '\u{109be}',
-    '\u{109c0}',
-    '\u{109d0}',
-    '\u{109d2}',
-    '\u{10a00}',
-    '\u{10a04}',
-    '\u{10a05}',
-    '\u{10a07}',
-    '\u{10a0c}',
-    '\u{10a14}',
-    '\u{10a15}',
-    '\u{10a18}',
-    '\u{10a19}',
-    '\u{10a36}',
-    '\u{10a38}',
-    '\u{10a3b}',
-    '\u{10a3f}',
-    '\u{10a40}',
-    '\u{10a49}',
-    '\u{10a50}',
-    '\u{10a59}',
-    '\u{10a60}',
-    '\u{10a7d}',
-    '\u{10a80}',
-    '\u{10a9d}',
-    '\u{10aa0}',
-    '\u{10ac0}',
-    '\u{10ac8}',
-    '\u{10ac9}',
-    '\u{10ae7}',
-    '\u{10aeb}',
-    '\u{10af7}',
-    '\u{10b00}',
-    '\u{10b36}',
-    '\u{10b39}',
-    '\u{10b40}',
-    '\u{10b56}',
-    '\u{10b58}',
-    '\u{10b60}',
-    '\u{10b73}',
-    '\u{10b78}',
-    '\u{10b80}',
-    '\u{10b92}',
-    '\u{10b99}',
-    '\u{10b9d}',
-    '\u{10ba9}',
-    '\u{10bb0}',
-    '\u{10c00}',
-    '\u{10c49}',
-    '\u{10c80}',
-    '\u{10cb3}',
-    '\u{10cc0}',
-    '\u{10cf3}',
-    '\u{10cfa}',
-    '\u{10d00}',
-    '\u{10d28}',
-    '\u{10d30}',
-    '\u{10d3a}',
-    '\u{10e60}',
-    '\u{10e7f}',
-    '\u{10e80}',
-    '\u{10eaa}',
-    '\u{10eab}',
-    '\u{10ead}',
-    '\u{10eae}',
-    '\u{10eb0}',
-    '\u{10eb2}',
-    '\u{10f00}',
-    '\u{10f1d}',
-    '\u{10f27}',
-    '\u{10f28}',
-    '\u{10f30}',
-    '\u{10f51}',
-    '\u{10f5a}',
-    '\u{10fb0}',
-    '\u{10fc5}',
-    '\u{10fcc}',
-    '\u{10fe0}',
-    '\u{10ff7}',
-    '\u{11000}',
-    '\u{11047}',
-    '\u{1104e}',
-    '\u{11052}',
-    '\u{11066}',
-    '\u{11070}',
-    '\u{1107f}',
-    '\u{110bb}',
-    '\u{110bd}',
-    '\u{110be}',
-    '\u{110c2}',
-    '\u{110d0}',
-    '\u{110e9}',
-    '\u{110f0}',
-    '\u{110fa}',
-    '\u{11100}',
-    '\u{11135}',
-    '\u{11136}',
-    '\u{11140}',
-    '\u{11144}',
-    '\u{11148}',
-    '\u{11150}',
-    '\u{11174}',
-    '\u{11176}',
-    '\u{11177}',
-    '\u{11180}',
-    '\u{111c5}',
-    '\u{111c9}',
-    '\u{111cd}',
-    '\u{111ce}',
-    '\u{111db}',
-    '\u{111dd}',
-    '\u{111e0}',
-    '\u{111e1}',
-    '\u{111f5}',
-    '\u{11200}',
-    '\u{11212}',
-    '\u{11213}',
-    '\u{11238}',
-    '\u{1123e}',
-    '\u{1123f}',
-    '\u{11280}',
-    '\u{11287}',
-    '\u{1128a}',
-    '\u{1128e}',
-    '\u{1128f}',
-    '\u{1129e}',
-    '\u{1129f}',
-    '\u{112a9}',
-    '\u{112aa}',
-    '\u{112b0}',
-    '\u{112eb}',
-    '\u{112f0}',
-    '\u{112fa}',
-    '\u{11300}',
-    '\u{11304}',
-    '\u{11305}',
-    '\u{1130d}',
-    '\u{1130f}',
-    '\u{11311}',
-    '\u{11313}',
-    '\u{11329}',
-    '\u{1132a}',
-    '\u{11331}',
-    '\u{11332}',
-    '\u{11334}',
-    '\u{11335}',
-    '\u{1133a}',
-    '\u{1133b}',
-    '\u{11345}',
-    '\u{11347}',
-    '\u{11349}',
-    '\u{1134b}',
-    '\u{1134e}',
-    '\u{11350}',
-    '\u{11351}',
-    '\u{11357}',
-    '\u{11358}',
-    '\u{1135d}',
-    '\u{11364}',
-    '\u{11366}',
-    '\u{1136d}',
-    '\u{11370}',
-    '\u{11375}',
-    '\u{11400}',
-    '\u{1144b}',
-    '\u{11450}',
-    '\u{1145a}',
-    '\u{1145c}',
-    '\u{1145e}',
-    '\u{11462}',
-    '\u{11480}',
-    '\u{114c6}',
-    '\u{114c8}',
-    '\u{114d0}',
-    '\u{114da}',
-    '\u{11580}',
-    '\u{115b6}',
-    '\u{115b8}',
-    '\u{115c1}',
-    '\u{115d8}',
-    '\u{115de}',
-    '\u{11600}',
-    '\u{11641}',
-    '\u{11644}',
-    '\u{11645}',
-    '\u{11650}',
-    '\u{1165a}',
-    '\u{11660}',
-    '\u{1166d}',
-    '\u{11680}',
-    '\u{116b9}',
-    '\u{116c0}',
-    '\u{116ca}',
-    '\u{11700}',
-    '\u{1171b}',
-    '\u{1171d}',
-    '\u{1172c}',
-    '\u{11730}',
-    '\u{1173a}',
-    '\u{11740}',
-    '\u{11800}',
-    '\u{1183b}',
-    '\u{1183c}',
-    '\u{118a0}',
-    '\u{118c0}',
-    '\u{118ea}',
-    '\u{118f3}',
-    '\u{118ff}',
-    '\u{11907}',
-    '\u{11909}',
-    '\u{1190a}',
-    '\u{1190c}',
-    '\u{11914}',
-    '\u{11915}',
-    '\u{11917}',
-    '\u{11918}',
-    '\u{11936}',
-    '\u{11937}',
-    '\u{11939}',
-    '\u{1193b}',
-    '\u{11944}',
-    '\u{11947}',
-    '\u{11950}',
-    '\u{1195a}',
-    '\u{119a0}',
-    '\u{119a8}',
-    '\u{119aa}',
-    '\u{119d8}',
-    '\u{119da}',
-    '\u{119e2}',
-    '\u{119e3}',
-    '\u{119e5}',
-    '\u{11a00}',
-    '\u{11a3f}',
-    '\u{11a47}',
-    '\u{11a48}',
-    '\u{11a50}',
-    '\u{11a9a}',
-    '\u{11a9d}',
-    '\u{11a9e}',
-    '\u{11aa3}',
-    '\u{11ac0}',
-    '\u{11af9}',
-    '\u{11c00}',
-    '\u{11c09}',
-    '\u{11c0a}',
-    '\u{11c37}',
-    '\u{11c38}',
-    '\u{11c41}',
-    '\u{11c46}',
-    '\u{11c50}',
-    '\u{11c5a}',
-    '\u{11c6d}',
-    '\u{11c70}',
-    '\u{11c72}',
-    '\u{11c90}',
-    '\u{11c92}',
-    '\u{11ca8}',
-    '\u{11ca9}',
-    '\u{11cb7}',
-    '\u{11d00}',
-    '\u{11d07}',
-    '\u{11d08}',
-    '\u{11d0a}',
-    '\u{11d0b}',
-    '\u{11d37}',
-    '\u{11d3a}',
-    '\u{11d3c}',
-    '\u{11d3e}',
-    '\u{11d3f}',
-    '\u{11d48}',
-    '\u{11d50}',
-    '\u{11d5a}',
-    '\u{11d60}',
-    '\u{11d66}',
-    '\u{11d67}',
-    '\u{11d69}',
-    '\u{11d6a}',
-    '\u{11d8f}',
-    '\u{11d90}',
-    '\u{11d92}',
-    '\u{11d93}',
-    '\u{11d99}',
-    '\u{11da0}',
-    '\u{11daa}',
-    '\u{11ee0}',
-    '\u{11ef7}',
-    '\u{11ef9}',
-    '\u{11fb0}',
-    '\u{11fb1}',
-    '\u{11fc0}',
-    '\u{11ff2}',
-    '\u{11fff}',
-    '\u{12000}',
-    '\u{1239a}',
-    '\u{12400}',
-    '\u{1246f}',
-    '\u{12470}',
-    '\u{12475}',
-    '\u{12480}',
-    '\u{12544}',
-    '\u{13000}',
-    '\u{1342f}',
-    '\u{14400}',
-    '\u{14647}',
-    '\u{16800}',
-    '\u{16a39}',
-    '\u{16a40}',
-    '\u{16a5f}',
-    '\u{16a60}',
-    '\u{16a6a}',
-    '\u{16a6e}',
-    '\u{16a70}',
-    '\u{16ad0}',
-    '\u{16aee}',
-    '\u{16af0}',
-    '\u{16af5}',
-    '\u{16af6}',
-    '\u{16b00}',
-    '\u{16b37}',
-    '\u{16b40}',
-    '\u{16b44}',
-    '\u{16b46}',
-    '\u{16b50}',
-    '\u{16b5a}',
-    '\u{16b5b}',
-    '\u{16b62}',
-    '\u{16b63}',
-    '\u{16b78}',
-    '\u{16b7d}',
-    '\u{16b90}',
-    '\u{16e40}',
-    '\u{16e60}',
-    '\u{16e80}',
-    '\u{16e9b}',
-    '\u{16f00}',
-    '\u{16f4b}',
-    '\u{16f4f}',
-    '\u{16f88}',
-    '\u{16f8f}',
-    '\u{16fa0}',
-    '\u{16fe0}',
-    '\u{16fe2}',
-    '\u{16fe3}',
-    '\u{16fe5}',
-    '\u{16ff0}',
-    '\u{16ff2}',
-    '\u{17000}',
-    '\u{187f8}',
-    '\u{18800}',
-    '\u{18cd6}',
-    '\u{18d00}',
-    '\u{18d09}',
-    '\u{1b000}',
-    '\u{1b11f}',
-    '\u{1b150}',
-    '\u{1b153}',
-    '\u{1b164}',
-    '\u{1b168}',
-    '\u{1b170}',
-    '\u{1b2fc}',
-    '\u{1bc00}',
-    '\u{1bc6b}',
-    '\u{1bc70}',
-    '\u{1bc7d}',
-    '\u{1bc80}',
-    '\u{1bc89}',
-    '\u{1bc90}',
-    '\u{1bc9a}',
-    '\u{1bc9c}',
-    '\u{1bc9d}',
-    '\u{1bc9f}',
-    '\u{1bca0}',
-    '\u{1bca4}',
-    '\u{1d000}',
-    '\u{1d0f6}',
-    '\u{1d100}',
-    '\u{1d127}',
-    '\u{1d129}',
-    '\u{1d15e}',
-    '\u{1d165}',
-    '\u{1d173}',
-    '\u{1d17b}',
-    '\u{1d1bb}',
-    '\u{1d1c1}',
-    '\u{1d1e9}',
-    '\u{1d200}',
-    '\u{1d246}',
-    '\u{1d2e0}',
-    '\u{1d2f4}',
-    '\u{1d300}',
-    '\u{1d357}',
-    '\u{1d360}',
-    '\u{1d379}',
-    '\u{1d400}',
-    '\u{1d4a0}',
-    '\u{1d4a2}',
-    '\u{1d4a3}',
-    '\u{1d4a5}',
-    '\u{1d4a7}',
-    '\u{1d4a9}',
-    '\u{1d50b}',
-    '\u{1d50d}',
-    '\u{1d547}',
-    '\u{1d54a}',
-    '\u{1d6a6}',
-    '\u{1d6a8}',
-    '\u{1d6d3}',
-    '\u{1d6d5}',
-    '\u{1d70d}',
-    '\u{1d70f}',
-    '\u{1d747}',
-    '\u{1d749}',
-    '\u{1d781}',
-    '\u{1d783}',
-    '\u{1d7bb}',
-    '\u{1d7bd}',
-    '\u{1d7ca}',
-    '\u{1d7cc}',
-    '\u{1d7ce}',
-    '\u{1d800}',
-    '\u{1da00}',
-    '\u{1da37}',
-    '\u{1da3b}',
-    '\u{1da6d}',
-    '\u{1da75}',
-    '\u{1da76}',
-    '\u{1da84}',
-    '\u{1da85}',
-    '\u{1da8c}',
-    '\u{1da9b}',
-    '\u{1daa0}',
-    '\u{1daa1}',
-    '\u{1dab0}',
-    '\u{1e000}',
-    '\u{1e007}',
-    '\u{1e008}',
-    '\u{1e019}',
-    '\u{1e01b}',
-    '\u{1e022}',
-    '\u{1e023}',
-    '\u{1e025}',
-    '\u{1e026}',
-    '\u{1e02b}',
-    '\u{1e100}',
-    '\u{1e12d}',
-    '\u{1e130}',
-    '\u{1e13e}',
-    '\u{1e140}',
-    '\u{1e14a}',
-    '\u{1e14e}',
-    '\u{1e150}',
-    '\u{1e2c0}',
-    '\u{1e2fa}',
-    '\u{1e2ff}',
-    '\u{1e300}',
-    '\u{1e800}',
-    '\u{1e8c5}',
-    '\u{1e8c7}',
-    '\u{1e8d0}',
-    '\u{1e8d7}',
-    '\u{1e900}',
-    '\u{1e922}',
-    '\u{1e94c}',
-    '\u{1e950}',
-    '\u{1e95a}',
-    '\u{1e95e}',
-    '\u{1e960}',
-    '\u{1ec71}',
-    '\u{1ecb5}',
-    '\u{1ed01}',
-    '\u{1ed3e}',
-    '\u{1ee00}',
-    '\u{1ee25}',
-    '\u{1ee27}',
-    '\u{1ee3c}',
-    '\u{1ee42}',
-    '\u{1ee43}',
-    '\u{1ee47}',
-    '\u{1ee55}',
-    '\u{1ee57}',
-    '\u{1ee65}',
-    '\u{1ee67}',
-    '\u{1ee9c}',
-    '\u{1eea1}',
-    '\u{1eebc}',
-    '\u{1eef0}',
-    '\u{1eef2}',
-    '\u{1f000}',
-    '\u{1f02c}',
-    '\u{1f030}',
-    '\u{1f094}',
-    '\u{1f0a0}',
-    '\u{1f0af}',
-    '\u{1f0b1}',
-    '\u{1f0c0}',
-    '\u{1f0c1}',
-    '\u{1f0d0}',
-    '\u{1f0d1}',
-    '\u{1f0f6}',
-    '\u{1f101}',
-    '\u{1f10b}',
-    '\u{1f110}',
-    '\u{1f150}',
-    '\u{1f16a}',
-    '\u{1f16d}',
-    '\u{1f190}',
-    '\u{1f191}',
-    '\u{1f1ae}',
-    '\u{1f1e6}',
-    '\u{1f200}',
-    '\u{1f203}',
-    '\u{1f210}',
-    '\u{1f23c}',
-    '\u{1f240}',
-    '\u{1f249}',
-    '\u{1f250}',
-    '\u{1f252}',
-    '\u{1f260}',
-    '\u{1f266}',
-    '\u{1f300}',
-    '\u{1f6d8}',
-    '\u{1f6e0}',
-    '\u{1f6ed}',
-    '\u{1f6f0}',
-    '\u{1f6fd}',
-    '\u{1f700}',
-    '\u{1f774}',
-    '\u{1f780}',
-    '\u{1f7d9}',
-    '\u{1f7e0}',
-    '\u{1f7ec}',
-    '\u{1f800}',
-    '\u{1f80c}',
-    '\u{1f810}',
-    '\u{1f848}',
-    '\u{1f850}',
-    '\u{1f85a}',
-    '\u{1f860}',
-    '\u{1f888}',
-    '\u{1f890}',
-    '\u{1f8ae}',
-    '\u{1f8b0}',
-    '\u{1f8b2}',
-    '\u{1f900}',
-    '\u{1f979}',
-    '\u{1f97a}',
-    '\u{1f9cc}',
-    '\u{1f9cd}',
-    '\u{1fa54}',
-    '\u{1fa60}',
-    '\u{1fa6e}',
-    '\u{1fa70}',
-    '\u{1fa75}',
-    '\u{1fa78}',
-    '\u{1fa7b}',
-    '\u{1fa80}',
-    '\u{1fa87}',
-    '\u{1fa90}',
-    '\u{1faa9}',
-    '\u{1fab0}',
-    '\u{1fab7}',
-    '\u{1fac0}',
-    '\u{1fac3}',
-    '\u{1fad0}',
-    '\u{1fad7}',
-    '\u{1fb00}',
-    '\u{1fb93}',
-    '\u{1fb94}',
-    '\u{1fbcb}',
-    '\u{1fbf0}',
-    '\u{1fbfa}',
-    '\u{20000}',
-    '\u{2a6de}',
-    '\u{2a700}',
-    '\u{2b735}',
-    '\u{2b740}',
-    '\u{2b81e}',
-    '\u{2b820}',
-    '\u{2cea2}',
-    '\u{2ceb0}',
-    '\u{2ebe1}',
-    '\u{2f800}',
-    '\u{2f831}',
-    '\u{2f834}',
-    '\u{2f845}',
-    '\u{2f847}',
-    '\u{2f86a}',
-    '\u{2f86c}',
-    '\u{2f891}',
-    '\u{2f893}',
-    '\u{2f894}',
-    '\u{2f896}',
-    '\u{2f92c}',
-    '\u{2f92e}',
-    '\u{2f946}',
-    '\u{2f948}',
-    '\u{2f95d}',
-    '\u{2f95f}',
-    '\u{2f9fe}',
-    '\u{2fa00}',
-    '\u{2fa1e}',
-    '\u{30000}',
-    '\u{3134b}',
-    '\u{e0100}',
-    '\u{e01f0}',
-];
-
-static INDEX_TABLE: &[u16] = &[
-    32768,
-    32769,
-    32770,
-    32771,
-    32772,
-    5,
-    32799,
-    32800,
-    32801,
-    32802,
-    32803,
-    32804,
-    37,
-    32808,
-    41,
-    32812,
-    45,
-    32859,
-    32860,
-    32861,
-    94,
-    32912,
-    145,
-    32916,
-    149,
-    32923,
-    156,
-    32999,
-    232,
-    33011,
-    244,
-    33026,
-    259,
-    33040,
-    33041,
-    33042,
-    33043,
-    33044,
-    33045,
-    278,
-    33061,
-    294,
-    33079,
-    33080,
-    313,
-    33144,
-    377,
-    33150,
-    383,
-    33165,
-    398,
-    33175,
-    33176,
-    33177,
-    33178,
-    411,
-    33185,
-    418,
-    33191,
-    424,
-    33195,
-    33196,
-    429,
-    33203,
-    33204,
-    33205,
-    438,
-    33214,
-    33215,
-    33216,
-    449,
-    33219,
-    452,
-    33260,
-    33261,
-    33262,
-    495,
-    33307,
-    540,
-    33359,
-    592,
-    33395,
-    33396,
-    629,
-    33465,
-    698,
-    33601,
-    33602,
-    33603,
-    33604,
-    837,
-    33607,
-    33608,
-    33609,
-    33610,
-    33611,
-    844,
-    33615,
-    33616,
-    33617,
-    850,
-    33620,
-    33621,
-    33622,
-    33623,
-    33624,
-    33625,
-    33626,
-    33627,
-    33628,
-    33629,
-    33630,
-    33631,
-    33632,
-    33633,
-    33634,
-    867,
-    33639,
-    33640,
-    33641,
-    874,
-    33644,
-    33645,
-    33646,
-    33647,
-    33648,
-    33649,
-    33650,
-    33651,
-    33652,
-    33653,
-    33654,
-    33655,
-    33656,
-    33657,
-    33658,
-    33659,
-    33660,
-    33661,
-    33662,
-    33663,
-    896,
-    33666,
-    33667,
-    33668,
-    33669,
-    33670,
-    33671,
-    33672,
-    33673,
-    33674,
-    907,
-    33683,
-    33684,
-    33685,
-    33686,
-    33687,
-    33688,
-    33689,
-    33690,
-    33691,
-    33692,
-    33693,
-    33694,
-    33695,
-    928,
-    33698,
-    33699,
-    33700,
-    33701,
-    33702,
-    33703,
-    33704,
-    33705,
-    33706,
-    33707,
-    33708,
-    941,
-    33713,
-    33714,
-    33715,
-    33716,
-    949,
-    33720,
-    33721,
-    33722,
-    33723,
-    33724,
-    33725,
-    33726,
-    33727,
-    33728,
-    33729,
-    962,
-    33737,
-    33738,
-    971,
-    33741,
-    33742,
-    33743,
-    33744,
-    33745,
-    33746,
-    33747,
-    33748,
-    981,
-    33755,
-    33756,
-    33757,
-    33758,
-    33759,
-    33760,
-    33761,
-    33762,
-    33763,
-    33764,
-    33765,
-    33766,
-    33767,
-    33768,
-    33769,
-    33770,
-    33771,
-    33772,
-    33773,
-    33774,
-    33775,
-    33776,
-    33777,
-    33778,
-    33779,
-    33780,
-    33781,
-    33782,
-    33783,
-    33784,
-    33785,
-    33786,
-    33787,
-    33788,
-    33789,
-    33790,
-    33791,
-    33792,
-    33793,
-    33794,
-    33795,
-    33796,
-    33797,
-    33798,
-    33799,
-    33800,
-    33801,
-    33802,
-    33803,
-    33804,
-    33805,
-    33806,
-    33807,
-    33808,
-    33809,
-    1042,
-    33813,
-    33814,
-    33815,
-    1048,
-    33818,
-    33819,
-    33820,
-    33821,
-    33822,
-    33823,
-    33824,
-    33825,
-    33826,
-    33827,
-    33828,
-    1061,
-    33832,
-    33833,
-    33834,
-    33835,
-    33836,
-    33837,
-    33838,
-    33839,
-    33840,
-    33841,
-    33842,
-    33843,
-    33844,
-    33845,
-    33846,
-    33847,
-    33848,
-    33849,
-    33850,
-    33851,
-    33852,
-    33853,
-    33854,
-    33855,
-    33856,
-    33857,
-    33858,
-    33859,
-    33860,
-    33861,
-    33862,
-    33863,
-    33864,
-    33865,
-    33866,
-    33867,
-    33868,
-    33869,
-    33870,
-    33871,
-    33872,
-    33873,
-    33874,
-    33875,
-    33876,
-    33877,
-    33878,
-    33879,
-    33880,
-    33881,
-    33882,
-    33883,
-    33884,
-    33885,
-    33886,
-    33887,
-    33888,
-    33889,
-    33890,
-    33891,
-    33892,
-    33893,
-    33894,
-    33895,
-    1128,
-    33898,
-    33899,
-    33900,
-    33901,
-    33902,
-    33903,
-    33904,
-    33905,
-    33906,
-    33907,
-    33908,
-    33909,
-    33910,
-    33911,
-    33912,
-    33913,
-    33914,
-    33915,
-    33916,
-    33917,
-    33918,
-    33919,
-    33920,
-    33921,
-    33922,
-    33923,
-    33924,
-    33925,
-    33926,
-    33927,
-    33928,
-    33929,
-    1162,
-    33932,
-    33933,
-    33934,
-    33935,
-    33936,
-    33937,
-    1170,
-    33941,
-    33942,
-    33943,
-    33944,
-    33945,
-    33946,
-    33947,
-    33948,
-    33949,
-    33950,
-    33951,
-    33952,
-    33953,
-    33954,
-    33955,
-    33956,
-    33957,
-    33958,
-    1191,
-    33962,
-    33963,
-    33964,
-    1197,
-    33968,
-    33969,
-    33970,
-    33971,
-    33972,
-    1205,
-    33976,
-    33977,
-    33978,
-    33979,
-    1212,
-    33982,
-    33983,
-    33984,
-    33985,
-    1218,
-    33988,
-    33989,
-    33990,
-    33991,
-    33992,
-    1225,
-    33998,
-    33999,
-    34000,
-    34001,
-    34002,
-    34003,
-    34004,
-    34005,
-    34006,
-    34007,
-    34008,
-    34009,
-    34010,
-    34011,
-    34012,
-    34013,
-    34014,
-    34015,
-    1248,
-    34023,
-    34024,
-    34025,
-    34026,
-    34027,
-    34028,
-    34029,
-    34030,
-    34031,
-    34032,
-    34033,
-    34034,
-    34035,
-    34036,
-    34037,
-    34038,
-    34039,
-    34040,
-    34041,
-    34042,
-    34043,
-    34044,
-    34045,
-    34046,
-    34047,
-    34048,
-    34049,
-    34050,
-    34051,
-    34052,
-    34053,
-    34054,
-    34055,
-    34056,
-    34057,
-    34058,
-    1291,
-    34061,
-    34062,
-    34063,
-    34064,
-    34065,
-    34066,
-    34067,
-    34068,
-    34069,
-    1302,
-    34073,
-    34074,
-    34075,
-    34076,
-    34077,
-    34078,
-    34079,
-    34080,
-    34081,
-    34082,
-    34083,
-    1316,
-    34087,
-    34088,
-    34089,
-    34090,
-    34091,
-    34092,
-    34093,
-    34094,
-    34095,
-    34096,
-    34097,
-    34098,
-    34099,
-    34100,
-    34101,
-    34102,
-    34103,
-    34104,
-    1337,
-    34111,
-    34112,
-    34113,
-    34114,
-    34115,
-    34116,
-    34117,
-    34118,
-    34119,
-    34120,
-    34121,
-    34122,
-    34123,
-    34124,
-    34125,
-    34126,
-    34127,
-    34128,
-    34129,
-    34130,
-    34131,
-    34132,
-    34133,
-    34134,
-    34135,
-    34136,
-    34137,
-    34138,
-    34139,
-    34140,
-    34141,
-    34142,
-    34143,
-    34144,
-    34145,
-    34146,
-    34147,
-    34148,
-    34149,
-    34150,
-    34151,
-    34152,
-    34153,
-    34154,
-    34155,
-    34156,
-    34157,
-    34158,
-    34159,
-    34160,
-    34161,
-    34162,
-    34163,
-    34164,
-    34165,
-    34166,
-    34167,
-    34168,
-    34169,
-    34170,
-    34171,
-    34172,
-    34173,
-    34174,
-    34175,
-    34176,
-    34177,
-    34178,
-    34179,
-    34180,
-    34181,
-    34182,
-    34183,
-    34184,
-    34185,
-    34186,
-    34187,
-    34188,
-    34189,
-    34190,
-    34191,
-    34192,
-    34193,
-    34194,
-    34195,
-    34196,
-    34197,
-    34198,
-    34199,
-    34200,
-    34201,
-    34202,
-    34203,
-    34204,
-    34205,
-    34206,
-    34207,
-    34208,
-    34209,
-    34210,
-    34211,
-    34212,
-    34213,
-    34214,
-    34215,
-    34216,
-    34217,
-    34218,
-    34219,
-    34220,
-    1453,
-    34225,
-    1458,
-    34229,
-    1462,
-    34273,
-    1506,
-    34277,
-    34278,
-    34279,
-    34280,
-    34281,
-    34282,
-    34283,
-    1516,
-    34347,
-    34348,
-    34349,
-    1582,
-    34387,
-    34388,
-    34389,
-    1622,
-    34539,
-    1772,
-    34542,
-    1775,
-    34640,
-    1873,
-    34649,
-    34650,
-    1883,
-    34657,
-    34658,
-    1891,
-    34667,
-    1900,
-    34676,
-    34677,
-    1910,
-    34684,
-    34685,
-    1918,
-    34694,
-    1927,
-    34717,
-    1950,
-    34766,
-    1999,
-    34797,
-    34798,
-    34799,
-    34800,
-    2033,
-    34809,
-    34810,
-    34811,
-    2044,
-    34820,
-    2053,
-    34835,
-    34836,
-    34837,
-    34838,
-    2071,
-    34841,
-    34842,
-    34843,
-    34844,
-    34845,
-    34846,
-    34847,
-    34848,
-    2081,
-    34854,
-    2087,
-    34858,
-    2091,
-    34862,
-    34863,
-    34864,
-    2097,
-    34867,
-    34868,
-    34869,
-    2102,
-    34872,
-    2105,
-    34914,
-    34915,
-    34916,
-    34917,
-    34918,
-    34919,
-    34920,
-    2153,
-    34932,
-    34933,
-    34934,
-    34935,
-    2168,
-    34939,
-    2172,
-    34942,
-    34943,
-    2176,
-    34959,
-    2192,
-    34972,
-    2205,
-    34975,
-    34976,
-    2209,
-    34980,
-    2213,
-    35031,
-    2264,
-    35034,
-    35035,
-    35036,
-    35037,
-    35038,
-    2271,
-    35044,
-    35045,
-    35046,
-    35047,
-    35048,
-    2281,
-    35051,
-    35052,
-    35053,
-    35054,
-    2287,
-    35095,
-    2328,
-    35175,
-    35176,
-    35177,
-    2410,
-    35181,
-    35182,
-    35183,
-    35184,
-    35185,
-    35186,
-    35187,
-    2420,
-    35236,
-    2469,
-    35243,
-    2476,
-    35256,
-    35257,
-    35258,
-    2491,
-    35362,
-    35363,
-    2596,
-    35367,
-    2600,
-    35370,
-    35371,
-    35372,
-    2605,
-    35375,
-    35376,
-    35377,
-    35378,
-    35379,
-    2612,
-    35382,
-    35383,
-    35384,
-    35385,
-    35386,
-    35387,
-    35388,
-    35389,
-    35390,
-    35391,
-    35392,
-    35393,
-    35394,
-    35395,
-    35396,
-    35397,
-    35398,
-    35399,
-    35400,
-    35401,
-    35402,
-    35403,
-    35404,
-    35405,
-    35406,
-    35407,
-    35408,
-    35409,
-    35410,
-    35411,
-    35412,
-    2645,
-    35627,
-    2860,
-    35631,
-    35632,
-    35633,
-    35634,
-    35635,
-    2868,
-    35643,
-    35644,
-    35645,
-    35646,
-    35647,
-    2880,
-    35650,
-    2883,
-    35653,
-    35654,
-    35655,
-    35656,
-    2889,
-    35753,
-    2986,
-    35768,
-    35769,
-    35770,
-    35771,
-    3004,
-    35844,
-    3077,
-    36277,
-    36278,
-    36279,
-    36280,
-    36281,
-    36282,
-    36283,
-    36284,
-    36285,
-    36286,
-    36287,
-    36288,
-    36289,
-    36290,
-    3523,
-    36336,
-    36337,
-    36338,
-    3571,
-    36371,
-    36372,
-    36373,
-    36374,
-    36375,
-    36376,
-    36377,
-    36378,
-    3611,
-    36392,
-    3625,
-    36456,
-    3689,
-    36471,
-    36472,
-    3705,
-    36476,
-    3709,
-    36480,
-    3713,
-    36523,
-    3756,
-    36533,
-    36534,
-    36535,
-    3768,
-    36538,
-    36539,
-    36540,
-    36541,
-    36542,
-    36543,
-    36544,
-    36545,
-    36546,
-    36547,
-    36548,
-    36549,
-    36550,
-    36551,
-    36552,
-    36553,
-    3786,
-    36556,
-    36557,
-    36558,
-    36559,
-    36560,
-    36561,
-    36562,
-    36563,
-    36564,
-    36565,
-    36566,
-    36567,
-    36568,
-    36569,
-    36570,
-    36571,
-    36572,
-    36573,
-    36574,
-    36575,
-    36576,
-    36577,
-    36578,
-    36579,
-    36580,
-    36581,
-    36582,
-    36583,
-    36584,
-    36585,
-    36586,
-    36587,
-    36588,
-    36589,
-    36590,
-    36591,
-    36592,
-    36593,
-    36594,
-    36595,
-    36596,
-    36597,
-    3830,
-    36603,
-    36604,
-    36605,
-    36606,
-    3839,
-    36687,
-    36688,
-    36689,
-    36690,
-    36691,
-    36692,
-    36693,
-    36694,
-    36695,
-    36696,
-    36697,
-    36698,
-    3931,
-    36706,
-    3939,
-    36968,
-    4201,
-    36972,
-    4205,
-    36987,
-    4220,
-    36990,
-    4223,
-    37042,
-    4275,
-    37058,
-    4291,
-    37165,
-    4398,
-    37171,
-    37172,
-    4405,
-    37178,
-    4411,
-    37230,
-    37231,
-    37232,
-    37233,
-    37234,
-    37235,
-    37236,
-    37237,
-    37238,
-    37239,
-    37240,
-    37241,
-    37242,
-    37243,
-    37244,
-    37245,
-    37246,
-    37247,
-    37248,
-    37249,
-    37250,
-    37251,
-    37252,
-    37253,
-    37254,
-    37255,
-    37256,
-    37257,
-    37258,
-    37259,
-    37260,
-    37261,
-    37262,
-    37263,
-    37264,
-    37265,
-    37266,
-    37267,
-    37268,
-    37269,
-    37270,
-    37271,
-    37272,
-    37273,
-    37274,
-    37275,
-    37276,
-    37277,
-    37278,
-    37279,
-    37280,
-    4513,
-    37597,
-    37598,
-    37599,
-    37600,
-    37601,
-    4834,
-    37607,
-    4840,
-    37613,
-    37614,
-    37615,
-    37616,
-    37617,
-    37618,
-    37619,
-    37620,
-    37621,
-    37622,
-    37623,
-    37624,
-    4857,
-    37628,
-    4861,
-    37633,
-    4866,
-    37639,
-    37640,
-    37641,
-    4874,
-    37649,
-    4882,
-    37655,
-    4888,
-    37659,
-    4892,
-    37702,
-    4935,
-    37717,
-    37718,
-    4951,
-    37728,
-    37729,
-    4962,
-    37733,
-    4966,
-    37750,
-    4983,
-    37753,
-    37754,
-    4987,
-    37757,
-    4990,
-    37782,
-    5015,
-    37800,
-    37801,
-    37802,
-    37803,
-    37804,
-    37805,
-    37806,
-    37807,
-    37808,
-    37809,
-    37810,
-    37811,
-    37812,
-    37813,
-    37814,
-    37815,
-    37816,
-    37817,
-    37818,
-    37819,
-    37820,
-    37821,
-    37822,
-    37823,
-    37824,
-    37825,
-    37826,
-    37827,
-    37828,
-    37829,
-    37830,
-    37831,
-    37832,
-    37833,
-    37834,
-    37835,
-    37836,
-    37837,
-    37838,
-    37839,
-    5072,
-    38032,
-    5265,
-    38039,
-    5272,
-    38046,
-    5279,
-    38053,
-    5286,
-    38057,
-    5290,
-    38073,
-    38074,
-    38075,
-    38076,
-    38077,
-    38078,
-    38079,
-    38080,
-    38081,
-    38082,
-    38083,
-    38084,
-    38085,
-    38086,
-    38087,
-    38088,
-    38089,
-    38090,
-    38091,
-    38092,
-    38093,
-    38094,
-    38095,
-    38096,
-    38097,
-    38098,
-    38099,
-    38100,
-    38101,
-    38102,
-    38103,
-    38104,
-    38105,
-    38106,
-    38107,
-    38108,
-    38109,
-    38110,
-    38111,
-    38112,
-    38113,
-    38114,
-    38115,
-    38116,
-    38117,
-    38118,
-    5351,
-    38121,
-    38122,
-    38123,
-    38124,
-    38125,
-    5358,
-    38166,
-    38167,
-    38168,
-    38169,
-    5402,
-    38206,
-    38207,
-    38208,
-    38209,
-    38210,
-    38211,
-    38212,
-    38213,
-    38214,
-    38215,
-    38216,
-    38217,
-    38218,
-    38219,
-    38220,
-    38221,
-    38222,
-    5455,
-    38225,
-    38226,
-    38227,
-    38228,
-    38229,
-    38230,
-    38231,
-    38232,
-    38233,
-    38234,
-    38235,
-    38236,
-    38237,
-    38238,
-    38239,
-    38240,
-    38241,
-    38242,
-    38243,
-    38244,
-    38245,
-    38246,
-    38247,
-    38248,
-    38249,
-    38250,
-    38251,
-    38252,
-    38253,
-    38254,
-    38255,
-    38256,
-    38257,
-    38258,
-    38259,
-    38260,
-    38261,
-    38262,
-    38263,
-    38264,
-    38265,
-    38266,
-    38267,
-    38268,
-    38269,
-    38270,
-    38271,
-    38272,
-    38273,
-    38274,
-    38275,
-    38276,
-    38277,
-    38278,
-    38279,
-    38280,
-    38281,
-    38282,
-    38283,
-    38284,
-    38285,
-    38286,
-    38287,
-    38288,
-    38289,
-    38290,
-    38291,
-    38292,
-    38293,
-    38294,
-    38295,
-    38296,
-    38297,
-    38298,
-    38299,
-    38300,
-    38301,
-    38302,
-    38303,
-    38304,
-    5537,
-    38356,
-    38357,
-    38358,
-    38359,
-    38360,
-    38361,
-    38362,
-    38363,
-    38364,
-    38365,
-    38366,
-    38367,
-    38368,
-    38369,
-    38370,
-    38371,
-    38372,
-    38373,
-    38374,
-    38375,
-    38376,
-    38377,
-    38378,
-    38379,
-    38380,
-    38381,
-    38382,
-    38383,
-    38384,
-    38385,
-    38386,
-    38387,
-    38388,
-    38389,
-    38390,
-    38391,
-    38392,
-    38393,
-    38394,
-    38395,
-    38396,
-    38397,
-    38398,
-    38399,
-    38400,
-    38401,
-    38402,
-    38403,
-    38404,
-    38405,
-    38406,
-    38407,
-    38408,
-    38409,
-    38410,
-    38411,
-    38412,
-    38413,
-    38414,
-    5647,
-    38417,
-    38418,
-    38419,
-    38420,
-    38421,
-    38422,
-    38423,
-    38424,
-    38425,
-    38426,
-    38427,
-    5660,
-    38431,
-    38432,
-    38433,
-    38434,
-    38435,
-    38436,
-    38437,
-    38438,
-    38439,
-    38440,
-    38441,
-    38442,
-    38443,
-    38444,
-    38445,
-    38446,
-    38447,
-    38448,
-    38449,
-    38450,
-    38451,
-    38452,
-    38453,
-    38454,
-    38455,
-    38456,
-    38457,
-    38458,
-    38459,
-    38460,
-    38461,
-    38462,
-    38463,
-    38464,
-    38465,
-    38466,
-    38467,
-    38468,
-    38469,
-    38470,
-    38471,
-    38472,
-    38473,
-    38474,
-    38475,
-    5708,
-    38478,
-    38479,
-    38480,
-    5713,
-    38483,
-    38484,
-    38485,
-    38486,
-    38487,
-    38488,
-    38489,
-    38490,
-    38491,
-    38492,
-    38493,
-    38494,
-    38495,
-    38496,
-    38497,
-    38498,
-    38499,
-    38500,
-    38501,
-    38502,
-    38503,
-    38504,
-    38505,
-    38506,
-    38507,
-    38508,
-    38509,
-    38510,
-    38511,
-    38512,
-    38513,
-    5746,
-    38546,
-    38547,
-    38548,
-    38549,
-    38550,
-    38551,
-    38552,
-    38553,
-    38554,
-    38555,
-    38556,
-    38557,
-    38558,
-    38559,
-    38560,
-    38561,
-    38562,
-    38563,
-    38564,
-    38565,
-    38566,
-    38567,
-    38568,
-    38569,
-    38570,
-    38571,
-    38572,
-    38573,
-    38574,
-    38575,
-    38576,
-    38577,
-    38578,
-    38579,
-    38580,
-    38581,
-    38582,
-    38583,
-    38584,
-    38585,
-    38586,
-    38587,
-    38588,
-    38589,
-    38590,
-    38591,
-    38592,
-    38593,
-    38594,
-    38595,
-    38596,
-    38597,
-    38598,
-    38599,
-    38600,
-    38601,
-    38602,
-    38603,
-    38604,
-    38605,
-    38606,
-    38607,
-    5840,
-    38610,
-    38611,
-    38612,
-    38613,
-    38614,
-    38615,
-    38616,
-    38617,
-    38618,
-    38619,
-    38620,
-    38621,
-    38622,
-    38623,
-    38624,
-    38625,
-    38626,
-    38627,
-    38628,
-    38629,
-    38630,
-    38631,
-    38632,
-    38633,
-    38634,
-    38635,
-    38636,
-    38637,
-    38638,
-    38639,
-    38640,
-    38641,
-    38642,
-    38643,
-    38644,
-    38645,
-    38646,
-    38647,
-    38648,
-    38649,
-    38650,
-    38651,
-    38652,
-    38653,
-    38654,
-    38655,
-    38656,
-    38657,
-    38658,
-    38659,
-    38660,
-    38661,
-    38662,
-    38663,
-    38664,
-    38665,
-    38666,
-    38667,
-    38668,
-    38669,
-    38670,
-    38671,
-    38672,
-    38673,
-    5906,
-    38706,
-    38707,
-    38708,
-    38709,
-    38710,
-    38711,
-    38712,
-    38713,
-    38714,
-    38715,
-    38716,
-    38717,
-    38718,
-    38719,
-    38720,
-    38721,
-    38722,
-    38723,
-    38724,
-    38725,
-    38726,
-    38727,
-    38728,
-    38729,
-    38730,
-    38731,
-    38732,
-    38733,
-    38734,
-    38735,
-    38736,
-    38737,
-    38738,
-    38739,
-    38740,
-    38741,
-    38742,
-    38743,
-    38744,
-    38745,
-    38746,
-    38747,
-    38748,
-    38749,
-    38750,
-    38751,
-    38752,
-    5985,
-    38760,
-    38761,
-    38762,
-    5995,
-    38769,
-    38770,
-    38771,
-    38772,
-    38773,
-    38774,
-    38775,
-    38776,
-    38777,
-    38778,
-    6011,
-    38939,
-    38940,
-    38941,
-    6174,
-    38944,
-    6177,
-    39043,
-    6276,
-    39102,
-    6335,
-    39451,
-    6684,
-    39495,
-    6728,
-    39552,
-    6785,
-    39609,
-    6842,
-    39666,
-    6899,
-    39723,
-    6956,
-    39737,
-    39738,
-    6971,
-    39789,
-    39790,
-    39791,
-    39792,
-    39793,
-    39794,
-    39795,
-    39796,
-    39797,
-    39798,
-    39799,
-    39800,
-    39801,
-    39802,
-    39803,
-    39804,
-    39805,
-    39806,
-    39807,
-    39808,
-    39809,
-    39810,
-    39811,
-    39812,
-    39813,
-    39814,
-    39815,
-    39816,
-    39817,
-    39818,
-    7051,
-    39821,
-    39822,
-    39823,
-    39824,
-    39825,
-    39826,
-    39827,
-    39828,
-    39829,
-    39830,
-    7063,
-    39865,
-    39866,
-    39867,
-    39868,
-    39869,
-    39870,
-    39871,
-    39872,
-    39873,
-    39874,
-    7107,
-    39912,
-    7145,
-    39934,
-    39935,
-    39936,
-    7169,
-    39951,
-    7184,
-    39966,
-    7199,
-    40020,
-    7253,
-    40048,
-    40049,
-    40050,
-    40051,
-    40052,
-    40053,
-    40054,
-    40055,
-    40056,
-    40057,
-    40058,
-    40059,
-    40060,
-    40061,
-    40062,
-    7295,
-    40073,
-    7306,
-    40138,
-    7371,
-    40142,
-    40143,
-    40144,
-    40145,
-    40146,
-    7379,
-    40150,
-    7383,
-    40195,
-    7428,
-    40205,
-    7438,
-    40208,
-    40209,
-    40210,
-    40211,
-    40212,
-    40213,
-    40214,
-    40215,
-    40216,
-    40217,
-    40218,
-    40219,
-    40220,
-    40221,
-    40222,
-    40223,
-    40224,
-    40225,
-    40226,
-    40227,
-    40228,
-    40229,
-    40230,
-    40231,
-    40232,
-    40233,
-    40234,
-    40235,
-    40236,
-    40237,
-    40238,
-    40239,
-    40240,
-    40241,
-    40242,
-    40243,
-    40244,
-    40245,
-    40246,
-    40247,
-    40248,
-    40249,
-    40250,
-    40251,
-    40252,
-    40253,
-    40254,
-    40255,
-    40256,
-    40257,
-    40258,
-    40259,
-    40260,
-    7493,
-    40271,
-    40272,
-    40273,
-    40274,
-    40275,
-    40276,
-    40277,
-    40278,
-    40279,
-    40280,
-    40281,
-    7514,
-    40331,
-    7564,
-    40349,
-    7582,
-    40385,
-    7618,
-    40423,
-    40424,
-    40425,
-    7658,
-    40576,
-    7809,
-    40601,
-    7834,
-    40623,
-    7856,
-    40783,
-    8016,
-    40814,
-    40815,
-    40816,
-    40817,
-    40818,
+static TABLE: &[(char, u16)] = &[
+    ('\u{0}', 32768),
+    ('\u{2d}', 32769),
+    ('\u{2f}', 32770),
+    ('\u{30}', 32771),
+    ('\u{3a}', 32772),
+    ('\u{41}', 5),
+    ('\u{5b}', 32799),
+    ('\u{61}', 32800),
+    ('\u{7b}', 32801),
+    ('\u{80}', 32802),
+    ('\u{a0}', 32803),
+    ('\u{a1}', 32804),
+    ('\u{a8}', 37),
+    ('\u{ab}', 32808),
+    ('\u{ad}', 41),
+    ('\u{b0}', 32812),
+    ('\u{b2}', 45),
+    ('\u{e0}', 32859),
+    ('\u{f7}', 32860),
+    ('\u{f8}', 32861),
+    ('\u{100}', 94),
+    ('\u{132}', 32912),
+    ('\u{134}', 145),
+    ('\u{137}', 32916),
+    ('\u{139}', 149),
+    ('\u{13f}', 32923),
+    ('\u{141}', 156),
+    ('\u{18c}', 32999),
+    ('\u{18e}', 232),
+    ('\u{199}', 33011),
+    ('\u{19c}', 244),
+    ('\u{1aa}', 33026),
+    ('\u{1ac}', 259),
+    ('\u{1b9}', 33040),
+    ('\u{1bc}', 33041),
+    ('\u{1bd}', 33042),
+    ('\u{1c4}', 33043),
+    ('\u{1c7}', 33044),
+    ('\u{1ca}', 33045),
+    ('\u{1cd}', 278),
+    ('\u{1dc}', 33061),
+    ('\u{1de}', 294),
+    ('\u{1ef}', 33079),
+    ('\u{1f1}', 33080),
+    ('\u{1f4}', 313),
+    ('\u{233}', 33144),
+    ('\u{23a}', 377),
+    ('\u{23f}', 33150),
+    ('\u{241}', 383),
+    ('\u{24f}', 33165),
+    ('\u{2b0}', 398),
+    ('\u{2b9}', 33175),
+    ('\u{2c2}', 33176),
+    ('\u{2c6}', 33177),
+    ('\u{2d2}', 33178),
+    ('\u{2d8}', 411),
+    ('\u{2de}', 33185),
+    ('\u{2e0}', 418),
+    ('\u{2e5}', 33191),
+    ('\u{2ec}', 424),
+    ('\u{2ef}', 33195),
+    ('\u{300}', 33196),
+    ('\u{340}', 429),
+    ('\u{346}', 33203),
+    ('\u{34f}', 33204),
+    ('\u{350}', 33205),
+    ('\u{370}', 438),
+    ('\u{378}', 33214),
+    ('\u{37a}', 33215),
+    ('\u{37b}', 33216),
+    ('\u{37e}', 449),
+    ('\u{380}', 33219),
+    ('\u{384}', 452),
+    ('\u{3ac}', 33260),
+    ('\u{3c2}', 33261),
+    ('\u{3c3}', 33262),
+    ('\u{3cf}', 495),
+    ('\u{3fb}', 33307),
+    ('\u{3fd}', 540),
+    ('\u{430}', 33359),
+    ('\u{460}', 592),
+    ('\u{483}', 33395),
+    ('\u{488}', 33396),
+    ('\u{48a}', 629),
+    ('\u{4ce}', 33465),
+    ('\u{4d0}', 698),
+    ('\u{557}', 33601),
+    ('\u{559}', 33602),
+    ('\u{55a}', 33603),
+    ('\u{560}', 33604),
+    ('\u{587}', 837),
+    ('\u{589}', 33607),
+    ('\u{58b}', 33608),
+    ('\u{58d}', 33609),
+    ('\u{590}', 33610),
+    ('\u{591}', 33611),
+    ('\u{5be}', 844),
+    ('\u{5c1}', 33615),
+    ('\u{5c3}', 33616),
+    ('\u{5c4}', 33617),
+    ('\u{5c6}', 850),
+    ('\u{5c8}', 33620),
+    ('\u{5d0}', 33621),
+    ('\u{5eb}', 33622),
+    ('\u{5ef}', 33623),
+    ('\u{5f5}', 33624),
+    ('\u{606}', 33625),
+    ('\u{610}', 33626),
+    ('\u{61b}', 33627),
+    ('\u{61c}', 33628),
+    ('\u{61e}', 33629),
+    ('\u{620}', 33630),
+    ('\u{640}', 33631),
+    ('\u{641}', 33632),
+    ('\u{66a}', 33633),
+    ('\u{66e}', 33634),
+    ('\u{675}', 867),
+    ('\u{679}', 33639),
+    ('\u{6d4}', 33640),
+    ('\u{6d5}', 33641),
+    ('\u{6dd}', 874),
+    ('\u{6df}', 33644),
+    ('\u{6e9}', 33645),
+    ('\u{6ea}', 33646),
+    ('\u{700}', 33647),
+    ('\u{70e}', 33648),
+    ('\u{710}', 33649),
+    ('\u{74b}', 33650),
+    ('\u{74d}', 33651),
+    ('\u{7b2}', 33652),
+    ('\u{7c0}', 33653),
+    ('\u{7f6}', 33654),
+    ('\u{7fb}', 33655),
+    ('\u{7fd}', 33656),
+    ('\u{7fe}', 33657),
+    ('\u{800}', 33658),
+    ('\u{82e}', 33659),
+    ('\u{830}', 33660),
+    ('\u{83f}', 33661),
+    ('\u{840}', 33662),
+    ('\u{85c}', 33663),
+    ('\u{85e}', 896),
+    ('\u{860}', 33666),
+    ('\u{86b}', 33667),
+    ('\u{8a0}', 33668),
+    ('\u{8b5}', 33669),
+    ('\u{8b6}', 33670),
+    ('\u{8c8}', 33671),
+    ('\u{8d3}', 33672),
+    ('\u{8e2}', 33673),
+    ('\u{8e3}', 33674),
+    ('\u{958}', 907),
+    ('\u{960}', 33683),
+    ('\u{964}', 33684),
+    ('\u{966}', 33685),
+    ('\u{970}', 33686),
+    ('\u{971}', 33687),
+    ('\u{984}', 33688),
+    ('\u{985}', 33689),
+    ('\u{98d}', 33690),
+    ('\u{98f}', 33691),
+    ('\u{991}', 33692),
+    ('\u{993}', 33693),
+    ('\u{9a9}', 33694),
+    ('\u{9aa}', 33695),
+    ('\u{9b1}', 928),
+    ('\u{9b3}', 33698),
+    ('\u{9b6}', 33699),
+    ('\u{9ba}', 33700),
+    ('\u{9bc}', 33701),
+    ('\u{9c5}', 33702),
+    ('\u{9c7}', 33703),
+    ('\u{9c9}', 33704),
+    ('\u{9cb}', 33705),
+    ('\u{9cf}', 33706),
+    ('\u{9d7}', 33707),
+    ('\u{9d8}', 33708),
+    ('\u{9dc}', 941),
+    ('\u{9e0}', 33713),
+    ('\u{9e4}', 33714),
+    ('\u{9e6}', 33715),
+    ('\u{9f2}', 33716),
+    ('\u{9fc}', 949),
+    ('\u{9ff}', 33720),
+    ('\u{a01}', 33721),
+    ('\u{a04}', 33722),
+    ('\u{a05}', 33723),
+    ('\u{a0b}', 33724),
+    ('\u{a0f}', 33725),
+    ('\u{a11}', 33726),
+    ('\u{a13}', 33727),
+    ('\u{a29}', 33728),
+    ('\u{a2a}', 33729),
+    ('\u{a31}', 962),
+    ('\u{a38}', 33737),
+    ('\u{a3a}', 33738),
+    ('\u{a3c}', 971),
+    ('\u{a3e}', 33741),
+    ('\u{a43}', 33742),
+    ('\u{a47}', 33743),
+    ('\u{a49}', 33744),
+    ('\u{a4b}', 33745),
+    ('\u{a4e}', 33746),
+    ('\u{a51}', 33747),
+    ('\u{a52}', 33748),
+    ('\u{a59}', 981),
+    ('\u{a5f}', 33755),
+    ('\u{a66}', 33756),
+    ('\u{a76}', 33757),
+    ('\u{a77}', 33758),
+    ('\u{a81}', 33759),
+    ('\u{a84}', 33760),
+    ('\u{a85}', 33761),
+    ('\u{a8e}', 33762),
+    ('\u{a8f}', 33763),
+    ('\u{a92}', 33764),
+    ('\u{a93}', 33765),
+    ('\u{aa9}', 33766),
+    ('\u{aaa}', 33767),
+    ('\u{ab1}', 33768),
+    ('\u{ab2}', 33769),
+    ('\u{ab4}', 33770),
+    ('\u{ab5}', 33771),
+    ('\u{aba}', 33772),
+    ('\u{abc}', 33773),
+    ('\u{ac6}', 33774),
+    ('\u{ac7}', 33775),
+    ('\u{aca}', 33776),
+    ('\u{acb}', 33777),
+    ('\u{ace}', 33778),
+    ('\u{ad0}', 33779),
+    ('\u{ad1}', 33780),
+    ('\u{ae0}', 33781),
+    ('\u{ae4}', 33782),
+    ('\u{ae6}', 33783),
+    ('\u{af0}', 33784),
+    ('\u{af2}', 33785),
+    ('\u{af9}', 33786),
+    ('\u{b00}', 33787),
+    ('\u{b01}', 33788),
+    ('\u{b04}', 33789),
+    ('\u{b05}', 33790),
+    ('\u{b0d}', 33791),
+    ('\u{b0f}', 33792),
+    ('\u{b11}', 33793),
+    ('\u{b13}', 33794),
+    ('\u{b29}', 33795),
+    ('\u{b2a}', 33796),
+    ('\u{b31}', 33797),
+    ('\u{b32}', 33798),
+    ('\u{b34}', 33799),
+    ('\u{b35}', 33800),
+    ('\u{b3a}', 33801),
+    ('\u{b3c}', 33802),
+    ('\u{b45}', 33803),
+    ('\u{b47}', 33804),
+    ('\u{b49}', 33805),
+    ('\u{b4b}', 33806),
+    ('\u{b4e}', 33807),
+    ('\u{b55}', 33808),
+    ('\u{b58}', 33809),
+    ('\u{b5c}', 1042),
+    ('\u{b5f}', 33813),
+    ('\u{b64}', 33814),
+    ('\u{b66}', 33815),
+    ('\u{b70}', 1048),
+    ('\u{b72}', 33818),
+    ('\u{b78}', 33819),
+    ('\u{b82}', 33820),
+    ('\u{b84}', 33821),
+    ('\u{b85}', 33822),
+    ('\u{b8b}', 33823),
+    ('\u{b8e}', 33824),
+    ('\u{b91}', 33825),
+    ('\u{b92}', 33826),
+    ('\u{b96}', 33827),
+    ('\u{b99}', 33828),
+    ('\u{b9b}', 1061),
+    ('\u{b9e}', 33832),
+    ('\u{ba0}', 33833),
+    ('\u{ba3}', 33834),
+    ('\u{ba5}', 33835),
+    ('\u{ba8}', 33836),
+    ('\u{bab}', 33837),
+    ('\u{bae}', 33838),
+    ('\u{bba}', 33839),
+    ('\u{bbe}', 33840),
+    ('\u{bc3}', 33841),
+    ('\u{bc6}', 33842),
+    ('\u{bc9}', 33843),
+    ('\u{bca}', 33844),
+    ('\u{bce}', 33845),
+    ('\u{bd0}', 33846),
+    ('\u{bd1}', 33847),
+    ('\u{bd7}', 33848),
+    ('\u{bd8}', 33849),
+    ('\u{be6}', 33850),
+    ('\u{bf0}', 33851),
+    ('\u{bfb}', 33852),
+    ('\u{c00}', 33853),
+    ('\u{c0d}', 33854),
+    ('\u{c0e}', 33855),
+    ('\u{c11}', 33856),
+    ('\u{c12}', 33857),
+    ('\u{c29}', 33858),
+    ('\u{c2a}', 33859),
+    ('\u{c3a}', 33860),
+    ('\u{c3d}', 33861),
+    ('\u{c45}', 33862),
+    ('\u{c46}', 33863),
+    ('\u{c49}', 33864),
+    ('\u{c4a}', 33865),
+    ('\u{c4e}', 33866),
+    ('\u{c55}', 33867),
+    ('\u{c57}', 33868),
+    ('\u{c58}', 33869),
+    ('\u{c5b}', 33870),
+    ('\u{c60}', 33871),
+    ('\u{c64}', 33872),
+    ('\u{c66}', 33873),
+    ('\u{c70}', 33874),
+    ('\u{c77}', 33875),
+    ('\u{c80}', 33876),
+    ('\u{c84}', 33877),
+    ('\u{c85}', 33878),
+    ('\u{c8d}', 33879),
+    ('\u{c8e}', 33880),
+    ('\u{c91}', 33881),
+    ('\u{c92}', 33882),
+    ('\u{ca9}', 33883),
+    ('\u{caa}', 33884),
+    ('\u{cb4}', 33885),
+    ('\u{cb5}', 33886),
+    ('\u{cba}', 33887),
+    ('\u{cbc}', 33888),
+    ('\u{cc5}', 33889),
+    ('\u{cc6}', 33890),
+    ('\u{cc9}', 33891),
+    ('\u{cca}', 33892),
+    ('\u{cce}', 33893),
+    ('\u{cd5}', 33894),
+    ('\u{cd7}', 33895),
+    ('\u{cde}', 1128),
+    ('\u{ce0}', 33898),
+    ('\u{ce4}', 33899),
+    ('\u{ce6}', 33900),
+    ('\u{cf0}', 33901),
+    ('\u{cf1}', 33902),
+    ('\u{cf3}', 33903),
+    ('\u{d00}', 33904),
+    ('\u{d0d}', 33905),
+    ('\u{d0e}', 33906),
+    ('\u{d11}', 33907),
+    ('\u{d12}', 33908),
+    ('\u{d45}', 33909),
+    ('\u{d46}', 33910),
+    ('\u{d49}', 33911),
+    ('\u{d4a}', 33912),
+    ('\u{d4f}', 33913),
+    ('\u{d50}', 33914),
+    ('\u{d54}', 33915),
+    ('\u{d58}', 33916),
+    ('\u{d5f}', 33917),
+    ('\u{d64}', 33918),
+    ('\u{d66}', 33919),
+    ('\u{d70}', 33920),
+    ('\u{d7a}', 33921),
+    ('\u{d80}', 33922),
+    ('\u{d81}', 33923),
+    ('\u{d84}', 33924),
+    ('\u{d85}', 33925),
+    ('\u{d97}', 33926),
+    ('\u{d9a}', 33927),
+    ('\u{db2}', 33928),
+    ('\u{db3}', 33929),
+    ('\u{dbc}', 1162),
+    ('\u{dbe}', 33932),
+    ('\u{dc0}', 33933),
+    ('\u{dc7}', 33934),
+    ('\u{dca}', 33935),
+    ('\u{dcb}', 33936),
+    ('\u{dcf}', 33937),
+    ('\u{dd5}', 1170),
+    ('\u{dd8}', 33941),
+    ('\u{de0}', 33942),
+    ('\u{de6}', 33943),
+    ('\u{df0}', 33944),
+    ('\u{df2}', 33945),
+    ('\u{df4}', 33946),
+    ('\u{df5}', 33947),
+    ('\u{e01}', 33948),
+    ('\u{e33}', 33949),
+    ('\u{e34}', 33950),
+    ('\u{e3b}', 33951),
+    ('\u{e3f}', 33952),
+    ('\u{e40}', 33953),
+    ('\u{e4f}', 33954),
+    ('\u{e50}', 33955),
+    ('\u{e5a}', 33956),
+    ('\u{e5c}', 33957),
+    ('\u{e81}', 33958),
+    ('\u{e83}', 1191),
+    ('\u{e86}', 33962),
+    ('\u{e8b}', 33963),
+    ('\u{e8c}', 33964),
+    ('\u{ea4}', 1197),
+    ('\u{ea7}', 33968),
+    ('\u{eb3}', 33969),
+    ('\u{eb4}', 33970),
+    ('\u{ebe}', 33971),
+    ('\u{ec0}', 33972),
+    ('\u{ec5}', 1205),
+    ('\u{ec8}', 33976),
+    ('\u{ece}', 33977),
+    ('\u{ed0}', 33978),
+    ('\u{eda}', 33979),
+    ('\u{edc}', 1212),
+    ('\u{ede}', 33982),
+    ('\u{ee0}', 33983),
+    ('\u{f00}', 33984),
+    ('\u{f01}', 33985),
+    ('\u{f0b}', 1218),
+    ('\u{f0d}', 33988),
+    ('\u{f18}', 33989),
+    ('\u{f1a}', 33990),
+    ('\u{f20}', 33991),
+    ('\u{f2a}', 33992),
+    ('\u{f35}', 1225),
+    ('\u{f3a}', 33998),
+    ('\u{f3e}', 33999),
+    ('\u{f43}', 34000),
+    ('\u{f44}', 34001),
+    ('\u{f48}', 34002),
+    ('\u{f49}', 34003),
+    ('\u{f4d}', 34004),
+    ('\u{f4e}', 34005),
+    ('\u{f52}', 34006),
+    ('\u{f53}', 34007),
+    ('\u{f57}', 34008),
+    ('\u{f58}', 34009),
+    ('\u{f5c}', 34010),
+    ('\u{f5d}', 34011),
+    ('\u{f69}', 34012),
+    ('\u{f6a}', 34013),
+    ('\u{f6d}', 34014),
+    ('\u{f71}', 34015),
+    ('\u{f73}', 1248),
+    ('\u{f7a}', 34023),
+    ('\u{f81}', 34024),
+    ('\u{f82}', 34025),
+    ('\u{f85}', 34026),
+    ('\u{f86}', 34027),
+    ('\u{f93}', 34028),
+    ('\u{f94}', 34029),
+    ('\u{f98}', 34030),
+    ('\u{f99}', 34031),
+    ('\u{f9d}', 34032),
+    ('\u{f9e}', 34033),
+    ('\u{fa2}', 34034),
+    ('\u{fa3}', 34035),
+    ('\u{fa7}', 34036),
+    ('\u{fa8}', 34037),
+    ('\u{fac}', 34038),
+    ('\u{fad}', 34039),
+    ('\u{fb9}', 34040),
+    ('\u{fba}', 34041),
+    ('\u{fbd}', 34042),
+    ('\u{fbe}', 34043),
+    ('\u{fc6}', 34044),
+    ('\u{fc7}', 34045),
+    ('\u{fcd}', 34046),
+    ('\u{fce}', 34047),
+    ('\u{fdb}', 34048),
+    ('\u{1000}', 34049),
+    ('\u{104a}', 34050),
+    ('\u{1050}', 34051),
+    ('\u{109e}', 34052),
+    ('\u{10a0}', 34053),
+    ('\u{10c7}', 34054),
+    ('\u{10c8}', 34055),
+    ('\u{10cd}', 34056),
+    ('\u{10ce}', 34057),
+    ('\u{10d0}', 34058),
+    ('\u{10fb}', 1291),
+    ('\u{10fd}', 34061),
+    ('\u{1100}', 34062),
+    ('\u{115f}', 34063),
+    ('\u{1161}', 34064),
+    ('\u{1200}', 34065),
+    ('\u{1249}', 34066),
+    ('\u{124a}', 34067),
+    ('\u{124e}', 34068),
+    ('\u{1250}', 34069),
+    ('\u{1257}', 1302),
+    ('\u{125a}', 34073),
+    ('\u{125e}', 34074),
+    ('\u{1260}', 34075),
+    ('\u{1289}', 34076),
+    ('\u{128a}', 34077),
+    ('\u{128e}', 34078),
+    ('\u{1290}', 34079),
+    ('\u{12b1}', 34080),
+    ('\u{12b2}', 34081),
+    ('\u{12b6}', 34082),
+    ('\u{12b8}', 34083),
+    ('\u{12bf}', 1316),
+    ('\u{12c2}', 34087),
+    ('\u{12c6}', 34088),
+    ('\u{12c8}', 34089),
+    ('\u{12d7}', 34090),
+    ('\u{12d8}', 34091),
+    ('\u{1311}', 34092),
+    ('\u{1312}', 34093),
+    ('\u{1316}', 34094),
+    ('\u{1318}', 34095),
+    ('\u{135b}', 34096),
+    ('\u{135d}', 34097),
+    ('\u{1360}', 34098),
+    ('\u{137d}', 34099),
+    ('\u{1380}', 34100),
+    ('\u{1390}', 34101),
+    ('\u{139a}', 34102),
+    ('\u{13a0}', 34103),
+    ('\u{13f6}', 34104),
+    ('\u{13f8}', 1337),
+    ('\u{13fe}', 34111),
+    ('\u{1400}', 34112),
+    ('\u{1401}', 34113),
+    ('\u{166d}', 34114),
+    ('\u{166f}', 34115),
+    ('\u{1680}', 34116),
+    ('\u{1681}', 34117),
+    ('\u{169b}', 34118),
+    ('\u{169d}', 34119),
+    ('\u{16a0}', 34120),
+    ('\u{16eb}', 34121),
+    ('\u{16f1}', 34122),
+    ('\u{16f9}', 34123),
+    ('\u{1700}', 34124),
+    ('\u{170d}', 34125),
+    ('\u{170e}', 34126),
+    ('\u{1715}', 34127),
+    ('\u{1720}', 34128),
+    ('\u{1735}', 34129),
+    ('\u{1737}', 34130),
+    ('\u{1740}', 34131),
+    ('\u{1754}', 34132),
+    ('\u{1760}', 34133),
+    ('\u{176d}', 34134),
+    ('\u{176e}', 34135),
+    ('\u{1771}', 34136),
+    ('\u{1772}', 34137),
+    ('\u{1774}', 34138),
+    ('\u{1780}', 34139),
+    ('\u{17b4}', 34140),
+    ('\u{17b6}', 34141),
+    ('\u{17d4}', 34142),
+    ('\u{17d7}', 34143),
+    ('\u{17d8}', 34144),
+    ('\u{17dc}', 34145),
+    ('\u{17de}', 34146),
+    ('\u{17e0}', 34147),
+    ('\u{17ea}', 34148),
+    ('\u{17f0}', 34149),
+    ('\u{17fa}', 34150),
+    ('\u{1800}', 34151),
+    ('\u{1806}', 34152),
+    ('\u{1807}', 34153),
+    ('\u{180b}', 34154),
+    ('\u{180e}', 34155),
+    ('\u{1810}', 34156),
+    ('\u{181a}', 34157),
+    ('\u{1820}', 34158),
+    ('\u{1879}', 34159),
+    ('\u{1880}', 34160),
+    ('\u{18ab}', 34161),
+    ('\u{18b0}', 34162),
+    ('\u{18f6}', 34163),
+    ('\u{1900}', 34164),
+    ('\u{191f}', 34165),
+    ('\u{1920}', 34166),
+    ('\u{192c}', 34167),
+    ('\u{1930}', 34168),
+    ('\u{193c}', 34169),
+    ('\u{1940}', 34170),
+    ('\u{1941}', 34171),
+    ('\u{1944}', 34172),
+    ('\u{1946}', 34173),
+    ('\u{196e}', 34174),
+    ('\u{1970}', 34175),
+    ('\u{1975}', 34176),
+    ('\u{1980}', 34177),
+    ('\u{19ac}', 34178),
+    ('\u{19b0}', 34179),
+    ('\u{19ca}', 34180),
+    ('\u{19d0}', 34181),
+    ('\u{19da}', 34182),
+    ('\u{19db}', 34183),
+    ('\u{19de}', 34184),
+    ('\u{1a00}', 34185),
+    ('\u{1a1c}', 34186),
+    ('\u{1a1e}', 34187),
+    ('\u{1a20}', 34188),
+    ('\u{1a5f}', 34189),
+    ('\u{1a60}', 34190),
+    ('\u{1a7d}', 34191),
+    ('\u{1a7f}', 34192),
+    ('\u{1a8a}', 34193),
+    ('\u{1a90}', 34194),
+    ('\u{1a9a}', 34195),
+    ('\u{1aa0}', 34196),
+    ('\u{1aa7}', 34197),
+    ('\u{1aa8}', 34198),
+    ('\u{1aae}', 34199),
+    ('\u{1ab0}', 34200),
+    ('\u{1abe}', 34201),
+    ('\u{1abf}', 34202),
+    ('\u{1ac1}', 34203),
+    ('\u{1b00}', 34204),
+    ('\u{1b4c}', 34205),
+    ('\u{1b50}', 34206),
+    ('\u{1b5a}', 34207),
+    ('\u{1b6b}', 34208),
+    ('\u{1b74}', 34209),
+    ('\u{1b7d}', 34210),
+    ('\u{1b80}', 34211),
+    ('\u{1bf4}', 34212),
+    ('\u{1bfc}', 34213),
+    ('\u{1c00}', 34214),
+    ('\u{1c38}', 34215),
+    ('\u{1c3b}', 34216),
+    ('\u{1c40}', 34217),
+    ('\u{1c4a}', 34218),
+    ('\u{1c4d}', 34219),
+    ('\u{1c7e}', 34220),
+    ('\u{1c80}', 1453),
+    ('\u{1c84}', 34225),
+    ('\u{1c86}', 1458),
+    ('\u{1c89}', 34229),
+    ('\u{1c90}', 1462),
+    ('\u{1cbb}', 34273),
+    ('\u{1cbd}', 1506),
+    ('\u{1cc0}', 34277),
+    ('\u{1cc8}', 34278),
+    ('\u{1cd0}', 34279),
+    ('\u{1cd3}', 34280),
+    ('\u{1cd4}', 34281),
+    ('\u{1cfb}', 34282),
+    ('\u{1d00}', 34283),
+    ('\u{1d2c}', 1516),
+    ('\u{1d6b}', 34347),
+    ('\u{1d78}', 34348),
+    ('\u{1d79}', 34349),
+    ('\u{1d9b}', 1582),
+    ('\u{1dc0}', 34387),
+    ('\u{1dfa}', 34388),
+    ('\u{1dfb}', 34389),
+    ('\u{1e00}', 1622),
+    ('\u{1e95}', 34539),
+    ('\u{1e9a}', 1772),
+    ('\u{1e9c}', 34542),
+    ('\u{1e9e}', 1775),
+    ('\u{1eff}', 34640),
+    ('\u{1f08}', 1873),
+    ('\u{1f10}', 34649),
+    ('\u{1f16}', 34650),
+    ('\u{1f18}', 1883),
+    ('\u{1f1e}', 34657),
+    ('\u{1f20}', 34658),
+    ('\u{1f28}', 1891),
+    ('\u{1f30}', 34667),
+    ('\u{1f38}', 1900),
+    ('\u{1f40}', 34676),
+    ('\u{1f46}', 34677),
+    ('\u{1f48}', 1910),
+    ('\u{1f4e}', 34684),
+    ('\u{1f50}', 34685),
+    ('\u{1f58}', 1918),
+    ('\u{1f60}', 34694),
+    ('\u{1f68}', 1927),
+    ('\u{1f7e}', 34717),
+    ('\u{1f80}', 1950),
+    ('\u{1fb0}', 34766),
+    ('\u{1fb2}', 1999),
+    ('\u{1fd0}', 34797),
+    ('\u{1fd3}', 34798),
+    ('\u{1fd4}', 34799),
+    ('\u{1fd6}', 34800),
+    ('\u{1fd8}', 2033),
+    ('\u{1fe0}', 34809),
+    ('\u{1fe3}', 34810),
+    ('\u{1fe4}', 34811),
+    ('\u{1fe8}', 2044),
+    ('\u{1ff0}', 34820),
+    ('\u{1ff2}', 2053),
+    ('\u{2000}', 34835),
+    ('\u{200b}', 34836),
+    ('\u{200c}', 34837),
+    ('\u{200e}', 34838),
+    ('\u{2010}', 2071),
+    ('\u{2012}', 34841),
+    ('\u{2017}', 34842),
+    ('\u{2018}', 34843),
+    ('\u{2024}', 34844),
+    ('\u{2027}', 34845),
+    ('\u{2028}', 34846),
+    ('\u{202f}', 34847),
+    ('\u{2030}', 34848),
+    ('\u{2033}', 2081),
+    ('\u{2038}', 34854),
+    ('\u{203c}', 2087),
+    ('\u{203f}', 34858),
+    ('\u{2047}', 2091),
+    ('\u{204a}', 34862),
+    ('\u{2057}', 34863),
+    ('\u{2058}', 34864),
+    ('\u{205f}', 2097),
+    ('\u{2061}', 34867),
+    ('\u{2064}', 34868),
+    ('\u{2065}', 34869),
+    ('\u{2070}', 2102),
+    ('\u{2072}', 34872),
+    ('\u{2074}', 2105),
+    ('\u{209d}', 34914),
+    ('\u{20a0}', 34915),
+    ('\u{20a8}', 34916),
+    ('\u{20a9}', 34917),
+    ('\u{20c0}', 34918),
+    ('\u{20d0}', 34919),
+    ('\u{20f1}', 34920),
+    ('\u{2100}', 2153),
+    ('\u{210b}', 34932),
+    ('\u{210f}', 34933),
+    ('\u{2110}', 34934),
+    ('\u{2112}', 34935),
+    ('\u{2114}', 2168),
+    ('\u{2117}', 34939),
+    ('\u{2119}', 2172),
+    ('\u{211b}', 34942),
+    ('\u{211e}', 34943),
+    ('\u{2120}', 2176),
+    ('\u{212f}', 34959),
+    ('\u{2131}', 2192),
+    ('\u{213d}', 34972),
+    ('\u{213f}', 2205),
+    ('\u{2141}', 34975),
+    ('\u{2145}', 34976),
+    ('\u{2147}', 2209),
+    ('\u{214a}', 34980),
+    ('\u{214e}', 2213),
+    ('\u{2180}', 35031),
+    ('\u{2183}', 2264),
+    ('\u{2185}', 35034),
+    ('\u{2189}', 35035),
+    ('\u{218a}', 35036),
+    ('\u{218c}', 35037),
+    ('\u{2190}', 35038),
+    ('\u{222c}', 2271),
+    ('\u{2231}', 35044),
+    ('\u{2260}', 35045),
+    ('\u{2261}', 35046),
+    ('\u{226e}', 35047),
+    ('\u{2270}', 35048),
+    ('\u{2329}', 2281),
+    ('\u{232b}', 35051),
+    ('\u{2427}', 35052),
+    ('\u{2440}', 35053),
+    ('\u{244b}', 35054),
+    ('\u{2460}', 2287),
+    ('\u{2488}', 35095),
+    ('\u{249c}', 2328),
+    ('\u{24eb}', 35175),
+    ('\u{2a0c}', 35176),
+    ('\u{2a0d}', 35177),
+    ('\u{2a74}', 2410),
+    ('\u{2a77}', 35181),
+    ('\u{2adc}', 35182),
+    ('\u{2add}', 35183),
+    ('\u{2b74}', 35184),
+    ('\u{2b76}', 35185),
+    ('\u{2b96}', 35186),
+    ('\u{2b97}', 35187),
+    ('\u{2c00}', 2420),
+    ('\u{2c30}', 35236),
+    ('\u{2c5f}', 2469),
+    ('\u{2c65}', 35243),
+    ('\u{2c67}', 2476),
+    ('\u{2c73}', 35256),
+    ('\u{2c75}', 35257),
+    ('\u{2c76}', 35258),
+    ('\u{2c7c}', 2491),
+    ('\u{2ce3}', 35362),
+    ('\u{2ce5}', 35363),
+    ('\u{2ceb}', 2596),
+    ('\u{2cee}', 35367),
+    ('\u{2cf2}', 2600),
+    ('\u{2cf4}', 35370),
+    ('\u{2cf9}', 35371),
+    ('\u{2d00}', 35372),
+    ('\u{2d26}', 2605),
+    ('\u{2d28}', 35375),
+    ('\u{2d2d}', 35376),
+    ('\u{2d2e}', 35377),
+    ('\u{2d30}', 35378),
+    ('\u{2d68}', 35379),
+    ('\u{2d6f}', 2612),
+    ('\u{2d71}', 35382),
+    ('\u{2d7f}', 35383),
+    ('\u{2d97}', 35384),
+    ('\u{2da0}', 35385),
+    ('\u{2da7}', 35386),
+    ('\u{2da8}', 35387),
+    ('\u{2daf}', 35388),
+    ('\u{2db0}', 35389),
+    ('\u{2db7}', 35390),
+    ('\u{2db8}', 35391),
+    ('\u{2dbf}', 35392),
+    ('\u{2dc0}', 35393),
+    ('\u{2dc7}', 35394),
+    ('\u{2dc8}', 35395),
+    ('\u{2dcf}', 35396),
+    ('\u{2dd0}', 35397),
+    ('\u{2dd7}', 35398),
+    ('\u{2dd8}', 35399),
+    ('\u{2ddf}', 35400),
+    ('\u{2de0}', 35401),
+    ('\u{2e00}', 35402),
+    ('\u{2e2f}', 35403),
+    ('\u{2e30}', 35404),
+    ('\u{2e53}', 35405),
+    ('\u{2e80}', 35406),
+    ('\u{2e9a}', 35407),
+    ('\u{2e9b}', 35408),
+    ('\u{2e9f}', 35409),
+    ('\u{2ea0}', 35410),
+    ('\u{2ef3}', 35411),
+    ('\u{2ef4}', 35412),
+    ('\u{2f00}', 2645),
+    ('\u{2fd6}', 35627),
+    ('\u{3000}', 2860),
+    ('\u{3003}', 35631),
+    ('\u{3005}', 35632),
+    ('\u{3008}', 35633),
+    ('\u{302a}', 35634),
+    ('\u{302e}', 35635),
+    ('\u{3036}', 2868),
+    ('\u{303d}', 35643),
+    ('\u{3040}', 35644),
+    ('\u{3041}', 35645),
+    ('\u{3097}', 35646),
+    ('\u{3099}', 35647),
+    ('\u{309b}', 2880),
+    ('\u{309d}', 35650),
+    ('\u{309f}', 2883),
+    ('\u{30a1}', 35653),
+    ('\u{30ff}', 35654),
+    ('\u{3100}', 35655),
+    ('\u{3105}', 35656),
+    ('\u{3130}', 2889),
+    ('\u{3190}', 35753),
+    ('\u{3192}', 2986),
+    ('\u{31a0}', 35768),
+    ('\u{31c0}', 35769),
+    ('\u{31e4}', 35770),
+    ('\u{31f0}', 35771),
+    ('\u{3200}', 3004),
+    ('\u{3248}', 35844),
+    ('\u{3250}', 3077),
+    ('\u{3400}', 36277),
+    ('\u{4dc0}', 36278),
+    ('\u{4e00}', 36279),
+    ('\u{9ffd}', 36280),
+    ('\u{a000}', 36281),
+    ('\u{a48d}', 36282),
+    ('\u{a490}', 36283),
+    ('\u{a4c7}', 36284),
+    ('\u{a4d0}', 36285),
+    ('\u{a4fe}', 36286),
+    ('\u{a500}', 36287),
+    ('\u{a60d}', 36288),
+    ('\u{a610}', 36289),
+    ('\u{a62c}', 36290),
+    ('\u{a640}', 3523),
+    ('\u{a66d}', 36336),
+    ('\u{a670}', 36337),
+    ('\u{a674}', 36338),
+    ('\u{a67e}', 3571),
+    ('\u{a69e}', 36371),
+    ('\u{a6e6}', 36372),
+    ('\u{a6f0}', 36373),
+    ('\u{a6f2}', 36374),
+    ('\u{a6f8}', 36375),
+    ('\u{a700}', 36376),
+    ('\u{a717}', 36377),
+    ('\u{a720}', 36378),
+    ('\u{a722}', 3611),
+    ('\u{a72f}', 36392),
+    ('\u{a732}', 3625),
+    ('\u{a771}', 36456),
+    ('\u{a779}', 3689),
+    ('\u{a787}', 36471),
+    ('\u{a789}', 36472),
+    ('\u{a78b}', 3705),
+    ('\u{a78e}', 36476),
+    ('\u{a790}', 3709),
+    ('\u{a793}', 36480),
+    ('\u{a796}', 3713),
+    ('\u{a7c0}', 36523),
+    ('\u{a7c2}', 3756),
+    ('\u{a7cb}', 36533),
+    ('\u{a7f5}', 36534),
+    ('\u{a7f6}', 36535),
+    ('\u{a7f8}', 3768),
+    ('\u{a7fa}', 36538),
+    ('\u{a828}', 36539),
+    ('\u{a82c}', 36540),
+    ('\u{a82d}', 36541),
+    ('\u{a830}', 36542),
+    ('\u{a83a}', 36543),
+    ('\u{a840}', 36544),
+    ('\u{a874}', 36545),
+    ('\u{a878}', 36546),
+    ('\u{a880}', 36547),
+    ('\u{a8c6}', 36548),
+    ('\u{a8ce}', 36549),
+    ('\u{a8d0}', 36550),
+    ('\u{a8da}', 36551),
+    ('\u{a8e0}', 36552),
+    ('\u{a8f8}', 36553),
+    ('\u{a8fb}', 3786),
+    ('\u{a8fd}', 36556),
+    ('\u{a92e}', 36557),
+    ('\u{a930}', 36558),
+    ('\u{a954}', 36559),
+    ('\u{a95f}', 36560),
+    ('\u{a97d}', 36561),
+    ('\u{a980}', 36562),
+    ('\u{a9c1}', 36563),
+    ('\u{a9ce}', 36564),
+    ('\u{a9cf}', 36565),
+    ('\u{a9da}', 36566),
+    ('\u{a9de}', 36567),
+    ('\u{a9e0}', 36568),
+    ('\u{a9ff}', 36569),
+    ('\u{aa00}', 36570),
+    ('\u{aa37}', 36571),
+    ('\u{aa40}', 36572),
+    ('\u{aa4e}', 36573),
+    ('\u{aa50}', 36574),
+    ('\u{aa5a}', 36575),
+    ('\u{aa5c}', 36576),
+    ('\u{aa60}', 36577),
+    ('\u{aa77}', 36578),
+    ('\u{aa7a}', 36579),
+    ('\u{aac3}', 36580),
+    ('\u{aadb}', 36581),
+    ('\u{aade}', 36582),
+    ('\u{aae0}', 36583),
+    ('\u{aaf0}', 36584),
+    ('\u{aaf2}', 36585),
+    ('\u{aaf7}', 36586),
+    ('\u{ab01}', 36587),
+    ('\u{ab07}', 36588),
+    ('\u{ab09}', 36589),
+    ('\u{ab0f}', 36590),
+    ('\u{ab11}', 36591),
+    ('\u{ab17}', 36592),
+    ('\u{ab20}', 36593),
+    ('\u{ab27}', 36594),
+    ('\u{ab28}', 36595),
+    ('\u{ab2f}', 36596),
+    ('\u{ab30}', 36597),
+    ('\u{ab5b}', 3830),
+    ('\u{ab60}', 36603),
+    ('\u{ab69}', 36604),
+    ('\u{ab6a}', 36605),
+    ('\u{ab6c}', 36606),
+    ('\u{ab70}', 3839),
+    ('\u{abc0}', 36687),
+    ('\u{abeb}', 36688),
+    ('\u{abec}', 36689),
+    ('\u{abee}', 36690),
+    ('\u{abf0}', 36691),
+    ('\u{abfa}', 36692),
+    ('\u{ac00}', 36693),
+    ('\u{d7a4}', 36694),
+    ('\u{d7b0}', 36695),
+    ('\u{d7c7}', 36696),
+    ('\u{d7cb}', 36697),
+    ('\u{d7fc}', 36698),
+    ('\u{f900}', 3931),
+    ('\u{f907}', 36706),
+    ('\u{f909}', 3939),
+    ('\u{fa0e}', 36968),
+    ('\u{fa10}', 4201),
+    ('\u{fa13}', 36972),
+    ('\u{fa15}', 4205),
+    ('\u{fa23}', 36987),
+    ('\u{fa25}', 4220),
+    ('\u{fa27}', 36990),
+    ('\u{fa2a}', 4223),
+    ('\u{fa5d}', 37042),
+    ('\u{fa5f}', 4275),
+    ('\u{fa6e}', 37058),
+    ('\u{fa70}', 4291),
+    ('\u{fada}', 37165),
+    ('\u{fb00}', 4398),
+    ('\u{fb05}', 37171),
+    ('\u{fb07}', 37172),
+    ('\u{fb13}', 4405),
+    ('\u{fb18}', 37178),
+    ('\u{fb1d}', 4411),
+    ('\u{fb50}', 37230),
+    ('\u{fb52}', 37231),
+    ('\u{fb56}', 37232),
+    ('\u{fb5a}', 37233),
+    ('\u{fb5e}', 37234),
+    ('\u{fb62}', 37235),
+    ('\u{fb66}', 37236),
+    ('\u{fb6a}', 37237),
+    ('\u{fb6e}', 37238),
+    ('\u{fb72}', 37239),
+    ('\u{fb76}', 37240),
+    ('\u{fb7a}', 37241),
+    ('\u{fb7e}', 37242),
+    ('\u{fb82}', 37243),
+    ('\u{fb84}', 37244),
+    ('\u{fb86}', 37245),
+    ('\u{fb88}', 37246),
+    ('\u{fb8a}', 37247),
+    ('\u{fb8c}', 37248),
+    ('\u{fb8e}', 37249),
+    ('\u{fb92}', 37250),
+    ('\u{fb96}', 37251),
+    ('\u{fb9a}', 37252),
+    ('\u{fb9e}', 37253),
+    ('\u{fba0}', 37254),
+    ('\u{fba4}', 37255),
+    ('\u{fba6}', 37256),
+    ('\u{fbaa}', 37257),
+    ('\u{fbae}', 37258),
+    ('\u{fbb0}', 37259),
+    ('\u{fbb2}', 37260),
+    ('\u{fbc2}', 37261),
+    ('\u{fbd3}', 37262),
+    ('\u{fbd7}', 37263),
+    ('\u{fbd9}', 37264),
+    ('\u{fbdb}', 37265),
+    ('\u{fbdd}', 37266),
+    ('\u{fbde}', 37267),
+    ('\u{fbe0}', 37268),
+    ('\u{fbe2}', 37269),
+    ('\u{fbe4}', 37270),
+    ('\u{fbe8}', 37271),
+    ('\u{fbea}', 37272),
+    ('\u{fbec}', 37273),
+    ('\u{fbee}', 37274),
+    ('\u{fbf0}', 37275),
+    ('\u{fbf2}', 37276),
+    ('\u{fbf4}', 37277),
+    ('\u{fbf6}', 37278),
+    ('\u{fbf9}', 37279),
+    ('\u{fbfc}', 37280),
+    ('\u{fc00}', 4513),
+    ('\u{fd3c}', 37597),
+    ('\u{fd3e}', 37598),
+    ('\u{fd40}', 37599),
+    ('\u{fd50}', 37600),
+    ('\u{fd51}', 37601),
+    ('\u{fd53}', 4834),
+    ('\u{fd58}', 37607),
+    ('\u{fd5a}', 4840),
+    ('\u{fd5f}', 37613),
+    ('\u{fd61}', 37614),
+    ('\u{fd62}', 37615),
+    ('\u{fd64}', 37616),
+    ('\u{fd66}', 37617),
+    ('\u{fd67}', 37618),
+    ('\u{fd69}', 37619),
+    ('\u{fd6a}', 37620),
+    ('\u{fd6c}', 37621),
+    ('\u{fd6e}', 37622),
+    ('\u{fd6f}', 37623),
+    ('\u{fd71}', 37624),
+    ('\u{fd73}', 4857),
+    ('\u{fd76}', 37628),
+    ('\u{fd78}', 4861),
+    ('\u{fd7c}', 37633),
+    ('\u{fd7e}', 4866),
+    ('\u{fd83}', 37639),
+    ('\u{fd85}', 37640),
+    ('\u{fd87}', 37641),
+    ('\u{fd89}', 4874),
+    ('\u{fd90}', 37649),
+    ('\u{fd92}', 4882),
+    ('\u{fd97}', 37655),
+    ('\u{fd99}', 4888),
+    ('\u{fd9c}', 37659),
+    ('\u{fd9e}', 4892),
+    ('\u{fdc8}', 37702),
+    ('\u{fdf0}', 4935),
+    ('\u{fdfe}', 37717),
+    ('\u{fe00}', 37718),
+    ('\u{fe10}', 4951),
+    ('\u{fe19}', 37728),
+    ('\u{fe20}', 37729),
+    ('\u{fe30}', 4962),
+    ('\u{fe33}', 37733),
+    ('\u{fe35}', 4966),
+    ('\u{fe45}', 37750),
+    ('\u{fe47}', 4983),
+    ('\u{fe49}', 37753),
+    ('\u{fe4d}', 37754),
+    ('\u{fe50}', 4987),
+    ('\u{fe52}', 37757),
+    ('\u{fe54}', 4990),
+    ('\u{fe6c}', 37782),
+    ('\u{fe70}', 5015),
+    ('\u{fe81}', 37800),
+    ('\u{fe83}', 37801),
+    ('\u{fe85}', 37802),
+    ('\u{fe87}', 37803),
+    ('\u{fe89}', 37804),
+    ('\u{fe8d}', 37805),
+    ('\u{fe8f}', 37806),
+    ('\u{fe93}', 37807),
+    ('\u{fe95}', 37808),
+    ('\u{fe99}', 37809),
+    ('\u{fe9d}', 37810),
+    ('\u{fea1}', 37811),
+    ('\u{fea5}', 37812),
+    ('\u{fea9}', 37813),
+    ('\u{feab}', 37814),
+    ('\u{fead}', 37815),
+    ('\u{feaf}', 37816),
+    ('\u{feb1}', 37817),
+    ('\u{feb5}', 37818),
+    ('\u{feb9}', 37819),
+    ('\u{febd}', 37820),
+    ('\u{fec1}', 37821),
+    ('\u{fec5}', 37822),
+    ('\u{fec9}', 37823),
+    ('\u{fecd}', 37824),
+    ('\u{fed1}', 37825),
+    ('\u{fed5}', 37826),
+    ('\u{fed9}', 37827),
+    ('\u{fedd}', 37828),
+    ('\u{fee1}', 37829),
+    ('\u{fee5}', 37830),
+    ('\u{fee9}', 37831),
+    ('\u{feed}', 37832),
+    ('\u{feef}', 37833),
+    ('\u{fef1}', 37834),
+    ('\u{fef5}', 37835),
+    ('\u{fef7}', 37836),
+    ('\u{fef9}', 37837),
+    ('\u{fefb}', 37838),
+    ('\u{fefd}', 37839),
+    ('\u{feff}', 5072),
+    ('\u{ffbf}', 38032),
+    ('\u{ffc2}', 5265),
+    ('\u{ffc8}', 38039),
+    ('\u{ffca}', 5272),
+    ('\u{ffd0}', 38046),
+    ('\u{ffd2}', 5279),
+    ('\u{ffd8}', 38053),
+    ('\u{ffda}', 5286),
+    ('\u{ffdd}', 38057),
+    ('\u{ffe0}', 5290),
+    ('\u{ffef}', 38073),
+    ('\u{10000}', 38074),
+    ('\u{1000c}', 38075),
+    ('\u{1000d}', 38076),
+    ('\u{10027}', 38077),
+    ('\u{10028}', 38078),
+    ('\u{1003b}', 38079),
+    ('\u{1003c}', 38080),
+    ('\u{1003e}', 38081),
+    ('\u{1003f}', 38082),
+    ('\u{1004e}', 38083),
+    ('\u{10050}', 38084),
+    ('\u{1005e}', 38085),
+    ('\u{10080}', 38086),
+    ('\u{100fb}', 38087),
+    ('\u{10100}', 38088),
+    ('\u{10103}', 38089),
+    ('\u{10107}', 38090),
+    ('\u{10134}', 38091),
+    ('\u{10137}', 38092),
+    ('\u{1018f}', 38093),
+    ('\u{10190}', 38094),
+    ('\u{1019d}', 38095),
+    ('\u{101a0}', 38096),
+    ('\u{101a1}', 38097),
+    ('\u{101d0}', 38098),
+    ('\u{101fd}', 38099),
+    ('\u{101fe}', 38100),
+    ('\u{10280}', 38101),
+    ('\u{1029d}', 38102),
+    ('\u{102a0}', 38103),
+    ('\u{102d1}', 38104),
+    ('\u{102e0}', 38105),
+    ('\u{102e1}', 38106),
+    ('\u{102fc}', 38107),
+    ('\u{10300}', 38108),
+    ('\u{10320}', 38109),
+    ('\u{10324}', 38110),
+    ('\u{1032d}', 38111),
+    ('\u{10341}', 38112),
+    ('\u{10342}', 38113),
+    ('\u{1034a}', 38114),
+    ('\u{1034b}', 38115),
+    ('\u{10350}', 38116),
+    ('\u{1037b}', 38117),
+    ('\u{10380}', 38118),
+    ('\u{1039e}', 5351),
+    ('\u{103a0}', 38121),
+    ('\u{103c4}', 38122),
+    ('\u{103c8}', 38123),
+    ('\u{103d0}', 38124),
+    ('\u{103d6}', 38125),
+    ('\u{10400}', 5358),
+    ('\u{10428}', 38166),
+    ('\u{1049e}', 38167),
+    ('\u{104a0}', 38168),
+    ('\u{104aa}', 38169),
+    ('\u{104b0}', 5402),
+    ('\u{104d4}', 38206),
+    ('\u{104d8}', 38207),
+    ('\u{104fc}', 38208),
+    ('\u{10500}', 38209),
+    ('\u{10528}', 38210),
+    ('\u{10530}', 38211),
+    ('\u{10564}', 38212),
+    ('\u{1056f}', 38213),
+    ('\u{10570}', 38214),
+    ('\u{10600}', 38215),
+    ('\u{10737}', 38216),
+    ('\u{10740}', 38217),
+    ('\u{10756}', 38218),
+    ('\u{10760}', 38219),
+    ('\u{10768}', 38220),
+    ('\u{10800}', 38221),
+    ('\u{10806}', 38222),
+    ('\u{10808}', 5455),
+    ('\u{1080a}', 38225),
+    ('\u{10836}', 38226),
+    ('\u{10837}', 38227),
+    ('\u{10839}', 38228),
+    ('\u{1083c}', 38229),
+    ('\u{1083d}', 38230),
+    ('\u{1083f}', 38231),
+    ('\u{10856}', 38232),
+    ('\u{10857}', 38233),
+    ('\u{10860}', 38234),
+    ('\u{10877}', 38235),
+    ('\u{10880}', 38236),
+    ('\u{1089f}', 38237),
+    ('\u{108a7}', 38238),
+    ('\u{108b0}', 38239),
+    ('\u{108e0}', 38240),
+    ('\u{108f3}', 38241),
+    ('\u{108f4}', 38242),
+    ('\u{108f6}', 38243),
+    ('\u{108fb}', 38244),
+    ('\u{10900}', 38245),
+    ('\u{10916}', 38246),
+    ('\u{1091c}', 38247),
+    ('\u{1091f}', 38248),
+    ('\u{10920}', 38249),
+    ('\u{1093a}', 38250),
+    ('\u{1093f}', 38251),
+    ('\u{10940}', 38252),
+    ('\u{10980}', 38253),
+    ('\u{109b8}', 38254),
+    ('\u{109bc}', 38255),
+    ('\u{109be}', 38256),
+    ('\u{109c0}', 38257),
+    ('\u{109d0}', 38258),
+    ('\u{109d2}', 38259),
+    ('\u{10a00}', 38260),
+    ('\u{10a04}', 38261),
+    ('\u{10a05}', 38262),
+    ('\u{10a07}', 38263),
+    ('\u{10a0c}', 38264),
+    ('\u{10a14}', 38265),
+    ('\u{10a15}', 38266),
+    ('\u{10a18}', 38267),
+    ('\u{10a19}', 38268),
+    ('\u{10a36}', 38269),
+    ('\u{10a38}', 38270),
+    ('\u{10a3b}', 38271),
+    ('\u{10a3f}', 38272),
+    ('\u{10a40}', 38273),
+    ('\u{10a49}', 38274),
+    ('\u{10a50}', 38275),
+    ('\u{10a59}', 38276),
+    ('\u{10a60}', 38277),
+    ('\u{10a7d}', 38278),
+    ('\u{10a80}', 38279),
+    ('\u{10a9d}', 38280),
+    ('\u{10aa0}', 38281),
+    ('\u{10ac0}', 38282),
+    ('\u{10ac8}', 38283),
+    ('\u{10ac9}', 38284),
+    ('\u{10ae7}', 38285),
+    ('\u{10aeb}', 38286),
+    ('\u{10af7}', 38287),
+    ('\u{10b00}', 38288),
+    ('\u{10b36}', 38289),
+    ('\u{10b39}', 38290),
+    ('\u{10b40}', 38291),
+    ('\u{10b56}', 38292),
+    ('\u{10b58}', 38293),
+    ('\u{10b60}', 38294),
+    ('\u{10b73}', 38295),
+    ('\u{10b78}', 38296),
+    ('\u{10b80}', 38297),
+    ('\u{10b92}', 38298),
+    ('\u{10b99}', 38299),
+    ('\u{10b9d}', 38300),
+    ('\u{10ba9}', 38301),
+    ('\u{10bb0}', 38302),
+    ('\u{10c00}', 38303),
+    ('\u{10c49}', 38304),
+    ('\u{10c80}', 5537),
+    ('\u{10cb3}', 38356),
+    ('\u{10cc0}', 38357),
+    ('\u{10cf3}', 38358),
+    ('\u{10cfa}', 38359),
+    ('\u{10d00}', 38360),
+    ('\u{10d28}', 38361),
+    ('\u{10d30}', 38362),
+    ('\u{10d3a}', 38363),
+    ('\u{10e60}', 38364),
+    ('\u{10e7f}', 38365),
+    ('\u{10e80}', 38366),
+    ('\u{10eaa}', 38367),
+    ('\u{10eab}', 38368),
+    ('\u{10ead}', 38369),
+    ('\u{10eae}', 38370),
+    ('\u{10eb0}', 38371),
+    ('\u{10eb2}', 38372),
+    ('\u{10f00}', 38373),
+    ('\u{10f1d}', 38374),
+    ('\u{10f27}', 38375),
+    ('\u{10f28}', 38376),
+    ('\u{10f30}', 38377),
+    ('\u{10f51}', 38378),
+    ('\u{10f5a}', 38379),
+    ('\u{10fb0}', 38380),
+    ('\u{10fc5}', 38381),
+    ('\u{10fcc}', 38382),
+    ('\u{10fe0}', 38383),
+    ('\u{10ff7}', 38384),
+    ('\u{11000}', 38385),
+    ('\u{11047}', 38386),
+    ('\u{1104e}', 38387),
+    ('\u{11052}', 38388),
+    ('\u{11066}', 38389),
+    ('\u{11070}', 38390),
+    ('\u{1107f}', 38391),
+    ('\u{110bb}', 38392),
+    ('\u{110bd}', 38393),
+    ('\u{110be}', 38394),
+    ('\u{110c2}', 38395),
+    ('\u{110d0}', 38396),
+    ('\u{110e9}', 38397),
+    ('\u{110f0}', 38398),
+    ('\u{110fa}', 38399),
+    ('\u{11100}', 38400),
+    ('\u{11135}', 38401),
+    ('\u{11136}', 38402),
+    ('\u{11140}', 38403),
+    ('\u{11144}', 38404),
+    ('\u{11148}', 38405),
+    ('\u{11150}', 38406),
+    ('\u{11174}', 38407),
+    ('\u{11176}', 38408),
+    ('\u{11177}', 38409),
+    ('\u{11180}', 38410),
+    ('\u{111c5}', 38411),
+    ('\u{111c9}', 38412),
+    ('\u{111cd}', 38413),
+    ('\u{111ce}', 38414),
+    ('\u{111db}', 5647),
+    ('\u{111dd}', 38417),
+    ('\u{111e0}', 38418),
+    ('\u{111e1}', 38419),
+    ('\u{111f5}', 38420),
+    ('\u{11200}', 38421),
+    ('\u{11212}', 38422),
+    ('\u{11213}', 38423),
+    ('\u{11238}', 38424),
+    ('\u{1123e}', 38425),
+    ('\u{1123f}', 38426),
+    ('\u{11280}', 38427),
+    ('\u{11287}', 5660),
+    ('\u{1128a}', 38431),
+    ('\u{1128e}', 38432),
+    ('\u{1128f}', 38433),
+    ('\u{1129e}', 38434),
+    ('\u{1129f}', 38435),
+    ('\u{112a9}', 38436),
+    ('\u{112aa}', 38437),
+    ('\u{112b0}', 38438),
+    ('\u{112eb}', 38439),
+    ('\u{112f0}', 38440),
+    ('\u{112fa}', 38441),
+    ('\u{11300}', 38442),
+    ('\u{11304}', 38443),
+    ('\u{11305}', 38444),
+    ('\u{1130d}', 38445),
+    ('\u{1130f}', 38446),
+    ('\u{11311}', 38447),
+    ('\u{11313}', 38448),
+    ('\u{11329}', 38449),
+    ('\u{1132a}', 38450),
+    ('\u{11331}', 38451),
+    ('\u{11332}', 38452),
+    ('\u{11334}', 38453),
+    ('\u{11335}', 38454),
+    ('\u{1133a}', 38455),
+    ('\u{1133b}', 38456),
+    ('\u{11345}', 38457),
+    ('\u{11347}', 38458),
+    ('\u{11349}', 38459),
+    ('\u{1134b}', 38460),
+    ('\u{1134e}', 38461),
+    ('\u{11350}', 38462),
+    ('\u{11351}', 38463),
+    ('\u{11357}', 38464),
+    ('\u{11358}', 38465),
+    ('\u{1135d}', 38466),
+    ('\u{11364}', 38467),
+    ('\u{11366}', 38468),
+    ('\u{1136d}', 38469),
+    ('\u{11370}', 38470),
+    ('\u{11375}', 38471),
+    ('\u{11400}', 38472),
+    ('\u{1144b}', 38473),
+    ('\u{11450}', 38474),
+    ('\u{1145a}', 38475),
+    ('\u{1145c}', 5708),
+    ('\u{1145e}', 38478),
+    ('\u{11462}', 38479),
+    ('\u{11480}', 38480),
+    ('\u{114c6}', 5713),
+    ('\u{114c8}', 38483),
+    ('\u{114d0}', 38484),
+    ('\u{114da}', 38485),
+    ('\u{11580}', 38486),
+    ('\u{115b6}', 38487),
+    ('\u{115b8}', 38488),
+    ('\u{115c1}', 38489),
+    ('\u{115d8}', 38490),
+    ('\u{115de}', 38491),
+    ('\u{11600}', 38492),
+    ('\u{11641}', 38493),
+    ('\u{11644}', 38494),
+    ('\u{11645}', 38495),
+    ('\u{11650}', 38496),
+    ('\u{1165a}', 38497),
+    ('\u{11660}', 38498),
+    ('\u{1166d}', 38499),
+    ('\u{11680}', 38500),
+    ('\u{116b9}', 38501),
+    ('\u{116c0}', 38502),
+    ('\u{116ca}', 38503),
+    ('\u{11700}', 38504),
+    ('\u{1171b}', 38505),
+    ('\u{1171d}', 38506),
+    ('\u{1172c}', 38507),
+    ('\u{11730}', 38508),
+    ('\u{1173a}', 38509),
+    ('\u{11740}', 38510),
+    ('\u{11800}', 38511),
+    ('\u{1183b}', 38512),
+    ('\u{1183c}', 38513),
+    ('\u{118a0}', 5746),
+    ('\u{118c0}', 38546),
+    ('\u{118ea}', 38547),
+    ('\u{118f3}', 38548),
+    ('\u{118ff}', 38549),
+    ('\u{11907}', 38550),
+    ('\u{11909}', 38551),
+    ('\u{1190a}', 38552),
+    ('\u{1190c}', 38553),
+    ('\u{11914}', 38554),
+    ('\u{11915}', 38555),
+    ('\u{11917}', 38556),
+    ('\u{11918}', 38557),
+    ('\u{11936}', 38558),
+    ('\u{11937}', 38559),
+    ('\u{11939}', 38560),
+    ('\u{1193b}', 38561),
+    ('\u{11944}', 38562),
+    ('\u{11947}', 38563),
+    ('\u{11950}', 38564),
+    ('\u{1195a}', 38565),
+    ('\u{119a0}', 38566),
+    ('\u{119a8}', 38567),
+    ('\u{119aa}', 38568),
+    ('\u{119d8}', 38569),
+    ('\u{119da}', 38570),
+    ('\u{119e2}', 38571),
+    ('\u{119e3}', 38572),
+    ('\u{119e5}', 38573),
+    ('\u{11a00}', 38574),
+    ('\u{11a3f}', 38575),
+    ('\u{11a47}', 38576),
+    ('\u{11a48}', 38577),
+    ('\u{11a50}', 38578),
+    ('\u{11a9a}', 38579),
+    ('\u{11a9d}', 38580),
+    ('\u{11a9e}', 38581),
+    ('\u{11aa3}', 38582),
+    ('\u{11ac0}', 38583),
+    ('\u{11af9}', 38584),
+    ('\u{11c00}', 38585),
+    ('\u{11c09}', 38586),
+    ('\u{11c0a}', 38587),
+    ('\u{11c37}', 38588),
+    ('\u{11c38}', 38589),
+    ('\u{11c41}', 38590),
+    ('\u{11c46}', 38591),
+    ('\u{11c50}', 38592),
+    ('\u{11c5a}', 38593),
+    ('\u{11c6d}', 38594),
+    ('\u{11c70}', 38595),
+    ('\u{11c72}', 38596),
+    ('\u{11c90}', 38597),
+    ('\u{11c92}', 38598),
+    ('\u{11ca8}', 38599),
+    ('\u{11ca9}', 38600),
+    ('\u{11cb7}', 38601),
+    ('\u{11d00}', 38602),
+    ('\u{11d07}', 38603),
+    ('\u{11d08}', 38604),
+    ('\u{11d0a}', 38605),
+    ('\u{11d0b}', 38606),
+    ('\u{11d37}', 38607),
+    ('\u{11d3a}', 5840),
+    ('\u{11d3c}', 38610),
+    ('\u{11d3e}', 38611),
+    ('\u{11d3f}', 38612),
+    ('\u{11d48}', 38613),
+    ('\u{11d50}', 38614),
+    ('\u{11d5a}', 38615),
+    ('\u{11d60}', 38616),
+    ('\u{11d66}', 38617),
+    ('\u{11d67}', 38618),
+    ('\u{11d69}', 38619),
+    ('\u{11d6a}', 38620),
+    ('\u{11d8f}', 38621),
+    ('\u{11d90}', 38622),
+    ('\u{11d92}', 38623),
+    ('\u{11d93}', 38624),
+    ('\u{11d99}', 38625),
+    ('\u{11da0}', 38626),
+    ('\u{11daa}', 38627),
+    ('\u{11ee0}', 38628),
+    ('\u{11ef7}', 38629),
+    ('\u{11ef9}', 38630),
+    ('\u{11fb0}', 38631),
+    ('\u{11fb1}', 38632),
+    ('\u{11fc0}', 38633),
+    ('\u{11ff2}', 38634),
+    ('\u{11fff}', 38635),
+    ('\u{12000}', 38636),
+    ('\u{1239a}', 38637),
+    ('\u{12400}', 38638),
+    ('\u{1246f}', 38639),
+    ('\u{12470}', 38640),
+    ('\u{12475}', 38641),
+    ('\u{12480}', 38642),
+    ('\u{12544}', 38643),
+    ('\u{13000}', 38644),
+    ('\u{1342f}', 38645),
+    ('\u{14400}', 38646),
+    ('\u{14647}', 38647),
+    ('\u{16800}', 38648),
+    ('\u{16a39}', 38649),
+    ('\u{16a40}', 38650),
+    ('\u{16a5f}', 38651),
+    ('\u{16a60}', 38652),
+    ('\u{16a6a}', 38653),
+    ('\u{16a6e}', 38654),
+    ('\u{16a70}', 38655),
+    ('\u{16ad0}', 38656),
+    ('\u{16aee}', 38657),
+    ('\u{16af0}', 38658),
+    ('\u{16af5}', 38659),
+    ('\u{16af6}', 38660),
+    ('\u{16b00}', 38661),
+    ('\u{16b37}', 38662),
+    ('\u{16b40}', 38663),
+    ('\u{16b44}', 38664),
+    ('\u{16b46}', 38665),
+    ('\u{16b50}', 38666),
+    ('\u{16b5a}', 38667),
+    ('\u{16b5b}', 38668),
+    ('\u{16b62}', 38669),
+    ('\u{16b63}', 38670),
+    ('\u{16b78}', 38671),
+    ('\u{16b7d}', 38672),
+    ('\u{16b90}', 38673),
+    ('\u{16e40}', 5906),
+    ('\u{16e60}', 38706),
+    ('\u{16e80}', 38707),
+    ('\u{16e9b}', 38708),
+    ('\u{16f00}', 38709),
+    ('\u{16f4b}', 38710),
+    ('\u{16f4f}', 38711),
+    ('\u{16f88}', 38712),
+    ('\u{16f8f}', 38713),
+    ('\u{16fa0}', 38714),
+    ('\u{16fe0}', 38715),
+    ('\u{16fe2}', 38716),
+    ('\u{16fe3}', 38717),
+    ('\u{16fe5}', 38718),
+    ('\u{16ff0}', 38719),
+    ('\u{16ff2}', 38720),
+    ('\u{17000}', 38721),
+    ('\u{187f8}', 38722),
+    ('\u{18800}', 38723),
+    ('\u{18cd6}', 38724),
+    ('\u{18d00}', 38725),
+    ('\u{18d09}', 38726),
+    ('\u{1b000}', 38727),
+    ('\u{1b11f}', 38728),
+    ('\u{1b150}', 38729),
+    ('\u{1b153}', 38730),
+    ('\u{1b164}', 38731),
+    ('\u{1b168}', 38732),
+    ('\u{1b170}', 38733),
+    ('\u{1b2fc}', 38734),
+    ('\u{1bc00}', 38735),
+    ('\u{1bc6b}', 38736),
+    ('\u{1bc70}', 38737),
+    ('\u{1bc7d}', 38738),
+    ('\u{1bc80}', 38739),
+    ('\u{1bc89}', 38740),
+    ('\u{1bc90}', 38741),
+    ('\u{1bc9a}', 38742),
+    ('\u{1bc9c}', 38743),
+    ('\u{1bc9d}', 38744),
+    ('\u{1bc9f}', 38745),
+    ('\u{1bca0}', 38746),
+    ('\u{1bca4}', 38747),
+    ('\u{1d000}', 38748),
+    ('\u{1d0f6}', 38749),
+    ('\u{1d100}', 38750),
+    ('\u{1d127}', 38751),
+    ('\u{1d129}', 38752),
+    ('\u{1d15e}', 5985),
+    ('\u{1d165}', 38760),
+    ('\u{1d173}', 38761),
+    ('\u{1d17b}', 38762),
+    ('\u{1d1bb}', 5995),
+    ('\u{1d1c1}', 38769),
+    ('\u{1d1e9}', 38770),
+    ('\u{1d200}', 38771),
+    ('\u{1d246}', 38772),
+    ('\u{1d2e0}', 38773),
+    ('\u{1d2f4}', 38774),
+    ('\u{1d300}', 38775),
+    ('\u{1d357}', 38776),
+    ('\u{1d360}', 38777),
+    ('\u{1d379}', 38778),
+    ('\u{1d400}', 6011),
+    ('\u{1d4a0}', 38939),
+    ('\u{1d4a2}', 38940),
+    ('\u{1d4a3}', 38941),
+    ('\u{1d4a5}', 6174),
+    ('\u{1d4a7}', 38944),
+    ('\u{1d4a9}', 6177),
+    ('\u{1d50b}', 39043),
+    ('\u{1d50d}', 6276),
+    ('\u{1d547}', 39102),
+    ('\u{1d54a}', 6335),
+    ('\u{1d6a6}', 39451),
+    ('\u{1d6a8}', 6684),
+    ('\u{1d6d3}', 39495),
+    ('\u{1d6d5}', 6728),
+    ('\u{1d70d}', 39552),
+    ('\u{1d70f}', 6785),
+    ('\u{1d747}', 39609),
+    ('\u{1d749}', 6842),
+    ('\u{1d781}', 39666),
+    ('\u{1d783}', 6899),
+    ('\u{1d7bb}', 39723),
+    ('\u{1d7bd}', 6956),
+    ('\u{1d7ca}', 39737),
+    ('\u{1d7cc}', 39738),
+    ('\u{1d7ce}', 6971),
+    ('\u{1d800}', 39789),
+    ('\u{1da00}', 39790),
+    ('\u{1da37}', 39791),
+    ('\u{1da3b}', 39792),
+    ('\u{1da6d}', 39793),
+    ('\u{1da75}', 39794),
+    ('\u{1da76}', 39795),
+    ('\u{1da84}', 39796),
+    ('\u{1da85}', 39797),
+    ('\u{1da8c}', 39798),
+    ('\u{1da9b}', 39799),
+    ('\u{1daa0}', 39800),
+    ('\u{1daa1}', 39801),
+    ('\u{1dab0}', 39802),
+    ('\u{1e000}', 39803),
+    ('\u{1e007}', 39804),
+    ('\u{1e008}', 39805),
+    ('\u{1e019}', 39806),
+    ('\u{1e01b}', 39807),
+    ('\u{1e022}', 39808),
+    ('\u{1e023}', 39809),
+    ('\u{1e025}', 39810),
+    ('\u{1e026}', 39811),
+    ('\u{1e02b}', 39812),
+    ('\u{1e100}', 39813),
+    ('\u{1e12d}', 39814),
+    ('\u{1e130}', 39815),
+    ('\u{1e13e}', 39816),
+    ('\u{1e140}', 39817),
+    ('\u{1e14a}', 39818),
+    ('\u{1e14e}', 7051),
+    ('\u{1e150}', 39821),
+    ('\u{1e2c0}', 39822),
+    ('\u{1e2fa}', 39823),
+    ('\u{1e2ff}', 39824),
+    ('\u{1e300}', 39825),
+    ('\u{1e800}', 39826),
+    ('\u{1e8c5}', 39827),
+    ('\u{1e8c7}', 39828),
+    ('\u{1e8d0}', 39829),
+    ('\u{1e8d7}', 39830),
+    ('\u{1e900}', 7063),
+    ('\u{1e922}', 39865),
+    ('\u{1e94c}', 39866),
+    ('\u{1e950}', 39867),
+    ('\u{1e95a}', 39868),
+    ('\u{1e95e}', 39869),
+    ('\u{1e960}', 39870),
+    ('\u{1ec71}', 39871),
+    ('\u{1ecb5}', 39872),
+    ('\u{1ed01}', 39873),
+    ('\u{1ed3e}', 39874),
+    ('\u{1ee00}', 7107),
+    ('\u{1ee25}', 39912),
+    ('\u{1ee27}', 7145),
+    ('\u{1ee3c}', 39934),
+    ('\u{1ee42}', 39935),
+    ('\u{1ee43}', 39936),
+    ('\u{1ee47}', 7169),
+    ('\u{1ee55}', 39951),
+    ('\u{1ee57}', 7184),
+    ('\u{1ee65}', 39966),
+    ('\u{1ee67}', 7199),
+    ('\u{1ee9c}', 40020),
+    ('\u{1eea1}', 7253),
+    ('\u{1eebc}', 40048),
+    ('\u{1eef0}', 40049),
+    ('\u{1eef2}', 40050),
+    ('\u{1f000}', 40051),
+    ('\u{1f02c}', 40052),
+    ('\u{1f030}', 40053),
+    ('\u{1f094}', 40054),
+    ('\u{1f0a0}', 40055),
+    ('\u{1f0af}', 40056),
+    ('\u{1f0b1}', 40057),
+    ('\u{1f0c0}', 40058),
+    ('\u{1f0c1}', 40059),
+    ('\u{1f0d0}', 40060),
+    ('\u{1f0d1}', 40061),
+    ('\u{1f0f6}', 40062),
+    ('\u{1f101}', 7295),
+    ('\u{1f10b}', 40073),
+    ('\u{1f110}', 7306),
+    ('\u{1f150}', 40138),
+    ('\u{1f16a}', 7371),
+    ('\u{1f16d}', 40142),
+    ('\u{1f190}', 40143),
+    ('\u{1f191}', 40144),
+    ('\u{1f1ae}', 40145),
+    ('\u{1f1e6}', 40146),
+    ('\u{1f200}', 7379),
+    ('\u{1f203}', 40150),
+    ('\u{1f210}', 7383),
+    ('\u{1f23c}', 40195),
+    ('\u{1f240}', 7428),
+    ('\u{1f249}', 40205),
+    ('\u{1f250}', 7438),
+    ('\u{1f252}', 40208),
+    ('\u{1f260}', 40209),
+    ('\u{1f266}', 40210),
+    ('\u{1f300}', 40211),
+    ('\u{1f6d8}', 40212),
+    ('\u{1f6e0}', 40213),
+    ('\u{1f6ed}', 40214),
+    ('\u{1f6f0}', 40215),
+    ('\u{1f6fd}', 40216),
+    ('\u{1f700}', 40217),
+    ('\u{1f774}', 40218),
+    ('\u{1f780}', 40219),
+    ('\u{1f7d9}', 40220),
+    ('\u{1f7e0}', 40221),
+    ('\u{1f7ec}', 40222),
+    ('\u{1f800}', 40223),
+    ('\u{1f80c}', 40224),
+    ('\u{1f810}', 40225),
+    ('\u{1f848}', 40226),
+    ('\u{1f850}', 40227),
+    ('\u{1f85a}', 40228),
+    ('\u{1f860}', 40229),
+    ('\u{1f888}', 40230),
+    ('\u{1f890}', 40231),
+    ('\u{1f8ae}', 40232),
+    ('\u{1f8b0}', 40233),
+    ('\u{1f8b2}', 40234),
+    ('\u{1f900}', 40235),
+    ('\u{1f979}', 40236),
+    ('\u{1f97a}', 40237),
+    ('\u{1f9cc}', 40238),
+    ('\u{1f9cd}', 40239),
+    ('\u{1fa54}', 40240),
+    ('\u{1fa60}', 40241),
+    ('\u{1fa6e}', 40242),
+    ('\u{1fa70}', 40243),
+    ('\u{1fa75}', 40244),
+    ('\u{1fa78}', 40245),
+    ('\u{1fa7b}', 40246),
+    ('\u{1fa80}', 40247),
+    ('\u{1fa87}', 40248),
+    ('\u{1fa90}', 40249),
+    ('\u{1faa9}', 40250),
+    ('\u{1fab0}', 40251),
+    ('\u{1fab7}', 40252),
+    ('\u{1fac0}', 40253),
+    ('\u{1fac3}', 40254),
+    ('\u{1fad0}', 40255),
+    ('\u{1fad7}', 40256),
+    ('\u{1fb00}', 40257),
+    ('\u{1fb93}', 40258),
+    ('\u{1fb94}', 40259),
+    ('\u{1fbcb}', 40260),
+    ('\u{1fbf0}', 7493),
+    ('\u{1fbfa}', 40271),
+    ('\u{20000}', 40272),
+    ('\u{2a6de}', 40273),
+    ('\u{2a700}', 40274),
+    ('\u{2b735}', 40275),
+    ('\u{2b740}', 40276),
+    ('\u{2b81e}', 40277),
+    ('\u{2b820}', 40278),
+    ('\u{2cea2}', 40279),
+    ('\u{2ceb0}', 40280),
+    ('\u{2ebe1}', 40281),
+    ('\u{2f800}', 7514),
+    ('\u{2f831}', 40331),
+    ('\u{2f834}', 7564),
+    ('\u{2f845}', 40349),
+    ('\u{2f847}', 7582),
+    ('\u{2f86a}', 40385),
+    ('\u{2f86c}', 7618),
+    ('\u{2f891}', 40423),
+    ('\u{2f893}', 40424),
+    ('\u{2f894}', 40425),
+    ('\u{2f896}', 7658),
+    ('\u{2f92c}', 40576),
+    ('\u{2f92e}', 7809),
+    ('\u{2f946}', 40601),
+    ('\u{2f948}', 7834),
+    ('\u{2f95d}', 40623),
+    ('\u{2f95f}', 7856),
+    ('\u{2f9fe}', 40783),
+    ('\u{2fa00}', 8016),
+    ('\u{2fa1e}', 40814),
+    ('\u{30000}', 40815),
+    ('\u{3134b}', 40816),
+    ('\u{e0100}', 40817),
+    ('\u{e01f0}', 40818),
 ];
 
 static MAPPING_TABLE: &[Mapping] = &[