Merge "Update async-stream and async-stream-impl to 0.3.6" into main
diff --git a/crates/data-encoding/.android-checksum.json b/crates/data-encoding/.android-checksum.json
index b711924..d7f4c30 100644
--- a/crates/data-encoding/.android-checksum.json
+++ b/crates/data-encoding/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"1ba28cdc6377156798b501bc3c5662a6f94207a7299ee1be6a1fa13481600c0d","Android.bp":"085627c4896c218c68e571cacd63b72a3fdcf51f24768b5d4d04f6da4be3724d","Cargo.toml":"ee20193b8e28d65126be9e7ef8f0175d1484f2ea50d354e4f816000edd6969c1","LICENSE":"4d3f7451d34eb020ee0ffb77747a61132dbc49fee3fb3abf55fc8853ddf2cc32","METADATA":"b454213a81f6a402f5cf5b03045a005066d66da4f40484f7b455d83c3ce1ea4c","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"91598fc69a30788275ed46543dbb7fbd280774e449c0e4234e86c19ce1e3f34f","cargo_embargo.json":"48b90df621dbf12710f97f8c66bbe1682f5d0a9d4925ec8652ba6c52a7359ce5","src/lib.rs":"117bbc4bd2ac764a67d9a57d407d0fa8adb965cf23325132ef1be141af9334d6"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"2117d63ade0406896abbf8320cb4a8006f8690f14dfc3a35b91f1d0adc593f42","Android.bp":"10bf48a2260ecaa2b3124299fd38f885461bd19870b1892f2c1948cc092d0027","Cargo.toml":"432b892835dd38b1a92fbd6fae9a1e4e314ce99b8f61987cd49b8d4446eab485","LICENSE":"4d3f7451d34eb020ee0ffb77747a61132dbc49fee3fb3abf55fc8853ddf2cc32","METADATA":"7b9ed0460f92186862a3f15174532cca07d074e78c1c995f07e90d2a4f911f26","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"91598fc69a30788275ed46543dbb7fbd280774e449c0e4234e86c19ce1e3f34f","cargo_embargo.json":"48b90df621dbf12710f97f8c66bbe1682f5d0a9d4925ec8652ba6c52a7359ce5","src/lib.rs":"dd90249b6e772b5a41a3e186451a4cab7b8bc8b5077354f5856e7755c08fe20d"}}
\ No newline at end of file
diff --git a/crates/data-encoding/.cargo-checksum.json b/crates/data-encoding/.cargo-checksum.json
index cb74973..ce048d3 100644
--- a/crates/data-encoding/.cargo-checksum.json
+++ b/crates/data-encoding/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"0ec3d9c4bbe44a03ebe4ebfc5d212db66fef007490f82d98d08016aaa5058d40","LICENSE":"b68ad1a3367b825447089e1f8d6829b97f47a89eb78d2f4ebaef4672f5606186","README.md":"3e363840aec7b9ac3718330a61601bf2f49623e0749d923c866daf3bdd2ed87f","src/lib.rs":"864640728624d2c5001f1f8ea1b957447d7376817fb41e7e99abb07a3324e799"},"package":"e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"}
\ No newline at end of file
+{"files":{"Cargo.toml":"7032be54d660c2140a28a9213b2d90e3db040b7218c5d505b2dab8e5bbcdfb5a","LICENSE":"b68ad1a3367b825447089e1f8d6829b97f47a89eb78d2f4ebaef4672f5606186","README.md":"3e363840aec7b9ac3718330a61601bf2f49623e0749d923c866daf3bdd2ed87f","src/lib.rs":"b322168807852426c91aa1e1e41ab1bf4ed6f10d7b6deab3606a5b1ef9bdc2ef"},"package":"0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f"}
\ No newline at end of file
diff --git a/crates/data-encoding/Android.bp b/crates/data-encoding/Android.bp
index f28f62e..c2d50eb 100644
--- a/crates/data-encoding/Android.bp
+++ b/crates/data-encoding/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "data_encoding",
     cargo_env_compat: true,
-    cargo_pkg_version: "2.6.0",
+    cargo_pkg_version: "2.7.0",
     crate_root: "src/lib.rs",
     edition: "2018",
     features: [
diff --git a/crates/data-encoding/Cargo.toml b/crates/data-encoding/Cargo.toml
index 0d22428..bc6fa61 100644
--- a/crates/data-encoding/Cargo.toml
+++ b/crates/data-encoding/Cargo.toml
@@ -13,14 +13,20 @@
 edition = "2018"
 rust-version = "1.48"
 name = "data-encoding"
-version = "2.6.0"
+version = "2.7.0"
 authors = ["Julien Cretin <[email protected]>"]
+build = false
 include = [
     "Cargo.toml",
     "LICENSE",
     "README.md",
     "src/lib.rs",
 ]
+autolib = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = "Efficient and customizable data-encoding functions like base64, base32, and hex"
 documentation = "https://docs.rs/data-encoding"
 readme = "README.md"
@@ -44,3 +50,7 @@
 alloc = []
 default = ["std"]
 std = ["alloc"]
+
+[lib]
+name = "data_encoding"
+path = "src/lib.rs"
diff --git a/crates/data-encoding/METADATA b/crates/data-encoding/METADATA
index 4655376..b362372 100644
--- a/crates/data-encoding/METADATA
+++ b/crates/data-encoding/METADATA
@@ -1,17 +1,17 @@
 name: "data-encoding"
 description: "Efficient and customizable data-encoding functions like base64, base32, and hex"
 third_party {
-  version: "2.6.0"
+  version: "2.7.0"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 10
-    day: 3
+    year: 2025
+    month: 1
+    day: 15
   }
   homepage: "https://crates.io/crates/data-encoding"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/data-encoding/data-encoding-2.6.0.crate"
-    version: "2.6.0"
+    value: "https://static.crates.io/crates/data-encoding/data-encoding-2.7.0.crate"
+    version: "2.7.0"
   }
 }
diff --git a/crates/data-encoding/src/lib.rs b/crates/data-encoding/src/lib.rs
index ed8b194..e169c10 100644
--- a/crates/data-encoding/src/lib.rs
+++ b/crates/data-encoding/src/lib.rs
@@ -255,12 +255,12 @@
     ($body: expr) => { $body };
 }
 
-unsafe fn chunk_unchecked(x: &[u8], n: usize, i: usize) -> &[u8] {
+unsafe fn chunk_unchecked<T>(x: &[T], n: usize, i: usize) -> &[T] {
     debug_assert!((i + 1) * n <= x.len());
     unsafe { core::slice::from_raw_parts(x.as_ptr().add(n * i), n) }
 }
 
-unsafe fn chunk_mut_unchecked(x: &mut [u8], n: usize, i: usize) -> &mut [u8] {
+unsafe fn chunk_mut_unchecked<T>(x: &mut [T], n: usize, i: usize) -> &mut [T] {
     debug_assert!((i + 1) * n <= x.len());
     unsafe { core::slice::from_raw_parts_mut(x.as_mut_ptr().add(n * i), n) }
 }
@@ -273,6 +273,7 @@
     x / m * m
 }
 
+#[inline]
 fn vectorize<F: FnMut(usize)>(n: usize, bs: usize, mut f: F) {
     for k in 0 .. n / bs {
         for i in k * bs .. (k + 1) * bs {
@@ -362,6 +363,7 @@
     }
 }
 
+#[inline]
 fn enc(bit: usize) -> usize {
     match bit {
         1 | 2 | 4 => 1,
@@ -371,6 +373,7 @@
     }
 }
 
+#[inline]
 fn dec(bit: usize) -> usize {
     enc(bit) * 8 / bit
 }
@@ -432,7 +435,7 @@
         x |= u64::from(y) << (bit * order(msb, dec(bit), j));
     }
     for (j, output) in output.iter_mut().enumerate() {
-        *output = (x >> (8 * order(msb, enc(bit), j)) & 0xff) as u8;
+        *output = ((x >> (8 * order(msb, enc(bit), j))) & 0xff) as u8;
     }
     Ok(())
 }
@@ -880,6 +883,7 @@
 // - width % dec(bit) == 0
 // - for all x in separator values[x] is IGNORE
 #[derive(Debug, Clone, PartialEq, Eq)]
+#[repr(transparent)]
 pub struct Encoding(#[doc(hidden)] pub InternalEncoding);
 
 /// How to translate characters when decoding
@@ -1370,6 +1374,22 @@
         Ok(())
     }
 
+    /// Returns an object to display the encoding of `input`
+    ///
+    /// # Examples
+    ///
+    /// ```rust
+    /// use data_encoding::BASE64;
+    /// assert_eq!(
+    ///     format!("Payload: {}", BASE64.encode_display(b"Hello world")),
+    ///     "Payload: SGVsbG8gd29ybGQ=",
+    /// );
+    /// ```
+    #[must_use]
+    pub fn encode_display<'a>(&'a self, input: &'a [u8]) -> Display<'a> {
+        Display { encoding: self, input }
+    }
+
     /// Returns encoded `input`
     ///
     /// # Examples
@@ -1386,9 +1406,10 @@
         unsafe { String::from_utf8_unchecked(output) }
     }
 
-    /// Returns the decoded length of an input of length `len`
+    /// Returns the maximum decoded length of an input of length `len`
     ///
-    /// See [`decode_mut`] for when to use it.
+    /// See [`decode_mut`] for when to use it. In particular, the actual decoded length might be
+    /// smaller if the actual input contains padding or ignored characters.
     ///
     /// # Errors
     ///
@@ -1623,7 +1644,7 @@
 }
 
 #[cfg(feature = "alloc")]
-impl<'a> Drop for Encoder<'a> {
+impl Drop for Encoder<'_> {
     fn drop(&mut self) {
         self.encoding.encode_append(&self.buffer[.. self.length as usize], self.output);
     }
@@ -1670,6 +1691,19 @@
     pub fn finalize(self) {}
 }
 
+/// Wraps an encoding and input for display purposes.
+#[derive(Debug)]
+pub struct Display<'a> {
+    encoding: &'a Encoding,
+    input: &'a [u8],
+}
+
+impl core::fmt::Display for Display<'_> {
+    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+        self.encoding.encode_write(self.input, f)
+    }
+}
+
 #[derive(Debug, Copy, Clone)]
 #[cfg(feature = "alloc")]
 enum SpecificationErrorImpl {
diff --git a/crates/log/.android-checksum.json b/crates/log/.android-checksum.json
index 9c7ea32..a558ed8 100644
--- a/crates/log/.android-checksum.json
+++ b/crates/log/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"829acc413b591dd5bb0c4fa13fd810a51743fba4ec8c83a69e54e778f520376d","Android.bp":"32d9d514ce92daf9be6993ea3f38c99c4189ec376e48380eec1f778fa3a1488b","CHANGELOG.md":"e1aaf90192488d54ff6a46a925cc0014efe2f7f7d3cd5452a597f19819898a58","Cargo.toml":"e32b19635a5e61b73c3e430e99d2e51ff144f1034cb748c0f77f305dc3ce2c01","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"16693a68efd65bc6a9df3448c8f7ee6745418c73faff4ec4d443648c04285fa4","METADATA":"e58b92f265fb435b57d03508bfb4db47e75e6d404e47ad4d0755d539d86f54cc","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"529a9a959ffd4366507a0ad5f05ae111601f91fb1a8f93c1826313a068b20af4","TEST_MAPPING":"0b1bb3633c893c6818637971ced42349d631558a5a0dd961dadf0851d2a7050b","android_impl.bp.fragment":"0e6ba30b8dfb5ac9264fc817ed88cb6be0aecc6cd6ca3529cab6c00e24e3cc1b","benches/value.rs":"384a0d275f1a51798fa50b8814eaffd04d82959c3d4fbb1a5396316ac19ea512","cargo_embargo.json":"58a279782543521e3d42a11f8103a9061bd98a558c55dc2bd83ff504313cea84","patches/0001-Enable-default-initializing-liblog_rust-to-write-to-.patch":"d1d5b5125a828cf8228733bc862b4249fb1dd133cef67fb2eef911ca60c083d9","patches/rules.mk.diff":"b1903a2e732bd7be430fc3fa75a3a84ac71e7f8a009169b58ccba8bd495f047a","rules.mk":"5de4d2344b08632b2edd4888eb40c33f5f2df6acc02cf84d2d6984811d409e28","src/__private_api.rs":"0789ef184fa5395965506963763b0a51dfd0137a9ebef20af272acf51ef62d79","src/android_logger.rs":"2947d40a5ba367f82d6d16134f6500b5a640ca54f35e2ea1132cd7e6aabe05c0","src/kv/error.rs":"6a78c87679603250deb04078e12187e8c0f4bb201109de8b35d029d921ec4e14","src/kv/key.rs":"d57ff689a01542f8332861853408c6ab75cc074857a353f92d5f93e0caa9cdea","src/kv/mod.rs":"e00dd746c7a5af3d12e4f8bc3db10c1122b7d20fa84233b98085662e6e0851b1","src/kv/source.rs":"a0ea12425d42dd6d9f9850d66d02e26ea1d40dbe2cb4bfdfe8716f17d6cac3b2","src/kv/value.rs":"57b5fe671bd2080817823a34ac1c797305d64b07a950ea20ab930f22ebb827b2","src/lib.rs":"69c84c20c116e9dfb2be9c7b58f377cca27fb0c1e32910bd0fba6a3be803fb9b","src/macros.rs":"7f9931177a095ee937f6ef685de7b1acf925f2b99edd1dd52a1738291084b812","src/serde.rs":"9158d67bc97a52a1adb70043b62e461c453cd3df934be125314c5c143d136ec5","triagebot.toml":"26772e45fe413284e600760236cfd60cb726b7ae47fde22f2f9c474bd27ff8b0"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"f68944b3f60f392fbc0c12c427c0a68259baace4d96c658b875ad6f08c8047c7","Android.bp":"2aeb896749245e6b1564e235ee18108e3f5c7c65d9079b09961f7c06589aa468","CHANGELOG.md":"3548dee9b4e4bbd11ad6680f5c89293c9c21972b2bd27a41081011c03d97e63b","Cargo.toml":"9fa4a0bf4d1f95d48e533ce1a848d52b609a002070b58d5decc2ad95c5fe8f41","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"16693a68efd65bc6a9df3448c8f7ee6745418c73faff4ec4d443648c04285fa4","METADATA":"d8b41bd526a765e924fd33ca5788e597979d4b296249705294d6717856c40782","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"6ac60ad741da342e5268a81306dc526cdcfb6dc5a90e1a4cb3609bf61728842f","TEST_MAPPING":"0b1bb3633c893c6818637971ced42349d631558a5a0dd961dadf0851d2a7050b","android_impl.bp.fragment":"0e6ba30b8dfb5ac9264fc817ed88cb6be0aecc6cd6ca3529cab6c00e24e3cc1b","benches/value.rs":"384a0d275f1a51798fa50b8814eaffd04d82959c3d4fbb1a5396316ac19ea512","cargo_embargo.json":"58a279782543521e3d42a11f8103a9061bd98a558c55dc2bd83ff504313cea84","patches/0001-Enable-default-initializing-liblog_rust-to-write-to-.patch":"d1d5b5125a828cf8228733bc862b4249fb1dd133cef67fb2eef911ca60c083d9","patches/rules.mk.diff":"b1903a2e732bd7be430fc3fa75a3a84ac71e7f8a009169b58ccba8bd495f047a","rules.mk":"5de4d2344b08632b2edd4888eb40c33f5f2df6acc02cf84d2d6984811d409e28","src/__private_api.rs":"0789ef184fa5395965506963763b0a51dfd0137a9ebef20af272acf51ef62d79","src/android_logger.rs":"2947d40a5ba367f82d6d16134f6500b5a640ca54f35e2ea1132cd7e6aabe05c0","src/kv/error.rs":"6a78c87679603250deb04078e12187e8c0f4bb201109de8b35d029d921ec4e14","src/kv/key.rs":"826900e7d97eacbf5a8e478faaf2a637ce6b2813a12ba998a3fa0ffdc1713a32","src/kv/mod.rs":"0d7204886b190af0e48e24d7bebb8367ae5b97b1ecd258aa60c2f3f0319a5086","src/kv/source.rs":"a0ea12425d42dd6d9f9850d66d02e26ea1d40dbe2cb4bfdfe8716f17d6cac3b2","src/kv/value.rs":"74d6caf29ab11d7dc95e7343bae30ce7ddbd2dbdc2b930272c477038d06187bc","src/lib.rs":"b0c88121245456890464b70a5bd0690f2f47c4b8824eda2d394a41a3309bed16","src/macros.rs":"7f9931177a095ee937f6ef685de7b1acf925f2b99edd1dd52a1738291084b812","src/serde.rs":"e3bd5e114c74855c6dfd5c9c0a803ca4daa89132c59ce5e4a6d95beba2e7e7f9","triagebot.toml":"26772e45fe413284e600760236cfd60cb726b7ae47fde22f2f9c474bd27ff8b0"}}
\ No newline at end of file
diff --git a/crates/log/.cargo-checksum.json b/crates/log/.cargo-checksum.json
index 42ea021..bec4164 100644
--- a/crates/log/.cargo-checksum.json
+++ b/crates/log/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"df7d7ea4256611dd5e3bf160e39bb3f8b665c6805ae47fdbf28acf9f77245ffd","Cargo.toml":"2161251dd0dfbea680a9d5fd762973e343fc5215794681c5ffd641faab9a4e4c","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"a23bbe55ac94081711c081a63df10d324a8a26f4b836952cb3c45c9318a03152","benches/value.rs":"b613ff353d3cf0ef8cb98e4ca461ea929b8ba553fe299f2eb2942d77a5b1b6a0","src/__private_api.rs":"da677f1e29e3cb135c971247031bc0eb20324294ab5c1c74c5118f87e45518ae","src/kv/error.rs":"6dae12424164c33b93915f5e70bd6d99d616c969c8bfb543806721dd9b423981","src/kv/key.rs":"9439e91c3ab3f9574a6a11a0347c7b63fdf1652384a6b28411136e4373de2970","src/kv/mod.rs":"3521a5bcfd7f92dcfac6c3c948020d686fee696596c566333a27edbbcc8a4ea8","src/kv/source.rs":"73fbc180c824072d86f1f41f8c59c014db1d8988a86be38a9128d67d6aab06a5","src/kv/value.rs":"0aade52b8e3523a17d6114f8b664793862032a94ea1ee2a4f12a20dd729b92d4","src/lib.rs":"55c32130cd8b99cde2ea962a403cdade52d20e80088357ba2784ee53b2eb9a2c","src/macros.rs":"dfb98017d5f205fec632069ab857a18661d6d563cf5162eeef64d367cc3ad7f5","src/serde.rs":"35f520f62fdba0216ccee33e5b66ad8f81dee3af5b65b824f1816180c9350df5","triagebot.toml":"a135e10c777cd13459559bdf74fb704c1379af7c9b0f70bc49fa6f5a837daa81"},"package":"a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"}
\ No newline at end of file
+{"files":{"CHANGELOG.md":"aaf53a73b9699e3fd9b96bed7811be104fe7fa3e4404a88bf1052096992e014e","Cargo.toml":"117b873259249dd3aa75219cfa9b2696af367602333722e10b19043642d8b58d","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"00eda7b9168a6cb515bdd3d31be65c1988f77d3443fd9e093161df15d328208e","benches/value.rs":"b613ff353d3cf0ef8cb98e4ca461ea929b8ba553fe299f2eb2942d77a5b1b6a0","src/__private_api.rs":"da677f1e29e3cb135c971247031bc0eb20324294ab5c1c74c5118f87e45518ae","src/kv/error.rs":"6dae12424164c33b93915f5e70bd6d99d616c969c8bfb543806721dd9b423981","src/kv/key.rs":"e63fd5b22b62f2bfacbd77fe0913c3667ed39de5eeb6d93292b77b1b1de4208a","src/kv/mod.rs":"9f4e230cd3b314ad2a7351193109d4e6ca043ed88c0948e6d64076782538b671","src/kv/source.rs":"73fbc180c824072d86f1f41f8c59c014db1d8988a86be38a9128d67d6aab06a5","src/kv/value.rs":"b52f71603e0fdbaa1e83676882aa690dfdb7f79950c8eb1205e0e5141bbce483","src/lib.rs":"254e0fe88301aebe218737bd40552ea730a3ea4a3483733b5741ca813b886eaf","src/macros.rs":"dfb98017d5f205fec632069ab857a18661d6d563cf5162eeef64d367cc3ad7f5","src/serde.rs":"1b261f9df7a97ace311e9ab9b6c951a17ff7e39227a352c7e09cb2731efd9a2f","triagebot.toml":"a135e10c777cd13459559bdf74fb704c1379af7c9b0f70bc49fa6f5a837daa81"},"package":"04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f"}
\ No newline at end of file
diff --git a/crates/log/Android.bp b/crates/log/Android.bp
index 852bf3b..2fe4ffd 100644
--- a/crates/log/Android.bp
+++ b/crates/log/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "log",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.4.22",
+    cargo_pkg_version: "0.4.25",
     crate_root: "src/lib.rs",
     edition: "2021",
     features: ["std"],
@@ -48,7 +48,7 @@
     host_supported: true,
     crate_name: "log",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.4.22",
+    cargo_pkg_version: "0.4.25",
     crate_root: "src/lib.rs",
     edition: "2021",
     features: [
@@ -82,7 +82,7 @@
     host_supported: true,
     crate_name: "log",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.4.22",
+    cargo_pkg_version: "0.4.25",
     crate_root: "src/lib.rs",
     edition: "2021",
     features: [
@@ -115,7 +115,7 @@
     name: "liblog_rust_nostd",
     crate_name: "log",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.4.22",
+    cargo_pkg_version: "0.4.25",
     crate_root: "src/lib.rs",
     edition: "2021",
     apex_available: [
diff --git a/crates/log/CHANGELOG.md b/crates/log/CHANGELOG.md
index 2c89834..6ade6b2 100644
--- a/crates/log/CHANGELOG.md
+++ b/crates/log/CHANGELOG.md
@@ -2,6 +2,46 @@
 
 ## [Unreleased]
 
+## [0.4.25] - 2025-01-14
+
+## What's Changed
+* Revert loosening of kv cargo features by @KodrAus in https://github.com/rust-lang/log/pull/662
+
+
+**Full Changelog**: https://github.com/rust-lang/log/compare/0.4.24...0.4.25
+
+## [0.4.24] - 2025-01-11
+
+## What's Changed
+* Fix up kv feature activation by @KodrAus in https://github.com/rust-lang/log/pull/659
+
+
+**Full Changelog**: https://github.com/rust-lang/log/compare/0.4.23...0.4.24
+
+## [0.4.23] - 2025-01-10 (yanked)
+
+## What's Changed
+* Fix some typos by @Kleinmarb in https://github.com/rust-lang/log/pull/637
+* Add logforth to implementation by @tisonkun in https://github.com/rust-lang/log/pull/638
+* Add `spdlog-rs` link to README by @SpriteOvO in https://github.com/rust-lang/log/pull/639
+* Add correct lifetime to kv::Value::to_borrowed_str by @stevenroose in https://github.com/rust-lang/log/pull/643
+* docs: Add logforth as an impl by @tisonkun in https://github.com/rust-lang/log/pull/642
+* Add clang_log implementation by @DDAN-17 in https://github.com/rust-lang/log/pull/646
+* Bind lifetimes of &str returned from Key by the lifetime of 'k rather than the lifetime of the Key struct by @gbbosak in https://github.com/rust-lang/log/pull/648
+* Fix up key lifetimes and add method to try get a borrowed key by @KodrAus in https://github.com/rust-lang/log/pull/653
+* Add Ftail implementation by @tjardoo in https://github.com/rust-lang/log/pull/652
+
+## New Contributors
+* @Kleinmarb made their first contribution in https://github.com/rust-lang/log/pull/637
+* @tisonkun made their first contribution in https://github.com/rust-lang/log/pull/638
+* @SpriteOvO made their first contribution in https://github.com/rust-lang/log/pull/639
+* @stevenroose made their first contribution in https://github.com/rust-lang/log/pull/643
+* @DDAN-17 made their first contribution in https://github.com/rust-lang/log/pull/646
+* @gbbosak made their first contribution in https://github.com/rust-lang/log/pull/648
+* @tjardoo made their first contribution in https://github.com/rust-lang/log/pull/652
+
+**Full Changelog**: https://github.com/rust-lang/log/compare/0.4.22...0.4.23
+
 ## [0.4.22] - 2024-06-27
 
 ## What's Changed
@@ -64,7 +104,7 @@
 
 ## [0.4.18] - 2023-05-28
 
-* fix markdown links (again) by @hellow554 in https://github.com/rust-lang/log/pull/513
+* fix Markdown links (again) by @hellow554 in https://github.com/rust-lang/log/pull/513
 * add cargo doc to workflow by @hellow554 in https://github.com/rust-lang/log/pull/515
 * Apply Clippy lints by @hellow554 in https://github.com/rust-lang/log/pull/516
 * Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by @glandium in https://github.com/rust-lang/log/pull/519
@@ -99,7 +139,7 @@
 * Improvements to test coverage.
 * Improvements to documentation.
 * Add key-value support to the `log!` macros.
-* Tighten `kv_unstable` internal dependencies so they don't bump past their current alpha.
+* Tighten `kv_unstable` internal dependencies, so they don't bump past their current alpha.
 * Add a simple visit API to `kv_unstable`.
 * Support `NonZero*` integers as values in structured logging
 * Support static strings as keys in structured logging
@@ -149,7 +189,7 @@
 
 ### Fixed
 
-* Fixed the `log!` macros so they work in expression context (this regressed in `0.4.9`, which has been yanked).
+* Fixed the `log!` macros, so they work in expression context (this regressed in `0.4.9`, which has been yanked).
 
 ## [0.4.9] - 2019-12-12 (yanked)
 
@@ -260,7 +300,7 @@
 * The `logger` free function returns a reference to the logger implementation. This, along with the
     ability to construct `Record`s, makes it possible to bridge from another logging framework to
     this one without digging into the private internals of the crate. The standard `error!` `warn!`,
-    etc, macros now exclusively use the public API of the crate rather than "secret" internal APIs.
+    etc., macros now exclusively use the public API of the crate rather than "secret" internal APIs.
 * `Log::flush` has been added to allow crates to tell the logging implementation to ensure that all
     "in flight" log events have been persisted. This can be used, for example, just before an
     application exits to ensure that asynchronous log sinks finish their work.
@@ -298,7 +338,11 @@
 
 Look at the [release tags] for information about older releases.
 
-[Unreleased]: https://github.com/rust-lang-nursery/log/compare/0.4.21...HEAD
+[Unreleased]: https://github.com/rust-lang-nursery/log/compare/0.4.25...HEAD
+[0.4.25]: https://github.com/rust-lang/log/compare/0.4.24...0.4.25
+[0.4.24]: https://github.com/rust-lang/log/compare/0.4.23...0.4.24
+[0.4.23]: https://github.com/rust-lang/log/compare/0.4.22...0.4.23
+[0.4.22]: https://github.com/rust-lang/log/compare/0.4.21...0.4.22
 [0.4.21]: https://github.com/rust-lang/log/compare/0.4.20...0.4.21
 [0.4.20]: https://github.com/rust-lang-nursery/log/compare/0.4.19...0.4.20
 [0.4.19]: https://github.com/rust-lang-nursery/log/compare/0.4.18...0.4.19
diff --git a/crates/log/Cargo.toml b/crates/log/Cargo.toml
index 313a005..a4aba7f 100644
--- a/crates/log/Cargo.toml
+++ b/crates/log/Cargo.toml
@@ -13,9 +13,15 @@
 edition = "2021"
 rust-version = "1.60.0"
 name = "log"
-version = "0.4.22"
+version = "0.4.25"
 authors = ["The Rust Project Developers"]
+build = false
 exclude = ["rfcs/**/*"]
+autolib = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = """
 A lightweight logging facade for Rust
 """
@@ -35,15 +41,13 @@
     "kv_serde",
 ]
 
-[[test]]
-name = "integration"
-path = "tests/integration.rs"
-harness = false
+[lib]
+name = "log"
+path = "src/lib.rs"
 
-[[test]]
-name = "macros"
-path = "tests/macros.rs"
-harness = true
+[[bench]]
+name = "value"
+path = "benches/value.rs"
 
 [dependencies.serde]
 version = "1.0"
diff --git a/crates/log/METADATA b/crates/log/METADATA
index 36ec7a6..4d8a340 100644
--- a/crates/log/METADATA
+++ b/crates/log/METADATA
@@ -1,17 +1,17 @@
 name: "log"
 description: "A lightweight logging facade for Rust"
 third_party {
-  version: "0.4.22"
+  version: "0.4.25"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 11
-    day: 1
+    year: 2025
+    month: 1
+    day: 15
   }
   homepage: "https://crates.io/crates/log"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/log/log-0.4.22.crate"
-    version: "0.4.22"
+    value: "https://static.crates.io/crates/log/log-0.4.25.crate"
+    version: "0.4.25"
   }
 }
diff --git a/crates/log/README.md b/crates/log/README.md
index d4a08b1..f8b5449 100644
--- a/crates/log/README.md
+++ b/crates/log/README.md
@@ -71,9 +71,13 @@
     * [`call_logger`](https://docs.rs/call_logger/*/call_logger/)
     * [`std-logger`](https://docs.rs/std-logger/*/std_logger/)
     * [`structured-logger`](https://docs.rs/structured-logger/latest/structured_logger/)
+    * [`clang_log`](https://docs.rs/clang_log/latest/clang_log)
+    * [`ftail`](https://docs.rs/ftail/latest/ftail/)
 * Complex configurable frameworks:
     * [`log4rs`](https://docs.rs/log4rs/*/log4rs/)
+    * [`logforth`](https://docs.rs/logforth/*/logforth/)
     * [`fern`](https://docs.rs/fern/*/fern/)
+    * [`spdlog-rs`](https://docs.rs/spdlog-rs/*/spdlog/)
 * Adaptors for other facilities:
     * [`syslog`](https://docs.rs/syslog/*/syslog/)
     * [`systemd-journal-logger`](https://docs.rs/systemd-journal-logger/*/systemd_journal_logger/)
diff --git a/crates/log/src/kv/key.rs b/crates/log/src/kv/key.rs
index 9a64b95..6e00a2c 100644
--- a/crates/log/src/kv/key.rs
+++ b/crates/log/src/kv/key.rs
@@ -35,6 +35,7 @@
 // If a new field (such as an optional index) is added to the key they must not affect comparison
 #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
 pub struct Key<'k> {
+    // NOTE: This may become `Cow<'k, str>`
     key: &'k str,
 }
 
@@ -45,9 +46,23 @@
     }
 
     /// Get a borrowed string from this key.
+    ///
+    /// The lifetime of the returned string is bound to the borrow of `self` rather
+    /// than to `'k`.
     pub fn as_str(&self) -> &str {
         self.key
     }
+
+    /// Try get a borrowed string for the lifetime `'k` from this key.
+    ///
+    /// If the key is a borrow of a longer lived string, this method will return `Some`.
+    /// If the key is internally buffered, this method will return `None`.
+    pub fn to_borrowed_str(&self) -> Option<&'k str> {
+        // NOTE: If the internals of `Key` support buffering this
+        // won't be unconditionally `Some` anymore. We want to keep
+        // this option open
+        Some(self.key)
+    }
 }
 
 impl<'k> fmt::Display for Key<'k> {
@@ -140,4 +155,9 @@
     fn key_from_string() {
         assert_eq!("a key", Key::from_str("a key").as_str());
     }
+
+    #[test]
+    fn key_to_borrowed() {
+        assert_eq!("a key", Key::from_str("a key").to_borrowed_str().unwrap());
+    }
 }
diff --git a/crates/log/src/kv/mod.rs b/crates/log/src/kv/mod.rs
index 1ccb825..8c71e07 100644
--- a/crates/log/src/kv/mod.rs
+++ b/crates/log/src/kv/mod.rs
@@ -29,7 +29,7 @@
 //! info!(a = 1; "Something of interest");
 //! ```
 //!
-//! Key-values support the same shorthand identifer syntax as `format_args`:
+//! Key-values support the same shorthand identifier syntax as `format_args`:
 //!
 //! ```
 //! # use log::info;
diff --git a/crates/log/src/kv/value.rs b/crates/log/src/kv/value.rs
index 1511dd0..ef94298 100644
--- a/crates/log/src/kv/value.rs
+++ b/crates/log/src/kv/value.rs
@@ -101,7 +101,7 @@
 /// Values provide a number of ways to be serialized.
 ///
 /// For basic types the [`Value::visit`] method can be used to extract the
-/// underlying typed value. However this is limited in the amount of types
+/// underlying typed value. However, this is limited in the amount of types
 /// supported (see the [`VisitValue`] trait methods).
 ///
 /// For more complex types one of the following traits can be used:
@@ -373,14 +373,14 @@
 ];
 
 impl<'v> Value<'v> {
-    /// Try convert this value into an error.
+    /// Try to convert this value into an error.
     #[cfg(feature = "kv_std")]
     pub fn to_borrowed_error(&self) -> Option<&(dyn std::error::Error + 'static)> {
         self.inner.to_borrowed_error()
     }
 
-    /// Try convert this value into a borrowed string.
-    pub fn to_borrowed_str(&self) -> Option<&str> {
+    /// Try to convert this value into a borrowed string.
+    pub fn to_borrowed_str(&self) -> Option<&'v str> {
         self.inner.to_borrowed_str()
     }
 }
@@ -725,7 +725,7 @@
 
     1. Conversions should always produce the same results. If a conversion here returns `Some`, then
        the same `value_bag`-based conversion must also. Of particular note here are floats to ints; they're
-       based on the standard library's `TryInto` conversions, which need to be convert to `i32` or `u32`,
+       based on the standard library's `TryInto` conversions, which need to be converted to `i32` or `u32`,
        and then to `f64`.
     2. VisitValues should always be called in the same way. If a particular type of value calls `visit_i64`,
        then the same `value_bag`-based visitor must also.
diff --git a/crates/log/src/lib.rs b/crates/log/src/lib.rs
index 799b88e..6b4604d 100644
--- a/crates/log/src/lib.rs
+++ b/crates/log/src/lib.rs
@@ -143,8 +143,11 @@
 //!     * [flexi_logger]
 //!     * [call_logger]
 //!     * [structured-logger]
+//!     * [clang_log]
+//!     * [ftail]
 //! * Complex configurable frameworks:
 //!     * [log4rs]
+//!     * [logforth]
 //!     * [fern]
 //! * Adaptors for other facilities:
 //!     * [syslog]
@@ -321,6 +324,7 @@
 //! [syslog]: https://docs.rs/syslog/*/syslog/
 //! [slog-stdlog]: https://docs.rs/slog-stdlog/*/slog_stdlog/
 //! [log4rs]: https://docs.rs/log4rs/*/log4rs/
+//! [logforth]: https://docs.rs/logforth/*/logforth/
 //! [fern]: https://docs.rs/fern/*/fern/
 //! [systemd-journal-logger]: https://docs.rs/systemd-journal-logger/*/systemd_journal_logger/
 //! [android_log]: https://docs.rs/android_log/*/android_log/
@@ -332,11 +336,13 @@
 //! [logcontrol-log]: https://docs.rs/logcontrol-log/*/logcontrol_log/
 //! [log_err]: https://docs.rs/log_err/*/log_err/
 //! [log-reload]: https://docs.rs/log-reload/*/log_reload/
+//! [clang_log]: https://docs.rs/clang_log/latest/clang_log
+//! [ftail]: https://docs.rs/ftail/latest/ftail
 
 #![doc(
     html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
     html_favicon_url = "https://www.rust-lang.org/favicon.ico",
-    html_root_url = "https://docs.rs/log/0.4.22"
+    html_root_url = "https://docs.rs/log/0.4.25"
 )]
 #![warn(missing_docs)]
 #![deny(missing_debug_implementations, unconditional_recursion)]
diff --git a/crates/log/src/serde.rs b/crates/log/src/serde.rs
index 63bef7f..db73239 100644
--- a/crates/log/src/serde.rs
+++ b/crates/log/src/serde.rs
@@ -11,7 +11,7 @@
 use std::fmt;
 use std::str::{self, FromStr};
 
-// The Deserialize impls are handwritten to be case insensitive using FromStr.
+// The Deserialize impls are handwritten to be case-insensitive using FromStr.
 
 impl Serialize for Level {
     fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
@@ -57,7 +57,7 @@
             where
                 E: Error,
             {
-                // Case insensitive.
+                // Case-insensitive.
                 FromStr::from_str(s).map_err(|_| Error::unknown_variant(s, &LOG_LEVEL_NAMES[1..]))
             }
 
@@ -152,7 +152,7 @@
             where
                 E: Error,
             {
-                // Case insensitive.
+                // Case-insensitive.
                 FromStr::from_str(s).map_err(|_| Error::unknown_variant(s, &LOG_LEVEL_NAMES))
             }
 
diff --git a/crates/pest_generator/.android-checksum.json b/crates/pest_generator/.android-checksum.json
index a31cbc9..9258c0b 100644
--- a/crates/pest_generator/.android-checksum.json
+++ b/crates/pest_generator/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"8711726461f3c9437e9eee9d36ed82d3974bc87116897dfed6a0cd2e83355291","Android.bp":"f7b74d3f7faa345bf489d5c4f04c0fe9f007794aa65863aa9c46b6506d86d8b9","Cargo.toml":"82a4dbe24b3fa489496018714d24c061558470c1a3caf5ac62d2b46c039c2cd1","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"d1f5f3b6e746328d97d9b50ac450a8cd127f547a0719e79efd26a5998431fa93","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","_README.md":"6b973bfc5a49b890c6c47d4705f7f6ae59ec30552d0c3fd0fccf77bb1c694157","cargo_embargo.json":"3ca1544e82177080d7388ff17069a5f1766ba92138a9e2c502c156a296f418d8","src/docs.rs":"fb624d5b414372276e70538ff7b9dfa79bdede5bbd9b4609a2b2456c428ae3e6","src/generator.rs":"f3f7e4a1a758d50d4d92062c754de222f3f16f7af0d49acc6e5847a25890004d","src/lib.rs":"8975d84fea527807a5ec8e9f88ce0790df86b1903175fb7cb51d1760d73a4727","src/macros.rs":"7bb24e482baae1b7f5a7845da000c2fb7a9417a802cdc27eb0de393efc73612c","tests/base.pest":"842b80623c38d4c5221105126135fc42fa7c8a9b631677d6f3013068370dc149","tests/test.pest":"84526a2b662665a3ed83baf588dbeaf8e92e1898b904d4c69f7c16d7b1c399ac"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"3ae08460988dbccb11757257a8b143f85c92286fdeda0c4d056fadeae4044337","Android.bp":"6649afc7911a5c155d85ee67c65c0a04cf71f59f87ca474a9c733d3d261b3656","Cargo.toml":"2cda83978ec6ff9cca0e36dd6b9ee88dfbf69589f73e219496e62fb585045f29","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"aa4e506347229c5caedc047f7b8382fa4aa66a05847478973ac57187985e082d","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","_README.md":"6b973bfc5a49b890c6c47d4705f7f6ae59ec30552d0c3fd0fccf77bb1c694157","cargo_embargo.json":"3ca1544e82177080d7388ff17069a5f1766ba92138a9e2c502c156a296f418d8","src/docs.rs":"bf0ca813afd16b6f3f4ae9bc6818f389bad0773249081895225b85bef2fea208","src/generator.rs":"c3df900c8448042d2011c08cf852480e8ff8a31c423c656f3df7500145be6d17","src/lib.rs":"7ff0e9dfe50cacb698a6b1c5e8e83d1b9aea42e9c367e4a515e1255a398245e1","src/macros.rs":"7bb24e482baae1b7f5a7845da000c2fb7a9417a802cdc27eb0de393efc73612c","src/parse_derive.rs":"b49de93f401c13928c662b0436ae7f4d08eb9af11139a6ee7b23fd400215c7eb","tests/base.pest":"842b80623c38d4c5221105126135fc42fa7c8a9b631677d6f3013068370dc149","tests/test.pest":"84526a2b662665a3ed83baf588dbeaf8e92e1898b904d4c69f7c16d7b1c399ac"}}
\ No newline at end of file
diff --git a/crates/pest_generator/.cargo-checksum.json b/crates/pest_generator/.cargo-checksum.json
index 141f902..37ccbe3 100644
--- a/crates/pest_generator/.cargo-checksum.json
+++ b/crates/pest_generator/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"2936f4743aacfebd9824fb7fd69f6b03204312bd41153c2dcdfafa42ad0b05c1","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","_README.md":"bde746653575153be4ae26ce950963ced5034449e352e60cfd8825260c666c16","src/docs.rs":"041b2c24377955dfdb6c29991b1f1dd7d7191431d8e5eaa245325253b250f702","src/generator.rs":"21dea1774cbca7c03bc7283157c449f1acad6ac387078bbaa3fd0d5134a5e4ab","src/lib.rs":"034624c6d8ad89b365f81ab04ad96a3d67909ba3485008355f21429a42b5e02c","src/macros.rs":"897d9004449b1c219f17c079630a790f3de1a27f61bc6a03cd777a163a6a1fba","tests/base.pest":"30f6965031bc52937114f60233a327e41ccc43429ae41a8e40c7b7c8006c466f","tests/test.pest":"f3fea8154a9a26c773ab8392685039d0d84bd845587bb2d42b970946f7967ee8"},"package":"2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275"}
\ No newline at end of file
+{"files":{"Cargo.toml":"7947cbefca45a6924315a1a3495beb7cb7bd6ff7602c7f7ebf7ce110656c3028","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","_README.md":"bde746653575153be4ae26ce950963ced5034449e352e60cfd8825260c666c16","src/docs.rs":"47a5eaeeaa17efbf0537bd931eb388caa7a30cfd8504af0a90af8facee32e264","src/generator.rs":"bba65552cdf4816b7315cea607ea534d795e1ec239f1ab378cd85ef97a3ca335","src/lib.rs":"c515d9b83cd11ca3b7d9aecc3493adeb0e4eb370c0b274c4bcd1be20a48ff482","src/macros.rs":"897d9004449b1c219f17c079630a790f3de1a27f61bc6a03cd777a163a6a1fba","src/parse_derive.rs":"44fd33409a368c740d98e4eafba49db2da584dff9cda33b3de640b532a974f12","tests/base.pest":"30f6965031bc52937114f60233a327e41ccc43429ae41a8e40c7b7c8006c466f","tests/test.pest":"f3fea8154a9a26c773ab8392685039d0d84bd845587bb2d42b970946f7967ee8"},"package":"7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b"}
\ No newline at end of file
diff --git a/crates/pest_generator/Android.bp b/crates/pest_generator/Android.bp
index 5e5de3f..4d94340 100644
--- a/crates/pest_generator/Android.bp
+++ b/crates/pest_generator/Android.bp
@@ -18,7 +18,7 @@
     host_cross_supported: false,
     crate_name: "pest_generator",
     cargo_env_compat: true,
-    cargo_pkg_version: "2.7.6",
+    cargo_pkg_version: "2.7.15",
     crate_root: "src/lib.rs",
     edition: "2021",
     features: [
diff --git a/crates/pest_generator/Cargo.toml b/crates/pest_generator/Cargo.toml
index 85dabac..2c3305f 100644
--- a/crates/pest_generator/Cargo.toml
+++ b/crates/pest_generator/Cargo.toml
@@ -13,7 +13,7 @@
 edition = "2021"
 rust-version = "1.61"
 name = "pest_generator"
-version = "2.7.6"
+version = "2.7.15"
 authors = ["Dragoș Tiselice <[email protected]>"]
 description = "pest code generator"
 homepage = "https://pest.rs/"
@@ -28,11 +28,11 @@
 repository = "https://github.com/pest-parser/pest"
 
 [dependencies.pest]
-version = "2.7.6"
+version = "2.7.15"
 default-features = false
 
 [dependencies.pest_meta]
-version = "2.7.6"
+version = "2.7.15"
 
 [dependencies.proc-macro2]
 version = "1.0"
@@ -45,6 +45,7 @@
 
 [features]
 default = ["std"]
+export-internal = []
 grammar-extras = ["pest_meta/grammar-extras"]
 not-bootstrap-in-src = ["pest_meta/not-bootstrap-in-src"]
 std = ["pest/std"]
diff --git a/crates/pest_generator/METADATA b/crates/pest_generator/METADATA
index 331a5f5..b64d063 100644
--- a/crates/pest_generator/METADATA
+++ b/crates/pest_generator/METADATA
@@ -1,17 +1,17 @@
 name: "pest_generator"
 description: "pest code generator"
 third_party {
-  version: "2.7.6"
+  version: "2.7.15"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 2
-    day: 5
+    year: 2025
+    month: 1
+    day: 15
   }
   homepage: "https://crates.io/crates/pest_generator"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/pest_generator/pest_generator-2.7.6.crate"
-    version: "2.7.6"
+    value: "https://static.crates.io/crates/pest_generator/pest_generator-2.7.15.crate"
+    version: "2.7.15"
   }
 }
diff --git a/crates/pest_generator/src/docs.rs b/crates/pest_generator/src/docs.rs
index ccc82e7..22f4f31 100644
--- a/crates/pest_generator/src/docs.rs
+++ b/crates/pest_generator/src/docs.rs
@@ -1,9 +1,13 @@
+//! Type and helper to collect the gramamr and rule documentation.
+
 use pest::iterators::Pairs;
 use pest_meta::parser::Rule;
 use std::collections::HashMap;
 
+/// Abstraction for the grammer and rule doc.
 #[derive(Debug)]
-pub(crate) struct DocComment {
+pub struct DocComment {
+    /// The grammar documentation is defined at the beginning of a file with //!.
     pub grammar_doc: String,
 
     /// HashMap for store all doc_comments for rules.
@@ -33,7 +37,7 @@
 /// grammar_doc = "This is a grammar doc"
 /// line_docs = { "foo": "line doc 1\nline doc 2", "bar": "line doc 3" }
 /// ```
-pub(crate) fn consume(pairs: Pairs<'_, Rule>) -> DocComment {
+pub fn consume(pairs: Pairs<'_, Rule>) -> DocComment {
     let mut grammar_doc = String::new();
 
     let mut line_docs: HashMap<String, String> = HashMap::new();
diff --git a/crates/pest_generator/src/generator.rs b/crates/pest_generator/src/generator.rs
index 7a527c5..fd48ec9 100644
--- a/crates/pest_generator/src/generator.rs
+++ b/crates/pest_generator/src/generator.rs
@@ -7,6 +7,8 @@
 // option. All files in the project carrying such notice may not be copied,
 // modified, or distributed except according to those terms.
 
+//! Helpers to generate the code for the Parser `derive``.
+
 use std::path::PathBuf;
 
 use proc_macro2::TokenStream;
@@ -18,9 +20,12 @@
 use pest_meta::optimizer::*;
 
 use crate::docs::DocComment;
-use crate::ParsedDerive;
+use crate::parse_derive::ParsedDerive;
 
-pub(crate) fn generate(
+/// Generates the corresponding parser based based on the processed macro input. If `include_grammar`
+/// is set to true, it'll generate an explicit "include_str" statement (done in pest_derive, but
+/// turned off in the local bootstrap).
+pub fn generate(
     parsed_derive: ParsedDerive,
     paths: Vec<PathBuf>,
     rules: Vec<OptimizedRule>,
@@ -218,10 +223,17 @@
     });
 
     let grammar_doc = &doc_comment.grammar_doc;
-    let mut result = quote! {
-        #[doc = #grammar_doc]
-        #[allow(dead_code, non_camel_case_types, clippy::upper_case_acronyms)]
-        #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
+    let mut result = if grammar_doc.is_empty() {
+        quote! {
+            #[allow(dead_code, non_camel_case_types, clippy::upper_case_acronyms)]
+            #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
+        }
+    } else {
+        quote! {
+            #[doc = #grammar_doc]
+            #[allow(dead_code, non_camel_case_types, clippy::upper_case_acronyms)]
+            #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
+        }
     };
     if non_exhaustive {
         result.append_all(quote! {
@@ -566,12 +578,42 @@
             }
         }
         #[cfg(feature = "grammar-extras")]
-        OptimizedExpr::NodeTag(expr, tag) => {
-            let expr = generate_expr(*expr);
-            quote! {
-                #expr.and_then(|state| state.tag_node(#tag))
+        OptimizedExpr::NodeTag(expr, tag) => match *expr {
+            OptimizedExpr::Opt(expr) => {
+                let expr = generate_expr(*expr);
+                quote! {
+                    state.optional(|state| {
+                        #expr.and_then(|state| state.tag_node(#tag))
+                    })
+                }
             }
-        }
+            OptimizedExpr::Rep(expr) => {
+                let expr = generate_expr(*expr);
+                quote! {
+                    state.sequence(|state| {
+                        state.optional(|state| {
+                            #expr.and_then(|state| {
+                                state.repeat(|state| {
+                                    state.sequence(|state| {
+                                        super::hidden::skip(
+                                            state
+                                        ).and_then(|state| {
+                                            #expr.and_then(|state| state.tag_node(#tag))
+                                        })
+                                    })
+                                })
+                            }).and_then(|state| state.tag_node(#tag))
+                        })
+                    })
+                }
+            }
+            expr => {
+                let expr = generate_expr(expr);
+                quote! {
+                    #expr.and_then(|state| state.tag_node(#tag))
+                }
+            }
+        },
     }
 }
 
@@ -721,12 +763,32 @@
             }
         }
         #[cfg(feature = "grammar-extras")]
-        OptimizedExpr::NodeTag(expr, tag) => {
-            let expr = generate_expr_atomic(*expr);
-            quote! {
-                #expr.and_then(|state| state.tag_node(#tag))
+        OptimizedExpr::NodeTag(expr, tag) => match *expr {
+            OptimizedExpr::Opt(expr) => {
+                let expr = generate_expr_atomic(*expr);
+
+                quote! {
+                    state.optional(|state| {
+                        #expr.and_then(|state| state.tag_node(#tag))
+                    })
+                }
             }
-        }
+            OptimizedExpr::Rep(expr) => {
+                let expr = generate_expr_atomic(*expr);
+
+                quote! {
+                    state.repeat(|state| {
+                        #expr.and_then(|state| state.tag_node(#tag))
+                    })
+                }
+            }
+            expr => {
+                let expr = generate_expr_atomic(expr);
+                quote! {
+                    #expr.and_then(|state| state.tag_node(#tag))
+                }
+            }
+        },
     }
 }
 
@@ -811,6 +873,41 @@
     }
 
     #[test]
+    fn rule_empty_doc() {
+        let rules = vec![OptimizedRule {
+            name: "f".to_owned(),
+            ty: RuleType::Normal,
+            expr: OptimizedExpr::Ident("g".to_owned()),
+        }];
+
+        let mut line_docs = HashMap::new();
+        line_docs.insert("f".to_owned(), "This is rule comment".to_owned());
+
+        let doc_comment = &DocComment {
+            grammar_doc: "".to_owned(),
+            line_docs,
+        };
+
+        assert_eq!(
+            generate_enum(&rules, doc_comment, false, false).to_string(),
+            quote! {
+                #[allow(dead_code, non_camel_case_types, clippy::upper_case_acronyms)]
+                #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
+                pub enum Rule {
+                    #[doc = "This is rule comment"]
+                    r#f
+                }
+                impl Rule {
+                    pub fn all_rules() -> &'static [Rule] {
+                        &[Rule::r#f]
+                    }
+                }
+            }
+            .to_string()
+        );
+    }
+
+    #[test]
     fn sequence() {
         let expr = OptimizedExpr::Seq(
             Box::new(OptimizedExpr::Str("a".to_owned())),
diff --git a/crates/pest_generator/src/lib.rs b/crates/pest_generator/src/lib.rs
index cbd13ea..7277c75 100644
--- a/crates/pest_generator/src/lib.rs
+++ b/crates/pest_generator/src/lib.rs
@@ -26,14 +26,29 @@
 use std::io::{self, Read};
 use std::path::Path;
 
+use generator::generate;
 use proc_macro2::TokenStream;
-use syn::{Attribute, DeriveInput, Expr, ExprLit, Generics, Ident, Lit, Meta};
+use syn::DeriveInput;
 
 #[macro_use]
 mod macros;
+
+#[cfg(feature = "export-internal")]
+pub mod docs;
+#[cfg(not(feature = "export-internal"))]
 mod docs;
+
+#[cfg(feature = "export-internal")]
+pub mod generator;
+#[cfg(not(feature = "export-internal"))]
 mod generator;
 
+#[cfg(feature = "export-internal")]
+pub mod parse_derive;
+#[cfg(not(feature = "export-internal"))]
+mod parse_derive;
+
+use crate::parse_derive::{parse_derive, GrammarSource};
 use pest_meta::parser::{self, rename_meta_rule, Rule};
 use pest_meta::{optimizer, unwrap_or_report, validator};
 
@@ -44,6 +59,7 @@
     let ast: DeriveInput = syn::parse2(input).unwrap();
     let (parsed_derive, contents) = parse_derive(ast);
 
+    // Grammar presented in a view of a string.
     let mut data = String::new();
     let mut paths = vec![];
 
@@ -86,6 +102,7 @@
         }
     }
 
+    // `Rule::grammar_rules` is taken from meta/srd/parser.rs.
     let pairs = match parser::parse(Rule::grammar_rules, &data) {
         Ok(pairs) => pairs,
         Err(error) => panic!("error parsing \n{}", error.renamed_rules(rename_meta_rule)),
@@ -96,7 +113,7 @@
     let ast = unwrap_or_report(parser::consume_rules(pairs));
     let optimized = optimizer::optimize(ast);
 
-    generator::generate(
+    generate(
         parsed_derive,
         paths,
         optimized,
@@ -113,160 +130,8 @@
     Ok(string)
 }
 
-#[derive(Debug, PartialEq)]
-enum GrammarSource {
-    File(String),
-    Inline(String),
-}
-
-struct ParsedDerive {
-    pub(crate) name: Ident,
-    pub(crate) generics: Generics,
-    pub(crate) non_exhaustive: bool,
-}
-
-fn parse_derive(ast: DeriveInput) -> (ParsedDerive, Vec<GrammarSource>) {
-    let name = ast.ident;
-    let generics = ast.generics;
-
-    let grammar: Vec<&Attribute> = ast
-        .attrs
-        .iter()
-        .filter(|attr| {
-            let path = attr.meta.path();
-            path.is_ident("grammar") || path.is_ident("grammar_inline")
-        })
-        .collect();
-
-    if grammar.is_empty() {
-        panic!("a grammar file needs to be provided with the #[grammar = \"PATH\"] or #[grammar_inline = \"GRAMMAR CONTENTS\"] attribute");
-    }
-
-    let mut grammar_sources = Vec::with_capacity(grammar.len());
-    for attr in grammar {
-        grammar_sources.push(get_attribute(attr))
-    }
-
-    let non_exhaustive = ast
-        .attrs
-        .iter()
-        .any(|attr| attr.meta.path().is_ident("non_exhaustive"));
-
-    (
-        ParsedDerive {
-            name,
-            generics,
-            non_exhaustive,
-        },
-        grammar_sources,
-    )
-}
-
-fn get_attribute(attr: &Attribute) -> GrammarSource {
-    match &attr.meta {
-        Meta::NameValue(name_value) => match &name_value.value {
-            Expr::Lit(ExprLit {
-                lit: Lit::Str(string),
-                ..
-            }) => {
-                if name_value.path.is_ident("grammar") {
-                    GrammarSource::File(string.value())
-                } else {
-                    GrammarSource::Inline(string.value())
-                }
-            }
-            _ => panic!("grammar attribute must be a string"),
-        },
-        _ => panic!("grammar attribute must be of the form `grammar = \"...\"`"),
-    }
-}
-
 #[cfg(test)]
 mod tests {
-    use super::parse_derive;
-    use super::GrammarSource;
-
-    #[test]
-    fn derive_inline_file() {
-        let definition = "
-            #[other_attr]
-            #[grammar_inline = \"GRAMMAR\"]
-            pub struct MyParser<'a, T>;
-        ";
-        let ast = syn::parse_str(definition).unwrap();
-        let (_, filenames) = parse_derive(ast);
-        assert_eq!(filenames, [GrammarSource::Inline("GRAMMAR".to_string())]);
-    }
-
-    #[test]
-    fn derive_ok() {
-        let definition = "
-            #[other_attr]
-            #[grammar = \"myfile.pest\"]
-            pub struct MyParser<'a, T>;
-        ";
-        let ast = syn::parse_str(definition).unwrap();
-        let (parsed_derive, filenames) = parse_derive(ast);
-        assert_eq!(filenames, [GrammarSource::File("myfile.pest".to_string())]);
-        assert!(!parsed_derive.non_exhaustive);
-    }
-
-    #[test]
-    fn derive_multiple_grammars() {
-        let definition = "
-            #[other_attr]
-            #[grammar = \"myfile1.pest\"]
-            #[grammar = \"myfile2.pest\"]
-            pub struct MyParser<'a, T>;
-        ";
-        let ast = syn::parse_str(definition).unwrap();
-        let (_, filenames) = parse_derive(ast);
-        assert_eq!(
-            filenames,
-            [
-                GrammarSource::File("myfile1.pest".to_string()),
-                GrammarSource::File("myfile2.pest".to_string())
-            ]
-        );
-    }
-
-    #[test]
-    fn derive_nonexhaustive() {
-        let definition = "
-            #[non_exhaustive]
-            #[grammar = \"myfile.pest\"]
-            pub struct MyParser<'a, T>;
-        ";
-        let ast = syn::parse_str(definition).unwrap();
-        let (parsed_derive, filenames) = parse_derive(ast);
-        assert_eq!(filenames, [GrammarSource::File("myfile.pest".to_string())]);
-        assert!(parsed_derive.non_exhaustive);
-    }
-
-    #[test]
-    #[should_panic(expected = "grammar attribute must be a string")]
-    fn derive_wrong_arg() {
-        let definition = "
-            #[other_attr]
-            #[grammar = 1]
-            pub struct MyParser<'a, T>;
-        ";
-        let ast = syn::parse_str(definition).unwrap();
-        parse_derive(ast);
-    }
-
-    #[test]
-    #[should_panic(
-        expected = "a grammar file needs to be provided with the #[grammar = \"PATH\"] or #[grammar_inline = \"GRAMMAR CONTENTS\"] attribute"
-    )]
-    fn derive_no_grammar() {
-        let definition = "
-            #[other_attr]
-            pub struct MyParser<'a, T>;
-        ";
-        let ast = syn::parse_str(definition).unwrap();
-        parse_derive(ast);
-    }
 
     #[doc = "Matches dar\n\nMatch dar description\n"]
     #[test]
diff --git a/crates/pest_generator/src/parse_derive.rs b/crates/pest_generator/src/parse_derive.rs
new file mode 100644
index 0000000..52374c2
--- /dev/null
+++ b/crates/pest_generator/src/parse_derive.rs
@@ -0,0 +1,172 @@
+// pest. The Elegant Parser
+// Copyright (c) 2018 Dragoș Tiselice
+//
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT
+// license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. All files in the project carrying such notice may not be copied,
+// modified, or distributed except according to those terms.
+
+//! Types and helpers to parse the input of the derive macro.
+
+use syn::{Attribute, DeriveInput, Expr, ExprLit, Generics, Ident, Lit, Meta};
+
+#[derive(Debug, PartialEq)]
+pub(crate) enum GrammarSource {
+    File(String),
+    Inline(String),
+}
+
+/// Parsed information of the derive and the attributes.
+pub struct ParsedDerive {
+    /// The identifier of the deriving struct, union, or enum.
+    pub name: Ident,
+    /// The generics of the deriving struct, union, or enum.
+    pub generics: Generics,
+    /// Indicates whether the 'non_exhaustive' attribute is added to the 'Rule' enum.
+    pub non_exhaustive: bool,
+}
+
+pub(crate) fn parse_derive(ast: DeriveInput) -> (ParsedDerive, Vec<GrammarSource>) {
+    let name = ast.ident;
+    let generics = ast.generics;
+
+    let grammar: Vec<&Attribute> = ast
+        .attrs
+        .iter()
+        .filter(|attr| {
+            let path = attr.meta.path();
+            path.is_ident("grammar") || path.is_ident("grammar_inline")
+        })
+        .collect();
+
+    if grammar.is_empty() {
+        panic!("a grammar file needs to be provided with the #[grammar = \"PATH\"] or #[grammar_inline = \"GRAMMAR CONTENTS\"] attribute");
+    }
+
+    let mut grammar_sources = Vec::with_capacity(grammar.len());
+    for attr in grammar {
+        grammar_sources.push(get_attribute(attr))
+    }
+
+    let non_exhaustive = ast
+        .attrs
+        .iter()
+        .any(|attr| attr.meta.path().is_ident("non_exhaustive"));
+
+    (
+        ParsedDerive {
+            name,
+            generics,
+            non_exhaustive,
+        },
+        grammar_sources,
+    )
+}
+
+fn get_attribute(attr: &Attribute) -> GrammarSource {
+    match &attr.meta {
+        Meta::NameValue(name_value) => match &name_value.value {
+            Expr::Lit(ExprLit {
+                lit: Lit::Str(string),
+                ..
+            }) => {
+                if name_value.path.is_ident("grammar") {
+                    GrammarSource::File(string.value())
+                } else {
+                    GrammarSource::Inline(string.value())
+                }
+            }
+            _ => panic!("grammar attribute must be a string"),
+        },
+        _ => panic!("grammar attribute must be of the form `grammar = \"...\"`"),
+    }
+}
+
+#[cfg(test)]
+mod tests {
+    use super::parse_derive;
+    use super::GrammarSource;
+
+    #[test]
+    fn derive_inline_file() {
+        let definition = "
+            #[other_attr]
+            #[grammar_inline = \"GRAMMAR\"]
+            pub struct MyParser<'a, T>;
+        ";
+        let ast = syn::parse_str(definition).unwrap();
+        let (_, filenames) = parse_derive(ast);
+        assert_eq!(filenames, [GrammarSource::Inline("GRAMMAR".to_string())]);
+    }
+
+    #[test]
+    fn derive_ok() {
+        let definition = "
+            #[other_attr]
+            #[grammar = \"myfile.pest\"]
+            pub struct MyParser<'a, T>;
+        ";
+        let ast = syn::parse_str(definition).unwrap();
+        let (parsed_derive, filenames) = parse_derive(ast);
+        assert_eq!(filenames, [GrammarSource::File("myfile.pest".to_string())]);
+        assert!(!parsed_derive.non_exhaustive);
+    }
+
+    #[test]
+    fn derive_multiple_grammars() {
+        let definition = "
+            #[other_attr]
+            #[grammar = \"myfile1.pest\"]
+            #[grammar = \"myfile2.pest\"]
+            pub struct MyParser<'a, T>;
+        ";
+        let ast = syn::parse_str(definition).unwrap();
+        let (_, filenames) = parse_derive(ast);
+        assert_eq!(
+            filenames,
+            [
+                GrammarSource::File("myfile1.pest".to_string()),
+                GrammarSource::File("myfile2.pest".to_string())
+            ]
+        );
+    }
+
+    #[test]
+    fn derive_nonexhaustive() {
+        let definition = "
+            #[non_exhaustive]
+            #[grammar = \"myfile.pest\"]
+            pub struct MyParser<'a, T>;
+        ";
+        let ast = syn::parse_str(definition).unwrap();
+        let (parsed_derive, filenames) = parse_derive(ast);
+        assert_eq!(filenames, [GrammarSource::File("myfile.pest".to_string())]);
+        assert!(parsed_derive.non_exhaustive);
+    }
+
+    #[test]
+    #[should_panic(expected = "grammar attribute must be a string")]
+    fn derive_wrong_arg() {
+        let definition = "
+            #[other_attr]
+            #[grammar = 1]
+            pub struct MyParser<'a, T>;
+        ";
+        let ast = syn::parse_str(definition).unwrap();
+        parse_derive(ast);
+    }
+
+    #[test]
+    #[should_panic(
+        expected = "a grammar file needs to be provided with the #[grammar = \"PATH\"] or #[grammar_inline = \"GRAMMAR CONTENTS\"] attribute"
+    )]
+    fn derive_no_grammar() {
+        let definition = "
+            #[other_attr]
+            pub struct MyParser<'a, T>;
+        ";
+        let ast = syn::parse_str(definition).unwrap();
+        parse_derive(ast);
+    }
+}
diff --git a/crates/pin-project-internal/.android-checksum.json b/crates/pin-project-internal/.android-checksum.json
index 48c545d..b11db02 100644
--- a/crates/pin-project-internal/.android-checksum.json
+++ b/crates/pin-project-internal/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"72357cc63191ee08a5b0618762ec8e8891ce388cae905fde83570c10f602cccc","Android.bp":"3533d3dd7e1d007b505a9373c39e98ca0cf0bd19d1f1e74697228e6018c5f00d","Cargo.toml":"024be39f9b133e5136089f6a76978396f18e9b8fde7c93b884b0457461c7ffbe","LICENSE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-APACHE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"1d74ba5ff73475c15592f18dcd2babc9557355d2385d420f7e8af42a2d5cf17f","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","NOTICE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","TEST_MAPPING":"41fe943b979ce266ae7fc1df55149ddc11cbc7c5644d30182d11a108425021d0","cargo_embargo.json":"80e3af5ff1e9593338164130c83467447c80389394a58c3ef14791315d17439e","src/lib.rs":"ea8982b165e6aab19bb0b3c3d52bfc037804004a3a1dd1ed0fca828c147c4599","src/pin_project/args.rs":"3b38877c83ca01062994107aab2bbe3d1d1a76187582c2aec57217ed1ec7ec31","src/pin_project/attribute.rs":"0404ecc795315c9f86d08cb1c9621a1cf926edabab622530035f6ac162982eda","src/pin_project/derive.rs":"9b783607d297cc785d143ef99e10576c1da7589a19ffd06d985186849c31a1f0","src/pin_project/mod.rs":"01f6163c6ba46952480132371187b36d21485b5abf6e248378f4c604a597695b","src/pinned_drop.rs":"59dc074c679a8b34ba37c5b95fef42720be3361ba29fa07c7d6faa334967d471","src/utils.rs":"d253cb988f48cb986e8552da84019131af3e34038829ebc4e306a3a67f469193"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"ed8fc9686d5897aa34d55c8a30b09ed261e7cd5e0402225352ae172cd4645278","Android.bp":"b8087c576fe18444306d8a4d047f0eafad0f60621b7247f509f7e6e7a364c092","Cargo.toml":"12dca4958d418036cc6f7b74e3d6eda3072dbe6dd97e8d198b577cb5ffbd26f4","LICENSE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-APACHE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"c01c938d490481da3988cc1f7e48be3629e8a51468e9f6a95f4bef2fc63800db","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","NOTICE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","TEST_MAPPING":"41fe943b979ce266ae7fc1df55149ddc11cbc7c5644d30182d11a108425021d0","cargo_embargo.json":"80e3af5ff1e9593338164130c83467447c80389394a58c3ef14791315d17439e","src/error.rs":"60b638a87addf641f4906be11b62a17116cde20b90c54392d7d4bc923c94de17","src/lib.rs":"cf6796491dad4753dc5689f3491909ca7aec9cae6ed1b9fad463ffe75c9b41a3","src/pin_project/args.rs":"e5b67ea2f75fb0e72a94b9c49dcd52c3594648d6a9f134b2d1b628faf3656255","src/pin_project/attribute.rs":"9ff2ee47a8b10ea81497f0b60157ca1252cd2a51530c3a27439f9b1c199104b5","src/pin_project/derive.rs":"2a5f4577effccb7c8f24dba04f060673b72010c4220f0a356cb3e3fd74bcc563","src/pin_project/mod.rs":"129a9f9e7e97452cc401fe2c917adf015c9c1b5d3197a376d0cbc00905628ecf","src/pinned_drop.rs":"b88105dad6ff320fbc2dd5f18553e4b22a1b9cd0ef2cf16bb54216a2145715fc","src/utils.rs":"ba9764d567c7d53e2f98ffd40e5432f19354d4d267f839853d9dbffae99a32ba"}}
\ No newline at end of file
diff --git a/crates/pin-project-internal/.cargo-checksum.json b/crates/pin-project-internal/.cargo-checksum.json
index 1b5977d..f3c66da 100644
--- a/crates/pin-project-internal/.cargo-checksum.json
+++ b/crates/pin-project-internal/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"5e768e7665606e603a7a85f9cc100a5898c94d3a12cd8e540d939e403c6c56eb","LICENSE-APACHE":"0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","src/lib.rs":"19e5ab2e30ce5ca53e877826e4eadf7cb7311e72b568573be38ecc8c39556896","src/pin_project/args.rs":"68ded73aff6f7fa66b77581940b5e7ce4eaa71411c796668f165da863795cdf5","src/pin_project/attribute.rs":"0c18445c98a056e7cbf2b43b6442f3702ecece25686c4f4cecb96c76c3f9e22e","src/pin_project/derive.rs":"985efa8d4b87084ebe76fc4f0876ccf1a5c43c365bafee0992436f00a02e9109","src/pin_project/mod.rs":"83e6fc982a8c136811332512abc7d368e5d09b94f245de5d19490f835e85943a","src/pinned_drop.rs":"1d4cffdd4176a16c440a2a3a5039dfcf14ff42ef9e2aa7069134dfac8ba69658","src/utils.rs":"063cd0422c69afbbd0a0b532a46d463ead82c85637af55c6e2a72706a8f01eee"},"package":"4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"}
\ No newline at end of file
+{"files":{"Cargo.toml":"3ad69b309eac4c3d4777ee07b6d9edd434b07dd6f59dff87084c9275898c851c","LICENSE-APACHE":"0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","src/error.rs":"5aaab68710be59753782cfbb81dd97d61fe2a2e1dace83dce42812d2a867681e","src/lib.rs":"a08d009a4da5a5acbf0f480565ff922e18f8a920bb89a1b7c1e0a7d2fa4f4de3","src/pin_project/args.rs":"a57bb3527fa1f8cd950f1a2471977fdbf885c07f8d4d75bec882f0786c95d1e5","src/pin_project/attribute.rs":"dad130b72abc3452277f68d915946045f4c809ea1115e974382814bf1a8e0ec0","src/pin_project/derive.rs":"ae89f175da94497fe309fecac354a656292bc30322be11bbd607ab445d618f81","src/pin_project/mod.rs":"cf033c5090a7002ab2c8c26876abb53ecaea5429fc40d984dbf8832150d18acd","src/pinned_drop.rs":"97795e2888b69d7f78a9fa64bbc4aa51aee6c8b5d5ecd37b58599ca24a3cde8b","src/utils.rs":"21b18168bf32587fe91ce802c266701854fee58d8a2d93ebbb143bdb72bdbb84"},"package":"d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb"}
\ No newline at end of file
diff --git a/crates/pin-project-internal/Android.bp b/crates/pin-project-internal/Android.bp
index 702a9b0..31a3ea5 100644
--- a/crates/pin-project-internal/Android.bp
+++ b/crates/pin-project-internal/Android.bp
@@ -17,7 +17,7 @@
     name: "libpin_project_internal",
     crate_name: "pin_project_internal",
     cargo_env_compat: true,
-    cargo_pkg_version: "1.1.3",
+    cargo_pkg_version: "1.1.8",
     crate_root: "src/lib.rs",
     edition: "2021",
     rustlibs: [
diff --git a/crates/pin-project-internal/Cargo.toml b/crates/pin-project-internal/Cargo.toml
index 1ab542e..6bbcbf9 100644
--- a/crates/pin-project-internal/Cargo.toml
+++ b/crates/pin-project-internal/Cargo.toml
@@ -13,10 +13,17 @@
 edition = "2021"
 rust-version = "1.56"
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.8"
+build = false
+autolib = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = """
 Implementation detail of the `pin-project` crate.
 """
+readme = false
 keywords = [
     "pin",
     "macros",
@@ -34,19 +41,147 @@
 targets = ["x86_64-unknown-linux-gnu"]
 
 [lib]
+name = "pin_project_internal"
+path = "src/lib.rs"
 proc-macro = true
 
 [dependencies.proc-macro2]
 version = "1.0.60"
 
 [dependencies.quote]
-version = "1"
+version = "1.0.25"
 
 [dependencies.syn]
 version = "2.0.1"
 features = [
+    "parsing",
+    "printing",
+    "clone-impls",
+    "proc-macro",
     "full",
     "visit-mut",
 ]
+default-features = false
 
 [dev-dependencies]
+
+[lints.clippy]
+all = "warn"
+as_ptr_cast_mut = "warn"
+as_underscore = "warn"
+default_union_representation = "warn"
+inline_asm_x86_att_syntax = "warn"
+pedantic = "warn"
+trailing_empty_array = "warn"
+transmute_undefined_repr = "warn"
+undocumented_unsafe_blocks = "warn"
+
+[lints.clippy.bool_assert_comparison]
+level = "allow"
+priority = 1
+
+[lints.clippy.borrow_as_ptr]
+level = "allow"
+priority = 1
+
+[lints.clippy.cast_lossless]
+level = "allow"
+priority = 1
+
+[lints.clippy.declare_interior_mutable_const]
+level = "allow"
+priority = 1
+
+[lints.clippy.doc_markdown]
+level = "allow"
+priority = 1
+
+[lints.clippy.float_cmp]
+level = "allow"
+priority = 1
+
+[lints.clippy.incompatible_msrv]
+level = "allow"
+priority = 1
+
+[lints.clippy.lint_groups_priority]
+level = "allow"
+priority = 1
+
+[lints.clippy.manual_assert]
+level = "allow"
+priority = 1
+
+[lints.clippy.manual_range_contains]
+level = "allow"
+priority = 1
+
+[lints.clippy.missing_errors_doc]
+level = "allow"
+priority = 1
+
+[lints.clippy.module_name_repetitions]
+level = "allow"
+priority = 1
+
+[lints.clippy.naive_bytecount]
+level = "allow"
+priority = 1
+
+[lints.clippy.nonminimal_bool]
+level = "allow"
+priority = 1
+
+[lints.clippy.range_plus_one]
+level = "allow"
+priority = 1
+
+[lints.clippy.similar_names]
+level = "allow"
+priority = 1
+
+[lints.clippy.single_match]
+level = "allow"
+priority = 1
+
+[lints.clippy.single_match_else]
+level = "allow"
+priority = 1
+
+[lints.clippy.struct_excessive_bools]
+level = "allow"
+priority = 1
+
+[lints.clippy.struct_field_names]
+level = "allow"
+priority = 1
+
+[lints.clippy.too_many_arguments]
+level = "allow"
+priority = 1
+
+[lints.clippy.too_many_lines]
+level = "allow"
+priority = 1
+
+[lints.clippy.type_complexity]
+level = "allow"
+priority = 1
+
+[lints.clippy.unreadable_literal]
+level = "allow"
+priority = 1
+
+[lints.rust]
+deprecated_safe = "warn"
+improper_ctypes = "warn"
+improper_ctypes_definitions = "warn"
+non_ascii_idents = "warn"
+rust_2018_idioms = "warn"
+single_use_lifetimes = "warn"
+unreachable_pub = "warn"
+
+[lints.rust.unexpected_cfgs]
+level = "warn"
+priority = 0
+check-cfg = []
diff --git a/crates/pin-project-internal/METADATA b/crates/pin-project-internal/METADATA
index 9e9bb4f..cb4009a 100644
--- a/crates/pin-project-internal/METADATA
+++ b/crates/pin-project-internal/METADATA
@@ -1,17 +1,17 @@
 name: "pin-project-internal"
 description: "Implementation detail of the `pin-project` crate."
 third_party {
-  version: "1.1.3"
+  version: "1.1.8"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2023
-    month: 11
-    day: 14
+    year: 2025
+    month: 1
+    day: 15
   }
   homepage: "https://crates.io/crates/pin-project-internal"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/pin-project-internal/pin-project-internal-1.1.3.crate"
-    version: "1.1.3"
+    value: "https://static.crates.io/crates/pin-project-internal/pin-project-internal-1.1.8.crate"
+    version: "1.1.8"
   }
 }
diff --git a/crates/pin-project-internal/src/error.rs b/crates/pin-project-internal/src/error.rs
new file mode 100644
index 0000000..107698e
--- /dev/null
+++ b/crates/pin-project-internal/src/error.rs
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+macro_rules! format_err {
+    ($span:expr, $msg:expr $(,)?) => {
+        syn::Error::new_spanned(&$span as &dyn quote::ToTokens, &$msg as &dyn std::fmt::Display)
+    };
+    ($span:expr, $($tt:tt)*) => {
+        format_err!($span, format!($($tt)*))
+    };
+}
+
+macro_rules! bail {
+    ($($tt:tt)*) => {
+        return Err(format_err!($($tt)*))
+    };
+}
diff --git a/crates/pin-project-internal/src/lib.rs b/crates/pin-project-internal/src/lib.rs
index 3eb3323..2a8796d 100644
--- a/crates/pin-project-internal/src/lib.rs
+++ b/crates/pin-project-internal/src/lib.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 //! Implementation detail of the `pin-project` crate. - **do not use directly**
 
 #![doc(test(
@@ -8,18 +10,10 @@
     )
 ))]
 #![forbid(unsafe_code)]
-#![warn(rust_2018_idioms, single_use_lifetimes, unreachable_pub)]
-#![warn(clippy::pedantic)]
-#![allow(
-    clippy::needless_doctest_main,
-    clippy::similar_names,
-    clippy::single_match_else,
-    clippy::too_many_lines
-)]
+#![allow(clippy::needless_doctest_main)]
 
-// older compilers require explicit `extern crate`.
-#[allow(unused_extern_crates)]
-extern crate proc_macro;
+#[macro_use]
+mod error;
 
 #[macro_use]
 mod utils;
@@ -40,7 +34,7 @@
 ///
 /// And the following methods are implemented on the original type:
 ///
-/// ```rust
+/// ```
 /// # use std::pin::Pin;
 /// # type Projection<'a> = &'a ();
 /// # type ProjectionRef<'a> = &'a ();
@@ -54,7 +48,7 @@
 /// you can name the projection type returned from the method. This allows you
 /// to use pattern matching on the projected types.
 ///
-/// ```rust
+/// ```
 /// # use pin_project::pin_project;
 /// # use std::pin::Pin;
 /// #[pin_project(project = EnumProj)]
@@ -115,7 +109,7 @@
 ///
 ///    To enforce this, this attribute will generate code like this:
 ///
-///    ```rust
+///    ```
 ///    struct MyStruct {}
 ///    trait MyStructMustNotImplDrop {}
 ///    # #[allow(unknown_lints, drop_bounds)]
@@ -165,7 +159,7 @@
 ///
 /// `#[pin_project]` can be used on structs and enums.
 ///
-/// ```rust
+/// ```
 /// use std::pin::Pin;
 ///
 /// use pin_project::pin_project;
@@ -186,7 +180,7 @@
 /// }
 /// ```
 ///
-/// ```rust
+/// ```
 /// use std::pin::Pin;
 ///
 /// use pin_project::pin_project;
@@ -206,7 +200,7 @@
 /// To use `#[pin_project]` on enums, you need to name the projection type
 /// returned from the method.
 ///
-/// ```rust
+/// ```
 /// use std::pin::Pin;
 ///
 /// use pin_project::pin_project;
@@ -240,7 +234,7 @@
 /// and the `project_ref` method is not generated.
 /// (When `#[pin_project]` is used on structs, both methods are always generated.)
 ///
-/// ```rust,compile_fail,E0599
+/// ```compile_fail,E0599
 /// # use pin_project::pin_project;
 /// # use std::pin::Pin;
 /// #
@@ -263,7 +257,7 @@
 /// original [`Pin`] type, it needs to use [`.as_mut()`][`Pin::as_mut`] to avoid
 /// consuming the [`Pin`].
 ///
-/// ```rust
+/// ```
 /// use std::pin::Pin;
 ///
 /// use pin_project::pin_project;
@@ -288,7 +282,7 @@
 /// If you want to ensure that [`Unpin`] is not implemented, use the `!Unpin`
 /// argument to `#[pin_project]`.
 ///
-/// ```rust
+/// ```
 /// use pin_project::pin_project;
 ///
 /// #[pin_project(!Unpin)]
@@ -300,7 +294,7 @@
 /// This is equivalent to using `#[pin]` attribute for the [`PhantomPinned`]
 /// field.
 ///
-/// ```rust
+/// ```
 /// use std::marker::PhantomPinned;
 ///
 /// use pin_project::pin_project;
@@ -320,7 +314,7 @@
 /// If you want to implement [`Unpin`] manually, you must use the `UnsafeUnpin`
 /// argument to `#[pin_project]`.
 ///
-/// ```rust
+/// ```
 /// use pin_project::{pin_project, UnsafeUnpin};
 ///
 /// #[pin_project(UnsafeUnpin)]
@@ -359,7 +353,7 @@
 /// - `drop` method takes [`Pin`]`<&mut Self>`
 /// - Name of the trait is `PinnedDrop`.
 ///
-/// ```rust
+/// ```
 /// # use std::pin::Pin;
 /// pub trait PinnedDrop {
 ///     fn drop(self: Pin<&mut Self>);
@@ -375,7 +369,7 @@
 ///
 /// For example:
 ///
-/// ```rust
+/// ```
 /// use std::{fmt::Debug, pin::Pin};
 ///
 /// use pin_project::{pin_project, pinned_drop};
@@ -410,7 +404,7 @@
 /// equivalent to [`Pin::set`], except that the unpinned fields are moved and
 /// returned, instead of being dropped in-place.
 ///
-/// ```rust
+/// ```
 /// # use std::pin::Pin;
 /// # type ProjectionOwned = ();
 /// # trait Dox {
@@ -428,7 +422,7 @@
 ///
 /// For example:
 ///
-/// ```rust
+/// ```
 /// use std::{marker::PhantomData, pin::Pin};
 ///
 /// use pin_project::pin_project;
@@ -454,7 +448,7 @@
 /// destructuring the return type of the `project_replace` method, and work in exactly
 /// the same way as the `project` and `project_ref` arguments.
 ///
-/// ```rust
+/// ```
 /// use pin_project::pin_project;
 ///
 /// #[pin_project(project_replace = EnumProjOwn)]
@@ -480,7 +474,7 @@
 /// [`Pin::as_mut`]: core::pin::Pin::as_mut
 /// [`Pin::set`]: core::pin::Pin::set
 /// [`Pin`]: core::pin::Pin
-/// [`UnsafeUnpin`]: https://docs.rs/pin-project/1/pin_project/trait.UnsafeUnpin.html
+/// [`UnsafeUnpin`]: https://docs.rs/pin-project/latest/pin_project/trait.UnsafeUnpin.html
 /// [drop-guarantee]: core::pin#drop-guarantee
 /// [pin-projection]: core::pin#projections-and-structural-pinning
 /// [pinned-drop]: macro@pin_project#pinned_drop
@@ -503,7 +497,7 @@
 /// - `drop` method takes [`Pin`]`<&mut Self>`
 /// - Name of the trait is `PinnedDrop`.
 ///
-/// ```rust
+/// ```
 /// # use std::pin::Pin;
 /// pub trait PinnedDrop {
 ///     fn drop(self: Pin<&mut Self>);
@@ -519,7 +513,7 @@
 ///
 /// # Examples
 ///
-/// ```rust
+/// ```
 /// use std::pin::Pin;
 ///
 /// use pin_project::{pin_project, pinned_drop};
@@ -555,7 +549,7 @@
 /// macros and replacing them with private traits like the following,
 /// this crate prevent users from calling `PinnedDrop::drop` in safe code.
 ///
-/// ```rust
+/// ```
 /// # use std::pin::Pin;
 /// pub trait PinnedDrop {
 ///     unsafe fn drop(self: Pin<&mut Self>);
diff --git a/crates/pin-project-internal/src/pin_project/args.rs b/crates/pin-project-internal/src/pin_project/args.rs
index 0c688a5..eba2cc6 100644
--- a/crates/pin-project-internal/src/pin_project/args.rs
+++ b/crates/pin-project-internal/src/pin_project/args.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use proc_macro2::{Span, TokenStream};
 use quote::quote;
 use syn::{
diff --git a/crates/pin-project-internal/src/pin_project/attribute.rs b/crates/pin-project-internal/src/pin_project/attribute.rs
index 09cd8c7..7900f6c 100644
--- a/crates/pin-project-internal/src/pin_project/attribute.rs
+++ b/crates/pin-project-internal/src/pin_project/attribute.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use proc_macro2::TokenStream;
 use quote::quote;
 use syn::{
diff --git a/crates/pin-project-internal/src/pin_project/derive.rs b/crates/pin-project-internal/src/pin_project/derive.rs
index bea17fe..206b00e 100644
--- a/crates/pin-project-internal/src/pin_project/derive.rs
+++ b/crates/pin-project-internal/src/pin_project/derive.rs
@@ -1,9 +1,11 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use proc_macro2::{Delimiter, Group, Span, TokenStream};
 use quote::{format_ident, quote, quote_spanned, ToTokens};
 use syn::{
-    parse_quote, punctuated::Punctuated, token, visit_mut::VisitMut, Attribute, Data, DataEnum,
-    DeriveInput, Error, Field, Fields, FieldsNamed, FieldsUnnamed, Generics, Ident, Index,
-    Lifetime, LifetimeParam, Meta, Result, Token, Type, Variant, Visibility, WhereClause,
+    parse_quote, punctuated::Punctuated, token, visit_mut::VisitMut, Attribute, Error, Field,
+    Fields, FieldsNamed, FieldsUnnamed, Generics, Ident, Index, Item, Lifetime, LifetimeParam,
+    Meta, Result, Token, Type, Variant, Visibility, WhereClause,
 };
 
 use super::{
@@ -16,30 +18,31 @@
 };
 
 pub(super) fn parse_derive(input: TokenStream) -> Result<TokenStream> {
-    let mut input: DeriveInput = syn::parse2(input)?;
+    let mut input: Item = syn::parse2(input)?;
 
     let mut cx;
     let mut generate = GenerateTokens::default();
 
-    let ident = &input.ident;
-    let ty_generics = input.generics.split_for_impl().1;
-    let self_ty = parse_quote!(#ident #ty_generics);
-    let mut visitor = ReplaceReceiver(&self_ty);
-    visitor.visit_generics_mut(&mut input.generics);
-    visitor.visit_data_mut(&mut input.data);
-
-    match &input.data {
-        Data::Struct(data) => {
-            cx = Context::new(&input.attrs, &input.vis, ident, &mut input.generics, Struct)?;
-            parse_struct(&mut cx, &data.fields, &mut generate)?;
+    match &mut input {
+        Item::Struct(input) => {
+            let ident = &input.ident;
+            let ty_generics = input.generics.split_for_impl().1;
+            let self_ty = parse_quote!(#ident #ty_generics);
+            let mut visitor = ReplaceReceiver(&self_ty);
+            visitor.visit_item_struct_mut(input);
+            cx = Context::new(&input.attrs, &input.vis, &input.ident, &mut input.generics, Struct)?;
+            parse_struct(&mut cx, &input.fields, &mut generate)?;
         }
-        Data::Enum(data) => {
-            cx = Context::new(&input.attrs, &input.vis, ident, &mut input.generics, Enum)?;
-            parse_enum(&mut cx, data, &mut generate)?;
+        Item::Enum(input) => {
+            let ident = &input.ident;
+            let ty_generics = input.generics.split_for_impl().1;
+            let self_ty = parse_quote!(#ident #ty_generics);
+            let mut visitor = ReplaceReceiver(&self_ty);
+            visitor.visit_item_enum_mut(input);
+            cx = Context::new(&input.attrs, &input.vis, &input.ident, &mut input.generics, Enum)?;
+            parse_enum(&mut cx, input.brace_token, &input.variants, &mut generate)?;
         }
-        Data::Union(_) => {
-            bail!(input, "#[pin_project] attribute may only be used on structs or enums");
-        }
+        _ => bail!(input, "#[pin_project] attribute may only be used on structs or enums"),
     }
 
     Ok(generate.into_tokens(&cx))
@@ -83,11 +86,14 @@
             // - https://github.com/rust-lang/rust/issues/63281
             // - https://github.com/taiki-e/pin-project/pull/53#issuecomment-525906867
             // - https://github.com/taiki-e/pin-project/pull/70
-            #allowed_lints
-            #[allow(unused_qualifications)]
-            #[allow(clippy::semicolon_if_nothing_returned)]
-            #[allow(clippy::use_self)]
-            #[allow(clippy::used_underscore_binding)]
+            #[allow(
+                unused_qualifications,
+                #allowed_lints
+                clippy::needless_lifetimes,
+                clippy::semicolon_if_nothing_returned,
+                clippy::use_self,
+                clippy::used_underscore_binding
+            )]
             const _: () = {
                 #[allow(unused_extern_crates)]
                 extern crate pin_project as _pin_project;
@@ -103,50 +109,59 @@
 /// Returns attributes that should be applied to all generated code.
 fn global_allowed_lints() -> TokenStream {
     quote! {
-        #[allow(box_pointers)] // This lint warns use of the `Box` type.
-        #[allow(deprecated)]
-        #[allow(explicit_outlives_requirements)] // https://github.com/rust-lang/rust/issues/60993
-        #[allow(single_use_lifetimes)] // https://github.com/rust-lang/rust/issues/55058
-        #[allow(unreachable_pub)] // This lint warns `pub` field in private struct.
-        #[allow(unused_tuple_struct_fields)]
+        deprecated,
+        explicit_outlives_requirements, // https://github.com/rust-lang/rust/issues/60993
+        single_use_lifetimes, // https://github.com/rust-lang/rust/issues/55058
+        unreachable_pub, // This lint warns `pub` field in private struct.
+        unused_tuple_struct_fields,
         // This lint warns of `clippy::*` generated by external macros.
         // We allow this lint for compatibility with older compilers.
-        #[allow(clippy::unknown_clippy_lints)]
-        #[allow(clippy::pattern_type_mismatch)]
-        #[allow(clippy::redundant_pub_crate)] // This lint warns `pub(crate)` field in private struct.
-        #[allow(clippy::type_repetition_in_bounds)] // https://github.com/rust-lang/rust-clippy/issues/4326
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::pattern_type_mismatch,
+        clippy::pub_with_shorthand,
+        clippy::redundant_pub_crate, // This lint warns `pub(crate)` field in private struct.
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds, // https://github.com/rust-lang/rust-clippy/issues/4326
     }
 }
 
 /// Returns attributes used on projected types.
 fn proj_allowed_lints(cx: &Context<'_>) -> (TokenStream, TokenStream, TokenStream) {
-    let large_enum_variant = if cx.kind == Enum {
-        Some(quote! {
-            #[allow(variant_size_differences)]
-            #[allow(clippy::large_enum_variant)]
-        })
-    } else {
-        None
-    };
     let global_allowed_lints = global_allowed_lints();
     let proj_mut_allowed_lints = if cx.project { Some(&global_allowed_lints) } else { None };
     let proj_mut = quote! {
-        #proj_mut_allowed_lints
-        #[allow(dead_code)] // This lint warns unused fields/variants.
-        #[allow(clippy::mut_mut)] // This lint warns `&mut &mut <ty>`.
+        #[allow(
+            dead_code, // This lint warns unused fields/variants.
+            #proj_mut_allowed_lints
+            clippy::missing_docs_in_private_items,
+            clippy::mut_mut // This lint warns `&mut &mut <ty>`.
+        )]
     };
     let proj_ref_allowed_lints = if cx.project_ref { Some(&global_allowed_lints) } else { None };
     let proj_ref = quote! {
-        #proj_ref_allowed_lints
-        #[allow(dead_code)] // This lint warns unused fields/variants.
-        #[allow(clippy::ref_option_ref)] // This lint warns `&Option<&<ty>>`.
+        #[allow(
+            dead_code, // This lint warns unused fields/variants.
+            #proj_ref_allowed_lints
+            clippy::missing_docs_in_private_items,
+            clippy::ref_option_ref // This lint warns `&Option<&<ty>>`.
+        )]
     };
     let proj_own_allowed_lints =
         if cx.project_replace.ident().is_some() { Some(&global_allowed_lints) } else { None };
+    let variant_size_differences = if cx.kind == Enum {
+        Some(quote! { variant_size_differences, clippy::large_enum_variant, })
+    } else {
+        None
+    };
     let proj_own = quote! {
-        #proj_own_allowed_lints
-        #[allow(dead_code)] // This lint warns unused fields/variants.
-        #large_enum_variant
+        #[allow(
+            dead_code, // This lint warns unused fields/variants.
+            #proj_own_allowed_lints
+            #variant_size_differences
+            clippy::missing_docs_in_private_items
+        )]
     };
     (proj_mut, proj_ref, proj_own)
 }
@@ -230,7 +245,7 @@
                 where_clause,
             },
             orig: OriginalType { attrs, vis, ident, generics },
-            pinned_fields: Vec::new(),
+            pinned_fields: vec![],
         })
     }
 }
@@ -240,8 +255,7 @@
     Enum,
     Struct,
 }
-
-use TypeKind::{Enum, Struct};
+use self::TypeKind::{Enum, Struct};
 
 struct OriginalType<'a> {
     /// Attributes of the original type.
@@ -411,7 +425,8 @@
 
 fn parse_enum<'a>(
     cx: &mut Context<'a>,
-    DataEnum { brace_token, variants, .. }: &'a DataEnum,
+    brace_token: token::Brace,
+    variants: &'a Punctuated<Variant, Token![,]>,
     generate: &mut GenerateTokens,
 ) -> Result<()> {
     if let ProjReplace::Unnamed { span } = &cx.project_replace {
@@ -428,7 +443,7 @@
     // Do this first for a better error message.
     ensure_not_packed(&cx.orig, None)?;
 
-    validate_enum(*brace_token, variants)?;
+    validate_enum(brace_token, variants)?;
 
     let ProjectedVariants {
         proj_variants,
@@ -569,9 +584,7 @@
     let mut proj_move = TokenStream::new();
     let mut pinned_bindings = Vec::with_capacity(fields.len());
 
-    for (i, Field { attrs, vis, ident, colon_token, ty, mutability: _ }) in
-        fields.iter().enumerate()
-    {
+    for (i, Field { attrs, vis, ident, colon_token, ty, .. }) in fields.iter().enumerate() {
         let binding = ident.clone().unwrap_or_else(|| format_ident!("_{}", i));
         proj_pat.extend(quote!(#binding,));
         let lifetime = &cx.proj.lifetime;
@@ -687,7 +700,9 @@
 
             // Make the error message highlight `UnsafeUnpin` argument.
             proj_generics.make_where_clause().predicates.push(parse_quote_spanned! { span =>
-                _pin_project::__private::Wrapper<#lifetime, Self>: _pin_project::UnsafeUnpin
+                _pin_project::__private::PinnedFieldsOf<
+                    _pin_project::__private::Wrapper<#lifetime, Self>
+                >: _pin_project::UnsafeUnpin
             });
 
             let (impl_generics, _, where_clause) = proj_generics.split_for_impl();
@@ -705,13 +720,15 @@
             let orig_ident = cx.orig.ident;
             let lifetime = &cx.proj.lifetime;
 
+            // TODO: Using `<unsized type>: Sized` here allow emulating real negative_impls...
+            // https://github.com/taiki-e/pin-project/issues/340#issuecomment-2428002670
             proj_generics.make_where_clause().predicates.push(parse_quote! {
-                _pin_project::__private::Wrapper<
+                _pin_project::__private::PinnedFieldsOf<_pin_project::__private::Wrapper<
                     #lifetime, _pin_project::__private::PhantomPinned
-                >: _pin_project::__private::Unpin
+                >>: _pin_project::__private::Unpin
             });
 
-            let (proj_impl_generics, _, proj_where_clause) = proj_generics.split_for_impl();
+            let (impl_generics, _, where_clause) = proj_generics.split_for_impl();
             let ty_generics = cx.orig.generics.split_for_impl().1;
 
             // For interoperability with `forbid(unsafe_code)`, `unsafe` token should be
@@ -719,9 +736,8 @@
             let unsafety = <Token![unsafe]>::default();
             quote_spanned! { span =>
                 #[doc(hidden)]
-                impl #proj_impl_generics _pin_project::__private::Unpin
-                    for #orig_ident #ty_generics
-                #proj_where_clause
+                impl #impl_generics _pin_project::__private::Unpin for #orig_ident #ty_generics
+                #where_clause
                 {
                 }
 
@@ -732,15 +748,14 @@
                 // impl, they'll get a "conflicting implementations of trait" error when
                 // coherence checks are run.
                 #[doc(hidden)]
-                #unsafety impl #proj_impl_generics _pin_project::UnsafeUnpin
-                    for #orig_ident #ty_generics
-                #proj_where_clause
+                #unsafety impl #impl_generics _pin_project::UnsafeUnpin for #orig_ident #ty_generics
+                #where_clause
                 {
                 }
             }
         }
         UnpinImpl::Default => {
-            let mut full_where_clause = cx.orig.generics.where_clause.clone().unwrap();
+            let mut impl_where_clause = cx.orig.generics.where_clause.clone().unwrap();
 
             // Generate a field in our new struct for every
             // pinned field in the original type.
@@ -760,7 +775,7 @@
             // and lifetime used in the original struct. For type parameters,
             // we generate code like this:
             //
-            // ```rust
+            // ```
             // struct AlwaysUnpin<T: ?Sized>(PhantomData<T>) {}
             // impl<T: ?Sized> Unpin for AlwaysUnpin<T> {}
             //
@@ -783,11 +798,12 @@
             let lifetime = &cx.proj.lifetime;
             let type_params = cx.orig.generics.type_params().map(|t| &t.ident);
             let proj_generics = &cx.proj.generics;
-            let (proj_impl_generics, proj_ty_generics, _) = proj_generics.split_for_impl();
-            let (_, ty_generics, where_clause) = cx.orig.generics.split_for_impl();
+            let (impl_generics, proj_ty_generics, _) = proj_generics.split_for_impl();
+            let (_, ty_generics, ty_where_clause) = cx.orig.generics.split_for_impl();
 
-            full_where_clause.predicates.push(parse_quote! {
-                #struct_ident #proj_ty_generics: _pin_project::__private::Unpin
+            impl_where_clause.predicates.push(parse_quote! {
+                _pin_project::__private::PinnedFieldsOf<#struct_ident #proj_ty_generics>:
+                    _pin_project::__private::Unpin
             });
 
             quote! {
@@ -801,8 +817,8 @@
                 // `__UnpinStruct` type must also be public.
                 // However, we ensure that the user can never actually reference
                 // this 'public' type by creating this type in the inside of `const`.
-                #[allow(missing_debug_implementations)]
-                #vis struct #struct_ident #proj_generics #where_clause {
+                #[allow(missing_debug_implementations, unnameable_types)]
+                #vis struct #struct_ident #proj_generics #ty_where_clause {
                     __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
                         #lifetime, (#(_pin_project::__private::PhantomData<#type_params>),*)
                     >,
@@ -811,9 +827,8 @@
                     #(#lifetime_fields,)*
                 }
 
-                impl #proj_impl_generics _pin_project::__private::Unpin
-                    for #orig_ident #ty_generics
-                #full_where_clause
+                impl #impl_generics _pin_project::__private::Unpin for #orig_ident #ty_generics
+                #impl_where_clause
                 {
                 }
 
@@ -824,9 +839,8 @@
                 // impl, they'll get a "conflicting implementations of trait" error when
                 // coherence checks are run.
                 #[doc(hidden)]
-                unsafe impl #proj_impl_generics _pin_project::UnsafeUnpin
-                    for #orig_ident #ty_generics
-                #full_where_clause
+                unsafe impl #impl_generics _pin_project::UnsafeUnpin for #orig_ident #ty_generics
+                #impl_where_clause
                 {
                 }
             }
@@ -852,6 +866,7 @@
             impl #impl_generics _pin_project::__private::Drop for #ident #ty_generics
             #where_clause
             {
+                #[allow(clippy::missing_inline_in_public_items)]
                 fn drop(&mut self) {
                     #unsafety {
                         // Safety - we're in 'drop', so we know that 'self' will
@@ -885,7 +900,7 @@
         quote! {
             // There are two possible cases:
             // 1. The user type does not implement Drop. In this case,
-            // the first blanked impl will not apply to it. This code
+            // the first blanket impl will not apply to it. This code
             // will compile, as there is only one impl of MustNotImplDrop for the user type
             // 2. The user type does impl Drop. This will make the blanket impl applicable,
             // which will then conflict with the explicit MustNotImplDrop impl below.
@@ -969,14 +984,14 @@
     let mut project_replace = cx.project_replace.span().map(|span| {
         // It is enough to only set the span of the signature.
         let sig = quote_spanned! { span =>
-            #allow_dead_code
-            #[inline]
             #vis fn project_replace(
                 self: _pin_project::__private::Pin<&mut Self>,
                 __replacement: Self,
             ) -> #proj_own_ident #orig_ty_generics
         };
         quote! {
+            #allow_dead_code
+            #[inline]
             #sig {
                 unsafe {
                     let __self_ptr: *mut Self = self.get_unchecked_mut();
@@ -1059,7 +1074,7 @@
     // To ensure that it's impossible to use pin projections on a `#[repr(packed)]`
     // struct, we generate code like this:
     //
-    // ```rust
+    // ```
     // #[forbid(unaligned_references)]
     // fn assert_not_repr_packed(val: &MyStruct) {
     //     let _field_1 = &val.field_1;
diff --git a/crates/pin-project-internal/src/pin_project/mod.rs b/crates/pin-project-internal/src/pin_project/mod.rs
index 2dce78f..d5f41dc 100644
--- a/crates/pin-project-internal/src/pin_project/mod.rs
+++ b/crates/pin-project-internal/src/pin_project/mod.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 mod args;
 mod attribute;
 mod derive;
diff --git a/crates/pin-project-internal/src/pinned_drop.rs b/crates/pin-project-internal/src/pinned_drop.rs
index d30ecbe..e845202 100644
--- a/crates/pin-project-internal/src/pinned_drop.rs
+++ b/crates/pin-project-internal/src/pinned_drop.rs
@@ -1,4 +1,6 @@
-use proc_macro2::TokenStream;
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+use proc_macro2::{Span, TokenStream};
 use quote::{format_ident, quote, ToTokens};
 use syn::{
     parse_quote, spanned::Spanned, token::Colon, visit_mut::VisitMut, Error, FnArg,
@@ -114,7 +116,7 @@
     const INVALID_ARGUMENT: &str = "method `drop` must take an argument `self: Pin<&mut Self>`";
 
     if sig.ident != "drop" {
-        bail!(sig.ident, "method `{}` is not a member of trait `PinnedDrop", sig.ident,);
+        bail!(sig.ident, "method `{}` is not a member of trait `PinnedDrop", sig.ident);
     }
 
     if let ReturnType::Type(_, ty) = &sig.output {
@@ -182,7 +184,7 @@
     item.attrs.push(parse_quote!(#[doc(hidden)]));
 
     let path = &mut item.trait_.as_mut().expect("unexpected inherent impl").1;
-    *path = parse_quote_spanned! { path.span() =>
+    *path = parse_quote_spanned! { Span::call_site().located_at(path.span()) =>
         ::pin_project::__private::PinnedDrop
     };
 
@@ -199,7 +201,7 @@
         drop_inner.sig.generics = item.generics.clone();
         let receiver = drop_inner.sig.receiver().expect("drop() should have a receiver").clone();
         let pat = Box::new(Pat::Ident(PatIdent {
-            attrs: Vec::new(),
+            attrs: vec![],
             by_ref: None,
             mutability: receiver.mutability,
             ident: Ident::new("__self", receiver.self_token.span()),
@@ -228,7 +230,10 @@
     };
 
     method.block.stmts = parse_quote! {
-        #[allow(clippy::needless_pass_by_value)] // This lint does not warn the receiver.
+        #[allow(
+            clippy::needless_pass_by_value, // This lint does not warn the receiver.
+            clippy::single_call_fn
+        )]
         #drop_inner
         __drop_inner(#self_token);
     };
diff --git a/crates/pin-project-internal/src/utils.rs b/crates/pin-project-internal/src/utils.rs
index 55089cd..fdd9eb0 100644
--- a/crates/pin-project-internal/src/utils.rs
+++ b/crates/pin-project-internal/src/utils.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::mem;
 
 use proc_macro2::{Group, Spacing, Span, TokenStream, TokenTree};
@@ -15,21 +17,6 @@
 
 pub(crate) type Variants = Punctuated<Variant, Token![,]>;
 
-macro_rules! format_err {
-    ($span:expr, $msg:expr $(,)?) => {
-        syn::Error::new_spanned(&$span as &dyn quote::ToTokens, &$msg as &dyn std::fmt::Display)
-    };
-    ($span:expr, $($tt:tt)*) => {
-        format_err!($span, format!($($tt)*))
-    };
-}
-
-macro_rules! bail {
-    ($($tt:tt)*) => {
-        return Err(format_err!($($tt)*))
-    };
-}
-
 macro_rules! parse_quote_spanned {
     ($span:expr => $($tt:tt)*) => {
         syn::parse2(quote::quote_spanned!($span => $($tt)*)).unwrap_or_else(|e| panic!("{}", e))
@@ -49,7 +36,7 @@
 
     debug_assert!(lifetime_name.starts_with('\''));
 
-    let mut lifetimes = CollectLifetimes(Vec::new());
+    let mut lifetimes = CollectLifetimes(vec![]);
     lifetimes.visit_generics_mut(generics);
 
     while lifetimes.0.iter().any(|name| name.starts_with(&**lifetime_name)) {
@@ -118,7 +105,7 @@
         .collect()
 }
 
-// =================================================================================================
+// -----------------------------------------------------------------------------
 // extension traits
 
 pub(crate) trait SliceExt {
@@ -170,7 +157,7 @@
     }
 }
 
-// =================================================================================================
+// -----------------------------------------------------------------------------
 // visitors
 
 // Replace `self`/`Self` with `__self`/`self_ty`.
@@ -211,7 +198,7 @@
 
         path.leading_colon = Some(**path.segments.pairs().next().unwrap().punct().unwrap());
 
-        let segments = mem::replace(&mut path.segments, Punctuated::new());
+        let segments = mem::take(&mut path.segments);
         path.segments = segments.into_pairs().skip(1).collect();
     }
 
@@ -241,7 +228,7 @@
     }
 
     fn visit_token_stream(&self, tokens: &mut TokenStream) -> bool {
-        let mut out = Vec::new();
+        let mut out = vec![];
         let mut modified = false;
         let mut iter = tokens.clone().into_iter().peekable();
         while let Some(tt) = iter.next() {
diff --git a/crates/pin-project/.android-checksum.json b/crates/pin-project/.android-checksum.json
index 9b180dc..b79ea5e 100644
--- a/crates/pin-project/.android-checksum.json
+++ b/crates/pin-project/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"a1143443b8a8d93618c94a47e4cb1b878b5564f8f35df2fe0c26fdc68001bfbb","Android.bp":"5c4d6265239eb006234007316a028a892a47e90caef0d4560e4f87388457f35b","CHANGELOG.md":"5d48280b367f70d3e7f16fa5b8a7328bcae7c08dc2c3bb95a55bd52030194119","Cargo.lock":"f92deee5e03a0f0ae7747c35f986e6c99a0b4188aa55f47bf206cce6ac40aea4","Cargo.toml":"98aa2f722ef25c2864710db99deb1ff5a57dbac4e32b0fba596e2f020dbf9a5b","LICENSE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-APACHE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"30eee2672ae16a114f2ddda2824104c4a4fc604d027cb37e899c4ca5c266eaf3","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","NOTICE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","README.md":"94fffc378f2d32b14f9df6d4d7a51a4a90026dea627f3548e39d652e0b7c158f","TEST_MAPPING":"41fe943b979ce266ae7fc1df55149ddc11cbc7c5644d30182d11a108425021d0","cargo_embargo.json":"544abbb62553b71d416392b8af5ae7bdfa8e6260a5d9e9e51fd617c60558d53b","examples/README.md":"8451fa40f488e955424141d20d5b4cc8596f7222e7d06be89481636eaa05248e","examples/enum-default-expanded.rs":"57e154ce29af29fe4ec680c20ddbf2753203a2637252783d1c47cbc0265d68fc","examples/enum-default.rs":"fab601cf2e095c2d05d1907f35b4307d1273d21db1d068a4fef63e8de30fb9af","examples/not_unpin-expanded.rs":"811b8f757c9168eb7708fb2b2a9f0692ebe5c9178ae29dca47a059e6364bc3db","examples/not_unpin.rs":"adfa5b8910950f66feda7cd6adbaa41f24169f663a718ef86a4951addf1a7198","examples/pinned_drop-expanded.rs":"b341bff36d77d28d5f9931c0ad334ffac15c76b311fd840c0783d06014bf9693","examples/pinned_drop.rs":"3cdad1675a02497eb2064fc5b65592efebd580de52fe31ea0f2083589e86f108","examples/project_replace-expanded.rs":"3ea41d78cdf8472b4ab342e4c97e6dd9d3453bf1214ab360a4fe33ca2ea54441","examples/project_replace.rs":"71970744087b088674e5e27e9ce79f3b13c0280f5b068707870bed4c84facd6b","examples/struct-default-expanded.rs":"c317982be6a42fcfbcb8ebea6d0d332371f6fe7a9f239b404f8c29b8089b60b6","examples/struct-default.rs":"6f220fb77a56aa53135ec1b5018e14a5d9e89e7af39d9444cada01fabffbb233","examples/unsafe_unpin-expanded.rs":"aa22e8a231a0d048b50f18670c3aa1ba48059310b3649e3f71b01b936255173a","examples/unsafe_unpin.rs":"50c4857c67f97ccd5166a4db64b226ad211155ddbee4d786cb31c4225023167a","src/lib.rs":"68865b58b4fcefdf4239dd38a8abdf394122759871bc41a3629212d2e2f891c8","tests/auxiliary/mod.rs":"770fefb1b79ae838a8aed5206122a2789e7c489938cbf18bb02d2181d14bcc5d","tests/cfg.rs":"9095072ead4a17b8bf9d4b0c4773a807f5fc61a035c17dd99bc1c5bfd9bd92ca","tests/compiletest.rs":"c39104c9a03ae1acc7b5a1c237c07b71edb0dba43b0e67b7618051deb543d3f7","tests/drop_order.rs":"78defa79d795a5f34048760e7303b8b6c49ac54beb207c86d654a646eda0d9f5","tests/expand/default/enum.expanded.rs":"04976c8b4d8581b1afe2e6cf1f2180432836db607895f36c5d1a098e70ed37bc","tests/expand/default/enum.rs":"4eac8ad535d84425e9b894fec06faa573f4687d15700e139d569125980762bbd","tests/expand/default/struct.expanded.rs":"dc79124712d36add4af08d7102849a48f7a8d7d057bd2e5d586de106ff38a18e","tests/expand/default/struct.rs":"b4f253eb3952e5c923e1500d1102abda64dfebab59d2c414e7202dcd57b264d0","tests/expand/default/tuple_struct.expanded.rs":"666a6237c55607b04f22dd69ef9e50a778dd14db23407071edc24ed4d6eda784","tests/expand/default/tuple_struct.rs":"d67e9a96eefa374b5fc9c691750868baaf23902491307d76fd6cc23f0b5fff76","tests/expand/multifields/enum.expanded.rs":"524fd2089faa3d9d255fcae2362a77cafbaaf9afc5d08e56fbb399d0919be667","tests/expand/multifields/enum.rs":"42ee9f7da23bc031d51c2c0229115d4b3566e86d2fe21cf3ad497768db88a71b","tests/expand/multifields/struct.expanded.rs":"67747302a3b74f9bdb8b8962b3fa4d9a7bbfc1bdf5f98f6f817ffa0be5c4db8d","tests/expand/multifields/struct.rs":"e07ef6aaceaa8c131c8f7e718697137e3fabfe4c4b3a46ccb759d08a22d7eabd","tests/expand/multifields/tuple_struct.expanded.rs":"3ce5f06d345c46332f7696ee10a7f04521861a061cccd8f5afe580ca73df9f0a","tests/expand/multifields/tuple_struct.rs":"97ef43f41113560d5f359c9b64bf7863e16bd28b05e44344ca057280429dcdab","tests/expand/naming/enum-all.expanded.rs":"8de14a9749e751b09726f135e0411380f5d4b6bfdf9d0507ac2c6f6cfc21b96c","tests/expand/naming/enum-all.rs":"684e7c0eeac5954c94e751ba2cab867c20e6ce0b3a2c4d2026a952359fd9efc2","tests/expand/naming/enum-mut.expanded.rs":"4ca9ab1fbd05246fc59ec4abebde7dcbbc2d01087f7d3f5f33f01ebe60c91cc9","tests/expand/naming/enum-mut.rs":"4da4725a4be4dc8d4b1e14d82af31d329123959ee9139ac5bccf3123474c54e3","tests/expand/naming/enum-none.expanded.rs":"288388c18780093257551added3e57f9263d4e9afd9375a9710357db78d973a4","tests/expand/naming/enum-none.rs":"3df6c5e5df5ab7505f3f75bf679d780c537f3f9d840db0cbef7d60164622f5a9","tests/expand/naming/enum-own.expanded.rs":"32dbd2ffa02fed5985f4122d830213652ffcaff0a8a6615dbbc8ac40ae82629a","tests/expand/naming/enum-own.rs":"3cda3d93b763b60aed4f5cb70096cb35e287688cd919a2096af46f2d399042bb","tests/expand/naming/enum-ref.expanded.rs":"ad643d28bb13fa3afb41112e09cded0cca0cb0941dcf177fcf95d8cc51bcf4ac","tests/expand/naming/enum-ref.rs":"e0cd1fbee10fa9b81a858d0d39ae371b0b536f1f50dfc9c09c29142b73579971","tests/expand/naming/struct-all.expanded.rs":"f11af05f3119ebcf052ccf1a2a5782723412ae7acf5f6b9bdeed03c58896fbbf","tests/expand/naming/struct-all.rs":"ef49de3b76a612c52cbeef0c8703184b1e7bc3e41e20d1688e452eff9eabc1d3","tests/expand/naming/struct-mut.expanded.rs":"3b5a16db11b2ff7331e1aaa7b79231af2c4e74639058db4cecc7ebb22b73b616","tests/expand/naming/struct-mut.rs":"1616f8ad527921edc5077462d6f397d515c29ab2833c5c3728894d20c7ca6b36","tests/expand/naming/struct-none.expanded.rs":"dc79124712d36add4af08d7102849a48f7a8d7d057bd2e5d586de106ff38a18e","tests/expand/naming/struct-none.rs":"b4f253eb3952e5c923e1500d1102abda64dfebab59d2c414e7202dcd57b264d0","tests/expand/naming/struct-own.expanded.rs":"105c7645cc8cd32daa1cd5447d23def38fdca91720de32c1add64be2e8674009","tests/expand/naming/struct-own.rs":"82395864b162a8a9524c3f240070a677c3a55c3281eaef3bc930571e23c919ca","tests/expand/naming/struct-ref.expanded.rs":"ca6396d0ee369d1e4509e06de4708af0d0795380d743909ee676052178ef8dff","tests/expand/naming/struct-ref.rs":"e8fade84ebecf1c5df50b837c944e53d2e682c925f90e97c43ee198d4f87995b","tests/expand/naming/tuple_struct-all.expanded.rs":"e0351eb2df0ce6d6b7da77fedf387da0328834d6162f0f812e9b507bf6f4af3d","tests/expand/naming/tuple_struct-all.rs":"3804447a82d4c0c0deb91350179b3896930e3b48f92365a6403a12e64a647652","tests/expand/naming/tuple_struct-mut.expanded.rs":"609a94a5c8df8e0ee11eff3ef46185c70f197352e8c9f50bbbeea64c98c3948a","tests/expand/naming/tuple_struct-mut.rs":"a1aa523f1ba18336d592d4c80e08d4c32a0d7d0cedbbe45b83a6406e8109a5ca","tests/expand/naming/tuple_struct-none.expanded.rs":"666a6237c55607b04f22dd69ef9e50a778dd14db23407071edc24ed4d6eda784","tests/expand/naming/tuple_struct-none.rs":"d67e9a96eefa374b5fc9c691750868baaf23902491307d76fd6cc23f0b5fff76","tests/expand/naming/tuple_struct-own.expanded.rs":"0250f85edd6e7c857d86dc9cba61c7dbc1ba3177691368d4c8e09c0c0b2948d1","tests/expand/naming/tuple_struct-own.rs":"237700f682309946c10c0f9073e3bc25b60ccda2670a6384bee9c25f8b7a552b","tests/expand/naming/tuple_struct-ref.expanded.rs":"122dacdad393c5dda30feac1bf74de9570f3e798d4f31c312660016d93177325","tests/expand/naming/tuple_struct-ref.rs":"31af56362662d720ca94c5260ce748f4a7bc7629465336c61dc57c898ece2aa8","tests/expand/not_unpin/enum.expanded.rs":"ff35c7cfaf5d29f1bdd0f3678c4d03b5240fd886a0e7c509636c92b268fa50dd","tests/expand/not_unpin/enum.rs":"20df337deb0133ce24c498a9f28811d2b3101ad881971d590dcbca5759eca899","tests/expand/not_unpin/struct.expanded.rs":"b41dd6db0558c562bbc7ad635b69a266f1e7c543be3ccda4df120d672d18204e","tests/expand/not_unpin/struct.rs":"14cac841fbb554da39296276814f49a7abf615793ada9a6926f407298a5e5fd2","tests/expand/not_unpin/tuple_struct.expanded.rs":"f2ee0652618ec53f402dd976f8ba9a439b804c101c991e02e5e7e0d53b4a5f8a","tests/expand/not_unpin/tuple_struct.rs":"4c93a6d27abc5a86a839a777412c5bccb7e1e27e1873dd51167b021fad231b24","tests/expand/pinned_drop/enum.expanded.rs":"1614d9a6e0c88bf6827ded99eaf68ac6c3577c1301540965a1cee0352b2f1831","tests/expand/pinned_drop/enum.rs":"64fd737c74c8914d196002d58d332608b733e1a0591ed8e3fc98179ccb923d3f","tests/expand/pinned_drop/struct.expanded.rs":"20d64854a1932a838d202d86315c2bdf513782376b75f34c7275cd0fbe172188","tests/expand/pinned_drop/struct.rs":"b02c3065ac96a60cc75fbd7e12b60a4570d94212715ba5c48a4e6eac4b28742b","tests/expand/pinned_drop/tuple_struct.expanded.rs":"4fe362aad160e968fe7c9a03775bba0c3f7ac796b89d262698c6dc9698580903","tests/expand/pinned_drop/tuple_struct.rs":"201eb475416046b717468e779ba98a9f863f1c44b20c726fa09758ea4a2e782d","tests/expand/project_replace/enum.expanded.rs":"16701932c7639795488c2d1d931cda754854b0e887fe412e0b7c7957c4d1d536","tests/expand/project_replace/enum.rs":"34ac1633ec8c92b55b11a49c297bd961cbd80db931ccec6799c5c07fec6edbbc","tests/expand/project_replace/struct.expanded.rs":"f614b26ba218a6ed97b9bf22b17f34bf41d2456470e8b0ebafe896014f3bf611","tests/expand/project_replace/struct.rs":"0d67a4100ddebfbee78a2a3a667b3243d06ca27dd56d8b193ab2e2e805ed1b82","tests/expand/project_replace/tuple_struct.expanded.rs":"59037c9db227745539db8574ab9ffc00178aa48ba32abb12201f945879e64361","tests/expand/project_replace/tuple_struct.rs":"47317ab8b965351c3682641783267f1f0112d1f7bf067658dc60ca2be51d949c","tests/expand/pub/enum.expanded.rs":"12995dbe4d253a3e3f91d5185f158a80d6329fc502abcea3e4550447581fd10a","tests/expand/pub/enum.rs":"808b53dd5383e46c45b2d4fbcccd2a10b61f4db165fdf4b934997624db22106a","tests/expand/pub/struct.expanded.rs":"4cae01cc200989930f6e67a7d165448a60efa23fed5660e5eceec69c41fd4ac4","tests/expand/pub/struct.rs":"5281b8cb6d6a6c938668a0f8d8b71062e9df38e3193b7b4a34acd1e04e430b68","tests/expand/pub/tuple_struct.expanded.rs":"3da9d1dbbc87f113752e202ed1ff745a18906093878c2150597c35ad141d9e2c","tests/expand/pub/tuple_struct.rs":"07c2f4ac5c05f18ca8e9910873b1b7fd1bcb00bc3215f6d57b424e5ae1d0762e","tests/expand/unsafe_unpin/enum.expanded.rs":"6f0eb2c0fad6d1c099c66d5485badc27b8f405c4d6cbc3ca7596337025bc0a0e","tests/expand/unsafe_unpin/enum.rs":"0000e9baa52a811780f4117c749a2d6c0cb3a0b746d71e90a956bbeea008d753","tests/expand/unsafe_unpin/struct.expanded.rs":"08b7bb8e1479080f3c53a48c26c74a671ddf893fc9238cc44b145f77a65ba492","tests/expand/unsafe_unpin/struct.rs":"bece3509b8bce9077fb4575be78d801b2ca89a76b7d01acfe407180dd9e3f629","tests/expand/unsafe_unpin/tuple_struct.expanded.rs":"66194e2495c3af9a8326d253d64be44e850a2be6840336e835c3d03b1567fffc","tests/expand/unsafe_unpin/tuple_struct.rs":"711f065d883845c4063b5407d9341083d641c334136411431229bb143fa24703","tests/expandtest.rs":"69150fbb697050f55c64fd4aa2c48a028b8b6972af6660f985728b3fe4af339c","tests/include/basic-safe-part.rs":"cf0c5d062881785f5e6f43f233529bb7e00c6c40a79d9e6eadd840d02b127ee8","tests/include/basic.rs":"34d5238f02939359e2417a6d8b42dd849bdd6c07a424305d293ab65a9faa1610","tests/lint.rs":"924825a1aa1ce951061e75b780db449e01557ad1584828b3e196002cea34676c","tests/pin_project.rs":"32d752732b66c7e03df9bf343bac0b555c3ddbfb85bc22d799f3c66d13e0f81e","tests/pinned_drop.rs":"8b3f03be53b528e76e62eb73c10d3bf97cebb4e5b8b05fd315d173d9564d77e0","tests/proper_unpin.rs":"d6ff62f171955c1d16565484aeeca72466affd3e200cbce39b57feec5c059bd8","tests/repr_packed.rs":"4a9dc04940713a490e149a2c826655e98c5580cbdc37dd8cfcf70aadde9ce1a9","tests/ui/cfg/cfg_attr-resolve.rs":"74507e00a3b4363c38b06a871c2c40b32a424fe1d741b74bb75abb098c18be28","tests/ui/cfg/cfg_attr-resolve.stderr":"96a0aa6bb77987b14fcdc9b7bd7434d6a5acb6a89e01e4954022a06394641d7c","tests/ui/cfg/cfg_attr-type-mismatch.rs":"15efb9a6c540888980fc7b20da8db832506954907c2622f585a11c286eb19cf4","tests/ui/cfg/cfg_attr-type-mismatch.stderr":"586cd9d0cdce4e01ed5d50f3273b290c3c8b7e8a817f26ae8cbe30e5c71812d4","tests/ui/cfg/packed_sneaky-span-issue-1.rs":"286ab18aaae897a4b801842646cce3f7240dc0253d77f5a6112f61e49e221017","tests/ui/cfg/packed_sneaky-span-issue-1.stderr":"baae40b1651db15d15e58563316219ff3d762042adc57d27b4563b168e171d09","tests/ui/cfg/packed_sneaky-span-issue-2.rs":"4284c2289caf64ba6e4c1f4221886cf3c4304463e4d5797313ef023c5ec0cf9a","tests/ui/cfg/packed_sneaky-span-issue-2.stderr":"f04ae9bd28cd2d74f668dfef30fc54d50f07f4936d19e14505c6eb7b8b6e6f3d","tests/ui/cfg/packed_sneaky.rs":"5a35e6575dfc3311a0deaf70b4d9a4e11b9e2e87af0f6fa9130afe1265fa7e77","tests/ui/cfg/packed_sneaky.stderr":"bdf2d443c26320589115c50bf20a7334eba8ee1ab137b3b47ff5c612cff9eeb6","tests/ui/cfg/unsupported.rs":"39202bd1c107e3544ad1abbf624e70cc01faa6f5150c4fbaa80fee78b990ee23","tests/ui/cfg/unsupported.stderr":"8187efdddaf486ba6c4e34b514baaf84d527bdbfbd55687b2f58bf8744229e3b","tests/ui/not_unpin/conflict-unpin.rs":"d52aaf3ef40b3104f75cafeeb66310b39f286350b64b646e27bb274e19ab69a1","tests/ui/not_unpin/conflict-unpin.stderr":"f858aec0a19c3bf4e3b3ed12858ef7616684ce4285561b719756536831e5d4da","tests/ui/not_unpin/impl-unsafe-unpin.rs":"bc50a134aa6bc66be6939273ad8f5f862fe31a44d6d49b0e982abfe714b15669","tests/ui/not_unpin/impl-unsafe-unpin.stderr":"c5038a04a1cd31f0451366be5d8a92848c8ca769cb6e86e91f6bef7130bb5d32","tests/ui/pin_project/add-attr-to-struct.rs":"1229f429ad91042bc8427950b664aa50a925e60f08fc64e300ddc3c7913648ed","tests/ui/pin_project/add-attr-to-struct.stderr":"f6be8ecf926a28cc2d4e59e73425c8996f3ec7670e657abf2b6d319d7c626d87","tests/ui/pin_project/add-pinned-field.rs":"d9d4ff641b427be3b6b2a8f3fc6456166269371764945bd4a0c13da5d921854b","tests/ui/pin_project/add-pinned-field.stderr":"85ab52afd93c8d1206f5b9972403bddf2da0ece3f33fd5eb6ba8c7dd87b18201","tests/ui/pin_project/conflict-drop.rs":"9e6c6e704634d499185bf721ab6c51e65de1f36c6c44409b110f39455e25216c","tests/ui/pin_project/conflict-drop.stderr":"2d502b5935553806da1172fceaa885c44cfedb8315b27599c43785e6206d2564","tests/ui/pin_project/conflict-unpin.rs":"8e0ae74105f4313f02795272ddc118ae5a458d9ef788a9b0a3792bf62568fcd1","tests/ui/pin_project/conflict-unpin.stderr":"0f178576438a8334227467c25ff116f3df2caa136d8e63a77f258fe8fccbdf02","tests/ui/pin_project/impl-unsafe-unpin.rs":"c9e2b7cdc9b1505b7bff512e899a90f2d4da7d950ea6ef40d0bcc65d4019c0cb","tests/ui/pin_project/impl-unsafe-unpin.stderr":"131f31d8f392373bdbe9d947145b46ff8c7debaaea0f1750745ef3a3d7944e52","tests/ui/pin_project/import_unnamed.rs":"a0dbb25bd6667f81b07bde8fd99d761e2efff22775c6d463f90742d1fcee6258","tests/ui/pin_project/import_unnamed.stderr":"174489f6550b858301eec7a8f85d6f96baf45b3f256706e5d02831f9bbadfc97","tests/ui/pin_project/invalid.rs":"ed9354d538ddcb540c148c216369803c266ae37b170b5ca6d8cafb38f73b171e","tests/ui/pin_project/invalid.stderr":"0b69cf7314ec504bfd34a519779a187eb5caa38d63dd780c6898620c77828aef","tests/ui/pin_project/overlapping_unpin_struct.rs":"5545baecec3be183b6472d8d3f5a77663052ff54a4d986309685bd8405b04b34","tests/ui/pin_project/overlapping_unpin_struct.stderr":"56948b186704712cde8926bc2dd4ac71a1b6cc644d877c055b6cb052bd38acc7","tests/ui/pin_project/override-priv-mod.rs":"257499bdea54a177d48f791ee8286a1429b08b7bb4479bcf782edeb47f5617bd","tests/ui/pin_project/override-priv-mod.stderr":"8b6680200e7e79c3dc08f913350b812d6c56ed6350ef7304e25499b8dc875a6d","tests/ui/pin_project/packed-enum.rs":"9d3ab89646c82fa799efa39a75f009146bcb3712da2ec1e79b4a026fedd8f5da","tests/ui/pin_project/packed-enum.stderr":"438691045dd2689699433892b639b1d9be286b7a5f01a6a7975001f25f451647","tests/ui/pin_project/packed-name-value.rs":"b9714f6ba6fd5873a00438610853c3e9d5d2c9eaa8fffc1aa6e4a8eb1cf091d4","tests/ui/pin_project/packed-name-value.stderr":"23769b317fc88ba5b9e7fbaccaa5af041d5005be24f5c34b01e181b02e38bac5","tests/ui/pin_project/packed.rs":"da3e285c3a2354e3ab8adf87e1ca14cd6412ba9dbef8def4d014c5fb489427d2","tests/ui/pin_project/packed.stderr":"a3b85b5c54875a579029a0c342e6a5f4844e0c6b7d36abc455dabfc429c641f2","tests/ui/pin_project/packed_sneaky-1.rs":"3caea140333a72912e6f252375d4d2325986f2f516ee630941044e40816ef64a","tests/ui/pin_project/packed_sneaky-1.stderr":"709b3caa9305e106000f5131878469874f893c3f32d958b17d0eafcd8ead54b7","tests/ui/pin_project/packed_sneaky-2.rs":"b4c12cb780e1527a0499d1c2d7b5c02fe837e50f9ecee4940a6224fbb8e6f426","tests/ui/pin_project/packed_sneaky-2.stderr":"7b35c989b542f953e04f5a8ce871e11e65db6cc8fe0e757cfa2f577aa459dfde","tests/ui/pin_project/packed_sneaky-3.rs":"5064d6d887bf601faa37fa02375a1013d19238166127660a1e2aa1000d1ed1f4","tests/ui/pin_project/packed_sneaky-3.stderr":"65dad4659b787863f54799d72a3f1c74e584727992342fb0d53e983870c249e0","tests/ui/pin_project/packed_sneaky-4.rs":"34de127db7559ea70800c61aca6795492ab3e0721ffd28ace1d31504fee32871","tests/ui/pin_project/packed_sneaky-4.stderr":"c2ddf85d8bcb36cbad4ff2edb9f09ea4369d2b6dddaf029127943e29a52c1f40","tests/ui/pin_project/private_in_public-enum.rs":"676bdbf29579773b6b7095bb286f33f38ad7f11fdd5f074b6d62f2b85dc1fc50","tests/ui/pin_project/private_in_public-enum.stderr":"0feb70c950b91bc51c5f46635d07b2f5951b74b1982938677bb0e1bfc86df21c","tests/ui/pin_project/project_replace_unsized.rs":"a4379deabbc399f112e7fb738270798b24aa20f4e66375381a67bbc8c133cfea","tests/ui/pin_project/project_replace_unsized.stderr":"deb68e8d4a8dc7153c3515d1dc77921d21906452e65431f6ea3702fcdcc2704e","tests/ui/pin_project/project_replace_unsized_fn_params.rs":"bdc65bf0fad9f22fa3e492b6f9b326180683632f6497ccd24aea4ed23ebabfc4","tests/ui/pin_project/project_replace_unsized_fn_params.stderr":"ca4575efd480949a7acd6093304e5b74cc04e63c69065758da3bb7ecc3b12c32","tests/ui/pin_project/remove-attr-from-field.rs":"0e3e9c657c2e65e6a55c76385f24c52f4f57ac765eb83d736588e8b68b11a030","tests/ui/pin_project/remove-attr-from-field.stderr":"afa608f14c6a718353e7f506e1ce16989bffb77be38f8a843c35911f5354b1f1","tests/ui/pin_project/remove-attr-from-struct.rs":"156ed1fc029293dc9574ca9fb20f1df32e8431554ab188ad07ce84befbfdcd13","tests/ui/pin_project/remove-attr-from-struct.stderr":"8503017ad66014f7528a59ced029cadaf7c8418940850efbb329361f53ce26e6","tests/ui/pin_project/safe_packed_borrows.rs":"fbdf0969e537b79df4d9058585718004bfaa3f3711f6e721b3361b445d8cc56c","tests/ui/pin_project/safe_packed_borrows.stderr":"7b388718da74d7f12c2477d723c6d5d792ecbd9ea3bf538e47d5672761b91161","tests/ui/pin_project/unaligned_references.rs":"c97b7c9ef2ceb996a9b649fc55d5cd7bfad2d75479c88536ed83f4e2325a3167","tests/ui/pin_project/unaligned_references.stderr":"3e24a0d43a53ed8fe6628e64e426248162094d2340035803a9e502be839553aa","tests/ui/pin_project/unpin_sneaky.rs":"141a05241020fa19a191f3d8185971f02143d7e1cd6bbc1ba047d0f60575896a","tests/ui/pin_project/unpin_sneaky.stderr":"3c754697f5d059cd6dd56e86b88e1be3f4227162eff34de6ade0e897055ace4d","tests/ui/pin_project/visibility.rs":"692f19dc946452c1ead493c7007b9699cda3880224ebfb7a273b70dad7e853b3","tests/ui/pin_project/visibility.stderr":"c2395f2b01d7acfa2d7767ae7b5d726157b3ce30aacf97c3ccbe51cc7cedcd8d","tests/ui/pinned_drop/call-drop-inner.rs":"650a9ce5bb3ac683698022159b9d61467e93f96462f95f574436cd636778f025","tests/ui/pinned_drop/call-drop-inner.stderr":"d7143f3a5531f48fb2a8eb7be7a1accc1c68bdffa2871aec186b0bcbbcc28620","tests/ui/pinned_drop/conditional-drop-impl.rs":"2b2565a73bed6bcdff1eecc8485f5ee4a1751327bc1f79e8d602f6c25da7cbbc","tests/ui/pinned_drop/conditional-drop-impl.stderr":"56adee9db46230985ec6e5e785facd2a0847933a134d21b81c96a4b47edc617c","tests/ui/pinned_drop/forget-pinned-drop-impl.rs":"2cb7ba54a39df5a0a5313a7f780790eed8bc29cb808eb160c558b8a95b2737b3","tests/ui/pinned_drop/forget-pinned-drop-impl.stderr":"62f60ef0c898589bc1f48856008149f63fabd7f67f4fedfbad4004f16bd8f6c7","tests/ui/pinned_drop/invalid-self.rs":"32241578edc380d73fc63e7758be479910281929db5e88e7c81b6e463026059a","tests/ui/pinned_drop/invalid-self.stderr":"83dbba93be334ddfca0dba0877b99e30b407707c66bf26ab99d04a19818543cf","tests/ui/pinned_drop/invalid.rs":"692e1cad7f04ba46d1e38b46b463976c7d6a092d48607add5f38921bcfbc9863","tests/ui/pinned_drop/invalid.stderr":"b41121e83dee8b4e60799acee53023dda996b24ce3acd18314db965a7db4c5f0","tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs":"8a933c68c09b12cc9080957381c3fe8e67a07dc1dff389f1c300d72bad384d7a","tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr":"a7e45aa46c8dda33a5f5fd0630e4b52f15a8450ddd10b0a671e5708d1d53761e","tests/ui/pinned_drop/self.rs":"3187cfd952fff39235b50cc3020de4950581cbf2aa93898cfffeedfabb74cfbc","tests/ui/pinned_drop/self.stderr":"069a3df3c40c25df68910098dfa966719cd0eb824daa9104d2058845e8f963fb","tests/ui/pinned_drop/unsafe-call.rs":"768ab2aba62b2e01447614f84e1f4c3ba5bcd3dcaea2a133e43a902e0c34e52e","tests/ui/pinned_drop/unsafe-call.stderr":"457cba20d6ac605ed014534595dd05a61a63eacf920c68336bb7a38a1f875321","tests/ui/unsafe_unpin/conflict-unpin.rs":"5469fe1f974f3b29892eaaf925bbb8fb2d4071228c125b3c328031a0acba3c12","tests/ui/unsafe_unpin/conflict-unpin.stderr":"d2842f52f894807fbe7956d2885f92111ff9a9f38b8a6c39d86a962ecfd1aa8f","tests/ui/unstable-features/README.md":"a6af0dbea166dafd465f3bd86f330b1d1ee512aa8ca61a7fcebaca5fdd19a891","tests/ui/unstable-features/marker_trait_attr-feature-gate.rs":"3d1acb310aa24eb112284c4b06c9bbe5198236a105bcf418655d1aacf8eb0c2b","tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr":"7743c2d0c93875e727cf69cbe9b5f35973d784f13837217cd3ecb2a774a1f3d7","tests/ui/unstable-features/marker_trait_attr.rs":"e3cd5f7f5d7f67b8a21e6f1faa5c54902585a4346b03403cbd2f1feaf297e429","tests/ui/unstable-features/marker_trait_attr.stderr":"920a25bb86c515d0b4d807e33001da18eed7a4e92472c4354907ba0b0138734b","tests/ui/unstable-features/negative_impls.rs":"d9e74c06f61b28b824a3030f79449656a0642d34a7632c549fb84511c26fd108","tests/ui/unstable-features/negative_impls.stderr":"1323e4a29c0e06bb07fd059499e21a465fb9cb31d7e8f9a779efb069c87f2be9","tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs":"14baa724d55a018e73cf12ed3f9082923e252c14de4b0fa7aba68d5f6fb9f107","tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr":"e5c3e7e1a8514e7026ce24b5dded3a1191720dccbe1b02fb46cf368bff0a595b","tests/ui/unstable-features/overlapping_marker_traits.rs":"bf517cef2f118a4fae483d64a5072d2575e688ee294c64e0ab74b11827299dc1","tests/ui/unstable-features/overlapping_marker_traits.stderr":"d89628f1ad60d793f4da348f5af4db297d6a3868175651675c7d2c8645edaa48","tests/ui/unstable-features/trivial_bounds-feature-gate.rs":"273358a6811251c31e9d7038d5b0b9d467abcd7d96a40315a69a886bee6e0867","tests/ui/unstable-features/trivial_bounds-feature-gate.stderr":"3c49b79c70c3abb60902efddd6e1f19f3e805af21894ad8696a2026051e894e1","tests/ui/unstable-features/trivial_bounds.rs":"43d5f32352a738808603b0c4a08dcd857abf7102b3aef4ab005664c9f3220cb0","tests/ui/unstable-features/trivial_bounds.stderr":"426c6ee44da0e7f5365a690628fb65316fe403acc5d4a367f8110f891932c5a0","tests/unsafe_unpin.rs":"69ba6b42ffc9ec8de75c437ee512a8d1dda4261097310c09f416657de5a4a989"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"664ba17d295bd8320888bbf7dffb59631d6243903374e8279eb0bb4bda6fff44","Android.bp":"6dc6cd836d95255665257a03a31764c4a6b3507ba6ca9731a2a5949f37c5d46d","CHANGELOG.md":"3186090f083f4156c686344e726afd46b0d2402e2d2303f530989b65572398e1","Cargo.lock":"4304923f6fd5283e23b6f39482eb00bb8fead6d0d09dff017605fd04a302bb7a","Cargo.toml":"de0666e6e35587f39adc42e6e3dc805cbca27bcf8ae4ef7b48477be2a50fecc3","LICENSE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-APACHE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"dd25f90d41e420503a0e12a0f6b82d12479c811703dd5354562b7e304a18450c","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","NOTICE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","README.md":"c8b595cdcd22cf25e1669e3f69b5a726993d962008ecdaf714ca8104dec06aec","TEST_MAPPING":"41fe943b979ce266ae7fc1df55149ddc11cbc7c5644d30182d11a108425021d0","cargo_embargo.json":"544abbb62553b71d416392b8af5ae7bdfa8e6260a5d9e9e51fd617c60558d53b","examples/README.md":"e206042a10acd5844ee8486a68c0f3d7fe5c5ca46ad4e16c4786e792efb2c155","examples/enum-default-expanded.rs":"ced74ddbeaa55c1e034a81cc66028b9f6b85892148497f38a9d568031fe8b28b","examples/enum-default.rs":"851135afd9128951ad90f3a3699356f49264f39cc1809194bb675ae0f29fb153","examples/not_unpin-expanded.rs":"f8477a12a7ab16e6010280e1f50e93f48cee04367082fb186950491f52cee2c4","examples/not_unpin.rs":"7ef25dfa4d8baf9ed3e1fbe3fb01109818c8c2b0c58de5aea1cb26afbac16746","examples/pinned_drop-expanded.rs":"b16ffe75c8b5fb42a911926379d7974ddacfaeb12339f06c74a0df57c4aef049","examples/pinned_drop.rs":"a6ef90dc0070ac0c9a82108c3dc03d4c2d5f873e71f938672f965205cbd2290a","examples/project_replace-expanded.rs":"4ae5c7445d4cfd6c193c8b17eb74b64e034ea902b12e417348328dc7d5d2a345","examples/project_replace.rs":"fd026b15cdff895ad9ba13843d9d2b30163e8f811ecea1d46d5b64d27cec259e","examples/struct-default-expanded.rs":"d19add44271c614ad4b0d0e15923e6eee770dbc3aa2421bd6f0a87dff42015e0","examples/struct-default.rs":"e0275c5d5167cda495348ae6c5dc3426b544ff891cdde78a56873d27cf4503d8","examples/unsafe_unpin-expanded.rs":"1c3c3df6ef6aacf93e45fd5762e3793ed713b80ab33fc8fde6df58ac452dcb5d","examples/unsafe_unpin.rs":"30603523a3f0152525f03a22428d1cf1e8fc777098e448dffaa4364acbdfb1c7","src/lib.rs":"c15f348d729bce686ed1a33fae4411f5ee0f7b1e296976f26c33f1c704524418","tests/auxiliary/mod.rs":"b9123395fed2c3dadfa0305d42345a4bcb9cb67d3dfe9cbde23b381341829378","tests/cfg.rs":"f4a8dbfbee02abe6e67be188a78c4c7d8f5ef3adf2b7557b17d27b4a187ccf0f","tests/compiletest.rs":"5d782c030d298dfcb7f94c9df2549dcc54df4ef1a1bd8be034c767d13ac31310","tests/drop_order.rs":"7ab3007894cd60f45032d164fd5f3a0a1f066ae570a145d47e95cde81b988ca1","tests/expand/default/enum.expanded.rs":"31947516a8a9bbaa347a0cf27d84c56e79e80443f87be9570ea1bc82cc6e7055","tests/expand/default/enum.rs":"e491485303dcbd229ee5cb305bf43fccd388ae25de2d575f0b8646b2d0e1ee5a","tests/expand/default/struct.expanded.rs":"d7aad6e4721735a656834c511dd86d063dba008d7cb806d7d1cf6bae4b69fd18","tests/expand/default/struct.rs":"cd1e94e24c2d445fc39cfcd6dcc6b383504c64be3286402b251023324d021944","tests/expand/default/tuple_struct.expanded.rs":"1540d097190c0cdbf4ce6fdf60bd0433b900ba8744d17d3c72f57282c167c2a0","tests/expand/default/tuple_struct.rs":"ad29feaeb15576956bcfb6eeec4aead940632b9a0e8a9752e40b28dd1a4bc2fa","tests/expand/multifields/enum.expanded.rs":"a09625aeb62fd624deb41e2389bcaa2b53e423734cc79d0a64a24e20a0c7123b","tests/expand/multifields/enum.rs":"137ec6025d261a93edcc594844b4163facc5597825a72967e862b95b7c73f1f7","tests/expand/multifields/struct.expanded.rs":"01fa3cae934214bf7d5c1d9abbc44ecc8d5711addd063f052a5d82ec7b6be88e","tests/expand/multifields/struct.rs":"6c45dd72f1e3fb09a0eb75a96d95795c4b009603d8a51754ca6c837108507df7","tests/expand/multifields/tuple_struct.expanded.rs":"4add15111969812d5752f7b6fbba844b7747754f316c0b29c22b70639828ddf1","tests/expand/multifields/tuple_struct.rs":"5f7cf2411f9697375e8a7292f47a057df9cdc231f88133f0882a57f0e5c2fe65","tests/expand/naming/enum-all.expanded.rs":"a0578edaa0ab4d1329a3e3f7715d8ad712a0965c6f15aad693394aec7911f05d","tests/expand/naming/enum-all.rs":"d4a6f83c89cbb283dc3cdb28ea94122a6a730e6cf76a8b759572b79fbbaa14af","tests/expand/naming/enum-mut.expanded.rs":"885c03fcf434c41b07ec485980b8ccc93a237761e1d0135f6e8bd27edbd201fd","tests/expand/naming/enum-mut.rs":"4592e5dfdf27fd1bbe038cfa03db8946220a2cf6be06c68f7b52a90663a2d1c4","tests/expand/naming/enum-none.expanded.rs":"e2edec44f298f839bfefb3f86bab15be158ee60076e816110d8a7c4a4cf1971d","tests/expand/naming/enum-none.rs":"8359b234aee3a94e7b13b489bb15dbb990ca6375cb1dc1cefb3fdfdb04e8d337","tests/expand/naming/enum-own.expanded.rs":"075354b43bb296d04f1319c0736a419302c68e56383186a9fd58c1170a78db53","tests/expand/naming/enum-own.rs":"fdf3da7b3c96df6ff02cb4ad18929bba056fc554b93793a5298909c21a0bf043","tests/expand/naming/enum-ref.expanded.rs":"b1b6550431c14e97ee7354a51a1a01df90e85c7787df83edab99af82398d6d00","tests/expand/naming/enum-ref.rs":"8ac72026a35590b07f2ab295ea02ffd5f366a27c2df52c93d90dcf622e3307da","tests/expand/naming/struct-all.expanded.rs":"e3bd7957b250eb42079e6bc04dbbfd0caa18f2b08320607c9a80511d97a93ff0","tests/expand/naming/struct-all.rs":"52dda7203043aef805de328b4242931a1a56845ea3c8cdd4a75f9c7276c21a6e","tests/expand/naming/struct-mut.expanded.rs":"2ba18a48b11d5bcb66aaa571ec5c2d7786f8836cfc4e959bb43a6d1839bc6de6","tests/expand/naming/struct-mut.rs":"f47f1b24ef42a29d1073fcb3bafae5c444acf7bf732befc52f1c3b8acb865e27","tests/expand/naming/struct-none.expanded.rs":"d7aad6e4721735a656834c511dd86d063dba008d7cb806d7d1cf6bae4b69fd18","tests/expand/naming/struct-none.rs":"cd1e94e24c2d445fc39cfcd6dcc6b383504c64be3286402b251023324d021944","tests/expand/naming/struct-own.expanded.rs":"c977f7cb13d16687b9fbbfa249ebb3060fe9149563a8a70342845390da47e163","tests/expand/naming/struct-own.rs":"10c1e9abb52ae58c1381565ae6a4b3caa2738f002df03d1851f35a8dc108fd35","tests/expand/naming/struct-ref.expanded.rs":"a7dedfbc0e09301b9af158a76ee42d0a4c732696ac8ae138e9acb4ea83da9401","tests/expand/naming/struct-ref.rs":"3c5554e0b23c0e8403d34abca6d261dd9474ae4b5fdaccdadbdbb4ef50269a24","tests/expand/naming/tuple_struct-all.expanded.rs":"523d64b1e6839cf19330a40a02bf33f0dba1a7b248ecfe8b7ed7f00456df3c0e","tests/expand/naming/tuple_struct-all.rs":"7214728a1ca792c2076473ca77096c84350bbef03b6d1cc2806766fe1abd8095","tests/expand/naming/tuple_struct-mut.expanded.rs":"2d46da53a6c8fb33627853da9438441e674225d24fee38303fc0cf53d02a4c0a","tests/expand/naming/tuple_struct-mut.rs":"fb2a16253dfe8282c746c763e6be6e35447f97e04bbff9e64ad6680c46d515ce","tests/expand/naming/tuple_struct-none.expanded.rs":"1540d097190c0cdbf4ce6fdf60bd0433b900ba8744d17d3c72f57282c167c2a0","tests/expand/naming/tuple_struct-none.rs":"ad29feaeb15576956bcfb6eeec4aead940632b9a0e8a9752e40b28dd1a4bc2fa","tests/expand/naming/tuple_struct-own.expanded.rs":"bccc4250dc2ce435d648ee467cb18ba3594995d6f4361faf0a47c906bf2d6beb","tests/expand/naming/tuple_struct-own.rs":"2069542257d89b923707ee3ee17b4909a60197d00adb8cf6a4ca7d89dc93262d","tests/expand/naming/tuple_struct-ref.expanded.rs":"44180b43f151a1033501efc37a1a259e7e023b5917b70fb81d46028e71cb222b","tests/expand/naming/tuple_struct-ref.rs":"001473e71e296a630e433821c0bcd087fc24ce7b7f5a5008ad53864e658877c5","tests/expand/not_unpin/enum.expanded.rs":"2b18b3b11b6bcc585ab9baeafd02dfdd8dc8b6c7ffca7d4f97546290f2c903b9","tests/expand/not_unpin/enum.rs":"a8dc1e4f46e9156643cc61b1625ee162ef8392451c5b05bbe0364ab05b7e5d1a","tests/expand/not_unpin/struct.expanded.rs":"ec2f6cfcd92274c6fae9a7b64bc1711e237ff1741e1d790dbaa510abf17d3f2f","tests/expand/not_unpin/struct.rs":"a05cc177a214542c862e5813f52e669733b75b425e5c40aaa367e7f1bf150034","tests/expand/not_unpin/tuple_struct.expanded.rs":"d22e484c3b99c84257bb5bceb1b53c91c1112987d834ddd6a6bbebdaeb5fd0b8","tests/expand/not_unpin/tuple_struct.rs":"000189b96da0742260559f198a5c73f07c172a79bf83293c191f2712ac412d43","tests/expand/pinned_drop/enum.expanded.rs":"dd10544eab678f6701cf8a83aa1cb5ac96cdca3fc5394ab2252541fae4af3a46","tests/expand/pinned_drop/enum.rs":"4d7beb8f6f7363505924a5b5511831a323dba5d175f395077a6648fd909dc532","tests/expand/pinned_drop/struct.expanded.rs":"adc7c93777f0b8e2bc7bea1b304f461e52525cc5c6a6713eada41f1a731f671d","tests/expand/pinned_drop/struct.rs":"94f46d7ae9a8085aa9fc41430424dd3a47d342cdc20862007ab8157b3c6a06d9","tests/expand/pinned_drop/tuple_struct.expanded.rs":"135826d487b3eb88468098cee6426dfb814e9b494f669f2146d357fcd093cf53","tests/expand/pinned_drop/tuple_struct.rs":"fcf8744c0da22480985f8b4a0e7edfb45e3c77951e3385f733b8dfc37e9f3aa1","tests/expand/project_replace/enum.expanded.rs":"18db32ccac42f8fc23b8d6e586a9fd97db9d856c2b53824a2a32888dacafdcf1","tests/expand/project_replace/enum.rs":"1306c7a8a13bf899ef30b6d29de9c12c45aa63d0fb423d1e22faa1d8f3844379","tests/expand/project_replace/struct.expanded.rs":"c96f291b21df8a4db65f35c3b7ec55d7314c2bc244111df9cf1860cf260a4fda","tests/expand/project_replace/struct.rs":"c1a1cac6d2d3259822597db32d27f64828089066e9efe15191092f55d57764da","tests/expand/project_replace/tuple_struct.expanded.rs":"917fd567fe93e8ad9f8ccd299868f2b44c7e4872690e99fd57b1a274bef786ca","tests/expand/project_replace/tuple_struct.rs":"30e98fb94e669d9ff86245975e9dcadba2874704cea9260b749d500b983a9dac","tests/expand/pub/enum.expanded.rs":"e7fa2a7c0381adbea027f78f5478694589e659560c8fe473d65197f1f52f1a53","tests/expand/pub/enum.rs":"bc0302ebe94de598274ffdedf313046ad8614edc78aedbaf9d1484ffa1971e6d","tests/expand/pub/struct.expanded.rs":"0b136e09183b4621c16a81c1a0d001474341581a1f765e0291df740ba0b700c3","tests/expand/pub/struct.rs":"2cf0d78895b479ea288edcd72634de89a7181a78b8d43fcaa82b85110081b83e","tests/expand/pub/tuple_struct.expanded.rs":"3431437052f16a4a2d8a2e30555896e65b17584443effa5831cf95c48b8ca1b4","tests/expand/pub/tuple_struct.rs":"5cfc377bfadeb9c7e3e273d409647679b18b664fedde3a82f951254d325b7ff9","tests/expand/unsafe_unpin/enum.expanded.rs":"51334050e295aab594af37c3ebc3655456aeef40cde655e0e56a26d3cf6a1248","tests/expand/unsafe_unpin/enum.rs":"47ea2eee541741f2796ada21f6b3d191081c7cfad4ddfa626b3b6fbc4909f130","tests/expand/unsafe_unpin/struct.expanded.rs":"3183bff456d36f51e80ac5352510a2ed7543256b4da69109d56db3f298f87670","tests/expand/unsafe_unpin/struct.rs":"7681a3668d5b2ab662d85e10b50b13cd48ab08787fe8bd50f5667531693e6a7c","tests/expand/unsafe_unpin/tuple_struct.expanded.rs":"6e09b34d3542e97b4eb237008ed29794b3d39e3a0b0b0d09a07b2c326dc00110","tests/expand/unsafe_unpin/tuple_struct.rs":"5b19753b78aca8812ae227722d4ecd8370c608b43a2587e33b2638004aeb7240","tests/expandtest.rs":"887e324f6173b55f2ef70105aced9dedaf68888a7025f6375742dbc8640e9a86","tests/include/basic-safe-part.rs":"51f87b5a05dc5f4e97001ce960888fc60753bfe46f57915062ca582c9944e64c","tests/include/basic.rs":"79d34947b49deed8a4f95bddeedaf8f9ab9f5d9147a05f9d84c8e79442f22b34","tests/pin_project.rs":"7db61ed10d66eea3576b6b1e3027d6662bc4a053164cce8e7e80d7079bf65f2c","tests/pinned_drop.rs":"c412625c74e1f6a4a197e00b07d8bc2d9cc11b4e2f67313142f134de64d3106d","tests/proper_unpin.rs":"bf69749ed9853a107307fd84932ecf29d5dd24185a0f3901cefa816d0ae65725","tests/repr_packed.rs":"8654cc12e3501d7d44839433da0c16883a70c964aeb4e08f222b2de724473043","tests/run-pass/private_in_public-enum.rs":"3b3d0978078062c67bd61202a5698a6b444152fbbec78fe8b30536947e8452d7","tests/ui/cfg/cfg_attr-resolve.rs":"2f9c1ff41d6d84a4a20aaab0aecc9f5c009bf5322e6c12e5557d222d10a5c504","tests/ui/cfg/cfg_attr-resolve.stderr":"1466d86f1a51885844339682daafaceabfdb15897da5647408b57934ebd4e51d","tests/ui/cfg/cfg_attr-type-mismatch.rs":"688d5ac62ae16219ece34774f393ca5ac438e73aba69e210ee1b2a91ef0e63bd","tests/ui/cfg/cfg_attr-type-mismatch.stderr":"f17869843b04d75f8c7fd63933bd2af7702d30fdab5b03f03853b240ad0547ad","tests/ui/cfg/packed_sneaky-span-issue-1.rs":"1302f80e5f5a3d7654985322b040acc9b2f3f41187db554ea6c7bf1fcdb5e994","tests/ui/cfg/packed_sneaky-span-issue-1.stderr":"53f4de5d010606acea3ae83e8b03beb16012ed9b36745ad9387ac9ae2e497bf4","tests/ui/cfg/packed_sneaky-span-issue-2.rs":"4187b397a793c26a17618f701df7813156105e56b86a8ef2cff60685831098f0","tests/ui/cfg/packed_sneaky-span-issue-2.stderr":"2b02e29a3716717c3fc24ff7a047a1ca46328e23cd2ca73455e4770e0f2db47c","tests/ui/cfg/packed_sneaky.rs":"d0ebf11708599ef05f6c269a685ac2d002286b34efb38108377bb71b53c90b24","tests/ui/cfg/packed_sneaky.stderr":"7f0bb145155bb1a3259ca82ba49b1f14b709602e9077caabd39043f0dea7efbd","tests/ui/cfg/unsupported.rs":"25a2333b391b3648a94a5220e4531b975a71ba110547b8a15aeb4684e88b64ef","tests/ui/cfg/unsupported.stderr":"3d30bbc50ff91d2665402ea0c17e85e507843f6277d7764645f2dea37c882cdc","tests/ui/not_unpin/conflict-unpin.rs":"a45f6cedf95246e5f17664d5133fb0e310c6ccf19e2f251920c2821366b12496","tests/ui/not_unpin/conflict-unpin.stderr":"5fd23982b386252f07c630057d35b519b2f67a141da341753c83e1ab4184cb85","tests/ui/not_unpin/impl-unsafe-unpin.rs":"de91385fe84540275be6a1fdaf53748455fc322f61d73b9f963a7c89ea961672","tests/ui/not_unpin/impl-unsafe-unpin.stderr":"6760d853dbe2fda8a4fd7f337655fdf335af70f4de329ecb9f0d1c09a4d0b564","tests/ui/not_unpin/negative_impls_stable.rs":"24e5832f0bc12e9d54b34e0c292e978dfeab0cae405862dfcba721cc268ff709","tests/ui/not_unpin/negative_impls_stable.stderr":"78c9bffd0ebce4d7338cb85ab08b5a4c1ff8d418274c3bc82dfbfefb994a7a2b","tests/ui/pin_project/add-attr-to-struct.rs":"db0015ada1b2c6212792c6ba65d90b45b0f9d0fe842ac1f9bfa8fb4048e6279d","tests/ui/pin_project/add-attr-to-struct.stderr":"63231706008df27eb968a5785c9f76a639fcca25f09b756e5991014ff68a9cff","tests/ui/pin_project/add-pinned-field.rs":"297f48151a3c306f5426b1c9fbb8640fea77a9b512df4e68b84191322211eb9f","tests/ui/pin_project/add-pinned-field.stderr":"84d8eae1016a7a4e74bab8309738f5776ca2800e8235caf6810d180d6bb0f9c6","tests/ui/pin_project/conflict-drop.rs":"644cb486b1ee926b72c5a4d95e1d6f6a276e1e939532dd0b81728eacc3e1e96a","tests/ui/pin_project/conflict-drop.stderr":"fb2aa66d4dbd35557e748537715fdf288e1607c3794b7b9bc22a97a3054ad630","tests/ui/pin_project/conflict-unpin.rs":"5e50657e3b95734d745ef2b3cbc077bad42e917ea0212755c09769d249e3ce80","tests/ui/pin_project/conflict-unpin.stderr":"08d704ceb7d4149b331209babcc743f7028279518ea4ccb9954c59a448a1668c","tests/ui/pin_project/impl-unsafe-unpin.rs":"81907d29bb092464c9a26ad6428da907538eae2491583cccab311647414c8f1f","tests/ui/pin_project/impl-unsafe-unpin.stderr":"e012af86343d21e0e5910711a737c5232756cdd042bbf9eb3c492436e2c26957","tests/ui/pin_project/import_unnamed.rs":"602e39c1439500f7befd08489e3cdad1f9322b28622b5a2f65531ec9d6f4adf0","tests/ui/pin_project/import_unnamed.stderr":"5fde4e1cf325540c01c1344da37c04fcd6fb61c3df9cbdcd865ae8ac322d2307","tests/ui/pin_project/invalid.rs":"b04c0d2b9749974de01290d5b352c750185c7b4c89c3eccb013cf1c1cd336e85","tests/ui/pin_project/invalid.stderr":"28e802c455e972c4731b56e8bb6fcad379777e0ac1dead5aa39da80494fb1061","tests/ui/pin_project/negative_impls_stable.rs":"cf1d9529fff32b227d3aeda19ba47e7da43953c2a849dbacfb99ef669b2e87d6","tests/ui/pin_project/negative_impls_stable.stderr":"83f103cf40a699ef9f79ce3a30d4b2d3f8090560e9dcd3ca346868ea7c2765f7","tests/ui/pin_project/overlapping_unpin_struct.rs":"1f83380c9cee15a6e3eefeaa861d8c8fa034705846a02e39851edba71254de37","tests/ui/pin_project/overlapping_unpin_struct.stderr":"17b67bb8ce17dba28549ad3257af72f6d5987cc4beee1f3e51c85ba47e828246","tests/ui/pin_project/override-priv-mod.rs":"85285c506162ba59954c46d833c18a675040234bb51405509089bbfb6aee6eb2","tests/ui/pin_project/override-priv-mod.stderr":"60ada8c064ff7fab5c46be9eb763a374a07f0bcac1c7c7b0c68d7f8f21d101ed","tests/ui/pin_project/packed-enum.rs":"31f659bf1c18f394f0e863468342e0b03c8a2c806d7b404835bf9ec2aafc8d13","tests/ui/pin_project/packed-enum.stderr":"c5f0b743dd9a655d1888bae981e7c433797705ba54a1ad5abbd65ecd40dc8481","tests/ui/pin_project/packed-name-value.rs":"7ca8e5111d80f9a502ff5027259dd6031ba8db2c02ccbb5c4855c01e243a18fc","tests/ui/pin_project/packed-name-value.stderr":"0c4eeca42446f57010ad7ce77023163ea21e00d290936af90d27799dadab7da7","tests/ui/pin_project/packed.rs":"a9cc913f22a086ab3d984d0bae3d64f66a0742c031ecd27afae3d0af01e47fbb","tests/ui/pin_project/packed.stderr":"8db14779104063fda47188de09fe3b217984e0de46a31e9a2b9661d4dfffe241","tests/ui/pin_project/packed_sneaky-1.rs":"88d087ce802e115baca261a6c8b451643b3bf78000869361d9f56d3df98b8925","tests/ui/pin_project/packed_sneaky-1.stderr":"729fb8994386f45863d8e15c20afb0dd7c78e37fb1efb939d2b3fc8ab2e97eca","tests/ui/pin_project/packed_sneaky-2.rs":"c9a520247b04a6d347ce604e3b52da6c188636c8c5899a64ea1c2c6630da50c0","tests/ui/pin_project/packed_sneaky-2.stderr":"f8f93f714112a521cace50a353e9386eb76c5493d46be2048379426f149044a6","tests/ui/pin_project/packed_sneaky-3.rs":"e476daab3f07bac21edc5f9e4f367a0dc4a8766c77fe59425284db5a15d5cb52","tests/ui/pin_project/packed_sneaky-3.stderr":"43f3e3af97c8a72943f0dfa26b28c177f59791188b2d04dc3e8e1d044bc8b1dc","tests/ui/pin_project/packed_sneaky-4.rs":"ee000562021dc0b839cd4d2ab897934f6bef732a99fd5e97560612e99cf20e1e","tests/ui/pin_project/packed_sneaky-4.stderr":"f50bd26205f3539951deb4d99b47a73f9162ae68c6d510ea8bf0ccc9cc2ceae4","tests/ui/pin_project/project_replace_unsized.rs":"638e36811ca26aa7f7dcdc5323dbe3a78827802d25e8174c3f4b680ac8f3410b","tests/ui/pin_project/project_replace_unsized.stderr":"1b9a3101e262e187275200d2ae6b7f20d89ff0a7d1a7e3c604c5a6b776c7a651","tests/ui/pin_project/project_replace_unsized_fn_params.rs":"02a50b50e8b57fedcebdb7d8fe8c002a622d249617ce5b85ca1c353ec0b681f9","tests/ui/pin_project/project_replace_unsized_fn_params.stderr":"3790ae6c9e13acb413ef9166d47f1867fcad0c393653d0b4cfd05a2e8818fe7b","tests/ui/pin_project/remove-attr-from-field.rs":"de9ad40c86897229931550607c87a5a075f9745ea5ece4e83fc77f153eb5fb85","tests/ui/pin_project/remove-attr-from-field.stderr":"b609e2a34041712a4990dddf2482df63128ae25625ef2be3715265f6c3aff542","tests/ui/pin_project/remove-attr-from-struct.rs":"188987520e0e4657a46d0db704067f306b1487b2d9fa6cd849ea3a8020f17f1c","tests/ui/pin_project/remove-attr-from-struct.stderr":"db9a74c2fd6387d8bdd37df71d321481fa7f34c4eabae814649e9945331b8aac","tests/ui/pin_project/safe_packed_borrows.rs":"b73f4f02e1cd674e65621cc3671ae15d23eb6f6952f9c5a1244c18d5fcbd8a3d","tests/ui/pin_project/safe_packed_borrows.stderr":"0ea1e14796d35dfe66738d1b781b81eb4dc9db83f3e1bf437375ea54665c61ac","tests/ui/pin_project/unaligned_references.rs":"528d0b2a0fcbe3506bfeaa4d42828bd406bd3f268270ff81435ff4cf2fff6d89","tests/ui/pin_project/unaligned_references.stderr":"f6b650b67d45743a8d533643af1bac1454e6fdf22363a9dd0dc8e9d86c199252","tests/ui/pin_project/unpin_sneaky.rs":"7e2fd5647204f1161d7aebc93033f1b807727ebbf110698bd780243a7042e83a","tests/ui/pin_project/unpin_sneaky.stderr":"b2d75a0b4618762ae4843b1aa98448639a643a6bf7ba31ddd65b0865f31989ad","tests/ui/pin_project/visibility.rs":"c9676fe843e73ad93744a6480f1d81e7a2ce66d84b06380440a2e71dfe2ffa94","tests/ui/pin_project/visibility.stderr":"7122d0879ee74ae4d36956bdc2f4a13250bac0fbd2ddc0f7aaf4432bf758a55e","tests/ui/pinned_drop/call-drop-inner.rs":"7c06c75a3a553475f91f485d74c6e00803eabf5b0e6a3e685f76e24140d55b1e","tests/ui/pinned_drop/call-drop-inner.stderr":"b75c65d58d37f2abd8a38982ce18f49453498d526cb90fd66e74c2bb4761b089","tests/ui/pinned_drop/conditional-drop-impl.rs":"e60d801f02471fe24e5676bb22e057ebcc0a93efea4a89cb2b2ce111759e227b","tests/ui/pinned_drop/conditional-drop-impl.stderr":"ef4beab33c24b08b74e0196ef43fbf5c39101adb17e61aea51cc3b2318c7e2e0","tests/ui/pinned_drop/forget-pinned-drop-impl.rs":"2549e790e07a7b0f5581264ba697fc7a246c1656ed3a4721f9ee63c98790ba6a","tests/ui/pinned_drop/forget-pinned-drop-impl.stderr":"53d1d9fd9bc6240eecba60b4272ad7ee8dcbbd9c6953574e06e0f50ee99d0c2a","tests/ui/pinned_drop/invalid-self.rs":"a54a4efe1d4d9ac21158b683d72c6d442d959d13ec932c4cb7ed2fdb7f51e073","tests/ui/pinned_drop/invalid-self.stderr":"608b54edf7b4de985a1d9b85941c3f3b40ef4ad31a72563c7b85e886996ac2f0","tests/ui/pinned_drop/invalid.rs":"b90d2b05ea80ff4c029012c30b882879012e4c06abbe81ff3cf805de7339cceb","tests/ui/pinned_drop/invalid.stderr":"e581390b813b796e2dfc6d50109ce44d3a189dfc64be142488518c86392c5f01","tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs":"2290abc6c04c9a43f0ae373da8467312e9ebde49ac4494dc4b25d3d9ec77195f","tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr":"47134930e65e57fef3b3090c7395f549a2f4fd359b7848678a31e40cc9990f39","tests/ui/pinned_drop/self.rs":"c9a62b391a2dbcaee18b97b16ba4ba5241c74524e6556373034be030ddcbc13c","tests/ui/pinned_drop/self.stderr":"4aca85c908795d8e43715b69c2067c6a7c716d0f6d7cf007b861c1be85b9b84f","tests/ui/pinned_drop/unsafe-call.rs":"37732ece3b744454ed3b9ff3ed1e03bd98f8b33be4cf1fff593cf7a8d3a142d0","tests/ui/pinned_drop/unsafe-call.stderr":"967c435a5e71ee5272913ea2f2ac203c8e56d5ae94060337d211d90815235d64","tests/ui/unsafe_unpin/conflict-unpin.rs":"e87731cde1aeed790de905a56535bc764dc926b26b2d3984b0270d93b005caee","tests/ui/unsafe_unpin/conflict-unpin.stderr":"13f98a5f0fd81d7ff66c2e9b83be39be95c150113966cdf84ae3ab01892c6adc","tests/ui/unsafe_unpin/negative_impls_stable.rs":"1ee461bd284039ced8f531b20fe3c13d461c272800e9a2d352451ea3fde3e478","tests/ui/unsafe_unpin/negative_impls_stable.stderr":"33b4c7aa12ef28078c2a62bf1a75756f5f4b579e0e1f991ee430d26b838107e3","tests/ui/unstable-features/README.md":"a6af0dbea166dafd465f3bd86f330b1d1ee512aa8ca61a7fcebaca5fdd19a891","tests/ui/unstable-features/marker_trait_attr-feature-gate.rs":"f8d3410010b8c837b29ed5a6b7487dabddd5b34c123f8d8cfa59afb15528e2ae","tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr":"835357866988caa6085f8eec88d708eb8b403fafd7a8c248b2d3cb97fba5fd76","tests/ui/unstable-features/marker_trait_attr.rs":"1231237edbe70eddc1c3948dd96a02cf6368fd72dce1ad30789374c098662959","tests/ui/unstable-features/marker_trait_attr.stderr":"1c76113541ed4327a29ac57553714f636a58308a69e7e68f4e630de402e55402","tests/ui/unstable-features/negative_impls.rs":"747ffa67c50f6821dadcdea54e1b04b3e2944c3e5752ae31b3e226bdcb478b0c","tests/ui/unstable-features/negative_impls.stderr":"7e52a83bacaed474c16d09bc896958300acc95dde167cb13cc93a52b0588cb4c","tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs":"14568450d230a85785c1c1de6c936fe07879be16143f4b300e8a218230b41a86","tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr":"e596a478f7561d97e080ed3cc4201c472c73a8479ebdc609540bba2a84e7e024","tests/ui/unstable-features/overlapping_marker_traits.rs":"08aac94bfe9f9ea14878fbc3db3b8825ba7619efed0dd4a1969085ac4caf86b0","tests/ui/unstable-features/overlapping_marker_traits.stderr":"48e4881853aac7a89ac37be90a5b895a749e76ce5a67db4396233665bbbce393","tests/ui/unstable-features/trivial_bounds-feature-gate.rs":"1fb507511c983157ca807b12de7ea734e3573cde40e4f8a532600aa3e5172482","tests/ui/unstable-features/trivial_bounds-feature-gate.stderr":"b70788fc7d9b07e4ab2c30a7e3eff5076c00ef1c5c89f673ffc3fb5abc1c426d","tests/ui/unstable-features/trivial_bounds.rs":"534c8e6940bc2c0b9e646fd0d7092571a89f373d26cc6d812e49878af40578df","tests/ui/unstable-features/trivial_bounds.stderr":"88d63bd43a11d4f07e7b6fc9815c6c12e0da1dd732db4e0830619a510ab5c81e","tests/unsafe_unpin.rs":"b6ff41006c5ea40a41be7ac9ba58d52153249f7576d533dc938c115a6f4101b3"}}
\ No newline at end of file
diff --git a/crates/pin-project/.cargo-checksum.json b/crates/pin-project/.cargo-checksum.json
index e4fb1ec..3cc3cb1 100644
--- a/crates/pin-project/.cargo-checksum.json
+++ b/crates/pin-project/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"01d47269fdc1c641ff4311ed92d7358741dadf80bb39f2ba89db27f5d641d2f9","Cargo.lock":"e49130f610bf3de0c8498a2e6aef6fc40cb4b8b914d618d9fe27e3368fd20514","Cargo.toml":"37234c90c423f08c93dcfdf1df92461a0158655e8e3a022664e4668396465df3","LICENSE-APACHE":"0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"881afdc0098d23c7f4959d31a1f48177bb81d74625a03e8decfa57451629d54c","examples/README.md":"e04e4ad8c5518aaa839b1255f9aee47877ae223053f32d83db797f607b9422b6","examples/enum-default-expanded.rs":"92414c9b48f3e280ba10994a426629da799d125d764d1b3857676b21cb42dbbd","examples/enum-default.rs":"01e1d285ffbb87aa70950c0ec184b395f7faf0667a1fc874b4de509e3e3c8d5c","examples/not_unpin-expanded.rs":"19e944c6159b6a57a19a653adb7a30d27ddc098351bd311a91ada586eb8e6ee7","examples/not_unpin.rs":"3e43439c521089f7f58a411fb823827433c7476a0b41aecd26a6ce5f0c99e405","examples/pinned_drop-expanded.rs":"6b2bb25bcb3404d1b03276be4ae3f6c768a98b5e6675a33b24bf57bff9a9cfaa","examples/pinned_drop.rs":"8913e9b0b7851d470c3f15e40930af16c79f5ee8b4a947cac8235361b427db30","examples/project_replace-expanded.rs":"0b5adc4f83b3b56febc1a721f334b5bea26ec4aea407f35f4cce5cdde76ddd30","examples/project_replace.rs":"352d10d7a2db3de0101faedd04d69c24b9bb5021c768199a379c233886a3881c","examples/struct-default-expanded.rs":"2e290064aa48e001625f3badce5fda7e2fa7a8ce613cbe1788892b1230885895","examples/struct-default.rs":"eb60ea5412e83ac9eba96794b31772afe0798bef304b26bff65b6845638bb729","examples/unsafe_unpin-expanded.rs":"71d13e6bb284642d81520fce7adf5c1e9510451295c1806a3703dae481e64ee3","examples/unsafe_unpin.rs":"7da585f423999dcbe03289a72b14a29fed41a45a774de1af2fe93cb20aa8d426","src/lib.rs":"72c7bba16532193142134e4307bf63bfbb3b9e76c76c26424cbe2b58605257c3","tests/auxiliary/mod.rs":"7e263e987e09b77e384f734384a00a71c5b70230bb1b5376446ef003a8da9372","tests/cfg.rs":"de3ad3baf0715163d7b941bc988d67219e9c4dfb4c9068f1c60f5214649fa6ee","tests/compiletest.rs":"cd3977f3adc05369f825306218d8511289ef1398351c89f0f6aef96b3c128203","tests/drop_order.rs":"c099c11d236851eb4f27d4c14c1c19d61b32a236e5b2ce032a65265fccc25ba1","tests/expand/default/enum.expanded.rs":"e1ed1186d973286860ebc6898e46a2cd97166a13ad17c68a8a50ddfd4702f3ae","tests/expand/default/enum.rs":"e23fac8939fd21c96afaf4b10613a1b8fbfff655f76128902c2cbe8577c13d08","tests/expand/default/struct.expanded.rs":"a3577d962a10325dcaaf2eccb5e589013266553260cd8bd923264c022ddcfe41","tests/expand/default/struct.rs":"a0c95b1441b93b3ef346a47dc1e3d8113a6e1df90e577464d3f12a4e50654c4f","tests/expand/default/tuple_struct.expanded.rs":"c7f915c09ba8d268745618e68097a2040d46228f2b05c1740354805a9f6b455d","tests/expand/default/tuple_struct.rs":"1132f9700ef58079666f25173076a009c23c4f5e0ad80af80687a2e5958db6e9","tests/expand/multifields/enum.expanded.rs":"76ffa1ca4213228c43a2625e080d07aa04a992f6789052b646c7b9c639879f50","tests/expand/multifields/enum.rs":"a909ee4c44aef0d6959d46343a2927033acb665f6051f37e088367778af90c78","tests/expand/multifields/struct.expanded.rs":"3a57d0b3573841e914fbfe8ffedc600c57dccc8bc8f1d42daa8e341313adbe06","tests/expand/multifields/struct.rs":"9f99e89352d212e3d4ed9cd6be2741ea13658267de6b557bdc8302c4902c72a9","tests/expand/multifields/tuple_struct.expanded.rs":"7a65d27d0083168a7aa392463d2ea472fbc933a764ef93368edb304c5dbd486d","tests/expand/multifields/tuple_struct.rs":"9ec0b313d829717bf7d3484428136a3012a996dbd97d3ecc8a7b0ba682e5db0b","tests/expand/naming/enum-all.expanded.rs":"84932097a0c023a65337f57dbd18e5fda50a01cf213ed2f7dd2336e65e9c22d0","tests/expand/naming/enum-all.rs":"c46d8ff27879a26afb31d71df8ab69a871b2fd509ba90668cffaadafb7a54940","tests/expand/naming/enum-mut.expanded.rs":"5ff87796fbe96d12ddd13667796dc40f720147a27af0995c337810d25dcc0da7","tests/expand/naming/enum-mut.rs":"9df4e0e1fd8bec8ab471ef419be312c8e15158c7017e964a8337c3108f6c601b","tests/expand/naming/enum-none.expanded.rs":"28c0667e91a8c65fdc4fe1d80fb67398f95f47af19066e7a34ea8eb799497200","tests/expand/naming/enum-none.rs":"487f9469127b9375f53d6242062455eac38ccdaa30c168ed2ea755ad7287f02f","tests/expand/naming/enum-own.expanded.rs":"11668391ec68656d1c3a3316a0ad93853a0e8ea64d5ce0f2de205c66d51c14c4","tests/expand/naming/enum-own.rs":"5bb51375842f2956cceb685511cc34a099665439310f01a5cc02a1d4264897a6","tests/expand/naming/enum-ref.expanded.rs":"fc9527bcbb7707cf699d1721306bfd92a0c8c4f158b1ec5f5ef1618c6f5e0fc8","tests/expand/naming/enum-ref.rs":"3764e8471702f968e79f633a1a471974b7a726bcc09ce4443e0bce65194f8930","tests/expand/naming/struct-all.expanded.rs":"7f65e644aaf801570c8fac54595275d102391f4007eccb4c248721970b2b8d5a","tests/expand/naming/struct-all.rs":"a8d70a576ff5325b848d14dc8083d0967e1b3b4486fd061281484b95adade136","tests/expand/naming/struct-mut.expanded.rs":"1bd55f7e1b0218b4094db6ecbed0abfff7937281cebc0f2cad620abaa291b7a1","tests/expand/naming/struct-mut.rs":"e793dc13594ba2836881ab2580a73d73c40299af94e24a442f704e76552ce7fb","tests/expand/naming/struct-none.expanded.rs":"a3577d962a10325dcaaf2eccb5e589013266553260cd8bd923264c022ddcfe41","tests/expand/naming/struct-none.rs":"a0c95b1441b93b3ef346a47dc1e3d8113a6e1df90e577464d3f12a4e50654c4f","tests/expand/naming/struct-own.expanded.rs":"6e4c8a222fcc9d3dc10991c8033158c8a7f2a399146b9e6a1e0de7f15106b965","tests/expand/naming/struct-own.rs":"caa714f00757980ef60640a90cba289886293320524395a753b876e3050018e1","tests/expand/naming/struct-ref.expanded.rs":"96f39a4cfdedc85c8d43c9700bdc1ff6880024754215b513741071edd30ef0a0","tests/expand/naming/struct-ref.rs":"f0ce9bb2ebb0c501cce8eaa24c2657a87e58109d5bde8319e7b5d3c0bae4ad86","tests/expand/naming/tuple_struct-all.expanded.rs":"6bb2d8e8239d849836031bc7d8c6005e4f9c5deccadabb9bf872f7bdd9d814ae","tests/expand/naming/tuple_struct-all.rs":"a77e3d5d2409f9016bb8df7ca0387fa512d3383833c9591e64435b689d3710c7","tests/expand/naming/tuple_struct-mut.expanded.rs":"088257a925b4318237680f3fe4b5f1e259cbe29e8080aa856b3ba6de204eca2b","tests/expand/naming/tuple_struct-mut.rs":"06b87b86b6bed07ddfb96067772e9aaf9c1db2d3f871e248658593bd22c4a17c","tests/expand/naming/tuple_struct-none.expanded.rs":"c7f915c09ba8d268745618e68097a2040d46228f2b05c1740354805a9f6b455d","tests/expand/naming/tuple_struct-none.rs":"1132f9700ef58079666f25173076a009c23c4f5e0ad80af80687a2e5958db6e9","tests/expand/naming/tuple_struct-own.expanded.rs":"855271137c5a3d218eb466b3619a2216b4e54eacf2fba46dd530fbd3c07a462c","tests/expand/naming/tuple_struct-own.rs":"89ccd509482a95e74733c767b34f5d6bc8d4128cedc911834aa28aef08e7dc8e","tests/expand/naming/tuple_struct-ref.expanded.rs":"da280916ff79c15ab8173f723f89f494fad161f06e1ef0cede45bdecc1279385","tests/expand/naming/tuple_struct-ref.rs":"2718b96b3e2e6cdef7f8293719d8914e3fd81e92d272b90f019863fa19584a29","tests/expand/not_unpin/enum.expanded.rs":"4145ee18ebbd535d0e4d2b39d8b2f2a3ffcf9d45505aba6ff8d5819f61fca6ac","tests/expand/not_unpin/enum.rs":"60134857b6c3c2aca42e9eb2b4c6dbb9149701f115d0de30a2477395ce54fdfa","tests/expand/not_unpin/struct.expanded.rs":"ccd00941a0b0c83e39a3ea762f99d6471a06625ceecff0d3c3b5b44719a1a312","tests/expand/not_unpin/struct.rs":"bf7468f2b42284897648e2545cf0da92a576a748cd5b75893b85f03eb2a52ba4","tests/expand/not_unpin/tuple_struct.expanded.rs":"7c02f6e799f50fe63911c90302d2e4158c6e24f8f6a2fa113f467fac272bf727","tests/expand/not_unpin/tuple_struct.rs":"a3e2c2c484699087a570b1b247ce21bc40203fad889e7c0e9737d03c7ca4bd4e","tests/expand/pinned_drop/enum.expanded.rs":"ad060ff23ddff563859664e7b6b5073fc641b2925c7af1ccd5fdd4a4cc873c83","tests/expand/pinned_drop/enum.rs":"66f98ea8a567dcdeb58838df68fcba3594aea8a959826ff54fb4493fe06c4086","tests/expand/pinned_drop/struct.expanded.rs":"cacdc72e8905e29d8e75ac83771fa3834e0db4b075103f9675849bdc5a9f093e","tests/expand/pinned_drop/struct.rs":"44321ea6b494149e416d413185c2d23ed9d96982d1c4f378381b18e969abc16b","tests/expand/pinned_drop/tuple_struct.expanded.rs":"57d4e23e39c844501ceb77c66ac900f0aeb93b9002a8db565a95060152aceae8","tests/expand/pinned_drop/tuple_struct.rs":"e0532400f0bf77be198928c120e9efd9fd1b5d34f5fc9c902eb3b778c412a83d","tests/expand/project_replace/enum.expanded.rs":"1101df9623f1e39ee18c5680b1984782cbece4057b22a04240913a3a188a34b5","tests/expand/project_replace/enum.rs":"ce2f5ddff8efd37b1b0028172fde7ee7fba4eff7622c8747cd61591d81c0f503","tests/expand/project_replace/struct.expanded.rs":"553434b0f98d837d2eda601cb4dd625a8542051e9dd315ffa326daf668d2c01b","tests/expand/project_replace/struct.rs":"f8c2915e03b557b9f11a6ea63c971cfb19b09e3a9916ab304f0ce62626e35895","tests/expand/project_replace/tuple_struct.expanded.rs":"926022463a98ab6b15d6db0cf700944b91b18334c893257a4e8a8b3f4bc7ea71","tests/expand/project_replace/tuple_struct.rs":"8ca1cd1d5feadb23999d8f4e7307f91d1932fff7e8d38889d3889d6ba4d43430","tests/expand/pub/enum.expanded.rs":"3e806cc3d1425838145cddd2ea1eaca5bf9c681a48927fa05cf78775e866a94a","tests/expand/pub/enum.rs":"64ca05d529227157ba4cdce1c526d67d15f06108fd71f5955749d236c002471f","tests/expand/pub/struct.expanded.rs":"d3bf3689402229b59e4a68f87b2264773a5b2c2b13acddfe4d000781d571a052","tests/expand/pub/struct.rs":"379b8c4c01a3fc2aa3f020578a6dd836d455f4c48604e1dad91f631146b9e6ec","tests/expand/pub/tuple_struct.expanded.rs":"89f22d0407f72c0c80984c89b6fae023db6725dac7a733342246c899fb923877","tests/expand/pub/tuple_struct.rs":"77cc812220e956a2255ef129dec3b16d6973b7e8b1bc02a6f65bd9fa56040564","tests/expand/unsafe_unpin/enum.expanded.rs":"501c6b1ce279f90e305bffbca262c2912f6b112326e0a913df2c31530340310f","tests/expand/unsafe_unpin/enum.rs":"00fad3fed0f7d2d0eae56020726818ab91895d6eaed7c4c7cc5d497b5efa7cfd","tests/expand/unsafe_unpin/struct.expanded.rs":"9f1b3757695b80cda7a8c812dc546ebfa60a253251b474f7c209d034e248fcc4","tests/expand/unsafe_unpin/struct.rs":"a41bed68966abb874f31ad02a860e15a2714e2e459ef73475a908e71141e96f0","tests/expand/unsafe_unpin/tuple_struct.expanded.rs":"734051c9dbaec8e4ccdc37dd8922eb3223dc30d04c58fb4f6ae4514a8a26081d","tests/expand/unsafe_unpin/tuple_struct.rs":"bddd36be1795be2f445d7baec269ad8a5a2647b95af7f0b130331ab7a3c64baf","tests/expandtest.rs":"66bd80992a1696994ec2d14c3edc36350a0cb896d8081f1c0f8893ebeed72d03","tests/include/basic-safe-part.rs":"6fb5accb7476f85233ef919eedaff83c30015e186414589db6e44d614016ad3e","tests/include/basic.rs":"e030edc2573d8b365e9542e431f0c0af6d5ecf6fe9d84f13c7a8401f4c922895","tests/lint.rs":"ce200abc2b1dff5d72eacdabacd49b6ffe8ddfa8796eec82e69b464b1e449484","tests/pin_project.rs":"b795fef5a8f997505979a5c13be8b0be4b934a821c282d344b589efe55ab10d9","tests/pinned_drop.rs":"4061cb2ead2191ec6cf8acde51c4e6758762170bc59e58afa7731c721bf910f8","tests/proper_unpin.rs":"435b9c7243ab896c2546c1e402276e93ef38cd93de50cc7369f486fe22698a02","tests/repr_packed.rs":"f54a553a579dbce7f80f666f0228ec2dd2a80282ac5da5f715bb122e7e17712e","tests/ui/cfg/cfg_attr-resolve.rs":"bb924ea9ceb6579e80774ef7fee1bb99ae08efc7d909e8d1edff40c3c1adaa7f","tests/ui/cfg/cfg_attr-resolve.stderr":"720f806ac06d598753a6a90c95b942410413d8860f60a7251fbde3e1fa575934","tests/ui/cfg/cfg_attr-type-mismatch.rs":"25e8337f9fd5533799dd990df6e016d18e2a00468de3386aa7d45aa98e39a0f9","tests/ui/cfg/cfg_attr-type-mismatch.stderr":"5cde5c01d5c602c4200a1add15642d72946c5dcc0046535c207bc7a475e74913","tests/ui/cfg/packed_sneaky-span-issue-1.rs":"768762cf1831b9b09868404d9d7fd394ed30fb4495bd8388034ee9bf3823d11b","tests/ui/cfg/packed_sneaky-span-issue-1.stderr":"235ad4c1c784e9116c480502e813a0f0254f3b0e624c89712bafa56d43eaa2c4","tests/ui/cfg/packed_sneaky-span-issue-2.rs":"229d91b2531ace7c1d644125b77ee044fc639e9b981aaede5fda6f5e38154a4d","tests/ui/cfg/packed_sneaky-span-issue-2.stderr":"dae8adcb5b6ac12be55da9f4d6d04c1a790907dc5ee23a16d86a2a370daf596a","tests/ui/cfg/packed_sneaky.rs":"785e77f597bfc0cdb7bebc040cf11b17b1e2aa727b0fc369b7fe073f8441cad0","tests/ui/cfg/packed_sneaky.stderr":"1674d0f108f91cc21f9009338bde1b343b65a68d81d6bb3b6aecd919846cc6e0","tests/ui/cfg/unsupported.rs":"45d6eddef59e67dfca3733450249632dd8135283cedafa663e7bfa2b232ca13e","tests/ui/cfg/unsupported.stderr":"72421d6c14eb7d4f7af7eea1e0701343df691985d1d58325e91412e749705d3f","tests/ui/not_unpin/conflict-unpin.rs":"5709b68bbf26c0b2b87ee7a0bbf83ae9e4f1bacd2266114114b4dcb8706d0080","tests/ui/not_unpin/conflict-unpin.stderr":"b2357ec463ea18ae82474218b2281e539890a74ed1e4263a2f1fa98098e217fc","tests/ui/not_unpin/impl-unsafe-unpin.rs":"088374540354c4052a2daf2e97cdf49fc54287e0d943bf34bbb70298d62e8c9b","tests/ui/not_unpin/impl-unsafe-unpin.stderr":"3bb3f4b6b1ff747309f5ea494a18f1b9eb7610b89b051750282e1fba1633310c","tests/ui/pin_project/add-attr-to-struct.rs":"640b49214c7f3f2eae027165bad32c12cb63b00735b6ca3eb2037a4b69a8ad19","tests/ui/pin_project/add-attr-to-struct.stderr":"4f5eba0ddf8f6c20e76a0624095233ced75b9a713c6451fba0c7a37e80028dee","tests/ui/pin_project/add-pinned-field.rs":"791df5b427ba412fb25836569963e6a03ccacea9fcefa4bf3f789ee4de90762d","tests/ui/pin_project/add-pinned-field.stderr":"6af54b6a15b5d6c7cfd23d93cd514477d33f7775cb7dffadb45d249d343025ad","tests/ui/pin_project/conflict-drop.rs":"c97bedbed751436994fec33003dca06761cc2cbf9fcc832c120321aa8fc0be7b","tests/ui/pin_project/conflict-drop.stderr":"965dc2be7b88493b3df0fb61f9d9e65d0480ded5ab76dffe30dc517877547095","tests/ui/pin_project/conflict-unpin.rs":"9e3b06ce53d97ebd79620d729b525fac1c87c67ed44b91d05dd4c3d48be455e3","tests/ui/pin_project/conflict-unpin.stderr":"77ae4396ceb42548f52a84fb0e08f4d66eff81a2e9bbcfe11d59aa4ffff73c04","tests/ui/pin_project/impl-unsafe-unpin.rs":"d24d630abd82e08aea529d358bf998011ead0e939c82dca410160764fc24e06b","tests/ui/pin_project/impl-unsafe-unpin.stderr":"d96230802cc11ec32b6c31c86023972fa7038390da1e93e81bae4770dfd1cfd2","tests/ui/pin_project/import_unnamed.rs":"09fb23d22c044321f9bf3a526d16d694916adb7b5defeb6a353cdaff46df7efb","tests/ui/pin_project/import_unnamed.stderr":"2358b70ea4b4c797816cf3b47920f72e0eb7ad0ff11d9d7e8f9f0faed27cbd93","tests/ui/pin_project/invalid.rs":"ac237cc99cff8a273d84e87d26e4640a53afdfb7a7961b6dc8bfa53dd5d88aa5","tests/ui/pin_project/invalid.stderr":"46a9c8a8469c0be53b09d24062f06aff4d21c23541be2d8055a0c76f2180b277","tests/ui/pin_project/overlapping_unpin_struct.rs":"3f459dda0c01e36f989a1413b2a43f4d95f9ae2524653b61f0561acff28ad9a6","tests/ui/pin_project/overlapping_unpin_struct.stderr":"e89b9cfcdb9a8cf0e1042bf8d3d4a98d2cdecfe2a966f14ef62c61b0c82a5403","tests/ui/pin_project/override-priv-mod.rs":"b9f163f5ab76735bbd8406b46f7407929845a34a23e2892a935a178612ec5875","tests/ui/pin_project/override-priv-mod.stderr":"effec97131efb6628e8bbaf74c37fe5d7f9a735b4468e1d6e585bdd693ae98ed","tests/ui/pin_project/packed-enum.rs":"7784ff49119daa5ae562f0fa84fdf4e65fe8abaf62ecff7d2ead184748e16b9b","tests/ui/pin_project/packed-enum.stderr":"3c710e899c68e5db4707405546c9c81b819ba6d3bdb83d3578e34c1254fbf1e3","tests/ui/pin_project/packed-name-value.rs":"64cbf4ef3c01709d302f91d98e92c980f2858b14ddaf047646c4de57707541b1","tests/ui/pin_project/packed-name-value.stderr":"f8beabf2de5cdd913903eed642d886841ad14a719f562769f525c79a5df2fc76","tests/ui/pin_project/packed.rs":"7a66b7c2ca8253cfd6774a339d74400966e85c73ef59f54ad66d9f1b02ea5db7","tests/ui/pin_project/packed.stderr":"2b9e7a0818e21f958536738035452d760b9fbd3784d2034b1732d2c8d4b85812","tests/ui/pin_project/packed_sneaky-1.rs":"390dd0ad59668f80a6e86baed1015c02a429cecc92388f18c8deffb500508415","tests/ui/pin_project/packed_sneaky-1.stderr":"f01979f02e3a0956fc191550cfe364ea11a14afb15cc252e63127ab72f99f640","tests/ui/pin_project/packed_sneaky-2.rs":"f1601aa4f642ed4aaaab2dd2e0328b7af145be9a3a7460ad36339b47b4d7ce14","tests/ui/pin_project/packed_sneaky-2.stderr":"5df9f0c90032016856c4797f07c8e8c172ed0ded2c7078c404f80b5be675d33a","tests/ui/pin_project/packed_sneaky-3.rs":"d9ee3366b5e3849f3ec0d0bd62d365cff0c6e8f0eb3434d70fb84e62a1976eb2","tests/ui/pin_project/packed_sneaky-3.stderr":"596b17b96189fd8f38bf5c7f5ef5e01e54c1d4cc459a15a519687e61e4edca34","tests/ui/pin_project/packed_sneaky-4.rs":"5636ae9a7fc54ea6981897adc1e31afb5eaa1c1db6244f8357e79cf922e6f7a8","tests/ui/pin_project/packed_sneaky-4.stderr":"3aee1184b5fa175a6b5cdb1084bf170c27d0bfc8c564ae2847c3f23b9de09a6f","tests/ui/pin_project/private_in_public-enum.rs":"bb79b1bf0328bf652e561b4006c31f6a2d0cbe598912f264c4024a1b381d5400","tests/ui/pin_project/private_in_public-enum.stderr":"d951fb2b9b80ff07848723439da190cb91f776fbef0e27db025dcd24186f80aa","tests/ui/pin_project/project_replace_unsized.rs":"7c35e6c8ebf8337b6abf6a7fa7106bd519cebbe32d3f33b8865fa251820e0e5a","tests/ui/pin_project/project_replace_unsized.stderr":"7d3be0208cbec2d86833192579b8d51d876cd9461dc5e20e988767e9696d4e28","tests/ui/pin_project/project_replace_unsized_fn_params.rs":"db7c72e96119f245535627b887c1289b064dd657fbb524c0f6635287033b85e2","tests/ui/pin_project/project_replace_unsized_fn_params.stderr":"17095141eb2647a8484c429a5d3348ed7a42b35ff965e6dd73eb662ae8e6d868","tests/ui/pin_project/remove-attr-from-field.rs":"9faac7ca8220c7069b1a7b2f43420efd3d73377f0ac0558ef67cd5664a9c54c1","tests/ui/pin_project/remove-attr-from-field.stderr":"424cd345a7b4a0ec328c58f36eb3b31a88e6c1789a0226bd8d6c4c50fecc39a2","tests/ui/pin_project/remove-attr-from-struct.rs":"f47a6cfbb5a4fa5bb233c0427be255110749621bed7cfa7a8f45e80451aa8615","tests/ui/pin_project/remove-attr-from-struct.stderr":"2c1d7d214096afe2140921f56cb16e54110bec7ae77ee81726de94ec1bdf50a0","tests/ui/pin_project/safe_packed_borrows.rs":"2f398fe1f16a3fe5a5123f49705f7eb6157d47b8adabb8b80fad88bd61efc37c","tests/ui/pin_project/safe_packed_borrows.stderr":"c508f901bb9f1cc4055edb9aa6bbd5f333297f611d9df18acbc22076cd2f8abf","tests/ui/pin_project/unaligned_references.rs":"a01c34657405c717b0e2999460bd3332e39e6f8f715465f5fb9d517c0900f172","tests/ui/pin_project/unaligned_references.stderr":"cfa0f3500b7edb75eff2c6a87164c61531ed117aca61912bdecc45ba0eeff23c","tests/ui/pin_project/unpin_sneaky.rs":"8d49b2dcb1695b4ae26669de58dd6dc73bd836f3cd836078d6be2a0ac2cc56f3","tests/ui/pin_project/unpin_sneaky.stderr":"b31b54cb2be5a9cecd50c4489847ec83bb401daa63c2f5b6ebd4080efc95bd67","tests/ui/pin_project/visibility.rs":"4345aa1fd270a99e631510097ab7fea51aa7cbe15e155cf19f406c63735e3daa","tests/ui/pin_project/visibility.stderr":"9d56584accaad71c65e38823b0200b8ee229c027558f4461168c869ac53655b2","tests/ui/pinned_drop/call-drop-inner.rs":"a155a5b4cf7434ad6c2c4f217beb37b57edae74c5ae809627a50ea8d6ab5da50","tests/ui/pinned_drop/call-drop-inner.stderr":"ab9eb3a1924782a2e4c37e379fc5075aae1262ddd3fab7ebff18ac8d267be645","tests/ui/pinned_drop/conditional-drop-impl.rs":"5d4c147d48d87a306fa875e033c4962ecd9d7666e6859da5b22a34fd552f0fc6","tests/ui/pinned_drop/conditional-drop-impl.stderr":"f0d05bf22ae2016a186c6d5fa0ae940e0e2b8fce822f06344b73a7390cd047bd","tests/ui/pinned_drop/forget-pinned-drop-impl.rs":"9a6d08c98f1214d11aac8bbf67586130ad62d07d03f4ba6aae474fe30695b536","tests/ui/pinned_drop/forget-pinned-drop-impl.stderr":"d45a218e8107ad11a59a75f30bbb2a018e153ecdead28880b09cf63f3d64f98f","tests/ui/pinned_drop/invalid-self.rs":"9c7e431b0808204d6a3bf3541668655cb72c76e8ebe8f4a04518d0c6dcdd1bd5","tests/ui/pinned_drop/invalid-self.stderr":"a2004c3f04e13bbc17446e751acb1b3985f5a6bfeb846e1b8a661951e40adb12","tests/ui/pinned_drop/invalid.rs":"1c0a596320d62adf3c138e67efa3236f2cfd598d5f249ed7b1d51d5b40d31587","tests/ui/pinned_drop/invalid.stderr":"a91c479bbc41a708f1ac19eb2b788dac8e204db4fe92f9c1e4be898d8a69bdcc","tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs":"cc406f6ffa1998896931d33cfdab79466a1494750b55519f5a8ad7fe13e08657","tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr":"0766091c9b7e88aa5b6b22a6a0ea04c3521681408dd7241aba762234f57021cd","tests/ui/pinned_drop/self.rs":"db7da7c136a16c34b0492dbaeed680cdf0a1bdeb186b2d4a1324dd11b43bbe2b","tests/ui/pinned_drop/self.stderr":"e0c56bcdcc4009311ef8a8fc0e214a56770c544b0dbd9867a578013ccc0c6873","tests/ui/pinned_drop/unsafe-call.rs":"2ecdfd7b658c0aeb85ff0feed8d6c1776a06166c287d3b8925f7fc4c699ee74a","tests/ui/pinned_drop/unsafe-call.stderr":"f7c304194f2517651571a9d1c94fc19b8e917bc772295f7b3c1758e1fe7386db","tests/ui/unsafe_unpin/conflict-unpin.rs":"a22831379eb1f2d597d5f8088130f7c91add5ec69bade962d555d1b49145f56a","tests/ui/unsafe_unpin/conflict-unpin.stderr":"069830217d50c954b6b0af8891386d2069ffbe7b0b72069cc1b92ee0c5bf9a54","tests/ui/unstable-features/README.md":"f9dcf95e9c68fe15345f493a3fb4f54726d36c76d1a5a1e2c9dfa25540d4b642","tests/ui/unstable-features/marker_trait_attr-feature-gate.rs":"35596063ddbc8a289182c3a18d98d595583e6a0b2b3324d3eec4f416de06ea4b","tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr":"cb4afbee9d7a3f4598a926efd2d30b26146e9766cba145d31e4ef6223539ece7","tests/ui/unstable-features/marker_trait_attr.rs":"f2a5275a5b80249d2a0e7a4e9e7d3f573ffd5f2a183dfced314e91a7d7945007","tests/ui/unstable-features/marker_trait_attr.stderr":"0b4b5faa7405a58a2ebc6faaa4cd697f913b99882c45d4d7d729bb0cb4f7d0be","tests/ui/unstable-features/negative_impls.rs":"b913f3d818cc4d91efe4b82dd08b72acff89b97d7e56a33d8106c93f1de6a81d","tests/ui/unstable-features/negative_impls.stderr":"aacad57752e05b1e5a8b09c9486bc9fb6f1875d1f061931197dd4352f1ff2898","tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs":"dc6b854cc60ea03344f8ca3fa518a2bdc0b9aa69f2368162f4b6ad24d31bc4f0","tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr":"14d39aeb6acbe06173240a7252adf97fefff519b0e65179bdfcd3c8b6f5e58a0","tests/ui/unstable-features/overlapping_marker_traits.rs":"8af0d8a5afe9dcaa02fa67b394d376f9933cc99361d68f64185769326700bf7c","tests/ui/unstable-features/overlapping_marker_traits.stderr":"a271b507c86b733430c2fe5973029d99128c908422b6161a9b7c7c2fccae3236","tests/ui/unstable-features/trivial_bounds-feature-gate.rs":"658aab9de2e52a54b9e4731faae6a87172b1b4b78f3853c9fd4b565066b74e64","tests/ui/unstable-features/trivial_bounds-feature-gate.stderr":"2c31748846c992c8a68f586ec24fc89b1c630728d0f263ad4b200018ce3cd871","tests/ui/unstable-features/trivial_bounds.rs":"2bc3e4e17645c42b70c023caa3c5bb428addd2a8664465131e32864d31d3691d","tests/ui/unstable-features/trivial_bounds.stderr":"85ed625ee167cc7d7faffbfb006da5591f3d81a9df763d2cbc68523ea602f2fd","tests/unsafe_unpin.rs":"0367781e5109fa9a27347aebe45e633461e396bf883a06c5f809416030c79514"},"package":"fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"}
\ No newline at end of file
+{"files":{"CHANGELOG.md":"cd6bf8d77239cabd58b4d00789f556c4ccbca94ea47be06173ff60f12243e760","Cargo.lock":"a397ddcadb3310646500efa4e79bbc2e7aa1fa56229e93a38f48a2e9dda81f1e","Cargo.toml":"cdc3392c1074a4a50910b912f769761cdacd0496c3dd2480cdda11afac4f2056","LICENSE-APACHE":"0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"8d2c53a18a6fcd05d35d04b5d8172ca8081f4fd0d12b8e16c718ee1a9359fff3","examples/README.md":"873366ab5ece507f55dac855c51f87776d5c35456d5e8c84f528587d836aaf5f","examples/enum-default-expanded.rs":"c9ccbaae3e8c9597a0c59974e899bb9e81472ad8accfe59242f34985ffe5a289","examples/enum-default.rs":"54e5c85b9f3cfc2bc484b1ad2e7766cd1603824d9ec392ad4907c496b4b78157","examples/not_unpin-expanded.rs":"1232f56104bf811443403c54e053e94a2a13cf4571ed38137b0f2bec464d4db3","examples/not_unpin.rs":"d4d9fd30bb9344ef1c8cc89fee86b50032a405bcc61f06cce926493f227be0f9","examples/pinned_drop-expanded.rs":"b9ff7fc4b641609671a82837fc3b252caa989bf8950cb231baeddd92569810be","examples/pinned_drop.rs":"b97945028f5767be6afe91810ab34e1a6a0092194c4986ffe3a60f08fb9dea1e","examples/project_replace-expanded.rs":"4eee31edfe97ddddf1468283c49a06f504cf42c92498f3a8e10f6d4a4ac9cf75","examples/project_replace.rs":"f91eab65f1211417cd08dcf5b845fa379fb92ce0af7b2639e5bc2fe0e26a7854","examples/struct-default-expanded.rs":"f911154b5a0cf9bcfdf21d9bfb1b3de47bb9e09e9f42592c1d04e731328fad7b","examples/struct-default.rs":"6b20a552077d0e5eae2d59ce8d0a945d80e7f4f29a845a262f4d15fbae7e327c","examples/unsafe_unpin-expanded.rs":"c4394430a3e3d5a0f12a87fd324b4cd369c6464d3793a62c8c20e52c2e94256a","examples/unsafe_unpin.rs":"078a0bc9f67513051afa26387c601b4b7528aeae344978de356863505df6a93f","src/lib.rs":"0df702f95ad8b212caf492f38fdab0455d3665e6c70eb523f7ed46759bf1842f","tests/auxiliary/mod.rs":"52a78b77be05c67737c56865fbce4477eaacc6482d6377af2a5822f05a2ce061","tests/cfg.rs":"93d1d2f1bd3aa47b80b28821f825c710fa94e3198d486fbc46945ab9347e2019","tests/compiletest.rs":"48cfd92c7271345d57a6c222a7a61e00449f38e6ba379130813c45b31a5589c9","tests/drop_order.rs":"0f1a624f97c80bc636e3a7bb4cfbcb9164b552cee59bf2726f4fd97ad280dc51","tests/expand/default/enum.expanded.rs":"77050429460eaa79bbaed18269ba16c4393b6c12cc1c435fb3cfbe21aec3d39e","tests/expand/default/enum.rs":"fea7593e953826dcad52fe1e22ada20271cd03dace13f2915ca06099a6673537","tests/expand/default/struct.expanded.rs":"100c9b6f48ff7a428c3664ba20780f7d04c16ed0712c7b9202d2146ee7585abf","tests/expand/default/struct.rs":"d484478550eeb44d386d30ac8327f48c42fca1a9cb7169c92ff06d884c674ab8","tests/expand/default/tuple_struct.expanded.rs":"fb54a8f6e56ebc394b558e3563ea01c53c9ef4f090a3b090f570b49c7819a6ef","tests/expand/default/tuple_struct.rs":"c1029993bc0f91a2f2aca19e2d641ad3fcc0905c6d45d6842787c1165cb781d3","tests/expand/multifields/enum.expanded.rs":"088b6ac44e7f9855fc9007aae8330709a85486afe1dfbea6a897aa1ef634063c","tests/expand/multifields/enum.rs":"812994180bf6f9b669d43d03ae2dfe120ad13965c811216c22c0c954f91fd381","tests/expand/multifields/struct.expanded.rs":"52b2514146faf3fbecdfabb83c74a88bd5e7bdaee8fe4e378fce1eca1e28feba","tests/expand/multifields/struct.rs":"d9e23319e51617fe25caa6be8984f8157a663b2eb3771e140078dd68fc9cf210","tests/expand/multifields/tuple_struct.expanded.rs":"673255997ec47f345d941bd918a434ba8fa93e329297272c73fd794428b3e19c","tests/expand/multifields/tuple_struct.rs":"112b2ac6d9dbbc12c5d20fb2274122267fcd27da39d7ee2bf9e314a90df1c5ea","tests/expand/naming/enum-all.expanded.rs":"1f58b7801b0b49b4b31c418576a9441e8eb3cef7f4a848a6dd7aa1e0f35c9d3a","tests/expand/naming/enum-all.rs":"09e82035f1a7d88699bc4a6ffb29eee9d57ef68c0465cd6cfacd27d938d8e235","tests/expand/naming/enum-mut.expanded.rs":"2e02896769f46ce8426f35aafe419686dfc37c5aba2e013aac8b2fcb5347390a","tests/expand/naming/enum-mut.rs":"3c56450fe41f8b9b5a887d2e84d8f3b922594aaf659338c23494e20df62cf6ad","tests/expand/naming/enum-none.expanded.rs":"cac87a732dcfcfaf7d1bcc8180f68f4270ce176bf933b013d9513f4554afdee7","tests/expand/naming/enum-none.rs":"615b4f2433caf8d6ec606e5d0133714d42fa21288b830809b5c678c4ff698aa1","tests/expand/naming/enum-own.expanded.rs":"06362827471d5a28d679e84f32ab7bdda1e255b231a08668d81db5c98fec2e8c","tests/expand/naming/enum-own.rs":"c19331d90c90d8e91bdb0e8d788a05a1ff4d66e7468b455f1da71548bfbf5576","tests/expand/naming/enum-ref.expanded.rs":"e9117830799e4270c16888cb075b96eaa7c3534b439f3e2c1ba58722c3a482cc","tests/expand/naming/enum-ref.rs":"9e09831c95da2cf70c1c81ada248811302719e8491ff00529e891f0e4d102b69","tests/expand/naming/struct-all.expanded.rs":"0800dee39633c8f782859e590e72ddf736df29d4706ac9604c5484135148e77a","tests/expand/naming/struct-all.rs":"5a2562f65a60ef7e72f65427e585c1a7f46574ebdfa5d89099e98a250e39e1f6","tests/expand/naming/struct-mut.expanded.rs":"3dbcac87af3fd15579a545a3dc5ff6367248f6918dffceef0295358fd6e74cd6","tests/expand/naming/struct-mut.rs":"9e384565fcc6c015435241a2eeccf5c54f7f18df8fbf9a6d3c7c40e23d19f247","tests/expand/naming/struct-none.expanded.rs":"100c9b6f48ff7a428c3664ba20780f7d04c16ed0712c7b9202d2146ee7585abf","tests/expand/naming/struct-none.rs":"d484478550eeb44d386d30ac8327f48c42fca1a9cb7169c92ff06d884c674ab8","tests/expand/naming/struct-own.expanded.rs":"9f60ba0f47d3bdca73ac92f18ece9466f2e9ecc52035007566b5ca17ab922c3e","tests/expand/naming/struct-own.rs":"13f22d6409b4eafef1a59f8ee576f119ef2109b300107388cf8ab7c6e0776ef6","tests/expand/naming/struct-ref.expanded.rs":"faebf6f3b3568c99558d01d4af8f2142782342c8fefd1a3afbbb727a171b3a90","tests/expand/naming/struct-ref.rs":"3c833f7484d7489da2f0e8215489dc0fce02f24983b5d2678fe1f31a813fa6ae","tests/expand/naming/tuple_struct-all.expanded.rs":"9ce847d6fcd65d0407cc74a1c378b3e32f5c641b9eb5f55bb3e546a0336fc62a","tests/expand/naming/tuple_struct-all.rs":"03acee5629d30626c96b0bb737d3ff440627e4f70459a330ab140fd8d317dd2e","tests/expand/naming/tuple_struct-mut.expanded.rs":"49070115fb3d31596af37e0679f955570e60a6ad1f9b4e5f0018d1cb959bd238","tests/expand/naming/tuple_struct-mut.rs":"b2c2c7c952158969c29b2f15a1d267471f9a0a161b53422f9b7286353e9aedd9","tests/expand/naming/tuple_struct-none.expanded.rs":"fb54a8f6e56ebc394b558e3563ea01c53c9ef4f090a3b090f570b49c7819a6ef","tests/expand/naming/tuple_struct-none.rs":"c1029993bc0f91a2f2aca19e2d641ad3fcc0905c6d45d6842787c1165cb781d3","tests/expand/naming/tuple_struct-own.expanded.rs":"b31bee3232fb1c6bb8e9cd8433d4a0a69077418a8d2e0401f5c8dcdbeb830879","tests/expand/naming/tuple_struct-own.rs":"cd2630848feaf66d006bb7745a2e00d77ee7915587dbc6501802af7be39a0526","tests/expand/naming/tuple_struct-ref.expanded.rs":"fc2532e961ecaf2ff978535c2ecff24eaf2a9f635a9bff9150835bc16ba952f7","tests/expand/naming/tuple_struct-ref.rs":"d65afb23f09f65a91fa7630a0948ebc1cfe80fb3a6aa3006cf742970af883a84","tests/expand/not_unpin/enum.expanded.rs":"4b35495a1ca07a98500bbd51037922795674c974e967482ee35fcbb884114784","tests/expand/not_unpin/enum.rs":"fa856ef755b1108cb43bc0d4e0fb9b9089554fee2f2006fe2459575da347b245","tests/expand/not_unpin/struct.expanded.rs":"92a603a2b319aa6069a7c39151e990e688bc934cca23c9b225966dcfcc0982ff","tests/expand/not_unpin/struct.rs":"f9b53d10483c916adddd051f14eb255f274b391ff1ea11ad5b910999b3dae3f1","tests/expand/not_unpin/tuple_struct.expanded.rs":"384f866389e825fef4db70a4f7eb8ef9aee3d69b1d1330bc284849239246bc0e","tests/expand/not_unpin/tuple_struct.rs":"8fc6236ba7c42c994d1b75df95e856f031183465e98803bca1b45030246e5c67","tests/expand/pinned_drop/enum.expanded.rs":"e4e34a9db83369e75109b983ac9a4eeed47da34ace7c43894170857168818f66","tests/expand/pinned_drop/enum.rs":"e750205f316480d8cfa54feb7ee3c895a96665bd26d4831ed4ac8b817283236f","tests/expand/pinned_drop/struct.expanded.rs":"e5be1b550128b54e6d4b3cfd77b8511bfde9d82676fa8afb69ce8b35fa611262","tests/expand/pinned_drop/struct.rs":"f0cba0d230f6a8c59471903621ccde37d42b8a01b2a973cbd3d296624f917e43","tests/expand/pinned_drop/tuple_struct.expanded.rs":"d996b344092f1f9caf47cc4ba645559487bff0ff6685e7c2b4e1a24bfe306055","tests/expand/pinned_drop/tuple_struct.rs":"6983058e035c2349747f7e5434d965c566d8b9572235ee2e9c62f34399b5c567","tests/expand/project_replace/enum.expanded.rs":"e856da1d6f182945aaca66a115503f6368fd2b8ce36b4a8392b6eebcdc119ed3","tests/expand/project_replace/enum.rs":"a73235f35b539f5720d2edeedfc05419515cb49a5c5f559bcc337b4da2cf11ac","tests/expand/project_replace/struct.expanded.rs":"103dca7f287ece09b5ff51e914bad6248776fc44e33fdf17270705be34239bcc","tests/expand/project_replace/struct.rs":"4daf891313fc6f2bdb9f5daadd1177701e7ea6e8340fde3670d2149bf88710e0","tests/expand/project_replace/tuple_struct.expanded.rs":"e3f8a1ce16f636a020ef01502873d6198c50dbc2e5c12dda2fbccbbd7172633c","tests/expand/project_replace/tuple_struct.rs":"2e4409687e2cb5b90f39c5740d5a4a94a660f1a7a62d7ef46b65c0bbdd88a5c3","tests/expand/pub/enum.expanded.rs":"6ec36132c0254061de3277418b5668555a75c4f7ecf69ffb7756ac4d3bce4bca","tests/expand/pub/enum.rs":"f3838d891e209aefc506d5b1b794a726c15673617230335f8ecda28357617c06","tests/expand/pub/struct.expanded.rs":"c860536161efab5416899ffb5a973c6490a26e1cfcd1cd33c74438606b2093b7","tests/expand/pub/struct.rs":"cdb61db4c8754c573f58aae94a78b8fd8cce89ab2dfe60e9388cf0c3c5d00299","tests/expand/pub/tuple_struct.expanded.rs":"3f2d56b197e18a955907ea6d5931488b4499dba3cad2c7f40571eb895c0fbf61","tests/expand/pub/tuple_struct.rs":"51fb87a1b5fd28cc3fd19646422e17366b38585b552e6b0578d1f3b668354fad","tests/expand/unsafe_unpin/enum.expanded.rs":"dc675b0ee024ac005269a72988124fbfc5b1c8bbd4ef2967545c9280a47ae318","tests/expand/unsafe_unpin/enum.rs":"4231500c8d825b5e0160d3231aee6e1168dbfb9c4ea3a22b5870c1ba11e6e75d","tests/expand/unsafe_unpin/struct.expanded.rs":"c83be1440d109cafa2fed4d8dbf98cc5ff9cb5f1dfa1147ddad009bc08c9a37f","tests/expand/unsafe_unpin/struct.rs":"297ebc73abdaeaa8cbb8008ee0f7b0900d6e66d73aedf638454153a19ab2810f","tests/expand/unsafe_unpin/tuple_struct.expanded.rs":"6f786149e1b027e6c44bebbb38e415011c7655d1597d3cb3e9807dd245a0dd1a","tests/expand/unsafe_unpin/tuple_struct.rs":"d6ec019d10f94a0b57985b53e016dd3523460d24ad7a868110488773f4180b7a","tests/expandtest.rs":"a4336ab879d79824ab3144ea385a7a00ba77604c3b6639ae53b6283850b421df","tests/include/basic-safe-part.rs":"9d481307aeeb553283e4831a4c36c770afcd644070cc189140716de96827936b","tests/include/basic.rs":"70b1fa73b6d23bfb1506a28f2e2a2857f8840d0a4526e4a61432c22abdbda66d","tests/pin_project.rs":"f9e11ef5a55af85dfe68998621d23d5112d5ba4a6b85ac260ae3f4b3bf0f09ee","tests/pinned_drop.rs":"d52d5f929d70b398d1e4fe0870b3229f1471400e7ea641c106f7abd06c916cb9","tests/proper_unpin.rs":"97bacb4a2d41de28c3b176d02bbdee5c1a5c7f7bc255d3cda90067feec301ff9","tests/repr_packed.rs":"fbe88bde14145bcb9f3a27460a4510fa1f72e1cc77fe559f87613e8c23613f83","tests/run-pass/private_in_public-enum.rs":"1f851d074f90dee903987361028a5beecead08eeaacf4c1fad951a10b3f90db3","tests/ui/cfg/cfg_attr-resolve.rs":"3adc24a57357908e4d2cc7c7026f3ac54023129edc5638afddf52d4899bf1160","tests/ui/cfg/cfg_attr-resolve.stderr":"a53125883d5d3a3afbb1c00e95075ab1f69e5a5b97fd9a2146e898725f8a40ae","tests/ui/cfg/cfg_attr-type-mismatch.rs":"89f597c834231ed7e235aabfe9e43020c8f31bb1018ae92d99732b460e1fbd85","tests/ui/cfg/cfg_attr-type-mismatch.stderr":"50d502dc48a0109d4fac367806cb6fb8ccc91e89fbff9701a5b96030fa5751f2","tests/ui/cfg/packed_sneaky-span-issue-1.rs":"c02754a8f68162f7b176291f0db2281017a760d4a6d8a883115248e91f6316b8","tests/ui/cfg/packed_sneaky-span-issue-1.stderr":"2b6fde98b5e03a58b52ca33b9e3cd67f04b31d03a8b82893fb1ce9ad9663ffb8","tests/ui/cfg/packed_sneaky-span-issue-2.rs":"0e89520ee66ba3e82af9d1637bfca9fced3d5f0481ab142401a3da7fa756d1ce","tests/ui/cfg/packed_sneaky-span-issue-2.stderr":"b4cc84cb222c4d1830f5246a5c2171a642b9a04dd6e01d7fd42abb04e6f801f5","tests/ui/cfg/packed_sneaky.rs":"433307e3f91acd412c1a261b6a3018dd59ef8de57cef14f5e66a50183e2faaf7","tests/ui/cfg/packed_sneaky.stderr":"40e11cb5a2f19bc856cc201c57ee2d65a071855da8d1c2ae93aea7a53a8d88fe","tests/ui/cfg/unsupported.rs":"07aa5e7ec5bf3f0062b10904786677ee6b7b46c032b820c3387c53ccc2f6a180","tests/ui/cfg/unsupported.stderr":"86cd19ad8aaf1f5d2bc86e3ee206530445d09a2697fe2989ee750b578e78d29a","tests/ui/not_unpin/conflict-unpin.rs":"e05c462ad35da709c13d6bb0a4d32c693682f52fa3606f17c4e53641467c65ef","tests/ui/not_unpin/conflict-unpin.stderr":"eae1a3fd92b0aa8de8eaf6ff237ae9767ddaa95fde0a890cc4fde5f225bf0d23","tests/ui/not_unpin/impl-unsafe-unpin.rs":"ac610414614f37e980aea24a9d30bfb0f12cf9d2c3b01901bc7ab1151946cfd8","tests/ui/not_unpin/impl-unsafe-unpin.stderr":"8ee1b42b74a0212d6d746a41ff2f14e00fc176aca29232eda1c6ded8c7b853d4","tests/ui/not_unpin/negative_impls_stable.rs":"2c80bb07c9fd24fb9963eae495cfa937504e683823828475fcc5224dc27c8b10","tests/ui/not_unpin/negative_impls_stable.stderr":"d5ead1b05130711a839b795c9f9b50e58c645c70af67ec9d537c4246860e0e40","tests/ui/pin_project/add-attr-to-struct.rs":"4d18b1e16084af38061d10be53a188a83780bdf32114f78e32f2dfb9983774d8","tests/ui/pin_project/add-attr-to-struct.stderr":"03e3c5a9bdc1caac687c0614b0cb763c6323c62d034f0c617a5e6f6b6a1f5e0d","tests/ui/pin_project/add-pinned-field.rs":"6b28a3685df4dc23e5c3fa416554876991499072f8a49cdb4e6014c08666d3ed","tests/ui/pin_project/add-pinned-field.stderr":"9f43cc45d6e080f9329b463e761557d42ce5abd30dc449c78d452f1710c99826","tests/ui/pin_project/conflict-drop.rs":"72cd28063e686d6a4eef4b2f32c244cc4411c8b21cf349910251dbb02087a6be","tests/ui/pin_project/conflict-drop.stderr":"eae6ed939901fa0f292278c209392a4f1d1d23ac24648b22e1cfa5767fea01e9","tests/ui/pin_project/conflict-unpin.rs":"018b4e01be009f7ccf0d6e59894de2dc74069b566a1d5c9091afc150fe2abc5a","tests/ui/pin_project/conflict-unpin.stderr":"64fd2ddfe5033bdc09fcfa97ea8147af070959903beffffd2a2b0bee6f93bf26","tests/ui/pin_project/impl-unsafe-unpin.rs":"3f8f499686b27d2345aabe246b181530d8a9675dd2c7de82f6c04a1bf6436f6c","tests/ui/pin_project/impl-unsafe-unpin.stderr":"5e281d7bf29ac8d7980010120b551d9375e24067f6c9ec1684477de2a05e439a","tests/ui/pin_project/import_unnamed.rs":"25f95d9b4c0afaf353639fd671a4c90fddc1912d59c40054b0c843d4dfd005a0","tests/ui/pin_project/import_unnamed.stderr":"6ef1c28a335160bc353da29fc3a428f7fe0119e1bbee3c2287bc7d4a456d12a6","tests/ui/pin_project/invalid.rs":"b593f1c37ef566017b96793c70fb32a12043531def06534fd4105a203e0d4388","tests/ui/pin_project/invalid.stderr":"1c0fe0b7bae2605f9107e2af3a83cbae533cbb063d363b8a97969ce76eb18a1d","tests/ui/pin_project/negative_impls_stable.rs":"2360c0ce848b4ad30b14a31f8eab8f7a20cc02cd1d72009504cd07645d99f35d","tests/ui/pin_project/negative_impls_stable.stderr":"f1ed5df727ddad2ecd9bfb3eeb37bc5109fb188efd14ca22c4291e01b337f7d5","tests/ui/pin_project/overlapping_unpin_struct.rs":"e2d50f0cd919fc3b604099a921d0690fcf540296b99888253c00bfb9c758617a","tests/ui/pin_project/overlapping_unpin_struct.stderr":"27c5cefe35d4ebfdb7b439224657deff8f3cf2a456d2b9ae1d5a539960591a4b","tests/ui/pin_project/override-priv-mod.rs":"26136f0329b61ef5c293cee5040393f1431f774e92b3e2c5f6486704d46e1257","tests/ui/pin_project/override-priv-mod.stderr":"75b93e2dcf6dd9d1843db9218f740f661814d886d6407a36d633cb82cad9a42f","tests/ui/pin_project/packed-enum.rs":"e667d9ea9e1627449d0ff1cda6e51f21f29b08f22200ce23e3bc21728dc7c763","tests/ui/pin_project/packed-enum.stderr":"492c1d8bc85313606fedded5e06ac3be4ec45d8f91d13b547fd622df94197812","tests/ui/pin_project/packed-name-value.rs":"733e0ebe0c001af7d7cc3a4a8385537af9fba1cb1c8edc169218ef9a293eba42","tests/ui/pin_project/packed-name-value.stderr":"2e19551069c1419ce2699e5437f313fc772fb9b58f4e6a899f27ea296e4eca7d","tests/ui/pin_project/packed.rs":"72869bd8313ed0168bd8cc0505665c1b17aa9d884aa7ffcd35dd7b5457584eba","tests/ui/pin_project/packed.stderr":"d9e7582c4f8db7b4458c47c1d3710fa2ca019c3305f62ce39879876accb2598e","tests/ui/pin_project/packed_sneaky-1.rs":"812af83b8693606bc938b48cb02b928c89d18ee842adeb0ad254334c715d4b92","tests/ui/pin_project/packed_sneaky-1.stderr":"3772d5f31afadbbf0158a5818245574296bfb311539904df0f1ddd4acc00f01b","tests/ui/pin_project/packed_sneaky-2.rs":"7588ed1c189ee8fbaa94ef6e4b5878faf0b172a32ea063d435dfc5c4bfd7f85c","tests/ui/pin_project/packed_sneaky-2.stderr":"d5614700eb8781d75bf0e4b70cefef167cc6826c516234171a97d6d84ec01b5e","tests/ui/pin_project/packed_sneaky-3.rs":"88309e53afec73a78e890b7cd47a09ca3bef8c570e36f8d90d7ba19ba47ff8a0","tests/ui/pin_project/packed_sneaky-3.stderr":"4d76371646017cfa2633e185c7fcb7ce5d0445802703baf38cb56d99ece74687","tests/ui/pin_project/packed_sneaky-4.rs":"5eb2300689f522c63db7c4fe3ea72cb2b84395a2c83991586ca087ed1dba269d","tests/ui/pin_project/packed_sneaky-4.stderr":"41bafcd4512c2df40b17def3706f34c98a2b79b6885e64caa0d590a6dc970261","tests/ui/pin_project/project_replace_unsized.rs":"b062243b50902cee1a1bf2f40e93fc18241bb74795a25cd9db35a46749a41d05","tests/ui/pin_project/project_replace_unsized.stderr":"13f01622230c7b1a0e5e43855fd4e0a06499fda44c80937d2142527457d83912","tests/ui/pin_project/project_replace_unsized_fn_params.rs":"6f108b224e5d3abcc6c939626851bf828d282f55df154900d308b400daed0ef6","tests/ui/pin_project/project_replace_unsized_fn_params.stderr":"0744def748dd99e7506c75fdae7ff9e7f9ea8de8ffc08c053ec9d65132c8f932","tests/ui/pin_project/remove-attr-from-field.rs":"58a601b30b92eaca40a7954bd653fa9fc4c01402b3c2d27b6c406327aaade719","tests/ui/pin_project/remove-attr-from-field.stderr":"aad4a79d62ca421b1201d6579f92c69406bec505a9fa5d07e46a16d7b2222add","tests/ui/pin_project/remove-attr-from-struct.rs":"4ad63d1b09f076a4f7999a508ccea85ca04002574fd3bcf67d9ccd2b64e69224","tests/ui/pin_project/remove-attr-from-struct.stderr":"79c6bab0491331adf694dda12edaf03e057570cbfed98ca85a11336a728b308f","tests/ui/pin_project/safe_packed_borrows.rs":"83709dc48e66dfc8a8750619128542c97f9c7e2326f245f724363e1c37053ff1","tests/ui/pin_project/safe_packed_borrows.stderr":"79774c6a5aa4d3e72f1e385951b067da2c78bf157f880d404115f8183d894256","tests/ui/pin_project/unaligned_references.rs":"af0701b6623bc14dfb9708d8006304910421ec6d84572862634fb6c0efccf6dd","tests/ui/pin_project/unaligned_references.stderr":"bfb559198ee9dccfbfd23c1ebee3b1bb6a606f705ceb076f9a6de74e30c71c0c","tests/ui/pin_project/unpin_sneaky.rs":"c261d4cf5d522a7b6366dd143e2c47dfb2f831dc63c3caa4ea8f14ce75dd6156","tests/ui/pin_project/unpin_sneaky.stderr":"31f8b9505bc2af56bece0d6293fc8f8f4af8ed227389035ad6ab268588271bc2","tests/ui/pin_project/visibility.rs":"8fa3c4c47362406e080bc16e2fd17c9f32dca6fab032b161d9e2d5dea0c9d9af","tests/ui/pin_project/visibility.stderr":"752f42fecd7bb98d70d7613cb4eaea60ecd06dea28821ee2e8c7bdbd09dc6316","tests/ui/pinned_drop/call-drop-inner.rs":"77449492550e5a6c749902b386af2ef9eea41e8d0a71597e0d38efb89881118c","tests/ui/pinned_drop/call-drop-inner.stderr":"d34803c33b22f98c00d24ad17f052fb0dc1112b899f58bcb1b1b3c87ccda270f","tests/ui/pinned_drop/conditional-drop-impl.rs":"f4e5898b2107db35ef7f1b01c0444ddc9e7688a99c186a3e8425440a78f8ef60","tests/ui/pinned_drop/conditional-drop-impl.stderr":"e0576237b8f62d0804a56a3c5a17bba4670363ed95030b20ff51f7031f722780","tests/ui/pinned_drop/forget-pinned-drop-impl.rs":"70a24449f32cef65acc9bfedd589c7a769820fa00ec2fefeefa98852efbe5e6b","tests/ui/pinned_drop/forget-pinned-drop-impl.stderr":"676397b4402359c4b0a4d2d90784d6263e87c208789cc19eddbda88ff39a7cd8","tests/ui/pinned_drop/invalid-self.rs":"e94d8af8a838fe91671f3604eccd29990d9eeff5d02fb001642258313beb2659","tests/ui/pinned_drop/invalid-self.stderr":"ef516273c9bc94e9acff2ee362cb35cd9bc7dccbdb14be745c12b38074226f16","tests/ui/pinned_drop/invalid.rs":"f8dff25ea91e5ebab89f27e6e489c2e8ce835addbe412a41ce2394b53cc099ad","tests/ui/pinned_drop/invalid.stderr":"95f970b4cfb6a672571a001f53984c294783cdc75125efef22f4148f633ac332","tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs":"e022ef71e0109b1436c6358ce2f06f0d84d46b7985aa1a2b29756cde96b9cf1f","tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr":"42e849d6e20f3c40fb4062bb14110ad5066577f2b3d185712418432e5121e0ae","tests/ui/pinned_drop/self.rs":"6bf13a7f0cd8b1cb37a74ecf658529d2e4a3b25d971ed2cad87abd7b89e30a17","tests/ui/pinned_drop/self.stderr":"201cf605bc92800f4060b5b8ad76e9f96346bf5bfb98d0ed72ca3a520cd53b4b","tests/ui/pinned_drop/unsafe-call.rs":"ffda1decea5296ec880724e093e49a53ea7965776563d4d1f7fefbe0bfbe7caf","tests/ui/pinned_drop/unsafe-call.stderr":"00f41302bfbd1ae8d32ad16e7af6703c712404a930bdbc6e5a3fbb2b1d0e640b","tests/ui/unsafe_unpin/conflict-unpin.rs":"d14e428aceeab970cfe7842c91b0cc4618661576fef8ff397e1339c125cf2c6e","tests/ui/unsafe_unpin/conflict-unpin.stderr":"bbe1553ec88be73003e46e838529b550605826b507812baf1680d5320f8e207b","tests/ui/unsafe_unpin/negative_impls_stable.rs":"6f17a1f4393e0aad944bce0c6187c8afa3820f37f5cfa6ec67bb44074a77588a","tests/ui/unsafe_unpin/negative_impls_stable.stderr":"2bc867f430eb7014638a35c5fb0e7cc5c39d0536e20b130d1524ebed199ef03c","tests/ui/unstable-features/README.md":"f9dcf95e9c68fe15345f493a3fb4f54726d36c76d1a5a1e2c9dfa25540d4b642","tests/ui/unstable-features/marker_trait_attr-feature-gate.rs":"0af988c3faad147e74c3f5a8f30af018d6d83c8b142260215ce84a5f09541b70","tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr":"df5a97ce6dbcfee318e27a16a435af82266c0a6b403e32499d101257e40acf75","tests/ui/unstable-features/marker_trait_attr.rs":"8c1f95182a8dbc7fbdaf3a622dfc03064429c690048787a1049205e512368eaf","tests/ui/unstable-features/marker_trait_attr.stderr":"7718916bf5905d9e697b9755949ce64e322d70938e5b5711e57180eb6f41ec05","tests/ui/unstable-features/negative_impls.rs":"3a15268ce37fb4af8a1a783dcddf7698309c107fb8090a9e94a2325ec80dccc6","tests/ui/unstable-features/negative_impls.stderr":"cb8402ab5e9f360f98d3cbe8cf51c2dd594ccd513526595615fa074550a8e271","tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs":"e5fae414bcaa6b1c3faa0c6afd058b1142b3048687d26798393031251c66c2d6","tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr":"56bac510621eafcb5a60ca73c1b645ece8562496b7244efb10cbe4c284ae9c97","tests/ui/unstable-features/overlapping_marker_traits.rs":"acb5cc2704bc684b291204d792ddcb569ea7a549f740b0447b79c08f2fed642a","tests/ui/unstable-features/overlapping_marker_traits.stderr":"99db2981fbdaaaa2004cc30028255ca55afb6bda9ca12fb5996f0414c79ee8c3","tests/ui/unstable-features/trivial_bounds-feature-gate.rs":"dc3737d5745da045ac004dbfa9fb1270bcd0e3096c70a7a9a8a3356d3d6ad662","tests/ui/unstable-features/trivial_bounds-feature-gate.stderr":"9a774d3db38e1403b548c43c9ac6bfe00f41f8619d3000a3594a64ba7a4d6ed3","tests/ui/unstable-features/trivial_bounds.rs":"ad8ba5daa9f8d168e9bf8006de8c8bcf4becc9806b1b54d65d6073f6cd007d7c","tests/ui/unstable-features/trivial_bounds.stderr":"7fbe6415d8e42ace37b1290be606eec94d6b4b3e21cec691113ffc85513e3803","tests/unsafe_unpin.rs":"05cc89ac3d51c77719560dc52caf0ddf673f4051234c54c36ad32c7933fef268"},"package":"1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916"}
\ No newline at end of file
diff --git a/crates/pin-project/Android.bp b/crates/pin-project/Android.bp
index 34ac277..4020ed8 100644
--- a/crates/pin-project/Android.bp
+++ b/crates/pin-project/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "pin_project",
     cargo_env_compat: true,
-    cargo_pkg_version: "1.1.3",
+    cargo_pkg_version: "1.1.8",
     crate_root: "src/lib.rs",
     edition: "2021",
     proc_macros: ["libpin_project_internal"],
diff --git a/crates/pin-project/CHANGELOG.md b/crates/pin-project/CHANGELOG.md
index ed5637e..b28dc23 100644
--- a/crates/pin-project/CHANGELOG.md
+++ b/crates/pin-project/CHANGELOG.md
@@ -4,12 +4,36 @@
 
 This project adheres to [Semantic Versioning](https://semver.org).
 
+Releases may yanked if there is a security bug, a soundness bug, or a regression.
+
 <!--
 Note: In this file, do not use the hard wrap in the middle of a sentence for compatibility with GitHub comment style markdown rendering.
 -->
 
 ## [Unreleased]
 
+## [1.1.8] - 2025-01-06
+
+- Suppress `unnameable_types`, `clippy::absolute_paths`, `clippy::min_ident_chars`, `clippy::pub_with_shorthand`, `clippy::single_call_fn`, `clippy::single_char_lifetime_names` lints in generated code.
+
+## [1.1.7] - 2024-10-24
+
+- Work around an issue on negative_impls that allows unsound overlapping `Unpin` implementations. ([#357](https://github.com/taiki-e/pin-project/pull/357))
+
+## [1.1.6] - 2024-10-05
+
+- Suppress `clippy::needless_lifetimes` lint in generated code.
+
+- Disable `derive` feature of `syn` dependency.
+
+## [1.1.5] - 2024-03-05
+
+- Suppress `unused_qualifications` lint in generated code.
+
+## [1.1.4] - 2024-01-25
+
+- Suppress `clippy::missing_docs_in_private_items` and `clippy::missing_inline_in_public_items` lints in generated code. ([#356](https://github.com/taiki-e/pin-project/pull/356), thanks @daxpedda)
+
 ## [1.1.3] - 2023-08-06
 
 - Hide documentation of the `Unpin` implementation for `!Unpin` option to work around [rustdoc issue](https://github.com/rust-lang/rust/issues/80481). ([#355](https://github.com/taiki-e/pin-project/pull/355), thanks @matheus-consoli)
@@ -696,7 +720,12 @@
 
 Initial release
 
-[Unreleased]: https://github.com/taiki-e/pin-project/compare/v1.1.3...HEAD
+[Unreleased]: https://github.com/taiki-e/pin-project/compare/v1.1.8...HEAD
+[1.1.8]: https://github.com/taiki-e/pin-project/compare/v1.1.7...v1.1.8
+[1.1.7]: https://github.com/taiki-e/pin-project/compare/v1.1.6...v1.1.7
+[1.1.6]: https://github.com/taiki-e/pin-project/compare/v1.1.5...v1.1.6
+[1.1.5]: https://github.com/taiki-e/pin-project/compare/v1.1.4...v1.1.5
+[1.1.4]: https://github.com/taiki-e/pin-project/compare/v1.1.3...v1.1.4
 [1.1.3]: https://github.com/taiki-e/pin-project/compare/v1.1.2...v1.1.3
 [1.1.2]: https://github.com/taiki-e/pin-project/compare/v1.1.1...v1.1.2
 [1.1.1]: https://github.com/taiki-e/pin-project/compare/v1.1.0...v1.1.1
diff --git a/crates/pin-project/Cargo.lock b/crates/pin-project/Cargo.lock
index b56bca1..b042494 100644
--- a/crates/pin-project/Cargo.lock
+++ b/crates/pin-project/Cargo.lock
@@ -3,145 +3,48 @@
 version = 3
 
 [[package]]
-name = "basic-toml"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "diff"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
-
-[[package]]
-name = "glob"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
-
-[[package]]
-name = "itoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "macrotest"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7489ae0986ce45414b7b3122c2e316661343ecf396b206e3e15f07c846616f10"
-dependencies = [
- "diff",
- "glob",
- "prettyplease",
- "serde",
- "serde_json",
- "syn 1.0.109",
- "toml",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-
-[[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.8"
 dependencies = [
- "macrotest",
  "pin-project-internal",
  "rustversion",
  "static_assertions",
- "trybuild",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "prettyplease"
-version = "0.1.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
-dependencies = [
- "proc-macro2",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.32"
+version = "1.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.14"
+version = "1.0.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
-
-[[package]]
-name = "ryu"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
-
-[[package]]
-name = "serde"
-version = "1.0.181"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d3e73c93c3240c0bda063c239298e633114c69a888c3e37ca8bb33f343e9890"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.181"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be02f6cb0cd3a5ec20bbcfbcbd749f57daddb1a0882dc2e46a6c236c90b977ed"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.104"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
+checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4"
 
 [[package]]
 name = "static_assertions"
@@ -151,9 +54,9 @@
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -161,82 +64,7 @@
 ]
 
 [[package]]
-name = "syn"
-version = "2.0.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "trybuild"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a84e0202ea606ba5ebee8507ab2bfbe89b98551ed9b8f0be198109275cff284b"
-dependencies = [
- "basic-toml",
- "glob",
- "once_cell",
- "serde",
- "serde_derive",
- "serde_json",
- "termcolor",
-]
-
-[[package]]
 name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
diff --git a/crates/pin-project/Cargo.toml b/crates/pin-project/Cargo.toml
index 5a34ad6..feb25a7 100644
--- a/crates/pin-project/Cargo.toml
+++ b/crates/pin-project/Cargo.toml
@@ -13,12 +13,18 @@
 edition = "2021"
 rust-version = "1.56"
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.8"
+build = false
 exclude = [
     "/.*",
     "/tools",
     "/DEVELOPMENT.md",
 ]
+autolib = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = """
 A crate for safe and ergonomic pin-projection.
 """
@@ -36,17 +42,103 @@
 license = "Apache-2.0 OR MIT"
 repository = "https://github.com/taiki-e/pin-project"
 
+[package.metadata.cargo_check_external_types]
+allowed_external_types = ["pin_project_internal::*"]
+
 [package.metadata.docs.rs]
 targets = ["x86_64-unknown-linux-gnu"]
 
 [lib]
+name = "pin_project"
+path = "src/lib.rs"
 doc-scrape-examples = false
 
-[dependencies.pin-project-internal]
-version = "=1.1.3"
+[[example]]
+name = "enum-default"
+path = "examples/enum-default.rs"
 
-[dev-dependencies.macrotest]
-version = "1.0.9"
+[[example]]
+name = "enum-default-expanded"
+path = "examples/enum-default-expanded.rs"
+
+[[example]]
+name = "not_unpin"
+path = "examples/not_unpin.rs"
+
+[[example]]
+name = "not_unpin-expanded"
+path = "examples/not_unpin-expanded.rs"
+
+[[example]]
+name = "pinned_drop"
+path = "examples/pinned_drop.rs"
+
+[[example]]
+name = "pinned_drop-expanded"
+path = "examples/pinned_drop-expanded.rs"
+
+[[example]]
+name = "project_replace"
+path = "examples/project_replace.rs"
+
+[[example]]
+name = "project_replace-expanded"
+path = "examples/project_replace-expanded.rs"
+
+[[example]]
+name = "struct-default"
+path = "examples/struct-default.rs"
+
+[[example]]
+name = "struct-default-expanded"
+path = "examples/struct-default-expanded.rs"
+
+[[example]]
+name = "unsafe_unpin"
+path = "examples/unsafe_unpin.rs"
+
+[[example]]
+name = "unsafe_unpin-expanded"
+path = "examples/unsafe_unpin-expanded.rs"
+
+[[test]]
+name = "cfg"
+path = "tests/cfg.rs"
+
+[[test]]
+name = "compiletest"
+path = "tests/compiletest.rs"
+
+[[test]]
+name = "drop_order"
+path = "tests/drop_order.rs"
+
+[[test]]
+name = "expandtest"
+path = "tests/expandtest.rs"
+
+[[test]]
+name = "pin_project"
+path = "tests/pin_project.rs"
+
+[[test]]
+name = "pinned_drop"
+path = "tests/pinned_drop.rs"
+
+[[test]]
+name = "proper_unpin"
+path = "tests/proper_unpin.rs"
+
+[[test]]
+name = "repr_packed"
+path = "tests/repr_packed.rs"
+
+[[test]]
+name = "unsafe_unpin"
+path = "tests/unsafe_unpin.rs"
+
+[dependencies.pin-project-internal]
+version = "=1.1.8"
 
 [dev-dependencies.rustversion]
 version = "1"
@@ -54,5 +146,123 @@
 [dev-dependencies.static_assertions]
 version = "1"
 
-[dev-dependencies.trybuild]
-version = "1.0.67"
+[lints.clippy]
+all = "warn"
+as_ptr_cast_mut = "warn"
+as_underscore = "warn"
+default_union_representation = "warn"
+inline_asm_x86_att_syntax = "warn"
+pedantic = "warn"
+trailing_empty_array = "warn"
+transmute_undefined_repr = "warn"
+undocumented_unsafe_blocks = "warn"
+
+[lints.clippy.bool_assert_comparison]
+level = "allow"
+priority = 1
+
+[lints.clippy.borrow_as_ptr]
+level = "allow"
+priority = 1
+
+[lints.clippy.cast_lossless]
+level = "allow"
+priority = 1
+
+[lints.clippy.declare_interior_mutable_const]
+level = "allow"
+priority = 1
+
+[lints.clippy.doc_markdown]
+level = "allow"
+priority = 1
+
+[lints.clippy.float_cmp]
+level = "allow"
+priority = 1
+
+[lints.clippy.incompatible_msrv]
+level = "allow"
+priority = 1
+
+[lints.clippy.lint_groups_priority]
+level = "allow"
+priority = 1
+
+[lints.clippy.manual_assert]
+level = "allow"
+priority = 1
+
+[lints.clippy.manual_range_contains]
+level = "allow"
+priority = 1
+
+[lints.clippy.missing_errors_doc]
+level = "allow"
+priority = 1
+
+[lints.clippy.module_name_repetitions]
+level = "allow"
+priority = 1
+
+[lints.clippy.naive_bytecount]
+level = "allow"
+priority = 1
+
+[lints.clippy.nonminimal_bool]
+level = "allow"
+priority = 1
+
+[lints.clippy.range_plus_one]
+level = "allow"
+priority = 1
+
+[lints.clippy.similar_names]
+level = "allow"
+priority = 1
+
+[lints.clippy.single_match]
+level = "allow"
+priority = 1
+
+[lints.clippy.single_match_else]
+level = "allow"
+priority = 1
+
+[lints.clippy.struct_excessive_bools]
+level = "allow"
+priority = 1
+
+[lints.clippy.struct_field_names]
+level = "allow"
+priority = 1
+
+[lints.clippy.too_many_arguments]
+level = "allow"
+priority = 1
+
+[lints.clippy.too_many_lines]
+level = "allow"
+priority = 1
+
+[lints.clippy.type_complexity]
+level = "allow"
+priority = 1
+
+[lints.clippy.unreadable_literal]
+level = "allow"
+priority = 1
+
+[lints.rust]
+deprecated_safe = "warn"
+improper_ctypes = "warn"
+improper_ctypes_definitions = "warn"
+non_ascii_idents = "warn"
+rust_2018_idioms = "warn"
+single_use_lifetimes = "warn"
+unreachable_pub = "warn"
+
+[lints.rust.unexpected_cfgs]
+level = "warn"
+priority = 0
+check-cfg = []
diff --git a/crates/pin-project/METADATA b/crates/pin-project/METADATA
index 5a25223..0b7e4c5 100644
--- a/crates/pin-project/METADATA
+++ b/crates/pin-project/METADATA
@@ -1,17 +1,17 @@
 name: "pin-project"
 description: "A crate for safe and ergonomic pin-projection."
 third_party {
-  version: "1.1.3"
+  version: "1.1.8"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2023
-    month: 11
-    day: 14
+    year: 2025
+    month: 1
+    day: 15
   }
   homepage: "https://crates.io/crates/pin-project"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/pin-project/pin-project-1.1.3.crate"
-    version: "1.1.3"
+    value: "https://static.crates.io/crates/pin-project/pin-project-1.1.8.crate"
+    version: "1.1.8"
   }
 }
diff --git a/crates/pin-project/README.md b/crates/pin-project/README.md
index 8a98e04..e38a183 100644
--- a/crates/pin-project/README.md
+++ b/crates/pin-project/README.md
@@ -3,8 +3,8 @@
 [![crates.io](https://img.shields.io/crates/v/pin-project?style=flat-square&logo=rust)](https://crates.io/crates/pin-project)
 [![docs.rs](https://img.shields.io/badge/docs.rs-pin--project-blue?style=flat-square&logo=docs.rs)](https://docs.rs/pin-project)
 [![license](https://img.shields.io/badge/license-Apache--2.0_OR_MIT-blue?style=flat-square)](#license)
-[![rustc](https://img.shields.io/badge/rustc-1.56+-blue?style=flat-square&logo=rust)](https://www.rust-lang.org)
-[![build status](https://img.shields.io/github/actions/workflow/status/taiki-e/pin-project/ci.yml?branch=main&style=flat-square&logo=github)](https://github.com/taiki-e/pin-project/actions)
+[![msrv](https://img.shields.io/badge/msrv-1.56-blue?style=flat-square&logo=rust)](https://www.rust-lang.org)
+[![github actions](https://img.shields.io/github/actions/workflow/status/taiki-e/pin-project/ci.yml?branch=main&style=flat-square&logo=github)](https://github.com/taiki-e/pin-project/actions)
 
 <!-- tidy:crate-doc:start -->
 A crate for safe and ergonomic [pin-projection].
@@ -18,8 +18,6 @@
 pin-project = "1"
 ```
 
-*Compiler support: requires rustc 1.56+*
-
 ## Examples
 
 [`#[pin_project]`][`pin_project`] attribute creates projection types
@@ -93,7 +91,7 @@
 
 <!-- tidy:crate-doc:end -->
 
-[`pin_project`]: https://docs.rs/pin-project/1/pin_project/attr.pin_project.html
+[`pin_project`]: https://docs.rs/pin-project/latest/pin_project/attr.pin_project.html
 
 ## License
 
diff --git a/crates/pin-project/examples/README.md b/crates/pin-project/examples/README.md
index 0f30a7f..dea2a9e 100644
--- a/crates/pin-project/examples/README.md
+++ b/crates/pin-project/examples/README.md
@@ -1,38 +1,40 @@
 # Examples and generated code of each feature of pin-project
 
-### Basic usage of `#[pin_project]` on structs
+## Basic usage of `#[pin_project]` on structs
 
 - [example](struct-default.rs)
 - [generated code](struct-default-expanded.rs)
 
-### Basic usage of `#[pin_project]` on enums
+## Basic usage of `#[pin_project]` on enums
 
 - [example](enum-default.rs)
 - [generated code](enum-default-expanded.rs)
 
-### Manual implementation of `Unpin` by `UnsafeUnpin`
+## Manual implementation of `Unpin` by `UnsafeUnpin`
 
 - [example](unsafe_unpin.rs)
 - [generated code](unsafe_unpin-expanded.rs)
-- [`UnsafeUnpin` documentation](https://docs.rs/pin-project/1/pin_project/trait.UnsafeUnpin.html)
+- [`UnsafeUnpin` documentation](https://docs.rs/pin-project/latest/pin_project/trait.UnsafeUnpin.html)
 
-### Manual implementation of `Drop` by `#[pinned_drop]`
+## Manual implementation of `Drop` by `#[pinned_drop]`
 
 - [example](pinned_drop.rs)
 - [generated code](pinned_drop-expanded.rs)
-- [`#[pinned_drop]` documentation](https://docs.rs/pin-project/1/pin_project/attr.pinned_drop.html)
+- [`#[pinned_drop]` documentation](https://docs.rs/pin-project/latest/pin_project/attr.pinned_drop.html)
 
-### `project_replace()` method
+## `project_replace()` method
 
 - [example](project_replace.rs)
 - [generated code](project_replace-expanded.rs)
-- [`project_replace()` documentation](https://docs.rs/pin-project/1/pin_project/attr.pin_project.html#project_replace-method)
+- [`project_replace()` documentation](https://docs.rs/pin-project/latest/pin_project/attr.pin_project.html#project_replace-method)
 
-### Ensure `!Unpin` by `#[pin_project(!Unpin)]`
+## Ensure `!Unpin` by `#[pin_project(!Unpin)]`
 
 - [example](not_unpin.rs)
 - [generated code](not_unpin-expanded.rs)
-- [`!Unpin` documentation](https://docs.rs/pin-project/1/pin_project/attr.pin_project.html#unpin)
+- [`!Unpin` documentation](https://docs.rs/pin-project/latest/pin_project/attr.pin_project.html#unpin)
+
+---
 
 Note: These generated code examples are the little simplified version of the
 actual generated code. See [expansion tests](../tests#expansion-tests-expand-expandtestrs) if you
diff --git a/crates/pin-project/examples/enum-default-expanded.rs b/crates/pin-project/examples/enum-default-expanded.rs
index 459ca39..02b64f0 100644
--- a/crates/pin-project/examples/enum-default-expanded.rs
+++ b/crates/pin-project/examples/enum-default-expanded.rs
@@ -1,6 +1,8 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Original code (./enum-default.rs):
 //
-// ```rust
+// ```
 // #![allow(dead_code)]
 //
 // use pin_project::pin_project;
@@ -14,10 +16,15 @@
 // fn main() {}
 // ```
 
-#![allow(dead_code, unused_imports, unused_parens, unknown_lints, renamed_and_removed_lints)]
 #![allow(
-    clippy::needless_lifetimes,
+    dead_code,
+    unused_imports,
+    unused_parens,
+    unknown_lints,
+    renamed_and_removed_lints,
     clippy::just_underscores_and_digits,
+    clippy::needless_lifetimes,
+    clippy::undocumented_unsafe_blocks,
     clippy::used_underscore_binding
 )]
 
@@ -70,13 +77,15 @@
         __field0: T,
     }
     impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
-        __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<__Enum<'pin, T, U>>:
+            ::pin_project::__private::Unpin
     {
     }
     // A dummy impl of `UnsafeUnpin`, to ensure that the user cannot implement it.
     #[doc(hidden)]
     unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
-        __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<__Enum<'pin, T, U>>:
+            ::pin_project::__private::Unpin
     {
     }
 
diff --git a/crates/pin-project/examples/enum-default.rs b/crates/pin-project/examples/enum-default.rs
index bd3f2e6..e4f1d87 100644
--- a/crates/pin-project/examples/enum-default.rs
+++ b/crates/pin-project/examples/enum-default.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // See ./enum-default-expanded.rs for generated code.
 
 #![allow(dead_code)]
diff --git a/crates/pin-project/examples/not_unpin-expanded.rs b/crates/pin-project/examples/not_unpin-expanded.rs
index 5700c12..c06c9c0 100644
--- a/crates/pin-project/examples/not_unpin-expanded.rs
+++ b/crates/pin-project/examples/not_unpin-expanded.rs
@@ -1,12 +1,14 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Original code (./not_unpin.rs):
 //
-// ```rust
+// ```
 // #![allow(dead_code)]
 //
 // use pin_project::pin_project;
 //
 // #[pin_project(!Unpin)]
-// pub struct Struct<T, U> {
+// struct Struct<T, U> {
 //     #[pin]
 //     pinned: T,
 //     unpinned: U,
@@ -18,27 +20,34 @@
 // }
 // ```
 
-#![allow(dead_code, unused_imports, unused_parens, unknown_lints, renamed_and_removed_lints)]
-#![allow(clippy::needless_lifetimes)]
+#![allow(
+    dead_code,
+    unused_imports,
+    unused_parens,
+    unknown_lints,
+    renamed_and_removed_lints,
+    clippy::needless_lifetimes,
+    clippy::undocumented_unsafe_blocks
+)]
 
 use pin_project::pin_project;
 
 // #[pin_project(!Unpin)]
-pub struct Struct<T, U> {
+struct Struct<T, U> {
     // #[pin]
     pinned: T,
     unpinned: U,
 }
 
 const _: () = {
-    pub(crate) struct __StructProjection<'pin, T, U>
+    struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
     {
         pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         unpinned: &'pin mut (U),
     }
-    pub(crate) struct __StructProjectionRef<'pin, T, U>
+    struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
     {
@@ -47,7 +56,7 @@
     }
 
     impl<T, U> Struct<T, U> {
-        pub(crate) fn project<'pin>(
+        fn project<'pin>(
             self: ::pin_project::__private::Pin<&'pin mut Self>,
         ) -> __StructProjection<'pin, T, U> {
             unsafe {
@@ -58,7 +67,7 @@
                 }
             }
         }
-        pub(crate) fn project_ref<'pin>(
+        fn project_ref<'pin>(
             self: ::pin_project::__private::Pin<&'pin Self>,
         ) -> __StructProjectionRef<'pin, T, U> {
             unsafe {
@@ -86,9 +95,11 @@
     //
     // See https://github.com/taiki-e/pin-project/issues/102#issuecomment-540472282
     // for details.
+    #[doc(hidden)]
     impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
-        ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>:
-            ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<
+            ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>,
+        >: ::pin_project::__private::Unpin
     {
     }
     // A dummy impl of `UnsafeUnpin`, to ensure that the user cannot implement it.
@@ -99,8 +110,9 @@
     // coherence checks are run.
     #[doc(hidden)]
     unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
-        ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>:
-            ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<
+            ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>,
+        >: ::pin_project::__private::Unpin
     {
     }
 
diff --git a/crates/pin-project/examples/not_unpin.rs b/crates/pin-project/examples/not_unpin.rs
index 2ad72a8..f80cc76 100644
--- a/crates/pin-project/examples/not_unpin.rs
+++ b/crates/pin-project/examples/not_unpin.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // See ./not_unpin-expanded.rs for generated code.
 
 #![allow(dead_code)]
@@ -5,7 +7,7 @@
 use pin_project::pin_project;
 
 #[pin_project(!Unpin)]
-pub struct Struct<T, U> {
+struct Struct<T, U> {
     #[pin]
     pinned: T,
     unpinned: U,
diff --git a/crates/pin-project/examples/pinned_drop-expanded.rs b/crates/pin-project/examples/pinned_drop-expanded.rs
index 82207b6..5263de6 100644
--- a/crates/pin-project/examples/pinned_drop-expanded.rs
+++ b/crates/pin-project/examples/pinned_drop-expanded.rs
@@ -1,6 +1,8 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Original code (./pinned_drop.rs):
 //
-// ```rust
+// ```
 // #![allow(dead_code)]
 //
 // use std::pin::Pin;
@@ -22,8 +24,17 @@
 // fn main() {}
 // ```
 
-#![allow(dead_code, unused_imports, unused_parens, unknown_lints, renamed_and_removed_lints)]
-#![allow(clippy::needless_lifetimes, clippy::mut_mut)]
+#![allow(
+    dead_code,
+    single_use_lifetimes,
+    unused_imports,
+    unused_parens,
+    unknown_lints,
+    renamed_and_removed_lints,
+    clippy::mut_mut,
+    clippy::needless_lifetimes,
+    clippy::undocumented_unsafe_blocks
+)]
 
 use std::pin::Pin;
 
@@ -112,13 +123,15 @@
         __lifetime0: &'a (),
     }
     impl<'pin, 'a, T> ::pin_project::__private::Unpin for Struct<'a, T> where
-        __Struct<'pin, 'a, T>: ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<__Struct<'pin, 'a, T>>:
+            ::pin_project::__private::Unpin
     {
     }
     // A dummy impl of `UnsafeUnpin`, to ensure that the user cannot implement it.
     #[doc(hidden)]
     unsafe impl<'pin, 'a, T> ::pin_project::UnsafeUnpin for Struct<'a, T> where
-        __Struct<'pin, 'a, T>: ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<__Struct<'pin, 'a, T>>:
+            ::pin_project::__private::Unpin
     {
     }
 };
diff --git a/crates/pin-project/examples/pinned_drop.rs b/crates/pin-project/examples/pinned_drop.rs
index 6fb8719..77d21a2 100644
--- a/crates/pin-project/examples/pinned_drop.rs
+++ b/crates/pin-project/examples/pinned_drop.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // See ./pinned_drop-expanded.rs for generated code.
 
 #![allow(dead_code)]
diff --git a/crates/pin-project/examples/project_replace-expanded.rs b/crates/pin-project/examples/project_replace-expanded.rs
index 445e570..ffcf818 100644
--- a/crates/pin-project/examples/project_replace-expanded.rs
+++ b/crates/pin-project/examples/project_replace-expanded.rs
@@ -1,6 +1,8 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Original code (./struct-default.rs):
 //
-// ```rust
+// ```
 // #![allow(dead_code)]
 //
 // use pin_project::pin_project;
@@ -15,8 +17,15 @@
 // fn main() {}
 // ```
 
-#![allow(dead_code, unused_imports, unused_parens, unknown_lints, renamed_and_removed_lints)]
-#![allow(clippy::needless_lifetimes)]
+#![allow(
+    dead_code,
+    unused_imports,
+    unused_parens,
+    unknown_lints,
+    renamed_and_removed_lints,
+    clippy::needless_lifetimes,
+    clippy::undocumented_unsafe_blocks
+)]
 
 use pin_project::pin_project;
 
@@ -128,13 +137,15 @@
         __field0: T,
     }
     impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
-        __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<__Struct<'pin, T, U>>:
+            ::pin_project::__private::Unpin
     {
     }
     // A dummy impl of `UnsafeUnpin`, to ensure that the user cannot implement it.
     #[doc(hidden)]
     unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
-        __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<__Struct<'pin, T, U>>:
+            ::pin_project::__private::Unpin
     {
     }
 
diff --git a/crates/pin-project/examples/project_replace.rs b/crates/pin-project/examples/project_replace.rs
index 99cec18..e5c34b7 100644
--- a/crates/pin-project/examples/project_replace.rs
+++ b/crates/pin-project/examples/project_replace.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // See ./struct-default-expanded.rs for generated code.
 
 #![allow(dead_code)]
diff --git a/crates/pin-project/examples/struct-default-expanded.rs b/crates/pin-project/examples/struct-default-expanded.rs
index d661099..01f2f7e 100644
--- a/crates/pin-project/examples/struct-default-expanded.rs
+++ b/crates/pin-project/examples/struct-default-expanded.rs
@@ -1,6 +1,8 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Original code (./struct-default.rs):
 //
-// ```rust
+// ```
 // #![allow(dead_code)]
 //
 // use pin_project::pin_project;
@@ -15,8 +17,15 @@
 // fn main() {}
 // ```
 
-#![allow(dead_code, unused_imports, unused_parens, unknown_lints, renamed_and_removed_lints)]
-#![allow(clippy::needless_lifetimes)]
+#![allow(
+    dead_code,
+    unused_imports,
+    unused_parens,
+    unknown_lints,
+    renamed_and_removed_lints,
+    clippy::needless_lifetimes,
+    clippy::undocumented_unsafe_blocks
+)]
 
 use pin_project::pin_project;
 
@@ -90,7 +99,7 @@
     //
     // Basically this is equivalent to the following code:
     //
-    // ```rust
+    // ```
     // impl<T, U> Unpin for Struct<T, U> where T: Unpin {}
     // ```
     //
@@ -98,7 +107,7 @@
     // this would cause an E0446 (private type in public interface).
     //
     // When RFC 2145 is implemented (rust-lang/rust#48054),
-    // this will become a lint, rather then a hard error.
+    // this will become a lint, rather than a hard error.
     //
     // As a workaround for this, we generate a new struct, containing all of
     // the pinned fields from our #[pin_project] type. This struct is declared
@@ -120,7 +129,8 @@
         __field0: T,
     }
     impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
-        __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<__Struct<'pin, T, U>>:
+            ::pin_project::__private::Unpin
     {
     }
     // A dummy impl of `UnsafeUnpin`, to ensure that the user cannot implement it.
@@ -131,7 +141,8 @@
     // coherence checks are run.
     #[doc(hidden)]
     unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
-        __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+        ::pin_project::__private::PinnedFieldsOf<__Struct<'pin, T, U>>:
+            ::pin_project::__private::Unpin
     {
     }
 
diff --git a/crates/pin-project/examples/struct-default.rs b/crates/pin-project/examples/struct-default.rs
index 46808a5..66d8a6e 100644
--- a/crates/pin-project/examples/struct-default.rs
+++ b/crates/pin-project/examples/struct-default.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // See ./struct-default-expanded.rs for generated code.
 
 #![allow(dead_code)]
diff --git a/crates/pin-project/examples/unsafe_unpin-expanded.rs b/crates/pin-project/examples/unsafe_unpin-expanded.rs
index e9c7abc..f4521fc 100644
--- a/crates/pin-project/examples/unsafe_unpin-expanded.rs
+++ b/crates/pin-project/examples/unsafe_unpin-expanded.rs
@@ -1,12 +1,14 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Original code (./unsafe_unpin.rs):
 //
-// ```rust
+// ```
 // #![allow(dead_code)]
 //
 // use pin_project::{pin_project, UnsafeUnpin};
 //
 // #[pin_project(UnsafeUnpin)]
-// pub struct Struct<T, U> {
+// struct Struct<T, U> {
 //     #[pin]
 //     pinned: T,
 //     unpinned: U,
@@ -17,27 +19,34 @@
 // fn main() {}
 // ```
 
-#![allow(dead_code, unused_imports, unused_parens, unknown_lints, renamed_and_removed_lints)]
-#![allow(clippy::needless_lifetimes)]
+#![allow(
+    dead_code,
+    unused_imports,
+    unused_parens,
+    unknown_lints,
+    renamed_and_removed_lints,
+    clippy::needless_lifetimes,
+    clippy::undocumented_unsafe_blocks
+)]
 
 use pin_project::{pin_project, UnsafeUnpin};
 
 // #[pin_project(UnsafeUnpin)]
-pub struct Struct<T, U> {
+struct Struct<T, U> {
     // #[pin]
     pinned: T,
     unpinned: U,
 }
 
 const _: () = {
-    pub(crate) struct __StructProjection<'pin, T, U>
+    struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
     {
         pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         unpinned: &'pin mut (U),
     }
-    pub(crate) struct __StructProjectionRef<'pin, T, U>
+    struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
     {
@@ -46,7 +55,7 @@
     }
 
     impl<T, U> Struct<T, U> {
-        pub(crate) fn project<'pin>(
+        fn project<'pin>(
             self: ::pin_project::__private::Pin<&'pin mut Self>,
         ) -> __StructProjection<'pin, T, U> {
             unsafe {
@@ -57,7 +66,7 @@
                 }
             }
         }
-        pub(crate) fn project_ref<'pin>(
+        fn project_ref<'pin>(
             self: ::pin_project::__private::Pin<&'pin Self>,
         ) -> __StructProjectionRef<'pin, T, U> {
             unsafe {
@@ -83,7 +92,8 @@
 
     // Implement `Unpin` via `UnsafeUnpin`.
     impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
-        ::pin_project::__private::Wrapper<'pin, Self>: ::pin_project::UnsafeUnpin
+        ::pin_project::__private::PinnedFieldsOf<::pin_project::__private::Wrapper<'pin, Self>>:
+            ::pin_project::UnsafeUnpin
     {
     }
 
diff --git a/crates/pin-project/examples/unsafe_unpin.rs b/crates/pin-project/examples/unsafe_unpin.rs
index 5ec0cd2..66a08a9 100644
--- a/crates/pin-project/examples/unsafe_unpin.rs
+++ b/crates/pin-project/examples/unsafe_unpin.rs
@@ -1,11 +1,13 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // See ./unsafe_unpin-expanded.rs for generated code.
 
-#![allow(dead_code)]
+#![allow(dead_code, clippy::undocumented_unsafe_blocks)]
 
 use pin_project::{pin_project, UnsafeUnpin};
 
 #[pin_project(UnsafeUnpin)]
-pub struct Struct<T, U> {
+struct Struct<T, U> {
     #[pin]
     pinned: T,
     unpinned: U,
diff --git a/crates/pin-project/src/lib.rs b/crates/pin-project/src/lib.rs
index aece45e..56a661a 100644
--- a/crates/pin-project/src/lib.rs
+++ b/crates/pin-project/src/lib.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 /*!
 <!-- tidy:crate-doc:start -->
 A crate for safe and ergonomic [pin-projection].
@@ -11,8 +13,6 @@
 pin-project = "1"
 ```
 
-*Compiler support: requires rustc 1.56+*
-
 ## Examples
 
 [`#[pin_project]`][`pin_project`] attribute creates projection types
@@ -95,27 +95,18 @@
         allow(dead_code, unused_variables)
     )
 ))]
+#![warn(unsafe_op_in_unsafe_fn)]
 #![warn(
+    // Lints that may help when writing public library.
+    missing_debug_implementations,
     missing_docs,
-    rust_2018_idioms,
-    single_use_lifetimes,
-    unreachable_pub,
-    unsafe_op_in_unsafe_fn
-)]
-#![warn(
-    clippy::pedantic,
-    // lints for public library
     clippy::alloc_instead_of_core,
     clippy::exhaustive_enums,
     clippy::exhaustive_structs,
+    clippy::impl_trait_in_params,
+    // clippy::missing_inline_in_public_items,
     clippy::std_instead_of_alloc,
     clippy::std_instead_of_core,
-    // lints that help writing unsafe code
-    clippy::as_ptr_cast_mut,
-    clippy::default_union_representation,
-    clippy::trailing_empty_array,
-    clippy::transmute_undefined_repr,
-    clippy::undocumented_unsafe_blocks,
 )]
 #![allow(clippy::needless_doctest_main)]
 
@@ -167,7 +158,7 @@
 /// An `UnsafeUnpin` impl which, in addition to requiring that structurally
 /// pinned fields be [`Unpin`], imposes an additional requirement:
 ///
-/// ```rust
+/// ```
 /// use pin_project::{pin_project, UnsafeUnpin};
 ///
 /// #[pin_project(UnsafeUnpin)]
@@ -188,6 +179,7 @@
 
 // Not public API.
 #[doc(hidden)]
+#[allow(missing_debug_implementations)]
 pub mod __private {
     use core::mem::ManuallyDrop;
     #[doc(hidden)]
@@ -236,7 +228,7 @@
     //
     // Supposed we have the following code:
     //
-    // ```rust
+    // ```
     // #[pin_project(UnsafeUnpin)]
     // struct MyStruct<T> {
     //     #[pin] field: T
@@ -258,7 +250,7 @@
     //
     // We now have code that looks like this:
     //
-    // ```rust
+    // ```
     // impl<T> Unpin for MyStruct<T> where Wrapper<MyStruct<T>>: UnsafeUnpin {} // generated by pin-project-internal
     // impl<T> Unpin for MyStruct<T> where T: Copy // written by the user
     // ```
@@ -282,30 +274,44 @@
     // Unpin), or provide an impl of `UnsafeUnpin`. It is impossible for them to
     // provide an impl of `Unpin`
     #[doc(hidden)]
+    #[allow(dead_code)]
     pub struct Wrapper<'a, T: ?Sized>(PhantomData<&'a ()>, T);
-
     // SAFETY: `T` implements UnsafeUnpin.
     unsafe impl<T: ?Sized + UnsafeUnpin> UnsafeUnpin for Wrapper<'_, T> {}
 
+    // Workaround for issue on unstable negative_impls feature that allows unsound overlapping Unpin
+    // implementations and rustc bug that leaks unstable negative_impls into stable.
+    // See https://github.com/taiki-e/pin-project/issues/340#issuecomment-2432146009 for details.
+    #[doc(hidden)]
+    pub type PinnedFieldsOf<T> =
+        <PinnedFieldsOfHelperStruct<T> as PinnedFieldsOfHelperTrait>::Actual;
+    // We cannot use <Option<T> as IntoIterator>::Item or similar since we should allow ?Sized in T.
+    #[doc(hidden)]
+    pub trait PinnedFieldsOfHelperTrait {
+        type Actual: ?Sized;
+    }
+    #[doc(hidden)]
+    pub struct PinnedFieldsOfHelperStruct<T: ?Sized>(T);
+    impl<T: ?Sized> PinnedFieldsOfHelperTrait for PinnedFieldsOfHelperStruct<T> {
+        type Actual = T;
+    }
+
     // This is an internal helper struct used by `pin-project-internal`.
     //
     // See https://github.com/taiki-e/pin-project/pull/53 for more details.
     #[doc(hidden)]
     pub struct AlwaysUnpin<'a, T>(PhantomData<&'a ()>, PhantomData<T>);
-
     impl<T> Unpin for AlwaysUnpin<'_, T> {}
 
     // This is an internal helper used to ensure a value is dropped.
     #[doc(hidden)]
     pub struct UnsafeDropInPlaceGuard<T: ?Sized>(*mut T);
-
     impl<T: ?Sized> UnsafeDropInPlaceGuard<T> {
         #[doc(hidden)]
         pub unsafe fn new(ptr: *mut T) -> Self {
             Self(ptr)
         }
     }
-
     impl<T: ?Sized> Drop for UnsafeDropInPlaceGuard<T> {
         fn drop(&mut self) {
             // SAFETY: the caller of `UnsafeDropInPlaceGuard::new` must guarantee
@@ -323,14 +329,12 @@
         target: *mut T,
         value: ManuallyDrop<T>,
     }
-
     impl<T> UnsafeOverwriteGuard<T> {
         #[doc(hidden)]
         pub unsafe fn new(target: *mut T, value: T) -> Self {
             Self { target, value: ManuallyDrop::new(value) }
         }
     }
-
     impl<T> Drop for UnsafeOverwriteGuard<T> {
         fn drop(&mut self) {
             // SAFETY: the caller of `UnsafeOverwriteGuard::new` must guarantee
diff --git a/crates/pin-project/tests/auxiliary/mod.rs b/crates/pin-project/tests/auxiliary/mod.rs
index 1457099..4ccd0a8 100644
--- a/crates/pin-project/tests/auxiliary/mod.rs
+++ b/crates/pin-project/tests/auxiliary/mod.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 #![allow(dead_code, unused_macros)]
 
 macro_rules! assert_unpin {
diff --git a/crates/pin-project/tests/cfg.rs b/crates/pin-project/tests/cfg.rs
index 2f5387b..344ca63 100644
--- a/crates/pin-project/tests/cfg.rs
+++ b/crates/pin-project/tests/cfg.rs
@@ -1,5 +1,6 @@
-#![warn(rust_2018_idioms, single_use_lifetimes)]
-#![allow(dead_code)]
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+#![allow(dead_code, clippy::items_after_statements)]
 
 // Refs: https://doc.rust-lang.org/reference/attributes.html
 
diff --git a/crates/pin-project/tests/compiletest.rs b/crates/pin-project/tests/compiletest.rs
index cb30f60..7ed69c8 100644
--- a/crates/pin-project/tests/compiletest.rs
+++ b/crates/pin-project/tests/compiletest.rs
@@ -1,16 +1,10 @@
-#![cfg(not(miri))]
-#![cfg(not(careful))]
-#![warn(rust_2018_idioms, single_use_lifetimes)]
+// SPDX-License-Identifier: Apache-2.0 OR MIT
 
-use std::env;
+#![cfg(not(miri))]
 
 #[rustversion::attr(not(nightly), ignore)]
 #[test]
 fn ui() {
-    if env::var_os("CI").is_none() {
-        env::set_var("TRYBUILD", "overwrite");
-    }
-
     let t = trybuild::TestCases::new();
     t.compile_fail("tests/ui/**/*.rs");
     t.pass("tests/run-pass/**/*.rs");
diff --git a/crates/pin-project/tests/drop_order.rs b/crates/pin-project/tests/drop_order.rs
index f1e01fd..1786573 100644
--- a/crates/pin-project/tests/drop_order.rs
+++ b/crates/pin-project/tests/drop_order.rs
@@ -1,4 +1,4 @@
-#![warn(rust_2018_idioms, single_use_lifetimes)]
+// SPDX-License-Identifier: Apache-2.0 OR MIT
 
 // Refs: https://doc.rust-lang.org/reference/destructors.html
 
diff --git a/crates/pin-project/tests/expand/default/enum.expanded.rs b/crates/pin-project/tests/expand/default/enum.expanded.rs
index 599a5f9..c23e45b 100644
--- a/crates/pin-project/tests/expand/default/enum.expanded.rs
+++ b/crates/pin-project/tests/expand/default/enum.expanded.rs
@@ -5,18 +5,24 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 enum EnumProj<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -28,18 +34,24 @@
     Tuple(::pin_project::__private::Pin<&'pin mut (T)>, &'pin mut (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 enum EnumProjRef<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -48,20 +60,26 @@
     Tuple(::pin_project::__private::Pin<&'pin (T)>, &'pin (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -114,7 +132,7 @@
             }
         }
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -128,12 +146,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/default/enum.rs b/crates/pin-project/tests/expand/default/enum.rs
index ff05615..9fc23fd 100644
--- a/crates/pin-project/tests/expand/default/enum.rs
+++ b/crates/pin-project/tests/expand/default/enum.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project = EnumProj, project_ref = EnumProjRef)]
diff --git a/crates/pin-project/tests/expand/default/struct.expanded.rs b/crates/pin-project/tests/expand/default/struct.expanded.rs
index db3c948..5edd5fb 100644
--- a/crates/pin-project/tests/expand/default/struct.expanded.rs
+++ b/crates/pin-project/tests/expand/default/struct.expanded.rs
@@ -5,25 +5,30 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -31,8 +36,7 @@
         pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         unpinned: &'pin mut (U),
     }
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -74,7 +78,7 @@
         let _ = &this.pinned;
         let _ = &this.unpinned;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -87,12 +91,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/default/struct.rs b/crates/pin-project/tests/expand/default/struct.rs
index 474f0a1..6e9e135 100644
--- a/crates/pin-project/tests/expand/default/struct.rs
+++ b/crates/pin-project/tests/expand/default/struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/expand/default/tuple_struct.expanded.rs b/crates/pin-project/tests/expand/default/tuple_struct.expanded.rs
index 6b962d6..ef95f0b 100644
--- a/crates/pin-project/tests/expand/default/tuple_struct.expanded.rs
+++ b/crates/pin-project/tests/expand/default/tuple_struct.expanded.rs
@@ -1,33 +1,37 @@
 use pin_project::pin_project;
 #[pin(__private())]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __TupleStructProjection<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin mut (T)>,
         &'pin mut (U),
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __TupleStructProjectionRef<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin (T)>,
         &'pin (U),
@@ -68,7 +72,7 @@
         let _ = &this.0;
         let _ = &this.1;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -81,12 +85,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/default/tuple_struct.rs b/crates/pin-project/tests/expand/default/tuple_struct.rs
index 398b14f..f0f8777 100644
--- a/crates/pin-project/tests/expand/default/tuple_struct.rs
+++ b/crates/pin-project/tests/expand/default/tuple_struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/expand/multifields/enum.expanded.rs b/crates/pin-project/tests/expand/multifields/enum.expanded.rs
index 003f1c7..c7b868c 100644
--- a/crates/pin-project/tests/expand/multifields/enum.expanded.rs
+++ b/crates/pin-project/tests/expand/multifields/enum.expanded.rs
@@ -11,18 +11,24 @@
     Tuple(#[pin] T, #[pin] T, U, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 enum EnumProj<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -41,18 +47,24 @@
     ),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 enum EnumProjRef<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -71,19 +83,25 @@
     ),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(variant_size_differences)]
-#[allow(clippy::large_enum_variant)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    variant_size_differences,
+    clippy::large_enum_variant,
+    clippy::missing_docs_in_private_items
+)]
 enum EnumProjOwn<T, U> {
     Struct {
         pinned1: ::pin_project::__private::PhantomData<T>,
@@ -99,20 +117,26 @@
     ),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -236,7 +260,7 @@
             }
         }
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -252,12 +276,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/multifields/enum.rs b/crates/pin-project/tests/expand/multifields/enum.rs
index 754d48c..8838926 100644
--- a/crates/pin-project/tests/expand/multifields/enum.rs
+++ b/crates/pin-project/tests/expand/multifields/enum.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project = EnumProj, project_ref = EnumProjRef, project_replace = EnumProjOwn)]
diff --git a/crates/pin-project/tests/expand/multifields/struct.expanded.rs b/crates/pin-project/tests/expand/multifields/struct.expanded.rs
index c3e7a02..31cc548 100644
--- a/crates/pin-project/tests/expand/multifields/struct.expanded.rs
+++ b/crates/pin-project/tests/expand/multifields/struct.expanded.rs
@@ -8,25 +8,30 @@
     unpinned1: U,
     unpinned2: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -36,8 +41,7 @@
         unpinned1: &'pin mut (U),
         unpinned2: &'pin mut (U),
     }
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -47,7 +51,7 @@
         unpinned1: &'pin (U),
         unpinned2: &'pin (U),
     }
-    #[allow(dead_code)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items)]
     struct __StructProjectionOwned<T, U> {
         pinned1: ::pin_project::__private::PhantomData<T>,
         pinned2: ::pin_project::__private::PhantomData<T>,
@@ -125,7 +129,7 @@
         let _ = &this.unpinned1;
         let _ = &this.unpinned2;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -139,12 +143,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/multifields/struct.rs b/crates/pin-project/tests/expand/multifields/struct.rs
index 3b319bf..213aafb 100644
--- a/crates/pin-project/tests/expand/multifields/struct.rs
+++ b/crates/pin-project/tests/expand/multifields/struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_replace)]
diff --git a/crates/pin-project/tests/expand/multifields/tuple_struct.expanded.rs b/crates/pin-project/tests/expand/multifields/tuple_struct.expanded.rs
index 3931e09..36190ba 100644
--- a/crates/pin-project/tests/expand/multifields/tuple_struct.expanded.rs
+++ b/crates/pin-project/tests/expand/multifields/tuple_struct.expanded.rs
@@ -1,25 +1,30 @@
 use pin_project::pin_project;
 #[pin(__private(project_replace))]
 struct TupleStruct<T, U>(#[pin] T, #[pin] T, U, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __TupleStructProjection<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin mut (T)>,
         ::pin_project::__private::Pin<&'pin mut (T)>,
@@ -28,8 +33,7 @@
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __TupleStructProjectionRef<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin (T)>,
         ::pin_project::__private::Pin<&'pin (T)>,
@@ -38,7 +42,7 @@
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items)]
     struct __TupleStructProjectionOwned<T, U>(
         ::pin_project::__private::PhantomData<T>,
         ::pin_project::__private::PhantomData<T>,
@@ -115,7 +119,7 @@
         let _ = &this.2;
         let _ = &this.3;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -129,12 +133,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/multifields/tuple_struct.rs b/crates/pin-project/tests/expand/multifields/tuple_struct.rs
index bc92eee..44887ee 100644
--- a/crates/pin-project/tests/expand/multifields/tuple_struct.rs
+++ b/crates/pin-project/tests/expand/multifields/tuple_struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_replace)]
diff --git a/crates/pin-project/tests/expand/naming/enum-all.expanded.rs b/crates/pin-project/tests/expand/naming/enum-all.expanded.rs
index 8f7c8af..906782f 100644
--- a/crates/pin-project/tests/expand/naming/enum-all.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/enum-all.expanded.rs
@@ -5,18 +5,24 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 enum Proj<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -28,18 +34,24 @@
     Tuple(::pin_project::__private::Pin<&'pin mut (T)>, &'pin mut (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 enum ProjRef<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -48,38 +60,50 @@
     Tuple(::pin_project::__private::Pin<&'pin (T)>, &'pin (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(variant_size_differences)]
-#[allow(clippy::large_enum_variant)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    variant_size_differences,
+    clippy::large_enum_variant,
+    clippy::missing_docs_in_private_items
+)]
 enum ProjOwn<T, U> {
     Struct { pinned: ::pin_project::__private::PhantomData<T>, unpinned: U },
     Tuple(::pin_project::__private::PhantomData<T>, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -174,7 +198,7 @@
             }
         }
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -188,12 +212,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/enum-all.rs b/crates/pin-project/tests/expand/naming/enum-all.rs
index dd513e6..58e5818 100644
--- a/crates/pin-project/tests/expand/naming/enum-all.rs
+++ b/crates/pin-project/tests/expand/naming/enum-all.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project = Proj, project_ref = ProjRef, project_replace = ProjOwn)]
diff --git a/crates/pin-project/tests/expand/naming/enum-mut.expanded.rs b/crates/pin-project/tests/expand/naming/enum-mut.expanded.rs
index d489e82..0937d9b 100644
--- a/crates/pin-project/tests/expand/naming/enum-mut.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/enum-mut.expanded.rs
@@ -5,18 +5,24 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 enum Proj<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -28,20 +34,26 @@
     Tuple(::pin_project::__private::Pin<&'pin mut (T)>, &'pin mut (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -67,7 +79,7 @@
             }
         }
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -81,12 +93,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/enum-mut.rs b/crates/pin-project/tests/expand/naming/enum-mut.rs
index 818276f..3a8634e 100644
--- a/crates/pin-project/tests/expand/naming/enum-mut.rs
+++ b/crates/pin-project/tests/expand/naming/enum-mut.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project = Proj)]
diff --git a/crates/pin-project/tests/expand/naming/enum-none.expanded.rs b/crates/pin-project/tests/expand/naming/enum-none.expanded.rs
index 46477d1..d4a3e78 100644
--- a/crates/pin-project/tests/expand/naming/enum-none.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/enum-none.expanded.rs
@@ -5,25 +5,31 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
     impl<T, U> Enum<T, U> {}
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -37,12 +43,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/enum-none.rs b/crates/pin-project/tests/expand/naming/enum-none.rs
index a87438d..1391bcc 100644
--- a/crates/pin-project/tests/expand/naming/enum-none.rs
+++ b/crates/pin-project/tests/expand/naming/enum-none.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/expand/naming/enum-own.expanded.rs b/crates/pin-project/tests/expand/naming/enum-own.expanded.rs
index 5fc0430..2506b7e 100644
--- a/crates/pin-project/tests/expand/naming/enum-own.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/enum-own.expanded.rs
@@ -5,38 +5,50 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(variant_size_differences)]
-#[allow(clippy::large_enum_variant)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    variant_size_differences,
+    clippy::large_enum_variant,
+    clippy::missing_docs_in_private_items
+)]
 enum ProjOwn<T, U> {
     Struct { pinned: ::pin_project::__private::PhantomData<T>, unpinned: U },
     Tuple(::pin_project::__private::PhantomData<T>, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -87,7 +99,7 @@
             }
         }
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -101,12 +113,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/enum-own.rs b/crates/pin-project/tests/expand/naming/enum-own.rs
index cf88697..1a03aae 100644
--- a/crates/pin-project/tests/expand/naming/enum-own.rs
+++ b/crates/pin-project/tests/expand/naming/enum-own.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_replace = ProjOwn)]
diff --git a/crates/pin-project/tests/expand/naming/enum-ref.expanded.rs b/crates/pin-project/tests/expand/naming/enum-ref.expanded.rs
index 7a141c9..7bb927d 100644
--- a/crates/pin-project/tests/expand/naming/enum-ref.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/enum-ref.expanded.rs
@@ -5,18 +5,24 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 enum ProjRef<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -25,20 +31,26 @@
     Tuple(::pin_project::__private::Pin<&'pin (T)>, &'pin (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -68,7 +80,7 @@
             }
         }
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -82,12 +94,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/enum-ref.rs b/crates/pin-project/tests/expand/naming/enum-ref.rs
index b1ff805..99cbff4 100644
--- a/crates/pin-project/tests/expand/naming/enum-ref.rs
+++ b/crates/pin-project/tests/expand/naming/enum-ref.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_ref = ProjRef)]
diff --git a/crates/pin-project/tests/expand/naming/struct-all.expanded.rs b/crates/pin-project/tests/expand/naming/struct-all.expanded.rs
index 36c1230..6bb64b6 100644
--- a/crates/pin-project/tests/expand/naming/struct-all.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/struct-all.expanded.rs
@@ -5,18 +5,24 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 struct Proj<'pin, T, U>
 where
     Struct<T, U>: 'pin,
@@ -24,18 +30,24 @@
     pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
     unpinned: &'pin mut (U),
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 struct ProjRef<'pin, T, U>
 where
     Struct<T, U>: 'pin,
@@ -43,35 +55,47 @@
     pinned: ::pin_project::__private::Pin<&'pin (T)>,
     unpinned: &'pin (U),
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items
+)]
 struct ProjOwn<T, U> {
     pinned: ::pin_project::__private::PhantomData<T>,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -134,7 +158,7 @@
         let _ = &this.pinned;
         let _ = &this.unpinned;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -147,12 +171,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/struct-all.rs b/crates/pin-project/tests/expand/naming/struct-all.rs
index c229ba4..a766c4f 100644
--- a/crates/pin-project/tests/expand/naming/struct-all.rs
+++ b/crates/pin-project/tests/expand/naming/struct-all.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project = Proj, project_ref = ProjRef, project_replace = ProjOwn)]
diff --git a/crates/pin-project/tests/expand/naming/struct-mut.expanded.rs b/crates/pin-project/tests/expand/naming/struct-mut.expanded.rs
index 7164072..116ce5d 100644
--- a/crates/pin-project/tests/expand/naming/struct-mut.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/struct-mut.expanded.rs
@@ -5,18 +5,24 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 struct Proj<'pin, T, U>
 where
     Struct<T, U>: 'pin,
@@ -24,25 +30,30 @@
     pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
     unpinned: &'pin mut (U),
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -84,7 +95,7 @@
         let _ = &this.pinned;
         let _ = &this.unpinned;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -97,12 +108,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/struct-mut.rs b/crates/pin-project/tests/expand/naming/struct-mut.rs
index 2f554d3..e79a73d 100644
--- a/crates/pin-project/tests/expand/naming/struct-mut.rs
+++ b/crates/pin-project/tests/expand/naming/struct-mut.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project = Proj)]
diff --git a/crates/pin-project/tests/expand/naming/struct-none.expanded.rs b/crates/pin-project/tests/expand/naming/struct-none.expanded.rs
index db3c948..5edd5fb 100644
--- a/crates/pin-project/tests/expand/naming/struct-none.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/struct-none.expanded.rs
@@ -5,25 +5,30 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -31,8 +36,7 @@
         pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         unpinned: &'pin mut (U),
     }
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -74,7 +78,7 @@
         let _ = &this.pinned;
         let _ = &this.unpinned;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -87,12 +91,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/struct-none.rs b/crates/pin-project/tests/expand/naming/struct-none.rs
index 474f0a1..6e9e135 100644
--- a/crates/pin-project/tests/expand/naming/struct-none.rs
+++ b/crates/pin-project/tests/expand/naming/struct-none.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/expand/naming/struct-own.expanded.rs b/crates/pin-project/tests/expand/naming/struct-own.expanded.rs
index b2f6079..31dde81 100644
--- a/crates/pin-project/tests/expand/naming/struct-own.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/struct-own.expanded.rs
@@ -5,40 +5,51 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items
+)]
 struct ProjOwn<T, U> {
     pinned: ::pin_project::__private::PhantomData<T>,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -46,8 +57,7 @@
         pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         unpinned: &'pin mut (U),
     }
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -114,7 +124,7 @@
         let _ = &this.pinned;
         let _ = &this.unpinned;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -127,12 +137,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/struct-own.rs b/crates/pin-project/tests/expand/naming/struct-own.rs
index 4924362..9c17157 100644
--- a/crates/pin-project/tests/expand/naming/struct-own.rs
+++ b/crates/pin-project/tests/expand/naming/struct-own.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_replace = ProjOwn)]
diff --git a/crates/pin-project/tests/expand/naming/struct-ref.expanded.rs b/crates/pin-project/tests/expand/naming/struct-ref.expanded.rs
index dea8383..c3a60e3 100644
--- a/crates/pin-project/tests/expand/naming/struct-ref.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/struct-ref.expanded.rs
@@ -5,18 +5,24 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 struct ProjRef<'pin, T, U>
 where
     Struct<T, U>: 'pin,
@@ -24,25 +30,30 @@
     pinned: ::pin_project::__private::Pin<&'pin (T)>,
     unpinned: &'pin (U),
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -84,7 +95,7 @@
         let _ = &this.pinned;
         let _ = &this.unpinned;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -97,12 +108,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/struct-ref.rs b/crates/pin-project/tests/expand/naming/struct-ref.rs
index 4e29a16..db3b860 100644
--- a/crates/pin-project/tests/expand/naming/struct-ref.rs
+++ b/crates/pin-project/tests/expand/naming/struct-ref.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_ref = ProjRef)]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-all.expanded.rs b/crates/pin-project/tests/expand/naming/tuple_struct-all.expanded.rs
index 441da9c..f55a455 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-all.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-all.expanded.rs
@@ -1,68 +1,92 @@
 use pin_project::pin_project;
 #[pin(__private(project = Proj, project_ref = ProjRef, project_replace = ProjOwn))]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 struct Proj<'pin, T, U>(
     ::pin_project::__private::Pin<&'pin mut (T)>,
     &'pin mut (U),
 )
 where
     TupleStruct<T, U>: 'pin;
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 struct ProjRef<'pin, T, U>(
     ::pin_project::__private::Pin<&'pin (T)>,
     &'pin (U),
 )
 where
     TupleStruct<T, U>: 'pin;
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items
+)]
 struct ProjOwn<T, U>(::pin_project::__private::PhantomData<T>, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -119,7 +143,7 @@
         let _ = &this.0;
         let _ = &this.1;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -132,12 +156,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-all.rs b/crates/pin-project/tests/expand/naming/tuple_struct-all.rs
index 0d95cb0..5731749 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-all.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-all.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project = Proj, project_ref = ProjRef, project_replace = ProjOwn)]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-mut.expanded.rs b/crates/pin-project/tests/expand/naming/tuple_struct-mut.expanded.rs
index 615019b..7d6ebef 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-mut.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-mut.expanded.rs
@@ -1,43 +1,54 @@
 use pin_project::pin_project;
 #[pin(__private(project = Proj))]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 struct Proj<'pin, T, U>(
     ::pin_project::__private::Pin<&'pin mut (T)>,
     &'pin mut (U),
 )
 where
     TupleStruct<T, U>: 'pin;
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __TupleStructProjectionRef<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin (T)>,
         &'pin (U),
@@ -75,7 +86,7 @@
         let _ = &this.0;
         let _ = &this.1;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -88,12 +99,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-mut.rs b/crates/pin-project/tests/expand/naming/tuple_struct-mut.rs
index e9779a6..b7e3413 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-mut.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-mut.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project = Proj)]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-none.expanded.rs b/crates/pin-project/tests/expand/naming/tuple_struct-none.expanded.rs
index 6b962d6..ef95f0b 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-none.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-none.expanded.rs
@@ -1,33 +1,37 @@
 use pin_project::pin_project;
 #[pin(__private())]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __TupleStructProjection<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin mut (T)>,
         &'pin mut (U),
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __TupleStructProjectionRef<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin (T)>,
         &'pin (U),
@@ -68,7 +72,7 @@
         let _ = &this.0;
         let _ = &this.1;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -81,12 +85,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-none.rs b/crates/pin-project/tests/expand/naming/tuple_struct-none.rs
index 398b14f..f0f8777 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-none.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-none.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-own.expanded.rs b/crates/pin-project/tests/expand/naming/tuple_struct-own.expanded.rs
index c85f05d..9c96435 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-own.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-own.expanded.rs
@@ -1,45 +1,55 @@
 use pin_project::pin_project;
 #[pin(__private(project_replace = ProjOwn))]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items
+)]
 struct ProjOwn<T, U>(::pin_project::__private::PhantomData<T>, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __TupleStructProjection<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin mut (T)>,
         &'pin mut (U),
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __TupleStructProjectionRef<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin (T)>,
         &'pin (U),
@@ -105,7 +115,7 @@
         let _ = &this.0;
         let _ = &this.1;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -118,12 +128,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-own.rs b/crates/pin-project/tests/expand/naming/tuple_struct-own.rs
index a15ad40..45079a9 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-own.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-own.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_replace = ProjOwn)]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-ref.expanded.rs b/crates/pin-project/tests/expand/naming/tuple_struct-ref.expanded.rs
index 88c5550..fb73641 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-ref.expanded.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-ref.expanded.rs
@@ -1,43 +1,54 @@
 use pin_project::pin_project;
 #[pin(__private(project_ref = ProjRef))]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 struct ProjRef<'pin, T, U>(
     ::pin_project::__private::Pin<&'pin (T)>,
     &'pin (U),
 )
 where
     TupleStruct<T, U>: 'pin;
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __TupleStructProjection<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin mut (T)>,
         &'pin mut (U),
@@ -75,7 +86,7 @@
         let _ = &this.0;
         let _ = &this.1;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -88,12 +99,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/naming/tuple_struct-ref.rs b/crates/pin-project/tests/expand/naming/tuple_struct-ref.rs
index cc61edf..21490f4 100644
--- a/crates/pin-project/tests/expand/naming/tuple_struct-ref.rs
+++ b/crates/pin-project/tests/expand/naming/tuple_struct-ref.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_ref = ProjRef)]
diff --git a/crates/pin-project/tests/expand/not_unpin/enum.expanded.rs b/crates/pin-project/tests/expand/not_unpin/enum.expanded.rs
index e60896c..7a5de87 100644
--- a/crates/pin-project/tests/expand/not_unpin/enum.expanded.rs
+++ b/crates/pin-project/tests/expand/not_unpin/enum.expanded.rs
@@ -5,18 +5,24 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 enum EnumProj<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -28,18 +34,24 @@
     Tuple(::pin_project::__private::Pin<&'pin mut (T)>, &'pin mut (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 enum EnumProjRef<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -48,20 +60,26 @@
     Tuple(::pin_project::__private::Pin<&'pin (T)>, &'pin (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -117,17 +135,21 @@
     #[doc(hidden)]
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        _pin_project::__private::Wrapper<
-            'pin,
-            _pin_project::__private::PhantomPinned,
+        _pin_project::__private::PinnedFieldsOf<
+            _pin_project::__private::Wrapper<
+                'pin,
+                _pin_project::__private::PhantomPinned,
+            >,
         >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        _pin_project::__private::Wrapper<
-            'pin,
-            _pin_project::__private::PhantomPinned,
+        _pin_project::__private::PinnedFieldsOf<
+            _pin_project::__private::Wrapper<
+                'pin,
+                _pin_project::__private::PhantomPinned,
+            >,
         >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
diff --git a/crates/pin-project/tests/expand/not_unpin/enum.rs b/crates/pin-project/tests/expand/not_unpin/enum.rs
index ac0b3b8..77326bb 100644
--- a/crates/pin-project/tests/expand/not_unpin/enum.rs
+++ b/crates/pin-project/tests/expand/not_unpin/enum.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(!Unpin, project = EnumProj, project_ref = EnumProjRef)]
diff --git a/crates/pin-project/tests/expand/not_unpin/struct.expanded.rs b/crates/pin-project/tests/expand/not_unpin/struct.expanded.rs
index 8d8bb1f..cd515cf 100644
--- a/crates/pin-project/tests/expand/not_unpin/struct.expanded.rs
+++ b/crates/pin-project/tests/expand/not_unpin/struct.expanded.rs
@@ -5,25 +5,30 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -31,8 +36,7 @@
         pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         unpinned: &'pin mut (U),
     }
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -77,17 +81,21 @@
     #[doc(hidden)]
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        _pin_project::__private::Wrapper<
-            'pin,
-            _pin_project::__private::PhantomPinned,
+        _pin_project::__private::PinnedFieldsOf<
+            _pin_project::__private::Wrapper<
+                'pin,
+                _pin_project::__private::PhantomPinned,
+            >,
         >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        _pin_project::__private::Wrapper<
-            'pin,
-            _pin_project::__private::PhantomPinned,
+        _pin_project::__private::PinnedFieldsOf<
+            _pin_project::__private::Wrapper<
+                'pin,
+                _pin_project::__private::PhantomPinned,
+            >,
         >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
diff --git a/crates/pin-project/tests/expand/not_unpin/struct.rs b/crates/pin-project/tests/expand/not_unpin/struct.rs
index 233e6d4..dccd2cc 100644
--- a/crates/pin-project/tests/expand/not_unpin/struct.rs
+++ b/crates/pin-project/tests/expand/not_unpin/struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(!Unpin)]
diff --git a/crates/pin-project/tests/expand/not_unpin/tuple_struct.expanded.rs b/crates/pin-project/tests/expand/not_unpin/tuple_struct.expanded.rs
index 0b4b5d9..4f94f8e 100644
--- a/crates/pin-project/tests/expand/not_unpin/tuple_struct.expanded.rs
+++ b/crates/pin-project/tests/expand/not_unpin/tuple_struct.expanded.rs
@@ -1,33 +1,37 @@
 use pin_project::pin_project;
 #[pin(__private(!Unpin))]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __TupleStructProjection<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin mut (T)>,
         &'pin mut (U),
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __TupleStructProjectionRef<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin (T)>,
         &'pin (U),
@@ -71,17 +75,21 @@
     #[doc(hidden)]
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        _pin_project::__private::Wrapper<
-            'pin,
-            _pin_project::__private::PhantomPinned,
+        _pin_project::__private::PinnedFieldsOf<
+            _pin_project::__private::Wrapper<
+                'pin,
+                _pin_project::__private::PhantomPinned,
+            >,
         >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        _pin_project::__private::Wrapper<
-            'pin,
-            _pin_project::__private::PhantomPinned,
+        _pin_project::__private::PinnedFieldsOf<
+            _pin_project::__private::Wrapper<
+                'pin,
+                _pin_project::__private::PhantomPinned,
+            >,
         >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
diff --git a/crates/pin-project/tests/expand/not_unpin/tuple_struct.rs b/crates/pin-project/tests/expand/not_unpin/tuple_struct.rs
index c8065db..b535141 100644
--- a/crates/pin-project/tests/expand/not_unpin/tuple_struct.rs
+++ b/crates/pin-project/tests/expand/not_unpin/tuple_struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(!Unpin)]
diff --git a/crates/pin-project/tests/expand/pinned_drop/enum.expanded.rs b/crates/pin-project/tests/expand/pinned_drop/enum.expanded.rs
index b1ed73c..2e7ba5f 100644
--- a/crates/pin-project/tests/expand/pinned_drop/enum.expanded.rs
+++ b/crates/pin-project/tests/expand/pinned_drop/enum.expanded.rs
@@ -6,18 +6,24 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 enum EnumProj<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -29,18 +35,24 @@
     Tuple(::pin_project::__private::Pin<&'pin mut (T)>, &'pin mut (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 enum EnumProjRef<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -49,20 +61,26 @@
     Tuple(::pin_project::__private::Pin<&'pin (T)>, &'pin (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -115,7 +133,7 @@
             }
         }
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -129,14 +147,19 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     impl<T, U> _pin_project::__private::Drop for Enum<T, U> {
+        #[allow(clippy::missing_inline_in_public_items)]
         fn drop(&mut self) {
             unsafe {
                 let __pinned_self = _pin_project::__private::Pin::new_unchecked(self);
@@ -148,7 +171,7 @@
 #[doc(hidden)]
 impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
     unsafe fn drop(self: Pin<&mut Self>) {
-        #[allow(clippy::needless_pass_by_value)]
+        #[allow(clippy::needless_pass_by_value, clippy::single_call_fn)]
         fn __drop_inner<T, U>(__self: Pin<&mut Enum<T, U>>) {
             fn __drop_inner() {}
             let _ = __self;
diff --git a/crates/pin-project/tests/expand/pinned_drop/enum.rs b/crates/pin-project/tests/expand/pinned_drop/enum.rs
index c162ef6..8241fa6 100644
--- a/crates/pin-project/tests/expand/pinned_drop/enum.rs
+++ b/crates/pin-project/tests/expand/pinned_drop/enum.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use pin_project::{pin_project, pinned_drop};
diff --git a/crates/pin-project/tests/expand/pinned_drop/struct.expanded.rs b/crates/pin-project/tests/expand/pinned_drop/struct.expanded.rs
index 27ee41b..0848666 100644
--- a/crates/pin-project/tests/expand/pinned_drop/struct.expanded.rs
+++ b/crates/pin-project/tests/expand/pinned_drop/struct.expanded.rs
@@ -6,25 +6,30 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -32,8 +37,7 @@
         pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         unpinned: &'pin mut (U),
     }
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -75,7 +79,7 @@
         let _ = &this.pinned;
         let _ = &this.unpinned;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -88,14 +92,19 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     impl<T, U> _pin_project::__private::Drop for Struct<T, U> {
+        #[allow(clippy::missing_inline_in_public_items)]
         fn drop(&mut self) {
             unsafe {
                 let __pinned_self = _pin_project::__private::Pin::new_unchecked(self);
@@ -107,7 +116,7 @@
 #[doc(hidden)]
 impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
     unsafe fn drop(self: Pin<&mut Self>) {
-        #[allow(clippy::needless_pass_by_value)]
+        #[allow(clippy::needless_pass_by_value, clippy::single_call_fn)]
         fn __drop_inner<T, U>(__self: Pin<&mut Struct<T, U>>) {
             fn __drop_inner() {}
             let _ = __self;
diff --git a/crates/pin-project/tests/expand/pinned_drop/struct.rs b/crates/pin-project/tests/expand/pinned_drop/struct.rs
index 691d3cb..1e6bf57 100644
--- a/crates/pin-project/tests/expand/pinned_drop/struct.rs
+++ b/crates/pin-project/tests/expand/pinned_drop/struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use pin_project::{pin_project, pinned_drop};
diff --git a/crates/pin-project/tests/expand/pinned_drop/tuple_struct.expanded.rs b/crates/pin-project/tests/expand/pinned_drop/tuple_struct.expanded.rs
index 83cd3b1..8a362ba 100644
--- a/crates/pin-project/tests/expand/pinned_drop/tuple_struct.expanded.rs
+++ b/crates/pin-project/tests/expand/pinned_drop/tuple_struct.expanded.rs
@@ -2,33 +2,37 @@
 use pin_project::{pin_project, pinned_drop};
 #[pin(__private(PinnedDrop))]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __TupleStructProjection<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin mut (T)>,
         &'pin mut (U),
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __TupleStructProjectionRef<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin (T)>,
         &'pin (U),
@@ -69,7 +73,7 @@
         let _ = &this.0;
         let _ = &this.1;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -82,14 +86,19 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     impl<T, U> _pin_project::__private::Drop for TupleStruct<T, U> {
+        #[allow(clippy::missing_inline_in_public_items)]
         fn drop(&mut self) {
             unsafe {
                 let __pinned_self = _pin_project::__private::Pin::new_unchecked(self);
@@ -101,7 +110,7 @@
 #[doc(hidden)]
 impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
     unsafe fn drop(self: Pin<&mut Self>) {
-        #[allow(clippy::needless_pass_by_value)]
+        #[allow(clippy::needless_pass_by_value, clippy::single_call_fn)]
         fn __drop_inner<T, U>(__self: Pin<&mut TupleStruct<T, U>>) {
             fn __drop_inner() {}
             let _ = __self;
diff --git a/crates/pin-project/tests/expand/pinned_drop/tuple_struct.rs b/crates/pin-project/tests/expand/pinned_drop/tuple_struct.rs
index 1f4917c..5b4d13b 100644
--- a/crates/pin-project/tests/expand/pinned_drop/tuple_struct.rs
+++ b/crates/pin-project/tests/expand/pinned_drop/tuple_struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use pin_project::{pin_project, pinned_drop};
diff --git a/crates/pin-project/tests/expand/project_replace/enum.expanded.rs b/crates/pin-project/tests/expand/project_replace/enum.expanded.rs
index 230f6a9..4e9688b 100644
--- a/crates/pin-project/tests/expand/project_replace/enum.expanded.rs
+++ b/crates/pin-project/tests/expand/project_replace/enum.expanded.rs
@@ -5,38 +5,50 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(variant_size_differences)]
-#[allow(clippy::large_enum_variant)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    variant_size_differences,
+    clippy::large_enum_variant,
+    clippy::missing_docs_in_private_items
+)]
 enum EnumProjOwn<T, U> {
     Struct { pinned: ::pin_project::__private::PhantomData<T>, unpinned: U },
     Tuple(::pin_project::__private::PhantomData<T>, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -87,7 +99,7 @@
             }
         }
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -101,12 +113,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/project_replace/enum.rs b/crates/pin-project/tests/expand/project_replace/enum.rs
index d737f64..c40f728 100644
--- a/crates/pin-project/tests/expand/project_replace/enum.rs
+++ b/crates/pin-project/tests/expand/project_replace/enum.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_replace = EnumProjOwn)]
diff --git a/crates/pin-project/tests/expand/project_replace/struct.expanded.rs b/crates/pin-project/tests/expand/project_replace/struct.expanded.rs
index 126640a..6e42035 100644
--- a/crates/pin-project/tests/expand/project_replace/struct.expanded.rs
+++ b/crates/pin-project/tests/expand/project_replace/struct.expanded.rs
@@ -5,25 +5,30 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -31,8 +36,7 @@
         pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         unpinned: &'pin mut (U),
     }
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -40,7 +44,7 @@
         pinned: ::pin_project::__private::Pin<&'pin (T)>,
         unpinned: &'pin (U),
     }
-    #[allow(dead_code)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items)]
     struct __StructProjectionOwned<T, U> {
         pinned: ::pin_project::__private::PhantomData<T>,
         unpinned: U,
@@ -104,7 +108,7 @@
         let _ = &this.pinned;
         let _ = &this.unpinned;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -117,12 +121,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/project_replace/struct.rs b/crates/pin-project/tests/expand/project_replace/struct.rs
index 5865526..4ff984c 100644
--- a/crates/pin-project/tests/expand/project_replace/struct.rs
+++ b/crates/pin-project/tests/expand/project_replace/struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_replace)]
diff --git a/crates/pin-project/tests/expand/project_replace/tuple_struct.expanded.rs b/crates/pin-project/tests/expand/project_replace/tuple_struct.expanded.rs
index fced02c..c5b9be5 100644
--- a/crates/pin-project/tests/expand/project_replace/tuple_struct.expanded.rs
+++ b/crates/pin-project/tests/expand/project_replace/tuple_struct.expanded.rs
@@ -1,40 +1,44 @@
 use pin_project::pin_project;
 #[pin(__private(project_replace))]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __TupleStructProjection<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin mut (T)>,
         &'pin mut (U),
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __TupleStructProjectionRef<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin (T)>,
         &'pin (U),
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items)]
     struct __TupleStructProjectionOwned<T, U>(
         ::pin_project::__private::PhantomData<T>,
         U,
@@ -98,7 +102,7 @@
         let _ = &this.0;
         let _ = &this.1;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -111,12 +115,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/project_replace/tuple_struct.rs b/crates/pin-project/tests/expand/project_replace/tuple_struct.rs
index c4d05f5..2437891 100644
--- a/crates/pin-project/tests/expand/project_replace/tuple_struct.rs
+++ b/crates/pin-project/tests/expand/project_replace/tuple_struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_replace)]
diff --git a/crates/pin-project/tests/expand/pub/enum.expanded.rs b/crates/pin-project/tests/expand/pub/enum.expanded.rs
index 8c9eaec..58d3a42 100644
--- a/crates/pin-project/tests/expand/pub/enum.expanded.rs
+++ b/crates/pin-project/tests/expand/pub/enum.expanded.rs
@@ -5,18 +5,24 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 pub(crate) enum EnumProj<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -28,18 +34,24 @@
     Tuple(::pin_project::__private::Pin<&'pin mut (T)>, &'pin mut (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 pub(crate) enum EnumProjRef<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -48,20 +60,26 @@
     Tuple(::pin_project::__private::Pin<&'pin (T)>, &'pin (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -114,7 +132,7 @@
             }
         }
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     pub struct __Enum<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -128,12 +146,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U>
     where
-        __Enum<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Enum<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/pub/enum.rs b/crates/pin-project/tests/expand/pub/enum.rs
index 7c8577f..c12c4c0 100644
--- a/crates/pin-project/tests/expand/pub/enum.rs
+++ b/crates/pin-project/tests/expand/pub/enum.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project = EnumProj, project_ref = EnumProjRef)]
diff --git a/crates/pin-project/tests/expand/pub/struct.expanded.rs b/crates/pin-project/tests/expand/pub/struct.expanded.rs
index cfa93b6..b2216cc 100644
--- a/crates/pin-project/tests/expand/pub/struct.expanded.rs
+++ b/crates/pin-project/tests/expand/pub/struct.expanded.rs
@@ -5,25 +5,30 @@
     pub pinned: T,
     pub unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     pub(crate) struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -31,8 +36,7 @@
         pub pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         pub unpinned: &'pin mut (U),
     }
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     pub(crate) struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -74,7 +78,7 @@
         let _ = &this.pinned;
         let _ = &this.unpinned;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     pub struct __Struct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -87,12 +91,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U>
     where
-        __Struct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __Struct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/pub/struct.rs b/crates/pin-project/tests/expand/pub/struct.rs
index f50d1e9..053debf 100644
--- a/crates/pin-project/tests/expand/pub/struct.rs
+++ b/crates/pin-project/tests/expand/pub/struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/expand/pub/tuple_struct.expanded.rs b/crates/pin-project/tests/expand/pub/tuple_struct.expanded.rs
index cf495a2..2f2633f 100644
--- a/crates/pin-project/tests/expand/pub/tuple_struct.expanded.rs
+++ b/crates/pin-project/tests/expand/pub/tuple_struct.expanded.rs
@@ -1,33 +1,37 @@
 use pin_project::pin_project;
 #[pin(__private())]
 pub struct TupleStruct<T, U>(#[pin] pub T, pub U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     pub(crate) struct __TupleStructProjection<'pin, T, U>(
         pub ::pin_project::__private::Pin<&'pin mut (T)>,
         pub &'pin mut (U),
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     pub(crate) struct __TupleStructProjectionRef<'pin, T, U>(
         pub ::pin_project::__private::Pin<&'pin (T)>,
         pub &'pin (U),
@@ -68,7 +72,7 @@
         let _ = &this.0;
         let _ = &this.1;
     }
-    #[allow(missing_debug_implementations)]
+    #[allow(missing_debug_implementations, unnameable_types)]
     pub struct __TupleStruct<'pin, T, U> {
         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
             'pin,
@@ -81,12 +85,16 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     #[doc(hidden)]
     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
     where
-        __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin,
+        _pin_project::__private::PinnedFieldsOf<
+            __TupleStruct<'pin, T, U>,
+        >: _pin_project::__private::Unpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/pub/tuple_struct.rs b/crates/pin-project/tests/expand/pub/tuple_struct.rs
index 5756aaf..3499720 100644
--- a/crates/pin-project/tests/expand/pub/tuple_struct.rs
+++ b/crates/pin-project/tests/expand/pub/tuple_struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/expand/unsafe_unpin/enum.expanded.rs b/crates/pin-project/tests/expand/unsafe_unpin/enum.expanded.rs
index 2df2635..3917bc1 100644
--- a/crates/pin-project/tests/expand/unsafe_unpin/enum.expanded.rs
+++ b/crates/pin-project/tests/expand/unsafe_unpin/enum.expanded.rs
@@ -5,18 +5,24 @@
     Tuple(#[pin] T, U),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::mut_mut)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::mut_mut
+)]
 enum EnumProj<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -28,18 +34,24 @@
     Tuple(::pin_project::__private::Pin<&'pin mut (T)>, &'pin mut (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(dead_code)]
-#[allow(clippy::ref_option_ref)]
+#[allow(
+    dead_code,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::missing_docs_in_private_items,
+    clippy::ref_option_ref
+)]
 enum EnumProjRef<'pin, T, U>
 where
     Enum<T, U>: 'pin,
@@ -48,20 +60,26 @@
     Tuple(::pin_project::__private::Pin<&'pin (T)>, &'pin (U)),
     Unit,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
@@ -116,7 +134,9 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U>
     where
-        _pin_project::__private::Wrapper<'pin, Self>: _pin_project::UnsafeUnpin,
+        _pin_project::__private::PinnedFieldsOf<
+            _pin_project::__private::Wrapper<'pin, Self>,
+        >: _pin_project::UnsafeUnpin,
     {}
     trait EnumMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/unsafe_unpin/enum.rs b/crates/pin-project/tests/expand/unsafe_unpin/enum.rs
index d368d71..2e7b7b2 100644
--- a/crates/pin-project/tests/expand/unsafe_unpin/enum.rs
+++ b/crates/pin-project/tests/expand/unsafe_unpin/enum.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::{pin_project, UnsafeUnpin};
 
 #[pin_project(UnsafeUnpin, project = EnumProj, project_ref = EnumProjRef)]
diff --git a/crates/pin-project/tests/expand/unsafe_unpin/struct.expanded.rs b/crates/pin-project/tests/expand/unsafe_unpin/struct.expanded.rs
index 838d0d3..35ea5ec 100644
--- a/crates/pin-project/tests/expand/unsafe_unpin/struct.expanded.rs
+++ b/crates/pin-project/tests/expand/unsafe_unpin/struct.expanded.rs
@@ -5,25 +5,30 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __StructProjection<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -31,8 +36,7 @@
         pinned: ::pin_project::__private::Pin<&'pin mut (T)>,
         unpinned: &'pin mut (U),
     }
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __StructProjectionRef<'pin, T, U>
     where
         Struct<T, U>: 'pin,
@@ -76,7 +80,9 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U>
     where
-        _pin_project::__private::Wrapper<'pin, Self>: _pin_project::UnsafeUnpin,
+        _pin_project::__private::PinnedFieldsOf<
+            _pin_project::__private::Wrapper<'pin, Self>,
+        >: _pin_project::UnsafeUnpin,
     {}
     trait StructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
diff --git a/crates/pin-project/tests/expand/unsafe_unpin/struct.rs b/crates/pin-project/tests/expand/unsafe_unpin/struct.rs
index b0851b1..4e73f78 100644
--- a/crates/pin-project/tests/expand/unsafe_unpin/struct.rs
+++ b/crates/pin-project/tests/expand/unsafe_unpin/struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::{pin_project, UnsafeUnpin};
 
 #[pin_project(UnsafeUnpin)]
diff --git a/crates/pin-project/tests/expand/unsafe_unpin/tuple_struct.expanded.rs b/crates/pin-project/tests/expand/unsafe_unpin/tuple_struct.expanded.rs
index af8ac00..889df85 100644
--- a/crates/pin-project/tests/expand/unsafe_unpin/tuple_struct.expanded.rs
+++ b/crates/pin-project/tests/expand/unsafe_unpin/tuple_struct.expanded.rs
@@ -1,33 +1,37 @@
 use pin_project::{pin_project, UnsafeUnpin};
 #[pin(__private(UnsafeUnpin))]
 struct TupleStruct<T, U>(#[pin] T, U);
-#[allow(box_pointers)]
-#[allow(deprecated)]
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(unreachable_pub)]
-#[allow(unused_tuple_struct_fields)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::pattern_type_mismatch)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
-#[allow(unused_qualifications)]
-#[allow(clippy::semicolon_if_nothing_returned)]
-#[allow(clippy::use_self)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    unused_qualifications,
+    deprecated,
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    unreachable_pub,
+    unused_tuple_struct_fields,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::pattern_type_mismatch,
+    clippy::pub_with_shorthand,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds,
+    clippy::needless_lifetimes,
+    clippy::semicolon_if_nothing_returned,
+    clippy::use_self,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[allow(unused_extern_crates)]
     extern crate pin_project as _pin_project;
-    #[allow(dead_code)]
-    #[allow(clippy::mut_mut)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
     struct __TupleStructProjection<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin mut (T)>,
         &'pin mut (U),
     )
     where
         TupleStruct<T, U>: 'pin;
-    #[allow(dead_code)]
-    #[allow(clippy::ref_option_ref)]
+    #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::ref_option_ref)]
     struct __TupleStructProjectionRef<'pin, T, U>(
         ::pin_project::__private::Pin<&'pin (T)>,
         &'pin (U),
@@ -70,7 +74,9 @@
     }
     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
     where
-        _pin_project::__private::Wrapper<'pin, Self>: _pin_project::UnsafeUnpin,
+        _pin_project::__private::PinnedFieldsOf<
+            _pin_project::__private::Wrapper<'pin, Self>,
+        >: _pin_project::UnsafeUnpin,
     {}
     trait TupleStructMustNotImplDrop {}
     #[allow(clippy::drop_bounds, drop_bounds)]
@@ -81,5 +87,5 @@
         unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
     }
 };
-unsafe impl<T: Unpin, U> UnsafeUnpin for Struct<T, U> {}
+unsafe impl<T: Unpin, U> UnsafeUnpin for TupleStruct<T, U> {}
 fn main() {}
diff --git a/crates/pin-project/tests/expand/unsafe_unpin/tuple_struct.rs b/crates/pin-project/tests/expand/unsafe_unpin/tuple_struct.rs
index 964617a..9113307 100644
--- a/crates/pin-project/tests/expand/unsafe_unpin/tuple_struct.rs
+++ b/crates/pin-project/tests/expand/unsafe_unpin/tuple_struct.rs
@@ -1,8 +1,10 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::{pin_project, UnsafeUnpin};
 
 #[pin_project(UnsafeUnpin)]
 struct TupleStruct<T, U>(#[pin] T, U);
 
-unsafe impl<T: Unpin, U> UnsafeUnpin for Struct<T, U> {}
+unsafe impl<T: Unpin, U> UnsafeUnpin for TupleStruct<T, U> {}
 
 fn main() {}
diff --git a/crates/pin-project/tests/expandtest.rs b/crates/pin-project/tests/expandtest.rs
index 04a0666..832a0ea 100644
--- a/crates/pin-project/tests/expandtest.rs
+++ b/crates/pin-project/tests/expandtest.rs
@@ -1,44 +1,10 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 #![cfg(not(miri))]
-#![cfg(not(careful))]
-#![warn(rust_2018_idioms, single_use_lifetimes)]
-
-use std::{
-    env,
-    process::{Command, ExitStatus, Stdio},
-};
-
-const PATH: &str = "tests/expand/**/*.rs";
 
 #[rustversion::attr(not(nightly), ignore)]
 #[test]
 fn expandtest() {
-    let is_ci = env::var_os("CI").is_some();
-    let cargo = &*env::var("CARGO").unwrap_or_else(|_| "cargo".into());
-    if !has_command(&[cargo, "expand"]) {
-        if is_ci {
-            panic!("expandtest requires cargo-expand");
-        }
-        return;
-    }
-
     let args = &["--all-features"];
-    if is_ci {
-        macrotest::expand_without_refresh_args(PATH, args);
-    } else {
-        env::set_var("MACROTEST", "overwrite");
-        macrotest::expand_args(PATH, args);
-    }
-}
-
-fn has_command(command: &[&str]) -> bool {
-    Command::new(command[0])
-        .args(&command[1..])
-        .arg("--version")
-        .stdin(Stdio::null())
-        .stdout(Stdio::null())
-        .stderr(Stdio::null())
-        .status()
-        .as_ref()
-        .map(ExitStatus::success)
-        .unwrap_or(false)
+    macrotest::expand_args("tests/expand/**/*.rs", args);
 }
diff --git a/crates/pin-project/tests/include/basic-safe-part.rs b/crates/pin-project/tests/include/basic-safe-part.rs
index 0b7c43e..7f216f6 100644
--- a/crates/pin-project/tests/include/basic-safe-part.rs
+++ b/crates/pin-project/tests/include/basic-safe-part.rs
@@ -1,125 +1,176 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // default #[pin_project], PinnedDrop, project_replace, !Unpin, and UnsafeUnpin without UnsafeUnpin impl are completely safe.
 
+/// Testing default struct.
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[::pin_project::pin_project]
 #[derive(Debug)]
 pub struct DefaultStruct<T, U> {
+    /// Pinned field.
     #[pin]
     pub pinned: T,
+    /// Unpinned field.
     pub unpinned: U,
 }
 
+/// Testing named struct.
 #[::pin_project::pin_project(
     project = DefaultStructNamedProj,
     project_ref = DefaultStructNamedProjRef,
 )]
 #[derive(Debug)]
+#[allow(clippy::exhaustive_structs)] // for the type itself
 pub struct DefaultStructNamed<T, U> {
+    /// Pinned field.
     #[pin]
     pub pinned: T,
+    /// Unpinned field.
     pub unpinned: U,
 }
 
+/// Testing default tuple struct.
 #[::pin_project::pin_project]
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[derive(Debug)]
 pub struct DefaultTupleStruct<T, U>(#[pin] pub T, pub U);
 
+/// Testing named tuple struct.
 #[::pin_project::pin_project(
     project = DefaultTupleStructNamedProj,
     project_ref = DefaultTupleStructNamedProjRef,
 )]
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[derive(Debug)]
 pub struct DefaultTupleStructNamed<T, U>(#[pin] pub T, pub U);
 
+/// Testing enum.
+#[allow(clippy::exhaustive_enums)] // for the type itself
 #[::pin_project::pin_project(
     project = DefaultEnumProj,
     project_ref = DefaultEnumProjRef,
 )]
 #[derive(Debug)]
 pub enum DefaultEnum<T, U> {
+    /// Struct variant.
     Struct {
+        /// Pinned field.
         #[pin]
         pinned: T,
+        /// Unpinned field.
         unpinned: U,
     },
+    /// Tuple variant.
     Tuple(#[pin] T, U),
+    /// Unit variant.
     Unit,
 }
 
+/// Testing pinned drop struct.
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[::pin_project::pin_project(PinnedDrop)]
 #[derive(Debug)]
 pub struct PinnedDropStruct<T, U> {
+    /// Pinned field.
     #[pin]
     pub pinned: T,
+    /// Unpinned field.
     pub unpinned: U,
 }
 
 #[::pin_project::pinned_drop]
 impl<T, U> PinnedDrop for PinnedDropStruct<T, U> {
+    #[allow(clippy::absolute_paths)]
     fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
 }
 
+/// Testing pinned drop tuple struct.
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[::pin_project::pin_project(PinnedDrop)]
 #[derive(Debug)]
 pub struct PinnedDropTupleStruct<T, U>(#[pin] pub T, pub U);
 
 #[::pin_project::pinned_drop]
 impl<T, U> PinnedDrop for PinnedDropTupleStruct<T, U> {
+    #[allow(clippy::absolute_paths)]
     fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
 }
 
+/// Testing pinned drop enum.
+#[allow(clippy::absolute_paths, clippy::exhaustive_enums)] // for the type itself
 #[::pin_project::pin_project(
     PinnedDrop,
     project = PinnedDropEnumProj,
     project_ref = PinnedDropEnumProjRef,
 )]
 #[derive(Debug)]
-pub enum PinnedDropEnum<T, U> {
+pub enum PinnedDropEnum<T: ::pin_project::__private::Unpin, U> {
+    /// Struct variant.
     Struct {
+        /// Pinned field.
         #[pin]
         pinned: T,
+        /// Unpinned field.
         unpinned: U,
     },
+    /// Tuple variant.
     Tuple(#[pin] T, U),
+    /// Unit variant.
     Unit,
 }
 
 #[::pin_project::pinned_drop]
-impl<T, U> PinnedDrop for PinnedDropEnum<T, U> {
+#[allow(clippy::absolute_paths)]
+impl<T: ::pin_project::__private::Unpin, U> PinnedDrop for PinnedDropEnum<T, U> {
     fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
 }
 
+/// Testing default struct with replace.
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[::pin_project::pin_project(project_replace)]
 #[derive(Debug)]
 pub struct ReplaceStruct<T, U> {
+    /// Pinned field.
     #[pin]
     pub pinned: T,
+    /// Unpinned field.
     pub unpinned: U,
 }
 
+/// Testing named struct with replace.
 #[::pin_project::pin_project(
     project = ReplaceStructNamedProj,
     project_ref = ReplaceStructNamedProjRef,
     project_replace = ReplaceStructNamedProjOwn,
 )]
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[derive(Debug)]
 pub struct ReplaceStructNamed<T, U> {
+    /// Pinned field.
     #[pin]
     pub pinned: T,
+    /// Unpinned field.
     pub unpinned: U,
 }
 
+/// Testing default struct with replace.
 #[::pin_project::pin_project(project_replace)]
 #[derive(Debug)]
+#[allow(clippy::exhaustive_structs)] // for the type itself
 pub struct ReplaceTupleStruct<T, U>(#[pin] pub T, pub U);
 
+/// Testing named struct with replace.
 #[::pin_project::pin_project(
     project = ReplaceTupleStructNamedProj,
     project_ref = ReplaceTupleStructNamedProjRef,
     project_replace = ReplaceTupleStructNamedProjOwn,
 )]
 #[derive(Debug)]
+#[allow(clippy::exhaustive_structs)] // for the type itself
 pub struct ReplaceTupleStructNamed<T, U>(#[pin] pub T, pub U);
 
+/// Testing enum with replace.
+#[allow(clippy::exhaustive_enums)] // for the type itself
 #[::pin_project::pin_project(
     project = ReplaceEnumProj,
     project_ref = ReplaceEnumProjRef,
@@ -127,27 +178,40 @@
 )]
 #[derive(Debug)]
 pub enum ReplaceEnum<T, U> {
+    /// Struct variant.
     Struct {
+        /// Pinned field.
         #[pin]
         pinned: T,
+        /// Unpinned field.
         unpinned: U,
     },
+    /// Tuple variant.
     Tuple(#[pin] T, U),
+    /// Unit variant.
     Unit,
 }
 
+/// Testing struct with unsafe `Unpin`.
 #[::pin_project::pin_project(UnsafeUnpin)]
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[derive(Debug)]
 pub struct UnsafeUnpinStruct<T, U> {
+    /// Pinned field.
     #[pin]
     pub pinned: T,
+    /// Unpinned field.
     pub unpinned: U,
 }
 
+/// Testing tuple struct with unsafe `Unpin`.
 #[::pin_project::pin_project(UnsafeUnpin)]
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[derive(Debug)]
 pub struct UnsafeUnpinTupleStruct<T, U>(#[pin] pub T, pub U);
 
+/// Testing enum unsafe `Unpin`.
+#[allow(clippy::exhaustive_enums)] // for the type itself
 #[::pin_project::pin_project(
     UnsafeUnpin,
     project = UnsafeUnpinEnumProj,
@@ -155,27 +219,40 @@
 )]
 #[derive(Debug)]
 pub enum UnsafeUnpinEnum<T, U> {
+    /// Struct variant.
     Struct {
+        /// Pinned field.
         #[pin]
         pinned: T,
+        /// Unpinned field.
         unpinned: U,
     },
+    /// Tuple variant.
     Tuple(#[pin] T, U),
+    /// Unit variant.
     Unit,
 }
 
+/// Testing struct with `!Unpin`.
 #[::pin_project::pin_project(!Unpin)]
 #[derive(Debug)]
+#[allow(clippy::exhaustive_structs)] // for the type itself
 pub struct NotUnpinStruct<T, U> {
+    /// Pinned field.
     #[pin]
     pub pinned: T,
+    /// Unpinned field.
     pub unpinned: U,
 }
 
+/// Testing tuple struct with `!Unpin`.
+#[allow(clippy::exhaustive_structs)] // for the type itself
 #[::pin_project::pin_project(!Unpin)]
 #[derive(Debug)]
 pub struct NotUnpinTupleStruct<T, U>(#[pin] pub T, pub U);
 
+/// Testing enum with `!Unpin`.
+#[allow(clippy::exhaustive_enums)] // for the type itself
 #[::pin_project::pin_project(
     !Unpin,
     project = NotUnpinEnumProj,
@@ -183,11 +260,16 @@
 )]
 #[derive(Debug)]
 pub enum NotUnpinEnum<T, U> {
+    /// Struct variant.
     Struct {
+        /// Pinned field.
         #[pin]
         pinned: T,
+        /// Unpinned field.
         unpinned: U,
     },
+    /// Tuple variant.
     Tuple(#[pin] T, U),
+    /// Unit variant.
     Unit,
 }
diff --git a/crates/pin-project/tests/include/basic.rs b/crates/pin-project/tests/include/basic.rs
index 57cbaeb..a506cad 100644
--- a/crates/pin-project/tests/include/basic.rs
+++ b/crates/pin-project/tests/include/basic.rs
@@ -1,16 +1,18 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 include!("basic-safe-part.rs");
 
-#[allow(clippy::undocumented_unsafe_blocks)]
+#[allow(unused_qualifications, clippy::absolute_paths, clippy::undocumented_unsafe_blocks)]
 unsafe impl<T: ::pin_project::__private::Unpin, U: ::pin_project::__private::Unpin>
     ::pin_project::UnsafeUnpin for UnsafeUnpinStruct<T, U>
 {
 }
-#[allow(clippy::undocumented_unsafe_blocks)]
+#[allow(unused_qualifications, clippy::absolute_paths, clippy::undocumented_unsafe_blocks)]
 unsafe impl<T: ::pin_project::__private::Unpin, U: ::pin_project::__private::Unpin>
     ::pin_project::UnsafeUnpin for UnsafeUnpinTupleStruct<T, U>
 {
 }
-#[allow(clippy::undocumented_unsafe_blocks)]
+#[allow(unused_qualifications, clippy::absolute_paths, clippy::undocumented_unsafe_blocks)]
 unsafe impl<T: ::pin_project::__private::Unpin, U: ::pin_project::__private::Unpin>
     ::pin_project::UnsafeUnpin for UnsafeUnpinEnum<T, U>
 {
diff --git a/crates/pin-project/tests/lint.rs b/crates/pin-project/tests/lint.rs
deleted file mode 100644
index d12cdd7..0000000
--- a/crates/pin-project/tests/lint.rs
+++ /dev/null
@@ -1,1203 +0,0 @@
-// Check interoperability with rustc and clippy lints.
-
-// for old compilers
-#![allow(unknown_lints)]
-#![warn(nonstandard_style, rust_2018_idioms, unused)]
-// Note: This does not guarantee compatibility with forbidding these lints in the future.
-// If rustc adds a new lint, we may not be able to keep this.
-#![forbid(future_incompatible, rust_2018_compatibility, rust_2021_compatibility)]
-// lints forbidden as a part of future_incompatible, rust_2018_compatibility, and rust_2021_compatibility are not included in the list below.
-// elided_lifetimes_in_paths, explicit_outlives_requirements, unused_extern_crates:  as a part of rust_2018_idioms
-// unsafe_op_in_unsafe_fn: requires Rust 1.52. and, we don't generate unsafe fn.
-// non_exhaustive_omitted_patterns, multiple_supertrait_upcastable: unstable
-// unstable_features: no way to generate #![feature(..)] by macros, expect for unstable inner attribute. and this lint is deprecated: https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html#unstable-features
-// unused_crate_dependencies, must_not_suspend: unrelated
-// unsafe_code: checked in forbid_unsafe module
-#![warn(
-    box_pointers,
-    deprecated_in_future,
-    fuzzy_provenance_casts,
-    invalid_reference_casting,
-    let_underscore_drop,
-    lossy_provenance_casts,
-    macro_use_extern_crate,
-    meta_variable_misuse,
-    missing_abi,
-    missing_copy_implementations,
-    missing_debug_implementations,
-    missing_docs,
-    non_ascii_idents,
-    noop_method_call,
-    private_bounds,
-    private_interfaces,
-    single_use_lifetimes,
-    trivial_casts,
-    trivial_numeric_casts,
-    // unnameable_types, // TODO
-    unreachable_pub,
-    unused_import_braces,
-    unused_lifetimes,
-    unused_qualifications,
-    unused_results,
-    unused_tuple_struct_fields,
-    variant_size_differences
-)]
-#![warn(clippy::all, clippy::pedantic, clippy::nursery, clippy::restriction)]
-#![allow(clippy::blanket_clippy_restriction_lints)] // this is a test, so enable all restriction lints intentionally.
-#![allow(
-    clippy::absolute_paths,
-    clippy::exhaustive_enums,
-    clippy::exhaustive_structs,
-    clippy::min_ident_chars,
-    clippy::pub_with_shorthand,
-    clippy::single_call_fn,
-    clippy::single_char_lifetime_names
-)] // TODO
-
-pub mod basic {
-    include!("include/basic.rs");
-
-    pub mod inside_macro {
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[::pin_project::pin_project]
-                #[derive(Debug)]
-                pub struct DefaultStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(
-                    project = DefaultStructNamedProj,
-                    project_ref = DefaultStructNamedProjRef,
-                )]
-                #[derive(Debug)]
-                pub struct DefaultStructNamed<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project]
-                #[derive(Debug)]
-                pub struct DefaultTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    project = DefaultTupleStructNamedProj,
-                    project_ref = DefaultTupleStructNamedProjRef,
-                )]
-                #[derive(Debug)]
-                pub struct DefaultTupleStructNamed<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    project = DefaultEnumProj,
-                    project_ref = DefaultEnumProjRef,
-                )]
-                #[derive(Debug)]
-                pub enum DefaultEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-
-                #[::pin_project::pin_project(PinnedDrop)]
-                #[derive(Debug)]
-                pub struct PinnedDropStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pinned_drop]
-                impl<T, U> PinnedDrop for PinnedDropStruct<T, U> {
-                    fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
-                }
-
-                #[::pin_project::pin_project(PinnedDrop)]
-                #[derive(Debug)]
-                pub struct PinnedDropTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pinned_drop]
-                impl<T, U> PinnedDrop for PinnedDropTupleStruct<T, U> {
-                    fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
-                }
-
-                #[::pin_project::pin_project(
-                    PinnedDrop,
-                    project = PinnedDropEnumProj,
-                    project_ref = PinnedDropEnumProjRef,
-                )]
-                #[derive(Debug)]
-                pub enum PinnedDropEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-
-                #[::pin_project::pinned_drop]
-                impl<T, U> PinnedDrop for PinnedDropEnum<T, U> {
-                    fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
-                }
-
-                #[::pin_project::pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct ReplaceStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(
-                    project = ReplaceStructNamedProj,
-                    project_ref = ReplaceStructNamedProjRef,
-                    project_replace = ReplaceStructNamedProjOwn,
-                )]
-                #[derive(Debug)]
-                pub struct ReplaceStructNamed<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct ReplaceTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    project = ReplaceTupleStructNamedProj,
-                    project_ref = ReplaceTupleStructNamedProjRef,
-                    project_replace = ReplaceTupleStructNamedProjOwn,
-                )]
-                #[derive(Debug)]
-                pub struct ReplaceTupleStructNamed<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    project = ReplaceEnumProj,
-                    project_ref = ReplaceEnumProjRef,
-                    project_replace = ReplaceEnumProjOwn,
-                )]
-                #[derive(Debug)]
-                pub enum ReplaceEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-
-                #[::pin_project::pin_project(UnsafeUnpin)]
-                #[derive(Debug)]
-                pub struct UnsafeUnpinStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(UnsafeUnpin)]
-                #[derive(Debug)]
-                pub struct UnsafeUnpinTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    UnsafeUnpin,
-                    project = UnsafeUnpinEnumProj,
-                    project_ref = UnsafeUnpinEnumProjRef,
-                )]
-                #[derive(Debug)]
-                pub enum UnsafeUnpinEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-
-                #[::pin_project::pin_project(!Unpin)]
-                #[derive(Debug)]
-                pub struct NotUnpinStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(!Unpin)]
-                #[derive(Debug)]
-                pub struct NotUnpinTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    !Unpin,
-                    project = NotUnpinEnumProj,
-                    project_ref = NotUnpinEnumProjRef,
-                )]
-                #[derive(Debug)]
-                pub enum NotUnpinEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-
-                #[allow(clippy::undocumented_unsafe_blocks)]
-                unsafe impl<T: ::pin_project::__private::Unpin, U: ::pin_project::__private::Unpin>
-                    ::pin_project::UnsafeUnpin for UnsafeUnpinStruct<T, U>
-                {
-                }
-                #[allow(clippy::undocumented_unsafe_blocks)]
-                unsafe impl<T: ::pin_project::__private::Unpin, U: ::pin_project::__private::Unpin>
-                    ::pin_project::UnsafeUnpin for UnsafeUnpinTupleStruct<T, U>
-                {
-                }
-                #[allow(clippy::undocumented_unsafe_blocks)]
-                unsafe impl<T: ::pin_project::__private::Unpin, U: ::pin_project::__private::Unpin>
-                    ::pin_project::UnsafeUnpin for UnsafeUnpinEnum<T, U>
-                {
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-pub mod forbid_unsafe {
-    #![forbid(unsafe_code)]
-
-    include!("include/basic-safe-part.rs");
-
-    pub mod inside_macro {
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[::pin_project::pin_project]
-                #[derive(Debug)]
-                pub struct DefaultStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(
-                    project = DefaultStructNamedProj,
-                    project_ref = DefaultStructNamedProjRef,
-                )]
-                #[derive(Debug)]
-                pub struct DefaultStructNamed<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project]
-                #[derive(Debug)]
-                pub struct DefaultTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    project = DefaultTupleStructNamedProj,
-                    project_ref = DefaultTupleStructNamedProjRef,
-                )]
-                #[derive(Debug)]
-                pub struct DefaultTupleStructNamed<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    project = DefaultEnumProj,
-                    project_ref = DefaultEnumProjRef,
-                )]
-                #[derive(Debug)]
-                pub enum DefaultEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-
-                #[::pin_project::pin_project(PinnedDrop)]
-                #[derive(Debug)]
-                pub struct PinnedDropStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pinned_drop]
-                impl<T, U> PinnedDrop for PinnedDropStruct<T, U> {
-                    fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
-                }
-
-                #[::pin_project::pin_project(PinnedDrop)]
-                #[derive(Debug)]
-                pub struct PinnedDropTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pinned_drop]
-                impl<T, U> PinnedDrop for PinnedDropTupleStruct<T, U> {
-                    fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
-                }
-
-                #[::pin_project::pin_project(
-                    PinnedDrop,
-                    project = PinnedDropEnumProj,
-                    project_ref = PinnedDropEnumProjRef,
-                )]
-                #[derive(Debug)]
-                pub enum PinnedDropEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-
-                #[::pin_project::pinned_drop]
-                impl<T, U> PinnedDrop for PinnedDropEnum<T, U> {
-                    fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
-                }
-
-                #[::pin_project::pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct ReplaceStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(
-                    project = ReplaceStructNamedProj,
-                    project_ref = ReplaceStructNamedProjRef,
-                    project_replace = ReplaceStructNamedProjOwn,
-                )]
-                #[derive(Debug)]
-                pub struct ReplaceStructNamed<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct ReplaceTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    project = ReplaceTupleStructNamedProj,
-                    project_ref = ReplaceTupleStructNamedProjRef,
-                    project_replace = ReplaceTupleStructNamedProjOwn,
-                )]
-                #[derive(Debug)]
-                pub struct ReplaceTupleStructNamed<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    project = ReplaceEnumProj,
-                    project_ref = ReplaceEnumProjRef,
-                    project_replace = ReplaceEnumProjOwn,
-                )]
-                #[derive(Debug)]
-                pub enum ReplaceEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-
-                #[::pin_project::pin_project(UnsafeUnpin)]
-                #[derive(Debug)]
-                pub struct UnsafeUnpinStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(UnsafeUnpin)]
-                #[derive(Debug)]
-                pub struct UnsafeUnpinTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    UnsafeUnpin,
-                    project = UnsafeUnpinEnumProj,
-                    project_ref = UnsafeUnpinEnumProjRef,
-                )]
-                #[derive(Debug)]
-                pub enum UnsafeUnpinEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-
-                #[::pin_project::pin_project(!Unpin)]
-                #[derive(Debug)]
-                pub struct NotUnpinStruct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[::pin_project::pin_project(!Unpin)]
-                #[derive(Debug)]
-                pub struct NotUnpinTupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[::pin_project::pin_project(
-                    !Unpin,
-                    project = NotUnpinEnumProj,
-                    project_ref = NotUnpinEnumProjRef,
-                )]
-                #[derive(Debug)]
-                pub enum NotUnpinEnum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-pub mod box_pointers {
-    use pin_project::pin_project;
-
-    #[allow(box_pointers)] // for the type itself
-    #[pin_project(project_replace)]
-    #[derive(Debug)]
-    pub struct Struct {
-        #[pin]
-        pub p: Box<isize>,
-        pub u: Box<isize>,
-    }
-
-    #[allow(box_pointers)] // for the type itself
-    #[pin_project(project_replace)]
-    #[derive(Debug)]
-    pub struct TupleStruct(#[pin] pub Box<isize>, pub Box<isize>);
-
-    #[allow(box_pointers)] // for the type itself
-    #[pin_project(
-        project = EnumProj,
-        project_ref = EnumProjRef,
-        project_replace = EnumProjOwn,
-    )]
-    #[derive(Debug)]
-    pub enum Enum {
-        Struct {
-            #[pin]
-            p: Box<isize>,
-            u: Box<isize>,
-        },
-        Tuple(#[pin] Box<isize>, Box<isize>),
-        Unit,
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[allow(box_pointers)] // for the type itself
-                #[pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct Struct {
-                    #[pin]
-                    pub p: Box<isize>,
-                    pub u: Box<isize>,
-                }
-
-                #[allow(box_pointers)] // for the type itself
-                #[pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct TupleStruct(#[pin] pub Box<isize>, pub Box<isize>);
-
-                #[allow(box_pointers)] // for the type itself
-                #[pin_project(
-                    project = EnumProj,
-                    project_ref = EnumProjRef,
-                    project_replace = EnumProjOwn,
-                )]
-                #[derive(Debug)]
-                pub enum Enum {
-                    Struct {
-                        #[pin]
-                        p: Box<isize>,
-                        u: Box<isize>,
-                    },
-                    Tuple(#[pin] Box<isize>, Box<isize>),
-                    Unit,
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-pub mod deprecated {
-    use pin_project::pin_project;
-
-    #[allow(deprecated)] // for the type itself
-    #[pin_project(project_replace)]
-    #[derive(Debug, Clone, Copy)]
-    #[deprecated]
-    pub struct Struct {
-        #[deprecated]
-        #[pin]
-        pub p: (),
-        #[deprecated]
-        pub u: (),
-    }
-
-    #[allow(deprecated)] // for the type itself
-    #[pin_project(project_replace)]
-    #[derive(Debug, Clone, Copy)]
-    #[deprecated]
-    pub struct TupleStruct(
-        #[deprecated]
-        #[pin]
-        pub (),
-        #[deprecated] pub (),
-    );
-
-    #[allow(deprecated)] // for the type itself
-    #[pin_project(
-        project = EnumProj,
-        project_ref = EnumProjRef,
-        project_replace = EnumProjOwn,
-    )]
-    #[derive(Debug, Clone, Copy)]
-    #[deprecated]
-    pub enum Enum {
-        #[deprecated]
-        Struct {
-            #[deprecated]
-            #[pin]
-            p: (),
-            #[deprecated]
-            u: (),
-        },
-        #[deprecated]
-        Tuple(
-            #[deprecated]
-            #[pin]
-            (),
-            #[deprecated] (),
-        ),
-        #[deprecated]
-        Unit,
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[allow(deprecated)] // for the type itself
-                #[pin_project(project_replace)]
-                #[derive(Debug, Clone, Copy)]
-                #[deprecated]
-                pub struct Struct {
-                    #[deprecated]
-                    #[pin]
-                    pub p: (),
-                    #[deprecated]
-                    pub u: (),
-                }
-
-                #[allow(deprecated)] // for the type itself
-                #[pin_project(project_replace)]
-                #[derive(Debug, Clone, Copy)]
-                #[deprecated]
-                pub struct TupleStruct(
-                    #[deprecated]
-                    #[pin]
-                    pub (),
-                    #[deprecated] pub (),
-                );
-
-                #[allow(deprecated)] // for the type itself
-                #[pin_project(
-                    project = EnumProj,
-                    project_ref = EnumProjRef,
-                    project_replace = EnumProjOwn,
-                )]
-                #[derive(Debug, Clone, Copy)]
-                #[deprecated]
-                pub enum Enum {
-                    #[deprecated]
-                    Struct {
-                        #[deprecated]
-                        #[pin]
-                        p: (),
-                        #[deprecated]
-                        u: (),
-                    },
-                    #[deprecated]
-                    Tuple(
-                        #[deprecated]
-                        #[pin]
-                        (),
-                        #[deprecated] (),
-                    ),
-                    #[deprecated]
-                    Unit,
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-pub mod explicit_outlives_requirements {
-    use pin_project::pin_project;
-
-    #[allow(explicit_outlives_requirements)] // for the type itself: https://github.com/rust-lang/rust/issues/60993
-    #[pin_project(project_replace)]
-    #[derive(Debug)]
-    pub struct Struct<'a, T, U>
-    where
-        T: ?Sized,
-        U: ?Sized,
-    {
-        #[pin]
-        pub pinned: &'a mut T,
-        pub unpinned: &'a mut U,
-    }
-
-    #[allow(explicit_outlives_requirements)] // for the type itself: https://github.com/rust-lang/rust/issues/60993
-    #[pin_project(project_replace)]
-    #[derive(Debug)]
-    pub struct TupleStruct<'a, T, U>(#[pin] pub &'a mut T, pub &'a mut U)
-    where
-        T: ?Sized,
-        U: ?Sized;
-
-    #[allow(explicit_outlives_requirements)] // for the type itself: https://github.com/rust-lang/rust/issues/60993
-    #[pin_project(
-        project = EnumProj,
-        project_ref = EnumProjRef,
-        project_replace = EnumProjOwn,
-    )]
-    #[derive(Debug)]
-    pub enum Enum<'a, T, U>
-    where
-        T: ?Sized,
-        U: ?Sized,
-    {
-        Struct {
-            #[pin]
-            pinned: &'a mut T,
-            unpinned: &'a mut U,
-        },
-        Tuple(#[pin] &'a mut T, &'a mut U),
-        Unit,
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[allow(explicit_outlives_requirements)] // for the type itself: https://github.com/rust-lang/rust/issues/60993
-                #[pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct Struct<'a, T, U>
-                where
-                    T: ?Sized,
-                    U: ?Sized,
-                {
-                    #[pin]
-                    pub pinned: &'a mut T,
-                    pub unpinned: &'a mut U,
-                }
-
-                #[allow(explicit_outlives_requirements)] // for the type itself: https://github.com/rust-lang/rust/issues/60993
-                #[pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct TupleStruct<'a, T, U>(#[pin] pub &'a mut T, pub &'a mut U)
-                where
-                    T: ?Sized,
-                    U: ?Sized;
-
-                #[allow(explicit_outlives_requirements)] // for the type itself: https://github.com/rust-lang/rust/issues/60993
-                #[pin_project(
-                    project = EnumProj,
-                    project_ref = EnumProjRef,
-                    project_replace = EnumProjOwn,
-                )]
-                #[derive(Debug)]
-                pub enum Enum<'a, T, U>
-                where
-                    T: ?Sized,
-                    U: ?Sized,
-                {
-                    Struct {
-                        #[pin]
-                        pinned: &'a mut T,
-                        unpinned: &'a mut U,
-                    },
-                    Tuple(#[pin] &'a mut T, &'a mut U),
-                    Unit,
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-#[allow(missing_debug_implementations)]
-pub mod single_use_lifetimes {
-    use pin_project::pin_project;
-
-    #[allow(unused_lifetimes)]
-    pub trait Trait<'a> {}
-
-    #[allow(unused_lifetimes)] // for the type itself
-    #[allow(single_use_lifetimes)] // for the type itself: https://github.com/rust-lang/rust/issues/55058
-    #[pin_project(project_replace)]
-    pub struct Hrtb<'pin___, T>
-    where
-        for<'pin> &'pin T: Unpin,
-        T: for<'pin> Trait<'pin>,
-        for<'pin, 'pin_, 'pin__> &'pin &'pin_ &'pin__ T: Unpin,
-    {
-        #[pin]
-        _f: &'pin___ mut T,
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[allow(unused_lifetimes)]
-                pub trait Trait<'a> {}
-
-                #[allow(unused_lifetimes)] // for the type itself
-                #[allow(single_use_lifetimes)] // for the type itself: https://github.com/rust-lang/rust/issues/55058
-                #[pin_project(project_replace)]
-                pub struct Hrtb<'pin___, T>
-                where
-                    for<'pin> &'pin T: Unpin,
-                    T: for<'pin> Trait<'pin>,
-                    for<'pin, 'pin_, 'pin__> &'pin &'pin_ &'pin__ T: Unpin,
-                {
-                    #[pin]
-                    _f: &'pin___ mut T,
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-pub mod variant_size_differences {
-    use pin_project::pin_project;
-
-    #[allow(missing_debug_implementations, missing_copy_implementations)] // https://github.com/rust-lang/rust/pull/74060
-    #[allow(variant_size_differences)] // for the type itself
-    #[allow(clippy::large_enum_variant)] // for the type itself
-    #[pin_project(
-        project = EnumProj,
-        project_ref = EnumProjRef,
-        project_replace = EnumProjOwn,
-    )]
-    pub enum Enum {
-        V1(u8),
-        V2([u8; 1024]),
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[allow(missing_debug_implementations, missing_copy_implementations)] // https://github.com/rust-lang/rust/pull/74060
-                #[allow(variant_size_differences)] // for the type itself
-                #[allow(clippy::large_enum_variant)] // for the type itself
-                #[pin_project(
-                    project = EnumProj,
-                    project_ref = EnumProjRef,
-                    project_replace = EnumProjOwn,
-                )]
-                pub enum Enum {
-                    V1(u8),
-                    V2([u8; 1024]),
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-pub mod clippy_mut_mut {
-    use pin_project::pin_project;
-
-    #[pin_project(project_replace)]
-    #[derive(Debug)]
-    pub struct Struct<'a, T, U> {
-        #[pin]
-        pub pinned: &'a mut T,
-        pub unpinned: &'a mut U,
-    }
-
-    #[pin_project(project_replace)]
-    #[derive(Debug)]
-    pub struct TupleStruct<'a, T, U>(#[pin] &'a mut T, &'a mut U);
-
-    #[pin_project(
-        project = EnumProj,
-        project_ref = EnumProjRef,
-        project_replace = EnumProjOwn,
-    )]
-    #[derive(Debug)]
-    pub enum Enum<'a, T, U> {
-        Struct {
-            #[pin]
-            pinned: &'a mut T,
-            unpinned: &'a mut U,
-        },
-        Tuple(#[pin] &'a mut T, &'a mut U),
-        Unit,
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct Struct<'a, T, U> {
-                    #[pin]
-                    pub pinned: &'a mut T,
-                    pub unpinned: &'a mut U,
-                }
-
-                #[pin_project(project_replace)]
-                #[derive(Debug)]
-                pub struct TupleStruct<'a, T, U>(#[pin] &'a mut T, &'a mut U);
-
-                #[pin_project(
-                    project = EnumProj,
-                    project_ref = EnumProjRef,
-                    project_replace = EnumProjOwn,
-                )]
-                #[derive(Debug)]
-                pub enum Enum<'a, T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: &'a mut T,
-                        unpinned: &'a mut U,
-                    },
-                    Tuple(#[pin] &'a mut T, &'a mut U),
-                    Unit,
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-#[allow(missing_debug_implementations)]
-#[allow(unreachable_pub)]
-mod clippy_redundant_pub_crate {
-    use pin_project::pin_project;
-
-    #[pin_project(project_replace)]
-    pub struct Struct<T, U> {
-        #[pin]
-        pub pinned: T,
-        pub unpinned: U,
-    }
-
-    #[pin_project(project_replace)]
-    pub struct TupleStruct<T, U>(#[pin] pub T, pub U);
-
-    #[allow(dead_code)]
-    #[pin_project(
-        project = EnumProj,
-        project_ref = EnumProjRef,
-        project_replace = EnumProjOwn,
-    )]
-    pub enum Enum<T, U> {
-        Struct {
-            #[pin]
-            pinned: T,
-            unpinned: U,
-        },
-        Tuple(#[pin] T, U),
-        Unit,
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        #[allow(clippy::redundant_pub_crate)]
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[pin_project(project_replace)]
-                pub struct Struct<T, U> {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[pin_project(project_replace)]
-                pub struct TupleStruct<T, U>(#[pin] pub T, pub U);
-
-                #[allow(dead_code)]
-                #[pin_project(
-                    project = EnumProj,
-                    project_ref = EnumProjRef,
-                    project_replace = EnumProjOwn,
-                )]
-                pub enum Enum<T, U> {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-#[allow(missing_debug_implementations)]
-pub mod clippy_type_repetition_in_bounds {
-    use pin_project::pin_project;
-
-    #[pin_project(project_replace)]
-    pub struct Struct<T, U>
-    where
-        Self: Sized,
-    {
-        #[pin]
-        pub pinned: T,
-        pub unpinned: U,
-    }
-
-    #[pin_project(project_replace)]
-    pub struct TupleStruct<T, U>(#[pin] T, U)
-    where
-        Self: Sized;
-
-    #[pin_project(
-        project = EnumProj,
-        project_ref = EnumProjRef,
-        project_replace = EnumProjOwn,
-    )]
-    pub enum Enum<T, U>
-    where
-        Self: Sized,
-    {
-        Struct {
-            #[pin]
-            pinned: T,
-            unpinned: U,
-        },
-        Tuple(#[pin] T, U),
-        Unit,
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[pin_project(project_replace)]
-                pub struct Struct<T, U>
-                where
-                    Self: Sized,
-                {
-                    #[pin]
-                    pub pinned: T,
-                    pub unpinned: U,
-                }
-
-                #[pin_project(project_replace)]
-                pub struct TupleStruct<T, U>(#[pin] T, U)
-                where
-                    Self: Sized;
-
-                #[pin_project(
-                    project = EnumProj,
-                    project_ref = EnumProjRef,
-                    project_replace = EnumProjOwn,
-                )]
-                pub enum Enum<T, U>
-                where
-                    Self: Sized,
-                {
-                    Struct {
-                        #[pin]
-                        pinned: T,
-                        unpinned: U,
-                    },
-                    Tuple(#[pin] T, U),
-                    Unit,
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-#[allow(missing_debug_implementations)]
-pub mod clippy_use_self {
-    use pin_project::pin_project;
-
-    pub trait Trait {
-        type Assoc;
-    }
-
-    #[pin_project(project_replace)]
-    pub struct Generics<T: Trait<Assoc = Self>>
-    where
-        Self: Trait<Assoc = Self>,
-    {
-        _f: T,
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        use super::Trait;
-
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[pin_project(project_replace)]
-                pub struct Generics<T: Trait<Assoc = Self>>
-                where
-                    Self: Trait<Assoc = Self>,
-                {
-                    _f: T,
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-#[allow(missing_debug_implementations)]
-pub mod clippy_used_underscore_binding {
-    use pin_project::pin_project;
-
-    #[pin_project(project_replace)]
-    pub struct Struct<T, U> {
-        #[pin]
-        pub _pinned: T,
-        pub _unpinned: U,
-    }
-
-    #[pin_project(
-        project = EnumProj,
-        project_ref = EnumProjRef,
-        project_replace = EnumProjOwn,
-    )]
-    pub enum Enum<T, U> {
-        Struct {
-            #[pin]
-            _pinned: T,
-            _unpinned: U,
-        },
-    }
-
-    pub mod inside_macro {
-        use pin_project::pin_project;
-
-        #[rustfmt::skip]
-        macro_rules! mac {
-            () => {
-                #[pin_project(project_replace)]
-                pub struct Struct<T, U> {
-                    #[pin]
-                    pub _pinned: T,
-                    pub _unpinned: U,
-                }
-
-                #[pin_project(
-                    project = EnumProj,
-                    project_ref = EnumProjRef,
-                    project_replace = EnumProjOwn,
-                )]
-                pub enum Enum<T, U> {
-                    Struct {
-                        #[pin]
-                        _pinned: T,
-                        _unpinned: U,
-                    },
-                }
-            };
-        }
-
-        mac!();
-    }
-}
-
-#[allow(missing_debug_implementations)]
-pub mod clippy_ref_option_ref {
-    use pin_project::pin_project;
-
-    #[pin_project]
-    pub struct Struct<'a> {
-        #[pin]
-        pub _pinned: Option<&'a ()>,
-        pub _unpinned: Option<&'a ()>,
-    }
-
-    #[pin_project(project = EnumProj, project_ref = EnumProjRef)]
-    pub enum Enum<'a> {
-        Struct {
-            #[pin]
-            _pinned: Option<&'a ()>,
-            _unpinned: Option<&'a ()>,
-        },
-    }
-}
diff --git a/crates/pin-project/tests/pin_project.rs b/crates/pin-project/tests/pin_project.rs
index cbc67ce..52a910f 100644
--- a/crates/pin-project/tests/pin_project.rs
+++ b/crates/pin-project/tests/pin_project.rs
@@ -1,5 +1,12 @@
-#![warn(rust_2018_idioms, single_use_lifetimes)]
-#![allow(dead_code)]
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+#![allow(
+    dead_code,
+    unreachable_pub,
+    clippy::items_after_statements,
+    clippy::no_effect_underscore_binding,
+    clippy::undocumented_unsafe_blocks
+)]
 
 #[macro_use]
 mod auxiliary;
@@ -335,7 +342,6 @@
 
     pub trait Trait<'a> {}
 
-    #[allow(single_use_lifetimes)] // https://github.com/rust-lang/rust/issues/55058
     #[pin_project(project_replace)]
     pub struct Hrtb<'pin___, T>
     where
@@ -543,7 +549,7 @@
     }
 
     let mut x = Struct1 { f: 0_u8 };
-    let x: Pin<&mut Struct1<dyn core::fmt::Debug>> = Pin::new(&mut x as _);
+    let x: Pin<&mut Struct1<dyn core::fmt::Debug>> = Pin::new(&mut x);
     let _: &mut (dyn core::fmt::Debug) = x.project().f;
 
     #[pin_project]
@@ -553,7 +559,7 @@
     }
 
     let mut x = Struct2 { f: 0_u8 };
-    let x: Pin<&mut Struct2<dyn core::fmt::Debug + Unpin>> = Pin::new(&mut x as _);
+    let x: Pin<&mut Struct2<dyn core::fmt::Debug + Unpin>> = Pin::new(&mut x);
     let _: Pin<&mut (dyn core::fmt::Debug + Unpin)> = x.project().f;
 
     #[allow(explicit_outlives_requirements)] // https://github.com/rust-lang/rust/issues/60993
@@ -711,7 +717,8 @@
     struct TupleStruct4(#[pin] dyn core::fmt::Debug + Send);
 }
 
-#[allow(clippy::trailing_empty_array)] // TODO: how do we handle this? Should propagate #[repr(...)] to ProjectionOwned?
+// TODO: how do we handle this? Should propagate #[repr(...)] to ProjectionOwned? The layout will be different from the original anyway due to PhantomData.
+#[allow(clippy::trailing_empty_array)]
 #[test]
 fn parse_self() {
     macro_rules! mac {
diff --git a/crates/pin-project/tests/pinned_drop.rs b/crates/pin-project/tests/pinned_drop.rs
index c907cc2..9765db9 100644
--- a/crates/pin-project/tests/pinned_drop.rs
+++ b/crates/pin-project/tests/pinned_drop.rs
@@ -1,4 +1,4 @@
-#![warn(rust_2018_idioms, single_use_lifetimes)]
+// SPDX-License-Identifier: Apache-2.0 OR MIT
 
 use std::pin::Pin;
 
@@ -7,7 +7,7 @@
 #[test]
 fn safe_project() {
     #[pin_project(PinnedDrop)]
-    pub struct Struct<'a> {
+    struct Struct<'a> {
         was_dropped: &'a mut bool,
         #[pin]
         field: u8,
@@ -28,7 +28,7 @@
 #[test]
 fn self_call() {
     #[pin_project(PinnedDrop)]
-    pub struct S<T>(T);
+    struct S<T>(T);
 
     trait Trait {
         fn self_ref(&self) {}
@@ -56,8 +56,8 @@
 #[test]
 fn self_ty() {
     #[pin_project(PinnedDrop)]
-    pub struct Struct {
-        pub f: (),
+    struct Struct {
+        f: (),
     }
 
     #[pinned_drop]
@@ -78,7 +78,7 @@
     }
 
     #[pin_project(PinnedDrop)]
-    pub struct TupleStruct(());
+    struct TupleStruct(());
 
     #[pinned_drop]
     impl PinnedDrop for TupleStruct {
@@ -89,15 +89,15 @@
 
             // pat
             match *self {
-                Self(_) => {}
+                Self(()) => {}
             }
-            if let Self(_) = *self {}
-            let Self(_) = *self;
+            if let Self(()) = *self {}
+            let Self(()) = *self;
         }
     }
 
     #[pin_project(PinnedDrop, project = EnumProj, project_ref = EnumProjRef)]
-    pub enum Enum {
+    enum Enum {
         Struct { f: () },
         Tuple(()),
         Unit,
@@ -113,12 +113,10 @@
 
             // pat
             match *self {
-                Self::Struct { f: () } => {}
-                Self::Tuple(_) => {}
-                Self::Unit => {}
+                Self::Struct { f: () } | Self::Tuple(()) | Self::Unit => {}
             }
             if let Self::Struct { f: () } = *self {}
-            if let Self::Tuple(_) = *self {}
+            if let Self::Tuple(()) = *self {}
             if let Self::Unit = *self {}
         }
     }
@@ -133,14 +131,16 @@
     }
 
     #[pin_project(PinnedDrop)]
-    pub struct S(());
+    struct S(());
 
     #[pinned_drop]
     impl PinnedDrop for S {
         fn drop(self: Pin<&mut Self>) {
             mac!({
+                #[allow(dead_code)]
+                struct S(());
                 impl S {
-                    pub fn _f(self) -> Self {
+                    fn _f(self) -> Self {
                         self
                     }
                 }
@@ -153,7 +153,7 @@
 #[test]
 fn self_inside_macro_def() {
     #[pin_project(PinnedDrop)]
-    pub struct S(());
+    struct S(());
 
     #[pinned_drop]
     impl PinnedDrop for S {
@@ -193,7 +193,7 @@
     }
 
     #[pin_project(PinnedDrop)]
-    pub struct Struct<T: Send>
+    struct Struct<T: Send>
     where
         mac!(Self): Send,
     {
@@ -262,11 +262,11 @@
     mac!(1);
 }
 
-pub mod self_path {
+mod self_path {
     use super::*;
 
     #[pin_project(PinnedDrop)]
-    pub struct S<T: Unpin>(T);
+    struct S<T: Unpin>(T);
 
     fn f() {}
 
diff --git a/crates/pin-project/tests/proper_unpin.rs b/crates/pin-project/tests/proper_unpin.rs
index 0ba3ce3..7e487a3 100644
--- a/crates/pin-project/tests/proper_unpin.rs
+++ b/crates/pin-project/tests/proper_unpin.rs
@@ -1,4 +1,5 @@
-#![warn(rust_2018_idioms, single_use_lifetimes)]
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 #![allow(dead_code)]
 
 #[macro_use]
diff --git a/crates/pin-project/tests/repr_packed.rs b/crates/pin-project/tests/repr_packed.rs
index be7cab9..f20ffc9 100644
--- a/crates/pin-project/tests/repr_packed.rs
+++ b/crates/pin-project/tests/repr_packed.rs
@@ -1,4 +1,5 @@
-#![warn(rust_2018_idioms, single_use_lifetimes)]
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // unaligned_references did not exist in older compilers and safe_packed_borrows was removed in the latest compilers.
 // https://github.com/rust-lang/rust/pull/82525
 #![allow(unknown_lints, renamed_and_removed_lints)]
@@ -37,7 +38,6 @@
         }
     }
 
-    #[allow(clippy::let_and_return)]
     let field_addr = {
         // We let this field drop by going out of scope,
         // rather than explicitly calling drop(foo).
@@ -45,8 +45,7 @@
         // into the 'drop' function, resulting in a different
         // address.
         let x = Struct { field: 27 };
-        let field_addr = &x.field as *const u8 as usize;
-        field_addr
+        &x.field as *const u8 as usize
     };
     assert_eq!(field_addr, FIELD_ADDR.with(Cell::get));
 }
diff --git a/crates/pin-project/tests/ui/pin_project/private_in_public-enum.rs b/crates/pin-project/tests/run-pass/private_in_public-enum.rs
similarity index 77%
rename from crates/pin-project/tests/ui/pin_project/private_in_public-enum.rs
rename to crates/pin-project/tests/run-pass/private_in_public-enum.rs
index d55baeb..09c0975 100644
--- a/crates/pin-project/tests/ui/pin_project/private_in_public-enum.rs
+++ b/crates/pin-project/tests/run-pass/private_in_public-enum.rs
@@ -1,6 +1,8 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Even if allows private_in_public, these are errors.
 
-#![allow(private_in_public, dead_code)]
+#![allow(private_interfaces, dead_code)]
 
 pub enum PublicEnum {
     V(PrivateEnum), //~ ERROR E0446
diff --git a/crates/pin-project/tests/ui/cfg/cfg_attr-resolve.rs b/crates/pin-project/tests/ui/cfg/cfg_attr-resolve.rs
index e36cc95..4739267 100644
--- a/crates/pin-project/tests/ui/cfg/cfg_attr-resolve.rs
+++ b/crates/pin-project/tests/ui/cfg/cfg_attr-resolve.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 #[cfg_attr(any(), pin_project::pin_project)]
diff --git a/crates/pin-project/tests/ui/cfg/cfg_attr-resolve.stderr b/crates/pin-project/tests/ui/cfg/cfg_attr-resolve.stderr
index 0393c14..71f9c29 100644
--- a/crates/pin-project/tests/ui/cfg/cfg_attr-resolve.stderr
+++ b/crates/pin-project/tests/ui/cfg/cfg_attr-resolve.stderr
@@ -1,5 +1,5 @@
 error[E0599]: no method named `project` found for struct `Pin<&mut Foo<u8>>` in the current scope
-  --> tests/ui/cfg/cfg_attr-resolve.rs:10:30
+  --> tests/ui/cfg/cfg_attr-resolve.rs:12:30
    |
-10 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0599
+12 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0599
    |                              ^^^^^^^ method not found in `Pin<&mut Foo<u8>>`
diff --git a/crates/pin-project/tests/ui/cfg/cfg_attr-type-mismatch.rs b/crates/pin-project/tests/ui/cfg/cfg_attr-type-mismatch.rs
index 1b9664b..8c9037b 100644
--- a/crates/pin-project/tests/ui/cfg/cfg_attr-type-mismatch.rs
+++ b/crates/pin-project/tests/ui/cfg/cfg_attr-type-mismatch.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use pin_project::pin_project;
diff --git a/crates/pin-project/tests/ui/cfg/cfg_attr-type-mismatch.stderr b/crates/pin-project/tests/ui/cfg/cfg_attr-type-mismatch.stderr
index 081504c..bb0e9e3 100644
--- a/crates/pin-project/tests/ui/cfg/cfg_attr-type-mismatch.stderr
+++ b/crates/pin-project/tests/ui/cfg/cfg_attr-type-mismatch.stderr
@@ -1,7 +1,7 @@
 error[E0308]: mismatched types
-  --> tests/ui/cfg/cfg_attr-type-mismatch.rs:20:27
+  --> tests/ui/cfg/cfg_attr-type-mismatch.rs:22:27
    |
-20 |     let _: Pin<&mut u8> = x.f; //~ ERROR E0308
+22 |     let _: Pin<&mut u8> = x.f; //~ ERROR E0308
    |            ------------   ^^^ expected `Pin<&mut u8>`, found `&mut u8`
    |            |
    |            expected due to this
@@ -10,9 +10,9 @@
            found mutable reference `&mut u8`
 
 error[E0308]: mismatched types
-  --> tests/ui/cfg/cfg_attr-type-mismatch.rs:24:22
+  --> tests/ui/cfg/cfg_attr-type-mismatch.rs:26:22
    |
-24 |     let _: &mut u8 = x.f; //~ ERROR E0308
+26 |     let _: &mut u8 = x.f; //~ ERROR E0308
    |            -------   ^^^ expected `&mut u8`, found `Pin<&mut u8>`
    |            |
    |            expected due to this
@@ -21,5 +21,5 @@
                          found struct `Pin<&mut u8>`
 help: consider mutably borrowing here
    |
-24 |     let _: &mut u8 = &mut x.f; //~ ERROR E0308
+26 |     let _: &mut u8 = &mut x.f; //~ ERROR E0308
    |                      ++++
diff --git a/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-1.rs b/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-1.rs
index 7e19952..39d358c 100644
--- a/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-1.rs
+++ b/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-1.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use auxiliary_macro::hidden_repr;
 use pin_project::pin_project;
 
diff --git a/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-1.stderr b/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-1.stderr
index 4f3acc3..a2c7811 100644
--- a/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-1.stderr
+++ b/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-1.stderr
@@ -1,5 +1,5 @@
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> tests/ui/cfg/packed_sneaky-span-issue-1.rs:5:15
+ --> tests/ui/cfg/packed_sneaky-span-issue-1.rs:7:15
   |
-5 | #[hidden_repr(packed)] //~ ERROR may not be used on #[repr(packed)] types
+7 | #[hidden_repr(packed)] //~ ERROR may not be used on #[repr(packed)] types
   |               ^^^^^^
diff --git a/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-2.rs b/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-2.rs
index fcea76b..2051052 100644
--- a/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-2.rs
+++ b/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-2.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use auxiliary_macro::hidden_repr;
 use pin_project::pin_project;
 
diff --git a/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-2.stderr b/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-2.stderr
index cc2795a..43f5c30 100644
--- a/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-2.stderr
+++ b/crates/pin-project/tests/ui/cfg/packed_sneaky-span-issue-2.stderr
@@ -1,5 +1,5 @@
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> tests/ui/cfg/packed_sneaky-span-issue-2.rs:5:15
+ --> tests/ui/cfg/packed_sneaky-span-issue-2.rs:7:15
   |
-5 | #[hidden_repr(packed)] //~ ERROR may not be used on #[repr(packed)] types
+7 | #[hidden_repr(packed)] //~ ERROR may not be used on #[repr(packed)] types
   |               ^^^^^^
diff --git a/crates/pin-project/tests/ui/cfg/packed_sneaky.rs b/crates/pin-project/tests/ui/cfg/packed_sneaky.rs
index 0b01dc9..c03c3bc 100644
--- a/crates/pin-project/tests/ui/cfg/packed_sneaky.rs
+++ b/crates/pin-project/tests/ui/cfg/packed_sneaky.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use auxiliary_macro::hidden_repr_cfg_not_any;
 use pin_project::pin_project;
 
diff --git a/crates/pin-project/tests/ui/cfg/packed_sneaky.stderr b/crates/pin-project/tests/ui/cfg/packed_sneaky.stderr
index a54c2ec..33b8766 100644
--- a/crates/pin-project/tests/ui/cfg/packed_sneaky.stderr
+++ b/crates/pin-project/tests/ui/cfg/packed_sneaky.stderr
@@ -1,5 +1,5 @@
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> tests/ui/cfg/packed_sneaky.rs:6:27
+ --> tests/ui/cfg/packed_sneaky.rs:8:27
   |
-6 | #[hidden_repr_cfg_not_any(packed)] //~ ERROR may not be used on #[repr(packed)] types
+8 | #[hidden_repr_cfg_not_any(packed)] //~ ERROR may not be used on #[repr(packed)] types
   |                           ^^^^^^
diff --git a/crates/pin-project/tests/ui/cfg/unsupported.rs b/crates/pin-project/tests/ui/cfg/unsupported.rs
index b950d4b..0417db1 100644
--- a/crates/pin-project/tests/ui/cfg/unsupported.rs
+++ b/crates/pin-project/tests/ui/cfg/unsupported.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/ui/cfg/unsupported.stderr b/crates/pin-project/tests/ui/cfg/unsupported.stderr
index e1c871c..c28cba0 100644
--- a/crates/pin-project/tests/ui/cfg/unsupported.stderr
+++ b/crates/pin-project/tests/ui/cfg/unsupported.stderr
@@ -1,11 +1,11 @@
 error: #[pin_project] attribute may not be used on structs with zero fields
- --> tests/ui/cfg/unsupported.rs:4:10
-  |
-4 |   struct S {
-  |  __________^
-5 | |     //~^ ERROR may not be used on structs with zero fields
-6 | |     #[cfg(any())]
-7 | |     #[pin]
-8 | |     f: u8,
-9 | | }
-  | |_^
+  --> tests/ui/cfg/unsupported.rs:6:10
+   |
+6  |   struct S {
+   |  __________^
+7  | |     //~^ ERROR may not be used on structs with zero fields
+8  | |     #[cfg(any())]
+9  | |     #[pin]
+10 | |     f: u8,
+11 | | }
+   | |_^
diff --git a/crates/pin-project/tests/ui/not_unpin/conflict-unpin.rs b/crates/pin-project/tests/ui/not_unpin/conflict-unpin.rs
index 8985f37..c3f1b3d 100644
--- a/crates/pin-project/tests/ui/not_unpin/conflict-unpin.rs
+++ b/crates/pin-project/tests/ui/not_unpin/conflict-unpin.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(!Unpin)] //~ ERROR E0119
diff --git a/crates/pin-project/tests/ui/not_unpin/conflict-unpin.stderr b/crates/pin-project/tests/ui/not_unpin/conflict-unpin.stderr
index 4bd72bb..dbd785a 100644
--- a/crates/pin-project/tests/ui/not_unpin/conflict-unpin.stderr
+++ b/crates/pin-project/tests/ui/not_unpin/conflict-unpin.stderr
@@ -1,26 +1,26 @@
 error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<_, _>`
-  --> tests/ui/not_unpin/conflict-unpin.rs:3:15
+  --> tests/ui/not_unpin/conflict-unpin.rs:5:15
    |
-3  | #[pin_project(!Unpin)] //~ ERROR E0119
+5  | #[pin_project(!Unpin)] //~ ERROR E0119
    |               ^^^^^^ conflicting implementation for `Foo<_, _>`
 ...
-10 | impl<T, U> Unpin for Foo<T, U> where T: Unpin {}
-   | ------------------------------ first implementation here
+12 | impl<T, U> Unpin for Foo<T, U> where T: Unpin {}
+   | --------------------------------------------- first implementation here
 
 error[E0119]: conflicting implementations of trait `Unpin` for type `Bar<_, _>`
-  --> tests/ui/not_unpin/conflict-unpin.rs:12:15
+  --> tests/ui/not_unpin/conflict-unpin.rs:14:15
    |
-12 | #[pin_project(!Unpin)] //~ ERROR E0119
+14 | #[pin_project(!Unpin)] //~ ERROR E0119
    |               ^^^^^^ conflicting implementation for `Bar<_, _>`
 ...
-19 | impl<T, U> Unpin for Bar<T, U> {}
+21 | impl<T, U> Unpin for Bar<T, U> {}
    | ------------------------------ first implementation here
 
 error[E0119]: conflicting implementations of trait `Unpin` for type `Baz<_, _>`
-  --> tests/ui/not_unpin/conflict-unpin.rs:21:15
+  --> tests/ui/not_unpin/conflict-unpin.rs:23:15
    |
-21 | #[pin_project(!Unpin)] //~ ERROR E0119
+23 | #[pin_project(!Unpin)] //~ ERROR E0119
    |               ^^^^^^ conflicting implementation for `Baz<_, _>`
 ...
-28 | impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {}
+30 | impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {}
    | -------------------------------------------- first implementation here
diff --git a/crates/pin-project/tests/ui/not_unpin/impl-unsafe-unpin.rs b/crates/pin-project/tests/ui/not_unpin/impl-unsafe-unpin.rs
index 2c078c7..69ba51f 100644
--- a/crates/pin-project/tests/ui/not_unpin/impl-unsafe-unpin.rs
+++ b/crates/pin-project/tests/ui/not_unpin/impl-unsafe-unpin.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::{pin_project, UnsafeUnpin};
 
 #[pin_project(!Unpin)] //~ ERROR E0119
diff --git a/crates/pin-project/tests/ui/not_unpin/impl-unsafe-unpin.stderr b/crates/pin-project/tests/ui/not_unpin/impl-unsafe-unpin.stderr
index f116eac..f00aa5c 100644
--- a/crates/pin-project/tests/ui/not_unpin/impl-unsafe-unpin.stderr
+++ b/crates/pin-project/tests/ui/not_unpin/impl-unsafe-unpin.stderr
@@ -1,32 +1,32 @@
 error[E0119]: conflicting implementations of trait `UnsafeUnpin` for type `Foo<_, _>`
-  --> tests/ui/not_unpin/impl-unsafe-unpin.rs:3:1
+  --> tests/ui/not_unpin/impl-unsafe-unpin.rs:5:1
    |
-3  | #[pin_project(!Unpin)] //~ ERROR E0119
+5  | #[pin_project(!Unpin)] //~ ERROR E0119
    | ^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Foo<_, _>`
 ...
-10 | unsafe impl<T, U> UnsafeUnpin for Foo<T, U> where T: Unpin {}
-   | ------------------------------------------- first implementation here
+12 | unsafe impl<T, U> UnsafeUnpin for Foo<T, U> where T: Unpin {}
+   | ---------------------------------------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0119]: conflicting implementations of trait `UnsafeUnpin` for type `Bar<_, _>`
-  --> tests/ui/not_unpin/impl-unsafe-unpin.rs:12:1
+  --> tests/ui/not_unpin/impl-unsafe-unpin.rs:14:1
    |
-12 | #[pin_project(!Unpin)] //~ ERROR E0119
+14 | #[pin_project(!Unpin)] //~ ERROR E0119
    | ^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
 ...
-19 | unsafe impl<T, U> UnsafeUnpin for Bar<T, U> {}
+21 | unsafe impl<T, U> UnsafeUnpin for Bar<T, U> {}
    | ------------------------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0119]: conflicting implementations of trait `UnsafeUnpin` for type `Baz<_, _>`
-  --> tests/ui/not_unpin/impl-unsafe-unpin.rs:21:1
+  --> tests/ui/not_unpin/impl-unsafe-unpin.rs:23:1
    |
-21 | #[pin_project(!Unpin)] //~ ERROR E0119
+23 | #[pin_project(!Unpin)] //~ ERROR E0119
    | ^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Baz<_, _>`
 ...
-28 | unsafe impl<T: Unpin, U: Unpin> UnsafeUnpin for Baz<T, U> {}
+30 | unsafe impl<T: Unpin, U: Unpin> UnsafeUnpin for Baz<T, U> {}
    | --------------------------------------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/not_unpin/negative_impls_stable.rs b/crates/pin-project/tests/ui/not_unpin/negative_impls_stable.rs
new file mode 100644
index 0000000..1a5b425
--- /dev/null
+++ b/crates/pin-project/tests/ui/not_unpin/negative_impls_stable.rs
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+// https://github.com/taiki-e/pin-project/issues/340#issuecomment-2428002670
+
+#[pin_project::pin_project(!Unpin)]
+struct Foo<Pinned, Unpinned> {
+    #[pin]
+    pinned: Pinned,
+    unpinned: Unpinned,
+}
+
+struct MyPhantomPinned(::core::marker::PhantomPinned);
+impl Unpin for MyPhantomPinned where for<'cursed> str: Sized {}
+impl Unpin for Foo<MyPhantomPinned, ()> {}
+
+fn is_unpin<T: Unpin>() {}
+
+fn main() {
+    is_unpin::<Foo<MyPhantomPinned, ()>>()
+}
diff --git a/crates/pin-project/tests/ui/not_unpin/negative_impls_stable.stderr b/crates/pin-project/tests/ui/not_unpin/negative_impls_stable.stderr
new file mode 100644
index 0000000..79e75fe
--- /dev/null
+++ b/crates/pin-project/tests/ui/not_unpin/negative_impls_stable.stderr
@@ -0,0 +1,8 @@
+error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<MyPhantomPinned, ()>`
+  --> tests/ui/not_unpin/negative_impls_stable.rs:5:28
+   |
+5  | #[pin_project::pin_project(!Unpin)]
+   |                            ^^^^^^ conflicting implementation for `Foo<MyPhantomPinned, ()>`
+...
+14 | impl Unpin for Foo<MyPhantomPinned, ()> {}
+   | --------------------------------------- first implementation here
diff --git a/crates/pin-project/tests/ui/pin_project/add-attr-to-struct.rs b/crates/pin-project/tests/ui/pin_project/add-attr-to-struct.rs
index 32253d7..0983f6f 100644
--- a/crates/pin-project/tests/ui/pin_project/add-attr-to-struct.rs
+++ b/crates/pin-project/tests/ui/pin_project/add-attr-to-struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::marker::PhantomPinned;
 
 use auxiliary_macro::add_pin_attr;
diff --git a/crates/pin-project/tests/ui/pin_project/add-attr-to-struct.stderr b/crates/pin-project/tests/ui/pin_project/add-attr-to-struct.stderr
index bb76c62..bd46825 100644
--- a/crates/pin-project/tests/ui/pin_project/add-attr-to-struct.stderr
+++ b/crates/pin-project/tests/ui/pin_project/add-attr-to-struct.stderr
@@ -1,15 +1,15 @@
 error: expected attribute arguments in parentheses: `pin(...)`
- --> tests/ui/pin_project/add-attr-to-struct.rs:7:1
+ --> tests/ui/pin_project/add-attr-to-struct.rs:9:1
   |
-7 | #[add_pin_attr(struct)] //~ ERROR expected attribute arguments in parentheses
+9 | #[add_pin_attr(struct)] //~ ERROR expected attribute arguments in parentheses
   | ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the attribute macro `add_pin_attr` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: #[pin] attribute may only be used on fields of structs or variants
-  --> tests/ui/pin_project/add-attr-to-struct.rs:13:1
+  --> tests/ui/pin_project/add-attr-to-struct.rs:15:1
    |
-13 | #[add_pin_attr(struct)] //~ ERROR #[pin] attribute may only be used on fields of structs or variants
+15 | #[add_pin_attr(struct)] //~ ERROR #[pin] attribute may only be used on fields of structs or variants
    | ^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: this error originates in the attribute macro `add_pin_attr` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/pin_project/add-pinned-field.rs b/crates/pin-project/tests/ui/pin_project/add-pinned-field.rs
index c415f9c..c047c11 100644
--- a/crates/pin-project/tests/ui/pin_project/add-pinned-field.rs
+++ b/crates/pin-project/tests/ui/pin_project/add-pinned-field.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use auxiliary_macro::add_pinned_field;
 use pin_project::pin_project;
 
diff --git a/crates/pin-project/tests/ui/pin_project/add-pinned-field.stderr b/crates/pin-project/tests/ui/pin_project/add-pinned-field.stderr
index a38329d..50e1f5c 100644
--- a/crates/pin-project/tests/ui/pin_project/add-pinned-field.stderr
+++ b/crates/pin-project/tests/ui/pin_project/add-pinned-field.stderr
@@ -1,54 +1,54 @@
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/pin_project/add-pinned-field.rs:21:16
+  --> tests/ui/pin_project/add-pinned-field.rs:23:16
    |
-21 |     is_unpin::<Foo>(); //~ ERROR E0277
+23 |     is_unpin::<Foo>(); //~ ERROR E0277
    |                ^^^ within `__Foo<'_>`, the trait `Unpin` is not implemented for `PhantomPinned`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required because it appears within the type `__Foo<'_>`
-  --> tests/ui/pin_project/add-pinned-field.rs:8:8
+  --> tests/ui/pin_project/add-pinned-field.rs:10:8
    |
-8  | struct Foo {
+10 | struct Foo {
    |        ^^^
 note: required for `Foo` to implement `Unpin`
-  --> tests/ui/pin_project/add-pinned-field.rs:6:1
+  --> tests/ui/pin_project/add-pinned-field.rs:8:1
    |
-6  | #[pin_project]
+8  | #[pin_project]
    | ^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
-7  | #[add_pinned_field]
-8  | struct Foo {
+9  | #[add_pinned_field]
+10 | struct Foo {
    |        ^^^
 note: required by a bound in `is_unpin`
-  --> tests/ui/pin_project/add-pinned-field.rs:4:16
+  --> tests/ui/pin_project/add-pinned-field.rs:6:16
    |
-4  | fn is_unpin<T: Unpin>() {}
+6  | fn is_unpin<T: Unpin>() {}
    |                ^^^^^ required by this bound in `is_unpin`
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/pin_project/add-pinned-field.rs:22:16
+  --> tests/ui/pin_project/add-pinned-field.rs:24:16
    |
-22 |     is_unpin::<Bar>(); //~ ERROR E0277
+24 |     is_unpin::<Bar>(); //~ ERROR E0277
    |                ^^^ within `__Bar<'_>`, the trait `Unpin` is not implemented for `PhantomPinned`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required because it appears within the type `__Bar<'_>`
-  --> tests/ui/pin_project/add-pinned-field.rs:15:8
+  --> tests/ui/pin_project/add-pinned-field.rs:17:8
    |
-15 | struct Bar {
+17 | struct Bar {
    |        ^^^
 note: required for `Bar` to implement `Unpin`
-  --> tests/ui/pin_project/add-pinned-field.rs:14:1
+  --> tests/ui/pin_project/add-pinned-field.rs:16:1
    |
-14 | #[pin_project]
+16 | #[pin_project]
    | ^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
-15 | struct Bar {
+17 | struct Bar {
    |        ^^^
 note: required by a bound in `is_unpin`
-  --> tests/ui/pin_project/add-pinned-field.rs:4:16
+  --> tests/ui/pin_project/add-pinned-field.rs:6:16
    |
-4  | fn is_unpin<T: Unpin>() {}
+6  | fn is_unpin<T: Unpin>() {}
    |                ^^^^^ required by this bound in `is_unpin`
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/pin_project/conflict-drop.rs b/crates/pin-project/tests/ui/pin_project/conflict-drop.rs
index 4fdb118..d0c0c2d 100644
--- a/crates/pin-project/tests/ui/pin_project/conflict-drop.rs
+++ b/crates/pin-project/tests/ui/pin_project/conflict-drop.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use pin_project::{pin_project, pinned_drop};
diff --git a/crates/pin-project/tests/ui/pin_project/conflict-drop.stderr b/crates/pin-project/tests/ui/pin_project/conflict-drop.stderr
index 79d4ca7..c400f34 100644
--- a/crates/pin-project/tests/ui/pin_project/conflict-drop.stderr
+++ b/crates/pin-project/tests/ui/pin_project/conflict-drop.stderr
@@ -1,19 +1,19 @@
+error[E0119]: conflicting implementations of trait `Drop` for type `Bar<_, _>`
+  --> tests/ui/pin_project/conflict-drop.rs:18:15
+   |
+18 | #[pin_project(PinnedDrop)] //~ ERROR E0119
+   |               ^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
+...
+30 | impl<T, U> Drop for Bar<T, U> {
+   | ----------------------------- first implementation here
+
 error[E0119]: conflicting implementations of trait `FooMustNotImplDrop` for type `Foo<_, _>`
- --> tests/ui/pin_project/conflict-drop.rs:5:1
+ --> tests/ui/pin_project/conflict-drop.rs:7:1
   |
-5 | #[pin_project] //~ ERROR E0119
+7 | #[pin_project] //~ ERROR E0119
   | ^^^^^^^^^^^^^^
   | |
   | first implementation here
   | conflicting implementation for `Foo<_, _>`
   |
   = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
-
-error[E0119]: conflicting implementations of trait `Drop` for type `Bar<_, _>`
-  --> tests/ui/pin_project/conflict-drop.rs:16:15
-   |
-16 | #[pin_project(PinnedDrop)] //~ ERROR E0119
-   |               ^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
-...
-28 | impl<T, U> Drop for Bar<T, U> {
-   | ----------------------------- first implementation here
diff --git a/crates/pin-project/tests/ui/pin_project/conflict-unpin.rs b/crates/pin-project/tests/ui/pin_project/conflict-unpin.rs
index f58c45e..80efdb7 100644
--- a/crates/pin-project/tests/ui/pin_project/conflict-unpin.rs
+++ b/crates/pin-project/tests/ui/pin_project/conflict-unpin.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 // The same implementation.
diff --git a/crates/pin-project/tests/ui/pin_project/conflict-unpin.stderr b/crates/pin-project/tests/ui/pin_project/conflict-unpin.stderr
index 0f26b68..b1dcf8d 100644
--- a/crates/pin-project/tests/ui/pin_project/conflict-unpin.stderr
+++ b/crates/pin-project/tests/ui/pin_project/conflict-unpin.stderr
@@ -1,32 +1,32 @@
 error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<_, _>`
-  --> tests/ui/pin_project/conflict-unpin.rs:5:1
+  --> tests/ui/pin_project/conflict-unpin.rs:7:1
    |
-5  | #[pin_project] //~ ERROR E0119
+7  | #[pin_project] //~ ERROR E0119
    | ^^^^^^^^^^^^^^ conflicting implementation for `Foo<_, _>`
 ...
-13 | impl<T, U> Unpin for Foo<T, U> where T: Unpin {} // Conditional Unpin impl
-   | ------------------------------ first implementation here
+15 | impl<T, U> Unpin for Foo<T, U> where T: Unpin {} // Conditional Unpin impl
+   | --------------------------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0119]: conflicting implementations of trait `Unpin` for type `Bar<_, _>`
-  --> tests/ui/pin_project/conflict-unpin.rs:17:1
+  --> tests/ui/pin_project/conflict-unpin.rs:19:1
    |
-17 | #[pin_project] //~ ERROR E0119
+19 | #[pin_project] //~ ERROR E0119
    | ^^^^^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
 ...
-25 | impl<T, U> Unpin for Bar<T, U> {} // Non-conditional Unpin impl
+27 | impl<T, U> Unpin for Bar<T, U> {} // Non-conditional Unpin impl
    | ------------------------------ first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0119]: conflicting implementations of trait `Unpin` for type `Baz<_, _>`
-  --> tests/ui/pin_project/conflict-unpin.rs:27:1
+  --> tests/ui/pin_project/conflict-unpin.rs:29:1
    |
-27 | #[pin_project] //~ ERROR E0119
+29 | #[pin_project] //~ ERROR E0119
    | ^^^^^^^^^^^^^^ conflicting implementation for `Baz<_, _>`
 ...
-35 | impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {} // Conditional Unpin impl
+37 | impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {} // Conditional Unpin impl
    | -------------------------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/pin_project/impl-unsafe-unpin.rs b/crates/pin-project/tests/ui/pin_project/impl-unsafe-unpin.rs
index 562c9b6..9f86a41 100644
--- a/crates/pin-project/tests/ui/pin_project/impl-unsafe-unpin.rs
+++ b/crates/pin-project/tests/ui/pin_project/impl-unsafe-unpin.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::{pin_project, UnsafeUnpin};
 
 #[pin_project] //~ ERROR E0119
diff --git a/crates/pin-project/tests/ui/pin_project/impl-unsafe-unpin.stderr b/crates/pin-project/tests/ui/pin_project/impl-unsafe-unpin.stderr
index 7e66b9e..0901c97 100644
--- a/crates/pin-project/tests/ui/pin_project/impl-unsafe-unpin.stderr
+++ b/crates/pin-project/tests/ui/pin_project/impl-unsafe-unpin.stderr
@@ -1,32 +1,32 @@
 error[E0119]: conflicting implementations of trait `UnsafeUnpin` for type `Foo<_, _>`
-  --> tests/ui/pin_project/impl-unsafe-unpin.rs:3:1
+  --> tests/ui/pin_project/impl-unsafe-unpin.rs:5:1
    |
-3  | #[pin_project] //~ ERROR E0119
+5  | #[pin_project] //~ ERROR E0119
    | ^^^^^^^^^^^^^^ conflicting implementation for `Foo<_, _>`
 ...
-10 | unsafe impl<T, U> UnsafeUnpin for Foo<T, U> where T: Unpin {}
-   | ------------------------------------------- first implementation here
+12 | unsafe impl<T, U> UnsafeUnpin for Foo<T, U> where T: Unpin {}
+   | ---------------------------------------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0119]: conflicting implementations of trait `UnsafeUnpin` for type `Bar<_, _>`
-  --> tests/ui/pin_project/impl-unsafe-unpin.rs:12:1
+  --> tests/ui/pin_project/impl-unsafe-unpin.rs:14:1
    |
-12 | #[pin_project] //~ ERROR E0119
+14 | #[pin_project] //~ ERROR E0119
    | ^^^^^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
 ...
-19 | unsafe impl<T, U> UnsafeUnpin for Bar<T, U> {}
+21 | unsafe impl<T, U> UnsafeUnpin for Bar<T, U> {}
    | ------------------------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0119]: conflicting implementations of trait `UnsafeUnpin` for type `Baz<_, _>`
-  --> tests/ui/pin_project/impl-unsafe-unpin.rs:21:1
+  --> tests/ui/pin_project/impl-unsafe-unpin.rs:23:1
    |
-21 | #[pin_project] //~ ERROR E0119
+23 | #[pin_project] //~ ERROR E0119
    | ^^^^^^^^^^^^^^ conflicting implementation for `Baz<_, _>`
 ...
-28 | unsafe impl<T: Unpin, U: Unpin> UnsafeUnpin for Baz<T, U> {}
+30 | unsafe impl<T: Unpin, U: Unpin> UnsafeUnpin for Baz<T, U> {}
    | --------------------------------------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/pin_project/import_unnamed.rs b/crates/pin-project/tests/ui/pin_project/import_unnamed.rs
index 7926e61..000d5b5 100644
--- a/crates/pin-project/tests/ui/pin_project/import_unnamed.rs
+++ b/crates/pin-project/tests/ui/pin_project/import_unnamed.rs
@@ -1,5 +1,7 @@
-/// Only named projected types can be imported.
-/// See visibility.rs for named projected types.
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+// Only named projected types can be imported.
+// See visibility.rs for named projected types.
 
 mod pub_ {
     use pin_project::pin_project;
diff --git a/crates/pin-project/tests/ui/pin_project/import_unnamed.stderr b/crates/pin-project/tests/ui/pin_project/import_unnamed.stderr
index 260a35a..9ca3486 100644
--- a/crates/pin-project/tests/ui/pin_project/import_unnamed.stderr
+++ b/crates/pin-project/tests/ui/pin_project/import_unnamed.stderr
@@ -1,29 +1,29 @@
 error[E0432]: unresolved import `crate::pub_::__DefaultProjection`
-  --> tests/ui/pin_project/import_unnamed.rs:16:9
+  --> tests/ui/pin_project/import_unnamed.rs:18:9
    |
-16 |     use crate::pub_::__DefaultProjection; //~ ERROR E0432
+18 |     use crate::pub_::__DefaultProjection; //~ ERROR E0432
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__DefaultProjection` in `pub_`
 
 error[E0432]: unresolved import `crate::pub_::__DefaultProjectionRef`
-  --> tests/ui/pin_project/import_unnamed.rs:18:9
+  --> tests/ui/pin_project/import_unnamed.rs:20:9
    |
-18 |     use crate::pub_::__DefaultProjectionRef; //~ ERROR E0432
+20 |     use crate::pub_::__DefaultProjectionRef; //~ ERROR E0432
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__DefaultProjectionRef` in `pub_`
 
 error[E0432]: unresolved import `crate::pub_::__ReplaceProjection`
-  --> tests/ui/pin_project/import_unnamed.rs:20:9
+  --> tests/ui/pin_project/import_unnamed.rs:22:9
    |
-20 |     use crate::pub_::__ReplaceProjection; //~ ERROR E0432
+22 |     use crate::pub_::__ReplaceProjection; //~ ERROR E0432
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__ReplaceProjection` in `pub_`
 
 error[E0432]: unresolved import `crate::pub_::__ReplaceProjectionOwned`
-  --> tests/ui/pin_project/import_unnamed.rs:22:9
+  --> tests/ui/pin_project/import_unnamed.rs:24:9
    |
-22 |     use crate::pub_::__ReplaceProjectionOwned; //~ ERROR E0432
+24 |     use crate::pub_::__ReplaceProjectionOwned; //~ ERROR E0432
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__ReplaceProjectionOwned` in `pub_`
 
 error[E0432]: unresolved import `crate::pub_::__ReplaceProjectionRef`
-  --> tests/ui/pin_project/import_unnamed.rs:24:9
+  --> tests/ui/pin_project/import_unnamed.rs:26:9
    |
-24 |     use crate::pub_::__ReplaceProjectionRef; //~ ERROR E0432
+26 |     use crate::pub_::__ReplaceProjectionRef; //~ ERROR E0432
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__ReplaceProjectionRef` in `pub_`
diff --git a/crates/pin-project/tests/ui/pin_project/invalid.rs b/crates/pin-project/tests/ui/pin_project/invalid.rs
index a850c57..9867ce6 100644
--- a/crates/pin-project/tests/ui/pin_project/invalid.rs
+++ b/crates/pin-project/tests/ui/pin_project/invalid.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 mod pin_argument {
     use pin_project::pin_project;
 
diff --git a/crates/pin-project/tests/ui/pin_project/invalid.stderr b/crates/pin-project/tests/ui/pin_project/invalid.stderr
index ec5205f..01f1bf8 100644
--- a/crates/pin-project/tests/ui/pin_project/invalid.stderr
+++ b/crates/pin-project/tests/ui/pin_project/invalid.stderr
@@ -1,364 +1,364 @@
 error: unexpected token in attribute
- --> tests/ui/pin_project/invalid.rs:6:14
+ --> tests/ui/pin_project/invalid.rs:8:14
   |
-6 |         #[pin()] //~ ERROR unexpected token in attribute
+8 |         #[pin()] //~ ERROR unexpected token in attribute
   |              ^
 
 error: unexpected token in attribute
-  --> tests/ui/pin_project/invalid.rs:11:29
+  --> tests/ui/pin_project/invalid.rs:13:29
    |
-11 |     struct TupleStruct(#[pin(foo)] ()); //~ ERROR unexpected token in attribute
+13 |     struct TupleStruct(#[pin(foo)] ()); //~ ERROR unexpected token in attribute
    |                             ^
 
 error: unexpected token in attribute
-  --> tests/ui/pin_project/invalid.rs:15:16
+  --> tests/ui/pin_project/invalid.rs:17:16
    |
-15 |         V(#[pin(foo)] ()), //~ ERROR unexpected token in attribute
+17 |         V(#[pin(foo)] ()), //~ ERROR unexpected token in attribute
    |                ^
 
 error: unexpected token in attribute
-  --> tests/ui/pin_project/invalid.rs:21:18
+  --> tests/ui/pin_project/invalid.rs:23:18
    |
-21 |             #[pin(foo)] //~ ERROR unexpected token in attribute
+23 |             #[pin(foo)] //~ ERROR unexpected token in attribute
    |                  ^
 
 error: duplicate #[pin] attribute
-  --> tests/ui/pin_project/invalid.rs:33:9
+  --> tests/ui/pin_project/invalid.rs:35:9
    |
-33 |         #[pin] //~ ERROR duplicate #[pin] attribute
+35 |         #[pin] //~ ERROR duplicate #[pin] attribute
    |         ^^^^^^
 
 error: duplicate #[pin] attribute
-  --> tests/ui/pin_project/invalid.rs:40:9
+  --> tests/ui/pin_project/invalid.rs:42:9
    |
-40 |         #[pin]
+42 |         #[pin]
    |         ^^^^^^
 
 error: duplicate #[pin] attribute
-  --> tests/ui/pin_project/invalid.rs:49:13
+  --> tests/ui/pin_project/invalid.rs:51:13
    |
-49 |             #[pin]
+51 |             #[pin]
    |             ^^^^^^
 
 error: duplicate #[pin] attribute
-  --> tests/ui/pin_project/invalid.rs:59:13
+  --> tests/ui/pin_project/invalid.rs:61:13
    |
-59 |             #[pin] //~ ERROR duplicate #[pin] attribute
+61 |             #[pin] //~ ERROR duplicate #[pin] attribute
    |             ^^^^^^
 
 error: #[pin] attribute may only be used on fields of structs or variants
-  --> tests/ui/pin_project/invalid.rs:69:5
+  --> tests/ui/pin_project/invalid.rs:71:5
    |
-69 |     #[pin] //~ ERROR may only be used on fields of structs or variants
+71 |     #[pin] //~ ERROR may only be used on fields of structs or variants
    |     ^^^^^^
 
 error: #[pin] attribute may only be used on fields of structs or variants
-  --> tests/ui/pin_project/invalid.rs:77:9
+  --> tests/ui/pin_project/invalid.rs:79:9
    |
-77 |         #[pin] //~ ERROR may only be used on fields of structs or variants
+79 |         #[pin] //~ ERROR may only be used on fields of structs or variants
    |         ^^^^^^
 
 error: #[pin] attribute may only be used on fields of structs or variants
-  --> tests/ui/pin_project/invalid.rs:82:5
+  --> tests/ui/pin_project/invalid.rs:84:5
    |
-82 |     #[pin] //~ ERROR may only be used on fields of structs or variants
+84 |     #[pin] //~ ERROR may only be used on fields of structs or variants
    |     ^^^^^^
 
 error: `Replace` argument was removed, use `project_replace` argument instead
-  --> tests/ui/pin_project/invalid.rs:91:19
+  --> tests/ui/pin_project/invalid.rs:93:19
    |
-91 |     #[pin_project(Replace)] //~ ERROR `Replace` argument was removed, use `project_replace` argument instead
+93 |     #[pin_project(Replace)] //~ ERROR `Replace` argument was removed, use `project_replace` argument instead
    |                   ^^^^^^^
 
 error: expected identifier
-  --> tests/ui/pin_project/invalid.rs:94:31
+  --> tests/ui/pin_project/invalid.rs:96:31
    |
-94 |     #[pin_project(UnsafeUnpin,,)] //~ ERROR expected identifier
+96 |     #[pin_project(UnsafeUnpin,,)] //~ ERROR expected identifier
    |                               ^
 
 error: unexpected argument: Foo
-  --> tests/ui/pin_project/invalid.rs:97:19
+  --> tests/ui/pin_project/invalid.rs:99:19
    |
-97 |     #[pin_project(Foo)] //~ ERROR unexpected argument
+99 |     #[pin_project(Foo)] //~ ERROR unexpected argument
    |                   ^^^
 
 error: expected identifier
-   --> tests/ui/pin_project/invalid.rs:100:19
+   --> tests/ui/pin_project/invalid.rs:102:19
     |
-100 |     #[pin_project(,UnsafeUnpin)] //~ ERROR expected identifier
+102 |     #[pin_project(,UnsafeUnpin)] //~ ERROR expected identifier
     |                   ^
 
 error: expected `,`
-   --> tests/ui/pin_project/invalid.rs:106:30
+   --> tests/ui/pin_project/invalid.rs:108:30
     |
-106 |     #[pin_project(PinnedDrop PinnedDrop)] //~ ERROR expected `,`
+108 |     #[pin_project(PinnedDrop PinnedDrop)] //~ ERROR expected `,`
     |                              ^^^^^^^^^^
 
 error: duplicate `PinnedDrop` argument
-   --> tests/ui/pin_project/invalid.rs:109:31
+   --> tests/ui/pin_project/invalid.rs:111:31
     |
-109 |     #[pin_project(PinnedDrop, PinnedDrop)] //~ ERROR duplicate `PinnedDrop` argument
+111 |     #[pin_project(PinnedDrop, PinnedDrop)] //~ ERROR duplicate `PinnedDrop` argument
     |                               ^^^^^^^^^^
 
 error: duplicate `UnsafeUnpin` argument
-   --> tests/ui/pin_project/invalid.rs:112:32
+   --> tests/ui/pin_project/invalid.rs:114:32
     |
-112 |     #[pin_project(UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument
+114 |     #[pin_project(UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument
     |                                ^^^^^^^^^^^
 
 error: duplicate `!Unpin` argument
-   --> tests/ui/pin_project/invalid.rs:115:27
+   --> tests/ui/pin_project/invalid.rs:117:27
     |
-115 |     #[pin_project(!Unpin, !Unpin)] //~ ERROR duplicate `!Unpin` argument
+117 |     #[pin_project(!Unpin, !Unpin)] //~ ERROR duplicate `!Unpin` argument
     |                           ^^^^^^
 
 error: duplicate `UnsafeUnpin` argument
-   --> tests/ui/pin_project/invalid.rs:118:44
+   --> tests/ui/pin_project/invalid.rs:120:44
     |
-118 |     #[pin_project(PinnedDrop, UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument
+120 |     #[pin_project(PinnedDrop, UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument
     |                                            ^^^^^^^^^^^
 
 error: duplicate `PinnedDrop` argument
-   --> tests/ui/pin_project/invalid.rs:121:44
+   --> tests/ui/pin_project/invalid.rs:123:44
     |
-121 |     #[pin_project(PinnedDrop, UnsafeUnpin, PinnedDrop, UnsafeUnpin)] //~ ERROR duplicate `PinnedDrop` argument
+123 |     #[pin_project(PinnedDrop, UnsafeUnpin, PinnedDrop, UnsafeUnpin)] //~ ERROR duplicate `PinnedDrop` argument
     |                                            ^^^^^^^^^^
 
 error: duplicate `project` argument
-   --> tests/ui/pin_project/invalid.rs:124:32
+   --> tests/ui/pin_project/invalid.rs:126:32
     |
-124 |     #[pin_project(project = A, project = B)] //~ ERROR duplicate `project` argument
+126 |     #[pin_project(project = A, project = B)] //~ ERROR duplicate `project` argument
     |                                ^^^^^^^^^^^
 
 error: duplicate `project` argument
-   --> tests/ui/pin_project/invalid.rs:127:49
+   --> tests/ui/pin_project/invalid.rs:129:49
     |
-127 |     #[pin_project(project = A, project_ref = A, project = B)] //~ ERROR duplicate `project` argument
+129 |     #[pin_project(project = A, project_ref = A, project = B)] //~ ERROR duplicate `project` argument
     |                                                 ^^^^^^^^^^^
 
 error: duplicate `project_ref` argument
-   --> tests/ui/pin_project/invalid.rs:130:36
+   --> tests/ui/pin_project/invalid.rs:132:36
     |
-130 |     #[pin_project(project_ref = A, project_ref = B)] //~ ERROR duplicate `project_ref` argument
+132 |     #[pin_project(project_ref = A, project_ref = B)] //~ ERROR duplicate `project_ref` argument
     |                                    ^^^^^^^^^^^^^^^
 
 error: duplicate `project_replace` argument
-   --> tests/ui/pin_project/invalid.rs:133:40
+   --> tests/ui/pin_project/invalid.rs:135:40
     |
-133 |     #[pin_project(project_replace = A, project_replace = B)] //~ ERROR duplicate `project_replace` argument
+135 |     #[pin_project(project_replace = A, project_replace = B)] //~ ERROR duplicate `project_replace` argument
     |                                        ^^^^^^^^^^^^^^^^^^^
 
 error: duplicate `project_replace` argument
-   --> tests/ui/pin_project/invalid.rs:136:36
+   --> tests/ui/pin_project/invalid.rs:138:36
     |
-136 |     #[pin_project(project_replace, project_replace = B)] //~ ERROR duplicate `project_replace` argument
+138 |     #[pin_project(project_replace, project_replace = B)] //~ ERROR duplicate `project_replace` argument
     |                                    ^^^^^^^^^^^^^^^^^^^
 
 error: duplicate `project_replace` argument
-   --> tests/ui/pin_project/invalid.rs:139:40
+   --> tests/ui/pin_project/invalid.rs:141:40
     |
-139 |     #[pin_project(project_replace = A, project_replace)] //~ ERROR duplicate `project_replace` argument
+141 |     #[pin_project(project_replace = A, project_replace)] //~ ERROR duplicate `project_replace` argument
     |                                        ^^^^^^^^^^^^^^^
 
 error: arguments `PinnedDrop` and `project_replace` are mutually exclusive
-   --> tests/ui/pin_project/invalid.rs:145:19
+   --> tests/ui/pin_project/invalid.rs:147:19
     |
-145 |     #[pin_project(PinnedDrop, project_replace)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive
+147 |     #[pin_project(PinnedDrop, project_replace)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive
     |                   ^^^^^^^^^^
 
 error: arguments `PinnedDrop` and `project_replace` are mutually exclusive
-   --> tests/ui/pin_project/invalid.rs:148:49
+   --> tests/ui/pin_project/invalid.rs:150:49
     |
-148 |     #[pin_project(project_replace, UnsafeUnpin, PinnedDrop)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive
+150 |     #[pin_project(project_replace, UnsafeUnpin, PinnedDrop)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive
     |                                                 ^^^^^^^^^^
 
 error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
-   --> tests/ui/pin_project/invalid.rs:151:19
+   --> tests/ui/pin_project/invalid.rs:153:19
     |
-151 |     #[pin_project(UnsafeUnpin, !Unpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
+153 |     #[pin_project(UnsafeUnpin, !Unpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
     |                   ^^^^^^^^^^^
 
 error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
-   --> tests/ui/pin_project/invalid.rs:154:39
+   --> tests/ui/pin_project/invalid.rs:156:39
     |
-154 |     #[pin_project(!Unpin, PinnedDrop, UnsafeUnpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
+156 |     #[pin_project(!Unpin, PinnedDrop, UnsafeUnpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
     |                                       ^^^^^^^^^^^
 
 error: expected `!Unpin`, found `!`
-   --> tests/ui/pin_project/invalid.rs:157:19
+   --> tests/ui/pin_project/invalid.rs:159:19
     |
-157 |     #[pin_project(!)] //~ ERROR expected `!Unpin`, found `!`
+159 |     #[pin_project(!)] //~ ERROR expected `!Unpin`, found `!`
     |                   ^
 
 error: unexpected argument: Unpin
-   --> tests/ui/pin_project/invalid.rs:160:19
+   --> tests/ui/pin_project/invalid.rs:162:19
     |
-160 |     #[pin_project(Unpin)] //~ ERROR unexpected argument
+162 |     #[pin_project(Unpin)] //~ ERROR unexpected argument
     |                   ^^^^^
 
 error: expected `project = <identifier>`, found `project`
-   --> tests/ui/pin_project/invalid.rs:163:19
+   --> tests/ui/pin_project/invalid.rs:165:19
     |
-163 |     #[pin_project(project)] //~ ERROR expected `project = <identifier>`, found `project`
+165 |     #[pin_project(project)] //~ ERROR expected `project = <identifier>`, found `project`
     |                   ^^^^^^^
 
 error: expected `project = <identifier>`, found `project =`
-   --> tests/ui/pin_project/invalid.rs:166:19
+   --> tests/ui/pin_project/invalid.rs:168:19
     |
-166 |     #[pin_project(project = )] //~ ERROR expected `project = <identifier>`, found `project =`
+168 |     #[pin_project(project = )] //~ ERROR expected `project = <identifier>`, found `project =`
     |                   ^^^^^^^^^
 
 error: expected identifier
-   --> tests/ui/pin_project/invalid.rs:169:29
+   --> tests/ui/pin_project/invalid.rs:171:29
     |
-169 |     #[pin_project(project = !)] //~ ERROR expected identifier
+171 |     #[pin_project(project = !)] //~ ERROR expected identifier
     |                             ^
 
 error: expected `project_ref = <identifier>`, found `project_ref`
-   --> tests/ui/pin_project/invalid.rs:172:19
+   --> tests/ui/pin_project/invalid.rs:174:19
     |
-172 |     #[pin_project(project_ref)] //~ ERROR expected `project_ref = <identifier>`, found `project_ref`
+174 |     #[pin_project(project_ref)] //~ ERROR expected `project_ref = <identifier>`, found `project_ref`
     |                   ^^^^^^^^^^^
 
 error: expected `project_ref = <identifier>`, found `project_ref =`
-   --> tests/ui/pin_project/invalid.rs:175:19
+   --> tests/ui/pin_project/invalid.rs:177:19
     |
-175 |     #[pin_project(project_ref = )] //~ ERROR expected `project_ref = <identifier>`, found `project_ref =`
+177 |     #[pin_project(project_ref = )] //~ ERROR expected `project_ref = <identifier>`, found `project_ref =`
     |                   ^^^^^^^^^^^^^
 
 error: expected identifier
-   --> tests/ui/pin_project/invalid.rs:178:33
+   --> tests/ui/pin_project/invalid.rs:180:33
     |
-178 |     #[pin_project(project_ref = !)] //~ ERROR expected identifier
+180 |     #[pin_project(project_ref = !)] //~ ERROR expected identifier
     |                                 ^
 
 error: expected `project_replace = <identifier>`, found `project_replace =`
-   --> tests/ui/pin_project/invalid.rs:184:19
+   --> tests/ui/pin_project/invalid.rs:186:19
     |
-184 |     #[pin_project(project_replace = )] //~ ERROR expected `project_replace = <identifier>`, found `project_replace =`
+186 |     #[pin_project(project_replace = )] //~ ERROR expected `project_replace = <identifier>`, found `project_replace =`
     |                   ^^^^^^^^^^^^^^^^^
 
 error: expected identifier
-   --> tests/ui/pin_project/invalid.rs:187:37
+   --> tests/ui/pin_project/invalid.rs:189:37
     |
-187 |     #[pin_project(project_replace = !)] //~ ERROR expected identifier
+189 |     #[pin_project(project_replace = !)] //~ ERROR expected identifier
     |                                     ^
 
 error: `project_replace` argument requires a value when used on enums
-   --> tests/ui/pin_project/invalid.rs:190:19
+   --> tests/ui/pin_project/invalid.rs:192:19
     |
-190 |     #[pin_project(project_replace)] //~ ERROR `project_replace` argument requires a value when used on enums
+192 |     #[pin_project(project_replace)] //~ ERROR `project_replace` argument requires a value when used on enums
     |                   ^^^^^^^^^^^^^^^
 
 error: name `OrigAndProj` is the same as the original type name
-   --> tests/ui/pin_project/invalid.rs:199:29
+   --> tests/ui/pin_project/invalid.rs:201:29
     |
-199 |     #[pin_project(project = OrigAndProj)] //~ ERROR name `OrigAndProj` is the same as the original type name
+201 |     #[pin_project(project = OrigAndProj)] //~ ERROR name `OrigAndProj` is the same as the original type name
     |                             ^^^^^^^^^^^
 
 error: name `OrigAndProjRef` is the same as the original type name
-   --> tests/ui/pin_project/invalid.rs:202:33
+   --> tests/ui/pin_project/invalid.rs:204:33
     |
-202 |     #[pin_project(project_ref = OrigAndProjRef)] //~ ERROR name `OrigAndProjRef` is the same as the original type name
+204 |     #[pin_project(project_ref = OrigAndProjRef)] //~ ERROR name `OrigAndProjRef` is the same as the original type name
     |                                 ^^^^^^^^^^^^^^
 
 error: name `OrigAndProjOwn` is the same as the original type name
-   --> tests/ui/pin_project/invalid.rs:205:37
+   --> tests/ui/pin_project/invalid.rs:207:37
     |
-205 |     #[pin_project(project_replace = OrigAndProjOwn)] //~ ERROR name `OrigAndProjOwn` is the same as the original type name
+207 |     #[pin_project(project_replace = OrigAndProjOwn)] //~ ERROR name `OrigAndProjOwn` is the same as the original type name
     |                                     ^^^^^^^^^^^^^^
 
 error: name `A` is already specified by `project` argument
-   --> tests/ui/pin_project/invalid.rs:208:46
+   --> tests/ui/pin_project/invalid.rs:210:46
     |
-208 |     #[pin_project(project = A, project_ref = A)] //~ ERROR name `A` is already specified by `project` argument
+210 |     #[pin_project(project = A, project_ref = A)] //~ ERROR name `A` is already specified by `project` argument
     |                                              ^
 
 error: name `A` is already specified by `project` argument
-   --> tests/ui/pin_project/invalid.rs:211:50
+   --> tests/ui/pin_project/invalid.rs:213:50
     |
-211 |     #[pin_project(project = A, project_replace = A)] //~ ERROR name `A` is already specified by `project` argument
+213 |     #[pin_project(project = A, project_replace = A)] //~ ERROR name `A` is already specified by `project` argument
     |                                                  ^
 
 error: name `A` is already specified by `project_ref` argument
-   --> tests/ui/pin_project/invalid.rs:214:54
+   --> tests/ui/pin_project/invalid.rs:216:54
     |
-214 |     #[pin_project(project_ref = A, project_replace = A)] //~ ERROR name `A` is already specified by `project_ref` argument
+216 |     #[pin_project(project_ref = A, project_replace = A)] //~ ERROR name `A` is already specified by `project_ref` argument
     |                                                      ^
 
 error: duplicate #[pin_project] attribute
-   --> tests/ui/pin_project/invalid.rs:222:5
+   --> tests/ui/pin_project/invalid.rs:224:5
     |
-222 |     #[pin_project] //~ ERROR duplicate #[pin_project] attribute
+224 |     #[pin_project] //~ ERROR duplicate #[pin_project] attribute
     |     ^^^^^^^^^^^^^^
 
 error: #[pin_project] attribute may not be used on structs with zero fields
-   --> tests/ui/pin_project/invalid.rs:230:19
+   --> tests/ui/pin_project/invalid.rs:232:19
     |
-230 |     struct Struct {} //~ ERROR may not be used on structs with zero fields
+232 |     struct Struct {} //~ ERROR may not be used on structs with zero fields
     |                   ^^
 
 error: #[pin_project] attribute may not be used on structs with zero fields
-   --> tests/ui/pin_project/invalid.rs:233:23
+   --> tests/ui/pin_project/invalid.rs:235:23
     |
-233 |     struct TupleStruct(); //~ ERROR may not be used on structs with zero fields
+235 |     struct TupleStruct(); //~ ERROR may not be used on structs with zero fields
     |                       ^^
 
 error: #[pin_project] attribute may not be used on structs with zero fields
-   --> tests/ui/pin_project/invalid.rs:236:12
+   --> tests/ui/pin_project/invalid.rs:238:12
     |
-236 |     struct UnitStruct; //~ ERROR may not be used on structs with zero fields
+238 |     struct UnitStruct; //~ ERROR may not be used on structs with zero fields
     |            ^^^^^^^^^^
 
 error: #[pin_project] attribute may not be used on enums without variants
-   --> tests/ui/pin_project/invalid.rs:239:20
+   --> tests/ui/pin_project/invalid.rs:241:20
     |
-239 |     enum EnumEmpty {} //~ ERROR may not be used on enums without variants
+241 |     enum EnumEmpty {} //~ ERROR may not be used on enums without variants
     |                    ^^
 
 error: #[pin_project] attribute may not be used on enums with discriminants
-   --> tests/ui/pin_project/invalid.rs:243:13
+   --> tests/ui/pin_project/invalid.rs:245:13
     |
-243 |         V = 2, //~ ERROR may not be used on enums with discriminants
+245 |         V = 2, //~ ERROR may not be used on enums with discriminants
     |             ^
 
 error: #[pin_project] attribute may not be used on enums with zero fields
-   --> tests/ui/pin_project/invalid.rs:248:9
+   --> tests/ui/pin_project/invalid.rs:250:9
     |
-248 | /         Unit, //~ ERROR may not be used on enums with zero fields
-249 | |         Tuple(),
-250 | |         Struct {},
+250 | /         Unit, //~ ERROR may not be used on enums with zero fields
+251 | |         Tuple(),
+252 | |         Struct {},
     | |__________________^
 
 error: #[pin_project] attribute may only be used on structs or enums
-   --> tests/ui/pin_project/invalid.rs:254:5
+   --> tests/ui/pin_project/invalid.rs:256:5
     |
-254 | /     union Union {
-255 | |         //~^ ERROR may only be used on structs or enums
-256 | |         f: (),
-257 | |     }
+256 | /     union Union {
+257 | |         //~^ ERROR may only be used on structs or enums
+258 | |         f: (),
+259 | |     }
     | |_____^
 
 error: #[pin_project] attribute may only be used on structs or enums
-   --> tests/ui/pin_project/invalid.rs:260:5
+   --> tests/ui/pin_project/invalid.rs:262:5
     |
-260 |     impl Impl {} //~ ERROR may only be used on structs or enums
+262 |     impl Impl {} //~ ERROR may only be used on structs or enums
     |     ^^^^^^^^^^^^
 
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-   --> tests/ui/pin_project/invalid.rs:268:12
+   --> tests/ui/pin_project/invalid.rs:270:12
     |
-268 |     #[repr(packed)]
+270 |     #[repr(packed)]
     |            ^^^^^^
 
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-   --> tests/ui/pin_project/invalid.rs:272:12
+   --> tests/ui/pin_project/invalid.rs:274:12
     |
-272 |     #[repr(packed)]
+274 |     #[repr(packed)]
     |            ^^^^^^
 
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-   --> tests/ui/pin_project/invalid.rs:276:12
+   --> tests/ui/pin_project/invalid.rs:278:12
     |
-276 |     #[repr(packed)]
+278 |     #[repr(packed)]
     |            ^^^^^^
diff --git a/crates/pin-project/tests/ui/pin_project/negative_impls_stable.rs b/crates/pin-project/tests/ui/pin_project/negative_impls_stable.rs
new file mode 100644
index 0000000..85b81fb
--- /dev/null
+++ b/crates/pin-project/tests/ui/pin_project/negative_impls_stable.rs
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+// https://github.com/taiki-e/pin-project/issues/340#issuecomment-2428002670
+
+#[pin_project::pin_project]
+struct Foo<Pinned, Unpinned> {
+    #[pin]
+    pinned: Pinned,
+    unpinned: Unpinned,
+}
+
+struct MyPhantomPinned(::core::marker::PhantomPinned);
+impl Unpin for MyPhantomPinned where for<'cursed> str: Sized {}
+impl Unpin for Foo<MyPhantomPinned, ()> {}
+
+fn is_unpin<T: Unpin>() {}
+
+fn main() {
+    is_unpin::<Foo<MyPhantomPinned, ()>>()
+}
diff --git a/crates/pin-project/tests/ui/pin_project/negative_impls_stable.stderr b/crates/pin-project/tests/ui/pin_project/negative_impls_stable.stderr
new file mode 100644
index 0000000..5703e37
--- /dev/null
+++ b/crates/pin-project/tests/ui/pin_project/negative_impls_stable.stderr
@@ -0,0 +1,10 @@
+error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<MyPhantomPinned, ()>`
+  --> tests/ui/pin_project/negative_impls_stable.rs:5:1
+   |
+5  | #[pin_project::pin_project]
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Foo<MyPhantomPinned, ()>`
+...
+14 | impl Unpin for Foo<MyPhantomPinned, ()> {}
+   | --------------------------------------- first implementation here
+   |
+   = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/pin_project/overlapping_unpin_struct.rs b/crates/pin-project/tests/ui/pin_project/overlapping_unpin_struct.rs
index abfd5d1..a3c41ba 100644
--- a/crates/pin-project/tests/ui/pin_project/overlapping_unpin_struct.rs
+++ b/crates/pin-project/tests/ui/pin_project/overlapping_unpin_struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::marker::PhantomPinned;
 
 use pin_project::pin_project;
diff --git a/crates/pin-project/tests/ui/pin_project/overlapping_unpin_struct.stderr b/crates/pin-project/tests/ui/pin_project/overlapping_unpin_struct.stderr
index b9efd72..40b9e3b 100644
--- a/crates/pin-project/tests/ui/pin_project/overlapping_unpin_struct.stderr
+++ b/crates/pin-project/tests/ui/pin_project/overlapping_unpin_struct.stderr
@@ -1,26 +1,26 @@
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/pin_project/overlapping_unpin_struct.rs:18:16
+  --> tests/ui/pin_project/overlapping_unpin_struct.rs:20:16
    |
-18 |     is_unpin::<S<PhantomPinned>>(); //~ ERROR E0277
+20 |     is_unpin::<S<PhantomPinned>>(); //~ ERROR E0277
    |                ^^^^^^^^^^^^^^^^ within `_::__S<'_, PhantomPinned>`, the trait `Unpin` is not implemented for `PhantomPinned`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
-note: required because it appears within the type `__S<'_, PhantomPinned>`
-  --> tests/ui/pin_project/overlapping_unpin_struct.rs:6:8
+note: required because it appears within the type `_::__S<'_, PhantomPinned>`
+  --> tests/ui/pin_project/overlapping_unpin_struct.rs:8:8
    |
-6  | struct S<T> {
+8  | struct S<T> {
    |        ^
 note: required for `S<PhantomPinned>` to implement `Unpin`
-  --> tests/ui/pin_project/overlapping_unpin_struct.rs:5:1
+  --> tests/ui/pin_project/overlapping_unpin_struct.rs:7:1
    |
-5  | #[pin_project]
+7  | #[pin_project]
    | ^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
-6  | struct S<T> {
+8  | struct S<T> {
    |        ^^^^
 note: required by a bound in `is_unpin`
-  --> tests/ui/pin_project/overlapping_unpin_struct.rs:15:16
+  --> tests/ui/pin_project/overlapping_unpin_struct.rs:17:16
    |
-15 | fn is_unpin<T: Unpin>() {}
+17 | fn is_unpin<T: Unpin>() {}
    |                ^^^^^ required by this bound in `is_unpin`
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/pin_project/override-priv-mod.rs b/crates/pin-project/tests/ui/pin_project/override-priv-mod.rs
index 68285d3..d3bf72c 100644
--- a/crates/pin-project/tests/ui/pin_project/override-priv-mod.rs
+++ b/crates/pin-project/tests/ui/pin_project/override-priv-mod.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // https://discord.com/channels/273534239310479360/512792629516173323/870075511009857617
 
 #![allow(hidden_glob_reexports)]
diff --git a/crates/pin-project/tests/ui/pin_project/override-priv-mod.stderr b/crates/pin-project/tests/ui/pin_project/override-priv-mod.stderr
index 2e76c0a..f281b73 100644
--- a/crates/pin-project/tests/ui/pin_project/override-priv-mod.stderr
+++ b/crates/pin-project/tests/ui/pin_project/override-priv-mod.stderr
@@ -1,7 +1,7 @@
 error[E0119]: conflicting implementations of trait `SMustNotImplDrop` for type `S`
-  --> tests/ui/pin_project/override-priv-mod.rs:16:1
+  --> tests/ui/pin_project/override-priv-mod.rs:18:1
    |
-16 | #[pin_project] //~ ERROR conflicting implementations of trait `_::FooMustNotImplDrop`
+18 | #[pin_project] //~ ERROR conflicting implementations of trait `_::FooMustNotImplDrop`
    | ^^^^^^^^^^^^^^
    | |
    | first implementation here
diff --git a/crates/pin-project/tests/ui/pin_project/packed-enum.rs b/crates/pin-project/tests/ui/pin_project/packed-enum.rs
index 023c08d..e53430a 100644
--- a/crates/pin-project/tests/ui/pin_project/packed-enum.rs
+++ b/crates/pin-project/tests/ui/pin_project/packed-enum.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 // #[repr(packed)] cannot be apply on enums and will be rejected by rustc.
diff --git a/crates/pin-project/tests/ui/pin_project/packed-enum.stderr b/crates/pin-project/tests/ui/pin_project/packed-enum.stderr
index 1872211..6271edd 100644
--- a/crates/pin-project/tests/ui/pin_project/packed-enum.stderr
+++ b/crates/pin-project/tests/ui/pin_project/packed-enum.stderr
@@ -1,42 +1,42 @@
 error: #[repr(packed)] attribute should be applied to a struct or union
-  --> tests/ui/pin_project/packed-enum.rs:13:8
+  --> tests/ui/pin_project/packed-enum.rs:15:8
    |
-13 | #[repr(packed)] //~ ERROR E0517
+15 | #[repr(packed)] //~ ERROR E0517
    |        ^^^^^^
 
 error: #[repr(packed)] attribute should be applied to a struct or union
-  --> tests/ui/pin_project/packed-enum.rs:18:8
+  --> tests/ui/pin_project/packed-enum.rs:20:8
    |
-18 | #[repr(packed)] //~ ERROR E0517
+20 | #[repr(packed)] //~ ERROR E0517
    |        ^^^^^^
 
 error[E0517]: attribute should be applied to a struct or union
-  --> tests/ui/pin_project/packed-enum.rs:7:8
+  --> tests/ui/pin_project/packed-enum.rs:9:8
    |
-7  |   #[repr(packed)] //~ ERROR E0517
+9  |   #[repr(packed)] //~ ERROR E0517
    |          ^^^^^^
-8  | / enum E1 {
-9  | |     V(()),
-10 | | }
+10 | / enum E1 {
+11 | |     V(()),
+12 | | }
    | |_- not a struct or union
 
 error[E0517]: attribute should be applied to a struct or union
-  --> tests/ui/pin_project/packed-enum.rs:13:8
+  --> tests/ui/pin_project/packed-enum.rs:15:8
    |
-13 |   #[repr(packed)] //~ ERROR E0517
+15 |   #[repr(packed)] //~ ERROR E0517
    |          ^^^^^^
-14 | / enum E2 {
-15 | |     V(()),
-16 | | }
+16 | / enum E2 {
+17 | |     V(()),
+18 | | }
    | |_- not a struct or union
 
 error[E0517]: attribute should be applied to a struct or union
-  --> tests/ui/pin_project/packed-enum.rs:18:8
+  --> tests/ui/pin_project/packed-enum.rs:20:8
    |
-18 |   #[repr(packed)] //~ ERROR E0517
+20 |   #[repr(packed)] //~ ERROR E0517
    |          ^^^^^^
-19 |   #[pin_project]
-20 | / enum E3 {
-21 | |     V(()),
-22 | | }
+21 |   #[pin_project]
+22 | / enum E3 {
+23 | |     V(()),
+24 | | }
    | |_- not a struct or union
diff --git a/crates/pin-project/tests/ui/pin_project/packed-name-value.rs b/crates/pin-project/tests/ui/pin_project/packed-name-value.rs
index dedc403..1fd8af0 100644
--- a/crates/pin-project/tests/ui/pin_project/packed-name-value.rs
+++ b/crates/pin-project/tests/ui/pin_project/packed-name-value.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 // #[repr(packed = "")] is not valid format of #[repr(packed)] and will be
diff --git a/crates/pin-project/tests/ui/pin_project/packed-name-value.stderr b/crates/pin-project/tests/ui/pin_project/packed-name-value.stderr
index d8b2194..c1633b6 100644
--- a/crates/pin-project/tests/ui/pin_project/packed-name-value.stderr
+++ b/crates/pin-project/tests/ui/pin_project/packed-name-value.stderr
@@ -1,23 +1,23 @@
 error: #[repr(packed)] attribute should not be name-value pair
-  --> tests/ui/pin_project/packed-name-value.rs:16:8
+  --> tests/ui/pin_project/packed-name-value.rs:18:8
    |
-16 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
+18 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
    |        ^^^^^^^^^^^
 
 error: #[repr(packed)] attribute should not be name-value pair
-  --> tests/ui/pin_project/packed-name-value.rs:21:8
+  --> tests/ui/pin_project/packed-name-value.rs:23:8
    |
-21 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
+23 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
    |        ^^^^^^^^^^^
 
 error[E0693]: incorrect `repr(packed)` attribute format
-  --> tests/ui/pin_project/packed-name-value.rs:16:8
+  --> tests/ui/pin_project/packed-name-value.rs:18:8
    |
-16 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
+18 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
    |        ^^^^^^^^^^^ help: use parentheses instead: `packed()`
 
 error[E0693]: incorrect `repr(packed)` attribute format
-  --> tests/ui/pin_project/packed-name-value.rs:21:8
+  --> tests/ui/pin_project/packed-name-value.rs:23:8
    |
-21 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
+23 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
    |        ^^^^^^^^^^^ help: use parentheses instead: `packed()`
diff --git a/crates/pin-project/tests/ui/pin_project/packed.rs b/crates/pin-project/tests/ui/pin_project/packed.rs
index dd3ebfd..f5e0c6f 100644
--- a/crates/pin-project/tests/ui/pin_project/packed.rs
+++ b/crates/pin-project/tests/ui/pin_project/packed.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/ui/pin_project/packed.stderr b/crates/pin-project/tests/ui/pin_project/packed.stderr
index 25ea5f4..8f4d163 100644
--- a/crates/pin-project/tests/ui/pin_project/packed.stderr
+++ b/crates/pin-project/tests/ui/pin_project/packed.stderr
@@ -1,23 +1,23 @@
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> tests/ui/pin_project/packed.rs:4:8
+ --> tests/ui/pin_project/packed.rs:6:8
   |
-4 | #[repr(packed, C)] //~ ERROR may not be used on #[repr(packed)] types
+6 | #[repr(packed, C)] //~ ERROR may not be used on #[repr(packed)] types
   |        ^^^^^^
 
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-  --> tests/ui/pin_project/packed.rs:11:8
+  --> tests/ui/pin_project/packed.rs:13:8
    |
-11 | #[repr(packed, C)] //~ ERROR may not be used on #[repr(packed)] types
+13 | #[repr(packed, C)] //~ ERROR may not be used on #[repr(packed)] types
    |        ^^^^^^
 
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-  --> tests/ui/pin_project/packed.rs:19:8
+  --> tests/ui/pin_project/packed.rs:21:8
    |
-19 | #[repr(packed(2))] //~ ERROR may not be used on #[repr(packed)] types
+21 | #[repr(packed(2))] //~ ERROR may not be used on #[repr(packed)] types
    |        ^^^^^^^^^
 
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-  --> tests/ui/pin_project/packed.rs:26:8
+  --> tests/ui/pin_project/packed.rs:28:8
    |
-26 | #[repr(packed(2))] //~ ERROR may not be used on #[repr(packed)] types
+28 | #[repr(packed(2))] //~ ERROR may not be used on #[repr(packed)] types
    |        ^^^^^^^^^
diff --git a/crates/pin-project/tests/ui/pin_project/packed_sneaky-1.rs b/crates/pin-project/tests/ui/pin_project/packed_sneaky-1.rs
index 83a4612..a2c397b 100644
--- a/crates/pin-project/tests/ui/pin_project/packed_sneaky-1.rs
+++ b/crates/pin-project/tests/ui/pin_project/packed_sneaky-1.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use auxiliary_macro::{hidden_repr, hidden_repr2};
diff --git a/crates/pin-project/tests/ui/pin_project/packed_sneaky-1.stderr b/crates/pin-project/tests/ui/pin_project/packed_sneaky-1.stderr
index 0746e1a..5256dd6 100644
--- a/crates/pin-project/tests/ui/pin_project/packed_sneaky-1.stderr
+++ b/crates/pin-project/tests/ui/pin_project/packed_sneaky-1.stderr
@@ -1,25 +1,25 @@
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> tests/ui/pin_project/packed_sneaky-1.rs:7:15
+ --> tests/ui/pin_project/packed_sneaky-1.rs:9:15
   |
-7 | #[hidden_repr(packed)]
+9 | #[hidden_repr(packed)]
   |               ^^^^^^
 
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-  --> tests/ui/pin_project/packed_sneaky-1.rs:13:1
+  --> tests/ui/pin_project/packed_sneaky-1.rs:15:1
    |
-13 | #[hidden_repr2]
+15 | #[hidden_repr2]
    | ^^^^^^^^^^^^^^^
    |
    = note: this error originates in the attribute macro `hidden_repr2` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-  --> tests/ui/pin_project/packed_sneaky-1.rs:21:15
+  --> tests/ui/pin_project/packed_sneaky-1.rs:23:15
    |
-21 | #[hidden_repr(packed)]
+23 | #[hidden_repr(packed)]
    |               ^^^^^^
 
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-  --> tests/ui/pin_project/packed_sneaky-1.rs:30:15
+  --> tests/ui/pin_project/packed_sneaky-1.rs:32:15
    |
-30 | #[hidden_repr(packed)]
+32 | #[hidden_repr(packed)]
    |               ^^^^^^
diff --git a/crates/pin-project/tests/ui/pin_project/packed_sneaky-2.rs b/crates/pin-project/tests/ui/pin_project/packed_sneaky-2.rs
index b098358..57c3d85 100644
--- a/crates/pin-project/tests/ui/pin_project/packed_sneaky-2.rs
+++ b/crates/pin-project/tests/ui/pin_project/packed_sneaky-2.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use auxiliary_macro::hidden_repr_macro;
 use pin_project::pin_project;
 
diff --git a/crates/pin-project/tests/ui/pin_project/packed_sneaky-2.stderr b/crates/pin-project/tests/ui/pin_project/packed_sneaky-2.stderr
index d643052..88f80ce 100644
--- a/crates/pin-project/tests/ui/pin_project/packed_sneaky-2.stderr
+++ b/crates/pin-project/tests/ui/pin_project/packed_sneaky-2.stderr
@@ -1,13 +1,12 @@
 error: #[pin_project] attribute may not be used on #[repr(packed)] types
-  --> tests/ui/pin_project/packed_sneaky-2.rs:4:1
+  --> tests/ui/pin_project/packed_sneaky-2.rs:6:1
    |
-4  | / hidden_repr_macro! { //~ ERROR may not be used on #[repr(packed)] types
-5  | |     #[pin_project]
-6  | |     struct B {
-7  | |         #[pin]
-8  | |         f: u32,
-9  | |     }
-10 | | }
+6  | / hidden_repr_macro! { //~ ERROR may not be used on #[repr(packed)] types
+7  | |     #[pin_project]
+8  | |     struct B {
+9  | |         #[pin]
+...  |
+12 | | }
    | |_^
    |
    = note: this error originates in the macro `hidden_repr_macro` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/pin_project/packed_sneaky-3.rs b/crates/pin-project/tests/ui/pin_project/packed_sneaky-3.rs
index d3f00f3..e1b57d0 100644
--- a/crates/pin-project/tests/ui/pin_project/packed_sneaky-3.rs
+++ b/crates/pin-project/tests/ui/pin_project/packed_sneaky-3.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use auxiliary_macro::{hidden_repr_macro, HiddenRepr};
 use pin_project::pin_project;
 
diff --git a/crates/pin-project/tests/ui/pin_project/packed_sneaky-3.stderr b/crates/pin-project/tests/ui/pin_project/packed_sneaky-3.stderr
index c181bb3..a33a2f1 100644
--- a/crates/pin-project/tests/ui/pin_project/packed_sneaky-3.stderr
+++ b/crates/pin-project/tests/ui/pin_project/packed_sneaky-3.stderr
@@ -1,32 +1,32 @@
 error: expected item after attributes
- --> tests/ui/pin_project/packed_sneaky-3.rs:4:1
+ --> tests/ui/pin_project/packed_sneaky-3.rs:6:1
   |
-4 | hidden_repr_macro! {} //~ ERROR expected item after attributes
+6 | hidden_repr_macro! {} //~ ERROR expected item after attributes
   | ^^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `hidden_repr_macro` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: expected item after attributes
-  --> tests/ui/pin_project/packed_sneaky-3.rs:13:9
+  --> tests/ui/pin_project/packed_sneaky-3.rs:15:9
    |
-13 |         #[repr(packed)] //~ ERROR expected item after attributes
+15 |         #[repr(packed)] //~ ERROR expected item after attributes
    |         ^^^^^^^^^^^^^^^
 ...
-17 | hidden_repr_macro2! {}
+19 | hidden_repr_macro2! {}
    | ---------------------- in this macro invocation
    |
    = note: this error originates in the macro `hidden_repr_macro2` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: expected item after attributes
-  --> tests/ui/pin_project/packed_sneaky-3.rs:24:10
+  --> tests/ui/pin_project/packed_sneaky-3.rs:26:10
    |
-24 | #[derive(HiddenRepr)] //~ ERROR expected item after attributes
+26 | #[derive(HiddenRepr)] //~ ERROR expected item after attributes
    |          ^^^^^^^^^^
    |
    = note: this error originates in the derive macro `HiddenRepr` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: proc-macro derive produced unparsable tokens
-  --> tests/ui/pin_project/packed_sneaky-3.rs:24:10
+  --> tests/ui/pin_project/packed_sneaky-3.rs:26:10
    |
-24 | #[derive(HiddenRepr)] //~ ERROR expected item after attributes
+26 | #[derive(HiddenRepr)] //~ ERROR expected item after attributes
    |          ^^^^^^^^^^
diff --git a/crates/pin-project/tests/ui/pin_project/packed_sneaky-4.rs b/crates/pin-project/tests/ui/pin_project/packed_sneaky-4.rs
index 4f40907..b085e82 100644
--- a/crates/pin-project/tests/ui/pin_project/packed_sneaky-4.rs
+++ b/crates/pin-project/tests/ui/pin_project/packed_sneaky-4.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // https://github.com/taiki-e/pin-project/issues/342
 
 use auxiliary_macro::hidden_repr2;
diff --git a/crates/pin-project/tests/ui/pin_project/packed_sneaky-4.stderr b/crates/pin-project/tests/ui/pin_project/packed_sneaky-4.stderr
index 2c24367..c11979c 100644
--- a/crates/pin-project/tests/ui/pin_project/packed_sneaky-4.stderr
+++ b/crates/pin-project/tests/ui/pin_project/packed_sneaky-4.stderr
@@ -1,7 +1,7 @@
 error[E0793]: reference to packed field is unaligned
-  --> tests/ui/pin_project/packed_sneaky-4.rs:10:5
+  --> tests/ui/pin_project/packed_sneaky-4.rs:12:5
    |
-10 |     f: u32,
+12 |     f: u32,
    |     ^
    |
    = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
@@ -9,9 +9,9 @@
    = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)
 
 error[E0793]: reference to packed field is unaligned
- --> tests/ui/pin_project/packed_sneaky-4.rs:6:1
+ --> tests/ui/pin_project/packed_sneaky-4.rs:8:1
   |
-6 | #[pin_project] //~ ERROR reference to packed field is unaligned
+8 | #[pin_project] //~ ERROR reference to packed field is unaligned
   | ^^^^^^^^^^^^^^
   |
   = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
diff --git a/crates/pin-project/tests/ui/pin_project/private_in_public-enum.stderr b/crates/pin-project/tests/ui/pin_project/private_in_public-enum.stderr
deleted file mode 100644
index c93b265..0000000
--- a/crates/pin-project/tests/ui/pin_project/private_in_public-enum.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-error[E0446]: private type `PrivateEnum` in public interface
- --> tests/ui/pin_project/private_in_public-enum.rs:6:7
-  |
-6 |     V(PrivateEnum), //~ ERROR E0446
-  |       ^^^^^^^^^^^ can't leak private type
-...
-9 | enum PrivateEnum {
-  | ---------------- `PrivateEnum` declared as private
-
-error[E0446]: private type `foo::PrivateEnum` in public interface
-  --> tests/ui/pin_project/private_in_public-enum.rs:15:11
-   |
-15 |         V(PrivateEnum), //~ ERROR E0446
-   |           ^^^^^^^^^^^ can't leak private type
-...
-18 |     enum PrivateEnum {
-   |     ---------------- `foo::PrivateEnum` declared as private
diff --git a/crates/pin-project/tests/ui/pin_project/project_replace_unsized.rs b/crates/pin-project/tests/ui/pin_project/project_replace_unsized.rs
index 20dde12..b51531b 100644
--- a/crates/pin-project/tests/ui/pin_project/project_replace_unsized.rs
+++ b/crates/pin-project/tests/ui/pin_project/project_replace_unsized.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(project_replace)] //~ ERROR E0277
diff --git a/crates/pin-project/tests/ui/pin_project/project_replace_unsized.stderr b/crates/pin-project/tests/ui/pin_project/project_replace_unsized.stderr
index 7982dcc..87e0a6d 100644
--- a/crates/pin-project/tests/ui/pin_project/project_replace_unsized.stderr
+++ b/crates/pin-project/tests/ui/pin_project/project_replace_unsized.stderr
@@ -1,39 +1,39 @@
 error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> tests/ui/pin_project/project_replace_unsized.rs:3:15
+ --> tests/ui/pin_project/project_replace_unsized.rs:5:15
   |
-3 | #[pin_project(project_replace)] //~ ERROR E0277
+5 | #[pin_project(project_replace)] //~ ERROR E0277
   |               ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
-4 | struct Struct<T: ?Sized> {
+6 | struct Struct<T: ?Sized> {
   |               - this type parameter needs to be `Sized`
   |
 note: required because it appears within the type `Struct<T>`
- --> tests/ui/pin_project/project_replace_unsized.rs:4:8
+ --> tests/ui/pin_project/project_replace_unsized.rs:6:8
   |
-4 | struct Struct<T: ?Sized> {
+6 | struct Struct<T: ?Sized> {
   |        ^^^^^^
   = help: unsized fn params are gated as an unstable feature
 help: consider removing the `?Sized` bound to make the type parameter `Sized`
   |
-4 - struct Struct<T: ?Sized> {
-4 + struct Struct<T> {
+6 - struct Struct<T: ?Sized> {
+6 + struct Struct<T> {
   |
 help: function arguments must have a statically known size, borrowed types always have a known size
   |
-3 | #[pin_project(&project_replace)] //~ ERROR E0277
+5 | #[pin_project(&project_replace)] //~ ERROR E0277
   |               +
 
 error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> tests/ui/pin_project/project_replace_unsized.rs:3:1
+ --> tests/ui/pin_project/project_replace_unsized.rs:5:1
   |
-3 | #[pin_project(project_replace)] //~ ERROR E0277
+5 | #[pin_project(project_replace)] //~ ERROR E0277
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
-4 | struct Struct<T: ?Sized> {
+6 | struct Struct<T: ?Sized> {
   |               - this type parameter needs to be `Sized`
   |
 note: required because it appears within the type `Struct<T>`
- --> tests/ui/pin_project/project_replace_unsized.rs:4:8
+ --> tests/ui/pin_project/project_replace_unsized.rs:6:8
   |
-4 | struct Struct<T: ?Sized> {
+6 | struct Struct<T: ?Sized> {
   |        ^^^^^^
 note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
  --> src/lib.rs
@@ -45,80 +45,80 @@
   |                       --- required by a bound in this associated function
   = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 help: consider removing the `?Sized` bound to make the type parameter `Sized`
-    |
-4   - struct Struct<T: ?Sized> {
-4   + struct Struct<T> {
+  |
+6   - struct Struct<T: ?Sized> {
+6   + struct Struct<T> {
     |
 
 error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> tests/ui/pin_project/project_replace_unsized.rs:5:5
+ --> tests/ui/pin_project/project_replace_unsized.rs:7:5
   |
-3 | #[pin_project(project_replace)] //~ ERROR E0277
+5 | #[pin_project(project_replace)] //~ ERROR E0277
   | ------------------------------- required by a bound introduced by this call
-4 | struct Struct<T: ?Sized> {
+6 | struct Struct<T: ?Sized> {
   |               - this type parameter needs to be `Sized`
-5 |     f: T,
+7 |     f: T,
   |     ^ doesn't have a size known at compile-time
   |
-note: required by a bound in `std::ptr::read`
+note: required by an implicit `Sized` bound in `std::ptr::read`
  --> $RUST/core/src/ptr/mod.rs
   |
   | pub const unsafe fn read<T>(src: *const T) -> T {
-  |                          ^ required by this bound in `read`
+  |                          ^ required by the implicit `Sized` requirement on this type parameter in `read`
 help: consider removing the `?Sized` bound to make the type parameter `Sized`
-     |
-4    - struct Struct<T: ?Sized> {
-4    + struct Struct<T> {
+  |
+6    - struct Struct<T: ?Sized> {
+6    + struct Struct<T> {
      |
 
 error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> tests/ui/pin_project/project_replace_unsized.rs:8:15
-  |
-8 | #[pin_project(project_replace)] //~ ERROR E0277
-  |               ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
-9 | struct TupleStruct<T: ?Sized>(T);
-  |                    - this type parameter needs to be `Sized`
-  |
+  --> tests/ui/pin_project/project_replace_unsized.rs:10:15
+   |
+10 | #[pin_project(project_replace)] //~ ERROR E0277
+   |               ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+11 | struct TupleStruct<T: ?Sized>(T);
+   |                    - this type parameter needs to be `Sized`
+   |
 note: required because it appears within the type `TupleStruct<T>`
- --> tests/ui/pin_project/project_replace_unsized.rs:9:8
-  |
-9 | struct TupleStruct<T: ?Sized>(T);
-  |        ^^^^^^^^^^^
-  = help: unsized fn params are gated as an unstable feature
+  --> tests/ui/pin_project/project_replace_unsized.rs:11:8
+   |
+11 | struct TupleStruct<T: ?Sized>(T);
+   |        ^^^^^^^^^^^
+   = help: unsized fn params are gated as an unstable feature
 help: consider removing the `?Sized` bound to make the type parameter `Sized`
-  |
-9 - struct TupleStruct<T: ?Sized>(T);
-9 + struct TupleStruct<T>(T);
-  |
+   |
+11 - struct TupleStruct<T: ?Sized>(T);
+11 + struct TupleStruct<T>(T);
+   |
 help: function arguments must have a statically known size, borrowed types always have a known size
-  |
-8 | #[pin_project(&project_replace)] //~ ERROR E0277
-  |               +
+   |
+10 | #[pin_project(&project_replace)] //~ ERROR E0277
+   |               +
 
 error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> tests/ui/pin_project/project_replace_unsized.rs:8:1
-  |
-8 | #[pin_project(project_replace)] //~ ERROR E0277
-  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
-9 | struct TupleStruct<T: ?Sized>(T);
-  |                    - this type parameter needs to be `Sized`
-  |
+  --> tests/ui/pin_project/project_replace_unsized.rs:10:1
+   |
+10 | #[pin_project(project_replace)] //~ ERROR E0277
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+11 | struct TupleStruct<T: ?Sized>(T);
+   |                    - this type parameter needs to be `Sized`
+   |
 note: required because it appears within the type `TupleStruct<T>`
- --> tests/ui/pin_project/project_replace_unsized.rs:9:8
-  |
-9 | struct TupleStruct<T: ?Sized>(T);
-  |        ^^^^^^^^^^^
+  --> tests/ui/pin_project/project_replace_unsized.rs:11:8
+   |
+11 | struct TupleStruct<T: ?Sized>(T);
+   |        ^^^^^^^^^^^
 note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
- --> src/lib.rs
-  |
-  |     impl<T> UnsafeOverwriteGuard<T> {
-  |          ^ required by this bound in `UnsafeOverwriteGuard::<T>::new`
-  |         #[doc(hidden)]
-  |         pub unsafe fn new(target: *mut T, value: T) -> Self {
-  |                       --- required by a bound in this associated function
-  = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
+  --> src/lib.rs
+   |
+   |     impl<T> UnsafeOverwriteGuard<T> {
+   |          ^ required by this bound in `UnsafeOverwriteGuard::<T>::new`
+   |         #[doc(hidden)]
+   |         pub unsafe fn new(target: *mut T, value: T) -> Self {
+   |                       --- required by a bound in this associated function
+   = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 help: consider removing the `?Sized` bound to make the type parameter `Sized`
-    |
-9   - struct TupleStruct<T: ?Sized>(T);
-9   + struct TupleStruct<T>(T);
+   |
+11  - struct TupleStruct<T: ?Sized>(T);
+11  + struct TupleStruct<T>(T);
     |
diff --git a/crates/pin-project/tests/ui/pin_project/project_replace_unsized_fn_params.rs b/crates/pin-project/tests/ui/pin_project/project_replace_unsized_fn_params.rs
index e0fa25b..40b1d08 100644
--- a/crates/pin-project/tests/ui/pin_project/project_replace_unsized_fn_params.rs
+++ b/crates/pin-project/tests/ui/pin_project/project_replace_unsized_fn_params.rs
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+#![allow(internal_features)]
 #![feature(unsized_fn_params)]
 
 use pin_project::pin_project;
diff --git a/crates/pin-project/tests/ui/pin_project/project_replace_unsized_fn_params.stderr b/crates/pin-project/tests/ui/pin_project/project_replace_unsized_fn_params.stderr
index e8e9c8c..2ce7403 100644
--- a/crates/pin-project/tests/ui/pin_project/project_replace_unsized_fn_params.stderr
+++ b/crates/pin-project/tests/ui/pin_project/project_replace_unsized_fn_params.stderr
@@ -1,36 +1,36 @@
 error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:6:8
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:9:8
   |
-6 | struct Struct<T: ?Sized> {
+9 | struct Struct<T: ?Sized> {
   |        ^^^^^^^-^^^^^^^^^
   |        |      |
   |        |      this type parameter needs to be `Sized`
   |        doesn't have a size known at compile-time
   |
 note: required because it appears within the type `__StructProjectionOwned<T>`
- --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:6:8
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:9:8
   |
-6 | struct Struct<T: ?Sized> {
+9 | struct Struct<T: ?Sized> {
   |        ^^^^^^
   = note: the return type of a function must have a statically known size
 help: consider removing the `?Sized` bound to make the type parameter `Sized`
   |
-6 - struct Struct<T: ?Sized> {
-6 + struct Struct<T> {
+9 - struct Struct<T: ?Sized> {
+9 + struct Struct<T> {
   |
 
 error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:5:1
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:8:1
   |
-5 | #[pin_project(project_replace)] //~ ERROR E0277
+8 | #[pin_project(project_replace)] //~ ERROR E0277
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
-6 | struct Struct<T: ?Sized> {
+9 | struct Struct<T: ?Sized> {
   |               - this type parameter needs to be `Sized`
   |
 note: required because it appears within the type `Struct<T>`
- --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:6:8
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:9:8
   |
-6 | struct Struct<T: ?Sized> {
+9 | struct Struct<T: ?Sized> {
   |        ^^^^^^
 note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
  --> src/lib.rs
@@ -42,65 +42,65 @@
   |                       --- required by a bound in this associated function
   = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 help: consider removing the `?Sized` bound to make the type parameter `Sized`
-    |
-6   - struct Struct<T: ?Sized> {
-6   + struct Struct<T> {
+  |
+9   - struct Struct<T: ?Sized> {
+9   + struct Struct<T> {
     |
 
 error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:7:5
-  |
-5 | #[pin_project(project_replace)] //~ ERROR E0277
-  | ------------------------------- required by a bound introduced by this call
-6 | struct Struct<T: ?Sized> {
-  |               - this type parameter needs to be `Sized`
-7 |     f: T,
-  |     ^ doesn't have a size known at compile-time
-  |
-note: required by a bound in `std::ptr::read`
- --> $RUST/core/src/ptr/mod.rs
-  |
-  | pub const unsafe fn read<T>(src: *const T) -> T {
-  |                          ^ required by this bound in `read`
-help: consider removing the `?Sized` bound to make the type parameter `Sized`
-     |
-6    - struct Struct<T: ?Sized> {
-6    + struct Struct<T> {
-     |
-
-error[E0277]: the size for values of type `T` cannot be known at compilation time
-  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:11:8
+  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:10:5
    |
-11 | struct TupleStruct<T: ?Sized>(T);
+8  | #[pin_project(project_replace)] //~ ERROR E0277
+   | ------------------------------- required by a bound introduced by this call
+9  | struct Struct<T: ?Sized> {
+   |               - this type parameter needs to be `Sized`
+10 |     f: T,
+   |     ^ doesn't have a size known at compile-time
+   |
+note: required by an implicit `Sized` bound in `std::ptr::read`
+  --> $RUST/core/src/ptr/mod.rs
+   |
+   | pub const unsafe fn read<T>(src: *const T) -> T {
+   |                          ^ required by the implicit `Sized` requirement on this type parameter in `read`
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+   |
+9    - struct Struct<T: ?Sized> {
+9    + struct Struct<T> {
+     |
+
+error[E0277]: the size for values of type `T` cannot be known at compilation time
+  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:14:8
+   |
+14 | struct TupleStruct<T: ?Sized>(T);
    |        ^^^^^^^^^^^^-^^^^^^^^^
    |        |           |
    |        |           this type parameter needs to be `Sized`
    |        doesn't have a size known at compile-time
    |
 note: required because it appears within the type `__TupleStructProjectionOwned<T>`
-  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:11:8
+  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:14:8
    |
-11 | struct TupleStruct<T: ?Sized>(T);
+14 | struct TupleStruct<T: ?Sized>(T);
    |        ^^^^^^^^^^^
    = note: the return type of a function must have a statically known size
 help: consider removing the `?Sized` bound to make the type parameter `Sized`
    |
-11 - struct TupleStruct<T: ?Sized>(T);
-11 + struct TupleStruct<T>(T);
+14 - struct TupleStruct<T: ?Sized>(T);
+14 + struct TupleStruct<T>(T);
    |
 
 error[E0277]: the size for values of type `T` cannot be known at compilation time
-  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:10:1
+  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:13:1
    |
-10 | #[pin_project(project_replace)] //~ ERROR E0277
+13 | #[pin_project(project_replace)] //~ ERROR E0277
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
-11 | struct TupleStruct<T: ?Sized>(T);
+14 | struct TupleStruct<T: ?Sized>(T);
    |                    - this type parameter needs to be `Sized`
    |
 note: required because it appears within the type `TupleStruct<T>`
-  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:11:8
+  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:14:8
    |
-11 | struct TupleStruct<T: ?Sized>(T);
+14 | struct TupleStruct<T: ?Sized>(T);
    |        ^^^^^^^^^^^
 note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
   --> src/lib.rs
@@ -112,7 +112,7 @@
    |                       --- required by a bound in this associated function
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 help: consider removing the `?Sized` bound to make the type parameter `Sized`
-    |
-11  - struct TupleStruct<T: ?Sized>(T);
-11  + struct TupleStruct<T>(T);
+   |
+14  - struct TupleStruct<T: ?Sized>(T);
+14  + struct TupleStruct<T>(T);
     |
diff --git a/crates/pin-project/tests/ui/pin_project/remove-attr-from-field.rs b/crates/pin-project/tests/ui/pin_project/remove-attr-from-field.rs
index fd14da3..ce1c6c8 100644
--- a/crates/pin-project/tests/ui/pin_project/remove-attr-from-field.rs
+++ b/crates/pin-project/tests/ui/pin_project/remove-attr-from-field.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::{marker::PhantomPinned, pin::Pin};
 
 use auxiliary_macro::remove_attr;
diff --git a/crates/pin-project/tests/ui/pin_project/remove-attr-from-field.stderr b/crates/pin-project/tests/ui/pin_project/remove-attr-from-field.stderr
index f693261..4420c08 100644
--- a/crates/pin-project/tests/ui/pin_project/remove-attr-from-field.stderr
+++ b/crates/pin-project/tests/ui/pin_project/remove-attr-from-field.stderr
@@ -1,7 +1,7 @@
 error[E0308]: mismatched types
-  --> tests/ui/pin_project/remove-attr-from-field.rs:28:38
+  --> tests/ui/pin_project/remove-attr-from-field.rs:30:38
    |
-28 |     let _: Pin<&mut PhantomPinned> = x.f; //~ ERROR E0308
+30 |     let _: Pin<&mut PhantomPinned> = x.f; //~ ERROR E0308
    |            -----------------------   ^^^ expected `Pin<&mut PhantomPinned>`, found `&mut PhantomPinned`
    |            |
    |            expected due to this
@@ -10,9 +10,9 @@
            found mutable reference `&mut PhantomPinned`
 
 error[E0308]: mismatched types
-  --> tests/ui/pin_project/remove-attr-from-field.rs:32:38
+  --> tests/ui/pin_project/remove-attr-from-field.rs:34:38
    |
-32 |     let _: Pin<&mut PhantomPinned> = x.f; //~ ERROR E0308
+34 |     let _: Pin<&mut PhantomPinned> = x.f; //~ ERROR E0308
    |            -----------------------   ^^^ expected `Pin<&mut PhantomPinned>`, found `&mut PhantomPinned`
    |            |
    |            expected due to this
diff --git a/crates/pin-project/tests/ui/pin_project/remove-attr-from-struct.rs b/crates/pin-project/tests/ui/pin_project/remove-attr-from-struct.rs
index cbe5aba..2f8865b 100644
--- a/crates/pin-project/tests/ui/pin_project/remove-attr-from-struct.rs
+++ b/crates/pin-project/tests/ui/pin_project/remove-attr-from-struct.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::{marker::PhantomPinned, pin::Pin};
 
 use auxiliary_macro::remove_attr;
diff --git a/crates/pin-project/tests/ui/pin_project/remove-attr-from-struct.stderr b/crates/pin-project/tests/ui/pin_project/remove-attr-from-struct.stderr
index 0b440dd..c05d845 100644
--- a/crates/pin-project/tests/ui/pin_project/remove-attr-from-struct.stderr
+++ b/crates/pin-project/tests/ui/pin_project/remove-attr-from-struct.stderr
@@ -1,65 +1,65 @@
 error: #[pin_project] attribute has been removed
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:22:1
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:24:1
    |
-22 | #[pin_project] //~ ERROR has been removed
+24 | #[pin_project] //~ ERROR has been removed
    | ^^^^^^^^^^^^^^
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: cannot find attribute `pin` in this scope
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:18:7
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:20:7
    |
-18 |     #[pin] //~ ERROR cannot find attribute `pin` in this scope
+20 |     #[pin] //~ ERROR cannot find attribute `pin` in this scope
    |       ^^^
 
 error: cannot find attribute `pin` in this scope
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:11:7
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:13:7
    |
-11 |     #[pin] //~ ERROR cannot find attribute `pin` in this scope
+13 |     #[pin] //~ ERROR cannot find attribute `pin` in this scope
    |       ^^^
 
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:35:16
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:37:16
    |
-35 |     is_unpin::<A>(); //~ ERROR E0277
+37 |     is_unpin::<A>(); //~ ERROR E0277
    |                ^ within `A`, the trait `Unpin` is not implemented for `PhantomPinned`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required because it appears within the type `A`
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:10:8
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:12:8
    |
-10 | struct A {
+12 | struct A {
    |        ^
 note: required by a bound in `is_unpin`
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:6:16
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:8:16
    |
-6  | fn is_unpin<T: Unpin>() {}
+8  | fn is_unpin<T: Unpin>() {}
    |                ^^^^^ required by this bound in `is_unpin`
 
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:36:16
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:38:16
    |
-36 |     is_unpin::<B>(); //~ ERROR E0277
+38 |     is_unpin::<B>(); //~ ERROR E0277
    |                ^ within `B`, the trait `Unpin` is not implemented for `PhantomPinned`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required because it appears within the type `B`
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:17:8
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:19:8
    |
-17 | struct B {
+19 | struct B {
    |        ^
 note: required by a bound in `is_unpin`
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:6:16
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:8:16
    |
-6  | fn is_unpin<T: Unpin>() {}
+8  | fn is_unpin<T: Unpin>() {}
    |                ^^^^^ required by this bound in `is_unpin`
 
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:40:22
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:42:22
    |
-40 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
+42 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
    |             -------- ^^^^^^ within `A`, the trait `Unpin` is not implemented for `PhantomPinned`
    |             |
    |             required by a bound introduced by this call
@@ -67,29 +67,29 @@
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required because it appears within the type `A`
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:10:8
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:12:8
    |
-10 | struct A {
+12 | struct A {
    |        ^
-note: required by a bound in `Pin::<P>::new`
+note: required by a bound in `Pin::<Ptr>::new`
   --> $RUST/core/src/pin.rs
    |
-   | impl<P: Deref<Target: Unpin>> Pin<P> {
-   |                       ^^^^^ required by this bound in `Pin::<P>::new`
+   | impl<Ptr: Deref<Target: Unpin>> Pin<Ptr> {
+   |                         ^^^^^ required by this bound in `Pin::<Ptr>::new`
 ...
-   |     pub const fn new(pointer: P) -> Pin<P> {
+   |     pub const fn new(pointer: Ptr) -> Pin<Ptr> {
    |                  --- required by a bound in this associated function
 
 error[E0599]: no method named `project` found for struct `Pin<&mut A>` in the current scope
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:40:30
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:42:30
    |
-40 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
+42 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
    |                              ^^^^^^^ method not found in `Pin<&mut A>`
 
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:43:22
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:45:22
    |
-43 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
+45 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
    |             -------- ^^^^^^ within `B`, the trait `Unpin` is not implemented for `PhantomPinned`
    |             |
    |             required by a bound introduced by this call
@@ -97,21 +97,21 @@
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required because it appears within the type `B`
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:17:8
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:19:8
    |
-17 | struct B {
+19 | struct B {
    |        ^
-note: required by a bound in `Pin::<P>::new`
+note: required by a bound in `Pin::<Ptr>::new`
   --> $RUST/core/src/pin.rs
    |
-   | impl<P: Deref<Target: Unpin>> Pin<P> {
-   |                       ^^^^^ required by this bound in `Pin::<P>::new`
+   | impl<Ptr: Deref<Target: Unpin>> Pin<Ptr> {
+   |                         ^^^^^ required by this bound in `Pin::<Ptr>::new`
 ...
-   |     pub const fn new(pointer: P) -> Pin<P> {
+   |     pub const fn new(pointer: Ptr) -> Pin<Ptr> {
    |                  --- required by a bound in this associated function
 
 error[E0599]: no method named `project` found for struct `Pin<&mut B>` in the current scope
-  --> tests/ui/pin_project/remove-attr-from-struct.rs:43:30
+  --> tests/ui/pin_project/remove-attr-from-struct.rs:45:30
    |
-43 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
+45 |     let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
    |                              ^^^^^^^ method not found in `Pin<&mut B>`
diff --git a/crates/pin-project/tests/ui/pin_project/safe_packed_borrows.rs b/crates/pin-project/tests/ui/pin_project/safe_packed_borrows.rs
index 8ef144c..28c9202 100644
--- a/crates/pin-project/tests/ui/pin_project/safe_packed_borrows.rs
+++ b/crates/pin-project/tests/ui/pin_project/safe_packed_borrows.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 #![deny(renamed_and_removed_lints)]
 #![deny(safe_packed_borrows)] //~ ERROR has been renamed to `unaligned_references`
 
diff --git a/crates/pin-project/tests/ui/pin_project/safe_packed_borrows.stderr b/crates/pin-project/tests/ui/pin_project/safe_packed_borrows.stderr
index 26e6f8d..c2db94b 100644
--- a/crates/pin-project/tests/ui/pin_project/safe_packed_borrows.stderr
+++ b/crates/pin-project/tests/ui/pin_project/safe_packed_borrows.stderr
@@ -1,19 +1,19 @@
 error: lint `safe_packed_borrows` has been removed: converted into hard error, see issue #82523 <https://github.com/rust-lang/rust/issues/82523> for more information
- --> tests/ui/pin_project/safe_packed_borrows.rs:2:9
+ --> tests/ui/pin_project/safe_packed_borrows.rs:4:9
   |
-2 | #![deny(safe_packed_borrows)] //~ ERROR has been renamed to `unaligned_references`
+4 | #![deny(safe_packed_borrows)] //~ ERROR has been renamed to `unaligned_references`
   |         ^^^^^^^^^^^^^^^^^^^
   |
 note: the lint level is defined here
- --> tests/ui/pin_project/safe_packed_borrows.rs:1:9
+ --> tests/ui/pin_project/safe_packed_borrows.rs:3:9
   |
-1 | #![deny(renamed_and_removed_lints)]
+3 | #![deny(renamed_and_removed_lints)]
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0793]: reference to packed field is unaligned
-  --> tests/ui/pin_project/safe_packed_borrows.rs:21:13
+  --> tests/ui/pin_project/safe_packed_borrows.rs:23:13
    |
-21 |     let _ = &a.f;
+23 |     let _ = &a.f;
    |             ^^^^
    |
    = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
@@ -21,9 +21,9 @@
    = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)
 
 error[E0793]: reference to packed field is unaligned
-  --> tests/ui/pin_project/safe_packed_borrows.rs:24:13
+  --> tests/ui/pin_project/safe_packed_borrows.rs:26:13
    |
-24 |     let _ = &b.f;
+26 |     let _ = &b.f;
    |             ^^^^
    |
    = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
diff --git a/crates/pin-project/tests/ui/pin_project/unaligned_references.rs b/crates/pin-project/tests/ui/pin_project/unaligned_references.rs
index 5c7dc43..064e3ef 100644
--- a/crates/pin-project/tests/ui/pin_project/unaligned_references.rs
+++ b/crates/pin-project/tests/ui/pin_project/unaligned_references.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Refs: https://github.com/rust-lang/rust/issues/82523
 
 #[repr(packed)]
diff --git a/crates/pin-project/tests/ui/pin_project/unaligned_references.stderr b/crates/pin-project/tests/ui/pin_project/unaligned_references.stderr
index 617f164..c9c9f78 100644
--- a/crates/pin-project/tests/ui/pin_project/unaligned_references.stderr
+++ b/crates/pin-project/tests/ui/pin_project/unaligned_references.stderr
@@ -1,7 +1,7 @@
 error[E0793]: reference to packed field is unaligned
-  --> tests/ui/pin_project/unaligned_references.rs:15:13
+  --> tests/ui/pin_project/unaligned_references.rs:17:13
    |
-15 |     let _ = &a.f; //~ ERROR reference to packed field is unaligned
+17 |     let _ = &a.f; //~ ERROR reference to packed field is unaligned
    |             ^^^^
    |
    = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
@@ -9,9 +9,9 @@
    = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)
 
 error[E0793]: reference to packed field is unaligned
-  --> tests/ui/pin_project/unaligned_references.rs:18:13
+  --> tests/ui/pin_project/unaligned_references.rs:20:13
    |
-18 |     let _ = &b.f; //~ ERROR reference to packed field is unaligned
+20 |     let _ = &b.f; //~ ERROR reference to packed field is unaligned
    |             ^^^^
    |
    = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
diff --git a/crates/pin-project/tests/ui/pin_project/unpin_sneaky.rs b/crates/pin-project/tests/ui/pin_project/unpin_sneaky.rs
index 3f5f32b..3a918f2 100644
--- a/crates/pin-project/tests/ui/pin_project/unpin_sneaky.rs
+++ b/crates/pin-project/tests/ui/pin_project/unpin_sneaky.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project]
diff --git a/crates/pin-project/tests/ui/pin_project/unpin_sneaky.stderr b/crates/pin-project/tests/ui/pin_project/unpin_sneaky.stderr
index 82c2aa5..54cd8ca 100644
--- a/crates/pin-project/tests/ui/pin_project/unpin_sneaky.stderr
+++ b/crates/pin-project/tests/ui/pin_project/unpin_sneaky.stderr
@@ -1,5 +1,5 @@
 error[E0412]: cannot find type `__S` in this scope
- --> tests/ui/pin_project/unpin_sneaky.rs:9:16
-  |
-9 | impl Unpin for __S {} //~ ERROR E0412,E0321
-  |                ^^^ not found in this scope
+  --> tests/ui/pin_project/unpin_sneaky.rs:11:16
+   |
+11 | impl Unpin for __S {} //~ ERROR E0412,E0321
+   |                ^^^ not found in this scope
diff --git a/crates/pin-project/tests/ui/pin_project/visibility.rs b/crates/pin-project/tests/ui/pin_project/visibility.rs
index fdff5a6..fdbe91b 100644
--- a/crates/pin-project/tests/ui/pin_project/visibility.rs
+++ b/crates/pin-project/tests/ui/pin_project/visibility.rs
@@ -1,5 +1,9 @@
-/// Only named projected types can be imported.
-/// See import_unnamed.rs for unnamed projected types.
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+// Only named projected types can be imported.
+// See import_unnamed.rs for unnamed projected types.
+
+#![allow(unused_imports)]
 
 mod pub_ {
     use pin_project::pin_project;
@@ -27,7 +31,6 @@
 }
 pub mod pub_use2 {
     // Ok
-    #[allow(unused_imports)]
     pub(crate) use crate::pub_::{DProj, DProjRef, RProj, RProjOwn, RProjRef};
 }
 
@@ -42,7 +45,6 @@
 }
 pub mod pub_crate_use {
     // Ok
-    #[allow(unused_imports)]
     pub(crate) use crate::pub_crate::{DProj, DProjRef, RProj, RProjOwn, RProjRef};
 }
 
diff --git a/crates/pin-project/tests/ui/pin_project/visibility.stderr b/crates/pin-project/tests/ui/pin_project/visibility.stderr
index 4d1b722..57ccdf0 100644
--- a/crates/pin-project/tests/ui/pin_project/visibility.stderr
+++ b/crates/pin-project/tests/ui/pin_project/visibility.stderr
@@ -1,39 +1,39 @@
 error[E0365]: `DProj` is only public within the crate, and cannot be re-exported outside
-  --> tests/ui/pin_project/visibility.rs:15:13
+  --> tests/ui/pin_project/visibility.rs:19:13
    |
-15 |     pub use crate::pub_::DProj; //~ ERROR E0365
+19 |     pub use crate::pub_::DProj; //~ ERROR E0365
    |             ^^^^^^^^^^^^^^^^^^ re-export of crate public `DProj`
    |
    = note: consider declaring type or module `DProj` with `pub`
 
 error[E0365]: `DProjRef` is only public within the crate, and cannot be re-exported outside
-  --> tests/ui/pin_project/visibility.rs:17:13
+  --> tests/ui/pin_project/visibility.rs:21:13
    |
-17 |     pub use crate::pub_::DProjRef; //~ ERROR E0365
+21 |     pub use crate::pub_::DProjRef; //~ ERROR E0365
    |             ^^^^^^^^^^^^^^^^^^^^^ re-export of crate public `DProjRef`
    |
    = note: consider declaring type or module `DProjRef` with `pub`
 
 error[E0365]: `RProj` is only public within the crate, and cannot be re-exported outside
-  --> tests/ui/pin_project/visibility.rs:19:13
+  --> tests/ui/pin_project/visibility.rs:23:13
    |
-19 |     pub use crate::pub_::RProj; //~ ERROR E0365
+23 |     pub use crate::pub_::RProj; //~ ERROR E0365
    |             ^^^^^^^^^^^^^^^^^^ re-export of crate public `RProj`
    |
    = note: consider declaring type or module `RProj` with `pub`
 
 error[E0365]: `RProjOwn` is only public within the crate, and cannot be re-exported outside
-  --> tests/ui/pin_project/visibility.rs:21:13
+  --> tests/ui/pin_project/visibility.rs:25:13
    |
-21 |     pub use crate::pub_::RProjOwn; //~ ERROR E0365
+25 |     pub use crate::pub_::RProjOwn; //~ ERROR E0365
    |             ^^^^^^^^^^^^^^^^^^^^^ re-export of crate public `RProjOwn`
    |
    = note: consider declaring type or module `RProjOwn` with `pub`
 
 error[E0365]: `RProjRef` is only public within the crate, and cannot be re-exported outside
-  --> tests/ui/pin_project/visibility.rs:23:13
+  --> tests/ui/pin_project/visibility.rs:27:13
    |
-23 |     pub use crate::pub_::RProjRef; //~ ERROR E0365
+27 |     pub use crate::pub_::RProjRef; //~ ERROR E0365
    |             ^^^^^^^^^^^^^^^^^^^^^ re-export of crate public `RProjRef`
    |
    = note: consider declaring type or module `RProjRef` with `pub`
diff --git a/crates/pin-project/tests/ui/pinned_drop/call-drop-inner.rs b/crates/pin-project/tests/ui/pinned_drop/call-drop-inner.rs
index 9f89942..29e15ef 100644
--- a/crates/pin-project/tests/ui/pinned_drop/call-drop-inner.rs
+++ b/crates/pin-project/tests/ui/pinned_drop/call-drop-inner.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use pin_project::{pin_project, pinned_drop};
diff --git a/crates/pin-project/tests/ui/pinned_drop/call-drop-inner.stderr b/crates/pin-project/tests/ui/pinned_drop/call-drop-inner.stderr
index 277d50f..228202e 100644
--- a/crates/pin-project/tests/ui/pinned_drop/call-drop-inner.stderr
+++ b/crates/pin-project/tests/ui/pinned_drop/call-drop-inner.stderr
@@ -1,15 +1,17 @@
 error[E0061]: this function takes 0 arguments but 1 argument was supplied
-  --> tests/ui/pinned_drop/call-drop-inner.rs:13:9
+  --> tests/ui/pinned_drop/call-drop-inner.rs:15:9
    |
-13 |         __drop_inner(__self);
-   |         ^^^^^^^^^^^^ ------
-   |                      |
-   |                      unexpected argument of type `Pin<&mut Struct>`
-   |                      help: remove the extra argument
+15 |         __drop_inner(__self);
+   |         ^^^^^^^^^^^^ ------ unexpected argument of type `Pin<&mut Struct>`
    |
 note: function defined here
-  --> tests/ui/pinned_drop/call-drop-inner.rs:10:1
+  --> tests/ui/pinned_drop/call-drop-inner.rs:12:1
    |
-10 | #[pinned_drop]
+12 | #[pinned_drop]
    | ^^^^^^^^^^^^^^
    = note: this error originates in the attribute macro `pinned_drop` (in Nightly builds, run with -Z macro-backtrace for more info)
+help: remove the extra argument
+   |
+15 -         __drop_inner(__self);
+15 +         __drop_inner();
+   |
diff --git a/crates/pin-project/tests/ui/pinned_drop/conditional-drop-impl.rs b/crates/pin-project/tests/ui/pinned_drop/conditional-drop-impl.rs
index 23d756d..fb3b15d 100644
--- a/crates/pin-project/tests/ui/pinned_drop/conditional-drop-impl.rs
+++ b/crates/pin-project/tests/ui/pinned_drop/conditional-drop-impl.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use pin_project::{pin_project, pinned_drop};
diff --git a/crates/pin-project/tests/ui/pinned_drop/conditional-drop-impl.stderr b/crates/pin-project/tests/ui/pinned_drop/conditional-drop-impl.stderr
index 837b1db..e265663 100644
--- a/crates/pin-project/tests/ui/pinned_drop/conditional-drop-impl.stderr
+++ b/crates/pin-project/tests/ui/pinned_drop/conditional-drop-impl.stderr
@@ -1,31 +1,34 @@
 error[E0367]: `Drop` impl requires `T: Unpin` but the struct it is implemented for does not
-  --> tests/ui/pinned_drop/conditional-drop-impl.rs:11:9
+  --> tests/ui/pinned_drop/conditional-drop-impl.rs:13:9
    |
-11 | impl<T: Unpin> Drop for DropImpl<T> {
+13 | impl<T: Unpin> Drop for DropImpl<T> {
    |         ^^^^^
    |
 note: the implementor must specify the same requirement
-  --> tests/ui/pinned_drop/conditional-drop-impl.rs:7:1
+  --> tests/ui/pinned_drop/conditional-drop-impl.rs:9:1
    |
-7  | struct DropImpl<T> {
+9  | struct DropImpl<T> {
    | ^^^^^^^^^^^^^^^^^^
 
 error[E0277]: `T` cannot be unpinned
-  --> tests/ui/pinned_drop/conditional-drop-impl.rs:16:15
+  --> tests/ui/pinned_drop/conditional-drop-impl.rs:18:15
    |
-16 | #[pin_project(PinnedDrop)] //~ ERROR E0277
+18 | #[pin_project(PinnedDrop)] //~ ERROR E0277
    |               ^^^^^^^^^^ the trait `Unpin` is not implemented for `T`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required for `PinnedDropImpl<T>` to implement `PinnedDrop`
-  --> tests/ui/pinned_drop/conditional-drop-impl.rs:23:16
+  --> tests/ui/pinned_drop/conditional-drop-impl.rs:25:16
    |
-23 | impl<T: Unpin> PinnedDrop for PinnedDropImpl<T> {
+24 | #[pinned_drop]
+   | -------------- in this procedural macro expansion
+25 | impl<T: Unpin> PinnedDrop for PinnedDropImpl<T> {
    |         -----  ^^^^^^^^^^     ^^^^^^^^^^^^^^^^^
    |         |
    |         unsatisfied trait bound introduced here
-help: consider restricting type parameter `T`
+   = note: this error originates in the attribute macro `pinned_drop` (in Nightly builds, run with -Z macro-backtrace for more info)
+help: consider restricting type parameter `T` with trait `Unpin`
    |
-17 | struct PinnedDropImpl<T: std::marker::Unpin> {
+19 | struct PinnedDropImpl<T: std::marker::Unpin> {
    |                        ++++++++++++++++++++
diff --git a/crates/pin-project/tests/ui/pinned_drop/forget-pinned-drop-impl.rs b/crates/pin-project/tests/ui/pinned_drop/forget-pinned-drop-impl.rs
index e31f46f..aea738a 100644
--- a/crates/pin-project/tests/ui/pinned_drop/forget-pinned-drop-impl.rs
+++ b/crates/pin-project/tests/ui/pinned_drop/forget-pinned-drop-impl.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(PinnedDrop)] //~ ERROR E0277
diff --git a/crates/pin-project/tests/ui/pinned_drop/forget-pinned-drop-impl.stderr b/crates/pin-project/tests/ui/pinned_drop/forget-pinned-drop-impl.stderr
index ef8a7bf..3e98a11 100644
--- a/crates/pin-project/tests/ui/pinned_drop/forget-pinned-drop-impl.stderr
+++ b/crates/pin-project/tests/ui/pinned_drop/forget-pinned-drop-impl.stderr
@@ -1,5 +1,5 @@
 error[E0277]: the trait bound `Struct: PinnedDrop` is not satisfied
- --> tests/ui/pinned_drop/forget-pinned-drop-impl.rs:3:15
+ --> tests/ui/pinned_drop/forget-pinned-drop-impl.rs:5:15
   |
-3 | #[pin_project(PinnedDrop)] //~ ERROR E0277
+5 | #[pin_project(PinnedDrop)] //~ ERROR E0277
   |               ^^^^^^^^^^ the trait `PinnedDrop` is not implemented for `Struct`
diff --git a/crates/pin-project/tests/ui/pinned_drop/invalid-self.rs b/crates/pin-project/tests/ui/pinned_drop/invalid-self.rs
index 783167f..da22ff8 100644
--- a/crates/pin-project/tests/ui/pinned_drop/invalid-self.rs
+++ b/crates/pin-project/tests/ui/pinned_drop/invalid-self.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // by-ref binding `ref (mut) self` and sub-patterns `@` are not allowed in receivers (rejected by rustc).
 
 use std::pin::Pin;
diff --git a/crates/pin-project/tests/ui/pinned_drop/invalid-self.stderr b/crates/pin-project/tests/ui/pinned_drop/invalid-self.stderr
index 464be5e..16d8725 100644
--- a/crates/pin-project/tests/ui/pinned_drop/invalid-self.stderr
+++ b/crates/pin-project/tests/ui/pinned_drop/invalid-self.stderr
@@ -1,25 +1,25 @@
 error: expected identifier, found keyword `self`
- --> tests/ui/pinned_drop/invalid-self.rs:8:26
-  |
-8 |     fn take_ref_self(ref self: Pin<&mut Self>) {} //~ ERROR expected identifier, found keyword `self`
-  |                          ^^^^ expected identifier, found keyword
+  --> tests/ui/pinned_drop/invalid-self.rs:10:26
+   |
+10 |     fn take_ref_self(ref self: Pin<&mut Self>) {} //~ ERROR expected identifier, found keyword `self`
+   |                          ^^^^ expected identifier, found keyword
 
 error: expected identifier, found keyword `self`
- --> tests/ui/pinned_drop/invalid-self.rs:9:34
-  |
-9 |     fn take_ref_mut_self(ref mut self: Pin<&mut Self>) {} //~ ERROR expected identifier, found keyword `self`
-  |                                  ^^^^ expected identifier, found keyword
+  --> tests/ui/pinned_drop/invalid-self.rs:11:34
+   |
+11 |     fn take_ref_mut_self(ref mut self: Pin<&mut Self>) {} //~ ERROR expected identifier, found keyword `self`
+   |                                  ^^^^ expected identifier, found keyword
 
 error: expected parameter name, found `@`
-  --> tests/ui/pinned_drop/invalid-self.rs:11:25
+  --> tests/ui/pinned_drop/invalid-self.rs:13:25
    |
-11 |     fn self_subpat(self @ S {}: Self) {} //~ ERROR expected one of `)`, `,`, or `:`, found `@`
+13 |     fn self_subpat(self @ S {}: Self) {} //~ ERROR expected one of `)`, `,`, or `:`, found `@`
    |                         ^ expected parameter name
 
 error: expected one of `)`, `,`, or `:`, found `@`
-  --> tests/ui/pinned_drop/invalid-self.rs:11:25
+  --> tests/ui/pinned_drop/invalid-self.rs:13:25
    |
-11 |     fn self_subpat(self @ S {}: Self) {} //~ ERROR expected one of `)`, `,`, or `:`, found `@`
+13 |     fn self_subpat(self @ S {}: Self) {} //~ ERROR expected one of `)`, `,`, or `:`, found `@`
    |                        -^ expected one of `)`, `,`, or `:`
    |                        |
    |                        help: missing `,`
diff --git a/crates/pin-project/tests/ui/pinned_drop/invalid.rs b/crates/pin-project/tests/ui/pinned_drop/invalid.rs
index b2c2526..de4f932 100644
--- a/crates/pin-project/tests/ui/pinned_drop/invalid.rs
+++ b/crates/pin-project/tests/ui/pinned_drop/invalid.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 mod argument {
     use std::pin::Pin;
 
diff --git a/crates/pin-project/tests/ui/pinned_drop/invalid.stderr b/crates/pin-project/tests/ui/pinned_drop/invalid.stderr
index 264def0..258c728 100644
--- a/crates/pin-project/tests/ui/pinned_drop/invalid.stderr
+++ b/crates/pin-project/tests/ui/pinned_drop/invalid.stderr
@@ -1,143 +1,143 @@
 error: unexpected argument: `foo`
- --> tests/ui/pinned_drop/invalid.rs:9:19
-  |
-9 |     #[pinned_drop(foo)] //~ ERROR unexpected argument
-  |                   ^^^
+  --> tests/ui/pinned_drop/invalid.rs:11:19
+   |
+11 |     #[pinned_drop(foo)] //~ ERROR unexpected argument
+   |                   ^^^
 
 error: duplicate #[pinned_drop] attribute
-  --> tests/ui/pinned_drop/invalid.rs:30:5
+  --> tests/ui/pinned_drop/invalid.rs:32:5
    |
-30 |     #[pinned_drop] //~ ERROR duplicate #[pinned_drop] attribute
+32 |     #[pinned_drop] //~ ERROR duplicate #[pinned_drop] attribute
    |     ^^^^^^^^^^^^^^
 
 error: #[pinned_drop] may only be used on implementation for the `PinnedDrop` trait
-  --> tests/ui/pinned_drop/invalid.rs:43:10
+  --> tests/ui/pinned_drop/invalid.rs:45:10
    |
-43 |     impl Drop for TraitImpl {} //~ ERROR may only be used on implementation for the `PinnedDrop` trait
+45 |     impl Drop for TraitImpl {} //~ ERROR may only be used on implementation for the `PinnedDrop` trait
    |          ^^^^
 
 error: #[pinned_drop] may only be used on implementation for the `PinnedDrop` trait
-  --> tests/ui/pinned_drop/invalid.rs:49:10
+  --> tests/ui/pinned_drop/invalid.rs:51:10
    |
-49 |     impl InherentImpl {} //~ ERROR may only be used on implementation for the `PinnedDrop` trait
+51 |     impl InherentImpl {} //~ ERROR may only be used on implementation for the `PinnedDrop` trait
    |          ^^^^^^^^^^^^
 
 error: expected `impl`
-  --> tests/ui/pinned_drop/invalid.rs:52:5
+  --> tests/ui/pinned_drop/invalid.rs:54:5
    |
-52 |     fn func(_: Pin<&mut ()>) {} //~ ERROR expected `impl`
+54 |     fn func(_: Pin<&mut ()>) {} //~ ERROR expected `impl`
    |     ^^
 
 error: implementing the trait `PinnedDrop` is not unsafe
-  --> tests/ui/pinned_drop/invalid.rs:62:5
+  --> tests/ui/pinned_drop/invalid.rs:64:5
    |
-62 |     unsafe impl PinnedDrop for Impl {
+64 |     unsafe impl PinnedDrop for Impl {
    |     ^^^^^^
 
 error: implementing the method `drop` is not unsafe
-  --> tests/ui/pinned_drop/invalid.rs:72:9
+  --> tests/ui/pinned_drop/invalid.rs:74:9
    |
-72 |         unsafe fn drop(self: Pin<&mut Self>) {} //~ ERROR implementing the method `drop` is not unsafe
+74 |         unsafe fn drop(self: Pin<&mut Self>) {} //~ ERROR implementing the method `drop` is not unsafe
    |         ^^^^^^
 
 error: not all trait items implemented, missing: `drop`
-  --> tests/ui/pinned_drop/invalid.rs:83:5
+  --> tests/ui/pinned_drop/invalid.rs:85:5
    |
-83 |     impl PinnedDrop for Empty {} //~ ERROR not all trait items implemented, missing: `drop`
+85 |     impl PinnedDrop for Empty {} //~ ERROR not all trait items implemented, missing: `drop`
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: const `A` is not a member of trait `PinnedDrop`
-  --> tests/ui/pinned_drop/invalid.rs:90:9
+  --> tests/ui/pinned_drop/invalid.rs:92:9
    |
-90 |         const A: u8 = 0; //~ ERROR const `A` is not a member of trait `PinnedDrop`
+92 |         const A: u8 = 0; //~ ERROR const `A` is not a member of trait `PinnedDrop`
    |         ^^^^^^^^^^^^^^^^
 
 error: const `A` is not a member of trait `PinnedDrop`
-   --> tests/ui/pinned_drop/invalid.rs:100:9
+   --> tests/ui/pinned_drop/invalid.rs:102:9
     |
-100 |         const A: u8 = 0; //~ ERROR const `A` is not a member of trait `PinnedDrop`
+102 |         const A: u8 = 0; //~ ERROR const `A` is not a member of trait `PinnedDrop`
     |         ^^^^^^^^^^^^^^^^
 
 error: type `A` is not a member of trait `PinnedDrop`
-   --> tests/ui/pinned_drop/invalid.rs:108:9
+   --> tests/ui/pinned_drop/invalid.rs:110:9
     |
-108 |         type A = u8; //~ ERROR type `A` is not a member of trait `PinnedDrop`
+110 |         type A = u8; //~ ERROR type `A` is not a member of trait `PinnedDrop`
     |         ^^^^^^^^^^^^
 
 error: type `A` is not a member of trait `PinnedDrop`
-   --> tests/ui/pinned_drop/invalid.rs:118:9
+   --> tests/ui/pinned_drop/invalid.rs:120:9
     |
-118 |         type A = u8; //~ ERROR type `A` is not a member of trait `PinnedDrop`
+120 |         type A = u8; //~ ERROR type `A` is not a member of trait `PinnedDrop`
     |         ^^^^^^^^^^^^
 
 error: duplicate definitions with name `drop`
-   --> tests/ui/pinned_drop/invalid.rs:127:9
+   --> tests/ui/pinned_drop/invalid.rs:129:9
     |
-127 |         fn drop(self: Pin<&mut Self>) {} //~ ERROR duplicate definitions with name `drop`
+129 |         fn drop(self: Pin<&mut Self>) {} //~ ERROR duplicate definitions with name `drop`
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: method `drop` must return the unit type
-   --> tests/ui/pinned_drop/invalid.rs:149:42
+   --> tests/ui/pinned_drop/invalid.rs:151:42
     |
-149 |         fn drop(self: Pin<&mut Self>) -> Self {} //~ ERROR method `drop` must return the unit type
+151 |         fn drop(self: Pin<&mut Self>) -> Self {} //~ ERROR method `drop` must return the unit type
     |                                          ^^^^
 
 error: method `drop` must take an argument `self: Pin<&mut Self>`
-   --> tests/ui/pinned_drop/invalid.rs:157:16
+   --> tests/ui/pinned_drop/invalid.rs:159:16
     |
-157 |         fn drop() {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
+159 |         fn drop() {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
     |                ^^
 
 error: method `drop` must take an argument `self: Pin<&mut Self>`
-   --> tests/ui/pinned_drop/invalid.rs:165:17
+   --> tests/ui/pinned_drop/invalid.rs:167:17
     |
-165 |         fn drop(self: Pin<&mut Self>, _: ()) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
+167 |         fn drop(self: Pin<&mut Self>, _: ()) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: method `drop` must take an argument `self: Pin<&mut Self>`
-   --> tests/ui/pinned_drop/invalid.rs:173:17
+   --> tests/ui/pinned_drop/invalid.rs:175:17
     |
-173 |         fn drop(&mut self) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
+175 |         fn drop(&mut self) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
     |                 ^^^^^^^^^
 
 error: method `drop` must take an argument `self: Pin<&mut Self>`
-   --> tests/ui/pinned_drop/invalid.rs:181:17
+   --> tests/ui/pinned_drop/invalid.rs:183:17
     |
-181 |         fn drop(_: Pin<&mut Self>) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
+183 |         fn drop(_: Pin<&mut Self>) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
     |                 ^^^^^^^^^^^^^^^^^
 
 error: method `drop` must take an argument `self: Pin<&mut Self>`
-   --> tests/ui/pinned_drop/invalid.rs:189:17
+   --> tests/ui/pinned_drop/invalid.rs:191:17
     |
-189 |         fn drop(self: Pin<&Self>) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
+191 |         fn drop(self: Pin<&Self>) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
     |                 ^^^^^^^^^^^^^^^^
 
 error: method `drop` must take an argument `self: Pin<&mut Self>`
-   --> tests/ui/pinned_drop/invalid.rs:197:17
+   --> tests/ui/pinned_drop/invalid.rs:199:17
     |
-197 |         fn drop(self: Pin<&mut ()>) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
+199 |         fn drop(self: Pin<&mut ()>) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
     |                 ^^^^^^^^^^^^^^^^^^
 
 error: method `pinned_drop` is not a member of trait `PinnedDrop
-   --> tests/ui/pinned_drop/invalid.rs:205:12
+   --> tests/ui/pinned_drop/invalid.rs:207:12
     |
-205 |         fn pinned_drop(self: Pin<&mut Self>) {} //~ ERROR method `pinned_drop` is not a member of trait `PinnedDrop
+207 |         fn pinned_drop(self: Pin<&mut Self>) {} //~ ERROR method `pinned_drop` is not a member of trait `PinnedDrop
     |            ^^^^^^^^^^^
 
 error: implementing the trait `PinnedDrop` on this type is unsupported
-   --> tests/ui/pinned_drop/invalid.rs:213:25
+   --> tests/ui/pinned_drop/invalid.rs:215:25
     |
-213 |     impl PinnedDrop for () {
+215 |     impl PinnedDrop for () {
     |                         ^^
 
 error: implementing the trait `PinnedDrop` on this type is unsupported
-   --> tests/ui/pinned_drop/invalid.rs:219:25
+   --> tests/ui/pinned_drop/invalid.rs:221:25
     |
-219 |     impl PinnedDrop for &mut A {
+221 |     impl PinnedDrop for &mut A {
     |                         ^^^^^^
 
 error: implementing the trait `PinnedDrop` on this type is unsupported
-   --> tests/ui/pinned_drop/invalid.rs:225:25
+   --> tests/ui/pinned_drop/invalid.rs:227:25
     |
-225 |     impl PinnedDrop for [A] {
+227 |     impl PinnedDrop for [A] {
     |                         ^^^
diff --git a/crates/pin-project/tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs b/crates/pin-project/tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs
index 391f290..ac8872c 100644
--- a/crates/pin-project/tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs
+++ b/crates/pin-project/tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use pin_project::{pin_project, pinned_drop};
diff --git a/crates/pin-project/tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr b/crates/pin-project/tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr
index a07ba99..81b5d7a 100644
--- a/crates/pin-project/tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr
+++ b/crates/pin-project/tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr
@@ -1,8 +1,8 @@
 error[E0119]: conflicting implementations of trait `PinnedDrop` for type `S`
-  --> tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs:12:1
+  --> tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs:14:1
    |
-5  | #[pin_project]
+7  | #[pin_project]
    | -------------- first implementation here
 ...
-12 | impl PinnedDrop for S {
+14 | impl PinnedDrop for S {
    | ^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `S`
diff --git a/crates/pin-project/tests/ui/pinned_drop/self.rs b/crates/pin-project/tests/ui/pinned_drop/self.rs
index ff63402..ae74d90 100644
--- a/crates/pin-project/tests/ui/pinned_drop/self.rs
+++ b/crates/pin-project/tests/ui/pinned_drop/self.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 pub mod self_in_macro_def {
     use std::pin::Pin;
 
diff --git a/crates/pin-project/tests/ui/pinned_drop/self.stderr b/crates/pin-project/tests/ui/pinned_drop/self.stderr
index ad506a5..a604b50 100644
--- a/crates/pin-project/tests/ui/pinned_drop/self.stderr
+++ b/crates/pin-project/tests/ui/pinned_drop/self.stderr
@@ -1,42 +1,42 @@
 error: `self` parameter is only allowed in associated functions
-  --> tests/ui/pinned_drop/self.rs:18:26
+  --> tests/ui/pinned_drop/self.rs:20:26
    |
-18 |                     fn f(self: ()) {} //~ ERROR `self` parameter is only allowed in associated functions
+20 |                     fn f(self: ()) {} //~ ERROR `self` parameter is only allowed in associated functions
    |                          ^^^^ not semantically valid as function parameter
 ...
-21 |             t!();
+23 |             t!();
    |             ---- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `t` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0434]: can't capture dynamic environment in a fn item
-  --> tests/ui/pinned_drop/self.rs:16:29
+  --> tests/ui/pinned_drop/self.rs:18:29
    |
-16 |                     let _ = self; //~ ERROR E0434
+18 |                     let _ = self; //~ ERROR E0434
    |                             ^^^^
 ...
-21 |             t!();
+23 |             t!();
    |             ---- in this macro invocation
    |
    = help: use the `|| { ... }` closure form instead
    = note: this error originates in the macro `t` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0423]: expected value, found struct `S`
-  --> tests/ui/pinned_drop/self.rs:40:27
+  --> tests/ui/pinned_drop/self.rs:42:27
    |
-32 | /     pub struct S {
-33 | |         f: (),
-34 | |     }
+34 | /     pub struct S {
+35 | |         f: (),
+36 | |     }
    | |_____- `S` defined here
 ...
-40 |               let _: Self = Self; //~ ERROR E0423
+42 |               let _: Self = Self; //~ ERROR E0423
    |                             ^^^^ help: use struct literal syntax instead: `S { f: val }`
 
 error[E0308]: mismatched types
-  --> tests/ui/pinned_drop/self.rs:39:25
+  --> tests/ui/pinned_drop/self.rs:41:25
    |
-39 |             let _: () = self; //~ ERROR E0308
+41 |             let _: () = self; //~ ERROR E0308
    |                    --   ^^^^ expected `()`, found `Pin<&mut S>`
    |                    |
    |                    expected due to this
@@ -45,9 +45,9 @@
                  found struct `Pin<&mut self_span::S>`
 
 error[E0308]: mismatched types
-  --> tests/ui/pinned_drop/self.rs:52:25
+  --> tests/ui/pinned_drop/self.rs:54:25
    |
-52 |             let _: () = self; //~ ERROR E0308
+54 |             let _: () = self; //~ ERROR E0308
    |                    --   ^^^^ expected `()`, found `Pin<&mut E>`
    |                    |
    |                    expected due to this
@@ -56,7 +56,12 @@
                  found struct `Pin<&mut E>`
 
 error[E0533]: expected value, found struct variant `E::V`
-  --> tests/ui/pinned_drop/self.rs:53:27
+  --> tests/ui/pinned_drop/self.rs:55:27
    |
-53 |             let _: Self = Self::V; //~ ERROR E0533
+55 |             let _: Self = Self::V; //~ ERROR E0533
    |                           ^^^^^^^ not a value
+   |
+help: you might have meant to create a new value of the struct
+   |
+55 |             let _: Self = Self::V { f: /* value */ }; //~ ERROR E0533
+   |                                   ++++++++++++++++++
diff --git a/crates/pin-project/tests/ui/pinned_drop/unsafe-call.rs b/crates/pin-project/tests/ui/pinned_drop/unsafe-call.rs
index 3ee2b56..0007202 100644
--- a/crates/pin-project/tests/ui/pinned_drop/unsafe-call.rs
+++ b/crates/pin-project/tests/ui/pinned_drop/unsafe-call.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use std::pin::Pin;
 
 use pin_project::{pin_project, pinned_drop};
diff --git a/crates/pin-project/tests/ui/pinned_drop/unsafe-call.stderr b/crates/pin-project/tests/ui/pinned_drop/unsafe-call.stderr
index 911a58e..f0aa44e 100644
--- a/crates/pin-project/tests/ui/pinned_drop/unsafe-call.stderr
+++ b/crates/pin-project/tests/ui/pinned_drop/unsafe-call.stderr
@@ -1,10 +1,10 @@
-error[E0133]: call to unsafe function is unsafe and requires unsafe function or block
-  --> tests/ui/pinned_drop/unsafe-call.rs:14:9
+error[E0133]: call to unsafe function `Pin::<&'a mut T>::get_unchecked_mut` is unsafe and requires unsafe function or block
+  --> tests/ui/pinned_drop/unsafe-call.rs:16:9
    |
-11 | #[pinned_drop]
+13 | #[pinned_drop]
    | -------------- items do not inherit unsafety from separate enclosing items
 ...
-14 |         self.project().f.get_unchecked_mut(); //~ ERROR call to unsafe function is unsafe and requires unsafe function or block [E0133]
+16 |         self.project().f.get_unchecked_mut(); //~ ERROR call to unsafe function is unsafe and requires unsafe function or block [E0133]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
diff --git a/crates/pin-project/tests/ui/unsafe_unpin/conflict-unpin.rs b/crates/pin-project/tests/ui/unsafe_unpin/conflict-unpin.rs
index ac9d1f8..a3c9008 100644
--- a/crates/pin-project/tests/ui/unsafe_unpin/conflict-unpin.rs
+++ b/crates/pin-project/tests/ui/unsafe_unpin/conflict-unpin.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 use pin_project::pin_project;
 
 #[pin_project(UnsafeUnpin)] //~ ERROR E0119
diff --git a/crates/pin-project/tests/ui/unsafe_unpin/conflict-unpin.stderr b/crates/pin-project/tests/ui/unsafe_unpin/conflict-unpin.stderr
index cdf0d50..6838c5d 100644
--- a/crates/pin-project/tests/ui/unsafe_unpin/conflict-unpin.stderr
+++ b/crates/pin-project/tests/ui/unsafe_unpin/conflict-unpin.stderr
@@ -1,32 +1,26 @@
 error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<_, _>`
-  --> tests/ui/unsafe_unpin/conflict-unpin.rs:3:15
+  --> tests/ui/unsafe_unpin/conflict-unpin.rs:5:15
    |
-3  | #[pin_project(UnsafeUnpin)] //~ ERROR E0119
+5  | #[pin_project(UnsafeUnpin)] //~ ERROR E0119
    |               ^^^^^^^^^^^ conflicting implementation for `Foo<_, _>`
 ...
-10 | impl<T, U> Unpin for Foo<T, U> where T: Unpin {}
-   | ------------------------------ first implementation here
-   |
-   = note: upstream crates may add a new impl of trait `_::_pin_project::UnsafeUnpin` for type `_::_pin_project::__private::Wrapper<'_, Foo<_, _>>` in future versions
+12 | impl<T, U> Unpin for Foo<T, U> where T: Unpin {}
+   | --------------------------------------------- first implementation here
 
 error[E0119]: conflicting implementations of trait `Unpin` for type `Bar<_, _>`
-  --> tests/ui/unsafe_unpin/conflict-unpin.rs:12:15
+  --> tests/ui/unsafe_unpin/conflict-unpin.rs:14:15
    |
-12 | #[pin_project(UnsafeUnpin)] //~ ERROR E0119
+14 | #[pin_project(UnsafeUnpin)] //~ ERROR E0119
    |               ^^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
 ...
-19 | impl<T, U> Unpin for Bar<T, U> {}
+21 | impl<T, U> Unpin for Bar<T, U> {}
    | ------------------------------ first implementation here
-   |
-   = note: upstream crates may add a new impl of trait `_::_pin_project::UnsafeUnpin` for type `_::_pin_project::__private::Wrapper<'_, Bar<_, _>>` in future versions
 
 error[E0119]: conflicting implementations of trait `Unpin` for type `Baz<_, _>`
-  --> tests/ui/unsafe_unpin/conflict-unpin.rs:21:15
+  --> tests/ui/unsafe_unpin/conflict-unpin.rs:23:15
    |
-21 | #[pin_project(UnsafeUnpin)] //~ ERROR E0119
+23 | #[pin_project(UnsafeUnpin)] //~ ERROR E0119
    |               ^^^^^^^^^^^ conflicting implementation for `Baz<_, _>`
 ...
-28 | impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {}
+30 | impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {}
    | -------------------------------------------- first implementation here
-   |
-   = note: upstream crates may add a new impl of trait `_::_pin_project::UnsafeUnpin` for type `_::_pin_project::__private::Wrapper<'_, Baz<_, _>>` in future versions
diff --git a/crates/pin-project/tests/ui/unsafe_unpin/negative_impls_stable.rs b/crates/pin-project/tests/ui/unsafe_unpin/negative_impls_stable.rs
new file mode 100644
index 0000000..88faacc
--- /dev/null
+++ b/crates/pin-project/tests/ui/unsafe_unpin/negative_impls_stable.rs
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+// https://github.com/taiki-e/pin-project/issues/340#issuecomment-2428002670
+
+#[pin_project::pin_project(UnsafeUnpin)]
+struct Foo<Pinned, Unpinned> {
+    #[pin]
+    pinned: Pinned,
+    unpinned: Unpinned,
+}
+
+unsafe impl<Pinned: Unpin, Unpinned> pin_project::UnsafeUnpin for Foo<Pinned, Unpinned> {}
+
+struct MyPhantomPinned(::core::marker::PhantomPinned);
+impl Unpin for MyPhantomPinned where for<'cursed> str: Sized {}
+impl Unpin for Foo<MyPhantomPinned, ()> {}
+
+fn is_unpin<T: Unpin>() {}
+
+fn main() {
+    is_unpin::<Foo<MyPhantomPinned, ()>>()
+}
diff --git a/crates/pin-project/tests/ui/unsafe_unpin/negative_impls_stable.stderr b/crates/pin-project/tests/ui/unsafe_unpin/negative_impls_stable.stderr
new file mode 100644
index 0000000..ac81ad6
--- /dev/null
+++ b/crates/pin-project/tests/ui/unsafe_unpin/negative_impls_stable.stderr
@@ -0,0 +1,8 @@
+error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<MyPhantomPinned, ()>`
+  --> tests/ui/unsafe_unpin/negative_impls_stable.rs:5:28
+   |
+5  | #[pin_project::pin_project(UnsafeUnpin)]
+   |                            ^^^^^^^^^^^ conflicting implementation for `Foo<MyPhantomPinned, ()>`
+...
+16 | impl Unpin for Foo<MyPhantomPinned, ()> {}
+   | --------------------------------------- first implementation here
diff --git a/crates/pin-project/tests/ui/unstable-features/marker_trait_attr-feature-gate.rs b/crates/pin-project/tests/ui/unstable-features/marker_trait_attr-feature-gate.rs
index 542250b..ca3422d 100644
--- a/crates/pin-project/tests/ui/unstable-features/marker_trait_attr-feature-gate.rs
+++ b/crates/pin-project/tests/ui/unstable-features/marker_trait_attr-feature-gate.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Note: If you change this test, change 'marker_trait_attr.rs' at the same time.
 
 use std::marker::PhantomPinned;
diff --git a/crates/pin-project/tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr b/crates/pin-project/tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr
index fcb9185..b9873ca 100644
--- a/crates/pin-project/tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr
+++ b/crates/pin-project/tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr
@@ -1,10 +1,10 @@
 error[E0119]: conflicting implementations of trait `Unpin` for type `Struct<_>`
-  --> tests/ui/unstable-features/marker_trait_attr-feature-gate.rs:7:1
+  --> tests/ui/unstable-features/marker_trait_attr-feature-gate.rs:9:1
    |
-7  | #[pin_project] //~ ERROR E0119
+9  | #[pin_project] //~ ERROR E0119
    | ^^^^^^^^^^^^^^ conflicting implementation for `Struct<_>`
 ...
-14 | impl<T> Unpin for Struct<T> {}
+16 | impl<T> Unpin for Struct<T> {}
    | --------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/unstable-features/marker_trait_attr.rs b/crates/pin-project/tests/ui/unstable-features/marker_trait_attr.rs
index 9c8e664..ab00a4e 100644
--- a/crates/pin-project/tests/ui/unstable-features/marker_trait_attr.rs
+++ b/crates/pin-project/tests/ui/unstable-features/marker_trait_attr.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Note: If you change this test, change 'marker_trait_attr-feature-gate.rs' at the same time.
 
 // marker_trait_attr
diff --git a/crates/pin-project/tests/ui/unstable-features/marker_trait_attr.stderr b/crates/pin-project/tests/ui/unstable-features/marker_trait_attr.stderr
index 85949d5..e0ad021 100644
--- a/crates/pin-project/tests/ui/unstable-features/marker_trait_attr.stderr
+++ b/crates/pin-project/tests/ui/unstable-features/marker_trait_attr.stderr
@@ -1,10 +1,10 @@
 error[E0119]: conflicting implementations of trait `Unpin` for type `Struct<_>`
-  --> tests/ui/unstable-features/marker_trait_attr.rs:13:1
+  --> tests/ui/unstable-features/marker_trait_attr.rs:15:1
    |
-13 | #[pin_project] //~ ERROR E0119
+15 | #[pin_project] //~ ERROR E0119
    | ^^^^^^^^^^^^^^ conflicting implementation for `Struct<_>`
 ...
-20 | impl<T> Unpin for Struct<T> {}
+22 | impl<T> Unpin for Struct<T> {}
    | --------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/unstable-features/negative_impls.rs b/crates/pin-project/tests/ui/unstable-features/negative_impls.rs
index 9605642..db29d6c 100644
--- a/crates/pin-project/tests/ui/unstable-features/negative_impls.rs
+++ b/crates/pin-project/tests/ui/unstable-features/negative_impls.rs
@@ -1,5 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 #![feature(negative_impls)]
-#![deny(suspicious_auto_trait_impls)]
 
 // https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/design.20meeting.3A.20backlog.20bonanza/near/269471299
 // https://github.com/taiki-e/pin-project/issues/340
@@ -8,7 +9,6 @@
 struct Foo<Pinned, Unpinned> {
     #[pin]
     pinned: Pinned,
-
     unpinned: Unpinned,
 }
 
diff --git a/crates/pin-project/tests/ui/unstable-features/negative_impls.stderr b/crates/pin-project/tests/ui/unstable-features/negative_impls.stderr
index 145716d..57f2d30 100644
--- a/crates/pin-project/tests/ui/unstable-features/negative_impls.stderr
+++ b/crates/pin-project/tests/ui/unstable-features/negative_impls.stderr
@@ -1,19 +1,10 @@
-error: cross-crate traits with a default impl, like `Unpin`, should not be specialized
-  --> tests/ui/unstable-features/negative_impls.rs:17:1
-   |
-17 | impl Unpin for Foo<MyPhantomPinned, ()> {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = warning: this will change its meaning in a future release!
-   = note: for more information, see issue #93367 <https://github.com/rust-lang/rust/issues/93367>
-   = note: `MyPhantomPinned` is not a generic parameter
-note: try using the same sequence of generic parameters as the struct definition
+error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<MyPhantomPinned, ()>`
   --> tests/ui/unstable-features/negative_impls.rs:8:1
    |
-8  | struct Foo<Pinned, Unpinned> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-note: the lint level is defined here
-  --> tests/ui/unstable-features/negative_impls.rs:2:9
+8  | #[pin_project::pin_project]
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Foo<MyPhantomPinned, ()>`
+...
+17 | impl Unpin for Foo<MyPhantomPinned, ()> {}
+   | --------------------------------------- first implementation here
    |
-2  | #![deny(suspicious_auto_trait_impls)]
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs b/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs
index 012c870..8d479fa 100644
--- a/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs
+++ b/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Note: If you change this test, change 'overlapping_marker_traits.rs' at the same time.
 
 use std::marker::PhantomPinned;
diff --git a/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr b/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr
index 0783be0..da273fc 100644
--- a/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr
+++ b/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr
@@ -1,10 +1,10 @@
 error[E0119]: conflicting implementations of trait `Unpin` for type `Struct<_>`
-  --> tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs:7:1
+  --> tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs:9:1
    |
-7  | #[pin_project] //~ ERROR E0119
+9  | #[pin_project] //~ ERROR E0119
    | ^^^^^^^^^^^^^^ conflicting implementation for `Struct<_>`
 ...
-14 | impl<T> Unpin for Struct<T> {}
+16 | impl<T> Unpin for Struct<T> {}
    | --------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits.rs b/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits.rs
index 8dc27c1..2677e0a 100644
--- a/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits.rs
+++ b/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Note: If you change this test, change 'overlapping_marker_traits-feature-gate.rs' at the same time.
 
 // This feature could break the guarantee for Unpin provided by pin-project,
diff --git a/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits.stderr b/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits.stderr
index 1c8e7e7..279484f 100644
--- a/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits.stderr
+++ b/crates/pin-project/tests/ui/unstable-features/overlapping_marker_traits.stderr
@@ -1,18 +1,18 @@
 error[E0557]: feature has been removed
-  --> tests/ui/unstable-features/overlapping_marker_traits.rs:11:12
+  --> tests/ui/unstable-features/overlapping_marker_traits.rs:13:12
    |
-11 | #![feature(overlapping_marker_traits)]
+13 | #![feature(overlapping_marker_traits)]
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ feature has been removed
    |
    = note: removed in favor of `#![feature(marker_trait_attr)]`
 
 error[E0119]: conflicting implementations of trait `Unpin` for type `Struct<_>`
-  --> tests/ui/unstable-features/overlapping_marker_traits.rs:17:1
+  --> tests/ui/unstable-features/overlapping_marker_traits.rs:19:1
    |
-17 | #[pin_project]
+19 | #[pin_project]
    | ^^^^^^^^^^^^^^ conflicting implementation for `Struct<_>`
 ...
-24 | impl<T> Unpin for Struct<T> {}
+26 | impl<T> Unpin for Struct<T> {}
    | --------------------------- first implementation here
    |
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project/tests/ui/unstable-features/trivial_bounds-feature-gate.rs b/crates/pin-project/tests/ui/unstable-features/trivial_bounds-feature-gate.rs
index f8467b0..e13f8df 100644
--- a/crates/pin-project/tests/ui/unstable-features/trivial_bounds-feature-gate.rs
+++ b/crates/pin-project/tests/ui/unstable-features/trivial_bounds-feature-gate.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Note: If you change this test, change 'trivial_bounds.rs' at the same time.
 
 mod phantom_pinned {
diff --git a/crates/pin-project/tests/ui/unstable-features/trivial_bounds-feature-gate.stderr b/crates/pin-project/tests/ui/unstable-features/trivial_bounds-feature-gate.stderr
index ccf1ae8..69ddca6 100644
--- a/crates/pin-project/tests/ui/unstable-features/trivial_bounds-feature-gate.stderr
+++ b/crates/pin-project/tests/ui/unstable-features/trivial_bounds-feature-gate.stderr
@@ -1,63 +1,75 @@
 error[E0277]: `PhantomPinned` cannot be unpinned
- --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:8:28
-  |
-8 |     impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR E0277
-  |                            ^^^^^^^^^^^^^^^^^^^^ the trait `Unpin` is not implemented for `PhantomPinned`
-  |
-  = note: consider using the `pin!` macro
-          consider using `Box::pin` if you need to access the pinned value outside of the current scope
-  = help: see issue #48214
-  = help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
+  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:10:28
+   |
+10 |     impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR E0277
+   |                            ^^^^^^^^^^^^^^^^^^^^ the trait `Unpin` is not implemented for `PhantomPinned`
+   |
+   = note: consider using the `pin!` macro
+           consider using `Box::pin` if you need to access the pinned value outside of the current scope
+   = help: see issue #48214
+help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
+   |
+5  + #![feature(trivial_bounds)]
+   |
 
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:16:28
+  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:18:28
    |
-16 |     impl Unpin for B where Wrapper<PhantomPinned>: Unpin {} //~ ERROR E0277
+18 |     impl Unpin for B where Wrapper<PhantomPinned>: Unpin {} //~ ERROR E0277
    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Unpin` is not implemented for `PhantomPinned`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required for `phantom_pinned::Wrapper<PhantomPinned>` to implement `Unpin`
-  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:12:13
+  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:14:13
    |
-12 |     impl<T> Unpin for Wrapper<T> where T: Unpin {}
+14 |     impl<T> Unpin for Wrapper<T> where T: Unpin {}
    |             ^^^^^     ^^^^^^^^^^          ----- unsatisfied trait bound introduced here
    = help: see issue #48214
-   = help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
+help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
+   |
+5  + #![feature(trivial_bounds)]
+   |
 
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:34:28
+  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:36:28
    |
-34 |     impl Unpin for A where Inner: Unpin {} //~ ERROR E0277
+36 |     impl Unpin for A where Inner: Unpin {} //~ ERROR E0277
    |                            ^^^^^^^^^^^^ within `Inner`, the trait `Unpin` is not implemented for `PhantomPinned`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required because it appears within the type `Inner`
-  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:30:12
+  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:32:12
    |
-30 |     struct Inner(PhantomPinned);
+32 |     struct Inner(PhantomPinned);
    |            ^^^^^
    = help: see issue #48214
-   = help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
+help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
+   |
+5  + #![feature(trivial_bounds)]
+   |
 
 error[E0277]: `PhantomPinned` cannot be unpinned
-  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:42:28
+  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:44:28
    |
-42 |     impl Unpin for B where Wrapper<Inner>: Unpin {} //~ ERROR E0277
+44 |     impl Unpin for B where Wrapper<Inner>: Unpin {} //~ ERROR E0277
    |                            ^^^^^^^^^^^^^^^^^^^^^ within `Inner`, the trait `Unpin` is not implemented for `PhantomPinned`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
 note: required because it appears within the type `Inner`
-  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:30:12
+  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:32:12
    |
-30 |     struct Inner(PhantomPinned);
+32 |     struct Inner(PhantomPinned);
    |            ^^^^^
 note: required for `inner::Wrapper<Inner>` to implement `Unpin`
-  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:38:13
+  --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:40:13
    |
-38 |     impl<T> Unpin for Wrapper<T> where T: Unpin {}
+40 |     impl<T> Unpin for Wrapper<T> where T: Unpin {}
    |             ^^^^^     ^^^^^^^^^^          ----- unsatisfied trait bound introduced here
    = help: see issue #48214
-   = help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
+help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
+   |
+5  + #![feature(trivial_bounds)]
+   |
diff --git a/crates/pin-project/tests/ui/unstable-features/trivial_bounds.rs b/crates/pin-project/tests/ui/unstable-features/trivial_bounds.rs
index d98ef60..b4d377f 100644
--- a/crates/pin-project/tests/ui/unstable-features/trivial_bounds.rs
+++ b/crates/pin-project/tests/ui/unstable-features/trivial_bounds.rs
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
 // Note: If you change this test, change 'trivial_bounds-feature-gate.rs' at the same time.
 
 // trivial_bounds
diff --git a/crates/pin-project/tests/ui/unstable-features/trivial_bounds.stderr b/crates/pin-project/tests/ui/unstable-features/trivial_bounds.stderr
index ab07a10..d5b0720 100644
--- a/crates/pin-project/tests/ui/unstable-features/trivial_bounds.stderr
+++ b/crates/pin-project/tests/ui/unstable-features/trivial_bounds.stderr
@@ -1,23 +1,23 @@
 error: trait bound PhantomPinned: Unpin does not depend on any type or lifetime parameters
-  --> tests/ui/unstable-features/trivial_bounds.rs:16:43
+  --> tests/ui/unstable-features/trivial_bounds.rs:18:43
    |
-16 |     impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
+18 |     impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
    |                                           ^^^^^
    |
 note: the lint level is defined here
-  --> tests/ui/unstable-features/trivial_bounds.rs:6:9
+  --> tests/ui/unstable-features/trivial_bounds.rs:8:9
    |
-6  | #![deny(trivial_bounds)]
+8  | #![deny(trivial_bounds)]
    |         ^^^^^^^^^^^^^^
 
 error: trait bound Inner: Unpin does not depend on any type or lifetime parameters
-  --> tests/ui/unstable-features/trivial_bounds.rs:20:35
+  --> tests/ui/unstable-features/trivial_bounds.rs:22:35
    |
-20 |     impl Unpin for B where Inner: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
+22 |     impl Unpin for B where Inner: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
    |                                   ^^^^^
 
 error: trait bound Wrapper<Inner>: Unpin does not depend on any type or lifetime parameters
-  --> tests/ui/unstable-features/trivial_bounds.rs:28:44
+  --> tests/ui/unstable-features/trivial_bounds.rs:30:44
    |
-28 |     impl Unpin for C where Wrapper<Inner>: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
+30 |     impl Unpin for C where Wrapper<Inner>: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
    |                                            ^^^^^
diff --git a/crates/pin-project/tests/unsafe_unpin.rs b/crates/pin-project/tests/unsafe_unpin.rs
index 72f40f9..329acf3 100644
--- a/crates/pin-project/tests/unsafe_unpin.rs
+++ b/crates/pin-project/tests/unsafe_unpin.rs
@@ -1,5 +1,6 @@
-#![warn(rust_2018_idioms, single_use_lifetimes)]
-#![allow(dead_code)]
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+#![allow(dead_code, clippy::undocumented_unsafe_blocks)]
 
 #[macro_use]
 mod auxiliary;
@@ -9,7 +10,7 @@
 use pin_project::{pin_project, UnsafeUnpin};
 
 #[pin_project(UnsafeUnpin)]
-pub struct Blah<T, U> {
+struct Blah<T, U> {
     f1: U,
     #[pin]
     f2: T,
@@ -41,7 +42,7 @@
 #[test]
 fn trivial_bounds() {
     #[pin_project(UnsafeUnpin)]
-    pub struct NotImplementUnsafeUnpin {
+    struct NotImplementUnsafeUnpin {
         #[pin]
         f: PhantomPinned,
     }
diff --git a/crates/plotters/.android-checksum.json b/crates/plotters/.android-checksum.json
index fc7579e..0473102 100644
--- a/crates/plotters/.android-checksum.json
+++ b/crates/plotters/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"3968dbca2d6b420f5ac4ad3030b43b3c4c82cbb14385c44bb834289d819fefb3","Android.bp":"19fdb3d434dd247804071b0bad2cc2df749abc803a22ff3f13b4afb16d93e9f3","Cargo.lock":"ac2d23710ae5ed7370f99bed6bd4a6e7932eed4d38e51ede704870a7d0190c0c","Cargo.toml":"6323ed91e19a1f9c57bdfd4f9d85124aae512cc370dc9f35d0314f9d8fd2125a","LICENSE":"1c9a706701fabb4345eddbdf9e1b9b60668d05f9df8e0ec9bf4b6e08a15c4e33","METADATA":"86d6bdcb6ca97db95a331592db8f125ad127b98a71d810a9f06cd97702e651e8","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"2d4a3d7185716d3dbbae2317498f3cd97b4a5bf2d3a07fa284041c2273315492","TEST_MAPPING":"5df47f5b5b7533d10aa6a3ecb9189615e716a8060f002faa2bf4c893c12f33f9","benches/benches/data.rs":"0bfcf2e2c7c376a0fa986abc2e71b9c78f8f8fd03bbab9cc0a9c15936b7a3083","benches/benches/mod.rs":"a57d9a364956c0ee9a52b2e99bb0a35dc78bd63f8657d7e486b47ec5a0e9cec6","benches/main.rs":"18a1afab41bdadf925679f34a11b0858ea2dbad1af2ad38dbfda238272adb8af","cargo_embargo.json":"99524d6d57989d4d543b34005291e66d1d1d4f57c059fa9c9aa4ac1b3f003ece","clippy.toml":"6ca80d8bb9a1d6bac1bb4221f9533b5285ba849e0e90d11c866ef556899d1b69","examples/3d-plot.rs":"daf39f69c225c30bccea7bb2f66f2ff4512d8996b537e8dfe6911cdbc2a5d369","examples/3d-plot2.rs":"a4bc84ac42bbc1a3485ee4b1a1bbfb69c59c68cea1999a0713243ea18accf32c","examples/README.md":"f11d8f334296d987ab480fd29ef72a63bbd2952f73b100d66bbf90dc5fcfcc1c","examples/animation.rs":"bf16dc699d46ebf98f6038cf3f3e0064bbb7864279b6eb5af84546f7ec58042f","examples/area-chart.rs":"d38e494f55a1793d256b3d1c9dc044ba5992f80c9ddd2ea563d03a4edda1deca","examples/blit-bitmap.rs":"c8d1345072e95441fd6fe0714394d492d59cf687667cab9d83a98d024add00a3","examples/boxplot.rs":"56d064372b60abfdf88cde0c38e848116f2aca98c37a09493b25e740e21dc935","examples/chart.rs":"d80c49abd7fa7e36b67ebe2c6b1c7987013e0ac43671ae3f27beb64552cd6a45","examples/colormaps.rs":"818d7e93c30fa790b46b8b1c87f0b2aec9e922ec9468694d7523b3f601a5e7a7","examples/console.rs":"2f55d02658d19fff1a484b9bcc50ca7a317205cb7c6caacdce1a347ec7e088b3","examples/customized_coord.rs":"d4f52703664ee9ee6b56fbc2d8d7f7be114359e2621c19368ed212b4b5b6e046","examples/errorbar.rs":"5d39eae0cce741a16ae1cfe3e3afe5af43c6df5ce6638ecd72cd7a08ba254dfc","examples/full_palette.rs":"b12317e1763e2ace5abc922885c66f2c8555f2233db2b29bc4ea5898d7f4a6a8","examples/histogram.rs":"2233f5026d09b718f629f32c8aebd9094d1eb19d99031cc87d069eddb1d6ae4a","examples/mandelbrot.rs":"1a64de71635da3be40cc4e0b7e7a65a424862604d4b290d10edc51a4521d64ed","examples/matshow.rs":"7f35571fc2a4135adf9629f0b97a33579f5566413ecc85f1197cd3af0e42dba6","examples/nested_coord.rs":"87a003101351d41015b1abd8a1e0b9e272a075904beedb3cfa7d2f3001f2aabd","examples/normal-dist.rs":"a9e9941ac7f6e66f3c9cfb462db12f706c8ebf0405171ea62d01f69db3c1bf91","examples/normal-dist2.rs":"157624b544639c99800f82e6f2e73272b61f3ac4f198e34bde2fefefa7c7b93f","examples/pie.rs":"c16e4af60c14da77ffb749a102357048a906f8c86e6757d9ddd6bd1a526c717b","examples/relative_size.rs":"f442155fe4aa80ee935b05e45460f2a94d93117111e268fcd363749afaff5033","examples/sierpinski.rs":"a315482b05e356840f3e2af91c0d800bf70c3b75d25b412f4afab0cec302df94","examples/slc-temp.rs":"f1956a5f92dc37b7e4ce8fcebcd87dc7b0a4c7512e02e7e650f117510db9cfbf","examples/snowflake.rs":"3ead313fa8c2e87be379504ce5a30eaad15a07359aa42b884178be5551f34984","examples/stock.rs":"8f48d6f813dd789b8b6ca4b5f914bc34b01ec4a125e0cce5b33ffdc59bd763dd","examples/tick_control.rs":"e7c3e144983bbf238d38914295793ae8046c7c91a8d26b6b39a2aeed50adad26","examples/two-scales.rs":"7b068e51162dce3068c8baeeb656860b1e5ecbb385483170b8ed39d9f5a2a088","src/chart/axes3d.rs":"304dc27bbc08005caa204179fb4e51879b4ec70e3c3eca94610f330f011f3a3d","src/chart/builder.rs":"3c9cb34cdcc5da90c1df7557139573dfdd295b2e966d55e76afdf3c7fcd9ef47","src/chart/context.rs":"67c5cb636889b5ab782d19a247c374c2e755558ee5fc1b20715d483b90bf47d2","src/chart/context/cartesian2d/draw_impl.rs":"e3446e46645e40606d1436a0810869bbf30ba4ebe61a05c1fb8efbd93c0668d7","src/chart/context/cartesian2d/mod.rs":"33cc666e5022f194248405612d7e47b1a3d2a637a7d584483b3a1d85761fc3f4","src/chart/context/cartesian3d/draw_impl.rs":"47a2b680b9651bc132d1d8c301a23a372e03535ea2a0b153309132e7b19c45b8","src/chart/context/cartesian3d/mod.rs":"ecf117b25464d478940c8d00a324ff0d32ff72cad1844b0453678d14a5d28f03","src/chart/dual_coord.rs":"a647eb4eb75995cfb2e5670dd054febed4bf06822ac78853c4c771ba7800b629","src/chart/mesh.rs":"a0de75a213a780f3f115696ded369e6f55e2aef955dd5620eae59b25877b3f77","src/chart/mod.rs":"b29cf6d1e950e1c54e93fdc06fa87b06eef04c4932859a0d9bfb7352002300e3","src/chart/series.rs":"c00abaab6fea1cfb0b14f09ff28dad3d300cb418b78bfa4159a222f2cc4ad2e2","src/chart/state.rs":"a3e55a9c2823e8966ce704f0e53c49e83d2c9c3a23beab7ce8b77fe82e4ddef8","src/coord/mod.rs":"15d62d7f75f4c5e5fb31a7e14bdb6d12aa2bea82fdf8043e15c6b74edb3205b8","src/coord/ranged1d/combinators/ckps.rs":"12bdf65810297450ddfe7881187a26537dfdddcfa726a0a3bfc6141cfca239eb","src/coord/ranged1d/combinators/group_by.rs":"c3c1ffeef1c258fb7b4535e33f4a800e6d7020e7982ca98592bcdeff026215fe","src/coord/ranged1d/combinators/linspace.rs":"e3100a3e50bb66eaf54f6ed75a2116de1d85af47add3974afc2d103e95b9c561","src/coord/ranged1d/combinators/logarithmic.rs":"cfca31c8973476ab5f49893fe8a5c5a20011fa19bda8d644e73d6f8c5131860e","src/coord/ranged1d/combinators/mod.rs":"d4fcafb601e1ac0a768ff1aa2f0bcc55d271faf6199abca9d9655ac7af52bfe7","src/coord/ranged1d/combinators/nested.rs":"c402a79bad7ba4ed910088fa47b76509ae1253cb15e8acc4e6a3c3e6627e4a47","src/coord/ranged1d/combinators/partial_axis.rs":"aa0e6b157ef7077786dfbfb5b84a036c65b2bd49ed3d10e91bba1009bb52b118","src/coord/ranged1d/discrete.rs":"df77ee7b97ecb15821ecb5c1102d588494f4fd5721149438e97256a6f767d5a7","src/coord/ranged1d/mod.rs":"fec06e4ac77bfd69ce7a0aa2177fd338ff3ff5e3f6590abdf50f5ca0a78101fd","src/coord/ranged1d/types/datetime.rs":"7300268802823579bf6e8d3429fa296932eee3e5a5bf18f7f3964e91e833677d","src/coord/ranged1d/types/mod.rs":"59b3ef1ea97fa3b234aec9e9b551c6b46bf4a2acb6b8100ba54cd6e76b1774a6","src/coord/ranged1d/types/numeric.rs":"7ebba4735bc86c2e010d6a1db8716406f700b608658fe3a3ac3a2adcff8d247b","src/coord/ranged1d/types/slice.rs":"75e0e0d7deab3bf6b1265d12435e28eadbb28c45f9eca0a268e648a536c05331","src/coord/ranged2d/cartesian.rs":"ed03bbb2425ca036a3cabf1759985377e2abfa2fc04584f99cbbb6571d977e4b","src/coord/ranged2d/mod.rs":"2ab4283d93cbb679ae8c30f10bf28a3251dd17b67856800a2369e6b21623feca","src/coord/ranged3d/cartesian3d.rs":"c099dbbeb48f17288831384f28103f0d26fe7e927f1fb9c3c9dd43a22d055e56","src/coord/ranged3d/mod.rs":"f08d10489ef8c70de8886e1c9d4fe15924aaa717addc418efed52721eeb5c775","src/coord/ranged3d/projection.rs":"d33e92113999b96e9b7fbba523eb5c63061cf7c2d7ec3b4227e051179176d6f5","src/coord/translate.rs":"409dd7f599c99f58f4a2b9cc6e7589d88801c23e15ef659fa6dbe1567bb362a0","src/data/data_range.rs":"97558c4fe82ae4f94c57b70f965e9e0ae226752a49506e1916919818a61f8b9f","src/data/float.rs":"05499ba3cea19a22c06be321c7b8800dcc3d78d593a4f7f6717e44ab15663c87","src/data/mod.rs":"fa53ebcfc36060d0766983e57b8852cd4fd79235b615f05e356c56fe9fc19371","src/data/quartiles.rs":"b0df4bf030de3fee79a72766f17ef4cce78ef89d21be804bf05b227b5191b4c5","src/drawing/area.rs":"965493609930acc2e19bbb5cbd64ed2a1eeeb7a15743fa0e998006a7beef9618","src/drawing/backend_impl/mocked.rs":"bcb8f8676b384c2f45196ac1af63282ca04082797c1a023334a94235df5a03d5","src/drawing/backend_impl/mod.rs":"b5f89c759b3e35a40cc9569bebdc7b5f4c5a430bdde10f446ee744b5baf2fa4c","src/drawing/mod.rs":"adc83e0df9c8528aef5edbbd5bcba1b772b93a25883f014a4ebfc0819b643abb","src/element/basic_shapes.rs":"b0e0a2cef889e2de2598ff4a523c5ef7086f88186991db84c66037232d3e808f","src/element/basic_shapes_3d.rs":"04c87e0d16db182cfeb31e54907a2d5db5d50ab0d01facd2233b9476ec6657e1","src/element/boxplot.rs":"4487bbd687ea072d8b6ae9418c9d08fbf66ad20b123d7ffc2a651774c7329ea8","src/element/candlestick.rs":"b37b86cda8e4f17eb8bf5f784fde619d5824c3c4dab170a576796e4ac46e1467","src/element/composable.rs":"6e1e8f36e5581d612e4b38afc55c3467a39494552988e108747e5992df43b1fd","src/element/dynelem.rs":"8811c375b2a27b7ddbb6de90d28b0395868a43a9ea563c929ee5a95d3b873f62","src/element/errorbar.rs":"555dd4c874f9bf7efa35a86261ba3158203fd1cbe3aa91b9c3e846bf42cd9afd","src/element/image.rs":"f4971e6a124e6e38e9666bf6ef09d2a574232f70f5abd997a35038eca906bf91","src/element/mod.rs":"6683135164147a59d17d1fe5139a80669607a33536f2c913f33076478863c9bd","src/element/pie.rs":"ed43b7e36d9086304df779c1323a235c8f0137915e17aedef8824c9a292aa61f","src/element/points.rs":"a1ec58fc38e1db3e2f2ee27e4297011bcca3179653679991f673cecc3d0f4136","src/element/text.rs":"76ba84bca1cccdc9f0becb5c7fcede6b9753d7e4608172013d6b30ba85ddb349","src/evcxr.rs":"fc0f6e2b98aaff339d68d45aa27246cd2636bb86fa74ea05a00aacf9efcae445","src/lib.rs":"3e9f1ea869984b358964fb2e85873bccf1e7244a0b26a36b869576493321bdbd","src/series/area_series.rs":"76233945f72ba07fa771cb9f94622cee3472df20f2e6d20d285713d0e50f8746","src/series/histogram.rs":"35b4d9656d6615fb82cb28637c011ff36f5c9bc33bc65c59cc32d3d853dfe95f","src/series/line_series.rs":"865e995ec706b08d451c5dbd7b6342eddc2f1bed5c38b3f9288ff19dd67a44aa","src/series/mod.rs":"c7148fbc52c8d3cddf61a03a51e35fe72cd441ad7ce98c636d9ec11f685f1dd3","src/series/point_series.rs":"54350ee56bcacccbac0b4904e9dd8cc7986e63ab3eeb16a8d1b6c7c86b1793da","src/series/surface.rs":"689c2b517d11b8c7d0ee3e55079abc1e2d93191be8ed853e2552ac803cf71ffc","src/style/color.rs":"392631ce5e4e6198366996654acb75485f24427643dcf1a5dbdf47ae2c02bcaa","src/style/colors/colormaps.rs":"9952ea976e30af72faa9197c2d98a651ece4634a5cf5b8b8aa268deb90c69289","src/style/colors/full_palette.rs":"69c168169c38007c0e3e088fa9673d3c617329f6c5cf19b47797c1dbcbf4a43e","src/style/colors/mod.rs":"729d10457501ad52544f06243324ee5d35d871a0105289b5d87d972f59ef820a","src/style/font/ab_glyph.rs":"86c25b12c11a52bc5736ebcea225e0b01090a0f191b0eb00a015230bcf9b52a3","src/style/font/font_desc.rs":"0fae261114798290a5a41caec3ad0c79b61e260d408f6110cb3d9e4922fe9cfc","src/style/font/mod.rs":"eab47f53d211dbe119cdc015eb2388205fa86557a2022a0435f9e083ad408461","src/style/font/naive.rs":"1db6dc0ffae787313cc4127827127f87eb263cfd2e51ee0ba9be3bb40f7c587c","src/style/font/ttf.rs":"afddf23b5395a9230da7b2d763598d984e976ad835b43c9df854cbd4c2bb96f5","src/style/font/web.rs":"94bbd5c91718af55233d8645eceb5e9bf47d1b18827968aa8af7eb0215ced938","src/style/mod.rs":"2709223723d5faab42b30d87778293df9ae83d100e978eeadbf633c2b08d5ac3","src/style/palette.rs":"4bdc0bae9c997e5864f2430779629e4f6d497ccd3d1be1fd35ada48ed0a0f35b","src/style/shape.rs":"03e5f4bd522ea4a38c620acae1f83cde0c93c1484314f3ead59e82877e36ce03","src/style/size.rs":"65bd59347bb3ba8eea51dd282c7961df4f466e6f6125a84f70a4a954afd8784c","src/style/text.rs":"b4398d4e3196212d052e718a4a6c861370f0570b27da033f6bc68acba468272d","src/test.rs":"6550b9135f235139deb8c18313370911f8e5332e62a3493cba612d96da65826b"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"03fb3490582b73627b8d0103170bac84ebad46201aac413290bf243a070464fa","Android.bp":"cdfd17eb823f95ebc239f42c2e833bafb84381260bc678ddbe6a4672ad53d03c","Cargo.lock":"fb92cec66d3dd5238e76c869429bda3e48d48ce7012a86b6314c95c886fa7a27","Cargo.toml":"f0d60165afe42478c5fb587f25ce62c1ab686ba6d8caeded9ef8bf846701485e","LICENSE":"1c9a706701fabb4345eddbdf9e1b9b60668d05f9df8e0ec9bf4b6e08a15c4e33","METADATA":"b43ef0d925ab6c42150f499607e5ed23666dbd13eb826b9d33575c7efa5051bf","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"2d4a3d7185716d3dbbae2317498f3cd97b4a5bf2d3a07fa284041c2273315492","TEST_MAPPING":"5df47f5b5b7533d10aa6a3ecb9189615e716a8060f002faa2bf4c893c12f33f9","benches/benches/data.rs":"0bfcf2e2c7c376a0fa986abc2e71b9c78f8f8fd03bbab9cc0a9c15936b7a3083","benches/benches/mod.rs":"a57d9a364956c0ee9a52b2e99bb0a35dc78bd63f8657d7e486b47ec5a0e9cec6","benches/main.rs":"18a1afab41bdadf925679f34a11b0858ea2dbad1af2ad38dbfda238272adb8af","blub.png":"89f98bd774820f66f507a37c7b3f66661bb21d123b85fc62c6196fbe99d1cd62","cargo_embargo.json":"99524d6d57989d4d543b34005291e66d1d1d4f57c059fa9c9aa4ac1b3f003ece","examples/3d-plot.rs":"8bb26602ba97f70cb7ff494e676475d967b906bb41659d8fcb0bb0cb4f24e393","examples/3d-plot2.rs":"8fa97a5ac7b0807e2340ddda48e1e7b7ce1a0a55b9f5101886394d830b7768ea","examples/README.md":"b36db335432f1547dbf722de1d9baaf4a493fba92d1c76c7f0d343ce8fe5874f","examples/animation.rs":"0e73ac7d22742ca36bfbc2d77aac5cdcd5fba729ee6f016081caf58042493a34","examples/area-chart.rs":"801a2d2ef9ee9c430acc07cad7bdf74682801c15167921c21b76a892180cdf5a","examples/blit-bitmap.rs":"4a00ee6544de5ae011505f1ed86583e63b669dd5629a41c6d28de8736824f79a","examples/boxplot.rs":"e9fe602429aa6f5af5e623ae5b90da75b5f08aace95d049f06a19abc78d98a82","examples/chart.rs":"c0499ad0c688ffeb7ac3a65523cce035f7a52fa0fb79933eaa9bc3ccc413c6f6","examples/colormaps.rs":"4937a290940f1d15ef04c3a087953a059840cf152896ac4fc10df120059c3102","examples/console.rs":"a3845a4231faed1eab933a5091e5b3ad481b2eb6ccfeee0b24467a6a574e1a11","examples/customized_coord.rs":"19d587d498214f082be7b43179725976358894863b37a3adf2c02c1060fd4493","examples/errorbar.rs":"90c7b5d9f687f22ce7cd54de5426af3461334e58bad05d2d19671b082aa9940a","examples/full_palette.rs":"e91d93062129421828d3e25da035259619d5076628535b293cac47a2b3a2698c","examples/histogram.rs":"78e6488dd6a9f6f33f8c61e6142b1802d0de1367dd5b493dd1b2e37834f685eb","examples/mandelbrot.rs":"9b122e062bf323d16e6782890951d8425df934d73bb72e863b21d5074024f62a","examples/matshow.rs":"abd82f0ef23ea46b95cd9f7338437767660078a3623b7d5cd473991c5ddd9056","examples/nested_coord.rs":"8ec5b3bbfcd8b6d77890aab3e5d632ef85e133702cb63ffd83d56726aeee38de","examples/normal-dist.rs":"7a5119b005d037364f8f43fdedf3e00630a08325f95cb0be3d4c162c5062c6fe","examples/normal-dist2.rs":"9657d967f191dd136972ebc86eb11e06faf5c9fa54f2c9bd1b56a9b9dc141648","examples/pie.rs":"e18e64470a2a0238acaf9fd28b38abdb2b3c15b16540316c8447960cf44a8872","examples/relative_size.rs":"ec2cf60671767fdfe787575007d4fcda7e895c62efca1a56edc6d914d9549218","examples/sierpinski.rs":"d88682654a6609f87f587025dfb02ccca357b0cf264da6d2960021f4a7583fbe","examples/slc-temp.rs":"836fdf77956af3cef08adaca6cb4d5cd4f1890e402424443206614f7dca15866","examples/snowflake.rs":"9f4d6e60e873675a2b21179bff1e40f97c0e4fc6c7ce84e01ff20c390ed3a97c","examples/stock.rs":"75e19c8a54cbefdea6e4b9366f8458da378110251f4763404665efca4543a6be","examples/tick_control.rs":"7080996accbeb8b4dc926682524c4af42bf48efc23a0e0ecd3c417bfa72ee0e5","examples/two-scales.rs":"f63736d51d56ea86fc445d0ecf7a20bc4932f282d72721b03718345af7c6d7aa","src/chart/axes3d.rs":"c41cbd867cfd206eca2f72de7d1ca7d4d4df33a06e21f120833b8ce8831ec78f","src/chart/builder.rs":"ba14586049a5cce7031a35f7d6fcbc3e1da96a63fe348a6b51e9b5f7881d8746","src/chart/context.rs":"11a1464060429b6980a342f56732532b9e60cd8a48138f5fe88d9a1300ef76bc","src/chart/context/cartesian2d/draw_impl.rs":"e3446e46645e40606d1436a0810869bbf30ba4ebe61a05c1fb8efbd93c0668d7","src/chart/context/cartesian2d/mod.rs":"33cc666e5022f194248405612d7e47b1a3d2a637a7d584483b3a1d85761fc3f4","src/chart/context/cartesian3d/draw_impl.rs":"47a2b680b9651bc132d1d8c301a23a372e03535ea2a0b153309132e7b19c45b8","src/chart/context/cartesian3d/mod.rs":"efc0eaebefab8202f3c402cd6ba30316db964a34af5dc3044fadb7bf323f0eda","src/chart/dual_coord.rs":"73bedb0c87de1a50638df7bb1e269dd889de1022883c7b6611c42817db3b7921","src/chart/mesh.rs":"a0de75a213a780f3f115696ded369e6f55e2aef955dd5620eae59b25877b3f77","src/chart/mod.rs":"b29cf6d1e950e1c54e93fdc06fa87b06eef04c4932859a0d9bfb7352002300e3","src/chart/series.rs":"ea8b7a932464987fc2c84e59152bd1e07d26213db28532a0c05642ea208772a0","src/chart/state.rs":"29e57931a64717dd37a25c6c96a0c1d80c6f224a4fb2f860afe2f85676c65e7a","src/coord/mod.rs":"d87301c080567f5723faf945ef04cf05fc722becaa46e854dc4819e8acd88c5c","src/coord/ranged1d/combinators/ckps.rs":"513a4b78e65a0b5921b29832525fd0fcf5f6912b0cc92aafff5621c402eeee28","src/coord/ranged1d/combinators/group_by.rs":"e1eec99c9231e79c0e7fa5e064b2909f19c3bc7b820189812ba0532a8045c289","src/coord/ranged1d/combinators/linspace.rs":"53defc10b64ac18380003933c61c18013422b055cc3d718f43f1d7be7f0a091c","src/coord/ranged1d/combinators/logarithmic.rs":"e907b4dd0d412f70bbcc3ceb32f4b76cf96954a3d4e4920e4d16b1cd2fafbe0a","src/coord/ranged1d/combinators/mod.rs":"d4fcafb601e1ac0a768ff1aa2f0bcc55d271faf6199abca9d9655ac7af52bfe7","src/coord/ranged1d/combinators/nested.rs":"c402a79bad7ba4ed910088fa47b76509ae1253cb15e8acc4e6a3c3e6627e4a47","src/coord/ranged1d/combinators/partial_axis.rs":"aa0e6b157ef7077786dfbfb5b84a036c65b2bd49ed3d10e91bba1009bb52b118","src/coord/ranged1d/discrete.rs":"71c5b18bfda7d935933437a439f4f7a1763d99c6efb2d3e053cd739cfd204794","src/coord/ranged1d/mod.rs":"5ba122225db5a2f2af840a6f72462034abd0463b6f92d031436979760d504385","src/coord/ranged1d/types/datetime.rs":"66bff3bba6fe2b5da9f961d3c5f37c8be49cbdaa7f5b9bb7eb15d22f67433cef","src/coord/ranged1d/types/mod.rs":"9fcf9728ca38db8469c406f9e64d37defe88714a52d9b3382ef18f10b5c5b172","src/coord/ranged1d/types/numeric.rs":"e13991d2c29c5a225cbb2545dc9c33838ae6ca658dd95b4df1456f0a082000f0","src/coord/ranged1d/types/slice.rs":"75e0e0d7deab3bf6b1265d12435e28eadbb28c45f9eca0a268e648a536c05331","src/coord/ranged2d/cartesian.rs":"b2f69bc811806db35a0c26f83182f5d585a36508149a5080bc668656739a946d","src/coord/ranged2d/mod.rs":"2ab4283d93cbb679ae8c30f10bf28a3251dd17b67856800a2369e6b21623feca","src/coord/ranged3d/cartesian3d.rs":"c099dbbeb48f17288831384f28103f0d26fe7e927f1fb9c3c9dd43a22d055e56","src/coord/ranged3d/mod.rs":"f08d10489ef8c70de8886e1c9d4fe15924aaa717addc418efed52721eeb5c775","src/coord/ranged3d/projection.rs":"d33e92113999b96e9b7fbba523eb5c63061cf7c2d7ec3b4227e051179176d6f5","src/coord/translate.rs":"409dd7f599c99f58f4a2b9cc6e7589d88801c23e15ef659fa6dbe1567bb362a0","src/data/data_range.rs":"563d86fc63c403be88e6d2ea1966cb964ed81e672cedecdaebc7574274d12414","src/data/float.rs":"05499ba3cea19a22c06be321c7b8800dcc3d78d593a4f7f6717e44ab15663c87","src/data/mod.rs":"fa53ebcfc36060d0766983e57b8852cd4fd79235b615f05e356c56fe9fc19371","src/data/quartiles.rs":"947ac9d5d1fffc08bc55fd4c84520954987c5db74e6907958ed5df810e15bf36","src/drawing/area.rs":"3c72e8a022acc8584057adc32bf4d81d670b8f7d29b0f0ca56b13bd962de2324","src/drawing/backend_impl/mocked.rs":"bcb8f8676b384c2f45196ac1af63282ca04082797c1a023334a94235df5a03d5","src/drawing/backend_impl/mod.rs":"b5f89c759b3e35a40cc9569bebdc7b5f4c5a430bdde10f446ee744b5baf2fa4c","src/drawing/mod.rs":"d21bf21dd5453a477731036a7a47482d6ead47f23a877ff68cba3f740e74bed2","src/element/basic_shapes.rs":"eeaef6aba6eb20f327e70fde59b1df9958a3c65592af2f48bc2cb9b48572d4ce","src/element/basic_shapes_3d.rs":"04c87e0d16db182cfeb31e54907a2d5db5d50ab0d01facd2233b9476ec6657e1","src/element/boxplot.rs":"4a1e80636480c2c403bcba3c3d3bfd0fb5df0ddd456e9ccf5fd7cef2824c9cf5","src/element/candlestick.rs":"b37b86cda8e4f17eb8bf5f784fde619d5824c3c4dab170a576796e4ac46e1467","src/element/composable.rs":"6e1e8f36e5581d612e4b38afc55c3467a39494552988e108747e5992df43b1fd","src/element/dynelem.rs":"8811c375b2a27b7ddbb6de90d28b0395868a43a9ea563c929ee5a95d3b873f62","src/element/errorbar.rs":"555dd4c874f9bf7efa35a86261ba3158203fd1cbe3aa91b9c3e846bf42cd9afd","src/element/image.rs":"ba99d9f0357e7b7c43d5c63aca299fba60687f61e8d39f2451b3d44c87845e5e","src/element/mod.rs":"d28aff5259b74b4807a1890763d77345ec369e154b83337ba85af88d9e23ad84","src/element/pie.rs":"130d00323d33be81bc0ffe0702f9a54d26c440c70f8c65d65342be67c103839d","src/element/points.rs":"a1ec58fc38e1db3e2f2ee27e4297011bcca3179653679991f673cecc3d0f4136","src/element/text.rs":"bea7233fa596ac8708c62061aa793fe2f91ed80649822522530598719ef93b97","src/evcxr.rs":"83d23c7342e8b23e0ca16cc4d4da87ff7dac1837e01c30bdca2ec2796766f462","src/lib.rs":"88fd8193d328f4f425158539e90a4e13724c512cf99d40aacc1bc6a9ad86cc96","src/series/area_series.rs":"76233945f72ba07fa771cb9f94622cee3472df20f2e6d20d285713d0e50f8746","src/series/histogram.rs":"cefc89a7a061a5f82f8e9173341aec4e59feeea706434dbe126ea221df6a07df","src/series/line_series.rs":"16aa9153b2887495f06864e3cff3a0449b01398146a3d4c65afab18015b0ef66","src/series/mod.rs":"4b88e9be691747ddd046e8c39b7217ca75b7d9ed93bb356fbaaeb5b73c50e435","src/series/point_series.rs":"54350ee56bcacccbac0b4904e9dd8cc7986e63ab3eeb16a8d1b6c7c86b1793da","src/series/surface.rs":"c83605843a4f0af655b0b37556ecb7381d317fddbf8cf4ef19495c0fc80293d4","src/style/color.rs":"94736096e3c372d6423b777facd659255307c683d9bf6e38f6db4e4b88d73088","src/style/colors/colormaps.rs":"04e6ebc63d83791c2548ee6b244fbb29aabc572ae396b06eb213cb76faa19bab","src/style/colors/full_palette.rs":"69c168169c38007c0e3e088fa9673d3c617329f6c5cf19b47797c1dbcbf4a43e","src/style/colors/mod.rs":"52eb79e5f9fa2c85fddffb4a45dd23ffc666305127aac7d526744184e7945ab4","src/style/font/ab_glyph.rs":"86c25b12c11a52bc5736ebcea225e0b01090a0f191b0eb00a015230bcf9b52a3","src/style/font/font_desc.rs":"0fae261114798290a5a41caec3ad0c79b61e260d408f6110cb3d9e4922fe9cfc","src/style/font/mod.rs":"eab47f53d211dbe119cdc015eb2388205fa86557a2022a0435f9e083ad408461","src/style/font/naive.rs":"1db6dc0ffae787313cc4127827127f87eb263cfd2e51ee0ba9be3bb40f7c587c","src/style/font/ttf.rs":"8d4bab36948e147c53e23cdbe273f940f488145f45d2c15b56c5f15e2d239396","src/style/font/web.rs":"2d1cb4a23c0d7321b5164aa36a21582ddfb503afa07939f96f87bef27863e8a7","src/style/mod.rs":"8768bcd39ac176d4f2126336bdf510d14016f5e40ced3fd1063c9bcd7ccede08","src/style/palette.rs":"4bdc0bae9c997e5864f2430779629e4f6d497ccd3d1be1fd35ada48ed0a0f35b","src/style/shape.rs":"fe4e7cd6bfff5ccde87a505bda175121c4b02e8115d2345d741c4abbc5e516d8","src/style/size.rs":"65bd59347bb3ba8eea51dd282c7961df4f466e6f6125a84f70a4a954afd8784c","src/style/text.rs":"b4398d4e3196212d052e718a4a6c861370f0570b27da033f6bc68acba468272d","src/test.rs":"6550b9135f235139deb8c18313370911f8e5332e62a3493cba612d96da65826b"}}
\ No newline at end of file
diff --git a/crates/plotters/.cargo-checksum.json b/crates/plotters/.cargo-checksum.json
index f10d800..6e1344a 100644
--- a/crates/plotters/.cargo-checksum.json
+++ b/crates/plotters/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.lock":"67bd9b8a10b177e4c585a2589df71ff89aea87ce26323ee21b00a2ecebdc2d6e","Cargo.toml":"5c016d28f430eb06ab7cdd24cd4d2e666db929e038beb2a9fb21d4a3751e1bc4","LICENSE":"1e881ecf2862d01e6e5bc2b861e46886d2a6fb01499c0c508a209a7271b13cf2","README.md":"dbcc210d7f4962499db6d4cfa18658e26d05ee700c962a811cac911f095e22fd","benches/benches/data.rs":"ee565bcc25fa39184db0792a23515ee2b226d630e6285cd12dcda3ddb2995501","benches/benches/mod.rs":"9a70c8cb5d5b3ae43dd43dfb8d60a346bd54d9d62462038e870a06fca4517d02","benches/main.rs":"0114d1bbc994f078cfbb6771a5834e5e104a26c8ffa081ae28e9de61a0ef0694","clippy.toml":"411cc9d76101033c506fa429c78180f8be88257ba9f30266b302363c9afb00f2","examples/3d-plot.rs":"76968c425e3675bd628edc16eb55fdfdd6a99ca926bd580732fbc94fe5128550","examples/3d-plot2.rs":"614e6b74b4439f77300d8374dea05448ddd0d53629b7a5fa806610c8c672409a","examples/README.md":"bf18dae91d0706d8d1267da2de8c728a8d32d01b143b0e5d491a21b0abe5290b","examples/animation.rs":"e23a612c33b0170c4a0c9cc9384a2149592f3e5770e87522b02296044e6c1acf","examples/area-chart.rs":"f954fecdae673ea71afd1734616e461303881e8f63339b62c317320ae98debba","examples/blit-bitmap.rs":"4be6c07c311224c14ef317dd91ce7d4c28c004ba111cd3d69315256d7ee662d6","examples/boxplot.rs":"4e330279a946b2ea19107e9c1fd26d31fe7661eac8e709f05dc95e2c963ba715","examples/chart.rs":"0e0cdcc8e58c1a32fb74e0466a17436c341c1003f98bbab40e7264020535edcb","examples/colormaps.rs":"1735af5bb568a04291c8dba1da70af708168be3ebe342b180abfad84d510126e","examples/console.rs":"67aab36d675c230abfd969609c033f781dc15ffac03c87959b3a08a799747f38","examples/customized_coord.rs":"b915454e5846263924c1c7bc25de86d2dde2bf2068536b236d300dc7bcc5b63a","examples/errorbar.rs":"3568ac7878752a04e03e97b78b45b65919bfcf6f411256362453be88fdd52187","examples/full_palette.rs":"f5a9d7174dd9f75cbc3c49fae84578227740c53955a18141099c38a9bbc38a64","examples/histogram.rs":"6e52c83983f19f2a72973d80fd468a51e1e122723b577c12c1d29b952f9d42f6","examples/mandelbrot.rs":"f8fdac7b156d77346f965af9b31da420cbdf84fc5a176ff456ab3fe1d866eadf","examples/matshow.rs":"c70c9403fa5fff84cd9394985d12c51005627439140084504328d46ec48d58fb","examples/nested_coord.rs":"94939893618f102912b23af23575922d33596e4020de56668d3c539f48e62d05","examples/normal-dist.rs":"d6bfc1e83068cb869916d9e494807f08286c3ea079962bad508e82a30823d32c","examples/normal-dist2.rs":"f6df7a69b23c24b669edebf6c116c1d4786f6dc8bce5df3e078b951732da2508","examples/pie.rs":"48ad7d49d9bfc401b44df04713c5e2a63fa444c9a75dc7ac89423387087c4989","examples/relative_size.rs":"456b8932bac0b9f265d98c55d25302aa29e410035554683a2100fa7d97653425","examples/sierpinski.rs":"519b31a62bdd8c3ba34ff9066ac72b9e94b39dae6f9a988eec4377f78f598378","examples/slc-temp.rs":"6af56c96687daaf4397cd4c0c7970e8dcb2936bb755a1d707e2bcc95e0d43b7a","examples/snowflake.rs":"7bfccf5824bffefb944b0f4156aa9fb96275c25eeb83a621615db3542bafcb37","examples/stock.rs":"f5bf468038380d0caf45f6fe3d3a5478ecbe35bf86effae5a970f95ca3878444","examples/tick_control.rs":"8bed1adb4c89cd6660691baed73c0b7b2ec68bb0dea4460fb017aaa3b40a747b","examples/two-scales.rs":"fff9d82bc2384ea7eda6ce50b8c55b46a2ba6467600e2a133325f6e6db94ad20","src/chart/axes3d.rs":"aca78a20166747c02d382e3d61c1f5707c080c1e19e51a06d532078ee6b51514","src/chart/builder.rs":"9c9432fc8e60401f2ab7157a61509397a9ab9c78f29f07b671f69545771580c1","src/chart/context.rs":"c05b89193ead37ddfed12902fd470979df2ac6664d30eaf6f68ad2456eb1ab3c","src/chart/context/cartesian2d/draw_impl.rs":"5c648fd3e6e9c43e469e4681f208a33c40bd60cc4bccaa0b0d4ef7d6cc37a903","src/chart/context/cartesian2d/mod.rs":"276262ab8f284ffa8174513631601b26e4836f7e77b3ff420075da079e6d2466","src/chart/context/cartesian3d/draw_impl.rs":"19b8c6ee6012a7a18a713394a3af1f56388d672051fa85d0e3a76aca8c8cbdd7","src/chart/context/cartesian3d/mod.rs":"d19191831ada5913903ac4306874cb8b3ee60f4db2d945dc4ac209443d585d11","src/chart/dual_coord.rs":"9c54b8f64305631f717b0027458d5553d74af8f77801db4fde0f4b9168a21686","src/chart/mesh.rs":"27ce1c614530aa76a2b1ce0f82c26ac10f4f914a07cdc1a9abefb285c7327e2b","src/chart/mod.rs":"c8856d1f40a99bcb5612625f2d0c05f0541730e0f966bed5e8e6bb98dbe0a230","src/chart/series.rs":"1edc4fa30fe67e8c2e53215096a2958fb3aae4ae1aab08d4839a1e94509a29aa","src/chart/state.rs":"7b85c21a0c4dd5cb664d4ca53e55624632b3c3063a8608cd596f0944b98d8372","src/coord/mod.rs":"e1b634aaaec3123f53879fca2b5e0ba5cc79dffa8a1c9ff267f8b4eb77e82e62","src/coord/ranged1d/combinators/ckps.rs":"570a479e1108d1aba51434a840a9d23d41b01876210ee690ac8b1402ef6fc39a","src/coord/ranged1d/combinators/group_by.rs":"7bb131582cfc6c435e7ab7213ad1b854cce6cf33893f2c75580651a59ce86ac5","src/coord/ranged1d/combinators/linspace.rs":"743d1ea2acc5a0e35eccc3be86e2c1ef6ab2cbbad76074ebce9b542c49061404","src/coord/ranged1d/combinators/logarithmic.rs":"d06f09ef29d43abf8b266281a34e8e37e8b49e0ef23ef187552027a0114df108","src/coord/ranged1d/combinators/mod.rs":"866be8da7f0d96ca25f2cdca8c1fe4c67cc695eb7dac8b499b03f62bd9490c9d","src/coord/ranged1d/combinators/nested.rs":"4c1437c85529e6a8fb1a00fc3e2c658de1683a69da8b988ac0e23e9323079131","src/coord/ranged1d/combinators/partial_axis.rs":"53622acc763437aa08b91ec5c3d58a891a08fcd3783fa79ed4e0c8cf3a7c74fe","src/coord/ranged1d/discrete.rs":"ad4d1cf4180db9d6694b945136bbea91afdba756b304317b4bab9188b1a534fb","src/coord/ranged1d/mod.rs":"af0ba484382cbf651930ed5e9f8625f98056289ad6aafbde903bc728f6ce4a69","src/coord/ranged1d/types/datetime.rs":"047f3aaa1d8d538c821eb892440e85ca2c6f20466dad94a6b9302ea542a42c10","src/coord/ranged1d/types/mod.rs":"c8ceee19ffcc1b971d4265507f9d6d7feeeab611fa8bb414ad1195982c1f0274","src/coord/ranged1d/types/numeric.rs":"034f620b6776dfd914538e0eee385aefbd641c770c4b51bfe5c79868f38df622","src/coord/ranged1d/types/slice.rs":"9a5b5bf911b43cbf888bac134dc9b6995f3c8690d18416c6e7bb122793d9cb2a","src/coord/ranged2d/cartesian.rs":"74f24f20eeb1e57af3c2dc0a2436891794fd7cde26cec1cf58ece76e0fd65d6b","src/coord/ranged2d/mod.rs":"8973be763af6d2652745c94648bb1bae66866938919121779b907e92d16e4916","src/coord/ranged3d/cartesian3d.rs":"70a54dc5441d8042d528f695df140c8a05c7d111f88c31415de99df2ce969ac9","src/coord/ranged3d/mod.rs":"32dc18d0e2b1c76f7946e746442551698814278ff58dcf12b8c6a787aa66fbc5","src/coord/ranged3d/projection.rs":"635aa97a050059035fe227a7a49bcec1c1c6b7b66a7a9ea3623b0c81c289c02d","src/coord/translate.rs":"9cf8c1a453e17468245e15258cb0c2e85a00e8ac0e9e58d489ee3e7f64fd5562","src/data/data_range.rs":"f6a92dd1318db98e3d4bb210d9860bcb035a917a01b768253116f12a36027e14","src/data/float.rs":"6882eb368b04fa8029f9d5c06f8068f4823f3688e93d582568887cfb48323acb","src/data/mod.rs":"01a20b9c818255f20bca6d126e92036c5edf847267f84ea14227316fde02a810","src/data/quartiles.rs":"3778d853821ff4d4c42aa4d13f3e7f4c388e6ae69b5ab0850edbda444ae49e0f","src/drawing/area.rs":"ead0b4c19e45893b4d593f36303e68efef8a46764615d82ece2cab99cba5337b","src/drawing/backend_impl/mocked.rs":"6a109adaab3ab4853dfb2107fe63eb36f27fddf8adae671e4474805bf6d71678","src/drawing/backend_impl/mod.rs":"fb1644e77c523165ce27335f87b112b5e15ca8676abdbeb4ed8b4adcef8f3c1d","src/drawing/mod.rs":"b9b8c7063216ff1cfb900052cf4e6755e52d6366f67f31d08417bc0516824f57","src/element/basic_shapes.rs":"778ab9b71b1ba98c0346105b9e3ffbeb84adfa47f90ab6bd594d1b1de4d8a666","src/element/basic_shapes_3d.rs":"2c04f453b1b0960c6d355d7d1154f66aae42df3370bbce5b9065b5cb30f6e9f0","src/element/boxplot.rs":"c7ddce762c7d3b12e8e819601c900363b301c9cade3e985dbd839b68f41d7010","src/element/candlestick.rs":"38c35a8711062e44dfc5ed38f9f1ef45f9d978fc7f0db0d3297fbe1a84480ae2","src/element/composable.rs":"4656f8d94290767096871eb06bad0c6992a0daf32f8a8f9600b64ae90cf45517","src/element/dynelem.rs":"951211ba906425f25e96510b8b45c6a0bb1212e9d1b7a045f9144d520c832c0d","src/element/errorbar.rs":"087d79a464221f00456a8372dc7f9c8cfb7b1d247540dcb28db781ef62b1ba38","src/element/image.rs":"32afe849ee1ef9ad4e485c682c93f12feb20d0df859ea6be09d5170d331f7f5f","src/element/mod.rs":"3c538115334a4c03edf40efd3f857e8ce4189b6e72e69abfd3bc2f57410dd899","src/element/pie.rs":"52f4225e26f50930248cecb91606312ec92702cf9d2c76973222f69ccae8ea76","src/element/points.rs":"bafb67d71c43b8959905fe3236274f1cb0defe5254cc267d34d222e11a6ded53","src/element/text.rs":"7a924d38f475579b1632a37950c71220f921330c1f3c649e6b84c73a2a80637a","src/evcxr.rs":"6541c64f65cd3be954816277e61ec82ff31d761dc0bcbb38721b774140ab3034","src/lib.rs":"d0d3a8417bf2e9d49c986e77f37691c7aa20719f9991705ba350544cdec2cfeb","src/series/area_series.rs":"85336f046bc5bd5ab18252ff91288057d6783f8ecf51e226f447646a16815cfa","src/series/histogram.rs":"62b35bfa9b9e541d8b5246b05f8a20ba5659a8f7daa138cb3ff294ce0ce7a2ae","src/series/line_series.rs":"a6ec63156b1166d3b136e0bf2370ea968c575a7c324cdba8a2cf72ac7ae417a5","src/series/mod.rs":"387d280583147ae79ad134199ac6ca7a0dbba46bba14fbf361eea7867e6a3263","src/series/point_series.rs":"cf056e06f1e740ea724d8bcadbe373cb49d93a02beef14064fe550e8ef1f3636","src/series/surface.rs":"001701ebf777eca631c9738db7e8262860f87686c5f3fd4f5c35c79babf37d97","src/style/color.rs":"6026e93bd93a84045e073340aca685167ad12067901169347e060a6139c02417","src/style/colors/colormaps.rs":"7b4b5ba3b093c1f2b7613a2a009f8929ea687777eb38c25943bc242a1e45d1f5","src/style/colors/full_palette.rs":"395e8b82f79156f24c459195aba417f9f8fbe8624405900c435bc2ed3f107c37","src/style/colors/mod.rs":"62d1a49f731d3131e35bf26faf37f83b02657ac44ffb38c7f6340a1f343c62b7","src/style/font/ab_glyph.rs":"dd6f95f555d81f21fb5d5a53e4831a3f770ed9a00104fdd9053d92eca3952dee","src/style/font/font_desc.rs":"b4e1741ac2f04578a6c787004914e1e323cd237824c56b6e499bf3b2a542dee4","src/style/font/mod.rs":"3d4541587bda333a580010d4346d9c97b9af3f3deddbae6d8ebfbc218dc49a1f","src/style/font/naive.rs":"7e48b31d788b76b7e1aa6924b05181f68ce7e5b24aa28dfd9d72dace0cab4202","src/style/font/ttf.rs":"1c4f5792ed2be5c6823dd9874e278832b913599c9d2a84df154ecfe7dc4c17d4","src/style/font/web.rs":"28f8c20d816a4b915682cfc671fdf6391956045e23f768443f80dc61dc0b2d01","src/style/mod.rs":"905d7cb885f74710a2d991540cc7e8cfa7fae78e9a7d159f5608794860dd337f","src/style/palette.rs":"a89c9739c62dd310ad4c70dee192558a5b37294b75747f084a1d2dacbd6e5224","src/style/shape.rs":"a7b729684f3121c88ebe597df2eea0c601b7ae8fa80b9d462adb82e7f99d6185","src/style/size.rs":"c570b18b04d1fcdbba847d20ec09e4086ba34e357495398cb0efb1045ee8912b","src/style/text.rs":"d35ff6b0a998584d52c983d8a21b3f2a9c2977961f41e40af5c25c42c8187e8a","src/test.rs":"09f7685d7c1daed2966a476be0eca093c8271bfb9664fad8166a89e7958d5736"},"package":"d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"}
\ No newline at end of file
+{"files":{"Cargo.lock":"0ad85191703ecdbe082b0c8b25f1ab945b29045c94e4f7b0a780cd5d7c6f612c","Cargo.toml":"946b91e449be5cbf58314e47d98d4aba4ebab6cb5c0f48e0a5ebbddd694989c3","LICENSE":"1e881ecf2862d01e6e5bc2b861e46886d2a6fb01499c0c508a209a7271b13cf2","README.md":"dbcc210d7f4962499db6d4cfa18658e26d05ee700c962a811cac911f095e22fd","benches/benches/data.rs":"ee565bcc25fa39184db0792a23515ee2b226d630e6285cd12dcda3ddb2995501","benches/benches/mod.rs":"9a70c8cb5d5b3ae43dd43dfb8d60a346bd54d9d62462038e870a06fca4517d02","benches/main.rs":"0114d1bbc994f078cfbb6771a5834e5e104a26c8ffa081ae28e9de61a0ef0694","blub.png":"59134b07954df7f6807c33193f71eab9a108d4655da26d544371797b16d92e33","examples/3d-plot.rs":"066b2d85eb5a0630fad15e728fc5a4d1ec2f68151a4a82e7b299921facd6b283","examples/3d-plot2.rs":"ae7556a727a1ba2fa688446927608a3bcd9574445f45f50276af69781cb94a81","examples/README.md":"543eca36acb4fedeef7e395fd7dc94d320d375a1e5d5a53715f75459bfc872bb","examples/animation.rs":"5795973c18e8c2f4682dbef01fe5b64abed65f1a33add5d7b59e5a284bbdff3a","examples/area-chart.rs":"ccb0d3cb9116d484303ab6798de21044cd9e8bbb3c1aa8a10f5df2bf414dc701","examples/blit-bitmap.rs":"94dec8aae59929028d651d4cccf52dde6f8a8eb7a52c8032ff5d201ee6dce334","examples/boxplot.rs":"4633930bdfcccb9be5e7d1be9d2953875b1b12d4cd0d611bbd194a0f996adb71","examples/chart.rs":"a1c40c46e127bf98e6895ecb2d088802277f911349016e8742d379c782868c84","examples/colormaps.rs":"312435ae2b525ca064534479c0fe9b5b49c8158293e385204e166858678c6b8f","examples/console.rs":"391886750a01bd3d144274fe9d3fe719800e2a63d54a430fd2bae7055f273265","examples/customized_coord.rs":"aeac24224abd85abdc88e1341ca2c4c0f118327770022c570820480609e79bd4","examples/errorbar.rs":"cfaf406037ac2339a0d2f0a3b0f8e75ba2e0b6cfd34d6c5eecf6dcf67ad58328","examples/full_palette.rs":"de655c7c1b63778d2da75e9c2224ef81c9ad78f09a74a7c09865daf0c5374c76","examples/histogram.rs":"3c9c3704680dabc47eaa2dafe801dc42a3c30711e67f2775e8810a1a3c45fbbc","examples/mandelbrot.rs":"452fc9182c8c0cdda44b4500970a47fe92a8dcf25b0e10890c37257bfac00b53","examples/matshow.rs":"a1bc4655cf91563d1a7f90af38b4db3e3496b62e741a87cc7911178b536e41ba","examples/nested_coord.rs":"ff0ecac6bf138cca20117a7ff842517b18bbb11d1b87162f8f285ccd5cd5d2c1","examples/normal-dist.rs":"3c5d1c60e9be1c8a2635c1026445223c3a916aeaf5fe7383c83ce86f8e3872cd","examples/normal-dist2.rs":"625e21b3a203790e8d66f9652d75fe905d7ec864d3e4d1095d479d7661202379","examples/pie.rs":"19824e16a95dd326f291529304e07c5ae667844dee14865803c84fccb8ade4b0","examples/relative_size.rs":"a86eb00c50645d12f5daece09b3c7d28578d016a66f40826c1a75929fedf5c38","examples/sierpinski.rs":"dec2707e42e1f8e8ccf33a9f5e7ef1f4009e255f08cc110fd6b1c598b61ebfa8","examples/slc-temp.rs":"705d8c0a65238424483427963faa62b95d8beedec8b1616449d7fcf9e8c62251","examples/snowflake.rs":"00436ce5cc396dcc2bda0740ec75f19abcda3938dbadf863101e3c11f3406b14","examples/stock.rs":"7eba28e68e67c23d5a84f5db1fb02b88144e6a216f31fac185824239c1427ebc","examples/tick_control.rs":"c7a7f0006de4417b826aabf0d156bd94608701feaf3cd59d3c2d00ab3e6d76ff","examples/two-scales.rs":"7142b599f85cff984be7dce5c500e33e1fe525c9cccf0da13d702685d87bd0dd","src/chart/axes3d.rs":"fbe14a085f1ced493fe55b435fe63a62814653200099fbac7dee2bbb0df09216","src/chart/builder.rs":"a9d93e9be96f7c78fe5727ccdebd0389ddbfe67413b5b75e4498282548468c53","src/chart/context.rs":"b9adcd2f1a3904deda2d7e0f1b9e40fa0ee425b8394ddf98b2e99d96a67430a1","src/chart/context/cartesian2d/draw_impl.rs":"5c648fd3e6e9c43e469e4681f208a33c40bd60cc4bccaa0b0d4ef7d6cc37a903","src/chart/context/cartesian2d/mod.rs":"276262ab8f284ffa8174513631601b26e4836f7e77b3ff420075da079e6d2466","src/chart/context/cartesian3d/draw_impl.rs":"19b8c6ee6012a7a18a713394a3af1f56388d672051fa85d0e3a76aca8c8cbdd7","src/chart/context/cartesian3d/mod.rs":"af31dd770a9b9737e73398ba4c9361ba5f42051b731bdaa9e5bdd0f9dc78dd4c","src/chart/dual_coord.rs":"bf1c234558d49e985c2f6a8e68e5a2589d8bdf5dd2b849495eb6925fe8ffcb21","src/chart/mesh.rs":"27ce1c614530aa76a2b1ce0f82c26ac10f4f914a07cdc1a9abefb285c7327e2b","src/chart/mod.rs":"c8856d1f40a99bcb5612625f2d0c05f0541730e0f966bed5e8e6bb98dbe0a230","src/chart/series.rs":"e498807180f894dc3e4ba2f66e1cb788959778b65ec14860916a225b72b120b5","src/chart/state.rs":"5f740e6ad9bf2c6beaa51bbbc2fdeac2eac89edc6864aec218a3f88a2e484b1f","src/coord/mod.rs":"61e938109848b8af780b4501fbfed67bf2fb3b1d0d0092e3405874ee271f2457","src/coord/ranged1d/combinators/ckps.rs":"9ca7f1d8c43c34775bf849713a1c9d739de25761c88c9cad96a7cdf81faea23b","src/coord/ranged1d/combinators/group_by.rs":"cf80c6c20ede45fcc283acb8db1dbea3168b49b69a90105f20848f1c97a1ea21","src/coord/ranged1d/combinators/linspace.rs":"178228b22e4ddb2ab7910332781cdfcfa7cebab1c3c6b40afee9ba19bbfe2fc1","src/coord/ranged1d/combinators/logarithmic.rs":"d78a1ce1995a4b221109b0805745064327009714bbcf7366837034efc55f5788","src/coord/ranged1d/combinators/mod.rs":"866be8da7f0d96ca25f2cdca8c1fe4c67cc695eb7dac8b499b03f62bd9490c9d","src/coord/ranged1d/combinators/nested.rs":"4c1437c85529e6a8fb1a00fc3e2c658de1683a69da8b988ac0e23e9323079131","src/coord/ranged1d/combinators/partial_axis.rs":"53622acc763437aa08b91ec5c3d58a891a08fcd3783fa79ed4e0c8cf3a7c74fe","src/coord/ranged1d/discrete.rs":"1b58c8905dc027baf80d676b04ac59f988ab949a38180ca6c0519b485a92b7b0","src/coord/ranged1d/mod.rs":"7e9c5b7f4203e066e416aa15b01b6453e49533ced91fa197a40f4afc3e284be1","src/coord/ranged1d/types/datetime.rs":"7aca528cd85ea3a5fc4b50750a39692734efa12e04285c36d9ee05c9d1ad66c7","src/coord/ranged1d/types/mod.rs":"c24293c1958dd84f519da0136cb8339aecf2bff2192170e618563cd364010f6e","src/coord/ranged1d/types/numeric.rs":"043d23b95772f9c8aa363c4a84cd110258e596c6375cc64d66d3da409df35c6a","src/coord/ranged1d/types/slice.rs":"9a5b5bf911b43cbf888bac134dc9b6995f3c8690d18416c6e7bb122793d9cb2a","src/coord/ranged2d/cartesian.rs":"a128004a4c784f615aec9066faebf02e53c6c384fe33328565237277dcc7e5f4","src/coord/ranged2d/mod.rs":"8973be763af6d2652745c94648bb1bae66866938919121779b907e92d16e4916","src/coord/ranged3d/cartesian3d.rs":"70a54dc5441d8042d528f695df140c8a05c7d111f88c31415de99df2ce969ac9","src/coord/ranged3d/mod.rs":"32dc18d0e2b1c76f7946e746442551698814278ff58dcf12b8c6a787aa66fbc5","src/coord/ranged3d/projection.rs":"635aa97a050059035fe227a7a49bcec1c1c6b7b66a7a9ea3623b0c81c289c02d","src/coord/translate.rs":"9cf8c1a453e17468245e15258cb0c2e85a00e8ac0e9e58d489ee3e7f64fd5562","src/data/data_range.rs":"4505539b631b94d74c3e344e3f8b85f3a148f44ccd73de9701242c281c9de898","src/data/float.rs":"6882eb368b04fa8029f9d5c06f8068f4823f3688e93d582568887cfb48323acb","src/data/mod.rs":"01a20b9c818255f20bca6d126e92036c5edf847267f84ea14227316fde02a810","src/data/quartiles.rs":"89a1faeb9a769515a8aed743b6984ff04548db513902fbf40529c9d3ea3902e3","src/drawing/area.rs":"a062f01f187e98feafbb360fff181bcf9b72ac1e260dd44d47e5e35b66b828d9","src/drawing/backend_impl/mocked.rs":"6a109adaab3ab4853dfb2107fe63eb36f27fddf8adae671e4474805bf6d71678","src/drawing/backend_impl/mod.rs":"fb1644e77c523165ce27335f87b112b5e15ca8676abdbeb4ed8b4adcef8f3c1d","src/drawing/mod.rs":"9864f1d2b61d0d02188a2590a6700ff692bd420a48714cb918f67d8a719d4ddb","src/element/basic_shapes.rs":"471c511eaee04cc8c75a711a2887f079501b5c1f467f8ab8ee9c5f5c17271575","src/element/basic_shapes_3d.rs":"2c04f453b1b0960c6d355d7d1154f66aae42df3370bbce5b9065b5cb30f6e9f0","src/element/boxplot.rs":"75989cc066d0c091bde6115cad7ee5b9ba3e08f009a88195749f28d02893b954","src/element/candlestick.rs":"38c35a8711062e44dfc5ed38f9f1ef45f9d978fc7f0db0d3297fbe1a84480ae2","src/element/composable.rs":"4656f8d94290767096871eb06bad0c6992a0daf32f8a8f9600b64ae90cf45517","src/element/dynelem.rs":"951211ba906425f25e96510b8b45c6a0bb1212e9d1b7a045f9144d520c832c0d","src/element/errorbar.rs":"087d79a464221f00456a8372dc7f9c8cfb7b1d247540dcb28db781ef62b1ba38","src/element/image.rs":"3ef52eea0548c17241b7c96881f08b8a4ef23c6b4679e57c2fdabda5888cc60b","src/element/mod.rs":"7aa89773c66b39e778e226359ab39fc930910b676817f7b6149fed60d01a0812","src/element/pie.rs":"73af166b1b63e797c29fbb85b104188d0537fe3f829d460ca0991310d867f1a1","src/element/points.rs":"bafb67d71c43b8959905fe3236274f1cb0defe5254cc267d34d222e11a6ded53","src/element/text.rs":"b821037a2d8521aafa1cd1d938a8874cd14cf4dbb4860958d4de917f441d6dd6","src/evcxr.rs":"9bb8ac8ff8c61c08603c5ed45ed37d82957835a2fabd0bbb56690f9f9d8997c7","src/lib.rs":"ad98e7d18807d4c0c2d36556590b34332f26db369e284394160ccbb75579792c","src/series/area_series.rs":"85336f046bc5bd5ab18252ff91288057d6783f8ecf51e226f447646a16815cfa","src/series/histogram.rs":"8af2e00deaee121b8d2991b034387ea16d26b8fc4f52d103d67a171b3d12b194","src/series/line_series.rs":"187b6bc5ccdb9f194ac158acf3d4ce64e87c41cd549a34b0330e08b69fac101c","src/series/mod.rs":"f2373ed2ba0a4a6377a893f63401f055ceedcf1aa0137e803e72e9c6d31e2b98","src/series/point_series.rs":"cf056e06f1e740ea724d8bcadbe373cb49d93a02beef14064fe550e8ef1f3636","src/series/surface.rs":"868d1ce80f2ad6e575629fa8ed9aeb842495d89ca3ccfea6360fd42d7a8f905f","src/style/color.rs":"7896f0b54135bd4afd3d3f1ae37c1409cf9928a4ab612e4d61ec47ee4204b525","src/style/colors/colormaps.rs":"82d48cce5c6e54232899f367a6a3ed38227ab28aa9ab946f2b86dc54b603b274","src/style/colors/full_palette.rs":"395e8b82f79156f24c459195aba417f9f8fbe8624405900c435bc2ed3f107c37","src/style/colors/mod.rs":"ced8ee75509b423b314b3724aee718939bf87c7dd0f7261177fd0ced1734c222","src/style/font/ab_glyph.rs":"dd6f95f555d81f21fb5d5a53e4831a3f770ed9a00104fdd9053d92eca3952dee","src/style/font/font_desc.rs":"b4e1741ac2f04578a6c787004914e1e323cd237824c56b6e499bf3b2a542dee4","src/style/font/mod.rs":"3d4541587bda333a580010d4346d9c97b9af3f3deddbae6d8ebfbc218dc49a1f","src/style/font/naive.rs":"7e48b31d788b76b7e1aa6924b05181f68ce7e5b24aa28dfd9d72dace0cab4202","src/style/font/ttf.rs":"232385d3f7e44ad9b64f0c31886ac2dbddf35668d30e336819f8f296be06eb58","src/style/font/web.rs":"b38d9a6570f3d1be7ba3aad60ad290f251019983c927cd1893a0dd7106e5a4cd","src/style/mod.rs":"da1e65599cc3508d82d1d7bb3d9e7df2ac588fb78813009d0df9c14459540782","src/style/palette.rs":"a89c9739c62dd310ad4c70dee192558a5b37294b75747f084a1d2dacbd6e5224","src/style/shape.rs":"c32ccce067a8f708053f3a21b1a4536c134b771e9ff48668097a1981a8201f4c","src/style/size.rs":"c570b18b04d1fcdbba847d20ec09e4086ba34e357495398cb0efb1045ee8912b","src/style/text.rs":"d35ff6b0a998584d52c983d8a21b3f2a9c2977961f41e40af5c25c42c8187e8a","src/test.rs":"09f7685d7c1daed2966a476be0eca093c8271bfb9664fad8166a89e7958d5736"},"package":"5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747"}
\ No newline at end of file
diff --git a/crates/plotters/Android.bp b/crates/plotters/Android.bp
index da2f4fd..af370e2 100644
--- a/crates/plotters/Android.bp
+++ b/crates/plotters/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "plotters",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.3.5",
+    cargo_pkg_version: "0.3.7",
     crate_root: "src/lib.rs",
     edition: "2018",
     features: [
diff --git a/crates/plotters/Cargo.lock b/crates/plotters/Cargo.lock
index c4d7e98..c92720c 100644
--- a/crates/plotters/Cargo.lock
+++ b/crates/plotters/Cargo.lock
@@ -4,9 +4,9 @@
 
 [[package]]
 name = "ab_glyph"
-version = "0.2.21"
+version = "0.2.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39"
+checksum = "79faae4620f45232f599d9bc7b290f88247a0834162c4495ab2f02d60004adfb"
 dependencies = [
  "ab_glyph_rasterizer",
  "owned_ttf_parser",
@@ -25,6 +25,21 @@
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
+name = "adler2"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "android-tzdata"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -46,21 +61,16 @@
 checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
-name = "atty"
-version = "0.2.14"
+name = "anstyle"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
+checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "bitflags"
@@ -69,22 +79,28 @@
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
-name = "bumpalo"
-version = "3.13.0"
+name = "bitflags"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
+
+[[package]]
+name = "bumpalo"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "bytemuck"
-version = "1.13.1"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "cast"
@@ -94,9 +110,12 @@
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
+dependencies = [
+ "shlex",
+]
 
 [[package]]
 name = "cfg-if"
@@ -106,24 +125,23 @@
 
 [[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
- "time",
  "wasm-bindgen",
- "winapi",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
 name = "ciborium"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -132,15 +150,15 @@
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 dependencies = [
  "ciborium-io",
  "half",
@@ -148,33 +166,28 @@
 
 [[package]]
 name = "clap"
-version = "3.2.25"
+version = "4.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
+checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac"
 dependencies = [
- "bitflags",
+ "clap_builder",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73"
+dependencies = [
+ "anstyle",
  "clap_lex",
- "indexmap",
- "textwrap",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.2.4"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-dependencies = [
- "os_str_bytes",
-]
-
-[[package]]
-name = "cmake"
-version = "0.1.50"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
-dependencies = [
- "cc",
-]
+checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
 
 [[package]]
 name = "color_quant"
@@ -193,16 +206,10 @@
 ]
 
 [[package]]
-name = "const-cstr"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
-
-[[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -210,17 +217,17 @@
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
 
 [[package]]
 name = "core-graphics"
-version = "0.22.3"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "core-foundation",
  "core-graphics-types",
  "foreign-types",
@@ -229,21 +236,20 @@
 
 [[package]]
 name = "core-graphics-types"
-version = "0.1.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "core-foundation",
- "foreign-types",
  "libc",
 ]
 
 [[package]]
 name = "core-text"
-version = "19.2.0"
+version = "20.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
+checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5"
 dependencies = [
  "core-foundation",
  "core-graphics",
@@ -253,30 +259,30 @@
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "criterion"
-version = "0.4.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
+checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
 dependencies = [
  "anes",
- "atty",
  "cast",
  "ciborium",
  "clap",
  "criterion-plot",
+ "is-terminal",
  "itertools",
- "lazy_static",
  "num-traits",
+ "once_cell",
  "oorandom",
- "plotters 0.3.4",
+ "plotters 0.3.6",
  "rayon",
  "regex",
  "serde",
@@ -297,67 +303,55 @@
 ]
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
 dependencies = [
- "cfg-if",
+ "dirs-sys",
 ]
 
 [[package]]
-name = "dirs-next"
-version = "2.0.0"
+name = "dirs-sys"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
-dependencies = [
- "cfg-if",
- "dirs-sys-next",
-]
-
-[[package]]
-name = "dirs-sys-next"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
 dependencies = [
  "libc",
+ "option-ext",
  "redox_users",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -371,9 +365,9 @@
 
 [[package]]
 name = "dwrote"
-version = "0.11.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b"
+checksum = "2da3498378ed373237bdef1eddcc64e7be2d3ba4841f4c22a998e81cadeea83c"
 dependencies = [
  "lazy_static",
  "libc",
@@ -383,50 +377,50 @@
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.0"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.26"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253"
 dependencies = [
  "crc32fast",
- "miniz_oxide",
+ "miniz_oxide 0.8.0",
 ]
 
 [[package]]
 name = "float-ord"
-version = "0.2.0"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
+checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d"
 
 [[package]]
 name = "font-kit"
-version = "0.11.0"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21fe28504d371085fae9ac7a3450f0b289ab71e07c8e57baa3fb68b9e57d6ce5"
+checksum = "b64b34f4efd515f905952d91bc185039863705592c0c53ae6d979805dd154520"
 dependencies = [
- "bitflags",
+ "bitflags 2.6.0",
  "byteorder",
  "core-foundation",
  "core-graphics",
  "core-text",
- "dirs-next",
+ "dirs",
  "dwrote",
  "float-ord",
- "freetype",
+ "freetype-sys",
  "lazy_static",
  "libc",
  "log",
@@ -439,49 +433,51 @@
 
 [[package]]
 name = "foreign-types"
-version = "0.3.2"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
 dependencies = [
+ "foreign-types-macros",
  "foreign-types-shared",
 ]
 
 [[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
+name = "foreign-types-macros"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "freetype"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
- "freetype-sys",
- "libc",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
-name = "freetype-sys"
-version = "0.13.1"
+name = "foreign-types-shared"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
+name = "freetype-sys"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e7edc5b9669349acfda99533e9e0bcf26a51862ab43b08ee7745c55d28eb134"
 dependencies = [
- "cmake",
+ "cc",
  "libc",
  "pkg-config",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
 ]
 
 [[package]]
@@ -496,46 +492,32 @@
 
 [[package]]
 name = "half"
-version = "1.8.2"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
 dependencies = [
- "libc",
+ "cfg-if",
+ "crunchy",
 ]
 
 [[package]]
 name = "hermit-abi"
-version = "0.2.6"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
+checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows",
+ "windows-core",
 ]
 
 [[package]]
@@ -549,27 +531,27 @@
 
 [[package]]
 name = "image"
-version = "0.24.6"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
 ]
 
 [[package]]
-name = "indexmap"
-version = "1.9.3"
+name = "is-terminal"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
 dependencies = [
- "autocfg",
- "hashbrown",
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -583,144 +565,139 @@
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "lazy_static"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
 
 [[package]]
 name = "libc"
-version = "0.2.146"
+version = "0.2.158"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
 
 [[package]]
 name = "libloading"
-version = "0.8.0"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb"
+checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
 dependencies = [
  "cfg-if",
- "windows-sys",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
 name = "libm"
-version = "0.2.7"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libredox"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.6.0",
+ "libc",
+]
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
 
 [[package]]
-name = "memoffset"
-version = "0.9.0"
+name = "memchr"
+version = "2.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+
+[[package]]
+name = "minicov"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c71e683cd655513b99affab7d317deb690528255a0d5f717f1024093c12b169"
 dependencies = [
- "autocfg",
+ "cc",
+ "walkdir",
 ]
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
 dependencies = [
  "adler",
  "simd-adler32",
 ]
 
 [[package]]
-name = "num-integer"
-version = "0.1.45"
+name = "miniz_oxide"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
 dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
+ "adler2",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
  "libm",
 ]
 
 [[package]]
-name = "num_cpus"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
-dependencies = [
- "hermit-abi 0.2.6",
- "libc",
-]
-
-[[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "oorandom"
-version = "11.1.3"
+version = "11.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
+checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9"
 
 [[package]]
-name = "os_str_bytes"
-version = "6.5.1"
+name = "option-ext"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
 name = "owned_ttf_parser"
-version = "0.19.0"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4"
+checksum = "490d3a563d3122bf7c911a59b0add9389e5ec0f5f0c3ac6b91ff235a0e6a7f90"
 dependencies = [
- "ttf-parser 0.19.0",
+ "ttf-parser 0.24.1",
 ]
 
 [[package]]
@@ -735,34 +712,24 @@
 
 [[package]]
 name = "pathfinder_simd"
-version = "0.5.1"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39fe46acc5503595e5949c17b818714d26fdf9b4920eacf3b2947f0199f4a6ff"
+checksum = "5cf07ef4804cfa9aea3b04a7bbdd5a40031dbb6b4f2cbaf2b011666c80c5b4f2"
 dependencies = [
  "rustc_version",
 ]
 
 [[package]]
-name = "pest"
-version = "2.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70"
-dependencies = [
- "thiserror",
- "ucd-trie",
-]
-
-[[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plotters"
-version = "0.3.4"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
+checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3"
 dependencies = [
  "num-traits",
  "plotters-backend",
@@ -773,7 +740,7 @@
 
 [[package]]
 name = "plotters"
-version = "0.3.5"
+version = "0.3.7"
 dependencies = [
  "ab_glyph",
  "chrono",
@@ -795,7 +762,7 @@
  "serde",
  "serde_derive",
  "serde_json",
- "ttf-parser 0.17.1",
+ "ttf-parser 0.20.0",
  "wasm-bindgen",
  "wasm-bindgen-test",
  "web-sys",
@@ -803,15 +770,15 @@
 
 [[package]]
 name = "plotters-backend"
-version = "0.3.5"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
+checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7"
 
 [[package]]
 name = "plotters-bitmap"
-version = "0.3.3"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0cebbe1f70205299abc69e8b295035bb52a6a70ee35474ad10011f0a4efb8543"
+checksum = "72ce181e3f6bf82d6c1dc569103ca7b1bd964c60ba03d7e6cdfbb3e3eb7f7405"
 dependencies = [
  "gif",
  "image",
@@ -820,9 +787,9 @@
 
 [[package]]
 name = "plotters-svg"
-version = "0.3.5"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
+checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705"
 dependencies = [
  "image",
  "plotters-backend",
@@ -830,37 +797,40 @@
 
 [[package]]
 name = "png"
-version = "0.17.9"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "crc32fast",
  "fdeflate",
  "flate2",
- "miniz_oxide",
+ "miniz_oxide 0.7.4",
 ]
 
 [[package]]
 name = "ppv-lite86"
-version = "0.2.17"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
+dependencies = [
+ "zerocopy",
+]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.60"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.28"
+version = "1.0.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
 dependencies = [
  "proc-macro2",
 ]
@@ -916,9 +886,9 @@
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
 dependencies = [
  "either",
  "rayon-core",
@@ -926,65 +896,68 @@
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
 dependencies = [
  "getrandom",
- "redox_syscall",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.8.4"
+version = "1.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
+checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
 dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
+dependencies = [
+ "aho-corasick",
+ "memchr",
  "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.2"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
 
 [[package]]
 name = "rustc_version"
-version = "0.3.3"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
 dependencies = [
  "semver",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "same-file"
@@ -1002,43 +975,25 @@
 checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
 
 [[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
 name = "semver"
-version = "0.11.0"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver-parser"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
-dependencies = [
- "pest",
-]
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.164"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.164"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1047,26 +1002,33 @@
 
 [[package]]
 name = "serde_json"
-version = "1.0.97"
+version = "1.0.128"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdf3bf93142acad5821c99197022e170842cdbc1c30482b98750c688c640842a"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
 dependencies = [
  "itoa",
+ "memchr",
  "ryu",
  "serde",
 ]
 
 [[package]]
-name = "simd-adler32"
-version = "0.3.5"
+name = "shlex"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
 name = "syn"
-version = "2.0.18"
+version = "2.0.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1074,25 +1036,19 @@
 ]
 
 [[package]]
-name = "textwrap"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-
-[[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1100,17 +1056,6 @@
 ]
 
 [[package]]
-name = "time"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
 name = "tinytemplate"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1122,33 +1067,27 @@
 
 [[package]]
 name = "ttf-parser"
-version = "0.17.1"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "375812fa44dab6df41c195cd2f7fecb488f6c09fbaafb62807488cefab642bff"
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
 
 [[package]]
 name = "ttf-parser"
-version = "0.19.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44dcf002ae3b32cd25400d6df128c5babec3927cd1eb7ce813cfff20eb6c3746"
-
-[[package]]
-name = "ucd-trie"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
+checksum = "5be21190ff5d38e8b4a2d3b6a3ae57f612cc39c96e83cedeaf7abc338a8bac4a"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.9"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "walkdir"
-version = "2.3.3"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -1156,31 +1095,26 @@
 
 [[package]]
 name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
 dependencies = [
  "cfg-if",
+ "once_cell",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
 dependencies = [
  "bumpalo",
  "log",
@@ -1193,9 +1127,9 @@
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -1205,9 +1139,9 @@
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -1215,9 +1149,9 @@
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1228,18 +1162,19 @@
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
 
 [[package]]
 name = "wasm-bindgen-test"
-version = "0.3.37"
+version = "0.3.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e6e302a7ea94f83a6d09e78e7dc7d9ca7b186bc2829c24a22d0753efd680671"
+checksum = "68497a05fb21143a08a7d24fc81763384a3072ee43c44e86aad1744d6adef9d9"
 dependencies = [
  "console_error_panic_hook",
  "js-sys",
+ "minicov",
  "scoped-tls",
  "wasm-bindgen",
  "wasm-bindgen-futures",
@@ -1248,19 +1183,20 @@
 
 [[package]]
 name = "wasm-bindgen-test-macro"
-version = "0.3.37"
+version = "0.3.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575"
+checksum = "4b8220be1fa9e4c889b30fd207d4906657e7e90b12e0e6b0c8b8d8709f5de021"
 dependencies = [
  "proc-macro2",
  "quote",
+ "syn",
 ]
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -1268,9 +1204,9 @@
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "winapi"
@@ -1290,11 +1226,11 @@
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
 dependencies = [
- "winapi",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -1304,12 +1240,12 @@
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
-name = "windows"
-version = "0.48.0"
+name = "windows-core"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -1318,65 +1254,147 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
 
 [[package]]
 name = "wio"
@@ -1389,12 +1407,32 @@
 
 [[package]]
 name = "yeslogic-fontconfig-sys"
-version = "3.2.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2bbd69036d397ebbff671b1b8e4d918610c181c5a16073b96f984a38d08c386"
+checksum = "503a066b4c037c440169d995b869046827dbc71263f6e8f3be6d77d4f3229dbd"
 dependencies = [
- "const-cstr",
  "dlib",
  "once_cell",
  "pkg-config",
 ]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
+dependencies = [
+ "byteorder",
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
diff --git a/crates/plotters/Cargo.toml b/crates/plotters/Cargo.toml
index 61b811e..530924a 100644
--- a/crates/plotters/Cargo.toml
+++ b/crates/plotters/Cargo.toml
@@ -12,12 +12,17 @@
 [package]
 edition = "2018"
 name = "plotters"
-version = "0.3.5"
+version = "0.3.7"
 authors = ["Hao Hou <[email protected]>"]
+build = false
 exclude = [
     "doc-template",
     "plotters-doc-data",
 ]
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = "A Rust drawing library focus on data plotting for both WASM and native applications"
 homepage = "https://plotters-rs.github.io/"
 readme = "README.md"
@@ -34,32 +39,147 @@
 license = "MIT"
 repository = "https://github.com/plotters-rs/plotters"
 
+[package.metadata.docs.rs]
+all-features = true
+rustdoc-args = [
+    "--cfg",
+    "doc_cfg",
+]
+
+[lib]
+name = "plotters"
+path = "src/lib.rs"
+
+[[example]]
+name = "3d-plot"
+path = "examples/3d-plot.rs"
+
+[[example]]
+name = "3d-plot2"
+path = "examples/3d-plot2.rs"
+
+[[example]]
+name = "animation"
+path = "examples/animation.rs"
+
+[[example]]
+name = "area-chart"
+path = "examples/area-chart.rs"
+
+[[example]]
+name = "blit-bitmap"
+path = "examples/blit-bitmap.rs"
+
+[[example]]
+name = "boxplot"
+path = "examples/boxplot.rs"
+
+[[example]]
+name = "chart"
+path = "examples/chart.rs"
+
+[[example]]
+name = "colormaps"
+path = "examples/colormaps.rs"
+
+[[example]]
+name = "console"
+path = "examples/console.rs"
+
+[[example]]
+name = "customized_coord"
+path = "examples/customized_coord.rs"
+
+[[example]]
+name = "errorbar"
+path = "examples/errorbar.rs"
+
+[[example]]
+name = "full_palette"
+path = "examples/full_palette.rs"
+
+[[example]]
+name = "histogram"
+path = "examples/histogram.rs"
+
+[[example]]
+name = "mandelbrot"
+path = "examples/mandelbrot.rs"
+
+[[example]]
+name = "matshow"
+path = "examples/matshow.rs"
+
+[[example]]
+name = "nested_coord"
+path = "examples/nested_coord.rs"
+
+[[example]]
+name = "normal-dist"
+path = "examples/normal-dist.rs"
+
+[[example]]
+name = "normal-dist2"
+path = "examples/normal-dist2.rs"
+
+[[example]]
+name = "pie"
+path = "examples/pie.rs"
+
+[[example]]
+name = "relative_size"
+path = "examples/relative_size.rs"
+
+[[example]]
+name = "sierpinski"
+path = "examples/sierpinski.rs"
+
+[[example]]
+name = "slc-temp"
+path = "examples/slc-temp.rs"
+
+[[example]]
+name = "snowflake"
+path = "examples/snowflake.rs"
+
+[[example]]
+name = "stock"
+path = "examples/stock.rs"
+
+[[example]]
+name = "tick_control"
+path = "examples/tick_control.rs"
+
+[[example]]
+name = "two-scales"
+path = "examples/two-scales.rs"
+
 [[bench]]
 name = "benchmark"
 path = "benches/main.rs"
 harness = false
 
 [dependencies.chrono]
-version = "0.4.20"
+version = "0.4.32"
 optional = true
 
 [dependencies.num-traits]
 version = "0.2.14"
 
 [dependencies.plotters-backend]
-version = "0.3.5"
+version = "0.3.6"
 
 [dependencies.plotters-bitmap]
-version = "0.3.3"
+version = "0.3.6"
 optional = true
-default_features = false
+default-features = false
 
 [dependencies.plotters-svg]
-version = "0.3.5"
+version = "0.3.6"
 optional = true
 
 [dev-dependencies.criterion]
-version = "0.4.0"
+version = "0.5.1"
 
 [dev-dependencies.itertools]
 version = "0.10.0"
@@ -137,11 +257,11 @@
     "pathfinder_geometry",
 ]
 
-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dependencies.wasm-bindgen]
-version = "0.2.62"
+[target.'cfg(all(target_arch = "wasm32", not(target_os = "wasi")))'.dependencies.wasm-bindgen]
+version = "0.2.89"
 
-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dependencies.web-sys]
-version = "0.3.51"
+[target.'cfg(all(target_arch = "wasm32", not(target_os = "wasi")))'.dependencies.web-sys]
+version = "0.3.66"
 features = [
     "Document",
     "DomRect",
@@ -153,18 +273,18 @@
     "CanvasRenderingContext2d",
 ]
 
-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dev-dependencies.wasm-bindgen-test]
-version = "0.3.24"
+[target.'cfg(all(target_arch = "wasm32", not(target_os = "wasi")))'.dev-dependencies.wasm-bindgen-test]
+version = "0.3.39"
 
-[target."cfg(not(all(target_arch = \"wasm32\", not(target_os = \"wasi\"))))".dependencies.ab_glyph]
+[target.'cfg(not(all(target_arch = "wasm32", not(target_os = "wasi"))))'.dependencies.ab_glyph]
 version = "0.2.12"
 optional = true
 
-[target."cfg(not(all(target_arch = \"wasm32\", not(target_os = \"wasi\"))))".dependencies.font-kit]
-version = "0.11.0"
+[target.'cfg(not(all(target_arch = "wasm32", not(target_os = "wasi"))))'.dependencies.font-kit]
+version = "0.14.2"
 optional = true
 
-[target."cfg(not(all(target_arch = \"wasm32\", not(target_os = \"wasi\"))))".dependencies.image]
+[target.'cfg(not(all(target_arch = "wasm32", not(target_os = "wasi"))))'.dependencies.image]
 version = "0.24.3"
 features = [
     "jpeg",
@@ -174,27 +294,36 @@
 optional = true
 default-features = false
 
-[target."cfg(not(all(target_arch = \"wasm32\", not(target_os = \"wasi\"))))".dependencies.lazy_static]
+[target.'cfg(not(all(target_arch = "wasm32", not(target_os = "wasi"))))'.dependencies.lazy_static]
 version = "1.4.0"
 optional = true
 
-[target."cfg(not(all(target_arch = \"wasm32\", not(target_os = \"wasi\"))))".dependencies.once_cell]
+[target.'cfg(not(all(target_arch = "wasm32", not(target_os = "wasi"))))'.dependencies.once_cell]
 version = "1.8.0"
 optional = true
 
-[target."cfg(not(all(target_arch = \"wasm32\", not(target_os = \"wasi\"))))".dependencies.pathfinder_geometry]
+[target.'cfg(not(all(target_arch = "wasm32", not(target_os = "wasi"))))'.dependencies.pathfinder_geometry]
 version = "0.5.1"
 optional = true
 
-[target."cfg(not(all(target_arch = \"wasm32\", not(target_os = \"wasi\"))))".dependencies.ttf-parser]
-version = "0.17.0"
+[target.'cfg(not(all(target_arch = "wasm32", not(target_os = "wasi"))))'.dependencies.ttf-parser]
+version = "0.20.0"
 optional = true
 
-[target."cfg(not(target_arch = \"wasm32\"))".dev-dependencies.rand]
+[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.rand]
 version = "0.8.3"
 
-[target."cfg(not(target_arch = \"wasm32\"))".dev-dependencies.rand_distr]
+[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.rand_distr]
 version = "0.4.0"
 
-[target."cfg(not(target_arch = \"wasm32\"))".dev-dependencies.rand_xorshift]
+[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.rand_xorshift]
 version = "0.3.0"
+
+[lints.rust.deprecated]
+level = "allow"
+priority = 0
+
+[lints.rust.unexpected_cfgs]
+level = "warn"
+priority = 0
+check-cfg = ["cfg(doc_cfg)"]
diff --git a/crates/plotters/METADATA b/crates/plotters/METADATA
index 8313ab5..4daa117 100644
--- a/crates/plotters/METADATA
+++ b/crates/plotters/METADATA
@@ -1,17 +1,17 @@
 name: "plotters"
 description: "A Rust drawing library focus on data plotting for both WASM and native applications"
 third_party {
-  version: "0.3.5"
+  version: "0.3.7"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 2
-    day: 5
+    year: 2025
+    month: 1
+    day: 14
   }
   homepage: "https://crates.io/crates/plotters"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/plotters/plotters-0.3.5.crate"
-    version: "0.3.5"
+    value: "https://static.crates.io/crates/plotters/plotters-0.3.7.crate"
+    version: "0.3.7"
   }
 }
diff --git a/crates/plotters/blub.png b/crates/plotters/blub.png
new file mode 100644
index 0000000..f65ee43
--- /dev/null
+++ b/crates/plotters/blub.png
@@ -0,0 +1,3 @@
+<svg width="800" height="600" viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
+<line opacity="1" stroke="#000000" stroke-width="0" x1="338" y1="122" x2="365" y2="122"/>
+</svg>
diff --git a/crates/plotters/clippy.toml b/crates/plotters/clippy.toml
deleted file mode 100644
index 1785200..0000000
--- a/crates/plotters/clippy.toml
+++ /dev/null
@@ -1 +0,0 @@
-msrv = "1.56"
\ No newline at end of file
diff --git a/crates/plotters/examples/3d-plot.rs b/crates/plotters/examples/3d-plot.rs
index af40cc2..7bfc6c3 100644
--- a/crates/plotters/examples/3d-plot.rs
+++ b/crates/plotters/examples/3d-plot.rs
@@ -1,5 +1,5 @@
 use plotters::prelude::*;
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/3d-plot.svg";
+const OUT_FILE_NAME: &str = "plotters-doc-data/3d-plot.svg";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let area = SVGBackend::new(OUT_FILE_NAME, (1024, 760)).into_drawing_area();
 
@@ -9,7 +9,7 @@
     let z_axis = (-3.0..3.0).step(0.1);
 
     let mut chart = ChartBuilder::on(&area)
-        .caption(format!("3D Plot Test"), ("sans", 20))
+        .caption("3D Plot Test", ("sans", 20))
         .build_cartesian_3d(x_axis.clone(), -3.0..3.0, z_axis.clone())?;
 
     chart.with_projection(|mut pb| {
@@ -44,12 +44,9 @@
             &BLACK,
         ))?
         .label("Line")
-        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &BLACK));
+        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], BLACK));
 
-    chart
-        .configure_series_labels()
-        .border_style(&BLACK)
-        .draw()?;
+    chart.configure_series_labels().border_style(BLACK).draw()?;
 
     // To avoid the IO failure being ignored silently, we manually call the present function
     area.present().expect("Unable to write result to file, please make sure 'plotters-doc-data' dir exists under current dir");
diff --git a/crates/plotters/examples/3d-plot2.rs b/crates/plotters/examples/3d-plot2.rs
index b7138f2..d8feeb9 100644
--- a/crates/plotters/examples/3d-plot2.rs
+++ b/crates/plotters/examples/3d-plot2.rs
@@ -3,12 +3,12 @@
     const SDX: f64 = 0.1;
     const SDY: f64 = 0.1;
     const A: f64 = 5.0;
-    let x = x as f64 / 10.0;
-    let y = y as f64 / 10.0;
+    let x = x / 10.0;
+    let y = y / 10.0;
     A * (-x * x / 2.0 / SDX / SDX - y * y / 2.0 / SDY / SDY).exp()
 }
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/3d-plot2.gif";
+const OUT_FILE_NAME: &str = "plotters-doc-data/3d-plot2.gif";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::gif(OUT_FILE_NAME, (600, 400), 100)?.into_drawing_area();
 
diff --git a/crates/plotters/examples/README.md b/crates/plotters/examples/README.md
index b6dd166..3149df7 100644
--- a/crates/plotters/examples/README.md
+++ b/crates/plotters/examples/README.md
@@ -4,7 +4,7 @@
 
 To run any example, from within the repo, run `cargo run --example <example_name>` where `<example name>` is the name of the file without the `.rs` extension.
 
-All the examples assumes the directory [plotters-doc-data](https://github.com/38/plotters-doc-data) exists, otherwise those example crashs.
+All the examples assumes the directory [plotters-doc-data](https://github.com/38/plotters-doc-data) exists, otherwise those example crashes.
 
 The output of these example files are used to generate the [plotters-doc-data](https://github.com/38/plotters-doc-data) repo that populates the sample images in the main README.
 We also rely on the output of examples to detect potential layout changes.
diff --git a/crates/plotters/examples/animation.rs b/crates/plotters/examples/animation.rs
index dab7d45..b93cb81 100644
--- a/crates/plotters/examples/animation.rs
+++ b/crates/plotters/examples/animation.rs
@@ -17,7 +17,7 @@
     ret
 }
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/animation.gif";
+const OUT_FILE_NAME: &str = "plotters-doc-data/animation.gif";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::gif(OUT_FILE_NAME, (800, 600), 1_000)?.into_drawing_area();
 
@@ -45,11 +45,11 @@
 
         chart.draw_series(std::iter::once(Polygon::new(
             snowflake_vertices.clone(),
-            &RED.mix(0.2),
+            RED.mix(0.2),
         )))?;
 
         snowflake_vertices.push(snowflake_vertices[0]);
-        chart.draw_series(std::iter::once(PathElement::new(snowflake_vertices, &RED)))?;
+        chart.draw_series(std::iter::once(PathElement::new(snowflake_vertices, RED)))?;
 
         root.present()?;
     }
diff --git a/crates/plotters/examples/area-chart.rs b/crates/plotters/examples/area-chart.rs
index 5b1a7a5..c6d78df 100644
--- a/crates/plotters/examples/area-chart.rs
+++ b/crates/plotters/examples/area-chart.rs
@@ -4,7 +4,7 @@
 use rand_distr::{Distribution, Normal};
 use rand_xorshift::XorShiftRng;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/area-chart.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/area-chart.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let data: Vec<_> = {
         let norm_dist = Normal::new(500.0, 100.0).unwrap();
@@ -38,9 +38,9 @@
         AreaSeries::new(
             (0..).zip(data.iter()).map(|(x, y)| (x, *y)),
             0.0,
-            &RED.mix(0.2),
+            RED.mix(0.2),
         )
-        .border_style(&RED),
+        .border_style(RED),
     )?;
 
     // To avoid the IO failure being ignored silently, we manually call the present function
diff --git a/crates/plotters/examples/blit-bitmap.rs b/crates/plotters/examples/blit-bitmap.rs
index 990b256..bcdcd17 100644
--- a/crates/plotters/examples/blit-bitmap.rs
+++ b/crates/plotters/examples/blit-bitmap.rs
@@ -5,7 +5,7 @@
 use std::fs::File;
 use std::io::BufReader;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/blit-bitmap.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/blit-bitmap.png";
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
diff --git a/crates/plotters/examples/boxplot.rs b/crates/plotters/examples/boxplot.rs
index 6e46db4..7acda7a 100644
--- a/crates/plotters/examples/boxplot.rs
+++ b/crates/plotters/examples/boxplot.rs
@@ -21,7 +21,7 @@
     ds
 }
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/boxplot.svg";
+const OUT_FILE_NAME: &str = "plotters-doc-data/boxplot.svg";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = SVGBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
     root.fill(&WHITE)?;
@@ -40,7 +40,7 @@
     };
     let dataset: Vec<(String, String, Quartiles)> = ds
         .iter()
-        .map(|(k, v)| (k.0.clone(), k.1.clone(), Quartiles::new(&v)))
+        .map(|(k, v)| (k.0.clone(), k.1.clone(), Quartiles::new(v)))
         .collect();
 
     let host_list: Vec<_> = dataset
@@ -60,11 +60,7 @@
         entry.0.push((x.0.clone(), &x.2));
     }
 
-    let values: Vec<f32> = dataset
-        .iter()
-        .map(|x| x.2.values().to_vec())
-        .flatten()
-        .collect();
+    let values: Vec<f32> = dataset.iter().flat_map(|x| x.2.values().to_vec()).collect();
     let values_range = fitting_range(values.iter());
 
     let mut chart = ChartBuilder::on(&upper)
@@ -81,13 +77,13 @@
         .x_desc("Ping, ms")
         .y_desc("Host")
         .y_labels(host_list.len())
-        .light_line_style(&WHITE)
+        .light_line_style(WHITE)
         .draw()?;
 
     for (label, (values, style, offset)) in &series {
         chart
             .draw_series(values.iter().map(|x| {
-                Boxplot::new_horizontal(SegmentValue::CenterOf(&x.0), &x.1)
+                Boxplot::new_horizontal(SegmentValue::CenterOf(&x.0), x.1)
                     .width(20)
                     .whisker_width(0.5)
                     .style(style)
@@ -100,7 +96,7 @@
         .configure_series_labels()
         .position(SeriesLabelPosition::UpperRight)
         .background_style(WHITE.filled())
-        .border_style(&BLACK.mix(0.5))
+        .border_style(BLACK.mix(0.5))
         .legend_area_size(22)
         .draw()?;
 
@@ -120,7 +116,7 @@
             .iter()
             .chain(quartiles_b.values().iter()),
     );
-    let mut chart = ChartBuilder::on(&left)
+    let mut chart = ChartBuilder::on(left)
         .x_label_area_size(40)
         .y_label_area_size(40)
         .caption("Vertical Boxplot", ("sans-serif", 20))
@@ -129,19 +125,19 @@
             values_range.start - 10.0..values_range.end + 10.0,
         )?;
 
-    chart.configure_mesh().light_line_style(&WHITE).draw()?;
+    chart.configure_mesh().light_line_style(WHITE).draw()?;
     chart.draw_series(vec![
         Boxplot::new_vertical(SegmentValue::CenterOf(&"a"), &quartiles_a),
         Boxplot::new_vertical(SegmentValue::CenterOf(&"b"), &quartiles_b),
     ])?;
 
-    let mut chart = ChartBuilder::on(&right)
+    let mut chart = ChartBuilder::on(right)
         .x_label_area_size(40)
         .y_label_area_size(40)
         .caption("Horizontal Boxplot", ("sans-serif", 20))
         .build_cartesian_2d(-30f32..90f32, 0..3)?;
 
-    chart.configure_mesh().light_line_style(&WHITE).draw()?;
+    chart.configure_mesh().light_line_style(WHITE).draw()?;
     chart.draw_series(vec![
         Boxplot::new_horizontal(1, &quartiles_a),
         Boxplot::new_horizontal(2, &Quartiles::new(&[30])),
diff --git a/crates/plotters/examples/chart.rs b/crates/plotters/examples/chart.rs
index acdddc3..e121041 100644
--- a/crates/plotters/examples/chart.rs
+++ b/crates/plotters/examples/chart.rs
@@ -1,6 +1,6 @@
 use plotters::prelude::*;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/sample.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/sample.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root_area = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
 
@@ -28,16 +28,16 @@
 
     cc.draw_series(LineSeries::new(x_axis.values().map(|x| (x, x.sin())), &RED))?
         .label("Sine")
-        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &RED));
+        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], RED));
 
     cc.draw_series(LineSeries::new(
         x_axis.values().map(|x| (x, x.cos())),
         &BLUE,
     ))?
     .label("Cosine")
-    .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &BLUE));
+    .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], BLUE));
 
-    cc.configure_series_labels().border_style(&BLACK).draw()?;
+    cc.configure_series_labels().border_style(BLACK).draw()?;
 
     /*
     // It's possible to use a existing pointing element
@@ -62,7 +62,7 @@
     let drawing_areas = lower.split_evenly((1, 2));
 
     for (drawing_area, idx) in drawing_areas.iter().zip(1..) {
-        let mut cc = ChartBuilder::on(&drawing_area)
+        let mut cc = ChartBuilder::on(drawing_area)
             .x_label_area_size(30)
             .y_label_area_size(30)
             .margin_right(20)
diff --git a/crates/plotters/examples/colormaps.rs b/crates/plotters/examples/colormaps.rs
index 4c8cc4d..3749e43 100644
--- a/crates/plotters/examples/colormaps.rs
+++ b/crates/plotters/examples/colormaps.rs
@@ -1,6 +1,6 @@
 use plotters::prelude::*;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/colormaps.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/colormaps.png";
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let colormaps_rgb: [(Box<dyn ColorMap<RGBColor>>, &str); 4] = [
diff --git a/crates/plotters/examples/console.rs b/crates/plotters/examples/console.rs
index feba095..814fb5f 100644
--- a/crates/plotters/examples/console.rs
+++ b/crates/plotters/examples/console.rs
@@ -183,7 +183,7 @@
     Ok(())
 }
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/console-example.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/console-example.png";
 fn main() -> Result<(), Box<dyn Error>> {
     draw_chart(TextDrawingBackend(vec![PixelState::Empty; 5000]).into_drawing_area())?;
     let b = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
diff --git a/crates/plotters/examples/customized_coord.rs b/crates/plotters/examples/customized_coord.rs
index cb3a18f..760373b 100644
--- a/crates/plotters/examples/customized_coord.rs
+++ b/crates/plotters/examples/customized_coord.rs
@@ -2,7 +2,7 @@
     coord::ranged1d::{KeyPointHint, NoDefaultFormatting, ValueFormatter},
     prelude::*,
 };
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/customized_coord.svg";
+const OUT_FILE_NAME: &str = "plotters-doc-data/customized_coord.svg";
 
 struct CustomizedX(u32);
 
diff --git a/crates/plotters/examples/errorbar.rs b/crates/plotters/examples/errorbar.rs
index 75c5dbe..364ea89 100644
--- a/crates/plotters/examples/errorbar.rs
+++ b/crates/plotters/examples/errorbar.rs
@@ -8,7 +8,7 @@
 
 use num_traits::sign::Signed;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/errorbar.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/errorbar.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let data = generate_random_data();
     let down_sampled = down_sample(&data[..]);
@@ -29,7 +29,7 @@
     chart
         .draw_series(LineSeries::new(data, &GREEN.mix(0.3)))?
         .label("Raw Data")
-        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &GREEN));
+        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], GREEN));
 
     chart.draw_series(LineSeries::new(
         down_sampled.iter().map(|(x, _, y, _)| (*x, *y)),
@@ -43,7 +43,7 @@
             }),
         )?
         .label("Down-sampled")
-        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &BLUE));
+        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], BLUE));
 
     chart
         .configure_series_labels()
diff --git a/crates/plotters/examples/full_palette.rs b/crates/plotters/examples/full_palette.rs
index dbd0d42..b63ea73 100644
--- a/crates/plotters/examples/full_palette.rs
+++ b/crates/plotters/examples/full_palette.rs
@@ -1,6 +1,6 @@
 use plotters::prelude::*;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/full_palette.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/full_palette.png";
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (2000, 850)).into_drawing_area();
diff --git a/crates/plotters/examples/histogram.rs b/crates/plotters/examples/histogram.rs
index 5cda05d..a56ce02 100644
--- a/crates/plotters/examples/histogram.rs
+++ b/crates/plotters/examples/histogram.rs
@@ -1,5 +1,5 @@
 use plotters::prelude::*;
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/histogram.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/histogram.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (640, 480)).into_drawing_area();
 
@@ -15,7 +15,7 @@
     chart
         .configure_mesh()
         .disable_x_mesh()
-        .bold_line_style(&WHITE.mix(0.3))
+        .bold_line_style(WHITE.mix(0.3))
         .y_desc("Count")
         .x_desc("Bucket")
         .axis_desc_style(("sans-serif", 15))
diff --git a/crates/plotters/examples/mandelbrot.rs b/crates/plotters/examples/mandelbrot.rs
index b0d5799..a03ae1c 100644
--- a/crates/plotters/examples/mandelbrot.rs
+++ b/crates/plotters/examples/mandelbrot.rs
@@ -1,7 +1,7 @@
 use plotters::prelude::*;
 use std::ops::Range;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/mandelbrot.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/mandelbrot.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (800, 600)).into_drawing_area();
 
@@ -51,7 +51,7 @@
         (real.end - real.start) / samples.0 as f64,
         (complex.end - complex.start) / samples.1 as f64,
     );
-    return (0..(samples.0 * samples.1)).map(move |k| {
+    (0..(samples.0 * samples.1)).map(move |k| {
         let c = (
             real.start + step.0 * (k % samples.0) as f64,
             complex.start + step.1 * (k / samples.0) as f64,
@@ -62,8 +62,8 @@
             z = (z.0 * z.0 - z.1 * z.1 + c.0, 2.0 * z.0 * z.1 + c.1);
             cnt += 1;
         }
-        return (c.0, c.1, cnt);
-    });
+        (c.0, c.1, cnt)
+    })
 }
 #[test]
 fn entry_point() {
diff --git a/crates/plotters/examples/matshow.rs b/crates/plotters/examples/matshow.rs
index 30c71a7..09ce561 100644
--- a/crates/plotters/examples/matshow.rs
+++ b/crates/plotters/examples/matshow.rs
@@ -1,6 +1,6 @@
 use plotters::prelude::*;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/matshow.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/matshow.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
 
@@ -11,7 +11,7 @@
         .margin(5)
         .top_x_label_area_size(40)
         .y_label_area_size(40)
-        .build_cartesian_2d(0i32..15i32, 15i32..0i32)?;
+        .build_cartesian_2d(0i32..15i32, 0i32..15i32)?;
 
     chart
         .configure_mesh()
@@ -35,8 +35,7 @@
         matrix
             .iter()
             .zip(0..)
-            .map(|(l, y)| l.iter().zip(0..).map(move |(v, x)| (x as i32, y as i32, v)))
-            .flatten()
+            .flat_map(|(l, y)| l.iter().zip(0..).map(move |(v, x)| (x, y, v)))
             .map(|(x, y, v)| {
                 Rectangle::new(
                     [(x, y), (x + 1, y + 1)],
diff --git a/crates/plotters/examples/nested_coord.rs b/crates/plotters/examples/nested_coord.rs
index b700101..a3418fa 100644
--- a/crates/plotters/examples/nested_coord.rs
+++ b/crates/plotters/examples/nested_coord.rs
@@ -1,5 +1,5 @@
 use plotters::prelude::*;
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/nested_coord.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/nested_coord.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (640, 480)).into_drawing_area();
 
diff --git a/crates/plotters/examples/normal-dist.rs b/crates/plotters/examples/normal-dist.rs
index be48786..e6cfdcd 100644
--- a/crates/plotters/examples/normal-dist.rs
+++ b/crates/plotters/examples/normal-dist.rs
@@ -4,7 +4,7 @@
 use rand_distr::{Distribution, Normal};
 use rand_xorshift::XorShiftRng;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/normal-dist.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/normal-dist.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
 
diff --git a/crates/plotters/examples/normal-dist2.rs b/crates/plotters/examples/normal-dist2.rs
index 6c84ab3..f996312 100644
--- a/crates/plotters/examples/normal-dist2.rs
+++ b/crates/plotters/examples/normal-dist2.rs
@@ -6,7 +6,7 @@
 
 use num_traits::sign::Signed;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/normal-dist2.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/normal-dist2.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let sd = 0.60;
 
diff --git a/crates/plotters/examples/pie.rs b/crates/plotters/examples/pie.rs
index a950c02..7226e5a 100644
--- a/crates/plotters/examples/pie.rs
+++ b/crates/plotters/examples/pie.rs
@@ -1,6 +1,6 @@
 use plotters::{prelude::*, style::full_palette::ORANGE};
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/pie-chart.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/pie-chart.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root_area = BitMapBackend::new(&OUT_FILE_NAME, (950, 700)).into_drawing_area();
     root_area.fill(&WHITE).unwrap();
diff --git a/crates/plotters/examples/relative_size.rs b/crates/plotters/examples/relative_size.rs
index 66eaec1..e66bfee 100644
--- a/crates/plotters/examples/relative_size.rs
+++ b/crates/plotters/examples/relative_size.rs
@@ -28,7 +28,7 @@
     Ok(())
 }
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/relative_size.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/relative_size.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
 
diff --git a/crates/plotters/examples/sierpinski.rs b/crates/plotters/examples/sierpinski.rs
index b9655bf..773d1b2 100644
--- a/crates/plotters/examples/sierpinski.rs
+++ b/crates/plotters/examples/sierpinski.rs
@@ -19,7 +19,7 @@
     Ok(())
 }
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/sierpinski.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/sierpinski.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
 
diff --git a/crates/plotters/examples/slc-temp.rs b/crates/plotters/examples/slc-temp.rs
index 9d6e473..a774995 100644
--- a/crates/plotters/examples/slc-temp.rs
+++ b/crates/plotters/examples/slc-temp.rs
@@ -4,7 +4,7 @@
 
 use std::error::Error;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/slc-temp.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/slc-temp.png";
 fn main() -> Result<(), Box<dyn Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
 
diff --git a/crates/plotters/examples/snowflake.rs b/crates/plotters/examples/snowflake.rs
index 6e52f25..f64a0d6 100644
--- a/crates/plotters/examples/snowflake.rs
+++ b/crates/plotters/examples/snowflake.rs
@@ -17,7 +17,7 @@
     ret
 }
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/snowflake.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/snowflake.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
 
@@ -41,10 +41,10 @@
 
     chart.draw_series(std::iter::once(Polygon::new(
         snowflake_vertices.clone(),
-        &RED.mix(0.2),
+        RED.mix(0.2),
     )))?;
     snowflake_vertices.push(snowflake_vertices[0]);
-    chart.draw_series(std::iter::once(PathElement::new(snowflake_vertices, &RED)))?;
+    chart.draw_series(std::iter::once(PathElement::new(snowflake_vertices, RED)))?;
 
     // To avoid the IO failure being ignored silently, we manually call the present function
     root.present().expect("Unable to write result to file, please make sure 'plotters-doc-data' dir exists under current dir");
diff --git a/crates/plotters/examples/stock.rs b/crates/plotters/examples/stock.rs
index 8e9416f..65defad 100644
--- a/crates/plotters/examples/stock.rs
+++ b/crates/plotters/examples/stock.rs
@@ -7,15 +7,15 @@
         .unwrap()
         .date()
 }
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/stock.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/stock.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let data = get_data();
     let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
     root.fill(&WHITE)?;
 
     let (to_date, from_date) = (
-        parse_time(&data[0].0) + Duration::days(1),
-        parse_time(&data[29].0) - Duration::days(1),
+        parse_time(data[0].0) + Duration::days(1),
+        parse_time(data[29].0) - Duration::days(1),
     );
 
     let mut chart = ChartBuilder::on(&root)
@@ -24,7 +24,7 @@
         .caption("MSFT Stock Price", ("sans-serif", 50.0).into_font())
         .build_cartesian_2d(from_date..to_date, 110f32..135f32)?;
 
-    chart.configure_mesh().light_line_style(&WHITE).draw()?;
+    chart.configure_mesh().light_line_style(WHITE).draw()?;
 
     chart.draw_series(
         data.iter().map(|x| {
@@ -40,38 +40,38 @@
 }
 
 fn get_data() -> Vec<(&'static str, f32, f32, f32, f32)> {
-    return vec![
-        ("2019-04-25", 130.0600, 131.3700, 128.8300, 129.1500),
-        ("2019-04-24", 125.7900, 125.8500, 124.5200, 125.0100),
-        ("2019-04-23", 124.1000, 125.5800, 123.8300, 125.4400),
-        ("2019-04-22", 122.6200, 124.0000, 122.5700, 123.7600),
-        ("2019-04-18", 122.1900, 123.5200, 121.3018, 123.3700),
-        ("2019-04-17", 121.2400, 121.8500, 120.5400, 121.7700),
-        ("2019-04-16", 121.6400, 121.6500, 120.1000, 120.7700),
-        ("2019-04-15", 120.9400, 121.5800, 120.5700, 121.0500),
-        ("2019-04-12", 120.6400, 120.9800, 120.3700, 120.9500),
-        ("2019-04-11", 120.5400, 120.8500, 119.9200, 120.3300),
-        ("2019-04-10", 119.7600, 120.3500, 119.5400, 120.1900),
-        ("2019-04-09", 118.6300, 119.5400, 118.5800, 119.2800),
-        ("2019-04-08", 119.8100, 120.0200, 118.6400, 119.9300),
-        ("2019-04-05", 119.3900, 120.2300, 119.3700, 119.8900),
-        ("2019-04-04", 120.1000, 120.2300, 118.3800, 119.3600),
-        ("2019-04-03", 119.8600, 120.4300, 119.1500, 119.9700),
-        ("2019-04-02", 119.0600, 119.4800, 118.5200, 119.1900),
-        ("2019-04-01", 118.9500, 119.1085, 118.1000, 119.0200),
-        ("2019-03-29", 118.0700, 118.3200, 116.9600, 117.9400),
-        ("2019-03-28", 117.4400, 117.5800, 116.1300, 116.9300),
-        ("2019-03-27", 117.8750, 118.2100, 115.5215, 116.7700),
-        ("2019-03-26", 118.6200, 118.7050, 116.8500, 117.9100),
-        ("2019-03-25", 116.5600, 118.0100, 116.3224, 117.6600),
-        ("2019-03-22", 119.5000, 119.5900, 117.0400, 117.0500),
-        ("2019-03-21", 117.1350, 120.8200, 117.0900, 120.2200),
-        ("2019-03-20", 117.3900, 118.7500, 116.7100, 117.5200),
-        ("2019-03-19", 118.0900, 118.4400, 116.9900, 117.6500),
-        ("2019-03-18", 116.1700, 117.6100, 116.0500, 117.5700),
-        ("2019-03-15", 115.3400, 117.2500, 114.5900, 115.9100),
-        ("2019-03-14", 114.5400, 115.2000, 114.3300, 114.5900),
-    ];
+    vec![
+        ("2019-04-25", 130.06, 131.37, 128.83, 129.15),
+        ("2019-04-24", 125.79, 125.85, 124.52, 125.01),
+        ("2019-04-23", 124.1, 125.58, 123.83, 125.44),
+        ("2019-04-22", 122.62, 124.0000, 122.57, 123.76),
+        ("2019-04-18", 122.19, 123.52, 121.3018, 123.37),
+        ("2019-04-17", 121.24, 121.85, 120.54, 121.77),
+        ("2019-04-16", 121.64, 121.65, 120.1, 120.77),
+        ("2019-04-15", 120.94, 121.58, 120.57, 121.05),
+        ("2019-04-12", 120.64, 120.98, 120.37, 120.95),
+        ("2019-04-11", 120.54, 120.85, 119.92, 120.33),
+        ("2019-04-10", 119.76, 120.35, 119.54, 120.19),
+        ("2019-04-09", 118.63, 119.54, 118.58, 119.28),
+        ("2019-04-08", 119.81, 120.02, 118.64, 119.93),
+        ("2019-04-05", 119.39, 120.23, 119.37, 119.89),
+        ("2019-04-04", 120.1, 120.23, 118.38, 119.36),
+        ("2019-04-03", 119.86, 120.43, 119.15, 119.97),
+        ("2019-04-02", 119.06, 119.48, 118.52, 119.19),
+        ("2019-04-01", 118.95, 119.1085, 118.1, 119.02),
+        ("2019-03-29", 118.07, 118.32, 116.96, 117.94),
+        ("2019-03-28", 117.44, 117.58, 116.13, 116.93),
+        ("2019-03-27", 117.875, 118.21, 115.5215, 116.77),
+        ("2019-03-26", 118.62, 118.705, 116.85, 117.91),
+        ("2019-03-25", 116.56, 118.01, 116.3224, 117.66),
+        ("2019-03-22", 119.5, 119.59, 117.04, 117.05),
+        ("2019-03-21", 117.135, 120.82, 117.09, 120.22),
+        ("2019-03-20", 117.39, 118.75, 116.71, 117.52),
+        ("2019-03-19", 118.09, 118.44, 116.99, 117.65),
+        ("2019-03-18", 116.17, 117.61, 116.05, 117.57),
+        ("2019-03-15", 115.34, 117.25, 114.59, 115.91),
+        ("2019-03-14", 114.54, 115.2, 114.33, 114.59),
+    ]
 }
 #[test]
 fn entry_point() {
diff --git a/crates/plotters/examples/tick_control.rs b/crates/plotters/examples/tick_control.rs
index b34fc88c..2f4ea34 100644
--- a/crates/plotters/examples/tick_control.rs
+++ b/crates/plotters/examples/tick_control.rs
@@ -16,7 +16,7 @@
     data: Vec<DailyData>,
 }
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/tick_control.svg";
+const OUT_FILE_NAME: &str = "plotters-doc-data/tick_control.svg";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = SVGBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
     root.fill(&WHITE)?;
@@ -72,10 +72,7 @@
             .legend(move |(x, y)| Rectangle::new([(x, y - 5), (x + 10, y + 5)], color.filled()));
     }
 
-    chart
-        .configure_series_labels()
-        .border_style(&BLACK)
-        .draw()?;
+    chart.configure_series_labels().border_style(BLACK).draw()?;
 
     // To avoid the IO failure being ignored silently, we manually call the present function
     root.present().expect("Unable to write result to file, please make sure 'plotters-doc-data' dir exists under current dir");
diff --git a/crates/plotters/examples/two-scales.rs b/crates/plotters/examples/two-scales.rs
index 6e1dfa4..e50410f 100644
--- a/crates/plotters/examples/two-scales.rs
+++ b/crates/plotters/examples/two-scales.rs
@@ -1,6 +1,6 @@
 use plotters::prelude::*;
 
-const OUT_FILE_NAME: &'static str = "plotters-doc-data/twoscale.png";
+const OUT_FILE_NAME: &str = "plotters-doc-data/twoscale.png";
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
     root.fill(&WHITE)?;
@@ -33,7 +33,7 @@
             &BLUE,
         ))?
         .label("y = 1.02^x^2")
-        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &BLUE));
+        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], BLUE));
 
     chart
         .draw_secondary_series(LineSeries::new(
@@ -41,11 +41,11 @@
             &RED,
         ))?
         .label("y = sin(2x)")
-        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &RED));
+        .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], RED));
 
     chart
         .configure_series_labels()
-        .background_style(&RGBColor(128, 128, 128))
+        .background_style(RGBColor(128, 128, 128))
         .draw()?;
 
     // To avoid the IO failure being ignored silently, we manually call the present function
diff --git a/crates/plotters/src/chart/axes3d.rs b/crates/plotters/src/chart/axes3d.rs
index 33d7de3..9431715 100644
--- a/crates/plotters/src/chart/axes3d.rs
+++ b/crates/plotters/src/chart/axes3d.rs
@@ -221,10 +221,10 @@
             tick_size,
             light_lines_limit: [10, 10, 10],
             n_labels: [10, 10, 10],
-            bold_line_style: Into::<ShapeStyle>::into(&BLACK.mix(0.2)),
-            light_line_style: Into::<ShapeStyle>::into(&TRANSPARENT),
-            axis_panel_style: Into::<ShapeStyle>::into(&BLACK.mix(0.1)),
-            axis_style: Into::<ShapeStyle>::into(&BLACK.mix(0.8)),
+            bold_line_style: Into::<ShapeStyle>::into(BLACK.mix(0.2)),
+            light_line_style: Into::<ShapeStyle>::into(TRANSPARENT),
+            axis_panel_style: Into::<ShapeStyle>::into(BLACK.mix(0.1)),
+            axis_style: Into::<ShapeStyle>::into(BLACK.mix(0.8)),
             label_style: ("sans-serif", (12).percent().max(12).in_pixels(&parent_size)).into(),
             format_x: &X::format,
             format_y: &Y::format,
diff --git a/crates/plotters/src/chart/builder.rs b/crates/plotters/src/chart/builder.rs
index cf804c6..41a4309 100644
--- a/crates/plotters/src/chart/builder.rs
+++ b/crates/plotters/src/chart/builder.rs
@@ -194,7 +194,7 @@
     Sets the size of the X label area at the bottom of the chart.
 
     - `size`: The desired size of the X label area in backend units (pixels).
-    If set to 0, the X label area is removed.
+      If set to 0, the X label area is removed.
 
     See [`ChartBuilder::on()`] for more information and examples.
     */
@@ -206,7 +206,7 @@
     Sets the size of the Y label area to the left of the chart.
 
     - `size`: The desired size of the Y label area in backend units (pixels).
-    If set to 0, the Y label area is removed.
+      If set to 0, the Y label area is removed.
 
     See [`ChartBuilder::on()`] for more information and examples.
     */
@@ -218,7 +218,7 @@
     Sets the size of the X label area at the top of the chart.
 
     - `size`: The desired size of the top X label area in backend units (pixels).
-    If set to 0, the top X label area is removed.
+      If set to 0, the top X label area is removed.
 
     See [`ChartBuilder::on()`] for more information and examples.
     */
@@ -230,7 +230,7 @@
     Sets the size of the Y label area to the right of the chart.
 
     - `size`: The desired size of the Y label area in backend units (pixels).
-    If set to 0, the Y label area to the right is removed.
+      If set to 0, the Y label area to the right is removed.
 
     See [`ChartBuilder::on()`] for more information and examples.
     */
@@ -243,7 +243,7 @@
 
     - `pos`: The position of the desired label area to adjust
     - `size`: The desired size of the label area in backend units (pixels).
-    If set to 0, the label area is removed.
+      If set to 0, the label area is removed.
 
     See [`ChartBuilder::on()`] for more information and examples.
     */
@@ -285,12 +285,12 @@
     #[deprecated(
         note = "`build_ranged` has been renamed to `build_cartesian_2d` and is to be removed in the future."
     )]
-    pub fn build_ranged<X: AsRangedCoord, Y: AsRangedCoord>(
+    pub fn build_ranged<'c, X: AsRangedCoord, Y: AsRangedCoord>(
         &mut self,
         x_spec: X,
         y_spec: Y,
     ) -> Result<
-        ChartContext<'a, DB, Cartesian2d<X::CoordDescType, Y::CoordDescType>>,
+        ChartContext<'c, DB, Cartesian2d<X::CoordDescType, Y::CoordDescType>>,
         DrawingAreaErrorKind<DB::ErrorType>,
     > {
         self.build_cartesian_2d(x_spec, y_spec)
@@ -306,12 +306,12 @@
     See [`ChartBuilder::on()`] and [`ChartContext::configure_mesh()`] for more information and examples.
     */
     #[allow(clippy::type_complexity)]
-    pub fn build_cartesian_2d<X: AsRangedCoord, Y: AsRangedCoord>(
+    pub fn build_cartesian_2d<'c, X: AsRangedCoord, Y: AsRangedCoord>(
         &mut self,
         x_spec: X,
         y_spec: Y,
     ) -> Result<
-        ChartContext<'a, DB, Cartesian2d<X::CoordDescType, Y::CoordDescType>>,
+        ChartContext<'c, DB, Cartesian2d<X::CoordDescType, Y::CoordDescType>>,
         DrawingAreaErrorKind<DB::ErrorType>,
     > {
         let mut label_areas = [None, None, None, None];
@@ -450,13 +450,13 @@
     See [`ChartBuilder::on()`] and [`ChartContext::configure_axes()`] for more information and examples.
     */
     #[allow(clippy::type_complexity)]
-    pub fn build_cartesian_3d<X: AsRangedCoord, Y: AsRangedCoord, Z: AsRangedCoord>(
+    pub fn build_cartesian_3d<'c, X: AsRangedCoord, Y: AsRangedCoord, Z: AsRangedCoord>(
         &mut self,
         x_spec: X,
         y_spec: Y,
         z_spec: Z,
     ) -> Result<
-        ChartContext<'a, DB, Cartesian3d<X::CoordDescType, Y::CoordDescType, Z::CoordDescType>>,
+        ChartContext<'c, DB, Cartesian3d<X::CoordDescType, Y::CoordDescType, Z::CoordDescType>>,
         DrawingAreaErrorKind<DB::ErrorType>,
     > {
         let mut drawing_area = DrawingArea::clone(self.root_area);
@@ -565,4 +565,27 @@
         chart.caption("This is a test case", ("serif", 10));
         assert_eq!(chart.title.as_ref().unwrap().1.font.get_name(), "serif");
     }
+
+    #[test]
+    fn test_zero_limit_with_log_scale() {
+        let drawing_area = create_mocked_drawing_area(640, 480, |_| {});
+
+        let mut chart = ChartBuilder::on(&drawing_area)
+            .build_cartesian_2d(0f32..10f32, (1e-6f32..1f32).log_scale())
+            .unwrap();
+
+        let data = vec![
+            (2f32, 1e-4f32),
+            (4f32, 1e-3f32),
+            (6f32, 1e-2f32),
+            (8f32, 1e-1f32),
+        ];
+
+        chart
+            .draw_series(
+                data.iter()
+                    .map(|&(x, y)| Rectangle::new([(x - 0.5, 0.0), (x + 0.5, y)], RED.filled())),
+            )
+            .unwrap();
+    }
 }
diff --git a/crates/plotters/src/chart/context.rs b/crates/plotters/src/chart/context.rs
index ef91af1..c63ee3b 100644
--- a/crates/plotters/src/chart/context.rs
+++ b/crates/plotters/src/chart/context.rs
@@ -171,13 +171,13 @@
         let mut chart = cs.clone().restore(&drawing_area);
 
         chart
-            .draw_series(std::iter::once(Circle::new((5, 5), 5, &RED)))
+            .draw_series(std::iter::once(Circle::new((5, 5), 5, RED)))
             .expect("Drawing error");
         chart
-            .draw_secondary_series(std::iter::once(Circle::new((0.3, 0.8), 5, &GREEN)))
+            .draw_secondary_series(std::iter::once(Circle::new((0.3, 0.8), 5, GREEN)))
             .expect("Drawing error")
             .label("Test label")
-            .legend(|(x, y)| Rectangle::new([(x - 10, y - 5), (x, y + 5)], &GREEN));
+            .legend(|(x, y)| Rectangle::new([(x - 10, y - 5), (x, y + 5)], GREEN));
 
         chart
             .configure_series_labels()
@@ -215,7 +215,7 @@
         let mut chart = cs.clone().restore(&drawing_area);
 
         chart
-            .draw_series(std::iter::once(Circle::new((5, 5, 5), 5, &RED)))
+            .draw_series(std::iter::once(Circle::new((5, 5, 5), 5, RED)))
             .expect("Drawing error");
     }
 }
diff --git a/crates/plotters/src/chart/context/cartesian3d/mod.rs b/crates/plotters/src/chart/context/cartesian3d/mod.rs
index ff28adf..43d74f3 100644
--- a/crates/plotters/src/chart/context/cartesian3d/mod.rs
+++ b/crates/plotters/src/chart/context/cartesian3d/mod.rs
@@ -106,9 +106,9 @@
     /// Override the 3D projection matrix. This function allows to override the default projection
     /// matrix.
     /// - `pf`: A function that takes the default projection matrix configuration and returns the
-    /// projection matrix. This function will allow you to adjust the pitch, yaw angle and the
-    /// centeral point of the projection, etc. You can also build a projection matrix which is not
-    /// relies on the default configuration as well.
+    ///   projection matrix. This function will allow you to adjust the pitch, yaw angle and the
+    ///   centeral point of the projection, etc. You can also build a projection matrix which is not
+    ///   relies on the default configuration as well.
     pub fn with_projection<P: FnOnce(ProjectionMatrixBuilder) -> ProjectionMatrix>(
         &mut self,
         pf: P,
diff --git a/crates/plotters/src/chart/dual_coord.rs b/crates/plotters/src/chart/dual_coord.rs
index 434e347..048bea0 100644
--- a/crates/plotters/src/chart/dual_coord.rs
+++ b/crates/plotters/src/chart/dual_coord.rs
@@ -17,7 +17,7 @@
 use plotters_backend::{BackendCoord, DrawingBackend};
 
 /// The chart context that has two coordinate system attached.
-/// This situation is quite common, for example, we with two different coodinate system.
+/// This situation is quite common, for example, we with two different coordinate system.
 /// For instance this example <img src="https://plotters-rs.github.io/plotters-doc-data/twoscale.png"></img>
 /// This is done by attaching  a second coordinate system to ChartContext by method [ChartContext::set_secondary_coord](struct.ChartContext.html#method.set_secondary_coord).
 /// For instance of dual coordinate charts, see [this example](https://github.com/plotters-rs/plotters/blob/master/examples/two-scales.rs#L15).
diff --git a/crates/plotters/src/chart/series.rs b/crates/plotters/src/chart/series.rs
index 4aecf6a..997f30d 100644
--- a/crates/plotters/src/chart/series.rs
+++ b/crates/plotters/src/chart/series.rs
@@ -72,6 +72,7 @@
 
 See [`ChartContext::configure_series_labels()`] for more information and examples.
 */
+#[derive(Debug, Clone, PartialEq)]
 pub enum SeriesLabelPosition {
     /// Places the series label at the upper left
     UpperLeft,
@@ -101,18 +102,14 @@
         (
             match self {
                 UpperLeft | MiddleLeft | LowerLeft => 5,
-                UpperMiddle | MiddleMiddle | LowerMiddle => {
-                    (area_dim.0 as i32 - label_dim.0 as i32) / 2
-                }
-                UpperRight | MiddleRight | LowerRight => area_dim.0 as i32 - label_dim.0 as i32 - 5,
+                UpperMiddle | MiddleMiddle | LowerMiddle => (area_dim.0 as i32 - label_dim.0) / 2,
+                UpperRight | MiddleRight | LowerRight => area_dim.0 as i32 - label_dim.0 - 5,
                 Coordinate(x, _) => *x,
             },
             match self {
                 UpperLeft | UpperMiddle | UpperRight => 5,
-                MiddleLeft | MiddleMiddle | MiddleRight => {
-                    (area_dim.1 as i32 - label_dim.1 as i32) / 2
-                }
-                LowerLeft | LowerMiddle | LowerRight => area_dim.1 as i32 - label_dim.1 as i32 - 5,
+                MiddleLeft | MiddleMiddle | MiddleRight => (area_dim.1 as i32 - label_dim.1) / 2,
+                LowerLeft | LowerMiddle | LowerRight => area_dim.1 as i32 - label_dim.1 - 5,
                 Coordinate(_, y) => *y,
             },
         )
diff --git a/crates/plotters/src/chart/state.rs b/crates/plotters/src/chart/state.rs
index 1ce2f82..55c4056 100644
--- a/crates/plotters/src/chart/state.rs
+++ b/crates/plotters/src/chart/state.rs
@@ -50,7 +50,7 @@
 
 impl<'a, DB: DrawingBackend, CT: CoordTranslate> ChartContext<'a, DB, CT> {
     /// Convert a chart context into a chart state, by doing so, the chart context is consumed and
-    /// a saved chart state is created for later use. This is typically used in incrmental rendering. See documentation of `ChartState` for more detailed example.
+    /// a saved chart state is created for later use. This is typically used in incremental rendering. See documentation of `ChartState` for more detailed example.
     pub fn into_chart_state(self) -> ChartState<CT> {
         self.into()
     }
diff --git a/crates/plotters/src/coord/mod.rs b/crates/plotters/src/coord/mod.rs
index 574929d..b01fc69 100644
--- a/crates/plotters/src/coord/mod.rs
+++ b/crates/plotters/src/coord/mod.rs
@@ -1,7 +1,7 @@
 /*!
 
 One of the key features of Plotters is flexible coordinate system abstraction and this module
-provides all the abstraction used for the coordinate abstarction of Plotters.
+provides all the abstraction used for the coordinate abstraction of Plotters.
 
 Generally speaking, the coordinate system in Plotters is responsible for mapping logic data points into
 pixel based backend coordinate. This task is abstracted by a simple trait called
diff --git a/crates/plotters/src/coord/ranged1d/combinators/ckps.rs b/crates/plotters/src/coord/ranged1d/combinators/ckps.rs
index 5e1ed72..402ffd8 100644
--- a/crates/plotters/src/coord/ranged1d/combinators/ckps.rs
+++ b/crates/plotters/src/coord/ranged1d/combinators/ckps.rs
@@ -11,7 +11,7 @@
 /// This decorator allows customized tick mark specifiied by vector.
 /// See [BindKeyPoints::with_key_points](trait.BindKeyPoints.html#tymethod.with_key_points)
 /// for details.
-/// Note: For any coordinate spec wrapped by this decorator, the maxium number of labels configured by
+/// Note: For any coordinate spec wrapped by this decorator, the maximum number of labels configured by
 /// MeshStyle will be ignored and the key point function will always returns the entire vector
 pub struct WithKeyPoints<Inner: Ranged> {
     inner: Inner,
@@ -122,7 +122,7 @@
 impl<T: AsRangedCoord> BindKeyPoints for T {}
 
 /// The coordinate decorator that allows customized keypoint algorithms.
-/// Normally, all the coordinate spec implements its own key point algorith
+/// Normally, all the coordinate spec implements its own key point algorithm
 /// But this decorator allows you override the pre-defined key point algorithm.
 ///
 /// To use this decorator, see [BindKeyPointMethod::with_key_point_func](trait.BindKeyPointMethod.html#tymethod.with_key_point_func)
diff --git a/crates/plotters/src/coord/ranged1d/combinators/group_by.rs b/crates/plotters/src/coord/ranged1d/combinators/group_by.rs
index 5c0a4e5..28e72ee 100644
--- a/crates/plotters/src/coord/ranged1d/combinators/group_by.rs
+++ b/crates/plotters/src/coord/ranged1d/combinators/group_by.rs
@@ -82,16 +82,15 @@
         let idx_iter = (0..hint.bold_points()).map(|x| x * interval);
 
         if hint.weight().allow_light_points() && count < hint.bold_points() * 2 {
-            let outter_ticks = idx_iter;
-            let outter_tick_size = interval * self.1;
-            let inner_ticks_per_group = hint.max_num_points() / outter_ticks.len();
-            let inner_ticks =
-                (outter_tick_size + inner_ticks_per_group - 1) / inner_ticks_per_group;
-            let inner_ticks: Vec<_> = (0..(outter_tick_size / inner_ticks))
+            let outer_ticks = idx_iter;
+            let outer_tick_size = interval * self.1;
+            let inner_ticks_per_group = hint.max_num_points() / outer_ticks.len();
+            let inner_ticks = (outer_tick_size + inner_ticks_per_group - 1) / inner_ticks_per_group;
+            let inner_ticks: Vec<_> = (0..(outer_tick_size / inner_ticks))
                 .map(move |x| x * inner_ticks)
                 .collect();
             let size = self.0.size();
-            return outter_ticks
+            return outer_ticks
                 .flat_map(|base| inner_ticks.iter().map(move |&ofs| base * self.1 + ofs))
                 .take_while(|&idx| idx < size)
                 .map(|x| self.0.from_index(x).unwrap())
diff --git a/crates/plotters/src/coord/ranged1d/combinators/linspace.rs b/crates/plotters/src/coord/ranged1d/combinators/linspace.rs
index 7f4ac86..14b5eba 100644
--- a/crates/plotters/src/coord/ranged1d/combinators/linspace.rs
+++ b/crates/plotters/src/coord/ranged1d/combinators/linspace.rs
@@ -152,7 +152,7 @@
     }
 }
 
-/// The coordinate combinator that transform a continous coordinate to a discrete coordinate
+/// The coordinate combinator that transform a continuous coordinate to a discrete coordinate
 /// to a discrete coordinate by a giving step.
 ///
 /// For example, range `0f32..100f32` is a continuous coordinate, thus this prevent us having a
@@ -315,7 +315,7 @@
     }
 
     fn from_index(&self, idx: usize) -> Option<T::ValueType> {
-        self.grid_value.get(idx).map(Clone::clone)
+        self.grid_value.get(idx).cloned()
     }
 }
 
diff --git a/crates/plotters/src/coord/ranged1d/combinators/logarithmic.rs b/crates/plotters/src/coord/ranged1d/combinators/logarithmic.rs
index fee36f3..cd1dfd5 100644
--- a/crates/plotters/src/coord/ranged1d/combinators/logarithmic.rs
+++ b/crates/plotters/src/coord/ranged1d/combinators/logarithmic.rs
@@ -46,11 +46,14 @@
 impl_log_scalable!(i, u16);
 impl_log_scalable!(i, u32);
 impl_log_scalable!(i, u64);
+impl_log_scalable!(i, usize);
 
 impl_log_scalable!(i, i8);
 impl_log_scalable!(i, i16);
 impl_log_scalable!(i, i32);
 impl_log_scalable!(i, i64);
+impl_log_scalable!(i, i128);
+impl_log_scalable!(i, isize);
 
 impl_log_scalable!(f, f32);
 impl_log_scalable!(f, f64);
@@ -75,7 +78,7 @@
     }
 }
 
-/// The logarithmic coodinate decorator.
+/// The logarithmic coordinate decorator.
 /// This decorator is used to make the axis rendered as logarithmically.
 #[derive(Clone)]
 pub struct LogRangeExt<V: LogScalable> {
@@ -100,7 +103,7 @@
         self
     }
 
-    /// Set the base multipler
+    /// Set the base multiplier
     pub fn base(mut self, base: f64) -> Self {
         if self.base > 1.0 {
             self.base = base;
@@ -178,7 +181,7 @@
         let a = V::from_f64(fv + self.zero_point);
         let b = V::from_f64(self.zero_point);
 
-        (V::as_f64(&a) - V::as_f64(&b)).abs() < std::f64::EPSILON
+        (V::as_f64(&a) - V::as_f64(&b)).abs() < f64::EPSILON
     }
 }
 
@@ -253,7 +256,7 @@
     }
 }
 
-/// The logarithmic coodinate decorator.
+/// The logarithmic coordinate decorator.
 /// This decorator is used to make the axis rendered as logarithmically.
 #[deprecated(note = "LogRange is deprecated, use IntoLogRange trait method instead")]
 #[derive(Clone)]
diff --git a/crates/plotters/src/coord/ranged1d/discrete.rs b/crates/plotters/src/coord/ranged1d/discrete.rs
index 074eece..8b5da4b 100644
--- a/crates/plotters/src/coord/ranged1d/discrete.rs
+++ b/crates/plotters/src/coord/ranged1d/discrete.rs
@@ -20,8 +20,8 @@
 
     /// Map a value to the index
     ///
-    /// Note: This function doesn't guareentee return None when the value is out of range.
-    /// The only way to confirm the value is in the range is to examing the return value isn't
+    /// Note: This function doesn't guarantee return None when the value is out of range.
+    /// The only way to confirm the value is in the range is to examining the return value isn't
     /// larger than self.size.
     ///
     /// - `value`: The value to map
@@ -30,11 +30,11 @@
 
     /// Reverse map the index to the value
     ///
-    /// Note: This function doesn't guareentee returning None when the index is out of range.
+    /// Note: This function doesn't guarantee returning None when the index is out of range.
     ///
     /// - `value`: The index to map
     /// - **returns** The value
-    // TODO: This doesn't follows rust's naming convention - however, this is a protential breaking
+    // TODO: This doesn't follows rust's naming convention - however, this is a potential breaking
     // change, so postpone the fix to the next major release
     #[allow(clippy::wrong_self_convention)]
     fn from_index(&self, index: usize) -> Option<Self::ValueType>;
@@ -87,13 +87,14 @@
 }
 
 /// A `SegmentedCoord` is a decorator on any discrete coordinate specification.
-/// This decorator will convert the discrete coordiante in two ways:
-/// - Add an extra dummy element after all the values in origianl discrete coordinate
-/// - Logically each value `v` from original coordinate system is mapped into an segment `[v, v+1)` where `v+1` denotes the sucessor of the `v`
+/// This decorator will convert the discrete coordinate in two ways:
+/// - Add an extra dummy element after all the values in original discrete coordinate
+/// - Logically each value `v` from original coordinate system is mapped into an segment `[v, v+1)` where `v+1` denotes the successor of the `v`
 /// - Introduce two types of values `SegmentValue::Exact(value)` which denotes the left end of value's segment and `SegmentValue::CenterOf(value)` which refers the center of the segment.
-/// This is used in histogram types, which uses a discrete coordinate as the buckets. The segmented coord always emits `CenterOf(value)` key points, thus it allows all the label and tick marks
-/// of the coordinate rendered in the middle of each segment.
-/// The coresponding trait [IntoSegmentedCoord](trait.IntoSegmentedCoord.html) is used to apply this decorator to coordinates.
+///   This is used in histogram types, which uses a discrete coordinate as the buckets.
+///   The segmented coord always emits `CenterOf(value)` key points, thus it allows all the label and tick marks
+///   of the coordinate rendered in the middle of each segment.
+///   The corresponding trait [IntoSegmentedCoord](trait.IntoSegmentedCoord.html) is used to apply this decorator to coordinates.
 #[derive(Clone)]
 pub struct SegmentedCoord<D: DiscreteRanged>(D);
 
diff --git a/crates/plotters/src/coord/ranged1d/mod.rs b/crates/plotters/src/coord/ranged1d/mod.rs
index 97664a2..1b2072c 100644
--- a/crates/plotters/src/coord/ranged1d/mod.rs
+++ b/crates/plotters/src/coord/ranged1d/mod.rs
@@ -61,7 +61,7 @@
 
 /// Since stable Rust doesn't have specialization, it's very hard to make our own trait that
 /// automatically implemented the value formatter. This trait uses as a marker indicates if we
-/// should automatically implement the default value formater based on it's `Debug` trait
+/// should automatically implement the default value formatter based on it's `Debug` trait
 pub trait DefaultValueFormatOption {}
 
 /// This makes the ranged coord uses the default `Debug` based formatting
@@ -115,7 +115,7 @@
 /// The trait for a hint provided to the key point algorithm used by the coordinate specs.
 /// The most important constraint is the `max_num_points` which means the algorithm could emit no more than specific number of key points
 /// `weight` is used to determine if this is used as a bold grid line or light grid line
-/// `bold_points` returns the max number of coresponding bold grid lines
+/// `bold_points` returns the max number of corresponding bold grid lines
 pub trait KeyPointHint {
     /// Returns the max number of key points
     fn max_num_points(&self) -> usize;
@@ -186,12 +186,12 @@
     /// This marker decides if Plotters default [ValueFormatter](trait.ValueFormatter.html) implementation should be used.
     /// This associated type can be one of the following two types:
     /// - [DefaultFormatting](struct.DefaultFormatting.html) will allow Plotters to automatically impl
-    /// the formatter based on `Debug` trait, if `Debug` trait is not impl for the `Self::Value`,
-    /// [ValueFormatter](trait.ValueFormatter.html) will not impl unless you impl it manually.
+    ///   the formatter based on `Debug` trait, if `Debug` trait is not impl for the `Self::Value`,
+    ///   [ValueFormatter](trait.ValueFormatter.html) will not impl unless you impl it manually.
     ///
     /// - [NoDefaultFormatting](struct.NoDefaultFormatting.html) Disable the automatic `Debug`
-    /// based value formatting. Thus you have to impl the
-    /// [ValueFormatter](trait.ValueFormatter.html) manually.
+    ///   based value formatting. Thus you have to impl the
+    ///   [ValueFormatter](trait.ValueFormatter.html) manually.
     ///
     type FormatOption: DefaultValueFormatOption;
 
diff --git a/crates/plotters/src/coord/ranged1d/types/datetime.rs b/crates/plotters/src/coord/ranged1d/types/datetime.rs
index 0a532f8..3ab62d1 100644
--- a/crates/plotters/src/coord/ranged1d/types/datetime.rs
+++ b/crates/plotters/src/coord/ranged1d/types/datetime.rs
@@ -163,9 +163,11 @@
 
 impl TimeValue for NaiveDateTime {
     type DateType = NaiveDate;
+
     fn date_floor(&self) -> NaiveDate {
         self.date()
     }
+
     fn date_ceil(&self) -> NaiveDate {
         if self.time().num_seconds_from_midnight() > 0 {
             self.date() + Duration::days(1)
@@ -173,6 +175,7 @@
             self.date()
         }
     }
+
     fn earliest_after_date(date: NaiveDate) -> NaiveDateTime {
         date.and_hms(0, 0, 0)
     }
@@ -779,7 +782,7 @@
 
                 while current < self.1 {
                     ret.push(current);
-                    current = current + Duration::nanoseconds(period as i64);
+                    current += Duration::nanoseconds(period as i64);
                 }
 
                 return ret;
@@ -818,7 +821,7 @@
 
         while current < self.1 {
             ret.push(current);
-            current = current + Duration::days(i64::from(days_per_tick));
+            current += Duration::days(i64::from(days_per_tick));
         }
 
         ret
@@ -828,7 +831,7 @@
 #[allow(clippy::inconsistent_digit_grouping)]
 fn compute_period_per_point(total_ns: u64, max_points: usize, sub_daily: bool) -> Option<u64> {
     let min_ns_per_point = total_ns as f64 / max_points as f64;
-    let actual_ns_per_point: u64 = (10u64).pow((min_ns_per_point as f64).log10().floor() as u32);
+    let actual_ns_per_point: u64 = (10u64).pow(min_ns_per_point.log10().floor() as u32);
 
     fn determine_actual_ns_per_point(
         total_ns: u64,
@@ -850,7 +853,7 @@
 
     if actual_ns_per_point < 1_000_000_000 {
         Some(determine_actual_ns_per_point(
-            total_ns as u64,
+            total_ns,
             actual_ns_per_point,
             &[1, 2, 5],
             10,
@@ -858,7 +861,7 @@
         ))
     } else if actual_ns_per_point < 3600_000_000_000 {
         Some(determine_actual_ns_per_point(
-            total_ns as u64,
+            total_ns,
             1_000_000_000,
             &[1, 2, 5, 10, 15, 20, 30],
             60,
@@ -866,7 +869,7 @@
         ))
     } else if actual_ns_per_point < 3600_000_000_000 * 24 {
         Some(determine_actual_ns_per_point(
-            total_ns as u64,
+            total_ns,
             3600_000_000_000,
             &[1, 2, 4, 8, 12],
             24,
@@ -875,7 +878,7 @@
     } else if !sub_daily {
         if actual_ns_per_point < 3600_000_000_000 * 24 * 10 {
             Some(determine_actual_ns_per_point(
-                total_ns as u64,
+                total_ns,
                 3600_000_000_000 * 24,
                 &[1, 2, 5, 7],
                 10,
@@ -883,7 +886,7 @@
             ))
         } else {
             Some(determine_actual_ns_per_point(
-                total_ns as u64,
+                total_ns,
                 3600_000_000_000 * 24 * 10,
                 &[1, 2, 5],
                 10,
@@ -1115,7 +1118,7 @@
     #[test]
     fn test_datetime_nano_range() {
         let start = Utc.ymd(2019, 1, 1).and_hms(0, 0, 0);
-        let end = start.clone() + Duration::nanoseconds(100);
+        let end = start + Duration::nanoseconds(100);
         let coord: RangedDateTime<_> = (start..end).into();
 
         let kps = coord.key_points(50);
diff --git a/crates/plotters/src/coord/ranged1d/types/mod.rs b/crates/plotters/src/coord/ranged1d/types/mod.rs
index 5a5ca48..6a0fd86 100644
--- a/crates/plotters/src/coord/ranged1d/types/mod.rs
+++ b/crates/plotters/src/coord/ranged1d/types/mod.rs
@@ -1,6 +1,7 @@
 #[cfg(feature = "chrono")]
 mod datetime;
 #[cfg(feature = "chrono")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "chrono")))]
 pub use datetime::{
     IntoMonthly, IntoYearly, Monthly, RangedDate, RangedDateTime, RangedDuration, Yearly,
 };
@@ -8,7 +9,7 @@
 mod numeric;
 pub use numeric::{
     RangedCoordf32, RangedCoordf64, RangedCoordi128, RangedCoordi32, RangedCoordi64,
-    RangedCoordu128, RangedCoordu32, RangedCoordu64, RangedCoordusize,
+    RangedCoordisize, RangedCoordu128, RangedCoordu32, RangedCoordu64, RangedCoordusize,
 };
 
 mod slice;
diff --git a/crates/plotters/src/coord/ranged1d/types/numeric.rs b/crates/plotters/src/coord/ranged1d/types/numeric.rs
index a4e7b2b..8a9ab2d 100644
--- a/crates/plotters/src/coord/ranged1d/types/numeric.rs
+++ b/crates/plotters/src/coord/ranged1d/types/numeric.rs
@@ -87,6 +87,14 @@
                     return limit.1;
                 }
 
+                if logic_length.is_infinite() {
+                    if logic_length.is_sign_positive() {
+                        return limit.1;
+                    } else {
+                        return limit.0;
+                    }
+                }
+
                 if actual_length > 0 {
                     return limit.0 + (actual_length as f64 * logic_length + 1e-3).floor() as i32;
                 } else {
@@ -117,7 +125,7 @@
 
             assert!(!(range.0.is_nan() || range.1.is_nan()));
 
-            if (range.0 - range.1).abs() < std::f64::EPSILON {
+            if (range.0 - range.1).abs() < f64::EPSILON {
                 return vec![range.0 as $type];
             }
 
@@ -133,7 +141,7 @@
                 } else {
                     a - (a / b).ceil() * b
                 };
-                if (ret - b).abs() < std::f64::EPSILON {
+                if (ret - b).abs() < f64::EPSILON {
                     0.0
                 } else {
                     ret
@@ -183,7 +191,7 @@
             let left_base = (left / value_granularity).floor() * value_granularity;
             let mut left_relative = left - left_base;
             let right = range.1 - rem_euclid(range.1, scale);
-            while (right - left_relative - left_base) >= -std::f64::EPSILON {
+            while (right - left_relative - left_base) >= -f64::EPSILON {
                 let new_left_relative =
                     (left_relative / value_granularity).round() * value_granularity;
                 if new_left_relative < 0.0 {
@@ -354,14 +362,14 @@
     fn test_key_points() {
         let kp = compute_i32_key_points((0, 999), 28);
 
-        assert!(kp.len() > 0);
+        assert!(!kp.is_empty());
         assert!(kp.len() <= 28);
 
         let kp = compute_f64_key_points((-1.2, 1.2), 1);
         assert!(kp.len() == 1);
 
         let kp = compute_f64_key_points((-1.2, 1.2), 0);
-        assert!(kp.len() == 0);
+        assert!(kp.is_empty());
     }
 
     #[test]
@@ -404,7 +412,7 @@
     fn test_small_coord() {
         let coord: RangedCoordf64 = (0.0..1e-25).into();
         let points = coord.key_points(10);
-        assert!(points.len() > 0);
+        assert!(!points.is_empty());
     }
 
     #[test]
@@ -414,7 +422,7 @@
     }
 
     #[test]
-    fn regession_test_issue_358_key_points_no_hang() {
+    fn regression_test_issue_358_key_points_no_hang() {
         let coord: RangedCoordf64 = (-200.0..801.0).into();
         let points = coord.key_points(500);
         assert!(points.len() <= 500);
@@ -448,6 +456,6 @@
     fn regression_test_issue_304_intmax_keypoint_no_panic() {
         let coord: RangedCoordu32 = (0..u32::MAX).into();
         let p = coord.key_points(10);
-        assert!(p.len() > 0 && p.len() <= 10);
+        assert!(!p.is_empty() && p.len() <= 10);
     }
 }
diff --git a/crates/plotters/src/coord/ranged2d/cartesian.rs b/crates/plotters/src/coord/ranged2d/cartesian.rs
index 5052a62..57d2240 100644
--- a/crates/plotters/src/coord/ranged2d/cartesian.rs
+++ b/crates/plotters/src/coord/ranged2d/cartesian.rs
@@ -2,9 +2,9 @@
  The 2-dimensional cartesian coordinate system.
 
  This module provides the 2D cartesian coordinate system, which is composed by two independent
- ranged 1D coordinate sepcification.
+ ranged 1D coordinate specification.
 
- This types of coordinate system is used by the chart constructed with [ChartBuilder::build_cartesian_2d](../../chart/ChartBuilder.html#method.build_cartesian_2d).
+ This type of coordinate system is used by the chart constructed with [ChartBuilder::build_cartesian_2d](../../chart/ChartBuilder.html#method.build_cartesian_2d).
 */
 
 use crate::coord::ranged1d::{KeyPointHint, Ranged, ReversibleRanged};
diff --git a/crates/plotters/src/data/data_range.rs b/crates/plotters/src/data/data_range.rs
index 445260b..3d42eec 100644
--- a/crates/plotters/src/data/data_range.rs
+++ b/crates/plotters/src/data/data_range.rs
@@ -16,9 +16,9 @@
 /// let range = fitting_range(&data);
 /// assert_eq!(range, std::ops::Range { start: -2, end: 14 });
 /// ```
-pub fn fitting_range<'a, T: 'a, I: IntoIterator<Item = &'a T>>(iter: I) -> Range<T>
+pub fn fitting_range<'a, T, I: IntoIterator<Item = &'a T>>(iter: I) -> Range<T>
 where
-    T: Zero + One + PartialOrd + Clone,
+    T: 'a + Zero + One + PartialOrd + Clone,
 {
     let (mut lb, mut ub) = (None, None);
 
diff --git a/crates/plotters/src/data/quartiles.rs b/crates/plotters/src/data/quartiles.rs
index 054f51d..78613da 100644
--- a/crates/plotters/src/data/quartiles.rs
+++ b/crates/plotters/src/data/quartiles.rs
@@ -19,7 +19,7 @@
         assert!(0_f64 <= pct);
         let hundred = 100_f64;
         assert!(pct <= hundred);
-        if (pct - hundred).abs() < std::f64::EPSILON {
+        if (pct - hundred).abs() < f64::EPSILON {
             return s[s.len() - 1].into();
         }
         let length = (s.len() - 1) as f64;
diff --git a/crates/plotters/src/drawing/area.rs b/crates/plotters/src/drawing/area.rs
index 9519f37..e8981fe 100644
--- a/crates/plotters/src/drawing/area.rs
+++ b/crates/plotters/src/drawing/area.rs
@@ -113,9 +113,9 @@
 
 /// The abstraction of a drawing area. Plotters uses drawing area as the fundamental abstraction for the
 /// high level drawing API. The major functionality provided by the drawing area is
-///     1. Layout specification - Split the parent drawing area into sub-drawing-areas
-///     2. Coordinate Translation - Allows guest coordinate system attached and used for drawing.
-///     3. Element based drawing - drawing area provides the environment the element can be drawn onto it.
+/// 1. Layout specification - Split the parent drawing area into sub-drawing-areas
+/// 2. Coordinate Translation - Allows guest coordinate system attached and used for drawing.
+/// 3. Element based drawing - drawing area provides the environment the element can be drawn onto it.
 pub struct DrawingArea<DB: DrawingBackend, CT: CoordTranslate> {
     backend: Rc<RefCell<DB>>,
     rect: Rect,
@@ -258,12 +258,12 @@
 
     /// Compute the relative size based on the drawing area's height
     pub fn relative_to_height(&self, p: f64) -> f64 {
-        f64::from((self.rect.y1 - self.rect.y0).max(0)) * (p.min(1.0).max(0.0))
+        f64::from((self.rect.y1 - self.rect.y0).max(0)) * (p.clamp(0.0, 1.0))
     }
 
     /// Compute the relative size based on the drawing area's width
     pub fn relative_to_width(&self, p: f64) -> f64 {
-        f64::from((self.rect.x1 - self.rect.x0).max(0)) * (p.min(1.0).max(0.0))
+        f64::from((self.rect.x1 - self.rect.x0).max(0)) * (p.clamp(0.0, 1.0))
     }
 
     /// Get the pixel range of this area
@@ -548,7 +548,7 @@
         let drawing_area = create_mocked_drawing_area(1024, 768, |m| {
             m.check_draw_rect(|c, _, f, u, d| {
                 assert_eq!(c, WHITE.to_rgba());
-                assert_eq!(f, true);
+                assert!(f);
                 assert_eq!(u, (0, 0));
                 assert_eq!(d, (1024, 768));
             });
@@ -573,7 +573,7 @@
                     let colors = colors.clone();
                     m.check_draw_rect(move |c, _, f, u, d| {
                         assert_eq!(c, colors[col * 3 + row].to_rgba());
-                        assert_eq!(f, true);
+                        assert!(f);
                         assert_eq!(u, (300 * row as i32 + 2.min(row) as i32, 300 * col as i32));
                         assert_eq!(
                             d,
@@ -605,14 +605,14 @@
         let drawing_area = create_mocked_drawing_area(1024, 768, |m| {
             m.check_draw_rect(|c, _, f, u, d| {
                 assert_eq!(c, RED.to_rgba());
-                assert_eq!(f, true);
+                assert!(f);
                 assert_eq!(u, (0, 0));
                 assert_eq!(d, (345, 768));
             });
 
             m.check_draw_rect(|c, _, f, u, d| {
                 assert_eq!(c, BLUE.to_rgba());
-                assert_eq!(f, true);
+                assert!(f);
                 assert_eq!(u, (345, 0));
                 assert_eq!(d, (1024, 768));
             });
@@ -633,14 +633,14 @@
         let drawing_area = create_mocked_drawing_area(1024, 768, |m| {
             m.check_draw_rect(|c, _, f, u, d| {
                 assert_eq!(c, RED.to_rgba());
-                assert_eq!(f, true);
+                assert!(f);
                 assert_eq!(u, (0, 0));
                 assert_eq!(d, (1024, 345));
             });
 
             m.check_draw_rect(|c, _, f, u, d| {
                 assert_eq!(c, BLUE.to_rgba());
-                assert_eq!(f, true);
+                assert!(f);
                 assert_eq!(u, (0, 345));
                 assert_eq!(d, (1024, 768));
             });
@@ -658,7 +658,7 @@
 
     #[test]
     fn test_split_grid() {
-        let colors = vec![
+        let colors = [
             &RED, &BLUE, &YELLOW, &WHITE, &BLACK, &MAGENTA, &CYAN, &BLUE, &RED,
         ];
         let breaks: [i32; 5] = [100, 200, 300, 400, 500];
@@ -669,13 +669,13 @@
                     for row in 0..=nyb {
                         for col in 0..=nxb {
                             let get_bp = |full, limit, id| {
-                                (if id == 0 {
+                                if id == 0 {
                                     0
                                 } else if id > limit {
                                     full
                                 } else {
                                     breaks[id as usize - 1]
-                                }) as i32
+                                }
                             };
 
                             let expected_u = (get_bp(1024, nxb, col), get_bp(768, nyb, row));
@@ -686,7 +686,7 @@
 
                             m.check_draw_rect(move |c, _, f, u, d| {
                                 assert_eq!(c, expected_color.to_rgba());
-                                assert_eq!(f, true);
+                                assert!(f);
                                 assert_eq!(u, expected_u);
                                 assert_eq!(d, expected_d);
                             });
@@ -720,7 +720,7 @@
             });
             m.check_draw_rect(|c, _, f, u, d| {
                 assert_eq!(c, WHITE.to_rgba());
-                assert_eq!(f, true);
+                assert!(f);
                 assert_eq!(u.0, 0);
                 assert!(u.1 > 0);
                 assert_eq!(d, (1024, 768));
@@ -744,7 +744,7 @@
         let drawing_area = create_mocked_drawing_area(1024, 768, |m| {
             m.check_draw_rect(|c, _, f, u, d| {
                 assert_eq!(c, WHITE.to_rgba());
-                assert_eq!(f, true);
+                assert!(f);
                 assert_eq!(u, (3, 1));
                 assert_eq!(d, (1024 - 4, 768 - 2));
             });
@@ -795,7 +795,7 @@
         let drawing_area = create_mocked_drawing_area(1000, 1200, |m| {
             let mut counter = 0;
             m.check_draw_rect(move |c, _, f, u, d| {
-                assert_eq!(f, true);
+                assert!(f);
 
                 match counter {
                     0 => {
diff --git a/crates/plotters/src/drawing/mod.rs b/crates/plotters/src/drawing/mod.rs
index 9e32d91..5c055fb 100644
--- a/crates/plotters/src/drawing/mod.rs
+++ b/crates/plotters/src/drawing/mod.rs
@@ -6,7 +6,7 @@
 It exposes a set of functions which allows basic shape, such as pixels, lines, rectangles, circles, to be drawn on the screen.
 The low-level API uses the pixel based coordinate.
 
-The high-level API is built on the top of high-level API. The `DrawingArea` type exposes the high-level drawing API to the remianing part
+The high-level API is built on the top of high-level API. The `DrawingArea` type exposes the high-level drawing API to the remaining part
 of Plotters. The basic drawing blocks are composable elements, which can be defined in logic coordinate. To learn more details
 about the [coordinate abstraction](../coord/index.html) and [element system](../element/index.html).
 */
diff --git a/crates/plotters/src/element/basic_shapes.rs b/crates/plotters/src/element/basic_shapes.rs
index 7c0b9d4..c43af47 100644
--- a/crates/plotters/src/element/basic_shapes.rs
+++ b/crates/plotters/src/element/basic_shapes.rs
@@ -2,6 +2,16 @@
 use crate::style::{Color, ShapeStyle, SizeDesc};
 use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
 
+#[inline]
+fn to_i((x, y): (f32, f32)) -> (i32, i32) {
+    (x.round() as i32, y.round() as i32)
+}
+
+#[inline]
+fn to_f((x, y): (i32, i32)) -> (f32, f32) {
+    (x as f32, y as f32)
+}
+
 /**
 An element representing a single pixel.
 
@@ -64,7 +74,7 @@
             assert_eq!(b.draw_count, 1);
         });
     });
-    da.draw(&Pixel::new((150, 152), &RED))
+    da.draw(&Pixel::new((150, 152), RED))
         .expect("Drawing Failure");
 }
 
@@ -126,7 +136,255 @@
     });
     da.draw(&PathElement::new(
         vec![(100, 101), (105, 107), (150, 157)],
-        Into::<ShapeStyle>::into(&BLUE).stroke_width(5),
+        Into::<ShapeStyle>::into(BLUE).stroke_width(5),
+    ))
+    .expect("Drawing Failure");
+}
+
+/// An element of a series of connected lines in dash style.
+///
+/// It's similar to [`PathElement`] but has a dash style.
+pub struct DashedPathElement<I: Iterator + Clone, Size: SizeDesc> {
+    points: I,
+    size: Size,
+    spacing: Size,
+    style: ShapeStyle,
+}
+
+impl<I: Iterator + Clone, Size: SizeDesc> DashedPathElement<I, Size> {
+    /// Create a new path
+    /// - `points`: The iterator of the points
+    /// - `size`: The dash size
+    /// - `spacing`: The dash-to-dash spacing (gap size)
+    /// - `style`: The shape style
+    /// - returns the created element
+    pub fn new<I0, S>(points: I0, size: Size, spacing: Size, style: S) -> Self
+    where
+        I0: IntoIterator<IntoIter = I>,
+        S: Into<ShapeStyle>,
+    {
+        Self {
+            points: points.into_iter(),
+            size,
+            spacing,
+            style: style.into(),
+        }
+    }
+}
+
+impl<'a, I: Iterator + Clone, Size: SizeDesc> PointCollection<'a, I::Item>
+    for &'a DashedPathElement<I, Size>
+{
+    type Point = I::Item;
+    type IntoIter = I;
+    fn point_iter(self) -> Self::IntoIter {
+        self.points.clone()
+    }
+}
+
+impl<I0: Iterator + Clone, Size: SizeDesc, DB: DrawingBackend> Drawable<DB>
+    for DashedPathElement<I0, Size>
+{
+    fn draw<I: Iterator<Item = BackendCoord>>(
+        &self,
+        mut points: I,
+        backend: &mut DB,
+        ps: (u32, u32),
+    ) -> Result<(), DrawingErrorKind<DB::ErrorType>> {
+        let mut start = match points.next() {
+            Some(c) => to_f(c),
+            None => return Ok(()),
+        };
+        let size = self.size.in_pixels(&ps).max(0) as f32;
+        if size == 0. {
+            return Ok(());
+        }
+        let spacing = self.spacing.in_pixels(&ps).max(0) as f32;
+        let mut dist = 0.;
+        let mut is_solid = true;
+        let mut queue = vec![to_i(start)];
+        for curr in points {
+            let end = to_f(curr);
+            // Loop for solid and spacing
+            while start != end {
+                let (dx, dy) = (end.0 - start.0, end.1 - start.1);
+                let d = dx.hypot(dy);
+                let size = if is_solid { size } else { spacing };
+                let left = size - dist;
+                // Set next point to `start`
+                if left < d {
+                    let t = left / d;
+                    start = (start.0 + dx * t, start.1 + dy * t);
+                    dist += left;
+                } else {
+                    start = end;
+                    dist += d;
+                }
+                // Draw if needed
+                if is_solid {
+                    queue.push(to_i(start));
+                }
+                if size <= dist {
+                    if is_solid {
+                        backend.draw_path(queue.drain(..), &self.style)?;
+                    } else {
+                        queue.push(to_i(start));
+                    }
+                    dist = 0.;
+                    is_solid = !is_solid;
+                }
+            }
+        }
+        if queue.len() > 1 {
+            backend.draw_path(queue, &self.style)?;
+        }
+        Ok(())
+    }
+}
+
+#[cfg(test)]
+#[test]
+fn test_dashed_path_element() {
+    use crate::prelude::*;
+    let check_list = std::cell::RefCell::new(vec![
+        vec![(100, 100), (100, 103), (100, 105)],
+        vec![(100, 107), (100, 112)],
+        vec![(100, 114), (100, 119)],
+        vec![(100, 119), (100, 120)],
+    ]);
+    let da = crate::create_mocked_drawing_area(300, 300, |m| {
+        m.check_draw_path(move |c, s, path| {
+            assert_eq!(c, BLUE.to_rgba());
+            assert_eq!(s, 7);
+            assert_eq!(path, check_list.borrow_mut().remove(0));
+        });
+        m.drop_check(|b| {
+            assert_eq!(b.num_draw_path_call, 3);
+            assert_eq!(b.draw_count, 3);
+        });
+    });
+    da.draw(&DashedPathElement::new(
+        vec![(100, 100), (100, 103), (100, 120)],
+        5.,
+        2.,
+        BLUE.stroke_width(7),
+    ))
+    .expect("Drawing Failure");
+}
+
+/// An element of a series of connected lines in dot style for any markers.
+///
+/// It's similar to [`PathElement`] but use a marker function to draw markers with spacing.
+pub struct DottedPathElement<I: Iterator + Clone, Size: SizeDesc, Marker> {
+    points: I,
+    shift: Size,
+    spacing: Size,
+    func: Box<dyn Fn(BackendCoord) -> Marker>,
+}
+
+impl<I: Iterator + Clone, Size: SizeDesc, Marker> DottedPathElement<I, Size, Marker> {
+    /// Create a new path
+    /// - `points`: The iterator of the points
+    /// - `shift`: The shift of the first marker
+    /// - `spacing`: The spacing between markers
+    /// - `func`: The marker function
+    /// - returns the created element
+    pub fn new<I0, F>(points: I0, shift: Size, spacing: Size, func: F) -> Self
+    where
+        I0: IntoIterator<IntoIter = I>,
+        F: Fn(BackendCoord) -> Marker + 'static,
+    {
+        Self {
+            points: points.into_iter(),
+            shift,
+            spacing,
+            func: Box::new(func),
+        }
+    }
+}
+
+impl<'a, I: Iterator + Clone, Size: SizeDesc, Marker> PointCollection<'a, I::Item>
+    for &'a DottedPathElement<I, Size, Marker>
+{
+    type Point = I::Item;
+    type IntoIter = I;
+    fn point_iter(self) -> Self::IntoIter {
+        self.points.clone()
+    }
+}
+
+impl<I0, Size, DB, Marker> Drawable<DB> for DottedPathElement<I0, Size, Marker>
+where
+    I0: Iterator + Clone,
+    Size: SizeDesc,
+    DB: DrawingBackend,
+    Marker: crate::element::IntoDynElement<'static, DB, BackendCoord>,
+{
+    fn draw<I: Iterator<Item = BackendCoord>>(
+        &self,
+        mut points: I,
+        backend: &mut DB,
+        ps: (u32, u32),
+    ) -> Result<(), DrawingErrorKind<DB::ErrorType>> {
+        let mut shift = self.shift.in_pixels(&ps).max(0) as f32;
+        let mut start = match points.next() {
+            Some(start_i) => {
+                // Draw the first marker if no shift
+                if shift == 0. {
+                    let mk = (self.func)(start_i).into_dyn();
+                    mk.draw(mk.point_iter().iter().copied(), backend, ps)?;
+                }
+                to_f(start_i)
+            }
+            None => return Ok(()),
+        };
+        let spacing = self.spacing.in_pixels(&ps).max(0) as f32;
+        let mut dist = 0.;
+        for curr in points {
+            let end = to_f(curr);
+            // Loop for spacing
+            while start != end {
+                let (dx, dy) = (end.0 - start.0, end.1 - start.1);
+                let d = dx.hypot(dy);
+                let spacing = if shift == 0. { spacing } else { shift };
+                let left = spacing - dist;
+                // Set next point to `start`
+                if left < d {
+                    let t = left / d;
+                    start = (start.0 + dx * t, start.1 + dy * t);
+                    dist += left;
+                } else {
+                    start = end;
+                    dist += d;
+                }
+                // Draw if needed
+                if spacing <= dist {
+                    let mk = (self.func)(to_i(start)).into_dyn();
+                    mk.draw(mk.point_iter().iter().copied(), backend, ps)?;
+                    shift = 0.;
+                    dist = 0.;
+                }
+            }
+        }
+        Ok(())
+    }
+}
+
+#[cfg(test)]
+#[test]
+fn test_dotted_path_element() {
+    use crate::prelude::*;
+    let da = crate::create_mocked_drawing_area(300, 300, |m| {
+        m.drop_check(|b| {
+            assert_eq!(b.num_draw_path_call, 0);
+            assert_eq!(b.draw_count, 7);
+        });
+    });
+    da.draw(&DottedPathElement::new(
+        vec![(100, 100), (105, 105), (150, 150)],
+        5,
+        10,
+        |c| Circle::new(c, 5, Into::<ShapeStyle>::into(RED).filled()),
     ))
     .expect("Drawing Failure");
 }
@@ -160,6 +418,20 @@
         self.margin = (t, b, l, r);
         self
     }
+
+    /// Get the points of the rectangle
+    /// - returns the element points
+    pub fn get_points(&self) -> (&Coord, &Coord) {
+        (&self.points[0], &self.points[1])
+    }
+
+    /// Set the style of the rectangle
+    /// - `style`: The shape style
+    /// - returns a mut reference to the rectangle
+    pub fn set_style<S: Into<ShapeStyle>>(&mut self, style: S) -> &mut Self {
+        self.style = style.into();
+        self
+    }
 }
 
 impl<'a, Coord> PointCollection<'a, Coord> for &'a Rectangle<Coord> {
@@ -199,7 +471,7 @@
         let da = crate::create_mocked_drawing_area(300, 300, |m| {
             m.check_draw_rect(|c, s, f, u, d| {
                 assert_eq!(c, BLUE.to_rgba());
-                assert_eq!(f, false);
+                assert!(!f);
                 assert_eq!(s, 5);
                 assert_eq!([u, d], [(100, 101), (105, 107)]);
             });
@@ -219,7 +491,7 @@
         let da = crate::create_mocked_drawing_area(300, 300, |m| {
             m.check_draw_rect(|c, _, f, u, d| {
                 assert_eq!(c, BLUE.to_rgba());
-                assert_eq!(f, true);
+                assert!(f);
                 assert_eq!([u, d], [(100, 101), (105, 107)]);
             });
             m.drop_check(|b| {
@@ -284,7 +556,7 @@
     let da = crate::create_mocked_drawing_area(300, 300, |m| {
         m.check_draw_circle(|c, _, f, s, r| {
             assert_eq!(c, BLUE.to_rgba());
-            assert_eq!(f, false);
+            assert!(!f);
             assert_eq!(s, (150, 151));
             assert_eq!(r, 20);
         });
@@ -293,7 +565,7 @@
             assert_eq!(b.draw_count, 1);
         });
     });
-    da.draw(&Circle::new((150, 151), 20, &BLUE))
+    da.draw(&Circle::new((150, 151), 20, BLUE))
         .expect("Drawing Failure");
 }
 
@@ -353,6 +625,6 @@
         });
     });
 
-    da.draw(&Polygon::new(points.clone(), &BLUE))
+    da.draw(&Polygon::new(points.clone(), BLUE))
         .expect("Drawing Failure");
 }
diff --git a/crates/plotters/src/element/boxplot.rs b/crates/plotters/src/element/boxplot.rs
index 2de2bd0..2ba20e3 100644
--- a/crates/plotters/src/element/boxplot.rs
+++ b/crates/plotters/src/element/boxplot.rs
@@ -74,7 +74,7 @@
     /// ```
     pub fn new_vertical(key: K, quartiles: &Quartiles) -> Self {
         Self {
-            style: Into::<ShapeStyle>::into(&BLACK),
+            style: Into::<ShapeStyle>::into(BLACK),
             width: DEFAULT_WIDTH,
             whisker_width: 1.0,
             offset: 0.0,
@@ -100,7 +100,7 @@
     /// ```
     pub fn new_horizontal(key: K, quartiles: &Quartiles) -> Self {
         Self {
-            style: Into::<ShapeStyle>::into(&BLACK),
+            style: Into::<ShapeStyle>::into(BLACK),
             width: DEFAULT_WIDTH,
             whisker_width: 1.0,
             offset: 0.0,
diff --git a/crates/plotters/src/element/image.rs b/crates/plotters/src/element/image.rs
index f50ce77..6c31c2d 100644
--- a/crates/plotters/src/element/image.rs
+++ b/crates/plotters/src/element/image.rs
@@ -89,7 +89,7 @@
     /// - `size`: The size of the bitmap
     /// - `buf`: The buffer to use
     /// - **returns**: The newly created image element, if the buffer isn't fit the image
-    /// dimension, this will returns an `None`.
+    ///   dimension, this will returns an `None`.
     pub fn with_owned_buffer(pos: Coord, size: (u32, u32), buf: Vec<u8>) -> Option<Self> {
         if buf.len() < (size.0 * size.1) as usize * P::PIXEL_SIZE {
             return None;
@@ -109,7 +109,7 @@
     /// - `size`: The size of the bitmap
     /// - `buf`: The buffer to use
     /// - **returns**: The newly created image element, if the buffer isn't fit the image
-    /// dimension, this will returns an `None`.
+    ///   dimension, this will returns an `None`.
     pub fn with_mut(pos: Coord, size: (u32, u32), buf: &'a mut [u8]) -> Option<Self> {
         if buf.len() < (size.0 * size.1) as usize * P::PIXEL_SIZE {
             return None;
@@ -123,14 +123,14 @@
         })
     }
 
-    /// Create a new bitmap element with a shared borrowed buffer. This means if we want to modifiy
+    /// Create a new bitmap element with a shared borrowed buffer. This means if we want to modify
     /// the content of the image, the buffer is automatically copied
     ///
     /// - `pos`: The left upper coordinate of the elelent
     /// - `size`: The size of the bitmap
     /// - `buf`: The buffer to use
     /// - **returns**: The newly created image element, if the buffer isn't fit the image
-    /// dimension, this will returns an `None`.
+    ///   dimension, this will returns an `None`.
     pub fn with_ref(pos: Coord, size: (u32, u32), buf: &'a [u8]) -> Option<Self> {
         if buf.len() < (size.0 * size.1) as usize * P::PIXEL_SIZE {
             return None;
diff --git a/crates/plotters/src/element/mod.rs b/crates/plotters/src/element/mod.rs
index e279005..921b2c0 100644
--- a/crates/plotters/src/element/mod.rs
+++ b/crates/plotters/src/element/mod.rs
@@ -175,21 +175,25 @@
 #[cfg(feature = "candlestick")]
 mod candlestick;
 #[cfg(feature = "candlestick")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "candlestick")))]
 pub use candlestick::CandleStick;
 
 #[cfg(feature = "errorbar")]
 mod errorbar;
 #[cfg(feature = "errorbar")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "errorbar")))]
 pub use errorbar::{ErrorBar, ErrorBarOrientH, ErrorBarOrientV};
 
 #[cfg(feature = "boxplot")]
 mod boxplot;
 #[cfg(feature = "boxplot")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "boxplot")))]
 pub use boxplot::Boxplot;
 
 #[cfg(feature = "bitmap_backend")]
 mod image;
 #[cfg(feature = "bitmap_backend")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "bitmap_backend")))]
 pub use self::image::BitMapElement;
 
 mod dynelem;
@@ -214,7 +218,7 @@
 ///
 /// However,
 /// [Generic Associated Types](https://github.com/rust-lang/rfcs/blob/master/text/1598-generic_associated_types.md)
-/// is far away from stablize.
+/// is far away from stabilize.
 /// So currently we have the following workaround:
 ///
 /// Instead of implement the PointCollection trait on the element type itself, it implements on the
diff --git a/crates/plotters/src/element/pie.rs b/crates/plotters/src/element/pie.rs
index 79fa927..964fe95 100644
--- a/crates/plotters/src/element/pie.rs
+++ b/crates/plotters/src/element/pie.rs
@@ -31,6 +31,7 @@
     label_style: TextStyle<'a>,
     label_offset: f64,
     percentage_style: Option<TextStyle<'a>>,
+    donut_hole: f64, // radius of the hole in case of a donut chart
 }
 
 impl<'a, Label: Display> Pie<'a, (i32, i32), Label> {
@@ -62,6 +63,7 @@
             label_style,
             label_offset: radius_5pct,
             percentage_style: None,
+            donut_hole: 0.0,
         }
     }
 
@@ -77,7 +79,7 @@
         self.start_radian = start_angle.to_radians();
     }
 
-    ///
+    /// Set the label style.
     pub fn label_style<T: Into<TextStyle<'a>>>(&mut self, label_style: T) {
         self.label_style = label_style.into();
     }
@@ -91,6 +93,15 @@
     pub fn percentages<T: Into<TextStyle<'a>>>(&mut self, label_style: T) {
         self.percentage_style = Some(label_style.into());
     }
+
+    /// Enables creating a donut chart with a hole of the specified radius.
+    ///
+    /// The passed value must be greater than zero and lower than the chart overall radius, otherwise it'll be ignored.
+    pub fn donut_hole(&mut self, hole_radius: f64) {
+        if hole_radius > 0.0 && hole_radius < *self.radius {
+            self.donut_hole = hole_radius;
+        }
+    }
 }
 
 impl<'a, DB: DrawingBackend, Label: Display> Drawable<DB> for Pie<'a, (i32, i32), Label> {
@@ -118,13 +129,19 @@
                 .get(index)
                 .ok_or_else(|| DrawingErrorKind::FontError(Box::new(PieError::LengthMismatch)))?;
             // start building wedge line against the previous edge
-            let mut points = vec![*self.center];
+            let mut points = if self.donut_hole == 0.0 {
+                vec![*self.center]
+            } else {
+                vec![]
+            };
             let ratio = slice / self.total;
             let theta_final = ratio * 2.0 * PI + offset_theta; // end radian for the wedge
 
             // calculate middle for labels before mutating offset
             let middle_theta = ratio * PI + offset_theta;
 
+            let slice_start = offset_theta;
+
             // calculate every fraction of radian for the wedge, offsetting for every iteration, clockwise
             //
             // a custom Range such as `for theta in offset_theta..=theta_final` would be more elegant
@@ -138,6 +155,19 @@
             // final point of the wedge may not fall exactly on a radian, so add it extra
             let final_coord = theta_to_ordinal_coord(*self.radius, theta_final, self.center);
             points.push(final_coord);
+
+            if self.donut_hole > 0.0 {
+                while offset_theta >= slice_start {
+                    let coord = theta_to_ordinal_coord(self.donut_hole, offset_theta, self.center);
+                    points.push(coord);
+                    offset_theta -= radian_increment;
+                }
+                // final point of the wedge may not fall exactly on a radian, so add it extra
+                let final_coord_inner =
+                    theta_to_ordinal_coord(self.donut_hole, slice_start, self.center);
+                points.push(final_coord_inner);
+            }
+
             // next wedge calculation will start from previous wedges's last radian
             offset_theta = theta_final;
 
@@ -163,8 +193,9 @@
                 let label_size = backend.estimate_text_size(&perc_label, percentage_style)?;
                 let text_x_mid = (label_size.0 as f64 / 2.0).round() as i32;
                 let text_y_mid = (label_size.1 as f64 / 2.0).round() as i32;
+                let perc_radius = (self.radius + self.donut_hole) / 2.0;
                 let perc_coord = theta_to_ordinal_coord(
-                    self.radius / 2.0,
+                    perc_radius,
                     middle_theta,
                     &(self.center.0 - text_x_mid, self.center.1 - text_y_mid),
                 );
@@ -230,7 +261,7 @@
         center.1 += 1;
         radius += 1.0;
         assert!(colors.get(0).is_none());
-        assert!(labels.get(0).is_none());
+        assert!(labels.first().is_none());
         assert_eq!(radius, 801.0);
     }
 }
diff --git a/crates/plotters/src/element/text.rs b/crates/plotters/src/element/text.rs
index ca813c7..9baa201 100644
--- a/crates/plotters/src/element/text.rs
+++ b/crates/plotters/src/element/text.rs
@@ -1,5 +1,4 @@
 use std::borrow::Borrow;
-use std::i32;
 
 use super::{Drawable, PointCollection};
 use crate::style::{FontDesc, FontResult, LayoutBox, TextStyle};
@@ -116,6 +115,10 @@
     }
 }
 
+// Rewrite of the layout function for multiline-text. It crashes when UTF-8 is used
+// instead of ASCII. Solution taken from:
+// https://stackoverflow.com/questions/68122526/splitting-a-utf-8-string-into-chunks
+// and modified for our purposes.
 fn layout_multiline_text<'a, F: FnMut(&'a str)>(
     text: &'a str,
     max_width: u32,
@@ -126,32 +129,61 @@
         if max_width == 0 || line.is_empty() {
             func(line);
         } else {
-            let mut remaining = &line[0..];
+            let mut indices = line.char_indices().map(|(idx, _)| idx).peekable();
 
-            while !remaining.is_empty() {
-                let mut left = 0;
-                while left < remaining.len() {
-                    let width = font.box_size(&remaining[0..=left]).unwrap_or((0, 0)).0 as i32;
+            let it = std::iter::from_fn(|| {
+                let start_idx = match indices.next() {
+                    Some(idx) => idx,
+                    None => return None,
+                };
 
+                // iterate over indices
+                for idx in indices.by_ref() {
+                    let substring = &line[start_idx..idx];
+                    let width = font.box_size(substring).unwrap_or((0, 0)).0 as i32;
                     if width > max_width as i32 {
                         break;
                     }
-                    left += 1;
                 }
 
-                if left == 0 {
-                    left += 1;
-                }
+                let end_idx = match indices.peek() {
+                    Some(idx) => *idx,
+                    None => line.bytes().len(),
+                };
 
-                let cur_line = &remaining[..left];
-                remaining = &remaining[left..];
+                Some(&line[start_idx..end_idx])
+            });
 
-                func(cur_line);
+            for chunk in it {
+                func(chunk);
             }
         }
     }
 }
 
+// Only run the test on Linux because the default font is different
+// on other platforms, causing different multiline splits.
+#[cfg(all(feature = "ttf", target_os = "linux"))]
+#[test]
+fn test_multi_layout() {
+    use plotters_backend::{FontFamily, FontStyle};
+
+    let font = FontDesc::new(FontFamily::SansSerif, 20 as f64, FontStyle::Bold);
+
+    layout_multiline_text("öäabcde", 40, font, |txt| {
+        println!("Got: {}", txt);
+        assert!(txt == "öäabc" || txt == "de");
+    });
+
+    let font = FontDesc::new(FontFamily::SansSerif, 20 as f64, FontStyle::Bold);
+    layout_multiline_text("öä", 100, font, |txt| {
+        // This does not divide the line, but still crashed in the previous implementation
+        // of layout_multiline_text. So this test should be reliable
+        println!("Got: {}", txt);
+        assert_eq!(txt, "öä")
+    });
+}
+
 impl<'a, T: Borrow<str>> MultiLineText<'a, BackendCoord, T> {
     /// Compute the line layout
     pub fn compute_line_layout(&self) -> FontResult<Vec<LayoutBox>> {
diff --git a/crates/plotters/src/evcxr.rs b/crates/plotters/src/evcxr.rs
index 3438d34..9d7b966 100644
--- a/crates/plotters/src/evcxr.rs
+++ b/crates/plotters/src/evcxr.rs
@@ -2,8 +2,11 @@
 use crate::drawing::{DrawingArea, IntoDrawingArea};
 use plotters_backend::DrawingBackend;
 use plotters_svg::SVGBackend;
+use std::fs::File;
+use std::io::Write;
 
 #[cfg(feature = "evcxr_bitmap")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "evcxr_bitmap")))]
 use plotters_bitmap::BitMapBackend;
 
 /// The wrapper for the generated SVG
@@ -45,8 +48,27 @@
     SVGWrapper(buffer, "".to_string())
 }
 
+/// An evcxr figure that can save to the local file system and render in a notebook.
+pub fn evcxr_figure_with_saving<
+    Draw: FnOnce(DrawingArea<SVGBackend, Shift>) -> Result<(), Box<dyn std::error::Error>>,
+>(
+    filename: &str,
+    size: (u32, u32),
+    draw: Draw,
+) -> SVGWrapper {
+    let mut buffer = "".to_string();
+    let root = SVGBackend::with_string(&mut buffer, size).into_drawing_area();
+    draw(root).expect("Drawing failure");
+
+    let mut file = File::create(filename).expect("Unable to create file");
+    file.write_all(buffer.as_bytes())
+        .expect("Unable to write data");
+
+    SVGWrapper(buffer, "".to_string())
+}
 /// Start drawing an evcxr figure
 #[cfg(feature = "evcxr_bitmap")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "evcxr_bitmap")))]
 pub fn evcxr_bitmap_figure<
     Draw: FnOnce(DrawingArea<BitMapBackend, Shift>) -> Result<(), Box<dyn std::error::Error>>,
 >(
@@ -54,8 +76,9 @@
     draw: Draw,
 ) -> SVGWrapper {
     const PIXEL_SIZE: usize = 3;
-    let mut buf = Vec::new();
-    buf.resize((size.0 as usize) * (size.1 as usize) * PIXEL_SIZE, 0);
+
+    let mut buf = vec![0; (size.0 as usize) * (size.1 as usize) * PIXEL_SIZE];
+
     let root = BitMapBackend::with_buffer(&mut buf, size).into_drawing_area();
     draw(root).expect("Drawing failure");
     let mut buffer = "".to_string();
diff --git a/crates/plotters/src/lib.rs b/crates/plotters/src/lib.rs
index 86a75d0..230c679 100644
--- a/crates/plotters/src/lib.rs
+++ b/crates/plotters/src/lib.rs
@@ -1,4 +1,6 @@
 #![warn(missing_docs)]
+#![allow(clippy::type_complexity)]
+#![cfg_attr(doc_cfg, feature(doc_cfg))]
 /*!
 
 # Plotters - A Rust drawing library focusing on data plotting for both WASM and native applications 🦀📈🚀
@@ -152,7 +154,7 @@
     </a>
     <div class="galleryText">
         The 1D Gaussian Distribution
-        <a href="https://github.com/plotters-rs/plotters/blob/master/plotters/examples/nomal-dist2.rs">[code]</a>
+        <a href="https://github.com/plotters-rs/plotters/blob/master/plotters/examples/normal-dist2.rs">[code]</a>
     </div>
 </div>
 
@@ -361,7 +363,7 @@
 The following code shows a minimal example of this.
 
 ```text
-:dep plotters = { version = "^0.3.5", default_features = false, features = ["evcxr", "all_series", "all_elements"] }
+:dep plotters = { version = "^0.3.6", default-features = false, features = ["evcxr", "all_series", "all_elements"] }
 extern crate plotters;
 use plotters::prelude::*;
 
@@ -419,19 +421,19 @@
 Rust is a perfect language for data visualization. Although there are many mature visualization libraries in many different languages, Rust is one of the best languages that fits the need.
 
 * **Easy to use** Rust has a very good iterator system built into the standard library. With the help of iterators,
-plotting in Rust can be as easy as most of the high-level programming languages. The Rust based plotting library
-can be very easy to use.
+  plotting in Rust can be as easy as most of the high-level programming languages. The Rust based plotting library
+  can be very easy to use.
 
 * **Fast** If you need to render a figure with trillions of data points,
-Rust is a good choice. Rust's performance allows you to combine the data processing step
-and rendering step into a single application. When plotting in high-level programming languages,
-e.g. Javascript or Python, data points must be down-sampled before feeding into the plotting
-program because of the performance considerations. Rust is fast enough to do the data processing and visualization
-within a single program. You can also integrate the
-figure rendering code into your application to handle a huge amount of data and visualize it in real-time.
+  Rust is a good choice. Rust's performance allows you to combine the data processing step
+  and rendering step into a single application. When plotting in high-level programming languages,
+  e.g. Javascript or Python, data points must be down-sampled before feeding into the plotting
+  program because of the performance considerations. Rust is fast enough to do the data processing and visualization
+  within a single program. You can also integrate the
+  figure rendering code into your application to handle a huge amount of data and visualize it in real-time.
 
 * **WebAssembly Support** Rust is one of the languages with the best WASM support. Plotting in Rust could be
-very useful for visualization on a web page and would have a huge performance improvement comparing to Javascript.
+  very useful for visualization on a web page and would have a huge performance improvement comparing to Javascript.
 
 ## Plotting on HTML5 canvas with WASM Backend
 
@@ -639,7 +641,7 @@
 
 ### Reducing Depending Libraries && Turning Off Backends
 Plotters now supports use features to control the backend dependencies. By default, `BitMapBackend` and `SVGBackend` are supported,
-use `default_features = false` in the dependency description in `Cargo.toml` and you can cherry-pick the backend implementations.
+use `default-features = false` in the dependency description in `Cargo.toml` and you can cherry-pick the backend implementations.
 
 - `svg` Enable the `SVGBackend`
 - `bitmap` Enable the `BitMapBackend`
@@ -648,16 +650,16 @@
 
 ```toml
 [dependencies]
-plotters = { git = "https://github.com/plotters-rs/plotters.git", default_features = false, features = ["svg"] }
+plotters = { git = "https://github.com/plotters-rs/plotters.git", default-features = false, features = ["svg"] }
 ```
 
 The library also allows consumers to make use of the [`Palette`](https://crates.io/crates/palette/) crate's color types by default.
-This behavior can also be turned off by setting `default_features = false`.
+This behavior can also be turned off by setting `default-features = false`.
 
 ### List of Features
 
 This is the full list of features that is defined by `Plotters` crate.
-Use `default_features = false` to disable those default enabled features,
+Use `default-features = false` to disable those default enabled features,
 and then you should be able to cherry-pick what features you want to include into `Plotters` crate.
 By doing so, you can minimize the number of dependencies down to only `itertools` and compile time is less than 6s.
 
@@ -796,14 +798,12 @@
 
 /// Evaluation Context for Rust. See [the evcxr crate](https://crates.io/crates/evcxr) for more information.
 #[cfg(feature = "evcxr")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "evcxr")))]
 pub mod evcxr;
 
 #[cfg(test)]
 pub use crate::drawing::{check_color, create_mocked_drawing_area};
 
-#[cfg(feature = "palette_ext")]
-pub use palette;
-
 /// The module imports the most commonly used types and modules in Plotters
 pub mod prelude {
     // Chart related types
@@ -825,6 +825,7 @@
     pub use crate::coord::combinators::LogRange;
 
     #[cfg(feature = "chrono")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "chrono")))]
     pub use crate::coord::types::{
         IntoMonthly, IntoYearly, RangedDate, RangedDateTime, RangedDuration,
     };
@@ -836,23 +837,30 @@
 
     // Series helpers
     #[cfg(feature = "area_series")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "area_series")))]
     pub use crate::series::AreaSeries;
     #[cfg(feature = "histogram")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "histogram")))]
     pub use crate::series::Histogram;
-    #[cfg(feature = "line_series")]
-    pub use crate::series::LineSeries;
     #[cfg(feature = "point_series")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "point_series")))]
     pub use crate::series::PointSeries;
     #[cfg(feature = "surface_series")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "surface_series")))]
     pub use crate::series::SurfaceSeries;
+    #[cfg(feature = "line_series")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "line_series")))]
+    pub use crate::series::{DashedLineSeries, DottedLineSeries, LineSeries};
 
     // Styles
     pub use crate::style::{BLACK, BLUE, CYAN, GREEN, MAGENTA, RED, TRANSPARENT, WHITE, YELLOW};
 
     #[cfg(feature = "full_palette")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "full_palette")))]
     pub use crate::style::full_palette;
 
     #[cfg(feature = "colormaps")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "colormaps")))]
     pub use crate::style::colors::colormaps::*;
 
     pub use crate::style::{
@@ -868,13 +876,17 @@
     };
 
     #[cfg(feature = "boxplot")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "boxplot")))]
     pub use crate::element::Boxplot;
     #[cfg(feature = "candlestick")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "candlestick")))]
     pub use crate::element::CandleStick;
     #[cfg(feature = "errorbar")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "errorbar")))]
     pub use crate::element::ErrorBar;
 
     #[cfg(feature = "bitmap_backend")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "bitmap_backend")))]
     pub use crate::element::BitMapElement;
 
     // Data
@@ -882,6 +894,7 @@
 
     // TODO: This should be deprecated and completely removed
     #[cfg(feature = "deprecated_items")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "deprecated_items")))]
     #[allow(deprecated)]
     pub use crate::element::Path;
 
@@ -893,13 +906,16 @@
         Result<T, crate::drawing::DrawingAreaErrorKind<D::ErrorType>>;
 
     #[cfg(feature = "evcxr")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "evcxr")))]
     pub use crate::evcxr::evcxr_figure;
 
     // Re-export tier 1 backends for backward compatibility
     #[cfg(feature = "bitmap_backend")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "bitmap_backend")))]
     pub use plotters_bitmap::BitMapBackend;
 
     #[cfg(feature = "svg_backend")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "svg_backend")))]
     pub use plotters_svg::SVGBackend;
 }
 
@@ -907,11 +923,13 @@
 pub mod backend {
     pub use plotters_backend::DrawingBackend;
     #[cfg(feature = "bitmap_backend")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "bitmap_backend")))]
     pub use plotters_bitmap::{
         bitmap_pixel::{BGRXPixel, PixelFormat, RGBPixel},
         BitMapBackend,
     };
     #[cfg(feature = "svg_backend")]
+    #[cfg_attr(doc_cfg, doc(cfg(feature = "svg_backend")))]
     pub use plotters_svg::SVGBackend;
 }
 
diff --git a/crates/plotters/src/series/histogram.rs b/crates/plotters/src/series/histogram.rs
index 2d7d8f4..2574727 100644
--- a/crates/plotters/src/series/histogram.rs
+++ b/crates/plotters/src/series/histogram.rs
@@ -180,7 +180,7 @@
         let mut buffer = HashMap::<usize, A>::new();
         for (x, y) in iter.into_iter() {
             if let Some(x) = self.br.index_of(&x.into()) {
-                *buffer.entry(x).or_insert_with(Default::default) += y;
+                *buffer.entry(x).or_default() += y;
             }
         }
         self.iter = buffer.into_iter();
diff --git a/crates/plotters/src/series/line_series.rs b/crates/plotters/src/series/line_series.rs
index 448d029..913366a 100644
--- a/crates/plotters/src/series/line_series.rs
+++ b/crates/plotters/src/series/line_series.rs
@@ -1,6 +1,8 @@
-use crate::element::{Circle, DynElement, IntoDynElement, PathElement};
-use crate::style::ShapeStyle;
-use plotters_backend::DrawingBackend;
+use crate::element::{
+    Circle, DashedPathElement, DottedPathElement, DynElement, IntoDynElement, PathElement,
+};
+use crate::style::{ShapeStyle, SizeDesc};
+use plotters_backend::{BackendCoord, DrawingBackend};
 use std::marker::PhantomData;
 
 /**
@@ -84,6 +86,129 @@
     }
 }
 
+/// A dashed line series, map an iterable object to the dashed line element. Can be used to draw simple dashed and dotted lines.
+///
+/// If you want to use more complex shapes as points in the line, you can use `plotters::series::line_series::DottedLineSeries`.
+///
+/// # Examples
+///
+/// Dashed line:
+/// ```Rust
+/// chart_context
+///     .draw_series(DashedLineSeries::new(
+///         data_series,
+///         5, /* size = length of dash */
+///         10, /* spacing */
+///         ShapeStyle {
+///             color: BLACK.mix(1.0),
+///             filled: false,
+///             stroke_width: 1,
+///         },
+///     ))
+///     .unwrap();
+/// ```
+///
+/// Dotted line: (keep `size` and `stroke_width` the same to achieve dots)
+/// ```Rust
+/// chart_context
+///     .draw_series(DashedLineSeries::new(
+///         data_series,
+///         1, /* size = length of dash */
+///         4, /* spacing, best to keep this at least 1 larger than size */
+///         ShapeStyle {
+///             color: BLACK.mix(1.0),
+///             filled: false,
+///             stroke_width: 1,
+///         },
+///     ))
+///     .unwrap();
+/// ```
+pub struct DashedLineSeries<I: Iterator + Clone, Size: SizeDesc> {
+    points: I,
+    size: Size,
+    spacing: Size,
+    style: ShapeStyle,
+}
+
+impl<I: Iterator + Clone, Size: SizeDesc> DashedLineSeries<I, Size> {
+    /// Create a new line series from
+    /// - `points`: The iterator of the points
+    /// - `size`: The dash size
+    /// - `spacing`: The dash-to-dash spacing (gap size)
+    /// - `style`: The shape style
+    /// - returns the created element
+    pub fn new<I0>(points: I0, size: Size, spacing: Size, style: ShapeStyle) -> Self
+    where
+        I0: IntoIterator<IntoIter = I>,
+    {
+        Self {
+            points: points.into_iter(),
+            size,
+            spacing,
+            style,
+        }
+    }
+}
+
+impl<I: Iterator + Clone, Size: SizeDesc> IntoIterator for DashedLineSeries<I, Size> {
+    type Item = DashedPathElement<I, Size>;
+    type IntoIter = std::iter::Once<Self::Item>;
+
+    fn into_iter(self) -> Self::IntoIter {
+        std::iter::once(DashedPathElement::new(
+            self.points,
+            self.size,
+            self.spacing,
+            self.style,
+        ))
+    }
+}
+
+/// A dotted line series, map an iterable object to the dotted line element.
+pub struct DottedLineSeries<I: Iterator + Clone, Size: SizeDesc, Marker> {
+    points: I,
+    shift: Size,
+    spacing: Size,
+    func: Box<dyn Fn(BackendCoord) -> Marker>,
+}
+
+impl<I: Iterator + Clone, Size: SizeDesc, Marker> DottedLineSeries<I, Size, Marker> {
+    /// Create a new line series from
+    /// - `points`: The iterator of the points
+    /// - `shift`: The shift of the first marker
+    /// - `spacing`: The spacing between markers
+    /// - `func`: The marker function
+    /// - returns the created element
+    pub fn new<I0, F>(points: I0, shift: Size, spacing: Size, func: F) -> Self
+    where
+        I0: IntoIterator<IntoIter = I>,
+        F: Fn(BackendCoord) -> Marker + 'static,
+    {
+        Self {
+            points: points.into_iter(),
+            shift,
+            spacing,
+            func: Box::new(func),
+        }
+    }
+}
+
+impl<I: Iterator + Clone, Size: SizeDesc, Marker: 'static> IntoIterator
+    for DottedLineSeries<I, Size, Marker>
+{
+    type Item = DottedPathElement<I, Size, Marker>;
+    type IntoIter = std::iter::Once<Self::Item>;
+
+    fn into_iter(self) -> Self::IntoIter {
+        std::iter::once(DottedPathElement::new(
+            self.points,
+            self.shift,
+            self.spacing,
+            self.func,
+        ))
+    }
+}
+
 #[cfg(test)]
 mod test {
     use crate::prelude::*;
@@ -94,7 +219,7 @@
             m.check_draw_path(|c, s, _path| {
                 assert_eq!(c, RED.to_rgba());
                 assert_eq!(s, 3);
-                // TODO when cleanup the backend coordinate defination, then we uncomment the
+                // TODO when cleanup the backend coordinate definition, then we uncomment the
                 // following check
                 //for i in 0..100 {
                 //    assert_eq!(path[i], (i as i32 * 2, 199 - i as i32 * 2));
@@ -102,8 +227,8 @@
             });
 
             m.drop_check(|b| {
-                assert_eq!(b.num_draw_path_call, 1);
-                assert_eq!(b.draw_count, 1);
+                assert_eq!(b.num_draw_path_call, 8);
+                assert_eq!(b.draw_count, 27);
             });
         });
 
@@ -114,8 +239,20 @@
         chart
             .draw_series(LineSeries::new(
                 (0..100).map(|x| (x, x)),
-                Into::<ShapeStyle>::into(&RED).stroke_width(3),
+                Into::<ShapeStyle>::into(RED).stroke_width(3),
             ))
             .expect("Drawing Error");
+        chart
+            .draw_series(DashedLineSeries::new(
+                (0..=50).map(|x| (0, x)),
+                10,
+                5,
+                Into::<ShapeStyle>::into(RED).stroke_width(3),
+            ))
+            .expect("Drawing Error");
+        let mk_f = |c| Circle::new(c, 3, Into::<ShapeStyle>::into(RED).filled());
+        chart
+            .draw_series(DottedLineSeries::new((0..=50).map(|x| (x, 0)), 5, 5, mk_f))
+            .expect("Drawing Error");
     }
 }
diff --git a/crates/plotters/src/series/mod.rs b/crates/plotters/src/series/mod.rs
index a0c8f19..706bd21 100644
--- a/crates/plotters/src/series/mod.rs
+++ b/crates/plotters/src/series/mod.rs
@@ -22,12 +22,17 @@
 mod surface;
 
 #[cfg(feature = "area_series")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "area_series")))]
 pub use area_series::AreaSeries;
 #[cfg(feature = "histogram")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "histogram")))]
 pub use histogram::Histogram;
 #[cfg(feature = "line_series")]
-pub use line_series::LineSeries;
+#[cfg_attr(doc_cfg, doc(cfg(feature = "line_series")))]
+pub use line_series::{DashedLineSeries, DottedLineSeries, LineSeries};
 #[cfg(feature = "point_series")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "point_series")))]
 pub use point_series::PointSeries;
 #[cfg(feature = "surface_series")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "surface_series")))]
 pub use surface::SurfaceSeries;
diff --git a/crates/plotters/src/series/surface.rs b/crates/plotters/src/series/surface.rs
index 2307e32..2621f4f 100644
--- a/crates/plotters/src/series/surface.rs
+++ b/crates/plotters/src/series/surface.rs
@@ -213,7 +213,7 @@
         } else {
             self.vidx_1 += 1;
             self.vidx_2 = 1;
-            if let (Some(b0), Some(b1)) = (self.free_var_2.get(0), self.free_var_2.get(1)) {
+            if let (Some(b0), Some(b1)) = (self.free_var_2.first(), self.free_var_2.get(1)) {
                 (b0, b1)
             } else {
                 return None;
diff --git a/crates/plotters/src/style/color.rs b/crates/plotters/src/style/color.rs
index 7e372cd..2a5fbf0 100644
--- a/crates/plotters/src/style/color.rs
+++ b/crates/plotters/src/style/color.rs
@@ -137,9 +137,9 @@
     #[allow(clippy::many_single_char_names)]
     fn to_backend_color(&self) -> BackendColor {
         let (h, s, l) = (
-            self.0.min(1.0).max(0.0),
-            self.1.min(1.0).max(0.0),
-            self.2.min(1.0).max(0.0),
+            self.0.clamp(0.0, 1.0),
+            self.1.clamp(0.0, 1.0),
+            self.2.clamp(0.0, 1.0),
         );
 
         if s == 0.0 {
diff --git a/crates/plotters/src/style/colors/colormaps.rs b/crates/plotters/src/style/colors/colormaps.rs
index 50430db..35ebddb 100644
--- a/crates/plotters/src/style/colors/colormaps.rs
+++ b/crates/plotters/src/style/colors/colormaps.rs
@@ -1,15 +1,13 @@
 use crate::style::{HSLColor, RGBAColor, RGBColor};
 
-use num_traits::{Float, FromPrimitive, ToPrimitive};
-
 /// Converts scalar values to colors.
 pub trait ColorMap<ColorType: crate::prelude::Color, FloatType = f32>
 where
-    FloatType: Float,
+    FloatType: num_traits::Float,
 {
     /// Takes a scalar value 0.0 <= h <= 1.0 and returns the corresponding color.
     /// Typically color-scales are named according to which color-type they return.
-    /// To use upper and lower bounds with ths function see [get_color_normalized](ColorMap::get_color_normalized).
+    /// To use upper and lower bounds with this function see [get_color_normalized](ColorMap::get_color_normalized).
     fn get_color(&self, h: FloatType) -> ColorType {
         self.get_color_normalized(h, FloatType::zero(), FloatType::one())
     }
@@ -47,6 +45,8 @@
     }
 }
 
+#[macro_export]
+#[doc(hidden)]
 macro_rules! calculate_new_color_value(
     ($relative_difference:expr, $colors:expr, $index_upper:expr, $index_lower:expr, RGBColor) => {
         RGBColor(
@@ -81,20 +81,34 @@
     };
 );
 
-fn calculate_relative_difference_index_lower_upper<
-    FloatType: Float + FromPrimitive + ToPrimitive,
+// Helper function to calculate the lower and upper index nearest to a provided float value.
+//
+// Used to obtain colors from a colorscale given a value h between 0.0 and 1.0.
+// It also returns the relative difference which can then be used to calculate a linear interpolation between the two nearest colors.
+// ```
+// # use plotters::prelude::*;
+// let r = calculate_relative_difference_index_lower_upper(1.2, 1.0, 3.0, 4);
+// let (relative_difference, lower_index, upper_index) = r;
+//
+// assert_eq!(relative_difference, 0.7000000000000001);
+// assert_eq!(lower_index, 0);
+// assert_eq!(upper_index, 1);
+// ```
+#[doc(hidden)]
+pub fn calculate_relative_difference_index_lower_upper<
+    FloatType: num_traits::Float + num_traits::FromPrimitive + num_traits::ToPrimitive,
 >(
     h: FloatType,
     min: FloatType,
     max: FloatType,
-    n_colors: usize,
+    n_steps: usize,
 ) -> (FloatType, usize, usize) {
     // Ensure that we do have a value in bounds
     let h = num_traits::clamp(h, min, max);
     // Next calculate a normalized value between 0.0 and 1.0
     let t = (h - min) / (max - min);
     let approximate_index =
-        t * (FloatType::from_usize(n_colors).unwrap() - FloatType::one()).max(FloatType::zero());
+        t * (FloatType::from_usize(n_steps).unwrap() - FloatType::one()).max(FloatType::zero());
     // Calculate which index are the two most nearest of the supplied value
     let index_lower = approximate_index.floor().to_usize().unwrap();
     let index_upper = approximate_index.ceil().to_usize().unwrap();
@@ -106,7 +120,7 @@
 macro_rules! implement_color_scale_for_derived_color_map{
     ($($color_type:ident),+) => {
         $(
-            impl<FloatType: Float + FromPrimitive + ToPrimitive> ColorMap<$color_type, FloatType> for DerivedColorMap<$color_type> {
+            impl<FloatType: num_traits::Float + num_traits::FromPrimitive + num_traits::ToPrimitive> ColorMap<$color_type, FloatType> for DerivedColorMap<$color_type> {
                 fn get_color_normalized(&self, h: FloatType, min: FloatType, max: FloatType) -> $color_type {
                     let (
                         relative_difference,
@@ -119,7 +133,7 @@
                         self.colors.len()
                     );
                     // Interpolate the final color linearly
-                    calculate_new_color_value!(
+                    $crate::calculate_new_color_value!(
                         relative_difference,
                         self.colors,
                         index_upper,
@@ -134,11 +148,30 @@
 
 implement_color_scale_for_derived_color_map! {RGBAColor, RGBColor, HSLColor}
 
+#[macro_export]
+#[doc(hidden)]
+// Counts the number of arguments which are separated by spaces
+//
+// This macro is used internally to determine the size of an array to hold all new colors.
+// ```
+// # use plotters::count;
+// let counted = count!{Plotting is fun};
+// assert_eq!(counted, 3);
+//
+// let counted2 = count!{0_usize was my favourite 1_f64 last century};
+// assert_eq!(counted2, 7);
+//
+// let new_array = ["Hello"; count!(Plotting is fun)];
+// assert_eq!(new_array, ["Hello"; 3]);
+// ```
 macro_rules! count {
     () => (0usize);
-    ($x:tt $($xs:tt)* ) => (1usize + count!($($xs)*));
+    ($x:tt $($xs:tt)* ) => (1usize + $crate::count!($($xs)*));
 }
 
+#[macro_export]
+#[doc(hidden)]
+/// Converts a given color identifier and a sequence of colors to an array of them.
 macro_rules! define_colors_from_list_of_values_or_directly{
     ($color_type:ident, $(($($color_value:expr),+)),+) => {
         [$($color_type($($color_value),+)),+]
@@ -148,9 +181,12 @@
     };
 }
 
+#[macro_export]
+#[doc(hidden)]
+/// Implements the [ColorMap] trait on a given color scale.
 macro_rules! implement_linear_interpolation_color_map {
     ($color_scale_name:ident, $color_type:ident) => {
-        impl<FloatType: std::fmt::Debug + Float + FromPrimitive + ToPrimitive>
+        impl<FloatType: std::fmt::Debug + num_traits::Float + num_traits::FromPrimitive + num_traits::ToPrimitive>
             ColorMap<$color_type, FloatType> for $color_scale_name
         {
             fn get_color_normalized(
@@ -170,7 +206,7 @@
                     Self::COLORS.len()
                 );
                 // Interpolate the final color linearly
-                calculate_new_color_value!(
+                $crate::calculate_new_color_value!(
                     relative_difference,
                     Self::COLORS,
                     index_upper,
@@ -184,7 +220,7 @@
             #[doc = "Get color value from `"]
             #[doc = stringify!($color_scale_name)]
             #[doc = "` by supplying a parameter 0.0 <= h <= 1.0"]
-            pub fn get_color<FloatType: std::fmt::Debug + Float + FromPrimitive + ToPrimitive>(
+            pub fn get_color<FloatType: std::fmt::Debug + num_traits::Float + num_traits::FromPrimitive + num_traits::ToPrimitive>(
                 h: FloatType,
             ) -> $color_type {
                 let color_scale = $color_scale_name {};
@@ -195,7 +231,7 @@
             #[doc = stringify!($color_scale_name)]
             #[doc = "` by supplying lower and upper bounds min, max and a parameter h where min <= h <= max"]
             pub fn get_color_normalized<
-                FloatType: std::fmt::Debug + Float + FromPrimitive + ToPrimitive,
+                FloatType: std::fmt::Debug + num_traits::Float + num_traits::FromPrimitive + num_traits::ToPrimitive,
             >(
                 h: FloatType,
                 min: FloatType,
@@ -208,34 +244,57 @@
     };
 }
 
+#[doc(inline)]
+pub use crate::def_linear_colormap;
+
 #[macro_export]
-/// Macro to create a new colormap with evenly spaced colors at compile-time.
-macro_rules! define_linear_interpolation_color_map{
+#[doc(hidden)]
+/// Create a new colormap with evenly spaced colors and interpolates between them automatically.
+///
+/// This macro works by taking a identifier (name) for the colormap, the type of color to specify, a
+/// docstring and a list of colors and constructs an empty struct on which it implements the [ColorMap] trait.
+///
+/// ```
+/// use plotters::prelude::*;
+/// def_linear_colormap! {
+///     BlackWhite,
+///     RGBColor,
+///     "Simple chromatic colormap from black to white.",
+///     (  0,   0,   0),
+///     (255, 255,   255)
+/// }
+///
+/// assert_eq!(BlackWhite::get_color(0.0), RGBColor(0,0,0));
+/// ```
+///
+/// Hint: Some helper macros and functions have been deliberately hidden from end users.
+/// Look for them in the source code if you are interested.
+macro_rules! def_linear_colormap{
     ($color_scale_name:ident, $color_type:ident, $doc:expr, $(($($color_value:expr),+)),*) => {
         #[doc = $doc]
-        pub struct $color_scale_name {}
+        pub struct $color_scale_name;
 
         impl $color_scale_name {
             // const COLORS: [$color_type; $number_colors] = [$($color_type($($color_value),+)),+];
-            // const COLORS: [$color_type; count!($(($($color_value:expr),+))*)] = [$($color_type($($color_value),+)),+];
-            const COLORS: [$color_type; count!($(($($color_value:expr),+))*)] = define_colors_from_list_of_values_or_directly!{$color_type, $(($($color_value),+)),*};
+            // const COLORS: [$color_type; $crate::count!($(($($color_value:expr),+))*)] = [$($color_type($($color_value),+)),+];
+            const COLORS: [$color_type; $crate::count!($(($($color_value:expr),+))*)] = $crate::define_colors_from_list_of_values_or_directly!{$color_type, $(($($color_value),+)),*};
         }
 
-        implement_linear_interpolation_color_map!{$color_scale_name, $color_type}
+        $crate::implement_linear_interpolation_color_map!{$color_scale_name, $color_type}
     };
     ($color_scale_name:ident, $color_type:ident, $doc:expr, $($color_complete:tt),+) => {
         #[doc = $doc]
-        pub struct $color_scale_name {}
+        pub struct $color_scale_name;
 
         impl $color_scale_name {
-            const COLORS: [$color_type; count!($($color_complete)*)] = define_colors_from_list_of_values_or_directly!{$($color_complete),+};
+            const COLORS: [$color_type; $crate::count!($($color_complete)*)] = $crate::define_colors_from_list_of_values_or_directly!{$($color_complete),+};
         }
 
-        implement_linear_interpolation_color_map!{$color_scale_name, $color_type}
+        $crate::implement_linear_interpolation_color_map!{$color_scale_name, $color_type}
     }
 }
 
-define_linear_interpolation_color_map! {
+def_linear_colormap! {
     ViridisRGBA,
     RGBAColor,
     "A colormap optimized for visually impaired people (RGBA format).
@@ -251,7 +310,7 @@
     (254, 232,  37, 1.0)
 }
 
-define_linear_interpolation_color_map! {
+def_linear_colormap! {
     ViridisRGB,
     RGBColor,
     "A colormap optimized for visually impaired people (RGB Format).
@@ -267,7 +326,7 @@
     (254, 232,  37)
 }
 
-define_linear_interpolation_color_map! {
+def_linear_colormap! {
     BlackWhite,
     RGBColor,
     "Simple chromatic colormap from black to white.",
@@ -275,7 +334,7 @@
     (255, 255,   255)
 }
 
-define_linear_interpolation_color_map! {
+def_linear_colormap! {
     MandelbrotHSL,
     HSLColor,
     "Colormap created to replace the one used in the mandelbrot example.",
@@ -283,7 +342,7 @@
     (1.0, 1.0, 0.5)
 }
 
-define_linear_interpolation_color_map! {
+def_linear_colormap! {
     VulcanoHSL,
     HSLColor,
     "A vulcanic colormap that display red/orange and black colors",
@@ -292,7 +351,7 @@
 }
 
 use super::full_palette::*;
-define_linear_interpolation_color_map! {
+def_linear_colormap! {
     Bone,
     RGBColor,
     "Dark colormap going from black over blue to white.",
@@ -301,7 +360,7 @@
     WHITE
 }
 
-define_linear_interpolation_color_map! {
+def_linear_colormap! {
     Copper,
     RGBColor,
     "Friendly black to brown colormap.",
diff --git a/crates/plotters/src/style/colors/mod.rs b/crates/plotters/src/style/colors/mod.rs
index 8aa09a7..aadee70 100644
--- a/crates/plotters/src/style/colors/mod.rs
+++ b/crates/plotters/src/style/colors/mod.rs
@@ -57,9 +57,11 @@
 define_color!(TRANSPARENT, 0, 0, 0, 0.0, "Transparent");
 
 #[cfg(feature = "colormaps")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "colormaps")))]
 /// Colormaps can be used to simply go from a scalar value to a color value which will be more/less
 /// intense corresponding to the value of the supplied scalar.
 /// These colormaps can also be defined by the user and be used with lower and upper bounds.
 pub mod colormaps;
 #[cfg(feature = "full_palette")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "full_palette")))]
 pub mod full_palette;
diff --git a/crates/plotters/src/style/font/ttf.rs b/crates/plotters/src/style/font/ttf.rs
index 345aae4..5d5a720 100644
--- a/crates/plotters/src/style/font/ttf.rs
+++ b/crates/plotters/src/style/font/ttf.rs
@@ -1,7 +1,6 @@
 use std::borrow::{Borrow, Cow};
 use std::cell::RefCell;
 use std::collections::HashMap;
-use std::i32;
 use std::sync::{Arc, RwLock};
 
 use lazy_static::lazy_static;
@@ -82,7 +81,9 @@
             _ => unreachable!(),
         };
         let face = unsafe {
-            std::mem::transmute::<_, Option<Face<'static>>>(ttf_parser::Face::parse(data, idx).ok())
+            std::mem::transmute::<Option<_>, Option<Face<'static>>>(
+                ttf_parser::Face::parse(data, idx).ok(),
+            )
         };
         Self { inner: font, face }
     }
@@ -124,7 +125,7 @@
         font_object_cache
             .borrow()
             .get(Borrow::<str>::borrow(&key))
-            .map(Clone::clone)
+            .cloned()
     }) {
         return Ok(font_object);
     }
@@ -132,12 +133,12 @@
     // Then we need to check if the data cache contains the font data
     let cache = DATA_CACHE.read().unwrap();
     if let Some(data) = cache.get(Borrow::<str>::borrow(&key)) {
-        return data.clone().map(|handle| {
+        data.clone().map(|handle| {
             handle
                 .load()
                 .map(FontExt::new)
                 .map_err(|e| FontError::FontLoadError(Arc::new(e)))
-        })?;
+        })??;
     }
     drop(cache);
 
@@ -266,8 +267,8 @@
                     .rasterize_glyph(
                         &mut canvas,
                         glyph_id,
-                        em as f32,
-                        Transform2F::from_translation(Vector2F::new(0.0, em as f32)),
+                        em,
+                        Transform2F::from_translation(Vector2F::new(0.0, em)),
                         HintingOptions::None,
                         RasterizationOptions::GrayscaleAa,
                     )
@@ -314,6 +315,6 @@
 
         // TODO: Check they are the same
 
-        return Ok(());
+        Ok(())
     }
 }
diff --git a/crates/plotters/src/style/font/web.rs b/crates/plotters/src/style/font/web.rs
index e70e7b1..7af9996 100644
--- a/crates/plotters/src/style/font/web.rs
+++ b/crates/plotters/src/style/font/web.rs
@@ -34,7 +34,7 @@
         let body = document.body().unwrap();
         let span = document.create_element("span").unwrap();
         span.set_text_content(Some(text));
-        span.set_attribute("style", &format!("display: inline-block; font-family:{}; font-size: {}px; position: fixed; top: 100%", self.0, size)).unwrap();
+        span.set_attribute("style", &format!("display: inline-block; font-family:{}; font-style:{}; font-size: {}px; position: fixed; top: 100%", self.0, self.1, size)).unwrap();
         let span = span.into();
         body.append_with_node_1(&span).unwrap();
         let elem = JsCast::dyn_into::<HtmlElement>(span).unwrap();
diff --git a/crates/plotters/src/style/mod.rs b/crates/plotters/src/style/mod.rs
index 4daa0a8..90bed9f 100644
--- a/crates/plotters/src/style/mod.rs
+++ b/crates/plotters/src/style/mod.rs
@@ -15,6 +15,7 @@
 pub use colors::{BLACK, BLUE, CYAN, GREEN, MAGENTA, RED, TRANSPARENT, WHITE, YELLOW};
 
 #[cfg(feature = "full_palette")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "full_palette")))]
 pub use colors::full_palette;
 
 #[cfg(all(not(target_arch = "wasm32"), feature = "ab_glyph"))]
diff --git a/crates/plotters/src/style/shape.rs b/crates/plotters/src/style/shape.rs
index 389cc75..97ac6b6 100644
--- a/crates/plotters/src/style/shape.rs
+++ b/crates/plotters/src/style/shape.rs
@@ -2,7 +2,7 @@
 use plotters_backend::{BackendColor, BackendStyle};
 
 /// Style for any shape
-#[derive(Copy, Clone)]
+#[derive(Copy, Clone, Debug, PartialEq)]
 pub struct ShapeStyle {
     /// Specification of the color.
     pub color: RGBAColor,
diff --git a/crates/toml/.android-checksum.json b/crates/toml/.android-checksum.json
index 2fa6ba0..244af8b 100644
--- a/crates/toml/.android-checksum.json
+++ b/crates/toml/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"ed1c18522ca0521813573494f165af5d269b35868ff6340b8826bed5a3e9de5c","Android.bp":"807148b0d8d65b5dc7f1055fbe6b3c1738863e3bda709369636f58a7e5dafc75","Cargo.lock":"e0ebe89b99a999b15f65db29d4729b6e5151ad717a2e248a6b6ca32a94b68d16","Cargo.toml":"1ec6907d38acbff1a663f08c4828d68f69142a044a2c0ba6cc4cd87ccb5444ae","LICENSE":"ca8c108c730bc014297428bf42afe28d87791ecc5e7c6302233ab041bc20815b","LICENSE-APACHE":"e4493d0badd82c469fd611cf0c31ea8a74cce85c52c4a4c2579e344226f0602e","LICENSE-MIT":"538f704e6bc384de6dd775d81e9df89f9d718f0e2808a24a789eaa03beb129d3","METADATA":"5fd1c52b74cf5b1f9989a53f3dfb31dae007b7bc54735769863113caf8f2ed22","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"88c1bcea6c3dc175ab2ef2e6b99ba78f98d9470a93f115f4f0da1205ef71428a","cargo_embargo.json":"239d8e8ee49ab8854b0c7e906cc1c6b0f2bdbd081cb19156345a353c69bf93ff","examples/decode.rs":"16df4cdb0d28f075eae95d480fa3bfcf4729b33720d77358133c181ea7b05939","examples/enum_external.rs":"1ccc93149e9157e04e964bb844aaa369aaf6e449208594f2b2df76d885f14be1","examples/toml2json.rs":"aec95608ef2ef5c655404e5ab27918dad3a94a251ab67c8a385a8ac8a3dad488","patches/LICENSE.patch":"67bfc7706d9a957a3b06ec11a323c95eb50826cec49c1749ed0fc3581bef2299","src/de.rs":"1c5bbd16e20d7817fd57b2a75a3b8821c3f18d09b9003ab72098b49ff1463e7b","src/edit.rs":"fa7d7c416425e41ead117721ded65aa202647acced6e4a0d2adb522184242068","src/fmt.rs":"24069082b6fab0cde8516df4e8fd40fdb4d88bda77a5cd7a4b32326a7cb6e99c","src/lib.rs":"98ff092c5c5efdb6de4105c827dc4e2e8cba2b11d925548cc9ba048b736a77fa","src/macros.rs":"8346a51d6490052ed75246d034aaf5b19141c89d35f25ee58014fc21b096e3d5","src/map.rs":"1fc8f234df86a651a88260635a38428c60efd7ab470f80fd58fdb879be7a4a5a","src/ser.rs":"2a96efc34e9d5338321252c3101bced8941015472b521475d11e68fc0d5631c4","src/table.rs":"faa6de32a49afa6dba904e7954d132a7ac14eaf14af2b96d507339c4654c9b53","src/value.rs":"92348270c77aba2a1debdbaaf538751edbd739b2816e5b5a6640248580d29ed4","tests/decoder.rs":"92dd7b7ecb62486ce629f642822dbfe58baa4c9884e80a711e475bc7b73e98e6","tests/decoder_compliance.rs":"a07e99d9d125a460a048d7340ce3c9214ac7d9c93f982c4f827bb0caafb26803","tests/encoder.rs":"1e538845c38f8731474a9b5339c03c1916d421043d622539e43942e2b815e1b0","tests/encoder_compliance.rs":"587f8a8a7faf3f81b6bbef4c6a5ecf723fcea0b82b706db7d3cdb8f251aef804","tests/testsuite/de_errors.rs":"8167099b34ea9fdbc24934dbc56f7c1634798c29108d8e9348524a0e29ac07f9","tests/testsuite/display.rs":"07f35baf286775b08070f3319eaa205368ff495b8d3af06c84a4d1049845273a","tests/testsuite/display_tricky.rs":"39d3c1182376517f575df3897bfdc4c9478d442c3d2ddf49c13a1a90ffedf611","tests/testsuite/enum_external_deserialize.rs":"49cdcebf6aa274745f3f7d6eeb35905d27948339a30d1dabd7d286e929f5ac74","tests/testsuite/float.rs":"c2bfceade5ee18e87bef6e20696b533bff3249441b4d3d2820c54d874542868c","tests/testsuite/formatting.rs":"39796affb2f0d5dc28b536b5eeea7800944e1cbbd1f20ab8a0fb01a9e541e484","tests/testsuite/macros.rs":"d02c01593fb379f42da155cbf26054061328feb485966207ead8329ad93b9552","tests/testsuite/main.rs":"b2b919ee6c39999e014793461677f5e3342f4352cfdccff871ca6e295ce62613","tests/testsuite/pretty.rs":"2a7dac71a9584e783b45444ba16310b4b016f96709bd8e21b04f97f35a9f1106","tests/testsuite/serde.rs":"baa8c35ed0bfaf295b719179dccf39092e1a58622986c594a4ad129e18d6944a","tests/testsuite/spanned.rs":"a064ba02c8e473d950429ad72cbafff62f70def9a01cbf3ada9e6f6266d80c83","tests/testsuite/spanned_impls.rs":"019aedd5e31d72edd1a1697b745f5c2fecf28a71204810a9a74f03b30c5662ac","tests/testsuite/tables_last.rs":"4774c76ed7569f9bc80ad0f84708ebc4f156a8c2c69c1722b155ecefb1fd235d"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"8d998aa2aafc5b97bac79ef3720ca2b3e8721cd907ce4e53ced21043862a9564","Android.bp":"11d60a1dbab17e9a52a211ab4236e1d0ab217aebb39c23537b6e5f707f5c483a","Cargo.lock":"a87a8d00b7e1d43b03ec61b564d77941567fbaa6c7a132c3b583f7681bc39911","Cargo.toml":"0537aaa2e1ea61c9491175c67884623158200fa33403bc7dd2aa92dd64cb7b58","LICENSE":"ca8c108c730bc014297428bf42afe28d87791ecc5e7c6302233ab041bc20815b","LICENSE-APACHE":"e4493d0badd82c469fd611cf0c31ea8a74cce85c52c4a4c2579e344226f0602e","LICENSE-MIT":"538f704e6bc384de6dd775d81e9df89f9d718f0e2808a24a789eaa03beb129d3","METADATA":"f4e9e6126788c7568fb074f760737bcba4f1352ae8f6c11a50a4d38892908f59","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"88c1bcea6c3dc175ab2ef2e6b99ba78f98d9470a93f115f4f0da1205ef71428a","cargo_embargo.json":"239d8e8ee49ab8854b0c7e906cc1c6b0f2bdbd081cb19156345a353c69bf93ff","examples/decode.rs":"16df4cdb0d28f075eae95d480fa3bfcf4729b33720d77358133c181ea7b05939","examples/enum_external.rs":"1ccc93149e9157e04e964bb844aaa369aaf6e449208594f2b2df76d885f14be1","examples/toml2json.rs":"7d8b8b1a41a7e6bdab780747c2b827a02279123a0660c692c75d1d8cb1478d81","patches/LICENSE.patch":"67bfc7706d9a957a3b06ec11a323c95eb50826cec49c1749ed0fc3581bef2299","src/de.rs":"c7422c2db6e13e2a6dc76e527a8dffef0c3509076c89a8323ca8e88a0025c05c","src/edit.rs":"fa7d7c416425e41ead117721ded65aa202647acced6e4a0d2adb522184242068","src/fmt.rs":"f2ebad7e60510f9c392f1d018af07e3c5a953106e0e826d9267f801a4de2876c","src/lib.rs":"a848ae0391d55ab2417788215df587a1df4e7504b5d924cc4839ca51951a6ef3","src/macros.rs":"7ca07c3aede6b376e5abc709bbb89dfe4559ae95efec1de0522736342d9d2ea8","src/map.rs":"4edddb4dbd3ab5ed59578ee5871b0b0cd32f3989c3123b64f6705b7990548abb","src/ser.rs":"d127e7d56281a28b919d1fef539a946ead205aa7a4b98087b00fc7e295cb2189","src/table.rs":"faa6de32a49afa6dba904e7954d132a7ac14eaf14af2b96d507339c4654c9b53","src/value.rs":"81466e4b3ac24cb848519da5028cd0526639ff5903b0b0e2db5f7df07d1f48f2","tests/decoder.rs":"04ec9cc023c26e03c4e3b09a45b1f1df5d2db74800558bbd6bdda675a5485af3","tests/decoder_compliance.rs":"a07e99d9d125a460a048d7340ce3c9214ac7d9c93f982c4f827bb0caafb26803","tests/encoder.rs":"8041caf86be24bfa88525aa042da7351c4b5309d7563f0c4a3802ddea32440b2","tests/encoder_compliance.rs":"587f8a8a7faf3f81b6bbef4c6a5ecf723fcea0b82b706db7d3cdb8f251aef804","tests/testsuite/de_errors.rs":"4c1507c90789ed16221183b8a2dadfedcd792496beb87a8559dfa182333fa14d","tests/testsuite/display.rs":"a408a3147cd33151de032f539c503e788815c6877629aaff4155683a19fbf50a","tests/testsuite/display_tricky.rs":"8fd273503b20fee0b647f6d6203db194e921b36dd14e7ea9b66a7932c0c52570","tests/testsuite/enum_external_deserialize.rs":"21db0f2a324b27ca1968f1e6da67323d244e173599c0d98ee5d7a9b63bfb0703","tests/testsuite/float.rs":"c2bfceade5ee18e87bef6e20696b533bff3249441b4d3d2820c54d874542868c","tests/testsuite/formatting.rs":"bde71ab906aa662548410f158a995865f21468568ef7778f101a5d4656f0f147","tests/testsuite/macros.rs":"0e2b6f9f91ae632b8c599fc6ee6d1310cf263c7b3eac45d749fced4d76312814","tests/testsuite/main.rs":"b2b919ee6c39999e014793461677f5e3342f4352cfdccff871ca6e295ce62613","tests/testsuite/pretty.rs":"5f14338143929d733c37e51c98cf9ae69325d23d64e830fc8b34f0e840a4883c","tests/testsuite/serde.rs":"47e86e84fe0b8eb2ca244e6279e9cba5bd1a6d2e1c71fc82aa5d9ce235706f0e","tests/testsuite/spanned.rs":"22601496dc92f9805bd61348bbff7b39e9bf5082b932230c2bb3838e08c8491e","tests/testsuite/spanned_impls.rs":"019aedd5e31d72edd1a1697b745f5c2fecf28a71204810a9a74f03b30c5662ac","tests/testsuite/tables_last.rs":"530915b4b0999eaa711036fc0004ed5fc54f9f441a312de7220507de4f111688"}}
\ No newline at end of file
diff --git a/crates/toml/.cargo-checksum.json b/crates/toml/.cargo-checksum.json
index 5cf73e9..94e482f 100644
--- a/crates/toml/.cargo-checksum.json
+++ b/crates/toml/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.lock":"e9ac6868f92eaf3b5e08a5aee959fe88371579dfa2cd3b174767a697078ca874","Cargo.toml":"29bd75a7c5312f6925a1d1d23e926d348110f02cbf4d9a71e167b44bcbb4015f","LICENSE-APACHE":"c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"a915ead738822da2d74b883c7519d8e558299286bb823e26c7fdece901c3267e","examples/decode.rs":"ebb019364720589b634fa47a3fc4c8ca7ae14c9a6df8c89cd086e421d442cd77","examples/enum_external.rs":"4878e249aa095264c7824fc7b6fd30f9b0ec6891b16fff734a0490d906e1abbe","examples/toml2json.rs":"f69cf930e7e16f57288c27a57de5bf8e4f991abb483114a6c226ac5a3bddef44","src/de.rs":"faf32d0e29f8140c1b62f175dffa3ac4ffbf13034b74222a9c26d0477cd2e2a3","src/edit.rs":"52f1959a6e5c177097372ea04439662262960f2eb41c2b9ef0ce9ce77ed43f60","src/fmt.rs":"eb19258f004a403da7fd310b30c8964bdf5867ecd145bf4fcba708af51cb378f","src/lib.rs":"21982e43114486005dd9a1d31b7e5da425b3fea0e724a437d89fe42d674b4696","src/macros.rs":"a2f320170bfc8e59e5dfda129bb953a15d8efc6b622c3894dce87db541ede413","src/map.rs":"7a1b97ee1a2ab3fa933d24497066191a6760d118e6e4c8ba42cc891e4668c177","src/ser.rs":"f9c91c2f70c42152531143ae231c6130e4ce930c97b378011e5595ea123ff31b","src/table.rs":"7402b17dbb8d956a321af74df6f62b3eed0b7e500b7faa22337633857bf20fa6","src/value.rs":"1fb23e59a61456a3ec5fa1727674b28eb1141e9e056cdeb794ec2647c4a55b71","tests/decoder.rs":"114e708adc1467c03212e52e2ffef42d08233ab74f69c553a6db73ddbb874414","tests/decoder_compliance.rs":"b0ed26b0762d8dfc23532efb724789366ca343f7354a76216b3fb426c6915e5a","tests/encoder.rs":"4c2430ad514fe64e28b89d0bd7ad7d299fbda8df903304ddcda704ce5db20382","tests/encoder_compliance.rs":"eeaa92f9cb4ee008830006e78277dfea9c041bc923a0ef5538d79aeb95f022c0","tests/testsuite/de_errors.rs":"1bc8521181f9fbe884db3313a8e8a044b4a1cf4b8956530a3cc8be9bcb5468f8","tests/testsuite/display.rs":"164de8f7108ce1055159a19884d23f770bd25cf0ead6b23f6ff4340931c7afc5","tests/testsuite/display_tricky.rs":"9806743d670e5cc46ee0ffda3f4c1f8ac63ee1e702250f07b7cd2098750d25d1","tests/testsuite/enum_external_deserialize.rs":"28b4705d904b58a973ef27c6cdc948f8d404105f98a55efa111cce9e7b4b1a67","tests/testsuite/float.rs":"6be604bb11adb315ad01fdf7117db620508d38caedaaea63e777d7ed2e5e4973","tests/testsuite/formatting.rs":"3b279ab1f24ebeb07537764107c42be9a84731ead1a88596785186777aafd1ee","tests/testsuite/macros.rs":"cf99ad3b191b68e044d0b01aa01ae959ed8b98ae466b9b0491bae1939af3832c","tests/testsuite/main.rs":"4e40c82147ccfc7094f2c4795b51b575c7d231a7da75814a08fd8e0c52d93f8b","tests/testsuite/pretty.rs":"e03df1f3ebe5bb98f6cc0888f0c6bcdcdb92c9c7ea2cd5acaa33ca751bf260e7","tests/testsuite/serde.rs":"a292fcdf4f2b9d1cd2d5476db770d8d5a15fdc990c0dada4a02e3515733cb5db","tests/testsuite/spanned.rs":"b7522afd8101ba5dd539118a43bccefef66fedef41926d9515f67590961ac7e3","tests/testsuite/spanned_impls.rs":"666c65679365451f67234d50bb3198ac52418ad7ef1dae6916faba78f92c9d02","tests/testsuite/tables_last.rs":"42271f9df94b28f36b934686d4a5c6196140a2975733d1344b6415cb9f1b92ed"},"package":"9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"}
\ No newline at end of file
+{"files":{"Cargo.lock":"f4b3b23a7222cc98e424c53c8b1c7db2542b4deece22b970b4041d83f5f226c7","Cargo.toml":"aaad74d52b869b6494de6a2ea5b9bda57ae06248a3adb67f2332a8b82758ca6d","LICENSE-APACHE":"c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"a915ead738822da2d74b883c7519d8e558299286bb823e26c7fdece901c3267e","examples/decode.rs":"ebb019364720589b634fa47a3fc4c8ca7ae14c9a6df8c89cd086e421d442cd77","examples/enum_external.rs":"4878e249aa095264c7824fc7b6fd30f9b0ec6891b16fff734a0490d906e1abbe","examples/toml2json.rs":"ef8a783e525264faec4e6c6087a37c6310b606119a7a5785548e8981ea129ed2","src/de.rs":"bd3c1b35e5bdc796d1cbff1f2bdd4e6d4c3a4ef9f34c7dcb775ce8236e45b965","src/edit.rs":"52f1959a6e5c177097372ea04439662262960f2eb41c2b9ef0ce9ce77ed43f60","src/fmt.rs":"b6b14bcfaaf6a283d0bdc7b43d9d13c127cf94c9de41efb4a3a9e1eb02bdc799","src/lib.rs":"78c26d36a5c2b888470f8eaacede1841662edf372143b76af0283a1fc1f9f528","src/macros.rs":"a7214ed97b1c15391748a3d5b904b31963130ee19ecd6ed3dc705649737f3b29","src/map.rs":"18a0bf5677441514d0a9dbf29beeaf7f797f95a1ba566d845f2b90e3b14722c8","src/ser.rs":"b5cbb35af51ffb8975306e76df19ea64951bc97a28857d696aaeb2251cdcd93f","src/table.rs":"7402b17dbb8d956a321af74df6f62b3eed0b7e500b7faa22337633857bf20fa6","src/value.rs":"74c0596230bcf88483005a8907f875e32f5eab29d538cd78ad39031919884596","tests/decoder.rs":"3036f5963c8c547dc47121188a8b7ebaacb154025ca641f3281a3881bdcf7605","tests/decoder_compliance.rs":"b0ed26b0762d8dfc23532efb724789366ca343f7354a76216b3fb426c6915e5a","tests/encoder.rs":"06d4325dc35f4fd40571d8ae50fb86c0ca0bb216aa407497950d01097fdbf043","tests/encoder_compliance.rs":"eeaa92f9cb4ee008830006e78277dfea9c041bc923a0ef5538d79aeb95f022c0","tests/testsuite/de_errors.rs":"2ceb148f1f80ac42b88804dae7cca02c724010917570a08f484e5a7ccd922d95","tests/testsuite/display.rs":"1ae6faac1f1a9a53b14ce0c0bd2c16618d0e42afbf6f92d8107ca944c9abac57","tests/testsuite/display_tricky.rs":"e1b5007506e4f52eb73024c889b36f54694e9d955a737cd2e48a99657691fe21","tests/testsuite/enum_external_deserialize.rs":"4136d1c42dd4c255bb4d6b01e4072c6575a3a2f93d8da31aa18b954b321b3aa7","tests/testsuite/float.rs":"6be604bb11adb315ad01fdf7117db620508d38caedaaea63e777d7ed2e5e4973","tests/testsuite/formatting.rs":"58d469e194e34f04e526db62cebd381dd096115d81b98a4dcbe8d801fc250142","tests/testsuite/macros.rs":"31a083541fab24554fce1f8529f047af6f20f25a5ffa3e9a9b115f5a8ef23080","tests/testsuite/main.rs":"4e40c82147ccfc7094f2c4795b51b575c7d231a7da75814a08fd8e0c52d93f8b","tests/testsuite/pretty.rs":"596c42698dcd727d1111689d64bad925b7111c536a7e608c75e7b8d82c26b413","tests/testsuite/serde.rs":"84355f892999dc4105752a8835664b8e696830fe1793d81bad7dcfda745dfa3f","tests/testsuite/spanned.rs":"6008e2c9fd82e4df6f307f88bd1169b1c0413f75d0f3975fcce05ebdd9f6094a","tests/testsuite/spanned_impls.rs":"666c65679365451f67234d50bb3198ac52418ad7ef1dae6916faba78f92c9d02","tests/testsuite/tables_last.rs":"0fdc71c450d6187a2dfc2de84d213eb867db9673f84e655c2322f95615a41a87"},"package":"a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"}
\ No newline at end of file
diff --git a/crates/toml/Android.bp b/crates/toml/Android.bp
index 97ce950..560ad03 100644
--- a/crates/toml/Android.bp
+++ b/crates/toml/Android.bp
@@ -17,7 +17,7 @@
     name: "libtoml",
     crate_name: "toml",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.8.10",
+    cargo_pkg_version: "0.8.19",
     crate_root: "src/lib.rs",
     edition: "2021",
     features: [
diff --git a/crates/toml/Cargo.lock b/crates/toml/Cargo.lock
index 1cc97be..84fb9f5 100644
--- a/crates/toml/Cargo.lock
+++ b/crates/toml/Cargo.lock
@@ -4,88 +4,102 @@
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.19"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anstream"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6342bd4f5a1205d7f41e94a41a901f5647c938cdfa96036338e8533c9d6c2450"
+checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
- "anstyle-wincon",
+ "anstyle-wincon 1.0.2",
  "colorchoice",
  "is-terminal",
  "utf8parse",
 ]
 
 [[package]]
-name = "anstyle"
-version = "1.0.0"
+name = "anstream"
+version = "0.6.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon 3.0.3",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.0"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
 dependencies = [
  "anstyle",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "autocfg"
-version = "1.1.0"
+name = "anstyle-wincon"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bstr"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
 dependencies = [
- "memchr",
+ "anstyle",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "cc"
-version = "1.0.73"
+name = "autocfg"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "serde",
+]
 
 [[package]]
 name = "cfg-if"
@@ -95,147 +109,112 @@
 
 [[package]]
 name = "chrono"
-version = "0.4.22"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
- "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "clap"
-version = "4.0.32"
+version = "4.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39"
+checksum = "fb690e81c7840c0d7aade59f242ea3b41b9bc27bcd5997890e7702ae4b32e487"
 dependencies = [
- "bitflags",
+ "clap_builder",
  "clap_derive",
- "clap_lex",
- "is-terminal",
  "once_cell",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ed2e96bc16d8d740f6f48d663eddf4b8a0983e79210fd55479b7bcd0a69860e"
+dependencies = [
+ "anstream 0.3.2",
+ "anstyle",
+ "clap_lex",
  "strsim",
- "termcolor",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.0.21"
+version = "4.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014"
+checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
 dependencies = [
  "heck",
- "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.105",
+ "syn",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.3.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8"
-dependencies = [
- "os_str_bytes",
-]
+checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
 
 [[package]]
 name = "colorchoice"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc"
-dependencies = [
- "cfg-if",
- "once_cell",
-]
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
 
 [[package]]
 name = "equivalent"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
-name = "errno"
-version = "0.3.1"
+name = "escape8259"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "ba4f4911e3666fcd7826997b4745c8224295a6f3072f1418c3067b97a67557ee"
 dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
+ "rustversion",
 ]
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
 name = "globset"
-version = "0.4.9"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
  "aho-corasick",
  "bstr",
- "fnv",
  "log",
- "regex",
+ "regex-automata",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "heck"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "ignore"
-version = "0.4.18"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d"
+checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
 dependencies = [
- "crossbeam-utils",
  "globset",
  "lazy_static",
  "log",
@@ -268,41 +247,39 @@
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown",
 ]
 
 [[package]]
-name = "io-lifetimes"
-version = "1.0.3"
+name = "is-terminal"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
+ "hermit-abi",
  "libc",
- "windows-sys 0.42.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "is-terminal"
-version = "0.4.7"
+name = "is_terminal_polyfill"
+version = "1.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+checksum = "b52b2de84ed0341893ce61ca1af04fa54eea0a764ecc38c6855cc5db84dc1927"
 dependencies = [
- "hermit-abi 0.3.1",
- "io-lifetimes",
- "rustix",
- "windows-sys 0.48.0",
+ "is-terminal",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.3"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "lazy_static"
@@ -312,41 +289,33 @@
 
 [[package]]
 name = "libc"
-version = "0.2.142"
+version = "0.2.154"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
 
 [[package]]
 name = "libtest-mimic"
-version = "0.6.0"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7b603516767d1ab23d0de09d023e62966c3322f7148297c35cf3d97aa8b37fa"
+checksum = "cc0bda45ed5b3a2904262c1bb91e526127aa70e7ef3758aba2ef93cf896b9b58"
 dependencies = [
  "clap",
+ "escape8259",
  "termcolor",
  "threadpool",
 ]
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b64f40e5e03e0d54f03845c8197d0291253cdbedfb1cb46b13c2c117554a9f4c"
-
-[[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "normalize-line-endings"
@@ -355,93 +324,65 @@
 checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
 
 [[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.13.1"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.1.19",
+ "hermit-abi",
  "libc",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.15.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"
-
-[[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.105",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.6.0"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -450,29 +391,21 @@
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.27"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
-name = "rustix"
-version = "0.37.7"
+name = "rustversion"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d"
-dependencies = [
- "bitflags",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.45.0",
-]
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "same-file"
@@ -485,29 +418,29 @@
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.96"
+version = "1.0.119"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+checksum = "e8eddb61f0697cc3989c5d64b452f5488e2b8a60fd7d5076a3045076ffef8cb0"
 dependencies = [
  "itoa",
  "ryu",
@@ -516,26 +449,26 @@
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "similar"
-version = "2.2.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ac7f900db32bf3fd12e0117dd3dc4da74bc52ebaac97f39668446d89694803"
+checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640"
 
 [[package]]
 name = "snapbox"
-version = "0.4.11"
+version = "0.6.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6bccd62078347f89a914e3004d94582e13824d4e3d8a816317862884c423835"
+checksum = "40e14d10e4c2b4331ac24c33baa5a03e1fbca81c045b285b53b2a612d28569fb"
 dependencies = [
- "anstream",
+ "anstream 0.6.14",
  "anstyle",
  "normalize-line-endings",
  "similar",
@@ -544,11 +477,11 @@
 
 [[package]]
 name = "snapbox-macros"
-version = "0.3.4"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaaf09df9f0eeae82be96290918520214530e738a7fe5a351b0f24cf77c0ca31"
+checksum = "b1f4c14672714436c09254801c934b203196a51182a5107fb76591c7cc56424d"
 dependencies = [
- "anstream",
+ "anstream 0.6.14",
 ]
 
 [[package]]
@@ -559,20 +492,9 @@
 
 [[package]]
 name = "syn"
-version = "1.0.105"
+version = "2.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.41"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269"
+checksum = "bf5be731623ca1a1fb7d8be6f261a3be6d3e2337b8a1f97be944d020c8fcb704"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -581,19 +503,20 @@
 
 [[package]]
 name = "termcolor"
-version = "1.1.3"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.4"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
+ "cfg-if",
  "once_cell",
 ]
 
@@ -608,7 +531,7 @@
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.19"
 dependencies = [
  "indexmap",
  "serde",
@@ -623,9 +546,9 @@
 
 [[package]]
 name = "toml-test"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ec3892835fb31e181a87e1758275a64b0d7c6c9e9618aeb61a647bd487314c0"
+checksum = "f9e26681e9154ffb40044019b6bb374f6ed7fef1e367d3d314f0daf2b00faba9"
 dependencies = [
  "chrono",
  "ryu",
@@ -635,18 +558,18 @@
 
 [[package]]
 name = "toml-test-data"
-version = "1.8.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6b5bad99e813ce8c67d1d67c9b9f37c8451933f45eae0ab2b3583975f1cc15d"
+checksum = "13bb6bf962107303ade738a8f729f4f92c29b2d84c0772cc376f7001602afa1a"
 dependencies = [
  "include_dir",
 ]
 
 [[package]]
 name = "toml-test-harness"
-version = "0.4.8"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1be4b8d761dee51b4694e9f1d622a1d7f9c135a8b8265459e16d09ac5b16a05d"
+checksum = "0ad65271b9325d4727b1afb346e2eb4cade8e998797682da4e73b7b6d902f2b2"
 dependencies = [
  "ignore",
  "libtest-mimic",
@@ -656,18 +579,18 @@
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.22.0"
+version = "0.22.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8dc77def39ce6079c2d0c866cc20848f591b1898f153c9fe7c4f29e1154510b"
+checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
 dependencies = [
  "indexmap",
  "serde",
@@ -678,9 +601,9 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.4"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "utf8parse"
@@ -689,75 +612,22 @@
 checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
 name = "walkdir"
-version = "2.3.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
- "winapi",
  "winapi-util",
 ]
 
 [[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
 dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets 0.42.1",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -766,128 +636,144 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.48.0",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm 0.48.0",
- "windows_x86_64_msvc 0.48.0",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
-version = "0.5.0"
+version = "0.6.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7"
+checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
 dependencies = [
  "memchr",
 ]
diff --git a/crates/toml/Cargo.toml b/crates/toml/Cargo.toml
index 77f028d..796cddf 100644
--- a/crates/toml/Cargo.toml
+++ b/crates/toml/Cargo.toml
@@ -11,10 +11,11 @@
 
 [package]
 edition = "2021"
-rust-version = "1.69"
+rust-version = "1.65"
 name = "toml"
-version = "0.8.10"
+version = "0.8.19"
 authors = ["Alex Crichton <[email protected]>"]
+build = false
 include = [
     "build.rs",
     "src/**/*",
@@ -26,6 +27,10 @@
     "examples/**/*",
     "tests/**/*",
 ]
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = """
 A native Rust encoder and decoder of TOML-formatted files and streams. Provides
 implementations of the standard Serialize/Deserialize traits for TOML data to
@@ -88,8 +93,13 @@
 [Unreleased]: https://github.com/toml-rs/toml/compare/{{tag_name}}...HEAD"""
 search = "<!-- next-url -->"
 
+[lib]
+name = "toml"
+path = "src/lib.rs"
+
 [[example]]
 name = "decode"
+path = "examples/decode.rs"
 required-features = [
     "parse",
     "display",
@@ -97,6 +107,7 @@
 
 [[example]]
 name = "enum_external"
+path = "examples/enum_external.rs"
 required-features = [
     "parse",
     "display",
@@ -104,19 +115,34 @@
 
 [[example]]
 name = "toml2json"
+path = "examples/toml2json.rs"
 required-features = [
     "parse",
     "display",
 ]
 
 [[test]]
+name = "decoder"
+path = "tests/decoder.rs"
+
+[[test]]
 name = "decoder_compliance"
+path = "tests/decoder_compliance.rs"
 harness = false
 
 [[test]]
+name = "encoder"
+path = "tests/encoder.rs"
+
+[[test]]
 name = "encoder_compliance"
+path = "tests/encoder_compliance.rs"
 harness = false
 
+[[test]]
+name = "testsuite"
+path = "tests/testsuite/main.rs"
+
 [dependencies.indexmap]
 version = "2.0.0"
 optional = true
@@ -125,31 +151,31 @@
 version = "1.0.145"
 
 [dependencies.serde_spanned]
-version = "0.6.5"
+version = "0.6.7"
 features = ["serde"]
 
 [dependencies.toml_datetime]
-version = "0.6.5"
+version = "0.6.8"
 features = ["serde"]
 
 [dependencies.toml_edit]
-version = "0.22.0"
+version = "0.22.20"
 features = ["serde"]
 optional = true
 default-features = false
 
 [dev-dependencies.serde]
-version = "1.0.160"
+version = "1.0.199"
 features = ["derive"]
 
 [dev-dependencies.serde_json]
-version = "1.0.96"
+version = "1.0.116"
 
 [dev-dependencies.snapbox]
-version = "0.4.11"
+version = "0.6.0"
 
 [dev-dependencies.toml-test-data]
-version = "1.8.0"
+version = "1.11.0"
 
 [dev-dependencies.toml-test-harness]
 version = "0.4.8"
@@ -168,3 +194,73 @@
     "toml_edit?/parse",
 ]
 preserve_order = ["indexmap"]
+
+[lints.clippy]
+bool_assert_comparison = "allow"
+branches_sharing_code = "allow"
+checked_conversions = "warn"
+collapsible_else_if = "allow"
+create_dir = "warn"
+dbg_macro = "warn"
+debug_assert_with_mut_call = "warn"
+doc_markdown = "warn"
+empty_enum = "warn"
+enum_glob_use = "warn"
+expl_impl_clone_on_copy = "warn"
+explicit_deref_methods = "warn"
+explicit_into_iter_loop = "warn"
+fallible_impl_from = "warn"
+filter_map_next = "warn"
+flat_map_option = "warn"
+float_cmp_const = "warn"
+fn_params_excessive_bools = "warn"
+from_iter_instead_of_collect = "warn"
+if_same_then_else = "allow"
+implicit_clone = "warn"
+imprecise_flops = "warn"
+inconsistent_struct_constructor = "warn"
+inefficient_to_string = "warn"
+infinite_loop = "warn"
+invalid_upcast_comparisons = "warn"
+large_digit_groups = "warn"
+large_stack_arrays = "warn"
+large_types_passed_by_value = "warn"
+let_and_return = "allow"
+linkedlist = "warn"
+lossy_float_literal = "warn"
+macro_use_imports = "warn"
+mem_forget = "warn"
+mutex_integer = "warn"
+needless_continue = "warn"
+needless_for_each = "warn"
+negative_feature_names = "warn"
+path_buf_push_overwrite = "warn"
+ptr_as_ptr = "warn"
+rc_mutex = "warn"
+redundant_feature_names = "warn"
+ref_option_ref = "warn"
+rest_pat_in_fully_bound_structs = "warn"
+same_functions_in_if_condition = "warn"
+self_named_module_files = "warn"
+semicolon_if_nothing_returned = "warn"
+str_to_string = "warn"
+string_add = "warn"
+string_add_assign = "warn"
+string_lit_as_bytes = "warn"
+string_to_string = "warn"
+todo = "warn"
+trait_duplication_in_bounds = "warn"
+verbose_file_reads = "warn"
+wildcard_imports = "warn"
+zero_sized_map_values = "warn"
+
+[lints.rust]
+unreachable_pub = "warn"
+unsafe_op_in_unsafe_fn = "warn"
+unused_lifetimes = "warn"
+unused_macro_rules = "warn"
+unused_qualifications = "warn"
+
+[lints.rust.rust_2018_idioms]
+level = "warn"
+priority = -1
diff --git a/crates/toml/METADATA b/crates/toml/METADATA
index 9caed4b..0d6645f 100644
--- a/crates/toml/METADATA
+++ b/crates/toml/METADATA
@@ -1,17 +1,17 @@
 name: "toml"
 description: "()"
 third_party {
-  version: "0.8.10"
+  version: "0.8.19"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 2
-    day: 7
+    year: 2025
+    month: 1
+    day: 15
   }
   homepage: "https://crates.io/crates/toml"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/toml/toml-0.8.10.crate"
-    version: "0.8.10"
+    value: "https://static.crates.io/crates/toml/toml-0.8.19.crate"
+    version: "0.8.19"
   }
 }
diff --git a/crates/toml/examples/toml2json.rs b/crates/toml/examples/toml2json.rs
index 3660611..56a912c 100644
--- a/crates/toml/examples/toml2json.rs
+++ b/crates/toml/examples/toml2json.rs
@@ -1,7 +1,4 @@
-#![deny(warnings)]
-
 use std::env;
-use std::fs::File;
 use std::io;
 use std::io::prelude::*;
 
@@ -10,15 +7,14 @@
 
 fn main() {
     let mut args = env::args();
-    let mut input = String::new();
-    if args.len() > 1 {
+    let input = if args.len() > 1 {
         let name = args.nth(1).unwrap();
-        File::open(name)
-            .and_then(|mut f| f.read_to_string(&mut input))
-            .unwrap();
+        std::fs::read_to_string(name).unwrap()
     } else {
+        let mut input = String::new();
         io::stdin().read_to_string(&mut input).unwrap();
-    }
+        input
+    };
 
     match input.parse() {
         Ok(toml) => {
diff --git a/crates/toml/src/de.rs b/crates/toml/src/de.rs
index 9eb4c41..1a0929e 100644
--- a/crates/toml/src/de.rs
+++ b/crates/toml/src/de.rs
@@ -57,7 +57,7 @@
     }
 
     pub(crate) fn add_key(&mut self, key: String) {
-        self.inner.add_key(key)
+        self.inner.add_key(key);
     }
 
     /// What went wrong
@@ -113,10 +113,7 @@
     where
         V: serde::de::Visitor<'de>,
     {
-        let inner = self
-            .input
-            .parse::<toml_edit::de::Deserializer>()
-            .map_err(Error::new)?;
+        let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
         inner.deserialize_any(visitor).map_err(Error::new)
     }
 
@@ -126,10 +123,7 @@
     where
         V: serde::de::Visitor<'de>,
     {
-        let inner = self
-            .input
-            .parse::<toml_edit::de::Deserializer>()
-            .map_err(Error::new)?;
+        let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
         inner.deserialize_option(visitor).map_err(Error::new)
     }
 
@@ -141,10 +135,7 @@
     where
         V: serde::de::Visitor<'de>,
     {
-        let inner = self
-            .input
-            .parse::<toml_edit::de::Deserializer>()
-            .map_err(Error::new)?;
+        let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
         inner
             .deserialize_newtype_struct(name, visitor)
             .map_err(Error::new)
@@ -159,10 +150,7 @@
     where
         V: serde::de::Visitor<'de>,
     {
-        let inner = self
-            .input
-            .parse::<toml_edit::de::Deserializer>()
-            .map_err(Error::new)?;
+        let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
         inner
             .deserialize_struct(name, fields, visitor)
             .map_err(Error::new)
@@ -178,10 +166,7 @@
     where
         V: serde::de::Visitor<'de>,
     {
-        let inner = self
-            .input
-            .parse::<toml_edit::de::Deserializer>()
-            .map_err(Error::new)?;
+        let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
         inner
             .deserialize_enum(name, variants, visitor)
             .map_err(Error::new)
diff --git a/crates/toml/src/fmt.rs b/crates/toml/src/fmt.rs
index 281cb59..650ba4d 100644
--- a/crates/toml/src/fmt.rs
+++ b/crates/toml/src/fmt.rs
@@ -5,7 +5,7 @@
 }
 
 impl toml_edit::visit_mut::VisitMut for DocumentFormatter {
-    fn visit_document_mut(&mut self, node: &mut toml_edit::Document) {
+    fn visit_document_mut(&mut self, node: &mut toml_edit::DocumentMut) {
         toml_edit::visit_mut::visit_document_mut(self, node);
     }
 
diff --git a/crates/toml/src/lib.rs b/crates/toml/src/lib.rs
index 61e6a4c..276e617 100644
--- a/crates/toml/src/lib.rs
+++ b/crates/toml/src/lib.rs
@@ -5,8 +5,6 @@
 //! ```toml
 //! [package]
 //! name = "toml"
-//! version = "0.4.2"
-//! authors = ["Alex Crichton <[email protected]>"]
 //!
 //! [dependencies]
 //! serde = "1.0"
@@ -140,14 +138,15 @@
 //! [`serde`]: https://serde.rs/
 //! [serde]: https://serde.rs/
 
-#![deny(missing_docs)]
-#![warn(rust_2018_idioms)]
+#![cfg_attr(docsrs, feature(doc_auto_cfg))]
 // Makes rustc abort compilation if there are any unsafe blocks in the crate.
 // Presence of this annotation is picked up by tools such as cargo-geiger
 // and lets them ensure that there is indeed no unsafe code as opposed to
 // something they couldn't detect (e.g. unsafe added via macro expansion, etc).
 #![forbid(unsafe_code)]
-#![cfg_attr(docsrs, feature(doc_auto_cfg))]
+#![warn(missing_docs)]
+#![warn(clippy::print_stderr)]
+#![warn(clippy::print_stdout)]
 
 pub mod map;
 pub mod value;
diff --git a/crates/toml/src/macros.rs b/crates/toml/src/macros.rs
index a295970..d993ca9 100644
--- a/crates/toml/src/macros.rs
+++ b/crates/toml/src/macros.rs
@@ -8,11 +8,6 @@
 /// let cargo_toml = toml::toml! {
 ///     [package]
 ///     name = "toml"
-///     version = "0.4.5"
-///     authors = ["Alex Crichton <[email protected]>"]
-///
-///     [badges]
-///     travis-ci = { repository = "alexcrichton/toml-rs" }
 ///
 ///     [dependencies]
 ///     serde = "1.0"
diff --git a/crates/toml/src/map.rs b/crates/toml/src/map.rs
index bd720a7..f7d5c38 100644
--- a/crates/toml/src/map.rs
+++ b/crates/toml/src/map.rs
@@ -70,7 +70,7 @@
     /// Clears the map, removing all values.
     #[inline]
     pub fn clear(&mut self) {
-        self.map.clear()
+        self.map.clear();
     }
 
     /// Returns a reference to the value corresponding to the key.
@@ -78,10 +78,10 @@
     /// The key may be any borrowed form of the map's key type, but the ordering
     /// on the borrowed form *must* match the ordering on the key type.
     #[inline]
-    pub fn get<Q: ?Sized>(&self, key: &Q) -> Option<&Value>
+    pub fn get<Q>(&self, key: &Q) -> Option<&Value>
     where
         String: Borrow<Q>,
-        Q: Ord + Eq + Hash,
+        Q: Ord + Eq + Hash + ?Sized,
     {
         self.map.get(key)
     }
@@ -91,10 +91,10 @@
     /// The key may be any borrowed form of the map's key type, but the ordering
     /// on the borrowed form *must* match the ordering on the key type.
     #[inline]
-    pub fn contains_key<Q: ?Sized>(&self, key: &Q) -> bool
+    pub fn contains_key<Q>(&self, key: &Q) -> bool
     where
         String: Borrow<Q>,
-        Q: Ord + Eq + Hash,
+        Q: Ord + Eq + Hash + ?Sized,
     {
         self.map.contains_key(key)
     }
@@ -104,10 +104,10 @@
     /// The key may be any borrowed form of the map's key type, but the ordering
     /// on the borrowed form *must* match the ordering on the key type.
     #[inline]
-    pub fn get_mut<Q: ?Sized>(&mut self, key: &Q) -> Option<&mut Value>
+    pub fn get_mut<Q>(&mut self, key: &Q) -> Option<&mut Value>
     where
         String: Borrow<Q>,
-        Q: Ord + Eq + Hash,
+        Q: Ord + Eq + Hash + ?Sized,
     {
         self.map.get_mut(key)
     }
@@ -130,10 +130,10 @@
     /// The key may be any borrowed form of the map's key type, but the ordering
     /// on the borrowed form *must* match the ordering on the key type.
     #[inline]
-    pub fn remove<Q: ?Sized>(&mut self, key: &Q) -> Option<Value>
+    pub fn remove<Q>(&mut self, key: &Q) -> Option<Value>
     where
         String: Borrow<Q>,
-        Q: Ord + Eq + Hash,
+        Q: Ord + Eq + Hash + ?Sized,
     {
         self.map.remove(key)
     }
@@ -241,10 +241,10 @@
 
 /// Access an element of this map. Panics if the given key is not present in the
 /// map.
-impl<'a, Q: ?Sized> ops::Index<&'a Q> for Map<String, Value>
+impl<'a, Q> ops::Index<&'a Q> for Map<String, Value>
 where
     String: Borrow<Q>,
-    Q: Ord + Eq + Hash,
+    Q: Ord + Eq + Hash + ?Sized,
 {
     type Output = Value;
 
@@ -255,10 +255,10 @@
 
 /// Mutably access an element of this map. Panics if the given key is not
 /// present in the map.
-impl<'a, Q: ?Sized> ops::IndexMut<&'a Q> for Map<String, Value>
+impl<'a, Q> ops::IndexMut<&'a Q> for Map<String, Value>
 where
     String: Borrow<Q>,
-    Q: Ord + Eq + Hash,
+    Q: Ord + Eq + Hash + ?Sized,
 {
     fn index_mut(&mut self, index: &Q) -> &mut Value {
         self.map.get_mut(index).expect("no entry found for key")
@@ -452,13 +452,13 @@
 
 impl<'a> VacantEntry<'a> {
     /// Gets a reference to the key that would be used when inserting a value
-    /// through the VacantEntry.
+    /// through the `VacantEntry`.
     #[inline]
     pub fn key(&self) -> &String {
         self.vacant.key()
     }
 
-    /// Sets the value of the entry with the VacantEntry's key, and returns a
+    /// Sets the value of the entry with the `VacantEntry`'s key, and returns a
     /// mutable reference to it.
     #[inline]
     pub fn insert(self, value: Value) -> &'a mut Value {
@@ -518,7 +518,7 @@
     }
 }
 
-/// An iterator over a toml::Map's entries.
+/// An iterator over a `toml::Map`'s entries.
 pub struct Iter<'a> {
     iter: IterImpl<'a>,
 }
@@ -543,7 +543,7 @@
     }
 }
 
-/// A mutable iterator over a toml::Map's entries.
+/// A mutable iterator over a `toml::Map`'s entries.
 pub struct IterMut<'a> {
     iter: IterMutImpl<'a>,
 }
@@ -568,7 +568,7 @@
     }
 }
 
-/// An owning iterator over a toml::Map's entries.
+/// An owning iterator over a `toml::Map`'s entries.
 pub struct IntoIter {
     iter: IntoIterImpl,
 }
@@ -582,7 +582,7 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-/// An iterator over a toml::Map's keys.
+/// An iterator over a `toml::Map`'s keys.
 pub struct Keys<'a> {
     iter: KeysImpl<'a>,
 }
@@ -596,7 +596,7 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-/// An iterator over a toml::Map's values.
+/// An iterator over a `toml::Map`'s values.
 pub struct Values<'a> {
     iter: ValuesImpl<'a>,
 }
diff --git a/crates/toml/src/ser.rs b/crates/toml/src/ser.rs
index f1ab24b..b64271a 100644
--- a/crates/toml/src/ser.rs
+++ b/crates/toml/src/ser.rs
@@ -43,9 +43,9 @@
 /// println!("{}", toml)
 /// ```
 #[cfg(feature = "display")]
-pub fn to_string<T: ?Sized>(value: &T) -> Result<String, Error>
+pub fn to_string<T>(value: &T) -> Result<String, Error>
 where
-    T: serde::ser::Serialize,
+    T: serde::ser::Serialize + ?Sized,
 {
     let mut output = String::new();
     let serializer = Serializer::new(&mut output);
@@ -61,11 +61,11 @@
 /// To serialize TOML values, instead of documents, see [`ValueSerializer`].
 ///
 /// For greater customization, instead serialize to a
-/// [`toml_edit::Document`](https://docs.rs/toml_edit/latest/toml_edit/struct.Document.html).
+/// [`toml_edit::DocumentMut`](https://docs.rs/toml_edit/latest/toml_edit/struct.DocumentMut.html).
 #[cfg(feature = "display")]
-pub fn to_string_pretty<T: ?Sized>(value: &T) -> Result<String, Error>
+pub fn to_string_pretty<T>(value: &T) -> Result<String, Error>
 where
-    T: serde::ser::Serialize,
+    T: serde::ser::Serialize + ?Sized,
 {
     let mut output = String::new();
     let serializer = Serializer::pretty(&mut output);
@@ -161,7 +161,7 @@
     /// Apply a default "pretty" policy to the document
     ///
     /// For greater customization, instead serialize to a
-    /// [`toml_edit::Document`](https://docs.rs/toml_edit/latest/toml_edit/struct.Document.html).
+    /// [`toml_edit::DocumentMut`](https://docs.rs/toml_edit/latest/toml_edit/struct.DocumentMut.html).
     pub fn pretty(dst: &'d mut String) -> Self {
         let mut ser = Serializer::new(dst);
         ser.settings.multiline_array = true;
@@ -301,9 +301,9 @@
         )
     }
 
-    fn serialize_some<T: ?Sized>(self, v: &T) -> Result<Self::Ok, Self::Error>
+    fn serialize_some<T>(self, v: &T) -> Result<Self::Ok, Self::Error>
     where
-        T: serde::ser::Serialize,
+        T: serde::ser::Serialize + ?Sized,
     {
         write_document(
             self.dst,
@@ -345,13 +345,9 @@
         )
     }
 
-    fn serialize_newtype_struct<T: ?Sized>(
-        self,
-        name: &'static str,
-        v: &T,
-    ) -> Result<Self::Ok, Self::Error>
+    fn serialize_newtype_struct<T>(self, name: &'static str, v: &T) -> Result<Self::Ok, Self::Error>
     where
-        T: serde::ser::Serialize,
+        T: serde::ser::Serialize + ?Sized,
     {
         write_document(
             self.dst,
@@ -360,7 +356,7 @@
         )
     }
 
-    fn serialize_newtype_variant<T: ?Sized>(
+    fn serialize_newtype_variant<T>(
         self,
         name: &'static str,
         variant_index: u32,
@@ -368,7 +364,7 @@
         value: &T,
     ) -> Result<Self::Ok, Self::Error>
     where
-        T: serde::ser::Serialize,
+        T: serde::ser::Serialize + ?Sized,
     {
         write_document(
             self.dst,
@@ -617,9 +613,9 @@
         )
     }
 
-    fn serialize_some<T: ?Sized>(self, v: &T) -> Result<Self::Ok, Self::Error>
+    fn serialize_some<T>(self, v: &T) -> Result<Self::Ok, Self::Error>
     where
-        T: serde::ser::Serialize,
+        T: serde::ser::Serialize + ?Sized,
     {
         write_value(
             self.dst,
@@ -657,13 +653,9 @@
         )
     }
 
-    fn serialize_newtype_struct<T: ?Sized>(
-        self,
-        name: &'static str,
-        v: &T,
-    ) -> Result<Self::Ok, Self::Error>
+    fn serialize_newtype_struct<T>(self, name: &'static str, v: &T) -> Result<Self::Ok, Self::Error>
     where
-        T: serde::ser::Serialize,
+        T: serde::ser::Serialize + ?Sized,
     {
         write_value(
             self.dst,
@@ -671,7 +663,7 @@
         )
     }
 
-    fn serialize_newtype_variant<T: ?Sized>(
+    fn serialize_newtype_variant<T>(
         self,
         name: &'static str,
         variant_index: u32,
@@ -679,7 +671,7 @@
         value: &T,
     ) -> Result<Self::Ok, Self::Error>
     where
-        T: serde::ser::Serialize,
+        T: serde::ser::Serialize + ?Sized,
     {
         write_value(
             self.dst,
@@ -750,11 +742,14 @@
 }
 
 #[cfg(feature = "display")]
-use internal::*;
+use internal::{
+    write_document, write_value, SerializeDocumentArray, SerializeDocumentTable,
+    SerializeValueArray, SerializeValueTable,
+};
 
 #[cfg(feature = "display")]
 mod internal {
-    use super::*;
+    use super::{Error, Serializer, ValueSerializer};
 
     use crate::fmt::DocumentFormatter;
 
@@ -782,9 +777,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+        fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_element(value).map_err(Error::wrap)
         }
@@ -798,9 +793,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+        fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_element(value).map_err(Error::wrap)
         }
@@ -814,9 +809,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+        fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_field(value).map_err(Error::wrap)
         }
@@ -830,9 +825,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+        fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_field(value).map_err(Error::wrap)
         }
@@ -866,16 +861,16 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_key<T: ?Sized>(&mut self, input: &T) -> Result<(), Self::Error>
+        fn serialize_key<T>(&mut self, input: &T) -> Result<(), Self::Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_key(input).map_err(Error::wrap)
         }
 
-        fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+        fn serialize_value<T>(&mut self, value: &T) -> Result<(), Self::Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_value(value).map_err(Error::wrap)
         }
@@ -889,13 +884,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_field<T: ?Sized>(
-            &mut self,
-            key: &'static str,
-            value: &T,
-        ) -> Result<(), Self::Error>
+        fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_field(key, value).map_err(Error::wrap)
         }
@@ -911,6 +902,7 @@
         value: Result<toml_edit::Value, crate::edit::ser::Error>,
     ) -> Result<(), Error> {
         use std::fmt::Write;
+        use toml_edit::visit_mut::VisitMut as _;
 
         let value = value.map_err(Error::wrap)?;
         let mut table = match toml_edit::Item::Value(value).into_table() {
@@ -920,10 +912,9 @@
             }
         };
 
-        use toml_edit::visit_mut::VisitMut as _;
         settings.visit_table_mut(&mut table);
 
-        let doc: toml_edit::Document = table.into();
+        let doc: toml_edit::DocumentMut = table.into();
         write!(dst, "{}", doc).unwrap();
 
         Ok(())
@@ -951,9 +942,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+        fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_element(value).map_err(Error::wrap)
         }
@@ -967,9 +958,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+        fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_element(value).map_err(Error::wrap)
         }
@@ -983,9 +974,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+        fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_field(value).map_err(Error::wrap)
         }
@@ -999,9 +990,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+        fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_field(value).map_err(Error::wrap)
         }
@@ -1033,16 +1024,16 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_key<T: ?Sized>(&mut self, input: &T) -> Result<(), Self::Error>
+        fn serialize_key<T>(&mut self, input: &T) -> Result<(), Self::Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_key(input).map_err(Error::wrap)
         }
 
-        fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+        fn serialize_value<T>(&mut self, value: &T) -> Result<(), Self::Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_value(value).map_err(Error::wrap)
         }
@@ -1056,13 +1047,9 @@
         type Ok = ();
         type Error = Error;
 
-        fn serialize_field<T: ?Sized>(
-            &mut self,
-            key: &'static str,
-            value: &T,
-        ) -> Result<(), Self::Error>
+        fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
         where
-            T: serde::ser::Serialize,
+            T: serde::ser::Serialize + ?Sized,
         {
             self.inner.serialize_field(key, value).map_err(Error::wrap)
         }
diff --git a/crates/toml/src/value.rs b/crates/toml/src/value.rs
index e6f832a..c689b38 100644
--- a/crates/toml/src/value.rs
+++ b/crates/toml/src/value.rs
@@ -248,7 +248,7 @@
 impl<'a> From<&'a str> for Value {
     #[inline]
     fn from(val: &'a str) -> Value {
-        Value::String(val.to_string())
+        Value::String(val.to_owned())
     }
 }
 
@@ -362,9 +362,9 @@
     }
 }
 
-impl<'s, T: ?Sized> Index for &'s T
+impl<'s, T> Index for &'s T
 where
-    T: Index,
+    T: Index + ?Sized,
 {
     fn index<'a>(&self, val: &'a Value) -> Option<&'a Value> {
         (**self).index(val)
@@ -465,7 +465,7 @@
             }
 
             fn visit_u64<E: de::Error>(self, value: u64) -> Result<Value, E> {
-                if value <= i64::max_value() as u64 {
+                if i64::try_from(value).is_ok() {
                     Ok(Value::Integer(value as i64))
                 } else {
                     Err(de::Error::custom("u64 value was too large"))
@@ -733,7 +733,7 @@
 
     fn variant_seed<V>(mut self, seed: V) -> Result<(V::Value, Self::Variant), Self::Error>
     where
-        V: serde::de::DeserializeSeed<'de>,
+        V: de::DeserializeSeed<'de>,
     {
         use de::Error;
         let (key, value) = match self.iter.next() {
@@ -764,7 +764,7 @@
     }
 }
 
-impl<'de> serde::de::VariantAccess<'de> for MapEnumDeserializer {
+impl<'de> de::VariantAccess<'de> for MapEnumDeserializer {
     type Error = crate::de::Error;
 
     fn unit_variant(self) -> Result<(), Self::Error> {
@@ -793,20 +793,20 @@
 
     fn newtype_variant_seed<T>(self, seed: T) -> Result<T::Value, Self::Error>
     where
-        T: serde::de::DeserializeSeed<'de>,
+        T: de::DeserializeSeed<'de>,
     {
         seed.deserialize(self.value.into_deserializer())
     }
 
     fn tuple_variant<V>(self, len: usize, visitor: V) -> Result<V::Value, Self::Error>
     where
-        V: serde::de::Visitor<'de>,
+        V: de::Visitor<'de>,
     {
         use de::Error;
         match self.value {
             Value::Array(values) => {
                 if values.len() == len {
-                    serde::de::Deserializer::deserialize_seq(values.into_deserializer(), visitor)
+                    de::Deserializer::deserialize_seq(values.into_deserializer(), visitor)
                 } else {
                     Err(Error::custom(format!("expected tuple with length {}", len)))
                 }
@@ -826,10 +826,7 @@
                 let tuple_values = tuple_values?;
 
                 if tuple_values.len() == len {
-                    serde::de::Deserializer::deserialize_seq(
-                        tuple_values.into_deserializer(),
-                        visitor,
-                    )
+                    de::Deserializer::deserialize_seq(tuple_values.into_deserializer(), visitor)
                 } else {
                     Err(Error::custom(format!("expected tuple with length {}", len)))
                 }
@@ -847,9 +844,9 @@
         visitor: V,
     ) -> Result<V::Value, Self::Error>
     where
-        V: serde::de::Visitor<'de>,
+        V: de::Visitor<'de>,
     {
-        serde::de::Deserializer::deserialize_struct(
+        de::Deserializer::deserialize_struct(
             self.value.into_deserializer(),
             "", // TODO: this should be the variant name
             fields,
@@ -858,7 +855,7 @@
     }
 }
 
-impl<'de> de::IntoDeserializer<'de, crate::de::Error> for Value {
+impl<'de> IntoDeserializer<'de, crate::de::Error> for Value {
     type Deserializer = Self;
 
     fn into_deserializer(self) -> Self {
@@ -913,7 +910,7 @@
     }
 
     fn serialize_u64(self, value: u64) -> Result<Value, crate::ser::Error> {
-        if value <= i64::max_value() as u64 {
+        if i64::try_from(value).is_ok() {
             self.serialize_i64(value as i64)
         } else {
             Err(ser::Error::custom("u64 value was too large"))
@@ -964,18 +961,18 @@
         self.serialize_str(_variant)
     }
 
-    fn serialize_newtype_struct<T: ?Sized>(
+    fn serialize_newtype_struct<T>(
         self,
         _name: &'static str,
         value: &T,
     ) -> Result<Value, crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         value.serialize(self)
     }
 
-    fn serialize_newtype_variant<T: ?Sized>(
+    fn serialize_newtype_variant<T>(
         self,
         _name: &'static str,
         _variant_index: u32,
@@ -983,7 +980,7 @@
         value: &T,
     ) -> Result<Value, crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         let value = value.serialize(ValueSerializer)?;
         let mut table = Table::new();
@@ -995,9 +992,9 @@
         Err(crate::ser::Error::unsupported_none())
     }
 
-    fn serialize_some<T: ?Sized>(self, value: &T) -> Result<Value, crate::ser::Error>
+    fn serialize_some<T>(self, value: &T) -> Result<Value, crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         value.serialize(self)
     }
@@ -1145,18 +1142,18 @@
         Err(crate::ser::Error::unsupported_type(Some(name)))
     }
 
-    fn serialize_newtype_struct<T: ?Sized>(
+    fn serialize_newtype_struct<T>(
         self,
         _name: &'static str,
         value: &T,
     ) -> Result<Table, crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         value.serialize(self)
     }
 
-    fn serialize_newtype_variant<T: ?Sized>(
+    fn serialize_newtype_variant<T>(
         self,
         _name: &'static str,
         _variant_index: u32,
@@ -1164,7 +1161,7 @@
         value: &T,
     ) -> Result<Table, crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         let value = value.serialize(ValueSerializer)?;
         let mut table = Table::new();
@@ -1176,9 +1173,9 @@
         Err(crate::ser::Error::unsupported_none())
     }
 
-    fn serialize_some<T: ?Sized>(self, value: &T) -> Result<Table, crate::ser::Error>
+    fn serialize_some<T>(self, value: &T) -> Result<Table, crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         value.serialize(self)
     }
@@ -1243,9 +1240,9 @@
     type Ok = Value;
     type Error = crate::ser::Error;
 
-    fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+    fn serialize_element<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         self.vec.push(Value::try_from(value)?);
         Ok(())
@@ -1260,9 +1257,9 @@
     type Ok = Value;
     type Error = crate::ser::Error;
 
-    fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+    fn serialize_element<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         ser::SerializeSeq::serialize_element(self, value)
     }
@@ -1276,9 +1273,9 @@
     type Ok = Value;
     type Error = crate::ser::Error;
 
-    fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+    fn serialize_field<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         ser::SerializeSeq::serialize_element(self, value)
     }
@@ -1292,9 +1289,9 @@
     type Ok = Value;
     type Error = crate::ser::Error;
 
-    fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+    fn serialize_field<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         ser::SerializeSeq::serialize_element(self, value)
     }
@@ -1313,9 +1310,9 @@
     type Ok = Table;
     type Error = crate::ser::Error;
 
-    fn serialize_key<T: ?Sized>(&mut self, key: &T) -> Result<(), crate::ser::Error>
+    fn serialize_key<T>(&mut self, key: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         match Value::try_from(key)? {
             Value::String(s) => self.next_key = Some(s),
@@ -1324,9 +1321,9 @@
         Ok(())
     }
 
-    fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+    fn serialize_value<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         let key = self.next_key.take();
         let key = key.expect("serialize_value called before serialize_key");
@@ -1351,13 +1348,9 @@
     type Ok = Table;
     type Error = crate::ser::Error;
 
-    fn serialize_field<T: ?Sized>(
-        &mut self,
-        key: &'static str,
-        value: &T,
-    ) -> Result<(), crate::ser::Error>
+    fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         ser::SerializeMap::serialize_key(self, key)?;
         ser::SerializeMap::serialize_value(self, value)
@@ -1376,16 +1369,16 @@
     type Ok = Value;
     type Error = crate::ser::Error;
 
-    fn serialize_key<T: ?Sized>(&mut self, key: &T) -> Result<(), crate::ser::Error>
+    fn serialize_key<T>(&mut self, key: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         self.ser.serialize_key(key)
     }
 
-    fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+    fn serialize_value<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         self.ser.serialize_value(value)
     }
@@ -1399,13 +1392,9 @@
     type Ok = Value;
     type Error = crate::ser::Error;
 
-    fn serialize_field<T: ?Sized>(
-        &mut self,
-        key: &'static str,
-        value: &T,
-    ) -> Result<(), crate::ser::Error>
+    fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), crate::ser::Error>
     where
-        T: ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
         ser::SerializeMap::serialize_key(self, key)?;
         ser::SerializeMap::serialize_value(self, value)
@@ -1496,40 +1485,40 @@
     }
 }
 
-impl serde::ser::SerializeTupleVariant for ValueSerializeVariant<ValueSerializeVec> {
-    type Ok = crate::Value;
+impl ser::SerializeTupleVariant for ValueSerializeVariant<ValueSerializeVec> {
+    type Ok = Value;
     type Error = crate::ser::Error;
 
-    fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+    fn serialize_field<T>(&mut self, value: &T) -> Result<(), Self::Error>
     where
-        T: serde::ser::Serialize,
+        T: ser::Serialize + ?Sized,
     {
-        serde::ser::SerializeSeq::serialize_element(&mut self.inner, value)
+        ser::SerializeSeq::serialize_element(&mut self.inner, value)
     }
 
     fn end(self) -> Result<Self::Ok, Self::Error> {
-        let inner = serde::ser::SerializeSeq::end(self.inner)?;
+        let inner = ser::SerializeSeq::end(self.inner)?;
         let mut table = Table::new();
         table.insert(self.variant.to_owned(), inner);
         Ok(Value::Table(table))
     }
 }
 
-impl serde::ser::SerializeStructVariant for ValueSerializeVariant<ValueSerializeMap> {
-    type Ok = crate::Value;
+impl ser::SerializeStructVariant for ValueSerializeVariant<ValueSerializeMap> {
+    type Ok = Value;
     type Error = crate::ser::Error;
 
     #[inline]
     fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
     where
-        T: serde::ser::Serialize + ?Sized,
+        T: ser::Serialize + ?Sized,
     {
-        serde::ser::SerializeStruct::serialize_field(&mut self.inner, key, value)
+        ser::SerializeStruct::serialize_field(&mut self.inner, key, value)
     }
 
     #[inline]
     fn end(self) -> Result<Self::Ok, Self::Error> {
-        let inner = serde::ser::SerializeStruct::end(self.inner)?;
+        let inner = ser::SerializeStruct::end(self.inner)?;
         let mut table = Table::new();
         table.insert(self.variant.to_owned(), inner);
         Ok(Value::Table(table))
diff --git a/crates/toml/tests/decoder.rs b/crates/toml/tests/decoder.rs
index 5af906f..399c1dd 100644
--- a/crates/toml/tests/decoder.rs
+++ b/crates/toml/tests/decoder.rs
@@ -1,7 +1,8 @@
 #![cfg(all(feature = "parse", feature = "display"))]
+#![allow(dead_code)]
 
 #[derive(Copy, Clone)]
-pub struct Decoder;
+pub(crate) struct Decoder;
 
 impl toml_test_harness::Decoder for Decoder {
     fn name(&self) -> &str {
diff --git a/crates/toml/tests/encoder.rs b/crates/toml/tests/encoder.rs
index e76a74a..2f7ceae 100644
--- a/crates/toml/tests/encoder.rs
+++ b/crates/toml/tests/encoder.rs
@@ -1,7 +1,8 @@
 #![cfg(all(feature = "parse", feature = "display"))]
+#![allow(dead_code)]
 
 #[derive(Copy, Clone)]
-pub struct Encoder;
+pub(crate) struct Encoder;
 
 impl toml_test_harness::Encoder for Encoder {
     fn name(&self) -> &str {
diff --git a/crates/toml/tests/testsuite/de_errors.rs b/crates/toml/tests/testsuite/de_errors.rs
index b3630bd..3600f98 100644
--- a/crates/toml/tests/testsuite/de_errors.rs
+++ b/crates/toml/tests/testsuite/de_errors.rs
@@ -1,11 +1,15 @@
-use serde::{de, Deserialize};
 use std::fmt;
 
+use serde::{de, Deserialize};
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
+use snapbox::str;
+
 macro_rules! bad {
     ($toml:expr, $ty:ty, $msg:expr) => {
         match toml::from_str::<$ty>($toml) {
             Ok(s) => panic!("parsed to: {:#?}", s),
-            Err(e) => snapbox::assert_eq($msg, e.to_string()),
+            Err(e) => assert_data_eq!(e.to_string(), $msg.raw()),
         }
     };
 }
@@ -29,7 +33,7 @@
     Uppercase(String),
 }
 
-impl<'de> de::Deserialize<'de> for CasedString {
+impl<'de> Deserialize<'de> for CasedString {
     fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
     where
         D: de::Deserializer<'de>,
@@ -39,7 +43,7 @@
         impl<'de> de::Visitor<'de> for CasedStringVisitor {
             type Value = CasedString;
 
-            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+            fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
                 formatter.write_str("a string")
             }
 
@@ -50,9 +54,9 @@
                 if s.is_empty() {
                     Err(de::Error::invalid_length(0, &"a non-empty string"))
                 } else if s.chars().all(|x| x.is_ascii_lowercase()) {
-                    Ok(CasedString::Lowercase(s.to_string()))
+                    Ok(CasedString::Lowercase(s.to_owned()))
                 } else if s.chars().all(|x| x.is_ascii_uppercase()) {
-                    Ok(CasedString::Uppercase(s.to_string()))
+                    Ok(CasedString::Uppercase(s.to_owned()))
                 } else {
                     Err(de::Error::invalid_value(
                         de::Unexpected::Str(s),
@@ -83,13 +87,14 @@
                 # ^
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 2, column 19
   |
 2 |             p_a = ''
   |                   ^^
 invalid length 0, expected a non-empty string
-"
+
+"#]]
     );
 
     // Missing field in table.
@@ -99,13 +104,14 @@
           # ^
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 1, column 1
   |
 1 | 
   | ^
 missing field `p_b`
-"
+
+"#]]
     );
 
     // Invalid type in p_b.
@@ -116,13 +122,14 @@
                 # ^
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 3, column 19
   |
 3 |             p_b = 1
   |                   ^
 invalid type: integer `1`, expected a sequence
-"
+
+"#]]
     );
 
     // Sub-table in Vec is missing a field.
@@ -135,13 +142,14 @@
             ]
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 4, column 17
   |
 4 |                 {c_a = 'a'}
   |                 ^^^^^^^^^^^
 missing field `c_b`
-"
+
+"#]]
     );
 
     // Sub-table in Vec has a field with a bad value.
@@ -154,13 +162,14 @@
             ]
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 4, column 35
   |
 4 |                 {c_a = 'a', c_b = '*'}
   |                                   ^^^
-invalid value: string \"*\", expected all lowercase or all uppercase
-"
+invalid value: string "*", expected all lowercase or all uppercase
+
+"#]]
     );
 
     // Sub-table in Vec is missing a field.
@@ -174,13 +183,14 @@
             ]
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 5, column 17
   |
 5 |                 {c_a = 'aa'}
   |                 ^^^^^^^^^^^^
 missing field `c_b`
-"
+
+"#]]
     );
 
     // Sub-table in the middle of a Vec is missing a field.
@@ -195,13 +205,14 @@
             ]
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 5, column 17
   |
 5 |                 {c_a = 'aa'},
   |                 ^^^^^^^^^^^^
 missing field `c_b`
-"
+
+"#]]
     );
 
     // Sub-table in the middle of a Vec has a field with a bad value.
@@ -216,13 +227,14 @@
             ]
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 5, column 36
   |
 5 |                 {c_a = 'aa', c_b = 1},
   |                                    ^
 invalid type: integer `1`, expected a string
-"
+
+"#]]
     );
 
     // Sub-table in the middle of a Vec has an extra field.
@@ -238,13 +250,14 @@
             ]
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 5, column 42
   |
 5 |                 {c_a = 'aa', c_b = 'bb', c_d = 'd'},
   |                                          ^^^
 unknown field `c_d`, expected `c_a` or `c_b`
-"
+
+"#]]
     );
 
     // Sub-table in the middle of a Vec is missing a field.
@@ -267,13 +280,14 @@
             c_b = 'bbbb'
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 6, column 13
   |
 6 |             [[p_b]]
-  |             ^^^^^^^^^^^^^^^^^^^
+  |             ^^^^^^^
 missing field `c_b`
-"
+
+"#]]
     );
 
     // Sub-table in the middle of a Vec has a field with a bad value.
@@ -292,13 +306,14 @@
             c_b = 'bbb'
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 8, column 19
   |
 8 |             c_b = '*'
   |                   ^^^
-invalid value: string \"*\", expected all lowercase or all uppercase
-"
+invalid value: string "*", expected all lowercase or all uppercase
+
+"#]]
     );
 
     // Sub-table in the middle of a Vec has an extra field.
@@ -320,13 +335,14 @@
             c_b = 'bbbb'
         ",
         Parent<CasedString>,
-        "\
+        str![[r#"
 TOML parse error at line 8, column 13
   |
 8 |             c_d = 'dd' # unknown field
   |             ^^^
 unknown field `c_d`, expected `c_a` or `c_b`
-"
+
+"#]]
     );
 }
 
@@ -338,13 +354,14 @@
           # ^
         ",
         Parent<String>,
-        "\
+        str![[r#"
 TOML parse error at line 1, column 1
   |
 1 | 
   | ^
 missing field `p_b`
-"
+
+"#]]
     );
 
     bad!(
@@ -356,13 +373,14 @@
             ]
         ",
         Parent<String>,
-        "\
+        str![[r#"
 TOML parse error at line 4, column 17
   |
 4 |                 {c_a = ''}
   |                 ^^^^^^^^^^
 missing field `c_b`
-"
+
+"#]]
     );
 
     bad!(
@@ -374,13 +392,14 @@
             ]
         ",
         Parent<String>,
-        "\
+        str![[r#"
 TOML parse error at line 4, column 34
   |
 4 |                 {c_a = '', c_b = 1}
   |                                  ^
 invalid type: integer `1`, expected a string
-"
+
+"#]]
     );
 
     // FIXME: This location could be better.
@@ -393,13 +412,14 @@
             ]
         ",
         Parent<String>,
-        "\
+        str![[r#"
 TOML parse error at line 4, column 38
   |
 4 |                 {c_a = '', c_b = '', c_d = ''},
   |                                      ^^^
 unknown field `c_d`, expected `c_a` or `c_b`
-"
+
+"#]]
     );
 
     bad!(
@@ -411,13 +431,14 @@
             ]
         ",
         Parent<String>,
-        "\
+        str![[r#"
 TOML parse error at line 4, column 34
   |
 4 |                 {c_a = '', c_b = 1, c_d = ''},
   |                                  ^
 invalid type: integer `1`, expected a string
-"
+
+"#]]
     );
 }
 
@@ -431,13 +452,14 @@
          a = 2\r\n\
          ",
         toml::Value,
-        "\
+        str![[r#"
 TOML parse error at line 5, column 1
   |
 5 | a = 2
   | ^
 duplicate key `a` in table `t2`
-"
+
+"#]]
     );
 
     // Should be the same as above.
@@ -449,12 +471,13 @@
          a = 2\n\
          ",
         toml::Value,
-        "\
+        str![[r#"
 TOML parse error at line 5, column 1
   |
 5 | a = 2
   | ^
 duplicate key `a` in table `t2`
-"
+
+"#]]
     );
 }
diff --git a/crates/toml/tests/testsuite/display.rs b/crates/toml/tests/testsuite/display.rs
index 7430fac..a0e0cff 100644
--- a/crates/toml/tests/testsuite/display.rs
+++ b/crates/toml/tests/testsuite/display.rs
@@ -3,13 +3,13 @@
 
 macro_rules! map( ($($k:expr => $v:expr),*) => ({
     let mut _m = Map::new();
-    $(_m.insert($k.to_string(), $v);)*
+    $(_m.insert($k.to_owned(), $v);)*
     _m
 }) );
 
 #[test]
 fn simple_show() {
-    assert_eq!(String("foo".to_string()).to_string(), "\"foo\"");
+    assert_eq!(String("foo".to_owned()).to_string(), "\"foo\"");
     assert_eq!(Integer(10).to_string(), "10");
     assert_eq!(Float(10.0).to_string(), "10.0");
     assert_eq!(Float(2.4).to_string(), "2.4");
@@ -32,7 +32,7 @@
         map! {
              "test" => Integer(2),
              "test2" => Table(map! {
-                 "test" => String("wut".to_string())
+                 "test" => String("wut".to_owned())
              })
         }
         .to_string(),
@@ -45,7 +45,7 @@
         map! {
              "test" => Integer(2),
              "test2" => Table(map! {
-                 "test" => String("wut".to_string())
+                 "test" => String("wut".to_owned())
              })
         }
         .to_string(),
@@ -58,7 +58,7 @@
         map! {
              "test" => Integer(2),
              "test2" => Array(vec![Table(map! {
-                 "test" => String("wut".to_string())
+                 "test" => String("wut".to_owned())
              })])
         }
         .to_string(),
@@ -75,7 +75,7 @@
         }
         .to_string(),
         "\"foo.bar\" = 2\n\
-         \"foo\\\"bar\" = 2\n"
+         'foo\"bar' = 2\n"
     );
     assert_eq!(
         map! {
@@ -94,7 +94,7 @@
         "test" => Integer(2),
         "test2" => Array(vec![Table(map! {
             "test" => Array(vec![Array(vec![Integer(2), Integer(3)]),
-            Array(vec![String("foo".to_string()), String("bar".to_string())])])
+            Array(vec![String("foo".to_owned()), String("bar".to_owned())])])
         })])
     };
     assert_eq!(
diff --git a/crates/toml/tests/testsuite/display_tricky.rs b/crates/toml/tests/testsuite/display_tricky.rs
index 379ae91..a75e00e 100644
--- a/crates/toml/tests/testsuite/display_tricky.rs
+++ b/crates/toml/tests/testsuite/display_tricky.rs
@@ -2,25 +2,25 @@
 use serde::Serialize;
 
 #[derive(Debug, Serialize, Deserialize)]
-pub struct Recipe {
-    pub name: String,
-    pub description: Option<String>,
+pub(crate) struct Recipe {
+    pub(crate) name: String,
+    pub(crate) description: Option<String>,
     #[serde(default)]
-    pub modules: Vec<Modules>,
+    pub(crate) modules: Vec<Modules>,
     #[serde(default)]
-    pub packages: Vec<Packages>,
+    pub(crate) packages: Vec<Packages>,
 }
 
 #[derive(Debug, Serialize, Deserialize)]
-pub struct Modules {
-    pub name: String,
-    pub version: Option<String>,
+pub(crate) struct Modules {
+    pub(crate) name: String,
+    pub(crate) version: Option<String>,
 }
 
 #[derive(Debug, Serialize, Deserialize)]
-pub struct Packages {
-    pub name: String,
-    pub version: Option<String>,
+pub(crate) struct Packages {
+    pub(crate) name: String,
+    pub(crate) version: Option<String>,
 }
 
 #[test]
diff --git a/crates/toml/tests/testsuite/enum_external_deserialize.rs b/crates/toml/tests/testsuite/enum_external_deserialize.rs
index 6e0c2f7..247a2c9 100644
--- a/crates/toml/tests/testsuite/enum_external_deserialize.rs
+++ b/crates/toml/tests/testsuite/enum_external_deserialize.rs
@@ -1,4 +1,7 @@
 use serde::Deserialize;
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
+use snapbox::str;
 
 #[derive(Debug, Deserialize, PartialEq)]
 struct OuterStruct {
@@ -33,63 +36,81 @@
 #[test]
 fn invalid_variant_returns_error_with_good_message_string() {
     let error = value_from_str::<TheEnum>("\"NonExistent\"").unwrap_err();
-    snapbox::assert_eq(
-        r#"unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
-"#,
+    assert_data_eq!(
         error.to_string(),
+        str![[r#"
+unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
+
+"#]]
+        .raw()
     );
 
     let error = toml::from_str::<Val>("val = \"NonExistent\"").unwrap_err();
-    snapbox::assert_eq(
-        r#"TOML parse error at line 1, column 7
+    assert_data_eq!(
+        error.to_string(),
+        str![[r#"
+TOML parse error at line 1, column 7
   |
 1 | val = "NonExistent"
   |       ^^^^^^^^^^^^^
 unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
-"#,
-        error.to_string(),
+
+"#]]
+        .raw()
     );
 }
 
 #[test]
 fn invalid_variant_returns_error_with_good_message_inline_table() {
     let error = value_from_str::<TheEnum>("{ NonExistent = {} }").unwrap_err();
-    snapbox::assert_eq(
-        r#"unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
-"#,
+    assert_data_eq!(
         error.to_string(),
+        str![[r#"
+unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
+
+"#]]
+        .raw()
     );
 
     let error = toml::from_str::<Val>("val = { NonExistent = {} }").unwrap_err();
-    snapbox::assert_eq(
-        r#"TOML parse error at line 1, column 9
+    assert_data_eq!(
+        error.to_string(),
+        str![[r#"
+TOML parse error at line 1, column 9
   |
 1 | val = { NonExistent = {} }
   |         ^^^^^^^^^^^
 unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
-"#,
-        error.to_string(),
+
+"#]]
+        .raw()
     );
 }
 
 #[test]
 fn extra_field_returns_expected_empty_table_error() {
     let error = value_from_str::<TheEnum>("{ Plain = { extra_field = 404 } }").unwrap_err();
-    snapbox::assert_eq(
-        r#"expected empty table
-"#,
+    assert_data_eq!(
         error.to_string(),
+        str![[r#"
+expected empty table
+
+"#]]
+        .raw()
     );
 
     let error = toml::from_str::<Val>("val = { Plain = { extra_field = 404 } }").unwrap_err();
-    snapbox::assert_eq(
-        r#"TOML parse error at line 1, column 17
+    assert_data_eq!(
+        error.to_string(),
+        str![[r#"
+TOML parse error at line 1, column 17
   |
 1 | val = { Plain = { extra_field = 404 } }
   |                 ^^^^^^^^^^^^^^^^^^^^^
 expected empty table
-"#,
-        error.to_string(),
+
+"#]]
+        .raw()
     );
 }
 
@@ -97,25 +118,29 @@
 fn extra_field_returns_expected_empty_table_error_struct_variant() {
     let error = value_from_str::<TheEnum>("{ Struct = { value = 123, extra_0 = 0, extra_1 = 1 } }")
         .unwrap_err();
-
-    snapbox::assert_eq(
-        r#"unexpected keys in table: extra_0, extra_1, available keys: value
-"#,
+    assert_data_eq!(
         error.to_string(),
+        str![[r#"
+unexpected keys in table: extra_0, extra_1, available keys: value
+
+"#]]
+        .raw()
     );
 
     let error =
         toml::from_str::<Val>("val = { Struct = { value = 123, extra_0 = 0, extra_1 = 1 } }")
             .unwrap_err();
-
-    snapbox::assert_eq(
-        r#"TOML parse error at line 1, column 33
+    assert_data_eq!(
+        error.to_string(),
+        str![[r#"
+TOML parse error at line 1, column 33
   |
 1 | val = { Struct = { value = 123, extra_0 = 0, extra_1 = 1 } }
   |                                 ^^^^^^^
 unexpected keys in table: extra_0, extra_1, available keys: value
-"#,
-        error.to_string(),
+
+"#]]
+        .raw()
     );
 }
 
@@ -189,12 +214,12 @@
     #[test]
     fn from_inline_table() {
         assert_eq!(
-            TheEnum::NewType("value".to_string()),
+            TheEnum::NewType("value".to_owned()),
             value_from_str(r#"{ NewType = "value" }"#).unwrap()
         );
         assert_eq!(
             Val {
-                val: TheEnum::NewType("value".to_string()),
+                val: TheEnum::NewType("value".to_owned()),
             },
             toml::from_str(r#"val = { NewType = "value" }"#).unwrap()
         );
@@ -203,12 +228,12 @@
     #[test]
     fn from_std_table() {
         assert_eq!(
-            TheEnum::NewType("value".to_string()),
+            TheEnum::NewType("value".to_owned()),
             toml::from_str(r#"NewType = "value""#).unwrap()
         );
         assert_eq!(
             Val {
-                val: TheEnum::NewType("value".to_string()),
+                val: TheEnum::NewType("value".to_owned()),
             },
             toml::from_str(
                 r#"[val]
@@ -283,7 +308,7 @@
                 enums: vec![
                     TheEnum::Plain,
                     TheEnum::Tuple(-123, true),
-                    TheEnum::NewType("value".to_string()),
+                    TheEnum::NewType("value".to_owned()),
                     TheEnum::Struct { value: -123 },
                 ]
             },
@@ -310,7 +335,7 @@
                 enums: vec![
                     TheEnum::Plain,
                     TheEnum::Tuple(-123, true),
-                    TheEnum::NewType("value".to_string()),
+                    TheEnum::NewType("value".to_owned()),
                     TheEnum::Struct { value: -123 },
                 ]
             },
diff --git a/crates/toml/tests/testsuite/formatting.rs b/crates/toml/tests/testsuite/formatting.rs
index 8240d1d..195d60e 100644
--- a/crates/toml/tests/testsuite/formatting.rs
+++ b/crates/toml/tests/testsuite/formatting.rs
@@ -4,19 +4,19 @@
 
 #[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
 struct User {
-    pub name: String,
-    pub surname: String,
+    pub(crate) name: String,
+    pub(crate) surname: String,
 }
 
 #[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
 struct Users {
-    pub user: Vec<User>,
+    pub(crate) user: Vec<User>,
 }
 
 #[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
 struct TwoUsers {
-    pub user0: User,
-    pub user1: User,
+    pub(crate) user0: User,
+    pub(crate) user1: User,
 }
 
 #[test]
@@ -24,12 +24,12 @@
     assert!(!to_string(&Users {
         user: vec![
             User {
-                name: "John".to_string(),
-                surname: "Doe".to_string(),
+                name: "John".to_owned(),
+                surname: "Doe".to_owned(),
             },
             User {
-                name: "Jane".to_string(),
-                surname: "Dough".to_string(),
+                name: "Jane".to_owned(),
+                surname: "Dough".to_owned(),
             },
         ],
     })
@@ -41,12 +41,12 @@
 fn no_unnecessary_newlines_table() {
     assert!(!to_string(&TwoUsers {
         user0: User {
-            name: "John".to_string(),
-            surname: "Doe".to_string(),
+            name: "John".to_owned(),
+            surname: "Doe".to_owned(),
         },
         user1: User {
-            name: "Jane".to_string(),
-            surname: "Dough".to_string(),
+            name: "Jane".to_owned(),
+            surname: "Dough".to_owned(),
         },
     })
     .unwrap()
diff --git a/crates/toml/tests/testsuite/macros.rs b/crates/toml/tests/testsuite/macros.rs
index e002cd9..97e933d 100644
--- a/crates/toml/tests/testsuite/macros.rs
+++ b/crates/toml/tests/testsuite/macros.rs
@@ -8,7 +8,7 @@
         #[allow(unused_mut)]
         let mut table = toml::value::Table::new();
         $(
-            table.insert($key.to_string(), $value.into());
+            table.insert($key.to_owned(), $value.into());
         )*
         toml::Value::Table(table)
     }};
diff --git a/crates/toml/tests/testsuite/pretty.rs b/crates/toml/tests/testsuite/pretty.rs
index 369888f..e8b9626 100644
--- a/crates/toml/tests/testsuite/pretty.rs
+++ b/crates/toml/tests/testsuite/pretty.rs
@@ -1,5 +1,6 @@
 use serde::ser::Serialize;
-use snapbox::assert_eq;
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
 
 const NO_PRETTY: &str = "\
 [example]
@@ -18,7 +19,7 @@
     let value: toml::Value = toml::from_str(toml).unwrap();
     let mut result = String::with_capacity(128);
     value.serialize(toml::Serializer::new(&mut result)).unwrap();
-    assert_eq(toml, &result);
+    assert_data_eq!(&result, toml.raw());
 }
 
 const PRETTY_STD: &str = "\
@@ -44,7 +45,7 @@
     value
         .serialize(toml::Serializer::pretty(&mut result))
         .unwrap();
-    assert_eq(toml, &result);
+    assert_data_eq!(&result, toml.raw());
 }
 
 const PRETTY_TRICKY: &str = r#"[example]
@@ -82,7 +83,7 @@
     value
         .serialize(toml::Serializer::pretty(&mut result))
         .unwrap();
-    assert_eq(toml, &result);
+    assert_data_eq!(&result, toml.raw());
 }
 
 const PRETTY_TABLE_ARRAY: &str = r#"[[array]]
@@ -106,7 +107,7 @@
     value
         .serialize(toml::Serializer::pretty(&mut result))
         .unwrap();
-    assert_eq(toml, &result);
+    assert_data_eq!(&result, toml.raw());
 }
 
 const TABLE_ARRAY: &str = r#"[[array]]
@@ -128,7 +129,7 @@
     let value: toml::Value = toml::from_str(toml).unwrap();
     let mut result = String::with_capacity(128);
     value.serialize(toml::Serializer::new(&mut result)).unwrap();
-    assert_eq(toml, &result);
+    assert_data_eq!(&result, toml.raw());
 }
 
 const PRETTY_EMPTY_TABLE: &str = r#"[example]
@@ -140,7 +141,7 @@
     let value: toml::Value = toml::from_str(toml).unwrap();
     let mut result = String::with_capacity(128);
     value.serialize(toml::Serializer::new(&mut result)).unwrap();
-    assert_eq(toml, &result);
+    assert_data_eq!(&result, toml.raw());
 }
 
 #[test]
@@ -165,7 +166,7 @@
 
     #[derive(Clone, Debug, serde::Deserialize, serde::Serialize, Eq, PartialEq)]
     #[serde(untagged, expecting = "expected a boolean or an integer")]
-    pub enum U32OrBool {
+    pub(crate) enum U32OrBool {
         U32(u32),
         Bool(bool),
     }
@@ -180,5 +181,5 @@
 
     let pkg: Package = toml::from_str(raw).unwrap();
     let pretty = toml::to_string_pretty(&pkg).unwrap();
-    assert_eq(raw, pretty);
+    assert_data_eq!(pretty, raw.raw());
 }
diff --git a/crates/toml/tests/testsuite/serde.rs b/crates/toml/tests/testsuite/serde.rs
index d7f8bc4..a2a63cd 100644
--- a/crates/toml/tests/testsuite/serde.rs
+++ b/crates/toml/tests/testsuite/serde.rs
@@ -1,8 +1,11 @@
+use std::collections::BTreeMap;
+
 use serde::Deserialize;
 use serde::Deserializer;
 use serde::Serialize;
-use std::collections::BTreeMap;
-
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
+use snapbox::str;
 use toml::map::Map;
 use toml::Table;
 use toml::Value;
@@ -23,7 +26,10 @@
 
         // Through a string equivalent
         println!("to_string");
-        snapbox::assert_eq(t!(toml::to_string(&literal)), t!(toml::to_string(&toml)));
+        assert_data_eq!(
+            t!(toml::to_string(&toml)),
+            t!(toml::to_string(&literal)).raw()
+        );
         println!("literal, from_str(toml)");
         assert_eq!(literal, t!(toml::from_str(&t!(toml::to_string(&toml)))));
         println!("toml, from_str(literal)");
@@ -49,20 +55,20 @@
         println!("attempting parsing");
         match toml::from_str::<$ty>(&$toml.to_string()) {
             Ok(_) => panic!("successful"),
-            Err(e) => snapbox::assert_eq($msg_parse, e.to_string()),
+            Err(e) => assert_data_eq!(e.to_string(), $msg_parse.raw()),
         }
 
         println!("attempting toml decoding");
         match $toml.try_into::<$ty>() {
             Ok(_) => panic!("successful"),
-            Err(e) => snapbox::assert_eq($msg_decode, e.to_string()),
+            Err(e) => assert_data_eq!(e.to_string(), $msg_decode.raw()),
         }
     }};
 }
 
 macro_rules! map( ($($k:ident: $v:expr),*) => ({
     let mut _m = Map::new();
-    $(_m.insert(stringify!($k).to_string(), t!(Value::try_from($v)));)*
+    $(_m.insert(stringify!($k).to_owned(), t!(Value::try_from($v)));)*
     _m
 }) );
 
@@ -83,19 +89,19 @@
         a_b: isize,
     }
 
-    equivalent! {
-        Foo { a_b: 2 },
-        map! { a_b: Value::Integer(2)},
-    }
-
     #[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
     struct Foo2 {
         #[serde(rename = "a-b")]
         a_b: isize,
     }
 
+    equivalent! {
+        Foo { a_b: 2 },
+        map! { a_b: Value::Integer(2)},
+    }
+
     let mut m = Map::new();
-    m.insert("a-b".to_string(), Value::Integer(2));
+    m.insert("a-b".to_owned(), Value::Integer(2));
     equivalent! {
         Foo2 { a_b: 2 },
         m,
@@ -115,11 +121,11 @@
     }
 
     equivalent! {
-        Foo { a: 2, b: Bar { a: "test".to_string() } },
+        Foo { a: 2, b: Bar { a: "test".to_owned() } },
         map! {
             a: Value::Integer(2),
             b: map! {
-                a: Value::String("test".to_string())
+                a: Value::String("test".to_owned())
             }
         },
     }
@@ -129,9 +135,9 @@
 fn application_decode_error() {
     #[derive(PartialEq, Debug)]
     struct Range10(usize);
-    impl<'de> serde::Deserialize<'de> for Range10 {
+    impl<'de> Deserialize<'de> for Range10 {
         fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Range10, D::Error> {
-            let x: usize = serde::Deserialize::deserialize(d)?;
+            let x: usize = Deserialize::deserialize(d)?;
             if x > 10 {
                 Err(serde::de::Error::custom("more than 10"))
             } else {
@@ -140,7 +146,7 @@
         }
     }
     let d_good = Value::Integer(5);
-    let d_bad1 = Value::String("not an isize".to_string());
+    let d_bad1 = Value::String("not an isize".to_owned());
     let d_bad2 = Value::Integer(11);
 
     assert_eq!(Range10(5), d_good.try_into().unwrap());
@@ -188,19 +194,19 @@
         Foo {
             a: Some(Box::new(Foo {
                 a: None,
-                b: Bar { a: "foo".to_string(), b: 4.5 },
+                b: Bar { a: "foo".to_owned(), b: 4.5 },
             })),
-            b: Bar { a: "bar".to_string(), b: 1.0 },
+            b: Bar { a: "bar".to_owned(), b: 1.0 },
         },
         map! {
             a: map! {
                 b: map! {
-                    a: Value::String("foo".to_string()),
+                    a: Value::String("foo".to_owned()),
                     b: Value::Float(4.5)
                 }
             },
             b: map! {
-                a: Value::String("bar".to_string()),
+                a: Value::String("bar".to_owned()),
                 b: Value::Float(1.0)
             }
         },
@@ -227,13 +233,13 @@
             },
             map: {
                 let mut m = BTreeMap::new();
-                m.insert("bar".to_string(), 4);
-                m.insert("foo".to_string(), 10);
+                m.insert("bar".to_owned(), 4);
+                m.insert("foo".to_owned(), 10);
                 m
             }
         },
         map! {
-            set: Value::Array(vec![Value::String("a".to_string())]),
+            set: Value::Array(vec![Value::String("a".to_owned())]),
             map: map! {
                 bar: Value::Integer(4),
                 foo: Value::Integer(10)
@@ -272,20 +278,6 @@
         bar: isize,
     }
 
-    error! {
-        Foo,
-        map! {
-            bar: Value::String("a".to_string())
-        },
-        r#"TOML parse error at line 1, column 7
-  |
-1 | bar = "a"
-  |       ^^^
-invalid type: string "a", expected isize
-"#,
-        "invalid type: string \"a\", expected isize\nin `bar`\n"
-    }
-
     #[derive(Deserialize)]
     #[allow(dead_code)]
     struct Bar {
@@ -293,19 +285,45 @@
     }
 
     error! {
+        Foo,
+        map! {
+            bar: Value::String("a".to_owned())
+        },
+        str![[r#"
+TOML parse error at line 1, column 7
+  |
+1 | bar = "a"
+  |       ^^^
+invalid type: string "a", expected isize
+
+"#]],
+        str![[r#"
+invalid type: string "a", expected isize
+in `bar`
+
+"#]]
+    }
+
+    error! {
         Bar,
         map! {
             foo: map! {
-                bar: Value::String("a".to_string())
+                bar: Value::String("a".to_owned())
             }
         },
-        r#"TOML parse error at line 2, column 7
+        str![[r#"
+TOML parse error at line 2, column 7
   |
 2 | bar = "a"
   |       ^^^
 invalid type: string "a", expected isize
-"#,
-        "invalid type: string \"a\", expected isize\nin `foo.bar`\n"
+
+"#]],
+        str![[r#"
+invalid type: string "a", expected isize
+in `foo.bar`
+
+"#]]
     }
 }
 
@@ -319,13 +337,18 @@
     error! {
         Foo,
         map! { },
-        r#"TOML parse error at line 1, column 1
+        str![[r#"
+TOML parse error at line 1, column 1
   |
 1 | 
   | ^
 missing field `bar`
-"#,
-        "missing field `bar`\n"
+
+"#]],
+        str![[r#"
+missing field `bar`
+
+"#]]
     }
 }
 
@@ -353,13 +376,13 @@
     }
 
     equivalent! {
-        Foo { a: E::Baz("foo".to_string()) },
-        map! { a: Value::String("foo".to_string()) },
+        Foo { a: E::Baz("foo".to_owned()) },
+        map! { a: Value::String("foo".to_owned()) },
     }
 
     equivalent! {
-        Foo { a: E::Last(Foo2 { test: "test".to_string() }) },
-        map! { a: map! { test: Value::String("test".to_string()) } },
+        Foo { a: E::Last(Foo2 { test: "test".to_owned() }) },
+        map! { a: map! { test: Value::String("test".to_owned()) } },
     }
 }
 
@@ -379,7 +402,7 @@
 
     equivalent! {
         Foo { a: Sort::Desc },
-        map! { a: Value::String("desc".to_string()) },
+        map! { a: Value::String("desc".to_owned()) },
     }
 }
 
@@ -402,14 +425,19 @@
             Enum::String("2".to_owned(), "2".to_owned()),
         ],
     };
-    let expected = "[[inner]]
+    let raw = toml::to_string(&input).unwrap();
+    assert_data_eq!(
+        raw,
+        str![[r#"
+[[inner]]
 Int = [1, 1]
 
 [[inner]]
-String = [\"2\", \"2\"]
-";
-    let raw = toml::to_string(&input).unwrap();
-    snapbox::assert_eq(expected, raw);
+String = ["2", "2"]
+
+"#]]
+        .raw()
+    );
 
     equivalent! {
         Document {
@@ -452,7 +480,11 @@
             },
         ],
     };
-    let expected = "[[inner]]
+    let raw = toml::to_string(&input).unwrap();
+    assert_data_eq!(
+        raw,
+        str![[r#"
+[[inner]]
 
 [inner.Int]
 first = 1
@@ -461,11 +493,12 @@
 [[inner]]
 
 [inner.String]
-first = \"2\"
-second = \"2\"
-";
-    let raw = toml::to_string(&input).unwrap();
-    snapbox::assert_eq(expected, raw);
+first = "2"
+second = "2"
+
+"#]]
+        .raw()
+    );
 
     equivalent! {
         Document {
@@ -566,10 +599,10 @@
 //     #[derive(Serialize, Deserialize, PartialEq, Debug)]
 //     struct Foo { a: BTreeMap<String, String> }
 //
-//     let v = Foo { a: map! { a, "foo".to_string() } };
+//     let v = Foo { a: map! { a, "foo".to_owned() } };
 //     let mut d = Decoder::new(Table(map! {
 //         a, Table(map! {
-//             a, Value::String("foo".to_string())
+//             a, Value::String("foo".to_owned())
 //         })
 //     }));
 //     assert_eq!(v, t!(Deserialize::deserialize(&mut d)));
@@ -582,9 +615,9 @@
 //     #[derive(Serialize, Deserialize, PartialEq, Debug)]
 //     struct Foo { a: Vec<String> }
 //
-//     let v = Foo { a: vec!["a".to_string()] };
+//     let v = Foo { a: vec!["a".to_owned()] };
 //     let mut d = Decoder::new(Table(map! {
-//         a, Array(vec![Value::String("a".to_string())])
+//         a, Array(vec![Value::String("a".to_owned())])
 //     }));
 //     assert_eq!(v, t!(Deserialize::deserialize(&mut d)));
 //
@@ -747,7 +780,7 @@
     #[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Serialize, Deserialize)]
     struct NewType(String);
 
-    type CustomKeyMap = std::collections::BTreeMap<NewType, u32>;
+    type CustomKeyMap = BTreeMap<NewType, u32>;
 
     equivalent! {
         [
@@ -772,18 +805,18 @@
     let text = "[bar]\n\n[baz]\n\n[bazv]\na = \"foo\"\n\n[foo]\n";
     let value: BTreeMap<String, CanBeEmpty> = toml::from_str(text).unwrap();
     let mut expected: BTreeMap<String, CanBeEmpty> = BTreeMap::new();
-    expected.insert("bar".to_string(), CanBeEmpty::default());
-    expected.insert("baz".to_string(), CanBeEmpty::default());
+    expected.insert("bar".to_owned(), CanBeEmpty::default());
+    expected.insert("baz".to_owned(), CanBeEmpty::default());
     expected.insert(
-        "bazv".to_string(),
+        "bazv".to_owned(),
         CanBeEmpty {
-            a: Some("foo".to_string()),
+            a: Some("foo".to_owned()),
             b: None,
         },
     );
-    expected.insert("foo".to_string(), CanBeEmpty::default());
+    expected.insert("foo".to_owned(), CanBeEmpty::default());
     assert_eq!(value, expected);
-    snapbox::assert_eq(text, toml::to_string(&value).unwrap());
+    assert_data_eq!(toml::to_string(&value).unwrap(), text.raw());
 }
 
 #[test]
@@ -830,17 +863,17 @@
 
     equivalent! {
         map! {
-            obj: Object(vec!["foo".to_string()], vec![], vec!["bar".to_string(), "baz".to_string()])
+            obj: Object(vec!["foo".to_owned()], vec![], vec!["bar".to_owned(), "baz".to_owned()])
         },
         map! {
             obj: Value::Array(vec![
                 Value::Array(vec![
-                    Value::String("foo".to_string()),
+                    Value::String("foo".to_owned()),
                 ]),
                 Value::Array(vec![]),
                 Value::Array(vec![
-                    Value::String("bar".to_string()),
-                    Value::String("baz".to_string()),
+                    Value::String("bar".to_owned()),
+                    Value::String("baz".to_owned()),
                 ]),
             ])
         },
@@ -851,7 +884,7 @@
 fn json_interoperability() {
     #[derive(Serialize, Deserialize)]
     struct Foo {
-        any: toml::Value,
+        any: Value,
     }
 
     let _foo: Foo = serde_json::from_str(
@@ -884,7 +917,7 @@
 
     #[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
     #[serde(untagged, expecting = "expected a boolean or an integer")]
-    pub enum U32OrBool {
+    pub(crate) enum U32OrBool {
         U32(u32),
         Bool(bool),
     }
@@ -901,14 +934,16 @@
 "#,
     );
     let err = res.unwrap_err();
-    snapbox::assert_eq(
-        r#"TOML parse error at line 8, column 9
+    assert_data_eq!(
+        err.to_string(),
+        str![[r#"
+TOML parse error at line 8, column 9
   |
 8 | debug = 'a'
   |         ^^^
 expected a boolean or an integer
-"#,
-        err.to_string(),
+
+"#]]
     );
 
     let res: Result<Package, _> = toml::from_str(
@@ -923,14 +958,16 @@
 "#,
     );
     let err = res.unwrap_err();
-    snapbox::assert_eq(
-        r#"TOML parse error at line 8, column 17
+    assert_data_eq!(
+        err.to_string(),
+        str![[r#"
+TOML parse error at line 8, column 17
   |
 8 | dev = { debug = 'a' }
   |                 ^^^
 expected a boolean or an integer
-"#,
-        err.to_string(),
+
+"#]]
     );
 }
 
@@ -945,10 +982,12 @@
         name: "foo".to_owned(),
     };
     let raw = toml::to_string_pretty(&package).unwrap();
-    snapbox::assert_eq(
-        r#"name = "foo"
-"#,
+    assert_data_eq!(
         raw,
+        str![[r#"
+name = "foo"
+
+"#]]
     );
 }
 
@@ -970,11 +1009,13 @@
         },
     };
     let raw = toml::to_string_pretty(&package).unwrap();
-    snapbox::assert_eq(
-        r#"[package]
-name = "foo"
-"#,
+    assert_data_eq!(
         raw,
+        str![[r#"
+[package]
+name = "foo"
+
+"#]]
     );
 }
 
@@ -997,7 +1038,7 @@
 
     #[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
     #[serde(untagged, expecting = "expected a boolean or an integer")]
-    pub enum U32OrBool {
+    pub(crate) enum U32OrBool {
         U32(u32),
         Bool(bool),
     }
@@ -1010,11 +1051,13 @@
         },
     };
     let raw = toml::to_string_pretty(&package).unwrap();
-    snapbox::assert_eq(
-        r#"[profile.dev]
-debug = true
-"#,
+    assert_data_eq!(
         raw,
+        str![[r#"
+[profile.dev]
+debug = true
+
+"#]]
     );
 }
 
@@ -1046,7 +1089,7 @@
 
     #[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
     #[serde(untagged, expecting = "expected a boolean or an integer")]
-    pub enum U32OrBool {
+    pub(crate) enum U32OrBool {
         U32(u32),
         Bool(bool),
     }
@@ -1065,8 +1108,10 @@
         },
     };
     let raw = toml::to_string_pretty(&package).unwrap();
-    snapbox::assert_eq(
-        r#"cargo_features = []
+    assert_data_eq!(
+        raw,
+        str![[r#"
+cargo_features = []
 
 [package]
 name = "foo"
@@ -1075,8 +1120,8 @@
 
 [profile.dev]
 debug = true
-"#,
-        raw,
+
+"#]]
     );
 }
 
@@ -1102,9 +1147,12 @@
 
     let native = Foo { a_b: u64::MAX };
     let err = Table::try_from(native.clone()).unwrap_err();
-    snapbox::assert_eq("u64 value was too large", err.to_string());
+    assert_data_eq!(err.to_string(), str!["u64 value was too large"].raw());
     let err = toml::to_string(&native).unwrap_err();
-    snapbox::assert_eq("out-of-range value for u64 type", err.to_string());
+    assert_data_eq!(
+        err.to_string(),
+        str!["out-of-range value for u64 type"].raw()
+    );
 }
 
 #[test]
@@ -1150,7 +1198,7 @@
 fn unsupported_root_type() {
     let native = "value";
     let err = toml::to_string_pretty(&native).unwrap_err();
-    snapbox::assert_eq("unsupported rust type", err.to_string());
+    assert_data_eq!(err.to_string(), str!["unsupported rust type"].raw());
 }
 
 #[test]
@@ -1162,7 +1210,7 @@
 
     let native = Foo { unused: () };
     let err = toml::to_string_pretty(&native).unwrap_err();
-    snapbox::assert_eq("unsupported unit type", err.to_string());
+    assert_data_eq!(err.to_string(), str!["unsupported unit type"].raw());
 }
 
 #[test]
@@ -1174,6 +1222,7 @@
     }
 
     #[derive(Deserialize)]
+    #[allow(dead_code)]
     enum Compare {
         Gt(u32),
     }
@@ -1216,9 +1265,117 @@
 #[test]
 fn datetime_offset_issue_496() {
     let original = "value = 1911-01-01T10:11:12-00:36\n";
-    let toml = original.parse::<toml::Table>().unwrap();
+    let toml = original.parse::<Table>().unwrap();
     let output = toml.to_string();
-    snapbox::assert_eq(original, output);
+    assert_data_eq!(output, original.raw());
+}
+
+#[test]
+fn serialize_date() {
+    use toml::value::Date;
+
+    #[derive(Serialize)]
+    struct Document {
+        date: Date,
+    }
+
+    let input = Document {
+        date: Date {
+            year: 2024,
+            month: 1,
+            day: 1,
+        },
+    };
+    let raw = toml::to_string(&input).unwrap();
+    assert_data_eq!(
+        raw,
+        str![[r#"
+date = 2024-01-01
+
+"#]]
+        .raw()
+    );
+}
+
+#[test]
+fn serialize_time() {
+    use toml::value::Time;
+
+    #[derive(Serialize)]
+    struct Document {
+        date: Time,
+    }
+
+    let input = Document {
+        date: Time {
+            hour: 5,
+            minute: 0,
+            second: 0,
+            nanosecond: 0,
+        },
+    };
+    let raw = toml::to_string(&input).unwrap();
+    assert_data_eq!(
+        raw,
+        str![[r#"
+date = 05:00:00
+
+"#]]
+        .raw()
+    );
+}
+
+#[test]
+fn deserialize_date() {
+    use toml::value::Date;
+
+    #[derive(Debug, Deserialize)]
+    struct Document {
+        date: Date,
+    }
+
+    let document: Document = toml::from_str("date = 2024-01-01").unwrap();
+    assert_eq!(
+        document.date,
+        Date {
+            year: 2024,
+            month: 1,
+            day: 1
+        }
+    );
+
+    let err = toml::from_str::<Document>("date = 2024-01-01T05:00:00").unwrap_err();
+    assert_data_eq!(
+        err.message(),
+        str!["invalid type: local datetime, expected local date"]
+    );
+}
+
+#[test]
+fn deserialize_time() {
+    use toml::value::Time;
+
+    #[derive(Debug, Deserialize)]
+    struct Document {
+        time: Time,
+    }
+
+    let document: Document = toml::from_str("time = 05:00:00").unwrap();
+    assert_eq!(
+        document.time,
+        Time {
+            hour: 5,
+            minute: 0,
+            second: 0,
+            nanosecond: 0,
+        }
+    );
+
+    let err = toml::from_str::<Document>("time = 2024-01-01T05:00:00").unwrap_err();
+    assert_data_eq!(
+        err.message(),
+        str!["invalid type: local datetime, expected local time"]
+    );
 }
 
 #[test]
@@ -1231,15 +1388,21 @@
     let input = Document {
         values: vec![Some(1), Some(2), Some(3)],
     };
-    let expected = "values = [1, 2, 3]\n";
     let raw = toml::to_string(&input).unwrap();
-    snapbox::assert_eq(expected, raw);
+    assert_data_eq!(
+        raw,
+        str![[r#"
+values = [1, 2, 3]
+
+"#]]
+        .raw()
+    );
 
     let input = Document {
         values: vec![Some(1), None, Some(3)],
     };
     let err = toml::to_string(&input).unwrap_err();
-    snapbox::assert_eq("unsupported None value", err.to_string());
+    assert_data_eq!(err.to_string(), str!["unsupported None value"].raw());
 }
 
 #[test]
@@ -1262,7 +1425,10 @@
             OptionalField { x: 3, y: Some(7) },
         ],
     };
-    let expected = "\
+    let raw = toml::to_string(&input).unwrap();
+    assert_data_eq!(
+        raw,
+        str![[r#"
 [[values]]
 x = 0
 y = 4
@@ -1274,9 +1440,10 @@
 [[values]]
 x = 3
 y = 7
-";
-    let raw = toml::to_string(&input).unwrap();
-    snapbox::assert_eq(expected, raw);
+
+"#]]
+        .raw()
+    );
 
     let input = Document {
         values: vec![
@@ -1285,7 +1452,10 @@
             OptionalField { x: 3, y: Some(7) },
         ],
     };
-    let expected = "\
+    let raw = toml::to_string(&input).unwrap();
+    assert_data_eq!(
+        raw,
+        str![[r#"
 [[values]]
 x = 0
 y = 4
@@ -1296,9 +1466,10 @@
 [[values]]
 x = 3
 y = 7
-";
-    let raw = toml::to_string(&input).unwrap();
-    snapbox::assert_eq(expected, raw);
+
+"#]]
+        .raw()
+    );
 }
 
 #[test]
@@ -1328,10 +1499,11 @@
             Choice::Optional(OptionalField { x: 3, y: Some(7) }),
         ],
     };
-    let expected = "values = [{ Optional = { x = 0, y = 4 } }, \"Empty\", { Optional = { x = 2, y = 5 } }, { Optional = { x = 3, y = 7 } }]
-";
     let raw = toml::to_string(&input).unwrap();
-    snapbox::assert_eq(expected, raw);
+    assert_data_eq!(raw, str![[r#"
+values = [{ Optional = { x = 0, y = 4 } }, "Empty", { Optional = { x = 2, y = 5 } }, { Optional = { x = 3, y = 7 } }]
+
+"#]].raw());
 
     let input = Document {
         values: vec![
@@ -1341,10 +1513,11 @@
             Choice::Optional(OptionalField { x: 3, y: Some(7) }),
         ],
     };
-    let expected = "values = [{ Optional = { x = 0, y = 4 } }, \"Empty\", { Optional = { x = 2 } }, { Optional = { x = 3, y = 7 } }]
-";
     let raw = toml::to_string(&input).unwrap();
-    snapbox::assert_eq(expected, raw);
+    assert_data_eq!(raw, str![[r#"
+values = [{ Optional = { x = 0, y = 4 } }, "Empty", { Optional = { x = 2 } }, { Optional = { x = 3, y = 7 } }]
+
+"#]].raw());
 }
 
 #[test]
diff --git a/crates/toml/tests/testsuite/spanned.rs b/crates/toml/tests/testsuite/spanned.rs
index 760c73aa..daf7601 100644
--- a/crates/toml/tests/testsuite/spanned.rs
+++ b/crates/toml/tests/testsuite/spanned.rs
@@ -5,11 +5,14 @@
 use std::fmt::Debug;
 
 use serde::Deserialize;
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
+use snapbox::str;
 use toml::value::Datetime;
 use toml::Spanned;
 
 /// A set of good datetimes.
-pub fn good_datetimes() -> Vec<&'static str> {
+pub(crate) fn good_datetimes() -> Vec<&'static str> {
     vec![
         "1997-09-09T09:09:09Z",
         "1997-09-09T09:09:09+09:09",
@@ -248,14 +251,16 @@
 fake = 1"#,
     )
     .unwrap_err();
-    snapbox::assert_eq(
-        "\
+    assert_data_eq!(
+        error.to_string(),
+        str![[r#"
 TOML parse error at line 3, column 1
   |
 3 | fake = 1
   | ^^^^
 unknown field `fake`, expected `real`
-",
-        error.to_string(),
+
+"#]]
+        .raw()
     );
 }
diff --git a/crates/toml/tests/testsuite/tables_last.rs b/crates/toml/tests/testsuite/tables_last.rs
index b003557..d94f2b1 100644
--- a/crates/toml/tests/testsuite/tables_last.rs
+++ b/crates/toml/tests/testsuite/tables_last.rs
@@ -54,11 +54,11 @@
     }
 
     let comp1 = Component {
-        base: "b".to_string(),
+        base: "b".to_owned(),
         transform: (1.0, 0.0, 0.0, 1.0, 0.0, 0.0),
     };
     let comp2 = Component {
-        base: "c".to_string(),
+        base: "c".to_owned(),
         transform: (1.0, 0.0, 0.0, 1.0, 0.0, 0.0),
     };
     let components = vec![comp1, comp2];
@@ -68,40 +68,40 @@
             Point {
                 x: 3.0,
                 y: 4.0,
-                pt_type: "line".to_string(),
+                pt_type: "line".to_owned(),
             },
             Point {
                 x: 5.0,
                 y: 6.0,
-                pt_type: "line".to_string(),
+                pt_type: "line".to_owned(),
             },
         ],
         vec![
             Point {
                 x: 0.0,
                 y: 0.0,
-                pt_type: "move".to_string(),
+                pt_type: "move".to_owned(),
             },
             Point {
                 x: 7.0,
                 y: 9.0,
-                pt_type: "offcurve".to_string(),
+                pt_type: "offcurve".to_owned(),
             },
             Point {
                 x: 8.0,
                 y: 10.0,
-                pt_type: "offcurve".to_string(),
+                pt_type: "offcurve".to_owned(),
             },
             Point {
                 x: 11.0,
                 y: 12.0,
-                pt_type: "curve".to_string(),
+                pt_type: "curve".to_owned(),
             },
         ],
     ];
     let g1 = Glyph {
-        contours,
         components,
+        contours,
     };
 
     let s = toml::to_string_pretty(&g1).unwrap();
@@ -149,13 +149,13 @@
     }
     toml::to_string(&C {
         a: A {
-            a: "aa".to_string(),
-            b: "ab".to_string(),
+            a: "aa".to_owned(),
+            b: "ab".to_owned(),
         },
-        b: vec!["b".to_string()],
+        b: vec!["b".to_owned()],
         c: vec![B {
-            a: "cba".to_string(),
-            b: vec!["cbb".to_string()],
+            a: "cba".to_owned(),
+            b: vec!["cbb".to_owned()],
         }],
     })
     .unwrap();
diff --git a/crates/unicode-width/.android-checksum.json b/crates/unicode-width/.android-checksum.json
index 8f5ab1e..10cc959 100644
--- a/crates/unicode-width/.android-checksum.json
+++ b/crates/unicode-width/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"cd01eed07d5c5c70542650b73b85be2ba24cae7e4a476546f333d394705149d4","Android.bp":"d6eab693271de9bc72833de5ef885b37bcbbf98c71a499bba5d77b77c0ce253c","COPYRIGHT":"ab4c8a47ea97e53eb239f5454701fbf35c618d980af54cfe659793662b2a1ebd","Cargo.toml":"b0c9781e2a6211f614da38604ba417a8965c8252707d92e6e987b50762978b00","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"8ff981830ebf3fe518679fabc276f8aade7e253f47946d0d8df0dd30f83d96f5","METADATA":"cd3537789660ca4718ad6551b6153462e6b5628eb645aaa874eb824248ade402","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","NOTICE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","README.md":"c58d1149e7d43af78c9b8880e4db4a6054dc206cefe7a7a3cbb0ddf9dda840cd","TEST_MAPPING":"368cbc275d5c38a75491369719657516ca1b6635f8a914ed481a9ec063d1dc2c","cargo_embargo.json":"84459a3d28b2de537000617d709682791207b299a562af849851183686bc30fe","scripts/unicode.py":"085732df59d6be8ca6eab0029ba594495138a932484cd184d33ef95c321a44e2","src/lib.rs":"755dce91e71c1814649c8d8374e510512a6b7dac69681d074f81c17f33ac801c","src/tables.rs":"8a9795298d1a031ace4be3ba78d9879da1512ce6fc8229dde12cb22545413cac","src/tests.rs":"1d329819963742c34123225f9d8d4d1483c7f8258c6d3e1ae2f17a17fe0a5af1"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"8e3de79aede94fea16efd285eae4b73ac34bcdb596e05e50cd255dd47675a143","Android.bp":"cc28bddc721b0cc6eb8b2c192fa5dbc85fd71edf61b2e88c0e555ad5514a5e8c","COPYRIGHT":"ab4c8a47ea97e53eb239f5454701fbf35c618d980af54cfe659793662b2a1ebd","Cargo.toml":"3429fa23367d8e29c709a0aabe1fb18c1bb80612db9a1ef585156f3f8cc29d50","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"8ff981830ebf3fe518679fabc276f8aade7e253f47946d0d8df0dd30f83d96f5","METADATA":"7d1c3abdb74949d730d12adfb04ee54974fe621c8f50c14b25bd26b387b99757","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","NOTICE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","README.md":"1a904e49fb4a2398c64528b291872775352286f62be026a071827f266d55cbcf","TEST_MAPPING":"368cbc275d5c38a75491369719657516ca1b6635f8a914ed481a9ec063d1dc2c","benches/benches.rs":"d48c520608bf761120af28e5aa91520fcbc3fc45a7defe7cd35e671fc67bc913","cargo_embargo.json":"e35f70a87f8cbf6318a380d6c4228142aff731c4f6137f4f3cebbdb2c259795c","scripts/unicode.py":"432f2fc902e270597267ccee9a53959f6a939c5626d822b6b8717387d5714285","src/lib.rs":"51493ace5866fac830607c2b06528c7649c277d9ff7557caa8fb640d83390026","src/tables.rs":"91569fec1e0748594a2569959020fa9d241904ced4c1f7705d9057e2af062332","tests/emoji-test.txt":"749bf24573e3f2611cadfd7ecec727dc3e9bce7f3d96ce7fff1a970e0a31dc65","tests/tests.rs":"59c61b342185d5245b0142e4d3eeac7c01d114a841818e5842e96bb8f25794e6"}}
\ No newline at end of file
diff --git a/crates/unicode-width/.cargo-checksum.json b/crates/unicode-width/.cargo-checksum.json
index c1608bd..32b4257 100644
--- a/crates/unicode-width/.cargo-checksum.json
+++ b/crates/unicode-width/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"COPYRIGHT":"23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d","Cargo.toml":"09233bddd9dcdd71355ad523e7293bc8764bb96f891e8968bea9b8aaf86ed314","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0","README.md":"8a041a4305fb318f5c2cb284046f8480796521d0e829023b0441b5e8469490eb","scripts/unicode.py":"d7884ff41ca9c54cbe97a8f9c909b0a8cd74bc8e6190b0c89bf3001a38d9d763","src/lib.rs":"baa30ab3913bde7d8e766a2fbccfda96f06dd499bebda899249fc7495d5ad6f7","src/tables.rs":"7201dff937e3b0f61f4fcad9cfb230fb0c44bb9082301e566351b95d7525605e","src/tests.rs":"ff9f331210861ba78040f119a0f6ccfacf5b2ca1ebee430784de0858fad01860"},"package":"e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"}
\ No newline at end of file
+{"files":{"COPYRIGHT":"23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d","Cargo.toml":"58a703b95d64c5cf5e84edb838fc5b3e426b7dcf54092bb5ffa4c88eb566b6ed","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0","README.md":"bb05cb954f8897cfd99a9d7b73ed41bf3991ec44fe6e1f500b91e51ae3892f4c","benches/benches.rs":"4cfb510cd83882f31eacc974c65acd2b6a0ce659aadf300de921e659ace7d587","scripts/unicode.py":"c905efbb53328aad971fa784027eee6403a04a2c04b1509d117b191bcbb6128f","src/lib.rs":"af71fa2d16706a1f15c9d3807829d8308c11ed4d974263ccf5a37d21a8c33982","src/tables.rs":"54753db78d67856fd202b4b072772c8c8a3f3297332a4f7bd77c84966946ea79","tests/emoji-test.txt":"d876ee249aa28eaa76cfa6dfaa702847a8d13b062aa488d465d0395ee8137ed9","tests/tests.rs":"eb5482283df9aaaaa090b2bbbc52e59779ed7da75d1254a64725f3df897c4804"},"package":"1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"}
\ No newline at end of file
diff --git a/crates/unicode-width/Android.bp b/crates/unicode-width/Android.bp
index 5401a6f..5f02a28 100644
--- a/crates/unicode-width/Android.bp
+++ b/crates/unicode-width/Android.bp
@@ -18,10 +18,13 @@
     host_supported: true,
     crate_name: "unicode_width",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.1.11",
+    cargo_pkg_version: "0.2.0",
     crate_root: "src/lib.rs",
-    edition: "2015",
-    features: ["default"],
+    edition: "2021",
+    features: [
+        "cjk",
+        "default",
+    ],
     apex_available: [
         "//apex_available:platform",
         "//apex_available:anyapex",
@@ -35,13 +38,37 @@
     host_supported: true,
     crate_name: "unicode_width",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.1.11",
+    cargo_pkg_version: "0.2.0",
     crate_root: "src/lib.rs",
     test_suites: ["general-tests"],
     auto_gen_config: true,
     test_options: {
         unit_test: true,
     },
-    edition: "2015",
-    features: ["default"],
+    edition: "2021",
+    features: [
+        "cjk",
+        "default",
+    ],
+}
+
+rust_test {
+    name: "unicode-width_test_tests_tests",
+    host_supported: true,
+    crate_name: "tests",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.2.0",
+    crate_root: "tests/tests.rs",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    test_options: {
+        unit_test: true,
+    },
+    edition: "2021",
+    features: [
+        "cjk",
+        "default",
+    ],
+    rustlibs: ["libunicode_width"],
+    data: ["tests/emoji-test.txt"],
 }
diff --git a/crates/unicode-width/Cargo.toml b/crates/unicode-width/Cargo.toml
index 6dcfacd..35e1557 100644
--- a/crates/unicode-width/Cargo.toml
+++ b/crates/unicode-width/Cargo.toml
@@ -10,31 +10,51 @@
 # See Cargo.toml.orig for the original contents.
 
 [package]
+edition = "2021"
 name = "unicode-width"
-version = "0.1.11"
+version = "0.2.0"
 authors = [
     "kwantam <[email protected]>",
     "Manish Goregaokar <[email protected]>",
 ]
-exclude = [
-    "target/*",
-    "Cargo.lock",
-]
+build = false
+exclude = ["/.github/*"]
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = """
 Determine displayed width of `char` and `str` types
 according to Unicode Standard Annex #11 rules.
 """
 homepage = "https://github.com/unicode-rs/unicode-width"
-documentation = "https://unicode-rs.github.io/unicode-width"
 readme = "README.md"
 keywords = [
     "text",
     "width",
     "unicode",
 ]
-license = "MIT/Apache-2.0"
+categories = [
+    "command-line-interface",
+    "internationalization",
+    "no-std::no-alloc",
+    "text-processing",
+]
+license = "MIT OR Apache-2.0"
 repository = "https://github.com/unicode-rs/unicode-width"
 
+[lib]
+name = "unicode_width"
+path = "src/lib.rs"
+
+[[test]]
+name = "tests"
+path = "tests/tests.rs"
+
+[[bench]]
+name = "benches"
+path = "benches/benches.rs"
+
 [dependencies.compiler_builtins]
 version = "0.1"
 optional = true
@@ -50,8 +70,8 @@
 package = "rustc-std-workspace-std"
 
 [features]
-bench = []
-default = []
+cjk = []
+default = ["cjk"]
 no_std = []
 rustc-dep-of-std = [
     "std",
diff --git a/crates/unicode-width/METADATA b/crates/unicode-width/METADATA
index 46ae386..2c5e878 100644
--- a/crates/unicode-width/METADATA
+++ b/crates/unicode-width/METADATA
@@ -1,17 +1,17 @@
 name: "unicode-width"
 description: "Determine displayed width of `char` and `str` types according to Unicode Standard Annex #11 rules."
 third_party {
-  version: "0.1.11"
+  version: "0.2.0"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 2
-    day: 5
+    year: 2025
+    month: 1
+    day: 15
   }
   homepage: "https://crates.io/crates/unicode-width"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/unicode-width/unicode-width-0.1.11.crate"
-    version: "0.1.11"
+    value: "https://static.crates.io/crates/unicode-width/unicode-width-0.2.0.crate"
+    version: "0.2.0"
   }
 }
diff --git a/crates/unicode-width/README.md b/crates/unicode-width/README.md
index 595e163..4ce085e 100644
--- a/crates/unicode-width/README.md
+++ b/crates/unicode-width/README.md
@@ -1,22 +1,22 @@
-# unicode-width
+# `unicode-width`
 
-Determine displayed width of `char` and `str` types according to
-[Unicode Standard Annex #11][UAX11] rules.
+[![Build status](https://github.com/unicode-rs/unicode-width/actions/workflows/rust.yml/badge.svg)](https://github.com/unicode-rs/unicode-width/actions/workflows/rust.yml)
+[![crates.io version](https://img.shields.io/crates/v/unicode-width)](https://crates.io/crates/unicode-width)
+[![Docs status](https://img.shields.io/docsrs/unicode-width)](https://docs.rs/unicode-width/)
+
+Determine displayed width of `char` and `str` types according to [Unicode Standard Annex #11][UAX11]
+and other portions of the Unicode standard.
+
+This crate is `#![no_std]`.
 
 [UAX11]: http://www.unicode.org/reports/tr11/
 
-[![Build Status](https://travis-ci.org/unicode-rs/unicode-width.svg)](https://travis-ci.org/unicode-rs/unicode-width)
-
-[Documentation](https://unicode-rs.github.io/unicode-width/unicode_width/index.html)
-
 ```rust
-extern crate unicode_width;
-
 use unicode_width::UnicodeWidthStr;
 
 fn main() {
     let teststr = "Hello, world!";
-    let width = UnicodeWidthStr::width(teststr);
+    let width = teststr.width();
     println!("{}", teststr);
     println!("The above string is {} columns wide.", width);
     let width = teststr.width_cjk();
@@ -25,27 +25,26 @@
 ```
 
 **NOTE:** The computed width values may not match the actual rendered column
-width. For example, the woman scientist emoji comprises of a woman emoji, a
-zero-width joiner and a microscope emoji.
+width. For example, many Brahmic scripts like Devanagari have complex rendering rules
+which this crate does not currently handle (and will never fully handle, because
+the exact rendering depends on the font):
 
 ```rust
 extern crate unicode_width;
 use unicode_width::UnicodeWidthStr;
 
 fn main() {
-    assert_eq!(UnicodeWidthStr::width("👩"), 2); // Woman
-    assert_eq!(UnicodeWidthStr::width("🔬"), 2); // Microscope
-    assert_eq!(UnicodeWidthStr::width("👩‍🔬"), 4); // Woman scientist
+    assert_eq!("क".width(), 1); // Devanagari letter Ka
+    assert_eq!("ष".width(), 1); // Devanagari letter Ssa
+    assert_eq!("क्ष".width(), 2); // Ka + Virama + Ssa
 }
 ```
 
-See [Unicode Standard Annex #11][UAX11] for precise details on what is and isn't
-covered by this crate.
-
-## features
-
-unicode-width does not depend on libstd, so it can be used in crates
-with the `#![no_std]` attribute.
+Additionally, [defective combining character sequences](https://unicode.org/glossary/#defective_combining_character_sequence)
+and nonstandard [Korean jamo](https://unicode.org/glossary/#jamo) sequences may
+be rendered with a different width than what this crate says. (This is not an
+exhaustive list.) For a list of what this crate *does* handle, see
+[docs.rs](https://docs.rs/unicode-width/latest/unicode_width/#rules-for-determining-width).
 
 ## crates.io
 
@@ -54,5 +53,18 @@
 
 ```toml
 [dependencies]
-unicode-width = "0.1.7"
+unicode-width = "0.1.11"
 ```
+
+
+## Changelog
+
+
+### 0.2.0
+
+ - Treat `\n` as width 1 (#60)
+ - Treat ambiguous `Modifier_Letter`s as narrow (#63)
+ - Support `Grapheme_Cluster_Break=Prepend` (#62)
+ - Support lots of ligatures (#53)
+
+Note: If you are using `unicode-width` for linebreaking, the change treating `\n` as width 1 _may cause behavior changes_. It is recommended that in such cases you feed already-line segmented text to `unicode-width`. In other words, please apply higher level control character based line breaking protocols before feeding text to `unicode-width`. Relying on any character producing a stable width in this crate is likely the sign of a bug.
diff --git a/crates/unicode-width/benches/benches.rs b/crates/unicode-width/benches/benches.rs
new file mode 100644
index 0000000..44aaee6
--- /dev/null
+++ b/crates/unicode-width/benches/benches.rs
@@ -0,0 +1,114 @@
+// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+#![feature(test)]
+
+extern crate test;
+
+use std::iter;
+
+use test::Bencher;
+
+use unicode_width::{UnicodeWidthChar, UnicodeWidthStr};
+
+#[bench]
+fn cargo(b: &mut Bencher) {
+    let string = iter::repeat('a').take(4096).collect::<String>();
+
+    b.iter(|| {
+        for c in string.chars() {
+            test::black_box(UnicodeWidthChar::width(c));
+        }
+    });
+}
+
+#[bench]
+#[allow(deprecated)]
+fn stdlib(b: &mut Bencher) {
+    let string = iter::repeat('a').take(4096).collect::<String>();
+
+    b.iter(|| {
+        for c in string.chars() {
+            test::black_box(c.width());
+        }
+    });
+}
+
+#[bench]
+fn simple_if(b: &mut Bencher) {
+    let string = iter::repeat('a').take(4096).collect::<String>();
+
+    b.iter(|| {
+        for c in string.chars() {
+            test::black_box(simple_width_if(c));
+        }
+    });
+}
+
+#[bench]
+fn simple_match(b: &mut Bencher) {
+    let string = iter::repeat('a').take(4096).collect::<String>();
+
+    b.iter(|| {
+        for c in string.chars() {
+            test::black_box(simple_width_match(c));
+        }
+    });
+}
+
+#[inline]
+fn simple_width_if(c: char) -> Option<usize> {
+    let cu = c as u32;
+    if cu < 127 {
+        if cu > 31 {
+            Some(1)
+        } else if cu == 0 {
+            Some(0)
+        } else {
+            None
+        }
+    } else {
+        UnicodeWidthChar::width(c)
+    }
+}
+
+#[inline]
+fn simple_width_match(c: char) -> Option<usize> {
+    match c as u32 {
+        cu if cu == 0 => Some(0),
+        cu if cu < 0x20 => None,
+        cu if cu < 0x7f => Some(1),
+        _ => UnicodeWidthChar::width(c),
+    }
+}
+
+#[bench]
+fn enwik8(b: &mut Bencher) {
+    // To benchmark, download & unzip `enwik8` from https://data.deepai.org/enwik8.zip
+    let data_path = "bench_data/enwik8";
+    let string = std::fs::read_to_string(data_path).unwrap_or_default();
+    b.iter(|| test::black_box(UnicodeWidthStr::width(string.as_str())));
+}
+
+#[bench]
+fn jawiki(b: &mut Bencher) {
+    // To benchmark, download & extract `jawiki-20220501-pages-articles-multistream-index.txt` from
+    // https://dumps.wikimedia.org/jawiki/20220501/jawiki-20220501-pages-articles-multistream-index.txt.bz2
+    let data_path = "bench_data/jawiki-20220501-pages-articles-multistream-index.txt";
+    let string = std::fs::read_to_string(data_path).unwrap_or_default();
+    b.iter(|| test::black_box(UnicodeWidthStr::width(string.as_str())));
+}
+
+#[bench]
+fn emoji(b: &mut Bencher) {
+    // To benchmark, download emoji-style.txt from https://www.unicode.org/emoji/charts/emoji-style.txt
+    let data_path = "bench_data/emoji-style.txt";
+    let string = std::fs::read_to_string(data_path).unwrap_or_default();
+    b.iter(|| test::black_box(UnicodeWidthStr::width(string.as_str())));
+}
diff --git a/crates/unicode-width/cargo_embargo.json b/crates/unicode-width/cargo_embargo.json
index c8842d1..d1ef02b 100644
--- a/crates/unicode-width/cargo_embargo.json
+++ b/crates/unicode-width/cargo_embargo.json
@@ -1,4 +1,11 @@
 {
   "run_cargo": false,
-  "tests": true
+  "tests": true,
+  "package": {
+    "unicode-width": {
+      "test_data": {
+        "tests/tests.rs": ["tests/emoji-test.txt"]
+      }
+    }
+  }
 }
diff --git a/crates/unicode-width/scripts/unicode.py b/crates/unicode-width/scripts/unicode.py
index a6d58c5..aa0d86b 100755
--- a/crates/unicode-width/scripts/unicode.py
+++ b/crates/unicode-width/scripts/unicode.py
@@ -11,18 +11,35 @@
 # except according to those terms.
 
 # This script uses the following Unicode tables:
+#
+# - DerivedCoreProperties.txt
 # - EastAsianWidth.txt
+# - HangulSyllableType.txt
+# - NormalizationTest.txt (for tests only)
+# - PropList.txt
 # - ReadMe.txt
 # - UnicodeData.txt
+# - auxiliary/GraphemeBreakProperty.txt
+# - emoji/emoji-data.txt
+# - emoji/emoji-variation-sequences.txt
+# - extracted/DerivedGeneralCategory.txt
 #
 # Since this should not require frequent updates, we just store this
 # out-of-line and check the generated module into git.
 
 import enum
 import math
+import operator
 import os
 import re
 import sys
+import urllib.request
+from collections import defaultdict
+from itertools import batched
+from typing import Callable, Iterable
+
+UNICODE_VERSION = "15.1.0"
+"""The version of the Unicode data files to download."""
 
 NUM_CODEPOINTS = 0x110000
 """An upper bound for which `range(0, NUM_CODEPOINTS)` contains Unicode's codespace."""
@@ -43,50 +60,84 @@
     """Each offset is a single byte (u8)."""
 
 
-TABLE_CFGS = [
-    (13, MAX_CODEPOINT_BITS, OffsetType.U8),
-    (6, 13, OffsetType.U8),
-    (0, 6, OffsetType.U2),
-]
-"""Represents the format of each level of the multi-level lookup table.
-A level's entry is of the form `(low_bit, cap_bit, offset_type)`.
-This means that every sub-table in that level is indexed by bits `low_bit..cap_bit` of the
-codepoint and those tables offsets are stored according to `offset_type`.
+MODULE_PATH = "../src/tables.rs"
+"""The path of the emitted Rust module (relative to the working directory)"""
 
-If this is edited, you must ensure that `emit_module` reflects your changes."""
-
-MODULE_FILENAME = "tables.rs"
-"""The filename of the emitted Rust module (will be created in the working directory)"""
+TABLE_SPLITS = [7, 13]
+"""The splits between the bits of the codepoint used to index each subtable.
+Adjust these values to change the sizes of the subtables"""
 
 Codepoint = int
 BitPos = int
 
 
-def fetch_open(filename: str):
+def fetch_open(filename: str, local_prefix: str = "", emoji: bool = False):
     """Opens `filename` and return its corresponding file object. If `filename` isn't on disk,
-    fetches it from `http://www.unicode.org/Public/UNIDATA/`. Exits with code 1 on failure."""
-    if not os.path.exists(os.path.basename(filename)):
-        os.system(f"curl -O http://www.unicode.org/Public/UNIDATA/{filename}")
+    fetches it from `https://www.unicode.org/Public/`. Exits with code 1 on failure.
+    """
+    basename = os.path.basename(filename)
+    localname = os.path.join(local_prefix, basename)
+    if not os.path.exists(localname):
+        if emoji:
+            prefix = f"emoji/{UNICODE_VERSION[:-2]}"
+        else:
+            prefix = f"{UNICODE_VERSION}/ucd"
+        urllib.request.urlretrieve(
+            f"https://www.unicode.org/Public/{prefix}/{filename}",
+            localname,
+        )
     try:
-        return open(filename, encoding="utf-8")
+        return open(localname, encoding="utf-8")
     except OSError:
-        sys.stderr.write(f"cannot load {filename}")
+        sys.stderr.write(f"cannot load {localname}")
         sys.exit(1)
 
 
-def load_unicode_version() -> "tuple[int, int, int]":
+def load_unicode_version() -> tuple[int, int, int]:
     """Returns the current Unicode version by fetching and processing `ReadMe.txt`."""
     with fetch_open("ReadMe.txt") as readme:
         pattern = r"for Version (\d+)\.(\d+)\.(\d+) of the Unicode"
-        return tuple(map(int, re.search(pattern, readme.read()).groups()))
+        return tuple(map(int, re.search(pattern, readme.read()).groups()))  # type: ignore
 
 
-class EffectiveWidth(enum.IntEnum):
-    """Represents the width of a Unicode character. All East Asian Width classes resolve into
-    either `EffectiveWidth.NARROW`, `EffectiveWidth.WIDE`, or `EffectiveWidth.AMBIGUOUS`."""
+def load_property(filename: str, pattern: str, action: Callable[[int], None]):
+    with fetch_open(filename) as properties:
+        single = re.compile(rf"^([0-9A-F]+)\s*;\s*{pattern}\s+")
+        multiple = re.compile(rf"^([0-9A-F]+)\.\.([0-9A-F]+)\s*;\s*{pattern}\s+")
 
-    ZERO = 0
-    """ Zero columns wide. """
+        for line in properties.readlines():
+            raw_data = None  # (low, high)
+            if match := single.match(line):
+                raw_data = (match.group(1), match.group(1))
+            elif match := multiple.match(line):
+                raw_data = (match.group(1), match.group(2))
+            else:
+                continue
+            low = int(raw_data[0], 16)
+            high = int(raw_data[1], 16)
+            for cp in range(low, high + 1):
+                action(cp)
+
+
+def to_sorted_ranges(iter: Iterable[Codepoint]) -> list[tuple[Codepoint, Codepoint]]:
+    "Creates a sorted list of ranges from an iterable of codepoints"
+    lst = [c for c in iter]
+    lst.sort()
+    ret = []
+    for cp in lst:
+        if len(ret) > 0 and ret[-1][1] == cp - 1:
+            ret[-1] = (ret[-1][0], cp)
+        else:
+            ret.append((cp, cp))
+    return ret
+
+
+class EastAsianWidth(enum.IntEnum):
+    """Represents the width of a Unicode character according to UAX 16.
+    All East Asian Width classes resolve into either
+    `EffectiveWidth.NARROW`, `EffectiveWidth.WIDE`, or `EffectiveWidth.AMBIGUOUS`.
+    """
+
     NARROW = 1
     """ One column wide. """
     WIDE = 2
@@ -95,7 +146,243 @@
     """ Two columns wide in a CJK context. One column wide in all other contexts. """
 
 
-def load_east_asian_widths() -> "list[EffectiveWidth]":
+class CharWidthInTable(enum.IntEnum):
+    """Represents the width of a Unicode character
+    as stored in the tables."""
+
+    ZERO = 0
+    ONE = 1
+    TWO = 2
+    SPECIAL = 3
+
+
+class WidthState(enum.IntEnum):
+    """
+    Width calculation proceeds according to a state machine.
+    We iterate over the characters of the string from back to front;
+    the next character encountered determines the transition to take.
+
+    The integer values of these variants have special meaning:
+    - Top bit: whether this is Vs16
+    - 2nd from top: whether this is Vs15
+    - 3rd bit from top: whether this is transparent to emoji/text presentation
+      (if set, should also set 4th)
+    - 4th bit: whether to set top bit on emoji presentation.
+      If this is set but 3rd is not, the width mode is related to zwj sequences
+    - 5th from top: whether this is unaffected by ligature-transparent
+    - 6th bit: if 4th is set but this one is not, then this is a ZWJ ligature state
+      where no ZWJ has been encountered yet; encountering one flips this on"""
+
+    # BASIC WIDTHS
+
+    ZERO = 0x1_0000
+    "Zero columns wide."
+
+    NARROW = 0x1_0001
+    "One column wide."
+
+    WIDE = 0x1_0002
+    "Two columns wide."
+
+    THREE = 0x1_0003
+    "Three columns wide."
+
+    # \r\n
+    LINE_FEED = 0b0000_0000_0000_0001
+    "\\n (CRLF has width 1)"
+
+    # EMOJI
+
+    # Emoji skintone modifiers
+    EMOJI_MODIFIER = 0b0000_0000_0000_0010
+    "`Emoji_Modifier`"
+
+    # Emoji ZWJ sequences
+
+    REGIONAL_INDICATOR = 0b0000_0000_0000_0011
+    "`Regional_Indicator`"
+
+    SEVERAL_REGIONAL_INDICATOR = 0b0000_0000_0000_0100
+    "At least two `Regional_Indicator`in sequence"
+
+    EMOJI_PRESENTATION = 0b0000_0000_0000_0101
+    "`Emoji_Presentation`"
+
+    ZWJ_EMOJI_PRESENTATION = 0b0001_0000_0000_0110
+    "\\u200D `Emoji_Presentation`"
+
+    VS16_ZWJ_EMOJI_PRESENTATION = 0b1001_0000_0000_0110
+    "\\uFE0F \\u200D `Emoji_Presentation`"
+
+    KEYCAP_ZWJ_EMOJI_PRESENTATION = 0b0001_0000_0000_0111
+    "\\u20E3 \\u200D `Emoji_Presentation`"
+
+    VS16_KEYCAP_ZWJ_EMOJI_PRESENTATION = 0b1001_0000_0000_0111
+    "\\uFE0F \\u20E3 \\u200D `Emoji_Presentation`"
+
+    REGIONAL_INDICATOR_ZWJ_PRESENTATION = 0b0000_0000_0000_1001
+    "`Regional_Indicator` \\u200D `Emoji_Presentation`"
+
+    EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION = 0b0000_0000_0000_1010
+    "(`Regional_Indicator` `Regional_Indicator`)+ \\u200D `Emoji_Presentation`"
+
+    ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION = 0b0000_0000_0000_1011
+    "(`Regional_Indicator` `Regional_Indicator`)+ `Regional_Indicator` \\u200D `Emoji_Presentation`"
+
+    TAG_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_0000
+    "\\uE007F \\u200D `Emoji_Presentation`"
+
+    TAG_D1_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_0001
+    "\\uE0030..=\\uE0039 \\uE007F \\u200D `Emoji_Presentation`"
+
+    TAG_D2_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_0010
+    "(\\uE0030..=\\uE0039){2} \\uE007F \\u200D `Emoji_Presentation`"
+
+    TAG_D3_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_0011
+    "(\\uE0030..=\\uE0039){3} \\uE007F \\u200D `Emoji_Presentation`"
+
+    TAG_A1_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_1001
+    "\\uE0061..=\\uE007A \\uE007F \\u200D `Emoji_Presentation`"
+
+    TAG_A2_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_1010
+    "(\\uE0061..=\\uE007A){2} \\uE007F \\u200D `Emoji_Presentation`"
+
+    TAG_A3_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_1011
+    "(\\uE0061..=\\uE007A){3} \\uE007F \\u200D `Emoji_Presentation`"
+
+    TAG_A4_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_1100
+    "(\\uE0061..=\\uE007A){4} \\uE007F \\u200D `Emoji_Presentation`"
+
+    TAG_A5_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_1101
+    "(\\uE0061..=\\uE007A){35} \\uE007F \\u200D `Emoji_Presentation`"
+
+    TAG_A6_END_ZWJ_EMOJI_PRESENTATION = 0b0000_0000_0001_1110
+    "(\\uE0061..=\\uE007A){6} \\uE007F \\u200D `Emoji_Presentation`"
+
+    # VARIATION SELECTORS
+
+    # Text presentation sequences (not CJK)
+    VARIATION_SELECTOR_15 = 0b0100_0000_0000_0000
+    "\\uFE0E (text presentation sequences)"
+
+    # Emoji presentation sequences
+    VARIATION_SELECTOR_16 = 0b1000_0000_0000_0000
+    "\\uFE0F (emoji presentation sequences)"
+
+    # ARABIC LAM ALEF
+
+    JOINING_GROUP_ALEF = 0b0011_0000_1111_1111
+    "Joining_Group=Alef (Arabic Lam-Alef ligature)"
+
+    # COMBINING SOLIDUS (CJK only)
+
+    COMBINING_LONG_SOLIDUS_OVERLAY = 0b0011_1100_1111_1111
+    "\\u0338 (CJK only, makes <, =, > width 2)"
+
+    # SOLIDUS + ALEF (solidus is Joining_Type=Transparent)
+    SOLIDUS_OVERLAY_ALEF = 0b0011_1000_1111_1111
+    "\\u0338 followed by Joining_Group=Alef"
+
+    # SCRIPT ZWJ LIGATURES
+
+    # Hebrew alef lamed
+
+    HEBREW_LETTER_LAMED = 0b0011_1000_0000_0000
+    "\\u05DC (Alef-ZWJ-Lamed ligature)"
+
+    ZWJ_HEBREW_LETTER_LAMED = 0b0011_1100_0000_0000
+    "\\u200D\\u05DC (Alef-ZWJ-Lamed ligature)"
+
+    # Buginese <a -i> ya
+
+    BUGINESE_LETTER_YA = 0b0011_1000_0000_0001
+    "\\u1A10 (<a, -i> + ya ligature)"
+
+    ZWJ_BUGINESE_LETTER_YA = 0b0011_1100_0000_0001
+    "\\u200D\\u1A10 (<a, -i> + ya ligature)"
+
+    BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA = 0b0011_1100_0000_0010
+    "\\u1A17\\u200D\\u1A10 (<a, -i> + ya ligature)"
+
+    # Tifinagh bi-consonants
+
+    TIFINAGH_CONSONANT = 0b0011_1000_0000_0011
+    "\\u2D31..=\\u2D65 or \\u2D6F (joined by ZWJ or \\u2D7F TIFINAGH CONSONANT JOINER)"
+
+    ZWJ_TIFINAGH_CONSONANT = 0b0011_1100_0000_0011
+    "ZWJ then \\u2D31..=\\u2D65 or \\u2D6F"
+
+    TIFINAGH_JOINER_CONSONANT = 0b0011_1100_0000_0100
+    "\\u2D7F then \\u2D31..=\\u2D65 or \\u2D6F"
+
+    # Lisu tone letters
+    LISU_TONE_LETTER_MYA_NA_JEU = 0b0011_1100_0000_0101
+    "\\uA4FC or \\uA4FD (https://www.unicode.org/versions/Unicode15.0.0/ch18.pdf#G42078)"
+
+    # Old Turkic orkhon ec - orkhon i
+
+    OLD_TURKIC_LETTER_ORKHON_I = 0b0011_1000_0000_0110
+    "\\u10C03 (ORKHON EC-ZWJ-ORKHON I ligature)"
+
+    ZWJ_OLD_TURKIC_LETTER_ORKHON_I = 0b0011_1100_0000_0110
+    "\\u10C03 (ORKHON EC-ZWJ-ORKHON I ligature)"
+
+    # Khmer coeng signs
+
+    KHMER_COENG_ELIGIBLE_LETTER = 0b0011_1100_0000_0111
+    "\\u1780..=\\u17A2 | \\u17A7 | \\u17AB | \\u17AC | \\u17AF"
+
+    def table_width(self) -> CharWidthInTable:
+        "The width of a character as stored in the lookup tables."
+        match self:
+            case WidthState.ZERO:
+                return CharWidthInTable.ZERO
+            case WidthState.NARROW:
+                return CharWidthInTable.ONE
+            case WidthState.WIDE:
+                return CharWidthInTable.TWO
+            case _:
+                return CharWidthInTable.SPECIAL
+
+    def is_carried(self) -> bool:
+        "Whether this corresponds to a non-default `WidthInfo`."
+        return int(self) <= 0xFFFF
+
+    def width_alone(self) -> int:
+        "The width of a character with this type when it appears alone."
+        match self:
+            case (
+                WidthState.ZERO
+                | WidthState.COMBINING_LONG_SOLIDUS_OVERLAY
+                | WidthState.VARIATION_SELECTOR_15
+                | WidthState.VARIATION_SELECTOR_16
+            ):
+                return 0
+            case (
+                WidthState.WIDE
+                | WidthState.EMOJI_MODIFIER
+                | WidthState.EMOJI_PRESENTATION
+            ):
+                return 2
+            case WidthState.THREE:
+                return 3
+            case _:
+                return 1
+
+    def is_cjk_only(self) -> bool:
+        return self in [
+            WidthState.COMBINING_LONG_SOLIDUS_OVERLAY,
+            WidthState.SOLIDUS_OVERLAY_ALEF,
+        ]
+
+    def is_non_cjk_only(self) -> bool:
+        return self == WidthState.VARIATION_SELECTOR_15
+
+
+assert len(set([v.value for v in WidthState])) == len([v.value for v in WidthState])
+
+
+def load_east_asian_widths() -> list[EastAsianWidth]:
     """Return a list of effective widths, indexed by codepoint.
     Widths are determined by fetching and parsing `EastAsianWidth.txt`.
 
@@ -103,17 +390,18 @@
 
     `Wide` and `Fullwidth` characters are assigned `EffectiveWidth.WIDE`.
 
-    `Ambiguous` chracters are assigned `EffectiveWidth.AMBIGUOUS`."""
+    `Ambiguous` characters are assigned `EffectiveWidth.AMBIGUOUS`."""
+
     with fetch_open("EastAsianWidth.txt") as eaw:
         # matches a width assignment for a single codepoint, i.e. "1F336;N  # ..."
-        single = re.compile(r"^([0-9A-F]+)\s+;\s+(\w+) +# (\w+)")
+        single = re.compile(r"^([0-9A-F]+)\s*;\s*(\w+) +# (\w+)")
         # matches a width assignment for a range of codepoints, i.e. "3001..3003;W  # ..."
-        multiple = re.compile(r"^([0-9A-F]+)\.\.([0-9A-F]+)\s+;\s+(\w+) +# (\w+)")
+        multiple = re.compile(r"^([0-9A-F]+)\.\.([0-9A-F]+)\s*;\s*(\w+) +# (\w+)")
         # map between width category code and condensed width
         width_codes = {
-            **{c: EffectiveWidth.NARROW for c in ["N", "Na", "H"]},
-            **{c: EffectiveWidth.WIDE for c in ["W", "F"]},
-            "A": EffectiveWidth.AMBIGUOUS,
+            **{c: EastAsianWidth.NARROW for c in ["N", "Na", "H"]},
+            **{c: EastAsianWidth.WIDE for c in ["W", "F"]},
+            "A": EastAsianWidth.AMBIGUOUS,
         }
 
         width_map = []
@@ -134,61 +422,381 @@
             while current <= high:
                 # Some codepoints don't fall into any of the ranges in EastAsianWidth.txt.
                 # All such codepoints are implicitly given Neural width (resolves to narrow)
-                width_map.append(EffectiveWidth.NARROW if current < low else width)
+                width_map.append(EastAsianWidth.NARROW if current < low else width)
                 current += 1
 
         while len(width_map) < NUM_CODEPOINTS:
             # Catch any leftover codepoints and assign them implicit Neutral/narrow width.
-            width_map.append(EffectiveWidth.NARROW)
+            width_map.append(EastAsianWidth.NARROW)
 
-        return width_map
+    # Ambiguous `Letter`s and `Modifier_Symbol`s are narrow
+    load_property(
+        "extracted/DerivedGeneralCategory.txt",
+        r"(:?Lu|Ll|Lt|Lm|Lo|Sk)",
+        lambda cp: (
+            operator.setitem(width_map, cp, EastAsianWidth.NARROW)
+            if width_map[cp] == EastAsianWidth.AMBIGUOUS
+            else None
+        ),
+    )
+
+    # GREEK ANO TELEIA: NFC decomposes to U+00B7 MIDDLE DOT
+    width_map[0x0387] = EastAsianWidth.AMBIGUOUS
+
+    # Canonical equivalence for symbols with stroke
+    with fetch_open("UnicodeData.txt") as udata:
+        single = re.compile(r"([0-9A-Z]+);.*?;.*?;.*?;.*?;([0-9A-Z]+) 0338;")
+        for line in udata.readlines():
+            if match := single.match(line):
+                composed = int(match.group(1), 16)
+                decomposed = int(match.group(2), 16)
+                if width_map[decomposed] == EastAsianWidth.AMBIGUOUS:
+                    width_map[composed] = EastAsianWidth.AMBIGUOUS
+
+    return width_map
 
 
-def load_zero_widths() -> "list[bool]":
+def load_zero_widths() -> list[bool]:
     """Returns a list `l` where `l[c]` is true if codepoint `c` is considered a zero-width
-    character. `c` is considered a zero-width character if `c` is in general categories
-    `Cc`, `Cf`, `Mn`, or `Me` (determined by fetching and processing `UnicodeData.txt`)."""
-    with fetch_open("UnicodeData.txt") as categories:
-        zw_map = []
-        current = 0
-        for line in categories.readlines():
-            if len(raw_data := line.split(";")) != 15:
-                continue
-            [codepoint, name, cat_code] = [
-                int(raw_data[0], 16),
-                raw_data[1],
-                raw_data[2],
-            ]
-            zero_width = cat_code in ["Cc", "Cf", "Mn", "Me"]
+    character. `c` is considered a zero-width character if
 
-            assert current <= codepoint
-            while current <= codepoint:
-                if name.endswith(", Last>") or current == codepoint:
-                    # if name ends with Last, we backfill the width value to all codepoints since
-                    # the previous codepoint (aka the start of the range)
-                    zw_map.append(zero_width)
-                else:
-                    # unassigned characters are implicitly given Neutral width, which is nonzero
-                    zw_map.append(False)
-                current += 1
+    - it has the `Default_Ignorable_Code_Point` property (determined from `DerivedCoreProperties.txt`),
+    - or if it has the `Grapheme_Extend` property (determined from `DerivedCoreProperties.txt`),
+    - or if it one of eight characters that should be `Grapheme_Extend` but aren't due to a Unicode spec bug,
+    - or if it has a `Hangul_Syllable_Type` of `Vowel_Jamo` or `Trailing_Jamo` (determined from `HangulSyllableType.txt`).
+    """
 
-        while len(zw_map) < NUM_CODEPOINTS:
-            # Catch any leftover codepoints. They must be unassigned (so nonzero width)
-            zw_map.append(False)
+    zw_map = [False] * NUM_CODEPOINTS
 
-        return zw_map
+    # `Default_Ignorable_Code_Point`s also have 0 width:
+    # https://www.unicode.org/faq/unsup_char.html#3
+    # https://www.unicode.org/versions/Unicode15.1.0/ch05.pdf#G40095
+    #
+    # `Grapheme_Extend` includes characters with general category `Mn` or `Me`,
+    # as well as a few `Mc` characters that need to be included so that
+    # canonically equivalent sequences have the same width.
+    load_property(
+        "DerivedCoreProperties.txt",
+        r"(?:Default_Ignorable_Code_Point|Grapheme_Extend)",
+        lambda cp: operator.setitem(zw_map, cp, True),
+    )
+
+    # Unicode spec bug: these should be `Grapheme_Cluster_Break=Extend`,
+    # as they canonically decompose to two characters with this property,
+    # but they aren't.
+    for c in [0x0CC0, 0x0CC7, 0x0CC8, 0x0CCA, 0x0CCB, 0x1B3B, 0x1B3D, 0x1B43]:
+        zw_map[c] = True
+
+    # Treat `Hangul_Syllable_Type`s of `Vowel_Jamo` and `Trailing_Jamo`
+    # as zero-width. This matches the behavior of glibc `wcwidth`.
+    #
+    # Decomposed Hangul characters consist of 3 parts: a `Leading_Jamo`,
+    # a `Vowel_Jamo`, and an optional `Trailing_Jamo`. Together these combine
+    # into a single wide grapheme. So we treat vowel and trailing jamo as
+    # 0-width, such that only the width of the leading jamo is counted
+    # and the resulting grapheme has width 2.
+    #
+    # (See the Unicode Standard sections 3.12 and 18.6 for more on Hangul)
+    load_property(
+        "HangulSyllableType.txt",
+        r"(?:V|T)",
+        lambda cp: operator.setitem(zw_map, cp, True),
+    )
+
+    # Syriac abbreviation mark:
+    # Zero-width `Prepended_Concatenation_Mark`
+    zw_map[0x070F] = True
+
+    # Some Arabic Prepended_Concatenation_Mark`s
+    # https://www.unicode.org/versions/Unicode15.0.0/ch09.pdf#G27820
+    zw_map[0x0605] = True
+    zw_map[0x0890] = True
+    zw_map[0x0891] = True
+    zw_map[0x08E2] = True
+
+    # `[:Grapheme_Cluster_Break=Prepend:]-[:Prepended_Concatenation_Mark:]`
+    gcb_prepend = set()
+    load_property(
+        "auxiliary/GraphemeBreakProperty.txt",
+        "Prepend",
+        lambda cp: gcb_prepend.add(cp),
+    )
+    load_property(
+        "PropList.txt",
+        "Prepended_Concatenation_Mark",
+        lambda cp: gcb_prepend.remove(cp),
+    )
+    for cp in gcb_prepend:
+        zw_map[cp] = True
+
+    # HANGUL CHOSEONG FILLER
+    # U+115F is a `Default_Ignorable_Code_Point`, and therefore would normally have
+    # zero width. However, the expected usage is to combine it with vowel or trailing jamo
+    # (which are considered 0-width on their own) to form a composed Hangul syllable with
+    # width 2. Therefore, we treat it as having width 2.
+    zw_map[0x115F] = False
+
+    # TIFINAGH CONSONANT JOINER
+    # (invisible only when used to join two Tifinagh consonants
+    zw_map[0x2D7F] = False
+
+    # DEVANAGARI CARET
+    # https://www.unicode.org/versions/Unicode15.0.0/ch12.pdf#G667447
+    zw_map[0xA8FA] = True
+
+    return zw_map
+
+
+def load_width_maps() -> tuple[list[WidthState], list[WidthState]]:
+    """Load complete width table, including characters needing special handling.
+    (Returns 2 tables, one for East Asian and one for not.)"""
+
+    eaws = load_east_asian_widths()
+    zws = load_zero_widths()
+
+    not_ea = []
+    ea = []
+
+    for eaw, zw in zip(eaws, zws):
+        if zw:
+            not_ea.append(WidthState.ZERO)
+            ea.append(WidthState.ZERO)
+        else:
+            if eaw == EastAsianWidth.WIDE:
+                not_ea.append(WidthState.WIDE)
+            else:
+                not_ea.append(WidthState.NARROW)
+
+            if eaw == EastAsianWidth.NARROW:
+                ea.append(WidthState.NARROW)
+            else:
+                ea.append(WidthState.WIDE)
+
+    # Joining_Group=Alef (Arabic Lam-Alef ligature)
+    alef_joining = []
+    load_property(
+        "extracted/DerivedJoiningGroup.txt",
+        "Alef",
+        lambda cp: alef_joining.append(cp),
+    )
+
+    # Regional indicators
+    regional_indicators = []
+    load_property(
+        "PropList.txt",
+        "Regional_Indicator",
+        lambda cp: regional_indicators.append(cp),
+    )
+
+    # Emoji modifiers
+    emoji_modifiers = []
+    load_property(
+        "emoji/emoji-data.txt",
+        "Emoji_Modifier",
+        lambda cp: emoji_modifiers.append(cp),
+    )
+
+    # Default emoji presentation (for ZWJ sequences)
+    emoji_presentation = []
+    load_property(
+        "emoji/emoji-data.txt",
+        "Emoji_Presentation",
+        lambda cp: emoji_presentation.append(cp),
+    )
+
+    for cps, width in [
+        ([0x0A], WidthState.LINE_FEED),
+        ([0x05DC], WidthState.HEBREW_LETTER_LAMED),
+        (alef_joining, WidthState.JOINING_GROUP_ALEF),
+        (range(0x1780, 0x1783), WidthState.KHMER_COENG_ELIGIBLE_LETTER),
+        (range(0x1784, 0x1788), WidthState.KHMER_COENG_ELIGIBLE_LETTER),
+        (range(0x1789, 0x178D), WidthState.KHMER_COENG_ELIGIBLE_LETTER),
+        (range(0x178E, 0x1794), WidthState.KHMER_COENG_ELIGIBLE_LETTER),
+        (range(0x1795, 0x1799), WidthState.KHMER_COENG_ELIGIBLE_LETTER),
+        (range(0x179B, 0x179E), WidthState.KHMER_COENG_ELIGIBLE_LETTER),
+        (
+            [0x17A0, 0x17A2, 0x17A7, 0x17AB, 0x17AC, 0x17AF],
+            WidthState.KHMER_COENG_ELIGIBLE_LETTER,
+        ),
+        ([0x17A4], WidthState.WIDE),
+        ([0x17D8], WidthState.THREE),
+        ([0x1A10], WidthState.BUGINESE_LETTER_YA),
+        (range(0x2D31, 0x2D66), WidthState.TIFINAGH_CONSONANT),
+        ([0x2D6F], WidthState.TIFINAGH_CONSONANT),
+        ([0xA4FC], WidthState.LISU_TONE_LETTER_MYA_NA_JEU),
+        ([0xA4FD], WidthState.LISU_TONE_LETTER_MYA_NA_JEU),
+        ([0xFE0F], WidthState.VARIATION_SELECTOR_16),
+        ([0x10C03], WidthState.OLD_TURKIC_LETTER_ORKHON_I),
+        (emoji_presentation, WidthState.EMOJI_PRESENTATION),
+        (emoji_modifiers, WidthState.EMOJI_MODIFIER),
+        (regional_indicators, WidthState.REGIONAL_INDICATOR),
+    ]:
+        for cp in cps:
+            not_ea[cp] = width
+            ea[cp] = width
+
+    # East-Asian only
+    ea[0x0338] = WidthState.COMBINING_LONG_SOLIDUS_OVERLAY
+
+    # Not East Asian only
+    not_ea[0xFE0E] = WidthState.VARIATION_SELECTOR_15
+
+    return (not_ea, ea)
+
+
+def load_joining_group_lam() -> list[tuple[Codepoint, Codepoint]]:
+    "Returns a list of character ranges with Joining_Group=Lam"
+    lam_joining = []
+    load_property(
+        "extracted/DerivedJoiningGroup.txt",
+        "Lam",
+        lambda cp: lam_joining.append(cp),
+    )
+
+    return to_sorted_ranges(lam_joining)
+
+
+def load_non_transparent_zero_widths(
+    width_map: list[WidthState],
+) -> list[tuple[Codepoint, Codepoint]]:
+    "Returns a list of characters with zero width but not 'Joining_Type=Transparent'"
+
+    zero_widths = set()
+    for cp, width in enumerate(width_map):
+        if width.width_alone() == 0:
+            zero_widths.add(cp)
+    transparent = set()
+    load_property(
+        "extracted/DerivedJoiningType.txt",
+        "T",
+        lambda cp: transparent.add(cp),
+    )
+
+    return to_sorted_ranges(zero_widths - transparent)
+
+
+def load_ligature_transparent() -> list[tuple[Codepoint, Codepoint]]:
+    """Returns a list of character ranges corresponding to all combining marks that are also
+    `Default_Ignorable_Code_Point`s, plus ZWJ. This is the set of characters that won't interrupt
+    a ligature."""
+    default_ignorables = set()
+    load_property(
+        "DerivedCoreProperties.txt",
+        "Default_Ignorable_Code_Point",
+        lambda cp: default_ignorables.add(cp),
+    )
+
+    combining_marks = set()
+    load_property(
+        "extracted/DerivedGeneralCategory.txt",
+        "(?:Mc|Mn|Me)",
+        lambda cp: combining_marks.add(cp),
+    )
+
+    default_ignorable_combinings = default_ignorables.intersection(combining_marks)
+    default_ignorable_combinings.add(0x200D)  # ZWJ
+
+    return to_sorted_ranges(default_ignorable_combinings)
+
+
+def load_solidus_transparent(
+    ligature_transparents: list[tuple[Codepoint, Codepoint]],
+    cjk_width_map: list[WidthState],
+) -> list[tuple[Codepoint, Codepoint]]:
+    """Characters expanding to a canonical combining class above 1, plus `ligature_transparent`s from above.
+    Ranges matching ones in `ligature_transparent` exactly are excluded (for compression), so it needs to bechecked also.
+    """
+
+    ccc_above_1 = set()
+    load_property(
+        "extracted/DerivedCombiningClass.txt",
+        "(?:[2-9]|(?:[1-9][0-9]+))",
+        lambda cp: ccc_above_1.add(cp),
+    )
+
+    for lo, hi in ligature_transparents:
+        for cp in range(lo, hi + 1):
+            ccc_above_1.add(cp)
+
+    num_chars = len(ccc_above_1)
+
+    # Recursive decompositions
+    while True:
+        with fetch_open("UnicodeData.txt") as udata:
+            single = re.compile(r"([0-9A-Z]+);.*?;.*?;.*?;.*?;([0-9A-F ]+);")
+            for line in udata.readlines():
+                if match := single.match(line):
+                    composed = int(match.group(1), 16)
+                    decomposed = [int(c, 16) for c in match.group(2).split(" ")]
+                    if all([c in ccc_above_1 for c in decomposed]):
+                        ccc_above_1.add(composed)
+        if len(ccc_above_1) == num_chars:
+            break
+        else:
+            num_chars = len(ccc_above_1)
+
+    for cp in ccc_above_1:
+        if cp != 0xFE0F:
+            assert (
+                cjk_width_map[cp].table_width() != CharWidthInTable.SPECIAL
+            ), f"U+{cp:X}"
+
+    sorted = to_sorted_ranges(ccc_above_1)
+    return list(filter(lambda range: range not in ligature_transparents, sorted))
+
+
+def load_normalization_tests() -> list[tuple[str, str, str, str, str]]:
+    def parse_codepoints(cps: str) -> str:
+        return "".join(map(lambda cp: chr(int(cp, 16)), cps.split(" ")))
+
+    with fetch_open("NormalizationTest.txt") as normtests:
+        ret = []
+        single = re.compile(
+            r"^([0-9A-F ]+);([0-9A-F ]+);([0-9A-F ]+);([0-9A-F ]+);([0-9A-F ]+);"
+        )
+        for line in normtests.readlines():
+            if match := single.match(line):
+                ret.append(
+                    (
+                        parse_codepoints(match.group(1)),
+                        parse_codepoints(match.group(2)),
+                        parse_codepoints(match.group(3)),
+                        parse_codepoints(match.group(4)),
+                        parse_codepoints(match.group(5)),
+                    )
+                )
+        return ret
+
+
+def make_special_ranges(
+    width_map: list[WidthState],
+) -> list[tuple[tuple[Codepoint, Codepoint], WidthState]]:
+    "Assign ranges of characters to their special behavior (used in match)"
+    ret = []
+    can_merge_with_prev = False
+    for cp, width in enumerate(width_map):
+        if width == WidthState.EMOJI_PRESENTATION:
+            can_merge_with_prev = False
+        elif width.table_width() == CharWidthInTable.SPECIAL:
+            if can_merge_with_prev and ret[-1][1] == width:
+                ret[-1] = ((ret[-1][0][0], cp), width)
+            else:
+                ret.append(((cp, cp), width))
+                can_merge_with_prev = True
+    return ret
 
 
 class Bucket:
     """A bucket contains a group of codepoints and an ordered width list. If one bucket's width
-    list overlaps with another's width list, those buckets can be merged via `try_extend`."""
+    list overlaps with another's width list, those buckets can be merged via `try_extend`.
+    """
 
     def __init__(self):
         """Creates an empty bucket."""
         self.entry_set = set()
         self.widths = []
 
-    def append(self, codepoint: Codepoint, width: EffectiveWidth):
+    def append(self, codepoint: Codepoint, width: CharWidthInTable):
         """Adds a codepoint/width pair to the bucket, and appends `width` to the width list."""
         self.entry_set.add((codepoint, width))
         self.widths.append(width)
@@ -206,13 +814,13 @@
         self.widths = more
         return True
 
-    def entries(self) -> "list[tuple[Codepoint, EffectiveWidth]]":
+    def entries(self) -> list[tuple[Codepoint, CharWidthInTable]]:
         """Return a list of the codepoint/width pairs in this bucket, sorted by codepoint."""
         result = list(self.entry_set)
         result.sort()
         return result
 
-    def width(self) -> "EffectiveWidth":
+    def width(self) -> CharWidthInTable | None:
         """If all codepoints in this bucket have the same width, return that width; otherwise,
         return `None`."""
         if len(self.widths) == 0:
@@ -224,15 +832,17 @@
         return potential_width
 
 
-def make_buckets(entries, low_bit: BitPos, cap_bit: BitPos) -> "list[Bucket]":
+def make_buckets(
+    entries: Iterable[tuple[int, CharWidthInTable]], low_bit: BitPos, cap_bit: BitPos
+) -> list[Bucket]:
     """Partitions the `(Codepoint, EffectiveWidth)` tuples in `entries` into `Bucket`s. All
     codepoints with identical bits from `low_bit` to `cap_bit` (exclusive) are placed in the
     same bucket. Returns a list of the buckets in increasing order of those bits."""
     num_bits = cap_bit - low_bit
     assert num_bits > 0
-    buckets = [Bucket() for _ in range(0, 2 ** num_bits)]
+    buckets = [Bucket() for _ in range(0, 2**num_bits)]
     mask = (1 << num_bits) - 1
-    for (codepoint, width) in entries:
+    for codepoint, width in entries:
         buckets[(codepoint >> low_bit) & mask].append(codepoint, width)
     return buckets
 
@@ -252,24 +862,55 @@
     discard the buckets and convert the entries into `EffectiveWidth` values."""
 
     def __init__(
-        self, entry_groups, low_bit: BitPos, cap_bit: BitPos, offset_type: OffsetType
+        self,
+        name: str,
+        entry_groups: Iterable[Iterable[tuple[int, CharWidthInTable]]],
+        secondary_entry_groups: Iterable[Iterable[tuple[int, CharWidthInTable]]],
+        low_bit: BitPos,
+        cap_bit: BitPos,
+        offset_type: OffsetType,
+        align: int,
+        bytes_per_row: int | None = None,
+        starting_indexed: list[Bucket] = [],
+        cfged: bool = False,
     ):
         """Create a lookup table with a sub-table for each `(Codepoint, EffectiveWidth)` iterator
         in `entry_groups`. Each sub-table is indexed by codepoint bits in `low_bit..cap_bit`,
         and each table entry is represented in the format specified by  `offset_type`. Asserts
         that this table is actually representable with `offset_type`."""
+        starting_indexed_len = len(starting_indexed)
+        self.name = name
         self.low_bit = low_bit
         self.cap_bit = cap_bit
         self.offset_type = offset_type
-        self.entries = []
-        self.indexed = []
+        self.entries: list[int] = []
+        self.indexed: list[Bucket] = list(starting_indexed)
+        self.align = align
+        self.bytes_per_row = bytes_per_row
+        self.cfged = cfged
 
-        buckets = []
+        buckets: list[Bucket] = []
         for entries in entry_groups:
             buckets.extend(make_buckets(entries, self.low_bit, self.cap_bit))
 
         for bucket in buckets:
-            for (i, existing) in enumerate(self.indexed):
+            for i, existing in enumerate(self.indexed):
+                if existing.try_extend(bucket):
+                    self.entries.append(i)
+                    break
+            else:
+                self.entries.append(len(self.indexed))
+                self.indexed.append(bucket)
+
+        self.primary_len = len(self.entries)
+        self.primary_bucket_len = len(self.indexed)
+
+        buckets = []
+        for entries in secondary_entry_groups:
+            buckets.extend(make_buckets(entries, self.low_bit, self.cap_bit))
+
+        for bucket in buckets:
+            for i, existing in enumerate(self.indexed):
                 if existing.try_extend(bucket):
                     self.entries.append(i)
                     break
@@ -278,20 +919,24 @@
                 self.indexed.append(bucket)
 
         # Validate offset type
+        max_index = 1 << int(self.offset_type)
         for index in self.entries:
-            assert index < (1 << int(self.offset_type))
+            assert index < max_index, f"{index} <= {max_index}"
+
+        self.indexed = self.indexed[starting_indexed_len:]
 
     def indices_to_widths(self):
         """Destructively converts the indices in this table to the `EffectiveWidth` values of
-        their buckets. Assumes that no bucket contains codepoints with different widths."""
-        self.entries = list(map(lambda i: int(self.indexed[i].width()), self.entries))
+        their buckets. Assumes that no bucket contains codepoints with different widths.
+        """
+        self.entries = list(map(lambda i: int(self.indexed[i].width()), self.entries))  # type: ignore
         del self.indexed
 
     def buckets(self):
         """Returns an iterator over this table's buckets."""
         return self.indexed
 
-    def to_bytes(self) -> "list[int]":
+    def to_bytes(self) -> list[int]:
         """Returns this table's entries as a list of bytes. The bytes are formatted according to
         the `OffsetType` which the table was created with, converting any `EffectiveWidth` entries
         to their enum variant's integer value. For example, with `OffsetType.U2`, each byte will
@@ -307,26 +952,583 @@
 
 
 def make_tables(
-    table_cfgs: "list[tuple[BitPos, BitPos, OffsetType]]", entries
-) -> "list[Table]":
+    width_map: list[WidthState],
+    cjk_width_map: list[WidthState],
+) -> list[Table]:
     """Creates a table for each configuration in `table_cfgs`, with the first config corresponding
     to the top-level lookup table, the second config corresponding to the second-level lookup
     table, and so forth. `entries` is an iterator over the `(Codepoint, EffectiveWidth)` pairs
     to include in the top-level table."""
-    tables = []
-    entry_groups = [entries]
-    for (low_bit, cap_bit, offset_type) in table_cfgs:
-        table = Table(entry_groups, low_bit, cap_bit, offset_type)
-        entry_groups = map(lambda bucket: bucket.entries(), table.buckets())
-        tables.append(table)
-    return tables
+
+    entries = enumerate([w.table_width() for w in width_map])
+    cjk_entries = enumerate([w.table_width() for w in cjk_width_map])
+
+    root_table = Table(
+        "WIDTH_ROOT",
+        [entries],
+        [],
+        TABLE_SPLITS[1],
+        MAX_CODEPOINT_BITS,
+        OffsetType.U8,
+        128,
+    )
+
+    cjk_root_table = Table(
+        "WIDTH_ROOT_CJK",
+        [cjk_entries],
+        [],
+        TABLE_SPLITS[1],
+        MAX_CODEPOINT_BITS,
+        OffsetType.U8,
+        128,
+        starting_indexed=root_table.indexed,
+        cfged=True,
+    )
+
+    middle_table = Table(
+        "WIDTH_MIDDLE",
+        map(lambda bucket: bucket.entries(), root_table.buckets()),
+        map(lambda bucket: bucket.entries(), cjk_root_table.buckets()),
+        TABLE_SPLITS[0],
+        TABLE_SPLITS[1],
+        OffsetType.U8,
+        2 ** (TABLE_SPLITS[1] - TABLE_SPLITS[0]),
+        bytes_per_row=2 ** (TABLE_SPLITS[1] - TABLE_SPLITS[0]),
+    )
+
+    leaves_table = Table(
+        "WIDTH_LEAVES",
+        map(
+            lambda bucket: bucket.entries(),
+            middle_table.buckets()[: middle_table.primary_bucket_len],
+        ),
+        map(
+            lambda bucket: bucket.entries(),
+            middle_table.buckets()[middle_table.primary_bucket_len :],
+        ),
+        0,
+        TABLE_SPLITS[0],
+        OffsetType.U2,
+        2 ** (TABLE_SPLITS[0] - 2),
+        bytes_per_row=2 ** (TABLE_SPLITS[0] - 2),
+    )
+
+    return [root_table, cjk_root_table, middle_table, leaves_table]
+
+
+def load_emoji_presentation_sequences() -> list[Codepoint]:
+    """Outputs a list of cpodepoints, corresponding to all the valid characters for starting
+    an emoji presentation sequence."""
+
+    with fetch_open("emoji/emoji-variation-sequences.txt") as sequences:
+        # Match all emoji presentation sequences
+        # (one codepoint followed by U+FE0F, and labeled "emoji style")
+        sequence = re.compile(r"^([0-9A-F]+)\s+FE0F\s*;\s*emoji style")
+        codepoints = []
+        for line in sequences.readlines():
+            if match := sequence.match(line):
+                cp = int(match.group(1), 16)
+                codepoints.append(cp)
+    return codepoints
+
+
+def load_text_presentation_sequences() -> list[Codepoint]:
+    """Outputs a list of codepoints, corresponding to all the valid characters
+    whose widths change with a text presentation sequence."""
+
+    text_presentation_seq_codepoints = set()
+    with fetch_open("emoji/emoji-variation-sequences.txt") as sequences:
+        # Match all text presentation sequences
+        # (one codepoint followed by U+FE0E, and labeled "text style")
+        sequence = re.compile(r"^([0-9A-F]+)\s+FE0E\s*;\s*text style")
+        for line in sequences.readlines():
+            if match := sequence.match(line):
+                cp = int(match.group(1), 16)
+                text_presentation_seq_codepoints.add(cp)
+
+    default_emoji_codepoints = set()
+
+    load_property(
+        "emoji/emoji-data.txt",
+        "Emoji_Presentation",
+        lambda cp: default_emoji_codepoints.add(cp),
+    )
+
+    codepoints = []
+    for cp in text_presentation_seq_codepoints.intersection(default_emoji_codepoints):
+        # "Enclosed Ideographic Supplement" block;
+        # wide even in text presentation
+        if not cp in range(0x1F200, 0x1F300):
+            codepoints.append(cp)
+
+    codepoints.sort()
+    return codepoints
+
+
+def load_emoji_modifier_bases() -> list[Codepoint]:
+    """Outputs a list of codepoints, corresponding to all the valid characters
+    whose widths change with a text presentation sequence."""
+
+    ret = []
+    load_property(
+        "emoji/emoji-data.txt",
+        "Emoji_Modifier_Base",
+        lambda cp: ret.append(cp),
+    )
+    ret.sort()
+    return ret
+
+
+def make_presentation_sequence_table(
+    seqs: list[Codepoint],
+    lsb: int = 10,
+) -> tuple[list[tuple[int, int]], list[list[int]]]:
+    """Generates 2-level lookup table for whether a codepoint might start an emoji variation sequence.
+    The first level is a match on all but the 10 LSB, the second level is a 1024-bit bitmap for those 10 LSB.
+    """
+
+    prefixes_dict = defaultdict(set)
+    for cp in seqs:
+        prefixes_dict[cp >> lsb].add(cp & (2**lsb - 1))
+
+    msbs: list[int] = list(prefixes_dict.keys())
+
+    leaves: list[list[int]] = []
+    for cps in prefixes_dict.values():
+        leaf = [0] * (2 ** (lsb - 3))
+        for cp in cps:
+            idx_in_leaf, bit_shift = divmod(cp, 8)
+            leaf[idx_in_leaf] |= 1 << bit_shift
+        leaves.append(leaf)
+
+    indexes = [(msb, index) for (index, msb) in enumerate(msbs)]
+
+    # Cull duplicate leaves
+    i = 0
+    while i < len(leaves):
+        first_idx = leaves.index(leaves[i])
+        if first_idx == i:
+            i += 1
+        else:
+            for j in range(0, len(indexes)):
+                if indexes[j][1] == i:
+                    indexes[j] = (indexes[j][0], first_idx)
+                elif indexes[j][1] > i:
+                    indexes[j] = (indexes[j][0], indexes[j][1] - 1)
+
+            leaves.pop(i)
+
+    return (indexes, leaves)
+
+
+def make_ranges_table(
+    seqs: list[Codepoint],
+) -> tuple[list[tuple[int, int]], list[list[tuple[int, int]]]]:
+    """Generates 2-level lookup table for a binary property of a codepoint.
+    First level is all but the last byte, second level is ranges for last byte
+    """
+
+    prefixes_dict = defaultdict(list)
+    for cp in seqs:
+        prefixes_dict[cp >> 8].append(cp & 0xFF)
+
+    msbs: list[int] = list(prefixes_dict.keys())
+
+    leaves: list[list[tuple[int, int]]] = []
+    for cps in prefixes_dict.values():
+        leaf = []
+        for cp in cps:
+            if len(leaf) > 0 and leaf[-1][1] == cp - 1:
+                leaf[-1] = (leaf[-1][0], cp)
+            else:
+                leaf.append((cp, cp))
+        leaves.append(leaf)
+
+    indexes = [(msb, index) for (index, msb) in enumerate(msbs)]
+
+    # Cull duplicate leaves
+    i = 0
+    while i < len(leaves):
+        first_idx = leaves.index(leaves[i])
+        if first_idx == i:
+            i += 1
+        else:
+            for j in range(0, len(indexes)):
+                if indexes[j][1] == i:
+                    indexes[j] = (indexes[j][0], first_idx)
+                elif indexes[j][1] > i:
+                    indexes[j] = (indexes[j][0], indexes[j][1] - 1)
+
+            leaves.pop(i)
+
+    return (indexes, leaves)
+
+
+def lookup_fns(
+    is_cjk: bool,
+    special_ranges: list[tuple[tuple[Codepoint, Codepoint], WidthState]],
+    joining_group_lam: list[tuple[Codepoint, Codepoint]],
+) -> str:
+    if is_cjk:
+        cfg = '#[cfg(feature = "cjk")]\n'
+        cjk_lo = "_cjk"
+        cjk_cap = "_CJK"
+        ambig = "wide"
+    else:
+        cfg = ""
+        cjk_lo = ""
+        cjk_cap = ""
+        ambig = "narrow"
+    s = f"""
+/// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c` by
+/// consulting a multi-level lookup table.
+///
+/// # Maintenance
+/// The tables themselves are autogenerated but this function is hardcoded. You should have
+/// nothing to worry about if you re-run `unicode.py` (for example, when updating Unicode.)
+/// However, if you change the *actual structure* of the lookup tables (perhaps by editing the
+/// `make_tables` function in `unicode.py`) you must ensure that this code reflects those changes.
+{cfg}#[inline]
+fn lookup_width{cjk_lo}(c: char) -> (u8, WidthInfo) {{
+    let cp = c as usize;
+
+    let t1_offset = WIDTH_ROOT{cjk_cap}.0[cp >> {TABLE_SPLITS[1]}];
+
+    // Each sub-table in WIDTH_MIDDLE is 7 bits, and each stored entry is a byte,
+    // so each sub-table is 128 bytes in size.
+    // (Sub-tables are selected using the computed offset from the previous table.)
+    let t2_offset = WIDTH_MIDDLE.0[usize::from(t1_offset)][cp >> {TABLE_SPLITS[0]} & 0x{(2 ** (TABLE_SPLITS[1] - TABLE_SPLITS[0]) - 1):X}];
+
+    // Each sub-table in WIDTH_LEAVES is 6 bits, but each stored entry is 2 bits.
+    // This is accomplished by packing four stored entries into one byte.
+    // So each sub-table is 2**(7-2) == 32 bytes in size.
+    // Since this is the last table, each entry represents an encoded width.
+    let packed_widths = WIDTH_LEAVES.0[usize::from(t2_offset)][cp >> 2 & 0x{(2 ** (TABLE_SPLITS[0] - 2) - 1):X}];
+
+    // Extract the packed width
+    let width = packed_widths >> (2 * (cp & 0b11)) & 0b11;
+
+    if width < 3 {{
+        (width, WidthInfo::DEFAULT)
+    }} else {{
+        match c {{
+"""
+
+    for (lo, hi), width in special_ranges:
+        s += f"            '\\u{{{lo:X}}}'"
+        if hi != lo:
+            s += f"..='\\u{{{hi:X}}}'"
+        if width.is_carried():
+            width_info = width.name
+        else:
+            width_info = "DEFAULT"
+        s += f" => ({width.width_alone()}, WidthInfo::{width_info}),\n"
+
+    s += f"""            _ => (2, WidthInfo::EMOJI_PRESENTATION),
+        }}
+    }}
+}}
+
+/// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`, or
+/// `None` if `c` is a control character.
+/// Ambiguous width characters are treated as {ambig}.
+{cfg}#[inline]
+pub fn single_char_width{cjk_lo}(c: char) -> Option<usize> {{
+    if c < '\\u{{7F}}' {{
+        if c >= '\\u{{20}}' {{
+            // U+0020 to U+007F (exclusive) are single-width ASCII codepoints
+            Some(1)
+        }} else {{
+            // U+0000 to U+0020 (exclusive) are control codes
+            None
+        }}
+    }} else if c >= '\\u{{A0}}' {{
+        // No characters >= U+00A0 are control codes, so we can consult the lookup tables
+        Some(lookup_width{cjk_lo}(c).0.into())
+    }} else {{
+        // U+007F to U+00A0 (exclusive) are control codes
+        None
+    }}
+}}
+
+/// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`.
+/// Ambiguous width characters are treated as {ambig}.
+{cfg}#[inline]
+fn width_in_str{cjk_lo}(c: char, mut next_info: WidthInfo) -> (i8, WidthInfo) {{
+    if next_info.is_emoji_presentation() {{
+        if starts_emoji_presentation_seq(c) {{
+            let width = if next_info.is_zwj_emoji_presentation() {{
+                0
+            }} else {{
+                2
+            }};
+            return (width, WidthInfo::EMOJI_PRESENTATION);
+        }} else {{
+            next_info = next_info.unset_emoji_presentation();
+        }}
+    }}"""
+
+    if is_cjk:
+        s += """
+    if (matches!(
+        next_info,
+        WidthInfo::COMBINING_LONG_SOLIDUS_OVERLAY | WidthInfo::SOLIDUS_OVERLAY_ALEF
+    ) && matches!(c, '<' | '=' | '>'))
+    {
+        return (2, WidthInfo::DEFAULT);
+    }"""
+
+    s += """
+    if c <= '\\u{A0}' {
+        match c {
+            '\\n' => (1, WidthInfo::LINE_FEED),
+            '\\r' if next_info == WidthInfo::LINE_FEED => (0, WidthInfo::DEFAULT),
+            _ => (1, WidthInfo::DEFAULT),
+        }
+    } else {
+        // Fast path
+        if next_info != WidthInfo::DEFAULT {
+            if c == '\\u{FE0F}' {
+                return (0, next_info.set_emoji_presentation());
+            }"""
+
+    if not is_cjk:
+        s += """
+            if c == '\\u{FE0E}' {
+                return (0, next_info.set_text_presentation());
+            }
+            if next_info.is_text_presentation() {
+                if starts_non_ideographic_text_presentation_seq(c) {
+                    return (1, WidthInfo::DEFAULT);
+                } else {
+                    next_info = next_info.unset_text_presentation();
+                }
+            }"""
+
+    s += """
+            if next_info.is_ligature_transparent() {
+                if c == '\\u{200D}' {
+                    return (0, next_info.set_zwj_bit());
+                } else if is_ligature_transparent(c) {
+                    return (0, next_info);
+                }
+            }
+
+            match (next_info, c) {"""
+    if is_cjk:
+        s += """
+                (WidthInfo::COMBINING_LONG_SOLIDUS_OVERLAY, _) if is_solidus_transparent(c) => {
+                    return (
+                        lookup_width_cjk(c).0 as i8,
+                        WidthInfo::COMBINING_LONG_SOLIDUS_OVERLAY,
+                    );
+                }
+                (WidthInfo::JOINING_GROUP_ALEF, '\\u{0338}') => {
+                    return (0, WidthInfo::SOLIDUS_OVERLAY_ALEF);
+                }
+                // Arabic Lam-Alef ligature
+                (
+                    WidthInfo::JOINING_GROUP_ALEF | WidthInfo::SOLIDUS_OVERLAY_ALEF,
+                    """
+    else:
+        s += """
+                // Arabic Lam-Alef ligature
+                (
+                    WidthInfo::JOINING_GROUP_ALEF,
+                    """
+
+    tail = False
+    for lo, hi in joining_group_lam:
+        if tail:
+            s += " | "
+        tail = True
+        s += f"'\\u{{{lo:X}}}'"
+        if hi != lo:
+            s += f"..='\\u{{{hi:X}}}'"
+    s += """,
+                ) => return (0, WidthInfo::DEFAULT),
+                (WidthInfo::JOINING_GROUP_ALEF, _) if is_transparent_zero_width(c) => {
+                    return (0, WidthInfo::JOINING_GROUP_ALEF);
+                }
+
+                // Hebrew Alef-ZWJ-Lamed ligature
+                (WidthInfo::ZWJ_HEBREW_LETTER_LAMED, '\\u{05D0}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+
+                // Khmer coeng signs
+                (WidthInfo::KHMER_COENG_ELIGIBLE_LETTER, '\\u{17D2}') => {
+                    return (-1, WidthInfo::DEFAULT);
+                }
+
+                // Buginese <a, -i> ZWJ ya ligature
+                (WidthInfo::ZWJ_BUGINESE_LETTER_YA, '\\u{1A17}') => {
+                    return (0, WidthInfo::BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA)
+                }
+                (WidthInfo::BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA, '\\u{1A15}') => {
+                    return (0, WidthInfo::DEFAULT)
+                }
+
+                // Tifinagh bi-consonants
+                (WidthInfo::TIFINAGH_CONSONANT | WidthInfo::ZWJ_TIFINAGH_CONSONANT, '\\u{2D7F}') => {
+                    return (1, WidthInfo::TIFINAGH_JOINER_CONSONANT);
+                }
+                (WidthInfo::ZWJ_TIFINAGH_CONSONANT, '\\u{2D31}'..='\\u{2D65}' | '\\u{2D6F}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+                (WidthInfo::TIFINAGH_JOINER_CONSONANT, '\\u{2D31}'..='\\u{2D65}' | '\\u{2D6F}') => {
+                    return (-1, WidthInfo::DEFAULT);
+                }
+
+                // Lisu tone letter combinations
+                (WidthInfo::LISU_TONE_LETTER_MYA_NA_JEU, '\\u{A4F8}'..='\\u{A4FB}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+
+                // Old Turkic ligature
+                (WidthInfo::ZWJ_OLD_TURKIC_LETTER_ORKHON_I, '\\u{10C32}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }"""
+
+    s += f"""
+                // Emoji modifier
+                (WidthInfo::EMOJI_MODIFIER, _) if is_emoji_modifier_base(c) => {{
+                    return (0, WidthInfo::EMOJI_PRESENTATION);
+                }}
+
+                // Regional indicator
+                (
+                    WidthInfo::REGIONAL_INDICATOR | WidthInfo::SEVERAL_REGIONAL_INDICATOR,
+                    '\\u{{1F1E6}}'..='\\u{{1F1FF}}',
+                ) => return (1, WidthInfo::SEVERAL_REGIONAL_INDICATOR),
+
+                // ZWJ emoji
+                (
+                    WidthInfo::EMOJI_PRESENTATION
+                    | WidthInfo::SEVERAL_REGIONAL_INDICATOR
+                    | WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION
+                    | WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION
+                    | WidthInfo::EMOJI_MODIFIER,
+                    '\\u{{200D}}',
+                ) => return (0, WidthInfo::ZWJ_EMOJI_PRESENTATION),
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\\u{{20E3}}') => {{
+                    return (0, WidthInfo::KEYCAP_ZWJ_EMOJI_PRESENTATION);
+                }}
+                (WidthInfo::VS16_ZWJ_EMOJI_PRESENTATION, _) if starts_emoji_presentation_seq(c) => {{
+                    return (0, WidthInfo::EMOJI_PRESENTATION)
+                }}
+                (WidthInfo::VS16_KEYCAP_ZWJ_EMOJI_PRESENTATION, '0'..='9' | '#' | '*') => {{
+                    return (0, WidthInfo::EMOJI_PRESENTATION)
+                }}
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\\u{{1F1E6}}'..='\\u{{1F1FF}}') => {{
+                    return (1, WidthInfo::REGIONAL_INDICATOR_ZWJ_PRESENTATION);
+                }}
+                (
+                    WidthInfo::REGIONAL_INDICATOR_ZWJ_PRESENTATION
+                    | WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+                    '\\u{{1F1E6}}'..='\\u{{1F1FF}}',
+                ) => return (-1, WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION),
+                (
+                    WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+                    '\\u{{1F1E6}}'..='\\u{{1F1FF}}',
+                ) => return (3, WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION),
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\\u{{1F3FB}}'..='\\u{{1F3FF}}') => {{
+                    return (0, WidthInfo::EMOJI_MODIFIER);
+                }}
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\\u{{E007F}}') => {{
+                    return (0, WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION);
+                }}
+                (WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION, '\\u{{E0061}}'..='\\u{{E007A}}') => {{
+                    return (0, WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION);
+                }}
+                (WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION, '\\u{{E0061}}'..='\\u{{E007A}}') => {{
+                    return (0, WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION)
+                }}
+                (WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION, '\\u{{E0061}}'..='\\u{{E007A}}') => {{
+                    return (0, WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION)
+                }}
+                (WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION, '\\u{{E0061}}'..='\\u{{E007A}}') => {{
+                    return (0, WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION)
+                }}
+                (WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION, '\\u{{E0061}}'..='\\u{{E007A}}') => {{
+                    return (0, WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION)
+                }}
+                (WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION, '\\u{{E0061}}'..='\\u{{E007A}}') => {{
+                    return (0, WidthInfo::TAG_A6_END_ZWJ_EMOJI_PRESENTATION)
+                }}
+                (
+                    WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION,
+                    '\\u{{E0030}}'..='\\u{{E0039}}',
+                ) => return (0, WidthInfo::TAG_D1_END_ZWJ_EMOJI_PRESENTATION),
+                (WidthInfo::TAG_D1_END_ZWJ_EMOJI_PRESENTATION, '\\u{{E0030}}'..='\\u{{E0039}}') => {{
+                    return (0, WidthInfo::TAG_D2_END_ZWJ_EMOJI_PRESENTATION);
+                }}
+                (WidthInfo::TAG_D2_END_ZWJ_EMOJI_PRESENTATION, '\\u{{E0030}}'..='\\u{{E0039}}') => {{
+                    return (0, WidthInfo::TAG_D3_END_ZWJ_EMOJI_PRESENTATION);
+                }}
+                (
+                    WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A6_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_D3_END_ZWJ_EMOJI_PRESENTATION,
+                    '\\u{{1F3F4}}',
+                ) => return (0, WidthInfo::EMOJI_PRESENTATION),
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, _)
+                    if lookup_width{cjk_lo}(c).1 == WidthInfo::EMOJI_PRESENTATION =>
+                {{
+                    return (0, WidthInfo::EMOJI_PRESENTATION)
+                }}
+
+                // Fallback
+                _ => {{}}
+            }}
+        }}
+
+        let ret = lookup_width{cjk_lo}(c);
+        (ret.0 as i8, ret.1)
+    }}
+}}
+
+{cfg}#[inline]
+pub fn str_width{cjk_lo}(s: &str) -> usize {{
+    s.chars()
+        .rfold(
+            (0, WidthInfo::DEFAULT),
+            |(sum, next_info), c| -> (usize, WidthInfo) {{
+                let (add, info) = width_in_str{cjk_lo}(c, next_info);
+                (sum.wrapping_add_signed(isize::from(add)), info)
+            }},
+        )
+        .0
+}}
+"""
+
+    return s
 
 
 def emit_module(
-    out_name: str, unicode_version: "tuple[int, int, int]", tables: "list[Table]"
+    out_name: str,
+    unicode_version: tuple[int, int, int],
+    tables: list[Table],
+    special_ranges: list[tuple[tuple[Codepoint, Codepoint], WidthState]],
+    special_ranges_cjk: list[tuple[tuple[Codepoint, Codepoint], WidthState]],
+    emoji_presentation_table: tuple[list[tuple[int, int]], list[list[int]]],
+    text_presentation_table: tuple[list[tuple[int, int]], list[list[tuple[int, int]]]],
+    emoji_modifier_table: tuple[list[tuple[int, int]], list[list[tuple[int, int]]]],
+    joining_group_lam: list[tuple[Codepoint, Codepoint]],
+    non_transparent_zero_widths: list[tuple[Codepoint, Codepoint]],
+    ligature_transparent: list[tuple[Codepoint, Codepoint]],
+    solidus_transparent: list[tuple[Codepoint, Codepoint]],
+    normalization_tests: list[tuple[str, str, str, str, str]],
 ):
     """Outputs a Rust module to `out_name` using table data from `tables`.
-    If `TABLE_CFGS` is edited, you may need to edit the included code for `lookup_width`."""
+    If `TABLE_CFGS` is edited, you may need to edit the included code for `lookup_width`.
+    """
     if os.path.exists(out_name):
         os.remove(out_name)
     with open(out_name, "w", newline="\n", encoding="utf-8") as module:
@@ -342,164 +1544,610 @@
 // except according to those terms.
 
 // NOTE: The following code was generated by "scripts/unicode.py", do not edit directly
+
+use core::cmp::Ordering;
+
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+struct WidthInfo(u16);
+
+impl WidthInfo {
+    /// No special handling necessary
+    const DEFAULT: Self = Self(0);
 """
         )
+
+        for variant in WidthState:
+            if variant.is_carried():
+                if variant.is_cjk_only():
+                    module.write('    #[cfg(feature = "cjk")]\n')
+                module.write(
+                    f"    const {variant.name}: Self = Self(0b{variant.value:016b});\n"
+                )
+
         module.write(
             f"""
+    /// Whether this width mode is ligature_transparent
+    /// (has 5th MSB set.)
+    fn is_ligature_transparent(self) -> bool {{
+        (self.0 & 0b0000_1000_0000_0000) == 0b0000_1000_0000_0000
+    }}
+
+    /// Sets 6th MSB.
+    fn set_zwj_bit(self) -> Self {{
+        Self(self.0 | 0b0000_0100_0000_0000)
+    }}
+
+    /// Has top bit set
+    fn is_emoji_presentation(self) -> bool {{
+        (self.0 & 0b1000_0000_0000_0000) == 0b1000_0000_0000_0000
+    }}
+
+    /// Has top bit set
+    fn is_zwj_emoji_presentation(self) -> bool {{
+        (self.0 & 0b1011_0000_0000_0000) == 0b1001_0000_0000_0000
+    }}
+
+    /// Set top bit
+    fn set_emoji_presentation(self) -> Self {{
+        if (self.0 & 0b0010_0000_0000_0000) == 0b0010_0000_0000_0000
+            || (self.0 & 0b1001_0000_0000_0000) == 0b0001_0000_0000_0000
+        {{
+            Self(self.0 | 0b1000_0000_0000_0000)
+        }} else {{
+            Self::VARIATION_SELECTOR_16
+        }}
+    }}
+
+    /// Clear top bit
+    fn unset_emoji_presentation(self) -> Self {{
+        if (self.0 & 0b0010_0000_0000_0000) == 0b0010_0000_0000_0000 {{
+            Self(self.0 & 0b0111_1111_1111_1111)
+        }} else {{
+            Self::DEFAULT
+        }}
+    }}
+
+    /// Has 2nd bit set
+    fn is_text_presentation(self) -> bool {{
+        (self.0 & 0b0100_0000_0000_0000) == 0b0100_0000_0000_0000
+    }}
+
+    /// Set 2nd bit
+    fn set_text_presentation(self) -> Self {{
+        if (self.0 & 0b0010_0000_0000_0000) == 0b0010_0000_0000_0000 {{
+            Self(self.0 | 0b0100_0000_0000_0000)
+        }} else {{
+            Self(0b0100_0000_0000_0000)
+        }}
+    }}
+
+    /// Clear 2nd bit
+    fn unset_text_presentation(self) -> Self {{
+        Self(self.0 & 0b1011_1111_1111_1111)
+    }}
+}}
+
 /// The version of [Unicode](http://www.unicode.org/)
 /// that this version of unicode-width is based on.
 pub const UNICODE_VERSION: (u8, u8, u8) = {unicode_version};
 """
         )
 
+        module.write(lookup_fns(False, special_ranges, joining_group_lam))
+        module.write(lookup_fns(True, special_ranges_cjk, joining_group_lam))
+
+        emoji_presentation_idx, emoji_presentation_leaves = emoji_presentation_table
+        text_presentation_idx, text_presentation_leaves = text_presentation_table
+        emoji_modifier_idx, emoji_modifier_leaves = emoji_modifier_table
+
         module.write(
             """
-pub mod charwidth {
-    use core::option::Option::{self, None, Some};
-
-    /// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c` by
-    /// consulting a multi-level lookup table.
-    /// If `is_cjk == true`, ambiguous width characters are treated as double width; otherwise,
-    /// they're treated as single width.
-    ///
-    /// # Maintenance
-    /// The tables themselves are autogenerated but this function is hardcoded. You should have
-    /// nothing to worry about if you re-run `unicode.py` (for example, when updating Unicode.)
-    /// However, if you change the *actual structure* of the lookup tables (perhaps by editing the
-    /// `TABLE_CFGS` global in `unicode.py`) you must ensure that this code reflects those changes.
-    #[inline]
-    fn lookup_width(c: char, is_cjk: bool) -> usize {
-        let cp = c as usize;
-
-        let t1_offset = TABLES_0[cp >> 13 & 0xFF];
-
-        // Each sub-table in TABLES_1 is 7 bits, and each stored entry is a byte,
-        // so each sub-table is 128 bytes in size.
-        // (Sub-tables are selected using the computed offset from the previous table.)
-        let t2_offset = TABLES_1[128 * usize::from(t1_offset) + (cp >> 6 & 0x7F)];
-
-        // Each sub-table in TABLES_2 is 6 bits, but each stored entry is 2 bits.
-        // This is accomplished by packing four stored entries into one byte.
-        // So each sub-table is 2**(6-2) == 16 bytes in size.
-        // Since this is the last table, each entry represents an encoded width.
-        let packed_widths = TABLES_2[16 * usize::from(t2_offset) + (cp >> 2 & 0xF)];
-
-        // Extract the packed width
-        let width = packed_widths >> (2 * (cp & 0b11)) & 0b11;
-
-        // A width of 3 signifies that the codepoint is ambiguous width.
-        if width == 3 {
-            if is_cjk {
-                2
-            } else {
-                1
-            }
-        } else {
-            width.into()
-        }
+/// Whether this character is a zero-width character with
+/// `Joining_Type=Transparent`. Used by the Alef-Lamed ligatures.
+/// See also [`is_ligature_transparent`], a near-subset of this (only ZWJ is excepted)
+/// which is transparent for non-Arabic ligatures.
+fn is_transparent_zero_width(c: char) -> bool {
+    if lookup_width(c).0 != 0 {
+        // Not zero-width
+        false
+    } else {
+        let cp: u32 = c.into();
+        NON_TRANSPARENT_ZERO_WIDTHS
+            .binary_search_by(|&(lo, hi)| {
+                let lo = u32::from_le_bytes([lo[0], lo[1], lo[2], 0]);
+                let hi = u32::from_le_bytes([hi[0], hi[1], hi[2], 0]);
+                if cp < lo {
+                    Ordering::Greater
+                } else if cp > hi {
+                    Ordering::Less
+                } else {
+                    Ordering::Equal
+                }
+            })
+            .is_err()
     }
+}
+
+/// Whether this character is a default-ignorable combining mark
+/// or ZWJ. These characters won't interrupt non-Arabic ligatures.
+fn is_ligature_transparent(c: char) -> bool {
+    matches!(c, """
+        )
+
+        tail = False
+        for lo, hi in ligature_transparent:
+            if tail:
+                module.write(" | ")
+            tail = True
+            module.write(f"'\\u{{{lo:X}}}'")
+            if hi != lo:
+                module.write(f"..='\\u{{{hi:X}}}'")
+
+        module.write(
+            """)
+}
+
+/// Whether this character is transparent wrt the effect of
+/// U+0338 COMBINING LONG SOLIDUS OVERLAY
+/// on its base character.
+#[cfg(feature = "cjk")]
+fn is_solidus_transparent(c: char) -> bool {
+    let cp: u32 = c.into();
+    is_ligature_transparent(c)
+        || SOLIDUS_TRANSPARENT
+            .binary_search_by(|&(lo, hi)| {
+                let lo = u32::from_le_bytes([lo[0], lo[1], lo[2], 0]);
+                let hi = u32::from_le_bytes([hi[0], hi[1], hi[2], 0]);
+                if cp < lo {
+                    Ordering::Greater
+                } else if cp > hi {
+                    Ordering::Less
+                } else {
+                    Ordering::Equal
+                }
+            })
+            .is_ok()
+}
+
+/// Whether this character forms an [emoji presentation sequence]
+/// (https://www.unicode.org/reports/tr51/#def_emoji_presentation_sequence)
+/// when followed by `'\\u{FEOF}'`.
+/// Emoji presentation sequences are considered to have width 2.
+#[inline]
+pub fn starts_emoji_presentation_seq(c: char) -> bool {
+    let cp: u32 = c.into();
+    // First level of lookup uses all but 10 LSB
+    let top_bits = cp >> 10;
+    let idx_of_leaf: usize = match top_bits {
 """
         )
 
+        for msbs, i in emoji_presentation_idx:
+            module.write(f"        0x{msbs:X} => {i},\n")
+
         module.write(
-            """
-    /// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`, or
-    /// `None` if `c` is a control character other than `'\\x00'`.
-    /// If `is_cjk == true`, ambiguous width characters are treated as double width; otherwise,
-    /// they're treated as single width.
-    #[inline]
-    pub fn width(c: char, is_cjk: bool) -> Option<usize> {
-        if c < '\\u{7F}' {
-            if c >= '\\u{20}' {
-                // U+0020 to U+007F (exclusive) are single-width ASCII codepoints
-                Some(1)
-            } else if c == '\\0' {
-                // U+0000 *is* a control code, but it's special-cased
-                Some(0)
-            } else {
-                // U+0001 to U+0020 (exclusive) are control codes
-                None
-            }
-        } else if c >= '\\u{A0}' {
-            // No characters >= U+00A0 are control codes, so we can consult the lookup tables
-            Some(lookup_width(c, is_cjk))
+            """        _ => return false,
+    };
+    // Extract the 3-9th (0-indexed) least significant bits of `cp`,
+    // and use them to index into `leaf_row`.
+    let idx_within_leaf = usize::try_from((cp >> 3) & 0x7F).unwrap();
+    let leaf_byte = EMOJI_PRESENTATION_LEAVES.0[idx_of_leaf][idx_within_leaf];
+    // Use the 3 LSB of `cp` to index into `leaf_byte`.
+    ((leaf_byte >> (cp & 7)) & 1) == 1
+}
+
+/// Returns `true` if `c` has default emoji presentation, but forms a [text presentation sequence]
+/// (https://www.unicode.org/reports/tr51/#def_text_presentation_sequence)
+/// when followed by `'\\u{FEOE}'`, and is not ideographic.
+/// Such sequences are considered to have width 1.
+#[inline]
+pub fn starts_non_ideographic_text_presentation_seq(c: char) -> bool {
+    let cp: u32 = c.into();
+    // First level of lookup uses all but 8 LSB
+    let top_bits = cp >> 8;
+    let leaf: &[(u8, u8)] = match top_bits {
+"""
+        )
+
+        for msbs, i in text_presentation_idx:
+            module.write(f"        0x{msbs:X} => &TEXT_PRESENTATION_LEAF_{i},\n")
+
+        module.write(
+            """        _ => return false,
+    };
+
+    let bottom_bits = (cp & 0xFF) as u8;
+    leaf.binary_search_by(|&(lo, hi)| {
+        if bottom_bits < lo {
+            Ordering::Greater
+        } else if bottom_bits > hi {
+            Ordering::Less
         } else {
-            // U+007F to U+00A0 (exclusive) are control codes
-            None
+            Ordering::Equal
         }
-    }
+    })
+    .is_ok()
+}
+
+/// Returns `true` if `c` is an `Emoji_Modifier_Base`.
+#[inline]
+pub fn is_emoji_modifier_base(c: char) -> bool {
+    let cp: u32 = c.into();
+    // First level of lookup uses all but 8 LSB
+    let top_bits = cp >> 8;
+    let leaf: &[(u8, u8)] = match top_bits {
+"""
+        )
+
+        for msbs, i in emoji_modifier_idx:
+            module.write(f"        0x{msbs:X} => &EMOJI_MODIFIER_LEAF_{i},\n")
+
+        module.write(
+            """        _ => return false,
+    };
+
+    let bottom_bits = (cp & 0xFF) as u8;
+    leaf.binary_search_by(|&(lo, hi)| {
+        if bottom_bits < lo {
+            Ordering::Greater
+        } else if bottom_bits > hi {
+            Ordering::Less
+        } else {
+            Ordering::Equal
+        }
+    })
+    .is_ok()
+}
+
+#[repr(align(32))]
+struct Align32<T>(T);
+
+#[repr(align(64))]
+struct Align64<T>(T);
+
+#[repr(align(128))]
+struct Align128<T>(T);
 """
         )
 
         subtable_count = 1
-        for (i, table) in enumerate(tables):
+        for i, table in enumerate(tables):
             new_subtable_count = len(table.buckets())
             if i == len(tables) - 1:
                 table.indices_to_widths()  # for the last table, indices == widths
             byte_array = table.to_bytes()
+
+            if table.bytes_per_row is None:
+                module.write(
+                    f"/// Autogenerated. {subtable_count} sub-table(s). Consult [`lookup_width`] for layout info.)\n"
+                )
+                if table.cfged:
+                    module.write('#[cfg(feature = "cjk")]\n')
+                module.write(
+                    f"static {table.name}: Align{table.align}<[u8; {len(byte_array)}]> = Align{table.align}(["
+                )
+                for j, byte in enumerate(byte_array):
+                    # Add line breaks for every 15th entry (chosen to match what rustfmt does)
+                    if j % 16 == 0:
+                        module.write("\n   ")
+                    module.write(f" 0x{byte:02X},")
+                module.write("\n")
+            else:
+                num_rows = len(byte_array) // table.bytes_per_row
+                num_primary_rows = (
+                    table.primary_len
+                    // (8 // int(table.offset_type))
+                    // table.bytes_per_row
+                )
+                module.write(
+                    f"""
+#[cfg(feature = "cjk")]
+const {table.name}_LEN: usize = {num_rows};
+#[cfg(not(feature = "cjk"))]
+const {table.name}_LEN: usize = {num_primary_rows};
+/// Autogenerated. {subtable_count} sub-table(s). Consult [`lookup_width`] for layout info.
+static {table.name}: Align{table.align}<[[u8; {table.bytes_per_row}]; {table.name}_LEN]> = Align{table.align}([\n"""
+                )
+                for row_num in range(0, num_rows):
+                    if row_num >= num_primary_rows:
+                        module.write('    #[cfg(feature = "cjk")]\n')
+                    module.write("    [\n")
+                    row = byte_array[
+                        row_num
+                        * table.bytes_per_row : (row_num + 1)
+                        * table.bytes_per_row
+                    ]
+                    for subrow in batched(row, 15):
+                        module.write("       ")
+                        for entry in subrow:
+                            module.write(f" 0x{entry:02X},")
+                        module.write("\n")
+                    module.write("    ],\n")
+            module.write("]);\n")
+            subtable_count = new_subtable_count
+
+        # non transparent zero width table
+
+        module.write(
+            f"""
+/// Sorted list of codepoint ranges (inclusive)
+/// that are zero-width but not `Joining_Type=Transparent`
+/// FIXME: can we get better compression?
+static NON_TRANSPARENT_ZERO_WIDTHS: [([u8; 3], [u8; 3]); {len(non_transparent_zero_widths)}] = [
+"""
+        )
+
+        for lo, hi in non_transparent_zero_widths:
+            module.write(
+                f"    ([0x{lo & 0xFF:02X}, 0x{lo >> 8 & 0xFF:02X}, 0x{lo >> 16:02X}], [0x{hi & 0xFF:02X}, 0x{hi >> 8 & 0xFF:02X}, 0x{hi >> 16:02X}]),\n"
+            )
+
+        # solidus transparent table
+
+        module.write(
+            f"""];
+
+/// Sorted list of codepoint ranges (inclusive)
+/// that don't affect how the combining solidus applies
+/// (mostly ccc > 1).
+/// FIXME: can we get better compression?
+#[cfg(feature = "cjk")]
+static SOLIDUS_TRANSPARENT: [([u8; 3], [u8; 3]); {len(solidus_transparent)}] = [
+"""
+        )
+
+        for lo, hi in solidus_transparent:
+            module.write(
+                f"    ([0x{lo & 0xFF:02X}, 0x{lo >> 8 & 0xFF:02X}, 0x{lo >> 16:02X}], [0x{hi & 0xFF:02X}, 0x{hi >> 8 & 0xFF:02X}, 0x{hi >> 16:02X}]),\n"
+            )
+
+        # emoji table
+
+        module.write(
+            f"""];
+
+/// Array of 1024-bit bitmaps. Index into the correct bitmap with the 10 LSB of your codepoint
+/// to get whether it can start an emoji presentation sequence.
+static EMOJI_PRESENTATION_LEAVES: Align128<[[u8; 128]; {len(emoji_presentation_leaves)}]> = Align128([
+"""
+        )
+        for leaf in emoji_presentation_leaves:
+            module.write("    [\n")
+            for row in batched(leaf, 15):
+                module.write("       ")
+                for entry in row:
+                    module.write(f" 0x{entry:02X},")
+                module.write("\n")
+            module.write("    ],\n")
+
+        module.write("]);\n")
+
+        # text table
+
+        for leaf_idx, leaf in enumerate(text_presentation_leaves):
             module.write(
                 f"""
-    /// Autogenerated. {subtable_count} sub-table(s). Consult [`lookup_width`] for layout info.
-    static TABLES_{i}: [u8; {len(byte_array)}] = ["""
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_{leaf_idx}: [(u8, u8); {len(leaf)}] = [
+"""
             )
-            for (j, byte) in enumerate(byte_array):
-                # Add line breaks for every 15th entry (chosen to match what rustfmt does)
-                if j % 15 == 0:
-                    module.write("\n       ")
-                module.write(f" 0x{byte:02X},")
-            module.write("\n    ];\n")
-            subtable_count = new_subtable_count
-        module.write("}\n")
+            for lo, hi in leaf:
+                module.write(f"    (0x{lo:02X}, 0x{hi:02X}),\n")
+            module.write(f"];\n")
+
+        # emoji modifier table
+
+        for leaf_idx, leaf in enumerate(emoji_modifier_leaves):
+            module.write(
+                f"""
+#[rustfmt::skip]
+static EMOJI_MODIFIER_LEAF_{leaf_idx}: [(u8, u8); {len(leaf)}] = [
+"""
+            )
+            for lo, hi in leaf:
+                module.write(f"    (0x{lo:02X}, 0x{hi:02X}),\n")
+            module.write(f"];\n")
+
+        test_width_variants = []
+        test_width_variants_cjk = []
+        for variant in WidthState:
+            if variant.is_carried():
+                if not variant.is_cjk_only():
+                    test_width_variants.append(variant)
+                if not variant.is_non_cjk_only():
+                    test_width_variants_cjk.append(variant)
+
+        module.write(
+            f"""
+#[cfg(test)]
+mod tests {{
+    use super::*;
+
+    fn str_width_test(s: &str, init: WidthInfo) -> isize {{
+        s.chars()
+            .rfold((0, init), |(sum, next_info), c| -> (isize, WidthInfo) {{
+                let (add, info) = width_in_str(c, next_info);
+                (sum.checked_add(isize::from(add)).unwrap(), info)
+            }})
+            .0
+    }}
+
+    #[cfg(feature = "cjk")]
+    fn str_width_test_cjk(s: &str, init: WidthInfo) -> isize {{
+        s.chars()
+            .rfold((0, init), |(sum, next_info), c| -> (isize, WidthInfo) {{
+                let (add, info) = width_in_str_cjk(c, next_info);
+                (sum.checked_add(isize::from(add)).unwrap(), info)
+            }})
+            .0
+    }}
+
+    #[test]
+    fn test_normalization() {{
+        for &(orig, nfc, nfd, nfkc, nfkd) in &NORMALIZATION_TEST {{
+            for init in NORMALIZATION_TEST_WIDTHS {{
+                assert_eq!(
+                    str_width_test(orig, init),
+                    str_width_test(nfc, init),
+                    "width of X = {{orig:?}} differs from toNFC(X) = {{nfc:?}} with mode {{init:X?}}",
+                );
+                assert_eq!(
+                    str_width_test(orig, init),
+                    str_width_test(nfd, init),
+                    "width of X = {{orig:?}} differs from toNFD(X) = {{nfd:?}} with mode {{init:X?}}",
+                );
+                assert_eq!(
+                    str_width_test(nfkc, init),
+                    str_width_test(nfkd, init),
+                    "width of toNFKC(X) = {{nfkc:?}} differs from toNFKD(X) = {{nfkd:?}} with mode {{init:X?}}",
+                );
+            }}
+
+            #[cfg(feature = "cjk")]
+            for init in NORMALIZATION_TEST_WIDTHS_CJK {{
+                assert_eq!(
+                    str_width_test_cjk(orig, init),
+                    str_width_test_cjk(nfc, init),
+                    "CJK width of X = {{orig:?}} differs from toNFC(X) = {{nfc:?}} with mode {{init:X?}}",
+                );
+                assert_eq!(
+                    str_width_test_cjk(orig, init),
+                    str_width_test_cjk(nfd, init),
+                    "CJK width of X = {{orig:?}} differs from toNFD(X) = {{nfd:?}} with mode {{init:X?}}",
+                );
+                assert_eq!(
+                    str_width_test_cjk(nfkc, init),
+                    str_width_test_cjk(nfkd, init),
+                    "CJK width of toNFKC(X) = {{nfkc:?}} differs from toNFKD(X) = {{nfkd:?}} with mode {{init:?}}",
+                );
+            }}
+        }}
+    }}
+
+    static NORMALIZATION_TEST_WIDTHS: [WidthInfo; {len(test_width_variants) + 1}] = [
+        WidthInfo::DEFAULT,\n"""
+        )
+
+        for variant in WidthState:
+            if variant.is_carried() and not variant.is_cjk_only():
+                module.write(f"        WidthInfo::{variant.name},\n")
+
+        module.write(
+            f"""    ];
+
+    #[cfg(feature = "cjk")]
+    static NORMALIZATION_TEST_WIDTHS_CJK: [WidthInfo; {len(test_width_variants_cjk) + 1}] = [
+        WidthInfo::DEFAULT,\n"""
+        )
+
+        for variant in WidthState:
+            if variant.is_carried() and not variant.is_non_cjk_only():
+                module.write(f"        WidthInfo::{variant.name},\n")
+
+        module.write(
+            f"""    ];
+
+    #[rustfmt::skip]
+    static NORMALIZATION_TEST: [(&str, &str, &str, &str, &str); {len(normalization_tests)}] = [\n"""
+        )
+        for orig, nfc, nfd, nfkc, nfkd in normalization_tests:
+            module.write(
+                f'        (r#"{orig}"#, r#"{nfc}"#, r#"{nfd}"#, r#"{nfkc}"#, r#"{nfkd}"#),\n'
+            )
+
+        module.write("    ];\n}\n")
 
 
-def main(module_filename: str):
+def main(module_path: str):
     """Obtain character data from the latest version of Unicode, transform it into a multi-level
     lookup table for character width, and write a Rust module utilizing that table to
     `module_filename`.
 
-    We obey the following rules in decreasing order of importance:
-    - The soft hyphen (`U+00AD`) is single-width.
-    - Hangul Jamo medial vowels & final consonants (`U+1160..=U+11FF`) are zero-width.
-    - All codepoints in general categories `Cc`, `Cf`, `Mn`, and `Me` are zero-width.
-    - All codepoints with an East Asian Width of `Ambigous` are ambiguous-width.
-    - All codepoints with an East Asian Width of `Wide` or `Fullwidth` are double-width.
-    - All other codepoints (including unassigned codepoints and codepoints with an East Asian Width
-    of `Neutral`, `Narrow`, or `Halfwidth`) are single-width.
-
-    These rules are based off of Markus Kuhn's free `wcwidth()` implementation:
-    http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c"""
+    See `lib.rs` for documentation of the exact width rules.
+    """
     version = load_unicode_version()
     print(f"Generating module for Unicode {version[0]}.{version[1]}.{version[2]}")
 
-    eaw_map = load_east_asian_widths()
-    zw_map = load_zero_widths()
+    (width_map, cjk_width_map) = load_width_maps()
 
-    # Characters marked as zero-width in zw_map should be zero-width in the final map
-    width_map = list(
-        map(lambda x: EffectiveWidth.ZERO if x[1] else x[0], zip(eaw_map, zw_map))
-    )
+    tables = make_tables(width_map, cjk_width_map)
 
-    # Override for soft hyphen
-    width_map[0x00AD] = EffectiveWidth.NARROW
+    special_ranges = make_special_ranges(width_map)
+    cjk_special_ranges = make_special_ranges(cjk_width_map)
 
-    # Override for Hangul Jamo medial vowels & final consonants
-    for i in range(0x1160, 0x11FF + 1):
-        width_map[i] = EffectiveWidth.ZERO
+    emoji_presentations = load_emoji_presentation_sequences()
+    emoji_presentation_table = make_presentation_sequence_table(emoji_presentations)
 
-    tables = make_tables(TABLE_CFGS, enumerate(width_map))
+    text_presentations = load_text_presentation_sequences()
+    text_presentation_table = make_ranges_table(text_presentations)
+
+    emoji_modifier_bases = load_emoji_modifier_bases()
+    emoji_modifier_table = make_ranges_table(emoji_modifier_bases)
+
+    joining_group_lam = load_joining_group_lam()
+    non_transparent_zero_widths = load_non_transparent_zero_widths(width_map)
+    ligature_transparent = load_ligature_transparent()
+    solidus_transparent = load_solidus_transparent(ligature_transparent, cjk_width_map)
+
+    normalization_tests = load_normalization_tests()
+
+    fetch_open("emoji-test.txt", "../tests", emoji=True)
 
     print("------------------------")
     total_size = 0
-    for (i, table) in enumerate(tables):
+    for i, table in enumerate(tables):
         size_bytes = len(table.to_bytes())
-        print(f"Table {i} Size: {size_bytes} bytes")
+        print(f"Table {i} size: {size_bytes} bytes")
         total_size += size_bytes
-    print("------------------------")
-    print(f"  Total Size: {total_size} bytes")
 
-    emit_module(module_filename, version, tables)
-    print(f'Wrote to "{module_filename}"')
+    for s, table in [
+        ("Emoji presentation", emoji_presentation_table),
+    ]:
+        index_size = len(table[0]) * (math.ceil(math.log(table[0][-1][0], 256)) + 8)
+        print(f"{s} index size: {index_size} bytes")
+        total_size += index_size
+        leaves_size = len(table[1]) * len(table[1][0])
+        print(f"{s} leaves size: {leaves_size} bytes")
+        total_size += leaves_size
+
+    for s, table in [
+        ("Text presentation", text_presentation_table),
+        ("Emoji modifier", emoji_modifier_table),
+    ]:
+        index_size = len(table[0]) * (math.ceil(math.log(table[0][-1][0], 256)) + 16)
+        print(f"{s} index size: {index_size} bytes")
+        total_size += index_size
+        leaves_size = 2 * sum(map(len, table[1]))
+        print(f"{s} leaves size: {leaves_size} bytes")
+        total_size += leaves_size
+
+    for s, table in [
+        ("Non transparent zero width", non_transparent_zero_widths),
+        ("Solidus transparent", solidus_transparent),
+    ]:
+        table_size = 6 * len(table)
+        print(f"{s} table size: {table_size} bytes")
+        total_size += table_size
+    print("------------------------")
+    print(f"  Total size: {total_size} bytes")
+
+    emit_module(
+        out_name=module_path,
+        unicode_version=version,
+        tables=tables,
+        special_ranges=special_ranges,
+        special_ranges_cjk=cjk_special_ranges,
+        emoji_presentation_table=emoji_presentation_table,
+        text_presentation_table=text_presentation_table,
+        emoji_modifier_table=emoji_modifier_table,
+        joining_group_lam=joining_group_lam,
+        non_transparent_zero_widths=non_transparent_zero_widths,
+        ligature_transparent=ligature_transparent,
+        solidus_transparent=solidus_transparent,
+        normalization_tests=normalization_tests,
+    )
+    print(f'Wrote to "{module_path}"')
 
 
 if __name__ == "__main__":
-    main(MODULE_FILENAME)
+    main(MODULE_PATH)
diff --git a/crates/unicode-width/src/lib.rs b/crates/unicode-width/src/lib.rs
index fac45fc..71b5d70 100644
--- a/crates/unicode-width/src/lib.rs
+++ b/crates/unicode-width/src/lib.rs
@@ -10,64 +10,189 @@
 
 //! Determine displayed width of `char` and `str` types according to
 //! [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/)
-//! rules.
+//! and other portions of the Unicode standard.
+//! See the [Rules for determining width](#rules-for-determining-width) section
+//! for the exact rules.
+//!
+//! This crate is `#![no_std]`.
 //!
 //! ```rust
-//! extern crate unicode_width;
-//!
 //! use unicode_width::UnicodeWidthStr;
 //!
-//! fn main() {
-//!     let teststr = "Hello, world!";
-//!     let width = UnicodeWidthStr::width(teststr);
-//!     println!("{}", teststr);
-//!     println!("The above string is {} columns wide.", width);
-//!     let width = teststr.width_cjk();
-//!     println!("The above string is {} columns wide (CJK).", width);
-//! }
+//! let teststr = "Hello, world!";
+//! let width = UnicodeWidthStr::width(teststr);
+//! println!("{}", teststr);
+//! println!("The above string is {} columns wide.", width);
 //! ```
 //!
-//! # features
+//! # `"cjk"` feature flag
 //!
-//! unicode-width supports a `no_std` feature. This eliminates dependence
-//! on std, and instead uses equivalent functions from core.
+//! This crate has one Cargo feature flag, `"cjk"`
+//! (enabled by default).
+//! It enables the [`UnicodeWidthChar::width_cjk`]
+//! and [`UnicodeWidthStr::width_cjk`],
+//! which perform an alternate width calculation
+//! more suited to CJK contexts. The flag also unseals the
+//! [`UnicodeWidthChar`] and [`UnicodeWidthStr`] traits.
 //!
-//! # crates.io
+//! Disabling the flag (with `no_default_features` in `Cargo.toml`)
+//! will reduce the amount of static data needed by the crate.
 //!
-//! You can use this package in your project by adding the following
-//! to your `Cargo.toml`:
+//! ```rust
+//! use unicode_width::UnicodeWidthStr;
 //!
-//! ```toml
-//! [dependencies]
-//! unicode-width = "0.1.5"
+//! let teststr = "“𘀀”";
+//! assert_eq!(teststr.width(), 4);
+//!
+//! #[cfg(feature = "cjk")]
+//! assert_eq!(teststr.width_cjk(), 6);
 //! ```
+//!
+//! # Rules for determining width
+//!
+//! This crate currently uses the following rules to determine the width of a
+//! character or string, in order of decreasing precedence. These may be tweaked in the future.
+//!
+//! 1. In the following cases, the width of a string differs from the sum of the widths of its constituent characters:
+//!    - The sequence `"\r\n"` has width 1.
+//!    - Emoji-specific ligatures:
+//!      - Well-formed, fully-qualified [emoji ZWJ sequences] have width 2.
+//!      - [Emoji modifier sequences] have width 2.
+//!      - [Emoji presentation sequences] have width 2.
+//!      - Outside of an East Asian context, [text presentation sequences] have width 1 if their base character:
+//!        - Has the [`Emoji_Presentation`] property, and
+//!        - Is not in the [Enclosed Ideographic Supplement] block.
+//!    - Script-specific ligatures:
+//!      - For all the following ligatures, the insertion of any number of [default-ignorable][`Default_Ignorable_Code_Point`]
+//!        [combining marks] anywhere in the sequence will not change the total width. In addition, for all non-Arabic
+//!        ligatures, the insertion of any number of [`'\u{200D}'` ZERO WIDTH JOINER](https://www.unicode.org/versions/Unicode15.0.0/ch23.pdf#G23126)s
+//!        will not affect the width.
+//!      - **[Arabic]**: A character sequence consisting of one character with [`Joining_Group`]`=Lam`,
+//!        followed by any number of characters with [`Joining_Type`]`=Transparent`, followed by one character
+//!        with [`Joining_Group`]`=Alef`, has total width 1. For example: `لا`‎, `لآ`‎, `ڸا`‎, `لٟٞأ`
+//!      - **[Buginese]**: `"\u{1A15}\u{1A17}\u{200D}\u{1A10}"` (<a, -i> ya, `ᨕᨗ‍ᨐ`) has total width 1.
+//!      - **[Hebrew]**: `"א\u{200D}ל"` (Alef-Lamed, `א‍ל`) has total width 1.
+//!      - **[Khmer]**: Coeng signs consisting of `'\u{17D2}'` followed by a character in
+//!        `'\u{1780}'..='\u{1782}' | '\u{1784}'..='\u{1787}' | '\u{1789}'..='\u{178C}' | '\u{178E}'..='\u{1793}' | '\u{1795}'..='\u{1798}' | '\u{179B}'..='\u{179D}' | '\u{17A0}' | '\u{17A2}'  | '\u{17A7}' | '\u{17AB}'..='\u{17AC}' | '\u{17AF}'`
+//!        have width 0.
+//!      - **[Lisu]**: Tone letter combinations consisting of a character in the range `'\u{A4F8}'..='\u{A4FB}'`
+//!        followed by a character in the range `'\u{A4FC}'..='\u{A4FD}'` have width 1. For example: `ꓹꓼ`
+//!      - **[Old Turkic]**: `"\u{10C32}\u{200D}\u{10C03}"` (`𐰲‍𐰃`) has total width 1.
+//!      - **[Tifinagh]**: A sequence of a Tifinagh consonant in the range `'\u{2D31}'..='\u{2D65}' | '\u{2D6F}'`, followed by either
+//!        [`'\u{2D7F}'` TIFINAGH CONSONANT JOINER] or `'\u{200D}'`, followed by another Tifinangh consonant, has total width 1.
+//!        For example: `ⵏ⵿ⴾ`
+//!    - In an East Asian context only, `<`, `=`, or `>` have width 2 when followed by [`'\u{0338}'` COMBINING LONG SOLIDUS OVERLAY].
+//!      The two characters may be separated by any number of characters whose canonical decompositions consist only of characters meeting
+//!      one of the following requirements:
+//!      - Has [`Canonical_Combining_Class`] greater than 1, or
+//!      - Is a [default-ignorable][`Default_Ignorable_Code_Point`] [combining mark][combining marks].
+//! 2. In all other cases, the width of the string equals the sum of its character widths:
+//!    1. [`'\u{2D7F}'` TIFINAGH CONSONANT JOINER] has width 1 (outside of the ligatures described previously).
+//!    2. [`'\u{115F}'` HANGUL CHOSEONG FILLER](https://util.unicode.org/UnicodeJsps/character.jsp?a=115F) and
+//!       [`'\u{17A4}'` KHMER INDEPENDENT VOWEL QAA](https://util.unicode.org/UnicodeJsps/character.jsp?a=17A4) have width 2.
+//!    3. [`'\u{17D8}'` KHMER SIGN BEYYAL](https://util.unicode.org/UnicodeJsps/character.jsp?a=17D8) has width 3.
+//!    4. The following have width 0:
+//!       - [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BDefault_Ignorable_Code_Point%7D)
+//!         with the [`Default_Ignorable_Code_Point`] property.
+//!       - [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BGrapheme_Extend%7D)
+//!         with the [`Grapheme_Extend`] property.
+//!       - The following 8 characters, all of which have NFD decompositions consisting of two [`Grapheme_Extend`] characters:
+//!         - [`'\u{0CC0}'` KANNADA VOWEL SIGN II](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CC0),
+//!         - [`'\u{0CC7}'` KANNADA VOWEL SIGN EE](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CC7),
+//!         - [`'\u{0CC8}'` KANNADA VOWEL SIGN AI](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CC8),
+//!         - [`'\u{0CCA}'` KANNADA VOWEL SIGN O](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CCA),
+//!         - [`'\u{0CCB}'` KANNADA VOWEL SIGN OO](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CCB),
+//!         - [`'\u{1B3B}'` BALINESE VOWEL SIGN RA REPA TEDUNG](https://util.unicode.org/UnicodeJsps/character.jsp?a=1B3B),
+//!         - [`'\u{1B3D}'` BALINESE VOWEL SIGN LA LENGA TEDUNG](https://util.unicode.org/UnicodeJsps/character.jsp?a=1B3D), and
+//!         - [`'\u{1B43}'` BALINESE VOWEL SIGN PEPET TEDUNG](https://util.unicode.org/UnicodeJsps/character.jsp?a=1B43).
+//!       - [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BHangul_Syllable_Type%3DV%7D%5Cp%7BHangul_Syllable_Type%3DT%7D)
+//!         with a [`Hangul_Syllable_Type`] of `Vowel_Jamo` (`V`) or `Trailing_Jamo` (`T`).
+//!       - The following [`Prepended_Concatenation_Mark`]s:
+//!         - [`'\u{0605}'` NUMBER MARK ABOVE](https://util.unicode.org/UnicodeJsps/character.jsp?a=0605),
+//!         - [`'\u{070F}'` SYRIAC ABBREVIATION MARK](https://util.unicode.org/UnicodeJsps/character.jsp?a=070F),
+//!         - [`'\u{0890}'` POUND MARK ABOVE](https://util.unicode.org/UnicodeJsps/character.jsp?a=0890),
+//!         - [`'\u{0891}'` PIASTRE MARK ABOVE](https://util.unicode.org/UnicodeJsps/character.jsp?a=0891), and
+//!         - [`'\u{08E2}'` DISPUTED END OF AYAH](https://util.unicode.org/UnicodeJsps/character.jsp?a=08E2).
+//!       - [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BGrapheme_Cluster_Break%3DPrepend%7D-%5Cp%7BPrepended_Concatenation_Mark%7D)
+//!         with the [`Grapheme_Extend=Prepend`] property, that are not also [`Prepended_Concatenation_Mark`]s.
+//!       - [`'\u{A8FA}'` DEVANAGARI CARET](https://util.unicode.org/UnicodeJsps/character.jsp?a=A8FA).
+//!    5. [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BEast_Asian_Width%3DF%7D%5Cp%7BEast_Asian_Width%3DW%7D)
+//!       with an [`East_Asian_Width`] of [`Fullwidth`] or [`Wide`] have width 2.
+//!    6. Characters fulfilling all of the following conditions have width 2 in an East Asian context, and width 1 otherwise:
+//!       - Has an [`East_Asian_Width`] of [`Ambiguous`], or
+//!         has a canonical decomposition to an [`Ambiguous`] character followed by [`'\u{0338}'` COMBINING LONG SOLIDUS OVERLAY], or
+//!         is [`'\u{0387}'` GREEK ANO TELEIA](https://util.unicode.org/UnicodeJsps/character.jsp?a=0387), and
+//!       - Does not have a [`General_Category`] of `Letter` or `Modifier_Symbol`.
+//!    7. All other characters have width 1.
+//!
+//! [`'\u{0338}'` COMBINING LONG SOLIDUS OVERLAY]: https://util.unicode.org/UnicodeJsps/character.jsp?a=0338
+//! [`'\u{2D7F}'` TIFINAGH CONSONANT JOINER]: https://util.unicode.org/UnicodeJsps/character.jsp?a=2D7F
+//!
+//! [`Canonical_Combining_Class`]: https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf#G50313
+//! [`Default_Ignorable_Code_Point`]: https://www.unicode.org/versions/Unicode15.0.0/ch05.pdf#G40095
+//! [`East_Asian_Width`]: https://www.unicode.org/reports/tr11/#ED1
+//! [`Emoji_Presentation`]: https://unicode.org/reports/tr51/#def_emoji_presentation
+//! [`General_Category`]: https://www.unicode.org/versions/Unicode15.0.0/ch04.pdf#G124142
+//! [`Grapheme_Extend=Prepend`]: https://www.unicode.org/reports/tr29/#Prepend
+//! [`Grapheme_Extend`]: https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf#G52443
+//! [`Hangul_Syllable_Type`]: https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf#G45593
+//! [`Joining_Group`]: https://www.unicode.org/versions/Unicode14.0.0/ch09.pdf#G36862
+//! [`Joining_Type`]: http://www.unicode.org/versions/Unicode15.0.0/ch09.pdf#G50009
+//! [`Prepended_Concatenation_Mark`]: https://www.unicode.org/versions/Unicode15.0.0/ch23.pdf#G37908
+//! [`Script`]: https://www.unicode.org/reports/tr24/#Script
+//!
+//! [`Fullwidth`]: https://www.unicode.org/reports/tr11/#ED2
+//! [`Wide`]: https://www.unicode.org/reports/tr11/#ED4
+//! [`Ambiguous`]: https://www.unicode.org/reports/tr11/#ED6
+//!
+//! [combining marks]: https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf#G30602
+//!
+//! [emoji ZWJ sequences]: https://www.unicode.org/reports/tr51/#def_emoji_sequence
+//! [Emoji modifier sequences]: https://www.unicode.org/reports/tr51/#def_emoji_modifier_sequence
+//! [Emoji presentation sequences]: https://unicode.org/reports/tr51/#def_emoji_presentation_sequence
+//! [text presentation sequences]: https://unicode.org/reports/tr51/#def_text_presentation_sequence
+//!
+//! [Enclosed Ideographic Supplement]: https://unicode.org/charts/nameslist/n_1F200.html
+//!
+//! [Arabic]: https://www.unicode.org/versions/Unicode15.0.0/ch09.pdf#G7480
+//! [Buginese]: https://www.unicode.org/versions/Unicode15.0.0/ch17.pdf#G26743
+//! [Hebrew]: https://www.unicode.org/versions/Unicode15.0.0/ch09.pdf#G6528
+//! [Khmer]: https://www.unicode.org/versions/Unicode15.0.0/ch16.pdf#G64642
+//! [Lisu]: https://www.unicode.org/versions/Unicode15.0.0/ch18.pdf#G44587
+//! [Old Turkic]: https://www.unicode.org/versions/Unicode15.0.0/ch14.pdf#G41975
+//! [Tifinagh]: http://www.unicode.org/versions/Unicode15.0.0/ch19.pdf#G43184
+//!
+//!
+//! ## Canonical equivalence
+//!
+//! Canonically equivalent strings are assigned the same width (CJK and non-CJK).
 
-#![deny(missing_docs, unsafe_code)]
-#![doc(html_logo_url = "https://unicode-rs.github.io/unicode-rs_sm.png",
-       html_favicon_url = "https://unicode-rs.github.io/unicode-rs_sm.png")]
-
-#![cfg_attr(feature = "bench", feature(test))]
+#![forbid(unsafe_code)]
+#![deny(missing_docs)]
+#![doc(
+    html_logo_url = "https://unicode-rs.github.io/unicode-rs_sm.png",
+    html_favicon_url = "https://unicode-rs.github.io/unicode-rs_sm.png"
+)]
 #![no_std]
 
-#[cfg(test)]
-#[macro_use]
-extern crate std;
-
-#[cfg(feature = "bench")]
-extern crate test;
-
-use tables::charwidth as cw;
 pub use tables::UNICODE_VERSION;
 
 mod tables;
 
-#[cfg(test)]
-mod tests;
+mod private {
+    pub trait Sealed {}
+    #[cfg(not(feature = "cjk"))]
+    impl Sealed for char {}
+    #[cfg(not(feature = "cjk"))]
+    impl Sealed for str {}
+    #[cfg(feature = "cjk")]
+    impl<T: ?Sized> Sealed for T {}
+}
 
 /// Methods for determining displayed width of Unicode characters.
-pub trait UnicodeWidthChar {
+pub trait UnicodeWidthChar: private::Sealed {
     /// Returns the character's displayed width in columns, or `None` if the
-    /// character is a control character other than `'\x00'`.
+    /// character is a control character.
     ///
     /// This function treats characters in the Ambiguous category according
     /// to [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/)
@@ -76,54 +201,58 @@
     fn width(self) -> Option<usize>;
 
     /// Returns the character's displayed width in columns, or `None` if the
-    /// character is a control character other than `'\x00'`.
+    /// character is a control character.
     ///
     /// This function treats characters in the Ambiguous category according
     /// to [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/)
     /// as 2 columns wide. This is consistent with the recommendations for
     /// CJK contexts.
+    #[cfg(feature = "cjk")]
     fn width_cjk(self) -> Option<usize>;
 }
 
 impl UnicodeWidthChar for char {
     #[inline]
-    fn width(self) -> Option<usize> { cw::width(self, false) }
+    fn width(self) -> Option<usize> {
+        tables::single_char_width(self)
+    }
 
+    #[cfg(feature = "cjk")]
     #[inline]
-    fn width_cjk(self) -> Option<usize> { cw::width(self, true) }
+    fn width_cjk(self) -> Option<usize> {
+        tables::single_char_width_cjk(self)
+    }
 }
 
 /// Methods for determining displayed width of Unicode strings.
-pub trait UnicodeWidthStr {
+pub trait UnicodeWidthStr: private::Sealed {
     /// Returns the string's displayed width in columns.
     ///
-    /// Control characters are treated as having zero width.
-    ///
     /// This function treats characters in the Ambiguous category according
     /// to [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/)
     /// as 1 column wide. This is consistent with the recommendations for
     /// non-CJK contexts, or when the context cannot be reliably determined.
-    fn width<'a>(&'a self) -> usize;
+    fn width(&self) -> usize;
 
     /// Returns the string's displayed width in columns.
     ///
-    /// Control characters are treated as having zero width.
-    ///
     /// This function treats characters in the Ambiguous category according
     /// to [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/)
     /// as 2 column wide. This is consistent with the recommendations for
     /// CJK contexts.
-    fn width_cjk<'a>(&'a self) -> usize;
+    #[cfg(feature = "cjk")]
+    fn width_cjk(&self) -> usize;
 }
 
 impl UnicodeWidthStr for str {
     #[inline]
     fn width(&self) -> usize {
-        self.chars().map(|c| cw::width(c, false).unwrap_or(0)).sum()
+        tables::str_width(self)
     }
 
+    #[cfg(feature = "cjk")]
     #[inline]
     fn width_cjk(&self) -> usize {
-        self.chars().map(|c| cw::width(c, true).unwrap_or(0)).sum()
+        tables::str_width_cjk(self)
     }
 }
diff --git a/crates/unicode-width/src/tables.rs b/crates/unicode-width/src/tables.rs
index 791d7a8..fa632d6 100644
--- a/crates/unicode-width/src/tables.rs
+++ b/crates/unicode-width/src/tables.rs
@@ -10,531 +10,21747 @@
 
 // NOTE: The following code was generated by "scripts/unicode.py", do not edit directly
 
+use core::cmp::Ordering;
+
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+struct WidthInfo(u16);
+
+impl WidthInfo {
+    /// No special handling necessary
+    const DEFAULT: Self = Self(0);
+    const LINE_FEED: Self = Self(0b0000000000000001);
+    const EMOJI_MODIFIER: Self = Self(0b0000000000000010);
+    const REGIONAL_INDICATOR: Self = Self(0b0000000000000011);
+    const SEVERAL_REGIONAL_INDICATOR: Self = Self(0b0000000000000100);
+    const EMOJI_PRESENTATION: Self = Self(0b0000000000000101);
+    const ZWJ_EMOJI_PRESENTATION: Self = Self(0b0001000000000110);
+    const VS16_ZWJ_EMOJI_PRESENTATION: Self = Self(0b1001000000000110);
+    const KEYCAP_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0001000000000111);
+    const VS16_KEYCAP_ZWJ_EMOJI_PRESENTATION: Self = Self(0b1001000000000111);
+    const REGIONAL_INDICATOR_ZWJ_PRESENTATION: Self = Self(0b0000000000001001);
+    const EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION: Self = Self(0b0000000000001010);
+    const ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION: Self = Self(0b0000000000001011);
+    const TAG_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000010000);
+    const TAG_D1_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000010001);
+    const TAG_D2_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000010010);
+    const TAG_D3_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000010011);
+    const TAG_A1_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000011001);
+    const TAG_A2_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000011010);
+    const TAG_A3_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000011011);
+    const TAG_A4_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000011100);
+    const TAG_A5_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000011101);
+    const TAG_A6_END_ZWJ_EMOJI_PRESENTATION: Self = Self(0b0000000000011110);
+    const VARIATION_SELECTOR_15: Self = Self(0b0100000000000000);
+    const VARIATION_SELECTOR_16: Self = Self(0b1000000000000000);
+    const JOINING_GROUP_ALEF: Self = Self(0b0011000011111111);
+    #[cfg(feature = "cjk")]
+    const COMBINING_LONG_SOLIDUS_OVERLAY: Self = Self(0b0011110011111111);
+    #[cfg(feature = "cjk")]
+    const SOLIDUS_OVERLAY_ALEF: Self = Self(0b0011100011111111);
+    const HEBREW_LETTER_LAMED: Self = Self(0b0011100000000000);
+    const ZWJ_HEBREW_LETTER_LAMED: Self = Self(0b0011110000000000);
+    const BUGINESE_LETTER_YA: Self = Self(0b0011100000000001);
+    const ZWJ_BUGINESE_LETTER_YA: Self = Self(0b0011110000000001);
+    const BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA: Self = Self(0b0011110000000010);
+    const TIFINAGH_CONSONANT: Self = Self(0b0011100000000011);
+    const ZWJ_TIFINAGH_CONSONANT: Self = Self(0b0011110000000011);
+    const TIFINAGH_JOINER_CONSONANT: Self = Self(0b0011110000000100);
+    const LISU_TONE_LETTER_MYA_NA_JEU: Self = Self(0b0011110000000101);
+    const OLD_TURKIC_LETTER_ORKHON_I: Self = Self(0b0011100000000110);
+    const ZWJ_OLD_TURKIC_LETTER_ORKHON_I: Self = Self(0b0011110000000110);
+    const KHMER_COENG_ELIGIBLE_LETTER: Self = Self(0b0011110000000111);
+
+    /// Whether this width mode is ligature_transparent
+    /// (has 5th MSB set.)
+    fn is_ligature_transparent(self) -> bool {
+        (self.0 & 0b0000_1000_0000_0000) == 0b0000_1000_0000_0000
+    }
+
+    /// Sets 6th MSB.
+    fn set_zwj_bit(self) -> Self {
+        Self(self.0 | 0b0000_0100_0000_0000)
+    }
+
+    /// Has top bit set
+    fn is_emoji_presentation(self) -> bool {
+        (self.0 & 0b1000_0000_0000_0000) == 0b1000_0000_0000_0000
+    }
+
+    /// Has top bit set
+    fn is_zwj_emoji_presentation(self) -> bool {
+        (self.0 & 0b1011_0000_0000_0000) == 0b1001_0000_0000_0000
+    }
+
+    /// Set top bit
+    fn set_emoji_presentation(self) -> Self {
+        if (self.0 & 0b0010_0000_0000_0000) == 0b0010_0000_0000_0000
+            || (self.0 & 0b1001_0000_0000_0000) == 0b0001_0000_0000_0000
+        {
+            Self(self.0 | 0b1000_0000_0000_0000)
+        } else {
+            Self::VARIATION_SELECTOR_16
+        }
+    }
+
+    /// Clear top bit
+    fn unset_emoji_presentation(self) -> Self {
+        if (self.0 & 0b0010_0000_0000_0000) == 0b0010_0000_0000_0000 {
+            Self(self.0 & 0b0111_1111_1111_1111)
+        } else {
+            Self::DEFAULT
+        }
+    }
+
+    /// Has 2nd bit set
+    fn is_text_presentation(self) -> bool {
+        (self.0 & 0b0100_0000_0000_0000) == 0b0100_0000_0000_0000
+    }
+
+    /// Set 2nd bit
+    fn set_text_presentation(self) -> Self {
+        if (self.0 & 0b0010_0000_0000_0000) == 0b0010_0000_0000_0000 {
+            Self(self.0 | 0b0100_0000_0000_0000)
+        } else {
+            Self(0b0100_0000_0000_0000)
+        }
+    }
+
+    /// Clear 2nd bit
+    fn unset_text_presentation(self) -> Self {
+        Self(self.0 & 0b1011_1111_1111_1111)
+    }
+}
+
 /// The version of [Unicode](http://www.unicode.org/)
 /// that this version of unicode-width is based on.
 pub const UNICODE_VERSION: (u8, u8, u8) = (15, 1, 0);
 
-pub mod charwidth {
-    use core::option::Option::{self, None, Some};
+/// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c` by
+/// consulting a multi-level lookup table.
+///
+/// # Maintenance
+/// The tables themselves are autogenerated but this function is hardcoded. You should have
+/// nothing to worry about if you re-run `unicode.py` (for example, when updating Unicode.)
+/// However, if you change the *actual structure* of the lookup tables (perhaps by editing the
+/// `make_tables` function in `unicode.py`) you must ensure that this code reflects those changes.
+#[inline]
+fn lookup_width(c: char) -> (u8, WidthInfo) {
+    let cp = c as usize;
 
-    /// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c` by
-    /// consulting a multi-level lookup table.
-    /// If `is_cjk == true`, ambiguous width characters are treated as double width; otherwise,
-    /// they're treated as single width.
-    ///
-    /// # Maintenance
-    /// The tables themselves are autogenerated but this function is hardcoded. You should have
-    /// nothing to worry about if you re-run `unicode.py` (for example, when updating Unicode.)
-    /// However, if you change the *actual structure* of the lookup tables (perhaps by editing the
-    /// `TABLE_CFGS` global in `unicode.py`) you must ensure that this code reflects those changes.
-    #[inline]
-    fn lookup_width(c: char, is_cjk: bool) -> usize {
-        let cp = c as usize;
+    let t1_offset = WIDTH_ROOT.0[cp >> 13];
 
-        let t1_offset = TABLES_0[cp >> 13 & 0xFF];
+    // Each sub-table in WIDTH_MIDDLE is 7 bits, and each stored entry is a byte,
+    // so each sub-table is 128 bytes in size.
+    // (Sub-tables are selected using the computed offset from the previous table.)
+    let t2_offset = WIDTH_MIDDLE.0[usize::from(t1_offset)][cp >> 7 & 0x3F];
 
-        // Each sub-table in TABLES_1 is 7 bits, and each stored entry is a byte,
-        // so each sub-table is 128 bytes in size.
-        // (Sub-tables are selected using the computed offset from the previous table.)
-        let t2_offset = TABLES_1[128 * usize::from(t1_offset) + (cp >> 6 & 0x7F)];
+    // Each sub-table in WIDTH_LEAVES is 6 bits, but each stored entry is 2 bits.
+    // This is accomplished by packing four stored entries into one byte.
+    // So each sub-table is 2**(7-2) == 32 bytes in size.
+    // Since this is the last table, each entry represents an encoded width.
+    let packed_widths = WIDTH_LEAVES.0[usize::from(t2_offset)][cp >> 2 & 0x1F];
 
-        // Each sub-table in TABLES_2 is 6 bits, but each stored entry is 2 bits.
-        // This is accomplished by packing four stored entries into one byte.
-        // So each sub-table is 2**(6-2) == 16 bytes in size.
-        // Since this is the last table, each entry represents an encoded width.
-        let packed_widths = TABLES_2[16 * usize::from(t2_offset) + (cp >> 2 & 0xF)];
+    // Extract the packed width
+    let width = packed_widths >> (2 * (cp & 0b11)) & 0b11;
 
-        // Extract the packed width
-        let width = packed_widths >> (2 * (cp & 0b11)) & 0b11;
-
-        // A width of 3 signifies that the codepoint is ambiguous width.
-        if width == 3 {
-            if is_cjk {
-                2
-            } else {
-                1
-            }
-        } else {
-            width.into()
+    if width < 3 {
+        (width, WidthInfo::DEFAULT)
+    } else {
+        match c {
+            '\u{A}' => (1, WidthInfo::LINE_FEED),
+            '\u{5DC}' => (1, WidthInfo::HEBREW_LETTER_LAMED),
+            '\u{622}'..='\u{882}' => (1, WidthInfo::JOINING_GROUP_ALEF),
+            '\u{1780}'..='\u{17AF}' => (1, WidthInfo::KHMER_COENG_ELIGIBLE_LETTER),
+            '\u{17D8}' => (3, WidthInfo::DEFAULT),
+            '\u{1A10}' => (1, WidthInfo::BUGINESE_LETTER_YA),
+            '\u{2D31}'..='\u{2D6F}' => (1, WidthInfo::TIFINAGH_CONSONANT),
+            '\u{A4FC}'..='\u{A4FD}' => (1, WidthInfo::LISU_TONE_LETTER_MYA_NA_JEU),
+            '\u{FE0E}' => (0, WidthInfo::VARIATION_SELECTOR_15),
+            '\u{FE0F}' => (0, WidthInfo::VARIATION_SELECTOR_16),
+            '\u{10C03}' => (1, WidthInfo::OLD_TURKIC_LETTER_ORKHON_I),
+            '\u{1F1E6}'..='\u{1F1FF}' => (1, WidthInfo::REGIONAL_INDICATOR),
+            '\u{1F3FB}'..='\u{1F3FF}' => (2, WidthInfo::EMOJI_MODIFIER),
+            _ => (2, WidthInfo::EMOJI_PRESENTATION),
         }
     }
+}
 
-    /// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`, or
-    /// `None` if `c` is a control character other than `'\x00'`.
-    /// If `is_cjk == true`, ambiguous width characters are treated as double width; otherwise,
-    /// they're treated as single width.
-    #[inline]
-    pub fn width(c: char, is_cjk: bool) -> Option<usize> {
-        if c < '\u{7F}' {
-            if c >= '\u{20}' {
-                // U+0020 to U+007F (exclusive) are single-width ASCII codepoints
-                Some(1)
-            } else if c == '\0' {
-                // U+0000 *is* a control code, but it's special-cased
-                Some(0)
-            } else {
-                // U+0001 to U+0020 (exclusive) are control codes
-                None
-            }
-        } else if c >= '\u{A0}' {
-            // No characters >= U+00A0 are control codes, so we can consult the lookup tables
-            Some(lookup_width(c, is_cjk))
+/// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`, or
+/// `None` if `c` is a control character.
+/// Ambiguous width characters are treated as narrow.
+#[inline]
+pub fn single_char_width(c: char) -> Option<usize> {
+    if c < '\u{7F}' {
+        if c >= '\u{20}' {
+            // U+0020 to U+007F (exclusive) are single-width ASCII codepoints
+            Some(1)
         } else {
-            // U+007F to U+00A0 (exclusive) are control codes
+            // U+0000 to U+0020 (exclusive) are control codes
             None
         }
+    } else if c >= '\u{A0}' {
+        // No characters >= U+00A0 are control codes, so we can consult the lookup tables
+        Some(lookup_width(c).0.into())
+    } else {
+        // U+007F to U+00A0 (exclusive) are control codes
+        None
     }
+}
 
-    /// Autogenerated. 1 sub-table(s). Consult [`lookup_width`] for layout info.
-    static TABLES_0: [u8; 256] = [
-        0x00, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-        0x0E, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-        0x03, 0x0F, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
-        0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
-        0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
-        0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
-        0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
-        0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x10, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
-        0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
-        0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00,
-    ];
+/// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`.
+/// Ambiguous width characters are treated as narrow.
+#[inline]
+fn width_in_str(c: char, mut next_info: WidthInfo) -> (i8, WidthInfo) {
+    if next_info.is_emoji_presentation() {
+        if starts_emoji_presentation_seq(c) {
+            let width = if next_info.is_zwj_emoji_presentation() {
+                0
+            } else {
+                2
+            };
+            return (width, WidthInfo::EMOJI_PRESENTATION);
+        } else {
+            next_info = next_info.unset_emoji_presentation();
+        }
+    }
+    if c <= '\u{A0}' {
+        match c {
+            '\n' => (1, WidthInfo::LINE_FEED),
+            '\r' if next_info == WidthInfo::LINE_FEED => (0, WidthInfo::DEFAULT),
+            _ => (1, WidthInfo::DEFAULT),
+        }
+    } else {
+        // Fast path
+        if next_info != WidthInfo::DEFAULT {
+            if c == '\u{FE0F}' {
+                return (0, next_info.set_emoji_presentation());
+            }
+            if c == '\u{FE0E}' {
+                return (0, next_info.set_text_presentation());
+            }
+            if next_info.is_text_presentation() {
+                if starts_non_ideographic_text_presentation_seq(c) {
+                    return (1, WidthInfo::DEFAULT);
+                } else {
+                    next_info = next_info.unset_text_presentation();
+                }
+            }
+            if next_info.is_ligature_transparent() {
+                if c == '\u{200D}' {
+                    return (0, next_info.set_zwj_bit());
+                } else if is_ligature_transparent(c) {
+                    return (0, next_info);
+                }
+            }
 
-    /// Autogenerated. 19 sub-table(s). Consult [`lookup_width`] for layout info.
-    static TABLES_1: [u8; 2432] = [
-        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x06, 0x08, 0x06, 0x09, 0x0A, 0x0B, 0x0C,
-        0x0D, 0x0E, 0x0F, 0x10, 0x06, 0x06, 0x06, 0x11, 0x12, 0x13, 0x14, 0x06, 0x15, 0x16, 0x17,
-        0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x22, 0x24, 0x25,
-        0x26, 0x27, 0x28, 0x29, 0x2A, 0x25, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33,
-        0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x06, 0x3B, 0x3C, 0x0A, 0x0A, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x3D, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x06, 0x43, 0x06, 0x44, 0x06, 0x06, 0x06, 0x45,
-        0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x06, 0x06, 0x4E, 0x06, 0x06, 0x06, 0x0A,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55,
-        0x56, 0x57, 0x58, 0x59, 0x06, 0x5A, 0x06, 0x06, 0x5B, 0x06, 0x5C, 0x5D, 0x5E, 0x5D, 0x5F,
-        0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x69, 0x6A, 0x06, 0x06, 0x06, 0x06, 0x06, 0x6B,
-        0x06, 0x01, 0x06, 0x6C, 0x06, 0x06, 0x6D, 0x6E, 0x3B, 0x3B, 0x3B, 0x6F, 0x70, 0x71, 0x72,
-        0x3B, 0x73, 0x3B, 0x74, 0x75, 0x76, 0x77, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x06, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x78, 0x79, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7A, 0x7B, 0x7C,
-        0x06, 0x06, 0x06, 0x06, 0x7D, 0x06, 0x06, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85,
-        0x86, 0x06, 0x06, 0x06, 0x87, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x88,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x89, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x8A, 0x8B, 0x06, 0x01, 0x71, 0x8C, 0x06, 0x8D, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x8E, 0x06, 0x06, 0x06, 0x8F, 0x06, 0x90, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x91, 0x06, 0x06, 0x92, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x93, 0x06, 0x06, 0x06, 0x06, 0x06, 0x94, 0x95, 0x06, 0x96, 0x97, 0x06,
-        0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0x2E, 0x06, 0xA1, 0x2C, 0xA2, 0x06,
-        0x06, 0xA3, 0xA4, 0xA5, 0xA6, 0x06, 0x06, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0x06, 0xAC, 0x06,
-        0x06, 0x06, 0xAD, 0x06, 0x06, 0x06, 0xAE, 0xAF, 0x06, 0xB0, 0xB1, 0xB2, 0xB3, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0xB4, 0x06, 0xB5, 0x06, 0xB6, 0xB7, 0xB8, 0x06, 0x06, 0x06, 0x06, 0xB9,
-        0xBA, 0xBB, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x47, 0xBC, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0xBD, 0xBE, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xBF, 0xC0, 0xC1, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xC2,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0xC3, 0xC4, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xC5, 0x3B, 0x3B, 0x3B, 0x3B, 0xC6,
-        0xC7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xC8, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0xC9, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xCA,
-        0xCB, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xCC, 0xCD, 0x06, 0x06, 0xCE, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xCF, 0xD0,
-        0xD1, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xD2, 0x06, 0xBF, 0x06, 0xBE, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0xD3, 0xD4, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xD4, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xD5, 0x06, 0xD6,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xD7, 0x06, 0x06, 0xD8,
-        0xD9, 0xDA, 0xDB, 0x06, 0xDC, 0xDD, 0x06, 0x06, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0x3B,
-        0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0x3B, 0xE9, 0x3B, 0xEA, 0x06, 0x06, 0x06, 0xEB, 0x06, 0x06,
-        0x06, 0x06, 0xEC, 0xED, 0x3B, 0x3B, 0x06, 0xEE, 0xEF, 0xF0, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
-        0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE5, 0xF1, 0x0A, 0x06, 0x06, 0x0A, 0x0A, 0x0A,
-        0x0B, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-        0x06, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D,
-        0x5D, 0xF2,
-    ];
+            match (next_info, c) {
+                // Arabic Lam-Alef ligature
+                (
+                    WidthInfo::JOINING_GROUP_ALEF,
+                    '\u{644}' | '\u{6B5}'..='\u{6B8}' | '\u{76A}' | '\u{8A6}' | '\u{8C7}',
+                ) => return (0, WidthInfo::DEFAULT),
+                (WidthInfo::JOINING_GROUP_ALEF, _) if is_transparent_zero_width(c) => {
+                    return (0, WidthInfo::JOINING_GROUP_ALEF);
+                }
 
-    /// Autogenerated. 243 sub-table(s). Consult [`lookup_width`] for layout info.
-    static TABLES_2: [u8; 3888] = [
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+                // Hebrew Alef-ZWJ-Lamed ligature
+                (WidthInfo::ZWJ_HEBREW_LETTER_LAMED, '\u{05D0}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+
+                // Khmer coeng signs
+                (WidthInfo::KHMER_COENG_ELIGIBLE_LETTER, '\u{17D2}') => {
+                    return (-1, WidthInfo::DEFAULT);
+                }
+
+                // Buginese <a, -i> ZWJ ya ligature
+                (WidthInfo::ZWJ_BUGINESE_LETTER_YA, '\u{1A17}') => {
+                    return (0, WidthInfo::BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA)
+                }
+                (WidthInfo::BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA, '\u{1A15}') => {
+                    return (0, WidthInfo::DEFAULT)
+                }
+
+                // Tifinagh bi-consonants
+                (WidthInfo::TIFINAGH_CONSONANT | WidthInfo::ZWJ_TIFINAGH_CONSONANT, '\u{2D7F}') => {
+                    return (1, WidthInfo::TIFINAGH_JOINER_CONSONANT);
+                }
+                (WidthInfo::ZWJ_TIFINAGH_CONSONANT, '\u{2D31}'..='\u{2D65}' | '\u{2D6F}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+                (WidthInfo::TIFINAGH_JOINER_CONSONANT, '\u{2D31}'..='\u{2D65}' | '\u{2D6F}') => {
+                    return (-1, WidthInfo::DEFAULT);
+                }
+
+                // Lisu tone letter combinations
+                (WidthInfo::LISU_TONE_LETTER_MYA_NA_JEU, '\u{A4F8}'..='\u{A4FB}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+
+                // Old Turkic ligature
+                (WidthInfo::ZWJ_OLD_TURKIC_LETTER_ORKHON_I, '\u{10C32}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+                // Emoji modifier
+                (WidthInfo::EMOJI_MODIFIER, _) if is_emoji_modifier_base(c) => {
+                    return (0, WidthInfo::EMOJI_PRESENTATION);
+                }
+
+                // Regional indicator
+                (
+                    WidthInfo::REGIONAL_INDICATOR | WidthInfo::SEVERAL_REGIONAL_INDICATOR,
+                    '\u{1F1E6}'..='\u{1F1FF}',
+                ) => return (1, WidthInfo::SEVERAL_REGIONAL_INDICATOR),
+
+                // ZWJ emoji
+                (
+                    WidthInfo::EMOJI_PRESENTATION
+                    | WidthInfo::SEVERAL_REGIONAL_INDICATOR
+                    | WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION
+                    | WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION
+                    | WidthInfo::EMOJI_MODIFIER,
+                    '\u{200D}',
+                ) => return (0, WidthInfo::ZWJ_EMOJI_PRESENTATION),
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\u{20E3}') => {
+                    return (0, WidthInfo::KEYCAP_ZWJ_EMOJI_PRESENTATION);
+                }
+                (WidthInfo::VS16_ZWJ_EMOJI_PRESENTATION, _) if starts_emoji_presentation_seq(c) => {
+                    return (0, WidthInfo::EMOJI_PRESENTATION)
+                }
+                (WidthInfo::VS16_KEYCAP_ZWJ_EMOJI_PRESENTATION, '0'..='9' | '#' | '*') => {
+                    return (0, WidthInfo::EMOJI_PRESENTATION)
+                }
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\u{1F1E6}'..='\u{1F1FF}') => {
+                    return (1, WidthInfo::REGIONAL_INDICATOR_ZWJ_PRESENTATION);
+                }
+                (
+                    WidthInfo::REGIONAL_INDICATOR_ZWJ_PRESENTATION
+                    | WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+                    '\u{1F1E6}'..='\u{1F1FF}',
+                ) => return (-1, WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION),
+                (
+                    WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+                    '\u{1F1E6}'..='\u{1F1FF}',
+                ) => return (3, WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION),
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\u{1F3FB}'..='\u{1F3FF}') => {
+                    return (0, WidthInfo::EMOJI_MODIFIER);
+                }
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\u{E007F}') => {
+                    return (0, WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION);
+                }
+                (WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION);
+                }
+                (WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A6_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (
+                    WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION,
+                    '\u{E0030}'..='\u{E0039}',
+                ) => return (0, WidthInfo::TAG_D1_END_ZWJ_EMOJI_PRESENTATION),
+                (WidthInfo::TAG_D1_END_ZWJ_EMOJI_PRESENTATION, '\u{E0030}'..='\u{E0039}') => {
+                    return (0, WidthInfo::TAG_D2_END_ZWJ_EMOJI_PRESENTATION);
+                }
+                (WidthInfo::TAG_D2_END_ZWJ_EMOJI_PRESENTATION, '\u{E0030}'..='\u{E0039}') => {
+                    return (0, WidthInfo::TAG_D3_END_ZWJ_EMOJI_PRESENTATION);
+                }
+                (
+                    WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A6_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_D3_END_ZWJ_EMOJI_PRESENTATION,
+                    '\u{1F3F4}',
+                ) => return (0, WidthInfo::EMOJI_PRESENTATION),
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, _)
+                    if lookup_width(c).1 == WidthInfo::EMOJI_PRESENTATION =>
+                {
+                    return (0, WidthInfo::EMOJI_PRESENTATION)
+                }
+
+                // Fallback
+                _ => {}
+            }
+        }
+
+        let ret = lookup_width(c);
+        (ret.0 as i8, ret.1)
+    }
+}
+
+#[inline]
+pub fn str_width(s: &str) -> usize {
+    s.chars()
+        .rfold(
+            (0, WidthInfo::DEFAULT),
+            |(sum, next_info), c| -> (usize, WidthInfo) {
+                let (add, info) = width_in_str(c, next_info);
+                (sum.wrapping_add_signed(isize::from(add)), info)
+            },
+        )
+        .0
+}
+
+/// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c` by
+/// consulting a multi-level lookup table.
+///
+/// # Maintenance
+/// The tables themselves are autogenerated but this function is hardcoded. You should have
+/// nothing to worry about if you re-run `unicode.py` (for example, when updating Unicode.)
+/// However, if you change the *actual structure* of the lookup tables (perhaps by editing the
+/// `make_tables` function in `unicode.py`) you must ensure that this code reflects those changes.
+#[cfg(feature = "cjk")]
+#[inline]
+fn lookup_width_cjk(c: char) -> (u8, WidthInfo) {
+    let cp = c as usize;
+
+    let t1_offset = WIDTH_ROOT_CJK.0[cp >> 13];
+
+    // Each sub-table in WIDTH_MIDDLE is 7 bits, and each stored entry is a byte,
+    // so each sub-table is 128 bytes in size.
+    // (Sub-tables are selected using the computed offset from the previous table.)
+    let t2_offset = WIDTH_MIDDLE.0[usize::from(t1_offset)][cp >> 7 & 0x3F];
+
+    // Each sub-table in WIDTH_LEAVES is 6 bits, but each stored entry is 2 bits.
+    // This is accomplished by packing four stored entries into one byte.
+    // So each sub-table is 2**(7-2) == 32 bytes in size.
+    // Since this is the last table, each entry represents an encoded width.
+    let packed_widths = WIDTH_LEAVES.0[usize::from(t2_offset)][cp >> 2 & 0x1F];
+
+    // Extract the packed width
+    let width = packed_widths >> (2 * (cp & 0b11)) & 0b11;
+
+    if width < 3 {
+        (width, WidthInfo::DEFAULT)
+    } else {
+        match c {
+            '\u{A}' => (1, WidthInfo::LINE_FEED),
+            '\u{338}' => (0, WidthInfo::COMBINING_LONG_SOLIDUS_OVERLAY),
+            '\u{5DC}' => (1, WidthInfo::HEBREW_LETTER_LAMED),
+            '\u{622}'..='\u{882}' => (1, WidthInfo::JOINING_GROUP_ALEF),
+            '\u{1780}'..='\u{17AF}' => (1, WidthInfo::KHMER_COENG_ELIGIBLE_LETTER),
+            '\u{17D8}' => (3, WidthInfo::DEFAULT),
+            '\u{1A10}' => (1, WidthInfo::BUGINESE_LETTER_YA),
+            '\u{2D31}'..='\u{2D6F}' => (1, WidthInfo::TIFINAGH_CONSONANT),
+            '\u{A4FC}'..='\u{A4FD}' => (1, WidthInfo::LISU_TONE_LETTER_MYA_NA_JEU),
+            '\u{FE0F}' => (0, WidthInfo::VARIATION_SELECTOR_16),
+            '\u{10C03}' => (1, WidthInfo::OLD_TURKIC_LETTER_ORKHON_I),
+            '\u{1F1E6}'..='\u{1F1FF}' => (1, WidthInfo::REGIONAL_INDICATOR),
+            '\u{1F3FB}'..='\u{1F3FF}' => (2, WidthInfo::EMOJI_MODIFIER),
+            _ => (2, WidthInfo::EMOJI_PRESENTATION),
+        }
+    }
+}
+
+/// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`, or
+/// `None` if `c` is a control character.
+/// Ambiguous width characters are treated as wide.
+#[cfg(feature = "cjk")]
+#[inline]
+pub fn single_char_width_cjk(c: char) -> Option<usize> {
+    if c < '\u{7F}' {
+        if c >= '\u{20}' {
+            // U+0020 to U+007F (exclusive) are single-width ASCII codepoints
+            Some(1)
+        } else {
+            // U+0000 to U+0020 (exclusive) are control codes
+            None
+        }
+    } else if c >= '\u{A0}' {
+        // No characters >= U+00A0 are control codes, so we can consult the lookup tables
+        Some(lookup_width_cjk(c).0.into())
+    } else {
+        // U+007F to U+00A0 (exclusive) are control codes
+        None
+    }
+}
+
+/// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`.
+/// Ambiguous width characters are treated as wide.
+#[cfg(feature = "cjk")]
+#[inline]
+fn width_in_str_cjk(c: char, mut next_info: WidthInfo) -> (i8, WidthInfo) {
+    if next_info.is_emoji_presentation() {
+        if starts_emoji_presentation_seq(c) {
+            let width = if next_info.is_zwj_emoji_presentation() {
+                0
+            } else {
+                2
+            };
+            return (width, WidthInfo::EMOJI_PRESENTATION);
+        } else {
+            next_info = next_info.unset_emoji_presentation();
+        }
+    }
+    if (matches!(
+        next_info,
+        WidthInfo::COMBINING_LONG_SOLIDUS_OVERLAY | WidthInfo::SOLIDUS_OVERLAY_ALEF
+    ) && matches!(c, '<' | '=' | '>'))
+    {
+        return (2, WidthInfo::DEFAULT);
+    }
+    if c <= '\u{A0}' {
+        match c {
+            '\n' => (1, WidthInfo::LINE_FEED),
+            '\r' if next_info == WidthInfo::LINE_FEED => (0, WidthInfo::DEFAULT),
+            _ => (1, WidthInfo::DEFAULT),
+        }
+    } else {
+        // Fast path
+        if next_info != WidthInfo::DEFAULT {
+            if c == '\u{FE0F}' {
+                return (0, next_info.set_emoji_presentation());
+            }
+            if next_info.is_ligature_transparent() {
+                if c == '\u{200D}' {
+                    return (0, next_info.set_zwj_bit());
+                } else if is_ligature_transparent(c) {
+                    return (0, next_info);
+                }
+            }
+
+            match (next_info, c) {
+                (WidthInfo::COMBINING_LONG_SOLIDUS_OVERLAY, _) if is_solidus_transparent(c) => {
+                    return (
+                        lookup_width_cjk(c).0 as i8,
+                        WidthInfo::COMBINING_LONG_SOLIDUS_OVERLAY,
+                    );
+                }
+                (WidthInfo::JOINING_GROUP_ALEF, '\u{0338}') => {
+                    return (0, WidthInfo::SOLIDUS_OVERLAY_ALEF);
+                }
+                // Arabic Lam-Alef ligature
+                (
+                    WidthInfo::JOINING_GROUP_ALEF | WidthInfo::SOLIDUS_OVERLAY_ALEF,
+                    '\u{644}' | '\u{6B5}'..='\u{6B8}' | '\u{76A}' | '\u{8A6}' | '\u{8C7}',
+                ) => return (0, WidthInfo::DEFAULT),
+                (WidthInfo::JOINING_GROUP_ALEF, _) if is_transparent_zero_width(c) => {
+                    return (0, WidthInfo::JOINING_GROUP_ALEF);
+                }
+
+                // Hebrew Alef-ZWJ-Lamed ligature
+                (WidthInfo::ZWJ_HEBREW_LETTER_LAMED, '\u{05D0}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+
+                // Khmer coeng signs
+                (WidthInfo::KHMER_COENG_ELIGIBLE_LETTER, '\u{17D2}') => {
+                    return (-1, WidthInfo::DEFAULT);
+                }
+
+                // Buginese <a, -i> ZWJ ya ligature
+                (WidthInfo::ZWJ_BUGINESE_LETTER_YA, '\u{1A17}') => {
+                    return (0, WidthInfo::BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA)
+                }
+                (WidthInfo::BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA, '\u{1A15}') => {
+                    return (0, WidthInfo::DEFAULT)
+                }
+
+                // Tifinagh bi-consonants
+                (WidthInfo::TIFINAGH_CONSONANT | WidthInfo::ZWJ_TIFINAGH_CONSONANT, '\u{2D7F}') => {
+                    return (1, WidthInfo::TIFINAGH_JOINER_CONSONANT);
+                }
+                (WidthInfo::ZWJ_TIFINAGH_CONSONANT, '\u{2D31}'..='\u{2D65}' | '\u{2D6F}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+                (WidthInfo::TIFINAGH_JOINER_CONSONANT, '\u{2D31}'..='\u{2D65}' | '\u{2D6F}') => {
+                    return (-1, WidthInfo::DEFAULT);
+                }
+
+                // Lisu tone letter combinations
+                (WidthInfo::LISU_TONE_LETTER_MYA_NA_JEU, '\u{A4F8}'..='\u{A4FB}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+
+                // Old Turkic ligature
+                (WidthInfo::ZWJ_OLD_TURKIC_LETTER_ORKHON_I, '\u{10C32}') => {
+                    return (0, WidthInfo::DEFAULT);
+                }
+                // Emoji modifier
+                (WidthInfo::EMOJI_MODIFIER, _) if is_emoji_modifier_base(c) => {
+                    return (0, WidthInfo::EMOJI_PRESENTATION);
+                }
+
+                // Regional indicator
+                (
+                    WidthInfo::REGIONAL_INDICATOR | WidthInfo::SEVERAL_REGIONAL_INDICATOR,
+                    '\u{1F1E6}'..='\u{1F1FF}',
+                ) => return (1, WidthInfo::SEVERAL_REGIONAL_INDICATOR),
+
+                // ZWJ emoji
+                (
+                    WidthInfo::EMOJI_PRESENTATION
+                    | WidthInfo::SEVERAL_REGIONAL_INDICATOR
+                    | WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION
+                    | WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION
+                    | WidthInfo::EMOJI_MODIFIER,
+                    '\u{200D}',
+                ) => return (0, WidthInfo::ZWJ_EMOJI_PRESENTATION),
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\u{20E3}') => {
+                    return (0, WidthInfo::KEYCAP_ZWJ_EMOJI_PRESENTATION);
+                }
+                (WidthInfo::VS16_ZWJ_EMOJI_PRESENTATION, _) if starts_emoji_presentation_seq(c) => {
+                    return (0, WidthInfo::EMOJI_PRESENTATION)
+                }
+                (WidthInfo::VS16_KEYCAP_ZWJ_EMOJI_PRESENTATION, '0'..='9' | '#' | '*') => {
+                    return (0, WidthInfo::EMOJI_PRESENTATION)
+                }
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\u{1F1E6}'..='\u{1F1FF}') => {
+                    return (1, WidthInfo::REGIONAL_INDICATOR_ZWJ_PRESENTATION);
+                }
+                (
+                    WidthInfo::REGIONAL_INDICATOR_ZWJ_PRESENTATION
+                    | WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+                    '\u{1F1E6}'..='\u{1F1FF}',
+                ) => return (-1, WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION),
+                (
+                    WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+                    '\u{1F1E6}'..='\u{1F1FF}',
+                ) => return (3, WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION),
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\u{1F3FB}'..='\u{1F3FF}') => {
+                    return (0, WidthInfo::EMOJI_MODIFIER);
+                }
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, '\u{E007F}') => {
+                    return (0, WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION);
+                }
+                (WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION);
+                }
+                (WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION, '\u{E0061}'..='\u{E007A}') => {
+                    return (0, WidthInfo::TAG_A6_END_ZWJ_EMOJI_PRESENTATION)
+                }
+                (
+                    WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION,
+                    '\u{E0030}'..='\u{E0039}',
+                ) => return (0, WidthInfo::TAG_D1_END_ZWJ_EMOJI_PRESENTATION),
+                (WidthInfo::TAG_D1_END_ZWJ_EMOJI_PRESENTATION, '\u{E0030}'..='\u{E0039}') => {
+                    return (0, WidthInfo::TAG_D2_END_ZWJ_EMOJI_PRESENTATION);
+                }
+                (WidthInfo::TAG_D2_END_ZWJ_EMOJI_PRESENTATION, '\u{E0030}'..='\u{E0039}') => {
+                    return (0, WidthInfo::TAG_D3_END_ZWJ_EMOJI_PRESENTATION);
+                }
+                (
+                    WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_A6_END_ZWJ_EMOJI_PRESENTATION
+                    | WidthInfo::TAG_D3_END_ZWJ_EMOJI_PRESENTATION,
+                    '\u{1F3F4}',
+                ) => return (0, WidthInfo::EMOJI_PRESENTATION),
+                (WidthInfo::ZWJ_EMOJI_PRESENTATION, _)
+                    if lookup_width_cjk(c).1 == WidthInfo::EMOJI_PRESENTATION =>
+                {
+                    return (0, WidthInfo::EMOJI_PRESENTATION)
+                }
+
+                // Fallback
+                _ => {}
+            }
+        }
+
+        let ret = lookup_width_cjk(c);
+        (ret.0 as i8, ret.1)
+    }
+}
+
+#[cfg(feature = "cjk")]
+#[inline]
+pub fn str_width_cjk(s: &str) -> usize {
+    s.chars()
+        .rfold(
+            (0, WidthInfo::DEFAULT),
+            |(sum, next_info), c| -> (usize, WidthInfo) {
+                let (add, info) = width_in_str_cjk(c, next_info);
+                (sum.wrapping_add_signed(isize::from(add)), info)
+            },
+        )
+        .0
+}
+
+/// Whether this character is a zero-width character with
+/// `Joining_Type=Transparent`. Used by the Alef-Lamed ligatures.
+/// See also [`is_ligature_transparent`], a near-subset of this (only ZWJ is excepted)
+/// which is transparent for non-Arabic ligatures.
+fn is_transparent_zero_width(c: char) -> bool {
+    if lookup_width(c).0 != 0 {
+        // Not zero-width
+        false
+    } else {
+        let cp: u32 = c.into();
+        NON_TRANSPARENT_ZERO_WIDTHS
+            .binary_search_by(|&(lo, hi)| {
+                let lo = u32::from_le_bytes([lo[0], lo[1], lo[2], 0]);
+                let hi = u32::from_le_bytes([hi[0], hi[1], hi[2], 0]);
+                if cp < lo {
+                    Ordering::Greater
+                } else if cp > hi {
+                    Ordering::Less
+                } else {
+                    Ordering::Equal
+                }
+            })
+            .is_err()
+    }
+}
+
+/// Whether this character is a default-ignorable combining mark
+/// or ZWJ. These characters won't interrupt non-Arabic ligatures.
+fn is_ligature_transparent(c: char) -> bool {
+    matches!(c, '\u{34F}' | '\u{17B4}'..='\u{17B5}' | '\u{180B}'..='\u{180D}' | '\u{180F}' | '\u{200D}' | '\u{FE00}'..='\u{FE0F}' | '\u{E0100}'..='\u{E01EF}')
+}
+
+/// Whether this character is transparent wrt the effect of
+/// U+0338 COMBINING LONG SOLIDUS OVERLAY
+/// on its base character.
+#[cfg(feature = "cjk")]
+fn is_solidus_transparent(c: char) -> bool {
+    let cp: u32 = c.into();
+    is_ligature_transparent(c)
+        || SOLIDUS_TRANSPARENT
+            .binary_search_by(|&(lo, hi)| {
+                let lo = u32::from_le_bytes([lo[0], lo[1], lo[2], 0]);
+                let hi = u32::from_le_bytes([hi[0], hi[1], hi[2], 0]);
+                if cp < lo {
+                    Ordering::Greater
+                } else if cp > hi {
+                    Ordering::Less
+                } else {
+                    Ordering::Equal
+                }
+            })
+            .is_ok()
+}
+
+/// Whether this character forms an [emoji presentation sequence]
+/// (https://www.unicode.org/reports/tr51/#def_emoji_presentation_sequence)
+/// when followed by `'\u{FEOF}'`.
+/// Emoji presentation sequences are considered to have width 2.
+#[inline]
+pub fn starts_emoji_presentation_seq(c: char) -> bool {
+    let cp: u32 = c.into();
+    // First level of lookup uses all but 10 LSB
+    let top_bits = cp >> 10;
+    let idx_of_leaf: usize = match top_bits {
+        0x0 => 0,
+        0x8 => 1,
+        0x9 => 2,
+        0xA => 3,
+        0xC => 4,
+        0x7C => 5,
+        0x7D => 6,
+        _ => return false,
+    };
+    // Extract the 3-9th (0-indexed) least significant bits of `cp`,
+    // and use them to index into `leaf_row`.
+    let idx_within_leaf = usize::try_from((cp >> 3) & 0x7F).unwrap();
+    let leaf_byte = EMOJI_PRESENTATION_LEAVES.0[idx_of_leaf][idx_within_leaf];
+    // Use the 3 LSB of `cp` to index into `leaf_byte`.
+    ((leaf_byte >> (cp & 7)) & 1) == 1
+}
+
+/// Returns `true` if `c` has default emoji presentation, but forms a [text presentation sequence]
+/// (https://www.unicode.org/reports/tr51/#def_text_presentation_sequence)
+/// when followed by `'\u{FEOE}'`, and is not ideographic.
+/// Such sequences are considered to have width 1.
+#[inline]
+pub fn starts_non_ideographic_text_presentation_seq(c: char) -> bool {
+    let cp: u32 = c.into();
+    // First level of lookup uses all but 8 LSB
+    let top_bits = cp >> 8;
+    let leaf: &[(u8, u8)] = match top_bits {
+        0x23 => &TEXT_PRESENTATION_LEAF_0,
+        0x25 => &TEXT_PRESENTATION_LEAF_1,
+        0x26 => &TEXT_PRESENTATION_LEAF_2,
+        0x27 => &TEXT_PRESENTATION_LEAF_3,
+        0x2B => &TEXT_PRESENTATION_LEAF_4,
+        0x1F0 => &TEXT_PRESENTATION_LEAF_5,
+        0x1F3 => &TEXT_PRESENTATION_LEAF_6,
+        0x1F4 => &TEXT_PRESENTATION_LEAF_7,
+        0x1F5 => &TEXT_PRESENTATION_LEAF_8,
+        0x1F6 => &TEXT_PRESENTATION_LEAF_9,
+        _ => return false,
+    };
+
+    let bottom_bits = (cp & 0xFF) as u8;
+    leaf.binary_search_by(|&(lo, hi)| {
+        if bottom_bits < lo {
+            Ordering::Greater
+        } else if bottom_bits > hi {
+            Ordering::Less
+        } else {
+            Ordering::Equal
+        }
+    })
+    .is_ok()
+}
+
+/// Returns `true` if `c` is an `Emoji_Modifier_Base`.
+#[inline]
+pub fn is_emoji_modifier_base(c: char) -> bool {
+    let cp: u32 = c.into();
+    // First level of lookup uses all but 8 LSB
+    let top_bits = cp >> 8;
+    let leaf: &[(u8, u8)] = match top_bits {
+        0x26 => &EMOJI_MODIFIER_LEAF_0,
+        0x27 => &EMOJI_MODIFIER_LEAF_1,
+        0x1F3 => &EMOJI_MODIFIER_LEAF_2,
+        0x1F4 => &EMOJI_MODIFIER_LEAF_3,
+        0x1F5 => &EMOJI_MODIFIER_LEAF_4,
+        0x1F6 => &EMOJI_MODIFIER_LEAF_5,
+        0x1F9 => &EMOJI_MODIFIER_LEAF_6,
+        0x1FA => &EMOJI_MODIFIER_LEAF_7,
+        _ => return false,
+    };
+
+    let bottom_bits = (cp & 0xFF) as u8;
+    leaf.binary_search_by(|&(lo, hi)| {
+        if bottom_bits < lo {
+            Ordering::Greater
+        } else if bottom_bits > hi {
+            Ordering::Less
+        } else {
+            Ordering::Equal
+        }
+    })
+    .is_ok()
+}
+
+#[repr(align(32))]
+struct Align32<T>(T);
+
+#[repr(align(64))]
+struct Align64<T>(T);
+
+#[repr(align(128))]
+struct Align128<T>(T);
+/// Autogenerated. 1 sub-table(s). Consult [`lookup_width`] for layout info.)
+static WIDTH_ROOT: Align128<[u8; 256]> = Align128([
+    0x00, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
+    0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0F,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x10, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+]);
+/// Autogenerated. 17 sub-table(s). Consult [`lookup_width`] for layout info.)
+#[cfg(feature = "cjk")]
+static WIDTH_ROOT_CJK: Align128<[u8; 256]> = Align128([
+    0x11, 0x12, 0x02, 0x03, 0x03, 0x04, 0x05, 0x13, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x14,
+    0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0F,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+    0x10, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0F,
+    0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+]);
+
+#[cfg(feature = "cjk")]
+const WIDTH_MIDDLE_LEN: usize = 21;
+#[cfg(not(feature = "cjk"))]
+const WIDTH_MIDDLE_LEN: usize = 17;
+/// Autogenerated. 4 sub-table(s). Consult [`lookup_width`] for layout info.
+static WIDTH_MIDDLE: Align64<[[u8; 64]; WIDTH_MIDDLE_LEN]> = Align64([
+    [
+        0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x02, 0x05, 0x06, 0x07, 0x08,
+        0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+        0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x02, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x02, 0x2A,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    [
+        0x2B, 0x2C, 0x02, 0x02, 0x02, 0x02, 0x2D, 0x2E, 0x02, 0x02, 0x02, 0x2F, 0x30, 0x31, 0x32,
+        0x33, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x34, 0x02, 0x02, 0x35, 0x36, 0x37, 0x02, 0x38,
+        0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39,
+    ],
+    [
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x40, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39,
+    ],
+    [
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39,
+    ],
+    [
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x41, 0x02, 0x02, 0x42, 0x43, 0x02,
+        0x02, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x02, 0x4A, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39,
+    ],
+    [
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x4B, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    [
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x39, 0x39, 0x39, 0x39, 0x4C, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x4D, 0x4E, 0x4F, 0x50,
+    ],
+    [
+        0x02, 0x02, 0x02, 0x51, 0x02, 0x52, 0x53, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x54, 0x55, 0x02, 0x02, 0x56, 0x02, 0x57, 0x02, 0x02, 0x58,
+        0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x02, 0x62, 0x63, 0x02, 0x64, 0x65,
+        0x66, 0x67, 0x02, 0x68, 0x02, 0x69, 0x6A, 0x6B, 0x6C, 0x02, 0x02, 0x6D, 0x6E, 0x6F, 0x70,
+        0x02, 0x71, 0x72, 0x02,
+    ],
+    [
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x73, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    [
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    [
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x74, 0x75, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x76, 0x77, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39,
+    ],
+    [
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x78, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x79, 0x7A, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    [
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x7B, 0x39, 0x39, 0x7C, 0x39, 0x39, 0x7D, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x7E, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    [
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x7F, 0x02, 0x02, 0x02, 0x80, 0x81, 0x82, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x83, 0x84, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    [
+        0x85, 0x86, 0x75, 0x02, 0x02, 0x87, 0x02, 0x02, 0x02, 0x88, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x89, 0x8A, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x8B, 0x8C, 0x02, 0x8D, 0x8E, 0x02, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95,
+        0x96, 0x02, 0x97, 0x02, 0x02, 0x98, 0x99, 0x9A, 0x9B, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    [
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x9C,
+    ],
+    [
+        0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D,
+        0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D,
+        0x1D, 0x1D, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x00, 0x9D, 0x02, 0x02, 0x02, 0x02, 0x9E, 0x9F, 0x02, 0x04, 0x02, 0x05, 0x06, 0x07, 0x08,
+        0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+        0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x02, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x02, 0x2A,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0x2E, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD,
+        0x33, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0xAE, 0x02, 0x02, 0x35, 0x36, 0x37, 0x02, 0x38,
+        0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0xAF, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
+        0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x4C, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0xB0, 0x4E, 0x4F, 0xB1,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x85, 0x86, 0x75, 0x02, 0x02, 0x87, 0x02, 0x02, 0x02, 0x88, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x89, 0x8A, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x8B, 0x8C, 0xB2, 0xB3, 0x8E, 0x02, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95,
+        0x96, 0x02, 0x97, 0x02, 0x02, 0x98, 0x99, 0x9A, 0x9B, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+        0x02, 0x02, 0x02, 0x02,
+    ],
+]);
+
+#[cfg(feature = "cjk")]
+const WIDTH_LEAVES_LEN: usize = 180;
+#[cfg(not(feature = "cjk"))]
+const WIDTH_LEAVES_LEN: usize = 157;
+/// Autogenerated. 180 sub-table(s). Consult [`lookup_width`] for layout info.
+static WIDTH_LEAVES: Align32<[[u8; 32]; WIDTH_LEAVES_LEN]> = Align32([
+    [
+        0x55, 0x55, 0x75, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xD7, 0x77, 0x75, 0xFF,
-        0xF7, 0x7F, 0xFF, 0x55, 0x75, 0x55, 0x55, 0x57, 0xD5, 0x57, 0xF5, 0x5F, 0x75, 0x7F, 0x5F,
-        0xF7, 0xD5, 0x7F, 0x77, 0x5D, 0x55, 0x55, 0x55, 0xDD, 0x55, 0xD5, 0x55, 0x55, 0xF5, 0xD5,
-        0x55, 0xFD, 0x55, 0x57, 0xD5, 0x7F, 0x57, 0xFF, 0x5D, 0xF5, 0x55, 0x55, 0x55, 0x55, 0xF5,
-        0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x77, 0x77, 0x77, 0x57,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5D, 0x55, 0x55,
-        0x55, 0x5D, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD7, 0xFD, 0x5D, 0x57, 0x55,
-        0xFF, 0xDD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0xFD, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0x5F, 0x55, 0xFD, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF,
-        0x5F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5D,
-        0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-        0xFF, 0xFF, 0xFF, 0xFF, 0x5D, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x15, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x10, 0x41, 0x10, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x00, 0x50, 0x55, 0x55, 0x00, 0x00, 0x40, 0x54, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55,
-        0x55, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x10, 0x00,
-        0x14, 0x04, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x51, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x05, 0x10, 0x00, 0x00, 0x01, 0x01, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x50, 0x55, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x15, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x10, 0x41, 0x10, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x51, 0x55, 0x55, 0x00, 0x00, 0x40, 0x54, 0xF5, 0xDD, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0xFC, 0x5D,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x14, 0x00, 0x14, 0x04, 0x50, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x15, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD5, 0x57,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x54, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x55,
+        0x55, 0x51,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x10, 0x00, 0x00, 0x01, 0x01, 0x50, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xFF,
+        0xFF, 0xFF,
+    ],
+    [
+        0x7F, 0x55, 0x55, 0x55, 0x50, 0x55, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00,
+    ],
+    [
         0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45,
         0x54, 0x01, 0x00, 0x54, 0x51, 0x01, 0x00, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x54, 0x01, 0x54, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x45, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x54, 0x41, 0x15, 0x14, 0x50, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x50, 0x51, 0x55, 0x55, 0x01, 0x10, 0x54, 0x51, 0x55, 0x55, 0x55, 0x55, 0x05,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x14, 0x01, 0x54, 0x55, 0x51, 0x55, 0x41, 0x55,
-        0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x55, 0x55, 0x51, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x54, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x04, 0x54, 0x05, 0x04,
-        0x50, 0x55, 0x41, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45,
-        0x55, 0x50, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x54,
-        0x01, 0x54, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x05, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x44, 0x01, 0x54, 0x55, 0x51, 0x55, 0x15, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x45,
+    ],
+    [
+        0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x54, 0x41, 0x15, 0x14, 0x50, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x51,
+        0x55, 0x55,
+    ],
+    [
+        0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x54, 0x01, 0x10, 0x54, 0x51, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x05, 0x00,
+    ],
+    [
+        0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x04, 0x01, 0x54, 0x55, 0x51, 0x55, 0x01, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x45, 0x54, 0x55, 0x55, 0x51, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x54, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x04, 0x54, 0x05, 0x04, 0x50, 0x55, 0x41, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x14, 0x44, 0x05, 0x04, 0x50, 0x55, 0x41, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15,
+        0x44, 0x01, 0x54, 0x55, 0x41, 0x55, 0x15, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x45, 0x15, 0x05, 0x44, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x00, 0x40,
+        0x55, 0x55, 0x15, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x00, 0x00,
+        0x54, 0x55, 0x55, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x51,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00,
+        0x00, 0x40,
+    ],
+    [
+        0x00, 0x04, 0x55, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x54, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x04, 0x00, 0x41,
+        0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x05, 0x54, 0x55, 0x55, 0x55, 0x01, 0x54,
+        0x55, 0x55,
+    ],
+    [
+        0x45, 0x41, 0x55, 0x51, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x51, 0x00, 0x40, 0x55, 0x55, 0x15, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x51, 0x00, 0x00, 0x54, 0x55, 0x55, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 0x00, 0x40, 0x00, 0x04, 0x55, 0x01, 0x00, 0x00,
-        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x45, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x04, 0x00, 0x41, 0x41, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x50, 0x05, 0x54, 0x55, 0x55, 0x55, 0x01, 0x54, 0x55, 0x55, 0x45, 0x41,
-        0x55, 0x51, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA,
+        0x55, 0x55,
+    ],
+    [
         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x10, 0x00, 0x50, 0x55, 0x45, 0x01, 0x00, 0x00, 0x55, 0x55, 0x51, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x40, 0x15, 0x54, 0x55, 0x45, 0x55, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15,
-        0x14, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x45, 0x00, 0x40, 0x44, 0x01, 0x00, 0x54, 0x15, 0x00, 0x00, 0x14, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x04, 0x40, 0x54, 0x45,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x55, 0x55, 0x55,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00,
+    ],
+    [
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x05, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x7F, 0xFF, 0xFD, 0xF7, 0xFF, 0xFD, 0xD7, 0x5F, 0x77, 0xD6, 0xD5, 0xD7, 0x55, 0x10, 0x00,
+        0x50, 0x55, 0x45, 0x01, 0x00, 0x00, 0x55, 0x57, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x15, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x15, 0x54, 0x55, 0x45, 0x55, 0x01,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x57, 0x15, 0x14, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x00, 0x40, 0x44, 0x01, 0x00, 0x54, 0x15, 0x00,
+        0x00, 0x14,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00,
+        0x50, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x55,
+        0x55, 0x55,
+    ],
+    [
         0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x50, 0x10, 0x50, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x50, 0x11, 0x50, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00,
-        0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x54, 0x51,
-        0x55, 0x54, 0x50, 0x55, 0x55, 0x55, 0x15, 0x00, 0xD7, 0x7F, 0x5F, 0x5F, 0x7F, 0xFF, 0x05,
-        0x40, 0xF7, 0x5D, 0xD5, 0x75, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x04,
-        0x00, 0x00, 0x55, 0x57, 0x55, 0xD5, 0xFD, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0xD5, 0x5D, 0x5D, 0x55, 0xD5, 0x75, 0x55,
-        0x55, 0x7D, 0x75, 0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD5, 0x57,
-        0xD5, 0x7F, 0xFF, 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0x5F, 0x55, 0x55, 0x55, 0x5D, 0x55, 0xFF,
-        0xFF, 0x5F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x75, 0x57, 0x55, 0x55, 0x55, 0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xF7, 0xD5, 0xD7,
-        0xD5, 0x5D, 0x5D, 0x75, 0xFD, 0xD7, 0xDD, 0xFF, 0x77, 0x55, 0xFF, 0x55, 0x5F, 0x55, 0x55,
-        0x57, 0x57, 0x75, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xF5, 0xF5, 0x55, 0x55, 0x55, 0x55, 0xF5,
-        0xF5, 0x55, 0x55, 0x55, 0x5D, 0x5D, 0x55, 0x55, 0x5D, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD5,
-        0x55, 0x55, 0x55, 0x55, 0x75, 0x55, 0xA5, 0x55, 0x55, 0x55, 0x69, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xA9, 0x56, 0x96, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF,
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-        0xFF, 0xFF, 0xFF, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x5F, 0x55, 0x55, 0xDF,
-        0xFF, 0x5F, 0x55, 0xF5, 0xF5, 0x55, 0x5F, 0x5F, 0xF5, 0xD7, 0xF5, 0x5F, 0x55, 0x55, 0x55,
-        0xF5, 0x5F, 0x55, 0xD5, 0x55, 0x55, 0x55, 0x69, 0x55, 0x7D, 0x5D, 0xF5, 0x55, 0x5A, 0x55,
-        0x77, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x77, 0x55, 0xAA, 0xAA, 0xAA, 0x55,
-        0x55, 0x55, 0xDF, 0xDF, 0x7F, 0xDF, 0x55, 0x55, 0x55, 0x95, 0x55, 0x55, 0x55, 0x55, 0x95,
-        0x55, 0x55, 0xF5, 0x59, 0x55, 0xA5, 0x55, 0x55, 0x55, 0x55, 0xE9, 0x55, 0xFA, 0xFF, 0xEF,
-        0xFF, 0xFE, 0xFF, 0xFF, 0xDF, 0x55, 0xEF, 0xFF, 0xAF, 0xFB, 0xEF, 0xFB, 0x55, 0x59, 0xA5,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x55, 0x5D, 0x55, 0x55,
-        0x55, 0x66, 0x95, 0x9A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xF5, 0xFF, 0xFF, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0xA9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x95,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0xF9, 0x5F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x50,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0xAA, 0xAA, 0xAA, 0xAA,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x05, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x54, 0x51, 0x55, 0x54,
+        0x50, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00,
+    ],
+    [
+        0x55, 0x55, 0x15, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x40, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xF5, 0x55, 0x55, 0x55, 0x69, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFD, 0x57, 0xD7, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x7D,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0xD5,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0xD5, 0x55, 0x55, 0x55, 0x5D, 0x55, 0xF5, 0x55, 0x55, 0x55, 0x55,
+        0x7D, 0x55, 0x5F, 0x55, 0x75, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55, 0x75, 0x55, 0xF5, 0x5D,
+        0x75, 0x5D,
+    ],
+    [
+        0x55, 0x5D, 0xF5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x77, 0xD5, 0xDF, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0xFD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x55, 0x55,
+        0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD5, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x5D, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x50, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFD, 0xFF, 0xFF,
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5F, 0x55, 0xD5, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55,
+        0x55, 0x55,
+    ],
+    [
         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0x0A, 0xA0, 0xAA, 0xAA, 0xAA, 0x6A, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A,
-        0x81, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0xA9, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A,
         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x95, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xFF, 0xFF, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x0A, 0x00, 0xAA, 0xAA, 0xAA,
+        0x6A, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0x81, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    [
+        0x55, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA9, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA8, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x95, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
         0xAA, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
         0xAA, 0xAA, 0x6A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x40,
-        0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x5F,
+    ],
+    [
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x50, 0x55, 0x55, 0x55, 0x45, 0x45, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x41,
-        0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00,
-        0x00, 0x00, 0x00, 0x50, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x05, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x50, 0x55, 0x55,
-        0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x56, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x05, 0x50, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x40, 0x41, 0x41, 0x55, 0x55, 0x15, 0x55, 0x55,
-        0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x04, 0x14, 0x54, 0x05, 0x51,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x45, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x54, 0x51, 0x55, 0x55, 0x55,
-        0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x5A, 0x55, 0x00, 0x00, 0x00, 0x00,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x56, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA,
-        0x6A, 0x55, 0x55, 0x55, 0x55, 0x01, 0x5D, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x40, 0x55, 0x01, 0x41, 0x55, 0x00, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x15, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01,
-        0x55, 0x05, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x05, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x00, 0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x14, 0x54, 0x55, 0x15, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x15, 0x40, 0x41, 0x51, 0x45, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x15, 0x00, 0x01, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x40, 0x55, 0x55, 0x01, 0x14, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x40, 0x00,
+        0x00, 0x50,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x45, 0x45, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x41, 0x55, 0x54, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x50, 0x04, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x15, 0x15, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x54, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x05,
-        0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x44,
-        0x15, 0x04, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x50, 0x55,
+        0x45, 0x15,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x50, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x15, 0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0x56,
+    ],
+    [
+        0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x05, 0x50,
+        0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x40, 0x41, 0x41, 0x55,
+        0x55, 0x15, 0x55, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x54,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x04, 0x14, 0x54,
+        0x05, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x45,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x54, 0x51, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x00, 0x00, 0x00, 0xF0, 0xAA, 0xAA, 0x5A, 0x55, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x15,
+    ],
+    [
+        0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0x6A, 0x55, 0x55, 0x00, 0x00,
+        0x54, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x51,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05,
-        0x50, 0x55, 0x10, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x55,
+        0x40, 0x55,
+    ],
+    [
+        0x01, 0x41, 0x55, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40,
+        0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x15, 0x00, 0x40, 0x11, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x41, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x15, 0x51, 0x00, 0x10, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01,
-        0x05, 0x10, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x44, 0x15, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x00, 0x05, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 0x40,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x14, 0x40, 0x55, 0x15,
-        0x55, 0x55, 0x01, 0x40, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x05, 0x00, 0x00, 0x40, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x54, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x01,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x05, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x05, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00,
+        0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x14, 0x54,
+        0x55, 0x15,
+    ],
+    [
+        0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x40, 0x41,
+        0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x01, 0x00, 0x54, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00,
+        0x40, 0x05, 0x55, 0x01, 0x14, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x50, 0x04, 0x55,
+        0x45, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x15, 0x00, 0x40, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15,
+        0x44, 0x54, 0x55, 0x55, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x05, 0x00, 0x54, 0x00, 0x54,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00,
+        0x00, 0x05, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x14, 0x00, 0x44,
+        0x11, 0x04, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x05, 0x50, 0x55,
+        0x10, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x40,
+        0x11, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x51, 0x00, 0x10, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x05, 0x10, 0x00, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x41,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x55, 0x15,
+        0x04, 0x11, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x05, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x01, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x04,
+        0x40, 0x55, 0x15, 0x55, 0x55, 0x01, 0x40, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x00, 0x00, 0x00, 0x00, 0x40, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x40, 0x00,
-        0x10, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x41,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01,
-        0x40, 0x45, 0x10, 0x00, 0x10, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x11, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x10, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x41, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x15, 0x54, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x05, 0x40, 0x55, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x15, 0x00, 0x00, 0x00, 0x50, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x40, 0x45,
+        0x10, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x50, 0x11, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15,
+        0x55, 0x55,
+    ],
+    [
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x15, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0x54, 0x55, 0x55, 0x5A, 0x55, 0x55, 0x55, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0xAA, 0xAA, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA,
-        0xA9, 0xAA, 0x69, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0x55, 0x55, 0x55,
-        0x65, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x6A, 0x59, 0x55, 0x55, 0x55, 0xAA, 0x55,
-        0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x41, 0x00,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x54,
+        0x55, 0x55,
+    ],
+    [
+        0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x40,
+        0x55, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
         0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x15, 0x50, 0x55, 0x15, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x50, 0x55, 0x55, 0x55, 0x55, 0x05, 0x54, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x51, 0x55, 0x55, 0x55,
-        0x54, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x01, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x54, 0x15, 0x00, 0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x54,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x40, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x15, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0x54, 0x55, 0x55, 0x5A, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0x55, 0x55,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0xAA, 0xAA, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xA9,
+        0xAA, 0x69,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0x55, 0x55, 0x55, 0x65, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x6A, 0x59, 0x55, 0x55, 0x55, 0xAA, 0x55, 0x55, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x41, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x50, 0x05, 0x00, 0x00,
+        0x00, 0x00,
+    ],
+    [
+        0x40, 0x01, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x50, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x05, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x15,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x51,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x01, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
         0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x10, 0x04, 0x40, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
         0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0x7F, 0x55, 0xFF, 0xFF, 0xFF, 0xFF,
-        0xFF, 0xFF, 0xFF, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-        0xFF, 0xFF, 0xFF, 0x5F, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xAB, 0xAA,
-        0xEA, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x55, 0x55, 0x55, 0x55, 0x6A, 0x55, 0x55, 0x55, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0xAA, 0xAA, 0x56, 0x55,
-        0x5A, 0x55, 0x55, 0x55, 0xAA, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x56, 0x55, 0x55, 0xA9, 0xAA, 0x9A, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA6, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0x6A, 0x95, 0xAA, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x56, 0x56, 0xAA,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x75, 0xFD, 0xFF, 0x7F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xF5, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF,
+    ],
+    [
+        0x6E, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xBA, 0xAA, 0xAA, 0xAA, 0xAA, 0xEA, 0xFA, 0xBF, 0xBF,
+        0x55, 0xAA, 0xAA, 0x56, 0x55, 0x5F, 0x55, 0x55, 0x55, 0xAA, 0x5A, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x55, 0x55, 0xFD, 0xFF, 0xDF, 0xFF,
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xF7,
+    ],
+    [
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF, 0xFF, 0x7F, 0xD5, 0xFF, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x57,
+        0xFF, 0xFF,
+    ],
+    [
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0x7F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF,
+    ],
+    [
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xD7,
+    ],
+    [
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0x5F, 0x55, 0x55, 0xD5, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x55, 0x55, 0x55, 0x55,
+        0x75, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x7D, 0x55, 0x55, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0xD5, 0xFF,
+    ],
+    [
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF, 0x5F, 0x55, 0x57, 0x7F, 0xFD, 0x55, 0xFF, 0x55, 0x55, 0xD5, 0x57, 0x55, 0xFF,
+        0xFF, 0x57,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0x55, 0x57, 0x55,
+        0x55, 0x55,
+    ],
+    [
+        0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
+        0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF,
+    ],
+    [
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF,
+    ],
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xFF,
+        0xFF, 0x57,
+    ],
+    [
+        0xFF, 0xFF, 0x57, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xDF, 0xFF, 0x5F, 0x55, 0xF5, 0xFF, 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0x57, 0x55, 0xFF, 0xFF,
+        0x57, 0x55,
+    ],
+    [
         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0x6A, 0xA6, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0x96, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0x55, 0x55, 0x95, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
-        0x55, 0x55, 0x55, 0x55, 0x65, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x69, 0x55, 0x55, 0x55,
-        0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0x5A, 0x55, 0x56, 0x6A, 0xA9,
-        0x55, 0xAA, 0x55, 0x55, 0x95, 0x56, 0x55, 0xAA, 0xAA, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0x55, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0x9A, 0xAA,
-        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55,
-        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0x56, 0xAA,
-        0xAA, 0x56, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A,
-        0xAA, 0x5A, 0x55, 0xA5, 0xAA, 0xAA, 0xAA, 0x55, 0xAA, 0xAA, 0x56, 0x55, 0xAA, 0xAA, 0x56,
-        0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-        0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-        0xFF, 0xFF, 0x5F,
+        0xAA, 0x5A,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x59, 0x96, 0x55, 0x61, 0xAA, 0xA5, 0x59,
+        0xAA, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x95, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x55, 0x15, 0x00, 0x96, 0x6A, 0x5A, 0x5A, 0x6A, 0xAA, 0x05, 0x40, 0xA6, 0x59, 0x95,
+        0x65, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x55, 0x56,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xA9, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x95, 0x59, 0x59, 0x55, 0x55, 0x65, 0x55, 0x55, 0x69, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0x56, 0x95, 0x6A, 0xAA, 0xAA, 0xAA, 0x55, 0xAA, 0xAA,
+        0x5A, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x55, 0x59, 0x55, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0x65, 0x55, 0x55, 0x5A,
+        0x55, 0x55, 0x55, 0x55, 0xA5, 0x65, 0x56, 0x55, 0x55, 0x55, 0x95, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xA6, 0x96, 0x9A, 0x96, 0x59, 0x59, 0x65, 0xA9, 0x96, 0xAA, 0xAA, 0x66, 0x55, 0xAA, 0x55,
+        0x5A, 0x59, 0x55, 0x5A, 0x56, 0x65, 0x55, 0x55, 0x55, 0x6A, 0xAA, 0xA5, 0xA5, 0x5A, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xA5, 0xAA, 0x5A, 0x55, 0x55, 0x59, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x95, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x55, 0x55, 0x55, 0x65, 0x55, 0xF5, 0x55, 0x55, 0x55, 0x69, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xA5, 0x5A, 0x55, 0x55, 0x9A, 0xAA, 0x5A, 0x55, 0xA5, 0xA5, 0x55,
+        0x5A, 0x5A, 0xA5, 0x96, 0xA5, 0x5A, 0x55, 0x55, 0x55, 0xA5, 0x5A, 0x55, 0x95, 0x55, 0x55,
+        0x55, 0x7D,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x69, 0x59, 0xA5, 0x55, 0x5F, 0x55, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x66, 0x55, 0xFF, 0xFF, 0xFF, 0x55, 0x55, 0x55, 0x9A, 0x9A, 0x6A, 0x9A, 0x55, 0x55,
+        0x55, 0xD5,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x55, 0x55, 0x55, 0xD5, 0x55, 0x55, 0xA5, 0x5D, 0x55, 0xF5, 0x55, 0x55, 0x55, 0x55,
+        0xBD, 0x55, 0xAF, 0xAA, 0xBA, 0xAA, 0xAB, 0xAA, 0xAA, 0x9A, 0x55, 0xBA, 0xAA, 0xFA, 0xAE,
+        0xBA, 0xAE,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x5D, 0xF5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55,
+        0x59, 0x55, 0x55, 0x55, 0x77, 0xD5, 0xDF, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xA5,
+        0xAA, 0xAA,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD5, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0xAD, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x00, 0x00, 0x00, 0xC0, 0xAA, 0xAA, 0x5A, 0x55, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0x55, 0x55, 0x55,
+        0x55, 0x55,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0x6A, 0x55, 0x55, 0x00, 0x00,
+        0x54, 0x59,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xAA, 0xAA, 0x6A, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0x55, 0xAA, 0xAA,
+        0xAA, 0xAA,
+    ],
+    #[cfg(feature = "cjk")]
+    [
+        0xAA, 0xAA, 0xAA, 0xBA, 0xFE, 0xFF, 0xBF, 0xAA, 0xAA, 0xAA, 0xAA, 0x56, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xF5, 0xFF, 0xFF, 0xFF, 0xFF,
+        0xFF, 0xFF,
+    ],
+]);
+
+/// Sorted list of codepoint ranges (inclusive)
+/// that are zero-width but not `Joining_Type=Transparent`
+/// FIXME: can we get better compression?
+static NON_TRANSPARENT_ZERO_WIDTHS: [([u8; 3], [u8; 3]); 53] = [
+    ([0x05, 0x06, 0x00], [0x05, 0x06, 0x00]),
+    ([0x90, 0x08, 0x00], [0x91, 0x08, 0x00]),
+    ([0xE2, 0x08, 0x00], [0xE2, 0x08, 0x00]),
+    ([0xBE, 0x09, 0x00], [0xBE, 0x09, 0x00]),
+    ([0xD7, 0x09, 0x00], [0xD7, 0x09, 0x00]),
+    ([0x3E, 0x0B, 0x00], [0x3E, 0x0B, 0x00]),
+    ([0x57, 0x0B, 0x00], [0x57, 0x0B, 0x00]),
+    ([0xBE, 0x0B, 0x00], [0xBE, 0x0B, 0x00]),
+    ([0xD7, 0x0B, 0x00], [0xD7, 0x0B, 0x00]),
+    ([0xC0, 0x0C, 0x00], [0xC0, 0x0C, 0x00]),
+    ([0xC2, 0x0C, 0x00], [0xC2, 0x0C, 0x00]),
+    ([0xC7, 0x0C, 0x00], [0xC8, 0x0C, 0x00]),
+    ([0xCA, 0x0C, 0x00], [0xCB, 0x0C, 0x00]),
+    ([0xD5, 0x0C, 0x00], [0xD6, 0x0C, 0x00]),
+    ([0x3E, 0x0D, 0x00], [0x3E, 0x0D, 0x00]),
+    ([0x4E, 0x0D, 0x00], [0x4E, 0x0D, 0x00]),
+    ([0x57, 0x0D, 0x00], [0x57, 0x0D, 0x00]),
+    ([0xCF, 0x0D, 0x00], [0xCF, 0x0D, 0x00]),
+    ([0xDF, 0x0D, 0x00], [0xDF, 0x0D, 0x00]),
+    ([0x60, 0x11, 0x00], [0xFF, 0x11, 0x00]),
+    ([0x0E, 0x18, 0x00], [0x0E, 0x18, 0x00]),
+    ([0x35, 0x1B, 0x00], [0x35, 0x1B, 0x00]),
+    ([0x3B, 0x1B, 0x00], [0x3B, 0x1B, 0x00]),
+    ([0x3D, 0x1B, 0x00], [0x3D, 0x1B, 0x00]),
+    ([0x43, 0x1B, 0x00], [0x43, 0x1B, 0x00]),
+    ([0x0C, 0x20, 0x00], [0x0D, 0x20, 0x00]),
+    ([0x65, 0x20, 0x00], [0x69, 0x20, 0x00]),
+    ([0x2E, 0x30, 0x00], [0x2F, 0x30, 0x00]),
+    ([0x64, 0x31, 0x00], [0x64, 0x31, 0x00]),
+    ([0xFA, 0xA8, 0x00], [0xFA, 0xA8, 0x00]),
+    ([0xB0, 0xD7, 0x00], [0xC6, 0xD7, 0x00]),
+    ([0xCB, 0xD7, 0x00], [0xFB, 0xD7, 0x00]),
+    ([0x9E, 0xFF, 0x00], [0xA0, 0xFF, 0x00]),
+    ([0xF0, 0xFF, 0x00], [0xF8, 0xFF, 0x00]),
+    ([0xC2, 0x11, 0x01], [0xC3, 0x11, 0x01]),
+    ([0x3E, 0x13, 0x01], [0x3E, 0x13, 0x01]),
+    ([0x57, 0x13, 0x01], [0x57, 0x13, 0x01]),
+    ([0xB0, 0x14, 0x01], [0xB0, 0x14, 0x01]),
+    ([0xBD, 0x14, 0x01], [0xBD, 0x14, 0x01]),
+    ([0xAF, 0x15, 0x01], [0xAF, 0x15, 0x01]),
+    ([0x30, 0x19, 0x01], [0x30, 0x19, 0x01]),
+    ([0x3F, 0x19, 0x01], [0x3F, 0x19, 0x01]),
+    ([0x41, 0x19, 0x01], [0x41, 0x19, 0x01]),
+    ([0x3A, 0x1A, 0x01], [0x3A, 0x1A, 0x01]),
+    ([0x84, 0x1A, 0x01], [0x89, 0x1A, 0x01]),
+    ([0x46, 0x1D, 0x01], [0x46, 0x1D, 0x01]),
+    ([0x02, 0x1F, 0x01], [0x02, 0x1F, 0x01]),
+    ([0x65, 0xD1, 0x01], [0x65, 0xD1, 0x01]),
+    ([0x6E, 0xD1, 0x01], [0x72, 0xD1, 0x01]),
+    ([0x00, 0x00, 0x0E], [0x00, 0x00, 0x0E]),
+    ([0x02, 0x00, 0x0E], [0x1F, 0x00, 0x0E]),
+    ([0x80, 0x00, 0x0E], [0xFF, 0x00, 0x0E]),
+    ([0xF0, 0x01, 0x0E], [0xFF, 0x0F, 0x0E]),
+];
+
+/// Sorted list of codepoint ranges (inclusive)
+/// that don't affect how the combining solidus applies
+/// (mostly ccc > 1).
+/// FIXME: can we get better compression?
+#[cfg(feature = "cjk")]
+static SOLIDUS_TRANSPARENT: [([u8; 3], [u8; 3]); 198] = [
+    ([0x00, 0x03, 0x00], [0x33, 0x03, 0x00]),
+    ([0x39, 0x03, 0x00], [0x6F, 0x03, 0x00]),
+    ([0x83, 0x04, 0x00], [0x87, 0x04, 0x00]),
+    ([0x91, 0x05, 0x00], [0xBD, 0x05, 0x00]),
+    ([0xBF, 0x05, 0x00], [0xBF, 0x05, 0x00]),
+    ([0xC1, 0x05, 0x00], [0xC2, 0x05, 0x00]),
+    ([0xC4, 0x05, 0x00], [0xC5, 0x05, 0x00]),
+    ([0xC7, 0x05, 0x00], [0xC7, 0x05, 0x00]),
+    ([0x10, 0x06, 0x00], [0x1A, 0x06, 0x00]),
+    ([0x4B, 0x06, 0x00], [0x5F, 0x06, 0x00]),
+    ([0x70, 0x06, 0x00], [0x70, 0x06, 0x00]),
+    ([0xD6, 0x06, 0x00], [0xDC, 0x06, 0x00]),
+    ([0xDF, 0x06, 0x00], [0xE4, 0x06, 0x00]),
+    ([0xE7, 0x06, 0x00], [0xE8, 0x06, 0x00]),
+    ([0xEA, 0x06, 0x00], [0xED, 0x06, 0x00]),
+    ([0x11, 0x07, 0x00], [0x11, 0x07, 0x00]),
+    ([0x30, 0x07, 0x00], [0x4A, 0x07, 0x00]),
+    ([0xEB, 0x07, 0x00], [0xF3, 0x07, 0x00]),
+    ([0xFD, 0x07, 0x00], [0xFD, 0x07, 0x00]),
+    ([0x16, 0x08, 0x00], [0x19, 0x08, 0x00]),
+    ([0x1B, 0x08, 0x00], [0x23, 0x08, 0x00]),
+    ([0x25, 0x08, 0x00], [0x27, 0x08, 0x00]),
+    ([0x29, 0x08, 0x00], [0x2D, 0x08, 0x00]),
+    ([0x59, 0x08, 0x00], [0x5B, 0x08, 0x00]),
+    ([0x98, 0x08, 0x00], [0x9F, 0x08, 0x00]),
+    ([0xCA, 0x08, 0x00], [0xE1, 0x08, 0x00]),
+    ([0xE3, 0x08, 0x00], [0xFF, 0x08, 0x00]),
+    ([0x3C, 0x09, 0x00], [0x3C, 0x09, 0x00]),
+    ([0x4D, 0x09, 0x00], [0x4D, 0x09, 0x00]),
+    ([0x51, 0x09, 0x00], [0x54, 0x09, 0x00]),
+    ([0xBC, 0x09, 0x00], [0xBC, 0x09, 0x00]),
+    ([0xCD, 0x09, 0x00], [0xCD, 0x09, 0x00]),
+    ([0xFE, 0x09, 0x00], [0xFE, 0x09, 0x00]),
+    ([0x3C, 0x0A, 0x00], [0x3C, 0x0A, 0x00]),
+    ([0x4D, 0x0A, 0x00], [0x4D, 0x0A, 0x00]),
+    ([0xBC, 0x0A, 0x00], [0xBC, 0x0A, 0x00]),
+    ([0xCD, 0x0A, 0x00], [0xCD, 0x0A, 0x00]),
+    ([0x3C, 0x0B, 0x00], [0x3C, 0x0B, 0x00]),
+    ([0x4D, 0x0B, 0x00], [0x4D, 0x0B, 0x00]),
+    ([0xCD, 0x0B, 0x00], [0xCD, 0x0B, 0x00]),
+    ([0x3C, 0x0C, 0x00], [0x3C, 0x0C, 0x00]),
+    ([0x4D, 0x0C, 0x00], [0x4D, 0x0C, 0x00]),
+    ([0x55, 0x0C, 0x00], [0x56, 0x0C, 0x00]),
+    ([0xBC, 0x0C, 0x00], [0xBC, 0x0C, 0x00]),
+    ([0xCD, 0x0C, 0x00], [0xCD, 0x0C, 0x00]),
+    ([0x3B, 0x0D, 0x00], [0x3C, 0x0D, 0x00]),
+    ([0x4D, 0x0D, 0x00], [0x4D, 0x0D, 0x00]),
+    ([0xCA, 0x0D, 0x00], [0xCA, 0x0D, 0x00]),
+    ([0x38, 0x0E, 0x00], [0x3A, 0x0E, 0x00]),
+    ([0x48, 0x0E, 0x00], [0x4B, 0x0E, 0x00]),
+    ([0xB8, 0x0E, 0x00], [0xBA, 0x0E, 0x00]),
+    ([0xC8, 0x0E, 0x00], [0xCB, 0x0E, 0x00]),
+    ([0x18, 0x0F, 0x00], [0x19, 0x0F, 0x00]),
+    ([0x35, 0x0F, 0x00], [0x35, 0x0F, 0x00]),
+    ([0x37, 0x0F, 0x00], [0x37, 0x0F, 0x00]),
+    ([0x39, 0x0F, 0x00], [0x39, 0x0F, 0x00]),
+    ([0x71, 0x0F, 0x00], [0x75, 0x0F, 0x00]),
+    ([0x7A, 0x0F, 0x00], [0x7D, 0x0F, 0x00]),
+    ([0x80, 0x0F, 0x00], [0x84, 0x0F, 0x00]),
+    ([0x86, 0x0F, 0x00], [0x87, 0x0F, 0x00]),
+    ([0xC6, 0x0F, 0x00], [0xC6, 0x0F, 0x00]),
+    ([0x37, 0x10, 0x00], [0x37, 0x10, 0x00]),
+    ([0x39, 0x10, 0x00], [0x3A, 0x10, 0x00]),
+    ([0x8D, 0x10, 0x00], [0x8D, 0x10, 0x00]),
+    ([0x5D, 0x13, 0x00], [0x5F, 0x13, 0x00]),
+    ([0x14, 0x17, 0x00], [0x15, 0x17, 0x00]),
+    ([0x34, 0x17, 0x00], [0x34, 0x17, 0x00]),
+    ([0xD2, 0x17, 0x00], [0xD2, 0x17, 0x00]),
+    ([0xDD, 0x17, 0x00], [0xDD, 0x17, 0x00]),
+    ([0xA9, 0x18, 0x00], [0xA9, 0x18, 0x00]),
+    ([0x39, 0x19, 0x00], [0x3B, 0x19, 0x00]),
+    ([0x17, 0x1A, 0x00], [0x18, 0x1A, 0x00]),
+    ([0x60, 0x1A, 0x00], [0x60, 0x1A, 0x00]),
+    ([0x75, 0x1A, 0x00], [0x7C, 0x1A, 0x00]),
+    ([0x7F, 0x1A, 0x00], [0x7F, 0x1A, 0x00]),
+    ([0xB0, 0x1A, 0x00], [0xBD, 0x1A, 0x00]),
+    ([0xBF, 0x1A, 0x00], [0xCE, 0x1A, 0x00]),
+    ([0x34, 0x1B, 0x00], [0x34, 0x1B, 0x00]),
+    ([0x44, 0x1B, 0x00], [0x44, 0x1B, 0x00]),
+    ([0x6B, 0x1B, 0x00], [0x73, 0x1B, 0x00]),
+    ([0xAA, 0x1B, 0x00], [0xAB, 0x1B, 0x00]),
+    ([0xE6, 0x1B, 0x00], [0xE6, 0x1B, 0x00]),
+    ([0xF2, 0x1B, 0x00], [0xF3, 0x1B, 0x00]),
+    ([0x37, 0x1C, 0x00], [0x37, 0x1C, 0x00]),
+    ([0xD0, 0x1C, 0x00], [0xD2, 0x1C, 0x00]),
+    ([0xD5, 0x1C, 0x00], [0xE0, 0x1C, 0x00]),
+    ([0xED, 0x1C, 0x00], [0xED, 0x1C, 0x00]),
+    ([0xF4, 0x1C, 0x00], [0xF4, 0x1C, 0x00]),
+    ([0xF8, 0x1C, 0x00], [0xF9, 0x1C, 0x00]),
+    ([0xC0, 0x1D, 0x00], [0xFF, 0x1D, 0x00]),
+    ([0xD0, 0x20, 0x00], [0xD1, 0x20, 0x00]),
+    ([0xD4, 0x20, 0x00], [0xD7, 0x20, 0x00]),
+    ([0xDB, 0x20, 0x00], [0xDC, 0x20, 0x00]),
+    ([0xE1, 0x20, 0x00], [0xE1, 0x20, 0x00]),
+    ([0xE7, 0x20, 0x00], [0xE9, 0x20, 0x00]),
+    ([0xEC, 0x20, 0x00], [0xF0, 0x20, 0x00]),
+    ([0xEF, 0x2C, 0x00], [0xF1, 0x2C, 0x00]),
+    ([0x7F, 0x2D, 0x00], [0x7F, 0x2D, 0x00]),
+    ([0xE0, 0x2D, 0x00], [0xFF, 0x2D, 0x00]),
+    ([0x2A, 0x30, 0x00], [0x2F, 0x30, 0x00]),
+    ([0x99, 0x30, 0x00], [0x9A, 0x30, 0x00]),
+    ([0x6F, 0xA6, 0x00], [0x6F, 0xA6, 0x00]),
+    ([0x74, 0xA6, 0x00], [0x7D, 0xA6, 0x00]),
+    ([0x9E, 0xA6, 0x00], [0x9F, 0xA6, 0x00]),
+    ([0xF0, 0xA6, 0x00], [0xF1, 0xA6, 0x00]),
+    ([0x06, 0xA8, 0x00], [0x06, 0xA8, 0x00]),
+    ([0x2C, 0xA8, 0x00], [0x2C, 0xA8, 0x00]),
+    ([0xC4, 0xA8, 0x00], [0xC4, 0xA8, 0x00]),
+    ([0xE0, 0xA8, 0x00], [0xF1, 0xA8, 0x00]),
+    ([0x2B, 0xA9, 0x00], [0x2D, 0xA9, 0x00]),
+    ([0x53, 0xA9, 0x00], [0x53, 0xA9, 0x00]),
+    ([0xB3, 0xA9, 0x00], [0xB3, 0xA9, 0x00]),
+    ([0xC0, 0xA9, 0x00], [0xC0, 0xA9, 0x00]),
+    ([0xB0, 0xAA, 0x00], [0xB0, 0xAA, 0x00]),
+    ([0xB2, 0xAA, 0x00], [0xB4, 0xAA, 0x00]),
+    ([0xB7, 0xAA, 0x00], [0xB8, 0xAA, 0x00]),
+    ([0xBE, 0xAA, 0x00], [0xBF, 0xAA, 0x00]),
+    ([0xC1, 0xAA, 0x00], [0xC1, 0xAA, 0x00]),
+    ([0xF6, 0xAA, 0x00], [0xF6, 0xAA, 0x00]),
+    ([0xED, 0xAB, 0x00], [0xED, 0xAB, 0x00]),
+    ([0x1E, 0xFB, 0x00], [0x1E, 0xFB, 0x00]),
+    ([0x20, 0xFE, 0x00], [0x2F, 0xFE, 0x00]),
+    ([0x1B, 0x01, 0x01], [0x1B, 0x01, 0x01]),
+    ([0x6B, 0x01, 0x01], [0x6B, 0x01, 0x01]),
+    ([0xFD, 0x01, 0x01], [0xFD, 0x01, 0x01]),
+    ([0xE0, 0x02, 0x01], [0xE0, 0x02, 0x01]),
+    ([0xF5, 0x02, 0x01], [0xF5, 0x02, 0x01]),
+    ([0x76, 0x03, 0x01], [0x7A, 0x03, 0x01]),
+    ([0xD4, 0x09, 0x01], [0xD4, 0x09, 0x01]),
+    ([0x0D, 0x0A, 0x01], [0x0D, 0x0A, 0x01]),
+    ([0x0F, 0x0A, 0x01], [0x0F, 0x0A, 0x01]),
+    ([0x38, 0x0A, 0x01], [0x38, 0x0A, 0x01]),
+    ([0x3A, 0x0A, 0x01], [0x3A, 0x0A, 0x01]),
+    ([0x3F, 0x0A, 0x01], [0x3F, 0x0A, 0x01]),
+    ([0xE5, 0x0A, 0x01], [0xE6, 0x0A, 0x01]),
+    ([0x24, 0x0D, 0x01], [0x27, 0x0D, 0x01]),
+    ([0x74, 0x0E, 0x01], [0x74, 0x0E, 0x01]),
+    ([0xAB, 0x0E, 0x01], [0xAC, 0x0E, 0x01]),
+    ([0xFD, 0x0E, 0x01], [0xFF, 0x0E, 0x01]),
+    ([0x46, 0x0F, 0x01], [0x50, 0x0F, 0x01]),
+    ([0x82, 0x0F, 0x01], [0x85, 0x0F, 0x01]),
+    ([0x46, 0x10, 0x01], [0x46, 0x10, 0x01]),
+    ([0x70, 0x10, 0x01], [0x70, 0x10, 0x01]),
+    ([0x7F, 0x10, 0x01], [0x7F, 0x10, 0x01]),
+    ([0xB9, 0x10, 0x01], [0xBA, 0x10, 0x01]),
+    ([0x00, 0x11, 0x01], [0x02, 0x11, 0x01]),
+    ([0x33, 0x11, 0x01], [0x34, 0x11, 0x01]),
+    ([0x73, 0x11, 0x01], [0x73, 0x11, 0x01]),
+    ([0xC0, 0x11, 0x01], [0xC0, 0x11, 0x01]),
+    ([0xCA, 0x11, 0x01], [0xCA, 0x11, 0x01]),
+    ([0x35, 0x12, 0x01], [0x36, 0x12, 0x01]),
+    ([0xE9, 0x12, 0x01], [0xEA, 0x12, 0x01]),
+    ([0x3B, 0x13, 0x01], [0x3C, 0x13, 0x01]),
+    ([0x4D, 0x13, 0x01], [0x4D, 0x13, 0x01]),
+    ([0x66, 0x13, 0x01], [0x6C, 0x13, 0x01]),
+    ([0x70, 0x13, 0x01], [0x74, 0x13, 0x01]),
+    ([0x42, 0x14, 0x01], [0x42, 0x14, 0x01]),
+    ([0x46, 0x14, 0x01], [0x46, 0x14, 0x01]),
+    ([0x5E, 0x14, 0x01], [0x5E, 0x14, 0x01]),
+    ([0xC2, 0x14, 0x01], [0xC3, 0x14, 0x01]),
+    ([0xBF, 0x15, 0x01], [0xC0, 0x15, 0x01]),
+    ([0x3F, 0x16, 0x01], [0x3F, 0x16, 0x01]),
+    ([0xB6, 0x16, 0x01], [0xB7, 0x16, 0x01]),
+    ([0x2B, 0x17, 0x01], [0x2B, 0x17, 0x01]),
+    ([0x39, 0x18, 0x01], [0x3A, 0x18, 0x01]),
+    ([0x3D, 0x19, 0x01], [0x3E, 0x19, 0x01]),
+    ([0x43, 0x19, 0x01], [0x43, 0x19, 0x01]),
+    ([0xE0, 0x19, 0x01], [0xE0, 0x19, 0x01]),
+    ([0x34, 0x1A, 0x01], [0x34, 0x1A, 0x01]),
+    ([0x47, 0x1A, 0x01], [0x47, 0x1A, 0x01]),
+    ([0x99, 0x1A, 0x01], [0x99, 0x1A, 0x01]),
+    ([0x3F, 0x1C, 0x01], [0x3F, 0x1C, 0x01]),
+    ([0x42, 0x1D, 0x01], [0x42, 0x1D, 0x01]),
+    ([0x44, 0x1D, 0x01], [0x45, 0x1D, 0x01]),
+    ([0x97, 0x1D, 0x01], [0x97, 0x1D, 0x01]),
+    ([0x41, 0x1F, 0x01], [0x42, 0x1F, 0x01]),
+    ([0x30, 0x6B, 0x01], [0x36, 0x6B, 0x01]),
+    ([0xF0, 0x6F, 0x01], [0xF1, 0x6F, 0x01]),
+    ([0x65, 0xD1, 0x01], [0x66, 0xD1, 0x01]),
+    ([0x6D, 0xD1, 0x01], [0x72, 0xD1, 0x01]),
+    ([0x7B, 0xD1, 0x01], [0x82, 0xD1, 0x01]),
+    ([0x85, 0xD1, 0x01], [0x8B, 0xD1, 0x01]),
+    ([0xAA, 0xD1, 0x01], [0xAD, 0xD1, 0x01]),
+    ([0x42, 0xD2, 0x01], [0x44, 0xD2, 0x01]),
+    ([0x00, 0xE0, 0x01], [0x06, 0xE0, 0x01]),
+    ([0x08, 0xE0, 0x01], [0x18, 0xE0, 0x01]),
+    ([0x1B, 0xE0, 0x01], [0x21, 0xE0, 0x01]),
+    ([0x23, 0xE0, 0x01], [0x24, 0xE0, 0x01]),
+    ([0x26, 0xE0, 0x01], [0x2A, 0xE0, 0x01]),
+    ([0x8F, 0xE0, 0x01], [0x8F, 0xE0, 0x01]),
+    ([0x30, 0xE1, 0x01], [0x36, 0xE1, 0x01]),
+    ([0xAE, 0xE2, 0x01], [0xAE, 0xE2, 0x01]),
+    ([0xEC, 0xE2, 0x01], [0xEF, 0xE2, 0x01]),
+    ([0xEC, 0xE4, 0x01], [0xEF, 0xE4, 0x01]),
+    ([0xD0, 0xE8, 0x01], [0xD6, 0xE8, 0x01]),
+    ([0x44, 0xE9, 0x01], [0x4A, 0xE9, 0x01]),
+    ([0x85, 0xEC, 0x01], [0x85, 0xEC, 0x01]),
+    ([0x15, 0xED, 0x01], [0x15, 0xED, 0x01]),
+];
+
+/// Array of 1024-bit bitmaps. Index into the correct bitmap with the 10 LSB of your codepoint
+/// to get whether it can start an emoji presentation sequence.
+static EMOJI_PRESENTATION_LEAVES: Align128<[[u8; 128]; 7]> = Align128([
+    [
+        0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    ],
+    [
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x80, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x07,
+    ],
+    [
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x78, 0x1F, 0x40, 0x32, 0x21, 0x4D, 0xC4, 0x00, 0x07, 0x05, 0xFF, 0x0F,
+        0x80, 0x69, 0x01, 0x00, 0xC8, 0x00, 0x00, 0xFC, 0x1A, 0x83, 0x0C, 0x03, 0x60, 0x30, 0xC1,
+        0x1A, 0x00, 0x00, 0x06, 0xBF, 0x27, 0x24, 0xBF, 0x54, 0x20, 0x02, 0x01, 0x18, 0x00, 0x90,
+        0x50, 0xB8, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x02, 0x00, 0x01, 0x80,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    ],
+    [
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    ],
+    [
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    ],
+    [
+        0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x20, 0x10, 0xF2, 0x1F, 0x40, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0xC8, 0xCE, 0x80, 0x70, 0x00, 0x00,
+        0x54, 0x7C, 0xF0, 0xFF, 0x01, 0x20, 0xA8, 0x00,
+    ],
+    [
+        0x00, 0x01, 0x20, 0x80, 0x40, 0x00, 0x00, 0x80, 0xC6, 0x63, 0x08, 0x00, 0x00, 0x04, 0x00,
+        0x20, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x09, 0x88, 0x00, 0x08, 0x00, 0x84, 0x70, 0x3C,
+        0x80, 0x2E, 0x00, 0x21, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xFF,
+        0x80, 0xF9, 0x03, 0x80, 0x3C, 0x01, 0x00, 0x20, 0x01, 0x06, 0x10, 0x1C, 0x00, 0x0E, 0x70,
+        0x0A, 0x81, 0x08, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x12, 0x01, 0x00, 0x20, 0x04, 0x16, 0x00, 0xE8,
+        0x00, 0x00, 0x3F, 0x02, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    ],
+]);
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_0: [(u8, u8); 4] = [
+    (0x1A, 0x1B),
+    (0xE9, 0xEC),
+    (0xF0, 0xF0),
+    (0xF3, 0xF3),
+];
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_1: [(u8, u8); 1] = [
+    (0xFD, 0xFE),
+];
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_2: [(u8, u8); 15] = [
+    (0x14, 0x15),
+    (0x48, 0x53),
+    (0x7F, 0x7F),
+    (0x93, 0x93),
+    (0xA1, 0xA1),
+    (0xAA, 0xAB),
+    (0xBD, 0xBE),
+    (0xC4, 0xC5),
+    (0xCE, 0xCE),
+    (0xD4, 0xD4),
+    (0xEA, 0xEA),
+    (0xF2, 0xF3),
+    (0xF5, 0xF5),
+    (0xFA, 0xFA),
+    (0xFD, 0xFD),
+];
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_3: [(u8, u8); 10] = [
+    (0x05, 0x05),
+    (0x0A, 0x0B),
+    (0x28, 0x28),
+    (0x4C, 0x4C),
+    (0x4E, 0x4E),
+    (0x53, 0x55),
+    (0x57, 0x57),
+    (0x95, 0x97),
+    (0xB0, 0xB0),
+    (0xBF, 0xBF),
+];
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_4: [(u8, u8); 3] = [
+    (0x1B, 0x1C),
+    (0x50, 0x50),
+    (0x55, 0x55),
+];
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_5: [(u8, u8); 1] = [
+    (0x04, 0x04),
+];
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_6: [(u8, u8); 13] = [
+    (0x0D, 0x0F),
+    (0x15, 0x15),
+    (0x1C, 0x1C),
+    (0x78, 0x78),
+    (0x93, 0x93),
+    (0xA7, 0xA7),
+    (0xAC, 0xAE),
+    (0xC2, 0xC2),
+    (0xC4, 0xC4),
+    (0xC6, 0xC6),
+    (0xCA, 0xCA),
+    (0xE0, 0xE0),
+    (0xED, 0xED),
+];
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_7: [(u8, u8); 22] = [
+    (0x08, 0x08),
+    (0x15, 0x15),
+    (0x1F, 0x1F),
+    (0x26, 0x26),
+    (0x42, 0x42),
+    (0x46, 0x49),
+    (0x4D, 0x4E),
+    (0x53, 0x53),
+    (0x6A, 0x6A),
+    (0x7D, 0x7D),
+    (0xA3, 0xA3),
+    (0xB0, 0xB0),
+    (0xB3, 0xB3),
+    (0xBB, 0xBB),
+    (0xBF, 0xBF),
+    (0xCB, 0xCB),
+    (0xDA, 0xDA),
+    (0xDF, 0xDF),
+    (0xE4, 0xE6),
+    (0xEA, 0xED),
+    (0xF7, 0xF7),
+    (0xF9, 0xFB),
+];
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_8: [(u8, u8); 4] = [
+    (0x08, 0x08),
+    (0x0D, 0x0D),
+    (0x12, 0x13),
+    (0x50, 0x67),
+];
+
+#[rustfmt::skip]
+static TEXT_PRESENTATION_LEAF_9: [(u8, u8); 10] = [
+    (0x10, 0x10),
+    (0x87, 0x87),
+    (0x8D, 0x8D),
+    (0x91, 0x91),
+    (0x94, 0x94),
+    (0x98, 0x98),
+    (0xAD, 0xAD),
+    (0xB2, 0xB2),
+    (0xB9, 0xBA),
+    (0xBC, 0xBC),
+];
+
+#[rustfmt::skip]
+static EMOJI_MODIFIER_LEAF_0: [(u8, u8); 2] = [
+    (0x1D, 0x1D),
+    (0xF9, 0xF9),
+];
+
+#[rustfmt::skip]
+static EMOJI_MODIFIER_LEAF_1: [(u8, u8); 1] = [
+    (0x0A, 0x0D),
+];
+
+#[rustfmt::skip]
+static EMOJI_MODIFIER_LEAF_2: [(u8, u8); 4] = [
+    (0x85, 0x85),
+    (0xC2, 0xC4),
+    (0xC7, 0xC7),
+    (0xCA, 0xCC),
+];
+
+#[rustfmt::skip]
+static EMOJI_MODIFIER_LEAF_3: [(u8, u8); 9] = [
+    (0x42, 0x43),
+    (0x46, 0x50),
+    (0x66, 0x78),
+    (0x7C, 0x7C),
+    (0x81, 0x83),
+    (0x85, 0x87),
+    (0x8F, 0x8F),
+    (0x91, 0x91),
+    (0xAA, 0xAA),
+];
+
+#[rustfmt::skip]
+static EMOJI_MODIFIER_LEAF_4: [(u8, u8); 4] = [
+    (0x74, 0x75),
+    (0x7A, 0x7A),
+    (0x90, 0x90),
+    (0x95, 0x96),
+];
+
+#[rustfmt::skip]
+static EMOJI_MODIFIER_LEAF_5: [(u8, u8); 6] = [
+    (0x45, 0x47),
+    (0x4B, 0x4F),
+    (0xA3, 0xA3),
+    (0xB4, 0xB6),
+    (0xC0, 0xC0),
+    (0xCC, 0xCC),
+];
+
+#[rustfmt::skip]
+static EMOJI_MODIFIER_LEAF_6: [(u8, u8); 12] = [
+    (0x0C, 0x0C),
+    (0x0F, 0x0F),
+    (0x18, 0x1F),
+    (0x26, 0x26),
+    (0x30, 0x39),
+    (0x3C, 0x3E),
+    (0x77, 0x77),
+    (0xB5, 0xB6),
+    (0xB8, 0xB9),
+    (0xBB, 0xBB),
+    (0xCD, 0xCF),
+    (0xD1, 0xDD),
+];
+
+#[rustfmt::skip]
+static EMOJI_MODIFIER_LEAF_7: [(u8, u8); 2] = [
+    (0xC3, 0xC5),
+    (0xF0, 0xF8),
+];
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    fn str_width_test(s: &str, init: WidthInfo) -> isize {
+        s.chars()
+            .rfold((0, init), |(sum, next_info), c| -> (isize, WidthInfo) {
+                let (add, info) = width_in_str(c, next_info);
+                (sum.checked_add(isize::from(add)).unwrap(), info)
+            })
+            .0
+    }
+
+    #[cfg(feature = "cjk")]
+    fn str_width_test_cjk(s: &str, init: WidthInfo) -> isize {
+        s.chars()
+            .rfold((0, init), |(sum, next_info), c| -> (isize, WidthInfo) {
+                let (add, info) = width_in_str_cjk(c, next_info);
+                (sum.checked_add(isize::from(add)).unwrap(), info)
+            })
+            .0
+    }
+
+    #[test]
+    fn test_normalization() {
+        for &(orig, nfc, nfd, nfkc, nfkd) in &NORMALIZATION_TEST {
+            for init in NORMALIZATION_TEST_WIDTHS {
+                assert_eq!(
+                    str_width_test(orig, init),
+                    str_width_test(nfc, init),
+                    "width of X = {orig:?} differs from toNFC(X) = {nfc:?} with mode {init:X?}",
+                );
+                assert_eq!(
+                    str_width_test(orig, init),
+                    str_width_test(nfd, init),
+                    "width of X = {orig:?} differs from toNFD(X) = {nfd:?} with mode {init:X?}",
+                );
+                assert_eq!(
+                    str_width_test(nfkc, init),
+                    str_width_test(nfkd, init),
+                    "width of toNFKC(X) = {nfkc:?} differs from toNFKD(X) = {nfkd:?} with mode {init:X?}",
+                );
+            }
+
+            #[cfg(feature = "cjk")]
+            for init in NORMALIZATION_TEST_WIDTHS_CJK {
+                assert_eq!(
+                    str_width_test_cjk(orig, init),
+                    str_width_test_cjk(nfc, init),
+                    "CJK width of X = {orig:?} differs from toNFC(X) = {nfc:?} with mode {init:X?}",
+                );
+                assert_eq!(
+                    str_width_test_cjk(orig, init),
+                    str_width_test_cjk(nfd, init),
+                    "CJK width of X = {orig:?} differs from toNFD(X) = {nfd:?} with mode {init:X?}",
+                );
+                assert_eq!(
+                    str_width_test_cjk(nfkc, init),
+                    str_width_test_cjk(nfkd, init),
+                    "CJK width of toNFKC(X) = {nfkc:?} differs from toNFKD(X) = {nfkd:?} with mode {init:?}",
+                );
+            }
+        }
+    }
+
+    static NORMALIZATION_TEST_WIDTHS: [WidthInfo; 38] = [
+        WidthInfo::DEFAULT,
+        WidthInfo::LINE_FEED,
+        WidthInfo::EMOJI_MODIFIER,
+        WidthInfo::REGIONAL_INDICATOR,
+        WidthInfo::SEVERAL_REGIONAL_INDICATOR,
+        WidthInfo::EMOJI_PRESENTATION,
+        WidthInfo::ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::VS16_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::KEYCAP_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::VS16_KEYCAP_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+        WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+        WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+        WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_D1_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_D2_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_D3_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A6_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::VARIATION_SELECTOR_15,
+        WidthInfo::VARIATION_SELECTOR_16,
+        WidthInfo::JOINING_GROUP_ALEF,
+        WidthInfo::HEBREW_LETTER_LAMED,
+        WidthInfo::ZWJ_HEBREW_LETTER_LAMED,
+        WidthInfo::BUGINESE_LETTER_YA,
+        WidthInfo::ZWJ_BUGINESE_LETTER_YA,
+        WidthInfo::BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA,
+        WidthInfo::TIFINAGH_CONSONANT,
+        WidthInfo::ZWJ_TIFINAGH_CONSONANT,
+        WidthInfo::TIFINAGH_JOINER_CONSONANT,
+        WidthInfo::LISU_TONE_LETTER_MYA_NA_JEU,
+        WidthInfo::OLD_TURKIC_LETTER_ORKHON_I,
+        WidthInfo::ZWJ_OLD_TURKIC_LETTER_ORKHON_I,
+        WidthInfo::KHMER_COENG_ELIGIBLE_LETTER,
+    ];
+
+    #[cfg(feature = "cjk")]
+    static NORMALIZATION_TEST_WIDTHS_CJK: [WidthInfo; 39] = [
+        WidthInfo::DEFAULT,
+        WidthInfo::LINE_FEED,
+        WidthInfo::EMOJI_MODIFIER,
+        WidthInfo::REGIONAL_INDICATOR,
+        WidthInfo::SEVERAL_REGIONAL_INDICATOR,
+        WidthInfo::EMOJI_PRESENTATION,
+        WidthInfo::ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::VS16_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::KEYCAP_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::VS16_KEYCAP_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+        WidthInfo::EVEN_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+        WidthInfo::ODD_REGIONAL_INDICATOR_ZWJ_PRESENTATION,
+        WidthInfo::TAG_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_D1_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_D2_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_D3_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A1_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A2_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A3_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A4_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A5_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::TAG_A6_END_ZWJ_EMOJI_PRESENTATION,
+        WidthInfo::VARIATION_SELECTOR_16,
+        WidthInfo::JOINING_GROUP_ALEF,
+        WidthInfo::COMBINING_LONG_SOLIDUS_OVERLAY,
+        WidthInfo::SOLIDUS_OVERLAY_ALEF,
+        WidthInfo::HEBREW_LETTER_LAMED,
+        WidthInfo::ZWJ_HEBREW_LETTER_LAMED,
+        WidthInfo::BUGINESE_LETTER_YA,
+        WidthInfo::ZWJ_BUGINESE_LETTER_YA,
+        WidthInfo::BUGINESE_VOWEL_SIGN_I_ZWJ_LETTER_YA,
+        WidthInfo::TIFINAGH_CONSONANT,
+        WidthInfo::ZWJ_TIFINAGH_CONSONANT,
+        WidthInfo::TIFINAGH_JOINER_CONSONANT,
+        WidthInfo::LISU_TONE_LETTER_MYA_NA_JEU,
+        WidthInfo::OLD_TURKIC_LETTER_ORKHON_I,
+        WidthInfo::ZWJ_OLD_TURKIC_LETTER_ORKHON_I,
+        WidthInfo::KHMER_COENG_ELIGIBLE_LETTER,
+    ];
+
+    #[rustfmt::skip]
+    static NORMALIZATION_TEST: [(&str, &str, &str, &str, &str); 19074] = [
+        (r#"Ḋ"#, r#"Ḋ"#, r#"Ḋ"#, r#"Ḋ"#, r#"Ḋ"#),
+        (r#"Ḍ"#, r#"Ḍ"#, r#"Ḍ"#, r#"Ḍ"#, r#"Ḍ"#),
+        (r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#),
+        (r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#),
+        (r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#),
+        (r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#, r#"Ḍ̇"#),
+        (r#"Ḋ̛"#, r#"Ḋ̛"#, r#"Ḋ̛"#, r#"Ḋ̛"#, r#"Ḋ̛"#),
+        (r#"Ḍ̛"#, r#"Ḍ̛"#, r#"Ḍ̛"#, r#"Ḍ̛"#, r#"Ḍ̛"#),
+        (r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#),
+        (r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#),
+        (r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#),
+        (r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#, r#"Ḍ̛̇"#),
+        (r#"È"#, r#"È"#, r#"È"#, r#"È"#, r#"È"#),
+        (r#"Ē"#, r#"Ē"#, r#"Ē"#, r#"Ē"#, r#"Ē"#),
+        (r#"È"#, r#"È"#, r#"È"#, r#"È"#, r#"È"#),
+        (r#"Ē"#, r#"Ē"#, r#"Ē"#, r#"Ē"#, r#"Ē"#),
+        (r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#),
+        (r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#),
+        (r#"Ḕ̄"#, r#"Ḕ̄"#, r#"Ḕ̄"#, r#"Ḕ̄"#, r#"Ḕ̄"#),
+        (r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#),
+        (r#"È̄"#, r#"È̄"#, r#"È̄"#, r#"È̄"#, r#"È̄"#),
+        (r#"ֱָֹ֑׃ְ֬֟"#, r#"ֱָֹ֑׃ְ֬֟"#, r#"ֱָֹ֑׃ְ֬֟"#, r#"ֱָֹ֑׃ְ֬֟"#, r#"ֱָֹ֑׃ְ֬֟"#),
+        (r#"ְַּ֥֒׀֭ׄ"#, r#"ְַּ֥֒׀֭ׄ"#, r#"ְַּ֥֒׀֭ׄ"#, r#"ְַּ֥֒׀֭ׄ"#, r#"ְַּ֥֒׀֭ׄ"#),
+        (r#"ᄀ각"#, r#"ᄀ각"#, r#"ᄀ각"#, r#"ᄀ각"#, r#"ᄀ각"#),
+        (r#"ᄀ각ᆨ"#, r#"ᄀ각ᆨ"#, r#"ᄀ각ᆨ"#, r#"ᄀ각ᆨ"#, r#"ᄀ각ᆨ"#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#"¨"#, r#"¨"#, r#"¨"#, r#" ̈"#, r#" ̈"#),
+        (r#"ª"#, r#"ª"#, r#"ª"#, r#"a"#, r#"a"#),
+        (r#"¯"#, r#"¯"#, r#"¯"#, r#" ̄"#, r#" ̄"#),
+        (r#"²"#, r#"²"#, r#"²"#, r#"2"#, r#"2"#),
+        (r#"³"#, r#"³"#, r#"³"#, r#"3"#, r#"3"#),
+        (r#"´"#, r#"´"#, r#"´"#, r#" ́"#, r#" ́"#),
+        (r#"µ"#, r#"µ"#, r#"µ"#, r#"μ"#, r#"μ"#),
+        (r#"¸"#, r#"¸"#, r#"¸"#, r#" ̧"#, r#" ̧"#),
+        (r#"¹"#, r#"¹"#, r#"¹"#, r#"1"#, r#"1"#),
+        (r#"º"#, r#"º"#, r#"º"#, r#"o"#, r#"o"#),
+        (r#"¼"#, r#"¼"#, r#"¼"#, r#"1⁄4"#, r#"1⁄4"#),
+        (r#"½"#, r#"½"#, r#"½"#, r#"1⁄2"#, r#"1⁄2"#),
+        (r#"¾"#, r#"¾"#, r#"¾"#, r#"3⁄4"#, r#"3⁄4"#),
+        (r#"À"#, r#"À"#, r#"À"#, r#"À"#, r#"À"#),
+        (r#"Á"#, r#"Á"#, r#"Á"#, r#"Á"#, r#"Á"#),
+        (r#"Â"#, r#"Â"#, r#"Â"#, r#"Â"#, r#"Â"#),
+        (r#"Ã"#, r#"Ã"#, r#"Ã"#, r#"Ã"#, r#"Ã"#),
+        (r#"Ä"#, r#"Ä"#, r#"Ä"#, r#"Ä"#, r#"Ä"#),
+        (r#"Å"#, r#"Å"#, r#"Å"#, r#"Å"#, r#"Å"#),
+        (r#"Ç"#, r#"Ç"#, r#"Ç"#, r#"Ç"#, r#"Ç"#),
+        (r#"È"#, r#"È"#, r#"È"#, r#"È"#, r#"È"#),
+        (r#"É"#, r#"É"#, r#"É"#, r#"É"#, r#"É"#),
+        (r#"Ê"#, r#"Ê"#, r#"Ê"#, r#"Ê"#, r#"Ê"#),
+        (r#"Ë"#, r#"Ë"#, r#"Ë"#, r#"Ë"#, r#"Ë"#),
+        (r#"Ì"#, r#"Ì"#, r#"Ì"#, r#"Ì"#, r#"Ì"#),
+        (r#"Í"#, r#"Í"#, r#"Í"#, r#"Í"#, r#"Í"#),
+        (r#"Î"#, r#"Î"#, r#"Î"#, r#"Î"#, r#"Î"#),
+        (r#"Ï"#, r#"Ï"#, r#"Ï"#, r#"Ï"#, r#"Ï"#),
+        (r#"Ñ"#, r#"Ñ"#, r#"Ñ"#, r#"Ñ"#, r#"Ñ"#),
+        (r#"Ò"#, r#"Ò"#, r#"Ò"#, r#"Ò"#, r#"Ò"#),
+        (r#"Ó"#, r#"Ó"#, r#"Ó"#, r#"Ó"#, r#"Ó"#),
+        (r#"Ô"#, r#"Ô"#, r#"Ô"#, r#"Ô"#, r#"Ô"#),
+        (r#"Õ"#, r#"Õ"#, r#"Õ"#, r#"Õ"#, r#"Õ"#),
+        (r#"Ö"#, r#"Ö"#, r#"Ö"#, r#"Ö"#, r#"Ö"#),
+        (r#"Ù"#, r#"Ù"#, r#"Ù"#, r#"Ù"#, r#"Ù"#),
+        (r#"Ú"#, r#"Ú"#, r#"Ú"#, r#"Ú"#, r#"Ú"#),
+        (r#"Û"#, r#"Û"#, r#"Û"#, r#"Û"#, r#"Û"#),
+        (r#"Ü"#, r#"Ü"#, r#"Ü"#, r#"Ü"#, r#"Ü"#),
+        (r#"Ý"#, r#"Ý"#, r#"Ý"#, r#"Ý"#, r#"Ý"#),
+        (r#"à"#, r#"à"#, r#"à"#, r#"à"#, r#"à"#),
+        (r#"á"#, r#"á"#, r#"á"#, r#"á"#, r#"á"#),
+        (r#"â"#, r#"â"#, r#"â"#, r#"â"#, r#"â"#),
+        (r#"ã"#, r#"ã"#, r#"ã"#, r#"ã"#, r#"ã"#),
+        (r#"ä"#, r#"ä"#, r#"ä"#, r#"ä"#, r#"ä"#),
+        (r#"å"#, r#"å"#, r#"å"#, r#"å"#, r#"å"#),
+        (r#"ç"#, r#"ç"#, r#"ç"#, r#"ç"#, r#"ç"#),
+        (r#"è"#, r#"è"#, r#"è"#, r#"è"#, r#"è"#),
+        (r#"é"#, r#"é"#, r#"é"#, r#"é"#, r#"é"#),
+        (r#"ê"#, r#"ê"#, r#"ê"#, r#"ê"#, r#"ê"#),
+        (r#"ë"#, r#"ë"#, r#"ë"#, r#"ë"#, r#"ë"#),
+        (r#"ì"#, r#"ì"#, r#"ì"#, r#"ì"#, r#"ì"#),
+        (r#"í"#, r#"í"#, r#"í"#, r#"í"#, r#"í"#),
+        (r#"î"#, r#"î"#, r#"î"#, r#"î"#, r#"î"#),
+        (r#"ï"#, r#"ï"#, r#"ï"#, r#"ï"#, r#"ï"#),
+        (r#"ñ"#, r#"ñ"#, r#"ñ"#, r#"ñ"#, r#"ñ"#),
+        (r#"ò"#, r#"ò"#, r#"ò"#, r#"ò"#, r#"ò"#),
+        (r#"ó"#, r#"ó"#, r#"ó"#, r#"ó"#, r#"ó"#),
+        (r#"ô"#, r#"ô"#, r#"ô"#, r#"ô"#, r#"ô"#),
+        (r#"õ"#, r#"õ"#, r#"õ"#, r#"õ"#, r#"õ"#),
+        (r#"ö"#, r#"ö"#, r#"ö"#, r#"ö"#, r#"ö"#),
+        (r#"ù"#, r#"ù"#, r#"ù"#, r#"ù"#, r#"ù"#),
+        (r#"ú"#, r#"ú"#, r#"ú"#, r#"ú"#, r#"ú"#),
+        (r#"û"#, r#"û"#, r#"û"#, r#"û"#, r#"û"#),
+        (r#"ü"#, r#"ü"#, r#"ü"#, r#"ü"#, r#"ü"#),
+        (r#"ý"#, r#"ý"#, r#"ý"#, r#"ý"#, r#"ý"#),
+        (r#"ÿ"#, r#"ÿ"#, r#"ÿ"#, r#"ÿ"#, r#"ÿ"#),
+        (r#"Ā"#, r#"Ā"#, r#"Ā"#, r#"Ā"#, r#"Ā"#),
+        (r#"ā"#, r#"ā"#, r#"ā"#, r#"ā"#, r#"ā"#),
+        (r#"Ă"#, r#"Ă"#, r#"Ă"#, r#"Ă"#, r#"Ă"#),
+        (r#"ă"#, r#"ă"#, r#"ă"#, r#"ă"#, r#"ă"#),
+        (r#"Ą"#, r#"Ą"#, r#"Ą"#, r#"Ą"#, r#"Ą"#),
+        (r#"ą"#, r#"ą"#, r#"ą"#, r#"ą"#, r#"ą"#),
+        (r#"Ć"#, r#"Ć"#, r#"Ć"#, r#"Ć"#, r#"Ć"#),
+        (r#"ć"#, r#"ć"#, r#"ć"#, r#"ć"#, r#"ć"#),
+        (r#"Ĉ"#, r#"Ĉ"#, r#"Ĉ"#, r#"Ĉ"#, r#"Ĉ"#),
+        (r#"ĉ"#, r#"ĉ"#, r#"ĉ"#, r#"ĉ"#, r#"ĉ"#),
+        (r#"Ċ"#, r#"Ċ"#, r#"Ċ"#, r#"Ċ"#, r#"Ċ"#),
+        (r#"ċ"#, r#"ċ"#, r#"ċ"#, r#"ċ"#, r#"ċ"#),
+        (r#"Č"#, r#"Č"#, r#"Č"#, r#"Č"#, r#"Č"#),
+        (r#"č"#, r#"č"#, r#"č"#, r#"č"#, r#"č"#),
+        (r#"Ď"#, r#"Ď"#, r#"Ď"#, r#"Ď"#, r#"Ď"#),
+        (r#"ď"#, r#"ď"#, r#"ď"#, r#"ď"#, r#"ď"#),
+        (r#"Ē"#, r#"Ē"#, r#"Ē"#, r#"Ē"#, r#"Ē"#),
+        (r#"ē"#, r#"ē"#, r#"ē"#, r#"ē"#, r#"ē"#),
+        (r#"Ĕ"#, r#"Ĕ"#, r#"Ĕ"#, r#"Ĕ"#, r#"Ĕ"#),
+        (r#"ĕ"#, r#"ĕ"#, r#"ĕ"#, r#"ĕ"#, r#"ĕ"#),
+        (r#"Ė"#, r#"Ė"#, r#"Ė"#, r#"Ė"#, r#"Ė"#),
+        (r#"ė"#, r#"ė"#, r#"ė"#, r#"ė"#, r#"ė"#),
+        (r#"Ę"#, r#"Ę"#, r#"Ę"#, r#"Ę"#, r#"Ę"#),
+        (r#"ę"#, r#"ę"#, r#"ę"#, r#"ę"#, r#"ę"#),
+        (r#"Ě"#, r#"Ě"#, r#"Ě"#, r#"Ě"#, r#"Ě"#),
+        (r#"ě"#, r#"ě"#, r#"ě"#, r#"ě"#, r#"ě"#),
+        (r#"Ĝ"#, r#"Ĝ"#, r#"Ĝ"#, r#"Ĝ"#, r#"Ĝ"#),
+        (r#"ĝ"#, r#"ĝ"#, r#"ĝ"#, r#"ĝ"#, r#"ĝ"#),
+        (r#"Ğ"#, r#"Ğ"#, r#"Ğ"#, r#"Ğ"#, r#"Ğ"#),
+        (r#"ğ"#, r#"ğ"#, r#"ğ"#, r#"ğ"#, r#"ğ"#),
+        (r#"Ġ"#, r#"Ġ"#, r#"Ġ"#, r#"Ġ"#, r#"Ġ"#),
+        (r#"ġ"#, r#"ġ"#, r#"ġ"#, r#"ġ"#, r#"ġ"#),
+        (r#"Ģ"#, r#"Ģ"#, r#"Ģ"#, r#"Ģ"#, r#"Ģ"#),
+        (r#"ģ"#, r#"ģ"#, r#"ģ"#, r#"ģ"#, r#"ģ"#),
+        (r#"Ĥ"#, r#"Ĥ"#, r#"Ĥ"#, r#"Ĥ"#, r#"Ĥ"#),
+        (r#"ĥ"#, r#"ĥ"#, r#"ĥ"#, r#"ĥ"#, r#"ĥ"#),
+        (r#"Ĩ"#, r#"Ĩ"#, r#"Ĩ"#, r#"Ĩ"#, r#"Ĩ"#),
+        (r#"ĩ"#, r#"ĩ"#, r#"ĩ"#, r#"ĩ"#, r#"ĩ"#),
+        (r#"Ī"#, r#"Ī"#, r#"Ī"#, r#"Ī"#, r#"Ī"#),
+        (r#"ī"#, r#"ī"#, r#"ī"#, r#"ī"#, r#"ī"#),
+        (r#"Ĭ"#, r#"Ĭ"#, r#"Ĭ"#, r#"Ĭ"#, r#"Ĭ"#),
+        (r#"ĭ"#, r#"ĭ"#, r#"ĭ"#, r#"ĭ"#, r#"ĭ"#),
+        (r#"Į"#, r#"Į"#, r#"Į"#, r#"Į"#, r#"Į"#),
+        (r#"į"#, r#"į"#, r#"į"#, r#"į"#, r#"į"#),
+        (r#"İ"#, r#"İ"#, r#"İ"#, r#"İ"#, r#"İ"#),
+        (r#"IJ"#, r#"IJ"#, r#"IJ"#, r#"IJ"#, r#"IJ"#),
+        (r#"ij"#, r#"ij"#, r#"ij"#, r#"ij"#, r#"ij"#),
+        (r#"Ĵ"#, r#"Ĵ"#, r#"Ĵ"#, r#"Ĵ"#, r#"Ĵ"#),
+        (r#"ĵ"#, r#"ĵ"#, r#"ĵ"#, r#"ĵ"#, r#"ĵ"#),
+        (r#"Ķ"#, r#"Ķ"#, r#"Ķ"#, r#"Ķ"#, r#"Ķ"#),
+        (r#"ķ"#, r#"ķ"#, r#"ķ"#, r#"ķ"#, r#"ķ"#),
+        (r#"Ĺ"#, r#"Ĺ"#, r#"Ĺ"#, r#"Ĺ"#, r#"Ĺ"#),
+        (r#"ĺ"#, r#"ĺ"#, r#"ĺ"#, r#"ĺ"#, r#"ĺ"#),
+        (r#"Ļ"#, r#"Ļ"#, r#"Ļ"#, r#"Ļ"#, r#"Ļ"#),
+        (r#"ļ"#, r#"ļ"#, r#"ļ"#, r#"ļ"#, r#"ļ"#),
+        (r#"Ľ"#, r#"Ľ"#, r#"Ľ"#, r#"Ľ"#, r#"Ľ"#),
+        (r#"ľ"#, r#"ľ"#, r#"ľ"#, r#"ľ"#, r#"ľ"#),
+        (r#"Ŀ"#, r#"Ŀ"#, r#"Ŀ"#, r#"L·"#, r#"L·"#),
+        (r#"ŀ"#, r#"ŀ"#, r#"ŀ"#, r#"l·"#, r#"l·"#),
+        (r#"Ń"#, r#"Ń"#, r#"Ń"#, r#"Ń"#, r#"Ń"#),
+        (r#"ń"#, r#"ń"#, r#"ń"#, r#"ń"#, r#"ń"#),
+        (r#"Ņ"#, r#"Ņ"#, r#"Ņ"#, r#"Ņ"#, r#"Ņ"#),
+        (r#"ņ"#, r#"ņ"#, r#"ņ"#, r#"ņ"#, r#"ņ"#),
+        (r#"Ň"#, r#"Ň"#, r#"Ň"#, r#"Ň"#, r#"Ň"#),
+        (r#"ň"#, r#"ň"#, r#"ň"#, r#"ň"#, r#"ň"#),
+        (r#"ʼn"#, r#"ʼn"#, r#"ʼn"#, r#"ʼn"#, r#"ʼn"#),
+        (r#"Ō"#, r#"Ō"#, r#"Ō"#, r#"Ō"#, r#"Ō"#),
+        (r#"ō"#, r#"ō"#, r#"ō"#, r#"ō"#, r#"ō"#),
+        (r#"Ŏ"#, r#"Ŏ"#, r#"Ŏ"#, r#"Ŏ"#, r#"Ŏ"#),
+        (r#"ŏ"#, r#"ŏ"#, r#"ŏ"#, r#"ŏ"#, r#"ŏ"#),
+        (r#"Ő"#, r#"Ő"#, r#"Ő"#, r#"Ő"#, r#"Ő"#),
+        (r#"ő"#, r#"ő"#, r#"ő"#, r#"ő"#, r#"ő"#),
+        (r#"Ŕ"#, r#"Ŕ"#, r#"Ŕ"#, r#"Ŕ"#, r#"Ŕ"#),
+        (r#"ŕ"#, r#"ŕ"#, r#"ŕ"#, r#"ŕ"#, r#"ŕ"#),
+        (r#"Ŗ"#, r#"Ŗ"#, r#"Ŗ"#, r#"Ŗ"#, r#"Ŗ"#),
+        (r#"ŗ"#, r#"ŗ"#, r#"ŗ"#, r#"ŗ"#, r#"ŗ"#),
+        (r#"Ř"#, r#"Ř"#, r#"Ř"#, r#"Ř"#, r#"Ř"#),
+        (r#"ř"#, r#"ř"#, r#"ř"#, r#"ř"#, r#"ř"#),
+        (r#"Ś"#, r#"Ś"#, r#"Ś"#, r#"Ś"#, r#"Ś"#),
+        (r#"ś"#, r#"ś"#, r#"ś"#, r#"ś"#, r#"ś"#),
+        (r#"Ŝ"#, r#"Ŝ"#, r#"Ŝ"#, r#"Ŝ"#, r#"Ŝ"#),
+        (r#"ŝ"#, r#"ŝ"#, r#"ŝ"#, r#"ŝ"#, r#"ŝ"#),
+        (r#"Ş"#, r#"Ş"#, r#"Ş"#, r#"Ş"#, r#"Ş"#),
+        (r#"ş"#, r#"ş"#, r#"ş"#, r#"ş"#, r#"ş"#),
+        (r#"Š"#, r#"Š"#, r#"Š"#, r#"Š"#, r#"Š"#),
+        (r#"š"#, r#"š"#, r#"š"#, r#"š"#, r#"š"#),
+        (r#"Ţ"#, r#"Ţ"#, r#"Ţ"#, r#"Ţ"#, r#"Ţ"#),
+        (r#"ţ"#, r#"ţ"#, r#"ţ"#, r#"ţ"#, r#"ţ"#),
+        (r#"Ť"#, r#"Ť"#, r#"Ť"#, r#"Ť"#, r#"Ť"#),
+        (r#"ť"#, r#"ť"#, r#"ť"#, r#"ť"#, r#"ť"#),
+        (r#"Ũ"#, r#"Ũ"#, r#"Ũ"#, r#"Ũ"#, r#"Ũ"#),
+        (r#"ũ"#, r#"ũ"#, r#"ũ"#, r#"ũ"#, r#"ũ"#),
+        (r#"Ū"#, r#"Ū"#, r#"Ū"#, r#"Ū"#, r#"Ū"#),
+        (r#"ū"#, r#"ū"#, r#"ū"#, r#"ū"#, r#"ū"#),
+        (r#"Ŭ"#, r#"Ŭ"#, r#"Ŭ"#, r#"Ŭ"#, r#"Ŭ"#),
+        (r#"ŭ"#, r#"ŭ"#, r#"ŭ"#, r#"ŭ"#, r#"ŭ"#),
+        (r#"Ů"#, r#"Ů"#, r#"Ů"#, r#"Ů"#, r#"Ů"#),
+        (r#"ů"#, r#"ů"#, r#"ů"#, r#"ů"#, r#"ů"#),
+        (r#"Ű"#, r#"Ű"#, r#"Ű"#, r#"Ű"#, r#"Ű"#),
+        (r#"ű"#, r#"ű"#, r#"ű"#, r#"ű"#, r#"ű"#),
+        (r#"Ų"#, r#"Ų"#, r#"Ų"#, r#"Ų"#, r#"Ų"#),
+        (r#"ų"#, r#"ų"#, r#"ų"#, r#"ų"#, r#"ų"#),
+        (r#"Ŵ"#, r#"Ŵ"#, r#"Ŵ"#, r#"Ŵ"#, r#"Ŵ"#),
+        (r#"ŵ"#, r#"ŵ"#, r#"ŵ"#, r#"ŵ"#, r#"ŵ"#),
+        (r#"Ŷ"#, r#"Ŷ"#, r#"Ŷ"#, r#"Ŷ"#, r#"Ŷ"#),
+        (r#"ŷ"#, r#"ŷ"#, r#"ŷ"#, r#"ŷ"#, r#"ŷ"#),
+        (r#"Ÿ"#, r#"Ÿ"#, r#"Ÿ"#, r#"Ÿ"#, r#"Ÿ"#),
+        (r#"Ź"#, r#"Ź"#, r#"Ź"#, r#"Ź"#, r#"Ź"#),
+        (r#"ź"#, r#"ź"#, r#"ź"#, r#"ź"#, r#"ź"#),
+        (r#"Ż"#, r#"Ż"#, r#"Ż"#, r#"Ż"#, r#"Ż"#),
+        (r#"ż"#, r#"ż"#, r#"ż"#, r#"ż"#, r#"ż"#),
+        (r#"Ž"#, r#"Ž"#, r#"Ž"#, r#"Ž"#, r#"Ž"#),
+        (r#"ž"#, r#"ž"#, r#"ž"#, r#"ž"#, r#"ž"#),
+        (r#"ſ"#, r#"ſ"#, r#"ſ"#, r#"s"#, r#"s"#),
+        (r#"Ơ"#, r#"Ơ"#, r#"Ơ"#, r#"Ơ"#, r#"Ơ"#),
+        (r#"ơ"#, r#"ơ"#, r#"ơ"#, r#"ơ"#, r#"ơ"#),
+        (r#"Ư"#, r#"Ư"#, r#"Ư"#, r#"Ư"#, r#"Ư"#),
+        (r#"ư"#, r#"ư"#, r#"ư"#, r#"ư"#, r#"ư"#),
+        (r#"DŽ"#, r#"DŽ"#, r#"DŽ"#, r#"DŽ"#, r#"DŽ"#),
+        (r#"Dž"#, r#"Dž"#, r#"Dž"#, r#"Dž"#, r#"Dž"#),
+        (r#"dž"#, r#"dž"#, r#"dž"#, r#"dž"#, r#"dž"#),
+        (r#"LJ"#, r#"LJ"#, r#"LJ"#, r#"LJ"#, r#"LJ"#),
+        (r#"Lj"#, r#"Lj"#, r#"Lj"#, r#"Lj"#, r#"Lj"#),
+        (r#"lj"#, r#"lj"#, r#"lj"#, r#"lj"#, r#"lj"#),
+        (r#"NJ"#, r#"NJ"#, r#"NJ"#, r#"NJ"#, r#"NJ"#),
+        (r#"Nj"#, r#"Nj"#, r#"Nj"#, r#"Nj"#, r#"Nj"#),
+        (r#"nj"#, r#"nj"#, r#"nj"#, r#"nj"#, r#"nj"#),
+        (r#"Ǎ"#, r#"Ǎ"#, r#"Ǎ"#, r#"Ǎ"#, r#"Ǎ"#),
+        (r#"ǎ"#, r#"ǎ"#, r#"ǎ"#, r#"ǎ"#, r#"ǎ"#),
+        (r#"Ǐ"#, r#"Ǐ"#, r#"Ǐ"#, r#"Ǐ"#, r#"Ǐ"#),
+        (r#"ǐ"#, r#"ǐ"#, r#"ǐ"#, r#"ǐ"#, r#"ǐ"#),
+        (r#"Ǒ"#, r#"Ǒ"#, r#"Ǒ"#, r#"Ǒ"#, r#"Ǒ"#),
+        (r#"ǒ"#, r#"ǒ"#, r#"ǒ"#, r#"ǒ"#, r#"ǒ"#),
+        (r#"Ǔ"#, r#"Ǔ"#, r#"Ǔ"#, r#"Ǔ"#, r#"Ǔ"#),
+        (r#"ǔ"#, r#"ǔ"#, r#"ǔ"#, r#"ǔ"#, r#"ǔ"#),
+        (r#"Ǖ"#, r#"Ǖ"#, r#"Ǖ"#, r#"Ǖ"#, r#"Ǖ"#),
+        (r#"ǖ"#, r#"ǖ"#, r#"ǖ"#, r#"ǖ"#, r#"ǖ"#),
+        (r#"Ǘ"#, r#"Ǘ"#, r#"Ǘ"#, r#"Ǘ"#, r#"Ǘ"#),
+        (r#"ǘ"#, r#"ǘ"#, r#"ǘ"#, r#"ǘ"#, r#"ǘ"#),
+        (r#"Ǚ"#, r#"Ǚ"#, r#"Ǚ"#, r#"Ǚ"#, r#"Ǚ"#),
+        (r#"ǚ"#, r#"ǚ"#, r#"ǚ"#, r#"ǚ"#, r#"ǚ"#),
+        (r#"Ǜ"#, r#"Ǜ"#, r#"Ǜ"#, r#"Ǜ"#, r#"Ǜ"#),
+        (r#"ǜ"#, r#"ǜ"#, r#"ǜ"#, r#"ǜ"#, r#"ǜ"#),
+        (r#"Ǟ"#, r#"Ǟ"#, r#"Ǟ"#, r#"Ǟ"#, r#"Ǟ"#),
+        (r#"ǟ"#, r#"ǟ"#, r#"ǟ"#, r#"ǟ"#, r#"ǟ"#),
+        (r#"Ǡ"#, r#"Ǡ"#, r#"Ǡ"#, r#"Ǡ"#, r#"Ǡ"#),
+        (r#"ǡ"#, r#"ǡ"#, r#"ǡ"#, r#"ǡ"#, r#"ǡ"#),
+        (r#"Ǣ"#, r#"Ǣ"#, r#"Ǣ"#, r#"Ǣ"#, r#"Ǣ"#),
+        (r#"ǣ"#, r#"ǣ"#, r#"ǣ"#, r#"ǣ"#, r#"ǣ"#),
+        (r#"Ǧ"#, r#"Ǧ"#, r#"Ǧ"#, r#"Ǧ"#, r#"Ǧ"#),
+        (r#"ǧ"#, r#"ǧ"#, r#"ǧ"#, r#"ǧ"#, r#"ǧ"#),
+        (r#"Ǩ"#, r#"Ǩ"#, r#"Ǩ"#, r#"Ǩ"#, r#"Ǩ"#),
+        (r#"ǩ"#, r#"ǩ"#, r#"ǩ"#, r#"ǩ"#, r#"ǩ"#),
+        (r#"Ǫ"#, r#"Ǫ"#, r#"Ǫ"#, r#"Ǫ"#, r#"Ǫ"#),
+        (r#"ǫ"#, r#"ǫ"#, r#"ǫ"#, r#"ǫ"#, r#"ǫ"#),
+        (r#"Ǭ"#, r#"Ǭ"#, r#"Ǭ"#, r#"Ǭ"#, r#"Ǭ"#),
+        (r#"ǭ"#, r#"ǭ"#, r#"ǭ"#, r#"ǭ"#, r#"ǭ"#),
+        (r#"Ǯ"#, r#"Ǯ"#, r#"Ǯ"#, r#"Ǯ"#, r#"Ǯ"#),
+        (r#"ǯ"#, r#"ǯ"#, r#"ǯ"#, r#"ǯ"#, r#"ǯ"#),
+        (r#"ǰ"#, r#"ǰ"#, r#"ǰ"#, r#"ǰ"#, r#"ǰ"#),
+        (r#"DZ"#, r#"DZ"#, r#"DZ"#, r#"DZ"#, r#"DZ"#),
+        (r#"Dz"#, r#"Dz"#, r#"Dz"#, r#"Dz"#, r#"Dz"#),
+        (r#"dz"#, r#"dz"#, r#"dz"#, r#"dz"#, r#"dz"#),
+        (r#"Ǵ"#, r#"Ǵ"#, r#"Ǵ"#, r#"Ǵ"#, r#"Ǵ"#),
+        (r#"ǵ"#, r#"ǵ"#, r#"ǵ"#, r#"ǵ"#, r#"ǵ"#),
+        (r#"Ǹ"#, r#"Ǹ"#, r#"Ǹ"#, r#"Ǹ"#, r#"Ǹ"#),
+        (r#"ǹ"#, r#"ǹ"#, r#"ǹ"#, r#"ǹ"#, r#"ǹ"#),
+        (r#"Ǻ"#, r#"Ǻ"#, r#"Ǻ"#, r#"Ǻ"#, r#"Ǻ"#),
+        (r#"ǻ"#, r#"ǻ"#, r#"ǻ"#, r#"ǻ"#, r#"ǻ"#),
+        (r#"Ǽ"#, r#"Ǽ"#, r#"Ǽ"#, r#"Ǽ"#, r#"Ǽ"#),
+        (r#"ǽ"#, r#"ǽ"#, r#"ǽ"#, r#"ǽ"#, r#"ǽ"#),
+        (r#"Ǿ"#, r#"Ǿ"#, r#"Ǿ"#, r#"Ǿ"#, r#"Ǿ"#),
+        (r#"ǿ"#, r#"ǿ"#, r#"ǿ"#, r#"ǿ"#, r#"ǿ"#),
+        (r#"Ȁ"#, r#"Ȁ"#, r#"Ȁ"#, r#"Ȁ"#, r#"Ȁ"#),
+        (r#"ȁ"#, r#"ȁ"#, r#"ȁ"#, r#"ȁ"#, r#"ȁ"#),
+        (r#"Ȃ"#, r#"Ȃ"#, r#"Ȃ"#, r#"Ȃ"#, r#"Ȃ"#),
+        (r#"ȃ"#, r#"ȃ"#, r#"ȃ"#, r#"ȃ"#, r#"ȃ"#),
+        (r#"Ȅ"#, r#"Ȅ"#, r#"Ȅ"#, r#"Ȅ"#, r#"Ȅ"#),
+        (r#"ȅ"#, r#"ȅ"#, r#"ȅ"#, r#"ȅ"#, r#"ȅ"#),
+        (r#"Ȇ"#, r#"Ȇ"#, r#"Ȇ"#, r#"Ȇ"#, r#"Ȇ"#),
+        (r#"ȇ"#, r#"ȇ"#, r#"ȇ"#, r#"ȇ"#, r#"ȇ"#),
+        (r#"Ȉ"#, r#"Ȉ"#, r#"Ȉ"#, r#"Ȉ"#, r#"Ȉ"#),
+        (r#"ȉ"#, r#"ȉ"#, r#"ȉ"#, r#"ȉ"#, r#"ȉ"#),
+        (r#"Ȋ"#, r#"Ȋ"#, r#"Ȋ"#, r#"Ȋ"#, r#"Ȋ"#),
+        (r#"ȋ"#, r#"ȋ"#, r#"ȋ"#, r#"ȋ"#, r#"ȋ"#),
+        (r#"Ȍ"#, r#"Ȍ"#, r#"Ȍ"#, r#"Ȍ"#, r#"Ȍ"#),
+        (r#"ȍ"#, r#"ȍ"#, r#"ȍ"#, r#"ȍ"#, r#"ȍ"#),
+        (r#"Ȏ"#, r#"Ȏ"#, r#"Ȏ"#, r#"Ȏ"#, r#"Ȏ"#),
+        (r#"ȏ"#, r#"ȏ"#, r#"ȏ"#, r#"ȏ"#, r#"ȏ"#),
+        (r#"Ȑ"#, r#"Ȑ"#, r#"Ȑ"#, r#"Ȑ"#, r#"Ȑ"#),
+        (r#"ȑ"#, r#"ȑ"#, r#"ȑ"#, r#"ȑ"#, r#"ȑ"#),
+        (r#"Ȓ"#, r#"Ȓ"#, r#"Ȓ"#, r#"Ȓ"#, r#"Ȓ"#),
+        (r#"ȓ"#, r#"ȓ"#, r#"ȓ"#, r#"ȓ"#, r#"ȓ"#),
+        (r#"Ȕ"#, r#"Ȕ"#, r#"Ȕ"#, r#"Ȕ"#, r#"Ȕ"#),
+        (r#"ȕ"#, r#"ȕ"#, r#"ȕ"#, r#"ȕ"#, r#"ȕ"#),
+        (r#"Ȗ"#, r#"Ȗ"#, r#"Ȗ"#, r#"Ȗ"#, r#"Ȗ"#),
+        (r#"ȗ"#, r#"ȗ"#, r#"ȗ"#, r#"ȗ"#, r#"ȗ"#),
+        (r#"Ș"#, r#"Ș"#, r#"Ș"#, r#"Ș"#, r#"Ș"#),
+        (r#"ș"#, r#"ș"#, r#"ș"#, r#"ș"#, r#"ș"#),
+        (r#"Ț"#, r#"Ț"#, r#"Ț"#, r#"Ț"#, r#"Ț"#),
+        (r#"ț"#, r#"ț"#, r#"ț"#, r#"ț"#, r#"ț"#),
+        (r#"Ȟ"#, r#"Ȟ"#, r#"Ȟ"#, r#"Ȟ"#, r#"Ȟ"#),
+        (r#"ȟ"#, r#"ȟ"#, r#"ȟ"#, r#"ȟ"#, r#"ȟ"#),
+        (r#"Ȧ"#, r#"Ȧ"#, r#"Ȧ"#, r#"Ȧ"#, r#"Ȧ"#),
+        (r#"ȧ"#, r#"ȧ"#, r#"ȧ"#, r#"ȧ"#, r#"ȧ"#),
+        (r#"Ȩ"#, r#"Ȩ"#, r#"Ȩ"#, r#"Ȩ"#, r#"Ȩ"#),
+        (r#"ȩ"#, r#"ȩ"#, r#"ȩ"#, r#"ȩ"#, r#"ȩ"#),
+        (r#"Ȫ"#, r#"Ȫ"#, r#"Ȫ"#, r#"Ȫ"#, r#"Ȫ"#),
+        (r#"ȫ"#, r#"ȫ"#, r#"ȫ"#, r#"ȫ"#, r#"ȫ"#),
+        (r#"Ȭ"#, r#"Ȭ"#, r#"Ȭ"#, r#"Ȭ"#, r#"Ȭ"#),
+        (r#"ȭ"#, r#"ȭ"#, r#"ȭ"#, r#"ȭ"#, r#"ȭ"#),
+        (r#"Ȯ"#, r#"Ȯ"#, r#"Ȯ"#, r#"Ȯ"#, r#"Ȯ"#),
+        (r#"ȯ"#, r#"ȯ"#, r#"ȯ"#, r#"ȯ"#, r#"ȯ"#),
+        (r#"Ȱ"#, r#"Ȱ"#, r#"Ȱ"#, r#"Ȱ"#, r#"Ȱ"#),
+        (r#"ȱ"#, r#"ȱ"#, r#"ȱ"#, r#"ȱ"#, r#"ȱ"#),
+        (r#"Ȳ"#, r#"Ȳ"#, r#"Ȳ"#, r#"Ȳ"#, r#"Ȳ"#),
+        (r#"ȳ"#, r#"ȳ"#, r#"ȳ"#, r#"ȳ"#, r#"ȳ"#),
+        (r#"ʰ"#, r#"ʰ"#, r#"ʰ"#, r#"h"#, r#"h"#),
+        (r#"ʱ"#, r#"ʱ"#, r#"ʱ"#, r#"ɦ"#, r#"ɦ"#),
+        (r#"ʲ"#, r#"ʲ"#, r#"ʲ"#, r#"j"#, r#"j"#),
+        (r#"ʳ"#, r#"ʳ"#, r#"ʳ"#, r#"r"#, r#"r"#),
+        (r#"ʴ"#, r#"ʴ"#, r#"ʴ"#, r#"ɹ"#, r#"ɹ"#),
+        (r#"ʵ"#, r#"ʵ"#, r#"ʵ"#, r#"ɻ"#, r#"ɻ"#),
+        (r#"ʶ"#, r#"ʶ"#, r#"ʶ"#, r#"ʁ"#, r#"ʁ"#),
+        (r#"ʷ"#, r#"ʷ"#, r#"ʷ"#, r#"w"#, r#"w"#),
+        (r#"ʸ"#, r#"ʸ"#, r#"ʸ"#, r#"y"#, r#"y"#),
+        (r#"˘"#, r#"˘"#, r#"˘"#, r#" ̆"#, r#" ̆"#),
+        (r#"˙"#, r#"˙"#, r#"˙"#, r#" ̇"#, r#" ̇"#),
+        (r#"˚"#, r#"˚"#, r#"˚"#, r#" ̊"#, r#" ̊"#),
+        (r#"˛"#, r#"˛"#, r#"˛"#, r#" ̨"#, r#" ̨"#),
+        (r#"˜"#, r#"˜"#, r#"˜"#, r#" ̃"#, r#" ̃"#),
+        (r#"˝"#, r#"˝"#, r#"˝"#, r#" ̋"#, r#" ̋"#),
+        (r#"ˠ"#, r#"ˠ"#, r#"ˠ"#, r#"ɣ"#, r#"ɣ"#),
+        (r#"ˡ"#, r#"ˡ"#, r#"ˡ"#, r#"l"#, r#"l"#),
+        (r#"ˢ"#, r#"ˢ"#, r#"ˢ"#, r#"s"#, r#"s"#),
+        (r#"ˣ"#, r#"ˣ"#, r#"ˣ"#, r#"x"#, r#"x"#),
+        (r#"ˤ"#, r#"ˤ"#, r#"ˤ"#, r#"ʕ"#, r#"ʕ"#),
+        (r#"̀"#, r#"̀"#, r#"̀"#, r#"̀"#, r#"̀"#),
+        (r#"́"#, r#"́"#, r#"́"#, r#"́"#, r#"́"#),
+        (r#"̓"#, r#"̓"#, r#"̓"#, r#"̓"#, r#"̓"#),
+        (r#"̈́"#, r#"̈́"#, r#"̈́"#, r#"̈́"#, r#"̈́"#),
+        (r#"ʹ"#, r#"ʹ"#, r#"ʹ"#, r#"ʹ"#, r#"ʹ"#),
+        (r#"ͺ"#, r#"ͺ"#, r#"ͺ"#, r#" ͅ"#, r#" ͅ"#),
+        (r#";"#, r#";"#, r#";"#, r#";"#, r#";"#),
+        (r#"΄"#, r#"΄"#, r#"΄"#, r#" ́"#, r#" ́"#),
+        (r#"΅"#, r#"΅"#, r#"΅"#, r#" ̈́"#, r#" ̈́"#),
+        (r#"Ά"#, r#"Ά"#, r#"Ά"#, r#"Ά"#, r#"Ά"#),
+        (r#"·"#, r#"·"#, r#"·"#, r#"·"#, r#"·"#),
+        (r#"Έ"#, r#"Έ"#, r#"Έ"#, r#"Έ"#, r#"Έ"#),
+        (r#"Ή"#, r#"Ή"#, r#"Ή"#, r#"Ή"#, r#"Ή"#),
+        (r#"Ί"#, r#"Ί"#, r#"Ί"#, r#"Ί"#, r#"Ί"#),
+        (r#"Ό"#, r#"Ό"#, r#"Ό"#, r#"Ό"#, r#"Ό"#),
+        (r#"Ύ"#, r#"Ύ"#, r#"Ύ"#, r#"Ύ"#, r#"Ύ"#),
+        (r#"Ώ"#, r#"Ώ"#, r#"Ώ"#, r#"Ώ"#, r#"Ώ"#),
+        (r#"ΐ"#, r#"ΐ"#, r#"ΐ"#, r#"ΐ"#, r#"ΐ"#),
+        (r#"Ϊ"#, r#"Ϊ"#, r#"Ϊ"#, r#"Ϊ"#, r#"Ϊ"#),
+        (r#"Ϋ"#, r#"Ϋ"#, r#"Ϋ"#, r#"Ϋ"#, r#"Ϋ"#),
+        (r#"ά"#, r#"ά"#, r#"ά"#, r#"ά"#, r#"ά"#),
+        (r#"έ"#, r#"έ"#, r#"έ"#, r#"έ"#, r#"έ"#),
+        (r#"ή"#, r#"ή"#, r#"ή"#, r#"ή"#, r#"ή"#),
+        (r#"ί"#, r#"ί"#, r#"ί"#, r#"ί"#, r#"ί"#),
+        (r#"ΰ"#, r#"ΰ"#, r#"ΰ"#, r#"ΰ"#, r#"ΰ"#),
+        (r#"ϊ"#, r#"ϊ"#, r#"ϊ"#, r#"ϊ"#, r#"ϊ"#),
+        (r#"ϋ"#, r#"ϋ"#, r#"ϋ"#, r#"ϋ"#, r#"ϋ"#),
+        (r#"ό"#, r#"ό"#, r#"ό"#, r#"ό"#, r#"ό"#),
+        (r#"ύ"#, r#"ύ"#, r#"ύ"#, r#"ύ"#, r#"ύ"#),
+        (r#"ώ"#, r#"ώ"#, r#"ώ"#, r#"ώ"#, r#"ώ"#),
+        (r#"ϐ"#, r#"ϐ"#, r#"ϐ"#, r#"β"#, r#"β"#),
+        (r#"ϑ"#, r#"ϑ"#, r#"ϑ"#, r#"θ"#, r#"θ"#),
+        (r#"ϒ"#, r#"ϒ"#, r#"ϒ"#, r#"Υ"#, r#"Υ"#),
+        (r#"ϓ"#, r#"ϓ"#, r#"ϓ"#, r#"Ύ"#, r#"Ύ"#),
+        (r#"ϔ"#, r#"ϔ"#, r#"ϔ"#, r#"Ϋ"#, r#"Ϋ"#),
+        (r#"ϕ"#, r#"ϕ"#, r#"ϕ"#, r#"φ"#, r#"φ"#),
+        (r#"ϖ"#, r#"ϖ"#, r#"ϖ"#, r#"π"#, r#"π"#),
+        (r#"ϰ"#, r#"ϰ"#, r#"ϰ"#, r#"κ"#, r#"κ"#),
+        (r#"ϱ"#, r#"ϱ"#, r#"ϱ"#, r#"ρ"#, r#"ρ"#),
+        (r#"ϲ"#, r#"ϲ"#, r#"ϲ"#, r#"ς"#, r#"ς"#),
+        (r#"ϴ"#, r#"ϴ"#, r#"ϴ"#, r#"Θ"#, r#"Θ"#),
+        (r#"ϵ"#, r#"ϵ"#, r#"ϵ"#, r#"ε"#, r#"ε"#),
+        (r#"Ϲ"#, r#"Ϲ"#, r#"Ϲ"#, r#"Σ"#, r#"Σ"#),
+        (r#"Ѐ"#, r#"Ѐ"#, r#"Ѐ"#, r#"Ѐ"#, r#"Ѐ"#),
+        (r#"Ё"#, r#"Ё"#, r#"Ё"#, r#"Ё"#, r#"Ё"#),
+        (r#"Ѓ"#, r#"Ѓ"#, r#"Ѓ"#, r#"Ѓ"#, r#"Ѓ"#),
+        (r#"Ї"#, r#"Ї"#, r#"Ї"#, r#"Ї"#, r#"Ї"#),
+        (r#"Ќ"#, r#"Ќ"#, r#"Ќ"#, r#"Ќ"#, r#"Ќ"#),
+        (r#"Ѝ"#, r#"Ѝ"#, r#"Ѝ"#, r#"Ѝ"#, r#"Ѝ"#),
+        (r#"Ў"#, r#"Ў"#, r#"Ў"#, r#"Ў"#, r#"Ў"#),
+        (r#"Й"#, r#"Й"#, r#"Й"#, r#"Й"#, r#"Й"#),
+        (r#"й"#, r#"й"#, r#"й"#, r#"й"#, r#"й"#),
+        (r#"ѐ"#, r#"ѐ"#, r#"ѐ"#, r#"ѐ"#, r#"ѐ"#),
+        (r#"ё"#, r#"ё"#, r#"ё"#, r#"ё"#, r#"ё"#),
+        (r#"ѓ"#, r#"ѓ"#, r#"ѓ"#, r#"ѓ"#, r#"ѓ"#),
+        (r#"ї"#, r#"ї"#, r#"ї"#, r#"ї"#, r#"ї"#),
+        (r#"ќ"#, r#"ќ"#, r#"ќ"#, r#"ќ"#, r#"ќ"#),
+        (r#"ѝ"#, r#"ѝ"#, r#"ѝ"#, r#"ѝ"#, r#"ѝ"#),
+        (r#"ў"#, r#"ў"#, r#"ў"#, r#"ў"#, r#"ў"#),
+        (r#"Ѷ"#, r#"Ѷ"#, r#"Ѷ"#, r#"Ѷ"#, r#"Ѷ"#),
+        (r#"ѷ"#, r#"ѷ"#, r#"ѷ"#, r#"ѷ"#, r#"ѷ"#),
+        (r#"Ӂ"#, r#"Ӂ"#, r#"Ӂ"#, r#"Ӂ"#, r#"Ӂ"#),
+        (r#"ӂ"#, r#"ӂ"#, r#"ӂ"#, r#"ӂ"#, r#"ӂ"#),
+        (r#"Ӑ"#, r#"Ӑ"#, r#"Ӑ"#, r#"Ӑ"#, r#"Ӑ"#),
+        (r#"ӑ"#, r#"ӑ"#, r#"ӑ"#, r#"ӑ"#, r#"ӑ"#),
+        (r#"Ӓ"#, r#"Ӓ"#, r#"Ӓ"#, r#"Ӓ"#, r#"Ӓ"#),
+        (r#"ӓ"#, r#"ӓ"#, r#"ӓ"#, r#"ӓ"#, r#"ӓ"#),
+        (r#"Ӗ"#, r#"Ӗ"#, r#"Ӗ"#, r#"Ӗ"#, r#"Ӗ"#),
+        (r#"ӗ"#, r#"ӗ"#, r#"ӗ"#, r#"ӗ"#, r#"ӗ"#),
+        (r#"Ӛ"#, r#"Ӛ"#, r#"Ӛ"#, r#"Ӛ"#, r#"Ӛ"#),
+        (r#"ӛ"#, r#"ӛ"#, r#"ӛ"#, r#"ӛ"#, r#"ӛ"#),
+        (r#"Ӝ"#, r#"Ӝ"#, r#"Ӝ"#, r#"Ӝ"#, r#"Ӝ"#),
+        (r#"ӝ"#, r#"ӝ"#, r#"ӝ"#, r#"ӝ"#, r#"ӝ"#),
+        (r#"Ӟ"#, r#"Ӟ"#, r#"Ӟ"#, r#"Ӟ"#, r#"Ӟ"#),
+        (r#"ӟ"#, r#"ӟ"#, r#"ӟ"#, r#"ӟ"#, r#"ӟ"#),
+        (r#"Ӣ"#, r#"Ӣ"#, r#"Ӣ"#, r#"Ӣ"#, r#"Ӣ"#),
+        (r#"ӣ"#, r#"ӣ"#, r#"ӣ"#, r#"ӣ"#, r#"ӣ"#),
+        (r#"Ӥ"#, r#"Ӥ"#, r#"Ӥ"#, r#"Ӥ"#, r#"Ӥ"#),
+        (r#"ӥ"#, r#"ӥ"#, r#"ӥ"#, r#"ӥ"#, r#"ӥ"#),
+        (r#"Ӧ"#, r#"Ӧ"#, r#"Ӧ"#, r#"Ӧ"#, r#"Ӧ"#),
+        (r#"ӧ"#, r#"ӧ"#, r#"ӧ"#, r#"ӧ"#, r#"ӧ"#),
+        (r#"Ӫ"#, r#"Ӫ"#, r#"Ӫ"#, r#"Ӫ"#, r#"Ӫ"#),
+        (r#"ӫ"#, r#"ӫ"#, r#"ӫ"#, r#"ӫ"#, r#"ӫ"#),
+        (r#"Ӭ"#, r#"Ӭ"#, r#"Ӭ"#, r#"Ӭ"#, r#"Ӭ"#),
+        (r#"ӭ"#, r#"ӭ"#, r#"ӭ"#, r#"ӭ"#, r#"ӭ"#),
+        (r#"Ӯ"#, r#"Ӯ"#, r#"Ӯ"#, r#"Ӯ"#, r#"Ӯ"#),
+        (r#"ӯ"#, r#"ӯ"#, r#"ӯ"#, r#"ӯ"#, r#"ӯ"#),
+        (r#"Ӱ"#, r#"Ӱ"#, r#"Ӱ"#, r#"Ӱ"#, r#"Ӱ"#),
+        (r#"ӱ"#, r#"ӱ"#, r#"ӱ"#, r#"ӱ"#, r#"ӱ"#),
+        (r#"Ӳ"#, r#"Ӳ"#, r#"Ӳ"#, r#"Ӳ"#, r#"Ӳ"#),
+        (r#"ӳ"#, r#"ӳ"#, r#"ӳ"#, r#"ӳ"#, r#"ӳ"#),
+        (r#"Ӵ"#, r#"Ӵ"#, r#"Ӵ"#, r#"Ӵ"#, r#"Ӵ"#),
+        (r#"ӵ"#, r#"ӵ"#, r#"ӵ"#, r#"ӵ"#, r#"ӵ"#),
+        (r#"Ӹ"#, r#"Ӹ"#, r#"Ӹ"#, r#"Ӹ"#, r#"Ӹ"#),
+        (r#"ӹ"#, r#"ӹ"#, r#"ӹ"#, r#"ӹ"#, r#"ӹ"#),
+        (r#"և"#, r#"և"#, r#"և"#, r#"եւ"#, r#"եւ"#),
+        (r#"آ"#, r#"آ"#, r#"آ"#, r#"آ"#, r#"آ"#),
+        (r#"أ"#, r#"أ"#, r#"أ"#, r#"أ"#, r#"أ"#),
+        (r#"ؤ"#, r#"ؤ"#, r#"ؤ"#, r#"ؤ"#, r#"ؤ"#),
+        (r#"إ"#, r#"إ"#, r#"إ"#, r#"إ"#, r#"إ"#),
+        (r#"ئ"#, r#"ئ"#, r#"ئ"#, r#"ئ"#, r#"ئ"#),
+        (r#"ٵ"#, r#"ٵ"#, r#"ٵ"#, r#"اٴ"#, r#"اٴ"#),
+        (r#"ٶ"#, r#"ٶ"#, r#"ٶ"#, r#"وٴ"#, r#"وٴ"#),
+        (r#"ٷ"#, r#"ٷ"#, r#"ٷ"#, r#"ۇٴ"#, r#"ۇٴ"#),
+        (r#"ٸ"#, r#"ٸ"#, r#"ٸ"#, r#"يٴ"#, r#"يٴ"#),
+        (r#"ۀ"#, r#"ۀ"#, r#"ۀ"#, r#"ۀ"#, r#"ۀ"#),
+        (r#"ۂ"#, r#"ۂ"#, r#"ۂ"#, r#"ۂ"#, r#"ۂ"#),
+        (r#"ۓ"#, r#"ۓ"#, r#"ۓ"#, r#"ۓ"#, r#"ۓ"#),
+        (r#"ऩ"#, r#"ऩ"#, r#"ऩ"#, r#"ऩ"#, r#"ऩ"#),
+        (r#"ऱ"#, r#"ऱ"#, r#"ऱ"#, r#"ऱ"#, r#"ऱ"#),
+        (r#"ऴ"#, r#"ऴ"#, r#"ऴ"#, r#"ऴ"#, r#"ऴ"#),
+        (r#"क़"#, r#"क़"#, r#"क़"#, r#"क़"#, r#"क़"#),
+        (r#"ख़"#, r#"ख़"#, r#"ख़"#, r#"ख़"#, r#"ख़"#),
+        (r#"ग़"#, r#"ग़"#, r#"ग़"#, r#"ग़"#, r#"ग़"#),
+        (r#"ज़"#, r#"ज़"#, r#"ज़"#, r#"ज़"#, r#"ज़"#),
+        (r#"ड़"#, r#"ड़"#, r#"ड़"#, r#"ड़"#, r#"ड़"#),
+        (r#"ढ़"#, r#"ढ़"#, r#"ढ़"#, r#"ढ़"#, r#"ढ़"#),
+        (r#"फ़"#, r#"फ़"#, r#"फ़"#, r#"फ़"#, r#"फ़"#),
+        (r#"य़"#, r#"य़"#, r#"य़"#, r#"य़"#, r#"य़"#),
+        (r#"ো"#, r#"ো"#, r#"ো"#, r#"ো"#, r#"ো"#),
+        (r#"ৌ"#, r#"ৌ"#, r#"ৌ"#, r#"ৌ"#, r#"ৌ"#),
+        (r#"ড়"#, r#"ড়"#, r#"ড়"#, r#"ড়"#, r#"ড়"#),
+        (r#"ঢ়"#, r#"ঢ়"#, r#"ঢ়"#, r#"ঢ়"#, r#"ঢ়"#),
+        (r#"য়"#, r#"য়"#, r#"য়"#, r#"য়"#, r#"য়"#),
+        (r#"ਲ਼"#, r#"ਲ਼"#, r#"ਲ਼"#, r#"ਲ਼"#, r#"ਲ਼"#),
+        (r#"ਸ਼"#, r#"ਸ਼"#, r#"ਸ਼"#, r#"ਸ਼"#, r#"ਸ਼"#),
+        (r#"ਖ਼"#, r#"ਖ਼"#, r#"ਖ਼"#, r#"ਖ਼"#, r#"ਖ਼"#),
+        (r#"ਗ਼"#, r#"ਗ਼"#, r#"ਗ਼"#, r#"ਗ਼"#, r#"ਗ਼"#),
+        (r#"ਜ਼"#, r#"ਜ਼"#, r#"ਜ਼"#, r#"ਜ਼"#, r#"ਜ਼"#),
+        (r#"ਫ਼"#, r#"ਫ਼"#, r#"ਫ਼"#, r#"ਫ਼"#, r#"ਫ਼"#),
+        (r#"ୈ"#, r#"ୈ"#, r#"ୈ"#, r#"ୈ"#, r#"ୈ"#),
+        (r#"ୋ"#, r#"ୋ"#, r#"ୋ"#, r#"ୋ"#, r#"ୋ"#),
+        (r#"ୌ"#, r#"ୌ"#, r#"ୌ"#, r#"ୌ"#, r#"ୌ"#),
+        (r#"ଡ଼"#, r#"ଡ଼"#, r#"ଡ଼"#, r#"ଡ଼"#, r#"ଡ଼"#),
+        (r#"ଢ଼"#, r#"ଢ଼"#, r#"ଢ଼"#, r#"ଢ଼"#, r#"ଢ଼"#),
+        (r#"ஔ"#, r#"ஔ"#, r#"ஔ"#, r#"ஔ"#, r#"ஔ"#),
+        (r#"ொ"#, r#"ொ"#, r#"ொ"#, r#"ொ"#, r#"ொ"#),
+        (r#"ோ"#, r#"ோ"#, r#"ோ"#, r#"ோ"#, r#"ோ"#),
+        (r#"ௌ"#, r#"ௌ"#, r#"ௌ"#, r#"ௌ"#, r#"ௌ"#),
+        (r#"ై"#, r#"ై"#, r#"ై"#, r#"ై"#, r#"ై"#),
+        (r#"ೀ"#, r#"ೀ"#, r#"ೀ"#, r#"ೀ"#, r#"ೀ"#),
+        (r#"ೇ"#, r#"ೇ"#, r#"ೇ"#, r#"ೇ"#, r#"ೇ"#),
+        (r#"ೈ"#, r#"ೈ"#, r#"ೈ"#, r#"ೈ"#, r#"ೈ"#),
+        (r#"ೊ"#, r#"ೊ"#, r#"ೊ"#, r#"ೊ"#, r#"ೊ"#),
+        (r#"ೋ"#, r#"ೋ"#, r#"ೋ"#, r#"ೋ"#, r#"ೋ"#),
+        (r#"ൊ"#, r#"ൊ"#, r#"ൊ"#, r#"ൊ"#, r#"ൊ"#),
+        (r#"ോ"#, r#"ോ"#, r#"ോ"#, r#"ോ"#, r#"ോ"#),
+        (r#"ൌ"#, r#"ൌ"#, r#"ൌ"#, r#"ൌ"#, r#"ൌ"#),
+        (r#"ේ"#, r#"ේ"#, r#"ේ"#, r#"ේ"#, r#"ේ"#),
+        (r#"ො"#, r#"ො"#, r#"ො"#, r#"ො"#, r#"ො"#),
+        (r#"ෝ"#, r#"ෝ"#, r#"ෝ"#, r#"ෝ"#, r#"ෝ"#),
+        (r#"ෞ"#, r#"ෞ"#, r#"ෞ"#, r#"ෞ"#, r#"ෞ"#),
+        (r#"ำ"#, r#"ำ"#, r#"ำ"#, r#"ํา"#, r#"ํา"#),
+        (r#"ຳ"#, r#"ຳ"#, r#"ຳ"#, r#"ໍາ"#, r#"ໍາ"#),
+        (r#"ໜ"#, r#"ໜ"#, r#"ໜ"#, r#"ຫນ"#, r#"ຫນ"#),
+        (r#"ໝ"#, r#"ໝ"#, r#"ໝ"#, r#"ຫມ"#, r#"ຫມ"#),
+        (r#"༌"#, r#"༌"#, r#"༌"#, r#"་"#, r#"་"#),
+        (r#"གྷ"#, r#"གྷ"#, r#"གྷ"#, r#"གྷ"#, r#"གྷ"#),
+        (r#"ཌྷ"#, r#"ཌྷ"#, r#"ཌྷ"#, r#"ཌྷ"#, r#"ཌྷ"#),
+        (r#"དྷ"#, r#"དྷ"#, r#"དྷ"#, r#"དྷ"#, r#"དྷ"#),
+        (r#"བྷ"#, r#"བྷ"#, r#"བྷ"#, r#"བྷ"#, r#"བྷ"#),
+        (r#"ཛྷ"#, r#"ཛྷ"#, r#"ཛྷ"#, r#"ཛྷ"#, r#"ཛྷ"#),
+        (r#"ཀྵ"#, r#"ཀྵ"#, r#"ཀྵ"#, r#"ཀྵ"#, r#"ཀྵ"#),
+        (r#"ཱི"#, r#"ཱི"#, r#"ཱི"#, r#"ཱི"#, r#"ཱི"#),
+        (r#"ཱུ"#, r#"ཱུ"#, r#"ཱུ"#, r#"ཱུ"#, r#"ཱུ"#),
+        (r#"ྲྀ"#, r#"ྲྀ"#, r#"ྲྀ"#, r#"ྲྀ"#, r#"ྲྀ"#),
+        (r#"ཷ"#, r#"ཷ"#, r#"ཷ"#, r#"ྲཱྀ"#, r#"ྲཱྀ"#),
+        (r#"ླྀ"#, r#"ླྀ"#, r#"ླྀ"#, r#"ླྀ"#, r#"ླྀ"#),
+        (r#"ཹ"#, r#"ཹ"#, r#"ཹ"#, r#"ླཱྀ"#, r#"ླཱྀ"#),
+        (r#"ཱྀ"#, r#"ཱྀ"#, r#"ཱྀ"#, r#"ཱྀ"#, r#"ཱྀ"#),
+        (r#"ྒྷ"#, r#"ྒྷ"#, r#"ྒྷ"#, r#"ྒྷ"#, r#"ྒྷ"#),
+        (r#"ྜྷ"#, r#"ྜྷ"#, r#"ྜྷ"#, r#"ྜྷ"#, r#"ྜྷ"#),
+        (r#"ྡྷ"#, r#"ྡྷ"#, r#"ྡྷ"#, r#"ྡྷ"#, r#"ྡྷ"#),
+        (r#"ྦྷ"#, r#"ྦྷ"#, r#"ྦྷ"#, r#"ྦྷ"#, r#"ྦྷ"#),
+        (r#"ྫྷ"#, r#"ྫྷ"#, r#"ྫྷ"#, r#"ྫྷ"#, r#"ྫྷ"#),
+        (r#"ྐྵ"#, r#"ྐྵ"#, r#"ྐྵ"#, r#"ྐྵ"#, r#"ྐྵ"#),
+        (r#"ဦ"#, r#"ဦ"#, r#"ဦ"#, r#"ဦ"#, r#"ဦ"#),
+        (r#"ჼ"#, r#"ჼ"#, r#"ჼ"#, r#"ნ"#, r#"ნ"#),
+        (r#"ᬆ"#, r#"ᬆ"#, r#"ᬆ"#, r#"ᬆ"#, r#"ᬆ"#),
+        (r#"ᬈ"#, r#"ᬈ"#, r#"ᬈ"#, r#"ᬈ"#, r#"ᬈ"#),
+        (r#"ᬊ"#, r#"ᬊ"#, r#"ᬊ"#, r#"ᬊ"#, r#"ᬊ"#),
+        (r#"ᬌ"#, r#"ᬌ"#, r#"ᬌ"#, r#"ᬌ"#, r#"ᬌ"#),
+        (r#"ᬎ"#, r#"ᬎ"#, r#"ᬎ"#, r#"ᬎ"#, r#"ᬎ"#),
+        (r#"ᬒ"#, r#"ᬒ"#, r#"ᬒ"#, r#"ᬒ"#, r#"ᬒ"#),
+        (r#"ᬻ"#, r#"ᬻ"#, r#"ᬻ"#, r#"ᬻ"#, r#"ᬻ"#),
+        (r#"ᬽ"#, r#"ᬽ"#, r#"ᬽ"#, r#"ᬽ"#, r#"ᬽ"#),
+        (r#"ᭀ"#, r#"ᭀ"#, r#"ᭀ"#, r#"ᭀ"#, r#"ᭀ"#),
+        (r#"ᭁ"#, r#"ᭁ"#, r#"ᭁ"#, r#"ᭁ"#, r#"ᭁ"#),
+        (r#"ᭃ"#, r#"ᭃ"#, r#"ᭃ"#, r#"ᭃ"#, r#"ᭃ"#),
+        (r#"ᴬ"#, r#"ᴬ"#, r#"ᴬ"#, r#"A"#, r#"A"#),
+        (r#"ᴭ"#, r#"ᴭ"#, r#"ᴭ"#, r#"Æ"#, r#"Æ"#),
+        (r#"ᴮ"#, r#"ᴮ"#, r#"ᴮ"#, r#"B"#, r#"B"#),
+        (r#"ᴰ"#, r#"ᴰ"#, r#"ᴰ"#, r#"D"#, r#"D"#),
+        (r#"ᴱ"#, r#"ᴱ"#, r#"ᴱ"#, r#"E"#, r#"E"#),
+        (r#"ᴲ"#, r#"ᴲ"#, r#"ᴲ"#, r#"Ǝ"#, r#"Ǝ"#),
+        (r#"ᴳ"#, r#"ᴳ"#, r#"ᴳ"#, r#"G"#, r#"G"#),
+        (r#"ᴴ"#, r#"ᴴ"#, r#"ᴴ"#, r#"H"#, r#"H"#),
+        (r#"ᴵ"#, r#"ᴵ"#, r#"ᴵ"#, r#"I"#, r#"I"#),
+        (r#"ᴶ"#, r#"ᴶ"#, r#"ᴶ"#, r#"J"#, r#"J"#),
+        (r#"ᴷ"#, r#"ᴷ"#, r#"ᴷ"#, r#"K"#, r#"K"#),
+        (r#"ᴸ"#, r#"ᴸ"#, r#"ᴸ"#, r#"L"#, r#"L"#),
+        (r#"ᴹ"#, r#"ᴹ"#, r#"ᴹ"#, r#"M"#, r#"M"#),
+        (r#"ᴺ"#, r#"ᴺ"#, r#"ᴺ"#, r#"N"#, r#"N"#),
+        (r#"ᴼ"#, r#"ᴼ"#, r#"ᴼ"#, r#"O"#, r#"O"#),
+        (r#"ᴽ"#, r#"ᴽ"#, r#"ᴽ"#, r#"Ȣ"#, r#"Ȣ"#),
+        (r#"ᴾ"#, r#"ᴾ"#, r#"ᴾ"#, r#"P"#, r#"P"#),
+        (r#"ᴿ"#, r#"ᴿ"#, r#"ᴿ"#, r#"R"#, r#"R"#),
+        (r#"ᵀ"#, r#"ᵀ"#, r#"ᵀ"#, r#"T"#, r#"T"#),
+        (r#"ᵁ"#, r#"ᵁ"#, r#"ᵁ"#, r#"U"#, r#"U"#),
+        (r#"ᵂ"#, r#"ᵂ"#, r#"ᵂ"#, r#"W"#, r#"W"#),
+        (r#"ᵃ"#, r#"ᵃ"#, r#"ᵃ"#, r#"a"#, r#"a"#),
+        (r#"ᵄ"#, r#"ᵄ"#, r#"ᵄ"#, r#"ɐ"#, r#"ɐ"#),
+        (r#"ᵅ"#, r#"ᵅ"#, r#"ᵅ"#, r#"ɑ"#, r#"ɑ"#),
+        (r#"ᵆ"#, r#"ᵆ"#, r#"ᵆ"#, r#"ᴂ"#, r#"ᴂ"#),
+        (r#"ᵇ"#, r#"ᵇ"#, r#"ᵇ"#, r#"b"#, r#"b"#),
+        (r#"ᵈ"#, r#"ᵈ"#, r#"ᵈ"#, r#"d"#, r#"d"#),
+        (r#"ᵉ"#, r#"ᵉ"#, r#"ᵉ"#, r#"e"#, r#"e"#),
+        (r#"ᵊ"#, r#"ᵊ"#, r#"ᵊ"#, r#"ə"#, r#"ə"#),
+        (r#"ᵋ"#, r#"ᵋ"#, r#"ᵋ"#, r#"ɛ"#, r#"ɛ"#),
+        (r#"ᵌ"#, r#"ᵌ"#, r#"ᵌ"#, r#"ɜ"#, r#"ɜ"#),
+        (r#"ᵍ"#, r#"ᵍ"#, r#"ᵍ"#, r#"g"#, r#"g"#),
+        (r#"ᵏ"#, r#"ᵏ"#, r#"ᵏ"#, r#"k"#, r#"k"#),
+        (r#"ᵐ"#, r#"ᵐ"#, r#"ᵐ"#, r#"m"#, r#"m"#),
+        (r#"ᵑ"#, r#"ᵑ"#, r#"ᵑ"#, r#"ŋ"#, r#"ŋ"#),
+        (r#"ᵒ"#, r#"ᵒ"#, r#"ᵒ"#, r#"o"#, r#"o"#),
+        (r#"ᵓ"#, r#"ᵓ"#, r#"ᵓ"#, r#"ɔ"#, r#"ɔ"#),
+        (r#"ᵔ"#, r#"ᵔ"#, r#"ᵔ"#, r#"ᴖ"#, r#"ᴖ"#),
+        (r#"ᵕ"#, r#"ᵕ"#, r#"ᵕ"#, r#"ᴗ"#, r#"ᴗ"#),
+        (r#"ᵖ"#, r#"ᵖ"#, r#"ᵖ"#, r#"p"#, r#"p"#),
+        (r#"ᵗ"#, r#"ᵗ"#, r#"ᵗ"#, r#"t"#, r#"t"#),
+        (r#"ᵘ"#, r#"ᵘ"#, r#"ᵘ"#, r#"u"#, r#"u"#),
+        (r#"ᵙ"#, r#"ᵙ"#, r#"ᵙ"#, r#"ᴝ"#, r#"ᴝ"#),
+        (r#"ᵚ"#, r#"ᵚ"#, r#"ᵚ"#, r#"ɯ"#, r#"ɯ"#),
+        (r#"ᵛ"#, r#"ᵛ"#, r#"ᵛ"#, r#"v"#, r#"v"#),
+        (r#"ᵜ"#, r#"ᵜ"#, r#"ᵜ"#, r#"ᴥ"#, r#"ᴥ"#),
+        (r#"ᵝ"#, r#"ᵝ"#, r#"ᵝ"#, r#"β"#, r#"β"#),
+        (r#"ᵞ"#, r#"ᵞ"#, r#"ᵞ"#, r#"γ"#, r#"γ"#),
+        (r#"ᵟ"#, r#"ᵟ"#, r#"ᵟ"#, r#"δ"#, r#"δ"#),
+        (r#"ᵠ"#, r#"ᵠ"#, r#"ᵠ"#, r#"φ"#, r#"φ"#),
+        (r#"ᵡ"#, r#"ᵡ"#, r#"ᵡ"#, r#"χ"#, r#"χ"#),
+        (r#"ᵢ"#, r#"ᵢ"#, r#"ᵢ"#, r#"i"#, r#"i"#),
+        (r#"ᵣ"#, r#"ᵣ"#, r#"ᵣ"#, r#"r"#, r#"r"#),
+        (r#"ᵤ"#, r#"ᵤ"#, r#"ᵤ"#, r#"u"#, r#"u"#),
+        (r#"ᵥ"#, r#"ᵥ"#, r#"ᵥ"#, r#"v"#, r#"v"#),
+        (r#"ᵦ"#, r#"ᵦ"#, r#"ᵦ"#, r#"β"#, r#"β"#),
+        (r#"ᵧ"#, r#"ᵧ"#, r#"ᵧ"#, r#"γ"#, r#"γ"#),
+        (r#"ᵨ"#, r#"ᵨ"#, r#"ᵨ"#, r#"ρ"#, r#"ρ"#),
+        (r#"ᵩ"#, r#"ᵩ"#, r#"ᵩ"#, r#"φ"#, r#"φ"#),
+        (r#"ᵪ"#, r#"ᵪ"#, r#"ᵪ"#, r#"χ"#, r#"χ"#),
+        (r#"ᵸ"#, r#"ᵸ"#, r#"ᵸ"#, r#"н"#, r#"н"#),
+        (r#"ᶛ"#, r#"ᶛ"#, r#"ᶛ"#, r#"ɒ"#, r#"ɒ"#),
+        (r#"ᶜ"#, r#"ᶜ"#, r#"ᶜ"#, r#"c"#, r#"c"#),
+        (r#"ᶝ"#, r#"ᶝ"#, r#"ᶝ"#, r#"ɕ"#, r#"ɕ"#),
+        (r#"ᶞ"#, r#"ᶞ"#, r#"ᶞ"#, r#"ð"#, r#"ð"#),
+        (r#"ᶟ"#, r#"ᶟ"#, r#"ᶟ"#, r#"ɜ"#, r#"ɜ"#),
+        (r#"ᶠ"#, r#"ᶠ"#, r#"ᶠ"#, r#"f"#, r#"f"#),
+        (r#"ᶡ"#, r#"ᶡ"#, r#"ᶡ"#, r#"ɟ"#, r#"ɟ"#),
+        (r#"ᶢ"#, r#"ᶢ"#, r#"ᶢ"#, r#"ɡ"#, r#"ɡ"#),
+        (r#"ᶣ"#, r#"ᶣ"#, r#"ᶣ"#, r#"ɥ"#, r#"ɥ"#),
+        (r#"ᶤ"#, r#"ᶤ"#, r#"ᶤ"#, r#"ɨ"#, r#"ɨ"#),
+        (r#"ᶥ"#, r#"ᶥ"#, r#"ᶥ"#, r#"ɩ"#, r#"ɩ"#),
+        (r#"ᶦ"#, r#"ᶦ"#, r#"ᶦ"#, r#"ɪ"#, r#"ɪ"#),
+        (r#"ᶧ"#, r#"ᶧ"#, r#"ᶧ"#, r#"ᵻ"#, r#"ᵻ"#),
+        (r#"ᶨ"#, r#"ᶨ"#, r#"ᶨ"#, r#"ʝ"#, r#"ʝ"#),
+        (r#"ᶩ"#, r#"ᶩ"#, r#"ᶩ"#, r#"ɭ"#, r#"ɭ"#),
+        (r#"ᶪ"#, r#"ᶪ"#, r#"ᶪ"#, r#"ᶅ"#, r#"ᶅ"#),
+        (r#"ᶫ"#, r#"ᶫ"#, r#"ᶫ"#, r#"ʟ"#, r#"ʟ"#),
+        (r#"ᶬ"#, r#"ᶬ"#, r#"ᶬ"#, r#"ɱ"#, r#"ɱ"#),
+        (r#"ᶭ"#, r#"ᶭ"#, r#"ᶭ"#, r#"ɰ"#, r#"ɰ"#),
+        (r#"ᶮ"#, r#"ᶮ"#, r#"ᶮ"#, r#"ɲ"#, r#"ɲ"#),
+        (r#"ᶯ"#, r#"ᶯ"#, r#"ᶯ"#, r#"ɳ"#, r#"ɳ"#),
+        (r#"ᶰ"#, r#"ᶰ"#, r#"ᶰ"#, r#"ɴ"#, r#"ɴ"#),
+        (r#"ᶱ"#, r#"ᶱ"#, r#"ᶱ"#, r#"ɵ"#, r#"ɵ"#),
+        (r#"ᶲ"#, r#"ᶲ"#, r#"ᶲ"#, r#"ɸ"#, r#"ɸ"#),
+        (r#"ᶳ"#, r#"ᶳ"#, r#"ᶳ"#, r#"ʂ"#, r#"ʂ"#),
+        (r#"ᶴ"#, r#"ᶴ"#, r#"ᶴ"#, r#"ʃ"#, r#"ʃ"#),
+        (r#"ᶵ"#, r#"ᶵ"#, r#"ᶵ"#, r#"ƫ"#, r#"ƫ"#),
+        (r#"ᶶ"#, r#"ᶶ"#, r#"ᶶ"#, r#"ʉ"#, r#"ʉ"#),
+        (r#"ᶷ"#, r#"ᶷ"#, r#"ᶷ"#, r#"ʊ"#, r#"ʊ"#),
+        (r#"ᶸ"#, r#"ᶸ"#, r#"ᶸ"#, r#"ᴜ"#, r#"ᴜ"#),
+        (r#"ᶹ"#, r#"ᶹ"#, r#"ᶹ"#, r#"ʋ"#, r#"ʋ"#),
+        (r#"ᶺ"#, r#"ᶺ"#, r#"ᶺ"#, r#"ʌ"#, r#"ʌ"#),
+        (r#"ᶻ"#, r#"ᶻ"#, r#"ᶻ"#, r#"z"#, r#"z"#),
+        (r#"ᶼ"#, r#"ᶼ"#, r#"ᶼ"#, r#"ʐ"#, r#"ʐ"#),
+        (r#"ᶽ"#, r#"ᶽ"#, r#"ᶽ"#, r#"ʑ"#, r#"ʑ"#),
+        (r#"ᶾ"#, r#"ᶾ"#, r#"ᶾ"#, r#"ʒ"#, r#"ʒ"#),
+        (r#"ᶿ"#, r#"ᶿ"#, r#"ᶿ"#, r#"θ"#, r#"θ"#),
+        (r#"Ḁ"#, r#"Ḁ"#, r#"Ḁ"#, r#"Ḁ"#, r#"Ḁ"#),
+        (r#"ḁ"#, r#"ḁ"#, r#"ḁ"#, r#"ḁ"#, r#"ḁ"#),
+        (r#"Ḃ"#, r#"Ḃ"#, r#"Ḃ"#, r#"Ḃ"#, r#"Ḃ"#),
+        (r#"ḃ"#, r#"ḃ"#, r#"ḃ"#, r#"ḃ"#, r#"ḃ"#),
+        (r#"Ḅ"#, r#"Ḅ"#, r#"Ḅ"#, r#"Ḅ"#, r#"Ḅ"#),
+        (r#"ḅ"#, r#"ḅ"#, r#"ḅ"#, r#"ḅ"#, r#"ḅ"#),
+        (r#"Ḇ"#, r#"Ḇ"#, r#"Ḇ"#, r#"Ḇ"#, r#"Ḇ"#),
+        (r#"ḇ"#, r#"ḇ"#, r#"ḇ"#, r#"ḇ"#, r#"ḇ"#),
+        (r#"Ḉ"#, r#"Ḉ"#, r#"Ḉ"#, r#"Ḉ"#, r#"Ḉ"#),
+        (r#"ḉ"#, r#"ḉ"#, r#"ḉ"#, r#"ḉ"#, r#"ḉ"#),
+        (r#"Ḋ"#, r#"Ḋ"#, r#"Ḋ"#, r#"Ḋ"#, r#"Ḋ"#),
+        (r#"ḋ"#, r#"ḋ"#, r#"ḋ"#, r#"ḋ"#, r#"ḋ"#),
+        (r#"Ḍ"#, r#"Ḍ"#, r#"Ḍ"#, r#"Ḍ"#, r#"Ḍ"#),
+        (r#"ḍ"#, r#"ḍ"#, r#"ḍ"#, r#"ḍ"#, r#"ḍ"#),
+        (r#"Ḏ"#, r#"Ḏ"#, r#"Ḏ"#, r#"Ḏ"#, r#"Ḏ"#),
+        (r#"ḏ"#, r#"ḏ"#, r#"ḏ"#, r#"ḏ"#, r#"ḏ"#),
+        (r#"Ḑ"#, r#"Ḑ"#, r#"Ḑ"#, r#"Ḑ"#, r#"Ḑ"#),
+        (r#"ḑ"#, r#"ḑ"#, r#"ḑ"#, r#"ḑ"#, r#"ḑ"#),
+        (r#"Ḓ"#, r#"Ḓ"#, r#"Ḓ"#, r#"Ḓ"#, r#"Ḓ"#),
+        (r#"ḓ"#, r#"ḓ"#, r#"ḓ"#, r#"ḓ"#, r#"ḓ"#),
+        (r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#, r#"Ḕ"#),
+        (r#"ḕ"#, r#"ḕ"#, r#"ḕ"#, r#"ḕ"#, r#"ḕ"#),
+        (r#"Ḗ"#, r#"Ḗ"#, r#"Ḗ"#, r#"Ḗ"#, r#"Ḗ"#),
+        (r#"ḗ"#, r#"ḗ"#, r#"ḗ"#, r#"ḗ"#, r#"ḗ"#),
+        (r#"Ḙ"#, r#"Ḙ"#, r#"Ḙ"#, r#"Ḙ"#, r#"Ḙ"#),
+        (r#"ḙ"#, r#"ḙ"#, r#"ḙ"#, r#"ḙ"#, r#"ḙ"#),
+        (r#"Ḛ"#, r#"Ḛ"#, r#"Ḛ"#, r#"Ḛ"#, r#"Ḛ"#),
+        (r#"ḛ"#, r#"ḛ"#, r#"ḛ"#, r#"ḛ"#, r#"ḛ"#),
+        (r#"Ḝ"#, r#"Ḝ"#, r#"Ḝ"#, r#"Ḝ"#, r#"Ḝ"#),
+        (r#"ḝ"#, r#"ḝ"#, r#"ḝ"#, r#"ḝ"#, r#"ḝ"#),
+        (r#"Ḟ"#, r#"Ḟ"#, r#"Ḟ"#, r#"Ḟ"#, r#"Ḟ"#),
+        (r#"ḟ"#, r#"ḟ"#, r#"ḟ"#, r#"ḟ"#, r#"ḟ"#),
+        (r#"Ḡ"#, r#"Ḡ"#, r#"Ḡ"#, r#"Ḡ"#, r#"Ḡ"#),
+        (r#"ḡ"#, r#"ḡ"#, r#"ḡ"#, r#"ḡ"#, r#"ḡ"#),
+        (r#"Ḣ"#, r#"Ḣ"#, r#"Ḣ"#, r#"Ḣ"#, r#"Ḣ"#),
+        (r#"ḣ"#, r#"ḣ"#, r#"ḣ"#, r#"ḣ"#, r#"ḣ"#),
+        (r#"Ḥ"#, r#"Ḥ"#, r#"Ḥ"#, r#"Ḥ"#, r#"Ḥ"#),
+        (r#"ḥ"#, r#"ḥ"#, r#"ḥ"#, r#"ḥ"#, r#"ḥ"#),
+        (r#"Ḧ"#, r#"Ḧ"#, r#"Ḧ"#, r#"Ḧ"#, r#"Ḧ"#),
+        (r#"ḧ"#, r#"ḧ"#, r#"ḧ"#, r#"ḧ"#, r#"ḧ"#),
+        (r#"Ḩ"#, r#"Ḩ"#, r#"Ḩ"#, r#"Ḩ"#, r#"Ḩ"#),
+        (r#"ḩ"#, r#"ḩ"#, r#"ḩ"#, r#"ḩ"#, r#"ḩ"#),
+        (r#"Ḫ"#, r#"Ḫ"#, r#"Ḫ"#, r#"Ḫ"#, r#"Ḫ"#),
+        (r#"ḫ"#, r#"ḫ"#, r#"ḫ"#, r#"ḫ"#, r#"ḫ"#),
+        (r#"Ḭ"#, r#"Ḭ"#, r#"Ḭ"#, r#"Ḭ"#, r#"Ḭ"#),
+        (r#"ḭ"#, r#"ḭ"#, r#"ḭ"#, r#"ḭ"#, r#"ḭ"#),
+        (r#"Ḯ"#, r#"Ḯ"#, r#"Ḯ"#, r#"Ḯ"#, r#"Ḯ"#),
+        (r#"ḯ"#, r#"ḯ"#, r#"ḯ"#, r#"ḯ"#, r#"ḯ"#),
+        (r#"Ḱ"#, r#"Ḱ"#, r#"Ḱ"#, r#"Ḱ"#, r#"Ḱ"#),
+        (r#"ḱ"#, r#"ḱ"#, r#"ḱ"#, r#"ḱ"#, r#"ḱ"#),
+        (r#"Ḳ"#, r#"Ḳ"#, r#"Ḳ"#, r#"Ḳ"#, r#"Ḳ"#),
+        (r#"ḳ"#, r#"ḳ"#, r#"ḳ"#, r#"ḳ"#, r#"ḳ"#),
+        (r#"Ḵ"#, r#"Ḵ"#, r#"Ḵ"#, r#"Ḵ"#, r#"Ḵ"#),
+        (r#"ḵ"#, r#"ḵ"#, r#"ḵ"#, r#"ḵ"#, r#"ḵ"#),
+        (r#"Ḷ"#, r#"Ḷ"#, r#"Ḷ"#, r#"Ḷ"#, r#"Ḷ"#),
+        (r#"ḷ"#, r#"ḷ"#, r#"ḷ"#, r#"ḷ"#, r#"ḷ"#),
+        (r#"Ḹ"#, r#"Ḹ"#, r#"Ḹ"#, r#"Ḹ"#, r#"Ḹ"#),
+        (r#"ḹ"#, r#"ḹ"#, r#"ḹ"#, r#"ḹ"#, r#"ḹ"#),
+        (r#"Ḻ"#, r#"Ḻ"#, r#"Ḻ"#, r#"Ḻ"#, r#"Ḻ"#),
+        (r#"ḻ"#, r#"ḻ"#, r#"ḻ"#, r#"ḻ"#, r#"ḻ"#),
+        (r#"Ḽ"#, r#"Ḽ"#, r#"Ḽ"#, r#"Ḽ"#, r#"Ḽ"#),
+        (r#"ḽ"#, r#"ḽ"#, r#"ḽ"#, r#"ḽ"#, r#"ḽ"#),
+        (r#"Ḿ"#, r#"Ḿ"#, r#"Ḿ"#, r#"Ḿ"#, r#"Ḿ"#),
+        (r#"ḿ"#, r#"ḿ"#, r#"ḿ"#, r#"ḿ"#, r#"ḿ"#),
+        (r#"Ṁ"#, r#"Ṁ"#, r#"Ṁ"#, r#"Ṁ"#, r#"Ṁ"#),
+        (r#"ṁ"#, r#"ṁ"#, r#"ṁ"#, r#"ṁ"#, r#"ṁ"#),
+        (r#"Ṃ"#, r#"Ṃ"#, r#"Ṃ"#, r#"Ṃ"#, r#"Ṃ"#),
+        (r#"ṃ"#, r#"ṃ"#, r#"ṃ"#, r#"ṃ"#, r#"ṃ"#),
+        (r#"Ṅ"#, r#"Ṅ"#, r#"Ṅ"#, r#"Ṅ"#, r#"Ṅ"#),
+        (r#"ṅ"#, r#"ṅ"#, r#"ṅ"#, r#"ṅ"#, r#"ṅ"#),
+        (r#"Ṇ"#, r#"Ṇ"#, r#"Ṇ"#, r#"Ṇ"#, r#"Ṇ"#),
+        (r#"ṇ"#, r#"ṇ"#, r#"ṇ"#, r#"ṇ"#, r#"ṇ"#),
+        (r#"Ṉ"#, r#"Ṉ"#, r#"Ṉ"#, r#"Ṉ"#, r#"Ṉ"#),
+        (r#"ṉ"#, r#"ṉ"#, r#"ṉ"#, r#"ṉ"#, r#"ṉ"#),
+        (r#"Ṋ"#, r#"Ṋ"#, r#"Ṋ"#, r#"Ṋ"#, r#"Ṋ"#),
+        (r#"ṋ"#, r#"ṋ"#, r#"ṋ"#, r#"ṋ"#, r#"ṋ"#),
+        (r#"Ṍ"#, r#"Ṍ"#, r#"Ṍ"#, r#"Ṍ"#, r#"Ṍ"#),
+        (r#"ṍ"#, r#"ṍ"#, r#"ṍ"#, r#"ṍ"#, r#"ṍ"#),
+        (r#"Ṏ"#, r#"Ṏ"#, r#"Ṏ"#, r#"Ṏ"#, r#"Ṏ"#),
+        (r#"ṏ"#, r#"ṏ"#, r#"ṏ"#, r#"ṏ"#, r#"ṏ"#),
+        (r#"Ṑ"#, r#"Ṑ"#, r#"Ṑ"#, r#"Ṑ"#, r#"Ṑ"#),
+        (r#"ṑ"#, r#"ṑ"#, r#"ṑ"#, r#"ṑ"#, r#"ṑ"#),
+        (r#"Ṓ"#, r#"Ṓ"#, r#"Ṓ"#, r#"Ṓ"#, r#"Ṓ"#),
+        (r#"ṓ"#, r#"ṓ"#, r#"ṓ"#, r#"ṓ"#, r#"ṓ"#),
+        (r#"Ṕ"#, r#"Ṕ"#, r#"Ṕ"#, r#"Ṕ"#, r#"Ṕ"#),
+        (r#"ṕ"#, r#"ṕ"#, r#"ṕ"#, r#"ṕ"#, r#"ṕ"#),
+        (r#"Ṗ"#, r#"Ṗ"#, r#"Ṗ"#, r#"Ṗ"#, r#"Ṗ"#),
+        (r#"ṗ"#, r#"ṗ"#, r#"ṗ"#, r#"ṗ"#, r#"ṗ"#),
+        (r#"Ṙ"#, r#"Ṙ"#, r#"Ṙ"#, r#"Ṙ"#, r#"Ṙ"#),
+        (r#"ṙ"#, r#"ṙ"#, r#"ṙ"#, r#"ṙ"#, r#"ṙ"#),
+        (r#"Ṛ"#, r#"Ṛ"#, r#"Ṛ"#, r#"Ṛ"#, r#"Ṛ"#),
+        (r#"ṛ"#, r#"ṛ"#, r#"ṛ"#, r#"ṛ"#, r#"ṛ"#),
+        (r#"Ṝ"#, r#"Ṝ"#, r#"Ṝ"#, r#"Ṝ"#, r#"Ṝ"#),
+        (r#"ṝ"#, r#"ṝ"#, r#"ṝ"#, r#"ṝ"#, r#"ṝ"#),
+        (r#"Ṟ"#, r#"Ṟ"#, r#"Ṟ"#, r#"Ṟ"#, r#"Ṟ"#),
+        (r#"ṟ"#, r#"ṟ"#, r#"ṟ"#, r#"ṟ"#, r#"ṟ"#),
+        (r#"Ṡ"#, r#"Ṡ"#, r#"Ṡ"#, r#"Ṡ"#, r#"Ṡ"#),
+        (r#"ṡ"#, r#"ṡ"#, r#"ṡ"#, r#"ṡ"#, r#"ṡ"#),
+        (r#"Ṣ"#, r#"Ṣ"#, r#"Ṣ"#, r#"Ṣ"#, r#"Ṣ"#),
+        (r#"ṣ"#, r#"ṣ"#, r#"ṣ"#, r#"ṣ"#, r#"ṣ"#),
+        (r#"Ṥ"#, r#"Ṥ"#, r#"Ṥ"#, r#"Ṥ"#, r#"Ṥ"#),
+        (r#"ṥ"#, r#"ṥ"#, r#"ṥ"#, r#"ṥ"#, r#"ṥ"#),
+        (r#"Ṧ"#, r#"Ṧ"#, r#"Ṧ"#, r#"Ṧ"#, r#"Ṧ"#),
+        (r#"ṧ"#, r#"ṧ"#, r#"ṧ"#, r#"ṧ"#, r#"ṧ"#),
+        (r#"Ṩ"#, r#"Ṩ"#, r#"Ṩ"#, r#"Ṩ"#, r#"Ṩ"#),
+        (r#"ṩ"#, r#"ṩ"#, r#"ṩ"#, r#"ṩ"#, r#"ṩ"#),
+        (r#"Ṫ"#, r#"Ṫ"#, r#"Ṫ"#, r#"Ṫ"#, r#"Ṫ"#),
+        (r#"ṫ"#, r#"ṫ"#, r#"ṫ"#, r#"ṫ"#, r#"ṫ"#),
+        (r#"Ṭ"#, r#"Ṭ"#, r#"Ṭ"#, r#"Ṭ"#, r#"Ṭ"#),
+        (r#"ṭ"#, r#"ṭ"#, r#"ṭ"#, r#"ṭ"#, r#"ṭ"#),
+        (r#"Ṯ"#, r#"Ṯ"#, r#"Ṯ"#, r#"Ṯ"#, r#"Ṯ"#),
+        (r#"ṯ"#, r#"ṯ"#, r#"ṯ"#, r#"ṯ"#, r#"ṯ"#),
+        (r#"Ṱ"#, r#"Ṱ"#, r#"Ṱ"#, r#"Ṱ"#, r#"Ṱ"#),
+        (r#"ṱ"#, r#"ṱ"#, r#"ṱ"#, r#"ṱ"#, r#"ṱ"#),
+        (r#"Ṳ"#, r#"Ṳ"#, r#"Ṳ"#, r#"Ṳ"#, r#"Ṳ"#),
+        (r#"ṳ"#, r#"ṳ"#, r#"ṳ"#, r#"ṳ"#, r#"ṳ"#),
+        (r#"Ṵ"#, r#"Ṵ"#, r#"Ṵ"#, r#"Ṵ"#, r#"Ṵ"#),
+        (r#"ṵ"#, r#"ṵ"#, r#"ṵ"#, r#"ṵ"#, r#"ṵ"#),
+        (r#"Ṷ"#, r#"Ṷ"#, r#"Ṷ"#, r#"Ṷ"#, r#"Ṷ"#),
+        (r#"ṷ"#, r#"ṷ"#, r#"ṷ"#, r#"ṷ"#, r#"ṷ"#),
+        (r#"Ṹ"#, r#"Ṹ"#, r#"Ṹ"#, r#"Ṹ"#, r#"Ṹ"#),
+        (r#"ṹ"#, r#"ṹ"#, r#"ṹ"#, r#"ṹ"#, r#"ṹ"#),
+        (r#"Ṻ"#, r#"Ṻ"#, r#"Ṻ"#, r#"Ṻ"#, r#"Ṻ"#),
+        (r#"ṻ"#, r#"ṻ"#, r#"ṻ"#, r#"ṻ"#, r#"ṻ"#),
+        (r#"Ṽ"#, r#"Ṽ"#, r#"Ṽ"#, r#"Ṽ"#, r#"Ṽ"#),
+        (r#"ṽ"#, r#"ṽ"#, r#"ṽ"#, r#"ṽ"#, r#"ṽ"#),
+        (r#"Ṿ"#, r#"Ṿ"#, r#"Ṿ"#, r#"Ṿ"#, r#"Ṿ"#),
+        (r#"ṿ"#, r#"ṿ"#, r#"ṿ"#, r#"ṿ"#, r#"ṿ"#),
+        (r#"Ẁ"#, r#"Ẁ"#, r#"Ẁ"#, r#"Ẁ"#, r#"Ẁ"#),
+        (r#"ẁ"#, r#"ẁ"#, r#"ẁ"#, r#"ẁ"#, r#"ẁ"#),
+        (r#"Ẃ"#, r#"Ẃ"#, r#"Ẃ"#, r#"Ẃ"#, r#"Ẃ"#),
+        (r#"ẃ"#, r#"ẃ"#, r#"ẃ"#, r#"ẃ"#, r#"ẃ"#),
+        (r#"Ẅ"#, r#"Ẅ"#, r#"Ẅ"#, r#"Ẅ"#, r#"Ẅ"#),
+        (r#"ẅ"#, r#"ẅ"#, r#"ẅ"#, r#"ẅ"#, r#"ẅ"#),
+        (r#"Ẇ"#, r#"Ẇ"#, r#"Ẇ"#, r#"Ẇ"#, r#"Ẇ"#),
+        (r#"ẇ"#, r#"ẇ"#, r#"ẇ"#, r#"ẇ"#, r#"ẇ"#),
+        (r#"Ẉ"#, r#"Ẉ"#, r#"Ẉ"#, r#"Ẉ"#, r#"Ẉ"#),
+        (r#"ẉ"#, r#"ẉ"#, r#"ẉ"#, r#"ẉ"#, r#"ẉ"#),
+        (r#"Ẋ"#, r#"Ẋ"#, r#"Ẋ"#, r#"Ẋ"#, r#"Ẋ"#),
+        (r#"ẋ"#, r#"ẋ"#, r#"ẋ"#, r#"ẋ"#, r#"ẋ"#),
+        (r#"Ẍ"#, r#"Ẍ"#, r#"Ẍ"#, r#"Ẍ"#, r#"Ẍ"#),
+        (r#"ẍ"#, r#"ẍ"#, r#"ẍ"#, r#"ẍ"#, r#"ẍ"#),
+        (r#"Ẏ"#, r#"Ẏ"#, r#"Ẏ"#, r#"Ẏ"#, r#"Ẏ"#),
+        (r#"ẏ"#, r#"ẏ"#, r#"ẏ"#, r#"ẏ"#, r#"ẏ"#),
+        (r#"Ẑ"#, r#"Ẑ"#, r#"Ẑ"#, r#"Ẑ"#, r#"Ẑ"#),
+        (r#"ẑ"#, r#"ẑ"#, r#"ẑ"#, r#"ẑ"#, r#"ẑ"#),
+        (r#"Ẓ"#, r#"Ẓ"#, r#"Ẓ"#, r#"Ẓ"#, r#"Ẓ"#),
+        (r#"ẓ"#, r#"ẓ"#, r#"ẓ"#, r#"ẓ"#, r#"ẓ"#),
+        (r#"Ẕ"#, r#"Ẕ"#, r#"Ẕ"#, r#"Ẕ"#, r#"Ẕ"#),
+        (r#"ẕ"#, r#"ẕ"#, r#"ẕ"#, r#"ẕ"#, r#"ẕ"#),
+        (r#"ẖ"#, r#"ẖ"#, r#"ẖ"#, r#"ẖ"#, r#"ẖ"#),
+        (r#"ẗ"#, r#"ẗ"#, r#"ẗ"#, r#"ẗ"#, r#"ẗ"#),
+        (r#"ẘ"#, r#"ẘ"#, r#"ẘ"#, r#"ẘ"#, r#"ẘ"#),
+        (r#"ẙ"#, r#"ẙ"#, r#"ẙ"#, r#"ẙ"#, r#"ẙ"#),
+        (r#"ẚ"#, r#"ẚ"#, r#"ẚ"#, r#"aʾ"#, r#"aʾ"#),
+        (r#"ẛ"#, r#"ẛ"#, r#"ẛ"#, r#"ṡ"#, r#"ṡ"#),
+        (r#"Ạ"#, r#"Ạ"#, r#"Ạ"#, r#"Ạ"#, r#"Ạ"#),
+        (r#"ạ"#, r#"ạ"#, r#"ạ"#, r#"ạ"#, r#"ạ"#),
+        (r#"Ả"#, r#"Ả"#, r#"Ả"#, r#"Ả"#, r#"Ả"#),
+        (r#"ả"#, r#"ả"#, r#"ả"#, r#"ả"#, r#"ả"#),
+        (r#"Ấ"#, r#"Ấ"#, r#"Ấ"#, r#"Ấ"#, r#"Ấ"#),
+        (r#"ấ"#, r#"ấ"#, r#"ấ"#, r#"ấ"#, r#"ấ"#),
+        (r#"Ầ"#, r#"Ầ"#, r#"Ầ"#, r#"Ầ"#, r#"Ầ"#),
+        (r#"ầ"#, r#"ầ"#, r#"ầ"#, r#"ầ"#, r#"ầ"#),
+        (r#"Ẩ"#, r#"Ẩ"#, r#"Ẩ"#, r#"Ẩ"#, r#"Ẩ"#),
+        (r#"ẩ"#, r#"ẩ"#, r#"ẩ"#, r#"ẩ"#, r#"ẩ"#),
+        (r#"Ẫ"#, r#"Ẫ"#, r#"Ẫ"#, r#"Ẫ"#, r#"Ẫ"#),
+        (r#"ẫ"#, r#"ẫ"#, r#"ẫ"#, r#"ẫ"#, r#"ẫ"#),
+        (r#"Ậ"#, r#"Ậ"#, r#"Ậ"#, r#"Ậ"#, r#"Ậ"#),
+        (r#"ậ"#, r#"ậ"#, r#"ậ"#, r#"ậ"#, r#"ậ"#),
+        (r#"Ắ"#, r#"Ắ"#, r#"Ắ"#, r#"Ắ"#, r#"Ắ"#),
+        (r#"ắ"#, r#"ắ"#, r#"ắ"#, r#"ắ"#, r#"ắ"#),
+        (r#"Ằ"#, r#"Ằ"#, r#"Ằ"#, r#"Ằ"#, r#"Ằ"#),
+        (r#"ằ"#, r#"ằ"#, r#"ằ"#, r#"ằ"#, r#"ằ"#),
+        (r#"Ẳ"#, r#"Ẳ"#, r#"Ẳ"#, r#"Ẳ"#, r#"Ẳ"#),
+        (r#"ẳ"#, r#"ẳ"#, r#"ẳ"#, r#"ẳ"#, r#"ẳ"#),
+        (r#"Ẵ"#, r#"Ẵ"#, r#"Ẵ"#, r#"Ẵ"#, r#"Ẵ"#),
+        (r#"ẵ"#, r#"ẵ"#, r#"ẵ"#, r#"ẵ"#, r#"ẵ"#),
+        (r#"Ặ"#, r#"Ặ"#, r#"Ặ"#, r#"Ặ"#, r#"Ặ"#),
+        (r#"ặ"#, r#"ặ"#, r#"ặ"#, r#"ặ"#, r#"ặ"#),
+        (r#"Ẹ"#, r#"Ẹ"#, r#"Ẹ"#, r#"Ẹ"#, r#"Ẹ"#),
+        (r#"ẹ"#, r#"ẹ"#, r#"ẹ"#, r#"ẹ"#, r#"ẹ"#),
+        (r#"Ẻ"#, r#"Ẻ"#, r#"Ẻ"#, r#"Ẻ"#, r#"Ẻ"#),
+        (r#"ẻ"#, r#"ẻ"#, r#"ẻ"#, r#"ẻ"#, r#"ẻ"#),
+        (r#"Ẽ"#, r#"Ẽ"#, r#"Ẽ"#, r#"Ẽ"#, r#"Ẽ"#),
+        (r#"ẽ"#, r#"ẽ"#, r#"ẽ"#, r#"ẽ"#, r#"ẽ"#),
+        (r#"Ế"#, r#"Ế"#, r#"Ế"#, r#"Ế"#, r#"Ế"#),
+        (r#"ế"#, r#"ế"#, r#"ế"#, r#"ế"#, r#"ế"#),
+        (r#"Ề"#, r#"Ề"#, r#"Ề"#, r#"Ề"#, r#"Ề"#),
+        (r#"ề"#, r#"ề"#, r#"ề"#, r#"ề"#, r#"ề"#),
+        (r#"Ể"#, r#"Ể"#, r#"Ể"#, r#"Ể"#, r#"Ể"#),
+        (r#"ể"#, r#"ể"#, r#"ể"#, r#"ể"#, r#"ể"#),
+        (r#"Ễ"#, r#"Ễ"#, r#"Ễ"#, r#"Ễ"#, r#"Ễ"#),
+        (r#"ễ"#, r#"ễ"#, r#"ễ"#, r#"ễ"#, r#"ễ"#),
+        (r#"Ệ"#, r#"Ệ"#, r#"Ệ"#, r#"Ệ"#, r#"Ệ"#),
+        (r#"ệ"#, r#"ệ"#, r#"ệ"#, r#"ệ"#, r#"ệ"#),
+        (r#"Ỉ"#, r#"Ỉ"#, r#"Ỉ"#, r#"Ỉ"#, r#"Ỉ"#),
+        (r#"ỉ"#, r#"ỉ"#, r#"ỉ"#, r#"ỉ"#, r#"ỉ"#),
+        (r#"Ị"#, r#"Ị"#, r#"Ị"#, r#"Ị"#, r#"Ị"#),
+        (r#"ị"#, r#"ị"#, r#"ị"#, r#"ị"#, r#"ị"#),
+        (r#"Ọ"#, r#"Ọ"#, r#"Ọ"#, r#"Ọ"#, r#"Ọ"#),
+        (r#"ọ"#, r#"ọ"#, r#"ọ"#, r#"ọ"#, r#"ọ"#),
+        (r#"Ỏ"#, r#"Ỏ"#, r#"Ỏ"#, r#"Ỏ"#, r#"Ỏ"#),
+        (r#"ỏ"#, r#"ỏ"#, r#"ỏ"#, r#"ỏ"#, r#"ỏ"#),
+        (r#"Ố"#, r#"Ố"#, r#"Ố"#, r#"Ố"#, r#"Ố"#),
+        (r#"ố"#, r#"ố"#, r#"ố"#, r#"ố"#, r#"ố"#),
+        (r#"Ồ"#, r#"Ồ"#, r#"Ồ"#, r#"Ồ"#, r#"Ồ"#),
+        (r#"ồ"#, r#"ồ"#, r#"ồ"#, r#"ồ"#, r#"ồ"#),
+        (r#"Ổ"#, r#"Ổ"#, r#"Ổ"#, r#"Ổ"#, r#"Ổ"#),
+        (r#"ổ"#, r#"ổ"#, r#"ổ"#, r#"ổ"#, r#"ổ"#),
+        (r#"Ỗ"#, r#"Ỗ"#, r#"Ỗ"#, r#"Ỗ"#, r#"Ỗ"#),
+        (r#"ỗ"#, r#"ỗ"#, r#"ỗ"#, r#"ỗ"#, r#"ỗ"#),
+        (r#"Ộ"#, r#"Ộ"#, r#"Ộ"#, r#"Ộ"#, r#"Ộ"#),
+        (r#"ộ"#, r#"ộ"#, r#"ộ"#, r#"ộ"#, r#"ộ"#),
+        (r#"Ớ"#, r#"Ớ"#, r#"Ớ"#, r#"Ớ"#, r#"Ớ"#),
+        (r#"ớ"#, r#"ớ"#, r#"ớ"#, r#"ớ"#, r#"ớ"#),
+        (r#"Ờ"#, r#"Ờ"#, r#"Ờ"#, r#"Ờ"#, r#"Ờ"#),
+        (r#"ờ"#, r#"ờ"#, r#"ờ"#, r#"ờ"#, r#"ờ"#),
+        (r#"Ở"#, r#"Ở"#, r#"Ở"#, r#"Ở"#, r#"Ở"#),
+        (r#"ở"#, r#"ở"#, r#"ở"#, r#"ở"#, r#"ở"#),
+        (r#"Ỡ"#, r#"Ỡ"#, r#"Ỡ"#, r#"Ỡ"#, r#"Ỡ"#),
+        (r#"ỡ"#, r#"ỡ"#, r#"ỡ"#, r#"ỡ"#, r#"ỡ"#),
+        (r#"Ợ"#, r#"Ợ"#, r#"Ợ"#, r#"Ợ"#, r#"Ợ"#),
+        (r#"ợ"#, r#"ợ"#, r#"ợ"#, r#"ợ"#, r#"ợ"#),
+        (r#"Ụ"#, r#"Ụ"#, r#"Ụ"#, r#"Ụ"#, r#"Ụ"#),
+        (r#"ụ"#, r#"ụ"#, r#"ụ"#, r#"ụ"#, r#"ụ"#),
+        (r#"Ủ"#, r#"Ủ"#, r#"Ủ"#, r#"Ủ"#, r#"Ủ"#),
+        (r#"ủ"#, r#"ủ"#, r#"ủ"#, r#"ủ"#, r#"ủ"#),
+        (r#"Ứ"#, r#"Ứ"#, r#"Ứ"#, r#"Ứ"#, r#"Ứ"#),
+        (r#"ứ"#, r#"ứ"#, r#"ứ"#, r#"ứ"#, r#"ứ"#),
+        (r#"Ừ"#, r#"Ừ"#, r#"Ừ"#, r#"Ừ"#, r#"Ừ"#),
+        (r#"ừ"#, r#"ừ"#, r#"ừ"#, r#"ừ"#, r#"ừ"#),
+        (r#"Ử"#, r#"Ử"#, r#"Ử"#, r#"Ử"#, r#"Ử"#),
+        (r#"ử"#, r#"ử"#, r#"ử"#, r#"ử"#, r#"ử"#),
+        (r#"Ữ"#, r#"Ữ"#, r#"Ữ"#, r#"Ữ"#, r#"Ữ"#),
+        (r#"ữ"#, r#"ữ"#, r#"ữ"#, r#"ữ"#, r#"ữ"#),
+        (r#"Ự"#, r#"Ự"#, r#"Ự"#, r#"Ự"#, r#"Ự"#),
+        (r#"ự"#, r#"ự"#, r#"ự"#, r#"ự"#, r#"ự"#),
+        (r#"Ỳ"#, r#"Ỳ"#, r#"Ỳ"#, r#"Ỳ"#, r#"Ỳ"#),
+        (r#"ỳ"#, r#"ỳ"#, r#"ỳ"#, r#"ỳ"#, r#"ỳ"#),
+        (r#"Ỵ"#, r#"Ỵ"#, r#"Ỵ"#, r#"Ỵ"#, r#"Ỵ"#),
+        (r#"ỵ"#, r#"ỵ"#, r#"ỵ"#, r#"ỵ"#, r#"ỵ"#),
+        (r#"Ỷ"#, r#"Ỷ"#, r#"Ỷ"#, r#"Ỷ"#, r#"Ỷ"#),
+        (r#"ỷ"#, r#"ỷ"#, r#"ỷ"#, r#"ỷ"#, r#"ỷ"#),
+        (r#"Ỹ"#, r#"Ỹ"#, r#"Ỹ"#, r#"Ỹ"#, r#"Ỹ"#),
+        (r#"ỹ"#, r#"ỹ"#, r#"ỹ"#, r#"ỹ"#, r#"ỹ"#),
+        (r#"ἀ"#, r#"ἀ"#, r#"ἀ"#, r#"ἀ"#, r#"ἀ"#),
+        (r#"ἁ"#, r#"ἁ"#, r#"ἁ"#, r#"ἁ"#, r#"ἁ"#),
+        (r#"ἂ"#, r#"ἂ"#, r#"ἂ"#, r#"ἂ"#, r#"ἂ"#),
+        (r#"ἃ"#, r#"ἃ"#, r#"ἃ"#, r#"ἃ"#, r#"ἃ"#),
+        (r#"ἄ"#, r#"ἄ"#, r#"ἄ"#, r#"ἄ"#, r#"ἄ"#),
+        (r#"ἅ"#, r#"ἅ"#, r#"ἅ"#, r#"ἅ"#, r#"ἅ"#),
+        (r#"ἆ"#, r#"ἆ"#, r#"ἆ"#, r#"ἆ"#, r#"ἆ"#),
+        (r#"ἇ"#, r#"ἇ"#, r#"ἇ"#, r#"ἇ"#, r#"ἇ"#),
+        (r#"Ἀ"#, r#"Ἀ"#, r#"Ἀ"#, r#"Ἀ"#, r#"Ἀ"#),
+        (r#"Ἁ"#, r#"Ἁ"#, r#"Ἁ"#, r#"Ἁ"#, r#"Ἁ"#),
+        (r#"Ἂ"#, r#"Ἂ"#, r#"Ἂ"#, r#"Ἂ"#, r#"Ἂ"#),
+        (r#"Ἃ"#, r#"Ἃ"#, r#"Ἃ"#, r#"Ἃ"#, r#"Ἃ"#),
+        (r#"Ἄ"#, r#"Ἄ"#, r#"Ἄ"#, r#"Ἄ"#, r#"Ἄ"#),
+        (r#"Ἅ"#, r#"Ἅ"#, r#"Ἅ"#, r#"Ἅ"#, r#"Ἅ"#),
+        (r#"Ἆ"#, r#"Ἆ"#, r#"Ἆ"#, r#"Ἆ"#, r#"Ἆ"#),
+        (r#"Ἇ"#, r#"Ἇ"#, r#"Ἇ"#, r#"Ἇ"#, r#"Ἇ"#),
+        (r#"ἐ"#, r#"ἐ"#, r#"ἐ"#, r#"ἐ"#, r#"ἐ"#),
+        (r#"ἑ"#, r#"ἑ"#, r#"ἑ"#, r#"ἑ"#, r#"ἑ"#),
+        (r#"ἒ"#, r#"ἒ"#, r#"ἒ"#, r#"ἒ"#, r#"ἒ"#),
+        (r#"ἓ"#, r#"ἓ"#, r#"ἓ"#, r#"ἓ"#, r#"ἓ"#),
+        (r#"ἔ"#, r#"ἔ"#, r#"ἔ"#, r#"ἔ"#, r#"ἔ"#),
+        (r#"ἕ"#, r#"ἕ"#, r#"ἕ"#, r#"ἕ"#, r#"ἕ"#),
+        (r#"Ἐ"#, r#"Ἐ"#, r#"Ἐ"#, r#"Ἐ"#, r#"Ἐ"#),
+        (r#"Ἑ"#, r#"Ἑ"#, r#"Ἑ"#, r#"Ἑ"#, r#"Ἑ"#),
+        (r#"Ἒ"#, r#"Ἒ"#, r#"Ἒ"#, r#"Ἒ"#, r#"Ἒ"#),
+        (r#"Ἓ"#, r#"Ἓ"#, r#"Ἓ"#, r#"Ἓ"#, r#"Ἓ"#),
+        (r#"Ἔ"#, r#"Ἔ"#, r#"Ἔ"#, r#"Ἔ"#, r#"Ἔ"#),
+        (r#"Ἕ"#, r#"Ἕ"#, r#"Ἕ"#, r#"Ἕ"#, r#"Ἕ"#),
+        (r#"ἠ"#, r#"ἠ"#, r#"ἠ"#, r#"ἠ"#, r#"ἠ"#),
+        (r#"ἡ"#, r#"ἡ"#, r#"ἡ"#, r#"ἡ"#, r#"ἡ"#),
+        (r#"ἢ"#, r#"ἢ"#, r#"ἢ"#, r#"ἢ"#, r#"ἢ"#),
+        (r#"ἣ"#, r#"ἣ"#, r#"ἣ"#, r#"ἣ"#, r#"ἣ"#),
+        (r#"ἤ"#, r#"ἤ"#, r#"ἤ"#, r#"ἤ"#, r#"ἤ"#),
+        (r#"ἥ"#, r#"ἥ"#, r#"ἥ"#, r#"ἥ"#, r#"ἥ"#),
+        (r#"ἦ"#, r#"ἦ"#, r#"ἦ"#, r#"ἦ"#, r#"ἦ"#),
+        (r#"ἧ"#, r#"ἧ"#, r#"ἧ"#, r#"ἧ"#, r#"ἧ"#),
+        (r#"Ἠ"#, r#"Ἠ"#, r#"Ἠ"#, r#"Ἠ"#, r#"Ἠ"#),
+        (r#"Ἡ"#, r#"Ἡ"#, r#"Ἡ"#, r#"Ἡ"#, r#"Ἡ"#),
+        (r#"Ἢ"#, r#"Ἢ"#, r#"Ἢ"#, r#"Ἢ"#, r#"Ἢ"#),
+        (r#"Ἣ"#, r#"Ἣ"#, r#"Ἣ"#, r#"Ἣ"#, r#"Ἣ"#),
+        (r#"Ἤ"#, r#"Ἤ"#, r#"Ἤ"#, r#"Ἤ"#, r#"Ἤ"#),
+        (r#"Ἥ"#, r#"Ἥ"#, r#"Ἥ"#, r#"Ἥ"#, r#"Ἥ"#),
+        (r#"Ἦ"#, r#"Ἦ"#, r#"Ἦ"#, r#"Ἦ"#, r#"Ἦ"#),
+        (r#"Ἧ"#, r#"Ἧ"#, r#"Ἧ"#, r#"Ἧ"#, r#"Ἧ"#),
+        (r#"ἰ"#, r#"ἰ"#, r#"ἰ"#, r#"ἰ"#, r#"ἰ"#),
+        (r#"ἱ"#, r#"ἱ"#, r#"ἱ"#, r#"ἱ"#, r#"ἱ"#),
+        (r#"ἲ"#, r#"ἲ"#, r#"ἲ"#, r#"ἲ"#, r#"ἲ"#),
+        (r#"ἳ"#, r#"ἳ"#, r#"ἳ"#, r#"ἳ"#, r#"ἳ"#),
+        (r#"ἴ"#, r#"ἴ"#, r#"ἴ"#, r#"ἴ"#, r#"ἴ"#),
+        (r#"ἵ"#, r#"ἵ"#, r#"ἵ"#, r#"ἵ"#, r#"ἵ"#),
+        (r#"ἶ"#, r#"ἶ"#, r#"ἶ"#, r#"ἶ"#, r#"ἶ"#),
+        (r#"ἷ"#, r#"ἷ"#, r#"ἷ"#, r#"ἷ"#, r#"ἷ"#),
+        (r#"Ἰ"#, r#"Ἰ"#, r#"Ἰ"#, r#"Ἰ"#, r#"Ἰ"#),
+        (r#"Ἱ"#, r#"Ἱ"#, r#"Ἱ"#, r#"Ἱ"#, r#"Ἱ"#),
+        (r#"Ἲ"#, r#"Ἲ"#, r#"Ἲ"#, r#"Ἲ"#, r#"Ἲ"#),
+        (r#"Ἳ"#, r#"Ἳ"#, r#"Ἳ"#, r#"Ἳ"#, r#"Ἳ"#),
+        (r#"Ἴ"#, r#"Ἴ"#, r#"Ἴ"#, r#"Ἴ"#, r#"Ἴ"#),
+        (r#"Ἵ"#, r#"Ἵ"#, r#"Ἵ"#, r#"Ἵ"#, r#"Ἵ"#),
+        (r#"Ἶ"#, r#"Ἶ"#, r#"Ἶ"#, r#"Ἶ"#, r#"Ἶ"#),
+        (r#"Ἷ"#, r#"Ἷ"#, r#"Ἷ"#, r#"Ἷ"#, r#"Ἷ"#),
+        (r#"ὀ"#, r#"ὀ"#, r#"ὀ"#, r#"ὀ"#, r#"ὀ"#),
+        (r#"ὁ"#, r#"ὁ"#, r#"ὁ"#, r#"ὁ"#, r#"ὁ"#),
+        (r#"ὂ"#, r#"ὂ"#, r#"ὂ"#, r#"ὂ"#, r#"ὂ"#),
+        (r#"ὃ"#, r#"ὃ"#, r#"ὃ"#, r#"ὃ"#, r#"ὃ"#),
+        (r#"ὄ"#, r#"ὄ"#, r#"ὄ"#, r#"ὄ"#, r#"ὄ"#),
+        (r#"ὅ"#, r#"ὅ"#, r#"ὅ"#, r#"ὅ"#, r#"ὅ"#),
+        (r#"Ὀ"#, r#"Ὀ"#, r#"Ὀ"#, r#"Ὀ"#, r#"Ὀ"#),
+        (r#"Ὁ"#, r#"Ὁ"#, r#"Ὁ"#, r#"Ὁ"#, r#"Ὁ"#),
+        (r#"Ὂ"#, r#"Ὂ"#, r#"Ὂ"#, r#"Ὂ"#, r#"Ὂ"#),
+        (r#"Ὃ"#, r#"Ὃ"#, r#"Ὃ"#, r#"Ὃ"#, r#"Ὃ"#),
+        (r#"Ὄ"#, r#"Ὄ"#, r#"Ὄ"#, r#"Ὄ"#, r#"Ὄ"#),
+        (r#"Ὅ"#, r#"Ὅ"#, r#"Ὅ"#, r#"Ὅ"#, r#"Ὅ"#),
+        (r#"ὐ"#, r#"ὐ"#, r#"ὐ"#, r#"ὐ"#, r#"ὐ"#),
+        (r#"ὑ"#, r#"ὑ"#, r#"ὑ"#, r#"ὑ"#, r#"ὑ"#),
+        (r#"ὒ"#, r#"ὒ"#, r#"ὒ"#, r#"ὒ"#, r#"ὒ"#),
+        (r#"ὓ"#, r#"ὓ"#, r#"ὓ"#, r#"ὓ"#, r#"ὓ"#),
+        (r#"ὔ"#, r#"ὔ"#, r#"ὔ"#, r#"ὔ"#, r#"ὔ"#),
+        (r#"ὕ"#, r#"ὕ"#, r#"ὕ"#, r#"ὕ"#, r#"ὕ"#),
+        (r#"ὖ"#, r#"ὖ"#, r#"ὖ"#, r#"ὖ"#, r#"ὖ"#),
+        (r#"ὗ"#, r#"ὗ"#, r#"ὗ"#, r#"ὗ"#, r#"ὗ"#),
+        (r#"Ὑ"#, r#"Ὑ"#, r#"Ὑ"#, r#"Ὑ"#, r#"Ὑ"#),
+        (r#"Ὓ"#, r#"Ὓ"#, r#"Ὓ"#, r#"Ὓ"#, r#"Ὓ"#),
+        (r#"Ὕ"#, r#"Ὕ"#, r#"Ὕ"#, r#"Ὕ"#, r#"Ὕ"#),
+        (r#"Ὗ"#, r#"Ὗ"#, r#"Ὗ"#, r#"Ὗ"#, r#"Ὗ"#),
+        (r#"ὠ"#, r#"ὠ"#, r#"ὠ"#, r#"ὠ"#, r#"ὠ"#),
+        (r#"ὡ"#, r#"ὡ"#, r#"ὡ"#, r#"ὡ"#, r#"ὡ"#),
+        (r#"ὢ"#, r#"ὢ"#, r#"ὢ"#, r#"ὢ"#, r#"ὢ"#),
+        (r#"ὣ"#, r#"ὣ"#, r#"ὣ"#, r#"ὣ"#, r#"ὣ"#),
+        (r#"ὤ"#, r#"ὤ"#, r#"ὤ"#, r#"ὤ"#, r#"ὤ"#),
+        (r#"ὥ"#, r#"ὥ"#, r#"ὥ"#, r#"ὥ"#, r#"ὥ"#),
+        (r#"ὦ"#, r#"ὦ"#, r#"ὦ"#, r#"ὦ"#, r#"ὦ"#),
+        (r#"ὧ"#, r#"ὧ"#, r#"ὧ"#, r#"ὧ"#, r#"ὧ"#),
+        (r#"Ὠ"#, r#"Ὠ"#, r#"Ὠ"#, r#"Ὠ"#, r#"Ὠ"#),
+        (r#"Ὡ"#, r#"Ὡ"#, r#"Ὡ"#, r#"Ὡ"#, r#"Ὡ"#),
+        (r#"Ὢ"#, r#"Ὢ"#, r#"Ὢ"#, r#"Ὢ"#, r#"Ὢ"#),
+        (r#"Ὣ"#, r#"Ὣ"#, r#"Ὣ"#, r#"Ὣ"#, r#"Ὣ"#),
+        (r#"Ὤ"#, r#"Ὤ"#, r#"Ὤ"#, r#"Ὤ"#, r#"Ὤ"#),
+        (r#"Ὥ"#, r#"Ὥ"#, r#"Ὥ"#, r#"Ὥ"#, r#"Ὥ"#),
+        (r#"Ὦ"#, r#"Ὦ"#, r#"Ὦ"#, r#"Ὦ"#, r#"Ὦ"#),
+        (r#"Ὧ"#, r#"Ὧ"#, r#"Ὧ"#, r#"Ὧ"#, r#"Ὧ"#),
+        (r#"ὰ"#, r#"ὰ"#, r#"ὰ"#, r#"ὰ"#, r#"ὰ"#),
+        (r#"ά"#, r#"ά"#, r#"ά"#, r#"ά"#, r#"ά"#),
+        (r#"ὲ"#, r#"ὲ"#, r#"ὲ"#, r#"ὲ"#, r#"ὲ"#),
+        (r#"έ"#, r#"έ"#, r#"έ"#, r#"έ"#, r#"έ"#),
+        (r#"ὴ"#, r#"ὴ"#, r#"ὴ"#, r#"ὴ"#, r#"ὴ"#),
+        (r#"ή"#, r#"ή"#, r#"ή"#, r#"ή"#, r#"ή"#),
+        (r#"ὶ"#, r#"ὶ"#, r#"ὶ"#, r#"ὶ"#, r#"ὶ"#),
+        (r#"ί"#, r#"ί"#, r#"ί"#, r#"ί"#, r#"ί"#),
+        (r#"ὸ"#, r#"ὸ"#, r#"ὸ"#, r#"ὸ"#, r#"ὸ"#),
+        (r#"ό"#, r#"ό"#, r#"ό"#, r#"ό"#, r#"ό"#),
+        (r#"ὺ"#, r#"ὺ"#, r#"ὺ"#, r#"ὺ"#, r#"ὺ"#),
+        (r#"ύ"#, r#"ύ"#, r#"ύ"#, r#"ύ"#, r#"ύ"#),
+        (r#"ὼ"#, r#"ὼ"#, r#"ὼ"#, r#"ὼ"#, r#"ὼ"#),
+        (r#"ώ"#, r#"ώ"#, r#"ώ"#, r#"ώ"#, r#"ώ"#),
+        (r#"ᾀ"#, r#"ᾀ"#, r#"ᾀ"#, r#"ᾀ"#, r#"ᾀ"#),
+        (r#"ᾁ"#, r#"ᾁ"#, r#"ᾁ"#, r#"ᾁ"#, r#"ᾁ"#),
+        (r#"ᾂ"#, r#"ᾂ"#, r#"ᾂ"#, r#"ᾂ"#, r#"ᾂ"#),
+        (r#"ᾃ"#, r#"ᾃ"#, r#"ᾃ"#, r#"ᾃ"#, r#"ᾃ"#),
+        (r#"ᾄ"#, r#"ᾄ"#, r#"ᾄ"#, r#"ᾄ"#, r#"ᾄ"#),
+        (r#"ᾅ"#, r#"ᾅ"#, r#"ᾅ"#, r#"ᾅ"#, r#"ᾅ"#),
+        (r#"ᾆ"#, r#"ᾆ"#, r#"ᾆ"#, r#"ᾆ"#, r#"ᾆ"#),
+        (r#"ᾇ"#, r#"ᾇ"#, r#"ᾇ"#, r#"ᾇ"#, r#"ᾇ"#),
+        (r#"ᾈ"#, r#"ᾈ"#, r#"ᾈ"#, r#"ᾈ"#, r#"ᾈ"#),
+        (r#"ᾉ"#, r#"ᾉ"#, r#"ᾉ"#, r#"ᾉ"#, r#"ᾉ"#),
+        (r#"ᾊ"#, r#"ᾊ"#, r#"ᾊ"#, r#"ᾊ"#, r#"ᾊ"#),
+        (r#"ᾋ"#, r#"ᾋ"#, r#"ᾋ"#, r#"ᾋ"#, r#"ᾋ"#),
+        (r#"ᾌ"#, r#"ᾌ"#, r#"ᾌ"#, r#"ᾌ"#, r#"ᾌ"#),
+        (r#"ᾍ"#, r#"ᾍ"#, r#"ᾍ"#, r#"ᾍ"#, r#"ᾍ"#),
+        (r#"ᾎ"#, r#"ᾎ"#, r#"ᾎ"#, r#"ᾎ"#, r#"ᾎ"#),
+        (r#"ᾏ"#, r#"ᾏ"#, r#"ᾏ"#, r#"ᾏ"#, r#"ᾏ"#),
+        (r#"ᾐ"#, r#"ᾐ"#, r#"ᾐ"#, r#"ᾐ"#, r#"ᾐ"#),
+        (r#"ᾑ"#, r#"ᾑ"#, r#"ᾑ"#, r#"ᾑ"#, r#"ᾑ"#),
+        (r#"ᾒ"#, r#"ᾒ"#, r#"ᾒ"#, r#"ᾒ"#, r#"ᾒ"#),
+        (r#"ᾓ"#, r#"ᾓ"#, r#"ᾓ"#, r#"ᾓ"#, r#"ᾓ"#),
+        (r#"ᾔ"#, r#"ᾔ"#, r#"ᾔ"#, r#"ᾔ"#, r#"ᾔ"#),
+        (r#"ᾕ"#, r#"ᾕ"#, r#"ᾕ"#, r#"ᾕ"#, r#"ᾕ"#),
+        (r#"ᾖ"#, r#"ᾖ"#, r#"ᾖ"#, r#"ᾖ"#, r#"ᾖ"#),
+        (r#"ᾗ"#, r#"ᾗ"#, r#"ᾗ"#, r#"ᾗ"#, r#"ᾗ"#),
+        (r#"ᾘ"#, r#"ᾘ"#, r#"ᾘ"#, r#"ᾘ"#, r#"ᾘ"#),
+        (r#"ᾙ"#, r#"ᾙ"#, r#"ᾙ"#, r#"ᾙ"#, r#"ᾙ"#),
+        (r#"ᾚ"#, r#"ᾚ"#, r#"ᾚ"#, r#"ᾚ"#, r#"ᾚ"#),
+        (r#"ᾛ"#, r#"ᾛ"#, r#"ᾛ"#, r#"ᾛ"#, r#"ᾛ"#),
+        (r#"ᾜ"#, r#"ᾜ"#, r#"ᾜ"#, r#"ᾜ"#, r#"ᾜ"#),
+        (r#"ᾝ"#, r#"ᾝ"#, r#"ᾝ"#, r#"ᾝ"#, r#"ᾝ"#),
+        (r#"ᾞ"#, r#"ᾞ"#, r#"ᾞ"#, r#"ᾞ"#, r#"ᾞ"#),
+        (r#"ᾟ"#, r#"ᾟ"#, r#"ᾟ"#, r#"ᾟ"#, r#"ᾟ"#),
+        (r#"ᾠ"#, r#"ᾠ"#, r#"ᾠ"#, r#"ᾠ"#, r#"ᾠ"#),
+        (r#"ᾡ"#, r#"ᾡ"#, r#"ᾡ"#, r#"ᾡ"#, r#"ᾡ"#),
+        (r#"ᾢ"#, r#"ᾢ"#, r#"ᾢ"#, r#"ᾢ"#, r#"ᾢ"#),
+        (r#"ᾣ"#, r#"ᾣ"#, r#"ᾣ"#, r#"ᾣ"#, r#"ᾣ"#),
+        (r#"ᾤ"#, r#"ᾤ"#, r#"ᾤ"#, r#"ᾤ"#, r#"ᾤ"#),
+        (r#"ᾥ"#, r#"ᾥ"#, r#"ᾥ"#, r#"ᾥ"#, r#"ᾥ"#),
+        (r#"ᾦ"#, r#"ᾦ"#, r#"ᾦ"#, r#"ᾦ"#, r#"ᾦ"#),
+        (r#"ᾧ"#, r#"ᾧ"#, r#"ᾧ"#, r#"ᾧ"#, r#"ᾧ"#),
+        (r#"ᾨ"#, r#"ᾨ"#, r#"ᾨ"#, r#"ᾨ"#, r#"ᾨ"#),
+        (r#"ᾩ"#, r#"ᾩ"#, r#"ᾩ"#, r#"ᾩ"#, r#"ᾩ"#),
+        (r#"ᾪ"#, r#"ᾪ"#, r#"ᾪ"#, r#"ᾪ"#, r#"ᾪ"#),
+        (r#"ᾫ"#, r#"ᾫ"#, r#"ᾫ"#, r#"ᾫ"#, r#"ᾫ"#),
+        (r#"ᾬ"#, r#"ᾬ"#, r#"ᾬ"#, r#"ᾬ"#, r#"ᾬ"#),
+        (r#"ᾭ"#, r#"ᾭ"#, r#"ᾭ"#, r#"ᾭ"#, r#"ᾭ"#),
+        (r#"ᾮ"#, r#"ᾮ"#, r#"ᾮ"#, r#"ᾮ"#, r#"ᾮ"#),
+        (r#"ᾯ"#, r#"ᾯ"#, r#"ᾯ"#, r#"ᾯ"#, r#"ᾯ"#),
+        (r#"ᾰ"#, r#"ᾰ"#, r#"ᾰ"#, r#"ᾰ"#, r#"ᾰ"#),
+        (r#"ᾱ"#, r#"ᾱ"#, r#"ᾱ"#, r#"ᾱ"#, r#"ᾱ"#),
+        (r#"ᾲ"#, r#"ᾲ"#, r#"ᾲ"#, r#"ᾲ"#, r#"ᾲ"#),
+        (r#"ᾳ"#, r#"ᾳ"#, r#"ᾳ"#, r#"ᾳ"#, r#"ᾳ"#),
+        (r#"ᾴ"#, r#"ᾴ"#, r#"ᾴ"#, r#"ᾴ"#, r#"ᾴ"#),
+        (r#"ᾶ"#, r#"ᾶ"#, r#"ᾶ"#, r#"ᾶ"#, r#"ᾶ"#),
+        (r#"ᾷ"#, r#"ᾷ"#, r#"ᾷ"#, r#"ᾷ"#, r#"ᾷ"#),
+        (r#"Ᾰ"#, r#"Ᾰ"#, r#"Ᾰ"#, r#"Ᾰ"#, r#"Ᾰ"#),
+        (r#"Ᾱ"#, r#"Ᾱ"#, r#"Ᾱ"#, r#"Ᾱ"#, r#"Ᾱ"#),
+        (r#"Ὰ"#, r#"Ὰ"#, r#"Ὰ"#, r#"Ὰ"#, r#"Ὰ"#),
+        (r#"Ά"#, r#"Ά"#, r#"Ά"#, r#"Ά"#, r#"Ά"#),
+        (r#"ᾼ"#, r#"ᾼ"#, r#"ᾼ"#, r#"ᾼ"#, r#"ᾼ"#),
+        (r#"᾽"#, r#"᾽"#, r#"᾽"#, r#" ̓"#, r#" ̓"#),
+        (r#"ι"#, r#"ι"#, r#"ι"#, r#"ι"#, r#"ι"#),
+        (r#"᾿"#, r#"᾿"#, r#"᾿"#, r#" ̓"#, r#" ̓"#),
+        (r#"῀"#, r#"῀"#, r#"῀"#, r#" ͂"#, r#" ͂"#),
+        (r#"῁"#, r#"῁"#, r#"῁"#, r#" ̈͂"#, r#" ̈͂"#),
+        (r#"ῂ"#, r#"ῂ"#, r#"ῂ"#, r#"ῂ"#, r#"ῂ"#),
+        (r#"ῃ"#, r#"ῃ"#, r#"ῃ"#, r#"ῃ"#, r#"ῃ"#),
+        (r#"ῄ"#, r#"ῄ"#, r#"ῄ"#, r#"ῄ"#, r#"ῄ"#),
+        (r#"ῆ"#, r#"ῆ"#, r#"ῆ"#, r#"ῆ"#, r#"ῆ"#),
+        (r#"ῇ"#, r#"ῇ"#, r#"ῇ"#, r#"ῇ"#, r#"ῇ"#),
+        (r#"Ὲ"#, r#"Ὲ"#, r#"Ὲ"#, r#"Ὲ"#, r#"Ὲ"#),
+        (r#"Έ"#, r#"Έ"#, r#"Έ"#, r#"Έ"#, r#"Έ"#),
+        (r#"Ὴ"#, r#"Ὴ"#, r#"Ὴ"#, r#"Ὴ"#, r#"Ὴ"#),
+        (r#"Ή"#, r#"Ή"#, r#"Ή"#, r#"Ή"#, r#"Ή"#),
+        (r#"ῌ"#, r#"ῌ"#, r#"ῌ"#, r#"ῌ"#, r#"ῌ"#),
+        (r#"῍"#, r#"῍"#, r#"῍"#, r#" ̓̀"#, r#" ̓̀"#),
+        (r#"῎"#, r#"῎"#, r#"῎"#, r#" ̓́"#, r#" ̓́"#),
+        (r#"῏"#, r#"῏"#, r#"῏"#, r#" ̓͂"#, r#" ̓͂"#),
+        (r#"ῐ"#, r#"ῐ"#, r#"ῐ"#, r#"ῐ"#, r#"ῐ"#),
+        (r#"ῑ"#, r#"ῑ"#, r#"ῑ"#, r#"ῑ"#, r#"ῑ"#),
+        (r#"ῒ"#, r#"ῒ"#, r#"ῒ"#, r#"ῒ"#, r#"ῒ"#),
+        (r#"ΐ"#, r#"ΐ"#, r#"ΐ"#, r#"ΐ"#, r#"ΐ"#),
+        (r#"ῖ"#, r#"ῖ"#, r#"ῖ"#, r#"ῖ"#, r#"ῖ"#),
+        (r#"ῗ"#, r#"ῗ"#, r#"ῗ"#, r#"ῗ"#, r#"ῗ"#),
+        (r#"Ῐ"#, r#"Ῐ"#, r#"Ῐ"#, r#"Ῐ"#, r#"Ῐ"#),
+        (r#"Ῑ"#, r#"Ῑ"#, r#"Ῑ"#, r#"Ῑ"#, r#"Ῑ"#),
+        (r#"Ὶ"#, r#"Ὶ"#, r#"Ὶ"#, r#"Ὶ"#, r#"Ὶ"#),
+        (r#"Ί"#, r#"Ί"#, r#"Ί"#, r#"Ί"#, r#"Ί"#),
+        (r#"῝"#, r#"῝"#, r#"῝"#, r#" ̔̀"#, r#" ̔̀"#),
+        (r#"῞"#, r#"῞"#, r#"῞"#, r#" ̔́"#, r#" ̔́"#),
+        (r#"῟"#, r#"῟"#, r#"῟"#, r#" ̔͂"#, r#" ̔͂"#),
+        (r#"ῠ"#, r#"ῠ"#, r#"ῠ"#, r#"ῠ"#, r#"ῠ"#),
+        (r#"ῡ"#, r#"ῡ"#, r#"ῡ"#, r#"ῡ"#, r#"ῡ"#),
+        (r#"ῢ"#, r#"ῢ"#, r#"ῢ"#, r#"ῢ"#, r#"ῢ"#),
+        (r#"ΰ"#, r#"ΰ"#, r#"ΰ"#, r#"ΰ"#, r#"ΰ"#),
+        (r#"ῤ"#, r#"ῤ"#, r#"ῤ"#, r#"ῤ"#, r#"ῤ"#),
+        (r#"ῥ"#, r#"ῥ"#, r#"ῥ"#, r#"ῥ"#, r#"ῥ"#),
+        (r#"ῦ"#, r#"ῦ"#, r#"ῦ"#, r#"ῦ"#, r#"ῦ"#),
+        (r#"ῧ"#, r#"ῧ"#, r#"ῧ"#, r#"ῧ"#, r#"ῧ"#),
+        (r#"Ῠ"#, r#"Ῠ"#, r#"Ῠ"#, r#"Ῠ"#, r#"Ῠ"#),
+        (r#"Ῡ"#, r#"Ῡ"#, r#"Ῡ"#, r#"Ῡ"#, r#"Ῡ"#),
+        (r#"Ὺ"#, r#"Ὺ"#, r#"Ὺ"#, r#"Ὺ"#, r#"Ὺ"#),
+        (r#"Ύ"#, r#"Ύ"#, r#"Ύ"#, r#"Ύ"#, r#"Ύ"#),
+        (r#"Ῥ"#, r#"Ῥ"#, r#"Ῥ"#, r#"Ῥ"#, r#"Ῥ"#),
+        (r#"῭"#, r#"῭"#, r#"῭"#, r#" ̈̀"#, r#" ̈̀"#),
+        (r#"΅"#, r#"΅"#, r#"΅"#, r#" ̈́"#, r#" ̈́"#),
+        (r#"`"#, r#"`"#, r#"`"#, r#"`"#, r#"`"#),
+        (r#"ῲ"#, r#"ῲ"#, r#"ῲ"#, r#"ῲ"#, r#"ῲ"#),
+        (r#"ῳ"#, r#"ῳ"#, r#"ῳ"#, r#"ῳ"#, r#"ῳ"#),
+        (r#"ῴ"#, r#"ῴ"#, r#"ῴ"#, r#"ῴ"#, r#"ῴ"#),
+        (r#"ῶ"#, r#"ῶ"#, r#"ῶ"#, r#"ῶ"#, r#"ῶ"#),
+        (r#"ῷ"#, r#"ῷ"#, r#"ῷ"#, r#"ῷ"#, r#"ῷ"#),
+        (r#"Ὸ"#, r#"Ὸ"#, r#"Ὸ"#, r#"Ὸ"#, r#"Ὸ"#),
+        (r#"Ό"#, r#"Ό"#, r#"Ό"#, r#"Ό"#, r#"Ό"#),
+        (r#"Ὼ"#, r#"Ὼ"#, r#"Ὼ"#, r#"Ὼ"#, r#"Ὼ"#),
+        (r#"Ώ"#, r#"Ώ"#, r#"Ώ"#, r#"Ώ"#, r#"Ώ"#),
+        (r#"ῼ"#, r#"ῼ"#, r#"ῼ"#, r#"ῼ"#, r#"ῼ"#),
+        (r#"´"#, r#"´"#, r#"´"#, r#" ́"#, r#" ́"#),
+        (r#"῾"#, r#"῾"#, r#"῾"#, r#" ̔"#, r#" ̔"#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#"‑"#, r#"‑"#, r#"‑"#, r#"‐"#, r#"‐"#),
+        (r#"‗"#, r#"‗"#, r#"‗"#, r#" ̳"#, r#" ̳"#),
+        (r#"․"#, r#"․"#, r#"․"#, r#"."#, r#"."#),
+        (r#"‥"#, r#"‥"#, r#"‥"#, r#".."#, r#".."#),
+        (r#"…"#, r#"…"#, r#"…"#, r#"..."#, r#"..."#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#"″"#, r#"″"#, r#"″"#, r#"′′"#, r#"′′"#),
+        (r#"‴"#, r#"‴"#, r#"‴"#, r#"′′′"#, r#"′′′"#),
+        (r#"‶"#, r#"‶"#, r#"‶"#, r#"‵‵"#, r#"‵‵"#),
+        (r#"‷"#, r#"‷"#, r#"‷"#, r#"‵‵‵"#, r#"‵‵‵"#),
+        (r#"‼"#, r#"‼"#, r#"‼"#, r#"!!"#, r#"!!"#),
+        (r#"‾"#, r#"‾"#, r#"‾"#, r#" ̅"#, r#" ̅"#),
+        (r#"⁇"#, r#"⁇"#, r#"⁇"#, r#"??"#, r#"??"#),
+        (r#"⁈"#, r#"⁈"#, r#"⁈"#, r#"?!"#, r#"?!"#),
+        (r#"⁉"#, r#"⁉"#, r#"⁉"#, r#"!?"#, r#"!?"#),
+        (r#"⁗"#, r#"⁗"#, r#"⁗"#, r#"′′′′"#, r#"′′′′"#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#"⁰"#, r#"⁰"#, r#"⁰"#, r#"0"#, r#"0"#),
+        (r#"ⁱ"#, r#"ⁱ"#, r#"ⁱ"#, r#"i"#, r#"i"#),
+        (r#"⁴"#, r#"⁴"#, r#"⁴"#, r#"4"#, r#"4"#),
+        (r#"⁵"#, r#"⁵"#, r#"⁵"#, r#"5"#, r#"5"#),
+        (r#"⁶"#, r#"⁶"#, r#"⁶"#, r#"6"#, r#"6"#),
+        (r#"⁷"#, r#"⁷"#, r#"⁷"#, r#"7"#, r#"7"#),
+        (r#"⁸"#, r#"⁸"#, r#"⁸"#, r#"8"#, r#"8"#),
+        (r#"⁹"#, r#"⁹"#, r#"⁹"#, r#"9"#, r#"9"#),
+        (r#"⁺"#, r#"⁺"#, r#"⁺"#, r#"+"#, r#"+"#),
+        (r#"⁻"#, r#"⁻"#, r#"⁻"#, r#"−"#, r#"−"#),
+        (r#"⁼"#, r#"⁼"#, r#"⁼"#, r#"="#, r#"="#),
+        (r#"⁽"#, r#"⁽"#, r#"⁽"#, r#"("#, r#"("#),
+        (r#"⁾"#, r#"⁾"#, r#"⁾"#, r#")"#, r#")"#),
+        (r#"ⁿ"#, r#"ⁿ"#, r#"ⁿ"#, r#"n"#, r#"n"#),
+        (r#"₀"#, r#"₀"#, r#"₀"#, r#"0"#, r#"0"#),
+        (r#"₁"#, r#"₁"#, r#"₁"#, r#"1"#, r#"1"#),
+        (r#"₂"#, r#"₂"#, r#"₂"#, r#"2"#, r#"2"#),
+        (r#"₃"#, r#"₃"#, r#"₃"#, r#"3"#, r#"3"#),
+        (r#"₄"#, r#"₄"#, r#"₄"#, r#"4"#, r#"4"#),
+        (r#"₅"#, r#"₅"#, r#"₅"#, r#"5"#, r#"5"#),
+        (r#"₆"#, r#"₆"#, r#"₆"#, r#"6"#, r#"6"#),
+        (r#"₇"#, r#"₇"#, r#"₇"#, r#"7"#, r#"7"#),
+        (r#"₈"#, r#"₈"#, r#"₈"#, r#"8"#, r#"8"#),
+        (r#"₉"#, r#"₉"#, r#"₉"#, r#"9"#, r#"9"#),
+        (r#"₊"#, r#"₊"#, r#"₊"#, r#"+"#, r#"+"#),
+        (r#"₋"#, r#"₋"#, r#"₋"#, r#"−"#, r#"−"#),
+        (r#"₌"#, r#"₌"#, r#"₌"#, r#"="#, r#"="#),
+        (r#"₍"#, r#"₍"#, r#"₍"#, r#"("#, r#"("#),
+        (r#"₎"#, r#"₎"#, r#"₎"#, r#")"#, r#")"#),
+        (r#"ₐ"#, r#"ₐ"#, r#"ₐ"#, r#"a"#, r#"a"#),
+        (r#"ₑ"#, r#"ₑ"#, r#"ₑ"#, r#"e"#, r#"e"#),
+        (r#"ₒ"#, r#"ₒ"#, r#"ₒ"#, r#"o"#, r#"o"#),
+        (r#"ₓ"#, r#"ₓ"#, r#"ₓ"#, r#"x"#, r#"x"#),
+        (r#"ₔ"#, r#"ₔ"#, r#"ₔ"#, r#"ə"#, r#"ə"#),
+        (r#"ₕ"#, r#"ₕ"#, r#"ₕ"#, r#"h"#, r#"h"#),
+        (r#"ₖ"#, r#"ₖ"#, r#"ₖ"#, r#"k"#, r#"k"#),
+        (r#"ₗ"#, r#"ₗ"#, r#"ₗ"#, r#"l"#, r#"l"#),
+        (r#"ₘ"#, r#"ₘ"#, r#"ₘ"#, r#"m"#, r#"m"#),
+        (r#"ₙ"#, r#"ₙ"#, r#"ₙ"#, r#"n"#, r#"n"#),
+        (r#"ₚ"#, r#"ₚ"#, r#"ₚ"#, r#"p"#, r#"p"#),
+        (r#"ₛ"#, r#"ₛ"#, r#"ₛ"#, r#"s"#, r#"s"#),
+        (r#"ₜ"#, r#"ₜ"#, r#"ₜ"#, r#"t"#, r#"t"#),
+        (r#"₨"#, r#"₨"#, r#"₨"#, r#"Rs"#, r#"Rs"#),
+        (r#"℀"#, r#"℀"#, r#"℀"#, r#"a/c"#, r#"a/c"#),
+        (r#"℁"#, r#"℁"#, r#"℁"#, r#"a/s"#, r#"a/s"#),
+        (r#"ℂ"#, r#"ℂ"#, r#"ℂ"#, r#"C"#, r#"C"#),
+        (r#"℃"#, r#"℃"#, r#"℃"#, r#"°C"#, r#"°C"#),
+        (r#"℅"#, r#"℅"#, r#"℅"#, r#"c/o"#, r#"c/o"#),
+        (r#"℆"#, r#"℆"#, r#"℆"#, r#"c/u"#, r#"c/u"#),
+        (r#"ℇ"#, r#"ℇ"#, r#"ℇ"#, r#"Ɛ"#, r#"Ɛ"#),
+        (r#"℉"#, r#"℉"#, r#"℉"#, r#"°F"#, r#"°F"#),
+        (r#"ℊ"#, r#"ℊ"#, r#"ℊ"#, r#"g"#, r#"g"#),
+        (r#"ℋ"#, r#"ℋ"#, r#"ℋ"#, r#"H"#, r#"H"#),
+        (r#"ℌ"#, r#"ℌ"#, r#"ℌ"#, r#"H"#, r#"H"#),
+        (r#"ℍ"#, r#"ℍ"#, r#"ℍ"#, r#"H"#, r#"H"#),
+        (r#"ℎ"#, r#"ℎ"#, r#"ℎ"#, r#"h"#, r#"h"#),
+        (r#"ℏ"#, r#"ℏ"#, r#"ℏ"#, r#"ħ"#, r#"ħ"#),
+        (r#"ℐ"#, r#"ℐ"#, r#"ℐ"#, r#"I"#, r#"I"#),
+        (r#"ℑ"#, r#"ℑ"#, r#"ℑ"#, r#"I"#, r#"I"#),
+        (r#"ℒ"#, r#"ℒ"#, r#"ℒ"#, r#"L"#, r#"L"#),
+        (r#"ℓ"#, r#"ℓ"#, r#"ℓ"#, r#"l"#, r#"l"#),
+        (r#"ℕ"#, r#"ℕ"#, r#"ℕ"#, r#"N"#, r#"N"#),
+        (r#"№"#, r#"№"#, r#"№"#, r#"No"#, r#"No"#),
+        (r#"ℙ"#, r#"ℙ"#, r#"ℙ"#, r#"P"#, r#"P"#),
+        (r#"ℚ"#, r#"ℚ"#, r#"ℚ"#, r#"Q"#, r#"Q"#),
+        (r#"ℛ"#, r#"ℛ"#, r#"ℛ"#, r#"R"#, r#"R"#),
+        (r#"ℜ"#, r#"ℜ"#, r#"ℜ"#, r#"R"#, r#"R"#),
+        (r#"ℝ"#, r#"ℝ"#, r#"ℝ"#, r#"R"#, r#"R"#),
+        (r#"℠"#, r#"℠"#, r#"℠"#, r#"SM"#, r#"SM"#),
+        (r#"℡"#, r#"℡"#, r#"℡"#, r#"TEL"#, r#"TEL"#),
+        (r#"™"#, r#"™"#, r#"™"#, r#"TM"#, r#"TM"#),
+        (r#"ℤ"#, r#"ℤ"#, r#"ℤ"#, r#"Z"#, r#"Z"#),
+        (r#"Ω"#, r#"Ω"#, r#"Ω"#, r#"Ω"#, r#"Ω"#),
+        (r#"ℨ"#, r#"ℨ"#, r#"ℨ"#, r#"Z"#, r#"Z"#),
+        (r#"K"#, r#"K"#, r#"K"#, r#"K"#, r#"K"#),
+        (r#"Å"#, r#"Å"#, r#"Å"#, r#"Å"#, r#"Å"#),
+        (r#"ℬ"#, r#"ℬ"#, r#"ℬ"#, r#"B"#, r#"B"#),
+        (r#"ℭ"#, r#"ℭ"#, r#"ℭ"#, r#"C"#, r#"C"#),
+        (r#"ℯ"#, r#"ℯ"#, r#"ℯ"#, r#"e"#, r#"e"#),
+        (r#"ℰ"#, r#"ℰ"#, r#"ℰ"#, r#"E"#, r#"E"#),
+        (r#"ℱ"#, r#"ℱ"#, r#"ℱ"#, r#"F"#, r#"F"#),
+        (r#"ℳ"#, r#"ℳ"#, r#"ℳ"#, r#"M"#, r#"M"#),
+        (r#"ℴ"#, r#"ℴ"#, r#"ℴ"#, r#"o"#, r#"o"#),
+        (r#"ℵ"#, r#"ℵ"#, r#"ℵ"#, r#"א"#, r#"א"#),
+        (r#"ℶ"#, r#"ℶ"#, r#"ℶ"#, r#"ב"#, r#"ב"#),
+        (r#"ℷ"#, r#"ℷ"#, r#"ℷ"#, r#"ג"#, r#"ג"#),
+        (r#"ℸ"#, r#"ℸ"#, r#"ℸ"#, r#"ד"#, r#"ד"#),
+        (r#"ℹ"#, r#"ℹ"#, r#"ℹ"#, r#"i"#, r#"i"#),
+        (r#"℻"#, r#"℻"#, r#"℻"#, r#"FAX"#, r#"FAX"#),
+        (r#"ℼ"#, r#"ℼ"#, r#"ℼ"#, r#"π"#, r#"π"#),
+        (r#"ℽ"#, r#"ℽ"#, r#"ℽ"#, r#"γ"#, r#"γ"#),
+        (r#"ℾ"#, r#"ℾ"#, r#"ℾ"#, r#"Γ"#, r#"Γ"#),
+        (r#"ℿ"#, r#"ℿ"#, r#"ℿ"#, r#"Π"#, r#"Π"#),
+        (r#"⅀"#, r#"⅀"#, r#"⅀"#, r#"∑"#, r#"∑"#),
+        (r#"ⅅ"#, r#"ⅅ"#, r#"ⅅ"#, r#"D"#, r#"D"#),
+        (r#"ⅆ"#, r#"ⅆ"#, r#"ⅆ"#, r#"d"#, r#"d"#),
+        (r#"ⅇ"#, r#"ⅇ"#, r#"ⅇ"#, r#"e"#, r#"e"#),
+        (r#"ⅈ"#, r#"ⅈ"#, r#"ⅈ"#, r#"i"#, r#"i"#),
+        (r#"ⅉ"#, r#"ⅉ"#, r#"ⅉ"#, r#"j"#, r#"j"#),
+        (r#"⅐"#, r#"⅐"#, r#"⅐"#, r#"1⁄7"#, r#"1⁄7"#),
+        (r#"⅑"#, r#"⅑"#, r#"⅑"#, r#"1⁄9"#, r#"1⁄9"#),
+        (r#"⅒"#, r#"⅒"#, r#"⅒"#, r#"1⁄10"#, r#"1⁄10"#),
+        (r#"⅓"#, r#"⅓"#, r#"⅓"#, r#"1⁄3"#, r#"1⁄3"#),
+        (r#"⅔"#, r#"⅔"#, r#"⅔"#, r#"2⁄3"#, r#"2⁄3"#),
+        (r#"⅕"#, r#"⅕"#, r#"⅕"#, r#"1⁄5"#, r#"1⁄5"#),
+        (r#"⅖"#, r#"⅖"#, r#"⅖"#, r#"2⁄5"#, r#"2⁄5"#),
+        (r#"⅗"#, r#"⅗"#, r#"⅗"#, r#"3⁄5"#, r#"3⁄5"#),
+        (r#"⅘"#, r#"⅘"#, r#"⅘"#, r#"4⁄5"#, r#"4⁄5"#),
+        (r#"⅙"#, r#"⅙"#, r#"⅙"#, r#"1⁄6"#, r#"1⁄6"#),
+        (r#"⅚"#, r#"⅚"#, r#"⅚"#, r#"5⁄6"#, r#"5⁄6"#),
+        (r#"⅛"#, r#"⅛"#, r#"⅛"#, r#"1⁄8"#, r#"1⁄8"#),
+        (r#"⅜"#, r#"⅜"#, r#"⅜"#, r#"3⁄8"#, r#"3⁄8"#),
+        (r#"⅝"#, r#"⅝"#, r#"⅝"#, r#"5⁄8"#, r#"5⁄8"#),
+        (r#"⅞"#, r#"⅞"#, r#"⅞"#, r#"7⁄8"#, r#"7⁄8"#),
+        (r#"⅟"#, r#"⅟"#, r#"⅟"#, r#"1⁄"#, r#"1⁄"#),
+        (r#"Ⅰ"#, r#"Ⅰ"#, r#"Ⅰ"#, r#"I"#, r#"I"#),
+        (r#"Ⅱ"#, r#"Ⅱ"#, r#"Ⅱ"#, r#"II"#, r#"II"#),
+        (r#"Ⅲ"#, r#"Ⅲ"#, r#"Ⅲ"#, r#"III"#, r#"III"#),
+        (r#"Ⅳ"#, r#"Ⅳ"#, r#"Ⅳ"#, r#"IV"#, r#"IV"#),
+        (r#"Ⅴ"#, r#"Ⅴ"#, r#"Ⅴ"#, r#"V"#, r#"V"#),
+        (r#"Ⅵ"#, r#"Ⅵ"#, r#"Ⅵ"#, r#"VI"#, r#"VI"#),
+        (r#"Ⅶ"#, r#"Ⅶ"#, r#"Ⅶ"#, r#"VII"#, r#"VII"#),
+        (r#"Ⅷ"#, r#"Ⅷ"#, r#"Ⅷ"#, r#"VIII"#, r#"VIII"#),
+        (r#"Ⅸ"#, r#"Ⅸ"#, r#"Ⅸ"#, r#"IX"#, r#"IX"#),
+        (r#"Ⅹ"#, r#"Ⅹ"#, r#"Ⅹ"#, r#"X"#, r#"X"#),
+        (r#"Ⅺ"#, r#"Ⅺ"#, r#"Ⅺ"#, r#"XI"#, r#"XI"#),
+        (r#"Ⅻ"#, r#"Ⅻ"#, r#"Ⅻ"#, r#"XII"#, r#"XII"#),
+        (r#"Ⅼ"#, r#"Ⅼ"#, r#"Ⅼ"#, r#"L"#, r#"L"#),
+        (r#"Ⅽ"#, r#"Ⅽ"#, r#"Ⅽ"#, r#"C"#, r#"C"#),
+        (r#"Ⅾ"#, r#"Ⅾ"#, r#"Ⅾ"#, r#"D"#, r#"D"#),
+        (r#"Ⅿ"#, r#"Ⅿ"#, r#"Ⅿ"#, r#"M"#, r#"M"#),
+        (r#"ⅰ"#, r#"ⅰ"#, r#"ⅰ"#, r#"i"#, r#"i"#),
+        (r#"ⅱ"#, r#"ⅱ"#, r#"ⅱ"#, r#"ii"#, r#"ii"#),
+        (r#"ⅲ"#, r#"ⅲ"#, r#"ⅲ"#, r#"iii"#, r#"iii"#),
+        (r#"ⅳ"#, r#"ⅳ"#, r#"ⅳ"#, r#"iv"#, r#"iv"#),
+        (r#"ⅴ"#, r#"ⅴ"#, r#"ⅴ"#, r#"v"#, r#"v"#),
+        (r#"ⅵ"#, r#"ⅵ"#, r#"ⅵ"#, r#"vi"#, r#"vi"#),
+        (r#"ⅶ"#, r#"ⅶ"#, r#"ⅶ"#, r#"vii"#, r#"vii"#),
+        (r#"ⅷ"#, r#"ⅷ"#, r#"ⅷ"#, r#"viii"#, r#"viii"#),
+        (r#"ⅸ"#, r#"ⅸ"#, r#"ⅸ"#, r#"ix"#, r#"ix"#),
+        (r#"ⅹ"#, r#"ⅹ"#, r#"ⅹ"#, r#"x"#, r#"x"#),
+        (r#"ⅺ"#, r#"ⅺ"#, r#"ⅺ"#, r#"xi"#, r#"xi"#),
+        (r#"ⅻ"#, r#"ⅻ"#, r#"ⅻ"#, r#"xii"#, r#"xii"#),
+        (r#"ⅼ"#, r#"ⅼ"#, r#"ⅼ"#, r#"l"#, r#"l"#),
+        (r#"ⅽ"#, r#"ⅽ"#, r#"ⅽ"#, r#"c"#, r#"c"#),
+        (r#"ⅾ"#, r#"ⅾ"#, r#"ⅾ"#, r#"d"#, r#"d"#),
+        (r#"ⅿ"#, r#"ⅿ"#, r#"ⅿ"#, r#"m"#, r#"m"#),
+        (r#"↉"#, r#"↉"#, r#"↉"#, r#"0⁄3"#, r#"0⁄3"#),
+        (r#"↚"#, r#"↚"#, r#"↚"#, r#"↚"#, r#"↚"#),
+        (r#"↛"#, r#"↛"#, r#"↛"#, r#"↛"#, r#"↛"#),
+        (r#"↮"#, r#"↮"#, r#"↮"#, r#"↮"#, r#"↮"#),
+        (r#"⇍"#, r#"⇍"#, r#"⇍"#, r#"⇍"#, r#"⇍"#),
+        (r#"⇎"#, r#"⇎"#, r#"⇎"#, r#"⇎"#, r#"⇎"#),
+        (r#"⇏"#, r#"⇏"#, r#"⇏"#, r#"⇏"#, r#"⇏"#),
+        (r#"∄"#, r#"∄"#, r#"∄"#, r#"∄"#, r#"∄"#),
+        (r#"∉"#, r#"∉"#, r#"∉"#, r#"∉"#, r#"∉"#),
+        (r#"∌"#, r#"∌"#, r#"∌"#, r#"∌"#, r#"∌"#),
+        (r#"∤"#, r#"∤"#, r#"∤"#, r#"∤"#, r#"∤"#),
+        (r#"∦"#, r#"∦"#, r#"∦"#, r#"∦"#, r#"∦"#),
+        (r#"∬"#, r#"∬"#, r#"∬"#, r#"∫∫"#, r#"∫∫"#),
+        (r#"∭"#, r#"∭"#, r#"∭"#, r#"∫∫∫"#, r#"∫∫∫"#),
+        (r#"∯"#, r#"∯"#, r#"∯"#, r#"∮∮"#, r#"∮∮"#),
+        (r#"∰"#, r#"∰"#, r#"∰"#, r#"∮∮∮"#, r#"∮∮∮"#),
+        (r#"≁"#, r#"≁"#, r#"≁"#, r#"≁"#, r#"≁"#),
+        (r#"≄"#, r#"≄"#, r#"≄"#, r#"≄"#, r#"≄"#),
+        (r#"≇"#, r#"≇"#, r#"≇"#, r#"≇"#, r#"≇"#),
+        (r#"≉"#, r#"≉"#, r#"≉"#, r#"≉"#, r#"≉"#),
+        (r#"≠"#, r#"≠"#, r#"≠"#, r#"≠"#, r#"≠"#),
+        (r#"≢"#, r#"≢"#, r#"≢"#, r#"≢"#, r#"≢"#),
+        (r#"≭"#, r#"≭"#, r#"≭"#, r#"≭"#, r#"≭"#),
+        (r#"≮"#, r#"≮"#, r#"≮"#, r#"≮"#, r#"≮"#),
+        (r#"≯"#, r#"≯"#, r#"≯"#, r#"≯"#, r#"≯"#),
+        (r#"≰"#, r#"≰"#, r#"≰"#, r#"≰"#, r#"≰"#),
+        (r#"≱"#, r#"≱"#, r#"≱"#, r#"≱"#, r#"≱"#),
+        (r#"≴"#, r#"≴"#, r#"≴"#, r#"≴"#, r#"≴"#),
+        (r#"≵"#, r#"≵"#, r#"≵"#, r#"≵"#, r#"≵"#),
+        (r#"≸"#, r#"≸"#, r#"≸"#, r#"≸"#, r#"≸"#),
+        (r#"≹"#, r#"≹"#, r#"≹"#, r#"≹"#, r#"≹"#),
+        (r#"⊀"#, r#"⊀"#, r#"⊀"#, r#"⊀"#, r#"⊀"#),
+        (r#"⊁"#, r#"⊁"#, r#"⊁"#, r#"⊁"#, r#"⊁"#),
+        (r#"⊄"#, r#"⊄"#, r#"⊄"#, r#"⊄"#, r#"⊄"#),
+        (r#"⊅"#, r#"⊅"#, r#"⊅"#, r#"⊅"#, r#"⊅"#),
+        (r#"⊈"#, r#"⊈"#, r#"⊈"#, r#"⊈"#, r#"⊈"#),
+        (r#"⊉"#, r#"⊉"#, r#"⊉"#, r#"⊉"#, r#"⊉"#),
+        (r#"⊬"#, r#"⊬"#, r#"⊬"#, r#"⊬"#, r#"⊬"#),
+        (r#"⊭"#, r#"⊭"#, r#"⊭"#, r#"⊭"#, r#"⊭"#),
+        (r#"⊮"#, r#"⊮"#, r#"⊮"#, r#"⊮"#, r#"⊮"#),
+        (r#"⊯"#, r#"⊯"#, r#"⊯"#, r#"⊯"#, r#"⊯"#),
+        (r#"⋠"#, r#"⋠"#, r#"⋠"#, r#"⋠"#, r#"⋠"#),
+        (r#"⋡"#, r#"⋡"#, r#"⋡"#, r#"⋡"#, r#"⋡"#),
+        (r#"⋢"#, r#"⋢"#, r#"⋢"#, r#"⋢"#, r#"⋢"#),
+        (r#"⋣"#, r#"⋣"#, r#"⋣"#, r#"⋣"#, r#"⋣"#),
+        (r#"⋪"#, r#"⋪"#, r#"⋪"#, r#"⋪"#, r#"⋪"#),
+        (r#"⋫"#, r#"⋫"#, r#"⋫"#, r#"⋫"#, r#"⋫"#),
+        (r#"⋬"#, r#"⋬"#, r#"⋬"#, r#"⋬"#, r#"⋬"#),
+        (r#"⋭"#, r#"⋭"#, r#"⋭"#, r#"⋭"#, r#"⋭"#),
+        (r#"⟨"#, r#"〈"#, r#"〈"#, r#"〈"#, r#"〈"#),
+        (r#"⟩"#, r#"〉"#, r#"〉"#, r#"〉"#, r#"〉"#),
+        (r#"①"#, r#"①"#, r#"①"#, r#"1"#, r#"1"#),
+        (r#"②"#, r#"②"#, r#"②"#, r#"2"#, r#"2"#),
+        (r#"③"#, r#"③"#, r#"③"#, r#"3"#, r#"3"#),
+        (r#"④"#, r#"④"#, r#"④"#, r#"4"#, r#"4"#),
+        (r#"⑤"#, r#"⑤"#, r#"⑤"#, r#"5"#, r#"5"#),
+        (r#"⑥"#, r#"⑥"#, r#"⑥"#, r#"6"#, r#"6"#),
+        (r#"⑦"#, r#"⑦"#, r#"⑦"#, r#"7"#, r#"7"#),
+        (r#"⑧"#, r#"⑧"#, r#"⑧"#, r#"8"#, r#"8"#),
+        (r#"⑨"#, r#"⑨"#, r#"⑨"#, r#"9"#, r#"9"#),
+        (r#"⑩"#, r#"⑩"#, r#"⑩"#, r#"10"#, r#"10"#),
+        (r#"⑪"#, r#"⑪"#, r#"⑪"#, r#"11"#, r#"11"#),
+        (r#"⑫"#, r#"⑫"#, r#"⑫"#, r#"12"#, r#"12"#),
+        (r#"⑬"#, r#"⑬"#, r#"⑬"#, r#"13"#, r#"13"#),
+        (r#"⑭"#, r#"⑭"#, r#"⑭"#, r#"14"#, r#"14"#),
+        (r#"⑮"#, r#"⑮"#, r#"⑮"#, r#"15"#, r#"15"#),
+        (r#"⑯"#, r#"⑯"#, r#"⑯"#, r#"16"#, r#"16"#),
+        (r#"⑰"#, r#"⑰"#, r#"⑰"#, r#"17"#, r#"17"#),
+        (r#"⑱"#, r#"⑱"#, r#"⑱"#, r#"18"#, r#"18"#),
+        (r#"⑲"#, r#"⑲"#, r#"⑲"#, r#"19"#, r#"19"#),
+        (r#"⑳"#, r#"⑳"#, r#"⑳"#, r#"20"#, r#"20"#),
+        (r#"⑴"#, r#"⑴"#, r#"⑴"#, r#"(1)"#, r#"(1)"#),
+        (r#"⑵"#, r#"⑵"#, r#"⑵"#, r#"(2)"#, r#"(2)"#),
+        (r#"⑶"#, r#"⑶"#, r#"⑶"#, r#"(3)"#, r#"(3)"#),
+        (r#"⑷"#, r#"⑷"#, r#"⑷"#, r#"(4)"#, r#"(4)"#),
+        (r#"⑸"#, r#"⑸"#, r#"⑸"#, r#"(5)"#, r#"(5)"#),
+        (r#"⑹"#, r#"⑹"#, r#"⑹"#, r#"(6)"#, r#"(6)"#),
+        (r#"⑺"#, r#"⑺"#, r#"⑺"#, r#"(7)"#, r#"(7)"#),
+        (r#"⑻"#, r#"⑻"#, r#"⑻"#, r#"(8)"#, r#"(8)"#),
+        (r#"⑼"#, r#"⑼"#, r#"⑼"#, r#"(9)"#, r#"(9)"#),
+        (r#"⑽"#, r#"⑽"#, r#"⑽"#, r#"(10)"#, r#"(10)"#),
+        (r#"⑾"#, r#"⑾"#, r#"⑾"#, r#"(11)"#, r#"(11)"#),
+        (r#"⑿"#, r#"⑿"#, r#"⑿"#, r#"(12)"#, r#"(12)"#),
+        (r#"⒀"#, r#"⒀"#, r#"⒀"#, r#"(13)"#, r#"(13)"#),
+        (r#"⒁"#, r#"⒁"#, r#"⒁"#, r#"(14)"#, r#"(14)"#),
+        (r#"⒂"#, r#"⒂"#, r#"⒂"#, r#"(15)"#, r#"(15)"#),
+        (r#"⒃"#, r#"⒃"#, r#"⒃"#, r#"(16)"#, r#"(16)"#),
+        (r#"⒄"#, r#"⒄"#, r#"⒄"#, r#"(17)"#, r#"(17)"#),
+        (r#"⒅"#, r#"⒅"#, r#"⒅"#, r#"(18)"#, r#"(18)"#),
+        (r#"⒆"#, r#"⒆"#, r#"⒆"#, r#"(19)"#, r#"(19)"#),
+        (r#"⒇"#, r#"⒇"#, r#"⒇"#, r#"(20)"#, r#"(20)"#),
+        (r#"⒈"#, r#"⒈"#, r#"⒈"#, r#"1."#, r#"1."#),
+        (r#"⒉"#, r#"⒉"#, r#"⒉"#, r#"2."#, r#"2."#),
+        (r#"⒊"#, r#"⒊"#, r#"⒊"#, r#"3."#, r#"3."#),
+        (r#"⒋"#, r#"⒋"#, r#"⒋"#, r#"4."#, r#"4."#),
+        (r#"⒌"#, r#"⒌"#, r#"⒌"#, r#"5."#, r#"5."#),
+        (r#"⒍"#, r#"⒍"#, r#"⒍"#, r#"6."#, r#"6."#),
+        (r#"⒎"#, r#"⒎"#, r#"⒎"#, r#"7."#, r#"7."#),
+        (r#"⒏"#, r#"⒏"#, r#"⒏"#, r#"8."#, r#"8."#),
+        (r#"⒐"#, r#"⒐"#, r#"⒐"#, r#"9."#, r#"9."#),
+        (r#"⒑"#, r#"⒑"#, r#"⒑"#, r#"10."#, r#"10."#),
+        (r#"⒒"#, r#"⒒"#, r#"⒒"#, r#"11."#, r#"11."#),
+        (r#"⒓"#, r#"⒓"#, r#"⒓"#, r#"12."#, r#"12."#),
+        (r#"⒔"#, r#"⒔"#, r#"⒔"#, r#"13."#, r#"13."#),
+        (r#"⒕"#, r#"⒕"#, r#"⒕"#, r#"14."#, r#"14."#),
+        (r#"⒖"#, r#"⒖"#, r#"⒖"#, r#"15."#, r#"15."#),
+        (r#"⒗"#, r#"⒗"#, r#"⒗"#, r#"16."#, r#"16."#),
+        (r#"⒘"#, r#"⒘"#, r#"⒘"#, r#"17."#, r#"17."#),
+        (r#"⒙"#, r#"⒙"#, r#"⒙"#, r#"18."#, r#"18."#),
+        (r#"⒚"#, r#"⒚"#, r#"⒚"#, r#"19."#, r#"19."#),
+        (r#"⒛"#, r#"⒛"#, r#"⒛"#, r#"20."#, r#"20."#),
+        (r#"⒜"#, r#"⒜"#, r#"⒜"#, r#"(a)"#, r#"(a)"#),
+        (r#"⒝"#, r#"⒝"#, r#"⒝"#, r#"(b)"#, r#"(b)"#),
+        (r#"⒞"#, r#"⒞"#, r#"⒞"#, r#"(c)"#, r#"(c)"#),
+        (r#"⒟"#, r#"⒟"#, r#"⒟"#, r#"(d)"#, r#"(d)"#),
+        (r#"⒠"#, r#"⒠"#, r#"⒠"#, r#"(e)"#, r#"(e)"#),
+        (r#"⒡"#, r#"⒡"#, r#"⒡"#, r#"(f)"#, r#"(f)"#),
+        (r#"⒢"#, r#"⒢"#, r#"⒢"#, r#"(g)"#, r#"(g)"#),
+        (r#"⒣"#, r#"⒣"#, r#"⒣"#, r#"(h)"#, r#"(h)"#),
+        (r#"⒤"#, r#"⒤"#, r#"⒤"#, r#"(i)"#, r#"(i)"#),
+        (r#"⒥"#, r#"⒥"#, r#"⒥"#, r#"(j)"#, r#"(j)"#),
+        (r#"⒦"#, r#"⒦"#, r#"⒦"#, r#"(k)"#, r#"(k)"#),
+        (r#"⒧"#, r#"⒧"#, r#"⒧"#, r#"(l)"#, r#"(l)"#),
+        (r#"⒨"#, r#"⒨"#, r#"⒨"#, r#"(m)"#, r#"(m)"#),
+        (r#"⒩"#, r#"⒩"#, r#"⒩"#, r#"(n)"#, r#"(n)"#),
+        (r#"⒪"#, r#"⒪"#, r#"⒪"#, r#"(o)"#, r#"(o)"#),
+        (r#"⒫"#, r#"⒫"#, r#"⒫"#, r#"(p)"#, r#"(p)"#),
+        (r#"⒬"#, r#"⒬"#, r#"⒬"#, r#"(q)"#, r#"(q)"#),
+        (r#"⒭"#, r#"⒭"#, r#"⒭"#, r#"(r)"#, r#"(r)"#),
+        (r#"⒮"#, r#"⒮"#, r#"⒮"#, r#"(s)"#, r#"(s)"#),
+        (r#"⒯"#, r#"⒯"#, r#"⒯"#, r#"(t)"#, r#"(t)"#),
+        (r#"⒰"#, r#"⒰"#, r#"⒰"#, r#"(u)"#, r#"(u)"#),
+        (r#"⒱"#, r#"⒱"#, r#"⒱"#, r#"(v)"#, r#"(v)"#),
+        (r#"⒲"#, r#"⒲"#, r#"⒲"#, r#"(w)"#, r#"(w)"#),
+        (r#"⒳"#, r#"⒳"#, r#"⒳"#, r#"(x)"#, r#"(x)"#),
+        (r#"⒴"#, r#"⒴"#, r#"⒴"#, r#"(y)"#, r#"(y)"#),
+        (r#"⒵"#, r#"⒵"#, r#"⒵"#, r#"(z)"#, r#"(z)"#),
+        (r#"Ⓐ"#, r#"Ⓐ"#, r#"Ⓐ"#, r#"A"#, r#"A"#),
+        (r#"Ⓑ"#, r#"Ⓑ"#, r#"Ⓑ"#, r#"B"#, r#"B"#),
+        (r#"Ⓒ"#, r#"Ⓒ"#, r#"Ⓒ"#, r#"C"#, r#"C"#),
+        (r#"Ⓓ"#, r#"Ⓓ"#, r#"Ⓓ"#, r#"D"#, r#"D"#),
+        (r#"Ⓔ"#, r#"Ⓔ"#, r#"Ⓔ"#, r#"E"#, r#"E"#),
+        (r#"Ⓕ"#, r#"Ⓕ"#, r#"Ⓕ"#, r#"F"#, r#"F"#),
+        (r#"Ⓖ"#, r#"Ⓖ"#, r#"Ⓖ"#, r#"G"#, r#"G"#),
+        (r#"Ⓗ"#, r#"Ⓗ"#, r#"Ⓗ"#, r#"H"#, r#"H"#),
+        (r#"Ⓘ"#, r#"Ⓘ"#, r#"Ⓘ"#, r#"I"#, r#"I"#),
+        (r#"Ⓙ"#, r#"Ⓙ"#, r#"Ⓙ"#, r#"J"#, r#"J"#),
+        (r#"Ⓚ"#, r#"Ⓚ"#, r#"Ⓚ"#, r#"K"#, r#"K"#),
+        (r#"Ⓛ"#, r#"Ⓛ"#, r#"Ⓛ"#, r#"L"#, r#"L"#),
+        (r#"Ⓜ"#, r#"Ⓜ"#, r#"Ⓜ"#, r#"M"#, r#"M"#),
+        (r#"Ⓝ"#, r#"Ⓝ"#, r#"Ⓝ"#, r#"N"#, r#"N"#),
+        (r#"Ⓞ"#, r#"Ⓞ"#, r#"Ⓞ"#, r#"O"#, r#"O"#),
+        (r#"Ⓟ"#, r#"Ⓟ"#, r#"Ⓟ"#, r#"P"#, r#"P"#),
+        (r#"Ⓠ"#, r#"Ⓠ"#, r#"Ⓠ"#, r#"Q"#, r#"Q"#),
+        (r#"Ⓡ"#, r#"Ⓡ"#, r#"Ⓡ"#, r#"R"#, r#"R"#),
+        (r#"Ⓢ"#, r#"Ⓢ"#, r#"Ⓢ"#, r#"S"#, r#"S"#),
+        (r#"Ⓣ"#, r#"Ⓣ"#, r#"Ⓣ"#, r#"T"#, r#"T"#),
+        (r#"Ⓤ"#, r#"Ⓤ"#, r#"Ⓤ"#, r#"U"#, r#"U"#),
+        (r#"Ⓥ"#, r#"Ⓥ"#, r#"Ⓥ"#, r#"V"#, r#"V"#),
+        (r#"Ⓦ"#, r#"Ⓦ"#, r#"Ⓦ"#, r#"W"#, r#"W"#),
+        (r#"Ⓧ"#, r#"Ⓧ"#, r#"Ⓧ"#, r#"X"#, r#"X"#),
+        (r#"Ⓨ"#, r#"Ⓨ"#, r#"Ⓨ"#, r#"Y"#, r#"Y"#),
+        (r#"Ⓩ"#, r#"Ⓩ"#, r#"Ⓩ"#, r#"Z"#, r#"Z"#),
+        (r#"ⓐ"#, r#"ⓐ"#, r#"ⓐ"#, r#"a"#, r#"a"#),
+        (r#"ⓑ"#, r#"ⓑ"#, r#"ⓑ"#, r#"b"#, r#"b"#),
+        (r#"ⓒ"#, r#"ⓒ"#, r#"ⓒ"#, r#"c"#, r#"c"#),
+        (r#"ⓓ"#, r#"ⓓ"#, r#"ⓓ"#, r#"d"#, r#"d"#),
+        (r#"ⓔ"#, r#"ⓔ"#, r#"ⓔ"#, r#"e"#, r#"e"#),
+        (r#"ⓕ"#, r#"ⓕ"#, r#"ⓕ"#, r#"f"#, r#"f"#),
+        (r#"ⓖ"#, r#"ⓖ"#, r#"ⓖ"#, r#"g"#, r#"g"#),
+        (r#"ⓗ"#, r#"ⓗ"#, r#"ⓗ"#, r#"h"#, r#"h"#),
+        (r#"ⓘ"#, r#"ⓘ"#, r#"ⓘ"#, r#"i"#, r#"i"#),
+        (r#"ⓙ"#, r#"ⓙ"#, r#"ⓙ"#, r#"j"#, r#"j"#),
+        (r#"ⓚ"#, r#"ⓚ"#, r#"ⓚ"#, r#"k"#, r#"k"#),
+        (r#"ⓛ"#, r#"ⓛ"#, r#"ⓛ"#, r#"l"#, r#"l"#),
+        (r#"ⓜ"#, r#"ⓜ"#, r#"ⓜ"#, r#"m"#, r#"m"#),
+        (r#"ⓝ"#, r#"ⓝ"#, r#"ⓝ"#, r#"n"#, r#"n"#),
+        (r#"ⓞ"#, r#"ⓞ"#, r#"ⓞ"#, r#"o"#, r#"o"#),
+        (r#"ⓟ"#, r#"ⓟ"#, r#"ⓟ"#, r#"p"#, r#"p"#),
+        (r#"ⓠ"#, r#"ⓠ"#, r#"ⓠ"#, r#"q"#, r#"q"#),
+        (r#"ⓡ"#, r#"ⓡ"#, r#"ⓡ"#, r#"r"#, r#"r"#),
+        (r#"ⓢ"#, r#"ⓢ"#, r#"ⓢ"#, r#"s"#, r#"s"#),
+        (r#"ⓣ"#, r#"ⓣ"#, r#"ⓣ"#, r#"t"#, r#"t"#),
+        (r#"ⓤ"#, r#"ⓤ"#, r#"ⓤ"#, r#"u"#, r#"u"#),
+        (r#"ⓥ"#, r#"ⓥ"#, r#"ⓥ"#, r#"v"#, r#"v"#),
+        (r#"ⓦ"#, r#"ⓦ"#, r#"ⓦ"#, r#"w"#, r#"w"#),
+        (r#"ⓧ"#, r#"ⓧ"#, r#"ⓧ"#, r#"x"#, r#"x"#),
+        (r#"ⓨ"#, r#"ⓨ"#, r#"ⓨ"#, r#"y"#, r#"y"#),
+        (r#"ⓩ"#, r#"ⓩ"#, r#"ⓩ"#, r#"z"#, r#"z"#),
+        (r#"⓪"#, r#"⓪"#, r#"⓪"#, r#"0"#, r#"0"#),
+        (r#"⨌"#, r#"⨌"#, r#"⨌"#, r#"∫∫∫∫"#, r#"∫∫∫∫"#),
+        (r#"⩴"#, r#"⩴"#, r#"⩴"#, r#"::="#, r#"::="#),
+        (r#"⩵"#, r#"⩵"#, r#"⩵"#, r#"=="#, r#"=="#),
+        (r#"⩶"#, r#"⩶"#, r#"⩶"#, r#"==="#, r#"==="#),
+        (r#"⫝̸"#, r#"⫝̸"#, r#"⫝̸"#, r#"⫝̸"#, r#"⫝̸"#),
+        (r#"ⱼ"#, r#"ⱼ"#, r#"ⱼ"#, r#"j"#, r#"j"#),
+        (r#"ⱽ"#, r#"ⱽ"#, r#"ⱽ"#, r#"V"#, r#"V"#),
+        (r#"ⵯ"#, r#"ⵯ"#, r#"ⵯ"#, r#"ⵡ"#, r#"ⵡ"#),
+        (r#"⺟"#, r#"⺟"#, r#"⺟"#, r#"母"#, r#"母"#),
+        (r#"⻳"#, r#"⻳"#, r#"⻳"#, r#"龟"#, r#"龟"#),
+        (r#"⼀"#, r#"⼀"#, r#"⼀"#, r#"一"#, r#"一"#),
+        (r#"⼁"#, r#"⼁"#, r#"⼁"#, r#"丨"#, r#"丨"#),
+        (r#"⼂"#, r#"⼂"#, r#"⼂"#, r#"丶"#, r#"丶"#),
+        (r#"⼃"#, r#"⼃"#, r#"⼃"#, r#"丿"#, r#"丿"#),
+        (r#"⼄"#, r#"⼄"#, r#"⼄"#, r#"乙"#, r#"乙"#),
+        (r#"⼅"#, r#"⼅"#, r#"⼅"#, r#"亅"#, r#"亅"#),
+        (r#"⼆"#, r#"⼆"#, r#"⼆"#, r#"二"#, r#"二"#),
+        (r#"⼇"#, r#"⼇"#, r#"⼇"#, r#"亠"#, r#"亠"#),
+        (r#"⼈"#, r#"⼈"#, r#"⼈"#, r#"人"#, r#"人"#),
+        (r#"⼉"#, r#"⼉"#, r#"⼉"#, r#"儿"#, r#"儿"#),
+        (r#"⼊"#, r#"⼊"#, r#"⼊"#, r#"入"#, r#"入"#),
+        (r#"⼋"#, r#"⼋"#, r#"⼋"#, r#"八"#, r#"八"#),
+        (r#"⼌"#, r#"⼌"#, r#"⼌"#, r#"冂"#, r#"冂"#),
+        (r#"⼍"#, r#"⼍"#, r#"⼍"#, r#"冖"#, r#"冖"#),
+        (r#"⼎"#, r#"⼎"#, r#"⼎"#, r#"冫"#, r#"冫"#),
+        (r#"⼏"#, r#"⼏"#, r#"⼏"#, r#"几"#, r#"几"#),
+        (r#"⼐"#, r#"⼐"#, r#"⼐"#, r#"凵"#, r#"凵"#),
+        (r#"⼑"#, r#"⼑"#, r#"⼑"#, r#"刀"#, r#"刀"#),
+        (r#"⼒"#, r#"⼒"#, r#"⼒"#, r#"力"#, r#"力"#),
+        (r#"⼓"#, r#"⼓"#, r#"⼓"#, r#"勹"#, r#"勹"#),
+        (r#"⼔"#, r#"⼔"#, r#"⼔"#, r#"匕"#, r#"匕"#),
+        (r#"⼕"#, r#"⼕"#, r#"⼕"#, r#"匚"#, r#"匚"#),
+        (r#"⼖"#, r#"⼖"#, r#"⼖"#, r#"匸"#, r#"匸"#),
+        (r#"⼗"#, r#"⼗"#, r#"⼗"#, r#"十"#, r#"十"#),
+        (r#"⼘"#, r#"⼘"#, r#"⼘"#, r#"卜"#, r#"卜"#),
+        (r#"⼙"#, r#"⼙"#, r#"⼙"#, r#"卩"#, r#"卩"#),
+        (r#"⼚"#, r#"⼚"#, r#"⼚"#, r#"厂"#, r#"厂"#),
+        (r#"⼛"#, r#"⼛"#, r#"⼛"#, r#"厶"#, r#"厶"#),
+        (r#"⼜"#, r#"⼜"#, r#"⼜"#, r#"又"#, r#"又"#),
+        (r#"⼝"#, r#"⼝"#, r#"⼝"#, r#"口"#, r#"口"#),
+        (r#"⼞"#, r#"⼞"#, r#"⼞"#, r#"囗"#, r#"囗"#),
+        (r#"⼟"#, r#"⼟"#, r#"⼟"#, r#"土"#, r#"土"#),
+        (r#"⼠"#, r#"⼠"#, r#"⼠"#, r#"士"#, r#"士"#),
+        (r#"⼡"#, r#"⼡"#, r#"⼡"#, r#"夂"#, r#"夂"#),
+        (r#"⼢"#, r#"⼢"#, r#"⼢"#, r#"夊"#, r#"夊"#),
+        (r#"⼣"#, r#"⼣"#, r#"⼣"#, r#"夕"#, r#"夕"#),
+        (r#"⼤"#, r#"⼤"#, r#"⼤"#, r#"大"#, r#"大"#),
+        (r#"⼥"#, r#"⼥"#, r#"⼥"#, r#"女"#, r#"女"#),
+        (r#"⼦"#, r#"⼦"#, r#"⼦"#, r#"子"#, r#"子"#),
+        (r#"⼧"#, r#"⼧"#, r#"⼧"#, r#"宀"#, r#"宀"#),
+        (r#"⼨"#, r#"⼨"#, r#"⼨"#, r#"寸"#, r#"寸"#),
+        (r#"⼩"#, r#"⼩"#, r#"⼩"#, r#"小"#, r#"小"#),
+        (r#"⼪"#, r#"⼪"#, r#"⼪"#, r#"尢"#, r#"尢"#),
+        (r#"⼫"#, r#"⼫"#, r#"⼫"#, r#"尸"#, r#"尸"#),
+        (r#"⼬"#, r#"⼬"#, r#"⼬"#, r#"屮"#, r#"屮"#),
+        (r#"⼭"#, r#"⼭"#, r#"⼭"#, r#"山"#, r#"山"#),
+        (r#"⼮"#, r#"⼮"#, r#"⼮"#, r#"巛"#, r#"巛"#),
+        (r#"⼯"#, r#"⼯"#, r#"⼯"#, r#"工"#, r#"工"#),
+        (r#"⼰"#, r#"⼰"#, r#"⼰"#, r#"己"#, r#"己"#),
+        (r#"⼱"#, r#"⼱"#, r#"⼱"#, r#"巾"#, r#"巾"#),
+        (r#"⼲"#, r#"⼲"#, r#"⼲"#, r#"干"#, r#"干"#),
+        (r#"⼳"#, r#"⼳"#, r#"⼳"#, r#"幺"#, r#"幺"#),
+        (r#"⼴"#, r#"⼴"#, r#"⼴"#, r#"广"#, r#"广"#),
+        (r#"⼵"#, r#"⼵"#, r#"⼵"#, r#"廴"#, r#"廴"#),
+        (r#"⼶"#, r#"⼶"#, r#"⼶"#, r#"廾"#, r#"廾"#),
+        (r#"⼷"#, r#"⼷"#, r#"⼷"#, r#"弋"#, r#"弋"#),
+        (r#"⼸"#, r#"⼸"#, r#"⼸"#, r#"弓"#, r#"弓"#),
+        (r#"⼹"#, r#"⼹"#, r#"⼹"#, r#"彐"#, r#"彐"#),
+        (r#"⼺"#, r#"⼺"#, r#"⼺"#, r#"彡"#, r#"彡"#),
+        (r#"⼻"#, r#"⼻"#, r#"⼻"#, r#"彳"#, r#"彳"#),
+        (r#"⼼"#, r#"⼼"#, r#"⼼"#, r#"心"#, r#"心"#),
+        (r#"⼽"#, r#"⼽"#, r#"⼽"#, r#"戈"#, r#"戈"#),
+        (r#"⼾"#, r#"⼾"#, r#"⼾"#, r#"戶"#, r#"戶"#),
+        (r#"⼿"#, r#"⼿"#, r#"⼿"#, r#"手"#, r#"手"#),
+        (r#"⽀"#, r#"⽀"#, r#"⽀"#, r#"支"#, r#"支"#),
+        (r#"⽁"#, r#"⽁"#, r#"⽁"#, r#"攴"#, r#"攴"#),
+        (r#"⽂"#, r#"⽂"#, r#"⽂"#, r#"文"#, r#"文"#),
+        (r#"⽃"#, r#"⽃"#, r#"⽃"#, r#"斗"#, r#"斗"#),
+        (r#"⽄"#, r#"⽄"#, r#"⽄"#, r#"斤"#, r#"斤"#),
+        (r#"⽅"#, r#"⽅"#, r#"⽅"#, r#"方"#, r#"方"#),
+        (r#"⽆"#, r#"⽆"#, r#"⽆"#, r#"无"#, r#"无"#),
+        (r#"⽇"#, r#"⽇"#, r#"⽇"#, r#"日"#, r#"日"#),
+        (r#"⽈"#, r#"⽈"#, r#"⽈"#, r#"曰"#, r#"曰"#),
+        (r#"⽉"#, r#"⽉"#, r#"⽉"#, r#"月"#, r#"月"#),
+        (r#"⽊"#, r#"⽊"#, r#"⽊"#, r#"木"#, r#"木"#),
+        (r#"⽋"#, r#"⽋"#, r#"⽋"#, r#"欠"#, r#"欠"#),
+        (r#"⽌"#, r#"⽌"#, r#"⽌"#, r#"止"#, r#"止"#),
+        (r#"⽍"#, r#"⽍"#, r#"⽍"#, r#"歹"#, r#"歹"#),
+        (r#"⽎"#, r#"⽎"#, r#"⽎"#, r#"殳"#, r#"殳"#),
+        (r#"⽏"#, r#"⽏"#, r#"⽏"#, r#"毋"#, r#"毋"#),
+        (r#"⽐"#, r#"⽐"#, r#"⽐"#, r#"比"#, r#"比"#),
+        (r#"⽑"#, r#"⽑"#, r#"⽑"#, r#"毛"#, r#"毛"#),
+        (r#"⽒"#, r#"⽒"#, r#"⽒"#, r#"氏"#, r#"氏"#),
+        (r#"⽓"#, r#"⽓"#, r#"⽓"#, r#"气"#, r#"气"#),
+        (r#"⽔"#, r#"⽔"#, r#"⽔"#, r#"水"#, r#"水"#),
+        (r#"⽕"#, r#"⽕"#, r#"⽕"#, r#"火"#, r#"火"#),
+        (r#"⽖"#, r#"⽖"#, r#"⽖"#, r#"爪"#, r#"爪"#),
+        (r#"⽗"#, r#"⽗"#, r#"⽗"#, r#"父"#, r#"父"#),
+        (r#"⽘"#, r#"⽘"#, r#"⽘"#, r#"爻"#, r#"爻"#),
+        (r#"⽙"#, r#"⽙"#, r#"⽙"#, r#"爿"#, r#"爿"#),
+        (r#"⽚"#, r#"⽚"#, r#"⽚"#, r#"片"#, r#"片"#),
+        (r#"⽛"#, r#"⽛"#, r#"⽛"#, r#"牙"#, r#"牙"#),
+        (r#"⽜"#, r#"⽜"#, r#"⽜"#, r#"牛"#, r#"牛"#),
+        (r#"⽝"#, r#"⽝"#, r#"⽝"#, r#"犬"#, r#"犬"#),
+        (r#"⽞"#, r#"⽞"#, r#"⽞"#, r#"玄"#, r#"玄"#),
+        (r#"⽟"#, r#"⽟"#, r#"⽟"#, r#"玉"#, r#"玉"#),
+        (r#"⽠"#, r#"⽠"#, r#"⽠"#, r#"瓜"#, r#"瓜"#),
+        (r#"⽡"#, r#"⽡"#, r#"⽡"#, r#"瓦"#, r#"瓦"#),
+        (r#"⽢"#, r#"⽢"#, r#"⽢"#, r#"甘"#, r#"甘"#),
+        (r#"⽣"#, r#"⽣"#, r#"⽣"#, r#"生"#, r#"生"#),
+        (r#"⽤"#, r#"⽤"#, r#"⽤"#, r#"用"#, r#"用"#),
+        (r#"⽥"#, r#"⽥"#, r#"⽥"#, r#"田"#, r#"田"#),
+        (r#"⽦"#, r#"⽦"#, r#"⽦"#, r#"疋"#, r#"疋"#),
+        (r#"⽧"#, r#"⽧"#, r#"⽧"#, r#"疒"#, r#"疒"#),
+        (r#"⽨"#, r#"⽨"#, r#"⽨"#, r#"癶"#, r#"癶"#),
+        (r#"⽩"#, r#"⽩"#, r#"⽩"#, r#"白"#, r#"白"#),
+        (r#"⽪"#, r#"⽪"#, r#"⽪"#, r#"皮"#, r#"皮"#),
+        (r#"⽫"#, r#"⽫"#, r#"⽫"#, r#"皿"#, r#"皿"#),
+        (r#"⽬"#, r#"⽬"#, r#"⽬"#, r#"目"#, r#"目"#),
+        (r#"⽭"#, r#"⽭"#, r#"⽭"#, r#"矛"#, r#"矛"#),
+        (r#"⽮"#, r#"⽮"#, r#"⽮"#, r#"矢"#, r#"矢"#),
+        (r#"⽯"#, r#"⽯"#, r#"⽯"#, r#"石"#, r#"石"#),
+        (r#"⽰"#, r#"⽰"#, r#"⽰"#, r#"示"#, r#"示"#),
+        (r#"⽱"#, r#"⽱"#, r#"⽱"#, r#"禸"#, r#"禸"#),
+        (r#"⽲"#, r#"⽲"#, r#"⽲"#, r#"禾"#, r#"禾"#),
+        (r#"⽳"#, r#"⽳"#, r#"⽳"#, r#"穴"#, r#"穴"#),
+        (r#"⽴"#, r#"⽴"#, r#"⽴"#, r#"立"#, r#"立"#),
+        (r#"⽵"#, r#"⽵"#, r#"⽵"#, r#"竹"#, r#"竹"#),
+        (r#"⽶"#, r#"⽶"#, r#"⽶"#, r#"米"#, r#"米"#),
+        (r#"⽷"#, r#"⽷"#, r#"⽷"#, r#"糸"#, r#"糸"#),
+        (r#"⽸"#, r#"⽸"#, r#"⽸"#, r#"缶"#, r#"缶"#),
+        (r#"⽹"#, r#"⽹"#, r#"⽹"#, r#"网"#, r#"网"#),
+        (r#"⽺"#, r#"⽺"#, r#"⽺"#, r#"羊"#, r#"羊"#),
+        (r#"⽻"#, r#"⽻"#, r#"⽻"#, r#"羽"#, r#"羽"#),
+        (r#"⽼"#, r#"⽼"#, r#"⽼"#, r#"老"#, r#"老"#),
+        (r#"⽽"#, r#"⽽"#, r#"⽽"#, r#"而"#, r#"而"#),
+        (r#"⽾"#, r#"⽾"#, r#"⽾"#, r#"耒"#, r#"耒"#),
+        (r#"⽿"#, r#"⽿"#, r#"⽿"#, r#"耳"#, r#"耳"#),
+        (r#"⾀"#, r#"⾀"#, r#"⾀"#, r#"聿"#, r#"聿"#),
+        (r#"⾁"#, r#"⾁"#, r#"⾁"#, r#"肉"#, r#"肉"#),
+        (r#"⾂"#, r#"⾂"#, r#"⾂"#, r#"臣"#, r#"臣"#),
+        (r#"⾃"#, r#"⾃"#, r#"⾃"#, r#"自"#, r#"自"#),
+        (r#"⾄"#, r#"⾄"#, r#"⾄"#, r#"至"#, r#"至"#),
+        (r#"⾅"#, r#"⾅"#, r#"⾅"#, r#"臼"#, r#"臼"#),
+        (r#"⾆"#, r#"⾆"#, r#"⾆"#, r#"舌"#, r#"舌"#),
+        (r#"⾇"#, r#"⾇"#, r#"⾇"#, r#"舛"#, r#"舛"#),
+        (r#"⾈"#, r#"⾈"#, r#"⾈"#, r#"舟"#, r#"舟"#),
+        (r#"⾉"#, r#"⾉"#, r#"⾉"#, r#"艮"#, r#"艮"#),
+        (r#"⾊"#, r#"⾊"#, r#"⾊"#, r#"色"#, r#"色"#),
+        (r#"⾋"#, r#"⾋"#, r#"⾋"#, r#"艸"#, r#"艸"#),
+        (r#"⾌"#, r#"⾌"#, r#"⾌"#, r#"虍"#, r#"虍"#),
+        (r#"⾍"#, r#"⾍"#, r#"⾍"#, r#"虫"#, r#"虫"#),
+        (r#"⾎"#, r#"⾎"#, r#"⾎"#, r#"血"#, r#"血"#),
+        (r#"⾏"#, r#"⾏"#, r#"⾏"#, r#"行"#, r#"行"#),
+        (r#"⾐"#, r#"⾐"#, r#"⾐"#, r#"衣"#, r#"衣"#),
+        (r#"⾑"#, r#"⾑"#, r#"⾑"#, r#"襾"#, r#"襾"#),
+        (r#"⾒"#, r#"⾒"#, r#"⾒"#, r#"見"#, r#"見"#),
+        (r#"⾓"#, r#"⾓"#, r#"⾓"#, r#"角"#, r#"角"#),
+        (r#"⾔"#, r#"⾔"#, r#"⾔"#, r#"言"#, r#"言"#),
+        (r#"⾕"#, r#"⾕"#, r#"⾕"#, r#"谷"#, r#"谷"#),
+        (r#"⾖"#, r#"⾖"#, r#"⾖"#, r#"豆"#, r#"豆"#),
+        (r#"⾗"#, r#"⾗"#, r#"⾗"#, r#"豕"#, r#"豕"#),
+        (r#"⾘"#, r#"⾘"#, r#"⾘"#, r#"豸"#, r#"豸"#),
+        (r#"⾙"#, r#"⾙"#, r#"⾙"#, r#"貝"#, r#"貝"#),
+        (r#"⾚"#, r#"⾚"#, r#"⾚"#, r#"赤"#, r#"赤"#),
+        (r#"⾛"#, r#"⾛"#, r#"⾛"#, r#"走"#, r#"走"#),
+        (r#"⾜"#, r#"⾜"#, r#"⾜"#, r#"足"#, r#"足"#),
+        (r#"⾝"#, r#"⾝"#, r#"⾝"#, r#"身"#, r#"身"#),
+        (r#"⾞"#, r#"⾞"#, r#"⾞"#, r#"車"#, r#"車"#),
+        (r#"⾟"#, r#"⾟"#, r#"⾟"#, r#"辛"#, r#"辛"#),
+        (r#"⾠"#, r#"⾠"#, r#"⾠"#, r#"辰"#, r#"辰"#),
+        (r#"⾡"#, r#"⾡"#, r#"⾡"#, r#"辵"#, r#"辵"#),
+        (r#"⾢"#, r#"⾢"#, r#"⾢"#, r#"邑"#, r#"邑"#),
+        (r#"⾣"#, r#"⾣"#, r#"⾣"#, r#"酉"#, r#"酉"#),
+        (r#"⾤"#, r#"⾤"#, r#"⾤"#, r#"釆"#, r#"釆"#),
+        (r#"⾥"#, r#"⾥"#, r#"⾥"#, r#"里"#, r#"里"#),
+        (r#"⾦"#, r#"⾦"#, r#"⾦"#, r#"金"#, r#"金"#),
+        (r#"⾧"#, r#"⾧"#, r#"⾧"#, r#"長"#, r#"長"#),
+        (r#"⾨"#, r#"⾨"#, r#"⾨"#, r#"門"#, r#"門"#),
+        (r#"⾩"#, r#"⾩"#, r#"⾩"#, r#"阜"#, r#"阜"#),
+        (r#"⾪"#, r#"⾪"#, r#"⾪"#, r#"隶"#, r#"隶"#),
+        (r#"⾫"#, r#"⾫"#, r#"⾫"#, r#"隹"#, r#"隹"#),
+        (r#"⾬"#, r#"⾬"#, r#"⾬"#, r#"雨"#, r#"雨"#),
+        (r#"⾭"#, r#"⾭"#, r#"⾭"#, r#"靑"#, r#"靑"#),
+        (r#"⾮"#, r#"⾮"#, r#"⾮"#, r#"非"#, r#"非"#),
+        (r#"⾯"#, r#"⾯"#, r#"⾯"#, r#"面"#, r#"面"#),
+        (r#"⾰"#, r#"⾰"#, r#"⾰"#, r#"革"#, r#"革"#),
+        (r#"⾱"#, r#"⾱"#, r#"⾱"#, r#"韋"#, r#"韋"#),
+        (r#"⾲"#, r#"⾲"#, r#"⾲"#, r#"韭"#, r#"韭"#),
+        (r#"⾳"#, r#"⾳"#, r#"⾳"#, r#"音"#, r#"音"#),
+        (r#"⾴"#, r#"⾴"#, r#"⾴"#, r#"頁"#, r#"頁"#),
+        (r#"⾵"#, r#"⾵"#, r#"⾵"#, r#"風"#, r#"風"#),
+        (r#"⾶"#, r#"⾶"#, r#"⾶"#, r#"飛"#, r#"飛"#),
+        (r#"⾷"#, r#"⾷"#, r#"⾷"#, r#"食"#, r#"食"#),
+        (r#"⾸"#, r#"⾸"#, r#"⾸"#, r#"首"#, r#"首"#),
+        (r#"⾹"#, r#"⾹"#, r#"⾹"#, r#"香"#, r#"香"#),
+        (r#"⾺"#, r#"⾺"#, r#"⾺"#, r#"馬"#, r#"馬"#),
+        (r#"⾻"#, r#"⾻"#, r#"⾻"#, r#"骨"#, r#"骨"#),
+        (r#"⾼"#, r#"⾼"#, r#"⾼"#, r#"高"#, r#"高"#),
+        (r#"⾽"#, r#"⾽"#, r#"⾽"#, r#"髟"#, r#"髟"#),
+        (r#"⾾"#, r#"⾾"#, r#"⾾"#, r#"鬥"#, r#"鬥"#),
+        (r#"⾿"#, r#"⾿"#, r#"⾿"#, r#"鬯"#, r#"鬯"#),
+        (r#"⿀"#, r#"⿀"#, r#"⿀"#, r#"鬲"#, r#"鬲"#),
+        (r#"⿁"#, r#"⿁"#, r#"⿁"#, r#"鬼"#, r#"鬼"#),
+        (r#"⿂"#, r#"⿂"#, r#"⿂"#, r#"魚"#, r#"魚"#),
+        (r#"⿃"#, r#"⿃"#, r#"⿃"#, r#"鳥"#, r#"鳥"#),
+        (r#"⿄"#, r#"⿄"#, r#"⿄"#, r#"鹵"#, r#"鹵"#),
+        (r#"⿅"#, r#"⿅"#, r#"⿅"#, r#"鹿"#, r#"鹿"#),
+        (r#"⿆"#, r#"⿆"#, r#"⿆"#, r#"麥"#, r#"麥"#),
+        (r#"⿇"#, r#"⿇"#, r#"⿇"#, r#"麻"#, r#"麻"#),
+        (r#"⿈"#, r#"⿈"#, r#"⿈"#, r#"黃"#, r#"黃"#),
+        (r#"⿉"#, r#"⿉"#, r#"⿉"#, r#"黍"#, r#"黍"#),
+        (r#"⿊"#, r#"⿊"#, r#"⿊"#, r#"黑"#, r#"黑"#),
+        (r#"⿋"#, r#"⿋"#, r#"⿋"#, r#"黹"#, r#"黹"#),
+        (r#"⿌"#, r#"⿌"#, r#"⿌"#, r#"黽"#, r#"黽"#),
+        (r#"⿍"#, r#"⿍"#, r#"⿍"#, r#"鼎"#, r#"鼎"#),
+        (r#"⿎"#, r#"⿎"#, r#"⿎"#, r#"鼓"#, r#"鼓"#),
+        (r#"⿏"#, r#"⿏"#, r#"⿏"#, r#"鼠"#, r#"鼠"#),
+        (r#"⿐"#, r#"⿐"#, r#"⿐"#, r#"鼻"#, r#"鼻"#),
+        (r#"⿑"#, r#"⿑"#, r#"⿑"#, r#"齊"#, r#"齊"#),
+        (r#"⿒"#, r#"⿒"#, r#"⿒"#, r#"齒"#, r#"齒"#),
+        (r#"⿓"#, r#"⿓"#, r#"⿓"#, r#"龍"#, r#"龍"#),
+        (r#"⿔"#, r#"⿔"#, r#"⿔"#, r#"龜"#, r#"龜"#),
+        (r#"⿕"#, r#"⿕"#, r#"⿕"#, r#"龠"#, r#"龠"#),
+        (r#" "#, r#" "#, r#" "#, r#" "#, r#" "#),
+        (r#"〶"#, r#"〶"#, r#"〶"#, r#"〒"#, r#"〒"#),
+        (r#"〸"#, r#"〸"#, r#"〸"#, r#"十"#, r#"十"#),
+        (r#"〹"#, r#"〹"#, r#"〹"#, r#"卄"#, r#"卄"#),
+        (r#"〺"#, r#"〺"#, r#"〺"#, r#"卅"#, r#"卅"#),
+        (r#"が"#, r#"が"#, r#"が"#, r#"が"#, r#"が"#),
+        (r#"ぎ"#, r#"ぎ"#, r#"ぎ"#, r#"ぎ"#, r#"ぎ"#),
+        (r#"ぐ"#, r#"ぐ"#, r#"ぐ"#, r#"ぐ"#, r#"ぐ"#),
+        (r#"げ"#, r#"げ"#, r#"げ"#, r#"げ"#, r#"げ"#),
+        (r#"ご"#, r#"ご"#, r#"ご"#, r#"ご"#, r#"ご"#),
+        (r#"ざ"#, r#"ざ"#, r#"ざ"#, r#"ざ"#, r#"ざ"#),
+        (r#"じ"#, r#"じ"#, r#"じ"#, r#"じ"#, r#"じ"#),
+        (r#"ず"#, r#"ず"#, r#"ず"#, r#"ず"#, r#"ず"#),
+        (r#"ぜ"#, r#"ぜ"#, r#"ぜ"#, r#"ぜ"#, r#"ぜ"#),
+        (r#"ぞ"#, r#"ぞ"#, r#"ぞ"#, r#"ぞ"#, r#"ぞ"#),
+        (r#"だ"#, r#"だ"#, r#"だ"#, r#"だ"#, r#"だ"#),
+        (r#"ぢ"#, r#"ぢ"#, r#"ぢ"#, r#"ぢ"#, r#"ぢ"#),
+        (r#"づ"#, r#"づ"#, r#"づ"#, r#"づ"#, r#"づ"#),
+        (r#"で"#, r#"で"#, r#"で"#, r#"で"#, r#"で"#),
+        (r#"ど"#, r#"ど"#, r#"ど"#, r#"ど"#, r#"ど"#),
+        (r#"ば"#, r#"ば"#, r#"ば"#, r#"ば"#, r#"ば"#),
+        (r#"ぱ"#, r#"ぱ"#, r#"ぱ"#, r#"ぱ"#, r#"ぱ"#),
+        (r#"び"#, r#"び"#, r#"び"#, r#"び"#, r#"び"#),
+        (r#"ぴ"#, r#"ぴ"#, r#"ぴ"#, r#"ぴ"#, r#"ぴ"#),
+        (r#"ぶ"#, r#"ぶ"#, r#"ぶ"#, r#"ぶ"#, r#"ぶ"#),
+        (r#"ぷ"#, r#"ぷ"#, r#"ぷ"#, r#"ぷ"#, r#"ぷ"#),
+        (r#"べ"#, r#"べ"#, r#"べ"#, r#"べ"#, r#"べ"#),
+        (r#"ぺ"#, r#"ぺ"#, r#"ぺ"#, r#"ぺ"#, r#"ぺ"#),
+        (r#"ぼ"#, r#"ぼ"#, r#"ぼ"#, r#"ぼ"#, r#"ぼ"#),
+        (r#"ぽ"#, r#"ぽ"#, r#"ぽ"#, r#"ぽ"#, r#"ぽ"#),
+        (r#"ゔ"#, r#"ゔ"#, r#"ゔ"#, r#"ゔ"#, r#"ゔ"#),
+        (r#"゛"#, r#"゛"#, r#"゛"#, r#" ゙"#, r#" ゙"#),
+        (r#"゜"#, r#"゜"#, r#"゜"#, r#" ゚"#, r#" ゚"#),
+        (r#"ゞ"#, r#"ゞ"#, r#"ゞ"#, r#"ゞ"#, r#"ゞ"#),
+        (r#"ゟ"#, r#"ゟ"#, r#"ゟ"#, r#"より"#, r#"より"#),
+        (r#"ガ"#, r#"ガ"#, r#"ガ"#, r#"ガ"#, r#"ガ"#),
+        (r#"ギ"#, r#"ギ"#, r#"ギ"#, r#"ギ"#, r#"ギ"#),
+        (r#"グ"#, r#"グ"#, r#"グ"#, r#"グ"#, r#"グ"#),
+        (r#"ゲ"#, r#"ゲ"#, r#"ゲ"#, r#"ゲ"#, r#"ゲ"#),
+        (r#"ゴ"#, r#"ゴ"#, r#"ゴ"#, r#"ゴ"#, r#"ゴ"#),
+        (r#"ザ"#, r#"ザ"#, r#"ザ"#, r#"ザ"#, r#"ザ"#),
+        (r#"ジ"#, r#"ジ"#, r#"ジ"#, r#"ジ"#, r#"ジ"#),
+        (r#"ズ"#, r#"ズ"#, r#"ズ"#, r#"ズ"#, r#"ズ"#),
+        (r#"ゼ"#, r#"ゼ"#, r#"ゼ"#, r#"ゼ"#, r#"ゼ"#),
+        (r#"ゾ"#, r#"ゾ"#, r#"ゾ"#, r#"ゾ"#, r#"ゾ"#),
+        (r#"ダ"#, r#"ダ"#, r#"ダ"#, r#"ダ"#, r#"ダ"#),
+        (r#"ヂ"#, r#"ヂ"#, r#"ヂ"#, r#"ヂ"#, r#"ヂ"#),
+        (r#"ヅ"#, r#"ヅ"#, r#"ヅ"#, r#"ヅ"#, r#"ヅ"#),
+        (r#"デ"#, r#"デ"#, r#"デ"#, r#"デ"#, r#"デ"#),
+        (r#"ド"#, r#"ド"#, r#"ド"#, r#"ド"#, r#"ド"#),
+        (r#"バ"#, r#"バ"#, r#"バ"#, r#"バ"#, r#"バ"#),
+        (r#"パ"#, r#"パ"#, r#"パ"#, r#"パ"#, r#"パ"#),
+        (r#"ビ"#, r#"ビ"#, r#"ビ"#, r#"ビ"#, r#"ビ"#),
+        (r#"ピ"#, r#"ピ"#, r#"ピ"#, r#"ピ"#, r#"ピ"#),
+        (r#"ブ"#, r#"ブ"#, r#"ブ"#, r#"ブ"#, r#"ブ"#),
+        (r#"プ"#, r#"プ"#, r#"プ"#, r#"プ"#, r#"プ"#),
+        (r#"ベ"#, r#"ベ"#, r#"ベ"#, r#"ベ"#, r#"ベ"#),
+        (r#"ペ"#, r#"ペ"#, r#"ペ"#, r#"ペ"#, r#"ペ"#),
+        (r#"ボ"#, r#"ボ"#, r#"ボ"#, r#"ボ"#, r#"ボ"#),
+        (r#"ポ"#, r#"ポ"#, r#"ポ"#, r#"ポ"#, r#"ポ"#),
+        (r#"ヴ"#, r#"ヴ"#, r#"ヴ"#, r#"ヴ"#, r#"ヴ"#),
+        (r#"ヷ"#, r#"ヷ"#, r#"ヷ"#, r#"ヷ"#, r#"ヷ"#),
+        (r#"ヸ"#, r#"ヸ"#, r#"ヸ"#, r#"ヸ"#, r#"ヸ"#),
+        (r#"ヹ"#, r#"ヹ"#, r#"ヹ"#, r#"ヹ"#, r#"ヹ"#),
+        (r#"ヺ"#, r#"ヺ"#, r#"ヺ"#, r#"ヺ"#, r#"ヺ"#),
+        (r#"ヾ"#, r#"ヾ"#, r#"ヾ"#, r#"ヾ"#, r#"ヾ"#),
+        (r#"ヿ"#, r#"ヿ"#, r#"ヿ"#, r#"コト"#, r#"コト"#),
+        (r#"ㄱ"#, r#"ㄱ"#, r#"ㄱ"#, r#"ᄀ"#, r#"ᄀ"#),
+        (r#"ㄲ"#, r#"ㄲ"#, r#"ㄲ"#, r#"ᄁ"#, r#"ᄁ"#),
+        (r#"ㄳ"#, r#"ㄳ"#, r#"ㄳ"#, r#"ᆪ"#, r#"ᆪ"#),
+        (r#"ㄴ"#, r#"ㄴ"#, r#"ㄴ"#, r#"ᄂ"#, r#"ᄂ"#),
+        (r#"ㄵ"#, r#"ㄵ"#, r#"ㄵ"#, r#"ᆬ"#, r#"ᆬ"#),
+        (r#"ㄶ"#, r#"ㄶ"#, r#"ㄶ"#, r#"ᆭ"#, r#"ᆭ"#),
+        (r#"ㄷ"#, r#"ㄷ"#, r#"ㄷ"#, r#"ᄃ"#, r#"ᄃ"#),
+        (r#"ㄸ"#, r#"ㄸ"#, r#"ㄸ"#, r#"ᄄ"#, r#"ᄄ"#),
+        (r#"ㄹ"#, r#"ㄹ"#, r#"ㄹ"#, r#"ᄅ"#, r#"ᄅ"#),
+        (r#"ㄺ"#, r#"ㄺ"#, r#"ㄺ"#, r#"ᆰ"#, r#"ᆰ"#),
+        (r#"ㄻ"#, r#"ㄻ"#, r#"ㄻ"#, r#"ᆱ"#, r#"ᆱ"#),
+        (r#"ㄼ"#, r#"ㄼ"#, r#"ㄼ"#, r#"ᆲ"#, r#"ᆲ"#),
+        (r#"ㄽ"#, r#"ㄽ"#, r#"ㄽ"#, r#"ᆳ"#, r#"ᆳ"#),
+        (r#"ㄾ"#, r#"ㄾ"#, r#"ㄾ"#, r#"ᆴ"#, r#"ᆴ"#),
+        (r#"ㄿ"#, r#"ㄿ"#, r#"ㄿ"#, r#"ᆵ"#, r#"ᆵ"#),
+        (r#"ㅀ"#, r#"ㅀ"#, r#"ㅀ"#, r#"ᄚ"#, r#"ᄚ"#),
+        (r#"ㅁ"#, r#"ㅁ"#, r#"ㅁ"#, r#"ᄆ"#, r#"ᄆ"#),
+        (r#"ㅂ"#, r#"ㅂ"#, r#"ㅂ"#, r#"ᄇ"#, r#"ᄇ"#),
+        (r#"ㅃ"#, r#"ㅃ"#, r#"ㅃ"#, r#"ᄈ"#, r#"ᄈ"#),
+        (r#"ㅄ"#, r#"ㅄ"#, r#"ㅄ"#, r#"ᄡ"#, r#"ᄡ"#),
+        (r#"ㅅ"#, r#"ㅅ"#, r#"ㅅ"#, r#"ᄉ"#, r#"ᄉ"#),
+        (r#"ㅆ"#, r#"ㅆ"#, r#"ㅆ"#, r#"ᄊ"#, r#"ᄊ"#),
+        (r#"ㅇ"#, r#"ㅇ"#, r#"ㅇ"#, r#"ᄋ"#, r#"ᄋ"#),
+        (r#"ㅈ"#, r#"ㅈ"#, r#"ㅈ"#, r#"ᄌ"#, r#"ᄌ"#),
+        (r#"ㅉ"#, r#"ㅉ"#, r#"ㅉ"#, r#"ᄍ"#, r#"ᄍ"#),
+        (r#"ㅊ"#, r#"ㅊ"#, r#"ㅊ"#, r#"ᄎ"#, r#"ᄎ"#),
+        (r#"ㅋ"#, r#"ㅋ"#, r#"ㅋ"#, r#"ᄏ"#, r#"ᄏ"#),
+        (r#"ㅌ"#, r#"ㅌ"#, r#"ㅌ"#, r#"ᄐ"#, r#"ᄐ"#),
+        (r#"ㅍ"#, r#"ㅍ"#, r#"ㅍ"#, r#"ᄑ"#, r#"ᄑ"#),
+        (r#"ㅎ"#, r#"ㅎ"#, r#"ㅎ"#, r#"ᄒ"#, r#"ᄒ"#),
+        (r#"ㅏ"#, r#"ㅏ"#, r#"ㅏ"#, r#"ᅡ"#, r#"ᅡ"#),
+        (r#"ㅐ"#, r#"ㅐ"#, r#"ㅐ"#, r#"ᅢ"#, r#"ᅢ"#),
+        (r#"ㅑ"#, r#"ㅑ"#, r#"ㅑ"#, r#"ᅣ"#, r#"ᅣ"#),
+        (r#"ㅒ"#, r#"ㅒ"#, r#"ㅒ"#, r#"ᅤ"#, r#"ᅤ"#),
+        (r#"ㅓ"#, r#"ㅓ"#, r#"ㅓ"#, r#"ᅥ"#, r#"ᅥ"#),
+        (r#"ㅔ"#, r#"ㅔ"#, r#"ㅔ"#, r#"ᅦ"#, r#"ᅦ"#),
+        (r#"ㅕ"#, r#"ㅕ"#, r#"ㅕ"#, r#"ᅧ"#, r#"ᅧ"#),
+        (r#"ㅖ"#, r#"ㅖ"#, r#"ㅖ"#, r#"ᅨ"#, r#"ᅨ"#),
+        (r#"ㅗ"#, r#"ㅗ"#, r#"ㅗ"#, r#"ᅩ"#, r#"ᅩ"#),
+        (r#"ㅘ"#, r#"ㅘ"#, r#"ㅘ"#, r#"ᅪ"#, r#"ᅪ"#),
+        (r#"ㅙ"#, r#"ㅙ"#, r#"ㅙ"#, r#"ᅫ"#, r#"ᅫ"#),
+        (r#"ㅚ"#, r#"ㅚ"#, r#"ㅚ"#, r#"ᅬ"#, r#"ᅬ"#),
+        (r#"ㅛ"#, r#"ㅛ"#, r#"ㅛ"#, r#"ᅭ"#, r#"ᅭ"#),
+        (r#"ㅜ"#, r#"ㅜ"#, r#"ㅜ"#, r#"ᅮ"#, r#"ᅮ"#),
+        (r#"ㅝ"#, r#"ㅝ"#, r#"ㅝ"#, r#"ᅯ"#, r#"ᅯ"#),
+        (r#"ㅞ"#, r#"ㅞ"#, r#"ㅞ"#, r#"ᅰ"#, r#"ᅰ"#),
+        (r#"ㅟ"#, r#"ㅟ"#, r#"ㅟ"#, r#"ᅱ"#, r#"ᅱ"#),
+        (r#"ㅠ"#, r#"ㅠ"#, r#"ㅠ"#, r#"ᅲ"#, r#"ᅲ"#),
+        (r#"ㅡ"#, r#"ㅡ"#, r#"ㅡ"#, r#"ᅳ"#, r#"ᅳ"#),
+        (r#"ㅢ"#, r#"ㅢ"#, r#"ㅢ"#, r#"ᅴ"#, r#"ᅴ"#),
+        (r#"ㅣ"#, r#"ㅣ"#, r#"ㅣ"#, r#"ᅵ"#, r#"ᅵ"#),
+        (r#"ㅤ"#, r#"ㅤ"#, r#"ㅤ"#, r#"ᅠ"#, r#"ᅠ"#),
+        (r#"ㅥ"#, r#"ㅥ"#, r#"ㅥ"#, r#"ᄔ"#, r#"ᄔ"#),
+        (r#"ㅦ"#, r#"ㅦ"#, r#"ㅦ"#, r#"ᄕ"#, r#"ᄕ"#),
+        (r#"ㅧ"#, r#"ㅧ"#, r#"ㅧ"#, r#"ᇇ"#, r#"ᇇ"#),
+        (r#"ㅨ"#, r#"ㅨ"#, r#"ㅨ"#, r#"ᇈ"#, r#"ᇈ"#),
+        (r#"ㅩ"#, r#"ㅩ"#, r#"ㅩ"#, r#"ᇌ"#, r#"ᇌ"#),
+        (r#"ㅪ"#, r#"ㅪ"#, r#"ㅪ"#, r#"ᇎ"#, r#"ᇎ"#),
+        (r#"ㅫ"#, r#"ㅫ"#, r#"ㅫ"#, r#"ᇓ"#, r#"ᇓ"#),
+        (r#"ㅬ"#, r#"ㅬ"#, r#"ㅬ"#, r#"ᇗ"#, r#"ᇗ"#),
+        (r#"ㅭ"#, r#"ㅭ"#, r#"ㅭ"#, r#"ᇙ"#, r#"ᇙ"#),
+        (r#"ㅮ"#, r#"ㅮ"#, r#"ㅮ"#, r#"ᄜ"#, r#"ᄜ"#),
+        (r#"ㅯ"#, r#"ㅯ"#, r#"ㅯ"#, r#"ᇝ"#, r#"ᇝ"#),
+        (r#"ㅰ"#, r#"ㅰ"#, r#"ㅰ"#, r#"ᇟ"#, r#"ᇟ"#),
+        (r#"ㅱ"#, r#"ㅱ"#, r#"ㅱ"#, r#"ᄝ"#, r#"ᄝ"#),
+        (r#"ㅲ"#, r#"ㅲ"#, r#"ㅲ"#, r#"ᄞ"#, r#"ᄞ"#),
+        (r#"ㅳ"#, r#"ㅳ"#, r#"ㅳ"#, r#"ᄠ"#, r#"ᄠ"#),
+        (r#"ㅴ"#, r#"ㅴ"#, r#"ㅴ"#, r#"ᄢ"#, r#"ᄢ"#),
+        (r#"ㅵ"#, r#"ㅵ"#, r#"ㅵ"#, r#"ᄣ"#, r#"ᄣ"#),
+        (r#"ㅶ"#, r#"ㅶ"#, r#"ㅶ"#, r#"ᄧ"#, r#"ᄧ"#),
+        (r#"ㅷ"#, r#"ㅷ"#, r#"ㅷ"#, r#"ᄩ"#, r#"ᄩ"#),
+        (r#"ㅸ"#, r#"ㅸ"#, r#"ㅸ"#, r#"ᄫ"#, r#"ᄫ"#),
+        (r#"ㅹ"#, r#"ㅹ"#, r#"ㅹ"#, r#"ᄬ"#, r#"ᄬ"#),
+        (r#"ㅺ"#, r#"ㅺ"#, r#"ㅺ"#, r#"ᄭ"#, r#"ᄭ"#),
+        (r#"ㅻ"#, r#"ㅻ"#, r#"ㅻ"#, r#"ᄮ"#, r#"ᄮ"#),
+        (r#"ㅼ"#, r#"ㅼ"#, r#"ㅼ"#, r#"ᄯ"#, r#"ᄯ"#),
+        (r#"ㅽ"#, r#"ㅽ"#, r#"ㅽ"#, r#"ᄲ"#, r#"ᄲ"#),
+        (r#"ㅾ"#, r#"ㅾ"#, r#"ㅾ"#, r#"ᄶ"#, r#"ᄶ"#),
+        (r#"ㅿ"#, r#"ㅿ"#, r#"ㅿ"#, r#"ᅀ"#, r#"ᅀ"#),
+        (r#"ㆀ"#, r#"ㆀ"#, r#"ㆀ"#, r#"ᅇ"#, r#"ᅇ"#),
+        (r#"ㆁ"#, r#"ㆁ"#, r#"ㆁ"#, r#"ᅌ"#, r#"ᅌ"#),
+        (r#"ㆂ"#, r#"ㆂ"#, r#"ㆂ"#, r#"ᇱ"#, r#"ᇱ"#),
+        (r#"ㆃ"#, r#"ㆃ"#, r#"ㆃ"#, r#"ᇲ"#, r#"ᇲ"#),
+        (r#"ㆄ"#, r#"ㆄ"#, r#"ㆄ"#, r#"ᅗ"#, r#"ᅗ"#),
+        (r#"ㆅ"#, r#"ㆅ"#, r#"ㆅ"#, r#"ᅘ"#, r#"ᅘ"#),
+        (r#"ㆆ"#, r#"ㆆ"#, r#"ㆆ"#, r#"ᅙ"#, r#"ᅙ"#),
+        (r#"ㆇ"#, r#"ㆇ"#, r#"ㆇ"#, r#"ᆄ"#, r#"ᆄ"#),
+        (r#"ㆈ"#, r#"ㆈ"#, r#"ㆈ"#, r#"ᆅ"#, r#"ᆅ"#),
+        (r#"ㆉ"#, r#"ㆉ"#, r#"ㆉ"#, r#"ᆈ"#, r#"ᆈ"#),
+        (r#"ㆊ"#, r#"ㆊ"#, r#"ㆊ"#, r#"ᆑ"#, r#"ᆑ"#),
+        (r#"ㆋ"#, r#"ㆋ"#, r#"ㆋ"#, r#"ᆒ"#, r#"ᆒ"#),
+        (r#"ㆌ"#, r#"ㆌ"#, r#"ㆌ"#, r#"ᆔ"#, r#"ᆔ"#),
+        (r#"ㆍ"#, r#"ㆍ"#, r#"ㆍ"#, r#"ᆞ"#, r#"ᆞ"#),
+        (r#"ㆎ"#, r#"ㆎ"#, r#"ㆎ"#, r#"ᆡ"#, r#"ᆡ"#),
+        (r#"㆒"#, r#"㆒"#, r#"㆒"#, r#"一"#, r#"一"#),
+        (r#"㆓"#, r#"㆓"#, r#"㆓"#, r#"二"#, r#"二"#),
+        (r#"㆔"#, r#"㆔"#, r#"㆔"#, r#"三"#, r#"三"#),
+        (r#"㆕"#, r#"㆕"#, r#"㆕"#, r#"四"#, r#"四"#),
+        (r#"㆖"#, r#"㆖"#, r#"㆖"#, r#"上"#, r#"上"#),
+        (r#"㆗"#, r#"㆗"#, r#"㆗"#, r#"中"#, r#"中"#),
+        (r#"㆘"#, r#"㆘"#, r#"㆘"#, r#"下"#, r#"下"#),
+        (r#"㆙"#, r#"㆙"#, r#"㆙"#, r#"甲"#, r#"甲"#),
+        (r#"㆚"#, r#"㆚"#, r#"㆚"#, r#"乙"#, r#"乙"#),
+        (r#"㆛"#, r#"㆛"#, r#"㆛"#, r#"丙"#, r#"丙"#),
+        (r#"㆜"#, r#"㆜"#, r#"㆜"#, r#"丁"#, r#"丁"#),
+        (r#"㆝"#, r#"㆝"#, r#"㆝"#, r#"天"#, r#"天"#),
+        (r#"㆞"#, r#"㆞"#, r#"㆞"#, r#"地"#, r#"地"#),
+        (r#"㆟"#, r#"㆟"#, r#"㆟"#, r#"人"#, r#"人"#),
+        (r#"㈀"#, r#"㈀"#, r#"㈀"#, r#"(ᄀ)"#, r#"(ᄀ)"#),
+        (r#"㈁"#, r#"㈁"#, r#"㈁"#, r#"(ᄂ)"#, r#"(ᄂ)"#),
+        (r#"㈂"#, r#"㈂"#, r#"㈂"#, r#"(ᄃ)"#, r#"(ᄃ)"#),
+        (r#"㈃"#, r#"㈃"#, r#"㈃"#, r#"(ᄅ)"#, r#"(ᄅ)"#),
+        (r#"㈄"#, r#"㈄"#, r#"㈄"#, r#"(ᄆ)"#, r#"(ᄆ)"#),
+        (r#"㈅"#, r#"㈅"#, r#"㈅"#, r#"(ᄇ)"#, r#"(ᄇ)"#),
+        (r#"㈆"#, r#"㈆"#, r#"㈆"#, r#"(ᄉ)"#, r#"(ᄉ)"#),
+        (r#"㈇"#, r#"㈇"#, r#"㈇"#, r#"(ᄋ)"#, r#"(ᄋ)"#),
+        (r#"㈈"#, r#"㈈"#, r#"㈈"#, r#"(ᄌ)"#, r#"(ᄌ)"#),
+        (r#"㈉"#, r#"㈉"#, r#"㈉"#, r#"(ᄎ)"#, r#"(ᄎ)"#),
+        (r#"㈊"#, r#"㈊"#, r#"㈊"#, r#"(ᄏ)"#, r#"(ᄏ)"#),
+        (r#"㈋"#, r#"㈋"#, r#"㈋"#, r#"(ᄐ)"#, r#"(ᄐ)"#),
+        (r#"㈌"#, r#"㈌"#, r#"㈌"#, r#"(ᄑ)"#, r#"(ᄑ)"#),
+        (r#"㈍"#, r#"㈍"#, r#"㈍"#, r#"(ᄒ)"#, r#"(ᄒ)"#),
+        (r#"㈎"#, r#"㈎"#, r#"㈎"#, r#"(가)"#, r#"(가)"#),
+        (r#"㈏"#, r#"㈏"#, r#"㈏"#, r#"(나)"#, r#"(나)"#),
+        (r#"㈐"#, r#"㈐"#, r#"㈐"#, r#"(다)"#, r#"(다)"#),
+        (r#"㈑"#, r#"㈑"#, r#"㈑"#, r#"(라)"#, r#"(라)"#),
+        (r#"㈒"#, r#"㈒"#, r#"㈒"#, r#"(마)"#, r#"(마)"#),
+        (r#"㈓"#, r#"㈓"#, r#"㈓"#, r#"(바)"#, r#"(바)"#),
+        (r#"㈔"#, r#"㈔"#, r#"㈔"#, r#"(사)"#, r#"(사)"#),
+        (r#"㈕"#, r#"㈕"#, r#"㈕"#, r#"(아)"#, r#"(아)"#),
+        (r#"㈖"#, r#"㈖"#, r#"㈖"#, r#"(자)"#, r#"(자)"#),
+        (r#"㈗"#, r#"㈗"#, r#"㈗"#, r#"(차)"#, r#"(차)"#),
+        (r#"㈘"#, r#"㈘"#, r#"㈘"#, r#"(카)"#, r#"(카)"#),
+        (r#"㈙"#, r#"㈙"#, r#"㈙"#, r#"(타)"#, r#"(타)"#),
+        (r#"㈚"#, r#"㈚"#, r#"㈚"#, r#"(파)"#, r#"(파)"#),
+        (r#"㈛"#, r#"㈛"#, r#"㈛"#, r#"(하)"#, r#"(하)"#),
+        (r#"㈜"#, r#"㈜"#, r#"㈜"#, r#"(주)"#, r#"(주)"#),
+        (r#"㈝"#, r#"㈝"#, r#"㈝"#, r#"(오전)"#, r#"(오전)"#),
+        (r#"㈞"#, r#"㈞"#, r#"㈞"#, r#"(오후)"#, r#"(오후)"#),
+        (r#"㈠"#, r#"㈠"#, r#"㈠"#, r#"(一)"#, r#"(一)"#),
+        (r#"㈡"#, r#"㈡"#, r#"㈡"#, r#"(二)"#, r#"(二)"#),
+        (r#"㈢"#, r#"㈢"#, r#"㈢"#, r#"(三)"#, r#"(三)"#),
+        (r#"㈣"#, r#"㈣"#, r#"㈣"#, r#"(四)"#, r#"(四)"#),
+        (r#"㈤"#, r#"㈤"#, r#"㈤"#, r#"(五)"#, r#"(五)"#),
+        (r#"㈥"#, r#"㈥"#, r#"㈥"#, r#"(六)"#, r#"(六)"#),
+        (r#"㈦"#, r#"㈦"#, r#"㈦"#, r#"(七)"#, r#"(七)"#),
+        (r#"㈧"#, r#"㈧"#, r#"㈧"#, r#"(八)"#, r#"(八)"#),
+        (r#"㈨"#, r#"㈨"#, r#"㈨"#, r#"(九)"#, r#"(九)"#),
+        (r#"㈩"#, r#"㈩"#, r#"㈩"#, r#"(十)"#, r#"(十)"#),
+        (r#"㈪"#, r#"㈪"#, r#"㈪"#, r#"(月)"#, r#"(月)"#),
+        (r#"㈫"#, r#"㈫"#, r#"㈫"#, r#"(火)"#, r#"(火)"#),
+        (r#"㈬"#, r#"㈬"#, r#"㈬"#, r#"(水)"#, r#"(水)"#),
+        (r#"㈭"#, r#"㈭"#, r#"㈭"#, r#"(木)"#, r#"(木)"#),
+        (r#"㈮"#, r#"㈮"#, r#"㈮"#, r#"(金)"#, r#"(金)"#),
+        (r#"㈯"#, r#"㈯"#, r#"㈯"#, r#"(土)"#, r#"(土)"#),
+        (r#"㈰"#, r#"㈰"#, r#"㈰"#, r#"(日)"#, r#"(日)"#),
+        (r#"㈱"#, r#"㈱"#, r#"㈱"#, r#"(株)"#, r#"(株)"#),
+        (r#"㈲"#, r#"㈲"#, r#"㈲"#, r#"(有)"#, r#"(有)"#),
+        (r#"㈳"#, r#"㈳"#, r#"㈳"#, r#"(社)"#, r#"(社)"#),
+        (r#"㈴"#, r#"㈴"#, r#"㈴"#, r#"(名)"#, r#"(名)"#),
+        (r#"㈵"#, r#"㈵"#, r#"㈵"#, r#"(特)"#, r#"(特)"#),
+        (r#"㈶"#, r#"㈶"#, r#"㈶"#, r#"(財)"#, r#"(財)"#),
+        (r#"㈷"#, r#"㈷"#, r#"㈷"#, r#"(祝)"#, r#"(祝)"#),
+        (r#"㈸"#, r#"㈸"#, r#"㈸"#, r#"(労)"#, r#"(労)"#),
+        (r#"㈹"#, r#"㈹"#, r#"㈹"#, r#"(代)"#, r#"(代)"#),
+        (r#"㈺"#, r#"㈺"#, r#"㈺"#, r#"(呼)"#, r#"(呼)"#),
+        (r#"㈻"#, r#"㈻"#, r#"㈻"#, r#"(学)"#, r#"(学)"#),
+        (r#"㈼"#, r#"㈼"#, r#"㈼"#, r#"(監)"#, r#"(監)"#),
+        (r#"㈽"#, r#"㈽"#, r#"㈽"#, r#"(企)"#, r#"(企)"#),
+        (r#"㈾"#, r#"㈾"#, r#"㈾"#, r#"(資)"#, r#"(資)"#),
+        (r#"㈿"#, r#"㈿"#, r#"㈿"#, r#"(協)"#, r#"(協)"#),
+        (r#"㉀"#, r#"㉀"#, r#"㉀"#, r#"(祭)"#, r#"(祭)"#),
+        (r#"㉁"#, r#"㉁"#, r#"㉁"#, r#"(休)"#, r#"(休)"#),
+        (r#"㉂"#, r#"㉂"#, r#"㉂"#, r#"(自)"#, r#"(自)"#),
+        (r#"㉃"#, r#"㉃"#, r#"㉃"#, r#"(至)"#, r#"(至)"#),
+        (r#"㉄"#, r#"㉄"#, r#"㉄"#, r#"問"#, r#"問"#),
+        (r#"㉅"#, r#"㉅"#, r#"㉅"#, r#"幼"#, r#"幼"#),
+        (r#"㉆"#, r#"㉆"#, r#"㉆"#, r#"文"#, r#"文"#),
+        (r#"㉇"#, r#"㉇"#, r#"㉇"#, r#"箏"#, r#"箏"#),
+        (r#"㉐"#, r#"㉐"#, r#"㉐"#, r#"PTE"#, r#"PTE"#),
+        (r#"㉑"#, r#"㉑"#, r#"㉑"#, r#"21"#, r#"21"#),
+        (r#"㉒"#, r#"㉒"#, r#"㉒"#, r#"22"#, r#"22"#),
+        (r#"㉓"#, r#"㉓"#, r#"㉓"#, r#"23"#, r#"23"#),
+        (r#"㉔"#, r#"㉔"#, r#"㉔"#, r#"24"#, r#"24"#),
+        (r#"㉕"#, r#"㉕"#, r#"㉕"#, r#"25"#, r#"25"#),
+        (r#"㉖"#, r#"㉖"#, r#"㉖"#, r#"26"#, r#"26"#),
+        (r#"㉗"#, r#"㉗"#, r#"㉗"#, r#"27"#, r#"27"#),
+        (r#"㉘"#, r#"㉘"#, r#"㉘"#, r#"28"#, r#"28"#),
+        (r#"㉙"#, r#"㉙"#, r#"㉙"#, r#"29"#, r#"29"#),
+        (r#"㉚"#, r#"㉚"#, r#"㉚"#, r#"30"#, r#"30"#),
+        (r#"㉛"#, r#"㉛"#, r#"㉛"#, r#"31"#, r#"31"#),
+        (r#"㉜"#, r#"㉜"#, r#"㉜"#, r#"32"#, r#"32"#),
+        (r#"㉝"#, r#"㉝"#, r#"㉝"#, r#"33"#, r#"33"#),
+        (r#"㉞"#, r#"㉞"#, r#"㉞"#, r#"34"#, r#"34"#),
+        (r#"㉟"#, r#"㉟"#, r#"㉟"#, r#"35"#, r#"35"#),
+        (r#"㉠"#, r#"㉠"#, r#"㉠"#, r#"ᄀ"#, r#"ᄀ"#),
+        (r#"㉡"#, r#"㉡"#, r#"㉡"#, r#"ᄂ"#, r#"ᄂ"#),
+        (r#"㉢"#, r#"㉢"#, r#"㉢"#, r#"ᄃ"#, r#"ᄃ"#),
+        (r#"㉣"#, r#"㉣"#, r#"㉣"#, r#"ᄅ"#, r#"ᄅ"#),
+        (r#"㉤"#, r#"㉤"#, r#"㉤"#, r#"ᄆ"#, r#"ᄆ"#),
+        (r#"㉥"#, r#"㉥"#, r#"㉥"#, r#"ᄇ"#, r#"ᄇ"#),
+        (r#"㉦"#, r#"㉦"#, r#"㉦"#, r#"ᄉ"#, r#"ᄉ"#),
+        (r#"㉧"#, r#"㉧"#, r#"㉧"#, r#"ᄋ"#, r#"ᄋ"#),
+        (r#"㉨"#, r#"㉨"#, r#"㉨"#, r#"ᄌ"#, r#"ᄌ"#),
+        (r#"㉩"#, r#"㉩"#, r#"㉩"#, r#"ᄎ"#, r#"ᄎ"#),
+        (r#"㉪"#, r#"㉪"#, r#"㉪"#, r#"ᄏ"#, r#"ᄏ"#),
+        (r#"㉫"#, r#"㉫"#, r#"㉫"#, r#"ᄐ"#, r#"ᄐ"#),
+        (r#"㉬"#, r#"㉬"#, r#"㉬"#, r#"ᄑ"#, r#"ᄑ"#),
+        (r#"㉭"#, r#"㉭"#, r#"㉭"#, r#"ᄒ"#, r#"ᄒ"#),
+        (r#"㉮"#, r#"㉮"#, r#"㉮"#, r#"가"#, r#"가"#),
+        (r#"㉯"#, r#"㉯"#, r#"㉯"#, r#"나"#, r#"나"#),
+        (r#"㉰"#, r#"㉰"#, r#"㉰"#, r#"다"#, r#"다"#),
+        (r#"㉱"#, r#"㉱"#, r#"㉱"#, r#"라"#, r#"라"#),
+        (r#"㉲"#, r#"㉲"#, r#"㉲"#, r#"마"#, r#"마"#),
+        (r#"㉳"#, r#"㉳"#, r#"㉳"#, r#"바"#, r#"바"#),
+        (r#"㉴"#, r#"㉴"#, r#"㉴"#, r#"사"#, r#"사"#),
+        (r#"㉵"#, r#"㉵"#, r#"㉵"#, r#"아"#, r#"아"#),
+        (r#"㉶"#, r#"㉶"#, r#"㉶"#, r#"자"#, r#"자"#),
+        (r#"㉷"#, r#"㉷"#, r#"㉷"#, r#"차"#, r#"차"#),
+        (r#"㉸"#, r#"㉸"#, r#"㉸"#, r#"카"#, r#"카"#),
+        (r#"㉹"#, r#"㉹"#, r#"㉹"#, r#"타"#, r#"타"#),
+        (r#"㉺"#, r#"㉺"#, r#"㉺"#, r#"파"#, r#"파"#),
+        (r#"㉻"#, r#"㉻"#, r#"㉻"#, r#"하"#, r#"하"#),
+        (r#"㉼"#, r#"㉼"#, r#"㉼"#, r#"참고"#, r#"참고"#),
+        (r#"㉽"#, r#"㉽"#, r#"㉽"#, r#"주의"#, r#"주의"#),
+        (r#"㉾"#, r#"㉾"#, r#"㉾"#, r#"우"#, r#"우"#),
+        (r#"㊀"#, r#"㊀"#, r#"㊀"#, r#"一"#, r#"一"#),
+        (r#"㊁"#, r#"㊁"#, r#"㊁"#, r#"二"#, r#"二"#),
+        (r#"㊂"#, r#"㊂"#, r#"㊂"#, r#"三"#, r#"三"#),
+        (r#"㊃"#, r#"㊃"#, r#"㊃"#, r#"四"#, r#"四"#),
+        (r#"㊄"#, r#"㊄"#, r#"㊄"#, r#"五"#, r#"五"#),
+        (r#"㊅"#, r#"㊅"#, r#"㊅"#, r#"六"#, r#"六"#),
+        (r#"㊆"#, r#"㊆"#, r#"㊆"#, r#"七"#, r#"七"#),
+        (r#"㊇"#, r#"㊇"#, r#"㊇"#, r#"八"#, r#"八"#),
+        (r#"㊈"#, r#"㊈"#, r#"㊈"#, r#"九"#, r#"九"#),
+        (r#"㊉"#, r#"㊉"#, r#"㊉"#, r#"十"#, r#"十"#),
+        (r#"㊊"#, r#"㊊"#, r#"㊊"#, r#"月"#, r#"月"#),
+        (r#"㊋"#, r#"㊋"#, r#"㊋"#, r#"火"#, r#"火"#),
+        (r#"㊌"#, r#"㊌"#, r#"㊌"#, r#"水"#, r#"水"#),
+        (r#"㊍"#, r#"㊍"#, r#"㊍"#, r#"木"#, r#"木"#),
+        (r#"㊎"#, r#"㊎"#, r#"㊎"#, r#"金"#, r#"金"#),
+        (r#"㊏"#, r#"㊏"#, r#"㊏"#, r#"土"#, r#"土"#),
+        (r#"㊐"#, r#"㊐"#, r#"㊐"#, r#"日"#, r#"日"#),
+        (r#"㊑"#, r#"㊑"#, r#"㊑"#, r#"株"#, r#"株"#),
+        (r#"㊒"#, r#"㊒"#, r#"㊒"#, r#"有"#, r#"有"#),
+        (r#"㊓"#, r#"㊓"#, r#"㊓"#, r#"社"#, r#"社"#),
+        (r#"㊔"#, r#"㊔"#, r#"㊔"#, r#"名"#, r#"名"#),
+        (r#"㊕"#, r#"㊕"#, r#"㊕"#, r#"特"#, r#"特"#),
+        (r#"㊖"#, r#"㊖"#, r#"㊖"#, r#"財"#, r#"財"#),
+        (r#"㊗"#, r#"㊗"#, r#"㊗"#, r#"祝"#, r#"祝"#),
+        (r#"㊘"#, r#"㊘"#, r#"㊘"#, r#"労"#, r#"労"#),
+        (r#"㊙"#, r#"㊙"#, r#"㊙"#, r#"秘"#, r#"秘"#),
+        (r#"㊚"#, r#"㊚"#, r#"㊚"#, r#"男"#, r#"男"#),
+        (r#"㊛"#, r#"㊛"#, r#"㊛"#, r#"女"#, r#"女"#),
+        (r#"㊜"#, r#"㊜"#, r#"㊜"#, r#"適"#, r#"適"#),
+        (r#"㊝"#, r#"㊝"#, r#"㊝"#, r#"優"#, r#"優"#),
+        (r#"㊞"#, r#"㊞"#, r#"㊞"#, r#"印"#, r#"印"#),
+        (r#"㊟"#, r#"㊟"#, r#"㊟"#, r#"注"#, r#"注"#),
+        (r#"㊠"#, r#"㊠"#, r#"㊠"#, r#"項"#, r#"項"#),
+        (r#"㊡"#, r#"㊡"#, r#"㊡"#, r#"休"#, r#"休"#),
+        (r#"㊢"#, r#"㊢"#, r#"㊢"#, r#"写"#, r#"写"#),
+        (r#"㊣"#, r#"㊣"#, r#"㊣"#, r#"正"#, r#"正"#),
+        (r#"㊤"#, r#"㊤"#, r#"㊤"#, r#"上"#, r#"上"#),
+        (r#"㊥"#, r#"㊥"#, r#"㊥"#, r#"中"#, r#"中"#),
+        (r#"㊦"#, r#"㊦"#, r#"㊦"#, r#"下"#, r#"下"#),
+        (r#"㊧"#, r#"㊧"#, r#"㊧"#, r#"左"#, r#"左"#),
+        (r#"㊨"#, r#"㊨"#, r#"㊨"#, r#"右"#, r#"右"#),
+        (r#"㊩"#, r#"㊩"#, r#"㊩"#, r#"医"#, r#"医"#),
+        (r#"㊪"#, r#"㊪"#, r#"㊪"#, r#"宗"#, r#"宗"#),
+        (r#"㊫"#, r#"㊫"#, r#"㊫"#, r#"学"#, r#"学"#),
+        (r#"㊬"#, r#"㊬"#, r#"㊬"#, r#"監"#, r#"監"#),
+        (r#"㊭"#, r#"㊭"#, r#"㊭"#, r#"企"#, r#"企"#),
+        (r#"㊮"#, r#"㊮"#, r#"㊮"#, r#"資"#, r#"資"#),
+        (r#"㊯"#, r#"㊯"#, r#"㊯"#, r#"協"#, r#"協"#),
+        (r#"㊰"#, r#"㊰"#, r#"㊰"#, r#"夜"#, r#"夜"#),
+        (r#"㊱"#, r#"㊱"#, r#"㊱"#, r#"36"#, r#"36"#),
+        (r#"㊲"#, r#"㊲"#, r#"㊲"#, r#"37"#, r#"37"#),
+        (r#"㊳"#, r#"㊳"#, r#"㊳"#, r#"38"#, r#"38"#),
+        (r#"㊴"#, r#"㊴"#, r#"㊴"#, r#"39"#, r#"39"#),
+        (r#"㊵"#, r#"㊵"#, r#"㊵"#, r#"40"#, r#"40"#),
+        (r#"㊶"#, r#"㊶"#, r#"㊶"#, r#"41"#, r#"41"#),
+        (r#"㊷"#, r#"㊷"#, r#"㊷"#, r#"42"#, r#"42"#),
+        (r#"㊸"#, r#"㊸"#, r#"㊸"#, r#"43"#, r#"43"#),
+        (r#"㊹"#, r#"㊹"#, r#"㊹"#, r#"44"#, r#"44"#),
+        (r#"㊺"#, r#"㊺"#, r#"㊺"#, r#"45"#, r#"45"#),
+        (r#"㊻"#, r#"㊻"#, r#"㊻"#, r#"46"#, r#"46"#),
+        (r#"㊼"#, r#"㊼"#, r#"㊼"#, r#"47"#, r#"47"#),
+        (r#"㊽"#, r#"㊽"#, r#"㊽"#, r#"48"#, r#"48"#),
+        (r#"㊾"#, r#"㊾"#, r#"㊾"#, r#"49"#, r#"49"#),
+        (r#"㊿"#, r#"㊿"#, r#"㊿"#, r#"50"#, r#"50"#),
+        (r#"㋀"#, r#"㋀"#, r#"㋀"#, r#"1月"#, r#"1月"#),
+        (r#"㋁"#, r#"㋁"#, r#"㋁"#, r#"2月"#, r#"2月"#),
+        (r#"㋂"#, r#"㋂"#, r#"㋂"#, r#"3月"#, r#"3月"#),
+        (r#"㋃"#, r#"㋃"#, r#"㋃"#, r#"4月"#, r#"4月"#),
+        (r#"㋄"#, r#"㋄"#, r#"㋄"#, r#"5月"#, r#"5月"#),
+        (r#"㋅"#, r#"㋅"#, r#"㋅"#, r#"6月"#, r#"6月"#),
+        (r#"㋆"#, r#"㋆"#, r#"㋆"#, r#"7月"#, r#"7月"#),
+        (r#"㋇"#, r#"㋇"#, r#"㋇"#, r#"8月"#, r#"8月"#),
+        (r#"㋈"#, r#"㋈"#, r#"㋈"#, r#"9月"#, r#"9月"#),
+        (r#"㋉"#, r#"㋉"#, r#"㋉"#, r#"10月"#, r#"10月"#),
+        (r#"㋊"#, r#"㋊"#, r#"㋊"#, r#"11月"#, r#"11月"#),
+        (r#"㋋"#, r#"㋋"#, r#"㋋"#, r#"12月"#, r#"12月"#),
+        (r#"㋌"#, r#"㋌"#, r#"㋌"#, r#"Hg"#, r#"Hg"#),
+        (r#"㋍"#, r#"㋍"#, r#"㋍"#, r#"erg"#, r#"erg"#),
+        (r#"㋎"#, r#"㋎"#, r#"㋎"#, r#"eV"#, r#"eV"#),
+        (r#"㋏"#, r#"㋏"#, r#"㋏"#, r#"LTD"#, r#"LTD"#),
+        (r#"㋐"#, r#"㋐"#, r#"㋐"#, r#"ア"#, r#"ア"#),
+        (r#"㋑"#, r#"㋑"#, r#"㋑"#, r#"イ"#, r#"イ"#),
+        (r#"㋒"#, r#"㋒"#, r#"㋒"#, r#"ウ"#, r#"ウ"#),
+        (r#"㋓"#, r#"㋓"#, r#"㋓"#, r#"エ"#, r#"エ"#),
+        (r#"㋔"#, r#"㋔"#, r#"㋔"#, r#"オ"#, r#"オ"#),
+        (r#"㋕"#, r#"㋕"#, r#"㋕"#, r#"カ"#, r#"カ"#),
+        (r#"㋖"#, r#"㋖"#, r#"㋖"#, r#"キ"#, r#"キ"#),
+        (r#"㋗"#, r#"㋗"#, r#"㋗"#, r#"ク"#, r#"ク"#),
+        (r#"㋘"#, r#"㋘"#, r#"㋘"#, r#"ケ"#, r#"ケ"#),
+        (r#"㋙"#, r#"㋙"#, r#"㋙"#, r#"コ"#, r#"コ"#),
+        (r#"㋚"#, r#"㋚"#, r#"㋚"#, r#"サ"#, r#"サ"#),
+        (r#"㋛"#, r#"㋛"#, r#"㋛"#, r#"シ"#, r#"シ"#),
+        (r#"㋜"#, r#"㋜"#, r#"㋜"#, r#"ス"#, r#"ス"#),
+        (r#"㋝"#, r#"㋝"#, r#"㋝"#, r#"セ"#, r#"セ"#),
+        (r#"㋞"#, r#"㋞"#, r#"㋞"#, r#"ソ"#, r#"ソ"#),
+        (r#"㋟"#, r#"㋟"#, r#"㋟"#, r#"タ"#, r#"タ"#),
+        (r#"㋠"#, r#"㋠"#, r#"㋠"#, r#"チ"#, r#"チ"#),
+        (r#"㋡"#, r#"㋡"#, r#"㋡"#, r#"ツ"#, r#"ツ"#),
+        (r#"㋢"#, r#"㋢"#, r#"㋢"#, r#"テ"#, r#"テ"#),
+        (r#"㋣"#, r#"㋣"#, r#"㋣"#, r#"ト"#, r#"ト"#),
+        (r#"㋤"#, r#"㋤"#, r#"㋤"#, r#"ナ"#, r#"ナ"#),
+        (r#"㋥"#, r#"㋥"#, r#"㋥"#, r#"ニ"#, r#"ニ"#),
+        (r#"㋦"#, r#"㋦"#, r#"㋦"#, r#"ヌ"#, r#"ヌ"#),
+        (r#"㋧"#, r#"㋧"#, r#"㋧"#, r#"ネ"#, r#"ネ"#),
+        (r#"㋨"#, r#"㋨"#, r#"㋨"#, r#"ノ"#, r#"ノ"#),
+        (r#"㋩"#, r#"㋩"#, r#"㋩"#, r#"ハ"#, r#"ハ"#),
+        (r#"㋪"#, r#"㋪"#, r#"㋪"#, r#"ヒ"#, r#"ヒ"#),
+        (r#"㋫"#, r#"㋫"#, r#"㋫"#, r#"フ"#, r#"フ"#),
+        (r#"㋬"#, r#"㋬"#, r#"㋬"#, r#"ヘ"#, r#"ヘ"#),
+        (r#"㋭"#, r#"㋭"#, r#"㋭"#, r#"ホ"#, r#"ホ"#),
+        (r#"㋮"#, r#"㋮"#, r#"㋮"#, r#"マ"#, r#"マ"#),
+        (r#"㋯"#, r#"㋯"#, r#"㋯"#, r#"ミ"#, r#"ミ"#),
+        (r#"㋰"#, r#"㋰"#, r#"㋰"#, r#"ム"#, r#"ム"#),
+        (r#"㋱"#, r#"㋱"#, r#"㋱"#, r#"メ"#, r#"メ"#),
+        (r#"㋲"#, r#"㋲"#, r#"㋲"#, r#"モ"#, r#"モ"#),
+        (r#"㋳"#, r#"㋳"#, r#"㋳"#, r#"ヤ"#, r#"ヤ"#),
+        (r#"㋴"#, r#"㋴"#, r#"㋴"#, r#"ユ"#, r#"ユ"#),
+        (r#"㋵"#, r#"㋵"#, r#"㋵"#, r#"ヨ"#, r#"ヨ"#),
+        (r#"㋶"#, r#"㋶"#, r#"㋶"#, r#"ラ"#, r#"ラ"#),
+        (r#"㋷"#, r#"㋷"#, r#"㋷"#, r#"リ"#, r#"リ"#),
+        (r#"㋸"#, r#"㋸"#, r#"㋸"#, r#"ル"#, r#"ル"#),
+        (r#"㋹"#, r#"㋹"#, r#"㋹"#, r#"レ"#, r#"レ"#),
+        (r#"㋺"#, r#"㋺"#, r#"㋺"#, r#"ロ"#, r#"ロ"#),
+        (r#"㋻"#, r#"㋻"#, r#"㋻"#, r#"ワ"#, r#"ワ"#),
+        (r#"㋼"#, r#"㋼"#, r#"㋼"#, r#"ヰ"#, r#"ヰ"#),
+        (r#"㋽"#, r#"㋽"#, r#"㋽"#, r#"ヱ"#, r#"ヱ"#),
+        (r#"㋾"#, r#"㋾"#, r#"㋾"#, r#"ヲ"#, r#"ヲ"#),
+        (r#"㋿"#, r#"㋿"#, r#"㋿"#, r#"令和"#, r#"令和"#),
+        (r#"㌀"#, r#"㌀"#, r#"㌀"#, r#"アパート"#, r#"アパート"#),
+        (r#"㌁"#, r#"㌁"#, r#"㌁"#, r#"アルファ"#, r#"アルファ"#),
+        (r#"㌂"#, r#"㌂"#, r#"㌂"#, r#"アンペア"#, r#"アンペア"#),
+        (r#"㌃"#, r#"㌃"#, r#"㌃"#, r#"アール"#, r#"アール"#),
+        (r#"㌄"#, r#"㌄"#, r#"㌄"#, r#"イニング"#, r#"イニング"#),
+        (r#"㌅"#, r#"㌅"#, r#"㌅"#, r#"インチ"#, r#"インチ"#),
+        (r#"㌆"#, r#"㌆"#, r#"㌆"#, r#"ウォン"#, r#"ウォン"#),
+        (r#"㌇"#, r#"㌇"#, r#"㌇"#, r#"エスクード"#, r#"エスクード"#),
+        (r#"㌈"#, r#"㌈"#, r#"㌈"#, r#"エーカー"#, r#"エーカー"#),
+        (r#"㌉"#, r#"㌉"#, r#"㌉"#, r#"オンス"#, r#"オンス"#),
+        (r#"㌊"#, r#"㌊"#, r#"㌊"#, r#"オーム"#, r#"オーム"#),
+        (r#"㌋"#, r#"㌋"#, r#"㌋"#, r#"カイリ"#, r#"カイリ"#),
+        (r#"㌌"#, r#"㌌"#, r#"㌌"#, r#"カラット"#, r#"カラット"#),
+        (r#"㌍"#, r#"㌍"#, r#"㌍"#, r#"カロリー"#, r#"カロリー"#),
+        (r#"㌎"#, r#"㌎"#, r#"㌎"#, r#"ガロン"#, r#"ガロン"#),
+        (r#"㌏"#, r#"㌏"#, r#"㌏"#, r#"ガンマ"#, r#"ガンマ"#),
+        (r#"㌐"#, r#"㌐"#, r#"㌐"#, r#"ギガ"#, r#"ギガ"#),
+        (r#"㌑"#, r#"㌑"#, r#"㌑"#, r#"ギニー"#, r#"ギニー"#),
+        (r#"㌒"#, r#"㌒"#, r#"㌒"#, r#"キュリー"#, r#"キュリー"#),
+        (r#"㌓"#, r#"㌓"#, r#"㌓"#, r#"ギルダー"#, r#"ギルダー"#),
+        (r#"㌔"#, r#"㌔"#, r#"㌔"#, r#"キロ"#, r#"キロ"#),
+        (r#"㌕"#, r#"㌕"#, r#"㌕"#, r#"キログラム"#, r#"キログラム"#),
+        (r#"㌖"#, r#"㌖"#, r#"㌖"#, r#"キロメートル"#, r#"キロメートル"#),
+        (r#"㌗"#, r#"㌗"#, r#"㌗"#, r#"キロワット"#, r#"キロワット"#),
+        (r#"㌘"#, r#"㌘"#, r#"㌘"#, r#"グラム"#, r#"グラム"#),
+        (r#"㌙"#, r#"㌙"#, r#"㌙"#, r#"グラムトン"#, r#"グラムトン"#),
+        (r#"㌚"#, r#"㌚"#, r#"㌚"#, r#"クルゼイロ"#, r#"クルゼイロ"#),
+        (r#"㌛"#, r#"㌛"#, r#"㌛"#, r#"クローネ"#, r#"クローネ"#),
+        (r#"㌜"#, r#"㌜"#, r#"㌜"#, r#"ケース"#, r#"ケース"#),
+        (r#"㌝"#, r#"㌝"#, r#"㌝"#, r#"コルナ"#, r#"コルナ"#),
+        (r#"㌞"#, r#"㌞"#, r#"㌞"#, r#"コーポ"#, r#"コーポ"#),
+        (r#"㌟"#, r#"㌟"#, r#"㌟"#, r#"サイクル"#, r#"サイクル"#),
+        (r#"㌠"#, r#"㌠"#, r#"㌠"#, r#"サンチーム"#, r#"サンチーム"#),
+        (r#"㌡"#, r#"㌡"#, r#"㌡"#, r#"シリング"#, r#"シリング"#),
+        (r#"㌢"#, r#"㌢"#, r#"㌢"#, r#"センチ"#, r#"センチ"#),
+        (r#"㌣"#, r#"㌣"#, r#"㌣"#, r#"セント"#, r#"セント"#),
+        (r#"㌤"#, r#"㌤"#, r#"㌤"#, r#"ダース"#, r#"ダース"#),
+        (r#"㌥"#, r#"㌥"#, r#"㌥"#, r#"デシ"#, r#"デシ"#),
+        (r#"㌦"#, r#"㌦"#, r#"㌦"#, r#"ドル"#, r#"ドル"#),
+        (r#"㌧"#, r#"㌧"#, r#"㌧"#, r#"トン"#, r#"トン"#),
+        (r#"㌨"#, r#"㌨"#, r#"㌨"#, r#"ナノ"#, r#"ナノ"#),
+        (r#"㌩"#, r#"㌩"#, r#"㌩"#, r#"ノット"#, r#"ノット"#),
+        (r#"㌪"#, r#"㌪"#, r#"㌪"#, r#"ハイツ"#, r#"ハイツ"#),
+        (r#"㌫"#, r#"㌫"#, r#"㌫"#, r#"パーセント"#, r#"パーセント"#),
+        (r#"㌬"#, r#"㌬"#, r#"㌬"#, r#"パーツ"#, r#"パーツ"#),
+        (r#"㌭"#, r#"㌭"#, r#"㌭"#, r#"バーレル"#, r#"バーレル"#),
+        (r#"㌮"#, r#"㌮"#, r#"㌮"#, r#"ピアストル"#, r#"ピアストル"#),
+        (r#"㌯"#, r#"㌯"#, r#"㌯"#, r#"ピクル"#, r#"ピクル"#),
+        (r#"㌰"#, r#"㌰"#, r#"㌰"#, r#"ピコ"#, r#"ピコ"#),
+        (r#"㌱"#, r#"㌱"#, r#"㌱"#, r#"ビル"#, r#"ビル"#),
+        (r#"㌲"#, r#"㌲"#, r#"㌲"#, r#"ファラッド"#, r#"ファラッド"#),
+        (r#"㌳"#, r#"㌳"#, r#"㌳"#, r#"フィート"#, r#"フィート"#),
+        (r#"㌴"#, r#"㌴"#, r#"㌴"#, r#"ブッシェル"#, r#"ブッシェル"#),
+        (r#"㌵"#, r#"㌵"#, r#"㌵"#, r#"フラン"#, r#"フラン"#),
+        (r#"㌶"#, r#"㌶"#, r#"㌶"#, r#"ヘクタール"#, r#"ヘクタール"#),
+        (r#"㌷"#, r#"㌷"#, r#"㌷"#, r#"ペソ"#, r#"ペソ"#),
+        (r#"㌸"#, r#"㌸"#, r#"㌸"#, r#"ペニヒ"#, r#"ペニヒ"#),
+        (r#"㌹"#, r#"㌹"#, r#"㌹"#, r#"ヘルツ"#, r#"ヘルツ"#),
+        (r#"㌺"#, r#"㌺"#, r#"㌺"#, r#"ペンス"#, r#"ペンス"#),
+        (r#"㌻"#, r#"㌻"#, r#"㌻"#, r#"ページ"#, r#"ページ"#),
+        (r#"㌼"#, r#"㌼"#, r#"㌼"#, r#"ベータ"#, r#"ベータ"#),
+        (r#"㌽"#, r#"㌽"#, r#"㌽"#, r#"ポイント"#, r#"ポイント"#),
+        (r#"㌾"#, r#"㌾"#, r#"㌾"#, r#"ボルト"#, r#"ボルト"#),
+        (r#"㌿"#, r#"㌿"#, r#"㌿"#, r#"ホン"#, r#"ホン"#),
+        (r#"㍀"#, r#"㍀"#, r#"㍀"#, r#"ポンド"#, r#"ポンド"#),
+        (r#"㍁"#, r#"㍁"#, r#"㍁"#, r#"ホール"#, r#"ホール"#),
+        (r#"㍂"#, r#"㍂"#, r#"㍂"#, r#"ホーン"#, r#"ホーン"#),
+        (r#"㍃"#, r#"㍃"#, r#"㍃"#, r#"マイクロ"#, r#"マイクロ"#),
+        (r#"㍄"#, r#"㍄"#, r#"㍄"#, r#"マイル"#, r#"マイル"#),
+        (r#"㍅"#, r#"㍅"#, r#"㍅"#, r#"マッハ"#, r#"マッハ"#),
+        (r#"㍆"#, r#"㍆"#, r#"㍆"#, r#"マルク"#, r#"マルク"#),
+        (r#"㍇"#, r#"㍇"#, r#"㍇"#, r#"マンション"#, r#"マンション"#),
+        (r#"㍈"#, r#"㍈"#, r#"㍈"#, r#"ミクロン"#, r#"ミクロン"#),
+        (r#"㍉"#, r#"㍉"#, r#"㍉"#, r#"ミリ"#, r#"ミリ"#),
+        (r#"㍊"#, r#"㍊"#, r#"㍊"#, r#"ミリバール"#, r#"ミリバール"#),
+        (r#"㍋"#, r#"㍋"#, r#"㍋"#, r#"メガ"#, r#"メガ"#),
+        (r#"㍌"#, r#"㍌"#, r#"㍌"#, r#"メガトン"#, r#"メガトン"#),
+        (r#"㍍"#, r#"㍍"#, r#"㍍"#, r#"メートル"#, r#"メートル"#),
+        (r#"㍎"#, r#"㍎"#, r#"㍎"#, r#"ヤード"#, r#"ヤード"#),
+        (r#"㍏"#, r#"㍏"#, r#"㍏"#, r#"ヤール"#, r#"ヤール"#),
+        (r#"㍐"#, r#"㍐"#, r#"㍐"#, r#"ユアン"#, r#"ユアン"#),
+        (r#"㍑"#, r#"㍑"#, r#"㍑"#, r#"リットル"#, r#"リットル"#),
+        (r#"㍒"#, r#"㍒"#, r#"㍒"#, r#"リラ"#, r#"リラ"#),
+        (r#"㍓"#, r#"㍓"#, r#"㍓"#, r#"ルピー"#, r#"ルピー"#),
+        (r#"㍔"#, r#"㍔"#, r#"㍔"#, r#"ルーブル"#, r#"ルーブル"#),
+        (r#"㍕"#, r#"㍕"#, r#"㍕"#, r#"レム"#, r#"レム"#),
+        (r#"㍖"#, r#"㍖"#, r#"㍖"#, r#"レントゲン"#, r#"レントゲン"#),
+        (r#"㍗"#, r#"㍗"#, r#"㍗"#, r#"ワット"#, r#"ワット"#),
+        (r#"㍘"#, r#"㍘"#, r#"㍘"#, r#"0点"#, r#"0点"#),
+        (r#"㍙"#, r#"㍙"#, r#"㍙"#, r#"1点"#, r#"1点"#),
+        (r#"㍚"#, r#"㍚"#, r#"㍚"#, r#"2点"#, r#"2点"#),
+        (r#"㍛"#, r#"㍛"#, r#"㍛"#, r#"3点"#, r#"3点"#),
+        (r#"㍜"#, r#"㍜"#, r#"㍜"#, r#"4点"#, r#"4点"#),
+        (r#"㍝"#, r#"㍝"#, r#"㍝"#, r#"5点"#, r#"5点"#),
+        (r#"㍞"#, r#"㍞"#, r#"㍞"#, r#"6点"#, r#"6点"#),
+        (r#"㍟"#, r#"㍟"#, r#"㍟"#, r#"7点"#, r#"7点"#),
+        (r#"㍠"#, r#"㍠"#, r#"㍠"#, r#"8点"#, r#"8点"#),
+        (r#"㍡"#, r#"㍡"#, r#"㍡"#, r#"9点"#, r#"9点"#),
+        (r#"㍢"#, r#"㍢"#, r#"㍢"#, r#"10点"#, r#"10点"#),
+        (r#"㍣"#, r#"㍣"#, r#"㍣"#, r#"11点"#, r#"11点"#),
+        (r#"㍤"#, r#"㍤"#, r#"㍤"#, r#"12点"#, r#"12点"#),
+        (r#"㍥"#, r#"㍥"#, r#"㍥"#, r#"13点"#, r#"13点"#),
+        (r#"㍦"#, r#"㍦"#, r#"㍦"#, r#"14点"#, r#"14点"#),
+        (r#"㍧"#, r#"㍧"#, r#"㍧"#, r#"15点"#, r#"15点"#),
+        (r#"㍨"#, r#"㍨"#, r#"㍨"#, r#"16点"#, r#"16点"#),
+        (r#"㍩"#, r#"㍩"#, r#"㍩"#, r#"17点"#, r#"17点"#),
+        (r#"㍪"#, r#"㍪"#, r#"㍪"#, r#"18点"#, r#"18点"#),
+        (r#"㍫"#, r#"㍫"#, r#"㍫"#, r#"19点"#, r#"19点"#),
+        (r#"㍬"#, r#"㍬"#, r#"㍬"#, r#"20点"#, r#"20点"#),
+        (r#"㍭"#, r#"㍭"#, r#"㍭"#, r#"21点"#, r#"21点"#),
+        (r#"㍮"#, r#"㍮"#, r#"㍮"#, r#"22点"#, r#"22点"#),
+        (r#"㍯"#, r#"㍯"#, r#"㍯"#, r#"23点"#, r#"23点"#),
+        (r#"㍰"#, r#"㍰"#, r#"㍰"#, r#"24点"#, r#"24点"#),
+        (r#"㍱"#, r#"㍱"#, r#"㍱"#, r#"hPa"#, r#"hPa"#),
+        (r#"㍲"#, r#"㍲"#, r#"㍲"#, r#"da"#, r#"da"#),
+        (r#"㍳"#, r#"㍳"#, r#"㍳"#, r#"AU"#, r#"AU"#),
+        (r#"㍴"#, r#"㍴"#, r#"㍴"#, r#"bar"#, r#"bar"#),
+        (r#"㍵"#, r#"㍵"#, r#"㍵"#, r#"oV"#, r#"oV"#),
+        (r#"㍶"#, r#"㍶"#, r#"㍶"#, r#"pc"#, r#"pc"#),
+        (r#"㍷"#, r#"㍷"#, r#"㍷"#, r#"dm"#, r#"dm"#),
+        (r#"㍸"#, r#"㍸"#, r#"㍸"#, r#"dm2"#, r#"dm2"#),
+        (r#"㍹"#, r#"㍹"#, r#"㍹"#, r#"dm3"#, r#"dm3"#),
+        (r#"㍺"#, r#"㍺"#, r#"㍺"#, r#"IU"#, r#"IU"#),
+        (r#"㍻"#, r#"㍻"#, r#"㍻"#, r#"平成"#, r#"平成"#),
+        (r#"㍼"#, r#"㍼"#, r#"㍼"#, r#"昭和"#, r#"昭和"#),
+        (r#"㍽"#, r#"㍽"#, r#"㍽"#, r#"大正"#, r#"大正"#),
+        (r#"㍾"#, r#"㍾"#, r#"㍾"#, r#"明治"#, r#"明治"#),
+        (r#"㍿"#, r#"㍿"#, r#"㍿"#, r#"株式会社"#, r#"株式会社"#),
+        (r#"㎀"#, r#"㎀"#, r#"㎀"#, r#"pA"#, r#"pA"#),
+        (r#"㎁"#, r#"㎁"#, r#"㎁"#, r#"nA"#, r#"nA"#),
+        (r#"㎂"#, r#"㎂"#, r#"㎂"#, r#"μA"#, r#"μA"#),
+        (r#"㎃"#, r#"㎃"#, r#"㎃"#, r#"mA"#, r#"mA"#),
+        (r#"㎄"#, r#"㎄"#, r#"㎄"#, r#"kA"#, r#"kA"#),
+        (r#"㎅"#, r#"㎅"#, r#"㎅"#, r#"KB"#, r#"KB"#),
+        (r#"㎆"#, r#"㎆"#, r#"㎆"#, r#"MB"#, r#"MB"#),
+        (r#"㎇"#, r#"㎇"#, r#"㎇"#, r#"GB"#, r#"GB"#),
+        (r#"㎈"#, r#"㎈"#, r#"㎈"#, r#"cal"#, r#"cal"#),
+        (r#"㎉"#, r#"㎉"#, r#"㎉"#, r#"kcal"#, r#"kcal"#),
+        (r#"㎊"#, r#"㎊"#, r#"㎊"#, r#"pF"#, r#"pF"#),
+        (r#"㎋"#, r#"㎋"#, r#"㎋"#, r#"nF"#, r#"nF"#),
+        (r#"㎌"#, r#"㎌"#, r#"㎌"#, r#"μF"#, r#"μF"#),
+        (r#"㎍"#, r#"㎍"#, r#"㎍"#, r#"μg"#, r#"μg"#),
+        (r#"㎎"#, r#"㎎"#, r#"㎎"#, r#"mg"#, r#"mg"#),
+        (r#"㎏"#, r#"㎏"#, r#"㎏"#, r#"kg"#, r#"kg"#),
+        (r#"㎐"#, r#"㎐"#, r#"㎐"#, r#"Hz"#, r#"Hz"#),
+        (r#"㎑"#, r#"㎑"#, r#"㎑"#, r#"kHz"#, r#"kHz"#),
+        (r#"㎒"#, r#"㎒"#, r#"㎒"#, r#"MHz"#, r#"MHz"#),
+        (r#"㎓"#, r#"㎓"#, r#"㎓"#, r#"GHz"#, r#"GHz"#),
+        (r#"㎔"#, r#"㎔"#, r#"㎔"#, r#"THz"#, r#"THz"#),
+        (r#"㎕"#, r#"㎕"#, r#"㎕"#, r#"μl"#, r#"μl"#),
+        (r#"㎖"#, r#"㎖"#, r#"㎖"#, r#"ml"#, r#"ml"#),
+        (r#"㎗"#, r#"㎗"#, r#"㎗"#, r#"dl"#, r#"dl"#),
+        (r#"㎘"#, r#"㎘"#, r#"㎘"#, r#"kl"#, r#"kl"#),
+        (r#"㎙"#, r#"㎙"#, r#"㎙"#, r#"fm"#, r#"fm"#),
+        (r#"㎚"#, r#"㎚"#, r#"㎚"#, r#"nm"#, r#"nm"#),
+        (r#"㎛"#, r#"㎛"#, r#"㎛"#, r#"μm"#, r#"μm"#),
+        (r#"㎜"#, r#"㎜"#, r#"㎜"#, r#"mm"#, r#"mm"#),
+        (r#"㎝"#, r#"㎝"#, r#"㎝"#, r#"cm"#, r#"cm"#),
+        (r#"㎞"#, r#"㎞"#, r#"㎞"#, r#"km"#, r#"km"#),
+        (r#"㎟"#, r#"㎟"#, r#"㎟"#, r#"mm2"#, r#"mm2"#),
+        (r#"㎠"#, r#"㎠"#, r#"㎠"#, r#"cm2"#, r#"cm2"#),
+        (r#"㎡"#, r#"㎡"#, r#"㎡"#, r#"m2"#, r#"m2"#),
+        (r#"㎢"#, r#"㎢"#, r#"㎢"#, r#"km2"#, r#"km2"#),
+        (r#"㎣"#, r#"㎣"#, r#"㎣"#, r#"mm3"#, r#"mm3"#),
+        (r#"㎤"#, r#"㎤"#, r#"㎤"#, r#"cm3"#, r#"cm3"#),
+        (r#"㎥"#, r#"㎥"#, r#"㎥"#, r#"m3"#, r#"m3"#),
+        (r#"㎦"#, r#"㎦"#, r#"㎦"#, r#"km3"#, r#"km3"#),
+        (r#"㎧"#, r#"㎧"#, r#"㎧"#, r#"m∕s"#, r#"m∕s"#),
+        (r#"㎨"#, r#"㎨"#, r#"㎨"#, r#"m∕s2"#, r#"m∕s2"#),
+        (r#"㎩"#, r#"㎩"#, r#"㎩"#, r#"Pa"#, r#"Pa"#),
+        (r#"㎪"#, r#"㎪"#, r#"㎪"#, r#"kPa"#, r#"kPa"#),
+        (r#"㎫"#, r#"㎫"#, r#"㎫"#, r#"MPa"#, r#"MPa"#),
+        (r#"㎬"#, r#"㎬"#, r#"㎬"#, r#"GPa"#, r#"GPa"#),
+        (r#"㎭"#, r#"㎭"#, r#"㎭"#, r#"rad"#, r#"rad"#),
+        (r#"㎮"#, r#"㎮"#, r#"㎮"#, r#"rad∕s"#, r#"rad∕s"#),
+        (r#"㎯"#, r#"㎯"#, r#"㎯"#, r#"rad∕s2"#, r#"rad∕s2"#),
+        (r#"㎰"#, r#"㎰"#, r#"㎰"#, r#"ps"#, r#"ps"#),
+        (r#"㎱"#, r#"㎱"#, r#"㎱"#, r#"ns"#, r#"ns"#),
+        (r#"㎲"#, r#"㎲"#, r#"㎲"#, r#"μs"#, r#"μs"#),
+        (r#"㎳"#, r#"㎳"#, r#"㎳"#, r#"ms"#, r#"ms"#),
+        (r#"㎴"#, r#"㎴"#, r#"㎴"#, r#"pV"#, r#"pV"#),
+        (r#"㎵"#, r#"㎵"#, r#"㎵"#, r#"nV"#, r#"nV"#),
+        (r#"㎶"#, r#"㎶"#, r#"㎶"#, r#"μV"#, r#"μV"#),
+        (r#"㎷"#, r#"㎷"#, r#"㎷"#, r#"mV"#, r#"mV"#),
+        (r#"㎸"#, r#"㎸"#, r#"㎸"#, r#"kV"#, r#"kV"#),
+        (r#"㎹"#, r#"㎹"#, r#"㎹"#, r#"MV"#, r#"MV"#),
+        (r#"㎺"#, r#"㎺"#, r#"㎺"#, r#"pW"#, r#"pW"#),
+        (r#"㎻"#, r#"㎻"#, r#"㎻"#, r#"nW"#, r#"nW"#),
+        (r#"㎼"#, r#"㎼"#, r#"㎼"#, r#"μW"#, r#"μW"#),
+        (r#"㎽"#, r#"㎽"#, r#"㎽"#, r#"mW"#, r#"mW"#),
+        (r#"㎾"#, r#"㎾"#, r#"㎾"#, r#"kW"#, r#"kW"#),
+        (r#"㎿"#, r#"㎿"#, r#"㎿"#, r#"MW"#, r#"MW"#),
+        (r#"㏀"#, r#"㏀"#, r#"㏀"#, r#"kΩ"#, r#"kΩ"#),
+        (r#"㏁"#, r#"㏁"#, r#"㏁"#, r#"MΩ"#, r#"MΩ"#),
+        (r#"㏂"#, r#"㏂"#, r#"㏂"#, r#"a.m."#, r#"a.m."#),
+        (r#"㏃"#, r#"㏃"#, r#"㏃"#, r#"Bq"#, r#"Bq"#),
+        (r#"㏄"#, r#"㏄"#, r#"㏄"#, r#"cc"#, r#"cc"#),
+        (r#"㏅"#, r#"㏅"#, r#"㏅"#, r#"cd"#, r#"cd"#),
+        (r#"㏆"#, r#"㏆"#, r#"㏆"#, r#"C∕kg"#, r#"C∕kg"#),
+        (r#"㏇"#, r#"㏇"#, r#"㏇"#, r#"Co."#, r#"Co."#),
+        (r#"㏈"#, r#"㏈"#, r#"㏈"#, r#"dB"#, r#"dB"#),
+        (r#"㏉"#, r#"㏉"#, r#"㏉"#, r#"Gy"#, r#"Gy"#),
+        (r#"㏊"#, r#"㏊"#, r#"㏊"#, r#"ha"#, r#"ha"#),
+        (r#"㏋"#, r#"㏋"#, r#"㏋"#, r#"HP"#, r#"HP"#),
+        (r#"㏌"#, r#"㏌"#, r#"㏌"#, r#"in"#, r#"in"#),
+        (r#"㏍"#, r#"㏍"#, r#"㏍"#, r#"KK"#, r#"KK"#),
+        (r#"㏎"#, r#"㏎"#, r#"㏎"#, r#"KM"#, r#"KM"#),
+        (r#"㏏"#, r#"㏏"#, r#"㏏"#, r#"kt"#, r#"kt"#),
+        (r#"㏐"#, r#"㏐"#, r#"㏐"#, r#"lm"#, r#"lm"#),
+        (r#"㏑"#, r#"㏑"#, r#"㏑"#, r#"ln"#, r#"ln"#),
+        (r#"㏒"#, r#"㏒"#, r#"㏒"#, r#"log"#, r#"log"#),
+        (r#"㏓"#, r#"㏓"#, r#"㏓"#, r#"lx"#, r#"lx"#),
+        (r#"㏔"#, r#"㏔"#, r#"㏔"#, r#"mb"#, r#"mb"#),
+        (r#"㏕"#, r#"㏕"#, r#"㏕"#, r#"mil"#, r#"mil"#),
+        (r#"㏖"#, r#"㏖"#, r#"㏖"#, r#"mol"#, r#"mol"#),
+        (r#"㏗"#, r#"㏗"#, r#"㏗"#, r#"PH"#, r#"PH"#),
+        (r#"㏘"#, r#"㏘"#, r#"㏘"#, r#"p.m."#, r#"p.m."#),
+        (r#"㏙"#, r#"㏙"#, r#"㏙"#, r#"PPM"#, r#"PPM"#),
+        (r#"㏚"#, r#"㏚"#, r#"㏚"#, r#"PR"#, r#"PR"#),
+        (r#"㏛"#, r#"㏛"#, r#"㏛"#, r#"sr"#, r#"sr"#),
+        (r#"㏜"#, r#"㏜"#, r#"㏜"#, r#"Sv"#, r#"Sv"#),
+        (r#"㏝"#, r#"㏝"#, r#"㏝"#, r#"Wb"#, r#"Wb"#),
+        (r#"㏞"#, r#"㏞"#, r#"㏞"#, r#"V∕m"#, r#"V∕m"#),
+        (r#"㏟"#, r#"㏟"#, r#"㏟"#, r#"A∕m"#, r#"A∕m"#),
+        (r#"㏠"#, r#"㏠"#, r#"㏠"#, r#"1日"#, r#"1日"#),
+        (r#"㏡"#, r#"㏡"#, r#"㏡"#, r#"2日"#, r#"2日"#),
+        (r#"㏢"#, r#"㏢"#, r#"㏢"#, r#"3日"#, r#"3日"#),
+        (r#"㏣"#, r#"㏣"#, r#"㏣"#, r#"4日"#, r#"4日"#),
+        (r#"㏤"#, r#"㏤"#, r#"㏤"#, r#"5日"#, r#"5日"#),
+        (r#"㏥"#, r#"㏥"#, r#"㏥"#, r#"6日"#, r#"6日"#),
+        (r#"㏦"#, r#"㏦"#, r#"㏦"#, r#"7日"#, r#"7日"#),
+        (r#"㏧"#, r#"㏧"#, r#"㏧"#, r#"8日"#, r#"8日"#),
+        (r#"㏨"#, r#"㏨"#, r#"㏨"#, r#"9日"#, r#"9日"#),
+        (r#"㏩"#, r#"㏩"#, r#"㏩"#, r#"10日"#, r#"10日"#),
+        (r#"㏪"#, r#"㏪"#, r#"㏪"#, r#"11日"#, r#"11日"#),
+        (r#"㏫"#, r#"㏫"#, r#"㏫"#, r#"12日"#, r#"12日"#),
+        (r#"㏬"#, r#"㏬"#, r#"㏬"#, r#"13日"#, r#"13日"#),
+        (r#"㏭"#, r#"㏭"#, r#"㏭"#, r#"14日"#, r#"14日"#),
+        (r#"㏮"#, r#"㏮"#, r#"㏮"#, r#"15日"#, r#"15日"#),
+        (r#"㏯"#, r#"㏯"#, r#"㏯"#, r#"16日"#, r#"16日"#),
+        (r#"㏰"#, r#"㏰"#, r#"㏰"#, r#"17日"#, r#"17日"#),
+        (r#"㏱"#, r#"㏱"#, r#"㏱"#, r#"18日"#, r#"18日"#),
+        (r#"㏲"#, r#"㏲"#, r#"㏲"#, r#"19日"#, r#"19日"#),
+        (r#"㏳"#, r#"㏳"#, r#"㏳"#, r#"20日"#, r#"20日"#),
+        (r#"㏴"#, r#"㏴"#, r#"㏴"#, r#"21日"#, r#"21日"#),
+        (r#"㏵"#, r#"㏵"#, r#"㏵"#, r#"22日"#, r#"22日"#),
+        (r#"㏶"#, r#"㏶"#, r#"㏶"#, r#"23日"#, r#"23日"#),
+        (r#"㏷"#, r#"㏷"#, r#"㏷"#, r#"24日"#, r#"24日"#),
+        (r#"㏸"#, r#"㏸"#, r#"㏸"#, r#"25日"#, r#"25日"#),
+        (r#"㏹"#, r#"㏹"#, r#"㏹"#, r#"26日"#, r#"26日"#),
+        (r#"㏺"#, r#"㏺"#, r#"㏺"#, r#"27日"#, r#"27日"#),
+        (r#"㏻"#, r#"㏻"#, r#"㏻"#, r#"28日"#, r#"28日"#),
+        (r#"㏼"#, r#"㏼"#, r#"㏼"#, r#"29日"#, r#"29日"#),
+        (r#"㏽"#, r#"㏽"#, r#"㏽"#, r#"30日"#, r#"30日"#),
+        (r#"㏾"#, r#"㏾"#, r#"㏾"#, r#"31日"#, r#"31日"#),
+        (r#"㏿"#, r#"㏿"#, r#"㏿"#, r#"gal"#, r#"gal"#),
+        (r#"ꚜ"#, r#"ꚜ"#, r#"ꚜ"#, r#"ъ"#, r#"ъ"#),
+        (r#"ꚝ"#, r#"ꚝ"#, r#"ꚝ"#, r#"ь"#, r#"ь"#),
+        (r#"ꝰ"#, r#"ꝰ"#, r#"ꝰ"#, r#"ꝯ"#, r#"ꝯ"#),
+        (r#"ꟲ"#, r#"ꟲ"#, r#"ꟲ"#, r#"C"#, r#"C"#),
+        (r#"ꟳ"#, r#"ꟳ"#, r#"ꟳ"#, r#"F"#, r#"F"#),
+        (r#"ꟴ"#, r#"ꟴ"#, r#"ꟴ"#, r#"Q"#, r#"Q"#),
+        (r#"ꟸ"#, r#"ꟸ"#, r#"ꟸ"#, r#"Ħ"#, r#"Ħ"#),
+        (r#"ꟹ"#, r#"ꟹ"#, r#"ꟹ"#, r#"œ"#, r#"œ"#),
+        (r#"ꭜ"#, r#"ꭜ"#, r#"ꭜ"#, r#"ꜧ"#, r#"ꜧ"#),
+        (r#"ꭝ"#, r#"ꭝ"#, r#"ꭝ"#, r#"ꬷ"#, r#"ꬷ"#),
+        (r#"ꭞ"#, r#"ꭞ"#, r#"ꭞ"#, r#"ɫ"#, r#"ɫ"#),
+        (r#"ꭟ"#, r#"ꭟ"#, r#"ꭟ"#, r#"ꭒ"#, r#"ꭒ"#),
+        (r#"ꭩ"#, r#"ꭩ"#, r#"ꭩ"#, r#"ʍ"#, r#"ʍ"#),
+        (r#"가"#, r#"가"#, r#"가"#, r#"가"#, r#"가"#),
+        (r#"각"#, r#"각"#, r#"각"#, r#"각"#, r#"각"#),
+        (r#"갂"#, r#"갂"#, r#"갂"#, r#"갂"#, r#"갂"#),
+        (r#"갃"#, r#"갃"#, r#"갃"#, r#"갃"#, r#"갃"#),
+        (r#"간"#, r#"간"#, r#"간"#, r#"간"#, r#"간"#),
+        (r#"갅"#, r#"갅"#, r#"갅"#, r#"갅"#, r#"갅"#),
+        (r#"갆"#, r#"갆"#, r#"갆"#, r#"갆"#, r#"갆"#),
+        (r#"갇"#, r#"갇"#, r#"갇"#, r#"갇"#, r#"갇"#),
+        (r#"갈"#, r#"갈"#, r#"갈"#, r#"갈"#, r#"갈"#),
+        (r#"갉"#, r#"갉"#, r#"갉"#, r#"갉"#, r#"갉"#),
+        (r#"갊"#, r#"갊"#, r#"갊"#, r#"갊"#, r#"갊"#),
+        (r#"갋"#, r#"갋"#, r#"갋"#, r#"갋"#, r#"갋"#),
+        (r#"갌"#, r#"갌"#, r#"갌"#, r#"갌"#, r#"갌"#),
+        (r#"갍"#, r#"갍"#, r#"갍"#, r#"갍"#, r#"갍"#),
+        (r#"갎"#, r#"갎"#, r#"갎"#, r#"갎"#, r#"갎"#),
+        (r#"갏"#, r#"갏"#, r#"갏"#, r#"갏"#, r#"갏"#),
+        (r#"감"#, r#"감"#, r#"감"#, r#"감"#, r#"감"#),
+        (r#"갑"#, r#"갑"#, r#"갑"#, r#"갑"#, r#"갑"#),
+        (r#"값"#, r#"값"#, r#"값"#, r#"값"#, r#"값"#),
+        (r#"갓"#, r#"갓"#, r#"갓"#, r#"갓"#, r#"갓"#),
+        (r#"갔"#, r#"갔"#, r#"갔"#, r#"갔"#, r#"갔"#),
+        (r#"강"#, r#"강"#, r#"강"#, r#"강"#, r#"강"#),
+        (r#"갖"#, r#"갖"#, r#"갖"#, r#"갖"#, r#"갖"#),
+        (r#"갗"#, r#"갗"#, r#"갗"#, r#"갗"#, r#"갗"#),
+        (r#"갘"#, r#"갘"#, r#"갘"#, r#"갘"#, r#"갘"#),
+        (r#"같"#, r#"같"#, r#"같"#, r#"같"#, r#"같"#),
+        (r#"갚"#, r#"갚"#, r#"갚"#, r#"갚"#, r#"갚"#),
+        (r#"갛"#, r#"갛"#, r#"갛"#, r#"갛"#, r#"갛"#),
+        (r#"개"#, r#"개"#, r#"개"#, r#"개"#, r#"개"#),
+        (r#"객"#, r#"객"#, r#"객"#, r#"객"#, r#"객"#),
+        (r#"갞"#, r#"갞"#, r#"갞"#, r#"갞"#, r#"갞"#),
+        (r#"갟"#, r#"갟"#, r#"갟"#, r#"갟"#, r#"갟"#),
+        (r#"갠"#, r#"갠"#, r#"갠"#, r#"갠"#, r#"갠"#),
+        (r#"갡"#, r#"갡"#, r#"갡"#, r#"갡"#, r#"갡"#),
+        (r#"갢"#, r#"갢"#, r#"갢"#, r#"갢"#, r#"갢"#),
+        (r#"갣"#, r#"갣"#, r#"갣"#, r#"갣"#, r#"갣"#),
+        (r#"갤"#, r#"갤"#, r#"갤"#, r#"갤"#, r#"갤"#),
+        (r#"갥"#, r#"갥"#, r#"갥"#, r#"갥"#, r#"갥"#),
+        (r#"갦"#, r#"갦"#, r#"갦"#, r#"갦"#, r#"갦"#),
+        (r#"갧"#, r#"갧"#, r#"갧"#, r#"갧"#, r#"갧"#),
+        (r#"갨"#, r#"갨"#, r#"갨"#, r#"갨"#, r#"갨"#),
+        (r#"갩"#, r#"갩"#, r#"갩"#, r#"갩"#, r#"갩"#),
+        (r#"갪"#, r#"갪"#, r#"갪"#, r#"갪"#, r#"갪"#),
+        (r#"갫"#, r#"갫"#, r#"갫"#, r#"갫"#, r#"갫"#),
+        (r#"갬"#, r#"갬"#, r#"갬"#, r#"갬"#, r#"갬"#),
+        (r#"갭"#, r#"갭"#, r#"갭"#, r#"갭"#, r#"갭"#),
+        (r#"갮"#, r#"갮"#, r#"갮"#, r#"갮"#, r#"갮"#),
+        (r#"갯"#, r#"갯"#, r#"갯"#, r#"갯"#, r#"갯"#),
+        (r#"갰"#, r#"갰"#, r#"갰"#, r#"갰"#, r#"갰"#),
+        (r#"갱"#, r#"갱"#, r#"갱"#, r#"갱"#, r#"갱"#),
+        (r#"갲"#, r#"갲"#, r#"갲"#, r#"갲"#, r#"갲"#),
+        (r#"갳"#, r#"갳"#, r#"갳"#, r#"갳"#, r#"갳"#),
+        (r#"갴"#, r#"갴"#, r#"갴"#, r#"갴"#, r#"갴"#),
+        (r#"갵"#, r#"갵"#, r#"갵"#, r#"갵"#, r#"갵"#),
+        (r#"갶"#, r#"갶"#, r#"갶"#, r#"갶"#, r#"갶"#),
+        (r#"갷"#, r#"갷"#, r#"갷"#, r#"갷"#, r#"갷"#),
+        (r#"갸"#, r#"갸"#, r#"갸"#, r#"갸"#, r#"갸"#),
+        (r#"갹"#, r#"갹"#, r#"갹"#, r#"갹"#, r#"갹"#),
+        (r#"갺"#, r#"갺"#, r#"갺"#, r#"갺"#, r#"갺"#),
+        (r#"갻"#, r#"갻"#, r#"갻"#, r#"갻"#, r#"갻"#),
+        (r#"갼"#, r#"갼"#, r#"갼"#, r#"갼"#, r#"갼"#),
+        (r#"갽"#, r#"갽"#, r#"갽"#, r#"갽"#, r#"갽"#),
+        (r#"갾"#, r#"갾"#, r#"갾"#, r#"갾"#, r#"갾"#),
+        (r#"갿"#, r#"갿"#, r#"갿"#, r#"갿"#, r#"갿"#),
+        (r#"걀"#, r#"걀"#, r#"걀"#, r#"걀"#, r#"걀"#),
+        (r#"걁"#, r#"걁"#, r#"걁"#, r#"걁"#, r#"걁"#),
+        (r#"걂"#, r#"걂"#, r#"걂"#, r#"걂"#, r#"걂"#),
+        (r#"걃"#, r#"걃"#, r#"걃"#, r#"걃"#, r#"걃"#),
+        (r#"걄"#, r#"걄"#, r#"걄"#, r#"걄"#, r#"걄"#),
+        (r#"걅"#, r#"걅"#, r#"걅"#, r#"걅"#, r#"걅"#),
+        (r#"걆"#, r#"걆"#, r#"걆"#, r#"걆"#, r#"걆"#),
+        (r#"걇"#, r#"걇"#, r#"걇"#, r#"걇"#, r#"걇"#),
+        (r#"걈"#, r#"걈"#, r#"걈"#, r#"걈"#, r#"걈"#),
+        (r#"걉"#, r#"걉"#, r#"걉"#, r#"걉"#, r#"걉"#),
+        (r#"걊"#, r#"걊"#, r#"걊"#, r#"걊"#, r#"걊"#),
+        (r#"걋"#, r#"걋"#, r#"걋"#, r#"걋"#, r#"걋"#),
+        (r#"걌"#, r#"걌"#, r#"걌"#, r#"걌"#, r#"걌"#),
+        (r#"걍"#, r#"걍"#, r#"걍"#, r#"걍"#, r#"걍"#),
+        (r#"걎"#, r#"걎"#, r#"걎"#, r#"걎"#, r#"걎"#),
+        (r#"걏"#, r#"걏"#, r#"걏"#, r#"걏"#, r#"걏"#),
+        (r#"걐"#, r#"걐"#, r#"걐"#, r#"걐"#, r#"걐"#),
+        (r#"걑"#, r#"걑"#, r#"걑"#, r#"걑"#, r#"걑"#),
+        (r#"걒"#, r#"걒"#, r#"걒"#, r#"걒"#, r#"걒"#),
+        (r#"걓"#, r#"걓"#, r#"걓"#, r#"걓"#, r#"걓"#),
+        (r#"걔"#, r#"걔"#, r#"걔"#, r#"걔"#, r#"걔"#),
+        (r#"걕"#, r#"걕"#, r#"걕"#, r#"걕"#, r#"걕"#),
+        (r#"걖"#, r#"걖"#, r#"걖"#, r#"걖"#, r#"걖"#),
+        (r#"걗"#, r#"걗"#, r#"걗"#, r#"걗"#, r#"걗"#),
+        (r#"걘"#, r#"걘"#, r#"걘"#, r#"걘"#, r#"걘"#),
+        (r#"걙"#, r#"걙"#, r#"걙"#, r#"걙"#, r#"걙"#),
+        (r#"걚"#, r#"걚"#, r#"걚"#, r#"걚"#, r#"걚"#),
+        (r#"걛"#, r#"걛"#, r#"걛"#, r#"걛"#, r#"걛"#),
+        (r#"걜"#, r#"걜"#, r#"걜"#, r#"걜"#, r#"걜"#),
+        (r#"걝"#, r#"걝"#, r#"걝"#, r#"걝"#, r#"걝"#),
+        (r#"걞"#, r#"걞"#, r#"걞"#, r#"걞"#, r#"걞"#),
+        (r#"걟"#, r#"걟"#, r#"걟"#, r#"걟"#, r#"걟"#),
+        (r#"걠"#, r#"걠"#, r#"걠"#, r#"걠"#, r#"걠"#),
+        (r#"걡"#, r#"걡"#, r#"걡"#, r#"걡"#, r#"걡"#),
+        (r#"걢"#, r#"걢"#, r#"걢"#, r#"걢"#, r#"걢"#),
+        (r#"걣"#, r#"걣"#, r#"걣"#, r#"걣"#, r#"걣"#),
+        (r#"걤"#, r#"걤"#, r#"걤"#, r#"걤"#, r#"걤"#),
+        (r#"걥"#, r#"걥"#, r#"걥"#, r#"걥"#, r#"걥"#),
+        (r#"걦"#, r#"걦"#, r#"걦"#, r#"걦"#, r#"걦"#),
+        (r#"걧"#, r#"걧"#, r#"걧"#, r#"걧"#, r#"걧"#),
+        (r#"걨"#, r#"걨"#, r#"걨"#, r#"걨"#, r#"걨"#),
+        (r#"걩"#, r#"걩"#, r#"걩"#, r#"걩"#, r#"걩"#),
+        (r#"걪"#, r#"걪"#, r#"걪"#, r#"걪"#, r#"걪"#),
+        (r#"걫"#, r#"걫"#, r#"걫"#, r#"걫"#, r#"걫"#),
+        (r#"걬"#, r#"걬"#, r#"걬"#, r#"걬"#, r#"걬"#),
+        (r#"걭"#, r#"걭"#, r#"걭"#, r#"걭"#, r#"걭"#),
+        (r#"걮"#, r#"걮"#, r#"걮"#, r#"걮"#, r#"걮"#),
+        (r#"걯"#, r#"걯"#, r#"걯"#, r#"걯"#, r#"걯"#),
+        (r#"거"#, r#"거"#, r#"거"#, r#"거"#, r#"거"#),
+        (r#"걱"#, r#"걱"#, r#"걱"#, r#"걱"#, r#"걱"#),
+        (r#"걲"#, r#"걲"#, r#"걲"#, r#"걲"#, r#"걲"#),
+        (r#"걳"#, r#"걳"#, r#"걳"#, r#"걳"#, r#"걳"#),
+        (r#"건"#, r#"건"#, r#"건"#, r#"건"#, r#"건"#),
+        (r#"걵"#, r#"걵"#, r#"걵"#, r#"걵"#, r#"걵"#),
+        (r#"걶"#, r#"걶"#, r#"걶"#, r#"걶"#, r#"걶"#),
+        (r#"걷"#, r#"걷"#, r#"걷"#, r#"걷"#, r#"걷"#),
+        (r#"걸"#, r#"걸"#, r#"걸"#, r#"걸"#, r#"걸"#),
+        (r#"걹"#, r#"걹"#, r#"걹"#, r#"걹"#, r#"걹"#),
+        (r#"걺"#, r#"걺"#, r#"걺"#, r#"걺"#, r#"걺"#),
+        (r#"걻"#, r#"걻"#, r#"걻"#, r#"걻"#, r#"걻"#),
+        (r#"걼"#, r#"걼"#, r#"걼"#, r#"걼"#, r#"걼"#),
+        (r#"걽"#, r#"걽"#, r#"걽"#, r#"걽"#, r#"걽"#),
+        (r#"걾"#, r#"걾"#, r#"걾"#, r#"걾"#, r#"걾"#),
+        (r#"걿"#, r#"걿"#, r#"걿"#, r#"걿"#, r#"걿"#),
+        (r#"검"#, r#"검"#, r#"검"#, r#"검"#, r#"검"#),
+        (r#"겁"#, r#"겁"#, r#"겁"#, r#"겁"#, r#"겁"#),
+        (r#"겂"#, r#"겂"#, r#"겂"#, r#"겂"#, r#"겂"#),
+        (r#"것"#, r#"것"#, r#"것"#, r#"것"#, r#"것"#),
+        (r#"겄"#, r#"겄"#, r#"겄"#, r#"겄"#, r#"겄"#),
+        (r#"겅"#, r#"겅"#, r#"겅"#, r#"겅"#, r#"겅"#),
+        (r#"겆"#, r#"겆"#, r#"겆"#, r#"겆"#, r#"겆"#),
+        (r#"겇"#, r#"겇"#, r#"겇"#, r#"겇"#, r#"겇"#),
+        (r#"겈"#, r#"겈"#, r#"겈"#, r#"겈"#, r#"겈"#),
+        (r#"겉"#, r#"겉"#, r#"겉"#, r#"겉"#, r#"겉"#),
+        (r#"겊"#, r#"겊"#, r#"겊"#, r#"겊"#, r#"겊"#),
+        (r#"겋"#, r#"겋"#, r#"겋"#, r#"겋"#, r#"겋"#),
+        (r#"게"#, r#"게"#, r#"게"#, r#"게"#, r#"게"#),
+        (r#"겍"#, r#"겍"#, r#"겍"#, r#"겍"#, r#"겍"#),
+        (r#"겎"#, r#"겎"#, r#"겎"#, r#"겎"#, r#"겎"#),
+        (r#"겏"#, r#"겏"#, r#"겏"#, r#"겏"#, r#"겏"#),
+        (r#"겐"#, r#"겐"#, r#"겐"#, r#"겐"#, r#"겐"#),
+        (r#"겑"#, r#"겑"#, r#"겑"#, r#"겑"#, r#"겑"#),
+        (r#"겒"#, r#"겒"#, r#"겒"#, r#"겒"#, r#"겒"#),
+        (r#"겓"#, r#"겓"#, r#"겓"#, r#"겓"#, r#"겓"#),
+        (r#"겔"#, r#"겔"#, r#"겔"#, r#"겔"#, r#"겔"#),
+        (r#"겕"#, r#"겕"#, r#"겕"#, r#"겕"#, r#"겕"#),
+        (r#"겖"#, r#"겖"#, r#"겖"#, r#"겖"#, r#"겖"#),
+        (r#"겗"#, r#"겗"#, r#"겗"#, r#"겗"#, r#"겗"#),
+        (r#"겘"#, r#"겘"#, r#"겘"#, r#"겘"#, r#"겘"#),
+        (r#"겙"#, r#"겙"#, r#"겙"#, r#"겙"#, r#"겙"#),
+        (r#"겚"#, r#"겚"#, r#"겚"#, r#"겚"#, r#"겚"#),
+        (r#"겛"#, r#"겛"#, r#"겛"#, r#"겛"#, r#"겛"#),
+        (r#"겜"#, r#"겜"#, r#"겜"#, r#"겜"#, r#"겜"#),
+        (r#"겝"#, r#"겝"#, r#"겝"#, r#"겝"#, r#"겝"#),
+        (r#"겞"#, r#"겞"#, r#"겞"#, r#"겞"#, r#"겞"#),
+        (r#"겟"#, r#"겟"#, r#"겟"#, r#"겟"#, r#"겟"#),
+        (r#"겠"#, r#"겠"#, r#"겠"#, r#"겠"#, r#"겠"#),
+        (r#"겡"#, r#"겡"#, r#"겡"#, r#"겡"#, r#"겡"#),
+        (r#"겢"#, r#"겢"#, r#"겢"#, r#"겢"#, r#"겢"#),
+        (r#"겣"#, r#"겣"#, r#"겣"#, r#"겣"#, r#"겣"#),
+        (r#"겤"#, r#"겤"#, r#"겤"#, r#"겤"#, r#"겤"#),
+        (r#"겥"#, r#"겥"#, r#"겥"#, r#"겥"#, r#"겥"#),
+        (r#"겦"#, r#"겦"#, r#"겦"#, r#"겦"#, r#"겦"#),
+        (r#"겧"#, r#"겧"#, r#"겧"#, r#"겧"#, r#"겧"#),
+        (r#"겨"#, r#"겨"#, r#"겨"#, r#"겨"#, r#"겨"#),
+        (r#"격"#, r#"격"#, r#"격"#, r#"격"#, r#"격"#),
+        (r#"겪"#, r#"겪"#, r#"겪"#, r#"겪"#, r#"겪"#),
+        (r#"겫"#, r#"겫"#, r#"겫"#, r#"겫"#, r#"겫"#),
+        (r#"견"#, r#"견"#, r#"견"#, r#"견"#, r#"견"#),
+        (r#"겭"#, r#"겭"#, r#"겭"#, r#"겭"#, r#"겭"#),
+        (r#"겮"#, r#"겮"#, r#"겮"#, r#"겮"#, r#"겮"#),
+        (r#"겯"#, r#"겯"#, r#"겯"#, r#"겯"#, r#"겯"#),
+        (r#"결"#, r#"결"#, r#"결"#, r#"결"#, r#"결"#),
+        (r#"겱"#, r#"겱"#, r#"겱"#, r#"겱"#, r#"겱"#),
+        (r#"겲"#, r#"겲"#, r#"겲"#, r#"겲"#, r#"겲"#),
+        (r#"겳"#, r#"겳"#, r#"겳"#, r#"겳"#, r#"겳"#),
+        (r#"겴"#, r#"겴"#, r#"겴"#, r#"겴"#, r#"겴"#),
+        (r#"겵"#, r#"겵"#, r#"겵"#, r#"겵"#, r#"겵"#),
+        (r#"겶"#, r#"겶"#, r#"겶"#, r#"겶"#, r#"겶"#),
+        (r#"겷"#, r#"겷"#, r#"겷"#, r#"겷"#, r#"겷"#),
+        (r#"겸"#, r#"겸"#, r#"겸"#, r#"겸"#, r#"겸"#),
+        (r#"겹"#, r#"겹"#, r#"겹"#, r#"겹"#, r#"겹"#),
+        (r#"겺"#, r#"겺"#, r#"겺"#, r#"겺"#, r#"겺"#),
+        (r#"겻"#, r#"겻"#, r#"겻"#, r#"겻"#, r#"겻"#),
+        (r#"겼"#, r#"겼"#, r#"겼"#, r#"겼"#, r#"겼"#),
+        (r#"경"#, r#"경"#, r#"경"#, r#"경"#, r#"경"#),
+        (r#"겾"#, r#"겾"#, r#"겾"#, r#"겾"#, r#"겾"#),
+        (r#"겿"#, r#"겿"#, r#"겿"#, r#"겿"#, r#"겿"#),
+        (r#"곀"#, r#"곀"#, r#"곀"#, r#"곀"#, r#"곀"#),
+        (r#"곁"#, r#"곁"#, r#"곁"#, r#"곁"#, r#"곁"#),
+        (r#"곂"#, r#"곂"#, r#"곂"#, r#"곂"#, r#"곂"#),
+        (r#"곃"#, r#"곃"#, r#"곃"#, r#"곃"#, r#"곃"#),
+        (r#"계"#, r#"계"#, r#"계"#, r#"계"#, r#"계"#),
+        (r#"곅"#, r#"곅"#, r#"곅"#, r#"곅"#, r#"곅"#),
+        (r#"곆"#, r#"곆"#, r#"곆"#, r#"곆"#, r#"곆"#),
+        (r#"곇"#, r#"곇"#, r#"곇"#, r#"곇"#, r#"곇"#),
+        (r#"곈"#, r#"곈"#, r#"곈"#, r#"곈"#, r#"곈"#),
+        (r#"곉"#, r#"곉"#, r#"곉"#, r#"곉"#, r#"곉"#),
+        (r#"곊"#, r#"곊"#, r#"곊"#, r#"곊"#, r#"곊"#),
+        (r#"곋"#, r#"곋"#, r#"곋"#, r#"곋"#, r#"곋"#),
+        (r#"곌"#, r#"곌"#, r#"곌"#, r#"곌"#, r#"곌"#),
+        (r#"곍"#, r#"곍"#, r#"곍"#, r#"곍"#, r#"곍"#),
+        (r#"곎"#, r#"곎"#, r#"곎"#, r#"곎"#, r#"곎"#),
+        (r#"곏"#, r#"곏"#, r#"곏"#, r#"곏"#, r#"곏"#),
+        (r#"곐"#, r#"곐"#, r#"곐"#, r#"곐"#, r#"곐"#),
+        (r#"곑"#, r#"곑"#, r#"곑"#, r#"곑"#, r#"곑"#),
+        (r#"곒"#, r#"곒"#, r#"곒"#, r#"곒"#, r#"곒"#),
+        (r#"곓"#, r#"곓"#, r#"곓"#, r#"곓"#, r#"곓"#),
+        (r#"곔"#, r#"곔"#, r#"곔"#, r#"곔"#, r#"곔"#),
+        (r#"곕"#, r#"곕"#, r#"곕"#, r#"곕"#, r#"곕"#),
+        (r#"곖"#, r#"곖"#, r#"곖"#, r#"곖"#, r#"곖"#),
+        (r#"곗"#, r#"곗"#, r#"곗"#, r#"곗"#, r#"곗"#),
+        (r#"곘"#, r#"곘"#, r#"곘"#, r#"곘"#, r#"곘"#),
+        (r#"곙"#, r#"곙"#, r#"곙"#, r#"곙"#, r#"곙"#),
+        (r#"곚"#, r#"곚"#, r#"곚"#, r#"곚"#, r#"곚"#),
+        (r#"곛"#, r#"곛"#, r#"곛"#, r#"곛"#, r#"곛"#),
+        (r#"곜"#, r#"곜"#, r#"곜"#, r#"곜"#, r#"곜"#),
+        (r#"곝"#, r#"곝"#, r#"곝"#, r#"곝"#, r#"곝"#),
+        (r#"곞"#, r#"곞"#, r#"곞"#, r#"곞"#, r#"곞"#),
+        (r#"곟"#, r#"곟"#, r#"곟"#, r#"곟"#, r#"곟"#),
+        (r#"고"#, r#"고"#, r#"고"#, r#"고"#, r#"고"#),
+        (r#"곡"#, r#"곡"#, r#"곡"#, r#"곡"#, r#"곡"#),
+        (r#"곢"#, r#"곢"#, r#"곢"#, r#"곢"#, r#"곢"#),
+        (r#"곣"#, r#"곣"#, r#"곣"#, r#"곣"#, r#"곣"#),
+        (r#"곤"#, r#"곤"#, r#"곤"#, r#"곤"#, r#"곤"#),
+        (r#"곥"#, r#"곥"#, r#"곥"#, r#"곥"#, r#"곥"#),
+        (r#"곦"#, r#"곦"#, r#"곦"#, r#"곦"#, r#"곦"#),
+        (r#"곧"#, r#"곧"#, r#"곧"#, r#"곧"#, r#"곧"#),
+        (r#"골"#, r#"골"#, r#"골"#, r#"골"#, r#"골"#),
+        (r#"곩"#, r#"곩"#, r#"곩"#, r#"곩"#, r#"곩"#),
+        (r#"곪"#, r#"곪"#, r#"곪"#, r#"곪"#, r#"곪"#),
+        (r#"곫"#, r#"곫"#, r#"곫"#, r#"곫"#, r#"곫"#),
+        (r#"곬"#, r#"곬"#, r#"곬"#, r#"곬"#, r#"곬"#),
+        (r#"곭"#, r#"곭"#, r#"곭"#, r#"곭"#, r#"곭"#),
+        (r#"곮"#, r#"곮"#, r#"곮"#, r#"곮"#, r#"곮"#),
+        (r#"곯"#, r#"곯"#, r#"곯"#, r#"곯"#, r#"곯"#),
+        (r#"곰"#, r#"곰"#, r#"곰"#, r#"곰"#, r#"곰"#),
+        (r#"곱"#, r#"곱"#, r#"곱"#, r#"곱"#, r#"곱"#),
+        (r#"곲"#, r#"곲"#, r#"곲"#, r#"곲"#, r#"곲"#),
+        (r#"곳"#, r#"곳"#, r#"곳"#, r#"곳"#, r#"곳"#),
+        (r#"곴"#, r#"곴"#, r#"곴"#, r#"곴"#, r#"곴"#),
+        (r#"공"#, r#"공"#, r#"공"#, r#"공"#, r#"공"#),
+        (r#"곶"#, r#"곶"#, r#"곶"#, r#"곶"#, r#"곶"#),
+        (r#"곷"#, r#"곷"#, r#"곷"#, r#"곷"#, r#"곷"#),
+        (r#"곸"#, r#"곸"#, r#"곸"#, r#"곸"#, r#"곸"#),
+        (r#"곹"#, r#"곹"#, r#"곹"#, r#"곹"#, r#"곹"#),
+        (r#"곺"#, r#"곺"#, r#"곺"#, r#"곺"#, r#"곺"#),
+        (r#"곻"#, r#"곻"#, r#"곻"#, r#"곻"#, r#"곻"#),
+        (r#"과"#, r#"과"#, r#"과"#, r#"과"#, r#"과"#),
+        (r#"곽"#, r#"곽"#, r#"곽"#, r#"곽"#, r#"곽"#),
+        (r#"곾"#, r#"곾"#, r#"곾"#, r#"곾"#, r#"곾"#),
+        (r#"곿"#, r#"곿"#, r#"곿"#, r#"곿"#, r#"곿"#),
+        (r#"관"#, r#"관"#, r#"관"#, r#"관"#, r#"관"#),
+        (r#"괁"#, r#"괁"#, r#"괁"#, r#"괁"#, r#"괁"#),
+        (r#"괂"#, r#"괂"#, r#"괂"#, r#"괂"#, r#"괂"#),
+        (r#"괃"#, r#"괃"#, r#"괃"#, r#"괃"#, r#"괃"#),
+        (r#"괄"#, r#"괄"#, r#"괄"#, r#"괄"#, r#"괄"#),
+        (r#"괅"#, r#"괅"#, r#"괅"#, r#"괅"#, r#"괅"#),
+        (r#"괆"#, r#"괆"#, r#"괆"#, r#"괆"#, r#"괆"#),
+        (r#"괇"#, r#"괇"#, r#"괇"#, r#"괇"#, r#"괇"#),
+        (r#"괈"#, r#"괈"#, r#"괈"#, r#"괈"#, r#"괈"#),
+        (r#"괉"#, r#"괉"#, r#"괉"#, r#"괉"#, r#"괉"#),
+        (r#"괊"#, r#"괊"#, r#"괊"#, r#"괊"#, r#"괊"#),
+        (r#"괋"#, r#"괋"#, r#"괋"#, r#"괋"#, r#"괋"#),
+        (r#"괌"#, r#"괌"#, r#"괌"#, r#"괌"#, r#"괌"#),
+        (r#"괍"#, r#"괍"#, r#"괍"#, r#"괍"#, r#"괍"#),
+        (r#"괎"#, r#"괎"#, r#"괎"#, r#"괎"#, r#"괎"#),
+        (r#"괏"#, r#"괏"#, r#"괏"#, r#"괏"#, r#"괏"#),
+        (r#"괐"#, r#"괐"#, r#"괐"#, r#"괐"#, r#"괐"#),
+        (r#"광"#, r#"광"#, r#"광"#, r#"광"#, r#"광"#),
+        (r#"괒"#, r#"괒"#, r#"괒"#, r#"괒"#, r#"괒"#),
+        (r#"괓"#, r#"괓"#, r#"괓"#, r#"괓"#, r#"괓"#),
+        (r#"괔"#, r#"괔"#, r#"괔"#, r#"괔"#, r#"괔"#),
+        (r#"괕"#, r#"괕"#, r#"괕"#, r#"괕"#, r#"괕"#),
+        (r#"괖"#, r#"괖"#, r#"괖"#, r#"괖"#, r#"괖"#),
+        (r#"괗"#, r#"괗"#, r#"괗"#, r#"괗"#, r#"괗"#),
+        (r#"괘"#, r#"괘"#, r#"괘"#, r#"괘"#, r#"괘"#),
+        (r#"괙"#, r#"괙"#, r#"괙"#, r#"괙"#, r#"괙"#),
+        (r#"괚"#, r#"괚"#, r#"괚"#, r#"괚"#, r#"괚"#),
+        (r#"괛"#, r#"괛"#, r#"괛"#, r#"괛"#, r#"괛"#),
+        (r#"괜"#, r#"괜"#, r#"괜"#, r#"괜"#, r#"괜"#),
+        (r#"괝"#, r#"괝"#, r#"괝"#, r#"괝"#, r#"괝"#),
+        (r#"괞"#, r#"괞"#, r#"괞"#, r#"괞"#, r#"괞"#),
+        (r#"괟"#, r#"괟"#, r#"괟"#, r#"괟"#, r#"괟"#),
+        (r#"괠"#, r#"괠"#, r#"괠"#, r#"괠"#, r#"괠"#),
+        (r#"괡"#, r#"괡"#, r#"괡"#, r#"괡"#, r#"괡"#),
+        (r#"괢"#, r#"괢"#, r#"괢"#, r#"괢"#, r#"괢"#),
+        (r#"괣"#, r#"괣"#, r#"괣"#, r#"괣"#, r#"괣"#),
+        (r#"괤"#, r#"괤"#, r#"괤"#, r#"괤"#, r#"괤"#),
+        (r#"괥"#, r#"괥"#, r#"괥"#, r#"괥"#, r#"괥"#),
+        (r#"괦"#, r#"괦"#, r#"괦"#, r#"괦"#, r#"괦"#),
+        (r#"괧"#, r#"괧"#, r#"괧"#, r#"괧"#, r#"괧"#),
+        (r#"괨"#, r#"괨"#, r#"괨"#, r#"괨"#, r#"괨"#),
+        (r#"괩"#, r#"괩"#, r#"괩"#, r#"괩"#, r#"괩"#),
+        (r#"괪"#, r#"괪"#, r#"괪"#, r#"괪"#, r#"괪"#),
+        (r#"괫"#, r#"괫"#, r#"괫"#, r#"괫"#, r#"괫"#),
+        (r#"괬"#, r#"괬"#, r#"괬"#, r#"괬"#, r#"괬"#),
+        (r#"괭"#, r#"괭"#, r#"괭"#, r#"괭"#, r#"괭"#),
+        (r#"괮"#, r#"괮"#, r#"괮"#, r#"괮"#, r#"괮"#),
+        (r#"괯"#, r#"괯"#, r#"괯"#, r#"괯"#, r#"괯"#),
+        (r#"괰"#, r#"괰"#, r#"괰"#, r#"괰"#, r#"괰"#),
+        (r#"괱"#, r#"괱"#, r#"괱"#, r#"괱"#, r#"괱"#),
+        (r#"괲"#, r#"괲"#, r#"괲"#, r#"괲"#, r#"괲"#),
+        (r#"괳"#, r#"괳"#, r#"괳"#, r#"괳"#, r#"괳"#),
+        (r#"괴"#, r#"괴"#, r#"괴"#, r#"괴"#, r#"괴"#),
+        (r#"괵"#, r#"괵"#, r#"괵"#, r#"괵"#, r#"괵"#),
+        (r#"괶"#, r#"괶"#, r#"괶"#, r#"괶"#, r#"괶"#),
+        (r#"괷"#, r#"괷"#, r#"괷"#, r#"괷"#, r#"괷"#),
+        (r#"괸"#, r#"괸"#, r#"괸"#, r#"괸"#, r#"괸"#),
+        (r#"괹"#, r#"괹"#, r#"괹"#, r#"괹"#, r#"괹"#),
+        (r#"괺"#, r#"괺"#, r#"괺"#, r#"괺"#, r#"괺"#),
+        (r#"괻"#, r#"괻"#, r#"괻"#, r#"괻"#, r#"괻"#),
+        (r#"괼"#, r#"괼"#, r#"괼"#, r#"괼"#, r#"괼"#),
+        (r#"괽"#, r#"괽"#, r#"괽"#, r#"괽"#, r#"괽"#),
+        (r#"괾"#, r#"괾"#, r#"괾"#, r#"괾"#, r#"괾"#),
+        (r#"괿"#, r#"괿"#, r#"괿"#, r#"괿"#, r#"괿"#),
+        (r#"굀"#, r#"굀"#, r#"굀"#, r#"굀"#, r#"굀"#),
+        (r#"굁"#, r#"굁"#, r#"굁"#, r#"굁"#, r#"굁"#),
+        (r#"굂"#, r#"굂"#, r#"굂"#, r#"굂"#, r#"굂"#),
+        (r#"굃"#, r#"굃"#, r#"굃"#, r#"굃"#, r#"굃"#),
+        (r#"굄"#, r#"굄"#, r#"굄"#, r#"굄"#, r#"굄"#),
+        (r#"굅"#, r#"굅"#, r#"굅"#, r#"굅"#, r#"굅"#),
+        (r#"굆"#, r#"굆"#, r#"굆"#, r#"굆"#, r#"굆"#),
+        (r#"굇"#, r#"굇"#, r#"굇"#, r#"굇"#, r#"굇"#),
+        (r#"굈"#, r#"굈"#, r#"굈"#, r#"굈"#, r#"굈"#),
+        (r#"굉"#, r#"굉"#, r#"굉"#, r#"굉"#, r#"굉"#),
+        (r#"굊"#, r#"굊"#, r#"굊"#, r#"굊"#, r#"굊"#),
+        (r#"굋"#, r#"굋"#, r#"굋"#, r#"굋"#, r#"굋"#),
+        (r#"굌"#, r#"굌"#, r#"굌"#, r#"굌"#, r#"굌"#),
+        (r#"굍"#, r#"굍"#, r#"굍"#, r#"굍"#, r#"굍"#),
+        (r#"굎"#, r#"굎"#, r#"굎"#, r#"굎"#, r#"굎"#),
+        (r#"굏"#, r#"굏"#, r#"굏"#, r#"굏"#, r#"굏"#),
+        (r#"교"#, r#"교"#, r#"교"#, r#"교"#, r#"교"#),
+        (r#"굑"#, r#"굑"#, r#"굑"#, r#"굑"#, r#"굑"#),
+        (r#"굒"#, r#"굒"#, r#"굒"#, r#"굒"#, r#"굒"#),
+        (r#"굓"#, r#"굓"#, r#"굓"#, r#"굓"#, r#"굓"#),
+        (r#"굔"#, r#"굔"#, r#"굔"#, r#"굔"#, r#"굔"#),
+        (r#"굕"#, r#"굕"#, r#"굕"#, r#"굕"#, r#"굕"#),
+        (r#"굖"#, r#"굖"#, r#"굖"#, r#"굖"#, r#"굖"#),
+        (r#"굗"#, r#"굗"#, r#"굗"#, r#"굗"#, r#"굗"#),
+        (r#"굘"#, r#"굘"#, r#"굘"#, r#"굘"#, r#"굘"#),
+        (r#"굙"#, r#"굙"#, r#"굙"#, r#"굙"#, r#"굙"#),
+        (r#"굚"#, r#"굚"#, r#"굚"#, r#"굚"#, r#"굚"#),
+        (r#"굛"#, r#"굛"#, r#"굛"#, r#"굛"#, r#"굛"#),
+        (r#"굜"#, r#"굜"#, r#"굜"#, r#"굜"#, r#"굜"#),
+        (r#"굝"#, r#"굝"#, r#"굝"#, r#"굝"#, r#"굝"#),
+        (r#"굞"#, r#"굞"#, r#"굞"#, r#"굞"#, r#"굞"#),
+        (r#"굟"#, r#"굟"#, r#"굟"#, r#"굟"#, r#"굟"#),
+        (r#"굠"#, r#"굠"#, r#"굠"#, r#"굠"#, r#"굠"#),
+        (r#"굡"#, r#"굡"#, r#"굡"#, r#"굡"#, r#"굡"#),
+        (r#"굢"#, r#"굢"#, r#"굢"#, r#"굢"#, r#"굢"#),
+        (r#"굣"#, r#"굣"#, r#"굣"#, r#"굣"#, r#"굣"#),
+        (r#"굤"#, r#"굤"#, r#"굤"#, r#"굤"#, r#"굤"#),
+        (r#"굥"#, r#"굥"#, r#"굥"#, r#"굥"#, r#"굥"#),
+        (r#"굦"#, r#"굦"#, r#"굦"#, r#"굦"#, r#"굦"#),
+        (r#"굧"#, r#"굧"#, r#"굧"#, r#"굧"#, r#"굧"#),
+        (r#"굨"#, r#"굨"#, r#"굨"#, r#"굨"#, r#"굨"#),
+        (r#"굩"#, r#"굩"#, r#"굩"#, r#"굩"#, r#"굩"#),
+        (r#"굪"#, r#"굪"#, r#"굪"#, r#"굪"#, r#"굪"#),
+        (r#"굫"#, r#"굫"#, r#"굫"#, r#"굫"#, r#"굫"#),
+        (r#"구"#, r#"구"#, r#"구"#, r#"구"#, r#"구"#),
+        (r#"국"#, r#"국"#, r#"국"#, r#"국"#, r#"국"#),
+        (r#"굮"#, r#"굮"#, r#"굮"#, r#"굮"#, r#"굮"#),
+        (r#"굯"#, r#"굯"#, r#"굯"#, r#"굯"#, r#"굯"#),
+        (r#"군"#, r#"군"#, r#"군"#, r#"군"#, r#"군"#),
+        (r#"굱"#, r#"굱"#, r#"굱"#, r#"굱"#, r#"굱"#),
+        (r#"굲"#, r#"굲"#, r#"굲"#, r#"굲"#, r#"굲"#),
+        (r#"굳"#, r#"굳"#, r#"굳"#, r#"굳"#, r#"굳"#),
+        (r#"굴"#, r#"굴"#, r#"굴"#, r#"굴"#, r#"굴"#),
+        (r#"굵"#, r#"굵"#, r#"굵"#, r#"굵"#, r#"굵"#),
+        (r#"굶"#, r#"굶"#, r#"굶"#, r#"굶"#, r#"굶"#),
+        (r#"굷"#, r#"굷"#, r#"굷"#, r#"굷"#, r#"굷"#),
+        (r#"굸"#, r#"굸"#, r#"굸"#, r#"굸"#, r#"굸"#),
+        (r#"굹"#, r#"굹"#, r#"굹"#, r#"굹"#, r#"굹"#),
+        (r#"굺"#, r#"굺"#, r#"굺"#, r#"굺"#, r#"굺"#),
+        (r#"굻"#, r#"굻"#, r#"굻"#, r#"굻"#, r#"굻"#),
+        (r#"굼"#, r#"굼"#, r#"굼"#, r#"굼"#, r#"굼"#),
+        (r#"굽"#, r#"굽"#, r#"굽"#, r#"굽"#, r#"굽"#),
+        (r#"굾"#, r#"굾"#, r#"굾"#, r#"굾"#, r#"굾"#),
+        (r#"굿"#, r#"굿"#, r#"굿"#, r#"굿"#, r#"굿"#),
+        (r#"궀"#, r#"궀"#, r#"궀"#, r#"궀"#, r#"궀"#),
+        (r#"궁"#, r#"궁"#, r#"궁"#, r#"궁"#, r#"궁"#),
+        (r#"궂"#, r#"궂"#, r#"궂"#, r#"궂"#, r#"궂"#),
+        (r#"궃"#, r#"궃"#, r#"궃"#, r#"궃"#, r#"궃"#),
+        (r#"궄"#, r#"궄"#, r#"궄"#, r#"궄"#, r#"궄"#),
+        (r#"궅"#, r#"궅"#, r#"궅"#, r#"궅"#, r#"궅"#),
+        (r#"궆"#, r#"궆"#, r#"궆"#, r#"궆"#, r#"궆"#),
+        (r#"궇"#, r#"궇"#, r#"궇"#, r#"궇"#, r#"궇"#),
+        (r#"궈"#, r#"궈"#, r#"궈"#, r#"궈"#, r#"궈"#),
+        (r#"궉"#, r#"궉"#, r#"궉"#, r#"궉"#, r#"궉"#),
+        (r#"궊"#, r#"궊"#, r#"궊"#, r#"궊"#, r#"궊"#),
+        (r#"궋"#, r#"궋"#, r#"궋"#, r#"궋"#, r#"궋"#),
+        (r#"권"#, r#"권"#, r#"권"#, r#"권"#, r#"권"#),
+        (r#"궍"#, r#"궍"#, r#"궍"#, r#"궍"#, r#"궍"#),
+        (r#"궎"#, r#"궎"#, r#"궎"#, r#"궎"#, r#"궎"#),
+        (r#"궏"#, r#"궏"#, r#"궏"#, r#"궏"#, r#"궏"#),
+        (r#"궐"#, r#"궐"#, r#"궐"#, r#"궐"#, r#"궐"#),
+        (r#"궑"#, r#"궑"#, r#"궑"#, r#"궑"#, r#"궑"#),
+        (r#"궒"#, r#"궒"#, r#"궒"#, r#"궒"#, r#"궒"#),
+        (r#"궓"#, r#"궓"#, r#"궓"#, r#"궓"#, r#"궓"#),
+        (r#"궔"#, r#"궔"#, r#"궔"#, r#"궔"#, r#"궔"#),
+        (r#"궕"#, r#"궕"#, r#"궕"#, r#"궕"#, r#"궕"#),
+        (r#"궖"#, r#"궖"#, r#"궖"#, r#"궖"#, r#"궖"#),
+        (r#"궗"#, r#"궗"#, r#"궗"#, r#"궗"#, r#"궗"#),
+        (r#"궘"#, r#"궘"#, r#"궘"#, r#"궘"#, r#"궘"#),
+        (r#"궙"#, r#"궙"#, r#"궙"#, r#"궙"#, r#"궙"#),
+        (r#"궚"#, r#"궚"#, r#"궚"#, r#"궚"#, r#"궚"#),
+        (r#"궛"#, r#"궛"#, r#"궛"#, r#"궛"#, r#"궛"#),
+        (r#"궜"#, r#"궜"#, r#"궜"#, r#"궜"#, r#"궜"#),
+        (r#"궝"#, r#"궝"#, r#"궝"#, r#"궝"#, r#"궝"#),
+        (r#"궞"#, r#"궞"#, r#"궞"#, r#"궞"#, r#"궞"#),
+        (r#"궟"#, r#"궟"#, r#"궟"#, r#"궟"#, r#"궟"#),
+        (r#"궠"#, r#"궠"#, r#"궠"#, r#"궠"#, r#"궠"#),
+        (r#"궡"#, r#"궡"#, r#"궡"#, r#"궡"#, r#"궡"#),
+        (r#"궢"#, r#"궢"#, r#"궢"#, r#"궢"#, r#"궢"#),
+        (r#"궣"#, r#"궣"#, r#"궣"#, r#"궣"#, r#"궣"#),
+        (r#"궤"#, r#"궤"#, r#"궤"#, r#"궤"#, r#"궤"#),
+        (r#"궥"#, r#"궥"#, r#"궥"#, r#"궥"#, r#"궥"#),
+        (r#"궦"#, r#"궦"#, r#"궦"#, r#"궦"#, r#"궦"#),
+        (r#"궧"#, r#"궧"#, r#"궧"#, r#"궧"#, r#"궧"#),
+        (r#"궨"#, r#"궨"#, r#"궨"#, r#"궨"#, r#"궨"#),
+        (r#"궩"#, r#"궩"#, r#"궩"#, r#"궩"#, r#"궩"#),
+        (r#"궪"#, r#"궪"#, r#"궪"#, r#"궪"#, r#"궪"#),
+        (r#"궫"#, r#"궫"#, r#"궫"#, r#"궫"#, r#"궫"#),
+        (r#"궬"#, r#"궬"#, r#"궬"#, r#"궬"#, r#"궬"#),
+        (r#"궭"#, r#"궭"#, r#"궭"#, r#"궭"#, r#"궭"#),
+        (r#"궮"#, r#"궮"#, r#"궮"#, r#"궮"#, r#"궮"#),
+        (r#"궯"#, r#"궯"#, r#"궯"#, r#"궯"#, r#"궯"#),
+        (r#"궰"#, r#"궰"#, r#"궰"#, r#"궰"#, r#"궰"#),
+        (r#"궱"#, r#"궱"#, r#"궱"#, r#"궱"#, r#"궱"#),
+        (r#"궲"#, r#"궲"#, r#"궲"#, r#"궲"#, r#"궲"#),
+        (r#"궳"#, r#"궳"#, r#"궳"#, r#"궳"#, r#"궳"#),
+        (r#"궴"#, r#"궴"#, r#"궴"#, r#"궴"#, r#"궴"#),
+        (r#"궵"#, r#"궵"#, r#"궵"#, r#"궵"#, r#"궵"#),
+        (r#"궶"#, r#"궶"#, r#"궶"#, r#"궶"#, r#"궶"#),
+        (r#"궷"#, r#"궷"#, r#"궷"#, r#"궷"#, r#"궷"#),
+        (r#"궸"#, r#"궸"#, r#"궸"#, r#"궸"#, r#"궸"#),
+        (r#"궹"#, r#"궹"#, r#"궹"#, r#"궹"#, r#"궹"#),
+        (r#"궺"#, r#"궺"#, r#"궺"#, r#"궺"#, r#"궺"#),
+        (r#"궻"#, r#"궻"#, r#"궻"#, r#"궻"#, r#"궻"#),
+        (r#"궼"#, r#"궼"#, r#"궼"#, r#"궼"#, r#"궼"#),
+        (r#"궽"#, r#"궽"#, r#"궽"#, r#"궽"#, r#"궽"#),
+        (r#"궾"#, r#"궾"#, r#"궾"#, r#"궾"#, r#"궾"#),
+        (r#"궿"#, r#"궿"#, r#"궿"#, r#"궿"#, r#"궿"#),
+        (r#"귀"#, r#"귀"#, r#"귀"#, r#"귀"#, r#"귀"#),
+        (r#"귁"#, r#"귁"#, r#"귁"#, r#"귁"#, r#"귁"#),
+        (r#"귂"#, r#"귂"#, r#"귂"#, r#"귂"#, r#"귂"#),
+        (r#"귃"#, r#"귃"#, r#"귃"#, r#"귃"#, r#"귃"#),
+        (r#"귄"#, r#"귄"#, r#"귄"#, r#"귄"#, r#"귄"#),
+        (r#"귅"#, r#"귅"#, r#"귅"#, r#"귅"#, r#"귅"#),
+        (r#"귆"#, r#"귆"#, r#"귆"#, r#"귆"#, r#"귆"#),
+        (r#"귇"#, r#"귇"#, r#"귇"#, r#"귇"#, r#"귇"#),
+        (r#"귈"#, r#"귈"#, r#"귈"#, r#"귈"#, r#"귈"#),
+        (r#"귉"#, r#"귉"#, r#"귉"#, r#"귉"#, r#"귉"#),
+        (r#"귊"#, r#"귊"#, r#"귊"#, r#"귊"#, r#"귊"#),
+        (r#"귋"#, r#"귋"#, r#"귋"#, r#"귋"#, r#"귋"#),
+        (r#"귌"#, r#"귌"#, r#"귌"#, r#"귌"#, r#"귌"#),
+        (r#"귍"#, r#"귍"#, r#"귍"#, r#"귍"#, r#"귍"#),
+        (r#"귎"#, r#"귎"#, r#"귎"#, r#"귎"#, r#"귎"#),
+        (r#"귏"#, r#"귏"#, r#"귏"#, r#"귏"#, r#"귏"#),
+        (r#"귐"#, r#"귐"#, r#"귐"#, r#"귐"#, r#"귐"#),
+        (r#"귑"#, r#"귑"#, r#"귑"#, r#"귑"#, r#"귑"#),
+        (r#"귒"#, r#"귒"#, r#"귒"#, r#"귒"#, r#"귒"#),
+        (r#"귓"#, r#"귓"#, r#"귓"#, r#"귓"#, r#"귓"#),
+        (r#"귔"#, r#"귔"#, r#"귔"#, r#"귔"#, r#"귔"#),
+        (r#"귕"#, r#"귕"#, r#"귕"#, r#"귕"#, r#"귕"#),
+        (r#"귖"#, r#"귖"#, r#"귖"#, r#"귖"#, r#"귖"#),
+        (r#"귗"#, r#"귗"#, r#"귗"#, r#"귗"#, r#"귗"#),
+        (r#"귘"#, r#"귘"#, r#"귘"#, r#"귘"#, r#"귘"#),
+        (r#"귙"#, r#"귙"#, r#"귙"#, r#"귙"#, r#"귙"#),
+        (r#"귚"#, r#"귚"#, r#"귚"#, r#"귚"#, r#"귚"#),
+        (r#"귛"#, r#"귛"#, r#"귛"#, r#"귛"#, r#"귛"#),
+        (r#"규"#, r#"규"#, r#"규"#, r#"규"#, r#"규"#),
+        (r#"귝"#, r#"귝"#, r#"귝"#, r#"귝"#, r#"귝"#),
+        (r#"귞"#, r#"귞"#, r#"귞"#, r#"귞"#, r#"귞"#),
+        (r#"귟"#, r#"귟"#, r#"귟"#, r#"귟"#, r#"귟"#),
+        (r#"균"#, r#"균"#, r#"균"#, r#"균"#, r#"균"#),
+        (r#"귡"#, r#"귡"#, r#"귡"#, r#"귡"#, r#"귡"#),
+        (r#"귢"#, r#"귢"#, r#"귢"#, r#"귢"#, r#"귢"#),
+        (r#"귣"#, r#"귣"#, r#"귣"#, r#"귣"#, r#"귣"#),
+        (r#"귤"#, r#"귤"#, r#"귤"#, r#"귤"#, r#"귤"#),
+        (r#"귥"#, r#"귥"#, r#"귥"#, r#"귥"#, r#"귥"#),
+        (r#"귦"#, r#"귦"#, r#"귦"#, r#"귦"#, r#"귦"#),
+        (r#"귧"#, r#"귧"#, r#"귧"#, r#"귧"#, r#"귧"#),
+        (r#"귨"#, r#"귨"#, r#"귨"#, r#"귨"#, r#"귨"#),
+        (r#"귩"#, r#"귩"#, r#"귩"#, r#"귩"#, r#"귩"#),
+        (r#"귪"#, r#"귪"#, r#"귪"#, r#"귪"#, r#"귪"#),
+        (r#"귫"#, r#"귫"#, r#"귫"#, r#"귫"#, r#"귫"#),
+        (r#"귬"#, r#"귬"#, r#"귬"#, r#"귬"#, r#"귬"#),
+        (r#"귭"#, r#"귭"#, r#"귭"#, r#"귭"#, r#"귭"#),
+        (r#"귮"#, r#"귮"#, r#"귮"#, r#"귮"#, r#"귮"#),
+        (r#"귯"#, r#"귯"#, r#"귯"#, r#"귯"#, r#"귯"#),
+        (r#"귰"#, r#"귰"#, r#"귰"#, r#"귰"#, r#"귰"#),
+        (r#"귱"#, r#"귱"#, r#"귱"#, r#"귱"#, r#"귱"#),
+        (r#"귲"#, r#"귲"#, r#"귲"#, r#"귲"#, r#"귲"#),
+        (r#"귳"#, r#"귳"#, r#"귳"#, r#"귳"#, r#"귳"#),
+        (r#"귴"#, r#"귴"#, r#"귴"#, r#"귴"#, r#"귴"#),
+        (r#"귵"#, r#"귵"#, r#"귵"#, r#"귵"#, r#"귵"#),
+        (r#"귶"#, r#"귶"#, r#"귶"#, r#"귶"#, r#"귶"#),
+        (r#"귷"#, r#"귷"#, r#"귷"#, r#"귷"#, r#"귷"#),
+        (r#"그"#, r#"그"#, r#"그"#, r#"그"#, r#"그"#),
+        (r#"극"#, r#"극"#, r#"극"#, r#"극"#, r#"극"#),
+        (r#"귺"#, r#"귺"#, r#"귺"#, r#"귺"#, r#"귺"#),
+        (r#"귻"#, r#"귻"#, r#"귻"#, r#"귻"#, r#"귻"#),
+        (r#"근"#, r#"근"#, r#"근"#, r#"근"#, r#"근"#),
+        (r#"귽"#, r#"귽"#, r#"귽"#, r#"귽"#, r#"귽"#),
+        (r#"귾"#, r#"귾"#, r#"귾"#, r#"귾"#, r#"귾"#),
+        (r#"귿"#, r#"귿"#, r#"귿"#, r#"귿"#, r#"귿"#),
+        (r#"글"#, r#"글"#, r#"글"#, r#"글"#, r#"글"#),
+        (r#"긁"#, r#"긁"#, r#"긁"#, r#"긁"#, r#"긁"#),
+        (r#"긂"#, r#"긂"#, r#"긂"#, r#"긂"#, r#"긂"#),
+        (r#"긃"#, r#"긃"#, r#"긃"#, r#"긃"#, r#"긃"#),
+        (r#"긄"#, r#"긄"#, r#"긄"#, r#"긄"#, r#"긄"#),
+        (r#"긅"#, r#"긅"#, r#"긅"#, r#"긅"#, r#"긅"#),
+        (r#"긆"#, r#"긆"#, r#"긆"#, r#"긆"#, r#"긆"#),
+        (r#"긇"#, r#"긇"#, r#"긇"#, r#"긇"#, r#"긇"#),
+        (r#"금"#, r#"금"#, r#"금"#, r#"금"#, r#"금"#),
+        (r#"급"#, r#"급"#, r#"급"#, r#"급"#, r#"급"#),
+        (r#"긊"#, r#"긊"#, r#"긊"#, r#"긊"#, r#"긊"#),
+        (r#"긋"#, r#"긋"#, r#"긋"#, r#"긋"#, r#"긋"#),
+        (r#"긌"#, r#"긌"#, r#"긌"#, r#"긌"#, r#"긌"#),
+        (r#"긍"#, r#"긍"#, r#"긍"#, r#"긍"#, r#"긍"#),
+        (r#"긎"#, r#"긎"#, r#"긎"#, r#"긎"#, r#"긎"#),
+        (r#"긏"#, r#"긏"#, r#"긏"#, r#"긏"#, r#"긏"#),
+        (r#"긐"#, r#"긐"#, r#"긐"#, r#"긐"#, r#"긐"#),
+        (r#"긑"#, r#"긑"#, r#"긑"#, r#"긑"#, r#"긑"#),
+        (r#"긒"#, r#"긒"#, r#"긒"#, r#"긒"#, r#"긒"#),
+        (r#"긓"#, r#"긓"#, r#"긓"#, r#"긓"#, r#"긓"#),
+        (r#"긔"#, r#"긔"#, r#"긔"#, r#"긔"#, r#"긔"#),
+        (r#"긕"#, r#"긕"#, r#"긕"#, r#"긕"#, r#"긕"#),
+        (r#"긖"#, r#"긖"#, r#"긖"#, r#"긖"#, r#"긖"#),
+        (r#"긗"#, r#"긗"#, r#"긗"#, r#"긗"#, r#"긗"#),
+        (r#"긘"#, r#"긘"#, r#"긘"#, r#"긘"#, r#"긘"#),
+        (r#"긙"#, r#"긙"#, r#"긙"#, r#"긙"#, r#"긙"#),
+        (r#"긚"#, r#"긚"#, r#"긚"#, r#"긚"#, r#"긚"#),
+        (r#"긛"#, r#"긛"#, r#"긛"#, r#"긛"#, r#"긛"#),
+        (r#"긜"#, r#"긜"#, r#"긜"#, r#"긜"#, r#"긜"#),
+        (r#"긝"#, r#"긝"#, r#"긝"#, r#"긝"#, r#"긝"#),
+        (r#"긞"#, r#"긞"#, r#"긞"#, r#"긞"#, r#"긞"#),
+        (r#"긟"#, r#"긟"#, r#"긟"#, r#"긟"#, r#"긟"#),
+        (r#"긠"#, r#"긠"#, r#"긠"#, r#"긠"#, r#"긠"#),
+        (r#"긡"#, r#"긡"#, r#"긡"#, r#"긡"#, r#"긡"#),
+        (r#"긢"#, r#"긢"#, r#"긢"#, r#"긢"#, r#"긢"#),
+        (r#"긣"#, r#"긣"#, r#"긣"#, r#"긣"#, r#"긣"#),
+        (r#"긤"#, r#"긤"#, r#"긤"#, r#"긤"#, r#"긤"#),
+        (r#"긥"#, r#"긥"#, r#"긥"#, r#"긥"#, r#"긥"#),
+        (r#"긦"#, r#"긦"#, r#"긦"#, r#"긦"#, r#"긦"#),
+        (r#"긧"#, r#"긧"#, r#"긧"#, r#"긧"#, r#"긧"#),
+        (r#"긨"#, r#"긨"#, r#"긨"#, r#"긨"#, r#"긨"#),
+        (r#"긩"#, r#"긩"#, r#"긩"#, r#"긩"#, r#"긩"#),
+        (r#"긪"#, r#"긪"#, r#"긪"#, r#"긪"#, r#"긪"#),
+        (r#"긫"#, r#"긫"#, r#"긫"#, r#"긫"#, r#"긫"#),
+        (r#"긬"#, r#"긬"#, r#"긬"#, r#"긬"#, r#"긬"#),
+        (r#"긭"#, r#"긭"#, r#"긭"#, r#"긭"#, r#"긭"#),
+        (r#"긮"#, r#"긮"#, r#"긮"#, r#"긮"#, r#"긮"#),
+        (r#"긯"#, r#"긯"#, r#"긯"#, r#"긯"#, r#"긯"#),
+        (r#"기"#, r#"기"#, r#"기"#, r#"기"#, r#"기"#),
+        (r#"긱"#, r#"긱"#, r#"긱"#, r#"긱"#, r#"긱"#),
+        (r#"긲"#, r#"긲"#, r#"긲"#, r#"긲"#, r#"긲"#),
+        (r#"긳"#, r#"긳"#, r#"긳"#, r#"긳"#, r#"긳"#),
+        (r#"긴"#, r#"긴"#, r#"긴"#, r#"긴"#, r#"긴"#),
+        (r#"긵"#, r#"긵"#, r#"긵"#, r#"긵"#, r#"긵"#),
+        (r#"긶"#, r#"긶"#, r#"긶"#, r#"긶"#, r#"긶"#),
+        (r#"긷"#, r#"긷"#, r#"긷"#, r#"긷"#, r#"긷"#),
+        (r#"길"#, r#"길"#, r#"길"#, r#"길"#, r#"길"#),
+        (r#"긹"#, r#"긹"#, r#"긹"#, r#"긹"#, r#"긹"#),
+        (r#"긺"#, r#"긺"#, r#"긺"#, r#"긺"#, r#"긺"#),
+        (r#"긻"#, r#"긻"#, r#"긻"#, r#"긻"#, r#"긻"#),
+        (r#"긼"#, r#"긼"#, r#"긼"#, r#"긼"#, r#"긼"#),
+        (r#"긽"#, r#"긽"#, r#"긽"#, r#"긽"#, r#"긽"#),
+        (r#"긾"#, r#"긾"#, r#"긾"#, r#"긾"#, r#"긾"#),
+        (r#"긿"#, r#"긿"#, r#"긿"#, r#"긿"#, r#"긿"#),
+        (r#"김"#, r#"김"#, r#"김"#, r#"김"#, r#"김"#),
+        (r#"깁"#, r#"깁"#, r#"깁"#, r#"깁"#, r#"깁"#),
+        (r#"깂"#, r#"깂"#, r#"깂"#, r#"깂"#, r#"깂"#),
+        (r#"깃"#, r#"깃"#, r#"깃"#, r#"깃"#, r#"깃"#),
+        (r#"깄"#, r#"깄"#, r#"깄"#, r#"깄"#, r#"깄"#),
+        (r#"깅"#, r#"깅"#, r#"깅"#, r#"깅"#, r#"깅"#),
+        (r#"깆"#, r#"깆"#, r#"깆"#, r#"깆"#, r#"깆"#),
+        (r#"깇"#, r#"깇"#, r#"깇"#, r#"깇"#, r#"깇"#),
+        (r#"깈"#, r#"깈"#, r#"깈"#, r#"깈"#, r#"깈"#),
+        (r#"깉"#, r#"깉"#, r#"깉"#, r#"깉"#, r#"깉"#),
+        (r#"깊"#, r#"깊"#, r#"깊"#, r#"깊"#, r#"깊"#),
+        (r#"깋"#, r#"깋"#, r#"깋"#, r#"깋"#, r#"깋"#),
+        (r#"까"#, r#"까"#, r#"까"#, r#"까"#, r#"까"#),
+        (r#"깍"#, r#"깍"#, r#"깍"#, r#"깍"#, r#"깍"#),
+        (r#"깎"#, r#"깎"#, r#"깎"#, r#"깎"#, r#"깎"#),
+        (r#"깏"#, r#"깏"#, r#"깏"#, r#"깏"#, r#"깏"#),
+        (r#"깐"#, r#"깐"#, r#"깐"#, r#"깐"#, r#"깐"#),
+        (r#"깑"#, r#"깑"#, r#"깑"#, r#"깑"#, r#"깑"#),
+        (r#"깒"#, r#"깒"#, r#"깒"#, r#"깒"#, r#"깒"#),
+        (r#"깓"#, r#"깓"#, r#"깓"#, r#"깓"#, r#"깓"#),
+        (r#"깔"#, r#"깔"#, r#"깔"#, r#"깔"#, r#"깔"#),
+        (r#"깕"#, r#"깕"#, r#"깕"#, r#"깕"#, r#"깕"#),
+        (r#"깖"#, r#"깖"#, r#"깖"#, r#"깖"#, r#"깖"#),
+        (r#"깗"#, r#"깗"#, r#"깗"#, r#"깗"#, r#"깗"#),
+        (r#"깘"#, r#"깘"#, r#"깘"#, r#"깘"#, r#"깘"#),
+        (r#"깙"#, r#"깙"#, r#"깙"#, r#"깙"#, r#"깙"#),
+        (r#"깚"#, r#"깚"#, r#"깚"#, r#"깚"#, r#"깚"#),
+        (r#"깛"#, r#"깛"#, r#"깛"#, r#"깛"#, r#"깛"#),
+        (r#"깜"#, r#"깜"#, r#"깜"#, r#"깜"#, r#"깜"#),
+        (r#"깝"#, r#"깝"#, r#"깝"#, r#"깝"#, r#"깝"#),
+        (r#"깞"#, r#"깞"#, r#"깞"#, r#"깞"#, r#"깞"#),
+        (r#"깟"#, r#"깟"#, r#"깟"#, r#"깟"#, r#"깟"#),
+        (r#"깠"#, r#"깠"#, r#"깠"#, r#"깠"#, r#"깠"#),
+        (r#"깡"#, r#"깡"#, r#"깡"#, r#"깡"#, r#"깡"#),
+        (r#"깢"#, r#"깢"#, r#"깢"#, r#"깢"#, r#"깢"#),
+        (r#"깣"#, r#"깣"#, r#"깣"#, r#"깣"#, r#"깣"#),
+        (r#"깤"#, r#"깤"#, r#"깤"#, r#"깤"#, r#"깤"#),
+        (r#"깥"#, r#"깥"#, r#"깥"#, r#"깥"#, r#"깥"#),
+        (r#"깦"#, r#"깦"#, r#"깦"#, r#"깦"#, r#"깦"#),
+        (r#"깧"#, r#"깧"#, r#"깧"#, r#"깧"#, r#"깧"#),
+        (r#"깨"#, r#"깨"#, r#"깨"#, r#"깨"#, r#"깨"#),
+        (r#"깩"#, r#"깩"#, r#"깩"#, r#"깩"#, r#"깩"#),
+        (r#"깪"#, r#"깪"#, r#"깪"#, r#"깪"#, r#"깪"#),
+        (r#"깫"#, r#"깫"#, r#"깫"#, r#"깫"#, r#"깫"#),
+        (r#"깬"#, r#"깬"#, r#"깬"#, r#"깬"#, r#"깬"#),
+        (r#"깭"#, r#"깭"#, r#"깭"#, r#"깭"#, r#"깭"#),
+        (r#"깮"#, r#"깮"#, r#"깮"#, r#"깮"#, r#"깮"#),
+        (r#"깯"#, r#"깯"#, r#"깯"#, r#"깯"#, r#"깯"#),
+        (r#"깰"#, r#"깰"#, r#"깰"#, r#"깰"#, r#"깰"#),
+        (r#"깱"#, r#"깱"#, r#"깱"#, r#"깱"#, r#"깱"#),
+        (r#"깲"#, r#"깲"#, r#"깲"#, r#"깲"#, r#"깲"#),
+        (r#"깳"#, r#"깳"#, r#"깳"#, r#"깳"#, r#"깳"#),
+        (r#"깴"#, r#"깴"#, r#"깴"#, r#"깴"#, r#"깴"#),
+        (r#"깵"#, r#"깵"#, r#"깵"#, r#"깵"#, r#"깵"#),
+        (r#"깶"#, r#"깶"#, r#"깶"#, r#"깶"#, r#"깶"#),
+        (r#"깷"#, r#"깷"#, r#"깷"#, r#"깷"#, r#"깷"#),
+        (r#"깸"#, r#"깸"#, r#"깸"#, r#"깸"#, r#"깸"#),
+        (r#"깹"#, r#"깹"#, r#"깹"#, r#"깹"#, r#"깹"#),
+        (r#"깺"#, r#"깺"#, r#"깺"#, r#"깺"#, r#"깺"#),
+        (r#"깻"#, r#"깻"#, r#"깻"#, r#"깻"#, r#"깻"#),
+        (r#"깼"#, r#"깼"#, r#"깼"#, r#"깼"#, r#"깼"#),
+        (r#"깽"#, r#"깽"#, r#"깽"#, r#"깽"#, r#"깽"#),
+        (r#"깾"#, r#"깾"#, r#"깾"#, r#"깾"#, r#"깾"#),
+        (r#"깿"#, r#"깿"#, r#"깿"#, r#"깿"#, r#"깿"#),
+        (r#"꺀"#, r#"꺀"#, r#"꺀"#, r#"꺀"#, r#"꺀"#),
+        (r#"꺁"#, r#"꺁"#, r#"꺁"#, r#"꺁"#, r#"꺁"#),
+        (r#"꺂"#, r#"꺂"#, r#"꺂"#, r#"꺂"#, r#"꺂"#),
+        (r#"꺃"#, r#"꺃"#, r#"꺃"#, r#"꺃"#, r#"꺃"#),
+        (r#"꺄"#, r#"꺄"#, r#"꺄"#, r#"꺄"#, r#"꺄"#),
+        (r#"꺅"#, r#"꺅"#, r#"꺅"#, r#"꺅"#, r#"꺅"#),
+        (r#"꺆"#, r#"꺆"#, r#"꺆"#, r#"꺆"#, r#"꺆"#),
+        (r#"꺇"#, r#"꺇"#, r#"꺇"#, r#"꺇"#, r#"꺇"#),
+        (r#"꺈"#, r#"꺈"#, r#"꺈"#, r#"꺈"#, r#"꺈"#),
+        (r#"꺉"#, r#"꺉"#, r#"꺉"#, r#"꺉"#, r#"꺉"#),
+        (r#"꺊"#, r#"꺊"#, r#"꺊"#, r#"꺊"#, r#"꺊"#),
+        (r#"꺋"#, r#"꺋"#, r#"꺋"#, r#"꺋"#, r#"꺋"#),
+        (r#"꺌"#, r#"꺌"#, r#"꺌"#, r#"꺌"#, r#"꺌"#),
+        (r#"꺍"#, r#"꺍"#, r#"꺍"#, r#"꺍"#, r#"꺍"#),
+        (r#"꺎"#, r#"꺎"#, r#"꺎"#, r#"꺎"#, r#"꺎"#),
+        (r#"꺏"#, r#"꺏"#, r#"꺏"#, r#"꺏"#, r#"꺏"#),
+        (r#"꺐"#, r#"꺐"#, r#"꺐"#, r#"꺐"#, r#"꺐"#),
+        (r#"꺑"#, r#"꺑"#, r#"꺑"#, r#"꺑"#, r#"꺑"#),
+        (r#"꺒"#, r#"꺒"#, r#"꺒"#, r#"꺒"#, r#"꺒"#),
+        (r#"꺓"#, r#"꺓"#, r#"꺓"#, r#"꺓"#, r#"꺓"#),
+        (r#"꺔"#, r#"꺔"#, r#"꺔"#, r#"꺔"#, r#"꺔"#),
+        (r#"꺕"#, r#"꺕"#, r#"꺕"#, r#"꺕"#, r#"꺕"#),
+        (r#"꺖"#, r#"꺖"#, r#"꺖"#, r#"꺖"#, r#"꺖"#),
+        (r#"꺗"#, r#"꺗"#, r#"꺗"#, r#"꺗"#, r#"꺗"#),
+        (r#"꺘"#, r#"꺘"#, r#"꺘"#, r#"꺘"#, r#"꺘"#),
+        (r#"꺙"#, r#"꺙"#, r#"꺙"#, r#"꺙"#, r#"꺙"#),
+        (r#"꺚"#, r#"꺚"#, r#"꺚"#, r#"꺚"#, r#"꺚"#),
+        (r#"꺛"#, r#"꺛"#, r#"꺛"#, r#"꺛"#, r#"꺛"#),
+        (r#"꺜"#, r#"꺜"#, r#"꺜"#, r#"꺜"#, r#"꺜"#),
+        (r#"꺝"#, r#"꺝"#, r#"꺝"#, r#"꺝"#, r#"꺝"#),
+        (r#"꺞"#, r#"꺞"#, r#"꺞"#, r#"꺞"#, r#"꺞"#),
+        (r#"꺟"#, r#"꺟"#, r#"꺟"#, r#"꺟"#, r#"꺟"#),
+        (r#"꺠"#, r#"꺠"#, r#"꺠"#, r#"꺠"#, r#"꺠"#),
+        (r#"꺡"#, r#"꺡"#, r#"꺡"#, r#"꺡"#, r#"꺡"#),
+        (r#"꺢"#, r#"꺢"#, r#"꺢"#, r#"꺢"#, r#"꺢"#),
+        (r#"꺣"#, r#"꺣"#, r#"꺣"#, r#"꺣"#, r#"꺣"#),
+        (r#"꺤"#, r#"꺤"#, r#"꺤"#, r#"꺤"#, r#"꺤"#),
+        (r#"꺥"#, r#"꺥"#, r#"꺥"#, r#"꺥"#, r#"꺥"#),
+        (r#"꺦"#, r#"꺦"#, r#"꺦"#, r#"꺦"#, r#"꺦"#),
+        (r#"꺧"#, r#"꺧"#, r#"꺧"#, r#"꺧"#, r#"꺧"#),
+        (r#"꺨"#, r#"꺨"#, r#"꺨"#, r#"꺨"#, r#"꺨"#),
+        (r#"꺩"#, r#"꺩"#, r#"꺩"#, r#"꺩"#, r#"꺩"#),
+        (r#"꺪"#, r#"꺪"#, r#"꺪"#, r#"꺪"#, r#"꺪"#),
+        (r#"꺫"#, r#"꺫"#, r#"꺫"#, r#"꺫"#, r#"꺫"#),
+        (r#"꺬"#, r#"꺬"#, r#"꺬"#, r#"꺬"#, r#"꺬"#),
+        (r#"꺭"#, r#"꺭"#, r#"꺭"#, r#"꺭"#, r#"꺭"#),
+        (r#"꺮"#, r#"꺮"#, r#"꺮"#, r#"꺮"#, r#"꺮"#),
+        (r#"꺯"#, r#"꺯"#, r#"꺯"#, r#"꺯"#, r#"꺯"#),
+        (r#"꺰"#, r#"꺰"#, r#"꺰"#, r#"꺰"#, r#"꺰"#),
+        (r#"꺱"#, r#"꺱"#, r#"꺱"#, r#"꺱"#, r#"꺱"#),
+        (r#"꺲"#, r#"꺲"#, r#"꺲"#, r#"꺲"#, r#"꺲"#),
+        (r#"꺳"#, r#"꺳"#, r#"꺳"#, r#"꺳"#, r#"꺳"#),
+        (r#"꺴"#, r#"꺴"#, r#"꺴"#, r#"꺴"#, r#"꺴"#),
+        (r#"꺵"#, r#"꺵"#, r#"꺵"#, r#"꺵"#, r#"꺵"#),
+        (r#"꺶"#, r#"꺶"#, r#"꺶"#, r#"꺶"#, r#"꺶"#),
+        (r#"꺷"#, r#"꺷"#, r#"꺷"#, r#"꺷"#, r#"꺷"#),
+        (r#"꺸"#, r#"꺸"#, r#"꺸"#, r#"꺸"#, r#"꺸"#),
+        (r#"꺹"#, r#"꺹"#, r#"꺹"#, r#"꺹"#, r#"꺹"#),
+        (r#"꺺"#, r#"꺺"#, r#"꺺"#, r#"꺺"#, r#"꺺"#),
+        (r#"꺻"#, r#"꺻"#, r#"꺻"#, r#"꺻"#, r#"꺻"#),
+        (r#"꺼"#, r#"꺼"#, r#"꺼"#, r#"꺼"#, r#"꺼"#),
+        (r#"꺽"#, r#"꺽"#, r#"꺽"#, r#"꺽"#, r#"꺽"#),
+        (r#"꺾"#, r#"꺾"#, r#"꺾"#, r#"꺾"#, r#"꺾"#),
+        (r#"꺿"#, r#"꺿"#, r#"꺿"#, r#"꺿"#, r#"꺿"#),
+        (r#"껀"#, r#"껀"#, r#"껀"#, r#"껀"#, r#"껀"#),
+        (r#"껁"#, r#"껁"#, r#"껁"#, r#"껁"#, r#"껁"#),
+        (r#"껂"#, r#"껂"#, r#"껂"#, r#"껂"#, r#"껂"#),
+        (r#"껃"#, r#"껃"#, r#"껃"#, r#"껃"#, r#"껃"#),
+        (r#"껄"#, r#"껄"#, r#"껄"#, r#"껄"#, r#"껄"#),
+        (r#"껅"#, r#"껅"#, r#"껅"#, r#"껅"#, r#"껅"#),
+        (r#"껆"#, r#"껆"#, r#"껆"#, r#"껆"#, r#"껆"#),
+        (r#"껇"#, r#"껇"#, r#"껇"#, r#"껇"#, r#"껇"#),
+        (r#"껈"#, r#"껈"#, r#"껈"#, r#"껈"#, r#"껈"#),
+        (r#"껉"#, r#"껉"#, r#"껉"#, r#"껉"#, r#"껉"#),
+        (r#"껊"#, r#"껊"#, r#"껊"#, r#"껊"#, r#"껊"#),
+        (r#"껋"#, r#"껋"#, r#"껋"#, r#"껋"#, r#"껋"#),
+        (r#"껌"#, r#"껌"#, r#"껌"#, r#"껌"#, r#"껌"#),
+        (r#"껍"#, r#"껍"#, r#"껍"#, r#"껍"#, r#"껍"#),
+        (r#"껎"#, r#"껎"#, r#"껎"#, r#"껎"#, r#"껎"#),
+        (r#"껏"#, r#"껏"#, r#"껏"#, r#"껏"#, r#"껏"#),
+        (r#"껐"#, r#"껐"#, r#"껐"#, r#"껐"#, r#"껐"#),
+        (r#"껑"#, r#"껑"#, r#"껑"#, r#"껑"#, r#"껑"#),
+        (r#"껒"#, r#"껒"#, r#"껒"#, r#"껒"#, r#"껒"#),
+        (r#"껓"#, r#"껓"#, r#"껓"#, r#"껓"#, r#"껓"#),
+        (r#"껔"#, r#"껔"#, r#"껔"#, r#"껔"#, r#"껔"#),
+        (r#"껕"#, r#"껕"#, r#"껕"#, r#"껕"#, r#"껕"#),
+        (r#"껖"#, r#"껖"#, r#"껖"#, r#"껖"#, r#"껖"#),
+        (r#"껗"#, r#"껗"#, r#"껗"#, r#"껗"#, r#"껗"#),
+        (r#"께"#, r#"께"#, r#"께"#, r#"께"#, r#"께"#),
+        (r#"껙"#, r#"껙"#, r#"껙"#, r#"껙"#, r#"껙"#),
+        (r#"껚"#, r#"껚"#, r#"껚"#, r#"껚"#, r#"껚"#),
+        (r#"껛"#, r#"껛"#, r#"껛"#, r#"껛"#, r#"껛"#),
+        (r#"껜"#, r#"껜"#, r#"껜"#, r#"껜"#, r#"껜"#),
+        (r#"껝"#, r#"껝"#, r#"껝"#, r#"껝"#, r#"껝"#),
+        (r#"껞"#, r#"껞"#, r#"껞"#, r#"껞"#, r#"껞"#),
+        (r#"껟"#, r#"껟"#, r#"껟"#, r#"껟"#, r#"껟"#),
+        (r#"껠"#, r#"껠"#, r#"껠"#, r#"껠"#, r#"껠"#),
+        (r#"껡"#, r#"껡"#, r#"껡"#, r#"껡"#, r#"껡"#),
+        (r#"껢"#, r#"껢"#, r#"껢"#, r#"껢"#, r#"껢"#),
+        (r#"껣"#, r#"껣"#, r#"껣"#, r#"껣"#, r#"껣"#),
+        (r#"껤"#, r#"껤"#, r#"껤"#, r#"껤"#, r#"껤"#),
+        (r#"껥"#, r#"껥"#, r#"껥"#, r#"껥"#, r#"껥"#),
+        (r#"껦"#, r#"껦"#, r#"껦"#, r#"껦"#, r#"껦"#),
+        (r#"껧"#, r#"껧"#, r#"껧"#, r#"껧"#, r#"껧"#),
+        (r#"껨"#, r#"껨"#, r#"껨"#, r#"껨"#, r#"껨"#),
+        (r#"껩"#, r#"껩"#, r#"껩"#, r#"껩"#, r#"껩"#),
+        (r#"껪"#, r#"껪"#, r#"껪"#, r#"껪"#, r#"껪"#),
+        (r#"껫"#, r#"껫"#, r#"껫"#, r#"껫"#, r#"껫"#),
+        (r#"껬"#, r#"껬"#, r#"껬"#, r#"껬"#, r#"껬"#),
+        (r#"껭"#, r#"껭"#, r#"껭"#, r#"껭"#, r#"껭"#),
+        (r#"껮"#, r#"껮"#, r#"껮"#, r#"껮"#, r#"껮"#),
+        (r#"껯"#, r#"껯"#, r#"껯"#, r#"껯"#, r#"껯"#),
+        (r#"껰"#, r#"껰"#, r#"껰"#, r#"껰"#, r#"껰"#),
+        (r#"껱"#, r#"껱"#, r#"껱"#, r#"껱"#, r#"껱"#),
+        (r#"껲"#, r#"껲"#, r#"껲"#, r#"껲"#, r#"껲"#),
+        (r#"껳"#, r#"껳"#, r#"껳"#, r#"껳"#, r#"껳"#),
+        (r#"껴"#, r#"껴"#, r#"껴"#, r#"껴"#, r#"껴"#),
+        (r#"껵"#, r#"껵"#, r#"껵"#, r#"껵"#, r#"껵"#),
+        (r#"껶"#, r#"껶"#, r#"껶"#, r#"껶"#, r#"껶"#),
+        (r#"껷"#, r#"껷"#, r#"껷"#, r#"껷"#, r#"껷"#),
+        (r#"껸"#, r#"껸"#, r#"껸"#, r#"껸"#, r#"껸"#),
+        (r#"껹"#, r#"껹"#, r#"껹"#, r#"껹"#, r#"껹"#),
+        (r#"껺"#, r#"껺"#, r#"껺"#, r#"껺"#, r#"껺"#),
+        (r#"껻"#, r#"껻"#, r#"껻"#, r#"껻"#, r#"껻"#),
+        (r#"껼"#, r#"껼"#, r#"껼"#, r#"껼"#, r#"껼"#),
+        (r#"껽"#, r#"껽"#, r#"껽"#, r#"껽"#, r#"껽"#),
+        (r#"껾"#, r#"껾"#, r#"껾"#, r#"껾"#, r#"껾"#),
+        (r#"껿"#, r#"껿"#, r#"껿"#, r#"껿"#, r#"껿"#),
+        (r#"꼀"#, r#"꼀"#, r#"꼀"#, r#"꼀"#, r#"꼀"#),
+        (r#"꼁"#, r#"꼁"#, r#"꼁"#, r#"꼁"#, r#"꼁"#),
+        (r#"꼂"#, r#"꼂"#, r#"꼂"#, r#"꼂"#, r#"꼂"#),
+        (r#"꼃"#, r#"꼃"#, r#"꼃"#, r#"꼃"#, r#"꼃"#),
+        (r#"꼄"#, r#"꼄"#, r#"꼄"#, r#"꼄"#, r#"꼄"#),
+        (r#"꼅"#, r#"꼅"#, r#"꼅"#, r#"꼅"#, r#"꼅"#),
+        (r#"꼆"#, r#"꼆"#, r#"꼆"#, r#"꼆"#, r#"꼆"#),
+        (r#"꼇"#, r#"꼇"#, r#"꼇"#, r#"꼇"#, r#"꼇"#),
+        (r#"꼈"#, r#"꼈"#, r#"꼈"#, r#"꼈"#, r#"꼈"#),
+        (r#"꼉"#, r#"꼉"#, r#"꼉"#, r#"꼉"#, r#"꼉"#),
+        (r#"꼊"#, r#"꼊"#, r#"꼊"#, r#"꼊"#, r#"꼊"#),
+        (r#"꼋"#, r#"꼋"#, r#"꼋"#, r#"꼋"#, r#"꼋"#),
+        (r#"꼌"#, r#"꼌"#, r#"꼌"#, r#"꼌"#, r#"꼌"#),
+        (r#"꼍"#, r#"꼍"#, r#"꼍"#, r#"꼍"#, r#"꼍"#),
+        (r#"꼎"#, r#"꼎"#, r#"꼎"#, r#"꼎"#, r#"꼎"#),
+        (r#"꼏"#, r#"꼏"#, r#"꼏"#, r#"꼏"#, r#"꼏"#),
+        (r#"꼐"#, r#"꼐"#, r#"꼐"#, r#"꼐"#, r#"꼐"#),
+        (r#"꼑"#, r#"꼑"#, r#"꼑"#, r#"꼑"#, r#"꼑"#),
+        (r#"꼒"#, r#"꼒"#, r#"꼒"#, r#"꼒"#, r#"꼒"#),
+        (r#"꼓"#, r#"꼓"#, r#"꼓"#, r#"꼓"#, r#"꼓"#),
+        (r#"꼔"#, r#"꼔"#, r#"꼔"#, r#"꼔"#, r#"꼔"#),
+        (r#"꼕"#, r#"꼕"#, r#"꼕"#, r#"꼕"#, r#"꼕"#),
+        (r#"꼖"#, r#"꼖"#, r#"꼖"#, r#"꼖"#, r#"꼖"#),
+        (r#"꼗"#, r#"꼗"#, r#"꼗"#, r#"꼗"#, r#"꼗"#),
+        (r#"꼘"#, r#"꼘"#, r#"꼘"#, r#"꼘"#, r#"꼘"#),
+        (r#"꼙"#, r#"꼙"#, r#"꼙"#, r#"꼙"#, r#"꼙"#),
+        (r#"꼚"#, r#"꼚"#, r#"꼚"#, r#"꼚"#, r#"꼚"#),
+        (r#"꼛"#, r#"꼛"#, r#"꼛"#, r#"꼛"#, r#"꼛"#),
+        (r#"꼜"#, r#"꼜"#, r#"꼜"#, r#"꼜"#, r#"꼜"#),
+        (r#"꼝"#, r#"꼝"#, r#"꼝"#, r#"꼝"#, r#"꼝"#),
+        (r#"꼞"#, r#"꼞"#, r#"꼞"#, r#"꼞"#, r#"꼞"#),
+        (r#"꼟"#, r#"꼟"#, r#"꼟"#, r#"꼟"#, r#"꼟"#),
+        (r#"꼠"#, r#"꼠"#, r#"꼠"#, r#"꼠"#, r#"꼠"#),
+        (r#"꼡"#, r#"꼡"#, r#"꼡"#, r#"꼡"#, r#"꼡"#),
+        (r#"꼢"#, r#"꼢"#, r#"꼢"#, r#"꼢"#, r#"꼢"#),
+        (r#"꼣"#, r#"꼣"#, r#"꼣"#, r#"꼣"#, r#"꼣"#),
+        (r#"꼤"#, r#"꼤"#, r#"꼤"#, r#"꼤"#, r#"꼤"#),
+        (r#"꼥"#, r#"꼥"#, r#"꼥"#, r#"꼥"#, r#"꼥"#),
+        (r#"꼦"#, r#"꼦"#, r#"꼦"#, r#"꼦"#, r#"꼦"#),
+        (r#"꼧"#, r#"꼧"#, r#"꼧"#, r#"꼧"#, r#"꼧"#),
+        (r#"꼨"#, r#"꼨"#, r#"꼨"#, r#"꼨"#, r#"꼨"#),
+        (r#"꼩"#, r#"꼩"#, r#"꼩"#, r#"꼩"#, r#"꼩"#),
+        (r#"꼪"#, r#"꼪"#, r#"꼪"#, r#"꼪"#, r#"꼪"#),
+        (r#"꼫"#, r#"꼫"#, r#"꼫"#, r#"꼫"#, r#"꼫"#),
+        (r#"꼬"#, r#"꼬"#, r#"꼬"#, r#"꼬"#, r#"꼬"#),
+        (r#"꼭"#, r#"꼭"#, r#"꼭"#, r#"꼭"#, r#"꼭"#),
+        (r#"꼮"#, r#"꼮"#, r#"꼮"#, r#"꼮"#, r#"꼮"#),
+        (r#"꼯"#, r#"꼯"#, r#"꼯"#, r#"꼯"#, r#"꼯"#),
+        (r#"꼰"#, r#"꼰"#, r#"꼰"#, r#"꼰"#, r#"꼰"#),
+        (r#"꼱"#, r#"꼱"#, r#"꼱"#, r#"꼱"#, r#"꼱"#),
+        (r#"꼲"#, r#"꼲"#, r#"꼲"#, r#"꼲"#, r#"꼲"#),
+        (r#"꼳"#, r#"꼳"#, r#"꼳"#, r#"꼳"#, r#"꼳"#),
+        (r#"꼴"#, r#"꼴"#, r#"꼴"#, r#"꼴"#, r#"꼴"#),
+        (r#"꼵"#, r#"꼵"#, r#"꼵"#, r#"꼵"#, r#"꼵"#),
+        (r#"꼶"#, r#"꼶"#, r#"꼶"#, r#"꼶"#, r#"꼶"#),
+        (r#"꼷"#, r#"꼷"#, r#"꼷"#, r#"꼷"#, r#"꼷"#),
+        (r#"꼸"#, r#"꼸"#, r#"꼸"#, r#"꼸"#, r#"꼸"#),
+        (r#"꼹"#, r#"꼹"#, r#"꼹"#, r#"꼹"#, r#"꼹"#),
+        (r#"꼺"#, r#"꼺"#, r#"꼺"#, r#"꼺"#, r#"꼺"#),
+        (r#"꼻"#, r#"꼻"#, r#"꼻"#, r#"꼻"#, r#"꼻"#),
+        (r#"꼼"#, r#"꼼"#, r#"꼼"#, r#"꼼"#, r#"꼼"#),
+        (r#"꼽"#, r#"꼽"#, r#"꼽"#, r#"꼽"#, r#"꼽"#),
+        (r#"꼾"#, r#"꼾"#, r#"꼾"#, r#"꼾"#, r#"꼾"#),
+        (r#"꼿"#, r#"꼿"#, r#"꼿"#, r#"꼿"#, r#"꼿"#),
+        (r#"꽀"#, r#"꽀"#, r#"꽀"#, r#"꽀"#, r#"꽀"#),
+        (r#"꽁"#, r#"꽁"#, r#"꽁"#, r#"꽁"#, r#"꽁"#),
+        (r#"꽂"#, r#"꽂"#, r#"꽂"#, r#"꽂"#, r#"꽂"#),
+        (r#"꽃"#, r#"꽃"#, r#"꽃"#, r#"꽃"#, r#"꽃"#),
+        (r#"꽄"#, r#"꽄"#, r#"꽄"#, r#"꽄"#, r#"꽄"#),
+        (r#"꽅"#, r#"꽅"#, r#"꽅"#, r#"꽅"#, r#"꽅"#),
+        (r#"꽆"#, r#"꽆"#, r#"꽆"#, r#"꽆"#, r#"꽆"#),
+        (r#"꽇"#, r#"꽇"#, r#"꽇"#, r#"꽇"#, r#"꽇"#),
+        (r#"꽈"#, r#"꽈"#, r#"꽈"#, r#"꽈"#, r#"꽈"#),
+        (r#"꽉"#, r#"꽉"#, r#"꽉"#, r#"꽉"#, r#"꽉"#),
+        (r#"꽊"#, r#"꽊"#, r#"꽊"#, r#"꽊"#, r#"꽊"#),
+        (r#"꽋"#, r#"꽋"#, r#"꽋"#, r#"꽋"#, r#"꽋"#),
+        (r#"꽌"#, r#"꽌"#, r#"꽌"#, r#"꽌"#, r#"꽌"#),
+        (r#"꽍"#, r#"꽍"#, r#"꽍"#, r#"꽍"#, r#"꽍"#),
+        (r#"꽎"#, r#"꽎"#, r#"꽎"#, r#"꽎"#, r#"꽎"#),
+        (r#"꽏"#, r#"꽏"#, r#"꽏"#, r#"꽏"#, r#"꽏"#),
+        (r#"꽐"#, r#"꽐"#, r#"꽐"#, r#"꽐"#, r#"꽐"#),
+        (r#"꽑"#, r#"꽑"#, r#"꽑"#, r#"꽑"#, r#"꽑"#),
+        (r#"꽒"#, r#"꽒"#, r#"꽒"#, r#"꽒"#, r#"꽒"#),
+        (r#"꽓"#, r#"꽓"#, r#"꽓"#, r#"꽓"#, r#"꽓"#),
+        (r#"꽔"#, r#"꽔"#, r#"꽔"#, r#"꽔"#, r#"꽔"#),
+        (r#"꽕"#, r#"꽕"#, r#"꽕"#, r#"꽕"#, r#"꽕"#),
+        (r#"꽖"#, r#"꽖"#, r#"꽖"#, r#"꽖"#, r#"꽖"#),
+        (r#"꽗"#, r#"꽗"#, r#"꽗"#, r#"꽗"#, r#"꽗"#),
+        (r#"꽘"#, r#"꽘"#, r#"꽘"#, r#"꽘"#, r#"꽘"#),
+        (r#"꽙"#, r#"꽙"#, r#"꽙"#, r#"꽙"#, r#"꽙"#),
+        (r#"꽚"#, r#"꽚"#, r#"꽚"#, r#"꽚"#, r#"꽚"#),
+        (r#"꽛"#, r#"꽛"#, r#"꽛"#, r#"꽛"#, r#"꽛"#),
+        (r#"꽜"#, r#"꽜"#, r#"꽜"#, r#"꽜"#, r#"꽜"#),
+        (r#"꽝"#, r#"꽝"#, r#"꽝"#, r#"꽝"#, r#"꽝"#),
+        (r#"꽞"#, r#"꽞"#, r#"꽞"#, r#"꽞"#, r#"꽞"#),
+        (r#"꽟"#, r#"꽟"#, r#"꽟"#, r#"꽟"#, r#"꽟"#),
+        (r#"꽠"#, r#"꽠"#, r#"꽠"#, r#"꽠"#, r#"꽠"#),
+        (r#"꽡"#, r#"꽡"#, r#"꽡"#, r#"꽡"#, r#"꽡"#),
+        (r#"꽢"#, r#"꽢"#, r#"꽢"#, r#"꽢"#, r#"꽢"#),
+        (r#"꽣"#, r#"꽣"#, r#"꽣"#, r#"꽣"#, r#"꽣"#),
+        (r#"꽤"#, r#"꽤"#, r#"꽤"#, r#"꽤"#, r#"꽤"#),
+        (r#"꽥"#, r#"꽥"#, r#"꽥"#, r#"꽥"#, r#"꽥"#),
+        (r#"꽦"#, r#"꽦"#, r#"꽦"#, r#"꽦"#, r#"꽦"#),
+        (r#"꽧"#, r#"꽧"#, r#"꽧"#, r#"꽧"#, r#"꽧"#),
+        (r#"꽨"#, r#"꽨"#, r#"꽨"#, r#"꽨"#, r#"꽨"#),
+        (r#"꽩"#, r#"꽩"#, r#"꽩"#, r#"꽩"#, r#"꽩"#),
+        (r#"꽪"#, r#"꽪"#, r#"꽪"#, r#"꽪"#, r#"꽪"#),
+        (r#"꽫"#, r#"꽫"#, r#"꽫"#, r#"꽫"#, r#"꽫"#),
+        (r#"꽬"#, r#"꽬"#, r#"꽬"#, r#"꽬"#, r#"꽬"#),
+        (r#"꽭"#, r#"꽭"#, r#"꽭"#, r#"꽭"#, r#"꽭"#),
+        (r#"꽮"#, r#"꽮"#, r#"꽮"#, r#"꽮"#, r#"꽮"#),
+        (r#"꽯"#, r#"꽯"#, r#"꽯"#, r#"꽯"#, r#"꽯"#),
+        (r#"꽰"#, r#"꽰"#, r#"꽰"#, r#"꽰"#, r#"꽰"#),
+        (r#"꽱"#, r#"꽱"#, r#"꽱"#, r#"꽱"#, r#"꽱"#),
+        (r#"꽲"#, r#"꽲"#, r#"꽲"#, r#"꽲"#, r#"꽲"#),
+        (r#"꽳"#, r#"꽳"#, r#"꽳"#, r#"꽳"#, r#"꽳"#),
+        (r#"꽴"#, r#"꽴"#, r#"꽴"#, r#"꽴"#, r#"꽴"#),
+        (r#"꽵"#, r#"꽵"#, r#"꽵"#, r#"꽵"#, r#"꽵"#),
+        (r#"꽶"#, r#"꽶"#, r#"꽶"#, r#"꽶"#, r#"꽶"#),
+        (r#"꽷"#, r#"꽷"#, r#"꽷"#, r#"꽷"#, r#"꽷"#),
+        (r#"꽸"#, r#"꽸"#, r#"꽸"#, r#"꽸"#, r#"꽸"#),
+        (r#"꽹"#, r#"꽹"#, r#"꽹"#, r#"꽹"#, r#"꽹"#),
+        (r#"꽺"#, r#"꽺"#, r#"꽺"#, r#"꽺"#, r#"꽺"#),
+        (r#"꽻"#, r#"꽻"#, r#"꽻"#, r#"꽻"#, r#"꽻"#),
+        (r#"꽼"#, r#"꽼"#, r#"꽼"#, r#"꽼"#, r#"꽼"#),
+        (r#"꽽"#, r#"꽽"#, r#"꽽"#, r#"꽽"#, r#"꽽"#),
+        (r#"꽾"#, r#"꽾"#, r#"꽾"#, r#"꽾"#, r#"꽾"#),
+        (r#"꽿"#, r#"꽿"#, r#"꽿"#, r#"꽿"#, r#"꽿"#),
+        (r#"꾀"#, r#"꾀"#, r#"꾀"#, r#"꾀"#, r#"꾀"#),
+        (r#"꾁"#, r#"꾁"#, r#"꾁"#, r#"꾁"#, r#"꾁"#),
+        (r#"꾂"#, r#"꾂"#, r#"꾂"#, r#"꾂"#, r#"꾂"#),
+        (r#"꾃"#, r#"꾃"#, r#"꾃"#, r#"꾃"#, r#"꾃"#),
+        (r#"꾄"#, r#"꾄"#, r#"꾄"#, r#"꾄"#, r#"꾄"#),
+        (r#"꾅"#, r#"꾅"#, r#"꾅"#, r#"꾅"#, r#"꾅"#),
+        (r#"꾆"#, r#"꾆"#, r#"꾆"#, r#"꾆"#, r#"꾆"#),
+        (r#"꾇"#, r#"꾇"#, r#"꾇"#, r#"꾇"#, r#"꾇"#),
+        (r#"꾈"#, r#"꾈"#, r#"꾈"#, r#"꾈"#, r#"꾈"#),
+        (r#"꾉"#, r#"꾉"#, r#"꾉"#, r#"꾉"#, r#"꾉"#),
+        (r#"꾊"#, r#"꾊"#, r#"꾊"#, r#"꾊"#, r#"꾊"#),
+        (r#"꾋"#, r#"꾋"#, r#"꾋"#, r#"꾋"#, r#"꾋"#),
+        (r#"꾌"#, r#"꾌"#, r#"꾌"#, r#"꾌"#, r#"꾌"#),
+        (r#"꾍"#, r#"꾍"#, r#"꾍"#, r#"꾍"#, r#"꾍"#),
+        (r#"꾎"#, r#"꾎"#, r#"꾎"#, r#"꾎"#, r#"꾎"#),
+        (r#"꾏"#, r#"꾏"#, r#"꾏"#, r#"꾏"#, r#"꾏"#),
+        (r#"꾐"#, r#"꾐"#, r#"꾐"#, r#"꾐"#, r#"꾐"#),
+        (r#"꾑"#, r#"꾑"#, r#"꾑"#, r#"꾑"#, r#"꾑"#),
+        (r#"꾒"#, r#"꾒"#, r#"꾒"#, r#"꾒"#, r#"꾒"#),
+        (r#"꾓"#, r#"꾓"#, r#"꾓"#, r#"꾓"#, r#"꾓"#),
+        (r#"꾔"#, r#"꾔"#, r#"꾔"#, r#"꾔"#, r#"꾔"#),
+        (r#"꾕"#, r#"꾕"#, r#"꾕"#, r#"꾕"#, r#"꾕"#),
+        (r#"꾖"#, r#"꾖"#, r#"꾖"#, r#"꾖"#, r#"꾖"#),
+        (r#"꾗"#, r#"꾗"#, r#"꾗"#, r#"꾗"#, r#"꾗"#),
+        (r#"꾘"#, r#"꾘"#, r#"꾘"#, r#"꾘"#, r#"꾘"#),
+        (r#"꾙"#, r#"꾙"#, r#"꾙"#, r#"꾙"#, r#"꾙"#),
+        (r#"꾚"#, r#"꾚"#, r#"꾚"#, r#"꾚"#, r#"꾚"#),
+        (r#"꾛"#, r#"꾛"#, r#"꾛"#, r#"꾛"#, r#"꾛"#),
+        (r#"꾜"#, r#"꾜"#, r#"꾜"#, r#"꾜"#, r#"꾜"#),
+        (r#"꾝"#, r#"꾝"#, r#"꾝"#, r#"꾝"#, r#"꾝"#),
+        (r#"꾞"#, r#"꾞"#, r#"꾞"#, r#"꾞"#, r#"꾞"#),
+        (r#"꾟"#, r#"꾟"#, r#"꾟"#, r#"꾟"#, r#"꾟"#),
+        (r#"꾠"#, r#"꾠"#, r#"꾠"#, r#"꾠"#, r#"꾠"#),
+        (r#"꾡"#, r#"꾡"#, r#"꾡"#, r#"꾡"#, r#"꾡"#),
+        (r#"꾢"#, r#"꾢"#, r#"꾢"#, r#"꾢"#, r#"꾢"#),
+        (r#"꾣"#, r#"꾣"#, r#"꾣"#, r#"꾣"#, r#"꾣"#),
+        (r#"꾤"#, r#"꾤"#, r#"꾤"#, r#"꾤"#, r#"꾤"#),
+        (r#"꾥"#, r#"꾥"#, r#"꾥"#, r#"꾥"#, r#"꾥"#),
+        (r#"꾦"#, r#"꾦"#, r#"꾦"#, r#"꾦"#, r#"꾦"#),
+        (r#"꾧"#, r#"꾧"#, r#"꾧"#, r#"꾧"#, r#"꾧"#),
+        (r#"꾨"#, r#"꾨"#, r#"꾨"#, r#"꾨"#, r#"꾨"#),
+        (r#"꾩"#, r#"꾩"#, r#"꾩"#, r#"꾩"#, r#"꾩"#),
+        (r#"꾪"#, r#"꾪"#, r#"꾪"#, r#"꾪"#, r#"꾪"#),
+        (r#"꾫"#, r#"꾫"#, r#"꾫"#, r#"꾫"#, r#"꾫"#),
+        (r#"꾬"#, r#"꾬"#, r#"꾬"#, r#"꾬"#, r#"꾬"#),
+        (r#"꾭"#, r#"꾭"#, r#"꾭"#, r#"꾭"#, r#"꾭"#),
+        (r#"꾮"#, r#"꾮"#, r#"꾮"#, r#"꾮"#, r#"꾮"#),
+        (r#"꾯"#, r#"꾯"#, r#"꾯"#, r#"꾯"#, r#"꾯"#),
+        (r#"꾰"#, r#"꾰"#, r#"꾰"#, r#"꾰"#, r#"꾰"#),
+        (r#"꾱"#, r#"꾱"#, r#"꾱"#, r#"꾱"#, r#"꾱"#),
+        (r#"꾲"#, r#"꾲"#, r#"꾲"#, r#"꾲"#, r#"꾲"#),
+        (r#"꾳"#, r#"꾳"#, r#"꾳"#, r#"꾳"#, r#"꾳"#),
+        (r#"꾴"#, r#"꾴"#, r#"꾴"#, r#"꾴"#, r#"꾴"#),
+        (r#"꾵"#, r#"꾵"#, r#"꾵"#, r#"꾵"#, r#"꾵"#),
+        (r#"꾶"#, r#"꾶"#, r#"꾶"#, r#"꾶"#, r#"꾶"#),
+        (r#"꾷"#, r#"꾷"#, r#"꾷"#, r#"꾷"#, r#"꾷"#),
+        (r#"꾸"#, r#"꾸"#, r#"꾸"#, r#"꾸"#, r#"꾸"#),
+        (r#"꾹"#, r#"꾹"#, r#"꾹"#, r#"꾹"#, r#"꾹"#),
+        (r#"꾺"#, r#"꾺"#, r#"꾺"#, r#"꾺"#, r#"꾺"#),
+        (r#"꾻"#, r#"꾻"#, r#"꾻"#, r#"꾻"#, r#"꾻"#),
+        (r#"꾼"#, r#"꾼"#, r#"꾼"#, r#"꾼"#, r#"꾼"#),
+        (r#"꾽"#, r#"꾽"#, r#"꾽"#, r#"꾽"#, r#"꾽"#),
+        (r#"꾾"#, r#"꾾"#, r#"꾾"#, r#"꾾"#, r#"꾾"#),
+        (r#"꾿"#, r#"꾿"#, r#"꾿"#, r#"꾿"#, r#"꾿"#),
+        (r#"꿀"#, r#"꿀"#, r#"꿀"#, r#"꿀"#, r#"꿀"#),
+        (r#"꿁"#, r#"꿁"#, r#"꿁"#, r#"꿁"#, r#"꿁"#),
+        (r#"꿂"#, r#"꿂"#, r#"꿂"#, r#"꿂"#, r#"꿂"#),
+        (r#"꿃"#, r#"꿃"#, r#"꿃"#, r#"꿃"#, r#"꿃"#),
+        (r#"꿄"#, r#"꿄"#, r#"꿄"#, r#"꿄"#, r#"꿄"#),
+        (r#"꿅"#, r#"꿅"#, r#"꿅"#, r#"꿅"#, r#"꿅"#),
+        (r#"꿆"#, r#"꿆"#, r#"꿆"#, r#"꿆"#, r#"꿆"#),
+        (r#"꿇"#, r#"꿇"#, r#"꿇"#, r#"꿇"#, r#"꿇"#),
+        (r#"꿈"#, r#"꿈"#, r#"꿈"#, r#"꿈"#, r#"꿈"#),
+        (r#"꿉"#, r#"꿉"#, r#"꿉"#, r#"꿉"#, r#"꿉"#),
+        (r#"꿊"#, r#"꿊"#, r#"꿊"#, r#"꿊"#, r#"꿊"#),
+        (r#"꿋"#, r#"꿋"#, r#"꿋"#, r#"꿋"#, r#"꿋"#),
+        (r#"꿌"#, r#"꿌"#, r#"꿌"#, r#"꿌"#, r#"꿌"#),
+        (r#"꿍"#, r#"꿍"#, r#"꿍"#, r#"꿍"#, r#"꿍"#),
+        (r#"꿎"#, r#"꿎"#, r#"꿎"#, r#"꿎"#, r#"꿎"#),
+        (r#"꿏"#, r#"꿏"#, r#"꿏"#, r#"꿏"#, r#"꿏"#),
+        (r#"꿐"#, r#"꿐"#, r#"꿐"#, r#"꿐"#, r#"꿐"#),
+        (r#"꿑"#, r#"꿑"#, r#"꿑"#, r#"꿑"#, r#"꿑"#),
+        (r#"꿒"#, r#"꿒"#, r#"꿒"#, r#"꿒"#, r#"꿒"#),
+        (r#"꿓"#, r#"꿓"#, r#"꿓"#, r#"꿓"#, r#"꿓"#),
+        (r#"꿔"#, r#"꿔"#, r#"꿔"#, r#"꿔"#, r#"꿔"#),
+        (r#"꿕"#, r#"꿕"#, r#"꿕"#, r#"꿕"#, r#"꿕"#),
+        (r#"꿖"#, r#"꿖"#, r#"꿖"#, r#"꿖"#, r#"꿖"#),
+        (r#"꿗"#, r#"꿗"#, r#"꿗"#, r#"꿗"#, r#"꿗"#),
+        (r#"꿘"#, r#"꿘"#, r#"꿘"#, r#"꿘"#, r#"꿘"#),
+        (r#"꿙"#, r#"꿙"#, r#"꿙"#, r#"꿙"#, r#"꿙"#),
+        (r#"꿚"#, r#"꿚"#, r#"꿚"#, r#"꿚"#, r#"꿚"#),
+        (r#"꿛"#, r#"꿛"#, r#"꿛"#, r#"꿛"#, r#"꿛"#),
+        (r#"꿜"#, r#"꿜"#, r#"꿜"#, r#"꿜"#, r#"꿜"#),
+        (r#"꿝"#, r#"꿝"#, r#"꿝"#, r#"꿝"#, r#"꿝"#),
+        (r#"꿞"#, r#"꿞"#, r#"꿞"#, r#"꿞"#, r#"꿞"#),
+        (r#"꿟"#, r#"꿟"#, r#"꿟"#, r#"꿟"#, r#"꿟"#),
+        (r#"꿠"#, r#"꿠"#, r#"꿠"#, r#"꿠"#, r#"꿠"#),
+        (r#"꿡"#, r#"꿡"#, r#"꿡"#, r#"꿡"#, r#"꿡"#),
+        (r#"꿢"#, r#"꿢"#, r#"꿢"#, r#"꿢"#, r#"꿢"#),
+        (r#"꿣"#, r#"꿣"#, r#"꿣"#, r#"꿣"#, r#"꿣"#),
+        (r#"꿤"#, r#"꿤"#, r#"꿤"#, r#"꿤"#, r#"꿤"#),
+        (r#"꿥"#, r#"꿥"#, r#"꿥"#, r#"꿥"#, r#"꿥"#),
+        (r#"꿦"#, r#"꿦"#, r#"꿦"#, r#"꿦"#, r#"꿦"#),
+        (r#"꿧"#, r#"꿧"#, r#"꿧"#, r#"꿧"#, r#"꿧"#),
+        (r#"꿨"#, r#"꿨"#, r#"꿨"#, r#"꿨"#, r#"꿨"#),
+        (r#"꿩"#, r#"꿩"#, r#"꿩"#, r#"꿩"#, r#"꿩"#),
+        (r#"꿪"#, r#"꿪"#, r#"꿪"#, r#"꿪"#, r#"꿪"#),
+        (r#"꿫"#, r#"꿫"#, r#"꿫"#, r#"꿫"#, r#"꿫"#),
+        (r#"꿬"#, r#"꿬"#, r#"꿬"#, r#"꿬"#, r#"꿬"#),
+        (r#"꿭"#, r#"꿭"#, r#"꿭"#, r#"꿭"#, r#"꿭"#),
+        (r#"꿮"#, r#"꿮"#, r#"꿮"#, r#"꿮"#, r#"꿮"#),
+        (r#"꿯"#, r#"꿯"#, r#"꿯"#, r#"꿯"#, r#"꿯"#),
+        (r#"꿰"#, r#"꿰"#, r#"꿰"#, r#"꿰"#, r#"꿰"#),
+        (r#"꿱"#, r#"꿱"#, r#"꿱"#, r#"꿱"#, r#"꿱"#),
+        (r#"꿲"#, r#"꿲"#, r#"꿲"#, r#"꿲"#, r#"꿲"#),
+        (r#"꿳"#, r#"꿳"#, r#"꿳"#, r#"꿳"#, r#"꿳"#),
+        (r#"꿴"#, r#"꿴"#, r#"꿴"#, r#"꿴"#, r#"꿴"#),
+        (r#"꿵"#, r#"꿵"#, r#"꿵"#, r#"꿵"#, r#"꿵"#),
+        (r#"꿶"#, r#"꿶"#, r#"꿶"#, r#"꿶"#, r#"꿶"#),
+        (r#"꿷"#, r#"꿷"#, r#"꿷"#, r#"꿷"#, r#"꿷"#),
+        (r#"꿸"#, r#"꿸"#, r#"꿸"#, r#"꿸"#, r#"꿸"#),
+        (r#"꿹"#, r#"꿹"#, r#"꿹"#, r#"꿹"#, r#"꿹"#),
+        (r#"꿺"#, r#"꿺"#, r#"꿺"#, r#"꿺"#, r#"꿺"#),
+        (r#"꿻"#, r#"꿻"#, r#"꿻"#, r#"꿻"#, r#"꿻"#),
+        (r#"꿼"#, r#"꿼"#, r#"꿼"#, r#"꿼"#, r#"꿼"#),
+        (r#"꿽"#, r#"꿽"#, r#"꿽"#, r#"꿽"#, r#"꿽"#),
+        (r#"꿾"#, r#"꿾"#, r#"꿾"#, r#"꿾"#, r#"꿾"#),
+        (r#"꿿"#, r#"꿿"#, r#"꿿"#, r#"꿿"#, r#"꿿"#),
+        (r#"뀀"#, r#"뀀"#, r#"뀀"#, r#"뀀"#, r#"뀀"#),
+        (r#"뀁"#, r#"뀁"#, r#"뀁"#, r#"뀁"#, r#"뀁"#),
+        (r#"뀂"#, r#"뀂"#, r#"뀂"#, r#"뀂"#, r#"뀂"#),
+        (r#"뀃"#, r#"뀃"#, r#"뀃"#, r#"뀃"#, r#"뀃"#),
+        (r#"뀄"#, r#"뀄"#, r#"뀄"#, r#"뀄"#, r#"뀄"#),
+        (r#"뀅"#, r#"뀅"#, r#"뀅"#, r#"뀅"#, r#"뀅"#),
+        (r#"뀆"#, r#"뀆"#, r#"뀆"#, r#"뀆"#, r#"뀆"#),
+        (r#"뀇"#, r#"뀇"#, r#"뀇"#, r#"뀇"#, r#"뀇"#),
+        (r#"뀈"#, r#"뀈"#, r#"뀈"#, r#"뀈"#, r#"뀈"#),
+        (r#"뀉"#, r#"뀉"#, r#"뀉"#, r#"뀉"#, r#"뀉"#),
+        (r#"뀊"#, r#"뀊"#, r#"뀊"#, r#"뀊"#, r#"뀊"#),
+        (r#"뀋"#, r#"뀋"#, r#"뀋"#, r#"뀋"#, r#"뀋"#),
+        (r#"뀌"#, r#"뀌"#, r#"뀌"#, r#"뀌"#, r#"뀌"#),
+        (r#"뀍"#, r#"뀍"#, r#"뀍"#, r#"뀍"#, r#"뀍"#),
+        (r#"뀎"#, r#"뀎"#, r#"뀎"#, r#"뀎"#, r#"뀎"#),
+        (r#"뀏"#, r#"뀏"#, r#"뀏"#, r#"뀏"#, r#"뀏"#),
+        (r#"뀐"#, r#"뀐"#, r#"뀐"#, r#"뀐"#, r#"뀐"#),
+        (r#"뀑"#, r#"뀑"#, r#"뀑"#, r#"뀑"#, r#"뀑"#),
+        (r#"뀒"#, r#"뀒"#, r#"뀒"#, r#"뀒"#, r#"뀒"#),
+        (r#"뀓"#, r#"뀓"#, r#"뀓"#, r#"뀓"#, r#"뀓"#),
+        (r#"뀔"#, r#"뀔"#, r#"뀔"#, r#"뀔"#, r#"뀔"#),
+        (r#"뀕"#, r#"뀕"#, r#"뀕"#, r#"뀕"#, r#"뀕"#),
+        (r#"뀖"#, r#"뀖"#, r#"뀖"#, r#"뀖"#, r#"뀖"#),
+        (r#"뀗"#, r#"뀗"#, r#"뀗"#, r#"뀗"#, r#"뀗"#),
+        (r#"뀘"#, r#"뀘"#, r#"뀘"#, r#"뀘"#, r#"뀘"#),
+        (r#"뀙"#, r#"뀙"#, r#"뀙"#, r#"뀙"#, r#"뀙"#),
+        (r#"뀚"#, r#"뀚"#, r#"뀚"#, r#"뀚"#, r#"뀚"#),
+        (r#"뀛"#, r#"뀛"#, r#"뀛"#, r#"뀛"#, r#"뀛"#),
+        (r#"뀜"#, r#"뀜"#, r#"뀜"#, r#"뀜"#, r#"뀜"#),
+        (r#"뀝"#, r#"뀝"#, r#"뀝"#, r#"뀝"#, r#"뀝"#),
+        (r#"뀞"#, r#"뀞"#, r#"뀞"#, r#"뀞"#, r#"뀞"#),
+        (r#"뀟"#, r#"뀟"#, r#"뀟"#, r#"뀟"#, r#"뀟"#),
+        (r#"뀠"#, r#"뀠"#, r#"뀠"#, r#"뀠"#, r#"뀠"#),
+        (r#"뀡"#, r#"뀡"#, r#"뀡"#, r#"뀡"#, r#"뀡"#),
+        (r#"뀢"#, r#"뀢"#, r#"뀢"#, r#"뀢"#, r#"뀢"#),
+        (r#"뀣"#, r#"뀣"#, r#"뀣"#, r#"뀣"#, r#"뀣"#),
+        (r#"뀤"#, r#"뀤"#, r#"뀤"#, r#"뀤"#, r#"뀤"#),
+        (r#"뀥"#, r#"뀥"#, r#"뀥"#, r#"뀥"#, r#"뀥"#),
+        (r#"뀦"#, r#"뀦"#, r#"뀦"#, r#"뀦"#, r#"뀦"#),
+        (r#"뀧"#, r#"뀧"#, r#"뀧"#, r#"뀧"#, r#"뀧"#),
+        (r#"뀨"#, r#"뀨"#, r#"뀨"#, r#"뀨"#, r#"뀨"#),
+        (r#"뀩"#, r#"뀩"#, r#"뀩"#, r#"뀩"#, r#"뀩"#),
+        (r#"뀪"#, r#"뀪"#, r#"뀪"#, r#"뀪"#, r#"뀪"#),
+        (r#"뀫"#, r#"뀫"#, r#"뀫"#, r#"뀫"#, r#"뀫"#),
+        (r#"뀬"#, r#"뀬"#, r#"뀬"#, r#"뀬"#, r#"뀬"#),
+        (r#"뀭"#, r#"뀭"#, r#"뀭"#, r#"뀭"#, r#"뀭"#),
+        (r#"뀮"#, r#"뀮"#, r#"뀮"#, r#"뀮"#, r#"뀮"#),
+        (r#"뀯"#, r#"뀯"#, r#"뀯"#, r#"뀯"#, r#"뀯"#),
+        (r#"뀰"#, r#"뀰"#, r#"뀰"#, r#"뀰"#, r#"뀰"#),
+        (r#"뀱"#, r#"뀱"#, r#"뀱"#, r#"뀱"#, r#"뀱"#),
+        (r#"뀲"#, r#"뀲"#, r#"뀲"#, r#"뀲"#, r#"뀲"#),
+        (r#"뀳"#, r#"뀳"#, r#"뀳"#, r#"뀳"#, r#"뀳"#),
+        (r#"뀴"#, r#"뀴"#, r#"뀴"#, r#"뀴"#, r#"뀴"#),
+        (r#"뀵"#, r#"뀵"#, r#"뀵"#, r#"뀵"#, r#"뀵"#),
+        (r#"뀶"#, r#"뀶"#, r#"뀶"#, r#"뀶"#, r#"뀶"#),
+        (r#"뀷"#, r#"뀷"#, r#"뀷"#, r#"뀷"#, r#"뀷"#),
+        (r#"뀸"#, r#"뀸"#, r#"뀸"#, r#"뀸"#, r#"뀸"#),
+        (r#"뀹"#, r#"뀹"#, r#"뀹"#, r#"뀹"#, r#"뀹"#),
+        (r#"뀺"#, r#"뀺"#, r#"뀺"#, r#"뀺"#, r#"뀺"#),
+        (r#"뀻"#, r#"뀻"#, r#"뀻"#, r#"뀻"#, r#"뀻"#),
+        (r#"뀼"#, r#"뀼"#, r#"뀼"#, r#"뀼"#, r#"뀼"#),
+        (r#"뀽"#, r#"뀽"#, r#"뀽"#, r#"뀽"#, r#"뀽"#),
+        (r#"뀾"#, r#"뀾"#, r#"뀾"#, r#"뀾"#, r#"뀾"#),
+        (r#"뀿"#, r#"뀿"#, r#"뀿"#, r#"뀿"#, r#"뀿"#),
+        (r#"끀"#, r#"끀"#, r#"끀"#, r#"끀"#, r#"끀"#),
+        (r#"끁"#, r#"끁"#, r#"끁"#, r#"끁"#, r#"끁"#),
+        (r#"끂"#, r#"끂"#, r#"끂"#, r#"끂"#, r#"끂"#),
+        (r#"끃"#, r#"끃"#, r#"끃"#, r#"끃"#, r#"끃"#),
+        (r#"끄"#, r#"끄"#, r#"끄"#, r#"끄"#, r#"끄"#),
+        (r#"끅"#, r#"끅"#, r#"끅"#, r#"끅"#, r#"끅"#),
+        (r#"끆"#, r#"끆"#, r#"끆"#, r#"끆"#, r#"끆"#),
+        (r#"끇"#, r#"끇"#, r#"끇"#, r#"끇"#, r#"끇"#),
+        (r#"끈"#, r#"끈"#, r#"끈"#, r#"끈"#, r#"끈"#),
+        (r#"끉"#, r#"끉"#, r#"끉"#, r#"끉"#, r#"끉"#),
+        (r#"끊"#, r#"끊"#, r#"끊"#, r#"끊"#, r#"끊"#),
+        (r#"끋"#, r#"끋"#, r#"끋"#, r#"끋"#, r#"끋"#),
+        (r#"끌"#, r#"끌"#, r#"끌"#, r#"끌"#, r#"끌"#),
+        (r#"끍"#, r#"끍"#, r#"끍"#, r#"끍"#, r#"끍"#),
+        (r#"끎"#, r#"끎"#, r#"끎"#, r#"끎"#, r#"끎"#),
+        (r#"끏"#, r#"끏"#, r#"끏"#, r#"끏"#, r#"끏"#),
+        (r#"끐"#, r#"끐"#, r#"끐"#, r#"끐"#, r#"끐"#),
+        (r#"끑"#, r#"끑"#, r#"끑"#, r#"끑"#, r#"끑"#),
+        (r#"끒"#, r#"끒"#, r#"끒"#, r#"끒"#, r#"끒"#),
+        (r#"끓"#, r#"끓"#, r#"끓"#, r#"끓"#, r#"끓"#),
+        (r#"끔"#, r#"끔"#, r#"끔"#, r#"끔"#, r#"끔"#),
+        (r#"끕"#, r#"끕"#, r#"끕"#, r#"끕"#, r#"끕"#),
+        (r#"끖"#, r#"끖"#, r#"끖"#, r#"끖"#, r#"끖"#),
+        (r#"끗"#, r#"끗"#, r#"끗"#, r#"끗"#, r#"끗"#),
+        (r#"끘"#, r#"끘"#, r#"끘"#, r#"끘"#, r#"끘"#),
+        (r#"끙"#, r#"끙"#, r#"끙"#, r#"끙"#, r#"끙"#),
+        (r#"끚"#, r#"끚"#, r#"끚"#, r#"끚"#, r#"끚"#),
+        (r#"끛"#, r#"끛"#, r#"끛"#, r#"끛"#, r#"끛"#),
+        (r#"끜"#, r#"끜"#, r#"끜"#, r#"끜"#, r#"끜"#),
+        (r#"끝"#, r#"끝"#, r#"끝"#, r#"끝"#, r#"끝"#),
+        (r#"끞"#, r#"끞"#, r#"끞"#, r#"끞"#, r#"끞"#),
+        (r#"끟"#, r#"끟"#, r#"끟"#, r#"끟"#, r#"끟"#),
+        (r#"끠"#, r#"끠"#, r#"끠"#, r#"끠"#, r#"끠"#),
+        (r#"끡"#, r#"끡"#, r#"끡"#, r#"끡"#, r#"끡"#),
+        (r#"끢"#, r#"끢"#, r#"끢"#, r#"끢"#, r#"끢"#),
+        (r#"끣"#, r#"끣"#, r#"끣"#, r#"끣"#, r#"끣"#),
+        (r#"끤"#, r#"끤"#, r#"끤"#, r#"끤"#, r#"끤"#),
+        (r#"끥"#, r#"끥"#, r#"끥"#, r#"끥"#, r#"끥"#),
+        (r#"끦"#, r#"끦"#, r#"끦"#, r#"끦"#, r#"끦"#),
+        (r#"끧"#, r#"끧"#, r#"끧"#, r#"끧"#, r#"끧"#),
+        (r#"끨"#, r#"끨"#, r#"끨"#, r#"끨"#, r#"끨"#),
+        (r#"끩"#, r#"끩"#, r#"끩"#, r#"끩"#, r#"끩"#),
+        (r#"끪"#, r#"끪"#, r#"끪"#, r#"끪"#, r#"끪"#),
+        (r#"끫"#, r#"끫"#, r#"끫"#, r#"끫"#, r#"끫"#),
+        (r#"끬"#, r#"끬"#, r#"끬"#, r#"끬"#, r#"끬"#),
+        (r#"끭"#, r#"끭"#, r#"끭"#, r#"끭"#, r#"끭"#),
+        (r#"끮"#, r#"끮"#, r#"끮"#, r#"끮"#, r#"끮"#),
+        (r#"끯"#, r#"끯"#, r#"끯"#, r#"끯"#, r#"끯"#),
+        (r#"끰"#, r#"끰"#, r#"끰"#, r#"끰"#, r#"끰"#),
+        (r#"끱"#, r#"끱"#, r#"끱"#, r#"끱"#, r#"끱"#),
+        (r#"끲"#, r#"끲"#, r#"끲"#, r#"끲"#, r#"끲"#),
+        (r#"끳"#, r#"끳"#, r#"끳"#, r#"끳"#, r#"끳"#),
+        (r#"끴"#, r#"끴"#, r#"끴"#, r#"끴"#, r#"끴"#),
+        (r#"끵"#, r#"끵"#, r#"끵"#, r#"끵"#, r#"끵"#),
+        (r#"끶"#, r#"끶"#, r#"끶"#, r#"끶"#, r#"끶"#),
+        (r#"끷"#, r#"끷"#, r#"끷"#, r#"끷"#, r#"끷"#),
+        (r#"끸"#, r#"끸"#, r#"끸"#, r#"끸"#, r#"끸"#),
+        (r#"끹"#, r#"끹"#, r#"끹"#, r#"끹"#, r#"끹"#),
+        (r#"끺"#, r#"끺"#, r#"끺"#, r#"끺"#, r#"끺"#),
+        (r#"끻"#, r#"끻"#, r#"끻"#, r#"끻"#, r#"끻"#),
+        (r#"끼"#, r#"끼"#, r#"끼"#, r#"끼"#, r#"끼"#),
+        (r#"끽"#, r#"끽"#, r#"끽"#, r#"끽"#, r#"끽"#),
+        (r#"끾"#, r#"끾"#, r#"끾"#, r#"끾"#, r#"끾"#),
+        (r#"끿"#, r#"끿"#, r#"끿"#, r#"끿"#, r#"끿"#),
+        (r#"낀"#, r#"낀"#, r#"낀"#, r#"낀"#, r#"낀"#),
+        (r#"낁"#, r#"낁"#, r#"낁"#, r#"낁"#, r#"낁"#),
+        (r#"낂"#, r#"낂"#, r#"낂"#, r#"낂"#, r#"낂"#),
+        (r#"낃"#, r#"낃"#, r#"낃"#, r#"낃"#, r#"낃"#),
+        (r#"낄"#, r#"낄"#, r#"낄"#, r#"낄"#, r#"낄"#),
+        (r#"낅"#, r#"낅"#, r#"낅"#, r#"낅"#, r#"낅"#),
+        (r#"낆"#, r#"낆"#, r#"낆"#, r#"낆"#, r#"낆"#),
+        (r#"낇"#, r#"낇"#, r#"낇"#, r#"낇"#, r#"낇"#),
+        (r#"낈"#, r#"낈"#, r#"낈"#, r#"낈"#, r#"낈"#),
+        (r#"낉"#, r#"낉"#, r#"낉"#, r#"낉"#, r#"낉"#),
+        (r#"낊"#, r#"낊"#, r#"낊"#, r#"낊"#, r#"낊"#),
+        (r#"낋"#, r#"낋"#, r#"낋"#, r#"낋"#, r#"낋"#),
+        (r#"낌"#, r#"낌"#, r#"낌"#, r#"낌"#, r#"낌"#),
+        (r#"낍"#, r#"낍"#, r#"낍"#, r#"낍"#, r#"낍"#),
+        (r#"낎"#, r#"낎"#, r#"낎"#, r#"낎"#, r#"낎"#),
+        (r#"낏"#, r#"낏"#, r#"낏"#, r#"낏"#, r#"낏"#),
+        (r#"낐"#, r#"낐"#, r#"낐"#, r#"낐"#, r#"낐"#),
+        (r#"낑"#, r#"낑"#, r#"낑"#, r#"낑"#, r#"낑"#),
+        (r#"낒"#, r#"낒"#, r#"낒"#, r#"낒"#, r#"낒"#),
+        (r#"낓"#, r#"낓"#, r#"낓"#, r#"낓"#, r#"낓"#),
+        (r#"낔"#, r#"낔"#, r#"낔"#, r#"낔"#, r#"낔"#),
+        (r#"낕"#, r#"낕"#, r#"낕"#, r#"낕"#, r#"낕"#),
+        (r#"낖"#, r#"낖"#, r#"낖"#, r#"낖"#, r#"낖"#),
+        (r#"낗"#, r#"낗"#, r#"낗"#, r#"낗"#, r#"낗"#),
+        (r#"나"#, r#"나"#, r#"나"#, r#"나"#, r#"나"#),
+        (r#"낙"#, r#"낙"#, r#"낙"#, r#"낙"#, r#"낙"#),
+        (r#"낚"#, r#"낚"#, r#"낚"#, r#"낚"#, r#"낚"#),
+        (r#"낛"#, r#"낛"#, r#"낛"#, r#"낛"#, r#"낛"#),
+        (r#"난"#, r#"난"#, r#"난"#, r#"난"#, r#"난"#),
+        (r#"낝"#, r#"낝"#, r#"낝"#, r#"낝"#, r#"낝"#),
+        (r#"낞"#, r#"낞"#, r#"낞"#, r#"낞"#, r#"낞"#),
+        (r#"낟"#, r#"낟"#, r#"낟"#, r#"낟"#, r#"낟"#),
+        (r#"날"#, r#"날"#, r#"날"#, r#"날"#, r#"날"#),
+        (r#"낡"#, r#"낡"#, r#"낡"#, r#"낡"#, r#"낡"#),
+        (r#"낢"#, r#"낢"#, r#"낢"#, r#"낢"#, r#"낢"#),
+        (r#"낣"#, r#"낣"#, r#"낣"#, r#"낣"#, r#"낣"#),
+        (r#"낤"#, r#"낤"#, r#"낤"#, r#"낤"#, r#"낤"#),
+        (r#"낥"#, r#"낥"#, r#"낥"#, r#"낥"#, r#"낥"#),
+        (r#"낦"#, r#"낦"#, r#"낦"#, r#"낦"#, r#"낦"#),
+        (r#"낧"#, r#"낧"#, r#"낧"#, r#"낧"#, r#"낧"#),
+        (r#"남"#, r#"남"#, r#"남"#, r#"남"#, r#"남"#),
+        (r#"납"#, r#"납"#, r#"납"#, r#"납"#, r#"납"#),
+        (r#"낪"#, r#"낪"#, r#"낪"#, r#"낪"#, r#"낪"#),
+        (r#"낫"#, r#"낫"#, r#"낫"#, r#"낫"#, r#"낫"#),
+        (r#"났"#, r#"났"#, r#"났"#, r#"났"#, r#"났"#),
+        (r#"낭"#, r#"낭"#, r#"낭"#, r#"낭"#, r#"낭"#),
+        (r#"낮"#, r#"낮"#, r#"낮"#, r#"낮"#, r#"낮"#),
+        (r#"낯"#, r#"낯"#, r#"낯"#, r#"낯"#, r#"낯"#),
+        (r#"낰"#, r#"낰"#, r#"낰"#, r#"낰"#, r#"낰"#),
+        (r#"낱"#, r#"낱"#, r#"낱"#, r#"낱"#, r#"낱"#),
+        (r#"낲"#, r#"낲"#, r#"낲"#, r#"낲"#, r#"낲"#),
+        (r#"낳"#, r#"낳"#, r#"낳"#, r#"낳"#, r#"낳"#),
+        (r#"내"#, r#"내"#, r#"내"#, r#"내"#, r#"내"#),
+        (r#"낵"#, r#"낵"#, r#"낵"#, r#"낵"#, r#"낵"#),
+        (r#"낶"#, r#"낶"#, r#"낶"#, r#"낶"#, r#"낶"#),
+        (r#"낷"#, r#"낷"#, r#"낷"#, r#"낷"#, r#"낷"#),
+        (r#"낸"#, r#"낸"#, r#"낸"#, r#"낸"#, r#"낸"#),
+        (r#"낹"#, r#"낹"#, r#"낹"#, r#"낹"#, r#"낹"#),
+        (r#"낺"#, r#"낺"#, r#"낺"#, r#"낺"#, r#"낺"#),
+        (r#"낻"#, r#"낻"#, r#"낻"#, r#"낻"#, r#"낻"#),
+        (r#"낼"#, r#"낼"#, r#"낼"#, r#"낼"#, r#"낼"#),
+        (r#"낽"#, r#"낽"#, r#"낽"#, r#"낽"#, r#"낽"#),
+        (r#"낾"#, r#"낾"#, r#"낾"#, r#"낾"#, r#"낾"#),
+        (r#"낿"#, r#"낿"#, r#"낿"#, r#"낿"#, r#"낿"#),
+        (r#"냀"#, r#"냀"#, r#"냀"#, r#"냀"#, r#"냀"#),
+        (r#"냁"#, r#"냁"#, r#"냁"#, r#"냁"#, r#"냁"#),
+        (r#"냂"#, r#"냂"#, r#"냂"#, r#"냂"#, r#"냂"#),
+        (r#"냃"#, r#"냃"#, r#"냃"#, r#"냃"#, r#"냃"#),
+        (r#"냄"#, r#"냄"#, r#"냄"#, r#"냄"#, r#"냄"#),
+        (r#"냅"#, r#"냅"#, r#"냅"#, r#"냅"#, r#"냅"#),
+        (r#"냆"#, r#"냆"#, r#"냆"#, r#"냆"#, r#"냆"#),
+        (r#"냇"#, r#"냇"#, r#"냇"#, r#"냇"#, r#"냇"#),
+        (r#"냈"#, r#"냈"#, r#"냈"#, r#"냈"#, r#"냈"#),
+        (r#"냉"#, r#"냉"#, r#"냉"#, r#"냉"#, r#"냉"#),
+        (r#"냊"#, r#"냊"#, r#"냊"#, r#"냊"#, r#"냊"#),
+        (r#"냋"#, r#"냋"#, r#"냋"#, r#"냋"#, r#"냋"#),
+        (r#"냌"#, r#"냌"#, r#"냌"#, r#"냌"#, r#"냌"#),
+        (r#"냍"#, r#"냍"#, r#"냍"#, r#"냍"#, r#"냍"#),
+        (r#"냎"#, r#"냎"#, r#"냎"#, r#"냎"#, r#"냎"#),
+        (r#"냏"#, r#"냏"#, r#"냏"#, r#"냏"#, r#"냏"#),
+        (r#"냐"#, r#"냐"#, r#"냐"#, r#"냐"#, r#"냐"#),
+        (r#"냑"#, r#"냑"#, r#"냑"#, r#"냑"#, r#"냑"#),
+        (r#"냒"#, r#"냒"#, r#"냒"#, r#"냒"#, r#"냒"#),
+        (r#"냓"#, r#"냓"#, r#"냓"#, r#"냓"#, r#"냓"#),
+        (r#"냔"#, r#"냔"#, r#"냔"#, r#"냔"#, r#"냔"#),
+        (r#"냕"#, r#"냕"#, r#"냕"#, r#"냕"#, r#"냕"#),
+        (r#"냖"#, r#"냖"#, r#"냖"#, r#"냖"#, r#"냖"#),
+        (r#"냗"#, r#"냗"#, r#"냗"#, r#"냗"#, r#"냗"#),
+        (r#"냘"#, r#"냘"#, r#"냘"#, r#"냘"#, r#"냘"#),
+        (r#"냙"#, r#"냙"#, r#"냙"#, r#"냙"#, r#"냙"#),
+        (r#"냚"#, r#"냚"#, r#"냚"#, r#"냚"#, r#"냚"#),
+        (r#"냛"#, r#"냛"#, r#"냛"#, r#"냛"#, r#"냛"#),
+        (r#"냜"#, r#"냜"#, r#"냜"#, r#"냜"#, r#"냜"#),
+        (r#"냝"#, r#"냝"#, r#"냝"#, r#"냝"#, r#"냝"#),
+        (r#"냞"#, r#"냞"#, r#"냞"#, r#"냞"#, r#"냞"#),
+        (r#"냟"#, r#"냟"#, r#"냟"#, r#"냟"#, r#"냟"#),
+        (r#"냠"#, r#"냠"#, r#"냠"#, r#"냠"#, r#"냠"#),
+        (r#"냡"#, r#"냡"#, r#"냡"#, r#"냡"#, r#"냡"#),
+        (r#"냢"#, r#"냢"#, r#"냢"#, r#"냢"#, r#"냢"#),
+        (r#"냣"#, r#"냣"#, r#"냣"#, r#"냣"#, r#"냣"#),
+        (r#"냤"#, r#"냤"#, r#"냤"#, r#"냤"#, r#"냤"#),
+        (r#"냥"#, r#"냥"#, r#"냥"#, r#"냥"#, r#"냥"#),
+        (r#"냦"#, r#"냦"#, r#"냦"#, r#"냦"#, r#"냦"#),
+        (r#"냧"#, r#"냧"#, r#"냧"#, r#"냧"#, r#"냧"#),
+        (r#"냨"#, r#"냨"#, r#"냨"#, r#"냨"#, r#"냨"#),
+        (r#"냩"#, r#"냩"#, r#"냩"#, r#"냩"#, r#"냩"#),
+        (r#"냪"#, r#"냪"#, r#"냪"#, r#"냪"#, r#"냪"#),
+        (r#"냫"#, r#"냫"#, r#"냫"#, r#"냫"#, r#"냫"#),
+        (r#"냬"#, r#"냬"#, r#"냬"#, r#"냬"#, r#"냬"#),
+        (r#"냭"#, r#"냭"#, r#"냭"#, r#"냭"#, r#"냭"#),
+        (r#"냮"#, r#"냮"#, r#"냮"#, r#"냮"#, r#"냮"#),
+        (r#"냯"#, r#"냯"#, r#"냯"#, r#"냯"#, r#"냯"#),
+        (r#"냰"#, r#"냰"#, r#"냰"#, r#"냰"#, r#"냰"#),
+        (r#"냱"#, r#"냱"#, r#"냱"#, r#"냱"#, r#"냱"#),
+        (r#"냲"#, r#"냲"#, r#"냲"#, r#"냲"#, r#"냲"#),
+        (r#"냳"#, r#"냳"#, r#"냳"#, r#"냳"#, r#"냳"#),
+        (r#"냴"#, r#"냴"#, r#"냴"#, r#"냴"#, r#"냴"#),
+        (r#"냵"#, r#"냵"#, r#"냵"#, r#"냵"#, r#"냵"#),
+        (r#"냶"#, r#"냶"#, r#"냶"#, r#"냶"#, r#"냶"#),
+        (r#"냷"#, r#"냷"#, r#"냷"#, r#"냷"#, r#"냷"#),
+        (r#"냸"#, r#"냸"#, r#"냸"#, r#"냸"#, r#"냸"#),
+        (r#"냹"#, r#"냹"#, r#"냹"#, r#"냹"#, r#"냹"#),
+        (r#"냺"#, r#"냺"#, r#"냺"#, r#"냺"#, r#"냺"#),
+        (r#"냻"#, r#"냻"#, r#"냻"#, r#"냻"#, r#"냻"#),
+        (r#"냼"#, r#"냼"#, r#"냼"#, r#"냼"#, r#"냼"#),
+        (r#"냽"#, r#"냽"#, r#"냽"#, r#"냽"#, r#"냽"#),
+        (r#"냾"#, r#"냾"#, r#"냾"#, r#"냾"#, r#"냾"#),
+        (r#"냿"#, r#"냿"#, r#"냿"#, r#"냿"#, r#"냿"#),
+        (r#"넀"#, r#"넀"#, r#"넀"#, r#"넀"#, r#"넀"#),
+        (r#"넁"#, r#"넁"#, r#"넁"#, r#"넁"#, r#"넁"#),
+        (r#"넂"#, r#"넂"#, r#"넂"#, r#"넂"#, r#"넂"#),
+        (r#"넃"#, r#"넃"#, r#"넃"#, r#"넃"#, r#"넃"#),
+        (r#"넄"#, r#"넄"#, r#"넄"#, r#"넄"#, r#"넄"#),
+        (r#"넅"#, r#"넅"#, r#"넅"#, r#"넅"#, r#"넅"#),
+        (r#"넆"#, r#"넆"#, r#"넆"#, r#"넆"#, r#"넆"#),
+        (r#"넇"#, r#"넇"#, r#"넇"#, r#"넇"#, r#"넇"#),
+        (r#"너"#, r#"너"#, r#"너"#, r#"너"#, r#"너"#),
+        (r#"넉"#, r#"넉"#, r#"넉"#, r#"넉"#, r#"넉"#),
+        (r#"넊"#, r#"넊"#, r#"넊"#, r#"넊"#, r#"넊"#),
+        (r#"넋"#, r#"넋"#, r#"넋"#, r#"넋"#, r#"넋"#),
+        (r#"넌"#, r#"넌"#, r#"넌"#, r#"넌"#, r#"넌"#),
+        (r#"넍"#, r#"넍"#, r#"넍"#, r#"넍"#, r#"넍"#),
+        (r#"넎"#, r#"넎"#, r#"넎"#, r#"넎"#, r#"넎"#),
+        (r#"넏"#, r#"넏"#, r#"넏"#, r#"넏"#, r#"넏"#),
+        (r#"널"#, r#"널"#, r#"널"#, r#"널"#, r#"널"#),
+        (r#"넑"#, r#"넑"#, r#"넑"#, r#"넑"#, r#"넑"#),
+        (r#"넒"#, r#"넒"#, r#"넒"#, r#"넒"#, r#"넒"#),
+        (r#"넓"#, r#"넓"#, r#"넓"#, r#"넓"#, r#"넓"#),
+        (r#"넔"#, r#"넔"#, r#"넔"#, r#"넔"#, r#"넔"#),
+        (r#"넕"#, r#"넕"#, r#"넕"#, r#"넕"#, r#"넕"#),
+        (r#"넖"#, r#"넖"#, r#"넖"#, r#"넖"#, r#"넖"#),
+        (r#"넗"#, r#"넗"#, r#"넗"#, r#"넗"#, r#"넗"#),
+        (r#"넘"#, r#"넘"#, r#"넘"#, r#"넘"#, r#"넘"#),
+        (r#"넙"#, r#"넙"#, r#"넙"#, r#"넙"#, r#"넙"#),
+        (r#"넚"#, r#"넚"#, r#"넚"#, r#"넚"#, r#"넚"#),
+        (r#"넛"#, r#"넛"#, r#"넛"#, r#"넛"#, r#"넛"#),
+        (r#"넜"#, r#"넜"#, r#"넜"#, r#"넜"#, r#"넜"#),
+        (r#"넝"#, r#"넝"#, r#"넝"#, r#"넝"#, r#"넝"#),
+        (r#"넞"#, r#"넞"#, r#"넞"#, r#"넞"#, r#"넞"#),
+        (r#"넟"#, r#"넟"#, r#"넟"#, r#"넟"#, r#"넟"#),
+        (r#"넠"#, r#"넠"#, r#"넠"#, r#"넠"#, r#"넠"#),
+        (r#"넡"#, r#"넡"#, r#"넡"#, r#"넡"#, r#"넡"#),
+        (r#"넢"#, r#"넢"#, r#"넢"#, r#"넢"#, r#"넢"#),
+        (r#"넣"#, r#"넣"#, r#"넣"#, r#"넣"#, r#"넣"#),
+        (r#"네"#, r#"네"#, r#"네"#, r#"네"#, r#"네"#),
+        (r#"넥"#, r#"넥"#, r#"넥"#, r#"넥"#, r#"넥"#),
+        (r#"넦"#, r#"넦"#, r#"넦"#, r#"넦"#, r#"넦"#),
+        (r#"넧"#, r#"넧"#, r#"넧"#, r#"넧"#, r#"넧"#),
+        (r#"넨"#, r#"넨"#, r#"넨"#, r#"넨"#, r#"넨"#),
+        (r#"넩"#, r#"넩"#, r#"넩"#, r#"넩"#, r#"넩"#),
+        (r#"넪"#, r#"넪"#, r#"넪"#, r#"넪"#, r#"넪"#),
+        (r#"넫"#, r#"넫"#, r#"넫"#, r#"넫"#, r#"넫"#),
+        (r#"넬"#, r#"넬"#, r#"넬"#, r#"넬"#, r#"넬"#),
+        (r#"넭"#, r#"넭"#, r#"넭"#, r#"넭"#, r#"넭"#),
+        (r#"넮"#, r#"넮"#, r#"넮"#, r#"넮"#, r#"넮"#),
+        (r#"넯"#, r#"넯"#, r#"넯"#, r#"넯"#, r#"넯"#),
+        (r#"넰"#, r#"넰"#, r#"넰"#, r#"넰"#, r#"넰"#),
+        (r#"넱"#, r#"넱"#, r#"넱"#, r#"넱"#, r#"넱"#),
+        (r#"넲"#, r#"넲"#, r#"넲"#, r#"넲"#, r#"넲"#),
+        (r#"넳"#, r#"넳"#, r#"넳"#, r#"넳"#, r#"넳"#),
+        (r#"넴"#, r#"넴"#, r#"넴"#, r#"넴"#, r#"넴"#),
+        (r#"넵"#, r#"넵"#, r#"넵"#, r#"넵"#, r#"넵"#),
+        (r#"넶"#, r#"넶"#, r#"넶"#, r#"넶"#, r#"넶"#),
+        (r#"넷"#, r#"넷"#, r#"넷"#, r#"넷"#, r#"넷"#),
+        (r#"넸"#, r#"넸"#, r#"넸"#, r#"넸"#, r#"넸"#),
+        (r#"넹"#, r#"넹"#, r#"넹"#, r#"넹"#, r#"넹"#),
+        (r#"넺"#, r#"넺"#, r#"넺"#, r#"넺"#, r#"넺"#),
+        (r#"넻"#, r#"넻"#, r#"넻"#, r#"넻"#, r#"넻"#),
+        (r#"넼"#, r#"넼"#, r#"넼"#, r#"넼"#, r#"넼"#),
+        (r#"넽"#, r#"넽"#, r#"넽"#, r#"넽"#, r#"넽"#),
+        (r#"넾"#, r#"넾"#, r#"넾"#, r#"넾"#, r#"넾"#),
+        (r#"넿"#, r#"넿"#, r#"넿"#, r#"넿"#, r#"넿"#),
+        (r#"녀"#, r#"녀"#, r#"녀"#, r#"녀"#, r#"녀"#),
+        (r#"녁"#, r#"녁"#, r#"녁"#, r#"녁"#, r#"녁"#),
+        (r#"녂"#, r#"녂"#, r#"녂"#, r#"녂"#, r#"녂"#),
+        (r#"녃"#, r#"녃"#, r#"녃"#, r#"녃"#, r#"녃"#),
+        (r#"년"#, r#"년"#, r#"년"#, r#"년"#, r#"년"#),
+        (r#"녅"#, r#"녅"#, r#"녅"#, r#"녅"#, r#"녅"#),
+        (r#"녆"#, r#"녆"#, r#"녆"#, r#"녆"#, r#"녆"#),
+        (r#"녇"#, r#"녇"#, r#"녇"#, r#"녇"#, r#"녇"#),
+        (r#"녈"#, r#"녈"#, r#"녈"#, r#"녈"#, r#"녈"#),
+        (r#"녉"#, r#"녉"#, r#"녉"#, r#"녉"#, r#"녉"#),
+        (r#"녊"#, r#"녊"#, r#"녊"#, r#"녊"#, r#"녊"#),
+        (r#"녋"#, r#"녋"#, r#"녋"#, r#"녋"#, r#"녋"#),
+        (r#"녌"#, r#"녌"#, r#"녌"#, r#"녌"#, r#"녌"#),
+        (r#"녍"#, r#"녍"#, r#"녍"#, r#"녍"#, r#"녍"#),
+        (r#"녎"#, r#"녎"#, r#"녎"#, r#"녎"#, r#"녎"#),
+        (r#"녏"#, r#"녏"#, r#"녏"#, r#"녏"#, r#"녏"#),
+        (r#"념"#, r#"념"#, r#"념"#, r#"념"#, r#"념"#),
+        (r#"녑"#, r#"녑"#, r#"녑"#, r#"녑"#, r#"녑"#),
+        (r#"녒"#, r#"녒"#, r#"녒"#, r#"녒"#, r#"녒"#),
+        (r#"녓"#, r#"녓"#, r#"녓"#, r#"녓"#, r#"녓"#),
+        (r#"녔"#, r#"녔"#, r#"녔"#, r#"녔"#, r#"녔"#),
+        (r#"녕"#, r#"녕"#, r#"녕"#, r#"녕"#, r#"녕"#),
+        (r#"녖"#, r#"녖"#, r#"녖"#, r#"녖"#, r#"녖"#),
+        (r#"녗"#, r#"녗"#, r#"녗"#, r#"녗"#, r#"녗"#),
+        (r#"녘"#, r#"녘"#, r#"녘"#, r#"녘"#, r#"녘"#),
+        (r#"녙"#, r#"녙"#, r#"녙"#, r#"녙"#, r#"녙"#),
+        (r#"녚"#, r#"녚"#, r#"녚"#, r#"녚"#, r#"녚"#),
+        (r#"녛"#, r#"녛"#, r#"녛"#, r#"녛"#, r#"녛"#),
+        (r#"녜"#, r#"녜"#, r#"녜"#, r#"녜"#, r#"녜"#),
+        (r#"녝"#, r#"녝"#, r#"녝"#, r#"녝"#, r#"녝"#),
+        (r#"녞"#, r#"녞"#, r#"녞"#, r#"녞"#, r#"녞"#),
+        (r#"녟"#, r#"녟"#, r#"녟"#, r#"녟"#, r#"녟"#),
+        (r#"녠"#, r#"녠"#, r#"녠"#, r#"녠"#, r#"녠"#),
+        (r#"녡"#, r#"녡"#, r#"녡"#, r#"녡"#, r#"녡"#),
+        (r#"녢"#, r#"녢"#, r#"녢"#, r#"녢"#, r#"녢"#),
+        (r#"녣"#, r#"녣"#, r#"녣"#, r#"녣"#, r#"녣"#),
+        (r#"녤"#, r#"녤"#, r#"녤"#, r#"녤"#, r#"녤"#),
+        (r#"녥"#, r#"녥"#, r#"녥"#, r#"녥"#, r#"녥"#),
+        (r#"녦"#, r#"녦"#, r#"녦"#, r#"녦"#, r#"녦"#),
+        (r#"녧"#, r#"녧"#, r#"녧"#, r#"녧"#, r#"녧"#),
+        (r#"녨"#, r#"녨"#, r#"녨"#, r#"녨"#, r#"녨"#),
+        (r#"녩"#, r#"녩"#, r#"녩"#, r#"녩"#, r#"녩"#),
+        (r#"녪"#, r#"녪"#, r#"녪"#, r#"녪"#, r#"녪"#),
+        (r#"녫"#, r#"녫"#, r#"녫"#, r#"녫"#, r#"녫"#),
+        (r#"녬"#, r#"녬"#, r#"녬"#, r#"녬"#, r#"녬"#),
+        (r#"녭"#, r#"녭"#, r#"녭"#, r#"녭"#, r#"녭"#),
+        (r#"녮"#, r#"녮"#, r#"녮"#, r#"녮"#, r#"녮"#),
+        (r#"녯"#, r#"녯"#, r#"녯"#, r#"녯"#, r#"녯"#),
+        (r#"녰"#, r#"녰"#, r#"녰"#, r#"녰"#, r#"녰"#),
+        (r#"녱"#, r#"녱"#, r#"녱"#, r#"녱"#, r#"녱"#),
+        (r#"녲"#, r#"녲"#, r#"녲"#, r#"녲"#, r#"녲"#),
+        (r#"녳"#, r#"녳"#, r#"녳"#, r#"녳"#, r#"녳"#),
+        (r#"녴"#, r#"녴"#, r#"녴"#, r#"녴"#, r#"녴"#),
+        (r#"녵"#, r#"녵"#, r#"녵"#, r#"녵"#, r#"녵"#),
+        (r#"녶"#, r#"녶"#, r#"녶"#, r#"녶"#, r#"녶"#),
+        (r#"녷"#, r#"녷"#, r#"녷"#, r#"녷"#, r#"녷"#),
+        (r#"노"#, r#"노"#, r#"노"#, r#"노"#, r#"노"#),
+        (r#"녹"#, r#"녹"#, r#"녹"#, r#"녹"#, r#"녹"#),
+        (r#"녺"#, r#"녺"#, r#"녺"#, r#"녺"#, r#"녺"#),
+        (r#"녻"#, r#"녻"#, r#"녻"#, r#"녻"#, r#"녻"#),
+        (r#"논"#, r#"논"#, r#"논"#, r#"논"#, r#"논"#),
+        (r#"녽"#, r#"녽"#, r#"녽"#, r#"녽"#, r#"녽"#),
+        (r#"녾"#, r#"녾"#, r#"녾"#, r#"녾"#, r#"녾"#),
+        (r#"녿"#, r#"녿"#, r#"녿"#, r#"녿"#, r#"녿"#),
+        (r#"놀"#, r#"놀"#, r#"놀"#, r#"놀"#, r#"놀"#),
+        (r#"놁"#, r#"놁"#, r#"놁"#, r#"놁"#, r#"놁"#),
+        (r#"놂"#, r#"놂"#, r#"놂"#, r#"놂"#, r#"놂"#),
+        (r#"놃"#, r#"놃"#, r#"놃"#, r#"놃"#, r#"놃"#),
+        (r#"놄"#, r#"놄"#, r#"놄"#, r#"놄"#, r#"놄"#),
+        (r#"놅"#, r#"놅"#, r#"놅"#, r#"놅"#, r#"놅"#),
+        (r#"놆"#, r#"놆"#, r#"놆"#, r#"놆"#, r#"놆"#),
+        (r#"놇"#, r#"놇"#, r#"놇"#, r#"놇"#, r#"놇"#),
+        (r#"놈"#, r#"놈"#, r#"놈"#, r#"놈"#, r#"놈"#),
+        (r#"놉"#, r#"놉"#, r#"놉"#, r#"놉"#, r#"놉"#),
+        (r#"놊"#, r#"놊"#, r#"놊"#, r#"놊"#, r#"놊"#),
+        (r#"놋"#, r#"놋"#, r#"놋"#, r#"놋"#, r#"놋"#),
+        (r#"놌"#, r#"놌"#, r#"놌"#, r#"놌"#, r#"놌"#),
+        (r#"농"#, r#"농"#, r#"농"#, r#"농"#, r#"농"#),
+        (r#"놎"#, r#"놎"#, r#"놎"#, r#"놎"#, r#"놎"#),
+        (r#"놏"#, r#"놏"#, r#"놏"#, r#"놏"#, r#"놏"#),
+        (r#"놐"#, r#"놐"#, r#"놐"#, r#"놐"#, r#"놐"#),
+        (r#"놑"#, r#"놑"#, r#"놑"#, r#"놑"#, r#"놑"#),
+        (r#"높"#, r#"높"#, r#"높"#, r#"높"#, r#"높"#),
+        (r#"놓"#, r#"놓"#, r#"놓"#, r#"놓"#, r#"놓"#),
+        (r#"놔"#, r#"놔"#, r#"놔"#, r#"놔"#, r#"놔"#),
+        (r#"놕"#, r#"놕"#, r#"놕"#, r#"놕"#, r#"놕"#),
+        (r#"놖"#, r#"놖"#, r#"놖"#, r#"놖"#, r#"놖"#),
+        (r#"놗"#, r#"놗"#, r#"놗"#, r#"놗"#, r#"놗"#),
+        (r#"놘"#, r#"놘"#, r#"놘"#, r#"놘"#, r#"놘"#),
+        (r#"놙"#, r#"놙"#, r#"놙"#, r#"놙"#, r#"놙"#),
+        (r#"놚"#, r#"놚"#, r#"놚"#, r#"놚"#, r#"놚"#),
+        (r#"놛"#, r#"놛"#, r#"놛"#, r#"놛"#, r#"놛"#),
+        (r#"놜"#, r#"놜"#, r#"놜"#, r#"놜"#, r#"놜"#),
+        (r#"놝"#, r#"놝"#, r#"놝"#, r#"놝"#, r#"놝"#),
+        (r#"놞"#, r#"놞"#, r#"놞"#, r#"놞"#, r#"놞"#),
+        (r#"놟"#, r#"놟"#, r#"놟"#, r#"놟"#, r#"놟"#),
+        (r#"놠"#, r#"놠"#, r#"놠"#, r#"놠"#, r#"놠"#),
+        (r#"놡"#, r#"놡"#, r#"놡"#, r#"놡"#, r#"놡"#),
+        (r#"놢"#, r#"놢"#, r#"놢"#, r#"놢"#, r#"놢"#),
+        (r#"놣"#, r#"놣"#, r#"놣"#, r#"놣"#, r#"놣"#),
+        (r#"놤"#, r#"놤"#, r#"놤"#, r#"놤"#, r#"놤"#),
+        (r#"놥"#, r#"놥"#, r#"놥"#, r#"놥"#, r#"놥"#),
+        (r#"놦"#, r#"놦"#, r#"놦"#, r#"놦"#, r#"놦"#),
+        (r#"놧"#, r#"놧"#, r#"놧"#, r#"놧"#, r#"놧"#),
+        (r#"놨"#, r#"놨"#, r#"놨"#, r#"놨"#, r#"놨"#),
+        (r#"놩"#, r#"놩"#, r#"놩"#, r#"놩"#, r#"놩"#),
+        (r#"놪"#, r#"놪"#, r#"놪"#, r#"놪"#, r#"놪"#),
+        (r#"놫"#, r#"놫"#, r#"놫"#, r#"놫"#, r#"놫"#),
+        (r#"놬"#, r#"놬"#, r#"놬"#, r#"놬"#, r#"놬"#),
+        (r#"놭"#, r#"놭"#, r#"놭"#, r#"놭"#, r#"놭"#),
+        (r#"놮"#, r#"놮"#, r#"놮"#, r#"놮"#, r#"놮"#),
+        (r#"놯"#, r#"놯"#, r#"놯"#, r#"놯"#, r#"놯"#),
+        (r#"놰"#, r#"놰"#, r#"놰"#, r#"놰"#, r#"놰"#),
+        (r#"놱"#, r#"놱"#, r#"놱"#, r#"놱"#, r#"놱"#),
+        (r#"놲"#, r#"놲"#, r#"놲"#, r#"놲"#, r#"놲"#),
+        (r#"놳"#, r#"놳"#, r#"놳"#, r#"놳"#, r#"놳"#),
+        (r#"놴"#, r#"놴"#, r#"놴"#, r#"놴"#, r#"놴"#),
+        (r#"놵"#, r#"놵"#, r#"놵"#, r#"놵"#, r#"놵"#),
+        (r#"놶"#, r#"놶"#, r#"놶"#, r#"놶"#, r#"놶"#),
+        (r#"놷"#, r#"놷"#, r#"놷"#, r#"놷"#, r#"놷"#),
+        (r#"놸"#, r#"놸"#, r#"놸"#, r#"놸"#, r#"놸"#),
+        (r#"놹"#, r#"놹"#, r#"놹"#, r#"놹"#, r#"놹"#),
+        (r#"놺"#, r#"놺"#, r#"놺"#, r#"놺"#, r#"놺"#),
+        (r#"놻"#, r#"놻"#, r#"놻"#, r#"놻"#, r#"놻"#),
+        (r#"놼"#, r#"놼"#, r#"놼"#, r#"놼"#, r#"놼"#),
+        (r#"놽"#, r#"놽"#, r#"놽"#, r#"놽"#, r#"놽"#),
+        (r#"놾"#, r#"놾"#, r#"놾"#, r#"놾"#, r#"놾"#),
+        (r#"놿"#, r#"놿"#, r#"놿"#, r#"놿"#, r#"놿"#),
+        (r#"뇀"#, r#"뇀"#, r#"뇀"#, r#"뇀"#, r#"뇀"#),
+        (r#"뇁"#, r#"뇁"#, r#"뇁"#, r#"뇁"#, r#"뇁"#),
+        (r#"뇂"#, r#"뇂"#, r#"뇂"#, r#"뇂"#, r#"뇂"#),
+        (r#"뇃"#, r#"뇃"#, r#"뇃"#, r#"뇃"#, r#"뇃"#),
+        (r#"뇄"#, r#"뇄"#, r#"뇄"#, r#"뇄"#, r#"뇄"#),
+        (r#"뇅"#, r#"뇅"#, r#"뇅"#, r#"뇅"#, r#"뇅"#),
+        (r#"뇆"#, r#"뇆"#, r#"뇆"#, r#"뇆"#, r#"뇆"#),
+        (r#"뇇"#, r#"뇇"#, r#"뇇"#, r#"뇇"#, r#"뇇"#),
+        (r#"뇈"#, r#"뇈"#, r#"뇈"#, r#"뇈"#, r#"뇈"#),
+        (r#"뇉"#, r#"뇉"#, r#"뇉"#, r#"뇉"#, r#"뇉"#),
+        (r#"뇊"#, r#"뇊"#, r#"뇊"#, r#"뇊"#, r#"뇊"#),
+        (r#"뇋"#, r#"뇋"#, r#"뇋"#, r#"뇋"#, r#"뇋"#),
+        (r#"뇌"#, r#"뇌"#, r#"뇌"#, r#"뇌"#, r#"뇌"#),
+        (r#"뇍"#, r#"뇍"#, r#"뇍"#, r#"뇍"#, r#"뇍"#),
+        (r#"뇎"#, r#"뇎"#, r#"뇎"#, r#"뇎"#, r#"뇎"#),
+        (r#"뇏"#, r#"뇏"#, r#"뇏"#, r#"뇏"#, r#"뇏"#),
+        (r#"뇐"#, r#"뇐"#, r#"뇐"#, r#"뇐"#, r#"뇐"#),
+        (r#"뇑"#, r#"뇑"#, r#"뇑"#, r#"뇑"#, r#"뇑"#),
+        (r#"뇒"#, r#"뇒"#, r#"뇒"#, r#"뇒"#, r#"뇒"#),
+        (r#"뇓"#, r#"뇓"#, r#"뇓"#, r#"뇓"#, r#"뇓"#),
+        (r#"뇔"#, r#"뇔"#, r#"뇔"#, r#"뇔"#, r#"뇔"#),
+        (r#"뇕"#, r#"뇕"#, r#"뇕"#, r#"뇕"#, r#"뇕"#),
+        (r#"뇖"#, r#"뇖"#, r#"뇖"#, r#"뇖"#, r#"뇖"#),
+        (r#"뇗"#, r#"뇗"#, r#"뇗"#, r#"뇗"#, r#"뇗"#),
+        (r#"뇘"#, r#"뇘"#, r#"뇘"#, r#"뇘"#, r#"뇘"#),
+        (r#"뇙"#, r#"뇙"#, r#"뇙"#, r#"뇙"#, r#"뇙"#),
+        (r#"뇚"#, r#"뇚"#, r#"뇚"#, r#"뇚"#, r#"뇚"#),
+        (r#"뇛"#, r#"뇛"#, r#"뇛"#, r#"뇛"#, r#"뇛"#),
+        (r#"뇜"#, r#"뇜"#, r#"뇜"#, r#"뇜"#, r#"뇜"#),
+        (r#"뇝"#, r#"뇝"#, r#"뇝"#, r#"뇝"#, r#"뇝"#),
+        (r#"뇞"#, r#"뇞"#, r#"뇞"#, r#"뇞"#, r#"뇞"#),
+        (r#"뇟"#, r#"뇟"#, r#"뇟"#, r#"뇟"#, r#"뇟"#),
+        (r#"뇠"#, r#"뇠"#, r#"뇠"#, r#"뇠"#, r#"뇠"#),
+        (r#"뇡"#, r#"뇡"#, r#"뇡"#, r#"뇡"#, r#"뇡"#),
+        (r#"뇢"#, r#"뇢"#, r#"뇢"#, r#"뇢"#, r#"뇢"#),
+        (r#"뇣"#, r#"뇣"#, r#"뇣"#, r#"뇣"#, r#"뇣"#),
+        (r#"뇤"#, r#"뇤"#, r#"뇤"#, r#"뇤"#, r#"뇤"#),
+        (r#"뇥"#, r#"뇥"#, r#"뇥"#, r#"뇥"#, r#"뇥"#),
+        (r#"뇦"#, r#"뇦"#, r#"뇦"#, r#"뇦"#, r#"뇦"#),
+        (r#"뇧"#, r#"뇧"#, r#"뇧"#, r#"뇧"#, r#"뇧"#),
+        (r#"뇨"#, r#"뇨"#, r#"뇨"#, r#"뇨"#, r#"뇨"#),
+        (r#"뇩"#, r#"뇩"#, r#"뇩"#, r#"뇩"#, r#"뇩"#),
+        (r#"뇪"#, r#"뇪"#, r#"뇪"#, r#"뇪"#, r#"뇪"#),
+        (r#"뇫"#, r#"뇫"#, r#"뇫"#, r#"뇫"#, r#"뇫"#),
+        (r#"뇬"#, r#"뇬"#, r#"뇬"#, r#"뇬"#, r#"뇬"#),
+        (r#"뇭"#, r#"뇭"#, r#"뇭"#, r#"뇭"#, r#"뇭"#),
+        (r#"뇮"#, r#"뇮"#, r#"뇮"#, r#"뇮"#, r#"뇮"#),
+        (r#"뇯"#, r#"뇯"#, r#"뇯"#, r#"뇯"#, r#"뇯"#),
+        (r#"뇰"#, r#"뇰"#, r#"뇰"#, r#"뇰"#, r#"뇰"#),
+        (r#"뇱"#, r#"뇱"#, r#"뇱"#, r#"뇱"#, r#"뇱"#),
+        (r#"뇲"#, r#"뇲"#, r#"뇲"#, r#"뇲"#, r#"뇲"#),
+        (r#"뇳"#, r#"뇳"#, r#"뇳"#, r#"뇳"#, r#"뇳"#),
+        (r#"뇴"#, r#"뇴"#, r#"뇴"#, r#"뇴"#, r#"뇴"#),
+        (r#"뇵"#, r#"뇵"#, r#"뇵"#, r#"뇵"#, r#"뇵"#),
+        (r#"뇶"#, r#"뇶"#, r#"뇶"#, r#"뇶"#, r#"뇶"#),
+        (r#"뇷"#, r#"뇷"#, r#"뇷"#, r#"뇷"#, r#"뇷"#),
+        (r#"뇸"#, r#"뇸"#, r#"뇸"#, r#"뇸"#, r#"뇸"#),
+        (r#"뇹"#, r#"뇹"#, r#"뇹"#, r#"뇹"#, r#"뇹"#),
+        (r#"뇺"#, r#"뇺"#, r#"뇺"#, r#"뇺"#, r#"뇺"#),
+        (r#"뇻"#, r#"뇻"#, r#"뇻"#, r#"뇻"#, r#"뇻"#),
+        (r#"뇼"#, r#"뇼"#, r#"뇼"#, r#"뇼"#, r#"뇼"#),
+        (r#"뇽"#, r#"뇽"#, r#"뇽"#, r#"뇽"#, r#"뇽"#),
+        (r#"뇾"#, r#"뇾"#, r#"뇾"#, r#"뇾"#, r#"뇾"#),
+        (r#"뇿"#, r#"뇿"#, r#"뇿"#, r#"뇿"#, r#"뇿"#),
+        (r#"눀"#, r#"눀"#, r#"눀"#, r#"눀"#, r#"눀"#),
+        (r#"눁"#, r#"눁"#, r#"눁"#, r#"눁"#, r#"눁"#),
+        (r#"눂"#, r#"눂"#, r#"눂"#, r#"눂"#, r#"눂"#),
+        (r#"눃"#, r#"눃"#, r#"눃"#, r#"눃"#, r#"눃"#),
+        (r#"누"#, r#"누"#, r#"누"#, r#"누"#, r#"누"#),
+        (r#"눅"#, r#"눅"#, r#"눅"#, r#"눅"#, r#"눅"#),
+        (r#"눆"#, r#"눆"#, r#"눆"#, r#"눆"#, r#"눆"#),
+        (r#"눇"#, r#"눇"#, r#"눇"#, r#"눇"#, r#"눇"#),
+        (r#"눈"#, r#"눈"#, r#"눈"#, r#"눈"#, r#"눈"#),
+        (r#"눉"#, r#"눉"#, r#"눉"#, r#"눉"#, r#"눉"#),
+        (r#"눊"#, r#"눊"#, r#"눊"#, r#"눊"#, r#"눊"#),
+        (r#"눋"#, r#"눋"#, r#"눋"#, r#"눋"#, r#"눋"#),
+        (r#"눌"#, r#"눌"#, r#"눌"#, r#"눌"#, r#"눌"#),
+        (r#"눍"#, r#"눍"#, r#"눍"#, r#"눍"#, r#"눍"#),
+        (r#"눎"#, r#"눎"#, r#"눎"#, r#"눎"#, r#"눎"#),
+        (r#"눏"#, r#"눏"#, r#"눏"#, r#"눏"#, r#"눏"#),
+        (r#"눐"#, r#"눐"#, r#"눐"#, r#"눐"#, r#"눐"#),
+        (r#"눑"#, r#"눑"#, r#"눑"#, r#"눑"#, r#"눑"#),
+        (r#"눒"#, r#"눒"#, r#"눒"#, r#"눒"#, r#"눒"#),
+        (r#"눓"#, r#"눓"#, r#"눓"#, r#"눓"#, r#"눓"#),
+        (r#"눔"#, r#"눔"#, r#"눔"#, r#"눔"#, r#"눔"#),
+        (r#"눕"#, r#"눕"#, r#"눕"#, r#"눕"#, r#"눕"#),
+        (r#"눖"#, r#"눖"#, r#"눖"#, r#"눖"#, r#"눖"#),
+        (r#"눗"#, r#"눗"#, r#"눗"#, r#"눗"#, r#"눗"#),
+        (r#"눘"#, r#"눘"#, r#"눘"#, r#"눘"#, r#"눘"#),
+        (r#"눙"#, r#"눙"#, r#"눙"#, r#"눙"#, r#"눙"#),
+        (r#"눚"#, r#"눚"#, r#"눚"#, r#"눚"#, r#"눚"#),
+        (r#"눛"#, r#"눛"#, r#"눛"#, r#"눛"#, r#"눛"#),
+        (r#"눜"#, r#"눜"#, r#"눜"#, r#"눜"#, r#"눜"#),
+        (r#"눝"#, r#"눝"#, r#"눝"#, r#"눝"#, r#"눝"#),
+        (r#"눞"#, r#"눞"#, r#"눞"#, r#"눞"#, r#"눞"#),
+        (r#"눟"#, r#"눟"#, r#"눟"#, r#"눟"#, r#"눟"#),
+        (r#"눠"#, r#"눠"#, r#"눠"#, r#"눠"#, r#"눠"#),
+        (r#"눡"#, r#"눡"#, r#"눡"#, r#"눡"#, r#"눡"#),
+        (r#"눢"#, r#"눢"#, r#"눢"#, r#"눢"#, r#"눢"#),
+        (r#"눣"#, r#"눣"#, r#"눣"#, r#"눣"#, r#"눣"#),
+        (r#"눤"#, r#"눤"#, r#"눤"#, r#"눤"#, r#"눤"#),
+        (r#"눥"#, r#"눥"#, r#"눥"#, r#"눥"#, r#"눥"#),
+        (r#"눦"#, r#"눦"#, r#"눦"#, r#"눦"#, r#"눦"#),
+        (r#"눧"#, r#"눧"#, r#"눧"#, r#"눧"#, r#"눧"#),
+        (r#"눨"#, r#"눨"#, r#"눨"#, r#"눨"#, r#"눨"#),
+        (r#"눩"#, r#"눩"#, r#"눩"#, r#"눩"#, r#"눩"#),
+        (r#"눪"#, r#"눪"#, r#"눪"#, r#"눪"#, r#"눪"#),
+        (r#"눫"#, r#"눫"#, r#"눫"#, r#"눫"#, r#"눫"#),
+        (r#"눬"#, r#"눬"#, r#"눬"#, r#"눬"#, r#"눬"#),
+        (r#"눭"#, r#"눭"#, r#"눭"#, r#"눭"#, r#"눭"#),
+        (r#"눮"#, r#"눮"#, r#"눮"#, r#"눮"#, r#"눮"#),
+        (r#"눯"#, r#"눯"#, r#"눯"#, r#"눯"#, r#"눯"#),
+        (r#"눰"#, r#"눰"#, r#"눰"#, r#"눰"#, r#"눰"#),
+        (r#"눱"#, r#"눱"#, r#"눱"#, r#"눱"#, r#"눱"#),
+        (r#"눲"#, r#"눲"#, r#"눲"#, r#"눲"#, r#"눲"#),
+        (r#"눳"#, r#"눳"#, r#"눳"#, r#"눳"#, r#"눳"#),
+        (r#"눴"#, r#"눴"#, r#"눴"#, r#"눴"#, r#"눴"#),
+        (r#"눵"#, r#"눵"#, r#"눵"#, r#"눵"#, r#"눵"#),
+        (r#"눶"#, r#"눶"#, r#"눶"#, r#"눶"#, r#"눶"#),
+        (r#"눷"#, r#"눷"#, r#"눷"#, r#"눷"#, r#"눷"#),
+        (r#"눸"#, r#"눸"#, r#"눸"#, r#"눸"#, r#"눸"#),
+        (r#"눹"#, r#"눹"#, r#"눹"#, r#"눹"#, r#"눹"#),
+        (r#"눺"#, r#"눺"#, r#"눺"#, r#"눺"#, r#"눺"#),
+        (r#"눻"#, r#"눻"#, r#"눻"#, r#"눻"#, r#"눻"#),
+        (r#"눼"#, r#"눼"#, r#"눼"#, r#"눼"#, r#"눼"#),
+        (r#"눽"#, r#"눽"#, r#"눽"#, r#"눽"#, r#"눽"#),
+        (r#"눾"#, r#"눾"#, r#"눾"#, r#"눾"#, r#"눾"#),
+        (r#"눿"#, r#"눿"#, r#"눿"#, r#"눿"#, r#"눿"#),
+        (r#"뉀"#, r#"뉀"#, r#"뉀"#, r#"뉀"#, r#"뉀"#),
+        (r#"뉁"#, r#"뉁"#, r#"뉁"#, r#"뉁"#, r#"뉁"#),
+        (r#"뉂"#, r#"뉂"#, r#"뉂"#, r#"뉂"#, r#"뉂"#),
+        (r#"뉃"#, r#"뉃"#, r#"뉃"#, r#"뉃"#, r#"뉃"#),
+        (r#"뉄"#, r#"뉄"#, r#"뉄"#, r#"뉄"#, r#"뉄"#),
+        (r#"뉅"#, r#"뉅"#, r#"뉅"#, r#"뉅"#, r#"뉅"#),
+        (r#"뉆"#, r#"뉆"#, r#"뉆"#, r#"뉆"#, r#"뉆"#),
+        (r#"뉇"#, r#"뉇"#, r#"뉇"#, r#"뉇"#, r#"뉇"#),
+        (r#"뉈"#, r#"뉈"#, r#"뉈"#, r#"뉈"#, r#"뉈"#),
+        (r#"뉉"#, r#"뉉"#, r#"뉉"#, r#"뉉"#, r#"뉉"#),
+        (r#"뉊"#, r#"뉊"#, r#"뉊"#, r#"뉊"#, r#"뉊"#),
+        (r#"뉋"#, r#"뉋"#, r#"뉋"#, r#"뉋"#, r#"뉋"#),
+        (r#"뉌"#, r#"뉌"#, r#"뉌"#, r#"뉌"#, r#"뉌"#),
+        (r#"뉍"#, r#"뉍"#, r#"뉍"#, r#"뉍"#, r#"뉍"#),
+        (r#"뉎"#, r#"뉎"#, r#"뉎"#, r#"뉎"#, r#"뉎"#),
+        (r#"뉏"#, r#"뉏"#, r#"뉏"#, r#"뉏"#, r#"뉏"#),
+        (r#"뉐"#, r#"뉐"#, r#"뉐"#, r#"뉐"#, r#"뉐"#),
+        (r#"뉑"#, r#"뉑"#, r#"뉑"#, r#"뉑"#, r#"뉑"#),
+        (r#"뉒"#, r#"뉒"#, r#"뉒"#, r#"뉒"#, r#"뉒"#),
+        (r#"뉓"#, r#"뉓"#, r#"뉓"#, r#"뉓"#, r#"뉓"#),
+        (r#"뉔"#, r#"뉔"#, r#"뉔"#, r#"뉔"#, r#"뉔"#),
+        (r#"뉕"#, r#"뉕"#, r#"뉕"#, r#"뉕"#, r#"뉕"#),
+        (r#"뉖"#, r#"뉖"#, r#"뉖"#, r#"뉖"#, r#"뉖"#),
+        (r#"뉗"#, r#"뉗"#, r#"뉗"#, r#"뉗"#, r#"뉗"#),
+        (r#"뉘"#, r#"뉘"#, r#"뉘"#, r#"뉘"#, r#"뉘"#),
+        (r#"뉙"#, r#"뉙"#, r#"뉙"#, r#"뉙"#, r#"뉙"#),
+        (r#"뉚"#, r#"뉚"#, r#"뉚"#, r#"뉚"#, r#"뉚"#),
+        (r#"뉛"#, r#"뉛"#, r#"뉛"#, r#"뉛"#, r#"뉛"#),
+        (r#"뉜"#, r#"뉜"#, r#"뉜"#, r#"뉜"#, r#"뉜"#),
+        (r#"뉝"#, r#"뉝"#, r#"뉝"#, r#"뉝"#, r#"뉝"#),
+        (r#"뉞"#, r#"뉞"#, r#"뉞"#, r#"뉞"#, r#"뉞"#),
+        (r#"뉟"#, r#"뉟"#, r#"뉟"#, r#"뉟"#, r#"뉟"#),
+        (r#"뉠"#, r#"뉠"#, r#"뉠"#, r#"뉠"#, r#"뉠"#),
+        (r#"뉡"#, r#"뉡"#, r#"뉡"#, r#"뉡"#, r#"뉡"#),
+        (r#"뉢"#, r#"뉢"#, r#"뉢"#, r#"뉢"#, r#"뉢"#),
+        (r#"뉣"#, r#"뉣"#, r#"뉣"#, r#"뉣"#, r#"뉣"#),
+        (r#"뉤"#, r#"뉤"#, r#"뉤"#, r#"뉤"#, r#"뉤"#),
+        (r#"뉥"#, r#"뉥"#, r#"뉥"#, r#"뉥"#, r#"뉥"#),
+        (r#"뉦"#, r#"뉦"#, r#"뉦"#, r#"뉦"#, r#"뉦"#),
+        (r#"뉧"#, r#"뉧"#, r#"뉧"#, r#"뉧"#, r#"뉧"#),
+        (r#"뉨"#, r#"뉨"#, r#"뉨"#, r#"뉨"#, r#"뉨"#),
+        (r#"뉩"#, r#"뉩"#, r#"뉩"#, r#"뉩"#, r#"뉩"#),
+        (r#"뉪"#, r#"뉪"#, r#"뉪"#, r#"뉪"#, r#"뉪"#),
+        (r#"뉫"#, r#"뉫"#, r#"뉫"#, r#"뉫"#, r#"뉫"#),
+        (r#"뉬"#, r#"뉬"#, r#"뉬"#, r#"뉬"#, r#"뉬"#),
+        (r#"뉭"#, r#"뉭"#, r#"뉭"#, r#"뉭"#, r#"뉭"#),
+        (r#"뉮"#, r#"뉮"#, r#"뉮"#, r#"뉮"#, r#"뉮"#),
+        (r#"뉯"#, r#"뉯"#, r#"뉯"#, r#"뉯"#, r#"뉯"#),
+        (r#"뉰"#, r#"뉰"#, r#"뉰"#, r#"뉰"#, r#"뉰"#),
+        (r#"뉱"#, r#"뉱"#, r#"뉱"#, r#"뉱"#, r#"뉱"#),
+        (r#"뉲"#, r#"뉲"#, r#"뉲"#, r#"뉲"#, r#"뉲"#),
+        (r#"뉳"#, r#"뉳"#, r#"뉳"#, r#"뉳"#, r#"뉳"#),
+        (r#"뉴"#, r#"뉴"#, r#"뉴"#, r#"뉴"#, r#"뉴"#),
+        (r#"뉵"#, r#"뉵"#, r#"뉵"#, r#"뉵"#, r#"뉵"#),
+        (r#"뉶"#, r#"뉶"#, r#"뉶"#, r#"뉶"#, r#"뉶"#),
+        (r#"뉷"#, r#"뉷"#, r#"뉷"#, r#"뉷"#, r#"뉷"#),
+        (r#"뉸"#, r#"뉸"#, r#"뉸"#, r#"뉸"#, r#"뉸"#),
+        (r#"뉹"#, r#"뉹"#, r#"뉹"#, r#"뉹"#, r#"뉹"#),
+        (r#"뉺"#, r#"뉺"#, r#"뉺"#, r#"뉺"#, r#"뉺"#),
+        (r#"뉻"#, r#"뉻"#, r#"뉻"#, r#"뉻"#, r#"뉻"#),
+        (r#"뉼"#, r#"뉼"#, r#"뉼"#, r#"뉼"#, r#"뉼"#),
+        (r#"뉽"#, r#"뉽"#, r#"뉽"#, r#"뉽"#, r#"뉽"#),
+        (r#"뉾"#, r#"뉾"#, r#"뉾"#, r#"뉾"#, r#"뉾"#),
+        (r#"뉿"#, r#"뉿"#, r#"뉿"#, r#"뉿"#, r#"뉿"#),
+        (r#"늀"#, r#"늀"#, r#"늀"#, r#"늀"#, r#"늀"#),
+        (r#"늁"#, r#"늁"#, r#"늁"#, r#"늁"#, r#"늁"#),
+        (r#"늂"#, r#"늂"#, r#"늂"#, r#"늂"#, r#"늂"#),
+        (r#"늃"#, r#"늃"#, r#"늃"#, r#"늃"#, r#"늃"#),
+        (r#"늄"#, r#"늄"#, r#"늄"#, r#"늄"#, r#"늄"#),
+        (r#"늅"#, r#"늅"#, r#"늅"#, r#"늅"#, r#"늅"#),
+        (r#"늆"#, r#"늆"#, r#"늆"#, r#"늆"#, r#"늆"#),
+        (r#"늇"#, r#"늇"#, r#"늇"#, r#"늇"#, r#"늇"#),
+        (r#"늈"#, r#"늈"#, r#"늈"#, r#"늈"#, r#"늈"#),
+        (r#"늉"#, r#"늉"#, r#"늉"#, r#"늉"#, r#"늉"#),
+        (r#"늊"#, r#"늊"#, r#"늊"#, r#"늊"#, r#"늊"#),
+        (r#"늋"#, r#"늋"#, r#"늋"#, r#"늋"#, r#"늋"#),
+        (r#"늌"#, r#"늌"#, r#"늌"#, r#"늌"#, r#"늌"#),
+        (r#"늍"#, r#"늍"#, r#"늍"#, r#"늍"#, r#"늍"#),
+        (r#"늎"#, r#"늎"#, r#"늎"#, r#"늎"#, r#"늎"#),
+        (r#"늏"#, r#"늏"#, r#"늏"#, r#"늏"#, r#"늏"#),
+        (r#"느"#, r#"느"#, r#"느"#, r#"느"#, r#"느"#),
+        (r#"늑"#, r#"늑"#, r#"늑"#, r#"늑"#, r#"늑"#),
+        (r#"늒"#, r#"늒"#, r#"늒"#, r#"늒"#, r#"늒"#),
+        (r#"늓"#, r#"늓"#, r#"늓"#, r#"늓"#, r#"늓"#),
+        (r#"는"#, r#"는"#, r#"는"#, r#"는"#, r#"는"#),
+        (r#"늕"#, r#"늕"#, r#"늕"#, r#"늕"#, r#"늕"#),
+        (r#"늖"#, r#"늖"#, r#"늖"#, r#"늖"#, r#"늖"#),
+        (r#"늗"#, r#"늗"#, r#"늗"#, r#"늗"#, r#"늗"#),
+        (r#"늘"#, r#"늘"#, r#"늘"#, r#"늘"#, r#"늘"#),
+        (r#"늙"#, r#"늙"#, r#"늙"#, r#"늙"#, r#"늙"#),
+        (r#"늚"#, r#"늚"#, r#"늚"#, r#"늚"#, r#"늚"#),
+        (r#"늛"#, r#"늛"#, r#"늛"#, r#"늛"#, r#"늛"#),
+        (r#"늜"#, r#"늜"#, r#"늜"#, r#"늜"#, r#"늜"#),
+        (r#"늝"#, r#"늝"#, r#"늝"#, r#"늝"#, r#"늝"#),
+        (r#"늞"#, r#"늞"#, r#"늞"#, r#"늞"#, r#"늞"#),
+        (r#"늟"#, r#"늟"#, r#"늟"#, r#"늟"#, r#"늟"#),
+        (r#"늠"#, r#"늠"#, r#"늠"#, r#"늠"#, r#"늠"#),
+        (r#"늡"#, r#"늡"#, r#"늡"#, r#"늡"#, r#"늡"#),
+        (r#"늢"#, r#"늢"#, r#"늢"#, r#"늢"#, r#"늢"#),
+        (r#"늣"#, r#"늣"#, r#"늣"#, r#"늣"#, r#"늣"#),
+        (r#"늤"#, r#"늤"#, r#"늤"#, r#"늤"#, r#"늤"#),
+        (r#"능"#, r#"능"#, r#"능"#, r#"능"#, r#"능"#),
+        (r#"늦"#, r#"늦"#, r#"늦"#, r#"늦"#, r#"늦"#),
+        (r#"늧"#, r#"늧"#, r#"늧"#, r#"늧"#, r#"늧"#),
+        (r#"늨"#, r#"늨"#, r#"늨"#, r#"늨"#, r#"늨"#),
+        (r#"늩"#, r#"늩"#, r#"늩"#, r#"늩"#, r#"늩"#),
+        (r#"늪"#, r#"늪"#, r#"늪"#, r#"늪"#, r#"늪"#),
+        (r#"늫"#, r#"늫"#, r#"늫"#, r#"늫"#, r#"늫"#),
+        (r#"늬"#, r#"늬"#, r#"늬"#, r#"늬"#, r#"늬"#),
+        (r#"늭"#, r#"늭"#, r#"늭"#, r#"늭"#, r#"늭"#),
+        (r#"늮"#, r#"늮"#, r#"늮"#, r#"늮"#, r#"늮"#),
+        (r#"늯"#, r#"늯"#, r#"늯"#, r#"늯"#, r#"늯"#),
+        (r#"늰"#, r#"늰"#, r#"늰"#, r#"늰"#, r#"늰"#),
+        (r#"늱"#, r#"늱"#, r#"늱"#, r#"늱"#, r#"늱"#),
+        (r#"늲"#, r#"늲"#, r#"늲"#, r#"늲"#, r#"늲"#),
+        (r#"늳"#, r#"늳"#, r#"늳"#, r#"늳"#, r#"늳"#),
+        (r#"늴"#, r#"늴"#, r#"늴"#, r#"늴"#, r#"늴"#),
+        (r#"늵"#, r#"늵"#, r#"늵"#, r#"늵"#, r#"늵"#),
+        (r#"늶"#, r#"늶"#, r#"늶"#, r#"늶"#, r#"늶"#),
+        (r#"늷"#, r#"늷"#, r#"늷"#, r#"늷"#, r#"늷"#),
+        (r#"늸"#, r#"늸"#, r#"늸"#, r#"늸"#, r#"늸"#),
+        (r#"늹"#, r#"늹"#, r#"늹"#, r#"늹"#, r#"늹"#),
+        (r#"늺"#, r#"늺"#, r#"늺"#, r#"늺"#, r#"늺"#),
+        (r#"늻"#, r#"늻"#, r#"늻"#, r#"늻"#, r#"늻"#),
+        (r#"늼"#, r#"늼"#, r#"늼"#, r#"늼"#, r#"늼"#),
+        (r#"늽"#, r#"늽"#, r#"늽"#, r#"늽"#, r#"늽"#),
+        (r#"늾"#, r#"늾"#, r#"늾"#, r#"늾"#, r#"늾"#),
+        (r#"늿"#, r#"늿"#, r#"늿"#, r#"늿"#, r#"늿"#),
+        (r#"닀"#, r#"닀"#, r#"닀"#, r#"닀"#, r#"닀"#),
+        (r#"닁"#, r#"닁"#, r#"닁"#, r#"닁"#, r#"닁"#),
+        (r#"닂"#, r#"닂"#, r#"닂"#, r#"닂"#, r#"닂"#),
+        (r#"닃"#, r#"닃"#, r#"닃"#, r#"닃"#, r#"닃"#),
+        (r#"닄"#, r#"닄"#, r#"닄"#, r#"닄"#, r#"닄"#),
+        (r#"닅"#, r#"닅"#, r#"닅"#, r#"닅"#, r#"닅"#),
+        (r#"닆"#, r#"닆"#, r#"닆"#, r#"닆"#, r#"닆"#),
+        (r#"닇"#, r#"닇"#, r#"닇"#, r#"닇"#, r#"닇"#),
+        (r#"니"#, r#"니"#, r#"니"#, r#"니"#, r#"니"#),
+        (r#"닉"#, r#"닉"#, r#"닉"#, r#"닉"#, r#"닉"#),
+        (r#"닊"#, r#"닊"#, r#"닊"#, r#"닊"#, r#"닊"#),
+        (r#"닋"#, r#"닋"#, r#"닋"#, r#"닋"#, r#"닋"#),
+        (r#"닌"#, r#"닌"#, r#"닌"#, r#"닌"#, r#"닌"#),
+        (r#"닍"#, r#"닍"#, r#"닍"#, r#"닍"#, r#"닍"#),
+        (r#"닎"#, r#"닎"#, r#"닎"#, r#"닎"#, r#"닎"#),
+        (r#"닏"#, r#"닏"#, r#"닏"#, r#"닏"#, r#"닏"#),
+        (r#"닐"#, r#"닐"#, r#"닐"#, r#"닐"#, r#"닐"#),
+        (r#"닑"#, r#"닑"#, r#"닑"#, r#"닑"#, r#"닑"#),
+        (r#"닒"#, r#"닒"#, r#"닒"#, r#"닒"#, r#"닒"#),
+        (r#"닓"#, r#"닓"#, r#"닓"#, r#"닓"#, r#"닓"#),
+        (r#"닔"#, r#"닔"#, r#"닔"#, r#"닔"#, r#"닔"#),
+        (r#"닕"#, r#"닕"#, r#"닕"#, r#"닕"#, r#"닕"#),
+        (r#"닖"#, r#"닖"#, r#"닖"#, r#"닖"#, r#"닖"#),
+        (r#"닗"#, r#"닗"#, r#"닗"#, r#"닗"#, r#"닗"#),
+        (r#"님"#, r#"님"#, r#"님"#, r#"님"#, r#"님"#),
+        (r#"닙"#, r#"닙"#, r#"닙"#, r#"닙"#, r#"닙"#),
+        (r#"닚"#, r#"닚"#, r#"닚"#, r#"닚"#, r#"닚"#),
+        (r#"닛"#, r#"닛"#, r#"닛"#, r#"닛"#, r#"닛"#),
+        (r#"닜"#, r#"닜"#, r#"닜"#, r#"닜"#, r#"닜"#),
+        (r#"닝"#, r#"닝"#, r#"닝"#, r#"닝"#, r#"닝"#),
+        (r#"닞"#, r#"닞"#, r#"닞"#, r#"닞"#, r#"닞"#),
+        (r#"닟"#, r#"닟"#, r#"닟"#, r#"닟"#, r#"닟"#),
+        (r#"닠"#, r#"닠"#, r#"닠"#, r#"닠"#, r#"닠"#),
+        (r#"닡"#, r#"닡"#, r#"닡"#, r#"닡"#, r#"닡"#),
+        (r#"닢"#, r#"닢"#, r#"닢"#, r#"닢"#, r#"닢"#),
+        (r#"닣"#, r#"닣"#, r#"닣"#, r#"닣"#, r#"닣"#),
+        (r#"다"#, r#"다"#, r#"다"#, r#"다"#, r#"다"#),
+        (r#"닥"#, r#"닥"#, r#"닥"#, r#"닥"#, r#"닥"#),
+        (r#"닦"#, r#"닦"#, r#"닦"#, r#"닦"#, r#"닦"#),
+        (r#"닧"#, r#"닧"#, r#"닧"#, r#"닧"#, r#"닧"#),
+        (r#"단"#, r#"단"#, r#"단"#, r#"단"#, r#"단"#),
+        (r#"닩"#, r#"닩"#, r#"닩"#, r#"닩"#, r#"닩"#),
+        (r#"닪"#, r#"닪"#, r#"닪"#, r#"닪"#, r#"닪"#),
+        (r#"닫"#, r#"닫"#, r#"닫"#, r#"닫"#, r#"닫"#),
+        (r#"달"#, r#"달"#, r#"달"#, r#"달"#, r#"달"#),
+        (r#"닭"#, r#"닭"#, r#"닭"#, r#"닭"#, r#"닭"#),
+        (r#"닮"#, r#"닮"#, r#"닮"#, r#"닮"#, r#"닮"#),
+        (r#"닯"#, r#"닯"#, r#"닯"#, r#"닯"#, r#"닯"#),
+        (r#"닰"#, r#"닰"#, r#"닰"#, r#"닰"#, r#"닰"#),
+        (r#"닱"#, r#"닱"#, r#"닱"#, r#"닱"#, r#"닱"#),
+        (r#"닲"#, r#"닲"#, r#"닲"#, r#"닲"#, r#"닲"#),
+        (r#"닳"#, r#"닳"#, r#"닳"#, r#"닳"#, r#"닳"#),
+        (r#"담"#, r#"담"#, r#"담"#, r#"담"#, r#"담"#),
+        (r#"답"#, r#"답"#, r#"답"#, r#"답"#, r#"답"#),
+        (r#"닶"#, r#"닶"#, r#"닶"#, r#"닶"#, r#"닶"#),
+        (r#"닷"#, r#"닷"#, r#"닷"#, r#"닷"#, r#"닷"#),
+        (r#"닸"#, r#"닸"#, r#"닸"#, r#"닸"#, r#"닸"#),
+        (r#"당"#, r#"당"#, r#"당"#, r#"당"#, r#"당"#),
+        (r#"닺"#, r#"닺"#, r#"닺"#, r#"닺"#, r#"닺"#),
+        (r#"닻"#, r#"닻"#, r#"닻"#, r#"닻"#, r#"닻"#),
+        (r#"닼"#, r#"닼"#, r#"닼"#, r#"닼"#, r#"닼"#),
+        (r#"닽"#, r#"닽"#, r#"닽"#, r#"닽"#, r#"닽"#),
+        (r#"닾"#, r#"닾"#, r#"닾"#, r#"닾"#, r#"닾"#),
+        (r#"닿"#, r#"닿"#, r#"닿"#, r#"닿"#, r#"닿"#),
+        (r#"대"#, r#"대"#, r#"대"#, r#"대"#, r#"대"#),
+        (r#"댁"#, r#"댁"#, r#"댁"#, r#"댁"#, r#"댁"#),
+        (r#"댂"#, r#"댂"#, r#"댂"#, r#"댂"#, r#"댂"#),
+        (r#"댃"#, r#"댃"#, r#"댃"#, r#"댃"#, r#"댃"#),
+        (r#"댄"#, r#"댄"#, r#"댄"#, r#"댄"#, r#"댄"#),
+        (r#"댅"#, r#"댅"#, r#"댅"#, r#"댅"#, r#"댅"#),
+        (r#"댆"#, r#"댆"#, r#"댆"#, r#"댆"#, r#"댆"#),
+        (r#"댇"#, r#"댇"#, r#"댇"#, r#"댇"#, r#"댇"#),
+        (r#"댈"#, r#"댈"#, r#"댈"#, r#"댈"#, r#"댈"#),
+        (r#"댉"#, r#"댉"#, r#"댉"#, r#"댉"#, r#"댉"#),
+        (r#"댊"#, r#"댊"#, r#"댊"#, r#"댊"#, r#"댊"#),
+        (r#"댋"#, r#"댋"#, r#"댋"#, r#"댋"#, r#"댋"#),
+        (r#"댌"#, r#"댌"#, r#"댌"#, r#"댌"#, r#"댌"#),
+        (r#"댍"#, r#"댍"#, r#"댍"#, r#"댍"#, r#"댍"#),
+        (r#"댎"#, r#"댎"#, r#"댎"#, r#"댎"#, r#"댎"#),
+        (r#"댏"#, r#"댏"#, r#"댏"#, r#"댏"#, r#"댏"#),
+        (r#"댐"#, r#"댐"#, r#"댐"#, r#"댐"#, r#"댐"#),
+        (r#"댑"#, r#"댑"#, r#"댑"#, r#"댑"#, r#"댑"#),
+        (r#"댒"#, r#"댒"#, r#"댒"#, r#"댒"#, r#"댒"#),
+        (r#"댓"#, r#"댓"#, r#"댓"#, r#"댓"#, r#"댓"#),
+        (r#"댔"#, r#"댔"#, r#"댔"#, r#"댔"#, r#"댔"#),
+        (r#"댕"#, r#"댕"#, r#"댕"#, r#"댕"#, r#"댕"#),
+        (r#"댖"#, r#"댖"#, r#"댖"#, r#"댖"#, r#"댖"#),
+        (r#"댗"#, r#"댗"#, r#"댗"#, r#"댗"#, r#"댗"#),
+        (r#"댘"#, r#"댘"#, r#"댘"#, r#"댘"#, r#"댘"#),
+        (r#"댙"#, r#"댙"#, r#"댙"#, r#"댙"#, r#"댙"#),
+        (r#"댚"#, r#"댚"#, r#"댚"#, r#"댚"#, r#"댚"#),
+        (r#"댛"#, r#"댛"#, r#"댛"#, r#"댛"#, r#"댛"#),
+        (r#"댜"#, r#"댜"#, r#"댜"#, r#"댜"#, r#"댜"#),
+        (r#"댝"#, r#"댝"#, r#"댝"#, r#"댝"#, r#"댝"#),
+        (r#"댞"#, r#"댞"#, r#"댞"#, r#"댞"#, r#"댞"#),
+        (r#"댟"#, r#"댟"#, r#"댟"#, r#"댟"#, r#"댟"#),
+        (r#"댠"#, r#"댠"#, r#"댠"#, r#"댠"#, r#"댠"#),
+        (r#"댡"#, r#"댡"#, r#"댡"#, r#"댡"#, r#"댡"#),
+        (r#"댢"#, r#"댢"#, r#"댢"#, r#"댢"#, r#"댢"#),
+        (r#"댣"#, r#"댣"#, r#"댣"#, r#"댣"#, r#"댣"#),
+        (r#"댤"#, r#"댤"#, r#"댤"#, r#"댤"#, r#"댤"#),
+        (r#"댥"#, r#"댥"#, r#"댥"#, r#"댥"#, r#"댥"#),
+        (r#"댦"#, r#"댦"#, r#"댦"#, r#"댦"#, r#"댦"#),
+        (r#"댧"#, r#"댧"#, r#"댧"#, r#"댧"#, r#"댧"#),
+        (r#"댨"#, r#"댨"#, r#"댨"#, r#"댨"#, r#"댨"#),
+        (r#"댩"#, r#"댩"#, r#"댩"#, r#"댩"#, r#"댩"#),
+        (r#"댪"#, r#"댪"#, r#"댪"#, r#"댪"#, r#"댪"#),
+        (r#"댫"#, r#"댫"#, r#"댫"#, r#"댫"#, r#"댫"#),
+        (r#"댬"#, r#"댬"#, r#"댬"#, r#"댬"#, r#"댬"#),
+        (r#"댭"#, r#"댭"#, r#"댭"#, r#"댭"#, r#"댭"#),
+        (r#"댮"#, r#"댮"#, r#"댮"#, r#"댮"#, r#"댮"#),
+        (r#"댯"#, r#"댯"#, r#"댯"#, r#"댯"#, r#"댯"#),
+        (r#"댰"#, r#"댰"#, r#"댰"#, r#"댰"#, r#"댰"#),
+        (r#"댱"#, r#"댱"#, r#"댱"#, r#"댱"#, r#"댱"#),
+        (r#"댲"#, r#"댲"#, r#"댲"#, r#"댲"#, r#"댲"#),
+        (r#"댳"#, r#"댳"#, r#"댳"#, r#"댳"#, r#"댳"#),
+        (r#"댴"#, r#"댴"#, r#"댴"#, r#"댴"#, r#"댴"#),
+        (r#"댵"#, r#"댵"#, r#"댵"#, r#"댵"#, r#"댵"#),
+        (r#"댶"#, r#"댶"#, r#"댶"#, r#"댶"#, r#"댶"#),
+        (r#"댷"#, r#"댷"#, r#"댷"#, r#"댷"#, r#"댷"#),
+        (r#"댸"#, r#"댸"#, r#"댸"#, r#"댸"#, r#"댸"#),
+        (r#"댹"#, r#"댹"#, r#"댹"#, r#"댹"#, r#"댹"#),
+        (r#"댺"#, r#"댺"#, r#"댺"#, r#"댺"#, r#"댺"#),
+        (r#"댻"#, r#"댻"#, r#"댻"#, r#"댻"#, r#"댻"#),
+        (r#"댼"#, r#"댼"#, r#"댼"#, r#"댼"#, r#"댼"#),
+        (r#"댽"#, r#"댽"#, r#"댽"#, r#"댽"#, r#"댽"#),
+        (r#"댾"#, r#"댾"#, r#"댾"#, r#"댾"#, r#"댾"#),
+        (r#"댿"#, r#"댿"#, r#"댿"#, r#"댿"#, r#"댿"#),
+        (r#"덀"#, r#"덀"#, r#"덀"#, r#"덀"#, r#"덀"#),
+        (r#"덁"#, r#"덁"#, r#"덁"#, r#"덁"#, r#"덁"#),
+        (r#"덂"#, r#"덂"#, r#"덂"#, r#"덂"#, r#"덂"#),
+        (r#"덃"#, r#"덃"#, r#"덃"#, r#"덃"#, r#"덃"#),
+        (r#"덄"#, r#"덄"#, r#"덄"#, r#"덄"#, r#"덄"#),
+        (r#"덅"#, r#"덅"#, r#"덅"#, r#"덅"#, r#"덅"#),
+        (r#"덆"#, r#"덆"#, r#"덆"#, r#"덆"#, r#"덆"#),
+        (r#"덇"#, r#"덇"#, r#"덇"#, r#"덇"#, r#"덇"#),
+        (r#"덈"#, r#"덈"#, r#"덈"#, r#"덈"#, r#"덈"#),
+        (r#"덉"#, r#"덉"#, r#"덉"#, r#"덉"#, r#"덉"#),
+        (r#"덊"#, r#"덊"#, r#"덊"#, r#"덊"#, r#"덊"#),
+        (r#"덋"#, r#"덋"#, r#"덋"#, r#"덋"#, r#"덋"#),
+        (r#"덌"#, r#"덌"#, r#"덌"#, r#"덌"#, r#"덌"#),
+        (r#"덍"#, r#"덍"#, r#"덍"#, r#"덍"#, r#"덍"#),
+        (r#"덎"#, r#"덎"#, r#"덎"#, r#"덎"#, r#"덎"#),
+        (r#"덏"#, r#"덏"#, r#"덏"#, r#"덏"#, r#"덏"#),
+        (r#"덐"#, r#"덐"#, r#"덐"#, r#"덐"#, r#"덐"#),
+        (r#"덑"#, r#"덑"#, r#"덑"#, r#"덑"#, r#"덑"#),
+        (r#"덒"#, r#"덒"#, r#"덒"#, r#"덒"#, r#"덒"#),
+        (r#"덓"#, r#"덓"#, r#"덓"#, r#"덓"#, r#"덓"#),
+        (r#"더"#, r#"더"#, r#"더"#, r#"더"#, r#"더"#),
+        (r#"덕"#, r#"덕"#, r#"덕"#, r#"덕"#, r#"덕"#),
+        (r#"덖"#, r#"덖"#, r#"덖"#, r#"덖"#, r#"덖"#),
+        (r#"덗"#, r#"덗"#, r#"덗"#, r#"덗"#, r#"덗"#),
+        (r#"던"#, r#"던"#, r#"던"#, r#"던"#, r#"던"#),
+        (r#"덙"#, r#"덙"#, r#"덙"#, r#"덙"#, r#"덙"#),
+        (r#"덚"#, r#"덚"#, r#"덚"#, r#"덚"#, r#"덚"#),
+        (r#"덛"#, r#"덛"#, r#"덛"#, r#"덛"#, r#"덛"#),
+        (r#"덜"#, r#"덜"#, r#"덜"#, r#"덜"#, r#"덜"#),
+        (r#"덝"#, r#"덝"#, r#"덝"#, r#"덝"#, r#"덝"#),
+        (r#"덞"#, r#"덞"#, r#"덞"#, r#"덞"#, r#"덞"#),
+        (r#"덟"#, r#"덟"#, r#"덟"#, r#"덟"#, r#"덟"#),
+        (r#"덠"#, r#"덠"#, r#"덠"#, r#"덠"#, r#"덠"#),
+        (r#"덡"#, r#"덡"#, r#"덡"#, r#"덡"#, r#"덡"#),
+        (r#"덢"#, r#"덢"#, r#"덢"#, r#"덢"#, r#"덢"#),
+        (r#"덣"#, r#"덣"#, r#"덣"#, r#"덣"#, r#"덣"#),
+        (r#"덤"#, r#"덤"#, r#"덤"#, r#"덤"#, r#"덤"#),
+        (r#"덥"#, r#"덥"#, r#"덥"#, r#"덥"#, r#"덥"#),
+        (r#"덦"#, r#"덦"#, r#"덦"#, r#"덦"#, r#"덦"#),
+        (r#"덧"#, r#"덧"#, r#"덧"#, r#"덧"#, r#"덧"#),
+        (r#"덨"#, r#"덨"#, r#"덨"#, r#"덨"#, r#"덨"#),
+        (r#"덩"#, r#"덩"#, r#"덩"#, r#"덩"#, r#"덩"#),
+        (r#"덪"#, r#"덪"#, r#"덪"#, r#"덪"#, r#"덪"#),
+        (r#"덫"#, r#"덫"#, r#"덫"#, r#"덫"#, r#"덫"#),
+        (r#"덬"#, r#"덬"#, r#"덬"#, r#"덬"#, r#"덬"#),
+        (r#"덭"#, r#"덭"#, r#"덭"#, r#"덭"#, r#"덭"#),
+        (r#"덮"#, r#"덮"#, r#"덮"#, r#"덮"#, r#"덮"#),
+        (r#"덯"#, r#"덯"#, r#"덯"#, r#"덯"#, r#"덯"#),
+        (r#"데"#, r#"데"#, r#"데"#, r#"데"#, r#"데"#),
+        (r#"덱"#, r#"덱"#, r#"덱"#, r#"덱"#, r#"덱"#),
+        (r#"덲"#, r#"덲"#, r#"덲"#, r#"덲"#, r#"덲"#),
+        (r#"덳"#, r#"덳"#, r#"덳"#, r#"덳"#, r#"덳"#),
+        (r#"덴"#, r#"덴"#, r#"덴"#, r#"덴"#, r#"덴"#),
+        (r#"덵"#, r#"덵"#, r#"덵"#, r#"덵"#, r#"덵"#),
+        (r#"덶"#, r#"덶"#, r#"덶"#, r#"덶"#, r#"덶"#),
+        (r#"덷"#, r#"덷"#, r#"덷"#, r#"덷"#, r#"덷"#),
+        (r#"델"#, r#"델"#, r#"델"#, r#"델"#, r#"델"#),
+        (r#"덹"#, r#"덹"#, r#"덹"#, r#"덹"#, r#"덹"#),
+        (r#"덺"#, r#"덺"#, r#"덺"#, r#"덺"#, r#"덺"#),
+        (r#"덻"#, r#"덻"#, r#"덻"#, r#"덻"#, r#"덻"#),
+        (r#"덼"#, r#"덼"#, r#"덼"#, r#"덼"#, r#"덼"#),
+        (r#"덽"#, r#"덽"#, r#"덽"#, r#"덽"#, r#"덽"#),
+        (r#"덾"#, r#"덾"#, r#"덾"#, r#"덾"#, r#"덾"#),
+        (r#"덿"#, r#"덿"#, r#"덿"#, r#"덿"#, r#"덿"#),
+        (r#"뎀"#, r#"뎀"#, r#"뎀"#, r#"뎀"#, r#"뎀"#),
+        (r#"뎁"#, r#"뎁"#, r#"뎁"#, r#"뎁"#, r#"뎁"#),
+        (r#"뎂"#, r#"뎂"#, r#"뎂"#, r#"뎂"#, r#"뎂"#),
+        (r#"뎃"#, r#"뎃"#, r#"뎃"#, r#"뎃"#, r#"뎃"#),
+        (r#"뎄"#, r#"뎄"#, r#"뎄"#, r#"뎄"#, r#"뎄"#),
+        (r#"뎅"#, r#"뎅"#, r#"뎅"#, r#"뎅"#, r#"뎅"#),
+        (r#"뎆"#, r#"뎆"#, r#"뎆"#, r#"뎆"#, r#"뎆"#),
+        (r#"뎇"#, r#"뎇"#, r#"뎇"#, r#"뎇"#, r#"뎇"#),
+        (r#"뎈"#, r#"뎈"#, r#"뎈"#, r#"뎈"#, r#"뎈"#),
+        (r#"뎉"#, r#"뎉"#, r#"뎉"#, r#"뎉"#, r#"뎉"#),
+        (r#"뎊"#, r#"뎊"#, r#"뎊"#, r#"뎊"#, r#"뎊"#),
+        (r#"뎋"#, r#"뎋"#, r#"뎋"#, r#"뎋"#, r#"뎋"#),
+        (r#"뎌"#, r#"뎌"#, r#"뎌"#, r#"뎌"#, r#"뎌"#),
+        (r#"뎍"#, r#"뎍"#, r#"뎍"#, r#"뎍"#, r#"뎍"#),
+        (r#"뎎"#, r#"뎎"#, r#"뎎"#, r#"뎎"#, r#"뎎"#),
+        (r#"뎏"#, r#"뎏"#, r#"뎏"#, r#"뎏"#, r#"뎏"#),
+        (r#"뎐"#, r#"뎐"#, r#"뎐"#, r#"뎐"#, r#"뎐"#),
+        (r#"뎑"#, r#"뎑"#, r#"뎑"#, r#"뎑"#, r#"뎑"#),
+        (r#"뎒"#, r#"뎒"#, r#"뎒"#, r#"뎒"#, r#"뎒"#),
+        (r#"뎓"#, r#"뎓"#, r#"뎓"#, r#"뎓"#, r#"뎓"#),
+        (r#"뎔"#, r#"뎔"#, r#"뎔"#, r#"뎔"#, r#"뎔"#),
+        (r#"뎕"#, r#"뎕"#, r#"뎕"#, r#"뎕"#, r#"뎕"#),
+        (r#"뎖"#, r#"뎖"#, r#"뎖"#, r#"뎖"#, r#"뎖"#),
+        (r#"뎗"#, r#"뎗"#, r#"뎗"#, r#"뎗"#, r#"뎗"#),
+        (r#"뎘"#, r#"뎘"#, r#"뎘"#, r#"뎘"#, r#"뎘"#),
+        (r#"뎙"#, r#"뎙"#, r#"뎙"#, r#"뎙"#, r#"뎙"#),
+        (r#"뎚"#, r#"뎚"#, r#"뎚"#, r#"뎚"#, r#"뎚"#),
+        (r#"뎛"#, r#"뎛"#, r#"뎛"#, r#"뎛"#, r#"뎛"#),
+        (r#"뎜"#, r#"뎜"#, r#"뎜"#, r#"뎜"#, r#"뎜"#),
+        (r#"뎝"#, r#"뎝"#, r#"뎝"#, r#"뎝"#, r#"뎝"#),
+        (r#"뎞"#, r#"뎞"#, r#"뎞"#, r#"뎞"#, r#"뎞"#),
+        (r#"뎟"#, r#"뎟"#, r#"뎟"#, r#"뎟"#, r#"뎟"#),
+        (r#"뎠"#, r#"뎠"#, r#"뎠"#, r#"뎠"#, r#"뎠"#),
+        (r#"뎡"#, r#"뎡"#, r#"뎡"#, r#"뎡"#, r#"뎡"#),
+        (r#"뎢"#, r#"뎢"#, r#"뎢"#, r#"뎢"#, r#"뎢"#),
+        (r#"뎣"#, r#"뎣"#, r#"뎣"#, r#"뎣"#, r#"뎣"#),
+        (r#"뎤"#, r#"뎤"#, r#"뎤"#, r#"뎤"#, r#"뎤"#),
+        (r#"뎥"#, r#"뎥"#, r#"뎥"#, r#"뎥"#, r#"뎥"#),
+        (r#"뎦"#, r#"뎦"#, r#"뎦"#, r#"뎦"#, r#"뎦"#),
+        (r#"뎧"#, r#"뎧"#, r#"뎧"#, r#"뎧"#, r#"뎧"#),
+        (r#"뎨"#, r#"뎨"#, r#"뎨"#, r#"뎨"#, r#"뎨"#),
+        (r#"뎩"#, r#"뎩"#, r#"뎩"#, r#"뎩"#, r#"뎩"#),
+        (r#"뎪"#, r#"뎪"#, r#"뎪"#, r#"뎪"#, r#"뎪"#),
+        (r#"뎫"#, r#"뎫"#, r#"뎫"#, r#"뎫"#, r#"뎫"#),
+        (r#"뎬"#, r#"뎬"#, r#"뎬"#, r#"뎬"#, r#"뎬"#),
+        (r#"뎭"#, r#"뎭"#, r#"뎭"#, r#"뎭"#, r#"뎭"#),
+        (r#"뎮"#, r#"뎮"#, r#"뎮"#, r#"뎮"#, r#"뎮"#),
+        (r#"뎯"#, r#"뎯"#, r#"뎯"#, r#"뎯"#, r#"뎯"#),
+        (r#"뎰"#, r#"뎰"#, r#"뎰"#, r#"뎰"#, r#"뎰"#),
+        (r#"뎱"#, r#"뎱"#, r#"뎱"#, r#"뎱"#, r#"뎱"#),
+        (r#"뎲"#, r#"뎲"#, r#"뎲"#, r#"뎲"#, r#"뎲"#),
+        (r#"뎳"#, r#"뎳"#, r#"뎳"#, r#"뎳"#, r#"뎳"#),
+        (r#"뎴"#, r#"뎴"#, r#"뎴"#, r#"뎴"#, r#"뎴"#),
+        (r#"뎵"#, r#"뎵"#, r#"뎵"#, r#"뎵"#, r#"뎵"#),
+        (r#"뎶"#, r#"뎶"#, r#"뎶"#, r#"뎶"#, r#"뎶"#),
+        (r#"뎷"#, r#"뎷"#, r#"뎷"#, r#"뎷"#, r#"뎷"#),
+        (r#"뎸"#, r#"뎸"#, r#"뎸"#, r#"뎸"#, r#"뎸"#),
+        (r#"뎹"#, r#"뎹"#, r#"뎹"#, r#"뎹"#, r#"뎹"#),
+        (r#"뎺"#, r#"뎺"#, r#"뎺"#, r#"뎺"#, r#"뎺"#),
+        (r#"뎻"#, r#"뎻"#, r#"뎻"#, r#"뎻"#, r#"뎻"#),
+        (r#"뎼"#, r#"뎼"#, r#"뎼"#, r#"뎼"#, r#"뎼"#),
+        (r#"뎽"#, r#"뎽"#, r#"뎽"#, r#"뎽"#, r#"뎽"#),
+        (r#"뎾"#, r#"뎾"#, r#"뎾"#, r#"뎾"#, r#"뎾"#),
+        (r#"뎿"#, r#"뎿"#, r#"뎿"#, r#"뎿"#, r#"뎿"#),
+        (r#"돀"#, r#"돀"#, r#"돀"#, r#"돀"#, r#"돀"#),
+        (r#"돁"#, r#"돁"#, r#"돁"#, r#"돁"#, r#"돁"#),
+        (r#"돂"#, r#"돂"#, r#"돂"#, r#"돂"#, r#"돂"#),
+        (r#"돃"#, r#"돃"#, r#"돃"#, r#"돃"#, r#"돃"#),
+        (r#"도"#, r#"도"#, r#"도"#, r#"도"#, r#"도"#),
+        (r#"독"#, r#"독"#, r#"독"#, r#"독"#, r#"독"#),
+        (r#"돆"#, r#"돆"#, r#"돆"#, r#"돆"#, r#"돆"#),
+        (r#"돇"#, r#"돇"#, r#"돇"#, r#"돇"#, r#"돇"#),
+        (r#"돈"#, r#"돈"#, r#"돈"#, r#"돈"#, r#"돈"#),
+        (r#"돉"#, r#"돉"#, r#"돉"#, r#"돉"#, r#"돉"#),
+        (r#"돊"#, r#"돊"#, r#"돊"#, r#"돊"#, r#"돊"#),
+        (r#"돋"#, r#"돋"#, r#"돋"#, r#"돋"#, r#"돋"#),
+        (r#"돌"#, r#"돌"#, r#"돌"#, r#"돌"#, r#"돌"#),
+        (r#"돍"#, r#"돍"#, r#"돍"#, r#"돍"#, r#"돍"#),
+        (r#"돎"#, r#"돎"#, r#"돎"#, r#"돎"#, r#"돎"#),
+        (r#"돏"#, r#"돏"#, r#"돏"#, r#"돏"#, r#"돏"#),
+        (r#"돐"#, r#"돐"#, r#"돐"#, r#"돐"#, r#"돐"#),
+        (r#"돑"#, r#"돑"#, r#"돑"#, r#"돑"#, r#"돑"#),
+        (r#"돒"#, r#"돒"#, r#"돒"#, r#"돒"#, r#"돒"#),
+        (r#"돓"#, r#"돓"#, r#"돓"#, r#"돓"#, r#"돓"#),
+        (r#"돔"#, r#"돔"#, r#"돔"#, r#"돔"#, r#"돔"#),
+        (r#"돕"#, r#"돕"#, r#"돕"#, r#"돕"#, r#"돕"#),
+        (r#"돖"#, r#"돖"#, r#"돖"#, r#"돖"#, r#"돖"#),
+        (r#"돗"#, r#"돗"#, r#"돗"#, r#"돗"#, r#"돗"#),
+        (r#"돘"#, r#"돘"#, r#"돘"#, r#"돘"#, r#"돘"#),
+        (r#"동"#, r#"동"#, r#"동"#, r#"동"#, r#"동"#),
+        (r#"돚"#, r#"돚"#, r#"돚"#, r#"돚"#, r#"돚"#),
+        (r#"돛"#, r#"돛"#, r#"돛"#, r#"돛"#, r#"돛"#),
+        (r#"돜"#, r#"돜"#, r#"돜"#, r#"돜"#, r#"돜"#),
+        (r#"돝"#, r#"돝"#, r#"돝"#, r#"돝"#, r#"돝"#),
+        (r#"돞"#, r#"돞"#, r#"돞"#, r#"돞"#, r#"돞"#),
+        (r#"돟"#, r#"돟"#, r#"돟"#, r#"돟"#, r#"돟"#),
+        (r#"돠"#, r#"돠"#, r#"돠"#, r#"돠"#, r#"돠"#),
+        (r#"돡"#, r#"돡"#, r#"돡"#, r#"돡"#, r#"돡"#),
+        (r#"돢"#, r#"돢"#, r#"돢"#, r#"돢"#, r#"돢"#),
+        (r#"돣"#, r#"돣"#, r#"돣"#, r#"돣"#, r#"돣"#),
+        (r#"돤"#, r#"돤"#, r#"돤"#, r#"돤"#, r#"돤"#),
+        (r#"돥"#, r#"돥"#, r#"돥"#, r#"돥"#, r#"돥"#),
+        (r#"돦"#, r#"돦"#, r#"돦"#, r#"돦"#, r#"돦"#),
+        (r#"돧"#, r#"돧"#, r#"돧"#, r#"돧"#, r#"돧"#),
+        (r#"돨"#, r#"돨"#, r#"돨"#, r#"돨"#, r#"돨"#),
+        (r#"돩"#, r#"돩"#, r#"돩"#, r#"돩"#, r#"돩"#),
+        (r#"돪"#, r#"돪"#, r#"돪"#, r#"돪"#, r#"돪"#),
+        (r#"돫"#, r#"돫"#, r#"돫"#, r#"돫"#, r#"돫"#),
+        (r#"돬"#, r#"돬"#, r#"돬"#, r#"돬"#, r#"돬"#),
+        (r#"돭"#, r#"돭"#, r#"돭"#, r#"돭"#, r#"돭"#),
+        (r#"돮"#, r#"돮"#, r#"돮"#, r#"돮"#, r#"돮"#),
+        (r#"돯"#, r#"돯"#, r#"돯"#, r#"돯"#, r#"돯"#),
+        (r#"돰"#, r#"돰"#, r#"돰"#, r#"돰"#, r#"돰"#),
+        (r#"돱"#, r#"돱"#, r#"돱"#, r#"돱"#, r#"돱"#),
+        (r#"돲"#, r#"돲"#, r#"돲"#, r#"돲"#, r#"돲"#),
+        (r#"돳"#, r#"돳"#, r#"돳"#, r#"돳"#, r#"돳"#),
+        (r#"돴"#, r#"돴"#, r#"돴"#, r#"돴"#, r#"돴"#),
+        (r#"돵"#, r#"돵"#, r#"돵"#, r#"돵"#, r#"돵"#),
+        (r#"돶"#, r#"돶"#, r#"돶"#, r#"돶"#, r#"돶"#),
+        (r#"돷"#, r#"돷"#, r#"돷"#, r#"돷"#, r#"돷"#),
+        (r#"돸"#, r#"돸"#, r#"돸"#, r#"돸"#, r#"돸"#),
+        (r#"돹"#, r#"돹"#, r#"돹"#, r#"돹"#, r#"돹"#),
+        (r#"돺"#, r#"돺"#, r#"돺"#, r#"돺"#, r#"돺"#),
+        (r#"돻"#, r#"돻"#, r#"돻"#, r#"돻"#, r#"돻"#),
+        (r#"돼"#, r#"돼"#, r#"돼"#, r#"돼"#, r#"돼"#),
+        (r#"돽"#, r#"돽"#, r#"돽"#, r#"돽"#, r#"돽"#),
+        (r#"돾"#, r#"돾"#, r#"돾"#, r#"돾"#, r#"돾"#),
+        (r#"돿"#, r#"돿"#, r#"돿"#, r#"돿"#, r#"돿"#),
+        (r#"됀"#, r#"됀"#, r#"됀"#, r#"됀"#, r#"됀"#),
+        (r#"됁"#, r#"됁"#, r#"됁"#, r#"됁"#, r#"됁"#),
+        (r#"됂"#, r#"됂"#, r#"됂"#, r#"됂"#, r#"됂"#),
+        (r#"됃"#, r#"됃"#, r#"됃"#, r#"됃"#, r#"됃"#),
+        (r#"됄"#, r#"됄"#, r#"됄"#, r#"됄"#, r#"됄"#),
+        (r#"됅"#, r#"됅"#, r#"됅"#, r#"됅"#, r#"됅"#),
+        (r#"됆"#, r#"됆"#, r#"됆"#, r#"됆"#, r#"됆"#),
+        (r#"됇"#, r#"됇"#, r#"됇"#, r#"됇"#, r#"됇"#),
+        (r#"됈"#, r#"됈"#, r#"됈"#, r#"됈"#, r#"됈"#),
+        (r#"됉"#, r#"됉"#, r#"됉"#, r#"됉"#, r#"됉"#),
+        (r#"됊"#, r#"됊"#, r#"됊"#, r#"됊"#, r#"됊"#),
+        (r#"됋"#, r#"됋"#, r#"됋"#, r#"됋"#, r#"됋"#),
+        (r#"됌"#, r#"됌"#, r#"됌"#, r#"됌"#, r#"됌"#),
+        (r#"됍"#, r#"됍"#, r#"됍"#, r#"됍"#, r#"됍"#),
+        (r#"됎"#, r#"됎"#, r#"됎"#, r#"됎"#, r#"됎"#),
+        (r#"됏"#, r#"됏"#, r#"됏"#, r#"됏"#, r#"됏"#),
+        (r#"됐"#, r#"됐"#, r#"됐"#, r#"됐"#, r#"됐"#),
+        (r#"됑"#, r#"됑"#, r#"됑"#, r#"됑"#, r#"됑"#),
+        (r#"됒"#, r#"됒"#, r#"됒"#, r#"됒"#, r#"됒"#),
+        (r#"됓"#, r#"됓"#, r#"됓"#, r#"됓"#, r#"됓"#),
+        (r#"됔"#, r#"됔"#, r#"됔"#, r#"됔"#, r#"됔"#),
+        (r#"됕"#, r#"됕"#, r#"됕"#, r#"됕"#, r#"됕"#),
+        (r#"됖"#, r#"됖"#, r#"됖"#, r#"됖"#, r#"됖"#),
+        (r#"됗"#, r#"됗"#, r#"됗"#, r#"됗"#, r#"됗"#),
+        (r#"되"#, r#"되"#, r#"되"#, r#"되"#, r#"되"#),
+        (r#"됙"#, r#"됙"#, r#"됙"#, r#"됙"#, r#"됙"#),
+        (r#"됚"#, r#"됚"#, r#"됚"#, r#"됚"#, r#"됚"#),
+        (r#"됛"#, r#"됛"#, r#"됛"#, r#"됛"#, r#"됛"#),
+        (r#"된"#, r#"된"#, r#"된"#, r#"된"#, r#"된"#),
+        (r#"됝"#, r#"됝"#, r#"됝"#, r#"됝"#, r#"됝"#),
+        (r#"됞"#, r#"됞"#, r#"됞"#, r#"됞"#, r#"됞"#),
+        (r#"됟"#, r#"됟"#, r#"됟"#, r#"됟"#, r#"됟"#),
+        (r#"될"#, r#"될"#, r#"될"#, r#"될"#, r#"될"#),
+        (r#"됡"#, r#"됡"#, r#"됡"#, r#"됡"#, r#"됡"#),
+        (r#"됢"#, r#"됢"#, r#"됢"#, r#"됢"#, r#"됢"#),
+        (r#"됣"#, r#"됣"#, r#"됣"#, r#"됣"#, r#"됣"#),
+        (r#"됤"#, r#"됤"#, r#"됤"#, r#"됤"#, r#"됤"#),
+        (r#"됥"#, r#"됥"#, r#"됥"#, r#"됥"#, r#"됥"#),
+        (r#"됦"#, r#"됦"#, r#"됦"#, r#"됦"#, r#"됦"#),
+        (r#"됧"#, r#"됧"#, r#"됧"#, r#"됧"#, r#"됧"#),
+        (r#"됨"#, r#"됨"#, r#"됨"#, r#"됨"#, r#"됨"#),
+        (r#"됩"#, r#"됩"#, r#"됩"#, r#"됩"#, r#"됩"#),
+        (r#"됪"#, r#"됪"#, r#"됪"#, r#"됪"#, r#"됪"#),
+        (r#"됫"#, r#"됫"#, r#"됫"#, r#"됫"#, r#"됫"#),
+        (r#"됬"#, r#"됬"#, r#"됬"#, r#"됬"#, r#"됬"#),
+        (r#"됭"#, r#"됭"#, r#"됭"#, r#"됭"#, r#"됭"#),
+        (r#"됮"#, r#"됮"#, r#"됮"#, r#"됮"#, r#"됮"#),
+        (r#"됯"#, r#"됯"#, r#"됯"#, r#"됯"#, r#"됯"#),
+        (r#"됰"#, r#"됰"#, r#"됰"#, r#"됰"#, r#"됰"#),
+        (r#"됱"#, r#"됱"#, r#"됱"#, r#"됱"#, r#"됱"#),
+        (r#"됲"#, r#"됲"#, r#"됲"#, r#"됲"#, r#"됲"#),
+        (r#"됳"#, r#"됳"#, r#"됳"#, r#"됳"#, r#"됳"#),
+        (r#"됴"#, r#"됴"#, r#"됴"#, r#"됴"#, r#"됴"#),
+        (r#"됵"#, r#"됵"#, r#"됵"#, r#"됵"#, r#"됵"#),
+        (r#"됶"#, r#"됶"#, r#"됶"#, r#"됶"#, r#"됶"#),
+        (r#"됷"#, r#"됷"#, r#"됷"#, r#"됷"#, r#"됷"#),
+        (r#"됸"#, r#"됸"#, r#"됸"#, r#"됸"#, r#"됸"#),
+        (r#"됹"#, r#"됹"#, r#"됹"#, r#"됹"#, r#"됹"#),
+        (r#"됺"#, r#"됺"#, r#"됺"#, r#"됺"#, r#"됺"#),
+        (r#"됻"#, r#"됻"#, r#"됻"#, r#"됻"#, r#"됻"#),
+        (r#"됼"#, r#"됼"#, r#"됼"#, r#"됼"#, r#"됼"#),
+        (r#"됽"#, r#"됽"#, r#"됽"#, r#"됽"#, r#"됽"#),
+        (r#"됾"#, r#"됾"#, r#"됾"#, r#"됾"#, r#"됾"#),
+        (r#"됿"#, r#"됿"#, r#"됿"#, r#"됿"#, r#"됿"#),
+        (r#"둀"#, r#"둀"#, r#"둀"#, r#"둀"#, r#"둀"#),
+        (r#"둁"#, r#"둁"#, r#"둁"#, r#"둁"#, r#"둁"#),
+        (r#"둂"#, r#"둂"#, r#"둂"#, r#"둂"#, r#"둂"#),
+        (r#"둃"#, r#"둃"#, r#"둃"#, r#"둃"#, r#"둃"#),
+        (r#"둄"#, r#"둄"#, r#"둄"#, r#"둄"#, r#"둄"#),
+        (r#"둅"#, r#"둅"#, r#"둅"#, r#"둅"#, r#"둅"#),
+        (r#"둆"#, r#"둆"#, r#"둆"#, r#"둆"#, r#"둆"#),
+        (r#"둇"#, r#"둇"#, r#"둇"#, r#"둇"#, r#"둇"#),
+        (r#"둈"#, r#"둈"#, r#"둈"#, r#"둈"#, r#"둈"#),
+        (r#"둉"#, r#"둉"#, r#"둉"#, r#"둉"#, r#"둉"#),
+        (r#"둊"#, r#"둊"#, r#"둊"#, r#"둊"#, r#"둊"#),
+        (r#"둋"#, r#"둋"#, r#"둋"#, r#"둋"#, r#"둋"#),
+        (r#"둌"#, r#"둌"#, r#"둌"#, r#"둌"#, r#"둌"#),
+        (r#"둍"#, r#"둍"#, r#"둍"#, r#"둍"#, r#"둍"#),
+        (r#"둎"#, r#"둎"#, r#"둎"#, r#"둎"#, r#"둎"#),
+        (r#"둏"#, r#"둏"#, r#"둏"#, r#"둏"#, r#"둏"#),
+        (r#"두"#, r#"두"#, r#"두"#, r#"두"#, r#"두"#),
+        (r#"둑"#, r#"둑"#, r#"둑"#, r#"둑"#, r#"둑"#),
+        (r#"둒"#, r#"둒"#, r#"둒"#, r#"둒"#, r#"둒"#),
+        (r#"둓"#, r#"둓"#, r#"둓"#, r#"둓"#, r#"둓"#),
+        (r#"둔"#, r#"둔"#, r#"둔"#, r#"둔"#, r#"둔"#),
+        (r#"둕"#, r#"둕"#, r#"둕"#, r#"둕"#, r#"둕"#),
+        (r#"둖"#, r#"둖"#, r#"둖"#, r#"둖"#, r#"둖"#),
+        (r#"둗"#, r#"둗"#, r#"둗"#, r#"둗"#, r#"둗"#),
+        (r#"둘"#, r#"둘"#, r#"둘"#, r#"둘"#, r#"둘"#),
+        (r#"둙"#, r#"둙"#, r#"둙"#, r#"둙"#, r#"둙"#),
+        (r#"둚"#, r#"둚"#, r#"둚"#, r#"둚"#, r#"둚"#),
+        (r#"둛"#, r#"둛"#, r#"둛"#, r#"둛"#, r#"둛"#),
+        (r#"둜"#, r#"둜"#, r#"둜"#, r#"둜"#, r#"둜"#),
+        (r#"둝"#, r#"둝"#, r#"둝"#, r#"둝"#, r#"둝"#),
+        (r#"둞"#, r#"둞"#, r#"둞"#, r#"둞"#, r#"둞"#),
+        (r#"둟"#, r#"둟"#, r#"둟"#, r#"둟"#, r#"둟"#),
+        (r#"둠"#, r#"둠"#, r#"둠"#, r#"둠"#, r#"둠"#),
+        (r#"둡"#, r#"둡"#, r#"둡"#, r#"둡"#, r#"둡"#),
+        (r#"둢"#, r#"둢"#, r#"둢"#, r#"둢"#, r#"둢"#),
+        (r#"둣"#, r#"둣"#, r#"둣"#, r#"둣"#, r#"둣"#),
+        (r#"둤"#, r#"둤"#, r#"둤"#, r#"둤"#, r#"둤"#),
+        (r#"둥"#, r#"둥"#, r#"둥"#, r#"둥"#, r#"둥"#),
+        (r#"둦"#, r#"둦"#, r#"둦"#, r#"둦"#, r#"둦"#),
+        (r#"둧"#, r#"둧"#, r#"둧"#, r#"둧"#, r#"둧"#),
+        (r#"둨"#, r#"둨"#, r#"둨"#, r#"둨"#, r#"둨"#),
+        (r#"둩"#, r#"둩"#, r#"둩"#, r#"둩"#, r#"둩"#),
+        (r#"둪"#, r#"둪"#, r#"둪"#, r#"둪"#, r#"둪"#),
+        (r#"둫"#, r#"둫"#, r#"둫"#, r#"둫"#, r#"둫"#),
+        (r#"둬"#, r#"둬"#, r#"둬"#, r#"둬"#, r#"둬"#),
+        (r#"둭"#, r#"둭"#, r#"둭"#, r#"둭"#, r#"둭"#),
+        (r#"둮"#, r#"둮"#, r#"둮"#, r#"둮"#, r#"둮"#),
+        (r#"둯"#, r#"둯"#, r#"둯"#, r#"둯"#, r#"둯"#),
+        (r#"둰"#, r#"둰"#, r#"둰"#, r#"둰"#, r#"둰"#),
+        (r#"둱"#, r#"둱"#, r#"둱"#, r#"둱"#, r#"둱"#),
+        (r#"둲"#, r#"둲"#, r#"둲"#, r#"둲"#, r#"둲"#),
+        (r#"둳"#, r#"둳"#, r#"둳"#, r#"둳"#, r#"둳"#),
+        (r#"둴"#, r#"둴"#, r#"둴"#, r#"둴"#, r#"둴"#),
+        (r#"둵"#, r#"둵"#, r#"둵"#, r#"둵"#, r#"둵"#),
+        (r#"둶"#, r#"둶"#, r#"둶"#, r#"둶"#, r#"둶"#),
+        (r#"둷"#, r#"둷"#, r#"둷"#, r#"둷"#, r#"둷"#),
+        (r#"둸"#, r#"둸"#, r#"둸"#, r#"둸"#, r#"둸"#),
+        (r#"둹"#, r#"둹"#, r#"둹"#, r#"둹"#, r#"둹"#),
+        (r#"둺"#, r#"둺"#, r#"둺"#, r#"둺"#, r#"둺"#),
+        (r#"둻"#, r#"둻"#, r#"둻"#, r#"둻"#, r#"둻"#),
+        (r#"둼"#, r#"둼"#, r#"둼"#, r#"둼"#, r#"둼"#),
+        (r#"둽"#, r#"둽"#, r#"둽"#, r#"둽"#, r#"둽"#),
+        (r#"둾"#, r#"둾"#, r#"둾"#, r#"둾"#, r#"둾"#),
+        (r#"둿"#, r#"둿"#, r#"둿"#, r#"둿"#, r#"둿"#),
+        (r#"뒀"#, r#"뒀"#, r#"뒀"#, r#"뒀"#, r#"뒀"#),
+        (r#"뒁"#, r#"뒁"#, r#"뒁"#, r#"뒁"#, r#"뒁"#),
+        (r#"뒂"#, r#"뒂"#, r#"뒂"#, r#"뒂"#, r#"뒂"#),
+        (r#"뒃"#, r#"뒃"#, r#"뒃"#, r#"뒃"#, r#"뒃"#),
+        (r#"뒄"#, r#"뒄"#, r#"뒄"#, r#"뒄"#, r#"뒄"#),
+        (r#"뒅"#, r#"뒅"#, r#"뒅"#, r#"뒅"#, r#"뒅"#),
+        (r#"뒆"#, r#"뒆"#, r#"뒆"#, r#"뒆"#, r#"뒆"#),
+        (r#"뒇"#, r#"뒇"#, r#"뒇"#, r#"뒇"#, r#"뒇"#),
+        (r#"뒈"#, r#"뒈"#, r#"뒈"#, r#"뒈"#, r#"뒈"#),
+        (r#"뒉"#, r#"뒉"#, r#"뒉"#, r#"뒉"#, r#"뒉"#),
+        (r#"뒊"#, r#"뒊"#, r#"뒊"#, r#"뒊"#, r#"뒊"#),
+        (r#"뒋"#, r#"뒋"#, r#"뒋"#, r#"뒋"#, r#"뒋"#),
+        (r#"뒌"#, r#"뒌"#, r#"뒌"#, r#"뒌"#, r#"뒌"#),
+        (r#"뒍"#, r#"뒍"#, r#"뒍"#, r#"뒍"#, r#"뒍"#),
+        (r#"뒎"#, r#"뒎"#, r#"뒎"#, r#"뒎"#, r#"뒎"#),
+        (r#"뒏"#, r#"뒏"#, r#"뒏"#, r#"뒏"#, r#"뒏"#),
+        (r#"뒐"#, r#"뒐"#, r#"뒐"#, r#"뒐"#, r#"뒐"#),
+        (r#"뒑"#, r#"뒑"#, r#"뒑"#, r#"뒑"#, r#"뒑"#),
+        (r#"뒒"#, r#"뒒"#, r#"뒒"#, r#"뒒"#, r#"뒒"#),
+        (r#"뒓"#, r#"뒓"#, r#"뒓"#, r#"뒓"#, r#"뒓"#),
+        (r#"뒔"#, r#"뒔"#, r#"뒔"#, r#"뒔"#, r#"뒔"#),
+        (r#"뒕"#, r#"뒕"#, r#"뒕"#, r#"뒕"#, r#"뒕"#),
+        (r#"뒖"#, r#"뒖"#, r#"뒖"#, r#"뒖"#, r#"뒖"#),
+        (r#"뒗"#, r#"뒗"#, r#"뒗"#, r#"뒗"#, r#"뒗"#),
+        (r#"뒘"#, r#"뒘"#, r#"뒘"#, r#"뒘"#, r#"뒘"#),
+        (r#"뒙"#, r#"뒙"#, r#"뒙"#, r#"뒙"#, r#"뒙"#),
+        (r#"뒚"#, r#"뒚"#, r#"뒚"#, r#"뒚"#, r#"뒚"#),
+        (r#"뒛"#, r#"뒛"#, r#"뒛"#, r#"뒛"#, r#"뒛"#),
+        (r#"뒜"#, r#"뒜"#, r#"뒜"#, r#"뒜"#, r#"뒜"#),
+        (r#"뒝"#, r#"뒝"#, r#"뒝"#, r#"뒝"#, r#"뒝"#),
+        (r#"뒞"#, r#"뒞"#, r#"뒞"#, r#"뒞"#, r#"뒞"#),
+        (r#"뒟"#, r#"뒟"#, r#"뒟"#, r#"뒟"#, r#"뒟"#),
+        (r#"뒠"#, r#"뒠"#, r#"뒠"#, r#"뒠"#, r#"뒠"#),
+        (r#"뒡"#, r#"뒡"#, r#"뒡"#, r#"뒡"#, r#"뒡"#),
+        (r#"뒢"#, r#"뒢"#, r#"뒢"#, r#"뒢"#, r#"뒢"#),
+        (r#"뒣"#, r#"뒣"#, r#"뒣"#, r#"뒣"#, r#"뒣"#),
+        (r#"뒤"#, r#"뒤"#, r#"뒤"#, r#"뒤"#, r#"뒤"#),
+        (r#"뒥"#, r#"뒥"#, r#"뒥"#, r#"뒥"#, r#"뒥"#),
+        (r#"뒦"#, r#"뒦"#, r#"뒦"#, r#"뒦"#, r#"뒦"#),
+        (r#"뒧"#, r#"뒧"#, r#"뒧"#, r#"뒧"#, r#"뒧"#),
+        (r#"뒨"#, r#"뒨"#, r#"뒨"#, r#"뒨"#, r#"뒨"#),
+        (r#"뒩"#, r#"뒩"#, r#"뒩"#, r#"뒩"#, r#"뒩"#),
+        (r#"뒪"#, r#"뒪"#, r#"뒪"#, r#"뒪"#, r#"뒪"#),
+        (r#"뒫"#, r#"뒫"#, r#"뒫"#, r#"뒫"#, r#"뒫"#),
+        (r#"뒬"#, r#"뒬"#, r#"뒬"#, r#"뒬"#, r#"뒬"#),
+        (r#"뒭"#, r#"뒭"#, r#"뒭"#, r#"뒭"#, r#"뒭"#),
+        (r#"뒮"#, r#"뒮"#, r#"뒮"#, r#"뒮"#, r#"뒮"#),
+        (r#"뒯"#, r#"뒯"#, r#"뒯"#, r#"뒯"#, r#"뒯"#),
+        (r#"뒰"#, r#"뒰"#, r#"뒰"#, r#"뒰"#, r#"뒰"#),
+        (r#"뒱"#, r#"뒱"#, r#"뒱"#, r#"뒱"#, r#"뒱"#),
+        (r#"뒲"#, r#"뒲"#, r#"뒲"#, r#"뒲"#, r#"뒲"#),
+        (r#"뒳"#, r#"뒳"#, r#"뒳"#, r#"뒳"#, r#"뒳"#),
+        (r#"뒴"#, r#"뒴"#, r#"뒴"#, r#"뒴"#, r#"뒴"#),
+        (r#"뒵"#, r#"뒵"#, r#"뒵"#, r#"뒵"#, r#"뒵"#),
+        (r#"뒶"#, r#"뒶"#, r#"뒶"#, r#"뒶"#, r#"뒶"#),
+        (r#"뒷"#, r#"뒷"#, r#"뒷"#, r#"뒷"#, r#"뒷"#),
+        (r#"뒸"#, r#"뒸"#, r#"뒸"#, r#"뒸"#, r#"뒸"#),
+        (r#"뒹"#, r#"뒹"#, r#"뒹"#, r#"뒹"#, r#"뒹"#),
+        (r#"뒺"#, r#"뒺"#, r#"뒺"#, r#"뒺"#, r#"뒺"#),
+        (r#"뒻"#, r#"뒻"#, r#"뒻"#, r#"뒻"#, r#"뒻"#),
+        (r#"뒼"#, r#"뒼"#, r#"뒼"#, r#"뒼"#, r#"뒼"#),
+        (r#"뒽"#, r#"뒽"#, r#"뒽"#, r#"뒽"#, r#"뒽"#),
+        (r#"뒾"#, r#"뒾"#, r#"뒾"#, r#"뒾"#, r#"뒾"#),
+        (r#"뒿"#, r#"뒿"#, r#"뒿"#, r#"뒿"#, r#"뒿"#),
+        (r#"듀"#, r#"듀"#, r#"듀"#, r#"듀"#, r#"듀"#),
+        (r#"듁"#, r#"듁"#, r#"듁"#, r#"듁"#, r#"듁"#),
+        (r#"듂"#, r#"듂"#, r#"듂"#, r#"듂"#, r#"듂"#),
+        (r#"듃"#, r#"듃"#, r#"듃"#, r#"듃"#, r#"듃"#),
+        (r#"듄"#, r#"듄"#, r#"듄"#, r#"듄"#, r#"듄"#),
+        (r#"듅"#, r#"듅"#, r#"듅"#, r#"듅"#, r#"듅"#),
+        (r#"듆"#, r#"듆"#, r#"듆"#, r#"듆"#, r#"듆"#),
+        (r#"듇"#, r#"듇"#, r#"듇"#, r#"듇"#, r#"듇"#),
+        (r#"듈"#, r#"듈"#, r#"듈"#, r#"듈"#, r#"듈"#),
+        (r#"듉"#, r#"듉"#, r#"듉"#, r#"듉"#, r#"듉"#),
+        (r#"듊"#, r#"듊"#, r#"듊"#, r#"듊"#, r#"듊"#),
+        (r#"듋"#, r#"듋"#, r#"듋"#, r#"듋"#, r#"듋"#),
+        (r#"듌"#, r#"듌"#, r#"듌"#, r#"듌"#, r#"듌"#),
+        (r#"듍"#, r#"듍"#, r#"듍"#, r#"듍"#, r#"듍"#),
+        (r#"듎"#, r#"듎"#, r#"듎"#, r#"듎"#, r#"듎"#),
+        (r#"듏"#, r#"듏"#, r#"듏"#, r#"듏"#, r#"듏"#),
+        (r#"듐"#, r#"듐"#, r#"듐"#, r#"듐"#, r#"듐"#),
+        (r#"듑"#, r#"듑"#, r#"듑"#, r#"듑"#, r#"듑"#),
+        (r#"듒"#, r#"듒"#, r#"듒"#, r#"듒"#, r#"듒"#),
+        (r#"듓"#, r#"듓"#, r#"듓"#, r#"듓"#, r#"듓"#),
+        (r#"듔"#, r#"듔"#, r#"듔"#, r#"듔"#, r#"듔"#),
+        (r#"듕"#, r#"듕"#, r#"듕"#, r#"듕"#, r#"듕"#),
+        (r#"듖"#, r#"듖"#, r#"듖"#, r#"듖"#, r#"듖"#),
+        (r#"듗"#, r#"듗"#, r#"듗"#, r#"듗"#, r#"듗"#),
+        (r#"듘"#, r#"듘"#, r#"듘"#, r#"듘"#, r#"듘"#),
+        (r#"듙"#, r#"듙"#, r#"듙"#, r#"듙"#, r#"듙"#),
+        (r#"듚"#, r#"듚"#, r#"듚"#, r#"듚"#, r#"듚"#),
+        (r#"듛"#, r#"듛"#, r#"듛"#, r#"듛"#, r#"듛"#),
+        (r#"드"#, r#"드"#, r#"드"#, r#"드"#, r#"드"#),
+        (r#"득"#, r#"득"#, r#"득"#, r#"득"#, r#"득"#),
+        (r#"듞"#, r#"듞"#, r#"듞"#, r#"듞"#, r#"듞"#),
+        (r#"듟"#, r#"듟"#, r#"듟"#, r#"듟"#, r#"듟"#),
+        (r#"든"#, r#"든"#, r#"든"#, r#"든"#, r#"든"#),
+        (r#"듡"#, r#"듡"#, r#"듡"#, r#"듡"#, r#"듡"#),
+        (r#"듢"#, r#"듢"#, r#"듢"#, r#"듢"#, r#"듢"#),
+        (r#"듣"#, r#"듣"#, r#"듣"#, r#"듣"#, r#"듣"#),
+        (r#"들"#, r#"들"#, r#"들"#, r#"들"#, r#"들"#),
+        (r#"듥"#, r#"듥"#, r#"듥"#, r#"듥"#, r#"듥"#),
+        (r#"듦"#, r#"듦"#, r#"듦"#, r#"듦"#, r#"듦"#),
+        (r#"듧"#, r#"듧"#, r#"듧"#, r#"듧"#, r#"듧"#),
+        (r#"듨"#, r#"듨"#, r#"듨"#, r#"듨"#, r#"듨"#),
+        (r#"듩"#, r#"듩"#, r#"듩"#, r#"듩"#, r#"듩"#),
+        (r#"듪"#, r#"듪"#, r#"듪"#, r#"듪"#, r#"듪"#),
+        (r#"듫"#, r#"듫"#, r#"듫"#, r#"듫"#, r#"듫"#),
+        (r#"듬"#, r#"듬"#, r#"듬"#, r#"듬"#, r#"듬"#),
+        (r#"듭"#, r#"듭"#, r#"듭"#, r#"듭"#, r#"듭"#),
+        (r#"듮"#, r#"듮"#, r#"듮"#, r#"듮"#, r#"듮"#),
+        (r#"듯"#, r#"듯"#, r#"듯"#, r#"듯"#, r#"듯"#),
+        (r#"듰"#, r#"듰"#, r#"듰"#, r#"듰"#, r#"듰"#),
+        (r#"등"#, r#"등"#, r#"등"#, r#"등"#, r#"등"#),
+        (r#"듲"#, r#"듲"#, r#"듲"#, r#"듲"#, r#"듲"#),
+        (r#"듳"#, r#"듳"#, r#"듳"#, r#"듳"#, r#"듳"#),
+        (r#"듴"#, r#"듴"#, r#"듴"#, r#"듴"#, r#"듴"#),
+        (r#"듵"#, r#"듵"#, r#"듵"#, r#"듵"#, r#"듵"#),
+        (r#"듶"#, r#"듶"#, r#"듶"#, r#"듶"#, r#"듶"#),
+        (r#"듷"#, r#"듷"#, r#"듷"#, r#"듷"#, r#"듷"#),
+        (r#"듸"#, r#"듸"#, r#"듸"#, r#"듸"#, r#"듸"#),
+        (r#"듹"#, r#"듹"#, r#"듹"#, r#"듹"#, r#"듹"#),
+        (r#"듺"#, r#"듺"#, r#"듺"#, r#"듺"#, r#"듺"#),
+        (r#"듻"#, r#"듻"#, r#"듻"#, r#"듻"#, r#"듻"#),
+        (r#"듼"#, r#"듼"#, r#"듼"#, r#"듼"#, r#"듼"#),
+        (r#"듽"#, r#"듽"#, r#"듽"#, r#"듽"#, r#"듽"#),
+        (r#"듾"#, r#"듾"#, r#"듾"#, r#"듾"#, r#"듾"#),
+        (r#"듿"#, r#"듿"#, r#"듿"#, r#"듿"#, r#"듿"#),
+        (r#"딀"#, r#"딀"#, r#"딀"#, r#"딀"#, r#"딀"#),
+        (r#"딁"#, r#"딁"#, r#"딁"#, r#"딁"#, r#"딁"#),
+        (r#"딂"#, r#"딂"#, r#"딂"#, r#"딂"#, r#"딂"#),
+        (r#"딃"#, r#"딃"#, r#"딃"#, r#"딃"#, r#"딃"#),
+        (r#"딄"#, r#"딄"#, r#"딄"#, r#"딄"#, r#"딄"#),
+        (r#"딅"#, r#"딅"#, r#"딅"#, r#"딅"#, r#"딅"#),
+        (r#"딆"#, r#"딆"#, r#"딆"#, r#"딆"#, r#"딆"#),
+        (r#"딇"#, r#"딇"#, r#"딇"#, r#"딇"#, r#"딇"#),
+        (r#"딈"#, r#"딈"#, r#"딈"#, r#"딈"#, r#"딈"#),
+        (r#"딉"#, r#"딉"#, r#"딉"#, r#"딉"#, r#"딉"#),
+        (r#"딊"#, r#"딊"#, r#"딊"#, r#"딊"#, r#"딊"#),
+        (r#"딋"#, r#"딋"#, r#"딋"#, r#"딋"#, r#"딋"#),
+        (r#"딌"#, r#"딌"#, r#"딌"#, r#"딌"#, r#"딌"#),
+        (r#"딍"#, r#"딍"#, r#"딍"#, r#"딍"#, r#"딍"#),
+        (r#"딎"#, r#"딎"#, r#"딎"#, r#"딎"#, r#"딎"#),
+        (r#"딏"#, r#"딏"#, r#"딏"#, r#"딏"#, r#"딏"#),
+        (r#"딐"#, r#"딐"#, r#"딐"#, r#"딐"#, r#"딐"#),
+        (r#"딑"#, r#"딑"#, r#"딑"#, r#"딑"#, r#"딑"#),
+        (r#"딒"#, r#"딒"#, r#"딒"#, r#"딒"#, r#"딒"#),
+        (r#"딓"#, r#"딓"#, r#"딓"#, r#"딓"#, r#"딓"#),
+        (r#"디"#, r#"디"#, r#"디"#, r#"디"#, r#"디"#),
+        (r#"딕"#, r#"딕"#, r#"딕"#, r#"딕"#, r#"딕"#),
+        (r#"딖"#, r#"딖"#, r#"딖"#, r#"딖"#, r#"딖"#),
+        (r#"딗"#, r#"딗"#, r#"딗"#, r#"딗"#, r#"딗"#),
+        (r#"딘"#, r#"딘"#, r#"딘"#, r#"딘"#, r#"딘"#),
+        (r#"딙"#, r#"딙"#, r#"딙"#, r#"딙"#, r#"딙"#),
+        (r#"딚"#, r#"딚"#, r#"딚"#, r#"딚"#, r#"딚"#),
+        (r#"딛"#, r#"딛"#, r#"딛"#, r#"딛"#, r#"딛"#),
+        (r#"딜"#, r#"딜"#, r#"딜"#, r#"딜"#, r#"딜"#),
+        (r#"딝"#, r#"딝"#, r#"딝"#, r#"딝"#, r#"딝"#),
+        (r#"딞"#, r#"딞"#, r#"딞"#, r#"딞"#, r#"딞"#),
+        (r#"딟"#, r#"딟"#, r#"딟"#, r#"딟"#, r#"딟"#),
+        (r#"딠"#, r#"딠"#, r#"딠"#, r#"딠"#, r#"딠"#),
+        (r#"딡"#, r#"딡"#, r#"딡"#, r#"딡"#, r#"딡"#),
+        (r#"딢"#, r#"딢"#, r#"딢"#, r#"딢"#, r#"딢"#),
+        (r#"딣"#, r#"딣"#, r#"딣"#, r#"딣"#, r#"딣"#),
+        (r#"딤"#, r#"딤"#, r#"딤"#, r#"딤"#, r#"딤"#),
+        (r#"딥"#, r#"딥"#, r#"딥"#, r#"딥"#, r#"딥"#),
+        (r#"딦"#, r#"딦"#, r#"딦"#, r#"딦"#, r#"딦"#),
+        (r#"딧"#, r#"딧"#, r#"딧"#, r#"딧"#, r#"딧"#),
+        (r#"딨"#, r#"딨"#, r#"딨"#, r#"딨"#, r#"딨"#),
+        (r#"딩"#, r#"딩"#, r#"딩"#, r#"딩"#, r#"딩"#),
+        (r#"딪"#, r#"딪"#, r#"딪"#, r#"딪"#, r#"딪"#),
+        (r#"딫"#, r#"딫"#, r#"딫"#, r#"딫"#, r#"딫"#),
+        (r#"딬"#, r#"딬"#, r#"딬"#, r#"딬"#, r#"딬"#),
+        (r#"딭"#, r#"딭"#, r#"딭"#, r#"딭"#, r#"딭"#),
+        (r#"딮"#, r#"딮"#, r#"딮"#, r#"딮"#, r#"딮"#),
+        (r#"딯"#, r#"딯"#, r#"딯"#, r#"딯"#, r#"딯"#),
+        (r#"따"#, r#"따"#, r#"따"#, r#"따"#, r#"따"#),
+        (r#"딱"#, r#"딱"#, r#"딱"#, r#"딱"#, r#"딱"#),
+        (r#"딲"#, r#"딲"#, r#"딲"#, r#"딲"#, r#"딲"#),
+        (r#"딳"#, r#"딳"#, r#"딳"#, r#"딳"#, r#"딳"#),
+        (r#"딴"#, r#"딴"#, r#"딴"#, r#"딴"#, r#"딴"#),
+        (r#"딵"#, r#"딵"#, r#"딵"#, r#"딵"#, r#"딵"#),
+        (r#"딶"#, r#"딶"#, r#"딶"#, r#"딶"#, r#"딶"#),
+        (r#"딷"#, r#"딷"#, r#"딷"#, r#"딷"#, r#"딷"#),
+        (r#"딸"#, r#"딸"#, r#"딸"#, r#"딸"#, r#"딸"#),
+        (r#"딹"#, r#"딹"#, r#"딹"#, r#"딹"#, r#"딹"#),
+        (r#"딺"#, r#"딺"#, r#"딺"#, r#"딺"#, r#"딺"#),
+        (r#"딻"#, r#"딻"#, r#"딻"#, r#"딻"#, r#"딻"#),
+        (r#"딼"#, r#"딼"#, r#"딼"#, r#"딼"#, r#"딼"#),
+        (r#"딽"#, r#"딽"#, r#"딽"#, r#"딽"#, r#"딽"#),
+        (r#"딾"#, r#"딾"#, r#"딾"#, r#"딾"#, r#"딾"#),
+        (r#"딿"#, r#"딿"#, r#"딿"#, r#"딿"#, r#"딿"#),
+        (r#"땀"#, r#"땀"#, r#"땀"#, r#"땀"#, r#"땀"#),
+        (r#"땁"#, r#"땁"#, r#"땁"#, r#"땁"#, r#"땁"#),
+        (r#"땂"#, r#"땂"#, r#"땂"#, r#"땂"#, r#"땂"#),
+        (r#"땃"#, r#"땃"#, r#"땃"#, r#"땃"#, r#"땃"#),
+        (r#"땄"#, r#"땄"#, r#"땄"#, r#"땄"#, r#"땄"#),
+        (r#"땅"#, r#"땅"#, r#"땅"#, r#"땅"#, r#"땅"#),
+        (r#"땆"#, r#"땆"#, r#"땆"#, r#"땆"#, r#"땆"#),
+        (r#"땇"#, r#"땇"#, r#"땇"#, r#"땇"#, r#"땇"#),
+        (r#"땈"#, r#"땈"#, r#"땈"#, r#"땈"#, r#"땈"#),
+        (r#"땉"#, r#"땉"#, r#"땉"#, r#"땉"#, r#"땉"#),
+        (r#"땊"#, r#"땊"#, r#"땊"#, r#"땊"#, r#"땊"#),
+        (r#"땋"#, r#"땋"#, r#"땋"#, r#"땋"#, r#"땋"#),
+        (r#"때"#, r#"때"#, r#"때"#, r#"때"#, r#"때"#),
+        (r#"땍"#, r#"땍"#, r#"땍"#, r#"땍"#, r#"땍"#),
+        (r#"땎"#, r#"땎"#, r#"땎"#, r#"땎"#, r#"땎"#),
+        (r#"땏"#, r#"땏"#, r#"땏"#, r#"땏"#, r#"땏"#),
+        (r#"땐"#, r#"땐"#, r#"땐"#, r#"땐"#, r#"땐"#),
+        (r#"땑"#, r#"땑"#, r#"땑"#, r#"땑"#, r#"땑"#),
+        (r#"땒"#, r#"땒"#, r#"땒"#, r#"땒"#, r#"땒"#),
+        (r#"땓"#, r#"땓"#, r#"땓"#, r#"땓"#, r#"땓"#),
+        (r#"땔"#, r#"땔"#, r#"땔"#, r#"땔"#, r#"땔"#),
+        (r#"땕"#, r#"땕"#, r#"땕"#, r#"땕"#, r#"땕"#),
+        (r#"땖"#, r#"땖"#, r#"땖"#, r#"땖"#, r#"땖"#),
+        (r#"땗"#, r#"땗"#, r#"땗"#, r#"땗"#, r#"땗"#),
+        (r#"땘"#, r#"땘"#, r#"땘"#, r#"땘"#, r#"땘"#),
+        (r#"땙"#, r#"땙"#, r#"땙"#, r#"땙"#, r#"땙"#),
+        (r#"땚"#, r#"땚"#, r#"땚"#, r#"땚"#, r#"땚"#),
+        (r#"땛"#, r#"땛"#, r#"땛"#, r#"땛"#, r#"땛"#),
+        (r#"땜"#, r#"땜"#, r#"땜"#, r#"땜"#, r#"땜"#),
+        (r#"땝"#, r#"땝"#, r#"땝"#, r#"땝"#, r#"땝"#),
+        (r#"땞"#, r#"땞"#, r#"땞"#, r#"땞"#, r#"땞"#),
+        (r#"땟"#, r#"땟"#, r#"땟"#, r#"땟"#, r#"땟"#),
+        (r#"땠"#, r#"땠"#, r#"땠"#, r#"땠"#, r#"땠"#),
+        (r#"땡"#, r#"땡"#, r#"땡"#, r#"땡"#, r#"땡"#),
+        (r#"땢"#, r#"땢"#, r#"땢"#, r#"땢"#, r#"땢"#),
+        (r#"땣"#, r#"땣"#, r#"땣"#, r#"땣"#, r#"땣"#),
+        (r#"땤"#, r#"땤"#, r#"땤"#, r#"땤"#, r#"땤"#),
+        (r#"땥"#, r#"땥"#, r#"땥"#, r#"땥"#, r#"땥"#),
+        (r#"땦"#, r#"땦"#, r#"땦"#, r#"땦"#, r#"땦"#),
+        (r#"땧"#, r#"땧"#, r#"땧"#, r#"땧"#, r#"땧"#),
+        (r#"땨"#, r#"땨"#, r#"땨"#, r#"땨"#, r#"땨"#),
+        (r#"땩"#, r#"땩"#, r#"땩"#, r#"땩"#, r#"땩"#),
+        (r#"땪"#, r#"땪"#, r#"땪"#, r#"땪"#, r#"땪"#),
+        (r#"땫"#, r#"땫"#, r#"땫"#, r#"땫"#, r#"땫"#),
+        (r#"땬"#, r#"땬"#, r#"땬"#, r#"땬"#, r#"땬"#),
+        (r#"땭"#, r#"땭"#, r#"땭"#, r#"땭"#, r#"땭"#),
+        (r#"땮"#, r#"땮"#, r#"땮"#, r#"땮"#, r#"땮"#),
+        (r#"땯"#, r#"땯"#, r#"땯"#, r#"땯"#, r#"땯"#),
+        (r#"땰"#, r#"땰"#, r#"땰"#, r#"땰"#, r#"땰"#),
+        (r#"땱"#, r#"땱"#, r#"땱"#, r#"땱"#, r#"땱"#),
+        (r#"땲"#, r#"땲"#, r#"땲"#, r#"땲"#, r#"땲"#),
+        (r#"땳"#, r#"땳"#, r#"땳"#, r#"땳"#, r#"땳"#),
+        (r#"땴"#, r#"땴"#, r#"땴"#, r#"땴"#, r#"땴"#),
+        (r#"땵"#, r#"땵"#, r#"땵"#, r#"땵"#, r#"땵"#),
+        (r#"땶"#, r#"땶"#, r#"땶"#, r#"땶"#, r#"땶"#),
+        (r#"땷"#, r#"땷"#, r#"땷"#, r#"땷"#, r#"땷"#),
+        (r#"땸"#, r#"땸"#, r#"땸"#, r#"땸"#, r#"땸"#),
+        (r#"땹"#, r#"땹"#, r#"땹"#, r#"땹"#, r#"땹"#),
+        (r#"땺"#, r#"땺"#, r#"땺"#, r#"땺"#, r#"땺"#),
+        (r#"땻"#, r#"땻"#, r#"땻"#, r#"땻"#, r#"땻"#),
+        (r#"땼"#, r#"땼"#, r#"땼"#, r#"땼"#, r#"땼"#),
+        (r#"땽"#, r#"땽"#, r#"땽"#, r#"땽"#, r#"땽"#),
+        (r#"땾"#, r#"땾"#, r#"땾"#, r#"땾"#, r#"땾"#),
+        (r#"땿"#, r#"땿"#, r#"땿"#, r#"땿"#, r#"땿"#),
+        (r#"떀"#, r#"떀"#, r#"떀"#, r#"떀"#, r#"떀"#),
+        (r#"떁"#, r#"떁"#, r#"떁"#, r#"떁"#, r#"떁"#),
+        (r#"떂"#, r#"떂"#, r#"떂"#, r#"떂"#, r#"떂"#),
+        (r#"떃"#, r#"떃"#, r#"떃"#, r#"떃"#, r#"떃"#),
+        (r#"떄"#, r#"떄"#, r#"떄"#, r#"떄"#, r#"떄"#),
+        (r#"떅"#, r#"떅"#, r#"떅"#, r#"떅"#, r#"떅"#),
+        (r#"떆"#, r#"떆"#, r#"떆"#, r#"떆"#, r#"떆"#),
+        (r#"떇"#, r#"떇"#, r#"떇"#, r#"떇"#, r#"떇"#),
+        (r#"떈"#, r#"떈"#, r#"떈"#, r#"떈"#, r#"떈"#),
+        (r#"떉"#, r#"떉"#, r#"떉"#, r#"떉"#, r#"떉"#),
+        (r#"떊"#, r#"떊"#, r#"떊"#, r#"떊"#, r#"떊"#),
+        (r#"떋"#, r#"떋"#, r#"떋"#, r#"떋"#, r#"떋"#),
+        (r#"떌"#, r#"떌"#, r#"떌"#, r#"떌"#, r#"떌"#),
+        (r#"떍"#, r#"떍"#, r#"떍"#, r#"떍"#, r#"떍"#),
+        (r#"떎"#, r#"떎"#, r#"떎"#, r#"떎"#, r#"떎"#),
+        (r#"떏"#, r#"떏"#, r#"떏"#, r#"떏"#, r#"떏"#),
+        (r#"떐"#, r#"떐"#, r#"떐"#, r#"떐"#, r#"떐"#),
+        (r#"떑"#, r#"떑"#, r#"떑"#, r#"떑"#, r#"떑"#),
+        (r#"떒"#, r#"떒"#, r#"떒"#, r#"떒"#, r#"떒"#),
+        (r#"떓"#, r#"떓"#, r#"떓"#, r#"떓"#, r#"떓"#),
+        (r#"떔"#, r#"떔"#, r#"떔"#, r#"떔"#, r#"떔"#),
+        (r#"떕"#, r#"떕"#, r#"떕"#, r#"떕"#, r#"떕"#),
+        (r#"떖"#, r#"떖"#, r#"떖"#, r#"떖"#, r#"떖"#),
+        (r#"떗"#, r#"떗"#, r#"떗"#, r#"떗"#, r#"떗"#),
+        (r#"떘"#, r#"떘"#, r#"떘"#, r#"떘"#, r#"떘"#),
+        (r#"떙"#, r#"떙"#, r#"떙"#, r#"떙"#, r#"떙"#),
+        (r#"떚"#, r#"떚"#, r#"떚"#, r#"떚"#, r#"떚"#),
+        (r#"떛"#, r#"떛"#, r#"떛"#, r#"떛"#, r#"떛"#),
+        (r#"떜"#, r#"떜"#, r#"떜"#, r#"떜"#, r#"떜"#),
+        (r#"떝"#, r#"떝"#, r#"떝"#, r#"떝"#, r#"떝"#),
+        (r#"떞"#, r#"떞"#, r#"떞"#, r#"떞"#, r#"떞"#),
+        (r#"떟"#, r#"떟"#, r#"떟"#, r#"떟"#, r#"떟"#),
+        (r#"떠"#, r#"떠"#, r#"떠"#, r#"떠"#, r#"떠"#),
+        (r#"떡"#, r#"떡"#, r#"떡"#, r#"떡"#, r#"떡"#),
+        (r#"떢"#, r#"떢"#, r#"떢"#, r#"떢"#, r#"떢"#),
+        (r#"떣"#, r#"떣"#, r#"떣"#, r#"떣"#, r#"떣"#),
+        (r#"떤"#, r#"떤"#, r#"떤"#, r#"떤"#, r#"떤"#),
+        (r#"떥"#, r#"떥"#, r#"떥"#, r#"떥"#, r#"떥"#),
+        (r#"떦"#, r#"떦"#, r#"떦"#, r#"떦"#, r#"떦"#),
+        (r#"떧"#, r#"떧"#, r#"떧"#, r#"떧"#, r#"떧"#),
+        (r#"떨"#, r#"떨"#, r#"떨"#, r#"떨"#, r#"떨"#),
+        (r#"떩"#, r#"떩"#, r#"떩"#, r#"떩"#, r#"떩"#),
+        (r#"떪"#, r#"떪"#, r#"떪"#, r#"떪"#, r#"떪"#),
+        (r#"떫"#, r#"떫"#, r#"떫"#, r#"떫"#, r#"떫"#),
+        (r#"떬"#, r#"떬"#, r#"떬"#, r#"떬"#, r#"떬"#),
+        (r#"떭"#, r#"떭"#, r#"떭"#, r#"떭"#, r#"떭"#),
+        (r#"떮"#, r#"떮"#, r#"떮"#, r#"떮"#, r#"떮"#),
+        (r#"떯"#, r#"떯"#, r#"떯"#, r#"떯"#, r#"떯"#),
+        (r#"떰"#, r#"떰"#, r#"떰"#, r#"떰"#, r#"떰"#),
+        (r#"떱"#, r#"떱"#, r#"떱"#, r#"떱"#, r#"떱"#),
+        (r#"떲"#, r#"떲"#, r#"떲"#, r#"떲"#, r#"떲"#),
+        (r#"떳"#, r#"떳"#, r#"떳"#, r#"떳"#, r#"떳"#),
+        (r#"떴"#, r#"떴"#, r#"떴"#, r#"떴"#, r#"떴"#),
+        (r#"떵"#, r#"떵"#, r#"떵"#, r#"떵"#, r#"떵"#),
+        (r#"떶"#, r#"떶"#, r#"떶"#, r#"떶"#, r#"떶"#),
+        (r#"떷"#, r#"떷"#, r#"떷"#, r#"떷"#, r#"떷"#),
+        (r#"떸"#, r#"떸"#, r#"떸"#, r#"떸"#, r#"떸"#),
+        (r#"떹"#, r#"떹"#, r#"떹"#, r#"떹"#, r#"떹"#),
+        (r#"떺"#, r#"떺"#, r#"떺"#, r#"떺"#, r#"떺"#),
+        (r#"떻"#, r#"떻"#, r#"떻"#, r#"떻"#, r#"떻"#),
+        (r#"떼"#, r#"떼"#, r#"떼"#, r#"떼"#, r#"떼"#),
+        (r#"떽"#, r#"떽"#, r#"떽"#, r#"떽"#, r#"떽"#),
+        (r#"떾"#, r#"떾"#, r#"떾"#, r#"떾"#, r#"떾"#),
+        (r#"떿"#, r#"떿"#, r#"떿"#, r#"떿"#, r#"떿"#),
+        (r#"뗀"#, r#"뗀"#, r#"뗀"#, r#"뗀"#, r#"뗀"#),
+        (r#"뗁"#, r#"뗁"#, r#"뗁"#, r#"뗁"#, r#"뗁"#),
+        (r#"뗂"#, r#"뗂"#, r#"뗂"#, r#"뗂"#, r#"뗂"#),
+        (r#"뗃"#, r#"뗃"#, r#"뗃"#, r#"뗃"#, r#"뗃"#),
+        (r#"뗄"#, r#"뗄"#, r#"뗄"#, r#"뗄"#, r#"뗄"#),
+        (r#"뗅"#, r#"뗅"#, r#"뗅"#, r#"뗅"#, r#"뗅"#),
+        (r#"뗆"#, r#"뗆"#, r#"뗆"#, r#"뗆"#, r#"뗆"#),
+        (r#"뗇"#, r#"뗇"#, r#"뗇"#, r#"뗇"#, r#"뗇"#),
+        (r#"뗈"#, r#"뗈"#, r#"뗈"#, r#"뗈"#, r#"뗈"#),
+        (r#"뗉"#, r#"뗉"#, r#"뗉"#, r#"뗉"#, r#"뗉"#),
+        (r#"뗊"#, r#"뗊"#, r#"뗊"#, r#"뗊"#, r#"뗊"#),
+        (r#"뗋"#, r#"뗋"#, r#"뗋"#, r#"뗋"#, r#"뗋"#),
+        (r#"뗌"#, r#"뗌"#, r#"뗌"#, r#"뗌"#, r#"뗌"#),
+        (r#"뗍"#, r#"뗍"#, r#"뗍"#, r#"뗍"#, r#"뗍"#),
+        (r#"뗎"#, r#"뗎"#, r#"뗎"#, r#"뗎"#, r#"뗎"#),
+        (r#"뗏"#, r#"뗏"#, r#"뗏"#, r#"뗏"#, r#"뗏"#),
+        (r#"뗐"#, r#"뗐"#, r#"뗐"#, r#"뗐"#, r#"뗐"#),
+        (r#"뗑"#, r#"뗑"#, r#"뗑"#, r#"뗑"#, r#"뗑"#),
+        (r#"뗒"#, r#"뗒"#, r#"뗒"#, r#"뗒"#, r#"뗒"#),
+        (r#"뗓"#, r#"뗓"#, r#"뗓"#, r#"뗓"#, r#"뗓"#),
+        (r#"뗔"#, r#"뗔"#, r#"뗔"#, r#"뗔"#, r#"뗔"#),
+        (r#"뗕"#, r#"뗕"#, r#"뗕"#, r#"뗕"#, r#"뗕"#),
+        (r#"뗖"#, r#"뗖"#, r#"뗖"#, r#"뗖"#, r#"뗖"#),
+        (r#"뗗"#, r#"뗗"#, r#"뗗"#, r#"뗗"#, r#"뗗"#),
+        (r#"뗘"#, r#"뗘"#, r#"뗘"#, r#"뗘"#, r#"뗘"#),
+        (r#"뗙"#, r#"뗙"#, r#"뗙"#, r#"뗙"#, r#"뗙"#),
+        (r#"뗚"#, r#"뗚"#, r#"뗚"#, r#"뗚"#, r#"뗚"#),
+        (r#"뗛"#, r#"뗛"#, r#"뗛"#, r#"뗛"#, r#"뗛"#),
+        (r#"뗜"#, r#"뗜"#, r#"뗜"#, r#"뗜"#, r#"뗜"#),
+        (r#"뗝"#, r#"뗝"#, r#"뗝"#, r#"뗝"#, r#"뗝"#),
+        (r#"뗞"#, r#"뗞"#, r#"뗞"#, r#"뗞"#, r#"뗞"#),
+        (r#"뗟"#, r#"뗟"#, r#"뗟"#, r#"뗟"#, r#"뗟"#),
+        (r#"뗠"#, r#"뗠"#, r#"뗠"#, r#"뗠"#, r#"뗠"#),
+        (r#"뗡"#, r#"뗡"#, r#"뗡"#, r#"뗡"#, r#"뗡"#),
+        (r#"뗢"#, r#"뗢"#, r#"뗢"#, r#"뗢"#, r#"뗢"#),
+        (r#"뗣"#, r#"뗣"#, r#"뗣"#, r#"뗣"#, r#"뗣"#),
+        (r#"뗤"#, r#"뗤"#, r#"뗤"#, r#"뗤"#, r#"뗤"#),
+        (r#"뗥"#, r#"뗥"#, r#"뗥"#, r#"뗥"#, r#"뗥"#),
+        (r#"뗦"#, r#"뗦"#, r#"뗦"#, r#"뗦"#, r#"뗦"#),
+        (r#"뗧"#, r#"뗧"#, r#"뗧"#, r#"뗧"#, r#"뗧"#),
+        (r#"뗨"#, r#"뗨"#, r#"뗨"#, r#"뗨"#, r#"뗨"#),
+        (r#"뗩"#, r#"뗩"#, r#"뗩"#, r#"뗩"#, r#"뗩"#),
+        (r#"뗪"#, r#"뗪"#, r#"뗪"#, r#"뗪"#, r#"뗪"#),
+        (r#"뗫"#, r#"뗫"#, r#"뗫"#, r#"뗫"#, r#"뗫"#),
+        (r#"뗬"#, r#"뗬"#, r#"뗬"#, r#"뗬"#, r#"뗬"#),
+        (r#"뗭"#, r#"뗭"#, r#"뗭"#, r#"뗭"#, r#"뗭"#),
+        (r#"뗮"#, r#"뗮"#, r#"뗮"#, r#"뗮"#, r#"뗮"#),
+        (r#"뗯"#, r#"뗯"#, r#"뗯"#, r#"뗯"#, r#"뗯"#),
+        (r#"뗰"#, r#"뗰"#, r#"뗰"#, r#"뗰"#, r#"뗰"#),
+        (r#"뗱"#, r#"뗱"#, r#"뗱"#, r#"뗱"#, r#"뗱"#),
+        (r#"뗲"#, r#"뗲"#, r#"뗲"#, r#"뗲"#, r#"뗲"#),
+        (r#"뗳"#, r#"뗳"#, r#"뗳"#, r#"뗳"#, r#"뗳"#),
+        (r#"뗴"#, r#"뗴"#, r#"뗴"#, r#"뗴"#, r#"뗴"#),
+        (r#"뗵"#, r#"뗵"#, r#"뗵"#, r#"뗵"#, r#"뗵"#),
+        (r#"뗶"#, r#"뗶"#, r#"뗶"#, r#"뗶"#, r#"뗶"#),
+        (r#"뗷"#, r#"뗷"#, r#"뗷"#, r#"뗷"#, r#"뗷"#),
+        (r#"뗸"#, r#"뗸"#, r#"뗸"#, r#"뗸"#, r#"뗸"#),
+        (r#"뗹"#, r#"뗹"#, r#"뗹"#, r#"뗹"#, r#"뗹"#),
+        (r#"뗺"#, r#"뗺"#, r#"뗺"#, r#"뗺"#, r#"뗺"#),
+        (r#"뗻"#, r#"뗻"#, r#"뗻"#, r#"뗻"#, r#"뗻"#),
+        (r#"뗼"#, r#"뗼"#, r#"뗼"#, r#"뗼"#, r#"뗼"#),
+        (r#"뗽"#, r#"뗽"#, r#"뗽"#, r#"뗽"#, r#"뗽"#),
+        (r#"뗾"#, r#"뗾"#, r#"뗾"#, r#"뗾"#, r#"뗾"#),
+        (r#"뗿"#, r#"뗿"#, r#"뗿"#, r#"뗿"#, r#"뗿"#),
+        (r#"똀"#, r#"똀"#, r#"똀"#, r#"똀"#, r#"똀"#),
+        (r#"똁"#, r#"똁"#, r#"똁"#, r#"똁"#, r#"똁"#),
+        (r#"똂"#, r#"똂"#, r#"똂"#, r#"똂"#, r#"똂"#),
+        (r#"똃"#, r#"똃"#, r#"똃"#, r#"똃"#, r#"똃"#),
+        (r#"똄"#, r#"똄"#, r#"똄"#, r#"똄"#, r#"똄"#),
+        (r#"똅"#, r#"똅"#, r#"똅"#, r#"똅"#, r#"똅"#),
+        (r#"똆"#, r#"똆"#, r#"똆"#, r#"똆"#, r#"똆"#),
+        (r#"똇"#, r#"똇"#, r#"똇"#, r#"똇"#, r#"똇"#),
+        (r#"똈"#, r#"똈"#, r#"똈"#, r#"똈"#, r#"똈"#),
+        (r#"똉"#, r#"똉"#, r#"똉"#, r#"똉"#, r#"똉"#),
+        (r#"똊"#, r#"똊"#, r#"똊"#, r#"똊"#, r#"똊"#),
+        (r#"똋"#, r#"똋"#, r#"똋"#, r#"똋"#, r#"똋"#),
+        (r#"똌"#, r#"똌"#, r#"똌"#, r#"똌"#, r#"똌"#),
+        (r#"똍"#, r#"똍"#, r#"똍"#, r#"똍"#, r#"똍"#),
+        (r#"똎"#, r#"똎"#, r#"똎"#, r#"똎"#, r#"똎"#),
+        (r#"똏"#, r#"똏"#, r#"똏"#, r#"똏"#, r#"똏"#),
+        (r#"또"#, r#"또"#, r#"또"#, r#"또"#, r#"또"#),
+        (r#"똑"#, r#"똑"#, r#"똑"#, r#"똑"#, r#"똑"#),
+        (r#"똒"#, r#"똒"#, r#"똒"#, r#"똒"#, r#"똒"#),
+        (r#"똓"#, r#"똓"#, r#"똓"#, r#"똓"#, r#"똓"#),
+        (r#"똔"#, r#"똔"#, r#"똔"#, r#"똔"#, r#"똔"#),
+        (r#"똕"#, r#"똕"#, r#"똕"#, r#"똕"#, r#"똕"#),
+        (r#"똖"#, r#"똖"#, r#"똖"#, r#"똖"#, r#"똖"#),
+        (r#"똗"#, r#"똗"#, r#"똗"#, r#"똗"#, r#"똗"#),
+        (r#"똘"#, r#"똘"#, r#"똘"#, r#"똘"#, r#"똘"#),
+        (r#"똙"#, r#"똙"#, r#"똙"#, r#"똙"#, r#"똙"#),
+        (r#"똚"#, r#"똚"#, r#"똚"#, r#"똚"#, r#"똚"#),
+        (r#"똛"#, r#"똛"#, r#"똛"#, r#"똛"#, r#"똛"#),
+        (r#"똜"#, r#"똜"#, r#"똜"#, r#"똜"#, r#"똜"#),
+        (r#"똝"#, r#"똝"#, r#"똝"#, r#"똝"#, r#"똝"#),
+        (r#"똞"#, r#"똞"#, r#"똞"#, r#"똞"#, r#"똞"#),
+        (r#"똟"#, r#"똟"#, r#"똟"#, r#"똟"#, r#"똟"#),
+        (r#"똠"#, r#"똠"#, r#"똠"#, r#"똠"#, r#"똠"#),
+        (r#"똡"#, r#"똡"#, r#"똡"#, r#"똡"#, r#"똡"#),
+        (r#"똢"#, r#"똢"#, r#"똢"#, r#"똢"#, r#"똢"#),
+        (r#"똣"#, r#"똣"#, r#"똣"#, r#"똣"#, r#"똣"#),
+        (r#"똤"#, r#"똤"#, r#"똤"#, r#"똤"#, r#"똤"#),
+        (r#"똥"#, r#"똥"#, r#"똥"#, r#"똥"#, r#"똥"#),
+        (r#"똦"#, r#"똦"#, r#"똦"#, r#"똦"#, r#"똦"#),
+        (r#"똧"#, r#"똧"#, r#"똧"#, r#"똧"#, r#"똧"#),
+        (r#"똨"#, r#"똨"#, r#"똨"#, r#"똨"#, r#"똨"#),
+        (r#"똩"#, r#"똩"#, r#"똩"#, r#"똩"#, r#"똩"#),
+        (r#"똪"#, r#"똪"#, r#"똪"#, r#"똪"#, r#"똪"#),
+        (r#"똫"#, r#"똫"#, r#"똫"#, r#"똫"#, r#"똫"#),
+        (r#"똬"#, r#"똬"#, r#"똬"#, r#"똬"#, r#"똬"#),
+        (r#"똭"#, r#"똭"#, r#"똭"#, r#"똭"#, r#"똭"#),
+        (r#"똮"#, r#"똮"#, r#"똮"#, r#"똮"#, r#"똮"#),
+        (r#"똯"#, r#"똯"#, r#"똯"#, r#"똯"#, r#"똯"#),
+        (r#"똰"#, r#"똰"#, r#"똰"#, r#"똰"#, r#"똰"#),
+        (r#"똱"#, r#"똱"#, r#"똱"#, r#"똱"#, r#"똱"#),
+        (r#"똲"#, r#"똲"#, r#"똲"#, r#"똲"#, r#"똲"#),
+        (r#"똳"#, r#"똳"#, r#"똳"#, r#"똳"#, r#"똳"#),
+        (r#"똴"#, r#"똴"#, r#"똴"#, r#"똴"#, r#"똴"#),
+        (r#"똵"#, r#"똵"#, r#"똵"#, r#"똵"#, r#"똵"#),
+        (r#"똶"#, r#"똶"#, r#"똶"#, r#"똶"#, r#"똶"#),
+        (r#"똷"#, r#"똷"#, r#"똷"#, r#"똷"#, r#"똷"#),
+        (r#"똸"#, r#"똸"#, r#"똸"#, r#"똸"#, r#"똸"#),
+        (r#"똹"#, r#"똹"#, r#"똹"#, r#"똹"#, r#"똹"#),
+        (r#"똺"#, r#"똺"#, r#"똺"#, r#"똺"#, r#"똺"#),
+        (r#"똻"#, r#"똻"#, r#"똻"#, r#"똻"#, r#"똻"#),
+        (r#"똼"#, r#"똼"#, r#"똼"#, r#"똼"#, r#"똼"#),
+        (r#"똽"#, r#"똽"#, r#"똽"#, r#"똽"#, r#"똽"#),
+        (r#"똾"#, r#"똾"#, r#"똾"#, r#"똾"#, r#"똾"#),
+        (r#"똿"#, r#"똿"#, r#"똿"#, r#"똿"#, r#"똿"#),
+        (r#"뙀"#, r#"뙀"#, r#"뙀"#, r#"뙀"#, r#"뙀"#),
+        (r#"뙁"#, r#"뙁"#, r#"뙁"#, r#"뙁"#, r#"뙁"#),
+        (r#"뙂"#, r#"뙂"#, r#"뙂"#, r#"뙂"#, r#"뙂"#),
+        (r#"뙃"#, r#"뙃"#, r#"뙃"#, r#"뙃"#, r#"뙃"#),
+        (r#"뙄"#, r#"뙄"#, r#"뙄"#, r#"뙄"#, r#"뙄"#),
+        (r#"뙅"#, r#"뙅"#, r#"뙅"#, r#"뙅"#, r#"뙅"#),
+        (r#"뙆"#, r#"뙆"#, r#"뙆"#, r#"뙆"#, r#"뙆"#),
+        (r#"뙇"#, r#"뙇"#, r#"뙇"#, r#"뙇"#, r#"뙇"#),
+        (r#"뙈"#, r#"뙈"#, r#"뙈"#, r#"뙈"#, r#"뙈"#),
+        (r#"뙉"#, r#"뙉"#, r#"뙉"#, r#"뙉"#, r#"뙉"#),
+        (r#"뙊"#, r#"뙊"#, r#"뙊"#, r#"뙊"#, r#"뙊"#),
+        (r#"뙋"#, r#"뙋"#, r#"뙋"#, r#"뙋"#, r#"뙋"#),
+        (r#"뙌"#, r#"뙌"#, r#"뙌"#, r#"뙌"#, r#"뙌"#),
+        (r#"뙍"#, r#"뙍"#, r#"뙍"#, r#"뙍"#, r#"뙍"#),
+        (r#"뙎"#, r#"뙎"#, r#"뙎"#, r#"뙎"#, r#"뙎"#),
+        (r#"뙏"#, r#"뙏"#, r#"뙏"#, r#"뙏"#, r#"뙏"#),
+        (r#"뙐"#, r#"뙐"#, r#"뙐"#, r#"뙐"#, r#"뙐"#),
+        (r#"뙑"#, r#"뙑"#, r#"뙑"#, r#"뙑"#, r#"뙑"#),
+        (r#"뙒"#, r#"뙒"#, r#"뙒"#, r#"뙒"#, r#"뙒"#),
+        (r#"뙓"#, r#"뙓"#, r#"뙓"#, r#"뙓"#, r#"뙓"#),
+        (r#"뙔"#, r#"뙔"#, r#"뙔"#, r#"뙔"#, r#"뙔"#),
+        (r#"뙕"#, r#"뙕"#, r#"뙕"#, r#"뙕"#, r#"뙕"#),
+        (r#"뙖"#, r#"뙖"#, r#"뙖"#, r#"뙖"#, r#"뙖"#),
+        (r#"뙗"#, r#"뙗"#, r#"뙗"#, r#"뙗"#, r#"뙗"#),
+        (r#"뙘"#, r#"뙘"#, r#"뙘"#, r#"뙘"#, r#"뙘"#),
+        (r#"뙙"#, r#"뙙"#, r#"뙙"#, r#"뙙"#, r#"뙙"#),
+        (r#"뙚"#, r#"뙚"#, r#"뙚"#, r#"뙚"#, r#"뙚"#),
+        (r#"뙛"#, r#"뙛"#, r#"뙛"#, r#"뙛"#, r#"뙛"#),
+        (r#"뙜"#, r#"뙜"#, r#"뙜"#, r#"뙜"#, r#"뙜"#),
+        (r#"뙝"#, r#"뙝"#, r#"뙝"#, r#"뙝"#, r#"뙝"#),
+        (r#"뙞"#, r#"뙞"#, r#"뙞"#, r#"뙞"#, r#"뙞"#),
+        (r#"뙟"#, r#"뙟"#, r#"뙟"#, r#"뙟"#, r#"뙟"#),
+        (r#"뙠"#, r#"뙠"#, r#"뙠"#, r#"뙠"#, r#"뙠"#),
+        (r#"뙡"#, r#"뙡"#, r#"뙡"#, r#"뙡"#, r#"뙡"#),
+        (r#"뙢"#, r#"뙢"#, r#"뙢"#, r#"뙢"#, r#"뙢"#),
+        (r#"뙣"#, r#"뙣"#, r#"뙣"#, r#"뙣"#, r#"뙣"#),
+        (r#"뙤"#, r#"뙤"#, r#"뙤"#, r#"뙤"#, r#"뙤"#),
+        (r#"뙥"#, r#"뙥"#, r#"뙥"#, r#"뙥"#, r#"뙥"#),
+        (r#"뙦"#, r#"뙦"#, r#"뙦"#, r#"뙦"#, r#"뙦"#),
+        (r#"뙧"#, r#"뙧"#, r#"뙧"#, r#"뙧"#, r#"뙧"#),
+        (r#"뙨"#, r#"뙨"#, r#"뙨"#, r#"뙨"#, r#"뙨"#),
+        (r#"뙩"#, r#"뙩"#, r#"뙩"#, r#"뙩"#, r#"뙩"#),
+        (r#"뙪"#, r#"뙪"#, r#"뙪"#, r#"뙪"#, r#"뙪"#),
+        (r#"뙫"#, r#"뙫"#, r#"뙫"#, r#"뙫"#, r#"뙫"#),
+        (r#"뙬"#, r#"뙬"#, r#"뙬"#, r#"뙬"#, r#"뙬"#),
+        (r#"뙭"#, r#"뙭"#, r#"뙭"#, r#"뙭"#, r#"뙭"#),
+        (r#"뙮"#, r#"뙮"#, r#"뙮"#, r#"뙮"#, r#"뙮"#),
+        (r#"뙯"#, r#"뙯"#, r#"뙯"#, r#"뙯"#, r#"뙯"#),
+        (r#"뙰"#, r#"뙰"#, r#"뙰"#, r#"뙰"#, r#"뙰"#),
+        (r#"뙱"#, r#"뙱"#, r#"뙱"#, r#"뙱"#, r#"뙱"#),
+        (r#"뙲"#, r#"뙲"#, r#"뙲"#, r#"뙲"#, r#"뙲"#),
+        (r#"뙳"#, r#"뙳"#, r#"뙳"#, r#"뙳"#, r#"뙳"#),
+        (r#"뙴"#, r#"뙴"#, r#"뙴"#, r#"뙴"#, r#"뙴"#),
+        (r#"뙵"#, r#"뙵"#, r#"뙵"#, r#"뙵"#, r#"뙵"#),
+        (r#"뙶"#, r#"뙶"#, r#"뙶"#, r#"뙶"#, r#"뙶"#),
+        (r#"뙷"#, r#"뙷"#, r#"뙷"#, r#"뙷"#, r#"뙷"#),
+        (r#"뙸"#, r#"뙸"#, r#"뙸"#, r#"뙸"#, r#"뙸"#),
+        (r#"뙹"#, r#"뙹"#, r#"뙹"#, r#"뙹"#, r#"뙹"#),
+        (r#"뙺"#, r#"뙺"#, r#"뙺"#, r#"뙺"#, r#"뙺"#),
+        (r#"뙻"#, r#"뙻"#, r#"뙻"#, r#"뙻"#, r#"뙻"#),
+        (r#"뙼"#, r#"뙼"#, r#"뙼"#, r#"뙼"#, r#"뙼"#),
+        (r#"뙽"#, r#"뙽"#, r#"뙽"#, r#"뙽"#, r#"뙽"#),
+        (r#"뙾"#, r#"뙾"#, r#"뙾"#, r#"뙾"#, r#"뙾"#),
+        (r#"뙿"#, r#"뙿"#, r#"뙿"#, r#"뙿"#, r#"뙿"#),
+        (r#"뚀"#, r#"뚀"#, r#"뚀"#, r#"뚀"#, r#"뚀"#),
+        (r#"뚁"#, r#"뚁"#, r#"뚁"#, r#"뚁"#, r#"뚁"#),
+        (r#"뚂"#, r#"뚂"#, r#"뚂"#, r#"뚂"#, r#"뚂"#),
+        (r#"뚃"#, r#"뚃"#, r#"뚃"#, r#"뚃"#, r#"뚃"#),
+        (r#"뚄"#, r#"뚄"#, r#"뚄"#, r#"뚄"#, r#"뚄"#),
+        (r#"뚅"#, r#"뚅"#, r#"뚅"#, r#"뚅"#, r#"뚅"#),
+        (r#"뚆"#, r#"뚆"#, r#"뚆"#, r#"뚆"#, r#"뚆"#),
+        (r#"뚇"#, r#"뚇"#, r#"뚇"#, r#"뚇"#, r#"뚇"#),
+        (r#"뚈"#, r#"뚈"#, r#"뚈"#, r#"뚈"#, r#"뚈"#),
+        (r#"뚉"#, r#"뚉"#, r#"뚉"#, r#"뚉"#, r#"뚉"#),
+        (r#"뚊"#, r#"뚊"#, r#"뚊"#, r#"뚊"#, r#"뚊"#),
+        (r#"뚋"#, r#"뚋"#, r#"뚋"#, r#"뚋"#, r#"뚋"#),
+        (r#"뚌"#, r#"뚌"#, r#"뚌"#, r#"뚌"#, r#"뚌"#),
+        (r#"뚍"#, r#"뚍"#, r#"뚍"#, r#"뚍"#, r#"뚍"#),
+        (r#"뚎"#, r#"뚎"#, r#"뚎"#, r#"뚎"#, r#"뚎"#),
+        (r#"뚏"#, r#"뚏"#, r#"뚏"#, r#"뚏"#, r#"뚏"#),
+        (r#"뚐"#, r#"뚐"#, r#"뚐"#, r#"뚐"#, r#"뚐"#),
+        (r#"뚑"#, r#"뚑"#, r#"뚑"#, r#"뚑"#, r#"뚑"#),
+        (r#"뚒"#, r#"뚒"#, r#"뚒"#, r#"뚒"#, r#"뚒"#),
+        (r#"뚓"#, r#"뚓"#, r#"뚓"#, r#"뚓"#, r#"뚓"#),
+        (r#"뚔"#, r#"뚔"#, r#"뚔"#, r#"뚔"#, r#"뚔"#),
+        (r#"뚕"#, r#"뚕"#, r#"뚕"#, r#"뚕"#, r#"뚕"#),
+        (r#"뚖"#, r#"뚖"#, r#"뚖"#, r#"뚖"#, r#"뚖"#),
+        (r#"뚗"#, r#"뚗"#, r#"뚗"#, r#"뚗"#, r#"뚗"#),
+        (r#"뚘"#, r#"뚘"#, r#"뚘"#, r#"뚘"#, r#"뚘"#),
+        (r#"뚙"#, r#"뚙"#, r#"뚙"#, r#"뚙"#, r#"뚙"#),
+        (r#"뚚"#, r#"뚚"#, r#"뚚"#, r#"뚚"#, r#"뚚"#),
+        (r#"뚛"#, r#"뚛"#, r#"뚛"#, r#"뚛"#, r#"뚛"#),
+        (r#"뚜"#, r#"뚜"#, r#"뚜"#, r#"뚜"#, r#"뚜"#),
+        (r#"뚝"#, r#"뚝"#, r#"뚝"#, r#"뚝"#, r#"뚝"#),
+        (r#"뚞"#, r#"뚞"#, r#"뚞"#, r#"뚞"#, r#"뚞"#),
+        (r#"뚟"#, r#"뚟"#, r#"뚟"#, r#"뚟"#, r#"뚟"#),
+        (r#"뚠"#, r#"뚠"#, r#"뚠"#, r#"뚠"#, r#"뚠"#),
+        (r#"뚡"#, r#"뚡"#, r#"뚡"#, r#"뚡"#, r#"뚡"#),
+        (r#"뚢"#, r#"뚢"#, r#"뚢"#, r#"뚢"#, r#"뚢"#),
+        (r#"뚣"#, r#"뚣"#, r#"뚣"#, r#"뚣"#, r#"뚣"#),
+        (r#"뚤"#, r#"뚤"#, r#"뚤"#, r#"뚤"#, r#"뚤"#),
+        (r#"뚥"#, r#"뚥"#, r#"뚥"#, r#"뚥"#, r#"뚥"#),
+        (r#"뚦"#, r#"뚦"#, r#"뚦"#, r#"뚦"#, r#"뚦"#),
+        (r#"뚧"#, r#"뚧"#, r#"뚧"#, r#"뚧"#, r#"뚧"#),
+        (r#"뚨"#, r#"뚨"#, r#"뚨"#, r#"뚨"#, r#"뚨"#),
+        (r#"뚩"#, r#"뚩"#, r#"뚩"#, r#"뚩"#, r#"뚩"#),
+        (r#"뚪"#, r#"뚪"#, r#"뚪"#, r#"뚪"#, r#"뚪"#),
+        (r#"뚫"#, r#"뚫"#, r#"뚫"#, r#"뚫"#, r#"뚫"#),
+        (r#"뚬"#, r#"뚬"#, r#"뚬"#, r#"뚬"#, r#"뚬"#),
+        (r#"뚭"#, r#"뚭"#, r#"뚭"#, r#"뚭"#, r#"뚭"#),
+        (r#"뚮"#, r#"뚮"#, r#"뚮"#, r#"뚮"#, r#"뚮"#),
+        (r#"뚯"#, r#"뚯"#, r#"뚯"#, r#"뚯"#, r#"뚯"#),
+        (r#"뚰"#, r#"뚰"#, r#"뚰"#, r#"뚰"#, r#"뚰"#),
+        (r#"뚱"#, r#"뚱"#, r#"뚱"#, r#"뚱"#, r#"뚱"#),
+        (r#"뚲"#, r#"뚲"#, r#"뚲"#, r#"뚲"#, r#"뚲"#),
+        (r#"뚳"#, r#"뚳"#, r#"뚳"#, r#"뚳"#, r#"뚳"#),
+        (r#"뚴"#, r#"뚴"#, r#"뚴"#, r#"뚴"#, r#"뚴"#),
+        (r#"뚵"#, r#"뚵"#, r#"뚵"#, r#"뚵"#, r#"뚵"#),
+        (r#"뚶"#, r#"뚶"#, r#"뚶"#, r#"뚶"#, r#"뚶"#),
+        (r#"뚷"#, r#"뚷"#, r#"뚷"#, r#"뚷"#, r#"뚷"#),
+        (r#"뚸"#, r#"뚸"#, r#"뚸"#, r#"뚸"#, r#"뚸"#),
+        (r#"뚹"#, r#"뚹"#, r#"뚹"#, r#"뚹"#, r#"뚹"#),
+        (r#"뚺"#, r#"뚺"#, r#"뚺"#, r#"뚺"#, r#"뚺"#),
+        (r#"뚻"#, r#"뚻"#, r#"뚻"#, r#"뚻"#, r#"뚻"#),
+        (r#"뚼"#, r#"뚼"#, r#"뚼"#, r#"뚼"#, r#"뚼"#),
+        (r#"뚽"#, r#"뚽"#, r#"뚽"#, r#"뚽"#, r#"뚽"#),
+        (r#"뚾"#, r#"뚾"#, r#"뚾"#, r#"뚾"#, r#"뚾"#),
+        (r#"뚿"#, r#"뚿"#, r#"뚿"#, r#"뚿"#, r#"뚿"#),
+        (r#"뛀"#, r#"뛀"#, r#"뛀"#, r#"뛀"#, r#"뛀"#),
+        (r#"뛁"#, r#"뛁"#, r#"뛁"#, r#"뛁"#, r#"뛁"#),
+        (r#"뛂"#, r#"뛂"#, r#"뛂"#, r#"뛂"#, r#"뛂"#),
+        (r#"뛃"#, r#"뛃"#, r#"뛃"#, r#"뛃"#, r#"뛃"#),
+        (r#"뛄"#, r#"뛄"#, r#"뛄"#, r#"뛄"#, r#"뛄"#),
+        (r#"뛅"#, r#"뛅"#, r#"뛅"#, r#"뛅"#, r#"뛅"#),
+        (r#"뛆"#, r#"뛆"#, r#"뛆"#, r#"뛆"#, r#"뛆"#),
+        (r#"뛇"#, r#"뛇"#, r#"뛇"#, r#"뛇"#, r#"뛇"#),
+        (r#"뛈"#, r#"뛈"#, r#"뛈"#, r#"뛈"#, r#"뛈"#),
+        (r#"뛉"#, r#"뛉"#, r#"뛉"#, r#"뛉"#, r#"뛉"#),
+        (r#"뛊"#, r#"뛊"#, r#"뛊"#, r#"뛊"#, r#"뛊"#),
+        (r#"뛋"#, r#"뛋"#, r#"뛋"#, r#"뛋"#, r#"뛋"#),
+        (r#"뛌"#, r#"뛌"#, r#"뛌"#, r#"뛌"#, r#"뛌"#),
+        (r#"뛍"#, r#"뛍"#, r#"뛍"#, r#"뛍"#, r#"뛍"#),
+        (r#"뛎"#, r#"뛎"#, r#"뛎"#, r#"뛎"#, r#"뛎"#),
+        (r#"뛏"#, r#"뛏"#, r#"뛏"#, r#"뛏"#, r#"뛏"#),
+        (r#"뛐"#, r#"뛐"#, r#"뛐"#, r#"뛐"#, r#"뛐"#),
+        (r#"뛑"#, r#"뛑"#, r#"뛑"#, r#"뛑"#, r#"뛑"#),
+        (r#"뛒"#, r#"뛒"#, r#"뛒"#, r#"뛒"#, r#"뛒"#),
+        (r#"뛓"#, r#"뛓"#, r#"뛓"#, r#"뛓"#, r#"뛓"#),
+        (r#"뛔"#, r#"뛔"#, r#"뛔"#, r#"뛔"#, r#"뛔"#),
+        (r#"뛕"#, r#"뛕"#, r#"뛕"#, r#"뛕"#, r#"뛕"#),
+        (r#"뛖"#, r#"뛖"#, r#"뛖"#, r#"뛖"#, r#"뛖"#),
+        (r#"뛗"#, r#"뛗"#, r#"뛗"#, r#"뛗"#, r#"뛗"#),
+        (r#"뛘"#, r#"뛘"#, r#"뛘"#, r#"뛘"#, r#"뛘"#),
+        (r#"뛙"#, r#"뛙"#, r#"뛙"#, r#"뛙"#, r#"뛙"#),
+        (r#"뛚"#, r#"뛚"#, r#"뛚"#, r#"뛚"#, r#"뛚"#),
+        (r#"뛛"#, r#"뛛"#, r#"뛛"#, r#"뛛"#, r#"뛛"#),
+        (r#"뛜"#, r#"뛜"#, r#"뛜"#, r#"뛜"#, r#"뛜"#),
+        (r#"뛝"#, r#"뛝"#, r#"뛝"#, r#"뛝"#, r#"뛝"#),
+        (r#"뛞"#, r#"뛞"#, r#"뛞"#, r#"뛞"#, r#"뛞"#),
+        (r#"뛟"#, r#"뛟"#, r#"뛟"#, r#"뛟"#, r#"뛟"#),
+        (r#"뛠"#, r#"뛠"#, r#"뛠"#, r#"뛠"#, r#"뛠"#),
+        (r#"뛡"#, r#"뛡"#, r#"뛡"#, r#"뛡"#, r#"뛡"#),
+        (r#"뛢"#, r#"뛢"#, r#"뛢"#, r#"뛢"#, r#"뛢"#),
+        (r#"뛣"#, r#"뛣"#, r#"뛣"#, r#"뛣"#, r#"뛣"#),
+        (r#"뛤"#, r#"뛤"#, r#"뛤"#, r#"뛤"#, r#"뛤"#),
+        (r#"뛥"#, r#"뛥"#, r#"뛥"#, r#"뛥"#, r#"뛥"#),
+        (r#"뛦"#, r#"뛦"#, r#"뛦"#, r#"뛦"#, r#"뛦"#),
+        (r#"뛧"#, r#"뛧"#, r#"뛧"#, r#"뛧"#, r#"뛧"#),
+        (r#"뛨"#, r#"뛨"#, r#"뛨"#, r#"뛨"#, r#"뛨"#),
+        (r#"뛩"#, r#"뛩"#, r#"뛩"#, r#"뛩"#, r#"뛩"#),
+        (r#"뛪"#, r#"뛪"#, r#"뛪"#, r#"뛪"#, r#"뛪"#),
+        (r#"뛫"#, r#"뛫"#, r#"뛫"#, r#"뛫"#, r#"뛫"#),
+        (r#"뛬"#, r#"뛬"#, r#"뛬"#, r#"뛬"#, r#"뛬"#),
+        (r#"뛭"#, r#"뛭"#, r#"뛭"#, r#"뛭"#, r#"뛭"#),
+        (r#"뛮"#, r#"뛮"#, r#"뛮"#, r#"뛮"#, r#"뛮"#),
+        (r#"뛯"#, r#"뛯"#, r#"뛯"#, r#"뛯"#, r#"뛯"#),
+        (r#"뛰"#, r#"뛰"#, r#"뛰"#, r#"뛰"#, r#"뛰"#),
+        (r#"뛱"#, r#"뛱"#, r#"뛱"#, r#"뛱"#, r#"뛱"#),
+        (r#"뛲"#, r#"뛲"#, r#"뛲"#, r#"뛲"#, r#"뛲"#),
+        (r#"뛳"#, r#"뛳"#, r#"뛳"#, r#"뛳"#, r#"뛳"#),
+        (r#"뛴"#, r#"뛴"#, r#"뛴"#, r#"뛴"#, r#"뛴"#),
+        (r#"뛵"#, r#"뛵"#, r#"뛵"#, r#"뛵"#, r#"뛵"#),
+        (r#"뛶"#, r#"뛶"#, r#"뛶"#, r#"뛶"#, r#"뛶"#),
+        (r#"뛷"#, r#"뛷"#, r#"뛷"#, r#"뛷"#, r#"뛷"#),
+        (r#"뛸"#, r#"뛸"#, r#"뛸"#, r#"뛸"#, r#"뛸"#),
+        (r#"뛹"#, r#"뛹"#, r#"뛹"#, r#"뛹"#, r#"뛹"#),
+        (r#"뛺"#, r#"뛺"#, r#"뛺"#, r#"뛺"#, r#"뛺"#),
+        (r#"뛻"#, r#"뛻"#, r#"뛻"#, r#"뛻"#, r#"뛻"#),
+        (r#"뛼"#, r#"뛼"#, r#"뛼"#, r#"뛼"#, r#"뛼"#),
+        (r#"뛽"#, r#"뛽"#, r#"뛽"#, r#"뛽"#, r#"뛽"#),
+        (r#"뛾"#, r#"뛾"#, r#"뛾"#, r#"뛾"#, r#"뛾"#),
+        (r#"뛿"#, r#"뛿"#, r#"뛿"#, r#"뛿"#, r#"뛿"#),
+        (r#"뜀"#, r#"뜀"#, r#"뜀"#, r#"뜀"#, r#"뜀"#),
+        (r#"뜁"#, r#"뜁"#, r#"뜁"#, r#"뜁"#, r#"뜁"#),
+        (r#"뜂"#, r#"뜂"#, r#"뜂"#, r#"뜂"#, r#"뜂"#),
+        (r#"뜃"#, r#"뜃"#, r#"뜃"#, r#"뜃"#, r#"뜃"#),
+        (r#"뜄"#, r#"뜄"#, r#"뜄"#, r#"뜄"#, r#"뜄"#),
+        (r#"뜅"#, r#"뜅"#, r#"뜅"#, r#"뜅"#, r#"뜅"#),
+        (r#"뜆"#, r#"뜆"#, r#"뜆"#, r#"뜆"#, r#"뜆"#),
+        (r#"뜇"#, r#"뜇"#, r#"뜇"#, r#"뜇"#, r#"뜇"#),
+        (r#"뜈"#, r#"뜈"#, r#"뜈"#, r#"뜈"#, r#"뜈"#),
+        (r#"뜉"#, r#"뜉"#, r#"뜉"#, r#"뜉"#, r#"뜉"#),
+        (r#"뜊"#, r#"뜊"#, r#"뜊"#, r#"뜊"#, r#"뜊"#),
+        (r#"뜋"#, r#"뜋"#, r#"뜋"#, r#"뜋"#, r#"뜋"#),
+        (r#"뜌"#, r#"뜌"#, r#"뜌"#, r#"뜌"#, r#"뜌"#),
+        (r#"뜍"#, r#"뜍"#, r#"뜍"#, r#"뜍"#, r#"뜍"#),
+        (r#"뜎"#, r#"뜎"#, r#"뜎"#, r#"뜎"#, r#"뜎"#),
+        (r#"뜏"#, r#"뜏"#, r#"뜏"#, r#"뜏"#, r#"뜏"#),
+        (r#"뜐"#, r#"뜐"#, r#"뜐"#, r#"뜐"#, r#"뜐"#),
+        (r#"뜑"#, r#"뜑"#, r#"뜑"#, r#"뜑"#, r#"뜑"#),
+        (r#"뜒"#, r#"뜒"#, r#"뜒"#, r#"뜒"#, r#"뜒"#),
+        (r#"뜓"#, r#"뜓"#, r#"뜓"#, r#"뜓"#, r#"뜓"#),
+        (r#"뜔"#, r#"뜔"#, r#"뜔"#, r#"뜔"#, r#"뜔"#),
+        (r#"뜕"#, r#"뜕"#, r#"뜕"#, r#"뜕"#, r#"뜕"#),
+        (r#"뜖"#, r#"뜖"#, r#"뜖"#, r#"뜖"#, r#"뜖"#),
+        (r#"뜗"#, r#"뜗"#, r#"뜗"#, r#"뜗"#, r#"뜗"#),
+        (r#"뜘"#, r#"뜘"#, r#"뜘"#, r#"뜘"#, r#"뜘"#),
+        (r#"뜙"#, r#"뜙"#, r#"뜙"#, r#"뜙"#, r#"뜙"#),
+        (r#"뜚"#, r#"뜚"#, r#"뜚"#, r#"뜚"#, r#"뜚"#),
+        (r#"뜛"#, r#"뜛"#, r#"뜛"#, r#"뜛"#, r#"뜛"#),
+        (r#"뜜"#, r#"뜜"#, r#"뜜"#, r#"뜜"#, r#"뜜"#),
+        (r#"뜝"#, r#"뜝"#, r#"뜝"#, r#"뜝"#, r#"뜝"#),
+        (r#"뜞"#, r#"뜞"#, r#"뜞"#, r#"뜞"#, r#"뜞"#),
+        (r#"뜟"#, r#"뜟"#, r#"뜟"#, r#"뜟"#, r#"뜟"#),
+        (r#"뜠"#, r#"뜠"#, r#"뜠"#, r#"뜠"#, r#"뜠"#),
+        (r#"뜡"#, r#"뜡"#, r#"뜡"#, r#"뜡"#, r#"뜡"#),
+        (r#"뜢"#, r#"뜢"#, r#"뜢"#, r#"뜢"#, r#"뜢"#),
+        (r#"뜣"#, r#"뜣"#, r#"뜣"#, r#"뜣"#, r#"뜣"#),
+        (r#"뜤"#, r#"뜤"#, r#"뜤"#, r#"뜤"#, r#"뜤"#),
+        (r#"뜥"#, r#"뜥"#, r#"뜥"#, r#"뜥"#, r#"뜥"#),
+        (r#"뜦"#, r#"뜦"#, r#"뜦"#, r#"뜦"#, r#"뜦"#),
+        (r#"뜧"#, r#"뜧"#, r#"뜧"#, r#"뜧"#, r#"뜧"#),
+        (r#"뜨"#, r#"뜨"#, r#"뜨"#, r#"뜨"#, r#"뜨"#),
+        (r#"뜩"#, r#"뜩"#, r#"뜩"#, r#"뜩"#, r#"뜩"#),
+        (r#"뜪"#, r#"뜪"#, r#"뜪"#, r#"뜪"#, r#"뜪"#),
+        (r#"뜫"#, r#"뜫"#, r#"뜫"#, r#"뜫"#, r#"뜫"#),
+        (r#"뜬"#, r#"뜬"#, r#"뜬"#, r#"뜬"#, r#"뜬"#),
+        (r#"뜭"#, r#"뜭"#, r#"뜭"#, r#"뜭"#, r#"뜭"#),
+        (r#"뜮"#, r#"뜮"#, r#"뜮"#, r#"뜮"#, r#"뜮"#),
+        (r#"뜯"#, r#"뜯"#, r#"뜯"#, r#"뜯"#, r#"뜯"#),
+        (r#"뜰"#, r#"뜰"#, r#"뜰"#, r#"뜰"#, r#"뜰"#),
+        (r#"뜱"#, r#"뜱"#, r#"뜱"#, r#"뜱"#, r#"뜱"#),
+        (r#"뜲"#, r#"뜲"#, r#"뜲"#, r#"뜲"#, r#"뜲"#),
+        (r#"뜳"#, r#"뜳"#, r#"뜳"#, r#"뜳"#, r#"뜳"#),
+        (r#"뜴"#, r#"뜴"#, r#"뜴"#, r#"뜴"#, r#"뜴"#),
+        (r#"뜵"#, r#"뜵"#, r#"뜵"#, r#"뜵"#, r#"뜵"#),
+        (r#"뜶"#, r#"뜶"#, r#"뜶"#, r#"뜶"#, r#"뜶"#),
+        (r#"뜷"#, r#"뜷"#, r#"뜷"#, r#"뜷"#, r#"뜷"#),
+        (r#"뜸"#, r#"뜸"#, r#"뜸"#, r#"뜸"#, r#"뜸"#),
+        (r#"뜹"#, r#"뜹"#, r#"뜹"#, r#"뜹"#, r#"뜹"#),
+        (r#"뜺"#, r#"뜺"#, r#"뜺"#, r#"뜺"#, r#"뜺"#),
+        (r#"뜻"#, r#"뜻"#, r#"뜻"#, r#"뜻"#, r#"뜻"#),
+        (r#"뜼"#, r#"뜼"#, r#"뜼"#, r#"뜼"#, r#"뜼"#),
+        (r#"뜽"#, r#"뜽"#, r#"뜽"#, r#"뜽"#, r#"뜽"#),
+        (r#"뜾"#, r#"뜾"#, r#"뜾"#, r#"뜾"#, r#"뜾"#),
+        (r#"뜿"#, r#"뜿"#, r#"뜿"#, r#"뜿"#, r#"뜿"#),
+        (r#"띀"#, r#"띀"#, r#"띀"#, r#"띀"#, r#"띀"#),
+        (r#"띁"#, r#"띁"#, r#"띁"#, r#"띁"#, r#"띁"#),
+        (r#"띂"#, r#"띂"#, r#"띂"#, r#"띂"#, r#"띂"#),
+        (r#"띃"#, r#"띃"#, r#"띃"#, r#"띃"#, r#"띃"#),
+        (r#"띄"#, r#"띄"#, r#"띄"#, r#"띄"#, r#"띄"#),
+        (r#"띅"#, r#"띅"#, r#"띅"#, r#"띅"#, r#"띅"#),
+        (r#"띆"#, r#"띆"#, r#"띆"#, r#"띆"#, r#"띆"#),
+        (r#"띇"#, r#"띇"#, r#"띇"#, r#"띇"#, r#"띇"#),
+        (r#"띈"#, r#"띈"#, r#"띈"#, r#"띈"#, r#"띈"#),
+        (r#"띉"#, r#"띉"#, r#"띉"#, r#"띉"#, r#"띉"#),
+        (r#"띊"#, r#"띊"#, r#"띊"#, r#"띊"#, r#"띊"#),
+        (r#"띋"#, r#"띋"#, r#"띋"#, r#"띋"#, r#"띋"#),
+        (r#"띌"#, r#"띌"#, r#"띌"#, r#"띌"#, r#"띌"#),
+        (r#"띍"#, r#"띍"#, r#"띍"#, r#"띍"#, r#"띍"#),
+        (r#"띎"#, r#"띎"#, r#"띎"#, r#"띎"#, r#"띎"#),
+        (r#"띏"#, r#"띏"#, r#"띏"#, r#"띏"#, r#"띏"#),
+        (r#"띐"#, r#"띐"#, r#"띐"#, r#"띐"#, r#"띐"#),
+        (r#"띑"#, r#"띑"#, r#"띑"#, r#"띑"#, r#"띑"#),
+        (r#"띒"#, r#"띒"#, r#"띒"#, r#"띒"#, r#"띒"#),
+        (r#"띓"#, r#"띓"#, r#"띓"#, r#"띓"#, r#"띓"#),
+        (r#"띔"#, r#"띔"#, r#"띔"#, r#"띔"#, r#"띔"#),
+        (r#"띕"#, r#"띕"#, r#"띕"#, r#"띕"#, r#"띕"#),
+        (r#"띖"#, r#"띖"#, r#"띖"#, r#"띖"#, r#"띖"#),
+        (r#"띗"#, r#"띗"#, r#"띗"#, r#"띗"#, r#"띗"#),
+        (r#"띘"#, r#"띘"#, r#"띘"#, r#"띘"#, r#"띘"#),
+        (r#"띙"#, r#"띙"#, r#"띙"#, r#"띙"#, r#"띙"#),
+        (r#"띚"#, r#"띚"#, r#"띚"#, r#"띚"#, r#"띚"#),
+        (r#"띛"#, r#"띛"#, r#"띛"#, r#"띛"#, r#"띛"#),
+        (r#"띜"#, r#"띜"#, r#"띜"#, r#"띜"#, r#"띜"#),
+        (r#"띝"#, r#"띝"#, r#"띝"#, r#"띝"#, r#"띝"#),
+        (r#"띞"#, r#"띞"#, r#"띞"#, r#"띞"#, r#"띞"#),
+        (r#"띟"#, r#"띟"#, r#"띟"#, r#"띟"#, r#"띟"#),
+        (r#"띠"#, r#"띠"#, r#"띠"#, r#"띠"#, r#"띠"#),
+        (r#"띡"#, r#"띡"#, r#"띡"#, r#"띡"#, r#"띡"#),
+        (r#"띢"#, r#"띢"#, r#"띢"#, r#"띢"#, r#"띢"#),
+        (r#"띣"#, r#"띣"#, r#"띣"#, r#"띣"#, r#"띣"#),
+        (r#"띤"#, r#"띤"#, r#"띤"#, r#"띤"#, r#"띤"#),
+        (r#"띥"#, r#"띥"#, r#"띥"#, r#"띥"#, r#"띥"#),
+        (r#"띦"#, r#"띦"#, r#"띦"#, r#"띦"#, r#"띦"#),
+        (r#"띧"#, r#"띧"#, r#"띧"#, r#"띧"#, r#"띧"#),
+        (r#"띨"#, r#"띨"#, r#"띨"#, r#"띨"#, r#"띨"#),
+        (r#"띩"#, r#"띩"#, r#"띩"#, r#"띩"#, r#"띩"#),
+        (r#"띪"#, r#"띪"#, r#"띪"#, r#"띪"#, r#"띪"#),
+        (r#"띫"#, r#"띫"#, r#"띫"#, r#"띫"#, r#"띫"#),
+        (r#"띬"#, r#"띬"#, r#"띬"#, r#"띬"#, r#"띬"#),
+        (r#"띭"#, r#"띭"#, r#"띭"#, r#"띭"#, r#"띭"#),
+        (r#"띮"#, r#"띮"#, r#"띮"#, r#"띮"#, r#"띮"#),
+        (r#"띯"#, r#"띯"#, r#"띯"#, r#"띯"#, r#"띯"#),
+        (r#"띰"#, r#"띰"#, r#"띰"#, r#"띰"#, r#"띰"#),
+        (r#"띱"#, r#"띱"#, r#"띱"#, r#"띱"#, r#"띱"#),
+        (r#"띲"#, r#"띲"#, r#"띲"#, r#"띲"#, r#"띲"#),
+        (r#"띳"#, r#"띳"#, r#"띳"#, r#"띳"#, r#"띳"#),
+        (r#"띴"#, r#"띴"#, r#"띴"#, r#"띴"#, r#"띴"#),
+        (r#"띵"#, r#"띵"#, r#"띵"#, r#"띵"#, r#"띵"#),
+        (r#"띶"#, r#"띶"#, r#"띶"#, r#"띶"#, r#"띶"#),
+        (r#"띷"#, r#"띷"#, r#"띷"#, r#"띷"#, r#"띷"#),
+        (r#"띸"#, r#"띸"#, r#"띸"#, r#"띸"#, r#"띸"#),
+        (r#"띹"#, r#"띹"#, r#"띹"#, r#"띹"#, r#"띹"#),
+        (r#"띺"#, r#"띺"#, r#"띺"#, r#"띺"#, r#"띺"#),
+        (r#"띻"#, r#"띻"#, r#"띻"#, r#"띻"#, r#"띻"#),
+        (r#"라"#, r#"라"#, r#"라"#, r#"라"#, r#"라"#),
+        (r#"락"#, r#"락"#, r#"락"#, r#"락"#, r#"락"#),
+        (r#"띾"#, r#"띾"#, r#"띾"#, r#"띾"#, r#"띾"#),
+        (r#"띿"#, r#"띿"#, r#"띿"#, r#"띿"#, r#"띿"#),
+        (r#"란"#, r#"란"#, r#"란"#, r#"란"#, r#"란"#),
+        (r#"랁"#, r#"랁"#, r#"랁"#, r#"랁"#, r#"랁"#),
+        (r#"랂"#, r#"랂"#, r#"랂"#, r#"랂"#, r#"랂"#),
+        (r#"랃"#, r#"랃"#, r#"랃"#, r#"랃"#, r#"랃"#),
+        (r#"랄"#, r#"랄"#, r#"랄"#, r#"랄"#, r#"랄"#),
+        (r#"랅"#, r#"랅"#, r#"랅"#, r#"랅"#, r#"랅"#),
+        (r#"랆"#, r#"랆"#, r#"랆"#, r#"랆"#, r#"랆"#),
+        (r#"랇"#, r#"랇"#, r#"랇"#, r#"랇"#, r#"랇"#),
+        (r#"랈"#, r#"랈"#, r#"랈"#, r#"랈"#, r#"랈"#),
+        (r#"랉"#, r#"랉"#, r#"랉"#, r#"랉"#, r#"랉"#),
+        (r#"랊"#, r#"랊"#, r#"랊"#, r#"랊"#, r#"랊"#),
+        (r#"랋"#, r#"랋"#, r#"랋"#, r#"랋"#, r#"랋"#),
+        (r#"람"#, r#"람"#, r#"람"#, r#"람"#, r#"람"#),
+        (r#"랍"#, r#"랍"#, r#"랍"#, r#"랍"#, r#"랍"#),
+        (r#"랎"#, r#"랎"#, r#"랎"#, r#"랎"#, r#"랎"#),
+        (r#"랏"#, r#"랏"#, r#"랏"#, r#"랏"#, r#"랏"#),
+        (r#"랐"#, r#"랐"#, r#"랐"#, r#"랐"#, r#"랐"#),
+        (r#"랑"#, r#"랑"#, r#"랑"#, r#"랑"#, r#"랑"#),
+        (r#"랒"#, r#"랒"#, r#"랒"#, r#"랒"#, r#"랒"#),
+        (r#"랓"#, r#"랓"#, r#"랓"#, r#"랓"#, r#"랓"#),
+        (r#"랔"#, r#"랔"#, r#"랔"#, r#"랔"#, r#"랔"#),
+        (r#"랕"#, r#"랕"#, r#"랕"#, r#"랕"#, r#"랕"#),
+        (r#"랖"#, r#"랖"#, r#"랖"#, r#"랖"#, r#"랖"#),
+        (r#"랗"#, r#"랗"#, r#"랗"#, r#"랗"#, r#"랗"#),
+        (r#"래"#, r#"래"#, r#"래"#, r#"래"#, r#"래"#),
+        (r#"랙"#, r#"랙"#, r#"랙"#, r#"랙"#, r#"랙"#),
+        (r#"랚"#, r#"랚"#, r#"랚"#, r#"랚"#, r#"랚"#),
+        (r#"랛"#, r#"랛"#, r#"랛"#, r#"랛"#, r#"랛"#),
+        (r#"랜"#, r#"랜"#, r#"랜"#, r#"랜"#, r#"랜"#),
+        (r#"랝"#, r#"랝"#, r#"랝"#, r#"랝"#, r#"랝"#),
+        (r#"랞"#, r#"랞"#, r#"랞"#, r#"랞"#, r#"랞"#),
+        (r#"랟"#, r#"랟"#, r#"랟"#, r#"랟"#, r#"랟"#),
+        (r#"랠"#, r#"랠"#, r#"랠"#, r#"랠"#, r#"랠"#),
+        (r#"랡"#, r#"랡"#, r#"랡"#, r#"랡"#, r#"랡"#),
+        (r#"랢"#, r#"랢"#, r#"랢"#, r#"랢"#, r#"랢"#),
+        (r#"랣"#, r#"랣"#, r#"랣"#, r#"랣"#, r#"랣"#),
+        (r#"랤"#, r#"랤"#, r#"랤"#, r#"랤"#, r#"랤"#),
+        (r#"랥"#, r#"랥"#, r#"랥"#, r#"랥"#, r#"랥"#),
+        (r#"랦"#, r#"랦"#, r#"랦"#, r#"랦"#, r#"랦"#),
+        (r#"랧"#, r#"랧"#, r#"랧"#, r#"랧"#, r#"랧"#),
+        (r#"램"#, r#"램"#, r#"램"#, r#"램"#, r#"램"#),
+        (r#"랩"#, r#"랩"#, r#"랩"#, r#"랩"#, r#"랩"#),
+        (r#"랪"#, r#"랪"#, r#"랪"#, r#"랪"#, r#"랪"#),
+        (r#"랫"#, r#"랫"#, r#"랫"#, r#"랫"#, r#"랫"#),
+        (r#"랬"#, r#"랬"#, r#"랬"#, r#"랬"#, r#"랬"#),
+        (r#"랭"#, r#"랭"#, r#"랭"#, r#"랭"#, r#"랭"#),
+        (r#"랮"#, r#"랮"#, r#"랮"#, r#"랮"#, r#"랮"#),
+        (r#"랯"#, r#"랯"#, r#"랯"#, r#"랯"#, r#"랯"#),
+        (r#"랰"#, r#"랰"#, r#"랰"#, r#"랰"#, r#"랰"#),
+        (r#"랱"#, r#"랱"#, r#"랱"#, r#"랱"#, r#"랱"#),
+        (r#"랲"#, r#"랲"#, r#"랲"#, r#"랲"#, r#"랲"#),
+        (r#"랳"#, r#"랳"#, r#"랳"#, r#"랳"#, r#"랳"#),
+        (r#"랴"#, r#"랴"#, r#"랴"#, r#"랴"#, r#"랴"#),
+        (r#"략"#, r#"략"#, r#"략"#, r#"략"#, r#"략"#),
+        (r#"랶"#, r#"랶"#, r#"랶"#, r#"랶"#, r#"랶"#),
+        (r#"랷"#, r#"랷"#, r#"랷"#, r#"랷"#, r#"랷"#),
+        (r#"랸"#, r#"랸"#, r#"랸"#, r#"랸"#, r#"랸"#),
+        (r#"랹"#, r#"랹"#, r#"랹"#, r#"랹"#, r#"랹"#),
+        (r#"랺"#, r#"랺"#, r#"랺"#, r#"랺"#, r#"랺"#),
+        (r#"랻"#, r#"랻"#, r#"랻"#, r#"랻"#, r#"랻"#),
+        (r#"랼"#, r#"랼"#, r#"랼"#, r#"랼"#, r#"랼"#),
+        (r#"랽"#, r#"랽"#, r#"랽"#, r#"랽"#, r#"랽"#),
+        (r#"랾"#, r#"랾"#, r#"랾"#, r#"랾"#, r#"랾"#),
+        (r#"랿"#, r#"랿"#, r#"랿"#, r#"랿"#, r#"랿"#),
+        (r#"럀"#, r#"럀"#, r#"럀"#, r#"럀"#, r#"럀"#),
+        (r#"럁"#, r#"럁"#, r#"럁"#, r#"럁"#, r#"럁"#),
+        (r#"럂"#, r#"럂"#, r#"럂"#, r#"럂"#, r#"럂"#),
+        (r#"럃"#, r#"럃"#, r#"럃"#, r#"럃"#, r#"럃"#),
+        (r#"럄"#, r#"럄"#, r#"럄"#, r#"럄"#, r#"럄"#),
+        (r#"럅"#, r#"럅"#, r#"럅"#, r#"럅"#, r#"럅"#),
+        (r#"럆"#, r#"럆"#, r#"럆"#, r#"럆"#, r#"럆"#),
+        (r#"럇"#, r#"럇"#, r#"럇"#, r#"럇"#, r#"럇"#),
+        (r#"럈"#, r#"럈"#, r#"럈"#, r#"럈"#, r#"럈"#),
+        (r#"량"#, r#"량"#, r#"량"#, r#"량"#, r#"량"#),
+        (r#"럊"#, r#"럊"#, r#"럊"#, r#"럊"#, r#"럊"#),
+        (r#"럋"#, r#"럋"#, r#"럋"#, r#"럋"#, r#"럋"#),
+        (r#"럌"#, r#"럌"#, r#"럌"#, r#"럌"#, r#"럌"#),
+        (r#"럍"#, r#"럍"#, r#"럍"#, r#"럍"#, r#"럍"#),
+        (r#"럎"#, r#"럎"#, r#"럎"#, r#"럎"#, r#"럎"#),
+        (r#"럏"#, r#"럏"#, r#"럏"#, r#"럏"#, r#"럏"#),
+        (r#"럐"#, r#"럐"#, r#"럐"#, r#"럐"#, r#"럐"#),
+        (r#"럑"#, r#"럑"#, r#"럑"#, r#"럑"#, r#"럑"#),
+        (r#"럒"#, r#"럒"#, r#"럒"#, r#"럒"#, r#"럒"#),
+        (r#"럓"#, r#"럓"#, r#"럓"#, r#"럓"#, r#"럓"#),
+        (r#"럔"#, r#"럔"#, r#"럔"#, r#"럔"#, r#"럔"#),
+        (r#"럕"#, r#"럕"#, r#"럕"#, r#"럕"#, r#"럕"#),
+        (r#"럖"#, r#"럖"#, r#"럖"#, r#"럖"#, r#"럖"#),
+        (r#"럗"#, r#"럗"#, r#"럗"#, r#"럗"#, r#"럗"#),
+        (r#"럘"#, r#"럘"#, r#"럘"#, r#"럘"#, r#"럘"#),
+        (r#"럙"#, r#"럙"#, r#"럙"#, r#"럙"#, r#"럙"#),
+        (r#"럚"#, r#"럚"#, r#"럚"#, r#"럚"#, r#"럚"#),
+        (r#"럛"#, r#"럛"#, r#"럛"#, r#"럛"#, r#"럛"#),
+        (r#"럜"#, r#"럜"#, r#"럜"#, r#"럜"#, r#"럜"#),
+        (r#"럝"#, r#"럝"#, r#"럝"#, r#"럝"#, r#"럝"#),
+        (r#"럞"#, r#"럞"#, r#"럞"#, r#"럞"#, r#"럞"#),
+        (r#"럟"#, r#"럟"#, r#"럟"#, r#"럟"#, r#"럟"#),
+        (r#"럠"#, r#"럠"#, r#"럠"#, r#"럠"#, r#"럠"#),
+        (r#"럡"#, r#"럡"#, r#"럡"#, r#"럡"#, r#"럡"#),
+        (r#"럢"#, r#"럢"#, r#"럢"#, r#"럢"#, r#"럢"#),
+        (r#"럣"#, r#"럣"#, r#"럣"#, r#"럣"#, r#"럣"#),
+        (r#"럤"#, r#"럤"#, r#"럤"#, r#"럤"#, r#"럤"#),
+        (r#"럥"#, r#"럥"#, r#"럥"#, r#"럥"#, r#"럥"#),
+        (r#"럦"#, r#"럦"#, r#"럦"#, r#"럦"#, r#"럦"#),
+        (r#"럧"#, r#"럧"#, r#"럧"#, r#"럧"#, r#"럧"#),
+        (r#"럨"#, r#"럨"#, r#"럨"#, r#"럨"#, r#"럨"#),
+        (r#"럩"#, r#"럩"#, r#"럩"#, r#"럩"#, r#"럩"#),
+        (r#"럪"#, r#"럪"#, r#"럪"#, r#"럪"#, r#"럪"#),
+        (r#"럫"#, r#"럫"#, r#"럫"#, r#"럫"#, r#"럫"#),
+        (r#"러"#, r#"러"#, r#"러"#, r#"러"#, r#"러"#),
+        (r#"럭"#, r#"럭"#, r#"럭"#, r#"럭"#, r#"럭"#),
+        (r#"럮"#, r#"럮"#, r#"럮"#, r#"럮"#, r#"럮"#),
+        (r#"럯"#, r#"럯"#, r#"럯"#, r#"럯"#, r#"럯"#),
+        (r#"런"#, r#"런"#, r#"런"#, r#"런"#, r#"런"#),
+        (r#"럱"#, r#"럱"#, r#"럱"#, r#"럱"#, r#"럱"#),
+        (r#"럲"#, r#"럲"#, r#"럲"#, r#"럲"#, r#"럲"#),
+        (r#"럳"#, r#"럳"#, r#"럳"#, r#"럳"#, r#"럳"#),
+        (r#"럴"#, r#"럴"#, r#"럴"#, r#"럴"#, r#"럴"#),
+        (r#"럵"#, r#"럵"#, r#"럵"#, r#"럵"#, r#"럵"#),
+        (r#"럶"#, r#"럶"#, r#"럶"#, r#"럶"#, r#"럶"#),
+        (r#"럷"#, r#"럷"#, r#"럷"#, r#"럷"#, r#"럷"#),
+        (r#"럸"#, r#"럸"#, r#"럸"#, r#"럸"#, r#"럸"#),
+        (r#"럹"#, r#"럹"#, r#"럹"#, r#"럹"#, r#"럹"#),
+        (r#"럺"#, r#"럺"#, r#"럺"#, r#"럺"#, r#"럺"#),
+        (r#"럻"#, r#"럻"#, r#"럻"#, r#"럻"#, r#"럻"#),
+        (r#"럼"#, r#"럼"#, r#"럼"#, r#"럼"#, r#"럼"#),
+        (r#"럽"#, r#"럽"#, r#"럽"#, r#"럽"#, r#"럽"#),
+        (r#"럾"#, r#"럾"#, r#"럾"#, r#"럾"#, r#"럾"#),
+        (r#"럿"#, r#"럿"#, r#"럿"#, r#"럿"#, r#"럿"#),
+        (r#"렀"#, r#"렀"#, r#"렀"#, r#"렀"#, r#"렀"#),
+        (r#"렁"#, r#"렁"#, r#"렁"#, r#"렁"#, r#"렁"#),
+        (r#"렂"#, r#"렂"#, r#"렂"#, r#"렂"#, r#"렂"#),
+        (r#"렃"#, r#"렃"#, r#"렃"#, r#"렃"#, r#"렃"#),
+        (r#"렄"#, r#"렄"#, r#"렄"#, r#"렄"#, r#"렄"#),
+        (r#"렅"#, r#"렅"#, r#"렅"#, r#"렅"#, r#"렅"#),
+        (r#"렆"#, r#"렆"#, r#"렆"#, r#"렆"#, r#"렆"#),
+        (r#"렇"#, r#"렇"#, r#"렇"#, r#"렇"#, r#"렇"#),
+        (r#"레"#, r#"레"#, r#"레"#, r#"레"#, r#"레"#),
+        (r#"렉"#, r#"렉"#, r#"렉"#, r#"렉"#, r#"렉"#),
+        (r#"렊"#, r#"렊"#, r#"렊"#, r#"렊"#, r#"렊"#),
+        (r#"렋"#, r#"렋"#, r#"렋"#, r#"렋"#, r#"렋"#),
+        (r#"렌"#, r#"렌"#, r#"렌"#, r#"렌"#, r#"렌"#),
+        (r#"렍"#, r#"렍"#, r#"렍"#, r#"렍"#, r#"렍"#),
+        (r#"렎"#, r#"렎"#, r#"렎"#, r#"렎"#, r#"렎"#),
+        (r#"렏"#, r#"렏"#, r#"렏"#, r#"렏"#, r#"렏"#),
+        (r#"렐"#, r#"렐"#, r#"렐"#, r#"렐"#, r#"렐"#),
+        (r#"렑"#, r#"렑"#, r#"렑"#, r#"렑"#, r#"렑"#),
+        (r#"렒"#, r#"렒"#, r#"렒"#, r#"렒"#, r#"렒"#),
+        (r#"렓"#, r#"렓"#, r#"렓"#, r#"렓"#, r#"렓"#),
+        (r#"렔"#, r#"렔"#, r#"렔"#, r#"렔"#, r#"렔"#),
+        (r#"렕"#, r#"렕"#, r#"렕"#, r#"렕"#, r#"렕"#),
+        (r#"렖"#, r#"렖"#, r#"렖"#, r#"렖"#, r#"렖"#),
+        (r#"렗"#, r#"렗"#, r#"렗"#, r#"렗"#, r#"렗"#),
+        (r#"렘"#, r#"렘"#, r#"렘"#, r#"렘"#, r#"렘"#),
+        (r#"렙"#, r#"렙"#, r#"렙"#, r#"렙"#, r#"렙"#),
+        (r#"렚"#, r#"렚"#, r#"렚"#, r#"렚"#, r#"렚"#),
+        (r#"렛"#, r#"렛"#, r#"렛"#, r#"렛"#, r#"렛"#),
+        (r#"렜"#, r#"렜"#, r#"렜"#, r#"렜"#, r#"렜"#),
+        (r#"렝"#, r#"렝"#, r#"렝"#, r#"렝"#, r#"렝"#),
+        (r#"렞"#, r#"렞"#, r#"렞"#, r#"렞"#, r#"렞"#),
+        (r#"렟"#, r#"렟"#, r#"렟"#, r#"렟"#, r#"렟"#),
+        (r#"렠"#, r#"렠"#, r#"렠"#, r#"렠"#, r#"렠"#),
+        (r#"렡"#, r#"렡"#, r#"렡"#, r#"렡"#, r#"렡"#),
+        (r#"렢"#, r#"렢"#, r#"렢"#, r#"렢"#, r#"렢"#),
+        (r#"렣"#, r#"렣"#, r#"렣"#, r#"렣"#, r#"렣"#),
+        (r#"려"#, r#"려"#, r#"려"#, r#"려"#, r#"려"#),
+        (r#"력"#, r#"력"#, r#"력"#, r#"력"#, r#"력"#),
+        (r#"렦"#, r#"렦"#, r#"렦"#, r#"렦"#, r#"렦"#),
+        (r#"렧"#, r#"렧"#, r#"렧"#, r#"렧"#, r#"렧"#),
+        (r#"련"#, r#"련"#, r#"련"#, r#"련"#, r#"련"#),
+        (r#"렩"#, r#"렩"#, r#"렩"#, r#"렩"#, r#"렩"#),
+        (r#"렪"#, r#"렪"#, r#"렪"#, r#"렪"#, r#"렪"#),
+        (r#"렫"#, r#"렫"#, r#"렫"#, r#"렫"#, r#"렫"#),
+        (r#"렬"#, r#"렬"#, r#"렬"#, r#"렬"#, r#"렬"#),
+        (r#"렭"#, r#"렭"#, r#"렭"#, r#"렭"#, r#"렭"#),
+        (r#"렮"#, r#"렮"#, r#"렮"#, r#"렮"#, r#"렮"#),
+        (r#"렯"#, r#"렯"#, r#"렯"#, r#"렯"#, r#"렯"#),
+        (r#"렰"#, r#"렰"#, r#"렰"#, r#"렰"#, r#"렰"#),
+        (r#"렱"#, r#"렱"#, r#"렱"#, r#"렱"#, r#"렱"#),
+        (r#"렲"#, r#"렲"#, r#"렲"#, r#"렲"#, r#"렲"#),
+        (r#"렳"#, r#"렳"#, r#"렳"#, r#"렳"#, r#"렳"#),
+        (r#"렴"#, r#"렴"#, r#"렴"#, r#"렴"#, r#"렴"#),
+        (r#"렵"#, r#"렵"#, r#"렵"#, r#"렵"#, r#"렵"#),
+        (r#"렶"#, r#"렶"#, r#"렶"#, r#"렶"#, r#"렶"#),
+        (r#"렷"#, r#"렷"#, r#"렷"#, r#"렷"#, r#"렷"#),
+        (r#"렸"#, r#"렸"#, r#"렸"#, r#"렸"#, r#"렸"#),
+        (r#"령"#, r#"령"#, r#"령"#, r#"령"#, r#"령"#),
+        (r#"렺"#, r#"렺"#, r#"렺"#, r#"렺"#, r#"렺"#),
+        (r#"렻"#, r#"렻"#, r#"렻"#, r#"렻"#, r#"렻"#),
+        (r#"렼"#, r#"렼"#, r#"렼"#, r#"렼"#, r#"렼"#),
+        (r#"렽"#, r#"렽"#, r#"렽"#, r#"렽"#, r#"렽"#),
+        (r#"렾"#, r#"렾"#, r#"렾"#, r#"렾"#, r#"렾"#),
+        (r#"렿"#, r#"렿"#, r#"렿"#, r#"렿"#, r#"렿"#),
+        (r#"례"#, r#"례"#, r#"례"#, r#"례"#, r#"례"#),
+        (r#"롁"#, r#"롁"#, r#"롁"#, r#"롁"#, r#"롁"#),
+        (r#"롂"#, r#"롂"#, r#"롂"#, r#"롂"#, r#"롂"#),
+        (r#"롃"#, r#"롃"#, r#"롃"#, r#"롃"#, r#"롃"#),
+        (r#"롄"#, r#"롄"#, r#"롄"#, r#"롄"#, r#"롄"#),
+        (r#"롅"#, r#"롅"#, r#"롅"#, r#"롅"#, r#"롅"#),
+        (r#"롆"#, r#"롆"#, r#"롆"#, r#"롆"#, r#"롆"#),
+        (r#"롇"#, r#"롇"#, r#"롇"#, r#"롇"#, r#"롇"#),
+        (r#"롈"#, r#"롈"#, r#"롈"#, r#"롈"#, r#"롈"#),
+        (r#"롉"#, r#"롉"#, r#"롉"#, r#"롉"#, r#"롉"#),
+        (r#"롊"#, r#"롊"#, r#"롊"#, r#"롊"#, r#"롊"#),
+        (r#"롋"#, r#"롋"#, r#"롋"#, r#"롋"#, r#"롋"#),
+        (r#"롌"#, r#"롌"#, r#"롌"#, r#"롌"#, r#"롌"#),
+        (r#"롍"#, r#"롍"#, r#"롍"#, r#"롍"#, r#"롍"#),
+        (r#"롎"#, r#"롎"#, r#"롎"#, r#"롎"#, r#"롎"#),
+        (r#"롏"#, r#"롏"#, r#"롏"#, r#"롏"#, r#"롏"#),
+        (r#"롐"#, r#"롐"#, r#"롐"#, r#"롐"#, r#"롐"#),
+        (r#"롑"#, r#"롑"#, r#"롑"#, r#"롑"#, r#"롑"#),
+        (r#"롒"#, r#"롒"#, r#"롒"#, r#"롒"#, r#"롒"#),
+        (r#"롓"#, r#"롓"#, r#"롓"#, r#"롓"#, r#"롓"#),
+        (r#"롔"#, r#"롔"#, r#"롔"#, r#"롔"#, r#"롔"#),
+        (r#"롕"#, r#"롕"#, r#"롕"#, r#"롕"#, r#"롕"#),
+        (r#"롖"#, r#"롖"#, r#"롖"#, r#"롖"#, r#"롖"#),
+        (r#"롗"#, r#"롗"#, r#"롗"#, r#"롗"#, r#"롗"#),
+        (r#"롘"#, r#"롘"#, r#"롘"#, r#"롘"#, r#"롘"#),
+        (r#"롙"#, r#"롙"#, r#"롙"#, r#"롙"#, r#"롙"#),
+        (r#"롚"#, r#"롚"#, r#"롚"#, r#"롚"#, r#"롚"#),
+        (r#"롛"#, r#"롛"#, r#"롛"#, r#"롛"#, r#"롛"#),
+        (r#"로"#, r#"로"#, r#"로"#, r#"로"#, r#"로"#),
+        (r#"록"#, r#"록"#, r#"록"#, r#"록"#, r#"록"#),
+        (r#"롞"#, r#"롞"#, r#"롞"#, r#"롞"#, r#"롞"#),
+        (r#"롟"#, r#"롟"#, r#"롟"#, r#"롟"#, r#"롟"#),
+        (r#"론"#, r#"론"#, r#"론"#, r#"론"#, r#"론"#),
+        (r#"롡"#, r#"롡"#, r#"롡"#, r#"롡"#, r#"롡"#),
+        (r#"롢"#, r#"롢"#, r#"롢"#, r#"롢"#, r#"롢"#),
+        (r#"롣"#, r#"롣"#, r#"롣"#, r#"롣"#, r#"롣"#),
+        (r#"롤"#, r#"롤"#, r#"롤"#, r#"롤"#, r#"롤"#),
+        (r#"롥"#, r#"롥"#, r#"롥"#, r#"롥"#, r#"롥"#),
+        (r#"롦"#, r#"롦"#, r#"롦"#, r#"롦"#, r#"롦"#),
+        (r#"롧"#, r#"롧"#, r#"롧"#, r#"롧"#, r#"롧"#),
+        (r#"롨"#, r#"롨"#, r#"롨"#, r#"롨"#, r#"롨"#),
+        (r#"롩"#, r#"롩"#, r#"롩"#, r#"롩"#, r#"롩"#),
+        (r#"롪"#, r#"롪"#, r#"롪"#, r#"롪"#, r#"롪"#),
+        (r#"롫"#, r#"롫"#, r#"롫"#, r#"롫"#, r#"롫"#),
+        (r#"롬"#, r#"롬"#, r#"롬"#, r#"롬"#, r#"롬"#),
+        (r#"롭"#, r#"롭"#, r#"롭"#, r#"롭"#, r#"롭"#),
+        (r#"롮"#, r#"롮"#, r#"롮"#, r#"롮"#, r#"롮"#),
+        (r#"롯"#, r#"롯"#, r#"롯"#, r#"롯"#, r#"롯"#),
+        (r#"롰"#, r#"롰"#, r#"롰"#, r#"롰"#, r#"롰"#),
+        (r#"롱"#, r#"롱"#, r#"롱"#, r#"롱"#, r#"롱"#),
+        (r#"롲"#, r#"롲"#, r#"롲"#, r#"롲"#, r#"롲"#),
+        (r#"롳"#, r#"롳"#, r#"롳"#, r#"롳"#, r#"롳"#),
+        (r#"롴"#, r#"롴"#, r#"롴"#, r#"롴"#, r#"롴"#),
+        (r#"롵"#, r#"롵"#, r#"롵"#, r#"롵"#, r#"롵"#),
+        (r#"롶"#, r#"롶"#, r#"롶"#, r#"롶"#, r#"롶"#),
+        (r#"롷"#, r#"롷"#, r#"롷"#, r#"롷"#, r#"롷"#),
+        (r#"롸"#, r#"롸"#, r#"롸"#, r#"롸"#, r#"롸"#),
+        (r#"롹"#, r#"롹"#, r#"롹"#, r#"롹"#, r#"롹"#),
+        (r#"롺"#, r#"롺"#, r#"롺"#, r#"롺"#, r#"롺"#),
+        (r#"롻"#, r#"롻"#, r#"롻"#, r#"롻"#, r#"롻"#),
+        (r#"롼"#, r#"롼"#, r#"롼"#, r#"롼"#, r#"롼"#),
+        (r#"롽"#, r#"롽"#, r#"롽"#, r#"롽"#, r#"롽"#),
+        (r#"롾"#, r#"롾"#, r#"롾"#, r#"롾"#, r#"롾"#),
+        (r#"롿"#, r#"롿"#, r#"롿"#, r#"롿"#, r#"롿"#),
+        (r#"뢀"#, r#"뢀"#, r#"뢀"#, r#"뢀"#, r#"뢀"#),
+        (r#"뢁"#, r#"뢁"#, r#"뢁"#, r#"뢁"#, r#"뢁"#),
+        (r#"뢂"#, r#"뢂"#, r#"뢂"#, r#"뢂"#, r#"뢂"#),
+        (r#"뢃"#, r#"뢃"#, r#"뢃"#, r#"뢃"#, r#"뢃"#),
+        (r#"뢄"#, r#"뢄"#, r#"뢄"#, r#"뢄"#, r#"뢄"#),
+        (r#"뢅"#, r#"뢅"#, r#"뢅"#, r#"뢅"#, r#"뢅"#),
+        (r#"뢆"#, r#"뢆"#, r#"뢆"#, r#"뢆"#, r#"뢆"#),
+        (r#"뢇"#, r#"뢇"#, r#"뢇"#, r#"뢇"#, r#"뢇"#),
+        (r#"뢈"#, r#"뢈"#, r#"뢈"#, r#"뢈"#, r#"뢈"#),
+        (r#"뢉"#, r#"뢉"#, r#"뢉"#, r#"뢉"#, r#"뢉"#),
+        (r#"뢊"#, r#"뢊"#, r#"뢊"#, r#"뢊"#, r#"뢊"#),
+        (r#"뢋"#, r#"뢋"#, r#"뢋"#, r#"뢋"#, r#"뢋"#),
+        (r#"뢌"#, r#"뢌"#, r#"뢌"#, r#"뢌"#, r#"뢌"#),
+        (r#"뢍"#, r#"뢍"#, r#"뢍"#, r#"뢍"#, r#"뢍"#),
+        (r#"뢎"#, r#"뢎"#, r#"뢎"#, r#"뢎"#, r#"뢎"#),
+        (r#"뢏"#, r#"뢏"#, r#"뢏"#, r#"뢏"#, r#"뢏"#),
+        (r#"뢐"#, r#"뢐"#, r#"뢐"#, r#"뢐"#, r#"뢐"#),
+        (r#"뢑"#, r#"뢑"#, r#"뢑"#, r#"뢑"#, r#"뢑"#),
+        (r#"뢒"#, r#"뢒"#, r#"뢒"#, r#"뢒"#, r#"뢒"#),
+        (r#"뢓"#, r#"뢓"#, r#"뢓"#, r#"뢓"#, r#"뢓"#),
+        (r#"뢔"#, r#"뢔"#, r#"뢔"#, r#"뢔"#, r#"뢔"#),
+        (r#"뢕"#, r#"뢕"#, r#"뢕"#, r#"뢕"#, r#"뢕"#),
+        (r#"뢖"#, r#"뢖"#, r#"뢖"#, r#"뢖"#, r#"뢖"#),
+        (r#"뢗"#, r#"뢗"#, r#"뢗"#, r#"뢗"#, r#"뢗"#),
+        (r#"뢘"#, r#"뢘"#, r#"뢘"#, r#"뢘"#, r#"뢘"#),
+        (r#"뢙"#, r#"뢙"#, r#"뢙"#, r#"뢙"#, r#"뢙"#),
+        (r#"뢚"#, r#"뢚"#, r#"뢚"#, r#"뢚"#, r#"뢚"#),
+        (r#"뢛"#, r#"뢛"#, r#"뢛"#, r#"뢛"#, r#"뢛"#),
+        (r#"뢜"#, r#"뢜"#, r#"뢜"#, r#"뢜"#, r#"뢜"#),
+        (r#"뢝"#, r#"뢝"#, r#"뢝"#, r#"뢝"#, r#"뢝"#),
+        (r#"뢞"#, r#"뢞"#, r#"뢞"#, r#"뢞"#, r#"뢞"#),
+        (r#"뢟"#, r#"뢟"#, r#"뢟"#, r#"뢟"#, r#"뢟"#),
+        (r#"뢠"#, r#"뢠"#, r#"뢠"#, r#"뢠"#, r#"뢠"#),
+        (r#"뢡"#, r#"뢡"#, r#"뢡"#, r#"뢡"#, r#"뢡"#),
+        (r#"뢢"#, r#"뢢"#, r#"뢢"#, r#"뢢"#, r#"뢢"#),
+        (r#"뢣"#, r#"뢣"#, r#"뢣"#, r#"뢣"#, r#"뢣"#),
+        (r#"뢤"#, r#"뢤"#, r#"뢤"#, r#"뢤"#, r#"뢤"#),
+        (r#"뢥"#, r#"뢥"#, r#"뢥"#, r#"뢥"#, r#"뢥"#),
+        (r#"뢦"#, r#"뢦"#, r#"뢦"#, r#"뢦"#, r#"뢦"#),
+        (r#"뢧"#, r#"뢧"#, r#"뢧"#, r#"뢧"#, r#"뢧"#),
+        (r#"뢨"#, r#"뢨"#, r#"뢨"#, r#"뢨"#, r#"뢨"#),
+        (r#"뢩"#, r#"뢩"#, r#"뢩"#, r#"뢩"#, r#"뢩"#),
+        (r#"뢪"#, r#"뢪"#, r#"뢪"#, r#"뢪"#, r#"뢪"#),
+        (r#"뢫"#, r#"뢫"#, r#"뢫"#, r#"뢫"#, r#"뢫"#),
+        (r#"뢬"#, r#"뢬"#, r#"뢬"#, r#"뢬"#, r#"뢬"#),
+        (r#"뢭"#, r#"뢭"#, r#"뢭"#, r#"뢭"#, r#"뢭"#),
+        (r#"뢮"#, r#"뢮"#, r#"뢮"#, r#"뢮"#, r#"뢮"#),
+        (r#"뢯"#, r#"뢯"#, r#"뢯"#, r#"뢯"#, r#"뢯"#),
+        (r#"뢰"#, r#"뢰"#, r#"뢰"#, r#"뢰"#, r#"뢰"#),
+        (r#"뢱"#, r#"뢱"#, r#"뢱"#, r#"뢱"#, r#"뢱"#),
+        (r#"뢲"#, r#"뢲"#, r#"뢲"#, r#"뢲"#, r#"뢲"#),
+        (r#"뢳"#, r#"뢳"#, r#"뢳"#, r#"뢳"#, r#"뢳"#),
+        (r#"뢴"#, r#"뢴"#, r#"뢴"#, r#"뢴"#, r#"뢴"#),
+        (r#"뢵"#, r#"뢵"#, r#"뢵"#, r#"뢵"#, r#"뢵"#),
+        (r#"뢶"#, r#"뢶"#, r#"뢶"#, r#"뢶"#, r#"뢶"#),
+        (r#"뢷"#, r#"뢷"#, r#"뢷"#, r#"뢷"#, r#"뢷"#),
+        (r#"뢸"#, r#"뢸"#, r#"뢸"#, r#"뢸"#, r#"뢸"#),
+        (r#"뢹"#, r#"뢹"#, r#"뢹"#, r#"뢹"#, r#"뢹"#),
+        (r#"뢺"#, r#"뢺"#, r#"뢺"#, r#"뢺"#, r#"뢺"#),
+        (r#"뢻"#, r#"뢻"#, r#"뢻"#, r#"뢻"#, r#"뢻"#),
+        (r#"뢼"#, r#"뢼"#, r#"뢼"#, r#"뢼"#, r#"뢼"#),
+        (r#"뢽"#, r#"뢽"#, r#"뢽"#, r#"뢽"#, r#"뢽"#),
+        (r#"뢾"#, r#"뢾"#, r#"뢾"#, r#"뢾"#, r#"뢾"#),
+        (r#"뢿"#, r#"뢿"#, r#"뢿"#, r#"뢿"#, r#"뢿"#),
+        (r#"룀"#, r#"룀"#, r#"룀"#, r#"룀"#, r#"룀"#),
+        (r#"룁"#, r#"룁"#, r#"룁"#, r#"룁"#, r#"룁"#),
+        (r#"룂"#, r#"룂"#, r#"룂"#, r#"룂"#, r#"룂"#),
+        (r#"룃"#, r#"룃"#, r#"룃"#, r#"룃"#, r#"룃"#),
+        (r#"룄"#, r#"룄"#, r#"룄"#, r#"룄"#, r#"룄"#),
+        (r#"룅"#, r#"룅"#, r#"룅"#, r#"룅"#, r#"룅"#),
+        (r#"룆"#, r#"룆"#, r#"룆"#, r#"룆"#, r#"룆"#),
+        (r#"룇"#, r#"룇"#, r#"룇"#, r#"룇"#, r#"룇"#),
+        (r#"룈"#, r#"룈"#, r#"룈"#, r#"룈"#, r#"룈"#),
+        (r#"룉"#, r#"룉"#, r#"룉"#, r#"룉"#, r#"룉"#),
+        (r#"룊"#, r#"룊"#, r#"룊"#, r#"룊"#, r#"룊"#),
+        (r#"룋"#, r#"룋"#, r#"룋"#, r#"룋"#, r#"룋"#),
+        (r#"료"#, r#"료"#, r#"료"#, r#"료"#, r#"료"#),
+        (r#"룍"#, r#"룍"#, r#"룍"#, r#"룍"#, r#"룍"#),
+        (r#"룎"#, r#"룎"#, r#"룎"#, r#"룎"#, r#"룎"#),
+        (r#"룏"#, r#"룏"#, r#"룏"#, r#"룏"#, r#"룏"#),
+        (r#"룐"#, r#"룐"#, r#"룐"#, r#"룐"#, r#"룐"#),
+        (r#"룑"#, r#"룑"#, r#"룑"#, r#"룑"#, r#"룑"#),
+        (r#"룒"#, r#"룒"#, r#"룒"#, r#"룒"#, r#"룒"#),
+        (r#"룓"#, r#"룓"#, r#"룓"#, r#"룓"#, r#"룓"#),
+        (r#"룔"#, r#"룔"#, r#"룔"#, r#"룔"#, r#"룔"#),
+        (r#"룕"#, r#"룕"#, r#"룕"#, r#"룕"#, r#"룕"#),
+        (r#"룖"#, r#"룖"#, r#"룖"#, r#"룖"#, r#"룖"#),
+        (r#"룗"#, r#"룗"#, r#"룗"#, r#"룗"#, r#"룗"#),
+        (r#"룘"#, r#"룘"#, r#"룘"#, r#"룘"#, r#"룘"#),
+        (r#"룙"#, r#"룙"#, r#"룙"#, r#"룙"#, r#"룙"#),
+        (r#"룚"#, r#"룚"#, r#"룚"#, r#"룚"#, r#"룚"#),
+        (r#"룛"#, r#"룛"#, r#"룛"#, r#"룛"#, r#"룛"#),
+        (r#"룜"#, r#"룜"#, r#"룜"#, r#"룜"#, r#"룜"#),
+        (r#"룝"#, r#"룝"#, r#"룝"#, r#"룝"#, r#"룝"#),
+        (r#"룞"#, r#"룞"#, r#"룞"#, r#"룞"#, r#"룞"#),
+        (r#"룟"#, r#"룟"#, r#"룟"#, r#"룟"#, r#"룟"#),
+        (r#"룠"#, r#"룠"#, r#"룠"#, r#"룠"#, r#"룠"#),
+        (r#"룡"#, r#"룡"#, r#"룡"#, r#"룡"#, r#"룡"#),
+        (r#"룢"#, r#"룢"#, r#"룢"#, r#"룢"#, r#"룢"#),
+        (r#"룣"#, r#"룣"#, r#"룣"#, r#"룣"#, r#"룣"#),
+        (r#"룤"#, r#"룤"#, r#"룤"#, r#"룤"#, r#"룤"#),
+        (r#"룥"#, r#"룥"#, r#"룥"#, r#"룥"#, r#"룥"#),
+        (r#"룦"#, r#"룦"#, r#"룦"#, r#"룦"#, r#"룦"#),
+        (r#"룧"#, r#"룧"#, r#"룧"#, r#"룧"#, r#"룧"#),
+        (r#"루"#, r#"루"#, r#"루"#, r#"루"#, r#"루"#),
+        (r#"룩"#, r#"룩"#, r#"룩"#, r#"룩"#, r#"룩"#),
+        (r#"룪"#, r#"룪"#, r#"룪"#, r#"룪"#, r#"룪"#),
+        (r#"룫"#, r#"룫"#, r#"룫"#, r#"룫"#, r#"룫"#),
+        (r#"룬"#, r#"룬"#, r#"룬"#, r#"룬"#, r#"룬"#),
+        (r#"룭"#, r#"룭"#, r#"룭"#, r#"룭"#, r#"룭"#),
+        (r#"룮"#, r#"룮"#, r#"룮"#, r#"룮"#, r#"룮"#),
+        (r#"룯"#, r#"룯"#, r#"룯"#, r#"룯"#, r#"룯"#),
+        (r#"룰"#, r#"룰"#, r#"룰"#, r#"룰"#, r#"룰"#),
+        (r#"룱"#, r#"룱"#, r#"룱"#, r#"룱"#, r#"룱"#),
+        (r#"룲"#, r#"룲"#, r#"룲"#, r#"룲"#, r#"룲"#),
+        (r#"룳"#, r#"룳"#, r#"룳"#, r#"룳"#, r#"룳"#),
+        (r#"룴"#, r#"룴"#, r#"룴"#, r#"룴"#, r#"룴"#),
+        (r#"룵"#, r#"룵"#, r#"룵"#, r#"룵"#, r#"룵"#),
+        (r#"룶"#, r#"룶"#, r#"룶"#, r#"룶"#, r#"룶"#),
+        (r#"룷"#, r#"룷"#, r#"룷"#, r#"룷"#, r#"룷"#),
+        (r#"룸"#, r#"룸"#, r#"룸"#, r#"룸"#, r#"룸"#),
+        (r#"룹"#, r#"룹"#, r#"룹"#, r#"룹"#, r#"룹"#),
+        (r#"룺"#, r#"룺"#, r#"룺"#, r#"룺"#, r#"룺"#),
+        (r#"룻"#, r#"룻"#, r#"룻"#, r#"룻"#, r#"룻"#),
+        (r#"룼"#, r#"룼"#, r#"룼"#, r#"룼"#, r#"룼"#),
+        (r#"룽"#, r#"룽"#, r#"룽"#, r#"룽"#, r#"룽"#),
+        (r#"룾"#, r#"룾"#, r#"룾"#, r#"룾"#, r#"룾"#),
+        (r#"룿"#, r#"룿"#, r#"룿"#, r#"룿"#, r#"룿"#),
+        (r#"뤀"#, r#"뤀"#, r#"뤀"#, r#"뤀"#, r#"뤀"#),
+        (r#"뤁"#, r#"뤁"#, r#"뤁"#, r#"뤁"#, r#"뤁"#),
+        (r#"뤂"#, r#"뤂"#, r#"뤂"#, r#"뤂"#, r#"뤂"#),
+        (r#"뤃"#, r#"뤃"#, r#"뤃"#, r#"뤃"#, r#"뤃"#),
+        (r#"뤄"#, r#"뤄"#, r#"뤄"#, r#"뤄"#, r#"뤄"#),
+        (r#"뤅"#, r#"뤅"#, r#"뤅"#, r#"뤅"#, r#"뤅"#),
+        (r#"뤆"#, r#"뤆"#, r#"뤆"#, r#"뤆"#, r#"뤆"#),
+        (r#"뤇"#, r#"뤇"#, r#"뤇"#, r#"뤇"#, r#"뤇"#),
+        (r#"뤈"#, r#"뤈"#, r#"뤈"#, r#"뤈"#, r#"뤈"#),
+        (r#"뤉"#, r#"뤉"#, r#"뤉"#, r#"뤉"#, r#"뤉"#),
+        (r#"뤊"#, r#"뤊"#, r#"뤊"#, r#"뤊"#, r#"뤊"#),
+        (r#"뤋"#, r#"뤋"#, r#"뤋"#, r#"뤋"#, r#"뤋"#),
+        (r#"뤌"#, r#"뤌"#, r#"뤌"#, r#"뤌"#, r#"뤌"#),
+        (r#"뤍"#, r#"뤍"#, r#"뤍"#, r#"뤍"#, r#"뤍"#),
+        (r#"뤎"#, r#"뤎"#, r#"뤎"#, r#"뤎"#, r#"뤎"#),
+        (r#"뤏"#, r#"뤏"#, r#"뤏"#, r#"뤏"#, r#"뤏"#),
+        (r#"뤐"#, r#"뤐"#, r#"뤐"#, r#"뤐"#, r#"뤐"#),
+        (r#"뤑"#, r#"뤑"#, r#"뤑"#, r#"뤑"#, r#"뤑"#),
+        (r#"뤒"#, r#"뤒"#, r#"뤒"#, r#"뤒"#, r#"뤒"#),
+        (r#"뤓"#, r#"뤓"#, r#"뤓"#, r#"뤓"#, r#"뤓"#),
+        (r#"뤔"#, r#"뤔"#, r#"뤔"#, r#"뤔"#, r#"뤔"#),
+        (r#"뤕"#, r#"뤕"#, r#"뤕"#, r#"뤕"#, r#"뤕"#),
+        (r#"뤖"#, r#"뤖"#, r#"뤖"#, r#"뤖"#, r#"뤖"#),
+        (r#"뤗"#, r#"뤗"#, r#"뤗"#, r#"뤗"#, r#"뤗"#),
+        (r#"뤘"#, r#"뤘"#, r#"뤘"#, r#"뤘"#, r#"뤘"#),
+        (r#"뤙"#, r#"뤙"#, r#"뤙"#, r#"뤙"#, r#"뤙"#),
+        (r#"뤚"#, r#"뤚"#, r#"뤚"#, r#"뤚"#, r#"뤚"#),
+        (r#"뤛"#, r#"뤛"#, r#"뤛"#, r#"뤛"#, r#"뤛"#),
+        (r#"뤜"#, r#"뤜"#, r#"뤜"#, r#"뤜"#, r#"뤜"#),
+        (r#"뤝"#, r#"뤝"#, r#"뤝"#, r#"뤝"#, r#"뤝"#),
+        (r#"뤞"#, r#"뤞"#, r#"뤞"#, r#"뤞"#, r#"뤞"#),
+        (r#"뤟"#, r#"뤟"#, r#"뤟"#, r#"뤟"#, r#"뤟"#),
+        (r#"뤠"#, r#"뤠"#, r#"뤠"#, r#"뤠"#, r#"뤠"#),
+        (r#"뤡"#, r#"뤡"#, r#"뤡"#, r#"뤡"#, r#"뤡"#),
+        (r#"뤢"#, r#"뤢"#, r#"뤢"#, r#"뤢"#, r#"뤢"#),
+        (r#"뤣"#, r#"뤣"#, r#"뤣"#, r#"뤣"#, r#"뤣"#),
+        (r#"뤤"#, r#"뤤"#, r#"뤤"#, r#"뤤"#, r#"뤤"#),
+        (r#"뤥"#, r#"뤥"#, r#"뤥"#, r#"뤥"#, r#"뤥"#),
+        (r#"뤦"#, r#"뤦"#, r#"뤦"#, r#"뤦"#, r#"뤦"#),
+        (r#"뤧"#, r#"뤧"#, r#"뤧"#, r#"뤧"#, r#"뤧"#),
+        (r#"뤨"#, r#"뤨"#, r#"뤨"#, r#"뤨"#, r#"뤨"#),
+        (r#"뤩"#, r#"뤩"#, r#"뤩"#, r#"뤩"#, r#"뤩"#),
+        (r#"뤪"#, r#"뤪"#, r#"뤪"#, r#"뤪"#, r#"뤪"#),
+        (r#"뤫"#, r#"뤫"#, r#"뤫"#, r#"뤫"#, r#"뤫"#),
+        (r#"뤬"#, r#"뤬"#, r#"뤬"#, r#"뤬"#, r#"뤬"#),
+        (r#"뤭"#, r#"뤭"#, r#"뤭"#, r#"뤭"#, r#"뤭"#),
+        (r#"뤮"#, r#"뤮"#, r#"뤮"#, r#"뤮"#, r#"뤮"#),
+        (r#"뤯"#, r#"뤯"#, r#"뤯"#, r#"뤯"#, r#"뤯"#),
+        (r#"뤰"#, r#"뤰"#, r#"뤰"#, r#"뤰"#, r#"뤰"#),
+        (r#"뤱"#, r#"뤱"#, r#"뤱"#, r#"뤱"#, r#"뤱"#),
+        (r#"뤲"#, r#"뤲"#, r#"뤲"#, r#"뤲"#, r#"뤲"#),
+        (r#"뤳"#, r#"뤳"#, r#"뤳"#, r#"뤳"#, r#"뤳"#),
+        (r#"뤴"#, r#"뤴"#, r#"뤴"#, r#"뤴"#, r#"뤴"#),
+        (r#"뤵"#, r#"뤵"#, r#"뤵"#, r#"뤵"#, r#"뤵"#),
+        (r#"뤶"#, r#"뤶"#, r#"뤶"#, r#"뤶"#, r#"뤶"#),
+        (r#"뤷"#, r#"뤷"#, r#"뤷"#, r#"뤷"#, r#"뤷"#),
+        (r#"뤸"#, r#"뤸"#, r#"뤸"#, r#"뤸"#, r#"뤸"#),
+        (r#"뤹"#, r#"뤹"#, r#"뤹"#, r#"뤹"#, r#"뤹"#),
+        (r#"뤺"#, r#"뤺"#, r#"뤺"#, r#"뤺"#, r#"뤺"#),
+        (r#"뤻"#, r#"뤻"#, r#"뤻"#, r#"뤻"#, r#"뤻"#),
+        (r#"뤼"#, r#"뤼"#, r#"뤼"#, r#"뤼"#, r#"뤼"#),
+        (r#"뤽"#, r#"뤽"#, r#"뤽"#, r#"뤽"#, r#"뤽"#),
+        (r#"뤾"#, r#"뤾"#, r#"뤾"#, r#"뤾"#, r#"뤾"#),
+        (r#"뤿"#, r#"뤿"#, r#"뤿"#, r#"뤿"#, r#"뤿"#),
+        (r#"륀"#, r#"륀"#, r#"륀"#, r#"륀"#, r#"륀"#),
+        (r#"륁"#, r#"륁"#, r#"륁"#, r#"륁"#, r#"륁"#),
+        (r#"륂"#, r#"륂"#, r#"륂"#, r#"륂"#, r#"륂"#),
+        (r#"륃"#, r#"륃"#, r#"륃"#, r#"륃"#, r#"륃"#),
+        (r#"륄"#, r#"륄"#, r#"륄"#, r#"륄"#, r#"륄"#),
+        (r#"륅"#, r#"륅"#, r#"륅"#, r#"륅"#, r#"륅"#),
+        (r#"륆"#, r#"륆"#, r#"륆"#, r#"륆"#, r#"륆"#),
+        (r#"륇"#, r#"륇"#, r#"륇"#, r#"륇"#, r#"륇"#),
+        (r#"륈"#, r#"륈"#, r#"륈"#, r#"륈"#, r#"륈"#),
+        (r#"륉"#, r#"륉"#, r#"륉"#, r#"륉"#, r#"륉"#),
+        (r#"륊"#, r#"륊"#, r#"륊"#, r#"륊"#, r#"륊"#),
+        (r#"륋"#, r#"륋"#, r#"륋"#, r#"륋"#, r#"륋"#),
+        (r#"륌"#, r#"륌"#, r#"륌"#, r#"륌"#, r#"륌"#),
+        (r#"륍"#, r#"륍"#, r#"륍"#, r#"륍"#, r#"륍"#),
+        (r#"륎"#, r#"륎"#, r#"륎"#, r#"륎"#, r#"륎"#),
+        (r#"륏"#, r#"륏"#, r#"륏"#, r#"륏"#, r#"륏"#),
+        (r#"륐"#, r#"륐"#, r#"륐"#, r#"륐"#, r#"륐"#),
+        (r#"륑"#, r#"륑"#, r#"륑"#, r#"륑"#, r#"륑"#),
+        (r#"륒"#, r#"륒"#, r#"륒"#, r#"륒"#, r#"륒"#),
+        (r#"륓"#, r#"륓"#, r#"륓"#, r#"륓"#, r#"륓"#),
+        (r#"륔"#, r#"륔"#, r#"륔"#, r#"륔"#, r#"륔"#),
+        (r#"륕"#, r#"륕"#, r#"륕"#, r#"륕"#, r#"륕"#),
+        (r#"륖"#, r#"륖"#, r#"륖"#, r#"륖"#, r#"륖"#),
+        (r#"륗"#, r#"륗"#, r#"륗"#, r#"륗"#, r#"륗"#),
+        (r#"류"#, r#"류"#, r#"류"#, r#"류"#, r#"류"#),
+        (r#"륙"#, r#"륙"#, r#"륙"#, r#"륙"#, r#"륙"#),
+        (r#"륚"#, r#"륚"#, r#"륚"#, r#"륚"#, r#"륚"#),
+        (r#"륛"#, r#"륛"#, r#"륛"#, r#"륛"#, r#"륛"#),
+        (r#"륜"#, r#"륜"#, r#"륜"#, r#"륜"#, r#"륜"#),
+        (r#"륝"#, r#"륝"#, r#"륝"#, r#"륝"#, r#"륝"#),
+        (r#"륞"#, r#"륞"#, r#"륞"#, r#"륞"#, r#"륞"#),
+        (r#"륟"#, r#"륟"#, r#"륟"#, r#"륟"#, r#"륟"#),
+        (r#"률"#, r#"률"#, r#"률"#, r#"률"#, r#"률"#),
+        (r#"륡"#, r#"륡"#, r#"륡"#, r#"륡"#, r#"륡"#),
+        (r#"륢"#, r#"륢"#, r#"륢"#, r#"륢"#, r#"륢"#),
+        (r#"륣"#, r#"륣"#, r#"륣"#, r#"륣"#, r#"륣"#),
+        (r#"륤"#, r#"륤"#, r#"륤"#, r#"륤"#, r#"륤"#),
+        (r#"륥"#, r#"륥"#, r#"륥"#, r#"륥"#, r#"륥"#),
+        (r#"륦"#, r#"륦"#, r#"륦"#, r#"륦"#, r#"륦"#),
+        (r#"륧"#, r#"륧"#, r#"륧"#, r#"륧"#, r#"륧"#),
+        (r#"륨"#, r#"륨"#, r#"륨"#, r#"륨"#, r#"륨"#),
+        (r#"륩"#, r#"륩"#, r#"륩"#, r#"륩"#, r#"륩"#),
+        (r#"륪"#, r#"륪"#, r#"륪"#, r#"륪"#, r#"륪"#),
+        (r#"륫"#, r#"륫"#, r#"륫"#, r#"륫"#, r#"륫"#),
+        (r#"륬"#, r#"륬"#, r#"륬"#, r#"륬"#, r#"륬"#),
+        (r#"륭"#, r#"륭"#, r#"륭"#, r#"륭"#, r#"륭"#),
+        (r#"륮"#, r#"륮"#, r#"륮"#, r#"륮"#, r#"륮"#),
+        (r#"륯"#, r#"륯"#, r#"륯"#, r#"륯"#, r#"륯"#),
+        (r#"륰"#, r#"륰"#, r#"륰"#, r#"륰"#, r#"륰"#),
+        (r#"륱"#, r#"륱"#, r#"륱"#, r#"륱"#, r#"륱"#),
+        (r#"륲"#, r#"륲"#, r#"륲"#, r#"륲"#, r#"륲"#),
+        (r#"륳"#, r#"륳"#, r#"륳"#, r#"륳"#, r#"륳"#),
+        (r#"르"#, r#"르"#, r#"르"#, r#"르"#, r#"르"#),
+        (r#"륵"#, r#"륵"#, r#"륵"#, r#"륵"#, r#"륵"#),
+        (r#"륶"#, r#"륶"#, r#"륶"#, r#"륶"#, r#"륶"#),
+        (r#"륷"#, r#"륷"#, r#"륷"#, r#"륷"#, r#"륷"#),
+        (r#"른"#, r#"른"#, r#"른"#, r#"른"#, r#"른"#),
+        (r#"륹"#, r#"륹"#, r#"륹"#, r#"륹"#, r#"륹"#),
+        (r#"륺"#, r#"륺"#, r#"륺"#, r#"륺"#, r#"륺"#),
+        (r#"륻"#, r#"륻"#, r#"륻"#, r#"륻"#, r#"륻"#),
+        (r#"를"#, r#"를"#, r#"를"#, r#"를"#, r#"를"#),
+        (r#"륽"#, r#"륽"#, r#"륽"#, r#"륽"#, r#"륽"#),
+        (r#"륾"#, r#"륾"#, r#"륾"#, r#"륾"#, r#"륾"#),
+        (r#"륿"#, r#"륿"#, r#"륿"#, r#"륿"#, r#"륿"#),
+        (r#"릀"#, r#"릀"#, r#"릀"#, r#"릀"#, r#"릀"#),
+        (r#"릁"#, r#"릁"#, r#"릁"#, r#"릁"#, r#"릁"#),
+        (r#"릂"#, r#"릂"#, r#"릂"#, r#"릂"#, r#"릂"#),
+        (r#"릃"#, r#"릃"#, r#"릃"#, r#"릃"#, r#"릃"#),
+        (r#"름"#, r#"름"#, r#"름"#, r#"름"#, r#"름"#),
+        (r#"릅"#, r#"릅"#, r#"릅"#, r#"릅"#, r#"릅"#),
+        (r#"릆"#, r#"릆"#, r#"릆"#, r#"릆"#, r#"릆"#),
+        (r#"릇"#, r#"릇"#, r#"릇"#, r#"릇"#, r#"릇"#),
+        (r#"릈"#, r#"릈"#, r#"릈"#, r#"릈"#, r#"릈"#),
+        (r#"릉"#, r#"릉"#, r#"릉"#, r#"릉"#, r#"릉"#),
+        (r#"릊"#, r#"릊"#, r#"릊"#, r#"릊"#, r#"릊"#),
+        (r#"릋"#, r#"릋"#, r#"릋"#, r#"릋"#, r#"릋"#),
+        (r#"릌"#, r#"릌"#, r#"릌"#, r#"릌"#, r#"릌"#),
+        (r#"릍"#, r#"릍"#, r#"릍"#, r#"릍"#, r#"릍"#),
+        (r#"릎"#, r#"릎"#, r#"릎"#, r#"릎"#, r#"릎"#),
+        (r#"릏"#, r#"릏"#, r#"릏"#, r#"릏"#, r#"릏"#),
+        (r#"릐"#, r#"릐"#, r#"릐"#, r#"릐"#, r#"릐"#),
+        (r#"릑"#, r#"릑"#, r#"릑"#, r#"릑"#, r#"릑"#),
+        (r#"릒"#, r#"릒"#, r#"릒"#, r#"릒"#, r#"릒"#),
+        (r#"릓"#, r#"릓"#, r#"릓"#, r#"릓"#, r#"릓"#),
+        (r#"릔"#, r#"릔"#, r#"릔"#, r#"릔"#, r#"릔"#),
+        (r#"릕"#, r#"릕"#, r#"릕"#, r#"릕"#, r#"릕"#),
+        (r#"릖"#, r#"릖"#, r#"릖"#, r#"릖"#, r#"릖"#),
+        (r#"릗"#, r#"릗"#, r#"릗"#, r#"릗"#, r#"릗"#),
+        (r#"릘"#, r#"릘"#, r#"릘"#, r#"릘"#, r#"릘"#),
+        (r#"릙"#, r#"릙"#, r#"릙"#, r#"릙"#, r#"릙"#),
+        (r#"릚"#, r#"릚"#, r#"릚"#, r#"릚"#, r#"릚"#),
+        (r#"릛"#, r#"릛"#, r#"릛"#, r#"릛"#, r#"릛"#),
+        (r#"릜"#, r#"릜"#, r#"릜"#, r#"릜"#, r#"릜"#),
+        (r#"릝"#, r#"릝"#, r#"릝"#, r#"릝"#, r#"릝"#),
+        (r#"릞"#, r#"릞"#, r#"릞"#, r#"릞"#, r#"릞"#),
+        (r#"릟"#, r#"릟"#, r#"릟"#, r#"릟"#, r#"릟"#),
+        (r#"릠"#, r#"릠"#, r#"릠"#, r#"릠"#, r#"릠"#),
+        (r#"릡"#, r#"릡"#, r#"릡"#, r#"릡"#, r#"릡"#),
+        (r#"릢"#, r#"릢"#, r#"릢"#, r#"릢"#, r#"릢"#),
+        (r#"릣"#, r#"릣"#, r#"릣"#, r#"릣"#, r#"릣"#),
+        (r#"릤"#, r#"릤"#, r#"릤"#, r#"릤"#, r#"릤"#),
+        (r#"릥"#, r#"릥"#, r#"릥"#, r#"릥"#, r#"릥"#),
+        (r#"릦"#, r#"릦"#, r#"릦"#, r#"릦"#, r#"릦"#),
+        (r#"릧"#, r#"릧"#, r#"릧"#, r#"릧"#, r#"릧"#),
+        (r#"릨"#, r#"릨"#, r#"릨"#, r#"릨"#, r#"릨"#),
+        (r#"릩"#, r#"릩"#, r#"릩"#, r#"릩"#, r#"릩"#),
+        (r#"릪"#, r#"릪"#, r#"릪"#, r#"릪"#, r#"릪"#),
+        (r#"릫"#, r#"릫"#, r#"릫"#, r#"릫"#, r#"릫"#),
+        (r#"리"#, r#"리"#, r#"리"#, r#"리"#, r#"리"#),
+        (r#"릭"#, r#"릭"#, r#"릭"#, r#"릭"#, r#"릭"#),
+        (r#"릮"#, r#"릮"#, r#"릮"#, r#"릮"#, r#"릮"#),
+        (r#"릯"#, r#"릯"#, r#"릯"#, r#"릯"#, r#"릯"#),
+        (r#"린"#, r#"린"#, r#"린"#, r#"린"#, r#"린"#),
+        (r#"릱"#, r#"릱"#, r#"릱"#, r#"릱"#, r#"릱"#),
+        (r#"릲"#, r#"릲"#, r#"릲"#, r#"릲"#, r#"릲"#),
+        (r#"릳"#, r#"릳"#, r#"릳"#, r#"릳"#, r#"릳"#),
+        (r#"릴"#, r#"릴"#, r#"릴"#, r#"릴"#, r#"릴"#),
+        (r#"릵"#, r#"릵"#, r#"릵"#, r#"릵"#, r#"릵"#),
+        (r#"릶"#, r#"릶"#, r#"릶"#, r#"릶"#, r#"릶"#),
+        (r#"릷"#, r#"릷"#, r#"릷"#, r#"릷"#, r#"릷"#),
+        (r#"릸"#, r#"릸"#, r#"릸"#, r#"릸"#, r#"릸"#),
+        (r#"릹"#, r#"릹"#, r#"릹"#, r#"릹"#, r#"릹"#),
+        (r#"릺"#, r#"릺"#, r#"릺"#, r#"릺"#, r#"릺"#),
+        (r#"릻"#, r#"릻"#, r#"릻"#, r#"릻"#, r#"릻"#),
+        (r#"림"#, r#"림"#, r#"림"#, r#"림"#, r#"림"#),
+        (r#"립"#, r#"립"#, r#"립"#, r#"립"#, r#"립"#),
+        (r#"릾"#, r#"릾"#, r#"릾"#, r#"릾"#, r#"릾"#),
+        (r#"릿"#, r#"릿"#, r#"릿"#, r#"릿"#, r#"릿"#),
+        (r#"맀"#, r#"맀"#, r#"맀"#, r#"맀"#, r#"맀"#),
+        (r#"링"#, r#"링"#, r#"링"#, r#"링"#, r#"링"#),
+        (r#"맂"#, r#"맂"#, r#"맂"#, r#"맂"#, r#"맂"#),
+        (r#"맃"#, r#"맃"#, r#"맃"#, r#"맃"#, r#"맃"#),
+        (r#"맄"#, r#"맄"#, r#"맄"#, r#"맄"#, r#"맄"#),
+        (r#"맅"#, r#"맅"#, r#"맅"#, r#"맅"#, r#"맅"#),
+        (r#"맆"#, r#"맆"#, r#"맆"#, r#"맆"#, r#"맆"#),
+        (r#"맇"#, r#"맇"#, r#"맇"#, r#"맇"#, r#"맇"#),
+        (r#"마"#, r#"마"#, r#"마"#, r#"마"#, r#"마"#),
+        (r#"막"#, r#"막"#, r#"막"#, r#"막"#, r#"막"#),
+        (r#"맊"#, r#"맊"#, r#"맊"#, r#"맊"#, r#"맊"#),
+        (r#"맋"#, r#"맋"#, r#"맋"#, r#"맋"#, r#"맋"#),
+        (r#"만"#, r#"만"#, r#"만"#, r#"만"#, r#"만"#),
+        (r#"맍"#, r#"맍"#, r#"맍"#, r#"맍"#, r#"맍"#),
+        (r#"많"#, r#"많"#, r#"많"#, r#"많"#, r#"많"#),
+        (r#"맏"#, r#"맏"#, r#"맏"#, r#"맏"#, r#"맏"#),
+        (r#"말"#, r#"말"#, r#"말"#, r#"말"#, r#"말"#),
+        (r#"맑"#, r#"맑"#, r#"맑"#, r#"맑"#, r#"맑"#),
+        (r#"맒"#, r#"맒"#, r#"맒"#, r#"맒"#, r#"맒"#),
+        (r#"맓"#, r#"맓"#, r#"맓"#, r#"맓"#, r#"맓"#),
+        (r#"맔"#, r#"맔"#, r#"맔"#, r#"맔"#, r#"맔"#),
+        (r#"맕"#, r#"맕"#, r#"맕"#, r#"맕"#, r#"맕"#),
+        (r#"맖"#, r#"맖"#, r#"맖"#, r#"맖"#, r#"맖"#),
+        (r#"맗"#, r#"맗"#, r#"맗"#, r#"맗"#, r#"맗"#),
+        (r#"맘"#, r#"맘"#, r#"맘"#, r#"맘"#, r#"맘"#),
+        (r#"맙"#, r#"맙"#, r#"맙"#, r#"맙"#, r#"맙"#),
+        (r#"맚"#, r#"맚"#, r#"맚"#, r#"맚"#, r#"맚"#),
+        (r#"맛"#, r#"맛"#, r#"맛"#, r#"맛"#, r#"맛"#),
+        (r#"맜"#, r#"맜"#, r#"맜"#, r#"맜"#, r#"맜"#),
+        (r#"망"#, r#"망"#, r#"망"#, r#"망"#, r#"망"#),
+        (r#"맞"#, r#"맞"#, r#"맞"#, r#"맞"#, r#"맞"#),
+        (r#"맟"#, r#"맟"#, r#"맟"#, r#"맟"#, r#"맟"#),
+        (r#"맠"#, r#"맠"#, r#"맠"#, r#"맠"#, r#"맠"#),
+        (r#"맡"#, r#"맡"#, r#"맡"#, r#"맡"#, r#"맡"#),
+        (r#"맢"#, r#"맢"#, r#"맢"#, r#"맢"#, r#"맢"#),
+        (r#"맣"#, r#"맣"#, r#"맣"#, r#"맣"#, r#"맣"#),
+        (r#"매"#, r#"매"#, r#"매"#, r#"매"#, r#"매"#),
+        (r#"맥"#, r#"맥"#, r#"맥"#, r#"맥"#, r#"맥"#),
+        (r#"맦"#, r#"맦"#, r#"맦"#, r#"맦"#, r#"맦"#),
+        (r#"맧"#, r#"맧"#, r#"맧"#, r#"맧"#, r#"맧"#),
+        (r#"맨"#, r#"맨"#, r#"맨"#, r#"맨"#, r#"맨"#),
+        (r#"맩"#, r#"맩"#, r#"맩"#, r#"맩"#, r#"맩"#),
+        (r#"맪"#, r#"맪"#, r#"맪"#, r#"맪"#, r#"맪"#),
+        (r#"맫"#, r#"맫"#, r#"맫"#, r#"맫"#, r#"맫"#),
+        (r#"맬"#, r#"맬"#, r#"맬"#, r#"맬"#, r#"맬"#),
+        (r#"맭"#, r#"맭"#, r#"맭"#, r#"맭"#, r#"맭"#),
+        (r#"맮"#, r#"맮"#, r#"맮"#, r#"맮"#, r#"맮"#),
+        (r#"맯"#, r#"맯"#, r#"맯"#, r#"맯"#, r#"맯"#),
+        (r#"맰"#, r#"맰"#, r#"맰"#, r#"맰"#, r#"맰"#),
+        (r#"맱"#, r#"맱"#, r#"맱"#, r#"맱"#, r#"맱"#),
+        (r#"맲"#, r#"맲"#, r#"맲"#, r#"맲"#, r#"맲"#),
+        (r#"맳"#, r#"맳"#, r#"맳"#, r#"맳"#, r#"맳"#),
+        (r#"맴"#, r#"맴"#, r#"맴"#, r#"맴"#, r#"맴"#),
+        (r#"맵"#, r#"맵"#, r#"맵"#, r#"맵"#, r#"맵"#),
+        (r#"맶"#, r#"맶"#, r#"맶"#, r#"맶"#, r#"맶"#),
+        (r#"맷"#, r#"맷"#, r#"맷"#, r#"맷"#, r#"맷"#),
+        (r#"맸"#, r#"맸"#, r#"맸"#, r#"맸"#, r#"맸"#),
+        (r#"맹"#, r#"맹"#, r#"맹"#, r#"맹"#, r#"맹"#),
+        (r#"맺"#, r#"맺"#, r#"맺"#, r#"맺"#, r#"맺"#),
+        (r#"맻"#, r#"맻"#, r#"맻"#, r#"맻"#, r#"맻"#),
+        (r#"맼"#, r#"맼"#, r#"맼"#, r#"맼"#, r#"맼"#),
+        (r#"맽"#, r#"맽"#, r#"맽"#, r#"맽"#, r#"맽"#),
+        (r#"맾"#, r#"맾"#, r#"맾"#, r#"맾"#, r#"맾"#),
+        (r#"맿"#, r#"맿"#, r#"맿"#, r#"맿"#, r#"맿"#),
+        (r#"먀"#, r#"먀"#, r#"먀"#, r#"먀"#, r#"먀"#),
+        (r#"먁"#, r#"먁"#, r#"먁"#, r#"먁"#, r#"먁"#),
+        (r#"먂"#, r#"먂"#, r#"먂"#, r#"먂"#, r#"먂"#),
+        (r#"먃"#, r#"먃"#, r#"먃"#, r#"먃"#, r#"먃"#),
+        (r#"먄"#, r#"먄"#, r#"먄"#, r#"먄"#, r#"먄"#),
+        (r#"먅"#, r#"먅"#, r#"먅"#, r#"먅"#, r#"먅"#),
+        (r#"먆"#, r#"먆"#, r#"먆"#, r#"먆"#, r#"먆"#),
+        (r#"먇"#, r#"먇"#, r#"먇"#, r#"먇"#, r#"먇"#),
+        (r#"먈"#, r#"먈"#, r#"먈"#, r#"먈"#, r#"먈"#),
+        (r#"먉"#, r#"먉"#, r#"먉"#, r#"먉"#, r#"먉"#),
+        (r#"먊"#, r#"먊"#, r#"먊"#, r#"먊"#, r#"먊"#),
+        (r#"먋"#, r#"먋"#, r#"먋"#, r#"먋"#, r#"먋"#),
+        (r#"먌"#, r#"먌"#, r#"먌"#, r#"먌"#, r#"먌"#),
+        (r#"먍"#, r#"먍"#, r#"먍"#, r#"먍"#, r#"먍"#),
+        (r#"먎"#, r#"먎"#, r#"먎"#, r#"먎"#, r#"먎"#),
+        (r#"먏"#, r#"먏"#, r#"먏"#, r#"먏"#, r#"먏"#),
+        (r#"먐"#, r#"먐"#, r#"먐"#, r#"먐"#, r#"먐"#),
+        (r#"먑"#, r#"먑"#, r#"먑"#, r#"먑"#, r#"먑"#),
+        (r#"먒"#, r#"먒"#, r#"먒"#, r#"먒"#, r#"먒"#),
+        (r#"먓"#, r#"먓"#, r#"먓"#, r#"먓"#, r#"먓"#),
+        (r#"먔"#, r#"먔"#, r#"먔"#, r#"먔"#, r#"먔"#),
+        (r#"먕"#, r#"먕"#, r#"먕"#, r#"먕"#, r#"먕"#),
+        (r#"먖"#, r#"먖"#, r#"먖"#, r#"먖"#, r#"먖"#),
+        (r#"먗"#, r#"먗"#, r#"먗"#, r#"먗"#, r#"먗"#),
+        (r#"먘"#, r#"먘"#, r#"먘"#, r#"먘"#, r#"먘"#),
+        (r#"먙"#, r#"먙"#, r#"먙"#, r#"먙"#, r#"먙"#),
+        (r#"먚"#, r#"먚"#, r#"먚"#, r#"먚"#, r#"먚"#),
+        (r#"먛"#, r#"먛"#, r#"먛"#, r#"먛"#, r#"먛"#),
+        (r#"먜"#, r#"먜"#, r#"먜"#, r#"먜"#, r#"먜"#),
+        (r#"먝"#, r#"먝"#, r#"먝"#, r#"먝"#, r#"먝"#),
+        (r#"먞"#, r#"먞"#, r#"먞"#, r#"먞"#, r#"먞"#),
+        (r#"먟"#, r#"먟"#, r#"먟"#, r#"먟"#, r#"먟"#),
+        (r#"먠"#, r#"먠"#, r#"먠"#, r#"먠"#, r#"먠"#),
+        (r#"먡"#, r#"먡"#, r#"먡"#, r#"먡"#, r#"먡"#),
+        (r#"먢"#, r#"먢"#, r#"먢"#, r#"먢"#, r#"먢"#),
+        (r#"먣"#, r#"먣"#, r#"먣"#, r#"먣"#, r#"먣"#),
+        (r#"먤"#, r#"먤"#, r#"먤"#, r#"먤"#, r#"먤"#),
+        (r#"먥"#, r#"먥"#, r#"먥"#, r#"먥"#, r#"먥"#),
+        (r#"먦"#, r#"먦"#, r#"먦"#, r#"먦"#, r#"먦"#),
+        (r#"먧"#, r#"먧"#, r#"먧"#, r#"먧"#, r#"먧"#),
+        (r#"먨"#, r#"먨"#, r#"먨"#, r#"먨"#, r#"먨"#),
+        (r#"먩"#, r#"먩"#, r#"먩"#, r#"먩"#, r#"먩"#),
+        (r#"먪"#, r#"먪"#, r#"먪"#, r#"먪"#, r#"먪"#),
+        (r#"먫"#, r#"먫"#, r#"먫"#, r#"먫"#, r#"먫"#),
+        (r#"먬"#, r#"먬"#, r#"먬"#, r#"먬"#, r#"먬"#),
+        (r#"먭"#, r#"먭"#, r#"먭"#, r#"먭"#, r#"먭"#),
+        (r#"먮"#, r#"먮"#, r#"먮"#, r#"먮"#, r#"먮"#),
+        (r#"먯"#, r#"먯"#, r#"먯"#, r#"먯"#, r#"먯"#),
+        (r#"먰"#, r#"먰"#, r#"먰"#, r#"먰"#, r#"먰"#),
+        (r#"먱"#, r#"먱"#, r#"먱"#, r#"먱"#, r#"먱"#),
+        (r#"먲"#, r#"먲"#, r#"먲"#, r#"먲"#, r#"먲"#),
+        (r#"먳"#, r#"먳"#, r#"먳"#, r#"먳"#, r#"먳"#),
+        (r#"먴"#, r#"먴"#, r#"먴"#, r#"먴"#, r#"먴"#),
+        (r#"먵"#, r#"먵"#, r#"먵"#, r#"먵"#, r#"먵"#),
+        (r#"먶"#, r#"먶"#, r#"먶"#, r#"먶"#, r#"먶"#),
+        (r#"먷"#, r#"먷"#, r#"먷"#, r#"먷"#, r#"먷"#),
+        (r#"머"#, r#"머"#, r#"머"#, r#"머"#, r#"머"#),
+        (r#"먹"#, r#"먹"#, r#"먹"#, r#"먹"#, r#"먹"#),
+        (r#"먺"#, r#"먺"#, r#"먺"#, r#"먺"#, r#"먺"#),
+        (r#"먻"#, r#"먻"#, r#"먻"#, r#"먻"#, r#"먻"#),
+        (r#"먼"#, r#"먼"#, r#"먼"#, r#"먼"#, r#"먼"#),
+        (r#"먽"#, r#"먽"#, r#"먽"#, r#"먽"#, r#"먽"#),
+        (r#"먾"#, r#"먾"#, r#"먾"#, r#"먾"#, r#"먾"#),
+        (r#"먿"#, r#"먿"#, r#"먿"#, r#"먿"#, r#"먿"#),
+        (r#"멀"#, r#"멀"#, r#"멀"#, r#"멀"#, r#"멀"#),
+        (r#"멁"#, r#"멁"#, r#"멁"#, r#"멁"#, r#"멁"#),
+        (r#"멂"#, r#"멂"#, r#"멂"#, r#"멂"#, r#"멂"#),
+        (r#"멃"#, r#"멃"#, r#"멃"#, r#"멃"#, r#"멃"#),
+        (r#"멄"#, r#"멄"#, r#"멄"#, r#"멄"#, r#"멄"#),
+        (r#"멅"#, r#"멅"#, r#"멅"#, r#"멅"#, r#"멅"#),
+        (r#"멆"#, r#"멆"#, r#"멆"#, r#"멆"#, r#"멆"#),
+        (r#"멇"#, r#"멇"#, r#"멇"#, r#"멇"#, r#"멇"#),
+        (r#"멈"#, r#"멈"#, r#"멈"#, r#"멈"#, r#"멈"#),
+        (r#"멉"#, r#"멉"#, r#"멉"#, r#"멉"#, r#"멉"#),
+        (r#"멊"#, r#"멊"#, r#"멊"#, r#"멊"#, r#"멊"#),
+        (r#"멋"#, r#"멋"#, r#"멋"#, r#"멋"#, r#"멋"#),
+        (r#"멌"#, r#"멌"#, r#"멌"#, r#"멌"#, r#"멌"#),
+        (r#"멍"#, r#"멍"#, r#"멍"#, r#"멍"#, r#"멍"#),
+        (r#"멎"#, r#"멎"#, r#"멎"#, r#"멎"#, r#"멎"#),
+        (r#"멏"#, r#"멏"#, r#"멏"#, r#"멏"#, r#"멏"#),
+        (r#"멐"#, r#"멐"#, r#"멐"#, r#"멐"#, r#"멐"#),
+        (r#"멑"#, r#"멑"#, r#"멑"#, r#"멑"#, r#"멑"#),
+        (r#"멒"#, r#"멒"#, r#"멒"#, r#"멒"#, r#"멒"#),
+        (r#"멓"#, r#"멓"#, r#"멓"#, r#"멓"#, r#"멓"#),
+        (r#"메"#, r#"메"#, r#"메"#, r#"메"#, r#"메"#),
+        (r#"멕"#, r#"멕"#, r#"멕"#, r#"멕"#, r#"멕"#),
+        (r#"멖"#, r#"멖"#, r#"멖"#, r#"멖"#, r#"멖"#),
+        (r#"멗"#, r#"멗"#, r#"멗"#, r#"멗"#, r#"멗"#),
+        (r#"멘"#, r#"멘"#, r#"멘"#, r#"멘"#, r#"멘"#),
+        (r#"멙"#, r#"멙"#, r#"멙"#, r#"멙"#, r#"멙"#),
+        (r#"멚"#, r#"멚"#, r#"멚"#, r#"멚"#, r#"멚"#),
+        (r#"멛"#, r#"멛"#, r#"멛"#, r#"멛"#, r#"멛"#),
+        (r#"멜"#, r#"멜"#, r#"멜"#, r#"멜"#, r#"멜"#),
+        (r#"멝"#, r#"멝"#, r#"멝"#, r#"멝"#, r#"멝"#),
+        (r#"멞"#, r#"멞"#, r#"멞"#, r#"멞"#, r#"멞"#),
+        (r#"멟"#, r#"멟"#, r#"멟"#, r#"멟"#, r#"멟"#),
+        (r#"멠"#, r#"멠"#, r#"멠"#, r#"멠"#, r#"멠"#),
+        (r#"멡"#, r#"멡"#, r#"멡"#, r#"멡"#, r#"멡"#),
+        (r#"멢"#, r#"멢"#, r#"멢"#, r#"멢"#, r#"멢"#),
+        (r#"멣"#, r#"멣"#, r#"멣"#, r#"멣"#, r#"멣"#),
+        (r#"멤"#, r#"멤"#, r#"멤"#, r#"멤"#, r#"멤"#),
+        (r#"멥"#, r#"멥"#, r#"멥"#, r#"멥"#, r#"멥"#),
+        (r#"멦"#, r#"멦"#, r#"멦"#, r#"멦"#, r#"멦"#),
+        (r#"멧"#, r#"멧"#, r#"멧"#, r#"멧"#, r#"멧"#),
+        (r#"멨"#, r#"멨"#, r#"멨"#, r#"멨"#, r#"멨"#),
+        (r#"멩"#, r#"멩"#, r#"멩"#, r#"멩"#, r#"멩"#),
+        (r#"멪"#, r#"멪"#, r#"멪"#, r#"멪"#, r#"멪"#),
+        (r#"멫"#, r#"멫"#, r#"멫"#, r#"멫"#, r#"멫"#),
+        (r#"멬"#, r#"멬"#, r#"멬"#, r#"멬"#, r#"멬"#),
+        (r#"멭"#, r#"멭"#, r#"멭"#, r#"멭"#, r#"멭"#),
+        (r#"멮"#, r#"멮"#, r#"멮"#, r#"멮"#, r#"멮"#),
+        (r#"멯"#, r#"멯"#, r#"멯"#, r#"멯"#, r#"멯"#),
+        (r#"며"#, r#"며"#, r#"며"#, r#"며"#, r#"며"#),
+        (r#"멱"#, r#"멱"#, r#"멱"#, r#"멱"#, r#"멱"#),
+        (r#"멲"#, r#"멲"#, r#"멲"#, r#"멲"#, r#"멲"#),
+        (r#"멳"#, r#"멳"#, r#"멳"#, r#"멳"#, r#"멳"#),
+        (r#"면"#, r#"면"#, r#"면"#, r#"면"#, r#"면"#),
+        (r#"멵"#, r#"멵"#, r#"멵"#, r#"멵"#, r#"멵"#),
+        (r#"멶"#, r#"멶"#, r#"멶"#, r#"멶"#, r#"멶"#),
+        (r#"멷"#, r#"멷"#, r#"멷"#, r#"멷"#, r#"멷"#),
+        (r#"멸"#, r#"멸"#, r#"멸"#, r#"멸"#, r#"멸"#),
+        (r#"멹"#, r#"멹"#, r#"멹"#, r#"멹"#, r#"멹"#),
+        (r#"멺"#, r#"멺"#, r#"멺"#, r#"멺"#, r#"멺"#),
+        (r#"멻"#, r#"멻"#, r#"멻"#, r#"멻"#, r#"멻"#),
+        (r#"멼"#, r#"멼"#, r#"멼"#, r#"멼"#, r#"멼"#),
+        (r#"멽"#, r#"멽"#, r#"멽"#, r#"멽"#, r#"멽"#),
+        (r#"멾"#, r#"멾"#, r#"멾"#, r#"멾"#, r#"멾"#),
+        (r#"멿"#, r#"멿"#, r#"멿"#, r#"멿"#, r#"멿"#),
+        (r#"몀"#, r#"몀"#, r#"몀"#, r#"몀"#, r#"몀"#),
+        (r#"몁"#, r#"몁"#, r#"몁"#, r#"몁"#, r#"몁"#),
+        (r#"몂"#, r#"몂"#, r#"몂"#, r#"몂"#, r#"몂"#),
+        (r#"몃"#, r#"몃"#, r#"몃"#, r#"몃"#, r#"몃"#),
+        (r#"몄"#, r#"몄"#, r#"몄"#, r#"몄"#, r#"몄"#),
+        (r#"명"#, r#"명"#, r#"명"#, r#"명"#, r#"명"#),
+        (r#"몆"#, r#"몆"#, r#"몆"#, r#"몆"#, r#"몆"#),
+        (r#"몇"#, r#"몇"#, r#"몇"#, r#"몇"#, r#"몇"#),
+        (r#"몈"#, r#"몈"#, r#"몈"#, r#"몈"#, r#"몈"#),
+        (r#"몉"#, r#"몉"#, r#"몉"#, r#"몉"#, r#"몉"#),
+        (r#"몊"#, r#"몊"#, r#"몊"#, r#"몊"#, r#"몊"#),
+        (r#"몋"#, r#"몋"#, r#"몋"#, r#"몋"#, r#"몋"#),
+        (r#"몌"#, r#"몌"#, r#"몌"#, r#"몌"#, r#"몌"#),
+        (r#"몍"#, r#"몍"#, r#"몍"#, r#"몍"#, r#"몍"#),
+        (r#"몎"#, r#"몎"#, r#"몎"#, r#"몎"#, r#"몎"#),
+        (r#"몏"#, r#"몏"#, r#"몏"#, r#"몏"#, r#"몏"#),
+        (r#"몐"#, r#"몐"#, r#"몐"#, r#"몐"#, r#"몐"#),
+        (r#"몑"#, r#"몑"#, r#"몑"#, r#"몑"#, r#"몑"#),
+        (r#"몒"#, r#"몒"#, r#"몒"#, r#"몒"#, r#"몒"#),
+        (r#"몓"#, r#"몓"#, r#"몓"#, r#"몓"#, r#"몓"#),
+        (r#"몔"#, r#"몔"#, r#"몔"#, r#"몔"#, r#"몔"#),
+        (r#"몕"#, r#"몕"#, r#"몕"#, r#"몕"#, r#"몕"#),
+        (r#"몖"#, r#"몖"#, r#"몖"#, r#"몖"#, r#"몖"#),
+        (r#"몗"#, r#"몗"#, r#"몗"#, r#"몗"#, r#"몗"#),
+        (r#"몘"#, r#"몘"#, r#"몘"#, r#"몘"#, r#"몘"#),
+        (r#"몙"#, r#"몙"#, r#"몙"#, r#"몙"#, r#"몙"#),
+        (r#"몚"#, r#"몚"#, r#"몚"#, r#"몚"#, r#"몚"#),
+        (r#"몛"#, r#"몛"#, r#"몛"#, r#"몛"#, r#"몛"#),
+        (r#"몜"#, r#"몜"#, r#"몜"#, r#"몜"#, r#"몜"#),
+        (r#"몝"#, r#"몝"#, r#"몝"#, r#"몝"#, r#"몝"#),
+        (r#"몞"#, r#"몞"#, r#"몞"#, r#"몞"#, r#"몞"#),
+        (r#"몟"#, r#"몟"#, r#"몟"#, r#"몟"#, r#"몟"#),
+        (r#"몠"#, r#"몠"#, r#"몠"#, r#"몠"#, r#"몠"#),
+        (r#"몡"#, r#"몡"#, r#"몡"#, r#"몡"#, r#"몡"#),
+        (r#"몢"#, r#"몢"#, r#"몢"#, r#"몢"#, r#"몢"#),
+        (r#"몣"#, r#"몣"#, r#"몣"#, r#"몣"#, r#"몣"#),
+        (r#"몤"#, r#"몤"#, r#"몤"#, r#"몤"#, r#"몤"#),
+        (r#"몥"#, r#"몥"#, r#"몥"#, r#"몥"#, r#"몥"#),
+        (r#"몦"#, r#"몦"#, r#"몦"#, r#"몦"#, r#"몦"#),
+        (r#"몧"#, r#"몧"#, r#"몧"#, r#"몧"#, r#"몧"#),
+        (r#"모"#, r#"모"#, r#"모"#, r#"모"#, r#"모"#),
+        (r#"목"#, r#"목"#, r#"목"#, r#"목"#, r#"목"#),
+        (r#"몪"#, r#"몪"#, r#"몪"#, r#"몪"#, r#"몪"#),
+        (r#"몫"#, r#"몫"#, r#"몫"#, r#"몫"#, r#"몫"#),
+        (r#"몬"#, r#"몬"#, r#"몬"#, r#"몬"#, r#"몬"#),
+        (r#"몭"#, r#"몭"#, r#"몭"#, r#"몭"#, r#"몭"#),
+        (r#"몮"#, r#"몮"#, r#"몮"#, r#"몮"#, r#"몮"#),
+        (r#"몯"#, r#"몯"#, r#"몯"#, r#"몯"#, r#"몯"#),
+        (r#"몰"#, r#"몰"#, r#"몰"#, r#"몰"#, r#"몰"#),
+        (r#"몱"#, r#"몱"#, r#"몱"#, r#"몱"#, r#"몱"#),
+        (r#"몲"#, r#"몲"#, r#"몲"#, r#"몲"#, r#"몲"#),
+        (r#"몳"#, r#"몳"#, r#"몳"#, r#"몳"#, r#"몳"#),
+        (r#"몴"#, r#"몴"#, r#"몴"#, r#"몴"#, r#"몴"#),
+        (r#"몵"#, r#"몵"#, r#"몵"#, r#"몵"#, r#"몵"#),
+        (r#"몶"#, r#"몶"#, r#"몶"#, r#"몶"#, r#"몶"#),
+        (r#"몷"#, r#"몷"#, r#"몷"#, r#"몷"#, r#"몷"#),
+        (r#"몸"#, r#"몸"#, r#"몸"#, r#"몸"#, r#"몸"#),
+        (r#"몹"#, r#"몹"#, r#"몹"#, r#"몹"#, r#"몹"#),
+        (r#"몺"#, r#"몺"#, r#"몺"#, r#"몺"#, r#"몺"#),
+        (r#"못"#, r#"못"#, r#"못"#, r#"못"#, r#"못"#),
+        (r#"몼"#, r#"몼"#, r#"몼"#, r#"몼"#, r#"몼"#),
+        (r#"몽"#, r#"몽"#, r#"몽"#, r#"몽"#, r#"몽"#),
+        (r#"몾"#, r#"몾"#, r#"몾"#, r#"몾"#, r#"몾"#),
+        (r#"몿"#, r#"몿"#, r#"몿"#, r#"몿"#, r#"몿"#),
+        (r#"뫀"#, r#"뫀"#, r#"뫀"#, r#"뫀"#, r#"뫀"#),
+        (r#"뫁"#, r#"뫁"#, r#"뫁"#, r#"뫁"#, r#"뫁"#),
+        (r#"뫂"#, r#"뫂"#, r#"뫂"#, r#"뫂"#, r#"뫂"#),
+        (r#"뫃"#, r#"뫃"#, r#"뫃"#, r#"뫃"#, r#"뫃"#),
+        (r#"뫄"#, r#"뫄"#, r#"뫄"#, r#"뫄"#, r#"뫄"#),
+        (r#"뫅"#, r#"뫅"#, r#"뫅"#, r#"뫅"#, r#"뫅"#),
+        (r#"뫆"#, r#"뫆"#, r#"뫆"#, r#"뫆"#, r#"뫆"#),
+        (r#"뫇"#, r#"뫇"#, r#"뫇"#, r#"뫇"#, r#"뫇"#),
+        (r#"뫈"#, r#"뫈"#, r#"뫈"#, r#"뫈"#, r#"뫈"#),
+        (r#"뫉"#, r#"뫉"#, r#"뫉"#, r#"뫉"#, r#"뫉"#),
+        (r#"뫊"#, r#"뫊"#, r#"뫊"#, r#"뫊"#, r#"뫊"#),
+        (r#"뫋"#, r#"뫋"#, r#"뫋"#, r#"뫋"#, r#"뫋"#),
+        (r#"뫌"#, r#"뫌"#, r#"뫌"#, r#"뫌"#, r#"뫌"#),
+        (r#"뫍"#, r#"뫍"#, r#"뫍"#, r#"뫍"#, r#"뫍"#),
+        (r#"뫎"#, r#"뫎"#, r#"뫎"#, r#"뫎"#, r#"뫎"#),
+        (r#"뫏"#, r#"뫏"#, r#"뫏"#, r#"뫏"#, r#"뫏"#),
+        (r#"뫐"#, r#"뫐"#, r#"뫐"#, r#"뫐"#, r#"뫐"#),
+        (r#"뫑"#, r#"뫑"#, r#"뫑"#, r#"뫑"#, r#"뫑"#),
+        (r#"뫒"#, r#"뫒"#, r#"뫒"#, r#"뫒"#, r#"뫒"#),
+        (r#"뫓"#, r#"뫓"#, r#"뫓"#, r#"뫓"#, r#"뫓"#),
+        (r#"뫔"#, r#"뫔"#, r#"뫔"#, r#"뫔"#, r#"뫔"#),
+        (r#"뫕"#, r#"뫕"#, r#"뫕"#, r#"뫕"#, r#"뫕"#),
+        (r#"뫖"#, r#"뫖"#, r#"뫖"#, r#"뫖"#, r#"뫖"#),
+        (r#"뫗"#, r#"뫗"#, r#"뫗"#, r#"뫗"#, r#"뫗"#),
+        (r#"뫘"#, r#"뫘"#, r#"뫘"#, r#"뫘"#, r#"뫘"#),
+        (r#"뫙"#, r#"뫙"#, r#"뫙"#, r#"뫙"#, r#"뫙"#),
+        (r#"뫚"#, r#"뫚"#, r#"뫚"#, r#"뫚"#, r#"뫚"#),
+        (r#"뫛"#, r#"뫛"#, r#"뫛"#, r#"뫛"#, r#"뫛"#),
+        (r#"뫜"#, r#"뫜"#, r#"뫜"#, r#"뫜"#, r#"뫜"#),
+        (r#"뫝"#, r#"뫝"#, r#"뫝"#, r#"뫝"#, r#"뫝"#),
+        (r#"뫞"#, r#"뫞"#, r#"뫞"#, r#"뫞"#, r#"뫞"#),
+        (r#"뫟"#, r#"뫟"#, r#"뫟"#, r#"뫟"#, r#"뫟"#),
+        (r#"뫠"#, r#"뫠"#, r#"뫠"#, r#"뫠"#, r#"뫠"#),
+        (r#"뫡"#, r#"뫡"#, r#"뫡"#, r#"뫡"#, r#"뫡"#),
+        (r#"뫢"#, r#"뫢"#, r#"뫢"#, r#"뫢"#, r#"뫢"#),
+        (r#"뫣"#, r#"뫣"#, r#"뫣"#, r#"뫣"#, r#"뫣"#),
+        (r#"뫤"#, r#"뫤"#, r#"뫤"#, r#"뫤"#, r#"뫤"#),
+        (r#"뫥"#, r#"뫥"#, r#"뫥"#, r#"뫥"#, r#"뫥"#),
+        (r#"뫦"#, r#"뫦"#, r#"뫦"#, r#"뫦"#, r#"뫦"#),
+        (r#"뫧"#, r#"뫧"#, r#"뫧"#, r#"뫧"#, r#"뫧"#),
+        (r#"뫨"#, r#"뫨"#, r#"뫨"#, r#"뫨"#, r#"뫨"#),
+        (r#"뫩"#, r#"뫩"#, r#"뫩"#, r#"뫩"#, r#"뫩"#),
+        (r#"뫪"#, r#"뫪"#, r#"뫪"#, r#"뫪"#, r#"뫪"#),
+        (r#"뫫"#, r#"뫫"#, r#"뫫"#, r#"뫫"#, r#"뫫"#),
+        (r#"뫬"#, r#"뫬"#, r#"뫬"#, r#"뫬"#, r#"뫬"#),
+        (r#"뫭"#, r#"뫭"#, r#"뫭"#, r#"뫭"#, r#"뫭"#),
+        (r#"뫮"#, r#"뫮"#, r#"뫮"#, r#"뫮"#, r#"뫮"#),
+        (r#"뫯"#, r#"뫯"#, r#"뫯"#, r#"뫯"#, r#"뫯"#),
+        (r#"뫰"#, r#"뫰"#, r#"뫰"#, r#"뫰"#, r#"뫰"#),
+        (r#"뫱"#, r#"뫱"#, r#"뫱"#, r#"뫱"#, r#"뫱"#),
+        (r#"뫲"#, r#"뫲"#, r#"뫲"#, r#"뫲"#, r#"뫲"#),
+        (r#"뫳"#, r#"뫳"#, r#"뫳"#, r#"뫳"#, r#"뫳"#),
+        (r#"뫴"#, r#"뫴"#, r#"뫴"#, r#"뫴"#, r#"뫴"#),
+        (r#"뫵"#, r#"뫵"#, r#"뫵"#, r#"뫵"#, r#"뫵"#),
+        (r#"뫶"#, r#"뫶"#, r#"뫶"#, r#"뫶"#, r#"뫶"#),
+        (r#"뫷"#, r#"뫷"#, r#"뫷"#, r#"뫷"#, r#"뫷"#),
+        (r#"뫸"#, r#"뫸"#, r#"뫸"#, r#"뫸"#, r#"뫸"#),
+        (r#"뫹"#, r#"뫹"#, r#"뫹"#, r#"뫹"#, r#"뫹"#),
+        (r#"뫺"#, r#"뫺"#, r#"뫺"#, r#"뫺"#, r#"뫺"#),
+        (r#"뫻"#, r#"뫻"#, r#"뫻"#, r#"뫻"#, r#"뫻"#),
+        (r#"뫼"#, r#"뫼"#, r#"뫼"#, r#"뫼"#, r#"뫼"#),
+        (r#"뫽"#, r#"뫽"#, r#"뫽"#, r#"뫽"#, r#"뫽"#),
+        (r#"뫾"#, r#"뫾"#, r#"뫾"#, r#"뫾"#, r#"뫾"#),
+        (r#"뫿"#, r#"뫿"#, r#"뫿"#, r#"뫿"#, r#"뫿"#),
+        (r#"묀"#, r#"묀"#, r#"묀"#, r#"묀"#, r#"묀"#),
+        (r#"묁"#, r#"묁"#, r#"묁"#, r#"묁"#, r#"묁"#),
+        (r#"묂"#, r#"묂"#, r#"묂"#, r#"묂"#, r#"묂"#),
+        (r#"묃"#, r#"묃"#, r#"묃"#, r#"묃"#, r#"묃"#),
+        (r#"묄"#, r#"묄"#, r#"묄"#, r#"묄"#, r#"묄"#),
+        (r#"묅"#, r#"묅"#, r#"묅"#, r#"묅"#, r#"묅"#),
+        (r#"묆"#, r#"묆"#, r#"묆"#, r#"묆"#, r#"묆"#),
+        (r#"묇"#, r#"묇"#, r#"묇"#, r#"묇"#, r#"묇"#),
+        (r#"묈"#, r#"묈"#, r#"묈"#, r#"묈"#, r#"묈"#),
+        (r#"묉"#, r#"묉"#, r#"묉"#, r#"묉"#, r#"묉"#),
+        (r#"묊"#, r#"묊"#, r#"묊"#, r#"묊"#, r#"묊"#),
+        (r#"묋"#, r#"묋"#, r#"묋"#, r#"묋"#, r#"묋"#),
+        (r#"묌"#, r#"묌"#, r#"묌"#, r#"묌"#, r#"묌"#),
+        (r#"묍"#, r#"묍"#, r#"묍"#, r#"묍"#, r#"묍"#),
+        (r#"묎"#, r#"묎"#, r#"묎"#, r#"묎"#, r#"묎"#),
+        (r#"묏"#, r#"묏"#, r#"묏"#, r#"묏"#, r#"묏"#),
+        (r#"묐"#, r#"묐"#, r#"묐"#, r#"묐"#, r#"묐"#),
+        (r#"묑"#, r#"묑"#, r#"묑"#, r#"묑"#, r#"묑"#),
+        (r#"묒"#, r#"묒"#, r#"묒"#, r#"묒"#, r#"묒"#),
+        (r#"묓"#, r#"묓"#, r#"묓"#, r#"묓"#, r#"묓"#),
+        (r#"묔"#, r#"묔"#, r#"묔"#, r#"묔"#, r#"묔"#),
+        (r#"묕"#, r#"묕"#, r#"묕"#, r#"묕"#, r#"묕"#),
+        (r#"묖"#, r#"묖"#, r#"묖"#, r#"묖"#, r#"묖"#),
+        (r#"묗"#, r#"묗"#, r#"묗"#, r#"묗"#, r#"묗"#),
+        (r#"묘"#, r#"묘"#, r#"묘"#, r#"묘"#, r#"묘"#),
+        (r#"묙"#, r#"묙"#, r#"묙"#, r#"묙"#, r#"묙"#),
+        (r#"묚"#, r#"묚"#, r#"묚"#, r#"묚"#, r#"묚"#),
+        (r#"묛"#, r#"묛"#, r#"묛"#, r#"묛"#, r#"묛"#),
+        (r#"묜"#, r#"묜"#, r#"묜"#, r#"묜"#, r#"묜"#),
+        (r#"묝"#, r#"묝"#, r#"묝"#, r#"묝"#, r#"묝"#),
+        (r#"묞"#, r#"묞"#, r#"묞"#, r#"묞"#, r#"묞"#),
+        (r#"묟"#, r#"묟"#, r#"묟"#, r#"묟"#, r#"묟"#),
+        (r#"묠"#, r#"묠"#, r#"묠"#, r#"묠"#, r#"묠"#),
+        (r#"묡"#, r#"묡"#, r#"묡"#, r#"묡"#, r#"묡"#),
+        (r#"묢"#, r#"묢"#, r#"묢"#, r#"묢"#, r#"묢"#),
+        (r#"묣"#, r#"묣"#, r#"묣"#, r#"묣"#, r#"묣"#),
+        (r#"묤"#, r#"묤"#, r#"묤"#, r#"묤"#, r#"묤"#),
+        (r#"묥"#, r#"묥"#, r#"묥"#, r#"묥"#, r#"묥"#),
+        (r#"묦"#, r#"묦"#, r#"묦"#, r#"묦"#, r#"묦"#),
+        (r#"묧"#, r#"묧"#, r#"묧"#, r#"묧"#, r#"묧"#),
+        (r#"묨"#, r#"묨"#, r#"묨"#, r#"묨"#, r#"묨"#),
+        (r#"묩"#, r#"묩"#, r#"묩"#, r#"묩"#, r#"묩"#),
+        (r#"묪"#, r#"묪"#, r#"묪"#, r#"묪"#, r#"묪"#),
+        (r#"묫"#, r#"묫"#, r#"묫"#, r#"묫"#, r#"묫"#),
+        (r#"묬"#, r#"묬"#, r#"묬"#, r#"묬"#, r#"묬"#),
+        (r#"묭"#, r#"묭"#, r#"묭"#, r#"묭"#, r#"묭"#),
+        (r#"묮"#, r#"묮"#, r#"묮"#, r#"묮"#, r#"묮"#),
+        (r#"묯"#, r#"묯"#, r#"묯"#, r#"묯"#, r#"묯"#),
+        (r#"묰"#, r#"묰"#, r#"묰"#, r#"묰"#, r#"묰"#),
+        (r#"묱"#, r#"묱"#, r#"묱"#, r#"묱"#, r#"묱"#),
+        (r#"묲"#, r#"묲"#, r#"묲"#, r#"묲"#, r#"묲"#),
+        (r#"묳"#, r#"묳"#, r#"묳"#, r#"묳"#, r#"묳"#),
+        (r#"무"#, r#"무"#, r#"무"#, r#"무"#, r#"무"#),
+        (r#"묵"#, r#"묵"#, r#"묵"#, r#"묵"#, r#"묵"#),
+        (r#"묶"#, r#"묶"#, r#"묶"#, r#"묶"#, r#"묶"#),
+        (r#"묷"#, r#"묷"#, r#"묷"#, r#"묷"#, r#"묷"#),
+        (r#"문"#, r#"문"#, r#"문"#, r#"문"#, r#"문"#),
+        (r#"묹"#, r#"묹"#, r#"묹"#, r#"묹"#, r#"묹"#),
+        (r#"묺"#, r#"묺"#, r#"묺"#, r#"묺"#, r#"묺"#),
+        (r#"묻"#, r#"묻"#, r#"묻"#, r#"묻"#, r#"묻"#),
+        (r#"물"#, r#"물"#, r#"물"#, r#"물"#, r#"물"#),
+        (r#"묽"#, r#"묽"#, r#"묽"#, r#"묽"#, r#"묽"#),
+        (r#"묾"#, r#"묾"#, r#"묾"#, r#"묾"#, r#"묾"#),
+        (r#"묿"#, r#"묿"#, r#"묿"#, r#"묿"#, r#"묿"#),
+        (r#"뭀"#, r#"뭀"#, r#"뭀"#, r#"뭀"#, r#"뭀"#),
+        (r#"뭁"#, r#"뭁"#, r#"뭁"#, r#"뭁"#, r#"뭁"#),
+        (r#"뭂"#, r#"뭂"#, r#"뭂"#, r#"뭂"#, r#"뭂"#),
+        (r#"뭃"#, r#"뭃"#, r#"뭃"#, r#"뭃"#, r#"뭃"#),
+        (r#"뭄"#, r#"뭄"#, r#"뭄"#, r#"뭄"#, r#"뭄"#),
+        (r#"뭅"#, r#"뭅"#, r#"뭅"#, r#"뭅"#, r#"뭅"#),
+        (r#"뭆"#, r#"뭆"#, r#"뭆"#, r#"뭆"#, r#"뭆"#),
+        (r#"뭇"#, r#"뭇"#, r#"뭇"#, r#"뭇"#, r#"뭇"#),
+        (r#"뭈"#, r#"뭈"#, r#"뭈"#, r#"뭈"#, r#"뭈"#),
+        (r#"뭉"#, r#"뭉"#, r#"뭉"#, r#"뭉"#, r#"뭉"#),
+        (r#"뭊"#, r#"뭊"#, r#"뭊"#, r#"뭊"#, r#"뭊"#),
+        (r#"뭋"#, r#"뭋"#, r#"뭋"#, r#"뭋"#, r#"뭋"#),
+        (r#"뭌"#, r#"뭌"#, r#"뭌"#, r#"뭌"#, r#"뭌"#),
+        (r#"뭍"#, r#"뭍"#, r#"뭍"#, r#"뭍"#, r#"뭍"#),
+        (r#"뭎"#, r#"뭎"#, r#"뭎"#, r#"뭎"#, r#"뭎"#),
+        (r#"뭏"#, r#"뭏"#, r#"뭏"#, r#"뭏"#, r#"뭏"#),
+        (r#"뭐"#, r#"뭐"#, r#"뭐"#, r#"뭐"#, r#"뭐"#),
+        (r#"뭑"#, r#"뭑"#, r#"뭑"#, r#"뭑"#, r#"뭑"#),
+        (r#"뭒"#, r#"뭒"#, r#"뭒"#, r#"뭒"#, r#"뭒"#),
+        (r#"뭓"#, r#"뭓"#, r#"뭓"#, r#"뭓"#, r#"뭓"#),
+        (r#"뭔"#, r#"뭔"#, r#"뭔"#, r#"뭔"#, r#"뭔"#),
+        (r#"뭕"#, r#"뭕"#, r#"뭕"#, r#"뭕"#, r#"뭕"#),
+        (r#"뭖"#, r#"뭖"#, r#"뭖"#, r#"뭖"#, r#"뭖"#),
+        (r#"뭗"#, r#"뭗"#, r#"뭗"#, r#"뭗"#, r#"뭗"#),
+        (r#"뭘"#, r#"뭘"#, r#"뭘"#, r#"뭘"#, r#"뭘"#),
+        (r#"뭙"#, r#"뭙"#, r#"뭙"#, r#"뭙"#, r#"뭙"#),
+        (r#"뭚"#, r#"뭚"#, r#"뭚"#, r#"뭚"#, r#"뭚"#),
+        (r#"뭛"#, r#"뭛"#, r#"뭛"#, r#"뭛"#, r#"뭛"#),
+        (r#"뭜"#, r#"뭜"#, r#"뭜"#, r#"뭜"#, r#"뭜"#),
+        (r#"뭝"#, r#"뭝"#, r#"뭝"#, r#"뭝"#, r#"뭝"#),
+        (r#"뭞"#, r#"뭞"#, r#"뭞"#, r#"뭞"#, r#"뭞"#),
+        (r#"뭟"#, r#"뭟"#, r#"뭟"#, r#"뭟"#, r#"뭟"#),
+        (r#"뭠"#, r#"뭠"#, r#"뭠"#, r#"뭠"#, r#"뭠"#),
+        (r#"뭡"#, r#"뭡"#, r#"뭡"#, r#"뭡"#, r#"뭡"#),
+        (r#"뭢"#, r#"뭢"#, r#"뭢"#, r#"뭢"#, r#"뭢"#),
+        (r#"뭣"#, r#"뭣"#, r#"뭣"#, r#"뭣"#, r#"뭣"#),
+        (r#"뭤"#, r#"뭤"#, r#"뭤"#, r#"뭤"#, r#"뭤"#),
+        (r#"뭥"#, r#"뭥"#, r#"뭥"#, r#"뭥"#, r#"뭥"#),
+        (r#"뭦"#, r#"뭦"#, r#"뭦"#, r#"뭦"#, r#"뭦"#),
+        (r#"뭧"#, r#"뭧"#, r#"뭧"#, r#"뭧"#, r#"뭧"#),
+        (r#"뭨"#, r#"뭨"#, r#"뭨"#, r#"뭨"#, r#"뭨"#),
+        (r#"뭩"#, r#"뭩"#, r#"뭩"#, r#"뭩"#, r#"뭩"#),
+        (r#"뭪"#, r#"뭪"#, r#"뭪"#, r#"뭪"#, r#"뭪"#),
+        (r#"뭫"#, r#"뭫"#, r#"뭫"#, r#"뭫"#, r#"뭫"#),
+        (r#"뭬"#, r#"뭬"#, r#"뭬"#, r#"뭬"#, r#"뭬"#),
+        (r#"뭭"#, r#"뭭"#, r#"뭭"#, r#"뭭"#, r#"뭭"#),
+        (r#"뭮"#, r#"뭮"#, r#"뭮"#, r#"뭮"#, r#"뭮"#),
+        (r#"뭯"#, r#"뭯"#, r#"뭯"#, r#"뭯"#, r#"뭯"#),
+        (r#"뭰"#, r#"뭰"#, r#"뭰"#, r#"뭰"#, r#"뭰"#),
+        (r#"뭱"#, r#"뭱"#, r#"뭱"#, r#"뭱"#, r#"뭱"#),
+        (r#"뭲"#, r#"뭲"#, r#"뭲"#, r#"뭲"#, r#"뭲"#),
+        (r#"뭳"#, r#"뭳"#, r#"뭳"#, r#"뭳"#, r#"뭳"#),
+        (r#"뭴"#, r#"뭴"#, r#"뭴"#, r#"뭴"#, r#"뭴"#),
+        (r#"뭵"#, r#"뭵"#, r#"뭵"#, r#"뭵"#, r#"뭵"#),
+        (r#"뭶"#, r#"뭶"#, r#"뭶"#, r#"뭶"#, r#"뭶"#),
+        (r#"뭷"#, r#"뭷"#, r#"뭷"#, r#"뭷"#, r#"뭷"#),
+        (r#"뭸"#, r#"뭸"#, r#"뭸"#, r#"뭸"#, r#"뭸"#),
+        (r#"뭹"#, r#"뭹"#, r#"뭹"#, r#"뭹"#, r#"뭹"#),
+        (r#"뭺"#, r#"뭺"#, r#"뭺"#, r#"뭺"#, r#"뭺"#),
+        (r#"뭻"#, r#"뭻"#, r#"뭻"#, r#"뭻"#, r#"뭻"#),
+        (r#"뭼"#, r#"뭼"#, r#"뭼"#, r#"뭼"#, r#"뭼"#),
+        (r#"뭽"#, r#"뭽"#, r#"뭽"#, r#"뭽"#, r#"뭽"#),
+        (r#"뭾"#, r#"뭾"#, r#"뭾"#, r#"뭾"#, r#"뭾"#),
+        (r#"뭿"#, r#"뭿"#, r#"뭿"#, r#"뭿"#, r#"뭿"#),
+        (r#"뮀"#, r#"뮀"#, r#"뮀"#, r#"뮀"#, r#"뮀"#),
+        (r#"뮁"#, r#"뮁"#, r#"뮁"#, r#"뮁"#, r#"뮁"#),
+        (r#"뮂"#, r#"뮂"#, r#"뮂"#, r#"뮂"#, r#"뮂"#),
+        (r#"뮃"#, r#"뮃"#, r#"뮃"#, r#"뮃"#, r#"뮃"#),
+        (r#"뮄"#, r#"뮄"#, r#"뮄"#, r#"뮄"#, r#"뮄"#),
+        (r#"뮅"#, r#"뮅"#, r#"뮅"#, r#"뮅"#, r#"뮅"#),
+        (r#"뮆"#, r#"뮆"#, r#"뮆"#, r#"뮆"#, r#"뮆"#),
+        (r#"뮇"#, r#"뮇"#, r#"뮇"#, r#"뮇"#, r#"뮇"#),
+        (r#"뮈"#, r#"뮈"#, r#"뮈"#, r#"뮈"#, r#"뮈"#),
+        (r#"뮉"#, r#"뮉"#, r#"뮉"#, r#"뮉"#, r#"뮉"#),
+        (r#"뮊"#, r#"뮊"#, r#"뮊"#, r#"뮊"#, r#"뮊"#),
+        (r#"뮋"#, r#"뮋"#, r#"뮋"#, r#"뮋"#, r#"뮋"#),
+        (r#"뮌"#, r#"뮌"#, r#"뮌"#, r#"뮌"#, r#"뮌"#),
+        (r#"뮍"#, r#"뮍"#, r#"뮍"#, r#"뮍"#, r#"뮍"#),
+        (r#"뮎"#, r#"뮎"#, r#"뮎"#, r#"뮎"#, r#"뮎"#),
+        (r#"뮏"#, r#"뮏"#, r#"뮏"#, r#"뮏"#, r#"뮏"#),
+        (r#"뮐"#, r#"뮐"#, r#"뮐"#, r#"뮐"#, r#"뮐"#),
+        (r#"뮑"#, r#"뮑"#, r#"뮑"#, r#"뮑"#, r#"뮑"#),
+        (r#"뮒"#, r#"뮒"#, r#"뮒"#, r#"뮒"#, r#"뮒"#),
+        (r#"뮓"#, r#"뮓"#, r#"뮓"#, r#"뮓"#, r#"뮓"#),
+        (r#"뮔"#, r#"뮔"#, r#"뮔"#, r#"뮔"#, r#"뮔"#),
+        (r#"뮕"#, r#"뮕"#, r#"뮕"#, r#"뮕"#, r#"뮕"#),
+        (r#"뮖"#, r#"뮖"#, r#"뮖"#, r#"뮖"#, r#"뮖"#),
+        (r#"뮗"#, r#"뮗"#, r#"뮗"#, r#"뮗"#, r#"뮗"#),
+        (r#"뮘"#, r#"뮘"#, r#"뮘"#, r#"뮘"#, r#"뮘"#),
+        (r#"뮙"#, r#"뮙"#, r#"뮙"#, r#"뮙"#, r#"뮙"#),
+        (r#"뮚"#, r#"뮚"#, r#"뮚"#, r#"뮚"#, r#"뮚"#),
+        (r#"뮛"#, r#"뮛"#, r#"뮛"#, r#"뮛"#, r#"뮛"#),
+        (r#"뮜"#, r#"뮜"#, r#"뮜"#, r#"뮜"#, r#"뮜"#),
+        (r#"뮝"#, r#"뮝"#, r#"뮝"#, r#"뮝"#, r#"뮝"#),
+        (r#"뮞"#, r#"뮞"#, r#"뮞"#, r#"뮞"#, r#"뮞"#),
+        (r#"뮟"#, r#"뮟"#, r#"뮟"#, r#"뮟"#, r#"뮟"#),
+        (r#"뮠"#, r#"뮠"#, r#"뮠"#, r#"뮠"#, r#"뮠"#),
+        (r#"뮡"#, r#"뮡"#, r#"뮡"#, r#"뮡"#, r#"뮡"#),
+        (r#"뮢"#, r#"뮢"#, r#"뮢"#, r#"뮢"#, r#"뮢"#),
+        (r#"뮣"#, r#"뮣"#, r#"뮣"#, r#"뮣"#, r#"뮣"#),
+        (r#"뮤"#, r#"뮤"#, r#"뮤"#, r#"뮤"#, r#"뮤"#),
+        (r#"뮥"#, r#"뮥"#, r#"뮥"#, r#"뮥"#, r#"뮥"#),
+        (r#"뮦"#, r#"뮦"#, r#"뮦"#, r#"뮦"#, r#"뮦"#),
+        (r#"뮧"#, r#"뮧"#, r#"뮧"#, r#"뮧"#, r#"뮧"#),
+        (r#"뮨"#, r#"뮨"#, r#"뮨"#, r#"뮨"#, r#"뮨"#),
+        (r#"뮩"#, r#"뮩"#, r#"뮩"#, r#"뮩"#, r#"뮩"#),
+        (r#"뮪"#, r#"뮪"#, r#"뮪"#, r#"뮪"#, r#"뮪"#),
+        (r#"뮫"#, r#"뮫"#, r#"뮫"#, r#"뮫"#, r#"뮫"#),
+        (r#"뮬"#, r#"뮬"#, r#"뮬"#, r#"뮬"#, r#"뮬"#),
+        (r#"뮭"#, r#"뮭"#, r#"뮭"#, r#"뮭"#, r#"뮭"#),
+        (r#"뮮"#, r#"뮮"#, r#"뮮"#, r#"뮮"#, r#"뮮"#),
+        (r#"뮯"#, r#"뮯"#, r#"뮯"#, r#"뮯"#, r#"뮯"#),
+        (r#"뮰"#, r#"뮰"#, r#"뮰"#, r#"뮰"#, r#"뮰"#),
+        (r#"뮱"#, r#"뮱"#, r#"뮱"#, r#"뮱"#, r#"뮱"#),
+        (r#"뮲"#, r#"뮲"#, r#"뮲"#, r#"뮲"#, r#"뮲"#),
+        (r#"뮳"#, r#"뮳"#, r#"뮳"#, r#"뮳"#, r#"뮳"#),
+        (r#"뮴"#, r#"뮴"#, r#"뮴"#, r#"뮴"#, r#"뮴"#),
+        (r#"뮵"#, r#"뮵"#, r#"뮵"#, r#"뮵"#, r#"뮵"#),
+        (r#"뮶"#, r#"뮶"#, r#"뮶"#, r#"뮶"#, r#"뮶"#),
+        (r#"뮷"#, r#"뮷"#, r#"뮷"#, r#"뮷"#, r#"뮷"#),
+        (r#"뮸"#, r#"뮸"#, r#"뮸"#, r#"뮸"#, r#"뮸"#),
+        (r#"뮹"#, r#"뮹"#, r#"뮹"#, r#"뮹"#, r#"뮹"#),
+        (r#"뮺"#, r#"뮺"#, r#"뮺"#, r#"뮺"#, r#"뮺"#),
+        (r#"뮻"#, r#"뮻"#, r#"뮻"#, r#"뮻"#, r#"뮻"#),
+        (r#"뮼"#, r#"뮼"#, r#"뮼"#, r#"뮼"#, r#"뮼"#),
+        (r#"뮽"#, r#"뮽"#, r#"뮽"#, r#"뮽"#, r#"뮽"#),
+        (r#"뮾"#, r#"뮾"#, r#"뮾"#, r#"뮾"#, r#"뮾"#),
+        (r#"뮿"#, r#"뮿"#, r#"뮿"#, r#"뮿"#, r#"뮿"#),
+        (r#"므"#, r#"므"#, r#"므"#, r#"므"#, r#"므"#),
+        (r#"믁"#, r#"믁"#, r#"믁"#, r#"믁"#, r#"믁"#),
+        (r#"믂"#, r#"믂"#, r#"믂"#, r#"믂"#, r#"믂"#),
+        (r#"믃"#, r#"믃"#, r#"믃"#, r#"믃"#, r#"믃"#),
+        (r#"믄"#, r#"믄"#, r#"믄"#, r#"믄"#, r#"믄"#),
+        (r#"믅"#, r#"믅"#, r#"믅"#, r#"믅"#, r#"믅"#),
+        (r#"믆"#, r#"믆"#, r#"믆"#, r#"믆"#, r#"믆"#),
+        (r#"믇"#, r#"믇"#, r#"믇"#, r#"믇"#, r#"믇"#),
+        (r#"믈"#, r#"믈"#, r#"믈"#, r#"믈"#, r#"믈"#),
+        (r#"믉"#, r#"믉"#, r#"믉"#, r#"믉"#, r#"믉"#),
+        (r#"믊"#, r#"믊"#, r#"믊"#, r#"믊"#, r#"믊"#),
+        (r#"믋"#, r#"믋"#, r#"믋"#, r#"믋"#, r#"믋"#),
+        (r#"믌"#, r#"믌"#, r#"믌"#, r#"믌"#, r#"믌"#),
+        (r#"믍"#, r#"믍"#, r#"믍"#, r#"믍"#, r#"믍"#),
+        (r#"믎"#, r#"믎"#, r#"믎"#, r#"믎"#, r#"믎"#),
+        (r#"믏"#, r#"믏"#, r#"믏"#, r#"믏"#, r#"믏"#),
+        (r#"믐"#, r#"믐"#, r#"믐"#, r#"믐"#, r#"믐"#),
+        (r#"믑"#, r#"믑"#, r#"믑"#, r#"믑"#, r#"믑"#),
+        (r#"믒"#, r#"믒"#, r#"믒"#, r#"믒"#, r#"믒"#),
+        (r#"믓"#, r#"믓"#, r#"믓"#, r#"믓"#, r#"믓"#),
+        (r#"믔"#, r#"믔"#, r#"믔"#, r#"믔"#, r#"믔"#),
+        (r#"믕"#, r#"믕"#, r#"믕"#, r#"믕"#, r#"믕"#),
+        (r#"믖"#, r#"믖"#, r#"믖"#, r#"믖"#, r#"믖"#),
+        (r#"믗"#, r#"믗"#, r#"믗"#, r#"믗"#, r#"믗"#),
+        (r#"믘"#, r#"믘"#, r#"믘"#, r#"믘"#, r#"믘"#),
+        (r#"믙"#, r#"믙"#, r#"믙"#, r#"믙"#, r#"믙"#),
+        (r#"믚"#, r#"믚"#, r#"믚"#, r#"믚"#, r#"믚"#),
+        (r#"믛"#, r#"믛"#, r#"믛"#, r#"믛"#, r#"믛"#),
+        (r#"믜"#, r#"믜"#, r#"믜"#, r#"믜"#, r#"믜"#),
+        (r#"믝"#, r#"믝"#, r#"믝"#, r#"믝"#, r#"믝"#),
+        (r#"믞"#, r#"믞"#, r#"믞"#, r#"믞"#, r#"믞"#),
+        (r#"믟"#, r#"믟"#, r#"믟"#, r#"믟"#, r#"믟"#),
+        (r#"믠"#, r#"믠"#, r#"믠"#, r#"믠"#, r#"믠"#),
+        (r#"믡"#, r#"믡"#, r#"믡"#, r#"믡"#, r#"믡"#),
+        (r#"믢"#, r#"믢"#, r#"믢"#, r#"믢"#, r#"믢"#),
+        (r#"믣"#, r#"믣"#, r#"믣"#, r#"믣"#, r#"믣"#),
+        (r#"믤"#, r#"믤"#, r#"믤"#, r#"믤"#, r#"믤"#),
+        (r#"믥"#, r#"믥"#, r#"믥"#, r#"믥"#, r#"믥"#),
+        (r#"믦"#, r#"믦"#, r#"믦"#, r#"믦"#, r#"믦"#),
+        (r#"믧"#, r#"믧"#, r#"믧"#, r#"믧"#, r#"믧"#),
+        (r#"믨"#, r#"믨"#, r#"믨"#, r#"믨"#, r#"믨"#),
+        (r#"믩"#, r#"믩"#, r#"믩"#, r#"믩"#, r#"믩"#),
+        (r#"믪"#, r#"믪"#, r#"믪"#, r#"믪"#, r#"믪"#),
+        (r#"믫"#, r#"믫"#, r#"믫"#, r#"믫"#, r#"믫"#),
+        (r#"믬"#, r#"믬"#, r#"믬"#, r#"믬"#, r#"믬"#),
+        (r#"믭"#, r#"믭"#, r#"믭"#, r#"믭"#, r#"믭"#),
+        (r#"믮"#, r#"믮"#, r#"믮"#, r#"믮"#, r#"믮"#),
+        (r#"믯"#, r#"믯"#, r#"믯"#, r#"믯"#, r#"믯"#),
+        (r#"믰"#, r#"믰"#, r#"믰"#, r#"믰"#, r#"믰"#),
+        (r#"믱"#, r#"믱"#, r#"믱"#, r#"믱"#, r#"믱"#),
+        (r#"믲"#, r#"믲"#, r#"믲"#, r#"믲"#, r#"믲"#),
+        (r#"믳"#, r#"믳"#, r#"믳"#, r#"믳"#, r#"믳"#),
+        (r#"믴"#, r#"믴"#, r#"믴"#, r#"믴"#, r#"믴"#),
+        (r#"믵"#, r#"믵"#, r#"믵"#, r#"믵"#, r#"믵"#),
+        (r#"믶"#, r#"믶"#, r#"믶"#, r#"믶"#, r#"믶"#),
+        (r#"믷"#, r#"믷"#, r#"믷"#, r#"믷"#, r#"믷"#),
+        (r#"미"#, r#"미"#, r#"미"#, r#"미"#, r#"미"#),
+        (r#"믹"#, r#"믹"#, r#"믹"#, r#"믹"#, r#"믹"#),
+        (r#"믺"#, r#"믺"#, r#"믺"#, r#"믺"#, r#"믺"#),
+        (r#"믻"#, r#"믻"#, r#"믻"#, r#"믻"#, r#"믻"#),
+        (r#"민"#, r#"민"#, r#"민"#, r#"민"#, r#"민"#),
+        (r#"믽"#, r#"믽"#, r#"믽"#, r#"믽"#, r#"믽"#),
+        (r#"믾"#, r#"믾"#, r#"믾"#, r#"믾"#, r#"믾"#),
+        (r#"믿"#, r#"믿"#, r#"믿"#, r#"믿"#, r#"믿"#),
+        (r#"밀"#, r#"밀"#, r#"밀"#, r#"밀"#, r#"밀"#),
+        (r#"밁"#, r#"밁"#, r#"밁"#, r#"밁"#, r#"밁"#),
+        (r#"밂"#, r#"밂"#, r#"밂"#, r#"밂"#, r#"밂"#),
+        (r#"밃"#, r#"밃"#, r#"밃"#, r#"밃"#, r#"밃"#),
+        (r#"밄"#, r#"밄"#, r#"밄"#, r#"밄"#, r#"밄"#),
+        (r#"밅"#, r#"밅"#, r#"밅"#, r#"밅"#, r#"밅"#),
+        (r#"밆"#, r#"밆"#, r#"밆"#, r#"밆"#, r#"밆"#),
+        (r#"밇"#, r#"밇"#, r#"밇"#, r#"밇"#, r#"밇"#),
+        (r#"밈"#, r#"밈"#, r#"밈"#, r#"밈"#, r#"밈"#),
+        (r#"밉"#, r#"밉"#, r#"밉"#, r#"밉"#, r#"밉"#),
+        (r#"밊"#, r#"밊"#, r#"밊"#, r#"밊"#, r#"밊"#),
+        (r#"밋"#, r#"밋"#, r#"밋"#, r#"밋"#, r#"밋"#),
+        (r#"밌"#, r#"밌"#, r#"밌"#, r#"밌"#, r#"밌"#),
+        (r#"밍"#, r#"밍"#, r#"밍"#, r#"밍"#, r#"밍"#),
+        (r#"밎"#, r#"밎"#, r#"밎"#, r#"밎"#, r#"밎"#),
+        (r#"및"#, r#"및"#, r#"및"#, r#"및"#, r#"및"#),
+        (r#"밐"#, r#"밐"#, r#"밐"#, r#"밐"#, r#"밐"#),
+        (r#"밑"#, r#"밑"#, r#"밑"#, r#"밑"#, r#"밑"#),
+        (r#"밒"#, r#"밒"#, r#"밒"#, r#"밒"#, r#"밒"#),
+        (r#"밓"#, r#"밓"#, r#"밓"#, r#"밓"#, r#"밓"#),
+        (r#"바"#, r#"바"#, r#"바"#, r#"바"#, r#"바"#),
+        (r#"박"#, r#"박"#, r#"박"#, r#"박"#, r#"박"#),
+        (r#"밖"#, r#"밖"#, r#"밖"#, r#"밖"#, r#"밖"#),
+        (r#"밗"#, r#"밗"#, r#"밗"#, r#"밗"#, r#"밗"#),
+        (r#"반"#, r#"반"#, r#"반"#, r#"반"#, r#"반"#),
+        (r#"밙"#, r#"밙"#, r#"밙"#, r#"밙"#, r#"밙"#),
+        (r#"밚"#, r#"밚"#, r#"밚"#, r#"밚"#, r#"밚"#),
+        (r#"받"#, r#"받"#, r#"받"#, r#"받"#, r#"받"#),
+        (r#"발"#, r#"발"#, r#"발"#, r#"발"#, r#"발"#),
+        (r#"밝"#, r#"밝"#, r#"밝"#, r#"밝"#, r#"밝"#),
+        (r#"밞"#, r#"밞"#, r#"밞"#, r#"밞"#, r#"밞"#),
+        (r#"밟"#, r#"밟"#, r#"밟"#, r#"밟"#, r#"밟"#),
+        (r#"밠"#, r#"밠"#, r#"밠"#, r#"밠"#, r#"밠"#),
+        (r#"밡"#, r#"밡"#, r#"밡"#, r#"밡"#, r#"밡"#),
+        (r#"밢"#, r#"밢"#, r#"밢"#, r#"밢"#, r#"밢"#),
+        (r#"밣"#, r#"밣"#, r#"밣"#, r#"밣"#, r#"밣"#),
+        (r#"밤"#, r#"밤"#, r#"밤"#, r#"밤"#, r#"밤"#),
+        (r#"밥"#, r#"밥"#, r#"밥"#, r#"밥"#, r#"밥"#),
+        (r#"밦"#, r#"밦"#, r#"밦"#, r#"밦"#, r#"밦"#),
+        (r#"밧"#, r#"밧"#, r#"밧"#, r#"밧"#, r#"밧"#),
+        (r#"밨"#, r#"밨"#, r#"밨"#, r#"밨"#, r#"밨"#),
+        (r#"방"#, r#"방"#, r#"방"#, r#"방"#, r#"방"#),
+        (r#"밪"#, r#"밪"#, r#"밪"#, r#"밪"#, r#"밪"#),
+        (r#"밫"#, r#"밫"#, r#"밫"#, r#"밫"#, r#"밫"#),
+        (r#"밬"#, r#"밬"#, r#"밬"#, r#"밬"#, r#"밬"#),
+        (r#"밭"#, r#"밭"#, r#"밭"#, r#"밭"#, r#"밭"#),
+        (r#"밮"#, r#"밮"#, r#"밮"#, r#"밮"#, r#"밮"#),
+        (r#"밯"#, r#"밯"#, r#"밯"#, r#"밯"#, r#"밯"#),
+        (r#"배"#, r#"배"#, r#"배"#, r#"배"#, r#"배"#),
+        (r#"백"#, r#"백"#, r#"백"#, r#"백"#, r#"백"#),
+        (r#"밲"#, r#"밲"#, r#"밲"#, r#"밲"#, r#"밲"#),
+        (r#"밳"#, r#"밳"#, r#"밳"#, r#"밳"#, r#"밳"#),
+        (r#"밴"#, r#"밴"#, r#"밴"#, r#"밴"#, r#"밴"#),
+        (r#"밵"#, r#"밵"#, r#"밵"#, r#"밵"#, r#"밵"#),
+        (r#"밶"#, r#"밶"#, r#"밶"#, r#"밶"#, r#"밶"#),
+        (r#"밷"#, r#"밷"#, r#"밷"#, r#"밷"#, r#"밷"#),
+        (r#"밸"#, r#"밸"#, r#"밸"#, r#"밸"#, r#"밸"#),
+        (r#"밹"#, r#"밹"#, r#"밹"#, r#"밹"#, r#"밹"#),
+        (r#"밺"#, r#"밺"#, r#"밺"#, r#"밺"#, r#"밺"#),
+        (r#"밻"#, r#"밻"#, r#"밻"#, r#"밻"#, r#"밻"#),
+        (r#"밼"#, r#"밼"#, r#"밼"#, r#"밼"#, r#"밼"#),
+        (r#"밽"#, r#"밽"#, r#"밽"#, r#"밽"#, r#"밽"#),
+        (r#"밾"#, r#"밾"#, r#"밾"#, r#"밾"#, r#"밾"#),
+        (r#"밿"#, r#"밿"#, r#"밿"#, r#"밿"#, r#"밿"#),
+        (r#"뱀"#, r#"뱀"#, r#"뱀"#, r#"뱀"#, r#"뱀"#),
+        (r#"뱁"#, r#"뱁"#, r#"뱁"#, r#"뱁"#, r#"뱁"#),
+        (r#"뱂"#, r#"뱂"#, r#"뱂"#, r#"뱂"#, r#"뱂"#),
+        (r#"뱃"#, r#"뱃"#, r#"뱃"#, r#"뱃"#, r#"뱃"#),
+        (r#"뱄"#, r#"뱄"#, r#"뱄"#, r#"뱄"#, r#"뱄"#),
+        (r#"뱅"#, r#"뱅"#, r#"뱅"#, r#"뱅"#, r#"뱅"#),
+        (r#"뱆"#, r#"뱆"#, r#"뱆"#, r#"뱆"#, r#"뱆"#),
+        (r#"뱇"#, r#"뱇"#, r#"뱇"#, r#"뱇"#, r#"뱇"#),
+        (r#"뱈"#, r#"뱈"#, r#"뱈"#, r#"뱈"#, r#"뱈"#),
+        (r#"뱉"#, r#"뱉"#, r#"뱉"#, r#"뱉"#, r#"뱉"#),
+        (r#"뱊"#, r#"뱊"#, r#"뱊"#, r#"뱊"#, r#"뱊"#),
+        (r#"뱋"#, r#"뱋"#, r#"뱋"#, r#"뱋"#, r#"뱋"#),
+        (r#"뱌"#, r#"뱌"#, r#"뱌"#, r#"뱌"#, r#"뱌"#),
+        (r#"뱍"#, r#"뱍"#, r#"뱍"#, r#"뱍"#, r#"뱍"#),
+        (r#"뱎"#, r#"뱎"#, r#"뱎"#, r#"뱎"#, r#"뱎"#),
+        (r#"뱏"#, r#"뱏"#, r#"뱏"#, r#"뱏"#, r#"뱏"#),
+        (r#"뱐"#, r#"뱐"#, r#"뱐"#, r#"뱐"#, r#"뱐"#),
+        (r#"뱑"#, r#"뱑"#, r#"뱑"#, r#"뱑"#, r#"뱑"#),
+        (r#"뱒"#, r#"뱒"#, r#"뱒"#, r#"뱒"#, r#"뱒"#),
+        (r#"뱓"#, r#"뱓"#, r#"뱓"#, r#"뱓"#, r#"뱓"#),
+        (r#"뱔"#, r#"뱔"#, r#"뱔"#, r#"뱔"#, r#"뱔"#),
+        (r#"뱕"#, r#"뱕"#, r#"뱕"#, r#"뱕"#, r#"뱕"#),
+        (r#"뱖"#, r#"뱖"#, r#"뱖"#, r#"뱖"#, r#"뱖"#),
+        (r#"뱗"#, r#"뱗"#, r#"뱗"#, r#"뱗"#, r#"뱗"#),
+        (r#"뱘"#, r#"뱘"#, r#"뱘"#, r#"뱘"#, r#"뱘"#),
+        (r#"뱙"#, r#"뱙"#, r#"뱙"#, r#"뱙"#, r#"뱙"#),
+        (r#"뱚"#, r#"뱚"#, r#"뱚"#, r#"뱚"#, r#"뱚"#),
+        (r#"뱛"#, r#"뱛"#, r#"뱛"#, r#"뱛"#, r#"뱛"#),
+        (r#"뱜"#, r#"뱜"#, r#"뱜"#, r#"뱜"#, r#"뱜"#),
+        (r#"뱝"#, r#"뱝"#, r#"뱝"#, r#"뱝"#, r#"뱝"#),
+        (r#"뱞"#, r#"뱞"#, r#"뱞"#, r#"뱞"#, r#"뱞"#),
+        (r#"뱟"#, r#"뱟"#, r#"뱟"#, r#"뱟"#, r#"뱟"#),
+        (r#"뱠"#, r#"뱠"#, r#"뱠"#, r#"뱠"#, r#"뱠"#),
+        (r#"뱡"#, r#"뱡"#, r#"뱡"#, r#"뱡"#, r#"뱡"#),
+        (r#"뱢"#, r#"뱢"#, r#"뱢"#, r#"뱢"#, r#"뱢"#),
+        (r#"뱣"#, r#"뱣"#, r#"뱣"#, r#"뱣"#, r#"뱣"#),
+        (r#"뱤"#, r#"뱤"#, r#"뱤"#, r#"뱤"#, r#"뱤"#),
+        (r#"뱥"#, r#"뱥"#, r#"뱥"#, r#"뱥"#, r#"뱥"#),
+        (r#"뱦"#, r#"뱦"#, r#"뱦"#, r#"뱦"#, r#"뱦"#),
+        (r#"뱧"#, r#"뱧"#, r#"뱧"#, r#"뱧"#, r#"뱧"#),
+        (r#"뱨"#, r#"뱨"#, r#"뱨"#, r#"뱨"#, r#"뱨"#),
+        (r#"뱩"#, r#"뱩"#, r#"뱩"#, r#"뱩"#, r#"뱩"#),
+        (r#"뱪"#, r#"뱪"#, r#"뱪"#, r#"뱪"#, r#"뱪"#),
+        (r#"뱫"#, r#"뱫"#, r#"뱫"#, r#"뱫"#, r#"뱫"#),
+        (r#"뱬"#, r#"뱬"#, r#"뱬"#, r#"뱬"#, r#"뱬"#),
+        (r#"뱭"#, r#"뱭"#, r#"뱭"#, r#"뱭"#, r#"뱭"#),
+        (r#"뱮"#, r#"뱮"#, r#"뱮"#, r#"뱮"#, r#"뱮"#),
+        (r#"뱯"#, r#"뱯"#, r#"뱯"#, r#"뱯"#, r#"뱯"#),
+        (r#"뱰"#, r#"뱰"#, r#"뱰"#, r#"뱰"#, r#"뱰"#),
+        (r#"뱱"#, r#"뱱"#, r#"뱱"#, r#"뱱"#, r#"뱱"#),
+        (r#"뱲"#, r#"뱲"#, r#"뱲"#, r#"뱲"#, r#"뱲"#),
+        (r#"뱳"#, r#"뱳"#, r#"뱳"#, r#"뱳"#, r#"뱳"#),
+        (r#"뱴"#, r#"뱴"#, r#"뱴"#, r#"뱴"#, r#"뱴"#),
+        (r#"뱵"#, r#"뱵"#, r#"뱵"#, r#"뱵"#, r#"뱵"#),
+        (r#"뱶"#, r#"뱶"#, r#"뱶"#, r#"뱶"#, r#"뱶"#),
+        (r#"뱷"#, r#"뱷"#, r#"뱷"#, r#"뱷"#, r#"뱷"#),
+        (r#"뱸"#, r#"뱸"#, r#"뱸"#, r#"뱸"#, r#"뱸"#),
+        (r#"뱹"#, r#"뱹"#, r#"뱹"#, r#"뱹"#, r#"뱹"#),
+        (r#"뱺"#, r#"뱺"#, r#"뱺"#, r#"뱺"#, r#"뱺"#),
+        (r#"뱻"#, r#"뱻"#, r#"뱻"#, r#"뱻"#, r#"뱻"#),
+        (r#"뱼"#, r#"뱼"#, r#"뱼"#, r#"뱼"#, r#"뱼"#),
+        (r#"뱽"#, r#"뱽"#, r#"뱽"#, r#"뱽"#, r#"뱽"#),
+        (r#"뱾"#, r#"뱾"#, r#"뱾"#, r#"뱾"#, r#"뱾"#),
+        (r#"뱿"#, r#"뱿"#, r#"뱿"#, r#"뱿"#, r#"뱿"#),
+        (r#"벀"#, r#"벀"#, r#"벀"#, r#"벀"#, r#"벀"#),
+        (r#"벁"#, r#"벁"#, r#"벁"#, r#"벁"#, r#"벁"#),
+        (r#"벂"#, r#"벂"#, r#"벂"#, r#"벂"#, r#"벂"#),
+        (r#"벃"#, r#"벃"#, r#"벃"#, r#"벃"#, r#"벃"#),
+        (r#"버"#, r#"버"#, r#"버"#, r#"버"#, r#"버"#),
+        (r#"벅"#, r#"벅"#, r#"벅"#, r#"벅"#, r#"벅"#),
+        (r#"벆"#, r#"벆"#, r#"벆"#, r#"벆"#, r#"벆"#),
+        (r#"벇"#, r#"벇"#, r#"벇"#, r#"벇"#, r#"벇"#),
+        (r#"번"#, r#"번"#, r#"번"#, r#"번"#, r#"번"#),
+        (r#"벉"#, r#"벉"#, r#"벉"#, r#"벉"#, r#"벉"#),
+        (r#"벊"#, r#"벊"#, r#"벊"#, r#"벊"#, r#"벊"#),
+        (r#"벋"#, r#"벋"#, r#"벋"#, r#"벋"#, r#"벋"#),
+        (r#"벌"#, r#"벌"#, r#"벌"#, r#"벌"#, r#"벌"#),
+        (r#"벍"#, r#"벍"#, r#"벍"#, r#"벍"#, r#"벍"#),
+        (r#"벎"#, r#"벎"#, r#"벎"#, r#"벎"#, r#"벎"#),
+        (r#"벏"#, r#"벏"#, r#"벏"#, r#"벏"#, r#"벏"#),
+        (r#"벐"#, r#"벐"#, r#"벐"#, r#"벐"#, r#"벐"#),
+        (r#"벑"#, r#"벑"#, r#"벑"#, r#"벑"#, r#"벑"#),
+        (r#"벒"#, r#"벒"#, r#"벒"#, r#"벒"#, r#"벒"#),
+        (r#"벓"#, r#"벓"#, r#"벓"#, r#"벓"#, r#"벓"#),
+        (r#"범"#, r#"범"#, r#"범"#, r#"범"#, r#"범"#),
+        (r#"법"#, r#"법"#, r#"법"#, r#"법"#, r#"법"#),
+        (r#"벖"#, r#"벖"#, r#"벖"#, r#"벖"#, r#"벖"#),
+        (r#"벗"#, r#"벗"#, r#"벗"#, r#"벗"#, r#"벗"#),
+        (r#"벘"#, r#"벘"#, r#"벘"#, r#"벘"#, r#"벘"#),
+        (r#"벙"#, r#"벙"#, r#"벙"#, r#"벙"#, r#"벙"#),
+        (r#"벚"#, r#"벚"#, r#"벚"#, r#"벚"#, r#"벚"#),
+        (r#"벛"#, r#"벛"#, r#"벛"#, r#"벛"#, r#"벛"#),
+        (r#"벜"#, r#"벜"#, r#"벜"#, r#"벜"#, r#"벜"#),
+        (r#"벝"#, r#"벝"#, r#"벝"#, r#"벝"#, r#"벝"#),
+        (r#"벞"#, r#"벞"#, r#"벞"#, r#"벞"#, r#"벞"#),
+        (r#"벟"#, r#"벟"#, r#"벟"#, r#"벟"#, r#"벟"#),
+        (r#"베"#, r#"베"#, r#"베"#, r#"베"#, r#"베"#),
+        (r#"벡"#, r#"벡"#, r#"벡"#, r#"벡"#, r#"벡"#),
+        (r#"벢"#, r#"벢"#, r#"벢"#, r#"벢"#, r#"벢"#),
+        (r#"벣"#, r#"벣"#, r#"벣"#, r#"벣"#, r#"벣"#),
+        (r#"벤"#, r#"벤"#, r#"벤"#, r#"벤"#, r#"벤"#),
+        (r#"벥"#, r#"벥"#, r#"벥"#, r#"벥"#, r#"벥"#),
+        (r#"벦"#, r#"벦"#, r#"벦"#, r#"벦"#, r#"벦"#),
+        (r#"벧"#, r#"벧"#, r#"벧"#, r#"벧"#, r#"벧"#),
+        (r#"벨"#, r#"벨"#, r#"벨"#, r#"벨"#, r#"벨"#),
+        (r#"벩"#, r#"벩"#, r#"벩"#, r#"벩"#, r#"벩"#),
+        (r#"벪"#, r#"벪"#, r#"벪"#, r#"벪"#, r#"벪"#),
+        (r#"벫"#, r#"벫"#, r#"벫"#, r#"벫"#, r#"벫"#),
+        (r#"벬"#, r#"벬"#, r#"벬"#, r#"벬"#, r#"벬"#),
+        (r#"벭"#, r#"벭"#, r#"벭"#, r#"벭"#, r#"벭"#),
+        (r#"벮"#, r#"벮"#, r#"벮"#, r#"벮"#, r#"벮"#),
+        (r#"벯"#, r#"벯"#, r#"벯"#, r#"벯"#, r#"벯"#),
+        (r#"벰"#, r#"벰"#, r#"벰"#, r#"벰"#, r#"벰"#),
+        (r#"벱"#, r#"벱"#, r#"벱"#, r#"벱"#, r#"벱"#),
+        (r#"벲"#, r#"벲"#, r#"벲"#, r#"벲"#, r#"벲"#),
+        (r#"벳"#, r#"벳"#, r#"벳"#, r#"벳"#, r#"벳"#),
+        (r#"벴"#, r#"벴"#, r#"벴"#, r#"벴"#, r#"벴"#),
+        (r#"벵"#, r#"벵"#, r#"벵"#, r#"벵"#, r#"벵"#),
+        (r#"벶"#, r#"벶"#, r#"벶"#, r#"벶"#, r#"벶"#),
+        (r#"벷"#, r#"벷"#, r#"벷"#, r#"벷"#, r#"벷"#),
+        (r#"벸"#, r#"벸"#, r#"벸"#, r#"벸"#, r#"벸"#),
+        (r#"벹"#, r#"벹"#, r#"벹"#, r#"벹"#, r#"벹"#),
+        (r#"벺"#, r#"벺"#, r#"벺"#, r#"벺"#, r#"벺"#),
+        (r#"벻"#, r#"벻"#, r#"벻"#, r#"벻"#, r#"벻"#),
+        (r#"벼"#, r#"벼"#, r#"벼"#, r#"벼"#, r#"벼"#),
+        (r#"벽"#, r#"벽"#, r#"벽"#, r#"벽"#, r#"벽"#),
+        (r#"벾"#, r#"벾"#, r#"벾"#, r#"벾"#, r#"벾"#),
+        (r#"벿"#, r#"벿"#, r#"벿"#, r#"벿"#, r#"벿"#),
+        (r#"변"#, r#"변"#, r#"변"#, r#"변"#, r#"변"#),
+        (r#"볁"#, r#"볁"#, r#"볁"#, r#"볁"#, r#"볁"#),
+        (r#"볂"#, r#"볂"#, r#"볂"#, r#"볂"#, r#"볂"#),
+        (r#"볃"#, r#"볃"#, r#"볃"#, r#"볃"#, r#"볃"#),
+        (r#"별"#, r#"별"#, r#"별"#, r#"별"#, r#"별"#),
+        (r#"볅"#, r#"볅"#, r#"볅"#, r#"볅"#, r#"볅"#),
+        (r#"볆"#, r#"볆"#, r#"볆"#, r#"볆"#, r#"볆"#),
+        (r#"볇"#, r#"볇"#, r#"볇"#, r#"볇"#, r#"볇"#),
+        (r#"볈"#, r#"볈"#, r#"볈"#, r#"볈"#, r#"볈"#),
+        (r#"볉"#, r#"볉"#, r#"볉"#, r#"볉"#, r#"볉"#),
+        (r#"볊"#, r#"볊"#, r#"볊"#, r#"볊"#, r#"볊"#),
+        (r#"볋"#, r#"볋"#, r#"볋"#, r#"볋"#, r#"볋"#),
+        (r#"볌"#, r#"볌"#, r#"볌"#, r#"볌"#, r#"볌"#),
+        (r#"볍"#, r#"볍"#, r#"볍"#, r#"볍"#, r#"볍"#),
+        (r#"볎"#, r#"볎"#, r#"볎"#, r#"볎"#, r#"볎"#),
+        (r#"볏"#, r#"볏"#, r#"볏"#, r#"볏"#, r#"볏"#),
+        (r#"볐"#, r#"볐"#, r#"볐"#, r#"볐"#, r#"볐"#),
+        (r#"병"#, r#"병"#, r#"병"#, r#"병"#, r#"병"#),
+        (r#"볒"#, r#"볒"#, r#"볒"#, r#"볒"#, r#"볒"#),
+        (r#"볓"#, r#"볓"#, r#"볓"#, r#"볓"#, r#"볓"#),
+        (r#"볔"#, r#"볔"#, r#"볔"#, r#"볔"#, r#"볔"#),
+        (r#"볕"#, r#"볕"#, r#"볕"#, r#"볕"#, r#"볕"#),
+        (r#"볖"#, r#"볖"#, r#"볖"#, r#"볖"#, r#"볖"#),
+        (r#"볗"#, r#"볗"#, r#"볗"#, r#"볗"#, r#"볗"#),
+        (r#"볘"#, r#"볘"#, r#"볘"#, r#"볘"#, r#"볘"#),
+        (r#"볙"#, r#"볙"#, r#"볙"#, r#"볙"#, r#"볙"#),
+        (r#"볚"#, r#"볚"#, r#"볚"#, r#"볚"#, r#"볚"#),
+        (r#"볛"#, r#"볛"#, r#"볛"#, r#"볛"#, r#"볛"#),
+        (r#"볜"#, r#"볜"#, r#"볜"#, r#"볜"#, r#"볜"#),
+        (r#"볝"#, r#"볝"#, r#"볝"#, r#"볝"#, r#"볝"#),
+        (r#"볞"#, r#"볞"#, r#"볞"#, r#"볞"#, r#"볞"#),
+        (r#"볟"#, r#"볟"#, r#"볟"#, r#"볟"#, r#"볟"#),
+        (r#"볠"#, r#"볠"#, r#"볠"#, r#"볠"#, r#"볠"#),
+        (r#"볡"#, r#"볡"#, r#"볡"#, r#"볡"#, r#"볡"#),
+        (r#"볢"#, r#"볢"#, r#"볢"#, r#"볢"#, r#"볢"#),
+        (r#"볣"#, r#"볣"#, r#"볣"#, r#"볣"#, r#"볣"#),
+        (r#"볤"#, r#"볤"#, r#"볤"#, r#"볤"#, r#"볤"#),
+        (r#"볥"#, r#"볥"#, r#"볥"#, r#"볥"#, r#"볥"#),
+        (r#"볦"#, r#"볦"#, r#"볦"#, r#"볦"#, r#"볦"#),
+        (r#"볧"#, r#"볧"#, r#"볧"#, r#"볧"#, r#"볧"#),
+        (r#"볨"#, r#"볨"#, r#"볨"#, r#"볨"#, r#"볨"#),
+        (r#"볩"#, r#"볩"#, r#"볩"#, r#"볩"#, r#"볩"#),
+        (r#"볪"#, r#"볪"#, r#"볪"#, r#"볪"#, r#"볪"#),
+        (r#"볫"#, r#"볫"#, r#"볫"#, r#"볫"#, r#"볫"#),
+        (r#"볬"#, r#"볬"#, r#"볬"#, r#"볬"#, r#"볬"#),
+        (r#"볭"#, r#"볭"#, r#"볭"#, r#"볭"#, r#"볭"#),
+        (r#"볮"#, r#"볮"#, r#"볮"#, r#"볮"#, r#"볮"#),
+        (r#"볯"#, r#"볯"#, r#"볯"#, r#"볯"#, r#"볯"#),
+        (r#"볰"#, r#"볰"#, r#"볰"#, r#"볰"#, r#"볰"#),
+        (r#"볱"#, r#"볱"#, r#"볱"#, r#"볱"#, r#"볱"#),
+        (r#"볲"#, r#"볲"#, r#"볲"#, r#"볲"#, r#"볲"#),
+        (r#"볳"#, r#"볳"#, r#"볳"#, r#"볳"#, r#"볳"#),
+        (r#"보"#, r#"보"#, r#"보"#, r#"보"#, r#"보"#),
+        (r#"복"#, r#"복"#, r#"복"#, r#"복"#, r#"복"#),
+        (r#"볶"#, r#"볶"#, r#"볶"#, r#"볶"#, r#"볶"#),
+        (r#"볷"#, r#"볷"#, r#"볷"#, r#"볷"#, r#"볷"#),
+        (r#"본"#, r#"본"#, r#"본"#, r#"본"#, r#"본"#),
+        (r#"볹"#, r#"볹"#, r#"볹"#, r#"볹"#, r#"볹"#),
+        (r#"볺"#, r#"볺"#, r#"볺"#, r#"볺"#, r#"볺"#),
+        (r#"볻"#, r#"볻"#, r#"볻"#, r#"볻"#, r#"볻"#),
+        (r#"볼"#, r#"볼"#, r#"볼"#, r#"볼"#, r#"볼"#),
+        (r#"볽"#, r#"볽"#, r#"볽"#, r#"볽"#, r#"볽"#),
+        (r#"볾"#, r#"볾"#, r#"볾"#, r#"볾"#, r#"볾"#),
+        (r#"볿"#, r#"볿"#, r#"볿"#, r#"볿"#, r#"볿"#),
+        (r#"봀"#, r#"봀"#, r#"봀"#, r#"봀"#, r#"봀"#),
+        (r#"봁"#, r#"봁"#, r#"봁"#, r#"봁"#, r#"봁"#),
+        (r#"봂"#, r#"봂"#, r#"봂"#, r#"봂"#, r#"봂"#),
+        (r#"봃"#, r#"봃"#, r#"봃"#, r#"봃"#, r#"봃"#),
+        (r#"봄"#, r#"봄"#, r#"봄"#, r#"봄"#, r#"봄"#),
+        (r#"봅"#, r#"봅"#, r#"봅"#, r#"봅"#, r#"봅"#),
+        (r#"봆"#, r#"봆"#, r#"봆"#, r#"봆"#, r#"봆"#),
+        (r#"봇"#, r#"봇"#, r#"봇"#, r#"봇"#, r#"봇"#),
+        (r#"봈"#, r#"봈"#, r#"봈"#, r#"봈"#, r#"봈"#),
+        (r#"봉"#, r#"봉"#, r#"봉"#, r#"봉"#, r#"봉"#),
+        (r#"봊"#, r#"봊"#, r#"봊"#, r#"봊"#, r#"봊"#),
+        (r#"봋"#, r#"봋"#, r#"봋"#, r#"봋"#, r#"봋"#),
+        (r#"봌"#, r#"봌"#, r#"봌"#, r#"봌"#, r#"봌"#),
+        (r#"봍"#, r#"봍"#, r#"봍"#, r#"봍"#, r#"봍"#),
+        (r#"봎"#, r#"봎"#, r#"봎"#, r#"봎"#, r#"봎"#),
+        (r#"봏"#, r#"봏"#, r#"봏"#, r#"봏"#, r#"봏"#),
+        (r#"봐"#, r#"봐"#, r#"봐"#, r#"봐"#, r#"봐"#),
+        (r#"봑"#, r#"봑"#, r#"봑"#, r#"봑"#, r#"봑"#),
+        (r#"봒"#, r#"봒"#, r#"봒"#, r#"봒"#, r#"봒"#),
+        (r#"봓"#, r#"봓"#, r#"봓"#, r#"봓"#, r#"봓"#),
+        (r#"봔"#, r#"봔"#, r#"봔"#, r#"봔"#, r#"봔"#),
+        (r#"봕"#, r#"봕"#, r#"봕"#, r#"봕"#, r#"봕"#),
+        (r#"봖"#, r#"봖"#, r#"봖"#, r#"봖"#, r#"봖"#),
+        (r#"봗"#, r#"봗"#, r#"봗"#, r#"봗"#, r#"봗"#),
+        (r#"봘"#, r#"봘"#, r#"봘"#, r#"봘"#, r#"봘"#),
+        (r#"봙"#, r#"봙"#, r#"봙"#, r#"봙"#, r#"봙"#),
+        (r#"봚"#, r#"봚"#, r#"봚"#, r#"봚"#, r#"봚"#),
+        (r#"봛"#, r#"봛"#, r#"봛"#, r#"봛"#, r#"봛"#),
+        (r#"봜"#, r#"봜"#, r#"봜"#, r#"봜"#, r#"봜"#),
+        (r#"봝"#, r#"봝"#, r#"봝"#, r#"봝"#, r#"봝"#),
+        (r#"봞"#, r#"봞"#, r#"봞"#, r#"봞"#, r#"봞"#),
+        (r#"봟"#, r#"봟"#, r#"봟"#, r#"봟"#, r#"봟"#),
+        (r#"봠"#, r#"봠"#, r#"봠"#, r#"봠"#, r#"봠"#),
+        (r#"봡"#, r#"봡"#, r#"봡"#, r#"봡"#, r#"봡"#),
+        (r#"봢"#, r#"봢"#, r#"봢"#, r#"봢"#, r#"봢"#),
+        (r#"봣"#, r#"봣"#, r#"봣"#, r#"봣"#, r#"봣"#),
+        (r#"봤"#, r#"봤"#, r#"봤"#, r#"봤"#, r#"봤"#),
+        (r#"봥"#, r#"봥"#, r#"봥"#, r#"봥"#, r#"봥"#),
+        (r#"봦"#, r#"봦"#, r#"봦"#, r#"봦"#, r#"봦"#),
+        (r#"봧"#, r#"봧"#, r#"봧"#, r#"봧"#, r#"봧"#),
+        (r#"봨"#, r#"봨"#, r#"봨"#, r#"봨"#, r#"봨"#),
+        (r#"봩"#, r#"봩"#, r#"봩"#, r#"봩"#, r#"봩"#),
+        (r#"봪"#, r#"봪"#, r#"봪"#, r#"봪"#, r#"봪"#),
+        (r#"봫"#, r#"봫"#, r#"봫"#, r#"봫"#, r#"봫"#),
+        (r#"봬"#, r#"봬"#, r#"봬"#, r#"봬"#, r#"봬"#),
+        (r#"봭"#, r#"봭"#, r#"봭"#, r#"봭"#, r#"봭"#),
+        (r#"봮"#, r#"봮"#, r#"봮"#, r#"봮"#, r#"봮"#),
+        (r#"봯"#, r#"봯"#, r#"봯"#, r#"봯"#, r#"봯"#),
+        (r#"봰"#, r#"봰"#, r#"봰"#, r#"봰"#, r#"봰"#),
+        (r#"봱"#, r#"봱"#, r#"봱"#, r#"봱"#, r#"봱"#),
+        (r#"봲"#, r#"봲"#, r#"봲"#, r#"봲"#, r#"봲"#),
+        (r#"봳"#, r#"봳"#, r#"봳"#, r#"봳"#, r#"봳"#),
+        (r#"봴"#, r#"봴"#, r#"봴"#, r#"봴"#, r#"봴"#),
+        (r#"봵"#, r#"봵"#, r#"봵"#, r#"봵"#, r#"봵"#),
+        (r#"봶"#, r#"봶"#, r#"봶"#, r#"봶"#, r#"봶"#),
+        (r#"봷"#, r#"봷"#, r#"봷"#, r#"봷"#, r#"봷"#),
+        (r#"봸"#, r#"봸"#, r#"봸"#, r#"봸"#, r#"봸"#),
+        (r#"봹"#, r#"봹"#, r#"봹"#, r#"봹"#, r#"봹"#),
+        (r#"봺"#, r#"봺"#, r#"봺"#, r#"봺"#, r#"봺"#),
+        (r#"봻"#, r#"봻"#, r#"봻"#, r#"봻"#, r#"봻"#),
+        (r#"봼"#, r#"봼"#, r#"봼"#, r#"봼"#, r#"봼"#),
+        (r#"봽"#, r#"봽"#, r#"봽"#, r#"봽"#, r#"봽"#),
+        (r#"봾"#, r#"봾"#, r#"봾"#, r#"봾"#, r#"봾"#),
+        (r#"봿"#, r#"봿"#, r#"봿"#, r#"봿"#, r#"봿"#),
+        (r#"뵀"#, r#"뵀"#, r#"뵀"#, r#"뵀"#, r#"뵀"#),
+        (r#"뵁"#, r#"뵁"#, r#"뵁"#, r#"뵁"#, r#"뵁"#),
+        (r#"뵂"#, r#"뵂"#, r#"뵂"#, r#"뵂"#, r#"뵂"#),
+        (r#"뵃"#, r#"뵃"#, r#"뵃"#, r#"뵃"#, r#"뵃"#),
+        (r#"뵄"#, r#"뵄"#, r#"뵄"#, r#"뵄"#, r#"뵄"#),
+        (r#"뵅"#, r#"뵅"#, r#"뵅"#, r#"뵅"#, r#"뵅"#),
+        (r#"뵆"#, r#"뵆"#, r#"뵆"#, r#"뵆"#, r#"뵆"#),
+        (r#"뵇"#, r#"뵇"#, r#"뵇"#, r#"뵇"#, r#"뵇"#),
+        (r#"뵈"#, r#"뵈"#, r#"뵈"#, r#"뵈"#, r#"뵈"#),
+        (r#"뵉"#, r#"뵉"#, r#"뵉"#, r#"뵉"#, r#"뵉"#),
+        (r#"뵊"#, r#"뵊"#, r#"뵊"#, r#"뵊"#, r#"뵊"#),
+        (r#"뵋"#, r#"뵋"#, r#"뵋"#, r#"뵋"#, r#"뵋"#),
+        (r#"뵌"#, r#"뵌"#, r#"뵌"#, r#"뵌"#, r#"뵌"#),
+        (r#"뵍"#, r#"뵍"#, r#"뵍"#, r#"뵍"#, r#"뵍"#),
+        (r#"뵎"#, r#"뵎"#, r#"뵎"#, r#"뵎"#, r#"뵎"#),
+        (r#"뵏"#, r#"뵏"#, r#"뵏"#, r#"뵏"#, r#"뵏"#),
+        (r#"뵐"#, r#"뵐"#, r#"뵐"#, r#"뵐"#, r#"뵐"#),
+        (r#"뵑"#, r#"뵑"#, r#"뵑"#, r#"뵑"#, r#"뵑"#),
+        (r#"뵒"#, r#"뵒"#, r#"뵒"#, r#"뵒"#, r#"뵒"#),
+        (r#"뵓"#, r#"뵓"#, r#"뵓"#, r#"뵓"#, r#"뵓"#),
+        (r#"뵔"#, r#"뵔"#, r#"뵔"#, r#"뵔"#, r#"뵔"#),
+        (r#"뵕"#, r#"뵕"#, r#"뵕"#, r#"뵕"#, r#"뵕"#),
+        (r#"뵖"#, r#"뵖"#, r#"뵖"#, r#"뵖"#, r#"뵖"#),
+        (r#"뵗"#, r#"뵗"#, r#"뵗"#, r#"뵗"#, r#"뵗"#),
+        (r#"뵘"#, r#"뵘"#, r#"뵘"#, r#"뵘"#, r#"뵘"#),
+        (r#"뵙"#, r#"뵙"#, r#"뵙"#, r#"뵙"#, r#"뵙"#),
+        (r#"뵚"#, r#"뵚"#, r#"뵚"#, r#"뵚"#, r#"뵚"#),
+        (r#"뵛"#, r#"뵛"#, r#"뵛"#, r#"뵛"#, r#"뵛"#),
+        (r#"뵜"#, r#"뵜"#, r#"뵜"#, r#"뵜"#, r#"뵜"#),
+        (r#"뵝"#, r#"뵝"#, r#"뵝"#, r#"뵝"#, r#"뵝"#),
+        (r#"뵞"#, r#"뵞"#, r#"뵞"#, r#"뵞"#, r#"뵞"#),
+        (r#"뵟"#, r#"뵟"#, r#"뵟"#, r#"뵟"#, r#"뵟"#),
+        (r#"뵠"#, r#"뵠"#, r#"뵠"#, r#"뵠"#, r#"뵠"#),
+        (r#"뵡"#, r#"뵡"#, r#"뵡"#, r#"뵡"#, r#"뵡"#),
+        (r#"뵢"#, r#"뵢"#, r#"뵢"#, r#"뵢"#, r#"뵢"#),
+        (r#"뵣"#, r#"뵣"#, r#"뵣"#, r#"뵣"#, r#"뵣"#),
+        (r#"뵤"#, r#"뵤"#, r#"뵤"#, r#"뵤"#, r#"뵤"#),
+        (r#"뵥"#, r#"뵥"#, r#"뵥"#, r#"뵥"#, r#"뵥"#),
+        (r#"뵦"#, r#"뵦"#, r#"뵦"#, r#"뵦"#, r#"뵦"#),
+        (r#"뵧"#, r#"뵧"#, r#"뵧"#, r#"뵧"#, r#"뵧"#),
+        (r#"뵨"#, r#"뵨"#, r#"뵨"#, r#"뵨"#, r#"뵨"#),
+        (r#"뵩"#, r#"뵩"#, r#"뵩"#, r#"뵩"#, r#"뵩"#),
+        (r#"뵪"#, r#"뵪"#, r#"뵪"#, r#"뵪"#, r#"뵪"#),
+        (r#"뵫"#, r#"뵫"#, r#"뵫"#, r#"뵫"#, r#"뵫"#),
+        (r#"뵬"#, r#"뵬"#, r#"뵬"#, r#"뵬"#, r#"뵬"#),
+        (r#"뵭"#, r#"뵭"#, r#"뵭"#, r#"뵭"#, r#"뵭"#),
+        (r#"뵮"#, r#"뵮"#, r#"뵮"#, r#"뵮"#, r#"뵮"#),
+        (r#"뵯"#, r#"뵯"#, r#"뵯"#, r#"뵯"#, r#"뵯"#),
+        (r#"뵰"#, r#"뵰"#, r#"뵰"#, r#"뵰"#, r#"뵰"#),
+        (r#"뵱"#, r#"뵱"#, r#"뵱"#, r#"뵱"#, r#"뵱"#),
+        (r#"뵲"#, r#"뵲"#, r#"뵲"#, r#"뵲"#, r#"뵲"#),
+        (r#"뵳"#, r#"뵳"#, r#"뵳"#, r#"뵳"#, r#"뵳"#),
+        (r#"뵴"#, r#"뵴"#, r#"뵴"#, r#"뵴"#, r#"뵴"#),
+        (r#"뵵"#, r#"뵵"#, r#"뵵"#, r#"뵵"#, r#"뵵"#),
+        (r#"뵶"#, r#"뵶"#, r#"뵶"#, r#"뵶"#, r#"뵶"#),
+        (r#"뵷"#, r#"뵷"#, r#"뵷"#, r#"뵷"#, r#"뵷"#),
+        (r#"뵸"#, r#"뵸"#, r#"뵸"#, r#"뵸"#, r#"뵸"#),
+        (r#"뵹"#, r#"뵹"#, r#"뵹"#, r#"뵹"#, r#"뵹"#),
+        (r#"뵺"#, r#"뵺"#, r#"뵺"#, r#"뵺"#, r#"뵺"#),
+        (r#"뵻"#, r#"뵻"#, r#"뵻"#, r#"뵻"#, r#"뵻"#),
+        (r#"뵼"#, r#"뵼"#, r#"뵼"#, r#"뵼"#, r#"뵼"#),
+        (r#"뵽"#, r#"뵽"#, r#"뵽"#, r#"뵽"#, r#"뵽"#),
+        (r#"뵾"#, r#"뵾"#, r#"뵾"#, r#"뵾"#, r#"뵾"#),
+        (r#"뵿"#, r#"뵿"#, r#"뵿"#, r#"뵿"#, r#"뵿"#),
+        (r#"부"#, r#"부"#, r#"부"#, r#"부"#, r#"부"#),
+        (r#"북"#, r#"북"#, r#"북"#, r#"북"#, r#"북"#),
+        (r#"붂"#, r#"붂"#, r#"붂"#, r#"붂"#, r#"붂"#),
+        (r#"붃"#, r#"붃"#, r#"붃"#, r#"붃"#, r#"붃"#),
+        (r#"분"#, r#"분"#, r#"분"#, r#"분"#, r#"분"#),
+        (r#"붅"#, r#"붅"#, r#"붅"#, r#"붅"#, r#"붅"#),
+        (r#"붆"#, r#"붆"#, r#"붆"#, r#"붆"#, r#"붆"#),
+        (r#"붇"#, r#"붇"#, r#"붇"#, r#"붇"#, r#"붇"#),
+        (r#"불"#, r#"불"#, r#"불"#, r#"불"#, r#"불"#),
+        (r#"붉"#, r#"붉"#, r#"붉"#, r#"붉"#, r#"붉"#),
+        (r#"붊"#, r#"붊"#, r#"붊"#, r#"붊"#, r#"붊"#),
+        (r#"붋"#, r#"붋"#, r#"붋"#, r#"붋"#, r#"붋"#),
+        (r#"붌"#, r#"붌"#, r#"붌"#, r#"붌"#, r#"붌"#),
+        (r#"붍"#, r#"붍"#, r#"붍"#, r#"붍"#, r#"붍"#),
+        (r#"붎"#, r#"붎"#, r#"붎"#, r#"붎"#, r#"붎"#),
+        (r#"붏"#, r#"붏"#, r#"붏"#, r#"붏"#, r#"붏"#),
+        (r#"붐"#, r#"붐"#, r#"붐"#, r#"붐"#, r#"붐"#),
+        (r#"붑"#, r#"붑"#, r#"붑"#, r#"붑"#, r#"붑"#),
+        (r#"붒"#, r#"붒"#, r#"붒"#, r#"붒"#, r#"붒"#),
+        (r#"붓"#, r#"붓"#, r#"붓"#, r#"붓"#, r#"붓"#),
+        (r#"붔"#, r#"붔"#, r#"붔"#, r#"붔"#, r#"붔"#),
+        (r#"붕"#, r#"붕"#, r#"붕"#, r#"붕"#, r#"붕"#),
+        (r#"붖"#, r#"붖"#, r#"붖"#, r#"붖"#, r#"붖"#),
+        (r#"붗"#, r#"붗"#, r#"붗"#, r#"붗"#, r#"붗"#),
+        (r#"붘"#, r#"붘"#, r#"붘"#, r#"붘"#, r#"붘"#),
+        (r#"붙"#, r#"붙"#, r#"붙"#, r#"붙"#, r#"붙"#),
+        (r#"붚"#, r#"붚"#, r#"붚"#, r#"붚"#, r#"붚"#),
+        (r#"붛"#, r#"붛"#, r#"붛"#, r#"붛"#, r#"붛"#),
+        (r#"붜"#, r#"붜"#, r#"붜"#, r#"붜"#, r#"붜"#),
+        (r#"붝"#, r#"붝"#, r#"붝"#, r#"붝"#, r#"붝"#),
+        (r#"붞"#, r#"붞"#, r#"붞"#, r#"붞"#, r#"붞"#),
+        (r#"붟"#, r#"붟"#, r#"붟"#, r#"붟"#, r#"붟"#),
+        (r#"붠"#, r#"붠"#, r#"붠"#, r#"붠"#, r#"붠"#),
+        (r#"붡"#, r#"붡"#, r#"붡"#, r#"붡"#, r#"붡"#),
+        (r#"붢"#, r#"붢"#, r#"붢"#, r#"붢"#, r#"붢"#),
+        (r#"붣"#, r#"붣"#, r#"붣"#, r#"붣"#, r#"붣"#),
+        (r#"붤"#, r#"붤"#, r#"붤"#, r#"붤"#, r#"붤"#),
+        (r#"붥"#, r#"붥"#, r#"붥"#, r#"붥"#, r#"붥"#),
+        (r#"붦"#, r#"붦"#, r#"붦"#, r#"붦"#, r#"붦"#),
+        (r#"붧"#, r#"붧"#, r#"붧"#, r#"붧"#, r#"붧"#),
+        (r#"붨"#, r#"붨"#, r#"붨"#, r#"붨"#, r#"붨"#),
+        (r#"붩"#, r#"붩"#, r#"붩"#, r#"붩"#, r#"붩"#),
+        (r#"붪"#, r#"붪"#, r#"붪"#, r#"붪"#, r#"붪"#),
+        (r#"붫"#, r#"붫"#, r#"붫"#, r#"붫"#, r#"붫"#),
+        (r#"붬"#, r#"붬"#, r#"붬"#, r#"붬"#, r#"붬"#),
+        (r#"붭"#, r#"붭"#, r#"붭"#, r#"붭"#, r#"붭"#),
+        (r#"붮"#, r#"붮"#, r#"붮"#, r#"붮"#, r#"붮"#),
+        (r#"붯"#, r#"붯"#, r#"붯"#, r#"붯"#, r#"붯"#),
+        (r#"붰"#, r#"붰"#, r#"붰"#, r#"붰"#, r#"붰"#),
+        (r#"붱"#, r#"붱"#, r#"붱"#, r#"붱"#, r#"붱"#),
+        (r#"붲"#, r#"붲"#, r#"붲"#, r#"붲"#, r#"붲"#),
+        (r#"붳"#, r#"붳"#, r#"붳"#, r#"붳"#, r#"붳"#),
+        (r#"붴"#, r#"붴"#, r#"붴"#, r#"붴"#, r#"붴"#),
+        (r#"붵"#, r#"붵"#, r#"붵"#, r#"붵"#, r#"붵"#),
+        (r#"붶"#, r#"붶"#, r#"붶"#, r#"붶"#, r#"붶"#),
+        (r#"붷"#, r#"붷"#, r#"붷"#, r#"붷"#, r#"붷"#),
+        (r#"붸"#, r#"붸"#, r#"붸"#, r#"붸"#, r#"붸"#),
+        (r#"붹"#, r#"붹"#, r#"붹"#, r#"붹"#, r#"붹"#),
+        (r#"붺"#, r#"붺"#, r#"붺"#, r#"붺"#, r#"붺"#),
+        (r#"붻"#, r#"붻"#, r#"붻"#, r#"붻"#, r#"붻"#),
+        (r#"붼"#, r#"붼"#, r#"붼"#, r#"붼"#, r#"붼"#),
+        (r#"붽"#, r#"붽"#, r#"붽"#, r#"붽"#, r#"붽"#),
+        (r#"붾"#, r#"붾"#, r#"붾"#, r#"붾"#, r#"붾"#),
+        (r#"붿"#, r#"붿"#, r#"붿"#, r#"붿"#, r#"붿"#),
+        (r#"뷀"#, r#"뷀"#, r#"뷀"#, r#"뷀"#, r#"뷀"#),
+        (r#"뷁"#, r#"뷁"#, r#"뷁"#, r#"뷁"#, r#"뷁"#),
+        (r#"뷂"#, r#"뷂"#, r#"뷂"#, r#"뷂"#, r#"뷂"#),
+        (r#"뷃"#, r#"뷃"#, r#"뷃"#, r#"뷃"#, r#"뷃"#),
+        (r#"뷄"#, r#"뷄"#, r#"뷄"#, r#"뷄"#, r#"뷄"#),
+        (r#"뷅"#, r#"뷅"#, r#"뷅"#, r#"뷅"#, r#"뷅"#),
+        (r#"뷆"#, r#"뷆"#, r#"뷆"#, r#"뷆"#, r#"뷆"#),
+        (r#"뷇"#, r#"뷇"#, r#"뷇"#, r#"뷇"#, r#"뷇"#),
+        (r#"뷈"#, r#"뷈"#, r#"뷈"#, r#"뷈"#, r#"뷈"#),
+        (r#"뷉"#, r#"뷉"#, r#"뷉"#, r#"뷉"#, r#"뷉"#),
+        (r#"뷊"#, r#"뷊"#, r#"뷊"#, r#"뷊"#, r#"뷊"#),
+        (r#"뷋"#, r#"뷋"#, r#"뷋"#, r#"뷋"#, r#"뷋"#),
+        (r#"뷌"#, r#"뷌"#, r#"뷌"#, r#"뷌"#, r#"뷌"#),
+        (r#"뷍"#, r#"뷍"#, r#"뷍"#, r#"뷍"#, r#"뷍"#),
+        (r#"뷎"#, r#"뷎"#, r#"뷎"#, r#"뷎"#, r#"뷎"#),
+        (r#"뷏"#, r#"뷏"#, r#"뷏"#, r#"뷏"#, r#"뷏"#),
+        (r#"뷐"#, r#"뷐"#, r#"뷐"#, r#"뷐"#, r#"뷐"#),
+        (r#"뷑"#, r#"뷑"#, r#"뷑"#, r#"뷑"#, r#"뷑"#),
+        (r#"뷒"#, r#"뷒"#, r#"뷒"#, r#"뷒"#, r#"뷒"#),
+        (r#"뷓"#, r#"뷓"#, r#"뷓"#, r#"뷓"#, r#"뷓"#),
+        (r#"뷔"#, r#"뷔"#, r#"뷔"#, r#"뷔"#, r#"뷔"#),
+        (r#"뷕"#, r#"뷕"#, r#"뷕"#, r#"뷕"#, r#"뷕"#),
+        (r#"뷖"#, r#"뷖"#, r#"뷖"#, r#"뷖"#, r#"뷖"#),
+        (r#"뷗"#, r#"뷗"#, r#"뷗"#, r#"뷗"#, r#"뷗"#),
+        (r#"뷘"#, r#"뷘"#, r#"뷘"#, r#"뷘"#, r#"뷘"#),
+        (r#"뷙"#, r#"뷙"#, r#"뷙"#, r#"뷙"#, r#"뷙"#),
+        (r#"뷚"#, r#"뷚"#, r#"뷚"#, r#"뷚"#, r#"뷚"#),
+        (r#"뷛"#, r#"뷛"#, r#"뷛"#, r#"뷛"#, r#"뷛"#),
+        (r#"뷜"#, r#"뷜"#, r#"뷜"#, r#"뷜"#, r#"뷜"#),
+        (r#"뷝"#, r#"뷝"#, r#"뷝"#, r#"뷝"#, r#"뷝"#),
+        (r#"뷞"#, r#"뷞"#, r#"뷞"#, r#"뷞"#, r#"뷞"#),
+        (r#"뷟"#, r#"뷟"#, r#"뷟"#, r#"뷟"#, r#"뷟"#),
+        (r#"뷠"#, r#"뷠"#, r#"뷠"#, r#"뷠"#, r#"뷠"#),
+        (r#"뷡"#, r#"뷡"#, r#"뷡"#, r#"뷡"#, r#"뷡"#),
+        (r#"뷢"#, r#"뷢"#, r#"뷢"#, r#"뷢"#, r#"뷢"#),
+        (r#"뷣"#, r#"뷣"#, r#"뷣"#, r#"뷣"#, r#"뷣"#),
+        (r#"뷤"#, r#"뷤"#, r#"뷤"#, r#"뷤"#, r#"뷤"#),
+        (r#"뷥"#, r#"뷥"#, r#"뷥"#, r#"뷥"#, r#"뷥"#),
+        (r#"뷦"#, r#"뷦"#, r#"뷦"#, r#"뷦"#, r#"뷦"#),
+        (r#"뷧"#, r#"뷧"#, r#"뷧"#, r#"뷧"#, r#"뷧"#),
+        (r#"뷨"#, r#"뷨"#, r#"뷨"#, r#"뷨"#, r#"뷨"#),
+        (r#"뷩"#, r#"뷩"#, r#"뷩"#, r#"뷩"#, r#"뷩"#),
+        (r#"뷪"#, r#"뷪"#, r#"뷪"#, r#"뷪"#, r#"뷪"#),
+        (r#"뷫"#, r#"뷫"#, r#"뷫"#, r#"뷫"#, r#"뷫"#),
+        (r#"뷬"#, r#"뷬"#, r#"뷬"#, r#"뷬"#, r#"뷬"#),
+        (r#"뷭"#, r#"뷭"#, r#"뷭"#, r#"뷭"#, r#"뷭"#),
+        (r#"뷮"#, r#"뷮"#, r#"뷮"#, r#"뷮"#, r#"뷮"#),
+        (r#"뷯"#, r#"뷯"#, r#"뷯"#, r#"뷯"#, r#"뷯"#),
+        (r#"뷰"#, r#"뷰"#, r#"뷰"#, r#"뷰"#, r#"뷰"#),
+        (r#"뷱"#, r#"뷱"#, r#"뷱"#, r#"뷱"#, r#"뷱"#),
+        (r#"뷲"#, r#"뷲"#, r#"뷲"#, r#"뷲"#, r#"뷲"#),
+        (r#"뷳"#, r#"뷳"#, r#"뷳"#, r#"뷳"#, r#"뷳"#),
+        (r#"뷴"#, r#"뷴"#, r#"뷴"#, r#"뷴"#, r#"뷴"#),
+        (r#"뷵"#, r#"뷵"#, r#"뷵"#, r#"뷵"#, r#"뷵"#),
+        (r#"뷶"#, r#"뷶"#, r#"뷶"#, r#"뷶"#, r#"뷶"#),
+        (r#"뷷"#, r#"뷷"#, r#"뷷"#, r#"뷷"#, r#"뷷"#),
+        (r#"뷸"#, r#"뷸"#, r#"뷸"#, r#"뷸"#, r#"뷸"#),
+        (r#"뷹"#, r#"뷹"#, r#"뷹"#, r#"뷹"#, r#"뷹"#),
+        (r#"뷺"#, r#"뷺"#, r#"뷺"#, r#"뷺"#, r#"뷺"#),
+        (r#"뷻"#, r#"뷻"#, r#"뷻"#, r#"뷻"#, r#"뷻"#),
+        (r#"뷼"#, r#"뷼"#, r#"뷼"#, r#"뷼"#, r#"뷼"#),
+        (r#"뷽"#, r#"뷽"#, r#"뷽"#, r#"뷽"#, r#"뷽"#),
+        (r#"뷾"#, r#"뷾"#, r#"뷾"#, r#"뷾"#, r#"뷾"#),
+        (r#"뷿"#, r#"뷿"#, r#"뷿"#, r#"뷿"#, r#"뷿"#),
+        (r#"븀"#, r#"븀"#, r#"븀"#, r#"븀"#, r#"븀"#),
+        (r#"븁"#, r#"븁"#, r#"븁"#, r#"븁"#, r#"븁"#),
+        (r#"븂"#, r#"븂"#, r#"븂"#, r#"븂"#, r#"븂"#),
+        (r#"븃"#, r#"븃"#, r#"븃"#, r#"븃"#, r#"븃"#),
+        (r#"븄"#, r#"븄"#, r#"븄"#, r#"븄"#, r#"븄"#),
+        (r#"븅"#, r#"븅"#, r#"븅"#, r#"븅"#, r#"븅"#),
+        (r#"븆"#, r#"븆"#, r#"븆"#, r#"븆"#, r#"븆"#),
+        (r#"븇"#, r#"븇"#, r#"븇"#, r#"븇"#, r#"븇"#),
+        (r#"븈"#, r#"븈"#, r#"븈"#, r#"븈"#, r#"븈"#),
+        (r#"븉"#, r#"븉"#, r#"븉"#, r#"븉"#, r#"븉"#),
+        (r#"븊"#, r#"븊"#, r#"븊"#, r#"븊"#, r#"븊"#),
+        (r#"븋"#, r#"븋"#, r#"븋"#, r#"븋"#, r#"븋"#),
+        (r#"브"#, r#"브"#, r#"브"#, r#"브"#, r#"브"#),
+        (r#"븍"#, r#"븍"#, r#"븍"#, r#"븍"#, r#"븍"#),
+        (r#"븎"#, r#"븎"#, r#"븎"#, r#"븎"#, r#"븎"#),
+        (r#"븏"#, r#"븏"#, r#"븏"#, r#"븏"#, r#"븏"#),
+        (r#"븐"#, r#"븐"#, r#"븐"#, r#"븐"#, r#"븐"#),
+        (r#"븑"#, r#"븑"#, r#"븑"#, r#"븑"#, r#"븑"#),
+        (r#"븒"#, r#"븒"#, r#"븒"#, r#"븒"#, r#"븒"#),
+        (r#"븓"#, r#"븓"#, r#"븓"#, r#"븓"#, r#"븓"#),
+        (r#"블"#, r#"블"#, r#"블"#, r#"블"#, r#"블"#),
+        (r#"븕"#, r#"븕"#, r#"븕"#, r#"븕"#, r#"븕"#),
+        (r#"븖"#, r#"븖"#, r#"븖"#, r#"븖"#, r#"븖"#),
+        (r#"븗"#, r#"븗"#, r#"븗"#, r#"븗"#, r#"븗"#),
+        (r#"븘"#, r#"븘"#, r#"븘"#, r#"븘"#, r#"븘"#),
+        (r#"븙"#, r#"븙"#, r#"븙"#, r#"븙"#, r#"븙"#),
+        (r#"븚"#, r#"븚"#, r#"븚"#, r#"븚"#, r#"븚"#),
+        (r#"븛"#, r#"븛"#, r#"븛"#, r#"븛"#, r#"븛"#),
+        (r#"븜"#, r#"븜"#, r#"븜"#, r#"븜"#, r#"븜"#),
+        (r#"븝"#, r#"븝"#, r#"븝"#, r#"븝"#, r#"븝"#),
+        (r#"븞"#, r#"븞"#, r#"븞"#, r#"븞"#, r#"븞"#),
+        (r#"븟"#, r#"븟"#, r#"븟"#, r#"븟"#, r#"븟"#),
+        (r#"븠"#, r#"븠"#, r#"븠"#, r#"븠"#, r#"븠"#),
+        (r#"븡"#, r#"븡"#, r#"븡"#, r#"븡"#, r#"븡"#),
+        (r#"븢"#, r#"븢"#, r#"븢"#, r#"븢"#, r#"븢"#),
+        (r#"븣"#, r#"븣"#, r#"븣"#, r#"븣"#, r#"븣"#),
+        (r#"븤"#, r#"븤"#, r#"븤"#, r#"븤"#, r#"븤"#),
+        (r#"븥"#, r#"븥"#, r#"븥"#, r#"븥"#, r#"븥"#),
+        (r#"븦"#, r#"븦"#, r#"븦"#, r#"븦"#, r#"븦"#),
+        (r#"븧"#, r#"븧"#, r#"븧"#, r#"븧"#, r#"븧"#),
+        (r#"븨"#, r#"븨"#, r#"븨"#, r#"븨"#, r#"븨"#),
+        (r#"븩"#, r#"븩"#, r#"븩"#, r#"븩"#, r#"븩"#),
+        (r#"븪"#, r#"븪"#, r#"븪"#, r#"븪"#, r#"븪"#),
+        (r#"븫"#, r#"븫"#, r#"븫"#, r#"븫"#, r#"븫"#),
+        (r#"븬"#, r#"븬"#, r#"븬"#, r#"븬"#, r#"븬"#),
+        (r#"븭"#, r#"븭"#, r#"븭"#, r#"븭"#, r#"븭"#),
+        (r#"븮"#, r#"븮"#, r#"븮"#, r#"븮"#, r#"븮"#),
+        (r#"븯"#, r#"븯"#, r#"븯"#, r#"븯"#, r#"븯"#),
+        (r#"븰"#, r#"븰"#, r#"븰"#, r#"븰"#, r#"븰"#),
+        (r#"븱"#, r#"븱"#, r#"븱"#, r#"븱"#, r#"븱"#),
+        (r#"븲"#, r#"븲"#, r#"븲"#, r#"븲"#, r#"븲"#),
+        (r#"븳"#, r#"븳"#, r#"븳"#, r#"븳"#, r#"븳"#),
+        (r#"븴"#, r#"븴"#, r#"븴"#, r#"븴"#, r#"븴"#),
+        (r#"븵"#, r#"븵"#, r#"븵"#, r#"븵"#, r#"븵"#),
+        (r#"븶"#, r#"븶"#, r#"븶"#, r#"븶"#, r#"븶"#),
+        (r#"븷"#, r#"븷"#, r#"븷"#, r#"븷"#, r#"븷"#),
+        (r#"븸"#, r#"븸"#, r#"븸"#, r#"븸"#, r#"븸"#),
+        (r#"븹"#, r#"븹"#, r#"븹"#, r#"븹"#, r#"븹"#),
+        (r#"븺"#, r#"븺"#, r#"븺"#, r#"븺"#, r#"븺"#),
+        (r#"븻"#, r#"븻"#, r#"븻"#, r#"븻"#, r#"븻"#),
+        (r#"븼"#, r#"븼"#, r#"븼"#, r#"븼"#, r#"븼"#),
+        (r#"븽"#, r#"븽"#, r#"븽"#, r#"븽"#, r#"븽"#),
+        (r#"븾"#, r#"븾"#, r#"븾"#, r#"븾"#, r#"븾"#),
+        (r#"븿"#, r#"븿"#, r#"븿"#, r#"븿"#, r#"븿"#),
+        (r#"빀"#, r#"빀"#, r#"빀"#, r#"빀"#, r#"빀"#),
+        (r#"빁"#, r#"빁"#, r#"빁"#, r#"빁"#, r#"빁"#),
+        (r#"빂"#, r#"빂"#, r#"빂"#, r#"빂"#, r#"빂"#),
+        (r#"빃"#, r#"빃"#, r#"빃"#, r#"빃"#, r#"빃"#),
+        (r#"비"#, r#"비"#, r#"비"#, r#"비"#, r#"비"#),
+        (r#"빅"#, r#"빅"#, r#"빅"#, r#"빅"#, r#"빅"#),
+        (r#"빆"#, r#"빆"#, r#"빆"#, r#"빆"#, r#"빆"#),
+        (r#"빇"#, r#"빇"#, r#"빇"#, r#"빇"#, r#"빇"#),
+        (r#"빈"#, r#"빈"#, r#"빈"#, r#"빈"#, r#"빈"#),
+        (r#"빉"#, r#"빉"#, r#"빉"#, r#"빉"#, r#"빉"#),
+        (r#"빊"#, r#"빊"#, r#"빊"#, r#"빊"#, r#"빊"#),
+        (r#"빋"#, r#"빋"#, r#"빋"#, r#"빋"#, r#"빋"#),
+        (r#"빌"#, r#"빌"#, r#"빌"#, r#"빌"#, r#"빌"#),
+        (r#"빍"#, r#"빍"#, r#"빍"#, r#"빍"#, r#"빍"#),
+        (r#"빎"#, r#"빎"#, r#"빎"#, r#"빎"#, r#"빎"#),
+        (r#"빏"#, r#"빏"#, r#"빏"#, r#"빏"#, r#"빏"#),
+        (r#"빐"#, r#"빐"#, r#"빐"#, r#"빐"#, r#"빐"#),
+        (r#"빑"#, r#"빑"#, r#"빑"#, r#"빑"#, r#"빑"#),
+        (r#"빒"#, r#"빒"#, r#"빒"#, r#"빒"#, r#"빒"#),
+        (r#"빓"#, r#"빓"#, r#"빓"#, r#"빓"#, r#"빓"#),
+        (r#"빔"#, r#"빔"#, r#"빔"#, r#"빔"#, r#"빔"#),
+        (r#"빕"#, r#"빕"#, r#"빕"#, r#"빕"#, r#"빕"#),
+        (r#"빖"#, r#"빖"#, r#"빖"#, r#"빖"#, r#"빖"#),
+        (r#"빗"#, r#"빗"#, r#"빗"#, r#"빗"#, r#"빗"#),
+        (r#"빘"#, r#"빘"#, r#"빘"#, r#"빘"#, r#"빘"#),
+        (r#"빙"#, r#"빙"#, r#"빙"#, r#"빙"#, r#"빙"#),
+        (r#"빚"#, r#"빚"#, r#"빚"#, r#"빚"#, r#"빚"#),
+        (r#"빛"#, r#"빛"#, r#"빛"#, r#"빛"#, r#"빛"#),
+        (r#"빜"#, r#"빜"#, r#"빜"#, r#"빜"#, r#"빜"#),
+        (r#"빝"#, r#"빝"#, r#"빝"#, r#"빝"#, r#"빝"#),
+        (r#"빞"#, r#"빞"#, r#"빞"#, r#"빞"#, r#"빞"#),
+        (r#"빟"#, r#"빟"#, r#"빟"#, r#"빟"#, r#"빟"#),
+        (r#"빠"#, r#"빠"#, r#"빠"#, r#"빠"#, r#"빠"#),
+        (r#"빡"#, r#"빡"#, r#"빡"#, r#"빡"#, r#"빡"#),
+        (r#"빢"#, r#"빢"#, r#"빢"#, r#"빢"#, r#"빢"#),
+        (r#"빣"#, r#"빣"#, r#"빣"#, r#"빣"#, r#"빣"#),
+        (r#"빤"#, r#"빤"#, r#"빤"#, r#"빤"#, r#"빤"#),
+        (r#"빥"#, r#"빥"#, r#"빥"#, r#"빥"#, r#"빥"#),
+        (r#"빦"#, r#"빦"#, r#"빦"#, r#"빦"#, r#"빦"#),
+        (r#"빧"#, r#"빧"#, r#"빧"#, r#"빧"#, r#"빧"#),
+        (r#"빨"#, r#"빨"#, r#"빨"#, r#"빨"#, r#"빨"#),
+        (r#"빩"#, r#"빩"#, r#"빩"#, r#"빩"#, r#"빩"#),
+        (r#"빪"#, r#"빪"#, r#"빪"#, r#"빪"#, r#"빪"#),
+        (r#"빫"#, r#"빫"#, r#"빫"#, r#"빫"#, r#"빫"#),
+        (r#"빬"#, r#"빬"#, r#"빬"#, r#"빬"#, r#"빬"#),
+        (r#"빭"#, r#"빭"#, r#"빭"#, r#"빭"#, r#"빭"#),
+        (r#"빮"#, r#"빮"#, r#"빮"#, r#"빮"#, r#"빮"#),
+        (r#"빯"#, r#"빯"#, r#"빯"#, r#"빯"#, r#"빯"#),
+        (r#"빰"#, r#"빰"#, r#"빰"#, r#"빰"#, r#"빰"#),
+        (r#"빱"#, r#"빱"#, r#"빱"#, r#"빱"#, r#"빱"#),
+        (r#"빲"#, r#"빲"#, r#"빲"#, r#"빲"#, r#"빲"#),
+        (r#"빳"#, r#"빳"#, r#"빳"#, r#"빳"#, r#"빳"#),
+        (r#"빴"#, r#"빴"#, r#"빴"#, r#"빴"#, r#"빴"#),
+        (r#"빵"#, r#"빵"#, r#"빵"#, r#"빵"#, r#"빵"#),
+        (r#"빶"#, r#"빶"#, r#"빶"#, r#"빶"#, r#"빶"#),
+        (r#"빷"#, r#"빷"#, r#"빷"#, r#"빷"#, r#"빷"#),
+        (r#"빸"#, r#"빸"#, r#"빸"#, r#"빸"#, r#"빸"#),
+        (r#"빹"#, r#"빹"#, r#"빹"#, r#"빹"#, r#"빹"#),
+        (r#"빺"#, r#"빺"#, r#"빺"#, r#"빺"#, r#"빺"#),
+        (r#"빻"#, r#"빻"#, r#"빻"#, r#"빻"#, r#"빻"#),
+        (r#"빼"#, r#"빼"#, r#"빼"#, r#"빼"#, r#"빼"#),
+        (r#"빽"#, r#"빽"#, r#"빽"#, r#"빽"#, r#"빽"#),
+        (r#"빾"#, r#"빾"#, r#"빾"#, r#"빾"#, r#"빾"#),
+        (r#"빿"#, r#"빿"#, r#"빿"#, r#"빿"#, r#"빿"#),
+        (r#"뺀"#, r#"뺀"#, r#"뺀"#, r#"뺀"#, r#"뺀"#),
+        (r#"뺁"#, r#"뺁"#, r#"뺁"#, r#"뺁"#, r#"뺁"#),
+        (r#"뺂"#, r#"뺂"#, r#"뺂"#, r#"뺂"#, r#"뺂"#),
+        (r#"뺃"#, r#"뺃"#, r#"뺃"#, r#"뺃"#, r#"뺃"#),
+        (r#"뺄"#, r#"뺄"#, r#"뺄"#, r#"뺄"#, r#"뺄"#),
+        (r#"뺅"#, r#"뺅"#, r#"뺅"#, r#"뺅"#, r#"뺅"#),
+        (r#"뺆"#, r#"뺆"#, r#"뺆"#, r#"뺆"#, r#"뺆"#),
+        (r#"뺇"#, r#"뺇"#, r#"뺇"#, r#"뺇"#, r#"뺇"#),
+        (r#"뺈"#, r#"뺈"#, r#"뺈"#, r#"뺈"#, r#"뺈"#),
+        (r#"뺉"#, r#"뺉"#, r#"뺉"#, r#"뺉"#, r#"뺉"#),
+        (r#"뺊"#, r#"뺊"#, r#"뺊"#, r#"뺊"#, r#"뺊"#),
+        (r#"뺋"#, r#"뺋"#, r#"뺋"#, r#"뺋"#, r#"뺋"#),
+        (r#"뺌"#, r#"뺌"#, r#"뺌"#, r#"뺌"#, r#"뺌"#),
+        (r#"뺍"#, r#"뺍"#, r#"뺍"#, r#"뺍"#, r#"뺍"#),
+        (r#"뺎"#, r#"뺎"#, r#"뺎"#, r#"뺎"#, r#"뺎"#),
+        (r#"뺏"#, r#"뺏"#, r#"뺏"#, r#"뺏"#, r#"뺏"#),
+        (r#"뺐"#, r#"뺐"#, r#"뺐"#, r#"뺐"#, r#"뺐"#),
+        (r#"뺑"#, r#"뺑"#, r#"뺑"#, r#"뺑"#, r#"뺑"#),
+        (r#"뺒"#, r#"뺒"#, r#"뺒"#, r#"뺒"#, r#"뺒"#),
+        (r#"뺓"#, r#"뺓"#, r#"뺓"#, r#"뺓"#, r#"뺓"#),
+        (r#"뺔"#, r#"뺔"#, r#"뺔"#, r#"뺔"#, r#"뺔"#),
+        (r#"뺕"#, r#"뺕"#, r#"뺕"#, r#"뺕"#, r#"뺕"#),
+        (r#"뺖"#, r#"뺖"#, r#"뺖"#, r#"뺖"#, r#"뺖"#),
+        (r#"뺗"#, r#"뺗"#, r#"뺗"#, r#"뺗"#, r#"뺗"#),
+        (r#"뺘"#, r#"뺘"#, r#"뺘"#, r#"뺘"#, r#"뺘"#),
+        (r#"뺙"#, r#"뺙"#, r#"뺙"#, r#"뺙"#, r#"뺙"#),
+        (r#"뺚"#, r#"뺚"#, r#"뺚"#, r#"뺚"#, r#"뺚"#),
+        (r#"뺛"#, r#"뺛"#, r#"뺛"#, r#"뺛"#, r#"뺛"#),
+        (r#"뺜"#, r#"뺜"#, r#"뺜"#, r#"뺜"#, r#"뺜"#),
+        (r#"뺝"#, r#"뺝"#, r#"뺝"#, r#"뺝"#, r#"뺝"#),
+        (r#"뺞"#, r#"뺞"#, r#"뺞"#, r#"뺞"#, r#"뺞"#),
+        (r#"뺟"#, r#"뺟"#, r#"뺟"#, r#"뺟"#, r#"뺟"#),
+        (r#"뺠"#, r#"뺠"#, r#"뺠"#, r#"뺠"#, r#"뺠"#),
+        (r#"뺡"#, r#"뺡"#, r#"뺡"#, r#"뺡"#, r#"뺡"#),
+        (r#"뺢"#, r#"뺢"#, r#"뺢"#, r#"뺢"#, r#"뺢"#),
+        (r#"뺣"#, r#"뺣"#, r#"뺣"#, r#"뺣"#, r#"뺣"#),
+        (r#"뺤"#, r#"뺤"#, r#"뺤"#, r#"뺤"#, r#"뺤"#),
+        (r#"뺥"#, r#"뺥"#, r#"뺥"#, r#"뺥"#, r#"뺥"#),
+        (r#"뺦"#, r#"뺦"#, r#"뺦"#, r#"뺦"#, r#"뺦"#),
+        (r#"뺧"#, r#"뺧"#, r#"뺧"#, r#"뺧"#, r#"뺧"#),
+        (r#"뺨"#, r#"뺨"#, r#"뺨"#, r#"뺨"#, r#"뺨"#),
+        (r#"뺩"#, r#"뺩"#, r#"뺩"#, r#"뺩"#, r#"뺩"#),
+        (r#"뺪"#, r#"뺪"#, r#"뺪"#, r#"뺪"#, r#"뺪"#),
+        (r#"뺫"#, r#"뺫"#, r#"뺫"#, r#"뺫"#, r#"뺫"#),
+        (r#"뺬"#, r#"뺬"#, r#"뺬"#, r#"뺬"#, r#"뺬"#),
+        (r#"뺭"#, r#"뺭"#, r#"뺭"#, r#"뺭"#, r#"뺭"#),
+        (r#"뺮"#, r#"뺮"#, r#"뺮"#, r#"뺮"#, r#"뺮"#),
+        (r#"뺯"#, r#"뺯"#, r#"뺯"#, r#"뺯"#, r#"뺯"#),
+        (r#"뺰"#, r#"뺰"#, r#"뺰"#, r#"뺰"#, r#"뺰"#),
+        (r#"뺱"#, r#"뺱"#, r#"뺱"#, r#"뺱"#, r#"뺱"#),
+        (r#"뺲"#, r#"뺲"#, r#"뺲"#, r#"뺲"#, r#"뺲"#),
+        (r#"뺳"#, r#"뺳"#, r#"뺳"#, r#"뺳"#, r#"뺳"#),
+        (r#"뺴"#, r#"뺴"#, r#"뺴"#, r#"뺴"#, r#"뺴"#),
+        (r#"뺵"#, r#"뺵"#, r#"뺵"#, r#"뺵"#, r#"뺵"#),
+        (r#"뺶"#, r#"뺶"#, r#"뺶"#, r#"뺶"#, r#"뺶"#),
+        (r#"뺷"#, r#"뺷"#, r#"뺷"#, r#"뺷"#, r#"뺷"#),
+        (r#"뺸"#, r#"뺸"#, r#"뺸"#, r#"뺸"#, r#"뺸"#),
+        (r#"뺹"#, r#"뺹"#, r#"뺹"#, r#"뺹"#, r#"뺹"#),
+        (r#"뺺"#, r#"뺺"#, r#"뺺"#, r#"뺺"#, r#"뺺"#),
+        (r#"뺻"#, r#"뺻"#, r#"뺻"#, r#"뺻"#, r#"뺻"#),
+        (r#"뺼"#, r#"뺼"#, r#"뺼"#, r#"뺼"#, r#"뺼"#),
+        (r#"뺽"#, r#"뺽"#, r#"뺽"#, r#"뺽"#, r#"뺽"#),
+        (r#"뺾"#, r#"뺾"#, r#"뺾"#, r#"뺾"#, r#"뺾"#),
+        (r#"뺿"#, r#"뺿"#, r#"뺿"#, r#"뺿"#, r#"뺿"#),
+        (r#"뻀"#, r#"뻀"#, r#"뻀"#, r#"뻀"#, r#"뻀"#),
+        (r#"뻁"#, r#"뻁"#, r#"뻁"#, r#"뻁"#, r#"뻁"#),
+        (r#"뻂"#, r#"뻂"#, r#"뻂"#, r#"뻂"#, r#"뻂"#),
+        (r#"뻃"#, r#"뻃"#, r#"뻃"#, r#"뻃"#, r#"뻃"#),
+        (r#"뻄"#, r#"뻄"#, r#"뻄"#, r#"뻄"#, r#"뻄"#),
+        (r#"뻅"#, r#"뻅"#, r#"뻅"#, r#"뻅"#, r#"뻅"#),
+        (r#"뻆"#, r#"뻆"#, r#"뻆"#, r#"뻆"#, r#"뻆"#),
+        (r#"뻇"#, r#"뻇"#, r#"뻇"#, r#"뻇"#, r#"뻇"#),
+        (r#"뻈"#, r#"뻈"#, r#"뻈"#, r#"뻈"#, r#"뻈"#),
+        (r#"뻉"#, r#"뻉"#, r#"뻉"#, r#"뻉"#, r#"뻉"#),
+        (r#"뻊"#, r#"뻊"#, r#"뻊"#, r#"뻊"#, r#"뻊"#),
+        (r#"뻋"#, r#"뻋"#, r#"뻋"#, r#"뻋"#, r#"뻋"#),
+        (r#"뻌"#, r#"뻌"#, r#"뻌"#, r#"뻌"#, r#"뻌"#),
+        (r#"뻍"#, r#"뻍"#, r#"뻍"#, r#"뻍"#, r#"뻍"#),
+        (r#"뻎"#, r#"뻎"#, r#"뻎"#, r#"뻎"#, r#"뻎"#),
+        (r#"뻏"#, r#"뻏"#, r#"뻏"#, r#"뻏"#, r#"뻏"#),
+        (r#"뻐"#, r#"뻐"#, r#"뻐"#, r#"뻐"#, r#"뻐"#),
+        (r#"뻑"#, r#"뻑"#, r#"뻑"#, r#"뻑"#, r#"뻑"#),
+        (r#"뻒"#, r#"뻒"#, r#"뻒"#, r#"뻒"#, r#"뻒"#),
+        (r#"뻓"#, r#"뻓"#, r#"뻓"#, r#"뻓"#, r#"뻓"#),
+        (r#"뻔"#, r#"뻔"#, r#"뻔"#, r#"뻔"#, r#"뻔"#),
+        (r#"뻕"#, r#"뻕"#, r#"뻕"#, r#"뻕"#, r#"뻕"#),
+        (r#"뻖"#, r#"뻖"#, r#"뻖"#, r#"뻖"#, r#"뻖"#),
+        (r#"뻗"#, r#"뻗"#, r#"뻗"#, r#"뻗"#, r#"뻗"#),
+        (r#"뻘"#, r#"뻘"#, r#"뻘"#, r#"뻘"#, r#"뻘"#),
+        (r#"뻙"#, r#"뻙"#, r#"뻙"#, r#"뻙"#, r#"뻙"#),
+        (r#"뻚"#, r#"뻚"#, r#"뻚"#, r#"뻚"#, r#"뻚"#),
+        (r#"뻛"#, r#"뻛"#, r#"뻛"#, r#"뻛"#, r#"뻛"#),
+        (r#"뻜"#, r#"뻜"#, r#"뻜"#, r#"뻜"#, r#"뻜"#),
+        (r#"뻝"#, r#"뻝"#, r#"뻝"#, r#"뻝"#, r#"뻝"#),
+        (r#"뻞"#, r#"뻞"#, r#"뻞"#, r#"뻞"#, r#"뻞"#),
+        (r#"뻟"#, r#"뻟"#, r#"뻟"#, r#"뻟"#, r#"뻟"#),
+        (r#"뻠"#, r#"뻠"#, r#"뻠"#, r#"뻠"#, r#"뻠"#),
+        (r#"뻡"#, r#"뻡"#, r#"뻡"#, r#"뻡"#, r#"뻡"#),
+        (r#"뻢"#, r#"뻢"#, r#"뻢"#, r#"뻢"#, r#"뻢"#),
+        (r#"뻣"#, r#"뻣"#, r#"뻣"#, r#"뻣"#, r#"뻣"#),
+        (r#"뻤"#, r#"뻤"#, r#"뻤"#, r#"뻤"#, r#"뻤"#),
+        (r#"뻥"#, r#"뻥"#, r#"뻥"#, r#"뻥"#, r#"뻥"#),
+        (r#"뻦"#, r#"뻦"#, r#"뻦"#, r#"뻦"#, r#"뻦"#),
+        (r#"뻧"#, r#"뻧"#, r#"뻧"#, r#"뻧"#, r#"뻧"#),
+        (r#"뻨"#, r#"뻨"#, r#"뻨"#, r#"뻨"#, r#"뻨"#),
+        (r#"뻩"#, r#"뻩"#, r#"뻩"#, r#"뻩"#, r#"뻩"#),
+        (r#"뻪"#, r#"뻪"#, r#"뻪"#, r#"뻪"#, r#"뻪"#),
+        (r#"뻫"#, r#"뻫"#, r#"뻫"#, r#"뻫"#, r#"뻫"#),
+        (r#"뻬"#, r#"뻬"#, r#"뻬"#, r#"뻬"#, r#"뻬"#),
+        (r#"뻭"#, r#"뻭"#, r#"뻭"#, r#"뻭"#, r#"뻭"#),
+        (r#"뻮"#, r#"뻮"#, r#"뻮"#, r#"뻮"#, r#"뻮"#),
+        (r#"뻯"#, r#"뻯"#, r#"뻯"#, r#"뻯"#, r#"뻯"#),
+        (r#"뻰"#, r#"뻰"#, r#"뻰"#, r#"뻰"#, r#"뻰"#),
+        (r#"뻱"#, r#"뻱"#, r#"뻱"#, r#"뻱"#, r#"뻱"#),
+        (r#"뻲"#, r#"뻲"#, r#"뻲"#, r#"뻲"#, r#"뻲"#),
+        (r#"뻳"#, r#"뻳"#, r#"뻳"#, r#"뻳"#, r#"뻳"#),
+        (r#"뻴"#, r#"뻴"#, r#"뻴"#, r#"뻴"#, r#"뻴"#),
+        (r#"뻵"#, r#"뻵"#, r#"뻵"#, r#"뻵"#, r#"뻵"#),
+        (r#"뻶"#, r#"뻶"#, r#"뻶"#, r#"뻶"#, r#"뻶"#),
+        (r#"뻷"#, r#"뻷"#, r#"뻷"#, r#"뻷"#, r#"뻷"#),
+        (r#"뻸"#, r#"뻸"#, r#"뻸"#, r#"뻸"#, r#"뻸"#),
+        (r#"뻹"#, r#"뻹"#, r#"뻹"#, r#"뻹"#, r#"뻹"#),
+        (r#"뻺"#, r#"뻺"#, r#"뻺"#, r#"뻺"#, r#"뻺"#),
+        (r#"뻻"#, r#"뻻"#, r#"뻻"#, r#"뻻"#, r#"뻻"#),
+        (r#"뻼"#, r#"뻼"#, r#"뻼"#, r#"뻼"#, r#"뻼"#),
+        (r#"뻽"#, r#"뻽"#, r#"뻽"#, r#"뻽"#, r#"뻽"#),
+        (r#"뻾"#, r#"뻾"#, r#"뻾"#, r#"뻾"#, r#"뻾"#),
+        (r#"뻿"#, r#"뻿"#, r#"뻿"#, r#"뻿"#, r#"뻿"#),
+        (r#"뼀"#, r#"뼀"#, r#"뼀"#, r#"뼀"#, r#"뼀"#),
+        (r#"뼁"#, r#"뼁"#, r#"뼁"#, r#"뼁"#, r#"뼁"#),
+        (r#"뼂"#, r#"뼂"#, r#"뼂"#, r#"뼂"#, r#"뼂"#),
+        (r#"뼃"#, r#"뼃"#, r#"뼃"#, r#"뼃"#, r#"뼃"#),
+        (r#"뼄"#, r#"뼄"#, r#"뼄"#, r#"뼄"#, r#"뼄"#),
+        (r#"뼅"#, r#"뼅"#, r#"뼅"#, r#"뼅"#, r#"뼅"#),
+        (r#"뼆"#, r#"뼆"#, r#"뼆"#, r#"뼆"#, r#"뼆"#),
+        (r#"뼇"#, r#"뼇"#, r#"뼇"#, r#"뼇"#, r#"뼇"#),
+        (r#"뼈"#, r#"뼈"#, r#"뼈"#, r#"뼈"#, r#"뼈"#),
+        (r#"뼉"#, r#"뼉"#, r#"뼉"#, r#"뼉"#, r#"뼉"#),
+        (r#"뼊"#, r#"뼊"#, r#"뼊"#, r#"뼊"#, r#"뼊"#),
+        (r#"뼋"#, r#"뼋"#, r#"뼋"#, r#"뼋"#, r#"뼋"#),
+        (r#"뼌"#, r#"뼌"#, r#"뼌"#, r#"뼌"#, r#"뼌"#),
+        (r#"뼍"#, r#"뼍"#, r#"뼍"#, r#"뼍"#, r#"뼍"#),
+        (r#"뼎"#, r#"뼎"#, r#"뼎"#, r#"뼎"#, r#"뼎"#),
+        (r#"뼏"#, r#"뼏"#, r#"뼏"#, r#"뼏"#, r#"뼏"#),
+        (r#"뼐"#, r#"뼐"#, r#"뼐"#, r#"뼐"#, r#"뼐"#),
+        (r#"뼑"#, r#"뼑"#, r#"뼑"#, r#"뼑"#, r#"뼑"#),
+        (r#"뼒"#, r#"뼒"#, r#"뼒"#, r#"뼒"#, r#"뼒"#),
+        (r#"뼓"#, r#"뼓"#, r#"뼓"#, r#"뼓"#, r#"뼓"#),
+        (r#"뼔"#, r#"뼔"#, r#"뼔"#, r#"뼔"#, r#"뼔"#),
+        (r#"뼕"#, r#"뼕"#, r#"뼕"#, r#"뼕"#, r#"뼕"#),
+        (r#"뼖"#, r#"뼖"#, r#"뼖"#, r#"뼖"#, r#"뼖"#),
+        (r#"뼗"#, r#"뼗"#, r#"뼗"#, r#"뼗"#, r#"뼗"#),
+        (r#"뼘"#, r#"뼘"#, r#"뼘"#, r#"뼘"#, r#"뼘"#),
+        (r#"뼙"#, r#"뼙"#, r#"뼙"#, r#"뼙"#, r#"뼙"#),
+        (r#"뼚"#, r#"뼚"#, r#"뼚"#, r#"뼚"#, r#"뼚"#),
+        (r#"뼛"#, r#"뼛"#, r#"뼛"#, r#"뼛"#, r#"뼛"#),
+        (r#"뼜"#, r#"뼜"#, r#"뼜"#, r#"뼜"#, r#"뼜"#),
+        (r#"뼝"#, r#"뼝"#, r#"뼝"#, r#"뼝"#, r#"뼝"#),
+        (r#"뼞"#, r#"뼞"#, r#"뼞"#, r#"뼞"#, r#"뼞"#),
+        (r#"뼟"#, r#"뼟"#, r#"뼟"#, r#"뼟"#, r#"뼟"#),
+        (r#"뼠"#, r#"뼠"#, r#"뼠"#, r#"뼠"#, r#"뼠"#),
+        (r#"뼡"#, r#"뼡"#, r#"뼡"#, r#"뼡"#, r#"뼡"#),
+        (r#"뼢"#, r#"뼢"#, r#"뼢"#, r#"뼢"#, r#"뼢"#),
+        (r#"뼣"#, r#"뼣"#, r#"뼣"#, r#"뼣"#, r#"뼣"#),
+        (r#"뼤"#, r#"뼤"#, r#"뼤"#, r#"뼤"#, r#"뼤"#),
+        (r#"뼥"#, r#"뼥"#, r#"뼥"#, r#"뼥"#, r#"뼥"#),
+        (r#"뼦"#, r#"뼦"#, r#"뼦"#, r#"뼦"#, r#"뼦"#),
+        (r#"뼧"#, r#"뼧"#, r#"뼧"#, r#"뼧"#, r#"뼧"#),
+        (r#"뼨"#, r#"뼨"#, r#"뼨"#, r#"뼨"#, r#"뼨"#),
+        (r#"뼩"#, r#"뼩"#, r#"뼩"#, r#"뼩"#, r#"뼩"#),
+        (r#"뼪"#, r#"뼪"#, r#"뼪"#, r#"뼪"#, r#"뼪"#),
+        (r#"뼫"#, r#"뼫"#, r#"뼫"#, r#"뼫"#, r#"뼫"#),
+        (r#"뼬"#, r#"뼬"#, r#"뼬"#, r#"뼬"#, r#"뼬"#),
+        (r#"뼭"#, r#"뼭"#, r#"뼭"#, r#"뼭"#, r#"뼭"#),
+        (r#"뼮"#, r#"뼮"#, r#"뼮"#, r#"뼮"#, r#"뼮"#),
+        (r#"뼯"#, r#"뼯"#, r#"뼯"#, r#"뼯"#, r#"뼯"#),
+        (r#"뼰"#, r#"뼰"#, r#"뼰"#, r#"뼰"#, r#"뼰"#),
+        (r#"뼱"#, r#"뼱"#, r#"뼱"#, r#"뼱"#, r#"뼱"#),
+        (r#"뼲"#, r#"뼲"#, r#"뼲"#, r#"뼲"#, r#"뼲"#),
+        (r#"뼳"#, r#"뼳"#, r#"뼳"#, r#"뼳"#, r#"뼳"#),
+        (r#"뼴"#, r#"뼴"#, r#"뼴"#, r#"뼴"#, r#"뼴"#),
+        (r#"뼵"#, r#"뼵"#, r#"뼵"#, r#"뼵"#, r#"뼵"#),
+        (r#"뼶"#, r#"뼶"#, r#"뼶"#, r#"뼶"#, r#"뼶"#),
+        (r#"뼷"#, r#"뼷"#, r#"뼷"#, r#"뼷"#, r#"뼷"#),
+        (r#"뼸"#, r#"뼸"#, r#"뼸"#, r#"뼸"#, r#"뼸"#),
+        (r#"뼹"#, r#"뼹"#, r#"뼹"#, r#"뼹"#, r#"뼹"#),
+        (r#"뼺"#, r#"뼺"#, r#"뼺"#, r#"뼺"#, r#"뼺"#),
+        (r#"뼻"#, r#"뼻"#, r#"뼻"#, r#"뼻"#, r#"뼻"#),
+        (r#"뼼"#, r#"뼼"#, r#"뼼"#, r#"뼼"#, r#"뼼"#),
+        (r#"뼽"#, r#"뼽"#, r#"뼽"#, r#"뼽"#, r#"뼽"#),
+        (r#"뼾"#, r#"뼾"#, r#"뼾"#, r#"뼾"#, r#"뼾"#),
+        (r#"뼿"#, r#"뼿"#, r#"뼿"#, r#"뼿"#, r#"뼿"#),
+        (r#"뽀"#, r#"뽀"#, r#"뽀"#, r#"뽀"#, r#"뽀"#),
+        (r#"뽁"#, r#"뽁"#, r#"뽁"#, r#"뽁"#, r#"뽁"#),
+        (r#"뽂"#, r#"뽂"#, r#"뽂"#, r#"뽂"#, r#"뽂"#),
+        (r#"뽃"#, r#"뽃"#, r#"뽃"#, r#"뽃"#, r#"뽃"#),
+        (r#"뽄"#, r#"뽄"#, r#"뽄"#, r#"뽄"#, r#"뽄"#),
+        (r#"뽅"#, r#"뽅"#, r#"뽅"#, r#"뽅"#, r#"뽅"#),
+        (r#"뽆"#, r#"뽆"#, r#"뽆"#, r#"뽆"#, r#"뽆"#),
+        (r#"뽇"#, r#"뽇"#, r#"뽇"#, r#"뽇"#, r#"뽇"#),
+        (r#"뽈"#, r#"뽈"#, r#"뽈"#, r#"뽈"#, r#"뽈"#),
+        (r#"뽉"#, r#"뽉"#, r#"뽉"#, r#"뽉"#, r#"뽉"#),
+        (r#"뽊"#, r#"뽊"#, r#"뽊"#, r#"뽊"#, r#"뽊"#),
+        (r#"뽋"#, r#"뽋"#, r#"뽋"#, r#"뽋"#, r#"뽋"#),
+        (r#"뽌"#, r#"뽌"#, r#"뽌"#, r#"뽌"#, r#"뽌"#),
+        (r#"뽍"#, r#"뽍"#, r#"뽍"#, r#"뽍"#, r#"뽍"#),
+        (r#"뽎"#, r#"뽎"#, r#"뽎"#, r#"뽎"#, r#"뽎"#),
+        (r#"뽏"#, r#"뽏"#, r#"뽏"#, r#"뽏"#, r#"뽏"#),
+        (r#"뽐"#, r#"뽐"#, r#"뽐"#, r#"뽐"#, r#"뽐"#),
+        (r#"뽑"#, r#"뽑"#, r#"뽑"#, r#"뽑"#, r#"뽑"#),
+        (r#"뽒"#, r#"뽒"#, r#"뽒"#, r#"뽒"#, r#"뽒"#),
+        (r#"뽓"#, r#"뽓"#, r#"뽓"#, r#"뽓"#, r#"뽓"#),
+        (r#"뽔"#, r#"뽔"#, r#"뽔"#, r#"뽔"#, r#"뽔"#),
+        (r#"뽕"#, r#"뽕"#, r#"뽕"#, r#"뽕"#, r#"뽕"#),
+        (r#"뽖"#, r#"뽖"#, r#"뽖"#, r#"뽖"#, r#"뽖"#),
+        (r#"뽗"#, r#"뽗"#, r#"뽗"#, r#"뽗"#, r#"뽗"#),
+        (r#"뽘"#, r#"뽘"#, r#"뽘"#, r#"뽘"#, r#"뽘"#),
+        (r#"뽙"#, r#"뽙"#, r#"뽙"#, r#"뽙"#, r#"뽙"#),
+        (r#"뽚"#, r#"뽚"#, r#"뽚"#, r#"뽚"#, r#"뽚"#),
+        (r#"뽛"#, r#"뽛"#, r#"뽛"#, r#"뽛"#, r#"뽛"#),
+        (r#"뽜"#, r#"뽜"#, r#"뽜"#, r#"뽜"#, r#"뽜"#),
+        (r#"뽝"#, r#"뽝"#, r#"뽝"#, r#"뽝"#, r#"뽝"#),
+        (r#"뽞"#, r#"뽞"#, r#"뽞"#, r#"뽞"#, r#"뽞"#),
+        (r#"뽟"#, r#"뽟"#, r#"뽟"#, r#"뽟"#, r#"뽟"#),
+        (r#"뽠"#, r#"뽠"#, r#"뽠"#, r#"뽠"#, r#"뽠"#),
+        (r#"뽡"#, r#"뽡"#, r#"뽡"#, r#"뽡"#, r#"뽡"#),
+        (r#"뽢"#, r#"뽢"#, r#"뽢"#, r#"뽢"#, r#"뽢"#),
+        (r#"뽣"#, r#"뽣"#, r#"뽣"#, r#"뽣"#, r#"뽣"#),
+        (r#"뽤"#, r#"뽤"#, r#"뽤"#, r#"뽤"#, r#"뽤"#),
+        (r#"뽥"#, r#"뽥"#, r#"뽥"#, r#"뽥"#, r#"뽥"#),
+        (r#"뽦"#, r#"뽦"#, r#"뽦"#, r#"뽦"#, r#"뽦"#),
+        (r#"뽧"#, r#"뽧"#, r#"뽧"#, r#"뽧"#, r#"뽧"#),
+        (r#"뽨"#, r#"뽨"#, r#"뽨"#, r#"뽨"#, r#"뽨"#),
+        (r#"뽩"#, r#"뽩"#, r#"뽩"#, r#"뽩"#, r#"뽩"#),
+        (r#"뽪"#, r#"뽪"#, r#"뽪"#, r#"뽪"#, r#"뽪"#),
+        (r#"뽫"#, r#"뽫"#, r#"뽫"#, r#"뽫"#, r#"뽫"#),
+        (r#"뽬"#, r#"뽬"#, r#"뽬"#, r#"뽬"#, r#"뽬"#),
+        (r#"뽭"#, r#"뽭"#, r#"뽭"#, r#"뽭"#, r#"뽭"#),
+        (r#"뽮"#, r#"뽮"#, r#"뽮"#, r#"뽮"#, r#"뽮"#),
+        (r#"뽯"#, r#"뽯"#, r#"뽯"#, r#"뽯"#, r#"뽯"#),
+        (r#"뽰"#, r#"뽰"#, r#"뽰"#, r#"뽰"#, r#"뽰"#),
+        (r#"뽱"#, r#"뽱"#, r#"뽱"#, r#"뽱"#, r#"뽱"#),
+        (r#"뽲"#, r#"뽲"#, r#"뽲"#, r#"뽲"#, r#"뽲"#),
+        (r#"뽳"#, r#"뽳"#, r#"뽳"#, r#"뽳"#, r#"뽳"#),
+        (r#"뽴"#, r#"뽴"#, r#"뽴"#, r#"뽴"#, r#"뽴"#),
+        (r#"뽵"#, r#"뽵"#, r#"뽵"#, r#"뽵"#, r#"뽵"#),
+        (r#"뽶"#, r#"뽶"#, r#"뽶"#, r#"뽶"#, r#"뽶"#),
+        (r#"뽷"#, r#"뽷"#, r#"뽷"#, r#"뽷"#, r#"뽷"#),
+        (r#"뽸"#, r#"뽸"#, r#"뽸"#, r#"뽸"#, r#"뽸"#),
+        (r#"뽹"#, r#"뽹"#, r#"뽹"#, r#"뽹"#, r#"뽹"#),
+        (r#"뽺"#, r#"뽺"#, r#"뽺"#, r#"뽺"#, r#"뽺"#),
+        (r#"뽻"#, r#"뽻"#, r#"뽻"#, r#"뽻"#, r#"뽻"#),
+        (r#"뽼"#, r#"뽼"#, r#"뽼"#, r#"뽼"#, r#"뽼"#),
+        (r#"뽽"#, r#"뽽"#, r#"뽽"#, r#"뽽"#, r#"뽽"#),
+        (r#"뽾"#, r#"뽾"#, r#"뽾"#, r#"뽾"#, r#"뽾"#),
+        (r#"뽿"#, r#"뽿"#, r#"뽿"#, r#"뽿"#, r#"뽿"#),
+        (r#"뾀"#, r#"뾀"#, r#"뾀"#, r#"뾀"#, r#"뾀"#),
+        (r#"뾁"#, r#"뾁"#, r#"뾁"#, r#"뾁"#, r#"뾁"#),
+        (r#"뾂"#, r#"뾂"#, r#"뾂"#, r#"뾂"#, r#"뾂"#),
+        (r#"뾃"#, r#"뾃"#, r#"뾃"#, r#"뾃"#, r#"뾃"#),
+        (r#"뾄"#, r#"뾄"#, r#"뾄"#, r#"뾄"#, r#"뾄"#),
+        (r#"뾅"#, r#"뾅"#, r#"뾅"#, r#"뾅"#, r#"뾅"#),
+        (r#"뾆"#, r#"뾆"#, r#"뾆"#, r#"뾆"#, r#"뾆"#),
+        (r#"뾇"#, r#"뾇"#, r#"뾇"#, r#"뾇"#, r#"뾇"#),
+        (r#"뾈"#, r#"뾈"#, r#"뾈"#, r#"뾈"#, r#"뾈"#),
+        (r#"뾉"#, r#"뾉"#, r#"뾉"#, r#"뾉"#, r#"뾉"#),
+        (r#"뾊"#, r#"뾊"#, r#"뾊"#, r#"뾊"#, r#"뾊"#),
+        (r#"뾋"#, r#"뾋"#, r#"뾋"#, r#"뾋"#, r#"뾋"#),
+        (r#"뾌"#, r#"뾌"#, r#"뾌"#, r#"뾌"#, r#"뾌"#),
+        (r#"뾍"#, r#"뾍"#, r#"뾍"#, r#"뾍"#, r#"뾍"#),
+        (r#"뾎"#, r#"뾎"#, r#"뾎"#, r#"뾎"#, r#"뾎"#),
+        (r#"뾏"#, r#"뾏"#, r#"뾏"#, r#"뾏"#, r#"뾏"#),
+        (r#"뾐"#, r#"뾐"#, r#"뾐"#, r#"뾐"#, r#"뾐"#),
+        (r#"뾑"#, r#"뾑"#, r#"뾑"#, r#"뾑"#, r#"뾑"#),
+        (r#"뾒"#, r#"뾒"#, r#"뾒"#, r#"뾒"#, r#"뾒"#),
+        (r#"뾓"#, r#"뾓"#, r#"뾓"#, r#"뾓"#, r#"뾓"#),
+        (r#"뾔"#, r#"뾔"#, r#"뾔"#, r#"뾔"#, r#"뾔"#),
+        (r#"뾕"#, r#"뾕"#, r#"뾕"#, r#"뾕"#, r#"뾕"#),
+        (r#"뾖"#, r#"뾖"#, r#"뾖"#, r#"뾖"#, r#"뾖"#),
+        (r#"뾗"#, r#"뾗"#, r#"뾗"#, r#"뾗"#, r#"뾗"#),
+        (r#"뾘"#, r#"뾘"#, r#"뾘"#, r#"뾘"#, r#"뾘"#),
+        (r#"뾙"#, r#"뾙"#, r#"뾙"#, r#"뾙"#, r#"뾙"#),
+        (r#"뾚"#, r#"뾚"#, r#"뾚"#, r#"뾚"#, r#"뾚"#),
+        (r#"뾛"#, r#"뾛"#, r#"뾛"#, r#"뾛"#, r#"뾛"#),
+        (r#"뾜"#, r#"뾜"#, r#"뾜"#, r#"뾜"#, r#"뾜"#),
+        (r#"뾝"#, r#"뾝"#, r#"뾝"#, r#"뾝"#, r#"뾝"#),
+        (r#"뾞"#, r#"뾞"#, r#"뾞"#, r#"뾞"#, r#"뾞"#),
+        (r#"뾟"#, r#"뾟"#, r#"뾟"#, r#"뾟"#, r#"뾟"#),
+        (r#"뾠"#, r#"뾠"#, r#"뾠"#, r#"뾠"#, r#"뾠"#),
+        (r#"뾡"#, r#"뾡"#, r#"뾡"#, r#"뾡"#, r#"뾡"#),
+        (r#"뾢"#, r#"뾢"#, r#"뾢"#, r#"뾢"#, r#"뾢"#),
+        (r#"뾣"#, r#"뾣"#, r#"뾣"#, r#"뾣"#, r#"뾣"#),
+        (r#"뾤"#, r#"뾤"#, r#"뾤"#, r#"뾤"#, r#"뾤"#),
+        (r#"뾥"#, r#"뾥"#, r#"뾥"#, r#"뾥"#, r#"뾥"#),
+        (r#"뾦"#, r#"뾦"#, r#"뾦"#, r#"뾦"#, r#"뾦"#),
+        (r#"뾧"#, r#"뾧"#, r#"뾧"#, r#"뾧"#, r#"뾧"#),
+        (r#"뾨"#, r#"뾨"#, r#"뾨"#, r#"뾨"#, r#"뾨"#),
+        (r#"뾩"#, r#"뾩"#, r#"뾩"#, r#"뾩"#, r#"뾩"#),
+        (r#"뾪"#, r#"뾪"#, r#"뾪"#, r#"뾪"#, r#"뾪"#),
+        (r#"뾫"#, r#"뾫"#, r#"뾫"#, r#"뾫"#, r#"뾫"#),
+        (r#"뾬"#, r#"뾬"#, r#"뾬"#, r#"뾬"#, r#"뾬"#),
+        (r#"뾭"#, r#"뾭"#, r#"뾭"#, r#"뾭"#, r#"뾭"#),
+        (r#"뾮"#, r#"뾮"#, r#"뾮"#, r#"뾮"#, r#"뾮"#),
+        (r#"뾯"#, r#"뾯"#, r#"뾯"#, r#"뾯"#, r#"뾯"#),
+        (r#"뾰"#, r#"뾰"#, r#"뾰"#, r#"뾰"#, r#"뾰"#),
+        (r#"뾱"#, r#"뾱"#, r#"뾱"#, r#"뾱"#, r#"뾱"#),
+        (r#"뾲"#, r#"뾲"#, r#"뾲"#, r#"뾲"#, r#"뾲"#),
+        (r#"뾳"#, r#"뾳"#, r#"뾳"#, r#"뾳"#, r#"뾳"#),
+        (r#"뾴"#, r#"뾴"#, r#"뾴"#, r#"뾴"#, r#"뾴"#),
+        (r#"뾵"#, r#"뾵"#, r#"뾵"#, r#"뾵"#, r#"뾵"#),
+        (r#"뾶"#, r#"뾶"#, r#"뾶"#, r#"뾶"#, r#"뾶"#),
+        (r#"뾷"#, r#"뾷"#, r#"뾷"#, r#"뾷"#, r#"뾷"#),
+        (r#"뾸"#, r#"뾸"#, r#"뾸"#, r#"뾸"#, r#"뾸"#),
+        (r#"뾹"#, r#"뾹"#, r#"뾹"#, r#"뾹"#, r#"뾹"#),
+        (r#"뾺"#, r#"뾺"#, r#"뾺"#, r#"뾺"#, r#"뾺"#),
+        (r#"뾻"#, r#"뾻"#, r#"뾻"#, r#"뾻"#, r#"뾻"#),
+        (r#"뾼"#, r#"뾼"#, r#"뾼"#, r#"뾼"#, r#"뾼"#),
+        (r#"뾽"#, r#"뾽"#, r#"뾽"#, r#"뾽"#, r#"뾽"#),
+        (r#"뾾"#, r#"뾾"#, r#"뾾"#, r#"뾾"#, r#"뾾"#),
+        (r#"뾿"#, r#"뾿"#, r#"뾿"#, r#"뾿"#, r#"뾿"#),
+        (r#"뿀"#, r#"뿀"#, r#"뿀"#, r#"뿀"#, r#"뿀"#),
+        (r#"뿁"#, r#"뿁"#, r#"뿁"#, r#"뿁"#, r#"뿁"#),
+        (r#"뿂"#, r#"뿂"#, r#"뿂"#, r#"뿂"#, r#"뿂"#),
+        (r#"뿃"#, r#"뿃"#, r#"뿃"#, r#"뿃"#, r#"뿃"#),
+        (r#"뿄"#, r#"뿄"#, r#"뿄"#, r#"뿄"#, r#"뿄"#),
+        (r#"뿅"#, r#"뿅"#, r#"뿅"#, r#"뿅"#, r#"뿅"#),
+        (r#"뿆"#, r#"뿆"#, r#"뿆"#, r#"뿆"#, r#"뿆"#),
+        (r#"뿇"#, r#"뿇"#, r#"뿇"#, r#"뿇"#, r#"뿇"#),
+        (r#"뿈"#, r#"뿈"#, r#"뿈"#, r#"뿈"#, r#"뿈"#),
+        (r#"뿉"#, r#"뿉"#, r#"뿉"#, r#"뿉"#, r#"뿉"#),
+        (r#"뿊"#, r#"뿊"#, r#"뿊"#, r#"뿊"#, r#"뿊"#),
+        (r#"뿋"#, r#"뿋"#, r#"뿋"#, r#"뿋"#, r#"뿋"#),
+        (r#"뿌"#, r#"뿌"#, r#"뿌"#, r#"뿌"#, r#"뿌"#),
+        (r#"뿍"#, r#"뿍"#, r#"뿍"#, r#"뿍"#, r#"뿍"#),
+        (r#"뿎"#, r#"뿎"#, r#"뿎"#, r#"뿎"#, r#"뿎"#),
+        (r#"뿏"#, r#"뿏"#, r#"뿏"#, r#"뿏"#, r#"뿏"#),
+        (r#"뿐"#, r#"뿐"#, r#"뿐"#, r#"뿐"#, r#"뿐"#),
+        (r#"뿑"#, r#"뿑"#, r#"뿑"#, r#"뿑"#, r#"뿑"#),
+        (r#"뿒"#, r#"뿒"#, r#"뿒"#, r#"뿒"#, r#"뿒"#),
+        (r#"뿓"#, r#"뿓"#, r#"뿓"#, r#"뿓"#, r#"뿓"#),
+        (r#"뿔"#, r#"뿔"#, r#"뿔"#, r#"뿔"#, r#"뿔"#),
+        (r#"뿕"#, r#"뿕"#, r#"뿕"#, r#"뿕"#, r#"뿕"#),
+        (r#"뿖"#, r#"뿖"#, r#"뿖"#, r#"뿖"#, r#"뿖"#),
+        (r#"뿗"#, r#"뿗"#, r#"뿗"#, r#"뿗"#, r#"뿗"#),
+        (r#"뿘"#, r#"뿘"#, r#"뿘"#, r#"뿘"#, r#"뿘"#),
+        (r#"뿙"#, r#"뿙"#, r#"뿙"#, r#"뿙"#, r#"뿙"#),
+        (r#"뿚"#, r#"뿚"#, r#"뿚"#, r#"뿚"#, r#"뿚"#),
+        (r#"뿛"#, r#"뿛"#, r#"뿛"#, r#"뿛"#, r#"뿛"#),
+        (r#"뿜"#, r#"뿜"#, r#"뿜"#, r#"뿜"#, r#"뿜"#),
+        (r#"뿝"#, r#"뿝"#, r#"뿝"#, r#"뿝"#, r#"뿝"#),
+        (r#"뿞"#, r#"뿞"#, r#"뿞"#, r#"뿞"#, r#"뿞"#),
+        (r#"뿟"#, r#"뿟"#, r#"뿟"#, r#"뿟"#, r#"뿟"#),
+        (r#"뿠"#, r#"뿠"#, r#"뿠"#, r#"뿠"#, r#"뿠"#),
+        (r#"뿡"#, r#"뿡"#, r#"뿡"#, r#"뿡"#, r#"뿡"#),
+        (r#"뿢"#, r#"뿢"#, r#"뿢"#, r#"뿢"#, r#"뿢"#),
+        (r#"뿣"#, r#"뿣"#, r#"뿣"#, r#"뿣"#, r#"뿣"#),
+        (r#"뿤"#, r#"뿤"#, r#"뿤"#, r#"뿤"#, r#"뿤"#),
+        (r#"뿥"#, r#"뿥"#, r#"뿥"#, r#"뿥"#, r#"뿥"#),
+        (r#"뿦"#, r#"뿦"#, r#"뿦"#, r#"뿦"#, r#"뿦"#),
+        (r#"뿧"#, r#"뿧"#, r#"뿧"#, r#"뿧"#, r#"뿧"#),
+        (r#"뿨"#, r#"뿨"#, r#"뿨"#, r#"뿨"#, r#"뿨"#),
+        (r#"뿩"#, r#"뿩"#, r#"뿩"#, r#"뿩"#, r#"뿩"#),
+        (r#"뿪"#, r#"뿪"#, r#"뿪"#, r#"뿪"#, r#"뿪"#),
+        (r#"뿫"#, r#"뿫"#, r#"뿫"#, r#"뿫"#, r#"뿫"#),
+        (r#"뿬"#, r#"뿬"#, r#"뿬"#, r#"뿬"#, r#"뿬"#),
+        (r#"뿭"#, r#"뿭"#, r#"뿭"#, r#"뿭"#, r#"뿭"#),
+        (r#"뿮"#, r#"뿮"#, r#"뿮"#, r#"뿮"#, r#"뿮"#),
+        (r#"뿯"#, r#"뿯"#, r#"뿯"#, r#"뿯"#, r#"뿯"#),
+        (r#"뿰"#, r#"뿰"#, r#"뿰"#, r#"뿰"#, r#"뿰"#),
+        (r#"뿱"#, r#"뿱"#, r#"뿱"#, r#"뿱"#, r#"뿱"#),
+        (r#"뿲"#, r#"뿲"#, r#"뿲"#, r#"뿲"#, r#"뿲"#),
+        (r#"뿳"#, r#"뿳"#, r#"뿳"#, r#"뿳"#, r#"뿳"#),
+        (r#"뿴"#, r#"뿴"#, r#"뿴"#, r#"뿴"#, r#"뿴"#),
+        (r#"뿵"#, r#"뿵"#, r#"뿵"#, r#"뿵"#, r#"뿵"#),
+        (r#"뿶"#, r#"뿶"#, r#"뿶"#, r#"뿶"#, r#"뿶"#),
+        (r#"뿷"#, r#"뿷"#, r#"뿷"#, r#"뿷"#, r#"뿷"#),
+        (r#"뿸"#, r#"뿸"#, r#"뿸"#, r#"뿸"#, r#"뿸"#),
+        (r#"뿹"#, r#"뿹"#, r#"뿹"#, r#"뿹"#, r#"뿹"#),
+        (r#"뿺"#, r#"뿺"#, r#"뿺"#, r#"뿺"#, r#"뿺"#),
+        (r#"뿻"#, r#"뿻"#, r#"뿻"#, r#"뿻"#, r#"뿻"#),
+        (r#"뿼"#, r#"뿼"#, r#"뿼"#, r#"뿼"#, r#"뿼"#),
+        (r#"뿽"#, r#"뿽"#, r#"뿽"#, r#"뿽"#, r#"뿽"#),
+        (r#"뿾"#, r#"뿾"#, r#"뿾"#, r#"뿾"#, r#"뿾"#),
+        (r#"뿿"#, r#"뿿"#, r#"뿿"#, r#"뿿"#, r#"뿿"#),
+        (r#"쀀"#, r#"쀀"#, r#"쀀"#, r#"쀀"#, r#"쀀"#),
+        (r#"쀁"#, r#"쀁"#, r#"쀁"#, r#"쀁"#, r#"쀁"#),
+        (r#"쀂"#, r#"쀂"#, r#"쀂"#, r#"쀂"#, r#"쀂"#),
+        (r#"쀃"#, r#"쀃"#, r#"쀃"#, r#"쀃"#, r#"쀃"#),
+        (r#"쀄"#, r#"쀄"#, r#"쀄"#, r#"쀄"#, r#"쀄"#),
+        (r#"쀅"#, r#"쀅"#, r#"쀅"#, r#"쀅"#, r#"쀅"#),
+        (r#"쀆"#, r#"쀆"#, r#"쀆"#, r#"쀆"#, r#"쀆"#),
+        (r#"쀇"#, r#"쀇"#, r#"쀇"#, r#"쀇"#, r#"쀇"#),
+        (r#"쀈"#, r#"쀈"#, r#"쀈"#, r#"쀈"#, r#"쀈"#),
+        (r#"쀉"#, r#"쀉"#, r#"쀉"#, r#"쀉"#, r#"쀉"#),
+        (r#"쀊"#, r#"쀊"#, r#"쀊"#, r#"쀊"#, r#"쀊"#),
+        (r#"쀋"#, r#"쀋"#, r#"쀋"#, r#"쀋"#, r#"쀋"#),
+        (r#"쀌"#, r#"쀌"#, r#"쀌"#, r#"쀌"#, r#"쀌"#),
+        (r#"쀍"#, r#"쀍"#, r#"쀍"#, r#"쀍"#, r#"쀍"#),
+        (r#"쀎"#, r#"쀎"#, r#"쀎"#, r#"쀎"#, r#"쀎"#),
+        (r#"쀏"#, r#"쀏"#, r#"쀏"#, r#"쀏"#, r#"쀏"#),
+        (r#"쀐"#, r#"쀐"#, r#"쀐"#, r#"쀐"#, r#"쀐"#),
+        (r#"쀑"#, r#"쀑"#, r#"쀑"#, r#"쀑"#, r#"쀑"#),
+        (r#"쀒"#, r#"쀒"#, r#"쀒"#, r#"쀒"#, r#"쀒"#),
+        (r#"쀓"#, r#"쀓"#, r#"쀓"#, r#"쀓"#, r#"쀓"#),
+        (r#"쀔"#, r#"쀔"#, r#"쀔"#, r#"쀔"#, r#"쀔"#),
+        (r#"쀕"#, r#"쀕"#, r#"쀕"#, r#"쀕"#, r#"쀕"#),
+        (r#"쀖"#, r#"쀖"#, r#"쀖"#, r#"쀖"#, r#"쀖"#),
+        (r#"쀗"#, r#"쀗"#, r#"쀗"#, r#"쀗"#, r#"쀗"#),
+        (r#"쀘"#, r#"쀘"#, r#"쀘"#, r#"쀘"#, r#"쀘"#),
+        (r#"쀙"#, r#"쀙"#, r#"쀙"#, r#"쀙"#, r#"쀙"#),
+        (r#"쀚"#, r#"쀚"#, r#"쀚"#, r#"쀚"#, r#"쀚"#),
+        (r#"쀛"#, r#"쀛"#, r#"쀛"#, r#"쀛"#, r#"쀛"#),
+        (r#"쀜"#, r#"쀜"#, r#"쀜"#, r#"쀜"#, r#"쀜"#),
+        (r#"쀝"#, r#"쀝"#, r#"쀝"#, r#"쀝"#, r#"쀝"#),
+        (r#"쀞"#, r#"쀞"#, r#"쀞"#, r#"쀞"#, r#"쀞"#),
+        (r#"쀟"#, r#"쀟"#, r#"쀟"#, r#"쀟"#, r#"쀟"#),
+        (r#"쀠"#, r#"쀠"#, r#"쀠"#, r#"쀠"#, r#"쀠"#),
+        (r#"쀡"#, r#"쀡"#, r#"쀡"#, r#"쀡"#, r#"쀡"#),
+        (r#"쀢"#, r#"쀢"#, r#"쀢"#, r#"쀢"#, r#"쀢"#),
+        (r#"쀣"#, r#"쀣"#, r#"쀣"#, r#"쀣"#, r#"쀣"#),
+        (r#"쀤"#, r#"쀤"#, r#"쀤"#, r#"쀤"#, r#"쀤"#),
+        (r#"쀥"#, r#"쀥"#, r#"쀥"#, r#"쀥"#, r#"쀥"#),
+        (r#"쀦"#, r#"쀦"#, r#"쀦"#, r#"쀦"#, r#"쀦"#),
+        (r#"쀧"#, r#"쀧"#, r#"쀧"#, r#"쀧"#, r#"쀧"#),
+        (r#"쀨"#, r#"쀨"#, r#"쀨"#, r#"쀨"#, r#"쀨"#),
+        (r#"쀩"#, r#"쀩"#, r#"쀩"#, r#"쀩"#, r#"쀩"#),
+        (r#"쀪"#, r#"쀪"#, r#"쀪"#, r#"쀪"#, r#"쀪"#),
+        (r#"쀫"#, r#"쀫"#, r#"쀫"#, r#"쀫"#, r#"쀫"#),
+        (r#"쀬"#, r#"쀬"#, r#"쀬"#, r#"쀬"#, r#"쀬"#),
+        (r#"쀭"#, r#"쀭"#, r#"쀭"#, r#"쀭"#, r#"쀭"#),
+        (r#"쀮"#, r#"쀮"#, r#"쀮"#, r#"쀮"#, r#"쀮"#),
+        (r#"쀯"#, r#"쀯"#, r#"쀯"#, r#"쀯"#, r#"쀯"#),
+        (r#"쀰"#, r#"쀰"#, r#"쀰"#, r#"쀰"#, r#"쀰"#),
+        (r#"쀱"#, r#"쀱"#, r#"쀱"#, r#"쀱"#, r#"쀱"#),
+        (r#"쀲"#, r#"쀲"#, r#"쀲"#, r#"쀲"#, r#"쀲"#),
+        (r#"쀳"#, r#"쀳"#, r#"쀳"#, r#"쀳"#, r#"쀳"#),
+        (r#"쀴"#, r#"쀴"#, r#"쀴"#, r#"쀴"#, r#"쀴"#),
+        (r#"쀵"#, r#"쀵"#, r#"쀵"#, r#"쀵"#, r#"쀵"#),
+        (r#"쀶"#, r#"쀶"#, r#"쀶"#, r#"쀶"#, r#"쀶"#),
+        (r#"쀷"#, r#"쀷"#, r#"쀷"#, r#"쀷"#, r#"쀷"#),
+        (r#"쀸"#, r#"쀸"#, r#"쀸"#, r#"쀸"#, r#"쀸"#),
+        (r#"쀹"#, r#"쀹"#, r#"쀹"#, r#"쀹"#, r#"쀹"#),
+        (r#"쀺"#, r#"쀺"#, r#"쀺"#, r#"쀺"#, r#"쀺"#),
+        (r#"쀻"#, r#"쀻"#, r#"쀻"#, r#"쀻"#, r#"쀻"#),
+        (r#"쀼"#, r#"쀼"#, r#"쀼"#, r#"쀼"#, r#"쀼"#),
+        (r#"쀽"#, r#"쀽"#, r#"쀽"#, r#"쀽"#, r#"쀽"#),
+        (r#"쀾"#, r#"쀾"#, r#"쀾"#, r#"쀾"#, r#"쀾"#),
+        (r#"쀿"#, r#"쀿"#, r#"쀿"#, r#"쀿"#, r#"쀿"#),
+        (r#"쁀"#, r#"쁀"#, r#"쁀"#, r#"쁀"#, r#"쁀"#),
+        (r#"쁁"#, r#"쁁"#, r#"쁁"#, r#"쁁"#, r#"쁁"#),
+        (r#"쁂"#, r#"쁂"#, r#"쁂"#, r#"쁂"#, r#"쁂"#),
+        (r#"쁃"#, r#"쁃"#, r#"쁃"#, r#"쁃"#, r#"쁃"#),
+        (r#"쁄"#, r#"쁄"#, r#"쁄"#, r#"쁄"#, r#"쁄"#),
+        (r#"쁅"#, r#"쁅"#, r#"쁅"#, r#"쁅"#, r#"쁅"#),
+        (r#"쁆"#, r#"쁆"#, r#"쁆"#, r#"쁆"#, r#"쁆"#),
+        (r#"쁇"#, r#"쁇"#, r#"쁇"#, r#"쁇"#, r#"쁇"#),
+        (r#"쁈"#, r#"쁈"#, r#"쁈"#, r#"쁈"#, r#"쁈"#),
+        (r#"쁉"#, r#"쁉"#, r#"쁉"#, r#"쁉"#, r#"쁉"#),
+        (r#"쁊"#, r#"쁊"#, r#"쁊"#, r#"쁊"#, r#"쁊"#),
+        (r#"쁋"#, r#"쁋"#, r#"쁋"#, r#"쁋"#, r#"쁋"#),
+        (r#"쁌"#, r#"쁌"#, r#"쁌"#, r#"쁌"#, r#"쁌"#),
+        (r#"쁍"#, r#"쁍"#, r#"쁍"#, r#"쁍"#, r#"쁍"#),
+        (r#"쁎"#, r#"쁎"#, r#"쁎"#, r#"쁎"#, r#"쁎"#),
+        (r#"쁏"#, r#"쁏"#, r#"쁏"#, r#"쁏"#, r#"쁏"#),
+        (r#"쁐"#, r#"쁐"#, r#"쁐"#, r#"쁐"#, r#"쁐"#),
+        (r#"쁑"#, r#"쁑"#, r#"쁑"#, r#"쁑"#, r#"쁑"#),
+        (r#"쁒"#, r#"쁒"#, r#"쁒"#, r#"쁒"#, r#"쁒"#),
+        (r#"쁓"#, r#"쁓"#, r#"쁓"#, r#"쁓"#, r#"쁓"#),
+        (r#"쁔"#, r#"쁔"#, r#"쁔"#, r#"쁔"#, r#"쁔"#),
+        (r#"쁕"#, r#"쁕"#, r#"쁕"#, r#"쁕"#, r#"쁕"#),
+        (r#"쁖"#, r#"쁖"#, r#"쁖"#, r#"쁖"#, r#"쁖"#),
+        (r#"쁗"#, r#"쁗"#, r#"쁗"#, r#"쁗"#, r#"쁗"#),
+        (r#"쁘"#, r#"쁘"#, r#"쁘"#, r#"쁘"#, r#"쁘"#),
+        (r#"쁙"#, r#"쁙"#, r#"쁙"#, r#"쁙"#, r#"쁙"#),
+        (r#"쁚"#, r#"쁚"#, r#"쁚"#, r#"쁚"#, r#"쁚"#),
+        (r#"쁛"#, r#"쁛"#, r#"쁛"#, r#"쁛"#, r#"쁛"#),
+        (r#"쁜"#, r#"쁜"#, r#"쁜"#, r#"쁜"#, r#"쁜"#),
+        (r#"쁝"#, r#"쁝"#, r#"쁝"#, r#"쁝"#, r#"쁝"#),
+        (r#"쁞"#, r#"쁞"#, r#"쁞"#, r#"쁞"#, r#"쁞"#),
+        (r#"쁟"#, r#"쁟"#, r#"쁟"#, r#"쁟"#, r#"쁟"#),
+        (r#"쁠"#, r#"쁠"#, r#"쁠"#, r#"쁠"#, r#"쁠"#),
+        (r#"쁡"#, r#"쁡"#, r#"쁡"#, r#"쁡"#, r#"쁡"#),
+        (r#"쁢"#, r#"쁢"#, r#"쁢"#, r#"쁢"#, r#"쁢"#),
+        (r#"쁣"#, r#"쁣"#, r#"쁣"#, r#"쁣"#, r#"쁣"#),
+        (r#"쁤"#, r#"쁤"#, r#"쁤"#, r#"쁤"#, r#"쁤"#),
+        (r#"쁥"#, r#"쁥"#, r#"쁥"#, r#"쁥"#, r#"쁥"#),
+        (r#"쁦"#, r#"쁦"#, r#"쁦"#, r#"쁦"#, r#"쁦"#),
+        (r#"쁧"#, r#"쁧"#, r#"쁧"#, r#"쁧"#, r#"쁧"#),
+        (r#"쁨"#, r#"쁨"#, r#"쁨"#, r#"쁨"#, r#"쁨"#),
+        (r#"쁩"#, r#"쁩"#, r#"쁩"#, r#"쁩"#, r#"쁩"#),
+        (r#"쁪"#, r#"쁪"#, r#"쁪"#, r#"쁪"#, r#"쁪"#),
+        (r#"쁫"#, r#"쁫"#, r#"쁫"#, r#"쁫"#, r#"쁫"#),
+        (r#"쁬"#, r#"쁬"#, r#"쁬"#, r#"쁬"#, r#"쁬"#),
+        (r#"쁭"#, r#"쁭"#, r#"쁭"#, r#"쁭"#, r#"쁭"#),
+        (r#"쁮"#, r#"쁮"#, r#"쁮"#, r#"쁮"#, r#"쁮"#),
+        (r#"쁯"#, r#"쁯"#, r#"쁯"#, r#"쁯"#, r#"쁯"#),
+        (r#"쁰"#, r#"쁰"#, r#"쁰"#, r#"쁰"#, r#"쁰"#),
+        (r#"쁱"#, r#"쁱"#, r#"쁱"#, r#"쁱"#, r#"쁱"#),
+        (r#"쁲"#, r#"쁲"#, r#"쁲"#, r#"쁲"#, r#"쁲"#),
+        (r#"쁳"#, r#"쁳"#, r#"쁳"#, r#"쁳"#, r#"쁳"#),
+        (r#"쁴"#, r#"쁴"#, r#"쁴"#, r#"쁴"#, r#"쁴"#),
+        (r#"쁵"#, r#"쁵"#, r#"쁵"#, r#"쁵"#, r#"쁵"#),
+        (r#"쁶"#, r#"쁶"#, r#"쁶"#, r#"쁶"#, r#"쁶"#),
+        (r#"쁷"#, r#"쁷"#, r#"쁷"#, r#"쁷"#, r#"쁷"#),
+        (r#"쁸"#, r#"쁸"#, r#"쁸"#, r#"쁸"#, r#"쁸"#),
+        (r#"쁹"#, r#"쁹"#, r#"쁹"#, r#"쁹"#, r#"쁹"#),
+        (r#"쁺"#, r#"쁺"#, r#"쁺"#, r#"쁺"#, r#"쁺"#),
+        (r#"쁻"#, r#"쁻"#, r#"쁻"#, r#"쁻"#, r#"쁻"#),
+        (r#"쁼"#, r#"쁼"#, r#"쁼"#, r#"쁼"#, r#"쁼"#),
+        (r#"쁽"#, r#"쁽"#, r#"쁽"#, r#"쁽"#, r#"쁽"#),
+        (r#"쁾"#, r#"쁾"#, r#"쁾"#, r#"쁾"#, r#"쁾"#),
+        (r#"쁿"#, r#"쁿"#, r#"쁿"#, r#"쁿"#, r#"쁿"#),
+        (r#"삀"#, r#"삀"#, r#"삀"#, r#"삀"#, r#"삀"#),
+        (r#"삁"#, r#"삁"#, r#"삁"#, r#"삁"#, r#"삁"#),
+        (r#"삂"#, r#"삂"#, r#"삂"#, r#"삂"#, r#"삂"#),
+        (r#"삃"#, r#"삃"#, r#"삃"#, r#"삃"#, r#"삃"#),
+        (r#"삄"#, r#"삄"#, r#"삄"#, r#"삄"#, r#"삄"#),
+        (r#"삅"#, r#"삅"#, r#"삅"#, r#"삅"#, r#"삅"#),
+        (r#"삆"#, r#"삆"#, r#"삆"#, r#"삆"#, r#"삆"#),
+        (r#"삇"#, r#"삇"#, r#"삇"#, r#"삇"#, r#"삇"#),
+        (r#"삈"#, r#"삈"#, r#"삈"#, r#"삈"#, r#"삈"#),
+        (r#"삉"#, r#"삉"#, r#"삉"#, r#"삉"#, r#"삉"#),
+        (r#"삊"#, r#"삊"#, r#"삊"#, r#"삊"#, r#"삊"#),
+        (r#"삋"#, r#"삋"#, r#"삋"#, r#"삋"#, r#"삋"#),
+        (r#"삌"#, r#"삌"#, r#"삌"#, r#"삌"#, r#"삌"#),
+        (r#"삍"#, r#"삍"#, r#"삍"#, r#"삍"#, r#"삍"#),
+        (r#"삎"#, r#"삎"#, r#"삎"#, r#"삎"#, r#"삎"#),
+        (r#"삏"#, r#"삏"#, r#"삏"#, r#"삏"#, r#"삏"#),
+        (r#"삐"#, r#"삐"#, r#"삐"#, r#"삐"#, r#"삐"#),
+        (r#"삑"#, r#"삑"#, r#"삑"#, r#"삑"#, r#"삑"#),
+        (r#"삒"#, r#"삒"#, r#"삒"#, r#"삒"#, r#"삒"#),
+        (r#"삓"#, r#"삓"#, r#"삓"#, r#"삓"#, r#"삓"#),
+        (r#"삔"#, r#"삔"#, r#"삔"#, r#"삔"#, r#"삔"#),
+        (r#"삕"#, r#"삕"#, r#"삕"#, r#"삕"#, r#"삕"#),
+        (r#"삖"#, r#"삖"#, r#"삖"#, r#"삖"#, r#"삖"#),
+        (r#"삗"#, r#"삗"#, r#"삗"#, r#"삗"#, r#"삗"#),
+        (r#"삘"#, r#"삘"#, r#"삘"#, r#"삘"#, r#"삘"#),
+        (r#"삙"#, r#"삙"#, r#"삙"#, r#"삙"#, r#"삙"#),
+        (r#"삚"#, r#"삚"#, r#"삚"#, r#"삚"#, r#"삚"#),
+        (r#"삛"#, r#"삛"#, r#"삛"#, r#"삛"#, r#"삛"#),
+        (r#"삜"#, r#"삜"#, r#"삜"#, r#"삜"#, r#"삜"#),
+        (r#"삝"#, r#"삝"#, r#"삝"#, r#"삝"#, r#"삝"#),
+        (r#"삞"#, r#"삞"#, r#"삞"#, r#"삞"#, r#"삞"#),
+        (r#"삟"#, r#"삟"#, r#"삟"#, r#"삟"#, r#"삟"#),
+        (r#"삠"#, r#"삠"#, r#"삠"#, r#"삠"#, r#"삠"#),
+        (r#"삡"#, r#"삡"#, r#"삡"#, r#"삡"#, r#"삡"#),
+        (r#"삢"#, r#"삢"#, r#"삢"#, r#"삢"#, r#"삢"#),
+        (r#"삣"#, r#"삣"#, r#"삣"#, r#"삣"#, r#"삣"#),
+        (r#"삤"#, r#"삤"#, r#"삤"#, r#"삤"#, r#"삤"#),
+        (r#"삥"#, r#"삥"#, r#"삥"#, r#"삥"#, r#"삥"#),
+        (r#"삦"#, r#"삦"#, r#"삦"#, r#"삦"#, r#"삦"#),
+        (r#"삧"#, r#"삧"#, r#"삧"#, r#"삧"#, r#"삧"#),
+        (r#"삨"#, r#"삨"#, r#"삨"#, r#"삨"#, r#"삨"#),
+        (r#"삩"#, r#"삩"#, r#"삩"#, r#"삩"#, r#"삩"#),
+        (r#"삪"#, r#"삪"#, r#"삪"#, r#"삪"#, r#"삪"#),
+        (r#"삫"#, r#"삫"#, r#"삫"#, r#"삫"#, r#"삫"#),
+        (r#"사"#, r#"사"#, r#"사"#, r#"사"#, r#"사"#),
+        (r#"삭"#, r#"삭"#, r#"삭"#, r#"삭"#, r#"삭"#),
+        (r#"삮"#, r#"삮"#, r#"삮"#, r#"삮"#, r#"삮"#),
+        (r#"삯"#, r#"삯"#, r#"삯"#, r#"삯"#, r#"삯"#),
+        (r#"산"#, r#"산"#, r#"산"#, r#"산"#, r#"산"#),
+        (r#"삱"#, r#"삱"#, r#"삱"#, r#"삱"#, r#"삱"#),
+        (r#"삲"#, r#"삲"#, r#"삲"#, r#"삲"#, r#"삲"#),
+        (r#"삳"#, r#"삳"#, r#"삳"#, r#"삳"#, r#"삳"#),
+        (r#"살"#, r#"살"#, r#"살"#, r#"살"#, r#"살"#),
+        (r#"삵"#, r#"삵"#, r#"삵"#, r#"삵"#, r#"삵"#),
+        (r#"삶"#, r#"삶"#, r#"삶"#, r#"삶"#, r#"삶"#),
+        (r#"삷"#, r#"삷"#, r#"삷"#, r#"삷"#, r#"삷"#),
+        (r#"삸"#, r#"삸"#, r#"삸"#, r#"삸"#, r#"삸"#),
+        (r#"삹"#, r#"삹"#, r#"삹"#, r#"삹"#, r#"삹"#),
+        (r#"삺"#, r#"삺"#, r#"삺"#, r#"삺"#, r#"삺"#),
+        (r#"삻"#, r#"삻"#, r#"삻"#, r#"삻"#, r#"삻"#),
+        (r#"삼"#, r#"삼"#, r#"삼"#, r#"삼"#, r#"삼"#),
+        (r#"삽"#, r#"삽"#, r#"삽"#, r#"삽"#, r#"삽"#),
+        (r#"삾"#, r#"삾"#, r#"삾"#, r#"삾"#, r#"삾"#),
+        (r#"삿"#, r#"삿"#, r#"삿"#, r#"삿"#, r#"삿"#),
+        (r#"샀"#, r#"샀"#, r#"샀"#, r#"샀"#, r#"샀"#),
+        (r#"상"#, r#"상"#, r#"상"#, r#"상"#, r#"상"#),
+        (r#"샂"#, r#"샂"#, r#"샂"#, r#"샂"#, r#"샂"#),
+        (r#"샃"#, r#"샃"#, r#"샃"#, r#"샃"#, r#"샃"#),
+        (r#"샄"#, r#"샄"#, r#"샄"#, r#"샄"#, r#"샄"#),
+        (r#"샅"#, r#"샅"#, r#"샅"#, r#"샅"#, r#"샅"#),
+        (r#"샆"#, r#"샆"#, r#"샆"#, r#"샆"#, r#"샆"#),
+        (r#"샇"#, r#"샇"#, r#"샇"#, r#"샇"#, r#"샇"#),
+        (r#"새"#, r#"새"#, r#"새"#, r#"새"#, r#"새"#),
+        (r#"색"#, r#"색"#, r#"색"#, r#"색"#, r#"색"#),
+        (r#"샊"#, r#"샊"#, r#"샊"#, r#"샊"#, r#"샊"#),
+        (r#"샋"#, r#"샋"#, r#"샋"#, r#"샋"#, r#"샋"#),
+        (r#"샌"#, r#"샌"#, r#"샌"#, r#"샌"#, r#"샌"#),
+        (r#"샍"#, r#"샍"#, r#"샍"#, r#"샍"#, r#"샍"#),
+        (r#"샎"#, r#"샎"#, r#"샎"#, r#"샎"#, r#"샎"#),
+        (r#"샏"#, r#"샏"#, r#"샏"#, r#"샏"#, r#"샏"#),
+        (r#"샐"#, r#"샐"#, r#"샐"#, r#"샐"#, r#"샐"#),
+        (r#"샑"#, r#"샑"#, r#"샑"#, r#"샑"#, r#"샑"#),
+        (r#"샒"#, r#"샒"#, r#"샒"#, r#"샒"#, r#"샒"#),
+        (r#"샓"#, r#"샓"#, r#"샓"#, r#"샓"#, r#"샓"#),
+        (r#"샔"#, r#"샔"#, r#"샔"#, r#"샔"#, r#"샔"#),
+        (r#"샕"#, r#"샕"#, r#"샕"#, r#"샕"#, r#"샕"#),
+        (r#"샖"#, r#"샖"#, r#"샖"#, r#"샖"#, r#"샖"#),
+        (r#"샗"#, r#"샗"#, r#"샗"#, r#"샗"#, r#"샗"#),
+        (r#"샘"#, r#"샘"#, r#"샘"#, r#"샘"#, r#"샘"#),
+        (r#"샙"#, r#"샙"#, r#"샙"#, r#"샙"#, r#"샙"#),
+        (r#"샚"#, r#"샚"#, r#"샚"#, r#"샚"#, r#"샚"#),
+        (r#"샛"#, r#"샛"#, r#"샛"#, r#"샛"#, r#"샛"#),
+        (r#"샜"#, r#"샜"#, r#"샜"#, r#"샜"#, r#"샜"#),
+        (r#"생"#, r#"생"#, r#"생"#, r#"생"#, r#"생"#),
+        (r#"샞"#, r#"샞"#, r#"샞"#, r#"샞"#, r#"샞"#),
+        (r#"샟"#, r#"샟"#, r#"샟"#, r#"샟"#, r#"샟"#),
+        (r#"샠"#, r#"샠"#, r#"샠"#, r#"샠"#, r#"샠"#),
+        (r#"샡"#, r#"샡"#, r#"샡"#, r#"샡"#, r#"샡"#),
+        (r#"샢"#, r#"샢"#, r#"샢"#, r#"샢"#, r#"샢"#),
+        (r#"샣"#, r#"샣"#, r#"샣"#, r#"샣"#, r#"샣"#),
+        (r#"샤"#, r#"샤"#, r#"샤"#, r#"샤"#, r#"샤"#),
+        (r#"샥"#, r#"샥"#, r#"샥"#, r#"샥"#, r#"샥"#),
+        (r#"샦"#, r#"샦"#, r#"샦"#, r#"샦"#, r#"샦"#),
+        (r#"샧"#, r#"샧"#, r#"샧"#, r#"샧"#, r#"샧"#),
+        (r#"샨"#, r#"샨"#, r#"샨"#, r#"샨"#, r#"샨"#),
+        (r#"샩"#, r#"샩"#, r#"샩"#, r#"샩"#, r#"샩"#),
+        (r#"샪"#, r#"샪"#, r#"샪"#, r#"샪"#, r#"샪"#),
+        (r#"샫"#, r#"샫"#, r#"샫"#, r#"샫"#, r#"샫"#),
+        (r#"샬"#, r#"샬"#, r#"샬"#, r#"샬"#, r#"샬"#),
+        (r#"샭"#, r#"샭"#, r#"샭"#, r#"샭"#, r#"샭"#),
+        (r#"샮"#, r#"샮"#, r#"샮"#, r#"샮"#, r#"샮"#),
+        (r#"샯"#, r#"샯"#, r#"샯"#, r#"샯"#, r#"샯"#),
+        (r#"샰"#, r#"샰"#, r#"샰"#, r#"샰"#, r#"샰"#),
+        (r#"샱"#, r#"샱"#, r#"샱"#, r#"샱"#, r#"샱"#),
+        (r#"샲"#, r#"샲"#, r#"샲"#, r#"샲"#, r#"샲"#),
+        (r#"샳"#, r#"샳"#, r#"샳"#, r#"샳"#, r#"샳"#),
+        (r#"샴"#, r#"샴"#, r#"샴"#, r#"샴"#, r#"샴"#),
+        (r#"샵"#, r#"샵"#, r#"샵"#, r#"샵"#, r#"샵"#),
+        (r#"샶"#, r#"샶"#, r#"샶"#, r#"샶"#, r#"샶"#),
+        (r#"샷"#, r#"샷"#, r#"샷"#, r#"샷"#, r#"샷"#),
+        (r#"샸"#, r#"샸"#, r#"샸"#, r#"샸"#, r#"샸"#),
+        (r#"샹"#, r#"샹"#, r#"샹"#, r#"샹"#, r#"샹"#),
+        (r#"샺"#, r#"샺"#, r#"샺"#, r#"샺"#, r#"샺"#),
+        (r#"샻"#, r#"샻"#, r#"샻"#, r#"샻"#, r#"샻"#),
+        (r#"샼"#, r#"샼"#, r#"샼"#, r#"샼"#, r#"샼"#),
+        (r#"샽"#, r#"샽"#, r#"샽"#, r#"샽"#, r#"샽"#),
+        (r#"샾"#, r#"샾"#, r#"샾"#, r#"샾"#, r#"샾"#),
+        (r#"샿"#, r#"샿"#, r#"샿"#, r#"샿"#, r#"샿"#),
+        (r#"섀"#, r#"섀"#, r#"섀"#, r#"섀"#, r#"섀"#),
+        (r#"섁"#, r#"섁"#, r#"섁"#, r#"섁"#, r#"섁"#),
+        (r#"섂"#, r#"섂"#, r#"섂"#, r#"섂"#, r#"섂"#),
+        (r#"섃"#, r#"섃"#, r#"섃"#, r#"섃"#, r#"섃"#),
+        (r#"섄"#, r#"섄"#, r#"섄"#, r#"섄"#, r#"섄"#),
+        (r#"섅"#, r#"섅"#, r#"섅"#, r#"섅"#, r#"섅"#),
+        (r#"섆"#, r#"섆"#, r#"섆"#, r#"섆"#, r#"섆"#),
+        (r#"섇"#, r#"섇"#, r#"섇"#, r#"섇"#, r#"섇"#),
+        (r#"섈"#, r#"섈"#, r#"섈"#, r#"섈"#, r#"섈"#),
+        (r#"섉"#, r#"섉"#, r#"섉"#, r#"섉"#, r#"섉"#),
+        (r#"섊"#, r#"섊"#, r#"섊"#, r#"섊"#, r#"섊"#),
+        (r#"섋"#, r#"섋"#, r#"섋"#, r#"섋"#, r#"섋"#),
+        (r#"섌"#, r#"섌"#, r#"섌"#, r#"섌"#, r#"섌"#),
+        (r#"섍"#, r#"섍"#, r#"섍"#, r#"섍"#, r#"섍"#),
+        (r#"섎"#, r#"섎"#, r#"섎"#, r#"섎"#, r#"섎"#),
+        (r#"섏"#, r#"섏"#, r#"섏"#, r#"섏"#, r#"섏"#),
+        (r#"섐"#, r#"섐"#, r#"섐"#, r#"섐"#, r#"섐"#),
+        (r#"섑"#, r#"섑"#, r#"섑"#, r#"섑"#, r#"섑"#),
+        (r#"섒"#, r#"섒"#, r#"섒"#, r#"섒"#, r#"섒"#),
+        (r#"섓"#, r#"섓"#, r#"섓"#, r#"섓"#, r#"섓"#),
+        (r#"섔"#, r#"섔"#, r#"섔"#, r#"섔"#, r#"섔"#),
+        (r#"섕"#, r#"섕"#, r#"섕"#, r#"섕"#, r#"섕"#),
+        (r#"섖"#, r#"섖"#, r#"섖"#, r#"섖"#, r#"섖"#),
+        (r#"섗"#, r#"섗"#, r#"섗"#, r#"섗"#, r#"섗"#),
+        (r#"섘"#, r#"섘"#, r#"섘"#, r#"섘"#, r#"섘"#),
+        (r#"섙"#, r#"섙"#, r#"섙"#, r#"섙"#, r#"섙"#),
+        (r#"섚"#, r#"섚"#, r#"섚"#, r#"섚"#, r#"섚"#),
+        (r#"섛"#, r#"섛"#, r#"섛"#, r#"섛"#, r#"섛"#),
+        (r#"서"#, r#"서"#, r#"서"#, r#"서"#, r#"서"#),
+        (r#"석"#, r#"석"#, r#"석"#, r#"석"#, r#"석"#),
+        (r#"섞"#, r#"섞"#, r#"섞"#, r#"섞"#, r#"섞"#),
+        (r#"섟"#, r#"섟"#, r#"섟"#, r#"섟"#, r#"섟"#),
+        (r#"선"#, r#"선"#, r#"선"#, r#"선"#, r#"선"#),
+        (r#"섡"#, r#"섡"#, r#"섡"#, r#"섡"#, r#"섡"#),
+        (r#"섢"#, r#"섢"#, r#"섢"#, r#"섢"#, r#"섢"#),
+        (r#"섣"#, r#"섣"#, r#"섣"#, r#"섣"#, r#"섣"#),
+        (r#"설"#, r#"설"#, r#"설"#, r#"설"#, r#"설"#),
+        (r#"섥"#, r#"섥"#, r#"섥"#, r#"섥"#, r#"섥"#),
+        (r#"섦"#, r#"섦"#, r#"섦"#, r#"섦"#, r#"섦"#),
+        (r#"섧"#, r#"섧"#, r#"섧"#, r#"섧"#, r#"섧"#),
+        (r#"섨"#, r#"섨"#, r#"섨"#, r#"섨"#, r#"섨"#),
+        (r#"섩"#, r#"섩"#, r#"섩"#, r#"섩"#, r#"섩"#),
+        (r#"섪"#, r#"섪"#, r#"섪"#, r#"섪"#, r#"섪"#),
+        (r#"섫"#, r#"섫"#, r#"섫"#, r#"섫"#, r#"섫"#),
+        (r#"섬"#, r#"섬"#, r#"섬"#, r#"섬"#, r#"섬"#),
+        (r#"섭"#, r#"섭"#, r#"섭"#, r#"섭"#, r#"섭"#),
+        (r#"섮"#, r#"섮"#, r#"섮"#, r#"섮"#, r#"섮"#),
+        (r#"섯"#, r#"섯"#, r#"섯"#, r#"섯"#, r#"섯"#),
+        (r#"섰"#, r#"섰"#, r#"섰"#, r#"섰"#, r#"섰"#),
+        (r#"성"#, r#"성"#, r#"성"#, r#"성"#, r#"성"#),
+        (r#"섲"#, r#"섲"#, r#"섲"#, r#"섲"#, r#"섲"#),
+        (r#"섳"#, r#"섳"#, r#"섳"#, r#"섳"#, r#"섳"#),
+        (r#"섴"#, r#"섴"#, r#"섴"#, r#"섴"#, r#"섴"#),
+        (r#"섵"#, r#"섵"#, r#"섵"#, r#"섵"#, r#"섵"#),
+        (r#"섶"#, r#"섶"#, r#"섶"#, r#"섶"#, r#"섶"#),
+        (r#"섷"#, r#"섷"#, r#"섷"#, r#"섷"#, r#"섷"#),
+        (r#"세"#, r#"세"#, r#"세"#, r#"세"#, r#"세"#),
+        (r#"섹"#, r#"섹"#, r#"섹"#, r#"섹"#, r#"섹"#),
+        (r#"섺"#, r#"섺"#, r#"섺"#, r#"섺"#, r#"섺"#),
+        (r#"섻"#, r#"섻"#, r#"섻"#, r#"섻"#, r#"섻"#),
+        (r#"센"#, r#"센"#, r#"센"#, r#"센"#, r#"센"#),
+        (r#"섽"#, r#"섽"#, r#"섽"#, r#"섽"#, r#"섽"#),
+        (r#"섾"#, r#"섾"#, r#"섾"#, r#"섾"#, r#"섾"#),
+        (r#"섿"#, r#"섿"#, r#"섿"#, r#"섿"#, r#"섿"#),
+        (r#"셀"#, r#"셀"#, r#"셀"#, r#"셀"#, r#"셀"#),
+        (r#"셁"#, r#"셁"#, r#"셁"#, r#"셁"#, r#"셁"#),
+        (r#"셂"#, r#"셂"#, r#"셂"#, r#"셂"#, r#"셂"#),
+        (r#"셃"#, r#"셃"#, r#"셃"#, r#"셃"#, r#"셃"#),
+        (r#"셄"#, r#"셄"#, r#"셄"#, r#"셄"#, r#"셄"#),
+        (r#"셅"#, r#"셅"#, r#"셅"#, r#"셅"#, r#"셅"#),
+        (r#"셆"#, r#"셆"#, r#"셆"#, r#"셆"#, r#"셆"#),
+        (r#"셇"#, r#"셇"#, r#"셇"#, r#"셇"#, r#"셇"#),
+        (r#"셈"#, r#"셈"#, r#"셈"#, r#"셈"#, r#"셈"#),
+        (r#"셉"#, r#"셉"#, r#"셉"#, r#"셉"#, r#"셉"#),
+        (r#"셊"#, r#"셊"#, r#"셊"#, r#"셊"#, r#"셊"#),
+        (r#"셋"#, r#"셋"#, r#"셋"#, r#"셋"#, r#"셋"#),
+        (r#"셌"#, r#"셌"#, r#"셌"#, r#"셌"#, r#"셌"#),
+        (r#"셍"#, r#"셍"#, r#"셍"#, r#"셍"#, r#"셍"#),
+        (r#"셎"#, r#"셎"#, r#"셎"#, r#"셎"#, r#"셎"#),
+        (r#"셏"#, r#"셏"#, r#"셏"#, r#"셏"#, r#"셏"#),
+        (r#"셐"#, r#"셐"#, r#"셐"#, r#"셐"#, r#"셐"#),
+        (r#"셑"#, r#"셑"#, r#"셑"#, r#"셑"#, r#"셑"#),
+        (r#"셒"#, r#"셒"#, r#"셒"#, r#"셒"#, r#"셒"#),
+        (r#"셓"#, r#"셓"#, r#"셓"#, r#"셓"#, r#"셓"#),
+        (r#"셔"#, r#"셔"#, r#"셔"#, r#"셔"#, r#"셔"#),
+        (r#"셕"#, r#"셕"#, r#"셕"#, r#"셕"#, r#"셕"#),
+        (r#"셖"#, r#"셖"#, r#"셖"#, r#"셖"#, r#"셖"#),
+        (r#"셗"#, r#"셗"#, r#"셗"#, r#"셗"#, r#"셗"#),
+        (r#"션"#, r#"션"#, r#"션"#, r#"션"#, r#"션"#),
+        (r#"셙"#, r#"셙"#, r#"셙"#, r#"셙"#, r#"셙"#),
+        (r#"셚"#, r#"셚"#, r#"셚"#, r#"셚"#, r#"셚"#),
+        (r#"셛"#, r#"셛"#, r#"셛"#, r#"셛"#, r#"셛"#),
+        (r#"셜"#, r#"셜"#, r#"셜"#, r#"셜"#, r#"셜"#),
+        (r#"셝"#, r#"셝"#, r#"셝"#, r#"셝"#, r#"셝"#),
+        (r#"셞"#, r#"셞"#, r#"셞"#, r#"셞"#, r#"셞"#),
+        (r#"셟"#, r#"셟"#, r#"셟"#, r#"셟"#, r#"셟"#),
+        (r#"셠"#, r#"셠"#, r#"셠"#, r#"셠"#, r#"셠"#),
+        (r#"셡"#, r#"셡"#, r#"셡"#, r#"셡"#, r#"셡"#),
+        (r#"셢"#, r#"셢"#, r#"셢"#, r#"셢"#, r#"셢"#),
+        (r#"셣"#, r#"셣"#, r#"셣"#, r#"셣"#, r#"셣"#),
+        (r#"셤"#, r#"셤"#, r#"셤"#, r#"셤"#, r#"셤"#),
+        (r#"셥"#, r#"셥"#, r#"셥"#, r#"셥"#, r#"셥"#),
+        (r#"셦"#, r#"셦"#, r#"셦"#, r#"셦"#, r#"셦"#),
+        (r#"셧"#, r#"셧"#, r#"셧"#, r#"셧"#, r#"셧"#),
+        (r#"셨"#, r#"셨"#, r#"셨"#, r#"셨"#, r#"셨"#),
+        (r#"셩"#, r#"셩"#, r#"셩"#, r#"셩"#, r#"셩"#),
+        (r#"셪"#, r#"셪"#, r#"셪"#, r#"셪"#, r#"셪"#),
+        (r#"셫"#, r#"셫"#, r#"셫"#, r#"셫"#, r#"셫"#),
+        (r#"셬"#, r#"셬"#, r#"셬"#, r#"셬"#, r#"셬"#),
+        (r#"셭"#, r#"셭"#, r#"셭"#, r#"셭"#, r#"셭"#),
+        (r#"셮"#, r#"셮"#, r#"셮"#, r#"셮"#, r#"셮"#),
+        (r#"셯"#, r#"셯"#, r#"셯"#, r#"셯"#, r#"셯"#),
+        (r#"셰"#, r#"셰"#, r#"셰"#, r#"셰"#, r#"셰"#),
+        (r#"셱"#, r#"셱"#, r#"셱"#, r#"셱"#, r#"셱"#),
+        (r#"셲"#, r#"셲"#, r#"셲"#, r#"셲"#, r#"셲"#),
+        (r#"셳"#, r#"셳"#, r#"셳"#, r#"셳"#, r#"셳"#),
+        (r#"셴"#, r#"셴"#, r#"셴"#, r#"셴"#, r#"셴"#),
+        (r#"셵"#, r#"셵"#, r#"셵"#, r#"셵"#, r#"셵"#),
+        (r#"셶"#, r#"셶"#, r#"셶"#, r#"셶"#, r#"셶"#),
+        (r#"셷"#, r#"셷"#, r#"셷"#, r#"셷"#, r#"셷"#),
+        (r#"셸"#, r#"셸"#, r#"셸"#, r#"셸"#, r#"셸"#),
+        (r#"셹"#, r#"셹"#, r#"셹"#, r#"셹"#, r#"셹"#),
+        (r#"셺"#, r#"셺"#, r#"셺"#, r#"셺"#, r#"셺"#),
+        (r#"셻"#, r#"셻"#, r#"셻"#, r#"셻"#, r#"셻"#),
+        (r#"셼"#, r#"셼"#, r#"셼"#, r#"셼"#, r#"셼"#),
+        (r#"셽"#, r#"셽"#, r#"셽"#, r#"셽"#, r#"셽"#),
+        (r#"셾"#, r#"셾"#, r#"셾"#, r#"셾"#, r#"셾"#),
+        (r#"셿"#, r#"셿"#, r#"셿"#, r#"셿"#, r#"셿"#),
+        (r#"솀"#, r#"솀"#, r#"솀"#, r#"솀"#, r#"솀"#),
+        (r#"솁"#, r#"솁"#, r#"솁"#, r#"솁"#, r#"솁"#),
+        (r#"솂"#, r#"솂"#, r#"솂"#, r#"솂"#, r#"솂"#),
+        (r#"솃"#, r#"솃"#, r#"솃"#, r#"솃"#, r#"솃"#),
+        (r#"솄"#, r#"솄"#, r#"솄"#, r#"솄"#, r#"솄"#),
+        (r#"솅"#, r#"솅"#, r#"솅"#, r#"솅"#, r#"솅"#),
+        (r#"솆"#, r#"솆"#, r#"솆"#, r#"솆"#, r#"솆"#),
+        (r#"솇"#, r#"솇"#, r#"솇"#, r#"솇"#, r#"솇"#),
+        (r#"솈"#, r#"솈"#, r#"솈"#, r#"솈"#, r#"솈"#),
+        (r#"솉"#, r#"솉"#, r#"솉"#, r#"솉"#, r#"솉"#),
+        (r#"솊"#, r#"솊"#, r#"솊"#, r#"솊"#, r#"솊"#),
+        (r#"솋"#, r#"솋"#, r#"솋"#, r#"솋"#, r#"솋"#),
+        (r#"소"#, r#"소"#, r#"소"#, r#"소"#, r#"소"#),
+        (r#"속"#, r#"속"#, r#"속"#, r#"속"#, r#"속"#),
+        (r#"솎"#, r#"솎"#, r#"솎"#, r#"솎"#, r#"솎"#),
+        (r#"솏"#, r#"솏"#, r#"솏"#, r#"솏"#, r#"솏"#),
+        (r#"손"#, r#"손"#, r#"손"#, r#"손"#, r#"손"#),
+        (r#"솑"#, r#"솑"#, r#"솑"#, r#"솑"#, r#"솑"#),
+        (r#"솒"#, r#"솒"#, r#"솒"#, r#"솒"#, r#"솒"#),
+        (r#"솓"#, r#"솓"#, r#"솓"#, r#"솓"#, r#"솓"#),
+        (r#"솔"#, r#"솔"#, r#"솔"#, r#"솔"#, r#"솔"#),
+        (r#"솕"#, r#"솕"#, r#"솕"#, r#"솕"#, r#"솕"#),
+        (r#"솖"#, r#"솖"#, r#"솖"#, r#"솖"#, r#"솖"#),
+        (r#"솗"#, r#"솗"#, r#"솗"#, r#"솗"#, r#"솗"#),
+        (r#"솘"#, r#"솘"#, r#"솘"#, r#"솘"#, r#"솘"#),
+        (r#"솙"#, r#"솙"#, r#"솙"#, r#"솙"#, r#"솙"#),
+        (r#"솚"#, r#"솚"#, r#"솚"#, r#"솚"#, r#"솚"#),
+        (r#"솛"#, r#"솛"#, r#"솛"#, r#"솛"#, r#"솛"#),
+        (r#"솜"#, r#"솜"#, r#"솜"#, r#"솜"#, r#"솜"#),
+        (r#"솝"#, r#"솝"#, r#"솝"#, r#"솝"#, r#"솝"#),
+        (r#"솞"#, r#"솞"#, r#"솞"#, r#"솞"#, r#"솞"#),
+        (r#"솟"#, r#"솟"#, r#"솟"#, r#"솟"#, r#"솟"#),
+        (r#"솠"#, r#"솠"#, r#"솠"#, r#"솠"#, r#"솠"#),
+        (r#"송"#, r#"송"#, r#"송"#, r#"송"#, r#"송"#),
+        (r#"솢"#, r#"솢"#, r#"솢"#, r#"솢"#, r#"솢"#),
+        (r#"솣"#, r#"솣"#, r#"솣"#, r#"솣"#, r#"솣"#),
+        (r#"솤"#, r#"솤"#, r#"솤"#, r#"솤"#, r#"솤"#),
+        (r#"솥"#, r#"솥"#, r#"솥"#, r#"솥"#, r#"솥"#),
+        (r#"솦"#, r#"솦"#, r#"솦"#, r#"솦"#, r#"솦"#),
+        (r#"솧"#, r#"솧"#, r#"솧"#, r#"솧"#, r#"솧"#),
+        (r#"솨"#, r#"솨"#, r#"솨"#, r#"솨"#, r#"솨"#),
+        (r#"솩"#, r#"솩"#, r#"솩"#, r#"솩"#, r#"솩"#),
+        (r#"솪"#, r#"솪"#, r#"솪"#, r#"솪"#, r#"솪"#),
+        (r#"솫"#, r#"솫"#, r#"솫"#, r#"솫"#, r#"솫"#),
+        (r#"솬"#, r#"솬"#, r#"솬"#, r#"솬"#, r#"솬"#),
+        (r#"솭"#, r#"솭"#, r#"솭"#, r#"솭"#, r#"솭"#),
+        (r#"솮"#, r#"솮"#, r#"솮"#, r#"솮"#, r#"솮"#),
+        (r#"솯"#, r#"솯"#, r#"솯"#, r#"솯"#, r#"솯"#),
+        (r#"솰"#, r#"솰"#, r#"솰"#, r#"솰"#, r#"솰"#),
+        (r#"솱"#, r#"솱"#, r#"솱"#, r#"솱"#, r#"솱"#),
+        (r#"솲"#, r#"솲"#, r#"솲"#, r#"솲"#, r#"솲"#),
+        (r#"솳"#, r#"솳"#, r#"솳"#, r#"솳"#, r#"솳"#),
+        (r#"솴"#, r#"솴"#, r#"솴"#, r#"솴"#, r#"솴"#),
+        (r#"솵"#, r#"솵"#, r#"솵"#, r#"솵"#, r#"솵"#),
+        (r#"솶"#, r#"솶"#, r#"솶"#, r#"솶"#, r#"솶"#),
+        (r#"솷"#, r#"솷"#, r#"솷"#, r#"솷"#, r#"솷"#),
+        (r#"솸"#, r#"솸"#, r#"솸"#, r#"솸"#, r#"솸"#),
+        (r#"솹"#, r#"솹"#, r#"솹"#, r#"솹"#, r#"솹"#),
+        (r#"솺"#, r#"솺"#, r#"솺"#, r#"솺"#, r#"솺"#),
+        (r#"솻"#, r#"솻"#, r#"솻"#, r#"솻"#, r#"솻"#),
+        (r#"솼"#, r#"솼"#, r#"솼"#, r#"솼"#, r#"솼"#),
+        (r#"솽"#, r#"솽"#, r#"솽"#, r#"솽"#, r#"솽"#),
+        (r#"솾"#, r#"솾"#, r#"솾"#, r#"솾"#, r#"솾"#),
+        (r#"솿"#, r#"솿"#, r#"솿"#, r#"솿"#, r#"솿"#),
+        (r#"쇀"#, r#"쇀"#, r#"쇀"#, r#"쇀"#, r#"쇀"#),
+        (r#"쇁"#, r#"쇁"#, r#"쇁"#, r#"쇁"#, r#"쇁"#),
+        (r#"쇂"#, r#"쇂"#, r#"쇂"#, r#"쇂"#, r#"쇂"#),
+        (r#"쇃"#, r#"쇃"#, r#"쇃"#, r#"쇃"#, r#"쇃"#),
+        (r#"쇄"#, r#"쇄"#, r#"쇄"#, r#"쇄"#, r#"쇄"#),
+        (r#"쇅"#, r#"쇅"#, r#"쇅"#, r#"쇅"#, r#"쇅"#),
+        (r#"쇆"#, r#"쇆"#, r#"쇆"#, r#"쇆"#, r#"쇆"#),
+        (r#"쇇"#, r#"쇇"#, r#"쇇"#, r#"쇇"#, r#"쇇"#),
+        (r#"쇈"#, r#"쇈"#, r#"쇈"#, r#"쇈"#, r#"쇈"#),
+        (r#"쇉"#, r#"쇉"#, r#"쇉"#, r#"쇉"#, r#"쇉"#),
+        (r#"쇊"#, r#"쇊"#, r#"쇊"#, r#"쇊"#, r#"쇊"#),
+        (r#"쇋"#, r#"쇋"#, r#"쇋"#, r#"쇋"#, r#"쇋"#),
+        (r#"쇌"#, r#"쇌"#, r#"쇌"#, r#"쇌"#, r#"쇌"#),
+        (r#"쇍"#, r#"쇍"#, r#"쇍"#, r#"쇍"#, r#"쇍"#),
+        (r#"쇎"#, r#"쇎"#, r#"쇎"#, r#"쇎"#, r#"쇎"#),
+        (r#"쇏"#, r#"쇏"#, r#"쇏"#, r#"쇏"#, r#"쇏"#),
+        (r#"쇐"#, r#"쇐"#, r#"쇐"#, r#"쇐"#, r#"쇐"#),
+        (r#"쇑"#, r#"쇑"#, r#"쇑"#, r#"쇑"#, r#"쇑"#),
+        (r#"쇒"#, r#"쇒"#, r#"쇒"#, r#"쇒"#, r#"쇒"#),
+        (r#"쇓"#, r#"쇓"#, r#"쇓"#, r#"쇓"#, r#"쇓"#),
+        (r#"쇔"#, r#"쇔"#, r#"쇔"#, r#"쇔"#, r#"쇔"#),
+        (r#"쇕"#, r#"쇕"#, r#"쇕"#, r#"쇕"#, r#"쇕"#),
+        (r#"쇖"#, r#"쇖"#, r#"쇖"#, r#"쇖"#, r#"쇖"#),
+        (r#"쇗"#, r#"쇗"#, r#"쇗"#, r#"쇗"#, r#"쇗"#),
+        (r#"쇘"#, r#"쇘"#, r#"쇘"#, r#"쇘"#, r#"쇘"#),
+        (r#"쇙"#, r#"쇙"#, r#"쇙"#, r#"쇙"#, r#"쇙"#),
+        (r#"쇚"#, r#"쇚"#, r#"쇚"#, r#"쇚"#, r#"쇚"#),
+        (r#"쇛"#, r#"쇛"#, r#"쇛"#, r#"쇛"#, r#"쇛"#),
+        (r#"쇜"#, r#"쇜"#, r#"쇜"#, r#"쇜"#, r#"쇜"#),
+        (r#"쇝"#, r#"쇝"#, r#"쇝"#, r#"쇝"#, r#"쇝"#),
+        (r#"쇞"#, r#"쇞"#, r#"쇞"#, r#"쇞"#, r#"쇞"#),
+        (r#"쇟"#, r#"쇟"#, r#"쇟"#, r#"쇟"#, r#"쇟"#),
+        (r#"쇠"#, r#"쇠"#, r#"쇠"#, r#"쇠"#, r#"쇠"#),
+        (r#"쇡"#, r#"쇡"#, r#"쇡"#, r#"쇡"#, r#"쇡"#),
+        (r#"쇢"#, r#"쇢"#, r#"쇢"#, r#"쇢"#, r#"쇢"#),
+        (r#"쇣"#, r#"쇣"#, r#"쇣"#, r#"쇣"#, r#"쇣"#),
+        (r#"쇤"#, r#"쇤"#, r#"쇤"#, r#"쇤"#, r#"쇤"#),
+        (r#"쇥"#, r#"쇥"#, r#"쇥"#, r#"쇥"#, r#"쇥"#),
+        (r#"쇦"#, r#"쇦"#, r#"쇦"#, r#"쇦"#, r#"쇦"#),
+        (r#"쇧"#, r#"쇧"#, r#"쇧"#, r#"쇧"#, r#"쇧"#),
+        (r#"쇨"#, r#"쇨"#, r#"쇨"#, r#"쇨"#, r#"쇨"#),
+        (r#"쇩"#, r#"쇩"#, r#"쇩"#, r#"쇩"#, r#"쇩"#),
+        (r#"쇪"#, r#"쇪"#, r#"쇪"#, r#"쇪"#, r#"쇪"#),
+        (r#"쇫"#, r#"쇫"#, r#"쇫"#, r#"쇫"#, r#"쇫"#),
+        (r#"쇬"#, r#"쇬"#, r#"쇬"#, r#"쇬"#, r#"쇬"#),
+        (r#"쇭"#, r#"쇭"#, r#"쇭"#, r#"쇭"#, r#"쇭"#),
+        (r#"쇮"#, r#"쇮"#, r#"쇮"#, r#"쇮"#, r#"쇮"#),
+        (r#"쇯"#, r#"쇯"#, r#"쇯"#, r#"쇯"#, r#"쇯"#),
+        (r#"쇰"#, r#"쇰"#, r#"쇰"#, r#"쇰"#, r#"쇰"#),
+        (r#"쇱"#, r#"쇱"#, r#"쇱"#, r#"쇱"#, r#"쇱"#),
+        (r#"쇲"#, r#"쇲"#, r#"쇲"#, r#"쇲"#, r#"쇲"#),
+        (r#"쇳"#, r#"쇳"#, r#"쇳"#, r#"쇳"#, r#"쇳"#),
+        (r#"쇴"#, r#"쇴"#, r#"쇴"#, r#"쇴"#, r#"쇴"#),
+        (r#"쇵"#, r#"쇵"#, r#"쇵"#, r#"쇵"#, r#"쇵"#),
+        (r#"쇶"#, r#"쇶"#, r#"쇶"#, r#"쇶"#, r#"쇶"#),
+        (r#"쇷"#, r#"쇷"#, r#"쇷"#, r#"쇷"#, r#"쇷"#),
+        (r#"쇸"#, r#"쇸"#, r#"쇸"#, r#"쇸"#, r#"쇸"#),
+        (r#"쇹"#, r#"쇹"#, r#"쇹"#, r#"쇹"#, r#"쇹"#),
+        (r#"쇺"#, r#"쇺"#, r#"쇺"#, r#"쇺"#, r#"쇺"#),
+        (r#"쇻"#, r#"쇻"#, r#"쇻"#, r#"쇻"#, r#"쇻"#),
+        (r#"쇼"#, r#"쇼"#, r#"쇼"#, r#"쇼"#, r#"쇼"#),
+        (r#"쇽"#, r#"쇽"#, r#"쇽"#, r#"쇽"#, r#"쇽"#),
+        (r#"쇾"#, r#"쇾"#, r#"쇾"#, r#"쇾"#, r#"쇾"#),
+        (r#"쇿"#, r#"쇿"#, r#"쇿"#, r#"쇿"#, r#"쇿"#),
+        (r#"숀"#, r#"숀"#, r#"숀"#, r#"숀"#, r#"숀"#),
+        (r#"숁"#, r#"숁"#, r#"숁"#, r#"숁"#, r#"숁"#),
+        (r#"숂"#, r#"숂"#, r#"숂"#, r#"숂"#, r#"숂"#),
+        (r#"숃"#, r#"숃"#, r#"숃"#, r#"숃"#, r#"숃"#),
+        (r#"숄"#, r#"숄"#, r#"숄"#, r#"숄"#, r#"숄"#),
+        (r#"숅"#, r#"숅"#, r#"숅"#, r#"숅"#, r#"숅"#),
+        (r#"숆"#, r#"숆"#, r#"숆"#, r#"숆"#, r#"숆"#),
+        (r#"숇"#, r#"숇"#, r#"숇"#, r#"숇"#, r#"숇"#),
+        (r#"숈"#, r#"숈"#, r#"숈"#, r#"숈"#, r#"숈"#),
+        (r#"숉"#, r#"숉"#, r#"숉"#, r#"숉"#, r#"숉"#),
+        (r#"숊"#, r#"숊"#, r#"숊"#, r#"숊"#, r#"숊"#),
+        (r#"숋"#, r#"숋"#, r#"숋"#, r#"숋"#, r#"숋"#),
+        (r#"숌"#, r#"숌"#, r#"숌"#, r#"숌"#, r#"숌"#),
+        (r#"숍"#, r#"숍"#, r#"숍"#, r#"숍"#, r#"숍"#),
+        (r#"숎"#, r#"숎"#, r#"숎"#, r#"숎"#, r#"숎"#),
+        (r#"숏"#, r#"숏"#, r#"숏"#, r#"숏"#, r#"숏"#),
+        (r#"숐"#, r#"숐"#, r#"숐"#, r#"숐"#, r#"숐"#),
+        (r#"숑"#, r#"숑"#, r#"숑"#, r#"숑"#, r#"숑"#),
+        (r#"숒"#, r#"숒"#, r#"숒"#, r#"숒"#, r#"숒"#),
+        (r#"숓"#, r#"숓"#, r#"숓"#, r#"숓"#, r#"숓"#),
+        (r#"숔"#, r#"숔"#, r#"숔"#, r#"숔"#, r#"숔"#),
+        (r#"숕"#, r#"숕"#, r#"숕"#, r#"숕"#, r#"숕"#),
+        (r#"숖"#, r#"숖"#, r#"숖"#, r#"숖"#, r#"숖"#),
+        (r#"숗"#, r#"숗"#, r#"숗"#, r#"숗"#, r#"숗"#),
+        (r#"수"#, r#"수"#, r#"수"#, r#"수"#, r#"수"#),
+        (r#"숙"#, r#"숙"#, r#"숙"#, r#"숙"#, r#"숙"#),
+        (r#"숚"#, r#"숚"#, r#"숚"#, r#"숚"#, r#"숚"#),
+        (r#"숛"#, r#"숛"#, r#"숛"#, r#"숛"#, r#"숛"#),
+        (r#"순"#, r#"순"#, r#"순"#, r#"순"#, r#"순"#),
+        (r#"숝"#, r#"숝"#, r#"숝"#, r#"숝"#, r#"숝"#),
+        (r#"숞"#, r#"숞"#, r#"숞"#, r#"숞"#, r#"숞"#),
+        (r#"숟"#, r#"숟"#, r#"숟"#, r#"숟"#, r#"숟"#),
+        (r#"술"#, r#"술"#, r#"술"#, r#"술"#, r#"술"#),
+        (r#"숡"#, r#"숡"#, r#"숡"#, r#"숡"#, r#"숡"#),
+        (r#"숢"#, r#"숢"#, r#"숢"#, r#"숢"#, r#"숢"#),
+        (r#"숣"#, r#"숣"#, r#"숣"#, r#"숣"#, r#"숣"#),
+        (r#"숤"#, r#"숤"#, r#"숤"#, r#"숤"#, r#"숤"#),
+        (r#"숥"#, r#"숥"#, r#"숥"#, r#"숥"#, r#"숥"#),
+        (r#"숦"#, r#"숦"#, r#"숦"#, r#"숦"#, r#"숦"#),
+        (r#"숧"#, r#"숧"#, r#"숧"#, r#"숧"#, r#"숧"#),
+        (r#"숨"#, r#"숨"#, r#"숨"#, r#"숨"#, r#"숨"#),
+        (r#"숩"#, r#"숩"#, r#"숩"#, r#"숩"#, r#"숩"#),
+        (r#"숪"#, r#"숪"#, r#"숪"#, r#"숪"#, r#"숪"#),
+        (r#"숫"#, r#"숫"#, r#"숫"#, r#"숫"#, r#"숫"#),
+        (r#"숬"#, r#"숬"#, r#"숬"#, r#"숬"#, r#"숬"#),
+        (r#"숭"#, r#"숭"#, r#"숭"#, r#"숭"#, r#"숭"#),
+        (r#"숮"#, r#"숮"#, r#"숮"#, r#"숮"#, r#"숮"#),
+        (r#"숯"#, r#"숯"#, r#"숯"#, r#"숯"#, r#"숯"#),
+        (r#"숰"#, r#"숰"#, r#"숰"#, r#"숰"#, r#"숰"#),
+        (r#"숱"#, r#"숱"#, r#"숱"#, r#"숱"#, r#"숱"#),
+        (r#"숲"#, r#"숲"#, r#"숲"#, r#"숲"#, r#"숲"#),
+        (r#"숳"#, r#"숳"#, r#"숳"#, r#"숳"#, r#"숳"#),
+        (r#"숴"#, r#"숴"#, r#"숴"#, r#"숴"#, r#"숴"#),
+        (r#"숵"#, r#"숵"#, r#"숵"#, r#"숵"#, r#"숵"#),
+        (r#"숶"#, r#"숶"#, r#"숶"#, r#"숶"#, r#"숶"#),
+        (r#"숷"#, r#"숷"#, r#"숷"#, r#"숷"#, r#"숷"#),
+        (r#"숸"#, r#"숸"#, r#"숸"#, r#"숸"#, r#"숸"#),
+        (r#"숹"#, r#"숹"#, r#"숹"#, r#"숹"#, r#"숹"#),
+        (r#"숺"#, r#"숺"#, r#"숺"#, r#"숺"#, r#"숺"#),
+        (r#"숻"#, r#"숻"#, r#"숻"#, r#"숻"#, r#"숻"#),
+        (r#"숼"#, r#"숼"#, r#"숼"#, r#"숼"#, r#"숼"#),
+        (r#"숽"#, r#"숽"#, r#"숽"#, r#"숽"#, r#"숽"#),
+        (r#"숾"#, r#"숾"#, r#"숾"#, r#"숾"#, r#"숾"#),
+        (r#"숿"#, r#"숿"#, r#"숿"#, r#"숿"#, r#"숿"#),
+        (r#"쉀"#, r#"쉀"#, r#"쉀"#, r#"쉀"#, r#"쉀"#),
+        (r#"쉁"#, r#"쉁"#, r#"쉁"#, r#"쉁"#, r#"쉁"#),
+        (r#"쉂"#, r#"쉂"#, r#"쉂"#, r#"쉂"#, r#"쉂"#),
+        (r#"쉃"#, r#"쉃"#, r#"쉃"#, r#"쉃"#, r#"쉃"#),
+        (r#"쉄"#, r#"쉄"#, r#"쉄"#, r#"쉄"#, r#"쉄"#),
+        (r#"쉅"#, r#"쉅"#, r#"쉅"#, r#"쉅"#, r#"쉅"#),
+        (r#"쉆"#, r#"쉆"#, r#"쉆"#, r#"쉆"#, r#"쉆"#),
+        (r#"쉇"#, r#"쉇"#, r#"쉇"#, r#"쉇"#, r#"쉇"#),
+        (r#"쉈"#, r#"쉈"#, r#"쉈"#, r#"쉈"#, r#"쉈"#),
+        (r#"쉉"#, r#"쉉"#, r#"쉉"#, r#"쉉"#, r#"쉉"#),
+        (r#"쉊"#, r#"쉊"#, r#"쉊"#, r#"쉊"#, r#"쉊"#),
+        (r#"쉋"#, r#"쉋"#, r#"쉋"#, r#"쉋"#, r#"쉋"#),
+        (r#"쉌"#, r#"쉌"#, r#"쉌"#, r#"쉌"#, r#"쉌"#),
+        (r#"쉍"#, r#"쉍"#, r#"쉍"#, r#"쉍"#, r#"쉍"#),
+        (r#"쉎"#, r#"쉎"#, r#"쉎"#, r#"쉎"#, r#"쉎"#),
+        (r#"쉏"#, r#"쉏"#, r#"쉏"#, r#"쉏"#, r#"쉏"#),
+        (r#"쉐"#, r#"쉐"#, r#"쉐"#, r#"쉐"#, r#"쉐"#),
+        (r#"쉑"#, r#"쉑"#, r#"쉑"#, r#"쉑"#, r#"쉑"#),
+        (r#"쉒"#, r#"쉒"#, r#"쉒"#, r#"쉒"#, r#"쉒"#),
+        (r#"쉓"#, r#"쉓"#, r#"쉓"#, r#"쉓"#, r#"쉓"#),
+        (r#"쉔"#, r#"쉔"#, r#"쉔"#, r#"쉔"#, r#"쉔"#),
+        (r#"쉕"#, r#"쉕"#, r#"쉕"#, r#"쉕"#, r#"쉕"#),
+        (r#"쉖"#, r#"쉖"#, r#"쉖"#, r#"쉖"#, r#"쉖"#),
+        (r#"쉗"#, r#"쉗"#, r#"쉗"#, r#"쉗"#, r#"쉗"#),
+        (r#"쉘"#, r#"쉘"#, r#"쉘"#, r#"쉘"#, r#"쉘"#),
+        (r#"쉙"#, r#"쉙"#, r#"쉙"#, r#"쉙"#, r#"쉙"#),
+        (r#"쉚"#, r#"쉚"#, r#"쉚"#, r#"쉚"#, r#"쉚"#),
+        (r#"쉛"#, r#"쉛"#, r#"쉛"#, r#"쉛"#, r#"쉛"#),
+        (r#"쉜"#, r#"쉜"#, r#"쉜"#, r#"쉜"#, r#"쉜"#),
+        (r#"쉝"#, r#"쉝"#, r#"쉝"#, r#"쉝"#, r#"쉝"#),
+        (r#"쉞"#, r#"쉞"#, r#"쉞"#, r#"쉞"#, r#"쉞"#),
+        (r#"쉟"#, r#"쉟"#, r#"쉟"#, r#"쉟"#, r#"쉟"#),
+        (r#"쉠"#, r#"쉠"#, r#"쉠"#, r#"쉠"#, r#"쉠"#),
+        (r#"쉡"#, r#"쉡"#, r#"쉡"#, r#"쉡"#, r#"쉡"#),
+        (r#"쉢"#, r#"쉢"#, r#"쉢"#, r#"쉢"#, r#"쉢"#),
+        (r#"쉣"#, r#"쉣"#, r#"쉣"#, r#"쉣"#, r#"쉣"#),
+        (r#"쉤"#, r#"쉤"#, r#"쉤"#, r#"쉤"#, r#"쉤"#),
+        (r#"쉥"#, r#"쉥"#, r#"쉥"#, r#"쉥"#, r#"쉥"#),
+        (r#"쉦"#, r#"쉦"#, r#"쉦"#, r#"쉦"#, r#"쉦"#),
+        (r#"쉧"#, r#"쉧"#, r#"쉧"#, r#"쉧"#, r#"쉧"#),
+        (r#"쉨"#, r#"쉨"#, r#"쉨"#, r#"쉨"#, r#"쉨"#),
+        (r#"쉩"#, r#"쉩"#, r#"쉩"#, r#"쉩"#, r#"쉩"#),
+        (r#"쉪"#, r#"쉪"#, r#"쉪"#, r#"쉪"#, r#"쉪"#),
+        (r#"쉫"#, r#"쉫"#, r#"쉫"#, r#"쉫"#, r#"쉫"#),
+        (r#"쉬"#, r#"쉬"#, r#"쉬"#, r#"쉬"#, r#"쉬"#),
+        (r#"쉭"#, r#"쉭"#, r#"쉭"#, r#"쉭"#, r#"쉭"#),
+        (r#"쉮"#, r#"쉮"#, r#"쉮"#, r#"쉮"#, r#"쉮"#),
+        (r#"쉯"#, r#"쉯"#, r#"쉯"#, r#"쉯"#, r#"쉯"#),
+        (r#"쉰"#, r#"쉰"#, r#"쉰"#, r#"쉰"#, r#"쉰"#),
+        (r#"쉱"#, r#"쉱"#, r#"쉱"#, r#"쉱"#, r#"쉱"#),
+        (r#"쉲"#, r#"쉲"#, r#"쉲"#, r#"쉲"#, r#"쉲"#),
+        (r#"쉳"#, r#"쉳"#, r#"쉳"#, r#"쉳"#, r#"쉳"#),
+        (r#"쉴"#, r#"쉴"#, r#"쉴"#, r#"쉴"#, r#"쉴"#),
+        (r#"쉵"#, r#"쉵"#, r#"쉵"#, r#"쉵"#, r#"쉵"#),
+        (r#"쉶"#, r#"쉶"#, r#"쉶"#, r#"쉶"#, r#"쉶"#),
+        (r#"쉷"#, r#"쉷"#, r#"쉷"#, r#"쉷"#, r#"쉷"#),
+        (r#"쉸"#, r#"쉸"#, r#"쉸"#, r#"쉸"#, r#"쉸"#),
+        (r#"쉹"#, r#"쉹"#, r#"쉹"#, r#"쉹"#, r#"쉹"#),
+        (r#"쉺"#, r#"쉺"#, r#"쉺"#, r#"쉺"#, r#"쉺"#),
+        (r#"쉻"#, r#"쉻"#, r#"쉻"#, r#"쉻"#, r#"쉻"#),
+        (r#"쉼"#, r#"쉼"#, r#"쉼"#, r#"쉼"#, r#"쉼"#),
+        (r#"쉽"#, r#"쉽"#, r#"쉽"#, r#"쉽"#, r#"쉽"#),
+        (r#"쉾"#, r#"쉾"#, r#"쉾"#, r#"쉾"#, r#"쉾"#),
+        (r#"쉿"#, r#"쉿"#, r#"쉿"#, r#"쉿"#, r#"쉿"#),
+        (r#"슀"#, r#"슀"#, r#"슀"#, r#"슀"#, r#"슀"#),
+        (r#"슁"#, r#"슁"#, r#"슁"#, r#"슁"#, r#"슁"#),
+        (r#"슂"#, r#"슂"#, r#"슂"#, r#"슂"#, r#"슂"#),
+        (r#"슃"#, r#"슃"#, r#"슃"#, r#"슃"#, r#"슃"#),
+        (r#"슄"#, r#"슄"#, r#"슄"#, r#"슄"#, r#"슄"#),
+        (r#"슅"#, r#"슅"#, r#"슅"#, r#"슅"#, r#"슅"#),
+        (r#"슆"#, r#"슆"#, r#"슆"#, r#"슆"#, r#"슆"#),
+        (r#"슇"#, r#"슇"#, r#"슇"#, r#"슇"#, r#"슇"#),
+        (r#"슈"#, r#"슈"#, r#"슈"#, r#"슈"#, r#"슈"#),
+        (r#"슉"#, r#"슉"#, r#"슉"#, r#"슉"#, r#"슉"#),
+        (r#"슊"#, r#"슊"#, r#"슊"#, r#"슊"#, r#"슊"#),
+        (r#"슋"#, r#"슋"#, r#"슋"#, r#"슋"#, r#"슋"#),
+        (r#"슌"#, r#"슌"#, r#"슌"#, r#"슌"#, r#"슌"#),
+        (r#"슍"#, r#"슍"#, r#"슍"#, r#"슍"#, r#"슍"#),
+        (r#"슎"#, r#"슎"#, r#"슎"#, r#"슎"#, r#"슎"#),
+        (r#"슏"#, r#"슏"#, r#"슏"#, r#"슏"#, r#"슏"#),
+        (r#"슐"#, r#"슐"#, r#"슐"#, r#"슐"#, r#"슐"#),
+        (r#"슑"#, r#"슑"#, r#"슑"#, r#"슑"#, r#"슑"#),
+        (r#"슒"#, r#"슒"#, r#"슒"#, r#"슒"#, r#"슒"#),
+        (r#"슓"#, r#"슓"#, r#"슓"#, r#"슓"#, r#"슓"#),
+        (r#"슔"#, r#"슔"#, r#"슔"#, r#"슔"#, r#"슔"#),
+        (r#"슕"#, r#"슕"#, r#"슕"#, r#"슕"#, r#"슕"#),
+        (r#"슖"#, r#"슖"#, r#"슖"#, r#"슖"#, r#"슖"#),
+        (r#"슗"#, r#"슗"#, r#"슗"#, r#"슗"#, r#"슗"#),
+        (r#"슘"#, r#"슘"#, r#"슘"#, r#"슘"#, r#"슘"#),
+        (r#"슙"#, r#"슙"#, r#"슙"#, r#"슙"#, r#"슙"#),
+        (r#"슚"#, r#"슚"#, r#"슚"#, r#"슚"#, r#"슚"#),
+        (r#"슛"#, r#"슛"#, r#"슛"#, r#"슛"#, r#"슛"#),
+        (r#"슜"#, r#"슜"#, r#"슜"#, r#"슜"#, r#"슜"#),
+        (r#"슝"#, r#"슝"#, r#"슝"#, r#"슝"#, r#"슝"#),
+        (r#"슞"#, r#"슞"#, r#"슞"#, r#"슞"#, r#"슞"#),
+        (r#"슟"#, r#"슟"#, r#"슟"#, r#"슟"#, r#"슟"#),
+        (r#"슠"#, r#"슠"#, r#"슠"#, r#"슠"#, r#"슠"#),
+        (r#"슡"#, r#"슡"#, r#"슡"#, r#"슡"#, r#"슡"#),
+        (r#"슢"#, r#"슢"#, r#"슢"#, r#"슢"#, r#"슢"#),
+        (r#"슣"#, r#"슣"#, r#"슣"#, r#"슣"#, r#"슣"#),
+        (r#"스"#, r#"스"#, r#"스"#, r#"스"#, r#"스"#),
+        (r#"슥"#, r#"슥"#, r#"슥"#, r#"슥"#, r#"슥"#),
+        (r#"슦"#, r#"슦"#, r#"슦"#, r#"슦"#, r#"슦"#),
+        (r#"슧"#, r#"슧"#, r#"슧"#, r#"슧"#, r#"슧"#),
+        (r#"슨"#, r#"슨"#, r#"슨"#, r#"슨"#, r#"슨"#),
+        (r#"슩"#, r#"슩"#, r#"슩"#, r#"슩"#, r#"슩"#),
+        (r#"슪"#, r#"슪"#, r#"슪"#, r#"슪"#, r#"슪"#),
+        (r#"슫"#, r#"슫"#, r#"슫"#, r#"슫"#, r#"슫"#),
+        (r#"슬"#, r#"슬"#, r#"슬"#, r#"슬"#, r#"슬"#),
+        (r#"슭"#, r#"슭"#, r#"슭"#, r#"슭"#, r#"슭"#),
+        (r#"슮"#, r#"슮"#, r#"슮"#, r#"슮"#, r#"슮"#),
+        (r#"슯"#, r#"슯"#, r#"슯"#, r#"슯"#, r#"슯"#),
+        (r#"슰"#, r#"슰"#, r#"슰"#, r#"슰"#, r#"슰"#),
+        (r#"슱"#, r#"슱"#, r#"슱"#, r#"슱"#, r#"슱"#),
+        (r#"슲"#, r#"슲"#, r#"슲"#, r#"슲"#, r#"슲"#),
+        (r#"슳"#, r#"슳"#, r#"슳"#, r#"슳"#, r#"슳"#),
+        (r#"슴"#, r#"슴"#, r#"슴"#, r#"슴"#, r#"슴"#),
+        (r#"습"#, r#"습"#, r#"습"#, r#"습"#, r#"습"#),
+        (r#"슶"#, r#"슶"#, r#"슶"#, r#"슶"#, r#"슶"#),
+        (r#"슷"#, r#"슷"#, r#"슷"#, r#"슷"#, r#"슷"#),
+        (r#"슸"#, r#"슸"#, r#"슸"#, r#"슸"#, r#"슸"#),
+        (r#"승"#, r#"승"#, r#"승"#, r#"승"#, r#"승"#),
+        (r#"슺"#, r#"슺"#, r#"슺"#, r#"슺"#, r#"슺"#),
+        (r#"슻"#, r#"슻"#, r#"슻"#, r#"슻"#, r#"슻"#),
+        (r#"슼"#, r#"슼"#, r#"슼"#, r#"슼"#, r#"슼"#),
+        (r#"슽"#, r#"슽"#, r#"슽"#, r#"슽"#, r#"슽"#),
+        (r#"슾"#, r#"슾"#, r#"슾"#, r#"슾"#, r#"슾"#),
+        (r#"슿"#, r#"슿"#, r#"슿"#, r#"슿"#, r#"슿"#),
+        (r#"싀"#, r#"싀"#, r#"싀"#, r#"싀"#, r#"싀"#),
+        (r#"싁"#, r#"싁"#, r#"싁"#, r#"싁"#, r#"싁"#),
+        (r#"싂"#, r#"싂"#, r#"싂"#, r#"싂"#, r#"싂"#),
+        (r#"싃"#, r#"싃"#, r#"싃"#, r#"싃"#, r#"싃"#),
+        (r#"싄"#, r#"싄"#, r#"싄"#, r#"싄"#, r#"싄"#),
+        (r#"싅"#, r#"싅"#, r#"싅"#, r#"싅"#, r#"싅"#),
+        (r#"싆"#, r#"싆"#, r#"싆"#, r#"싆"#, r#"싆"#),
+        (r#"싇"#, r#"싇"#, r#"싇"#, r#"싇"#, r#"싇"#),
+        (r#"싈"#, r#"싈"#, r#"싈"#, r#"싈"#, r#"싈"#),
+        (r#"싉"#, r#"싉"#, r#"싉"#, r#"싉"#, r#"싉"#),
+        (r#"싊"#, r#"싊"#, r#"싊"#, r#"싊"#, r#"싊"#),
+        (r#"싋"#, r#"싋"#, r#"싋"#, r#"싋"#, r#"싋"#),
+        (r#"싌"#, r#"싌"#, r#"싌"#, r#"싌"#, r#"싌"#),
+        (r#"싍"#, r#"싍"#, r#"싍"#, r#"싍"#, r#"싍"#),
+        (r#"싎"#, r#"싎"#, r#"싎"#, r#"싎"#, r#"싎"#),
+        (r#"싏"#, r#"싏"#, r#"싏"#, r#"싏"#, r#"싏"#),
+        (r#"싐"#, r#"싐"#, r#"싐"#, r#"싐"#, r#"싐"#),
+        (r#"싑"#, r#"싑"#, r#"싑"#, r#"싑"#, r#"싑"#),
+        (r#"싒"#, r#"싒"#, r#"싒"#, r#"싒"#, r#"싒"#),
+        (r#"싓"#, r#"싓"#, r#"싓"#, r#"싓"#, r#"싓"#),
+        (r#"싔"#, r#"싔"#, r#"싔"#, r#"싔"#, r#"싔"#),
+        (r#"싕"#, r#"싕"#, r#"싕"#, r#"싕"#, r#"싕"#),
+        (r#"싖"#, r#"싖"#, r#"싖"#, r#"싖"#, r#"싖"#),
+        (r#"싗"#, r#"싗"#, r#"싗"#, r#"싗"#, r#"싗"#),
+        (r#"싘"#, r#"싘"#, r#"싘"#, r#"싘"#, r#"싘"#),
+        (r#"싙"#, r#"싙"#, r#"싙"#, r#"싙"#, r#"싙"#),
+        (r#"싚"#, r#"싚"#, r#"싚"#, r#"싚"#, r#"싚"#),
+        (r#"싛"#, r#"싛"#, r#"싛"#, r#"싛"#, r#"싛"#),
+        (r#"시"#, r#"시"#, r#"시"#, r#"시"#, r#"시"#),
+        (r#"식"#, r#"식"#, r#"식"#, r#"식"#, r#"식"#),
+        (r#"싞"#, r#"싞"#, r#"싞"#, r#"싞"#, r#"싞"#),
+        (r#"싟"#, r#"싟"#, r#"싟"#, r#"싟"#, r#"싟"#),
+        (r#"신"#, r#"신"#, r#"신"#, r#"신"#, r#"신"#),
+        (r#"싡"#, r#"싡"#, r#"싡"#, r#"싡"#, r#"싡"#),
+        (r#"싢"#, r#"싢"#, r#"싢"#, r#"싢"#, r#"싢"#),
+        (r#"싣"#, r#"싣"#, r#"싣"#, r#"싣"#, r#"싣"#),
+        (r#"실"#, r#"실"#, r#"실"#, r#"실"#, r#"실"#),
+        (r#"싥"#, r#"싥"#, r#"싥"#, r#"싥"#, r#"싥"#),
+        (r#"싦"#, r#"싦"#, r#"싦"#, r#"싦"#, r#"싦"#),
+        (r#"싧"#, r#"싧"#, r#"싧"#, r#"싧"#, r#"싧"#),
+        (r#"싨"#, r#"싨"#, r#"싨"#, r#"싨"#, r#"싨"#),
+        (r#"싩"#, r#"싩"#, r#"싩"#, r#"싩"#, r#"싩"#),
+        (r#"싪"#, r#"싪"#, r#"싪"#, r#"싪"#, r#"싪"#),
+        (r#"싫"#, r#"싫"#, r#"싫"#, r#"싫"#, r#"싫"#),
+        (r#"심"#, r#"심"#, r#"심"#, r#"심"#, r#"심"#),
+        (r#"십"#, r#"십"#, r#"십"#, r#"십"#, r#"십"#),
+        (r#"싮"#, r#"싮"#, r#"싮"#, r#"싮"#, r#"싮"#),
+        (r#"싯"#, r#"싯"#, r#"싯"#, r#"싯"#, r#"싯"#),
+        (r#"싰"#, r#"싰"#, r#"싰"#, r#"싰"#, r#"싰"#),
+        (r#"싱"#, r#"싱"#, r#"싱"#, r#"싱"#, r#"싱"#),
+        (r#"싲"#, r#"싲"#, r#"싲"#, r#"싲"#, r#"싲"#),
+        (r#"싳"#, r#"싳"#, r#"싳"#, r#"싳"#, r#"싳"#),
+        (r#"싴"#, r#"싴"#, r#"싴"#, r#"싴"#, r#"싴"#),
+        (r#"싵"#, r#"싵"#, r#"싵"#, r#"싵"#, r#"싵"#),
+        (r#"싶"#, r#"싶"#, r#"싶"#, r#"싶"#, r#"싶"#),
+        (r#"싷"#, r#"싷"#, r#"싷"#, r#"싷"#, r#"싷"#),
+        (r#"싸"#, r#"싸"#, r#"싸"#, r#"싸"#, r#"싸"#),
+        (r#"싹"#, r#"싹"#, r#"싹"#, r#"싹"#, r#"싹"#),
+        (r#"싺"#, r#"싺"#, r#"싺"#, r#"싺"#, r#"싺"#),
+        (r#"싻"#, r#"싻"#, r#"싻"#, r#"싻"#, r#"싻"#),
+        (r#"싼"#, r#"싼"#, r#"싼"#, r#"싼"#, r#"싼"#),
+        (r#"싽"#, r#"싽"#, r#"싽"#, r#"싽"#, r#"싽"#),
+        (r#"싾"#, r#"싾"#, r#"싾"#, r#"싾"#, r#"싾"#),
+        (r#"싿"#, r#"싿"#, r#"싿"#, r#"싿"#, r#"싿"#),
+        (r#"쌀"#, r#"쌀"#, r#"쌀"#, r#"쌀"#, r#"쌀"#),
+        (r#"쌁"#, r#"쌁"#, r#"쌁"#, r#"쌁"#, r#"쌁"#),
+        (r#"쌂"#, r#"쌂"#, r#"쌂"#, r#"쌂"#, r#"쌂"#),
+        (r#"쌃"#, r#"쌃"#, r#"쌃"#, r#"쌃"#, r#"쌃"#),
+        (r#"쌄"#, r#"쌄"#, r#"쌄"#, r#"쌄"#, r#"쌄"#),
+        (r#"쌅"#, r#"쌅"#, r#"쌅"#, r#"쌅"#, r#"쌅"#),
+        (r#"쌆"#, r#"쌆"#, r#"쌆"#, r#"쌆"#, r#"쌆"#),
+        (r#"쌇"#, r#"쌇"#, r#"쌇"#, r#"쌇"#, r#"쌇"#),
+        (r#"쌈"#, r#"쌈"#, r#"쌈"#, r#"쌈"#, r#"쌈"#),
+        (r#"쌉"#, r#"쌉"#, r#"쌉"#, r#"쌉"#, r#"쌉"#),
+        (r#"쌊"#, r#"쌊"#, r#"쌊"#, r#"쌊"#, r#"쌊"#),
+        (r#"쌋"#, r#"쌋"#, r#"쌋"#, r#"쌋"#, r#"쌋"#),
+        (r#"쌌"#, r#"쌌"#, r#"쌌"#, r#"쌌"#, r#"쌌"#),
+        (r#"쌍"#, r#"쌍"#, r#"쌍"#, r#"쌍"#, r#"쌍"#),
+        (r#"쌎"#, r#"쌎"#, r#"쌎"#, r#"쌎"#, r#"쌎"#),
+        (r#"쌏"#, r#"쌏"#, r#"쌏"#, r#"쌏"#, r#"쌏"#),
+        (r#"쌐"#, r#"쌐"#, r#"쌐"#, r#"쌐"#, r#"쌐"#),
+        (r#"쌑"#, r#"쌑"#, r#"쌑"#, r#"쌑"#, r#"쌑"#),
+        (r#"쌒"#, r#"쌒"#, r#"쌒"#, r#"쌒"#, r#"쌒"#),
+        (r#"쌓"#, r#"쌓"#, r#"쌓"#, r#"쌓"#, r#"쌓"#),
+        (r#"쌔"#, r#"쌔"#, r#"쌔"#, r#"쌔"#, r#"쌔"#),
+        (r#"쌕"#, r#"쌕"#, r#"쌕"#, r#"쌕"#, r#"쌕"#),
+        (r#"쌖"#, r#"쌖"#, r#"쌖"#, r#"쌖"#, r#"쌖"#),
+        (r#"쌗"#, r#"쌗"#, r#"쌗"#, r#"쌗"#, r#"쌗"#),
+        (r#"쌘"#, r#"쌘"#, r#"쌘"#, r#"쌘"#, r#"쌘"#),
+        (r#"쌙"#, r#"쌙"#, r#"쌙"#, r#"쌙"#, r#"쌙"#),
+        (r#"쌚"#, r#"쌚"#, r#"쌚"#, r#"쌚"#, r#"쌚"#),
+        (r#"쌛"#, r#"쌛"#, r#"쌛"#, r#"쌛"#, r#"쌛"#),
+        (r#"쌜"#, r#"쌜"#, r#"쌜"#, r#"쌜"#, r#"쌜"#),
+        (r#"쌝"#, r#"쌝"#, r#"쌝"#, r#"쌝"#, r#"쌝"#),
+        (r#"쌞"#, r#"쌞"#, r#"쌞"#, r#"쌞"#, r#"쌞"#),
+        (r#"쌟"#, r#"쌟"#, r#"쌟"#, r#"쌟"#, r#"쌟"#),
+        (r#"쌠"#, r#"쌠"#, r#"쌠"#, r#"쌠"#, r#"쌠"#),
+        (r#"쌡"#, r#"쌡"#, r#"쌡"#, r#"쌡"#, r#"쌡"#),
+        (r#"쌢"#, r#"쌢"#, r#"쌢"#, r#"쌢"#, r#"쌢"#),
+        (r#"쌣"#, r#"쌣"#, r#"쌣"#, r#"쌣"#, r#"쌣"#),
+        (r#"쌤"#, r#"쌤"#, r#"쌤"#, r#"쌤"#, r#"쌤"#),
+        (r#"쌥"#, r#"쌥"#, r#"쌥"#, r#"쌥"#, r#"쌥"#),
+        (r#"쌦"#, r#"쌦"#, r#"쌦"#, r#"쌦"#, r#"쌦"#),
+        (r#"쌧"#, r#"쌧"#, r#"쌧"#, r#"쌧"#, r#"쌧"#),
+        (r#"쌨"#, r#"쌨"#, r#"쌨"#, r#"쌨"#, r#"쌨"#),
+        (r#"쌩"#, r#"쌩"#, r#"쌩"#, r#"쌩"#, r#"쌩"#),
+        (r#"쌪"#, r#"쌪"#, r#"쌪"#, r#"쌪"#, r#"쌪"#),
+        (r#"쌫"#, r#"쌫"#, r#"쌫"#, r#"쌫"#, r#"쌫"#),
+        (r#"쌬"#, r#"쌬"#, r#"쌬"#, r#"쌬"#, r#"쌬"#),
+        (r#"쌭"#, r#"쌭"#, r#"쌭"#, r#"쌭"#, r#"쌭"#),
+        (r#"쌮"#, r#"쌮"#, r#"쌮"#, r#"쌮"#, r#"쌮"#),
+        (r#"쌯"#, r#"쌯"#, r#"쌯"#, r#"쌯"#, r#"쌯"#),
+        (r#"쌰"#, r#"쌰"#, r#"쌰"#, r#"쌰"#, r#"쌰"#),
+        (r#"쌱"#, r#"쌱"#, r#"쌱"#, r#"쌱"#, r#"쌱"#),
+        (r#"쌲"#, r#"쌲"#, r#"쌲"#, r#"쌲"#, r#"쌲"#),
+        (r#"쌳"#, r#"쌳"#, r#"쌳"#, r#"쌳"#, r#"쌳"#),
+        (r#"쌴"#, r#"쌴"#, r#"쌴"#, r#"쌴"#, r#"쌴"#),
+        (r#"쌵"#, r#"쌵"#, r#"쌵"#, r#"쌵"#, r#"쌵"#),
+        (r#"쌶"#, r#"쌶"#, r#"쌶"#, r#"쌶"#, r#"쌶"#),
+        (r#"쌷"#, r#"쌷"#, r#"쌷"#, r#"쌷"#, r#"쌷"#),
+        (r#"쌸"#, r#"쌸"#, r#"쌸"#, r#"쌸"#, r#"쌸"#),
+        (r#"쌹"#, r#"쌹"#, r#"쌹"#, r#"쌹"#, r#"쌹"#),
+        (r#"쌺"#, r#"쌺"#, r#"쌺"#, r#"쌺"#, r#"쌺"#),
+        (r#"쌻"#, r#"쌻"#, r#"쌻"#, r#"쌻"#, r#"쌻"#),
+        (r#"쌼"#, r#"쌼"#, r#"쌼"#, r#"쌼"#, r#"쌼"#),
+        (r#"쌽"#, r#"쌽"#, r#"쌽"#, r#"쌽"#, r#"쌽"#),
+        (r#"쌾"#, r#"쌾"#, r#"쌾"#, r#"쌾"#, r#"쌾"#),
+        (r#"쌿"#, r#"쌿"#, r#"쌿"#, r#"쌿"#, r#"쌿"#),
+        (r#"썀"#, r#"썀"#, r#"썀"#, r#"썀"#, r#"썀"#),
+        (r#"썁"#, r#"썁"#, r#"썁"#, r#"썁"#, r#"썁"#),
+        (r#"썂"#, r#"썂"#, r#"썂"#, r#"썂"#, r#"썂"#),
+        (r#"썃"#, r#"썃"#, r#"썃"#, r#"썃"#, r#"썃"#),
+        (r#"썄"#, r#"썄"#, r#"썄"#, r#"썄"#, r#"썄"#),
+        (r#"썅"#, r#"썅"#, r#"썅"#, r#"썅"#, r#"썅"#),
+        (r#"썆"#, r#"썆"#, r#"썆"#, r#"썆"#, r#"썆"#),
+        (r#"썇"#, r#"썇"#, r#"썇"#, r#"썇"#, r#"썇"#),
+        (r#"썈"#, r#"썈"#, r#"썈"#, r#"썈"#, r#"썈"#),
+        (r#"썉"#, r#"썉"#, r#"썉"#, r#"썉"#, r#"썉"#),
+        (r#"썊"#, r#"썊"#, r#"썊"#, r#"썊"#, r#"썊"#),
+        (r#"썋"#, r#"썋"#, r#"썋"#, r#"썋"#, r#"썋"#),
+        (r#"썌"#, r#"썌"#, r#"썌"#, r#"썌"#, r#"썌"#),
+        (r#"썍"#, r#"썍"#, r#"썍"#, r#"썍"#, r#"썍"#),
+        (r#"썎"#, r#"썎"#, r#"썎"#, r#"썎"#, r#"썎"#),
+        (r#"썏"#, r#"썏"#, r#"썏"#, r#"썏"#, r#"썏"#),
+        (r#"썐"#, r#"썐"#, r#"썐"#, r#"썐"#, r#"썐"#),
+        (r#"썑"#, r#"썑"#, r#"썑"#, r#"썑"#, r#"썑"#),
+        (r#"썒"#, r#"썒"#, r#"썒"#, r#"썒"#, r#"썒"#),
+        (r#"썓"#, r#"썓"#, r#"썓"#, r#"썓"#, r#"썓"#),
+        (r#"썔"#, r#"썔"#, r#"썔"#, r#"썔"#, r#"썔"#),
+        (r#"썕"#, r#"썕"#, r#"썕"#, r#"썕"#, r#"썕"#),
+        (r#"썖"#, r#"썖"#, r#"썖"#, r#"썖"#, r#"썖"#),
+        (r#"썗"#, r#"썗"#, r#"썗"#, r#"썗"#, r#"썗"#),
+        (r#"썘"#, r#"썘"#, r#"썘"#, r#"썘"#, r#"썘"#),
+        (r#"썙"#, r#"썙"#, r#"썙"#, r#"썙"#, r#"썙"#),
+        (r#"썚"#, r#"썚"#, r#"썚"#, r#"썚"#, r#"썚"#),
+        (r#"썛"#, r#"썛"#, r#"썛"#, r#"썛"#, r#"썛"#),
+        (r#"썜"#, r#"썜"#, r#"썜"#, r#"썜"#, r#"썜"#),
+        (r#"썝"#, r#"썝"#, r#"썝"#, r#"썝"#, r#"썝"#),
+        (r#"썞"#, r#"썞"#, r#"썞"#, r#"썞"#, r#"썞"#),
+        (r#"썟"#, r#"썟"#, r#"썟"#, r#"썟"#, r#"썟"#),
+        (r#"썠"#, r#"썠"#, r#"썠"#, r#"썠"#, r#"썠"#),
+        (r#"썡"#, r#"썡"#, r#"썡"#, r#"썡"#, r#"썡"#),
+        (r#"썢"#, r#"썢"#, r#"썢"#, r#"썢"#, r#"썢"#),
+        (r#"썣"#, r#"썣"#, r#"썣"#, r#"썣"#, r#"썣"#),
+        (r#"썤"#, r#"썤"#, r#"썤"#, r#"썤"#, r#"썤"#),
+        (r#"썥"#, r#"썥"#, r#"썥"#, r#"썥"#, r#"썥"#),
+        (r#"썦"#, r#"썦"#, r#"썦"#, r#"썦"#, r#"썦"#),
+        (r#"썧"#, r#"썧"#, r#"썧"#, r#"썧"#, r#"썧"#),
+        (r#"써"#, r#"써"#, r#"써"#, r#"써"#, r#"써"#),
+        (r#"썩"#, r#"썩"#, r#"썩"#, r#"썩"#, r#"썩"#),
+        (r#"썪"#, r#"썪"#, r#"썪"#, r#"썪"#, r#"썪"#),
+        (r#"썫"#, r#"썫"#, r#"썫"#, r#"썫"#, r#"썫"#),
+        (r#"썬"#, r#"썬"#, r#"썬"#, r#"썬"#, r#"썬"#),
+        (r#"썭"#, r#"썭"#, r#"썭"#, r#"썭"#, r#"썭"#),
+        (r#"썮"#, r#"썮"#, r#"썮"#, r#"썮"#, r#"썮"#),
+        (r#"썯"#, r#"썯"#, r#"썯"#, r#"썯"#, r#"썯"#),
+        (r#"썰"#, r#"썰"#, r#"썰"#, r#"썰"#, r#"썰"#),
+        (r#"썱"#, r#"썱"#, r#"썱"#, r#"썱"#, r#"썱"#),
+        (r#"썲"#, r#"썲"#, r#"썲"#, r#"썲"#, r#"썲"#),
+        (r#"썳"#, r#"썳"#, r#"썳"#, r#"썳"#, r#"썳"#),
+        (r#"썴"#, r#"썴"#, r#"썴"#, r#"썴"#, r#"썴"#),
+        (r#"썵"#, r#"썵"#, r#"썵"#, r#"썵"#, r#"썵"#),
+        (r#"썶"#, r#"썶"#, r#"썶"#, r#"썶"#, r#"썶"#),
+        (r#"썷"#, r#"썷"#, r#"썷"#, r#"썷"#, r#"썷"#),
+        (r#"썸"#, r#"썸"#, r#"썸"#, r#"썸"#, r#"썸"#),
+        (r#"썹"#, r#"썹"#, r#"썹"#, r#"썹"#, r#"썹"#),
+        (r#"썺"#, r#"썺"#, r#"썺"#, r#"썺"#, r#"썺"#),
+        (r#"썻"#, r#"썻"#, r#"썻"#, r#"썻"#, r#"썻"#),
+        (r#"썼"#, r#"썼"#, r#"썼"#, r#"썼"#, r#"썼"#),
+        (r#"썽"#, r#"썽"#, r#"썽"#, r#"썽"#, r#"썽"#),
+        (r#"썾"#, r#"썾"#, r#"썾"#, r#"썾"#, r#"썾"#),
+        (r#"썿"#, r#"썿"#, r#"썿"#, r#"썿"#, r#"썿"#),
+        (r#"쎀"#, r#"쎀"#, r#"쎀"#, r#"쎀"#, r#"쎀"#),
+        (r#"쎁"#, r#"쎁"#, r#"쎁"#, r#"쎁"#, r#"쎁"#),
+        (r#"쎂"#, r#"쎂"#, r#"쎂"#, r#"쎂"#, r#"쎂"#),
+        (r#"쎃"#, r#"쎃"#, r#"쎃"#, r#"쎃"#, r#"쎃"#),
+        (r#"쎄"#, r#"쎄"#, r#"쎄"#, r#"쎄"#, r#"쎄"#),
+        (r#"쎅"#, r#"쎅"#, r#"쎅"#, r#"쎅"#, r#"쎅"#),
+        (r#"쎆"#, r#"쎆"#, r#"쎆"#, r#"쎆"#, r#"쎆"#),
+        (r#"쎇"#, r#"쎇"#, r#"쎇"#, r#"쎇"#, r#"쎇"#),
+        (r#"쎈"#, r#"쎈"#, r#"쎈"#, r#"쎈"#, r#"쎈"#),
+        (r#"쎉"#, r#"쎉"#, r#"쎉"#, r#"쎉"#, r#"쎉"#),
+        (r#"쎊"#, r#"쎊"#, r#"쎊"#, r#"쎊"#, r#"쎊"#),
+        (r#"쎋"#, r#"쎋"#, r#"쎋"#, r#"쎋"#, r#"쎋"#),
+        (r#"쎌"#, r#"쎌"#, r#"쎌"#, r#"쎌"#, r#"쎌"#),
+        (r#"쎍"#, r#"쎍"#, r#"쎍"#, r#"쎍"#, r#"쎍"#),
+        (r#"쎎"#, r#"쎎"#, r#"쎎"#, r#"쎎"#, r#"쎎"#),
+        (r#"쎏"#, r#"쎏"#, r#"쎏"#, r#"쎏"#, r#"쎏"#),
+        (r#"쎐"#, r#"쎐"#, r#"쎐"#, r#"쎐"#, r#"쎐"#),
+        (r#"쎑"#, r#"쎑"#, r#"쎑"#, r#"쎑"#, r#"쎑"#),
+        (r#"쎒"#, r#"쎒"#, r#"쎒"#, r#"쎒"#, r#"쎒"#),
+        (r#"쎓"#, r#"쎓"#, r#"쎓"#, r#"쎓"#, r#"쎓"#),
+        (r#"쎔"#, r#"쎔"#, r#"쎔"#, r#"쎔"#, r#"쎔"#),
+        (r#"쎕"#, r#"쎕"#, r#"쎕"#, r#"쎕"#, r#"쎕"#),
+        (r#"쎖"#, r#"쎖"#, r#"쎖"#, r#"쎖"#, r#"쎖"#),
+        (r#"쎗"#, r#"쎗"#, r#"쎗"#, r#"쎗"#, r#"쎗"#),
+        (r#"쎘"#, r#"쎘"#, r#"쎘"#, r#"쎘"#, r#"쎘"#),
+        (r#"쎙"#, r#"쎙"#, r#"쎙"#, r#"쎙"#, r#"쎙"#),
+        (r#"쎚"#, r#"쎚"#, r#"쎚"#, r#"쎚"#, r#"쎚"#),
+        (r#"쎛"#, r#"쎛"#, r#"쎛"#, r#"쎛"#, r#"쎛"#),
+        (r#"쎜"#, r#"쎜"#, r#"쎜"#, r#"쎜"#, r#"쎜"#),
+        (r#"쎝"#, r#"쎝"#, r#"쎝"#, r#"쎝"#, r#"쎝"#),
+        (r#"쎞"#, r#"쎞"#, r#"쎞"#, r#"쎞"#, r#"쎞"#),
+        (r#"쎟"#, r#"쎟"#, r#"쎟"#, r#"쎟"#, r#"쎟"#),
+        (r#"쎠"#, r#"쎠"#, r#"쎠"#, r#"쎠"#, r#"쎠"#),
+        (r#"쎡"#, r#"쎡"#, r#"쎡"#, r#"쎡"#, r#"쎡"#),
+        (r#"쎢"#, r#"쎢"#, r#"쎢"#, r#"쎢"#, r#"쎢"#),
+        (r#"쎣"#, r#"쎣"#, r#"쎣"#, r#"쎣"#, r#"쎣"#),
+        (r#"쎤"#, r#"쎤"#, r#"쎤"#, r#"쎤"#, r#"쎤"#),
+        (r#"쎥"#, r#"쎥"#, r#"쎥"#, r#"쎥"#, r#"쎥"#),
+        (r#"쎦"#, r#"쎦"#, r#"쎦"#, r#"쎦"#, r#"쎦"#),
+        (r#"쎧"#, r#"쎧"#, r#"쎧"#, r#"쎧"#, r#"쎧"#),
+        (r#"쎨"#, r#"쎨"#, r#"쎨"#, r#"쎨"#, r#"쎨"#),
+        (r#"쎩"#, r#"쎩"#, r#"쎩"#, r#"쎩"#, r#"쎩"#),
+        (r#"쎪"#, r#"쎪"#, r#"쎪"#, r#"쎪"#, r#"쎪"#),
+        (r#"쎫"#, r#"쎫"#, r#"쎫"#, r#"쎫"#, r#"쎫"#),
+        (r#"쎬"#, r#"쎬"#, r#"쎬"#, r#"쎬"#, r#"쎬"#),
+        (r#"쎭"#, r#"쎭"#, r#"쎭"#, r#"쎭"#, r#"쎭"#),
+        (r#"쎮"#, r#"쎮"#, r#"쎮"#, r#"쎮"#, r#"쎮"#),
+        (r#"쎯"#, r#"쎯"#, r#"쎯"#, r#"쎯"#, r#"쎯"#),
+        (r#"쎰"#, r#"쎰"#, r#"쎰"#, r#"쎰"#, r#"쎰"#),
+        (r#"쎱"#, r#"쎱"#, r#"쎱"#, r#"쎱"#, r#"쎱"#),
+        (r#"쎲"#, r#"쎲"#, r#"쎲"#, r#"쎲"#, r#"쎲"#),
+        (r#"쎳"#, r#"쎳"#, r#"쎳"#, r#"쎳"#, r#"쎳"#),
+        (r#"쎴"#, r#"쎴"#, r#"쎴"#, r#"쎴"#, r#"쎴"#),
+        (r#"쎵"#, r#"쎵"#, r#"쎵"#, r#"쎵"#, r#"쎵"#),
+        (r#"쎶"#, r#"쎶"#, r#"쎶"#, r#"쎶"#, r#"쎶"#),
+        (r#"쎷"#, r#"쎷"#, r#"쎷"#, r#"쎷"#, r#"쎷"#),
+        (r#"쎸"#, r#"쎸"#, r#"쎸"#, r#"쎸"#, r#"쎸"#),
+        (r#"쎹"#, r#"쎹"#, r#"쎹"#, r#"쎹"#, r#"쎹"#),
+        (r#"쎺"#, r#"쎺"#, r#"쎺"#, r#"쎺"#, r#"쎺"#),
+        (r#"쎻"#, r#"쎻"#, r#"쎻"#, r#"쎻"#, r#"쎻"#),
+        (r#"쎼"#, r#"쎼"#, r#"쎼"#, r#"쎼"#, r#"쎼"#),
+        (r#"쎽"#, r#"쎽"#, r#"쎽"#, r#"쎽"#, r#"쎽"#),
+        (r#"쎾"#, r#"쎾"#, r#"쎾"#, r#"쎾"#, r#"쎾"#),
+        (r#"쎿"#, r#"쎿"#, r#"쎿"#, r#"쎿"#, r#"쎿"#),
+        (r#"쏀"#, r#"쏀"#, r#"쏀"#, r#"쏀"#, r#"쏀"#),
+        (r#"쏁"#, r#"쏁"#, r#"쏁"#, r#"쏁"#, r#"쏁"#),
+        (r#"쏂"#, r#"쏂"#, r#"쏂"#, r#"쏂"#, r#"쏂"#),
+        (r#"쏃"#, r#"쏃"#, r#"쏃"#, r#"쏃"#, r#"쏃"#),
+        (r#"쏄"#, r#"쏄"#, r#"쏄"#, r#"쏄"#, r#"쏄"#),
+        (r#"쏅"#, r#"쏅"#, r#"쏅"#, r#"쏅"#, r#"쏅"#),
+        (r#"쏆"#, r#"쏆"#, r#"쏆"#, r#"쏆"#, r#"쏆"#),
+        (r#"쏇"#, r#"쏇"#, r#"쏇"#, r#"쏇"#, r#"쏇"#),
+        (r#"쏈"#, r#"쏈"#, r#"쏈"#, r#"쏈"#, r#"쏈"#),
+        (r#"쏉"#, r#"쏉"#, r#"쏉"#, r#"쏉"#, r#"쏉"#),
+        (r#"쏊"#, r#"쏊"#, r#"쏊"#, r#"쏊"#, r#"쏊"#),
+        (r#"쏋"#, r#"쏋"#, r#"쏋"#, r#"쏋"#, r#"쏋"#),
+        (r#"쏌"#, r#"쏌"#, r#"쏌"#, r#"쏌"#, r#"쏌"#),
+        (r#"쏍"#, r#"쏍"#, r#"쏍"#, r#"쏍"#, r#"쏍"#),
+        (r#"쏎"#, r#"쏎"#, r#"쏎"#, r#"쏎"#, r#"쏎"#),
+        (r#"쏏"#, r#"쏏"#, r#"쏏"#, r#"쏏"#, r#"쏏"#),
+        (r#"쏐"#, r#"쏐"#, r#"쏐"#, r#"쏐"#, r#"쏐"#),
+        (r#"쏑"#, r#"쏑"#, r#"쏑"#, r#"쏑"#, r#"쏑"#),
+        (r#"쏒"#, r#"쏒"#, r#"쏒"#, r#"쏒"#, r#"쏒"#),
+        (r#"쏓"#, r#"쏓"#, r#"쏓"#, r#"쏓"#, r#"쏓"#),
+        (r#"쏔"#, r#"쏔"#, r#"쏔"#, r#"쏔"#, r#"쏔"#),
+        (r#"쏕"#, r#"쏕"#, r#"쏕"#, r#"쏕"#, r#"쏕"#),
+        (r#"쏖"#, r#"쏖"#, r#"쏖"#, r#"쏖"#, r#"쏖"#),
+        (r#"쏗"#, r#"쏗"#, r#"쏗"#, r#"쏗"#, r#"쏗"#),
+        (r#"쏘"#, r#"쏘"#, r#"쏘"#, r#"쏘"#, r#"쏘"#),
+        (r#"쏙"#, r#"쏙"#, r#"쏙"#, r#"쏙"#, r#"쏙"#),
+        (r#"쏚"#, r#"쏚"#, r#"쏚"#, r#"쏚"#, r#"쏚"#),
+        (r#"쏛"#, r#"쏛"#, r#"쏛"#, r#"쏛"#, r#"쏛"#),
+        (r#"쏜"#, r#"쏜"#, r#"쏜"#, r#"쏜"#, r#"쏜"#),
+        (r#"쏝"#, r#"쏝"#, r#"쏝"#, r#"쏝"#, r#"쏝"#),
+        (r#"쏞"#, r#"쏞"#, r#"쏞"#, r#"쏞"#, r#"쏞"#),
+        (r#"쏟"#, r#"쏟"#, r#"쏟"#, r#"쏟"#, r#"쏟"#),
+        (r#"쏠"#, r#"쏠"#, r#"쏠"#, r#"쏠"#, r#"쏠"#),
+        (r#"쏡"#, r#"쏡"#, r#"쏡"#, r#"쏡"#, r#"쏡"#),
+        (r#"쏢"#, r#"쏢"#, r#"쏢"#, r#"쏢"#, r#"쏢"#),
+        (r#"쏣"#, r#"쏣"#, r#"쏣"#, r#"쏣"#, r#"쏣"#),
+        (r#"쏤"#, r#"쏤"#, r#"쏤"#, r#"쏤"#, r#"쏤"#),
+        (r#"쏥"#, r#"쏥"#, r#"쏥"#, r#"쏥"#, r#"쏥"#),
+        (r#"쏦"#, r#"쏦"#, r#"쏦"#, r#"쏦"#, r#"쏦"#),
+        (r#"쏧"#, r#"쏧"#, r#"쏧"#, r#"쏧"#, r#"쏧"#),
+        (r#"쏨"#, r#"쏨"#, r#"쏨"#, r#"쏨"#, r#"쏨"#),
+        (r#"쏩"#, r#"쏩"#, r#"쏩"#, r#"쏩"#, r#"쏩"#),
+        (r#"쏪"#, r#"쏪"#, r#"쏪"#, r#"쏪"#, r#"쏪"#),
+        (r#"쏫"#, r#"쏫"#, r#"쏫"#, r#"쏫"#, r#"쏫"#),
+        (r#"쏬"#, r#"쏬"#, r#"쏬"#, r#"쏬"#, r#"쏬"#),
+        (r#"쏭"#, r#"쏭"#, r#"쏭"#, r#"쏭"#, r#"쏭"#),
+        (r#"쏮"#, r#"쏮"#, r#"쏮"#, r#"쏮"#, r#"쏮"#),
+        (r#"쏯"#, r#"쏯"#, r#"쏯"#, r#"쏯"#, r#"쏯"#),
+        (r#"쏰"#, r#"쏰"#, r#"쏰"#, r#"쏰"#, r#"쏰"#),
+        (r#"쏱"#, r#"쏱"#, r#"쏱"#, r#"쏱"#, r#"쏱"#),
+        (r#"쏲"#, r#"쏲"#, r#"쏲"#, r#"쏲"#, r#"쏲"#),
+        (r#"쏳"#, r#"쏳"#, r#"쏳"#, r#"쏳"#, r#"쏳"#),
+        (r#"쏴"#, r#"쏴"#, r#"쏴"#, r#"쏴"#, r#"쏴"#),
+        (r#"쏵"#, r#"쏵"#, r#"쏵"#, r#"쏵"#, r#"쏵"#),
+        (r#"쏶"#, r#"쏶"#, r#"쏶"#, r#"쏶"#, r#"쏶"#),
+        (r#"쏷"#, r#"쏷"#, r#"쏷"#, r#"쏷"#, r#"쏷"#),
+        (r#"쏸"#, r#"쏸"#, r#"쏸"#, r#"쏸"#, r#"쏸"#),
+        (r#"쏹"#, r#"쏹"#, r#"쏹"#, r#"쏹"#, r#"쏹"#),
+        (r#"쏺"#, r#"쏺"#, r#"쏺"#, r#"쏺"#, r#"쏺"#),
+        (r#"쏻"#, r#"쏻"#, r#"쏻"#, r#"쏻"#, r#"쏻"#),
+        (r#"쏼"#, r#"쏼"#, r#"쏼"#, r#"쏼"#, r#"쏼"#),
+        (r#"쏽"#, r#"쏽"#, r#"쏽"#, r#"쏽"#, r#"쏽"#),
+        (r#"쏾"#, r#"쏾"#, r#"쏾"#, r#"쏾"#, r#"쏾"#),
+        (r#"쏿"#, r#"쏿"#, r#"쏿"#, r#"쏿"#, r#"쏿"#),
+        (r#"쐀"#, r#"쐀"#, r#"쐀"#, r#"쐀"#, r#"쐀"#),
+        (r#"쐁"#, r#"쐁"#, r#"쐁"#, r#"쐁"#, r#"쐁"#),
+        (r#"쐂"#, r#"쐂"#, r#"쐂"#, r#"쐂"#, r#"쐂"#),
+        (r#"쐃"#, r#"쐃"#, r#"쐃"#, r#"쐃"#, r#"쐃"#),
+        (r#"쐄"#, r#"쐄"#, r#"쐄"#, r#"쐄"#, r#"쐄"#),
+        (r#"쐅"#, r#"쐅"#, r#"쐅"#, r#"쐅"#, r#"쐅"#),
+        (r#"쐆"#, r#"쐆"#, r#"쐆"#, r#"쐆"#, r#"쐆"#),
+        (r#"쐇"#, r#"쐇"#, r#"쐇"#, r#"쐇"#, r#"쐇"#),
+        (r#"쐈"#, r#"쐈"#, r#"쐈"#, r#"쐈"#, r#"쐈"#),
+        (r#"쐉"#, r#"쐉"#, r#"쐉"#, r#"쐉"#, r#"쐉"#),
+        (r#"쐊"#, r#"쐊"#, r#"쐊"#, r#"쐊"#, r#"쐊"#),
+        (r#"쐋"#, r#"쐋"#, r#"쐋"#, r#"쐋"#, r#"쐋"#),
+        (r#"쐌"#, r#"쐌"#, r#"쐌"#, r#"쐌"#, r#"쐌"#),
+        (r#"쐍"#, r#"쐍"#, r#"쐍"#, r#"쐍"#, r#"쐍"#),
+        (r#"쐎"#, r#"쐎"#, r#"쐎"#, r#"쐎"#, r#"쐎"#),
+        (r#"쐏"#, r#"쐏"#, r#"쐏"#, r#"쐏"#, r#"쐏"#),
+        (r#"쐐"#, r#"쐐"#, r#"쐐"#, r#"쐐"#, r#"쐐"#),
+        (r#"쐑"#, r#"쐑"#, r#"쐑"#, r#"쐑"#, r#"쐑"#),
+        (r#"쐒"#, r#"쐒"#, r#"쐒"#, r#"쐒"#, r#"쐒"#),
+        (r#"쐓"#, r#"쐓"#, r#"쐓"#, r#"쐓"#, r#"쐓"#),
+        (r#"쐔"#, r#"쐔"#, r#"쐔"#, r#"쐔"#, r#"쐔"#),
+        (r#"쐕"#, r#"쐕"#, r#"쐕"#, r#"쐕"#, r#"쐕"#),
+        (r#"쐖"#, r#"쐖"#, r#"쐖"#, r#"쐖"#, r#"쐖"#),
+        (r#"쐗"#, r#"쐗"#, r#"쐗"#, r#"쐗"#, r#"쐗"#),
+        (r#"쐘"#, r#"쐘"#, r#"쐘"#, r#"쐘"#, r#"쐘"#),
+        (r#"쐙"#, r#"쐙"#, r#"쐙"#, r#"쐙"#, r#"쐙"#),
+        (r#"쐚"#, r#"쐚"#, r#"쐚"#, r#"쐚"#, r#"쐚"#),
+        (r#"쐛"#, r#"쐛"#, r#"쐛"#, r#"쐛"#, r#"쐛"#),
+        (r#"쐜"#, r#"쐜"#, r#"쐜"#, r#"쐜"#, r#"쐜"#),
+        (r#"쐝"#, r#"쐝"#, r#"쐝"#, r#"쐝"#, r#"쐝"#),
+        (r#"쐞"#, r#"쐞"#, r#"쐞"#, r#"쐞"#, r#"쐞"#),
+        (r#"쐟"#, r#"쐟"#, r#"쐟"#, r#"쐟"#, r#"쐟"#),
+        (r#"쐠"#, r#"쐠"#, r#"쐠"#, r#"쐠"#, r#"쐠"#),
+        (r#"쐡"#, r#"쐡"#, r#"쐡"#, r#"쐡"#, r#"쐡"#),
+        (r#"쐢"#, r#"쐢"#, r#"쐢"#, r#"쐢"#, r#"쐢"#),
+        (r#"쐣"#, r#"쐣"#, r#"쐣"#, r#"쐣"#, r#"쐣"#),
+        (r#"쐤"#, r#"쐤"#, r#"쐤"#, r#"쐤"#, r#"쐤"#),
+        (r#"쐥"#, r#"쐥"#, r#"쐥"#, r#"쐥"#, r#"쐥"#),
+        (r#"쐦"#, r#"쐦"#, r#"쐦"#, r#"쐦"#, r#"쐦"#),
+        (r#"쐧"#, r#"쐧"#, r#"쐧"#, r#"쐧"#, r#"쐧"#),
+        (r#"쐨"#, r#"쐨"#, r#"쐨"#, r#"쐨"#, r#"쐨"#),
+        (r#"쐩"#, r#"쐩"#, r#"쐩"#, r#"쐩"#, r#"쐩"#),
+        (r#"쐪"#, r#"쐪"#, r#"쐪"#, r#"쐪"#, r#"쐪"#),
+        (r#"쐫"#, r#"쐫"#, r#"쐫"#, r#"쐫"#, r#"쐫"#),
+        (r#"쐬"#, r#"쐬"#, r#"쐬"#, r#"쐬"#, r#"쐬"#),
+        (r#"쐭"#, r#"쐭"#, r#"쐭"#, r#"쐭"#, r#"쐭"#),
+        (r#"쐮"#, r#"쐮"#, r#"쐮"#, r#"쐮"#, r#"쐮"#),
+        (r#"쐯"#, r#"쐯"#, r#"쐯"#, r#"쐯"#, r#"쐯"#),
+        (r#"쐰"#, r#"쐰"#, r#"쐰"#, r#"쐰"#, r#"쐰"#),
+        (r#"쐱"#, r#"쐱"#, r#"쐱"#, r#"쐱"#, r#"쐱"#),
+        (r#"쐲"#, r#"쐲"#, r#"쐲"#, r#"쐲"#, r#"쐲"#),
+        (r#"쐳"#, r#"쐳"#, r#"쐳"#, r#"쐳"#, r#"쐳"#),
+        (r#"쐴"#, r#"쐴"#, r#"쐴"#, r#"쐴"#, r#"쐴"#),
+        (r#"쐵"#, r#"쐵"#, r#"쐵"#, r#"쐵"#, r#"쐵"#),
+        (r#"쐶"#, r#"쐶"#, r#"쐶"#, r#"쐶"#, r#"쐶"#),
+        (r#"쐷"#, r#"쐷"#, r#"쐷"#, r#"쐷"#, r#"쐷"#),
+        (r#"쐸"#, r#"쐸"#, r#"쐸"#, r#"쐸"#, r#"쐸"#),
+        (r#"쐹"#, r#"쐹"#, r#"쐹"#, r#"쐹"#, r#"쐹"#),
+        (r#"쐺"#, r#"쐺"#, r#"쐺"#, r#"쐺"#, r#"쐺"#),
+        (r#"쐻"#, r#"쐻"#, r#"쐻"#, r#"쐻"#, r#"쐻"#),
+        (r#"쐼"#, r#"쐼"#, r#"쐼"#, r#"쐼"#, r#"쐼"#),
+        (r#"쐽"#, r#"쐽"#, r#"쐽"#, r#"쐽"#, r#"쐽"#),
+        (r#"쐾"#, r#"쐾"#, r#"쐾"#, r#"쐾"#, r#"쐾"#),
+        (r#"쐿"#, r#"쐿"#, r#"쐿"#, r#"쐿"#, r#"쐿"#),
+        (r#"쑀"#, r#"쑀"#, r#"쑀"#, r#"쑀"#, r#"쑀"#),
+        (r#"쑁"#, r#"쑁"#, r#"쑁"#, r#"쑁"#, r#"쑁"#),
+        (r#"쑂"#, r#"쑂"#, r#"쑂"#, r#"쑂"#, r#"쑂"#),
+        (r#"쑃"#, r#"쑃"#, r#"쑃"#, r#"쑃"#, r#"쑃"#),
+        (r#"쑄"#, r#"쑄"#, r#"쑄"#, r#"쑄"#, r#"쑄"#),
+        (r#"쑅"#, r#"쑅"#, r#"쑅"#, r#"쑅"#, r#"쑅"#),
+        (r#"쑆"#, r#"쑆"#, r#"쑆"#, r#"쑆"#, r#"쑆"#),
+        (r#"쑇"#, r#"쑇"#, r#"쑇"#, r#"쑇"#, r#"쑇"#),
+        (r#"쑈"#, r#"쑈"#, r#"쑈"#, r#"쑈"#, r#"쑈"#),
+        (r#"쑉"#, r#"쑉"#, r#"쑉"#, r#"쑉"#, r#"쑉"#),
+        (r#"쑊"#, r#"쑊"#, r#"쑊"#, r#"쑊"#, r#"쑊"#),
+        (r#"쑋"#, r#"쑋"#, r#"쑋"#, r#"쑋"#, r#"쑋"#),
+        (r#"쑌"#, r#"쑌"#, r#"쑌"#, r#"쑌"#, r#"쑌"#),
+        (r#"쑍"#, r#"쑍"#, r#"쑍"#, r#"쑍"#, r#"쑍"#),
+        (r#"쑎"#, r#"쑎"#, r#"쑎"#, r#"쑎"#, r#"쑎"#),
+        (r#"쑏"#, r#"쑏"#, r#"쑏"#, r#"쑏"#, r#"쑏"#),
+        (r#"쑐"#, r#"쑐"#, r#"쑐"#, r#"쑐"#, r#"쑐"#),
+        (r#"쑑"#, r#"쑑"#, r#"쑑"#, r#"쑑"#, r#"쑑"#),
+        (r#"쑒"#, r#"쑒"#, r#"쑒"#, r#"쑒"#, r#"쑒"#),
+        (r#"쑓"#, r#"쑓"#, r#"쑓"#, r#"쑓"#, r#"쑓"#),
+        (r#"쑔"#, r#"쑔"#, r#"쑔"#, r#"쑔"#, r#"쑔"#),
+        (r#"쑕"#, r#"쑕"#, r#"쑕"#, r#"쑕"#, r#"쑕"#),
+        (r#"쑖"#, r#"쑖"#, r#"쑖"#, r#"쑖"#, r#"쑖"#),
+        (r#"쑗"#, r#"쑗"#, r#"쑗"#, r#"쑗"#, r#"쑗"#),
+        (r#"쑘"#, r#"쑘"#, r#"쑘"#, r#"쑘"#, r#"쑘"#),
+        (r#"쑙"#, r#"쑙"#, r#"쑙"#, r#"쑙"#, r#"쑙"#),
+        (r#"쑚"#, r#"쑚"#, r#"쑚"#, r#"쑚"#, r#"쑚"#),
+        (r#"쑛"#, r#"쑛"#, r#"쑛"#, r#"쑛"#, r#"쑛"#),
+        (r#"쑜"#, r#"쑜"#, r#"쑜"#, r#"쑜"#, r#"쑜"#),
+        (r#"쑝"#, r#"쑝"#, r#"쑝"#, r#"쑝"#, r#"쑝"#),
+        (r#"쑞"#, r#"쑞"#, r#"쑞"#, r#"쑞"#, r#"쑞"#),
+        (r#"쑟"#, r#"쑟"#, r#"쑟"#, r#"쑟"#, r#"쑟"#),
+        (r#"쑠"#, r#"쑠"#, r#"쑠"#, r#"쑠"#, r#"쑠"#),
+        (r#"쑡"#, r#"쑡"#, r#"쑡"#, r#"쑡"#, r#"쑡"#),
+        (r#"쑢"#, r#"쑢"#, r#"쑢"#, r#"쑢"#, r#"쑢"#),
+        (r#"쑣"#, r#"쑣"#, r#"쑣"#, r#"쑣"#, r#"쑣"#),
+        (r#"쑤"#, r#"쑤"#, r#"쑤"#, r#"쑤"#, r#"쑤"#),
+        (r#"쑥"#, r#"쑥"#, r#"쑥"#, r#"쑥"#, r#"쑥"#),
+        (r#"쑦"#, r#"쑦"#, r#"쑦"#, r#"쑦"#, r#"쑦"#),
+        (r#"쑧"#, r#"쑧"#, r#"쑧"#, r#"쑧"#, r#"쑧"#),
+        (r#"쑨"#, r#"쑨"#, r#"쑨"#, r#"쑨"#, r#"쑨"#),
+        (r#"쑩"#, r#"쑩"#, r#"쑩"#, r#"쑩"#, r#"쑩"#),
+        (r#"쑪"#, r#"쑪"#, r#"쑪"#, r#"쑪"#, r#"쑪"#),
+        (r#"쑫"#, r#"쑫"#, r#"쑫"#, r#"쑫"#, r#"쑫"#),
+        (r#"쑬"#, r#"쑬"#, r#"쑬"#, r#"쑬"#, r#"쑬"#),
+        (r#"쑭"#, r#"쑭"#, r#"쑭"#, r#"쑭"#, r#"쑭"#),
+        (r#"쑮"#, r#"쑮"#, r#"쑮"#, r#"쑮"#, r#"쑮"#),
+        (r#"쑯"#, r#"쑯"#, r#"쑯"#, r#"쑯"#, r#"쑯"#),
+        (r#"쑰"#, r#"쑰"#, r#"쑰"#, r#"쑰"#, r#"쑰"#),
+        (r#"쑱"#, r#"쑱"#, r#"쑱"#, r#"쑱"#, r#"쑱"#),
+        (r#"쑲"#, r#"쑲"#, r#"쑲"#, r#"쑲"#, r#"쑲"#),
+        (r#"쑳"#, r#"쑳"#, r#"쑳"#, r#"쑳"#, r#"쑳"#),
+        (r#"쑴"#, r#"쑴"#, r#"쑴"#, r#"쑴"#, r#"쑴"#),
+        (r#"쑵"#, r#"쑵"#, r#"쑵"#, r#"쑵"#, r#"쑵"#),
+        (r#"쑶"#, r#"쑶"#, r#"쑶"#, r#"쑶"#, r#"쑶"#),
+        (r#"쑷"#, r#"쑷"#, r#"쑷"#, r#"쑷"#, r#"쑷"#),
+        (r#"쑸"#, r#"쑸"#, r#"쑸"#, r#"쑸"#, r#"쑸"#),
+        (r#"쑹"#, r#"쑹"#, r#"쑹"#, r#"쑹"#, r#"쑹"#),
+        (r#"쑺"#, r#"쑺"#, r#"쑺"#, r#"쑺"#, r#"쑺"#),
+        (r#"쑻"#, r#"쑻"#, r#"쑻"#, r#"쑻"#, r#"쑻"#),
+        (r#"쑼"#, r#"쑼"#, r#"쑼"#, r#"쑼"#, r#"쑼"#),
+        (r#"쑽"#, r#"쑽"#, r#"쑽"#, r#"쑽"#, r#"쑽"#),
+        (r#"쑾"#, r#"쑾"#, r#"쑾"#, r#"쑾"#, r#"쑾"#),
+        (r#"쑿"#, r#"쑿"#, r#"쑿"#, r#"쑿"#, r#"쑿"#),
+        (r#"쒀"#, r#"쒀"#, r#"쒀"#, r#"쒀"#, r#"쒀"#),
+        (r#"쒁"#, r#"쒁"#, r#"쒁"#, r#"쒁"#, r#"쒁"#),
+        (r#"쒂"#, r#"쒂"#, r#"쒂"#, r#"쒂"#, r#"쒂"#),
+        (r#"쒃"#, r#"쒃"#, r#"쒃"#, r#"쒃"#, r#"쒃"#),
+        (r#"쒄"#, r#"쒄"#, r#"쒄"#, r#"쒄"#, r#"쒄"#),
+        (r#"쒅"#, r#"쒅"#, r#"쒅"#, r#"쒅"#, r#"쒅"#),
+        (r#"쒆"#, r#"쒆"#, r#"쒆"#, r#"쒆"#, r#"쒆"#),
+        (r#"쒇"#, r#"쒇"#, r#"쒇"#, r#"쒇"#, r#"쒇"#),
+        (r#"쒈"#, r#"쒈"#, r#"쒈"#, r#"쒈"#, r#"쒈"#),
+        (r#"쒉"#, r#"쒉"#, r#"쒉"#, r#"쒉"#, r#"쒉"#),
+        (r#"쒊"#, r#"쒊"#, r#"쒊"#, r#"쒊"#, r#"쒊"#),
+        (r#"쒋"#, r#"쒋"#, r#"쒋"#, r#"쒋"#, r#"쒋"#),
+        (r#"쒌"#, r#"쒌"#, r#"쒌"#, r#"쒌"#, r#"쒌"#),
+        (r#"쒍"#, r#"쒍"#, r#"쒍"#, r#"쒍"#, r#"쒍"#),
+        (r#"쒎"#, r#"쒎"#, r#"쒎"#, r#"쒎"#, r#"쒎"#),
+        (r#"쒏"#, r#"쒏"#, r#"쒏"#, r#"쒏"#, r#"쒏"#),
+        (r#"쒐"#, r#"쒐"#, r#"쒐"#, r#"쒐"#, r#"쒐"#),
+        (r#"쒑"#, r#"쒑"#, r#"쒑"#, r#"쒑"#, r#"쒑"#),
+        (r#"쒒"#, r#"쒒"#, r#"쒒"#, r#"쒒"#, r#"쒒"#),
+        (r#"쒓"#, r#"쒓"#, r#"쒓"#, r#"쒓"#, r#"쒓"#),
+        (r#"쒔"#, r#"쒔"#, r#"쒔"#, r#"쒔"#, r#"쒔"#),
+        (r#"쒕"#, r#"쒕"#, r#"쒕"#, r#"쒕"#, r#"쒕"#),
+        (r#"쒖"#, r#"쒖"#, r#"쒖"#, r#"쒖"#, r#"쒖"#),
+        (r#"쒗"#, r#"쒗"#, r#"쒗"#, r#"쒗"#, r#"쒗"#),
+        (r#"쒘"#, r#"쒘"#, r#"쒘"#, r#"쒘"#, r#"쒘"#),
+        (r#"쒙"#, r#"쒙"#, r#"쒙"#, r#"쒙"#, r#"쒙"#),
+        (r#"쒚"#, r#"쒚"#, r#"쒚"#, r#"쒚"#, r#"쒚"#),
+        (r#"쒛"#, r#"쒛"#, r#"쒛"#, r#"쒛"#, r#"쒛"#),
+        (r#"쒜"#, r#"쒜"#, r#"쒜"#, r#"쒜"#, r#"쒜"#),
+        (r#"쒝"#, r#"쒝"#, r#"쒝"#, r#"쒝"#, r#"쒝"#),
+        (r#"쒞"#, r#"쒞"#, r#"쒞"#, r#"쒞"#, r#"쒞"#),
+        (r#"쒟"#, r#"쒟"#, r#"쒟"#, r#"쒟"#, r#"쒟"#),
+        (r#"쒠"#, r#"쒠"#, r#"쒠"#, r#"쒠"#, r#"쒠"#),
+        (r#"쒡"#, r#"쒡"#, r#"쒡"#, r#"쒡"#, r#"쒡"#),
+        (r#"쒢"#, r#"쒢"#, r#"쒢"#, r#"쒢"#, r#"쒢"#),
+        (r#"쒣"#, r#"쒣"#, r#"쒣"#, r#"쒣"#, r#"쒣"#),
+        (r#"쒤"#, r#"쒤"#, r#"쒤"#, r#"쒤"#, r#"쒤"#),
+        (r#"쒥"#, r#"쒥"#, r#"쒥"#, r#"쒥"#, r#"쒥"#),
+        (r#"쒦"#, r#"쒦"#, r#"쒦"#, r#"쒦"#, r#"쒦"#),
+        (r#"쒧"#, r#"쒧"#, r#"쒧"#, r#"쒧"#, r#"쒧"#),
+        (r#"쒨"#, r#"쒨"#, r#"쒨"#, r#"쒨"#, r#"쒨"#),
+        (r#"쒩"#, r#"쒩"#, r#"쒩"#, r#"쒩"#, r#"쒩"#),
+        (r#"쒪"#, r#"쒪"#, r#"쒪"#, r#"쒪"#, r#"쒪"#),
+        (r#"쒫"#, r#"쒫"#, r#"쒫"#, r#"쒫"#, r#"쒫"#),
+        (r#"쒬"#, r#"쒬"#, r#"쒬"#, r#"쒬"#, r#"쒬"#),
+        (r#"쒭"#, r#"쒭"#, r#"쒭"#, r#"쒭"#, r#"쒭"#),
+        (r#"쒮"#, r#"쒮"#, r#"쒮"#, r#"쒮"#, r#"쒮"#),
+        (r#"쒯"#, r#"쒯"#, r#"쒯"#, r#"쒯"#, r#"쒯"#),
+        (r#"쒰"#, r#"쒰"#, r#"쒰"#, r#"쒰"#, r#"쒰"#),
+        (r#"쒱"#, r#"쒱"#, r#"쒱"#, r#"쒱"#, r#"쒱"#),
+        (r#"쒲"#, r#"쒲"#, r#"쒲"#, r#"쒲"#, r#"쒲"#),
+        (r#"쒳"#, r#"쒳"#, r#"쒳"#, r#"쒳"#, r#"쒳"#),
+        (r#"쒴"#, r#"쒴"#, r#"쒴"#, r#"쒴"#, r#"쒴"#),
+        (r#"쒵"#, r#"쒵"#, r#"쒵"#, r#"쒵"#, r#"쒵"#),
+        (r#"쒶"#, r#"쒶"#, r#"쒶"#, r#"쒶"#, r#"쒶"#),
+        (r#"쒷"#, r#"쒷"#, r#"쒷"#, r#"쒷"#, r#"쒷"#),
+        (r#"쒸"#, r#"쒸"#, r#"쒸"#, r#"쒸"#, r#"쒸"#),
+        (r#"쒹"#, r#"쒹"#, r#"쒹"#, r#"쒹"#, r#"쒹"#),
+        (r#"쒺"#, r#"쒺"#, r#"쒺"#, r#"쒺"#, r#"쒺"#),
+        (r#"쒻"#, r#"쒻"#, r#"쒻"#, r#"쒻"#, r#"쒻"#),
+        (r#"쒼"#, r#"쒼"#, r#"쒼"#, r#"쒼"#, r#"쒼"#),
+        (r#"쒽"#, r#"쒽"#, r#"쒽"#, r#"쒽"#, r#"쒽"#),
+        (r#"쒾"#, r#"쒾"#, r#"쒾"#, r#"쒾"#, r#"쒾"#),
+        (r#"쒿"#, r#"쒿"#, r#"쒿"#, r#"쒿"#, r#"쒿"#),
+        (r#"쓀"#, r#"쓀"#, r#"쓀"#, r#"쓀"#, r#"쓀"#),
+        (r#"쓁"#, r#"쓁"#, r#"쓁"#, r#"쓁"#, r#"쓁"#),
+        (r#"쓂"#, r#"쓂"#, r#"쓂"#, r#"쓂"#, r#"쓂"#),
+        (r#"쓃"#, r#"쓃"#, r#"쓃"#, r#"쓃"#, r#"쓃"#),
+        (r#"쓄"#, r#"쓄"#, r#"쓄"#, r#"쓄"#, r#"쓄"#),
+        (r#"쓅"#, r#"쓅"#, r#"쓅"#, r#"쓅"#, r#"쓅"#),
+        (r#"쓆"#, r#"쓆"#, r#"쓆"#, r#"쓆"#, r#"쓆"#),
+        (r#"쓇"#, r#"쓇"#, r#"쓇"#, r#"쓇"#, r#"쓇"#),
+        (r#"쓈"#, r#"쓈"#, r#"쓈"#, r#"쓈"#, r#"쓈"#),
+        (r#"쓉"#, r#"쓉"#, r#"쓉"#, r#"쓉"#, r#"쓉"#),
+        (r#"쓊"#, r#"쓊"#, r#"쓊"#, r#"쓊"#, r#"쓊"#),
+        (r#"쓋"#, r#"쓋"#, r#"쓋"#, r#"쓋"#, r#"쓋"#),
+        (r#"쓌"#, r#"쓌"#, r#"쓌"#, r#"쓌"#, r#"쓌"#),
+        (r#"쓍"#, r#"쓍"#, r#"쓍"#, r#"쓍"#, r#"쓍"#),
+        (r#"쓎"#, r#"쓎"#, r#"쓎"#, r#"쓎"#, r#"쓎"#),
+        (r#"쓏"#, r#"쓏"#, r#"쓏"#, r#"쓏"#, r#"쓏"#),
+        (r#"쓐"#, r#"쓐"#, r#"쓐"#, r#"쓐"#, r#"쓐"#),
+        (r#"쓑"#, r#"쓑"#, r#"쓑"#, r#"쓑"#, r#"쓑"#),
+        (r#"쓒"#, r#"쓒"#, r#"쓒"#, r#"쓒"#, r#"쓒"#),
+        (r#"쓓"#, r#"쓓"#, r#"쓓"#, r#"쓓"#, r#"쓓"#),
+        (r#"쓔"#, r#"쓔"#, r#"쓔"#, r#"쓔"#, r#"쓔"#),
+        (r#"쓕"#, r#"쓕"#, r#"쓕"#, r#"쓕"#, r#"쓕"#),
+        (r#"쓖"#, r#"쓖"#, r#"쓖"#, r#"쓖"#, r#"쓖"#),
+        (r#"쓗"#, r#"쓗"#, r#"쓗"#, r#"쓗"#, r#"쓗"#),
+        (r#"쓘"#, r#"쓘"#, r#"쓘"#, r#"쓘"#, r#"쓘"#),
+        (r#"쓙"#, r#"쓙"#, r#"쓙"#, r#"쓙"#, r#"쓙"#),
+        (r#"쓚"#, r#"쓚"#, r#"쓚"#, r#"쓚"#, r#"쓚"#),
+        (r#"쓛"#, r#"쓛"#, r#"쓛"#, r#"쓛"#, r#"쓛"#),
+        (r#"쓜"#, r#"쓜"#, r#"쓜"#, r#"쓜"#, r#"쓜"#),
+        (r#"쓝"#, r#"쓝"#, r#"쓝"#, r#"쓝"#, r#"쓝"#),
+        (r#"쓞"#, r#"쓞"#, r#"쓞"#, r#"쓞"#, r#"쓞"#),
+        (r#"쓟"#, r#"쓟"#, r#"쓟"#, r#"쓟"#, r#"쓟"#),
+        (r#"쓠"#, r#"쓠"#, r#"쓠"#, r#"쓠"#, r#"쓠"#),
+        (r#"쓡"#, r#"쓡"#, r#"쓡"#, r#"쓡"#, r#"쓡"#),
+        (r#"쓢"#, r#"쓢"#, r#"쓢"#, r#"쓢"#, r#"쓢"#),
+        (r#"쓣"#, r#"쓣"#, r#"쓣"#, r#"쓣"#, r#"쓣"#),
+        (r#"쓤"#, r#"쓤"#, r#"쓤"#, r#"쓤"#, r#"쓤"#),
+        (r#"쓥"#, r#"쓥"#, r#"쓥"#, r#"쓥"#, r#"쓥"#),
+        (r#"쓦"#, r#"쓦"#, r#"쓦"#, r#"쓦"#, r#"쓦"#),
+        (r#"쓧"#, r#"쓧"#, r#"쓧"#, r#"쓧"#, r#"쓧"#),
+        (r#"쓨"#, r#"쓨"#, r#"쓨"#, r#"쓨"#, r#"쓨"#),
+        (r#"쓩"#, r#"쓩"#, r#"쓩"#, r#"쓩"#, r#"쓩"#),
+        (r#"쓪"#, r#"쓪"#, r#"쓪"#, r#"쓪"#, r#"쓪"#),
+        (r#"쓫"#, r#"쓫"#, r#"쓫"#, r#"쓫"#, r#"쓫"#),
+        (r#"쓬"#, r#"쓬"#, r#"쓬"#, r#"쓬"#, r#"쓬"#),
+        (r#"쓭"#, r#"쓭"#, r#"쓭"#, r#"쓭"#, r#"쓭"#),
+        (r#"쓮"#, r#"쓮"#, r#"쓮"#, r#"쓮"#, r#"쓮"#),
+        (r#"쓯"#, r#"쓯"#, r#"쓯"#, r#"쓯"#, r#"쓯"#),
+        (r#"쓰"#, r#"쓰"#, r#"쓰"#, r#"쓰"#, r#"쓰"#),
+        (r#"쓱"#, r#"쓱"#, r#"쓱"#, r#"쓱"#, r#"쓱"#),
+        (r#"쓲"#, r#"쓲"#, r#"쓲"#, r#"쓲"#, r#"쓲"#),
+        (r#"쓳"#, r#"쓳"#, r#"쓳"#, r#"쓳"#, r#"쓳"#),
+        (r#"쓴"#, r#"쓴"#, r#"쓴"#, r#"쓴"#, r#"쓴"#),
+        (r#"쓵"#, r#"쓵"#, r#"쓵"#, r#"쓵"#, r#"쓵"#),
+        (r#"쓶"#, r#"쓶"#, r#"쓶"#, r#"쓶"#, r#"쓶"#),
+        (r#"쓷"#, r#"쓷"#, r#"쓷"#, r#"쓷"#, r#"쓷"#),
+        (r#"쓸"#, r#"쓸"#, r#"쓸"#, r#"쓸"#, r#"쓸"#),
+        (r#"쓹"#, r#"쓹"#, r#"쓹"#, r#"쓹"#, r#"쓹"#),
+        (r#"쓺"#, r#"쓺"#, r#"쓺"#, r#"쓺"#, r#"쓺"#),
+        (r#"쓻"#, r#"쓻"#, r#"쓻"#, r#"쓻"#, r#"쓻"#),
+        (r#"쓼"#, r#"쓼"#, r#"쓼"#, r#"쓼"#, r#"쓼"#),
+        (r#"쓽"#, r#"쓽"#, r#"쓽"#, r#"쓽"#, r#"쓽"#),
+        (r#"쓾"#, r#"쓾"#, r#"쓾"#, r#"쓾"#, r#"쓾"#),
+        (r#"쓿"#, r#"쓿"#, r#"쓿"#, r#"쓿"#, r#"쓿"#),
+        (r#"씀"#, r#"씀"#, r#"씀"#, r#"씀"#, r#"씀"#),
+        (r#"씁"#, r#"씁"#, r#"씁"#, r#"씁"#, r#"씁"#),
+        (r#"씂"#, r#"씂"#, r#"씂"#, r#"씂"#, r#"씂"#),
+        (r#"씃"#, r#"씃"#, r#"씃"#, r#"씃"#, r#"씃"#),
+        (r#"씄"#, r#"씄"#, r#"씄"#, r#"씄"#, r#"씄"#),
+        (r#"씅"#, r#"씅"#, r#"씅"#, r#"씅"#, r#"씅"#),
+        (r#"씆"#, r#"씆"#, r#"씆"#, r#"씆"#, r#"씆"#),
+        (r#"씇"#, r#"씇"#, r#"씇"#, r#"씇"#, r#"씇"#),
+        (r#"씈"#, r#"씈"#, r#"씈"#, r#"씈"#, r#"씈"#),
+        (r#"씉"#, r#"씉"#, r#"씉"#, r#"씉"#, r#"씉"#),
+        (r#"씊"#, r#"씊"#, r#"씊"#, r#"씊"#, r#"씊"#),
+        (r#"씋"#, r#"씋"#, r#"씋"#, r#"씋"#, r#"씋"#),
+        (r#"씌"#, r#"씌"#, r#"씌"#, r#"씌"#, r#"씌"#),
+        (r#"씍"#, r#"씍"#, r#"씍"#, r#"씍"#, r#"씍"#),
+        (r#"씎"#, r#"씎"#, r#"씎"#, r#"씎"#, r#"씎"#),
+        (r#"씏"#, r#"씏"#, r#"씏"#, r#"씏"#, r#"씏"#),
+        (r#"씐"#, r#"씐"#, r#"씐"#, r#"씐"#, r#"씐"#),
+        (r#"씑"#, r#"씑"#, r#"씑"#, r#"씑"#, r#"씑"#),
+        (r#"씒"#, r#"씒"#, r#"씒"#, r#"씒"#, r#"씒"#),
+        (r#"씓"#, r#"씓"#, r#"씓"#, r#"씓"#, r#"씓"#),
+        (r#"씔"#, r#"씔"#, r#"씔"#, r#"씔"#, r#"씔"#),
+        (r#"씕"#, r#"씕"#, r#"씕"#, r#"씕"#, r#"씕"#),
+        (r#"씖"#, r#"씖"#, r#"씖"#, r#"씖"#, r#"씖"#),
+        (r#"씗"#, r#"씗"#, r#"씗"#, r#"씗"#, r#"씗"#),
+        (r#"씘"#, r#"씘"#, r#"씘"#, r#"씘"#, r#"씘"#),
+        (r#"씙"#, r#"씙"#, r#"씙"#, r#"씙"#, r#"씙"#),
+        (r#"씚"#, r#"씚"#, r#"씚"#, r#"씚"#, r#"씚"#),
+        (r#"씛"#, r#"씛"#, r#"씛"#, r#"씛"#, r#"씛"#),
+        (r#"씜"#, r#"씜"#, r#"씜"#, r#"씜"#, r#"씜"#),
+        (r#"씝"#, r#"씝"#, r#"씝"#, r#"씝"#, r#"씝"#),
+        (r#"씞"#, r#"씞"#, r#"씞"#, r#"씞"#, r#"씞"#),
+        (r#"씟"#, r#"씟"#, r#"씟"#, r#"씟"#, r#"씟"#),
+        (r#"씠"#, r#"씠"#, r#"씠"#, r#"씠"#, r#"씠"#),
+        (r#"씡"#, r#"씡"#, r#"씡"#, r#"씡"#, r#"씡"#),
+        (r#"씢"#, r#"씢"#, r#"씢"#, r#"씢"#, r#"씢"#),
+        (r#"씣"#, r#"씣"#, r#"씣"#, r#"씣"#, r#"씣"#),
+        (r#"씤"#, r#"씤"#, r#"씤"#, r#"씤"#, r#"씤"#),
+        (r#"씥"#, r#"씥"#, r#"씥"#, r#"씥"#, r#"씥"#),
+        (r#"씦"#, r#"씦"#, r#"씦"#, r#"씦"#, r#"씦"#),
+        (r#"씧"#, r#"씧"#, r#"씧"#, r#"씧"#, r#"씧"#),
+        (r#"씨"#, r#"씨"#, r#"씨"#, r#"씨"#, r#"씨"#),
+        (r#"씩"#, r#"씩"#, r#"씩"#, r#"씩"#, r#"씩"#),
+        (r#"씪"#, r#"씪"#, r#"씪"#, r#"씪"#, r#"씪"#),
+        (r#"씫"#, r#"씫"#, r#"씫"#, r#"씫"#, r#"씫"#),
+        (r#"씬"#, r#"씬"#, r#"씬"#, r#"씬"#, r#"씬"#),
+        (r#"씭"#, r#"씭"#, r#"씭"#, r#"씭"#, r#"씭"#),
+        (r#"씮"#, r#"씮"#, r#"씮"#, r#"씮"#, r#"씮"#),
+        (r#"씯"#, r#"씯"#, r#"씯"#, r#"씯"#, r#"씯"#),
+        (r#"씰"#, r#"씰"#, r#"씰"#, r#"씰"#, r#"씰"#),
+        (r#"씱"#, r#"씱"#, r#"씱"#, r#"씱"#, r#"씱"#),
+        (r#"씲"#, r#"씲"#, r#"씲"#, r#"씲"#, r#"씲"#),
+        (r#"씳"#, r#"씳"#, r#"씳"#, r#"씳"#, r#"씳"#),
+        (r#"씴"#, r#"씴"#, r#"씴"#, r#"씴"#, r#"씴"#),
+        (r#"씵"#, r#"씵"#, r#"씵"#, r#"씵"#, r#"씵"#),
+        (r#"씶"#, r#"씶"#, r#"씶"#, r#"씶"#, r#"씶"#),
+        (r#"씷"#, r#"씷"#, r#"씷"#, r#"씷"#, r#"씷"#),
+        (r#"씸"#, r#"씸"#, r#"씸"#, r#"씸"#, r#"씸"#),
+        (r#"씹"#, r#"씹"#, r#"씹"#, r#"씹"#, r#"씹"#),
+        (r#"씺"#, r#"씺"#, r#"씺"#, r#"씺"#, r#"씺"#),
+        (r#"씻"#, r#"씻"#, r#"씻"#, r#"씻"#, r#"씻"#),
+        (r#"씼"#, r#"씼"#, r#"씼"#, r#"씼"#, r#"씼"#),
+        (r#"씽"#, r#"씽"#, r#"씽"#, r#"씽"#, r#"씽"#),
+        (r#"씾"#, r#"씾"#, r#"씾"#, r#"씾"#, r#"씾"#),
+        (r#"씿"#, r#"씿"#, r#"씿"#, r#"씿"#, r#"씿"#),
+        (r#"앀"#, r#"앀"#, r#"앀"#, r#"앀"#, r#"앀"#),
+        (r#"앁"#, r#"앁"#, r#"앁"#, r#"앁"#, r#"앁"#),
+        (r#"앂"#, r#"앂"#, r#"앂"#, r#"앂"#, r#"앂"#),
+        (r#"앃"#, r#"앃"#, r#"앃"#, r#"앃"#, r#"앃"#),
+        (r#"아"#, r#"아"#, r#"아"#, r#"아"#, r#"아"#),
+        (r#"악"#, r#"악"#, r#"악"#, r#"악"#, r#"악"#),
+        (r#"앆"#, r#"앆"#, r#"앆"#, r#"앆"#, r#"앆"#),
+        (r#"앇"#, r#"앇"#, r#"앇"#, r#"앇"#, r#"앇"#),
+        (r#"안"#, r#"안"#, r#"안"#, r#"안"#, r#"안"#),
+        (r#"앉"#, r#"앉"#, r#"앉"#, r#"앉"#, r#"앉"#),
+        (r#"않"#, r#"않"#, r#"않"#, r#"않"#, r#"않"#),
+        (r#"앋"#, r#"앋"#, r#"앋"#, r#"앋"#, r#"앋"#),
+        (r#"알"#, r#"알"#, r#"알"#, r#"알"#, r#"알"#),
+        (r#"앍"#, r#"앍"#, r#"앍"#, r#"앍"#, r#"앍"#),
+        (r#"앎"#, r#"앎"#, r#"앎"#, r#"앎"#, r#"앎"#),
+        (r#"앏"#, r#"앏"#, r#"앏"#, r#"앏"#, r#"앏"#),
+        (r#"앐"#, r#"앐"#, r#"앐"#, r#"앐"#, r#"앐"#),
+        (r#"앑"#, r#"앑"#, r#"앑"#, r#"앑"#, r#"앑"#),
+        (r#"앒"#, r#"앒"#, r#"앒"#, r#"앒"#, r#"앒"#),
+        (r#"앓"#, r#"앓"#, r#"앓"#, r#"앓"#, r#"앓"#),
+        (r#"암"#, r#"암"#, r#"암"#, r#"암"#, r#"암"#),
+        (r#"압"#, r#"압"#, r#"압"#, r#"압"#, r#"압"#),
+        (r#"앖"#, r#"앖"#, r#"앖"#, r#"앖"#, r#"앖"#),
+        (r#"앗"#, r#"앗"#, r#"앗"#, r#"앗"#, r#"앗"#),
+        (r#"았"#, r#"았"#, r#"았"#, r#"았"#, r#"았"#),
+        (r#"앙"#, r#"앙"#, r#"앙"#, r#"앙"#, r#"앙"#),
+        (r#"앚"#, r#"앚"#, r#"앚"#, r#"앚"#, r#"앚"#),
+        (r#"앛"#, r#"앛"#, r#"앛"#, r#"앛"#, r#"앛"#),
+        (r#"앜"#, r#"앜"#, r#"앜"#, r#"앜"#, r#"앜"#),
+        (r#"앝"#, r#"앝"#, r#"앝"#, r#"앝"#, r#"앝"#),
+        (r#"앞"#, r#"앞"#, r#"앞"#, r#"앞"#, r#"앞"#),
+        (r#"앟"#, r#"앟"#, r#"앟"#, r#"앟"#, r#"앟"#),
+        (r#"애"#, r#"애"#, r#"애"#, r#"애"#, r#"애"#),
+        (r#"액"#, r#"액"#, r#"액"#, r#"액"#, r#"액"#),
+        (r#"앢"#, r#"앢"#, r#"앢"#, r#"앢"#, r#"앢"#),
+        (r#"앣"#, r#"앣"#, r#"앣"#, r#"앣"#, r#"앣"#),
+        (r#"앤"#, r#"앤"#, r#"앤"#, r#"앤"#, r#"앤"#),
+        (r#"앥"#, r#"앥"#, r#"앥"#, r#"앥"#, r#"앥"#),
+        (r#"앦"#, r#"앦"#, r#"앦"#, r#"앦"#, r#"앦"#),
+        (r#"앧"#, r#"앧"#, r#"앧"#, r#"앧"#, r#"앧"#),
+        (r#"앨"#, r#"앨"#, r#"앨"#, r#"앨"#, r#"앨"#),
+        (r#"앩"#, r#"앩"#, r#"앩"#, r#"앩"#, r#"앩"#),
+        (r#"앪"#, r#"앪"#, r#"앪"#, r#"앪"#, r#"앪"#),
+        (r#"앫"#, r#"앫"#, r#"앫"#, r#"앫"#, r#"앫"#),
+        (r#"앬"#, r#"앬"#, r#"앬"#, r#"앬"#, r#"앬"#),
+        (r#"앭"#, r#"앭"#, r#"앭"#, r#"앭"#, r#"앭"#),
+        (r#"앮"#, r#"앮"#, r#"앮"#, r#"앮"#, r#"앮"#),
+        (r#"앯"#, r#"앯"#, r#"앯"#, r#"앯"#, r#"앯"#),
+        (r#"앰"#, r#"앰"#, r#"앰"#, r#"앰"#, r#"앰"#),
+        (r#"앱"#, r#"앱"#, r#"앱"#, r#"앱"#, r#"앱"#),
+        (r#"앲"#, r#"앲"#, r#"앲"#, r#"앲"#, r#"앲"#),
+        (r#"앳"#, r#"앳"#, r#"앳"#, r#"앳"#, r#"앳"#),
+        (r#"앴"#, r#"앴"#, r#"앴"#, r#"앴"#, r#"앴"#),
+        (r#"앵"#, r#"앵"#, r#"앵"#, r#"앵"#, r#"앵"#),
+        (r#"앶"#, r#"앶"#, r#"앶"#, r#"앶"#, r#"앶"#),
+        (r#"앷"#, r#"앷"#, r#"앷"#, r#"앷"#, r#"앷"#),
+        (r#"앸"#, r#"앸"#, r#"앸"#, r#"앸"#, r#"앸"#),
+        (r#"앹"#, r#"앹"#, r#"앹"#, r#"앹"#, r#"앹"#),
+        (r#"앺"#, r#"앺"#, r#"앺"#, r#"앺"#, r#"앺"#),
+        (r#"앻"#, r#"앻"#, r#"앻"#, r#"앻"#, r#"앻"#),
+        (r#"야"#, r#"야"#, r#"야"#, r#"야"#, r#"야"#),
+        (r#"약"#, r#"약"#, r#"약"#, r#"약"#, r#"약"#),
+        (r#"앾"#, r#"앾"#, r#"앾"#, r#"앾"#, r#"앾"#),
+        (r#"앿"#, r#"앿"#, r#"앿"#, r#"앿"#, r#"앿"#),
+        (r#"얀"#, r#"얀"#, r#"얀"#, r#"얀"#, r#"얀"#),
+        (r#"얁"#, r#"얁"#, r#"얁"#, r#"얁"#, r#"얁"#),
+        (r#"얂"#, r#"얂"#, r#"얂"#, r#"얂"#, r#"얂"#),
+        (r#"얃"#, r#"얃"#, r#"얃"#, r#"얃"#, r#"얃"#),
+        (r#"얄"#, r#"얄"#, r#"얄"#, r#"얄"#, r#"얄"#),
+        (r#"얅"#, r#"얅"#, r#"얅"#, r#"얅"#, r#"얅"#),
+        (r#"얆"#, r#"얆"#, r#"얆"#, r#"얆"#, r#"얆"#),
+        (r#"얇"#, r#"얇"#, r#"얇"#, r#"얇"#, r#"얇"#),
+        (r#"얈"#, r#"얈"#, r#"얈"#, r#"얈"#, r#"얈"#),
+        (r#"얉"#, r#"얉"#, r#"얉"#, r#"얉"#, r#"얉"#),
+        (r#"얊"#, r#"얊"#, r#"얊"#, r#"얊"#, r#"얊"#),
+        (r#"얋"#, r#"얋"#, r#"얋"#, r#"얋"#, r#"얋"#),
+        (r#"얌"#, r#"얌"#, r#"얌"#, r#"얌"#, r#"얌"#),
+        (r#"얍"#, r#"얍"#, r#"얍"#, r#"얍"#, r#"얍"#),
+        (r#"얎"#, r#"얎"#, r#"얎"#, r#"얎"#, r#"얎"#),
+        (r#"얏"#, r#"얏"#, r#"얏"#, r#"얏"#, r#"얏"#),
+        (r#"얐"#, r#"얐"#, r#"얐"#, r#"얐"#, r#"얐"#),
+        (r#"양"#, r#"양"#, r#"양"#, r#"양"#, r#"양"#),
+        (r#"얒"#, r#"얒"#, r#"얒"#, r#"얒"#, r#"얒"#),
+        (r#"얓"#, r#"얓"#, r#"얓"#, r#"얓"#, r#"얓"#),
+        (r#"얔"#, r#"얔"#, r#"얔"#, r#"얔"#, r#"얔"#),
+        (r#"얕"#, r#"얕"#, r#"얕"#, r#"얕"#, r#"얕"#),
+        (r#"얖"#, r#"얖"#, r#"얖"#, r#"얖"#, r#"얖"#),
+        (r#"얗"#, r#"얗"#, r#"얗"#, r#"얗"#, r#"얗"#),
+        (r#"얘"#, r#"얘"#, r#"얘"#, r#"얘"#, r#"얘"#),
+        (r#"얙"#, r#"얙"#, r#"얙"#, r#"얙"#, r#"얙"#),
+        (r#"얚"#, r#"얚"#, r#"얚"#, r#"얚"#, r#"얚"#),
+        (r#"얛"#, r#"얛"#, r#"얛"#, r#"얛"#, r#"얛"#),
+        (r#"얜"#, r#"얜"#, r#"얜"#, r#"얜"#, r#"얜"#),
+        (r#"얝"#, r#"얝"#, r#"얝"#, r#"얝"#, r#"얝"#),
+        (r#"얞"#, r#"얞"#, r#"얞"#, r#"얞"#, r#"얞"#),
+        (r#"얟"#, r#"얟"#, r#"얟"#, r#"얟"#, r#"얟"#),
+        (r#"얠"#, r#"얠"#, r#"얠"#, r#"얠"#, r#"얠"#),
+        (r#"얡"#, r#"얡"#, r#"얡"#, r#"얡"#, r#"얡"#),
+        (r#"얢"#, r#"얢"#, r#"얢"#, r#"얢"#, r#"얢"#),
+        (r#"얣"#, r#"얣"#, r#"얣"#, r#"얣"#, r#"얣"#),
+        (r#"얤"#, r#"얤"#, r#"얤"#, r#"얤"#, r#"얤"#),
+        (r#"얥"#, r#"얥"#, r#"얥"#, r#"얥"#, r#"얥"#),
+        (r#"얦"#, r#"얦"#, r#"얦"#, r#"얦"#, r#"얦"#),
+        (r#"얧"#, r#"얧"#, r#"얧"#, r#"얧"#, r#"얧"#),
+        (r#"얨"#, r#"얨"#, r#"얨"#, r#"얨"#, r#"얨"#),
+        (r#"얩"#, r#"얩"#, r#"얩"#, r#"얩"#, r#"얩"#),
+        (r#"얪"#, r#"얪"#, r#"얪"#, r#"얪"#, r#"얪"#),
+        (r#"얫"#, r#"얫"#, r#"얫"#, r#"얫"#, r#"얫"#),
+        (r#"얬"#, r#"얬"#, r#"얬"#, r#"얬"#, r#"얬"#),
+        (r#"얭"#, r#"얭"#, r#"얭"#, r#"얭"#, r#"얭"#),
+        (r#"얮"#, r#"얮"#, r#"얮"#, r#"얮"#, r#"얮"#),
+        (r#"얯"#, r#"얯"#, r#"얯"#, r#"얯"#, r#"얯"#),
+        (r#"얰"#, r#"얰"#, r#"얰"#, r#"얰"#, r#"얰"#),
+        (r#"얱"#, r#"얱"#, r#"얱"#, r#"얱"#, r#"얱"#),
+        (r#"얲"#, r#"얲"#, r#"얲"#, r#"얲"#, r#"얲"#),
+        (r#"얳"#, r#"얳"#, r#"얳"#, r#"얳"#, r#"얳"#),
+        (r#"어"#, r#"어"#, r#"어"#, r#"어"#, r#"어"#),
+        (r#"억"#, r#"억"#, r#"억"#, r#"억"#, r#"억"#),
+        (r#"얶"#, r#"얶"#, r#"얶"#, r#"얶"#, r#"얶"#),
+        (r#"얷"#, r#"얷"#, r#"얷"#, r#"얷"#, r#"얷"#),
+        (r#"언"#, r#"언"#, r#"언"#, r#"언"#, r#"언"#),
+        (r#"얹"#, r#"얹"#, r#"얹"#, r#"얹"#, r#"얹"#),
+        (r#"얺"#, r#"얺"#, r#"얺"#, r#"얺"#, r#"얺"#),
+        (r#"얻"#, r#"얻"#, r#"얻"#, r#"얻"#, r#"얻"#),
+        (r#"얼"#, r#"얼"#, r#"얼"#, r#"얼"#, r#"얼"#),
+        (r#"얽"#, r#"얽"#, r#"얽"#, r#"얽"#, r#"얽"#),
+        (r#"얾"#, r#"얾"#, r#"얾"#, r#"얾"#, r#"얾"#),
+        (r#"얿"#, r#"얿"#, r#"얿"#, r#"얿"#, r#"얿"#),
+        (r#"엀"#, r#"엀"#, r#"엀"#, r#"엀"#, r#"엀"#),
+        (r#"엁"#, r#"엁"#, r#"엁"#, r#"엁"#, r#"엁"#),
+        (r#"엂"#, r#"엂"#, r#"엂"#, r#"엂"#, r#"엂"#),
+        (r#"엃"#, r#"엃"#, r#"엃"#, r#"엃"#, r#"엃"#),
+        (r#"엄"#, r#"엄"#, r#"엄"#, r#"엄"#, r#"엄"#),
+        (r#"업"#, r#"업"#, r#"업"#, r#"업"#, r#"업"#),
+        (r#"없"#, r#"없"#, r#"없"#, r#"없"#, r#"없"#),
+        (r#"엇"#, r#"엇"#, r#"엇"#, r#"엇"#, r#"엇"#),
+        (r#"었"#, r#"었"#, r#"었"#, r#"었"#, r#"었"#),
+        (r#"엉"#, r#"엉"#, r#"엉"#, r#"엉"#, r#"엉"#),
+        (r#"엊"#, r#"엊"#, r#"엊"#, r#"엊"#, r#"엊"#),
+        (r#"엋"#, r#"엋"#, r#"엋"#, r#"엋"#, r#"엋"#),
+        (r#"엌"#, r#"엌"#, r#"엌"#, r#"엌"#, r#"엌"#),
+        (r#"엍"#, r#"엍"#, r#"엍"#, r#"엍"#, r#"엍"#),
+        (r#"엎"#, r#"엎"#, r#"엎"#, r#"엎"#, r#"엎"#),
+        (r#"엏"#, r#"엏"#, r#"엏"#, r#"엏"#, r#"엏"#),
+        (r#"에"#, r#"에"#, r#"에"#, r#"에"#, r#"에"#),
+        (r#"엑"#, r#"엑"#, r#"엑"#, r#"엑"#, r#"엑"#),
+        (r#"엒"#, r#"엒"#, r#"엒"#, r#"엒"#, r#"엒"#),
+        (r#"엓"#, r#"엓"#, r#"엓"#, r#"엓"#, r#"엓"#),
+        (r#"엔"#, r#"엔"#, r#"엔"#, r#"엔"#, r#"엔"#),
+        (r#"엕"#, r#"엕"#, r#"엕"#, r#"엕"#, r#"엕"#),
+        (r#"엖"#, r#"엖"#, r#"엖"#, r#"엖"#, r#"엖"#),
+        (r#"엗"#, r#"엗"#, r#"엗"#, r#"엗"#, r#"엗"#),
+        (r#"엘"#, r#"엘"#, r#"엘"#, r#"엘"#, r#"엘"#),
+        (r#"엙"#, r#"엙"#, r#"엙"#, r#"엙"#, r#"엙"#),
+        (r#"엚"#, r#"엚"#, r#"엚"#, r#"엚"#, r#"엚"#),
+        (r#"엛"#, r#"엛"#, r#"엛"#, r#"엛"#, r#"엛"#),
+        (r#"엜"#, r#"엜"#, r#"엜"#, r#"엜"#, r#"엜"#),
+        (r#"엝"#, r#"엝"#, r#"엝"#, r#"엝"#, r#"엝"#),
+        (r#"엞"#, r#"엞"#, r#"엞"#, r#"엞"#, r#"엞"#),
+        (r#"엟"#, r#"엟"#, r#"엟"#, r#"엟"#, r#"엟"#),
+        (r#"엠"#, r#"엠"#, r#"엠"#, r#"엠"#, r#"엠"#),
+        (r#"엡"#, r#"엡"#, r#"엡"#, r#"엡"#, r#"엡"#),
+        (r#"엢"#, r#"엢"#, r#"엢"#, r#"엢"#, r#"엢"#),
+        (r#"엣"#, r#"엣"#, r#"엣"#, r#"엣"#, r#"엣"#),
+        (r#"엤"#, r#"엤"#, r#"엤"#, r#"엤"#, r#"엤"#),
+        (r#"엥"#, r#"엥"#, r#"엥"#, r#"엥"#, r#"엥"#),
+        (r#"엦"#, r#"엦"#, r#"엦"#, r#"엦"#, r#"엦"#),
+        (r#"엧"#, r#"엧"#, r#"엧"#, r#"엧"#, r#"엧"#),
+        (r#"엨"#, r#"엨"#, r#"엨"#, r#"엨"#, r#"엨"#),
+        (r#"엩"#, r#"엩"#, r#"엩"#, r#"엩"#, r#"엩"#),
+        (r#"엪"#, r#"엪"#, r#"엪"#, r#"엪"#, r#"엪"#),
+        (r#"엫"#, r#"엫"#, r#"엫"#, r#"엫"#, r#"엫"#),
+        (r#"여"#, r#"여"#, r#"여"#, r#"여"#, r#"여"#),
+        (r#"역"#, r#"역"#, r#"역"#, r#"역"#, r#"역"#),
+        (r#"엮"#, r#"엮"#, r#"엮"#, r#"엮"#, r#"엮"#),
+        (r#"엯"#, r#"엯"#, r#"엯"#, r#"엯"#, r#"엯"#),
+        (r#"연"#, r#"연"#, r#"연"#, r#"연"#, r#"연"#),
+        (r#"엱"#, r#"엱"#, r#"엱"#, r#"엱"#, r#"엱"#),
+        (r#"엲"#, r#"엲"#, r#"엲"#, r#"엲"#, r#"엲"#),
+        (r#"엳"#, r#"엳"#, r#"엳"#, r#"엳"#, r#"엳"#),
+        (r#"열"#, r#"열"#, r#"열"#, r#"열"#, r#"열"#),
+        (r#"엵"#, r#"엵"#, r#"엵"#, r#"엵"#, r#"엵"#),
+        (r#"엶"#, r#"엶"#, r#"엶"#, r#"엶"#, r#"엶"#),
+        (r#"엷"#, r#"엷"#, r#"엷"#, r#"엷"#, r#"엷"#),
+        (r#"엸"#, r#"엸"#, r#"엸"#, r#"엸"#, r#"엸"#),
+        (r#"엹"#, r#"엹"#, r#"엹"#, r#"엹"#, r#"엹"#),
+        (r#"엺"#, r#"엺"#, r#"엺"#, r#"엺"#, r#"엺"#),
+        (r#"엻"#, r#"엻"#, r#"엻"#, r#"엻"#, r#"엻"#),
+        (r#"염"#, r#"염"#, r#"염"#, r#"염"#, r#"염"#),
+        (r#"엽"#, r#"엽"#, r#"엽"#, r#"엽"#, r#"엽"#),
+        (r#"엾"#, r#"엾"#, r#"엾"#, r#"엾"#, r#"엾"#),
+        (r#"엿"#, r#"엿"#, r#"엿"#, r#"엿"#, r#"엿"#),
+        (r#"였"#, r#"였"#, r#"였"#, r#"였"#, r#"였"#),
+        (r#"영"#, r#"영"#, r#"영"#, r#"영"#, r#"영"#),
+        (r#"옂"#, r#"옂"#, r#"옂"#, r#"옂"#, r#"옂"#),
+        (r#"옃"#, r#"옃"#, r#"옃"#, r#"옃"#, r#"옃"#),
+        (r#"옄"#, r#"옄"#, r#"옄"#, r#"옄"#, r#"옄"#),
+        (r#"옅"#, r#"옅"#, r#"옅"#, r#"옅"#, r#"옅"#),
+        (r#"옆"#, r#"옆"#, r#"옆"#, r#"옆"#, r#"옆"#),
+        (r#"옇"#, r#"옇"#, r#"옇"#, r#"옇"#, r#"옇"#),
+        (r#"예"#, r#"예"#, r#"예"#, r#"예"#, r#"예"#),
+        (r#"옉"#, r#"옉"#, r#"옉"#, r#"옉"#, r#"옉"#),
+        (r#"옊"#, r#"옊"#, r#"옊"#, r#"옊"#, r#"옊"#),
+        (r#"옋"#, r#"옋"#, r#"옋"#, r#"옋"#, r#"옋"#),
+        (r#"옌"#, r#"옌"#, r#"옌"#, r#"옌"#, r#"옌"#),
+        (r#"옍"#, r#"옍"#, r#"옍"#, r#"옍"#, r#"옍"#),
+        (r#"옎"#, r#"옎"#, r#"옎"#, r#"옎"#, r#"옎"#),
+        (r#"옏"#, r#"옏"#, r#"옏"#, r#"옏"#, r#"옏"#),
+        (r#"옐"#, r#"옐"#, r#"옐"#, r#"옐"#, r#"옐"#),
+        (r#"옑"#, r#"옑"#, r#"옑"#, r#"옑"#, r#"옑"#),
+        (r#"옒"#, r#"옒"#, r#"옒"#, r#"옒"#, r#"옒"#),
+        (r#"옓"#, r#"옓"#, r#"옓"#, r#"옓"#, r#"옓"#),
+        (r#"옔"#, r#"옔"#, r#"옔"#, r#"옔"#, r#"옔"#),
+        (r#"옕"#, r#"옕"#, r#"옕"#, r#"옕"#, r#"옕"#),
+        (r#"옖"#, r#"옖"#, r#"옖"#, r#"옖"#, r#"옖"#),
+        (r#"옗"#, r#"옗"#, r#"옗"#, r#"옗"#, r#"옗"#),
+        (r#"옘"#, r#"옘"#, r#"옘"#, r#"옘"#, r#"옘"#),
+        (r#"옙"#, r#"옙"#, r#"옙"#, r#"옙"#, r#"옙"#),
+        (r#"옚"#, r#"옚"#, r#"옚"#, r#"옚"#, r#"옚"#),
+        (r#"옛"#, r#"옛"#, r#"옛"#, r#"옛"#, r#"옛"#),
+        (r#"옜"#, r#"옜"#, r#"옜"#, r#"옜"#, r#"옜"#),
+        (r#"옝"#, r#"옝"#, r#"옝"#, r#"옝"#, r#"옝"#),
+        (r#"옞"#, r#"옞"#, r#"옞"#, r#"옞"#, r#"옞"#),
+        (r#"옟"#, r#"옟"#, r#"옟"#, r#"옟"#, r#"옟"#),
+        (r#"옠"#, r#"옠"#, r#"옠"#, r#"옠"#, r#"옠"#),
+        (r#"옡"#, r#"옡"#, r#"옡"#, r#"옡"#, r#"옡"#),
+        (r#"옢"#, r#"옢"#, r#"옢"#, r#"옢"#, r#"옢"#),
+        (r#"옣"#, r#"옣"#, r#"옣"#, r#"옣"#, r#"옣"#),
+        (r#"오"#, r#"오"#, r#"오"#, r#"오"#, r#"오"#),
+        (r#"옥"#, r#"옥"#, r#"옥"#, r#"옥"#, r#"옥"#),
+        (r#"옦"#, r#"옦"#, r#"옦"#, r#"옦"#, r#"옦"#),
+        (r#"옧"#, r#"옧"#, r#"옧"#, r#"옧"#, r#"옧"#),
+        (r#"온"#, r#"온"#, r#"온"#, r#"온"#, r#"온"#),
+        (r#"옩"#, r#"옩"#, r#"옩"#, r#"옩"#, r#"옩"#),
+        (r#"옪"#, r#"옪"#, r#"옪"#, r#"옪"#, r#"옪"#),
+        (r#"옫"#, r#"옫"#, r#"옫"#, r#"옫"#, r#"옫"#),
+        (r#"올"#, r#"올"#, r#"올"#, r#"올"#, r#"올"#),
+        (r#"옭"#, r#"옭"#, r#"옭"#, r#"옭"#, r#"옭"#),
+        (r#"옮"#, r#"옮"#, r#"옮"#, r#"옮"#, r#"옮"#),
+        (r#"옯"#, r#"옯"#, r#"옯"#, r#"옯"#, r#"옯"#),
+        (r#"옰"#, r#"옰"#, r#"옰"#, r#"옰"#, r#"옰"#),
+        (r#"옱"#, r#"옱"#, r#"옱"#, r#"옱"#, r#"옱"#),
+        (r#"옲"#, r#"옲"#, r#"옲"#, r#"옲"#, r#"옲"#),
+        (r#"옳"#, r#"옳"#, r#"옳"#, r#"옳"#, r#"옳"#),
+        (r#"옴"#, r#"옴"#, r#"옴"#, r#"옴"#, r#"옴"#),
+        (r#"옵"#, r#"옵"#, r#"옵"#, r#"옵"#, r#"옵"#),
+        (r#"옶"#, r#"옶"#, r#"옶"#, r#"옶"#, r#"옶"#),
+        (r#"옷"#, r#"옷"#, r#"옷"#, r#"옷"#, r#"옷"#),
+        (r#"옸"#, r#"옸"#, r#"옸"#, r#"옸"#, r#"옸"#),
+        (r#"옹"#, r#"옹"#, r#"옹"#, r#"옹"#, r#"옹"#),
+        (r#"옺"#, r#"옺"#, r#"옺"#, r#"옺"#, r#"옺"#),
+        (r#"옻"#, r#"옻"#, r#"옻"#, r#"옻"#, r#"옻"#),
+        (r#"옼"#, r#"옼"#, r#"옼"#, r#"옼"#, r#"옼"#),
+        (r#"옽"#, r#"옽"#, r#"옽"#, r#"옽"#, r#"옽"#),
+        (r#"옾"#, r#"옾"#, r#"옾"#, r#"옾"#, r#"옾"#),
+        (r#"옿"#, r#"옿"#, r#"옿"#, r#"옿"#, r#"옿"#),
+        (r#"와"#, r#"와"#, r#"와"#, r#"와"#, r#"와"#),
+        (r#"왁"#, r#"왁"#, r#"왁"#, r#"왁"#, r#"왁"#),
+        (r#"왂"#, r#"왂"#, r#"왂"#, r#"왂"#, r#"왂"#),
+        (r#"왃"#, r#"왃"#, r#"왃"#, r#"왃"#, r#"왃"#),
+        (r#"완"#, r#"완"#, r#"완"#, r#"완"#, r#"완"#),
+        (r#"왅"#, r#"왅"#, r#"왅"#, r#"왅"#, r#"왅"#),
+        (r#"왆"#, r#"왆"#, r#"왆"#, r#"왆"#, r#"왆"#),
+        (r#"왇"#, r#"왇"#, r#"왇"#, r#"왇"#, r#"왇"#),
+        (r#"왈"#, r#"왈"#, r#"왈"#, r#"왈"#, r#"왈"#),
+        (r#"왉"#, r#"왉"#, r#"왉"#, r#"왉"#, r#"왉"#),
+        (r#"왊"#, r#"왊"#, r#"왊"#, r#"왊"#, r#"왊"#),
+        (r#"왋"#, r#"왋"#, r#"왋"#, r#"왋"#, r#"왋"#),
+        (r#"왌"#, r#"왌"#, r#"왌"#, r#"왌"#, r#"왌"#),
+        (r#"왍"#, r#"왍"#, r#"왍"#, r#"왍"#, r#"왍"#),
+        (r#"왎"#, r#"왎"#, r#"왎"#, r#"왎"#, r#"왎"#),
+        (r#"왏"#, r#"왏"#, r#"왏"#, r#"왏"#, r#"왏"#),
+        (r#"왐"#, r#"왐"#, r#"왐"#, r#"왐"#, r#"왐"#),
+        (r#"왑"#, r#"왑"#, r#"왑"#, r#"왑"#, r#"왑"#),
+        (r#"왒"#, r#"왒"#, r#"왒"#, r#"왒"#, r#"왒"#),
+        (r#"왓"#, r#"왓"#, r#"왓"#, r#"왓"#, r#"왓"#),
+        (r#"왔"#, r#"왔"#, r#"왔"#, r#"왔"#, r#"왔"#),
+        (r#"왕"#, r#"왕"#, r#"왕"#, r#"왕"#, r#"왕"#),
+        (r#"왖"#, r#"왖"#, r#"왖"#, r#"왖"#, r#"왖"#),
+        (r#"왗"#, r#"왗"#, r#"왗"#, r#"왗"#, r#"왗"#),
+        (r#"왘"#, r#"왘"#, r#"왘"#, r#"왘"#, r#"왘"#),
+        (r#"왙"#, r#"왙"#, r#"왙"#, r#"왙"#, r#"왙"#),
+        (r#"왚"#, r#"왚"#, r#"왚"#, r#"왚"#, r#"왚"#),
+        (r#"왛"#, r#"왛"#, r#"왛"#, r#"왛"#, r#"왛"#),
+        (r#"왜"#, r#"왜"#, r#"왜"#, r#"왜"#, r#"왜"#),
+        (r#"왝"#, r#"왝"#, r#"왝"#, r#"왝"#, r#"왝"#),
+        (r#"왞"#, r#"왞"#, r#"왞"#, r#"왞"#, r#"왞"#),
+        (r#"왟"#, r#"왟"#, r#"왟"#, r#"왟"#, r#"왟"#),
+        (r#"왠"#, r#"왠"#, r#"왠"#, r#"왠"#, r#"왠"#),
+        (r#"왡"#, r#"왡"#, r#"왡"#, r#"왡"#, r#"왡"#),
+        (r#"왢"#, r#"왢"#, r#"왢"#, r#"왢"#, r#"왢"#),
+        (r#"왣"#, r#"왣"#, r#"왣"#, r#"왣"#, r#"왣"#),
+        (r#"왤"#, r#"왤"#, r#"왤"#, r#"왤"#, r#"왤"#),
+        (r#"왥"#, r#"왥"#, r#"왥"#, r#"왥"#, r#"왥"#),
+        (r#"왦"#, r#"왦"#, r#"왦"#, r#"왦"#, r#"왦"#),
+        (r#"왧"#, r#"왧"#, r#"왧"#, r#"왧"#, r#"왧"#),
+        (r#"왨"#, r#"왨"#, r#"왨"#, r#"왨"#, r#"왨"#),
+        (r#"왩"#, r#"왩"#, r#"왩"#, r#"왩"#, r#"왩"#),
+        (r#"왪"#, r#"왪"#, r#"왪"#, r#"왪"#, r#"왪"#),
+        (r#"왫"#, r#"왫"#, r#"왫"#, r#"왫"#, r#"왫"#),
+        (r#"왬"#, r#"왬"#, r#"왬"#, r#"왬"#, r#"왬"#),
+        (r#"왭"#, r#"왭"#, r#"왭"#, r#"왭"#, r#"왭"#),
+        (r#"왮"#, r#"왮"#, r#"왮"#, r#"왮"#, r#"왮"#),
+        (r#"왯"#, r#"왯"#, r#"왯"#, r#"왯"#, r#"왯"#),
+        (r#"왰"#, r#"왰"#, r#"왰"#, r#"왰"#, r#"왰"#),
+        (r#"왱"#, r#"왱"#, r#"왱"#, r#"왱"#, r#"왱"#),
+        (r#"왲"#, r#"왲"#, r#"왲"#, r#"왲"#, r#"왲"#),
+        (r#"왳"#, r#"왳"#, r#"왳"#, r#"왳"#, r#"왳"#),
+        (r#"왴"#, r#"왴"#, r#"왴"#, r#"왴"#, r#"왴"#),
+        (r#"왵"#, r#"왵"#, r#"왵"#, r#"왵"#, r#"왵"#),
+        (r#"왶"#, r#"왶"#, r#"왶"#, r#"왶"#, r#"왶"#),
+        (r#"왷"#, r#"왷"#, r#"왷"#, r#"왷"#, r#"왷"#),
+        (r#"외"#, r#"외"#, r#"외"#, r#"외"#, r#"외"#),
+        (r#"왹"#, r#"왹"#, r#"왹"#, r#"왹"#, r#"왹"#),
+        (r#"왺"#, r#"왺"#, r#"왺"#, r#"왺"#, r#"왺"#),
+        (r#"왻"#, r#"왻"#, r#"왻"#, r#"왻"#, r#"왻"#),
+        (r#"왼"#, r#"왼"#, r#"왼"#, r#"왼"#, r#"왼"#),
+        (r#"왽"#, r#"왽"#, r#"왽"#, r#"왽"#, r#"왽"#),
+        (r#"왾"#, r#"왾"#, r#"왾"#, r#"왾"#, r#"왾"#),
+        (r#"왿"#, r#"왿"#, r#"왿"#, r#"왿"#, r#"왿"#),
+        (r#"욀"#, r#"욀"#, r#"욀"#, r#"욀"#, r#"욀"#),
+        (r#"욁"#, r#"욁"#, r#"욁"#, r#"욁"#, r#"욁"#),
+        (r#"욂"#, r#"욂"#, r#"욂"#, r#"욂"#, r#"욂"#),
+        (r#"욃"#, r#"욃"#, r#"욃"#, r#"욃"#, r#"욃"#),
+        (r#"욄"#, r#"욄"#, r#"욄"#, r#"욄"#, r#"욄"#),
+        (r#"욅"#, r#"욅"#, r#"욅"#, r#"욅"#, r#"욅"#),
+        (r#"욆"#, r#"욆"#, r#"욆"#, r#"욆"#, r#"욆"#),
+        (r#"욇"#, r#"욇"#, r#"욇"#, r#"욇"#, r#"욇"#),
+        (r#"욈"#, r#"욈"#, r#"욈"#, r#"욈"#, r#"욈"#),
+        (r#"욉"#, r#"욉"#, r#"욉"#, r#"욉"#, r#"욉"#),
+        (r#"욊"#, r#"욊"#, r#"욊"#, r#"욊"#, r#"욊"#),
+        (r#"욋"#, r#"욋"#, r#"욋"#, r#"욋"#, r#"욋"#),
+        (r#"욌"#, r#"욌"#, r#"욌"#, r#"욌"#, r#"욌"#),
+        (r#"욍"#, r#"욍"#, r#"욍"#, r#"욍"#, r#"욍"#),
+        (r#"욎"#, r#"욎"#, r#"욎"#, r#"욎"#, r#"욎"#),
+        (r#"욏"#, r#"욏"#, r#"욏"#, r#"욏"#, r#"욏"#),
+        (r#"욐"#, r#"욐"#, r#"욐"#, r#"욐"#, r#"욐"#),
+        (r#"욑"#, r#"욑"#, r#"욑"#, r#"욑"#, r#"욑"#),
+        (r#"욒"#, r#"욒"#, r#"욒"#, r#"욒"#, r#"욒"#),
+        (r#"욓"#, r#"욓"#, r#"욓"#, r#"욓"#, r#"욓"#),
+        (r#"요"#, r#"요"#, r#"요"#, r#"요"#, r#"요"#),
+        (r#"욕"#, r#"욕"#, r#"욕"#, r#"욕"#, r#"욕"#),
+        (r#"욖"#, r#"욖"#, r#"욖"#, r#"욖"#, r#"욖"#),
+        (r#"욗"#, r#"욗"#, r#"욗"#, r#"욗"#, r#"욗"#),
+        (r#"욘"#, r#"욘"#, r#"욘"#, r#"욘"#, r#"욘"#),
+        (r#"욙"#, r#"욙"#, r#"욙"#, r#"욙"#, r#"욙"#),
+        (r#"욚"#, r#"욚"#, r#"욚"#, r#"욚"#, r#"욚"#),
+        (r#"욛"#, r#"욛"#, r#"욛"#, r#"욛"#, r#"욛"#),
+        (r#"욜"#, r#"욜"#, r#"욜"#, r#"욜"#, r#"욜"#),
+        (r#"욝"#, r#"욝"#, r#"욝"#, r#"욝"#, r#"욝"#),
+        (r#"욞"#, r#"욞"#, r#"욞"#, r#"욞"#, r#"욞"#),
+        (r#"욟"#, r#"욟"#, r#"욟"#, r#"욟"#, r#"욟"#),
+        (r#"욠"#, r#"욠"#, r#"욠"#, r#"욠"#, r#"욠"#),
+        (r#"욡"#, r#"욡"#, r#"욡"#, r#"욡"#, r#"욡"#),
+        (r#"욢"#, r#"욢"#, r#"욢"#, r#"욢"#, r#"욢"#),
+        (r#"욣"#, r#"욣"#, r#"욣"#, r#"욣"#, r#"욣"#),
+        (r#"욤"#, r#"욤"#, r#"욤"#, r#"욤"#, r#"욤"#),
+        (r#"욥"#, r#"욥"#, r#"욥"#, r#"욥"#, r#"욥"#),
+        (r#"욦"#, r#"욦"#, r#"욦"#, r#"욦"#, r#"욦"#),
+        (r#"욧"#, r#"욧"#, r#"욧"#, r#"욧"#, r#"욧"#),
+        (r#"욨"#, r#"욨"#, r#"욨"#, r#"욨"#, r#"욨"#),
+        (r#"용"#, r#"용"#, r#"용"#, r#"용"#, r#"용"#),
+        (r#"욪"#, r#"욪"#, r#"욪"#, r#"욪"#, r#"욪"#),
+        (r#"욫"#, r#"욫"#, r#"욫"#, r#"욫"#, r#"욫"#),
+        (r#"욬"#, r#"욬"#, r#"욬"#, r#"욬"#, r#"욬"#),
+        (r#"욭"#, r#"욭"#, r#"욭"#, r#"욭"#, r#"욭"#),
+        (r#"욮"#, r#"욮"#, r#"욮"#, r#"욮"#, r#"욮"#),
+        (r#"욯"#, r#"욯"#, r#"욯"#, r#"욯"#, r#"욯"#),
+        (r#"우"#, r#"우"#, r#"우"#, r#"우"#, r#"우"#),
+        (r#"욱"#, r#"욱"#, r#"욱"#, r#"욱"#, r#"욱"#),
+        (r#"욲"#, r#"욲"#, r#"욲"#, r#"욲"#, r#"욲"#),
+        (r#"욳"#, r#"욳"#, r#"욳"#, r#"욳"#, r#"욳"#),
+        (r#"운"#, r#"운"#, r#"운"#, r#"운"#, r#"운"#),
+        (r#"욵"#, r#"욵"#, r#"욵"#, r#"욵"#, r#"욵"#),
+        (r#"욶"#, r#"욶"#, r#"욶"#, r#"욶"#, r#"욶"#),
+        (r#"욷"#, r#"욷"#, r#"욷"#, r#"욷"#, r#"욷"#),
+        (r#"울"#, r#"울"#, r#"울"#, r#"울"#, r#"울"#),
+        (r#"욹"#, r#"욹"#, r#"욹"#, r#"욹"#, r#"욹"#),
+        (r#"욺"#, r#"욺"#, r#"욺"#, r#"욺"#, r#"욺"#),
+        (r#"욻"#, r#"욻"#, r#"욻"#, r#"욻"#, r#"욻"#),
+        (r#"욼"#, r#"욼"#, r#"욼"#, r#"욼"#, r#"욼"#),
+        (r#"욽"#, r#"욽"#, r#"욽"#, r#"욽"#, r#"욽"#),
+        (r#"욾"#, r#"욾"#, r#"욾"#, r#"욾"#, r#"욾"#),
+        (r#"욿"#, r#"욿"#, r#"욿"#, r#"욿"#, r#"욿"#),
+        (r#"움"#, r#"움"#, r#"움"#, r#"움"#, r#"움"#),
+        (r#"웁"#, r#"웁"#, r#"웁"#, r#"웁"#, r#"웁"#),
+        (r#"웂"#, r#"웂"#, r#"웂"#, r#"웂"#, r#"웂"#),
+        (r#"웃"#, r#"웃"#, r#"웃"#, r#"웃"#, r#"웃"#),
+        (r#"웄"#, r#"웄"#, r#"웄"#, r#"웄"#, r#"웄"#),
+        (r#"웅"#, r#"웅"#, r#"웅"#, r#"웅"#, r#"웅"#),
+        (r#"웆"#, r#"웆"#, r#"웆"#, r#"웆"#, r#"웆"#),
+        (r#"웇"#, r#"웇"#, r#"웇"#, r#"웇"#, r#"웇"#),
+        (r#"웈"#, r#"웈"#, r#"웈"#, r#"웈"#, r#"웈"#),
+        (r#"웉"#, r#"웉"#, r#"웉"#, r#"웉"#, r#"웉"#),
+        (r#"웊"#, r#"웊"#, r#"웊"#, r#"웊"#, r#"웊"#),
+        (r#"웋"#, r#"웋"#, r#"웋"#, r#"웋"#, r#"웋"#),
+        (r#"워"#, r#"워"#, r#"워"#, r#"워"#, r#"워"#),
+        (r#"웍"#, r#"웍"#, r#"웍"#, r#"웍"#, r#"웍"#),
+        (r#"웎"#, r#"웎"#, r#"웎"#, r#"웎"#, r#"웎"#),
+        (r#"웏"#, r#"웏"#, r#"웏"#, r#"웏"#, r#"웏"#),
+        (r#"원"#, r#"원"#, r#"원"#, r#"원"#, r#"원"#),
+        (r#"웑"#, r#"웑"#, r#"웑"#, r#"웑"#, r#"웑"#),
+        (r#"웒"#, r#"웒"#, r#"웒"#, r#"웒"#, r#"웒"#),
+        (r#"웓"#, r#"웓"#, r#"웓"#, r#"웓"#, r#"웓"#),
+        (r#"월"#, r#"월"#, r#"월"#, r#"월"#, r#"월"#),
+        (r#"웕"#, r#"웕"#, r#"웕"#, r#"웕"#, r#"웕"#),
+        (r#"웖"#, r#"웖"#, r#"웖"#, r#"웖"#, r#"웖"#),
+        (r#"웗"#, r#"웗"#, r#"웗"#, r#"웗"#, r#"웗"#),
+        (r#"웘"#, r#"웘"#, r#"웘"#, r#"웘"#, r#"웘"#),
+        (r#"웙"#, r#"웙"#, r#"웙"#, r#"웙"#, r#"웙"#),
+        (r#"웚"#, r#"웚"#, r#"웚"#, r#"웚"#, r#"웚"#),
+        (r#"웛"#, r#"웛"#, r#"웛"#, r#"웛"#, r#"웛"#),
+        (r#"웜"#, r#"웜"#, r#"웜"#, r#"웜"#, r#"웜"#),
+        (r#"웝"#, r#"웝"#, r#"웝"#, r#"웝"#, r#"웝"#),
+        (r#"웞"#, r#"웞"#, r#"웞"#, r#"웞"#, r#"웞"#),
+        (r#"웟"#, r#"웟"#, r#"웟"#, r#"웟"#, r#"웟"#),
+        (r#"웠"#, r#"웠"#, r#"웠"#, r#"웠"#, r#"웠"#),
+        (r#"웡"#, r#"웡"#, r#"웡"#, r#"웡"#, r#"웡"#),
+        (r#"웢"#, r#"웢"#, r#"웢"#, r#"웢"#, r#"웢"#),
+        (r#"웣"#, r#"웣"#, r#"웣"#, r#"웣"#, r#"웣"#),
+        (r#"웤"#, r#"웤"#, r#"웤"#, r#"웤"#, r#"웤"#),
+        (r#"웥"#, r#"웥"#, r#"웥"#, r#"웥"#, r#"웥"#),
+        (r#"웦"#, r#"웦"#, r#"웦"#, r#"웦"#, r#"웦"#),
+        (r#"웧"#, r#"웧"#, r#"웧"#, r#"웧"#, r#"웧"#),
+        (r#"웨"#, r#"웨"#, r#"웨"#, r#"웨"#, r#"웨"#),
+        (r#"웩"#, r#"웩"#, r#"웩"#, r#"웩"#, r#"웩"#),
+        (r#"웪"#, r#"웪"#, r#"웪"#, r#"웪"#, r#"웪"#),
+        (r#"웫"#, r#"웫"#, r#"웫"#, r#"웫"#, r#"웫"#),
+        (r#"웬"#, r#"웬"#, r#"웬"#, r#"웬"#, r#"웬"#),
+        (r#"웭"#, r#"웭"#, r#"웭"#, r#"웭"#, r#"웭"#),
+        (r#"웮"#, r#"웮"#, r#"웮"#, r#"웮"#, r#"웮"#),
+        (r#"웯"#, r#"웯"#, r#"웯"#, r#"웯"#, r#"웯"#),
+        (r#"웰"#, r#"웰"#, r#"웰"#, r#"웰"#, r#"웰"#),
+        (r#"웱"#, r#"웱"#, r#"웱"#, r#"웱"#, r#"웱"#),
+        (r#"웲"#, r#"웲"#, r#"웲"#, r#"웲"#, r#"웲"#),
+        (r#"웳"#, r#"웳"#, r#"웳"#, r#"웳"#, r#"웳"#),
+        (r#"웴"#, r#"웴"#, r#"웴"#, r#"웴"#, r#"웴"#),
+        (r#"웵"#, r#"웵"#, r#"웵"#, r#"웵"#, r#"웵"#),
+        (r#"웶"#, r#"웶"#, r#"웶"#, r#"웶"#, r#"웶"#),
+        (r#"웷"#, r#"웷"#, r#"웷"#, r#"웷"#, r#"웷"#),
+        (r#"웸"#, r#"웸"#, r#"웸"#, r#"웸"#, r#"웸"#),
+        (r#"웹"#, r#"웹"#, r#"웹"#, r#"웹"#, r#"웹"#),
+        (r#"웺"#, r#"웺"#, r#"웺"#, r#"웺"#, r#"웺"#),
+        (r#"웻"#, r#"웻"#, r#"웻"#, r#"웻"#, r#"웻"#),
+        (r#"웼"#, r#"웼"#, r#"웼"#, r#"웼"#, r#"웼"#),
+        (r#"웽"#, r#"웽"#, r#"웽"#, r#"웽"#, r#"웽"#),
+        (r#"웾"#, r#"웾"#, r#"웾"#, r#"웾"#, r#"웾"#),
+        (r#"웿"#, r#"웿"#, r#"웿"#, r#"웿"#, r#"웿"#),
+        (r#"윀"#, r#"윀"#, r#"윀"#, r#"윀"#, r#"윀"#),
+        (r#"윁"#, r#"윁"#, r#"윁"#, r#"윁"#, r#"윁"#),
+        (r#"윂"#, r#"윂"#, r#"윂"#, r#"윂"#, r#"윂"#),
+        (r#"윃"#, r#"윃"#, r#"윃"#, r#"윃"#, r#"윃"#),
+        (r#"위"#, r#"위"#, r#"위"#, r#"위"#, r#"위"#),
+        (r#"윅"#, r#"윅"#, r#"윅"#, r#"윅"#, r#"윅"#),
+        (r#"윆"#, r#"윆"#, r#"윆"#, r#"윆"#, r#"윆"#),
+        (r#"윇"#, r#"윇"#, r#"윇"#, r#"윇"#, r#"윇"#),
+        (r#"윈"#, r#"윈"#, r#"윈"#, r#"윈"#, r#"윈"#),
+        (r#"윉"#, r#"윉"#, r#"윉"#, r#"윉"#, r#"윉"#),
+        (r#"윊"#, r#"윊"#, r#"윊"#, r#"윊"#, r#"윊"#),
+        (r#"윋"#, r#"윋"#, r#"윋"#, r#"윋"#, r#"윋"#),
+        (r#"윌"#, r#"윌"#, r#"윌"#, r#"윌"#, r#"윌"#),
+        (r#"윍"#, r#"윍"#, r#"윍"#, r#"윍"#, r#"윍"#),
+        (r#"윎"#, r#"윎"#, r#"윎"#, r#"윎"#, r#"윎"#),
+        (r#"윏"#, r#"윏"#, r#"윏"#, r#"윏"#, r#"윏"#),
+        (r#"윐"#, r#"윐"#, r#"윐"#, r#"윐"#, r#"윐"#),
+        (r#"윑"#, r#"윑"#, r#"윑"#, r#"윑"#, r#"윑"#),
+        (r#"윒"#, r#"윒"#, r#"윒"#, r#"윒"#, r#"윒"#),
+        (r#"윓"#, r#"윓"#, r#"윓"#, r#"윓"#, r#"윓"#),
+        (r#"윔"#, r#"윔"#, r#"윔"#, r#"윔"#, r#"윔"#),
+        (r#"윕"#, r#"윕"#, r#"윕"#, r#"윕"#, r#"윕"#),
+        (r#"윖"#, r#"윖"#, r#"윖"#, r#"윖"#, r#"윖"#),
+        (r#"윗"#, r#"윗"#, r#"윗"#, r#"윗"#, r#"윗"#),
+        (r#"윘"#, r#"윘"#, r#"윘"#, r#"윘"#, r#"윘"#),
+        (r#"윙"#, r#"윙"#, r#"윙"#, r#"윙"#, r#"윙"#),
+        (r#"윚"#, r#"윚"#, r#"윚"#, r#"윚"#, r#"윚"#),
+        (r#"윛"#, r#"윛"#, r#"윛"#, r#"윛"#, r#"윛"#),
+        (r#"윜"#, r#"윜"#, r#"윜"#, r#"윜"#, r#"윜"#),
+        (r#"윝"#, r#"윝"#, r#"윝"#, r#"윝"#, r#"윝"#),
+        (r#"윞"#, r#"윞"#, r#"윞"#, r#"윞"#, r#"윞"#),
+        (r#"윟"#, r#"윟"#, r#"윟"#, r#"윟"#, r#"윟"#),
+        (r#"유"#, r#"유"#, r#"유"#, r#"유"#, r#"유"#),
+        (r#"육"#, r#"육"#, r#"육"#, r#"육"#, r#"육"#),
+        (r#"윢"#, r#"윢"#, r#"윢"#, r#"윢"#, r#"윢"#),
+        (r#"윣"#, r#"윣"#, r#"윣"#, r#"윣"#, r#"윣"#),
+        (r#"윤"#, r#"윤"#, r#"윤"#, r#"윤"#, r#"윤"#),
+        (r#"윥"#, r#"윥"#, r#"윥"#, r#"윥"#, r#"윥"#),
+        (r#"윦"#, r#"윦"#, r#"윦"#, r#"윦"#, r#"윦"#),
+        (r#"윧"#, r#"윧"#, r#"윧"#, r#"윧"#, r#"윧"#),
+        (r#"율"#, r#"율"#, r#"율"#, r#"율"#, r#"율"#),
+        (r#"윩"#, r#"윩"#, r#"윩"#, r#"윩"#, r#"윩"#),
+        (r#"윪"#, r#"윪"#, r#"윪"#, r#"윪"#, r#"윪"#),
+        (r#"윫"#, r#"윫"#, r#"윫"#, r#"윫"#, r#"윫"#),
+        (r#"윬"#, r#"윬"#, r#"윬"#, r#"윬"#, r#"윬"#),
+        (r#"윭"#, r#"윭"#, r#"윭"#, r#"윭"#, r#"윭"#),
+        (r#"윮"#, r#"윮"#, r#"윮"#, r#"윮"#, r#"윮"#),
+        (r#"윯"#, r#"윯"#, r#"윯"#, r#"윯"#, r#"윯"#),
+        (r#"윰"#, r#"윰"#, r#"윰"#, r#"윰"#, r#"윰"#),
+        (r#"윱"#, r#"윱"#, r#"윱"#, r#"윱"#, r#"윱"#),
+        (r#"윲"#, r#"윲"#, r#"윲"#, r#"윲"#, r#"윲"#),
+        (r#"윳"#, r#"윳"#, r#"윳"#, r#"윳"#, r#"윳"#),
+        (r#"윴"#, r#"윴"#, r#"윴"#, r#"윴"#, r#"윴"#),
+        (r#"융"#, r#"융"#, r#"융"#, r#"융"#, r#"융"#),
+        (r#"윶"#, r#"윶"#, r#"윶"#, r#"윶"#, r#"윶"#),
+        (r#"윷"#, r#"윷"#, r#"윷"#, r#"윷"#, r#"윷"#),
+        (r#"윸"#, r#"윸"#, r#"윸"#, r#"윸"#, r#"윸"#),
+        (r#"윹"#, r#"윹"#, r#"윹"#, r#"윹"#, r#"윹"#),
+        (r#"윺"#, r#"윺"#, r#"윺"#, r#"윺"#, r#"윺"#),
+        (r#"윻"#, r#"윻"#, r#"윻"#, r#"윻"#, r#"윻"#),
+        (r#"으"#, r#"으"#, r#"으"#, r#"으"#, r#"으"#),
+        (r#"윽"#, r#"윽"#, r#"윽"#, r#"윽"#, r#"윽"#),
+        (r#"윾"#, r#"윾"#, r#"윾"#, r#"윾"#, r#"윾"#),
+        (r#"윿"#, r#"윿"#, r#"윿"#, r#"윿"#, r#"윿"#),
+        (r#"은"#, r#"은"#, r#"은"#, r#"은"#, r#"은"#),
+        (r#"읁"#, r#"읁"#, r#"읁"#, r#"읁"#, r#"읁"#),
+        (r#"읂"#, r#"읂"#, r#"읂"#, r#"읂"#, r#"읂"#),
+        (r#"읃"#, r#"읃"#, r#"읃"#, r#"읃"#, r#"읃"#),
+        (r#"을"#, r#"을"#, r#"을"#, r#"을"#, r#"을"#),
+        (r#"읅"#, r#"읅"#, r#"읅"#, r#"읅"#, r#"읅"#),
+        (r#"읆"#, r#"읆"#, r#"읆"#, r#"읆"#, r#"읆"#),
+        (r#"읇"#, r#"읇"#, r#"읇"#, r#"읇"#, r#"읇"#),
+        (r#"읈"#, r#"읈"#, r#"읈"#, r#"읈"#, r#"읈"#),
+        (r#"읉"#, r#"읉"#, r#"읉"#, r#"읉"#, r#"읉"#),
+        (r#"읊"#, r#"읊"#, r#"읊"#, r#"읊"#, r#"읊"#),
+        (r#"읋"#, r#"읋"#, r#"읋"#, r#"읋"#, r#"읋"#),
+        (r#"음"#, r#"음"#, r#"음"#, r#"음"#, r#"음"#),
+        (r#"읍"#, r#"읍"#, r#"읍"#, r#"읍"#, r#"읍"#),
+        (r#"읎"#, r#"읎"#, r#"읎"#, r#"읎"#, r#"읎"#),
+        (r#"읏"#, r#"읏"#, r#"읏"#, r#"읏"#, r#"읏"#),
+        (r#"읐"#, r#"읐"#, r#"읐"#, r#"읐"#, r#"읐"#),
+        (r#"응"#, r#"응"#, r#"응"#, r#"응"#, r#"응"#),
+        (r#"읒"#, r#"읒"#, r#"읒"#, r#"읒"#, r#"읒"#),
+        (r#"읓"#, r#"읓"#, r#"읓"#, r#"읓"#, r#"읓"#),
+        (r#"읔"#, r#"읔"#, r#"읔"#, r#"읔"#, r#"읔"#),
+        (r#"읕"#, r#"읕"#, r#"읕"#, r#"읕"#, r#"읕"#),
+        (r#"읖"#, r#"읖"#, r#"읖"#, r#"읖"#, r#"읖"#),
+        (r#"읗"#, r#"읗"#, r#"읗"#, r#"읗"#, r#"읗"#),
+        (r#"의"#, r#"의"#, r#"의"#, r#"의"#, r#"의"#),
+        (r#"읙"#, r#"읙"#, r#"읙"#, r#"읙"#, r#"읙"#),
+        (r#"읚"#, r#"읚"#, r#"읚"#, r#"읚"#, r#"읚"#),
+        (r#"읛"#, r#"읛"#, r#"읛"#, r#"읛"#, r#"읛"#),
+        (r#"읜"#, r#"읜"#, r#"읜"#, r#"읜"#, r#"읜"#),
+        (r#"읝"#, r#"읝"#, r#"읝"#, r#"읝"#, r#"읝"#),
+        (r#"읞"#, r#"읞"#, r#"읞"#, r#"읞"#, r#"읞"#),
+        (r#"읟"#, r#"읟"#, r#"읟"#, r#"읟"#, r#"읟"#),
+        (r#"읠"#, r#"읠"#, r#"읠"#, r#"읠"#, r#"읠"#),
+        (r#"읡"#, r#"읡"#, r#"읡"#, r#"읡"#, r#"읡"#),
+        (r#"읢"#, r#"읢"#, r#"읢"#, r#"읢"#, r#"읢"#),
+        (r#"읣"#, r#"읣"#, r#"읣"#, r#"읣"#, r#"읣"#),
+        (r#"읤"#, r#"읤"#, r#"읤"#, r#"읤"#, r#"읤"#),
+        (r#"읥"#, r#"읥"#, r#"읥"#, r#"읥"#, r#"읥"#),
+        (r#"읦"#, r#"읦"#, r#"읦"#, r#"읦"#, r#"읦"#),
+        (r#"읧"#, r#"읧"#, r#"읧"#, r#"읧"#, r#"읧"#),
+        (r#"읨"#, r#"읨"#, r#"읨"#, r#"읨"#, r#"읨"#),
+        (r#"읩"#, r#"읩"#, r#"읩"#, r#"읩"#, r#"읩"#),
+        (r#"읪"#, r#"읪"#, r#"읪"#, r#"읪"#, r#"읪"#),
+        (r#"읫"#, r#"읫"#, r#"읫"#, r#"읫"#, r#"읫"#),
+        (r#"읬"#, r#"읬"#, r#"읬"#, r#"읬"#, r#"읬"#),
+        (r#"읭"#, r#"읭"#, r#"읭"#, r#"읭"#, r#"읭"#),
+        (r#"읮"#, r#"읮"#, r#"읮"#, r#"읮"#, r#"읮"#),
+        (r#"읯"#, r#"읯"#, r#"읯"#, r#"읯"#, r#"읯"#),
+        (r#"읰"#, r#"읰"#, r#"읰"#, r#"읰"#, r#"읰"#),
+        (r#"읱"#, r#"읱"#, r#"읱"#, r#"읱"#, r#"읱"#),
+        (r#"읲"#, r#"읲"#, r#"읲"#, r#"읲"#, r#"읲"#),
+        (r#"읳"#, r#"읳"#, r#"읳"#, r#"읳"#, r#"읳"#),
+        (r#"이"#, r#"이"#, r#"이"#, r#"이"#, r#"이"#),
+        (r#"익"#, r#"익"#, r#"익"#, r#"익"#, r#"익"#),
+        (r#"읶"#, r#"읶"#, r#"읶"#, r#"읶"#, r#"읶"#),
+        (r#"읷"#, r#"읷"#, r#"읷"#, r#"읷"#, r#"읷"#),
+        (r#"인"#, r#"인"#, r#"인"#, r#"인"#, r#"인"#),
+        (r#"읹"#, r#"읹"#, r#"읹"#, r#"읹"#, r#"읹"#),
+        (r#"읺"#, r#"읺"#, r#"읺"#, r#"읺"#, r#"읺"#),
+        (r#"읻"#, r#"읻"#, r#"읻"#, r#"읻"#, r#"읻"#),
+        (r#"일"#, r#"일"#, r#"일"#, r#"일"#, r#"일"#),
+        (r#"읽"#, r#"읽"#, r#"읽"#, r#"읽"#, r#"읽"#),
+        (r#"읾"#, r#"읾"#, r#"읾"#, r#"읾"#, r#"읾"#),
+        (r#"읿"#, r#"읿"#, r#"읿"#, r#"읿"#, r#"읿"#),
+        (r#"잀"#, r#"잀"#, r#"잀"#, r#"잀"#, r#"잀"#),
+        (r#"잁"#, r#"잁"#, r#"잁"#, r#"잁"#, r#"잁"#),
+        (r#"잂"#, r#"잂"#, r#"잂"#, r#"잂"#, r#"잂"#),
+        (r#"잃"#, r#"잃"#, r#"잃"#, r#"잃"#, r#"잃"#),
+        (r#"임"#, r#"임"#, r#"임"#, r#"임"#, r#"임"#),
+        (r#"입"#, r#"입"#, r#"입"#, r#"입"#, r#"입"#),
+        (r#"잆"#, r#"잆"#, r#"잆"#, r#"잆"#, r#"잆"#),
+        (r#"잇"#, r#"잇"#, r#"잇"#, r#"잇"#, r#"잇"#),
+        (r#"있"#, r#"있"#, r#"있"#, r#"있"#, r#"있"#),
+        (r#"잉"#, r#"잉"#, r#"잉"#, r#"잉"#, r#"잉"#),
+        (r#"잊"#, r#"잊"#, r#"잊"#, r#"잊"#, r#"잊"#),
+        (r#"잋"#, r#"잋"#, r#"잋"#, r#"잋"#, r#"잋"#),
+        (r#"잌"#, r#"잌"#, r#"잌"#, r#"잌"#, r#"잌"#),
+        (r#"잍"#, r#"잍"#, r#"잍"#, r#"잍"#, r#"잍"#),
+        (r#"잎"#, r#"잎"#, r#"잎"#, r#"잎"#, r#"잎"#),
+        (r#"잏"#, r#"잏"#, r#"잏"#, r#"잏"#, r#"잏"#),
+        (r#"자"#, r#"자"#, r#"자"#, r#"자"#, r#"자"#),
+        (r#"작"#, r#"작"#, r#"작"#, r#"작"#, r#"작"#),
+        (r#"잒"#, r#"잒"#, r#"잒"#, r#"잒"#, r#"잒"#),
+        (r#"잓"#, r#"잓"#, r#"잓"#, r#"잓"#, r#"잓"#),
+        (r#"잔"#, r#"잔"#, r#"잔"#, r#"잔"#, r#"잔"#),
+        (r#"잕"#, r#"잕"#, r#"잕"#, r#"잕"#, r#"잕"#),
+        (r#"잖"#, r#"잖"#, r#"잖"#, r#"잖"#, r#"잖"#),
+        (r#"잗"#, r#"잗"#, r#"잗"#, r#"잗"#, r#"잗"#),
+        (r#"잘"#, r#"잘"#, r#"잘"#, r#"잘"#, r#"잘"#),
+        (r#"잙"#, r#"잙"#, r#"잙"#, r#"잙"#, r#"잙"#),
+        (r#"잚"#, r#"잚"#, r#"잚"#, r#"잚"#, r#"잚"#),
+        (r#"잛"#, r#"잛"#, r#"잛"#, r#"잛"#, r#"잛"#),
+        (r#"잜"#, r#"잜"#, r#"잜"#, r#"잜"#, r#"잜"#),
+        (r#"잝"#, r#"잝"#, r#"잝"#, r#"잝"#, r#"잝"#),
+        (r#"잞"#, r#"잞"#, r#"잞"#, r#"잞"#, r#"잞"#),
+        (r#"잟"#, r#"잟"#, r#"잟"#, r#"잟"#, r#"잟"#),
+        (r#"잠"#, r#"잠"#, r#"잠"#, r#"잠"#, r#"잠"#),
+        (r#"잡"#, r#"잡"#, r#"잡"#, r#"잡"#, r#"잡"#),
+        (r#"잢"#, r#"잢"#, r#"잢"#, r#"잢"#, r#"잢"#),
+        (r#"잣"#, r#"잣"#, r#"잣"#, r#"잣"#, r#"잣"#),
+        (r#"잤"#, r#"잤"#, r#"잤"#, r#"잤"#, r#"잤"#),
+        (r#"장"#, r#"장"#, r#"장"#, r#"장"#, r#"장"#),
+        (r#"잦"#, r#"잦"#, r#"잦"#, r#"잦"#, r#"잦"#),
+        (r#"잧"#, r#"잧"#, r#"잧"#, r#"잧"#, r#"잧"#),
+        (r#"잨"#, r#"잨"#, r#"잨"#, r#"잨"#, r#"잨"#),
+        (r#"잩"#, r#"잩"#, r#"잩"#, r#"잩"#, r#"잩"#),
+        (r#"잪"#, r#"잪"#, r#"잪"#, r#"잪"#, r#"잪"#),
+        (r#"잫"#, r#"잫"#, r#"잫"#, r#"잫"#, r#"잫"#),
+        (r#"재"#, r#"재"#, r#"재"#, r#"재"#, r#"재"#),
+        (r#"잭"#, r#"잭"#, r#"잭"#, r#"잭"#, r#"잭"#),
+        (r#"잮"#, r#"잮"#, r#"잮"#, r#"잮"#, r#"잮"#),
+        (r#"잯"#, r#"잯"#, r#"잯"#, r#"잯"#, r#"잯"#),
+        (r#"잰"#, r#"잰"#, r#"잰"#, r#"잰"#, r#"잰"#),
+        (r#"잱"#, r#"잱"#, r#"잱"#, r#"잱"#, r#"잱"#),
+        (r#"잲"#, r#"잲"#, r#"잲"#, r#"잲"#, r#"잲"#),
+        (r#"잳"#, r#"잳"#, r#"잳"#, r#"잳"#, r#"잳"#),
+        (r#"잴"#, r#"잴"#, r#"잴"#, r#"잴"#, r#"잴"#),
+        (r#"잵"#, r#"잵"#, r#"잵"#, r#"잵"#, r#"잵"#),
+        (r#"잶"#, r#"잶"#, r#"잶"#, r#"잶"#, r#"잶"#),
+        (r#"잷"#, r#"잷"#, r#"잷"#, r#"잷"#, r#"잷"#),
+        (r#"잸"#, r#"잸"#, r#"잸"#, r#"잸"#, r#"잸"#),
+        (r#"잹"#, r#"잹"#, r#"잹"#, r#"잹"#, r#"잹"#),
+        (r#"잺"#, r#"잺"#, r#"잺"#, r#"잺"#, r#"잺"#),
+        (r#"잻"#, r#"잻"#, r#"잻"#, r#"잻"#, r#"잻"#),
+        (r#"잼"#, r#"잼"#, r#"잼"#, r#"잼"#, r#"잼"#),
+        (r#"잽"#, r#"잽"#, r#"잽"#, r#"잽"#, r#"잽"#),
+        (r#"잾"#, r#"잾"#, r#"잾"#, r#"잾"#, r#"잾"#),
+        (r#"잿"#, r#"잿"#, r#"잿"#, r#"잿"#, r#"잿"#),
+        (r#"쟀"#, r#"쟀"#, r#"쟀"#, r#"쟀"#, r#"쟀"#),
+        (r#"쟁"#, r#"쟁"#, r#"쟁"#, r#"쟁"#, r#"쟁"#),
+        (r#"쟂"#, r#"쟂"#, r#"쟂"#, r#"쟂"#, r#"쟂"#),
+        (r#"쟃"#, r#"쟃"#, r#"쟃"#, r#"쟃"#, r#"쟃"#),
+        (r#"쟄"#, r#"쟄"#, r#"쟄"#, r#"쟄"#, r#"쟄"#),
+        (r#"쟅"#, r#"쟅"#, r#"쟅"#, r#"쟅"#, r#"쟅"#),
+        (r#"쟆"#, r#"쟆"#, r#"쟆"#, r#"쟆"#, r#"쟆"#),
+        (r#"쟇"#, r#"쟇"#, r#"쟇"#, r#"쟇"#, r#"쟇"#),
+        (r#"쟈"#, r#"쟈"#, r#"쟈"#, r#"쟈"#, r#"쟈"#),
+        (r#"쟉"#, r#"쟉"#, r#"쟉"#, r#"쟉"#, r#"쟉"#),
+        (r#"쟊"#, r#"쟊"#, r#"쟊"#, r#"쟊"#, r#"쟊"#),
+        (r#"쟋"#, r#"쟋"#, r#"쟋"#, r#"쟋"#, r#"쟋"#),
+        (r#"쟌"#, r#"쟌"#, r#"쟌"#, r#"쟌"#, r#"쟌"#),
+        (r#"쟍"#, r#"쟍"#, r#"쟍"#, r#"쟍"#, r#"쟍"#),
+        (r#"쟎"#, r#"쟎"#, r#"쟎"#, r#"쟎"#, r#"쟎"#),
+        (r#"쟏"#, r#"쟏"#, r#"쟏"#, r#"쟏"#, r#"쟏"#),
+        (r#"쟐"#, r#"쟐"#, r#"쟐"#, r#"쟐"#, r#"쟐"#),
+        (r#"쟑"#, r#"쟑"#, r#"쟑"#, r#"쟑"#, r#"쟑"#),
+        (r#"쟒"#, r#"쟒"#, r#"쟒"#, r#"쟒"#, r#"쟒"#),
+        (r#"쟓"#, r#"쟓"#, r#"쟓"#, r#"쟓"#, r#"쟓"#),
+        (r#"쟔"#, r#"쟔"#, r#"쟔"#, r#"쟔"#, r#"쟔"#),
+        (r#"쟕"#, r#"쟕"#, r#"쟕"#, r#"쟕"#, r#"쟕"#),
+        (r#"쟖"#, r#"쟖"#, r#"쟖"#, r#"쟖"#, r#"쟖"#),
+        (r#"쟗"#, r#"쟗"#, r#"쟗"#, r#"쟗"#, r#"쟗"#),
+        (r#"쟘"#, r#"쟘"#, r#"쟘"#, r#"쟘"#, r#"쟘"#),
+        (r#"쟙"#, r#"쟙"#, r#"쟙"#, r#"쟙"#, r#"쟙"#),
+        (r#"쟚"#, r#"쟚"#, r#"쟚"#, r#"쟚"#, r#"쟚"#),
+        (r#"쟛"#, r#"쟛"#, r#"쟛"#, r#"쟛"#, r#"쟛"#),
+        (r#"쟜"#, r#"쟜"#, r#"쟜"#, r#"쟜"#, r#"쟜"#),
+        (r#"쟝"#, r#"쟝"#, r#"쟝"#, r#"쟝"#, r#"쟝"#),
+        (r#"쟞"#, r#"쟞"#, r#"쟞"#, r#"쟞"#, r#"쟞"#),
+        (r#"쟟"#, r#"쟟"#, r#"쟟"#, r#"쟟"#, r#"쟟"#),
+        (r#"쟠"#, r#"쟠"#, r#"쟠"#, r#"쟠"#, r#"쟠"#),
+        (r#"쟡"#, r#"쟡"#, r#"쟡"#, r#"쟡"#, r#"쟡"#),
+        (r#"쟢"#, r#"쟢"#, r#"쟢"#, r#"쟢"#, r#"쟢"#),
+        (r#"쟣"#, r#"쟣"#, r#"쟣"#, r#"쟣"#, r#"쟣"#),
+        (r#"쟤"#, r#"쟤"#, r#"쟤"#, r#"쟤"#, r#"쟤"#),
+        (r#"쟥"#, r#"쟥"#, r#"쟥"#, r#"쟥"#, r#"쟥"#),
+        (r#"쟦"#, r#"쟦"#, r#"쟦"#, r#"쟦"#, r#"쟦"#),
+        (r#"쟧"#, r#"쟧"#, r#"쟧"#, r#"쟧"#, r#"쟧"#),
+        (r#"쟨"#, r#"쟨"#, r#"쟨"#, r#"쟨"#, r#"쟨"#),
+        (r#"쟩"#, r#"쟩"#, r#"쟩"#, r#"쟩"#, r#"쟩"#),
+        (r#"쟪"#, r#"쟪"#, r#"쟪"#, r#"쟪"#, r#"쟪"#),
+        (r#"쟫"#, r#"쟫"#, r#"쟫"#, r#"쟫"#, r#"쟫"#),
+        (r#"쟬"#, r#"쟬"#, r#"쟬"#, r#"쟬"#, r#"쟬"#),
+        (r#"쟭"#, r#"쟭"#, r#"쟭"#, r#"쟭"#, r#"쟭"#),
+        (r#"쟮"#, r#"쟮"#, r#"쟮"#, r#"쟮"#, r#"쟮"#),
+        (r#"쟯"#, r#"쟯"#, r#"쟯"#, r#"쟯"#, r#"쟯"#),
+        (r#"쟰"#, r#"쟰"#, r#"쟰"#, r#"쟰"#, r#"쟰"#),
+        (r#"쟱"#, r#"쟱"#, r#"쟱"#, r#"쟱"#, r#"쟱"#),
+        (r#"쟲"#, r#"쟲"#, r#"쟲"#, r#"쟲"#, r#"쟲"#),
+        (r#"쟳"#, r#"쟳"#, r#"쟳"#, r#"쟳"#, r#"쟳"#),
+        (r#"쟴"#, r#"쟴"#, r#"쟴"#, r#"쟴"#, r#"쟴"#),
+        (r#"쟵"#, r#"쟵"#, r#"쟵"#, r#"쟵"#, r#"쟵"#),
+        (r#"쟶"#, r#"쟶"#, r#"쟶"#, r#"쟶"#, r#"쟶"#),
+        (r#"쟷"#, r#"쟷"#, r#"쟷"#, r#"쟷"#, r#"쟷"#),
+        (r#"쟸"#, r#"쟸"#, r#"쟸"#, r#"쟸"#, r#"쟸"#),
+        (r#"쟹"#, r#"쟹"#, r#"쟹"#, r#"쟹"#, r#"쟹"#),
+        (r#"쟺"#, r#"쟺"#, r#"쟺"#, r#"쟺"#, r#"쟺"#),
+        (r#"쟻"#, r#"쟻"#, r#"쟻"#, r#"쟻"#, r#"쟻"#),
+        (r#"쟼"#, r#"쟼"#, r#"쟼"#, r#"쟼"#, r#"쟼"#),
+        (r#"쟽"#, r#"쟽"#, r#"쟽"#, r#"쟽"#, r#"쟽"#),
+        (r#"쟾"#, r#"쟾"#, r#"쟾"#, r#"쟾"#, r#"쟾"#),
+        (r#"쟿"#, r#"쟿"#, r#"쟿"#, r#"쟿"#, r#"쟿"#),
+        (r#"저"#, r#"저"#, r#"저"#, r#"저"#, r#"저"#),
+        (r#"적"#, r#"적"#, r#"적"#, r#"적"#, r#"적"#),
+        (r#"젂"#, r#"젂"#, r#"젂"#, r#"젂"#, r#"젂"#),
+        (r#"젃"#, r#"젃"#, r#"젃"#, r#"젃"#, r#"젃"#),
+        (r#"전"#, r#"전"#, r#"전"#, r#"전"#, r#"전"#),
+        (r#"젅"#, r#"젅"#, r#"젅"#, r#"젅"#, r#"젅"#),
+        (r#"젆"#, r#"젆"#, r#"젆"#, r#"젆"#, r#"젆"#),
+        (r#"젇"#, r#"젇"#, r#"젇"#, r#"젇"#, r#"젇"#),
+        (r#"절"#, r#"절"#, r#"절"#, r#"절"#, r#"절"#),
+        (r#"젉"#, r#"젉"#, r#"젉"#, r#"젉"#, r#"젉"#),
+        (r#"젊"#, r#"젊"#, r#"젊"#, r#"젊"#, r#"젊"#),
+        (r#"젋"#, r#"젋"#, r#"젋"#, r#"젋"#, r#"젋"#),
+        (r#"젌"#, r#"젌"#, r#"젌"#, r#"젌"#, r#"젌"#),
+        (r#"젍"#, r#"젍"#, r#"젍"#, r#"젍"#, r#"젍"#),
+        (r#"젎"#, r#"젎"#, r#"젎"#, r#"젎"#, r#"젎"#),
+        (r#"젏"#, r#"젏"#, r#"젏"#, r#"젏"#, r#"젏"#),
+        (r#"점"#, r#"점"#, r#"점"#, r#"점"#, r#"점"#),
+        (r#"접"#, r#"접"#, r#"접"#, r#"접"#, r#"접"#),
+        (r#"젒"#, r#"젒"#, r#"젒"#, r#"젒"#, r#"젒"#),
+        (r#"젓"#, r#"젓"#, r#"젓"#, r#"젓"#, r#"젓"#),
+        (r#"젔"#, r#"젔"#, r#"젔"#, r#"젔"#, r#"젔"#),
+        (r#"정"#, r#"정"#, r#"정"#, r#"정"#, r#"정"#),
+        (r#"젖"#, r#"젖"#, r#"젖"#, r#"젖"#, r#"젖"#),
+        (r#"젗"#, r#"젗"#, r#"젗"#, r#"젗"#, r#"젗"#),
+        (r#"젘"#, r#"젘"#, r#"젘"#, r#"젘"#, r#"젘"#),
+        (r#"젙"#, r#"젙"#, r#"젙"#, r#"젙"#, r#"젙"#),
+        (r#"젚"#, r#"젚"#, r#"젚"#, r#"젚"#, r#"젚"#),
+        (r#"젛"#, r#"젛"#, r#"젛"#, r#"젛"#, r#"젛"#),
+        (r#"제"#, r#"제"#, r#"제"#, r#"제"#, r#"제"#),
+        (r#"젝"#, r#"젝"#, r#"젝"#, r#"젝"#, r#"젝"#),
+        (r#"젞"#, r#"젞"#, r#"젞"#, r#"젞"#, r#"젞"#),
+        (r#"젟"#, r#"젟"#, r#"젟"#, r#"젟"#, r#"젟"#),
+        (r#"젠"#, r#"젠"#, r#"젠"#, r#"젠"#, r#"젠"#),
+        (r#"젡"#, r#"젡"#, r#"젡"#, r#"젡"#, r#"젡"#),
+        (r#"젢"#, r#"젢"#, r#"젢"#, r#"젢"#, r#"젢"#),
+        (r#"젣"#, r#"젣"#, r#"젣"#, r#"젣"#, r#"젣"#),
+        (r#"젤"#, r#"젤"#, r#"젤"#, r#"젤"#, r#"젤"#),
+        (r#"젥"#, r#"젥"#, r#"젥"#, r#"젥"#, r#"젥"#),
+        (r#"젦"#, r#"젦"#, r#"젦"#, r#"젦"#, r#"젦"#),
+        (r#"젧"#, r#"젧"#, r#"젧"#, r#"젧"#, r#"젧"#),
+        (r#"젨"#, r#"젨"#, r#"젨"#, r#"젨"#, r#"젨"#),
+        (r#"젩"#, r#"젩"#, r#"젩"#, r#"젩"#, r#"젩"#),
+        (r#"젪"#, r#"젪"#, r#"젪"#, r#"젪"#, r#"젪"#),
+        (r#"젫"#, r#"젫"#, r#"젫"#, r#"젫"#, r#"젫"#),
+        (r#"젬"#, r#"젬"#, r#"젬"#, r#"젬"#, r#"젬"#),
+        (r#"젭"#, r#"젭"#, r#"젭"#, r#"젭"#, r#"젭"#),
+        (r#"젮"#, r#"젮"#, r#"젮"#, r#"젮"#, r#"젮"#),
+        (r#"젯"#, r#"젯"#, r#"젯"#, r#"젯"#, r#"젯"#),
+        (r#"젰"#, r#"젰"#, r#"젰"#, r#"젰"#, r#"젰"#),
+        (r#"젱"#, r#"젱"#, r#"젱"#, r#"젱"#, r#"젱"#),
+        (r#"젲"#, r#"젲"#, r#"젲"#, r#"젲"#, r#"젲"#),
+        (r#"젳"#, r#"젳"#, r#"젳"#, r#"젳"#, r#"젳"#),
+        (r#"젴"#, r#"젴"#, r#"젴"#, r#"젴"#, r#"젴"#),
+        (r#"젵"#, r#"젵"#, r#"젵"#, r#"젵"#, r#"젵"#),
+        (r#"젶"#, r#"젶"#, r#"젶"#, r#"젶"#, r#"젶"#),
+        (r#"젷"#, r#"젷"#, r#"젷"#, r#"젷"#, r#"젷"#),
+        (r#"져"#, r#"져"#, r#"져"#, r#"져"#, r#"져"#),
+        (r#"젹"#, r#"젹"#, r#"젹"#, r#"젹"#, r#"젹"#),
+        (r#"젺"#, r#"젺"#, r#"젺"#, r#"젺"#, r#"젺"#),
+        (r#"젻"#, r#"젻"#, r#"젻"#, r#"젻"#, r#"젻"#),
+        (r#"젼"#, r#"젼"#, r#"젼"#, r#"젼"#, r#"젼"#),
+        (r#"젽"#, r#"젽"#, r#"젽"#, r#"젽"#, r#"젽"#),
+        (r#"젾"#, r#"젾"#, r#"젾"#, r#"젾"#, r#"젾"#),
+        (r#"젿"#, r#"젿"#, r#"젿"#, r#"젿"#, r#"젿"#),
+        (r#"졀"#, r#"졀"#, r#"졀"#, r#"졀"#, r#"졀"#),
+        (r#"졁"#, r#"졁"#, r#"졁"#, r#"졁"#, r#"졁"#),
+        (r#"졂"#, r#"졂"#, r#"졂"#, r#"졂"#, r#"졂"#),
+        (r#"졃"#, r#"졃"#, r#"졃"#, r#"졃"#, r#"졃"#),
+        (r#"졄"#, r#"졄"#, r#"졄"#, r#"졄"#, r#"졄"#),
+        (r#"졅"#, r#"졅"#, r#"졅"#, r#"졅"#, r#"졅"#),
+        (r#"졆"#, r#"졆"#, r#"졆"#, r#"졆"#, r#"졆"#),
+        (r#"졇"#, r#"졇"#, r#"졇"#, r#"졇"#, r#"졇"#),
+        (r#"졈"#, r#"졈"#, r#"졈"#, r#"졈"#, r#"졈"#),
+        (r#"졉"#, r#"졉"#, r#"졉"#, r#"졉"#, r#"졉"#),
+        (r#"졊"#, r#"졊"#, r#"졊"#, r#"졊"#, r#"졊"#),
+        (r#"졋"#, r#"졋"#, r#"졋"#, r#"졋"#, r#"졋"#),
+        (r#"졌"#, r#"졌"#, r#"졌"#, r#"졌"#, r#"졌"#),
+        (r#"졍"#, r#"졍"#, r#"졍"#, r#"졍"#, r#"졍"#),
+        (r#"졎"#, r#"졎"#, r#"졎"#, r#"졎"#, r#"졎"#),
+        (r#"졏"#, r#"졏"#, r#"졏"#, r#"졏"#, r#"졏"#),
+        (r#"졐"#, r#"졐"#, r#"졐"#, r#"졐"#, r#"졐"#),
+        (r#"졑"#, r#"졑"#, r#"졑"#, r#"졑"#, r#"졑"#),
+        (r#"졒"#, r#"졒"#, r#"졒"#, r#"졒"#, r#"졒"#),
+        (r#"졓"#, r#"졓"#, r#"졓"#, r#"졓"#, r#"졓"#),
+        (r#"졔"#, r#"졔"#, r#"졔"#, r#"졔"#, r#"졔"#),
+        (r#"졕"#, r#"졕"#, r#"졕"#, r#"졕"#, r#"졕"#),
+        (r#"졖"#, r#"졖"#, r#"졖"#, r#"졖"#, r#"졖"#),
+        (r#"졗"#, r#"졗"#, r#"졗"#, r#"졗"#, r#"졗"#),
+        (r#"졘"#, r#"졘"#, r#"졘"#, r#"졘"#, r#"졘"#),
+        (r#"졙"#, r#"졙"#, r#"졙"#, r#"졙"#, r#"졙"#),
+        (r#"졚"#, r#"졚"#, r#"졚"#, r#"졚"#, r#"졚"#),
+        (r#"졛"#, r#"졛"#, r#"졛"#, r#"졛"#, r#"졛"#),
+        (r#"졜"#, r#"졜"#, r#"졜"#, r#"졜"#, r#"졜"#),
+        (r#"졝"#, r#"졝"#, r#"졝"#, r#"졝"#, r#"졝"#),
+        (r#"졞"#, r#"졞"#, r#"졞"#, r#"졞"#, r#"졞"#),
+        (r#"졟"#, r#"졟"#, r#"졟"#, r#"졟"#, r#"졟"#),
+        (r#"졠"#, r#"졠"#, r#"졠"#, r#"졠"#, r#"졠"#),
+        (r#"졡"#, r#"졡"#, r#"졡"#, r#"졡"#, r#"졡"#),
+        (r#"졢"#, r#"졢"#, r#"졢"#, r#"졢"#, r#"졢"#),
+        (r#"졣"#, r#"졣"#, r#"졣"#, r#"졣"#, r#"졣"#),
+        (r#"졤"#, r#"졤"#, r#"졤"#, r#"졤"#, r#"졤"#),
+        (r#"졥"#, r#"졥"#, r#"졥"#, r#"졥"#, r#"졥"#),
+        (r#"졦"#, r#"졦"#, r#"졦"#, r#"졦"#, r#"졦"#),
+        (r#"졧"#, r#"졧"#, r#"졧"#, r#"졧"#, r#"졧"#),
+        (r#"졨"#, r#"졨"#, r#"졨"#, r#"졨"#, r#"졨"#),
+        (r#"졩"#, r#"졩"#, r#"졩"#, r#"졩"#, r#"졩"#),
+        (r#"졪"#, r#"졪"#, r#"졪"#, r#"졪"#, r#"졪"#),
+        (r#"졫"#, r#"졫"#, r#"졫"#, r#"졫"#, r#"졫"#),
+        (r#"졬"#, r#"졬"#, r#"졬"#, r#"졬"#, r#"졬"#),
+        (r#"졭"#, r#"졭"#, r#"졭"#, r#"졭"#, r#"졭"#),
+        (r#"졮"#, r#"졮"#, r#"졮"#, r#"졮"#, r#"졮"#),
+        (r#"졯"#, r#"졯"#, r#"졯"#, r#"졯"#, r#"졯"#),
+        (r#"조"#, r#"조"#, r#"조"#, r#"조"#, r#"조"#),
+        (r#"족"#, r#"족"#, r#"족"#, r#"족"#, r#"족"#),
+        (r#"졲"#, r#"졲"#, r#"졲"#, r#"졲"#, r#"졲"#),
+        (r#"졳"#, r#"졳"#, r#"졳"#, r#"졳"#, r#"졳"#),
+        (r#"존"#, r#"존"#, r#"존"#, r#"존"#, r#"존"#),
+        (r#"졵"#, r#"졵"#, r#"졵"#, r#"졵"#, r#"졵"#),
+        (r#"졶"#, r#"졶"#, r#"졶"#, r#"졶"#, r#"졶"#),
+        (r#"졷"#, r#"졷"#, r#"졷"#, r#"졷"#, r#"졷"#),
+        (r#"졸"#, r#"졸"#, r#"졸"#, r#"졸"#, r#"졸"#),
+        (r#"졹"#, r#"졹"#, r#"졹"#, r#"졹"#, r#"졹"#),
+        (r#"졺"#, r#"졺"#, r#"졺"#, r#"졺"#, r#"졺"#),
+        (r#"졻"#, r#"졻"#, r#"졻"#, r#"졻"#, r#"졻"#),
+        (r#"졼"#, r#"졼"#, r#"졼"#, r#"졼"#, r#"졼"#),
+        (r#"졽"#, r#"졽"#, r#"졽"#, r#"졽"#, r#"졽"#),
+        (r#"졾"#, r#"졾"#, r#"졾"#, r#"졾"#, r#"졾"#),
+        (r#"졿"#, r#"졿"#, r#"졿"#, r#"졿"#, r#"졿"#),
+        (r#"좀"#, r#"좀"#, r#"좀"#, r#"좀"#, r#"좀"#),
+        (r#"좁"#, r#"좁"#, r#"좁"#, r#"좁"#, r#"좁"#),
+        (r#"좂"#, r#"좂"#, r#"좂"#, r#"좂"#, r#"좂"#),
+        (r#"좃"#, r#"좃"#, r#"좃"#, r#"좃"#, r#"좃"#),
+        (r#"좄"#, r#"좄"#, r#"좄"#, r#"좄"#, r#"좄"#),
+        (r#"종"#, r#"종"#, r#"종"#, r#"종"#, r#"종"#),
+        (r#"좆"#, r#"좆"#, r#"좆"#, r#"좆"#, r#"좆"#),
+        (r#"좇"#, r#"좇"#, r#"좇"#, r#"좇"#, r#"좇"#),
+        (r#"좈"#, r#"좈"#, r#"좈"#, r#"좈"#, r#"좈"#),
+        (r#"좉"#, r#"좉"#, r#"좉"#, r#"좉"#, r#"좉"#),
+        (r#"좊"#, r#"좊"#, r#"좊"#, r#"좊"#, r#"좊"#),
+        (r#"좋"#, r#"좋"#, r#"좋"#, r#"좋"#, r#"좋"#),
+        (r#"좌"#, r#"좌"#, r#"좌"#, r#"좌"#, r#"좌"#),
+        (r#"좍"#, r#"좍"#, r#"좍"#, r#"좍"#, r#"좍"#),
+        (r#"좎"#, r#"좎"#, r#"좎"#, r#"좎"#, r#"좎"#),
+        (r#"좏"#, r#"좏"#, r#"좏"#, r#"좏"#, r#"좏"#),
+        (r#"좐"#, r#"좐"#, r#"좐"#, r#"좐"#, r#"좐"#),
+        (r#"좑"#, r#"좑"#, r#"좑"#, r#"좑"#, r#"좑"#),
+        (r#"좒"#, r#"좒"#, r#"좒"#, r#"좒"#, r#"좒"#),
+        (r#"좓"#, r#"좓"#, r#"좓"#, r#"좓"#, r#"좓"#),
+        (r#"좔"#, r#"좔"#, r#"좔"#, r#"좔"#, r#"좔"#),
+        (r#"좕"#, r#"좕"#, r#"좕"#, r#"좕"#, r#"좕"#),
+        (r#"좖"#, r#"좖"#, r#"좖"#, r#"좖"#, r#"좖"#),
+        (r#"좗"#, r#"좗"#, r#"좗"#, r#"좗"#, r#"좗"#),
+        (r#"좘"#, r#"좘"#, r#"좘"#, r#"좘"#, r#"좘"#),
+        (r#"좙"#, r#"좙"#, r#"좙"#, r#"좙"#, r#"좙"#),
+        (r#"좚"#, r#"좚"#, r#"좚"#, r#"좚"#, r#"좚"#),
+        (r#"좛"#, r#"좛"#, r#"좛"#, r#"좛"#, r#"좛"#),
+        (r#"좜"#, r#"좜"#, r#"좜"#, r#"좜"#, r#"좜"#),
+        (r#"좝"#, r#"좝"#, r#"좝"#, r#"좝"#, r#"좝"#),
+        (r#"좞"#, r#"좞"#, r#"좞"#, r#"좞"#, r#"좞"#),
+        (r#"좟"#, r#"좟"#, r#"좟"#, r#"좟"#, r#"좟"#),
+        (r#"좠"#, r#"좠"#, r#"좠"#, r#"좠"#, r#"좠"#),
+        (r#"좡"#, r#"좡"#, r#"좡"#, r#"좡"#, r#"좡"#),
+        (r#"좢"#, r#"좢"#, r#"좢"#, r#"좢"#, r#"좢"#),
+        (r#"좣"#, r#"좣"#, r#"좣"#, r#"좣"#, r#"좣"#),
+        (r#"좤"#, r#"좤"#, r#"좤"#, r#"좤"#, r#"좤"#),
+        (r#"좥"#, r#"좥"#, r#"좥"#, r#"좥"#, r#"좥"#),
+        (r#"좦"#, r#"좦"#, r#"좦"#, r#"좦"#, r#"좦"#),
+        (r#"좧"#, r#"좧"#, r#"좧"#, r#"좧"#, r#"좧"#),
+        (r#"좨"#, r#"좨"#, r#"좨"#, r#"좨"#, r#"좨"#),
+        (r#"좩"#, r#"좩"#, r#"좩"#, r#"좩"#, r#"좩"#),
+        (r#"좪"#, r#"좪"#, r#"좪"#, r#"좪"#, r#"좪"#),
+        (r#"좫"#, r#"좫"#, r#"좫"#, r#"좫"#, r#"좫"#),
+        (r#"좬"#, r#"좬"#, r#"좬"#, r#"좬"#, r#"좬"#),
+        (r#"좭"#, r#"좭"#, r#"좭"#, r#"좭"#, r#"좭"#),
+        (r#"좮"#, r#"좮"#, r#"좮"#, r#"좮"#, r#"좮"#),
+        (r#"좯"#, r#"좯"#, r#"좯"#, r#"좯"#, r#"좯"#),
+        (r#"좰"#, r#"좰"#, r#"좰"#, r#"좰"#, r#"좰"#),
+        (r#"좱"#, r#"좱"#, r#"좱"#, r#"좱"#, r#"좱"#),
+        (r#"좲"#, r#"좲"#, r#"좲"#, r#"좲"#, r#"좲"#),
+        (r#"좳"#, r#"좳"#, r#"좳"#, r#"좳"#, r#"좳"#),
+        (r#"좴"#, r#"좴"#, r#"좴"#, r#"좴"#, r#"좴"#),
+        (r#"좵"#, r#"좵"#, r#"좵"#, r#"좵"#, r#"좵"#),
+        (r#"좶"#, r#"좶"#, r#"좶"#, r#"좶"#, r#"좶"#),
+        (r#"좷"#, r#"좷"#, r#"좷"#, r#"좷"#, r#"좷"#),
+        (r#"좸"#, r#"좸"#, r#"좸"#, r#"좸"#, r#"좸"#),
+        (r#"좹"#, r#"좹"#, r#"좹"#, r#"좹"#, r#"좹"#),
+        (r#"좺"#, r#"좺"#, r#"좺"#, r#"좺"#, r#"좺"#),
+        (r#"좻"#, r#"좻"#, r#"좻"#, r#"좻"#, r#"좻"#),
+        (r#"좼"#, r#"좼"#, r#"좼"#, r#"좼"#, r#"좼"#),
+        (r#"좽"#, r#"좽"#, r#"좽"#, r#"좽"#, r#"좽"#),
+        (r#"좾"#, r#"좾"#, r#"좾"#, r#"좾"#, r#"좾"#),
+        (r#"좿"#, r#"좿"#, r#"좿"#, r#"좿"#, r#"좿"#),
+        (r#"죀"#, r#"죀"#, r#"죀"#, r#"죀"#, r#"죀"#),
+        (r#"죁"#, r#"죁"#, r#"죁"#, r#"죁"#, r#"죁"#),
+        (r#"죂"#, r#"죂"#, r#"죂"#, r#"죂"#, r#"죂"#),
+        (r#"죃"#, r#"죃"#, r#"죃"#, r#"죃"#, r#"죃"#),
+        (r#"죄"#, r#"죄"#, r#"죄"#, r#"죄"#, r#"죄"#),
+        (r#"죅"#, r#"죅"#, r#"죅"#, r#"죅"#, r#"죅"#),
+        (r#"죆"#, r#"죆"#, r#"죆"#, r#"죆"#, r#"죆"#),
+        (r#"죇"#, r#"죇"#, r#"죇"#, r#"죇"#, r#"죇"#),
+        (r#"죈"#, r#"죈"#, r#"죈"#, r#"죈"#, r#"죈"#),
+        (r#"죉"#, r#"죉"#, r#"죉"#, r#"죉"#, r#"죉"#),
+        (r#"죊"#, r#"죊"#, r#"죊"#, r#"죊"#, r#"죊"#),
+        (r#"죋"#, r#"죋"#, r#"죋"#, r#"죋"#, r#"죋"#),
+        (r#"죌"#, r#"죌"#, r#"죌"#, r#"죌"#, r#"죌"#),
+        (r#"죍"#, r#"죍"#, r#"죍"#, r#"죍"#, r#"죍"#),
+        (r#"죎"#, r#"죎"#, r#"죎"#, r#"죎"#, r#"죎"#),
+        (r#"죏"#, r#"죏"#, r#"죏"#, r#"죏"#, r#"죏"#),
+        (r#"죐"#, r#"죐"#, r#"죐"#, r#"죐"#, r#"죐"#),
+        (r#"죑"#, r#"죑"#, r#"죑"#, r#"죑"#, r#"죑"#),
+        (r#"죒"#, r#"죒"#, r#"죒"#, r#"죒"#, r#"죒"#),
+        (r#"죓"#, r#"죓"#, r#"죓"#, r#"죓"#, r#"죓"#),
+        (r#"죔"#, r#"죔"#, r#"죔"#, r#"죔"#, r#"죔"#),
+        (r#"죕"#, r#"죕"#, r#"죕"#, r#"죕"#, r#"죕"#),
+        (r#"죖"#, r#"죖"#, r#"죖"#, r#"죖"#, r#"죖"#),
+        (r#"죗"#, r#"죗"#, r#"죗"#, r#"죗"#, r#"죗"#),
+        (r#"죘"#, r#"죘"#, r#"죘"#, r#"죘"#, r#"죘"#),
+        (r#"죙"#, r#"죙"#, r#"죙"#, r#"죙"#, r#"죙"#),
+        (r#"죚"#, r#"죚"#, r#"죚"#, r#"죚"#, r#"죚"#),
+        (r#"죛"#, r#"죛"#, r#"죛"#, r#"죛"#, r#"죛"#),
+        (r#"죜"#, r#"죜"#, r#"죜"#, r#"죜"#, r#"죜"#),
+        (r#"죝"#, r#"죝"#, r#"죝"#, r#"죝"#, r#"죝"#),
+        (r#"죞"#, r#"죞"#, r#"죞"#, r#"죞"#, r#"죞"#),
+        (r#"죟"#, r#"죟"#, r#"죟"#, r#"죟"#, r#"죟"#),
+        (r#"죠"#, r#"죠"#, r#"죠"#, r#"죠"#, r#"죠"#),
+        (r#"죡"#, r#"죡"#, r#"죡"#, r#"죡"#, r#"죡"#),
+        (r#"죢"#, r#"죢"#, r#"죢"#, r#"죢"#, r#"죢"#),
+        (r#"죣"#, r#"죣"#, r#"죣"#, r#"죣"#, r#"죣"#),
+        (r#"죤"#, r#"죤"#, r#"죤"#, r#"죤"#, r#"죤"#),
+        (r#"죥"#, r#"죥"#, r#"죥"#, r#"죥"#, r#"죥"#),
+        (r#"죦"#, r#"죦"#, r#"죦"#, r#"죦"#, r#"죦"#),
+        (r#"죧"#, r#"죧"#, r#"죧"#, r#"죧"#, r#"죧"#),
+        (r#"죨"#, r#"죨"#, r#"죨"#, r#"죨"#, r#"죨"#),
+        (r#"죩"#, r#"죩"#, r#"죩"#, r#"죩"#, r#"죩"#),
+        (r#"죪"#, r#"죪"#, r#"죪"#, r#"죪"#, r#"죪"#),
+        (r#"죫"#, r#"죫"#, r#"죫"#, r#"죫"#, r#"죫"#),
+        (r#"죬"#, r#"죬"#, r#"죬"#, r#"죬"#, r#"죬"#),
+        (r#"죭"#, r#"죭"#, r#"죭"#, r#"죭"#, r#"죭"#),
+        (r#"죮"#, r#"죮"#, r#"죮"#, r#"죮"#, r#"죮"#),
+        (r#"죯"#, r#"죯"#, r#"죯"#, r#"죯"#, r#"죯"#),
+        (r#"죰"#, r#"죰"#, r#"죰"#, r#"죰"#, r#"죰"#),
+        (r#"죱"#, r#"죱"#, r#"죱"#, r#"죱"#, r#"죱"#),
+        (r#"죲"#, r#"죲"#, r#"죲"#, r#"죲"#, r#"죲"#),
+        (r#"죳"#, r#"죳"#, r#"죳"#, r#"죳"#, r#"죳"#),
+        (r#"죴"#, r#"죴"#, r#"죴"#, r#"죴"#, r#"죴"#),
+        (r#"죵"#, r#"죵"#, r#"죵"#, r#"죵"#, r#"죵"#),
+        (r#"죶"#, r#"죶"#, r#"죶"#, r#"죶"#, r#"죶"#),
+        (r#"죷"#, r#"죷"#, r#"죷"#, r#"죷"#, r#"죷"#),
+        (r#"죸"#, r#"죸"#, r#"죸"#, r#"죸"#, r#"죸"#),
+        (r#"죹"#, r#"죹"#, r#"죹"#, r#"죹"#, r#"죹"#),
+        (r#"죺"#, r#"죺"#, r#"죺"#, r#"죺"#, r#"죺"#),
+        (r#"죻"#, r#"죻"#, r#"죻"#, r#"죻"#, r#"죻"#),
+        (r#"주"#, r#"주"#, r#"주"#, r#"주"#, r#"주"#),
+        (r#"죽"#, r#"죽"#, r#"죽"#, r#"죽"#, r#"죽"#),
+        (r#"죾"#, r#"죾"#, r#"죾"#, r#"죾"#, r#"죾"#),
+        (r#"죿"#, r#"죿"#, r#"죿"#, r#"죿"#, r#"죿"#),
+        (r#"준"#, r#"준"#, r#"준"#, r#"준"#, r#"준"#),
+        (r#"줁"#, r#"줁"#, r#"줁"#, r#"줁"#, r#"줁"#),
+        (r#"줂"#, r#"줂"#, r#"줂"#, r#"줂"#, r#"줂"#),
+        (r#"줃"#, r#"줃"#, r#"줃"#, r#"줃"#, r#"줃"#),
+        (r#"줄"#, r#"줄"#, r#"줄"#, r#"줄"#, r#"줄"#),
+        (r#"줅"#, r#"줅"#, r#"줅"#, r#"줅"#, r#"줅"#),
+        (r#"줆"#, r#"줆"#, r#"줆"#, r#"줆"#, r#"줆"#),
+        (r#"줇"#, r#"줇"#, r#"줇"#, r#"줇"#, r#"줇"#),
+        (r#"줈"#, r#"줈"#, r#"줈"#, r#"줈"#, r#"줈"#),
+        (r#"줉"#, r#"줉"#, r#"줉"#, r#"줉"#, r#"줉"#),
+        (r#"줊"#, r#"줊"#, r#"줊"#, r#"줊"#, r#"줊"#),
+        (r#"줋"#, r#"줋"#, r#"줋"#, r#"줋"#, r#"줋"#),
+        (r#"줌"#, r#"줌"#, r#"줌"#, r#"줌"#, r#"줌"#),
+        (r#"줍"#, r#"줍"#, r#"줍"#, r#"줍"#, r#"줍"#),
+        (r#"줎"#, r#"줎"#, r#"줎"#, r#"줎"#, r#"줎"#),
+        (r#"줏"#, r#"줏"#, r#"줏"#, r#"줏"#, r#"줏"#),
+        (r#"줐"#, r#"줐"#, r#"줐"#, r#"줐"#, r#"줐"#),
+        (r#"중"#, r#"중"#, r#"중"#, r#"중"#, r#"중"#),
+        (r#"줒"#, r#"줒"#, r#"줒"#, r#"줒"#, r#"줒"#),
+        (r#"줓"#, r#"줓"#, r#"줓"#, r#"줓"#, r#"줓"#),
+        (r#"줔"#, r#"줔"#, r#"줔"#, r#"줔"#, r#"줔"#),
+        (r#"줕"#, r#"줕"#, r#"줕"#, r#"줕"#, r#"줕"#),
+        (r#"줖"#, r#"줖"#, r#"줖"#, r#"줖"#, r#"줖"#),
+        (r#"줗"#, r#"줗"#, r#"줗"#, r#"줗"#, r#"줗"#),
+        (r#"줘"#, r#"줘"#, r#"줘"#, r#"줘"#, r#"줘"#),
+        (r#"줙"#, r#"줙"#, r#"줙"#, r#"줙"#, r#"줙"#),
+        (r#"줚"#, r#"줚"#, r#"줚"#, r#"줚"#, r#"줚"#),
+        (r#"줛"#, r#"줛"#, r#"줛"#, r#"줛"#, r#"줛"#),
+        (r#"줜"#, r#"줜"#, r#"줜"#, r#"줜"#, r#"줜"#),
+        (r#"줝"#, r#"줝"#, r#"줝"#, r#"줝"#, r#"줝"#),
+        (r#"줞"#, r#"줞"#, r#"줞"#, r#"줞"#, r#"줞"#),
+        (r#"줟"#, r#"줟"#, r#"줟"#, r#"줟"#, r#"줟"#),
+        (r#"줠"#, r#"줠"#, r#"줠"#, r#"줠"#, r#"줠"#),
+        (r#"줡"#, r#"줡"#, r#"줡"#, r#"줡"#, r#"줡"#),
+        (r#"줢"#, r#"줢"#, r#"줢"#, r#"줢"#, r#"줢"#),
+        (r#"줣"#, r#"줣"#, r#"줣"#, r#"줣"#, r#"줣"#),
+        (r#"줤"#, r#"줤"#, r#"줤"#, r#"줤"#, r#"줤"#),
+        (r#"줥"#, r#"줥"#, r#"줥"#, r#"줥"#, r#"줥"#),
+        (r#"줦"#, r#"줦"#, r#"줦"#, r#"줦"#, r#"줦"#),
+        (r#"줧"#, r#"줧"#, r#"줧"#, r#"줧"#, r#"줧"#),
+        (r#"줨"#, r#"줨"#, r#"줨"#, r#"줨"#, r#"줨"#),
+        (r#"줩"#, r#"줩"#, r#"줩"#, r#"줩"#, r#"줩"#),
+        (r#"줪"#, r#"줪"#, r#"줪"#, r#"줪"#, r#"줪"#),
+        (r#"줫"#, r#"줫"#, r#"줫"#, r#"줫"#, r#"줫"#),
+        (r#"줬"#, r#"줬"#, r#"줬"#, r#"줬"#, r#"줬"#),
+        (r#"줭"#, r#"줭"#, r#"줭"#, r#"줭"#, r#"줭"#),
+        (r#"줮"#, r#"줮"#, r#"줮"#, r#"줮"#, r#"줮"#),
+        (r#"줯"#, r#"줯"#, r#"줯"#, r#"줯"#, r#"줯"#),
+        (r#"줰"#, r#"줰"#, r#"줰"#, r#"줰"#, r#"줰"#),
+        (r#"줱"#, r#"줱"#, r#"줱"#, r#"줱"#, r#"줱"#),
+        (r#"줲"#, r#"줲"#, r#"줲"#, r#"줲"#, r#"줲"#),
+        (r#"줳"#, r#"줳"#, r#"줳"#, r#"줳"#, r#"줳"#),
+        (r#"줴"#, r#"줴"#, r#"줴"#, r#"줴"#, r#"줴"#),
+        (r#"줵"#, r#"줵"#, r#"줵"#, r#"줵"#, r#"줵"#),
+        (r#"줶"#, r#"줶"#, r#"줶"#, r#"줶"#, r#"줶"#),
+        (r#"줷"#, r#"줷"#, r#"줷"#, r#"줷"#, r#"줷"#),
+        (r#"줸"#, r#"줸"#, r#"줸"#, r#"줸"#, r#"줸"#),
+        (r#"줹"#, r#"줹"#, r#"줹"#, r#"줹"#, r#"줹"#),
+        (r#"줺"#, r#"줺"#, r#"줺"#, r#"줺"#, r#"줺"#),
+        (r#"줻"#, r#"줻"#, r#"줻"#, r#"줻"#, r#"줻"#),
+        (r#"줼"#, r#"줼"#, r#"줼"#, r#"줼"#, r#"줼"#),
+        (r#"줽"#, r#"줽"#, r#"줽"#, r#"줽"#, r#"줽"#),
+        (r#"줾"#, r#"줾"#, r#"줾"#, r#"줾"#, r#"줾"#),
+        (r#"줿"#, r#"줿"#, r#"줿"#, r#"줿"#, r#"줿"#),
+        (r#"쥀"#, r#"쥀"#, r#"쥀"#, r#"쥀"#, r#"쥀"#),
+        (r#"쥁"#, r#"쥁"#, r#"쥁"#, r#"쥁"#, r#"쥁"#),
+        (r#"쥂"#, r#"쥂"#, r#"쥂"#, r#"쥂"#, r#"쥂"#),
+        (r#"쥃"#, r#"쥃"#, r#"쥃"#, r#"쥃"#, r#"쥃"#),
+        (r#"쥄"#, r#"쥄"#, r#"쥄"#, r#"쥄"#, r#"쥄"#),
+        (r#"쥅"#, r#"쥅"#, r#"쥅"#, r#"쥅"#, r#"쥅"#),
+        (r#"쥆"#, r#"쥆"#, r#"쥆"#, r#"쥆"#, r#"쥆"#),
+        (r#"쥇"#, r#"쥇"#, r#"쥇"#, r#"쥇"#, r#"쥇"#),
+        (r#"쥈"#, r#"쥈"#, r#"쥈"#, r#"쥈"#, r#"쥈"#),
+        (r#"쥉"#, r#"쥉"#, r#"쥉"#, r#"쥉"#, r#"쥉"#),
+        (r#"쥊"#, r#"쥊"#, r#"쥊"#, r#"쥊"#, r#"쥊"#),
+        (r#"쥋"#, r#"쥋"#, r#"쥋"#, r#"쥋"#, r#"쥋"#),
+        (r#"쥌"#, r#"쥌"#, r#"쥌"#, r#"쥌"#, r#"쥌"#),
+        (r#"쥍"#, r#"쥍"#, r#"쥍"#, r#"쥍"#, r#"쥍"#),
+        (r#"쥎"#, r#"쥎"#, r#"쥎"#, r#"쥎"#, r#"쥎"#),
+        (r#"쥏"#, r#"쥏"#, r#"쥏"#, r#"쥏"#, r#"쥏"#),
+        (r#"쥐"#, r#"쥐"#, r#"쥐"#, r#"쥐"#, r#"쥐"#),
+        (r#"쥑"#, r#"쥑"#, r#"쥑"#, r#"쥑"#, r#"쥑"#),
+        (r#"쥒"#, r#"쥒"#, r#"쥒"#, r#"쥒"#, r#"쥒"#),
+        (r#"쥓"#, r#"쥓"#, r#"쥓"#, r#"쥓"#, r#"쥓"#),
+        (r#"쥔"#, r#"쥔"#, r#"쥔"#, r#"쥔"#, r#"쥔"#),
+        (r#"쥕"#, r#"쥕"#, r#"쥕"#, r#"쥕"#, r#"쥕"#),
+        (r#"쥖"#, r#"쥖"#, r#"쥖"#, r#"쥖"#, r#"쥖"#),
+        (r#"쥗"#, r#"쥗"#, r#"쥗"#, r#"쥗"#, r#"쥗"#),
+        (r#"쥘"#, r#"쥘"#, r#"쥘"#, r#"쥘"#, r#"쥘"#),
+        (r#"쥙"#, r#"쥙"#, r#"쥙"#, r#"쥙"#, r#"쥙"#),
+        (r#"쥚"#, r#"쥚"#, r#"쥚"#, r#"쥚"#, r#"쥚"#),
+        (r#"쥛"#, r#"쥛"#, r#"쥛"#, r#"쥛"#, r#"쥛"#),
+        (r#"쥜"#, r#"쥜"#, r#"쥜"#, r#"쥜"#, r#"쥜"#),
+        (r#"쥝"#, r#"쥝"#, r#"쥝"#, r#"쥝"#, r#"쥝"#),
+        (r#"쥞"#, r#"쥞"#, r#"쥞"#, r#"쥞"#, r#"쥞"#),
+        (r#"쥟"#, r#"쥟"#, r#"쥟"#, r#"쥟"#, r#"쥟"#),
+        (r#"쥠"#, r#"쥠"#, r#"쥠"#, r#"쥠"#, r#"쥠"#),
+        (r#"쥡"#, r#"쥡"#, r#"쥡"#, r#"쥡"#, r#"쥡"#),
+        (r#"쥢"#, r#"쥢"#, r#"쥢"#, r#"쥢"#, r#"쥢"#),
+        (r#"쥣"#, r#"쥣"#, r#"쥣"#, r#"쥣"#, r#"쥣"#),
+        (r#"쥤"#, r#"쥤"#, r#"쥤"#, r#"쥤"#, r#"쥤"#),
+        (r#"쥥"#, r#"쥥"#, r#"쥥"#, r#"쥥"#, r#"쥥"#),
+        (r#"쥦"#, r#"쥦"#, r#"쥦"#, r#"쥦"#, r#"쥦"#),
+        (r#"쥧"#, r#"쥧"#, r#"쥧"#, r#"쥧"#, r#"쥧"#),
+        (r#"쥨"#, r#"쥨"#, r#"쥨"#, r#"쥨"#, r#"쥨"#),
+        (r#"쥩"#, r#"쥩"#, r#"쥩"#, r#"쥩"#, r#"쥩"#),
+        (r#"쥪"#, r#"쥪"#, r#"쥪"#, r#"쥪"#, r#"쥪"#),
+        (r#"쥫"#, r#"쥫"#, r#"쥫"#, r#"쥫"#, r#"쥫"#),
+        (r#"쥬"#, r#"쥬"#, r#"쥬"#, r#"쥬"#, r#"쥬"#),
+        (r#"쥭"#, r#"쥭"#, r#"쥭"#, r#"쥭"#, r#"쥭"#),
+        (r#"쥮"#, r#"쥮"#, r#"쥮"#, r#"쥮"#, r#"쥮"#),
+        (r#"쥯"#, r#"쥯"#, r#"쥯"#, r#"쥯"#, r#"쥯"#),
+        (r#"쥰"#, r#"쥰"#, r#"쥰"#, r#"쥰"#, r#"쥰"#),
+        (r#"쥱"#, r#"쥱"#, r#"쥱"#, r#"쥱"#, r#"쥱"#),
+        (r#"쥲"#, r#"쥲"#, r#"쥲"#, r#"쥲"#, r#"쥲"#),
+        (r#"쥳"#, r#"쥳"#, r#"쥳"#, r#"쥳"#, r#"쥳"#),
+        (r#"쥴"#, r#"쥴"#, r#"쥴"#, r#"쥴"#, r#"쥴"#),
+        (r#"쥵"#, r#"쥵"#, r#"쥵"#, r#"쥵"#, r#"쥵"#),
+        (r#"쥶"#, r#"쥶"#, r#"쥶"#, r#"쥶"#, r#"쥶"#),
+        (r#"쥷"#, r#"쥷"#, r#"쥷"#, r#"쥷"#, r#"쥷"#),
+        (r#"쥸"#, r#"쥸"#, r#"쥸"#, r#"쥸"#, r#"쥸"#),
+        (r#"쥹"#, r#"쥹"#, r#"쥹"#, r#"쥹"#, r#"쥹"#),
+        (r#"쥺"#, r#"쥺"#, r#"쥺"#, r#"쥺"#, r#"쥺"#),
+        (r#"쥻"#, r#"쥻"#, r#"쥻"#, r#"쥻"#, r#"쥻"#),
+        (r#"쥼"#, r#"쥼"#, r#"쥼"#, r#"쥼"#, r#"쥼"#),
+        (r#"쥽"#, r#"쥽"#, r#"쥽"#, r#"쥽"#, r#"쥽"#),
+        (r#"쥾"#, r#"쥾"#, r#"쥾"#, r#"쥾"#, r#"쥾"#),
+        (r#"쥿"#, r#"쥿"#, r#"쥿"#, r#"쥿"#, r#"쥿"#),
+        (r#"즀"#, r#"즀"#, r#"즀"#, r#"즀"#, r#"즀"#),
+        (r#"즁"#, r#"즁"#, r#"즁"#, r#"즁"#, r#"즁"#),
+        (r#"즂"#, r#"즂"#, r#"즂"#, r#"즂"#, r#"즂"#),
+        (r#"즃"#, r#"즃"#, r#"즃"#, r#"즃"#, r#"즃"#),
+        (r#"즄"#, r#"즄"#, r#"즄"#, r#"즄"#, r#"즄"#),
+        (r#"즅"#, r#"즅"#, r#"즅"#, r#"즅"#, r#"즅"#),
+        (r#"즆"#, r#"즆"#, r#"즆"#, r#"즆"#, r#"즆"#),
+        (r#"즇"#, r#"즇"#, r#"즇"#, r#"즇"#, r#"즇"#),
+        (r#"즈"#, r#"즈"#, r#"즈"#, r#"즈"#, r#"즈"#),
+        (r#"즉"#, r#"즉"#, r#"즉"#, r#"즉"#, r#"즉"#),
+        (r#"즊"#, r#"즊"#, r#"즊"#, r#"즊"#, r#"즊"#),
+        (r#"즋"#, r#"즋"#, r#"즋"#, r#"즋"#, r#"즋"#),
+        (r#"즌"#, r#"즌"#, r#"즌"#, r#"즌"#, r#"즌"#),
+        (r#"즍"#, r#"즍"#, r#"즍"#, r#"즍"#, r#"즍"#),
+        (r#"즎"#, r#"즎"#, r#"즎"#, r#"즎"#, r#"즎"#),
+        (r#"즏"#, r#"즏"#, r#"즏"#, r#"즏"#, r#"즏"#),
+        (r#"즐"#, r#"즐"#, r#"즐"#, r#"즐"#, r#"즐"#),
+        (r#"즑"#, r#"즑"#, r#"즑"#, r#"즑"#, r#"즑"#),
+        (r#"즒"#, r#"즒"#, r#"즒"#, r#"즒"#, r#"즒"#),
+        (r#"즓"#, r#"즓"#, r#"즓"#, r#"즓"#, r#"즓"#),
+        (r#"즔"#, r#"즔"#, r#"즔"#, r#"즔"#, r#"즔"#),
+        (r#"즕"#, r#"즕"#, r#"즕"#, r#"즕"#, r#"즕"#),
+        (r#"즖"#, r#"즖"#, r#"즖"#, r#"즖"#, r#"즖"#),
+        (r#"즗"#, r#"즗"#, r#"즗"#, r#"즗"#, r#"즗"#),
+        (r#"즘"#, r#"즘"#, r#"즘"#, r#"즘"#, r#"즘"#),
+        (r#"즙"#, r#"즙"#, r#"즙"#, r#"즙"#, r#"즙"#),
+        (r#"즚"#, r#"즚"#, r#"즚"#, r#"즚"#, r#"즚"#),
+        (r#"즛"#, r#"즛"#, r#"즛"#, r#"즛"#, r#"즛"#),
+        (r#"즜"#, r#"즜"#, r#"즜"#, r#"즜"#, r#"즜"#),
+        (r#"증"#, r#"증"#, r#"증"#, r#"증"#, r#"증"#),
+        (r#"즞"#, r#"즞"#, r#"즞"#, r#"즞"#, r#"즞"#),
+        (r#"즟"#, r#"즟"#, r#"즟"#, r#"즟"#, r#"즟"#),
+        (r#"즠"#, r#"즠"#, r#"즠"#, r#"즠"#, r#"즠"#),
+        (r#"즡"#, r#"즡"#, r#"즡"#, r#"즡"#, r#"즡"#),
+        (r#"즢"#, r#"즢"#, r#"즢"#, r#"즢"#, r#"즢"#),
+        (r#"즣"#, r#"즣"#, r#"즣"#, r#"즣"#, r#"즣"#),
+        (r#"즤"#, r#"즤"#, r#"즤"#, r#"즤"#, r#"즤"#),
+        (r#"즥"#, r#"즥"#, r#"즥"#, r#"즥"#, r#"즥"#),
+        (r#"즦"#, r#"즦"#, r#"즦"#, r#"즦"#, r#"즦"#),
+        (r#"즧"#, r#"즧"#, r#"즧"#, r#"즧"#, r#"즧"#),
+        (r#"즨"#, r#"즨"#, r#"즨"#, r#"즨"#, r#"즨"#),
+        (r#"즩"#, r#"즩"#, r#"즩"#, r#"즩"#, r#"즩"#),
+        (r#"즪"#, r#"즪"#, r#"즪"#, r#"즪"#, r#"즪"#),
+        (r#"즫"#, r#"즫"#, r#"즫"#, r#"즫"#, r#"즫"#),
+        (r#"즬"#, r#"즬"#, r#"즬"#, r#"즬"#, r#"즬"#),
+        (r#"즭"#, r#"즭"#, r#"즭"#, r#"즭"#, r#"즭"#),
+        (r#"즮"#, r#"즮"#, r#"즮"#, r#"즮"#, r#"즮"#),
+        (r#"즯"#, r#"즯"#, r#"즯"#, r#"즯"#, r#"즯"#),
+        (r#"즰"#, r#"즰"#, r#"즰"#, r#"즰"#, r#"즰"#),
+        (r#"즱"#, r#"즱"#, r#"즱"#, r#"즱"#, r#"즱"#),
+        (r#"즲"#, r#"즲"#, r#"즲"#, r#"즲"#, r#"즲"#),
+        (r#"즳"#, r#"즳"#, r#"즳"#, r#"즳"#, r#"즳"#),
+        (r#"즴"#, r#"즴"#, r#"즴"#, r#"즴"#, r#"즴"#),
+        (r#"즵"#, r#"즵"#, r#"즵"#, r#"즵"#, r#"즵"#),
+        (r#"즶"#, r#"즶"#, r#"즶"#, r#"즶"#, r#"즶"#),
+        (r#"즷"#, r#"즷"#, r#"즷"#, r#"즷"#, r#"즷"#),
+        (r#"즸"#, r#"즸"#, r#"즸"#, r#"즸"#, r#"즸"#),
+        (r#"즹"#, r#"즹"#, r#"즹"#, r#"즹"#, r#"즹"#),
+        (r#"즺"#, r#"즺"#, r#"즺"#, r#"즺"#, r#"즺"#),
+        (r#"즻"#, r#"즻"#, r#"즻"#, r#"즻"#, r#"즻"#),
+        (r#"즼"#, r#"즼"#, r#"즼"#, r#"즼"#, r#"즼"#),
+        (r#"즽"#, r#"즽"#, r#"즽"#, r#"즽"#, r#"즽"#),
+        (r#"즾"#, r#"즾"#, r#"즾"#, r#"즾"#, r#"즾"#),
+        (r#"즿"#, r#"즿"#, r#"즿"#, r#"즿"#, r#"즿"#),
+        (r#"지"#, r#"지"#, r#"지"#, r#"지"#, r#"지"#),
+        (r#"직"#, r#"직"#, r#"직"#, r#"직"#, r#"직"#),
+        (r#"짂"#, r#"짂"#, r#"짂"#, r#"짂"#, r#"짂"#),
+        (r#"짃"#, r#"짃"#, r#"짃"#, r#"짃"#, r#"짃"#),
+        (r#"진"#, r#"진"#, r#"진"#, r#"진"#, r#"진"#),
+        (r#"짅"#, r#"짅"#, r#"짅"#, r#"짅"#, r#"짅"#),
+        (r#"짆"#, r#"짆"#, r#"짆"#, r#"짆"#, r#"짆"#),
+        (r#"짇"#, r#"짇"#, r#"짇"#, r#"짇"#, r#"짇"#),
+        (r#"질"#, r#"질"#, r#"질"#, r#"질"#, r#"질"#),
+        (r#"짉"#, r#"짉"#, r#"짉"#, r#"짉"#, r#"짉"#),
+        (r#"짊"#, r#"짊"#, r#"짊"#, r#"짊"#, r#"짊"#),
+        (r#"짋"#, r#"짋"#, r#"짋"#, r#"짋"#, r#"짋"#),
+        (r#"짌"#, r#"짌"#, r#"짌"#, r#"짌"#, r#"짌"#),
+        (r#"짍"#, r#"짍"#, r#"짍"#, r#"짍"#, r#"짍"#),
+        (r#"짎"#, r#"짎"#, r#"짎"#, r#"짎"#, r#"짎"#),
+        (r#"짏"#, r#"짏"#, r#"짏"#, r#"짏"#, r#"짏"#),
+        (r#"짐"#, r#"짐"#, r#"짐"#, r#"짐"#, r#"짐"#),
+        (r#"집"#, r#"집"#, r#"집"#, r#"집"#, r#"집"#),
+        (r#"짒"#, r#"짒"#, r#"짒"#, r#"짒"#, r#"짒"#),
+        (r#"짓"#, r#"짓"#, r#"짓"#, r#"짓"#, r#"짓"#),
+        (r#"짔"#, r#"짔"#, r#"짔"#, r#"짔"#, r#"짔"#),
+        (r#"징"#, r#"징"#, r#"징"#, r#"징"#, r#"징"#),
+        (r#"짖"#, r#"짖"#, r#"짖"#, r#"짖"#, r#"짖"#),
+        (r#"짗"#, r#"짗"#, r#"짗"#, r#"짗"#, r#"짗"#),
+        (r#"짘"#, r#"짘"#, r#"짘"#, r#"짘"#, r#"짘"#),
+        (r#"짙"#, r#"짙"#, r#"짙"#, r#"짙"#, r#"짙"#),
+        (r#"짚"#, r#"짚"#, r#"짚"#, r#"짚"#, r#"짚"#),
+        (r#"짛"#, r#"짛"#, r#"짛"#, r#"짛"#, r#"짛"#),
+        (r#"짜"#, r#"짜"#, r#"짜"#, r#"짜"#, r#"짜"#),
+        (r#"짝"#, r#"짝"#, r#"짝"#, r#"짝"#, r#"짝"#),
+        (r#"짞"#, r#"짞"#, r#"짞"#, r#"짞"#, r#"짞"#),
+        (r#"짟"#, r#"짟"#, r#"짟"#, r#"짟"#, r#"짟"#),
+        (r#"짠"#, r#"짠"#, r#"짠"#, r#"짠"#, r#"짠"#),
+        (r#"짡"#, r#"짡"#, r#"짡"#, r#"짡"#, r#"짡"#),
+        (r#"짢"#, r#"짢"#, r#"짢"#, r#"짢"#, r#"짢"#),
+        (r#"짣"#, r#"짣"#, r#"짣"#, r#"짣"#, r#"짣"#),
+        (r#"짤"#, r#"짤"#, r#"짤"#, r#"짤"#, r#"짤"#),
+        (r#"짥"#, r#"짥"#, r#"짥"#, r#"짥"#, r#"짥"#),
+        (r#"짦"#, r#"짦"#, r#"짦"#, r#"짦"#, r#"짦"#),
+        (r#"짧"#, r#"짧"#, r#"짧"#, r#"짧"#, r#"짧"#),
+        (r#"짨"#, r#"짨"#, r#"짨"#, r#"짨"#, r#"짨"#),
+        (r#"짩"#, r#"짩"#, r#"짩"#, r#"짩"#, r#"짩"#),
+        (r#"짪"#, r#"짪"#, r#"짪"#, r#"짪"#, r#"짪"#),
+        (r#"짫"#, r#"짫"#, r#"짫"#, r#"짫"#, r#"짫"#),
+        (r#"짬"#, r#"짬"#, r#"짬"#, r#"짬"#, r#"짬"#),
+        (r#"짭"#, r#"짭"#, r#"짭"#, r#"짭"#, r#"짭"#),
+        (r#"짮"#, r#"짮"#, r#"짮"#, r#"짮"#, r#"짮"#),
+        (r#"짯"#, r#"짯"#, r#"짯"#, r#"짯"#, r#"짯"#),
+        (r#"짰"#, r#"짰"#, r#"짰"#, r#"짰"#, r#"짰"#),
+        (r#"짱"#, r#"짱"#, r#"짱"#, r#"짱"#, r#"짱"#),
+        (r#"짲"#, r#"짲"#, r#"짲"#, r#"짲"#, r#"짲"#),
+        (r#"짳"#, r#"짳"#, r#"짳"#, r#"짳"#, r#"짳"#),
+        (r#"짴"#, r#"짴"#, r#"짴"#, r#"짴"#, r#"짴"#),
+        (r#"짵"#, r#"짵"#, r#"짵"#, r#"짵"#, r#"짵"#),
+        (r#"짶"#, r#"짶"#, r#"짶"#, r#"짶"#, r#"짶"#),
+        (r#"짷"#, r#"짷"#, r#"짷"#, r#"짷"#, r#"짷"#),
+        (r#"째"#, r#"째"#, r#"째"#, r#"째"#, r#"째"#),
+        (r#"짹"#, r#"짹"#, r#"짹"#, r#"짹"#, r#"짹"#),
+        (r#"짺"#, r#"짺"#, r#"짺"#, r#"짺"#, r#"짺"#),
+        (r#"짻"#, r#"짻"#, r#"짻"#, r#"짻"#, r#"짻"#),
+        (r#"짼"#, r#"짼"#, r#"짼"#, r#"짼"#, r#"짼"#),
+        (r#"짽"#, r#"짽"#, r#"짽"#, r#"짽"#, r#"짽"#),
+        (r#"짾"#, r#"짾"#, r#"짾"#, r#"짾"#, r#"짾"#),
+        (r#"짿"#, r#"짿"#, r#"짿"#, r#"짿"#, r#"짿"#),
+        (r#"쨀"#, r#"쨀"#, r#"쨀"#, r#"쨀"#, r#"쨀"#),
+        (r#"쨁"#, r#"쨁"#, r#"쨁"#, r#"쨁"#, r#"쨁"#),
+        (r#"쨂"#, r#"쨂"#, r#"쨂"#, r#"쨂"#, r#"쨂"#),
+        (r#"쨃"#, r#"쨃"#, r#"쨃"#, r#"쨃"#, r#"쨃"#),
+        (r#"쨄"#, r#"쨄"#, r#"쨄"#, r#"쨄"#, r#"쨄"#),
+        (r#"쨅"#, r#"쨅"#, r#"쨅"#, r#"쨅"#, r#"쨅"#),
+        (r#"쨆"#, r#"쨆"#, r#"쨆"#, r#"쨆"#, r#"쨆"#),
+        (r#"쨇"#, r#"쨇"#, r#"쨇"#, r#"쨇"#, r#"쨇"#),
+        (r#"쨈"#, r#"쨈"#, r#"쨈"#, r#"쨈"#, r#"쨈"#),
+        (r#"쨉"#, r#"쨉"#, r#"쨉"#, r#"쨉"#, r#"쨉"#),
+        (r#"쨊"#, r#"쨊"#, r#"쨊"#, r#"쨊"#, r#"쨊"#),
+        (r#"쨋"#, r#"쨋"#, r#"쨋"#, r#"쨋"#, r#"쨋"#),
+        (r#"쨌"#, r#"쨌"#, r#"쨌"#, r#"쨌"#, r#"쨌"#),
+        (r#"쨍"#, r#"쨍"#, r#"쨍"#, r#"쨍"#, r#"쨍"#),
+        (r#"쨎"#, r#"쨎"#, r#"쨎"#, r#"쨎"#, r#"쨎"#),
+        (r#"쨏"#, r#"쨏"#, r#"쨏"#, r#"쨏"#, r#"쨏"#),
+        (r#"쨐"#, r#"쨐"#, r#"쨐"#, r#"쨐"#, r#"쨐"#),
+        (r#"쨑"#, r#"쨑"#, r#"쨑"#, r#"쨑"#, r#"쨑"#),
+        (r#"쨒"#, r#"쨒"#, r#"쨒"#, r#"쨒"#, r#"쨒"#),
+        (r#"쨓"#, r#"쨓"#, r#"쨓"#, r#"쨓"#, r#"쨓"#),
+        (r#"쨔"#, r#"쨔"#, r#"쨔"#, r#"쨔"#, r#"쨔"#),
+        (r#"쨕"#, r#"쨕"#, r#"쨕"#, r#"쨕"#, r#"쨕"#),
+        (r#"쨖"#, r#"쨖"#, r#"쨖"#, r#"쨖"#, r#"쨖"#),
+        (r#"쨗"#, r#"쨗"#, r#"쨗"#, r#"쨗"#, r#"쨗"#),
+        (r#"쨘"#, r#"쨘"#, r#"쨘"#, r#"쨘"#, r#"쨘"#),
+        (r#"쨙"#, r#"쨙"#, r#"쨙"#, r#"쨙"#, r#"쨙"#),
+        (r#"쨚"#, r#"쨚"#, r#"쨚"#, r#"쨚"#, r#"쨚"#),
+        (r#"쨛"#, r#"쨛"#, r#"쨛"#, r#"쨛"#, r#"쨛"#),
+        (r#"쨜"#, r#"쨜"#, r#"쨜"#, r#"쨜"#, r#"쨜"#),
+        (r#"쨝"#, r#"쨝"#, r#"쨝"#, r#"쨝"#, r#"쨝"#),
+        (r#"쨞"#, r#"쨞"#, r#"쨞"#, r#"쨞"#, r#"쨞"#),
+        (r#"쨟"#, r#"쨟"#, r#"쨟"#, r#"쨟"#, r#"쨟"#),
+        (r#"쨠"#, r#"쨠"#, r#"쨠"#, r#"쨠"#, r#"쨠"#),
+        (r#"쨡"#, r#"쨡"#, r#"쨡"#, r#"쨡"#, r#"쨡"#),
+        (r#"쨢"#, r#"쨢"#, r#"쨢"#, r#"쨢"#, r#"쨢"#),
+        (r#"쨣"#, r#"쨣"#, r#"쨣"#, r#"쨣"#, r#"쨣"#),
+        (r#"쨤"#, r#"쨤"#, r#"쨤"#, r#"쨤"#, r#"쨤"#),
+        (r#"쨥"#, r#"쨥"#, r#"쨥"#, r#"쨥"#, r#"쨥"#),
+        (r#"쨦"#, r#"쨦"#, r#"쨦"#, r#"쨦"#, r#"쨦"#),
+        (r#"쨧"#, r#"쨧"#, r#"쨧"#, r#"쨧"#, r#"쨧"#),
+        (r#"쨨"#, r#"쨨"#, r#"쨨"#, r#"쨨"#, r#"쨨"#),
+        (r#"쨩"#, r#"쨩"#, r#"쨩"#, r#"쨩"#, r#"쨩"#),
+        (r#"쨪"#, r#"쨪"#, r#"쨪"#, r#"쨪"#, r#"쨪"#),
+        (r#"쨫"#, r#"쨫"#, r#"쨫"#, r#"쨫"#, r#"쨫"#),
+        (r#"쨬"#, r#"쨬"#, r#"쨬"#, r#"쨬"#, r#"쨬"#),
+        (r#"쨭"#, r#"쨭"#, r#"쨭"#, r#"쨭"#, r#"쨭"#),
+        (r#"쨮"#, r#"쨮"#, r#"쨮"#, r#"쨮"#, r#"쨮"#),
+        (r#"쨯"#, r#"쨯"#, r#"쨯"#, r#"쨯"#, r#"쨯"#),
+        (r#"쨰"#, r#"쨰"#, r#"쨰"#, r#"쨰"#, r#"쨰"#),
+        (r#"쨱"#, r#"쨱"#, r#"쨱"#, r#"쨱"#, r#"쨱"#),
+        (r#"쨲"#, r#"쨲"#, r#"쨲"#, r#"쨲"#, r#"쨲"#),
+        (r#"쨳"#, r#"쨳"#, r#"쨳"#, r#"쨳"#, r#"쨳"#),
+        (r#"쨴"#, r#"쨴"#, r#"쨴"#, r#"쨴"#, r#"쨴"#),
+        (r#"쨵"#, r#"쨵"#, r#"쨵"#, r#"쨵"#, r#"쨵"#),
+        (r#"쨶"#, r#"쨶"#, r#"쨶"#, r#"쨶"#, r#"쨶"#),
+        (r#"쨷"#, r#"쨷"#, r#"쨷"#, r#"쨷"#, r#"쨷"#),
+        (r#"쨸"#, r#"쨸"#, r#"쨸"#, r#"쨸"#, r#"쨸"#),
+        (r#"쨹"#, r#"쨹"#, r#"쨹"#, r#"쨹"#, r#"쨹"#),
+        (r#"쨺"#, r#"쨺"#, r#"쨺"#, r#"쨺"#, r#"쨺"#),
+        (r#"쨻"#, r#"쨻"#, r#"쨻"#, r#"쨻"#, r#"쨻"#),
+        (r#"쨼"#, r#"쨼"#, r#"쨼"#, r#"쨼"#, r#"쨼"#),
+        (r#"쨽"#, r#"쨽"#, r#"쨽"#, r#"쨽"#, r#"쨽"#),
+        (r#"쨾"#, r#"쨾"#, r#"쨾"#, r#"쨾"#, r#"쨾"#),
+        (r#"쨿"#, r#"쨿"#, r#"쨿"#, r#"쨿"#, r#"쨿"#),
+        (r#"쩀"#, r#"쩀"#, r#"쩀"#, r#"쩀"#, r#"쩀"#),
+        (r#"쩁"#, r#"쩁"#, r#"쩁"#, r#"쩁"#, r#"쩁"#),
+        (r#"쩂"#, r#"쩂"#, r#"쩂"#, r#"쩂"#, r#"쩂"#),
+        (r#"쩃"#, r#"쩃"#, r#"쩃"#, r#"쩃"#, r#"쩃"#),
+        (r#"쩄"#, r#"쩄"#, r#"쩄"#, r#"쩄"#, r#"쩄"#),
+        (r#"쩅"#, r#"쩅"#, r#"쩅"#, r#"쩅"#, r#"쩅"#),
+        (r#"쩆"#, r#"쩆"#, r#"쩆"#, r#"쩆"#, r#"쩆"#),
+        (r#"쩇"#, r#"쩇"#, r#"쩇"#, r#"쩇"#, r#"쩇"#),
+        (r#"쩈"#, r#"쩈"#, r#"쩈"#, r#"쩈"#, r#"쩈"#),
+        (r#"쩉"#, r#"쩉"#, r#"쩉"#, r#"쩉"#, r#"쩉"#),
+        (r#"쩊"#, r#"쩊"#, r#"쩊"#, r#"쩊"#, r#"쩊"#),
+        (r#"쩋"#, r#"쩋"#, r#"쩋"#, r#"쩋"#, r#"쩋"#),
+        (r#"쩌"#, r#"쩌"#, r#"쩌"#, r#"쩌"#, r#"쩌"#),
+        (r#"쩍"#, r#"쩍"#, r#"쩍"#, r#"쩍"#, r#"쩍"#),
+        (r#"쩎"#, r#"쩎"#, r#"쩎"#, r#"쩎"#, r#"쩎"#),
+        (r#"쩏"#, r#"쩏"#, r#"쩏"#, r#"쩏"#, r#"쩏"#),
+        (r#"쩐"#, r#"쩐"#, r#"쩐"#, r#"쩐"#, r#"쩐"#),
+        (r#"쩑"#, r#"쩑"#, r#"쩑"#, r#"쩑"#, r#"쩑"#),
+        (r#"쩒"#, r#"쩒"#, r#"쩒"#, r#"쩒"#, r#"쩒"#),
+        (r#"쩓"#, r#"쩓"#, r#"쩓"#, r#"쩓"#, r#"쩓"#),
+        (r#"쩔"#, r#"쩔"#, r#"쩔"#, r#"쩔"#, r#"쩔"#),
+        (r#"쩕"#, r#"쩕"#, r#"쩕"#, r#"쩕"#, r#"쩕"#),
+        (r#"쩖"#, r#"쩖"#, r#"쩖"#, r#"쩖"#, r#"쩖"#),
+        (r#"쩗"#, r#"쩗"#, r#"쩗"#, r#"쩗"#, r#"쩗"#),
+        (r#"쩘"#, r#"쩘"#, r#"쩘"#, r#"쩘"#, r#"쩘"#),
+        (r#"쩙"#, r#"쩙"#, r#"쩙"#, r#"쩙"#, r#"쩙"#),
+        (r#"쩚"#, r#"쩚"#, r#"쩚"#, r#"쩚"#, r#"쩚"#),
+        (r#"쩛"#, r#"쩛"#, r#"쩛"#, r#"쩛"#, r#"쩛"#),
+        (r#"쩜"#, r#"쩜"#, r#"쩜"#, r#"쩜"#, r#"쩜"#),
+        (r#"쩝"#, r#"쩝"#, r#"쩝"#, r#"쩝"#, r#"쩝"#),
+        (r#"쩞"#, r#"쩞"#, r#"쩞"#, r#"쩞"#, r#"쩞"#),
+        (r#"쩟"#, r#"쩟"#, r#"쩟"#, r#"쩟"#, r#"쩟"#),
+        (r#"쩠"#, r#"쩠"#, r#"쩠"#, r#"쩠"#, r#"쩠"#),
+        (r#"쩡"#, r#"쩡"#, r#"쩡"#, r#"쩡"#, r#"쩡"#),
+        (r#"쩢"#, r#"쩢"#, r#"쩢"#, r#"쩢"#, r#"쩢"#),
+        (r#"쩣"#, r#"쩣"#, r#"쩣"#, r#"쩣"#, r#"쩣"#),
+        (r#"쩤"#, r#"쩤"#, r#"쩤"#, r#"쩤"#, r#"쩤"#),
+        (r#"쩥"#, r#"쩥"#, r#"쩥"#, r#"쩥"#, r#"쩥"#),
+        (r#"쩦"#, r#"쩦"#, r#"쩦"#, r#"쩦"#, r#"쩦"#),
+        (r#"쩧"#, r#"쩧"#, r#"쩧"#, r#"쩧"#, r#"쩧"#),
+        (r#"쩨"#, r#"쩨"#, r#"쩨"#, r#"쩨"#, r#"쩨"#),
+        (r#"쩩"#, r#"쩩"#, r#"쩩"#, r#"쩩"#, r#"쩩"#),
+        (r#"쩪"#, r#"쩪"#, r#"쩪"#, r#"쩪"#, r#"쩪"#),
+        (r#"쩫"#, r#"쩫"#, r#"쩫"#, r#"쩫"#, r#"쩫"#),
+        (r#"쩬"#, r#"쩬"#, r#"쩬"#, r#"쩬"#, r#"쩬"#),
+        (r#"쩭"#, r#"쩭"#, r#"쩭"#, r#"쩭"#, r#"쩭"#),
+        (r#"쩮"#, r#"쩮"#, r#"쩮"#, r#"쩮"#, r#"쩮"#),
+        (r#"쩯"#, r#"쩯"#, r#"쩯"#, r#"쩯"#, r#"쩯"#),
+        (r#"쩰"#, r#"쩰"#, r#"쩰"#, r#"쩰"#, r#"쩰"#),
+        (r#"쩱"#, r#"쩱"#, r#"쩱"#, r#"쩱"#, r#"쩱"#),
+        (r#"쩲"#, r#"쩲"#, r#"쩲"#, r#"쩲"#, r#"쩲"#),
+        (r#"쩳"#, r#"쩳"#, r#"쩳"#, r#"쩳"#, r#"쩳"#),
+        (r#"쩴"#, r#"쩴"#, r#"쩴"#, r#"쩴"#, r#"쩴"#),
+        (r#"쩵"#, r#"쩵"#, r#"쩵"#, r#"쩵"#, r#"쩵"#),
+        (r#"쩶"#, r#"쩶"#, r#"쩶"#, r#"쩶"#, r#"쩶"#),
+        (r#"쩷"#, r#"쩷"#, r#"쩷"#, r#"쩷"#, r#"쩷"#),
+        (r#"쩸"#, r#"쩸"#, r#"쩸"#, r#"쩸"#, r#"쩸"#),
+        (r#"쩹"#, r#"쩹"#, r#"쩹"#, r#"쩹"#, r#"쩹"#),
+        (r#"쩺"#, r#"쩺"#, r#"쩺"#, r#"쩺"#, r#"쩺"#),
+        (r#"쩻"#, r#"쩻"#, r#"쩻"#, r#"쩻"#, r#"쩻"#),
+        (r#"쩼"#, r#"쩼"#, r#"쩼"#, r#"쩼"#, r#"쩼"#),
+        (r#"쩽"#, r#"쩽"#, r#"쩽"#, r#"쩽"#, r#"쩽"#),
+        (r#"쩾"#, r#"쩾"#, r#"쩾"#, r#"쩾"#, r#"쩾"#),
+        (r#"쩿"#, r#"쩿"#, r#"쩿"#, r#"쩿"#, r#"쩿"#),
+        (r#"쪀"#, r#"쪀"#, r#"쪀"#, r#"쪀"#, r#"쪀"#),
+        (r#"쪁"#, r#"쪁"#, r#"쪁"#, r#"쪁"#, r#"쪁"#),
+        (r#"쪂"#, r#"쪂"#, r#"쪂"#, r#"쪂"#, r#"쪂"#),
+        (r#"쪃"#, r#"쪃"#, r#"쪃"#, r#"쪃"#, r#"쪃"#),
+        (r#"쪄"#, r#"쪄"#, r#"쪄"#, r#"쪄"#, r#"쪄"#),
+        (r#"쪅"#, r#"쪅"#, r#"쪅"#, r#"쪅"#, r#"쪅"#),
+        (r#"쪆"#, r#"쪆"#, r#"쪆"#, r#"쪆"#, r#"쪆"#),
+        (r#"쪇"#, r#"쪇"#, r#"쪇"#, r#"쪇"#, r#"쪇"#),
+        (r#"쪈"#, r#"쪈"#, r#"쪈"#, r#"쪈"#, r#"쪈"#),
+        (r#"쪉"#, r#"쪉"#, r#"쪉"#, r#"쪉"#, r#"쪉"#),
+        (r#"쪊"#, r#"쪊"#, r#"쪊"#, r#"쪊"#, r#"쪊"#),
+        (r#"쪋"#, r#"쪋"#, r#"쪋"#, r#"쪋"#, r#"쪋"#),
+        (r#"쪌"#, r#"쪌"#, r#"쪌"#, r#"쪌"#, r#"쪌"#),
+        (r#"쪍"#, r#"쪍"#, r#"쪍"#, r#"쪍"#, r#"쪍"#),
+        (r#"쪎"#, r#"쪎"#, r#"쪎"#, r#"쪎"#, r#"쪎"#),
+        (r#"쪏"#, r#"쪏"#, r#"쪏"#, r#"쪏"#, r#"쪏"#),
+        (r#"쪐"#, r#"쪐"#, r#"쪐"#, r#"쪐"#, r#"쪐"#),
+        (r#"쪑"#, r#"쪑"#, r#"쪑"#, r#"쪑"#, r#"쪑"#),
+        (r#"쪒"#, r#"쪒"#, r#"쪒"#, r#"쪒"#, r#"쪒"#),
+        (r#"쪓"#, r#"쪓"#, r#"쪓"#, r#"쪓"#, r#"쪓"#),
+        (r#"쪔"#, r#"쪔"#, r#"쪔"#, r#"쪔"#, r#"쪔"#),
+        (r#"쪕"#, r#"쪕"#, r#"쪕"#, r#"쪕"#, r#"쪕"#),
+        (r#"쪖"#, r#"쪖"#, r#"쪖"#, r#"쪖"#, r#"쪖"#),
+        (r#"쪗"#, r#"쪗"#, r#"쪗"#, r#"쪗"#, r#"쪗"#),
+        (r#"쪘"#, r#"쪘"#, r#"쪘"#, r#"쪘"#, r#"쪘"#),
+        (r#"쪙"#, r#"쪙"#, r#"쪙"#, r#"쪙"#, r#"쪙"#),
+        (r#"쪚"#, r#"쪚"#, r#"쪚"#, r#"쪚"#, r#"쪚"#),
+        (r#"쪛"#, r#"쪛"#, r#"쪛"#, r#"쪛"#, r#"쪛"#),
+        (r#"쪜"#, r#"쪜"#, r#"쪜"#, r#"쪜"#, r#"쪜"#),
+        (r#"쪝"#, r#"쪝"#, r#"쪝"#, r#"쪝"#, r#"쪝"#),
+        (r#"쪞"#, r#"쪞"#, r#"쪞"#, r#"쪞"#, r#"쪞"#),
+        (r#"쪟"#, r#"쪟"#, r#"쪟"#, r#"쪟"#, r#"쪟"#),
+        (r#"쪠"#, r#"쪠"#, r#"쪠"#, r#"쪠"#, r#"쪠"#),
+        (r#"쪡"#, r#"쪡"#, r#"쪡"#, r#"쪡"#, r#"쪡"#),
+        (r#"쪢"#, r#"쪢"#, r#"쪢"#, r#"쪢"#, r#"쪢"#),
+        (r#"쪣"#, r#"쪣"#, r#"쪣"#, r#"쪣"#, r#"쪣"#),
+        (r#"쪤"#, r#"쪤"#, r#"쪤"#, r#"쪤"#, r#"쪤"#),
+        (r#"쪥"#, r#"쪥"#, r#"쪥"#, r#"쪥"#, r#"쪥"#),
+        (r#"쪦"#, r#"쪦"#, r#"쪦"#, r#"쪦"#, r#"쪦"#),
+        (r#"쪧"#, r#"쪧"#, r#"쪧"#, r#"쪧"#, r#"쪧"#),
+        (r#"쪨"#, r#"쪨"#, r#"쪨"#, r#"쪨"#, r#"쪨"#),
+        (r#"쪩"#, r#"쪩"#, r#"쪩"#, r#"쪩"#, r#"쪩"#),
+        (r#"쪪"#, r#"쪪"#, r#"쪪"#, r#"쪪"#, r#"쪪"#),
+        (r#"쪫"#, r#"쪫"#, r#"쪫"#, r#"쪫"#, r#"쪫"#),
+        (r#"쪬"#, r#"쪬"#, r#"쪬"#, r#"쪬"#, r#"쪬"#),
+        (r#"쪭"#, r#"쪭"#, r#"쪭"#, r#"쪭"#, r#"쪭"#),
+        (r#"쪮"#, r#"쪮"#, r#"쪮"#, r#"쪮"#, r#"쪮"#),
+        (r#"쪯"#, r#"쪯"#, r#"쪯"#, r#"쪯"#, r#"쪯"#),
+        (r#"쪰"#, r#"쪰"#, r#"쪰"#, r#"쪰"#, r#"쪰"#),
+        (r#"쪱"#, r#"쪱"#, r#"쪱"#, r#"쪱"#, r#"쪱"#),
+        (r#"쪲"#, r#"쪲"#, r#"쪲"#, r#"쪲"#, r#"쪲"#),
+        (r#"쪳"#, r#"쪳"#, r#"쪳"#, r#"쪳"#, r#"쪳"#),
+        (r#"쪴"#, r#"쪴"#, r#"쪴"#, r#"쪴"#, r#"쪴"#),
+        (r#"쪵"#, r#"쪵"#, r#"쪵"#, r#"쪵"#, r#"쪵"#),
+        (r#"쪶"#, r#"쪶"#, r#"쪶"#, r#"쪶"#, r#"쪶"#),
+        (r#"쪷"#, r#"쪷"#, r#"쪷"#, r#"쪷"#, r#"쪷"#),
+        (r#"쪸"#, r#"쪸"#, r#"쪸"#, r#"쪸"#, r#"쪸"#),
+        (r#"쪹"#, r#"쪹"#, r#"쪹"#, r#"쪹"#, r#"쪹"#),
+        (r#"쪺"#, r#"쪺"#, r#"쪺"#, r#"쪺"#, r#"쪺"#),
+        (r#"쪻"#, r#"쪻"#, r#"쪻"#, r#"쪻"#, r#"쪻"#),
+        (r#"쪼"#, r#"쪼"#, r#"쪼"#, r#"쪼"#, r#"쪼"#),
+        (r#"쪽"#, r#"쪽"#, r#"쪽"#, r#"쪽"#, r#"쪽"#),
+        (r#"쪾"#, r#"쪾"#, r#"쪾"#, r#"쪾"#, r#"쪾"#),
+        (r#"쪿"#, r#"쪿"#, r#"쪿"#, r#"쪿"#, r#"쪿"#),
+        (r#"쫀"#, r#"쫀"#, r#"쫀"#, r#"쫀"#, r#"쫀"#),
+        (r#"쫁"#, r#"쫁"#, r#"쫁"#, r#"쫁"#, r#"쫁"#),
+        (r#"쫂"#, r#"쫂"#, r#"쫂"#, r#"쫂"#, r#"쫂"#),
+        (r#"쫃"#, r#"쫃"#, r#"쫃"#, r#"쫃"#, r#"쫃"#),
+        (r#"쫄"#, r#"쫄"#, r#"쫄"#, r#"쫄"#, r#"쫄"#),
+        (r#"쫅"#, r#"쫅"#, r#"쫅"#, r#"쫅"#, r#"쫅"#),
+        (r#"쫆"#, r#"쫆"#, r#"쫆"#, r#"쫆"#, r#"쫆"#),
+        (r#"쫇"#, r#"쫇"#, r#"쫇"#, r#"쫇"#, r#"쫇"#),
+        (r#"쫈"#, r#"쫈"#, r#"쫈"#, r#"쫈"#, r#"쫈"#),
+        (r#"쫉"#, r#"쫉"#, r#"쫉"#, r#"쫉"#, r#"쫉"#),
+        (r#"쫊"#, r#"쫊"#, r#"쫊"#, r#"쫊"#, r#"쫊"#),
+        (r#"쫋"#, r#"쫋"#, r#"쫋"#, r#"쫋"#, r#"쫋"#),
+        (r#"쫌"#, r#"쫌"#, r#"쫌"#, r#"쫌"#, r#"쫌"#),
+        (r#"쫍"#, r#"쫍"#, r#"쫍"#, r#"쫍"#, r#"쫍"#),
+        (r#"쫎"#, r#"쫎"#, r#"쫎"#, r#"쫎"#, r#"쫎"#),
+        (r#"쫏"#, r#"쫏"#, r#"쫏"#, r#"쫏"#, r#"쫏"#),
+        (r#"쫐"#, r#"쫐"#, r#"쫐"#, r#"쫐"#, r#"쫐"#),
+        (r#"쫑"#, r#"쫑"#, r#"쫑"#, r#"쫑"#, r#"쫑"#),
+        (r#"쫒"#, r#"쫒"#, r#"쫒"#, r#"쫒"#, r#"쫒"#),
+        (r#"쫓"#, r#"쫓"#, r#"쫓"#, r#"쫓"#, r#"쫓"#),
+        (r#"쫔"#, r#"쫔"#, r#"쫔"#, r#"쫔"#, r#"쫔"#),
+        (r#"쫕"#, r#"쫕"#, r#"쫕"#, r#"쫕"#, r#"쫕"#),
+        (r#"쫖"#, r#"쫖"#, r#"쫖"#, r#"쫖"#, r#"쫖"#),
+        (r#"쫗"#, r#"쫗"#, r#"쫗"#, r#"쫗"#, r#"쫗"#),
+        (r#"쫘"#, r#"쫘"#, r#"쫘"#, r#"쫘"#, r#"쫘"#),
+        (r#"쫙"#, r#"쫙"#, r#"쫙"#, r#"쫙"#, r#"쫙"#),
+        (r#"쫚"#, r#"쫚"#, r#"쫚"#, r#"쫚"#, r#"쫚"#),
+        (r#"쫛"#, r#"쫛"#, r#"쫛"#, r#"쫛"#, r#"쫛"#),
+        (r#"쫜"#, r#"쫜"#, r#"쫜"#, r#"쫜"#, r#"쫜"#),
+        (r#"쫝"#, r#"쫝"#, r#"쫝"#, r#"쫝"#, r#"쫝"#),
+        (r#"쫞"#, r#"쫞"#, r#"쫞"#, r#"쫞"#, r#"쫞"#),
+        (r#"쫟"#, r#"쫟"#, r#"쫟"#, r#"쫟"#, r#"쫟"#),
+        (r#"쫠"#, r#"쫠"#, r#"쫠"#, r#"쫠"#, r#"쫠"#),
+        (r#"쫡"#, r#"쫡"#, r#"쫡"#, r#"쫡"#, r#"쫡"#),
+        (r#"쫢"#, r#"쫢"#, r#"쫢"#, r#"쫢"#, r#"쫢"#),
+        (r#"쫣"#, r#"쫣"#, r#"쫣"#, r#"쫣"#, r#"쫣"#),
+        (r#"쫤"#, r#"쫤"#, r#"쫤"#, r#"쫤"#, r#"쫤"#),
+        (r#"쫥"#, r#"쫥"#, r#"쫥"#, r#"쫥"#, r#"쫥"#),
+        (r#"쫦"#, r#"쫦"#, r#"쫦"#, r#"쫦"#, r#"쫦"#),
+        (r#"쫧"#, r#"쫧"#, r#"쫧"#, r#"쫧"#, r#"쫧"#),
+        (r#"쫨"#, r#"쫨"#, r#"쫨"#, r#"쫨"#, r#"쫨"#),
+        (r#"쫩"#, r#"쫩"#, r#"쫩"#, r#"쫩"#, r#"쫩"#),
+        (r#"쫪"#, r#"쫪"#, r#"쫪"#, r#"쫪"#, r#"쫪"#),
+        (r#"쫫"#, r#"쫫"#, r#"쫫"#, r#"쫫"#, r#"쫫"#),
+        (r#"쫬"#, r#"쫬"#, r#"쫬"#, r#"쫬"#, r#"쫬"#),
+        (r#"쫭"#, r#"쫭"#, r#"쫭"#, r#"쫭"#, r#"쫭"#),
+        (r#"쫮"#, r#"쫮"#, r#"쫮"#, r#"쫮"#, r#"쫮"#),
+        (r#"쫯"#, r#"쫯"#, r#"쫯"#, r#"쫯"#, r#"쫯"#),
+        (r#"쫰"#, r#"쫰"#, r#"쫰"#, r#"쫰"#, r#"쫰"#),
+        (r#"쫱"#, r#"쫱"#, r#"쫱"#, r#"쫱"#, r#"쫱"#),
+        (r#"쫲"#, r#"쫲"#, r#"쫲"#, r#"쫲"#, r#"쫲"#),
+        (r#"쫳"#, r#"쫳"#, r#"쫳"#, r#"쫳"#, r#"쫳"#),
+        (r#"쫴"#, r#"쫴"#, r#"쫴"#, r#"쫴"#, r#"쫴"#),
+        (r#"쫵"#, r#"쫵"#, r#"쫵"#, r#"쫵"#, r#"쫵"#),
+        (r#"쫶"#, r#"쫶"#, r#"쫶"#, r#"쫶"#, r#"쫶"#),
+        (r#"쫷"#, r#"쫷"#, r#"쫷"#, r#"쫷"#, r#"쫷"#),
+        (r#"쫸"#, r#"쫸"#, r#"쫸"#, r#"쫸"#, r#"쫸"#),
+        (r#"쫹"#, r#"쫹"#, r#"쫹"#, r#"쫹"#, r#"쫹"#),
+        (r#"쫺"#, r#"쫺"#, r#"쫺"#, r#"쫺"#, r#"쫺"#),
+        (r#"쫻"#, r#"쫻"#, r#"쫻"#, r#"쫻"#, r#"쫻"#),
+        (r#"쫼"#, r#"쫼"#, r#"쫼"#, r#"쫼"#, r#"쫼"#),
+        (r#"쫽"#, r#"쫽"#, r#"쫽"#, r#"쫽"#, r#"쫽"#),
+        (r#"쫾"#, r#"쫾"#, r#"쫾"#, r#"쫾"#, r#"쫾"#),
+        (r#"쫿"#, r#"쫿"#, r#"쫿"#, r#"쫿"#, r#"쫿"#),
+        (r#"쬀"#, r#"쬀"#, r#"쬀"#, r#"쬀"#, r#"쬀"#),
+        (r#"쬁"#, r#"쬁"#, r#"쬁"#, r#"쬁"#, r#"쬁"#),
+        (r#"쬂"#, r#"쬂"#, r#"쬂"#, r#"쬂"#, r#"쬂"#),
+        (r#"쬃"#, r#"쬃"#, r#"쬃"#, r#"쬃"#, r#"쬃"#),
+        (r#"쬄"#, r#"쬄"#, r#"쬄"#, r#"쬄"#, r#"쬄"#),
+        (r#"쬅"#, r#"쬅"#, r#"쬅"#, r#"쬅"#, r#"쬅"#),
+        (r#"쬆"#, r#"쬆"#, r#"쬆"#, r#"쬆"#, r#"쬆"#),
+        (r#"쬇"#, r#"쬇"#, r#"쬇"#, r#"쬇"#, r#"쬇"#),
+        (r#"쬈"#, r#"쬈"#, r#"쬈"#, r#"쬈"#, r#"쬈"#),
+        (r#"쬉"#, r#"쬉"#, r#"쬉"#, r#"쬉"#, r#"쬉"#),
+        (r#"쬊"#, r#"쬊"#, r#"쬊"#, r#"쬊"#, r#"쬊"#),
+        (r#"쬋"#, r#"쬋"#, r#"쬋"#, r#"쬋"#, r#"쬋"#),
+        (r#"쬌"#, r#"쬌"#, r#"쬌"#, r#"쬌"#, r#"쬌"#),
+        (r#"쬍"#, r#"쬍"#, r#"쬍"#, r#"쬍"#, r#"쬍"#),
+        (r#"쬎"#, r#"쬎"#, r#"쬎"#, r#"쬎"#, r#"쬎"#),
+        (r#"쬏"#, r#"쬏"#, r#"쬏"#, r#"쬏"#, r#"쬏"#),
+        (r#"쬐"#, r#"쬐"#, r#"쬐"#, r#"쬐"#, r#"쬐"#),
+        (r#"쬑"#, r#"쬑"#, r#"쬑"#, r#"쬑"#, r#"쬑"#),
+        (r#"쬒"#, r#"쬒"#, r#"쬒"#, r#"쬒"#, r#"쬒"#),
+        (r#"쬓"#, r#"쬓"#, r#"쬓"#, r#"쬓"#, r#"쬓"#),
+        (r#"쬔"#, r#"쬔"#, r#"쬔"#, r#"쬔"#, r#"쬔"#),
+        (r#"쬕"#, r#"쬕"#, r#"쬕"#, r#"쬕"#, r#"쬕"#),
+        (r#"쬖"#, r#"쬖"#, r#"쬖"#, r#"쬖"#, r#"쬖"#),
+        (r#"쬗"#, r#"쬗"#, r#"쬗"#, r#"쬗"#, r#"쬗"#),
+        (r#"쬘"#, r#"쬘"#, r#"쬘"#, r#"쬘"#, r#"쬘"#),
+        (r#"쬙"#, r#"쬙"#, r#"쬙"#, r#"쬙"#, r#"쬙"#),
+        (r#"쬚"#, r#"쬚"#, r#"쬚"#, r#"쬚"#, r#"쬚"#),
+        (r#"쬛"#, r#"쬛"#, r#"쬛"#, r#"쬛"#, r#"쬛"#),
+        (r#"쬜"#, r#"쬜"#, r#"쬜"#, r#"쬜"#, r#"쬜"#),
+        (r#"쬝"#, r#"쬝"#, r#"쬝"#, r#"쬝"#, r#"쬝"#),
+        (r#"쬞"#, r#"쬞"#, r#"쬞"#, r#"쬞"#, r#"쬞"#),
+        (r#"쬟"#, r#"쬟"#, r#"쬟"#, r#"쬟"#, r#"쬟"#),
+        (r#"쬠"#, r#"쬠"#, r#"쬠"#, r#"쬠"#, r#"쬠"#),
+        (r#"쬡"#, r#"쬡"#, r#"쬡"#, r#"쬡"#, r#"쬡"#),
+        (r#"쬢"#, r#"쬢"#, r#"쬢"#, r#"쬢"#, r#"쬢"#),
+        (r#"쬣"#, r#"쬣"#, r#"쬣"#, r#"쬣"#, r#"쬣"#),
+        (r#"쬤"#, r#"쬤"#, r#"쬤"#, r#"쬤"#, r#"쬤"#),
+        (r#"쬥"#, r#"쬥"#, r#"쬥"#, r#"쬥"#, r#"쬥"#),
+        (r#"쬦"#, r#"쬦"#, r#"쬦"#, r#"쬦"#, r#"쬦"#),
+        (r#"쬧"#, r#"쬧"#, r#"쬧"#, r#"쬧"#, r#"쬧"#),
+        (r#"쬨"#, r#"쬨"#, r#"쬨"#, r#"쬨"#, r#"쬨"#),
+        (r#"쬩"#, r#"쬩"#, r#"쬩"#, r#"쬩"#, r#"쬩"#),
+        (r#"쬪"#, r#"쬪"#, r#"쬪"#, r#"쬪"#, r#"쬪"#),
+        (r#"쬫"#, r#"쬫"#, r#"쬫"#, r#"쬫"#, r#"쬫"#),
+        (r#"쬬"#, r#"쬬"#, r#"쬬"#, r#"쬬"#, r#"쬬"#),
+        (r#"쬭"#, r#"쬭"#, r#"쬭"#, r#"쬭"#, r#"쬭"#),
+        (r#"쬮"#, r#"쬮"#, r#"쬮"#, r#"쬮"#, r#"쬮"#),
+        (r#"쬯"#, r#"쬯"#, r#"쬯"#, r#"쬯"#, r#"쬯"#),
+        (r#"쬰"#, r#"쬰"#, r#"쬰"#, r#"쬰"#, r#"쬰"#),
+        (r#"쬱"#, r#"쬱"#, r#"쬱"#, r#"쬱"#, r#"쬱"#),
+        (r#"쬲"#, r#"쬲"#, r#"쬲"#, r#"쬲"#, r#"쬲"#),
+        (r#"쬳"#, r#"쬳"#, r#"쬳"#, r#"쬳"#, r#"쬳"#),
+        (r#"쬴"#, r#"쬴"#, r#"쬴"#, r#"쬴"#, r#"쬴"#),
+        (r#"쬵"#, r#"쬵"#, r#"쬵"#, r#"쬵"#, r#"쬵"#),
+        (r#"쬶"#, r#"쬶"#, r#"쬶"#, r#"쬶"#, r#"쬶"#),
+        (r#"쬷"#, r#"쬷"#, r#"쬷"#, r#"쬷"#, r#"쬷"#),
+        (r#"쬸"#, r#"쬸"#, r#"쬸"#, r#"쬸"#, r#"쬸"#),
+        (r#"쬹"#, r#"쬹"#, r#"쬹"#, r#"쬹"#, r#"쬹"#),
+        (r#"쬺"#, r#"쬺"#, r#"쬺"#, r#"쬺"#, r#"쬺"#),
+        (r#"쬻"#, r#"쬻"#, r#"쬻"#, r#"쬻"#, r#"쬻"#),
+        (r#"쬼"#, r#"쬼"#, r#"쬼"#, r#"쬼"#, r#"쬼"#),
+        (r#"쬽"#, r#"쬽"#, r#"쬽"#, r#"쬽"#, r#"쬽"#),
+        (r#"쬾"#, r#"쬾"#, r#"쬾"#, r#"쬾"#, r#"쬾"#),
+        (r#"쬿"#, r#"쬿"#, r#"쬿"#, r#"쬿"#, r#"쬿"#),
+        (r#"쭀"#, r#"쭀"#, r#"쭀"#, r#"쭀"#, r#"쭀"#),
+        (r#"쭁"#, r#"쭁"#, r#"쭁"#, r#"쭁"#, r#"쭁"#),
+        (r#"쭂"#, r#"쭂"#, r#"쭂"#, r#"쭂"#, r#"쭂"#),
+        (r#"쭃"#, r#"쭃"#, r#"쭃"#, r#"쭃"#, r#"쭃"#),
+        (r#"쭄"#, r#"쭄"#, r#"쭄"#, r#"쭄"#, r#"쭄"#),
+        (r#"쭅"#, r#"쭅"#, r#"쭅"#, r#"쭅"#, r#"쭅"#),
+        (r#"쭆"#, r#"쭆"#, r#"쭆"#, r#"쭆"#, r#"쭆"#),
+        (r#"쭇"#, r#"쭇"#, r#"쭇"#, r#"쭇"#, r#"쭇"#),
+        (r#"쭈"#, r#"쭈"#, r#"쭈"#, r#"쭈"#, r#"쭈"#),
+        (r#"쭉"#, r#"쭉"#, r#"쭉"#, r#"쭉"#, r#"쭉"#),
+        (r#"쭊"#, r#"쭊"#, r#"쭊"#, r#"쭊"#, r#"쭊"#),
+        (r#"쭋"#, r#"쭋"#, r#"쭋"#, r#"쭋"#, r#"쭋"#),
+        (r#"쭌"#, r#"쭌"#, r#"쭌"#, r#"쭌"#, r#"쭌"#),
+        (r#"쭍"#, r#"쭍"#, r#"쭍"#, r#"쭍"#, r#"쭍"#),
+        (r#"쭎"#, r#"쭎"#, r#"쭎"#, r#"쭎"#, r#"쭎"#),
+        (r#"쭏"#, r#"쭏"#, r#"쭏"#, r#"쭏"#, r#"쭏"#),
+        (r#"쭐"#, r#"쭐"#, r#"쭐"#, r#"쭐"#, r#"쭐"#),
+        (r#"쭑"#, r#"쭑"#, r#"쭑"#, r#"쭑"#, r#"쭑"#),
+        (r#"쭒"#, r#"쭒"#, r#"쭒"#, r#"쭒"#, r#"쭒"#),
+        (r#"쭓"#, r#"쭓"#, r#"쭓"#, r#"쭓"#, r#"쭓"#),
+        (r#"쭔"#, r#"쭔"#, r#"쭔"#, r#"쭔"#, r#"쭔"#),
+        (r#"쭕"#, r#"쭕"#, r#"쭕"#, r#"쭕"#, r#"쭕"#),
+        (r#"쭖"#, r#"쭖"#, r#"쭖"#, r#"쭖"#, r#"쭖"#),
+        (r#"쭗"#, r#"쭗"#, r#"쭗"#, r#"쭗"#, r#"쭗"#),
+        (r#"쭘"#, r#"쭘"#, r#"쭘"#, r#"쭘"#, r#"쭘"#),
+        (r#"쭙"#, r#"쭙"#, r#"쭙"#, r#"쭙"#, r#"쭙"#),
+        (r#"쭚"#, r#"쭚"#, r#"쭚"#, r#"쭚"#, r#"쭚"#),
+        (r#"쭛"#, r#"쭛"#, r#"쭛"#, r#"쭛"#, r#"쭛"#),
+        (r#"쭜"#, r#"쭜"#, r#"쭜"#, r#"쭜"#, r#"쭜"#),
+        (r#"쭝"#, r#"쭝"#, r#"쭝"#, r#"쭝"#, r#"쭝"#),
+        (r#"쭞"#, r#"쭞"#, r#"쭞"#, r#"쭞"#, r#"쭞"#),
+        (r#"쭟"#, r#"쭟"#, r#"쭟"#, r#"쭟"#, r#"쭟"#),
+        (r#"쭠"#, r#"쭠"#, r#"쭠"#, r#"쭠"#, r#"쭠"#),
+        (r#"쭡"#, r#"쭡"#, r#"쭡"#, r#"쭡"#, r#"쭡"#),
+        (r#"쭢"#, r#"쭢"#, r#"쭢"#, r#"쭢"#, r#"쭢"#),
+        (r#"쭣"#, r#"쭣"#, r#"쭣"#, r#"쭣"#, r#"쭣"#),
+        (r#"쭤"#, r#"쭤"#, r#"쭤"#, r#"쭤"#, r#"쭤"#),
+        (r#"쭥"#, r#"쭥"#, r#"쭥"#, r#"쭥"#, r#"쭥"#),
+        (r#"쭦"#, r#"쭦"#, r#"쭦"#, r#"쭦"#, r#"쭦"#),
+        (r#"쭧"#, r#"쭧"#, r#"쭧"#, r#"쭧"#, r#"쭧"#),
+        (r#"쭨"#, r#"쭨"#, r#"쭨"#, r#"쭨"#, r#"쭨"#),
+        (r#"쭩"#, r#"쭩"#, r#"쭩"#, r#"쭩"#, r#"쭩"#),
+        (r#"쭪"#, r#"쭪"#, r#"쭪"#, r#"쭪"#, r#"쭪"#),
+        (r#"쭫"#, r#"쭫"#, r#"쭫"#, r#"쭫"#, r#"쭫"#),
+        (r#"쭬"#, r#"쭬"#, r#"쭬"#, r#"쭬"#, r#"쭬"#),
+        (r#"쭭"#, r#"쭭"#, r#"쭭"#, r#"쭭"#, r#"쭭"#),
+        (r#"쭮"#, r#"쭮"#, r#"쭮"#, r#"쭮"#, r#"쭮"#),
+        (r#"쭯"#, r#"쭯"#, r#"쭯"#, r#"쭯"#, r#"쭯"#),
+        (r#"쭰"#, r#"쭰"#, r#"쭰"#, r#"쭰"#, r#"쭰"#),
+        (r#"쭱"#, r#"쭱"#, r#"쭱"#, r#"쭱"#, r#"쭱"#),
+        (r#"쭲"#, r#"쭲"#, r#"쭲"#, r#"쭲"#, r#"쭲"#),
+        (r#"쭳"#, r#"쭳"#, r#"쭳"#, r#"쭳"#, r#"쭳"#),
+        (r#"쭴"#, r#"쭴"#, r#"쭴"#, r#"쭴"#, r#"쭴"#),
+        (r#"쭵"#, r#"쭵"#, r#"쭵"#, r#"쭵"#, r#"쭵"#),
+        (r#"쭶"#, r#"쭶"#, r#"쭶"#, r#"쭶"#, r#"쭶"#),
+        (r#"쭷"#, r#"쭷"#, r#"쭷"#, r#"쭷"#, r#"쭷"#),
+        (r#"쭸"#, r#"쭸"#, r#"쭸"#, r#"쭸"#, r#"쭸"#),
+        (r#"쭹"#, r#"쭹"#, r#"쭹"#, r#"쭹"#, r#"쭹"#),
+        (r#"쭺"#, r#"쭺"#, r#"쭺"#, r#"쭺"#, r#"쭺"#),
+        (r#"쭻"#, r#"쭻"#, r#"쭻"#, r#"쭻"#, r#"쭻"#),
+        (r#"쭼"#, r#"쭼"#, r#"쭼"#, r#"쭼"#, r#"쭼"#),
+        (r#"쭽"#, r#"쭽"#, r#"쭽"#, r#"쭽"#, r#"쭽"#),
+        (r#"쭾"#, r#"쭾"#, r#"쭾"#, r#"쭾"#, r#"쭾"#),
+        (r#"쭿"#, r#"쭿"#, r#"쭿"#, r#"쭿"#, r#"쭿"#),
+        (r#"쮀"#, r#"쮀"#, r#"쮀"#, r#"쮀"#, r#"쮀"#),
+        (r#"쮁"#, r#"쮁"#, r#"쮁"#, r#"쮁"#, r#"쮁"#),
+        (r#"쮂"#, r#"쮂"#, r#"쮂"#, r#"쮂"#, r#"쮂"#),
+        (r#"쮃"#, r#"쮃"#, r#"쮃"#, r#"쮃"#, r#"쮃"#),
+        (r#"쮄"#, r#"쮄"#, r#"쮄"#, r#"쮄"#, r#"쮄"#),
+        (r#"쮅"#, r#"쮅"#, r#"쮅"#, r#"쮅"#, r#"쮅"#),
+        (r#"쮆"#, r#"쮆"#, r#"쮆"#, r#"쮆"#, r#"쮆"#),
+        (r#"쮇"#, r#"쮇"#, r#"쮇"#, r#"쮇"#, r#"쮇"#),
+        (r#"쮈"#, r#"쮈"#, r#"쮈"#, r#"쮈"#, r#"쮈"#),
+        (r#"쮉"#, r#"쮉"#, r#"쮉"#, r#"쮉"#, r#"쮉"#),
+        (r#"쮊"#, r#"쮊"#, r#"쮊"#, r#"쮊"#, r#"쮊"#),
+        (r#"쮋"#, r#"쮋"#, r#"쮋"#, r#"쮋"#, r#"쮋"#),
+        (r#"쮌"#, r#"쮌"#, r#"쮌"#, r#"쮌"#, r#"쮌"#),
+        (r#"쮍"#, r#"쮍"#, r#"쮍"#, r#"쮍"#, r#"쮍"#),
+        (r#"쮎"#, r#"쮎"#, r#"쮎"#, r#"쮎"#, r#"쮎"#),
+        (r#"쮏"#, r#"쮏"#, r#"쮏"#, r#"쮏"#, r#"쮏"#),
+        (r#"쮐"#, r#"쮐"#, r#"쮐"#, r#"쮐"#, r#"쮐"#),
+        (r#"쮑"#, r#"쮑"#, r#"쮑"#, r#"쮑"#, r#"쮑"#),
+        (r#"쮒"#, r#"쮒"#, r#"쮒"#, r#"쮒"#, r#"쮒"#),
+        (r#"쮓"#, r#"쮓"#, r#"쮓"#, r#"쮓"#, r#"쮓"#),
+        (r#"쮔"#, r#"쮔"#, r#"쮔"#, r#"쮔"#, r#"쮔"#),
+        (r#"쮕"#, r#"쮕"#, r#"쮕"#, r#"쮕"#, r#"쮕"#),
+        (r#"쮖"#, r#"쮖"#, r#"쮖"#, r#"쮖"#, r#"쮖"#),
+        (r#"쮗"#, r#"쮗"#, r#"쮗"#, r#"쮗"#, r#"쮗"#),
+        (r#"쮘"#, r#"쮘"#, r#"쮘"#, r#"쮘"#, r#"쮘"#),
+        (r#"쮙"#, r#"쮙"#, r#"쮙"#, r#"쮙"#, r#"쮙"#),
+        (r#"쮚"#, r#"쮚"#, r#"쮚"#, r#"쮚"#, r#"쮚"#),
+        (r#"쮛"#, r#"쮛"#, r#"쮛"#, r#"쮛"#, r#"쮛"#),
+        (r#"쮜"#, r#"쮜"#, r#"쮜"#, r#"쮜"#, r#"쮜"#),
+        (r#"쮝"#, r#"쮝"#, r#"쮝"#, r#"쮝"#, r#"쮝"#),
+        (r#"쮞"#, r#"쮞"#, r#"쮞"#, r#"쮞"#, r#"쮞"#),
+        (r#"쮟"#, r#"쮟"#, r#"쮟"#, r#"쮟"#, r#"쮟"#),
+        (r#"쮠"#, r#"쮠"#, r#"쮠"#, r#"쮠"#, r#"쮠"#),
+        (r#"쮡"#, r#"쮡"#, r#"쮡"#, r#"쮡"#, r#"쮡"#),
+        (r#"쮢"#, r#"쮢"#, r#"쮢"#, r#"쮢"#, r#"쮢"#),
+        (r#"쮣"#, r#"쮣"#, r#"쮣"#, r#"쮣"#, r#"쮣"#),
+        (r#"쮤"#, r#"쮤"#, r#"쮤"#, r#"쮤"#, r#"쮤"#),
+        (r#"쮥"#, r#"쮥"#, r#"쮥"#, r#"쮥"#, r#"쮥"#),
+        (r#"쮦"#, r#"쮦"#, r#"쮦"#, r#"쮦"#, r#"쮦"#),
+        (r#"쮧"#, r#"쮧"#, r#"쮧"#, r#"쮧"#, r#"쮧"#),
+        (r#"쮨"#, r#"쮨"#, r#"쮨"#, r#"쮨"#, r#"쮨"#),
+        (r#"쮩"#, r#"쮩"#, r#"쮩"#, r#"쮩"#, r#"쮩"#),
+        (r#"쮪"#, r#"쮪"#, r#"쮪"#, r#"쮪"#, r#"쮪"#),
+        (r#"쮫"#, r#"쮫"#, r#"쮫"#, r#"쮫"#, r#"쮫"#),
+        (r#"쮬"#, r#"쮬"#, r#"쮬"#, r#"쮬"#, r#"쮬"#),
+        (r#"쮭"#, r#"쮭"#, r#"쮭"#, r#"쮭"#, r#"쮭"#),
+        (r#"쮮"#, r#"쮮"#, r#"쮮"#, r#"쮮"#, r#"쮮"#),
+        (r#"쮯"#, r#"쮯"#, r#"쮯"#, r#"쮯"#, r#"쮯"#),
+        (r#"쮰"#, r#"쮰"#, r#"쮰"#, r#"쮰"#, r#"쮰"#),
+        (r#"쮱"#, r#"쮱"#, r#"쮱"#, r#"쮱"#, r#"쮱"#),
+        (r#"쮲"#, r#"쮲"#, r#"쮲"#, r#"쮲"#, r#"쮲"#),
+        (r#"쮳"#, r#"쮳"#, r#"쮳"#, r#"쮳"#, r#"쮳"#),
+        (r#"쮴"#, r#"쮴"#, r#"쮴"#, r#"쮴"#, r#"쮴"#),
+        (r#"쮵"#, r#"쮵"#, r#"쮵"#, r#"쮵"#, r#"쮵"#),
+        (r#"쮶"#, r#"쮶"#, r#"쮶"#, r#"쮶"#, r#"쮶"#),
+        (r#"쮷"#, r#"쮷"#, r#"쮷"#, r#"쮷"#, r#"쮷"#),
+        (r#"쮸"#, r#"쮸"#, r#"쮸"#, r#"쮸"#, r#"쮸"#),
+        (r#"쮹"#, r#"쮹"#, r#"쮹"#, r#"쮹"#, r#"쮹"#),
+        (r#"쮺"#, r#"쮺"#, r#"쮺"#, r#"쮺"#, r#"쮺"#),
+        (r#"쮻"#, r#"쮻"#, r#"쮻"#, r#"쮻"#, r#"쮻"#),
+        (r#"쮼"#, r#"쮼"#, r#"쮼"#, r#"쮼"#, r#"쮼"#),
+        (r#"쮽"#, r#"쮽"#, r#"쮽"#, r#"쮽"#, r#"쮽"#),
+        (r#"쮾"#, r#"쮾"#, r#"쮾"#, r#"쮾"#, r#"쮾"#),
+        (r#"쮿"#, r#"쮿"#, r#"쮿"#, r#"쮿"#, r#"쮿"#),
+        (r#"쯀"#, r#"쯀"#, r#"쯀"#, r#"쯀"#, r#"쯀"#),
+        (r#"쯁"#, r#"쯁"#, r#"쯁"#, r#"쯁"#, r#"쯁"#),
+        (r#"쯂"#, r#"쯂"#, r#"쯂"#, r#"쯂"#, r#"쯂"#),
+        (r#"쯃"#, r#"쯃"#, r#"쯃"#, r#"쯃"#, r#"쯃"#),
+        (r#"쯄"#, r#"쯄"#, r#"쯄"#, r#"쯄"#, r#"쯄"#),
+        (r#"쯅"#, r#"쯅"#, r#"쯅"#, r#"쯅"#, r#"쯅"#),
+        (r#"쯆"#, r#"쯆"#, r#"쯆"#, r#"쯆"#, r#"쯆"#),
+        (r#"쯇"#, r#"쯇"#, r#"쯇"#, r#"쯇"#, r#"쯇"#),
+        (r#"쯈"#, r#"쯈"#, r#"쯈"#, r#"쯈"#, r#"쯈"#),
+        (r#"쯉"#, r#"쯉"#, r#"쯉"#, r#"쯉"#, r#"쯉"#),
+        (r#"쯊"#, r#"쯊"#, r#"쯊"#, r#"쯊"#, r#"쯊"#),
+        (r#"쯋"#, r#"쯋"#, r#"쯋"#, r#"쯋"#, r#"쯋"#),
+        (r#"쯌"#, r#"쯌"#, r#"쯌"#, r#"쯌"#, r#"쯌"#),
+        (r#"쯍"#, r#"쯍"#, r#"쯍"#, r#"쯍"#, r#"쯍"#),
+        (r#"쯎"#, r#"쯎"#, r#"쯎"#, r#"쯎"#, r#"쯎"#),
+        (r#"쯏"#, r#"쯏"#, r#"쯏"#, r#"쯏"#, r#"쯏"#),
+        (r#"쯐"#, r#"쯐"#, r#"쯐"#, r#"쯐"#, r#"쯐"#),
+        (r#"쯑"#, r#"쯑"#, r#"쯑"#, r#"쯑"#, r#"쯑"#),
+        (r#"쯒"#, r#"쯒"#, r#"쯒"#, r#"쯒"#, r#"쯒"#),
+        (r#"쯓"#, r#"쯓"#, r#"쯓"#, r#"쯓"#, r#"쯓"#),
+        (r#"쯔"#, r#"쯔"#, r#"쯔"#, r#"쯔"#, r#"쯔"#),
+        (r#"쯕"#, r#"쯕"#, r#"쯕"#, r#"쯕"#, r#"쯕"#),
+        (r#"쯖"#, r#"쯖"#, r#"쯖"#, r#"쯖"#, r#"쯖"#),
+        (r#"쯗"#, r#"쯗"#, r#"쯗"#, r#"쯗"#, r#"쯗"#),
+        (r#"쯘"#, r#"쯘"#, r#"쯘"#, r#"쯘"#, r#"쯘"#),
+        (r#"쯙"#, r#"쯙"#, r#"쯙"#, r#"쯙"#, r#"쯙"#),
+        (r#"쯚"#, r#"쯚"#, r#"쯚"#, r#"쯚"#, r#"쯚"#),
+        (r#"쯛"#, r#"쯛"#, r#"쯛"#, r#"쯛"#, r#"쯛"#),
+        (r#"쯜"#, r#"쯜"#, r#"쯜"#, r#"쯜"#, r#"쯜"#),
+        (r#"쯝"#, r#"쯝"#, r#"쯝"#, r#"쯝"#, r#"쯝"#),
+        (r#"쯞"#, r#"쯞"#, r#"쯞"#, r#"쯞"#, r#"쯞"#),
+        (r#"쯟"#, r#"쯟"#, r#"쯟"#, r#"쯟"#, r#"쯟"#),
+        (r#"쯠"#, r#"쯠"#, r#"쯠"#, r#"쯠"#, r#"쯠"#),
+        (r#"쯡"#, r#"쯡"#, r#"쯡"#, r#"쯡"#, r#"쯡"#),
+        (r#"쯢"#, r#"쯢"#, r#"쯢"#, r#"쯢"#, r#"쯢"#),
+        (r#"쯣"#, r#"쯣"#, r#"쯣"#, r#"쯣"#, r#"쯣"#),
+        (r#"쯤"#, r#"쯤"#, r#"쯤"#, r#"쯤"#, r#"쯤"#),
+        (r#"쯥"#, r#"쯥"#, r#"쯥"#, r#"쯥"#, r#"쯥"#),
+        (r#"쯦"#, r#"쯦"#, r#"쯦"#, r#"쯦"#, r#"쯦"#),
+        (r#"쯧"#, r#"쯧"#, r#"쯧"#, r#"쯧"#, r#"쯧"#),
+        (r#"쯨"#, r#"쯨"#, r#"쯨"#, r#"쯨"#, r#"쯨"#),
+        (r#"쯩"#, r#"쯩"#, r#"쯩"#, r#"쯩"#, r#"쯩"#),
+        (r#"쯪"#, r#"쯪"#, r#"쯪"#, r#"쯪"#, r#"쯪"#),
+        (r#"쯫"#, r#"쯫"#, r#"쯫"#, r#"쯫"#, r#"쯫"#),
+        (r#"쯬"#, r#"쯬"#, r#"쯬"#, r#"쯬"#, r#"쯬"#),
+        (r#"쯭"#, r#"쯭"#, r#"쯭"#, r#"쯭"#, r#"쯭"#),
+        (r#"쯮"#, r#"쯮"#, r#"쯮"#, r#"쯮"#, r#"쯮"#),
+        (r#"쯯"#, r#"쯯"#, r#"쯯"#, r#"쯯"#, r#"쯯"#),
+        (r#"쯰"#, r#"쯰"#, r#"쯰"#, r#"쯰"#, r#"쯰"#),
+        (r#"쯱"#, r#"쯱"#, r#"쯱"#, r#"쯱"#, r#"쯱"#),
+        (r#"쯲"#, r#"쯲"#, r#"쯲"#, r#"쯲"#, r#"쯲"#),
+        (r#"쯳"#, r#"쯳"#, r#"쯳"#, r#"쯳"#, r#"쯳"#),
+        (r#"쯴"#, r#"쯴"#, r#"쯴"#, r#"쯴"#, r#"쯴"#),
+        (r#"쯵"#, r#"쯵"#, r#"쯵"#, r#"쯵"#, r#"쯵"#),
+        (r#"쯶"#, r#"쯶"#, r#"쯶"#, r#"쯶"#, r#"쯶"#),
+        (r#"쯷"#, r#"쯷"#, r#"쯷"#, r#"쯷"#, r#"쯷"#),
+        (r#"쯸"#, r#"쯸"#, r#"쯸"#, r#"쯸"#, r#"쯸"#),
+        (r#"쯹"#, r#"쯹"#, r#"쯹"#, r#"쯹"#, r#"쯹"#),
+        (r#"쯺"#, r#"쯺"#, r#"쯺"#, r#"쯺"#, r#"쯺"#),
+        (r#"쯻"#, r#"쯻"#, r#"쯻"#, r#"쯻"#, r#"쯻"#),
+        (r#"쯼"#, r#"쯼"#, r#"쯼"#, r#"쯼"#, r#"쯼"#),
+        (r#"쯽"#, r#"쯽"#, r#"쯽"#, r#"쯽"#, r#"쯽"#),
+        (r#"쯾"#, r#"쯾"#, r#"쯾"#, r#"쯾"#, r#"쯾"#),
+        (r#"쯿"#, r#"쯿"#, r#"쯿"#, r#"쯿"#, r#"쯿"#),
+        (r#"찀"#, r#"찀"#, r#"찀"#, r#"찀"#, r#"찀"#),
+        (r#"찁"#, r#"찁"#, r#"찁"#, r#"찁"#, r#"찁"#),
+        (r#"찂"#, r#"찂"#, r#"찂"#, r#"찂"#, r#"찂"#),
+        (r#"찃"#, r#"찃"#, r#"찃"#, r#"찃"#, r#"찃"#),
+        (r#"찄"#, r#"찄"#, r#"찄"#, r#"찄"#, r#"찄"#),
+        (r#"찅"#, r#"찅"#, r#"찅"#, r#"찅"#, r#"찅"#),
+        (r#"찆"#, r#"찆"#, r#"찆"#, r#"찆"#, r#"찆"#),
+        (r#"찇"#, r#"찇"#, r#"찇"#, r#"찇"#, r#"찇"#),
+        (r#"찈"#, r#"찈"#, r#"찈"#, r#"찈"#, r#"찈"#),
+        (r#"찉"#, r#"찉"#, r#"찉"#, r#"찉"#, r#"찉"#),
+        (r#"찊"#, r#"찊"#, r#"찊"#, r#"찊"#, r#"찊"#),
+        (r#"찋"#, r#"찋"#, r#"찋"#, r#"찋"#, r#"찋"#),
+        (r#"찌"#, r#"찌"#, r#"찌"#, r#"찌"#, r#"찌"#),
+        (r#"찍"#, r#"찍"#, r#"찍"#, r#"찍"#, r#"찍"#),
+        (r#"찎"#, r#"찎"#, r#"찎"#, r#"찎"#, r#"찎"#),
+        (r#"찏"#, r#"찏"#, r#"찏"#, r#"찏"#, r#"찏"#),
+        (r#"찐"#, r#"찐"#, r#"찐"#, r#"찐"#, r#"찐"#),
+        (r#"찑"#, r#"찑"#, r#"찑"#, r#"찑"#, r#"찑"#),
+        (r#"찒"#, r#"찒"#, r#"찒"#, r#"찒"#, r#"찒"#),
+        (r#"찓"#, r#"찓"#, r#"찓"#, r#"찓"#, r#"찓"#),
+        (r#"찔"#, r#"찔"#, r#"찔"#, r#"찔"#, r#"찔"#),
+        (r#"찕"#, r#"찕"#, r#"찕"#, r#"찕"#, r#"찕"#),
+        (r#"찖"#, r#"찖"#, r#"찖"#, r#"찖"#, r#"찖"#),
+        (r#"찗"#, r#"찗"#, r#"찗"#, r#"찗"#, r#"찗"#),
+        (r#"찘"#, r#"찘"#, r#"찘"#, r#"찘"#, r#"찘"#),
+        (r#"찙"#, r#"찙"#, r#"찙"#, r#"찙"#, r#"찙"#),
+        (r#"찚"#, r#"찚"#, r#"찚"#, r#"찚"#, r#"찚"#),
+        (r#"찛"#, r#"찛"#, r#"찛"#, r#"찛"#, r#"찛"#),
+        (r#"찜"#, r#"찜"#, r#"찜"#, r#"찜"#, r#"찜"#),
+        (r#"찝"#, r#"찝"#, r#"찝"#, r#"찝"#, r#"찝"#),
+        (r#"찞"#, r#"찞"#, r#"찞"#, r#"찞"#, r#"찞"#),
+        (r#"찟"#, r#"찟"#, r#"찟"#, r#"찟"#, r#"찟"#),
+        (r#"찠"#, r#"찠"#, r#"찠"#, r#"찠"#, r#"찠"#),
+        (r#"찡"#, r#"찡"#, r#"찡"#, r#"찡"#, r#"찡"#),
+        (r#"찢"#, r#"찢"#, r#"찢"#, r#"찢"#, r#"찢"#),
+        (r#"찣"#, r#"찣"#, r#"찣"#, r#"찣"#, r#"찣"#),
+        (r#"찤"#, r#"찤"#, r#"찤"#, r#"찤"#, r#"찤"#),
+        (r#"찥"#, r#"찥"#, r#"찥"#, r#"찥"#, r#"찥"#),
+        (r#"찦"#, r#"찦"#, r#"찦"#, r#"찦"#, r#"찦"#),
+        (r#"찧"#, r#"찧"#, r#"찧"#, r#"찧"#, r#"찧"#),
+        (r#"차"#, r#"차"#, r#"차"#, r#"차"#, r#"차"#),
+        (r#"착"#, r#"착"#, r#"착"#, r#"착"#, r#"착"#),
+        (r#"찪"#, r#"찪"#, r#"찪"#, r#"찪"#, r#"찪"#),
+        (r#"찫"#, r#"찫"#, r#"찫"#, r#"찫"#, r#"찫"#),
+        (r#"찬"#, r#"찬"#, r#"찬"#, r#"찬"#, r#"찬"#),
+        (r#"찭"#, r#"찭"#, r#"찭"#, r#"찭"#, r#"찭"#),
+        (r#"찮"#, r#"찮"#, r#"찮"#, r#"찮"#, r#"찮"#),
+        (r#"찯"#, r#"찯"#, r#"찯"#, r#"찯"#, r#"찯"#),
+        (r#"찰"#, r#"찰"#, r#"찰"#, r#"찰"#, r#"찰"#),
+        (r#"찱"#, r#"찱"#, r#"찱"#, r#"찱"#, r#"찱"#),
+        (r#"찲"#, r#"찲"#, r#"찲"#, r#"찲"#, r#"찲"#),
+        (r#"찳"#, r#"찳"#, r#"찳"#, r#"찳"#, r#"찳"#),
+        (r#"찴"#, r#"찴"#, r#"찴"#, r#"찴"#, r#"찴"#),
+        (r#"찵"#, r#"찵"#, r#"찵"#, r#"찵"#, r#"찵"#),
+        (r#"찶"#, r#"찶"#, r#"찶"#, r#"찶"#, r#"찶"#),
+        (r#"찷"#, r#"찷"#, r#"찷"#, r#"찷"#, r#"찷"#),
+        (r#"참"#, r#"참"#, r#"참"#, r#"참"#, r#"참"#),
+        (r#"찹"#, r#"찹"#, r#"찹"#, r#"찹"#, r#"찹"#),
+        (r#"찺"#, r#"찺"#, r#"찺"#, r#"찺"#, r#"찺"#),
+        (r#"찻"#, r#"찻"#, r#"찻"#, r#"찻"#, r#"찻"#),
+        (r#"찼"#, r#"찼"#, r#"찼"#, r#"찼"#, r#"찼"#),
+        (r#"창"#, r#"창"#, r#"창"#, r#"창"#, r#"창"#),
+        (r#"찾"#, r#"찾"#, r#"찾"#, r#"찾"#, r#"찾"#),
+        (r#"찿"#, r#"찿"#, r#"찿"#, r#"찿"#, r#"찿"#),
+        (r#"챀"#, r#"챀"#, r#"챀"#, r#"챀"#, r#"챀"#),
+        (r#"챁"#, r#"챁"#, r#"챁"#, r#"챁"#, r#"챁"#),
+        (r#"챂"#, r#"챂"#, r#"챂"#, r#"챂"#, r#"챂"#),
+        (r#"챃"#, r#"챃"#, r#"챃"#, r#"챃"#, r#"챃"#),
+        (r#"채"#, r#"채"#, r#"채"#, r#"채"#, r#"채"#),
+        (r#"책"#, r#"책"#, r#"책"#, r#"책"#, r#"책"#),
+        (r#"챆"#, r#"챆"#, r#"챆"#, r#"챆"#, r#"챆"#),
+        (r#"챇"#, r#"챇"#, r#"챇"#, r#"챇"#, r#"챇"#),
+        (r#"챈"#, r#"챈"#, r#"챈"#, r#"챈"#, r#"챈"#),
+        (r#"챉"#, r#"챉"#, r#"챉"#, r#"챉"#, r#"챉"#),
+        (r#"챊"#, r#"챊"#, r#"챊"#, r#"챊"#, r#"챊"#),
+        (r#"챋"#, r#"챋"#, r#"챋"#, r#"챋"#, r#"챋"#),
+        (r#"챌"#, r#"챌"#, r#"챌"#, r#"챌"#, r#"챌"#),
+        (r#"챍"#, r#"챍"#, r#"챍"#, r#"챍"#, r#"챍"#),
+        (r#"챎"#, r#"챎"#, r#"챎"#, r#"챎"#, r#"챎"#),
+        (r#"챏"#, r#"챏"#, r#"챏"#, r#"챏"#, r#"챏"#),
+        (r#"챐"#, r#"챐"#, r#"챐"#, r#"챐"#, r#"챐"#),
+        (r#"챑"#, r#"챑"#, r#"챑"#, r#"챑"#, r#"챑"#),
+        (r#"챒"#, r#"챒"#, r#"챒"#, r#"챒"#, r#"챒"#),
+        (r#"챓"#, r#"챓"#, r#"챓"#, r#"챓"#, r#"챓"#),
+        (r#"챔"#, r#"챔"#, r#"챔"#, r#"챔"#, r#"챔"#),
+        (r#"챕"#, r#"챕"#, r#"챕"#, r#"챕"#, r#"챕"#),
+        (r#"챖"#, r#"챖"#, r#"챖"#, r#"챖"#, r#"챖"#),
+        (r#"챗"#, r#"챗"#, r#"챗"#, r#"챗"#, r#"챗"#),
+        (r#"챘"#, r#"챘"#, r#"챘"#, r#"챘"#, r#"챘"#),
+        (r#"챙"#, r#"챙"#, r#"챙"#, r#"챙"#, r#"챙"#),
+        (r#"챚"#, r#"챚"#, r#"챚"#, r#"챚"#, r#"챚"#),
+        (r#"챛"#, r#"챛"#, r#"챛"#, r#"챛"#, r#"챛"#),
+        (r#"챜"#, r#"챜"#, r#"챜"#, r#"챜"#, r#"챜"#),
+        (r#"챝"#, r#"챝"#, r#"챝"#, r#"챝"#, r#"챝"#),
+        (r#"챞"#, r#"챞"#, r#"챞"#, r#"챞"#, r#"챞"#),
+        (r#"챟"#, r#"챟"#, r#"챟"#, r#"챟"#, r#"챟"#),
+        (r#"챠"#, r#"챠"#, r#"챠"#, r#"챠"#, r#"챠"#),
+        (r#"챡"#, r#"챡"#, r#"챡"#, r#"챡"#, r#"챡"#),
+        (r#"챢"#, r#"챢"#, r#"챢"#, r#"챢"#, r#"챢"#),
+        (r#"챣"#, r#"챣"#, r#"챣"#, r#"챣"#, r#"챣"#),
+        (r#"챤"#, r#"챤"#, r#"챤"#, r#"챤"#, r#"챤"#),
+        (r#"챥"#, r#"챥"#, r#"챥"#, r#"챥"#, r#"챥"#),
+        (r#"챦"#, r#"챦"#, r#"챦"#, r#"챦"#, r#"챦"#),
+        (r#"챧"#, r#"챧"#, r#"챧"#, r#"챧"#, r#"챧"#),
+        (r#"챨"#, r#"챨"#, r#"챨"#, r#"챨"#, r#"챨"#),
+        (r#"챩"#, r#"챩"#, r#"챩"#, r#"챩"#, r#"챩"#),
+        (r#"챪"#, r#"챪"#, r#"챪"#, r#"챪"#, r#"챪"#),
+        (r#"챫"#, r#"챫"#, r#"챫"#, r#"챫"#, r#"챫"#),
+        (r#"챬"#, r#"챬"#, r#"챬"#, r#"챬"#, r#"챬"#),
+        (r#"챭"#, r#"챭"#, r#"챭"#, r#"챭"#, r#"챭"#),
+        (r#"챮"#, r#"챮"#, r#"챮"#, r#"챮"#, r#"챮"#),
+        (r#"챯"#, r#"챯"#, r#"챯"#, r#"챯"#, r#"챯"#),
+        (r#"챰"#, r#"챰"#, r#"챰"#, r#"챰"#, r#"챰"#),
+        (r#"챱"#, r#"챱"#, r#"챱"#, r#"챱"#, r#"챱"#),
+        (r#"챲"#, r#"챲"#, r#"챲"#, r#"챲"#, r#"챲"#),
+        (r#"챳"#, r#"챳"#, r#"챳"#, r#"챳"#, r#"챳"#),
+        (r#"챴"#, r#"챴"#, r#"챴"#, r#"챴"#, r#"챴"#),
+        (r#"챵"#, r#"챵"#, r#"챵"#, r#"챵"#, r#"챵"#),
+        (r#"챶"#, r#"챶"#, r#"챶"#, r#"챶"#, r#"챶"#),
+        (r#"챷"#, r#"챷"#, r#"챷"#, r#"챷"#, r#"챷"#),
+        (r#"챸"#, r#"챸"#, r#"챸"#, r#"챸"#, r#"챸"#),
+        (r#"챹"#, r#"챹"#, r#"챹"#, r#"챹"#, r#"챹"#),
+        (r#"챺"#, r#"챺"#, r#"챺"#, r#"챺"#, r#"챺"#),
+        (r#"챻"#, r#"챻"#, r#"챻"#, r#"챻"#, r#"챻"#),
+        (r#"챼"#, r#"챼"#, r#"챼"#, r#"챼"#, r#"챼"#),
+        (r#"챽"#, r#"챽"#, r#"챽"#, r#"챽"#, r#"챽"#),
+        (r#"챾"#, r#"챾"#, r#"챾"#, r#"챾"#, r#"챾"#),
+        (r#"챿"#, r#"챿"#, r#"챿"#, r#"챿"#, r#"챿"#),
+        (r#"첀"#, r#"첀"#, r#"첀"#, r#"첀"#, r#"첀"#),
+        (r#"첁"#, r#"첁"#, r#"첁"#, r#"첁"#, r#"첁"#),
+        (r#"첂"#, r#"첂"#, r#"첂"#, r#"첂"#, r#"첂"#),
+        (r#"첃"#, r#"첃"#, r#"첃"#, r#"첃"#, r#"첃"#),
+        (r#"첄"#, r#"첄"#, r#"첄"#, r#"첄"#, r#"첄"#),
+        (r#"첅"#, r#"첅"#, r#"첅"#, r#"첅"#, r#"첅"#),
+        (r#"첆"#, r#"첆"#, r#"첆"#, r#"첆"#, r#"첆"#),
+        (r#"첇"#, r#"첇"#, r#"첇"#, r#"첇"#, r#"첇"#),
+        (r#"첈"#, r#"첈"#, r#"첈"#, r#"첈"#, r#"첈"#),
+        (r#"첉"#, r#"첉"#, r#"첉"#, r#"첉"#, r#"첉"#),
+        (r#"첊"#, r#"첊"#, r#"첊"#, r#"첊"#, r#"첊"#),
+        (r#"첋"#, r#"첋"#, r#"첋"#, r#"첋"#, r#"첋"#),
+        (r#"첌"#, r#"첌"#, r#"첌"#, r#"첌"#, r#"첌"#),
+        (r#"첍"#, r#"첍"#, r#"첍"#, r#"첍"#, r#"첍"#),
+        (r#"첎"#, r#"첎"#, r#"첎"#, r#"첎"#, r#"첎"#),
+        (r#"첏"#, r#"첏"#, r#"첏"#, r#"첏"#, r#"첏"#),
+        (r#"첐"#, r#"첐"#, r#"첐"#, r#"첐"#, r#"첐"#),
+        (r#"첑"#, r#"첑"#, r#"첑"#, r#"첑"#, r#"첑"#),
+        (r#"첒"#, r#"첒"#, r#"첒"#, r#"첒"#, r#"첒"#),
+        (r#"첓"#, r#"첓"#, r#"첓"#, r#"첓"#, r#"첓"#),
+        (r#"첔"#, r#"첔"#, r#"첔"#, r#"첔"#, r#"첔"#),
+        (r#"첕"#, r#"첕"#, r#"첕"#, r#"첕"#, r#"첕"#),
+        (r#"첖"#, r#"첖"#, r#"첖"#, r#"첖"#, r#"첖"#),
+        (r#"첗"#, r#"첗"#, r#"첗"#, r#"첗"#, r#"첗"#),
+        (r#"처"#, r#"처"#, r#"처"#, r#"처"#, r#"처"#),
+        (r#"척"#, r#"척"#, r#"척"#, r#"척"#, r#"척"#),
+        (r#"첚"#, r#"첚"#, r#"첚"#, r#"첚"#, r#"첚"#),
+        (r#"첛"#, r#"첛"#, r#"첛"#, r#"첛"#, r#"첛"#),
+        (r#"천"#, r#"천"#, r#"천"#, r#"천"#, r#"천"#),
+        (r#"첝"#, r#"첝"#, r#"첝"#, r#"첝"#, r#"첝"#),
+        (r#"첞"#, r#"첞"#, r#"첞"#, r#"첞"#, r#"첞"#),
+        (r#"첟"#, r#"첟"#, r#"첟"#, r#"첟"#, r#"첟"#),
+        (r#"철"#, r#"철"#, r#"철"#, r#"철"#, r#"철"#),
+        (r#"첡"#, r#"첡"#, r#"첡"#, r#"첡"#, r#"첡"#),
+        (r#"첢"#, r#"첢"#, r#"첢"#, r#"첢"#, r#"첢"#),
+        (r#"첣"#, r#"첣"#, r#"첣"#, r#"첣"#, r#"첣"#),
+        (r#"첤"#, r#"첤"#, r#"첤"#, r#"첤"#, r#"첤"#),
+        (r#"첥"#, r#"첥"#, r#"첥"#, r#"첥"#, r#"첥"#),
+        (r#"첦"#, r#"첦"#, r#"첦"#, r#"첦"#, r#"첦"#),
+        (r#"첧"#, r#"첧"#, r#"첧"#, r#"첧"#, r#"첧"#),
+        (r#"첨"#, r#"첨"#, r#"첨"#, r#"첨"#, r#"첨"#),
+        (r#"첩"#, r#"첩"#, r#"첩"#, r#"첩"#, r#"첩"#),
+        (r#"첪"#, r#"첪"#, r#"첪"#, r#"첪"#, r#"첪"#),
+        (r#"첫"#, r#"첫"#, r#"첫"#, r#"첫"#, r#"첫"#),
+        (r#"첬"#, r#"첬"#, r#"첬"#, r#"첬"#, r#"첬"#),
+        (r#"청"#, r#"청"#, r#"청"#, r#"청"#, r#"청"#),
+        (r#"첮"#, r#"첮"#, r#"첮"#, r#"첮"#, r#"첮"#),
+        (r#"첯"#, r#"첯"#, r#"첯"#, r#"첯"#, r#"첯"#),
+        (r#"첰"#, r#"첰"#, r#"첰"#, r#"첰"#, r#"첰"#),
+        (r#"첱"#, r#"첱"#, r#"첱"#, r#"첱"#, r#"첱"#),
+        (r#"첲"#, r#"첲"#, r#"첲"#, r#"첲"#, r#"첲"#),
+        (r#"첳"#, r#"첳"#, r#"첳"#, r#"첳"#, r#"첳"#),
+        (r#"체"#, r#"체"#, r#"체"#, r#"체"#, r#"체"#),
+        (r#"첵"#, r#"첵"#, r#"첵"#, r#"첵"#, r#"첵"#),
+        (r#"첶"#, r#"첶"#, r#"첶"#, r#"첶"#, r#"첶"#),
+        (r#"첷"#, r#"첷"#, r#"첷"#, r#"첷"#, r#"첷"#),
+        (r#"첸"#, r#"첸"#, r#"첸"#, r#"첸"#, r#"첸"#),
+        (r#"첹"#, r#"첹"#, r#"첹"#, r#"첹"#, r#"첹"#),
+        (r#"첺"#, r#"첺"#, r#"첺"#, r#"첺"#, r#"첺"#),
+        (r#"첻"#, r#"첻"#, r#"첻"#, r#"첻"#, r#"첻"#),
+        (r#"첼"#, r#"첼"#, r#"첼"#, r#"첼"#, r#"첼"#),
+        (r#"첽"#, r#"첽"#, r#"첽"#, r#"첽"#, r#"첽"#),
+        (r#"첾"#, r#"첾"#, r#"첾"#, r#"첾"#, r#"첾"#),
+        (r#"첿"#, r#"첿"#, r#"첿"#, r#"첿"#, r#"첿"#),
+        (r#"쳀"#, r#"쳀"#, r#"쳀"#, r#"쳀"#, r#"쳀"#),
+        (r#"쳁"#, r#"쳁"#, r#"쳁"#, r#"쳁"#, r#"쳁"#),
+        (r#"쳂"#, r#"쳂"#, r#"쳂"#, r#"쳂"#, r#"쳂"#),
+        (r#"쳃"#, r#"쳃"#, r#"쳃"#, r#"쳃"#, r#"쳃"#),
+        (r#"쳄"#, r#"쳄"#, r#"쳄"#, r#"쳄"#, r#"쳄"#),
+        (r#"쳅"#, r#"쳅"#, r#"쳅"#, r#"쳅"#, r#"쳅"#),
+        (r#"쳆"#, r#"쳆"#, r#"쳆"#, r#"쳆"#, r#"쳆"#),
+        (r#"쳇"#, r#"쳇"#, r#"쳇"#, r#"쳇"#, r#"쳇"#),
+        (r#"쳈"#, r#"쳈"#, r#"쳈"#, r#"쳈"#, r#"쳈"#),
+        (r#"쳉"#, r#"쳉"#, r#"쳉"#, r#"쳉"#, r#"쳉"#),
+        (r#"쳊"#, r#"쳊"#, r#"쳊"#, r#"쳊"#, r#"쳊"#),
+        (r#"쳋"#, r#"쳋"#, r#"쳋"#, r#"쳋"#, r#"쳋"#),
+        (r#"쳌"#, r#"쳌"#, r#"쳌"#, r#"쳌"#, r#"쳌"#),
+        (r#"쳍"#, r#"쳍"#, r#"쳍"#, r#"쳍"#, r#"쳍"#),
+        (r#"쳎"#, r#"쳎"#, r#"쳎"#, r#"쳎"#, r#"쳎"#),
+        (r#"쳏"#, r#"쳏"#, r#"쳏"#, r#"쳏"#, r#"쳏"#),
+        (r#"쳐"#, r#"쳐"#, r#"쳐"#, r#"쳐"#, r#"쳐"#),
+        (r#"쳑"#, r#"쳑"#, r#"쳑"#, r#"쳑"#, r#"쳑"#),
+        (r#"쳒"#, r#"쳒"#, r#"쳒"#, r#"쳒"#, r#"쳒"#),
+        (r#"쳓"#, r#"쳓"#, r#"쳓"#, r#"쳓"#, r#"쳓"#),
+        (r#"쳔"#, r#"쳔"#, r#"쳔"#, r#"쳔"#, r#"쳔"#),
+        (r#"쳕"#, r#"쳕"#, r#"쳕"#, r#"쳕"#, r#"쳕"#),
+        (r#"쳖"#, r#"쳖"#, r#"쳖"#, r#"쳖"#, r#"쳖"#),
+        (r#"쳗"#, r#"쳗"#, r#"쳗"#, r#"쳗"#, r#"쳗"#),
+        (r#"쳘"#, r#"쳘"#, r#"쳘"#, r#"쳘"#, r#"쳘"#),
+        (r#"쳙"#, r#"쳙"#, r#"쳙"#, r#"쳙"#, r#"쳙"#),
+        (r#"쳚"#, r#"쳚"#, r#"쳚"#, r#"쳚"#, r#"쳚"#),
+        (r#"쳛"#, r#"쳛"#, r#"쳛"#, r#"쳛"#, r#"쳛"#),
+        (r#"쳜"#, r#"쳜"#, r#"쳜"#, r#"쳜"#, r#"쳜"#),
+        (r#"쳝"#, r#"쳝"#, r#"쳝"#, r#"쳝"#, r#"쳝"#),
+        (r#"쳞"#, r#"쳞"#, r#"쳞"#, r#"쳞"#, r#"쳞"#),
+        (r#"쳟"#, r#"쳟"#, r#"쳟"#, r#"쳟"#, r#"쳟"#),
+        (r#"쳠"#, r#"쳠"#, r#"쳠"#, r#"쳠"#, r#"쳠"#),
+        (r#"쳡"#, r#"쳡"#, r#"쳡"#, r#"쳡"#, r#"쳡"#),
+        (r#"쳢"#, r#"쳢"#, r#"쳢"#, r#"쳢"#, r#"쳢"#),
+        (r#"쳣"#, r#"쳣"#, r#"쳣"#, r#"쳣"#, r#"쳣"#),
+        (r#"쳤"#, r#"쳤"#, r#"쳤"#, r#"쳤"#, r#"쳤"#),
+        (r#"쳥"#, r#"쳥"#, r#"쳥"#, r#"쳥"#, r#"쳥"#),
+        (r#"쳦"#, r#"쳦"#, r#"쳦"#, r#"쳦"#, r#"쳦"#),
+        (r#"쳧"#, r#"쳧"#, r#"쳧"#, r#"쳧"#, r#"쳧"#),
+        (r#"쳨"#, r#"쳨"#, r#"쳨"#, r#"쳨"#, r#"쳨"#),
+        (r#"쳩"#, r#"쳩"#, r#"쳩"#, r#"쳩"#, r#"쳩"#),
+        (r#"쳪"#, r#"쳪"#, r#"쳪"#, r#"쳪"#, r#"쳪"#),
+        (r#"쳫"#, r#"쳫"#, r#"쳫"#, r#"쳫"#, r#"쳫"#),
+        (r#"쳬"#, r#"쳬"#, r#"쳬"#, r#"쳬"#, r#"쳬"#),
+        (r#"쳭"#, r#"쳭"#, r#"쳭"#, r#"쳭"#, r#"쳭"#),
+        (r#"쳮"#, r#"쳮"#, r#"쳮"#, r#"쳮"#, r#"쳮"#),
+        (r#"쳯"#, r#"쳯"#, r#"쳯"#, r#"쳯"#, r#"쳯"#),
+        (r#"쳰"#, r#"쳰"#, r#"쳰"#, r#"쳰"#, r#"쳰"#),
+        (r#"쳱"#, r#"쳱"#, r#"쳱"#, r#"쳱"#, r#"쳱"#),
+        (r#"쳲"#, r#"쳲"#, r#"쳲"#, r#"쳲"#, r#"쳲"#),
+        (r#"쳳"#, r#"쳳"#, r#"쳳"#, r#"쳳"#, r#"쳳"#),
+        (r#"쳴"#, r#"쳴"#, r#"쳴"#, r#"쳴"#, r#"쳴"#),
+        (r#"쳵"#, r#"쳵"#, r#"쳵"#, r#"쳵"#, r#"쳵"#),
+        (r#"쳶"#, r#"쳶"#, r#"쳶"#, r#"쳶"#, r#"쳶"#),
+        (r#"쳷"#, r#"쳷"#, r#"쳷"#, r#"쳷"#, r#"쳷"#),
+        (r#"쳸"#, r#"쳸"#, r#"쳸"#, r#"쳸"#, r#"쳸"#),
+        (r#"쳹"#, r#"쳹"#, r#"쳹"#, r#"쳹"#, r#"쳹"#),
+        (r#"쳺"#, r#"쳺"#, r#"쳺"#, r#"쳺"#, r#"쳺"#),
+        (r#"쳻"#, r#"쳻"#, r#"쳻"#, r#"쳻"#, r#"쳻"#),
+        (r#"쳼"#, r#"쳼"#, r#"쳼"#, r#"쳼"#, r#"쳼"#),
+        (r#"쳽"#, r#"쳽"#, r#"쳽"#, r#"쳽"#, r#"쳽"#),
+        (r#"쳾"#, r#"쳾"#, r#"쳾"#, r#"쳾"#, r#"쳾"#),
+        (r#"쳿"#, r#"쳿"#, r#"쳿"#, r#"쳿"#, r#"쳿"#),
+        (r#"촀"#, r#"촀"#, r#"촀"#, r#"촀"#, r#"촀"#),
+        (r#"촁"#, r#"촁"#, r#"촁"#, r#"촁"#, r#"촁"#),
+        (r#"촂"#, r#"촂"#, r#"촂"#, r#"촂"#, r#"촂"#),
+        (r#"촃"#, r#"촃"#, r#"촃"#, r#"촃"#, r#"촃"#),
+        (r#"촄"#, r#"촄"#, r#"촄"#, r#"촄"#, r#"촄"#),
+        (r#"촅"#, r#"촅"#, r#"촅"#, r#"촅"#, r#"촅"#),
+        (r#"촆"#, r#"촆"#, r#"촆"#, r#"촆"#, r#"촆"#),
+        (r#"촇"#, r#"촇"#, r#"촇"#, r#"촇"#, r#"촇"#),
+        (r#"초"#, r#"초"#, r#"초"#, r#"초"#, r#"초"#),
+        (r#"촉"#, r#"촉"#, r#"촉"#, r#"촉"#, r#"촉"#),
+        (r#"촊"#, r#"촊"#, r#"촊"#, r#"촊"#, r#"촊"#),
+        (r#"촋"#, r#"촋"#, r#"촋"#, r#"촋"#, r#"촋"#),
+        (r#"촌"#, r#"촌"#, r#"촌"#, r#"촌"#, r#"촌"#),
+        (r#"촍"#, r#"촍"#, r#"촍"#, r#"촍"#, r#"촍"#),
+        (r#"촎"#, r#"촎"#, r#"촎"#, r#"촎"#, r#"촎"#),
+        (r#"촏"#, r#"촏"#, r#"촏"#, r#"촏"#, r#"촏"#),
+        (r#"촐"#, r#"촐"#, r#"촐"#, r#"촐"#, r#"촐"#),
+        (r#"촑"#, r#"촑"#, r#"촑"#, r#"촑"#, r#"촑"#),
+        (r#"촒"#, r#"촒"#, r#"촒"#, r#"촒"#, r#"촒"#),
+        (r#"촓"#, r#"촓"#, r#"촓"#, r#"촓"#, r#"촓"#),
+        (r#"촔"#, r#"촔"#, r#"촔"#, r#"촔"#, r#"촔"#),
+        (r#"촕"#, r#"촕"#, r#"촕"#, r#"촕"#, r#"촕"#),
+        (r#"촖"#, r#"촖"#, r#"촖"#, r#"촖"#, r#"촖"#),
+        (r#"촗"#, r#"촗"#, r#"촗"#, r#"촗"#, r#"촗"#),
+        (r#"촘"#, r#"촘"#, r#"촘"#, r#"촘"#, r#"촘"#),
+        (r#"촙"#, r#"촙"#, r#"촙"#, r#"촙"#, r#"촙"#),
+        (r#"촚"#, r#"촚"#, r#"촚"#, r#"촚"#, r#"촚"#),
+        (r#"촛"#, r#"촛"#, r#"촛"#, r#"촛"#, r#"촛"#),
+        (r#"촜"#, r#"촜"#, r#"촜"#, r#"촜"#, r#"촜"#),
+        (r#"총"#, r#"총"#, r#"총"#, r#"총"#, r#"총"#),
+        (r#"촞"#, r#"촞"#, r#"촞"#, r#"촞"#, r#"촞"#),
+        (r#"촟"#, r#"촟"#, r#"촟"#, r#"촟"#, r#"촟"#),
+        (r#"촠"#, r#"촠"#, r#"촠"#, r#"촠"#, r#"촠"#),
+        (r#"촡"#, r#"촡"#, r#"촡"#, r#"촡"#, r#"촡"#),
+        (r#"촢"#, r#"촢"#, r#"촢"#, r#"촢"#, r#"촢"#),
+        (r#"촣"#, r#"촣"#, r#"촣"#, r#"촣"#, r#"촣"#),
+        (r#"촤"#, r#"촤"#, r#"촤"#, r#"촤"#, r#"촤"#),
+        (r#"촥"#, r#"촥"#, r#"촥"#, r#"촥"#, r#"촥"#),
+        (r#"촦"#, r#"촦"#, r#"촦"#, r#"촦"#, r#"촦"#),
+        (r#"촧"#, r#"촧"#, r#"촧"#, r#"촧"#, r#"촧"#),
+        (r#"촨"#, r#"촨"#, r#"촨"#, r#"촨"#, r#"촨"#),
+        (r#"촩"#, r#"촩"#, r#"촩"#, r#"촩"#, r#"촩"#),
+        (r#"촪"#, r#"촪"#, r#"촪"#, r#"촪"#, r#"촪"#),
+        (r#"촫"#, r#"촫"#, r#"촫"#, r#"촫"#, r#"촫"#),
+        (r#"촬"#, r#"촬"#, r#"촬"#, r#"촬"#, r#"촬"#),
+        (r#"촭"#, r#"촭"#, r#"촭"#, r#"촭"#, r#"촭"#),
+        (r#"촮"#, r#"촮"#, r#"촮"#, r#"촮"#, r#"촮"#),
+        (r#"촯"#, r#"촯"#, r#"촯"#, r#"촯"#, r#"촯"#),
+        (r#"촰"#, r#"촰"#, r#"촰"#, r#"촰"#, r#"촰"#),
+        (r#"촱"#, r#"촱"#, r#"촱"#, r#"촱"#, r#"촱"#),
+        (r#"촲"#, r#"촲"#, r#"촲"#, r#"촲"#, r#"촲"#),
+        (r#"촳"#, r#"촳"#, r#"촳"#, r#"촳"#, r#"촳"#),
+        (r#"촴"#, r#"촴"#, r#"촴"#, r#"촴"#, r#"촴"#),
+        (r#"촵"#, r#"촵"#, r#"촵"#, r#"촵"#, r#"촵"#),
+        (r#"촶"#, r#"촶"#, r#"촶"#, r#"촶"#, r#"촶"#),
+        (r#"촷"#, r#"촷"#, r#"촷"#, r#"촷"#, r#"촷"#),
+        (r#"촸"#, r#"촸"#, r#"촸"#, r#"촸"#, r#"촸"#),
+        (r#"촹"#, r#"촹"#, r#"촹"#, r#"촹"#, r#"촹"#),
+        (r#"촺"#, r#"촺"#, r#"촺"#, r#"촺"#, r#"촺"#),
+        (r#"촻"#, r#"촻"#, r#"촻"#, r#"촻"#, r#"촻"#),
+        (r#"촼"#, r#"촼"#, r#"촼"#, r#"촼"#, r#"촼"#),
+        (r#"촽"#, r#"촽"#, r#"촽"#, r#"촽"#, r#"촽"#),
+        (r#"촾"#, r#"촾"#, r#"촾"#, r#"촾"#, r#"촾"#),
+        (r#"촿"#, r#"촿"#, r#"촿"#, r#"촿"#, r#"촿"#),
+        (r#"쵀"#, r#"쵀"#, r#"쵀"#, r#"쵀"#, r#"쵀"#),
+        (r#"쵁"#, r#"쵁"#, r#"쵁"#, r#"쵁"#, r#"쵁"#),
+        (r#"쵂"#, r#"쵂"#, r#"쵂"#, r#"쵂"#, r#"쵂"#),
+        (r#"쵃"#, r#"쵃"#, r#"쵃"#, r#"쵃"#, r#"쵃"#),
+        (r#"쵄"#, r#"쵄"#, r#"쵄"#, r#"쵄"#, r#"쵄"#),
+        (r#"쵅"#, r#"쵅"#, r#"쵅"#, r#"쵅"#, r#"쵅"#),
+        (r#"쵆"#, r#"쵆"#, r#"쵆"#, r#"쵆"#, r#"쵆"#),
+        (r#"쵇"#, r#"쵇"#, r#"쵇"#, r#"쵇"#, r#"쵇"#),
+        (r#"쵈"#, r#"쵈"#, r#"쵈"#, r#"쵈"#, r#"쵈"#),
+        (r#"쵉"#, r#"쵉"#, r#"쵉"#, r#"쵉"#, r#"쵉"#),
+        (r#"쵊"#, r#"쵊"#, r#"쵊"#, r#"쵊"#, r#"쵊"#),
+        (r#"쵋"#, r#"쵋"#, r#"쵋"#, r#"쵋"#, r#"쵋"#),
+        (r#"쵌"#, r#"쵌"#, r#"쵌"#, r#"쵌"#, r#"쵌"#),
+        (r#"쵍"#, r#"쵍"#, r#"쵍"#, r#"쵍"#, r#"쵍"#),
+        (r#"쵎"#, r#"쵎"#, r#"쵎"#, r#"쵎"#, r#"쵎"#),
+        (r#"쵏"#, r#"쵏"#, r#"쵏"#, r#"쵏"#, r#"쵏"#),
+        (r#"쵐"#, r#"쵐"#, r#"쵐"#, r#"쵐"#, r#"쵐"#),
+        (r#"쵑"#, r#"쵑"#, r#"쵑"#, r#"쵑"#, r#"쵑"#),
+        (r#"쵒"#, r#"쵒"#, r#"쵒"#, r#"쵒"#, r#"쵒"#),
+        (r#"쵓"#, r#"쵓"#, r#"쵓"#, r#"쵓"#, r#"쵓"#),
+        (r#"쵔"#, r#"쵔"#, r#"쵔"#, r#"쵔"#, r#"쵔"#),
+        (r#"쵕"#, r#"쵕"#, r#"쵕"#, r#"쵕"#, r#"쵕"#),
+        (r#"쵖"#, r#"쵖"#, r#"쵖"#, r#"쵖"#, r#"쵖"#),
+        (r#"쵗"#, r#"쵗"#, r#"쵗"#, r#"쵗"#, r#"쵗"#),
+        (r#"쵘"#, r#"쵘"#, r#"쵘"#, r#"쵘"#, r#"쵘"#),
+        (r#"쵙"#, r#"쵙"#, r#"쵙"#, r#"쵙"#, r#"쵙"#),
+        (r#"쵚"#, r#"쵚"#, r#"쵚"#, r#"쵚"#, r#"쵚"#),
+        (r#"쵛"#, r#"쵛"#, r#"쵛"#, r#"쵛"#, r#"쵛"#),
+        (r#"최"#, r#"최"#, r#"최"#, r#"최"#, r#"최"#),
+        (r#"쵝"#, r#"쵝"#, r#"쵝"#, r#"쵝"#, r#"쵝"#),
+        (r#"쵞"#, r#"쵞"#, r#"쵞"#, r#"쵞"#, r#"쵞"#),
+        (r#"쵟"#, r#"쵟"#, r#"쵟"#, r#"쵟"#, r#"쵟"#),
+        (r#"쵠"#, r#"쵠"#, r#"쵠"#, r#"쵠"#, r#"쵠"#),
+        (r#"쵡"#, r#"쵡"#, r#"쵡"#, r#"쵡"#, r#"쵡"#),
+        (r#"쵢"#, r#"쵢"#, r#"쵢"#, r#"쵢"#, r#"쵢"#),
+        (r#"쵣"#, r#"쵣"#, r#"쵣"#, r#"쵣"#, r#"쵣"#),
+        (r#"쵤"#, r#"쵤"#, r#"쵤"#, r#"쵤"#, r#"쵤"#),
+        (r#"쵥"#, r#"쵥"#, r#"쵥"#, r#"쵥"#, r#"쵥"#),
+        (r#"쵦"#, r#"쵦"#, r#"쵦"#, r#"쵦"#, r#"쵦"#),
+        (r#"쵧"#, r#"쵧"#, r#"쵧"#, r#"쵧"#, r#"쵧"#),
+        (r#"쵨"#, r#"쵨"#, r#"쵨"#, r#"쵨"#, r#"쵨"#),
+        (r#"쵩"#, r#"쵩"#, r#"쵩"#, r#"쵩"#, r#"쵩"#),
+        (r#"쵪"#, r#"쵪"#, r#"쵪"#, r#"쵪"#, r#"쵪"#),
+        (r#"쵫"#, r#"쵫"#, r#"쵫"#, r#"쵫"#, r#"쵫"#),
+        (r#"쵬"#, r#"쵬"#, r#"쵬"#, r#"쵬"#, r#"쵬"#),
+        (r#"쵭"#, r#"쵭"#, r#"쵭"#, r#"쵭"#, r#"쵭"#),
+        (r#"쵮"#, r#"쵮"#, r#"쵮"#, r#"쵮"#, r#"쵮"#),
+        (r#"쵯"#, r#"쵯"#, r#"쵯"#, r#"쵯"#, r#"쵯"#),
+        (r#"쵰"#, r#"쵰"#, r#"쵰"#, r#"쵰"#, r#"쵰"#),
+        (r#"쵱"#, r#"쵱"#, r#"쵱"#, r#"쵱"#, r#"쵱"#),
+        (r#"쵲"#, r#"쵲"#, r#"쵲"#, r#"쵲"#, r#"쵲"#),
+        (r#"쵳"#, r#"쵳"#, r#"쵳"#, r#"쵳"#, r#"쵳"#),
+        (r#"쵴"#, r#"쵴"#, r#"쵴"#, r#"쵴"#, r#"쵴"#),
+        (r#"쵵"#, r#"쵵"#, r#"쵵"#, r#"쵵"#, r#"쵵"#),
+        (r#"쵶"#, r#"쵶"#, r#"쵶"#, r#"쵶"#, r#"쵶"#),
+        (r#"쵷"#, r#"쵷"#, r#"쵷"#, r#"쵷"#, r#"쵷"#),
+        (r#"쵸"#, r#"쵸"#, r#"쵸"#, r#"쵸"#, r#"쵸"#),
+        (r#"쵹"#, r#"쵹"#, r#"쵹"#, r#"쵹"#, r#"쵹"#),
+        (r#"쵺"#, r#"쵺"#, r#"쵺"#, r#"쵺"#, r#"쵺"#),
+        (r#"쵻"#, r#"쵻"#, r#"쵻"#, r#"쵻"#, r#"쵻"#),
+        (r#"쵼"#, r#"쵼"#, r#"쵼"#, r#"쵼"#, r#"쵼"#),
+        (r#"쵽"#, r#"쵽"#, r#"쵽"#, r#"쵽"#, r#"쵽"#),
+        (r#"쵾"#, r#"쵾"#, r#"쵾"#, r#"쵾"#, r#"쵾"#),
+        (r#"쵿"#, r#"쵿"#, r#"쵿"#, r#"쵿"#, r#"쵿"#),
+        (r#"춀"#, r#"춀"#, r#"춀"#, r#"춀"#, r#"춀"#),
+        (r#"춁"#, r#"춁"#, r#"춁"#, r#"춁"#, r#"춁"#),
+        (r#"춂"#, r#"춂"#, r#"춂"#, r#"춂"#, r#"춂"#),
+        (r#"춃"#, r#"춃"#, r#"춃"#, r#"춃"#, r#"춃"#),
+        (r#"춄"#, r#"춄"#, r#"춄"#, r#"춄"#, r#"춄"#),
+        (r#"춅"#, r#"춅"#, r#"춅"#, r#"춅"#, r#"춅"#),
+        (r#"춆"#, r#"춆"#, r#"춆"#, r#"춆"#, r#"춆"#),
+        (r#"춇"#, r#"춇"#, r#"춇"#, r#"춇"#, r#"춇"#),
+        (r#"춈"#, r#"춈"#, r#"춈"#, r#"춈"#, r#"춈"#),
+        (r#"춉"#, r#"춉"#, r#"춉"#, r#"춉"#, r#"춉"#),
+        (r#"춊"#, r#"춊"#, r#"춊"#, r#"춊"#, r#"춊"#),
+        (r#"춋"#, r#"춋"#, r#"춋"#, r#"춋"#, r#"춋"#),
+        (r#"춌"#, r#"춌"#, r#"춌"#, r#"춌"#, r#"춌"#),
+        (r#"춍"#, r#"춍"#, r#"춍"#, r#"춍"#, r#"춍"#),
+        (r#"춎"#, r#"춎"#, r#"춎"#, r#"춎"#, r#"춎"#),
+        (r#"춏"#, r#"춏"#, r#"춏"#, r#"춏"#, r#"춏"#),
+        (r#"춐"#, r#"춐"#, r#"춐"#, r#"춐"#, r#"춐"#),
+        (r#"춑"#, r#"춑"#, r#"춑"#, r#"춑"#, r#"춑"#),
+        (r#"춒"#, r#"춒"#, r#"춒"#, r#"춒"#, r#"춒"#),
+        (r#"춓"#, r#"춓"#, r#"춓"#, r#"춓"#, r#"춓"#),
+        (r#"추"#, r#"추"#, r#"추"#, r#"추"#, r#"추"#),
+        (r#"축"#, r#"축"#, r#"축"#, r#"축"#, r#"축"#),
+        (r#"춖"#, r#"춖"#, r#"춖"#, r#"춖"#, r#"춖"#),
+        (r#"춗"#, r#"춗"#, r#"춗"#, r#"춗"#, r#"춗"#),
+        (r#"춘"#, r#"춘"#, r#"춘"#, r#"춘"#, r#"춘"#),
+        (r#"춙"#, r#"춙"#, r#"춙"#, r#"춙"#, r#"춙"#),
+        (r#"춚"#, r#"춚"#, r#"춚"#, r#"춚"#, r#"춚"#),
+        (r#"춛"#, r#"춛"#, r#"춛"#, r#"춛"#, r#"춛"#),
+        (r#"출"#, r#"출"#, r#"출"#, r#"출"#, r#"출"#),
+        (r#"춝"#, r#"춝"#, r#"춝"#, r#"춝"#, r#"춝"#),
+        (r#"춞"#, r#"춞"#, r#"춞"#, r#"춞"#, r#"춞"#),
+        (r#"춟"#, r#"춟"#, r#"춟"#, r#"춟"#, r#"춟"#),
+        (r#"춠"#, r#"춠"#, r#"춠"#, r#"춠"#, r#"춠"#),
+        (r#"춡"#, r#"춡"#, r#"춡"#, r#"춡"#, r#"춡"#),
+        (r#"춢"#, r#"춢"#, r#"춢"#, r#"춢"#, r#"춢"#),
+        (r#"춣"#, r#"춣"#, r#"춣"#, r#"춣"#, r#"춣"#),
+        (r#"춤"#, r#"춤"#, r#"춤"#, r#"춤"#, r#"춤"#),
+        (r#"춥"#, r#"춥"#, r#"춥"#, r#"춥"#, r#"춥"#),
+        (r#"춦"#, r#"춦"#, r#"춦"#, r#"춦"#, r#"춦"#),
+        (r#"춧"#, r#"춧"#, r#"춧"#, r#"춧"#, r#"춧"#),
+        (r#"춨"#, r#"춨"#, r#"춨"#, r#"춨"#, r#"춨"#),
+        (r#"충"#, r#"충"#, r#"충"#, r#"충"#, r#"충"#),
+        (r#"춪"#, r#"춪"#, r#"춪"#, r#"춪"#, r#"춪"#),
+        (r#"춫"#, r#"춫"#, r#"춫"#, r#"춫"#, r#"춫"#),
+        (r#"춬"#, r#"춬"#, r#"춬"#, r#"춬"#, r#"춬"#),
+        (r#"춭"#, r#"춭"#, r#"춭"#, r#"춭"#, r#"춭"#),
+        (r#"춮"#, r#"춮"#, r#"춮"#, r#"춮"#, r#"춮"#),
+        (r#"춯"#, r#"춯"#, r#"춯"#, r#"춯"#, r#"춯"#),
+        (r#"춰"#, r#"춰"#, r#"춰"#, r#"춰"#, r#"춰"#),
+        (r#"춱"#, r#"춱"#, r#"춱"#, r#"춱"#, r#"춱"#),
+        (r#"춲"#, r#"춲"#, r#"춲"#, r#"춲"#, r#"춲"#),
+        (r#"춳"#, r#"춳"#, r#"춳"#, r#"춳"#, r#"춳"#),
+        (r#"춴"#, r#"춴"#, r#"춴"#, r#"춴"#, r#"춴"#),
+        (r#"춵"#, r#"춵"#, r#"춵"#, r#"춵"#, r#"춵"#),
+        (r#"춶"#, r#"춶"#, r#"춶"#, r#"춶"#, r#"춶"#),
+        (r#"춷"#, r#"춷"#, r#"춷"#, r#"춷"#, r#"춷"#),
+        (r#"춸"#, r#"춸"#, r#"춸"#, r#"춸"#, r#"춸"#),
+        (r#"춹"#, r#"춹"#, r#"춹"#, r#"춹"#, r#"춹"#),
+        (r#"춺"#, r#"춺"#, r#"춺"#, r#"춺"#, r#"춺"#),
+        (r#"춻"#, r#"춻"#, r#"춻"#, r#"춻"#, r#"춻"#),
+        (r#"춼"#, r#"춼"#, r#"춼"#, r#"춼"#, r#"춼"#),
+        (r#"춽"#, r#"춽"#, r#"춽"#, r#"춽"#, r#"춽"#),
+        (r#"춾"#, r#"춾"#, r#"춾"#, r#"춾"#, r#"춾"#),
+        (r#"춿"#, r#"춿"#, r#"춿"#, r#"춿"#, r#"춿"#),
+        (r#"췀"#, r#"췀"#, r#"췀"#, r#"췀"#, r#"췀"#),
+        (r#"췁"#, r#"췁"#, r#"췁"#, r#"췁"#, r#"췁"#),
+        (r#"췂"#, r#"췂"#, r#"췂"#, r#"췂"#, r#"췂"#),
+        (r#"췃"#, r#"췃"#, r#"췃"#, r#"췃"#, r#"췃"#),
+        (r#"췄"#, r#"췄"#, r#"췄"#, r#"췄"#, r#"췄"#),
+        (r#"췅"#, r#"췅"#, r#"췅"#, r#"췅"#, r#"췅"#),
+        (r#"췆"#, r#"췆"#, r#"췆"#, r#"췆"#, r#"췆"#),
+        (r#"췇"#, r#"췇"#, r#"췇"#, r#"췇"#, r#"췇"#),
+        (r#"췈"#, r#"췈"#, r#"췈"#, r#"췈"#, r#"췈"#),
+        (r#"췉"#, r#"췉"#, r#"췉"#, r#"췉"#, r#"췉"#),
+        (r#"췊"#, r#"췊"#, r#"췊"#, r#"췊"#, r#"췊"#),
+        (r#"췋"#, r#"췋"#, r#"췋"#, r#"췋"#, r#"췋"#),
+        (r#"췌"#, r#"췌"#, r#"췌"#, r#"췌"#, r#"췌"#),
+        (r#"췍"#, r#"췍"#, r#"췍"#, r#"췍"#, r#"췍"#),
+        (r#"췎"#, r#"췎"#, r#"췎"#, r#"췎"#, r#"췎"#),
+        (r#"췏"#, r#"췏"#, r#"췏"#, r#"췏"#, r#"췏"#),
+        (r#"췐"#, r#"췐"#, r#"췐"#, r#"췐"#, r#"췐"#),
+        (r#"췑"#, r#"췑"#, r#"췑"#, r#"췑"#, r#"췑"#),
+        (r#"췒"#, r#"췒"#, r#"췒"#, r#"췒"#, r#"췒"#),
+        (r#"췓"#, r#"췓"#, r#"췓"#, r#"췓"#, r#"췓"#),
+        (r#"췔"#, r#"췔"#, r#"췔"#, r#"췔"#, r#"췔"#),
+        (r#"췕"#, r#"췕"#, r#"췕"#, r#"췕"#, r#"췕"#),
+        (r#"췖"#, r#"췖"#, r#"췖"#, r#"췖"#, r#"췖"#),
+        (r#"췗"#, r#"췗"#, r#"췗"#, r#"췗"#, r#"췗"#),
+        (r#"췘"#, r#"췘"#, r#"췘"#, r#"췘"#, r#"췘"#),
+        (r#"췙"#, r#"췙"#, r#"췙"#, r#"췙"#, r#"췙"#),
+        (r#"췚"#, r#"췚"#, r#"췚"#, r#"췚"#, r#"췚"#),
+        (r#"췛"#, r#"췛"#, r#"췛"#, r#"췛"#, r#"췛"#),
+        (r#"췜"#, r#"췜"#, r#"췜"#, r#"췜"#, r#"췜"#),
+        (r#"췝"#, r#"췝"#, r#"췝"#, r#"췝"#, r#"췝"#),
+        (r#"췞"#, r#"췞"#, r#"췞"#, r#"췞"#, r#"췞"#),
+        (r#"췟"#, r#"췟"#, r#"췟"#, r#"췟"#, r#"췟"#),
+        (r#"췠"#, r#"췠"#, r#"췠"#, r#"췠"#, r#"췠"#),
+        (r#"췡"#, r#"췡"#, r#"췡"#, r#"췡"#, r#"췡"#),
+        (r#"췢"#, r#"췢"#, r#"췢"#, r#"췢"#, r#"췢"#),
+        (r#"췣"#, r#"췣"#, r#"췣"#, r#"췣"#, r#"췣"#),
+        (r#"췤"#, r#"췤"#, r#"췤"#, r#"췤"#, r#"췤"#),
+        (r#"췥"#, r#"췥"#, r#"췥"#, r#"췥"#, r#"췥"#),
+        (r#"췦"#, r#"췦"#, r#"췦"#, r#"췦"#, r#"췦"#),
+        (r#"췧"#, r#"췧"#, r#"췧"#, r#"췧"#, r#"췧"#),
+        (r#"취"#, r#"취"#, r#"취"#, r#"취"#, r#"취"#),
+        (r#"췩"#, r#"췩"#, r#"췩"#, r#"췩"#, r#"췩"#),
+        (r#"췪"#, r#"췪"#, r#"췪"#, r#"췪"#, r#"췪"#),
+        (r#"췫"#, r#"췫"#, r#"췫"#, r#"췫"#, r#"췫"#),
+        (r#"췬"#, r#"췬"#, r#"췬"#, r#"췬"#, r#"췬"#),
+        (r#"췭"#, r#"췭"#, r#"췭"#, r#"췭"#, r#"췭"#),
+        (r#"췮"#, r#"췮"#, r#"췮"#, r#"췮"#, r#"췮"#),
+        (r#"췯"#, r#"췯"#, r#"췯"#, r#"췯"#, r#"췯"#),
+        (r#"췰"#, r#"췰"#, r#"췰"#, r#"췰"#, r#"췰"#),
+        (r#"췱"#, r#"췱"#, r#"췱"#, r#"췱"#, r#"췱"#),
+        (r#"췲"#, r#"췲"#, r#"췲"#, r#"췲"#, r#"췲"#),
+        (r#"췳"#, r#"췳"#, r#"췳"#, r#"췳"#, r#"췳"#),
+        (r#"췴"#, r#"췴"#, r#"췴"#, r#"췴"#, r#"췴"#),
+        (r#"췵"#, r#"췵"#, r#"췵"#, r#"췵"#, r#"췵"#),
+        (r#"췶"#, r#"췶"#, r#"췶"#, r#"췶"#, r#"췶"#),
+        (r#"췷"#, r#"췷"#, r#"췷"#, r#"췷"#, r#"췷"#),
+        (r#"췸"#, r#"췸"#, r#"췸"#, r#"췸"#, r#"췸"#),
+        (r#"췹"#, r#"췹"#, r#"췹"#, r#"췹"#, r#"췹"#),
+        (r#"췺"#, r#"췺"#, r#"췺"#, r#"췺"#, r#"췺"#),
+        (r#"췻"#, r#"췻"#, r#"췻"#, r#"췻"#, r#"췻"#),
+        (r#"췼"#, r#"췼"#, r#"췼"#, r#"췼"#, r#"췼"#),
+        (r#"췽"#, r#"췽"#, r#"췽"#, r#"췽"#, r#"췽"#),
+        (r#"췾"#, r#"췾"#, r#"췾"#, r#"췾"#, r#"췾"#),
+        (r#"췿"#, r#"췿"#, r#"췿"#, r#"췿"#, r#"췿"#),
+        (r#"츀"#, r#"츀"#, r#"츀"#, r#"츀"#, r#"츀"#),
+        (r#"츁"#, r#"츁"#, r#"츁"#, r#"츁"#, r#"츁"#),
+        (r#"츂"#, r#"츂"#, r#"츂"#, r#"츂"#, r#"츂"#),
+        (r#"츃"#, r#"츃"#, r#"츃"#, r#"츃"#, r#"츃"#),
+        (r#"츄"#, r#"츄"#, r#"츄"#, r#"츄"#, r#"츄"#),
+        (r#"츅"#, r#"츅"#, r#"츅"#, r#"츅"#, r#"츅"#),
+        (r#"츆"#, r#"츆"#, r#"츆"#, r#"츆"#, r#"츆"#),
+        (r#"츇"#, r#"츇"#, r#"츇"#, r#"츇"#, r#"츇"#),
+        (r#"츈"#, r#"츈"#, r#"츈"#, r#"츈"#, r#"츈"#),
+        (r#"츉"#, r#"츉"#, r#"츉"#, r#"츉"#, r#"츉"#),
+        (r#"츊"#, r#"츊"#, r#"츊"#, r#"츊"#, r#"츊"#),
+        (r#"츋"#, r#"츋"#, r#"츋"#, r#"츋"#, r#"츋"#),
+        (r#"츌"#, r#"츌"#, r#"츌"#, r#"츌"#, r#"츌"#),
+        (r#"츍"#, r#"츍"#, r#"츍"#, r#"츍"#, r#"츍"#),
+        (r#"츎"#, r#"츎"#, r#"츎"#, r#"츎"#, r#"츎"#),
+        (r#"츏"#, r#"츏"#, r#"츏"#, r#"츏"#, r#"츏"#),
+        (r#"츐"#, r#"츐"#, r#"츐"#, r#"츐"#, r#"츐"#),
+        (r#"츑"#, r#"츑"#, r#"츑"#, r#"츑"#, r#"츑"#),
+        (r#"츒"#, r#"츒"#, r#"츒"#, r#"츒"#, r#"츒"#),
+        (r#"츓"#, r#"츓"#, r#"츓"#, r#"츓"#, r#"츓"#),
+        (r#"츔"#, r#"츔"#, r#"츔"#, r#"츔"#, r#"츔"#),
+        (r#"츕"#, r#"츕"#, r#"츕"#, r#"츕"#, r#"츕"#),
+        (r#"츖"#, r#"츖"#, r#"츖"#, r#"츖"#, r#"츖"#),
+        (r#"츗"#, r#"츗"#, r#"츗"#, r#"츗"#, r#"츗"#),
+        (r#"츘"#, r#"츘"#, r#"츘"#, r#"츘"#, r#"츘"#),
+        (r#"츙"#, r#"츙"#, r#"츙"#, r#"츙"#, r#"츙"#),
+        (r#"츚"#, r#"츚"#, r#"츚"#, r#"츚"#, r#"츚"#),
+        (r#"츛"#, r#"츛"#, r#"츛"#, r#"츛"#, r#"츛"#),
+        (r#"츜"#, r#"츜"#, r#"츜"#, r#"츜"#, r#"츜"#),
+        (r#"츝"#, r#"츝"#, r#"츝"#, r#"츝"#, r#"츝"#),
+        (r#"츞"#, r#"츞"#, r#"츞"#, r#"츞"#, r#"츞"#),
+        (r#"츟"#, r#"츟"#, r#"츟"#, r#"츟"#, r#"츟"#),
+        (r#"츠"#, r#"츠"#, r#"츠"#, r#"츠"#, r#"츠"#),
+        (r#"측"#, r#"측"#, r#"측"#, r#"측"#, r#"측"#),
+        (r#"츢"#, r#"츢"#, r#"츢"#, r#"츢"#, r#"츢"#),
+        (r#"츣"#, r#"츣"#, r#"츣"#, r#"츣"#, r#"츣"#),
+        (r#"츤"#, r#"츤"#, r#"츤"#, r#"츤"#, r#"츤"#),
+        (r#"츥"#, r#"츥"#, r#"츥"#, r#"츥"#, r#"츥"#),
+        (r#"츦"#, r#"츦"#, r#"츦"#, r#"츦"#, r#"츦"#),
+        (r#"츧"#, r#"츧"#, r#"츧"#, r#"츧"#, r#"츧"#),
+        (r#"츨"#, r#"츨"#, r#"츨"#, r#"츨"#, r#"츨"#),
+        (r#"츩"#, r#"츩"#, r#"츩"#, r#"츩"#, r#"츩"#),
+        (r#"츪"#, r#"츪"#, r#"츪"#, r#"츪"#, r#"츪"#),
+        (r#"츫"#, r#"츫"#, r#"츫"#, r#"츫"#, r#"츫"#),
+        (r#"츬"#, r#"츬"#, r#"츬"#, r#"츬"#, r#"츬"#),
+        (r#"츭"#, r#"츭"#, r#"츭"#, r#"츭"#, r#"츭"#),
+        (r#"츮"#, r#"츮"#, r#"츮"#, r#"츮"#, r#"츮"#),
+        (r#"츯"#, r#"츯"#, r#"츯"#, r#"츯"#, r#"츯"#),
+        (r#"츰"#, r#"츰"#, r#"츰"#, r#"츰"#, r#"츰"#),
+        (r#"츱"#, r#"츱"#, r#"츱"#, r#"츱"#, r#"츱"#),
+        (r#"츲"#, r#"츲"#, r#"츲"#, r#"츲"#, r#"츲"#),
+        (r#"츳"#, r#"츳"#, r#"츳"#, r#"츳"#, r#"츳"#),
+        (r#"츴"#, r#"츴"#, r#"츴"#, r#"츴"#, r#"츴"#),
+        (r#"층"#, r#"층"#, r#"층"#, r#"층"#, r#"층"#),
+        (r#"츶"#, r#"츶"#, r#"츶"#, r#"츶"#, r#"츶"#),
+        (r#"츷"#, r#"츷"#, r#"츷"#, r#"츷"#, r#"츷"#),
+        (r#"츸"#, r#"츸"#, r#"츸"#, r#"츸"#, r#"츸"#),
+        (r#"츹"#, r#"츹"#, r#"츹"#, r#"츹"#, r#"츹"#),
+        (r#"츺"#, r#"츺"#, r#"츺"#, r#"츺"#, r#"츺"#),
+        (r#"츻"#, r#"츻"#, r#"츻"#, r#"츻"#, r#"츻"#),
+        (r#"츼"#, r#"츼"#, r#"츼"#, r#"츼"#, r#"츼"#),
+        (r#"츽"#, r#"츽"#, r#"츽"#, r#"츽"#, r#"츽"#),
+        (r#"츾"#, r#"츾"#, r#"츾"#, r#"츾"#, r#"츾"#),
+        (r#"츿"#, r#"츿"#, r#"츿"#, r#"츿"#, r#"츿"#),
+        (r#"칀"#, r#"칀"#, r#"칀"#, r#"칀"#, r#"칀"#),
+        (r#"칁"#, r#"칁"#, r#"칁"#, r#"칁"#, r#"칁"#),
+        (r#"칂"#, r#"칂"#, r#"칂"#, r#"칂"#, r#"칂"#),
+        (r#"칃"#, r#"칃"#, r#"칃"#, r#"칃"#, r#"칃"#),
+        (r#"칄"#, r#"칄"#, r#"칄"#, r#"칄"#, r#"칄"#),
+        (r#"칅"#, r#"칅"#, r#"칅"#, r#"칅"#, r#"칅"#),
+        (r#"칆"#, r#"칆"#, r#"칆"#, r#"칆"#, r#"칆"#),
+        (r#"칇"#, r#"칇"#, r#"칇"#, r#"칇"#, r#"칇"#),
+        (r#"칈"#, r#"칈"#, r#"칈"#, r#"칈"#, r#"칈"#),
+        (r#"칉"#, r#"칉"#, r#"칉"#, r#"칉"#, r#"칉"#),
+        (r#"칊"#, r#"칊"#, r#"칊"#, r#"칊"#, r#"칊"#),
+        (r#"칋"#, r#"칋"#, r#"칋"#, r#"칋"#, r#"칋"#),
+        (r#"칌"#, r#"칌"#, r#"칌"#, r#"칌"#, r#"칌"#),
+        (r#"칍"#, r#"칍"#, r#"칍"#, r#"칍"#, r#"칍"#),
+        (r#"칎"#, r#"칎"#, r#"칎"#, r#"칎"#, r#"칎"#),
+        (r#"칏"#, r#"칏"#, r#"칏"#, r#"칏"#, r#"칏"#),
+        (r#"칐"#, r#"칐"#, r#"칐"#, r#"칐"#, r#"칐"#),
+        (r#"칑"#, r#"칑"#, r#"칑"#, r#"칑"#, r#"칑"#),
+        (r#"칒"#, r#"칒"#, r#"칒"#, r#"칒"#, r#"칒"#),
+        (r#"칓"#, r#"칓"#, r#"칓"#, r#"칓"#, r#"칓"#),
+        (r#"칔"#, r#"칔"#, r#"칔"#, r#"칔"#, r#"칔"#),
+        (r#"칕"#, r#"칕"#, r#"칕"#, r#"칕"#, r#"칕"#),
+        (r#"칖"#, r#"칖"#, r#"칖"#, r#"칖"#, r#"칖"#),
+        (r#"칗"#, r#"칗"#, r#"칗"#, r#"칗"#, r#"칗"#),
+        (r#"치"#, r#"치"#, r#"치"#, r#"치"#, r#"치"#),
+        (r#"칙"#, r#"칙"#, r#"칙"#, r#"칙"#, r#"칙"#),
+        (r#"칚"#, r#"칚"#, r#"칚"#, r#"칚"#, r#"칚"#),
+        (r#"칛"#, r#"칛"#, r#"칛"#, r#"칛"#, r#"칛"#),
+        (r#"친"#, r#"친"#, r#"친"#, r#"친"#, r#"친"#),
+        (r#"칝"#, r#"칝"#, r#"칝"#, r#"칝"#, r#"칝"#),
+        (r#"칞"#, r#"칞"#, r#"칞"#, r#"칞"#, r#"칞"#),
+        (r#"칟"#, r#"칟"#, r#"칟"#, r#"칟"#, r#"칟"#),
+        (r#"칠"#, r#"칠"#, r#"칠"#, r#"칠"#, r#"칠"#),
+        (r#"칡"#, r#"칡"#, r#"칡"#, r#"칡"#, r#"칡"#),
+        (r#"칢"#, r#"칢"#, r#"칢"#, r#"칢"#, r#"칢"#),
+        (r#"칣"#, r#"칣"#, r#"칣"#, r#"칣"#, r#"칣"#),
+        (r#"칤"#, r#"칤"#, r#"칤"#, r#"칤"#, r#"칤"#),
+        (r#"칥"#, r#"칥"#, r#"칥"#, r#"칥"#, r#"칥"#),
+        (r#"칦"#, r#"칦"#, r#"칦"#, r#"칦"#, r#"칦"#),
+        (r#"칧"#, r#"칧"#, r#"칧"#, r#"칧"#, r#"칧"#),
+        (r#"침"#, r#"침"#, r#"침"#, r#"침"#, r#"침"#),
+        (r#"칩"#, r#"칩"#, r#"칩"#, r#"칩"#, r#"칩"#),
+        (r#"칪"#, r#"칪"#, r#"칪"#, r#"칪"#, r#"칪"#),
+        (r#"칫"#, r#"칫"#, r#"칫"#, r#"칫"#, r#"칫"#),
+        (r#"칬"#, r#"칬"#, r#"칬"#, r#"칬"#, r#"칬"#),
+        (r#"칭"#, r#"칭"#, r#"칭"#, r#"칭"#, r#"칭"#),
+        (r#"칮"#, r#"칮"#, r#"칮"#, r#"칮"#, r#"칮"#),
+        (r#"칯"#, r#"칯"#, r#"칯"#, r#"칯"#, r#"칯"#),
+        (r#"칰"#, r#"칰"#, r#"칰"#, r#"칰"#, r#"칰"#),
+        (r#"칱"#, r#"칱"#, r#"칱"#, r#"칱"#, r#"칱"#),
+        (r#"칲"#, r#"칲"#, r#"칲"#, r#"칲"#, r#"칲"#),
+        (r#"칳"#, r#"칳"#, r#"칳"#, r#"칳"#, r#"칳"#),
+        (r#"카"#, r#"카"#, r#"카"#, r#"카"#, r#"카"#),
+        (r#"칵"#, r#"칵"#, r#"칵"#, r#"칵"#, r#"칵"#),
+        (r#"칶"#, r#"칶"#, r#"칶"#, r#"칶"#, r#"칶"#),
+        (r#"칷"#, r#"칷"#, r#"칷"#, r#"칷"#, r#"칷"#),
+        (r#"칸"#, r#"칸"#, r#"칸"#, r#"칸"#, r#"칸"#),
+        (r#"칹"#, r#"칹"#, r#"칹"#, r#"칹"#, r#"칹"#),
+        (r#"칺"#, r#"칺"#, r#"칺"#, r#"칺"#, r#"칺"#),
+        (r#"칻"#, r#"칻"#, r#"칻"#, r#"칻"#, r#"칻"#),
+        (r#"칼"#, r#"칼"#, r#"칼"#, r#"칼"#, r#"칼"#),
+        (r#"칽"#, r#"칽"#, r#"칽"#, r#"칽"#, r#"칽"#),
+        (r#"칾"#, r#"칾"#, r#"칾"#, r#"칾"#, r#"칾"#),
+        (r#"칿"#, r#"칿"#, r#"칿"#, r#"칿"#, r#"칿"#),
+        (r#"캀"#, r#"캀"#, r#"캀"#, r#"캀"#, r#"캀"#),
+        (r#"캁"#, r#"캁"#, r#"캁"#, r#"캁"#, r#"캁"#),
+        (r#"캂"#, r#"캂"#, r#"캂"#, r#"캂"#, r#"캂"#),
+        (r#"캃"#, r#"캃"#, r#"캃"#, r#"캃"#, r#"캃"#),
+        (r#"캄"#, r#"캄"#, r#"캄"#, r#"캄"#, r#"캄"#),
+        (r#"캅"#, r#"캅"#, r#"캅"#, r#"캅"#, r#"캅"#),
+        (r#"캆"#, r#"캆"#, r#"캆"#, r#"캆"#, r#"캆"#),
+        (r#"캇"#, r#"캇"#, r#"캇"#, r#"캇"#, r#"캇"#),
+        (r#"캈"#, r#"캈"#, r#"캈"#, r#"캈"#, r#"캈"#),
+        (r#"캉"#, r#"캉"#, r#"캉"#, r#"캉"#, r#"캉"#),
+        (r#"캊"#, r#"캊"#, r#"캊"#, r#"캊"#, r#"캊"#),
+        (r#"캋"#, r#"캋"#, r#"캋"#, r#"캋"#, r#"캋"#),
+        (r#"캌"#, r#"캌"#, r#"캌"#, r#"캌"#, r#"캌"#),
+        (r#"캍"#, r#"캍"#, r#"캍"#, r#"캍"#, r#"캍"#),
+        (r#"캎"#, r#"캎"#, r#"캎"#, r#"캎"#, r#"캎"#),
+        (r#"캏"#, r#"캏"#, r#"캏"#, r#"캏"#, r#"캏"#),
+        (r#"캐"#, r#"캐"#, r#"캐"#, r#"캐"#, r#"캐"#),
+        (r#"캑"#, r#"캑"#, r#"캑"#, r#"캑"#, r#"캑"#),
+        (r#"캒"#, r#"캒"#, r#"캒"#, r#"캒"#, r#"캒"#),
+        (r#"캓"#, r#"캓"#, r#"캓"#, r#"캓"#, r#"캓"#),
+        (r#"캔"#, r#"캔"#, r#"캔"#, r#"캔"#, r#"캔"#),
+        (r#"캕"#, r#"캕"#, r#"캕"#, r#"캕"#, r#"캕"#),
+        (r#"캖"#, r#"캖"#, r#"캖"#, r#"캖"#, r#"캖"#),
+        (r#"캗"#, r#"캗"#, r#"캗"#, r#"캗"#, r#"캗"#),
+        (r#"캘"#, r#"캘"#, r#"캘"#, r#"캘"#, r#"캘"#),
+        (r#"캙"#, r#"캙"#, r#"캙"#, r#"캙"#, r#"캙"#),
+        (r#"캚"#, r#"캚"#, r#"캚"#, r#"캚"#, r#"캚"#),
+        (r#"캛"#, r#"캛"#, r#"캛"#, r#"캛"#, r#"캛"#),
+        (r#"캜"#, r#"캜"#, r#"캜"#, r#"캜"#, r#"캜"#),
+        (r#"캝"#, r#"캝"#, r#"캝"#, r#"캝"#, r#"캝"#),
+        (r#"캞"#, r#"캞"#, r#"캞"#, r#"캞"#, r#"캞"#),
+        (r#"캟"#, r#"캟"#, r#"캟"#, r#"캟"#, r#"캟"#),
+        (r#"캠"#, r#"캠"#, r#"캠"#, r#"캠"#, r#"캠"#),
+        (r#"캡"#, r#"캡"#, r#"캡"#, r#"캡"#, r#"캡"#),
+        (r#"캢"#, r#"캢"#, r#"캢"#, r#"캢"#, r#"캢"#),
+        (r#"캣"#, r#"캣"#, r#"캣"#, r#"캣"#, r#"캣"#),
+        (r#"캤"#, r#"캤"#, r#"캤"#, r#"캤"#, r#"캤"#),
+        (r#"캥"#, r#"캥"#, r#"캥"#, r#"캥"#, r#"캥"#),
+        (r#"캦"#, r#"캦"#, r#"캦"#, r#"캦"#, r#"캦"#),
+        (r#"캧"#, r#"캧"#, r#"캧"#, r#"캧"#, r#"캧"#),
+        (r#"캨"#, r#"캨"#, r#"캨"#, r#"캨"#, r#"캨"#),
+        (r#"캩"#, r#"캩"#, r#"캩"#, r#"캩"#, r#"캩"#),
+        (r#"캪"#, r#"캪"#, r#"캪"#, r#"캪"#, r#"캪"#),
+        (r#"캫"#, r#"캫"#, r#"캫"#, r#"캫"#, r#"캫"#),
+        (r#"캬"#, r#"캬"#, r#"캬"#, r#"캬"#, r#"캬"#),
+        (r#"캭"#, r#"캭"#, r#"캭"#, r#"캭"#, r#"캭"#),
+        (r#"캮"#, r#"캮"#, r#"캮"#, r#"캮"#, r#"캮"#),
+        (r#"캯"#, r#"캯"#, r#"캯"#, r#"캯"#, r#"캯"#),
+        (r#"캰"#, r#"캰"#, r#"캰"#, r#"캰"#, r#"캰"#),
+        (r#"캱"#, r#"캱"#, r#"캱"#, r#"캱"#, r#"캱"#),
+        (r#"캲"#, r#"캲"#, r#"캲"#, r#"캲"#, r#"캲"#),
+        (r#"캳"#, r#"캳"#, r#"캳"#, r#"캳"#, r#"캳"#),
+        (r#"캴"#, r#"캴"#, r#"캴"#, r#"캴"#, r#"캴"#),
+        (r#"캵"#, r#"캵"#, r#"캵"#, r#"캵"#, r#"캵"#),
+        (r#"캶"#, r#"캶"#, r#"캶"#, r#"캶"#, r#"캶"#),
+        (r#"캷"#, r#"캷"#, r#"캷"#, r#"캷"#, r#"캷"#),
+        (r#"캸"#, r#"캸"#, r#"캸"#, r#"캸"#, r#"캸"#),
+        (r#"캹"#, r#"캹"#, r#"캹"#, r#"캹"#, r#"캹"#),
+        (r#"캺"#, r#"캺"#, r#"캺"#, r#"캺"#, r#"캺"#),
+        (r#"캻"#, r#"캻"#, r#"캻"#, r#"캻"#, r#"캻"#),
+        (r#"캼"#, r#"캼"#, r#"캼"#, r#"캼"#, r#"캼"#),
+        (r#"캽"#, r#"캽"#, r#"캽"#, r#"캽"#, r#"캽"#),
+        (r#"캾"#, r#"캾"#, r#"캾"#, r#"캾"#, r#"캾"#),
+        (r#"캿"#, r#"캿"#, r#"캿"#, r#"캿"#, r#"캿"#),
+        (r#"컀"#, r#"컀"#, r#"컀"#, r#"컀"#, r#"컀"#),
+        (r#"컁"#, r#"컁"#, r#"컁"#, r#"컁"#, r#"컁"#),
+        (r#"컂"#, r#"컂"#, r#"컂"#, r#"컂"#, r#"컂"#),
+        (r#"컃"#, r#"컃"#, r#"컃"#, r#"컃"#, r#"컃"#),
+        (r#"컄"#, r#"컄"#, r#"컄"#, r#"컄"#, r#"컄"#),
+        (r#"컅"#, r#"컅"#, r#"컅"#, r#"컅"#, r#"컅"#),
+        (r#"컆"#, r#"컆"#, r#"컆"#, r#"컆"#, r#"컆"#),
+        (r#"컇"#, r#"컇"#, r#"컇"#, r#"컇"#, r#"컇"#),
+        (r#"컈"#, r#"컈"#, r#"컈"#, r#"컈"#, r#"컈"#),
+        (r#"컉"#, r#"컉"#, r#"컉"#, r#"컉"#, r#"컉"#),
+        (r#"컊"#, r#"컊"#, r#"컊"#, r#"컊"#, r#"컊"#),
+        (r#"컋"#, r#"컋"#, r#"컋"#, r#"컋"#, r#"컋"#),
+        (r#"컌"#, r#"컌"#, r#"컌"#, r#"컌"#, r#"컌"#),
+        (r#"컍"#, r#"컍"#, r#"컍"#, r#"컍"#, r#"컍"#),
+        (r#"컎"#, r#"컎"#, r#"컎"#, r#"컎"#, r#"컎"#),
+        (r#"컏"#, r#"컏"#, r#"컏"#, r#"컏"#, r#"컏"#),
+        (r#"컐"#, r#"컐"#, r#"컐"#, r#"컐"#, r#"컐"#),
+        (r#"컑"#, r#"컑"#, r#"컑"#, r#"컑"#, r#"컑"#),
+        (r#"컒"#, r#"컒"#, r#"컒"#, r#"컒"#, r#"컒"#),
+        (r#"컓"#, r#"컓"#, r#"컓"#, r#"컓"#, r#"컓"#),
+        (r#"컔"#, r#"컔"#, r#"컔"#, r#"컔"#, r#"컔"#),
+        (r#"컕"#, r#"컕"#, r#"컕"#, r#"컕"#, r#"컕"#),
+        (r#"컖"#, r#"컖"#, r#"컖"#, r#"컖"#, r#"컖"#),
+        (r#"컗"#, r#"컗"#, r#"컗"#, r#"컗"#, r#"컗"#),
+        (r#"컘"#, r#"컘"#, r#"컘"#, r#"컘"#, r#"컘"#),
+        (r#"컙"#, r#"컙"#, r#"컙"#, r#"컙"#, r#"컙"#),
+        (r#"컚"#, r#"컚"#, r#"컚"#, r#"컚"#, r#"컚"#),
+        (r#"컛"#, r#"컛"#, r#"컛"#, r#"컛"#, r#"컛"#),
+        (r#"컜"#, r#"컜"#, r#"컜"#, r#"컜"#, r#"컜"#),
+        (r#"컝"#, r#"컝"#, r#"컝"#, r#"컝"#, r#"컝"#),
+        (r#"컞"#, r#"컞"#, r#"컞"#, r#"컞"#, r#"컞"#),
+        (r#"컟"#, r#"컟"#, r#"컟"#, r#"컟"#, r#"컟"#),
+        (r#"컠"#, r#"컠"#, r#"컠"#, r#"컠"#, r#"컠"#),
+        (r#"컡"#, r#"컡"#, r#"컡"#, r#"컡"#, r#"컡"#),
+        (r#"컢"#, r#"컢"#, r#"컢"#, r#"컢"#, r#"컢"#),
+        (r#"컣"#, r#"컣"#, r#"컣"#, r#"컣"#, r#"컣"#),
+        (r#"커"#, r#"커"#, r#"커"#, r#"커"#, r#"커"#),
+        (r#"컥"#, r#"컥"#, r#"컥"#, r#"컥"#, r#"컥"#),
+        (r#"컦"#, r#"컦"#, r#"컦"#, r#"컦"#, r#"컦"#),
+        (r#"컧"#, r#"컧"#, r#"컧"#, r#"컧"#, r#"컧"#),
+        (r#"컨"#, r#"컨"#, r#"컨"#, r#"컨"#, r#"컨"#),
+        (r#"컩"#, r#"컩"#, r#"컩"#, r#"컩"#, r#"컩"#),
+        (r#"컪"#, r#"컪"#, r#"컪"#, r#"컪"#, r#"컪"#),
+        (r#"컫"#, r#"컫"#, r#"컫"#, r#"컫"#, r#"컫"#),
+        (r#"컬"#, r#"컬"#, r#"컬"#, r#"컬"#, r#"컬"#),
+        (r#"컭"#, r#"컭"#, r#"컭"#, r#"컭"#, r#"컭"#),
+        (r#"컮"#, r#"컮"#, r#"컮"#, r#"컮"#, r#"컮"#),
+        (r#"컯"#, r#"컯"#, r#"컯"#, r#"컯"#, r#"컯"#),
+        (r#"컰"#, r#"컰"#, r#"컰"#, r#"컰"#, r#"컰"#),
+        (r#"컱"#, r#"컱"#, r#"컱"#, r#"컱"#, r#"컱"#),
+        (r#"컲"#, r#"컲"#, r#"컲"#, r#"컲"#, r#"컲"#),
+        (r#"컳"#, r#"컳"#, r#"컳"#, r#"컳"#, r#"컳"#),
+        (r#"컴"#, r#"컴"#, r#"컴"#, r#"컴"#, r#"컴"#),
+        (r#"컵"#, r#"컵"#, r#"컵"#, r#"컵"#, r#"컵"#),
+        (r#"컶"#, r#"컶"#, r#"컶"#, r#"컶"#, r#"컶"#),
+        (r#"컷"#, r#"컷"#, r#"컷"#, r#"컷"#, r#"컷"#),
+        (r#"컸"#, r#"컸"#, r#"컸"#, r#"컸"#, r#"컸"#),
+        (r#"컹"#, r#"컹"#, r#"컹"#, r#"컹"#, r#"컹"#),
+        (r#"컺"#, r#"컺"#, r#"컺"#, r#"컺"#, r#"컺"#),
+        (r#"컻"#, r#"컻"#, r#"컻"#, r#"컻"#, r#"컻"#),
+        (r#"컼"#, r#"컼"#, r#"컼"#, r#"컼"#, r#"컼"#),
+        (r#"컽"#, r#"컽"#, r#"컽"#, r#"컽"#, r#"컽"#),
+        (r#"컾"#, r#"컾"#, r#"컾"#, r#"컾"#, r#"컾"#),
+        (r#"컿"#, r#"컿"#, r#"컿"#, r#"컿"#, r#"컿"#),
+        (r#"케"#, r#"케"#, r#"케"#, r#"케"#, r#"케"#),
+        (r#"켁"#, r#"켁"#, r#"켁"#, r#"켁"#, r#"켁"#),
+        (r#"켂"#, r#"켂"#, r#"켂"#, r#"켂"#, r#"켂"#),
+        (r#"켃"#, r#"켃"#, r#"켃"#, r#"켃"#, r#"켃"#),
+        (r#"켄"#, r#"켄"#, r#"켄"#, r#"켄"#, r#"켄"#),
+        (r#"켅"#, r#"켅"#, r#"켅"#, r#"켅"#, r#"켅"#),
+        (r#"켆"#, r#"켆"#, r#"켆"#, r#"켆"#, r#"켆"#),
+        (r#"켇"#, r#"켇"#, r#"켇"#, r#"켇"#, r#"켇"#),
+        (r#"켈"#, r#"켈"#, r#"켈"#, r#"켈"#, r#"켈"#),
+        (r#"켉"#, r#"켉"#, r#"켉"#, r#"켉"#, r#"켉"#),
+        (r#"켊"#, r#"켊"#, r#"켊"#, r#"켊"#, r#"켊"#),
+        (r#"켋"#, r#"켋"#, r#"켋"#, r#"켋"#, r#"켋"#),
+        (r#"켌"#, r#"켌"#, r#"켌"#, r#"켌"#, r#"켌"#),
+        (r#"켍"#, r#"켍"#, r#"켍"#, r#"켍"#, r#"켍"#),
+        (r#"켎"#, r#"켎"#, r#"켎"#, r#"켎"#, r#"켎"#),
+        (r#"켏"#, r#"켏"#, r#"켏"#, r#"켏"#, r#"켏"#),
+        (r#"켐"#, r#"켐"#, r#"켐"#, r#"켐"#, r#"켐"#),
+        (r#"켑"#, r#"켑"#, r#"켑"#, r#"켑"#, r#"켑"#),
+        (r#"켒"#, r#"켒"#, r#"켒"#, r#"켒"#, r#"켒"#),
+        (r#"켓"#, r#"켓"#, r#"켓"#, r#"켓"#, r#"켓"#),
+        (r#"켔"#, r#"켔"#, r#"켔"#, r#"켔"#, r#"켔"#),
+        (r#"켕"#, r#"켕"#, r#"켕"#, r#"켕"#, r#"켕"#),
+        (r#"켖"#, r#"켖"#, r#"켖"#, r#"켖"#, r#"켖"#),
+        (r#"켗"#, r#"켗"#, r#"켗"#, r#"켗"#, r#"켗"#),
+        (r#"켘"#, r#"켘"#, r#"켘"#, r#"켘"#, r#"켘"#),
+        (r#"켙"#, r#"켙"#, r#"켙"#, r#"켙"#, r#"켙"#),
+        (r#"켚"#, r#"켚"#, r#"켚"#, r#"켚"#, r#"켚"#),
+        (r#"켛"#, r#"켛"#, r#"켛"#, r#"켛"#, r#"켛"#),
+        (r#"켜"#, r#"켜"#, r#"켜"#, r#"켜"#, r#"켜"#),
+        (r#"켝"#, r#"켝"#, r#"켝"#, r#"켝"#, r#"켝"#),
+        (r#"켞"#, r#"켞"#, r#"켞"#, r#"켞"#, r#"켞"#),
+        (r#"켟"#, r#"켟"#, r#"켟"#, r#"켟"#, r#"켟"#),
+        (r#"켠"#, r#"켠"#, r#"켠"#, r#"켠"#, r#"켠"#),
+        (r#"켡"#, r#"켡"#, r#"켡"#, r#"켡"#, r#"켡"#),
+        (r#"켢"#, r#"켢"#, r#"켢"#, r#"켢"#, r#"켢"#),
+        (r#"켣"#, r#"켣"#, r#"켣"#, r#"켣"#, r#"켣"#),
+        (r#"켤"#, r#"켤"#, r#"켤"#, r#"켤"#, r#"켤"#),
+        (r#"켥"#, r#"켥"#, r#"켥"#, r#"켥"#, r#"켥"#),
+        (r#"켦"#, r#"켦"#, r#"켦"#, r#"켦"#, r#"켦"#),
+        (r#"켧"#, r#"켧"#, r#"켧"#, r#"켧"#, r#"켧"#),
+        (r#"켨"#, r#"켨"#, r#"켨"#, r#"켨"#, r#"켨"#),
+        (r#"켩"#, r#"켩"#, r#"켩"#, r#"켩"#, r#"켩"#),
+        (r#"켪"#, r#"켪"#, r#"켪"#, r#"켪"#, r#"켪"#),
+        (r#"켫"#, r#"켫"#, r#"켫"#, r#"켫"#, r#"켫"#),
+        (r#"켬"#, r#"켬"#, r#"켬"#, r#"켬"#, r#"켬"#),
+        (r#"켭"#, r#"켭"#, r#"켭"#, r#"켭"#, r#"켭"#),
+        (r#"켮"#, r#"켮"#, r#"켮"#, r#"켮"#, r#"켮"#),
+        (r#"켯"#, r#"켯"#, r#"켯"#, r#"켯"#, r#"켯"#),
+        (r#"켰"#, r#"켰"#, r#"켰"#, r#"켰"#, r#"켰"#),
+        (r#"켱"#, r#"켱"#, r#"켱"#, r#"켱"#, r#"켱"#),
+        (r#"켲"#, r#"켲"#, r#"켲"#, r#"켲"#, r#"켲"#),
+        (r#"켳"#, r#"켳"#, r#"켳"#, r#"켳"#, r#"켳"#),
+        (r#"켴"#, r#"켴"#, r#"켴"#, r#"켴"#, r#"켴"#),
+        (r#"켵"#, r#"켵"#, r#"켵"#, r#"켵"#, r#"켵"#),
+        (r#"켶"#, r#"켶"#, r#"켶"#, r#"켶"#, r#"켶"#),
+        (r#"켷"#, r#"켷"#, r#"켷"#, r#"켷"#, r#"켷"#),
+        (r#"켸"#, r#"켸"#, r#"켸"#, r#"켸"#, r#"켸"#),
+        (r#"켹"#, r#"켹"#, r#"켹"#, r#"켹"#, r#"켹"#),
+        (r#"켺"#, r#"켺"#, r#"켺"#, r#"켺"#, r#"켺"#),
+        (r#"켻"#, r#"켻"#, r#"켻"#, r#"켻"#, r#"켻"#),
+        (r#"켼"#, r#"켼"#, r#"켼"#, r#"켼"#, r#"켼"#),
+        (r#"켽"#, r#"켽"#, r#"켽"#, r#"켽"#, r#"켽"#),
+        (r#"켾"#, r#"켾"#, r#"켾"#, r#"켾"#, r#"켾"#),
+        (r#"켿"#, r#"켿"#, r#"켿"#, r#"켿"#, r#"켿"#),
+        (r#"콀"#, r#"콀"#, r#"콀"#, r#"콀"#, r#"콀"#),
+        (r#"콁"#, r#"콁"#, r#"콁"#, r#"콁"#, r#"콁"#),
+        (r#"콂"#, r#"콂"#, r#"콂"#, r#"콂"#, r#"콂"#),
+        (r#"콃"#, r#"콃"#, r#"콃"#, r#"콃"#, r#"콃"#),
+        (r#"콄"#, r#"콄"#, r#"콄"#, r#"콄"#, r#"콄"#),
+        (r#"콅"#, r#"콅"#, r#"콅"#, r#"콅"#, r#"콅"#),
+        (r#"콆"#, r#"콆"#, r#"콆"#, r#"콆"#, r#"콆"#),
+        (r#"콇"#, r#"콇"#, r#"콇"#, r#"콇"#, r#"콇"#),
+        (r#"콈"#, r#"콈"#, r#"콈"#, r#"콈"#, r#"콈"#),
+        (r#"콉"#, r#"콉"#, r#"콉"#, r#"콉"#, r#"콉"#),
+        (r#"콊"#, r#"콊"#, r#"콊"#, r#"콊"#, r#"콊"#),
+        (r#"콋"#, r#"콋"#, r#"콋"#, r#"콋"#, r#"콋"#),
+        (r#"콌"#, r#"콌"#, r#"콌"#, r#"콌"#, r#"콌"#),
+        (r#"콍"#, r#"콍"#, r#"콍"#, r#"콍"#, r#"콍"#),
+        (r#"콎"#, r#"콎"#, r#"콎"#, r#"콎"#, r#"콎"#),
+        (r#"콏"#, r#"콏"#, r#"콏"#, r#"콏"#, r#"콏"#),
+        (r#"콐"#, r#"콐"#, r#"콐"#, r#"콐"#, r#"콐"#),
+        (r#"콑"#, r#"콑"#, r#"콑"#, r#"콑"#, r#"콑"#),
+        (r#"콒"#, r#"콒"#, r#"콒"#, r#"콒"#, r#"콒"#),
+        (r#"콓"#, r#"콓"#, r#"콓"#, r#"콓"#, r#"콓"#),
+        (r#"코"#, r#"코"#, r#"코"#, r#"코"#, r#"코"#),
+        (r#"콕"#, r#"콕"#, r#"콕"#, r#"콕"#, r#"콕"#),
+        (r#"콖"#, r#"콖"#, r#"콖"#, r#"콖"#, r#"콖"#),
+        (r#"콗"#, r#"콗"#, r#"콗"#, r#"콗"#, r#"콗"#),
+        (r#"콘"#, r#"콘"#, r#"콘"#, r#"콘"#, r#"콘"#),
+        (r#"콙"#, r#"콙"#, r#"콙"#, r#"콙"#, r#"콙"#),
+        (r#"콚"#, r#"콚"#, r#"콚"#, r#"콚"#, r#"콚"#),
+        (r#"콛"#, r#"콛"#, r#"콛"#, r#"콛"#, r#"콛"#),
+        (r#"콜"#, r#"콜"#, r#"콜"#, r#"콜"#, r#"콜"#),
+        (r#"콝"#, r#"콝"#, r#"콝"#, r#"콝"#, r#"콝"#),
+        (r#"콞"#, r#"콞"#, r#"콞"#, r#"콞"#, r#"콞"#),
+        (r#"콟"#, r#"콟"#, r#"콟"#, r#"콟"#, r#"콟"#),
+        (r#"콠"#, r#"콠"#, r#"콠"#, r#"콠"#, r#"콠"#),
+        (r#"콡"#, r#"콡"#, r#"콡"#, r#"콡"#, r#"콡"#),
+        (r#"콢"#, r#"콢"#, r#"콢"#, r#"콢"#, r#"콢"#),
+        (r#"콣"#, r#"콣"#, r#"콣"#, r#"콣"#, r#"콣"#),
+        (r#"콤"#, r#"콤"#, r#"콤"#, r#"콤"#, r#"콤"#),
+        (r#"콥"#, r#"콥"#, r#"콥"#, r#"콥"#, r#"콥"#),
+        (r#"콦"#, r#"콦"#, r#"콦"#, r#"콦"#, r#"콦"#),
+        (r#"콧"#, r#"콧"#, r#"콧"#, r#"콧"#, r#"콧"#),
+        (r#"콨"#, r#"콨"#, r#"콨"#, r#"콨"#, r#"콨"#),
+        (r#"콩"#, r#"콩"#, r#"콩"#, r#"콩"#, r#"콩"#),
+        (r#"콪"#, r#"콪"#, r#"콪"#, r#"콪"#, r#"콪"#),
+        (r#"콫"#, r#"콫"#, r#"콫"#, r#"콫"#, r#"콫"#),
+        (r#"콬"#, r#"콬"#, r#"콬"#, r#"콬"#, r#"콬"#),
+        (r#"콭"#, r#"콭"#, r#"콭"#, r#"콭"#, r#"콭"#),
+        (r#"콮"#, r#"콮"#, r#"콮"#, r#"콮"#, r#"콮"#),
+        (r#"콯"#, r#"콯"#, r#"콯"#, r#"콯"#, r#"콯"#),
+        (r#"콰"#, r#"콰"#, r#"콰"#, r#"콰"#, r#"콰"#),
+        (r#"콱"#, r#"콱"#, r#"콱"#, r#"콱"#, r#"콱"#),
+        (r#"콲"#, r#"콲"#, r#"콲"#, r#"콲"#, r#"콲"#),
+        (r#"콳"#, r#"콳"#, r#"콳"#, r#"콳"#, r#"콳"#),
+        (r#"콴"#, r#"콴"#, r#"콴"#, r#"콴"#, r#"콴"#),
+        (r#"콵"#, r#"콵"#, r#"콵"#, r#"콵"#, r#"콵"#),
+        (r#"콶"#, r#"콶"#, r#"콶"#, r#"콶"#, r#"콶"#),
+        (r#"콷"#, r#"콷"#, r#"콷"#, r#"콷"#, r#"콷"#),
+        (r#"콸"#, r#"콸"#, r#"콸"#, r#"콸"#, r#"콸"#),
+        (r#"콹"#, r#"콹"#, r#"콹"#, r#"콹"#, r#"콹"#),
+        (r#"콺"#, r#"콺"#, r#"콺"#, r#"콺"#, r#"콺"#),
+        (r#"콻"#, r#"콻"#, r#"콻"#, r#"콻"#, r#"콻"#),
+        (r#"콼"#, r#"콼"#, r#"콼"#, r#"콼"#, r#"콼"#),
+        (r#"콽"#, r#"콽"#, r#"콽"#, r#"콽"#, r#"콽"#),
+        (r#"콾"#, r#"콾"#, r#"콾"#, r#"콾"#, r#"콾"#),
+        (r#"콿"#, r#"콿"#, r#"콿"#, r#"콿"#, r#"콿"#),
+        (r#"쾀"#, r#"쾀"#, r#"쾀"#, r#"쾀"#, r#"쾀"#),
+        (r#"쾁"#, r#"쾁"#, r#"쾁"#, r#"쾁"#, r#"쾁"#),
+        (r#"쾂"#, r#"쾂"#, r#"쾂"#, r#"쾂"#, r#"쾂"#),
+        (r#"쾃"#, r#"쾃"#, r#"쾃"#, r#"쾃"#, r#"쾃"#),
+        (r#"쾄"#, r#"쾄"#, r#"쾄"#, r#"쾄"#, r#"쾄"#),
+        (r#"쾅"#, r#"쾅"#, r#"쾅"#, r#"쾅"#, r#"쾅"#),
+        (r#"쾆"#, r#"쾆"#, r#"쾆"#, r#"쾆"#, r#"쾆"#),
+        (r#"쾇"#, r#"쾇"#, r#"쾇"#, r#"쾇"#, r#"쾇"#),
+        (r#"쾈"#, r#"쾈"#, r#"쾈"#, r#"쾈"#, r#"쾈"#),
+        (r#"쾉"#, r#"쾉"#, r#"쾉"#, r#"쾉"#, r#"쾉"#),
+        (r#"쾊"#, r#"쾊"#, r#"쾊"#, r#"쾊"#, r#"쾊"#),
+        (r#"쾋"#, r#"쾋"#, r#"쾋"#, r#"쾋"#, r#"쾋"#),
+        (r#"쾌"#, r#"쾌"#, r#"쾌"#, r#"쾌"#, r#"쾌"#),
+        (r#"쾍"#, r#"쾍"#, r#"쾍"#, r#"쾍"#, r#"쾍"#),
+        (r#"쾎"#, r#"쾎"#, r#"쾎"#, r#"쾎"#, r#"쾎"#),
+        (r#"쾏"#, r#"쾏"#, r#"쾏"#, r#"쾏"#, r#"쾏"#),
+        (r#"쾐"#, r#"쾐"#, r#"쾐"#, r#"쾐"#, r#"쾐"#),
+        (r#"쾑"#, r#"쾑"#, r#"쾑"#, r#"쾑"#, r#"쾑"#),
+        (r#"쾒"#, r#"쾒"#, r#"쾒"#, r#"쾒"#, r#"쾒"#),
+        (r#"쾓"#, r#"쾓"#, r#"쾓"#, r#"쾓"#, r#"쾓"#),
+        (r#"쾔"#, r#"쾔"#, r#"쾔"#, r#"쾔"#, r#"쾔"#),
+        (r#"쾕"#, r#"쾕"#, r#"쾕"#, r#"쾕"#, r#"쾕"#),
+        (r#"쾖"#, r#"쾖"#, r#"쾖"#, r#"쾖"#, r#"쾖"#),
+        (r#"쾗"#, r#"쾗"#, r#"쾗"#, r#"쾗"#, r#"쾗"#),
+        (r#"쾘"#, r#"쾘"#, r#"쾘"#, r#"쾘"#, r#"쾘"#),
+        (r#"쾙"#, r#"쾙"#, r#"쾙"#, r#"쾙"#, r#"쾙"#),
+        (r#"쾚"#, r#"쾚"#, r#"쾚"#, r#"쾚"#, r#"쾚"#),
+        (r#"쾛"#, r#"쾛"#, r#"쾛"#, r#"쾛"#, r#"쾛"#),
+        (r#"쾜"#, r#"쾜"#, r#"쾜"#, r#"쾜"#, r#"쾜"#),
+        (r#"쾝"#, r#"쾝"#, r#"쾝"#, r#"쾝"#, r#"쾝"#),
+        (r#"쾞"#, r#"쾞"#, r#"쾞"#, r#"쾞"#, r#"쾞"#),
+        (r#"쾟"#, r#"쾟"#, r#"쾟"#, r#"쾟"#, r#"쾟"#),
+        (r#"쾠"#, r#"쾠"#, r#"쾠"#, r#"쾠"#, r#"쾠"#),
+        (r#"쾡"#, r#"쾡"#, r#"쾡"#, r#"쾡"#, r#"쾡"#),
+        (r#"쾢"#, r#"쾢"#, r#"쾢"#, r#"쾢"#, r#"쾢"#),
+        (r#"쾣"#, r#"쾣"#, r#"쾣"#, r#"쾣"#, r#"쾣"#),
+        (r#"쾤"#, r#"쾤"#, r#"쾤"#, r#"쾤"#, r#"쾤"#),
+        (r#"쾥"#, r#"쾥"#, r#"쾥"#, r#"쾥"#, r#"쾥"#),
+        (r#"쾦"#, r#"쾦"#, r#"쾦"#, r#"쾦"#, r#"쾦"#),
+        (r#"쾧"#, r#"쾧"#, r#"쾧"#, r#"쾧"#, r#"쾧"#),
+        (r#"쾨"#, r#"쾨"#, r#"쾨"#, r#"쾨"#, r#"쾨"#),
+        (r#"쾩"#, r#"쾩"#, r#"쾩"#, r#"쾩"#, r#"쾩"#),
+        (r#"쾪"#, r#"쾪"#, r#"쾪"#, r#"쾪"#, r#"쾪"#),
+        (r#"쾫"#, r#"쾫"#, r#"쾫"#, r#"쾫"#, r#"쾫"#),
+        (r#"쾬"#, r#"쾬"#, r#"쾬"#, r#"쾬"#, r#"쾬"#),
+        (r#"쾭"#, r#"쾭"#, r#"쾭"#, r#"쾭"#, r#"쾭"#),
+        (r#"쾮"#, r#"쾮"#, r#"쾮"#, r#"쾮"#, r#"쾮"#),
+        (r#"쾯"#, r#"쾯"#, r#"쾯"#, r#"쾯"#, r#"쾯"#),
+        (r#"쾰"#, r#"쾰"#, r#"쾰"#, r#"쾰"#, r#"쾰"#),
+        (r#"쾱"#, r#"쾱"#, r#"쾱"#, r#"쾱"#, r#"쾱"#),
+        (r#"쾲"#, r#"쾲"#, r#"쾲"#, r#"쾲"#, r#"쾲"#),
+        (r#"쾳"#, r#"쾳"#, r#"쾳"#, r#"쾳"#, r#"쾳"#),
+        (r#"쾴"#, r#"쾴"#, r#"쾴"#, r#"쾴"#, r#"쾴"#),
+        (r#"쾵"#, r#"쾵"#, r#"쾵"#, r#"쾵"#, r#"쾵"#),
+        (r#"쾶"#, r#"쾶"#, r#"쾶"#, r#"쾶"#, r#"쾶"#),
+        (r#"쾷"#, r#"쾷"#, r#"쾷"#, r#"쾷"#, r#"쾷"#),
+        (r#"쾸"#, r#"쾸"#, r#"쾸"#, r#"쾸"#, r#"쾸"#),
+        (r#"쾹"#, r#"쾹"#, r#"쾹"#, r#"쾹"#, r#"쾹"#),
+        (r#"쾺"#, r#"쾺"#, r#"쾺"#, r#"쾺"#, r#"쾺"#),
+        (r#"쾻"#, r#"쾻"#, r#"쾻"#, r#"쾻"#, r#"쾻"#),
+        (r#"쾼"#, r#"쾼"#, r#"쾼"#, r#"쾼"#, r#"쾼"#),
+        (r#"쾽"#, r#"쾽"#, r#"쾽"#, r#"쾽"#, r#"쾽"#),
+        (r#"쾾"#, r#"쾾"#, r#"쾾"#, r#"쾾"#, r#"쾾"#),
+        (r#"쾿"#, r#"쾿"#, r#"쾿"#, r#"쾿"#, r#"쾿"#),
+        (r#"쿀"#, r#"쿀"#, r#"쿀"#, r#"쿀"#, r#"쿀"#),
+        (r#"쿁"#, r#"쿁"#, r#"쿁"#, r#"쿁"#, r#"쿁"#),
+        (r#"쿂"#, r#"쿂"#, r#"쿂"#, r#"쿂"#, r#"쿂"#),
+        (r#"쿃"#, r#"쿃"#, r#"쿃"#, r#"쿃"#, r#"쿃"#),
+        (r#"쿄"#, r#"쿄"#, r#"쿄"#, r#"쿄"#, r#"쿄"#),
+        (r#"쿅"#, r#"쿅"#, r#"쿅"#, r#"쿅"#, r#"쿅"#),
+        (r#"쿆"#, r#"쿆"#, r#"쿆"#, r#"쿆"#, r#"쿆"#),
+        (r#"쿇"#, r#"쿇"#, r#"쿇"#, r#"쿇"#, r#"쿇"#),
+        (r#"쿈"#, r#"쿈"#, r#"쿈"#, r#"쿈"#, r#"쿈"#),
+        (r#"쿉"#, r#"쿉"#, r#"쿉"#, r#"쿉"#, r#"쿉"#),
+        (r#"쿊"#, r#"쿊"#, r#"쿊"#, r#"쿊"#, r#"쿊"#),
+        (r#"쿋"#, r#"쿋"#, r#"쿋"#, r#"쿋"#, r#"쿋"#),
+        (r#"쿌"#, r#"쿌"#, r#"쿌"#, r#"쿌"#, r#"쿌"#),
+        (r#"쿍"#, r#"쿍"#, r#"쿍"#, r#"쿍"#, r#"쿍"#),
+        (r#"쿎"#, r#"쿎"#, r#"쿎"#, r#"쿎"#, r#"쿎"#),
+        (r#"쿏"#, r#"쿏"#, r#"쿏"#, r#"쿏"#, r#"쿏"#),
+        (r#"쿐"#, r#"쿐"#, r#"쿐"#, r#"쿐"#, r#"쿐"#),
+        (r#"쿑"#, r#"쿑"#, r#"쿑"#, r#"쿑"#, r#"쿑"#),
+        (r#"쿒"#, r#"쿒"#, r#"쿒"#, r#"쿒"#, r#"쿒"#),
+        (r#"쿓"#, r#"쿓"#, r#"쿓"#, r#"쿓"#, r#"쿓"#),
+        (r#"쿔"#, r#"쿔"#, r#"쿔"#, r#"쿔"#, r#"쿔"#),
+        (r#"쿕"#, r#"쿕"#, r#"쿕"#, r#"쿕"#, r#"쿕"#),
+        (r#"쿖"#, r#"쿖"#, r#"쿖"#, r#"쿖"#, r#"쿖"#),
+        (r#"쿗"#, r#"쿗"#, r#"쿗"#, r#"쿗"#, r#"쿗"#),
+        (r#"쿘"#, r#"쿘"#, r#"쿘"#, r#"쿘"#, r#"쿘"#),
+        (r#"쿙"#, r#"쿙"#, r#"쿙"#, r#"쿙"#, r#"쿙"#),
+        (r#"쿚"#, r#"쿚"#, r#"쿚"#, r#"쿚"#, r#"쿚"#),
+        (r#"쿛"#, r#"쿛"#, r#"쿛"#, r#"쿛"#, r#"쿛"#),
+        (r#"쿜"#, r#"쿜"#, r#"쿜"#, r#"쿜"#, r#"쿜"#),
+        (r#"쿝"#, r#"쿝"#, r#"쿝"#, r#"쿝"#, r#"쿝"#),
+        (r#"쿞"#, r#"쿞"#, r#"쿞"#, r#"쿞"#, r#"쿞"#),
+        (r#"쿟"#, r#"쿟"#, r#"쿟"#, r#"쿟"#, r#"쿟"#),
+        (r#"쿠"#, r#"쿠"#, r#"쿠"#, r#"쿠"#, r#"쿠"#),
+        (r#"쿡"#, r#"쿡"#, r#"쿡"#, r#"쿡"#, r#"쿡"#),
+        (r#"쿢"#, r#"쿢"#, r#"쿢"#, r#"쿢"#, r#"쿢"#),
+        (r#"쿣"#, r#"쿣"#, r#"쿣"#, r#"쿣"#, r#"쿣"#),
+        (r#"쿤"#, r#"쿤"#, r#"쿤"#, r#"쿤"#, r#"쿤"#),
+        (r#"쿥"#, r#"쿥"#, r#"쿥"#, r#"쿥"#, r#"쿥"#),
+        (r#"쿦"#, r#"쿦"#, r#"쿦"#, r#"쿦"#, r#"쿦"#),
+        (r#"쿧"#, r#"쿧"#, r#"쿧"#, r#"쿧"#, r#"쿧"#),
+        (r#"쿨"#, r#"쿨"#, r#"쿨"#, r#"쿨"#, r#"쿨"#),
+        (r#"쿩"#, r#"쿩"#, r#"쿩"#, r#"쿩"#, r#"쿩"#),
+        (r#"쿪"#, r#"쿪"#, r#"쿪"#, r#"쿪"#, r#"쿪"#),
+        (r#"쿫"#, r#"쿫"#, r#"쿫"#, r#"쿫"#, r#"쿫"#),
+        (r#"쿬"#, r#"쿬"#, r#"쿬"#, r#"쿬"#, r#"쿬"#),
+        (r#"쿭"#, r#"쿭"#, r#"쿭"#, r#"쿭"#, r#"쿭"#),
+        (r#"쿮"#, r#"쿮"#, r#"쿮"#, r#"쿮"#, r#"쿮"#),
+        (r#"쿯"#, r#"쿯"#, r#"쿯"#, r#"쿯"#, r#"쿯"#),
+        (r#"쿰"#, r#"쿰"#, r#"쿰"#, r#"쿰"#, r#"쿰"#),
+        (r#"쿱"#, r#"쿱"#, r#"쿱"#, r#"쿱"#, r#"쿱"#),
+        (r#"쿲"#, r#"쿲"#, r#"쿲"#, r#"쿲"#, r#"쿲"#),
+        (r#"쿳"#, r#"쿳"#, r#"쿳"#, r#"쿳"#, r#"쿳"#),
+        (r#"쿴"#, r#"쿴"#, r#"쿴"#, r#"쿴"#, r#"쿴"#),
+        (r#"쿵"#, r#"쿵"#, r#"쿵"#, r#"쿵"#, r#"쿵"#),
+        (r#"쿶"#, r#"쿶"#, r#"쿶"#, r#"쿶"#, r#"쿶"#),
+        (r#"쿷"#, r#"쿷"#, r#"쿷"#, r#"쿷"#, r#"쿷"#),
+        (r#"쿸"#, r#"쿸"#, r#"쿸"#, r#"쿸"#, r#"쿸"#),
+        (r#"쿹"#, r#"쿹"#, r#"쿹"#, r#"쿹"#, r#"쿹"#),
+        (r#"쿺"#, r#"쿺"#, r#"쿺"#, r#"쿺"#, r#"쿺"#),
+        (r#"쿻"#, r#"쿻"#, r#"쿻"#, r#"쿻"#, r#"쿻"#),
+        (r#"쿼"#, r#"쿼"#, r#"쿼"#, r#"쿼"#, r#"쿼"#),
+        (r#"쿽"#, r#"쿽"#, r#"쿽"#, r#"쿽"#, r#"쿽"#),
+        (r#"쿾"#, r#"쿾"#, r#"쿾"#, r#"쿾"#, r#"쿾"#),
+        (r#"쿿"#, r#"쿿"#, r#"쿿"#, r#"쿿"#, r#"쿿"#),
+        (r#"퀀"#, r#"퀀"#, r#"퀀"#, r#"퀀"#, r#"퀀"#),
+        (r#"퀁"#, r#"퀁"#, r#"퀁"#, r#"퀁"#, r#"퀁"#),
+        (r#"퀂"#, r#"퀂"#, r#"퀂"#, r#"퀂"#, r#"퀂"#),
+        (r#"퀃"#, r#"퀃"#, r#"퀃"#, r#"퀃"#, r#"퀃"#),
+        (r#"퀄"#, r#"퀄"#, r#"퀄"#, r#"퀄"#, r#"퀄"#),
+        (r#"퀅"#, r#"퀅"#, r#"퀅"#, r#"퀅"#, r#"퀅"#),
+        (r#"퀆"#, r#"퀆"#, r#"퀆"#, r#"퀆"#, r#"퀆"#),
+        (r#"퀇"#, r#"퀇"#, r#"퀇"#, r#"퀇"#, r#"퀇"#),
+        (r#"퀈"#, r#"퀈"#, r#"퀈"#, r#"퀈"#, r#"퀈"#),
+        (r#"퀉"#, r#"퀉"#, r#"퀉"#, r#"퀉"#, r#"퀉"#),
+        (r#"퀊"#, r#"퀊"#, r#"퀊"#, r#"퀊"#, r#"퀊"#),
+        (r#"퀋"#, r#"퀋"#, r#"퀋"#, r#"퀋"#, r#"퀋"#),
+        (r#"퀌"#, r#"퀌"#, r#"퀌"#, r#"퀌"#, r#"퀌"#),
+        (r#"퀍"#, r#"퀍"#, r#"퀍"#, r#"퀍"#, r#"퀍"#),
+        (r#"퀎"#, r#"퀎"#, r#"퀎"#, r#"퀎"#, r#"퀎"#),
+        (r#"퀏"#, r#"퀏"#, r#"퀏"#, r#"퀏"#, r#"퀏"#),
+        (r#"퀐"#, r#"퀐"#, r#"퀐"#, r#"퀐"#, r#"퀐"#),
+        (r#"퀑"#, r#"퀑"#, r#"퀑"#, r#"퀑"#, r#"퀑"#),
+        (r#"퀒"#, r#"퀒"#, r#"퀒"#, r#"퀒"#, r#"퀒"#),
+        (r#"퀓"#, r#"퀓"#, r#"퀓"#, r#"퀓"#, r#"퀓"#),
+        (r#"퀔"#, r#"퀔"#, r#"퀔"#, r#"퀔"#, r#"퀔"#),
+        (r#"퀕"#, r#"퀕"#, r#"퀕"#, r#"퀕"#, r#"퀕"#),
+        (r#"퀖"#, r#"퀖"#, r#"퀖"#, r#"퀖"#, r#"퀖"#),
+        (r#"퀗"#, r#"퀗"#, r#"퀗"#, r#"퀗"#, r#"퀗"#),
+        (r#"퀘"#, r#"퀘"#, r#"퀘"#, r#"퀘"#, r#"퀘"#),
+        (r#"퀙"#, r#"퀙"#, r#"퀙"#, r#"퀙"#, r#"퀙"#),
+        (r#"퀚"#, r#"퀚"#, r#"퀚"#, r#"퀚"#, r#"퀚"#),
+        (r#"퀛"#, r#"퀛"#, r#"퀛"#, r#"퀛"#, r#"퀛"#),
+        (r#"퀜"#, r#"퀜"#, r#"퀜"#, r#"퀜"#, r#"퀜"#),
+        (r#"퀝"#, r#"퀝"#, r#"퀝"#, r#"퀝"#, r#"퀝"#),
+        (r#"퀞"#, r#"퀞"#, r#"퀞"#, r#"퀞"#, r#"퀞"#),
+        (r#"퀟"#, r#"퀟"#, r#"퀟"#, r#"퀟"#, r#"퀟"#),
+        (r#"퀠"#, r#"퀠"#, r#"퀠"#, r#"퀠"#, r#"퀠"#),
+        (r#"퀡"#, r#"퀡"#, r#"퀡"#, r#"퀡"#, r#"퀡"#),
+        (r#"퀢"#, r#"퀢"#, r#"퀢"#, r#"퀢"#, r#"퀢"#),
+        (r#"퀣"#, r#"퀣"#, r#"퀣"#, r#"퀣"#, r#"퀣"#),
+        (r#"퀤"#, r#"퀤"#, r#"퀤"#, r#"퀤"#, r#"퀤"#),
+        (r#"퀥"#, r#"퀥"#, r#"퀥"#, r#"퀥"#, r#"퀥"#),
+        (r#"퀦"#, r#"퀦"#, r#"퀦"#, r#"퀦"#, r#"퀦"#),
+        (r#"퀧"#, r#"퀧"#, r#"퀧"#, r#"퀧"#, r#"퀧"#),
+        (r#"퀨"#, r#"퀨"#, r#"퀨"#, r#"퀨"#, r#"퀨"#),
+        (r#"퀩"#, r#"퀩"#, r#"퀩"#, r#"퀩"#, r#"퀩"#),
+        (r#"퀪"#, r#"퀪"#, r#"퀪"#, r#"퀪"#, r#"퀪"#),
+        (r#"퀫"#, r#"퀫"#, r#"퀫"#, r#"퀫"#, r#"퀫"#),
+        (r#"퀬"#, r#"퀬"#, r#"퀬"#, r#"퀬"#, r#"퀬"#),
+        (r#"퀭"#, r#"퀭"#, r#"퀭"#, r#"퀭"#, r#"퀭"#),
+        (r#"퀮"#, r#"퀮"#, r#"퀮"#, r#"퀮"#, r#"퀮"#),
+        (r#"퀯"#, r#"퀯"#, r#"퀯"#, r#"퀯"#, r#"퀯"#),
+        (r#"퀰"#, r#"퀰"#, r#"퀰"#, r#"퀰"#, r#"퀰"#),
+        (r#"퀱"#, r#"퀱"#, r#"퀱"#, r#"퀱"#, r#"퀱"#),
+        (r#"퀲"#, r#"퀲"#, r#"퀲"#, r#"퀲"#, r#"퀲"#),
+        (r#"퀳"#, r#"퀳"#, r#"퀳"#, r#"퀳"#, r#"퀳"#),
+        (r#"퀴"#, r#"퀴"#, r#"퀴"#, r#"퀴"#, r#"퀴"#),
+        (r#"퀵"#, r#"퀵"#, r#"퀵"#, r#"퀵"#, r#"퀵"#),
+        (r#"퀶"#, r#"퀶"#, r#"퀶"#, r#"퀶"#, r#"퀶"#),
+        (r#"퀷"#, r#"퀷"#, r#"퀷"#, r#"퀷"#, r#"퀷"#),
+        (r#"퀸"#, r#"퀸"#, r#"퀸"#, r#"퀸"#, r#"퀸"#),
+        (r#"퀹"#, r#"퀹"#, r#"퀹"#, r#"퀹"#, r#"퀹"#),
+        (r#"퀺"#, r#"퀺"#, r#"퀺"#, r#"퀺"#, r#"퀺"#),
+        (r#"퀻"#, r#"퀻"#, r#"퀻"#, r#"퀻"#, r#"퀻"#),
+        (r#"퀼"#, r#"퀼"#, r#"퀼"#, r#"퀼"#, r#"퀼"#),
+        (r#"퀽"#, r#"퀽"#, r#"퀽"#, r#"퀽"#, r#"퀽"#),
+        (r#"퀾"#, r#"퀾"#, r#"퀾"#, r#"퀾"#, r#"퀾"#),
+        (r#"퀿"#, r#"퀿"#, r#"퀿"#, r#"퀿"#, r#"퀿"#),
+        (r#"큀"#, r#"큀"#, r#"큀"#, r#"큀"#, r#"큀"#),
+        (r#"큁"#, r#"큁"#, r#"큁"#, r#"큁"#, r#"큁"#),
+        (r#"큂"#, r#"큂"#, r#"큂"#, r#"큂"#, r#"큂"#),
+        (r#"큃"#, r#"큃"#, r#"큃"#, r#"큃"#, r#"큃"#),
+        (r#"큄"#, r#"큄"#, r#"큄"#, r#"큄"#, r#"큄"#),
+        (r#"큅"#, r#"큅"#, r#"큅"#, r#"큅"#, r#"큅"#),
+        (r#"큆"#, r#"큆"#, r#"큆"#, r#"큆"#, r#"큆"#),
+        (r#"큇"#, r#"큇"#, r#"큇"#, r#"큇"#, r#"큇"#),
+        (r#"큈"#, r#"큈"#, r#"큈"#, r#"큈"#, r#"큈"#),
+        (r#"큉"#, r#"큉"#, r#"큉"#, r#"큉"#, r#"큉"#),
+        (r#"큊"#, r#"큊"#, r#"큊"#, r#"큊"#, r#"큊"#),
+        (r#"큋"#, r#"큋"#, r#"큋"#, r#"큋"#, r#"큋"#),
+        (r#"큌"#, r#"큌"#, r#"큌"#, r#"큌"#, r#"큌"#),
+        (r#"큍"#, r#"큍"#, r#"큍"#, r#"큍"#, r#"큍"#),
+        (r#"큎"#, r#"큎"#, r#"큎"#, r#"큎"#, r#"큎"#),
+        (r#"큏"#, r#"큏"#, r#"큏"#, r#"큏"#, r#"큏"#),
+        (r#"큐"#, r#"큐"#, r#"큐"#, r#"큐"#, r#"큐"#),
+        (r#"큑"#, r#"큑"#, r#"큑"#, r#"큑"#, r#"큑"#),
+        (r#"큒"#, r#"큒"#, r#"큒"#, r#"큒"#, r#"큒"#),
+        (r#"큓"#, r#"큓"#, r#"큓"#, r#"큓"#, r#"큓"#),
+        (r#"큔"#, r#"큔"#, r#"큔"#, r#"큔"#, r#"큔"#),
+        (r#"큕"#, r#"큕"#, r#"큕"#, r#"큕"#, r#"큕"#),
+        (r#"큖"#, r#"큖"#, r#"큖"#, r#"큖"#, r#"큖"#),
+        (r#"큗"#, r#"큗"#, r#"큗"#, r#"큗"#, r#"큗"#),
+        (r#"큘"#, r#"큘"#, r#"큘"#, r#"큘"#, r#"큘"#),
+        (r#"큙"#, r#"큙"#, r#"큙"#, r#"큙"#, r#"큙"#),
+        (r#"큚"#, r#"큚"#, r#"큚"#, r#"큚"#, r#"큚"#),
+        (r#"큛"#, r#"큛"#, r#"큛"#, r#"큛"#, r#"큛"#),
+        (r#"큜"#, r#"큜"#, r#"큜"#, r#"큜"#, r#"큜"#),
+        (r#"큝"#, r#"큝"#, r#"큝"#, r#"큝"#, r#"큝"#),
+        (r#"큞"#, r#"큞"#, r#"큞"#, r#"큞"#, r#"큞"#),
+        (r#"큟"#, r#"큟"#, r#"큟"#, r#"큟"#, r#"큟"#),
+        (r#"큠"#, r#"큠"#, r#"큠"#, r#"큠"#, r#"큠"#),
+        (r#"큡"#, r#"큡"#, r#"큡"#, r#"큡"#, r#"큡"#),
+        (r#"큢"#, r#"큢"#, r#"큢"#, r#"큢"#, r#"큢"#),
+        (r#"큣"#, r#"큣"#, r#"큣"#, r#"큣"#, r#"큣"#),
+        (r#"큤"#, r#"큤"#, r#"큤"#, r#"큤"#, r#"큤"#),
+        (r#"큥"#, r#"큥"#, r#"큥"#, r#"큥"#, r#"큥"#),
+        (r#"큦"#, r#"큦"#, r#"큦"#, r#"큦"#, r#"큦"#),
+        (r#"큧"#, r#"큧"#, r#"큧"#, r#"큧"#, r#"큧"#),
+        (r#"큨"#, r#"큨"#, r#"큨"#, r#"큨"#, r#"큨"#),
+        (r#"큩"#, r#"큩"#, r#"큩"#, r#"큩"#, r#"큩"#),
+        (r#"큪"#, r#"큪"#, r#"큪"#, r#"큪"#, r#"큪"#),
+        (r#"큫"#, r#"큫"#, r#"큫"#, r#"큫"#, r#"큫"#),
+        (r#"크"#, r#"크"#, r#"크"#, r#"크"#, r#"크"#),
+        (r#"큭"#, r#"큭"#, r#"큭"#, r#"큭"#, r#"큭"#),
+        (r#"큮"#, r#"큮"#, r#"큮"#, r#"큮"#, r#"큮"#),
+        (r#"큯"#, r#"큯"#, r#"큯"#, r#"큯"#, r#"큯"#),
+        (r#"큰"#, r#"큰"#, r#"큰"#, r#"큰"#, r#"큰"#),
+        (r#"큱"#, r#"큱"#, r#"큱"#, r#"큱"#, r#"큱"#),
+        (r#"큲"#, r#"큲"#, r#"큲"#, r#"큲"#, r#"큲"#),
+        (r#"큳"#, r#"큳"#, r#"큳"#, r#"큳"#, r#"큳"#),
+        (r#"클"#, r#"클"#, r#"클"#, r#"클"#, r#"클"#),
+        (r#"큵"#, r#"큵"#, r#"큵"#, r#"큵"#, r#"큵"#),
+        (r#"큶"#, r#"큶"#, r#"큶"#, r#"큶"#, r#"큶"#),
+        (r#"큷"#, r#"큷"#, r#"큷"#, r#"큷"#, r#"큷"#),
+        (r#"큸"#, r#"큸"#, r#"큸"#, r#"큸"#, r#"큸"#),
+        (r#"큹"#, r#"큹"#, r#"큹"#, r#"큹"#, r#"큹"#),
+        (r#"큺"#, r#"큺"#, r#"큺"#, r#"큺"#, r#"큺"#),
+        (r#"큻"#, r#"큻"#, r#"큻"#, r#"큻"#, r#"큻"#),
+        (r#"큼"#, r#"큼"#, r#"큼"#, r#"큼"#, r#"큼"#),
+        (r#"큽"#, r#"큽"#, r#"큽"#, r#"큽"#, r#"큽"#),
+        (r#"큾"#, r#"큾"#, r#"큾"#, r#"큾"#, r#"큾"#),
+        (r#"큿"#, r#"큿"#, r#"큿"#, r#"큿"#, r#"큿"#),
+        (r#"킀"#, r#"킀"#, r#"킀"#, r#"킀"#, r#"킀"#),
+        (r#"킁"#, r#"킁"#, r#"킁"#, r#"킁"#, r#"킁"#),
+        (r#"킂"#, r#"킂"#, r#"킂"#, r#"킂"#, r#"킂"#),
+        (r#"킃"#, r#"킃"#, r#"킃"#, r#"킃"#, r#"킃"#),
+        (r#"킄"#, r#"킄"#, r#"킄"#, r#"킄"#, r#"킄"#),
+        (r#"킅"#, r#"킅"#, r#"킅"#, r#"킅"#, r#"킅"#),
+        (r#"킆"#, r#"킆"#, r#"킆"#, r#"킆"#, r#"킆"#),
+        (r#"킇"#, r#"킇"#, r#"킇"#, r#"킇"#, r#"킇"#),
+        (r#"킈"#, r#"킈"#, r#"킈"#, r#"킈"#, r#"킈"#),
+        (r#"킉"#, r#"킉"#, r#"킉"#, r#"킉"#, r#"킉"#),
+        (r#"킊"#, r#"킊"#, r#"킊"#, r#"킊"#, r#"킊"#),
+        (r#"킋"#, r#"킋"#, r#"킋"#, r#"킋"#, r#"킋"#),
+        (r#"킌"#, r#"킌"#, r#"킌"#, r#"킌"#, r#"킌"#),
+        (r#"킍"#, r#"킍"#, r#"킍"#, r#"킍"#, r#"킍"#),
+        (r#"킎"#, r#"킎"#, r#"킎"#, r#"킎"#, r#"킎"#),
+        (r#"킏"#, r#"킏"#, r#"킏"#, r#"킏"#, r#"킏"#),
+        (r#"킐"#, r#"킐"#, r#"킐"#, r#"킐"#, r#"킐"#),
+        (r#"킑"#, r#"킑"#, r#"킑"#, r#"킑"#, r#"킑"#),
+        (r#"킒"#, r#"킒"#, r#"킒"#, r#"킒"#, r#"킒"#),
+        (r#"킓"#, r#"킓"#, r#"킓"#, r#"킓"#, r#"킓"#),
+        (r#"킔"#, r#"킔"#, r#"킔"#, r#"킔"#, r#"킔"#),
+        (r#"킕"#, r#"킕"#, r#"킕"#, r#"킕"#, r#"킕"#),
+        (r#"킖"#, r#"킖"#, r#"킖"#, r#"킖"#, r#"킖"#),
+        (r#"킗"#, r#"킗"#, r#"킗"#, r#"킗"#, r#"킗"#),
+        (r#"킘"#, r#"킘"#, r#"킘"#, r#"킘"#, r#"킘"#),
+        (r#"킙"#, r#"킙"#, r#"킙"#, r#"킙"#, r#"킙"#),
+        (r#"킚"#, r#"킚"#, r#"킚"#, r#"킚"#, r#"킚"#),
+        (r#"킛"#, r#"킛"#, r#"킛"#, r#"킛"#, r#"킛"#),
+        (r#"킜"#, r#"킜"#, r#"킜"#, r#"킜"#, r#"킜"#),
+        (r#"킝"#, r#"킝"#, r#"킝"#, r#"킝"#, r#"킝"#),
+        (r#"킞"#, r#"킞"#, r#"킞"#, r#"킞"#, r#"킞"#),
+        (r#"킟"#, r#"킟"#, r#"킟"#, r#"킟"#, r#"킟"#),
+        (r#"킠"#, r#"킠"#, r#"킠"#, r#"킠"#, r#"킠"#),
+        (r#"킡"#, r#"킡"#, r#"킡"#, r#"킡"#, r#"킡"#),
+        (r#"킢"#, r#"킢"#, r#"킢"#, r#"킢"#, r#"킢"#),
+        (r#"킣"#, r#"킣"#, r#"킣"#, r#"킣"#, r#"킣"#),
+        (r#"키"#, r#"키"#, r#"키"#, r#"키"#, r#"키"#),
+        (r#"킥"#, r#"킥"#, r#"킥"#, r#"킥"#, r#"킥"#),
+        (r#"킦"#, r#"킦"#, r#"킦"#, r#"킦"#, r#"킦"#),
+        (r#"킧"#, r#"킧"#, r#"킧"#, r#"킧"#, r#"킧"#),
+        (r#"킨"#, r#"킨"#, r#"킨"#, r#"킨"#, r#"킨"#),
+        (r#"킩"#, r#"킩"#, r#"킩"#, r#"킩"#, r#"킩"#),
+        (r#"킪"#, r#"킪"#, r#"킪"#, r#"킪"#, r#"킪"#),
+        (r#"킫"#, r#"킫"#, r#"킫"#, r#"킫"#, r#"킫"#),
+        (r#"킬"#, r#"킬"#, r#"킬"#, r#"킬"#, r#"킬"#),
+        (r#"킭"#, r#"킭"#, r#"킭"#, r#"킭"#, r#"킭"#),
+        (r#"킮"#, r#"킮"#, r#"킮"#, r#"킮"#, r#"킮"#),
+        (r#"킯"#, r#"킯"#, r#"킯"#, r#"킯"#, r#"킯"#),
+        (r#"킰"#, r#"킰"#, r#"킰"#, r#"킰"#, r#"킰"#),
+        (r#"킱"#, r#"킱"#, r#"킱"#, r#"킱"#, r#"킱"#),
+        (r#"킲"#, r#"킲"#, r#"킲"#, r#"킲"#, r#"킲"#),
+        (r#"킳"#, r#"킳"#, r#"킳"#, r#"킳"#, r#"킳"#),
+        (r#"킴"#, r#"킴"#, r#"킴"#, r#"킴"#, r#"킴"#),
+        (r#"킵"#, r#"킵"#, r#"킵"#, r#"킵"#, r#"킵"#),
+        (r#"킶"#, r#"킶"#, r#"킶"#, r#"킶"#, r#"킶"#),
+        (r#"킷"#, r#"킷"#, r#"킷"#, r#"킷"#, r#"킷"#),
+        (r#"킸"#, r#"킸"#, r#"킸"#, r#"킸"#, r#"킸"#),
+        (r#"킹"#, r#"킹"#, r#"킹"#, r#"킹"#, r#"킹"#),
+        (r#"킺"#, r#"킺"#, r#"킺"#, r#"킺"#, r#"킺"#),
+        (r#"킻"#, r#"킻"#, r#"킻"#, r#"킻"#, r#"킻"#),
+        (r#"킼"#, r#"킼"#, r#"킼"#, r#"킼"#, r#"킼"#),
+        (r#"킽"#, r#"킽"#, r#"킽"#, r#"킽"#, r#"킽"#),
+        (r#"킾"#, r#"킾"#, r#"킾"#, r#"킾"#, r#"킾"#),
+        (r#"킿"#, r#"킿"#, r#"킿"#, r#"킿"#, r#"킿"#),
+        (r#"타"#, r#"타"#, r#"타"#, r#"타"#, r#"타"#),
+        (r#"탁"#, r#"탁"#, r#"탁"#, r#"탁"#, r#"탁"#),
+        (r#"탂"#, r#"탂"#, r#"탂"#, r#"탂"#, r#"탂"#),
+        (r#"탃"#, r#"탃"#, r#"탃"#, r#"탃"#, r#"탃"#),
+        (r#"탄"#, r#"탄"#, r#"탄"#, r#"탄"#, r#"탄"#),
+        (r#"탅"#, r#"탅"#, r#"탅"#, r#"탅"#, r#"탅"#),
+        (r#"탆"#, r#"탆"#, r#"탆"#, r#"탆"#, r#"탆"#),
+        (r#"탇"#, r#"탇"#, r#"탇"#, r#"탇"#, r#"탇"#),
+        (r#"탈"#, r#"탈"#, r#"탈"#, r#"탈"#, r#"탈"#),
+        (r#"탉"#, r#"탉"#, r#"탉"#, r#"탉"#, r#"탉"#),
+        (r#"탊"#, r#"탊"#, r#"탊"#, r#"탊"#, r#"탊"#),
+        (r#"탋"#, r#"탋"#, r#"탋"#, r#"탋"#, r#"탋"#),
+        (r#"탌"#, r#"탌"#, r#"탌"#, r#"탌"#, r#"탌"#),
+        (r#"탍"#, r#"탍"#, r#"탍"#, r#"탍"#, r#"탍"#),
+        (r#"탎"#, r#"탎"#, r#"탎"#, r#"탎"#, r#"탎"#),
+        (r#"탏"#, r#"탏"#, r#"탏"#, r#"탏"#, r#"탏"#),
+        (r#"탐"#, r#"탐"#, r#"탐"#, r#"탐"#, r#"탐"#),
+        (r#"탑"#, r#"탑"#, r#"탑"#, r#"탑"#, r#"탑"#),
+        (r#"탒"#, r#"탒"#, r#"탒"#, r#"탒"#, r#"탒"#),
+        (r#"탓"#, r#"탓"#, r#"탓"#, r#"탓"#, r#"탓"#),
+        (r#"탔"#, r#"탔"#, r#"탔"#, r#"탔"#, r#"탔"#),
+        (r#"탕"#, r#"탕"#, r#"탕"#, r#"탕"#, r#"탕"#),
+        (r#"탖"#, r#"탖"#, r#"탖"#, r#"탖"#, r#"탖"#),
+        (r#"탗"#, r#"탗"#, r#"탗"#, r#"탗"#, r#"탗"#),
+        (r#"탘"#, r#"탘"#, r#"탘"#, r#"탘"#, r#"탘"#),
+        (r#"탙"#, r#"탙"#, r#"탙"#, r#"탙"#, r#"탙"#),
+        (r#"탚"#, r#"탚"#, r#"탚"#, r#"탚"#, r#"탚"#),
+        (r#"탛"#, r#"탛"#, r#"탛"#, r#"탛"#, r#"탛"#),
+        (r#"태"#, r#"태"#, r#"태"#, r#"태"#, r#"태"#),
+        (r#"택"#, r#"택"#, r#"택"#, r#"택"#, r#"택"#),
+        (r#"탞"#, r#"탞"#, r#"탞"#, r#"탞"#, r#"탞"#),
+        (r#"탟"#, r#"탟"#, r#"탟"#, r#"탟"#, r#"탟"#),
+        (r#"탠"#, r#"탠"#, r#"탠"#, r#"탠"#, r#"탠"#),
+        (r#"탡"#, r#"탡"#, r#"탡"#, r#"탡"#, r#"탡"#),
+        (r#"탢"#, r#"탢"#, r#"탢"#, r#"탢"#, r#"탢"#),
+        (r#"탣"#, r#"탣"#, r#"탣"#, r#"탣"#, r#"탣"#),
+        (r#"탤"#, r#"탤"#, r#"탤"#, r#"탤"#, r#"탤"#),
+        (r#"탥"#, r#"탥"#, r#"탥"#, r#"탥"#, r#"탥"#),
+        (r#"탦"#, r#"탦"#, r#"탦"#, r#"탦"#, r#"탦"#),
+        (r#"탧"#, r#"탧"#, r#"탧"#, r#"탧"#, r#"탧"#),
+        (r#"탨"#, r#"탨"#, r#"탨"#, r#"탨"#, r#"탨"#),
+        (r#"탩"#, r#"탩"#, r#"탩"#, r#"탩"#, r#"탩"#),
+        (r#"탪"#, r#"탪"#, r#"탪"#, r#"탪"#, r#"탪"#),
+        (r#"탫"#, r#"탫"#, r#"탫"#, r#"탫"#, r#"탫"#),
+        (r#"탬"#, r#"탬"#, r#"탬"#, r#"탬"#, r#"탬"#),
+        (r#"탭"#, r#"탭"#, r#"탭"#, r#"탭"#, r#"탭"#),
+        (r#"탮"#, r#"탮"#, r#"탮"#, r#"탮"#, r#"탮"#),
+        (r#"탯"#, r#"탯"#, r#"탯"#, r#"탯"#, r#"탯"#),
+        (r#"탰"#, r#"탰"#, r#"탰"#, r#"탰"#, r#"탰"#),
+        (r#"탱"#, r#"탱"#, r#"탱"#, r#"탱"#, r#"탱"#),
+        (r#"탲"#, r#"탲"#, r#"탲"#, r#"탲"#, r#"탲"#),
+        (r#"탳"#, r#"탳"#, r#"탳"#, r#"탳"#, r#"탳"#),
+        (r#"탴"#, r#"탴"#, r#"탴"#, r#"탴"#, r#"탴"#),
+        (r#"탵"#, r#"탵"#, r#"탵"#, r#"탵"#, r#"탵"#),
+        (r#"탶"#, r#"탶"#, r#"탶"#, r#"탶"#, r#"탶"#),
+        (r#"탷"#, r#"탷"#, r#"탷"#, r#"탷"#, r#"탷"#),
+        (r#"탸"#, r#"탸"#, r#"탸"#, r#"탸"#, r#"탸"#),
+        (r#"탹"#, r#"탹"#, r#"탹"#, r#"탹"#, r#"탹"#),
+        (r#"탺"#, r#"탺"#, r#"탺"#, r#"탺"#, r#"탺"#),
+        (r#"탻"#, r#"탻"#, r#"탻"#, r#"탻"#, r#"탻"#),
+        (r#"탼"#, r#"탼"#, r#"탼"#, r#"탼"#, r#"탼"#),
+        (r#"탽"#, r#"탽"#, r#"탽"#, r#"탽"#, r#"탽"#),
+        (r#"탾"#, r#"탾"#, r#"탾"#, r#"탾"#, r#"탾"#),
+        (r#"탿"#, r#"탿"#, r#"탿"#, r#"탿"#, r#"탿"#),
+        (r#"턀"#, r#"턀"#, r#"턀"#, r#"턀"#, r#"턀"#),
+        (r#"턁"#, r#"턁"#, r#"턁"#, r#"턁"#, r#"턁"#),
+        (r#"턂"#, r#"턂"#, r#"턂"#, r#"턂"#, r#"턂"#),
+        (r#"턃"#, r#"턃"#, r#"턃"#, r#"턃"#, r#"턃"#),
+        (r#"턄"#, r#"턄"#, r#"턄"#, r#"턄"#, r#"턄"#),
+        (r#"턅"#, r#"턅"#, r#"턅"#, r#"턅"#, r#"턅"#),
+        (r#"턆"#, r#"턆"#, r#"턆"#, r#"턆"#, r#"턆"#),
+        (r#"턇"#, r#"턇"#, r#"턇"#, r#"턇"#, r#"턇"#),
+        (r#"턈"#, r#"턈"#, r#"턈"#, r#"턈"#, r#"턈"#),
+        (r#"턉"#, r#"턉"#, r#"턉"#, r#"턉"#, r#"턉"#),
+        (r#"턊"#, r#"턊"#, r#"턊"#, r#"턊"#, r#"턊"#),
+        (r#"턋"#, r#"턋"#, r#"턋"#, r#"턋"#, r#"턋"#),
+        (r#"턌"#, r#"턌"#, r#"턌"#, r#"턌"#, r#"턌"#),
+        (r#"턍"#, r#"턍"#, r#"턍"#, r#"턍"#, r#"턍"#),
+        (r#"턎"#, r#"턎"#, r#"턎"#, r#"턎"#, r#"턎"#),
+        (r#"턏"#, r#"턏"#, r#"턏"#, r#"턏"#, r#"턏"#),
+        (r#"턐"#, r#"턐"#, r#"턐"#, r#"턐"#, r#"턐"#),
+        (r#"턑"#, r#"턑"#, r#"턑"#, r#"턑"#, r#"턑"#),
+        (r#"턒"#, r#"턒"#, r#"턒"#, r#"턒"#, r#"턒"#),
+        (r#"턓"#, r#"턓"#, r#"턓"#, r#"턓"#, r#"턓"#),
+        (r#"턔"#, r#"턔"#, r#"턔"#, r#"턔"#, r#"턔"#),
+        (r#"턕"#, r#"턕"#, r#"턕"#, r#"턕"#, r#"턕"#),
+        (r#"턖"#, r#"턖"#, r#"턖"#, r#"턖"#, r#"턖"#),
+        (r#"턗"#, r#"턗"#, r#"턗"#, r#"턗"#, r#"턗"#),
+        (r#"턘"#, r#"턘"#, r#"턘"#, r#"턘"#, r#"턘"#),
+        (r#"턙"#, r#"턙"#, r#"턙"#, r#"턙"#, r#"턙"#),
+        (r#"턚"#, r#"턚"#, r#"턚"#, r#"턚"#, r#"턚"#),
+        (r#"턛"#, r#"턛"#, r#"턛"#, r#"턛"#, r#"턛"#),
+        (r#"턜"#, r#"턜"#, r#"턜"#, r#"턜"#, r#"턜"#),
+        (r#"턝"#, r#"턝"#, r#"턝"#, r#"턝"#, r#"턝"#),
+        (r#"턞"#, r#"턞"#, r#"턞"#, r#"턞"#, r#"턞"#),
+        (r#"턟"#, r#"턟"#, r#"턟"#, r#"턟"#, r#"턟"#),
+        (r#"턠"#, r#"턠"#, r#"턠"#, r#"턠"#, r#"턠"#),
+        (r#"턡"#, r#"턡"#, r#"턡"#, r#"턡"#, r#"턡"#),
+        (r#"턢"#, r#"턢"#, r#"턢"#, r#"턢"#, r#"턢"#),
+        (r#"턣"#, r#"턣"#, r#"턣"#, r#"턣"#, r#"턣"#),
+        (r#"턤"#, r#"턤"#, r#"턤"#, r#"턤"#, r#"턤"#),
+        (r#"턥"#, r#"턥"#, r#"턥"#, r#"턥"#, r#"턥"#),
+        (r#"턦"#, r#"턦"#, r#"턦"#, r#"턦"#, r#"턦"#),
+        (r#"턧"#, r#"턧"#, r#"턧"#, r#"턧"#, r#"턧"#),
+        (r#"턨"#, r#"턨"#, r#"턨"#, r#"턨"#, r#"턨"#),
+        (r#"턩"#, r#"턩"#, r#"턩"#, r#"턩"#, r#"턩"#),
+        (r#"턪"#, r#"턪"#, r#"턪"#, r#"턪"#, r#"턪"#),
+        (r#"턫"#, r#"턫"#, r#"턫"#, r#"턫"#, r#"턫"#),
+        (r#"턬"#, r#"턬"#, r#"턬"#, r#"턬"#, r#"턬"#),
+        (r#"턭"#, r#"턭"#, r#"턭"#, r#"턭"#, r#"턭"#),
+        (r#"턮"#, r#"턮"#, r#"턮"#, r#"턮"#, r#"턮"#),
+        (r#"턯"#, r#"턯"#, r#"턯"#, r#"턯"#, r#"턯"#),
+        (r#"터"#, r#"터"#, r#"터"#, r#"터"#, r#"터"#),
+        (r#"턱"#, r#"턱"#, r#"턱"#, r#"턱"#, r#"턱"#),
+        (r#"턲"#, r#"턲"#, r#"턲"#, r#"턲"#, r#"턲"#),
+        (r#"턳"#, r#"턳"#, r#"턳"#, r#"턳"#, r#"턳"#),
+        (r#"턴"#, r#"턴"#, r#"턴"#, r#"턴"#, r#"턴"#),
+        (r#"턵"#, r#"턵"#, r#"턵"#, r#"턵"#, r#"턵"#),
+        (r#"턶"#, r#"턶"#, r#"턶"#, r#"턶"#, r#"턶"#),
+        (r#"턷"#, r#"턷"#, r#"턷"#, r#"턷"#, r#"턷"#),
+        (r#"털"#, r#"털"#, r#"털"#, r#"털"#, r#"털"#),
+        (r#"턹"#, r#"턹"#, r#"턹"#, r#"턹"#, r#"턹"#),
+        (r#"턺"#, r#"턺"#, r#"턺"#, r#"턺"#, r#"턺"#),
+        (r#"턻"#, r#"턻"#, r#"턻"#, r#"턻"#, r#"턻"#),
+        (r#"턼"#, r#"턼"#, r#"턼"#, r#"턼"#, r#"턼"#),
+        (r#"턽"#, r#"턽"#, r#"턽"#, r#"턽"#, r#"턽"#),
+        (r#"턾"#, r#"턾"#, r#"턾"#, r#"턾"#, r#"턾"#),
+        (r#"턿"#, r#"턿"#, r#"턿"#, r#"턿"#, r#"턿"#),
+        (r#"텀"#, r#"텀"#, r#"텀"#, r#"텀"#, r#"텀"#),
+        (r#"텁"#, r#"텁"#, r#"텁"#, r#"텁"#, r#"텁"#),
+        (r#"텂"#, r#"텂"#, r#"텂"#, r#"텂"#, r#"텂"#),
+        (r#"텃"#, r#"텃"#, r#"텃"#, r#"텃"#, r#"텃"#),
+        (r#"텄"#, r#"텄"#, r#"텄"#, r#"텄"#, r#"텄"#),
+        (r#"텅"#, r#"텅"#, r#"텅"#, r#"텅"#, r#"텅"#),
+        (r#"텆"#, r#"텆"#, r#"텆"#, r#"텆"#, r#"텆"#),
+        (r#"텇"#, r#"텇"#, r#"텇"#, r#"텇"#, r#"텇"#),
+        (r#"텈"#, r#"텈"#, r#"텈"#, r#"텈"#, r#"텈"#),
+        (r#"텉"#, r#"텉"#, r#"텉"#, r#"텉"#, r#"텉"#),
+        (r#"텊"#, r#"텊"#, r#"텊"#, r#"텊"#, r#"텊"#),
+        (r#"텋"#, r#"텋"#, r#"텋"#, r#"텋"#, r#"텋"#),
+        (r#"테"#, r#"테"#, r#"테"#, r#"테"#, r#"테"#),
+        (r#"텍"#, r#"텍"#, r#"텍"#, r#"텍"#, r#"텍"#),
+        (r#"텎"#, r#"텎"#, r#"텎"#, r#"텎"#, r#"텎"#),
+        (r#"텏"#, r#"텏"#, r#"텏"#, r#"텏"#, r#"텏"#),
+        (r#"텐"#, r#"텐"#, r#"텐"#, r#"텐"#, r#"텐"#),
+        (r#"텑"#, r#"텑"#, r#"텑"#, r#"텑"#, r#"텑"#),
+        (r#"텒"#, r#"텒"#, r#"텒"#, r#"텒"#, r#"텒"#),
+        (r#"텓"#, r#"텓"#, r#"텓"#, r#"텓"#, r#"텓"#),
+        (r#"텔"#, r#"텔"#, r#"텔"#, r#"텔"#, r#"텔"#),
+        (r#"텕"#, r#"텕"#, r#"텕"#, r#"텕"#, r#"텕"#),
+        (r#"텖"#, r#"텖"#, r#"텖"#, r#"텖"#, r#"텖"#),
+        (r#"텗"#, r#"텗"#, r#"텗"#, r#"텗"#, r#"텗"#),
+        (r#"텘"#, r#"텘"#, r#"텘"#, r#"텘"#, r#"텘"#),
+        (r#"텙"#, r#"텙"#, r#"텙"#, r#"텙"#, r#"텙"#),
+        (r#"텚"#, r#"텚"#, r#"텚"#, r#"텚"#, r#"텚"#),
+        (r#"텛"#, r#"텛"#, r#"텛"#, r#"텛"#, r#"텛"#),
+        (r#"템"#, r#"템"#, r#"템"#, r#"템"#, r#"템"#),
+        (r#"텝"#, r#"텝"#, r#"텝"#, r#"텝"#, r#"텝"#),
+        (r#"텞"#, r#"텞"#, r#"텞"#, r#"텞"#, r#"텞"#),
+        (r#"텟"#, r#"텟"#, r#"텟"#, r#"텟"#, r#"텟"#),
+        (r#"텠"#, r#"텠"#, r#"텠"#, r#"텠"#, r#"텠"#),
+        (r#"텡"#, r#"텡"#, r#"텡"#, r#"텡"#, r#"텡"#),
+        (r#"텢"#, r#"텢"#, r#"텢"#, r#"텢"#, r#"텢"#),
+        (r#"텣"#, r#"텣"#, r#"텣"#, r#"텣"#, r#"텣"#),
+        (r#"텤"#, r#"텤"#, r#"텤"#, r#"텤"#, r#"텤"#),
+        (r#"텥"#, r#"텥"#, r#"텥"#, r#"텥"#, r#"텥"#),
+        (r#"텦"#, r#"텦"#, r#"텦"#, r#"텦"#, r#"텦"#),
+        (r#"텧"#, r#"텧"#, r#"텧"#, r#"텧"#, r#"텧"#),
+        (r#"텨"#, r#"텨"#, r#"텨"#, r#"텨"#, r#"텨"#),
+        (r#"텩"#, r#"텩"#, r#"텩"#, r#"텩"#, r#"텩"#),
+        (r#"텪"#, r#"텪"#, r#"텪"#, r#"텪"#, r#"텪"#),
+        (r#"텫"#, r#"텫"#, r#"텫"#, r#"텫"#, r#"텫"#),
+        (r#"텬"#, r#"텬"#, r#"텬"#, r#"텬"#, r#"텬"#),
+        (r#"텭"#, r#"텭"#, r#"텭"#, r#"텭"#, r#"텭"#),
+        (r#"텮"#, r#"텮"#, r#"텮"#, r#"텮"#, r#"텮"#),
+        (r#"텯"#, r#"텯"#, r#"텯"#, r#"텯"#, r#"텯"#),
+        (r#"텰"#, r#"텰"#, r#"텰"#, r#"텰"#, r#"텰"#),
+        (r#"텱"#, r#"텱"#, r#"텱"#, r#"텱"#, r#"텱"#),
+        (r#"텲"#, r#"텲"#, r#"텲"#, r#"텲"#, r#"텲"#),
+        (r#"텳"#, r#"텳"#, r#"텳"#, r#"텳"#, r#"텳"#),
+        (r#"텴"#, r#"텴"#, r#"텴"#, r#"텴"#, r#"텴"#),
+        (r#"텵"#, r#"텵"#, r#"텵"#, r#"텵"#, r#"텵"#),
+        (r#"텶"#, r#"텶"#, r#"텶"#, r#"텶"#, r#"텶"#),
+        (r#"텷"#, r#"텷"#, r#"텷"#, r#"텷"#, r#"텷"#),
+        (r#"텸"#, r#"텸"#, r#"텸"#, r#"텸"#, r#"텸"#),
+        (r#"텹"#, r#"텹"#, r#"텹"#, r#"텹"#, r#"텹"#),
+        (r#"텺"#, r#"텺"#, r#"텺"#, r#"텺"#, r#"텺"#),
+        (r#"텻"#, r#"텻"#, r#"텻"#, r#"텻"#, r#"텻"#),
+        (r#"텼"#, r#"텼"#, r#"텼"#, r#"텼"#, r#"텼"#),
+        (r#"텽"#, r#"텽"#, r#"텽"#, r#"텽"#, r#"텽"#),
+        (r#"텾"#, r#"텾"#, r#"텾"#, r#"텾"#, r#"텾"#),
+        (r#"텿"#, r#"텿"#, r#"텿"#, r#"텿"#, r#"텿"#),
+        (r#"톀"#, r#"톀"#, r#"톀"#, r#"톀"#, r#"톀"#),
+        (r#"톁"#, r#"톁"#, r#"톁"#, r#"톁"#, r#"톁"#),
+        (r#"톂"#, r#"톂"#, r#"톂"#, r#"톂"#, r#"톂"#),
+        (r#"톃"#, r#"톃"#, r#"톃"#, r#"톃"#, r#"톃"#),
+        (r#"톄"#, r#"톄"#, r#"톄"#, r#"톄"#, r#"톄"#),
+        (r#"톅"#, r#"톅"#, r#"톅"#, r#"톅"#, r#"톅"#),
+        (r#"톆"#, r#"톆"#, r#"톆"#, r#"톆"#, r#"톆"#),
+        (r#"톇"#, r#"톇"#, r#"톇"#, r#"톇"#, r#"톇"#),
+        (r#"톈"#, r#"톈"#, r#"톈"#, r#"톈"#, r#"톈"#),
+        (r#"톉"#, r#"톉"#, r#"톉"#, r#"톉"#, r#"톉"#),
+        (r#"톊"#, r#"톊"#, r#"톊"#, r#"톊"#, r#"톊"#),
+        (r#"톋"#, r#"톋"#, r#"톋"#, r#"톋"#, r#"톋"#),
+        (r#"톌"#, r#"톌"#, r#"톌"#, r#"톌"#, r#"톌"#),
+        (r#"톍"#, r#"톍"#, r#"톍"#, r#"톍"#, r#"톍"#),
+        (r#"톎"#, r#"톎"#, r#"톎"#, r#"톎"#, r#"톎"#),
+        (r#"톏"#, r#"톏"#, r#"톏"#, r#"톏"#, r#"톏"#),
+        (r#"톐"#, r#"톐"#, r#"톐"#, r#"톐"#, r#"톐"#),
+        (r#"톑"#, r#"톑"#, r#"톑"#, r#"톑"#, r#"톑"#),
+        (r#"톒"#, r#"톒"#, r#"톒"#, r#"톒"#, r#"톒"#),
+        (r#"톓"#, r#"톓"#, r#"톓"#, r#"톓"#, r#"톓"#),
+        (r#"톔"#, r#"톔"#, r#"톔"#, r#"톔"#, r#"톔"#),
+        (r#"톕"#, r#"톕"#, r#"톕"#, r#"톕"#, r#"톕"#),
+        (r#"톖"#, r#"톖"#, r#"톖"#, r#"톖"#, r#"톖"#),
+        (r#"톗"#, r#"톗"#, r#"톗"#, r#"톗"#, r#"톗"#),
+        (r#"톘"#, r#"톘"#, r#"톘"#, r#"톘"#, r#"톘"#),
+        (r#"톙"#, r#"톙"#, r#"톙"#, r#"톙"#, r#"톙"#),
+        (r#"톚"#, r#"톚"#, r#"톚"#, r#"톚"#, r#"톚"#),
+        (r#"톛"#, r#"톛"#, r#"톛"#, r#"톛"#, r#"톛"#),
+        (r#"톜"#, r#"톜"#, r#"톜"#, r#"톜"#, r#"톜"#),
+        (r#"톝"#, r#"톝"#, r#"톝"#, r#"톝"#, r#"톝"#),
+        (r#"톞"#, r#"톞"#, r#"톞"#, r#"톞"#, r#"톞"#),
+        (r#"톟"#, r#"톟"#, r#"톟"#, r#"톟"#, r#"톟"#),
+        (r#"토"#, r#"토"#, r#"토"#, r#"토"#, r#"토"#),
+        (r#"톡"#, r#"톡"#, r#"톡"#, r#"톡"#, r#"톡"#),
+        (r#"톢"#, r#"톢"#, r#"톢"#, r#"톢"#, r#"톢"#),
+        (r#"톣"#, r#"톣"#, r#"톣"#, r#"톣"#, r#"톣"#),
+        (r#"톤"#, r#"톤"#, r#"톤"#, r#"톤"#, r#"톤"#),
+        (r#"톥"#, r#"톥"#, r#"톥"#, r#"톥"#, r#"톥"#),
+        (r#"톦"#, r#"톦"#, r#"톦"#, r#"톦"#, r#"톦"#),
+        (r#"톧"#, r#"톧"#, r#"톧"#, r#"톧"#, r#"톧"#),
+        (r#"톨"#, r#"톨"#, r#"톨"#, r#"톨"#, r#"톨"#),
+        (r#"톩"#, r#"톩"#, r#"톩"#, r#"톩"#, r#"톩"#),
+        (r#"톪"#, r#"톪"#, r#"톪"#, r#"톪"#, r#"톪"#),
+        (r#"톫"#, r#"톫"#, r#"톫"#, r#"톫"#, r#"톫"#),
+        (r#"톬"#, r#"톬"#, r#"톬"#, r#"톬"#, r#"톬"#),
+        (r#"톭"#, r#"톭"#, r#"톭"#, r#"톭"#, r#"톭"#),
+        (r#"톮"#, r#"톮"#, r#"톮"#, r#"톮"#, r#"톮"#),
+        (r#"톯"#, r#"톯"#, r#"톯"#, r#"톯"#, r#"톯"#),
+        (r#"톰"#, r#"톰"#, r#"톰"#, r#"톰"#, r#"톰"#),
+        (r#"톱"#, r#"톱"#, r#"톱"#, r#"톱"#, r#"톱"#),
+        (r#"톲"#, r#"톲"#, r#"톲"#, r#"톲"#, r#"톲"#),
+        (r#"톳"#, r#"톳"#, r#"톳"#, r#"톳"#, r#"톳"#),
+        (r#"톴"#, r#"톴"#, r#"톴"#, r#"톴"#, r#"톴"#),
+        (r#"통"#, r#"통"#, r#"통"#, r#"통"#, r#"통"#),
+        (r#"톶"#, r#"톶"#, r#"톶"#, r#"톶"#, r#"톶"#),
+        (r#"톷"#, r#"톷"#, r#"톷"#, r#"톷"#, r#"톷"#),
+        (r#"톸"#, r#"톸"#, r#"톸"#, r#"톸"#, r#"톸"#),
+        (r#"톹"#, r#"톹"#, r#"톹"#, r#"톹"#, r#"톹"#),
+        (r#"톺"#, r#"톺"#, r#"톺"#, r#"톺"#, r#"톺"#),
+        (r#"톻"#, r#"톻"#, r#"톻"#, r#"톻"#, r#"톻"#),
+        (r#"톼"#, r#"톼"#, r#"톼"#, r#"톼"#, r#"톼"#),
+        (r#"톽"#, r#"톽"#, r#"톽"#, r#"톽"#, r#"톽"#),
+        (r#"톾"#, r#"톾"#, r#"톾"#, r#"톾"#, r#"톾"#),
+        (r#"톿"#, r#"톿"#, r#"톿"#, r#"톿"#, r#"톿"#),
+        (r#"퇀"#, r#"퇀"#, r#"퇀"#, r#"퇀"#, r#"퇀"#),
+        (r#"퇁"#, r#"퇁"#, r#"퇁"#, r#"퇁"#, r#"퇁"#),
+        (r#"퇂"#, r#"퇂"#, r#"퇂"#, r#"퇂"#, r#"퇂"#),
+        (r#"퇃"#, r#"퇃"#, r#"퇃"#, r#"퇃"#, r#"퇃"#),
+        (r#"퇄"#, r#"퇄"#, r#"퇄"#, r#"퇄"#, r#"퇄"#),
+        (r#"퇅"#, r#"퇅"#, r#"퇅"#, r#"퇅"#, r#"퇅"#),
+        (r#"퇆"#, r#"퇆"#, r#"퇆"#, r#"퇆"#, r#"퇆"#),
+        (r#"퇇"#, r#"퇇"#, r#"퇇"#, r#"퇇"#, r#"퇇"#),
+        (r#"퇈"#, r#"퇈"#, r#"퇈"#, r#"퇈"#, r#"퇈"#),
+        (r#"퇉"#, r#"퇉"#, r#"퇉"#, r#"퇉"#, r#"퇉"#),
+        (r#"퇊"#, r#"퇊"#, r#"퇊"#, r#"퇊"#, r#"퇊"#),
+        (r#"퇋"#, r#"퇋"#, r#"퇋"#, r#"퇋"#, r#"퇋"#),
+        (r#"퇌"#, r#"퇌"#, r#"퇌"#, r#"퇌"#, r#"퇌"#),
+        (r#"퇍"#, r#"퇍"#, r#"퇍"#, r#"퇍"#, r#"퇍"#),
+        (r#"퇎"#, r#"퇎"#, r#"퇎"#, r#"퇎"#, r#"퇎"#),
+        (r#"퇏"#, r#"퇏"#, r#"퇏"#, r#"퇏"#, r#"퇏"#),
+        (r#"퇐"#, r#"퇐"#, r#"퇐"#, r#"퇐"#, r#"퇐"#),
+        (r#"퇑"#, r#"퇑"#, r#"퇑"#, r#"퇑"#, r#"퇑"#),
+        (r#"퇒"#, r#"퇒"#, r#"퇒"#, r#"퇒"#, r#"퇒"#),
+        (r#"퇓"#, r#"퇓"#, r#"퇓"#, r#"퇓"#, r#"퇓"#),
+        (r#"퇔"#, r#"퇔"#, r#"퇔"#, r#"퇔"#, r#"퇔"#),
+        (r#"퇕"#, r#"퇕"#, r#"퇕"#, r#"퇕"#, r#"퇕"#),
+        (r#"퇖"#, r#"퇖"#, r#"퇖"#, r#"퇖"#, r#"퇖"#),
+        (r#"퇗"#, r#"퇗"#, r#"퇗"#, r#"퇗"#, r#"퇗"#),
+        (r#"퇘"#, r#"퇘"#, r#"퇘"#, r#"퇘"#, r#"퇘"#),
+        (r#"퇙"#, r#"퇙"#, r#"퇙"#, r#"퇙"#, r#"퇙"#),
+        (r#"퇚"#, r#"퇚"#, r#"퇚"#, r#"퇚"#, r#"퇚"#),
+        (r#"퇛"#, r#"퇛"#, r#"퇛"#, r#"퇛"#, r#"퇛"#),
+        (r#"퇜"#, r#"퇜"#, r#"퇜"#, r#"퇜"#, r#"퇜"#),
+        (r#"퇝"#, r#"퇝"#, r#"퇝"#, r#"퇝"#, r#"퇝"#),
+        (r#"퇞"#, r#"퇞"#, r#"퇞"#, r#"퇞"#, r#"퇞"#),
+        (r#"퇟"#, r#"퇟"#, r#"퇟"#, r#"퇟"#, r#"퇟"#),
+        (r#"퇠"#, r#"퇠"#, r#"퇠"#, r#"퇠"#, r#"퇠"#),
+        (r#"퇡"#, r#"퇡"#, r#"퇡"#, r#"퇡"#, r#"퇡"#),
+        (r#"퇢"#, r#"퇢"#, r#"퇢"#, r#"퇢"#, r#"퇢"#),
+        (r#"퇣"#, r#"퇣"#, r#"퇣"#, r#"퇣"#, r#"퇣"#),
+        (r#"퇤"#, r#"퇤"#, r#"퇤"#, r#"퇤"#, r#"퇤"#),
+        (r#"퇥"#, r#"퇥"#, r#"퇥"#, r#"퇥"#, r#"퇥"#),
+        (r#"퇦"#, r#"퇦"#, r#"퇦"#, r#"퇦"#, r#"퇦"#),
+        (r#"퇧"#, r#"퇧"#, r#"퇧"#, r#"퇧"#, r#"퇧"#),
+        (r#"퇨"#, r#"퇨"#, r#"퇨"#, r#"퇨"#, r#"퇨"#),
+        (r#"퇩"#, r#"퇩"#, r#"퇩"#, r#"퇩"#, r#"퇩"#),
+        (r#"퇪"#, r#"퇪"#, r#"퇪"#, r#"퇪"#, r#"퇪"#),
+        (r#"퇫"#, r#"퇫"#, r#"퇫"#, r#"퇫"#, r#"퇫"#),
+        (r#"퇬"#, r#"퇬"#, r#"퇬"#, r#"퇬"#, r#"퇬"#),
+        (r#"퇭"#, r#"퇭"#, r#"퇭"#, r#"퇭"#, r#"퇭"#),
+        (r#"퇮"#, r#"퇮"#, r#"퇮"#, r#"퇮"#, r#"퇮"#),
+        (r#"퇯"#, r#"퇯"#, r#"퇯"#, r#"퇯"#, r#"퇯"#),
+        (r#"퇰"#, r#"퇰"#, r#"퇰"#, r#"퇰"#, r#"퇰"#),
+        (r#"퇱"#, r#"퇱"#, r#"퇱"#, r#"퇱"#, r#"퇱"#),
+        (r#"퇲"#, r#"퇲"#, r#"퇲"#, r#"퇲"#, r#"퇲"#),
+        (r#"퇳"#, r#"퇳"#, r#"퇳"#, r#"퇳"#, r#"퇳"#),
+        (r#"퇴"#, r#"퇴"#, r#"퇴"#, r#"퇴"#, r#"퇴"#),
+        (r#"퇵"#, r#"퇵"#, r#"퇵"#, r#"퇵"#, r#"퇵"#),
+        (r#"퇶"#, r#"퇶"#, r#"퇶"#, r#"퇶"#, r#"퇶"#),
+        (r#"퇷"#, r#"퇷"#, r#"퇷"#, r#"퇷"#, r#"퇷"#),
+        (r#"퇸"#, r#"퇸"#, r#"퇸"#, r#"퇸"#, r#"퇸"#),
+        (r#"퇹"#, r#"퇹"#, r#"퇹"#, r#"퇹"#, r#"퇹"#),
+        (r#"퇺"#, r#"퇺"#, r#"퇺"#, r#"퇺"#, r#"퇺"#),
+        (r#"퇻"#, r#"퇻"#, r#"퇻"#, r#"퇻"#, r#"퇻"#),
+        (r#"퇼"#, r#"퇼"#, r#"퇼"#, r#"퇼"#, r#"퇼"#),
+        (r#"퇽"#, r#"퇽"#, r#"퇽"#, r#"퇽"#, r#"퇽"#),
+        (r#"퇾"#, r#"퇾"#, r#"퇾"#, r#"퇾"#, r#"퇾"#),
+        (r#"퇿"#, r#"퇿"#, r#"퇿"#, r#"퇿"#, r#"퇿"#),
+        (r#"툀"#, r#"툀"#, r#"툀"#, r#"툀"#, r#"툀"#),
+        (r#"툁"#, r#"툁"#, r#"툁"#, r#"툁"#, r#"툁"#),
+        (r#"툂"#, r#"툂"#, r#"툂"#, r#"툂"#, r#"툂"#),
+        (r#"툃"#, r#"툃"#, r#"툃"#, r#"툃"#, r#"툃"#),
+        (r#"툄"#, r#"툄"#, r#"툄"#, r#"툄"#, r#"툄"#),
+        (r#"툅"#, r#"툅"#, r#"툅"#, r#"툅"#, r#"툅"#),
+        (r#"툆"#, r#"툆"#, r#"툆"#, r#"툆"#, r#"툆"#),
+        (r#"툇"#, r#"툇"#, r#"툇"#, r#"툇"#, r#"툇"#),
+        (r#"툈"#, r#"툈"#, r#"툈"#, r#"툈"#, r#"툈"#),
+        (r#"툉"#, r#"툉"#, r#"툉"#, r#"툉"#, r#"툉"#),
+        (r#"툊"#, r#"툊"#, r#"툊"#, r#"툊"#, r#"툊"#),
+        (r#"툋"#, r#"툋"#, r#"툋"#, r#"툋"#, r#"툋"#),
+        (r#"툌"#, r#"툌"#, r#"툌"#, r#"툌"#, r#"툌"#),
+        (r#"툍"#, r#"툍"#, r#"툍"#, r#"툍"#, r#"툍"#),
+        (r#"툎"#, r#"툎"#, r#"툎"#, r#"툎"#, r#"툎"#),
+        (r#"툏"#, r#"툏"#, r#"툏"#, r#"툏"#, r#"툏"#),
+        (r#"툐"#, r#"툐"#, r#"툐"#, r#"툐"#, r#"툐"#),
+        (r#"툑"#, r#"툑"#, r#"툑"#, r#"툑"#, r#"툑"#),
+        (r#"툒"#, r#"툒"#, r#"툒"#, r#"툒"#, r#"툒"#),
+        (r#"툓"#, r#"툓"#, r#"툓"#, r#"툓"#, r#"툓"#),
+        (r#"툔"#, r#"툔"#, r#"툔"#, r#"툔"#, r#"툔"#),
+        (r#"툕"#, r#"툕"#, r#"툕"#, r#"툕"#, r#"툕"#),
+        (r#"툖"#, r#"툖"#, r#"툖"#, r#"툖"#, r#"툖"#),
+        (r#"툗"#, r#"툗"#, r#"툗"#, r#"툗"#, r#"툗"#),
+        (r#"툘"#, r#"툘"#, r#"툘"#, r#"툘"#, r#"툘"#),
+        (r#"툙"#, r#"툙"#, r#"툙"#, r#"툙"#, r#"툙"#),
+        (r#"툚"#, r#"툚"#, r#"툚"#, r#"툚"#, r#"툚"#),
+        (r#"툛"#, r#"툛"#, r#"툛"#, r#"툛"#, r#"툛"#),
+        (r#"툜"#, r#"툜"#, r#"툜"#, r#"툜"#, r#"툜"#),
+        (r#"툝"#, r#"툝"#, r#"툝"#, r#"툝"#, r#"툝"#),
+        (r#"툞"#, r#"툞"#, r#"툞"#, r#"툞"#, r#"툞"#),
+        (r#"툟"#, r#"툟"#, r#"툟"#, r#"툟"#, r#"툟"#),
+        (r#"툠"#, r#"툠"#, r#"툠"#, r#"툠"#, r#"툠"#),
+        (r#"툡"#, r#"툡"#, r#"툡"#, r#"툡"#, r#"툡"#),
+        (r#"툢"#, r#"툢"#, r#"툢"#, r#"툢"#, r#"툢"#),
+        (r#"툣"#, r#"툣"#, r#"툣"#, r#"툣"#, r#"툣"#),
+        (r#"툤"#, r#"툤"#, r#"툤"#, r#"툤"#, r#"툤"#),
+        (r#"툥"#, r#"툥"#, r#"툥"#, r#"툥"#, r#"툥"#),
+        (r#"툦"#, r#"툦"#, r#"툦"#, r#"툦"#, r#"툦"#),
+        (r#"툧"#, r#"툧"#, r#"툧"#, r#"툧"#, r#"툧"#),
+        (r#"툨"#, r#"툨"#, r#"툨"#, r#"툨"#, r#"툨"#),
+        (r#"툩"#, r#"툩"#, r#"툩"#, r#"툩"#, r#"툩"#),
+        (r#"툪"#, r#"툪"#, r#"툪"#, r#"툪"#, r#"툪"#),
+        (r#"툫"#, r#"툫"#, r#"툫"#, r#"툫"#, r#"툫"#),
+        (r#"투"#, r#"투"#, r#"투"#, r#"투"#, r#"투"#),
+        (r#"툭"#, r#"툭"#, r#"툭"#, r#"툭"#, r#"툭"#),
+        (r#"툮"#, r#"툮"#, r#"툮"#, r#"툮"#, r#"툮"#),
+        (r#"툯"#, r#"툯"#, r#"툯"#, r#"툯"#, r#"툯"#),
+        (r#"툰"#, r#"툰"#, r#"툰"#, r#"툰"#, r#"툰"#),
+        (r#"툱"#, r#"툱"#, r#"툱"#, r#"툱"#, r#"툱"#),
+        (r#"툲"#, r#"툲"#, r#"툲"#, r#"툲"#, r#"툲"#),
+        (r#"툳"#, r#"툳"#, r#"툳"#, r#"툳"#, r#"툳"#),
+        (r#"툴"#, r#"툴"#, r#"툴"#, r#"툴"#, r#"툴"#),
+        (r#"툵"#, r#"툵"#, r#"툵"#, r#"툵"#, r#"툵"#),
+        (r#"툶"#, r#"툶"#, r#"툶"#, r#"툶"#, r#"툶"#),
+        (r#"툷"#, r#"툷"#, r#"툷"#, r#"툷"#, r#"툷"#),
+        (r#"툸"#, r#"툸"#, r#"툸"#, r#"툸"#, r#"툸"#),
+        (r#"툹"#, r#"툹"#, r#"툹"#, r#"툹"#, r#"툹"#),
+        (r#"툺"#, r#"툺"#, r#"툺"#, r#"툺"#, r#"툺"#),
+        (r#"툻"#, r#"툻"#, r#"툻"#, r#"툻"#, r#"툻"#),
+        (r#"툼"#, r#"툼"#, r#"툼"#, r#"툼"#, r#"툼"#),
+        (r#"툽"#, r#"툽"#, r#"툽"#, r#"툽"#, r#"툽"#),
+        (r#"툾"#, r#"툾"#, r#"툾"#, r#"툾"#, r#"툾"#),
+        (r#"툿"#, r#"툿"#, r#"툿"#, r#"툿"#, r#"툿"#),
+        (r#"퉀"#, r#"퉀"#, r#"퉀"#, r#"퉀"#, r#"퉀"#),
+        (r#"퉁"#, r#"퉁"#, r#"퉁"#, r#"퉁"#, r#"퉁"#),
+        (r#"퉂"#, r#"퉂"#, r#"퉂"#, r#"퉂"#, r#"퉂"#),
+        (r#"퉃"#, r#"퉃"#, r#"퉃"#, r#"퉃"#, r#"퉃"#),
+        (r#"퉄"#, r#"퉄"#, r#"퉄"#, r#"퉄"#, r#"퉄"#),
+        (r#"퉅"#, r#"퉅"#, r#"퉅"#, r#"퉅"#, r#"퉅"#),
+        (r#"퉆"#, r#"퉆"#, r#"퉆"#, r#"퉆"#, r#"퉆"#),
+        (r#"퉇"#, r#"퉇"#, r#"퉇"#, r#"퉇"#, r#"퉇"#),
+        (r#"퉈"#, r#"퉈"#, r#"퉈"#, r#"퉈"#, r#"퉈"#),
+        (r#"퉉"#, r#"퉉"#, r#"퉉"#, r#"퉉"#, r#"퉉"#),
+        (r#"퉊"#, r#"퉊"#, r#"퉊"#, r#"퉊"#, r#"퉊"#),
+        (r#"퉋"#, r#"퉋"#, r#"퉋"#, r#"퉋"#, r#"퉋"#),
+        (r#"퉌"#, r#"퉌"#, r#"퉌"#, r#"퉌"#, r#"퉌"#),
+        (r#"퉍"#, r#"퉍"#, r#"퉍"#, r#"퉍"#, r#"퉍"#),
+        (r#"퉎"#, r#"퉎"#, r#"퉎"#, r#"퉎"#, r#"퉎"#),
+        (r#"퉏"#, r#"퉏"#, r#"퉏"#, r#"퉏"#, r#"퉏"#),
+        (r#"퉐"#, r#"퉐"#, r#"퉐"#, r#"퉐"#, r#"퉐"#),
+        (r#"퉑"#, r#"퉑"#, r#"퉑"#, r#"퉑"#, r#"퉑"#),
+        (r#"퉒"#, r#"퉒"#, r#"퉒"#, r#"퉒"#, r#"퉒"#),
+        (r#"퉓"#, r#"퉓"#, r#"퉓"#, r#"퉓"#, r#"퉓"#),
+        (r#"퉔"#, r#"퉔"#, r#"퉔"#, r#"퉔"#, r#"퉔"#),
+        (r#"퉕"#, r#"퉕"#, r#"퉕"#, r#"퉕"#, r#"퉕"#),
+        (r#"퉖"#, r#"퉖"#, r#"퉖"#, r#"퉖"#, r#"퉖"#),
+        (r#"퉗"#, r#"퉗"#, r#"퉗"#, r#"퉗"#, r#"퉗"#),
+        (r#"퉘"#, r#"퉘"#, r#"퉘"#, r#"퉘"#, r#"퉘"#),
+        (r#"퉙"#, r#"퉙"#, r#"퉙"#, r#"퉙"#, r#"퉙"#),
+        (r#"퉚"#, r#"퉚"#, r#"퉚"#, r#"퉚"#, r#"퉚"#),
+        (r#"퉛"#, r#"퉛"#, r#"퉛"#, r#"퉛"#, r#"퉛"#),
+        (r#"퉜"#, r#"퉜"#, r#"퉜"#, r#"퉜"#, r#"퉜"#),
+        (r#"퉝"#, r#"퉝"#, r#"퉝"#, r#"퉝"#, r#"퉝"#),
+        (r#"퉞"#, r#"퉞"#, r#"퉞"#, r#"퉞"#, r#"퉞"#),
+        (r#"퉟"#, r#"퉟"#, r#"퉟"#, r#"퉟"#, r#"퉟"#),
+        (r#"퉠"#, r#"퉠"#, r#"퉠"#, r#"퉠"#, r#"퉠"#),
+        (r#"퉡"#, r#"퉡"#, r#"퉡"#, r#"퉡"#, r#"퉡"#),
+        (r#"퉢"#, r#"퉢"#, r#"퉢"#, r#"퉢"#, r#"퉢"#),
+        (r#"퉣"#, r#"퉣"#, r#"퉣"#, r#"퉣"#, r#"퉣"#),
+        (r#"퉤"#, r#"퉤"#, r#"퉤"#, r#"퉤"#, r#"퉤"#),
+        (r#"퉥"#, r#"퉥"#, r#"퉥"#, r#"퉥"#, r#"퉥"#),
+        (r#"퉦"#, r#"퉦"#, r#"퉦"#, r#"퉦"#, r#"퉦"#),
+        (r#"퉧"#, r#"퉧"#, r#"퉧"#, r#"퉧"#, r#"퉧"#),
+        (r#"퉨"#, r#"퉨"#, r#"퉨"#, r#"퉨"#, r#"퉨"#),
+        (r#"퉩"#, r#"퉩"#, r#"퉩"#, r#"퉩"#, r#"퉩"#),
+        (r#"퉪"#, r#"퉪"#, r#"퉪"#, r#"퉪"#, r#"퉪"#),
+        (r#"퉫"#, r#"퉫"#, r#"퉫"#, r#"퉫"#, r#"퉫"#),
+        (r#"퉬"#, r#"퉬"#, r#"퉬"#, r#"퉬"#, r#"퉬"#),
+        (r#"퉭"#, r#"퉭"#, r#"퉭"#, r#"퉭"#, r#"퉭"#),
+        (r#"퉮"#, r#"퉮"#, r#"퉮"#, r#"퉮"#, r#"퉮"#),
+        (r#"퉯"#, r#"퉯"#, r#"퉯"#, r#"퉯"#, r#"퉯"#),
+        (r#"퉰"#, r#"퉰"#, r#"퉰"#, r#"퉰"#, r#"퉰"#),
+        (r#"퉱"#, r#"퉱"#, r#"퉱"#, r#"퉱"#, r#"퉱"#),
+        (r#"퉲"#, r#"퉲"#, r#"퉲"#, r#"퉲"#, r#"퉲"#),
+        (r#"퉳"#, r#"퉳"#, r#"퉳"#, r#"퉳"#, r#"퉳"#),
+        (r#"퉴"#, r#"퉴"#, r#"퉴"#, r#"퉴"#, r#"퉴"#),
+        (r#"퉵"#, r#"퉵"#, r#"퉵"#, r#"퉵"#, r#"퉵"#),
+        (r#"퉶"#, r#"퉶"#, r#"퉶"#, r#"퉶"#, r#"퉶"#),
+        (r#"퉷"#, r#"퉷"#, r#"퉷"#, r#"퉷"#, r#"퉷"#),
+        (r#"퉸"#, r#"퉸"#, r#"퉸"#, r#"퉸"#, r#"퉸"#),
+        (r#"퉹"#, r#"퉹"#, r#"퉹"#, r#"퉹"#, r#"퉹"#),
+        (r#"퉺"#, r#"퉺"#, r#"퉺"#, r#"퉺"#, r#"퉺"#),
+        (r#"퉻"#, r#"퉻"#, r#"퉻"#, r#"퉻"#, r#"퉻"#),
+        (r#"퉼"#, r#"퉼"#, r#"퉼"#, r#"퉼"#, r#"퉼"#),
+        (r#"퉽"#, r#"퉽"#, r#"퉽"#, r#"퉽"#, r#"퉽"#),
+        (r#"퉾"#, r#"퉾"#, r#"퉾"#, r#"퉾"#, r#"퉾"#),
+        (r#"퉿"#, r#"퉿"#, r#"퉿"#, r#"퉿"#, r#"퉿"#),
+        (r#"튀"#, r#"튀"#, r#"튀"#, r#"튀"#, r#"튀"#),
+        (r#"튁"#, r#"튁"#, r#"튁"#, r#"튁"#, r#"튁"#),
+        (r#"튂"#, r#"튂"#, r#"튂"#, r#"튂"#, r#"튂"#),
+        (r#"튃"#, r#"튃"#, r#"튃"#, r#"튃"#, r#"튃"#),
+        (r#"튄"#, r#"튄"#, r#"튄"#, r#"튄"#, r#"튄"#),
+        (r#"튅"#, r#"튅"#, r#"튅"#, r#"튅"#, r#"튅"#),
+        (r#"튆"#, r#"튆"#, r#"튆"#, r#"튆"#, r#"튆"#),
+        (r#"튇"#, r#"튇"#, r#"튇"#, r#"튇"#, r#"튇"#),
+        (r#"튈"#, r#"튈"#, r#"튈"#, r#"튈"#, r#"튈"#),
+        (r#"튉"#, r#"튉"#, r#"튉"#, r#"튉"#, r#"튉"#),
+        (r#"튊"#, r#"튊"#, r#"튊"#, r#"튊"#, r#"튊"#),
+        (r#"튋"#, r#"튋"#, r#"튋"#, r#"튋"#, r#"튋"#),
+        (r#"튌"#, r#"튌"#, r#"튌"#, r#"튌"#, r#"튌"#),
+        (r#"튍"#, r#"튍"#, r#"튍"#, r#"튍"#, r#"튍"#),
+        (r#"튎"#, r#"튎"#, r#"튎"#, r#"튎"#, r#"튎"#),
+        (r#"튏"#, r#"튏"#, r#"튏"#, r#"튏"#, r#"튏"#),
+        (r#"튐"#, r#"튐"#, r#"튐"#, r#"튐"#, r#"튐"#),
+        (r#"튑"#, r#"튑"#, r#"튑"#, r#"튑"#, r#"튑"#),
+        (r#"튒"#, r#"튒"#, r#"튒"#, r#"튒"#, r#"튒"#),
+        (r#"튓"#, r#"튓"#, r#"튓"#, r#"튓"#, r#"튓"#),
+        (r#"튔"#, r#"튔"#, r#"튔"#, r#"튔"#, r#"튔"#),
+        (r#"튕"#, r#"튕"#, r#"튕"#, r#"튕"#, r#"튕"#),
+        (r#"튖"#, r#"튖"#, r#"튖"#, r#"튖"#, r#"튖"#),
+        (r#"튗"#, r#"튗"#, r#"튗"#, r#"튗"#, r#"튗"#),
+        (r#"튘"#, r#"튘"#, r#"튘"#, r#"튘"#, r#"튘"#),
+        (r#"튙"#, r#"튙"#, r#"튙"#, r#"튙"#, r#"튙"#),
+        (r#"튚"#, r#"튚"#, r#"튚"#, r#"튚"#, r#"튚"#),
+        (r#"튛"#, r#"튛"#, r#"튛"#, r#"튛"#, r#"튛"#),
+        (r#"튜"#, r#"튜"#, r#"튜"#, r#"튜"#, r#"튜"#),
+        (r#"튝"#, r#"튝"#, r#"튝"#, r#"튝"#, r#"튝"#),
+        (r#"튞"#, r#"튞"#, r#"튞"#, r#"튞"#, r#"튞"#),
+        (r#"튟"#, r#"튟"#, r#"튟"#, r#"튟"#, r#"튟"#),
+        (r#"튠"#, r#"튠"#, r#"튠"#, r#"튠"#, r#"튠"#),
+        (r#"튡"#, r#"튡"#, r#"튡"#, r#"튡"#, r#"튡"#),
+        (r#"튢"#, r#"튢"#, r#"튢"#, r#"튢"#, r#"튢"#),
+        (r#"튣"#, r#"튣"#, r#"튣"#, r#"튣"#, r#"튣"#),
+        (r#"튤"#, r#"튤"#, r#"튤"#, r#"튤"#, r#"튤"#),
+        (r#"튥"#, r#"튥"#, r#"튥"#, r#"튥"#, r#"튥"#),
+        (r#"튦"#, r#"튦"#, r#"튦"#, r#"튦"#, r#"튦"#),
+        (r#"튧"#, r#"튧"#, r#"튧"#, r#"튧"#, r#"튧"#),
+        (r#"튨"#, r#"튨"#, r#"튨"#, r#"튨"#, r#"튨"#),
+        (r#"튩"#, r#"튩"#, r#"튩"#, r#"튩"#, r#"튩"#),
+        (r#"튪"#, r#"튪"#, r#"튪"#, r#"튪"#, r#"튪"#),
+        (r#"튫"#, r#"튫"#, r#"튫"#, r#"튫"#, r#"튫"#),
+        (r#"튬"#, r#"튬"#, r#"튬"#, r#"튬"#, r#"튬"#),
+        (r#"튭"#, r#"튭"#, r#"튭"#, r#"튭"#, r#"튭"#),
+        (r#"튮"#, r#"튮"#, r#"튮"#, r#"튮"#, r#"튮"#),
+        (r#"튯"#, r#"튯"#, r#"튯"#, r#"튯"#, r#"튯"#),
+        (r#"튰"#, r#"튰"#, r#"튰"#, r#"튰"#, r#"튰"#),
+        (r#"튱"#, r#"튱"#, r#"튱"#, r#"튱"#, r#"튱"#),
+        (r#"튲"#, r#"튲"#, r#"튲"#, r#"튲"#, r#"튲"#),
+        (r#"튳"#, r#"튳"#, r#"튳"#, r#"튳"#, r#"튳"#),
+        (r#"튴"#, r#"튴"#, r#"튴"#, r#"튴"#, r#"튴"#),
+        (r#"튵"#, r#"튵"#, r#"튵"#, r#"튵"#, r#"튵"#),
+        (r#"튶"#, r#"튶"#, r#"튶"#, r#"튶"#, r#"튶"#),
+        (r#"튷"#, r#"튷"#, r#"튷"#, r#"튷"#, r#"튷"#),
+        (r#"트"#, r#"트"#, r#"트"#, r#"트"#, r#"트"#),
+        (r#"특"#, r#"특"#, r#"특"#, r#"특"#, r#"특"#),
+        (r#"튺"#, r#"튺"#, r#"튺"#, r#"튺"#, r#"튺"#),
+        (r#"튻"#, r#"튻"#, r#"튻"#, r#"튻"#, r#"튻"#),
+        (r#"튼"#, r#"튼"#, r#"튼"#, r#"튼"#, r#"튼"#),
+        (r#"튽"#, r#"튽"#, r#"튽"#, r#"튽"#, r#"튽"#),
+        (r#"튾"#, r#"튾"#, r#"튾"#, r#"튾"#, r#"튾"#),
+        (r#"튿"#, r#"튿"#, r#"튿"#, r#"튿"#, r#"튿"#),
+        (r#"틀"#, r#"틀"#, r#"틀"#, r#"틀"#, r#"틀"#),
+        (r#"틁"#, r#"틁"#, r#"틁"#, r#"틁"#, r#"틁"#),
+        (r#"틂"#, r#"틂"#, r#"틂"#, r#"틂"#, r#"틂"#),
+        (r#"틃"#, r#"틃"#, r#"틃"#, r#"틃"#, r#"틃"#),
+        (r#"틄"#, r#"틄"#, r#"틄"#, r#"틄"#, r#"틄"#),
+        (r#"틅"#, r#"틅"#, r#"틅"#, r#"틅"#, r#"틅"#),
+        (r#"틆"#, r#"틆"#, r#"틆"#, r#"틆"#, r#"틆"#),
+        (r#"틇"#, r#"틇"#, r#"틇"#, r#"틇"#, r#"틇"#),
+        (r#"틈"#, r#"틈"#, r#"틈"#, r#"틈"#, r#"틈"#),
+        (r#"틉"#, r#"틉"#, r#"틉"#, r#"틉"#, r#"틉"#),
+        (r#"틊"#, r#"틊"#, r#"틊"#, r#"틊"#, r#"틊"#),
+        (r#"틋"#, r#"틋"#, r#"틋"#, r#"틋"#, r#"틋"#),
+        (r#"틌"#, r#"틌"#, r#"틌"#, r#"틌"#, r#"틌"#),
+        (r#"틍"#, r#"틍"#, r#"틍"#, r#"틍"#, r#"틍"#),
+        (r#"틎"#, r#"틎"#, r#"틎"#, r#"틎"#, r#"틎"#),
+        (r#"틏"#, r#"틏"#, r#"틏"#, r#"틏"#, r#"틏"#),
+        (r#"틐"#, r#"틐"#, r#"틐"#, r#"틐"#, r#"틐"#),
+        (r#"틑"#, r#"틑"#, r#"틑"#, r#"틑"#, r#"틑"#),
+        (r#"틒"#, r#"틒"#, r#"틒"#, r#"틒"#, r#"틒"#),
+        (r#"틓"#, r#"틓"#, r#"틓"#, r#"틓"#, r#"틓"#),
+        (r#"틔"#, r#"틔"#, r#"틔"#, r#"틔"#, r#"틔"#),
+        (r#"틕"#, r#"틕"#, r#"틕"#, r#"틕"#, r#"틕"#),
+        (r#"틖"#, r#"틖"#, r#"틖"#, r#"틖"#, r#"틖"#),
+        (r#"틗"#, r#"틗"#, r#"틗"#, r#"틗"#, r#"틗"#),
+        (r#"틘"#, r#"틘"#, r#"틘"#, r#"틘"#, r#"틘"#),
+        (r#"틙"#, r#"틙"#, r#"틙"#, r#"틙"#, r#"틙"#),
+        (r#"틚"#, r#"틚"#, r#"틚"#, r#"틚"#, r#"틚"#),
+        (r#"틛"#, r#"틛"#, r#"틛"#, r#"틛"#, r#"틛"#),
+        (r#"틜"#, r#"틜"#, r#"틜"#, r#"틜"#, r#"틜"#),
+        (r#"틝"#, r#"틝"#, r#"틝"#, r#"틝"#, r#"틝"#),
+        (r#"틞"#, r#"틞"#, r#"틞"#, r#"틞"#, r#"틞"#),
+        (r#"틟"#, r#"틟"#, r#"틟"#, r#"틟"#, r#"틟"#),
+        (r#"틠"#, r#"틠"#, r#"틠"#, r#"틠"#, r#"틠"#),
+        (r#"틡"#, r#"틡"#, r#"틡"#, r#"틡"#, r#"틡"#),
+        (r#"틢"#, r#"틢"#, r#"틢"#, r#"틢"#, r#"틢"#),
+        (r#"틣"#, r#"틣"#, r#"틣"#, r#"틣"#, r#"틣"#),
+        (r#"틤"#, r#"틤"#, r#"틤"#, r#"틤"#, r#"틤"#),
+        (r#"틥"#, r#"틥"#, r#"틥"#, r#"틥"#, r#"틥"#),
+        (r#"틦"#, r#"틦"#, r#"틦"#, r#"틦"#, r#"틦"#),
+        (r#"틧"#, r#"틧"#, r#"틧"#, r#"틧"#, r#"틧"#),
+        (r#"틨"#, r#"틨"#, r#"틨"#, r#"틨"#, r#"틨"#),
+        (r#"틩"#, r#"틩"#, r#"틩"#, r#"틩"#, r#"틩"#),
+        (r#"틪"#, r#"틪"#, r#"틪"#, r#"틪"#, r#"틪"#),
+        (r#"틫"#, r#"틫"#, r#"틫"#, r#"틫"#, r#"틫"#),
+        (r#"틬"#, r#"틬"#, r#"틬"#, r#"틬"#, r#"틬"#),
+        (r#"틭"#, r#"틭"#, r#"틭"#, r#"틭"#, r#"틭"#),
+        (r#"틮"#, r#"틮"#, r#"틮"#, r#"틮"#, r#"틮"#),
+        (r#"틯"#, r#"틯"#, r#"틯"#, r#"틯"#, r#"틯"#),
+        (r#"티"#, r#"티"#, r#"티"#, r#"티"#, r#"티"#),
+        (r#"틱"#, r#"틱"#, r#"틱"#, r#"틱"#, r#"틱"#),
+        (r#"틲"#, r#"틲"#, r#"틲"#, r#"틲"#, r#"틲"#),
+        (r#"틳"#, r#"틳"#, r#"틳"#, r#"틳"#, r#"틳"#),
+        (r#"틴"#, r#"틴"#, r#"틴"#, r#"틴"#, r#"틴"#),
+        (r#"틵"#, r#"틵"#, r#"틵"#, r#"틵"#, r#"틵"#),
+        (r#"틶"#, r#"틶"#, r#"틶"#, r#"틶"#, r#"틶"#),
+        (r#"틷"#, r#"틷"#, r#"틷"#, r#"틷"#, r#"틷"#),
+        (r#"틸"#, r#"틸"#, r#"틸"#, r#"틸"#, r#"틸"#),
+        (r#"틹"#, r#"틹"#, r#"틹"#, r#"틹"#, r#"틹"#),
+        (r#"틺"#, r#"틺"#, r#"틺"#, r#"틺"#, r#"틺"#),
+        (r#"틻"#, r#"틻"#, r#"틻"#, r#"틻"#, r#"틻"#),
+        (r#"틼"#, r#"틼"#, r#"틼"#, r#"틼"#, r#"틼"#),
+        (r#"틽"#, r#"틽"#, r#"틽"#, r#"틽"#, r#"틽"#),
+        (r#"틾"#, r#"틾"#, r#"틾"#, r#"틾"#, r#"틾"#),
+        (r#"틿"#, r#"틿"#, r#"틿"#, r#"틿"#, r#"틿"#),
+        (r#"팀"#, r#"팀"#, r#"팀"#, r#"팀"#, r#"팀"#),
+        (r#"팁"#, r#"팁"#, r#"팁"#, r#"팁"#, r#"팁"#),
+        (r#"팂"#, r#"팂"#, r#"팂"#, r#"팂"#, r#"팂"#),
+        (r#"팃"#, r#"팃"#, r#"팃"#, r#"팃"#, r#"팃"#),
+        (r#"팄"#, r#"팄"#, r#"팄"#, r#"팄"#, r#"팄"#),
+        (r#"팅"#, r#"팅"#, r#"팅"#, r#"팅"#, r#"팅"#),
+        (r#"팆"#, r#"팆"#, r#"팆"#, r#"팆"#, r#"팆"#),
+        (r#"팇"#, r#"팇"#, r#"팇"#, r#"팇"#, r#"팇"#),
+        (r#"팈"#, r#"팈"#, r#"팈"#, r#"팈"#, r#"팈"#),
+        (r#"팉"#, r#"팉"#, r#"팉"#, r#"팉"#, r#"팉"#),
+        (r#"팊"#, r#"팊"#, r#"팊"#, r#"팊"#, r#"팊"#),
+        (r#"팋"#, r#"팋"#, r#"팋"#, r#"팋"#, r#"팋"#),
+        (r#"파"#, r#"파"#, r#"파"#, r#"파"#, r#"파"#),
+        (r#"팍"#, r#"팍"#, r#"팍"#, r#"팍"#, r#"팍"#),
+        (r#"팎"#, r#"팎"#, r#"팎"#, r#"팎"#, r#"팎"#),
+        (r#"팏"#, r#"팏"#, r#"팏"#, r#"팏"#, r#"팏"#),
+        (r#"판"#, r#"판"#, r#"판"#, r#"판"#, r#"판"#),
+        (r#"팑"#, r#"팑"#, r#"팑"#, r#"팑"#, r#"팑"#),
+        (r#"팒"#, r#"팒"#, r#"팒"#, r#"팒"#, r#"팒"#),
+        (r#"팓"#, r#"팓"#, r#"팓"#, r#"팓"#, r#"팓"#),
+        (r#"팔"#, r#"팔"#, r#"팔"#, r#"팔"#, r#"팔"#),
+        (r#"팕"#, r#"팕"#, r#"팕"#, r#"팕"#, r#"팕"#),
+        (r#"팖"#, r#"팖"#, r#"팖"#, r#"팖"#, r#"팖"#),
+        (r#"팗"#, r#"팗"#, r#"팗"#, r#"팗"#, r#"팗"#),
+        (r#"팘"#, r#"팘"#, r#"팘"#, r#"팘"#, r#"팘"#),
+        (r#"팙"#, r#"팙"#, r#"팙"#, r#"팙"#, r#"팙"#),
+        (r#"팚"#, r#"팚"#, r#"팚"#, r#"팚"#, r#"팚"#),
+        (r#"팛"#, r#"팛"#, r#"팛"#, r#"팛"#, r#"팛"#),
+        (r#"팜"#, r#"팜"#, r#"팜"#, r#"팜"#, r#"팜"#),
+        (r#"팝"#, r#"팝"#, r#"팝"#, r#"팝"#, r#"팝"#),
+        (r#"팞"#, r#"팞"#, r#"팞"#, r#"팞"#, r#"팞"#),
+        (r#"팟"#, r#"팟"#, r#"팟"#, r#"팟"#, r#"팟"#),
+        (r#"팠"#, r#"팠"#, r#"팠"#, r#"팠"#, r#"팠"#),
+        (r#"팡"#, r#"팡"#, r#"팡"#, r#"팡"#, r#"팡"#),
+        (r#"팢"#, r#"팢"#, r#"팢"#, r#"팢"#, r#"팢"#),
+        (r#"팣"#, r#"팣"#, r#"팣"#, r#"팣"#, r#"팣"#),
+        (r#"팤"#, r#"팤"#, r#"팤"#, r#"팤"#, r#"팤"#),
+        (r#"팥"#, r#"팥"#, r#"팥"#, r#"팥"#, r#"팥"#),
+        (r#"팦"#, r#"팦"#, r#"팦"#, r#"팦"#, r#"팦"#),
+        (r#"팧"#, r#"팧"#, r#"팧"#, r#"팧"#, r#"팧"#),
+        (r#"패"#, r#"패"#, r#"패"#, r#"패"#, r#"패"#),
+        (r#"팩"#, r#"팩"#, r#"팩"#, r#"팩"#, r#"팩"#),
+        (r#"팪"#, r#"팪"#, r#"팪"#, r#"팪"#, r#"팪"#),
+        (r#"팫"#, r#"팫"#, r#"팫"#, r#"팫"#, r#"팫"#),
+        (r#"팬"#, r#"팬"#, r#"팬"#, r#"팬"#, r#"팬"#),
+        (r#"팭"#, r#"팭"#, r#"팭"#, r#"팭"#, r#"팭"#),
+        (r#"팮"#, r#"팮"#, r#"팮"#, r#"팮"#, r#"팮"#),
+        (r#"팯"#, r#"팯"#, r#"팯"#, r#"팯"#, r#"팯"#),
+        (r#"팰"#, r#"팰"#, r#"팰"#, r#"팰"#, r#"팰"#),
+        (r#"팱"#, r#"팱"#, r#"팱"#, r#"팱"#, r#"팱"#),
+        (r#"팲"#, r#"팲"#, r#"팲"#, r#"팲"#, r#"팲"#),
+        (r#"팳"#, r#"팳"#, r#"팳"#, r#"팳"#, r#"팳"#),
+        (r#"팴"#, r#"팴"#, r#"팴"#, r#"팴"#, r#"팴"#),
+        (r#"팵"#, r#"팵"#, r#"팵"#, r#"팵"#, r#"팵"#),
+        (r#"팶"#, r#"팶"#, r#"팶"#, r#"팶"#, r#"팶"#),
+        (r#"팷"#, r#"팷"#, r#"팷"#, r#"팷"#, r#"팷"#),
+        (r#"팸"#, r#"팸"#, r#"팸"#, r#"팸"#, r#"팸"#),
+        (r#"팹"#, r#"팹"#, r#"팹"#, r#"팹"#, r#"팹"#),
+        (r#"팺"#, r#"팺"#, r#"팺"#, r#"팺"#, r#"팺"#),
+        (r#"팻"#, r#"팻"#, r#"팻"#, r#"팻"#, r#"팻"#),
+        (r#"팼"#, r#"팼"#, r#"팼"#, r#"팼"#, r#"팼"#),
+        (r#"팽"#, r#"팽"#, r#"팽"#, r#"팽"#, r#"팽"#),
+        (r#"팾"#, r#"팾"#, r#"팾"#, r#"팾"#, r#"팾"#),
+        (r#"팿"#, r#"팿"#, r#"팿"#, r#"팿"#, r#"팿"#),
+        (r#"퍀"#, r#"퍀"#, r#"퍀"#, r#"퍀"#, r#"퍀"#),
+        (r#"퍁"#, r#"퍁"#, r#"퍁"#, r#"퍁"#, r#"퍁"#),
+        (r#"퍂"#, r#"퍂"#, r#"퍂"#, r#"퍂"#, r#"퍂"#),
+        (r#"퍃"#, r#"퍃"#, r#"퍃"#, r#"퍃"#, r#"퍃"#),
+        (r#"퍄"#, r#"퍄"#, r#"퍄"#, r#"퍄"#, r#"퍄"#),
+        (r#"퍅"#, r#"퍅"#, r#"퍅"#, r#"퍅"#, r#"퍅"#),
+        (r#"퍆"#, r#"퍆"#, r#"퍆"#, r#"퍆"#, r#"퍆"#),
+        (r#"퍇"#, r#"퍇"#, r#"퍇"#, r#"퍇"#, r#"퍇"#),
+        (r#"퍈"#, r#"퍈"#, r#"퍈"#, r#"퍈"#, r#"퍈"#),
+        (r#"퍉"#, r#"퍉"#, r#"퍉"#, r#"퍉"#, r#"퍉"#),
+        (r#"퍊"#, r#"퍊"#, r#"퍊"#, r#"퍊"#, r#"퍊"#),
+        (r#"퍋"#, r#"퍋"#, r#"퍋"#, r#"퍋"#, r#"퍋"#),
+        (r#"퍌"#, r#"퍌"#, r#"퍌"#, r#"퍌"#, r#"퍌"#),
+        (r#"퍍"#, r#"퍍"#, r#"퍍"#, r#"퍍"#, r#"퍍"#),
+        (r#"퍎"#, r#"퍎"#, r#"퍎"#, r#"퍎"#, r#"퍎"#),
+        (r#"퍏"#, r#"퍏"#, r#"퍏"#, r#"퍏"#, r#"퍏"#),
+        (r#"퍐"#, r#"퍐"#, r#"퍐"#, r#"퍐"#, r#"퍐"#),
+        (r#"퍑"#, r#"퍑"#, r#"퍑"#, r#"퍑"#, r#"퍑"#),
+        (r#"퍒"#, r#"퍒"#, r#"퍒"#, r#"퍒"#, r#"퍒"#),
+        (r#"퍓"#, r#"퍓"#, r#"퍓"#, r#"퍓"#, r#"퍓"#),
+        (r#"퍔"#, r#"퍔"#, r#"퍔"#, r#"퍔"#, r#"퍔"#),
+        (r#"퍕"#, r#"퍕"#, r#"퍕"#, r#"퍕"#, r#"퍕"#),
+        (r#"퍖"#, r#"퍖"#, r#"퍖"#, r#"퍖"#, r#"퍖"#),
+        (r#"퍗"#, r#"퍗"#, r#"퍗"#, r#"퍗"#, r#"퍗"#),
+        (r#"퍘"#, r#"퍘"#, r#"퍘"#, r#"퍘"#, r#"퍘"#),
+        (r#"퍙"#, r#"퍙"#, r#"퍙"#, r#"퍙"#, r#"퍙"#),
+        (r#"퍚"#, r#"퍚"#, r#"퍚"#, r#"퍚"#, r#"퍚"#),
+        (r#"퍛"#, r#"퍛"#, r#"퍛"#, r#"퍛"#, r#"퍛"#),
+        (r#"퍜"#, r#"퍜"#, r#"퍜"#, r#"퍜"#, r#"퍜"#),
+        (r#"퍝"#, r#"퍝"#, r#"퍝"#, r#"퍝"#, r#"퍝"#),
+        (r#"퍞"#, r#"퍞"#, r#"퍞"#, r#"퍞"#, r#"퍞"#),
+        (r#"퍟"#, r#"퍟"#, r#"퍟"#, r#"퍟"#, r#"퍟"#),
+        (r#"퍠"#, r#"퍠"#, r#"퍠"#, r#"퍠"#, r#"퍠"#),
+        (r#"퍡"#, r#"퍡"#, r#"퍡"#, r#"퍡"#, r#"퍡"#),
+        (r#"퍢"#, r#"퍢"#, r#"퍢"#, r#"퍢"#, r#"퍢"#),
+        (r#"퍣"#, r#"퍣"#, r#"퍣"#, r#"퍣"#, r#"퍣"#),
+        (r#"퍤"#, r#"퍤"#, r#"퍤"#, r#"퍤"#, r#"퍤"#),
+        (r#"퍥"#, r#"퍥"#, r#"퍥"#, r#"퍥"#, r#"퍥"#),
+        (r#"퍦"#, r#"퍦"#, r#"퍦"#, r#"퍦"#, r#"퍦"#),
+        (r#"퍧"#, r#"퍧"#, r#"퍧"#, r#"퍧"#, r#"퍧"#),
+        (r#"퍨"#, r#"퍨"#, r#"퍨"#, r#"퍨"#, r#"퍨"#),
+        (r#"퍩"#, r#"퍩"#, r#"퍩"#, r#"퍩"#, r#"퍩"#),
+        (r#"퍪"#, r#"퍪"#, r#"퍪"#, r#"퍪"#, r#"퍪"#),
+        (r#"퍫"#, r#"퍫"#, r#"퍫"#, r#"퍫"#, r#"퍫"#),
+        (r#"퍬"#, r#"퍬"#, r#"퍬"#, r#"퍬"#, r#"퍬"#),
+        (r#"퍭"#, r#"퍭"#, r#"퍭"#, r#"퍭"#, r#"퍭"#),
+        (r#"퍮"#, r#"퍮"#, r#"퍮"#, r#"퍮"#, r#"퍮"#),
+        (r#"퍯"#, r#"퍯"#, r#"퍯"#, r#"퍯"#, r#"퍯"#),
+        (r#"퍰"#, r#"퍰"#, r#"퍰"#, r#"퍰"#, r#"퍰"#),
+        (r#"퍱"#, r#"퍱"#, r#"퍱"#, r#"퍱"#, r#"퍱"#),
+        (r#"퍲"#, r#"퍲"#, r#"퍲"#, r#"퍲"#, r#"퍲"#),
+        (r#"퍳"#, r#"퍳"#, r#"퍳"#, r#"퍳"#, r#"퍳"#),
+        (r#"퍴"#, r#"퍴"#, r#"퍴"#, r#"퍴"#, r#"퍴"#),
+        (r#"퍵"#, r#"퍵"#, r#"퍵"#, r#"퍵"#, r#"퍵"#),
+        (r#"퍶"#, r#"퍶"#, r#"퍶"#, r#"퍶"#, r#"퍶"#),
+        (r#"퍷"#, r#"퍷"#, r#"퍷"#, r#"퍷"#, r#"퍷"#),
+        (r#"퍸"#, r#"퍸"#, r#"퍸"#, r#"퍸"#, r#"퍸"#),
+        (r#"퍹"#, r#"퍹"#, r#"퍹"#, r#"퍹"#, r#"퍹"#),
+        (r#"퍺"#, r#"퍺"#, r#"퍺"#, r#"퍺"#, r#"퍺"#),
+        (r#"퍻"#, r#"퍻"#, r#"퍻"#, r#"퍻"#, r#"퍻"#),
+        (r#"퍼"#, r#"퍼"#, r#"퍼"#, r#"퍼"#, r#"퍼"#),
+        (r#"퍽"#, r#"퍽"#, r#"퍽"#, r#"퍽"#, r#"퍽"#),
+        (r#"퍾"#, r#"퍾"#, r#"퍾"#, r#"퍾"#, r#"퍾"#),
+        (r#"퍿"#, r#"퍿"#, r#"퍿"#, r#"퍿"#, r#"퍿"#),
+        (r#"펀"#, r#"펀"#, r#"펀"#, r#"펀"#, r#"펀"#),
+        (r#"펁"#, r#"펁"#, r#"펁"#, r#"펁"#, r#"펁"#),
+        (r#"펂"#, r#"펂"#, r#"펂"#, r#"펂"#, r#"펂"#),
+        (r#"펃"#, r#"펃"#, r#"펃"#, r#"펃"#, r#"펃"#),
+        (r#"펄"#, r#"펄"#, r#"펄"#, r#"펄"#, r#"펄"#),
+        (r#"펅"#, r#"펅"#, r#"펅"#, r#"펅"#, r#"펅"#),
+        (r#"펆"#, r#"펆"#, r#"펆"#, r#"펆"#, r#"펆"#),
+        (r#"펇"#, r#"펇"#, r#"펇"#, r#"펇"#, r#"펇"#),
+        (r#"펈"#, r#"펈"#, r#"펈"#, r#"펈"#, r#"펈"#),
+        (r#"펉"#, r#"펉"#, r#"펉"#, r#"펉"#, r#"펉"#),
+        (r#"펊"#, r#"펊"#, r#"펊"#, r#"펊"#, r#"펊"#),
+        (r#"펋"#, r#"펋"#, r#"펋"#, r#"펋"#, r#"펋"#),
+        (r#"펌"#, r#"펌"#, r#"펌"#, r#"펌"#, r#"펌"#),
+        (r#"펍"#, r#"펍"#, r#"펍"#, r#"펍"#, r#"펍"#),
+        (r#"펎"#, r#"펎"#, r#"펎"#, r#"펎"#, r#"펎"#),
+        (r#"펏"#, r#"펏"#, r#"펏"#, r#"펏"#, r#"펏"#),
+        (r#"펐"#, r#"펐"#, r#"펐"#, r#"펐"#, r#"펐"#),
+        (r#"펑"#, r#"펑"#, r#"펑"#, r#"펑"#, r#"펑"#),
+        (r#"펒"#, r#"펒"#, r#"펒"#, r#"펒"#, r#"펒"#),
+        (r#"펓"#, r#"펓"#, r#"펓"#, r#"펓"#, r#"펓"#),
+        (r#"펔"#, r#"펔"#, r#"펔"#, r#"펔"#, r#"펔"#),
+        (r#"펕"#, r#"펕"#, r#"펕"#, r#"펕"#, r#"펕"#),
+        (r#"펖"#, r#"펖"#, r#"펖"#, r#"펖"#, r#"펖"#),
+        (r#"펗"#, r#"펗"#, r#"펗"#, r#"펗"#, r#"펗"#),
+        (r#"페"#, r#"페"#, r#"페"#, r#"페"#, r#"페"#),
+        (r#"펙"#, r#"펙"#, r#"펙"#, r#"펙"#, r#"펙"#),
+        (r#"펚"#, r#"펚"#, r#"펚"#, r#"펚"#, r#"펚"#),
+        (r#"펛"#, r#"펛"#, r#"펛"#, r#"펛"#, r#"펛"#),
+        (r#"펜"#, r#"펜"#, r#"펜"#, r#"펜"#, r#"펜"#),
+        (r#"펝"#, r#"펝"#, r#"펝"#, r#"펝"#, r#"펝"#),
+        (r#"펞"#, r#"펞"#, r#"펞"#, r#"펞"#, r#"펞"#),
+        (r#"펟"#, r#"펟"#, r#"펟"#, r#"펟"#, r#"펟"#),
+        (r#"펠"#, r#"펠"#, r#"펠"#, r#"펠"#, r#"펠"#),
+        (r#"펡"#, r#"펡"#, r#"펡"#, r#"펡"#, r#"펡"#),
+        (r#"펢"#, r#"펢"#, r#"펢"#, r#"펢"#, r#"펢"#),
+        (r#"펣"#, r#"펣"#, r#"펣"#, r#"펣"#, r#"펣"#),
+        (r#"펤"#, r#"펤"#, r#"펤"#, r#"펤"#, r#"펤"#),
+        (r#"펥"#, r#"펥"#, r#"펥"#, r#"펥"#, r#"펥"#),
+        (r#"펦"#, r#"펦"#, r#"펦"#, r#"펦"#, r#"펦"#),
+        (r#"펧"#, r#"펧"#, r#"펧"#, r#"펧"#, r#"펧"#),
+        (r#"펨"#, r#"펨"#, r#"펨"#, r#"펨"#, r#"펨"#),
+        (r#"펩"#, r#"펩"#, r#"펩"#, r#"펩"#, r#"펩"#),
+        (r#"펪"#, r#"펪"#, r#"펪"#, r#"펪"#, r#"펪"#),
+        (r#"펫"#, r#"펫"#, r#"펫"#, r#"펫"#, r#"펫"#),
+        (r#"펬"#, r#"펬"#, r#"펬"#, r#"펬"#, r#"펬"#),
+        (r#"펭"#, r#"펭"#, r#"펭"#, r#"펭"#, r#"펭"#),
+        (r#"펮"#, r#"펮"#, r#"펮"#, r#"펮"#, r#"펮"#),
+        (r#"펯"#, r#"펯"#, r#"펯"#, r#"펯"#, r#"펯"#),
+        (r#"펰"#, r#"펰"#, r#"펰"#, r#"펰"#, r#"펰"#),
+        (r#"펱"#, r#"펱"#, r#"펱"#, r#"펱"#, r#"펱"#),
+        (r#"펲"#, r#"펲"#, r#"펲"#, r#"펲"#, r#"펲"#),
+        (r#"펳"#, r#"펳"#, r#"펳"#, r#"펳"#, r#"펳"#),
+        (r#"펴"#, r#"펴"#, r#"펴"#, r#"펴"#, r#"펴"#),
+        (r#"펵"#, r#"펵"#, r#"펵"#, r#"펵"#, r#"펵"#),
+        (r#"펶"#, r#"펶"#, r#"펶"#, r#"펶"#, r#"펶"#),
+        (r#"펷"#, r#"펷"#, r#"펷"#, r#"펷"#, r#"펷"#),
+        (r#"편"#, r#"편"#, r#"편"#, r#"편"#, r#"편"#),
+        (r#"펹"#, r#"펹"#, r#"펹"#, r#"펹"#, r#"펹"#),
+        (r#"펺"#, r#"펺"#, r#"펺"#, r#"펺"#, r#"펺"#),
+        (r#"펻"#, r#"펻"#, r#"펻"#, r#"펻"#, r#"펻"#),
+        (r#"펼"#, r#"펼"#, r#"펼"#, r#"펼"#, r#"펼"#),
+        (r#"펽"#, r#"펽"#, r#"펽"#, r#"펽"#, r#"펽"#),
+        (r#"펾"#, r#"펾"#, r#"펾"#, r#"펾"#, r#"펾"#),
+        (r#"펿"#, r#"펿"#, r#"펿"#, r#"펿"#, r#"펿"#),
+        (r#"폀"#, r#"폀"#, r#"폀"#, r#"폀"#, r#"폀"#),
+        (r#"폁"#, r#"폁"#, r#"폁"#, r#"폁"#, r#"폁"#),
+        (r#"폂"#, r#"폂"#, r#"폂"#, r#"폂"#, r#"폂"#),
+        (r#"폃"#, r#"폃"#, r#"폃"#, r#"폃"#, r#"폃"#),
+        (r#"폄"#, r#"폄"#, r#"폄"#, r#"폄"#, r#"폄"#),
+        (r#"폅"#, r#"폅"#, r#"폅"#, r#"폅"#, r#"폅"#),
+        (r#"폆"#, r#"폆"#, r#"폆"#, r#"폆"#, r#"폆"#),
+        (r#"폇"#, r#"폇"#, r#"폇"#, r#"폇"#, r#"폇"#),
+        (r#"폈"#, r#"폈"#, r#"폈"#, r#"폈"#, r#"폈"#),
+        (r#"평"#, r#"평"#, r#"평"#, r#"평"#, r#"평"#),
+        (r#"폊"#, r#"폊"#, r#"폊"#, r#"폊"#, r#"폊"#),
+        (r#"폋"#, r#"폋"#, r#"폋"#, r#"폋"#, r#"폋"#),
+        (r#"폌"#, r#"폌"#, r#"폌"#, r#"폌"#, r#"폌"#),
+        (r#"폍"#, r#"폍"#, r#"폍"#, r#"폍"#, r#"폍"#),
+        (r#"폎"#, r#"폎"#, r#"폎"#, r#"폎"#, r#"폎"#),
+        (r#"폏"#, r#"폏"#, r#"폏"#, r#"폏"#, r#"폏"#),
+        (r#"폐"#, r#"폐"#, r#"폐"#, r#"폐"#, r#"폐"#),
+        (r#"폑"#, r#"폑"#, r#"폑"#, r#"폑"#, r#"폑"#),
+        (r#"폒"#, r#"폒"#, r#"폒"#, r#"폒"#, r#"폒"#),
+        (r#"폓"#, r#"폓"#, r#"폓"#, r#"폓"#, r#"폓"#),
+        (r#"폔"#, r#"폔"#, r#"폔"#, r#"폔"#, r#"폔"#),
+        (r#"폕"#, r#"폕"#, r#"폕"#, r#"폕"#, r#"폕"#),
+        (r#"폖"#, r#"폖"#, r#"폖"#, r#"폖"#, r#"폖"#),
+        (r#"폗"#, r#"폗"#, r#"폗"#, r#"폗"#, r#"폗"#),
+        (r#"폘"#, r#"폘"#, r#"폘"#, r#"폘"#, r#"폘"#),
+        (r#"폙"#, r#"폙"#, r#"폙"#, r#"폙"#, r#"폙"#),
+        (r#"폚"#, r#"폚"#, r#"폚"#, r#"폚"#, r#"폚"#),
+        (r#"폛"#, r#"폛"#, r#"폛"#, r#"폛"#, r#"폛"#),
+        (r#"폜"#, r#"폜"#, r#"폜"#, r#"폜"#, r#"폜"#),
+        (r#"폝"#, r#"폝"#, r#"폝"#, r#"폝"#, r#"폝"#),
+        (r#"폞"#, r#"폞"#, r#"폞"#, r#"폞"#, r#"폞"#),
+        (r#"폟"#, r#"폟"#, r#"폟"#, r#"폟"#, r#"폟"#),
+        (r#"폠"#, r#"폠"#, r#"폠"#, r#"폠"#, r#"폠"#),
+        (r#"폡"#, r#"폡"#, r#"폡"#, r#"폡"#, r#"폡"#),
+        (r#"폢"#, r#"폢"#, r#"폢"#, r#"폢"#, r#"폢"#),
+        (r#"폣"#, r#"폣"#, r#"폣"#, r#"폣"#, r#"폣"#),
+        (r#"폤"#, r#"폤"#, r#"폤"#, r#"폤"#, r#"폤"#),
+        (r#"폥"#, r#"폥"#, r#"폥"#, r#"폥"#, r#"폥"#),
+        (r#"폦"#, r#"폦"#, r#"폦"#, r#"폦"#, r#"폦"#),
+        (r#"폧"#, r#"폧"#, r#"폧"#, r#"폧"#, r#"폧"#),
+        (r#"폨"#, r#"폨"#, r#"폨"#, r#"폨"#, r#"폨"#),
+        (r#"폩"#, r#"폩"#, r#"폩"#, r#"폩"#, r#"폩"#),
+        (r#"폪"#, r#"폪"#, r#"폪"#, r#"폪"#, r#"폪"#),
+        (r#"폫"#, r#"폫"#, r#"폫"#, r#"폫"#, r#"폫"#),
+        (r#"포"#, r#"포"#, r#"포"#, r#"포"#, r#"포"#),
+        (r#"폭"#, r#"폭"#, r#"폭"#, r#"폭"#, r#"폭"#),
+        (r#"폮"#, r#"폮"#, r#"폮"#, r#"폮"#, r#"폮"#),
+        (r#"폯"#, r#"폯"#, r#"폯"#, r#"폯"#, r#"폯"#),
+        (r#"폰"#, r#"폰"#, r#"폰"#, r#"폰"#, r#"폰"#),
+        (r#"폱"#, r#"폱"#, r#"폱"#, r#"폱"#, r#"폱"#),
+        (r#"폲"#, r#"폲"#, r#"폲"#, r#"폲"#, r#"폲"#),
+        (r#"폳"#, r#"폳"#, r#"폳"#, r#"폳"#, r#"폳"#),
+        (r#"폴"#, r#"폴"#, r#"폴"#, r#"폴"#, r#"폴"#),
+        (r#"폵"#, r#"폵"#, r#"폵"#, r#"폵"#, r#"폵"#),
+        (r#"폶"#, r#"폶"#, r#"폶"#, r#"폶"#, r#"폶"#),
+        (r#"폷"#, r#"폷"#, r#"폷"#, r#"폷"#, r#"폷"#),
+        (r#"폸"#, r#"폸"#, r#"폸"#, r#"폸"#, r#"폸"#),
+        (r#"폹"#, r#"폹"#, r#"폹"#, r#"폹"#, r#"폹"#),
+        (r#"폺"#, r#"폺"#, r#"폺"#, r#"폺"#, r#"폺"#),
+        (r#"폻"#, r#"폻"#, r#"폻"#, r#"폻"#, r#"폻"#),
+        (r#"폼"#, r#"폼"#, r#"폼"#, r#"폼"#, r#"폼"#),
+        (r#"폽"#, r#"폽"#, r#"폽"#, r#"폽"#, r#"폽"#),
+        (r#"폾"#, r#"폾"#, r#"폾"#, r#"폾"#, r#"폾"#),
+        (r#"폿"#, r#"폿"#, r#"폿"#, r#"폿"#, r#"폿"#),
+        (r#"퐀"#, r#"퐀"#, r#"퐀"#, r#"퐀"#, r#"퐀"#),
+        (r#"퐁"#, r#"퐁"#, r#"퐁"#, r#"퐁"#, r#"퐁"#),
+        (r#"퐂"#, r#"퐂"#, r#"퐂"#, r#"퐂"#, r#"퐂"#),
+        (r#"퐃"#, r#"퐃"#, r#"퐃"#, r#"퐃"#, r#"퐃"#),
+        (r#"퐄"#, r#"퐄"#, r#"퐄"#, r#"퐄"#, r#"퐄"#),
+        (r#"퐅"#, r#"퐅"#, r#"퐅"#, r#"퐅"#, r#"퐅"#),
+        (r#"퐆"#, r#"퐆"#, r#"퐆"#, r#"퐆"#, r#"퐆"#),
+        (r#"퐇"#, r#"퐇"#, r#"퐇"#, r#"퐇"#, r#"퐇"#),
+        (r#"퐈"#, r#"퐈"#, r#"퐈"#, r#"퐈"#, r#"퐈"#),
+        (r#"퐉"#, r#"퐉"#, r#"퐉"#, r#"퐉"#, r#"퐉"#),
+        (r#"퐊"#, r#"퐊"#, r#"퐊"#, r#"퐊"#, r#"퐊"#),
+        (r#"퐋"#, r#"퐋"#, r#"퐋"#, r#"퐋"#, r#"퐋"#),
+        (r#"퐌"#, r#"퐌"#, r#"퐌"#, r#"퐌"#, r#"퐌"#),
+        (r#"퐍"#, r#"퐍"#, r#"퐍"#, r#"퐍"#, r#"퐍"#),
+        (r#"퐎"#, r#"퐎"#, r#"퐎"#, r#"퐎"#, r#"퐎"#),
+        (r#"퐏"#, r#"퐏"#, r#"퐏"#, r#"퐏"#, r#"퐏"#),
+        (r#"퐐"#, r#"퐐"#, r#"퐐"#, r#"퐐"#, r#"퐐"#),
+        (r#"퐑"#, r#"퐑"#, r#"퐑"#, r#"퐑"#, r#"퐑"#),
+        (r#"퐒"#, r#"퐒"#, r#"퐒"#, r#"퐒"#, r#"퐒"#),
+        (r#"퐓"#, r#"퐓"#, r#"퐓"#, r#"퐓"#, r#"퐓"#),
+        (r#"퐔"#, r#"퐔"#, r#"퐔"#, r#"퐔"#, r#"퐔"#),
+        (r#"퐕"#, r#"퐕"#, r#"퐕"#, r#"퐕"#, r#"퐕"#),
+        (r#"퐖"#, r#"퐖"#, r#"퐖"#, r#"퐖"#, r#"퐖"#),
+        (r#"퐗"#, r#"퐗"#, r#"퐗"#, r#"퐗"#, r#"퐗"#),
+        (r#"퐘"#, r#"퐘"#, r#"퐘"#, r#"퐘"#, r#"퐘"#),
+        (r#"퐙"#, r#"퐙"#, r#"퐙"#, r#"퐙"#, r#"퐙"#),
+        (r#"퐚"#, r#"퐚"#, r#"퐚"#, r#"퐚"#, r#"퐚"#),
+        (r#"퐛"#, r#"퐛"#, r#"퐛"#, r#"퐛"#, r#"퐛"#),
+        (r#"퐜"#, r#"퐜"#, r#"퐜"#, r#"퐜"#, r#"퐜"#),
+        (r#"퐝"#, r#"퐝"#, r#"퐝"#, r#"퐝"#, r#"퐝"#),
+        (r#"퐞"#, r#"퐞"#, r#"퐞"#, r#"퐞"#, r#"퐞"#),
+        (r#"퐟"#, r#"퐟"#, r#"퐟"#, r#"퐟"#, r#"퐟"#),
+        (r#"퐠"#, r#"퐠"#, r#"퐠"#, r#"퐠"#, r#"퐠"#),
+        (r#"퐡"#, r#"퐡"#, r#"퐡"#, r#"퐡"#, r#"퐡"#),
+        (r#"퐢"#, r#"퐢"#, r#"퐢"#, r#"퐢"#, r#"퐢"#),
+        (r#"퐣"#, r#"퐣"#, r#"퐣"#, r#"퐣"#, r#"퐣"#),
+        (r#"퐤"#, r#"퐤"#, r#"퐤"#, r#"퐤"#, r#"퐤"#),
+        (r#"퐥"#, r#"퐥"#, r#"퐥"#, r#"퐥"#, r#"퐥"#),
+        (r#"퐦"#, r#"퐦"#, r#"퐦"#, r#"퐦"#, r#"퐦"#),
+        (r#"퐧"#, r#"퐧"#, r#"퐧"#, r#"퐧"#, r#"퐧"#),
+        (r#"퐨"#, r#"퐨"#, r#"퐨"#, r#"퐨"#, r#"퐨"#),
+        (r#"퐩"#, r#"퐩"#, r#"퐩"#, r#"퐩"#, r#"퐩"#),
+        (r#"퐪"#, r#"퐪"#, r#"퐪"#, r#"퐪"#, r#"퐪"#),
+        (r#"퐫"#, r#"퐫"#, r#"퐫"#, r#"퐫"#, r#"퐫"#),
+        (r#"퐬"#, r#"퐬"#, r#"퐬"#, r#"퐬"#, r#"퐬"#),
+        (r#"퐭"#, r#"퐭"#, r#"퐭"#, r#"퐭"#, r#"퐭"#),
+        (r#"퐮"#, r#"퐮"#, r#"퐮"#, r#"퐮"#, r#"퐮"#),
+        (r#"퐯"#, r#"퐯"#, r#"퐯"#, r#"퐯"#, r#"퐯"#),
+        (r#"퐰"#, r#"퐰"#, r#"퐰"#, r#"퐰"#, r#"퐰"#),
+        (r#"퐱"#, r#"퐱"#, r#"퐱"#, r#"퐱"#, r#"퐱"#),
+        (r#"퐲"#, r#"퐲"#, r#"퐲"#, r#"퐲"#, r#"퐲"#),
+        (r#"퐳"#, r#"퐳"#, r#"퐳"#, r#"퐳"#, r#"퐳"#),
+        (r#"퐴"#, r#"퐴"#, r#"퐴"#, r#"퐴"#, r#"퐴"#),
+        (r#"퐵"#, r#"퐵"#, r#"퐵"#, r#"퐵"#, r#"퐵"#),
+        (r#"퐶"#, r#"퐶"#, r#"퐶"#, r#"퐶"#, r#"퐶"#),
+        (r#"퐷"#, r#"퐷"#, r#"퐷"#, r#"퐷"#, r#"퐷"#),
+        (r#"퐸"#, r#"퐸"#, r#"퐸"#, r#"퐸"#, r#"퐸"#),
+        (r#"퐹"#, r#"퐹"#, r#"퐹"#, r#"퐹"#, r#"퐹"#),
+        (r#"퐺"#, r#"퐺"#, r#"퐺"#, r#"퐺"#, r#"퐺"#),
+        (r#"퐻"#, r#"퐻"#, r#"퐻"#, r#"퐻"#, r#"퐻"#),
+        (r#"퐼"#, r#"퐼"#, r#"퐼"#, r#"퐼"#, r#"퐼"#),
+        (r#"퐽"#, r#"퐽"#, r#"퐽"#, r#"퐽"#, r#"퐽"#),
+        (r#"퐾"#, r#"퐾"#, r#"퐾"#, r#"퐾"#, r#"퐾"#),
+        (r#"퐿"#, r#"퐿"#, r#"퐿"#, r#"퐿"#, r#"퐿"#),
+        (r#"푀"#, r#"푀"#, r#"푀"#, r#"푀"#, r#"푀"#),
+        (r#"푁"#, r#"푁"#, r#"푁"#, r#"푁"#, r#"푁"#),
+        (r#"푂"#, r#"푂"#, r#"푂"#, r#"푂"#, r#"푂"#),
+        (r#"푃"#, r#"푃"#, r#"푃"#, r#"푃"#, r#"푃"#),
+        (r#"푄"#, r#"푄"#, r#"푄"#, r#"푄"#, r#"푄"#),
+        (r#"푅"#, r#"푅"#, r#"푅"#, r#"푅"#, r#"푅"#),
+        (r#"푆"#, r#"푆"#, r#"푆"#, r#"푆"#, r#"푆"#),
+        (r#"푇"#, r#"푇"#, r#"푇"#, r#"푇"#, r#"푇"#),
+        (r#"푈"#, r#"푈"#, r#"푈"#, r#"푈"#, r#"푈"#),
+        (r#"푉"#, r#"푉"#, r#"푉"#, r#"푉"#, r#"푉"#),
+        (r#"푊"#, r#"푊"#, r#"푊"#, r#"푊"#, r#"푊"#),
+        (r#"푋"#, r#"푋"#, r#"푋"#, r#"푋"#, r#"푋"#),
+        (r#"푌"#, r#"푌"#, r#"푌"#, r#"푌"#, r#"푌"#),
+        (r#"푍"#, r#"푍"#, r#"푍"#, r#"푍"#, r#"푍"#),
+        (r#"푎"#, r#"푎"#, r#"푎"#, r#"푎"#, r#"푎"#),
+        (r#"푏"#, r#"푏"#, r#"푏"#, r#"푏"#, r#"푏"#),
+        (r#"푐"#, r#"푐"#, r#"푐"#, r#"푐"#, r#"푐"#),
+        (r#"푑"#, r#"푑"#, r#"푑"#, r#"푑"#, r#"푑"#),
+        (r#"푒"#, r#"푒"#, r#"푒"#, r#"푒"#, r#"푒"#),
+        (r#"푓"#, r#"푓"#, r#"푓"#, r#"푓"#, r#"푓"#),
+        (r#"푔"#, r#"푔"#, r#"푔"#, r#"푔"#, r#"푔"#),
+        (r#"푕"#, r#"푕"#, r#"푕"#, r#"푕"#, r#"푕"#),
+        (r#"푖"#, r#"푖"#, r#"푖"#, r#"푖"#, r#"푖"#),
+        (r#"푗"#, r#"푗"#, r#"푗"#, r#"푗"#, r#"푗"#),
+        (r#"푘"#, r#"푘"#, r#"푘"#, r#"푘"#, r#"푘"#),
+        (r#"푙"#, r#"푙"#, r#"푙"#, r#"푙"#, r#"푙"#),
+        (r#"푚"#, r#"푚"#, r#"푚"#, r#"푚"#, r#"푚"#),
+        (r#"푛"#, r#"푛"#, r#"푛"#, r#"푛"#, r#"푛"#),
+        (r#"표"#, r#"표"#, r#"표"#, r#"표"#, r#"표"#),
+        (r#"푝"#, r#"푝"#, r#"푝"#, r#"푝"#, r#"푝"#),
+        (r#"푞"#, r#"푞"#, r#"푞"#, r#"푞"#, r#"푞"#),
+        (r#"푟"#, r#"푟"#, r#"푟"#, r#"푟"#, r#"푟"#),
+        (r#"푠"#, r#"푠"#, r#"푠"#, r#"푠"#, r#"푠"#),
+        (r#"푡"#, r#"푡"#, r#"푡"#, r#"푡"#, r#"푡"#),
+        (r#"푢"#, r#"푢"#, r#"푢"#, r#"푢"#, r#"푢"#),
+        (r#"푣"#, r#"푣"#, r#"푣"#, r#"푣"#, r#"푣"#),
+        (r#"푤"#, r#"푤"#, r#"푤"#, r#"푤"#, r#"푤"#),
+        (r#"푥"#, r#"푥"#, r#"푥"#, r#"푥"#, r#"푥"#),
+        (r#"푦"#, r#"푦"#, r#"푦"#, r#"푦"#, r#"푦"#),
+        (r#"푧"#, r#"푧"#, r#"푧"#, r#"푧"#, r#"푧"#),
+        (r#"푨"#, r#"푨"#, r#"푨"#, r#"푨"#, r#"푨"#),
+        (r#"푩"#, r#"푩"#, r#"푩"#, r#"푩"#, r#"푩"#),
+        (r#"푪"#, r#"푪"#, r#"푪"#, r#"푪"#, r#"푪"#),
+        (r#"푫"#, r#"푫"#, r#"푫"#, r#"푫"#, r#"푫"#),
+        (r#"푬"#, r#"푬"#, r#"푬"#, r#"푬"#, r#"푬"#),
+        (r#"푭"#, r#"푭"#, r#"푭"#, r#"푭"#, r#"푭"#),
+        (r#"푮"#, r#"푮"#, r#"푮"#, r#"푮"#, r#"푮"#),
+        (r#"푯"#, r#"푯"#, r#"푯"#, r#"푯"#, r#"푯"#),
+        (r#"푰"#, r#"푰"#, r#"푰"#, r#"푰"#, r#"푰"#),
+        (r#"푱"#, r#"푱"#, r#"푱"#, r#"푱"#, r#"푱"#),
+        (r#"푲"#, r#"푲"#, r#"푲"#, r#"푲"#, r#"푲"#),
+        (r#"푳"#, r#"푳"#, r#"푳"#, r#"푳"#, r#"푳"#),
+        (r#"푴"#, r#"푴"#, r#"푴"#, r#"푴"#, r#"푴"#),
+        (r#"푵"#, r#"푵"#, r#"푵"#, r#"푵"#, r#"푵"#),
+        (r#"푶"#, r#"푶"#, r#"푶"#, r#"푶"#, r#"푶"#),
+        (r#"푷"#, r#"푷"#, r#"푷"#, r#"푷"#, r#"푷"#),
+        (r#"푸"#, r#"푸"#, r#"푸"#, r#"푸"#, r#"푸"#),
+        (r#"푹"#, r#"푹"#, r#"푹"#, r#"푹"#, r#"푹"#),
+        (r#"푺"#, r#"푺"#, r#"푺"#, r#"푺"#, r#"푺"#),
+        (r#"푻"#, r#"푻"#, r#"푻"#, r#"푻"#, r#"푻"#),
+        (r#"푼"#, r#"푼"#, r#"푼"#, r#"푼"#, r#"푼"#),
+        (r#"푽"#, r#"푽"#, r#"푽"#, r#"푽"#, r#"푽"#),
+        (r#"푾"#, r#"푾"#, r#"푾"#, r#"푾"#, r#"푾"#),
+        (r#"푿"#, r#"푿"#, r#"푿"#, r#"푿"#, r#"푿"#),
+        (r#"풀"#, r#"풀"#, r#"풀"#, r#"풀"#, r#"풀"#),
+        (r#"풁"#, r#"풁"#, r#"풁"#, r#"풁"#, r#"풁"#),
+        (r#"풂"#, r#"풂"#, r#"풂"#, r#"풂"#, r#"풂"#),
+        (r#"풃"#, r#"풃"#, r#"풃"#, r#"풃"#, r#"풃"#),
+        (r#"풄"#, r#"풄"#, r#"풄"#, r#"풄"#, r#"풄"#),
+        (r#"풅"#, r#"풅"#, r#"풅"#, r#"풅"#, r#"풅"#),
+        (r#"풆"#, r#"풆"#, r#"풆"#, r#"풆"#, r#"풆"#),
+        (r#"풇"#, r#"풇"#, r#"풇"#, r#"풇"#, r#"풇"#),
+        (r#"품"#, r#"품"#, r#"품"#, r#"품"#, r#"품"#),
+        (r#"풉"#, r#"풉"#, r#"풉"#, r#"풉"#, r#"풉"#),
+        (r#"풊"#, r#"풊"#, r#"풊"#, r#"풊"#, r#"풊"#),
+        (r#"풋"#, r#"풋"#, r#"풋"#, r#"풋"#, r#"풋"#),
+        (r#"풌"#, r#"풌"#, r#"풌"#, r#"풌"#, r#"풌"#),
+        (r#"풍"#, r#"풍"#, r#"풍"#, r#"풍"#, r#"풍"#),
+        (r#"풎"#, r#"풎"#, r#"풎"#, r#"풎"#, r#"풎"#),
+        (r#"풏"#, r#"풏"#, r#"풏"#, r#"풏"#, r#"풏"#),
+        (r#"풐"#, r#"풐"#, r#"풐"#, r#"풐"#, r#"풐"#),
+        (r#"풑"#, r#"풑"#, r#"풑"#, r#"풑"#, r#"풑"#),
+        (r#"풒"#, r#"풒"#, r#"풒"#, r#"풒"#, r#"풒"#),
+        (r#"풓"#, r#"풓"#, r#"풓"#, r#"풓"#, r#"풓"#),
+        (r#"풔"#, r#"풔"#, r#"풔"#, r#"풔"#, r#"풔"#),
+        (r#"풕"#, r#"풕"#, r#"풕"#, r#"풕"#, r#"풕"#),
+        (r#"풖"#, r#"풖"#, r#"풖"#, r#"풖"#, r#"풖"#),
+        (r#"풗"#, r#"풗"#, r#"풗"#, r#"풗"#, r#"풗"#),
+        (r#"풘"#, r#"풘"#, r#"풘"#, r#"풘"#, r#"풘"#),
+        (r#"풙"#, r#"풙"#, r#"풙"#, r#"풙"#, r#"풙"#),
+        (r#"풚"#, r#"풚"#, r#"풚"#, r#"풚"#, r#"풚"#),
+        (r#"풛"#, r#"풛"#, r#"풛"#, r#"풛"#, r#"풛"#),
+        (r#"풜"#, r#"풜"#, r#"풜"#, r#"풜"#, r#"풜"#),
+        (r#"풝"#, r#"풝"#, r#"풝"#, r#"풝"#, r#"풝"#),
+        (r#"풞"#, r#"풞"#, r#"풞"#, r#"풞"#, r#"풞"#),
+        (r#"풟"#, r#"풟"#, r#"풟"#, r#"풟"#, r#"풟"#),
+        (r#"풠"#, r#"풠"#, r#"풠"#, r#"풠"#, r#"풠"#),
+        (r#"풡"#, r#"풡"#, r#"풡"#, r#"풡"#, r#"풡"#),
+        (r#"풢"#, r#"풢"#, r#"풢"#, r#"풢"#, r#"풢"#),
+        (r#"풣"#, r#"풣"#, r#"풣"#, r#"풣"#, r#"풣"#),
+        (r#"풤"#, r#"풤"#, r#"풤"#, r#"풤"#, r#"풤"#),
+        (r#"풥"#, r#"풥"#, r#"풥"#, r#"풥"#, r#"풥"#),
+        (r#"풦"#, r#"풦"#, r#"풦"#, r#"풦"#, r#"풦"#),
+        (r#"풧"#, r#"풧"#, r#"풧"#, r#"풧"#, r#"풧"#),
+        (r#"풨"#, r#"풨"#, r#"풨"#, r#"풨"#, r#"풨"#),
+        (r#"풩"#, r#"풩"#, r#"풩"#, r#"풩"#, r#"풩"#),
+        (r#"풪"#, r#"풪"#, r#"풪"#, r#"풪"#, r#"풪"#),
+        (r#"풫"#, r#"풫"#, r#"풫"#, r#"풫"#, r#"풫"#),
+        (r#"풬"#, r#"풬"#, r#"풬"#, r#"풬"#, r#"풬"#),
+        (r#"풭"#, r#"풭"#, r#"풭"#, r#"풭"#, r#"풭"#),
+        (r#"풮"#, r#"풮"#, r#"풮"#, r#"풮"#, r#"풮"#),
+        (r#"풯"#, r#"풯"#, r#"풯"#, r#"풯"#, r#"풯"#),
+        (r#"풰"#, r#"풰"#, r#"풰"#, r#"풰"#, r#"풰"#),
+        (r#"풱"#, r#"풱"#, r#"풱"#, r#"풱"#, r#"풱"#),
+        (r#"풲"#, r#"풲"#, r#"풲"#, r#"풲"#, r#"풲"#),
+        (r#"풳"#, r#"풳"#, r#"풳"#, r#"풳"#, r#"풳"#),
+        (r#"풴"#, r#"풴"#, r#"풴"#, r#"풴"#, r#"풴"#),
+        (r#"풵"#, r#"풵"#, r#"풵"#, r#"풵"#, r#"풵"#),
+        (r#"풶"#, r#"풶"#, r#"풶"#, r#"풶"#, r#"풶"#),
+        (r#"풷"#, r#"풷"#, r#"풷"#, r#"풷"#, r#"풷"#),
+        (r#"풸"#, r#"풸"#, r#"풸"#, r#"풸"#, r#"풸"#),
+        (r#"풹"#, r#"풹"#, r#"풹"#, r#"풹"#, r#"풹"#),
+        (r#"풺"#, r#"풺"#, r#"풺"#, r#"풺"#, r#"풺"#),
+        (r#"풻"#, r#"풻"#, r#"풻"#, r#"풻"#, r#"풻"#),
+        (r#"풼"#, r#"풼"#, r#"풼"#, r#"풼"#, r#"풼"#),
+        (r#"풽"#, r#"풽"#, r#"풽"#, r#"풽"#, r#"풽"#),
+        (r#"풾"#, r#"풾"#, r#"풾"#, r#"풾"#, r#"풾"#),
+        (r#"풿"#, r#"풿"#, r#"풿"#, r#"풿"#, r#"풿"#),
+        (r#"퓀"#, r#"퓀"#, r#"퓀"#, r#"퓀"#, r#"퓀"#),
+        (r#"퓁"#, r#"퓁"#, r#"퓁"#, r#"퓁"#, r#"퓁"#),
+        (r#"퓂"#, r#"퓂"#, r#"퓂"#, r#"퓂"#, r#"퓂"#),
+        (r#"퓃"#, r#"퓃"#, r#"퓃"#, r#"퓃"#, r#"퓃"#),
+        (r#"퓄"#, r#"퓄"#, r#"퓄"#, r#"퓄"#, r#"퓄"#),
+        (r#"퓅"#, r#"퓅"#, r#"퓅"#, r#"퓅"#, r#"퓅"#),
+        (r#"퓆"#, r#"퓆"#, r#"퓆"#, r#"퓆"#, r#"퓆"#),
+        (r#"퓇"#, r#"퓇"#, r#"퓇"#, r#"퓇"#, r#"퓇"#),
+        (r#"퓈"#, r#"퓈"#, r#"퓈"#, r#"퓈"#, r#"퓈"#),
+        (r#"퓉"#, r#"퓉"#, r#"퓉"#, r#"퓉"#, r#"퓉"#),
+        (r#"퓊"#, r#"퓊"#, r#"퓊"#, r#"퓊"#, r#"퓊"#),
+        (r#"퓋"#, r#"퓋"#, r#"퓋"#, r#"퓋"#, r#"퓋"#),
+        (r#"퓌"#, r#"퓌"#, r#"퓌"#, r#"퓌"#, r#"퓌"#),
+        (r#"퓍"#, r#"퓍"#, r#"퓍"#, r#"퓍"#, r#"퓍"#),
+        (r#"퓎"#, r#"퓎"#, r#"퓎"#, r#"퓎"#, r#"퓎"#),
+        (r#"퓏"#, r#"퓏"#, r#"퓏"#, r#"퓏"#, r#"퓏"#),
+        (r#"퓐"#, r#"퓐"#, r#"퓐"#, r#"퓐"#, r#"퓐"#),
+        (r#"퓑"#, r#"퓑"#, r#"퓑"#, r#"퓑"#, r#"퓑"#),
+        (r#"퓒"#, r#"퓒"#, r#"퓒"#, r#"퓒"#, r#"퓒"#),
+        (r#"퓓"#, r#"퓓"#, r#"퓓"#, r#"퓓"#, r#"퓓"#),
+        (r#"퓔"#, r#"퓔"#, r#"퓔"#, r#"퓔"#, r#"퓔"#),
+        (r#"퓕"#, r#"퓕"#, r#"퓕"#, r#"퓕"#, r#"퓕"#),
+        (r#"퓖"#, r#"퓖"#, r#"퓖"#, r#"퓖"#, r#"퓖"#),
+        (r#"퓗"#, r#"퓗"#, r#"퓗"#, r#"퓗"#, r#"퓗"#),
+        (r#"퓘"#, r#"퓘"#, r#"퓘"#, r#"퓘"#, r#"퓘"#),
+        (r#"퓙"#, r#"퓙"#, r#"퓙"#, r#"퓙"#, r#"퓙"#),
+        (r#"퓚"#, r#"퓚"#, r#"퓚"#, r#"퓚"#, r#"퓚"#),
+        (r#"퓛"#, r#"퓛"#, r#"퓛"#, r#"퓛"#, r#"퓛"#),
+        (r#"퓜"#, r#"퓜"#, r#"퓜"#, r#"퓜"#, r#"퓜"#),
+        (r#"퓝"#, r#"퓝"#, r#"퓝"#, r#"퓝"#, r#"퓝"#),
+        (r#"퓞"#, r#"퓞"#, r#"퓞"#, r#"퓞"#, r#"퓞"#),
+        (r#"퓟"#, r#"퓟"#, r#"퓟"#, r#"퓟"#, r#"퓟"#),
+        (r#"퓠"#, r#"퓠"#, r#"퓠"#, r#"퓠"#, r#"퓠"#),
+        (r#"퓡"#, r#"퓡"#, r#"퓡"#, r#"퓡"#, r#"퓡"#),
+        (r#"퓢"#, r#"퓢"#, r#"퓢"#, r#"퓢"#, r#"퓢"#),
+        (r#"퓣"#, r#"퓣"#, r#"퓣"#, r#"퓣"#, r#"퓣"#),
+        (r#"퓤"#, r#"퓤"#, r#"퓤"#, r#"퓤"#, r#"퓤"#),
+        (r#"퓥"#, r#"퓥"#, r#"퓥"#, r#"퓥"#, r#"퓥"#),
+        (r#"퓦"#, r#"퓦"#, r#"퓦"#, r#"퓦"#, r#"퓦"#),
+        (r#"퓧"#, r#"퓧"#, r#"퓧"#, r#"퓧"#, r#"퓧"#),
+        (r#"퓨"#, r#"퓨"#, r#"퓨"#, r#"퓨"#, r#"퓨"#),
+        (r#"퓩"#, r#"퓩"#, r#"퓩"#, r#"퓩"#, r#"퓩"#),
+        (r#"퓪"#, r#"퓪"#, r#"퓪"#, r#"퓪"#, r#"퓪"#),
+        (r#"퓫"#, r#"퓫"#, r#"퓫"#, r#"퓫"#, r#"퓫"#),
+        (r#"퓬"#, r#"퓬"#, r#"퓬"#, r#"퓬"#, r#"퓬"#),
+        (r#"퓭"#, r#"퓭"#, r#"퓭"#, r#"퓭"#, r#"퓭"#),
+        (r#"퓮"#, r#"퓮"#, r#"퓮"#, r#"퓮"#, r#"퓮"#),
+        (r#"퓯"#, r#"퓯"#, r#"퓯"#, r#"퓯"#, r#"퓯"#),
+        (r#"퓰"#, r#"퓰"#, r#"퓰"#, r#"퓰"#, r#"퓰"#),
+        (r#"퓱"#, r#"퓱"#, r#"퓱"#, r#"퓱"#, r#"퓱"#),
+        (r#"퓲"#, r#"퓲"#, r#"퓲"#, r#"퓲"#, r#"퓲"#),
+        (r#"퓳"#, r#"퓳"#, r#"퓳"#, r#"퓳"#, r#"퓳"#),
+        (r#"퓴"#, r#"퓴"#, r#"퓴"#, r#"퓴"#, r#"퓴"#),
+        (r#"퓵"#, r#"퓵"#, r#"퓵"#, r#"퓵"#, r#"퓵"#),
+        (r#"퓶"#, r#"퓶"#, r#"퓶"#, r#"퓶"#, r#"퓶"#),
+        (r#"퓷"#, r#"퓷"#, r#"퓷"#, r#"퓷"#, r#"퓷"#),
+        (r#"퓸"#, r#"퓸"#, r#"퓸"#, r#"퓸"#, r#"퓸"#),
+        (r#"퓹"#, r#"퓹"#, r#"퓹"#, r#"퓹"#, r#"퓹"#),
+        (r#"퓺"#, r#"퓺"#, r#"퓺"#, r#"퓺"#, r#"퓺"#),
+        (r#"퓻"#, r#"퓻"#, r#"퓻"#, r#"퓻"#, r#"퓻"#),
+        (r#"퓼"#, r#"퓼"#, r#"퓼"#, r#"퓼"#, r#"퓼"#),
+        (r#"퓽"#, r#"퓽"#, r#"퓽"#, r#"퓽"#, r#"퓽"#),
+        (r#"퓾"#, r#"퓾"#, r#"퓾"#, r#"퓾"#, r#"퓾"#),
+        (r#"퓿"#, r#"퓿"#, r#"퓿"#, r#"퓿"#, r#"퓿"#),
+        (r#"픀"#, r#"픀"#, r#"픀"#, r#"픀"#, r#"픀"#),
+        (r#"픁"#, r#"픁"#, r#"픁"#, r#"픁"#, r#"픁"#),
+        (r#"픂"#, r#"픂"#, r#"픂"#, r#"픂"#, r#"픂"#),
+        (r#"픃"#, r#"픃"#, r#"픃"#, r#"픃"#, r#"픃"#),
+        (r#"프"#, r#"프"#, r#"프"#, r#"프"#, r#"프"#),
+        (r#"픅"#, r#"픅"#, r#"픅"#, r#"픅"#, r#"픅"#),
+        (r#"픆"#, r#"픆"#, r#"픆"#, r#"픆"#, r#"픆"#),
+        (r#"픇"#, r#"픇"#, r#"픇"#, r#"픇"#, r#"픇"#),
+        (r#"픈"#, r#"픈"#, r#"픈"#, r#"픈"#, r#"픈"#),
+        (r#"픉"#, r#"픉"#, r#"픉"#, r#"픉"#, r#"픉"#),
+        (r#"픊"#, r#"픊"#, r#"픊"#, r#"픊"#, r#"픊"#),
+        (r#"픋"#, r#"픋"#, r#"픋"#, r#"픋"#, r#"픋"#),
+        (r#"플"#, r#"플"#, r#"플"#, r#"플"#, r#"플"#),
+        (r#"픍"#, r#"픍"#, r#"픍"#, r#"픍"#, r#"픍"#),
+        (r#"픎"#, r#"픎"#, r#"픎"#, r#"픎"#, r#"픎"#),
+        (r#"픏"#, r#"픏"#, r#"픏"#, r#"픏"#, r#"픏"#),
+        (r#"픐"#, r#"픐"#, r#"픐"#, r#"픐"#, r#"픐"#),
+        (r#"픑"#, r#"픑"#, r#"픑"#, r#"픑"#, r#"픑"#),
+        (r#"픒"#, r#"픒"#, r#"픒"#, r#"픒"#, r#"픒"#),
+        (r#"픓"#, r#"픓"#, r#"픓"#, r#"픓"#, r#"픓"#),
+        (r#"픔"#, r#"픔"#, r#"픔"#, r#"픔"#, r#"픔"#),
+        (r#"픕"#, r#"픕"#, r#"픕"#, r#"픕"#, r#"픕"#),
+        (r#"픖"#, r#"픖"#, r#"픖"#, r#"픖"#, r#"픖"#),
+        (r#"픗"#, r#"픗"#, r#"픗"#, r#"픗"#, r#"픗"#),
+        (r#"픘"#, r#"픘"#, r#"픘"#, r#"픘"#, r#"픘"#),
+        (r#"픙"#, r#"픙"#, r#"픙"#, r#"픙"#, r#"픙"#),
+        (r#"픚"#, r#"픚"#, r#"픚"#, r#"픚"#, r#"픚"#),
+        (r#"픛"#, r#"픛"#, r#"픛"#, r#"픛"#, r#"픛"#),
+        (r#"픜"#, r#"픜"#, r#"픜"#, r#"픜"#, r#"픜"#),
+        (r#"픝"#, r#"픝"#, r#"픝"#, r#"픝"#, r#"픝"#),
+        (r#"픞"#, r#"픞"#, r#"픞"#, r#"픞"#, r#"픞"#),
+        (r#"픟"#, r#"픟"#, r#"픟"#, r#"픟"#, r#"픟"#),
+        (r#"픠"#, r#"픠"#, r#"픠"#, r#"픠"#, r#"픠"#),
+        (r#"픡"#, r#"픡"#, r#"픡"#, r#"픡"#, r#"픡"#),
+        (r#"픢"#, r#"픢"#, r#"픢"#, r#"픢"#, r#"픢"#),
+        (r#"픣"#, r#"픣"#, r#"픣"#, r#"픣"#, r#"픣"#),
+        (r#"픤"#, r#"픤"#, r#"픤"#, r#"픤"#, r#"픤"#),
+        (r#"픥"#, r#"픥"#, r#"픥"#, r#"픥"#, r#"픥"#),
+        (r#"픦"#, r#"픦"#, r#"픦"#, r#"픦"#, r#"픦"#),
+        (r#"픧"#, r#"픧"#, r#"픧"#, r#"픧"#, r#"픧"#),
+        (r#"픨"#, r#"픨"#, r#"픨"#, r#"픨"#, r#"픨"#),
+        (r#"픩"#, r#"픩"#, r#"픩"#, r#"픩"#, r#"픩"#),
+        (r#"픪"#, r#"픪"#, r#"픪"#, r#"픪"#, r#"픪"#),
+        (r#"픫"#, r#"픫"#, r#"픫"#, r#"픫"#, r#"픫"#),
+        (r#"픬"#, r#"픬"#, r#"픬"#, r#"픬"#, r#"픬"#),
+        (r#"픭"#, r#"픭"#, r#"픭"#, r#"픭"#, r#"픭"#),
+        (r#"픮"#, r#"픮"#, r#"픮"#, r#"픮"#, r#"픮"#),
+        (r#"픯"#, r#"픯"#, r#"픯"#, r#"픯"#, r#"픯"#),
+        (r#"픰"#, r#"픰"#, r#"픰"#, r#"픰"#, r#"픰"#),
+        (r#"픱"#, r#"픱"#, r#"픱"#, r#"픱"#, r#"픱"#),
+        (r#"픲"#, r#"픲"#, r#"픲"#, r#"픲"#, r#"픲"#),
+        (r#"픳"#, r#"픳"#, r#"픳"#, r#"픳"#, r#"픳"#),
+        (r#"픴"#, r#"픴"#, r#"픴"#, r#"픴"#, r#"픴"#),
+        (r#"픵"#, r#"픵"#, r#"픵"#, r#"픵"#, r#"픵"#),
+        (r#"픶"#, r#"픶"#, r#"픶"#, r#"픶"#, r#"픶"#),
+        (r#"픷"#, r#"픷"#, r#"픷"#, r#"픷"#, r#"픷"#),
+        (r#"픸"#, r#"픸"#, r#"픸"#, r#"픸"#, r#"픸"#),
+        (r#"픹"#, r#"픹"#, r#"픹"#, r#"픹"#, r#"픹"#),
+        (r#"픺"#, r#"픺"#, r#"픺"#, r#"픺"#, r#"픺"#),
+        (r#"픻"#, r#"픻"#, r#"픻"#, r#"픻"#, r#"픻"#),
+        (r#"피"#, r#"피"#, r#"피"#, r#"피"#, r#"피"#),
+        (r#"픽"#, r#"픽"#, r#"픽"#, r#"픽"#, r#"픽"#),
+        (r#"픾"#, r#"픾"#, r#"픾"#, r#"픾"#, r#"픾"#),
+        (r#"픿"#, r#"픿"#, r#"픿"#, r#"픿"#, r#"픿"#),
+        (r#"핀"#, r#"핀"#, r#"핀"#, r#"핀"#, r#"핀"#),
+        (r#"핁"#, r#"핁"#, r#"핁"#, r#"핁"#, r#"핁"#),
+        (r#"핂"#, r#"핂"#, r#"핂"#, r#"핂"#, r#"핂"#),
+        (r#"핃"#, r#"핃"#, r#"핃"#, r#"핃"#, r#"핃"#),
+        (r#"필"#, r#"필"#, r#"필"#, r#"필"#, r#"필"#),
+        (r#"핅"#, r#"핅"#, r#"핅"#, r#"핅"#, r#"핅"#),
+        (r#"핆"#, r#"핆"#, r#"핆"#, r#"핆"#, r#"핆"#),
+        (r#"핇"#, r#"핇"#, r#"핇"#, r#"핇"#, r#"핇"#),
+        (r#"핈"#, r#"핈"#, r#"핈"#, r#"핈"#, r#"핈"#),
+        (r#"핉"#, r#"핉"#, r#"핉"#, r#"핉"#, r#"핉"#),
+        (r#"핊"#, r#"핊"#, r#"핊"#, r#"핊"#, r#"핊"#),
+        (r#"핋"#, r#"핋"#, r#"핋"#, r#"핋"#, r#"핋"#),
+        (r#"핌"#, r#"핌"#, r#"핌"#, r#"핌"#, r#"핌"#),
+        (r#"핍"#, r#"핍"#, r#"핍"#, r#"핍"#, r#"핍"#),
+        (r#"핎"#, r#"핎"#, r#"핎"#, r#"핎"#, r#"핎"#),
+        (r#"핏"#, r#"핏"#, r#"핏"#, r#"핏"#, r#"핏"#),
+        (r#"핐"#, r#"핐"#, r#"핐"#, r#"핐"#, r#"핐"#),
+        (r#"핑"#, r#"핑"#, r#"핑"#, r#"핑"#, r#"핑"#),
+        (r#"핒"#, r#"핒"#, r#"핒"#, r#"핒"#, r#"핒"#),
+        (r#"핓"#, r#"핓"#, r#"핓"#, r#"핓"#, r#"핓"#),
+        (r#"핔"#, r#"핔"#, r#"핔"#, r#"핔"#, r#"핔"#),
+        (r#"핕"#, r#"핕"#, r#"핕"#, r#"핕"#, r#"핕"#),
+        (r#"핖"#, r#"핖"#, r#"핖"#, r#"핖"#, r#"핖"#),
+        (r#"핗"#, r#"핗"#, r#"핗"#, r#"핗"#, r#"핗"#),
+        (r#"하"#, r#"하"#, r#"하"#, r#"하"#, r#"하"#),
+        (r#"학"#, r#"학"#, r#"학"#, r#"학"#, r#"학"#),
+        (r#"핚"#, r#"핚"#, r#"핚"#, r#"핚"#, r#"핚"#),
+        (r#"핛"#, r#"핛"#, r#"핛"#, r#"핛"#, r#"핛"#),
+        (r#"한"#, r#"한"#, r#"한"#, r#"한"#, r#"한"#),
+        (r#"핝"#, r#"핝"#, r#"핝"#, r#"핝"#, r#"핝"#),
+        (r#"핞"#, r#"핞"#, r#"핞"#, r#"핞"#, r#"핞"#),
+        (r#"핟"#, r#"핟"#, r#"핟"#, r#"핟"#, r#"핟"#),
+        (r#"할"#, r#"할"#, r#"할"#, r#"할"#, r#"할"#),
+        (r#"핡"#, r#"핡"#, r#"핡"#, r#"핡"#, r#"핡"#),
+        (r#"핢"#, r#"핢"#, r#"핢"#, r#"핢"#, r#"핢"#),
+        (r#"핣"#, r#"핣"#, r#"핣"#, r#"핣"#, r#"핣"#),
+        (r#"핤"#, r#"핤"#, r#"핤"#, r#"핤"#, r#"핤"#),
+        (r#"핥"#, r#"핥"#, r#"핥"#, r#"핥"#, r#"핥"#),
+        (r#"핦"#, r#"핦"#, r#"핦"#, r#"핦"#, r#"핦"#),
+        (r#"핧"#, r#"핧"#, r#"핧"#, r#"핧"#, r#"핧"#),
+        (r#"함"#, r#"함"#, r#"함"#, r#"함"#, r#"함"#),
+        (r#"합"#, r#"합"#, r#"합"#, r#"합"#, r#"합"#),
+        (r#"핪"#, r#"핪"#, r#"핪"#, r#"핪"#, r#"핪"#),
+        (r#"핫"#, r#"핫"#, r#"핫"#, r#"핫"#, r#"핫"#),
+        (r#"핬"#, r#"핬"#, r#"핬"#, r#"핬"#, r#"핬"#),
+        (r#"항"#, r#"항"#, r#"항"#, r#"항"#, r#"항"#),
+        (r#"핮"#, r#"핮"#, r#"핮"#, r#"핮"#, r#"핮"#),
+        (r#"핯"#, r#"핯"#, r#"핯"#, r#"핯"#, r#"핯"#),
+        (r#"핰"#, r#"핰"#, r#"핰"#, r#"핰"#, r#"핰"#),
+        (r#"핱"#, r#"핱"#, r#"핱"#, r#"핱"#, r#"핱"#),
+        (r#"핲"#, r#"핲"#, r#"핲"#, r#"핲"#, r#"핲"#),
+        (r#"핳"#, r#"핳"#, r#"핳"#, r#"핳"#, r#"핳"#),
+        (r#"해"#, r#"해"#, r#"해"#, r#"해"#, r#"해"#),
+        (r#"핵"#, r#"핵"#, r#"핵"#, r#"핵"#, r#"핵"#),
+        (r#"핶"#, r#"핶"#, r#"핶"#, r#"핶"#, r#"핶"#),
+        (r#"핷"#, r#"핷"#, r#"핷"#, r#"핷"#, r#"핷"#),
+        (r#"핸"#, r#"핸"#, r#"핸"#, r#"핸"#, r#"핸"#),
+        (r#"핹"#, r#"핹"#, r#"핹"#, r#"핹"#, r#"핹"#),
+        (r#"핺"#, r#"핺"#, r#"핺"#, r#"핺"#, r#"핺"#),
+        (r#"핻"#, r#"핻"#, r#"핻"#, r#"핻"#, r#"핻"#),
+        (r#"핼"#, r#"핼"#, r#"핼"#, r#"핼"#, r#"핼"#),
+        (r#"핽"#, r#"핽"#, r#"핽"#, r#"핽"#, r#"핽"#),
+        (r#"핾"#, r#"핾"#, r#"핾"#, r#"핾"#, r#"핾"#),
+        (r#"핿"#, r#"핿"#, r#"핿"#, r#"핿"#, r#"핿"#),
+        (r#"햀"#, r#"햀"#, r#"햀"#, r#"햀"#, r#"햀"#),
+        (r#"햁"#, r#"햁"#, r#"햁"#, r#"햁"#, r#"햁"#),
+        (r#"햂"#, r#"햂"#, r#"햂"#, r#"햂"#, r#"햂"#),
+        (r#"햃"#, r#"햃"#, r#"햃"#, r#"햃"#, r#"햃"#),
+        (r#"햄"#, r#"햄"#, r#"햄"#, r#"햄"#, r#"햄"#),
+        (r#"햅"#, r#"햅"#, r#"햅"#, r#"햅"#, r#"햅"#),
+        (r#"햆"#, r#"햆"#, r#"햆"#, r#"햆"#, r#"햆"#),
+        (r#"햇"#, r#"햇"#, r#"햇"#, r#"햇"#, r#"햇"#),
+        (r#"했"#, r#"했"#, r#"했"#, r#"했"#, r#"했"#),
+        (r#"행"#, r#"행"#, r#"행"#, r#"행"#, r#"행"#),
+        (r#"햊"#, r#"햊"#, r#"햊"#, r#"햊"#, r#"햊"#),
+        (r#"햋"#, r#"햋"#, r#"햋"#, r#"햋"#, r#"햋"#),
+        (r#"햌"#, r#"햌"#, r#"햌"#, r#"햌"#, r#"햌"#),
+        (r#"햍"#, r#"햍"#, r#"햍"#, r#"햍"#, r#"햍"#),
+        (r#"햎"#, r#"햎"#, r#"햎"#, r#"햎"#, r#"햎"#),
+        (r#"햏"#, r#"햏"#, r#"햏"#, r#"햏"#, r#"햏"#),
+        (r#"햐"#, r#"햐"#, r#"햐"#, r#"햐"#, r#"햐"#),
+        (r#"햑"#, r#"햑"#, r#"햑"#, r#"햑"#, r#"햑"#),
+        (r#"햒"#, r#"햒"#, r#"햒"#, r#"햒"#, r#"햒"#),
+        (r#"햓"#, r#"햓"#, r#"햓"#, r#"햓"#, r#"햓"#),
+        (r#"햔"#, r#"햔"#, r#"햔"#, r#"햔"#, r#"햔"#),
+        (r#"햕"#, r#"햕"#, r#"햕"#, r#"햕"#, r#"햕"#),
+        (r#"햖"#, r#"햖"#, r#"햖"#, r#"햖"#, r#"햖"#),
+        (r#"햗"#, r#"햗"#, r#"햗"#, r#"햗"#, r#"햗"#),
+        (r#"햘"#, r#"햘"#, r#"햘"#, r#"햘"#, r#"햘"#),
+        (r#"햙"#, r#"햙"#, r#"햙"#, r#"햙"#, r#"햙"#),
+        (r#"햚"#, r#"햚"#, r#"햚"#, r#"햚"#, r#"햚"#),
+        (r#"햛"#, r#"햛"#, r#"햛"#, r#"햛"#, r#"햛"#),
+        (r#"햜"#, r#"햜"#, r#"햜"#, r#"햜"#, r#"햜"#),
+        (r#"햝"#, r#"햝"#, r#"햝"#, r#"햝"#, r#"햝"#),
+        (r#"햞"#, r#"햞"#, r#"햞"#, r#"햞"#, r#"햞"#),
+        (r#"햟"#, r#"햟"#, r#"햟"#, r#"햟"#, r#"햟"#),
+        (r#"햠"#, r#"햠"#, r#"햠"#, r#"햠"#, r#"햠"#),
+        (r#"햡"#, r#"햡"#, r#"햡"#, r#"햡"#, r#"햡"#),
+        (r#"햢"#, r#"햢"#, r#"햢"#, r#"햢"#, r#"햢"#),
+        (r#"햣"#, r#"햣"#, r#"햣"#, r#"햣"#, r#"햣"#),
+        (r#"햤"#, r#"햤"#, r#"햤"#, r#"햤"#, r#"햤"#),
+        (r#"향"#, r#"향"#, r#"향"#, r#"향"#, r#"향"#),
+        (r#"햦"#, r#"햦"#, r#"햦"#, r#"햦"#, r#"햦"#),
+        (r#"햧"#, r#"햧"#, r#"햧"#, r#"햧"#, r#"햧"#),
+        (r#"햨"#, r#"햨"#, r#"햨"#, r#"햨"#, r#"햨"#),
+        (r#"햩"#, r#"햩"#, r#"햩"#, r#"햩"#, r#"햩"#),
+        (r#"햪"#, r#"햪"#, r#"햪"#, r#"햪"#, r#"햪"#),
+        (r#"햫"#, r#"햫"#, r#"햫"#, r#"햫"#, r#"햫"#),
+        (r#"햬"#, r#"햬"#, r#"햬"#, r#"햬"#, r#"햬"#),
+        (r#"햭"#, r#"햭"#, r#"햭"#, r#"햭"#, r#"햭"#),
+        (r#"햮"#, r#"햮"#, r#"햮"#, r#"햮"#, r#"햮"#),
+        (r#"햯"#, r#"햯"#, r#"햯"#, r#"햯"#, r#"햯"#),
+        (r#"햰"#, r#"햰"#, r#"햰"#, r#"햰"#, r#"햰"#),
+        (r#"햱"#, r#"햱"#, r#"햱"#, r#"햱"#, r#"햱"#),
+        (r#"햲"#, r#"햲"#, r#"햲"#, r#"햲"#, r#"햲"#),
+        (r#"햳"#, r#"햳"#, r#"햳"#, r#"햳"#, r#"햳"#),
+        (r#"햴"#, r#"햴"#, r#"햴"#, r#"햴"#, r#"햴"#),
+        (r#"햵"#, r#"햵"#, r#"햵"#, r#"햵"#, r#"햵"#),
+        (r#"햶"#, r#"햶"#, r#"햶"#, r#"햶"#, r#"햶"#),
+        (r#"햷"#, r#"햷"#, r#"햷"#, r#"햷"#, r#"햷"#),
+        (r#"햸"#, r#"햸"#, r#"햸"#, r#"햸"#, r#"햸"#),
+        (r#"햹"#, r#"햹"#, r#"햹"#, r#"햹"#, r#"햹"#),
+        (r#"햺"#, r#"햺"#, r#"햺"#, r#"햺"#, r#"햺"#),
+        (r#"햻"#, r#"햻"#, r#"햻"#, r#"햻"#, r#"햻"#),
+        (r#"햼"#, r#"햼"#, r#"햼"#, r#"햼"#, r#"햼"#),
+        (r#"햽"#, r#"햽"#, r#"햽"#, r#"햽"#, r#"햽"#),
+        (r#"햾"#, r#"햾"#, r#"햾"#, r#"햾"#, r#"햾"#),
+        (r#"햿"#, r#"햿"#, r#"햿"#, r#"햿"#, r#"햿"#),
+        (r#"헀"#, r#"헀"#, r#"헀"#, r#"헀"#, r#"헀"#),
+        (r#"헁"#, r#"헁"#, r#"헁"#, r#"헁"#, r#"헁"#),
+        (r#"헂"#, r#"헂"#, r#"헂"#, r#"헂"#, r#"헂"#),
+        (r#"헃"#, r#"헃"#, r#"헃"#, r#"헃"#, r#"헃"#),
+        (r#"헄"#, r#"헄"#, r#"헄"#, r#"헄"#, r#"헄"#),
+        (r#"헅"#, r#"헅"#, r#"헅"#, r#"헅"#, r#"헅"#),
+        (r#"헆"#, r#"헆"#, r#"헆"#, r#"헆"#, r#"헆"#),
+        (r#"헇"#, r#"헇"#, r#"헇"#, r#"헇"#, r#"헇"#),
+        (r#"허"#, r#"허"#, r#"허"#, r#"허"#, r#"허"#),
+        (r#"헉"#, r#"헉"#, r#"헉"#, r#"헉"#, r#"헉"#),
+        (r#"헊"#, r#"헊"#, r#"헊"#, r#"헊"#, r#"헊"#),
+        (r#"헋"#, r#"헋"#, r#"헋"#, r#"헋"#, r#"헋"#),
+        (r#"헌"#, r#"헌"#, r#"헌"#, r#"헌"#, r#"헌"#),
+        (r#"헍"#, r#"헍"#, r#"헍"#, r#"헍"#, r#"헍"#),
+        (r#"헎"#, r#"헎"#, r#"헎"#, r#"헎"#, r#"헎"#),
+        (r#"헏"#, r#"헏"#, r#"헏"#, r#"헏"#, r#"헏"#),
+        (r#"헐"#, r#"헐"#, r#"헐"#, r#"헐"#, r#"헐"#),
+        (r#"헑"#, r#"헑"#, r#"헑"#, r#"헑"#, r#"헑"#),
+        (r#"헒"#, r#"헒"#, r#"헒"#, r#"헒"#, r#"헒"#),
+        (r#"헓"#, r#"헓"#, r#"헓"#, r#"헓"#, r#"헓"#),
+        (r#"헔"#, r#"헔"#, r#"헔"#, r#"헔"#, r#"헔"#),
+        (r#"헕"#, r#"헕"#, r#"헕"#, r#"헕"#, r#"헕"#),
+        (r#"헖"#, r#"헖"#, r#"헖"#, r#"헖"#, r#"헖"#),
+        (r#"헗"#, r#"헗"#, r#"헗"#, r#"헗"#, r#"헗"#),
+        (r#"험"#, r#"험"#, r#"험"#, r#"험"#, r#"험"#),
+        (r#"헙"#, r#"헙"#, r#"헙"#, r#"헙"#, r#"헙"#),
+        (r#"헚"#, r#"헚"#, r#"헚"#, r#"헚"#, r#"헚"#),
+        (r#"헛"#, r#"헛"#, r#"헛"#, r#"헛"#, r#"헛"#),
+        (r#"헜"#, r#"헜"#, r#"헜"#, r#"헜"#, r#"헜"#),
+        (r#"헝"#, r#"헝"#, r#"헝"#, r#"헝"#, r#"헝"#),
+        (r#"헞"#, r#"헞"#, r#"헞"#, r#"헞"#, r#"헞"#),
+        (r#"헟"#, r#"헟"#, r#"헟"#, r#"헟"#, r#"헟"#),
+        (r#"헠"#, r#"헠"#, r#"헠"#, r#"헠"#, r#"헠"#),
+        (r#"헡"#, r#"헡"#, r#"헡"#, r#"헡"#, r#"헡"#),
+        (r#"헢"#, r#"헢"#, r#"헢"#, r#"헢"#, r#"헢"#),
+        (r#"헣"#, r#"헣"#, r#"헣"#, r#"헣"#, r#"헣"#),
+        (r#"헤"#, r#"헤"#, r#"헤"#, r#"헤"#, r#"헤"#),
+        (r#"헥"#, r#"헥"#, r#"헥"#, r#"헥"#, r#"헥"#),
+        (r#"헦"#, r#"헦"#, r#"헦"#, r#"헦"#, r#"헦"#),
+        (r#"헧"#, r#"헧"#, r#"헧"#, r#"헧"#, r#"헧"#),
+        (r#"헨"#, r#"헨"#, r#"헨"#, r#"헨"#, r#"헨"#),
+        (r#"헩"#, r#"헩"#, r#"헩"#, r#"헩"#, r#"헩"#),
+        (r#"헪"#, r#"헪"#, r#"헪"#, r#"헪"#, r#"헪"#),
+        (r#"헫"#, r#"헫"#, r#"헫"#, r#"헫"#, r#"헫"#),
+        (r#"헬"#, r#"헬"#, r#"헬"#, r#"헬"#, r#"헬"#),
+        (r#"헭"#, r#"헭"#, r#"헭"#, r#"헭"#, r#"헭"#),
+        (r#"헮"#, r#"헮"#, r#"헮"#, r#"헮"#, r#"헮"#),
+        (r#"헯"#, r#"헯"#, r#"헯"#, r#"헯"#, r#"헯"#),
+        (r#"헰"#, r#"헰"#, r#"헰"#, r#"헰"#, r#"헰"#),
+        (r#"헱"#, r#"헱"#, r#"헱"#, r#"헱"#, r#"헱"#),
+        (r#"헲"#, r#"헲"#, r#"헲"#, r#"헲"#, r#"헲"#),
+        (r#"헳"#, r#"헳"#, r#"헳"#, r#"헳"#, r#"헳"#),
+        (r#"헴"#, r#"헴"#, r#"헴"#, r#"헴"#, r#"헴"#),
+        (r#"헵"#, r#"헵"#, r#"헵"#, r#"헵"#, r#"헵"#),
+        (r#"헶"#, r#"헶"#, r#"헶"#, r#"헶"#, r#"헶"#),
+        (r#"헷"#, r#"헷"#, r#"헷"#, r#"헷"#, r#"헷"#),
+        (r#"헸"#, r#"헸"#, r#"헸"#, r#"헸"#, r#"헸"#),
+        (r#"헹"#, r#"헹"#, r#"헹"#, r#"헹"#, r#"헹"#),
+        (r#"헺"#, r#"헺"#, r#"헺"#, r#"헺"#, r#"헺"#),
+        (r#"헻"#, r#"헻"#, r#"헻"#, r#"헻"#, r#"헻"#),
+        (r#"헼"#, r#"헼"#, r#"헼"#, r#"헼"#, r#"헼"#),
+        (r#"헽"#, r#"헽"#, r#"헽"#, r#"헽"#, r#"헽"#),
+        (r#"헾"#, r#"헾"#, r#"헾"#, r#"헾"#, r#"헾"#),
+        (r#"헿"#, r#"헿"#, r#"헿"#, r#"헿"#, r#"헿"#),
+        (r#"혀"#, r#"혀"#, r#"혀"#, r#"혀"#, r#"혀"#),
+        (r#"혁"#, r#"혁"#, r#"혁"#, r#"혁"#, r#"혁"#),
+        (r#"혂"#, r#"혂"#, r#"혂"#, r#"혂"#, r#"혂"#),
+        (r#"혃"#, r#"혃"#, r#"혃"#, r#"혃"#, r#"혃"#),
+        (r#"현"#, r#"현"#, r#"현"#, r#"현"#, r#"현"#),
+        (r#"혅"#, r#"혅"#, r#"혅"#, r#"혅"#, r#"혅"#),
+        (r#"혆"#, r#"혆"#, r#"혆"#, r#"혆"#, r#"혆"#),
+        (r#"혇"#, r#"혇"#, r#"혇"#, r#"혇"#, r#"혇"#),
+        (r#"혈"#, r#"혈"#, r#"혈"#, r#"혈"#, r#"혈"#),
+        (r#"혉"#, r#"혉"#, r#"혉"#, r#"혉"#, r#"혉"#),
+        (r#"혊"#, r#"혊"#, r#"혊"#, r#"혊"#, r#"혊"#),
+        (r#"혋"#, r#"혋"#, r#"혋"#, r#"혋"#, r#"혋"#),
+        (r#"혌"#, r#"혌"#, r#"혌"#, r#"혌"#, r#"혌"#),
+        (r#"혍"#, r#"혍"#, r#"혍"#, r#"혍"#, r#"혍"#),
+        (r#"혎"#, r#"혎"#, r#"혎"#, r#"혎"#, r#"혎"#),
+        (r#"혏"#, r#"혏"#, r#"혏"#, r#"혏"#, r#"혏"#),
+        (r#"혐"#, r#"혐"#, r#"혐"#, r#"혐"#, r#"혐"#),
+        (r#"협"#, r#"협"#, r#"협"#, r#"협"#, r#"협"#),
+        (r#"혒"#, r#"혒"#, r#"혒"#, r#"혒"#, r#"혒"#),
+        (r#"혓"#, r#"혓"#, r#"혓"#, r#"혓"#, r#"혓"#),
+        (r#"혔"#, r#"혔"#, r#"혔"#, r#"혔"#, r#"혔"#),
+        (r#"형"#, r#"형"#, r#"형"#, r#"형"#, r#"형"#),
+        (r#"혖"#, r#"혖"#, r#"혖"#, r#"혖"#, r#"혖"#),
+        (r#"혗"#, r#"혗"#, r#"혗"#, r#"혗"#, r#"혗"#),
+        (r#"혘"#, r#"혘"#, r#"혘"#, r#"혘"#, r#"혘"#),
+        (r#"혙"#, r#"혙"#, r#"혙"#, r#"혙"#, r#"혙"#),
+        (r#"혚"#, r#"혚"#, r#"혚"#, r#"혚"#, r#"혚"#),
+        (r#"혛"#, r#"혛"#, r#"혛"#, r#"혛"#, r#"혛"#),
+        (r#"혜"#, r#"혜"#, r#"혜"#, r#"혜"#, r#"혜"#),
+        (r#"혝"#, r#"혝"#, r#"혝"#, r#"혝"#, r#"혝"#),
+        (r#"혞"#, r#"혞"#, r#"혞"#, r#"혞"#, r#"혞"#),
+        (r#"혟"#, r#"혟"#, r#"혟"#, r#"혟"#, r#"혟"#),
+        (r#"혠"#, r#"혠"#, r#"혠"#, r#"혠"#, r#"혠"#),
+        (r#"혡"#, r#"혡"#, r#"혡"#, r#"혡"#, r#"혡"#),
+        (r#"혢"#, r#"혢"#, r#"혢"#, r#"혢"#, r#"혢"#),
+        (r#"혣"#, r#"혣"#, r#"혣"#, r#"혣"#, r#"혣"#),
+        (r#"혤"#, r#"혤"#, r#"혤"#, r#"혤"#, r#"혤"#),
+        (r#"혥"#, r#"혥"#, r#"혥"#, r#"혥"#, r#"혥"#),
+        (r#"혦"#, r#"혦"#, r#"혦"#, r#"혦"#, r#"혦"#),
+        (r#"혧"#, r#"혧"#, r#"혧"#, r#"혧"#, r#"혧"#),
+        (r#"혨"#, r#"혨"#, r#"혨"#, r#"혨"#, r#"혨"#),
+        (r#"혩"#, r#"혩"#, r#"혩"#, r#"혩"#, r#"혩"#),
+        (r#"혪"#, r#"혪"#, r#"혪"#, r#"혪"#, r#"혪"#),
+        (r#"혫"#, r#"혫"#, r#"혫"#, r#"혫"#, r#"혫"#),
+        (r#"혬"#, r#"혬"#, r#"혬"#, r#"혬"#, r#"혬"#),
+        (r#"혭"#, r#"혭"#, r#"혭"#, r#"혭"#, r#"혭"#),
+        (r#"혮"#, r#"혮"#, r#"혮"#, r#"혮"#, r#"혮"#),
+        (r#"혯"#, r#"혯"#, r#"혯"#, r#"혯"#, r#"혯"#),
+        (r#"혰"#, r#"혰"#, r#"혰"#, r#"혰"#, r#"혰"#),
+        (r#"혱"#, r#"혱"#, r#"혱"#, r#"혱"#, r#"혱"#),
+        (r#"혲"#, r#"혲"#, r#"혲"#, r#"혲"#, r#"혲"#),
+        (r#"혳"#, r#"혳"#, r#"혳"#, r#"혳"#, r#"혳"#),
+        (r#"혴"#, r#"혴"#, r#"혴"#, r#"혴"#, r#"혴"#),
+        (r#"혵"#, r#"혵"#, r#"혵"#, r#"혵"#, r#"혵"#),
+        (r#"혶"#, r#"혶"#, r#"혶"#, r#"혶"#, r#"혶"#),
+        (r#"혷"#, r#"혷"#, r#"혷"#, r#"혷"#, r#"혷"#),
+        (r#"호"#, r#"호"#, r#"호"#, r#"호"#, r#"호"#),
+        (r#"혹"#, r#"혹"#, r#"혹"#, r#"혹"#, r#"혹"#),
+        (r#"혺"#, r#"혺"#, r#"혺"#, r#"혺"#, r#"혺"#),
+        (r#"혻"#, r#"혻"#, r#"혻"#, r#"혻"#, r#"혻"#),
+        (r#"혼"#, r#"혼"#, r#"혼"#, r#"혼"#, r#"혼"#),
+        (r#"혽"#, r#"혽"#, r#"혽"#, r#"혽"#, r#"혽"#),
+        (r#"혾"#, r#"혾"#, r#"혾"#, r#"혾"#, r#"혾"#),
+        (r#"혿"#, r#"혿"#, r#"혿"#, r#"혿"#, r#"혿"#),
+        (r#"홀"#, r#"홀"#, r#"홀"#, r#"홀"#, r#"홀"#),
+        (r#"홁"#, r#"홁"#, r#"홁"#, r#"홁"#, r#"홁"#),
+        (r#"홂"#, r#"홂"#, r#"홂"#, r#"홂"#, r#"홂"#),
+        (r#"홃"#, r#"홃"#, r#"홃"#, r#"홃"#, r#"홃"#),
+        (r#"홄"#, r#"홄"#, r#"홄"#, r#"홄"#, r#"홄"#),
+        (r#"홅"#, r#"홅"#, r#"홅"#, r#"홅"#, r#"홅"#),
+        (r#"홆"#, r#"홆"#, r#"홆"#, r#"홆"#, r#"홆"#),
+        (r#"홇"#, r#"홇"#, r#"홇"#, r#"홇"#, r#"홇"#),
+        (r#"홈"#, r#"홈"#, r#"홈"#, r#"홈"#, r#"홈"#),
+        (r#"홉"#, r#"홉"#, r#"홉"#, r#"홉"#, r#"홉"#),
+        (r#"홊"#, r#"홊"#, r#"홊"#, r#"홊"#, r#"홊"#),
+        (r#"홋"#, r#"홋"#, r#"홋"#, r#"홋"#, r#"홋"#),
+        (r#"홌"#, r#"홌"#, r#"홌"#, r#"홌"#, r#"홌"#),
+        (r#"홍"#, r#"홍"#, r#"홍"#, r#"홍"#, r#"홍"#),
+        (r#"홎"#, r#"홎"#, r#"홎"#, r#"홎"#, r#"홎"#),
+        (r#"홏"#, r#"홏"#, r#"홏"#, r#"홏"#, r#"홏"#),
+        (r#"홐"#, r#"홐"#, r#"홐"#, r#"홐"#, r#"홐"#),
+        (r#"홑"#, r#"홑"#, r#"홑"#, r#"홑"#, r#"홑"#),
+        (r#"홒"#, r#"홒"#, r#"홒"#, r#"홒"#, r#"홒"#),
+        (r#"홓"#, r#"홓"#, r#"홓"#, r#"홓"#, r#"홓"#),
+        (r#"화"#, r#"화"#, r#"화"#, r#"화"#, r#"화"#),
+        (r#"확"#, r#"확"#, r#"확"#, r#"확"#, r#"확"#),
+        (r#"홖"#, r#"홖"#, r#"홖"#, r#"홖"#, r#"홖"#),
+        (r#"홗"#, r#"홗"#, r#"홗"#, r#"홗"#, r#"홗"#),
+        (r#"환"#, r#"환"#, r#"환"#, r#"환"#, r#"환"#),
+        (r#"홙"#, r#"홙"#, r#"홙"#, r#"홙"#, r#"홙"#),
+        (r#"홚"#, r#"홚"#, r#"홚"#, r#"홚"#, r#"홚"#),
+        (r#"홛"#, r#"홛"#, r#"홛"#, r#"홛"#, r#"홛"#),
+        (r#"활"#, r#"활"#, r#"활"#, r#"활"#, r#"활"#),
+        (r#"홝"#, r#"홝"#, r#"홝"#, r#"홝"#, r#"홝"#),
+        (r#"홞"#, r#"홞"#, r#"홞"#, r#"홞"#, r#"홞"#),
+        (r#"홟"#, r#"홟"#, r#"홟"#, r#"홟"#, r#"홟"#),
+        (r#"홠"#, r#"홠"#, r#"홠"#, r#"홠"#, r#"홠"#),
+        (r#"홡"#, r#"홡"#, r#"홡"#, r#"홡"#, r#"홡"#),
+        (r#"홢"#, r#"홢"#, r#"홢"#, r#"홢"#, r#"홢"#),
+        (r#"홣"#, r#"홣"#, r#"홣"#, r#"홣"#, r#"홣"#),
+        (r#"홤"#, r#"홤"#, r#"홤"#, r#"홤"#, r#"홤"#),
+        (r#"홥"#, r#"홥"#, r#"홥"#, r#"홥"#, r#"홥"#),
+        (r#"홦"#, r#"홦"#, r#"홦"#, r#"홦"#, r#"홦"#),
+        (r#"홧"#, r#"홧"#, r#"홧"#, r#"홧"#, r#"홧"#),
+        (r#"홨"#, r#"홨"#, r#"홨"#, r#"홨"#, r#"홨"#),
+        (r#"황"#, r#"황"#, r#"황"#, r#"황"#, r#"황"#),
+        (r#"홪"#, r#"홪"#, r#"홪"#, r#"홪"#, r#"홪"#),
+        (r#"홫"#, r#"홫"#, r#"홫"#, r#"홫"#, r#"홫"#),
+        (r#"홬"#, r#"홬"#, r#"홬"#, r#"홬"#, r#"홬"#),
+        (r#"홭"#, r#"홭"#, r#"홭"#, r#"홭"#, r#"홭"#),
+        (r#"홮"#, r#"홮"#, r#"홮"#, r#"홮"#, r#"홮"#),
+        (r#"홯"#, r#"홯"#, r#"홯"#, r#"홯"#, r#"홯"#),
+        (r#"홰"#, r#"홰"#, r#"홰"#, r#"홰"#, r#"홰"#),
+        (r#"홱"#, r#"홱"#, r#"홱"#, r#"홱"#, r#"홱"#),
+        (r#"홲"#, r#"홲"#, r#"홲"#, r#"홲"#, r#"홲"#),
+        (r#"홳"#, r#"홳"#, r#"홳"#, r#"홳"#, r#"홳"#),
+        (r#"홴"#, r#"홴"#, r#"홴"#, r#"홴"#, r#"홴"#),
+        (r#"홵"#, r#"홵"#, r#"홵"#, r#"홵"#, r#"홵"#),
+        (r#"홶"#, r#"홶"#, r#"홶"#, r#"홶"#, r#"홶"#),
+        (r#"홷"#, r#"홷"#, r#"홷"#, r#"홷"#, r#"홷"#),
+        (r#"홸"#, r#"홸"#, r#"홸"#, r#"홸"#, r#"홸"#),
+        (r#"홹"#, r#"홹"#, r#"홹"#, r#"홹"#, r#"홹"#),
+        (r#"홺"#, r#"홺"#, r#"홺"#, r#"홺"#, r#"홺"#),
+        (r#"홻"#, r#"홻"#, r#"홻"#, r#"홻"#, r#"홻"#),
+        (r#"홼"#, r#"홼"#, r#"홼"#, r#"홼"#, r#"홼"#),
+        (r#"홽"#, r#"홽"#, r#"홽"#, r#"홽"#, r#"홽"#),
+        (r#"홾"#, r#"홾"#, r#"홾"#, r#"홾"#, r#"홾"#),
+        (r#"홿"#, r#"홿"#, r#"홿"#, r#"홿"#, r#"홿"#),
+        (r#"횀"#, r#"횀"#, r#"횀"#, r#"횀"#, r#"횀"#),
+        (r#"횁"#, r#"횁"#, r#"횁"#, r#"횁"#, r#"횁"#),
+        (r#"횂"#, r#"횂"#, r#"횂"#, r#"횂"#, r#"횂"#),
+        (r#"횃"#, r#"횃"#, r#"횃"#, r#"횃"#, r#"횃"#),
+        (r#"횄"#, r#"횄"#, r#"횄"#, r#"횄"#, r#"횄"#),
+        (r#"횅"#, r#"횅"#, r#"횅"#, r#"횅"#, r#"횅"#),
+        (r#"횆"#, r#"횆"#, r#"횆"#, r#"횆"#, r#"횆"#),
+        (r#"횇"#, r#"횇"#, r#"횇"#, r#"횇"#, r#"횇"#),
+        (r#"횈"#, r#"횈"#, r#"횈"#, r#"횈"#, r#"횈"#),
+        (r#"횉"#, r#"횉"#, r#"횉"#, r#"횉"#, r#"횉"#),
+        (r#"횊"#, r#"횊"#, r#"횊"#, r#"횊"#, r#"횊"#),
+        (r#"횋"#, r#"횋"#, r#"횋"#, r#"횋"#, r#"횋"#),
+        (r#"회"#, r#"회"#, r#"회"#, r#"회"#, r#"회"#),
+        (r#"획"#, r#"획"#, r#"획"#, r#"획"#, r#"획"#),
+        (r#"횎"#, r#"횎"#, r#"횎"#, r#"횎"#, r#"횎"#),
+        (r#"횏"#, r#"횏"#, r#"횏"#, r#"횏"#, r#"횏"#),
+        (r#"횐"#, r#"횐"#, r#"횐"#, r#"횐"#, r#"횐"#),
+        (r#"횑"#, r#"횑"#, r#"횑"#, r#"횑"#, r#"횑"#),
+        (r#"횒"#, r#"횒"#, r#"횒"#, r#"횒"#, r#"횒"#),
+        (r#"횓"#, r#"횓"#, r#"횓"#, r#"횓"#, r#"횓"#),
+        (r#"횔"#, r#"횔"#, r#"횔"#, r#"횔"#, r#"횔"#),
+        (r#"횕"#, r#"횕"#, r#"횕"#, r#"횕"#, r#"횕"#),
+        (r#"횖"#, r#"횖"#, r#"횖"#, r#"횖"#, r#"횖"#),
+        (r#"횗"#, r#"횗"#, r#"횗"#, r#"횗"#, r#"횗"#),
+        (r#"횘"#, r#"횘"#, r#"횘"#, r#"횘"#, r#"횘"#),
+        (r#"횙"#, r#"횙"#, r#"횙"#, r#"횙"#, r#"횙"#),
+        (r#"횚"#, r#"횚"#, r#"횚"#, r#"횚"#, r#"횚"#),
+        (r#"횛"#, r#"횛"#, r#"횛"#, r#"횛"#, r#"횛"#),
+        (r#"횜"#, r#"횜"#, r#"횜"#, r#"횜"#, r#"횜"#),
+        (r#"횝"#, r#"횝"#, r#"횝"#, r#"횝"#, r#"횝"#),
+        (r#"횞"#, r#"횞"#, r#"횞"#, r#"횞"#, r#"횞"#),
+        (r#"횟"#, r#"횟"#, r#"횟"#, r#"횟"#, r#"횟"#),
+        (r#"횠"#, r#"횠"#, r#"횠"#, r#"횠"#, r#"횠"#),
+        (r#"횡"#, r#"횡"#, r#"횡"#, r#"횡"#, r#"횡"#),
+        (r#"횢"#, r#"횢"#, r#"횢"#, r#"횢"#, r#"횢"#),
+        (r#"횣"#, r#"횣"#, r#"횣"#, r#"횣"#, r#"횣"#),
+        (r#"횤"#, r#"횤"#, r#"횤"#, r#"횤"#, r#"횤"#),
+        (r#"횥"#, r#"횥"#, r#"횥"#, r#"횥"#, r#"횥"#),
+        (r#"횦"#, r#"횦"#, r#"횦"#, r#"횦"#, r#"횦"#),
+        (r#"횧"#, r#"횧"#, r#"횧"#, r#"횧"#, r#"횧"#),
+        (r#"효"#, r#"효"#, r#"효"#, r#"효"#, r#"효"#),
+        (r#"횩"#, r#"횩"#, r#"횩"#, r#"횩"#, r#"횩"#),
+        (r#"횪"#, r#"횪"#, r#"횪"#, r#"횪"#, r#"횪"#),
+        (r#"횫"#, r#"횫"#, r#"횫"#, r#"횫"#, r#"횫"#),
+        (r#"횬"#, r#"횬"#, r#"횬"#, r#"횬"#, r#"횬"#),
+        (r#"횭"#, r#"횭"#, r#"횭"#, r#"횭"#, r#"횭"#),
+        (r#"횮"#, r#"횮"#, r#"횮"#, r#"횮"#, r#"횮"#),
+        (r#"횯"#, r#"횯"#, r#"횯"#, r#"횯"#, r#"횯"#),
+        (r#"횰"#, r#"횰"#, r#"횰"#, r#"횰"#, r#"횰"#),
+        (r#"횱"#, r#"횱"#, r#"횱"#, r#"횱"#, r#"횱"#),
+        (r#"횲"#, r#"횲"#, r#"횲"#, r#"횲"#, r#"횲"#),
+        (r#"횳"#, r#"횳"#, r#"횳"#, r#"횳"#, r#"횳"#),
+        (r#"횴"#, r#"횴"#, r#"횴"#, r#"횴"#, r#"횴"#),
+        (r#"횵"#, r#"횵"#, r#"횵"#, r#"횵"#, r#"횵"#),
+        (r#"횶"#, r#"횶"#, r#"횶"#, r#"횶"#, r#"횶"#),
+        (r#"횷"#, r#"횷"#, r#"횷"#, r#"횷"#, r#"횷"#),
+        (r#"횸"#, r#"횸"#, r#"횸"#, r#"횸"#, r#"횸"#),
+        (r#"횹"#, r#"횹"#, r#"횹"#, r#"횹"#, r#"횹"#),
+        (r#"횺"#, r#"횺"#, r#"횺"#, r#"횺"#, r#"횺"#),
+        (r#"횻"#, r#"횻"#, r#"횻"#, r#"횻"#, r#"횻"#),
+        (r#"횼"#, r#"횼"#, r#"횼"#, r#"횼"#, r#"횼"#),
+        (r#"횽"#, r#"횽"#, r#"횽"#, r#"횽"#, r#"횽"#),
+        (r#"횾"#, r#"횾"#, r#"횾"#, r#"횾"#, r#"횾"#),
+        (r#"횿"#, r#"횿"#, r#"횿"#, r#"횿"#, r#"횿"#),
+        (r#"훀"#, r#"훀"#, r#"훀"#, r#"훀"#, r#"훀"#),
+        (r#"훁"#, r#"훁"#, r#"훁"#, r#"훁"#, r#"훁"#),
+        (r#"훂"#, r#"훂"#, r#"훂"#, r#"훂"#, r#"훂"#),
+        (r#"훃"#, r#"훃"#, r#"훃"#, r#"훃"#, r#"훃"#),
+        (r#"후"#, r#"후"#, r#"후"#, r#"후"#, r#"후"#),
+        (r#"훅"#, r#"훅"#, r#"훅"#, r#"훅"#, r#"훅"#),
+        (r#"훆"#, r#"훆"#, r#"훆"#, r#"훆"#, r#"훆"#),
+        (r#"훇"#, r#"훇"#, r#"훇"#, r#"훇"#, r#"훇"#),
+        (r#"훈"#, r#"훈"#, r#"훈"#, r#"훈"#, r#"훈"#),
+        (r#"훉"#, r#"훉"#, r#"훉"#, r#"훉"#, r#"훉"#),
+        (r#"훊"#, r#"훊"#, r#"훊"#, r#"훊"#, r#"훊"#),
+        (r#"훋"#, r#"훋"#, r#"훋"#, r#"훋"#, r#"훋"#),
+        (r#"훌"#, r#"훌"#, r#"훌"#, r#"훌"#, r#"훌"#),
+        (r#"훍"#, r#"훍"#, r#"훍"#, r#"훍"#, r#"훍"#),
+        (r#"훎"#, r#"훎"#, r#"훎"#, r#"훎"#, r#"훎"#),
+        (r#"훏"#, r#"훏"#, r#"훏"#, r#"훏"#, r#"훏"#),
+        (r#"훐"#, r#"훐"#, r#"훐"#, r#"훐"#, r#"훐"#),
+        (r#"훑"#, r#"훑"#, r#"훑"#, r#"훑"#, r#"훑"#),
+        (r#"훒"#, r#"훒"#, r#"훒"#, r#"훒"#, r#"훒"#),
+        (r#"훓"#, r#"훓"#, r#"훓"#, r#"훓"#, r#"훓"#),
+        (r#"훔"#, r#"훔"#, r#"훔"#, r#"훔"#, r#"훔"#),
+        (r#"훕"#, r#"훕"#, r#"훕"#, r#"훕"#, r#"훕"#),
+        (r#"훖"#, r#"훖"#, r#"훖"#, r#"훖"#, r#"훖"#),
+        (r#"훗"#, r#"훗"#, r#"훗"#, r#"훗"#, r#"훗"#),
+        (r#"훘"#, r#"훘"#, r#"훘"#, r#"훘"#, r#"훘"#),
+        (r#"훙"#, r#"훙"#, r#"훙"#, r#"훙"#, r#"훙"#),
+        (r#"훚"#, r#"훚"#, r#"훚"#, r#"훚"#, r#"훚"#),
+        (r#"훛"#, r#"훛"#, r#"훛"#, r#"훛"#, r#"훛"#),
+        (r#"훜"#, r#"훜"#, r#"훜"#, r#"훜"#, r#"훜"#),
+        (r#"훝"#, r#"훝"#, r#"훝"#, r#"훝"#, r#"훝"#),
+        (r#"훞"#, r#"훞"#, r#"훞"#, r#"훞"#, r#"훞"#),
+        (r#"훟"#, r#"훟"#, r#"훟"#, r#"훟"#, r#"훟"#),
+        (r#"훠"#, r#"훠"#, r#"훠"#, r#"훠"#, r#"훠"#),
+        (r#"훡"#, r#"훡"#, r#"훡"#, r#"훡"#, r#"훡"#),
+        (r#"훢"#, r#"훢"#, r#"훢"#, r#"훢"#, r#"훢"#),
+        (r#"훣"#, r#"훣"#, r#"훣"#, r#"훣"#, r#"훣"#),
+        (r#"훤"#, r#"훤"#, r#"훤"#, r#"훤"#, r#"훤"#),
+        (r#"훥"#, r#"훥"#, r#"훥"#, r#"훥"#, r#"훥"#),
+        (r#"훦"#, r#"훦"#, r#"훦"#, r#"훦"#, r#"훦"#),
+        (r#"훧"#, r#"훧"#, r#"훧"#, r#"훧"#, r#"훧"#),
+        (r#"훨"#, r#"훨"#, r#"훨"#, r#"훨"#, r#"훨"#),
+        (r#"훩"#, r#"훩"#, r#"훩"#, r#"훩"#, r#"훩"#),
+        (r#"훪"#, r#"훪"#, r#"훪"#, r#"훪"#, r#"훪"#),
+        (r#"훫"#, r#"훫"#, r#"훫"#, r#"훫"#, r#"훫"#),
+        (r#"훬"#, r#"훬"#, r#"훬"#, r#"훬"#, r#"훬"#),
+        (r#"훭"#, r#"훭"#, r#"훭"#, r#"훭"#, r#"훭"#),
+        (r#"훮"#, r#"훮"#, r#"훮"#, r#"훮"#, r#"훮"#),
+        (r#"훯"#, r#"훯"#, r#"훯"#, r#"훯"#, r#"훯"#),
+        (r#"훰"#, r#"훰"#, r#"훰"#, r#"훰"#, r#"훰"#),
+        (r#"훱"#, r#"훱"#, r#"훱"#, r#"훱"#, r#"훱"#),
+        (r#"훲"#, r#"훲"#, r#"훲"#, r#"훲"#, r#"훲"#),
+        (r#"훳"#, r#"훳"#, r#"훳"#, r#"훳"#, r#"훳"#),
+        (r#"훴"#, r#"훴"#, r#"훴"#, r#"훴"#, r#"훴"#),
+        (r#"훵"#, r#"훵"#, r#"훵"#, r#"훵"#, r#"훵"#),
+        (r#"훶"#, r#"훶"#, r#"훶"#, r#"훶"#, r#"훶"#),
+        (r#"훷"#, r#"훷"#, r#"훷"#, r#"훷"#, r#"훷"#),
+        (r#"훸"#, r#"훸"#, r#"훸"#, r#"훸"#, r#"훸"#),
+        (r#"훹"#, r#"훹"#, r#"훹"#, r#"훹"#, r#"훹"#),
+        (r#"훺"#, r#"훺"#, r#"훺"#, r#"훺"#, r#"훺"#),
+        (r#"훻"#, r#"훻"#, r#"훻"#, r#"훻"#, r#"훻"#),
+        (r#"훼"#, r#"훼"#, r#"훼"#, r#"훼"#, r#"훼"#),
+        (r#"훽"#, r#"훽"#, r#"훽"#, r#"훽"#, r#"훽"#),
+        (r#"훾"#, r#"훾"#, r#"훾"#, r#"훾"#, r#"훾"#),
+        (r#"훿"#, r#"훿"#, r#"훿"#, r#"훿"#, r#"훿"#),
+        (r#"휀"#, r#"휀"#, r#"휀"#, r#"휀"#, r#"휀"#),
+        (r#"휁"#, r#"휁"#, r#"휁"#, r#"휁"#, r#"휁"#),
+        (r#"휂"#, r#"휂"#, r#"휂"#, r#"휂"#, r#"휂"#),
+        (r#"휃"#, r#"휃"#, r#"휃"#, r#"휃"#, r#"휃"#),
+        (r#"휄"#, r#"휄"#, r#"휄"#, r#"휄"#, r#"휄"#),
+        (r#"휅"#, r#"휅"#, r#"휅"#, r#"휅"#, r#"휅"#),
+        (r#"휆"#, r#"휆"#, r#"휆"#, r#"휆"#, r#"휆"#),
+        (r#"휇"#, r#"휇"#, r#"휇"#, r#"휇"#, r#"휇"#),
+        (r#"휈"#, r#"휈"#, r#"휈"#, r#"휈"#, r#"휈"#),
+        (r#"휉"#, r#"휉"#, r#"휉"#, r#"휉"#, r#"휉"#),
+        (r#"휊"#, r#"휊"#, r#"휊"#, r#"휊"#, r#"휊"#),
+        (r#"휋"#, r#"휋"#, r#"휋"#, r#"휋"#, r#"휋"#),
+        (r#"휌"#, r#"휌"#, r#"휌"#, r#"휌"#, r#"휌"#),
+        (r#"휍"#, r#"휍"#, r#"휍"#, r#"휍"#, r#"휍"#),
+        (r#"휎"#, r#"휎"#, r#"휎"#, r#"휎"#, r#"휎"#),
+        (r#"휏"#, r#"휏"#, r#"휏"#, r#"휏"#, r#"휏"#),
+        (r#"휐"#, r#"휐"#, r#"휐"#, r#"휐"#, r#"휐"#),
+        (r#"휑"#, r#"휑"#, r#"휑"#, r#"휑"#, r#"휑"#),
+        (r#"휒"#, r#"휒"#, r#"휒"#, r#"휒"#, r#"휒"#),
+        (r#"휓"#, r#"휓"#, r#"휓"#, r#"휓"#, r#"휓"#),
+        (r#"휔"#, r#"휔"#, r#"휔"#, r#"휔"#, r#"휔"#),
+        (r#"휕"#, r#"휕"#, r#"휕"#, r#"휕"#, r#"휕"#),
+        (r#"휖"#, r#"휖"#, r#"휖"#, r#"휖"#, r#"휖"#),
+        (r#"휗"#, r#"휗"#, r#"휗"#, r#"휗"#, r#"휗"#),
+        (r#"휘"#, r#"휘"#, r#"휘"#, r#"휘"#, r#"휘"#),
+        (r#"휙"#, r#"휙"#, r#"휙"#, r#"휙"#, r#"휙"#),
+        (r#"휚"#, r#"휚"#, r#"휚"#, r#"휚"#, r#"휚"#),
+        (r#"휛"#, r#"휛"#, r#"휛"#, r#"휛"#, r#"휛"#),
+        (r#"휜"#, r#"휜"#, r#"휜"#, r#"휜"#, r#"휜"#),
+        (r#"휝"#, r#"휝"#, r#"휝"#, r#"휝"#, r#"휝"#),
+        (r#"휞"#, r#"휞"#, r#"휞"#, r#"휞"#, r#"휞"#),
+        (r#"휟"#, r#"휟"#, r#"휟"#, r#"휟"#, r#"휟"#),
+        (r#"휠"#, r#"휠"#, r#"휠"#, r#"휠"#, r#"휠"#),
+        (r#"휡"#, r#"휡"#, r#"휡"#, r#"휡"#, r#"휡"#),
+        (r#"휢"#, r#"휢"#, r#"휢"#, r#"휢"#, r#"휢"#),
+        (r#"휣"#, r#"휣"#, r#"휣"#, r#"휣"#, r#"휣"#),
+        (r#"휤"#, r#"휤"#, r#"휤"#, r#"휤"#, r#"휤"#),
+        (r#"휥"#, r#"휥"#, r#"휥"#, r#"휥"#, r#"휥"#),
+        (r#"휦"#, r#"휦"#, r#"휦"#, r#"휦"#, r#"휦"#),
+        (r#"휧"#, r#"휧"#, r#"휧"#, r#"휧"#, r#"휧"#),
+        (r#"휨"#, r#"휨"#, r#"휨"#, r#"휨"#, r#"휨"#),
+        (r#"휩"#, r#"휩"#, r#"휩"#, r#"휩"#, r#"휩"#),
+        (r#"휪"#, r#"휪"#, r#"휪"#, r#"휪"#, r#"휪"#),
+        (r#"휫"#, r#"휫"#, r#"휫"#, r#"휫"#, r#"휫"#),
+        (r#"휬"#, r#"휬"#, r#"휬"#, r#"휬"#, r#"휬"#),
+        (r#"휭"#, r#"휭"#, r#"휭"#, r#"휭"#, r#"휭"#),
+        (r#"휮"#, r#"휮"#, r#"휮"#, r#"휮"#, r#"휮"#),
+        (r#"휯"#, r#"휯"#, r#"휯"#, r#"휯"#, r#"휯"#),
+        (r#"휰"#, r#"휰"#, r#"휰"#, r#"휰"#, r#"휰"#),
+        (r#"휱"#, r#"휱"#, r#"휱"#, r#"휱"#, r#"휱"#),
+        (r#"휲"#, r#"휲"#, r#"휲"#, r#"휲"#, r#"휲"#),
+        (r#"휳"#, r#"휳"#, r#"휳"#, r#"휳"#, r#"휳"#),
+        (r#"휴"#, r#"휴"#, r#"휴"#, r#"휴"#, r#"휴"#),
+        (r#"휵"#, r#"휵"#, r#"휵"#, r#"휵"#, r#"휵"#),
+        (r#"휶"#, r#"휶"#, r#"휶"#, r#"휶"#, r#"휶"#),
+        (r#"휷"#, r#"휷"#, r#"휷"#, r#"휷"#, r#"휷"#),
+        (r#"휸"#, r#"휸"#, r#"휸"#, r#"휸"#, r#"휸"#),
+        (r#"휹"#, r#"휹"#, r#"휹"#, r#"휹"#, r#"휹"#),
+        (r#"휺"#, r#"휺"#, r#"휺"#, r#"휺"#, r#"휺"#),
+        (r#"휻"#, r#"휻"#, r#"휻"#, r#"휻"#, r#"휻"#),
+        (r#"휼"#, r#"휼"#, r#"휼"#, r#"휼"#, r#"휼"#),
+        (r#"휽"#, r#"휽"#, r#"휽"#, r#"휽"#, r#"휽"#),
+        (r#"휾"#, r#"휾"#, r#"휾"#, r#"휾"#, r#"휾"#),
+        (r#"휿"#, r#"휿"#, r#"휿"#, r#"휿"#, r#"휿"#),
+        (r#"흀"#, r#"흀"#, r#"흀"#, r#"흀"#, r#"흀"#),
+        (r#"흁"#, r#"흁"#, r#"흁"#, r#"흁"#, r#"흁"#),
+        (r#"흂"#, r#"흂"#, r#"흂"#, r#"흂"#, r#"흂"#),
+        (r#"흃"#, r#"흃"#, r#"흃"#, r#"흃"#, r#"흃"#),
+        (r#"흄"#, r#"흄"#, r#"흄"#, r#"흄"#, r#"흄"#),
+        (r#"흅"#, r#"흅"#, r#"흅"#, r#"흅"#, r#"흅"#),
+        (r#"흆"#, r#"흆"#, r#"흆"#, r#"흆"#, r#"흆"#),
+        (r#"흇"#, r#"흇"#, r#"흇"#, r#"흇"#, r#"흇"#),
+        (r#"흈"#, r#"흈"#, r#"흈"#, r#"흈"#, r#"흈"#),
+        (r#"흉"#, r#"흉"#, r#"흉"#, r#"흉"#, r#"흉"#),
+        (r#"흊"#, r#"흊"#, r#"흊"#, r#"흊"#, r#"흊"#),
+        (r#"흋"#, r#"흋"#, r#"흋"#, r#"흋"#, r#"흋"#),
+        (r#"흌"#, r#"흌"#, r#"흌"#, r#"흌"#, r#"흌"#),
+        (r#"흍"#, r#"흍"#, r#"흍"#, r#"흍"#, r#"흍"#),
+        (r#"흎"#, r#"흎"#, r#"흎"#, r#"흎"#, r#"흎"#),
+        (r#"흏"#, r#"흏"#, r#"흏"#, r#"흏"#, r#"흏"#),
+        (r#"흐"#, r#"흐"#, r#"흐"#, r#"흐"#, r#"흐"#),
+        (r#"흑"#, r#"흑"#, r#"흑"#, r#"흑"#, r#"흑"#),
+        (r#"흒"#, r#"흒"#, r#"흒"#, r#"흒"#, r#"흒"#),
+        (r#"흓"#, r#"흓"#, r#"흓"#, r#"흓"#, r#"흓"#),
+        (r#"흔"#, r#"흔"#, r#"흔"#, r#"흔"#, r#"흔"#),
+        (r#"흕"#, r#"흕"#, r#"흕"#, r#"흕"#, r#"흕"#),
+        (r#"흖"#, r#"흖"#, r#"흖"#, r#"흖"#, r#"흖"#),
+        (r#"흗"#, r#"흗"#, r#"흗"#, r#"흗"#, r#"흗"#),
+        (r#"흘"#, r#"흘"#, r#"흘"#, r#"흘"#, r#"흘"#),
+        (r#"흙"#, r#"흙"#, r#"흙"#, r#"흙"#, r#"흙"#),
+        (r#"흚"#, r#"흚"#, r#"흚"#, r#"흚"#, r#"흚"#),
+        (r#"흛"#, r#"흛"#, r#"흛"#, r#"흛"#, r#"흛"#),
+        (r#"흜"#, r#"흜"#, r#"흜"#, r#"흜"#, r#"흜"#),
+        (r#"흝"#, r#"흝"#, r#"흝"#, r#"흝"#, r#"흝"#),
+        (r#"흞"#, r#"흞"#, r#"흞"#, r#"흞"#, r#"흞"#),
+        (r#"흟"#, r#"흟"#, r#"흟"#, r#"흟"#, r#"흟"#),
+        (r#"흠"#, r#"흠"#, r#"흠"#, r#"흠"#, r#"흠"#),
+        (r#"흡"#, r#"흡"#, r#"흡"#, r#"흡"#, r#"흡"#),
+        (r#"흢"#, r#"흢"#, r#"흢"#, r#"흢"#, r#"흢"#),
+        (r#"흣"#, r#"흣"#, r#"흣"#, r#"흣"#, r#"흣"#),
+        (r#"흤"#, r#"흤"#, r#"흤"#, r#"흤"#, r#"흤"#),
+        (r#"흥"#, r#"흥"#, r#"흥"#, r#"흥"#, r#"흥"#),
+        (r#"흦"#, r#"흦"#, r#"흦"#, r#"흦"#, r#"흦"#),
+        (r#"흧"#, r#"흧"#, r#"흧"#, r#"흧"#, r#"흧"#),
+        (r#"흨"#, r#"흨"#, r#"흨"#, r#"흨"#, r#"흨"#),
+        (r#"흩"#, r#"흩"#, r#"흩"#, r#"흩"#, r#"흩"#),
+        (r#"흪"#, r#"흪"#, r#"흪"#, r#"흪"#, r#"흪"#),
+        (r#"흫"#, r#"흫"#, r#"흫"#, r#"흫"#, r#"흫"#),
+        (r#"희"#, r#"희"#, r#"희"#, r#"희"#, r#"희"#),
+        (r#"흭"#, r#"흭"#, r#"흭"#, r#"흭"#, r#"흭"#),
+        (r#"흮"#, r#"흮"#, r#"흮"#, r#"흮"#, r#"흮"#),
+        (r#"흯"#, r#"흯"#, r#"흯"#, r#"흯"#, r#"흯"#),
+        (r#"흰"#, r#"흰"#, r#"흰"#, r#"흰"#, r#"흰"#),
+        (r#"흱"#, r#"흱"#, r#"흱"#, r#"흱"#, r#"흱"#),
+        (r#"흲"#, r#"흲"#, r#"흲"#, r#"흲"#, r#"흲"#),
+        (r#"흳"#, r#"흳"#, r#"흳"#, r#"흳"#, r#"흳"#),
+        (r#"흴"#, r#"흴"#, r#"흴"#, r#"흴"#, r#"흴"#),
+        (r#"흵"#, r#"흵"#, r#"흵"#, r#"흵"#, r#"흵"#),
+        (r#"흶"#, r#"흶"#, r#"흶"#, r#"흶"#, r#"흶"#),
+        (r#"흷"#, r#"흷"#, r#"흷"#, r#"흷"#, r#"흷"#),
+        (r#"흸"#, r#"흸"#, r#"흸"#, r#"흸"#, r#"흸"#),
+        (r#"흹"#, r#"흹"#, r#"흹"#, r#"흹"#, r#"흹"#),
+        (r#"흺"#, r#"흺"#, r#"흺"#, r#"흺"#, r#"흺"#),
+        (r#"흻"#, r#"흻"#, r#"흻"#, r#"흻"#, r#"흻"#),
+        (r#"흼"#, r#"흼"#, r#"흼"#, r#"흼"#, r#"흼"#),
+        (r#"흽"#, r#"흽"#, r#"흽"#, r#"흽"#, r#"흽"#),
+        (r#"흾"#, r#"흾"#, r#"흾"#, r#"흾"#, r#"흾"#),
+        (r#"흿"#, r#"흿"#, r#"흿"#, r#"흿"#, r#"흿"#),
+        (r#"힀"#, r#"힀"#, r#"힀"#, r#"힀"#, r#"힀"#),
+        (r#"힁"#, r#"힁"#, r#"힁"#, r#"힁"#, r#"힁"#),
+        (r#"힂"#, r#"힂"#, r#"힂"#, r#"힂"#, r#"힂"#),
+        (r#"힃"#, r#"힃"#, r#"힃"#, r#"힃"#, r#"힃"#),
+        (r#"힄"#, r#"힄"#, r#"힄"#, r#"힄"#, r#"힄"#),
+        (r#"힅"#, r#"힅"#, r#"힅"#, r#"힅"#, r#"힅"#),
+        (r#"힆"#, r#"힆"#, r#"힆"#, r#"힆"#, r#"힆"#),
+        (r#"힇"#, r#"힇"#, r#"힇"#, r#"힇"#, r#"힇"#),
+        (r#"히"#, r#"히"#, r#"히"#, r#"히"#, r#"히"#),
+        (r#"힉"#, r#"힉"#, r#"힉"#, r#"힉"#, r#"힉"#),
+        (r#"힊"#, r#"힊"#, r#"힊"#, r#"힊"#, r#"힊"#),
+        (r#"힋"#, r#"힋"#, r#"힋"#, r#"힋"#, r#"힋"#),
+        (r#"힌"#, r#"힌"#, r#"힌"#, r#"힌"#, r#"힌"#),
+        (r#"힍"#, r#"힍"#, r#"힍"#, r#"힍"#, r#"힍"#),
+        (r#"힎"#, r#"힎"#, r#"힎"#, r#"힎"#, r#"힎"#),
+        (r#"힏"#, r#"힏"#, r#"힏"#, r#"힏"#, r#"힏"#),
+        (r#"힐"#, r#"힐"#, r#"힐"#, r#"힐"#, r#"힐"#),
+        (r#"힑"#, r#"힑"#, r#"힑"#, r#"힑"#, r#"힑"#),
+        (r#"힒"#, r#"힒"#, r#"힒"#, r#"힒"#, r#"힒"#),
+        (r#"힓"#, r#"힓"#, r#"힓"#, r#"힓"#, r#"힓"#),
+        (r#"힔"#, r#"힔"#, r#"힔"#, r#"힔"#, r#"힔"#),
+        (r#"힕"#, r#"힕"#, r#"힕"#, r#"힕"#, r#"힕"#),
+        (r#"힖"#, r#"힖"#, r#"힖"#, r#"힖"#, r#"힖"#),
+        (r#"힗"#, r#"힗"#, r#"힗"#, r#"힗"#, r#"힗"#),
+        (r#"힘"#, r#"힘"#, r#"힘"#, r#"힘"#, r#"힘"#),
+        (r#"힙"#, r#"힙"#, r#"힙"#, r#"힙"#, r#"힙"#),
+        (r#"힚"#, r#"힚"#, r#"힚"#, r#"힚"#, r#"힚"#),
+        (r#"힛"#, r#"힛"#, r#"힛"#, r#"힛"#, r#"힛"#),
+        (r#"힜"#, r#"힜"#, r#"힜"#, r#"힜"#, r#"힜"#),
+        (r#"힝"#, r#"힝"#, r#"힝"#, r#"힝"#, r#"힝"#),
+        (r#"힞"#, r#"힞"#, r#"힞"#, r#"힞"#, r#"힞"#),
+        (r#"힟"#, r#"힟"#, r#"힟"#, r#"힟"#, r#"힟"#),
+        (r#"힠"#, r#"힠"#, r#"힠"#, r#"힠"#, r#"힠"#),
+        (r#"힡"#, r#"힡"#, r#"힡"#, r#"힡"#, r#"힡"#),
+        (r#"힢"#, r#"힢"#, r#"힢"#, r#"힢"#, r#"힢"#),
+        (r#"힣"#, r#"힣"#, r#"힣"#, r#"힣"#, r#"힣"#),
+        (r#"豈"#, r#"豈"#, r#"豈"#, r#"豈"#, r#"豈"#),
+        (r#"更"#, r#"更"#, r#"更"#, r#"更"#, r#"更"#),
+        (r#"車"#, r#"車"#, r#"車"#, r#"車"#, r#"車"#),
+        (r#"賈"#, r#"賈"#, r#"賈"#, r#"賈"#, r#"賈"#),
+        (r#"滑"#, r#"滑"#, r#"滑"#, r#"滑"#, r#"滑"#),
+        (r#"串"#, r#"串"#, r#"串"#, r#"串"#, r#"串"#),
+        (r#"句"#, r#"句"#, r#"句"#, r#"句"#, r#"句"#),
+        (r#"龜"#, r#"龜"#, r#"龜"#, r#"龜"#, r#"龜"#),
+        (r#"龜"#, r#"龜"#, r#"龜"#, r#"龜"#, r#"龜"#),
+        (r#"契"#, r#"契"#, r#"契"#, r#"契"#, r#"契"#),
+        (r#"金"#, r#"金"#, r#"金"#, r#"金"#, r#"金"#),
+        (r#"喇"#, r#"喇"#, r#"喇"#, r#"喇"#, r#"喇"#),
+        (r#"奈"#, r#"奈"#, r#"奈"#, r#"奈"#, r#"奈"#),
+        (r#"懶"#, r#"懶"#, r#"懶"#, r#"懶"#, r#"懶"#),
+        (r#"癩"#, r#"癩"#, r#"癩"#, r#"癩"#, r#"癩"#),
+        (r#"羅"#, r#"羅"#, r#"羅"#, r#"羅"#, r#"羅"#),
+        (r#"蘿"#, r#"蘿"#, r#"蘿"#, r#"蘿"#, r#"蘿"#),
+        (r#"螺"#, r#"螺"#, r#"螺"#, r#"螺"#, r#"螺"#),
+        (r#"裸"#, r#"裸"#, r#"裸"#, r#"裸"#, r#"裸"#),
+        (r#"邏"#, r#"邏"#, r#"邏"#, r#"邏"#, r#"邏"#),
+        (r#"樂"#, r#"樂"#, r#"樂"#, r#"樂"#, r#"樂"#),
+        (r#"洛"#, r#"洛"#, r#"洛"#, r#"洛"#, r#"洛"#),
+        (r#"烙"#, r#"烙"#, r#"烙"#, r#"烙"#, r#"烙"#),
+        (r#"珞"#, r#"珞"#, r#"珞"#, r#"珞"#, r#"珞"#),
+        (r#"落"#, r#"落"#, r#"落"#, r#"落"#, r#"落"#),
+        (r#"酪"#, r#"酪"#, r#"酪"#, r#"酪"#, r#"酪"#),
+        (r#"駱"#, r#"駱"#, r#"駱"#, r#"駱"#, r#"駱"#),
+        (r#"亂"#, r#"亂"#, r#"亂"#, r#"亂"#, r#"亂"#),
+        (r#"卵"#, r#"卵"#, r#"卵"#, r#"卵"#, r#"卵"#),
+        (r#"欄"#, r#"欄"#, r#"欄"#, r#"欄"#, r#"欄"#),
+        (r#"爛"#, r#"爛"#, r#"爛"#, r#"爛"#, r#"爛"#),
+        (r#"蘭"#, r#"蘭"#, r#"蘭"#, r#"蘭"#, r#"蘭"#),
+        (r#"鸞"#, r#"鸞"#, r#"鸞"#, r#"鸞"#, r#"鸞"#),
+        (r#"嵐"#, r#"嵐"#, r#"嵐"#, r#"嵐"#, r#"嵐"#),
+        (r#"濫"#, r#"濫"#, r#"濫"#, r#"濫"#, r#"濫"#),
+        (r#"藍"#, r#"藍"#, r#"藍"#, r#"藍"#, r#"藍"#),
+        (r#"襤"#, r#"襤"#, r#"襤"#, r#"襤"#, r#"襤"#),
+        (r#"拉"#, r#"拉"#, r#"拉"#, r#"拉"#, r#"拉"#),
+        (r#"臘"#, r#"臘"#, r#"臘"#, r#"臘"#, r#"臘"#),
+        (r#"蠟"#, r#"蠟"#, r#"蠟"#, r#"蠟"#, r#"蠟"#),
+        (r#"廊"#, r#"廊"#, r#"廊"#, r#"廊"#, r#"廊"#),
+        (r#"朗"#, r#"朗"#, r#"朗"#, r#"朗"#, r#"朗"#),
+        (r#"浪"#, r#"浪"#, r#"浪"#, r#"浪"#, r#"浪"#),
+        (r#"狼"#, r#"狼"#, r#"狼"#, r#"狼"#, r#"狼"#),
+        (r#"郎"#, r#"郎"#, r#"郎"#, r#"郎"#, r#"郎"#),
+        (r#"來"#, r#"來"#, r#"來"#, r#"來"#, r#"來"#),
+        (r#"冷"#, r#"冷"#, r#"冷"#, r#"冷"#, r#"冷"#),
+        (r#"勞"#, r#"勞"#, r#"勞"#, r#"勞"#, r#"勞"#),
+        (r#"擄"#, r#"擄"#, r#"擄"#, r#"擄"#, r#"擄"#),
+        (r#"櫓"#, r#"櫓"#, r#"櫓"#, r#"櫓"#, r#"櫓"#),
+        (r#"爐"#, r#"爐"#, r#"爐"#, r#"爐"#, r#"爐"#),
+        (r#"盧"#, r#"盧"#, r#"盧"#, r#"盧"#, r#"盧"#),
+        (r#"老"#, r#"老"#, r#"老"#, r#"老"#, r#"老"#),
+        (r#"蘆"#, r#"蘆"#, r#"蘆"#, r#"蘆"#, r#"蘆"#),
+        (r#"虜"#, r#"虜"#, r#"虜"#, r#"虜"#, r#"虜"#),
+        (r#"路"#, r#"路"#, r#"路"#, r#"路"#, r#"路"#),
+        (r#"露"#, r#"露"#, r#"露"#, r#"露"#, r#"露"#),
+        (r#"魯"#, r#"魯"#, r#"魯"#, r#"魯"#, r#"魯"#),
+        (r#"鷺"#, r#"鷺"#, r#"鷺"#, r#"鷺"#, r#"鷺"#),
+        (r#"碌"#, r#"碌"#, r#"碌"#, r#"碌"#, r#"碌"#),
+        (r#"祿"#, r#"祿"#, r#"祿"#, r#"祿"#, r#"祿"#),
+        (r#"綠"#, r#"綠"#, r#"綠"#, r#"綠"#, r#"綠"#),
+        (r#"菉"#, r#"菉"#, r#"菉"#, r#"菉"#, r#"菉"#),
+        (r#"錄"#, r#"錄"#, r#"錄"#, r#"錄"#, r#"錄"#),
+        (r#"鹿"#, r#"鹿"#, r#"鹿"#, r#"鹿"#, r#"鹿"#),
+        (r#"論"#, r#"論"#, r#"論"#, r#"論"#, r#"論"#),
+        (r#"壟"#, r#"壟"#, r#"壟"#, r#"壟"#, r#"壟"#),
+        (r#"弄"#, r#"弄"#, r#"弄"#, r#"弄"#, r#"弄"#),
+        (r#"籠"#, r#"籠"#, r#"籠"#, r#"籠"#, r#"籠"#),
+        (r#"聾"#, r#"聾"#, r#"聾"#, r#"聾"#, r#"聾"#),
+        (r#"牢"#, r#"牢"#, r#"牢"#, r#"牢"#, r#"牢"#),
+        (r#"磊"#, r#"磊"#, r#"磊"#, r#"磊"#, r#"磊"#),
+        (r#"賂"#, r#"賂"#, r#"賂"#, r#"賂"#, r#"賂"#),
+        (r#"雷"#, r#"雷"#, r#"雷"#, r#"雷"#, r#"雷"#),
+        (r#"壘"#, r#"壘"#, r#"壘"#, r#"壘"#, r#"壘"#),
+        (r#"屢"#, r#"屢"#, r#"屢"#, r#"屢"#, r#"屢"#),
+        (r#"樓"#, r#"樓"#, r#"樓"#, r#"樓"#, r#"樓"#),
+        (r#"淚"#, r#"淚"#, r#"淚"#, r#"淚"#, r#"淚"#),
+        (r#"漏"#, r#"漏"#, r#"漏"#, r#"漏"#, r#"漏"#),
+        (r#"累"#, r#"累"#, r#"累"#, r#"累"#, r#"累"#),
+        (r#"縷"#, r#"縷"#, r#"縷"#, r#"縷"#, r#"縷"#),
+        (r#"陋"#, r#"陋"#, r#"陋"#, r#"陋"#, r#"陋"#),
+        (r#"勒"#, r#"勒"#, r#"勒"#, r#"勒"#, r#"勒"#),
+        (r#"肋"#, r#"肋"#, r#"肋"#, r#"肋"#, r#"肋"#),
+        (r#"凜"#, r#"凜"#, r#"凜"#, r#"凜"#, r#"凜"#),
+        (r#"凌"#, r#"凌"#, r#"凌"#, r#"凌"#, r#"凌"#),
+        (r#"稜"#, r#"稜"#, r#"稜"#, r#"稜"#, r#"稜"#),
+        (r#"綾"#, r#"綾"#, r#"綾"#, r#"綾"#, r#"綾"#),
+        (r#"菱"#, r#"菱"#, r#"菱"#, r#"菱"#, r#"菱"#),
+        (r#"陵"#, r#"陵"#, r#"陵"#, r#"陵"#, r#"陵"#),
+        (r#"讀"#, r#"讀"#, r#"讀"#, r#"讀"#, r#"讀"#),
+        (r#"拏"#, r#"拏"#, r#"拏"#, r#"拏"#, r#"拏"#),
+        (r#"樂"#, r#"樂"#, r#"樂"#, r#"樂"#, r#"樂"#),
+        (r#"諾"#, r#"諾"#, r#"諾"#, r#"諾"#, r#"諾"#),
+        (r#"丹"#, r#"丹"#, r#"丹"#, r#"丹"#, r#"丹"#),
+        (r#"寧"#, r#"寧"#, r#"寧"#, r#"寧"#, r#"寧"#),
+        (r#"怒"#, r#"怒"#, r#"怒"#, r#"怒"#, r#"怒"#),
+        (r#"率"#, r#"率"#, r#"率"#, r#"率"#, r#"率"#),
+        (r#"異"#, r#"異"#, r#"異"#, r#"異"#, r#"異"#),
+        (r#"北"#, r#"北"#, r#"北"#, r#"北"#, r#"北"#),
+        (r#"磻"#, r#"磻"#, r#"磻"#, r#"磻"#, r#"磻"#),
+        (r#"便"#, r#"便"#, r#"便"#, r#"便"#, r#"便"#),
+        (r#"復"#, r#"復"#, r#"復"#, r#"復"#, r#"復"#),
+        (r#"不"#, r#"不"#, r#"不"#, r#"不"#, r#"不"#),
+        (r#"泌"#, r#"泌"#, r#"泌"#, r#"泌"#, r#"泌"#),
+        (r#"數"#, r#"數"#, r#"數"#, r#"數"#, r#"數"#),
+        (r#"索"#, r#"索"#, r#"索"#, r#"索"#, r#"索"#),
+        (r#"參"#, r#"參"#, r#"參"#, r#"參"#, r#"參"#),
+        (r#"塞"#, r#"塞"#, r#"塞"#, r#"塞"#, r#"塞"#),
+        (r#"省"#, r#"省"#, r#"省"#, r#"省"#, r#"省"#),
+        (r#"葉"#, r#"葉"#, r#"葉"#, r#"葉"#, r#"葉"#),
+        (r#"說"#, r#"說"#, r#"說"#, r#"說"#, r#"說"#),
+        (r#"殺"#, r#"殺"#, r#"殺"#, r#"殺"#, r#"殺"#),
+        (r#"辰"#, r#"辰"#, r#"辰"#, r#"辰"#, r#"辰"#),
+        (r#"沈"#, r#"沈"#, r#"沈"#, r#"沈"#, r#"沈"#),
+        (r#"拾"#, r#"拾"#, r#"拾"#, r#"拾"#, r#"拾"#),
+        (r#"若"#, r#"若"#, r#"若"#, r#"若"#, r#"若"#),
+        (r#"掠"#, r#"掠"#, r#"掠"#, r#"掠"#, r#"掠"#),
+        (r#"略"#, r#"略"#, r#"略"#, r#"略"#, r#"略"#),
+        (r#"亮"#, r#"亮"#, r#"亮"#, r#"亮"#, r#"亮"#),
+        (r#"兩"#, r#"兩"#, r#"兩"#, r#"兩"#, r#"兩"#),
+        (r#"凉"#, r#"凉"#, r#"凉"#, r#"凉"#, r#"凉"#),
+        (r#"梁"#, r#"梁"#, r#"梁"#, r#"梁"#, r#"梁"#),
+        (r#"糧"#, r#"糧"#, r#"糧"#, r#"糧"#, r#"糧"#),
+        (r#"良"#, r#"良"#, r#"良"#, r#"良"#, r#"良"#),
+        (r#"諒"#, r#"諒"#, r#"諒"#, r#"諒"#, r#"諒"#),
+        (r#"量"#, r#"量"#, r#"量"#, r#"量"#, r#"量"#),
+        (r#"勵"#, r#"勵"#, r#"勵"#, r#"勵"#, r#"勵"#),
+        (r#"呂"#, r#"呂"#, r#"呂"#, r#"呂"#, r#"呂"#),
+        (r#"女"#, r#"女"#, r#"女"#, r#"女"#, r#"女"#),
+        (r#"廬"#, r#"廬"#, r#"廬"#, r#"廬"#, r#"廬"#),
+        (r#"旅"#, r#"旅"#, r#"旅"#, r#"旅"#, r#"旅"#),
+        (r#"濾"#, r#"濾"#, r#"濾"#, r#"濾"#, r#"濾"#),
+        (r#"礪"#, r#"礪"#, r#"礪"#, r#"礪"#, r#"礪"#),
+        (r#"閭"#, r#"閭"#, r#"閭"#, r#"閭"#, r#"閭"#),
+        (r#"驪"#, r#"驪"#, r#"驪"#, r#"驪"#, r#"驪"#),
+        (r#"麗"#, r#"麗"#, r#"麗"#, r#"麗"#, r#"麗"#),
+        (r#"黎"#, r#"黎"#, r#"黎"#, r#"黎"#, r#"黎"#),
+        (r#"力"#, r#"力"#, r#"力"#, r#"力"#, r#"力"#),
+        (r#"曆"#, r#"曆"#, r#"曆"#, r#"曆"#, r#"曆"#),
+        (r#"歷"#, r#"歷"#, r#"歷"#, r#"歷"#, r#"歷"#),
+        (r#"轢"#, r#"轢"#, r#"轢"#, r#"轢"#, r#"轢"#),
+        (r#"年"#, r#"年"#, r#"年"#, r#"年"#, r#"年"#),
+        (r#"憐"#, r#"憐"#, r#"憐"#, r#"憐"#, r#"憐"#),
+        (r#"戀"#, r#"戀"#, r#"戀"#, r#"戀"#, r#"戀"#),
+        (r#"撚"#, r#"撚"#, r#"撚"#, r#"撚"#, r#"撚"#),
+        (r#"漣"#, r#"漣"#, r#"漣"#, r#"漣"#, r#"漣"#),
+        (r#"煉"#, r#"煉"#, r#"煉"#, r#"煉"#, r#"煉"#),
+        (r#"璉"#, r#"璉"#, r#"璉"#, r#"璉"#, r#"璉"#),
+        (r#"秊"#, r#"秊"#, r#"秊"#, r#"秊"#, r#"秊"#),
+        (r#"練"#, r#"練"#, r#"練"#, r#"練"#, r#"練"#),
+        (r#"聯"#, r#"聯"#, r#"聯"#, r#"聯"#, r#"聯"#),
+        (r#"輦"#, r#"輦"#, r#"輦"#, r#"輦"#, r#"輦"#),
+        (r#"蓮"#, r#"蓮"#, r#"蓮"#, r#"蓮"#, r#"蓮"#),
+        (r#"連"#, r#"連"#, r#"連"#, r#"連"#, r#"連"#),
+        (r#"鍊"#, r#"鍊"#, r#"鍊"#, r#"鍊"#, r#"鍊"#),
+        (r#"列"#, r#"列"#, r#"列"#, r#"列"#, r#"列"#),
+        (r#"劣"#, r#"劣"#, r#"劣"#, r#"劣"#, r#"劣"#),
+        (r#"咽"#, r#"咽"#, r#"咽"#, r#"咽"#, r#"咽"#),
+        (r#"烈"#, r#"烈"#, r#"烈"#, r#"烈"#, r#"烈"#),
+        (r#"裂"#, r#"裂"#, r#"裂"#, r#"裂"#, r#"裂"#),
+        (r#"說"#, r#"說"#, r#"說"#, r#"說"#, r#"說"#),
+        (r#"廉"#, r#"廉"#, r#"廉"#, r#"廉"#, r#"廉"#),
+        (r#"念"#, r#"念"#, r#"念"#, r#"念"#, r#"念"#),
+        (r#"捻"#, r#"捻"#, r#"捻"#, r#"捻"#, r#"捻"#),
+        (r#"殮"#, r#"殮"#, r#"殮"#, r#"殮"#, r#"殮"#),
+        (r#"簾"#, r#"簾"#, r#"簾"#, r#"簾"#, r#"簾"#),
+        (r#"獵"#, r#"獵"#, r#"獵"#, r#"獵"#, r#"獵"#),
+        (r#"令"#, r#"令"#, r#"令"#, r#"令"#, r#"令"#),
+        (r#"囹"#, r#"囹"#, r#"囹"#, r#"囹"#, r#"囹"#),
+        (r#"寧"#, r#"寧"#, r#"寧"#, r#"寧"#, r#"寧"#),
+        (r#"嶺"#, r#"嶺"#, r#"嶺"#, r#"嶺"#, r#"嶺"#),
+        (r#"怜"#, r#"怜"#, r#"怜"#, r#"怜"#, r#"怜"#),
+        (r#"玲"#, r#"玲"#, r#"玲"#, r#"玲"#, r#"玲"#),
+        (r#"瑩"#, r#"瑩"#, r#"瑩"#, r#"瑩"#, r#"瑩"#),
+        (r#"羚"#, r#"羚"#, r#"羚"#, r#"羚"#, r#"羚"#),
+        (r#"聆"#, r#"聆"#, r#"聆"#, r#"聆"#, r#"聆"#),
+        (r#"鈴"#, r#"鈴"#, r#"鈴"#, r#"鈴"#, r#"鈴"#),
+        (r#"零"#, r#"零"#, r#"零"#, r#"零"#, r#"零"#),
+        (r#"靈"#, r#"靈"#, r#"靈"#, r#"靈"#, r#"靈"#),
+        (r#"領"#, r#"領"#, r#"領"#, r#"領"#, r#"領"#),
+        (r#"例"#, r#"例"#, r#"例"#, r#"例"#, r#"例"#),
+        (r#"禮"#, r#"禮"#, r#"禮"#, r#"禮"#, r#"禮"#),
+        (r#"醴"#, r#"醴"#, r#"醴"#, r#"醴"#, r#"醴"#),
+        (r#"隸"#, r#"隸"#, r#"隸"#, r#"隸"#, r#"隸"#),
+        (r#"惡"#, r#"惡"#, r#"惡"#, r#"惡"#, r#"惡"#),
+        (r#"了"#, r#"了"#, r#"了"#, r#"了"#, r#"了"#),
+        (r#"僚"#, r#"僚"#, r#"僚"#, r#"僚"#, r#"僚"#),
+        (r#"寮"#, r#"寮"#, r#"寮"#, r#"寮"#, r#"寮"#),
+        (r#"尿"#, r#"尿"#, r#"尿"#, r#"尿"#, r#"尿"#),
+        (r#"料"#, r#"料"#, r#"料"#, r#"料"#, r#"料"#),
+        (r#"樂"#, r#"樂"#, r#"樂"#, r#"樂"#, r#"樂"#),
+        (r#"燎"#, r#"燎"#, r#"燎"#, r#"燎"#, r#"燎"#),
+        (r#"療"#, r#"療"#, r#"療"#, r#"療"#, r#"療"#),
+        (r#"蓼"#, r#"蓼"#, r#"蓼"#, r#"蓼"#, r#"蓼"#),
+        (r#"遼"#, r#"遼"#, r#"遼"#, r#"遼"#, r#"遼"#),
+        (r#"龍"#, r#"龍"#, r#"龍"#, r#"龍"#, r#"龍"#),
+        (r#"暈"#, r#"暈"#, r#"暈"#, r#"暈"#, r#"暈"#),
+        (r#"阮"#, r#"阮"#, r#"阮"#, r#"阮"#, r#"阮"#),
+        (r#"劉"#, r#"劉"#, r#"劉"#, r#"劉"#, r#"劉"#),
+        (r#"杻"#, r#"杻"#, r#"杻"#, r#"杻"#, r#"杻"#),
+        (r#"柳"#, r#"柳"#, r#"柳"#, r#"柳"#, r#"柳"#),
+        (r#"流"#, r#"流"#, r#"流"#, r#"流"#, r#"流"#),
+        (r#"溜"#, r#"溜"#, r#"溜"#, r#"溜"#, r#"溜"#),
+        (r#"琉"#, r#"琉"#, r#"琉"#, r#"琉"#, r#"琉"#),
+        (r#"留"#, r#"留"#, r#"留"#, r#"留"#, r#"留"#),
+        (r#"硫"#, r#"硫"#, r#"硫"#, r#"硫"#, r#"硫"#),
+        (r#"紐"#, r#"紐"#, r#"紐"#, r#"紐"#, r#"紐"#),
+        (r#"類"#, r#"類"#, r#"類"#, r#"類"#, r#"類"#),
+        (r#"六"#, r#"六"#, r#"六"#, r#"六"#, r#"六"#),
+        (r#"戮"#, r#"戮"#, r#"戮"#, r#"戮"#, r#"戮"#),
+        (r#"陸"#, r#"陸"#, r#"陸"#, r#"陸"#, r#"陸"#),
+        (r#"倫"#, r#"倫"#, r#"倫"#, r#"倫"#, r#"倫"#),
+        (r#"崙"#, r#"崙"#, r#"崙"#, r#"崙"#, r#"崙"#),
+        (r#"淪"#, r#"淪"#, r#"淪"#, r#"淪"#, r#"淪"#),
+        (r#"輪"#, r#"輪"#, r#"輪"#, r#"輪"#, r#"輪"#),
+        (r#"律"#, r#"律"#, r#"律"#, r#"律"#, r#"律"#),
+        (r#"慄"#, r#"慄"#, r#"慄"#, r#"慄"#, r#"慄"#),
+        (r#"栗"#, r#"栗"#, r#"栗"#, r#"栗"#, r#"栗"#),
+        (r#"率"#, r#"率"#, r#"率"#, r#"率"#, r#"率"#),
+        (r#"隆"#, r#"隆"#, r#"隆"#, r#"隆"#, r#"隆"#),
+        (r#"利"#, r#"利"#, r#"利"#, r#"利"#, r#"利"#),
+        (r#"吏"#, r#"吏"#, r#"吏"#, r#"吏"#, r#"吏"#),
+        (r#"履"#, r#"履"#, r#"履"#, r#"履"#, r#"履"#),
+        (r#"易"#, r#"易"#, r#"易"#, r#"易"#, r#"易"#),
+        (r#"李"#, r#"李"#, r#"李"#, r#"李"#, r#"李"#),
+        (r#"梨"#, r#"梨"#, r#"梨"#, r#"梨"#, r#"梨"#),
+        (r#"泥"#, r#"泥"#, r#"泥"#, r#"泥"#, r#"泥"#),
+        (r#"理"#, r#"理"#, r#"理"#, r#"理"#, r#"理"#),
+        (r#"痢"#, r#"痢"#, r#"痢"#, r#"痢"#, r#"痢"#),
+        (r#"罹"#, r#"罹"#, r#"罹"#, r#"罹"#, r#"罹"#),
+        (r#"裏"#, r#"裏"#, r#"裏"#, r#"裏"#, r#"裏"#),
+        (r#"裡"#, r#"裡"#, r#"裡"#, r#"裡"#, r#"裡"#),
+        (r#"里"#, r#"里"#, r#"里"#, r#"里"#, r#"里"#),
+        (r#"離"#, r#"離"#, r#"離"#, r#"離"#, r#"離"#),
+        (r#"匿"#, r#"匿"#, r#"匿"#, r#"匿"#, r#"匿"#),
+        (r#"溺"#, r#"溺"#, r#"溺"#, r#"溺"#, r#"溺"#),
+        (r#"吝"#, r#"吝"#, r#"吝"#, r#"吝"#, r#"吝"#),
+        (r#"燐"#, r#"燐"#, r#"燐"#, r#"燐"#, r#"燐"#),
+        (r#"璘"#, r#"璘"#, r#"璘"#, r#"璘"#, r#"璘"#),
+        (r#"藺"#, r#"藺"#, r#"藺"#, r#"藺"#, r#"藺"#),
+        (r#"隣"#, r#"隣"#, r#"隣"#, r#"隣"#, r#"隣"#),
+        (r#"鱗"#, r#"鱗"#, r#"鱗"#, r#"鱗"#, r#"鱗"#),
+        (r#"麟"#, r#"麟"#, r#"麟"#, r#"麟"#, r#"麟"#),
+        (r#"林"#, r#"林"#, r#"林"#, r#"林"#, r#"林"#),
+        (r#"淋"#, r#"淋"#, r#"淋"#, r#"淋"#, r#"淋"#),
+        (r#"臨"#, r#"臨"#, r#"臨"#, r#"臨"#, r#"臨"#),
+        (r#"立"#, r#"立"#, r#"立"#, r#"立"#, r#"立"#),
+        (r#"笠"#, r#"笠"#, r#"笠"#, r#"笠"#, r#"笠"#),
+        (r#"粒"#, r#"粒"#, r#"粒"#, r#"粒"#, r#"粒"#),
+        (r#"狀"#, r#"狀"#, r#"狀"#, r#"狀"#, r#"狀"#),
+        (r#"炙"#, r#"炙"#, r#"炙"#, r#"炙"#, r#"炙"#),
+        (r#"識"#, r#"識"#, r#"識"#, r#"識"#, r#"識"#),
+        (r#"什"#, r#"什"#, r#"什"#, r#"什"#, r#"什"#),
+        (r#"茶"#, r#"茶"#, r#"茶"#, r#"茶"#, r#"茶"#),
+        (r#"刺"#, r#"刺"#, r#"刺"#, r#"刺"#, r#"刺"#),
+        (r#"切"#, r#"切"#, r#"切"#, r#"切"#, r#"切"#),
+        (r#"度"#, r#"度"#, r#"度"#, r#"度"#, r#"度"#),
+        (r#"拓"#, r#"拓"#, r#"拓"#, r#"拓"#, r#"拓"#),
+        (r#"糖"#, r#"糖"#, r#"糖"#, r#"糖"#, r#"糖"#),
+        (r#"宅"#, r#"宅"#, r#"宅"#, r#"宅"#, r#"宅"#),
+        (r#"洞"#, r#"洞"#, r#"洞"#, r#"洞"#, r#"洞"#),
+        (r#"暴"#, r#"暴"#, r#"暴"#, r#"暴"#, r#"暴"#),
+        (r#"輻"#, r#"輻"#, r#"輻"#, r#"輻"#, r#"輻"#),
+        (r#"行"#, r#"行"#, r#"行"#, r#"行"#, r#"行"#),
+        (r#"降"#, r#"降"#, r#"降"#, r#"降"#, r#"降"#),
+        (r#"見"#, r#"見"#, r#"見"#, r#"見"#, r#"見"#),
+        (r#"廓"#, r#"廓"#, r#"廓"#, r#"廓"#, r#"廓"#),
+        (r#"兀"#, r#"兀"#, r#"兀"#, r#"兀"#, r#"兀"#),
+        (r#"嗀"#, r#"嗀"#, r#"嗀"#, r#"嗀"#, r#"嗀"#),
+        (r#"塚"#, r#"塚"#, r#"塚"#, r#"塚"#, r#"塚"#),
+        (r#"晴"#, r#"晴"#, r#"晴"#, r#"晴"#, r#"晴"#),
+        (r#"凞"#, r#"凞"#, r#"凞"#, r#"凞"#, r#"凞"#),
+        (r#"猪"#, r#"猪"#, r#"猪"#, r#"猪"#, r#"猪"#),
+        (r#"益"#, r#"益"#, r#"益"#, r#"益"#, r#"益"#),
+        (r#"礼"#, r#"礼"#, r#"礼"#, r#"礼"#, r#"礼"#),
+        (r#"神"#, r#"神"#, r#"神"#, r#"神"#, r#"神"#),
+        (r#"祥"#, r#"祥"#, r#"祥"#, r#"祥"#, r#"祥"#),
+        (r#"福"#, r#"福"#, r#"福"#, r#"福"#, r#"福"#),
+        (r#"靖"#, r#"靖"#, r#"靖"#, r#"靖"#, r#"靖"#),
+        (r#"精"#, r#"精"#, r#"精"#, r#"精"#, r#"精"#),
+        (r#"羽"#, r#"羽"#, r#"羽"#, r#"羽"#, r#"羽"#),
+        (r#"蘒"#, r#"蘒"#, r#"蘒"#, r#"蘒"#, r#"蘒"#),
+        (r#"諸"#, r#"諸"#, r#"諸"#, r#"諸"#, r#"諸"#),
+        (r#"逸"#, r#"逸"#, r#"逸"#, r#"逸"#, r#"逸"#),
+        (r#"都"#, r#"都"#, r#"都"#, r#"都"#, r#"都"#),
+        (r#"飯"#, r#"飯"#, r#"飯"#, r#"飯"#, r#"飯"#),
+        (r#"飼"#, r#"飼"#, r#"飼"#, r#"飼"#, r#"飼"#),
+        (r#"館"#, r#"館"#, r#"館"#, r#"館"#, r#"館"#),
+        (r#"鶴"#, r#"鶴"#, r#"鶴"#, r#"鶴"#, r#"鶴"#),
+        (r#"郞"#, r#"郞"#, r#"郞"#, r#"郞"#, r#"郞"#),
+        (r#"隷"#, r#"隷"#, r#"隷"#, r#"隷"#, r#"隷"#),
+        (r#"侮"#, r#"侮"#, r#"侮"#, r#"侮"#, r#"侮"#),
+        (r#"僧"#, r#"僧"#, r#"僧"#, r#"僧"#, r#"僧"#),
+        (r#"免"#, r#"免"#, r#"免"#, r#"免"#, r#"免"#),
+        (r#"勉"#, r#"勉"#, r#"勉"#, r#"勉"#, r#"勉"#),
+        (r#"勤"#, r#"勤"#, r#"勤"#, r#"勤"#, r#"勤"#),
+        (r#"卑"#, r#"卑"#, r#"卑"#, r#"卑"#, r#"卑"#),
+        (r#"喝"#, r#"喝"#, r#"喝"#, r#"喝"#, r#"喝"#),
+        (r#"嘆"#, r#"嘆"#, r#"嘆"#, r#"嘆"#, r#"嘆"#),
+        (r#"器"#, r#"器"#, r#"器"#, r#"器"#, r#"器"#),
+        (r#"塀"#, r#"塀"#, r#"塀"#, r#"塀"#, r#"塀"#),
+        (r#"墨"#, r#"墨"#, r#"墨"#, r#"墨"#, r#"墨"#),
+        (r#"層"#, r#"層"#, r#"層"#, r#"層"#, r#"層"#),
+        (r#"屮"#, r#"屮"#, r#"屮"#, r#"屮"#, r#"屮"#),
+        (r#"悔"#, r#"悔"#, r#"悔"#, r#"悔"#, r#"悔"#),
+        (r#"慨"#, r#"慨"#, r#"慨"#, r#"慨"#, r#"慨"#),
+        (r#"憎"#, r#"憎"#, r#"憎"#, r#"憎"#, r#"憎"#),
+        (r#"懲"#, r#"懲"#, r#"懲"#, r#"懲"#, r#"懲"#),
+        (r#"敏"#, r#"敏"#, r#"敏"#, r#"敏"#, r#"敏"#),
+        (r#"既"#, r#"既"#, r#"既"#, r#"既"#, r#"既"#),
+        (r#"暑"#, r#"暑"#, r#"暑"#, r#"暑"#, r#"暑"#),
+        (r#"梅"#, r#"梅"#, r#"梅"#, r#"梅"#, r#"梅"#),
+        (r#"海"#, r#"海"#, r#"海"#, r#"海"#, r#"海"#),
+        (r#"渚"#, r#"渚"#, r#"渚"#, r#"渚"#, r#"渚"#),
+        (r#"漢"#, r#"漢"#, r#"漢"#, r#"漢"#, r#"漢"#),
+        (r#"煮"#, r#"煮"#, r#"煮"#, r#"煮"#, r#"煮"#),
+        (r#"爫"#, r#"爫"#, r#"爫"#, r#"爫"#, r#"爫"#),
+        (r#"琢"#, r#"琢"#, r#"琢"#, r#"琢"#, r#"琢"#),
+        (r#"碑"#, r#"碑"#, r#"碑"#, r#"碑"#, r#"碑"#),
+        (r#"社"#, r#"社"#, r#"社"#, r#"社"#, r#"社"#),
+        (r#"祉"#, r#"祉"#, r#"祉"#, r#"祉"#, r#"祉"#),
+        (r#"祈"#, r#"祈"#, r#"祈"#, r#"祈"#, r#"祈"#),
+        (r#"祐"#, r#"祐"#, r#"祐"#, r#"祐"#, r#"祐"#),
+        (r#"祖"#, r#"祖"#, r#"祖"#, r#"祖"#, r#"祖"#),
+        (r#"祝"#, r#"祝"#, r#"祝"#, r#"祝"#, r#"祝"#),
+        (r#"禍"#, r#"禍"#, r#"禍"#, r#"禍"#, r#"禍"#),
+        (r#"禎"#, r#"禎"#, r#"禎"#, r#"禎"#, r#"禎"#),
+        (r#"穀"#, r#"穀"#, r#"穀"#, r#"穀"#, r#"穀"#),
+        (r#"突"#, r#"突"#, r#"突"#, r#"突"#, r#"突"#),
+        (r#"節"#, r#"節"#, r#"節"#, r#"節"#, r#"節"#),
+        (r#"練"#, r#"練"#, r#"練"#, r#"練"#, r#"練"#),
+        (r#"縉"#, r#"縉"#, r#"縉"#, r#"縉"#, r#"縉"#),
+        (r#"繁"#, r#"繁"#, r#"繁"#, r#"繁"#, r#"繁"#),
+        (r#"署"#, r#"署"#, r#"署"#, r#"署"#, r#"署"#),
+        (r#"者"#, r#"者"#, r#"者"#, r#"者"#, r#"者"#),
+        (r#"臭"#, r#"臭"#, r#"臭"#, r#"臭"#, r#"臭"#),
+        (r#"艹"#, r#"艹"#, r#"艹"#, r#"艹"#, r#"艹"#),
+        (r#"艹"#, r#"艹"#, r#"艹"#, r#"艹"#, r#"艹"#),
+        (r#"著"#, r#"著"#, r#"著"#, r#"著"#, r#"著"#),
+        (r#"褐"#, r#"褐"#, r#"褐"#, r#"褐"#, r#"褐"#),
+        (r#"視"#, r#"視"#, r#"視"#, r#"視"#, r#"視"#),
+        (r#"謁"#, r#"謁"#, r#"謁"#, r#"謁"#, r#"謁"#),
+        (r#"謹"#, r#"謹"#, r#"謹"#, r#"謹"#, r#"謹"#),
+        (r#"賓"#, r#"賓"#, r#"賓"#, r#"賓"#, r#"賓"#),
+        (r#"贈"#, r#"贈"#, r#"贈"#, r#"贈"#, r#"贈"#),
+        (r#"辶"#, r#"辶"#, r#"辶"#, r#"辶"#, r#"辶"#),
+        (r#"逸"#, r#"逸"#, r#"逸"#, r#"逸"#, r#"逸"#),
+        (r#"難"#, r#"難"#, r#"難"#, r#"難"#, r#"難"#),
+        (r#"響"#, r#"響"#, r#"響"#, r#"響"#, r#"響"#),
+        (r#"頻"#, r#"頻"#, r#"頻"#, r#"頻"#, r#"頻"#),
+        (r#"恵"#, r#"恵"#, r#"恵"#, r#"恵"#, r#"恵"#),
+        (r#"𤋮"#, r#"𤋮"#, r#"𤋮"#, r#"𤋮"#, r#"𤋮"#),
+        (r#"舘"#, r#"舘"#, r#"舘"#, r#"舘"#, r#"舘"#),
+        (r#"並"#, r#"並"#, r#"並"#, r#"並"#, r#"並"#),
+        (r#"况"#, r#"况"#, r#"况"#, r#"况"#, r#"况"#),
+        (r#"全"#, r#"全"#, r#"全"#, r#"全"#, r#"全"#),
+        (r#"侀"#, r#"侀"#, r#"侀"#, r#"侀"#, r#"侀"#),
+        (r#"充"#, r#"充"#, r#"充"#, r#"充"#, r#"充"#),
+        (r#"冀"#, r#"冀"#, r#"冀"#, r#"冀"#, r#"冀"#),
+        (r#"勇"#, r#"勇"#, r#"勇"#, r#"勇"#, r#"勇"#),
+        (r#"勺"#, r#"勺"#, r#"勺"#, r#"勺"#, r#"勺"#),
+        (r#"喝"#, r#"喝"#, r#"喝"#, r#"喝"#, r#"喝"#),
+        (r#"啕"#, r#"啕"#, r#"啕"#, r#"啕"#, r#"啕"#),
+        (r#"喙"#, r#"喙"#, r#"喙"#, r#"喙"#, r#"喙"#),
+        (r#"嗢"#, r#"嗢"#, r#"嗢"#, r#"嗢"#, r#"嗢"#),
+        (r#"塚"#, r#"塚"#, r#"塚"#, r#"塚"#, r#"塚"#),
+        (r#"墳"#, r#"墳"#, r#"墳"#, r#"墳"#, r#"墳"#),
+        (r#"奄"#, r#"奄"#, r#"奄"#, r#"奄"#, r#"奄"#),
+        (r#"奔"#, r#"奔"#, r#"奔"#, r#"奔"#, r#"奔"#),
+        (r#"婢"#, r#"婢"#, r#"婢"#, r#"婢"#, r#"婢"#),
+        (r#"嬨"#, r#"嬨"#, r#"嬨"#, r#"嬨"#, r#"嬨"#),
+        (r#"廒"#, r#"廒"#, r#"廒"#, r#"廒"#, r#"廒"#),
+        (r#"廙"#, r#"廙"#, r#"廙"#, r#"廙"#, r#"廙"#),
+        (r#"彩"#, r#"彩"#, r#"彩"#, r#"彩"#, r#"彩"#),
+        (r#"徭"#, r#"徭"#, r#"徭"#, r#"徭"#, r#"徭"#),
+        (r#"惘"#, r#"惘"#, r#"惘"#, r#"惘"#, r#"惘"#),
+        (r#"慎"#, r#"慎"#, r#"慎"#, r#"慎"#, r#"慎"#),
+        (r#"愈"#, r#"愈"#, r#"愈"#, r#"愈"#, r#"愈"#),
+        (r#"憎"#, r#"憎"#, r#"憎"#, r#"憎"#, r#"憎"#),
+        (r#"慠"#, r#"慠"#, r#"慠"#, r#"慠"#, r#"慠"#),
+        (r#"懲"#, r#"懲"#, r#"懲"#, r#"懲"#, r#"懲"#),
+        (r#"戴"#, r#"戴"#, r#"戴"#, r#"戴"#, r#"戴"#),
+        (r#"揄"#, r#"揄"#, r#"揄"#, r#"揄"#, r#"揄"#),
+        (r#"搜"#, r#"搜"#, r#"搜"#, r#"搜"#, r#"搜"#),
+        (r#"摒"#, r#"摒"#, r#"摒"#, r#"摒"#, r#"摒"#),
+        (r#"敖"#, r#"敖"#, r#"敖"#, r#"敖"#, r#"敖"#),
+        (r#"晴"#, r#"晴"#, r#"晴"#, r#"晴"#, r#"晴"#),
+        (r#"朗"#, r#"朗"#, r#"朗"#, r#"朗"#, r#"朗"#),
+        (r#"望"#, r#"望"#, r#"望"#, r#"望"#, r#"望"#),
+        (r#"杖"#, r#"杖"#, r#"杖"#, r#"杖"#, r#"杖"#),
+        (r#"歹"#, r#"歹"#, r#"歹"#, r#"歹"#, r#"歹"#),
+        (r#"殺"#, r#"殺"#, r#"殺"#, r#"殺"#, r#"殺"#),
+        (r#"流"#, r#"流"#, r#"流"#, r#"流"#, r#"流"#),
+        (r#"滛"#, r#"滛"#, r#"滛"#, r#"滛"#, r#"滛"#),
+        (r#"滋"#, r#"滋"#, r#"滋"#, r#"滋"#, r#"滋"#),
+        (r#"漢"#, r#"漢"#, r#"漢"#, r#"漢"#, r#"漢"#),
+        (r#"瀞"#, r#"瀞"#, r#"瀞"#, r#"瀞"#, r#"瀞"#),
+        (r#"煮"#, r#"煮"#, r#"煮"#, r#"煮"#, r#"煮"#),
+        (r#"瞧"#, r#"瞧"#, r#"瞧"#, r#"瞧"#, r#"瞧"#),
+        (r#"爵"#, r#"爵"#, r#"爵"#, r#"爵"#, r#"爵"#),
+        (r#"犯"#, r#"犯"#, r#"犯"#, r#"犯"#, r#"犯"#),
+        (r#"猪"#, r#"猪"#, r#"猪"#, r#"猪"#, r#"猪"#),
+        (r#"瑱"#, r#"瑱"#, r#"瑱"#, r#"瑱"#, r#"瑱"#),
+        (r#"甆"#, r#"甆"#, r#"甆"#, r#"甆"#, r#"甆"#),
+        (r#"画"#, r#"画"#, r#"画"#, r#"画"#, r#"画"#),
+        (r#"瘝"#, r#"瘝"#, r#"瘝"#, r#"瘝"#, r#"瘝"#),
+        (r#"瘟"#, r#"瘟"#, r#"瘟"#, r#"瘟"#, r#"瘟"#),
+        (r#"益"#, r#"益"#, r#"益"#, r#"益"#, r#"益"#),
+        (r#"盛"#, r#"盛"#, r#"盛"#, r#"盛"#, r#"盛"#),
+        (r#"直"#, r#"直"#, r#"直"#, r#"直"#, r#"直"#),
+        (r#"睊"#, r#"睊"#, r#"睊"#, r#"睊"#, r#"睊"#),
+        (r#"着"#, r#"着"#, r#"着"#, r#"着"#, r#"着"#),
+        (r#"磌"#, r#"磌"#, r#"磌"#, r#"磌"#, r#"磌"#),
+        (r#"窱"#, r#"窱"#, r#"窱"#, r#"窱"#, r#"窱"#),
+        (r#"節"#, r#"節"#, r#"節"#, r#"節"#, r#"節"#),
+        (r#"类"#, r#"类"#, r#"类"#, r#"类"#, r#"类"#),
+        (r#"絛"#, r#"絛"#, r#"絛"#, r#"絛"#, r#"絛"#),
+        (r#"練"#, r#"練"#, r#"練"#, r#"練"#, r#"練"#),
+        (r#"缾"#, r#"缾"#, r#"缾"#, r#"缾"#, r#"缾"#),
+        (r#"者"#, r#"者"#, r#"者"#, r#"者"#, r#"者"#),
+        (r#"荒"#, r#"荒"#, r#"荒"#, r#"荒"#, r#"荒"#),
+        (r#"華"#, r#"華"#, r#"華"#, r#"華"#, r#"華"#),
+        (r#"蝹"#, r#"蝹"#, r#"蝹"#, r#"蝹"#, r#"蝹"#),
+        (r#"襁"#, r#"襁"#, r#"襁"#, r#"襁"#, r#"襁"#),
+        (r#"覆"#, r#"覆"#, r#"覆"#, r#"覆"#, r#"覆"#),
+        (r#"視"#, r#"視"#, r#"視"#, r#"視"#, r#"視"#),
+        (r#"調"#, r#"調"#, r#"調"#, r#"調"#, r#"調"#),
+        (r#"諸"#, r#"諸"#, r#"諸"#, r#"諸"#, r#"諸"#),
+        (r#"請"#, r#"請"#, r#"請"#, r#"請"#, r#"請"#),
+        (r#"謁"#, r#"謁"#, r#"謁"#, r#"謁"#, r#"謁"#),
+        (r#"諾"#, r#"諾"#, r#"諾"#, r#"諾"#, r#"諾"#),
+        (r#"諭"#, r#"諭"#, r#"諭"#, r#"諭"#, r#"諭"#),
+        (r#"謹"#, r#"謹"#, r#"謹"#, r#"謹"#, r#"謹"#),
+        (r#"變"#, r#"變"#, r#"變"#, r#"變"#, r#"變"#),
+        (r#"贈"#, r#"贈"#, r#"贈"#, r#"贈"#, r#"贈"#),
+        (r#"輸"#, r#"輸"#, r#"輸"#, r#"輸"#, r#"輸"#),
+        (r#"遲"#, r#"遲"#, r#"遲"#, r#"遲"#, r#"遲"#),
+        (r#"醙"#, r#"醙"#, r#"醙"#, r#"醙"#, r#"醙"#),
+        (r#"鉶"#, r#"鉶"#, r#"鉶"#, r#"鉶"#, r#"鉶"#),
+        (r#"陼"#, r#"陼"#, r#"陼"#, r#"陼"#, r#"陼"#),
+        (r#"難"#, r#"難"#, r#"難"#, r#"難"#, r#"難"#),
+        (r#"靖"#, r#"靖"#, r#"靖"#, r#"靖"#, r#"靖"#),
+        (r#"韛"#, r#"韛"#, r#"韛"#, r#"韛"#, r#"韛"#),
+        (r#"響"#, r#"響"#, r#"響"#, r#"響"#, r#"響"#),
+        (r#"頋"#, r#"頋"#, r#"頋"#, r#"頋"#, r#"頋"#),
+        (r#"頻"#, r#"頻"#, r#"頻"#, r#"頻"#, r#"頻"#),
+        (r#"鬒"#, r#"鬒"#, r#"鬒"#, r#"鬒"#, r#"鬒"#),
+        (r#"龜"#, r#"龜"#, r#"龜"#, r#"龜"#, r#"龜"#),
+        (r#"𢡊"#, r#"𢡊"#, r#"𢡊"#, r#"𢡊"#, r#"𢡊"#),
+        (r#"𢡄"#, r#"𢡄"#, r#"𢡄"#, r#"𢡄"#, r#"𢡄"#),
+        (r#"𣏕"#, r#"𣏕"#, r#"𣏕"#, r#"𣏕"#, r#"𣏕"#),
+        (r#"㮝"#, r#"㮝"#, r#"㮝"#, r#"㮝"#, r#"㮝"#),
+        (r#"䀘"#, r#"䀘"#, r#"䀘"#, r#"䀘"#, r#"䀘"#),
+        (r#"䀹"#, r#"䀹"#, r#"䀹"#, r#"䀹"#, r#"䀹"#),
+        (r#"𥉉"#, r#"𥉉"#, r#"𥉉"#, r#"𥉉"#, r#"𥉉"#),
+        (r#"𥳐"#, r#"𥳐"#, r#"𥳐"#, r#"𥳐"#, r#"𥳐"#),
+        (r#"𧻓"#, r#"𧻓"#, r#"𧻓"#, r#"𧻓"#, r#"𧻓"#),
+        (r#"齃"#, r#"齃"#, r#"齃"#, r#"齃"#, r#"齃"#),
+        (r#"龎"#, r#"龎"#, r#"龎"#, r#"龎"#, r#"龎"#),
+        (r#"ff"#, r#"ff"#, r#"ff"#, r#"ff"#, r#"ff"#),
+        (r#"fi"#, r#"fi"#, r#"fi"#, r#"fi"#, r#"fi"#),
+        (r#"fl"#, r#"fl"#, r#"fl"#, r#"fl"#, r#"fl"#),
+        (r#"ffi"#, r#"ffi"#, r#"ffi"#, r#"ffi"#, r#"ffi"#),
+        (r#"ffl"#, r#"ffl"#, r#"ffl"#, r#"ffl"#, r#"ffl"#),
+        (r#"ſt"#, r#"ſt"#, r#"ſt"#, r#"st"#, r#"st"#),
+        (r#"st"#, r#"st"#, r#"st"#, r#"st"#, r#"st"#),
+        (r#"ﬓ"#, r#"ﬓ"#, r#"ﬓ"#, r#"մն"#, r#"մն"#),
+        (r#"ﬔ"#, r#"ﬔ"#, r#"ﬔ"#, r#"մե"#, r#"մե"#),
+        (r#"ﬕ"#, r#"ﬕ"#, r#"ﬕ"#, r#"մի"#, r#"մի"#),
+        (r#"ﬖ"#, r#"ﬖ"#, r#"ﬖ"#, r#"վն"#, r#"վն"#),
+        (r#"ﬗ"#, r#"ﬗ"#, r#"ﬗ"#, r#"մխ"#, r#"մխ"#),
+        (r#"יִ"#, r#"יִ"#, r#"יִ"#, r#"יִ"#, r#"יִ"#),
+        (r#"ײַ"#, r#"ײַ"#, r#"ײַ"#, r#"ײַ"#, r#"ײַ"#),
+        (r#"ﬠ"#, r#"ﬠ"#, r#"ﬠ"#, r#"ע"#, r#"ע"#),
+        (r#"ﬡ"#, r#"ﬡ"#, r#"ﬡ"#, r#"א"#, r#"א"#),
+        (r#"ﬢ"#, r#"ﬢ"#, r#"ﬢ"#, r#"ד"#, r#"ד"#),
+        (r#"ﬣ"#, r#"ﬣ"#, r#"ﬣ"#, r#"ה"#, r#"ה"#),
+        (r#"ﬤ"#, r#"ﬤ"#, r#"ﬤ"#, r#"כ"#, r#"כ"#),
+        (r#"ﬥ"#, r#"ﬥ"#, r#"ﬥ"#, r#"ל"#, r#"ל"#),
+        (r#"ﬦ"#, r#"ﬦ"#, r#"ﬦ"#, r#"ם"#, r#"ם"#),
+        (r#"ﬧ"#, r#"ﬧ"#, r#"ﬧ"#, r#"ר"#, r#"ר"#),
+        (r#"ﬨ"#, r#"ﬨ"#, r#"ﬨ"#, r#"ת"#, r#"ת"#),
+        (r#"﬩"#, r#"﬩"#, r#"﬩"#, r#"+"#, r#"+"#),
+        (r#"שׁ"#, r#"שׁ"#, r#"שׁ"#, r#"שׁ"#, r#"שׁ"#),
+        (r#"שׂ"#, r#"שׂ"#, r#"שׂ"#, r#"שׂ"#, r#"שׂ"#),
+        (r#"שּׁ"#, r#"שּׁ"#, r#"שּׁ"#, r#"שּׁ"#, r#"שּׁ"#),
+        (r#"שּׂ"#, r#"שּׂ"#, r#"שּׂ"#, r#"שּׂ"#, r#"שּׂ"#),
+        (r#"אַ"#, r#"אַ"#, r#"אַ"#, r#"אַ"#, r#"אַ"#),
+        (r#"אָ"#, r#"אָ"#, r#"אָ"#, r#"אָ"#, r#"אָ"#),
+        (r#"אּ"#, r#"אּ"#, r#"אּ"#, r#"אּ"#, r#"אּ"#),
+        (r#"בּ"#, r#"בּ"#, r#"בּ"#, r#"בּ"#, r#"בּ"#),
+        (r#"גּ"#, r#"גּ"#, r#"גּ"#, r#"גּ"#, r#"גּ"#),
+        (r#"דּ"#, r#"דּ"#, r#"דּ"#, r#"דּ"#, r#"דּ"#),
+        (r#"הּ"#, r#"הּ"#, r#"הּ"#, r#"הּ"#, r#"הּ"#),
+        (r#"וּ"#, r#"וּ"#, r#"וּ"#, r#"וּ"#, r#"וּ"#),
+        (r#"זּ"#, r#"זּ"#, r#"זּ"#, r#"זּ"#, r#"זּ"#),
+        (r#"טּ"#, r#"טּ"#, r#"טּ"#, r#"טּ"#, r#"טּ"#),
+        (r#"יּ"#, r#"יּ"#, r#"יּ"#, r#"יּ"#, r#"יּ"#),
+        (r#"ךּ"#, r#"ךּ"#, r#"ךּ"#, r#"ךּ"#, r#"ךּ"#),
+        (r#"כּ"#, r#"כּ"#, r#"כּ"#, r#"כּ"#, r#"כּ"#),
+        (r#"לּ"#, r#"לּ"#, r#"לּ"#, r#"לּ"#, r#"לּ"#),
+        (r#"מּ"#, r#"מּ"#, r#"מּ"#, r#"מּ"#, r#"מּ"#),
+        (r#"נּ"#, r#"נּ"#, r#"נּ"#, r#"נּ"#, r#"נּ"#),
+        (r#"סּ"#, r#"סּ"#, r#"סּ"#, r#"סּ"#, r#"סּ"#),
+        (r#"ףּ"#, r#"ףּ"#, r#"ףּ"#, r#"ףּ"#, r#"ףּ"#),
+        (r#"פּ"#, r#"פּ"#, r#"פּ"#, r#"פּ"#, r#"פּ"#),
+        (r#"צּ"#, r#"צּ"#, r#"צּ"#, r#"צּ"#, r#"צּ"#),
+        (r#"קּ"#, r#"קּ"#, r#"קּ"#, r#"קּ"#, r#"קּ"#),
+        (r#"רּ"#, r#"רּ"#, r#"רּ"#, r#"רּ"#, r#"רּ"#),
+        (r#"שּ"#, r#"שּ"#, r#"שּ"#, r#"שּ"#, r#"שּ"#),
+        (r#"תּ"#, r#"תּ"#, r#"תּ"#, r#"תּ"#, r#"תּ"#),
+        (r#"וֹ"#, r#"וֹ"#, r#"וֹ"#, r#"וֹ"#, r#"וֹ"#),
+        (r#"בֿ"#, r#"בֿ"#, r#"בֿ"#, r#"בֿ"#, r#"בֿ"#),
+        (r#"כֿ"#, r#"כֿ"#, r#"כֿ"#, r#"כֿ"#, r#"כֿ"#),
+        (r#"פֿ"#, r#"פֿ"#, r#"פֿ"#, r#"פֿ"#, r#"פֿ"#),
+        (r#"ﭏ"#, r#"ﭏ"#, r#"ﭏ"#, r#"אל"#, r#"אל"#),
+        (r#"ﭐ"#, r#"ﭐ"#, r#"ﭐ"#, r#"ٱ"#, r#"ٱ"#),
+        (r#"ﭑ"#, r#"ﭑ"#, r#"ﭑ"#, r#"ٱ"#, r#"ٱ"#),
+        (r#"ﭒ"#, r#"ﭒ"#, r#"ﭒ"#, r#"ٻ"#, r#"ٻ"#),
+        (r#"ﭓ"#, r#"ﭓ"#, r#"ﭓ"#, r#"ٻ"#, r#"ٻ"#),
+        (r#"ﭔ"#, r#"ﭔ"#, r#"ﭔ"#, r#"ٻ"#, r#"ٻ"#),
+        (r#"ﭕ"#, r#"ﭕ"#, r#"ﭕ"#, r#"ٻ"#, r#"ٻ"#),
+        (r#"ﭖ"#, r#"ﭖ"#, r#"ﭖ"#, r#"پ"#, r#"پ"#),
+        (r#"ﭗ"#, r#"ﭗ"#, r#"ﭗ"#, r#"پ"#, r#"پ"#),
+        (r#"ﭘ"#, r#"ﭘ"#, r#"ﭘ"#, r#"پ"#, r#"پ"#),
+        (r#"ﭙ"#, r#"ﭙ"#, r#"ﭙ"#, r#"پ"#, r#"پ"#),
+        (r#"ﭚ"#, r#"ﭚ"#, r#"ﭚ"#, r#"ڀ"#, r#"ڀ"#),
+        (r#"ﭛ"#, r#"ﭛ"#, r#"ﭛ"#, r#"ڀ"#, r#"ڀ"#),
+        (r#"ﭜ"#, r#"ﭜ"#, r#"ﭜ"#, r#"ڀ"#, r#"ڀ"#),
+        (r#"ﭝ"#, r#"ﭝ"#, r#"ﭝ"#, r#"ڀ"#, r#"ڀ"#),
+        (r#"ﭞ"#, r#"ﭞ"#, r#"ﭞ"#, r#"ٺ"#, r#"ٺ"#),
+        (r#"ﭟ"#, r#"ﭟ"#, r#"ﭟ"#, r#"ٺ"#, r#"ٺ"#),
+        (r#"ﭠ"#, r#"ﭠ"#, r#"ﭠ"#, r#"ٺ"#, r#"ٺ"#),
+        (r#"ﭡ"#, r#"ﭡ"#, r#"ﭡ"#, r#"ٺ"#, r#"ٺ"#),
+        (r#"ﭢ"#, r#"ﭢ"#, r#"ﭢ"#, r#"ٿ"#, r#"ٿ"#),
+        (r#"ﭣ"#, r#"ﭣ"#, r#"ﭣ"#, r#"ٿ"#, r#"ٿ"#),
+        (r#"ﭤ"#, r#"ﭤ"#, r#"ﭤ"#, r#"ٿ"#, r#"ٿ"#),
+        (r#"ﭥ"#, r#"ﭥ"#, r#"ﭥ"#, r#"ٿ"#, r#"ٿ"#),
+        (r#"ﭦ"#, r#"ﭦ"#, r#"ﭦ"#, r#"ٹ"#, r#"ٹ"#),
+        (r#"ﭧ"#, r#"ﭧ"#, r#"ﭧ"#, r#"ٹ"#, r#"ٹ"#),
+        (r#"ﭨ"#, r#"ﭨ"#, r#"ﭨ"#, r#"ٹ"#, r#"ٹ"#),
+        (r#"ﭩ"#, r#"ﭩ"#, r#"ﭩ"#, r#"ٹ"#, r#"ٹ"#),
+        (r#"ﭪ"#, r#"ﭪ"#, r#"ﭪ"#, r#"ڤ"#, r#"ڤ"#),
+        (r#"ﭫ"#, r#"ﭫ"#, r#"ﭫ"#, r#"ڤ"#, r#"ڤ"#),
+        (r#"ﭬ"#, r#"ﭬ"#, r#"ﭬ"#, r#"ڤ"#, r#"ڤ"#),
+        (r#"ﭭ"#, r#"ﭭ"#, r#"ﭭ"#, r#"ڤ"#, r#"ڤ"#),
+        (r#"ﭮ"#, r#"ﭮ"#, r#"ﭮ"#, r#"ڦ"#, r#"ڦ"#),
+        (r#"ﭯ"#, r#"ﭯ"#, r#"ﭯ"#, r#"ڦ"#, r#"ڦ"#),
+        (r#"ﭰ"#, r#"ﭰ"#, r#"ﭰ"#, r#"ڦ"#, r#"ڦ"#),
+        (r#"ﭱ"#, r#"ﭱ"#, r#"ﭱ"#, r#"ڦ"#, r#"ڦ"#),
+        (r#"ﭲ"#, r#"ﭲ"#, r#"ﭲ"#, r#"ڄ"#, r#"ڄ"#),
+        (r#"ﭳ"#, r#"ﭳ"#, r#"ﭳ"#, r#"ڄ"#, r#"ڄ"#),
+        (r#"ﭴ"#, r#"ﭴ"#, r#"ﭴ"#, r#"ڄ"#, r#"ڄ"#),
+        (r#"ﭵ"#, r#"ﭵ"#, r#"ﭵ"#, r#"ڄ"#, r#"ڄ"#),
+        (r#"ﭶ"#, r#"ﭶ"#, r#"ﭶ"#, r#"ڃ"#, r#"ڃ"#),
+        (r#"ﭷ"#, r#"ﭷ"#, r#"ﭷ"#, r#"ڃ"#, r#"ڃ"#),
+        (r#"ﭸ"#, r#"ﭸ"#, r#"ﭸ"#, r#"ڃ"#, r#"ڃ"#),
+        (r#"ﭹ"#, r#"ﭹ"#, r#"ﭹ"#, r#"ڃ"#, r#"ڃ"#),
+        (r#"ﭺ"#, r#"ﭺ"#, r#"ﭺ"#, r#"چ"#, r#"چ"#),
+        (r#"ﭻ"#, r#"ﭻ"#, r#"ﭻ"#, r#"چ"#, r#"چ"#),
+        (r#"ﭼ"#, r#"ﭼ"#, r#"ﭼ"#, r#"چ"#, r#"چ"#),
+        (r#"ﭽ"#, r#"ﭽ"#, r#"ﭽ"#, r#"چ"#, r#"چ"#),
+        (r#"ﭾ"#, r#"ﭾ"#, r#"ﭾ"#, r#"ڇ"#, r#"ڇ"#),
+        (r#"ﭿ"#, r#"ﭿ"#, r#"ﭿ"#, r#"ڇ"#, r#"ڇ"#),
+        (r#"ﮀ"#, r#"ﮀ"#, r#"ﮀ"#, r#"ڇ"#, r#"ڇ"#),
+        (r#"ﮁ"#, r#"ﮁ"#, r#"ﮁ"#, r#"ڇ"#, r#"ڇ"#),
+        (r#"ﮂ"#, r#"ﮂ"#, r#"ﮂ"#, r#"ڍ"#, r#"ڍ"#),
+        (r#"ﮃ"#, r#"ﮃ"#, r#"ﮃ"#, r#"ڍ"#, r#"ڍ"#),
+        (r#"ﮄ"#, r#"ﮄ"#, r#"ﮄ"#, r#"ڌ"#, r#"ڌ"#),
+        (r#"ﮅ"#, r#"ﮅ"#, r#"ﮅ"#, r#"ڌ"#, r#"ڌ"#),
+        (r#"ﮆ"#, r#"ﮆ"#, r#"ﮆ"#, r#"ڎ"#, r#"ڎ"#),
+        (r#"ﮇ"#, r#"ﮇ"#, r#"ﮇ"#, r#"ڎ"#, r#"ڎ"#),
+        (r#"ﮈ"#, r#"ﮈ"#, r#"ﮈ"#, r#"ڈ"#, r#"ڈ"#),
+        (r#"ﮉ"#, r#"ﮉ"#, r#"ﮉ"#, r#"ڈ"#, r#"ڈ"#),
+        (r#"ﮊ"#, r#"ﮊ"#, r#"ﮊ"#, r#"ژ"#, r#"ژ"#),
+        (r#"ﮋ"#, r#"ﮋ"#, r#"ﮋ"#, r#"ژ"#, r#"ژ"#),
+        (r#"ﮌ"#, r#"ﮌ"#, r#"ﮌ"#, r#"ڑ"#, r#"ڑ"#),
+        (r#"ﮍ"#, r#"ﮍ"#, r#"ﮍ"#, r#"ڑ"#, r#"ڑ"#),
+        (r#"ﮎ"#, r#"ﮎ"#, r#"ﮎ"#, r#"ک"#, r#"ک"#),
+        (r#"ﮏ"#, r#"ﮏ"#, r#"ﮏ"#, r#"ک"#, r#"ک"#),
+        (r#"ﮐ"#, r#"ﮐ"#, r#"ﮐ"#, r#"ک"#, r#"ک"#),
+        (r#"ﮑ"#, r#"ﮑ"#, r#"ﮑ"#, r#"ک"#, r#"ک"#),
+        (r#"ﮒ"#, r#"ﮒ"#, r#"ﮒ"#, r#"گ"#, r#"گ"#),
+        (r#"ﮓ"#, r#"ﮓ"#, r#"ﮓ"#, r#"گ"#, r#"گ"#),
+        (r#"ﮔ"#, r#"ﮔ"#, r#"ﮔ"#, r#"گ"#, r#"گ"#),
+        (r#"ﮕ"#, r#"ﮕ"#, r#"ﮕ"#, r#"گ"#, r#"گ"#),
+        (r#"ﮖ"#, r#"ﮖ"#, r#"ﮖ"#, r#"ڳ"#, r#"ڳ"#),
+        (r#"ﮗ"#, r#"ﮗ"#, r#"ﮗ"#, r#"ڳ"#, r#"ڳ"#),
+        (r#"ﮘ"#, r#"ﮘ"#, r#"ﮘ"#, r#"ڳ"#, r#"ڳ"#),
+        (r#"ﮙ"#, r#"ﮙ"#, r#"ﮙ"#, r#"ڳ"#, r#"ڳ"#),
+        (r#"ﮚ"#, r#"ﮚ"#, r#"ﮚ"#, r#"ڱ"#, r#"ڱ"#),
+        (r#"ﮛ"#, r#"ﮛ"#, r#"ﮛ"#, r#"ڱ"#, r#"ڱ"#),
+        (r#"ﮜ"#, r#"ﮜ"#, r#"ﮜ"#, r#"ڱ"#, r#"ڱ"#),
+        (r#"ﮝ"#, r#"ﮝ"#, r#"ﮝ"#, r#"ڱ"#, r#"ڱ"#),
+        (r#"ﮞ"#, r#"ﮞ"#, r#"ﮞ"#, r#"ں"#, r#"ں"#),
+        (r#"ﮟ"#, r#"ﮟ"#, r#"ﮟ"#, r#"ں"#, r#"ں"#),
+        (r#"ﮠ"#, r#"ﮠ"#, r#"ﮠ"#, r#"ڻ"#, r#"ڻ"#),
+        (r#"ﮡ"#, r#"ﮡ"#, r#"ﮡ"#, r#"ڻ"#, r#"ڻ"#),
+        (r#"ﮢ"#, r#"ﮢ"#, r#"ﮢ"#, r#"ڻ"#, r#"ڻ"#),
+        (r#"ﮣ"#, r#"ﮣ"#, r#"ﮣ"#, r#"ڻ"#, r#"ڻ"#),
+        (r#"ﮤ"#, r#"ﮤ"#, r#"ﮤ"#, r#"ۀ"#, r#"ۀ"#),
+        (r#"ﮥ"#, r#"ﮥ"#, r#"ﮥ"#, r#"ۀ"#, r#"ۀ"#),
+        (r#"ﮦ"#, r#"ﮦ"#, r#"ﮦ"#, r#"ہ"#, r#"ہ"#),
+        (r#"ﮧ"#, r#"ﮧ"#, r#"ﮧ"#, r#"ہ"#, r#"ہ"#),
+        (r#"ﮨ"#, r#"ﮨ"#, r#"ﮨ"#, r#"ہ"#, r#"ہ"#),
+        (r#"ﮩ"#, r#"ﮩ"#, r#"ﮩ"#, r#"ہ"#, r#"ہ"#),
+        (r#"ﮪ"#, r#"ﮪ"#, r#"ﮪ"#, r#"ھ"#, r#"ھ"#),
+        (r#"ﮫ"#, r#"ﮫ"#, r#"ﮫ"#, r#"ھ"#, r#"ھ"#),
+        (r#"ﮬ"#, r#"ﮬ"#, r#"ﮬ"#, r#"ھ"#, r#"ھ"#),
+        (r#"ﮭ"#, r#"ﮭ"#, r#"ﮭ"#, r#"ھ"#, r#"ھ"#),
+        (r#"ﮮ"#, r#"ﮮ"#, r#"ﮮ"#, r#"ے"#, r#"ے"#),
+        (r#"ﮯ"#, r#"ﮯ"#, r#"ﮯ"#, r#"ے"#, r#"ے"#),
+        (r#"ﮰ"#, r#"ﮰ"#, r#"ﮰ"#, r#"ۓ"#, r#"ۓ"#),
+        (r#"ﮱ"#, r#"ﮱ"#, r#"ﮱ"#, r#"ۓ"#, r#"ۓ"#),
+        (r#"ﯓ"#, r#"ﯓ"#, r#"ﯓ"#, r#"ڭ"#, r#"ڭ"#),
+        (r#"ﯔ"#, r#"ﯔ"#, r#"ﯔ"#, r#"ڭ"#, r#"ڭ"#),
+        (r#"ﯕ"#, r#"ﯕ"#, r#"ﯕ"#, r#"ڭ"#, r#"ڭ"#),
+        (r#"ﯖ"#, r#"ﯖ"#, r#"ﯖ"#, r#"ڭ"#, r#"ڭ"#),
+        (r#"ﯗ"#, r#"ﯗ"#, r#"ﯗ"#, r#"ۇ"#, r#"ۇ"#),
+        (r#"ﯘ"#, r#"ﯘ"#, r#"ﯘ"#, r#"ۇ"#, r#"ۇ"#),
+        (r#"ﯙ"#, r#"ﯙ"#, r#"ﯙ"#, r#"ۆ"#, r#"ۆ"#),
+        (r#"ﯚ"#, r#"ﯚ"#, r#"ﯚ"#, r#"ۆ"#, r#"ۆ"#),
+        (r#"ﯛ"#, r#"ﯛ"#, r#"ﯛ"#, r#"ۈ"#, r#"ۈ"#),
+        (r#"ﯜ"#, r#"ﯜ"#, r#"ﯜ"#, r#"ۈ"#, r#"ۈ"#),
+        (r#"ﯝ"#, r#"ﯝ"#, r#"ﯝ"#, r#"ۇٴ"#, r#"ۇٴ"#),
+        (r#"ﯞ"#, r#"ﯞ"#, r#"ﯞ"#, r#"ۋ"#, r#"ۋ"#),
+        (r#"ﯟ"#, r#"ﯟ"#, r#"ﯟ"#, r#"ۋ"#, r#"ۋ"#),
+        (r#"ﯠ"#, r#"ﯠ"#, r#"ﯠ"#, r#"ۅ"#, r#"ۅ"#),
+        (r#"ﯡ"#, r#"ﯡ"#, r#"ﯡ"#, r#"ۅ"#, r#"ۅ"#),
+        (r#"ﯢ"#, r#"ﯢ"#, r#"ﯢ"#, r#"ۉ"#, r#"ۉ"#),
+        (r#"ﯣ"#, r#"ﯣ"#, r#"ﯣ"#, r#"ۉ"#, r#"ۉ"#),
+        (r#"ﯤ"#, r#"ﯤ"#, r#"ﯤ"#, r#"ې"#, r#"ې"#),
+        (r#"ﯥ"#, r#"ﯥ"#, r#"ﯥ"#, r#"ې"#, r#"ې"#),
+        (r#"ﯦ"#, r#"ﯦ"#, r#"ﯦ"#, r#"ې"#, r#"ې"#),
+        (r#"ﯧ"#, r#"ﯧ"#, r#"ﯧ"#, r#"ې"#, r#"ې"#),
+        (r#"ﯨ"#, r#"ﯨ"#, r#"ﯨ"#, r#"ى"#, r#"ى"#),
+        (r#"ﯩ"#, r#"ﯩ"#, r#"ﯩ"#, r#"ى"#, r#"ى"#),
+        (r#"ﯪ"#, r#"ﯪ"#, r#"ﯪ"#, r#"ئا"#, r#"ئا"#),
+        (r#"ﯫ"#, r#"ﯫ"#, r#"ﯫ"#, r#"ئا"#, r#"ئا"#),
+        (r#"ﯬ"#, r#"ﯬ"#, r#"ﯬ"#, r#"ئە"#, r#"ئە"#),
+        (r#"ﯭ"#, r#"ﯭ"#, r#"ﯭ"#, r#"ئە"#, r#"ئە"#),
+        (r#"ﯮ"#, r#"ﯮ"#, r#"ﯮ"#, r#"ئو"#, r#"ئو"#),
+        (r#"ﯯ"#, r#"ﯯ"#, r#"ﯯ"#, r#"ئو"#, r#"ئو"#),
+        (r#"ﯰ"#, r#"ﯰ"#, r#"ﯰ"#, r#"ئۇ"#, r#"ئۇ"#),
+        (r#"ﯱ"#, r#"ﯱ"#, r#"ﯱ"#, r#"ئۇ"#, r#"ئۇ"#),
+        (r#"ﯲ"#, r#"ﯲ"#, r#"ﯲ"#, r#"ئۆ"#, r#"ئۆ"#),
+        (r#"ﯳ"#, r#"ﯳ"#, r#"ﯳ"#, r#"ئۆ"#, r#"ئۆ"#),
+        (r#"ﯴ"#, r#"ﯴ"#, r#"ﯴ"#, r#"ئۈ"#, r#"ئۈ"#),
+        (r#"ﯵ"#, r#"ﯵ"#, r#"ﯵ"#, r#"ئۈ"#, r#"ئۈ"#),
+        (r#"ﯶ"#, r#"ﯶ"#, r#"ﯶ"#, r#"ئې"#, r#"ئې"#),
+        (r#"ﯷ"#, r#"ﯷ"#, r#"ﯷ"#, r#"ئې"#, r#"ئې"#),
+        (r#"ﯸ"#, r#"ﯸ"#, r#"ﯸ"#, r#"ئې"#, r#"ئې"#),
+        (r#"ﯹ"#, r#"ﯹ"#, r#"ﯹ"#, r#"ئى"#, r#"ئى"#),
+        (r#"ﯺ"#, r#"ﯺ"#, r#"ﯺ"#, r#"ئى"#, r#"ئى"#),
+        (r#"ﯻ"#, r#"ﯻ"#, r#"ﯻ"#, r#"ئى"#, r#"ئى"#),
+        (r#"ﯼ"#, r#"ﯼ"#, r#"ﯼ"#, r#"ی"#, r#"ی"#),
+        (r#"ﯽ"#, r#"ﯽ"#, r#"ﯽ"#, r#"ی"#, r#"ی"#),
+        (r#"ﯾ"#, r#"ﯾ"#, r#"ﯾ"#, r#"ی"#, r#"ی"#),
+        (r#"ﯿ"#, r#"ﯿ"#, r#"ﯿ"#, r#"ی"#, r#"ی"#),
+        (r#"ﰀ"#, r#"ﰀ"#, r#"ﰀ"#, r#"ئج"#, r#"ئج"#),
+        (r#"ﰁ"#, r#"ﰁ"#, r#"ﰁ"#, r#"ئح"#, r#"ئح"#),
+        (r#"ﰂ"#, r#"ﰂ"#, r#"ﰂ"#, r#"ئم"#, r#"ئم"#),
+        (r#"ﰃ"#, r#"ﰃ"#, r#"ﰃ"#, r#"ئى"#, r#"ئى"#),
+        (r#"ﰄ"#, r#"ﰄ"#, r#"ﰄ"#, r#"ئي"#, r#"ئي"#),
+        (r#"ﰅ"#, r#"ﰅ"#, r#"ﰅ"#, r#"بج"#, r#"بج"#),
+        (r#"ﰆ"#, r#"ﰆ"#, r#"ﰆ"#, r#"بح"#, r#"بح"#),
+        (r#"ﰇ"#, r#"ﰇ"#, r#"ﰇ"#, r#"بخ"#, r#"بخ"#),
+        (r#"ﰈ"#, r#"ﰈ"#, r#"ﰈ"#, r#"بم"#, r#"بم"#),
+        (r#"ﰉ"#, r#"ﰉ"#, r#"ﰉ"#, r#"بى"#, r#"بى"#),
+        (r#"ﰊ"#, r#"ﰊ"#, r#"ﰊ"#, r#"بي"#, r#"بي"#),
+        (r#"ﰋ"#, r#"ﰋ"#, r#"ﰋ"#, r#"تج"#, r#"تج"#),
+        (r#"ﰌ"#, r#"ﰌ"#, r#"ﰌ"#, r#"تح"#, r#"تح"#),
+        (r#"ﰍ"#, r#"ﰍ"#, r#"ﰍ"#, r#"تخ"#, r#"تخ"#),
+        (r#"ﰎ"#, r#"ﰎ"#, r#"ﰎ"#, r#"تم"#, r#"تم"#),
+        (r#"ﰏ"#, r#"ﰏ"#, r#"ﰏ"#, r#"تى"#, r#"تى"#),
+        (r#"ﰐ"#, r#"ﰐ"#, r#"ﰐ"#, r#"تي"#, r#"تي"#),
+        (r#"ﰑ"#, r#"ﰑ"#, r#"ﰑ"#, r#"ثج"#, r#"ثج"#),
+        (r#"ﰒ"#, r#"ﰒ"#, r#"ﰒ"#, r#"ثم"#, r#"ثم"#),
+        (r#"ﰓ"#, r#"ﰓ"#, r#"ﰓ"#, r#"ثى"#, r#"ثى"#),
+        (r#"ﰔ"#, r#"ﰔ"#, r#"ﰔ"#, r#"ثي"#, r#"ثي"#),
+        (r#"ﰕ"#, r#"ﰕ"#, r#"ﰕ"#, r#"جح"#, r#"جح"#),
+        (r#"ﰖ"#, r#"ﰖ"#, r#"ﰖ"#, r#"جم"#, r#"جم"#),
+        (r#"ﰗ"#, r#"ﰗ"#, r#"ﰗ"#, r#"حج"#, r#"حج"#),
+        (r#"ﰘ"#, r#"ﰘ"#, r#"ﰘ"#, r#"حم"#, r#"حم"#),
+        (r#"ﰙ"#, r#"ﰙ"#, r#"ﰙ"#, r#"خج"#, r#"خج"#),
+        (r#"ﰚ"#, r#"ﰚ"#, r#"ﰚ"#, r#"خح"#, r#"خح"#),
+        (r#"ﰛ"#, r#"ﰛ"#, r#"ﰛ"#, r#"خم"#, r#"خم"#),
+        (r#"ﰜ"#, r#"ﰜ"#, r#"ﰜ"#, r#"سج"#, r#"سج"#),
+        (r#"ﰝ"#, r#"ﰝ"#, r#"ﰝ"#, r#"سح"#, r#"سح"#),
+        (r#"ﰞ"#, r#"ﰞ"#, r#"ﰞ"#, r#"سخ"#, r#"سخ"#),
+        (r#"ﰟ"#, r#"ﰟ"#, r#"ﰟ"#, r#"سم"#, r#"سم"#),
+        (r#"ﰠ"#, r#"ﰠ"#, r#"ﰠ"#, r#"صح"#, r#"صح"#),
+        (r#"ﰡ"#, r#"ﰡ"#, r#"ﰡ"#, r#"صم"#, r#"صم"#),
+        (r#"ﰢ"#, r#"ﰢ"#, r#"ﰢ"#, r#"ضج"#, r#"ضج"#),
+        (r#"ﰣ"#, r#"ﰣ"#, r#"ﰣ"#, r#"ضح"#, r#"ضح"#),
+        (r#"ﰤ"#, r#"ﰤ"#, r#"ﰤ"#, r#"ضخ"#, r#"ضخ"#),
+        (r#"ﰥ"#, r#"ﰥ"#, r#"ﰥ"#, r#"ضم"#, r#"ضم"#),
+        (r#"ﰦ"#, r#"ﰦ"#, r#"ﰦ"#, r#"طح"#, r#"طح"#),
+        (r#"ﰧ"#, r#"ﰧ"#, r#"ﰧ"#, r#"طم"#, r#"طم"#),
+        (r#"ﰨ"#, r#"ﰨ"#, r#"ﰨ"#, r#"ظم"#, r#"ظم"#),
+        (r#"ﰩ"#, r#"ﰩ"#, r#"ﰩ"#, r#"عج"#, r#"عج"#),
+        (r#"ﰪ"#, r#"ﰪ"#, r#"ﰪ"#, r#"عم"#, r#"عم"#),
+        (r#"ﰫ"#, r#"ﰫ"#, r#"ﰫ"#, r#"غج"#, r#"غج"#),
+        (r#"ﰬ"#, r#"ﰬ"#, r#"ﰬ"#, r#"غم"#, r#"غم"#),
+        (r#"ﰭ"#, r#"ﰭ"#, r#"ﰭ"#, r#"فج"#, r#"فج"#),
+        (r#"ﰮ"#, r#"ﰮ"#, r#"ﰮ"#, r#"فح"#, r#"فح"#),
+        (r#"ﰯ"#, r#"ﰯ"#, r#"ﰯ"#, r#"فخ"#, r#"فخ"#),
+        (r#"ﰰ"#, r#"ﰰ"#, r#"ﰰ"#, r#"فم"#, r#"فم"#),
+        (r#"ﰱ"#, r#"ﰱ"#, r#"ﰱ"#, r#"فى"#, r#"فى"#),
+        (r#"ﰲ"#, r#"ﰲ"#, r#"ﰲ"#, r#"في"#, r#"في"#),
+        (r#"ﰳ"#, r#"ﰳ"#, r#"ﰳ"#, r#"قح"#, r#"قح"#),
+        (r#"ﰴ"#, r#"ﰴ"#, r#"ﰴ"#, r#"قم"#, r#"قم"#),
+        (r#"ﰵ"#, r#"ﰵ"#, r#"ﰵ"#, r#"قى"#, r#"قى"#),
+        (r#"ﰶ"#, r#"ﰶ"#, r#"ﰶ"#, r#"قي"#, r#"قي"#),
+        (r#"ﰷ"#, r#"ﰷ"#, r#"ﰷ"#, r#"كا"#, r#"كا"#),
+        (r#"ﰸ"#, r#"ﰸ"#, r#"ﰸ"#, r#"كج"#, r#"كج"#),
+        (r#"ﰹ"#, r#"ﰹ"#, r#"ﰹ"#, r#"كح"#, r#"كح"#),
+        (r#"ﰺ"#, r#"ﰺ"#, r#"ﰺ"#, r#"كخ"#, r#"كخ"#),
+        (r#"ﰻ"#, r#"ﰻ"#, r#"ﰻ"#, r#"كل"#, r#"كل"#),
+        (r#"ﰼ"#, r#"ﰼ"#, r#"ﰼ"#, r#"كم"#, r#"كم"#),
+        (r#"ﰽ"#, r#"ﰽ"#, r#"ﰽ"#, r#"كى"#, r#"كى"#),
+        (r#"ﰾ"#, r#"ﰾ"#, r#"ﰾ"#, r#"كي"#, r#"كي"#),
+        (r#"ﰿ"#, r#"ﰿ"#, r#"ﰿ"#, r#"لج"#, r#"لج"#),
+        (r#"ﱀ"#, r#"ﱀ"#, r#"ﱀ"#, r#"لح"#, r#"لح"#),
+        (r#"ﱁ"#, r#"ﱁ"#, r#"ﱁ"#, r#"لخ"#, r#"لخ"#),
+        (r#"ﱂ"#, r#"ﱂ"#, r#"ﱂ"#, r#"لم"#, r#"لم"#),
+        (r#"ﱃ"#, r#"ﱃ"#, r#"ﱃ"#, r#"لى"#, r#"لى"#),
+        (r#"ﱄ"#, r#"ﱄ"#, r#"ﱄ"#, r#"لي"#, r#"لي"#),
+        (r#"ﱅ"#, r#"ﱅ"#, r#"ﱅ"#, r#"مج"#, r#"مج"#),
+        (r#"ﱆ"#, r#"ﱆ"#, r#"ﱆ"#, r#"مح"#, r#"مح"#),
+        (r#"ﱇ"#, r#"ﱇ"#, r#"ﱇ"#, r#"مخ"#, r#"مخ"#),
+        (r#"ﱈ"#, r#"ﱈ"#, r#"ﱈ"#, r#"مم"#, r#"مم"#),
+        (r#"ﱉ"#, r#"ﱉ"#, r#"ﱉ"#, r#"مى"#, r#"مى"#),
+        (r#"ﱊ"#, r#"ﱊ"#, r#"ﱊ"#, r#"مي"#, r#"مي"#),
+        (r#"ﱋ"#, r#"ﱋ"#, r#"ﱋ"#, r#"نج"#, r#"نج"#),
+        (r#"ﱌ"#, r#"ﱌ"#, r#"ﱌ"#, r#"نح"#, r#"نح"#),
+        (r#"ﱍ"#, r#"ﱍ"#, r#"ﱍ"#, r#"نخ"#, r#"نخ"#),
+        (r#"ﱎ"#, r#"ﱎ"#, r#"ﱎ"#, r#"نم"#, r#"نم"#),
+        (r#"ﱏ"#, r#"ﱏ"#, r#"ﱏ"#, r#"نى"#, r#"نى"#),
+        (r#"ﱐ"#, r#"ﱐ"#, r#"ﱐ"#, r#"ني"#, r#"ني"#),
+        (r#"ﱑ"#, r#"ﱑ"#, r#"ﱑ"#, r#"هج"#, r#"هج"#),
+        (r#"ﱒ"#, r#"ﱒ"#, r#"ﱒ"#, r#"هم"#, r#"هم"#),
+        (r#"ﱓ"#, r#"ﱓ"#, r#"ﱓ"#, r#"هى"#, r#"هى"#),
+        (r#"ﱔ"#, r#"ﱔ"#, r#"ﱔ"#, r#"هي"#, r#"هي"#),
+        (r#"ﱕ"#, r#"ﱕ"#, r#"ﱕ"#, r#"يج"#, r#"يج"#),
+        (r#"ﱖ"#, r#"ﱖ"#, r#"ﱖ"#, r#"يح"#, r#"يح"#),
+        (r#"ﱗ"#, r#"ﱗ"#, r#"ﱗ"#, r#"يخ"#, r#"يخ"#),
+        (r#"ﱘ"#, r#"ﱘ"#, r#"ﱘ"#, r#"يم"#, r#"يم"#),
+        (r#"ﱙ"#, r#"ﱙ"#, r#"ﱙ"#, r#"يى"#, r#"يى"#),
+        (r#"ﱚ"#, r#"ﱚ"#, r#"ﱚ"#, r#"يي"#, r#"يي"#),
+        (r#"ﱛ"#, r#"ﱛ"#, r#"ﱛ"#, r#"ذٰ"#, r#"ذٰ"#),
+        (r#"ﱜ"#, r#"ﱜ"#, r#"ﱜ"#, r#"رٰ"#, r#"رٰ"#),
+        (r#"ﱝ"#, r#"ﱝ"#, r#"ﱝ"#, r#"ىٰ"#, r#"ىٰ"#),
+        (r#"ﱞ"#, r#"ﱞ"#, r#"ﱞ"#, r#" ٌّ"#, r#" ٌّ"#),
+        (r#"ﱟ"#, r#"ﱟ"#, r#"ﱟ"#, r#" ٍّ"#, r#" ٍّ"#),
+        (r#"ﱠ"#, r#"ﱠ"#, r#"ﱠ"#, r#" َّ"#, r#" َّ"#),
+        (r#"ﱡ"#, r#"ﱡ"#, r#"ﱡ"#, r#" ُّ"#, r#" ُّ"#),
+        (r#"ﱢ"#, r#"ﱢ"#, r#"ﱢ"#, r#" ِّ"#, r#" ِّ"#),
+        (r#"ﱣ"#, r#"ﱣ"#, r#"ﱣ"#, r#" ّٰ"#, r#" ّٰ"#),
+        (r#"ﱤ"#, r#"ﱤ"#, r#"ﱤ"#, r#"ئر"#, r#"ئر"#),
+        (r#"ﱥ"#, r#"ﱥ"#, r#"ﱥ"#, r#"ئز"#, r#"ئز"#),
+        (r#"ﱦ"#, r#"ﱦ"#, r#"ﱦ"#, r#"ئم"#, r#"ئم"#),
+        (r#"ﱧ"#, r#"ﱧ"#, r#"ﱧ"#, r#"ئن"#, r#"ئن"#),
+        (r#"ﱨ"#, r#"ﱨ"#, r#"ﱨ"#, r#"ئى"#, r#"ئى"#),
+        (r#"ﱩ"#, r#"ﱩ"#, r#"ﱩ"#, r#"ئي"#, r#"ئي"#),
+        (r#"ﱪ"#, r#"ﱪ"#, r#"ﱪ"#, r#"بر"#, r#"بر"#),
+        (r#"ﱫ"#, r#"ﱫ"#, r#"ﱫ"#, r#"بز"#, r#"بز"#),
+        (r#"ﱬ"#, r#"ﱬ"#, r#"ﱬ"#, r#"بم"#, r#"بم"#),
+        (r#"ﱭ"#, r#"ﱭ"#, r#"ﱭ"#, r#"بن"#, r#"بن"#),
+        (r#"ﱮ"#, r#"ﱮ"#, r#"ﱮ"#, r#"بى"#, r#"بى"#),
+        (r#"ﱯ"#, r#"ﱯ"#, r#"ﱯ"#, r#"بي"#, r#"بي"#),
+        (r#"ﱰ"#, r#"ﱰ"#, r#"ﱰ"#, r#"تر"#, r#"تر"#),
+        (r#"ﱱ"#, r#"ﱱ"#, r#"ﱱ"#, r#"تز"#, r#"تز"#),
+        (r#"ﱲ"#, r#"ﱲ"#, r#"ﱲ"#, r#"تم"#, r#"تم"#),
+        (r#"ﱳ"#, r#"ﱳ"#, r#"ﱳ"#, r#"تن"#, r#"تن"#),
+        (r#"ﱴ"#, r#"ﱴ"#, r#"ﱴ"#, r#"تى"#, r#"تى"#),
+        (r#"ﱵ"#, r#"ﱵ"#, r#"ﱵ"#, r#"تي"#, r#"تي"#),
+        (r#"ﱶ"#, r#"ﱶ"#, r#"ﱶ"#, r#"ثر"#, r#"ثر"#),
+        (r#"ﱷ"#, r#"ﱷ"#, r#"ﱷ"#, r#"ثز"#, r#"ثز"#),
+        (r#"ﱸ"#, r#"ﱸ"#, r#"ﱸ"#, r#"ثم"#, r#"ثم"#),
+        (r#"ﱹ"#, r#"ﱹ"#, r#"ﱹ"#, r#"ثن"#, r#"ثن"#),
+        (r#"ﱺ"#, r#"ﱺ"#, r#"ﱺ"#, r#"ثى"#, r#"ثى"#),
+        (r#"ﱻ"#, r#"ﱻ"#, r#"ﱻ"#, r#"ثي"#, r#"ثي"#),
+        (r#"ﱼ"#, r#"ﱼ"#, r#"ﱼ"#, r#"فى"#, r#"فى"#),
+        (r#"ﱽ"#, r#"ﱽ"#, r#"ﱽ"#, r#"في"#, r#"في"#),
+        (r#"ﱾ"#, r#"ﱾ"#, r#"ﱾ"#, r#"قى"#, r#"قى"#),
+        (r#"ﱿ"#, r#"ﱿ"#, r#"ﱿ"#, r#"قي"#, r#"قي"#),
+        (r#"ﲀ"#, r#"ﲀ"#, r#"ﲀ"#, r#"كا"#, r#"كا"#),
+        (r#"ﲁ"#, r#"ﲁ"#, r#"ﲁ"#, r#"كل"#, r#"كل"#),
+        (r#"ﲂ"#, r#"ﲂ"#, r#"ﲂ"#, r#"كم"#, r#"كم"#),
+        (r#"ﲃ"#, r#"ﲃ"#, r#"ﲃ"#, r#"كى"#, r#"كى"#),
+        (r#"ﲄ"#, r#"ﲄ"#, r#"ﲄ"#, r#"كي"#, r#"كي"#),
+        (r#"ﲅ"#, r#"ﲅ"#, r#"ﲅ"#, r#"لم"#, r#"لم"#),
+        (r#"ﲆ"#, r#"ﲆ"#, r#"ﲆ"#, r#"لى"#, r#"لى"#),
+        (r#"ﲇ"#, r#"ﲇ"#, r#"ﲇ"#, r#"لي"#, r#"لي"#),
+        (r#"ﲈ"#, r#"ﲈ"#, r#"ﲈ"#, r#"ما"#, r#"ما"#),
+        (r#"ﲉ"#, r#"ﲉ"#, r#"ﲉ"#, r#"مم"#, r#"مم"#),
+        (r#"ﲊ"#, r#"ﲊ"#, r#"ﲊ"#, r#"نر"#, r#"نر"#),
+        (r#"ﲋ"#, r#"ﲋ"#, r#"ﲋ"#, r#"نز"#, r#"نز"#),
+        (r#"ﲌ"#, r#"ﲌ"#, r#"ﲌ"#, r#"نم"#, r#"نم"#),
+        (r#"ﲍ"#, r#"ﲍ"#, r#"ﲍ"#, r#"نن"#, r#"نن"#),
+        (r#"ﲎ"#, r#"ﲎ"#, r#"ﲎ"#, r#"نى"#, r#"نى"#),
+        (r#"ﲏ"#, r#"ﲏ"#, r#"ﲏ"#, r#"ني"#, r#"ني"#),
+        (r#"ﲐ"#, r#"ﲐ"#, r#"ﲐ"#, r#"ىٰ"#, r#"ىٰ"#),
+        (r#"ﲑ"#, r#"ﲑ"#, r#"ﲑ"#, r#"ير"#, r#"ير"#),
+        (r#"ﲒ"#, r#"ﲒ"#, r#"ﲒ"#, r#"يز"#, r#"يز"#),
+        (r#"ﲓ"#, r#"ﲓ"#, r#"ﲓ"#, r#"يم"#, r#"يم"#),
+        (r#"ﲔ"#, r#"ﲔ"#, r#"ﲔ"#, r#"ين"#, r#"ين"#),
+        (r#"ﲕ"#, r#"ﲕ"#, r#"ﲕ"#, r#"يى"#, r#"يى"#),
+        (r#"ﲖ"#, r#"ﲖ"#, r#"ﲖ"#, r#"يي"#, r#"يي"#),
+        (r#"ﲗ"#, r#"ﲗ"#, r#"ﲗ"#, r#"ئج"#, r#"ئج"#),
+        (r#"ﲘ"#, r#"ﲘ"#, r#"ﲘ"#, r#"ئح"#, r#"ئح"#),
+        (r#"ﲙ"#, r#"ﲙ"#, r#"ﲙ"#, r#"ئخ"#, r#"ئخ"#),
+        (r#"ﲚ"#, r#"ﲚ"#, r#"ﲚ"#, r#"ئم"#, r#"ئم"#),
+        (r#"ﲛ"#, r#"ﲛ"#, r#"ﲛ"#, r#"ئه"#, r#"ئه"#),
+        (r#"ﲜ"#, r#"ﲜ"#, r#"ﲜ"#, r#"بج"#, r#"بج"#),
+        (r#"ﲝ"#, r#"ﲝ"#, r#"ﲝ"#, r#"بح"#, r#"بح"#),
+        (r#"ﲞ"#, r#"ﲞ"#, r#"ﲞ"#, r#"بخ"#, r#"بخ"#),
+        (r#"ﲟ"#, r#"ﲟ"#, r#"ﲟ"#, r#"بم"#, r#"بم"#),
+        (r#"ﲠ"#, r#"ﲠ"#, r#"ﲠ"#, r#"به"#, r#"به"#),
+        (r#"ﲡ"#, r#"ﲡ"#, r#"ﲡ"#, r#"تج"#, r#"تج"#),
+        (r#"ﲢ"#, r#"ﲢ"#, r#"ﲢ"#, r#"تح"#, r#"تح"#),
+        (r#"ﲣ"#, r#"ﲣ"#, r#"ﲣ"#, r#"تخ"#, r#"تخ"#),
+        (r#"ﲤ"#, r#"ﲤ"#, r#"ﲤ"#, r#"تم"#, r#"تم"#),
+        (r#"ﲥ"#, r#"ﲥ"#, r#"ﲥ"#, r#"ته"#, r#"ته"#),
+        (r#"ﲦ"#, r#"ﲦ"#, r#"ﲦ"#, r#"ثم"#, r#"ثم"#),
+        (r#"ﲧ"#, r#"ﲧ"#, r#"ﲧ"#, r#"جح"#, r#"جح"#),
+        (r#"ﲨ"#, r#"ﲨ"#, r#"ﲨ"#, r#"جم"#, r#"جم"#),
+        (r#"ﲩ"#, r#"ﲩ"#, r#"ﲩ"#, r#"حج"#, r#"حج"#),
+        (r#"ﲪ"#, r#"ﲪ"#, r#"ﲪ"#, r#"حم"#, r#"حم"#),
+        (r#"ﲫ"#, r#"ﲫ"#, r#"ﲫ"#, r#"خج"#, r#"خج"#),
+        (r#"ﲬ"#, r#"ﲬ"#, r#"ﲬ"#, r#"خم"#, r#"خم"#),
+        (r#"ﲭ"#, r#"ﲭ"#, r#"ﲭ"#, r#"سج"#, r#"سج"#),
+        (r#"ﲮ"#, r#"ﲮ"#, r#"ﲮ"#, r#"سح"#, r#"سح"#),
+        (r#"ﲯ"#, r#"ﲯ"#, r#"ﲯ"#, r#"سخ"#, r#"سخ"#),
+        (r#"ﲰ"#, r#"ﲰ"#, r#"ﲰ"#, r#"سم"#, r#"سم"#),
+        (r#"ﲱ"#, r#"ﲱ"#, r#"ﲱ"#, r#"صح"#, r#"صح"#),
+        (r#"ﲲ"#, r#"ﲲ"#, r#"ﲲ"#, r#"صخ"#, r#"صخ"#),
+        (r#"ﲳ"#, r#"ﲳ"#, r#"ﲳ"#, r#"صم"#, r#"صم"#),
+        (r#"ﲴ"#, r#"ﲴ"#, r#"ﲴ"#, r#"ضج"#, r#"ضج"#),
+        (r#"ﲵ"#, r#"ﲵ"#, r#"ﲵ"#, r#"ضح"#, r#"ضح"#),
+        (r#"ﲶ"#, r#"ﲶ"#, r#"ﲶ"#, r#"ضخ"#, r#"ضخ"#),
+        (r#"ﲷ"#, r#"ﲷ"#, r#"ﲷ"#, r#"ضم"#, r#"ضم"#),
+        (r#"ﲸ"#, r#"ﲸ"#, r#"ﲸ"#, r#"طح"#, r#"طح"#),
+        (r#"ﲹ"#, r#"ﲹ"#, r#"ﲹ"#, r#"ظم"#, r#"ظم"#),
+        (r#"ﲺ"#, r#"ﲺ"#, r#"ﲺ"#, r#"عج"#, r#"عج"#),
+        (r#"ﲻ"#, r#"ﲻ"#, r#"ﲻ"#, r#"عم"#, r#"عم"#),
+        (r#"ﲼ"#, r#"ﲼ"#, r#"ﲼ"#, r#"غج"#, r#"غج"#),
+        (r#"ﲽ"#, r#"ﲽ"#, r#"ﲽ"#, r#"غم"#, r#"غم"#),
+        (r#"ﲾ"#, r#"ﲾ"#, r#"ﲾ"#, r#"فج"#, r#"فج"#),
+        (r#"ﲿ"#, r#"ﲿ"#, r#"ﲿ"#, r#"فح"#, r#"فح"#),
+        (r#"ﳀ"#, r#"ﳀ"#, r#"ﳀ"#, r#"فخ"#, r#"فخ"#),
+        (r#"ﳁ"#, r#"ﳁ"#, r#"ﳁ"#, r#"فم"#, r#"فم"#),
+        (r#"ﳂ"#, r#"ﳂ"#, r#"ﳂ"#, r#"قح"#, r#"قح"#),
+        (r#"ﳃ"#, r#"ﳃ"#, r#"ﳃ"#, r#"قم"#, r#"قم"#),
+        (r#"ﳄ"#, r#"ﳄ"#, r#"ﳄ"#, r#"كج"#, r#"كج"#),
+        (r#"ﳅ"#, r#"ﳅ"#, r#"ﳅ"#, r#"كح"#, r#"كح"#),
+        (r#"ﳆ"#, r#"ﳆ"#, r#"ﳆ"#, r#"كخ"#, r#"كخ"#),
+        (r#"ﳇ"#, r#"ﳇ"#, r#"ﳇ"#, r#"كل"#, r#"كل"#),
+        (r#"ﳈ"#, r#"ﳈ"#, r#"ﳈ"#, r#"كم"#, r#"كم"#),
+        (r#"ﳉ"#, r#"ﳉ"#, r#"ﳉ"#, r#"لج"#, r#"لج"#),
+        (r#"ﳊ"#, r#"ﳊ"#, r#"ﳊ"#, r#"لح"#, r#"لح"#),
+        (r#"ﳋ"#, r#"ﳋ"#, r#"ﳋ"#, r#"لخ"#, r#"لخ"#),
+        (r#"ﳌ"#, r#"ﳌ"#, r#"ﳌ"#, r#"لم"#, r#"لم"#),
+        (r#"ﳍ"#, r#"ﳍ"#, r#"ﳍ"#, r#"له"#, r#"له"#),
+        (r#"ﳎ"#, r#"ﳎ"#, r#"ﳎ"#, r#"مج"#, r#"مج"#),
+        (r#"ﳏ"#, r#"ﳏ"#, r#"ﳏ"#, r#"مح"#, r#"مح"#),
+        (r#"ﳐ"#, r#"ﳐ"#, r#"ﳐ"#, r#"مخ"#, r#"مخ"#),
+        (r#"ﳑ"#, r#"ﳑ"#, r#"ﳑ"#, r#"مم"#, r#"مم"#),
+        (r#"ﳒ"#, r#"ﳒ"#, r#"ﳒ"#, r#"نج"#, r#"نج"#),
+        (r#"ﳓ"#, r#"ﳓ"#, r#"ﳓ"#, r#"نح"#, r#"نح"#),
+        (r#"ﳔ"#, r#"ﳔ"#, r#"ﳔ"#, r#"نخ"#, r#"نخ"#),
+        (r#"ﳕ"#, r#"ﳕ"#, r#"ﳕ"#, r#"نم"#, r#"نم"#),
+        (r#"ﳖ"#, r#"ﳖ"#, r#"ﳖ"#, r#"نه"#, r#"نه"#),
+        (r#"ﳗ"#, r#"ﳗ"#, r#"ﳗ"#, r#"هج"#, r#"هج"#),
+        (r#"ﳘ"#, r#"ﳘ"#, r#"ﳘ"#, r#"هم"#, r#"هم"#),
+        (r#"ﳙ"#, r#"ﳙ"#, r#"ﳙ"#, r#"هٰ"#, r#"هٰ"#),
+        (r#"ﳚ"#, r#"ﳚ"#, r#"ﳚ"#, r#"يج"#, r#"يج"#),
+        (r#"ﳛ"#, r#"ﳛ"#, r#"ﳛ"#, r#"يح"#, r#"يح"#),
+        (r#"ﳜ"#, r#"ﳜ"#, r#"ﳜ"#, r#"يخ"#, r#"يخ"#),
+        (r#"ﳝ"#, r#"ﳝ"#, r#"ﳝ"#, r#"يم"#, r#"يم"#),
+        (r#"ﳞ"#, r#"ﳞ"#, r#"ﳞ"#, r#"يه"#, r#"يه"#),
+        (r#"ﳟ"#, r#"ﳟ"#, r#"ﳟ"#, r#"ئم"#, r#"ئم"#),
+        (r#"ﳠ"#, r#"ﳠ"#, r#"ﳠ"#, r#"ئه"#, r#"ئه"#),
+        (r#"ﳡ"#, r#"ﳡ"#, r#"ﳡ"#, r#"بم"#, r#"بم"#),
+        (r#"ﳢ"#, r#"ﳢ"#, r#"ﳢ"#, r#"به"#, r#"به"#),
+        (r#"ﳣ"#, r#"ﳣ"#, r#"ﳣ"#, r#"تم"#, r#"تم"#),
+        (r#"ﳤ"#, r#"ﳤ"#, r#"ﳤ"#, r#"ته"#, r#"ته"#),
+        (r#"ﳥ"#, r#"ﳥ"#, r#"ﳥ"#, r#"ثم"#, r#"ثم"#),
+        (r#"ﳦ"#, r#"ﳦ"#, r#"ﳦ"#, r#"ثه"#, r#"ثه"#),
+        (r#"ﳧ"#, r#"ﳧ"#, r#"ﳧ"#, r#"سم"#, r#"سم"#),
+        (r#"ﳨ"#, r#"ﳨ"#, r#"ﳨ"#, r#"سه"#, r#"سه"#),
+        (r#"ﳩ"#, r#"ﳩ"#, r#"ﳩ"#, r#"شم"#, r#"شم"#),
+        (r#"ﳪ"#, r#"ﳪ"#, r#"ﳪ"#, r#"شه"#, r#"شه"#),
+        (r#"ﳫ"#, r#"ﳫ"#, r#"ﳫ"#, r#"كل"#, r#"كل"#),
+        (r#"ﳬ"#, r#"ﳬ"#, r#"ﳬ"#, r#"كم"#, r#"كم"#),
+        (r#"ﳭ"#, r#"ﳭ"#, r#"ﳭ"#, r#"لم"#, r#"لم"#),
+        (r#"ﳮ"#, r#"ﳮ"#, r#"ﳮ"#, r#"نم"#, r#"نم"#),
+        (r#"ﳯ"#, r#"ﳯ"#, r#"ﳯ"#, r#"نه"#, r#"نه"#),
+        (r#"ﳰ"#, r#"ﳰ"#, r#"ﳰ"#, r#"يم"#, r#"يم"#),
+        (r#"ﳱ"#, r#"ﳱ"#, r#"ﳱ"#, r#"يه"#, r#"يه"#),
+        (r#"ﳲ"#, r#"ﳲ"#, r#"ﳲ"#, r#"ـَّ"#, r#"ـَّ"#),
+        (r#"ﳳ"#, r#"ﳳ"#, r#"ﳳ"#, r#"ـُّ"#, r#"ـُّ"#),
+        (r#"ﳴ"#, r#"ﳴ"#, r#"ﳴ"#, r#"ـِّ"#, r#"ـِّ"#),
+        (r#"ﳵ"#, r#"ﳵ"#, r#"ﳵ"#, r#"طى"#, r#"طى"#),
+        (r#"ﳶ"#, r#"ﳶ"#, r#"ﳶ"#, r#"طي"#, r#"طي"#),
+        (r#"ﳷ"#, r#"ﳷ"#, r#"ﳷ"#, r#"عى"#, r#"عى"#),
+        (r#"ﳸ"#, r#"ﳸ"#, r#"ﳸ"#, r#"عي"#, r#"عي"#),
+        (r#"ﳹ"#, r#"ﳹ"#, r#"ﳹ"#, r#"غى"#, r#"غى"#),
+        (r#"ﳺ"#, r#"ﳺ"#, r#"ﳺ"#, r#"غي"#, r#"غي"#),
+        (r#"ﳻ"#, r#"ﳻ"#, r#"ﳻ"#, r#"سى"#, r#"سى"#),
+        (r#"ﳼ"#, r#"ﳼ"#, r#"ﳼ"#, r#"سي"#, r#"سي"#),
+        (r#"ﳽ"#, r#"ﳽ"#, r#"ﳽ"#, r#"شى"#, r#"شى"#),
+        (r#"ﳾ"#, r#"ﳾ"#, r#"ﳾ"#, r#"شي"#, r#"شي"#),
+        (r#"ﳿ"#, r#"ﳿ"#, r#"ﳿ"#, r#"حى"#, r#"حى"#),
+        (r#"ﴀ"#, r#"ﴀ"#, r#"ﴀ"#, r#"حي"#, r#"حي"#),
+        (r#"ﴁ"#, r#"ﴁ"#, r#"ﴁ"#, r#"جى"#, r#"جى"#),
+        (r#"ﴂ"#, r#"ﴂ"#, r#"ﴂ"#, r#"جي"#, r#"جي"#),
+        (r#"ﴃ"#, r#"ﴃ"#, r#"ﴃ"#, r#"خى"#, r#"خى"#),
+        (r#"ﴄ"#, r#"ﴄ"#, r#"ﴄ"#, r#"خي"#, r#"خي"#),
+        (r#"ﴅ"#, r#"ﴅ"#, r#"ﴅ"#, r#"صى"#, r#"صى"#),
+        (r#"ﴆ"#, r#"ﴆ"#, r#"ﴆ"#, r#"صي"#, r#"صي"#),
+        (r#"ﴇ"#, r#"ﴇ"#, r#"ﴇ"#, r#"ضى"#, r#"ضى"#),
+        (r#"ﴈ"#, r#"ﴈ"#, r#"ﴈ"#, r#"ضي"#, r#"ضي"#),
+        (r#"ﴉ"#, r#"ﴉ"#, r#"ﴉ"#, r#"شج"#, r#"شج"#),
+        (r#"ﴊ"#, r#"ﴊ"#, r#"ﴊ"#, r#"شح"#, r#"شح"#),
+        (r#"ﴋ"#, r#"ﴋ"#, r#"ﴋ"#, r#"شخ"#, r#"شخ"#),
+        (r#"ﴌ"#, r#"ﴌ"#, r#"ﴌ"#, r#"شم"#, r#"شم"#),
+        (r#"ﴍ"#, r#"ﴍ"#, r#"ﴍ"#, r#"شر"#, r#"شر"#),
+        (r#"ﴎ"#, r#"ﴎ"#, r#"ﴎ"#, r#"سر"#, r#"سر"#),
+        (r#"ﴏ"#, r#"ﴏ"#, r#"ﴏ"#, r#"صر"#, r#"صر"#),
+        (r#"ﴐ"#, r#"ﴐ"#, r#"ﴐ"#, r#"ضر"#, r#"ضر"#),
+        (r#"ﴑ"#, r#"ﴑ"#, r#"ﴑ"#, r#"طى"#, r#"طى"#),
+        (r#"ﴒ"#, r#"ﴒ"#, r#"ﴒ"#, r#"طي"#, r#"طي"#),
+        (r#"ﴓ"#, r#"ﴓ"#, r#"ﴓ"#, r#"عى"#, r#"عى"#),
+        (r#"ﴔ"#, r#"ﴔ"#, r#"ﴔ"#, r#"عي"#, r#"عي"#),
+        (r#"ﴕ"#, r#"ﴕ"#, r#"ﴕ"#, r#"غى"#, r#"غى"#),
+        (r#"ﴖ"#, r#"ﴖ"#, r#"ﴖ"#, r#"غي"#, r#"غي"#),
+        (r#"ﴗ"#, r#"ﴗ"#, r#"ﴗ"#, r#"سى"#, r#"سى"#),
+        (r#"ﴘ"#, r#"ﴘ"#, r#"ﴘ"#, r#"سي"#, r#"سي"#),
+        (r#"ﴙ"#, r#"ﴙ"#, r#"ﴙ"#, r#"شى"#, r#"شى"#),
+        (r#"ﴚ"#, r#"ﴚ"#, r#"ﴚ"#, r#"شي"#, r#"شي"#),
+        (r#"ﴛ"#, r#"ﴛ"#, r#"ﴛ"#, r#"حى"#, r#"حى"#),
+        (r#"ﴜ"#, r#"ﴜ"#, r#"ﴜ"#, r#"حي"#, r#"حي"#),
+        (r#"ﴝ"#, r#"ﴝ"#, r#"ﴝ"#, r#"جى"#, r#"جى"#),
+        (r#"ﴞ"#, r#"ﴞ"#, r#"ﴞ"#, r#"جي"#, r#"جي"#),
+        (r#"ﴟ"#, r#"ﴟ"#, r#"ﴟ"#, r#"خى"#, r#"خى"#),
+        (r#"ﴠ"#, r#"ﴠ"#, r#"ﴠ"#, r#"خي"#, r#"خي"#),
+        (r#"ﴡ"#, r#"ﴡ"#, r#"ﴡ"#, r#"صى"#, r#"صى"#),
+        (r#"ﴢ"#, r#"ﴢ"#, r#"ﴢ"#, r#"صي"#, r#"صي"#),
+        (r#"ﴣ"#, r#"ﴣ"#, r#"ﴣ"#, r#"ضى"#, r#"ضى"#),
+        (r#"ﴤ"#, r#"ﴤ"#, r#"ﴤ"#, r#"ضي"#, r#"ضي"#),
+        (r#"ﴥ"#, r#"ﴥ"#, r#"ﴥ"#, r#"شج"#, r#"شج"#),
+        (r#"ﴦ"#, r#"ﴦ"#, r#"ﴦ"#, r#"شح"#, r#"شح"#),
+        (r#"ﴧ"#, r#"ﴧ"#, r#"ﴧ"#, r#"شخ"#, r#"شخ"#),
+        (r#"ﴨ"#, r#"ﴨ"#, r#"ﴨ"#, r#"شم"#, r#"شم"#),
+        (r#"ﴩ"#, r#"ﴩ"#, r#"ﴩ"#, r#"شر"#, r#"شر"#),
+        (r#"ﴪ"#, r#"ﴪ"#, r#"ﴪ"#, r#"سر"#, r#"سر"#),
+        (r#"ﴫ"#, r#"ﴫ"#, r#"ﴫ"#, r#"صر"#, r#"صر"#),
+        (r#"ﴬ"#, r#"ﴬ"#, r#"ﴬ"#, r#"ضر"#, r#"ضر"#),
+        (r#"ﴭ"#, r#"ﴭ"#, r#"ﴭ"#, r#"شج"#, r#"شج"#),
+        (r#"ﴮ"#, r#"ﴮ"#, r#"ﴮ"#, r#"شح"#, r#"شح"#),
+        (r#"ﴯ"#, r#"ﴯ"#, r#"ﴯ"#, r#"شخ"#, r#"شخ"#),
+        (r#"ﴰ"#, r#"ﴰ"#, r#"ﴰ"#, r#"شم"#, r#"شم"#),
+        (r#"ﴱ"#, r#"ﴱ"#, r#"ﴱ"#, r#"سه"#, r#"سه"#),
+        (r#"ﴲ"#, r#"ﴲ"#, r#"ﴲ"#, r#"شه"#, r#"شه"#),
+        (r#"ﴳ"#, r#"ﴳ"#, r#"ﴳ"#, r#"طم"#, r#"طم"#),
+        (r#"ﴴ"#, r#"ﴴ"#, r#"ﴴ"#, r#"سج"#, r#"سج"#),
+        (r#"ﴵ"#, r#"ﴵ"#, r#"ﴵ"#, r#"سح"#, r#"سح"#),
+        (r#"ﴶ"#, r#"ﴶ"#, r#"ﴶ"#, r#"سخ"#, r#"سخ"#),
+        (r#"ﴷ"#, r#"ﴷ"#, r#"ﴷ"#, r#"شج"#, r#"شج"#),
+        (r#"ﴸ"#, r#"ﴸ"#, r#"ﴸ"#, r#"شح"#, r#"شح"#),
+        (r#"ﴹ"#, r#"ﴹ"#, r#"ﴹ"#, r#"شخ"#, r#"شخ"#),
+        (r#"ﴺ"#, r#"ﴺ"#, r#"ﴺ"#, r#"طم"#, r#"طم"#),
+        (r#"ﴻ"#, r#"ﴻ"#, r#"ﴻ"#, r#"ظم"#, r#"ظم"#),
+        (r#"ﴼ"#, r#"ﴼ"#, r#"ﴼ"#, r#"اً"#, r#"اً"#),
+        (r#"ﴽ"#, r#"ﴽ"#, r#"ﴽ"#, r#"اً"#, r#"اً"#),
+        (r#"ﵐ"#, r#"ﵐ"#, r#"ﵐ"#, r#"تجم"#, r#"تجم"#),
+        (r#"ﵑ"#, r#"ﵑ"#, r#"ﵑ"#, r#"تحج"#, r#"تحج"#),
+        (r#"ﵒ"#, r#"ﵒ"#, r#"ﵒ"#, r#"تحج"#, r#"تحج"#),
+        (r#"ﵓ"#, r#"ﵓ"#, r#"ﵓ"#, r#"تحم"#, r#"تحم"#),
+        (r#"ﵔ"#, r#"ﵔ"#, r#"ﵔ"#, r#"تخم"#, r#"تخم"#),
+        (r#"ﵕ"#, r#"ﵕ"#, r#"ﵕ"#, r#"تمج"#, r#"تمج"#),
+        (r#"ﵖ"#, r#"ﵖ"#, r#"ﵖ"#, r#"تمح"#, r#"تمح"#),
+        (r#"ﵗ"#, r#"ﵗ"#, r#"ﵗ"#, r#"تمخ"#, r#"تمخ"#),
+        (r#"ﵘ"#, r#"ﵘ"#, r#"ﵘ"#, r#"جمح"#, r#"جمح"#),
+        (r#"ﵙ"#, r#"ﵙ"#, r#"ﵙ"#, r#"جمح"#, r#"جمح"#),
+        (r#"ﵚ"#, r#"ﵚ"#, r#"ﵚ"#, r#"حمي"#, r#"حمي"#),
+        (r#"ﵛ"#, r#"ﵛ"#, r#"ﵛ"#, r#"حمى"#, r#"حمى"#),
+        (r#"ﵜ"#, r#"ﵜ"#, r#"ﵜ"#, r#"سحج"#, r#"سحج"#),
+        (r#"ﵝ"#, r#"ﵝ"#, r#"ﵝ"#, r#"سجح"#, r#"سجح"#),
+        (r#"ﵞ"#, r#"ﵞ"#, r#"ﵞ"#, r#"سجى"#, r#"سجى"#),
+        (r#"ﵟ"#, r#"ﵟ"#, r#"ﵟ"#, r#"سمح"#, r#"سمح"#),
+        (r#"ﵠ"#, r#"ﵠ"#, r#"ﵠ"#, r#"سمح"#, r#"سمح"#),
+        (r#"ﵡ"#, r#"ﵡ"#, r#"ﵡ"#, r#"سمج"#, r#"سمج"#),
+        (r#"ﵢ"#, r#"ﵢ"#, r#"ﵢ"#, r#"سمم"#, r#"سمم"#),
+        (r#"ﵣ"#, r#"ﵣ"#, r#"ﵣ"#, r#"سمم"#, r#"سمم"#),
+        (r#"ﵤ"#, r#"ﵤ"#, r#"ﵤ"#, r#"صحح"#, r#"صحح"#),
+        (r#"ﵥ"#, r#"ﵥ"#, r#"ﵥ"#, r#"صحح"#, r#"صحح"#),
+        (r#"ﵦ"#, r#"ﵦ"#, r#"ﵦ"#, r#"صمم"#, r#"صمم"#),
+        (r#"ﵧ"#, r#"ﵧ"#, r#"ﵧ"#, r#"شحم"#, r#"شحم"#),
+        (r#"ﵨ"#, r#"ﵨ"#, r#"ﵨ"#, r#"شحم"#, r#"شحم"#),
+        (r#"ﵩ"#, r#"ﵩ"#, r#"ﵩ"#, r#"شجي"#, r#"شجي"#),
+        (r#"ﵪ"#, r#"ﵪ"#, r#"ﵪ"#, r#"شمخ"#, r#"شمخ"#),
+        (r#"ﵫ"#, r#"ﵫ"#, r#"ﵫ"#, r#"شمخ"#, r#"شمخ"#),
+        (r#"ﵬ"#, r#"ﵬ"#, r#"ﵬ"#, r#"شمم"#, r#"شمم"#),
+        (r#"ﵭ"#, r#"ﵭ"#, r#"ﵭ"#, r#"شمم"#, r#"شمم"#),
+        (r#"ﵮ"#, r#"ﵮ"#, r#"ﵮ"#, r#"ضحى"#, r#"ضحى"#),
+        (r#"ﵯ"#, r#"ﵯ"#, r#"ﵯ"#, r#"ضخم"#, r#"ضخم"#),
+        (r#"ﵰ"#, r#"ﵰ"#, r#"ﵰ"#, r#"ضخم"#, r#"ضخم"#),
+        (r#"ﵱ"#, r#"ﵱ"#, r#"ﵱ"#, r#"طمح"#, r#"طمح"#),
+        (r#"ﵲ"#, r#"ﵲ"#, r#"ﵲ"#, r#"طمح"#, r#"طمح"#),
+        (r#"ﵳ"#, r#"ﵳ"#, r#"ﵳ"#, r#"طمم"#, r#"طمم"#),
+        (r#"ﵴ"#, r#"ﵴ"#, r#"ﵴ"#, r#"طمي"#, r#"طمي"#),
+        (r#"ﵵ"#, r#"ﵵ"#, r#"ﵵ"#, r#"عجم"#, r#"عجم"#),
+        (r#"ﵶ"#, r#"ﵶ"#, r#"ﵶ"#, r#"عمم"#, r#"عمم"#),
+        (r#"ﵷ"#, r#"ﵷ"#, r#"ﵷ"#, r#"عمم"#, r#"عمم"#),
+        (r#"ﵸ"#, r#"ﵸ"#, r#"ﵸ"#, r#"عمى"#, r#"عمى"#),
+        (r#"ﵹ"#, r#"ﵹ"#, r#"ﵹ"#, r#"غمم"#, r#"غمم"#),
+        (r#"ﵺ"#, r#"ﵺ"#, r#"ﵺ"#, r#"غمي"#, r#"غمي"#),
+        (r#"ﵻ"#, r#"ﵻ"#, r#"ﵻ"#, r#"غمى"#, r#"غمى"#),
+        (r#"ﵼ"#, r#"ﵼ"#, r#"ﵼ"#, r#"فخم"#, r#"فخم"#),
+        (r#"ﵽ"#, r#"ﵽ"#, r#"ﵽ"#, r#"فخم"#, r#"فخم"#),
+        (r#"ﵾ"#, r#"ﵾ"#, r#"ﵾ"#, r#"قمح"#, r#"قمح"#),
+        (r#"ﵿ"#, r#"ﵿ"#, r#"ﵿ"#, r#"قمم"#, r#"قمم"#),
+        (r#"ﶀ"#, r#"ﶀ"#, r#"ﶀ"#, r#"لحم"#, r#"لحم"#),
+        (r#"ﶁ"#, r#"ﶁ"#, r#"ﶁ"#, r#"لحي"#, r#"لحي"#),
+        (r#"ﶂ"#, r#"ﶂ"#, r#"ﶂ"#, r#"لحى"#, r#"لحى"#),
+        (r#"ﶃ"#, r#"ﶃ"#, r#"ﶃ"#, r#"لجج"#, r#"لجج"#),
+        (r#"ﶄ"#, r#"ﶄ"#, r#"ﶄ"#, r#"لجج"#, r#"لجج"#),
+        (r#"ﶅ"#, r#"ﶅ"#, r#"ﶅ"#, r#"لخم"#, r#"لخم"#),
+        (r#"ﶆ"#, r#"ﶆ"#, r#"ﶆ"#, r#"لخم"#, r#"لخم"#),
+        (r#"ﶇ"#, r#"ﶇ"#, r#"ﶇ"#, r#"لمح"#, r#"لمح"#),
+        (r#"ﶈ"#, r#"ﶈ"#, r#"ﶈ"#, r#"لمح"#, r#"لمح"#),
+        (r#"ﶉ"#, r#"ﶉ"#, r#"ﶉ"#, r#"محج"#, r#"محج"#),
+        (r#"ﶊ"#, r#"ﶊ"#, r#"ﶊ"#, r#"محم"#, r#"محم"#),
+        (r#"ﶋ"#, r#"ﶋ"#, r#"ﶋ"#, r#"محي"#, r#"محي"#),
+        (r#"ﶌ"#, r#"ﶌ"#, r#"ﶌ"#, r#"مجح"#, r#"مجح"#),
+        (r#"ﶍ"#, r#"ﶍ"#, r#"ﶍ"#, r#"مجم"#, r#"مجم"#),
+        (r#"ﶎ"#, r#"ﶎ"#, r#"ﶎ"#, r#"مخج"#, r#"مخج"#),
+        (r#"ﶏ"#, r#"ﶏ"#, r#"ﶏ"#, r#"مخم"#, r#"مخم"#),
+        (r#"ﶒ"#, r#"ﶒ"#, r#"ﶒ"#, r#"مجخ"#, r#"مجخ"#),
+        (r#"ﶓ"#, r#"ﶓ"#, r#"ﶓ"#, r#"همج"#, r#"همج"#),
+        (r#"ﶔ"#, r#"ﶔ"#, r#"ﶔ"#, r#"همم"#, r#"همم"#),
+        (r#"ﶕ"#, r#"ﶕ"#, r#"ﶕ"#, r#"نحم"#, r#"نحم"#),
+        (r#"ﶖ"#, r#"ﶖ"#, r#"ﶖ"#, r#"نحى"#, r#"نحى"#),
+        (r#"ﶗ"#, r#"ﶗ"#, r#"ﶗ"#, r#"نجم"#, r#"نجم"#),
+        (r#"ﶘ"#, r#"ﶘ"#, r#"ﶘ"#, r#"نجم"#, r#"نجم"#),
+        (r#"ﶙ"#, r#"ﶙ"#, r#"ﶙ"#, r#"نجى"#, r#"نجى"#),
+        (r#"ﶚ"#, r#"ﶚ"#, r#"ﶚ"#, r#"نمي"#, r#"نمي"#),
+        (r#"ﶛ"#, r#"ﶛ"#, r#"ﶛ"#, r#"نمى"#, r#"نمى"#),
+        (r#"ﶜ"#, r#"ﶜ"#, r#"ﶜ"#, r#"يمم"#, r#"يمم"#),
+        (r#"ﶝ"#, r#"ﶝ"#, r#"ﶝ"#, r#"يمم"#, r#"يمم"#),
+        (r#"ﶞ"#, r#"ﶞ"#, r#"ﶞ"#, r#"بخي"#, r#"بخي"#),
+        (r#"ﶟ"#, r#"ﶟ"#, r#"ﶟ"#, r#"تجي"#, r#"تجي"#),
+        (r#"ﶠ"#, r#"ﶠ"#, r#"ﶠ"#, r#"تجى"#, r#"تجى"#),
+        (r#"ﶡ"#, r#"ﶡ"#, r#"ﶡ"#, r#"تخي"#, r#"تخي"#),
+        (r#"ﶢ"#, r#"ﶢ"#, r#"ﶢ"#, r#"تخى"#, r#"تخى"#),
+        (r#"ﶣ"#, r#"ﶣ"#, r#"ﶣ"#, r#"تمي"#, r#"تمي"#),
+        (r#"ﶤ"#, r#"ﶤ"#, r#"ﶤ"#, r#"تمى"#, r#"تمى"#),
+        (r#"ﶥ"#, r#"ﶥ"#, r#"ﶥ"#, r#"جمي"#, r#"جمي"#),
+        (r#"ﶦ"#, r#"ﶦ"#, r#"ﶦ"#, r#"جحى"#, r#"جحى"#),
+        (r#"ﶧ"#, r#"ﶧ"#, r#"ﶧ"#, r#"جمى"#, r#"جمى"#),
+        (r#"ﶨ"#, r#"ﶨ"#, r#"ﶨ"#, r#"سخى"#, r#"سخى"#),
+        (r#"ﶩ"#, r#"ﶩ"#, r#"ﶩ"#, r#"صحي"#, r#"صحي"#),
+        (r#"ﶪ"#, r#"ﶪ"#, r#"ﶪ"#, r#"شحي"#, r#"شحي"#),
+        (r#"ﶫ"#, r#"ﶫ"#, r#"ﶫ"#, r#"ضحي"#, r#"ضحي"#),
+        (r#"ﶬ"#, r#"ﶬ"#, r#"ﶬ"#, r#"لجي"#, r#"لجي"#),
+        (r#"ﶭ"#, r#"ﶭ"#, r#"ﶭ"#, r#"لمي"#, r#"لمي"#),
+        (r#"ﶮ"#, r#"ﶮ"#, r#"ﶮ"#, r#"يحي"#, r#"يحي"#),
+        (r#"ﶯ"#, r#"ﶯ"#, r#"ﶯ"#, r#"يجي"#, r#"يجي"#),
+        (r#"ﶰ"#, r#"ﶰ"#, r#"ﶰ"#, r#"يمي"#, r#"يمي"#),
+        (r#"ﶱ"#, r#"ﶱ"#, r#"ﶱ"#, r#"ممي"#, r#"ممي"#),
+        (r#"ﶲ"#, r#"ﶲ"#, r#"ﶲ"#, r#"قمي"#, r#"قمي"#),
+        (r#"ﶳ"#, r#"ﶳ"#, r#"ﶳ"#, r#"نحي"#, r#"نحي"#),
+        (r#"ﶴ"#, r#"ﶴ"#, r#"ﶴ"#, r#"قمح"#, r#"قمح"#),
+        (r#"ﶵ"#, r#"ﶵ"#, r#"ﶵ"#, r#"لحم"#, r#"لحم"#),
+        (r#"ﶶ"#, r#"ﶶ"#, r#"ﶶ"#, r#"عمي"#, r#"عمي"#),
+        (r#"ﶷ"#, r#"ﶷ"#, r#"ﶷ"#, r#"كمي"#, r#"كمي"#),
+        (r#"ﶸ"#, r#"ﶸ"#, r#"ﶸ"#, r#"نجح"#, r#"نجح"#),
+        (r#"ﶹ"#, r#"ﶹ"#, r#"ﶹ"#, r#"مخي"#, r#"مخي"#),
+        (r#"ﶺ"#, r#"ﶺ"#, r#"ﶺ"#, r#"لجم"#, r#"لجم"#),
+        (r#"ﶻ"#, r#"ﶻ"#, r#"ﶻ"#, r#"كمم"#, r#"كمم"#),
+        (r#"ﶼ"#, r#"ﶼ"#, r#"ﶼ"#, r#"لجم"#, r#"لجم"#),
+        (r#"ﶽ"#, r#"ﶽ"#, r#"ﶽ"#, r#"نجح"#, r#"نجح"#),
+        (r#"ﶾ"#, r#"ﶾ"#, r#"ﶾ"#, r#"جحي"#, r#"جحي"#),
+        (r#"ﶿ"#, r#"ﶿ"#, r#"ﶿ"#, r#"حجي"#, r#"حجي"#),
+        (r#"ﷀ"#, r#"ﷀ"#, r#"ﷀ"#, r#"مجي"#, r#"مجي"#),
+        (r#"ﷁ"#, r#"ﷁ"#, r#"ﷁ"#, r#"فمي"#, r#"فمي"#),
+        (r#"ﷂ"#, r#"ﷂ"#, r#"ﷂ"#, r#"بحي"#, r#"بحي"#),
+        (r#"ﷃ"#, r#"ﷃ"#, r#"ﷃ"#, r#"كمم"#, r#"كمم"#),
+        (r#"ﷄ"#, r#"ﷄ"#, r#"ﷄ"#, r#"عجم"#, r#"عجم"#),
+        (r#"ﷅ"#, r#"ﷅ"#, r#"ﷅ"#, r#"صمم"#, r#"صمم"#),
+        (r#"ﷆ"#, r#"ﷆ"#, r#"ﷆ"#, r#"سخي"#, r#"سخي"#),
+        (r#"ﷇ"#, r#"ﷇ"#, r#"ﷇ"#, r#"نجي"#, r#"نجي"#),
+        (r#"ﷰ"#, r#"ﷰ"#, r#"ﷰ"#, r#"صلے"#, r#"صلے"#),
+        (r#"ﷱ"#, r#"ﷱ"#, r#"ﷱ"#, r#"قلے"#, r#"قلے"#),
+        (r#"ﷲ"#, r#"ﷲ"#, r#"ﷲ"#, r#"الله"#, r#"الله"#),
+        (r#"ﷳ"#, r#"ﷳ"#, r#"ﷳ"#, r#"اكبر"#, r#"اكبر"#),
+        (r#"ﷴ"#, r#"ﷴ"#, r#"ﷴ"#, r#"محمد"#, r#"محمد"#),
+        (r#"ﷵ"#, r#"ﷵ"#, r#"ﷵ"#, r#"صلعم"#, r#"صلعم"#),
+        (r#"ﷶ"#, r#"ﷶ"#, r#"ﷶ"#, r#"رسول"#, r#"رسول"#),
+        (r#"ﷷ"#, r#"ﷷ"#, r#"ﷷ"#, r#"عليه"#, r#"عليه"#),
+        (r#"ﷸ"#, r#"ﷸ"#, r#"ﷸ"#, r#"وسلم"#, r#"وسلم"#),
+        (r#"ﷹ"#, r#"ﷹ"#, r#"ﷹ"#, r#"صلى"#, r#"صلى"#),
+        (r#"ﷺ"#, r#"ﷺ"#, r#"ﷺ"#, r#"صلى الله عليه وسلم"#, r#"صلى الله عليه وسلم"#),
+        (r#"ﷻ"#, r#"ﷻ"#, r#"ﷻ"#, r#"جل جلاله"#, r#"جل جلاله"#),
+        (r#"﷼"#, r#"﷼"#, r#"﷼"#, r#"ریال"#, r#"ریال"#),
+        (r#"︐"#, r#"︐"#, r#"︐"#, r#","#, r#","#),
+        (r#"︑"#, r#"︑"#, r#"︑"#, r#"、"#, r#"、"#),
+        (r#"︒"#, r#"︒"#, r#"︒"#, r#"。"#, r#"。"#),
+        (r#"︓"#, r#"︓"#, r#"︓"#, r#":"#, r#":"#),
+        (r#"︔"#, r#"︔"#, r#"︔"#, r#";"#, r#";"#),
+        (r#"︕"#, r#"︕"#, r#"︕"#, r#"!"#, r#"!"#),
+        (r#"︖"#, r#"︖"#, r#"︖"#, r#"?"#, r#"?"#),
+        (r#"︗"#, r#"︗"#, r#"︗"#, r#"〖"#, r#"〖"#),
+        (r#"︘"#, r#"︘"#, r#"︘"#, r#"〗"#, r#"〗"#),
+        (r#"︙"#, r#"︙"#, r#"︙"#, r#"..."#, r#"..."#),
+        (r#"︰"#, r#"︰"#, r#"︰"#, r#".."#, r#".."#),
+        (r#"︱"#, r#"︱"#, r#"︱"#, r#"—"#, r#"—"#),
+        (r#"︲"#, r#"︲"#, r#"︲"#, r#"–"#, r#"–"#),
+        (r#"︳"#, r#"︳"#, r#"︳"#, r#"_"#, r#"_"#),
+        (r#"︴"#, r#"︴"#, r#"︴"#, r#"_"#, r#"_"#),
+        (r#"︵"#, r#"︵"#, r#"︵"#, r#"("#, r#"("#),
+        (r#"︶"#, r#"︶"#, r#"︶"#, r#")"#, r#")"#),
+        (r#"︷"#, r#"︷"#, r#"︷"#, r#"{"#, r#"{"#),
+        (r#"︸"#, r#"︸"#, r#"︸"#, r#"}"#, r#"}"#),
+        (r#"︹"#, r#"︹"#, r#"︹"#, r#"〔"#, r#"〔"#),
+        (r#"︺"#, r#"︺"#, r#"︺"#, r#"〕"#, r#"〕"#),
+        (r#"︻"#, r#"︻"#, r#"︻"#, r#"【"#, r#"【"#),
+        (r#"︼"#, r#"︼"#, r#"︼"#, r#"】"#, r#"】"#),
+        (r#"︽"#, r#"︽"#, r#"︽"#, r#"《"#, r#"《"#),
+        (r#"︾"#, r#"︾"#, r#"︾"#, r#"》"#, r#"》"#),
+        (r#"︿"#, r#"︿"#, r#"︿"#, r#"〈"#, r#"〈"#),
+        (r#"﹀"#, r#"﹀"#, r#"﹀"#, r#"〉"#, r#"〉"#),
+        (r#"﹁"#, r#"﹁"#, r#"﹁"#, r#"「"#, r#"「"#),
+        (r#"﹂"#, r#"﹂"#, r#"﹂"#, r#"」"#, r#"」"#),
+        (r#"﹃"#, r#"﹃"#, r#"﹃"#, r#"『"#, r#"『"#),
+        (r#"﹄"#, r#"﹄"#, r#"﹄"#, r#"』"#, r#"』"#),
+        (r#"﹇"#, r#"﹇"#, r#"﹇"#, r#"["#, r#"["#),
+        (r#"﹈"#, r#"﹈"#, r#"﹈"#, r#"]"#, r#"]"#),
+        (r#"﹉"#, r#"﹉"#, r#"﹉"#, r#" ̅"#, r#" ̅"#),
+        (r#"﹊"#, r#"﹊"#, r#"﹊"#, r#" ̅"#, r#" ̅"#),
+        (r#"﹋"#, r#"﹋"#, r#"﹋"#, r#" ̅"#, r#" ̅"#),
+        (r#"﹌"#, r#"﹌"#, r#"﹌"#, r#" ̅"#, r#" ̅"#),
+        (r#"﹍"#, r#"﹍"#, r#"﹍"#, r#"_"#, r#"_"#),
+        (r#"﹎"#, r#"﹎"#, r#"﹎"#, r#"_"#, r#"_"#),
+        (r#"﹏"#, r#"﹏"#, r#"﹏"#, r#"_"#, r#"_"#),
+        (r#"﹐"#, r#"﹐"#, r#"﹐"#, r#","#, r#","#),
+        (r#"﹑"#, r#"﹑"#, r#"﹑"#, r#"、"#, r#"、"#),
+        (r#"﹒"#, r#"﹒"#, r#"﹒"#, r#"."#, r#"."#),
+        (r#"﹔"#, r#"﹔"#, r#"﹔"#, r#";"#, r#";"#),
+        (r#"﹕"#, r#"﹕"#, r#"﹕"#, r#":"#, r#":"#),
+        (r#"﹖"#, r#"﹖"#, r#"﹖"#, r#"?"#, r#"?"#),
+        (r#"﹗"#, r#"﹗"#, r#"﹗"#, r#"!"#, r#"!"#),
+        (r#"﹘"#, r#"﹘"#, r#"﹘"#, r#"—"#, r#"—"#),
+        (r#"﹙"#, r#"﹙"#, r#"﹙"#, r#"("#, r#"("#),
+        (r#"﹚"#, r#"﹚"#, r#"﹚"#, r#")"#, r#")"#),
+        (r#"﹛"#, r#"﹛"#, r#"﹛"#, r#"{"#, r#"{"#),
+        (r#"﹜"#, r#"﹜"#, r#"﹜"#, r#"}"#, r#"}"#),
+        (r#"﹝"#, r#"﹝"#, r#"﹝"#, r#"〔"#, r#"〔"#),
+        (r#"﹞"#, r#"﹞"#, r#"﹞"#, r#"〕"#, r#"〕"#),
+        (r#"﹟"#, r#"﹟"#, r#"﹟"#, r#"#"#, r#"#"#),
+        (r#"﹠"#, r#"﹠"#, r#"﹠"#, r#"&"#, r#"&"#),
+        (r#"﹡"#, r#"﹡"#, r#"﹡"#, r#"*"#, r#"*"#),
+        (r#"﹢"#, r#"﹢"#, r#"﹢"#, r#"+"#, r#"+"#),
+        (r#"﹣"#, r#"﹣"#, r#"﹣"#, r#"-"#, r#"-"#),
+        (r#"﹤"#, r#"﹤"#, r#"﹤"#, r#"<"#, r#"<"#),
+        (r#"﹥"#, r#"﹥"#, r#"﹥"#, r#">"#, r#">"#),
+        (r#"﹦"#, r#"﹦"#, r#"﹦"#, r#"="#, r#"="#),
+        (r#"﹨"#, r#"﹨"#, r#"﹨"#, r#"\"#, r#"\"#),
+        (r#"﹩"#, r#"﹩"#, r#"﹩"#, r#"$"#, r#"$"#),
+        (r#"﹪"#, r#"﹪"#, r#"﹪"#, r#"%"#, r#"%"#),
+        (r#"﹫"#, r#"﹫"#, r#"﹫"#, r#"@"#, r#"@"#),
+        (r#"ﹰ"#, r#"ﹰ"#, r#"ﹰ"#, r#" ً"#, r#" ً"#),
+        (r#"ﹱ"#, r#"ﹱ"#, r#"ﹱ"#, r#"ـً"#, r#"ـً"#),
+        (r#"ﹲ"#, r#"ﹲ"#, r#"ﹲ"#, r#" ٌ"#, r#" ٌ"#),
+        (r#"ﹴ"#, r#"ﹴ"#, r#"ﹴ"#, r#" ٍ"#, r#" ٍ"#),
+        (r#"ﹶ"#, r#"ﹶ"#, r#"ﹶ"#, r#" َ"#, r#" َ"#),
+        (r#"ﹷ"#, r#"ﹷ"#, r#"ﹷ"#, r#"ـَ"#, r#"ـَ"#),
+        (r#"ﹸ"#, r#"ﹸ"#, r#"ﹸ"#, r#" ُ"#, r#" ُ"#),
+        (r#"ﹹ"#, r#"ﹹ"#, r#"ﹹ"#, r#"ـُ"#, r#"ـُ"#),
+        (r#"ﹺ"#, r#"ﹺ"#, r#"ﹺ"#, r#" ِ"#, r#" ِ"#),
+        (r#"ﹻ"#, r#"ﹻ"#, r#"ﹻ"#, r#"ـِ"#, r#"ـِ"#),
+        (r#"ﹼ"#, r#"ﹼ"#, r#"ﹼ"#, r#" ّ"#, r#" ّ"#),
+        (r#"ﹽ"#, r#"ﹽ"#, r#"ﹽ"#, r#"ـّ"#, r#"ـّ"#),
+        (r#"ﹾ"#, r#"ﹾ"#, r#"ﹾ"#, r#" ْ"#, r#" ْ"#),
+        (r#"ﹿ"#, r#"ﹿ"#, r#"ﹿ"#, r#"ـْ"#, r#"ـْ"#),
+        (r#"ﺀ"#, r#"ﺀ"#, r#"ﺀ"#, r#"ء"#, r#"ء"#),
+        (r#"ﺁ"#, r#"ﺁ"#, r#"ﺁ"#, r#"آ"#, r#"آ"#),
+        (r#"ﺂ"#, r#"ﺂ"#, r#"ﺂ"#, r#"آ"#, r#"آ"#),
+        (r#"ﺃ"#, r#"ﺃ"#, r#"ﺃ"#, r#"أ"#, r#"أ"#),
+        (r#"ﺄ"#, r#"ﺄ"#, r#"ﺄ"#, r#"أ"#, r#"أ"#),
+        (r#"ﺅ"#, r#"ﺅ"#, r#"ﺅ"#, r#"ؤ"#, r#"ؤ"#),
+        (r#"ﺆ"#, r#"ﺆ"#, r#"ﺆ"#, r#"ؤ"#, r#"ؤ"#),
+        (r#"ﺇ"#, r#"ﺇ"#, r#"ﺇ"#, r#"إ"#, r#"إ"#),
+        (r#"ﺈ"#, r#"ﺈ"#, r#"ﺈ"#, r#"إ"#, r#"إ"#),
+        (r#"ﺉ"#, r#"ﺉ"#, r#"ﺉ"#, r#"ئ"#, r#"ئ"#),
+        (r#"ﺊ"#, r#"ﺊ"#, r#"ﺊ"#, r#"ئ"#, r#"ئ"#),
+        (r#"ﺋ"#, r#"ﺋ"#, r#"ﺋ"#, r#"ئ"#, r#"ئ"#),
+        (r#"ﺌ"#, r#"ﺌ"#, r#"ﺌ"#, r#"ئ"#, r#"ئ"#),
+        (r#"ﺍ"#, r#"ﺍ"#, r#"ﺍ"#, r#"ا"#, r#"ا"#),
+        (r#"ﺎ"#, r#"ﺎ"#, r#"ﺎ"#, r#"ا"#, r#"ا"#),
+        (r#"ﺏ"#, r#"ﺏ"#, r#"ﺏ"#, r#"ب"#, r#"ب"#),
+        (r#"ﺐ"#, r#"ﺐ"#, r#"ﺐ"#, r#"ب"#, r#"ب"#),
+        (r#"ﺑ"#, r#"ﺑ"#, r#"ﺑ"#, r#"ب"#, r#"ب"#),
+        (r#"ﺒ"#, r#"ﺒ"#, r#"ﺒ"#, r#"ب"#, r#"ب"#),
+        (r#"ﺓ"#, r#"ﺓ"#, r#"ﺓ"#, r#"ة"#, r#"ة"#),
+        (r#"ﺔ"#, r#"ﺔ"#, r#"ﺔ"#, r#"ة"#, r#"ة"#),
+        (r#"ﺕ"#, r#"ﺕ"#, r#"ﺕ"#, r#"ت"#, r#"ت"#),
+        (r#"ﺖ"#, r#"ﺖ"#, r#"ﺖ"#, r#"ت"#, r#"ت"#),
+        (r#"ﺗ"#, r#"ﺗ"#, r#"ﺗ"#, r#"ت"#, r#"ت"#),
+        (r#"ﺘ"#, r#"ﺘ"#, r#"ﺘ"#, r#"ت"#, r#"ت"#),
+        (r#"ﺙ"#, r#"ﺙ"#, r#"ﺙ"#, r#"ث"#, r#"ث"#),
+        (r#"ﺚ"#, r#"ﺚ"#, r#"ﺚ"#, r#"ث"#, r#"ث"#),
+        (r#"ﺛ"#, r#"ﺛ"#, r#"ﺛ"#, r#"ث"#, r#"ث"#),
+        (r#"ﺜ"#, r#"ﺜ"#, r#"ﺜ"#, r#"ث"#, r#"ث"#),
+        (r#"ﺝ"#, r#"ﺝ"#, r#"ﺝ"#, r#"ج"#, r#"ج"#),
+        (r#"ﺞ"#, r#"ﺞ"#, r#"ﺞ"#, r#"ج"#, r#"ج"#),
+        (r#"ﺟ"#, r#"ﺟ"#, r#"ﺟ"#, r#"ج"#, r#"ج"#),
+        (r#"ﺠ"#, r#"ﺠ"#, r#"ﺠ"#, r#"ج"#, r#"ج"#),
+        (r#"ﺡ"#, r#"ﺡ"#, r#"ﺡ"#, r#"ح"#, r#"ح"#),
+        (r#"ﺢ"#, r#"ﺢ"#, r#"ﺢ"#, r#"ح"#, r#"ح"#),
+        (r#"ﺣ"#, r#"ﺣ"#, r#"ﺣ"#, r#"ح"#, r#"ح"#),
+        (r#"ﺤ"#, r#"ﺤ"#, r#"ﺤ"#, r#"ح"#, r#"ح"#),
+        (r#"ﺥ"#, r#"ﺥ"#, r#"ﺥ"#, r#"خ"#, r#"خ"#),
+        (r#"ﺦ"#, r#"ﺦ"#, r#"ﺦ"#, r#"خ"#, r#"خ"#),
+        (r#"ﺧ"#, r#"ﺧ"#, r#"ﺧ"#, r#"خ"#, r#"خ"#),
+        (r#"ﺨ"#, r#"ﺨ"#, r#"ﺨ"#, r#"خ"#, r#"خ"#),
+        (r#"ﺩ"#, r#"ﺩ"#, r#"ﺩ"#, r#"د"#, r#"د"#),
+        (r#"ﺪ"#, r#"ﺪ"#, r#"ﺪ"#, r#"د"#, r#"د"#),
+        (r#"ﺫ"#, r#"ﺫ"#, r#"ﺫ"#, r#"ذ"#, r#"ذ"#),
+        (r#"ﺬ"#, r#"ﺬ"#, r#"ﺬ"#, r#"ذ"#, r#"ذ"#),
+        (r#"ﺭ"#, r#"ﺭ"#, r#"ﺭ"#, r#"ر"#, r#"ر"#),
+        (r#"ﺮ"#, r#"ﺮ"#, r#"ﺮ"#, r#"ر"#, r#"ر"#),
+        (r#"ﺯ"#, r#"ﺯ"#, r#"ﺯ"#, r#"ز"#, r#"ز"#),
+        (r#"ﺰ"#, r#"ﺰ"#, r#"ﺰ"#, r#"ز"#, r#"ز"#),
+        (r#"ﺱ"#, r#"ﺱ"#, r#"ﺱ"#, r#"س"#, r#"س"#),
+        (r#"ﺲ"#, r#"ﺲ"#, r#"ﺲ"#, r#"س"#, r#"س"#),
+        (r#"ﺳ"#, r#"ﺳ"#, r#"ﺳ"#, r#"س"#, r#"س"#),
+        (r#"ﺴ"#, r#"ﺴ"#, r#"ﺴ"#, r#"س"#, r#"س"#),
+        (r#"ﺵ"#, r#"ﺵ"#, r#"ﺵ"#, r#"ش"#, r#"ش"#),
+        (r#"ﺶ"#, r#"ﺶ"#, r#"ﺶ"#, r#"ش"#, r#"ش"#),
+        (r#"ﺷ"#, r#"ﺷ"#, r#"ﺷ"#, r#"ش"#, r#"ش"#),
+        (r#"ﺸ"#, r#"ﺸ"#, r#"ﺸ"#, r#"ش"#, r#"ش"#),
+        (r#"ﺹ"#, r#"ﺹ"#, r#"ﺹ"#, r#"ص"#, r#"ص"#),
+        (r#"ﺺ"#, r#"ﺺ"#, r#"ﺺ"#, r#"ص"#, r#"ص"#),
+        (r#"ﺻ"#, r#"ﺻ"#, r#"ﺻ"#, r#"ص"#, r#"ص"#),
+        (r#"ﺼ"#, r#"ﺼ"#, r#"ﺼ"#, r#"ص"#, r#"ص"#),
+        (r#"ﺽ"#, r#"ﺽ"#, r#"ﺽ"#, r#"ض"#, r#"ض"#),
+        (r#"ﺾ"#, r#"ﺾ"#, r#"ﺾ"#, r#"ض"#, r#"ض"#),
+        (r#"ﺿ"#, r#"ﺿ"#, r#"ﺿ"#, r#"ض"#, r#"ض"#),
+        (r#"ﻀ"#, r#"ﻀ"#, r#"ﻀ"#, r#"ض"#, r#"ض"#),
+        (r#"ﻁ"#, r#"ﻁ"#, r#"ﻁ"#, r#"ط"#, r#"ط"#),
+        (r#"ﻂ"#, r#"ﻂ"#, r#"ﻂ"#, r#"ط"#, r#"ط"#),
+        (r#"ﻃ"#, r#"ﻃ"#, r#"ﻃ"#, r#"ط"#, r#"ط"#),
+        (r#"ﻄ"#, r#"ﻄ"#, r#"ﻄ"#, r#"ط"#, r#"ط"#),
+        (r#"ﻅ"#, r#"ﻅ"#, r#"ﻅ"#, r#"ظ"#, r#"ظ"#),
+        (r#"ﻆ"#, r#"ﻆ"#, r#"ﻆ"#, r#"ظ"#, r#"ظ"#),
+        (r#"ﻇ"#, r#"ﻇ"#, r#"ﻇ"#, r#"ظ"#, r#"ظ"#),
+        (r#"ﻈ"#, r#"ﻈ"#, r#"ﻈ"#, r#"ظ"#, r#"ظ"#),
+        (r#"ﻉ"#, r#"ﻉ"#, r#"ﻉ"#, r#"ع"#, r#"ع"#),
+        (r#"ﻊ"#, r#"ﻊ"#, r#"ﻊ"#, r#"ع"#, r#"ع"#),
+        (r#"ﻋ"#, r#"ﻋ"#, r#"ﻋ"#, r#"ع"#, r#"ع"#),
+        (r#"ﻌ"#, r#"ﻌ"#, r#"ﻌ"#, r#"ع"#, r#"ع"#),
+        (r#"ﻍ"#, r#"ﻍ"#, r#"ﻍ"#, r#"غ"#, r#"غ"#),
+        (r#"ﻎ"#, r#"ﻎ"#, r#"ﻎ"#, r#"غ"#, r#"غ"#),
+        (r#"ﻏ"#, r#"ﻏ"#, r#"ﻏ"#, r#"غ"#, r#"غ"#),
+        (r#"ﻐ"#, r#"ﻐ"#, r#"ﻐ"#, r#"غ"#, r#"غ"#),
+        (r#"ﻑ"#, r#"ﻑ"#, r#"ﻑ"#, r#"ف"#, r#"ف"#),
+        (r#"ﻒ"#, r#"ﻒ"#, r#"ﻒ"#, r#"ف"#, r#"ف"#),
+        (r#"ﻓ"#, r#"ﻓ"#, r#"ﻓ"#, r#"ف"#, r#"ف"#),
+        (r#"ﻔ"#, r#"ﻔ"#, r#"ﻔ"#, r#"ف"#, r#"ف"#),
+        (r#"ﻕ"#, r#"ﻕ"#, r#"ﻕ"#, r#"ق"#, r#"ق"#),
+        (r#"ﻖ"#, r#"ﻖ"#, r#"ﻖ"#, r#"ق"#, r#"ق"#),
+        (r#"ﻗ"#, r#"ﻗ"#, r#"ﻗ"#, r#"ق"#, r#"ق"#),
+        (r#"ﻘ"#, r#"ﻘ"#, r#"ﻘ"#, r#"ق"#, r#"ق"#),
+        (r#"ﻙ"#, r#"ﻙ"#, r#"ﻙ"#, r#"ك"#, r#"ك"#),
+        (r#"ﻚ"#, r#"ﻚ"#, r#"ﻚ"#, r#"ك"#, r#"ك"#),
+        (r#"ﻛ"#, r#"ﻛ"#, r#"ﻛ"#, r#"ك"#, r#"ك"#),
+        (r#"ﻜ"#, r#"ﻜ"#, r#"ﻜ"#, r#"ك"#, r#"ك"#),
+        (r#"ﻝ"#, r#"ﻝ"#, r#"ﻝ"#, r#"ل"#, r#"ل"#),
+        (r#"ﻞ"#, r#"ﻞ"#, r#"ﻞ"#, r#"ل"#, r#"ل"#),
+        (r#"ﻟ"#, r#"ﻟ"#, r#"ﻟ"#, r#"ل"#, r#"ل"#),
+        (r#"ﻠ"#, r#"ﻠ"#, r#"ﻠ"#, r#"ل"#, r#"ل"#),
+        (r#"ﻡ"#, r#"ﻡ"#, r#"ﻡ"#, r#"م"#, r#"م"#),
+        (r#"ﻢ"#, r#"ﻢ"#, r#"ﻢ"#, r#"م"#, r#"م"#),
+        (r#"ﻣ"#, r#"ﻣ"#, r#"ﻣ"#, r#"م"#, r#"م"#),
+        (r#"ﻤ"#, r#"ﻤ"#, r#"ﻤ"#, r#"م"#, r#"م"#),
+        (r#"ﻥ"#, r#"ﻥ"#, r#"ﻥ"#, r#"ن"#, r#"ن"#),
+        (r#"ﻦ"#, r#"ﻦ"#, r#"ﻦ"#, r#"ن"#, r#"ن"#),
+        (r#"ﻧ"#, r#"ﻧ"#, r#"ﻧ"#, r#"ن"#, r#"ن"#),
+        (r#"ﻨ"#, r#"ﻨ"#, r#"ﻨ"#, r#"ن"#, r#"ن"#),
+        (r#"ﻩ"#, r#"ﻩ"#, r#"ﻩ"#, r#"ه"#, r#"ه"#),
+        (r#"ﻪ"#, r#"ﻪ"#, r#"ﻪ"#, r#"ه"#, r#"ه"#),
+        (r#"ﻫ"#, r#"ﻫ"#, r#"ﻫ"#, r#"ه"#, r#"ه"#),
+        (r#"ﻬ"#, r#"ﻬ"#, r#"ﻬ"#, r#"ه"#, r#"ه"#),
+        (r#"ﻭ"#, r#"ﻭ"#, r#"ﻭ"#, r#"و"#, r#"و"#),
+        (r#"ﻮ"#, r#"ﻮ"#, r#"ﻮ"#, r#"و"#, r#"و"#),
+        (r#"ﻯ"#, r#"ﻯ"#, r#"ﻯ"#, r#"ى"#, r#"ى"#),
+        (r#"ﻰ"#, r#"ﻰ"#, r#"ﻰ"#, r#"ى"#, r#"ى"#),
+        (r#"ﻱ"#, r#"ﻱ"#, r#"ﻱ"#, r#"ي"#, r#"ي"#),
+        (r#"ﻲ"#, r#"ﻲ"#, r#"ﻲ"#, r#"ي"#, r#"ي"#),
+        (r#"ﻳ"#, r#"ﻳ"#, r#"ﻳ"#, r#"ي"#, r#"ي"#),
+        (r#"ﻴ"#, r#"ﻴ"#, r#"ﻴ"#, r#"ي"#, r#"ي"#),
+        (r#"ﻵ"#, r#"ﻵ"#, r#"ﻵ"#, r#"لآ"#, r#"لآ"#),
+        (r#"ﻶ"#, r#"ﻶ"#, r#"ﻶ"#, r#"لآ"#, r#"لآ"#),
+        (r#"ﻷ"#, r#"ﻷ"#, r#"ﻷ"#, r#"لأ"#, r#"لأ"#),
+        (r#"ﻸ"#, r#"ﻸ"#, r#"ﻸ"#, r#"لأ"#, r#"لأ"#),
+        (r#"ﻹ"#, r#"ﻹ"#, r#"ﻹ"#, r#"لإ"#, r#"لإ"#),
+        (r#"ﻺ"#, r#"ﻺ"#, r#"ﻺ"#, r#"لإ"#, r#"لإ"#),
+        (r#"ﻻ"#, r#"ﻻ"#, r#"ﻻ"#, r#"لا"#, r#"لا"#),
+        (r#"ﻼ"#, r#"ﻼ"#, r#"ﻼ"#, r#"لا"#, r#"لا"#),
+        (r#"!"#, r#"!"#, r#"!"#, r#"!"#, r#"!"#),
+        (r#"""#, r#"""#, r#"""#, r#"""#, r#"""#),
+        (r#"#"#, r#"#"#, r#"#"#, r#"#"#, r#"#"#),
+        (r#"$"#, r#"$"#, r#"$"#, r#"$"#, r#"$"#),
+        (r#"%"#, r#"%"#, r#"%"#, r#"%"#, r#"%"#),
+        (r#"&"#, r#"&"#, r#"&"#, r#"&"#, r#"&"#),
+        (r#"'"#, r#"'"#, r#"'"#, r#"'"#, r#"'"#),
+        (r#"("#, r#"("#, r#"("#, r#"("#, r#"("#),
+        (r#")"#, r#")"#, r#")"#, r#")"#, r#")"#),
+        (r#"*"#, r#"*"#, r#"*"#, r#"*"#, r#"*"#),
+        (r#"+"#, r#"+"#, r#"+"#, r#"+"#, r#"+"#),
+        (r#","#, r#","#, r#","#, r#","#, r#","#),
+        (r#"-"#, r#"-"#, r#"-"#, r#"-"#, r#"-"#),
+        (r#"."#, r#"."#, r#"."#, r#"."#, r#"."#),
+        (r#"/"#, r#"/"#, r#"/"#, r#"/"#, r#"/"#),
+        (r#"0"#, r#"0"#, r#"0"#, r#"0"#, r#"0"#),
+        (r#"1"#, r#"1"#, r#"1"#, r#"1"#, r#"1"#),
+        (r#"2"#, r#"2"#, r#"2"#, r#"2"#, r#"2"#),
+        (r#"3"#, r#"3"#, r#"3"#, r#"3"#, r#"3"#),
+        (r#"4"#, r#"4"#, r#"4"#, r#"4"#, r#"4"#),
+        (r#"5"#, r#"5"#, r#"5"#, r#"5"#, r#"5"#),
+        (r#"6"#, r#"6"#, r#"6"#, r#"6"#, r#"6"#),
+        (r#"7"#, r#"7"#, r#"7"#, r#"7"#, r#"7"#),
+        (r#"8"#, r#"8"#, r#"8"#, r#"8"#, r#"8"#),
+        (r#"9"#, r#"9"#, r#"9"#, r#"9"#, r#"9"#),
+        (r#":"#, r#":"#, r#":"#, r#":"#, r#":"#),
+        (r#";"#, r#";"#, r#";"#, r#";"#, r#";"#),
+        (r#"<"#, r#"<"#, r#"<"#, r#"<"#, r#"<"#),
+        (r#"="#, r#"="#, r#"="#, r#"="#, r#"="#),
+        (r#">"#, r#">"#, r#">"#, r#">"#, r#">"#),
+        (r#"?"#, r#"?"#, r#"?"#, r#"?"#, r#"?"#),
+        (r#"@"#, r#"@"#, r#"@"#, r#"@"#, r#"@"#),
+        (r#"A"#, r#"A"#, r#"A"#, r#"A"#, r#"A"#),
+        (r#"B"#, r#"B"#, r#"B"#, r#"B"#, r#"B"#),
+        (r#"C"#, r#"C"#, r#"C"#, r#"C"#, r#"C"#),
+        (r#"D"#, r#"D"#, r#"D"#, r#"D"#, r#"D"#),
+        (r#"E"#, r#"E"#, r#"E"#, r#"E"#, r#"E"#),
+        (r#"F"#, r#"F"#, r#"F"#, r#"F"#, r#"F"#),
+        (r#"G"#, r#"G"#, r#"G"#, r#"G"#, r#"G"#),
+        (r#"H"#, r#"H"#, r#"H"#, r#"H"#, r#"H"#),
+        (r#"I"#, r#"I"#, r#"I"#, r#"I"#, r#"I"#),
+        (r#"J"#, r#"J"#, r#"J"#, r#"J"#, r#"J"#),
+        (r#"K"#, r#"K"#, r#"K"#, r#"K"#, r#"K"#),
+        (r#"L"#, r#"L"#, r#"L"#, r#"L"#, r#"L"#),
+        (r#"M"#, r#"M"#, r#"M"#, r#"M"#, r#"M"#),
+        (r#"N"#, r#"N"#, r#"N"#, r#"N"#, r#"N"#),
+        (r#"O"#, r#"O"#, r#"O"#, r#"O"#, r#"O"#),
+        (r#"P"#, r#"P"#, r#"P"#, r#"P"#, r#"P"#),
+        (r#"Q"#, r#"Q"#, r#"Q"#, r#"Q"#, r#"Q"#),
+        (r#"R"#, r#"R"#, r#"R"#, r#"R"#, r#"R"#),
+        (r#"S"#, r#"S"#, r#"S"#, r#"S"#, r#"S"#),
+        (r#"T"#, r#"T"#, r#"T"#, r#"T"#, r#"T"#),
+        (r#"U"#, r#"U"#, r#"U"#, r#"U"#, r#"U"#),
+        (r#"V"#, r#"V"#, r#"V"#, r#"V"#, r#"V"#),
+        (r#"W"#, r#"W"#, r#"W"#, r#"W"#, r#"W"#),
+        (r#"X"#, r#"X"#, r#"X"#, r#"X"#, r#"X"#),
+        (r#"Y"#, r#"Y"#, r#"Y"#, r#"Y"#, r#"Y"#),
+        (r#"Z"#, r#"Z"#, r#"Z"#, r#"Z"#, r#"Z"#),
+        (r#"["#, r#"["#, r#"["#, r#"["#, r#"["#),
+        (r#"\"#, r#"\"#, r#"\"#, r#"\"#, r#"\"#),
+        (r#"]"#, r#"]"#, r#"]"#, r#"]"#, r#"]"#),
+        (r#"^"#, r#"^"#, r#"^"#, r#"^"#, r#"^"#),
+        (r#"_"#, r#"_"#, r#"_"#, r#"_"#, r#"_"#),
+        (r#"`"#, r#"`"#, r#"`"#, r#"`"#, r#"`"#),
+        (r#"a"#, r#"a"#, r#"a"#, r#"a"#, r#"a"#),
+        (r#"b"#, r#"b"#, r#"b"#, r#"b"#, r#"b"#),
+        (r#"c"#, r#"c"#, r#"c"#, r#"c"#, r#"c"#),
+        (r#"d"#, r#"d"#, r#"d"#, r#"d"#, r#"d"#),
+        (r#"e"#, r#"e"#, r#"e"#, r#"e"#, r#"e"#),
+        (r#"f"#, r#"f"#, r#"f"#, r#"f"#, r#"f"#),
+        (r#"g"#, r#"g"#, r#"g"#, r#"g"#, r#"g"#),
+        (r#"h"#, r#"h"#, r#"h"#, r#"h"#, r#"h"#),
+        (r#"i"#, r#"i"#, r#"i"#, r#"i"#, r#"i"#),
+        (r#"j"#, r#"j"#, r#"j"#, r#"j"#, r#"j"#),
+        (r#"k"#, r#"k"#, r#"k"#, r#"k"#, r#"k"#),
+        (r#"l"#, r#"l"#, r#"l"#, r#"l"#, r#"l"#),
+        (r#"m"#, r#"m"#, r#"m"#, r#"m"#, r#"m"#),
+        (r#"n"#, r#"n"#, r#"n"#, r#"n"#, r#"n"#),
+        (r#"o"#, r#"o"#, r#"o"#, r#"o"#, r#"o"#),
+        (r#"p"#, r#"p"#, r#"p"#, r#"p"#, r#"p"#),
+        (r#"q"#, r#"q"#, r#"q"#, r#"q"#, r#"q"#),
+        (r#"r"#, r#"r"#, r#"r"#, r#"r"#, r#"r"#),
+        (r#"s"#, r#"s"#, r#"s"#, r#"s"#, r#"s"#),
+        (r#"t"#, r#"t"#, r#"t"#, r#"t"#, r#"t"#),
+        (r#"u"#, r#"u"#, r#"u"#, r#"u"#, r#"u"#),
+        (r#"v"#, r#"v"#, r#"v"#, r#"v"#, r#"v"#),
+        (r#"w"#, r#"w"#, r#"w"#, r#"w"#, r#"w"#),
+        (r#"x"#, r#"x"#, r#"x"#, r#"x"#, r#"x"#),
+        (r#"y"#, r#"y"#, r#"y"#, r#"y"#, r#"y"#),
+        (r#"z"#, r#"z"#, r#"z"#, r#"z"#, r#"z"#),
+        (r#"{"#, r#"{"#, r#"{"#, r#"{"#, r#"{"#),
+        (r#"|"#, r#"|"#, r#"|"#, r#"|"#, r#"|"#),
+        (r#"}"#, r#"}"#, r#"}"#, r#"}"#, r#"}"#),
+        (r#"~"#, r#"~"#, r#"~"#, r#"~"#, r#"~"#),
+        (r#"⦅"#, r#"⦅"#, r#"⦅"#, r#"⦅"#, r#"⦅"#),
+        (r#"⦆"#, r#"⦆"#, r#"⦆"#, r#"⦆"#, r#"⦆"#),
+        (r#"。"#, r#"。"#, r#"。"#, r#"。"#, r#"。"#),
+        (r#"「"#, r#"「"#, r#"「"#, r#"「"#, r#"「"#),
+        (r#"」"#, r#"」"#, r#"」"#, r#"」"#, r#"」"#),
+        (r#"、"#, r#"、"#, r#"、"#, r#"、"#, r#"、"#),
+        (r#"・"#, r#"・"#, r#"・"#, r#"・"#, r#"・"#),
+        (r#"ヲ"#, r#"ヲ"#, r#"ヲ"#, r#"ヲ"#, r#"ヲ"#),
+        (r#"ァ"#, r#"ァ"#, r#"ァ"#, r#"ァ"#, r#"ァ"#),
+        (r#"ィ"#, r#"ィ"#, r#"ィ"#, r#"ィ"#, r#"ィ"#),
+        (r#"ゥ"#, r#"ゥ"#, r#"ゥ"#, r#"ゥ"#, r#"ゥ"#),
+        (r#"ェ"#, r#"ェ"#, r#"ェ"#, r#"ェ"#, r#"ェ"#),
+        (r#"ォ"#, r#"ォ"#, r#"ォ"#, r#"ォ"#, r#"ォ"#),
+        (r#"ャ"#, r#"ャ"#, r#"ャ"#, r#"ャ"#, r#"ャ"#),
+        (r#"ュ"#, r#"ュ"#, r#"ュ"#, r#"ュ"#, r#"ュ"#),
+        (r#"ョ"#, r#"ョ"#, r#"ョ"#, r#"ョ"#, r#"ョ"#),
+        (r#"ッ"#, r#"ッ"#, r#"ッ"#, r#"ッ"#, r#"ッ"#),
+        (r#"ー"#, r#"ー"#, r#"ー"#, r#"ー"#, r#"ー"#),
+        (r#"ア"#, r#"ア"#, r#"ア"#, r#"ア"#, r#"ア"#),
+        (r#"イ"#, r#"イ"#, r#"イ"#, r#"イ"#, r#"イ"#),
+        (r#"ウ"#, r#"ウ"#, r#"ウ"#, r#"ウ"#, r#"ウ"#),
+        (r#"エ"#, r#"エ"#, r#"エ"#, r#"エ"#, r#"エ"#),
+        (r#"オ"#, r#"オ"#, r#"オ"#, r#"オ"#, r#"オ"#),
+        (r#"カ"#, r#"カ"#, r#"カ"#, r#"カ"#, r#"カ"#),
+        (r#"キ"#, r#"キ"#, r#"キ"#, r#"キ"#, r#"キ"#),
+        (r#"ク"#, r#"ク"#, r#"ク"#, r#"ク"#, r#"ク"#),
+        (r#"ケ"#, r#"ケ"#, r#"ケ"#, r#"ケ"#, r#"ケ"#),
+        (r#"コ"#, r#"コ"#, r#"コ"#, r#"コ"#, r#"コ"#),
+        (r#"サ"#, r#"サ"#, r#"サ"#, r#"サ"#, r#"サ"#),
+        (r#"シ"#, r#"シ"#, r#"シ"#, r#"シ"#, r#"シ"#),
+        (r#"ス"#, r#"ス"#, r#"ス"#, r#"ス"#, r#"ス"#),
+        (r#"セ"#, r#"セ"#, r#"セ"#, r#"セ"#, r#"セ"#),
+        (r#"ソ"#, r#"ソ"#, r#"ソ"#, r#"ソ"#, r#"ソ"#),
+        (r#"タ"#, r#"タ"#, r#"タ"#, r#"タ"#, r#"タ"#),
+        (r#"チ"#, r#"チ"#, r#"チ"#, r#"チ"#, r#"チ"#),
+        (r#"ツ"#, r#"ツ"#, r#"ツ"#, r#"ツ"#, r#"ツ"#),
+        (r#"テ"#, r#"テ"#, r#"テ"#, r#"テ"#, r#"テ"#),
+        (r#"ト"#, r#"ト"#, r#"ト"#, r#"ト"#, r#"ト"#),
+        (r#"ナ"#, r#"ナ"#, r#"ナ"#, r#"ナ"#, r#"ナ"#),
+        (r#"ニ"#, r#"ニ"#, r#"ニ"#, r#"ニ"#, r#"ニ"#),
+        (r#"ヌ"#, r#"ヌ"#, r#"ヌ"#, r#"ヌ"#, r#"ヌ"#),
+        (r#"ネ"#, r#"ネ"#, r#"ネ"#, r#"ネ"#, r#"ネ"#),
+        (r#"ノ"#, r#"ノ"#, r#"ノ"#, r#"ノ"#, r#"ノ"#),
+        (r#"ハ"#, r#"ハ"#, r#"ハ"#, r#"ハ"#, r#"ハ"#),
+        (r#"ヒ"#, r#"ヒ"#, r#"ヒ"#, r#"ヒ"#, r#"ヒ"#),
+        (r#"フ"#, r#"フ"#, r#"フ"#, r#"フ"#, r#"フ"#),
+        (r#"ヘ"#, r#"ヘ"#, r#"ヘ"#, r#"ヘ"#, r#"ヘ"#),
+        (r#"ホ"#, r#"ホ"#, r#"ホ"#, r#"ホ"#, r#"ホ"#),
+        (r#"マ"#, r#"マ"#, r#"マ"#, r#"マ"#, r#"マ"#),
+        (r#"ミ"#, r#"ミ"#, r#"ミ"#, r#"ミ"#, r#"ミ"#),
+        (r#"ム"#, r#"ム"#, r#"ム"#, r#"ム"#, r#"ム"#),
+        (r#"メ"#, r#"メ"#, r#"メ"#, r#"メ"#, r#"メ"#),
+        (r#"モ"#, r#"モ"#, r#"モ"#, r#"モ"#, r#"モ"#),
+        (r#"ヤ"#, r#"ヤ"#, r#"ヤ"#, r#"ヤ"#, r#"ヤ"#),
+        (r#"ユ"#, r#"ユ"#, r#"ユ"#, r#"ユ"#, r#"ユ"#),
+        (r#"ヨ"#, r#"ヨ"#, r#"ヨ"#, r#"ヨ"#, r#"ヨ"#),
+        (r#"ラ"#, r#"ラ"#, r#"ラ"#, r#"ラ"#, r#"ラ"#),
+        (r#"リ"#, r#"リ"#, r#"リ"#, r#"リ"#, r#"リ"#),
+        (r#"ル"#, r#"ル"#, r#"ル"#, r#"ル"#, r#"ル"#),
+        (r#"レ"#, r#"レ"#, r#"レ"#, r#"レ"#, r#"レ"#),
+        (r#"ロ"#, r#"ロ"#, r#"ロ"#, r#"ロ"#, r#"ロ"#),
+        (r#"ワ"#, r#"ワ"#, r#"ワ"#, r#"ワ"#, r#"ワ"#),
+        (r#"ン"#, r#"ン"#, r#"ン"#, r#"ン"#, r#"ン"#),
+        (r#"゙"#, r#"゙"#, r#"゙"#, r#"゙"#, r#"゙"#),
+        (r#"゚"#, r#"゚"#, r#"゚"#, r#"゚"#, r#"゚"#),
+        (r#"ᅠ"#, r#"ᅠ"#, r#"ᅠ"#, r#"ᅠ"#, r#"ᅠ"#),
+        (r#"ᄀ"#, r#"ᄀ"#, r#"ᄀ"#, r#"ᄀ"#, r#"ᄀ"#),
+        (r#"ᄁ"#, r#"ᄁ"#, r#"ᄁ"#, r#"ᄁ"#, r#"ᄁ"#),
+        (r#"ᆪ"#, r#"ᆪ"#, r#"ᆪ"#, r#"ᆪ"#, r#"ᆪ"#),
+        (r#"ᄂ"#, r#"ᄂ"#, r#"ᄂ"#, r#"ᄂ"#, r#"ᄂ"#),
+        (r#"ᆬ"#, r#"ᆬ"#, r#"ᆬ"#, r#"ᆬ"#, r#"ᆬ"#),
+        (r#"ᆭ"#, r#"ᆭ"#, r#"ᆭ"#, r#"ᆭ"#, r#"ᆭ"#),
+        (r#"ᄃ"#, r#"ᄃ"#, r#"ᄃ"#, r#"ᄃ"#, r#"ᄃ"#),
+        (r#"ᄄ"#, r#"ᄄ"#, r#"ᄄ"#, r#"ᄄ"#, r#"ᄄ"#),
+        (r#"ᄅ"#, r#"ᄅ"#, r#"ᄅ"#, r#"ᄅ"#, r#"ᄅ"#),
+        (r#"ᆰ"#, r#"ᆰ"#, r#"ᆰ"#, r#"ᆰ"#, r#"ᆰ"#),
+        (r#"ᆱ"#, r#"ᆱ"#, r#"ᆱ"#, r#"ᆱ"#, r#"ᆱ"#),
+        (r#"ᆲ"#, r#"ᆲ"#, r#"ᆲ"#, r#"ᆲ"#, r#"ᆲ"#),
+        (r#"ᆳ"#, r#"ᆳ"#, r#"ᆳ"#, r#"ᆳ"#, r#"ᆳ"#),
+        (r#"ᆴ"#, r#"ᆴ"#, r#"ᆴ"#, r#"ᆴ"#, r#"ᆴ"#),
+        (r#"ᆵ"#, r#"ᆵ"#, r#"ᆵ"#, r#"ᆵ"#, r#"ᆵ"#),
+        (r#"ᄚ"#, r#"ᄚ"#, r#"ᄚ"#, r#"ᄚ"#, r#"ᄚ"#),
+        (r#"ᄆ"#, r#"ᄆ"#, r#"ᄆ"#, r#"ᄆ"#, r#"ᄆ"#),
+        (r#"ᄇ"#, r#"ᄇ"#, r#"ᄇ"#, r#"ᄇ"#, r#"ᄇ"#),
+        (r#"ᄈ"#, r#"ᄈ"#, r#"ᄈ"#, r#"ᄈ"#, r#"ᄈ"#),
+        (r#"ᄡ"#, r#"ᄡ"#, r#"ᄡ"#, r#"ᄡ"#, r#"ᄡ"#),
+        (r#"ᄉ"#, r#"ᄉ"#, r#"ᄉ"#, r#"ᄉ"#, r#"ᄉ"#),
+        (r#"ᄊ"#, r#"ᄊ"#, r#"ᄊ"#, r#"ᄊ"#, r#"ᄊ"#),
+        (r#"ᄋ"#, r#"ᄋ"#, r#"ᄋ"#, r#"ᄋ"#, r#"ᄋ"#),
+        (r#"ᄌ"#, r#"ᄌ"#, r#"ᄌ"#, r#"ᄌ"#, r#"ᄌ"#),
+        (r#"ᄍ"#, r#"ᄍ"#, r#"ᄍ"#, r#"ᄍ"#, r#"ᄍ"#),
+        (r#"ᄎ"#, r#"ᄎ"#, r#"ᄎ"#, r#"ᄎ"#, r#"ᄎ"#),
+        (r#"ᄏ"#, r#"ᄏ"#, r#"ᄏ"#, r#"ᄏ"#, r#"ᄏ"#),
+        (r#"ᄐ"#, r#"ᄐ"#, r#"ᄐ"#, r#"ᄐ"#, r#"ᄐ"#),
+        (r#"ᄑ"#, r#"ᄑ"#, r#"ᄑ"#, r#"ᄑ"#, r#"ᄑ"#),
+        (r#"ᄒ"#, r#"ᄒ"#, r#"ᄒ"#, r#"ᄒ"#, r#"ᄒ"#),
+        (r#"ᅡ"#, r#"ᅡ"#, r#"ᅡ"#, r#"ᅡ"#, r#"ᅡ"#),
+        (r#"ᅢ"#, r#"ᅢ"#, r#"ᅢ"#, r#"ᅢ"#, r#"ᅢ"#),
+        (r#"ᅣ"#, r#"ᅣ"#, r#"ᅣ"#, r#"ᅣ"#, r#"ᅣ"#),
+        (r#"ᅤ"#, r#"ᅤ"#, r#"ᅤ"#, r#"ᅤ"#, r#"ᅤ"#),
+        (r#"ᅥ"#, r#"ᅥ"#, r#"ᅥ"#, r#"ᅥ"#, r#"ᅥ"#),
+        (r#"ᅦ"#, r#"ᅦ"#, r#"ᅦ"#, r#"ᅦ"#, r#"ᅦ"#),
+        (r#"ᅧ"#, r#"ᅧ"#, r#"ᅧ"#, r#"ᅧ"#, r#"ᅧ"#),
+        (r#"ᅨ"#, r#"ᅨ"#, r#"ᅨ"#, r#"ᅨ"#, r#"ᅨ"#),
+        (r#"ᅩ"#, r#"ᅩ"#, r#"ᅩ"#, r#"ᅩ"#, r#"ᅩ"#),
+        (r#"ᅪ"#, r#"ᅪ"#, r#"ᅪ"#, r#"ᅪ"#, r#"ᅪ"#),
+        (r#"ᅫ"#, r#"ᅫ"#, r#"ᅫ"#, r#"ᅫ"#, r#"ᅫ"#),
+        (r#"ᅬ"#, r#"ᅬ"#, r#"ᅬ"#, r#"ᅬ"#, r#"ᅬ"#),
+        (r#"ᅭ"#, r#"ᅭ"#, r#"ᅭ"#, r#"ᅭ"#, r#"ᅭ"#),
+        (r#"ᅮ"#, r#"ᅮ"#, r#"ᅮ"#, r#"ᅮ"#, r#"ᅮ"#),
+        (r#"ᅯ"#, r#"ᅯ"#, r#"ᅯ"#, r#"ᅯ"#, r#"ᅯ"#),
+        (r#"ᅰ"#, r#"ᅰ"#, r#"ᅰ"#, r#"ᅰ"#, r#"ᅰ"#),
+        (r#"ᅱ"#, r#"ᅱ"#, r#"ᅱ"#, r#"ᅱ"#, r#"ᅱ"#),
+        (r#"ᅲ"#, r#"ᅲ"#, r#"ᅲ"#, r#"ᅲ"#, r#"ᅲ"#),
+        (r#"ᅳ"#, r#"ᅳ"#, r#"ᅳ"#, r#"ᅳ"#, r#"ᅳ"#),
+        (r#"ᅴ"#, r#"ᅴ"#, r#"ᅴ"#, r#"ᅴ"#, r#"ᅴ"#),
+        (r#"ᅵ"#, r#"ᅵ"#, r#"ᅵ"#, r#"ᅵ"#, r#"ᅵ"#),
+        (r#"¢"#, r#"¢"#, r#"¢"#, r#"¢"#, r#"¢"#),
+        (r#"£"#, r#"£"#, r#"£"#, r#"£"#, r#"£"#),
+        (r#"¬"#, r#"¬"#, r#"¬"#, r#"¬"#, r#"¬"#),
+        (r#" ̄"#, r#" ̄"#, r#" ̄"#, r#" ̄"#, r#" ̄"#),
+        (r#"¦"#, r#"¦"#, r#"¦"#, r#"¦"#, r#"¦"#),
+        (r#"¥"#, r#"¥"#, r#"¥"#, r#"¥"#, r#"¥"#),
+        (r#"₩"#, r#"₩"#, r#"₩"#, r#"₩"#, r#"₩"#),
+        (r#"│"#, r#"│"#, r#"│"#, r#"│"#, r#"│"#),
+        (r#"←"#, r#"←"#, r#"←"#, r#"←"#, r#"←"#),
+        (r#"↑"#, r#"↑"#, r#"↑"#, r#"↑"#, r#"↑"#),
+        (r#"→"#, r#"→"#, r#"→"#, r#"→"#, r#"→"#),
+        (r#"↓"#, r#"↓"#, r#"↓"#, r#"↓"#, r#"↓"#),
+        (r#"■"#, r#"■"#, r#"■"#, r#"■"#, r#"■"#),
+        (r#"○"#, r#"○"#, r#"○"#, r#"○"#, r#"○"#),
+        (r#"𐞁"#, r#"𐞁"#, r#"𐞁"#, r#"ː"#, r#"ː"#),
+        (r#"𐞂"#, r#"𐞂"#, r#"𐞂"#, r#"ˑ"#, r#"ˑ"#),
+        (r#"𐞃"#, r#"𐞃"#, r#"𐞃"#, r#"æ"#, r#"æ"#),
+        (r#"𐞄"#, r#"𐞄"#, r#"𐞄"#, r#"ʙ"#, r#"ʙ"#),
+        (r#"𐞅"#, r#"𐞅"#, r#"𐞅"#, r#"ɓ"#, r#"ɓ"#),
+        (r#"𐞇"#, r#"𐞇"#, r#"𐞇"#, r#"ʣ"#, r#"ʣ"#),
+        (r#"𐞈"#, r#"𐞈"#, r#"𐞈"#, r#"ꭦ"#, r#"ꭦ"#),
+        (r#"𐞉"#, r#"𐞉"#, r#"𐞉"#, r#"ʥ"#, r#"ʥ"#),
+        (r#"𐞊"#, r#"𐞊"#, r#"𐞊"#, r#"ʤ"#, r#"ʤ"#),
+        (r#"𐞋"#, r#"𐞋"#, r#"𐞋"#, r#"ɖ"#, r#"ɖ"#),
+        (r#"𐞌"#, r#"𐞌"#, r#"𐞌"#, r#"ɗ"#, r#"ɗ"#),
+        (r#"𐞍"#, r#"𐞍"#, r#"𐞍"#, r#"ᶑ"#, r#"ᶑ"#),
+        (r#"𐞎"#, r#"𐞎"#, r#"𐞎"#, r#"ɘ"#, r#"ɘ"#),
+        (r#"𐞏"#, r#"𐞏"#, r#"𐞏"#, r#"ɞ"#, r#"ɞ"#),
+        (r#"𐞐"#, r#"𐞐"#, r#"𐞐"#, r#"ʩ"#, r#"ʩ"#),
+        (r#"𐞑"#, r#"𐞑"#, r#"𐞑"#, r#"ɤ"#, r#"ɤ"#),
+        (r#"𐞒"#, r#"𐞒"#, r#"𐞒"#, r#"ɢ"#, r#"ɢ"#),
+        (r#"𐞓"#, r#"𐞓"#, r#"𐞓"#, r#"ɠ"#, r#"ɠ"#),
+        (r#"𐞔"#, r#"𐞔"#, r#"𐞔"#, r#"ʛ"#, r#"ʛ"#),
+        (r#"𐞕"#, r#"𐞕"#, r#"𐞕"#, r#"ħ"#, r#"ħ"#),
+        (r#"𐞖"#, r#"𐞖"#, r#"𐞖"#, r#"ʜ"#, r#"ʜ"#),
+        (r#"𐞗"#, r#"𐞗"#, r#"𐞗"#, r#"ɧ"#, r#"ɧ"#),
+        (r#"𐞘"#, r#"𐞘"#, r#"𐞘"#, r#"ʄ"#, r#"ʄ"#),
+        (r#"𐞙"#, r#"𐞙"#, r#"𐞙"#, r#"ʪ"#, r#"ʪ"#),
+        (r#"𐞚"#, r#"𐞚"#, r#"𐞚"#, r#"ʫ"#, r#"ʫ"#),
+        (r#"𐞛"#, r#"𐞛"#, r#"𐞛"#, r#"ɬ"#, r#"ɬ"#),
+        (r#"𐞜"#, r#"𐞜"#, r#"𐞜"#, r#"𝼄"#, r#"𝼄"#),
+        (r#"𐞝"#, r#"𐞝"#, r#"𐞝"#, r#"ꞎ"#, r#"ꞎ"#),
+        (r#"𐞞"#, r#"𐞞"#, r#"𐞞"#, r#"ɮ"#, r#"ɮ"#),
+        (r#"𐞟"#, r#"𐞟"#, r#"𐞟"#, r#"𝼅"#, r#"𝼅"#),
+        (r#"𐞠"#, r#"𐞠"#, r#"𐞠"#, r#"ʎ"#, r#"ʎ"#),
+        (r#"𐞡"#, r#"𐞡"#, r#"𐞡"#, r#"𝼆"#, r#"𝼆"#),
+        (r#"𐞢"#, r#"𐞢"#, r#"𐞢"#, r#"ø"#, r#"ø"#),
+        (r#"𐞣"#, r#"𐞣"#, r#"𐞣"#, r#"ɶ"#, r#"ɶ"#),
+        (r#"𐞤"#, r#"𐞤"#, r#"𐞤"#, r#"ɷ"#, r#"ɷ"#),
+        (r#"𐞥"#, r#"𐞥"#, r#"𐞥"#, r#"q"#, r#"q"#),
+        (r#"𐞦"#, r#"𐞦"#, r#"𐞦"#, r#"ɺ"#, r#"ɺ"#),
+        (r#"𐞧"#, r#"𐞧"#, r#"𐞧"#, r#"𝼈"#, r#"𝼈"#),
+        (r#"𐞨"#, r#"𐞨"#, r#"𐞨"#, r#"ɽ"#, r#"ɽ"#),
+        (r#"𐞩"#, r#"𐞩"#, r#"𐞩"#, r#"ɾ"#, r#"ɾ"#),
+        (r#"𐞪"#, r#"𐞪"#, r#"𐞪"#, r#"ʀ"#, r#"ʀ"#),
+        (r#"𐞫"#, r#"𐞫"#, r#"𐞫"#, r#"ʨ"#, r#"ʨ"#),
+        (r#"𐞬"#, r#"𐞬"#, r#"𐞬"#, r#"ʦ"#, r#"ʦ"#),
+        (r#"𐞭"#, r#"𐞭"#, r#"𐞭"#, r#"ꭧ"#, r#"ꭧ"#),
+        (r#"𐞮"#, r#"𐞮"#, r#"𐞮"#, r#"ʧ"#, r#"ʧ"#),
+        (r#"𐞯"#, r#"𐞯"#, r#"𐞯"#, r#"ʈ"#, r#"ʈ"#),
+        (r#"𐞰"#, r#"𐞰"#, r#"𐞰"#, r#"ⱱ"#, r#"ⱱ"#),
+        (r#"𐞲"#, r#"𐞲"#, r#"𐞲"#, r#"ʏ"#, r#"ʏ"#),
+        (r#"𐞳"#, r#"𐞳"#, r#"𐞳"#, r#"ʡ"#, r#"ʡ"#),
+        (r#"𐞴"#, r#"𐞴"#, r#"𐞴"#, r#"ʢ"#, r#"ʢ"#),
+        (r#"𐞵"#, r#"𐞵"#, r#"𐞵"#, r#"ʘ"#, r#"ʘ"#),
+        (r#"𐞶"#, r#"𐞶"#, r#"𐞶"#, r#"ǀ"#, r#"ǀ"#),
+        (r#"𐞷"#, r#"𐞷"#, r#"𐞷"#, r#"ǁ"#, r#"ǁ"#),
+        (r#"𐞸"#, r#"𐞸"#, r#"𐞸"#, r#"ǂ"#, r#"ǂ"#),
+        (r#"𐞹"#, r#"𐞹"#, r#"𐞹"#, r#"𝼊"#, r#"𝼊"#),
+        (r#"𐞺"#, r#"𐞺"#, r#"𐞺"#, r#"𝼞"#, r#"𝼞"#),
+        (r#"𑂚"#, r#"𑂚"#, r#"𑂚"#, r#"𑂚"#, r#"𑂚"#),
+        (r#"𑂜"#, r#"𑂜"#, r#"𑂜"#, r#"𑂜"#, r#"𑂜"#),
+        (r#"𑂫"#, r#"𑂫"#, r#"𑂫"#, r#"𑂫"#, r#"𑂫"#),
+        (r#"𑄮"#, r#"𑄮"#, r#"𑄮"#, r#"𑄮"#, r#"𑄮"#),
+        (r#"𑄯"#, r#"𑄯"#, r#"𑄯"#, r#"𑄯"#, r#"𑄯"#),
+        (r#"𑍋"#, r#"𑍋"#, r#"𑍋"#, r#"𑍋"#, r#"𑍋"#),
+        (r#"𑍌"#, r#"𑍌"#, r#"𑍌"#, r#"𑍌"#, r#"𑍌"#),
+        (r#"𑒻"#, r#"𑒻"#, r#"𑒻"#, r#"𑒻"#, r#"𑒻"#),
+        (r#"𑒼"#, r#"𑒼"#, r#"𑒼"#, r#"𑒼"#, r#"𑒼"#),
+        (r#"𑒾"#, r#"𑒾"#, r#"𑒾"#, r#"𑒾"#, r#"𑒾"#),
+        (r#"𑖺"#, r#"𑖺"#, r#"𑖺"#, r#"𑖺"#, r#"𑖺"#),
+        (r#"𑖻"#, r#"𑖻"#, r#"𑖻"#, r#"𑖻"#, r#"𑖻"#),
+        (r#"𑤸"#, r#"𑤸"#, r#"𑤸"#, r#"𑤸"#, r#"𑤸"#),
+        (r#"𝅗𝅥"#, r#"𝅗𝅥"#, r#"𝅗𝅥"#, r#"𝅗𝅥"#, r#"𝅗𝅥"#),
+        (r#"𝅘𝅥"#, r#"𝅘𝅥"#, r#"𝅘𝅥"#, r#"𝅘𝅥"#, r#"𝅘𝅥"#),
+        (r#"𝅘𝅥𝅮"#, r#"𝅘𝅥𝅮"#, r#"𝅘𝅥𝅮"#, r#"𝅘𝅥𝅮"#, r#"𝅘𝅥𝅮"#),
+        (r#"𝅘𝅥𝅯"#, r#"𝅘𝅥𝅯"#, r#"𝅘𝅥𝅯"#, r#"𝅘𝅥𝅯"#, r#"𝅘𝅥𝅯"#),
+        (r#"𝅘𝅥𝅰"#, r#"𝅘𝅥𝅰"#, r#"𝅘𝅥𝅰"#, r#"𝅘𝅥𝅰"#, r#"𝅘𝅥𝅰"#),
+        (r#"𝅘𝅥𝅱"#, r#"𝅘𝅥𝅱"#, r#"𝅘𝅥𝅱"#, r#"𝅘𝅥𝅱"#, r#"𝅘𝅥𝅱"#),
+        (r#"𝅘𝅥𝅲"#, r#"𝅘𝅥𝅲"#, r#"𝅘𝅥𝅲"#, r#"𝅘𝅥𝅲"#, r#"𝅘𝅥𝅲"#),
+        (r#"𝆹𝅥"#, r#"𝆹𝅥"#, r#"𝆹𝅥"#, r#"𝆹𝅥"#, r#"𝆹𝅥"#),
+        (r#"𝆺𝅥"#, r#"𝆺𝅥"#, r#"𝆺𝅥"#, r#"𝆺𝅥"#, r#"𝆺𝅥"#),
+        (r#"𝆹𝅥𝅮"#, r#"𝆹𝅥𝅮"#, r#"𝆹𝅥𝅮"#, r#"𝆹𝅥𝅮"#, r#"𝆹𝅥𝅮"#),
+        (r#"𝆺𝅥𝅮"#, r#"𝆺𝅥𝅮"#, r#"𝆺𝅥𝅮"#, r#"𝆺𝅥𝅮"#, r#"𝆺𝅥𝅮"#),
+        (r#"𝆹𝅥𝅯"#, r#"𝆹𝅥𝅯"#, r#"𝆹𝅥𝅯"#, r#"𝆹𝅥𝅯"#, r#"𝆹𝅥𝅯"#),
+        (r#"𝆺𝅥𝅯"#, r#"𝆺𝅥𝅯"#, r#"𝆺𝅥𝅯"#, r#"𝆺𝅥𝅯"#, r#"𝆺𝅥𝅯"#),
+        (r#"𝐀"#, r#"𝐀"#, r#"𝐀"#, r#"A"#, r#"A"#),
+        (r#"𝐁"#, r#"𝐁"#, r#"𝐁"#, r#"B"#, r#"B"#),
+        (r#"𝐂"#, r#"𝐂"#, r#"𝐂"#, r#"C"#, r#"C"#),
+        (r#"𝐃"#, r#"𝐃"#, r#"𝐃"#, r#"D"#, r#"D"#),
+        (r#"𝐄"#, r#"𝐄"#, r#"𝐄"#, r#"E"#, r#"E"#),
+        (r#"𝐅"#, r#"𝐅"#, r#"𝐅"#, r#"F"#, r#"F"#),
+        (r#"𝐆"#, r#"𝐆"#, r#"𝐆"#, r#"G"#, r#"G"#),
+        (r#"𝐇"#, r#"𝐇"#, r#"𝐇"#, r#"H"#, r#"H"#),
+        (r#"𝐈"#, r#"𝐈"#, r#"𝐈"#, r#"I"#, r#"I"#),
+        (r#"𝐉"#, r#"𝐉"#, r#"𝐉"#, r#"J"#, r#"J"#),
+        (r#"𝐊"#, r#"𝐊"#, r#"𝐊"#, r#"K"#, r#"K"#),
+        (r#"𝐋"#, r#"𝐋"#, r#"𝐋"#, r#"L"#, r#"L"#),
+        (r#"𝐌"#, r#"𝐌"#, r#"𝐌"#, r#"M"#, r#"M"#),
+        (r#"𝐍"#, r#"𝐍"#, r#"𝐍"#, r#"N"#, r#"N"#),
+        (r#"𝐎"#, r#"𝐎"#, r#"𝐎"#, r#"O"#, r#"O"#),
+        (r#"𝐏"#, r#"𝐏"#, r#"𝐏"#, r#"P"#, r#"P"#),
+        (r#"𝐐"#, r#"𝐐"#, r#"𝐐"#, r#"Q"#, r#"Q"#),
+        (r#"𝐑"#, r#"𝐑"#, r#"𝐑"#, r#"R"#, r#"R"#),
+        (r#"𝐒"#, r#"𝐒"#, r#"𝐒"#, r#"S"#, r#"S"#),
+        (r#"𝐓"#, r#"𝐓"#, r#"𝐓"#, r#"T"#, r#"T"#),
+        (r#"𝐔"#, r#"𝐔"#, r#"𝐔"#, r#"U"#, r#"U"#),
+        (r#"𝐕"#, r#"𝐕"#, r#"𝐕"#, r#"V"#, r#"V"#),
+        (r#"𝐖"#, r#"𝐖"#, r#"𝐖"#, r#"W"#, r#"W"#),
+        (r#"𝐗"#, r#"𝐗"#, r#"𝐗"#, r#"X"#, r#"X"#),
+        (r#"𝐘"#, r#"𝐘"#, r#"𝐘"#, r#"Y"#, r#"Y"#),
+        (r#"𝐙"#, r#"𝐙"#, r#"𝐙"#, r#"Z"#, r#"Z"#),
+        (r#"𝐚"#, r#"𝐚"#, r#"𝐚"#, r#"a"#, r#"a"#),
+        (r#"𝐛"#, r#"𝐛"#, r#"𝐛"#, r#"b"#, r#"b"#),
+        (r#"𝐜"#, r#"𝐜"#, r#"𝐜"#, r#"c"#, r#"c"#),
+        (r#"𝐝"#, r#"𝐝"#, r#"𝐝"#, r#"d"#, r#"d"#),
+        (r#"𝐞"#, r#"𝐞"#, r#"𝐞"#, r#"e"#, r#"e"#),
+        (r#"𝐟"#, r#"𝐟"#, r#"𝐟"#, r#"f"#, r#"f"#),
+        (r#"𝐠"#, r#"𝐠"#, r#"𝐠"#, r#"g"#, r#"g"#),
+        (r#"𝐡"#, r#"𝐡"#, r#"𝐡"#, r#"h"#, r#"h"#),
+        (r#"𝐢"#, r#"𝐢"#, r#"𝐢"#, r#"i"#, r#"i"#),
+        (r#"𝐣"#, r#"𝐣"#, r#"𝐣"#, r#"j"#, r#"j"#),
+        (r#"𝐤"#, r#"𝐤"#, r#"𝐤"#, r#"k"#, r#"k"#),
+        (r#"𝐥"#, r#"𝐥"#, r#"𝐥"#, r#"l"#, r#"l"#),
+        (r#"𝐦"#, r#"𝐦"#, r#"𝐦"#, r#"m"#, r#"m"#),
+        (r#"𝐧"#, r#"𝐧"#, r#"𝐧"#, r#"n"#, r#"n"#),
+        (r#"𝐨"#, r#"𝐨"#, r#"𝐨"#, r#"o"#, r#"o"#),
+        (r#"𝐩"#, r#"𝐩"#, r#"𝐩"#, r#"p"#, r#"p"#),
+        (r#"𝐪"#, r#"𝐪"#, r#"𝐪"#, r#"q"#, r#"q"#),
+        (r#"𝐫"#, r#"𝐫"#, r#"𝐫"#, r#"r"#, r#"r"#),
+        (r#"𝐬"#, r#"𝐬"#, r#"𝐬"#, r#"s"#, r#"s"#),
+        (r#"𝐭"#, r#"𝐭"#, r#"𝐭"#, r#"t"#, r#"t"#),
+        (r#"𝐮"#, r#"𝐮"#, r#"𝐮"#, r#"u"#, r#"u"#),
+        (r#"𝐯"#, r#"𝐯"#, r#"𝐯"#, r#"v"#, r#"v"#),
+        (r#"𝐰"#, r#"𝐰"#, r#"𝐰"#, r#"w"#, r#"w"#),
+        (r#"𝐱"#, r#"𝐱"#, r#"𝐱"#, r#"x"#, r#"x"#),
+        (r#"𝐲"#, r#"𝐲"#, r#"𝐲"#, r#"y"#, r#"y"#),
+        (r#"𝐳"#, r#"𝐳"#, r#"𝐳"#, r#"z"#, r#"z"#),
+        (r#"𝐴"#, r#"𝐴"#, r#"𝐴"#, r#"A"#, r#"A"#),
+        (r#"𝐵"#, r#"𝐵"#, r#"𝐵"#, r#"B"#, r#"B"#),
+        (r#"𝐶"#, r#"𝐶"#, r#"𝐶"#, r#"C"#, r#"C"#),
+        (r#"𝐷"#, r#"𝐷"#, r#"𝐷"#, r#"D"#, r#"D"#),
+        (r#"𝐸"#, r#"𝐸"#, r#"𝐸"#, r#"E"#, r#"E"#),
+        (r#"𝐹"#, r#"𝐹"#, r#"𝐹"#, r#"F"#, r#"F"#),
+        (r#"𝐺"#, r#"𝐺"#, r#"𝐺"#, r#"G"#, r#"G"#),
+        (r#"𝐻"#, r#"𝐻"#, r#"𝐻"#, r#"H"#, r#"H"#),
+        (r#"𝐼"#, r#"𝐼"#, r#"𝐼"#, r#"I"#, r#"I"#),
+        (r#"𝐽"#, r#"𝐽"#, r#"𝐽"#, r#"J"#, r#"J"#),
+        (r#"𝐾"#, r#"𝐾"#, r#"𝐾"#, r#"K"#, r#"K"#),
+        (r#"𝐿"#, r#"𝐿"#, r#"𝐿"#, r#"L"#, r#"L"#),
+        (r#"𝑀"#, r#"𝑀"#, r#"𝑀"#, r#"M"#, r#"M"#),
+        (r#"𝑁"#, r#"𝑁"#, r#"𝑁"#, r#"N"#, r#"N"#),
+        (r#"𝑂"#, r#"𝑂"#, r#"𝑂"#, r#"O"#, r#"O"#),
+        (r#"𝑃"#, r#"𝑃"#, r#"𝑃"#, r#"P"#, r#"P"#),
+        (r#"𝑄"#, r#"𝑄"#, r#"𝑄"#, r#"Q"#, r#"Q"#),
+        (r#"𝑅"#, r#"𝑅"#, r#"𝑅"#, r#"R"#, r#"R"#),
+        (r#"𝑆"#, r#"𝑆"#, r#"𝑆"#, r#"S"#, r#"S"#),
+        (r#"𝑇"#, r#"𝑇"#, r#"𝑇"#, r#"T"#, r#"T"#),
+        (r#"𝑈"#, r#"𝑈"#, r#"𝑈"#, r#"U"#, r#"U"#),
+        (r#"𝑉"#, r#"𝑉"#, r#"𝑉"#, r#"V"#, r#"V"#),
+        (r#"𝑊"#, r#"𝑊"#, r#"𝑊"#, r#"W"#, r#"W"#),
+        (r#"𝑋"#, r#"𝑋"#, r#"𝑋"#, r#"X"#, r#"X"#),
+        (r#"𝑌"#, r#"𝑌"#, r#"𝑌"#, r#"Y"#, r#"Y"#),
+        (r#"𝑍"#, r#"𝑍"#, r#"𝑍"#, r#"Z"#, r#"Z"#),
+        (r#"𝑎"#, r#"𝑎"#, r#"𝑎"#, r#"a"#, r#"a"#),
+        (r#"𝑏"#, r#"𝑏"#, r#"𝑏"#, r#"b"#, r#"b"#),
+        (r#"𝑐"#, r#"𝑐"#, r#"𝑐"#, r#"c"#, r#"c"#),
+        (r#"𝑑"#, r#"𝑑"#, r#"𝑑"#, r#"d"#, r#"d"#),
+        (r#"𝑒"#, r#"𝑒"#, r#"𝑒"#, r#"e"#, r#"e"#),
+        (r#"𝑓"#, r#"𝑓"#, r#"𝑓"#, r#"f"#, r#"f"#),
+        (r#"𝑔"#, r#"𝑔"#, r#"𝑔"#, r#"g"#, r#"g"#),
+        (r#"𝑖"#, r#"𝑖"#, r#"𝑖"#, r#"i"#, r#"i"#),
+        (r#"𝑗"#, r#"𝑗"#, r#"𝑗"#, r#"j"#, r#"j"#),
+        (r#"𝑘"#, r#"𝑘"#, r#"𝑘"#, r#"k"#, r#"k"#),
+        (r#"𝑙"#, r#"𝑙"#, r#"𝑙"#, r#"l"#, r#"l"#),
+        (r#"𝑚"#, r#"𝑚"#, r#"𝑚"#, r#"m"#, r#"m"#),
+        (r#"𝑛"#, r#"𝑛"#, r#"𝑛"#, r#"n"#, r#"n"#),
+        (r#"𝑜"#, r#"𝑜"#, r#"𝑜"#, r#"o"#, r#"o"#),
+        (r#"𝑝"#, r#"𝑝"#, r#"𝑝"#, r#"p"#, r#"p"#),
+        (r#"𝑞"#, r#"𝑞"#, r#"𝑞"#, r#"q"#, r#"q"#),
+        (r#"𝑟"#, r#"𝑟"#, r#"𝑟"#, r#"r"#, r#"r"#),
+        (r#"𝑠"#, r#"𝑠"#, r#"𝑠"#, r#"s"#, r#"s"#),
+        (r#"𝑡"#, r#"𝑡"#, r#"𝑡"#, r#"t"#, r#"t"#),
+        (r#"𝑢"#, r#"𝑢"#, r#"𝑢"#, r#"u"#, r#"u"#),
+        (r#"𝑣"#, r#"𝑣"#, r#"𝑣"#, r#"v"#, r#"v"#),
+        (r#"𝑤"#, r#"𝑤"#, r#"𝑤"#, r#"w"#, r#"w"#),
+        (r#"𝑥"#, r#"𝑥"#, r#"𝑥"#, r#"x"#, r#"x"#),
+        (r#"𝑦"#, r#"𝑦"#, r#"𝑦"#, r#"y"#, r#"y"#),
+        (r#"𝑧"#, r#"𝑧"#, r#"𝑧"#, r#"z"#, r#"z"#),
+        (r#"𝑨"#, r#"𝑨"#, r#"𝑨"#, r#"A"#, r#"A"#),
+        (r#"𝑩"#, r#"𝑩"#, r#"𝑩"#, r#"B"#, r#"B"#),
+        (r#"𝑪"#, r#"𝑪"#, r#"𝑪"#, r#"C"#, r#"C"#),
+        (r#"𝑫"#, r#"𝑫"#, r#"𝑫"#, r#"D"#, r#"D"#),
+        (r#"𝑬"#, r#"𝑬"#, r#"𝑬"#, r#"E"#, r#"E"#),
+        (r#"𝑭"#, r#"𝑭"#, r#"𝑭"#, r#"F"#, r#"F"#),
+        (r#"𝑮"#, r#"𝑮"#, r#"𝑮"#, r#"G"#, r#"G"#),
+        (r#"𝑯"#, r#"𝑯"#, r#"𝑯"#, r#"H"#, r#"H"#),
+        (r#"𝑰"#, r#"𝑰"#, r#"𝑰"#, r#"I"#, r#"I"#),
+        (r#"𝑱"#, r#"𝑱"#, r#"𝑱"#, r#"J"#, r#"J"#),
+        (r#"𝑲"#, r#"𝑲"#, r#"𝑲"#, r#"K"#, r#"K"#),
+        (r#"𝑳"#, r#"𝑳"#, r#"𝑳"#, r#"L"#, r#"L"#),
+        (r#"𝑴"#, r#"𝑴"#, r#"𝑴"#, r#"M"#, r#"M"#),
+        (r#"𝑵"#, r#"𝑵"#, r#"𝑵"#, r#"N"#, r#"N"#),
+        (r#"𝑶"#, r#"𝑶"#, r#"𝑶"#, r#"O"#, r#"O"#),
+        (r#"𝑷"#, r#"𝑷"#, r#"𝑷"#, r#"P"#, r#"P"#),
+        (r#"𝑸"#, r#"𝑸"#, r#"𝑸"#, r#"Q"#, r#"Q"#),
+        (r#"𝑹"#, r#"𝑹"#, r#"𝑹"#, r#"R"#, r#"R"#),
+        (r#"𝑺"#, r#"𝑺"#, r#"𝑺"#, r#"S"#, r#"S"#),
+        (r#"𝑻"#, r#"𝑻"#, r#"𝑻"#, r#"T"#, r#"T"#),
+        (r#"𝑼"#, r#"𝑼"#, r#"𝑼"#, r#"U"#, r#"U"#),
+        (r#"𝑽"#, r#"𝑽"#, r#"𝑽"#, r#"V"#, r#"V"#),
+        (r#"𝑾"#, r#"𝑾"#, r#"𝑾"#, r#"W"#, r#"W"#),
+        (r#"𝑿"#, r#"𝑿"#, r#"𝑿"#, r#"X"#, r#"X"#),
+        (r#"𝒀"#, r#"𝒀"#, r#"𝒀"#, r#"Y"#, r#"Y"#),
+        (r#"𝒁"#, r#"𝒁"#, r#"𝒁"#, r#"Z"#, r#"Z"#),
+        (r#"𝒂"#, r#"𝒂"#, r#"𝒂"#, r#"a"#, r#"a"#),
+        (r#"𝒃"#, r#"𝒃"#, r#"𝒃"#, r#"b"#, r#"b"#),
+        (r#"𝒄"#, r#"𝒄"#, r#"𝒄"#, r#"c"#, r#"c"#),
+        (r#"𝒅"#, r#"𝒅"#, r#"𝒅"#, r#"d"#, r#"d"#),
+        (r#"𝒆"#, r#"𝒆"#, r#"𝒆"#, r#"e"#, r#"e"#),
+        (r#"𝒇"#, r#"𝒇"#, r#"𝒇"#, r#"f"#, r#"f"#),
+        (r#"𝒈"#, r#"𝒈"#, r#"𝒈"#, r#"g"#, r#"g"#),
+        (r#"𝒉"#, r#"𝒉"#, r#"𝒉"#, r#"h"#, r#"h"#),
+        (r#"𝒊"#, r#"𝒊"#, r#"𝒊"#, r#"i"#, r#"i"#),
+        (r#"𝒋"#, r#"𝒋"#, r#"𝒋"#, r#"j"#, r#"j"#),
+        (r#"𝒌"#, r#"𝒌"#, r#"𝒌"#, r#"k"#, r#"k"#),
+        (r#"𝒍"#, r#"𝒍"#, r#"𝒍"#, r#"l"#, r#"l"#),
+        (r#"𝒎"#, r#"𝒎"#, r#"𝒎"#, r#"m"#, r#"m"#),
+        (r#"𝒏"#, r#"𝒏"#, r#"𝒏"#, r#"n"#, r#"n"#),
+        (r#"𝒐"#, r#"𝒐"#, r#"𝒐"#, r#"o"#, r#"o"#),
+        (r#"𝒑"#, r#"𝒑"#, r#"𝒑"#, r#"p"#, r#"p"#),
+        (r#"𝒒"#, r#"𝒒"#, r#"𝒒"#, r#"q"#, r#"q"#),
+        (r#"𝒓"#, r#"𝒓"#, r#"𝒓"#, r#"r"#, r#"r"#),
+        (r#"𝒔"#, r#"𝒔"#, r#"𝒔"#, r#"s"#, r#"s"#),
+        (r#"𝒕"#, r#"𝒕"#, r#"𝒕"#, r#"t"#, r#"t"#),
+        (r#"𝒖"#, r#"𝒖"#, r#"𝒖"#, r#"u"#, r#"u"#),
+        (r#"𝒗"#, r#"𝒗"#, r#"𝒗"#, r#"v"#, r#"v"#),
+        (r#"𝒘"#, r#"𝒘"#, r#"𝒘"#, r#"w"#, r#"w"#),
+        (r#"𝒙"#, r#"𝒙"#, r#"𝒙"#, r#"x"#, r#"x"#),
+        (r#"𝒚"#, r#"𝒚"#, r#"𝒚"#, r#"y"#, r#"y"#),
+        (r#"𝒛"#, r#"𝒛"#, r#"𝒛"#, r#"z"#, r#"z"#),
+        (r#"𝒜"#, r#"𝒜"#, r#"𝒜"#, r#"A"#, r#"A"#),
+        (r#"𝒞"#, r#"𝒞"#, r#"𝒞"#, r#"C"#, r#"C"#),
+        (r#"𝒟"#, r#"𝒟"#, r#"𝒟"#, r#"D"#, r#"D"#),
+        (r#"𝒢"#, r#"𝒢"#, r#"𝒢"#, r#"G"#, r#"G"#),
+        (r#"𝒥"#, r#"𝒥"#, r#"𝒥"#, r#"J"#, r#"J"#),
+        (r#"𝒦"#, r#"𝒦"#, r#"𝒦"#, r#"K"#, r#"K"#),
+        (r#"𝒩"#, r#"𝒩"#, r#"𝒩"#, r#"N"#, r#"N"#),
+        (r#"𝒪"#, r#"𝒪"#, r#"𝒪"#, r#"O"#, r#"O"#),
+        (r#"𝒫"#, r#"𝒫"#, r#"𝒫"#, r#"P"#, r#"P"#),
+        (r#"𝒬"#, r#"𝒬"#, r#"𝒬"#, r#"Q"#, r#"Q"#),
+        (r#"𝒮"#, r#"𝒮"#, r#"𝒮"#, r#"S"#, r#"S"#),
+        (r#"𝒯"#, r#"𝒯"#, r#"𝒯"#, r#"T"#, r#"T"#),
+        (r#"𝒰"#, r#"𝒰"#, r#"𝒰"#, r#"U"#, r#"U"#),
+        (r#"𝒱"#, r#"𝒱"#, r#"𝒱"#, r#"V"#, r#"V"#),
+        (r#"𝒲"#, r#"𝒲"#, r#"𝒲"#, r#"W"#, r#"W"#),
+        (r#"𝒳"#, r#"𝒳"#, r#"𝒳"#, r#"X"#, r#"X"#),
+        (r#"𝒴"#, r#"𝒴"#, r#"𝒴"#, r#"Y"#, r#"Y"#),
+        (r#"𝒵"#, r#"𝒵"#, r#"𝒵"#, r#"Z"#, r#"Z"#),
+        (r#"𝒶"#, r#"𝒶"#, r#"𝒶"#, r#"a"#, r#"a"#),
+        (r#"𝒷"#, r#"𝒷"#, r#"𝒷"#, r#"b"#, r#"b"#),
+        (r#"𝒸"#, r#"𝒸"#, r#"𝒸"#, r#"c"#, r#"c"#),
+        (r#"𝒹"#, r#"𝒹"#, r#"𝒹"#, r#"d"#, r#"d"#),
+        (r#"𝒻"#, r#"𝒻"#, r#"𝒻"#, r#"f"#, r#"f"#),
+        (r#"𝒽"#, r#"𝒽"#, r#"𝒽"#, r#"h"#, r#"h"#),
+        (r#"𝒾"#, r#"𝒾"#, r#"𝒾"#, r#"i"#, r#"i"#),
+        (r#"𝒿"#, r#"𝒿"#, r#"𝒿"#, r#"j"#, r#"j"#),
+        (r#"𝓀"#, r#"𝓀"#, r#"𝓀"#, r#"k"#, r#"k"#),
+        (r#"𝓁"#, r#"𝓁"#, r#"𝓁"#, r#"l"#, r#"l"#),
+        (r#"𝓂"#, r#"𝓂"#, r#"𝓂"#, r#"m"#, r#"m"#),
+        (r#"𝓃"#, r#"𝓃"#, r#"𝓃"#, r#"n"#, r#"n"#),
+        (r#"𝓅"#, r#"𝓅"#, r#"𝓅"#, r#"p"#, r#"p"#),
+        (r#"𝓆"#, r#"𝓆"#, r#"𝓆"#, r#"q"#, r#"q"#),
+        (r#"𝓇"#, r#"𝓇"#, r#"𝓇"#, r#"r"#, r#"r"#),
+        (r#"𝓈"#, r#"𝓈"#, r#"𝓈"#, r#"s"#, r#"s"#),
+        (r#"𝓉"#, r#"𝓉"#, r#"𝓉"#, r#"t"#, r#"t"#),
+        (r#"𝓊"#, r#"𝓊"#, r#"𝓊"#, r#"u"#, r#"u"#),
+        (r#"𝓋"#, r#"𝓋"#, r#"𝓋"#, r#"v"#, r#"v"#),
+        (r#"𝓌"#, r#"𝓌"#, r#"𝓌"#, r#"w"#, r#"w"#),
+        (r#"𝓍"#, r#"𝓍"#, r#"𝓍"#, r#"x"#, r#"x"#),
+        (r#"𝓎"#, r#"𝓎"#, r#"𝓎"#, r#"y"#, r#"y"#),
+        (r#"𝓏"#, r#"𝓏"#, r#"𝓏"#, r#"z"#, r#"z"#),
+        (r#"𝓐"#, r#"𝓐"#, r#"𝓐"#, r#"A"#, r#"A"#),
+        (r#"𝓑"#, r#"𝓑"#, r#"𝓑"#, r#"B"#, r#"B"#),
+        (r#"𝓒"#, r#"𝓒"#, r#"𝓒"#, r#"C"#, r#"C"#),
+        (r#"𝓓"#, r#"𝓓"#, r#"𝓓"#, r#"D"#, r#"D"#),
+        (r#"𝓔"#, r#"𝓔"#, r#"𝓔"#, r#"E"#, r#"E"#),
+        (r#"𝓕"#, r#"𝓕"#, r#"𝓕"#, r#"F"#, r#"F"#),
+        (r#"𝓖"#, r#"𝓖"#, r#"𝓖"#, r#"G"#, r#"G"#),
+        (r#"𝓗"#, r#"𝓗"#, r#"𝓗"#, r#"H"#, r#"H"#),
+        (r#"𝓘"#, r#"𝓘"#, r#"𝓘"#, r#"I"#, r#"I"#),
+        (r#"𝓙"#, r#"𝓙"#, r#"𝓙"#, r#"J"#, r#"J"#),
+        (r#"𝓚"#, r#"𝓚"#, r#"𝓚"#, r#"K"#, r#"K"#),
+        (r#"𝓛"#, r#"𝓛"#, r#"𝓛"#, r#"L"#, r#"L"#),
+        (r#"𝓜"#, r#"𝓜"#, r#"𝓜"#, r#"M"#, r#"M"#),
+        (r#"𝓝"#, r#"𝓝"#, r#"𝓝"#, r#"N"#, r#"N"#),
+        (r#"𝓞"#, r#"𝓞"#, r#"𝓞"#, r#"O"#, r#"O"#),
+        (r#"𝓟"#, r#"𝓟"#, r#"𝓟"#, r#"P"#, r#"P"#),
+        (r#"𝓠"#, r#"𝓠"#, r#"𝓠"#, r#"Q"#, r#"Q"#),
+        (r#"𝓡"#, r#"𝓡"#, r#"𝓡"#, r#"R"#, r#"R"#),
+        (r#"𝓢"#, r#"𝓢"#, r#"𝓢"#, r#"S"#, r#"S"#),
+        (r#"𝓣"#, r#"𝓣"#, r#"𝓣"#, r#"T"#, r#"T"#),
+        (r#"𝓤"#, r#"𝓤"#, r#"𝓤"#, r#"U"#, r#"U"#),
+        (r#"𝓥"#, r#"𝓥"#, r#"𝓥"#, r#"V"#, r#"V"#),
+        (r#"𝓦"#, r#"𝓦"#, r#"𝓦"#, r#"W"#, r#"W"#),
+        (r#"𝓧"#, r#"𝓧"#, r#"𝓧"#, r#"X"#, r#"X"#),
+        (r#"𝓨"#, r#"𝓨"#, r#"𝓨"#, r#"Y"#, r#"Y"#),
+        (r#"𝓩"#, r#"𝓩"#, r#"𝓩"#, r#"Z"#, r#"Z"#),
+        (r#"𝓪"#, r#"𝓪"#, r#"𝓪"#, r#"a"#, r#"a"#),
+        (r#"𝓫"#, r#"𝓫"#, r#"𝓫"#, r#"b"#, r#"b"#),
+        (r#"𝓬"#, r#"𝓬"#, r#"𝓬"#, r#"c"#, r#"c"#),
+        (r#"𝓭"#, r#"𝓭"#, r#"𝓭"#, r#"d"#, r#"d"#),
+        (r#"𝓮"#, r#"𝓮"#, r#"𝓮"#, r#"e"#, r#"e"#),
+        (r#"𝓯"#, r#"𝓯"#, r#"𝓯"#, r#"f"#, r#"f"#),
+        (r#"𝓰"#, r#"𝓰"#, r#"𝓰"#, r#"g"#, r#"g"#),
+        (r#"𝓱"#, r#"𝓱"#, r#"𝓱"#, r#"h"#, r#"h"#),
+        (r#"𝓲"#, r#"𝓲"#, r#"𝓲"#, r#"i"#, r#"i"#),
+        (r#"𝓳"#, r#"𝓳"#, r#"𝓳"#, r#"j"#, r#"j"#),
+        (r#"𝓴"#, r#"𝓴"#, r#"𝓴"#, r#"k"#, r#"k"#),
+        (r#"𝓵"#, r#"𝓵"#, r#"𝓵"#, r#"l"#, r#"l"#),
+        (r#"𝓶"#, r#"𝓶"#, r#"𝓶"#, r#"m"#, r#"m"#),
+        (r#"𝓷"#, r#"𝓷"#, r#"𝓷"#, r#"n"#, r#"n"#),
+        (r#"𝓸"#, r#"𝓸"#, r#"𝓸"#, r#"o"#, r#"o"#),
+        (r#"𝓹"#, r#"𝓹"#, r#"𝓹"#, r#"p"#, r#"p"#),
+        (r#"𝓺"#, r#"𝓺"#, r#"𝓺"#, r#"q"#, r#"q"#),
+        (r#"𝓻"#, r#"𝓻"#, r#"𝓻"#, r#"r"#, r#"r"#),
+        (r#"𝓼"#, r#"𝓼"#, r#"𝓼"#, r#"s"#, r#"s"#),
+        (r#"𝓽"#, r#"𝓽"#, r#"𝓽"#, r#"t"#, r#"t"#),
+        (r#"𝓾"#, r#"𝓾"#, r#"𝓾"#, r#"u"#, r#"u"#),
+        (r#"𝓿"#, r#"𝓿"#, r#"𝓿"#, r#"v"#, r#"v"#),
+        (r#"𝔀"#, r#"𝔀"#, r#"𝔀"#, r#"w"#, r#"w"#),
+        (r#"𝔁"#, r#"𝔁"#, r#"𝔁"#, r#"x"#, r#"x"#),
+        (r#"𝔂"#, r#"𝔂"#, r#"𝔂"#, r#"y"#, r#"y"#),
+        (r#"𝔃"#, r#"𝔃"#, r#"𝔃"#, r#"z"#, r#"z"#),
+        (r#"𝔄"#, r#"𝔄"#, r#"𝔄"#, r#"A"#, r#"A"#),
+        (r#"𝔅"#, r#"𝔅"#, r#"𝔅"#, r#"B"#, r#"B"#),
+        (r#"𝔇"#, r#"𝔇"#, r#"𝔇"#, r#"D"#, r#"D"#),
+        (r#"𝔈"#, r#"𝔈"#, r#"𝔈"#, r#"E"#, r#"E"#),
+        (r#"𝔉"#, r#"𝔉"#, r#"𝔉"#, r#"F"#, r#"F"#),
+        (r#"𝔊"#, r#"𝔊"#, r#"𝔊"#, r#"G"#, r#"G"#),
+        (r#"𝔍"#, r#"𝔍"#, r#"𝔍"#, r#"J"#, r#"J"#),
+        (r#"𝔎"#, r#"𝔎"#, r#"𝔎"#, r#"K"#, r#"K"#),
+        (r#"𝔏"#, r#"𝔏"#, r#"𝔏"#, r#"L"#, r#"L"#),
+        (r#"𝔐"#, r#"𝔐"#, r#"𝔐"#, r#"M"#, r#"M"#),
+        (r#"𝔑"#, r#"𝔑"#, r#"𝔑"#, r#"N"#, r#"N"#),
+        (r#"𝔒"#, r#"𝔒"#, r#"𝔒"#, r#"O"#, r#"O"#),
+        (r#"𝔓"#, r#"𝔓"#, r#"𝔓"#, r#"P"#, r#"P"#),
+        (r#"𝔔"#, r#"𝔔"#, r#"𝔔"#, r#"Q"#, r#"Q"#),
+        (r#"𝔖"#, r#"𝔖"#, r#"𝔖"#, r#"S"#, r#"S"#),
+        (r#"𝔗"#, r#"𝔗"#, r#"𝔗"#, r#"T"#, r#"T"#),
+        (r#"𝔘"#, r#"𝔘"#, r#"𝔘"#, r#"U"#, r#"U"#),
+        (r#"𝔙"#, r#"𝔙"#, r#"𝔙"#, r#"V"#, r#"V"#),
+        (r#"𝔚"#, r#"𝔚"#, r#"𝔚"#, r#"W"#, r#"W"#),
+        (r#"𝔛"#, r#"𝔛"#, r#"𝔛"#, r#"X"#, r#"X"#),
+        (r#"𝔜"#, r#"𝔜"#, r#"𝔜"#, r#"Y"#, r#"Y"#),
+        (r#"𝔞"#, r#"𝔞"#, r#"𝔞"#, r#"a"#, r#"a"#),
+        (r#"𝔟"#, r#"𝔟"#, r#"𝔟"#, r#"b"#, r#"b"#),
+        (r#"𝔠"#, r#"𝔠"#, r#"𝔠"#, r#"c"#, r#"c"#),
+        (r#"𝔡"#, r#"𝔡"#, r#"𝔡"#, r#"d"#, r#"d"#),
+        (r#"𝔢"#, r#"𝔢"#, r#"𝔢"#, r#"e"#, r#"e"#),
+        (r#"𝔣"#, r#"𝔣"#, r#"𝔣"#, r#"f"#, r#"f"#),
+        (r#"𝔤"#, r#"𝔤"#, r#"𝔤"#, r#"g"#, r#"g"#),
+        (r#"𝔥"#, r#"𝔥"#, r#"𝔥"#, r#"h"#, r#"h"#),
+        (r#"𝔦"#, r#"𝔦"#, r#"𝔦"#, r#"i"#, r#"i"#),
+        (r#"𝔧"#, r#"𝔧"#, r#"𝔧"#, r#"j"#, r#"j"#),
+        (r#"𝔨"#, r#"𝔨"#, r#"𝔨"#, r#"k"#, r#"k"#),
+        (r#"𝔩"#, r#"𝔩"#, r#"𝔩"#, r#"l"#, r#"l"#),
+        (r#"𝔪"#, r#"𝔪"#, r#"𝔪"#, r#"m"#, r#"m"#),
+        (r#"𝔫"#, r#"𝔫"#, r#"𝔫"#, r#"n"#, r#"n"#),
+        (r#"𝔬"#, r#"𝔬"#, r#"𝔬"#, r#"o"#, r#"o"#),
+        (r#"𝔭"#, r#"𝔭"#, r#"𝔭"#, r#"p"#, r#"p"#),
+        (r#"𝔮"#, r#"𝔮"#, r#"𝔮"#, r#"q"#, r#"q"#),
+        (r#"𝔯"#, r#"𝔯"#, r#"𝔯"#, r#"r"#, r#"r"#),
+        (r#"𝔰"#, r#"𝔰"#, r#"𝔰"#, r#"s"#, r#"s"#),
+        (r#"𝔱"#, r#"𝔱"#, r#"𝔱"#, r#"t"#, r#"t"#),
+        (r#"𝔲"#, r#"𝔲"#, r#"𝔲"#, r#"u"#, r#"u"#),
+        (r#"𝔳"#, r#"𝔳"#, r#"𝔳"#, r#"v"#, r#"v"#),
+        (r#"𝔴"#, r#"𝔴"#, r#"𝔴"#, r#"w"#, r#"w"#),
+        (r#"𝔵"#, r#"𝔵"#, r#"𝔵"#, r#"x"#, r#"x"#),
+        (r#"𝔶"#, r#"𝔶"#, r#"𝔶"#, r#"y"#, r#"y"#),
+        (r#"𝔷"#, r#"𝔷"#, r#"𝔷"#, r#"z"#, r#"z"#),
+        (r#"𝔸"#, r#"𝔸"#, r#"𝔸"#, r#"A"#, r#"A"#),
+        (r#"𝔹"#, r#"𝔹"#, r#"𝔹"#, r#"B"#, r#"B"#),
+        (r#"𝔻"#, r#"𝔻"#, r#"𝔻"#, r#"D"#, r#"D"#),
+        (r#"𝔼"#, r#"𝔼"#, r#"𝔼"#, r#"E"#, r#"E"#),
+        (r#"𝔽"#, r#"𝔽"#, r#"𝔽"#, r#"F"#, r#"F"#),
+        (r#"𝔾"#, r#"𝔾"#, r#"𝔾"#, r#"G"#, r#"G"#),
+        (r#"𝕀"#, r#"𝕀"#, r#"𝕀"#, r#"I"#, r#"I"#),
+        (r#"𝕁"#, r#"𝕁"#, r#"𝕁"#, r#"J"#, r#"J"#),
+        (r#"𝕂"#, r#"𝕂"#, r#"𝕂"#, r#"K"#, r#"K"#),
+        (r#"𝕃"#, r#"𝕃"#, r#"𝕃"#, r#"L"#, r#"L"#),
+        (r#"𝕄"#, r#"𝕄"#, r#"𝕄"#, r#"M"#, r#"M"#),
+        (r#"𝕆"#, r#"𝕆"#, r#"𝕆"#, r#"O"#, r#"O"#),
+        (r#"𝕊"#, r#"𝕊"#, r#"𝕊"#, r#"S"#, r#"S"#),
+        (r#"𝕋"#, r#"𝕋"#, r#"𝕋"#, r#"T"#, r#"T"#),
+        (r#"𝕌"#, r#"𝕌"#, r#"𝕌"#, r#"U"#, r#"U"#),
+        (r#"𝕍"#, r#"𝕍"#, r#"𝕍"#, r#"V"#, r#"V"#),
+        (r#"𝕎"#, r#"𝕎"#, r#"𝕎"#, r#"W"#, r#"W"#),
+        (r#"𝕏"#, r#"𝕏"#, r#"𝕏"#, r#"X"#, r#"X"#),
+        (r#"𝕐"#, r#"𝕐"#, r#"𝕐"#, r#"Y"#, r#"Y"#),
+        (r#"𝕒"#, r#"𝕒"#, r#"𝕒"#, r#"a"#, r#"a"#),
+        (r#"𝕓"#, r#"𝕓"#, r#"𝕓"#, r#"b"#, r#"b"#),
+        (r#"𝕔"#, r#"𝕔"#, r#"𝕔"#, r#"c"#, r#"c"#),
+        (r#"𝕕"#, r#"𝕕"#, r#"𝕕"#, r#"d"#, r#"d"#),
+        (r#"𝕖"#, r#"𝕖"#, r#"𝕖"#, r#"e"#, r#"e"#),
+        (r#"𝕗"#, r#"𝕗"#, r#"𝕗"#, r#"f"#, r#"f"#),
+        (r#"𝕘"#, r#"𝕘"#, r#"𝕘"#, r#"g"#, r#"g"#),
+        (r#"𝕙"#, r#"𝕙"#, r#"𝕙"#, r#"h"#, r#"h"#),
+        (r#"𝕚"#, r#"𝕚"#, r#"𝕚"#, r#"i"#, r#"i"#),
+        (r#"𝕛"#, r#"𝕛"#, r#"𝕛"#, r#"j"#, r#"j"#),
+        (r#"𝕜"#, r#"𝕜"#, r#"𝕜"#, r#"k"#, r#"k"#),
+        (r#"𝕝"#, r#"𝕝"#, r#"𝕝"#, r#"l"#, r#"l"#),
+        (r#"𝕞"#, r#"𝕞"#, r#"𝕞"#, r#"m"#, r#"m"#),
+        (r#"𝕟"#, r#"𝕟"#, r#"𝕟"#, r#"n"#, r#"n"#),
+        (r#"𝕠"#, r#"𝕠"#, r#"𝕠"#, r#"o"#, r#"o"#),
+        (r#"𝕡"#, r#"𝕡"#, r#"𝕡"#, r#"p"#, r#"p"#),
+        (r#"𝕢"#, r#"𝕢"#, r#"𝕢"#, r#"q"#, r#"q"#),
+        (r#"𝕣"#, r#"𝕣"#, r#"𝕣"#, r#"r"#, r#"r"#),
+        (r#"𝕤"#, r#"𝕤"#, r#"𝕤"#, r#"s"#, r#"s"#),
+        (r#"𝕥"#, r#"𝕥"#, r#"𝕥"#, r#"t"#, r#"t"#),
+        (r#"𝕦"#, r#"𝕦"#, r#"𝕦"#, r#"u"#, r#"u"#),
+        (r#"𝕧"#, r#"𝕧"#, r#"𝕧"#, r#"v"#, r#"v"#),
+        (r#"𝕨"#, r#"𝕨"#, r#"𝕨"#, r#"w"#, r#"w"#),
+        (r#"𝕩"#, r#"𝕩"#, r#"𝕩"#, r#"x"#, r#"x"#),
+        (r#"𝕪"#, r#"𝕪"#, r#"𝕪"#, r#"y"#, r#"y"#),
+        (r#"𝕫"#, r#"𝕫"#, r#"𝕫"#, r#"z"#, r#"z"#),
+        (r#"𝕬"#, r#"𝕬"#, r#"𝕬"#, r#"A"#, r#"A"#),
+        (r#"𝕭"#, r#"𝕭"#, r#"𝕭"#, r#"B"#, r#"B"#),
+        (r#"𝕮"#, r#"𝕮"#, r#"𝕮"#, r#"C"#, r#"C"#),
+        (r#"𝕯"#, r#"𝕯"#, r#"𝕯"#, r#"D"#, r#"D"#),
+        (r#"𝕰"#, r#"𝕰"#, r#"𝕰"#, r#"E"#, r#"E"#),
+        (r#"𝕱"#, r#"𝕱"#, r#"𝕱"#, r#"F"#, r#"F"#),
+        (r#"𝕲"#, r#"𝕲"#, r#"𝕲"#, r#"G"#, r#"G"#),
+        (r#"𝕳"#, r#"𝕳"#, r#"𝕳"#, r#"H"#, r#"H"#),
+        (r#"𝕴"#, r#"𝕴"#, r#"𝕴"#, r#"I"#, r#"I"#),
+        (r#"𝕵"#, r#"𝕵"#, r#"𝕵"#, r#"J"#, r#"J"#),
+        (r#"𝕶"#, r#"𝕶"#, r#"𝕶"#, r#"K"#, r#"K"#),
+        (r#"𝕷"#, r#"𝕷"#, r#"𝕷"#, r#"L"#, r#"L"#),
+        (r#"𝕸"#, r#"𝕸"#, r#"𝕸"#, r#"M"#, r#"M"#),
+        (r#"𝕹"#, r#"𝕹"#, r#"𝕹"#, r#"N"#, r#"N"#),
+        (r#"𝕺"#, r#"𝕺"#, r#"𝕺"#, r#"O"#, r#"O"#),
+        (r#"𝕻"#, r#"𝕻"#, r#"𝕻"#, r#"P"#, r#"P"#),
+        (r#"𝕼"#, r#"𝕼"#, r#"𝕼"#, r#"Q"#, r#"Q"#),
+        (r#"𝕽"#, r#"𝕽"#, r#"𝕽"#, r#"R"#, r#"R"#),
+        (r#"𝕾"#, r#"𝕾"#, r#"𝕾"#, r#"S"#, r#"S"#),
+        (r#"𝕿"#, r#"𝕿"#, r#"𝕿"#, r#"T"#, r#"T"#),
+        (r#"𝖀"#, r#"𝖀"#, r#"𝖀"#, r#"U"#, r#"U"#),
+        (r#"𝖁"#, r#"𝖁"#, r#"𝖁"#, r#"V"#, r#"V"#),
+        (r#"𝖂"#, r#"𝖂"#, r#"𝖂"#, r#"W"#, r#"W"#),
+        (r#"𝖃"#, r#"𝖃"#, r#"𝖃"#, r#"X"#, r#"X"#),
+        (r#"𝖄"#, r#"𝖄"#, r#"𝖄"#, r#"Y"#, r#"Y"#),
+        (r#"𝖅"#, r#"𝖅"#, r#"𝖅"#, r#"Z"#, r#"Z"#),
+        (r#"𝖆"#, r#"𝖆"#, r#"𝖆"#, r#"a"#, r#"a"#),
+        (r#"𝖇"#, r#"𝖇"#, r#"𝖇"#, r#"b"#, r#"b"#),
+        (r#"𝖈"#, r#"𝖈"#, r#"𝖈"#, r#"c"#, r#"c"#),
+        (r#"𝖉"#, r#"𝖉"#, r#"𝖉"#, r#"d"#, r#"d"#),
+        (r#"𝖊"#, r#"𝖊"#, r#"𝖊"#, r#"e"#, r#"e"#),
+        (r#"𝖋"#, r#"𝖋"#, r#"𝖋"#, r#"f"#, r#"f"#),
+        (r#"𝖌"#, r#"𝖌"#, r#"𝖌"#, r#"g"#, r#"g"#),
+        (r#"𝖍"#, r#"𝖍"#, r#"𝖍"#, r#"h"#, r#"h"#),
+        (r#"𝖎"#, r#"𝖎"#, r#"𝖎"#, r#"i"#, r#"i"#),
+        (r#"𝖏"#, r#"𝖏"#, r#"𝖏"#, r#"j"#, r#"j"#),
+        (r#"𝖐"#, r#"𝖐"#, r#"𝖐"#, r#"k"#, r#"k"#),
+        (r#"𝖑"#, r#"𝖑"#, r#"𝖑"#, r#"l"#, r#"l"#),
+        (r#"𝖒"#, r#"𝖒"#, r#"𝖒"#, r#"m"#, r#"m"#),
+        (r#"𝖓"#, r#"𝖓"#, r#"𝖓"#, r#"n"#, r#"n"#),
+        (r#"𝖔"#, r#"𝖔"#, r#"𝖔"#, r#"o"#, r#"o"#),
+        (r#"𝖕"#, r#"𝖕"#, r#"𝖕"#, r#"p"#, r#"p"#),
+        (r#"𝖖"#, r#"𝖖"#, r#"𝖖"#, r#"q"#, r#"q"#),
+        (r#"𝖗"#, r#"𝖗"#, r#"𝖗"#, r#"r"#, r#"r"#),
+        (r#"𝖘"#, r#"𝖘"#, r#"𝖘"#, r#"s"#, r#"s"#),
+        (r#"𝖙"#, r#"𝖙"#, r#"𝖙"#, r#"t"#, r#"t"#),
+        (r#"𝖚"#, r#"𝖚"#, r#"𝖚"#, r#"u"#, r#"u"#),
+        (r#"𝖛"#, r#"𝖛"#, r#"𝖛"#, r#"v"#, r#"v"#),
+        (r#"𝖜"#, r#"𝖜"#, r#"𝖜"#, r#"w"#, r#"w"#),
+        (r#"𝖝"#, r#"𝖝"#, r#"𝖝"#, r#"x"#, r#"x"#),
+        (r#"𝖞"#, r#"𝖞"#, r#"𝖞"#, r#"y"#, r#"y"#),
+        (r#"𝖟"#, r#"𝖟"#, r#"𝖟"#, r#"z"#, r#"z"#),
+        (r#"𝖠"#, r#"𝖠"#, r#"𝖠"#, r#"A"#, r#"A"#),
+        (r#"𝖡"#, r#"𝖡"#, r#"𝖡"#, r#"B"#, r#"B"#),
+        (r#"𝖢"#, r#"𝖢"#, r#"𝖢"#, r#"C"#, r#"C"#),
+        (r#"𝖣"#, r#"𝖣"#, r#"𝖣"#, r#"D"#, r#"D"#),
+        (r#"𝖤"#, r#"𝖤"#, r#"𝖤"#, r#"E"#, r#"E"#),
+        (r#"𝖥"#, r#"𝖥"#, r#"𝖥"#, r#"F"#, r#"F"#),
+        (r#"𝖦"#, r#"𝖦"#, r#"𝖦"#, r#"G"#, r#"G"#),
+        (r#"𝖧"#, r#"𝖧"#, r#"𝖧"#, r#"H"#, r#"H"#),
+        (r#"𝖨"#, r#"𝖨"#, r#"𝖨"#, r#"I"#, r#"I"#),
+        (r#"𝖩"#, r#"𝖩"#, r#"𝖩"#, r#"J"#, r#"J"#),
+        (r#"𝖪"#, r#"𝖪"#, r#"𝖪"#, r#"K"#, r#"K"#),
+        (r#"𝖫"#, r#"𝖫"#, r#"𝖫"#, r#"L"#, r#"L"#),
+        (r#"𝖬"#, r#"𝖬"#, r#"𝖬"#, r#"M"#, r#"M"#),
+        (r#"𝖭"#, r#"𝖭"#, r#"𝖭"#, r#"N"#, r#"N"#),
+        (r#"𝖮"#, r#"𝖮"#, r#"𝖮"#, r#"O"#, r#"O"#),
+        (r#"𝖯"#, r#"𝖯"#, r#"𝖯"#, r#"P"#, r#"P"#),
+        (r#"𝖰"#, r#"𝖰"#, r#"𝖰"#, r#"Q"#, r#"Q"#),
+        (r#"𝖱"#, r#"𝖱"#, r#"𝖱"#, r#"R"#, r#"R"#),
+        (r#"𝖲"#, r#"𝖲"#, r#"𝖲"#, r#"S"#, r#"S"#),
+        (r#"𝖳"#, r#"𝖳"#, r#"𝖳"#, r#"T"#, r#"T"#),
+        (r#"𝖴"#, r#"𝖴"#, r#"𝖴"#, r#"U"#, r#"U"#),
+        (r#"𝖵"#, r#"𝖵"#, r#"𝖵"#, r#"V"#, r#"V"#),
+        (r#"𝖶"#, r#"𝖶"#, r#"𝖶"#, r#"W"#, r#"W"#),
+        (r#"𝖷"#, r#"𝖷"#, r#"𝖷"#, r#"X"#, r#"X"#),
+        (r#"𝖸"#, r#"𝖸"#, r#"𝖸"#, r#"Y"#, r#"Y"#),
+        (r#"𝖹"#, r#"𝖹"#, r#"𝖹"#, r#"Z"#, r#"Z"#),
+        (r#"𝖺"#, r#"𝖺"#, r#"𝖺"#, r#"a"#, r#"a"#),
+        (r#"𝖻"#, r#"𝖻"#, r#"𝖻"#, r#"b"#, r#"b"#),
+        (r#"𝖼"#, r#"𝖼"#, r#"𝖼"#, r#"c"#, r#"c"#),
+        (r#"𝖽"#, r#"𝖽"#, r#"𝖽"#, r#"d"#, r#"d"#),
+        (r#"𝖾"#, r#"𝖾"#, r#"𝖾"#, r#"e"#, r#"e"#),
+        (r#"𝖿"#, r#"𝖿"#, r#"𝖿"#, r#"f"#, r#"f"#),
+        (r#"𝗀"#, r#"𝗀"#, r#"𝗀"#, r#"g"#, r#"g"#),
+        (r#"𝗁"#, r#"𝗁"#, r#"𝗁"#, r#"h"#, r#"h"#),
+        (r#"𝗂"#, r#"𝗂"#, r#"𝗂"#, r#"i"#, r#"i"#),
+        (r#"𝗃"#, r#"𝗃"#, r#"𝗃"#, r#"j"#, r#"j"#),
+        (r#"𝗄"#, r#"𝗄"#, r#"𝗄"#, r#"k"#, r#"k"#),
+        (r#"𝗅"#, r#"𝗅"#, r#"𝗅"#, r#"l"#, r#"l"#),
+        (r#"𝗆"#, r#"𝗆"#, r#"𝗆"#, r#"m"#, r#"m"#),
+        (r#"𝗇"#, r#"𝗇"#, r#"𝗇"#, r#"n"#, r#"n"#),
+        (r#"𝗈"#, r#"𝗈"#, r#"𝗈"#, r#"o"#, r#"o"#),
+        (r#"𝗉"#, r#"𝗉"#, r#"𝗉"#, r#"p"#, r#"p"#),
+        (r#"𝗊"#, r#"𝗊"#, r#"𝗊"#, r#"q"#, r#"q"#),
+        (r#"𝗋"#, r#"𝗋"#, r#"𝗋"#, r#"r"#, r#"r"#),
+        (r#"𝗌"#, r#"𝗌"#, r#"𝗌"#, r#"s"#, r#"s"#),
+        (r#"𝗍"#, r#"𝗍"#, r#"𝗍"#, r#"t"#, r#"t"#),
+        (r#"𝗎"#, r#"𝗎"#, r#"𝗎"#, r#"u"#, r#"u"#),
+        (r#"𝗏"#, r#"𝗏"#, r#"𝗏"#, r#"v"#, r#"v"#),
+        (r#"𝗐"#, r#"𝗐"#, r#"𝗐"#, r#"w"#, r#"w"#),
+        (r#"𝗑"#, r#"𝗑"#, r#"𝗑"#, r#"x"#, r#"x"#),
+        (r#"𝗒"#, r#"𝗒"#, r#"𝗒"#, r#"y"#, r#"y"#),
+        (r#"𝗓"#, r#"𝗓"#, r#"𝗓"#, r#"z"#, r#"z"#),
+        (r#"𝗔"#, r#"𝗔"#, r#"𝗔"#, r#"A"#, r#"A"#),
+        (r#"𝗕"#, r#"𝗕"#, r#"𝗕"#, r#"B"#, r#"B"#),
+        (r#"𝗖"#, r#"𝗖"#, r#"𝗖"#, r#"C"#, r#"C"#),
+        (r#"𝗗"#, r#"𝗗"#, r#"𝗗"#, r#"D"#, r#"D"#),
+        (r#"𝗘"#, r#"𝗘"#, r#"𝗘"#, r#"E"#, r#"E"#),
+        (r#"𝗙"#, r#"𝗙"#, r#"𝗙"#, r#"F"#, r#"F"#),
+        (r#"𝗚"#, r#"𝗚"#, r#"𝗚"#, r#"G"#, r#"G"#),
+        (r#"𝗛"#, r#"𝗛"#, r#"𝗛"#, r#"H"#, r#"H"#),
+        (r#"𝗜"#, r#"𝗜"#, r#"𝗜"#, r#"I"#, r#"I"#),
+        (r#"𝗝"#, r#"𝗝"#, r#"𝗝"#, r#"J"#, r#"J"#),
+        (r#"𝗞"#, r#"𝗞"#, r#"𝗞"#, r#"K"#, r#"K"#),
+        (r#"𝗟"#, r#"𝗟"#, r#"𝗟"#, r#"L"#, r#"L"#),
+        (r#"𝗠"#, r#"𝗠"#, r#"𝗠"#, r#"M"#, r#"M"#),
+        (r#"𝗡"#, r#"𝗡"#, r#"𝗡"#, r#"N"#, r#"N"#),
+        (r#"𝗢"#, r#"𝗢"#, r#"𝗢"#, r#"O"#, r#"O"#),
+        (r#"𝗣"#, r#"𝗣"#, r#"𝗣"#, r#"P"#, r#"P"#),
+        (r#"𝗤"#, r#"𝗤"#, r#"𝗤"#, r#"Q"#, r#"Q"#),
+        (r#"𝗥"#, r#"𝗥"#, r#"𝗥"#, r#"R"#, r#"R"#),
+        (r#"𝗦"#, r#"𝗦"#, r#"𝗦"#, r#"S"#, r#"S"#),
+        (r#"𝗧"#, r#"𝗧"#, r#"𝗧"#, r#"T"#, r#"T"#),
+        (r#"𝗨"#, r#"𝗨"#, r#"𝗨"#, r#"U"#, r#"U"#),
+        (r#"𝗩"#, r#"𝗩"#, r#"𝗩"#, r#"V"#, r#"V"#),
+        (r#"𝗪"#, r#"𝗪"#, r#"𝗪"#, r#"W"#, r#"W"#),
+        (r#"𝗫"#, r#"𝗫"#, r#"𝗫"#, r#"X"#, r#"X"#),
+        (r#"𝗬"#, r#"𝗬"#, r#"𝗬"#, r#"Y"#, r#"Y"#),
+        (r#"𝗭"#, r#"𝗭"#, r#"𝗭"#, r#"Z"#, r#"Z"#),
+        (r#"𝗮"#, r#"𝗮"#, r#"𝗮"#, r#"a"#, r#"a"#),
+        (r#"𝗯"#, r#"𝗯"#, r#"𝗯"#, r#"b"#, r#"b"#),
+        (r#"𝗰"#, r#"𝗰"#, r#"𝗰"#, r#"c"#, r#"c"#),
+        (r#"𝗱"#, r#"𝗱"#, r#"𝗱"#, r#"d"#, r#"d"#),
+        (r#"𝗲"#, r#"𝗲"#, r#"𝗲"#, r#"e"#, r#"e"#),
+        (r#"𝗳"#, r#"𝗳"#, r#"𝗳"#, r#"f"#, r#"f"#),
+        (r#"𝗴"#, r#"𝗴"#, r#"𝗴"#, r#"g"#, r#"g"#),
+        (r#"𝗵"#, r#"𝗵"#, r#"𝗵"#, r#"h"#, r#"h"#),
+        (r#"𝗶"#, r#"𝗶"#, r#"𝗶"#, r#"i"#, r#"i"#),
+        (r#"𝗷"#, r#"𝗷"#, r#"𝗷"#, r#"j"#, r#"j"#),
+        (r#"𝗸"#, r#"𝗸"#, r#"𝗸"#, r#"k"#, r#"k"#),
+        (r#"𝗹"#, r#"𝗹"#, r#"𝗹"#, r#"l"#, r#"l"#),
+        (r#"𝗺"#, r#"𝗺"#, r#"𝗺"#, r#"m"#, r#"m"#),
+        (r#"𝗻"#, r#"𝗻"#, r#"𝗻"#, r#"n"#, r#"n"#),
+        (r#"𝗼"#, r#"𝗼"#, r#"𝗼"#, r#"o"#, r#"o"#),
+        (r#"𝗽"#, r#"𝗽"#, r#"𝗽"#, r#"p"#, r#"p"#),
+        (r#"𝗾"#, r#"𝗾"#, r#"𝗾"#, r#"q"#, r#"q"#),
+        (r#"𝗿"#, r#"𝗿"#, r#"𝗿"#, r#"r"#, r#"r"#),
+        (r#"𝘀"#, r#"𝘀"#, r#"𝘀"#, r#"s"#, r#"s"#),
+        (r#"𝘁"#, r#"𝘁"#, r#"𝘁"#, r#"t"#, r#"t"#),
+        (r#"𝘂"#, r#"𝘂"#, r#"𝘂"#, r#"u"#, r#"u"#),
+        (r#"𝘃"#, r#"𝘃"#, r#"𝘃"#, r#"v"#, r#"v"#),
+        (r#"𝘄"#, r#"𝘄"#, r#"𝘄"#, r#"w"#, r#"w"#),
+        (r#"𝘅"#, r#"𝘅"#, r#"𝘅"#, r#"x"#, r#"x"#),
+        (r#"𝘆"#, r#"𝘆"#, r#"𝘆"#, r#"y"#, r#"y"#),
+        (r#"𝘇"#, r#"𝘇"#, r#"𝘇"#, r#"z"#, r#"z"#),
+        (r#"𝘈"#, r#"𝘈"#, r#"𝘈"#, r#"A"#, r#"A"#),
+        (r#"𝘉"#, r#"𝘉"#, r#"𝘉"#, r#"B"#, r#"B"#),
+        (r#"𝘊"#, r#"𝘊"#, r#"𝘊"#, r#"C"#, r#"C"#),
+        (r#"𝘋"#, r#"𝘋"#, r#"𝘋"#, r#"D"#, r#"D"#),
+        (r#"𝘌"#, r#"𝘌"#, r#"𝘌"#, r#"E"#, r#"E"#),
+        (r#"𝘍"#, r#"𝘍"#, r#"𝘍"#, r#"F"#, r#"F"#),
+        (r#"𝘎"#, r#"𝘎"#, r#"𝘎"#, r#"G"#, r#"G"#),
+        (r#"𝘏"#, r#"𝘏"#, r#"𝘏"#, r#"H"#, r#"H"#),
+        (r#"𝘐"#, r#"𝘐"#, r#"𝘐"#, r#"I"#, r#"I"#),
+        (r#"𝘑"#, r#"𝘑"#, r#"𝘑"#, r#"J"#, r#"J"#),
+        (r#"𝘒"#, r#"𝘒"#, r#"𝘒"#, r#"K"#, r#"K"#),
+        (r#"𝘓"#, r#"𝘓"#, r#"𝘓"#, r#"L"#, r#"L"#),
+        (r#"𝘔"#, r#"𝘔"#, r#"𝘔"#, r#"M"#, r#"M"#),
+        (r#"𝘕"#, r#"𝘕"#, r#"𝘕"#, r#"N"#, r#"N"#),
+        (r#"𝘖"#, r#"𝘖"#, r#"𝘖"#, r#"O"#, r#"O"#),
+        (r#"𝘗"#, r#"𝘗"#, r#"𝘗"#, r#"P"#, r#"P"#),
+        (r#"𝘘"#, r#"𝘘"#, r#"𝘘"#, r#"Q"#, r#"Q"#),
+        (r#"𝘙"#, r#"𝘙"#, r#"𝘙"#, r#"R"#, r#"R"#),
+        (r#"𝘚"#, r#"𝘚"#, r#"𝘚"#, r#"S"#, r#"S"#),
+        (r#"𝘛"#, r#"𝘛"#, r#"𝘛"#, r#"T"#, r#"T"#),
+        (r#"𝘜"#, r#"𝘜"#, r#"𝘜"#, r#"U"#, r#"U"#),
+        (r#"𝘝"#, r#"𝘝"#, r#"𝘝"#, r#"V"#, r#"V"#),
+        (r#"𝘞"#, r#"𝘞"#, r#"𝘞"#, r#"W"#, r#"W"#),
+        (r#"𝘟"#, r#"𝘟"#, r#"𝘟"#, r#"X"#, r#"X"#),
+        (r#"𝘠"#, r#"𝘠"#, r#"𝘠"#, r#"Y"#, r#"Y"#),
+        (r#"𝘡"#, r#"𝘡"#, r#"𝘡"#, r#"Z"#, r#"Z"#),
+        (r#"𝘢"#, r#"𝘢"#, r#"𝘢"#, r#"a"#, r#"a"#),
+        (r#"𝘣"#, r#"𝘣"#, r#"𝘣"#, r#"b"#, r#"b"#),
+        (r#"𝘤"#, r#"𝘤"#, r#"𝘤"#, r#"c"#, r#"c"#),
+        (r#"𝘥"#, r#"𝘥"#, r#"𝘥"#, r#"d"#, r#"d"#),
+        (r#"𝘦"#, r#"𝘦"#, r#"𝘦"#, r#"e"#, r#"e"#),
+        (r#"𝘧"#, r#"𝘧"#, r#"𝘧"#, r#"f"#, r#"f"#),
+        (r#"𝘨"#, r#"𝘨"#, r#"𝘨"#, r#"g"#, r#"g"#),
+        (r#"𝘩"#, r#"𝘩"#, r#"𝘩"#, r#"h"#, r#"h"#),
+        (r#"𝘪"#, r#"𝘪"#, r#"𝘪"#, r#"i"#, r#"i"#),
+        (r#"𝘫"#, r#"𝘫"#, r#"𝘫"#, r#"j"#, r#"j"#),
+        (r#"𝘬"#, r#"𝘬"#, r#"𝘬"#, r#"k"#, r#"k"#),
+        (r#"𝘭"#, r#"𝘭"#, r#"𝘭"#, r#"l"#, r#"l"#),
+        (r#"𝘮"#, r#"𝘮"#, r#"𝘮"#, r#"m"#, r#"m"#),
+        (r#"𝘯"#, r#"𝘯"#, r#"𝘯"#, r#"n"#, r#"n"#),
+        (r#"𝘰"#, r#"𝘰"#, r#"𝘰"#, r#"o"#, r#"o"#),
+        (r#"𝘱"#, r#"𝘱"#, r#"𝘱"#, r#"p"#, r#"p"#),
+        (r#"𝘲"#, r#"𝘲"#, r#"𝘲"#, r#"q"#, r#"q"#),
+        (r#"𝘳"#, r#"𝘳"#, r#"𝘳"#, r#"r"#, r#"r"#),
+        (r#"𝘴"#, r#"𝘴"#, r#"𝘴"#, r#"s"#, r#"s"#),
+        (r#"𝘵"#, r#"𝘵"#, r#"𝘵"#, r#"t"#, r#"t"#),
+        (r#"𝘶"#, r#"𝘶"#, r#"𝘶"#, r#"u"#, r#"u"#),
+        (r#"𝘷"#, r#"𝘷"#, r#"𝘷"#, r#"v"#, r#"v"#),
+        (r#"𝘸"#, r#"𝘸"#, r#"𝘸"#, r#"w"#, r#"w"#),
+        (r#"𝘹"#, r#"𝘹"#, r#"𝘹"#, r#"x"#, r#"x"#),
+        (r#"𝘺"#, r#"𝘺"#, r#"𝘺"#, r#"y"#, r#"y"#),
+        (r#"𝘻"#, r#"𝘻"#, r#"𝘻"#, r#"z"#, r#"z"#),
+        (r#"𝘼"#, r#"𝘼"#, r#"𝘼"#, r#"A"#, r#"A"#),
+        (r#"𝘽"#, r#"𝘽"#, r#"𝘽"#, r#"B"#, r#"B"#),
+        (r#"𝘾"#, r#"𝘾"#, r#"𝘾"#, r#"C"#, r#"C"#),
+        (r#"𝘿"#, r#"𝘿"#, r#"𝘿"#, r#"D"#, r#"D"#),
+        (r#"𝙀"#, r#"𝙀"#, r#"𝙀"#, r#"E"#, r#"E"#),
+        (r#"𝙁"#, r#"𝙁"#, r#"𝙁"#, r#"F"#, r#"F"#),
+        (r#"𝙂"#, r#"𝙂"#, r#"𝙂"#, r#"G"#, r#"G"#),
+        (r#"𝙃"#, r#"𝙃"#, r#"𝙃"#, r#"H"#, r#"H"#),
+        (r#"𝙄"#, r#"𝙄"#, r#"𝙄"#, r#"I"#, r#"I"#),
+        (r#"𝙅"#, r#"𝙅"#, r#"𝙅"#, r#"J"#, r#"J"#),
+        (r#"𝙆"#, r#"𝙆"#, r#"𝙆"#, r#"K"#, r#"K"#),
+        (r#"𝙇"#, r#"𝙇"#, r#"𝙇"#, r#"L"#, r#"L"#),
+        (r#"𝙈"#, r#"𝙈"#, r#"𝙈"#, r#"M"#, r#"M"#),
+        (r#"𝙉"#, r#"𝙉"#, r#"𝙉"#, r#"N"#, r#"N"#),
+        (r#"𝙊"#, r#"𝙊"#, r#"𝙊"#, r#"O"#, r#"O"#),
+        (r#"𝙋"#, r#"𝙋"#, r#"𝙋"#, r#"P"#, r#"P"#),
+        (r#"𝙌"#, r#"𝙌"#, r#"𝙌"#, r#"Q"#, r#"Q"#),
+        (r#"𝙍"#, r#"𝙍"#, r#"𝙍"#, r#"R"#, r#"R"#),
+        (r#"𝙎"#, r#"𝙎"#, r#"𝙎"#, r#"S"#, r#"S"#),
+        (r#"𝙏"#, r#"𝙏"#, r#"𝙏"#, r#"T"#, r#"T"#),
+        (r#"𝙐"#, r#"𝙐"#, r#"𝙐"#, r#"U"#, r#"U"#),
+        (r#"𝙑"#, r#"𝙑"#, r#"𝙑"#, r#"V"#, r#"V"#),
+        (r#"𝙒"#, r#"𝙒"#, r#"𝙒"#, r#"W"#, r#"W"#),
+        (r#"𝙓"#, r#"𝙓"#, r#"𝙓"#, r#"X"#, r#"X"#),
+        (r#"𝙔"#, r#"𝙔"#, r#"𝙔"#, r#"Y"#, r#"Y"#),
+        (r#"𝙕"#, r#"𝙕"#, r#"𝙕"#, r#"Z"#, r#"Z"#),
+        (r#"𝙖"#, r#"𝙖"#, r#"𝙖"#, r#"a"#, r#"a"#),
+        (r#"𝙗"#, r#"𝙗"#, r#"𝙗"#, r#"b"#, r#"b"#),
+        (r#"𝙘"#, r#"𝙘"#, r#"𝙘"#, r#"c"#, r#"c"#),
+        (r#"𝙙"#, r#"𝙙"#, r#"𝙙"#, r#"d"#, r#"d"#),
+        (r#"𝙚"#, r#"𝙚"#, r#"𝙚"#, r#"e"#, r#"e"#),
+        (r#"𝙛"#, r#"𝙛"#, r#"𝙛"#, r#"f"#, r#"f"#),
+        (r#"𝙜"#, r#"𝙜"#, r#"𝙜"#, r#"g"#, r#"g"#),
+        (r#"𝙝"#, r#"𝙝"#, r#"𝙝"#, r#"h"#, r#"h"#),
+        (r#"𝙞"#, r#"𝙞"#, r#"𝙞"#, r#"i"#, r#"i"#),
+        (r#"𝙟"#, r#"𝙟"#, r#"𝙟"#, r#"j"#, r#"j"#),
+        (r#"𝙠"#, r#"𝙠"#, r#"𝙠"#, r#"k"#, r#"k"#),
+        (r#"𝙡"#, r#"𝙡"#, r#"𝙡"#, r#"l"#, r#"l"#),
+        (r#"𝙢"#, r#"𝙢"#, r#"𝙢"#, r#"m"#, r#"m"#),
+        (r#"𝙣"#, r#"𝙣"#, r#"𝙣"#, r#"n"#, r#"n"#),
+        (r#"𝙤"#, r#"𝙤"#, r#"𝙤"#, r#"o"#, r#"o"#),
+        (r#"𝙥"#, r#"𝙥"#, r#"𝙥"#, r#"p"#, r#"p"#),
+        (r#"𝙦"#, r#"𝙦"#, r#"𝙦"#, r#"q"#, r#"q"#),
+        (r#"𝙧"#, r#"𝙧"#, r#"𝙧"#, r#"r"#, r#"r"#),
+        (r#"𝙨"#, r#"𝙨"#, r#"𝙨"#, r#"s"#, r#"s"#),
+        (r#"𝙩"#, r#"𝙩"#, r#"𝙩"#, r#"t"#, r#"t"#),
+        (r#"𝙪"#, r#"𝙪"#, r#"𝙪"#, r#"u"#, r#"u"#),
+        (r#"𝙫"#, r#"𝙫"#, r#"𝙫"#, r#"v"#, r#"v"#),
+        (r#"𝙬"#, r#"𝙬"#, r#"𝙬"#, r#"w"#, r#"w"#),
+        (r#"𝙭"#, r#"𝙭"#, r#"𝙭"#, r#"x"#, r#"x"#),
+        (r#"𝙮"#, r#"𝙮"#, r#"𝙮"#, r#"y"#, r#"y"#),
+        (r#"𝙯"#, r#"𝙯"#, r#"𝙯"#, r#"z"#, r#"z"#),
+        (r#"𝙰"#, r#"𝙰"#, r#"𝙰"#, r#"A"#, r#"A"#),
+        (r#"𝙱"#, r#"𝙱"#, r#"𝙱"#, r#"B"#, r#"B"#),
+        (r#"𝙲"#, r#"𝙲"#, r#"𝙲"#, r#"C"#, r#"C"#),
+        (r#"𝙳"#, r#"𝙳"#, r#"𝙳"#, r#"D"#, r#"D"#),
+        (r#"𝙴"#, r#"𝙴"#, r#"𝙴"#, r#"E"#, r#"E"#),
+        (r#"𝙵"#, r#"𝙵"#, r#"𝙵"#, r#"F"#, r#"F"#),
+        (r#"𝙶"#, r#"𝙶"#, r#"𝙶"#, r#"G"#, r#"G"#),
+        (r#"𝙷"#, r#"𝙷"#, r#"𝙷"#, r#"H"#, r#"H"#),
+        (r#"𝙸"#, r#"𝙸"#, r#"𝙸"#, r#"I"#, r#"I"#),
+        (r#"𝙹"#, r#"𝙹"#, r#"𝙹"#, r#"J"#, r#"J"#),
+        (r#"𝙺"#, r#"𝙺"#, r#"𝙺"#, r#"K"#, r#"K"#),
+        (r#"𝙻"#, r#"𝙻"#, r#"𝙻"#, r#"L"#, r#"L"#),
+        (r#"𝙼"#, r#"𝙼"#, r#"𝙼"#, r#"M"#, r#"M"#),
+        (r#"𝙽"#, r#"𝙽"#, r#"𝙽"#, r#"N"#, r#"N"#),
+        (r#"𝙾"#, r#"𝙾"#, r#"𝙾"#, r#"O"#, r#"O"#),
+        (r#"𝙿"#, r#"𝙿"#, r#"𝙿"#, r#"P"#, r#"P"#),
+        (r#"𝚀"#, r#"𝚀"#, r#"𝚀"#, r#"Q"#, r#"Q"#),
+        (r#"𝚁"#, r#"𝚁"#, r#"𝚁"#, r#"R"#, r#"R"#),
+        (r#"𝚂"#, r#"𝚂"#, r#"𝚂"#, r#"S"#, r#"S"#),
+        (r#"𝚃"#, r#"𝚃"#, r#"𝚃"#, r#"T"#, r#"T"#),
+        (r#"𝚄"#, r#"𝚄"#, r#"𝚄"#, r#"U"#, r#"U"#),
+        (r#"𝚅"#, r#"𝚅"#, r#"𝚅"#, r#"V"#, r#"V"#),
+        (r#"𝚆"#, r#"𝚆"#, r#"𝚆"#, r#"W"#, r#"W"#),
+        (r#"𝚇"#, r#"𝚇"#, r#"𝚇"#, r#"X"#, r#"X"#),
+        (r#"𝚈"#, r#"𝚈"#, r#"𝚈"#, r#"Y"#, r#"Y"#),
+        (r#"𝚉"#, r#"𝚉"#, r#"𝚉"#, r#"Z"#, r#"Z"#),
+        (r#"𝚊"#, r#"𝚊"#, r#"𝚊"#, r#"a"#, r#"a"#),
+        (r#"𝚋"#, r#"𝚋"#, r#"𝚋"#, r#"b"#, r#"b"#),
+        (r#"𝚌"#, r#"𝚌"#, r#"𝚌"#, r#"c"#, r#"c"#),
+        (r#"𝚍"#, r#"𝚍"#, r#"𝚍"#, r#"d"#, r#"d"#),
+        (r#"𝚎"#, r#"𝚎"#, r#"𝚎"#, r#"e"#, r#"e"#),
+        (r#"𝚏"#, r#"𝚏"#, r#"𝚏"#, r#"f"#, r#"f"#),
+        (r#"𝚐"#, r#"𝚐"#, r#"𝚐"#, r#"g"#, r#"g"#),
+        (r#"𝚑"#, r#"𝚑"#, r#"𝚑"#, r#"h"#, r#"h"#),
+        (r#"𝚒"#, r#"𝚒"#, r#"𝚒"#, r#"i"#, r#"i"#),
+        (r#"𝚓"#, r#"𝚓"#, r#"𝚓"#, r#"j"#, r#"j"#),
+        (r#"𝚔"#, r#"𝚔"#, r#"𝚔"#, r#"k"#, r#"k"#),
+        (r#"𝚕"#, r#"𝚕"#, r#"𝚕"#, r#"l"#, r#"l"#),
+        (r#"𝚖"#, r#"𝚖"#, r#"𝚖"#, r#"m"#, r#"m"#),
+        (r#"𝚗"#, r#"𝚗"#, r#"𝚗"#, r#"n"#, r#"n"#),
+        (r#"𝚘"#, r#"𝚘"#, r#"𝚘"#, r#"o"#, r#"o"#),
+        (r#"𝚙"#, r#"𝚙"#, r#"𝚙"#, r#"p"#, r#"p"#),
+        (r#"𝚚"#, r#"𝚚"#, r#"𝚚"#, r#"q"#, r#"q"#),
+        (r#"𝚛"#, r#"𝚛"#, r#"𝚛"#, r#"r"#, r#"r"#),
+        (r#"𝚜"#, r#"𝚜"#, r#"𝚜"#, r#"s"#, r#"s"#),
+        (r#"𝚝"#, r#"𝚝"#, r#"𝚝"#, r#"t"#, r#"t"#),
+        (r#"𝚞"#, r#"𝚞"#, r#"𝚞"#, r#"u"#, r#"u"#),
+        (r#"𝚟"#, r#"𝚟"#, r#"𝚟"#, r#"v"#, r#"v"#),
+        (r#"𝚠"#, r#"𝚠"#, r#"𝚠"#, r#"w"#, r#"w"#),
+        (r#"𝚡"#, r#"𝚡"#, r#"𝚡"#, r#"x"#, r#"x"#),
+        (r#"𝚢"#, r#"𝚢"#, r#"𝚢"#, r#"y"#, r#"y"#),
+        (r#"𝚣"#, r#"𝚣"#, r#"𝚣"#, r#"z"#, r#"z"#),
+        (r#"𝚤"#, r#"𝚤"#, r#"𝚤"#, r#"ı"#, r#"ı"#),
+        (r#"𝚥"#, r#"𝚥"#, r#"𝚥"#, r#"ȷ"#, r#"ȷ"#),
+        (r#"𝚨"#, r#"𝚨"#, r#"𝚨"#, r#"Α"#, r#"Α"#),
+        (r#"𝚩"#, r#"𝚩"#, r#"𝚩"#, r#"Β"#, r#"Β"#),
+        (r#"𝚪"#, r#"𝚪"#, r#"𝚪"#, r#"Γ"#, r#"Γ"#),
+        (r#"𝚫"#, r#"𝚫"#, r#"𝚫"#, r#"Δ"#, r#"Δ"#),
+        (r#"𝚬"#, r#"𝚬"#, r#"𝚬"#, r#"Ε"#, r#"Ε"#),
+        (r#"𝚭"#, r#"𝚭"#, r#"𝚭"#, r#"Ζ"#, r#"Ζ"#),
+        (r#"𝚮"#, r#"𝚮"#, r#"𝚮"#, r#"Η"#, r#"Η"#),
+        (r#"𝚯"#, r#"𝚯"#, r#"𝚯"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝚰"#, r#"𝚰"#, r#"𝚰"#, r#"Ι"#, r#"Ι"#),
+        (r#"𝚱"#, r#"𝚱"#, r#"𝚱"#, r#"Κ"#, r#"Κ"#),
+        (r#"𝚲"#, r#"𝚲"#, r#"𝚲"#, r#"Λ"#, r#"Λ"#),
+        (r#"𝚳"#, r#"𝚳"#, r#"𝚳"#, r#"Μ"#, r#"Μ"#),
+        (r#"𝚴"#, r#"𝚴"#, r#"𝚴"#, r#"Ν"#, r#"Ν"#),
+        (r#"𝚵"#, r#"𝚵"#, r#"𝚵"#, r#"Ξ"#, r#"Ξ"#),
+        (r#"𝚶"#, r#"𝚶"#, r#"𝚶"#, r#"Ο"#, r#"Ο"#),
+        (r#"𝚷"#, r#"𝚷"#, r#"𝚷"#, r#"Π"#, r#"Π"#),
+        (r#"𝚸"#, r#"𝚸"#, r#"𝚸"#, r#"Ρ"#, r#"Ρ"#),
+        (r#"𝚹"#, r#"𝚹"#, r#"𝚹"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝚺"#, r#"𝚺"#, r#"𝚺"#, r#"Σ"#, r#"Σ"#),
+        (r#"𝚻"#, r#"𝚻"#, r#"𝚻"#, r#"Τ"#, r#"Τ"#),
+        (r#"𝚼"#, r#"𝚼"#, r#"𝚼"#, r#"Υ"#, r#"Υ"#),
+        (r#"𝚽"#, r#"𝚽"#, r#"𝚽"#, r#"Φ"#, r#"Φ"#),
+        (r#"𝚾"#, r#"𝚾"#, r#"𝚾"#, r#"Χ"#, r#"Χ"#),
+        (r#"𝚿"#, r#"𝚿"#, r#"𝚿"#, r#"Ψ"#, r#"Ψ"#),
+        (r#"𝛀"#, r#"𝛀"#, r#"𝛀"#, r#"Ω"#, r#"Ω"#),
+        (r#"𝛁"#, r#"𝛁"#, r#"𝛁"#, r#"∇"#, r#"∇"#),
+        (r#"𝛂"#, r#"𝛂"#, r#"𝛂"#, r#"α"#, r#"α"#),
+        (r#"𝛃"#, r#"𝛃"#, r#"𝛃"#, r#"β"#, r#"β"#),
+        (r#"𝛄"#, r#"𝛄"#, r#"𝛄"#, r#"γ"#, r#"γ"#),
+        (r#"𝛅"#, r#"𝛅"#, r#"𝛅"#, r#"δ"#, r#"δ"#),
+        (r#"𝛆"#, r#"𝛆"#, r#"𝛆"#, r#"ε"#, r#"ε"#),
+        (r#"𝛇"#, r#"𝛇"#, r#"𝛇"#, r#"ζ"#, r#"ζ"#),
+        (r#"𝛈"#, r#"𝛈"#, r#"𝛈"#, r#"η"#, r#"η"#),
+        (r#"𝛉"#, r#"𝛉"#, r#"𝛉"#, r#"θ"#, r#"θ"#),
+        (r#"𝛊"#, r#"𝛊"#, r#"𝛊"#, r#"ι"#, r#"ι"#),
+        (r#"𝛋"#, r#"𝛋"#, r#"𝛋"#, r#"κ"#, r#"κ"#),
+        (r#"𝛌"#, r#"𝛌"#, r#"𝛌"#, r#"λ"#, r#"λ"#),
+        (r#"𝛍"#, r#"𝛍"#, r#"𝛍"#, r#"μ"#, r#"μ"#),
+        (r#"𝛎"#, r#"𝛎"#, r#"𝛎"#, r#"ν"#, r#"ν"#),
+        (r#"𝛏"#, r#"𝛏"#, r#"𝛏"#, r#"ξ"#, r#"ξ"#),
+        (r#"𝛐"#, r#"𝛐"#, r#"𝛐"#, r#"ο"#, r#"ο"#),
+        (r#"𝛑"#, r#"𝛑"#, r#"𝛑"#, r#"π"#, r#"π"#),
+        (r#"𝛒"#, r#"𝛒"#, r#"𝛒"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝛓"#, r#"𝛓"#, r#"𝛓"#, r#"ς"#, r#"ς"#),
+        (r#"𝛔"#, r#"𝛔"#, r#"𝛔"#, r#"σ"#, r#"σ"#),
+        (r#"𝛕"#, r#"𝛕"#, r#"𝛕"#, r#"τ"#, r#"τ"#),
+        (r#"𝛖"#, r#"𝛖"#, r#"𝛖"#, r#"υ"#, r#"υ"#),
+        (r#"𝛗"#, r#"𝛗"#, r#"𝛗"#, r#"φ"#, r#"φ"#),
+        (r#"𝛘"#, r#"𝛘"#, r#"𝛘"#, r#"χ"#, r#"χ"#),
+        (r#"𝛙"#, r#"𝛙"#, r#"𝛙"#, r#"ψ"#, r#"ψ"#),
+        (r#"𝛚"#, r#"𝛚"#, r#"𝛚"#, r#"ω"#, r#"ω"#),
+        (r#"𝛛"#, r#"𝛛"#, r#"𝛛"#, r#"∂"#, r#"∂"#),
+        (r#"𝛜"#, r#"𝛜"#, r#"𝛜"#, r#"ε"#, r#"ε"#),
+        (r#"𝛝"#, r#"𝛝"#, r#"𝛝"#, r#"θ"#, r#"θ"#),
+        (r#"𝛞"#, r#"𝛞"#, r#"𝛞"#, r#"κ"#, r#"κ"#),
+        (r#"𝛟"#, r#"𝛟"#, r#"𝛟"#, r#"φ"#, r#"φ"#),
+        (r#"𝛠"#, r#"𝛠"#, r#"𝛠"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝛡"#, r#"𝛡"#, r#"𝛡"#, r#"π"#, r#"π"#),
+        (r#"𝛢"#, r#"𝛢"#, r#"𝛢"#, r#"Α"#, r#"Α"#),
+        (r#"𝛣"#, r#"𝛣"#, r#"𝛣"#, r#"Β"#, r#"Β"#),
+        (r#"𝛤"#, r#"𝛤"#, r#"𝛤"#, r#"Γ"#, r#"Γ"#),
+        (r#"𝛥"#, r#"𝛥"#, r#"𝛥"#, r#"Δ"#, r#"Δ"#),
+        (r#"𝛦"#, r#"𝛦"#, r#"𝛦"#, r#"Ε"#, r#"Ε"#),
+        (r#"𝛧"#, r#"𝛧"#, r#"𝛧"#, r#"Ζ"#, r#"Ζ"#),
+        (r#"𝛨"#, r#"𝛨"#, r#"𝛨"#, r#"Η"#, r#"Η"#),
+        (r#"𝛩"#, r#"𝛩"#, r#"𝛩"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝛪"#, r#"𝛪"#, r#"𝛪"#, r#"Ι"#, r#"Ι"#),
+        (r#"𝛫"#, r#"𝛫"#, r#"𝛫"#, r#"Κ"#, r#"Κ"#),
+        (r#"𝛬"#, r#"𝛬"#, r#"𝛬"#, r#"Λ"#, r#"Λ"#),
+        (r#"𝛭"#, r#"𝛭"#, r#"𝛭"#, r#"Μ"#, r#"Μ"#),
+        (r#"𝛮"#, r#"𝛮"#, r#"𝛮"#, r#"Ν"#, r#"Ν"#),
+        (r#"𝛯"#, r#"𝛯"#, r#"𝛯"#, r#"Ξ"#, r#"Ξ"#),
+        (r#"𝛰"#, r#"𝛰"#, r#"𝛰"#, r#"Ο"#, r#"Ο"#),
+        (r#"𝛱"#, r#"𝛱"#, r#"𝛱"#, r#"Π"#, r#"Π"#),
+        (r#"𝛲"#, r#"𝛲"#, r#"𝛲"#, r#"Ρ"#, r#"Ρ"#),
+        (r#"𝛳"#, r#"𝛳"#, r#"𝛳"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝛴"#, r#"𝛴"#, r#"𝛴"#, r#"Σ"#, r#"Σ"#),
+        (r#"𝛵"#, r#"𝛵"#, r#"𝛵"#, r#"Τ"#, r#"Τ"#),
+        (r#"𝛶"#, r#"𝛶"#, r#"𝛶"#, r#"Υ"#, r#"Υ"#),
+        (r#"𝛷"#, r#"𝛷"#, r#"𝛷"#, r#"Φ"#, r#"Φ"#),
+        (r#"𝛸"#, r#"𝛸"#, r#"𝛸"#, r#"Χ"#, r#"Χ"#),
+        (r#"𝛹"#, r#"𝛹"#, r#"𝛹"#, r#"Ψ"#, r#"Ψ"#),
+        (r#"𝛺"#, r#"𝛺"#, r#"𝛺"#, r#"Ω"#, r#"Ω"#),
+        (r#"𝛻"#, r#"𝛻"#, r#"𝛻"#, r#"∇"#, r#"∇"#),
+        (r#"𝛼"#, r#"𝛼"#, r#"𝛼"#, r#"α"#, r#"α"#),
+        (r#"𝛽"#, r#"𝛽"#, r#"𝛽"#, r#"β"#, r#"β"#),
+        (r#"𝛾"#, r#"𝛾"#, r#"𝛾"#, r#"γ"#, r#"γ"#),
+        (r#"𝛿"#, r#"𝛿"#, r#"𝛿"#, r#"δ"#, r#"δ"#),
+        (r#"𝜀"#, r#"𝜀"#, r#"𝜀"#, r#"ε"#, r#"ε"#),
+        (r#"𝜁"#, r#"𝜁"#, r#"𝜁"#, r#"ζ"#, r#"ζ"#),
+        (r#"𝜂"#, r#"𝜂"#, r#"𝜂"#, r#"η"#, r#"η"#),
+        (r#"𝜃"#, r#"𝜃"#, r#"𝜃"#, r#"θ"#, r#"θ"#),
+        (r#"𝜄"#, r#"𝜄"#, r#"𝜄"#, r#"ι"#, r#"ι"#),
+        (r#"𝜅"#, r#"𝜅"#, r#"𝜅"#, r#"κ"#, r#"κ"#),
+        (r#"𝜆"#, r#"𝜆"#, r#"𝜆"#, r#"λ"#, r#"λ"#),
+        (r#"𝜇"#, r#"𝜇"#, r#"𝜇"#, r#"μ"#, r#"μ"#),
+        (r#"𝜈"#, r#"𝜈"#, r#"𝜈"#, r#"ν"#, r#"ν"#),
+        (r#"𝜉"#, r#"𝜉"#, r#"𝜉"#, r#"ξ"#, r#"ξ"#),
+        (r#"𝜊"#, r#"𝜊"#, r#"𝜊"#, r#"ο"#, r#"ο"#),
+        (r#"𝜋"#, r#"𝜋"#, r#"𝜋"#, r#"π"#, r#"π"#),
+        (r#"𝜌"#, r#"𝜌"#, r#"𝜌"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝜍"#, r#"𝜍"#, r#"𝜍"#, r#"ς"#, r#"ς"#),
+        (r#"𝜎"#, r#"𝜎"#, r#"𝜎"#, r#"σ"#, r#"σ"#),
+        (r#"𝜏"#, r#"𝜏"#, r#"𝜏"#, r#"τ"#, r#"τ"#),
+        (r#"𝜐"#, r#"𝜐"#, r#"𝜐"#, r#"υ"#, r#"υ"#),
+        (r#"𝜑"#, r#"𝜑"#, r#"𝜑"#, r#"φ"#, r#"φ"#),
+        (r#"𝜒"#, r#"𝜒"#, r#"𝜒"#, r#"χ"#, r#"χ"#),
+        (r#"𝜓"#, r#"𝜓"#, r#"𝜓"#, r#"ψ"#, r#"ψ"#),
+        (r#"𝜔"#, r#"𝜔"#, r#"𝜔"#, r#"ω"#, r#"ω"#),
+        (r#"𝜕"#, r#"𝜕"#, r#"𝜕"#, r#"∂"#, r#"∂"#),
+        (r#"𝜖"#, r#"𝜖"#, r#"𝜖"#, r#"ε"#, r#"ε"#),
+        (r#"𝜗"#, r#"𝜗"#, r#"𝜗"#, r#"θ"#, r#"θ"#),
+        (r#"𝜘"#, r#"𝜘"#, r#"𝜘"#, r#"κ"#, r#"κ"#),
+        (r#"𝜙"#, r#"𝜙"#, r#"𝜙"#, r#"φ"#, r#"φ"#),
+        (r#"𝜚"#, r#"𝜚"#, r#"𝜚"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝜛"#, r#"𝜛"#, r#"𝜛"#, r#"π"#, r#"π"#),
+        (r#"𝜜"#, r#"𝜜"#, r#"𝜜"#, r#"Α"#, r#"Α"#),
+        (r#"𝜝"#, r#"𝜝"#, r#"𝜝"#, r#"Β"#, r#"Β"#),
+        (r#"𝜞"#, r#"𝜞"#, r#"𝜞"#, r#"Γ"#, r#"Γ"#),
+        (r#"𝜟"#, r#"𝜟"#, r#"𝜟"#, r#"Δ"#, r#"Δ"#),
+        (r#"𝜠"#, r#"𝜠"#, r#"𝜠"#, r#"Ε"#, r#"Ε"#),
+        (r#"𝜡"#, r#"𝜡"#, r#"𝜡"#, r#"Ζ"#, r#"Ζ"#),
+        (r#"𝜢"#, r#"𝜢"#, r#"𝜢"#, r#"Η"#, r#"Η"#),
+        (r#"𝜣"#, r#"𝜣"#, r#"𝜣"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝜤"#, r#"𝜤"#, r#"𝜤"#, r#"Ι"#, r#"Ι"#),
+        (r#"𝜥"#, r#"𝜥"#, r#"𝜥"#, r#"Κ"#, r#"Κ"#),
+        (r#"𝜦"#, r#"𝜦"#, r#"𝜦"#, r#"Λ"#, r#"Λ"#),
+        (r#"𝜧"#, r#"𝜧"#, r#"𝜧"#, r#"Μ"#, r#"Μ"#),
+        (r#"𝜨"#, r#"𝜨"#, r#"𝜨"#, r#"Ν"#, r#"Ν"#),
+        (r#"𝜩"#, r#"𝜩"#, r#"𝜩"#, r#"Ξ"#, r#"Ξ"#),
+        (r#"𝜪"#, r#"𝜪"#, r#"𝜪"#, r#"Ο"#, r#"Ο"#),
+        (r#"𝜫"#, r#"𝜫"#, r#"𝜫"#, r#"Π"#, r#"Π"#),
+        (r#"𝜬"#, r#"𝜬"#, r#"𝜬"#, r#"Ρ"#, r#"Ρ"#),
+        (r#"𝜭"#, r#"𝜭"#, r#"𝜭"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝜮"#, r#"𝜮"#, r#"𝜮"#, r#"Σ"#, r#"Σ"#),
+        (r#"𝜯"#, r#"𝜯"#, r#"𝜯"#, r#"Τ"#, r#"Τ"#),
+        (r#"𝜰"#, r#"𝜰"#, r#"𝜰"#, r#"Υ"#, r#"Υ"#),
+        (r#"𝜱"#, r#"𝜱"#, r#"𝜱"#, r#"Φ"#, r#"Φ"#),
+        (r#"𝜲"#, r#"𝜲"#, r#"𝜲"#, r#"Χ"#, r#"Χ"#),
+        (r#"𝜳"#, r#"𝜳"#, r#"𝜳"#, r#"Ψ"#, r#"Ψ"#),
+        (r#"𝜴"#, r#"𝜴"#, r#"𝜴"#, r#"Ω"#, r#"Ω"#),
+        (r#"𝜵"#, r#"𝜵"#, r#"𝜵"#, r#"∇"#, r#"∇"#),
+        (r#"𝜶"#, r#"𝜶"#, r#"𝜶"#, r#"α"#, r#"α"#),
+        (r#"𝜷"#, r#"𝜷"#, r#"𝜷"#, r#"β"#, r#"β"#),
+        (r#"𝜸"#, r#"𝜸"#, r#"𝜸"#, r#"γ"#, r#"γ"#),
+        (r#"𝜹"#, r#"𝜹"#, r#"𝜹"#, r#"δ"#, r#"δ"#),
+        (r#"𝜺"#, r#"𝜺"#, r#"𝜺"#, r#"ε"#, r#"ε"#),
+        (r#"𝜻"#, r#"𝜻"#, r#"𝜻"#, r#"ζ"#, r#"ζ"#),
+        (r#"𝜼"#, r#"𝜼"#, r#"𝜼"#, r#"η"#, r#"η"#),
+        (r#"𝜽"#, r#"𝜽"#, r#"𝜽"#, r#"θ"#, r#"θ"#),
+        (r#"𝜾"#, r#"𝜾"#, r#"𝜾"#, r#"ι"#, r#"ι"#),
+        (r#"𝜿"#, r#"𝜿"#, r#"𝜿"#, r#"κ"#, r#"κ"#),
+        (r#"𝝀"#, r#"𝝀"#, r#"𝝀"#, r#"λ"#, r#"λ"#),
+        (r#"𝝁"#, r#"𝝁"#, r#"𝝁"#, r#"μ"#, r#"μ"#),
+        (r#"𝝂"#, r#"𝝂"#, r#"𝝂"#, r#"ν"#, r#"ν"#),
+        (r#"𝝃"#, r#"𝝃"#, r#"𝝃"#, r#"ξ"#, r#"ξ"#),
+        (r#"𝝄"#, r#"𝝄"#, r#"𝝄"#, r#"ο"#, r#"ο"#),
+        (r#"𝝅"#, r#"𝝅"#, r#"𝝅"#, r#"π"#, r#"π"#),
+        (r#"𝝆"#, r#"𝝆"#, r#"𝝆"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝝇"#, r#"𝝇"#, r#"𝝇"#, r#"ς"#, r#"ς"#),
+        (r#"𝝈"#, r#"𝝈"#, r#"𝝈"#, r#"σ"#, r#"σ"#),
+        (r#"𝝉"#, r#"𝝉"#, r#"𝝉"#, r#"τ"#, r#"τ"#),
+        (r#"𝝊"#, r#"𝝊"#, r#"𝝊"#, r#"υ"#, r#"υ"#),
+        (r#"𝝋"#, r#"𝝋"#, r#"𝝋"#, r#"φ"#, r#"φ"#),
+        (r#"𝝌"#, r#"𝝌"#, r#"𝝌"#, r#"χ"#, r#"χ"#),
+        (r#"𝝍"#, r#"𝝍"#, r#"𝝍"#, r#"ψ"#, r#"ψ"#),
+        (r#"𝝎"#, r#"𝝎"#, r#"𝝎"#, r#"ω"#, r#"ω"#),
+        (r#"𝝏"#, r#"𝝏"#, r#"𝝏"#, r#"∂"#, r#"∂"#),
+        (r#"𝝐"#, r#"𝝐"#, r#"𝝐"#, r#"ε"#, r#"ε"#),
+        (r#"𝝑"#, r#"𝝑"#, r#"𝝑"#, r#"θ"#, r#"θ"#),
+        (r#"𝝒"#, r#"𝝒"#, r#"𝝒"#, r#"κ"#, r#"κ"#),
+        (r#"𝝓"#, r#"𝝓"#, r#"𝝓"#, r#"φ"#, r#"φ"#),
+        (r#"𝝔"#, r#"𝝔"#, r#"𝝔"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝝕"#, r#"𝝕"#, r#"𝝕"#, r#"π"#, r#"π"#),
+        (r#"𝝖"#, r#"𝝖"#, r#"𝝖"#, r#"Α"#, r#"Α"#),
+        (r#"𝝗"#, r#"𝝗"#, r#"𝝗"#, r#"Β"#, r#"Β"#),
+        (r#"𝝘"#, r#"𝝘"#, r#"𝝘"#, r#"Γ"#, r#"Γ"#),
+        (r#"𝝙"#, r#"𝝙"#, r#"𝝙"#, r#"Δ"#, r#"Δ"#),
+        (r#"𝝚"#, r#"𝝚"#, r#"𝝚"#, r#"Ε"#, r#"Ε"#),
+        (r#"𝝛"#, r#"𝝛"#, r#"𝝛"#, r#"Ζ"#, r#"Ζ"#),
+        (r#"𝝜"#, r#"𝝜"#, r#"𝝜"#, r#"Η"#, r#"Η"#),
+        (r#"𝝝"#, r#"𝝝"#, r#"𝝝"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝝞"#, r#"𝝞"#, r#"𝝞"#, r#"Ι"#, r#"Ι"#),
+        (r#"𝝟"#, r#"𝝟"#, r#"𝝟"#, r#"Κ"#, r#"Κ"#),
+        (r#"𝝠"#, r#"𝝠"#, r#"𝝠"#, r#"Λ"#, r#"Λ"#),
+        (r#"𝝡"#, r#"𝝡"#, r#"𝝡"#, r#"Μ"#, r#"Μ"#),
+        (r#"𝝢"#, r#"𝝢"#, r#"𝝢"#, r#"Ν"#, r#"Ν"#),
+        (r#"𝝣"#, r#"𝝣"#, r#"𝝣"#, r#"Ξ"#, r#"Ξ"#),
+        (r#"𝝤"#, r#"𝝤"#, r#"𝝤"#, r#"Ο"#, r#"Ο"#),
+        (r#"𝝥"#, r#"𝝥"#, r#"𝝥"#, r#"Π"#, r#"Π"#),
+        (r#"𝝦"#, r#"𝝦"#, r#"𝝦"#, r#"Ρ"#, r#"Ρ"#),
+        (r#"𝝧"#, r#"𝝧"#, r#"𝝧"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝝨"#, r#"𝝨"#, r#"𝝨"#, r#"Σ"#, r#"Σ"#),
+        (r#"𝝩"#, r#"𝝩"#, r#"𝝩"#, r#"Τ"#, r#"Τ"#),
+        (r#"𝝪"#, r#"𝝪"#, r#"𝝪"#, r#"Υ"#, r#"Υ"#),
+        (r#"𝝫"#, r#"𝝫"#, r#"𝝫"#, r#"Φ"#, r#"Φ"#),
+        (r#"𝝬"#, r#"𝝬"#, r#"𝝬"#, r#"Χ"#, r#"Χ"#),
+        (r#"𝝭"#, r#"𝝭"#, r#"𝝭"#, r#"Ψ"#, r#"Ψ"#),
+        (r#"𝝮"#, r#"𝝮"#, r#"𝝮"#, r#"Ω"#, r#"Ω"#),
+        (r#"𝝯"#, r#"𝝯"#, r#"𝝯"#, r#"∇"#, r#"∇"#),
+        (r#"𝝰"#, r#"𝝰"#, r#"𝝰"#, r#"α"#, r#"α"#),
+        (r#"𝝱"#, r#"𝝱"#, r#"𝝱"#, r#"β"#, r#"β"#),
+        (r#"𝝲"#, r#"𝝲"#, r#"𝝲"#, r#"γ"#, r#"γ"#),
+        (r#"𝝳"#, r#"𝝳"#, r#"𝝳"#, r#"δ"#, r#"δ"#),
+        (r#"𝝴"#, r#"𝝴"#, r#"𝝴"#, r#"ε"#, r#"ε"#),
+        (r#"𝝵"#, r#"𝝵"#, r#"𝝵"#, r#"ζ"#, r#"ζ"#),
+        (r#"𝝶"#, r#"𝝶"#, r#"𝝶"#, r#"η"#, r#"η"#),
+        (r#"𝝷"#, r#"𝝷"#, r#"𝝷"#, r#"θ"#, r#"θ"#),
+        (r#"𝝸"#, r#"𝝸"#, r#"𝝸"#, r#"ι"#, r#"ι"#),
+        (r#"𝝹"#, r#"𝝹"#, r#"𝝹"#, r#"κ"#, r#"κ"#),
+        (r#"𝝺"#, r#"𝝺"#, r#"𝝺"#, r#"λ"#, r#"λ"#),
+        (r#"𝝻"#, r#"𝝻"#, r#"𝝻"#, r#"μ"#, r#"μ"#),
+        (r#"𝝼"#, r#"𝝼"#, r#"𝝼"#, r#"ν"#, r#"ν"#),
+        (r#"𝝽"#, r#"𝝽"#, r#"𝝽"#, r#"ξ"#, r#"ξ"#),
+        (r#"𝝾"#, r#"𝝾"#, r#"𝝾"#, r#"ο"#, r#"ο"#),
+        (r#"𝝿"#, r#"𝝿"#, r#"𝝿"#, r#"π"#, r#"π"#),
+        (r#"𝞀"#, r#"𝞀"#, r#"𝞀"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝞁"#, r#"𝞁"#, r#"𝞁"#, r#"ς"#, r#"ς"#),
+        (r#"𝞂"#, r#"𝞂"#, r#"𝞂"#, r#"σ"#, r#"σ"#),
+        (r#"𝞃"#, r#"𝞃"#, r#"𝞃"#, r#"τ"#, r#"τ"#),
+        (r#"𝞄"#, r#"𝞄"#, r#"𝞄"#, r#"υ"#, r#"υ"#),
+        (r#"𝞅"#, r#"𝞅"#, r#"𝞅"#, r#"φ"#, r#"φ"#),
+        (r#"𝞆"#, r#"𝞆"#, r#"𝞆"#, r#"χ"#, r#"χ"#),
+        (r#"𝞇"#, r#"𝞇"#, r#"𝞇"#, r#"ψ"#, r#"ψ"#),
+        (r#"𝞈"#, r#"𝞈"#, r#"𝞈"#, r#"ω"#, r#"ω"#),
+        (r#"𝞉"#, r#"𝞉"#, r#"𝞉"#, r#"∂"#, r#"∂"#),
+        (r#"𝞊"#, r#"𝞊"#, r#"𝞊"#, r#"ε"#, r#"ε"#),
+        (r#"𝞋"#, r#"𝞋"#, r#"𝞋"#, r#"θ"#, r#"θ"#),
+        (r#"𝞌"#, r#"𝞌"#, r#"𝞌"#, r#"κ"#, r#"κ"#),
+        (r#"𝞍"#, r#"𝞍"#, r#"𝞍"#, r#"φ"#, r#"φ"#),
+        (r#"𝞎"#, r#"𝞎"#, r#"𝞎"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝞏"#, r#"𝞏"#, r#"𝞏"#, r#"π"#, r#"π"#),
+        (r#"𝞐"#, r#"𝞐"#, r#"𝞐"#, r#"Α"#, r#"Α"#),
+        (r#"𝞑"#, r#"𝞑"#, r#"𝞑"#, r#"Β"#, r#"Β"#),
+        (r#"𝞒"#, r#"𝞒"#, r#"𝞒"#, r#"Γ"#, r#"Γ"#),
+        (r#"𝞓"#, r#"𝞓"#, r#"𝞓"#, r#"Δ"#, r#"Δ"#),
+        (r#"𝞔"#, r#"𝞔"#, r#"𝞔"#, r#"Ε"#, r#"Ε"#),
+        (r#"𝞕"#, r#"𝞕"#, r#"𝞕"#, r#"Ζ"#, r#"Ζ"#),
+        (r#"𝞖"#, r#"𝞖"#, r#"𝞖"#, r#"Η"#, r#"Η"#),
+        (r#"𝞗"#, r#"𝞗"#, r#"𝞗"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝞘"#, r#"𝞘"#, r#"𝞘"#, r#"Ι"#, r#"Ι"#),
+        (r#"𝞙"#, r#"𝞙"#, r#"𝞙"#, r#"Κ"#, r#"Κ"#),
+        (r#"𝞚"#, r#"𝞚"#, r#"𝞚"#, r#"Λ"#, r#"Λ"#),
+        (r#"𝞛"#, r#"𝞛"#, r#"𝞛"#, r#"Μ"#, r#"Μ"#),
+        (r#"𝞜"#, r#"𝞜"#, r#"𝞜"#, r#"Ν"#, r#"Ν"#),
+        (r#"𝞝"#, r#"𝞝"#, r#"𝞝"#, r#"Ξ"#, r#"Ξ"#),
+        (r#"𝞞"#, r#"𝞞"#, r#"𝞞"#, r#"Ο"#, r#"Ο"#),
+        (r#"𝞟"#, r#"𝞟"#, r#"𝞟"#, r#"Π"#, r#"Π"#),
+        (r#"𝞠"#, r#"𝞠"#, r#"𝞠"#, r#"Ρ"#, r#"Ρ"#),
+        (r#"𝞡"#, r#"𝞡"#, r#"𝞡"#, r#"Θ"#, r#"Θ"#),
+        (r#"𝞢"#, r#"𝞢"#, r#"𝞢"#, r#"Σ"#, r#"Σ"#),
+        (r#"𝞣"#, r#"𝞣"#, r#"𝞣"#, r#"Τ"#, r#"Τ"#),
+        (r#"𝞤"#, r#"𝞤"#, r#"𝞤"#, r#"Υ"#, r#"Υ"#),
+        (r#"𝞥"#, r#"𝞥"#, r#"𝞥"#, r#"Φ"#, r#"Φ"#),
+        (r#"𝞦"#, r#"𝞦"#, r#"𝞦"#, r#"Χ"#, r#"Χ"#),
+        (r#"𝞧"#, r#"𝞧"#, r#"𝞧"#, r#"Ψ"#, r#"Ψ"#),
+        (r#"𝞨"#, r#"𝞨"#, r#"𝞨"#, r#"Ω"#, r#"Ω"#),
+        (r#"𝞩"#, r#"𝞩"#, r#"𝞩"#, r#"∇"#, r#"∇"#),
+        (r#"𝞪"#, r#"𝞪"#, r#"𝞪"#, r#"α"#, r#"α"#),
+        (r#"𝞫"#, r#"𝞫"#, r#"𝞫"#, r#"β"#, r#"β"#),
+        (r#"𝞬"#, r#"𝞬"#, r#"𝞬"#, r#"γ"#, r#"γ"#),
+        (r#"𝞭"#, r#"𝞭"#, r#"𝞭"#, r#"δ"#, r#"δ"#),
+        (r#"𝞮"#, r#"𝞮"#, r#"𝞮"#, r#"ε"#, r#"ε"#),
+        (r#"𝞯"#, r#"𝞯"#, r#"𝞯"#, r#"ζ"#, r#"ζ"#),
+        (r#"𝞰"#, r#"𝞰"#, r#"𝞰"#, r#"η"#, r#"η"#),
+        (r#"𝞱"#, r#"𝞱"#, r#"𝞱"#, r#"θ"#, r#"θ"#),
+        (r#"𝞲"#, r#"𝞲"#, r#"𝞲"#, r#"ι"#, r#"ι"#),
+        (r#"𝞳"#, r#"𝞳"#, r#"𝞳"#, r#"κ"#, r#"κ"#),
+        (r#"𝞴"#, r#"𝞴"#, r#"𝞴"#, r#"λ"#, r#"λ"#),
+        (r#"𝞵"#, r#"𝞵"#, r#"𝞵"#, r#"μ"#, r#"μ"#),
+        (r#"𝞶"#, r#"𝞶"#, r#"𝞶"#, r#"ν"#, r#"ν"#),
+        (r#"𝞷"#, r#"𝞷"#, r#"𝞷"#, r#"ξ"#, r#"ξ"#),
+        (r#"𝞸"#, r#"𝞸"#, r#"𝞸"#, r#"ο"#, r#"ο"#),
+        (r#"𝞹"#, r#"𝞹"#, r#"𝞹"#, r#"π"#, r#"π"#),
+        (r#"𝞺"#, r#"𝞺"#, r#"𝞺"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝞻"#, r#"𝞻"#, r#"𝞻"#, r#"ς"#, r#"ς"#),
+        (r#"𝞼"#, r#"𝞼"#, r#"𝞼"#, r#"σ"#, r#"σ"#),
+        (r#"𝞽"#, r#"𝞽"#, r#"𝞽"#, r#"τ"#, r#"τ"#),
+        (r#"𝞾"#, r#"𝞾"#, r#"𝞾"#, r#"υ"#, r#"υ"#),
+        (r#"𝞿"#, r#"𝞿"#, r#"𝞿"#, r#"φ"#, r#"φ"#),
+        (r#"𝟀"#, r#"𝟀"#, r#"𝟀"#, r#"χ"#, r#"χ"#),
+        (r#"𝟁"#, r#"𝟁"#, r#"𝟁"#, r#"ψ"#, r#"ψ"#),
+        (r#"𝟂"#, r#"𝟂"#, r#"𝟂"#, r#"ω"#, r#"ω"#),
+        (r#"𝟃"#, r#"𝟃"#, r#"𝟃"#, r#"∂"#, r#"∂"#),
+        (r#"𝟄"#, r#"𝟄"#, r#"𝟄"#, r#"ε"#, r#"ε"#),
+        (r#"𝟅"#, r#"𝟅"#, r#"𝟅"#, r#"θ"#, r#"θ"#),
+        (r#"𝟆"#, r#"𝟆"#, r#"𝟆"#, r#"κ"#, r#"κ"#),
+        (r#"𝟇"#, r#"𝟇"#, r#"𝟇"#, r#"φ"#, r#"φ"#),
+        (r#"𝟈"#, r#"𝟈"#, r#"𝟈"#, r#"ρ"#, r#"ρ"#),
+        (r#"𝟉"#, r#"𝟉"#, r#"𝟉"#, r#"π"#, r#"π"#),
+        (r#"𝟊"#, r#"𝟊"#, r#"𝟊"#, r#"Ϝ"#, r#"Ϝ"#),
+        (r#"𝟋"#, r#"𝟋"#, r#"𝟋"#, r#"ϝ"#, r#"ϝ"#),
+        (r#"𝟎"#, r#"𝟎"#, r#"𝟎"#, r#"0"#, r#"0"#),
+        (r#"𝟏"#, r#"𝟏"#, r#"𝟏"#, r#"1"#, r#"1"#),
+        (r#"𝟐"#, r#"𝟐"#, r#"𝟐"#, r#"2"#, r#"2"#),
+        (r#"𝟑"#, r#"𝟑"#, r#"𝟑"#, r#"3"#, r#"3"#),
+        (r#"𝟒"#, r#"𝟒"#, r#"𝟒"#, r#"4"#, r#"4"#),
+        (r#"𝟓"#, r#"𝟓"#, r#"𝟓"#, r#"5"#, r#"5"#),
+        (r#"𝟔"#, r#"𝟔"#, r#"𝟔"#, r#"6"#, r#"6"#),
+        (r#"𝟕"#, r#"𝟕"#, r#"𝟕"#, r#"7"#, r#"7"#),
+        (r#"𝟖"#, r#"𝟖"#, r#"𝟖"#, r#"8"#, r#"8"#),
+        (r#"𝟗"#, r#"𝟗"#, r#"𝟗"#, r#"9"#, r#"9"#),
+        (r#"𝟘"#, r#"𝟘"#, r#"𝟘"#, r#"0"#, r#"0"#),
+        (r#"𝟙"#, r#"𝟙"#, r#"𝟙"#, r#"1"#, r#"1"#),
+        (r#"𝟚"#, r#"𝟚"#, r#"𝟚"#, r#"2"#, r#"2"#),
+        (r#"𝟛"#, r#"𝟛"#, r#"𝟛"#, r#"3"#, r#"3"#),
+        (r#"𝟜"#, r#"𝟜"#, r#"𝟜"#, r#"4"#, r#"4"#),
+        (r#"𝟝"#, r#"𝟝"#, r#"𝟝"#, r#"5"#, r#"5"#),
+        (r#"𝟞"#, r#"𝟞"#, r#"𝟞"#, r#"6"#, r#"6"#),
+        (r#"𝟟"#, r#"𝟟"#, r#"𝟟"#, r#"7"#, r#"7"#),
+        (r#"𝟠"#, r#"𝟠"#, r#"𝟠"#, r#"8"#, r#"8"#),
+        (r#"𝟡"#, r#"𝟡"#, r#"𝟡"#, r#"9"#, r#"9"#),
+        (r#"𝟢"#, r#"𝟢"#, r#"𝟢"#, r#"0"#, r#"0"#),
+        (r#"𝟣"#, r#"𝟣"#, r#"𝟣"#, r#"1"#, r#"1"#),
+        (r#"𝟤"#, r#"𝟤"#, r#"𝟤"#, r#"2"#, r#"2"#),
+        (r#"𝟥"#, r#"𝟥"#, r#"𝟥"#, r#"3"#, r#"3"#),
+        (r#"𝟦"#, r#"𝟦"#, r#"𝟦"#, r#"4"#, r#"4"#),
+        (r#"𝟧"#, r#"𝟧"#, r#"𝟧"#, r#"5"#, r#"5"#),
+        (r#"𝟨"#, r#"𝟨"#, r#"𝟨"#, r#"6"#, r#"6"#),
+        (r#"𝟩"#, r#"𝟩"#, r#"𝟩"#, r#"7"#, r#"7"#),
+        (r#"𝟪"#, r#"𝟪"#, r#"𝟪"#, r#"8"#, r#"8"#),
+        (r#"𝟫"#, r#"𝟫"#, r#"𝟫"#, r#"9"#, r#"9"#),
+        (r#"𝟬"#, r#"𝟬"#, r#"𝟬"#, r#"0"#, r#"0"#),
+        (r#"𝟭"#, r#"𝟭"#, r#"𝟭"#, r#"1"#, r#"1"#),
+        (r#"𝟮"#, r#"𝟮"#, r#"𝟮"#, r#"2"#, r#"2"#),
+        (r#"𝟯"#, r#"𝟯"#, r#"𝟯"#, r#"3"#, r#"3"#),
+        (r#"𝟰"#, r#"𝟰"#, r#"𝟰"#, r#"4"#, r#"4"#),
+        (r#"𝟱"#, r#"𝟱"#, r#"𝟱"#, r#"5"#, r#"5"#),
+        (r#"𝟲"#, r#"𝟲"#, r#"𝟲"#, r#"6"#, r#"6"#),
+        (r#"𝟳"#, r#"𝟳"#, r#"𝟳"#, r#"7"#, r#"7"#),
+        (r#"𝟴"#, r#"𝟴"#, r#"𝟴"#, r#"8"#, r#"8"#),
+        (r#"𝟵"#, r#"𝟵"#, r#"𝟵"#, r#"9"#, r#"9"#),
+        (r#"𝟶"#, r#"𝟶"#, r#"𝟶"#, r#"0"#, r#"0"#),
+        (r#"𝟷"#, r#"𝟷"#, r#"𝟷"#, r#"1"#, r#"1"#),
+        (r#"𝟸"#, r#"𝟸"#, r#"𝟸"#, r#"2"#, r#"2"#),
+        (r#"𝟹"#, r#"𝟹"#, r#"𝟹"#, r#"3"#, r#"3"#),
+        (r#"𝟺"#, r#"𝟺"#, r#"𝟺"#, r#"4"#, r#"4"#),
+        (r#"𝟻"#, r#"𝟻"#, r#"𝟻"#, r#"5"#, r#"5"#),
+        (r#"𝟼"#, r#"𝟼"#, r#"𝟼"#, r#"6"#, r#"6"#),
+        (r#"𝟽"#, r#"𝟽"#, r#"𝟽"#, r#"7"#, r#"7"#),
+        (r#"𝟾"#, r#"𝟾"#, r#"𝟾"#, r#"8"#, r#"8"#),
+        (r#"𝟿"#, r#"𝟿"#, r#"𝟿"#, r#"9"#, r#"9"#),
+        (r#"𞀰"#, r#"𞀰"#, r#"𞀰"#, r#"а"#, r#"а"#),
+        (r#"𞀱"#, r#"𞀱"#, r#"𞀱"#, r#"б"#, r#"б"#),
+        (r#"𞀲"#, r#"𞀲"#, r#"𞀲"#, r#"в"#, r#"в"#),
+        (r#"𞀳"#, r#"𞀳"#, r#"𞀳"#, r#"г"#, r#"г"#),
+        (r#"𞀴"#, r#"𞀴"#, r#"𞀴"#, r#"д"#, r#"д"#),
+        (r#"𞀵"#, r#"𞀵"#, r#"𞀵"#, r#"е"#, r#"е"#),
+        (r#"𞀶"#, r#"𞀶"#, r#"𞀶"#, r#"ж"#, r#"ж"#),
+        (r#"𞀷"#, r#"𞀷"#, r#"𞀷"#, r#"з"#, r#"з"#),
+        (r#"𞀸"#, r#"𞀸"#, r#"𞀸"#, r#"и"#, r#"и"#),
+        (r#"𞀹"#, r#"𞀹"#, r#"𞀹"#, r#"к"#, r#"к"#),
+        (r#"𞀺"#, r#"𞀺"#, r#"𞀺"#, r#"л"#, r#"л"#),
+        (r#"𞀻"#, r#"𞀻"#, r#"𞀻"#, r#"м"#, r#"м"#),
+        (r#"𞀼"#, r#"𞀼"#, r#"𞀼"#, r#"о"#, r#"о"#),
+        (r#"𞀽"#, r#"𞀽"#, r#"𞀽"#, r#"п"#, r#"п"#),
+        (r#"𞀾"#, r#"𞀾"#, r#"𞀾"#, r#"р"#, r#"р"#),
+        (r#"𞀿"#, r#"𞀿"#, r#"𞀿"#, r#"с"#, r#"с"#),
+        (r#"𞁀"#, r#"𞁀"#, r#"𞁀"#, r#"т"#, r#"т"#),
+        (r#"𞁁"#, r#"𞁁"#, r#"𞁁"#, r#"у"#, r#"у"#),
+        (r#"𞁂"#, r#"𞁂"#, r#"𞁂"#, r#"ф"#, r#"ф"#),
+        (r#"𞁃"#, r#"𞁃"#, r#"𞁃"#, r#"х"#, r#"х"#),
+        (r#"𞁄"#, r#"𞁄"#, r#"𞁄"#, r#"ц"#, r#"ц"#),
+        (r#"𞁅"#, r#"𞁅"#, r#"𞁅"#, r#"ч"#, r#"ч"#),
+        (r#"𞁆"#, r#"𞁆"#, r#"𞁆"#, r#"ш"#, r#"ш"#),
+        (r#"𞁇"#, r#"𞁇"#, r#"𞁇"#, r#"ы"#, r#"ы"#),
+        (r#"𞁈"#, r#"𞁈"#, r#"𞁈"#, r#"э"#, r#"э"#),
+        (r#"𞁉"#, r#"𞁉"#, r#"𞁉"#, r#"ю"#, r#"ю"#),
+        (r#"𞁊"#, r#"𞁊"#, r#"𞁊"#, r#"ꚉ"#, r#"ꚉ"#),
+        (r#"𞁋"#, r#"𞁋"#, r#"𞁋"#, r#"ә"#, r#"ә"#),
+        (r#"𞁌"#, r#"𞁌"#, r#"𞁌"#, r#"і"#, r#"і"#),
+        (r#"𞁍"#, r#"𞁍"#, r#"𞁍"#, r#"ј"#, r#"ј"#),
+        (r#"𞁎"#, r#"𞁎"#, r#"𞁎"#, r#"ө"#, r#"ө"#),
+        (r#"𞁏"#, r#"𞁏"#, r#"𞁏"#, r#"ү"#, r#"ү"#),
+        (r#"𞁐"#, r#"𞁐"#, r#"𞁐"#, r#"ӏ"#, r#"ӏ"#),
+        (r#"𞁑"#, r#"𞁑"#, r#"𞁑"#, r#"а"#, r#"а"#),
+        (r#"𞁒"#, r#"𞁒"#, r#"𞁒"#, r#"б"#, r#"б"#),
+        (r#"𞁓"#, r#"𞁓"#, r#"𞁓"#, r#"в"#, r#"в"#),
+        (r#"𞁔"#, r#"𞁔"#, r#"𞁔"#, r#"г"#, r#"г"#),
+        (r#"𞁕"#, r#"𞁕"#, r#"𞁕"#, r#"д"#, r#"д"#),
+        (r#"𞁖"#, r#"𞁖"#, r#"𞁖"#, r#"е"#, r#"е"#),
+        (r#"𞁗"#, r#"𞁗"#, r#"𞁗"#, r#"ж"#, r#"ж"#),
+        (r#"𞁘"#, r#"𞁘"#, r#"𞁘"#, r#"з"#, r#"з"#),
+        (r#"𞁙"#, r#"𞁙"#, r#"𞁙"#, r#"и"#, r#"и"#),
+        (r#"𞁚"#, r#"𞁚"#, r#"𞁚"#, r#"к"#, r#"к"#),
+        (r#"𞁛"#, r#"𞁛"#, r#"𞁛"#, r#"л"#, r#"л"#),
+        (r#"𞁜"#, r#"𞁜"#, r#"𞁜"#, r#"о"#, r#"о"#),
+        (r#"𞁝"#, r#"𞁝"#, r#"𞁝"#, r#"п"#, r#"п"#),
+        (r#"𞁞"#, r#"𞁞"#, r#"𞁞"#, r#"с"#, r#"с"#),
+        (r#"𞁟"#, r#"𞁟"#, r#"𞁟"#, r#"у"#, r#"у"#),
+        (r#"𞁠"#, r#"𞁠"#, r#"𞁠"#, r#"ф"#, r#"ф"#),
+        (r#"𞁡"#, r#"𞁡"#, r#"𞁡"#, r#"х"#, r#"х"#),
+        (r#"𞁢"#, r#"𞁢"#, r#"𞁢"#, r#"ц"#, r#"ц"#),
+        (r#"𞁣"#, r#"𞁣"#, r#"𞁣"#, r#"ч"#, r#"ч"#),
+        (r#"𞁤"#, r#"𞁤"#, r#"𞁤"#, r#"ш"#, r#"ш"#),
+        (r#"𞁥"#, r#"𞁥"#, r#"𞁥"#, r#"ъ"#, r#"ъ"#),
+        (r#"𞁦"#, r#"𞁦"#, r#"𞁦"#, r#"ы"#, r#"ы"#),
+        (r#"𞁧"#, r#"𞁧"#, r#"𞁧"#, r#"ґ"#, r#"ґ"#),
+        (r#"𞁨"#, r#"𞁨"#, r#"𞁨"#, r#"і"#, r#"і"#),
+        (r#"𞁩"#, r#"𞁩"#, r#"𞁩"#, r#"ѕ"#, r#"ѕ"#),
+        (r#"𞁪"#, r#"𞁪"#, r#"𞁪"#, r#"џ"#, r#"џ"#),
+        (r#"𞁫"#, r#"𞁫"#, r#"𞁫"#, r#"ҫ"#, r#"ҫ"#),
+        (r#"𞁬"#, r#"𞁬"#, r#"𞁬"#, r#"ꙑ"#, r#"ꙑ"#),
+        (r#"𞁭"#, r#"𞁭"#, r#"𞁭"#, r#"ұ"#, r#"ұ"#),
+        (r#"𞸀"#, r#"𞸀"#, r#"𞸀"#, r#"ا"#, r#"ا"#),
+        (r#"𞸁"#, r#"𞸁"#, r#"𞸁"#, r#"ب"#, r#"ب"#),
+        (r#"𞸂"#, r#"𞸂"#, r#"𞸂"#, r#"ج"#, r#"ج"#),
+        (r#"𞸃"#, r#"𞸃"#, r#"𞸃"#, r#"د"#, r#"د"#),
+        (r#"𞸅"#, r#"𞸅"#, r#"𞸅"#, r#"و"#, r#"و"#),
+        (r#"𞸆"#, r#"𞸆"#, r#"𞸆"#, r#"ز"#, r#"ز"#),
+        (r#"𞸇"#, r#"𞸇"#, r#"𞸇"#, r#"ح"#, r#"ح"#),
+        (r#"𞸈"#, r#"𞸈"#, r#"𞸈"#, r#"ط"#, r#"ط"#),
+        (r#"𞸉"#, r#"𞸉"#, r#"𞸉"#, r#"ي"#, r#"ي"#),
+        (r#"𞸊"#, r#"𞸊"#, r#"𞸊"#, r#"ك"#, r#"ك"#),
+        (r#"𞸋"#, r#"𞸋"#, r#"𞸋"#, r#"ل"#, r#"ل"#),
+        (r#"𞸌"#, r#"𞸌"#, r#"𞸌"#, r#"م"#, r#"م"#),
+        (r#"𞸍"#, r#"𞸍"#, r#"𞸍"#, r#"ن"#, r#"ن"#),
+        (r#"𞸎"#, r#"𞸎"#, r#"𞸎"#, r#"س"#, r#"س"#),
+        (r#"𞸏"#, r#"𞸏"#, r#"𞸏"#, r#"ع"#, r#"ع"#),
+        (r#"𞸐"#, r#"𞸐"#, r#"𞸐"#, r#"ف"#, r#"ف"#),
+        (r#"𞸑"#, r#"𞸑"#, r#"𞸑"#, r#"ص"#, r#"ص"#),
+        (r#"𞸒"#, r#"𞸒"#, r#"𞸒"#, r#"ق"#, r#"ق"#),
+        (r#"𞸓"#, r#"𞸓"#, r#"𞸓"#, r#"ر"#, r#"ر"#),
+        (r#"𞸔"#, r#"𞸔"#, r#"𞸔"#, r#"ش"#, r#"ش"#),
+        (r#"𞸕"#, r#"𞸕"#, r#"𞸕"#, r#"ت"#, r#"ت"#),
+        (r#"𞸖"#, r#"𞸖"#, r#"𞸖"#, r#"ث"#, r#"ث"#),
+        (r#"𞸗"#, r#"𞸗"#, r#"𞸗"#, r#"خ"#, r#"خ"#),
+        (r#"𞸘"#, r#"𞸘"#, r#"𞸘"#, r#"ذ"#, r#"ذ"#),
+        (r#"𞸙"#, r#"𞸙"#, r#"𞸙"#, r#"ض"#, r#"ض"#),
+        (r#"𞸚"#, r#"𞸚"#, r#"𞸚"#, r#"ظ"#, r#"ظ"#),
+        (r#"𞸛"#, r#"𞸛"#, r#"𞸛"#, r#"غ"#, r#"غ"#),
+        (r#"𞸜"#, r#"𞸜"#, r#"𞸜"#, r#"ٮ"#, r#"ٮ"#),
+        (r#"𞸝"#, r#"𞸝"#, r#"𞸝"#, r#"ں"#, r#"ں"#),
+        (r#"𞸞"#, r#"𞸞"#, r#"𞸞"#, r#"ڡ"#, r#"ڡ"#),
+        (r#"𞸟"#, r#"𞸟"#, r#"𞸟"#, r#"ٯ"#, r#"ٯ"#),
+        (r#"𞸡"#, r#"𞸡"#, r#"𞸡"#, r#"ب"#, r#"ب"#),
+        (r#"𞸢"#, r#"𞸢"#, r#"𞸢"#, r#"ج"#, r#"ج"#),
+        (r#"𞸤"#, r#"𞸤"#, r#"𞸤"#, r#"ه"#, r#"ه"#),
+        (r#"𞸧"#, r#"𞸧"#, r#"𞸧"#, r#"ح"#, r#"ح"#),
+        (r#"𞸩"#, r#"𞸩"#, r#"𞸩"#, r#"ي"#, r#"ي"#),
+        (r#"𞸪"#, r#"𞸪"#, r#"𞸪"#, r#"ك"#, r#"ك"#),
+        (r#"𞸫"#, r#"𞸫"#, r#"𞸫"#, r#"ل"#, r#"ل"#),
+        (r#"𞸬"#, r#"𞸬"#, r#"𞸬"#, r#"م"#, r#"م"#),
+        (r#"𞸭"#, r#"𞸭"#, r#"𞸭"#, r#"ن"#, r#"ن"#),
+        (r#"𞸮"#, r#"𞸮"#, r#"𞸮"#, r#"س"#, r#"س"#),
+        (r#"𞸯"#, r#"𞸯"#, r#"𞸯"#, r#"ع"#, r#"ع"#),
+        (r#"𞸰"#, r#"𞸰"#, r#"𞸰"#, r#"ف"#, r#"ف"#),
+        (r#"𞸱"#, r#"𞸱"#, r#"𞸱"#, r#"ص"#, r#"ص"#),
+        (r#"𞸲"#, r#"𞸲"#, r#"𞸲"#, r#"ق"#, r#"ق"#),
+        (r#"𞸴"#, r#"𞸴"#, r#"𞸴"#, r#"ش"#, r#"ش"#),
+        (r#"𞸵"#, r#"𞸵"#, r#"𞸵"#, r#"ت"#, r#"ت"#),
+        (r#"𞸶"#, r#"𞸶"#, r#"𞸶"#, r#"ث"#, r#"ث"#),
+        (r#"𞸷"#, r#"𞸷"#, r#"𞸷"#, r#"خ"#, r#"خ"#),
+        (r#"𞸹"#, r#"𞸹"#, r#"𞸹"#, r#"ض"#, r#"ض"#),
+        (r#"𞸻"#, r#"𞸻"#, r#"𞸻"#, r#"غ"#, r#"غ"#),
+        (r#"𞹂"#, r#"𞹂"#, r#"𞹂"#, r#"ج"#, r#"ج"#),
+        (r#"𞹇"#, r#"𞹇"#, r#"𞹇"#, r#"ح"#, r#"ح"#),
+        (r#"𞹉"#, r#"𞹉"#, r#"𞹉"#, r#"ي"#, r#"ي"#),
+        (r#"𞹋"#, r#"𞹋"#, r#"𞹋"#, r#"ل"#, r#"ل"#),
+        (r#"𞹍"#, r#"𞹍"#, r#"𞹍"#, r#"ن"#, r#"ن"#),
+        (r#"𞹎"#, r#"𞹎"#, r#"𞹎"#, r#"س"#, r#"س"#),
+        (r#"𞹏"#, r#"𞹏"#, r#"𞹏"#, r#"ع"#, r#"ع"#),
+        (r#"𞹑"#, r#"𞹑"#, r#"𞹑"#, r#"ص"#, r#"ص"#),
+        (r#"𞹒"#, r#"𞹒"#, r#"𞹒"#, r#"ق"#, r#"ق"#),
+        (r#"𞹔"#, r#"𞹔"#, r#"𞹔"#, r#"ش"#, r#"ش"#),
+        (r#"𞹗"#, r#"𞹗"#, r#"𞹗"#, r#"خ"#, r#"خ"#),
+        (r#"𞹙"#, r#"𞹙"#, r#"𞹙"#, r#"ض"#, r#"ض"#),
+        (r#"𞹛"#, r#"𞹛"#, r#"𞹛"#, r#"غ"#, r#"غ"#),
+        (r#"𞹝"#, r#"𞹝"#, r#"𞹝"#, r#"ں"#, r#"ں"#),
+        (r#"𞹟"#, r#"𞹟"#, r#"𞹟"#, r#"ٯ"#, r#"ٯ"#),
+        (r#"𞹡"#, r#"𞹡"#, r#"𞹡"#, r#"ب"#, r#"ب"#),
+        (r#"𞹢"#, r#"𞹢"#, r#"𞹢"#, r#"ج"#, r#"ج"#),
+        (r#"𞹤"#, r#"𞹤"#, r#"𞹤"#, r#"ه"#, r#"ه"#),
+        (r#"𞹧"#, r#"𞹧"#, r#"𞹧"#, r#"ح"#, r#"ح"#),
+        (r#"𞹨"#, r#"𞹨"#, r#"𞹨"#, r#"ط"#, r#"ط"#),
+        (r#"𞹩"#, r#"𞹩"#, r#"𞹩"#, r#"ي"#, r#"ي"#),
+        (r#"𞹪"#, r#"𞹪"#, r#"𞹪"#, r#"ك"#, r#"ك"#),
+        (r#"𞹬"#, r#"𞹬"#, r#"𞹬"#, r#"م"#, r#"م"#),
+        (r#"𞹭"#, r#"𞹭"#, r#"𞹭"#, r#"ن"#, r#"ن"#),
+        (r#"𞹮"#, r#"𞹮"#, r#"𞹮"#, r#"س"#, r#"س"#),
+        (r#"𞹯"#, r#"𞹯"#, r#"𞹯"#, r#"ع"#, r#"ع"#),
+        (r#"𞹰"#, r#"𞹰"#, r#"𞹰"#, r#"ف"#, r#"ف"#),
+        (r#"𞹱"#, r#"𞹱"#, r#"𞹱"#, r#"ص"#, r#"ص"#),
+        (r#"𞹲"#, r#"𞹲"#, r#"𞹲"#, r#"ق"#, r#"ق"#),
+        (r#"𞹴"#, r#"𞹴"#, r#"𞹴"#, r#"ش"#, r#"ش"#),
+        (r#"𞹵"#, r#"𞹵"#, r#"𞹵"#, r#"ت"#, r#"ت"#),
+        (r#"𞹶"#, r#"𞹶"#, r#"𞹶"#, r#"ث"#, r#"ث"#),
+        (r#"𞹷"#, r#"𞹷"#, r#"𞹷"#, r#"خ"#, r#"خ"#),
+        (r#"𞹹"#, r#"𞹹"#, r#"𞹹"#, r#"ض"#, r#"ض"#),
+        (r#"𞹺"#, r#"𞹺"#, r#"𞹺"#, r#"ظ"#, r#"ظ"#),
+        (r#"𞹻"#, r#"𞹻"#, r#"𞹻"#, r#"غ"#, r#"غ"#),
+        (r#"𞹼"#, r#"𞹼"#, r#"𞹼"#, r#"ٮ"#, r#"ٮ"#),
+        (r#"𞹾"#, r#"𞹾"#, r#"𞹾"#, r#"ڡ"#, r#"ڡ"#),
+        (r#"𞺀"#, r#"𞺀"#, r#"𞺀"#, r#"ا"#, r#"ا"#),
+        (r#"𞺁"#, r#"𞺁"#, r#"𞺁"#, r#"ب"#, r#"ب"#),
+        (r#"𞺂"#, r#"𞺂"#, r#"𞺂"#, r#"ج"#, r#"ج"#),
+        (r#"𞺃"#, r#"𞺃"#, r#"𞺃"#, r#"د"#, r#"د"#),
+        (r#"𞺄"#, r#"𞺄"#, r#"𞺄"#, r#"ه"#, r#"ه"#),
+        (r#"𞺅"#, r#"𞺅"#, r#"𞺅"#, r#"و"#, r#"و"#),
+        (r#"𞺆"#, r#"𞺆"#, r#"𞺆"#, r#"ز"#, r#"ز"#),
+        (r#"𞺇"#, r#"𞺇"#, r#"𞺇"#, r#"ح"#, r#"ح"#),
+        (r#"𞺈"#, r#"𞺈"#, r#"𞺈"#, r#"ط"#, r#"ط"#),
+        (r#"𞺉"#, r#"𞺉"#, r#"𞺉"#, r#"ي"#, r#"ي"#),
+        (r#"𞺋"#, r#"𞺋"#, r#"𞺋"#, r#"ل"#, r#"ل"#),
+        (r#"𞺌"#, r#"𞺌"#, r#"𞺌"#, r#"م"#, r#"م"#),
+        (r#"𞺍"#, r#"𞺍"#, r#"𞺍"#, r#"ن"#, r#"ن"#),
+        (r#"𞺎"#, r#"𞺎"#, r#"𞺎"#, r#"س"#, r#"س"#),
+        (r#"𞺏"#, r#"𞺏"#, r#"𞺏"#, r#"ع"#, r#"ع"#),
+        (r#"𞺐"#, r#"𞺐"#, r#"𞺐"#, r#"ف"#, r#"ف"#),
+        (r#"𞺑"#, r#"𞺑"#, r#"𞺑"#, r#"ص"#, r#"ص"#),
+        (r#"𞺒"#, r#"𞺒"#, r#"𞺒"#, r#"ق"#, r#"ق"#),
+        (r#"𞺓"#, r#"𞺓"#, r#"𞺓"#, r#"ر"#, r#"ر"#),
+        (r#"𞺔"#, r#"𞺔"#, r#"𞺔"#, r#"ش"#, r#"ش"#),
+        (r#"𞺕"#, r#"𞺕"#, r#"𞺕"#, r#"ت"#, r#"ت"#),
+        (r#"𞺖"#, r#"𞺖"#, r#"𞺖"#, r#"ث"#, r#"ث"#),
+        (r#"𞺗"#, r#"𞺗"#, r#"𞺗"#, r#"خ"#, r#"خ"#),
+        (r#"𞺘"#, r#"𞺘"#, r#"𞺘"#, r#"ذ"#, r#"ذ"#),
+        (r#"𞺙"#, r#"𞺙"#, r#"𞺙"#, r#"ض"#, r#"ض"#),
+        (r#"𞺚"#, r#"𞺚"#, r#"𞺚"#, r#"ظ"#, r#"ظ"#),
+        (r#"𞺛"#, r#"𞺛"#, r#"𞺛"#, r#"غ"#, r#"غ"#),
+        (r#"𞺡"#, r#"𞺡"#, r#"𞺡"#, r#"ب"#, r#"ب"#),
+        (r#"𞺢"#, r#"𞺢"#, r#"𞺢"#, r#"ج"#, r#"ج"#),
+        (r#"𞺣"#, r#"𞺣"#, r#"𞺣"#, r#"د"#, r#"د"#),
+        (r#"𞺥"#, r#"𞺥"#, r#"𞺥"#, r#"و"#, r#"و"#),
+        (r#"𞺦"#, r#"𞺦"#, r#"𞺦"#, r#"ز"#, r#"ز"#),
+        (r#"𞺧"#, r#"𞺧"#, r#"𞺧"#, r#"ح"#, r#"ح"#),
+        (r#"𞺨"#, r#"𞺨"#, r#"𞺨"#, r#"ط"#, r#"ط"#),
+        (r#"𞺩"#, r#"𞺩"#, r#"𞺩"#, r#"ي"#, r#"ي"#),
+        (r#"𞺫"#, r#"𞺫"#, r#"𞺫"#, r#"ل"#, r#"ل"#),
+        (r#"𞺬"#, r#"𞺬"#, r#"𞺬"#, r#"م"#, r#"م"#),
+        (r#"𞺭"#, r#"𞺭"#, r#"𞺭"#, r#"ن"#, r#"ن"#),
+        (r#"𞺮"#, r#"𞺮"#, r#"𞺮"#, r#"س"#, r#"س"#),
+        (r#"𞺯"#, r#"𞺯"#, r#"𞺯"#, r#"ع"#, r#"ع"#),
+        (r#"𞺰"#, r#"𞺰"#, r#"𞺰"#, r#"ف"#, r#"ف"#),
+        (r#"𞺱"#, r#"𞺱"#, r#"𞺱"#, r#"ص"#, r#"ص"#),
+        (r#"𞺲"#, r#"𞺲"#, r#"𞺲"#, r#"ق"#, r#"ق"#),
+        (r#"𞺳"#, r#"𞺳"#, r#"𞺳"#, r#"ر"#, r#"ر"#),
+        (r#"𞺴"#, r#"𞺴"#, r#"𞺴"#, r#"ش"#, r#"ش"#),
+        (r#"𞺵"#, r#"𞺵"#, r#"𞺵"#, r#"ت"#, r#"ت"#),
+        (r#"𞺶"#, r#"𞺶"#, r#"𞺶"#, r#"ث"#, r#"ث"#),
+        (r#"𞺷"#, r#"𞺷"#, r#"𞺷"#, r#"خ"#, r#"خ"#),
+        (r#"𞺸"#, r#"𞺸"#, r#"𞺸"#, r#"ذ"#, r#"ذ"#),
+        (r#"𞺹"#, r#"𞺹"#, r#"𞺹"#, r#"ض"#, r#"ض"#),
+        (r#"𞺺"#, r#"𞺺"#, r#"𞺺"#, r#"ظ"#, r#"ظ"#),
+        (r#"𞺻"#, r#"𞺻"#, r#"𞺻"#, r#"غ"#, r#"غ"#),
+        (r#"🄀"#, r#"🄀"#, r#"🄀"#, r#"0."#, r#"0."#),
+        (r#"🄁"#, r#"🄁"#, r#"🄁"#, r#"0,"#, r#"0,"#),
+        (r#"🄂"#, r#"🄂"#, r#"🄂"#, r#"1,"#, r#"1,"#),
+        (r#"🄃"#, r#"🄃"#, r#"🄃"#, r#"2,"#, r#"2,"#),
+        (r#"🄄"#, r#"🄄"#, r#"🄄"#, r#"3,"#, r#"3,"#),
+        (r#"🄅"#, r#"🄅"#, r#"🄅"#, r#"4,"#, r#"4,"#),
+        (r#"🄆"#, r#"🄆"#, r#"🄆"#, r#"5,"#, r#"5,"#),
+        (r#"🄇"#, r#"🄇"#, r#"🄇"#, r#"6,"#, r#"6,"#),
+        (r#"🄈"#, r#"🄈"#, r#"🄈"#, r#"7,"#, r#"7,"#),
+        (r#"🄉"#, r#"🄉"#, r#"🄉"#, r#"8,"#, r#"8,"#),
+        (r#"🄊"#, r#"🄊"#, r#"🄊"#, r#"9,"#, r#"9,"#),
+        (r#"🄐"#, r#"🄐"#, r#"🄐"#, r#"(A)"#, r#"(A)"#),
+        (r#"🄑"#, r#"🄑"#, r#"🄑"#, r#"(B)"#, r#"(B)"#),
+        (r#"🄒"#, r#"🄒"#, r#"🄒"#, r#"(C)"#, r#"(C)"#),
+        (r#"🄓"#, r#"🄓"#, r#"🄓"#, r#"(D)"#, r#"(D)"#),
+        (r#"🄔"#, r#"🄔"#, r#"🄔"#, r#"(E)"#, r#"(E)"#),
+        (r#"🄕"#, r#"🄕"#, r#"🄕"#, r#"(F)"#, r#"(F)"#),
+        (r#"🄖"#, r#"🄖"#, r#"🄖"#, r#"(G)"#, r#"(G)"#),
+        (r#"🄗"#, r#"🄗"#, r#"🄗"#, r#"(H)"#, r#"(H)"#),
+        (r#"🄘"#, r#"🄘"#, r#"🄘"#, r#"(I)"#, r#"(I)"#),
+        (r#"🄙"#, r#"🄙"#, r#"🄙"#, r#"(J)"#, r#"(J)"#),
+        (r#"🄚"#, r#"🄚"#, r#"🄚"#, r#"(K)"#, r#"(K)"#),
+        (r#"🄛"#, r#"🄛"#, r#"🄛"#, r#"(L)"#, r#"(L)"#),
+        (r#"🄜"#, r#"🄜"#, r#"🄜"#, r#"(M)"#, r#"(M)"#),
+        (r#"🄝"#, r#"🄝"#, r#"🄝"#, r#"(N)"#, r#"(N)"#),
+        (r#"🄞"#, r#"🄞"#, r#"🄞"#, r#"(O)"#, r#"(O)"#),
+        (r#"🄟"#, r#"🄟"#, r#"🄟"#, r#"(P)"#, r#"(P)"#),
+        (r#"🄠"#, r#"🄠"#, r#"🄠"#, r#"(Q)"#, r#"(Q)"#),
+        (r#"🄡"#, r#"🄡"#, r#"🄡"#, r#"(R)"#, r#"(R)"#),
+        (r#"🄢"#, r#"🄢"#, r#"🄢"#, r#"(S)"#, r#"(S)"#),
+        (r#"🄣"#, r#"🄣"#, r#"🄣"#, r#"(T)"#, r#"(T)"#),
+        (r#"🄤"#, r#"🄤"#, r#"🄤"#, r#"(U)"#, r#"(U)"#),
+        (r#"🄥"#, r#"🄥"#, r#"🄥"#, r#"(V)"#, r#"(V)"#),
+        (r#"🄦"#, r#"🄦"#, r#"🄦"#, r#"(W)"#, r#"(W)"#),
+        (r#"🄧"#, r#"🄧"#, r#"🄧"#, r#"(X)"#, r#"(X)"#),
+        (r#"🄨"#, r#"🄨"#, r#"🄨"#, r#"(Y)"#, r#"(Y)"#),
+        (r#"🄩"#, r#"🄩"#, r#"🄩"#, r#"(Z)"#, r#"(Z)"#),
+        (r#"🄪"#, r#"🄪"#, r#"🄪"#, r#"〔S〕"#, r#"〔S〕"#),
+        (r#"🄫"#, r#"🄫"#, r#"🄫"#, r#"C"#, r#"C"#),
+        (r#"🄬"#, r#"🄬"#, r#"🄬"#, r#"R"#, r#"R"#),
+        (r#"🄭"#, r#"🄭"#, r#"🄭"#, r#"CD"#, r#"CD"#),
+        (r#"🄮"#, r#"🄮"#, r#"🄮"#, r#"WZ"#, r#"WZ"#),
+        (r#"🄰"#, r#"🄰"#, r#"🄰"#, r#"A"#, r#"A"#),
+        (r#"🄱"#, r#"🄱"#, r#"🄱"#, r#"B"#, r#"B"#),
+        (r#"🄲"#, r#"🄲"#, r#"🄲"#, r#"C"#, r#"C"#),
+        (r#"🄳"#, r#"🄳"#, r#"🄳"#, r#"D"#, r#"D"#),
+        (r#"🄴"#, r#"🄴"#, r#"🄴"#, r#"E"#, r#"E"#),
+        (r#"🄵"#, r#"🄵"#, r#"🄵"#, r#"F"#, r#"F"#),
+        (r#"🄶"#, r#"🄶"#, r#"🄶"#, r#"G"#, r#"G"#),
+        (r#"🄷"#, r#"🄷"#, r#"🄷"#, r#"H"#, r#"H"#),
+        (r#"🄸"#, r#"🄸"#, r#"🄸"#, r#"I"#, r#"I"#),
+        (r#"🄹"#, r#"🄹"#, r#"🄹"#, r#"J"#, r#"J"#),
+        (r#"🄺"#, r#"🄺"#, r#"🄺"#, r#"K"#, r#"K"#),
+        (r#"🄻"#, r#"🄻"#, r#"🄻"#, r#"L"#, r#"L"#),
+        (r#"🄼"#, r#"🄼"#, r#"🄼"#, r#"M"#, r#"M"#),
+        (r#"🄽"#, r#"🄽"#, r#"🄽"#, r#"N"#, r#"N"#),
+        (r#"🄾"#, r#"🄾"#, r#"🄾"#, r#"O"#, r#"O"#),
+        (r#"🄿"#, r#"🄿"#, r#"🄿"#, r#"P"#, r#"P"#),
+        (r#"🅀"#, r#"🅀"#, r#"🅀"#, r#"Q"#, r#"Q"#),
+        (r#"🅁"#, r#"🅁"#, r#"🅁"#, r#"R"#, r#"R"#),
+        (r#"🅂"#, r#"🅂"#, r#"🅂"#, r#"S"#, r#"S"#),
+        (r#"🅃"#, r#"🅃"#, r#"🅃"#, r#"T"#, r#"T"#),
+        (r#"🅄"#, r#"🅄"#, r#"🅄"#, r#"U"#, r#"U"#),
+        (r#"🅅"#, r#"🅅"#, r#"🅅"#, r#"V"#, r#"V"#),
+        (r#"🅆"#, r#"🅆"#, r#"🅆"#, r#"W"#, r#"W"#),
+        (r#"🅇"#, r#"🅇"#, r#"🅇"#, r#"X"#, r#"X"#),
+        (r#"🅈"#, r#"🅈"#, r#"🅈"#, r#"Y"#, r#"Y"#),
+        (r#"🅉"#, r#"🅉"#, r#"🅉"#, r#"Z"#, r#"Z"#),
+        (r#"🅊"#, r#"🅊"#, r#"🅊"#, r#"HV"#, r#"HV"#),
+        (r#"🅋"#, r#"🅋"#, r#"🅋"#, r#"MV"#, r#"MV"#),
+        (r#"🅌"#, r#"🅌"#, r#"🅌"#, r#"SD"#, r#"SD"#),
+        (r#"🅍"#, r#"🅍"#, r#"🅍"#, r#"SS"#, r#"SS"#),
+        (r#"🅎"#, r#"🅎"#, r#"🅎"#, r#"PPV"#, r#"PPV"#),
+        (r#"🅏"#, r#"🅏"#, r#"🅏"#, r#"WC"#, r#"WC"#),
+        (r#"🅪"#, r#"🅪"#, r#"🅪"#, r#"MC"#, r#"MC"#),
+        (r#"🅫"#, r#"🅫"#, r#"🅫"#, r#"MD"#, r#"MD"#),
+        (r#"🅬"#, r#"🅬"#, r#"🅬"#, r#"MR"#, r#"MR"#),
+        (r#"🆐"#, r#"🆐"#, r#"🆐"#, r#"DJ"#, r#"DJ"#),
+        (r#"🈀"#, r#"🈀"#, r#"🈀"#, r#"ほか"#, r#"ほか"#),
+        (r#"🈁"#, r#"🈁"#, r#"🈁"#, r#"ココ"#, r#"ココ"#),
+        (r#"🈂"#, r#"🈂"#, r#"🈂"#, r#"サ"#, r#"サ"#),
+        (r#"🈐"#, r#"🈐"#, r#"🈐"#, r#"手"#, r#"手"#),
+        (r#"🈑"#, r#"🈑"#, r#"🈑"#, r#"字"#, r#"字"#),
+        (r#"🈒"#, r#"🈒"#, r#"🈒"#, r#"双"#, r#"双"#),
+        (r#"🈓"#, r#"🈓"#, r#"🈓"#, r#"デ"#, r#"デ"#),
+        (r#"🈔"#, r#"🈔"#, r#"🈔"#, r#"二"#, r#"二"#),
+        (r#"🈕"#, r#"🈕"#, r#"🈕"#, r#"多"#, r#"多"#),
+        (r#"🈖"#, r#"🈖"#, r#"🈖"#, r#"解"#, r#"解"#),
+        (r#"🈗"#, r#"🈗"#, r#"🈗"#, r#"天"#, r#"天"#),
+        (r#"🈘"#, r#"🈘"#, r#"🈘"#, r#"交"#, r#"交"#),
+        (r#"🈙"#, r#"🈙"#, r#"🈙"#, r#"映"#, r#"映"#),
+        (r#"🈚"#, r#"🈚"#, r#"🈚"#, r#"無"#, r#"無"#),
+        (r#"🈛"#, r#"🈛"#, r#"🈛"#, r#"料"#, r#"料"#),
+        (r#"🈜"#, r#"🈜"#, r#"🈜"#, r#"前"#, r#"前"#),
+        (r#"🈝"#, r#"🈝"#, r#"🈝"#, r#"後"#, r#"後"#),
+        (r#"🈞"#, r#"🈞"#, r#"🈞"#, r#"再"#, r#"再"#),
+        (r#"🈟"#, r#"🈟"#, r#"🈟"#, r#"新"#, r#"新"#),
+        (r#"🈠"#, r#"🈠"#, r#"🈠"#, r#"初"#, r#"初"#),
+        (r#"🈡"#, r#"🈡"#, r#"🈡"#, r#"終"#, r#"終"#),
+        (r#"🈢"#, r#"🈢"#, r#"🈢"#, r#"生"#, r#"生"#),
+        (r#"🈣"#, r#"🈣"#, r#"🈣"#, r#"販"#, r#"販"#),
+        (r#"🈤"#, r#"🈤"#, r#"🈤"#, r#"声"#, r#"声"#),
+        (r#"🈥"#, r#"🈥"#, r#"🈥"#, r#"吹"#, r#"吹"#),
+        (r#"🈦"#, r#"🈦"#, r#"🈦"#, r#"演"#, r#"演"#),
+        (r#"🈧"#, r#"🈧"#, r#"🈧"#, r#"投"#, r#"投"#),
+        (r#"🈨"#, r#"🈨"#, r#"🈨"#, r#"捕"#, r#"捕"#),
+        (r#"🈩"#, r#"🈩"#, r#"🈩"#, r#"一"#, r#"一"#),
+        (r#"🈪"#, r#"🈪"#, r#"🈪"#, r#"三"#, r#"三"#),
+        (r#"🈫"#, r#"🈫"#, r#"🈫"#, r#"遊"#, r#"遊"#),
+        (r#"🈬"#, r#"🈬"#, r#"🈬"#, r#"左"#, r#"左"#),
+        (r#"🈭"#, r#"🈭"#, r#"🈭"#, r#"中"#, r#"中"#),
+        (r#"🈮"#, r#"🈮"#, r#"🈮"#, r#"右"#, r#"右"#),
+        (r#"🈯"#, r#"🈯"#, r#"🈯"#, r#"指"#, r#"指"#),
+        (r#"🈰"#, r#"🈰"#, r#"🈰"#, r#"走"#, r#"走"#),
+        (r#"🈱"#, r#"🈱"#, r#"🈱"#, r#"打"#, r#"打"#),
+        (r#"🈲"#, r#"🈲"#, r#"🈲"#, r#"禁"#, r#"禁"#),
+        (r#"🈳"#, r#"🈳"#, r#"🈳"#, r#"空"#, r#"空"#),
+        (r#"🈴"#, r#"🈴"#, r#"🈴"#, r#"合"#, r#"合"#),
+        (r#"🈵"#, r#"🈵"#, r#"🈵"#, r#"満"#, r#"満"#),
+        (r#"🈶"#, r#"🈶"#, r#"🈶"#, r#"有"#, r#"有"#),
+        (r#"🈷"#, r#"🈷"#, r#"🈷"#, r#"月"#, r#"月"#),
+        (r#"🈸"#, r#"🈸"#, r#"🈸"#, r#"申"#, r#"申"#),
+        (r#"🈹"#, r#"🈹"#, r#"🈹"#, r#"割"#, r#"割"#),
+        (r#"🈺"#, r#"🈺"#, r#"🈺"#, r#"営"#, r#"営"#),
+        (r#"🈻"#, r#"🈻"#, r#"🈻"#, r#"配"#, r#"配"#),
+        (r#"🉀"#, r#"🉀"#, r#"🉀"#, r#"〔本〕"#, r#"〔本〕"#),
+        (r#"🉁"#, r#"🉁"#, r#"🉁"#, r#"〔三〕"#, r#"〔三〕"#),
+        (r#"🉂"#, r#"🉂"#, r#"🉂"#, r#"〔二〕"#, r#"〔二〕"#),
+        (r#"🉃"#, r#"🉃"#, r#"🉃"#, r#"〔安〕"#, r#"〔安〕"#),
+        (r#"🉄"#, r#"🉄"#, r#"🉄"#, r#"〔点〕"#, r#"〔点〕"#),
+        (r#"🉅"#, r#"🉅"#, r#"🉅"#, r#"〔打〕"#, r#"〔打〕"#),
+        (r#"🉆"#, r#"🉆"#, r#"🉆"#, r#"〔盗〕"#, r#"〔盗〕"#),
+        (r#"🉇"#, r#"🉇"#, r#"🉇"#, r#"〔勝〕"#, r#"〔勝〕"#),
+        (r#"🉈"#, r#"🉈"#, r#"🉈"#, r#"〔敗〕"#, r#"〔敗〕"#),
+        (r#"🉐"#, r#"🉐"#, r#"🉐"#, r#"得"#, r#"得"#),
+        (r#"🉑"#, r#"🉑"#, r#"🉑"#, r#"可"#, r#"可"#),
+        (r#"🯰"#, r#"🯰"#, r#"🯰"#, r#"0"#, r#"0"#),
+        (r#"🯱"#, r#"🯱"#, r#"🯱"#, r#"1"#, r#"1"#),
+        (r#"🯲"#, r#"🯲"#, r#"🯲"#, r#"2"#, r#"2"#),
+        (r#"🯳"#, r#"🯳"#, r#"🯳"#, r#"3"#, r#"3"#),
+        (r#"🯴"#, r#"🯴"#, r#"🯴"#, r#"4"#, r#"4"#),
+        (r#"🯵"#, r#"🯵"#, r#"🯵"#, r#"5"#, r#"5"#),
+        (r#"🯶"#, r#"🯶"#, r#"🯶"#, r#"6"#, r#"6"#),
+        (r#"🯷"#, r#"🯷"#, r#"🯷"#, r#"7"#, r#"7"#),
+        (r#"🯸"#, r#"🯸"#, r#"🯸"#, r#"8"#, r#"8"#),
+        (r#"🯹"#, r#"🯹"#, r#"🯹"#, r#"9"#, r#"9"#),
+        (r#"丽"#, r#"丽"#, r#"丽"#, r#"丽"#, r#"丽"#),
+        (r#"丸"#, r#"丸"#, r#"丸"#, r#"丸"#, r#"丸"#),
+        (r#"乁"#, r#"乁"#, r#"乁"#, r#"乁"#, r#"乁"#),
+        (r#"𠄢"#, r#"𠄢"#, r#"𠄢"#, r#"𠄢"#, r#"𠄢"#),
+        (r#"你"#, r#"你"#, r#"你"#, r#"你"#, r#"你"#),
+        (r#"侮"#, r#"侮"#, r#"侮"#, r#"侮"#, r#"侮"#),
+        (r#"侻"#, r#"侻"#, r#"侻"#, r#"侻"#, r#"侻"#),
+        (r#"倂"#, r#"倂"#, r#"倂"#, r#"倂"#, r#"倂"#),
+        (r#"偺"#, r#"偺"#, r#"偺"#, r#"偺"#, r#"偺"#),
+        (r#"備"#, r#"備"#, r#"備"#, r#"備"#, r#"備"#),
+        (r#"僧"#, r#"僧"#, r#"僧"#, r#"僧"#, r#"僧"#),
+        (r#"像"#, r#"像"#, r#"像"#, r#"像"#, r#"像"#),
+        (r#"㒞"#, r#"㒞"#, r#"㒞"#, r#"㒞"#, r#"㒞"#),
+        (r#"𠘺"#, r#"𠘺"#, r#"𠘺"#, r#"𠘺"#, r#"𠘺"#),
+        (r#"免"#, r#"免"#, r#"免"#, r#"免"#, r#"免"#),
+        (r#"兔"#, r#"兔"#, r#"兔"#, r#"兔"#, r#"兔"#),
+        (r#"兤"#, r#"兤"#, r#"兤"#, r#"兤"#, r#"兤"#),
+        (r#"具"#, r#"具"#, r#"具"#, r#"具"#, r#"具"#),
+        (r#"𠔜"#, r#"𠔜"#, r#"𠔜"#, r#"𠔜"#, r#"𠔜"#),
+        (r#"㒹"#, r#"㒹"#, r#"㒹"#, r#"㒹"#, r#"㒹"#),
+        (r#"內"#, r#"內"#, r#"內"#, r#"內"#, r#"內"#),
+        (r#"再"#, r#"再"#, r#"再"#, r#"再"#, r#"再"#),
+        (r#"𠕋"#, r#"𠕋"#, r#"𠕋"#, r#"𠕋"#, r#"𠕋"#),
+        (r#"冗"#, r#"冗"#, r#"冗"#, r#"冗"#, r#"冗"#),
+        (r#"冤"#, r#"冤"#, r#"冤"#, r#"冤"#, r#"冤"#),
+        (r#"仌"#, r#"仌"#, r#"仌"#, r#"仌"#, r#"仌"#),
+        (r#"冬"#, r#"冬"#, r#"冬"#, r#"冬"#, r#"冬"#),
+        (r#"况"#, r#"况"#, r#"况"#, r#"况"#, r#"况"#),
+        (r#"𩇟"#, r#"𩇟"#, r#"𩇟"#, r#"𩇟"#, r#"𩇟"#),
+        (r#"凵"#, r#"凵"#, r#"凵"#, r#"凵"#, r#"凵"#),
+        (r#"刃"#, r#"刃"#, r#"刃"#, r#"刃"#, r#"刃"#),
+        (r#"㓟"#, r#"㓟"#, r#"㓟"#, r#"㓟"#, r#"㓟"#),
+        (r#"刻"#, r#"刻"#, r#"刻"#, r#"刻"#, r#"刻"#),
+        (r#"剆"#, r#"剆"#, r#"剆"#, r#"剆"#, r#"剆"#),
+        (r#"割"#, r#"割"#, r#"割"#, r#"割"#, r#"割"#),
+        (r#"剷"#, r#"剷"#, r#"剷"#, r#"剷"#, r#"剷"#),
+        (r#"㔕"#, r#"㔕"#, r#"㔕"#, r#"㔕"#, r#"㔕"#),
+        (r#"勇"#, r#"勇"#, r#"勇"#, r#"勇"#, r#"勇"#),
+        (r#"勉"#, r#"勉"#, r#"勉"#, r#"勉"#, r#"勉"#),
+        (r#"勤"#, r#"勤"#, r#"勤"#, r#"勤"#, r#"勤"#),
+        (r#"勺"#, r#"勺"#, r#"勺"#, r#"勺"#, r#"勺"#),
+        (r#"包"#, r#"包"#, r#"包"#, r#"包"#, r#"包"#),
+        (r#"匆"#, r#"匆"#, r#"匆"#, r#"匆"#, r#"匆"#),
+        (r#"北"#, r#"北"#, r#"北"#, r#"北"#, r#"北"#),
+        (r#"卉"#, r#"卉"#, r#"卉"#, r#"卉"#, r#"卉"#),
+        (r#"卑"#, r#"卑"#, r#"卑"#, r#"卑"#, r#"卑"#),
+        (r#"博"#, r#"博"#, r#"博"#, r#"博"#, r#"博"#),
+        (r#"即"#, r#"即"#, r#"即"#, r#"即"#, r#"即"#),
+        (r#"卽"#, r#"卽"#, r#"卽"#, r#"卽"#, r#"卽"#),
+        (r#"卿"#, r#"卿"#, r#"卿"#, r#"卿"#, r#"卿"#),
+        (r#"卿"#, r#"卿"#, r#"卿"#, r#"卿"#, r#"卿"#),
+        (r#"卿"#, r#"卿"#, r#"卿"#, r#"卿"#, r#"卿"#),
+        (r#"𠨬"#, r#"𠨬"#, r#"𠨬"#, r#"𠨬"#, r#"𠨬"#),
+        (r#"灰"#, r#"灰"#, r#"灰"#, r#"灰"#, r#"灰"#),
+        (r#"及"#, r#"及"#, r#"及"#, r#"及"#, r#"及"#),
+        (r#"叟"#, r#"叟"#, r#"叟"#, r#"叟"#, r#"叟"#),
+        (r#"𠭣"#, r#"𠭣"#, r#"𠭣"#, r#"𠭣"#, r#"𠭣"#),
+        (r#"叫"#, r#"叫"#, r#"叫"#, r#"叫"#, r#"叫"#),
+        (r#"叱"#, r#"叱"#, r#"叱"#, r#"叱"#, r#"叱"#),
+        (r#"吆"#, r#"吆"#, r#"吆"#, r#"吆"#, r#"吆"#),
+        (r#"咞"#, r#"咞"#, r#"咞"#, r#"咞"#, r#"咞"#),
+        (r#"吸"#, r#"吸"#, r#"吸"#, r#"吸"#, r#"吸"#),
+        (r#"呈"#, r#"呈"#, r#"呈"#, r#"呈"#, r#"呈"#),
+        (r#"周"#, r#"周"#, r#"周"#, r#"周"#, r#"周"#),
+        (r#"咢"#, r#"咢"#, r#"咢"#, r#"咢"#, r#"咢"#),
+        (r#"哶"#, r#"哶"#, r#"哶"#, r#"哶"#, r#"哶"#),
+        (r#"唐"#, r#"唐"#, r#"唐"#, r#"唐"#, r#"唐"#),
+        (r#"啓"#, r#"啓"#, r#"啓"#, r#"啓"#, r#"啓"#),
+        (r#"啣"#, r#"啣"#, r#"啣"#, r#"啣"#, r#"啣"#),
+        (r#"善"#, r#"善"#, r#"善"#, r#"善"#, r#"善"#),
+        (r#"善"#, r#"善"#, r#"善"#, r#"善"#, r#"善"#),
+        (r#"喙"#, r#"喙"#, r#"喙"#, r#"喙"#, r#"喙"#),
+        (r#"喫"#, r#"喫"#, r#"喫"#, r#"喫"#, r#"喫"#),
+        (r#"喳"#, r#"喳"#, r#"喳"#, r#"喳"#, r#"喳"#),
+        (r#"嗂"#, r#"嗂"#, r#"嗂"#, r#"嗂"#, r#"嗂"#),
+        (r#"圖"#, r#"圖"#, r#"圖"#, r#"圖"#, r#"圖"#),
+        (r#"嘆"#, r#"嘆"#, r#"嘆"#, r#"嘆"#, r#"嘆"#),
+        (r#"圗"#, r#"圗"#, r#"圗"#, r#"圗"#, r#"圗"#),
+        (r#"噑"#, r#"噑"#, r#"噑"#, r#"噑"#, r#"噑"#),
+        (r#"噴"#, r#"噴"#, r#"噴"#, r#"噴"#, r#"噴"#),
+        (r#"切"#, r#"切"#, r#"切"#, r#"切"#, r#"切"#),
+        (r#"壮"#, r#"壮"#, r#"壮"#, r#"壮"#, r#"壮"#),
+        (r#"城"#, r#"城"#, r#"城"#, r#"城"#, r#"城"#),
+        (r#"埴"#, r#"埴"#, r#"埴"#, r#"埴"#, r#"埴"#),
+        (r#"堍"#, r#"堍"#, r#"堍"#, r#"堍"#, r#"堍"#),
+        (r#"型"#, r#"型"#, r#"型"#, r#"型"#, r#"型"#),
+        (r#"堲"#, r#"堲"#, r#"堲"#, r#"堲"#, r#"堲"#),
+        (r#"報"#, r#"報"#, r#"報"#, r#"報"#, r#"報"#),
+        (r#"墬"#, r#"墬"#, r#"墬"#, r#"墬"#, r#"墬"#),
+        (r#"𡓤"#, r#"𡓤"#, r#"𡓤"#, r#"𡓤"#, r#"𡓤"#),
+        (r#"売"#, r#"売"#, r#"売"#, r#"売"#, r#"売"#),
+        (r#"壷"#, r#"壷"#, r#"壷"#, r#"壷"#, r#"壷"#),
+        (r#"夆"#, r#"夆"#, r#"夆"#, r#"夆"#, r#"夆"#),
+        (r#"多"#, r#"多"#, r#"多"#, r#"多"#, r#"多"#),
+        (r#"夢"#, r#"夢"#, r#"夢"#, r#"夢"#, r#"夢"#),
+        (r#"奢"#, r#"奢"#, r#"奢"#, r#"奢"#, r#"奢"#),
+        (r#"𡚨"#, r#"𡚨"#, r#"𡚨"#, r#"𡚨"#, r#"𡚨"#),
+        (r#"𡛪"#, r#"𡛪"#, r#"𡛪"#, r#"𡛪"#, r#"𡛪"#),
+        (r#"姬"#, r#"姬"#, r#"姬"#, r#"姬"#, r#"姬"#),
+        (r#"娛"#, r#"娛"#, r#"娛"#, r#"娛"#, r#"娛"#),
+        (r#"娧"#, r#"娧"#, r#"娧"#, r#"娧"#, r#"娧"#),
+        (r#"姘"#, r#"姘"#, r#"姘"#, r#"姘"#, r#"姘"#),
+        (r#"婦"#, r#"婦"#, r#"婦"#, r#"婦"#, r#"婦"#),
+        (r#"㛮"#, r#"㛮"#, r#"㛮"#, r#"㛮"#, r#"㛮"#),
+        (r#"㛼"#, r#"㛼"#, r#"㛼"#, r#"㛼"#, r#"㛼"#),
+        (r#"嬈"#, r#"嬈"#, r#"嬈"#, r#"嬈"#, r#"嬈"#),
+        (r#"嬾"#, r#"嬾"#, r#"嬾"#, r#"嬾"#, r#"嬾"#),
+        (r#"嬾"#, r#"嬾"#, r#"嬾"#, r#"嬾"#, r#"嬾"#),
+        (r#"𡧈"#, r#"𡧈"#, r#"𡧈"#, r#"𡧈"#, r#"𡧈"#),
+        (r#"寃"#, r#"寃"#, r#"寃"#, r#"寃"#, r#"寃"#),
+        (r#"寘"#, r#"寘"#, r#"寘"#, r#"寘"#, r#"寘"#),
+        (r#"寧"#, r#"寧"#, r#"寧"#, r#"寧"#, r#"寧"#),
+        (r#"寳"#, r#"寳"#, r#"寳"#, r#"寳"#, r#"寳"#),
+        (r#"𡬘"#, r#"𡬘"#, r#"𡬘"#, r#"𡬘"#, r#"𡬘"#),
+        (r#"寿"#, r#"寿"#, r#"寿"#, r#"寿"#, r#"寿"#),
+        (r#"将"#, r#"将"#, r#"将"#, r#"将"#, r#"将"#),
+        (r#"当"#, r#"当"#, r#"当"#, r#"当"#, r#"当"#),
+        (r#"尢"#, r#"尢"#, r#"尢"#, r#"尢"#, r#"尢"#),
+        (r#"㞁"#, r#"㞁"#, r#"㞁"#, r#"㞁"#, r#"㞁"#),
+        (r#"屠"#, r#"屠"#, r#"屠"#, r#"屠"#, r#"屠"#),
+        (r#"屮"#, r#"屮"#, r#"屮"#, r#"屮"#, r#"屮"#),
+        (r#"峀"#, r#"峀"#, r#"峀"#, r#"峀"#, r#"峀"#),
+        (r#"岍"#, r#"岍"#, r#"岍"#, r#"岍"#, r#"岍"#),
+        (r#"𡷤"#, r#"𡷤"#, r#"𡷤"#, r#"𡷤"#, r#"𡷤"#),
+        (r#"嵃"#, r#"嵃"#, r#"嵃"#, r#"嵃"#, r#"嵃"#),
+        (r#"𡷦"#, r#"𡷦"#, r#"𡷦"#, r#"𡷦"#, r#"𡷦"#),
+        (r#"嵮"#, r#"嵮"#, r#"嵮"#, r#"嵮"#, r#"嵮"#),
+        (r#"嵫"#, r#"嵫"#, r#"嵫"#, r#"嵫"#, r#"嵫"#),
+        (r#"嵼"#, r#"嵼"#, r#"嵼"#, r#"嵼"#, r#"嵼"#),
+        (r#"巡"#, r#"巡"#, r#"巡"#, r#"巡"#, r#"巡"#),
+        (r#"巢"#, r#"巢"#, r#"巢"#, r#"巢"#, r#"巢"#),
+        (r#"㠯"#, r#"㠯"#, r#"㠯"#, r#"㠯"#, r#"㠯"#),
+        (r#"巽"#, r#"巽"#, r#"巽"#, r#"巽"#, r#"巽"#),
+        (r#"帨"#, r#"帨"#, r#"帨"#, r#"帨"#, r#"帨"#),
+        (r#"帽"#, r#"帽"#, r#"帽"#, r#"帽"#, r#"帽"#),
+        (r#"幩"#, r#"幩"#, r#"幩"#, r#"幩"#, r#"幩"#),
+        (r#"㡢"#, r#"㡢"#, r#"㡢"#, r#"㡢"#, r#"㡢"#),
+        (r#"𢆃"#, r#"𢆃"#, r#"𢆃"#, r#"𢆃"#, r#"𢆃"#),
+        (r#"㡼"#, r#"㡼"#, r#"㡼"#, r#"㡼"#, r#"㡼"#),
+        (r#"庰"#, r#"庰"#, r#"庰"#, r#"庰"#, r#"庰"#),
+        (r#"庳"#, r#"庳"#, r#"庳"#, r#"庳"#, r#"庳"#),
+        (r#"庶"#, r#"庶"#, r#"庶"#, r#"庶"#, r#"庶"#),
+        (r#"廊"#, r#"廊"#, r#"廊"#, r#"廊"#, r#"廊"#),
+        (r#"𪎒"#, r#"𪎒"#, r#"𪎒"#, r#"𪎒"#, r#"𪎒"#),
+        (r#"廾"#, r#"廾"#, r#"廾"#, r#"廾"#, r#"廾"#),
+        (r#"𢌱"#, r#"𢌱"#, r#"𢌱"#, r#"𢌱"#, r#"𢌱"#),
+        (r#"𢌱"#, r#"𢌱"#, r#"𢌱"#, r#"𢌱"#, r#"𢌱"#),
+        (r#"舁"#, r#"舁"#, r#"舁"#, r#"舁"#, r#"舁"#),
+        (r#"弢"#, r#"弢"#, r#"弢"#, r#"弢"#, r#"弢"#),
+        (r#"弢"#, r#"弢"#, r#"弢"#, r#"弢"#, r#"弢"#),
+        (r#"㣇"#, r#"㣇"#, r#"㣇"#, r#"㣇"#, r#"㣇"#),
+        (r#"𣊸"#, r#"𣊸"#, r#"𣊸"#, r#"𣊸"#, r#"𣊸"#),
+        (r#"𦇚"#, r#"𦇚"#, r#"𦇚"#, r#"𦇚"#, r#"𦇚"#),
+        (r#"形"#, r#"形"#, r#"形"#, r#"形"#, r#"形"#),
+        (r#"彫"#, r#"彫"#, r#"彫"#, r#"彫"#, r#"彫"#),
+        (r#"㣣"#, r#"㣣"#, r#"㣣"#, r#"㣣"#, r#"㣣"#),
+        (r#"徚"#, r#"徚"#, r#"徚"#, r#"徚"#, r#"徚"#),
+        (r#"忍"#, r#"忍"#, r#"忍"#, r#"忍"#, r#"忍"#),
+        (r#"志"#, r#"志"#, r#"志"#, r#"志"#, r#"志"#),
+        (r#"忹"#, r#"忹"#, r#"忹"#, r#"忹"#, r#"忹"#),
+        (r#"悁"#, r#"悁"#, r#"悁"#, r#"悁"#, r#"悁"#),
+        (r#"㤺"#, r#"㤺"#, r#"㤺"#, r#"㤺"#, r#"㤺"#),
+        (r#"㤜"#, r#"㤜"#, r#"㤜"#, r#"㤜"#, r#"㤜"#),
+        (r#"悔"#, r#"悔"#, r#"悔"#, r#"悔"#, r#"悔"#),
+        (r#"𢛔"#, r#"𢛔"#, r#"𢛔"#, r#"𢛔"#, r#"𢛔"#),
+        (r#"惇"#, r#"惇"#, r#"惇"#, r#"惇"#, r#"惇"#),
+        (r#"慈"#, r#"慈"#, r#"慈"#, r#"慈"#, r#"慈"#),
+        (r#"慌"#, r#"慌"#, r#"慌"#, r#"慌"#, r#"慌"#),
+        (r#"慎"#, r#"慎"#, r#"慎"#, r#"慎"#, r#"慎"#),
+        (r#"慌"#, r#"慌"#, r#"慌"#, r#"慌"#, r#"慌"#),
+        (r#"慺"#, r#"慺"#, r#"慺"#, r#"慺"#, r#"慺"#),
+        (r#"憎"#, r#"憎"#, r#"憎"#, r#"憎"#, r#"憎"#),
+        (r#"憲"#, r#"憲"#, r#"憲"#, r#"憲"#, r#"憲"#),
+        (r#"憤"#, r#"憤"#, r#"憤"#, r#"憤"#, r#"憤"#),
+        (r#"憯"#, r#"憯"#, r#"憯"#, r#"憯"#, r#"憯"#),
+        (r#"懞"#, r#"懞"#, r#"懞"#, r#"懞"#, r#"懞"#),
+        (r#"懲"#, r#"懲"#, r#"懲"#, r#"懲"#, r#"懲"#),
+        (r#"懶"#, r#"懶"#, r#"懶"#, r#"懶"#, r#"懶"#),
+        (r#"成"#, r#"成"#, r#"成"#, r#"成"#, r#"成"#),
+        (r#"戛"#, r#"戛"#, r#"戛"#, r#"戛"#, r#"戛"#),
+        (r#"扝"#, r#"扝"#, r#"扝"#, r#"扝"#, r#"扝"#),
+        (r#"抱"#, r#"抱"#, r#"抱"#, r#"抱"#, r#"抱"#),
+        (r#"拔"#, r#"拔"#, r#"拔"#, r#"拔"#, r#"拔"#),
+        (r#"捐"#, r#"捐"#, r#"捐"#, r#"捐"#, r#"捐"#),
+        (r#"𢬌"#, r#"𢬌"#, r#"𢬌"#, r#"𢬌"#, r#"𢬌"#),
+        (r#"挽"#, r#"挽"#, r#"挽"#, r#"挽"#, r#"挽"#),
+        (r#"拼"#, r#"拼"#, r#"拼"#, r#"拼"#, r#"拼"#),
+        (r#"捨"#, r#"捨"#, r#"捨"#, r#"捨"#, r#"捨"#),
+        (r#"掃"#, r#"掃"#, r#"掃"#, r#"掃"#, r#"掃"#),
+        (r#"揤"#, r#"揤"#, r#"揤"#, r#"揤"#, r#"揤"#),
+        (r#"𢯱"#, r#"𢯱"#, r#"𢯱"#, r#"𢯱"#, r#"𢯱"#),
+        (r#"搢"#, r#"搢"#, r#"搢"#, r#"搢"#, r#"搢"#),
+        (r#"揅"#, r#"揅"#, r#"揅"#, r#"揅"#, r#"揅"#),
+        (r#"掩"#, r#"掩"#, r#"掩"#, r#"掩"#, r#"掩"#),
+        (r#"㨮"#, r#"㨮"#, r#"㨮"#, r#"㨮"#, r#"㨮"#),
+        (r#"摩"#, r#"摩"#, r#"摩"#, r#"摩"#, r#"摩"#),
+        (r#"摾"#, r#"摾"#, r#"摾"#, r#"摾"#, r#"摾"#),
+        (r#"撝"#, r#"撝"#, r#"撝"#, r#"撝"#, r#"撝"#),
+        (r#"摷"#, r#"摷"#, r#"摷"#, r#"摷"#, r#"摷"#),
+        (r#"㩬"#, r#"㩬"#, r#"㩬"#, r#"㩬"#, r#"㩬"#),
+        (r#"敏"#, r#"敏"#, r#"敏"#, r#"敏"#, r#"敏"#),
+        (r#"敬"#, r#"敬"#, r#"敬"#, r#"敬"#, r#"敬"#),
+        (r#"𣀊"#, r#"𣀊"#, r#"𣀊"#, r#"𣀊"#, r#"𣀊"#),
+        (r#"旣"#, r#"旣"#, r#"旣"#, r#"旣"#, r#"旣"#),
+        (r#"書"#, r#"書"#, r#"書"#, r#"書"#, r#"書"#),
+        (r#"晉"#, r#"晉"#, r#"晉"#, r#"晉"#, r#"晉"#),
+        (r#"㬙"#, r#"㬙"#, r#"㬙"#, r#"㬙"#, r#"㬙"#),
+        (r#"暑"#, r#"暑"#, r#"暑"#, r#"暑"#, r#"暑"#),
+        (r#"㬈"#, r#"㬈"#, r#"㬈"#, r#"㬈"#, r#"㬈"#),
+        (r#"㫤"#, r#"㫤"#, r#"㫤"#, r#"㫤"#, r#"㫤"#),
+        (r#"冒"#, r#"冒"#, r#"冒"#, r#"冒"#, r#"冒"#),
+        (r#"冕"#, r#"冕"#, r#"冕"#, r#"冕"#, r#"冕"#),
+        (r#"最"#, r#"最"#, r#"最"#, r#"最"#, r#"最"#),
+        (r#"暜"#, r#"暜"#, r#"暜"#, r#"暜"#, r#"暜"#),
+        (r#"肭"#, r#"肭"#, r#"肭"#, r#"肭"#, r#"肭"#),
+        (r#"䏙"#, r#"䏙"#, r#"䏙"#, r#"䏙"#, r#"䏙"#),
+        (r#"朗"#, r#"朗"#, r#"朗"#, r#"朗"#, r#"朗"#),
+        (r#"望"#, r#"望"#, r#"望"#, r#"望"#, r#"望"#),
+        (r#"朡"#, r#"朡"#, r#"朡"#, r#"朡"#, r#"朡"#),
+        (r#"杞"#, r#"杞"#, r#"杞"#, r#"杞"#, r#"杞"#),
+        (r#"杓"#, r#"杓"#, r#"杓"#, r#"杓"#, r#"杓"#),
+        (r#"𣏃"#, r#"𣏃"#, r#"𣏃"#, r#"𣏃"#, r#"𣏃"#),
+        (r#"㭉"#, r#"㭉"#, r#"㭉"#, r#"㭉"#, r#"㭉"#),
+        (r#"柺"#, r#"柺"#, r#"柺"#, r#"柺"#, r#"柺"#),
+        (r#"枅"#, r#"枅"#, r#"枅"#, r#"枅"#, r#"枅"#),
+        (r#"桒"#, r#"桒"#, r#"桒"#, r#"桒"#, r#"桒"#),
+        (r#"梅"#, r#"梅"#, r#"梅"#, r#"梅"#, r#"梅"#),
+        (r#"𣑭"#, r#"𣑭"#, r#"𣑭"#, r#"𣑭"#, r#"𣑭"#),
+        (r#"梎"#, r#"梎"#, r#"梎"#, r#"梎"#, r#"梎"#),
+        (r#"栟"#, r#"栟"#, r#"栟"#, r#"栟"#, r#"栟"#),
+        (r#"椔"#, r#"椔"#, r#"椔"#, r#"椔"#, r#"椔"#),
+        (r#"㮝"#, r#"㮝"#, r#"㮝"#, r#"㮝"#, r#"㮝"#),
+        (r#"楂"#, r#"楂"#, r#"楂"#, r#"楂"#, r#"楂"#),
+        (r#"榣"#, r#"榣"#, r#"榣"#, r#"榣"#, r#"榣"#),
+        (r#"槪"#, r#"槪"#, r#"槪"#, r#"槪"#, r#"槪"#),
+        (r#"檨"#, r#"檨"#, r#"檨"#, r#"檨"#, r#"檨"#),
+        (r#"𣚣"#, r#"𣚣"#, r#"𣚣"#, r#"𣚣"#, r#"𣚣"#),
+        (r#"櫛"#, r#"櫛"#, r#"櫛"#, r#"櫛"#, r#"櫛"#),
+        (r#"㰘"#, r#"㰘"#, r#"㰘"#, r#"㰘"#, r#"㰘"#),
+        (r#"次"#, r#"次"#, r#"次"#, r#"次"#, r#"次"#),
+        (r#"𣢧"#, r#"𣢧"#, r#"𣢧"#, r#"𣢧"#, r#"𣢧"#),
+        (r#"歔"#, r#"歔"#, r#"歔"#, r#"歔"#, r#"歔"#),
+        (r#"㱎"#, r#"㱎"#, r#"㱎"#, r#"㱎"#, r#"㱎"#),
+        (r#"歲"#, r#"歲"#, r#"歲"#, r#"歲"#, r#"歲"#),
+        (r#"殟"#, r#"殟"#, r#"殟"#, r#"殟"#, r#"殟"#),
+        (r#"殺"#, r#"殺"#, r#"殺"#, r#"殺"#, r#"殺"#),
+        (r#"殻"#, r#"殻"#, r#"殻"#, r#"殻"#, r#"殻"#),
+        (r#"𣪍"#, r#"𣪍"#, r#"𣪍"#, r#"𣪍"#, r#"𣪍"#),
+        (r#"𡴋"#, r#"𡴋"#, r#"𡴋"#, r#"𡴋"#, r#"𡴋"#),
+        (r#"𣫺"#, r#"𣫺"#, r#"𣫺"#, r#"𣫺"#, r#"𣫺"#),
+        (r#"汎"#, r#"汎"#, r#"汎"#, r#"汎"#, r#"汎"#),
+        (r#"𣲼"#, r#"𣲼"#, r#"𣲼"#, r#"𣲼"#, r#"𣲼"#),
+        (r#"沿"#, r#"沿"#, r#"沿"#, r#"沿"#, r#"沿"#),
+        (r#"泍"#, r#"泍"#, r#"泍"#, r#"泍"#, r#"泍"#),
+        (r#"汧"#, r#"汧"#, r#"汧"#, r#"汧"#, r#"汧"#),
+        (r#"洖"#, r#"洖"#, r#"洖"#, r#"洖"#, r#"洖"#),
+        (r#"派"#, r#"派"#, r#"派"#, r#"派"#, r#"派"#),
+        (r#"海"#, r#"海"#, r#"海"#, r#"海"#, r#"海"#),
+        (r#"流"#, r#"流"#, r#"流"#, r#"流"#, r#"流"#),
+        (r#"浩"#, r#"浩"#, r#"浩"#, r#"浩"#, r#"浩"#),
+        (r#"浸"#, r#"浸"#, r#"浸"#, r#"浸"#, r#"浸"#),
+        (r#"涅"#, r#"涅"#, r#"涅"#, r#"涅"#, r#"涅"#),
+        (r#"𣴞"#, r#"𣴞"#, r#"𣴞"#, r#"𣴞"#, r#"𣴞"#),
+        (r#"洴"#, r#"洴"#, r#"洴"#, r#"洴"#, r#"洴"#),
+        (r#"港"#, r#"港"#, r#"港"#, r#"港"#, r#"港"#),
+        (r#"湮"#, r#"湮"#, r#"湮"#, r#"湮"#, r#"湮"#),
+        (r#"㴳"#, r#"㴳"#, r#"㴳"#, r#"㴳"#, r#"㴳"#),
+        (r#"滋"#, r#"滋"#, r#"滋"#, r#"滋"#, r#"滋"#),
+        (r#"滇"#, r#"滇"#, r#"滇"#, r#"滇"#, r#"滇"#),
+        (r#"𣻑"#, r#"𣻑"#, r#"𣻑"#, r#"𣻑"#, r#"𣻑"#),
+        (r#"淹"#, r#"淹"#, r#"淹"#, r#"淹"#, r#"淹"#),
+        (r#"潮"#, r#"潮"#, r#"潮"#, r#"潮"#, r#"潮"#),
+        (r#"𣽞"#, r#"𣽞"#, r#"𣽞"#, r#"𣽞"#, r#"𣽞"#),
+        (r#"𣾎"#, r#"𣾎"#, r#"𣾎"#, r#"𣾎"#, r#"𣾎"#),
+        (r#"濆"#, r#"濆"#, r#"濆"#, r#"濆"#, r#"濆"#),
+        (r#"瀹"#, r#"瀹"#, r#"瀹"#, r#"瀹"#, r#"瀹"#),
+        (r#"瀞"#, r#"瀞"#, r#"瀞"#, r#"瀞"#, r#"瀞"#),
+        (r#"瀛"#, r#"瀛"#, r#"瀛"#, r#"瀛"#, r#"瀛"#),
+        (r#"㶖"#, r#"㶖"#, r#"㶖"#, r#"㶖"#, r#"㶖"#),
+        (r#"灊"#, r#"灊"#, r#"灊"#, r#"灊"#, r#"灊"#),
+        (r#"災"#, r#"災"#, r#"災"#, r#"災"#, r#"災"#),
+        (r#"灷"#, r#"灷"#, r#"灷"#, r#"灷"#, r#"灷"#),
+        (r#"炭"#, r#"炭"#, r#"炭"#, r#"炭"#, r#"炭"#),
+        (r#"𠔥"#, r#"𠔥"#, r#"𠔥"#, r#"𠔥"#, r#"𠔥"#),
+        (r#"煅"#, r#"煅"#, r#"煅"#, r#"煅"#, r#"煅"#),
+        (r#"𤉣"#, r#"𤉣"#, r#"𤉣"#, r#"𤉣"#, r#"𤉣"#),
+        (r#"熜"#, r#"熜"#, r#"熜"#, r#"熜"#, r#"熜"#),
+        (r#"𤎫"#, r#"𤎫"#, r#"𤎫"#, r#"𤎫"#, r#"𤎫"#),
+        (r#"爨"#, r#"爨"#, r#"爨"#, r#"爨"#, r#"爨"#),
+        (r#"爵"#, r#"爵"#, r#"爵"#, r#"爵"#, r#"爵"#),
+        (r#"牐"#, r#"牐"#, r#"牐"#, r#"牐"#, r#"牐"#),
+        (r#"𤘈"#, r#"𤘈"#, r#"𤘈"#, r#"𤘈"#, r#"𤘈"#),
+        (r#"犀"#, r#"犀"#, r#"犀"#, r#"犀"#, r#"犀"#),
+        (r#"犕"#, r#"犕"#, r#"犕"#, r#"犕"#, r#"犕"#),
+        (r#"𤜵"#, r#"𤜵"#, r#"𤜵"#, r#"𤜵"#, r#"𤜵"#),
+        (r#"𤠔"#, r#"𤠔"#, r#"𤠔"#, r#"𤠔"#, r#"𤠔"#),
+        (r#"獺"#, r#"獺"#, r#"獺"#, r#"獺"#, r#"獺"#),
+        (r#"王"#, r#"王"#, r#"王"#, r#"王"#, r#"王"#),
+        (r#"㺬"#, r#"㺬"#, r#"㺬"#, r#"㺬"#, r#"㺬"#),
+        (r#"玥"#, r#"玥"#, r#"玥"#, r#"玥"#, r#"玥"#),
+        (r#"㺸"#, r#"㺸"#, r#"㺸"#, r#"㺸"#, r#"㺸"#),
+        (r#"㺸"#, r#"㺸"#, r#"㺸"#, r#"㺸"#, r#"㺸"#),
+        (r#"瑇"#, r#"瑇"#, r#"瑇"#, r#"瑇"#, r#"瑇"#),
+        (r#"瑜"#, r#"瑜"#, r#"瑜"#, r#"瑜"#, r#"瑜"#),
+        (r#"瑱"#, r#"瑱"#, r#"瑱"#, r#"瑱"#, r#"瑱"#),
+        (r#"璅"#, r#"璅"#, r#"璅"#, r#"璅"#, r#"璅"#),
+        (r#"瓊"#, r#"瓊"#, r#"瓊"#, r#"瓊"#, r#"瓊"#),
+        (r#"㼛"#, r#"㼛"#, r#"㼛"#, r#"㼛"#, r#"㼛"#),
+        (r#"甤"#, r#"甤"#, r#"甤"#, r#"甤"#, r#"甤"#),
+        (r#"𤰶"#, r#"𤰶"#, r#"𤰶"#, r#"𤰶"#, r#"𤰶"#),
+        (r#"甾"#, r#"甾"#, r#"甾"#, r#"甾"#, r#"甾"#),
+        (r#"𤲒"#, r#"𤲒"#, r#"𤲒"#, r#"𤲒"#, r#"𤲒"#),
+        (r#"異"#, r#"異"#, r#"異"#, r#"異"#, r#"異"#),
+        (r#"𢆟"#, r#"𢆟"#, r#"𢆟"#, r#"𢆟"#, r#"𢆟"#),
+        (r#"瘐"#, r#"瘐"#, r#"瘐"#, r#"瘐"#, r#"瘐"#),
+        (r#"𤾡"#, r#"𤾡"#, r#"𤾡"#, r#"𤾡"#, r#"𤾡"#),
+        (r#"𤾸"#, r#"𤾸"#, r#"𤾸"#, r#"𤾸"#, r#"𤾸"#),
+        (r#"𥁄"#, r#"𥁄"#, r#"𥁄"#, r#"𥁄"#, r#"𥁄"#),
+        (r#"㿼"#, r#"㿼"#, r#"㿼"#, r#"㿼"#, r#"㿼"#),
+        (r#"䀈"#, r#"䀈"#, r#"䀈"#, r#"䀈"#, r#"䀈"#),
+        (r#"直"#, r#"直"#, r#"直"#, r#"直"#, r#"直"#),
+        (r#"𥃳"#, r#"𥃳"#, r#"𥃳"#, r#"𥃳"#, r#"𥃳"#),
+        (r#"𥃲"#, r#"𥃲"#, r#"𥃲"#, r#"𥃲"#, r#"𥃲"#),
+        (r#"𥄙"#, r#"𥄙"#, r#"𥄙"#, r#"𥄙"#, r#"𥄙"#),
+        (r#"𥄳"#, r#"𥄳"#, r#"𥄳"#, r#"𥄳"#, r#"𥄳"#),
+        (r#"眞"#, r#"眞"#, r#"眞"#, r#"眞"#, r#"眞"#),
+        (r#"真"#, r#"真"#, r#"真"#, r#"真"#, r#"真"#),
+        (r#"真"#, r#"真"#, r#"真"#, r#"真"#, r#"真"#),
+        (r#"睊"#, r#"睊"#, r#"睊"#, r#"睊"#, r#"睊"#),
+        (r#"䀹"#, r#"䀹"#, r#"䀹"#, r#"䀹"#, r#"䀹"#),
+        (r#"瞋"#, r#"瞋"#, r#"瞋"#, r#"瞋"#, r#"瞋"#),
+        (r#"䁆"#, r#"䁆"#, r#"䁆"#, r#"䁆"#, r#"䁆"#),
+        (r#"䂖"#, r#"䂖"#, r#"䂖"#, r#"䂖"#, r#"䂖"#),
+        (r#"𥐝"#, r#"𥐝"#, r#"𥐝"#, r#"𥐝"#, r#"𥐝"#),
+        (r#"硎"#, r#"硎"#, r#"硎"#, r#"硎"#, r#"硎"#),
+        (r#"碌"#, r#"碌"#, r#"碌"#, r#"碌"#, r#"碌"#),
+        (r#"磌"#, r#"磌"#, r#"磌"#, r#"磌"#, r#"磌"#),
+        (r#"䃣"#, r#"䃣"#, r#"䃣"#, r#"䃣"#, r#"䃣"#),
+        (r#"𥘦"#, r#"𥘦"#, r#"𥘦"#, r#"𥘦"#, r#"𥘦"#),
+        (r#"祖"#, r#"祖"#, r#"祖"#, r#"祖"#, r#"祖"#),
+        (r#"𥚚"#, r#"𥚚"#, r#"𥚚"#, r#"𥚚"#, r#"𥚚"#),
+        (r#"𥛅"#, r#"𥛅"#, r#"𥛅"#, r#"𥛅"#, r#"𥛅"#),
+        (r#"福"#, r#"福"#, r#"福"#, r#"福"#, r#"福"#),
+        (r#"秫"#, r#"秫"#, r#"秫"#, r#"秫"#, r#"秫"#),
+        (r#"䄯"#, r#"䄯"#, r#"䄯"#, r#"䄯"#, r#"䄯"#),
+        (r#"穀"#, r#"穀"#, r#"穀"#, r#"穀"#, r#"穀"#),
+        (r#"穊"#, r#"穊"#, r#"穊"#, r#"穊"#, r#"穊"#),
+        (r#"穏"#, r#"穏"#, r#"穏"#, r#"穏"#, r#"穏"#),
+        (r#"𥥼"#, r#"𥥼"#, r#"𥥼"#, r#"𥥼"#, r#"𥥼"#),
+        (r#"𥪧"#, r#"𥪧"#, r#"𥪧"#, r#"𥪧"#, r#"𥪧"#),
+        (r#"𥪧"#, r#"𥪧"#, r#"𥪧"#, r#"𥪧"#, r#"𥪧"#),
+        (r#"竮"#, r#"竮"#, r#"竮"#, r#"竮"#, r#"竮"#),
+        (r#"䈂"#, r#"䈂"#, r#"䈂"#, r#"䈂"#, r#"䈂"#),
+        (r#"𥮫"#, r#"𥮫"#, r#"𥮫"#, r#"𥮫"#, r#"𥮫"#),
+        (r#"篆"#, r#"篆"#, r#"篆"#, r#"篆"#, r#"篆"#),
+        (r#"築"#, r#"築"#, r#"築"#, r#"築"#, r#"築"#),
+        (r#"䈧"#, r#"䈧"#, r#"䈧"#, r#"䈧"#, r#"䈧"#),
+        (r#"𥲀"#, r#"𥲀"#, r#"𥲀"#, r#"𥲀"#, r#"𥲀"#),
+        (r#"糒"#, r#"糒"#, r#"糒"#, r#"糒"#, r#"糒"#),
+        (r#"䊠"#, r#"䊠"#, r#"䊠"#, r#"䊠"#, r#"䊠"#),
+        (r#"糨"#, r#"糨"#, r#"糨"#, r#"糨"#, r#"糨"#),
+        (r#"糣"#, r#"糣"#, r#"糣"#, r#"糣"#, r#"糣"#),
+        (r#"紀"#, r#"紀"#, r#"紀"#, r#"紀"#, r#"紀"#),
+        (r#"𥾆"#, r#"𥾆"#, r#"𥾆"#, r#"𥾆"#, r#"𥾆"#),
+        (r#"絣"#, r#"絣"#, r#"絣"#, r#"絣"#, r#"絣"#),
+        (r#"䌁"#, r#"䌁"#, r#"䌁"#, r#"䌁"#, r#"䌁"#),
+        (r#"緇"#, r#"緇"#, r#"緇"#, r#"緇"#, r#"緇"#),
+        (r#"縂"#, r#"縂"#, r#"縂"#, r#"縂"#, r#"縂"#),
+        (r#"繅"#, r#"繅"#, r#"繅"#, r#"繅"#, r#"繅"#),
+        (r#"䌴"#, r#"䌴"#, r#"䌴"#, r#"䌴"#, r#"䌴"#),
+        (r#"𦈨"#, r#"𦈨"#, r#"𦈨"#, r#"𦈨"#, r#"𦈨"#),
+        (r#"𦉇"#, r#"𦉇"#, r#"𦉇"#, r#"𦉇"#, r#"𦉇"#),
+        (r#"䍙"#, r#"䍙"#, r#"䍙"#, r#"䍙"#, r#"䍙"#),
+        (r#"𦋙"#, r#"𦋙"#, r#"𦋙"#, r#"𦋙"#, r#"𦋙"#),
+        (r#"罺"#, r#"罺"#, r#"罺"#, r#"罺"#, r#"罺"#),
+        (r#"𦌾"#, r#"𦌾"#, r#"𦌾"#, r#"𦌾"#, r#"𦌾"#),
+        (r#"羕"#, r#"羕"#, r#"羕"#, r#"羕"#, r#"羕"#),
+        (r#"翺"#, r#"翺"#, r#"翺"#, r#"翺"#, r#"翺"#),
+        (r#"者"#, r#"者"#, r#"者"#, r#"者"#, r#"者"#),
+        (r#"𦓚"#, r#"𦓚"#, r#"𦓚"#, r#"𦓚"#, r#"𦓚"#),
+        (r#"𦔣"#, r#"𦔣"#, r#"𦔣"#, r#"𦔣"#, r#"𦔣"#),
+        (r#"聠"#, r#"聠"#, r#"聠"#, r#"聠"#, r#"聠"#),
+        (r#"𦖨"#, r#"𦖨"#, r#"𦖨"#, r#"𦖨"#, r#"𦖨"#),
+        (r#"聰"#, r#"聰"#, r#"聰"#, r#"聰"#, r#"聰"#),
+        (r#"𣍟"#, r#"𣍟"#, r#"𣍟"#, r#"𣍟"#, r#"𣍟"#),
+        (r#"䏕"#, r#"䏕"#, r#"䏕"#, r#"䏕"#, r#"䏕"#),
+        (r#"育"#, r#"育"#, r#"育"#, r#"育"#, r#"育"#),
+        (r#"脃"#, r#"脃"#, r#"脃"#, r#"脃"#, r#"脃"#),
+        (r#"䐋"#, r#"䐋"#, r#"䐋"#, r#"䐋"#, r#"䐋"#),
+        (r#"脾"#, r#"脾"#, r#"脾"#, r#"脾"#, r#"脾"#),
+        (r#"媵"#, r#"媵"#, r#"媵"#, r#"媵"#, r#"媵"#),
+        (r#"𦞧"#, r#"𦞧"#, r#"𦞧"#, r#"𦞧"#, r#"𦞧"#),
+        (r#"𦞵"#, r#"𦞵"#, r#"𦞵"#, r#"𦞵"#, r#"𦞵"#),
+        (r#"𣎓"#, r#"𣎓"#, r#"𣎓"#, r#"𣎓"#, r#"𣎓"#),
+        (r#"𣎜"#, r#"𣎜"#, r#"𣎜"#, r#"𣎜"#, r#"𣎜"#),
+        (r#"舁"#, r#"舁"#, r#"舁"#, r#"舁"#, r#"舁"#),
+        (r#"舄"#, r#"舄"#, r#"舄"#, r#"舄"#, r#"舄"#),
+        (r#"辞"#, r#"辞"#, r#"辞"#, r#"辞"#, r#"辞"#),
+        (r#"䑫"#, r#"䑫"#, r#"䑫"#, r#"䑫"#, r#"䑫"#),
+        (r#"芑"#, r#"芑"#, r#"芑"#, r#"芑"#, r#"芑"#),
+        (r#"芋"#, r#"芋"#, r#"芋"#, r#"芋"#, r#"芋"#),
+        (r#"芝"#, r#"芝"#, r#"芝"#, r#"芝"#, r#"芝"#),
+        (r#"劳"#, r#"劳"#, r#"劳"#, r#"劳"#, r#"劳"#),
+        (r#"花"#, r#"花"#, r#"花"#, r#"花"#, r#"花"#),
+        (r#"芳"#, r#"芳"#, r#"芳"#, r#"芳"#, r#"芳"#),
+        (r#"芽"#, r#"芽"#, r#"芽"#, r#"芽"#, r#"芽"#),
+        (r#"苦"#, r#"苦"#, r#"苦"#, r#"苦"#, r#"苦"#),
+        (r#"𦬼"#, r#"𦬼"#, r#"𦬼"#, r#"𦬼"#, r#"𦬼"#),
+        (r#"若"#, r#"若"#, r#"若"#, r#"若"#, r#"若"#),
+        (r#"茝"#, r#"茝"#, r#"茝"#, r#"茝"#, r#"茝"#),
+        (r#"荣"#, r#"荣"#, r#"荣"#, r#"荣"#, r#"荣"#),
+        (r#"莭"#, r#"莭"#, r#"莭"#, r#"莭"#, r#"莭"#),
+        (r#"茣"#, r#"茣"#, r#"茣"#, r#"茣"#, r#"茣"#),
+        (r#"莽"#, r#"莽"#, r#"莽"#, r#"莽"#, r#"莽"#),
+        (r#"菧"#, r#"菧"#, r#"菧"#, r#"菧"#, r#"菧"#),
+        (r#"著"#, r#"著"#, r#"著"#, r#"著"#, r#"著"#),
+        (r#"荓"#, r#"荓"#, r#"荓"#, r#"荓"#, r#"荓"#),
+        (r#"菊"#, r#"菊"#, r#"菊"#, r#"菊"#, r#"菊"#),
+        (r#"菌"#, r#"菌"#, r#"菌"#, r#"菌"#, r#"菌"#),
+        (r#"菜"#, r#"菜"#, r#"菜"#, r#"菜"#, r#"菜"#),
+        (r#"𦰶"#, r#"𦰶"#, r#"𦰶"#, r#"𦰶"#, r#"𦰶"#),
+        (r#"𦵫"#, r#"𦵫"#, r#"𦵫"#, r#"𦵫"#, r#"𦵫"#),
+        (r#"𦳕"#, r#"𦳕"#, r#"𦳕"#, r#"𦳕"#, r#"𦳕"#),
+        (r#"䔫"#, r#"䔫"#, r#"䔫"#, r#"䔫"#, r#"䔫"#),
+        (r#"蓱"#, r#"蓱"#, r#"蓱"#, r#"蓱"#, r#"蓱"#),
+        (r#"蓳"#, r#"蓳"#, r#"蓳"#, r#"蓳"#, r#"蓳"#),
+        (r#"蔖"#, r#"蔖"#, r#"蔖"#, r#"蔖"#, r#"蔖"#),
+        (r#"𧏊"#, r#"𧏊"#, r#"𧏊"#, r#"𧏊"#, r#"𧏊"#),
+        (r#"蕤"#, r#"蕤"#, r#"蕤"#, r#"蕤"#, r#"蕤"#),
+        (r#"𦼬"#, r#"𦼬"#, r#"𦼬"#, r#"𦼬"#, r#"𦼬"#),
+        (r#"䕝"#, r#"䕝"#, r#"䕝"#, r#"䕝"#, r#"䕝"#),
+        (r#"䕡"#, r#"䕡"#, r#"䕡"#, r#"䕡"#, r#"䕡"#),
+        (r#"𦾱"#, r#"𦾱"#, r#"𦾱"#, r#"𦾱"#, r#"𦾱"#),
+        (r#"𧃒"#, r#"𧃒"#, r#"𧃒"#, r#"𧃒"#, r#"𧃒"#),
+        (r#"䕫"#, r#"䕫"#, r#"䕫"#, r#"䕫"#, r#"䕫"#),
+        (r#"虐"#, r#"虐"#, r#"虐"#, r#"虐"#, r#"虐"#),
+        (r#"虜"#, r#"虜"#, r#"虜"#, r#"虜"#, r#"虜"#),
+        (r#"虧"#, r#"虧"#, r#"虧"#, r#"虧"#, r#"虧"#),
+        (r#"虩"#, r#"虩"#, r#"虩"#, r#"虩"#, r#"虩"#),
+        (r#"蚩"#, r#"蚩"#, r#"蚩"#, r#"蚩"#, r#"蚩"#),
+        (r#"蚈"#, r#"蚈"#, r#"蚈"#, r#"蚈"#, r#"蚈"#),
+        (r#"蜎"#, r#"蜎"#, r#"蜎"#, r#"蜎"#, r#"蜎"#),
+        (r#"蛢"#, r#"蛢"#, r#"蛢"#, r#"蛢"#, r#"蛢"#),
+        (r#"蝹"#, r#"蝹"#, r#"蝹"#, r#"蝹"#, r#"蝹"#),
+        (r#"蜨"#, r#"蜨"#, r#"蜨"#, r#"蜨"#, r#"蜨"#),
+        (r#"蝫"#, r#"蝫"#, r#"蝫"#, r#"蝫"#, r#"蝫"#),
+        (r#"螆"#, r#"螆"#, r#"螆"#, r#"螆"#, r#"螆"#),
+        (r#"䗗"#, r#"䗗"#, r#"䗗"#, r#"䗗"#, r#"䗗"#),
+        (r#"蟡"#, r#"蟡"#, r#"蟡"#, r#"蟡"#, r#"蟡"#),
+        (r#"蠁"#, r#"蠁"#, r#"蠁"#, r#"蠁"#, r#"蠁"#),
+        (r#"䗹"#, r#"䗹"#, r#"䗹"#, r#"䗹"#, r#"䗹"#),
+        (r#"衠"#, r#"衠"#, r#"衠"#, r#"衠"#, r#"衠"#),
+        (r#"衣"#, r#"衣"#, r#"衣"#, r#"衣"#, r#"衣"#),
+        (r#"𧙧"#, r#"𧙧"#, r#"𧙧"#, r#"𧙧"#, r#"𧙧"#),
+        (r#"裗"#, r#"裗"#, r#"裗"#, r#"裗"#, r#"裗"#),
+        (r#"裞"#, r#"裞"#, r#"裞"#, r#"裞"#, r#"裞"#),
+        (r#"䘵"#, r#"䘵"#, r#"䘵"#, r#"䘵"#, r#"䘵"#),
+        (r#"裺"#, r#"裺"#, r#"裺"#, r#"裺"#, r#"裺"#),
+        (r#"㒻"#, r#"㒻"#, r#"㒻"#, r#"㒻"#, r#"㒻"#),
+        (r#"𧢮"#, r#"𧢮"#, r#"𧢮"#, r#"𧢮"#, r#"𧢮"#),
+        (r#"𧥦"#, r#"𧥦"#, r#"𧥦"#, r#"𧥦"#, r#"𧥦"#),
+        (r#"䚾"#, r#"䚾"#, r#"䚾"#, r#"䚾"#, r#"䚾"#),
+        (r#"䛇"#, r#"䛇"#, r#"䛇"#, r#"䛇"#, r#"䛇"#),
+        (r#"誠"#, r#"誠"#, r#"誠"#, r#"誠"#, r#"誠"#),
+        (r#"諭"#, r#"諭"#, r#"諭"#, r#"諭"#, r#"諭"#),
+        (r#"變"#, r#"變"#, r#"變"#, r#"變"#, r#"變"#),
+        (r#"豕"#, r#"豕"#, r#"豕"#, r#"豕"#, r#"豕"#),
+        (r#"𧲨"#, r#"𧲨"#, r#"𧲨"#, r#"𧲨"#, r#"𧲨"#),
+        (r#"貫"#, r#"貫"#, r#"貫"#, r#"貫"#, r#"貫"#),
+        (r#"賁"#, r#"賁"#, r#"賁"#, r#"賁"#, r#"賁"#),
+        (r#"贛"#, r#"贛"#, r#"贛"#, r#"贛"#, r#"贛"#),
+        (r#"起"#, r#"起"#, r#"起"#, r#"起"#, r#"起"#),
+        (r#"𧼯"#, r#"𧼯"#, r#"𧼯"#, r#"𧼯"#, r#"𧼯"#),
+        (r#"𠠄"#, r#"𠠄"#, r#"𠠄"#, r#"𠠄"#, r#"𠠄"#),
+        (r#"跋"#, r#"跋"#, r#"跋"#, r#"跋"#, r#"跋"#),
+        (r#"趼"#, r#"趼"#, r#"趼"#, r#"趼"#, r#"趼"#),
+        (r#"跰"#, r#"跰"#, r#"跰"#, r#"跰"#, r#"跰"#),
+        (r#"𠣞"#, r#"𠣞"#, r#"𠣞"#, r#"𠣞"#, r#"𠣞"#),
+        (r#"軔"#, r#"軔"#, r#"軔"#, r#"軔"#, r#"軔"#),
+        (r#"輸"#, r#"輸"#, r#"輸"#, r#"輸"#, r#"輸"#),
+        (r#"𨗒"#, r#"𨗒"#, r#"𨗒"#, r#"𨗒"#, r#"𨗒"#),
+        (r#"𨗭"#, r#"𨗭"#, r#"𨗭"#, r#"𨗭"#, r#"𨗭"#),
+        (r#"邔"#, r#"邔"#, r#"邔"#, r#"邔"#, r#"邔"#),
+        (r#"郱"#, r#"郱"#, r#"郱"#, r#"郱"#, r#"郱"#),
+        (r#"鄑"#, r#"鄑"#, r#"鄑"#, r#"鄑"#, r#"鄑"#),
+        (r#"𨜮"#, r#"𨜮"#, r#"𨜮"#, r#"𨜮"#, r#"𨜮"#),
+        (r#"鄛"#, r#"鄛"#, r#"鄛"#, r#"鄛"#, r#"鄛"#),
+        (r#"鈸"#, r#"鈸"#, r#"鈸"#, r#"鈸"#, r#"鈸"#),
+        (r#"鋗"#, r#"鋗"#, r#"鋗"#, r#"鋗"#, r#"鋗"#),
+        (r#"鋘"#, r#"鋘"#, r#"鋘"#, r#"鋘"#, r#"鋘"#),
+        (r#"鉼"#, r#"鉼"#, r#"鉼"#, r#"鉼"#, r#"鉼"#),
+        (r#"鏹"#, r#"鏹"#, r#"鏹"#, r#"鏹"#, r#"鏹"#),
+        (r#"鐕"#, r#"鐕"#, r#"鐕"#, r#"鐕"#, r#"鐕"#),
+        (r#"𨯺"#, r#"𨯺"#, r#"𨯺"#, r#"𨯺"#, r#"𨯺"#),
+        (r#"開"#, r#"開"#, r#"開"#, r#"開"#, r#"開"#),
+        (r#"䦕"#, r#"䦕"#, r#"䦕"#, r#"䦕"#, r#"䦕"#),
+        (r#"閷"#, r#"閷"#, r#"閷"#, r#"閷"#, r#"閷"#),
+        (r#"𨵷"#, r#"𨵷"#, r#"𨵷"#, r#"𨵷"#, r#"𨵷"#),
+        (r#"䧦"#, r#"䧦"#, r#"䧦"#, r#"䧦"#, r#"䧦"#),
+        (r#"雃"#, r#"雃"#, r#"雃"#, r#"雃"#, r#"雃"#),
+        (r#"嶲"#, r#"嶲"#, r#"嶲"#, r#"嶲"#, r#"嶲"#),
+        (r#"霣"#, r#"霣"#, r#"霣"#, r#"霣"#, r#"霣"#),
+        (r#"𩅅"#, r#"𩅅"#, r#"𩅅"#, r#"𩅅"#, r#"𩅅"#),
+        (r#"𩈚"#, r#"𩈚"#, r#"𩈚"#, r#"𩈚"#, r#"𩈚"#),
+        (r#"䩮"#, r#"䩮"#, r#"䩮"#, r#"䩮"#, r#"䩮"#),
+        (r#"䩶"#, r#"䩶"#, r#"䩶"#, r#"䩶"#, r#"䩶"#),
+        (r#"韠"#, r#"韠"#, r#"韠"#, r#"韠"#, r#"韠"#),
+        (r#"𩐊"#, r#"𩐊"#, r#"𩐊"#, r#"𩐊"#, r#"𩐊"#),
+        (r#"䪲"#, r#"䪲"#, r#"䪲"#, r#"䪲"#, r#"䪲"#),
+        (r#"𩒖"#, r#"𩒖"#, r#"𩒖"#, r#"𩒖"#, r#"𩒖"#),
+        (r#"頋"#, r#"頋"#, r#"頋"#, r#"頋"#, r#"頋"#),
+        (r#"頋"#, r#"頋"#, r#"頋"#, r#"頋"#, r#"頋"#),
+        (r#"頩"#, r#"頩"#, r#"頩"#, r#"頩"#, r#"頩"#),
+        (r#"𩖶"#, r#"𩖶"#, r#"𩖶"#, r#"𩖶"#, r#"𩖶"#),
+        (r#"飢"#, r#"飢"#, r#"飢"#, r#"飢"#, r#"飢"#),
+        (r#"䬳"#, r#"䬳"#, r#"䬳"#, r#"䬳"#, r#"䬳"#),
+        (r#"餩"#, r#"餩"#, r#"餩"#, r#"餩"#, r#"餩"#),
+        (r#"馧"#, r#"馧"#, r#"馧"#, r#"馧"#, r#"馧"#),
+        (r#"駂"#, r#"駂"#, r#"駂"#, r#"駂"#, r#"駂"#),
+        (r#"駾"#, r#"駾"#, r#"駾"#, r#"駾"#, r#"駾"#),
+        (r#"䯎"#, r#"䯎"#, r#"䯎"#, r#"䯎"#, r#"䯎"#),
+        (r#"𩬰"#, r#"𩬰"#, r#"𩬰"#, r#"𩬰"#, r#"𩬰"#),
+        (r#"鬒"#, r#"鬒"#, r#"鬒"#, r#"鬒"#, r#"鬒"#),
+        (r#"鱀"#, r#"鱀"#, r#"鱀"#, r#"鱀"#, r#"鱀"#),
+        (r#"鳽"#, r#"鳽"#, r#"鳽"#, r#"鳽"#, r#"鳽"#),
+        (r#"䳎"#, r#"䳎"#, r#"䳎"#, r#"䳎"#, r#"䳎"#),
+        (r#"䳭"#, r#"䳭"#, r#"䳭"#, r#"䳭"#, r#"䳭"#),
+        (r#"鵧"#, r#"鵧"#, r#"鵧"#, r#"鵧"#, r#"鵧"#),
+        (r#"𪃎"#, r#"𪃎"#, r#"𪃎"#, r#"𪃎"#, r#"𪃎"#),
+        (r#"䳸"#, r#"䳸"#, r#"䳸"#, r#"䳸"#, r#"䳸"#),
+        (r#"𪄅"#, r#"𪄅"#, r#"𪄅"#, r#"𪄅"#, r#"𪄅"#),
+        (r#"𪈎"#, r#"𪈎"#, r#"𪈎"#, r#"𪈎"#, r#"𪈎"#),
+        (r#"𪊑"#, r#"𪊑"#, r#"𪊑"#, r#"𪊑"#, r#"𪊑"#),
+        (r#"麻"#, r#"麻"#, r#"麻"#, r#"麻"#, r#"麻"#),
+        (r#"䵖"#, r#"䵖"#, r#"䵖"#, r#"䵖"#, r#"䵖"#),
+        (r#"黹"#, r#"黹"#, r#"黹"#, r#"黹"#, r#"黹"#),
+        (r#"黾"#, r#"黾"#, r#"黾"#, r#"黾"#, r#"黾"#),
+        (r#"鼅"#, r#"鼅"#, r#"鼅"#, r#"鼅"#, r#"鼅"#),
+        (r#"鼏"#, r#"鼏"#, r#"鼏"#, r#"鼏"#, r#"鼏"#),
+        (r#"鼖"#, r#"鼖"#, r#"鼖"#, r#"鼖"#, r#"鼖"#),
+        (r#"鼻"#, r#"鼻"#, r#"鼻"#, r#"鼻"#, r#"鼻"#),
+        (r#"𪘀"#, r#"𪘀"#, r#"𪘀"#, r#"𪘀"#, r#"𪘀"#),
+        (r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#),
+        (r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#),
+        (r#"à֮́̕b"#, r#"à֮́̕b"#, r#"à֮́̕b"#, r#"à֮́̕b"#, r#"à֮́̕b"#),
+        (r#"á֮̀̕b"#, r#"á֮̀̕b"#, r#"á֮̀̕b"#, r#"á֮̀̕b"#, r#"á֮̀̕b"#),
+        (r#"à֮̂̕b"#, r#"à֮̂̕b"#, r#"à֮̂̕b"#, r#"à֮̂̕b"#, r#"à֮̂̕b"#),
+        (r#"ầ֮̕b"#, r#"ầ֮̕b"#, r#"ầ֮̕b"#, r#"ầ֮̕b"#, r#"ầ֮̕b"#),
+        (r#"à֮̃̕b"#, r#"à֮̃̕b"#, r#"à֮̃̕b"#, r#"à֮̃̕b"#, r#"à֮̃̕b"#),
+        (r#"ã֮̀̕b"#, r#"ã֮̀̕b"#, r#"ã֮̀̕b"#, r#"ã֮̀̕b"#, r#"ã֮̀̕b"#),
+        (r#"à֮̄̕b"#, r#"à֮̄̕b"#, r#"à֮̄̕b"#, r#"à֮̄̕b"#, r#"à֮̄̕b"#),
+        (r#"ā֮̀̕b"#, r#"ā֮̀̕b"#, r#"ā֮̀̕b"#, r#"ā֮̀̕b"#, r#"ā֮̀̕b"#),
+        (r#"à֮̅̕b"#, r#"à֮̅̕b"#, r#"à֮̅̕b"#, r#"à֮̅̕b"#, r#"à֮̅̕b"#),
+        (r#"a֮̅̀̕b"#, r#"a֮̅̀̕b"#, r#"a֮̅̀̕b"#, r#"a֮̅̀̕b"#, r#"a֮̅̀̕b"#),
+        (r#"à֮̆̕b"#, r#"à֮̆̕b"#, r#"à֮̆̕b"#, r#"à֮̆̕b"#, r#"à֮̆̕b"#),
+        (r#"ằ֮̕b"#, r#"ằ֮̕b"#, r#"ằ֮̕b"#, r#"ằ֮̕b"#, r#"ằ֮̕b"#),
+        (r#"à֮̇̕b"#, r#"à֮̇̕b"#, r#"à֮̇̕b"#, r#"à֮̇̕b"#, r#"à֮̇̕b"#),
+        (r#"ȧ֮̀̕b"#, r#"ȧ֮̀̕b"#, r#"ȧ֮̀̕b"#, r#"ȧ֮̀̕b"#, r#"ȧ֮̀̕b"#),
+        (r#"à֮̈̕b"#, r#"à֮̈̕b"#, r#"à֮̈̕b"#, r#"à֮̈̕b"#, r#"à֮̈̕b"#),
+        (r#"ä֮̀̕b"#, r#"ä֮̀̕b"#, r#"ä֮̀̕b"#, r#"ä֮̀̕b"#, r#"ä֮̀̕b"#),
+        (r#"à֮̉̕b"#, r#"à֮̉̕b"#, r#"à֮̉̕b"#, r#"à֮̉̕b"#, r#"à֮̉̕b"#),
+        (r#"ả֮̀̕b"#, r#"ả֮̀̕b"#, r#"ả֮̀̕b"#, r#"ả֮̀̕b"#, r#"ả֮̀̕b"#),
+        (r#"à֮̊̕b"#, r#"à֮̊̕b"#, r#"à֮̊̕b"#, r#"à֮̊̕b"#, r#"à֮̊̕b"#),
+        (r#"å֮̀̕b"#, r#"å֮̀̕b"#, r#"å֮̀̕b"#, r#"å֮̀̕b"#, r#"å֮̀̕b"#),
+        (r#"à֮̋̕b"#, r#"à֮̋̕b"#, r#"à֮̋̕b"#, r#"à֮̋̕b"#, r#"à֮̋̕b"#),
+        (r#"a֮̋̀̕b"#, r#"a֮̋̀̕b"#, r#"a֮̋̀̕b"#, r#"a֮̋̀̕b"#, r#"a֮̋̀̕b"#),
+        (r#"à֮̌̕b"#, r#"à֮̌̕b"#, r#"à֮̌̕b"#, r#"à֮̌̕b"#, r#"à֮̌̕b"#),
+        (r#"ǎ֮̀̕b"#, r#"ǎ֮̀̕b"#, r#"ǎ֮̀̕b"#, r#"ǎ֮̀̕b"#, r#"ǎ֮̀̕b"#),
+        (r#"à֮̍̕b"#, r#"à֮̍̕b"#, r#"à֮̍̕b"#, r#"à֮̍̕b"#, r#"à֮̍̕b"#),
+        (r#"a֮̍̀̕b"#, r#"a֮̍̀̕b"#, r#"a֮̍̀̕b"#, r#"a֮̍̀̕b"#, r#"a֮̍̀̕b"#),
+        (r#"à֮̎̕b"#, r#"à֮̎̕b"#, r#"à֮̎̕b"#, r#"à֮̎̕b"#, r#"à֮̎̕b"#),
+        (r#"a֮̎̀̕b"#, r#"a֮̎̀̕b"#, r#"a֮̎̀̕b"#, r#"a֮̎̀̕b"#, r#"a֮̎̀̕b"#),
+        (r#"à֮̏̕b"#, r#"à֮̏̕b"#, r#"à֮̏̕b"#, r#"à֮̏̕b"#, r#"à֮̏̕b"#),
+        (r#"ȁ֮̀̕b"#, r#"ȁ֮̀̕b"#, r#"ȁ֮̀̕b"#, r#"ȁ֮̀̕b"#, r#"ȁ֮̀̕b"#),
+        (r#"à֮̐̕b"#, r#"à֮̐̕b"#, r#"à֮̐̕b"#, r#"à֮̐̕b"#, r#"à֮̐̕b"#),
+        (r#"a֮̐̀̕b"#, r#"a֮̐̀̕b"#, r#"a֮̐̀̕b"#, r#"a֮̐̀̕b"#, r#"a֮̐̀̕b"#),
+        (r#"à֮̑̕b"#, r#"à֮̑̕b"#, r#"à֮̑̕b"#, r#"à֮̑̕b"#, r#"à֮̑̕b"#),
+        (r#"ȃ֮̀̕b"#, r#"ȃ֮̀̕b"#, r#"ȃ֮̀̕b"#, r#"ȃ֮̀̕b"#, r#"ȃ֮̀̕b"#),
+        (r#"à֮̒̕b"#, r#"à֮̒̕b"#, r#"à֮̒̕b"#, r#"à֮̒̕b"#, r#"à֮̒̕b"#),
+        (r#"a֮̒̀̕b"#, r#"a֮̒̀̕b"#, r#"a֮̒̀̕b"#, r#"a֮̒̀̕b"#, r#"a֮̒̀̕b"#),
+        (r#"à֮̓̕b"#, r#"à֮̓̕b"#, r#"à֮̓̕b"#, r#"à֮̓̕b"#, r#"à֮̓̕b"#),
+        (r#"a֮̓̀̕b"#, r#"a֮̓̀̕b"#, r#"a֮̓̀̕b"#, r#"a֮̓̀̕b"#, r#"a֮̓̀̕b"#),
+        (r#"à֮̔̕b"#, r#"à֮̔̕b"#, r#"à֮̔̕b"#, r#"à֮̔̕b"#, r#"à֮̔̕b"#),
+        (r#"a֮̔̀̕b"#, r#"a֮̔̀̕b"#, r#"a֮̔̀̕b"#, r#"a֮̔̀̕b"#, r#"a֮̔̀̕b"#),
+        (r#"à̕̕͜b"#, r#"à̕̕͜b"#, r#"à̕̕͜b"#, r#"à̕̕͜b"#, r#"à̕̕͜b"#),
+        (r#"à̕̕͜b"#, r#"à̕̕͜b"#, r#"à̕̕͜b"#, r#"à̕̕͜b"#, r#"à̕̕͜b"#),
+        (r#"a᷺̖̖֚b"#, r#"a᷺̖̖֚b"#, r#"a᷺̖̖֚b"#, r#"a᷺̖̖֚b"#, r#"a᷺̖̖֚b"#),
+        (r#"a᷺̖̖֚b"#, r#"a᷺̖̖֚b"#, r#"a᷺̖̖֚b"#, r#"a᷺̖̖֚b"#, r#"a᷺̖̖֚b"#),
+        (r#"a᷺̖̗֚b"#, r#"a᷺̖̗֚b"#, r#"a᷺̖̗֚b"#, r#"a᷺̖̗֚b"#, r#"a᷺̖̗֚b"#),
+        (r#"a᷺̗̖֚b"#, r#"a᷺̗̖֚b"#, r#"a᷺̗̖֚b"#, r#"a᷺̗̖֚b"#, r#"a᷺̗̖֚b"#),
+        (r#"a᷺̖̘֚b"#, r#"a᷺̖̘֚b"#, r#"a᷺̖̘֚b"#, r#"a᷺̖̘֚b"#, r#"a᷺̖̘֚b"#),
+        (r#"a᷺̘̖֚b"#, r#"a᷺̘̖֚b"#, r#"a᷺̘̖֚b"#, r#"a᷺̘̖֚b"#, r#"a᷺̘̖֚b"#),
+        (r#"a᷺̖̙֚b"#, r#"a᷺̖̙֚b"#, r#"a᷺̖̙֚b"#, r#"a᷺̖̙֚b"#, r#"a᷺̖̙֚b"#),
+        (r#"a᷺̙̖֚b"#, r#"a᷺̙̖֚b"#, r#"a᷺̙̖֚b"#, r#"a᷺̙̖֚b"#, r#"a᷺̙̖֚b"#),
+        (r#"à̕̚͜b"#, r#"à̕̚͜b"#, r#"à̕̚͜b"#, r#"à̕̚͜b"#, r#"à̕̚͜b"#),
+        (r#"à̚̕͜b"#, r#"à̚̕͜b"#, r#"à̚̕͜b"#, r#"à̚̕͜b"#, r#"à̚̕͜b"#),
+        (r#"a᷎̛̛᷺b"#, r#"a᷎̛̛᷺b"#, r#"a᷎̛̛᷺b"#, r#"a᷎̛̛᷺b"#, r#"a᷎̛̛᷺b"#),
+        (r#"a᷎̛̛᷺b"#, r#"a᷎̛̛᷺b"#, r#"a᷎̛̛᷺b"#, r#"a᷎̛̛᷺b"#, r#"a᷎̛̛᷺b"#),
+        (r#"a᷺̖̜֚b"#, r#"a᷺̖̜֚b"#, r#"a᷺̖̜֚b"#, r#"a᷺̖̜֚b"#, r#"a᷺̖̜֚b"#),
+        (r#"a᷺̜̖֚b"#, r#"a᷺̜̖֚b"#, r#"a᷺̜̖֚b"#, r#"a᷺̜̖֚b"#, r#"a᷺̜̖֚b"#),
+        (r#"a᷺̖̝֚b"#, r#"a᷺̖̝֚b"#, r#"a᷺̖̝֚b"#, r#"a᷺̖̝֚b"#, r#"a᷺̖̝֚b"#),
+        (r#"a᷺̝̖֚b"#, r#"a᷺̝̖֚b"#, r#"a᷺̝̖֚b"#, r#"a᷺̝̖֚b"#, r#"a᷺̝̖֚b"#),
+        (r#"a᷺̖̞֚b"#, r#"a᷺̖̞֚b"#, r#"a᷺̖̞֚b"#, r#"a᷺̖̞֚b"#, r#"a᷺̖̞֚b"#),
+        (r#"a᷺̞̖֚b"#, r#"a᷺̞̖֚b"#, r#"a᷺̞̖֚b"#, r#"a᷺̞̖֚b"#, r#"a᷺̞̖֚b"#),
+        (r#"a᷺̖̟֚b"#, r#"a᷺̖̟֚b"#, r#"a᷺̖̟֚b"#, r#"a᷺̖̟֚b"#, r#"a᷺̖̟֚b"#),
+        (r#"a᷺̟̖֚b"#, r#"a᷺̟̖֚b"#, r#"a᷺̟̖֚b"#, r#"a᷺̟̖֚b"#, r#"a᷺̟̖֚b"#),
+        (r#"a᷺̖̠֚b"#, r#"a᷺̖̠֚b"#, r#"a᷺̖̠֚b"#, r#"a᷺̖̠֚b"#, r#"a᷺̖̠֚b"#),
+        (r#"a᷺̠̖֚b"#, r#"a᷺̠̖֚b"#, r#"a᷺̠̖֚b"#, r#"a᷺̠̖֚b"#, r#"a᷺̠̖֚b"#),
+        (r#"aུ̡̡᷎b"#, r#"aུ̡̡᷎b"#, r#"aུ̡̡᷎b"#, r#"aུ̡̡᷎b"#, r#"aུ̡̡᷎b"#),
+        (r#"aུ̡̡᷎b"#, r#"aུ̡̡᷎b"#, r#"aུ̡̡᷎b"#, r#"aུ̡̡᷎b"#, r#"aུ̡̡᷎b"#),
+        (r#"aུ̡̢᷎b"#, r#"aུ̡̢᷎b"#, r#"aུ̡̢᷎b"#, r#"aུ̡̢᷎b"#, r#"aུ̡̢᷎b"#),
+        (r#"aུ̢̡᷎b"#, r#"aུ̢̡᷎b"#, r#"aུ̢̡᷎b"#, r#"aུ̢̡᷎b"#, r#"aུ̢̡᷎b"#),
+        (r#"a᷺̖̣֚b"#, r#"a᷺̖̣֚b"#, r#"a᷺̖̣֚b"#, r#"a᷺̖̣֚b"#, r#"a᷺̖̣֚b"#),
+        (r#"ạ᷺̖֚b"#, r#"ạ᷺̖֚b"#, r#"ạ᷺̖֚b"#, r#"ạ᷺̖֚b"#, r#"ạ᷺̖֚b"#),
+        (r#"a᷺̖̤֚b"#, r#"a᷺̖̤֚b"#, r#"a᷺̖̤֚b"#, r#"a᷺̖̤֚b"#, r#"a᷺̖̤֚b"#),
+        (r#"a᷺̤̖֚b"#, r#"a᷺̤̖֚b"#, r#"a᷺̤̖֚b"#, r#"a᷺̤̖֚b"#, r#"a᷺̤̖֚b"#),
+        (r#"a᷺̖̥֚b"#, r#"a᷺̖̥֚b"#, r#"a᷺̖̥֚b"#, r#"a᷺̖̥֚b"#, r#"a᷺̖̥֚b"#),
+        (r#"ḁ᷺̖֚b"#, r#"ḁ᷺̖֚b"#, r#"ḁ᷺̖֚b"#, r#"ḁ᷺̖֚b"#, r#"ḁ᷺̖֚b"#),
+        (r#"a᷺̖̦֚b"#, r#"a᷺̖̦֚b"#, r#"a᷺̖̦֚b"#, r#"a᷺̖̦֚b"#, r#"a᷺̖̦֚b"#),
+        (r#"a᷺̦̖֚b"#, r#"a᷺̦̖֚b"#, r#"a᷺̦̖֚b"#, r#"a᷺̦̖֚b"#, r#"a᷺̦̖֚b"#),
+        (r#"aུ̡̧᷎b"#, r#"aུ̡̧᷎b"#, r#"aུ̡̧᷎b"#, r#"aུ̡̧᷎b"#, r#"aུ̡̧᷎b"#),
+        (r#"aུ̧̡᷎b"#, r#"aུ̧̡᷎b"#, r#"aུ̧̡᷎b"#, r#"aུ̧̡᷎b"#, r#"aུ̧̡᷎b"#),
+        (r#"aུ̡̨᷎b"#, r#"aུ̡̨᷎b"#, r#"aུ̡̨᷎b"#, r#"aུ̡̨᷎b"#, r#"aུ̡̨᷎b"#),
+        (r#"ąུ̡᷎b"#, r#"ąུ̡᷎b"#, r#"ąུ̡᷎b"#, r#"ąུ̡᷎b"#, r#"ąུ̡᷎b"#),
+        (r#"a᷺̖̩֚b"#, r#"a᷺̖̩֚b"#, r#"a᷺̖̩֚b"#, r#"a᷺̖̩֚b"#, r#"a᷺̖̩֚b"#),
+        (r#"a᷺̩̖֚b"#, r#"a᷺̩̖֚b"#, r#"a᷺̩̖֚b"#, r#"a᷺̩̖֚b"#, r#"a᷺̩̖֚b"#),
+        (r#"a᷺̖̪֚b"#, r#"a᷺̖̪֚b"#, r#"a᷺̖̪֚b"#, r#"a᷺̖̪֚b"#, r#"a᷺̖̪֚b"#),
+        (r#"a᷺̪̖֚b"#, r#"a᷺̪̖֚b"#, r#"a᷺̪̖֚b"#, r#"a᷺̪̖֚b"#, r#"a᷺̪̖֚b"#),
+        (r#"a᷺̖̫֚b"#, r#"a᷺̖̫֚b"#, r#"a᷺̖̫֚b"#, r#"a᷺̖̫֚b"#, r#"a᷺̖̫֚b"#),
+        (r#"a᷺̫̖֚b"#, r#"a᷺̫̖֚b"#, r#"a᷺̫̖֚b"#, r#"a᷺̫̖֚b"#, r#"a᷺̫̖֚b"#),
+        (r#"a᷺̖̬֚b"#, r#"a᷺̖̬֚b"#, r#"a᷺̖̬֚b"#, r#"a᷺̖̬֚b"#, r#"a᷺̖̬֚b"#),
+        (r#"a᷺̬̖֚b"#, r#"a᷺̬̖֚b"#, r#"a᷺̬̖֚b"#, r#"a᷺̬̖֚b"#, r#"a᷺̬̖֚b"#),
+        (r#"a᷺̖̭֚b"#, r#"a᷺̖̭֚b"#, r#"a᷺̖̭֚b"#, r#"a᷺̖̭֚b"#, r#"a᷺̖̭֚b"#),
+        (r#"a᷺̭̖֚b"#, r#"a᷺̭̖֚b"#, r#"a᷺̭̖֚b"#, r#"a᷺̭̖֚b"#, r#"a᷺̭̖֚b"#),
+        (r#"a᷺̖̮֚b"#, r#"a᷺̖̮֚b"#, r#"a᷺̖̮֚b"#, r#"a᷺̖̮֚b"#, r#"a᷺̖̮֚b"#),
+        (r#"a᷺̮̖֚b"#, r#"a᷺̮̖֚b"#, r#"a᷺̮̖֚b"#, r#"a᷺̮̖֚b"#, r#"a᷺̮̖֚b"#),
+        (r#"a᷺̖̯֚b"#, r#"a᷺̖̯֚b"#, r#"a᷺̖̯֚b"#, r#"a᷺̖̯֚b"#, r#"a᷺̖̯֚b"#),
+        (r#"a᷺̯̖֚b"#, r#"a᷺̯̖֚b"#, r#"a᷺̯̖֚b"#, r#"a᷺̯̖֚b"#, r#"a᷺̯̖֚b"#),
+        (r#"a᷺̖̰֚b"#, r#"a᷺̖̰֚b"#, r#"a᷺̖̰֚b"#, r#"a᷺̖̰֚b"#, r#"a᷺̖̰֚b"#),
+        (r#"a᷺̰̖֚b"#, r#"a᷺̰̖֚b"#, r#"a᷺̰̖֚b"#, r#"a᷺̰̖֚b"#, r#"a᷺̰̖֚b"#),
+        (r#"a᷺̖̱֚b"#, r#"a᷺̖̱֚b"#, r#"a᷺̖̱֚b"#, r#"a᷺̖̱֚b"#, r#"a᷺̖̱֚b"#),
+        (r#"a᷺̱̖֚b"#, r#"a᷺̱̖֚b"#, r#"a᷺̱̖֚b"#, r#"a᷺̱̖֚b"#, r#"a᷺̱̖֚b"#),
+        (r#"a᷺̖̲֚b"#, r#"a᷺̖̲֚b"#, r#"a᷺̖̲֚b"#, r#"a᷺̖̲֚b"#, r#"a᷺̖̲֚b"#),
+        (r#"a᷺̲̖֚b"#, r#"a᷺̲̖֚b"#, r#"a᷺̲̖֚b"#, r#"a᷺̲̖֚b"#, r#"a᷺̲̖֚b"#),
+        (r#"a᷺̖̳֚b"#, r#"a᷺̖̳֚b"#, r#"a᷺̖̳֚b"#, r#"a᷺̖̳֚b"#, r#"a᷺̖̳֚b"#),
+        (r#"a᷺̳̖֚b"#, r#"a᷺̳̖֚b"#, r#"a᷺̳̖֚b"#, r#"a᷺̳̖֚b"#, r#"a᷺̳̖֚b"#),
+        (r#"a̴̴𖿰b"#, r#"a̴̴𖿰b"#, r#"a̴̴𖿰b"#, r#"a̴̴𖿰b"#, r#"a̴̴𖿰b"#),
+        (r#"a̴̴𖿰b"#, r#"a̴̴𖿰b"#, r#"a̴̴𖿰b"#, r#"a̴̴𖿰b"#, r#"a̴̴𖿰b"#),
+        (r#"a̴̵𖿰b"#, r#"a̴̵𖿰b"#, r#"a̴̵𖿰b"#, r#"a̴̵𖿰b"#, r#"a̴̵𖿰b"#),
+        (r#"a̵̴𖿰b"#, r#"a̵̴𖿰b"#, r#"a̵̴𖿰b"#, r#"a̵̴𖿰b"#, r#"a̵̴𖿰b"#),
+        (r#"a̴̶𖿰b"#, r#"a̴̶𖿰b"#, r#"a̴̶𖿰b"#, r#"a̴̶𖿰b"#, r#"a̴̶𖿰b"#),
+        (r#"a̶̴𖿰b"#, r#"a̶̴𖿰b"#, r#"a̶̴𖿰b"#, r#"a̶̴𖿰b"#, r#"a̶̴𖿰b"#),
+        (r#"a̴̷𖿰b"#, r#"a̴̷𖿰b"#, r#"a̴̷𖿰b"#, r#"a̴̷𖿰b"#, r#"a̴̷𖿰b"#),
+        (r#"a̷̴𖿰b"#, r#"a̷̴𖿰b"#, r#"a̷̴𖿰b"#, r#"a̷̴𖿰b"#, r#"a̷̴𖿰b"#),
+        (r#"a̴̸𖿰b"#, r#"a̴̸𖿰b"#, r#"a̴̸𖿰b"#, r#"a̴̸𖿰b"#, r#"a̴̸𖿰b"#),
+        (r#"a̸̴𖿰b"#, r#"a̸̴𖿰b"#, r#"a̸̴𖿰b"#, r#"a̸̴𖿰b"#, r#"a̸̴𖿰b"#),
+        (r#"a᷺̖̹֚b"#, r#"a᷺̖̹֚b"#, r#"a᷺̖̹֚b"#, r#"a᷺̖̹֚b"#, r#"a᷺̖̹֚b"#),
+        (r#"a᷺̹̖֚b"#, r#"a᷺̹̖֚b"#, r#"a᷺̹̖֚b"#, r#"a᷺̹̖֚b"#, r#"a᷺̹̖֚b"#),
+        (r#"a᷺̖̺֚b"#, r#"a᷺̖̺֚b"#, r#"a᷺̖̺֚b"#, r#"a᷺̖̺֚b"#, r#"a᷺̖̺֚b"#),
+        (r#"a᷺̺̖֚b"#, r#"a᷺̺̖֚b"#, r#"a᷺̺̖֚b"#, r#"a᷺̺̖֚b"#, r#"a᷺̺̖֚b"#),
+        (r#"a᷺̖̻֚b"#, r#"a᷺̖̻֚b"#, r#"a᷺̖̻֚b"#, r#"a᷺̖̻֚b"#, r#"a᷺̖̻֚b"#),
+        (r#"a᷺̻̖֚b"#, r#"a᷺̻̖֚b"#, r#"a᷺̻̖֚b"#, r#"a᷺̻̖֚b"#, r#"a᷺̻̖֚b"#),
+        (r#"a᷺̖̼֚b"#, r#"a᷺̖̼֚b"#, r#"a᷺̖̼֚b"#, r#"a᷺̖̼֚b"#, r#"a᷺̖̼֚b"#),
+        (r#"a᷺̼̖֚b"#, r#"a᷺̼̖֚b"#, r#"a᷺̼̖֚b"#, r#"a᷺̼̖֚b"#, r#"a᷺̼̖֚b"#),
+        (r#"à֮̽̕b"#, r#"à֮̽̕b"#, r#"à֮̽̕b"#, r#"à֮̽̕b"#, r#"à֮̽̕b"#),
+        (r#"a֮̽̀̕b"#, r#"a֮̽̀̕b"#, r#"a֮̽̀̕b"#, r#"a֮̽̀̕b"#, r#"a֮̽̀̕b"#),
+        (r#"à֮̾̕b"#, r#"à֮̾̕b"#, r#"à֮̾̕b"#, r#"à֮̾̕b"#, r#"à֮̾̕b"#),
+        (r#"a֮̾̀̕b"#, r#"a֮̾̀̕b"#, r#"a֮̾̀̕b"#, r#"a֮̾̀̕b"#, r#"a֮̾̀̕b"#),
+        (r#"à֮̿̕b"#, r#"à֮̿̕b"#, r#"à֮̿̕b"#, r#"à֮̿̕b"#, r#"à֮̿̕b"#),
+        (r#"a֮̿̀̕b"#, r#"a֮̿̀̕b"#, r#"a֮̿̀̕b"#, r#"a֮̿̀̕b"#, r#"a֮̿̀̕b"#),
+        (r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#),
+        (r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#, r#"à֮̀̕b"#),
+        (r#"à֮́̕b"#, r#"à֮́̕b"#, r#"à֮́̕b"#, r#"à֮́̕b"#, r#"à֮́̕b"#),
+        (r#"á֮̀̕b"#, r#"á֮̀̕b"#, r#"á֮̀̕b"#, r#"á֮̀̕b"#, r#"á֮̀̕b"#),
+        (r#"à֮͂̕b"#, r#"à֮͂̕b"#, r#"à֮͂̕b"#, r#"à֮͂̕b"#, r#"à֮͂̕b"#),
+        (r#"a֮͂̀̕b"#, r#"a֮͂̀̕b"#, r#"a֮͂̀̕b"#, r#"a֮͂̀̕b"#, r#"a֮͂̀̕b"#),
+        (r#"à֮̓̕b"#, r#"à֮̓̕b"#, r#"à֮̓̕b"#, r#"à֮̓̕b"#, r#"à֮̓̕b"#),
+        (r#"a֮̓̀̕b"#, r#"a֮̓̀̕b"#, r#"a֮̓̀̕b"#, r#"a֮̓̀̕b"#, r#"a֮̓̀̕b"#),
+        (r#"à֮̈́̕b"#, r#"à֮̈́̕b"#, r#"à֮̈́̕b"#, r#"à֮̈́̕b"#, r#"à֮̈́̕b"#),
+        (r#"ä֮́̀̕b"#, r#"ä֮́̀̕b"#, r#"ä֮́̀̕b"#, r#"ä֮́̀̕b"#, r#"ä֮́̀̕b"#),
+        (r#"a͝ͅͅb"#, r#"a͝ͅͅb"#, r#"a͝ͅͅb"#, r#"a͝ͅͅb"#, r#"a͝ͅͅb"#),
+        (r#"a͝ͅͅb"#, r#"a͝ͅͅb"#, r#"a͝ͅͅb"#, r#"a͝ͅͅb"#, r#"a͝ͅͅb"#),
+        (r#"à֮͆̕b"#, r#"à֮͆̕b"#, r#"à֮͆̕b"#, r#"à֮͆̕b"#, r#"à֮͆̕b"#),
+        (r#"a֮͆̀̕b"#, r#"a֮͆̀̕b"#, r#"a֮͆̀̕b"#, r#"a֮͆̀̕b"#, r#"a֮͆̀̕b"#),
+        (r#"a᷺̖͇֚b"#, r#"a᷺̖͇֚b"#, r#"a᷺̖͇֚b"#, r#"a᷺̖͇֚b"#, r#"a᷺̖͇֚b"#),
+        (r#"a᷺͇̖֚b"#, r#"a᷺͇̖֚b"#, r#"a᷺͇̖֚b"#, r#"a᷺͇̖֚b"#, r#"a᷺͇̖֚b"#),
+        (r#"a᷺̖͈֚b"#, r#"a᷺̖͈֚b"#, r#"a᷺̖͈֚b"#, r#"a᷺̖͈֚b"#, r#"a᷺̖͈֚b"#),
+        (r#"a᷺͈̖֚b"#, r#"a᷺͈̖֚b"#, r#"a᷺͈̖֚b"#, r#"a᷺͈̖֚b"#, r#"a᷺͈̖֚b"#),
+        (r#"a᷺̖͉֚b"#, r#"a᷺̖͉֚b"#, r#"a᷺̖͉֚b"#, r#"a᷺̖͉֚b"#, r#"a᷺̖͉֚b"#),
+        (r#"a᷺͉̖֚b"#, r#"a᷺͉̖֚b"#, r#"a᷺͉̖֚b"#, r#"a᷺͉̖֚b"#, r#"a᷺͉̖֚b"#),
+        (r#"à֮͊̕b"#, r#"à֮͊̕b"#, r#"à֮͊̕b"#, r#"à֮͊̕b"#, r#"à֮͊̕b"#),
+        (r#"a֮͊̀̕b"#, r#"a֮͊̀̕b"#, r#"a֮͊̀̕b"#, r#"a֮͊̀̕b"#, r#"a֮͊̀̕b"#),
+        (r#"à֮͋̕b"#, r#"à֮͋̕b"#, r#"à֮͋̕b"#, r#"à֮͋̕b"#, r#"à֮͋̕b"#),
+        (r#"a֮͋̀̕b"#, r#"a֮͋̀̕b"#, r#"a֮͋̀̕b"#, r#"a֮͋̀̕b"#, r#"a֮͋̀̕b"#),
+        (r#"à֮͌̕b"#, r#"à֮͌̕b"#, r#"à֮͌̕b"#, r#"à֮͌̕b"#, r#"à֮͌̕b"#),
+        (r#"a֮͌̀̕b"#, r#"a֮͌̀̕b"#, r#"a֮͌̀̕b"#, r#"a֮͌̀̕b"#, r#"a֮͌̀̕b"#),
+        (r#"a᷺̖͍֚b"#, r#"a᷺̖͍֚b"#, r#"a᷺̖͍֚b"#, r#"a᷺̖͍֚b"#, r#"a᷺̖͍֚b"#),
+        (r#"a᷺͍̖֚b"#, r#"a᷺͍̖֚b"#, r#"a᷺͍̖֚b"#, r#"a᷺͍̖֚b"#, r#"a᷺͍̖֚b"#),
+        (r#"a᷺̖͎֚b"#, r#"a᷺̖͎֚b"#, r#"a᷺̖͎֚b"#, r#"a᷺̖͎֚b"#, r#"a᷺̖͎֚b"#),
+        (r#"a᷺͎̖֚b"#, r#"a᷺͎̖֚b"#, r#"a᷺͎̖֚b"#, r#"a᷺͎̖֚b"#, r#"a᷺͎̖֚b"#),
+        (r#"à֮͐̕b"#, r#"à֮͐̕b"#, r#"à֮͐̕b"#, r#"à֮͐̕b"#, r#"à֮͐̕b"#),
+        (r#"a֮͐̀̕b"#, r#"a֮͐̀̕b"#, r#"a֮͐̀̕b"#, r#"a֮͐̀̕b"#, r#"a֮͐̀̕b"#),
+        (r#"à֮͑̕b"#, r#"à֮͑̕b"#, r#"à֮͑̕b"#, r#"à֮͑̕b"#, r#"à֮͑̕b"#),
+        (r#"a֮͑̀̕b"#, r#"a֮͑̀̕b"#, r#"a֮͑̀̕b"#, r#"a֮͑̀̕b"#, r#"a֮͑̀̕b"#),
+        (r#"à֮͒̕b"#, r#"à֮͒̕b"#, r#"à֮͒̕b"#, r#"à֮͒̕b"#, r#"à֮͒̕b"#),
+        (r#"a֮͒̀̕b"#, r#"a֮͒̀̕b"#, r#"a֮͒̀̕b"#, r#"a֮͒̀̕b"#, r#"a֮͒̀̕b"#),
+        (r#"a᷺̖͓֚b"#, r#"a᷺̖͓֚b"#, r#"a᷺̖͓֚b"#, r#"a᷺̖͓֚b"#, r#"a᷺̖͓֚b"#),
+        (r#"a᷺͓̖֚b"#, r#"a᷺͓̖֚b"#, r#"a᷺͓̖֚b"#, r#"a᷺͓̖֚b"#, r#"a᷺͓̖֚b"#),
+        (r#"a᷺̖͔֚b"#, r#"a᷺̖͔֚b"#, r#"a᷺̖͔֚b"#, r#"a᷺̖͔֚b"#, r#"a᷺̖͔֚b"#),
+        (r#"a᷺͔̖֚b"#, r#"a᷺͔̖֚b"#, r#"a᷺͔̖֚b"#, r#"a᷺͔̖֚b"#, r#"a᷺͔̖֚b"#),
+        (r#"a᷺̖͕֚b"#, r#"a᷺̖͕֚b"#, r#"a᷺̖͕֚b"#, r#"a᷺̖͕֚b"#, r#"a᷺̖͕֚b"#),
+        (r#"a᷺͕̖֚b"#, r#"a᷺͕̖֚b"#, r#"a᷺͕̖֚b"#, r#"a᷺͕̖֚b"#, r#"a᷺͕̖֚b"#),
+        (r#"a᷺̖͖֚b"#, r#"a᷺̖͖֚b"#, r#"a᷺̖͖֚b"#, r#"a᷺̖͖֚b"#, r#"a᷺̖͖֚b"#),
+        (r#"a᷺͖̖֚b"#, r#"a᷺͖̖֚b"#, r#"a᷺͖̖֚b"#, r#"a᷺͖̖֚b"#, r#"a᷺͖̖֚b"#),
+        (r#"à֮͗̕b"#, r#"à֮͗̕b"#, r#"à֮͗̕b"#, r#"à֮͗̕b"#, r#"à֮͗̕b"#),
+        (r#"a֮͗̀̕b"#, r#"a֮͗̀̕b"#, r#"a֮͗̀̕b"#, r#"a֮͗̀̕b"#, r#"a֮͗̀̕b"#),
+        (r#"à̕͘͜b"#, r#"à̕͘͜b"#, r#"à̕͘͜b"#, r#"à̕͘͜b"#, r#"à̕͘͜b"#),
+        (r#"à͘̕͜b"#, r#"à͘̕͜b"#, r#"à͘̕͜b"#, r#"à͘̕͜b"#, r#"à͘̕͜b"#),
+        (r#"a᷺̖͙֚b"#, r#"a᷺̖͙֚b"#, r#"a᷺̖͙֚b"#, r#"a᷺̖͙֚b"#, r#"a᷺̖͙֚b"#),
+        (r#"a᷺͙̖֚b"#, r#"a᷺͙̖֚b"#, r#"a᷺͙̖֚b"#, r#"a᷺͙̖֚b"#, r#"a᷺͙̖֚b"#),
+        (r#"a᷺̖͚֚b"#, r#"a᷺̖͚֚b"#, r#"a᷺̖͚֚b"#, r#"a᷺̖͚֚b"#, r#"a᷺̖͚֚b"#),
+        (r#"a᷺͚̖֚b"#, r#"a᷺͚̖֚b"#, r#"a᷺͚̖֚b"#, r#"a᷺͚̖֚b"#, r#"a᷺͚̖֚b"#),
+        (r#"à֮͛̕b"#, r#"à֮͛̕b"#, r#"à֮͛̕b"#, r#"à֮͛̕b"#, r#"à֮͛̕b"#),
+        (r#"a֮͛̀̕b"#, r#"a֮͛̀̕b"#, r#"a֮͛̀̕b"#, r#"a֮͛̀̕b"#, r#"a֮͛̀̕b"#),
+        (r#"a̕͜͜͝b"#, r#"a̕͜͜͝b"#, r#"a̕͜͜͝b"#, r#"a̕͜͜͝b"#, r#"a̕͜͜͝b"#),
+        (r#"a̕͜͜͝b"#, r#"a̕͜͜͝b"#, r#"a̕͜͜͝b"#, r#"a̕͜͜͝b"#, r#"a̕͜͜͝b"#),
+        (r#"a͜͝͝ͅb"#, r#"a͜͝͝ͅb"#, r#"a͜͝͝ͅb"#, r#"a͜͝͝ͅb"#, r#"a͜͝͝ͅb"#),
+        (r#"a͜͝͝ͅb"#, r#"a͜͝͝ͅb"#, r#"a͜͝͝ͅb"#, r#"a͜͝͝ͅb"#, r#"a͜͝͝ͅb"#),
+        (r#"a͜͝͞ͅb"#, r#"a͜͝͞ͅb"#, r#"a͜͝͞ͅb"#, r#"a͜͝͞ͅb"#, r#"a͜͝͞ͅb"#),
+        (r#"a͜͞͝ͅb"#, r#"a͜͞͝ͅb"#, r#"a͜͞͝ͅb"#, r#"a͜͞͝ͅb"#, r#"a͜͞͝ͅb"#),
+        (r#"a̕͜͟͝b"#, r#"a̕͜͟͝b"#, r#"a̕͜͟͝b"#, r#"a̕͜͟͝b"#, r#"a̕͜͟͝b"#),
+        (r#"a̕͟͜͝b"#, r#"a̕͟͜͝b"#, r#"a̕͟͜͝b"#, r#"a̕͟͜͝b"#, r#"a̕͟͜͝b"#),
+        (r#"a͜͝͠ͅb"#, r#"a͜͝͠ͅb"#, r#"a͜͝͠ͅb"#, r#"a͜͝͠ͅb"#, r#"a͜͝͠ͅb"#),
+        (r#"a͜͠͝ͅb"#, r#"a͜͠͝ͅb"#, r#"a͜͠͝ͅb"#, r#"a͜͠͝ͅb"#, r#"a͜͠͝ͅb"#),
+        (r#"a͜͝͡ͅb"#, r#"a͜͝͡ͅb"#, r#"a͜͝͡ͅb"#, r#"a͜͝͡ͅb"#, r#"a͜͝͡ͅb"#),
+        (r#"a͜͡͝ͅb"#, r#"a͜͡͝ͅb"#, r#"a͜͡͝ͅb"#, r#"a͜͡͝ͅb"#, r#"a͜͡͝ͅb"#),
+        (r#"a̕͜͢͝b"#, r#"a̕͜͢͝b"#, r#"a̕͜͢͝b"#, r#"a̕͜͢͝b"#, r#"a̕͜͢͝b"#),
+        (r#"a̕͢͜͝b"#, r#"a̕͢͜͝b"#, r#"a̕͢͜͝b"#, r#"a̕͢͜͝b"#, r#"a̕͢͜͝b"#),
+        (r#"à֮ͣ̕b"#, r#"à֮ͣ̕b"#, r#"à֮ͣ̕b"#, r#"à֮ͣ̕b"#, r#"à֮ͣ̕b"#),
+        (r#"a֮ͣ̀̕b"#, r#"a֮ͣ̀̕b"#, r#"a֮ͣ̀̕b"#, r#"a֮ͣ̀̕b"#, r#"a֮ͣ̀̕b"#),
+        (r#"à֮ͤ̕b"#, r#"à֮ͤ̕b"#, r#"à֮ͤ̕b"#, r#"à֮ͤ̕b"#, r#"à֮ͤ̕b"#),
+        (r#"a֮ͤ̀̕b"#, r#"a֮ͤ̀̕b"#, r#"a֮ͤ̀̕b"#, r#"a֮ͤ̀̕b"#, r#"a֮ͤ̀̕b"#),
+        (r#"à֮ͥ̕b"#, r#"à֮ͥ̕b"#, r#"à֮ͥ̕b"#, r#"à֮ͥ̕b"#, r#"à֮ͥ̕b"#),
+        (r#"a֮ͥ̀̕b"#, r#"a֮ͥ̀̕b"#, r#"a֮ͥ̀̕b"#, r#"a֮ͥ̀̕b"#, r#"a֮ͥ̀̕b"#),
+        (r#"à֮ͦ̕b"#, r#"à֮ͦ̕b"#, r#"à֮ͦ̕b"#, r#"à֮ͦ̕b"#, r#"à֮ͦ̕b"#),
+        (r#"a֮ͦ̀̕b"#, r#"a֮ͦ̀̕b"#, r#"a֮ͦ̀̕b"#, r#"a֮ͦ̀̕b"#, r#"a֮ͦ̀̕b"#),
+        (r#"à֮ͧ̕b"#, r#"à֮ͧ̕b"#, r#"à֮ͧ̕b"#, r#"à֮ͧ̕b"#, r#"à֮ͧ̕b"#),
+        (r#"a֮ͧ̀̕b"#, r#"a֮ͧ̀̕b"#, r#"a֮ͧ̀̕b"#, r#"a֮ͧ̀̕b"#, r#"a֮ͧ̀̕b"#),
+        (r#"à֮ͨ̕b"#, r#"à֮ͨ̕b"#, r#"à֮ͨ̕b"#, r#"à֮ͨ̕b"#, r#"à֮ͨ̕b"#),
+        (r#"a֮ͨ̀̕b"#, r#"a֮ͨ̀̕b"#, r#"a֮ͨ̀̕b"#, r#"a֮ͨ̀̕b"#, r#"a֮ͨ̀̕b"#),
+        (r#"à֮ͩ̕b"#, r#"à֮ͩ̕b"#, r#"à֮ͩ̕b"#, r#"à֮ͩ̕b"#, r#"à֮ͩ̕b"#),
+        (r#"a֮ͩ̀̕b"#, r#"a֮ͩ̀̕b"#, r#"a֮ͩ̀̕b"#, r#"a֮ͩ̀̕b"#, r#"a֮ͩ̀̕b"#),
+        (r#"à֮ͪ̕b"#, r#"à֮ͪ̕b"#, r#"à֮ͪ̕b"#, r#"à֮ͪ̕b"#, r#"à֮ͪ̕b"#),
+        (r#"a֮ͪ̀̕b"#, r#"a֮ͪ̀̕b"#, r#"a֮ͪ̀̕b"#, r#"a֮ͪ̀̕b"#, r#"a֮ͪ̀̕b"#),
+        (r#"à֮ͫ̕b"#, r#"à֮ͫ̕b"#, r#"à֮ͫ̕b"#, r#"à֮ͫ̕b"#, r#"à֮ͫ̕b"#),
+        (r#"a֮ͫ̀̕b"#, r#"a֮ͫ̀̕b"#, r#"a֮ͫ̀̕b"#, r#"a֮ͫ̀̕b"#, r#"a֮ͫ̀̕b"#),
+        (r#"à֮ͬ̕b"#, r#"à֮ͬ̕b"#, r#"à֮ͬ̕b"#, r#"à֮ͬ̕b"#, r#"à֮ͬ̕b"#),
+        (r#"a֮ͬ̀̕b"#, r#"a֮ͬ̀̕b"#, r#"a֮ͬ̀̕b"#, r#"a֮ͬ̀̕b"#, r#"a֮ͬ̀̕b"#),
+        (r#"à֮ͭ̕b"#, r#"à֮ͭ̕b"#, r#"à֮ͭ̕b"#, r#"à֮ͭ̕b"#, r#"à֮ͭ̕b"#),
+        (r#"a֮ͭ̀̕b"#, r#"a֮ͭ̀̕b"#, r#"a֮ͭ̀̕b"#, r#"a֮ͭ̀̕b"#, r#"a֮ͭ̀̕b"#),
+        (r#"à֮ͮ̕b"#, r#"à֮ͮ̕b"#, r#"à֮ͮ̕b"#, r#"à֮ͮ̕b"#, r#"à֮ͮ̕b"#),
+        (r#"a֮ͮ̀̕b"#, r#"a֮ͮ̀̕b"#, r#"a֮ͮ̀̕b"#, r#"a֮ͮ̀̕b"#, r#"a֮ͮ̀̕b"#),
+        (r#"à֮ͯ̕b"#, r#"à֮ͯ̕b"#, r#"à֮ͯ̕b"#, r#"à֮ͯ̕b"#, r#"à֮ͯ̕b"#),
+        (r#"a֮ͯ̀̕b"#, r#"a֮ͯ̀̕b"#, r#"a֮ͯ̀̕b"#, r#"a֮ͯ̀̕b"#, r#"a֮ͯ̀̕b"#),
+        (r#"à֮҃̕b"#, r#"à֮҃̕b"#, r#"à֮҃̕b"#, r#"à֮҃̕b"#, r#"à֮҃̕b"#),
+        (r#"a֮҃̀̕b"#, r#"a֮҃̀̕b"#, r#"a֮҃̀̕b"#, r#"a֮҃̀̕b"#, r#"a֮҃̀̕b"#),
+        (r#"à֮҄̕b"#, r#"à֮҄̕b"#, r#"à֮҄̕b"#, r#"à֮҄̕b"#, r#"à֮҄̕b"#),
+        (r#"a֮҄̀̕b"#, r#"a֮҄̀̕b"#, r#"a֮҄̀̕b"#, r#"a֮҄̀̕b"#, r#"a֮҄̀̕b"#),
+        (r#"à֮҅̕b"#, r#"à֮҅̕b"#, r#"à֮҅̕b"#, r#"à֮҅̕b"#, r#"à֮҅̕b"#),
+        (r#"a֮҅̀̕b"#, r#"a֮҅̀̕b"#, r#"a֮҅̀̕b"#, r#"a֮҅̀̕b"#, r#"a֮҅̀̕b"#),
+        (r#"à֮҆̕b"#, r#"à֮҆̕b"#, r#"à֮҆̕b"#, r#"à֮҆̕b"#, r#"à֮҆̕b"#),
+        (r#"a֮҆̀̕b"#, r#"a֮҆̀̕b"#, r#"a֮҆̀̕b"#, r#"a֮҆̀̕b"#, r#"a֮҆̀̕b"#),
+        (r#"à֮҇̕b"#, r#"à֮҇̕b"#, r#"à֮҇̕b"#, r#"à֮҇̕b"#, r#"à֮҇̕b"#),
+        (r#"a֮҇̀̕b"#, r#"a֮҇̀̕b"#, r#"a֮҇̀̕b"#, r#"a֮҇̀̕b"#, r#"a֮҇̀̕b"#),
+        (r#"a᷺̖֑֚b"#, r#"a᷺̖֑֚b"#, r#"a᷺̖֑֚b"#, r#"a᷺̖֑֚b"#, r#"a᷺̖֑֚b"#),
+        (r#"a᷺֑̖֚b"#, r#"a᷺֑̖֚b"#, r#"a᷺֑̖֚b"#, r#"a᷺֑̖֚b"#, r#"a᷺֑̖֚b"#),
+        (r#"à֮֒̕b"#, r#"à֮֒̕b"#, r#"à֮֒̕b"#, r#"à֮֒̕b"#, r#"à֮֒̕b"#),
+        (r#"a֮֒̀̕b"#, r#"a֮֒̀̕b"#, r#"a֮֒̀̕b"#, r#"a֮֒̀̕b"#, r#"a֮֒̀̕b"#),
+        (r#"à֮֓̕b"#, r#"à֮֓̕b"#, r#"à֮֓̕b"#, r#"à֮֓̕b"#, r#"à֮֓̕b"#),
+        (r#"a֮֓̀̕b"#, r#"a֮֓̀̕b"#, r#"a֮֓̀̕b"#, r#"a֮֓̀̕b"#, r#"a֮֓̀̕b"#),
+        (r#"à֮֔̕b"#, r#"à֮֔̕b"#, r#"à֮֔̕b"#, r#"à֮֔̕b"#, r#"à֮֔̕b"#),
+        (r#"a֮֔̀̕b"#, r#"a֮֔̀̕b"#, r#"a֮֔̀̕b"#, r#"a֮֔̀̕b"#, r#"a֮֔̀̕b"#),
+        (r#"à֮֕̕b"#, r#"à֮֕̕b"#, r#"à֮֕̕b"#, r#"à֮֕̕b"#, r#"à֮֕̕b"#),
+        (r#"a֮֕̀̕b"#, r#"a֮֕̀̕b"#, r#"a֮֕̀̕b"#, r#"a֮֕̀̕b"#, r#"a֮֕̀̕b"#),
+        (r#"a᷺̖֖֚b"#, r#"a᷺̖֖֚b"#, r#"a᷺̖֖֚b"#, r#"a᷺̖֖֚b"#, r#"a᷺̖֖֚b"#),
+        (r#"a᷺֖̖֚b"#, r#"a᷺֖̖֚b"#, r#"a᷺֖̖֚b"#, r#"a᷺֖̖֚b"#, r#"a᷺֖̖֚b"#),
+        (r#"à֮֗̕b"#, r#"à֮֗̕b"#, r#"à֮֗̕b"#, r#"à֮֗̕b"#, r#"à֮֗̕b"#),
+        (r#"a֮֗̀̕b"#, r#"a֮֗̀̕b"#, r#"a֮֗̀̕b"#, r#"a֮֗̀̕b"#, r#"a֮֗̀̕b"#),
+        (r#"à֮֘̕b"#, r#"à֮֘̕b"#, r#"à֮֘̕b"#, r#"à֮֘̕b"#, r#"à֮֘̕b"#),
+        (r#"a֮֘̀̕b"#, r#"a֮֘̀̕b"#, r#"a֮֘̀̕b"#, r#"a֮֘̀̕b"#, r#"a֮֘̀̕b"#),
+        (r#"à֮֙̕b"#, r#"à֮֙̕b"#, r#"à֮֙̕b"#, r#"à֮֙̕b"#, r#"à֮֙̕b"#),
+        (r#"a֮֙̀̕b"#, r#"a֮֙̀̕b"#, r#"a֮֙̀̕b"#, r#"a֮֙̀̕b"#, r#"a֮֙̀̕b"#),
+        (r#"a̖֚֚〮b"#, r#"a̖֚֚〮b"#, r#"a̖֚֚〮b"#, r#"a̖֚֚〮b"#, r#"a̖֚֚〮b"#),
+        (r#"a̖֚֚〮b"#, r#"a̖֚֚〮b"#, r#"a̖֚֚〮b"#, r#"a̖֚֚〮b"#, r#"a̖֚֚〮b"#),
+        (r#"a᷺̖֛֚b"#, r#"a᷺̖֛֚b"#, r#"a᷺̖֛֚b"#, r#"a᷺̖֛֚b"#, r#"a᷺̖֛֚b"#),
+        (r#"a᷺֛̖֚b"#, r#"a᷺֛̖֚b"#, r#"a᷺֛̖֚b"#, r#"a᷺֛̖֚b"#, r#"a᷺֛̖֚b"#),
+        (r#"à֮֜̕b"#, r#"à֮֜̕b"#, r#"à֮֜̕b"#, r#"à֮֜̕b"#, r#"à֮֜̕b"#),
+        (r#"a֮֜̀̕b"#, r#"a֮֜̀̕b"#, r#"a֮֜̀̕b"#, r#"a֮֜̀̕b"#, r#"a֮֜̀̕b"#),
+        (r#"à֮֝̕b"#, r#"à֮֝̕b"#, r#"à֮֝̕b"#, r#"à֮֝̕b"#, r#"à֮֝̕b"#),
+        (r#"a֮֝̀̕b"#, r#"a֮֝̀̕b"#, r#"a֮֝̀̕b"#, r#"a֮֝̀̕b"#, r#"a֮֝̀̕b"#),
+        (r#"à֮֞̕b"#, r#"à֮֞̕b"#, r#"à֮֞̕b"#, r#"à֮֞̕b"#, r#"à֮֞̕b"#),
+        (r#"a֮֞̀̕b"#, r#"a֮֞̀̕b"#, r#"a֮֞̀̕b"#, r#"a֮֞̀̕b"#, r#"a֮֞̀̕b"#),
+        (r#"à֮֟̕b"#, r#"à֮֟̕b"#, r#"à֮֟̕b"#, r#"à֮֟̕b"#, r#"à֮֟̕b"#),
+        (r#"a֮֟̀̕b"#, r#"a֮֟̀̕b"#, r#"a֮֟̀̕b"#, r#"a֮֟̀̕b"#, r#"a֮֟̀̕b"#),
+        (r#"à֮֠̕b"#, r#"à֮֠̕b"#, r#"à֮֠̕b"#, r#"à֮֠̕b"#, r#"à֮֠̕b"#),
+        (r#"a֮֠̀̕b"#, r#"a֮֠̀̕b"#, r#"a֮֠̀̕b"#, r#"a֮֠̀̕b"#, r#"a֮֠̀̕b"#),
+        (r#"à֮֡̕b"#, r#"à֮֡̕b"#, r#"à֮֡̕b"#, r#"à֮֡̕b"#, r#"à֮֡̕b"#),
+        (r#"a֮֡̀̕b"#, r#"a֮֡̀̕b"#, r#"a֮֡̀̕b"#, r#"a֮֡̀̕b"#, r#"a֮֡̀̕b"#),
+        (r#"a᷺̖֢֚b"#, r#"a᷺̖֢֚b"#, r#"a᷺̖֢֚b"#, r#"a᷺̖֢֚b"#, r#"a᷺̖֢֚b"#),
+        (r#"a᷺֢̖֚b"#, r#"a᷺֢̖֚b"#, r#"a᷺֢̖֚b"#, r#"a᷺֢̖֚b"#, r#"a᷺֢̖֚b"#),
+        (r#"a᷺̖֣֚b"#, r#"a᷺̖֣֚b"#, r#"a᷺̖֣֚b"#, r#"a᷺̖֣֚b"#, r#"a᷺̖֣֚b"#),
+        (r#"a᷺֣̖֚b"#, r#"a᷺֣̖֚b"#, r#"a᷺֣̖֚b"#, r#"a᷺֣̖֚b"#, r#"a᷺֣̖֚b"#),
+        (r#"a᷺̖֤֚b"#, r#"a᷺̖֤֚b"#, r#"a᷺̖֤֚b"#, r#"a᷺̖֤֚b"#, r#"a᷺̖֤֚b"#),
+        (r#"a᷺֤̖֚b"#, r#"a᷺֤̖֚b"#, r#"a᷺֤̖֚b"#, r#"a᷺֤̖֚b"#, r#"a᷺֤̖֚b"#),
+        (r#"a᷺̖֥֚b"#, r#"a᷺̖֥֚b"#, r#"a᷺̖֥֚b"#, r#"a᷺̖֥֚b"#, r#"a᷺̖֥֚b"#),
+        (r#"a᷺֥̖֚b"#, r#"a᷺֥̖֚b"#, r#"a᷺֥̖֚b"#, r#"a᷺֥̖֚b"#, r#"a᷺֥̖֚b"#),
+        (r#"a᷺̖֦֚b"#, r#"a᷺̖֦֚b"#, r#"a᷺̖֦֚b"#, r#"a᷺̖֦֚b"#, r#"a᷺̖֦֚b"#),
+        (r#"a᷺֦̖֚b"#, r#"a᷺֦̖֚b"#, r#"a᷺֦̖֚b"#, r#"a᷺֦̖֚b"#, r#"a᷺֦̖֚b"#),
+        (r#"a᷺̖֧֚b"#, r#"a᷺̖֧֚b"#, r#"a᷺̖֧֚b"#, r#"a᷺̖֧֚b"#, r#"a᷺̖֧֚b"#),
+        (r#"a᷺֧̖֚b"#, r#"a᷺֧̖֚b"#, r#"a᷺֧̖֚b"#, r#"a᷺֧̖֚b"#, r#"a᷺֧̖֚b"#),
+        (r#"à֮֨̕b"#, r#"à֮֨̕b"#, r#"à֮֨̕b"#, r#"à֮֨̕b"#, r#"à֮֨̕b"#),
+        (r#"a֮֨̀̕b"#, r#"a֮֨̀̕b"#, r#"a֮֨̀̕b"#, r#"a֮֨̀̕b"#, r#"a֮֨̀̕b"#),
+        (r#"à֮֩̕b"#, r#"à֮֩̕b"#, r#"à֮֩̕b"#, r#"à֮֩̕b"#, r#"à֮֩̕b"#),
+        (r#"a֮֩̀̕b"#, r#"a֮֩̀̕b"#, r#"a֮֩̀̕b"#, r#"a֮֩̀̕b"#, r#"a֮֩̀̕b"#),
+        (r#"a᷺̖֪֚b"#, r#"a᷺̖֪֚b"#, r#"a᷺̖֪֚b"#, r#"a᷺̖֪֚b"#, r#"a᷺̖֪֚b"#),
+        (r#"a᷺֪̖֚b"#, r#"a᷺֪̖֚b"#, r#"a᷺֪̖֚b"#, r#"a᷺֪̖֚b"#, r#"a᷺֪̖֚b"#),
+        (r#"à֮֫̕b"#, r#"à֮֫̕b"#, r#"à֮֫̕b"#, r#"à֮֫̕b"#, r#"à֮֫̕b"#),
+        (r#"a֮֫̀̕b"#, r#"a֮֫̀̕b"#, r#"a֮֫̀̕b"#, r#"a֮֫̀̕b"#, r#"a֮֫̀̕b"#),
+        (r#"à֮֬̕b"#, r#"à֮֬̕b"#, r#"à֮֬̕b"#, r#"à֮֬̕b"#, r#"à֮֬̕b"#),
+        (r#"a֮֬̀̕b"#, r#"a֮֬̀̕b"#, r#"a֮֬̀̕b"#, r#"a֮֬̀̕b"#, r#"a֮֬̀̕b"#),
+        (r#"a̖֚֭〮b"#, r#"a̖֚֭〮b"#, r#"a̖֚֭〮b"#, r#"a̖֚֭〮b"#, r#"a̖֚֭〮b"#),
+        (r#"a̖֭֚〮b"#, r#"a̖֭֚〮b"#, r#"a̖֭֚〮b"#, r#"a̖֭֚〮b"#, r#"a̖֭֚〮b"#),
+        (r#"à𝅭֮֮b"#, r#"à𝅭֮֮b"#, r#"à𝅭֮֮b"#, r#"à𝅭֮֮b"#, r#"à𝅭֮֮b"#),
+        (r#"à𝅭֮֮b"#, r#"à𝅭֮֮b"#, r#"à𝅭֮֮b"#, r#"à𝅭֮֮b"#, r#"à𝅭֮֮b"#),
+        (r#"à֮֯̕b"#, r#"à֮֯̕b"#, r#"à֮֯̕b"#, r#"à֮֯̕b"#, r#"à֮֯̕b"#),
+        (r#"a֮֯̀̕b"#, r#"a֮֯̀̕b"#, r#"a֮֯̀̕b"#, r#"a֮֯̀̕b"#, r#"a֮֯̀̕b"#),
+        (r#"a्ְְֱb"#, r#"a्ְְֱb"#, r#"a्ְְֱb"#, r#"a्ְְֱb"#, r#"a्ְְֱb"#),
+        (r#"a्ְְֱb"#, r#"a्ְְֱb"#, r#"a्ְְֱb"#, r#"a्ְְֱb"#, r#"a्ְְֱb"#),
+        (r#"aְֱֱֲb"#, r#"aְֱֱֲb"#, r#"aְֱֱֲb"#, r#"aְֱֱֲb"#, r#"aְֱֱֲb"#),
+        (r#"aְֱֱֲb"#, r#"aְֱֱֲb"#, r#"aְֱֱֲb"#, r#"aְֱֱֲb"#, r#"aְֱֱֲb"#),
+        (r#"aֱֲֲֳb"#, r#"aֱֲֲֳb"#, r#"aֱֲֲֳb"#, r#"aֱֲֲֳb"#, r#"aֱֲֲֳb"#),
+        (r#"aֱֲֲֳb"#, r#"aֱֲֲֳb"#, r#"aֱֲֲֳb"#, r#"aֱֲֲֳb"#, r#"aֱֲֲֳb"#),
+        (r#"aֲֳֳִb"#, r#"aֲֳֳִb"#, r#"aֲֳֳִb"#, r#"aֲֳֳִb"#, r#"aֲֳֳִb"#),
+        (r#"aֲֳֳִb"#, r#"aֲֳֳִb"#, r#"aֲֳֳִb"#, r#"aֲֳֳִb"#, r#"aֲֳֳִb"#),
+        (r#"aֳִִֵb"#, r#"aֳִִֵb"#, r#"aֳִִֵb"#, r#"aֳִִֵb"#, r#"aֳִִֵb"#),
+        (r#"aֳִִֵb"#, r#"aֳִִֵb"#, r#"aֳִִֵb"#, r#"aֳִִֵb"#, r#"aֳִִֵb"#),
+        (r#"aִֵֵֶb"#, r#"aִֵֵֶb"#, r#"aִֵֵֶb"#, r#"aִֵֵֶb"#, r#"aִֵֵֶb"#),
+        (r#"aִֵֵֶb"#, r#"aִֵֵֶb"#, r#"aִֵֵֶb"#, r#"aִֵֵֶb"#, r#"aִֵֵֶb"#),
+        (r#"aֵֶֶַb"#, r#"aֵֶֶַb"#, r#"aֵֶֶַb"#, r#"aֵֶֶַb"#, r#"aֵֶֶַb"#),
+        (r#"aֵֶֶַb"#, r#"aֵֶֶַb"#, r#"aֵֶֶַb"#, r#"aֵֶֶַb"#, r#"aֵֶֶַb"#),
+        (r#"aֶַַָb"#, r#"aֶַַָb"#, r#"aֶַַָb"#, r#"aֶַַָb"#, r#"aֶַַָb"#),
+        (r#"aֶַַָb"#, r#"aֶַַָb"#, r#"aֶַַָb"#, r#"aֶַַָb"#, r#"aֶַַָb"#),
+        (r#"aַָָֹb"#, r#"aַָָֹb"#, r#"aַָָֹb"#, r#"aַָָֹb"#, r#"aַָָֹb"#),
+        (r#"aַָָֹb"#, r#"aַָָֹb"#, r#"aַָָֹb"#, r#"aַָָֹb"#, r#"aַָָֹb"#),
+        (r#"aָֹֹֻb"#, r#"aָֹֹֻb"#, r#"aָֹֹֻb"#, r#"aָֹֹֻb"#, r#"aָֹֹֻb"#),
+        (r#"aָֹֹֻb"#, r#"aָֹֹֻb"#, r#"aָֹֹֻb"#, r#"aָֹֹֻb"#, r#"aָֹֹֻb"#),
+        (r#"aָֹֺֻb"#, r#"aָֹֺֻb"#, r#"aָֹֺֻb"#, r#"aָֹֺֻb"#, r#"aָֹֺֻb"#),
+        (r#"aָֺֹֻb"#, r#"aָֺֹֻb"#, r#"aָֺֹֻb"#, r#"aָֺֹֻb"#, r#"aָֺֹֻb"#),
+        (r#"aֹֻֻּb"#, r#"aֹֻֻּb"#, r#"aֹֻֻּb"#, r#"aֹֻֻּb"#, r#"aֹֻֻּb"#),
+        (r#"aֹֻֻּb"#, r#"aֹֻֻּb"#, r#"aֹֻֻּb"#, r#"aֹֻֻּb"#, r#"aֹֻֻּb"#),
+        (r#"aֻּּֽb"#, r#"aֻּּֽb"#, r#"aֻּּֽb"#, r#"aֻּּֽb"#, r#"aֻּּֽb"#),
+        (r#"aֻּּֽb"#, r#"aֻּּֽb"#, r#"aֻּּֽb"#, r#"aֻּּֽb"#, r#"aֻּּֽb"#),
+        (r#"aּֽֽֿb"#, r#"aּֽֽֿb"#, r#"aּֽֽֿb"#, r#"aּֽֽֿb"#, r#"aּֽֽֿb"#),
+        (r#"aּֽֽֿb"#, r#"aּֽֽֿb"#, r#"aּֽֽֿb"#, r#"aּֽֽֿb"#, r#"aּֽֽֿb"#),
+        (r#"aֽֿֿׁb"#, r#"aֽֿֿׁb"#, r#"aֽֿֿׁb"#, r#"aֽֿֿׁb"#, r#"aֽֿֿׁb"#),
+        (r#"aֽֿֿׁb"#, r#"aֽֿֿׁb"#, r#"aֽֿֿׁb"#, r#"aֽֿֿׁb"#, r#"aֽֿֿׁb"#),
+        (r#"aֿׁׁׂb"#, r#"aֿׁׁׂb"#, r#"aֿׁׁׂb"#, r#"aֿׁׁׂb"#, r#"aֿׁׁׂb"#),
+        (r#"aֿׁׁׂb"#, r#"aֿׁׁׂb"#, r#"aֿׁׁׂb"#, r#"aֿׁׁׂb"#, r#"aֿׁׁׂb"#),
+        (r#"aׁׂׂﬞb"#, r#"aׁׂׂﬞb"#, r#"aׁׂׂﬞb"#, r#"aׁׂׂﬞb"#, r#"aׁׂׂﬞb"#),
+        (r#"aׁׂׂﬞb"#, r#"aׁׂׂﬞb"#, r#"aׁׂׂﬞb"#, r#"aׁׂׂﬞb"#, r#"aׁׂׂﬞb"#),
+        (r#"à֮ׄ̕b"#, r#"à֮ׄ̕b"#, r#"à֮ׄ̕b"#, r#"à֮ׄ̕b"#, r#"à֮ׄ̕b"#),
+        (r#"a֮ׄ̀̕b"#, r#"a֮ׄ̀̕b"#, r#"a֮ׄ̀̕b"#, r#"a֮ׄ̀̕b"#, r#"a֮ׄ̀̕b"#),
+        (r#"a᷺̖ׅ֚b"#, r#"a᷺̖ׅ֚b"#, r#"a᷺̖ׅ֚b"#, r#"a᷺̖ׅ֚b"#, r#"a᷺̖ׅ֚b"#),
+        (r#"a᷺ׅ̖֚b"#, r#"a᷺ׅ̖֚b"#, r#"a᷺ׅ̖֚b"#, r#"a᷺ׅ̖֚b"#, r#"a᷺ׅ̖֚b"#),
+        (r#"aַָׇֹb"#, r#"aַָׇֹb"#, r#"aַָׇֹb"#, r#"aַָׇֹb"#, r#"aַָׇֹb"#),
+        (r#"aַׇָֹb"#, r#"aַׇָֹb"#, r#"aַׇָֹb"#, r#"aַׇָֹb"#, r#"aַׇָֹb"#),
+        (r#"à֮ؐ̕b"#, r#"à֮ؐ̕b"#, r#"à֮ؐ̕b"#, r#"à֮ؐ̕b"#, r#"à֮ؐ̕b"#),
+        (r#"a֮ؐ̀̕b"#, r#"a֮ؐ̀̕b"#, r#"a֮ؐ̀̕b"#, r#"a֮ؐ̀̕b"#, r#"a֮ؐ̀̕b"#),
+        (r#"à֮ؑ̕b"#, r#"à֮ؑ̕b"#, r#"à֮ؑ̕b"#, r#"à֮ؑ̕b"#, r#"à֮ؑ̕b"#),
+        (r#"a֮ؑ̀̕b"#, r#"a֮ؑ̀̕b"#, r#"a֮ؑ̀̕b"#, r#"a֮ؑ̀̕b"#, r#"a֮ؑ̀̕b"#),
+        (r#"à֮ؒ̕b"#, r#"à֮ؒ̕b"#, r#"à֮ؒ̕b"#, r#"à֮ؒ̕b"#, r#"à֮ؒ̕b"#),
+        (r#"a֮ؒ̀̕b"#, r#"a֮ؒ̀̕b"#, r#"a֮ؒ̀̕b"#, r#"a֮ؒ̀̕b"#, r#"a֮ؒ̀̕b"#),
+        (r#"à֮ؓ̕b"#, r#"à֮ؓ̕b"#, r#"à֮ؓ̕b"#, r#"à֮ؓ̕b"#, r#"à֮ؓ̕b"#),
+        (r#"a֮ؓ̀̕b"#, r#"a֮ؓ̀̕b"#, r#"a֮ؓ̀̕b"#, r#"a֮ؓ̀̕b"#, r#"a֮ؓ̀̕b"#),
+        (r#"à֮ؔ̕b"#, r#"à֮ؔ̕b"#, r#"à֮ؔ̕b"#, r#"à֮ؔ̕b"#, r#"à֮ؔ̕b"#),
+        (r#"a֮ؔ̀̕b"#, r#"a֮ؔ̀̕b"#, r#"a֮ؔ̀̕b"#, r#"a֮ؔ̀̕b"#, r#"a֮ؔ̀̕b"#),
+        (r#"à֮ؕ̕b"#, r#"à֮ؕ̕b"#, r#"à֮ؕ̕b"#, r#"à֮ؕ̕b"#, r#"à֮ؕ̕b"#),
+        (r#"a֮ؕ̀̕b"#, r#"a֮ؕ̀̕b"#, r#"a֮ؕ̀̕b"#, r#"a֮ؕ̀̕b"#, r#"a֮ؕ̀̕b"#),
+        (r#"à֮ؖ̕b"#, r#"à֮ؖ̕b"#, r#"à֮ؖ̕b"#, r#"à֮ؖ̕b"#, r#"à֮ؖ̕b"#),
+        (r#"a֮ؖ̀̕b"#, r#"a֮ؖ̀̕b"#, r#"a֮ؖ̀̕b"#, r#"a֮ؖ̀̕b"#, r#"a֮ؖ̀̕b"#),
+        (r#"à֮ؗ̕b"#, r#"à֮ؗ̕b"#, r#"à֮ؗ̕b"#, r#"à֮ؗ̕b"#, r#"à֮ؗ̕b"#),
+        (r#"a֮ؗ̀̕b"#, r#"a֮ؗ̀̕b"#, r#"a֮ؗ̀̕b"#, r#"a֮ؗ̀̕b"#, r#"a֮ؗ̀̕b"#),
+        (r#"aٍؘؘؙb"#, r#"aٍؘؘؙb"#, r#"aٍؘؘؙb"#, r#"aٍؘؘؙb"#, r#"aٍؘؘؙb"#),
+        (r#"aٍؘؘؙb"#, r#"aٍؘؘؙb"#, r#"aٍؘؘؙb"#, r#"aٍؘؘؙb"#, r#"aٍؘؘؙb"#),
+        (r#"aؘؙؙؚb"#, r#"aؘؙؙؚb"#, r#"aؘؙؙؚb"#, r#"aؘؙؙؚb"#, r#"aؘؙؙؚb"#),
+        (r#"aؘؙؙؚb"#, r#"aؘؙؙؚb"#, r#"aؘؙؙؚb"#, r#"aؘؙؙؚb"#, r#"aؘؙؙؚb"#),
+        (r#"aؙؚؚّb"#, r#"aؙؚؚّb"#, r#"aؙؚؚّb"#, r#"aؙؚؚّb"#, r#"aؙؚؚّb"#),
+        (r#"aؙؚؚّb"#, r#"aؙؚؚّb"#, r#"aؙؚؚّb"#, r#"aؙؚؚّb"#, r#"aؙؚؚّb"#),
+        (r#"aﬞًًٌb"#, r#"aﬞًًٌb"#, r#"aﬞًًٌb"#, r#"aﬞًًٌb"#, r#"aﬞًًٌb"#),
+        (r#"aﬞًًٌb"#, r#"aﬞًًٌb"#, r#"aﬞًًٌb"#, r#"aﬞًًٌb"#, r#"aﬞًًٌb"#),
+        (r#"aًٌٌٍb"#, r#"aًٌٌٍb"#, r#"aًٌٌٍb"#, r#"aًٌٌٍb"#, r#"aًٌٌٍb"#),
+        (r#"aًٌٌٍb"#, r#"aًٌٌٍb"#, r#"aًٌٌٍb"#, r#"aًٌٌٍb"#, r#"aًٌٌٍb"#),
+        (r#"aٌٍٍؘb"#, r#"aٌٍٍؘb"#, r#"aٌٍٍؘb"#, r#"aٌٍٍؘb"#, r#"aٌٍٍؘb"#),
+        (r#"aٌٍٍؘb"#, r#"aٌٍٍؘb"#, r#"aٌٍٍؘb"#, r#"aٌٍٍؘb"#, r#"aٌٍٍؘb"#),
+        (r#"aٍؘَؙb"#, r#"aٍؘَؙb"#, r#"aٍؘَؙb"#, r#"aٍؘَؙb"#, r#"aٍؘَؙb"#),
+        (r#"aٍَؘؙb"#, r#"aٍَؘؙb"#, r#"aٍَؘؙb"#, r#"aٍَؘؙb"#, r#"aٍَؘؙb"#),
+        (r#"aؘؙُؚb"#, r#"aؘؙُؚb"#, r#"aؘؙُؚb"#, r#"aؘؙُؚb"#, r#"aؘؙُؚb"#),
+        (r#"aؘُؙؚb"#, r#"aؘُؙؚb"#, r#"aؘُؙؚb"#, r#"aؘُؙؚb"#, r#"aؘُؙؚb"#),
+        (r#"aؙؚِّb"#, r#"aؙؚِّb"#, r#"aؙؚِّb"#, r#"aؙؚِّb"#, r#"aؙؚِّb"#),
+        (r#"aؙِؚّb"#, r#"aؙِؚّb"#, r#"aؙِؚّb"#, r#"aؙِؚّb"#, r#"aؙِؚّb"#),
+        (r#"aؚّّْb"#, r#"aؚّّْb"#, r#"aؚّّْb"#, r#"aؚّّْb"#, r#"aؚّّْb"#),
+        (r#"aؚّّْb"#, r#"aؚّّْb"#, r#"aؚّّْb"#, r#"aؚّّْb"#, r#"aؚّّْb"#),
+        (r#"aّْْٰb"#, r#"aّْْٰb"#, r#"aّْْٰb"#, r#"aّْْٰb"#, r#"aّْْٰb"#),
+        (r#"aّْْٰb"#, r#"aّْْٰb"#, r#"aّْْٰb"#, r#"aّْْٰb"#, r#"aّْْٰb"#),
+        (r#"à֮ٓ̕b"#, r#"à֮ٓ̕b"#, r#"à֮ٓ̕b"#, r#"à֮ٓ̕b"#, r#"à֮ٓ̕b"#),
+        (r#"a֮ٓ̀̕b"#, r#"a֮ٓ̀̕b"#, r#"a֮ٓ̀̕b"#, r#"a֮ٓ̀̕b"#, r#"a֮ٓ̀̕b"#),
+        (r#"à֮ٔ̕b"#, r#"à֮ٔ̕b"#, r#"à֮ٔ̕b"#, r#"à֮ٔ̕b"#, r#"à֮ٔ̕b"#),
+        (r#"a֮ٔ̀̕b"#, r#"a֮ٔ̀̕b"#, r#"a֮ٔ̀̕b"#, r#"a֮ٔ̀̕b"#, r#"a֮ٔ̀̕b"#),
+        (r#"a᷺̖ٕ֚b"#, r#"a᷺̖ٕ֚b"#, r#"a᷺̖ٕ֚b"#, r#"a᷺̖ٕ֚b"#, r#"a᷺̖ٕ֚b"#),
+        (r#"a᷺ٕ̖֚b"#, r#"a᷺ٕ̖֚b"#, r#"a᷺ٕ̖֚b"#, r#"a᷺ٕ̖֚b"#, r#"a᷺ٕ̖֚b"#),
+        (r#"a᷺̖ٖ֚b"#, r#"a᷺̖ٖ֚b"#, r#"a᷺̖ٖ֚b"#, r#"a᷺̖ٖ֚b"#, r#"a᷺̖ٖ֚b"#),
+        (r#"a᷺ٖ̖֚b"#, r#"a᷺ٖ̖֚b"#, r#"a᷺ٖ̖֚b"#, r#"a᷺ٖ̖֚b"#, r#"a᷺ٖ̖֚b"#),
+        (r#"à֮ٗ̕b"#, r#"à֮ٗ̕b"#, r#"à֮ٗ̕b"#, r#"à֮ٗ̕b"#, r#"à֮ٗ̕b"#),
+        (r#"a֮ٗ̀̕b"#, r#"a֮ٗ̀̕b"#, r#"a֮ٗ̀̕b"#, r#"a֮ٗ̀̕b"#, r#"a֮ٗ̀̕b"#),
+        (r#"à֮٘̕b"#, r#"à֮٘̕b"#, r#"à֮٘̕b"#, r#"à֮٘̕b"#, r#"à֮٘̕b"#),
+        (r#"a֮٘̀̕b"#, r#"a֮٘̀̕b"#, r#"a֮٘̀̕b"#, r#"a֮٘̀̕b"#, r#"a֮٘̀̕b"#),
+        (r#"à֮ٙ̕b"#, r#"à֮ٙ̕b"#, r#"à֮ٙ̕b"#, r#"à֮ٙ̕b"#, r#"à֮ٙ̕b"#),
+        (r#"a֮ٙ̀̕b"#, r#"a֮ٙ̀̕b"#, r#"a֮ٙ̀̕b"#, r#"a֮ٙ̀̕b"#, r#"a֮ٙ̀̕b"#),
+        (r#"à֮ٚ̕b"#, r#"à֮ٚ̕b"#, r#"à֮ٚ̕b"#, r#"à֮ٚ̕b"#, r#"à֮ٚ̕b"#),
+        (r#"a֮ٚ̀̕b"#, r#"a֮ٚ̀̕b"#, r#"a֮ٚ̀̕b"#, r#"a֮ٚ̀̕b"#, r#"a֮ٚ̀̕b"#),
+        (r#"à֮ٛ̕b"#, r#"à֮ٛ̕b"#, r#"à֮ٛ̕b"#, r#"à֮ٛ̕b"#, r#"à֮ٛ̕b"#),
+        (r#"a֮ٛ̀̕b"#, r#"a֮ٛ̀̕b"#, r#"a֮ٛ̀̕b"#, r#"a֮ٛ̀̕b"#, r#"a֮ٛ̀̕b"#),
+        (r#"a᷺̖ٜ֚b"#, r#"a᷺̖ٜ֚b"#, r#"a᷺̖ٜ֚b"#, r#"a᷺̖ٜ֚b"#, r#"a᷺̖ٜ֚b"#),
+        (r#"a᷺ٜ̖֚b"#, r#"a᷺ٜ̖֚b"#, r#"a᷺ٜ̖֚b"#, r#"a᷺ٜ̖֚b"#, r#"a᷺ٜ̖֚b"#),
+        (r#"à֮ٝ̕b"#, r#"à֮ٝ̕b"#, r#"à֮ٝ̕b"#, r#"à֮ٝ̕b"#, r#"à֮ٝ̕b"#),
+        (r#"a֮ٝ̀̕b"#, r#"a֮ٝ̀̕b"#, r#"a֮ٝ̀̕b"#, r#"a֮ٝ̀̕b"#, r#"a֮ٝ̀̕b"#),
+        (r#"à֮ٞ̕b"#, r#"à֮ٞ̕b"#, r#"à֮ٞ̕b"#, r#"à֮ٞ̕b"#, r#"à֮ٞ̕b"#),
+        (r#"a֮ٞ̀̕b"#, r#"a֮ٞ̀̕b"#, r#"a֮ٞ̀̕b"#, r#"a֮ٞ̀̕b"#, r#"a֮ٞ̀̕b"#),
+        (r#"a᷺̖ٟ֚b"#, r#"a᷺̖ٟ֚b"#, r#"a᷺̖ٟ֚b"#, r#"a᷺̖ٟ֚b"#, r#"a᷺̖ٟ֚b"#),
+        (r#"a᷺ٟ̖֚b"#, r#"a᷺ٟ̖֚b"#, r#"a᷺ٟ̖֚b"#, r#"a᷺ٟ̖֚b"#, r#"a᷺ٟ̖֚b"#),
+        (r#"aْٰٰܑb"#, r#"aْٰٰܑb"#, r#"aْٰٰܑb"#, r#"aْٰٰܑb"#, r#"aْٰٰܑb"#),
+        (r#"aْٰٰܑb"#, r#"aْٰٰܑb"#, r#"aْٰٰܑb"#, r#"aْٰٰܑb"#, r#"aْٰٰܑb"#),
+        (r#"à֮ۖ̕b"#, r#"à֮ۖ̕b"#, r#"à֮ۖ̕b"#, r#"à֮ۖ̕b"#, r#"à֮ۖ̕b"#),
+        (r#"a֮ۖ̀̕b"#, r#"a֮ۖ̀̕b"#, r#"a֮ۖ̀̕b"#, r#"a֮ۖ̀̕b"#, r#"a֮ۖ̀̕b"#),
+        (r#"à֮ۗ̕b"#, r#"à֮ۗ̕b"#, r#"à֮ۗ̕b"#, r#"à֮ۗ̕b"#, r#"à֮ۗ̕b"#),
+        (r#"a֮ۗ̀̕b"#, r#"a֮ۗ̀̕b"#, r#"a֮ۗ̀̕b"#, r#"a֮ۗ̀̕b"#, r#"a֮ۗ̀̕b"#),
+        (r#"à֮ۘ̕b"#, r#"à֮ۘ̕b"#, r#"à֮ۘ̕b"#, r#"à֮ۘ̕b"#, r#"à֮ۘ̕b"#),
+        (r#"a֮ۘ̀̕b"#, r#"a֮ۘ̀̕b"#, r#"a֮ۘ̀̕b"#, r#"a֮ۘ̀̕b"#, r#"a֮ۘ̀̕b"#),
+        (r#"à֮ۙ̕b"#, r#"à֮ۙ̕b"#, r#"à֮ۙ̕b"#, r#"à֮ۙ̕b"#, r#"à֮ۙ̕b"#),
+        (r#"a֮ۙ̀̕b"#, r#"a֮ۙ̀̕b"#, r#"a֮ۙ̀̕b"#, r#"a֮ۙ̀̕b"#, r#"a֮ۙ̀̕b"#),
+        (r#"à֮ۚ̕b"#, r#"à֮ۚ̕b"#, r#"à֮ۚ̕b"#, r#"à֮ۚ̕b"#, r#"à֮ۚ̕b"#),
+        (r#"a֮ۚ̀̕b"#, r#"a֮ۚ̀̕b"#, r#"a֮ۚ̀̕b"#, r#"a֮ۚ̀̕b"#, r#"a֮ۚ̀̕b"#),
+        (r#"à֮ۛ̕b"#, r#"à֮ۛ̕b"#, r#"à֮ۛ̕b"#, r#"à֮ۛ̕b"#, r#"à֮ۛ̕b"#),
+        (r#"a֮ۛ̀̕b"#, r#"a֮ۛ̀̕b"#, r#"a֮ۛ̀̕b"#, r#"a֮ۛ̀̕b"#, r#"a֮ۛ̀̕b"#),
+        (r#"à֮ۜ̕b"#, r#"à֮ۜ̕b"#, r#"à֮ۜ̕b"#, r#"à֮ۜ̕b"#, r#"à֮ۜ̕b"#),
+        (r#"a֮ۜ̀̕b"#, r#"a֮ۜ̀̕b"#, r#"a֮ۜ̀̕b"#, r#"a֮ۜ̀̕b"#, r#"a֮ۜ̀̕b"#),
+        (r#"à֮۟̕b"#, r#"à֮۟̕b"#, r#"à֮۟̕b"#, r#"à֮۟̕b"#, r#"à֮۟̕b"#),
+        (r#"a֮۟̀̕b"#, r#"a֮۟̀̕b"#, r#"a֮۟̀̕b"#, r#"a֮۟̀̕b"#, r#"a֮۟̀̕b"#),
+        (r#"à֮۠̕b"#, r#"à֮۠̕b"#, r#"à֮۠̕b"#, r#"à֮۠̕b"#, r#"à֮۠̕b"#),
+        (r#"a֮۠̀̕b"#, r#"a֮۠̀̕b"#, r#"a֮۠̀̕b"#, r#"a֮۠̀̕b"#, r#"a֮۠̀̕b"#),
+        (r#"à֮ۡ̕b"#, r#"à֮ۡ̕b"#, r#"à֮ۡ̕b"#, r#"à֮ۡ̕b"#, r#"à֮ۡ̕b"#),
+        (r#"a֮ۡ̀̕b"#, r#"a֮ۡ̀̕b"#, r#"a֮ۡ̀̕b"#, r#"a֮ۡ̀̕b"#, r#"a֮ۡ̀̕b"#),
+        (r#"à֮ۢ̕b"#, r#"à֮ۢ̕b"#, r#"à֮ۢ̕b"#, r#"à֮ۢ̕b"#, r#"à֮ۢ̕b"#),
+        (r#"a֮ۢ̀̕b"#, r#"a֮ۢ̀̕b"#, r#"a֮ۢ̀̕b"#, r#"a֮ۢ̀̕b"#, r#"a֮ۢ̀̕b"#),
+        (r#"a᷺̖ۣ֚b"#, r#"a᷺̖ۣ֚b"#, r#"a᷺̖ۣ֚b"#, r#"a᷺̖ۣ֚b"#, r#"a᷺̖ۣ֚b"#),
+        (r#"a᷺ۣ̖֚b"#, r#"a᷺ۣ̖֚b"#, r#"a᷺ۣ̖֚b"#, r#"a᷺ۣ̖֚b"#, r#"a᷺ۣ̖֚b"#),
+        (r#"à֮ۤ̕b"#, r#"à֮ۤ̕b"#, r#"à֮ۤ̕b"#, r#"à֮ۤ̕b"#, r#"à֮ۤ̕b"#),
+        (r#"a֮ۤ̀̕b"#, r#"a֮ۤ̀̕b"#, r#"a֮ۤ̀̕b"#, r#"a֮ۤ̀̕b"#, r#"a֮ۤ̀̕b"#),
+        (r#"à֮ۧ̕b"#, r#"à֮ۧ̕b"#, r#"à֮ۧ̕b"#, r#"à֮ۧ̕b"#, r#"à֮ۧ̕b"#),
+        (r#"a֮ۧ̀̕b"#, r#"a֮ۧ̀̕b"#, r#"a֮ۧ̀̕b"#, r#"a֮ۧ̀̕b"#, r#"a֮ۧ̀̕b"#),
+        (r#"à֮ۨ̕b"#, r#"à֮ۨ̕b"#, r#"à֮ۨ̕b"#, r#"à֮ۨ̕b"#, r#"à֮ۨ̕b"#),
+        (r#"a֮ۨ̀̕b"#, r#"a֮ۨ̀̕b"#, r#"a֮ۨ̀̕b"#, r#"a֮ۨ̀̕b"#, r#"a֮ۨ̀̕b"#),
+        (r#"a᷺̖۪֚b"#, r#"a᷺̖۪֚b"#, r#"a᷺̖۪֚b"#, r#"a᷺̖۪֚b"#, r#"a᷺̖۪֚b"#),
+        (r#"a᷺۪̖֚b"#, r#"a᷺۪̖֚b"#, r#"a᷺۪̖֚b"#, r#"a᷺۪̖֚b"#, r#"a᷺۪̖֚b"#),
+        (r#"à֮۫̕b"#, r#"à֮۫̕b"#, r#"à֮۫̕b"#, r#"à֮۫̕b"#, r#"à֮۫̕b"#),
+        (r#"a֮۫̀̕b"#, r#"a֮۫̀̕b"#, r#"a֮۫̀̕b"#, r#"a֮۫̀̕b"#, r#"a֮۫̀̕b"#),
+        (r#"à֮۬̕b"#, r#"à֮۬̕b"#, r#"à֮۬̕b"#, r#"à֮۬̕b"#, r#"à֮۬̕b"#),
+        (r#"a֮۬̀̕b"#, r#"a֮۬̀̕b"#, r#"a֮۬̀̕b"#, r#"a֮۬̀̕b"#, r#"a֮۬̀̕b"#),
+        (r#"a᷺̖ۭ֚b"#, r#"a᷺̖ۭ֚b"#, r#"a᷺̖ۭ֚b"#, r#"a᷺̖ۭ֚b"#, r#"a᷺̖ۭ֚b"#),
+        (r#"a᷺ۭ̖֚b"#, r#"a᷺ۭ̖֚b"#, r#"a᷺ۭ̖֚b"#, r#"a᷺ۭ̖֚b"#, r#"a᷺ۭ̖֚b"#),
+        (r#"aٰܑܑౕb"#, r#"aٰܑܑౕb"#, r#"aٰܑܑౕb"#, r#"aٰܑܑౕb"#, r#"aٰܑܑౕb"#),
+        (r#"aٰܑܑౕb"#, r#"aٰܑܑౕb"#, r#"aٰܑܑౕb"#, r#"aٰܑܑౕb"#, r#"aٰܑܑౕb"#),
+        (r#"à֮ܰ̕b"#, r#"à֮ܰ̕b"#, r#"à֮ܰ̕b"#, r#"à֮ܰ̕b"#, r#"à֮ܰ̕b"#),
+        (r#"a֮ܰ̀̕b"#, r#"a֮ܰ̀̕b"#, r#"a֮ܰ̀̕b"#, r#"a֮ܰ̀̕b"#, r#"a֮ܰ̀̕b"#),
+        (r#"a᷺̖ܱ֚b"#, r#"a᷺̖ܱ֚b"#, r#"a᷺̖ܱ֚b"#, r#"a᷺̖ܱ֚b"#, r#"a᷺̖ܱ֚b"#),
+        (r#"a᷺ܱ̖֚b"#, r#"a᷺ܱ̖֚b"#, r#"a᷺ܱ̖֚b"#, r#"a᷺ܱ̖֚b"#, r#"a᷺ܱ̖֚b"#),
+        (r#"à֮ܲ̕b"#, r#"à֮ܲ̕b"#, r#"à֮ܲ̕b"#, r#"à֮ܲ̕b"#, r#"à֮ܲ̕b"#),
+        (r#"a֮ܲ̀̕b"#, r#"a֮ܲ̀̕b"#, r#"a֮ܲ̀̕b"#, r#"a֮ܲ̀̕b"#, r#"a֮ܲ̀̕b"#),
+        (r#"à֮ܳ̕b"#, r#"à֮ܳ̕b"#, r#"à֮ܳ̕b"#, r#"à֮ܳ̕b"#, r#"à֮ܳ̕b"#),
+        (r#"a֮ܳ̀̕b"#, r#"a֮ܳ̀̕b"#, r#"a֮ܳ̀̕b"#, r#"a֮ܳ̀̕b"#, r#"a֮ܳ̀̕b"#),
+        (r#"a᷺̖ܴ֚b"#, r#"a᷺̖ܴ֚b"#, r#"a᷺̖ܴ֚b"#, r#"a᷺̖ܴ֚b"#, r#"a᷺̖ܴ֚b"#),
+        (r#"a᷺ܴ̖֚b"#, r#"a᷺ܴ̖֚b"#, r#"a᷺ܴ̖֚b"#, r#"a᷺ܴ̖֚b"#, r#"a᷺ܴ̖֚b"#),
+        (r#"à֮ܵ̕b"#, r#"à֮ܵ̕b"#, r#"à֮ܵ̕b"#, r#"à֮ܵ̕b"#, r#"à֮ܵ̕b"#),
+        (r#"a֮ܵ̀̕b"#, r#"a֮ܵ̀̕b"#, r#"a֮ܵ̀̕b"#, r#"a֮ܵ̀̕b"#, r#"a֮ܵ̀̕b"#),
+        (r#"à֮ܶ̕b"#, r#"à֮ܶ̕b"#, r#"à֮ܶ̕b"#, r#"à֮ܶ̕b"#, r#"à֮ܶ̕b"#),
+        (r#"a֮ܶ̀̕b"#, r#"a֮ܶ̀̕b"#, r#"a֮ܶ̀̕b"#, r#"a֮ܶ̀̕b"#, r#"a֮ܶ̀̕b"#),
+        (r#"a᷺̖ܷ֚b"#, r#"a᷺̖ܷ֚b"#, r#"a᷺̖ܷ֚b"#, r#"a᷺̖ܷ֚b"#, r#"a᷺̖ܷ֚b"#),
+        (r#"a᷺ܷ̖֚b"#, r#"a᷺ܷ̖֚b"#, r#"a᷺ܷ̖֚b"#, r#"a᷺ܷ̖֚b"#, r#"a᷺ܷ̖֚b"#),
+        (r#"a᷺̖ܸ֚b"#, r#"a᷺̖ܸ֚b"#, r#"a᷺̖ܸ֚b"#, r#"a᷺̖ܸ֚b"#, r#"a᷺̖ܸ֚b"#),
+        (r#"a᷺ܸ̖֚b"#, r#"a᷺ܸ̖֚b"#, r#"a᷺ܸ̖֚b"#, r#"a᷺ܸ̖֚b"#, r#"a᷺ܸ̖֚b"#),
+        (r#"a᷺̖ܹ֚b"#, r#"a᷺̖ܹ֚b"#, r#"a᷺̖ܹ֚b"#, r#"a᷺̖ܹ֚b"#, r#"a᷺̖ܹ֚b"#),
+        (r#"a᷺ܹ̖֚b"#, r#"a᷺ܹ̖֚b"#, r#"a᷺ܹ̖֚b"#, r#"a᷺ܹ̖֚b"#, r#"a᷺ܹ̖֚b"#),
+        (r#"à֮ܺ̕b"#, r#"à֮ܺ̕b"#, r#"à֮ܺ̕b"#, r#"à֮ܺ̕b"#, r#"à֮ܺ̕b"#),
+        (r#"a֮ܺ̀̕b"#, r#"a֮ܺ̀̕b"#, r#"a֮ܺ̀̕b"#, r#"a֮ܺ̀̕b"#, r#"a֮ܺ̀̕b"#),
+        (r#"a᷺̖ܻ֚b"#, r#"a᷺̖ܻ֚b"#, r#"a᷺̖ܻ֚b"#, r#"a᷺̖ܻ֚b"#, r#"a᷺̖ܻ֚b"#),
+        (r#"a᷺ܻ̖֚b"#, r#"a᷺ܻ̖֚b"#, r#"a᷺ܻ̖֚b"#, r#"a᷺ܻ̖֚b"#, r#"a᷺ܻ̖֚b"#),
+        (r#"a᷺̖ܼ֚b"#, r#"a᷺̖ܼ֚b"#, r#"a᷺̖ܼ֚b"#, r#"a᷺̖ܼ֚b"#, r#"a᷺̖ܼ֚b"#),
+        (r#"a᷺ܼ̖֚b"#, r#"a᷺ܼ̖֚b"#, r#"a᷺ܼ̖֚b"#, r#"a᷺ܼ̖֚b"#, r#"a᷺ܼ̖֚b"#),
+        (r#"à֮ܽ̕b"#, r#"à֮ܽ̕b"#, r#"à֮ܽ̕b"#, r#"à֮ܽ̕b"#, r#"à֮ܽ̕b"#),
+        (r#"a֮ܽ̀̕b"#, r#"a֮ܽ̀̕b"#, r#"a֮ܽ̀̕b"#, r#"a֮ܽ̀̕b"#, r#"a֮ܽ̀̕b"#),
+        (r#"a᷺̖ܾ֚b"#, r#"a᷺̖ܾ֚b"#, r#"a᷺̖ܾ֚b"#, r#"a᷺̖ܾ֚b"#, r#"a᷺̖ܾ֚b"#),
+        (r#"a᷺ܾ̖֚b"#, r#"a᷺ܾ̖֚b"#, r#"a᷺ܾ̖֚b"#, r#"a᷺ܾ̖֚b"#, r#"a᷺ܾ̖֚b"#),
+        (r#"à֮ܿ̕b"#, r#"à֮ܿ̕b"#, r#"à֮ܿ̕b"#, r#"à֮ܿ̕b"#, r#"à֮ܿ̕b"#),
+        (r#"a֮ܿ̀̕b"#, r#"a֮ܿ̀̕b"#, r#"a֮ܿ̀̕b"#, r#"a֮ܿ̀̕b"#, r#"a֮ܿ̀̕b"#),
+        (r#"à֮݀̕b"#, r#"à֮݀̕b"#, r#"à֮݀̕b"#, r#"à֮݀̕b"#, r#"à֮݀̕b"#),
+        (r#"a֮݀̀̕b"#, r#"a֮݀̀̕b"#, r#"a֮݀̀̕b"#, r#"a֮݀̀̕b"#, r#"a֮݀̀̕b"#),
+        (r#"à֮݁̕b"#, r#"à֮݁̕b"#, r#"à֮݁̕b"#, r#"à֮݁̕b"#, r#"à֮݁̕b"#),
+        (r#"a֮݁̀̕b"#, r#"a֮݁̀̕b"#, r#"a֮݁̀̕b"#, r#"a֮݁̀̕b"#, r#"a֮݁̀̕b"#),
+        (r#"a᷺̖݂֚b"#, r#"a᷺̖݂֚b"#, r#"a᷺̖݂֚b"#, r#"a᷺̖݂֚b"#, r#"a᷺̖݂֚b"#),
+        (r#"a᷺݂̖֚b"#, r#"a᷺݂̖֚b"#, r#"a᷺݂̖֚b"#, r#"a᷺݂̖֚b"#, r#"a᷺݂̖֚b"#),
+        (r#"à֮݃̕b"#, r#"à֮݃̕b"#, r#"à֮݃̕b"#, r#"à֮݃̕b"#, r#"à֮݃̕b"#),
+        (r#"a֮݃̀̕b"#, r#"a֮݃̀̕b"#, r#"a֮݃̀̕b"#, r#"a֮݃̀̕b"#, r#"a֮݃̀̕b"#),
+        (r#"a᷺̖݄֚b"#, r#"a᷺̖݄֚b"#, r#"a᷺̖݄֚b"#, r#"a᷺̖݄֚b"#, r#"a᷺̖݄֚b"#),
+        (r#"a᷺݄̖֚b"#, r#"a᷺݄̖֚b"#, r#"a᷺݄̖֚b"#, r#"a᷺݄̖֚b"#, r#"a᷺݄̖֚b"#),
+        (r#"à֮݅̕b"#, r#"à֮݅̕b"#, r#"à֮݅̕b"#, r#"à֮݅̕b"#, r#"à֮݅̕b"#),
+        (r#"a֮݅̀̕b"#, r#"a֮݅̀̕b"#, r#"a֮݅̀̕b"#, r#"a֮݅̀̕b"#, r#"a֮݅̀̕b"#),
+        (r#"a᷺̖݆֚b"#, r#"a᷺̖݆֚b"#, r#"a᷺̖݆֚b"#, r#"a᷺̖݆֚b"#, r#"a᷺̖݆֚b"#),
+        (r#"a᷺݆̖֚b"#, r#"a᷺݆̖֚b"#, r#"a᷺݆̖֚b"#, r#"a᷺݆̖֚b"#, r#"a᷺݆̖֚b"#),
+        (r#"à֮݇̕b"#, r#"à֮݇̕b"#, r#"à֮݇̕b"#, r#"à֮݇̕b"#, r#"à֮݇̕b"#),
+        (r#"a֮݇̀̕b"#, r#"a֮݇̀̕b"#, r#"a֮݇̀̕b"#, r#"a֮݇̀̕b"#, r#"a֮݇̀̕b"#),
+        (r#"a᷺̖݈֚b"#, r#"a᷺̖݈֚b"#, r#"a᷺̖݈֚b"#, r#"a᷺̖݈֚b"#, r#"a᷺̖݈֚b"#),
+        (r#"a᷺݈̖֚b"#, r#"a᷺݈̖֚b"#, r#"a᷺݈̖֚b"#, r#"a᷺݈̖֚b"#, r#"a᷺݈̖֚b"#),
+        (r#"à֮݉̕b"#, r#"à֮݉̕b"#, r#"à֮݉̕b"#, r#"à֮݉̕b"#, r#"à֮݉̕b"#),
+        (r#"a֮݉̀̕b"#, r#"a֮݉̀̕b"#, r#"a֮݉̀̕b"#, r#"a֮݉̀̕b"#, r#"a֮݉̀̕b"#),
+        (r#"à֮݊̕b"#, r#"à֮݊̕b"#, r#"à֮݊̕b"#, r#"à֮݊̕b"#, r#"à֮݊̕b"#),
+        (r#"a֮݊̀̕b"#, r#"a֮݊̀̕b"#, r#"a֮݊̀̕b"#, r#"a֮݊̀̕b"#, r#"a֮݊̀̕b"#),
+        (r#"à֮߫̕b"#, r#"à֮߫̕b"#, r#"à֮߫̕b"#, r#"à֮߫̕b"#, r#"à֮߫̕b"#),
+        (r#"a֮߫̀̕b"#, r#"a֮߫̀̕b"#, r#"a֮߫̀̕b"#, r#"a֮߫̀̕b"#, r#"a֮߫̀̕b"#),
+        (r#"à֮߬̕b"#, r#"à֮߬̕b"#, r#"à֮߬̕b"#, r#"à֮߬̕b"#, r#"à֮߬̕b"#),
+        (r#"a֮߬̀̕b"#, r#"a֮߬̀̕b"#, r#"a֮߬̀̕b"#, r#"a֮߬̀̕b"#, r#"a֮߬̀̕b"#),
+        (r#"à֮߭̕b"#, r#"à֮߭̕b"#, r#"à֮߭̕b"#, r#"à֮߭̕b"#, r#"à֮߭̕b"#),
+        (r#"a֮߭̀̕b"#, r#"a֮߭̀̕b"#, r#"a֮߭̀̕b"#, r#"a֮߭̀̕b"#, r#"a֮߭̀̕b"#),
+        (r#"à֮߮̕b"#, r#"à֮߮̕b"#, r#"à֮߮̕b"#, r#"à֮߮̕b"#, r#"à֮߮̕b"#),
+        (r#"a֮߮̀̕b"#, r#"a֮߮̀̕b"#, r#"a֮߮̀̕b"#, r#"a֮߮̀̕b"#, r#"a֮߮̀̕b"#),
+        (r#"à֮߯̕b"#, r#"à֮߯̕b"#, r#"à֮߯̕b"#, r#"à֮߯̕b"#, r#"à֮߯̕b"#),
+        (r#"a֮߯̀̕b"#, r#"a֮߯̀̕b"#, r#"a֮߯̀̕b"#, r#"a֮߯̀̕b"#, r#"a֮߯̀̕b"#),
+        (r#"à֮߰̕b"#, r#"à֮߰̕b"#, r#"à֮߰̕b"#, r#"à֮߰̕b"#, r#"à֮߰̕b"#),
+        (r#"a֮߰̀̕b"#, r#"a֮߰̀̕b"#, r#"a֮߰̀̕b"#, r#"a֮߰̀̕b"#, r#"a֮߰̀̕b"#),
+        (r#"à֮߱̕b"#, r#"à֮߱̕b"#, r#"à֮߱̕b"#, r#"à֮߱̕b"#, r#"à֮߱̕b"#),
+        (r#"a֮߱̀̕b"#, r#"a֮߱̀̕b"#, r#"a֮߱̀̕b"#, r#"a֮߱̀̕b"#, r#"a֮߱̀̕b"#),
+        (r#"a᷺̖߲֚b"#, r#"a᷺̖߲֚b"#, r#"a᷺̖߲֚b"#, r#"a᷺̖߲֚b"#, r#"a᷺̖߲֚b"#),
+        (r#"a᷺߲̖֚b"#, r#"a᷺߲̖֚b"#, r#"a᷺߲̖֚b"#, r#"a᷺߲̖֚b"#, r#"a᷺߲̖֚b"#),
+        (r#"à֮߳̕b"#, r#"à֮߳̕b"#, r#"à֮߳̕b"#, r#"à֮߳̕b"#, r#"à֮߳̕b"#),
+        (r#"a֮߳̀̕b"#, r#"a֮߳̀̕b"#, r#"a֮߳̀̕b"#, r#"a֮߳̀̕b"#, r#"a֮߳̀̕b"#),
+        (r#"a᷺̖߽֚b"#, r#"a᷺̖߽֚b"#, r#"a᷺̖߽֚b"#, r#"a᷺̖߽֚b"#, r#"a᷺̖߽֚b"#),
+        (r#"a᷺߽̖֚b"#, r#"a᷺߽̖֚b"#, r#"a᷺߽̖֚b"#, r#"a᷺߽̖֚b"#, r#"a᷺߽̖֚b"#),
+        (r#"à֮ࠖ̕b"#, r#"à֮ࠖ̕b"#, r#"à֮ࠖ̕b"#, r#"à֮ࠖ̕b"#, r#"à֮ࠖ̕b"#),
+        (r#"a֮ࠖ̀̕b"#, r#"a֮ࠖ̀̕b"#, r#"a֮ࠖ̀̕b"#, r#"a֮ࠖ̀̕b"#, r#"a֮ࠖ̀̕b"#),
+        (r#"à֮ࠗ̕b"#, r#"à֮ࠗ̕b"#, r#"à֮ࠗ̕b"#, r#"à֮ࠗ̕b"#, r#"à֮ࠗ̕b"#),
+        (r#"a֮ࠗ̀̕b"#, r#"a֮ࠗ̀̕b"#, r#"a֮ࠗ̀̕b"#, r#"a֮ࠗ̀̕b"#, r#"a֮ࠗ̀̕b"#),
+        (r#"à֮࠘̕b"#, r#"à֮࠘̕b"#, r#"à֮࠘̕b"#, r#"à֮࠘̕b"#, r#"à֮࠘̕b"#),
+        (r#"a֮࠘̀̕b"#, r#"a֮࠘̀̕b"#, r#"a֮࠘̀̕b"#, r#"a֮࠘̀̕b"#, r#"a֮࠘̀̕b"#),
+        (r#"à֮࠙̕b"#, r#"à֮࠙̕b"#, r#"à֮࠙̕b"#, r#"à֮࠙̕b"#, r#"à֮࠙̕b"#),
+        (r#"a֮࠙̀̕b"#, r#"a֮࠙̀̕b"#, r#"a֮࠙̀̕b"#, r#"a֮࠙̀̕b"#, r#"a֮࠙̀̕b"#),
+        (r#"à֮ࠛ̕b"#, r#"à֮ࠛ̕b"#, r#"à֮ࠛ̕b"#, r#"à֮ࠛ̕b"#, r#"à֮ࠛ̕b"#),
+        (r#"a֮ࠛ̀̕b"#, r#"a֮ࠛ̀̕b"#, r#"a֮ࠛ̀̕b"#, r#"a֮ࠛ̀̕b"#, r#"a֮ࠛ̀̕b"#),
+        (r#"à֮ࠜ̕b"#, r#"à֮ࠜ̕b"#, r#"à֮ࠜ̕b"#, r#"à֮ࠜ̕b"#, r#"à֮ࠜ̕b"#),
+        (r#"a֮ࠜ̀̕b"#, r#"a֮ࠜ̀̕b"#, r#"a֮ࠜ̀̕b"#, r#"a֮ࠜ̀̕b"#, r#"a֮ࠜ̀̕b"#),
+        (r#"à֮ࠝ̕b"#, r#"à֮ࠝ̕b"#, r#"à֮ࠝ̕b"#, r#"à֮ࠝ̕b"#, r#"à֮ࠝ̕b"#),
+        (r#"a֮ࠝ̀̕b"#, r#"a֮ࠝ̀̕b"#, r#"a֮ࠝ̀̕b"#, r#"a֮ࠝ̀̕b"#, r#"a֮ࠝ̀̕b"#),
+        (r#"à֮ࠞ̕b"#, r#"à֮ࠞ̕b"#, r#"à֮ࠞ̕b"#, r#"à֮ࠞ̕b"#, r#"à֮ࠞ̕b"#),
+        (r#"a֮ࠞ̀̕b"#, r#"a֮ࠞ̀̕b"#, r#"a֮ࠞ̀̕b"#, r#"a֮ࠞ̀̕b"#, r#"a֮ࠞ̀̕b"#),
+        (r#"à֮ࠟ̕b"#, r#"à֮ࠟ̕b"#, r#"à֮ࠟ̕b"#, r#"à֮ࠟ̕b"#, r#"à֮ࠟ̕b"#),
+        (r#"a֮ࠟ̀̕b"#, r#"a֮ࠟ̀̕b"#, r#"a֮ࠟ̀̕b"#, r#"a֮ࠟ̀̕b"#, r#"a֮ࠟ̀̕b"#),
+        (r#"à֮ࠠ̕b"#, r#"à֮ࠠ̕b"#, r#"à֮ࠠ̕b"#, r#"à֮ࠠ̕b"#, r#"à֮ࠠ̕b"#),
+        (r#"a֮ࠠ̀̕b"#, r#"a֮ࠠ̀̕b"#, r#"a֮ࠠ̀̕b"#, r#"a֮ࠠ̀̕b"#, r#"a֮ࠠ̀̕b"#),
+        (r#"à֮ࠡ̕b"#, r#"à֮ࠡ̕b"#, r#"à֮ࠡ̕b"#, r#"à֮ࠡ̕b"#, r#"à֮ࠡ̕b"#),
+        (r#"a֮ࠡ̀̕b"#, r#"a֮ࠡ̀̕b"#, r#"a֮ࠡ̀̕b"#, r#"a֮ࠡ̀̕b"#, r#"a֮ࠡ̀̕b"#),
+        (r#"à֮ࠢ̕b"#, r#"à֮ࠢ̕b"#, r#"à֮ࠢ̕b"#, r#"à֮ࠢ̕b"#, r#"à֮ࠢ̕b"#),
+        (r#"a֮ࠢ̀̕b"#, r#"a֮ࠢ̀̕b"#, r#"a֮ࠢ̀̕b"#, r#"a֮ࠢ̀̕b"#, r#"a֮ࠢ̀̕b"#),
+        (r#"à֮ࠣ̕b"#, r#"à֮ࠣ̕b"#, r#"à֮ࠣ̕b"#, r#"à֮ࠣ̕b"#, r#"à֮ࠣ̕b"#),
+        (r#"a֮ࠣ̀̕b"#, r#"a֮ࠣ̀̕b"#, r#"a֮ࠣ̀̕b"#, r#"a֮ࠣ̀̕b"#, r#"a֮ࠣ̀̕b"#),
+        (r#"à֮ࠥ̕b"#, r#"à֮ࠥ̕b"#, r#"à֮ࠥ̕b"#, r#"à֮ࠥ̕b"#, r#"à֮ࠥ̕b"#),
+        (r#"a֮ࠥ̀̕b"#, r#"a֮ࠥ̀̕b"#, r#"a֮ࠥ̀̕b"#, r#"a֮ࠥ̀̕b"#, r#"a֮ࠥ̀̕b"#),
+        (r#"à֮ࠦ̕b"#, r#"à֮ࠦ̕b"#, r#"à֮ࠦ̕b"#, r#"à֮ࠦ̕b"#, r#"à֮ࠦ̕b"#),
+        (r#"a֮ࠦ̀̕b"#, r#"a֮ࠦ̀̕b"#, r#"a֮ࠦ̀̕b"#, r#"a֮ࠦ̀̕b"#, r#"a֮ࠦ̀̕b"#),
+        (r#"à֮ࠧ̕b"#, r#"à֮ࠧ̕b"#, r#"à֮ࠧ̕b"#, r#"à֮ࠧ̕b"#, r#"à֮ࠧ̕b"#),
+        (r#"a֮ࠧ̀̕b"#, r#"a֮ࠧ̀̕b"#, r#"a֮ࠧ̀̕b"#, r#"a֮ࠧ̀̕b"#, r#"a֮ࠧ̀̕b"#),
+        (r#"à֮ࠩ̕b"#, r#"à֮ࠩ̕b"#, r#"à֮ࠩ̕b"#, r#"à֮ࠩ̕b"#, r#"à֮ࠩ̕b"#),
+        (r#"a֮ࠩ̀̕b"#, r#"a֮ࠩ̀̕b"#, r#"a֮ࠩ̀̕b"#, r#"a֮ࠩ̀̕b"#, r#"a֮ࠩ̀̕b"#),
+        (r#"à֮ࠪ̕b"#, r#"à֮ࠪ̕b"#, r#"à֮ࠪ̕b"#, r#"à֮ࠪ̕b"#, r#"à֮ࠪ̕b"#),
+        (r#"a֮ࠪ̀̕b"#, r#"a֮ࠪ̀̕b"#, r#"a֮ࠪ̀̕b"#, r#"a֮ࠪ̀̕b"#, r#"a֮ࠪ̀̕b"#),
+        (r#"à֮ࠫ̕b"#, r#"à֮ࠫ̕b"#, r#"à֮ࠫ̕b"#, r#"à֮ࠫ̕b"#, r#"à֮ࠫ̕b"#),
+        (r#"a֮ࠫ̀̕b"#, r#"a֮ࠫ̀̕b"#, r#"a֮ࠫ̀̕b"#, r#"a֮ࠫ̀̕b"#, r#"a֮ࠫ̀̕b"#),
+        (r#"à֮ࠬ̕b"#, r#"à֮ࠬ̕b"#, r#"à֮ࠬ̕b"#, r#"à֮ࠬ̕b"#, r#"à֮ࠬ̕b"#),
+        (r#"a֮ࠬ̀̕b"#, r#"a֮ࠬ̀̕b"#, r#"a֮ࠬ̀̕b"#, r#"a֮ࠬ̀̕b"#, r#"a֮ࠬ̀̕b"#),
+        (r#"à֮࠭̕b"#, r#"à֮࠭̕b"#, r#"à֮࠭̕b"#, r#"à֮࠭̕b"#, r#"à֮࠭̕b"#),
+        (r#"a֮࠭̀̕b"#, r#"a֮࠭̀̕b"#, r#"a֮࠭̀̕b"#, r#"a֮࠭̀̕b"#, r#"a֮࠭̀̕b"#),
+        (r#"a᷺̖࡙֚b"#, r#"a᷺̖࡙֚b"#, r#"a᷺̖࡙֚b"#, r#"a᷺̖࡙֚b"#, r#"a᷺̖࡙֚b"#),
+        (r#"a᷺࡙̖֚b"#, r#"a᷺࡙̖֚b"#, r#"a᷺࡙̖֚b"#, r#"a᷺࡙̖֚b"#, r#"a᷺࡙̖֚b"#),
+        (r#"a᷺̖࡚֚b"#, r#"a᷺̖࡚֚b"#, r#"a᷺̖࡚֚b"#, r#"a᷺̖࡚֚b"#, r#"a᷺̖࡚֚b"#),
+        (r#"a᷺࡚̖֚b"#, r#"a᷺࡚̖֚b"#, r#"a᷺࡚̖֚b"#, r#"a᷺࡚̖֚b"#, r#"a᷺࡚̖֚b"#),
+        (r#"a᷺̖࡛֚b"#, r#"a᷺̖࡛֚b"#, r#"a᷺̖࡛֚b"#, r#"a᷺̖࡛֚b"#, r#"a᷺̖࡛֚b"#),
+        (r#"a᷺࡛̖֚b"#, r#"a᷺࡛̖֚b"#, r#"a᷺࡛̖֚b"#, r#"a᷺࡛̖֚b"#, r#"a᷺࡛̖֚b"#),
+        (r#"à֮࢘̕b"#, r#"à֮࢘̕b"#, r#"à֮࢘̕b"#, r#"à֮࢘̕b"#, r#"à֮࢘̕b"#),
+        (r#"a֮࢘̀̕b"#, r#"a֮࢘̀̕b"#, r#"a֮࢘̀̕b"#, r#"a֮࢘̀̕b"#, r#"a֮࢘̀̕b"#),
+        (r#"a᷺̖࢙֚b"#, r#"a᷺̖࢙֚b"#, r#"a᷺̖࢙֚b"#, r#"a᷺̖࢙֚b"#, r#"a᷺̖࢙֚b"#),
+        (r#"a᷺࢙̖֚b"#, r#"a᷺࢙̖֚b"#, r#"a᷺࢙̖֚b"#, r#"a᷺࢙̖֚b"#, r#"a᷺࢙̖֚b"#),
+        (r#"a᷺̖࢚֚b"#, r#"a᷺̖࢚֚b"#, r#"a᷺̖࢚֚b"#, r#"a᷺̖࢚֚b"#, r#"a᷺̖࢚֚b"#),
+        (r#"a᷺࢚̖֚b"#, r#"a᷺࢚̖֚b"#, r#"a᷺࢚̖֚b"#, r#"a᷺࢚̖֚b"#, r#"a᷺࢚̖֚b"#),
+        (r#"a᷺̖࢛֚b"#, r#"a᷺̖࢛֚b"#, r#"a᷺̖࢛֚b"#, r#"a᷺̖࢛֚b"#, r#"a᷺̖࢛֚b"#),
+        (r#"a᷺࢛̖֚b"#, r#"a᷺࢛̖֚b"#, r#"a᷺࢛̖֚b"#, r#"a᷺࢛̖֚b"#, r#"a᷺࢛̖֚b"#),
+        (r#"à֮࢜̕b"#, r#"à֮࢜̕b"#, r#"à֮࢜̕b"#, r#"à֮࢜̕b"#, r#"à֮࢜̕b"#),
+        (r#"a֮࢜̀̕b"#, r#"a֮࢜̀̕b"#, r#"a֮࢜̀̕b"#, r#"a֮࢜̀̕b"#, r#"a֮࢜̀̕b"#),
+        (r#"à֮࢝̕b"#, r#"à֮࢝̕b"#, r#"à֮࢝̕b"#, r#"à֮࢝̕b"#, r#"à֮࢝̕b"#),
+        (r#"a֮࢝̀̕b"#, r#"a֮࢝̀̕b"#, r#"a֮࢝̀̕b"#, r#"a֮࢝̀̕b"#, r#"a֮࢝̀̕b"#),
+        (r#"à֮࢞̕b"#, r#"à֮࢞̕b"#, r#"à֮࢞̕b"#, r#"à֮࢞̕b"#, r#"à֮࢞̕b"#),
+        (r#"a֮࢞̀̕b"#, r#"a֮࢞̀̕b"#, r#"a֮࢞̀̕b"#, r#"a֮࢞̀̕b"#, r#"a֮࢞̀̕b"#),
+        (r#"à֮࢟̕b"#, r#"à֮࢟̕b"#, r#"à֮࢟̕b"#, r#"à֮࢟̕b"#, r#"à֮࢟̕b"#),
+        (r#"a֮࢟̀̕b"#, r#"a֮࢟̀̕b"#, r#"a֮࢟̀̕b"#, r#"a֮࢟̀̕b"#, r#"a֮࢟̀̕b"#),
+        (r#"à֮࣊̕b"#, r#"à֮࣊̕b"#, r#"à֮࣊̕b"#, r#"à֮࣊̕b"#, r#"à֮࣊̕b"#),
+        (r#"a֮࣊̀̕b"#, r#"a֮࣊̀̕b"#, r#"a֮࣊̀̕b"#, r#"a֮࣊̀̕b"#, r#"a֮࣊̀̕b"#),
+        (r#"à֮࣋̕b"#, r#"à֮࣋̕b"#, r#"à֮࣋̕b"#, r#"à֮࣋̕b"#, r#"à֮࣋̕b"#),
+        (r#"a֮࣋̀̕b"#, r#"a֮࣋̀̕b"#, r#"a֮࣋̀̕b"#, r#"a֮࣋̀̕b"#, r#"a֮࣋̀̕b"#),
+        (r#"à֮࣌̕b"#, r#"à֮࣌̕b"#, r#"à֮࣌̕b"#, r#"à֮࣌̕b"#, r#"à֮࣌̕b"#),
+        (r#"a֮࣌̀̕b"#, r#"a֮࣌̀̕b"#, r#"a֮࣌̀̕b"#, r#"a֮࣌̀̕b"#, r#"a֮࣌̀̕b"#),
+        (r#"à֮࣍̕b"#, r#"à֮࣍̕b"#, r#"à֮࣍̕b"#, r#"à֮࣍̕b"#, r#"à֮࣍̕b"#),
+        (r#"a֮࣍̀̕b"#, r#"a֮࣍̀̕b"#, r#"a֮࣍̀̕b"#, r#"a֮࣍̀̕b"#, r#"a֮࣍̀̕b"#),
+        (r#"à֮࣎̕b"#, r#"à֮࣎̕b"#, r#"à֮࣎̕b"#, r#"à֮࣎̕b"#, r#"à֮࣎̕b"#),
+        (r#"a֮࣎̀̕b"#, r#"a֮࣎̀̕b"#, r#"a֮࣎̀̕b"#, r#"a֮࣎̀̕b"#, r#"a֮࣎̀̕b"#),
+        (r#"a᷺̖࣏֚b"#, r#"a᷺̖࣏֚b"#, r#"a᷺̖࣏֚b"#, r#"a᷺̖࣏֚b"#, r#"a᷺̖࣏֚b"#),
+        (r#"a᷺࣏̖֚b"#, r#"a᷺࣏̖֚b"#, r#"a᷺࣏̖֚b"#, r#"a᷺࣏̖֚b"#, r#"a᷺࣏̖֚b"#),
+        (r#"a᷺̖࣐֚b"#, r#"a᷺̖࣐֚b"#, r#"a᷺̖࣐֚b"#, r#"a᷺̖࣐֚b"#, r#"a᷺̖࣐֚b"#),
+        (r#"a᷺࣐̖֚b"#, r#"a᷺࣐̖֚b"#, r#"a᷺࣐̖֚b"#, r#"a᷺࣐̖֚b"#, r#"a᷺࣐̖֚b"#),
+        (r#"a᷺̖࣑֚b"#, r#"a᷺̖࣑֚b"#, r#"a᷺̖࣑֚b"#, r#"a᷺̖࣑֚b"#, r#"a᷺̖࣑֚b"#),
+        (r#"a᷺࣑̖֚b"#, r#"a᷺࣑̖֚b"#, r#"a᷺࣑̖֚b"#, r#"a᷺࣑̖֚b"#, r#"a᷺࣑̖֚b"#),
+        (r#"a᷺̖࣒֚b"#, r#"a᷺̖࣒֚b"#, r#"a᷺̖࣒֚b"#, r#"a᷺̖࣒֚b"#, r#"a᷺̖࣒֚b"#),
+        (r#"a᷺࣒̖֚b"#, r#"a᷺࣒̖֚b"#, r#"a᷺࣒̖֚b"#, r#"a᷺࣒̖֚b"#, r#"a᷺࣒̖֚b"#),
+        (r#"a᷺̖࣓֚b"#, r#"a᷺̖࣓֚b"#, r#"a᷺̖࣓֚b"#, r#"a᷺̖࣓֚b"#, r#"a᷺̖࣓֚b"#),
+        (r#"a᷺࣓̖֚b"#, r#"a᷺࣓̖֚b"#, r#"a᷺࣓̖֚b"#, r#"a᷺࣓̖֚b"#, r#"a᷺࣓̖֚b"#),
+        (r#"à֮ࣔ̕b"#, r#"à֮ࣔ̕b"#, r#"à֮ࣔ̕b"#, r#"à֮ࣔ̕b"#, r#"à֮ࣔ̕b"#),
+        (r#"a֮ࣔ̀̕b"#, r#"a֮ࣔ̀̕b"#, r#"a֮ࣔ̀̕b"#, r#"a֮ࣔ̀̕b"#, r#"a֮ࣔ̀̕b"#),
+        (r#"à֮ࣕ̕b"#, r#"à֮ࣕ̕b"#, r#"à֮ࣕ̕b"#, r#"à֮ࣕ̕b"#, r#"à֮ࣕ̕b"#),
+        (r#"a֮ࣕ̀̕b"#, r#"a֮ࣕ̀̕b"#, r#"a֮ࣕ̀̕b"#, r#"a֮ࣕ̀̕b"#, r#"a֮ࣕ̀̕b"#),
+        (r#"à֮ࣖ̕b"#, r#"à֮ࣖ̕b"#, r#"à֮ࣖ̕b"#, r#"à֮ࣖ̕b"#, r#"à֮ࣖ̕b"#),
+        (r#"a֮ࣖ̀̕b"#, r#"a֮ࣖ̀̕b"#, r#"a֮ࣖ̀̕b"#, r#"a֮ࣖ̀̕b"#, r#"a֮ࣖ̀̕b"#),
+        (r#"à֮ࣗ̕b"#, r#"à֮ࣗ̕b"#, r#"à֮ࣗ̕b"#, r#"à֮ࣗ̕b"#, r#"à֮ࣗ̕b"#),
+        (r#"a֮ࣗ̀̕b"#, r#"a֮ࣗ̀̕b"#, r#"a֮ࣗ̀̕b"#, r#"a֮ࣗ̀̕b"#, r#"a֮ࣗ̀̕b"#),
+        (r#"à֮ࣘ̕b"#, r#"à֮ࣘ̕b"#, r#"à֮ࣘ̕b"#, r#"à֮ࣘ̕b"#, r#"à֮ࣘ̕b"#),
+        (r#"a֮ࣘ̀̕b"#, r#"a֮ࣘ̀̕b"#, r#"a֮ࣘ̀̕b"#, r#"a֮ࣘ̀̕b"#, r#"a֮ࣘ̀̕b"#),
+        (r#"à֮ࣙ̕b"#, r#"à֮ࣙ̕b"#, r#"à֮ࣙ̕b"#, r#"à֮ࣙ̕b"#, r#"à֮ࣙ̕b"#),
+        (r#"a֮ࣙ̀̕b"#, r#"a֮ࣙ̀̕b"#, r#"a֮ࣙ̀̕b"#, r#"a֮ࣙ̀̕b"#, r#"a֮ࣙ̀̕b"#),
+        (r#"à֮ࣚ̕b"#, r#"à֮ࣚ̕b"#, r#"à֮ࣚ̕b"#, r#"à֮ࣚ̕b"#, r#"à֮ࣚ̕b"#),
+        (r#"a֮ࣚ̀̕b"#, r#"a֮ࣚ̀̕b"#, r#"a֮ࣚ̀̕b"#, r#"a֮ࣚ̀̕b"#, r#"a֮ࣚ̀̕b"#),
+        (r#"à֮ࣛ̕b"#, r#"à֮ࣛ̕b"#, r#"à֮ࣛ̕b"#, r#"à֮ࣛ̕b"#, r#"à֮ࣛ̕b"#),
+        (r#"a֮ࣛ̀̕b"#, r#"a֮ࣛ̀̕b"#, r#"a֮ࣛ̀̕b"#, r#"a֮ࣛ̀̕b"#, r#"a֮ࣛ̀̕b"#),
+        (r#"à֮ࣜ̕b"#, r#"à֮ࣜ̕b"#, r#"à֮ࣜ̕b"#, r#"à֮ࣜ̕b"#, r#"à֮ࣜ̕b"#),
+        (r#"a֮ࣜ̀̕b"#, r#"a֮ࣜ̀̕b"#, r#"a֮ࣜ̀̕b"#, r#"a֮ࣜ̀̕b"#, r#"a֮ࣜ̀̕b"#),
+        (r#"à֮ࣝ̕b"#, r#"à֮ࣝ̕b"#, r#"à֮ࣝ̕b"#, r#"à֮ࣝ̕b"#, r#"à֮ࣝ̕b"#),
+        (r#"a֮ࣝ̀̕b"#, r#"a֮ࣝ̀̕b"#, r#"a֮ࣝ̀̕b"#, r#"a֮ࣝ̀̕b"#, r#"a֮ࣝ̀̕b"#),
+        (r#"à֮ࣞ̕b"#, r#"à֮ࣞ̕b"#, r#"à֮ࣞ̕b"#, r#"à֮ࣞ̕b"#, r#"à֮ࣞ̕b"#),
+        (r#"a֮ࣞ̀̕b"#, r#"a֮ࣞ̀̕b"#, r#"a֮ࣞ̀̕b"#, r#"a֮ࣞ̀̕b"#, r#"a֮ࣞ̀̕b"#),
+        (r#"à֮ࣟ̕b"#, r#"à֮ࣟ̕b"#, r#"à֮ࣟ̕b"#, r#"à֮ࣟ̕b"#, r#"à֮ࣟ̕b"#),
+        (r#"a֮ࣟ̀̕b"#, r#"a֮ࣟ̀̕b"#, r#"a֮ࣟ̀̕b"#, r#"a֮ࣟ̀̕b"#, r#"a֮ࣟ̀̕b"#),
+        (r#"à֮࣠̕b"#, r#"à֮࣠̕b"#, r#"à֮࣠̕b"#, r#"à֮࣠̕b"#, r#"à֮࣠̕b"#),
+        (r#"a֮࣠̀̕b"#, r#"a֮࣠̀̕b"#, r#"a֮࣠̀̕b"#, r#"a֮࣠̀̕b"#, r#"a֮࣠̀̕b"#),
+        (r#"à֮࣡̕b"#, r#"à֮࣡̕b"#, r#"à֮࣡̕b"#, r#"à֮࣡̕b"#, r#"à֮࣡̕b"#),
+        (r#"a֮࣡̀̕b"#, r#"a֮࣡̀̕b"#, r#"a֮࣡̀̕b"#, r#"a֮࣡̀̕b"#, r#"a֮࣡̀̕b"#),
+        (r#"a᷺̖ࣣ֚b"#, r#"a᷺̖ࣣ֚b"#, r#"a᷺̖ࣣ֚b"#, r#"a᷺̖ࣣ֚b"#, r#"a᷺̖ࣣ֚b"#),
+        (r#"a᷺ࣣ̖֚b"#, r#"a᷺ࣣ̖֚b"#, r#"a᷺ࣣ̖֚b"#, r#"a᷺ࣣ̖֚b"#, r#"a᷺ࣣ̖֚b"#),
+        (r#"à֮ࣤ̕b"#, r#"à֮ࣤ̕b"#, r#"à֮ࣤ̕b"#, r#"à֮ࣤ̕b"#, r#"à֮ࣤ̕b"#),
+        (r#"a֮ࣤ̀̕b"#, r#"a֮ࣤ̀̕b"#, r#"a֮ࣤ̀̕b"#, r#"a֮ࣤ̀̕b"#, r#"a֮ࣤ̀̕b"#),
+        (r#"à֮ࣥ̕b"#, r#"à֮ࣥ̕b"#, r#"à֮ࣥ̕b"#, r#"à֮ࣥ̕b"#, r#"à֮ࣥ̕b"#),
+        (r#"a֮ࣥ̀̕b"#, r#"a֮ࣥ̀̕b"#, r#"a֮ࣥ̀̕b"#, r#"a֮ࣥ̀̕b"#, r#"a֮ࣥ̀̕b"#),
+        (r#"a᷺̖ࣦ֚b"#, r#"a᷺̖ࣦ֚b"#, r#"a᷺̖ࣦ֚b"#, r#"a᷺̖ࣦ֚b"#, r#"a᷺̖ࣦ֚b"#),
+        (r#"a᷺ࣦ̖֚b"#, r#"a᷺ࣦ̖֚b"#, r#"a᷺ࣦ̖֚b"#, r#"a᷺ࣦ̖֚b"#, r#"a᷺ࣦ̖֚b"#),
+        (r#"à֮ࣧ̕b"#, r#"à֮ࣧ̕b"#, r#"à֮ࣧ̕b"#, r#"à֮ࣧ̕b"#, r#"à֮ࣧ̕b"#),
+        (r#"a֮ࣧ̀̕b"#, r#"a֮ࣧ̀̕b"#, r#"a֮ࣧ̀̕b"#, r#"a֮ࣧ̀̕b"#, r#"a֮ࣧ̀̕b"#),
+        (r#"à֮ࣨ̕b"#, r#"à֮ࣨ̕b"#, r#"à֮ࣨ̕b"#, r#"à֮ࣨ̕b"#, r#"à֮ࣨ̕b"#),
+        (r#"a֮ࣨ̀̕b"#, r#"a֮ࣨ̀̕b"#, r#"a֮ࣨ̀̕b"#, r#"a֮ࣨ̀̕b"#, r#"a֮ࣨ̀̕b"#),
+        (r#"a᷺̖ࣩ֚b"#, r#"a᷺̖ࣩ֚b"#, r#"a᷺̖ࣩ֚b"#, r#"a᷺̖ࣩ֚b"#, r#"a᷺̖ࣩ֚b"#),
+        (r#"a᷺ࣩ̖֚b"#, r#"a᷺ࣩ̖֚b"#, r#"a᷺ࣩ̖֚b"#, r#"a᷺ࣩ̖֚b"#, r#"a᷺ࣩ̖֚b"#),
+        (r#"à֮࣪̕b"#, r#"à֮࣪̕b"#, r#"à֮࣪̕b"#, r#"à֮࣪̕b"#, r#"à֮࣪̕b"#),
+        (r#"a֮࣪̀̕b"#, r#"a֮࣪̀̕b"#, r#"a֮࣪̀̕b"#, r#"a֮࣪̀̕b"#, r#"a֮࣪̀̕b"#),
+        (r#"à֮࣫̕b"#, r#"à֮࣫̕b"#, r#"à֮࣫̕b"#, r#"à֮࣫̕b"#, r#"à֮࣫̕b"#),
+        (r#"a֮࣫̀̕b"#, r#"a֮࣫̀̕b"#, r#"a֮࣫̀̕b"#, r#"a֮࣫̀̕b"#, r#"a֮࣫̀̕b"#),
+        (r#"à֮࣬̕b"#, r#"à֮࣬̕b"#, r#"à֮࣬̕b"#, r#"à֮࣬̕b"#, r#"à֮࣬̕b"#),
+        (r#"a֮࣬̀̕b"#, r#"a֮࣬̀̕b"#, r#"a֮࣬̀̕b"#, r#"a֮࣬̀̕b"#, r#"a֮࣬̀̕b"#),
+        (r#"a᷺̖࣭֚b"#, r#"a᷺̖࣭֚b"#, r#"a᷺̖࣭֚b"#, r#"a᷺̖࣭֚b"#, r#"a᷺̖࣭֚b"#),
+        (r#"a᷺࣭̖֚b"#, r#"a᷺࣭̖֚b"#, r#"a᷺࣭̖֚b"#, r#"a᷺࣭̖֚b"#, r#"a᷺࣭̖֚b"#),
+        (r#"a᷺̖࣮֚b"#, r#"a᷺̖࣮֚b"#, r#"a᷺̖࣮֚b"#, r#"a᷺̖࣮֚b"#, r#"a᷺̖࣮֚b"#),
+        (r#"a᷺࣮̖֚b"#, r#"a᷺࣮̖֚b"#, r#"a᷺࣮̖֚b"#, r#"a᷺࣮̖֚b"#, r#"a᷺࣮̖֚b"#),
+        (r#"a᷺̖࣯֚b"#, r#"a᷺̖࣯֚b"#, r#"a᷺̖࣯֚b"#, r#"a᷺̖࣯֚b"#, r#"a᷺̖࣯֚b"#),
+        (r#"a᷺࣯̖֚b"#, r#"a᷺࣯̖֚b"#, r#"a᷺࣯̖֚b"#, r#"a᷺࣯̖֚b"#, r#"a᷺࣯̖֚b"#),
+        (r#"aﬞًࣰٌb"#, r#"aﬞًࣰٌb"#, r#"aﬞًࣰٌb"#, r#"aﬞًࣰٌb"#, r#"aﬞًࣰٌb"#),
+        (r#"aﬞࣰًٌb"#, r#"aﬞࣰًٌb"#, r#"aﬞࣰًٌb"#, r#"aﬞࣰًٌb"#, r#"aﬞࣰًٌb"#),
+        (r#"aًٌࣱٍb"#, r#"aًٌࣱٍb"#, r#"aًٌࣱٍb"#, r#"aًٌࣱٍb"#, r#"aًٌࣱٍb"#),
+        (r#"aًࣱٌٍb"#, r#"aًࣱٌٍb"#, r#"aًࣱٌٍb"#, r#"aًࣱٌٍb"#, r#"aًࣱٌٍb"#),
+        (r#"aٌٍࣲؘb"#, r#"aٌٍࣲؘb"#, r#"aٌٍࣲؘb"#, r#"aٌٍࣲؘb"#, r#"aٌٍࣲؘb"#),
+        (r#"aٌࣲٍؘb"#, r#"aٌࣲٍؘb"#, r#"aٌࣲٍؘb"#, r#"aٌࣲٍؘb"#, r#"aٌࣲٍؘb"#),
+        (r#"à֮ࣳ̕b"#, r#"à֮ࣳ̕b"#, r#"à֮ࣳ̕b"#, r#"à֮ࣳ̕b"#, r#"à֮ࣳ̕b"#),
+        (r#"a֮ࣳ̀̕b"#, r#"a֮ࣳ̀̕b"#, r#"a֮ࣳ̀̕b"#, r#"a֮ࣳ̀̕b"#, r#"a֮ࣳ̀̕b"#),
+        (r#"à֮ࣴ̕b"#, r#"à֮ࣴ̕b"#, r#"à֮ࣴ̕b"#, r#"à֮ࣴ̕b"#, r#"à֮ࣴ̕b"#),
+        (r#"a֮ࣴ̀̕b"#, r#"a֮ࣴ̀̕b"#, r#"a֮ࣴ̀̕b"#, r#"a֮ࣴ̀̕b"#, r#"a֮ࣴ̀̕b"#),
+        (r#"à֮ࣵ̕b"#, r#"à֮ࣵ̕b"#, r#"à֮ࣵ̕b"#, r#"à֮ࣵ̕b"#, r#"à֮ࣵ̕b"#),
+        (r#"a֮ࣵ̀̕b"#, r#"a֮ࣵ̀̕b"#, r#"a֮ࣵ̀̕b"#, r#"a֮ࣵ̀̕b"#, r#"a֮ࣵ̀̕b"#),
+        (r#"a᷺̖ࣶ֚b"#, r#"a᷺̖ࣶ֚b"#, r#"a᷺̖ࣶ֚b"#, r#"a᷺̖ࣶ֚b"#, r#"a᷺̖ࣶ֚b"#),
+        (r#"a᷺ࣶ̖֚b"#, r#"a᷺ࣶ̖֚b"#, r#"a᷺ࣶ̖֚b"#, r#"a᷺ࣶ̖֚b"#, r#"a᷺ࣶ̖֚b"#),
+        (r#"à֮ࣷ̕b"#, r#"à֮ࣷ̕b"#, r#"à֮ࣷ̕b"#, r#"à֮ࣷ̕b"#, r#"à֮ࣷ̕b"#),
+        (r#"a֮ࣷ̀̕b"#, r#"a֮ࣷ̀̕b"#, r#"a֮ࣷ̀̕b"#, r#"a֮ࣷ̀̕b"#, r#"a֮ࣷ̀̕b"#),
+        (r#"à֮ࣸ̕b"#, r#"à֮ࣸ̕b"#, r#"à֮ࣸ̕b"#, r#"à֮ࣸ̕b"#, r#"à֮ࣸ̕b"#),
+        (r#"a֮ࣸ̀̕b"#, r#"a֮ࣸ̀̕b"#, r#"a֮ࣸ̀̕b"#, r#"a֮ࣸ̀̕b"#, r#"a֮ࣸ̀̕b"#),
+        (r#"a᷺̖ࣹ֚b"#, r#"a᷺̖ࣹ֚b"#, r#"a᷺̖ࣹ֚b"#, r#"a᷺̖ࣹ֚b"#, r#"a᷺̖ࣹ֚b"#),
+        (r#"a᷺ࣹ̖֚b"#, r#"a᷺ࣹ̖֚b"#, r#"a᷺ࣹ̖֚b"#, r#"a᷺ࣹ̖֚b"#, r#"a᷺ࣹ̖֚b"#),
+        (r#"a᷺̖ࣺ֚b"#, r#"a᷺̖ࣺ֚b"#, r#"a᷺̖ࣺ֚b"#, r#"a᷺̖ࣺ֚b"#, r#"a᷺̖ࣺ֚b"#),
+        (r#"a᷺ࣺ̖֚b"#, r#"a᷺ࣺ̖֚b"#, r#"a᷺ࣺ̖֚b"#, r#"a᷺ࣺ̖֚b"#, r#"a᷺ࣺ̖֚b"#),
+        (r#"à֮ࣻ̕b"#, r#"à֮ࣻ̕b"#, r#"à֮ࣻ̕b"#, r#"à֮ࣻ̕b"#, r#"à֮ࣻ̕b"#),
+        (r#"a֮ࣻ̀̕b"#, r#"a֮ࣻ̀̕b"#, r#"a֮ࣻ̀̕b"#, r#"a֮ࣻ̀̕b"#, r#"a֮ࣻ̀̕b"#),
+        (r#"à֮ࣼ̕b"#, r#"à֮ࣼ̕b"#, r#"à֮ࣼ̕b"#, r#"à֮ࣼ̕b"#, r#"à֮ࣼ̕b"#),
+        (r#"a֮ࣼ̀̕b"#, r#"a֮ࣼ̀̕b"#, r#"a֮ࣼ̀̕b"#, r#"a֮ࣼ̀̕b"#, r#"a֮ࣼ̀̕b"#),
+        (r#"à֮ࣽ̕b"#, r#"à֮ࣽ̕b"#, r#"à֮ࣽ̕b"#, r#"à֮ࣽ̕b"#, r#"à֮ࣽ̕b"#),
+        (r#"a֮ࣽ̀̕b"#, r#"a֮ࣽ̀̕b"#, r#"a֮ࣽ̀̕b"#, r#"a֮ࣽ̀̕b"#, r#"a֮ࣽ̀̕b"#),
+        (r#"à֮ࣾ̕b"#, r#"à֮ࣾ̕b"#, r#"à֮ࣾ̕b"#, r#"à֮ࣾ̕b"#, r#"à֮ࣾ̕b"#),
+        (r#"a֮ࣾ̀̕b"#, r#"a֮ࣾ̀̕b"#, r#"a֮ࣾ̀̕b"#, r#"a֮ࣾ̀̕b"#, r#"a֮ࣾ̀̕b"#),
+        (r#"à֮ࣿ̕b"#, r#"à֮ࣿ̕b"#, r#"à֮ࣿ̕b"#, r#"à֮ࣿ̕b"#, r#"à֮ࣿ̕b"#),
+        (r#"a֮ࣿ̀̕b"#, r#"a֮ࣿ̀̕b"#, r#"a֮ࣿ̀̕b"#, r#"a֮ࣿ̀̕b"#, r#"a֮ࣿ̀̕b"#),
+        (r#"a𖿰़़゙b"#, r#"a𖿰़़゙b"#, r#"a𖿰़़゙b"#, r#"a𖿰़़゙b"#, r#"a𖿰़़゙b"#),
+        (r#"a𖿰़़゙b"#, r#"a𖿰़़゙b"#, r#"a𖿰़़゙b"#, r#"a𖿰़़゙b"#, r#"a𖿰़़゙b"#),
+        (r#"a゙््ְb"#, r#"a゙््ְb"#, r#"a゙््ְb"#, r#"a゙््ְb"#, r#"a゙््ְb"#),
+        (r#"a゙््ְb"#, r#"a゙््ְb"#, r#"a゙््ְb"#, r#"a゙््ְb"#, r#"a゙््ְb"#),
+        (r#"à֮॑̕b"#, r#"à֮॑̕b"#, r#"à֮॑̕b"#, r#"à֮॑̕b"#, r#"à֮॑̕b"#),
+        (r#"a֮॑̀̕b"#, r#"a֮॑̀̕b"#, r#"a֮॑̀̕b"#, r#"a֮॑̀̕b"#, r#"a֮॑̀̕b"#),
+        (r#"a᷺̖॒֚b"#, r#"a᷺̖॒֚b"#, r#"a᷺̖॒֚b"#, r#"a᷺̖॒֚b"#, r#"a᷺̖॒֚b"#),
+        (r#"a᷺॒̖֚b"#, r#"a᷺॒̖֚b"#, r#"a᷺॒̖֚b"#, r#"a᷺॒̖֚b"#, r#"a᷺॒̖֚b"#),
+        (r#"à֮॓̕b"#, r#"à֮॓̕b"#, r#"à֮॓̕b"#, r#"à֮॓̕b"#, r#"à֮॓̕b"#),
+        (r#"a֮॓̀̕b"#, r#"a֮॓̀̕b"#, r#"a֮॓̀̕b"#, r#"a֮॓̀̕b"#, r#"a֮॓̀̕b"#),
+        (r#"à֮॔̕b"#, r#"à֮॔̕b"#, r#"à֮॔̕b"#, r#"à֮॔̕b"#, r#"à֮॔̕b"#),
+        (r#"a֮॔̀̕b"#, r#"a֮॔̀̕b"#, r#"a֮॔̀̕b"#, r#"a֮॔̀̕b"#, r#"a֮॔̀̕b"#),
+        (r#"a𖿰़়゙b"#, r#"a𖿰़়゙b"#, r#"a𖿰़়゙b"#, r#"a𖿰़়゙b"#, r#"a𖿰़়゙b"#),
+        (r#"a𖿰়़゙b"#, r#"a𖿰়़゙b"#, r#"a𖿰়़゙b"#, r#"a𖿰়़゙b"#, r#"a𖿰়़゙b"#),
+        (r#"a゙्্ְb"#, r#"a゙्্ְb"#, r#"a゙्্ְb"#, r#"a゙्্ְb"#, r#"a゙्্ְb"#),
+        (r#"a゙্्ְb"#, r#"a゙্्ְb"#, r#"a゙্्ְb"#, r#"a゙্्ְb"#, r#"a゙্्ְb"#),
+        (r#"à֮৾̕b"#, r#"à֮৾̕b"#, r#"à֮৾̕b"#, r#"à֮৾̕b"#, r#"à֮৾̕b"#),
+        (r#"a֮৾̀̕b"#, r#"a֮৾̀̕b"#, r#"a֮৾̀̕b"#, r#"a֮৾̀̕b"#, r#"a֮৾̀̕b"#),
+        (r#"a𖿰़਼゙b"#, r#"a𖿰़਼゙b"#, r#"a𖿰़਼゙b"#, r#"a𖿰़਼゙b"#, r#"a𖿰़਼゙b"#),
+        (r#"a𖿰਼़゙b"#, r#"a𖿰਼़゙b"#, r#"a𖿰਼़゙b"#, r#"a𖿰਼़゙b"#, r#"a𖿰਼़゙b"#),
+        (r#"a゙्੍ְb"#, r#"a゙्੍ְb"#, r#"a゙्੍ְb"#, r#"a゙्੍ְb"#, r#"a゙्੍ְb"#),
+        (r#"a゙੍्ְb"#, r#"a゙੍्ְb"#, r#"a゙੍्ְb"#, r#"a゙੍्ְb"#, r#"a゙੍्ְb"#),
+        (r#"a𖿰़઼゙b"#, r#"a𖿰़઼゙b"#, r#"a𖿰़઼゙b"#, r#"a𖿰़઼゙b"#, r#"a𖿰़઼゙b"#),
+        (r#"a𖿰઼़゙b"#, r#"a𖿰઼़゙b"#, r#"a𖿰઼़゙b"#, r#"a𖿰઼़゙b"#, r#"a𖿰઼़゙b"#),
+        (r#"a゙्્ְb"#, r#"a゙्્ְb"#, r#"a゙्્ְb"#, r#"a゙्્ְb"#, r#"a゙्્ְb"#),
+        (r#"a゙્्ְb"#, r#"a゙્्ְb"#, r#"a゙્्ְb"#, r#"a゙્्ְb"#, r#"a゙્्ְb"#),
+        (r#"a𖿰़଼゙b"#, r#"a𖿰़଼゙b"#, r#"a𖿰़଼゙b"#, r#"a𖿰़଼゙b"#, r#"a𖿰़଼゙b"#),
+        (r#"a𖿰଼़゙b"#, r#"a𖿰଼़゙b"#, r#"a𖿰଼़゙b"#, r#"a𖿰଼़゙b"#, r#"a𖿰଼़゙b"#),
+        (r#"a゙्୍ְb"#, r#"a゙्୍ְb"#, r#"a゙्୍ְb"#, r#"a゙्୍ְb"#, r#"a゙्୍ְb"#),
+        (r#"a゙୍्ְb"#, r#"a゙୍्ְb"#, r#"a゙୍्ְb"#, r#"a゙୍्ְb"#, r#"a゙୍्ְb"#),
+        (r#"a゙्்ְb"#, r#"a゙्்ְb"#, r#"a゙्்ְb"#, r#"a゙्்ְb"#, r#"a゙्்ְb"#),
+        (r#"a゙்्ְb"#, r#"a゙்्ְb"#, r#"a゙்्ְb"#, r#"a゙்्ְb"#, r#"a゙்्ְb"#),
+        (r#"a𖿰़఼゙b"#, r#"a𖿰़఼゙b"#, r#"a𖿰़఼゙b"#, r#"a𖿰़఼゙b"#, r#"a𖿰़఼゙b"#),
+        (r#"a𖿰఼़゙b"#, r#"a𖿰఼़゙b"#, r#"a𖿰఼़゙b"#, r#"a𖿰఼़゙b"#, r#"a𖿰఼़゙b"#),
+        (r#"a゙्్ְb"#, r#"a゙्్ְb"#, r#"a゙्్ְb"#, r#"a゙्్ְb"#, r#"a゙्్ְb"#),
+        (r#"a゙్्ְb"#, r#"a゙్्ְb"#, r#"a゙్्ְb"#, r#"a゙్्ְb"#, r#"a゙్्ְb"#),
+        (r#"aܑౕౕౖb"#, r#"aܑౕౕౖb"#, r#"aܑౕౕౖb"#, r#"aܑౕౕౖb"#, r#"aܑౕౕౖb"#),
+        (r#"aܑౕౕౖb"#, r#"aܑౕౕౖb"#, r#"aܑౕౕౖb"#, r#"aܑౕౕౖb"#, r#"aܑౕౕౖb"#),
+        (r#"aౕౖౖุb"#, r#"aౕౖౖุb"#, r#"aౕౖౖุb"#, r#"aౕౖౖุb"#, r#"aౕౖౖุb"#),
+        (r#"aౕౖౖุb"#, r#"aౕౖౖุb"#, r#"aౕౖౖุb"#, r#"aౕౖౖุb"#, r#"aౕౖౖุb"#),
+        (r#"a𖿰़಼゙b"#, r#"a𖿰़಼゙b"#, r#"a𖿰़಼゙b"#, r#"a𖿰़಼゙b"#, r#"a𖿰़಼゙b"#),
+        (r#"a𖿰಼़゙b"#, r#"a𖿰಼़゙b"#, r#"a𖿰಼़゙b"#, r#"a𖿰಼़゙b"#, r#"a𖿰಼़゙b"#),
+        (r#"a゙्್ְb"#, r#"a゙्್ְb"#, r#"a゙्್ְb"#, r#"a゙्್ְb"#, r#"a゙्್ְb"#),
+        (r#"a゙್्ְb"#, r#"a゙್्ְb"#, r#"a゙್्ְb"#, r#"a゙್्ְb"#, r#"a゙್्ְb"#),
+        (r#"a゙्഻ְb"#, r#"a゙्഻ְb"#, r#"a゙्഻ְb"#, r#"a゙्഻ְb"#, r#"a゙्഻ְb"#),
+        (r#"a゙഻्ְb"#, r#"a゙഻्ְb"#, r#"a゙഻्ְb"#, r#"a゙഻्ְb"#, r#"a゙഻्ְb"#),
+        (r#"a゙्഼ְb"#, r#"a゙्഼ְb"#, r#"a゙्഼ְb"#, r#"a゙्഼ְb"#, r#"a゙्഼ְb"#),
+        (r#"a゙഼्ְb"#, r#"a゙഼्ְb"#, r#"a゙഼्ְb"#, r#"a゙഼्ְb"#, r#"a゙഼्ְb"#),
+        (r#"a゙्്ְb"#, r#"a゙्്ְb"#, r#"a゙्്ְb"#, r#"a゙्്ְb"#, r#"a゙्്ְb"#),
+        (r#"a゙്्ְb"#, r#"a゙്्ְb"#, r#"a゙്्ְb"#, r#"a゙്्ְb"#, r#"a゙്्ְb"#),
+        (r#"a゙्්ְb"#, r#"a゙्්ְb"#, r#"a゙्්ְb"#, r#"a゙्්ְb"#, r#"a゙्්ְb"#),
+        (r#"a゙්्ְb"#, r#"a゙්्ְb"#, r#"a゙්्ְb"#, r#"a゙්्ְb"#, r#"a゙්्ְb"#),
+        (r#"aౖุุ่b"#, r#"aౖุุ่b"#, r#"aౖุุ่b"#, r#"aౖุุ่b"#, r#"aౖุุ่b"#),
+        (r#"aౖุุ่b"#, r#"aౖุุ่b"#, r#"aౖุุ่b"#, r#"aౖุุ่b"#, r#"aౖุุ่b"#),
+        (r#"aౖุู่b"#, r#"aౖุู่b"#, r#"aౖุู่b"#, r#"aౖุู่b"#, r#"aౖุู่b"#),
+        (r#"aౖูุ่b"#, r#"aౖูุ่b"#, r#"aౖูุ่b"#, r#"aౖูุ่b"#, r#"aౖูุ่b"#),
+        (r#"a゙्ฺְb"#, r#"a゙्ฺְb"#, r#"a゙्ฺְb"#, r#"a゙्ฺְb"#, r#"a゙्ฺְb"#),
+        (r#"a゙ฺ्ְb"#, r#"a゙ฺ्ְb"#, r#"a゙ฺ्ְb"#, r#"a゙ฺ्ְb"#, r#"a゙ฺ्ְb"#),
+        (r#"aุ่่ຸb"#, r#"aุ่่ຸb"#, r#"aุ่่ຸb"#, r#"aุ่่ຸb"#, r#"aุ่่ຸb"#),
+        (r#"aุ่่ຸb"#, r#"aุ่่ຸb"#, r#"aุ่่ຸb"#, r#"aุ่่ຸb"#, r#"aุ่่ຸb"#),
+        (r#"aุ่้ຸb"#, r#"aุ่้ຸb"#, r#"aุ่้ຸb"#, r#"aุ่้ຸb"#, r#"aุ่้ຸb"#),
+        (r#"aุ้่ຸb"#, r#"aุ้่ຸb"#, r#"aุ้่ຸb"#, r#"aุ้่ຸb"#, r#"aุ้่ຸb"#),
+        (r#"aุ่๊ຸb"#, r#"aุ่๊ຸb"#, r#"aุ่๊ຸb"#, r#"aุ่๊ຸb"#, r#"aุ่๊ຸb"#),
+        (r#"aุ๊่ຸb"#, r#"aุ๊่ຸb"#, r#"aุ๊่ຸb"#, r#"aุ๊่ຸb"#, r#"aุ๊่ຸb"#),
+        (r#"aุ่๋ຸb"#, r#"aุ่๋ຸb"#, r#"aุ่๋ຸb"#, r#"aุ่๋ຸb"#, r#"aุ่๋ຸb"#),
+        (r#"aุ๋่ຸb"#, r#"aุ๋่ຸb"#, r#"aุ๋่ຸb"#, r#"aุ๋่ຸb"#, r#"aุ๋่ຸb"#),
+        (r#"a่ຸຸ່b"#, r#"a่ຸຸ່b"#, r#"a่ຸຸ່b"#, r#"a่ຸຸ່b"#, r#"a่ຸຸ່b"#),
+        (r#"a่ຸຸ່b"#, r#"a่ຸຸ່b"#, r#"a่ຸຸ່b"#, r#"a่ຸຸ່b"#, r#"a่ຸຸ່b"#),
+        (r#"a่ຸູ່b"#, r#"a่ຸູ່b"#, r#"a่ຸູ່b"#, r#"a่ຸູ່b"#, r#"a่ຸູ່b"#),
+        (r#"a่ູຸ່b"#, r#"a่ູຸ່b"#, r#"a่ູຸ່b"#, r#"a่ູຸ່b"#, r#"a่ູຸ່b"#),
+        (r#"a゙्຺ְb"#, r#"a゙्຺ְb"#, r#"a゙्຺ְb"#, r#"a゙्຺ְb"#, r#"a゙्຺ְb"#),
+        (r#"a゙຺्ְb"#, r#"a゙຺्ְb"#, r#"a゙຺्ְb"#, r#"a゙຺्ְb"#, r#"a゙຺्ְb"#),
+        (r#"aຸ່່ཱb"#, r#"aຸ່່ཱb"#, r#"aຸ່່ཱb"#, r#"aຸ່່ཱb"#, r#"aຸ່່ཱb"#),
+        (r#"aຸ່່ཱb"#, r#"aຸ່່ཱb"#, r#"aຸ່່ཱb"#, r#"aຸ່່ཱb"#, r#"aຸ່່ཱb"#),
+        (r#"aຸ່້ཱb"#, r#"aຸ່້ཱb"#, r#"aຸ່້ཱb"#, r#"aຸ່້ཱb"#, r#"aຸ່້ཱb"#),
+        (r#"aຸ້່ཱb"#, r#"aຸ້່ཱb"#, r#"aຸ້່ཱb"#, r#"aຸ້່ཱb"#, r#"aຸ້່ཱb"#),
+        (r#"aຸ່໊ཱb"#, r#"aຸ່໊ཱb"#, r#"aຸ່໊ཱb"#, r#"aຸ່໊ཱb"#, r#"aຸ່໊ཱb"#),
+        (r#"aຸ໊່ཱb"#, r#"aຸ໊່ཱb"#, r#"aຸ໊່ཱb"#, r#"aຸ໊່ཱb"#, r#"aຸ໊່ཱb"#),
+        (r#"aຸ່໋ཱb"#, r#"aຸ່໋ཱb"#, r#"aຸ່໋ཱb"#, r#"aຸ່໋ཱb"#, r#"aຸ່໋ཱb"#),
+        (r#"aຸ໋່ཱb"#, r#"aຸ໋່ཱb"#, r#"aຸ໋່ཱb"#, r#"aຸ໋່ཱb"#, r#"aຸ໋່ཱb"#),
+        (r#"a᷺̖༘֚b"#, r#"a᷺̖༘֚b"#, r#"a᷺̖༘֚b"#, r#"a᷺̖༘֚b"#, r#"a᷺̖༘֚b"#),
+        (r#"a᷺༘̖֚b"#, r#"a᷺༘̖֚b"#, r#"a᷺༘̖֚b"#, r#"a᷺༘̖֚b"#, r#"a᷺༘̖֚b"#),
+        (r#"a᷺̖༙֚b"#, r#"a᷺̖༙֚b"#, r#"a᷺̖༙֚b"#, r#"a᷺̖༙֚b"#, r#"a᷺̖༙֚b"#),
+        (r#"a᷺༙̖֚b"#, r#"a᷺༙̖֚b"#, r#"a᷺༙̖֚b"#, r#"a᷺༙̖֚b"#, r#"a᷺༙̖֚b"#),
+        (r#"a᷺̖༵֚b"#, r#"a᷺̖༵֚b"#, r#"a᷺̖༵֚b"#, r#"a᷺̖༵֚b"#, r#"a᷺̖༵֚b"#),
+        (r#"a᷺༵̖֚b"#, r#"a᷺༵̖֚b"#, r#"a᷺༵̖֚b"#, r#"a᷺༵̖֚b"#, r#"a᷺༵̖֚b"#),
+        (r#"a᷺̖༷֚b"#, r#"a᷺̖༷֚b"#, r#"a᷺̖༷֚b"#, r#"a᷺̖༷֚b"#, r#"a᷺̖༷֚b"#),
+        (r#"a᷺༷̖֚b"#, r#"a᷺༷̖֚b"#, r#"a᷺༷̖֚b"#, r#"a᷺༷̖֚b"#, r#"a᷺༷̖֚b"#),
+        (r#"a᷎̛༹᷺b"#, r#"a᷎̛༹᷺b"#, r#"a᷎̛༹᷺b"#, r#"a᷎̛༹᷺b"#, r#"a᷎̛༹᷺b"#),
+        (r#"a᷎༹̛᷺b"#, r#"a᷎༹̛᷺b"#, r#"a᷎༹̛᷺b"#, r#"a᷎༹̛᷺b"#, r#"a᷎༹̛᷺b"#),
+        (r#"a່ཱཱིb"#, r#"a່ཱཱིb"#, r#"a່ཱཱིb"#, r#"a່ཱཱིb"#, r#"a່ཱཱིb"#),
+        (r#"a່ཱཱིb"#, r#"a່ཱཱིb"#, r#"a່ཱཱིb"#, r#"a່ཱཱིb"#, r#"a່ཱཱིb"#),
+        (r#"aཱིིུb"#, r#"aཱིིུb"#, r#"aཱིིུb"#, r#"aཱིིུb"#, r#"aཱིིུb"#),
+        (r#"aཱིིུb"#, r#"aཱིིུb"#, r#"aཱིིུb"#, r#"aཱིིུb"#, r#"aཱིིུb"#),
+        (r#"aིུུ̡b"#, r#"aིུུ̡b"#, r#"aིུུ̡b"#, r#"aིུུ̡b"#, r#"aིུུ̡b"#),
+        (r#"aིུུ̡b"#, r#"aིུུ̡b"#, r#"aིུུ̡b"#, r#"aིུུ̡b"#, r#"aིུུ̡b"#),
+        (r#"aཱིེུb"#, r#"aཱིེུb"#, r#"aཱིེུb"#, r#"aཱིེུb"#, r#"aཱིེུb"#),
+        (r#"aཱེིུb"#, r#"aཱེིུb"#, r#"aཱེིུb"#, r#"aཱེིུb"#, r#"aཱེིུb"#),
+        (r#"aཱིཻུb"#, r#"aཱིཻུb"#, r#"aཱིཻུb"#, r#"aཱིཻུb"#, r#"aཱིཻུb"#),
+        (r#"aཱཻིུb"#, r#"aཱཻིུb"#, r#"aཱཻིུb"#, r#"aཱཻིུb"#, r#"aཱཻིུb"#),
+        (r#"aཱིོུb"#, r#"aཱིོུb"#, r#"aཱིོུb"#, r#"aཱིོུb"#, r#"aཱིོུb"#),
+        (r#"aཱོིུb"#, r#"aཱོིུb"#, r#"aཱོིུb"#, r#"aཱོིུb"#, r#"aཱོིུb"#),
+        (r#"aཱིཽུb"#, r#"aཱིཽུb"#, r#"aཱིཽུb"#, r#"aཱིཽུb"#, r#"aཱིཽུb"#),
+        (r#"aཱཽིུb"#, r#"aཱཽིུb"#, r#"aཱཽིུb"#, r#"aཱཽིུb"#, r#"aཱཽིུb"#),
+        (r#"aཱིྀུb"#, r#"aཱིྀུb"#, r#"aཱིྀུb"#, r#"aཱིྀུb"#, r#"aཱིྀུb"#),
+        (r#"aཱྀིུb"#, r#"aཱྀིུb"#, r#"aཱྀིུb"#, r#"aཱྀིུb"#, r#"aཱྀིུb"#),
+        (r#"à֮ྂ̕b"#, r#"à֮ྂ̕b"#, r#"à֮ྂ̕b"#, r#"à֮ྂ̕b"#, r#"à֮ྂ̕b"#),
+        (r#"a֮ྂ̀̕b"#, r#"a֮ྂ̀̕b"#, r#"a֮ྂ̀̕b"#, r#"a֮ྂ̀̕b"#, r#"a֮ྂ̀̕b"#),
+        (r#"à֮ྃ̕b"#, r#"à֮ྃ̕b"#, r#"à֮ྃ̕b"#, r#"à֮ྃ̕b"#, r#"à֮ྃ̕b"#),
+        (r#"a֮ྃ̀̕b"#, r#"a֮ྃ̀̕b"#, r#"a֮ྃ̀̕b"#, r#"a֮ྃ̀̕b"#, r#"a֮ྃ̀̕b"#),
+        (r#"a゙्྄ְb"#, r#"a゙्྄ְb"#, r#"a゙्྄ְb"#, r#"a゙्྄ְb"#, r#"a゙्྄ְb"#),
+        (r#"a゙྄्ְb"#, r#"a゙྄्ְb"#, r#"a゙྄्ְb"#, r#"a゙྄्ְb"#, r#"a゙྄्ְb"#),
+        (r#"à֮྆̕b"#, r#"à֮྆̕b"#, r#"à֮྆̕b"#, r#"à֮྆̕b"#, r#"à֮྆̕b"#),
+        (r#"a֮྆̀̕b"#, r#"a֮྆̀̕b"#, r#"a֮྆̀̕b"#, r#"a֮྆̀̕b"#, r#"a֮྆̀̕b"#),
+        (r#"à֮྇̕b"#, r#"à֮྇̕b"#, r#"à֮྇̕b"#, r#"à֮྇̕b"#, r#"à֮྇̕b"#),
+        (r#"a֮྇̀̕b"#, r#"a֮྇̀̕b"#, r#"a֮྇̀̕b"#, r#"a֮྇̀̕b"#, r#"a֮྇̀̕b"#),
+        (r#"a᷺̖࿆֚b"#, r#"a᷺̖࿆֚b"#, r#"a᷺̖࿆֚b"#, r#"a᷺̖࿆֚b"#, r#"a᷺̖࿆֚b"#),
+        (r#"a᷺࿆̖֚b"#, r#"a᷺࿆̖֚b"#, r#"a᷺࿆̖֚b"#, r#"a᷺࿆̖֚b"#, r#"a᷺࿆̖֚b"#),
+        (r#"a𖿰़့゙b"#, r#"a𖿰़့゙b"#, r#"a𖿰़့゙b"#, r#"a𖿰़့゙b"#, r#"a𖿰़့゙b"#),
+        (r#"a𖿰့़゙b"#, r#"a𖿰့़゙b"#, r#"a𖿰့़゙b"#, r#"a𖿰့़゙b"#, r#"a𖿰့़゙b"#),
+        (r#"a゙्္ְb"#, r#"a゙्္ְb"#, r#"a゙्္ְb"#, r#"a゙्္ְb"#, r#"a゙्္ְb"#),
+        (r#"a゙္्ְb"#, r#"a゙္्ְb"#, r#"a゙္्ְb"#, r#"a゙္्ְb"#, r#"a゙္्ְb"#),
+        (r#"a゙्်ְb"#, r#"a゙्်ְb"#, r#"a゙्်ְb"#, r#"a゙्်ְb"#, r#"a゙्်ְb"#),
+        (r#"a゙်्ְb"#, r#"a゙်्ְb"#, r#"a゙်्ְb"#, r#"a゙်्ְb"#, r#"a゙်्ְb"#),
+        (r#"a᷺̖ႍ֚b"#, r#"a᷺̖ႍ֚b"#, r#"a᷺̖ႍ֚b"#, r#"a᷺̖ႍ֚b"#, r#"a᷺̖ႍ֚b"#),
+        (r#"a᷺ႍ̖֚b"#, r#"a᷺ႍ̖֚b"#, r#"a᷺ႍ̖֚b"#, r#"a᷺ႍ̖֚b"#, r#"a᷺ႍ̖֚b"#),
+        (r#"à֮፝̕b"#, r#"à֮፝̕b"#, r#"à֮፝̕b"#, r#"à֮፝̕b"#, r#"à֮፝̕b"#),
+        (r#"a֮፝̀̕b"#, r#"a֮፝̀̕b"#, r#"a֮፝̀̕b"#, r#"a֮፝̀̕b"#, r#"a֮፝̀̕b"#),
+        (r#"à֮፞̕b"#, r#"à֮፞̕b"#, r#"à֮፞̕b"#, r#"à֮፞̕b"#, r#"à֮፞̕b"#),
+        (r#"a֮፞̀̕b"#, r#"a֮፞̀̕b"#, r#"a֮፞̀̕b"#, r#"a֮፞̀̕b"#, r#"a֮፞̀̕b"#),
+        (r#"à֮፟̕b"#, r#"à֮፟̕b"#, r#"à֮፟̕b"#, r#"à֮፟̕b"#, r#"à֮፟̕b"#),
+        (r#"a֮፟̀̕b"#, r#"a֮፟̀̕b"#, r#"a֮፟̀̕b"#, r#"a֮፟̀̕b"#, r#"a֮፟̀̕b"#),
+        (r#"a゙्᜔ְb"#, r#"a゙्᜔ְb"#, r#"a゙्᜔ְb"#, r#"a゙्᜔ְb"#, r#"a゙्᜔ְb"#),
+        (r#"a゙᜔्ְb"#, r#"a゙᜔्ְb"#, r#"a゙᜔्ְb"#, r#"a゙᜔्ְb"#, r#"a゙᜔्ְb"#),
+        (r#"a゙्᜕ְb"#, r#"a゙्᜕ְb"#, r#"a゙्᜕ְb"#, r#"a゙्᜕ְb"#, r#"a゙्᜕ְb"#),
+        (r#"a゙᜕्ְb"#, r#"a゙᜕्ְb"#, r#"a゙᜕्ְb"#, r#"a゙᜕्ְb"#, r#"a゙᜕्ְb"#),
+        (r#"a゙्᜴ְb"#, r#"a゙्᜴ְb"#, r#"a゙्᜴ְb"#, r#"a゙्᜴ְb"#, r#"a゙्᜴ְb"#),
+        (r#"a゙᜴्ְb"#, r#"a゙᜴्ְb"#, r#"a゙᜴्ְb"#, r#"a゙᜴्ְb"#, r#"a゙᜴्ְb"#),
+        (r#"a゙्្ְb"#, r#"a゙्្ְb"#, r#"a゙्្ְb"#, r#"a゙्្ְb"#, r#"a゙्្ְb"#),
+        (r#"a゙្्ְb"#, r#"a゙្्ְb"#, r#"a゙្्ְb"#, r#"a゙្्ְb"#, r#"a゙្्ְb"#),
+        (r#"à֮៝̕b"#, r#"à֮៝̕b"#, r#"à֮៝̕b"#, r#"à֮៝̕b"#, r#"à֮៝̕b"#),
+        (r#"a֮៝̀̕b"#, r#"a֮៝̀̕b"#, r#"a֮៝̀̕b"#, r#"a֮៝̀̕b"#, r#"a֮៝̀̕b"#),
+        (r#"à𝅭֮ᢩb"#, r#"à𝅭֮ᢩb"#, r#"à𝅭֮ᢩb"#, r#"à𝅭֮ᢩb"#, r#"à𝅭֮ᢩb"#),
+        (r#"à𝅭ᢩ֮b"#, r#"à𝅭ᢩ֮b"#, r#"à𝅭ᢩ֮b"#, r#"à𝅭ᢩ֮b"#, r#"à𝅭ᢩ֮b"#),
+        (r#"a̖֚᤹〮b"#, r#"a̖֚᤹〮b"#, r#"a̖֚᤹〮b"#, r#"a̖֚᤹〮b"#, r#"a̖֚᤹〮b"#),
+        (r#"a̖᤹֚〮b"#, r#"a̖᤹֚〮b"#, r#"a̖᤹֚〮b"#, r#"a̖᤹֚〮b"#, r#"a̖᤹֚〮b"#),
+        (r#"à֮᤺̕b"#, r#"à֮᤺̕b"#, r#"à֮᤺̕b"#, r#"à֮᤺̕b"#, r#"à֮᤺̕b"#),
+        (r#"a֮᤺̀̕b"#, r#"a֮᤺̀̕b"#, r#"a֮᤺̀̕b"#, r#"a֮᤺̀̕b"#, r#"a֮᤺̀̕b"#),
+        (r#"a᷺̖᤻֚b"#, r#"a᷺̖᤻֚b"#, r#"a᷺̖᤻֚b"#, r#"a᷺̖᤻֚b"#, r#"a᷺̖᤻֚b"#),
+        (r#"a᷺᤻̖֚b"#, r#"a᷺᤻̖֚b"#, r#"a᷺᤻̖֚b"#, r#"a᷺᤻̖֚b"#, r#"a᷺᤻̖֚b"#),
+        (r#"à֮ᨗ̕b"#, r#"à֮ᨗ̕b"#, r#"à֮ᨗ̕b"#, r#"à֮ᨗ̕b"#, r#"à֮ᨗ̕b"#),
+        (r#"a֮ᨗ̀̕b"#, r#"a֮ᨗ̀̕b"#, r#"a֮ᨗ̀̕b"#, r#"a֮ᨗ̀̕b"#, r#"a֮ᨗ̀̕b"#),
+        (r#"a᷺̖ᨘ֚b"#, r#"a᷺̖ᨘ֚b"#, r#"a᷺̖ᨘ֚b"#, r#"a᷺̖ᨘ֚b"#, r#"a᷺̖ᨘ֚b"#),
+        (r#"a᷺ᨘ̖֚b"#, r#"a᷺ᨘ̖֚b"#, r#"a᷺ᨘ̖֚b"#, r#"a᷺ᨘ̖֚b"#, r#"a᷺ᨘ̖֚b"#),
+        (r#"a゙्᩠ְb"#, r#"a゙्᩠ְb"#, r#"a゙्᩠ְb"#, r#"a゙्᩠ְb"#, r#"a゙्᩠ְb"#),
+        (r#"a゙᩠्ְb"#, r#"a゙᩠्ְb"#, r#"a゙᩠्ְb"#, r#"a゙᩠्ְb"#, r#"a゙᩠्ְb"#),
+        (r#"à֮᩵̕b"#, r#"à֮᩵̕b"#, r#"à֮᩵̕b"#, r#"à֮᩵̕b"#, r#"à֮᩵̕b"#),
+        (r#"a֮᩵̀̕b"#, r#"a֮᩵̀̕b"#, r#"a֮᩵̀̕b"#, r#"a֮᩵̀̕b"#, r#"a֮᩵̀̕b"#),
+        (r#"à֮᩶̕b"#, r#"à֮᩶̕b"#, r#"à֮᩶̕b"#, r#"à֮᩶̕b"#, r#"à֮᩶̕b"#),
+        (r#"a֮᩶̀̕b"#, r#"a֮᩶̀̕b"#, r#"a֮᩶̀̕b"#, r#"a֮᩶̀̕b"#, r#"a֮᩶̀̕b"#),
+        (r#"à֮᩷̕b"#, r#"à֮᩷̕b"#, r#"à֮᩷̕b"#, r#"à֮᩷̕b"#, r#"à֮᩷̕b"#),
+        (r#"a֮᩷̀̕b"#, r#"a֮᩷̀̕b"#, r#"a֮᩷̀̕b"#, r#"a֮᩷̀̕b"#, r#"a֮᩷̀̕b"#),
+        (r#"à֮᩸̕b"#, r#"à֮᩸̕b"#, r#"à֮᩸̕b"#, r#"à֮᩸̕b"#, r#"à֮᩸̕b"#),
+        (r#"a֮᩸̀̕b"#, r#"a֮᩸̀̕b"#, r#"a֮᩸̀̕b"#, r#"a֮᩸̀̕b"#, r#"a֮᩸̀̕b"#),
+        (r#"à֮᩹̕b"#, r#"à֮᩹̕b"#, r#"à֮᩹̕b"#, r#"à֮᩹̕b"#, r#"à֮᩹̕b"#),
+        (r#"a֮᩹̀̕b"#, r#"a֮᩹̀̕b"#, r#"a֮᩹̀̕b"#, r#"a֮᩹̀̕b"#, r#"a֮᩹̀̕b"#),
+        (r#"à֮᩺̕b"#, r#"à֮᩺̕b"#, r#"à֮᩺̕b"#, r#"à֮᩺̕b"#, r#"à֮᩺̕b"#),
+        (r#"a֮᩺̀̕b"#, r#"a֮᩺̀̕b"#, r#"a֮᩺̀̕b"#, r#"a֮᩺̀̕b"#, r#"a֮᩺̀̕b"#),
+        (r#"à֮᩻̕b"#, r#"à֮᩻̕b"#, r#"à֮᩻̕b"#, r#"à֮᩻̕b"#, r#"à֮᩻̕b"#),
+        (r#"a֮᩻̀̕b"#, r#"a֮᩻̀̕b"#, r#"a֮᩻̀̕b"#, r#"a֮᩻̀̕b"#, r#"a֮᩻̀̕b"#),
+        (r#"à֮᩼̕b"#, r#"à֮᩼̕b"#, r#"à֮᩼̕b"#, r#"à֮᩼̕b"#, r#"à֮᩼̕b"#),
+        (r#"a֮᩼̀̕b"#, r#"a֮᩼̀̕b"#, r#"a֮᩼̀̕b"#, r#"a֮᩼̀̕b"#, r#"a֮᩼̀̕b"#),
+        (r#"a᷺̖᩿֚b"#, r#"a᷺̖᩿֚b"#, r#"a᷺̖᩿֚b"#, r#"a᷺̖᩿֚b"#, r#"a᷺̖᩿֚b"#),
+        (r#"a᷺᩿̖֚b"#, r#"a᷺᩿̖֚b"#, r#"a᷺᩿̖֚b"#, r#"a᷺᩿̖֚b"#, r#"a᷺᩿̖֚b"#),
+        (r#"à֮᪰̕b"#, r#"à֮᪰̕b"#, r#"à֮᪰̕b"#, r#"à֮᪰̕b"#, r#"à֮᪰̕b"#),
+        (r#"a֮᪰̀̕b"#, r#"a֮᪰̀̕b"#, r#"a֮᪰̀̕b"#, r#"a֮᪰̀̕b"#, r#"a֮᪰̀̕b"#),
+        (r#"à֮᪱̕b"#, r#"à֮᪱̕b"#, r#"à֮᪱̕b"#, r#"à֮᪱̕b"#, r#"à֮᪱̕b"#),
+        (r#"a֮᪱̀̕b"#, r#"a֮᪱̀̕b"#, r#"a֮᪱̀̕b"#, r#"a֮᪱̀̕b"#, r#"a֮᪱̀̕b"#),
+        (r#"à֮᪲̕b"#, r#"à֮᪲̕b"#, r#"à֮᪲̕b"#, r#"à֮᪲̕b"#, r#"à֮᪲̕b"#),
+        (r#"a֮᪲̀̕b"#, r#"a֮᪲̀̕b"#, r#"a֮᪲̀̕b"#, r#"a֮᪲̀̕b"#, r#"a֮᪲̀̕b"#),
+        (r#"à֮᪳̕b"#, r#"à֮᪳̕b"#, r#"à֮᪳̕b"#, r#"à֮᪳̕b"#, r#"à֮᪳̕b"#),
+        (r#"a֮᪳̀̕b"#, r#"a֮᪳̀̕b"#, r#"a֮᪳̀̕b"#, r#"a֮᪳̀̕b"#, r#"a֮᪳̀̕b"#),
+        (r#"à֮᪴̕b"#, r#"à֮᪴̕b"#, r#"à֮᪴̕b"#, r#"à֮᪴̕b"#, r#"à֮᪴̕b"#),
+        (r#"a֮᪴̀̕b"#, r#"a֮᪴̀̕b"#, r#"a֮᪴̀̕b"#, r#"a֮᪴̀̕b"#, r#"a֮᪴̀̕b"#),
+        (r#"a᷺̖᪵֚b"#, r#"a᷺̖᪵֚b"#, r#"a᷺̖᪵֚b"#, r#"a᷺̖᪵֚b"#, r#"a᷺̖᪵֚b"#),
+        (r#"a᷺᪵̖֚b"#, r#"a᷺᪵̖֚b"#, r#"a᷺᪵̖֚b"#, r#"a᷺᪵̖֚b"#, r#"a᷺᪵̖֚b"#),
+        (r#"a᷺̖᪶֚b"#, r#"a᷺̖᪶֚b"#, r#"a᷺̖᪶֚b"#, r#"a᷺̖᪶֚b"#, r#"a᷺̖᪶֚b"#),
+        (r#"a᷺᪶̖֚b"#, r#"a᷺᪶̖֚b"#, r#"a᷺᪶̖֚b"#, r#"a᷺᪶̖֚b"#, r#"a᷺᪶̖֚b"#),
+        (r#"a᷺̖᪷֚b"#, r#"a᷺̖᪷֚b"#, r#"a᷺̖᪷֚b"#, r#"a᷺̖᪷֚b"#, r#"a᷺̖᪷֚b"#),
+        (r#"a᷺᪷̖֚b"#, r#"a᷺᪷̖֚b"#, r#"a᷺᪷̖֚b"#, r#"a᷺᪷̖֚b"#, r#"a᷺᪷̖֚b"#),
+        (r#"a᷺̖᪸֚b"#, r#"a᷺̖᪸֚b"#, r#"a᷺̖᪸֚b"#, r#"a᷺̖᪸֚b"#, r#"a᷺̖᪸֚b"#),
+        (r#"a᷺᪸̖֚b"#, r#"a᷺᪸̖֚b"#, r#"a᷺᪸̖֚b"#, r#"a᷺᪸̖֚b"#, r#"a᷺᪸̖֚b"#),
+        (r#"a᷺̖᪹֚b"#, r#"a᷺̖᪹֚b"#, r#"a᷺̖᪹֚b"#, r#"a᷺̖᪹֚b"#, r#"a᷺̖᪹֚b"#),
+        (r#"a᷺᪹̖֚b"#, r#"a᷺᪹̖֚b"#, r#"a᷺᪹̖֚b"#, r#"a᷺᪹̖֚b"#, r#"a᷺᪹̖֚b"#),
+        (r#"a᷺̖᪺֚b"#, r#"a᷺̖᪺֚b"#, r#"a᷺̖᪺֚b"#, r#"a᷺̖᪺֚b"#, r#"a᷺̖᪺֚b"#),
+        (r#"a᷺᪺̖֚b"#, r#"a᷺᪺̖֚b"#, r#"a᷺᪺̖֚b"#, r#"a᷺᪺̖֚b"#, r#"a᷺᪺̖֚b"#),
+        (r#"à֮᪻̕b"#, r#"à֮᪻̕b"#, r#"à֮᪻̕b"#, r#"à֮᪻̕b"#, r#"à֮᪻̕b"#),
+        (r#"a֮᪻̀̕b"#, r#"a֮᪻̀̕b"#, r#"a֮᪻̀̕b"#, r#"a֮᪻̀̕b"#, r#"a֮᪻̀̕b"#),
+        (r#"à֮᪼̕b"#, r#"à֮᪼̕b"#, r#"à֮᪼̕b"#, r#"à֮᪼̕b"#, r#"à֮᪼̕b"#),
+        (r#"a֮᪼̀̕b"#, r#"a֮᪼̀̕b"#, r#"a֮᪼̀̕b"#, r#"a֮᪼̀̕b"#, r#"a֮᪼̀̕b"#),
+        (r#"a᷺̖᪽֚b"#, r#"a᷺̖᪽֚b"#, r#"a᷺̖᪽֚b"#, r#"a᷺̖᪽֚b"#, r#"a᷺̖᪽֚b"#),
+        (r#"a᷺᪽̖֚b"#, r#"a᷺᪽̖֚b"#, r#"a᷺᪽̖֚b"#, r#"a᷺᪽̖֚b"#, r#"a᷺᪽̖֚b"#),
+        (r#"a᷺̖ᪿ֚b"#, r#"a᷺̖ᪿ֚b"#, r#"a᷺̖ᪿ֚b"#, r#"a᷺̖ᪿ֚b"#, r#"a᷺̖ᪿ֚b"#),
+        (r#"a᷺ᪿ̖֚b"#, r#"a᷺ᪿ̖֚b"#, r#"a᷺ᪿ̖֚b"#, r#"a᷺ᪿ̖֚b"#, r#"a᷺ᪿ̖֚b"#),
+        (r#"a᷺̖ᫀ֚b"#, r#"a᷺̖ᫀ֚b"#, r#"a᷺̖ᫀ֚b"#, r#"a᷺̖ᫀ֚b"#, r#"a᷺̖ᫀ֚b"#),
+        (r#"a᷺ᫀ̖֚b"#, r#"a᷺ᫀ̖֚b"#, r#"a᷺ᫀ̖֚b"#, r#"a᷺ᫀ̖֚b"#, r#"a᷺ᫀ̖֚b"#),
+        (r#"à֮᫁̕b"#, r#"à֮᫁̕b"#, r#"à֮᫁̕b"#, r#"à֮᫁̕b"#, r#"à֮᫁̕b"#),
+        (r#"a֮᫁̀̕b"#, r#"a֮᫁̀̕b"#, r#"a֮᫁̀̕b"#, r#"a֮᫁̀̕b"#, r#"a֮᫁̀̕b"#),
+        (r#"à֮᫂̕b"#, r#"à֮᫂̕b"#, r#"à֮᫂̕b"#, r#"à֮᫂̕b"#, r#"à֮᫂̕b"#),
+        (r#"a֮᫂̀̕b"#, r#"a֮᫂̀̕b"#, r#"a֮᫂̀̕b"#, r#"a֮᫂̀̕b"#, r#"a֮᫂̀̕b"#),
+        (r#"a᷺̖᫃֚b"#, r#"a᷺̖᫃֚b"#, r#"a᷺̖᫃֚b"#, r#"a᷺̖᫃֚b"#, r#"a᷺̖᫃֚b"#),
+        (r#"a᷺᫃̖֚b"#, r#"a᷺᫃̖֚b"#, r#"a᷺᫃̖֚b"#, r#"a᷺᫃̖֚b"#, r#"a᷺᫃̖֚b"#),
+        (r#"a᷺̖᫄֚b"#, r#"a᷺̖᫄֚b"#, r#"a᷺̖᫄֚b"#, r#"a᷺̖᫄֚b"#, r#"a᷺̖᫄֚b"#),
+        (r#"a᷺᫄̖֚b"#, r#"a᷺᫄̖֚b"#, r#"a᷺᫄̖֚b"#, r#"a᷺᫄̖֚b"#, r#"a᷺᫄̖֚b"#),
+        (r#"à֮᫅̕b"#, r#"à֮᫅̕b"#, r#"à֮᫅̕b"#, r#"à֮᫅̕b"#, r#"à֮᫅̕b"#),
+        (r#"a֮᫅̀̕b"#, r#"a֮᫅̀̕b"#, r#"a֮᫅̀̕b"#, r#"a֮᫅̀̕b"#, r#"a֮᫅̀̕b"#),
+        (r#"à֮᫆̕b"#, r#"à֮᫆̕b"#, r#"à֮᫆̕b"#, r#"à֮᫆̕b"#, r#"à֮᫆̕b"#),
+        (r#"a֮᫆̀̕b"#, r#"a֮᫆̀̕b"#, r#"a֮᫆̀̕b"#, r#"a֮᫆̀̕b"#, r#"a֮᫆̀̕b"#),
+        (r#"à֮᫇̕b"#, r#"à֮᫇̕b"#, r#"à֮᫇̕b"#, r#"à֮᫇̕b"#, r#"à֮᫇̕b"#),
+        (r#"a֮᫇̀̕b"#, r#"a֮᫇̀̕b"#, r#"a֮᫇̀̕b"#, r#"a֮᫇̀̕b"#, r#"a֮᫇̀̕b"#),
+        (r#"à֮᫈̕b"#, r#"à֮᫈̕b"#, r#"à֮᫈̕b"#, r#"à֮᫈̕b"#, r#"à֮᫈̕b"#),
+        (r#"a֮᫈̀̕b"#, r#"a֮᫈̀̕b"#, r#"a֮᫈̀̕b"#, r#"a֮᫈̀̕b"#, r#"a֮᫈̀̕b"#),
+        (r#"à֮᫉̕b"#, r#"à֮᫉̕b"#, r#"à֮᫉̕b"#, r#"à֮᫉̕b"#, r#"à֮᫉̕b"#),
+        (r#"a֮᫉̀̕b"#, r#"a֮᫉̀̕b"#, r#"a֮᫉̀̕b"#, r#"a֮᫉̀̕b"#, r#"a֮᫉̀̕b"#),
+        (r#"a᷺̖᫊֚b"#, r#"a᷺̖᫊֚b"#, r#"a᷺̖᫊֚b"#, r#"a᷺̖᫊֚b"#, r#"a᷺̖᫊֚b"#),
+        (r#"a᷺᫊̖֚b"#, r#"a᷺᫊̖֚b"#, r#"a᷺᫊̖֚b"#, r#"a᷺᫊̖֚b"#, r#"a᷺᫊̖֚b"#),
+        (r#"à֮᫋̕b"#, r#"à֮᫋̕b"#, r#"à֮᫋̕b"#, r#"à֮᫋̕b"#, r#"à֮᫋̕b"#),
+        (r#"a֮᫋̀̕b"#, r#"a֮᫋̀̕b"#, r#"a֮᫋̀̕b"#, r#"a֮᫋̀̕b"#, r#"a֮᫋̀̕b"#),
+        (r#"à֮ᫌ̕b"#, r#"à֮ᫌ̕b"#, r#"à֮ᫌ̕b"#, r#"à֮ᫌ̕b"#, r#"à֮ᫌ̕b"#),
+        (r#"a֮ᫌ̀̕b"#, r#"a֮ᫌ̀̕b"#, r#"a֮ᫌ̀̕b"#, r#"a֮ᫌ̀̕b"#, r#"a֮ᫌ̀̕b"#),
+        (r#"à֮ᫍ̕b"#, r#"à֮ᫍ̕b"#, r#"à֮ᫍ̕b"#, r#"à֮ᫍ̕b"#, r#"à֮ᫍ̕b"#),
+        (r#"a֮ᫍ̀̕b"#, r#"a֮ᫍ̀̕b"#, r#"a֮ᫍ̀̕b"#, r#"a֮ᫍ̀̕b"#, r#"a֮ᫍ̀̕b"#),
+        (r#"à֮ᫎ̕b"#, r#"à֮ᫎ̕b"#, r#"à֮ᫎ̕b"#, r#"à֮ᫎ̕b"#, r#"à֮ᫎ̕b"#),
+        (r#"a֮ᫎ̀̕b"#, r#"a֮ᫎ̀̕b"#, r#"a֮ᫎ̀̕b"#, r#"a֮ᫎ̀̕b"#, r#"a֮ᫎ̀̕b"#),
+        (r#"a𖿰़᬴゙b"#, r#"a𖿰़᬴゙b"#, r#"a𖿰़᬴゙b"#, r#"a𖿰़᬴゙b"#, r#"a𖿰़᬴゙b"#),
+        (r#"a𖿰᬴़゙b"#, r#"a𖿰᬴़゙b"#, r#"a𖿰᬴़゙b"#, r#"a𖿰᬴़゙b"#, r#"a𖿰᬴़゙b"#),
+        (r#"a゙्᭄ְb"#, r#"a゙्᭄ְb"#, r#"a゙्᭄ְb"#, r#"a゙्᭄ְb"#, r#"a゙्᭄ְb"#),
+        (r#"a゙᭄्ְb"#, r#"a゙᭄्ְb"#, r#"a゙᭄्ְb"#, r#"a゙᭄्ְb"#, r#"a゙᭄्ְb"#),
+        (r#"à֮᭫̕b"#, r#"à֮᭫̕b"#, r#"à֮᭫̕b"#, r#"à֮᭫̕b"#, r#"à֮᭫̕b"#),
+        (r#"a֮᭫̀̕b"#, r#"a֮᭫̀̕b"#, r#"a֮᭫̀̕b"#, r#"a֮᭫̀̕b"#, r#"a֮᭫̀̕b"#),
+        (r#"a᷺̖᭬֚b"#, r#"a᷺̖᭬֚b"#, r#"a᷺̖᭬֚b"#, r#"a᷺̖᭬֚b"#, r#"a᷺̖᭬֚b"#),
+        (r#"a᷺᭬̖֚b"#, r#"a᷺᭬̖֚b"#, r#"a᷺᭬̖֚b"#, r#"a᷺᭬̖֚b"#, r#"a᷺᭬̖֚b"#),
+        (r#"à֮᭭̕b"#, r#"à֮᭭̕b"#, r#"à֮᭭̕b"#, r#"à֮᭭̕b"#, r#"à֮᭭̕b"#),
+        (r#"a֮᭭̀̕b"#, r#"a֮᭭̀̕b"#, r#"a֮᭭̀̕b"#, r#"a֮᭭̀̕b"#, r#"a֮᭭̀̕b"#),
+        (r#"à֮᭮̕b"#, r#"à֮᭮̕b"#, r#"à֮᭮̕b"#, r#"à֮᭮̕b"#, r#"à֮᭮̕b"#),
+        (r#"a֮᭮̀̕b"#, r#"a֮᭮̀̕b"#, r#"a֮᭮̀̕b"#, r#"a֮᭮̀̕b"#, r#"a֮᭮̀̕b"#),
+        (r#"à֮᭯̕b"#, r#"à֮᭯̕b"#, r#"à֮᭯̕b"#, r#"à֮᭯̕b"#, r#"à֮᭯̕b"#),
+        (r#"a֮᭯̀̕b"#, r#"a֮᭯̀̕b"#, r#"a֮᭯̀̕b"#, r#"a֮᭯̀̕b"#, r#"a֮᭯̀̕b"#),
+        (r#"à֮᭰̕b"#, r#"à֮᭰̕b"#, r#"à֮᭰̕b"#, r#"à֮᭰̕b"#, r#"à֮᭰̕b"#),
+        (r#"a֮᭰̀̕b"#, r#"a֮᭰̀̕b"#, r#"a֮᭰̀̕b"#, r#"a֮᭰̀̕b"#, r#"a֮᭰̀̕b"#),
+        (r#"à֮᭱̕b"#, r#"à֮᭱̕b"#, r#"à֮᭱̕b"#, r#"à֮᭱̕b"#, r#"à֮᭱̕b"#),
+        (r#"a֮᭱̀̕b"#, r#"a֮᭱̀̕b"#, r#"a֮᭱̀̕b"#, r#"a֮᭱̀̕b"#, r#"a֮᭱̀̕b"#),
+        (r#"à֮᭲̕b"#, r#"à֮᭲̕b"#, r#"à֮᭲̕b"#, r#"à֮᭲̕b"#, r#"à֮᭲̕b"#),
+        (r#"a֮᭲̀̕b"#, r#"a֮᭲̀̕b"#, r#"a֮᭲̀̕b"#, r#"a֮᭲̀̕b"#, r#"a֮᭲̀̕b"#),
+        (r#"à֮᭳̕b"#, r#"à֮᭳̕b"#, r#"à֮᭳̕b"#, r#"à֮᭳̕b"#, r#"à֮᭳̕b"#),
+        (r#"a֮᭳̀̕b"#, r#"a֮᭳̀̕b"#, r#"a֮᭳̀̕b"#, r#"a֮᭳̀̕b"#, r#"a֮᭳̀̕b"#),
+        (r#"a゙्᮪ְb"#, r#"a゙्᮪ְb"#, r#"a゙्᮪ְb"#, r#"a゙्᮪ְb"#, r#"a゙्᮪ְb"#),
+        (r#"a゙᮪्ְb"#, r#"a゙᮪्ְb"#, r#"a゙᮪्ְb"#, r#"a゙᮪्ְb"#, r#"a゙᮪्ְb"#),
+        (r#"a゙्᮫ְb"#, r#"a゙्᮫ְb"#, r#"a゙्᮫ְb"#, r#"a゙्᮫ְb"#, r#"a゙्᮫ְb"#),
+        (r#"a゙᮫्ְb"#, r#"a゙᮫्ְb"#, r#"a゙᮫्ְb"#, r#"a゙᮫्ְb"#, r#"a゙᮫्ְb"#),
+        (r#"a𖿰़᯦゙b"#, r#"a𖿰़᯦゙b"#, r#"a𖿰़᯦゙b"#, r#"a𖿰़᯦゙b"#, r#"a𖿰़᯦゙b"#),
+        (r#"a𖿰᯦़゙b"#, r#"a𖿰᯦़゙b"#, r#"a𖿰᯦़゙b"#, r#"a𖿰᯦़゙b"#, r#"a𖿰᯦़゙b"#),
+        (r#"a゙्᯲ְb"#, r#"a゙्᯲ְb"#, r#"a゙्᯲ְb"#, r#"a゙्᯲ְb"#, r#"a゙्᯲ְb"#),
+        (r#"a゙᯲्ְb"#, r#"a゙᯲्ְb"#, r#"a゙᯲्ְb"#, r#"a゙᯲्ְb"#, r#"a゙᯲्ְb"#),
+        (r#"a゙्᯳ְb"#, r#"a゙्᯳ְb"#, r#"a゙्᯳ְb"#, r#"a゙्᯳ְb"#, r#"a゙्᯳ְb"#),
+        (r#"a゙᯳्ְb"#, r#"a゙᯳्ְb"#, r#"a゙᯳्ְb"#, r#"a゙᯳्ְb"#, r#"a゙᯳्ְb"#),
+        (r#"a𖿰़᰷゙b"#, r#"a𖿰़᰷゙b"#, r#"a𖿰़᰷゙b"#, r#"a𖿰़᰷゙b"#, r#"a𖿰़᰷゙b"#),
+        (r#"a𖿰᰷़゙b"#, r#"a𖿰᰷़゙b"#, r#"a𖿰᰷़゙b"#, r#"a𖿰᰷़゙b"#, r#"a𖿰᰷़゙b"#),
+        (r#"à֮᳐̕b"#, r#"à֮᳐̕b"#, r#"à֮᳐̕b"#, r#"à֮᳐̕b"#, r#"à֮᳐̕b"#),
+        (r#"a֮᳐̀̕b"#, r#"a֮᳐̀̕b"#, r#"a֮᳐̀̕b"#, r#"a֮᳐̀̕b"#, r#"a֮᳐̀̕b"#),
+        (r#"à֮᳑̕b"#, r#"à֮᳑̕b"#, r#"à֮᳑̕b"#, r#"à֮᳑̕b"#, r#"à֮᳑̕b"#),
+        (r#"a֮᳑̀̕b"#, r#"a֮᳑̀̕b"#, r#"a֮᳑̀̕b"#, r#"a֮᳑̀̕b"#, r#"a֮᳑̀̕b"#),
+        (r#"à֮᳒̕b"#, r#"à֮᳒̕b"#, r#"à֮᳒̕b"#, r#"à֮᳒̕b"#, r#"à֮᳒̕b"#),
+        (r#"a֮᳒̀̕b"#, r#"a֮᳒̀̕b"#, r#"a֮᳒̀̕b"#, r#"a֮᳒̀̕b"#, r#"a֮᳒̀̕b"#),
+        (r#"a̴᳔𖿰b"#, r#"a̴᳔𖿰b"#, r#"a̴᳔𖿰b"#, r#"a̴᳔𖿰b"#, r#"a̴᳔𖿰b"#),
+        (r#"a᳔̴𖿰b"#, r#"a᳔̴𖿰b"#, r#"a᳔̴𖿰b"#, r#"a᳔̴𖿰b"#, r#"a᳔̴𖿰b"#),
+        (r#"a᷺̖᳕֚b"#, r#"a᷺̖᳕֚b"#, r#"a᷺̖᳕֚b"#, r#"a᷺̖᳕֚b"#, r#"a᷺̖᳕֚b"#),
+        (r#"a᷺᳕̖֚b"#, r#"a᷺᳕̖֚b"#, r#"a᷺᳕̖֚b"#, r#"a᷺᳕̖֚b"#, r#"a᷺᳕̖֚b"#),
+        (r#"a᷺̖᳖֚b"#, r#"a᷺̖᳖֚b"#, r#"a᷺̖᳖֚b"#, r#"a᷺̖᳖֚b"#, r#"a᷺̖᳖֚b"#),
+        (r#"a᷺᳖̖֚b"#, r#"a᷺᳖̖֚b"#, r#"a᷺᳖̖֚b"#, r#"a᷺᳖̖֚b"#, r#"a᷺᳖̖֚b"#),
+        (r#"a᷺̖᳗֚b"#, r#"a᷺̖᳗֚b"#, r#"a᷺̖᳗֚b"#, r#"a᷺̖᳗֚b"#, r#"a᷺̖᳗֚b"#),
+        (r#"a᷺᳗̖֚b"#, r#"a᷺᳗̖֚b"#, r#"a᷺᳗̖֚b"#, r#"a᷺᳗̖֚b"#, r#"a᷺᳗̖֚b"#),
+        (r#"a᷺̖᳘֚b"#, r#"a᷺̖᳘֚b"#, r#"a᷺̖᳘֚b"#, r#"a᷺̖᳘֚b"#, r#"a᷺̖᳘֚b"#),
+        (r#"a᷺᳘̖֚b"#, r#"a᷺᳘̖֚b"#, r#"a᷺᳘̖֚b"#, r#"a᷺᳘̖֚b"#, r#"a᷺᳘̖֚b"#),
+        (r#"a᷺̖᳙֚b"#, r#"a᷺̖᳙֚b"#, r#"a᷺̖᳙֚b"#, r#"a᷺̖᳙֚b"#, r#"a᷺̖᳙֚b"#),
+        (r#"a᷺᳙̖֚b"#, r#"a᷺᳙̖֚b"#, r#"a᷺᳙̖֚b"#, r#"a᷺᳙̖֚b"#, r#"a᷺᳙̖֚b"#),
+        (r#"à֮᳚̕b"#, r#"à֮᳚̕b"#, r#"à֮᳚̕b"#, r#"à֮᳚̕b"#, r#"à֮᳚̕b"#),
+        (r#"a֮᳚̀̕b"#, r#"a֮᳚̀̕b"#, r#"a֮᳚̀̕b"#, r#"a֮᳚̀̕b"#, r#"a֮᳚̀̕b"#),
+        (r#"à֮᳛̕b"#, r#"à֮᳛̕b"#, r#"à֮᳛̕b"#, r#"à֮᳛̕b"#, r#"à֮᳛̕b"#),
+        (r#"a֮᳛̀̕b"#, r#"a֮᳛̀̕b"#, r#"a֮᳛̀̕b"#, r#"a֮᳛̀̕b"#, r#"a֮᳛̀̕b"#),
+        (r#"a᷺̖᳜֚b"#, r#"a᷺̖᳜֚b"#, r#"a᷺̖᳜֚b"#, r#"a᷺̖᳜֚b"#, r#"a᷺̖᳜֚b"#),
+        (r#"a᷺᳜̖֚b"#, r#"a᷺᳜̖֚b"#, r#"a᷺᳜̖֚b"#, r#"a᷺᳜̖֚b"#, r#"a᷺᳜̖֚b"#),
+        (r#"a᷺̖᳝֚b"#, r#"a᷺̖᳝֚b"#, r#"a᷺̖᳝֚b"#, r#"a᷺̖᳝֚b"#, r#"a᷺̖᳝֚b"#),
+        (r#"a᷺᳝̖֚b"#, r#"a᷺᳝̖֚b"#, r#"a᷺᳝̖֚b"#, r#"a᷺᳝̖֚b"#, r#"a᷺᳝̖֚b"#),
+        (r#"a᷺̖᳞֚b"#, r#"a᷺̖᳞֚b"#, r#"a᷺̖᳞֚b"#, r#"a᷺̖᳞֚b"#, r#"a᷺̖᳞֚b"#),
+        (r#"a᷺᳞̖֚b"#, r#"a᷺᳞̖֚b"#, r#"a᷺᳞̖֚b"#, r#"a᷺᳞̖֚b"#, r#"a᷺᳞̖֚b"#),
+        (r#"a᷺̖᳟֚b"#, r#"a᷺̖᳟֚b"#, r#"a᷺̖᳟֚b"#, r#"a᷺̖᳟֚b"#, r#"a᷺̖᳟֚b"#),
+        (r#"a᷺᳟̖֚b"#, r#"a᷺᳟̖֚b"#, r#"a᷺᳟̖֚b"#, r#"a᷺᳟̖֚b"#, r#"a᷺᳟̖֚b"#),
+        (r#"à֮᳠̕b"#, r#"à֮᳠̕b"#, r#"à֮᳠̕b"#, r#"à֮᳠̕b"#, r#"à֮᳠̕b"#),
+        (r#"a֮᳠̀̕b"#, r#"a֮᳠̀̕b"#, r#"a֮᳠̀̕b"#, r#"a֮᳠̀̕b"#, r#"a֮᳠̀̕b"#),
+        (r#"a̴᳢𖿰b"#, r#"a̴᳢𖿰b"#, r#"a̴᳢𖿰b"#, r#"a̴᳢𖿰b"#, r#"a̴᳢𖿰b"#),
+        (r#"a᳢̴𖿰b"#, r#"a᳢̴𖿰b"#, r#"a᳢̴𖿰b"#, r#"a᳢̴𖿰b"#, r#"a᳢̴𖿰b"#),
+        (r#"a̴᳣𖿰b"#, r#"a̴᳣𖿰b"#, r#"a̴᳣𖿰b"#, r#"a̴᳣𖿰b"#, r#"a̴᳣𖿰b"#),
+        (r#"a᳣̴𖿰b"#, r#"a᳣̴𖿰b"#, r#"a᳣̴𖿰b"#, r#"a᳣̴𖿰b"#, r#"a᳣̴𖿰b"#),
+        (r#"a̴᳤𖿰b"#, r#"a̴᳤𖿰b"#, r#"a̴᳤𖿰b"#, r#"a̴᳤𖿰b"#, r#"a̴᳤𖿰b"#),
+        (r#"a᳤̴𖿰b"#, r#"a᳤̴𖿰b"#, r#"a᳤̴𖿰b"#, r#"a᳤̴𖿰b"#, r#"a᳤̴𖿰b"#),
+        (r#"a̴᳥𖿰b"#, r#"a̴᳥𖿰b"#, r#"a̴᳥𖿰b"#, r#"a̴᳥𖿰b"#, r#"a̴᳥𖿰b"#),
+        (r#"a᳥̴𖿰b"#, r#"a᳥̴𖿰b"#, r#"a᳥̴𖿰b"#, r#"a᳥̴𖿰b"#, r#"a᳥̴𖿰b"#),
+        (r#"a̴᳦𖿰b"#, r#"a̴᳦𖿰b"#, r#"a̴᳦𖿰b"#, r#"a̴᳦𖿰b"#, r#"a̴᳦𖿰b"#),
+        (r#"a᳦̴𖿰b"#, r#"a᳦̴𖿰b"#, r#"a᳦̴𖿰b"#, r#"a᳦̴𖿰b"#, r#"a᳦̴𖿰b"#),
+        (r#"a̴᳧𖿰b"#, r#"a̴᳧𖿰b"#, r#"a̴᳧𖿰b"#, r#"a̴᳧𖿰b"#, r#"a̴᳧𖿰b"#),
+        (r#"a᳧̴𖿰b"#, r#"a᳧̴𖿰b"#, r#"a᳧̴𖿰b"#, r#"a᳧̴𖿰b"#, r#"a᳧̴𖿰b"#),
+        (r#"a̴᳨𖿰b"#, r#"a̴᳨𖿰b"#, r#"a̴᳨𖿰b"#, r#"a̴᳨𖿰b"#, r#"a̴᳨𖿰b"#),
+        (r#"a᳨̴𖿰b"#, r#"a᳨̴𖿰b"#, r#"a᳨̴𖿰b"#, r#"a᳨̴𖿰b"#, r#"a᳨̴𖿰b"#),
+        (r#"a᷺̖᳭֚b"#, r#"a᷺̖᳭֚b"#, r#"a᷺̖᳭֚b"#, r#"a᷺̖᳭֚b"#, r#"a᷺̖᳭֚b"#),
+        (r#"a᷺᳭̖֚b"#, r#"a᷺᳭̖֚b"#, r#"a᷺᳭̖֚b"#, r#"a᷺᳭̖֚b"#, r#"a᷺᳭̖֚b"#),
+        (r#"à֮᳴̕b"#, r#"à֮᳴̕b"#, r#"à֮᳴̕b"#, r#"à֮᳴̕b"#, r#"à֮᳴̕b"#),
+        (r#"a֮᳴̀̕b"#, r#"a֮᳴̀̕b"#, r#"a֮᳴̀̕b"#, r#"a֮᳴̀̕b"#, r#"a֮᳴̀̕b"#),
+        (r#"à֮᳸̕b"#, r#"à֮᳸̕b"#, r#"à֮᳸̕b"#, r#"à֮᳸̕b"#, r#"à֮᳸̕b"#),
+        (r#"a֮᳸̀̕b"#, r#"a֮᳸̀̕b"#, r#"a֮᳸̀̕b"#, r#"a֮᳸̀̕b"#, r#"a֮᳸̀̕b"#),
+        (r#"à֮᳹̕b"#, r#"à֮᳹̕b"#, r#"à֮᳹̕b"#, r#"à֮᳹̕b"#, r#"à֮᳹̕b"#),
+        (r#"a֮᳹̀̕b"#, r#"a֮᳹̀̕b"#, r#"a֮᳹̀̕b"#, r#"a֮᳹̀̕b"#, r#"a֮᳹̀̕b"#),
+        (r#"à֮᷀̕b"#, r#"à֮᷀̕b"#, r#"à֮᷀̕b"#, r#"à֮᷀̕b"#, r#"à֮᷀̕b"#),
+        (r#"a֮᷀̀̕b"#, r#"a֮᷀̀̕b"#, r#"a֮᷀̀̕b"#, r#"a֮᷀̀̕b"#, r#"a֮᷀̀̕b"#),
+        (r#"à֮᷁̕b"#, r#"à֮᷁̕b"#, r#"à֮᷁̕b"#, r#"à֮᷁̕b"#, r#"à֮᷁̕b"#),
+        (r#"a֮᷁̀̕b"#, r#"a֮᷁̀̕b"#, r#"a֮᷁̀̕b"#, r#"a֮᷁̀̕b"#, r#"a֮᷁̀̕b"#),
+        (r#"a᷺̖᷂֚b"#, r#"a᷺̖᷂֚b"#, r#"a᷺̖᷂֚b"#, r#"a᷺̖᷂֚b"#, r#"a᷺̖᷂֚b"#),
+        (r#"a᷺᷂̖֚b"#, r#"a᷺᷂̖֚b"#, r#"a᷺᷂̖֚b"#, r#"a᷺᷂̖֚b"#, r#"a᷺᷂̖֚b"#),
+        (r#"à֮᷃̕b"#, r#"à֮᷃̕b"#, r#"à֮᷃̕b"#, r#"à֮᷃̕b"#, r#"à֮᷃̕b"#),
+        (r#"a֮᷃̀̕b"#, r#"a֮᷃̀̕b"#, r#"a֮᷃̀̕b"#, r#"a֮᷃̀̕b"#, r#"a֮᷃̀̕b"#),
+        (r#"à֮᷄̕b"#, r#"à֮᷄̕b"#, r#"à֮᷄̕b"#, r#"à֮᷄̕b"#, r#"à֮᷄̕b"#),
+        (r#"a֮᷄̀̕b"#, r#"a֮᷄̀̕b"#, r#"a֮᷄̀̕b"#, r#"a֮᷄̀̕b"#, r#"a֮᷄̀̕b"#),
+        (r#"à֮᷅̕b"#, r#"à֮᷅̕b"#, r#"à֮᷅̕b"#, r#"à֮᷅̕b"#, r#"à֮᷅̕b"#),
+        (r#"a֮᷅̀̕b"#, r#"a֮᷅̀̕b"#, r#"a֮᷅̀̕b"#, r#"a֮᷅̀̕b"#, r#"a֮᷅̀̕b"#),
+        (r#"à֮᷆̕b"#, r#"à֮᷆̕b"#, r#"à֮᷆̕b"#, r#"à֮᷆̕b"#, r#"à֮᷆̕b"#),
+        (r#"a֮᷆̀̕b"#, r#"a֮᷆̀̕b"#, r#"a֮᷆̀̕b"#, r#"a֮᷆̀̕b"#, r#"a֮᷆̀̕b"#),
+        (r#"à֮᷇̕b"#, r#"à֮᷇̕b"#, r#"à֮᷇̕b"#, r#"à֮᷇̕b"#, r#"à֮᷇̕b"#),
+        (r#"a֮᷇̀̕b"#, r#"a֮᷇̀̕b"#, r#"a֮᷇̀̕b"#, r#"a֮᷇̀̕b"#, r#"a֮᷇̀̕b"#),
+        (r#"à֮᷈̕b"#, r#"à֮᷈̕b"#, r#"à֮᷈̕b"#, r#"à֮᷈̕b"#, r#"à֮᷈̕b"#),
+        (r#"a֮᷈̀̕b"#, r#"a֮᷈̀̕b"#, r#"a֮᷈̀̕b"#, r#"a֮᷈̀̕b"#, r#"a֮᷈̀̕b"#),
+        (r#"à֮᷉̕b"#, r#"à֮᷉̕b"#, r#"à֮᷉̕b"#, r#"à֮᷉̕b"#, r#"à֮᷉̕b"#),
+        (r#"a֮᷉̀̕b"#, r#"a֮᷉̀̕b"#, r#"a֮᷉̀̕b"#, r#"a֮᷉̀̕b"#, r#"a֮᷉̀̕b"#),
+        (r#"a᷺̖᷊֚b"#, r#"a᷺̖᷊֚b"#, r#"a᷺̖᷊֚b"#, r#"a᷺̖᷊֚b"#, r#"a᷺̖᷊֚b"#),
+        (r#"a᷺᷊̖֚b"#, r#"a᷺᷊̖֚b"#, r#"a᷺᷊̖֚b"#, r#"a᷺᷊̖֚b"#, r#"a᷺᷊̖֚b"#),
+        (r#"à֮᷋̕b"#, r#"à֮᷋̕b"#, r#"à֮᷋̕b"#, r#"à֮᷋̕b"#, r#"à֮᷋̕b"#),
+        (r#"a֮᷋̀̕b"#, r#"a֮᷋̀̕b"#, r#"a֮᷋̀̕b"#, r#"a֮᷋̀̕b"#, r#"a֮᷋̀̕b"#),
+        (r#"à֮᷌̕b"#, r#"à֮᷌̕b"#, r#"à֮᷌̕b"#, r#"à֮᷌̕b"#, r#"à֮᷌̕b"#),
+        (r#"a֮᷌̀̕b"#, r#"a֮᷌̀̕b"#, r#"a֮᷌̀̕b"#, r#"a֮᷌̀̕b"#, r#"a֮᷌̀̕b"#),
+        (r#"a͜͝᷍ͅb"#, r#"a͜͝᷍ͅb"#, r#"a͜͝᷍ͅb"#, r#"a͜͝᷍ͅb"#, r#"a͜͝᷍ͅb"#),
+        (r#"a͜᷍͝ͅb"#, r#"a͜᷍͝ͅb"#, r#"a͜᷍͝ͅb"#, r#"a͜᷍͝ͅb"#, r#"a͜᷍͝ͅb"#),
+        (r#"a̡᷎᷎̛b"#, r#"a̡᷎᷎̛b"#, r#"a̡᷎᷎̛b"#, r#"a̡᷎᷎̛b"#, r#"a̡᷎᷎̛b"#),
+        (r#"a̡᷎᷎̛b"#, r#"a̡᷎᷎̛b"#, r#"a̡᷎᷎̛b"#, r#"a̡᷎᷎̛b"#, r#"a̡᷎᷎̛b"#),
+        (r#"a᷺̖᷏֚b"#, r#"a᷺̖᷏֚b"#, r#"a᷺̖᷏֚b"#, r#"a᷺̖᷏֚b"#, r#"a᷺̖᷏֚b"#),
+        (r#"a᷺᷏̖֚b"#, r#"a᷺᷏̖֚b"#, r#"a᷺᷏̖֚b"#, r#"a᷺᷏̖֚b"#, r#"a᷺᷏̖֚b"#),
+        (r#"aུ̡᷐᷎b"#, r#"aུ̡᷐᷎b"#, r#"aུ̡᷐᷎b"#, r#"aུ̡᷐᷎b"#, r#"aུ̡᷐᷎b"#),
+        (r#"aུ᷐̡᷎b"#, r#"aུ᷐̡᷎b"#, r#"aུ᷐̡᷎b"#, r#"aུ᷐̡᷎b"#, r#"aུ᷐̡᷎b"#),
+        (r#"à֮᷑̕b"#, r#"à֮᷑̕b"#, r#"à֮᷑̕b"#, r#"à֮᷑̕b"#, r#"à֮᷑̕b"#),
+        (r#"a֮᷑̀̕b"#, r#"a֮᷑̀̕b"#, r#"a֮᷑̀̕b"#, r#"a֮᷑̀̕b"#, r#"a֮᷑̀̕b"#),
+        (r#"à֮᷒̕b"#, r#"à֮᷒̕b"#, r#"à֮᷒̕b"#, r#"à֮᷒̕b"#, r#"à֮᷒̕b"#),
+        (r#"a֮᷒̀̕b"#, r#"a֮᷒̀̕b"#, r#"a֮᷒̀̕b"#, r#"a֮᷒̀̕b"#, r#"a֮᷒̀̕b"#),
+        (r#"à֮ᷓ̕b"#, r#"à֮ᷓ̕b"#, r#"à֮ᷓ̕b"#, r#"à֮ᷓ̕b"#, r#"à֮ᷓ̕b"#),
+        (r#"a֮ᷓ̀̕b"#, r#"a֮ᷓ̀̕b"#, r#"a֮ᷓ̀̕b"#, r#"a֮ᷓ̀̕b"#, r#"a֮ᷓ̀̕b"#),
+        (r#"à֮ᷔ̕b"#, r#"à֮ᷔ̕b"#, r#"à֮ᷔ̕b"#, r#"à֮ᷔ̕b"#, r#"à֮ᷔ̕b"#),
+        (r#"a֮ᷔ̀̕b"#, r#"a֮ᷔ̀̕b"#, r#"a֮ᷔ̀̕b"#, r#"a֮ᷔ̀̕b"#, r#"a֮ᷔ̀̕b"#),
+        (r#"à֮ᷕ̕b"#, r#"à֮ᷕ̕b"#, r#"à֮ᷕ̕b"#, r#"à֮ᷕ̕b"#, r#"à֮ᷕ̕b"#),
+        (r#"a֮ᷕ̀̕b"#, r#"a֮ᷕ̀̕b"#, r#"a֮ᷕ̀̕b"#, r#"a֮ᷕ̀̕b"#, r#"a֮ᷕ̀̕b"#),
+        (r#"à֮ᷖ̕b"#, r#"à֮ᷖ̕b"#, r#"à֮ᷖ̕b"#, r#"à֮ᷖ̕b"#, r#"à֮ᷖ̕b"#),
+        (r#"a֮ᷖ̀̕b"#, r#"a֮ᷖ̀̕b"#, r#"a֮ᷖ̀̕b"#, r#"a֮ᷖ̀̕b"#, r#"a֮ᷖ̀̕b"#),
+        (r#"à֮ᷗ̕b"#, r#"à֮ᷗ̕b"#, r#"à֮ᷗ̕b"#, r#"à֮ᷗ̕b"#, r#"à֮ᷗ̕b"#),
+        (r#"a֮ᷗ̀̕b"#, r#"a֮ᷗ̀̕b"#, r#"a֮ᷗ̀̕b"#, r#"a֮ᷗ̀̕b"#, r#"a֮ᷗ̀̕b"#),
+        (r#"à֮ᷘ̕b"#, r#"à֮ᷘ̕b"#, r#"à֮ᷘ̕b"#, r#"à֮ᷘ̕b"#, r#"à֮ᷘ̕b"#),
+        (r#"a֮ᷘ̀̕b"#, r#"a֮ᷘ̀̕b"#, r#"a֮ᷘ̀̕b"#, r#"a֮ᷘ̀̕b"#, r#"a֮ᷘ̀̕b"#),
+        (r#"à֮ᷙ̕b"#, r#"à֮ᷙ̕b"#, r#"à֮ᷙ̕b"#, r#"à֮ᷙ̕b"#, r#"à֮ᷙ̕b"#),
+        (r#"a֮ᷙ̀̕b"#, r#"a֮ᷙ̀̕b"#, r#"a֮ᷙ̀̕b"#, r#"a֮ᷙ̀̕b"#, r#"a֮ᷙ̀̕b"#),
+        (r#"à֮ᷚ̕b"#, r#"à֮ᷚ̕b"#, r#"à֮ᷚ̕b"#, r#"à֮ᷚ̕b"#, r#"à֮ᷚ̕b"#),
+        (r#"a֮ᷚ̀̕b"#, r#"a֮ᷚ̀̕b"#, r#"a֮ᷚ̀̕b"#, r#"a֮ᷚ̀̕b"#, r#"a֮ᷚ̀̕b"#),
+        (r#"à֮ᷛ̕b"#, r#"à֮ᷛ̕b"#, r#"à֮ᷛ̕b"#, r#"à֮ᷛ̕b"#, r#"à֮ᷛ̕b"#),
+        (r#"a֮ᷛ̀̕b"#, r#"a֮ᷛ̀̕b"#, r#"a֮ᷛ̀̕b"#, r#"a֮ᷛ̀̕b"#, r#"a֮ᷛ̀̕b"#),
+        (r#"à֮ᷜ̕b"#, r#"à֮ᷜ̕b"#, r#"à֮ᷜ̕b"#, r#"à֮ᷜ̕b"#, r#"à֮ᷜ̕b"#),
+        (r#"a֮ᷜ̀̕b"#, r#"a֮ᷜ̀̕b"#, r#"a֮ᷜ̀̕b"#, r#"a֮ᷜ̀̕b"#, r#"a֮ᷜ̀̕b"#),
+        (r#"à֮ᷝ̕b"#, r#"à֮ᷝ̕b"#, r#"à֮ᷝ̕b"#, r#"à֮ᷝ̕b"#, r#"à֮ᷝ̕b"#),
+        (r#"a֮ᷝ̀̕b"#, r#"a֮ᷝ̀̕b"#, r#"a֮ᷝ̀̕b"#, r#"a֮ᷝ̀̕b"#, r#"a֮ᷝ̀̕b"#),
+        (r#"à֮ᷞ̕b"#, r#"à֮ᷞ̕b"#, r#"à֮ᷞ̕b"#, r#"à֮ᷞ̕b"#, r#"à֮ᷞ̕b"#),
+        (r#"a֮ᷞ̀̕b"#, r#"a֮ᷞ̀̕b"#, r#"a֮ᷞ̀̕b"#, r#"a֮ᷞ̀̕b"#, r#"a֮ᷞ̀̕b"#),
+        (r#"à֮ᷟ̕b"#, r#"à֮ᷟ̕b"#, r#"à֮ᷟ̕b"#, r#"à֮ᷟ̕b"#, r#"à֮ᷟ̕b"#),
+        (r#"a֮ᷟ̀̕b"#, r#"a֮ᷟ̀̕b"#, r#"a֮ᷟ̀̕b"#, r#"a֮ᷟ̀̕b"#, r#"a֮ᷟ̀̕b"#),
+        (r#"à֮ᷠ̕b"#, r#"à֮ᷠ̕b"#, r#"à֮ᷠ̕b"#, r#"à֮ᷠ̕b"#, r#"à֮ᷠ̕b"#),
+        (r#"a֮ᷠ̀̕b"#, r#"a֮ᷠ̀̕b"#, r#"a֮ᷠ̀̕b"#, r#"a֮ᷠ̀̕b"#, r#"a֮ᷠ̀̕b"#),
+        (r#"à֮ᷡ̕b"#, r#"à֮ᷡ̕b"#, r#"à֮ᷡ̕b"#, r#"à֮ᷡ̕b"#, r#"à֮ᷡ̕b"#),
+        (r#"a֮ᷡ̀̕b"#, r#"a֮ᷡ̀̕b"#, r#"a֮ᷡ̀̕b"#, r#"a֮ᷡ̀̕b"#, r#"a֮ᷡ̀̕b"#),
+        (r#"à֮ᷢ̕b"#, r#"à֮ᷢ̕b"#, r#"à֮ᷢ̕b"#, r#"à֮ᷢ̕b"#, r#"à֮ᷢ̕b"#),
+        (r#"a֮ᷢ̀̕b"#, r#"a֮ᷢ̀̕b"#, r#"a֮ᷢ̀̕b"#, r#"a֮ᷢ̀̕b"#, r#"a֮ᷢ̀̕b"#),
+        (r#"à֮ᷣ̕b"#, r#"à֮ᷣ̕b"#, r#"à֮ᷣ̕b"#, r#"à֮ᷣ̕b"#, r#"à֮ᷣ̕b"#),
+        (r#"a֮ᷣ̀̕b"#, r#"a֮ᷣ̀̕b"#, r#"a֮ᷣ̀̕b"#, r#"a֮ᷣ̀̕b"#, r#"a֮ᷣ̀̕b"#),
+        (r#"à֮ᷤ̕b"#, r#"à֮ᷤ̕b"#, r#"à֮ᷤ̕b"#, r#"à֮ᷤ̕b"#, r#"à֮ᷤ̕b"#),
+        (r#"a֮ᷤ̀̕b"#, r#"a֮ᷤ̀̕b"#, r#"a֮ᷤ̀̕b"#, r#"a֮ᷤ̀̕b"#, r#"a֮ᷤ̀̕b"#),
+        (r#"à֮ᷥ̕b"#, r#"à֮ᷥ̕b"#, r#"à֮ᷥ̕b"#, r#"à֮ᷥ̕b"#, r#"à֮ᷥ̕b"#),
+        (r#"a֮ᷥ̀̕b"#, r#"a֮ᷥ̀̕b"#, r#"a֮ᷥ̀̕b"#, r#"a֮ᷥ̀̕b"#, r#"a֮ᷥ̀̕b"#),
+        (r#"à֮ᷦ̕b"#, r#"à֮ᷦ̕b"#, r#"à֮ᷦ̕b"#, r#"à֮ᷦ̕b"#, r#"à֮ᷦ̕b"#),
+        (r#"a֮ᷦ̀̕b"#, r#"a֮ᷦ̀̕b"#, r#"a֮ᷦ̀̕b"#, r#"a֮ᷦ̀̕b"#, r#"a֮ᷦ̀̕b"#),
+        (r#"à֮ᷧ̕b"#, r#"à֮ᷧ̕b"#, r#"à֮ᷧ̕b"#, r#"à֮ᷧ̕b"#, r#"à֮ᷧ̕b"#),
+        (r#"a֮ᷧ̀̕b"#, r#"a֮ᷧ̀̕b"#, r#"a֮ᷧ̀̕b"#, r#"a֮ᷧ̀̕b"#, r#"a֮ᷧ̀̕b"#),
+        (r#"à֮ᷨ̕b"#, r#"à֮ᷨ̕b"#, r#"à֮ᷨ̕b"#, r#"à֮ᷨ̕b"#, r#"à֮ᷨ̕b"#),
+        (r#"a֮ᷨ̀̕b"#, r#"a֮ᷨ̀̕b"#, r#"a֮ᷨ̀̕b"#, r#"a֮ᷨ̀̕b"#, r#"a֮ᷨ̀̕b"#),
+        (r#"à֮ᷩ̕b"#, r#"à֮ᷩ̕b"#, r#"à֮ᷩ̕b"#, r#"à֮ᷩ̕b"#, r#"à֮ᷩ̕b"#),
+        (r#"a֮ᷩ̀̕b"#, r#"a֮ᷩ̀̕b"#, r#"a֮ᷩ̀̕b"#, r#"a֮ᷩ̀̕b"#, r#"a֮ᷩ̀̕b"#),
+        (r#"à֮ᷪ̕b"#, r#"à֮ᷪ̕b"#, r#"à֮ᷪ̕b"#, r#"à֮ᷪ̕b"#, r#"à֮ᷪ̕b"#),
+        (r#"a֮ᷪ̀̕b"#, r#"a֮ᷪ̀̕b"#, r#"a֮ᷪ̀̕b"#, r#"a֮ᷪ̀̕b"#, r#"a֮ᷪ̀̕b"#),
+        (r#"à֮ᷫ̕b"#, r#"à֮ᷫ̕b"#, r#"à֮ᷫ̕b"#, r#"à֮ᷫ̕b"#, r#"à֮ᷫ̕b"#),
+        (r#"a֮ᷫ̀̕b"#, r#"a֮ᷫ̀̕b"#, r#"a֮ᷫ̀̕b"#, r#"a֮ᷫ̀̕b"#, r#"a֮ᷫ̀̕b"#),
+        (r#"à֮ᷬ̕b"#, r#"à֮ᷬ̕b"#, r#"à֮ᷬ̕b"#, r#"à֮ᷬ̕b"#, r#"à֮ᷬ̕b"#),
+        (r#"a֮ᷬ̀̕b"#, r#"a֮ᷬ̀̕b"#, r#"a֮ᷬ̀̕b"#, r#"a֮ᷬ̀̕b"#, r#"a֮ᷬ̀̕b"#),
+        (r#"à֮ᷭ̕b"#, r#"à֮ᷭ̕b"#, r#"à֮ᷭ̕b"#, r#"à֮ᷭ̕b"#, r#"à֮ᷭ̕b"#),
+        (r#"a֮ᷭ̀̕b"#, r#"a֮ᷭ̀̕b"#, r#"a֮ᷭ̀̕b"#, r#"a֮ᷭ̀̕b"#, r#"a֮ᷭ̀̕b"#),
+        (r#"à֮ᷮ̕b"#, r#"à֮ᷮ̕b"#, r#"à֮ᷮ̕b"#, r#"à֮ᷮ̕b"#, r#"à֮ᷮ̕b"#),
+        (r#"a֮ᷮ̀̕b"#, r#"a֮ᷮ̀̕b"#, r#"a֮ᷮ̀̕b"#, r#"a֮ᷮ̀̕b"#, r#"a֮ᷮ̀̕b"#),
+        (r#"à֮ᷯ̕b"#, r#"à֮ᷯ̕b"#, r#"à֮ᷯ̕b"#, r#"à֮ᷯ̕b"#, r#"à֮ᷯ̕b"#),
+        (r#"a֮ᷯ̀̕b"#, r#"a֮ᷯ̀̕b"#, r#"a֮ᷯ̀̕b"#, r#"a֮ᷯ̀̕b"#, r#"a֮ᷯ̀̕b"#),
+        (r#"à֮ᷰ̕b"#, r#"à֮ᷰ̕b"#, r#"à֮ᷰ̕b"#, r#"à֮ᷰ̕b"#, r#"à֮ᷰ̕b"#),
+        (r#"a֮ᷰ̀̕b"#, r#"a֮ᷰ̀̕b"#, r#"a֮ᷰ̀̕b"#, r#"a֮ᷰ̀̕b"#, r#"a֮ᷰ̀̕b"#),
+        (r#"à֮ᷱ̕b"#, r#"à֮ᷱ̕b"#, r#"à֮ᷱ̕b"#, r#"à֮ᷱ̕b"#, r#"à֮ᷱ̕b"#),
+        (r#"a֮ᷱ̀̕b"#, r#"a֮ᷱ̀̕b"#, r#"a֮ᷱ̀̕b"#, r#"a֮ᷱ̀̕b"#, r#"a֮ᷱ̀̕b"#),
+        (r#"à֮ᷲ̕b"#, r#"à֮ᷲ̕b"#, r#"à֮ᷲ̕b"#, r#"à֮ᷲ̕b"#, r#"à֮ᷲ̕b"#),
+        (r#"a֮ᷲ̀̕b"#, r#"a֮ᷲ̀̕b"#, r#"a֮ᷲ̀̕b"#, r#"a֮ᷲ̀̕b"#, r#"a֮ᷲ̀̕b"#),
+        (r#"à֮ᷳ̕b"#, r#"à֮ᷳ̕b"#, r#"à֮ᷳ̕b"#, r#"à֮ᷳ̕b"#, r#"à֮ᷳ̕b"#),
+        (r#"a֮ᷳ̀̕b"#, r#"a֮ᷳ̀̕b"#, r#"a֮ᷳ̀̕b"#, r#"a֮ᷳ̀̕b"#, r#"a֮ᷳ̀̕b"#),
+        (r#"à֮ᷴ̕b"#, r#"à֮ᷴ̕b"#, r#"à֮ᷴ̕b"#, r#"à֮ᷴ̕b"#, r#"à֮ᷴ̕b"#),
+        (r#"a֮ᷴ̀̕b"#, r#"a֮ᷴ̀̕b"#, r#"a֮ᷴ̀̕b"#, r#"a֮ᷴ̀̕b"#, r#"a֮ᷴ̀̕b"#),
+        (r#"à֮᷵̕b"#, r#"à֮᷵̕b"#, r#"à֮᷵̕b"#, r#"à֮᷵̕b"#, r#"à֮᷵̕b"#),
+        (r#"a֮᷵̀̕b"#, r#"a֮᷵̀̕b"#, r#"a֮᷵̀̕b"#, r#"a֮᷵̀̕b"#, r#"a֮᷵̀̕b"#),
+        (r#"à̕᷶͜b"#, r#"à̕᷶͜b"#, r#"à̕᷶͜b"#, r#"à̕᷶͜b"#, r#"à̕᷶͜b"#),
+        (r#"à᷶̕͜b"#, r#"à᷶̕͜b"#, r#"à᷶̕͜b"#, r#"à᷶̕͜b"#, r#"à᷶̕͜b"#),
+        (r#"à𝅭֮᷷b"#, r#"à𝅭֮᷷b"#, r#"à𝅭֮᷷b"#, r#"à𝅭֮᷷b"#, r#"à𝅭֮᷷b"#),
+        (r#"à𝅭᷷֮b"#, r#"à𝅭᷷֮b"#, r#"à𝅭᷷֮b"#, r#"à𝅭᷷֮b"#, r#"à𝅭᷷֮b"#),
+        (r#"à𝅭֮᷸b"#, r#"à𝅭֮᷸b"#, r#"à𝅭֮᷸b"#, r#"à𝅭֮᷸b"#, r#"à𝅭֮᷸b"#),
+        (r#"à𝅭᷸֮b"#, r#"à𝅭᷸֮b"#, r#"à𝅭᷸֮b"#, r#"à𝅭᷸֮b"#, r#"à𝅭᷸֮b"#),
+        (r#"a᷺̖᷹֚b"#, r#"a᷺̖᷹֚b"#, r#"a᷺̖᷹֚b"#, r#"a᷺̖᷹֚b"#, r#"a᷺̖᷹֚b"#),
+        (r#"a᷺᷹̖֚b"#, r#"a᷺᷹̖֚b"#, r#"a᷺᷹̖֚b"#, r#"a᷺᷹̖֚b"#, r#"a᷺᷹̖֚b"#),
+        (r#"a̛᷺᷺̖b"#, r#"a̛᷺᷺̖b"#, r#"a̛᷺᷺̖b"#, r#"a̛᷺᷺̖b"#, r#"a̛᷺᷺̖b"#),
+        (r#"a̛᷺᷺̖b"#, r#"a̛᷺᷺̖b"#, r#"a̛᷺᷺̖b"#, r#"a̛᷺᷺̖b"#, r#"a̛᷺᷺̖b"#),
+        (r#"à֮᷻̕b"#, r#"à֮᷻̕b"#, r#"à֮᷻̕b"#, r#"à֮᷻̕b"#, r#"à֮᷻̕b"#),
+        (r#"a֮᷻̀̕b"#, r#"a֮᷻̀̕b"#, r#"a֮᷻̀̕b"#, r#"a֮᷻̀̕b"#, r#"a֮᷻̀̕b"#),
+        (r#"a̕͜᷼͝b"#, r#"a̕͜᷼͝b"#, r#"a̕͜᷼͝b"#, r#"a̕͜᷼͝b"#, r#"a̕͜᷼͝b"#),
+        (r#"a̕᷼͜͝b"#, r#"a̕᷼͜͝b"#, r#"a̕᷼͜͝b"#, r#"a̕᷼͜͝b"#, r#"a̕᷼͜͝b"#),
+        (r#"a᷺̖᷽֚b"#, r#"a᷺̖᷽֚b"#, r#"a᷺̖᷽֚b"#, r#"a᷺̖᷽֚b"#, r#"a᷺̖᷽֚b"#),
+        (r#"a᷺᷽̖֚b"#, r#"a᷺᷽̖֚b"#, r#"a᷺᷽̖֚b"#, r#"a᷺᷽̖֚b"#, r#"a᷺᷽̖֚b"#),
+        (r#"à֮᷾̕b"#, r#"à֮᷾̕b"#, r#"à֮᷾̕b"#, r#"à֮᷾̕b"#, r#"à֮᷾̕b"#),
+        (r#"a֮᷾̀̕b"#, r#"a֮᷾̀̕b"#, r#"a֮᷾̀̕b"#, r#"a֮᷾̀̕b"#, r#"a֮᷾̀̕b"#),
+        (r#"a᷺̖᷿֚b"#, r#"a᷺̖᷿֚b"#, r#"a᷺̖᷿֚b"#, r#"a᷺̖᷿֚b"#, r#"a᷺̖᷿֚b"#),
+        (r#"a᷺᷿̖֚b"#, r#"a᷺᷿̖֚b"#, r#"a᷺᷿̖֚b"#, r#"a᷺᷿̖֚b"#, r#"a᷺᷿̖֚b"#),
+        (r#"à֮⃐̕b"#, r#"à֮⃐̕b"#, r#"à֮⃐̕b"#, r#"à֮⃐̕b"#, r#"à֮⃐̕b"#),
+        (r#"a֮⃐̀̕b"#, r#"a֮⃐̀̕b"#, r#"a֮⃐̀̕b"#, r#"a֮⃐̀̕b"#, r#"a֮⃐̀̕b"#),
+        (r#"à֮⃑̕b"#, r#"à֮⃑̕b"#, r#"à֮⃑̕b"#, r#"à֮⃑̕b"#, r#"à֮⃑̕b"#),
+        (r#"a֮⃑̀̕b"#, r#"a֮⃑̀̕b"#, r#"a֮⃑̀̕b"#, r#"a֮⃑̀̕b"#, r#"a֮⃑̀̕b"#),
+        (r#"a̴⃒𖿰b"#, r#"a̴⃒𖿰b"#, r#"a̴⃒𖿰b"#, r#"a̴⃒𖿰b"#, r#"a̴⃒𖿰b"#),
+        (r#"a⃒̴𖿰b"#, r#"a⃒̴𖿰b"#, r#"a⃒̴𖿰b"#, r#"a⃒̴𖿰b"#, r#"a⃒̴𖿰b"#),
+        (r#"a̴⃓𖿰b"#, r#"a̴⃓𖿰b"#, r#"a̴⃓𖿰b"#, r#"a̴⃓𖿰b"#, r#"a̴⃓𖿰b"#),
+        (r#"a⃓̴𖿰b"#, r#"a⃓̴𖿰b"#, r#"a⃓̴𖿰b"#, r#"a⃓̴𖿰b"#, r#"a⃓̴𖿰b"#),
+        (r#"à֮⃔̕b"#, r#"à֮⃔̕b"#, r#"à֮⃔̕b"#, r#"à֮⃔̕b"#, r#"à֮⃔̕b"#),
+        (r#"a֮⃔̀̕b"#, r#"a֮⃔̀̕b"#, r#"a֮⃔̀̕b"#, r#"a֮⃔̀̕b"#, r#"a֮⃔̀̕b"#),
+        (r#"à֮⃕̕b"#, r#"à֮⃕̕b"#, r#"à֮⃕̕b"#, r#"à֮⃕̕b"#, r#"à֮⃕̕b"#),
+        (r#"a֮⃕̀̕b"#, r#"a֮⃕̀̕b"#, r#"a֮⃕̀̕b"#, r#"a֮⃕̀̕b"#, r#"a֮⃕̀̕b"#),
+        (r#"à֮⃖̕b"#, r#"à֮⃖̕b"#, r#"à֮⃖̕b"#, r#"à֮⃖̕b"#, r#"à֮⃖̕b"#),
+        (r#"a֮⃖̀̕b"#, r#"a֮⃖̀̕b"#, r#"a֮⃖̀̕b"#, r#"a֮⃖̀̕b"#, r#"a֮⃖̀̕b"#),
+        (r#"à֮⃗̕b"#, r#"à֮⃗̕b"#, r#"à֮⃗̕b"#, r#"à֮⃗̕b"#, r#"à֮⃗̕b"#),
+        (r#"a֮⃗̀̕b"#, r#"a֮⃗̀̕b"#, r#"a֮⃗̀̕b"#, r#"a֮⃗̀̕b"#, r#"a֮⃗̀̕b"#),
+        (r#"a̴⃘𖿰b"#, r#"a̴⃘𖿰b"#, r#"a̴⃘𖿰b"#, r#"a̴⃘𖿰b"#, r#"a̴⃘𖿰b"#),
+        (r#"a⃘̴𖿰b"#, r#"a⃘̴𖿰b"#, r#"a⃘̴𖿰b"#, r#"a⃘̴𖿰b"#, r#"a⃘̴𖿰b"#),
+        (r#"a̴⃙𖿰b"#, r#"a̴⃙𖿰b"#, r#"a̴⃙𖿰b"#, r#"a̴⃙𖿰b"#, r#"a̴⃙𖿰b"#),
+        (r#"a⃙̴𖿰b"#, r#"a⃙̴𖿰b"#, r#"a⃙̴𖿰b"#, r#"a⃙̴𖿰b"#, r#"a⃙̴𖿰b"#),
+        (r#"a̴⃚𖿰b"#, r#"a̴⃚𖿰b"#, r#"a̴⃚𖿰b"#, r#"a̴⃚𖿰b"#, r#"a̴⃚𖿰b"#),
+        (r#"a⃚̴𖿰b"#, r#"a⃚̴𖿰b"#, r#"a⃚̴𖿰b"#, r#"a⃚̴𖿰b"#, r#"a⃚̴𖿰b"#),
+        (r#"à֮⃛̕b"#, r#"à֮⃛̕b"#, r#"à֮⃛̕b"#, r#"à֮⃛̕b"#, r#"à֮⃛̕b"#),
+        (r#"a֮⃛̀̕b"#, r#"a֮⃛̀̕b"#, r#"a֮⃛̀̕b"#, r#"a֮⃛̀̕b"#, r#"a֮⃛̀̕b"#),
+        (r#"à֮⃜̕b"#, r#"à֮⃜̕b"#, r#"à֮⃜̕b"#, r#"à֮⃜̕b"#, r#"à֮⃜̕b"#),
+        (r#"a֮⃜̀̕b"#, r#"a֮⃜̀̕b"#, r#"a֮⃜̀̕b"#, r#"a֮⃜̀̕b"#, r#"a֮⃜̀̕b"#),
+        (r#"à֮⃡̕b"#, r#"à֮⃡̕b"#, r#"à֮⃡̕b"#, r#"à֮⃡̕b"#, r#"à֮⃡̕b"#),
+        (r#"a֮⃡̀̕b"#, r#"a֮⃡̀̕b"#, r#"a֮⃡̀̕b"#, r#"a֮⃡̀̕b"#, r#"a֮⃡̀̕b"#),
+        (r#"a̴⃥𖿰b"#, r#"a̴⃥𖿰b"#, r#"a̴⃥𖿰b"#, r#"a̴⃥𖿰b"#, r#"a̴⃥𖿰b"#),
+        (r#"a⃥̴𖿰b"#, r#"a⃥̴𖿰b"#, r#"a⃥̴𖿰b"#, r#"a⃥̴𖿰b"#, r#"a⃥̴𖿰b"#),
+        (r#"a̴⃦𖿰b"#, r#"a̴⃦𖿰b"#, r#"a̴⃦𖿰b"#, r#"a̴⃦𖿰b"#, r#"a̴⃦𖿰b"#),
+        (r#"a⃦̴𖿰b"#, r#"a⃦̴𖿰b"#, r#"a⃦̴𖿰b"#, r#"a⃦̴𖿰b"#, r#"a⃦̴𖿰b"#),
+        (r#"à֮⃧̕b"#, r#"à֮⃧̕b"#, r#"à֮⃧̕b"#, r#"à֮⃧̕b"#, r#"à֮⃧̕b"#),
+        (r#"a֮⃧̀̕b"#, r#"a֮⃧̀̕b"#, r#"a֮⃧̀̕b"#, r#"a֮⃧̀̕b"#, r#"a֮⃧̀̕b"#),
+        (r#"a᷺̖⃨֚b"#, r#"a᷺̖⃨֚b"#, r#"a᷺̖⃨֚b"#, r#"a᷺̖⃨֚b"#, r#"a᷺̖⃨֚b"#),
+        (r#"a᷺⃨̖֚b"#, r#"a᷺⃨̖֚b"#, r#"a᷺⃨̖֚b"#, r#"a᷺⃨̖֚b"#, r#"a᷺⃨̖֚b"#),
+        (r#"à֮⃩̕b"#, r#"à֮⃩̕b"#, r#"à֮⃩̕b"#, r#"à֮⃩̕b"#, r#"à֮⃩̕b"#),
+        (r#"a֮⃩̀̕b"#, r#"a֮⃩̀̕b"#, r#"a֮⃩̀̕b"#, r#"a֮⃩̀̕b"#, r#"a֮⃩̀̕b"#),
+        (r#"a̴⃪𖿰b"#, r#"a̴⃪𖿰b"#, r#"a̴⃪𖿰b"#, r#"a̴⃪𖿰b"#, r#"a̴⃪𖿰b"#),
+        (r#"a⃪̴𖿰b"#, r#"a⃪̴𖿰b"#, r#"a⃪̴𖿰b"#, r#"a⃪̴𖿰b"#, r#"a⃪̴𖿰b"#),
+        (r#"a̴⃫𖿰b"#, r#"a̴⃫𖿰b"#, r#"a̴⃫𖿰b"#, r#"a̴⃫𖿰b"#, r#"a̴⃫𖿰b"#),
+        (r#"a⃫̴𖿰b"#, r#"a⃫̴𖿰b"#, r#"a⃫̴𖿰b"#, r#"a⃫̴𖿰b"#, r#"a⃫̴𖿰b"#),
+        (r#"a᷺̖⃬֚b"#, r#"a᷺̖⃬֚b"#, r#"a᷺̖⃬֚b"#, r#"a᷺̖⃬֚b"#, r#"a᷺̖⃬֚b"#),
+        (r#"a᷺⃬̖֚b"#, r#"a᷺⃬̖֚b"#, r#"a᷺⃬̖֚b"#, r#"a᷺⃬̖֚b"#, r#"a᷺⃬̖֚b"#),
+        (r#"a᷺̖⃭֚b"#, r#"a᷺̖⃭֚b"#, r#"a᷺̖⃭֚b"#, r#"a᷺̖⃭֚b"#, r#"a᷺̖⃭֚b"#),
+        (r#"a᷺⃭̖֚b"#, r#"a᷺⃭̖֚b"#, r#"a᷺⃭̖֚b"#, r#"a᷺⃭̖֚b"#, r#"a᷺⃭̖֚b"#),
+        (r#"a᷺̖⃮֚b"#, r#"a᷺̖⃮֚b"#, r#"a᷺̖⃮֚b"#, r#"a᷺̖⃮֚b"#, r#"a᷺̖⃮֚b"#),
+        (r#"a᷺⃮̖֚b"#, r#"a᷺⃮̖֚b"#, r#"a᷺⃮̖֚b"#, r#"a᷺⃮̖֚b"#, r#"a᷺⃮̖֚b"#),
+        (r#"a᷺̖⃯֚b"#, r#"a᷺̖⃯֚b"#, r#"a᷺̖⃯֚b"#, r#"a᷺̖⃯֚b"#, r#"a᷺̖⃯֚b"#),
+        (r#"a᷺⃯̖֚b"#, r#"a᷺⃯̖֚b"#, r#"a᷺⃯̖֚b"#, r#"a᷺⃯̖֚b"#, r#"a᷺⃯̖֚b"#),
+        (r#"à֮⃰̕b"#, r#"à֮⃰̕b"#, r#"à֮⃰̕b"#, r#"à֮⃰̕b"#, r#"à֮⃰̕b"#),
+        (r#"a֮⃰̀̕b"#, r#"a֮⃰̀̕b"#, r#"a֮⃰̀̕b"#, r#"a֮⃰̀̕b"#, r#"a֮⃰̀̕b"#),
+        (r#"à֮⳯̕b"#, r#"à֮⳯̕b"#, r#"à֮⳯̕b"#, r#"à֮⳯̕b"#, r#"à֮⳯̕b"#),
+        (r#"a֮⳯̀̕b"#, r#"a֮⳯̀̕b"#, r#"a֮⳯̀̕b"#, r#"a֮⳯̀̕b"#, r#"a֮⳯̀̕b"#),
+        (r#"à֮⳰̕b"#, r#"à֮⳰̕b"#, r#"à֮⳰̕b"#, r#"à֮⳰̕b"#, r#"à֮⳰̕b"#),
+        (r#"a֮⳰̀̕b"#, r#"a֮⳰̀̕b"#, r#"a֮⳰̀̕b"#, r#"a֮⳰̀̕b"#, r#"a֮⳰̀̕b"#),
+        (r#"à֮⳱̕b"#, r#"à֮⳱̕b"#, r#"à֮⳱̕b"#, r#"à֮⳱̕b"#, r#"à֮⳱̕b"#),
+        (r#"a֮⳱̀̕b"#, r#"a֮⳱̀̕b"#, r#"a֮⳱̀̕b"#, r#"a֮⳱̀̕b"#, r#"a֮⳱̀̕b"#),
+        (r#"a゙्⵿ְb"#, r#"a゙्⵿ְb"#, r#"a゙्⵿ְb"#, r#"a゙्⵿ְb"#, r#"a゙्⵿ְb"#),
+        (r#"a゙⵿्ְb"#, r#"a゙⵿्ְb"#, r#"a゙⵿्ְb"#, r#"a゙⵿्ְb"#, r#"a゙⵿्ְb"#),
+        (r#"à֮ⷠ̕b"#, r#"à֮ⷠ̕b"#, r#"à֮ⷠ̕b"#, r#"à֮ⷠ̕b"#, r#"à֮ⷠ̕b"#),
+        (r#"a֮ⷠ̀̕b"#, r#"a֮ⷠ̀̕b"#, r#"a֮ⷠ̀̕b"#, r#"a֮ⷠ̀̕b"#, r#"a֮ⷠ̀̕b"#),
+        (r#"à֮ⷡ̕b"#, r#"à֮ⷡ̕b"#, r#"à֮ⷡ̕b"#, r#"à֮ⷡ̕b"#, r#"à֮ⷡ̕b"#),
+        (r#"a֮ⷡ̀̕b"#, r#"a֮ⷡ̀̕b"#, r#"a֮ⷡ̀̕b"#, r#"a֮ⷡ̀̕b"#, r#"a֮ⷡ̀̕b"#),
+        (r#"à֮ⷢ̕b"#, r#"à֮ⷢ̕b"#, r#"à֮ⷢ̕b"#, r#"à֮ⷢ̕b"#, r#"à֮ⷢ̕b"#),
+        (r#"a֮ⷢ̀̕b"#, r#"a֮ⷢ̀̕b"#, r#"a֮ⷢ̀̕b"#, r#"a֮ⷢ̀̕b"#, r#"a֮ⷢ̀̕b"#),
+        (r#"à֮ⷣ̕b"#, r#"à֮ⷣ̕b"#, r#"à֮ⷣ̕b"#, r#"à֮ⷣ̕b"#, r#"à֮ⷣ̕b"#),
+        (r#"a֮ⷣ̀̕b"#, r#"a֮ⷣ̀̕b"#, r#"a֮ⷣ̀̕b"#, r#"a֮ⷣ̀̕b"#, r#"a֮ⷣ̀̕b"#),
+        (r#"à֮ⷤ̕b"#, r#"à֮ⷤ̕b"#, r#"à֮ⷤ̕b"#, r#"à֮ⷤ̕b"#, r#"à֮ⷤ̕b"#),
+        (r#"a֮ⷤ̀̕b"#, r#"a֮ⷤ̀̕b"#, r#"a֮ⷤ̀̕b"#, r#"a֮ⷤ̀̕b"#, r#"a֮ⷤ̀̕b"#),
+        (r#"à֮ⷥ̕b"#, r#"à֮ⷥ̕b"#, r#"à֮ⷥ̕b"#, r#"à֮ⷥ̕b"#, r#"à֮ⷥ̕b"#),
+        (r#"a֮ⷥ̀̕b"#, r#"a֮ⷥ̀̕b"#, r#"a֮ⷥ̀̕b"#, r#"a֮ⷥ̀̕b"#, r#"a֮ⷥ̀̕b"#),
+        (r#"à֮ⷦ̕b"#, r#"à֮ⷦ̕b"#, r#"à֮ⷦ̕b"#, r#"à֮ⷦ̕b"#, r#"à֮ⷦ̕b"#),
+        (r#"a֮ⷦ̀̕b"#, r#"a֮ⷦ̀̕b"#, r#"a֮ⷦ̀̕b"#, r#"a֮ⷦ̀̕b"#, r#"a֮ⷦ̀̕b"#),
+        (r#"à֮ⷧ̕b"#, r#"à֮ⷧ̕b"#, r#"à֮ⷧ̕b"#, r#"à֮ⷧ̕b"#, r#"à֮ⷧ̕b"#),
+        (r#"a֮ⷧ̀̕b"#, r#"a֮ⷧ̀̕b"#, r#"a֮ⷧ̀̕b"#, r#"a֮ⷧ̀̕b"#, r#"a֮ⷧ̀̕b"#),
+        (r#"à֮ⷨ̕b"#, r#"à֮ⷨ̕b"#, r#"à֮ⷨ̕b"#, r#"à֮ⷨ̕b"#, r#"à֮ⷨ̕b"#),
+        (r#"a֮ⷨ̀̕b"#, r#"a֮ⷨ̀̕b"#, r#"a֮ⷨ̀̕b"#, r#"a֮ⷨ̀̕b"#, r#"a֮ⷨ̀̕b"#),
+        (r#"à֮ⷩ̕b"#, r#"à֮ⷩ̕b"#, r#"à֮ⷩ̕b"#, r#"à֮ⷩ̕b"#, r#"à֮ⷩ̕b"#),
+        (r#"a֮ⷩ̀̕b"#, r#"a֮ⷩ̀̕b"#, r#"a֮ⷩ̀̕b"#, r#"a֮ⷩ̀̕b"#, r#"a֮ⷩ̀̕b"#),
+        (r#"à֮ⷪ̕b"#, r#"à֮ⷪ̕b"#, r#"à֮ⷪ̕b"#, r#"à֮ⷪ̕b"#, r#"à֮ⷪ̕b"#),
+        (r#"a֮ⷪ̀̕b"#, r#"a֮ⷪ̀̕b"#, r#"a֮ⷪ̀̕b"#, r#"a֮ⷪ̀̕b"#, r#"a֮ⷪ̀̕b"#),
+        (r#"à֮ⷫ̕b"#, r#"à֮ⷫ̕b"#, r#"à֮ⷫ̕b"#, r#"à֮ⷫ̕b"#, r#"à֮ⷫ̕b"#),
+        (r#"a֮ⷫ̀̕b"#, r#"a֮ⷫ̀̕b"#, r#"a֮ⷫ̀̕b"#, r#"a֮ⷫ̀̕b"#, r#"a֮ⷫ̀̕b"#),
+        (r#"à֮ⷬ̕b"#, r#"à֮ⷬ̕b"#, r#"à֮ⷬ̕b"#, r#"à֮ⷬ̕b"#, r#"à֮ⷬ̕b"#),
+        (r#"a֮ⷬ̀̕b"#, r#"a֮ⷬ̀̕b"#, r#"a֮ⷬ̀̕b"#, r#"a֮ⷬ̀̕b"#, r#"a֮ⷬ̀̕b"#),
+        (r#"à֮ⷭ̕b"#, r#"à֮ⷭ̕b"#, r#"à֮ⷭ̕b"#, r#"à֮ⷭ̕b"#, r#"à֮ⷭ̕b"#),
+        (r#"a֮ⷭ̀̕b"#, r#"a֮ⷭ̀̕b"#, r#"a֮ⷭ̀̕b"#, r#"a֮ⷭ̀̕b"#, r#"a֮ⷭ̀̕b"#),
+        (r#"à֮ⷮ̕b"#, r#"à֮ⷮ̕b"#, r#"à֮ⷮ̕b"#, r#"à֮ⷮ̕b"#, r#"à֮ⷮ̕b"#),
+        (r#"a֮ⷮ̀̕b"#, r#"a֮ⷮ̀̕b"#, r#"a֮ⷮ̀̕b"#, r#"a֮ⷮ̀̕b"#, r#"a֮ⷮ̀̕b"#),
+        (r#"à֮ⷯ̕b"#, r#"à֮ⷯ̕b"#, r#"à֮ⷯ̕b"#, r#"à֮ⷯ̕b"#, r#"à֮ⷯ̕b"#),
+        (r#"a֮ⷯ̀̕b"#, r#"a֮ⷯ̀̕b"#, r#"a֮ⷯ̀̕b"#, r#"a֮ⷯ̀̕b"#, r#"a֮ⷯ̀̕b"#),
+        (r#"à֮ⷰ̕b"#, r#"à֮ⷰ̕b"#, r#"à֮ⷰ̕b"#, r#"à֮ⷰ̕b"#, r#"à֮ⷰ̕b"#),
+        (r#"a֮ⷰ̀̕b"#, r#"a֮ⷰ̀̕b"#, r#"a֮ⷰ̀̕b"#, r#"a֮ⷰ̀̕b"#, r#"a֮ⷰ̀̕b"#),
+        (r#"à֮ⷱ̕b"#, r#"à֮ⷱ̕b"#, r#"à֮ⷱ̕b"#, r#"à֮ⷱ̕b"#, r#"à֮ⷱ̕b"#),
+        (r#"a֮ⷱ̀̕b"#, r#"a֮ⷱ̀̕b"#, r#"a֮ⷱ̀̕b"#, r#"a֮ⷱ̀̕b"#, r#"a֮ⷱ̀̕b"#),
+        (r#"à֮ⷲ̕b"#, r#"à֮ⷲ̕b"#, r#"à֮ⷲ̕b"#, r#"à֮ⷲ̕b"#, r#"à֮ⷲ̕b"#),
+        (r#"a֮ⷲ̀̕b"#, r#"a֮ⷲ̀̕b"#, r#"a֮ⷲ̀̕b"#, r#"a֮ⷲ̀̕b"#, r#"a֮ⷲ̀̕b"#),
+        (r#"à֮ⷳ̕b"#, r#"à֮ⷳ̕b"#, r#"à֮ⷳ̕b"#, r#"à֮ⷳ̕b"#, r#"à֮ⷳ̕b"#),
+        (r#"a֮ⷳ̀̕b"#, r#"a֮ⷳ̀̕b"#, r#"a֮ⷳ̀̕b"#, r#"a֮ⷳ̀̕b"#, r#"a֮ⷳ̀̕b"#),
+        (r#"à֮ⷴ̕b"#, r#"à֮ⷴ̕b"#, r#"à֮ⷴ̕b"#, r#"à֮ⷴ̕b"#, r#"à֮ⷴ̕b"#),
+        (r#"a֮ⷴ̀̕b"#, r#"a֮ⷴ̀̕b"#, r#"a֮ⷴ̀̕b"#, r#"a֮ⷴ̀̕b"#, r#"a֮ⷴ̀̕b"#),
+        (r#"à֮ⷵ̕b"#, r#"à֮ⷵ̕b"#, r#"à֮ⷵ̕b"#, r#"à֮ⷵ̕b"#, r#"à֮ⷵ̕b"#),
+        (r#"a֮ⷵ̀̕b"#, r#"a֮ⷵ̀̕b"#, r#"a֮ⷵ̀̕b"#, r#"a֮ⷵ̀̕b"#, r#"a֮ⷵ̀̕b"#),
+        (r#"à֮ⷶ̕b"#, r#"à֮ⷶ̕b"#, r#"à֮ⷶ̕b"#, r#"à֮ⷶ̕b"#, r#"à֮ⷶ̕b"#),
+        (r#"a֮ⷶ̀̕b"#, r#"a֮ⷶ̀̕b"#, r#"a֮ⷶ̀̕b"#, r#"a֮ⷶ̀̕b"#, r#"a֮ⷶ̀̕b"#),
+        (r#"à֮ⷷ̕b"#, r#"à֮ⷷ̕b"#, r#"à֮ⷷ̕b"#, r#"à֮ⷷ̕b"#, r#"à֮ⷷ̕b"#),
+        (r#"a֮ⷷ̀̕b"#, r#"a֮ⷷ̀̕b"#, r#"a֮ⷷ̀̕b"#, r#"a֮ⷷ̀̕b"#, r#"a֮ⷷ̀̕b"#),
+        (r#"à֮ⷸ̕b"#, r#"à֮ⷸ̕b"#, r#"à֮ⷸ̕b"#, r#"à֮ⷸ̕b"#, r#"à֮ⷸ̕b"#),
+        (r#"a֮ⷸ̀̕b"#, r#"a֮ⷸ̀̕b"#, r#"a֮ⷸ̀̕b"#, r#"a֮ⷸ̀̕b"#, r#"a֮ⷸ̀̕b"#),
+        (r#"à֮ⷹ̕b"#, r#"à֮ⷹ̕b"#, r#"à֮ⷹ̕b"#, r#"à֮ⷹ̕b"#, r#"à֮ⷹ̕b"#),
+        (r#"a֮ⷹ̀̕b"#, r#"a֮ⷹ̀̕b"#, r#"a֮ⷹ̀̕b"#, r#"a֮ⷹ̀̕b"#, r#"a֮ⷹ̀̕b"#),
+        (r#"à֮ⷺ̕b"#, r#"à֮ⷺ̕b"#, r#"à֮ⷺ̕b"#, r#"à֮ⷺ̕b"#, r#"à֮ⷺ̕b"#),
+        (r#"a֮ⷺ̀̕b"#, r#"a֮ⷺ̀̕b"#, r#"a֮ⷺ̀̕b"#, r#"a֮ⷺ̀̕b"#, r#"a֮ⷺ̀̕b"#),
+        (r#"à֮ⷻ̕b"#, r#"à֮ⷻ̕b"#, r#"à֮ⷻ̕b"#, r#"à֮ⷻ̕b"#, r#"à֮ⷻ̕b"#),
+        (r#"a֮ⷻ̀̕b"#, r#"a֮ⷻ̀̕b"#, r#"a֮ⷻ̀̕b"#, r#"a֮ⷻ̀̕b"#, r#"a֮ⷻ̀̕b"#),
+        (r#"à֮ⷼ̕b"#, r#"à֮ⷼ̕b"#, r#"à֮ⷼ̕b"#, r#"à֮ⷼ̕b"#, r#"à֮ⷼ̕b"#),
+        (r#"a֮ⷼ̀̕b"#, r#"a֮ⷼ̀̕b"#, r#"a֮ⷼ̀̕b"#, r#"a֮ⷼ̀̕b"#, r#"a֮ⷼ̀̕b"#),
+        (r#"à֮ⷽ̕b"#, r#"à֮ⷽ̕b"#, r#"à֮ⷽ̕b"#, r#"à֮ⷽ̕b"#, r#"à֮ⷽ̕b"#),
+        (r#"a֮ⷽ̀̕b"#, r#"a֮ⷽ̀̕b"#, r#"a֮ⷽ̀̕b"#, r#"a֮ⷽ̀̕b"#, r#"a֮ⷽ̀̕b"#),
+        (r#"à֮ⷾ̕b"#, r#"à֮ⷾ̕b"#, r#"à֮ⷾ̕b"#, r#"à֮ⷾ̕b"#, r#"à֮ⷾ̕b"#),
+        (r#"a֮ⷾ̀̕b"#, r#"a֮ⷾ̀̕b"#, r#"a֮ⷾ̀̕b"#, r#"a֮ⷾ̀̕b"#, r#"a֮ⷾ̀̕b"#),
+        (r#"à֮ⷿ̕b"#, r#"à֮ⷿ̕b"#, r#"à֮ⷿ̕b"#, r#"à֮ⷿ̕b"#, r#"à֮ⷿ̕b"#),
+        (r#"a֮ⷿ̀̕b"#, r#"a֮ⷿ̀̕b"#, r#"a֮ⷿ̀̕b"#, r#"a֮ⷿ̀̕b"#, r#"a֮ⷿ̀̕b"#),
+        (r#"a̛᷺〪̖b"#, r#"a̛᷺〪̖b"#, r#"a̛᷺〪̖b"#, r#"a̛᷺〪̖b"#, r#"a̛᷺〪̖b"#),
+        (r#"a̛〪᷺̖b"#, r#"a̛〪᷺̖b"#, r#"a̛〪᷺̖b"#, r#"a̛〪᷺̖b"#, r#"a̛〪᷺̖b"#),
+        (r#"à𝅭֮〫b"#, r#"à𝅭֮〫b"#, r#"à𝅭֮〫b"#, r#"à𝅭֮〫b"#, r#"à𝅭֮〫b"#),
+        (r#"à𝅭〫֮b"#, r#"à𝅭〫֮b"#, r#"à𝅭〫֮b"#, r#"à𝅭〫֮b"#, r#"à𝅭〫֮b"#),
+        (r#"à̕〬͜b"#, r#"à̕〬͜b"#, r#"à̕〬͜b"#, r#"à̕〬͜b"#, r#"à̕〬͜b"#),
+        (r#"à〬̕͜b"#, r#"à〬̕͜b"#, r#"à〬̕͜b"#, r#"à〬̕͜b"#, r#"à〬̕͜b"#),
+        (r#"a̖֚〭〮b"#, r#"a̖֚〭〮b"#, r#"a̖֚〭〮b"#, r#"a̖֚〭〮b"#, r#"a̖֚〭〮b"#),
+        (r#"a̖〭֚〮b"#, r#"a̖〭֚〮b"#, r#"a̖〭֚〮b"#, r#"a̖〭֚〮b"#, r#"a̖〭֚〮b"#),
+        (r#"a֚〮〮𝅭b"#, r#"a֚〮〮𝅭b"#, r#"a֚〮〮𝅭b"#, r#"a֚〮〮𝅭b"#, r#"a֚〮〮𝅭b"#),
+        (r#"a֚〮〮𝅭b"#, r#"a֚〮〮𝅭b"#, r#"a֚〮〮𝅭b"#, r#"a֚〮〮𝅭b"#, r#"a֚〮〮𝅭b"#),
+        (r#"a֚〮〯𝅭b"#, r#"a֚〮〯𝅭b"#, r#"a֚〮〯𝅭b"#, r#"a֚〮〯𝅭b"#, r#"a֚〮〯𝅭b"#),
+        (r#"a֚〯〮𝅭b"#, r#"a֚〯〮𝅭b"#, r#"a֚〯〮𝅭b"#, r#"a֚〯〮𝅭b"#, r#"a֚〯〮𝅭b"#),
+        (r#"a़゙゙्b"#, r#"a़゙゙्b"#, r#"a़゙゙्b"#, r#"a़゙゙्b"#, r#"a़゙゙्b"#),
+        (r#"a़゙゙्b"#, r#"a़゙゙्b"#, r#"a़゙゙्b"#, r#"a़゙゙्b"#, r#"a़゙゙्b"#),
+        (r#"a़゙゚्b"#, r#"a़゙゚्b"#, r#"a़゙゚्b"#, r#"a़゙゚्b"#, r#"a़゙゚्b"#),
+        (r#"a़゚゙्b"#, r#"a़゚゙्b"#, r#"a़゚゙्b"#, r#"a़゚゙्b"#, r#"a़゚゙्b"#),
+        (r#"à֮꙯̕b"#, r#"à֮꙯̕b"#, r#"à֮꙯̕b"#, r#"à֮꙯̕b"#, r#"à֮꙯̕b"#),
+        (r#"a֮꙯̀̕b"#, r#"a֮꙯̀̕b"#, r#"a֮꙯̀̕b"#, r#"a֮꙯̀̕b"#, r#"a֮꙯̀̕b"#),
+        (r#"à֮ꙴ̕b"#, r#"à֮ꙴ̕b"#, r#"à֮ꙴ̕b"#, r#"à֮ꙴ̕b"#, r#"à֮ꙴ̕b"#),
+        (r#"a֮ꙴ̀̕b"#, r#"a֮ꙴ̀̕b"#, r#"a֮ꙴ̀̕b"#, r#"a֮ꙴ̀̕b"#, r#"a֮ꙴ̀̕b"#),
+        (r#"à֮ꙵ̕b"#, r#"à֮ꙵ̕b"#, r#"à֮ꙵ̕b"#, r#"à֮ꙵ̕b"#, r#"à֮ꙵ̕b"#),
+        (r#"a֮ꙵ̀̕b"#, r#"a֮ꙵ̀̕b"#, r#"a֮ꙵ̀̕b"#, r#"a֮ꙵ̀̕b"#, r#"a֮ꙵ̀̕b"#),
+        (r#"à֮ꙶ̕b"#, r#"à֮ꙶ̕b"#, r#"à֮ꙶ̕b"#, r#"à֮ꙶ̕b"#, r#"à֮ꙶ̕b"#),
+        (r#"a֮ꙶ̀̕b"#, r#"a֮ꙶ̀̕b"#, r#"a֮ꙶ̀̕b"#, r#"a֮ꙶ̀̕b"#, r#"a֮ꙶ̀̕b"#),
+        (r#"à֮ꙷ̕b"#, r#"à֮ꙷ̕b"#, r#"à֮ꙷ̕b"#, r#"à֮ꙷ̕b"#, r#"à֮ꙷ̕b"#),
+        (r#"a֮ꙷ̀̕b"#, r#"a֮ꙷ̀̕b"#, r#"a֮ꙷ̀̕b"#, r#"a֮ꙷ̀̕b"#, r#"a֮ꙷ̀̕b"#),
+        (r#"à֮ꙸ̕b"#, r#"à֮ꙸ̕b"#, r#"à֮ꙸ̕b"#, r#"à֮ꙸ̕b"#, r#"à֮ꙸ̕b"#),
+        (r#"a֮ꙸ̀̕b"#, r#"a֮ꙸ̀̕b"#, r#"a֮ꙸ̀̕b"#, r#"a֮ꙸ̀̕b"#, r#"a֮ꙸ̀̕b"#),
+        (r#"à֮ꙹ̕b"#, r#"à֮ꙹ̕b"#, r#"à֮ꙹ̕b"#, r#"à֮ꙹ̕b"#, r#"à֮ꙹ̕b"#),
+        (r#"a֮ꙹ̀̕b"#, r#"a֮ꙹ̀̕b"#, r#"a֮ꙹ̀̕b"#, r#"a֮ꙹ̀̕b"#, r#"a֮ꙹ̀̕b"#),
+        (r#"à֮ꙺ̕b"#, r#"à֮ꙺ̕b"#, r#"à֮ꙺ̕b"#, r#"à֮ꙺ̕b"#, r#"à֮ꙺ̕b"#),
+        (r#"a֮ꙺ̀̕b"#, r#"a֮ꙺ̀̕b"#, r#"a֮ꙺ̀̕b"#, r#"a֮ꙺ̀̕b"#, r#"a֮ꙺ̀̕b"#),
+        (r#"à֮ꙻ̕b"#, r#"à֮ꙻ̕b"#, r#"à֮ꙻ̕b"#, r#"à֮ꙻ̕b"#, r#"à֮ꙻ̕b"#),
+        (r#"a֮ꙻ̀̕b"#, r#"a֮ꙻ̀̕b"#, r#"a֮ꙻ̀̕b"#, r#"a֮ꙻ̀̕b"#, r#"a֮ꙻ̀̕b"#),
+        (r#"à֮꙼̕b"#, r#"à֮꙼̕b"#, r#"à֮꙼̕b"#, r#"à֮꙼̕b"#, r#"à֮꙼̕b"#),
+        (r#"a֮꙼̀̕b"#, r#"a֮꙼̀̕b"#, r#"a֮꙼̀̕b"#, r#"a֮꙼̀̕b"#, r#"a֮꙼̀̕b"#),
+        (r#"à֮꙽̕b"#, r#"à֮꙽̕b"#, r#"à֮꙽̕b"#, r#"à֮꙽̕b"#, r#"à֮꙽̕b"#),
+        (r#"a֮꙽̀̕b"#, r#"a֮꙽̀̕b"#, r#"a֮꙽̀̕b"#, r#"a֮꙽̀̕b"#, r#"a֮꙽̀̕b"#),
+        (r#"à֮ꚞ̕b"#, r#"à֮ꚞ̕b"#, r#"à֮ꚞ̕b"#, r#"à֮ꚞ̕b"#, r#"à֮ꚞ̕b"#),
+        (r#"a֮ꚞ̀̕b"#, r#"a֮ꚞ̀̕b"#, r#"a֮ꚞ̀̕b"#, r#"a֮ꚞ̀̕b"#, r#"a֮ꚞ̀̕b"#),
+        (r#"à֮ꚟ̕b"#, r#"à֮ꚟ̕b"#, r#"à֮ꚟ̕b"#, r#"à֮ꚟ̕b"#, r#"à֮ꚟ̕b"#),
+        (r#"a֮ꚟ̀̕b"#, r#"a֮ꚟ̀̕b"#, r#"a֮ꚟ̀̕b"#, r#"a֮ꚟ̀̕b"#, r#"a֮ꚟ̀̕b"#),
+        (r#"à֮꛰̕b"#, r#"à֮꛰̕b"#, r#"à֮꛰̕b"#, r#"à֮꛰̕b"#, r#"à֮꛰̕b"#),
+        (r#"a֮꛰̀̕b"#, r#"a֮꛰̀̕b"#, r#"a֮꛰̀̕b"#, r#"a֮꛰̀̕b"#, r#"a֮꛰̀̕b"#),
+        (r#"à֮꛱̕b"#, r#"à֮꛱̕b"#, r#"à֮꛱̕b"#, r#"à֮꛱̕b"#, r#"à֮꛱̕b"#),
+        (r#"a֮꛱̀̕b"#, r#"a֮꛱̀̕b"#, r#"a֮꛱̀̕b"#, r#"a֮꛱̀̕b"#, r#"a֮꛱̀̕b"#),
+        (r#"a゙्꠆ְb"#, r#"a゙्꠆ְb"#, r#"a゙्꠆ְb"#, r#"a゙्꠆ְb"#, r#"a゙्꠆ְb"#),
+        (r#"a゙꠆्ְb"#, r#"a゙꠆्ְb"#, r#"a゙꠆्ְb"#, r#"a゙꠆्ְb"#, r#"a゙꠆्ְb"#),
+        (r#"a゙्꠬ְb"#, r#"a゙्꠬ְb"#, r#"a゙्꠬ְb"#, r#"a゙्꠬ְb"#, r#"a゙्꠬ְb"#),
+        (r#"a゙꠬्ְb"#, r#"a゙꠬्ְb"#, r#"a゙꠬्ְb"#, r#"a゙꠬्ְb"#, r#"a゙꠬्ְb"#),
+        (r#"a゙्꣄ְb"#, r#"a゙्꣄ְb"#, r#"a゙्꣄ְb"#, r#"a゙्꣄ְb"#, r#"a゙्꣄ְb"#),
+        (r#"a゙꣄्ְb"#, r#"a゙꣄्ְb"#, r#"a゙꣄्ְb"#, r#"a゙꣄्ְb"#, r#"a゙꣄्ְb"#),
+        (r#"à֮꣠̕b"#, r#"à֮꣠̕b"#, r#"à֮꣠̕b"#, r#"à֮꣠̕b"#, r#"à֮꣠̕b"#),
+        (r#"a֮꣠̀̕b"#, r#"a֮꣠̀̕b"#, r#"a֮꣠̀̕b"#, r#"a֮꣠̀̕b"#, r#"a֮꣠̀̕b"#),
+        (r#"à֮꣡̕b"#, r#"à֮꣡̕b"#, r#"à֮꣡̕b"#, r#"à֮꣡̕b"#, r#"à֮꣡̕b"#),
+        (r#"a֮꣡̀̕b"#, r#"a֮꣡̀̕b"#, r#"a֮꣡̀̕b"#, r#"a֮꣡̀̕b"#, r#"a֮꣡̀̕b"#),
+        (r#"à֮꣢̕b"#, r#"à֮꣢̕b"#, r#"à֮꣢̕b"#, r#"à֮꣢̕b"#, r#"à֮꣢̕b"#),
+        (r#"a֮꣢̀̕b"#, r#"a֮꣢̀̕b"#, r#"a֮꣢̀̕b"#, r#"a֮꣢̀̕b"#, r#"a֮꣢̀̕b"#),
+        (r#"à֮꣣̕b"#, r#"à֮꣣̕b"#, r#"à֮꣣̕b"#, r#"à֮꣣̕b"#, r#"à֮꣣̕b"#),
+        (r#"a֮꣣̀̕b"#, r#"a֮꣣̀̕b"#, r#"a֮꣣̀̕b"#, r#"a֮꣣̀̕b"#, r#"a֮꣣̀̕b"#),
+        (r#"à֮꣤̕b"#, r#"à֮꣤̕b"#, r#"à֮꣤̕b"#, r#"à֮꣤̕b"#, r#"à֮꣤̕b"#),
+        (r#"a֮꣤̀̕b"#, r#"a֮꣤̀̕b"#, r#"a֮꣤̀̕b"#, r#"a֮꣤̀̕b"#, r#"a֮꣤̀̕b"#),
+        (r#"à֮꣥̕b"#, r#"à֮꣥̕b"#, r#"à֮꣥̕b"#, r#"à֮꣥̕b"#, r#"à֮꣥̕b"#),
+        (r#"a֮꣥̀̕b"#, r#"a֮꣥̀̕b"#, r#"a֮꣥̀̕b"#, r#"a֮꣥̀̕b"#, r#"a֮꣥̀̕b"#),
+        (r#"à֮꣦̕b"#, r#"à֮꣦̕b"#, r#"à֮꣦̕b"#, r#"à֮꣦̕b"#, r#"à֮꣦̕b"#),
+        (r#"a֮꣦̀̕b"#, r#"a֮꣦̀̕b"#, r#"a֮꣦̀̕b"#, r#"a֮꣦̀̕b"#, r#"a֮꣦̀̕b"#),
+        (r#"à֮꣧̕b"#, r#"à֮꣧̕b"#, r#"à֮꣧̕b"#, r#"à֮꣧̕b"#, r#"à֮꣧̕b"#),
+        (r#"a֮꣧̀̕b"#, r#"a֮꣧̀̕b"#, r#"a֮꣧̀̕b"#, r#"a֮꣧̀̕b"#, r#"a֮꣧̀̕b"#),
+        (r#"à֮꣨̕b"#, r#"à֮꣨̕b"#, r#"à֮꣨̕b"#, r#"à֮꣨̕b"#, r#"à֮꣨̕b"#),
+        (r#"a֮꣨̀̕b"#, r#"a֮꣨̀̕b"#, r#"a֮꣨̀̕b"#, r#"a֮꣨̀̕b"#, r#"a֮꣨̀̕b"#),
+        (r#"à֮꣩̕b"#, r#"à֮꣩̕b"#, r#"à֮꣩̕b"#, r#"à֮꣩̕b"#, r#"à֮꣩̕b"#),
+        (r#"a֮꣩̀̕b"#, r#"a֮꣩̀̕b"#, r#"a֮꣩̀̕b"#, r#"a֮꣩̀̕b"#, r#"a֮꣩̀̕b"#),
+        (r#"à֮꣪̕b"#, r#"à֮꣪̕b"#, r#"à֮꣪̕b"#, r#"à֮꣪̕b"#, r#"à֮꣪̕b"#),
+        (r#"a֮꣪̀̕b"#, r#"a֮꣪̀̕b"#, r#"a֮꣪̀̕b"#, r#"a֮꣪̀̕b"#, r#"a֮꣪̀̕b"#),
+        (r#"à֮꣫̕b"#, r#"à֮꣫̕b"#, r#"à֮꣫̕b"#, r#"à֮꣫̕b"#, r#"à֮꣫̕b"#),
+        (r#"a֮꣫̀̕b"#, r#"a֮꣫̀̕b"#, r#"a֮꣫̀̕b"#, r#"a֮꣫̀̕b"#, r#"a֮꣫̀̕b"#),
+        (r#"à֮꣬̕b"#, r#"à֮꣬̕b"#, r#"à֮꣬̕b"#, r#"à֮꣬̕b"#, r#"à֮꣬̕b"#),
+        (r#"a֮꣬̀̕b"#, r#"a֮꣬̀̕b"#, r#"a֮꣬̀̕b"#, r#"a֮꣬̀̕b"#, r#"a֮꣬̀̕b"#),
+        (r#"à֮꣭̕b"#, r#"à֮꣭̕b"#, r#"à֮꣭̕b"#, r#"à֮꣭̕b"#, r#"à֮꣭̕b"#),
+        (r#"a֮꣭̀̕b"#, r#"a֮꣭̀̕b"#, r#"a֮꣭̀̕b"#, r#"a֮꣭̀̕b"#, r#"a֮꣭̀̕b"#),
+        (r#"à֮꣮̕b"#, r#"à֮꣮̕b"#, r#"à֮꣮̕b"#, r#"à֮꣮̕b"#, r#"à֮꣮̕b"#),
+        (r#"a֮꣮̀̕b"#, r#"a֮꣮̀̕b"#, r#"a֮꣮̀̕b"#, r#"a֮꣮̀̕b"#, r#"a֮꣮̀̕b"#),
+        (r#"à֮꣯̕b"#, r#"à֮꣯̕b"#, r#"à֮꣯̕b"#, r#"à֮꣯̕b"#, r#"à֮꣯̕b"#),
+        (r#"a֮꣯̀̕b"#, r#"a֮꣯̀̕b"#, r#"a֮꣯̀̕b"#, r#"a֮꣯̀̕b"#, r#"a֮꣯̀̕b"#),
+        (r#"à֮꣰̕b"#, r#"à֮꣰̕b"#, r#"à֮꣰̕b"#, r#"à֮꣰̕b"#, r#"à֮꣰̕b"#),
+        (r#"a֮꣰̀̕b"#, r#"a֮꣰̀̕b"#, r#"a֮꣰̀̕b"#, r#"a֮꣰̀̕b"#, r#"a֮꣰̀̕b"#),
+        (r#"à֮꣱̕b"#, r#"à֮꣱̕b"#, r#"à֮꣱̕b"#, r#"à֮꣱̕b"#, r#"à֮꣱̕b"#),
+        (r#"a֮꣱̀̕b"#, r#"a֮꣱̀̕b"#, r#"a֮꣱̀̕b"#, r#"a֮꣱̀̕b"#, r#"a֮꣱̀̕b"#),
+        (r#"a᷺̖꤫֚b"#, r#"a᷺̖꤫֚b"#, r#"a᷺̖꤫֚b"#, r#"a᷺̖꤫֚b"#, r#"a᷺̖꤫֚b"#),
+        (r#"a᷺꤫̖֚b"#, r#"a᷺꤫̖֚b"#, r#"a᷺꤫̖֚b"#, r#"a᷺꤫̖֚b"#, r#"a᷺꤫̖֚b"#),
+        (r#"a᷺̖꤬֚b"#, r#"a᷺̖꤬֚b"#, r#"a᷺̖꤬֚b"#, r#"a᷺̖꤬֚b"#, r#"a᷺̖꤬֚b"#),
+        (r#"a᷺꤬̖֚b"#, r#"a᷺꤬̖֚b"#, r#"a᷺꤬̖֚b"#, r#"a᷺꤬̖֚b"#, r#"a᷺꤬̖֚b"#),
+        (r#"a᷺̖꤭֚b"#, r#"a᷺̖꤭֚b"#, r#"a᷺̖꤭֚b"#, r#"a᷺̖꤭֚b"#, r#"a᷺̖꤭֚b"#),
+        (r#"a᷺꤭̖֚b"#, r#"a᷺꤭̖֚b"#, r#"a᷺꤭̖֚b"#, r#"a᷺꤭̖֚b"#, r#"a᷺꤭̖֚b"#),
+        (r#"a゙्꥓ְb"#, r#"a゙्꥓ְb"#, r#"a゙्꥓ְb"#, r#"a゙्꥓ְb"#, r#"a゙्꥓ְb"#),
+        (r#"a゙꥓्ְb"#, r#"a゙꥓्ְb"#, r#"a゙꥓्ְb"#, r#"a゙꥓्ְb"#, r#"a゙꥓्ְb"#),
+        (r#"a𖿰़꦳゙b"#, r#"a𖿰़꦳゙b"#, r#"a𖿰़꦳゙b"#, r#"a𖿰़꦳゙b"#, r#"a𖿰़꦳゙b"#),
+        (r#"a𖿰꦳़゙b"#, r#"a𖿰꦳़゙b"#, r#"a𖿰꦳़゙b"#, r#"a𖿰꦳़゙b"#, r#"a𖿰꦳़゙b"#),
+        (r#"a゙्꧀ְb"#, r#"a゙्꧀ְb"#, r#"a゙्꧀ְb"#, r#"a゙्꧀ְb"#, r#"a゙्꧀ְb"#),
+        (r#"a゙꧀्ְb"#, r#"a゙꧀्ְb"#, r#"a゙꧀्ְb"#, r#"a゙꧀्ְb"#, r#"a゙꧀्ְb"#),
+        (r#"à֮ꪰ̕b"#, r#"à֮ꪰ̕b"#, r#"à֮ꪰ̕b"#, r#"à֮ꪰ̕b"#, r#"à֮ꪰ̕b"#),
+        (r#"a֮ꪰ̀̕b"#, r#"a֮ꪰ̀̕b"#, r#"a֮ꪰ̀̕b"#, r#"a֮ꪰ̀̕b"#, r#"a֮ꪰ̀̕b"#),
+        (r#"à֮ꪲ̕b"#, r#"à֮ꪲ̕b"#, r#"à֮ꪲ̕b"#, r#"à֮ꪲ̕b"#, r#"à֮ꪲ̕b"#),
+        (r#"a֮ꪲ̀̕b"#, r#"a֮ꪲ̀̕b"#, r#"a֮ꪲ̀̕b"#, r#"a֮ꪲ̀̕b"#, r#"a֮ꪲ̀̕b"#),
+        (r#"à֮ꪳ̕b"#, r#"à֮ꪳ̕b"#, r#"à֮ꪳ̕b"#, r#"à֮ꪳ̕b"#, r#"à֮ꪳ̕b"#),
+        (r#"a֮ꪳ̀̕b"#, r#"a֮ꪳ̀̕b"#, r#"a֮ꪳ̀̕b"#, r#"a֮ꪳ̀̕b"#, r#"a֮ꪳ̀̕b"#),
+        (r#"a᷺̖ꪴ֚b"#, r#"a᷺̖ꪴ֚b"#, r#"a᷺̖ꪴ֚b"#, r#"a᷺̖ꪴ֚b"#, r#"a᷺̖ꪴ֚b"#),
+        (r#"a᷺ꪴ̖֚b"#, r#"a᷺ꪴ̖֚b"#, r#"a᷺ꪴ̖֚b"#, r#"a᷺ꪴ̖֚b"#, r#"a᷺ꪴ̖֚b"#),
+        (r#"à֮ꪷ̕b"#, r#"à֮ꪷ̕b"#, r#"à֮ꪷ̕b"#, r#"à֮ꪷ̕b"#, r#"à֮ꪷ̕b"#),
+        (r#"a֮ꪷ̀̕b"#, r#"a֮ꪷ̀̕b"#, r#"a֮ꪷ̀̕b"#, r#"a֮ꪷ̀̕b"#, r#"a֮ꪷ̀̕b"#),
+        (r#"à֮ꪸ̕b"#, r#"à֮ꪸ̕b"#, r#"à֮ꪸ̕b"#, r#"à֮ꪸ̕b"#, r#"à֮ꪸ̕b"#),
+        (r#"a֮ꪸ̀̕b"#, r#"a֮ꪸ̀̕b"#, r#"a֮ꪸ̀̕b"#, r#"a֮ꪸ̀̕b"#, r#"a֮ꪸ̀̕b"#),
+        (r#"à֮ꪾ̕b"#, r#"à֮ꪾ̕b"#, r#"à֮ꪾ̕b"#, r#"à֮ꪾ̕b"#, r#"à֮ꪾ̕b"#),
+        (r#"a֮ꪾ̀̕b"#, r#"a֮ꪾ̀̕b"#, r#"a֮ꪾ̀̕b"#, r#"a֮ꪾ̀̕b"#, r#"a֮ꪾ̀̕b"#),
+        (r#"à֮꪿̕b"#, r#"à֮꪿̕b"#, r#"à֮꪿̕b"#, r#"à֮꪿̕b"#, r#"à֮꪿̕b"#),
+        (r#"a֮꪿̀̕b"#, r#"a֮꪿̀̕b"#, r#"a֮꪿̀̕b"#, r#"a֮꪿̀̕b"#, r#"a֮꪿̀̕b"#),
+        (r#"à֮꫁̕b"#, r#"à֮꫁̕b"#, r#"à֮꫁̕b"#, r#"à֮꫁̕b"#, r#"à֮꫁̕b"#),
+        (r#"a֮꫁̀̕b"#, r#"a֮꫁̀̕b"#, r#"a֮꫁̀̕b"#, r#"a֮꫁̀̕b"#, r#"a֮꫁̀̕b"#),
+        (r#"a゙्꫶ְb"#, r#"a゙्꫶ְb"#, r#"a゙्꫶ְb"#, r#"a゙्꫶ְb"#, r#"a゙्꫶ְb"#),
+        (r#"a゙꫶्ְb"#, r#"a゙꫶्ְb"#, r#"a゙꫶्ְb"#, r#"a゙꫶्ְb"#, r#"a゙꫶्ְb"#),
+        (r#"a゙्꯭ְb"#, r#"a゙्꯭ְb"#, r#"a゙्꯭ְb"#, r#"a゙्꯭ְb"#, r#"a゙्꯭ְb"#),
+        (r#"a゙꯭्ְb"#, r#"a゙꯭्ְb"#, r#"a゙꯭्ְb"#, r#"a゙꯭्ְb"#, r#"a゙꯭्ְb"#),
+        (r#"aׂﬞﬞًb"#, r#"aׂﬞﬞًb"#, r#"aׂﬞﬞًb"#, r#"aׂﬞﬞًb"#, r#"aׂﬞﬞًb"#),
+        (r#"aׂﬞﬞًb"#, r#"aׂﬞﬞًb"#, r#"aׂﬞﬞًb"#, r#"aׂﬞﬞًb"#, r#"aׂﬞﬞًb"#),
+        (r#"à֮︠̕b"#, r#"à֮︠̕b"#, r#"à֮︠̕b"#, r#"à֮︠̕b"#, r#"à֮︠̕b"#),
+        (r#"a֮︠̀̕b"#, r#"a֮︠̀̕b"#, r#"a֮︠̀̕b"#, r#"a֮︠̀̕b"#, r#"a֮︠̀̕b"#),
+        (r#"à֮︡̕b"#, r#"à֮︡̕b"#, r#"à֮︡̕b"#, r#"à֮︡̕b"#, r#"à֮︡̕b"#),
+        (r#"a֮︡̀̕b"#, r#"a֮︡̀̕b"#, r#"a֮︡̀̕b"#, r#"a֮︡̀̕b"#, r#"a֮︡̀̕b"#),
+        (r#"à֮︢̕b"#, r#"à֮︢̕b"#, r#"à֮︢̕b"#, r#"à֮︢̕b"#, r#"à֮︢̕b"#),
+        (r#"a֮︢̀̕b"#, r#"a֮︢̀̕b"#, r#"a֮︢̀̕b"#, r#"a֮︢̀̕b"#, r#"a֮︢̀̕b"#),
+        (r#"à֮︣̕b"#, r#"à֮︣̕b"#, r#"à֮︣̕b"#, r#"à֮︣̕b"#, r#"à֮︣̕b"#),
+        (r#"a֮︣̀̕b"#, r#"a֮︣̀̕b"#, r#"a֮︣̀̕b"#, r#"a֮︣̀̕b"#, r#"a֮︣̀̕b"#),
+        (r#"à֮︤̕b"#, r#"à֮︤̕b"#, r#"à֮︤̕b"#, r#"à֮︤̕b"#, r#"à֮︤̕b"#),
+        (r#"a֮︤̀̕b"#, r#"a֮︤̀̕b"#, r#"a֮︤̀̕b"#, r#"a֮︤̀̕b"#, r#"a֮︤̀̕b"#),
+        (r#"à֮︥̕b"#, r#"à֮︥̕b"#, r#"à֮︥̕b"#, r#"à֮︥̕b"#, r#"à֮︥̕b"#),
+        (r#"a֮︥̀̕b"#, r#"a֮︥̀̕b"#, r#"a֮︥̀̕b"#, r#"a֮︥̀̕b"#, r#"a֮︥̀̕b"#),
+        (r#"à֮︦̕b"#, r#"à֮︦̕b"#, r#"à֮︦̕b"#, r#"à֮︦̕b"#, r#"à֮︦̕b"#),
+        (r#"a֮︦̀̕b"#, r#"a֮︦̀̕b"#, r#"a֮︦̀̕b"#, r#"a֮︦̀̕b"#, r#"a֮︦̀̕b"#),
+        (r#"a᷺̖︧֚b"#, r#"a᷺̖︧֚b"#, r#"a᷺̖︧֚b"#, r#"a᷺̖︧֚b"#, r#"a᷺̖︧֚b"#),
+        (r#"a᷺︧̖֚b"#, r#"a᷺︧̖֚b"#, r#"a᷺︧̖֚b"#, r#"a᷺︧̖֚b"#, r#"a᷺︧̖֚b"#),
+        (r#"a᷺̖︨֚b"#, r#"a᷺̖︨֚b"#, r#"a᷺̖︨֚b"#, r#"a᷺̖︨֚b"#, r#"a᷺̖︨֚b"#),
+        (r#"a᷺︨̖֚b"#, r#"a᷺︨̖֚b"#, r#"a᷺︨̖֚b"#, r#"a᷺︨̖֚b"#, r#"a᷺︨̖֚b"#),
+        (r#"a᷺̖︩֚b"#, r#"a᷺̖︩֚b"#, r#"a᷺̖︩֚b"#, r#"a᷺̖︩֚b"#, r#"a᷺̖︩֚b"#),
+        (r#"a᷺︩̖֚b"#, r#"a᷺︩̖֚b"#, r#"a᷺︩̖֚b"#, r#"a᷺︩̖֚b"#, r#"a᷺︩̖֚b"#),
+        (r#"a᷺̖︪֚b"#, r#"a᷺̖︪֚b"#, r#"a᷺̖︪֚b"#, r#"a᷺̖︪֚b"#, r#"a᷺̖︪֚b"#),
+        (r#"a᷺︪̖֚b"#, r#"a᷺︪̖֚b"#, r#"a᷺︪̖֚b"#, r#"a᷺︪̖֚b"#, r#"a᷺︪̖֚b"#),
+        (r#"a᷺̖︫֚b"#, r#"a᷺̖︫֚b"#, r#"a᷺̖︫֚b"#, r#"a᷺̖︫֚b"#, r#"a᷺̖︫֚b"#),
+        (r#"a᷺︫̖֚b"#, r#"a᷺︫̖֚b"#, r#"a᷺︫̖֚b"#, r#"a᷺︫̖֚b"#, r#"a᷺︫̖֚b"#),
+        (r#"a᷺̖︬֚b"#, r#"a᷺̖︬֚b"#, r#"a᷺̖︬֚b"#, r#"a᷺̖︬֚b"#, r#"a᷺̖︬֚b"#),
+        (r#"a᷺︬̖֚b"#, r#"a᷺︬̖֚b"#, r#"a᷺︬̖֚b"#, r#"a᷺︬̖֚b"#, r#"a᷺︬̖֚b"#),
+        (r#"a᷺̖︭֚b"#, r#"a᷺̖︭֚b"#, r#"a᷺̖︭֚b"#, r#"a᷺̖︭֚b"#, r#"a᷺̖︭֚b"#),
+        (r#"a᷺︭̖֚b"#, r#"a᷺︭̖֚b"#, r#"a᷺︭̖֚b"#, r#"a᷺︭̖֚b"#, r#"a᷺︭̖֚b"#),
+        (r#"à֮︮̕b"#, r#"à֮︮̕b"#, r#"à֮︮̕b"#, r#"à֮︮̕b"#, r#"à֮︮̕b"#),
+        (r#"a֮︮̀̕b"#, r#"a֮︮̀̕b"#, r#"a֮︮̀̕b"#, r#"a֮︮̀̕b"#, r#"a֮︮̀̕b"#),
+        (r#"à֮︯̕b"#, r#"à֮︯̕b"#, r#"à֮︯̕b"#, r#"à֮︯̕b"#, r#"à֮︯̕b"#),
+        (r#"a֮︯̀̕b"#, r#"a֮︯̀̕b"#, r#"a֮︯̀̕b"#, r#"a֮︯̀̕b"#, r#"a֮︯̀̕b"#),
+        (r#"a᷺̖𐇽֚b"#, r#"a᷺̖𐇽֚b"#, r#"a᷺̖𐇽֚b"#, r#"a᷺̖𐇽֚b"#, r#"a᷺̖𐇽֚b"#),
+        (r#"a᷺𐇽̖֚b"#, r#"a᷺𐇽̖֚b"#, r#"a᷺𐇽̖֚b"#, r#"a᷺𐇽̖֚b"#, r#"a᷺𐇽̖֚b"#),
+        (r#"a᷺̖𐋠֚b"#, r#"a᷺̖𐋠֚b"#, r#"a᷺̖𐋠֚b"#, r#"a᷺̖𐋠֚b"#, r#"a᷺̖𐋠֚b"#),
+        (r#"a᷺𐋠̖֚b"#, r#"a᷺𐋠̖֚b"#, r#"a᷺𐋠̖֚b"#, r#"a᷺𐋠̖֚b"#, r#"a᷺𐋠̖֚b"#),
+        (r#"à֮𐍶̕b"#, r#"à֮𐍶̕b"#, r#"à֮𐍶̕b"#, r#"à֮𐍶̕b"#, r#"à֮𐍶̕b"#),
+        (r#"a֮𐍶̀̕b"#, r#"a֮𐍶̀̕b"#, r#"a֮𐍶̀̕b"#, r#"a֮𐍶̀̕b"#, r#"a֮𐍶̀̕b"#),
+        (r#"à֮𐍷̕b"#, r#"à֮𐍷̕b"#, r#"à֮𐍷̕b"#, r#"à֮𐍷̕b"#, r#"à֮𐍷̕b"#),
+        (r#"a֮𐍷̀̕b"#, r#"a֮𐍷̀̕b"#, r#"a֮𐍷̀̕b"#, r#"a֮𐍷̀̕b"#, r#"a֮𐍷̀̕b"#),
+        (r#"à֮𐍸̕b"#, r#"à֮𐍸̕b"#, r#"à֮𐍸̕b"#, r#"à֮𐍸̕b"#, r#"à֮𐍸̕b"#),
+        (r#"a֮𐍸̀̕b"#, r#"a֮𐍸̀̕b"#, r#"a֮𐍸̀̕b"#, r#"a֮𐍸̀̕b"#, r#"a֮𐍸̀̕b"#),
+        (r#"à֮𐍹̕b"#, r#"à֮𐍹̕b"#, r#"à֮𐍹̕b"#, r#"à֮𐍹̕b"#, r#"à֮𐍹̕b"#),
+        (r#"a֮𐍹̀̕b"#, r#"a֮𐍹̀̕b"#, r#"a֮𐍹̀̕b"#, r#"a֮𐍹̀̕b"#, r#"a֮𐍹̀̕b"#),
+        (r#"à֮𐍺̕b"#, r#"à֮𐍺̕b"#, r#"à֮𐍺̕b"#, r#"à֮𐍺̕b"#, r#"à֮𐍺̕b"#),
+        (r#"a֮𐍺̀̕b"#, r#"a֮𐍺̀̕b"#, r#"a֮𐍺̀̕b"#, r#"a֮𐍺̀̕b"#, r#"a֮𐍺̀̕b"#),
+        (r#"a᷺̖𐨍֚b"#, r#"a᷺̖𐨍֚b"#, r#"a᷺̖𐨍֚b"#, r#"a᷺̖𐨍֚b"#, r#"a᷺̖𐨍֚b"#),
+        (r#"a᷺𐨍̖֚b"#, r#"a᷺𐨍̖֚b"#, r#"a᷺𐨍̖֚b"#, r#"a᷺𐨍̖֚b"#, r#"a᷺𐨍̖֚b"#),
+        (r#"à֮𐨏̕b"#, r#"à֮𐨏̕b"#, r#"à֮𐨏̕b"#, r#"à֮𐨏̕b"#, r#"à֮𐨏̕b"#),
+        (r#"a֮𐨏̀̕b"#, r#"a֮𐨏̀̕b"#, r#"a֮𐨏̀̕b"#, r#"a֮𐨏̀̕b"#, r#"a֮𐨏̀̕b"#),
+        (r#"à֮𐨸̕b"#, r#"à֮𐨸̕b"#, r#"à֮𐨸̕b"#, r#"à֮𐨸̕b"#, r#"à֮𐨸̕b"#),
+        (r#"a֮𐨸̀̕b"#, r#"a֮𐨸̀̕b"#, r#"a֮𐨸̀̕b"#, r#"a֮𐨸̀̕b"#, r#"a֮𐨸̀̕b"#),
+        (r#"a̴𐨹𖿰b"#, r#"a̴𐨹𖿰b"#, r#"a̴𐨹𖿰b"#, r#"a̴𐨹𖿰b"#, r#"a̴𐨹𖿰b"#),
+        (r#"a𐨹̴𖿰b"#, r#"a𐨹̴𖿰b"#, r#"a𐨹̴𖿰b"#, r#"a𐨹̴𖿰b"#, r#"a𐨹̴𖿰b"#),
+        (r#"a᷺̖𐨺֚b"#, r#"a᷺̖𐨺֚b"#, r#"a᷺̖𐨺֚b"#, r#"a᷺̖𐨺֚b"#, r#"a᷺̖𐨺֚b"#),
+        (r#"a᷺𐨺̖֚b"#, r#"a᷺𐨺̖֚b"#, r#"a᷺𐨺̖֚b"#, r#"a᷺𐨺̖֚b"#, r#"a᷺𐨺̖֚b"#),
+        (r#"a゙्𐨿ְb"#, r#"a゙्𐨿ְb"#, r#"a゙्𐨿ְb"#, r#"a゙्𐨿ְb"#, r#"a゙्𐨿ְb"#),
+        (r#"a゙𐨿्ְb"#, r#"a゙𐨿्ְb"#, r#"a゙𐨿्ְb"#, r#"a゙𐨿्ְb"#, r#"a゙𐨿्ְb"#),
+        (r#"à֮𐫥̕b"#, r#"à֮𐫥̕b"#, r#"à֮𐫥̕b"#, r#"à֮𐫥̕b"#, r#"à֮𐫥̕b"#),
+        (r#"a֮𐫥̀̕b"#, r#"a֮𐫥̀̕b"#, r#"a֮𐫥̀̕b"#, r#"a֮𐫥̀̕b"#, r#"a֮𐫥̀̕b"#),
+        (r#"a᷺̖𐫦֚b"#, r#"a᷺̖𐫦֚b"#, r#"a᷺̖𐫦֚b"#, r#"a᷺̖𐫦֚b"#, r#"a᷺̖𐫦֚b"#),
+        (r#"a᷺𐫦̖֚b"#, r#"a᷺𐫦̖֚b"#, r#"a᷺𐫦̖֚b"#, r#"a᷺𐫦̖֚b"#, r#"a᷺𐫦̖֚b"#),
+        (r#"à֮𐴤̕b"#, r#"à֮𐴤̕b"#, r#"à֮𐴤̕b"#, r#"à֮𐴤̕b"#, r#"à֮𐴤̕b"#),
+        (r#"a֮𐴤̀̕b"#, r#"a֮𐴤̀̕b"#, r#"a֮𐴤̀̕b"#, r#"a֮𐴤̀̕b"#, r#"a֮𐴤̀̕b"#),
+        (r#"à֮𐴥̕b"#, r#"à֮𐴥̕b"#, r#"à֮𐴥̕b"#, r#"à֮𐴥̕b"#, r#"à֮𐴥̕b"#),
+        (r#"a֮𐴥̀̕b"#, r#"a֮𐴥̀̕b"#, r#"a֮𐴥̀̕b"#, r#"a֮𐴥̀̕b"#, r#"a֮𐴥̀̕b"#),
+        (r#"à֮𐴦̕b"#, r#"à֮𐴦̕b"#, r#"à֮𐴦̕b"#, r#"à֮𐴦̕b"#, r#"à֮𐴦̕b"#),
+        (r#"a֮𐴦̀̕b"#, r#"a֮𐴦̀̕b"#, r#"a֮𐴦̀̕b"#, r#"a֮𐴦̀̕b"#, r#"a֮𐴦̀̕b"#),
+        (r#"à֮𐴧̕b"#, r#"à֮𐴧̕b"#, r#"à֮𐴧̕b"#, r#"à֮𐴧̕b"#, r#"à֮𐴧̕b"#),
+        (r#"a֮𐴧̀̕b"#, r#"a֮𐴧̀̕b"#, r#"a֮𐴧̀̕b"#, r#"a֮𐴧̀̕b"#, r#"a֮𐴧̀̕b"#),
+        (r#"à֮𐺫̕b"#, r#"à֮𐺫̕b"#, r#"à֮𐺫̕b"#, r#"à֮𐺫̕b"#, r#"à֮𐺫̕b"#),
+        (r#"a֮𐺫̀̕b"#, r#"a֮𐺫̀̕b"#, r#"a֮𐺫̀̕b"#, r#"a֮𐺫̀̕b"#, r#"a֮𐺫̀̕b"#),
+        (r#"à֮𐺬̕b"#, r#"à֮𐺬̕b"#, r#"à֮𐺬̕b"#, r#"à֮𐺬̕b"#, r#"à֮𐺬̕b"#),
+        (r#"a֮𐺬̀̕b"#, r#"a֮𐺬̀̕b"#, r#"a֮𐺬̀̕b"#, r#"a֮𐺬̀̕b"#, r#"a֮𐺬̀̕b"#),
+        (r#"a᷺̖𐻽֚b"#, r#"a᷺̖𐻽֚b"#, r#"a᷺̖𐻽֚b"#, r#"a᷺̖𐻽֚b"#, r#"a᷺̖𐻽֚b"#),
+        (r#"a᷺𐻽̖֚b"#, r#"a᷺𐻽̖֚b"#, r#"a᷺𐻽̖֚b"#, r#"a᷺𐻽̖֚b"#, r#"a᷺𐻽̖֚b"#),
+        (r#"a᷺̖𐻾֚b"#, r#"a᷺̖𐻾֚b"#, r#"a᷺̖𐻾֚b"#, r#"a᷺̖𐻾֚b"#, r#"a᷺̖𐻾֚b"#),
+        (r#"a᷺𐻾̖֚b"#, r#"a᷺𐻾̖֚b"#, r#"a᷺𐻾̖֚b"#, r#"a᷺𐻾̖֚b"#, r#"a᷺𐻾̖֚b"#),
+        (r#"a᷺̖𐻿֚b"#, r#"a᷺̖𐻿֚b"#, r#"a᷺̖𐻿֚b"#, r#"a᷺̖𐻿֚b"#, r#"a᷺̖𐻿֚b"#),
+        (r#"a᷺𐻿̖֚b"#, r#"a᷺𐻿̖֚b"#, r#"a᷺𐻿̖֚b"#, r#"a᷺𐻿̖֚b"#, r#"a᷺𐻿̖֚b"#),
+        (r#"a᷺̖𐽆֚b"#, r#"a᷺̖𐽆֚b"#, r#"a᷺̖𐽆֚b"#, r#"a᷺̖𐽆֚b"#, r#"a᷺̖𐽆֚b"#),
+        (r#"a᷺𐽆̖֚b"#, r#"a᷺𐽆̖֚b"#, r#"a᷺𐽆̖֚b"#, r#"a᷺𐽆̖֚b"#, r#"a᷺𐽆̖֚b"#),
+        (r#"a᷺̖𐽇֚b"#, r#"a᷺̖𐽇֚b"#, r#"a᷺̖𐽇֚b"#, r#"a᷺̖𐽇֚b"#, r#"a᷺̖𐽇֚b"#),
+        (r#"a᷺𐽇̖֚b"#, r#"a᷺𐽇̖֚b"#, r#"a᷺𐽇̖֚b"#, r#"a᷺𐽇̖֚b"#, r#"a᷺𐽇̖֚b"#),
+        (r#"à֮𐽈̕b"#, r#"à֮𐽈̕b"#, r#"à֮𐽈̕b"#, r#"à֮𐽈̕b"#, r#"à֮𐽈̕b"#),
+        (r#"a֮𐽈̀̕b"#, r#"a֮𐽈̀̕b"#, r#"a֮𐽈̀̕b"#, r#"a֮𐽈̀̕b"#, r#"a֮𐽈̀̕b"#),
+        (r#"à֮𐽉̕b"#, r#"à֮𐽉̕b"#, r#"à֮𐽉̕b"#, r#"à֮𐽉̕b"#, r#"à֮𐽉̕b"#),
+        (r#"a֮𐽉̀̕b"#, r#"a֮𐽉̀̕b"#, r#"a֮𐽉̀̕b"#, r#"a֮𐽉̀̕b"#, r#"a֮𐽉̀̕b"#),
+        (r#"à֮𐽊̕b"#, r#"à֮𐽊̕b"#, r#"à֮𐽊̕b"#, r#"à֮𐽊̕b"#, r#"à֮𐽊̕b"#),
+        (r#"a֮𐽊̀̕b"#, r#"a֮𐽊̀̕b"#, r#"a֮𐽊̀̕b"#, r#"a֮𐽊̀̕b"#, r#"a֮𐽊̀̕b"#),
+        (r#"a᷺̖𐽋֚b"#, r#"a᷺̖𐽋֚b"#, r#"a᷺̖𐽋֚b"#, r#"a᷺̖𐽋֚b"#, r#"a᷺̖𐽋֚b"#),
+        (r#"a᷺𐽋̖֚b"#, r#"a᷺𐽋̖֚b"#, r#"a᷺𐽋̖֚b"#, r#"a᷺𐽋̖֚b"#, r#"a᷺𐽋̖֚b"#),
+        (r#"à֮𐽌̕b"#, r#"à֮𐽌̕b"#, r#"à֮𐽌̕b"#, r#"à֮𐽌̕b"#, r#"à֮𐽌̕b"#),
+        (r#"a֮𐽌̀̕b"#, r#"a֮𐽌̀̕b"#, r#"a֮𐽌̀̕b"#, r#"a֮𐽌̀̕b"#, r#"a֮𐽌̀̕b"#),
+        (r#"a᷺̖𐽍֚b"#, r#"a᷺̖𐽍֚b"#, r#"a᷺̖𐽍֚b"#, r#"a᷺̖𐽍֚b"#, r#"a᷺̖𐽍֚b"#),
+        (r#"a᷺𐽍̖֚b"#, r#"a᷺𐽍̖֚b"#, r#"a᷺𐽍̖֚b"#, r#"a᷺𐽍̖֚b"#, r#"a᷺𐽍̖֚b"#),
+        (r#"a᷺̖𐽎֚b"#, r#"a᷺̖𐽎֚b"#, r#"a᷺̖𐽎֚b"#, r#"a᷺̖𐽎֚b"#, r#"a᷺̖𐽎֚b"#),
+        (r#"a᷺𐽎̖֚b"#, r#"a᷺𐽎̖֚b"#, r#"a᷺𐽎̖֚b"#, r#"a᷺𐽎̖֚b"#, r#"a᷺𐽎̖֚b"#),
+        (r#"a᷺̖𐽏֚b"#, r#"a᷺̖𐽏֚b"#, r#"a᷺̖𐽏֚b"#, r#"a᷺̖𐽏֚b"#, r#"a᷺̖𐽏֚b"#),
+        (r#"a᷺𐽏̖֚b"#, r#"a᷺𐽏̖֚b"#, r#"a᷺𐽏̖֚b"#, r#"a᷺𐽏̖֚b"#, r#"a᷺𐽏̖֚b"#),
+        (r#"a᷺̖𐽐֚b"#, r#"a᷺̖𐽐֚b"#, r#"a᷺̖𐽐֚b"#, r#"a᷺̖𐽐֚b"#, r#"a᷺̖𐽐֚b"#),
+        (r#"a᷺𐽐̖֚b"#, r#"a᷺𐽐̖֚b"#, r#"a᷺𐽐̖֚b"#, r#"a᷺𐽐̖֚b"#, r#"a᷺𐽐̖֚b"#),
+        (r#"à֮𐾂̕b"#, r#"à֮𐾂̕b"#, r#"à֮𐾂̕b"#, r#"à֮𐾂̕b"#, r#"à֮𐾂̕b"#),
+        (r#"a֮𐾂̀̕b"#, r#"a֮𐾂̀̕b"#, r#"a֮𐾂̀̕b"#, r#"a֮𐾂̀̕b"#, r#"a֮𐾂̀̕b"#),
+        (r#"a᷺̖𐾃֚b"#, r#"a᷺̖𐾃֚b"#, r#"a᷺̖𐾃֚b"#, r#"a᷺̖𐾃֚b"#, r#"a᷺̖𐾃֚b"#),
+        (r#"a᷺𐾃̖֚b"#, r#"a᷺𐾃̖֚b"#, r#"a᷺𐾃̖֚b"#, r#"a᷺𐾃̖֚b"#, r#"a᷺𐾃̖֚b"#),
+        (r#"à֮𐾄̕b"#, r#"à֮𐾄̕b"#, r#"à֮𐾄̕b"#, r#"à֮𐾄̕b"#, r#"à֮𐾄̕b"#),
+        (r#"a֮𐾄̀̕b"#, r#"a֮𐾄̀̕b"#, r#"a֮𐾄̀̕b"#, r#"a֮𐾄̀̕b"#, r#"a֮𐾄̀̕b"#),
+        (r#"a᷺̖𐾅֚b"#, r#"a᷺̖𐾅֚b"#, r#"a᷺̖𐾅֚b"#, r#"a᷺̖𐾅֚b"#, r#"a᷺̖𐾅֚b"#),
+        (r#"a᷺𐾅̖֚b"#, r#"a᷺𐾅̖֚b"#, r#"a᷺𐾅̖֚b"#, r#"a᷺𐾅̖֚b"#, r#"a᷺𐾅̖֚b"#),
+        (r#"a゙्𑁆ְb"#, r#"a゙्𑁆ְb"#, r#"a゙्𑁆ְb"#, r#"a゙्𑁆ְb"#, r#"a゙्𑁆ְb"#),
+        (r#"a゙𑁆्ְb"#, r#"a゙𑁆्ְb"#, r#"a゙𑁆्ְb"#, r#"a゙𑁆्ְb"#, r#"a゙𑁆्ְb"#),
+        (r#"a゙्𑁰ְb"#, r#"a゙्𑁰ְb"#, r#"a゙्𑁰ְb"#, r#"a゙्𑁰ְb"#, r#"a゙्𑁰ְb"#),
+        (r#"a゙𑁰्ְb"#, r#"a゙𑁰्ְb"#, r#"a゙𑁰्ְb"#, r#"a゙𑁰्ְb"#, r#"a゙𑁰्ְb"#),
+        (r#"a゙्𑁿ְb"#, r#"a゙्𑁿ְb"#, r#"a゙्𑁿ְb"#, r#"a゙्𑁿ְb"#, r#"a゙्𑁿ְb"#),
+        (r#"a゙𑁿्ְb"#, r#"a゙𑁿्ְb"#, r#"a゙𑁿्ְb"#, r#"a゙𑁿्ְb"#, r#"a゙𑁿्ְb"#),
+        (r#"a゙्𑂹ְb"#, r#"a゙्𑂹ְb"#, r#"a゙्𑂹ְb"#, r#"a゙्𑂹ְb"#, r#"a゙्𑂹ְb"#),
+        (r#"a゙𑂹्ְb"#, r#"a゙𑂹्ְb"#, r#"a゙𑂹्ְb"#, r#"a゙𑂹्ְb"#, r#"a゙𑂹्ְb"#),
+        (r#"a𖿰़𑂺゙b"#, r#"a𖿰़𑂺゙b"#, r#"a𖿰़𑂺゙b"#, r#"a𖿰़𑂺゙b"#, r#"a𖿰़𑂺゙b"#),
+        (r#"a𖿰𑂺़゙b"#, r#"a𖿰𑂺़゙b"#, r#"a𖿰𑂺़゙b"#, r#"a𖿰𑂺़゙b"#, r#"a𖿰𑂺़゙b"#),
+        (r#"à֮𑄀̕b"#, r#"à֮𑄀̕b"#, r#"à֮𑄀̕b"#, r#"à֮𑄀̕b"#, r#"à֮𑄀̕b"#),
+        (r#"a֮𑄀̀̕b"#, r#"a֮𑄀̀̕b"#, r#"a֮𑄀̀̕b"#, r#"a֮𑄀̀̕b"#, r#"a֮𑄀̀̕b"#),
+        (r#"à֮𑄁̕b"#, r#"à֮𑄁̕b"#, r#"à֮𑄁̕b"#, r#"à֮𑄁̕b"#, r#"à֮𑄁̕b"#),
+        (r#"a֮𑄁̀̕b"#, r#"a֮𑄁̀̕b"#, r#"a֮𑄁̀̕b"#, r#"a֮𑄁̀̕b"#, r#"a֮𑄁̀̕b"#),
+        (r#"à֮𑄂̕b"#, r#"à֮𑄂̕b"#, r#"à֮𑄂̕b"#, r#"à֮𑄂̕b"#, r#"à֮𑄂̕b"#),
+        (r#"a֮𑄂̀̕b"#, r#"a֮𑄂̀̕b"#, r#"a֮𑄂̀̕b"#, r#"a֮𑄂̀̕b"#, r#"a֮𑄂̀̕b"#),
+        (r#"a゙्𑄳ְb"#, r#"a゙्𑄳ְb"#, r#"a゙्𑄳ְb"#, r#"a゙्𑄳ְb"#, r#"a゙्𑄳ְb"#),
+        (r#"a゙𑄳्ְb"#, r#"a゙𑄳्ְb"#, r#"a゙𑄳्ְb"#, r#"a゙𑄳्ְb"#, r#"a゙𑄳्ְb"#),
+        (r#"a゙्𑄴ְb"#, r#"a゙्𑄴ְb"#, r#"a゙्𑄴ְb"#, r#"a゙्𑄴ְb"#, r#"a゙्𑄴ְb"#),
+        (r#"a゙𑄴्ְb"#, r#"a゙𑄴्ְb"#, r#"a゙𑄴्ְb"#, r#"a゙𑄴्ְb"#, r#"a゙𑄴्ְb"#),
+        (r#"a𖿰़𑅳゙b"#, r#"a𖿰़𑅳゙b"#, r#"a𖿰़𑅳゙b"#, r#"a𖿰़𑅳゙b"#, r#"a𖿰़𑅳゙b"#),
+        (r#"a𖿰𑅳़゙b"#, r#"a𖿰𑅳़゙b"#, r#"a𖿰𑅳़゙b"#, r#"a𖿰𑅳़゙b"#, r#"a𖿰𑅳़゙b"#),
+        (r#"a゙्𑇀ְb"#, r#"a゙्𑇀ְb"#, r#"a゙्𑇀ְb"#, r#"a゙्𑇀ְb"#, r#"a゙्𑇀ְb"#),
+        (r#"a゙𑇀्ְb"#, r#"a゙𑇀्ְb"#, r#"a゙𑇀्ְb"#, r#"a゙𑇀्ְb"#, r#"a゙𑇀्ְb"#),
+        (r#"a𖿰़𑇊゙b"#, r#"a𖿰़𑇊゙b"#, r#"a𖿰़𑇊゙b"#, r#"a𖿰़𑇊゙b"#, r#"a𖿰़𑇊゙b"#),
+        (r#"a𖿰𑇊़゙b"#, r#"a𖿰𑇊़゙b"#, r#"a𖿰𑇊़゙b"#, r#"a𖿰𑇊़゙b"#, r#"a𖿰𑇊़゙b"#),
+        (r#"a゙्𑈵ְb"#, r#"a゙्𑈵ְb"#, r#"a゙्𑈵ְb"#, r#"a゙्𑈵ְb"#, r#"a゙्𑈵ְb"#),
+        (r#"a゙𑈵्ְb"#, r#"a゙𑈵्ְb"#, r#"a゙𑈵्ְb"#, r#"a゙𑈵्ְb"#, r#"a゙𑈵्ְb"#),
+        (r#"a𖿰़𑈶゙b"#, r#"a𖿰़𑈶゙b"#, r#"a𖿰़𑈶゙b"#, r#"a𖿰़𑈶゙b"#, r#"a𖿰़𑈶゙b"#),
+        (r#"a𖿰𑈶़゙b"#, r#"a𖿰𑈶़゙b"#, r#"a𖿰𑈶़゙b"#, r#"a𖿰𑈶़゙b"#, r#"a𖿰𑈶़゙b"#),
+        (r#"a𖿰़𑋩゙b"#, r#"a𖿰़𑋩゙b"#, r#"a𖿰़𑋩゙b"#, r#"a𖿰़𑋩゙b"#, r#"a𖿰़𑋩゙b"#),
+        (r#"a𖿰𑋩़゙b"#, r#"a𖿰𑋩़゙b"#, r#"a𖿰𑋩़゙b"#, r#"a𖿰𑋩़゙b"#, r#"a𖿰𑋩़゙b"#),
+        (r#"a゙्𑋪ְb"#, r#"a゙्𑋪ְb"#, r#"a゙्𑋪ְb"#, r#"a゙्𑋪ְb"#, r#"a゙्𑋪ְb"#),
+        (r#"a゙𑋪्ְb"#, r#"a゙𑋪्ְb"#, r#"a゙𑋪्ְb"#, r#"a゙𑋪्ְb"#, r#"a゙𑋪्ְb"#),
+        (r#"a𖿰़𑌻゙b"#, r#"a𖿰़𑌻゙b"#, r#"a𖿰़𑌻゙b"#, r#"a𖿰़𑌻゙b"#, r#"a𖿰़𑌻゙b"#),
+        (r#"a𖿰𑌻़゙b"#, r#"a𖿰𑌻़゙b"#, r#"a𖿰𑌻़゙b"#, r#"a𖿰𑌻़゙b"#, r#"a𖿰𑌻़゙b"#),
+        (r#"a𖿰़𑌼゙b"#, r#"a𖿰़𑌼゙b"#, r#"a𖿰़𑌼゙b"#, r#"a𖿰़𑌼゙b"#, r#"a𖿰़𑌼゙b"#),
+        (r#"a𖿰𑌼़゙b"#, r#"a𖿰𑌼़゙b"#, r#"a𖿰𑌼़゙b"#, r#"a𖿰𑌼़゙b"#, r#"a𖿰𑌼़゙b"#),
+        (r#"a゙्𑍍ְb"#, r#"a゙्𑍍ְb"#, r#"a゙्𑍍ְb"#, r#"a゙्𑍍ְb"#, r#"a゙्𑍍ְb"#),
+        (r#"a゙𑍍्ְb"#, r#"a゙𑍍्ְb"#, r#"a゙𑍍्ְb"#, r#"a゙𑍍्ְb"#, r#"a゙𑍍्ְb"#),
+        (r#"à֮𑍦̕b"#, r#"à֮𑍦̕b"#, r#"à֮𑍦̕b"#, r#"à֮𑍦̕b"#, r#"à֮𑍦̕b"#),
+        (r#"a֮𑍦̀̕b"#, r#"a֮𑍦̀̕b"#, r#"a֮𑍦̀̕b"#, r#"a֮𑍦̀̕b"#, r#"a֮𑍦̀̕b"#),
+        (r#"à֮𑍧̕b"#, r#"à֮𑍧̕b"#, r#"à֮𑍧̕b"#, r#"à֮𑍧̕b"#, r#"à֮𑍧̕b"#),
+        (r#"a֮𑍧̀̕b"#, r#"a֮𑍧̀̕b"#, r#"a֮𑍧̀̕b"#, r#"a֮𑍧̀̕b"#, r#"a֮𑍧̀̕b"#),
+        (r#"à֮𑍨̕b"#, r#"à֮𑍨̕b"#, r#"à֮𑍨̕b"#, r#"à֮𑍨̕b"#, r#"à֮𑍨̕b"#),
+        (r#"a֮𑍨̀̕b"#, r#"a֮𑍨̀̕b"#, r#"a֮𑍨̀̕b"#, r#"a֮𑍨̀̕b"#, r#"a֮𑍨̀̕b"#),
+        (r#"à֮𑍩̕b"#, r#"à֮𑍩̕b"#, r#"à֮𑍩̕b"#, r#"à֮𑍩̕b"#, r#"à֮𑍩̕b"#),
+        (r#"a֮𑍩̀̕b"#, r#"a֮𑍩̀̕b"#, r#"a֮𑍩̀̕b"#, r#"a֮𑍩̀̕b"#, r#"a֮𑍩̀̕b"#),
+        (r#"à֮𑍪̕b"#, r#"à֮𑍪̕b"#, r#"à֮𑍪̕b"#, r#"à֮𑍪̕b"#, r#"à֮𑍪̕b"#),
+        (r#"a֮𑍪̀̕b"#, r#"a֮𑍪̀̕b"#, r#"a֮𑍪̀̕b"#, r#"a֮𑍪̀̕b"#, r#"a֮𑍪̀̕b"#),
+        (r#"à֮𑍫̕b"#, r#"à֮𑍫̕b"#, r#"à֮𑍫̕b"#, r#"à֮𑍫̕b"#, r#"à֮𑍫̕b"#),
+        (r#"a֮𑍫̀̕b"#, r#"a֮𑍫̀̕b"#, r#"a֮𑍫̀̕b"#, r#"a֮𑍫̀̕b"#, r#"a֮𑍫̀̕b"#),
+        (r#"à֮𑍬̕b"#, r#"à֮𑍬̕b"#, r#"à֮𑍬̕b"#, r#"à֮𑍬̕b"#, r#"à֮𑍬̕b"#),
+        (r#"a֮𑍬̀̕b"#, r#"a֮𑍬̀̕b"#, r#"a֮𑍬̀̕b"#, r#"a֮𑍬̀̕b"#, r#"a֮𑍬̀̕b"#),
+        (r#"à֮𑍰̕b"#, r#"à֮𑍰̕b"#, r#"à֮𑍰̕b"#, r#"à֮𑍰̕b"#, r#"à֮𑍰̕b"#),
+        (r#"a֮𑍰̀̕b"#, r#"a֮𑍰̀̕b"#, r#"a֮𑍰̀̕b"#, r#"a֮𑍰̀̕b"#, r#"a֮𑍰̀̕b"#),
+        (r#"à֮𑍱̕b"#, r#"à֮𑍱̕b"#, r#"à֮𑍱̕b"#, r#"à֮𑍱̕b"#, r#"à֮𑍱̕b"#),
+        (r#"a֮𑍱̀̕b"#, r#"a֮𑍱̀̕b"#, r#"a֮𑍱̀̕b"#, r#"a֮𑍱̀̕b"#, r#"a֮𑍱̀̕b"#),
+        (r#"à֮𑍲̕b"#, r#"à֮𑍲̕b"#, r#"à֮𑍲̕b"#, r#"à֮𑍲̕b"#, r#"à֮𑍲̕b"#),
+        (r#"a֮𑍲̀̕b"#, r#"a֮𑍲̀̕b"#, r#"a֮𑍲̀̕b"#, r#"a֮𑍲̀̕b"#, r#"a֮𑍲̀̕b"#),
+        (r#"à֮𑍳̕b"#, r#"à֮𑍳̕b"#, r#"à֮𑍳̕b"#, r#"à֮𑍳̕b"#, r#"à֮𑍳̕b"#),
+        (r#"a֮𑍳̀̕b"#, r#"a֮𑍳̀̕b"#, r#"a֮𑍳̀̕b"#, r#"a֮𑍳̀̕b"#, r#"a֮𑍳̀̕b"#),
+        (r#"à֮𑍴̕b"#, r#"à֮𑍴̕b"#, r#"à֮𑍴̕b"#, r#"à֮𑍴̕b"#, r#"à֮𑍴̕b"#),
+        (r#"a֮𑍴̀̕b"#, r#"a֮𑍴̀̕b"#, r#"a֮𑍴̀̕b"#, r#"a֮𑍴̀̕b"#, r#"a֮𑍴̀̕b"#),
+        (r#"a゙्𑑂ְb"#, r#"a゙्𑑂ְb"#, r#"a゙्𑑂ְb"#, r#"a゙्𑑂ְb"#, r#"a゙्𑑂ְb"#),
+        (r#"a゙𑑂्ְb"#, r#"a゙𑑂्ְb"#, r#"a゙𑑂्ְb"#, r#"a゙𑑂्ְb"#, r#"a゙𑑂्ְb"#),
+        (r#"a𖿰़𑑆゙b"#, r#"a𖿰़𑑆゙b"#, r#"a𖿰़𑑆゙b"#, r#"a𖿰़𑑆゙b"#, r#"a𖿰़𑑆゙b"#),
+        (r#"a𖿰𑑆़゙b"#, r#"a𖿰𑑆़゙b"#, r#"a𖿰𑑆़゙b"#, r#"a𖿰𑑆़゙b"#, r#"a𖿰𑑆़゙b"#),
+        (r#"à֮𑑞̕b"#, r#"à֮𑑞̕b"#, r#"à֮𑑞̕b"#, r#"à֮𑑞̕b"#, r#"à֮𑑞̕b"#),
+        (r#"a֮𑑞̀̕b"#, r#"a֮𑑞̀̕b"#, r#"a֮𑑞̀̕b"#, r#"a֮𑑞̀̕b"#, r#"a֮𑑞̀̕b"#),
+        (r#"a゙्𑓂ְb"#, r#"a゙्𑓂ְb"#, r#"a゙्𑓂ְb"#, r#"a゙्𑓂ְb"#, r#"a゙्𑓂ְb"#),
+        (r#"a゙𑓂्ְb"#, r#"a゙𑓂्ְb"#, r#"a゙𑓂्ְb"#, r#"a゙𑓂्ְb"#, r#"a゙𑓂्ְb"#),
+        (r#"a𖿰़𑓃゙b"#, r#"a𖿰़𑓃゙b"#, r#"a𖿰़𑓃゙b"#, r#"a𖿰़𑓃゙b"#, r#"a𖿰़𑓃゙b"#),
+        (r#"a𖿰𑓃़゙b"#, r#"a𖿰𑓃़゙b"#, r#"a𖿰𑓃़゙b"#, r#"a𖿰𑓃़゙b"#, r#"a𖿰𑓃़゙b"#),
+        (r#"a゙्𑖿ְb"#, r#"a゙्𑖿ְb"#, r#"a゙्𑖿ְb"#, r#"a゙्𑖿ְb"#, r#"a゙्𑖿ְb"#),
+        (r#"a゙𑖿्ְb"#, r#"a゙𑖿्ְb"#, r#"a゙𑖿्ְb"#, r#"a゙𑖿्ְb"#, r#"a゙𑖿्ְb"#),
+        (r#"a𖿰़𑗀゙b"#, r#"a𖿰़𑗀゙b"#, r#"a𖿰़𑗀゙b"#, r#"a𖿰़𑗀゙b"#, r#"a𖿰़𑗀゙b"#),
+        (r#"a𖿰𑗀़゙b"#, r#"a𖿰𑗀़゙b"#, r#"a𖿰𑗀़゙b"#, r#"a𖿰𑗀़゙b"#, r#"a𖿰𑗀़゙b"#),
+        (r#"a゙्𑘿ְb"#, r#"a゙्𑘿ְb"#, r#"a゙्𑘿ְb"#, r#"a゙्𑘿ְb"#, r#"a゙्𑘿ְb"#),
+        (r#"a゙𑘿्ְb"#, r#"a゙𑘿्ְb"#, r#"a゙𑘿्ְb"#, r#"a゙𑘿्ְb"#, r#"a゙𑘿्ְb"#),
+        (r#"a゙्𑚶ְb"#, r#"a゙्𑚶ְb"#, r#"a゙्𑚶ְb"#, r#"a゙्𑚶ְb"#, r#"a゙्𑚶ְb"#),
+        (r#"a゙𑚶्ְb"#, r#"a゙𑚶्ְb"#, r#"a゙𑚶्ְb"#, r#"a゙𑚶्ְb"#, r#"a゙𑚶्ְb"#),
+        (r#"a𖿰़𑚷゙b"#, r#"a𖿰़𑚷゙b"#, r#"a𖿰़𑚷゙b"#, r#"a𖿰़𑚷゙b"#, r#"a𖿰़𑚷゙b"#),
+        (r#"a𖿰𑚷़゙b"#, r#"a𖿰𑚷़゙b"#, r#"a𖿰𑚷़゙b"#, r#"a𖿰𑚷़゙b"#, r#"a𖿰𑚷़゙b"#),
+        (r#"a゙्𑜫ְb"#, r#"a゙्𑜫ְb"#, r#"a゙्𑜫ְb"#, r#"a゙्𑜫ְb"#, r#"a゙्𑜫ְb"#),
+        (r#"a゙𑜫्ְb"#, r#"a゙𑜫्ְb"#, r#"a゙𑜫्ְb"#, r#"a゙𑜫्ְb"#, r#"a゙𑜫्ְb"#),
+        (r#"a゙्𑠹ְb"#, r#"a゙्𑠹ְb"#, r#"a゙्𑠹ְb"#, r#"a゙्𑠹ְb"#, r#"a゙्𑠹ְb"#),
+        (r#"a゙𑠹्ְb"#, r#"a゙𑠹्ְb"#, r#"a゙𑠹्ְb"#, r#"a゙𑠹्ְb"#, r#"a゙𑠹्ְb"#),
+        (r#"a𖿰़𑠺゙b"#, r#"a𖿰़𑠺゙b"#, r#"a𖿰़𑠺゙b"#, r#"a𖿰़𑠺゙b"#, r#"a𖿰़𑠺゙b"#),
+        (r#"a𖿰𑠺़゙b"#, r#"a𖿰𑠺़゙b"#, r#"a𖿰𑠺़゙b"#, r#"a𖿰𑠺़゙b"#, r#"a𖿰𑠺़゙b"#),
+        (r#"a゙्𑤽ְb"#, r#"a゙्𑤽ְb"#, r#"a゙्𑤽ְb"#, r#"a゙्𑤽ְb"#, r#"a゙्𑤽ְb"#),
+        (r#"a゙𑤽्ְb"#, r#"a゙𑤽्ְb"#, r#"a゙𑤽्ְb"#, r#"a゙𑤽्ְb"#, r#"a゙𑤽्ְb"#),
+        (r#"a゙्𑤾ְb"#, r#"a゙्𑤾ְb"#, r#"a゙्𑤾ְb"#, r#"a゙्𑤾ְb"#, r#"a゙्𑤾ְb"#),
+        (r#"a゙𑤾्ְb"#, r#"a゙𑤾्ְb"#, r#"a゙𑤾्ְb"#, r#"a゙𑤾्ְb"#, r#"a゙𑤾्ְb"#),
+        (r#"a𖿰़𑥃゙b"#, r#"a𖿰़𑥃゙b"#, r#"a𖿰़𑥃゙b"#, r#"a𖿰़𑥃゙b"#, r#"a𖿰़𑥃゙b"#),
+        (r#"a𖿰𑥃़゙b"#, r#"a𖿰𑥃़゙b"#, r#"a𖿰𑥃़゙b"#, r#"a𖿰𑥃़゙b"#, r#"a𖿰𑥃़゙b"#),
+        (r#"a゙्𑧠ְb"#, r#"a゙्𑧠ְb"#, r#"a゙्𑧠ְb"#, r#"a゙्𑧠ְb"#, r#"a゙्𑧠ְb"#),
+        (r#"a゙𑧠्ְb"#, r#"a゙𑧠्ְb"#, r#"a゙𑧠्ְb"#, r#"a゙𑧠्ְb"#, r#"a゙𑧠्ְb"#),
+        (r#"a゙्𑨴ְb"#, r#"a゙्𑨴ְb"#, r#"a゙्𑨴ְb"#, r#"a゙्𑨴ְb"#, r#"a゙्𑨴ְb"#),
+        (r#"a゙𑨴्ְb"#, r#"a゙𑨴्ְb"#, r#"a゙𑨴्ְb"#, r#"a゙𑨴्ְb"#, r#"a゙𑨴्ְb"#),
+        (r#"a゙्𑩇ְb"#, r#"a゙्𑩇ְb"#, r#"a゙्𑩇ְb"#, r#"a゙्𑩇ְb"#, r#"a゙्𑩇ְb"#),
+        (r#"a゙𑩇्ְb"#, r#"a゙𑩇्ְb"#, r#"a゙𑩇्ְb"#, r#"a゙𑩇्ְb"#, r#"a゙𑩇्ְb"#),
+        (r#"a゙्𑪙ְb"#, r#"a゙्𑪙ְb"#, r#"a゙्𑪙ְb"#, r#"a゙्𑪙ְb"#, r#"a゙्𑪙ְb"#),
+        (r#"a゙𑪙्ְb"#, r#"a゙𑪙्ְb"#, r#"a゙𑪙्ְb"#, r#"a゙𑪙्ְb"#, r#"a゙𑪙्ְb"#),
+        (r#"a゙्𑰿ְb"#, r#"a゙्𑰿ְb"#, r#"a゙्𑰿ְb"#, r#"a゙्𑰿ְb"#, r#"a゙्𑰿ְb"#),
+        (r#"a゙𑰿्ְb"#, r#"a゙𑰿्ְb"#, r#"a゙𑰿्ְb"#, r#"a゙𑰿्ְb"#, r#"a゙𑰿्ְb"#),
+        (r#"a𖿰़𑵂゙b"#, r#"a𖿰़𑵂゙b"#, r#"a𖿰़𑵂゙b"#, r#"a𖿰़𑵂゙b"#, r#"a𖿰़𑵂゙b"#),
+        (r#"a𖿰𑵂़゙b"#, r#"a𖿰𑵂़゙b"#, r#"a𖿰𑵂़゙b"#, r#"a𖿰𑵂़゙b"#, r#"a𖿰𑵂़゙b"#),
+        (r#"a゙्𑵄ְb"#, r#"a゙्𑵄ְb"#, r#"a゙्𑵄ְb"#, r#"a゙्𑵄ְb"#, r#"a゙्𑵄ְb"#),
+        (r#"a゙𑵄्ְb"#, r#"a゙𑵄्ְb"#, r#"a゙𑵄्ְb"#, r#"a゙𑵄्ְb"#, r#"a゙𑵄्ְb"#),
+        (r#"a゙्𑵅ְb"#, r#"a゙्𑵅ְb"#, r#"a゙्𑵅ְb"#, r#"a゙्𑵅ְb"#, r#"a゙्𑵅ְb"#),
+        (r#"a゙𑵅्ְb"#, r#"a゙𑵅्ְb"#, r#"a゙𑵅्ְb"#, r#"a゙𑵅्ְb"#, r#"a゙𑵅्ְb"#),
+        (r#"a゙्𑶗ְb"#, r#"a゙्𑶗ְb"#, r#"a゙्𑶗ְb"#, r#"a゙्𑶗ְb"#, r#"a゙्𑶗ְb"#),
+        (r#"a゙𑶗्ְb"#, r#"a゙𑶗्ְb"#, r#"a゙𑶗्ְb"#, r#"a゙𑶗्ְb"#, r#"a゙𑶗्ְb"#),
+        (r#"a゙्𑽁ְb"#, r#"a゙्𑽁ְb"#, r#"a゙्𑽁ְb"#, r#"a゙्𑽁ְb"#, r#"a゙्𑽁ְb"#),
+        (r#"a゙𑽁्ְb"#, r#"a゙𑽁्ְb"#, r#"a゙𑽁्ְb"#, r#"a゙𑽁्ְb"#, r#"a゙𑽁्ְb"#),
+        (r#"a゙्𑽂ְb"#, r#"a゙्𑽂ְb"#, r#"a゙्𑽂ְb"#, r#"a゙्𑽂ְb"#, r#"a゙्𑽂ְb"#),
+        (r#"a゙𑽂्ְb"#, r#"a゙𑽂्ְb"#, r#"a゙𑽂्ְb"#, r#"a゙𑽂्ְb"#, r#"a゙𑽂्ְb"#),
+        (r#"a̴𖫰𖿰b"#, r#"a̴𖫰𖿰b"#, r#"a̴𖫰𖿰b"#, r#"a̴𖫰𖿰b"#, r#"a̴𖫰𖿰b"#),
+        (r#"a𖫰̴𖿰b"#, r#"a𖫰̴𖿰b"#, r#"a𖫰̴𖿰b"#, r#"a𖫰̴𖿰b"#, r#"a𖫰̴𖿰b"#),
+        (r#"a̴𖫱𖿰b"#, r#"a̴𖫱𖿰b"#, r#"a̴𖫱𖿰b"#, r#"a̴𖫱𖿰b"#, r#"a̴𖫱𖿰b"#),
+        (r#"a𖫱̴𖿰b"#, r#"a𖫱̴𖿰b"#, r#"a𖫱̴𖿰b"#, r#"a𖫱̴𖿰b"#, r#"a𖫱̴𖿰b"#),
+        (r#"a̴𖫲𖿰b"#, r#"a̴𖫲𖿰b"#, r#"a̴𖫲𖿰b"#, r#"a̴𖫲𖿰b"#, r#"a̴𖫲𖿰b"#),
+        (r#"a𖫲̴𖿰b"#, r#"a𖫲̴𖿰b"#, r#"a𖫲̴𖿰b"#, r#"a𖫲̴𖿰b"#, r#"a𖫲̴𖿰b"#),
+        (r#"a̴𖫳𖿰b"#, r#"a̴𖫳𖿰b"#, r#"a̴𖫳𖿰b"#, r#"a̴𖫳𖿰b"#, r#"a̴𖫳𖿰b"#),
+        (r#"a𖫳̴𖿰b"#, r#"a𖫳̴𖿰b"#, r#"a𖫳̴𖿰b"#, r#"a𖫳̴𖿰b"#, r#"a𖫳̴𖿰b"#),
+        (r#"a̴𖫴𖿰b"#, r#"a̴𖫴𖿰b"#, r#"a̴𖫴𖿰b"#, r#"a̴𖫴𖿰b"#, r#"a̴𖫴𖿰b"#),
+        (r#"a𖫴̴𖿰b"#, r#"a𖫴̴𖿰b"#, r#"a𖫴̴𖿰b"#, r#"a𖫴̴𖿰b"#, r#"a𖫴̴𖿰b"#),
+        (r#"à֮𖬰̕b"#, r#"à֮𖬰̕b"#, r#"à֮𖬰̕b"#, r#"à֮𖬰̕b"#, r#"à֮𖬰̕b"#),
+        (r#"a֮𖬰̀̕b"#, r#"a֮𖬰̀̕b"#, r#"a֮𖬰̀̕b"#, r#"a֮𖬰̀̕b"#, r#"a֮𖬰̀̕b"#),
+        (r#"à֮𖬱̕b"#, r#"à֮𖬱̕b"#, r#"à֮𖬱̕b"#, r#"à֮𖬱̕b"#, r#"à֮𖬱̕b"#),
+        (r#"a֮𖬱̀̕b"#, r#"a֮𖬱̀̕b"#, r#"a֮𖬱̀̕b"#, r#"a֮𖬱̀̕b"#, r#"a֮𖬱̀̕b"#),
+        (r#"à֮𖬲̕b"#, r#"à֮𖬲̕b"#, r#"à֮𖬲̕b"#, r#"à֮𖬲̕b"#, r#"à֮𖬲̕b"#),
+        (r#"a֮𖬲̀̕b"#, r#"a֮𖬲̀̕b"#, r#"a֮𖬲̀̕b"#, r#"a֮𖬲̀̕b"#, r#"a֮𖬲̀̕b"#),
+        (r#"à֮𖬳̕b"#, r#"à֮𖬳̕b"#, r#"à֮𖬳̕b"#, r#"à֮𖬳̕b"#, r#"à֮𖬳̕b"#),
+        (r#"a֮𖬳̀̕b"#, r#"a֮𖬳̀̕b"#, r#"a֮𖬳̀̕b"#, r#"a֮𖬳̀̕b"#, r#"a֮𖬳̀̕b"#),
+        (r#"à֮𖬴̕b"#, r#"à֮𖬴̕b"#, r#"à֮𖬴̕b"#, r#"à֮𖬴̕b"#, r#"à֮𖬴̕b"#),
+        (r#"a֮𖬴̀̕b"#, r#"a֮𖬴̀̕b"#, r#"a֮𖬴̀̕b"#, r#"a֮𖬴̀̕b"#, r#"a֮𖬴̀̕b"#),
+        (r#"à֮𖬵̕b"#, r#"à֮𖬵̕b"#, r#"à֮𖬵̕b"#, r#"à֮𖬵̕b"#, r#"à֮𖬵̕b"#),
+        (r#"a֮𖬵̀̕b"#, r#"a֮𖬵̀̕b"#, r#"a֮𖬵̀̕b"#, r#"a֮𖬵̀̕b"#, r#"a֮𖬵̀̕b"#),
+        (r#"à֮𖬶̕b"#, r#"à֮𖬶̕b"#, r#"à֮𖬶̕b"#, r#"à֮𖬶̕b"#, r#"à֮𖬶̕b"#),
+        (r#"a֮𖬶̀̕b"#, r#"a֮𖬶̀̕b"#, r#"a֮𖬶̀̕b"#, r#"a֮𖬶̀̕b"#, r#"a֮𖬶̀̕b"#),
+        (r#"a̴𖿰𖿰़b"#, r#"a̴𖿰𖿰़b"#, r#"a̴𖿰𖿰़b"#, r#"a̴𖿰𖿰़b"#, r#"a̴𖿰𖿰़b"#),
+        (r#"a̴𖿰𖿰़b"#, r#"a̴𖿰𖿰़b"#, r#"a̴𖿰𖿰़b"#, r#"a̴𖿰𖿰़b"#, r#"a̴𖿰𖿰़b"#),
+        (r#"a̴𖿰𖿱़b"#, r#"a̴𖿰𖿱़b"#, r#"a̴𖿰𖿱़b"#, r#"a̴𖿰𖿱़b"#, r#"a̴𖿰𖿱़b"#),
+        (r#"a̴𖿱𖿰़b"#, r#"a̴𖿱𖿰़b"#, r#"a̴𖿱𖿰़b"#, r#"a̴𖿱𖿰़b"#, r#"a̴𖿱𖿰़b"#),
+        (r#"a̴𛲞𖿰b"#, r#"a̴𛲞𖿰b"#, r#"a̴𛲞𖿰b"#, r#"a̴𛲞𖿰b"#, r#"a̴𛲞𖿰b"#),
+        (r#"a𛲞̴𖿰b"#, r#"a𛲞̴𖿰b"#, r#"a𛲞̴𖿰b"#, r#"a𛲞̴𖿰b"#, r#"a𛲞̴𖿰b"#),
+        (r#"a᷎̛𝅥᷺b"#, r#"a᷎̛𝅥᷺b"#, r#"a᷎̛𝅥᷺b"#, r#"a᷎̛𝅥᷺b"#, r#"a᷎̛𝅥᷺b"#),
+        (r#"a᷎𝅥̛᷺b"#, r#"a᷎𝅥̛᷺b"#, r#"a᷎𝅥̛᷺b"#, r#"a᷎𝅥̛᷺b"#, r#"a᷎𝅥̛᷺b"#),
+        (r#"a᷎̛𝅦᷺b"#, r#"a᷎̛𝅦᷺b"#, r#"a᷎̛𝅦᷺b"#, r#"a᷎̛𝅦᷺b"#, r#"a᷎̛𝅦᷺b"#),
+        (r#"a᷎𝅦̛᷺b"#, r#"a᷎𝅦̛᷺b"#, r#"a᷎𝅦̛᷺b"#, r#"a᷎𝅦̛᷺b"#, r#"a᷎𝅦̛᷺b"#),
+        (r#"a̴𝅧𖿰b"#, r#"a̴𝅧𖿰b"#, r#"a̴𝅧𖿰b"#, r#"a̴𝅧𖿰b"#, r#"a̴𝅧𖿰b"#),
+        (r#"a𝅧̴𖿰b"#, r#"a𝅧̴𖿰b"#, r#"a𝅧̴𖿰b"#, r#"a𝅧̴𖿰b"#, r#"a𝅧̴𖿰b"#),
+        (r#"a̴𝅨𖿰b"#, r#"a̴𝅨𖿰b"#, r#"a̴𝅨𖿰b"#, r#"a̴𝅨𖿰b"#, r#"a̴𝅨𖿰b"#),
+        (r#"a𝅨̴𖿰b"#, r#"a𝅨̴𖿰b"#, r#"a𝅨̴𖿰b"#, r#"a𝅨̴𖿰b"#, r#"a𝅨̴𖿰b"#),
+        (r#"a̴𝅩𖿰b"#, r#"a̴𝅩𖿰b"#, r#"a̴𝅩𖿰b"#, r#"a̴𝅩𖿰b"#, r#"a̴𝅩𖿰b"#),
+        (r#"a𝅩̴𖿰b"#, r#"a𝅩̴𖿰b"#, r#"a𝅩̴𖿰b"#, r#"a𝅩̴𖿰b"#, r#"a𝅩̴𖿰b"#),
+        (r#"a〮𝅭𝅭֮b"#, r#"a〮𝅭𝅭֮b"#, r#"a〮𝅭𝅭֮b"#, r#"a〮𝅭𝅭֮b"#, r#"a〮𝅭𝅭֮b"#),
+        (r#"a〮𝅭𝅭֮b"#, r#"a〮𝅭𝅭֮b"#, r#"a〮𝅭𝅭֮b"#, r#"a〮𝅭𝅭֮b"#, r#"a〮𝅭𝅭֮b"#),
+        (r#"a᷎̛𝅮᷺b"#, r#"a᷎̛𝅮᷺b"#, r#"a᷎̛𝅮᷺b"#, r#"a᷎̛𝅮᷺b"#, r#"a᷎̛𝅮᷺b"#),
+        (r#"a᷎𝅮̛᷺b"#, r#"a᷎𝅮̛᷺b"#, r#"a᷎𝅮̛᷺b"#, r#"a᷎𝅮̛᷺b"#, r#"a᷎𝅮̛᷺b"#),
+        (r#"a᷎̛𝅯᷺b"#, r#"a᷎̛𝅯᷺b"#, r#"a᷎̛𝅯᷺b"#, r#"a᷎̛𝅯᷺b"#, r#"a᷎̛𝅯᷺b"#),
+        (r#"a᷎𝅯̛᷺b"#, r#"a᷎𝅯̛᷺b"#, r#"a᷎𝅯̛᷺b"#, r#"a᷎𝅯̛᷺b"#, r#"a᷎𝅯̛᷺b"#),
+        (r#"a᷎̛𝅰᷺b"#, r#"a᷎̛𝅰᷺b"#, r#"a᷎̛𝅰᷺b"#, r#"a᷎̛𝅰᷺b"#, r#"a᷎̛𝅰᷺b"#),
+        (r#"a᷎𝅰̛᷺b"#, r#"a᷎𝅰̛᷺b"#, r#"a᷎𝅰̛᷺b"#, r#"a᷎𝅰̛᷺b"#, r#"a᷎𝅰̛᷺b"#),
+        (r#"a᷎̛𝅱᷺b"#, r#"a᷎̛𝅱᷺b"#, r#"a᷎̛𝅱᷺b"#, r#"a᷎̛𝅱᷺b"#, r#"a᷎̛𝅱᷺b"#),
+        (r#"a᷎𝅱̛᷺b"#, r#"a᷎𝅱̛᷺b"#, r#"a᷎𝅱̛᷺b"#, r#"a᷎𝅱̛᷺b"#, r#"a᷎𝅱̛᷺b"#),
+        (r#"a᷎̛𝅲᷺b"#, r#"a᷎̛𝅲᷺b"#, r#"a᷎̛𝅲᷺b"#, r#"a᷎̛𝅲᷺b"#, r#"a᷎̛𝅲᷺b"#),
+        (r#"a᷎𝅲̛᷺b"#, r#"a᷎𝅲̛᷺b"#, r#"a᷎𝅲̛᷺b"#, r#"a᷎𝅲̛᷺b"#, r#"a᷎𝅲̛᷺b"#),
+        (r#"a᷺̖𝅻֚b"#, r#"a᷺̖𝅻֚b"#, r#"a᷺̖𝅻֚b"#, r#"a᷺̖𝅻֚b"#, r#"a᷺̖𝅻֚b"#),
+        (r#"a᷺𝅻̖֚b"#, r#"a᷺𝅻̖֚b"#, r#"a᷺𝅻̖֚b"#, r#"a᷺𝅻̖֚b"#, r#"a᷺𝅻̖֚b"#),
+        (r#"a᷺̖𝅼֚b"#, r#"a᷺̖𝅼֚b"#, r#"a᷺̖𝅼֚b"#, r#"a᷺̖𝅼֚b"#, r#"a᷺̖𝅼֚b"#),
+        (r#"a᷺𝅼̖֚b"#, r#"a᷺𝅼̖֚b"#, r#"a᷺𝅼̖֚b"#, r#"a᷺𝅼̖֚b"#, r#"a᷺𝅼̖֚b"#),
+        (r#"a᷺̖𝅽֚b"#, r#"a᷺̖𝅽֚b"#, r#"a᷺̖𝅽֚b"#, r#"a᷺̖𝅽֚b"#, r#"a᷺̖𝅽֚b"#),
+        (r#"a᷺𝅽̖֚b"#, r#"a᷺𝅽̖֚b"#, r#"a᷺𝅽̖֚b"#, r#"a᷺𝅽̖֚b"#, r#"a᷺𝅽̖֚b"#),
+        (r#"a᷺̖𝅾֚b"#, r#"a᷺̖𝅾֚b"#, r#"a᷺̖𝅾֚b"#, r#"a᷺̖𝅾֚b"#, r#"a᷺̖𝅾֚b"#),
+        (r#"a᷺𝅾̖֚b"#, r#"a᷺𝅾̖֚b"#, r#"a᷺𝅾̖֚b"#, r#"a᷺𝅾̖֚b"#, r#"a᷺𝅾̖֚b"#),
+        (r#"a᷺̖𝅿֚b"#, r#"a᷺̖𝅿֚b"#, r#"a᷺̖𝅿֚b"#, r#"a᷺̖𝅿֚b"#, r#"a᷺̖𝅿֚b"#),
+        (r#"a᷺𝅿̖֚b"#, r#"a᷺𝅿̖֚b"#, r#"a᷺𝅿̖֚b"#, r#"a᷺𝅿̖֚b"#, r#"a᷺𝅿̖֚b"#),
+        (r#"a᷺̖𝆀֚b"#, r#"a᷺̖𝆀֚b"#, r#"a᷺̖𝆀֚b"#, r#"a᷺̖𝆀֚b"#, r#"a᷺̖𝆀֚b"#),
+        (r#"a᷺𝆀̖֚b"#, r#"a᷺𝆀̖֚b"#, r#"a᷺𝆀̖֚b"#, r#"a᷺𝆀̖֚b"#, r#"a᷺𝆀̖֚b"#),
+        (r#"a᷺̖𝆁֚b"#, r#"a᷺̖𝆁֚b"#, r#"a᷺̖𝆁֚b"#, r#"a᷺̖𝆁֚b"#, r#"a᷺̖𝆁֚b"#),
+        (r#"a᷺𝆁̖֚b"#, r#"a᷺𝆁̖֚b"#, r#"a᷺𝆁̖֚b"#, r#"a᷺𝆁̖֚b"#, r#"a᷺𝆁̖֚b"#),
+        (r#"a᷺̖𝆂֚b"#, r#"a᷺̖𝆂֚b"#, r#"a᷺̖𝆂֚b"#, r#"a᷺̖𝆂֚b"#, r#"a᷺̖𝆂֚b"#),
+        (r#"a᷺𝆂̖֚b"#, r#"a᷺𝆂̖֚b"#, r#"a᷺𝆂̖֚b"#, r#"a᷺𝆂̖֚b"#, r#"a᷺𝆂̖֚b"#),
+        (r#"à֮𝆅̕b"#, r#"à֮𝆅̕b"#, r#"à֮𝆅̕b"#, r#"à֮𝆅̕b"#, r#"à֮𝆅̕b"#),
+        (r#"a֮𝆅̀̕b"#, r#"a֮𝆅̀̕b"#, r#"a֮𝆅̀̕b"#, r#"a֮𝆅̀̕b"#, r#"a֮𝆅̀̕b"#),
+        (r#"à֮𝆆̕b"#, r#"à֮𝆆̕b"#, r#"à֮𝆆̕b"#, r#"à֮𝆆̕b"#, r#"à֮𝆆̕b"#),
+        (r#"a֮𝆆̀̕b"#, r#"a֮𝆆̀̕b"#, r#"a֮𝆆̀̕b"#, r#"a֮𝆆̀̕b"#, r#"a֮𝆆̀̕b"#),
+        (r#"à֮𝆇̕b"#, r#"à֮𝆇̕b"#, r#"à֮𝆇̕b"#, r#"à֮𝆇̕b"#, r#"à֮𝆇̕b"#),
+        (r#"a֮𝆇̀̕b"#, r#"a֮𝆇̀̕b"#, r#"a֮𝆇̀̕b"#, r#"a֮𝆇̀̕b"#, r#"a֮𝆇̀̕b"#),
+        (r#"à֮𝆈̕b"#, r#"à֮𝆈̕b"#, r#"à֮𝆈̕b"#, r#"à֮𝆈̕b"#, r#"à֮𝆈̕b"#),
+        (r#"a֮𝆈̀̕b"#, r#"a֮𝆈̀̕b"#, r#"a֮𝆈̀̕b"#, r#"a֮𝆈̀̕b"#, r#"a֮𝆈̀̕b"#),
+        (r#"à֮𝆉̕b"#, r#"à֮𝆉̕b"#, r#"à֮𝆉̕b"#, r#"à֮𝆉̕b"#, r#"à֮𝆉̕b"#),
+        (r#"a֮𝆉̀̕b"#, r#"a֮𝆉̀̕b"#, r#"a֮𝆉̀̕b"#, r#"a֮𝆉̀̕b"#, r#"a֮𝆉̀̕b"#),
+        (r#"a᷺̖𝆊֚b"#, r#"a᷺̖𝆊֚b"#, r#"a᷺̖𝆊֚b"#, r#"a᷺̖𝆊֚b"#, r#"a᷺̖𝆊֚b"#),
+        (r#"a᷺𝆊̖֚b"#, r#"a᷺𝆊̖֚b"#, r#"a᷺𝆊̖֚b"#, r#"a᷺𝆊̖֚b"#, r#"a᷺𝆊̖֚b"#),
+        (r#"a᷺̖𝆋֚b"#, r#"a᷺̖𝆋֚b"#, r#"a᷺̖𝆋֚b"#, r#"a᷺̖𝆋֚b"#, r#"a᷺̖𝆋֚b"#),
+        (r#"a᷺𝆋̖֚b"#, r#"a᷺𝆋̖֚b"#, r#"a᷺𝆋̖֚b"#, r#"a᷺𝆋̖֚b"#, r#"a᷺𝆋̖֚b"#),
+        (r#"à֮𝆪̕b"#, r#"à֮𝆪̕b"#, r#"à֮𝆪̕b"#, r#"à֮𝆪̕b"#, r#"à֮𝆪̕b"#),
+        (r#"a֮𝆪̀̕b"#, r#"a֮𝆪̀̕b"#, r#"a֮𝆪̀̕b"#, r#"a֮𝆪̀̕b"#, r#"a֮𝆪̀̕b"#),
+        (r#"à֮𝆫̕b"#, r#"à֮𝆫̕b"#, r#"à֮𝆫̕b"#, r#"à֮𝆫̕b"#, r#"à֮𝆫̕b"#),
+        (r#"a֮𝆫̀̕b"#, r#"a֮𝆫̀̕b"#, r#"a֮𝆫̀̕b"#, r#"a֮𝆫̀̕b"#, r#"a֮𝆫̀̕b"#),
+        (r#"à֮𝆬̕b"#, r#"à֮𝆬̕b"#, r#"à֮𝆬̕b"#, r#"à֮𝆬̕b"#, r#"à֮𝆬̕b"#),
+        (r#"a֮𝆬̀̕b"#, r#"a֮𝆬̀̕b"#, r#"a֮𝆬̀̕b"#, r#"a֮𝆬̀̕b"#, r#"a֮𝆬̀̕b"#),
+        (r#"à֮𝆭̕b"#, r#"à֮𝆭̕b"#, r#"à֮𝆭̕b"#, r#"à֮𝆭̕b"#, r#"à֮𝆭̕b"#),
+        (r#"a֮𝆭̀̕b"#, r#"a֮𝆭̀̕b"#, r#"a֮𝆭̀̕b"#, r#"a֮𝆭̀̕b"#, r#"a֮𝆭̀̕b"#),
+        (r#"à֮𝉂̕b"#, r#"à֮𝉂̕b"#, r#"à֮𝉂̕b"#, r#"à֮𝉂̕b"#, r#"à֮𝉂̕b"#),
+        (r#"a֮𝉂̀̕b"#, r#"a֮𝉂̀̕b"#, r#"a֮𝉂̀̕b"#, r#"a֮𝉂̀̕b"#, r#"a֮𝉂̀̕b"#),
+        (r#"à֮𝉃̕b"#, r#"à֮𝉃̕b"#, r#"à֮𝉃̕b"#, r#"à֮𝉃̕b"#, r#"à֮𝉃̕b"#),
+        (r#"a֮𝉃̀̕b"#, r#"a֮𝉃̀̕b"#, r#"a֮𝉃̀̕b"#, r#"a֮𝉃̀̕b"#, r#"a֮𝉃̀̕b"#),
+        (r#"à֮𝉄̕b"#, r#"à֮𝉄̕b"#, r#"à֮𝉄̕b"#, r#"à֮𝉄̕b"#, r#"à֮𝉄̕b"#),
+        (r#"a֮𝉄̀̕b"#, r#"a֮𝉄̀̕b"#, r#"a֮𝉄̀̕b"#, r#"a֮𝉄̀̕b"#, r#"a֮𝉄̀̕b"#),
+        (r#"à֮𞀀̕b"#, r#"à֮𞀀̕b"#, r#"à֮𞀀̕b"#, r#"à֮𞀀̕b"#, r#"à֮𞀀̕b"#),
+        (r#"a֮𞀀̀̕b"#, r#"a֮𞀀̀̕b"#, r#"a֮𞀀̀̕b"#, r#"a֮𞀀̀̕b"#, r#"a֮𞀀̀̕b"#),
+        (r#"à֮𞀁̕b"#, r#"à֮𞀁̕b"#, r#"à֮𞀁̕b"#, r#"à֮𞀁̕b"#, r#"à֮𞀁̕b"#),
+        (r#"a֮𞀁̀̕b"#, r#"a֮𞀁̀̕b"#, r#"a֮𞀁̀̕b"#, r#"a֮𞀁̀̕b"#, r#"a֮𞀁̀̕b"#),
+        (r#"à֮𞀂̕b"#, r#"à֮𞀂̕b"#, r#"à֮𞀂̕b"#, r#"à֮𞀂̕b"#, r#"à֮𞀂̕b"#),
+        (r#"a֮𞀂̀̕b"#, r#"a֮𞀂̀̕b"#, r#"a֮𞀂̀̕b"#, r#"a֮𞀂̀̕b"#, r#"a֮𞀂̀̕b"#),
+        (r#"à֮𞀃̕b"#, r#"à֮𞀃̕b"#, r#"à֮𞀃̕b"#, r#"à֮𞀃̕b"#, r#"à֮𞀃̕b"#),
+        (r#"a֮𞀃̀̕b"#, r#"a֮𞀃̀̕b"#, r#"a֮𞀃̀̕b"#, r#"a֮𞀃̀̕b"#, r#"a֮𞀃̀̕b"#),
+        (r#"à֮𞀄̕b"#, r#"à֮𞀄̕b"#, r#"à֮𞀄̕b"#, r#"à֮𞀄̕b"#, r#"à֮𞀄̕b"#),
+        (r#"a֮𞀄̀̕b"#, r#"a֮𞀄̀̕b"#, r#"a֮𞀄̀̕b"#, r#"a֮𞀄̀̕b"#, r#"a֮𞀄̀̕b"#),
+        (r#"à֮𞀅̕b"#, r#"à֮𞀅̕b"#, r#"à֮𞀅̕b"#, r#"à֮𞀅̕b"#, r#"à֮𞀅̕b"#),
+        (r#"a֮𞀅̀̕b"#, r#"a֮𞀅̀̕b"#, r#"a֮𞀅̀̕b"#, r#"a֮𞀅̀̕b"#, r#"a֮𞀅̀̕b"#),
+        (r#"à֮𞀆̕b"#, r#"à֮𞀆̕b"#, r#"à֮𞀆̕b"#, r#"à֮𞀆̕b"#, r#"à֮𞀆̕b"#),
+        (r#"a֮𞀆̀̕b"#, r#"a֮𞀆̀̕b"#, r#"a֮𞀆̀̕b"#, r#"a֮𞀆̀̕b"#, r#"a֮𞀆̀̕b"#),
+        (r#"à֮𞀈̕b"#, r#"à֮𞀈̕b"#, r#"à֮𞀈̕b"#, r#"à֮𞀈̕b"#, r#"à֮𞀈̕b"#),
+        (r#"a֮𞀈̀̕b"#, r#"a֮𞀈̀̕b"#, r#"a֮𞀈̀̕b"#, r#"a֮𞀈̀̕b"#, r#"a֮𞀈̀̕b"#),
+        (r#"à֮𞀉̕b"#, r#"à֮𞀉̕b"#, r#"à֮𞀉̕b"#, r#"à֮𞀉̕b"#, r#"à֮𞀉̕b"#),
+        (r#"a֮𞀉̀̕b"#, r#"a֮𞀉̀̕b"#, r#"a֮𞀉̀̕b"#, r#"a֮𞀉̀̕b"#, r#"a֮𞀉̀̕b"#),
+        (r#"à֮𞀊̕b"#, r#"à֮𞀊̕b"#, r#"à֮𞀊̕b"#, r#"à֮𞀊̕b"#, r#"à֮𞀊̕b"#),
+        (r#"a֮𞀊̀̕b"#, r#"a֮𞀊̀̕b"#, r#"a֮𞀊̀̕b"#, r#"a֮𞀊̀̕b"#, r#"a֮𞀊̀̕b"#),
+        (r#"à֮𞀋̕b"#, r#"à֮𞀋̕b"#, r#"à֮𞀋̕b"#, r#"à֮𞀋̕b"#, r#"à֮𞀋̕b"#),
+        (r#"a֮𞀋̀̕b"#, r#"a֮𞀋̀̕b"#, r#"a֮𞀋̀̕b"#, r#"a֮𞀋̀̕b"#, r#"a֮𞀋̀̕b"#),
+        (r#"à֮𞀌̕b"#, r#"à֮𞀌̕b"#, r#"à֮𞀌̕b"#, r#"à֮𞀌̕b"#, r#"à֮𞀌̕b"#),
+        (r#"a֮𞀌̀̕b"#, r#"a֮𞀌̀̕b"#, r#"a֮𞀌̀̕b"#, r#"a֮𞀌̀̕b"#, r#"a֮𞀌̀̕b"#),
+        (r#"à֮𞀍̕b"#, r#"à֮𞀍̕b"#, r#"à֮𞀍̕b"#, r#"à֮𞀍̕b"#, r#"à֮𞀍̕b"#),
+        (r#"a֮𞀍̀̕b"#, r#"a֮𞀍̀̕b"#, r#"a֮𞀍̀̕b"#, r#"a֮𞀍̀̕b"#, r#"a֮𞀍̀̕b"#),
+        (r#"à֮𞀎̕b"#, r#"à֮𞀎̕b"#, r#"à֮𞀎̕b"#, r#"à֮𞀎̕b"#, r#"à֮𞀎̕b"#),
+        (r#"a֮𞀎̀̕b"#, r#"a֮𞀎̀̕b"#, r#"a֮𞀎̀̕b"#, r#"a֮𞀎̀̕b"#, r#"a֮𞀎̀̕b"#),
+        (r#"à֮𞀏̕b"#, r#"à֮𞀏̕b"#, r#"à֮𞀏̕b"#, r#"à֮𞀏̕b"#, r#"à֮𞀏̕b"#),
+        (r#"a֮𞀏̀̕b"#, r#"a֮𞀏̀̕b"#, r#"a֮𞀏̀̕b"#, r#"a֮𞀏̀̕b"#, r#"a֮𞀏̀̕b"#),
+        (r#"à֮𞀐̕b"#, r#"à֮𞀐̕b"#, r#"à֮𞀐̕b"#, r#"à֮𞀐̕b"#, r#"à֮𞀐̕b"#),
+        (r#"a֮𞀐̀̕b"#, r#"a֮𞀐̀̕b"#, r#"a֮𞀐̀̕b"#, r#"a֮𞀐̀̕b"#, r#"a֮𞀐̀̕b"#),
+        (r#"à֮𞀑̕b"#, r#"à֮𞀑̕b"#, r#"à֮𞀑̕b"#, r#"à֮𞀑̕b"#, r#"à֮𞀑̕b"#),
+        (r#"a֮𞀑̀̕b"#, r#"a֮𞀑̀̕b"#, r#"a֮𞀑̀̕b"#, r#"a֮𞀑̀̕b"#, r#"a֮𞀑̀̕b"#),
+        (r#"à֮𞀒̕b"#, r#"à֮𞀒̕b"#, r#"à֮𞀒̕b"#, r#"à֮𞀒̕b"#, r#"à֮𞀒̕b"#),
+        (r#"a֮𞀒̀̕b"#, r#"a֮𞀒̀̕b"#, r#"a֮𞀒̀̕b"#, r#"a֮𞀒̀̕b"#, r#"a֮𞀒̀̕b"#),
+        (r#"à֮𞀓̕b"#, r#"à֮𞀓̕b"#, r#"à֮𞀓̕b"#, r#"à֮𞀓̕b"#, r#"à֮𞀓̕b"#),
+        (r#"a֮𞀓̀̕b"#, r#"a֮𞀓̀̕b"#, r#"a֮𞀓̀̕b"#, r#"a֮𞀓̀̕b"#, r#"a֮𞀓̀̕b"#),
+        (r#"à֮𞀔̕b"#, r#"à֮𞀔̕b"#, r#"à֮𞀔̕b"#, r#"à֮𞀔̕b"#, r#"à֮𞀔̕b"#),
+        (r#"a֮𞀔̀̕b"#, r#"a֮𞀔̀̕b"#, r#"a֮𞀔̀̕b"#, r#"a֮𞀔̀̕b"#, r#"a֮𞀔̀̕b"#),
+        (r#"à֮𞀕̕b"#, r#"à֮𞀕̕b"#, r#"à֮𞀕̕b"#, r#"à֮𞀕̕b"#, r#"à֮𞀕̕b"#),
+        (r#"a֮𞀕̀̕b"#, r#"a֮𞀕̀̕b"#, r#"a֮𞀕̀̕b"#, r#"a֮𞀕̀̕b"#, r#"a֮𞀕̀̕b"#),
+        (r#"à֮𞀖̕b"#, r#"à֮𞀖̕b"#, r#"à֮𞀖̕b"#, r#"à֮𞀖̕b"#, r#"à֮𞀖̕b"#),
+        (r#"a֮𞀖̀̕b"#, r#"a֮𞀖̀̕b"#, r#"a֮𞀖̀̕b"#, r#"a֮𞀖̀̕b"#, r#"a֮𞀖̀̕b"#),
+        (r#"à֮𞀗̕b"#, r#"à֮𞀗̕b"#, r#"à֮𞀗̕b"#, r#"à֮𞀗̕b"#, r#"à֮𞀗̕b"#),
+        (r#"a֮𞀗̀̕b"#, r#"a֮𞀗̀̕b"#, r#"a֮𞀗̀̕b"#, r#"a֮𞀗̀̕b"#, r#"a֮𞀗̀̕b"#),
+        (r#"à֮𞀘̕b"#, r#"à֮𞀘̕b"#, r#"à֮𞀘̕b"#, r#"à֮𞀘̕b"#, r#"à֮𞀘̕b"#),
+        (r#"a֮𞀘̀̕b"#, r#"a֮𞀘̀̕b"#, r#"a֮𞀘̀̕b"#, r#"a֮𞀘̀̕b"#, r#"a֮𞀘̀̕b"#),
+        (r#"à֮𞀛̕b"#, r#"à֮𞀛̕b"#, r#"à֮𞀛̕b"#, r#"à֮𞀛̕b"#, r#"à֮𞀛̕b"#),
+        (r#"a֮𞀛̀̕b"#, r#"a֮𞀛̀̕b"#, r#"a֮𞀛̀̕b"#, r#"a֮𞀛̀̕b"#, r#"a֮𞀛̀̕b"#),
+        (r#"à֮𞀜̕b"#, r#"à֮𞀜̕b"#, r#"à֮𞀜̕b"#, r#"à֮𞀜̕b"#, r#"à֮𞀜̕b"#),
+        (r#"a֮𞀜̀̕b"#, r#"a֮𞀜̀̕b"#, r#"a֮𞀜̀̕b"#, r#"a֮𞀜̀̕b"#, r#"a֮𞀜̀̕b"#),
+        (r#"à֮𞀝̕b"#, r#"à֮𞀝̕b"#, r#"à֮𞀝̕b"#, r#"à֮𞀝̕b"#, r#"à֮𞀝̕b"#),
+        (r#"a֮𞀝̀̕b"#, r#"a֮𞀝̀̕b"#, r#"a֮𞀝̀̕b"#, r#"a֮𞀝̀̕b"#, r#"a֮𞀝̀̕b"#),
+        (r#"à֮𞀞̕b"#, r#"à֮𞀞̕b"#, r#"à֮𞀞̕b"#, r#"à֮𞀞̕b"#, r#"à֮𞀞̕b"#),
+        (r#"a֮𞀞̀̕b"#, r#"a֮𞀞̀̕b"#, r#"a֮𞀞̀̕b"#, r#"a֮𞀞̀̕b"#, r#"a֮𞀞̀̕b"#),
+        (r#"à֮𞀟̕b"#, r#"à֮𞀟̕b"#, r#"à֮𞀟̕b"#, r#"à֮𞀟̕b"#, r#"à֮𞀟̕b"#),
+        (r#"a֮𞀟̀̕b"#, r#"a֮𞀟̀̕b"#, r#"a֮𞀟̀̕b"#, r#"a֮𞀟̀̕b"#, r#"a֮𞀟̀̕b"#),
+        (r#"à֮𞀠̕b"#, r#"à֮𞀠̕b"#, r#"à֮𞀠̕b"#, r#"à֮𞀠̕b"#, r#"à֮𞀠̕b"#),
+        (r#"a֮𞀠̀̕b"#, r#"a֮𞀠̀̕b"#, r#"a֮𞀠̀̕b"#, r#"a֮𞀠̀̕b"#, r#"a֮𞀠̀̕b"#),
+        (r#"à֮𞀡̕b"#, r#"à֮𞀡̕b"#, r#"à֮𞀡̕b"#, r#"à֮𞀡̕b"#, r#"à֮𞀡̕b"#),
+        (r#"a֮𞀡̀̕b"#, r#"a֮𞀡̀̕b"#, r#"a֮𞀡̀̕b"#, r#"a֮𞀡̀̕b"#, r#"a֮𞀡̀̕b"#),
+        (r#"à֮𞀣̕b"#, r#"à֮𞀣̕b"#, r#"à֮𞀣̕b"#, r#"à֮𞀣̕b"#, r#"à֮𞀣̕b"#),
+        (r#"a֮𞀣̀̕b"#, r#"a֮𞀣̀̕b"#, r#"a֮𞀣̀̕b"#, r#"a֮𞀣̀̕b"#, r#"a֮𞀣̀̕b"#),
+        (r#"à֮𞀤̕b"#, r#"à֮𞀤̕b"#, r#"à֮𞀤̕b"#, r#"à֮𞀤̕b"#, r#"à֮𞀤̕b"#),
+        (r#"a֮𞀤̀̕b"#, r#"a֮𞀤̀̕b"#, r#"a֮𞀤̀̕b"#, r#"a֮𞀤̀̕b"#, r#"a֮𞀤̀̕b"#),
+        (r#"à֮𞀦̕b"#, r#"à֮𞀦̕b"#, r#"à֮𞀦̕b"#, r#"à֮𞀦̕b"#, r#"à֮𞀦̕b"#),
+        (r#"a֮𞀦̀̕b"#, r#"a֮𞀦̀̕b"#, r#"a֮𞀦̀̕b"#, r#"a֮𞀦̀̕b"#, r#"a֮𞀦̀̕b"#),
+        (r#"à֮𞀧̕b"#, r#"à֮𞀧̕b"#, r#"à֮𞀧̕b"#, r#"à֮𞀧̕b"#, r#"à֮𞀧̕b"#),
+        (r#"a֮𞀧̀̕b"#, r#"a֮𞀧̀̕b"#, r#"a֮𞀧̀̕b"#, r#"a֮𞀧̀̕b"#, r#"a֮𞀧̀̕b"#),
+        (r#"à֮𞀨̕b"#, r#"à֮𞀨̕b"#, r#"à֮𞀨̕b"#, r#"à֮𞀨̕b"#, r#"à֮𞀨̕b"#),
+        (r#"a֮𞀨̀̕b"#, r#"a֮𞀨̀̕b"#, r#"a֮𞀨̀̕b"#, r#"a֮𞀨̀̕b"#, r#"a֮𞀨̀̕b"#),
+        (r#"à֮𞀩̕b"#, r#"à֮𞀩̕b"#, r#"à֮𞀩̕b"#, r#"à֮𞀩̕b"#, r#"à֮𞀩̕b"#),
+        (r#"a֮𞀩̀̕b"#, r#"a֮𞀩̀̕b"#, r#"a֮𞀩̀̕b"#, r#"a֮𞀩̀̕b"#, r#"a֮𞀩̀̕b"#),
+        (r#"à֮𞀪̕b"#, r#"à֮𞀪̕b"#, r#"à֮𞀪̕b"#, r#"à֮𞀪̕b"#, r#"à֮𞀪̕b"#),
+        (r#"a֮𞀪̀̕b"#, r#"a֮𞀪̀̕b"#, r#"a֮𞀪̀̕b"#, r#"a֮𞀪̀̕b"#, r#"a֮𞀪̀̕b"#),
+        (r#"à֮𞂏̕b"#, r#"à֮𞂏̕b"#, r#"à֮𞂏̕b"#, r#"à֮𞂏̕b"#, r#"à֮𞂏̕b"#),
+        (r#"a֮𞂏̀̕b"#, r#"a֮𞂏̀̕b"#, r#"a֮𞂏̀̕b"#, r#"a֮𞂏̀̕b"#, r#"a֮𞂏̀̕b"#),
+        (r#"à֮𞄰̕b"#, r#"à֮𞄰̕b"#, r#"à֮𞄰̕b"#, r#"à֮𞄰̕b"#, r#"à֮𞄰̕b"#),
+        (r#"a֮𞄰̀̕b"#, r#"a֮𞄰̀̕b"#, r#"a֮𞄰̀̕b"#, r#"a֮𞄰̀̕b"#, r#"a֮𞄰̀̕b"#),
+        (r#"à֮𞄱̕b"#, r#"à֮𞄱̕b"#, r#"à֮𞄱̕b"#, r#"à֮𞄱̕b"#, r#"à֮𞄱̕b"#),
+        (r#"a֮𞄱̀̕b"#, r#"a֮𞄱̀̕b"#, r#"a֮𞄱̀̕b"#, r#"a֮𞄱̀̕b"#, r#"a֮𞄱̀̕b"#),
+        (r#"à֮𞄲̕b"#, r#"à֮𞄲̕b"#, r#"à֮𞄲̕b"#, r#"à֮𞄲̕b"#, r#"à֮𞄲̕b"#),
+        (r#"a֮𞄲̀̕b"#, r#"a֮𞄲̀̕b"#, r#"a֮𞄲̀̕b"#, r#"a֮𞄲̀̕b"#, r#"a֮𞄲̀̕b"#),
+        (r#"à֮𞄳̕b"#, r#"à֮𞄳̕b"#, r#"à֮𞄳̕b"#, r#"à֮𞄳̕b"#, r#"à֮𞄳̕b"#),
+        (r#"a֮𞄳̀̕b"#, r#"a֮𞄳̀̕b"#, r#"a֮𞄳̀̕b"#, r#"a֮𞄳̀̕b"#, r#"a֮𞄳̀̕b"#),
+        (r#"à֮𞄴̕b"#, r#"à֮𞄴̕b"#, r#"à֮𞄴̕b"#, r#"à֮𞄴̕b"#, r#"à֮𞄴̕b"#),
+        (r#"a֮𞄴̀̕b"#, r#"a֮𞄴̀̕b"#, r#"a֮𞄴̀̕b"#, r#"a֮𞄴̀̕b"#, r#"a֮𞄴̀̕b"#),
+        (r#"à֮𞄵̕b"#, r#"à֮𞄵̕b"#, r#"à֮𞄵̕b"#, r#"à֮𞄵̕b"#, r#"à֮𞄵̕b"#),
+        (r#"a֮𞄵̀̕b"#, r#"a֮𞄵̀̕b"#, r#"a֮𞄵̀̕b"#, r#"a֮𞄵̀̕b"#, r#"a֮𞄵̀̕b"#),
+        (r#"à֮𞄶̕b"#, r#"à֮𞄶̕b"#, r#"à֮𞄶̕b"#, r#"à֮𞄶̕b"#, r#"à֮𞄶̕b"#),
+        (r#"a֮𞄶̀̕b"#, r#"a֮𞄶̀̕b"#, r#"a֮𞄶̀̕b"#, r#"a֮𞄶̀̕b"#, r#"a֮𞄶̀̕b"#),
+        (r#"à֮𞊮̕b"#, r#"à֮𞊮̕b"#, r#"à֮𞊮̕b"#, r#"à֮𞊮̕b"#, r#"à֮𞊮̕b"#),
+        (r#"a֮𞊮̀̕b"#, r#"a֮𞊮̀̕b"#, r#"a֮𞊮̀̕b"#, r#"a֮𞊮̀̕b"#, r#"a֮𞊮̀̕b"#),
+        (r#"à֮𞋬̕b"#, r#"à֮𞋬̕b"#, r#"à֮𞋬̕b"#, r#"à֮𞋬̕b"#, r#"à֮𞋬̕b"#),
+        (r#"a֮𞋬̀̕b"#, r#"a֮𞋬̀̕b"#, r#"a֮𞋬̀̕b"#, r#"a֮𞋬̀̕b"#, r#"a֮𞋬̀̕b"#),
+        (r#"à֮𞋭̕b"#, r#"à֮𞋭̕b"#, r#"à֮𞋭̕b"#, r#"à֮𞋭̕b"#, r#"à֮𞋭̕b"#),
+        (r#"a֮𞋭̀̕b"#, r#"a֮𞋭̀̕b"#, r#"a֮𞋭̀̕b"#, r#"a֮𞋭̀̕b"#, r#"a֮𞋭̀̕b"#),
+        (r#"à֮𞋮̕b"#, r#"à֮𞋮̕b"#, r#"à֮𞋮̕b"#, r#"à֮𞋮̕b"#, r#"à֮𞋮̕b"#),
+        (r#"a֮𞋮̀̕b"#, r#"a֮𞋮̀̕b"#, r#"a֮𞋮̀̕b"#, r#"a֮𞋮̀̕b"#, r#"a֮𞋮̀̕b"#),
+        (r#"à֮𞋯̕b"#, r#"à֮𞋯̕b"#, r#"à֮𞋯̕b"#, r#"à֮𞋯̕b"#, r#"à֮𞋯̕b"#),
+        (r#"a֮𞋯̀̕b"#, r#"a֮𞋯̀̕b"#, r#"a֮𞋯̀̕b"#, r#"a֮𞋯̀̕b"#, r#"a֮𞋯̀̕b"#),
+        (r#"à̕𞓬͜b"#, r#"à̕𞓬͜b"#, r#"à̕𞓬͜b"#, r#"à̕𞓬͜b"#, r#"à̕𞓬͜b"#),
+        (r#"à𞓬̕͜b"#, r#"à𞓬̕͜b"#, r#"à𞓬̕͜b"#, r#"à𞓬̕͜b"#, r#"à𞓬̕͜b"#),
+        (r#"à̕𞓭͜b"#, r#"à̕𞓭͜b"#, r#"à̕𞓭͜b"#, r#"à̕𞓭͜b"#, r#"à̕𞓭͜b"#),
+        (r#"à𞓭̕͜b"#, r#"à𞓭̕͜b"#, r#"à𞓭̕͜b"#, r#"à𞓭̕͜b"#, r#"à𞓭̕͜b"#),
+        (r#"a᷺̖𞓮֚b"#, r#"a᷺̖𞓮֚b"#, r#"a᷺̖𞓮֚b"#, r#"a᷺̖𞓮֚b"#, r#"a᷺̖𞓮֚b"#),
+        (r#"a᷺𞓮̖֚b"#, r#"a᷺𞓮̖֚b"#, r#"a᷺𞓮̖֚b"#, r#"a᷺𞓮̖֚b"#, r#"a᷺𞓮̖֚b"#),
+        (r#"à֮𞓯̕b"#, r#"à֮𞓯̕b"#, r#"à֮𞓯̕b"#, r#"à֮𞓯̕b"#, r#"à֮𞓯̕b"#),
+        (r#"a֮𞓯̀̕b"#, r#"a֮𞓯̀̕b"#, r#"a֮𞓯̀̕b"#, r#"a֮𞓯̀̕b"#, r#"a֮𞓯̀̕b"#),
+        (r#"a᷺̖𞣐֚b"#, r#"a᷺̖𞣐֚b"#, r#"a᷺̖𞣐֚b"#, r#"a᷺̖𞣐֚b"#, r#"a᷺̖𞣐֚b"#),
+        (r#"a᷺𞣐̖֚b"#, r#"a᷺𞣐̖֚b"#, r#"a᷺𞣐̖֚b"#, r#"a᷺𞣐̖֚b"#, r#"a᷺𞣐̖֚b"#),
+        (r#"a᷺̖𞣑֚b"#, r#"a᷺̖𞣑֚b"#, r#"a᷺̖𞣑֚b"#, r#"a᷺̖𞣑֚b"#, r#"a᷺̖𞣑֚b"#),
+        (r#"a᷺𞣑̖֚b"#, r#"a᷺𞣑̖֚b"#, r#"a᷺𞣑̖֚b"#, r#"a᷺𞣑̖֚b"#, r#"a᷺𞣑̖֚b"#),
+        (r#"a᷺̖𞣒֚b"#, r#"a᷺̖𞣒֚b"#, r#"a᷺̖𞣒֚b"#, r#"a᷺̖𞣒֚b"#, r#"a᷺̖𞣒֚b"#),
+        (r#"a᷺𞣒̖֚b"#, r#"a᷺𞣒̖֚b"#, r#"a᷺𞣒̖֚b"#, r#"a᷺𞣒̖֚b"#, r#"a᷺𞣒̖֚b"#),
+        (r#"a᷺̖𞣓֚b"#, r#"a᷺̖𞣓֚b"#, r#"a᷺̖𞣓֚b"#, r#"a᷺̖𞣓֚b"#, r#"a᷺̖𞣓֚b"#),
+        (r#"a᷺𞣓̖֚b"#, r#"a᷺𞣓̖֚b"#, r#"a᷺𞣓̖֚b"#, r#"a᷺𞣓̖֚b"#, r#"a᷺𞣓̖֚b"#),
+        (r#"a᷺̖𞣔֚b"#, r#"a᷺̖𞣔֚b"#, r#"a᷺̖𞣔֚b"#, r#"a᷺̖𞣔֚b"#, r#"a᷺̖𞣔֚b"#),
+        (r#"a᷺𞣔̖֚b"#, r#"a᷺𞣔̖֚b"#, r#"a᷺𞣔̖֚b"#, r#"a᷺𞣔̖֚b"#, r#"a᷺𞣔̖֚b"#),
+        (r#"a᷺̖𞣕֚b"#, r#"a᷺̖𞣕֚b"#, r#"a᷺̖𞣕֚b"#, r#"a᷺̖𞣕֚b"#, r#"a᷺̖𞣕֚b"#),
+        (r#"a᷺𞣕̖֚b"#, r#"a᷺𞣕̖֚b"#, r#"a᷺𞣕̖֚b"#, r#"a᷺𞣕̖֚b"#, r#"a᷺𞣕̖֚b"#),
+        (r#"a᷺̖𞣖֚b"#, r#"a᷺̖𞣖֚b"#, r#"a᷺̖𞣖֚b"#, r#"a᷺̖𞣖֚b"#, r#"a᷺̖𞣖֚b"#),
+        (r#"a᷺𞣖̖֚b"#, r#"a᷺𞣖̖֚b"#, r#"a᷺𞣖̖֚b"#, r#"a᷺𞣖̖֚b"#, r#"a᷺𞣖̖֚b"#),
+        (r#"à֮𞥄̕b"#, r#"à֮𞥄̕b"#, r#"à֮𞥄̕b"#, r#"à֮𞥄̕b"#, r#"à֮𞥄̕b"#),
+        (r#"a֮𞥄̀̕b"#, r#"a֮𞥄̀̕b"#, r#"a֮𞥄̀̕b"#, r#"a֮𞥄̀̕b"#, r#"a֮𞥄̀̕b"#),
+        (r#"à֮𞥅̕b"#, r#"à֮𞥅̕b"#, r#"à֮𞥅̕b"#, r#"à֮𞥅̕b"#, r#"à֮𞥅̕b"#),
+        (r#"a֮𞥅̀̕b"#, r#"a֮𞥅̀̕b"#, r#"a֮𞥅̀̕b"#, r#"a֮𞥅̀̕b"#, r#"a֮𞥅̀̕b"#),
+        (r#"à֮𞥆̕b"#, r#"à֮𞥆̕b"#, r#"à֮𞥆̕b"#, r#"à֮𞥆̕b"#, r#"à֮𞥆̕b"#),
+        (r#"a֮𞥆̀̕b"#, r#"a֮𞥆̀̕b"#, r#"a֮𞥆̀̕b"#, r#"a֮𞥆̀̕b"#, r#"a֮𞥆̀̕b"#),
+        (r#"à֮𞥇̕b"#, r#"à֮𞥇̕b"#, r#"à֮𞥇̕b"#, r#"à֮𞥇̕b"#, r#"à֮𞥇̕b"#),
+        (r#"a֮𞥇̀̕b"#, r#"a֮𞥇̀̕b"#, r#"a֮𞥇̀̕b"#, r#"a֮𞥇̀̕b"#, r#"a֮𞥇̀̕b"#),
+        (r#"à֮𞥈̕b"#, r#"à֮𞥈̕b"#, r#"à֮𞥈̕b"#, r#"à֮𞥈̕b"#, r#"à֮𞥈̕b"#),
+        (r#"a֮𞥈̀̕b"#, r#"a֮𞥈̀̕b"#, r#"a֮𞥈̀̕b"#, r#"a֮𞥈̀̕b"#, r#"a֮𞥈̀̕b"#),
+        (r#"à֮𞥉̕b"#, r#"à֮𞥉̕b"#, r#"à֮𞥉̕b"#, r#"à֮𞥉̕b"#, r#"à֮𞥉̕b"#),
+        (r#"a֮𞥉̀̕b"#, r#"a֮𞥉̀̕b"#, r#"a֮𞥉̀̕b"#, r#"a֮𞥉̀̕b"#, r#"a֮𞥉̀̕b"#),
+        (r#"a𖿰़𞥊゙b"#, r#"a𖿰़𞥊゙b"#, r#"a𖿰़𞥊゙b"#, r#"a𖿰़𞥊゙b"#, r#"a𖿰़𞥊゙b"#),
+        (r#"a𖿰𞥊़゙b"#, r#"a𖿰𞥊़゙b"#, r#"a𖿰𞥊़゙b"#, r#"a𖿰𞥊़゙b"#, r#"a𖿰𞥊़゙b"#),
+        (r#"ে̴া"#, r#"ে̴া"#, r#"ে̴া"#, r#"ে̴া"#, r#"ে̴া"#),
+        (r#"ে̴ৗ"#, r#"ে̴ৗ"#, r#"ে̴ৗ"#, r#"ে̴ৗ"#, r#"ে̴ৗ"#),
+        (r#"େ̴ା"#, r#"େ̴ା"#, r#"େ̴ା"#, r#"େ̴ା"#, r#"େ̴ା"#),
+        (r#"େ̴ୖ"#, r#"େ̴ୖ"#, r#"େ̴ୖ"#, r#"େ̴ୖ"#, r#"େ̴ୖ"#),
+        (r#"େ̴ୗ"#, r#"େ̴ୗ"#, r#"େ̴ୗ"#, r#"େ̴ୗ"#, r#"େ̴ୗ"#),
+        (r#"ஒ̴ௗ"#, r#"ஒ̴ௗ"#, r#"ஒ̴ௗ"#, r#"ஒ̴ௗ"#, r#"ஒ̴ௗ"#),
+        (r#"ெ̴ா"#, r#"ெ̴ா"#, r#"ெ̴ா"#, r#"ெ̴ா"#, r#"ெ̴ா"#),
+        (r#"ெ̴ௗ"#, r#"ெ̴ௗ"#, r#"ெ̴ௗ"#, r#"ெ̴ௗ"#, r#"ெ̴ௗ"#),
+        (r#"ே̴ா"#, r#"ே̴ா"#, r#"ே̴ா"#, r#"ே̴ா"#, r#"ே̴ா"#),
+        (r#"ಿ̴ೕ"#, r#"ಿ̴ೕ"#, r#"ಿ̴ೕ"#, r#"ಿ̴ೕ"#, r#"ಿ̴ೕ"#),
+        (r#"ೆ̴ೂ"#, r#"ೆ̴ೂ"#, r#"ೆ̴ೂ"#, r#"ೆ̴ೂ"#, r#"ೆ̴ೂ"#),
+        (r#"ೆ̴ೕ"#, r#"ೆ̴ೕ"#, r#"ೆ̴ೕ"#, r#"ೆ̴ೕ"#, r#"ೆ̴ೕ"#),
+        (r#"ೆ̴ೖ"#, r#"ೆ̴ೖ"#, r#"ೆ̴ೖ"#, r#"ೆ̴ೖ"#, r#"ೆ̴ೖ"#),
+        (r#"ೊ̴ೕ"#, r#"ೊ̴ೕ"#, r#"ೊ̴ೕ"#, r#"ೊ̴ೕ"#, r#"ೊ̴ೕ"#),
+        (r#"െ̴ാ"#, r#"െ̴ാ"#, r#"െ̴ാ"#, r#"െ̴ാ"#, r#"െ̴ാ"#),
+        (r#"െ̴ൗ"#, r#"െ̴ൗ"#, r#"െ̴ൗ"#, r#"െ̴ൗ"#, r#"െ̴ൗ"#),
+        (r#"േ̴ാ"#, r#"േ̴ാ"#, r#"േ̴ാ"#, r#"േ̴ാ"#, r#"േ̴ാ"#),
+        (r#"ෙ̴ා"#, r#"ෙ̴ා"#, r#"ෙ̴ා"#, r#"ෙ̴ා"#, r#"ෙ̴ා"#),
+        (r#"ෙ̴ෟ"#, r#"ෙ̴ෟ"#, r#"ෙ̴ෟ"#, r#"ෙ̴ෟ"#, r#"ෙ̴ෟ"#),
+        (r#"ཀ̴ྵ"#, r#"ཀ̴ྵ"#, r#"ཀ̴ྵ"#, r#"ཀ̴ྵ"#, r#"ཀ̴ྵ"#),
+        (r#"ག̴ྷ"#, r#"ག̴ྷ"#, r#"ག̴ྷ"#, r#"ག̴ྷ"#, r#"ག̴ྷ"#),
+        (r#"ཌ̴ྷ"#, r#"ཌ̴ྷ"#, r#"ཌ̴ྷ"#, r#"ཌ̴ྷ"#, r#"ཌ̴ྷ"#),
+        (r#"ད̴ྷ"#, r#"ད̴ྷ"#, r#"ད̴ྷ"#, r#"ད̴ྷ"#, r#"ད̴ྷ"#),
+        (r#"བ̴ྷ"#, r#"བ̴ྷ"#, r#"བ̴ྷ"#, r#"བ̴ྷ"#, r#"བ̴ྷ"#),
+        (r#"ཛ̴ྷ"#, r#"ཛ̴ྷ"#, r#"ཛ̴ྷ"#, r#"ཛ̴ྷ"#, r#"ཛ̴ྷ"#),
+        (r#"ྐ̴ྵ"#, r#"ྐ̴ྵ"#, r#"ྐ̴ྵ"#, r#"ྐ̴ྵ"#, r#"ྐ̴ྵ"#),
+        (r#"ྒ̴ྷ"#, r#"ྒ̴ྷ"#, r#"ྒ̴ྷ"#, r#"ྒ̴ྷ"#, r#"ྒ̴ྷ"#),
+        (r#"ྜ̴ྷ"#, r#"ྜ̴ྷ"#, r#"ྜ̴ྷ"#, r#"ྜ̴ྷ"#, r#"ྜ̴ྷ"#),
+        (r#"ྡ̴ྷ"#, r#"ྡ̴ྷ"#, r#"ྡ̴ྷ"#, r#"ྡ̴ྷ"#, r#"ྡ̴ྷ"#),
+        (r#"ྦ̴ྷ"#, r#"ྦ̴ྷ"#, r#"ྦ̴ྷ"#, r#"ྦ̴ྷ"#, r#"ྦ̴ྷ"#),
+        (r#"ྫ̴ྷ"#, r#"ྫ̴ྷ"#, r#"ྫ̴ྷ"#, r#"ྫ̴ྷ"#, r#"ྫ̴ྷ"#),
+        (r#"ဥ̴ီ"#, r#"ဥ̴ီ"#, r#"ဥ̴ီ"#, r#"ဥ̴ီ"#, r#"ဥ̴ီ"#),
+        (r#"ᄀ̴ᅡ"#, r#"ᄀ̴ᅡ"#, r#"ᄀ̴ᅡ"#, r#"ᄀ̴ᅡ"#, r#"ᄀ̴ᅡ"#),
+        (r#"ᄀ̴ᅮ"#, r#"ᄀ̴ᅮ"#, r#"ᄀ̴ᅮ"#, r#"ᄀ̴ᅮ"#, r#"ᄀ̴ᅮ"#),
+        (r#"ᄁ̴ᅦ"#, r#"ᄁ̴ᅦ"#, r#"ᄁ̴ᅦ"#, r#"ᄁ̴ᅦ"#, r#"ᄁ̴ᅦ"#),
+        (r#"ᄁ̴ᅳ"#, r#"ᄁ̴ᅳ"#, r#"ᄁ̴ᅳ"#, r#"ᄁ̴ᅳ"#, r#"ᄁ̴ᅳ"#),
+        (r#"ᄂ̴ᅫ"#, r#"ᄂ̴ᅫ"#, r#"ᄂ̴ᅫ"#, r#"ᄂ̴ᅫ"#, r#"ᄂ̴ᅫ"#),
+        (r#"ᄃ̴ᅣ"#, r#"ᄃ̴ᅣ"#, r#"ᄃ̴ᅣ"#, r#"ᄃ̴ᅣ"#, r#"ᄃ̴ᅣ"#),
+        (r#"ᄃ̴ᅰ"#, r#"ᄃ̴ᅰ"#, r#"ᄃ̴ᅰ"#, r#"ᄃ̴ᅰ"#, r#"ᄃ̴ᅰ"#),
+        (r#"ᄄ̴ᅨ"#, r#"ᄄ̴ᅨ"#, r#"ᄄ̴ᅨ"#, r#"ᄄ̴ᅨ"#, r#"ᄄ̴ᅨ"#),
+        (r#"ᄄ̴ᅵ"#, r#"ᄄ̴ᅵ"#, r#"ᄄ̴ᅵ"#, r#"ᄄ̴ᅵ"#, r#"ᄄ̴ᅵ"#),
+        (r#"ᄅ̴ᅭ"#, r#"ᄅ̴ᅭ"#, r#"ᄅ̴ᅭ"#, r#"ᄅ̴ᅭ"#, r#"ᄅ̴ᅭ"#),
+        (r#"ᄆ̴ᅥ"#, r#"ᄆ̴ᅥ"#, r#"ᄆ̴ᅥ"#, r#"ᄆ̴ᅥ"#, r#"ᄆ̴ᅥ"#),
+        (r#"ᄆ̴ᅲ"#, r#"ᄆ̴ᅲ"#, r#"ᄆ̴ᅲ"#, r#"ᄆ̴ᅲ"#, r#"ᄆ̴ᅲ"#),
+        (r#"ᄇ̴ᅪ"#, r#"ᄇ̴ᅪ"#, r#"ᄇ̴ᅪ"#, r#"ᄇ̴ᅪ"#, r#"ᄇ̴ᅪ"#),
+        (r#"ᄈ̴ᅢ"#, r#"ᄈ̴ᅢ"#, r#"ᄈ̴ᅢ"#, r#"ᄈ̴ᅢ"#, r#"ᄈ̴ᅢ"#),
+        (r#"ᄈ̴ᅯ"#, r#"ᄈ̴ᅯ"#, r#"ᄈ̴ᅯ"#, r#"ᄈ̴ᅯ"#, r#"ᄈ̴ᅯ"#),
+        (r#"ᄉ̴ᅧ"#, r#"ᄉ̴ᅧ"#, r#"ᄉ̴ᅧ"#, r#"ᄉ̴ᅧ"#, r#"ᄉ̴ᅧ"#),
+        (r#"ᄉ̴ᅴ"#, r#"ᄉ̴ᅴ"#, r#"ᄉ̴ᅴ"#, r#"ᄉ̴ᅴ"#, r#"ᄉ̴ᅴ"#),
+        (r#"ᄊ̴ᅬ"#, r#"ᄊ̴ᅬ"#, r#"ᄊ̴ᅬ"#, r#"ᄊ̴ᅬ"#, r#"ᄊ̴ᅬ"#),
+        (r#"ᄋ̴ᅤ"#, r#"ᄋ̴ᅤ"#, r#"ᄋ̴ᅤ"#, r#"ᄋ̴ᅤ"#, r#"ᄋ̴ᅤ"#),
+        (r#"ᄋ̴ᅱ"#, r#"ᄋ̴ᅱ"#, r#"ᄋ̴ᅱ"#, r#"ᄋ̴ᅱ"#, r#"ᄋ̴ᅱ"#),
+        (r#"ᄌ̴ᅩ"#, r#"ᄌ̴ᅩ"#, r#"ᄌ̴ᅩ"#, r#"ᄌ̴ᅩ"#, r#"ᄌ̴ᅩ"#),
+        (r#"ᄍ̴ᅡ"#, r#"ᄍ̴ᅡ"#, r#"ᄍ̴ᅡ"#, r#"ᄍ̴ᅡ"#, r#"ᄍ̴ᅡ"#),
+        (r#"ᄍ̴ᅮ"#, r#"ᄍ̴ᅮ"#, r#"ᄍ̴ᅮ"#, r#"ᄍ̴ᅮ"#, r#"ᄍ̴ᅮ"#),
+        (r#"ᄎ̴ᅦ"#, r#"ᄎ̴ᅦ"#, r#"ᄎ̴ᅦ"#, r#"ᄎ̴ᅦ"#, r#"ᄎ̴ᅦ"#),
+        (r#"ᄎ̴ᅳ"#, r#"ᄎ̴ᅳ"#, r#"ᄎ̴ᅳ"#, r#"ᄎ̴ᅳ"#, r#"ᄎ̴ᅳ"#),
+        (r#"ᄏ̴ᅫ"#, r#"ᄏ̴ᅫ"#, r#"ᄏ̴ᅫ"#, r#"ᄏ̴ᅫ"#, r#"ᄏ̴ᅫ"#),
+        (r#"ᄐ̴ᅣ"#, r#"ᄐ̴ᅣ"#, r#"ᄐ̴ᅣ"#, r#"ᄐ̴ᅣ"#, r#"ᄐ̴ᅣ"#),
+        (r#"ᄐ̴ᅰ"#, r#"ᄐ̴ᅰ"#, r#"ᄐ̴ᅰ"#, r#"ᄐ̴ᅰ"#, r#"ᄐ̴ᅰ"#),
+        (r#"ᄑ̴ᅨ"#, r#"ᄑ̴ᅨ"#, r#"ᄑ̴ᅨ"#, r#"ᄑ̴ᅨ"#, r#"ᄑ̴ᅨ"#),
+        (r#"ᄑ̴ᅵ"#, r#"ᄑ̴ᅵ"#, r#"ᄑ̴ᅵ"#, r#"ᄑ̴ᅵ"#, r#"ᄑ̴ᅵ"#),
+        (r#"ᄒ̴ᅭ"#, r#"ᄒ̴ᅭ"#, r#"ᄒ̴ᅭ"#, r#"ᄒ̴ᅭ"#, r#"ᄒ̴ᅭ"#),
+        (r#"ᬅ̴ᬵ"#, r#"ᬅ̴ᬵ"#, r#"ᬅ̴ᬵ"#, r#"ᬅ̴ᬵ"#, r#"ᬅ̴ᬵ"#),
+        (r#"ᬇ̴ᬵ"#, r#"ᬇ̴ᬵ"#, r#"ᬇ̴ᬵ"#, r#"ᬇ̴ᬵ"#, r#"ᬇ̴ᬵ"#),
+        (r#"ᬉ̴ᬵ"#, r#"ᬉ̴ᬵ"#, r#"ᬉ̴ᬵ"#, r#"ᬉ̴ᬵ"#, r#"ᬉ̴ᬵ"#),
+        (r#"ᬋ̴ᬵ"#, r#"ᬋ̴ᬵ"#, r#"ᬋ̴ᬵ"#, r#"ᬋ̴ᬵ"#, r#"ᬋ̴ᬵ"#),
+        (r#"ᬍ̴ᬵ"#, r#"ᬍ̴ᬵ"#, r#"ᬍ̴ᬵ"#, r#"ᬍ̴ᬵ"#, r#"ᬍ̴ᬵ"#),
+        (r#"ᬑ̴ᬵ"#, r#"ᬑ̴ᬵ"#, r#"ᬑ̴ᬵ"#, r#"ᬑ̴ᬵ"#, r#"ᬑ̴ᬵ"#),
+        (r#"ᬺ̴ᬵ"#, r#"ᬺ̴ᬵ"#, r#"ᬺ̴ᬵ"#, r#"ᬺ̴ᬵ"#, r#"ᬺ̴ᬵ"#),
+        (r#"ᬼ̴ᬵ"#, r#"ᬼ̴ᬵ"#, r#"ᬼ̴ᬵ"#, r#"ᬼ̴ᬵ"#, r#"ᬼ̴ᬵ"#),
+        (r#"ᬾ̴ᬵ"#, r#"ᬾ̴ᬵ"#, r#"ᬾ̴ᬵ"#, r#"ᬾ̴ᬵ"#, r#"ᬾ̴ᬵ"#),
+        (r#"ᬿ̴ᬵ"#, r#"ᬿ̴ᬵ"#, r#"ᬿ̴ᬵ"#, r#"ᬿ̴ᬵ"#, r#"ᬿ̴ᬵ"#),
+        (r#"ᭂ̴ᬵ"#, r#"ᭂ̴ᬵ"#, r#"ᭂ̴ᬵ"#, r#"ᭂ̴ᬵ"#, r#"ᭂ̴ᬵ"#),
+        (r#"걔̴ᆮ"#, r#"걔̴ᆮ"#, r#"걔̴ᆮ"#, r#"걔̴ᆮ"#, r#"걔̴ᆮ"#),
+        (r#"겨̴ᆵ"#, r#"겨̴ᆵ"#, r#"겨̴ᆵ"#, r#"겨̴ᆵ"#, r#"겨̴ᆵ"#),
+        (r#"과̴ᆼ"#, r#"과̴ᆼ"#, r#"과̴ᆼ"#, r#"과̴ᆼ"#, r#"과̴ᆼ"#),
+        (r#"귀̴ᆮ"#, r#"귀̴ᆮ"#, r#"귀̴ᆮ"#, r#"귀̴ᆮ"#, r#"귀̴ᆮ"#),
+        (r#"긔̴ᆵ"#, r#"긔̴ᆵ"#, r#"긔̴ᆵ"#, r#"긔̴ᆵ"#, r#"긔̴ᆵ"#),
+        (r#"깨̴ᆼ"#, r#"깨̴ᆼ"#, r#"깨̴ᆼ"#, r#"깨̴ᆼ"#, r#"깨̴ᆼ"#),
+        (r#"꼬̴ᆮ"#, r#"꼬̴ᆮ"#, r#"꼬̴ᆮ"#, r#"꼬̴ᆮ"#, r#"꼬̴ᆮ"#),
+        (r#"꾀̴ᆵ"#, r#"꾀̴ᆵ"#, r#"꾀̴ᆵ"#, r#"꾀̴ᆵ"#, r#"꾀̴ᆵ"#),
+        (r#"꿔̴ᆼ"#, r#"꿔̴ᆼ"#, r#"꿔̴ᆼ"#, r#"꿔̴ᆼ"#, r#"꿔̴ᆼ"#),
+        (r#"나̴ᆮ"#, r#"나̴ᆮ"#, r#"나̴ᆮ"#, r#"나̴ᆮ"#, r#"나̴ᆮ"#),
+        (r#"냬̴ᆵ"#, r#"냬̴ᆵ"#, r#"냬̴ᆵ"#, r#"냬̴ᆵ"#, r#"냬̴ᆵ"#),
+        (r#"녀̴ᆼ"#, r#"녀̴ᆼ"#, r#"녀̴ᆼ"#, r#"녀̴ᆼ"#, r#"녀̴ᆼ"#),
+        (r#"누̴ᆮ"#, r#"누̴ᆮ"#, r#"누̴ᆮ"#, r#"누̴ᆮ"#, r#"누̴ᆮ"#),
+        (r#"뉘̴ᆵ"#, r#"뉘̴ᆵ"#, r#"뉘̴ᆵ"#, r#"뉘̴ᆵ"#, r#"뉘̴ᆵ"#),
+        (r#"늬̴ᆼ"#, r#"늬̴ᆼ"#, r#"늬̴ᆼ"#, r#"늬̴ᆼ"#, r#"늬̴ᆼ"#),
+        (r#"데̴ᆮ"#, r#"데̴ᆮ"#, r#"데̴ᆮ"#, r#"데̴ᆮ"#, r#"데̴ᆮ"#),
+        (r#"도̴ᆵ"#, r#"도̴ᆵ"#, r#"도̴ᆵ"#, r#"도̴ᆵ"#, r#"도̴ᆵ"#),
+        (r#"되̴ᆼ"#, r#"되̴ᆼ"#, r#"되̴ᆼ"#, r#"되̴ᆼ"#, r#"되̴ᆼ"#),
+        (r#"드̴ᆮ"#, r#"드̴ᆮ"#, r#"드̴ᆮ"#, r#"드̴ᆮ"#, r#"드̴ᆮ"#),
+        (r#"따̴ᆵ"#, r#"따̴ᆵ"#, r#"따̴ᆵ"#, r#"따̴ᆵ"#, r#"따̴ᆵ"#),
+        (r#"떄̴ᆼ"#, r#"떄̴ᆼ"#, r#"떄̴ᆼ"#, r#"떄̴ᆼ"#, r#"떄̴ᆼ"#),
+        (r#"뙈̴ᆮ"#, r#"뙈̴ᆮ"#, r#"뙈̴ᆮ"#, r#"뙈̴ᆮ"#, r#"뙈̴ᆮ"#),
+        (r#"뚜̴ᆵ"#, r#"뚜̴ᆵ"#, r#"뚜̴ᆵ"#, r#"뚜̴ᆵ"#, r#"뚜̴ᆵ"#),
+        (r#"뛰̴ᆼ"#, r#"뛰̴ᆼ"#, r#"뛰̴ᆼ"#, r#"뛰̴ᆼ"#, r#"뛰̴ᆼ"#),
+        (r#"랴̴ᆮ"#, r#"랴̴ᆮ"#, r#"랴̴ᆮ"#, r#"랴̴ᆮ"#, r#"랴̴ᆮ"#),
+        (r#"레̴ᆵ"#, r#"레̴ᆵ"#, r#"레̴ᆵ"#, r#"레̴ᆵ"#, r#"레̴ᆵ"#),
+        (r#"로̴ᆼ"#, r#"로̴ᆼ"#, r#"로̴ᆼ"#, r#"로̴ᆼ"#, r#"로̴ᆼ"#),
+        (r#"뤠̴ᆮ"#, r#"뤠̴ᆮ"#, r#"뤠̴ᆮ"#, r#"뤠̴ᆮ"#, r#"뤠̴ᆮ"#),
+        (r#"르̴ᆵ"#, r#"르̴ᆵ"#, r#"르̴ᆵ"#, r#"르̴ᆵ"#, r#"르̴ᆵ"#),
+        (r#"마̴ᆼ"#, r#"마̴ᆼ"#, r#"마̴ᆼ"#, r#"마̴ᆼ"#, r#"마̴ᆼ"#),
+        (r#"몌̴ᆮ"#, r#"몌̴ᆮ"#, r#"몌̴ᆮ"#, r#"몌̴ᆮ"#, r#"몌̴ᆮ"#),
+        (r#"뫠̴ᆵ"#, r#"뫠̴ᆵ"#, r#"뫠̴ᆵ"#, r#"뫠̴ᆵ"#, r#"뫠̴ᆵ"#),
+        (r#"무̴ᆼ"#, r#"무̴ᆼ"#, r#"무̴ᆼ"#, r#"무̴ᆼ"#, r#"무̴ᆼ"#),
+        (r#"미̴ᆮ"#, r#"미̴ᆮ"#, r#"미̴ᆮ"#, r#"미̴ᆮ"#, r#"미̴ᆮ"#),
+        (r#"뱌̴ᆵ"#, r#"뱌̴ᆵ"#, r#"뱌̴ᆵ"#, r#"뱌̴ᆵ"#, r#"뱌̴ᆵ"#),
+        (r#"베̴ᆼ"#, r#"베̴ᆼ"#, r#"베̴ᆼ"#, r#"베̴ᆼ"#, r#"베̴ᆼ"#),
+        (r#"뵤̴ᆮ"#, r#"뵤̴ᆮ"#, r#"뵤̴ᆮ"#, r#"뵤̴ᆮ"#, r#"뵤̴ᆮ"#),
+        (r#"붸̴ᆵ"#, r#"붸̴ᆵ"#, r#"붸̴ᆵ"#, r#"붸̴ᆵ"#, r#"붸̴ᆵ"#),
+        (r#"브̴ᆼ"#, r#"브̴ᆼ"#, r#"브̴ᆼ"#, r#"브̴ᆼ"#, r#"브̴ᆼ"#),
+        (r#"뻐̴ᆮ"#, r#"뻐̴ᆮ"#, r#"뻐̴ᆮ"#, r#"뻐̴ᆮ"#, r#"뻐̴ᆮ"#),
+        (r#"뼤̴ᆵ"#, r#"뼤̴ᆵ"#, r#"뼤̴ᆵ"#, r#"뼤̴ᆵ"#, r#"뼤̴ᆵ"#),
+        (r#"뽸̴ᆼ"#, r#"뽸̴ᆼ"#, r#"뽸̴ᆼ"#, r#"뽸̴ᆼ"#, r#"뽸̴ᆼ"#),
+        (r#"쀼̴ᆮ"#, r#"쀼̴ᆮ"#, r#"쀼̴ᆮ"#, r#"쀼̴ᆮ"#, r#"쀼̴ᆮ"#),
+        (r#"삐̴ᆵ"#, r#"삐̴ᆵ"#, r#"삐̴ᆵ"#, r#"삐̴ᆵ"#, r#"삐̴ᆵ"#),
+        (r#"샤̴ᆼ"#, r#"샤̴ᆼ"#, r#"샤̴ᆼ"#, r#"샤̴ᆼ"#, r#"샤̴ᆼ"#),
+        (r#"솨̴ᆮ"#, r#"솨̴ᆮ"#, r#"솨̴ᆮ"#, r#"솨̴ᆮ"#, r#"솨̴ᆮ"#),
+        (r#"쇼̴ᆵ"#, r#"쇼̴ᆵ"#, r#"쇼̴ᆵ"#, r#"쇼̴ᆵ"#, r#"쇼̴ᆵ"#),
+        (r#"쉐̴ᆼ"#, r#"쉐̴ᆼ"#, r#"쉐̴ᆼ"#, r#"쉐̴ᆼ"#, r#"쉐̴ᆼ"#),
+        (r#"쌔̴ᆮ"#, r#"쌔̴ᆮ"#, r#"쌔̴ᆮ"#, r#"쌔̴ᆮ"#, r#"쌔̴ᆮ"#),
+        (r#"써̴ᆵ"#, r#"써̴ᆵ"#, r#"써̴ᆵ"#, r#"써̴ᆵ"#, r#"써̴ᆵ"#),
+        (r#"쎼̴ᆼ"#, r#"쎼̴ᆼ"#, r#"쎼̴ᆼ"#, r#"쎼̴ᆼ"#, r#"쎼̴ᆼ"#),
+        (r#"쒀̴ᆮ"#, r#"쒀̴ᆮ"#, r#"쒀̴ᆮ"#, r#"쒀̴ᆮ"#, r#"쒀̴ᆮ"#),
+        (r#"쓔̴ᆵ"#, r#"쓔̴ᆵ"#, r#"쓔̴ᆵ"#, r#"쓔̴ᆵ"#, r#"쓔̴ᆵ"#),
+        (r#"씨̴ᆼ"#, r#"씨̴ᆼ"#, r#"씨̴ᆼ"#, r#"씨̴ᆼ"#, r#"씨̴ᆼ"#),
+        (r#"여̴ᆮ"#, r#"여̴ᆮ"#, r#"여̴ᆮ"#, r#"여̴ᆮ"#, r#"여̴ᆮ"#),
+        (r#"와̴ᆵ"#, r#"와̴ᆵ"#, r#"와̴ᆵ"#, r#"와̴ᆵ"#, r#"와̴ᆵ"#),
+        (r#"요̴ᆼ"#, r#"요̴ᆼ"#, r#"요̴ᆼ"#, r#"요̴ᆼ"#, r#"요̴ᆼ"#),
+        (r#"의̴ᆮ"#, r#"의̴ᆮ"#, r#"의̴ᆮ"#, r#"의̴ᆮ"#, r#"의̴ᆮ"#),
+        (r#"재̴ᆵ"#, r#"재̴ᆵ"#, r#"재̴ᆵ"#, r#"재̴ᆵ"#, r#"재̴ᆵ"#),
+        (r#"저̴ᆼ"#, r#"저̴ᆼ"#, r#"저̴ᆼ"#, r#"저̴ᆼ"#, r#"저̴ᆼ"#),
+        (r#"죄̴ᆮ"#, r#"죄̴ᆮ"#, r#"죄̴ᆮ"#, r#"죄̴ᆮ"#, r#"죄̴ᆮ"#),
+        (r#"줘̴ᆵ"#, r#"줘̴ᆵ"#, r#"줘̴ᆵ"#, r#"줘̴ᆵ"#, r#"줘̴ᆵ"#),
+        (r#"쥬̴ᆼ"#, r#"쥬̴ᆼ"#, r#"쥬̴ᆼ"#, r#"쥬̴ᆼ"#, r#"쥬̴ᆼ"#),
+        (r#"쨰̴ᆮ"#, r#"쨰̴ᆮ"#, r#"쨰̴ᆮ"#, r#"쨰̴ᆮ"#, r#"쨰̴ᆮ"#),
+        (r#"쪄̴ᆵ"#, r#"쪄̴ᆵ"#, r#"쪄̴ᆵ"#, r#"쪄̴ᆵ"#, r#"쪄̴ᆵ"#),
+        (r#"쫘̴ᆼ"#, r#"쫘̴ᆼ"#, r#"쫘̴ᆼ"#, r#"쫘̴ᆼ"#, r#"쫘̴ᆼ"#),
+        (r#"쮜̴ᆮ"#, r#"쮜̴ᆮ"#, r#"쮜̴ᆮ"#, r#"쮜̴ᆮ"#, r#"쮜̴ᆮ"#),
+        (r#"쯰̴ᆵ"#, r#"쯰̴ᆵ"#, r#"쯰̴ᆵ"#, r#"쯰̴ᆵ"#, r#"쯰̴ᆵ"#),
+        (r#"채̴ᆼ"#, r#"채̴ᆼ"#, r#"채̴ᆼ"#, r#"채̴ᆼ"#, r#"채̴ᆼ"#),
+        (r#"초̴ᆮ"#, r#"초̴ᆮ"#, r#"초̴ᆮ"#, r#"초̴ᆮ"#, r#"초̴ᆮ"#),
+        (r#"최̴ᆵ"#, r#"최̴ᆵ"#, r#"최̴ᆵ"#, r#"최̴ᆵ"#, r#"최̴ᆵ"#),
+        (r#"춰̴ᆼ"#, r#"춰̴ᆼ"#, r#"춰̴ᆼ"#, r#"춰̴ᆼ"#, r#"춰̴ᆼ"#),
+        (r#"카̴ᆮ"#, r#"카̴ᆮ"#, r#"카̴ᆮ"#, r#"카̴ᆮ"#, r#"카̴ᆮ"#),
+        (r#"컈̴ᆵ"#, r#"컈̴ᆵ"#, r#"컈̴ᆵ"#, r#"컈̴ᆵ"#, r#"컈̴ᆵ"#),
+        (r#"켜̴ᆼ"#, r#"켜̴ᆼ"#, r#"켜̴ᆼ"#, r#"켜̴ᆼ"#, r#"켜̴ᆼ"#),
+        (r#"쿠̴ᆮ"#, r#"쿠̴ᆮ"#, r#"쿠̴ᆮ"#, r#"쿠̴ᆮ"#, r#"쿠̴ᆮ"#),
+        (r#"퀴̴ᆵ"#, r#"퀴̴ᆵ"#, r#"퀴̴ᆵ"#, r#"퀴̴ᆵ"#, r#"퀴̴ᆵ"#),
+        (r#"킈̴ᆼ"#, r#"킈̴ᆼ"#, r#"킈̴ᆼ"#, r#"킈̴ᆼ"#, r#"킈̴ᆼ"#),
+        (r#"테̴ᆮ"#, r#"테̴ᆮ"#, r#"테̴ᆮ"#, r#"테̴ᆮ"#, r#"테̴ᆮ"#),
+        (r#"토̴ᆵ"#, r#"토̴ᆵ"#, r#"토̴ᆵ"#, r#"토̴ᆵ"#, r#"토̴ᆵ"#),
+        (r#"퇴̴ᆼ"#, r#"퇴̴ᆼ"#, r#"퇴̴ᆼ"#, r#"퇴̴ᆼ"#, r#"퇴̴ᆼ"#),
+        (r#"트̴ᆮ"#, r#"트̴ᆮ"#, r#"트̴ᆮ"#, r#"트̴ᆮ"#, r#"트̴ᆮ"#),
+        (r#"파̴ᆵ"#, r#"파̴ᆵ"#, r#"파̴ᆵ"#, r#"파̴ᆵ"#, r#"파̴ᆵ"#),
+        (r#"퍠̴ᆼ"#, r#"퍠̴ᆼ"#, r#"퍠̴ᆼ"#, r#"퍠̴ᆼ"#, r#"퍠̴ᆼ"#),
+        (r#"퐤̴ᆮ"#, r#"퐤̴ᆮ"#, r#"퐤̴ᆮ"#, r#"퐤̴ᆮ"#, r#"퐤̴ᆮ"#),
+        (r#"푸̴ᆵ"#, r#"푸̴ᆵ"#, r#"푸̴ᆵ"#, r#"푸̴ᆵ"#, r#"푸̴ᆵ"#),
+        (r#"퓌̴ᆼ"#, r#"퓌̴ᆼ"#, r#"퓌̴ᆼ"#, r#"퓌̴ᆼ"#, r#"퓌̴ᆼ"#),
+        (r#"햐̴ᆮ"#, r#"햐̴ᆮ"#, r#"햐̴ᆮ"#, r#"햐̴ᆮ"#, r#"햐̴ᆮ"#),
+        (r#"헤̴ᆵ"#, r#"헤̴ᆵ"#, r#"헤̴ᆵ"#, r#"헤̴ᆵ"#, r#"헤̴ᆵ"#),
+        (r#"호̴ᆼ"#, r#"호̴ᆼ"#, r#"호̴ᆼ"#, r#"호̴ᆼ"#, r#"호̴ᆼ"#),
+        (r#"훼̴ᆮ"#, r#"훼̴ᆮ"#, r#"훼̴ᆮ"#, r#"훼̴ᆮ"#, r#"훼̴ᆮ"#),
+        (r#"흐̴ᆵ"#, r#"흐̴ᆵ"#, r#"흐̴ᆵ"#, r#"흐̴ᆵ"#, r#"흐̴ᆵ"#),
+        (r#"𑄱̴𑄧"#, r#"𑄱̴𑄧"#, r#"𑄱̴𑄧"#, r#"𑄱̴𑄧"#, r#"𑄱̴𑄧"#),
+        (r#"𑄲̴𑄧"#, r#"𑄲̴𑄧"#, r#"𑄲̴𑄧"#, r#"𑄲̴𑄧"#, r#"𑄲̴𑄧"#),
+        (r#"𑍇̴𑌾"#, r#"𑍇̴𑌾"#, r#"𑍇̴𑌾"#, r#"𑍇̴𑌾"#, r#"𑍇̴𑌾"#),
+        (r#"𑍇̴𑍗"#, r#"𑍇̴𑍗"#, r#"𑍇̴𑍗"#, r#"𑍇̴𑍗"#, r#"𑍇̴𑍗"#),
+        (r#"𑒹̴𑒰"#, r#"𑒹̴𑒰"#, r#"𑒹̴𑒰"#, r#"𑒹̴𑒰"#, r#"𑒹̴𑒰"#),
+        (r#"𑒹̴𑒺"#, r#"𑒹̴𑒺"#, r#"𑒹̴𑒺"#, r#"𑒹̴𑒺"#, r#"𑒹̴𑒺"#),
+        (r#"𑒹̴𑒽"#, r#"𑒹̴𑒽"#, r#"𑒹̴𑒽"#, r#"𑒹̴𑒽"#, r#"𑒹̴𑒽"#),
+        (r#"𑖸̴𑖯"#, r#"𑖸̴𑖯"#, r#"𑖸̴𑖯"#, r#"𑖸̴𑖯"#, r#"𑖸̴𑖯"#),
+        (r#"𑖹̴𑖯"#, r#"𑖹̴𑖯"#, r#"𑖹̴𑖯"#, r#"𑖹̴𑖯"#, r#"𑖹̴𑖯"#),
+        (r#"𑤵̴𑤰"#, r#"𑤵̴𑤰"#, r#"𑤵̴𑤰"#, r#"𑤵̴𑤰"#, r#"𑤵̴𑤰"#),
     ];
 }
diff --git a/crates/unicode-width/src/tests.rs b/crates/unicode-width/src/tests.rs
deleted file mode 100644
index e49b1bf..0000000
--- a/crates/unicode-width/src/tests.rs
+++ /dev/null
@@ -1,191 +0,0 @@
-// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#[cfg(feature = "bench")]
-use std::iter;
-#[cfg(feature = "bench")]
-use test::{self, Bencher};
-#[cfg(feature = "bench")]
-use super::{UnicodeWidthChar, UnicodeWidthStr};
-
-use std::prelude::v1::*;
-
-#[cfg(feature = "bench")]
-#[bench]
-fn cargo(b: &mut Bencher) {
-    let string = iter::repeat('a').take(4096).collect::<String>();
-
-    b.iter(|| {
-        for c in string.chars() {
-            test::black_box(UnicodeWidthChar::width(c));
-        }
-    });
-}
-
-#[cfg(feature = "bench")]
-#[bench]
-#[allow(deprecated)]
-fn stdlib(b: &mut Bencher) {
-    let string = iter::repeat('a').take(4096).collect::<String>();
-
-    b.iter(|| {
-        for c in string.chars() {
-            test::black_box(c.width());
-        }
-    });
-}
-
-#[cfg(feature = "bench")]
-#[bench]
-fn simple_if(b: &mut Bencher) {
-    let string = iter::repeat('a').take(4096).collect::<String>();
-
-    b.iter(|| {
-        for c in string.chars() {
-            test::black_box(simple_width_if(c));
-        }
-    });
-}
-
-#[cfg(feature = "bench")]
-#[bench]
-fn simple_match(b: &mut Bencher) {
-    let string = iter::repeat('a').take(4096).collect::<String>();
-
-    b.iter(|| {
-        for c in string.chars() {
-            test::black_box(simple_width_match(c));
-        }
-    });
-}
-
-#[cfg(feature = "bench")]
-#[inline]
-fn simple_width_if(c: char) -> Option<usize> {
-    let cu = c as u32;
-    if cu < 127 {
-        if cu > 31 {
-            Some(1)
-        } else if cu == 0 {
-            Some(0)
-        } else {
-            None
-        }
-    } else {
-        UnicodeWidthChar::width(c)
-    }
-}
-
-#[cfg(feature = "bench")]
-#[inline]
-fn simple_width_match(c: char) -> Option<usize> {
-    match c as u32 {
-        cu if cu == 0 => Some(0),
-        cu if cu < 0x20 => None,
-        cu if cu < 0x7f => Some(1),
-        _ => UnicodeWidthChar::width(c)
-    }
-}
-#[cfg(all(feature = "bench", not(feature = "no_std")))]
-#[bench]
-fn enwik8(b: &mut Bencher) {
-    // To benchmark, download & unzip `enwik8` from https://data.deepai.org/enwik8.zip
-    let data_path = "bench_data/enwik8";
-    let string = std::fs::read_to_string(data_path).unwrap_or_default();
-    b.iter(|| test::black_box(UnicodeWidthStr::width(string.as_str())));
-}
-#[cfg(all(feature = "bench", not(feature = "no_std")))]
-#[bench]
-fn jawiki(b: &mut Bencher) {
-    // To benchmark, download & extract `jawiki-20220501-pages-articles-multistream-index.txt` from
-    // https://dumps.wikimedia.org/jawiki/20220501/jawiki-20220501-pages-articles-multistream-index.txt.bz2
-    let data_path = "bench_data/jawiki-20220501-pages-articles-multistream-index.txt";
-    let string = std::fs::read_to_string(data_path).unwrap_or_default();
-    b.iter(|| test::black_box(UnicodeWidthStr::width(string.as_str())));
-}
-#[test]
-fn test_str() {
-    use super::UnicodeWidthStr;
-
-    assert_eq!(UnicodeWidthStr::width("hello"), 10);
-    assert_eq!("hello".width_cjk(), 10);
-    assert_eq!(UnicodeWidthStr::width("\0\0\0\x01\x01"), 0);
-    assert_eq!("\0\0\0\x01\x01".width_cjk(), 0);
-    assert_eq!(UnicodeWidthStr::width(""), 0);
-    assert_eq!("".width_cjk(), 0);
-    assert_eq!(UnicodeWidthStr::width("\u{2081}\u{2082}\u{2083}\u{2084}"), 4);
-    assert_eq!("\u{2081}\u{2082}\u{2083}\u{2084}".width_cjk(), 8);
-}
-
-#[test]
-fn test_emoji() {
-    // Example from the README.
-    use super::UnicodeWidthStr;
-
-    assert_eq!(UnicodeWidthStr::width("👩"), 2); // Woman
-    assert_eq!(UnicodeWidthStr::width("🔬"), 2); // Microscope
-    assert_eq!(UnicodeWidthStr::width("👩‍🔬"), 4); // Woman scientist
-}
-
-#[test]
-fn test_char() {
-    use super::UnicodeWidthChar;
-    #[cfg(feature = "no_std")]
-    use core::option::Option::{Some, None};
-
-    assert_eq!(UnicodeWidthChar::width('h'), Some(2));
-    assert_eq!('h'.width_cjk(), Some(2));
-    assert_eq!(UnicodeWidthChar::width('\x00'), Some(0));
-    assert_eq!('\x00'.width_cjk(), Some(0));
-    assert_eq!(UnicodeWidthChar::width('\x01'), None);
-    assert_eq!('\x01'.width_cjk(), None);
-    assert_eq!(UnicodeWidthChar::width('\u{2081}'), Some(1));
-    assert_eq!('\u{2081}'.width_cjk(), Some(2));
-}
-
-#[test]
-fn test_char2() {
-    use super::UnicodeWidthChar;
-    #[cfg(feature = "no_std")]
-    use core::option::Option::{Some, None};
-
-    assert_eq!(UnicodeWidthChar::width('\x00'),Some(0));
-    assert_eq!('\x00'.width_cjk(),Some(0));
-
-    assert_eq!(UnicodeWidthChar::width('\x0A'),None);
-    assert_eq!('\x0A'.width_cjk(),None);
-
-    assert_eq!(UnicodeWidthChar::width('w'),Some(1));
-    assert_eq!('w'.width_cjk(),Some(1));
-
-    assert_eq!(UnicodeWidthChar::width('h'),Some(2));
-    assert_eq!('h'.width_cjk(),Some(2));
-
-    assert_eq!(UnicodeWidthChar::width('\u{AD}'),Some(1));
-    assert_eq!('\u{AD}'.width_cjk(),Some(1));
-
-    assert_eq!(UnicodeWidthChar::width('\u{1160}'),Some(0));
-    assert_eq!('\u{1160}'.width_cjk(),Some(0));
-
-    assert_eq!(UnicodeWidthChar::width('\u{a1}'),Some(1));
-    assert_eq!('\u{a1}'.width_cjk(),Some(2));
-
-    assert_eq!(UnicodeWidthChar::width('\u{300}'),Some(0));
-    assert_eq!('\u{300}'.width_cjk(),Some(0));
-}
-
-#[test]
-fn unicode_12() {
-    use super::UnicodeWidthChar;
-    #[cfg(feature = "no_std")]
-    use core::option::Option::{Some, None};
-
-    assert_eq!(UnicodeWidthChar::width('\u{1F971}'), Some(2));
-}
diff --git a/crates/unicode-width/tests/emoji-test.txt b/crates/unicode-width/tests/emoji-test.txt
new file mode 100644
index 0000000..1c4d1e7
--- /dev/null
+++ b/crates/unicode-width/tests/emoji-test.txt
@@ -0,0 +1,5325 @@
+# emoji-test.txt
+# Date: 2023-06-05, 21:39:54 GMT
+# © 2023 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
+#
+# Emoji Keyboard/Display Test Data for UTS #51
+# Version: 15.1
+#
+# For documentation and usage, see https://www.unicode.org/reports/tr51
+#
+# This file provides data for testing which emoji forms should be in keyboards and which should also be displayed/processed.
+# Format: code points; status # emoji name
+#     Code points — list of one or more hex code points, separated by spaces
+#     Status
+#       component           — an Emoji_Component,
+#                             excluding Regional_Indicators, ASCII, and non-Emoji.
+#       fully-qualified     — a fully-qualified emoji (see ED-18 in UTS #51),
+#                             excluding Emoji_Component
+#       minimally-qualified — a minimally-qualified emoji (see ED-18a in UTS #51)
+#       unqualified         — a unqualified emoji (See ED-19 in UTS #51)
+# Notes:
+#   • This includes the emoji components that need emoji presentation (skin tone and hair)
+#     when isolated, but omits the components that need not have an emoji
+#     presentation when isolated.
+#   • The RGI set is covered by the listed fully-qualified emoji. 
+#   • The listed minimally-qualified and unqualified cover all cases where an
+#     element of the RGI set is missing one or more emoji presentation selectors.
+#   • The file is in CLDR order, not codepoint order. This is recommended (but not required!) for keyboard palettes.
+#   • The groups and subgroups are illustrative. See the Emoji Order chart for more information.
+
+
+# group: Smileys & Emotion
+
+# subgroup: face-smiling
+1F600                                                  ; fully-qualified     # 😀 E1.0 grinning face
+1F603                                                  ; fully-qualified     # 😃 E0.6 grinning face with big eyes
+1F604                                                  ; fully-qualified     # 😄 E0.6 grinning face with smiling eyes
+1F601                                                  ; fully-qualified     # 😁 E0.6 beaming face with smiling eyes
+1F606                                                  ; fully-qualified     # 😆 E0.6 grinning squinting face
+1F605                                                  ; fully-qualified     # 😅 E0.6 grinning face with sweat
+1F923                                                  ; fully-qualified     # 🤣 E3.0 rolling on the floor laughing
+1F602                                                  ; fully-qualified     # 😂 E0.6 face with tears of joy
+1F642                                                  ; fully-qualified     # 🙂 E1.0 slightly smiling face
+1F643                                                  ; fully-qualified     # 🙃 E1.0 upside-down face
+1FAE0                                                  ; fully-qualified     # 🫠 E14.0 melting face
+1F609                                                  ; fully-qualified     # 😉 E0.6 winking face
+1F60A                                                  ; fully-qualified     # 😊 E0.6 smiling face with smiling eyes
+1F607                                                  ; fully-qualified     # 😇 E1.0 smiling face with halo
+
+# subgroup: face-affection
+1F970                                                  ; fully-qualified     # 🥰 E11.0 smiling face with hearts
+1F60D                                                  ; fully-qualified     # 😍 E0.6 smiling face with heart-eyes
+1F929                                                  ; fully-qualified     # 🤩 E5.0 star-struck
+1F618                                                  ; fully-qualified     # 😘 E0.6 face blowing a kiss
+1F617                                                  ; fully-qualified     # 😗 E1.0 kissing face
+263A FE0F                                              ; fully-qualified     # ☺️ E0.6 smiling face
+263A                                                   ; unqualified         # ☺ E0.6 smiling face
+1F61A                                                  ; fully-qualified     # 😚 E0.6 kissing face with closed eyes
+1F619                                                  ; fully-qualified     # 😙 E1.0 kissing face with smiling eyes
+1F972                                                  ; fully-qualified     # 🥲 E13.0 smiling face with tear
+
+# subgroup: face-tongue
+1F60B                                                  ; fully-qualified     # 😋 E0.6 face savoring food
+1F61B                                                  ; fully-qualified     # 😛 E1.0 face with tongue
+1F61C                                                  ; fully-qualified     # 😜 E0.6 winking face with tongue
+1F92A                                                  ; fully-qualified     # 🤪 E5.0 zany face
+1F61D                                                  ; fully-qualified     # 😝 E0.6 squinting face with tongue
+1F911                                                  ; fully-qualified     # 🤑 E1.0 money-mouth face
+
+# subgroup: face-hand
+1F917                                                  ; fully-qualified     # 🤗 E1.0 smiling face with open hands
+1F92D                                                  ; fully-qualified     # 🤭 E5.0 face with hand over mouth
+1FAE2                                                  ; fully-qualified     # 🫢 E14.0 face with open eyes and hand over mouth
+1FAE3                                                  ; fully-qualified     # 🫣 E14.0 face with peeking eye
+1F92B                                                  ; fully-qualified     # 🤫 E5.0 shushing face
+1F914                                                  ; fully-qualified     # 🤔 E1.0 thinking face
+1FAE1                                                  ; fully-qualified     # 🫡 E14.0 saluting face
+
+# subgroup: face-neutral-skeptical
+1F910                                                  ; fully-qualified     # 🤐 E1.0 zipper-mouth face
+1F928                                                  ; fully-qualified     # 🤨 E5.0 face with raised eyebrow
+1F610                                                  ; fully-qualified     # 😐 E0.7 neutral face
+1F611                                                  ; fully-qualified     # 😑 E1.0 expressionless face
+1F636                                                  ; fully-qualified     # 😶 E1.0 face without mouth
+1FAE5                                                  ; fully-qualified     # 🫥 E14.0 dotted line face
+1F636 200D 1F32B FE0F                                  ; fully-qualified     # 😶‍🌫️ E13.1 face in clouds
+1F636 200D 1F32B                                       ; minimally-qualified # 😶‍🌫 E13.1 face in clouds
+1F60F                                                  ; fully-qualified     # 😏 E0.6 smirking face
+1F612                                                  ; fully-qualified     # 😒 E0.6 unamused face
+1F644                                                  ; fully-qualified     # 🙄 E1.0 face with rolling eyes
+1F62C                                                  ; fully-qualified     # 😬 E1.0 grimacing face
+1F62E 200D 1F4A8                                       ; fully-qualified     # 😮‍💨 E13.1 face exhaling
+1F925                                                  ; fully-qualified     # 🤥 E3.0 lying face
+1FAE8                                                  ; fully-qualified     # 🫨 E15.0 shaking face
+1F642 200D 2194 FE0F                                   ; fully-qualified     # 🙂‍↔️ E15.1 head shaking horizontally
+1F642 200D 2194                                        ; minimally-qualified # 🙂‍↔ E15.1 head shaking horizontally
+1F642 200D 2195 FE0F                                   ; fully-qualified     # 🙂‍↕️ E15.1 head shaking vertically
+1F642 200D 2195                                        ; minimally-qualified # 🙂‍↕ E15.1 head shaking vertically
+
+# subgroup: face-sleepy
+1F60C                                                  ; fully-qualified     # 😌 E0.6 relieved face
+1F614                                                  ; fully-qualified     # 😔 E0.6 pensive face
+1F62A                                                  ; fully-qualified     # 😪 E0.6 sleepy face
+1F924                                                  ; fully-qualified     # 🤤 E3.0 drooling face
+1F634                                                  ; fully-qualified     # 😴 E1.0 sleeping face
+
+# subgroup: face-unwell
+1F637                                                  ; fully-qualified     # 😷 E0.6 face with medical mask
+1F912                                                  ; fully-qualified     # 🤒 E1.0 face with thermometer
+1F915                                                  ; fully-qualified     # 🤕 E1.0 face with head-bandage
+1F922                                                  ; fully-qualified     # 🤢 E3.0 nauseated face
+1F92E                                                  ; fully-qualified     # 🤮 E5.0 face vomiting
+1F927                                                  ; fully-qualified     # 🤧 E3.0 sneezing face
+1F975                                                  ; fully-qualified     # 🥵 E11.0 hot face
+1F976                                                  ; fully-qualified     # 🥶 E11.0 cold face
+1F974                                                  ; fully-qualified     # 🥴 E11.0 woozy face
+1F635                                                  ; fully-qualified     # 😵 E0.6 face with crossed-out eyes
+1F635 200D 1F4AB                                       ; fully-qualified     # 😵‍💫 E13.1 face with spiral eyes
+1F92F                                                  ; fully-qualified     # 🤯 E5.0 exploding head
+
+# subgroup: face-hat
+1F920                                                  ; fully-qualified     # 🤠 E3.0 cowboy hat face
+1F973                                                  ; fully-qualified     # 🥳 E11.0 partying face
+1F978                                                  ; fully-qualified     # 🥸 E13.0 disguised face
+
+# subgroup: face-glasses
+1F60E                                                  ; fully-qualified     # 😎 E1.0 smiling face with sunglasses
+1F913                                                  ; fully-qualified     # 🤓 E1.0 nerd face
+1F9D0                                                  ; fully-qualified     # 🧐 E5.0 face with monocle
+
+# subgroup: face-concerned
+1F615                                                  ; fully-qualified     # 😕 E1.0 confused face
+1FAE4                                                  ; fully-qualified     # 🫤 E14.0 face with diagonal mouth
+1F61F                                                  ; fully-qualified     # 😟 E1.0 worried face
+1F641                                                  ; fully-qualified     # 🙁 E1.0 slightly frowning face
+2639 FE0F                                              ; fully-qualified     # ☹️ E0.7 frowning face
+2639                                                   ; unqualified         # ☹ E0.7 frowning face
+1F62E                                                  ; fully-qualified     # 😮 E1.0 face with open mouth
+1F62F                                                  ; fully-qualified     # 😯 E1.0 hushed face
+1F632                                                  ; fully-qualified     # 😲 E0.6 astonished face
+1F633                                                  ; fully-qualified     # 😳 E0.6 flushed face
+1F97A                                                  ; fully-qualified     # 🥺 E11.0 pleading face
+1F979                                                  ; fully-qualified     # 🥹 E14.0 face holding back tears
+1F626                                                  ; fully-qualified     # 😦 E1.0 frowning face with open mouth
+1F627                                                  ; fully-qualified     # 😧 E1.0 anguished face
+1F628                                                  ; fully-qualified     # 😨 E0.6 fearful face
+1F630                                                  ; fully-qualified     # 😰 E0.6 anxious face with sweat
+1F625                                                  ; fully-qualified     # 😥 E0.6 sad but relieved face
+1F622                                                  ; fully-qualified     # 😢 E0.6 crying face
+1F62D                                                  ; fully-qualified     # 😭 E0.6 loudly crying face
+1F631                                                  ; fully-qualified     # 😱 E0.6 face screaming in fear
+1F616                                                  ; fully-qualified     # 😖 E0.6 confounded face
+1F623                                                  ; fully-qualified     # 😣 E0.6 persevering face
+1F61E                                                  ; fully-qualified     # 😞 E0.6 disappointed face
+1F613                                                  ; fully-qualified     # 😓 E0.6 downcast face with sweat
+1F629                                                  ; fully-qualified     # 😩 E0.6 weary face
+1F62B                                                  ; fully-qualified     # 😫 E0.6 tired face
+1F971                                                  ; fully-qualified     # 🥱 E12.0 yawning face
+
+# subgroup: face-negative
+1F624                                                  ; fully-qualified     # 😤 E0.6 face with steam from nose
+1F621                                                  ; fully-qualified     # 😡 E0.6 enraged face
+1F620                                                  ; fully-qualified     # 😠 E0.6 angry face
+1F92C                                                  ; fully-qualified     # 🤬 E5.0 face with symbols on mouth
+1F608                                                  ; fully-qualified     # 😈 E1.0 smiling face with horns
+1F47F                                                  ; fully-qualified     # 👿 E0.6 angry face with horns
+1F480                                                  ; fully-qualified     # 💀 E0.6 skull
+2620 FE0F                                              ; fully-qualified     # ☠️ E1.0 skull and crossbones
+2620                                                   ; unqualified         # ☠ E1.0 skull and crossbones
+
+# subgroup: face-costume
+1F4A9                                                  ; fully-qualified     # 💩 E0.6 pile of poo
+1F921                                                  ; fully-qualified     # 🤡 E3.0 clown face
+1F479                                                  ; fully-qualified     # 👹 E0.6 ogre
+1F47A                                                  ; fully-qualified     # 👺 E0.6 goblin
+1F47B                                                  ; fully-qualified     # 👻 E0.6 ghost
+1F47D                                                  ; fully-qualified     # 👽 E0.6 alien
+1F47E                                                  ; fully-qualified     # 👾 E0.6 alien monster
+1F916                                                  ; fully-qualified     # 🤖 E1.0 robot
+
+# subgroup: cat-face
+1F63A                                                  ; fully-qualified     # 😺 E0.6 grinning cat
+1F638                                                  ; fully-qualified     # 😸 E0.6 grinning cat with smiling eyes
+1F639                                                  ; fully-qualified     # 😹 E0.6 cat with tears of joy
+1F63B                                                  ; fully-qualified     # 😻 E0.6 smiling cat with heart-eyes
+1F63C                                                  ; fully-qualified     # 😼 E0.6 cat with wry smile
+1F63D                                                  ; fully-qualified     # 😽 E0.6 kissing cat
+1F640                                                  ; fully-qualified     # 🙀 E0.6 weary cat
+1F63F                                                  ; fully-qualified     # 😿 E0.6 crying cat
+1F63E                                                  ; fully-qualified     # 😾 E0.6 pouting cat
+
+# subgroup: monkey-face
+1F648                                                  ; fully-qualified     # 🙈 E0.6 see-no-evil monkey
+1F649                                                  ; fully-qualified     # 🙉 E0.6 hear-no-evil monkey
+1F64A                                                  ; fully-qualified     # 🙊 E0.6 speak-no-evil monkey
+
+# subgroup: heart
+1F48C                                                  ; fully-qualified     # 💌 E0.6 love letter
+1F498                                                  ; fully-qualified     # 💘 E0.6 heart with arrow
+1F49D                                                  ; fully-qualified     # 💝 E0.6 heart with ribbon
+1F496                                                  ; fully-qualified     # 💖 E0.6 sparkling heart
+1F497                                                  ; fully-qualified     # 💗 E0.6 growing heart
+1F493                                                  ; fully-qualified     # 💓 E0.6 beating heart
+1F49E                                                  ; fully-qualified     # 💞 E0.6 revolving hearts
+1F495                                                  ; fully-qualified     # 💕 E0.6 two hearts
+1F49F                                                  ; fully-qualified     # 💟 E0.6 heart decoration
+2763 FE0F                                              ; fully-qualified     # ❣️ E1.0 heart exclamation
+2763                                                   ; unqualified         # ❣ E1.0 heart exclamation
+1F494                                                  ; fully-qualified     # 💔 E0.6 broken heart
+2764 FE0F 200D 1F525                                   ; fully-qualified     # ❤️‍🔥 E13.1 heart on fire
+2764 200D 1F525                                        ; unqualified         # ❤‍🔥 E13.1 heart on fire
+2764 FE0F 200D 1FA79                                   ; fully-qualified     # ❤️‍🩹 E13.1 mending heart
+2764 200D 1FA79                                        ; unqualified         # ❤‍🩹 E13.1 mending heart
+2764 FE0F                                              ; fully-qualified     # ❤️ E0.6 red heart
+2764                                                   ; unqualified         # ❤ E0.6 red heart
+1FA77                                                  ; fully-qualified     # 🩷 E15.0 pink heart
+1F9E1                                                  ; fully-qualified     # 🧡 E5.0 orange heart
+1F49B                                                  ; fully-qualified     # 💛 E0.6 yellow heart
+1F49A                                                  ; fully-qualified     # 💚 E0.6 green heart
+1F499                                                  ; fully-qualified     # 💙 E0.6 blue heart
+1FA75                                                  ; fully-qualified     # 🩵 E15.0 light blue heart
+1F49C                                                  ; fully-qualified     # 💜 E0.6 purple heart
+1F90E                                                  ; fully-qualified     # 🤎 E12.0 brown heart
+1F5A4                                                  ; fully-qualified     # 🖤 E3.0 black heart
+1FA76                                                  ; fully-qualified     # 🩶 E15.0 grey heart
+1F90D                                                  ; fully-qualified     # 🤍 E12.0 white heart
+
+# subgroup: emotion
+1F48B                                                  ; fully-qualified     # 💋 E0.6 kiss mark
+1F4AF                                                  ; fully-qualified     # 💯 E0.6 hundred points
+1F4A2                                                  ; fully-qualified     # 💢 E0.6 anger symbol
+1F4A5                                                  ; fully-qualified     # 💥 E0.6 collision
+1F4AB                                                  ; fully-qualified     # 💫 E0.6 dizzy
+1F4A6                                                  ; fully-qualified     # 💦 E0.6 sweat droplets
+1F4A8                                                  ; fully-qualified     # 💨 E0.6 dashing away
+1F573 FE0F                                             ; fully-qualified     # 🕳️ E0.7 hole
+1F573                                                  ; unqualified         # 🕳 E0.7 hole
+1F4AC                                                  ; fully-qualified     # 💬 E0.6 speech balloon
+1F441 FE0F 200D 1F5E8 FE0F                             ; fully-qualified     # 👁️‍🗨️ E2.0 eye in speech bubble
+1F441 200D 1F5E8 FE0F                                  ; unqualified         # 👁‍🗨️ E2.0 eye in speech bubble
+1F441 FE0F 200D 1F5E8                                  ; minimally-qualified # 👁️‍🗨 E2.0 eye in speech bubble
+1F441 200D 1F5E8                                       ; unqualified         # 👁‍🗨 E2.0 eye in speech bubble
+1F5E8 FE0F                                             ; fully-qualified     # 🗨️ E2.0 left speech bubble
+1F5E8                                                  ; unqualified         # 🗨 E2.0 left speech bubble
+1F5EF FE0F                                             ; fully-qualified     # 🗯️ E0.7 right anger bubble
+1F5EF                                                  ; unqualified         # 🗯 E0.7 right anger bubble
+1F4AD                                                  ; fully-qualified     # 💭 E1.0 thought balloon
+1F4A4                                                  ; fully-qualified     # 💤 E0.6 ZZZ
+
+# Smileys & Emotion subtotal:		184
+# Smileys & Emotion subtotal:		184	w/o modifiers
+
+# group: People & Body
+
+# subgroup: hand-fingers-open
+1F44B                                                  ; fully-qualified     # 👋 E0.6 waving hand
+1F44B 1F3FB                                            ; fully-qualified     # 👋🏻 E1.0 waving hand: light skin tone
+1F44B 1F3FC                                            ; fully-qualified     # 👋🏼 E1.0 waving hand: medium-light skin tone
+1F44B 1F3FD                                            ; fully-qualified     # 👋🏽 E1.0 waving hand: medium skin tone
+1F44B 1F3FE                                            ; fully-qualified     # 👋🏾 E1.0 waving hand: medium-dark skin tone
+1F44B 1F3FF                                            ; fully-qualified     # 👋🏿 E1.0 waving hand: dark skin tone
+1F91A                                                  ; fully-qualified     # 🤚 E3.0 raised back of hand
+1F91A 1F3FB                                            ; fully-qualified     # 🤚🏻 E3.0 raised back of hand: light skin tone
+1F91A 1F3FC                                            ; fully-qualified     # 🤚🏼 E3.0 raised back of hand: medium-light skin tone
+1F91A 1F3FD                                            ; fully-qualified     # 🤚🏽 E3.0 raised back of hand: medium skin tone
+1F91A 1F3FE                                            ; fully-qualified     # 🤚🏾 E3.0 raised back of hand: medium-dark skin tone
+1F91A 1F3FF                                            ; fully-qualified     # 🤚🏿 E3.0 raised back of hand: dark skin tone
+1F590 FE0F                                             ; fully-qualified     # 🖐️ E0.7 hand with fingers splayed
+1F590                                                  ; unqualified         # 🖐 E0.7 hand with fingers splayed
+1F590 1F3FB                                            ; fully-qualified     # 🖐🏻 E1.0 hand with fingers splayed: light skin tone
+1F590 1F3FC                                            ; fully-qualified     # 🖐🏼 E1.0 hand with fingers splayed: medium-light skin tone
+1F590 1F3FD                                            ; fully-qualified     # 🖐🏽 E1.0 hand with fingers splayed: medium skin tone
+1F590 1F3FE                                            ; fully-qualified     # 🖐🏾 E1.0 hand with fingers splayed: medium-dark skin tone
+1F590 1F3FF                                            ; fully-qualified     # 🖐🏿 E1.0 hand with fingers splayed: dark skin tone
+270B                                                   ; fully-qualified     # ✋ E0.6 raised hand
+270B 1F3FB                                             ; fully-qualified     # ✋🏻 E1.0 raised hand: light skin tone
+270B 1F3FC                                             ; fully-qualified     # ✋🏼 E1.0 raised hand: medium-light skin tone
+270B 1F3FD                                             ; fully-qualified     # ✋🏽 E1.0 raised hand: medium skin tone
+270B 1F3FE                                             ; fully-qualified     # ✋🏾 E1.0 raised hand: medium-dark skin tone
+270B 1F3FF                                             ; fully-qualified     # ✋🏿 E1.0 raised hand: dark skin tone
+1F596                                                  ; fully-qualified     # 🖖 E1.0 vulcan salute
+1F596 1F3FB                                            ; fully-qualified     # 🖖🏻 E1.0 vulcan salute: light skin tone
+1F596 1F3FC                                            ; fully-qualified     # 🖖🏼 E1.0 vulcan salute: medium-light skin tone
+1F596 1F3FD                                            ; fully-qualified     # 🖖🏽 E1.0 vulcan salute: medium skin tone
+1F596 1F3FE                                            ; fully-qualified     # 🖖🏾 E1.0 vulcan salute: medium-dark skin tone
+1F596 1F3FF                                            ; fully-qualified     # 🖖🏿 E1.0 vulcan salute: dark skin tone
+1FAF1                                                  ; fully-qualified     # 🫱 E14.0 rightwards hand
+1FAF1 1F3FB                                            ; fully-qualified     # 🫱🏻 E14.0 rightwards hand: light skin tone
+1FAF1 1F3FC                                            ; fully-qualified     # 🫱🏼 E14.0 rightwards hand: medium-light skin tone
+1FAF1 1F3FD                                            ; fully-qualified     # 🫱🏽 E14.0 rightwards hand: medium skin tone
+1FAF1 1F3FE                                            ; fully-qualified     # 🫱🏾 E14.0 rightwards hand: medium-dark skin tone
+1FAF1 1F3FF                                            ; fully-qualified     # 🫱🏿 E14.0 rightwards hand: dark skin tone
+1FAF2                                                  ; fully-qualified     # 🫲 E14.0 leftwards hand
+1FAF2 1F3FB                                            ; fully-qualified     # 🫲🏻 E14.0 leftwards hand: light skin tone
+1FAF2 1F3FC                                            ; fully-qualified     # 🫲🏼 E14.0 leftwards hand: medium-light skin tone
+1FAF2 1F3FD                                            ; fully-qualified     # 🫲🏽 E14.0 leftwards hand: medium skin tone
+1FAF2 1F3FE                                            ; fully-qualified     # 🫲🏾 E14.0 leftwards hand: medium-dark skin tone
+1FAF2 1F3FF                                            ; fully-qualified     # 🫲🏿 E14.0 leftwards hand: dark skin tone
+1FAF3                                                  ; fully-qualified     # 🫳 E14.0 palm down hand
+1FAF3 1F3FB                                            ; fully-qualified     # 🫳🏻 E14.0 palm down hand: light skin tone
+1FAF3 1F3FC                                            ; fully-qualified     # 🫳🏼 E14.0 palm down hand: medium-light skin tone
+1FAF3 1F3FD                                            ; fully-qualified     # 🫳🏽 E14.0 palm down hand: medium skin tone
+1FAF3 1F3FE                                            ; fully-qualified     # 🫳🏾 E14.0 palm down hand: medium-dark skin tone
+1FAF3 1F3FF                                            ; fully-qualified     # 🫳🏿 E14.0 palm down hand: dark skin tone
+1FAF4                                                  ; fully-qualified     # 🫴 E14.0 palm up hand
+1FAF4 1F3FB                                            ; fully-qualified     # 🫴🏻 E14.0 palm up hand: light skin tone
+1FAF4 1F3FC                                            ; fully-qualified     # 🫴🏼 E14.0 palm up hand: medium-light skin tone
+1FAF4 1F3FD                                            ; fully-qualified     # 🫴🏽 E14.0 palm up hand: medium skin tone
+1FAF4 1F3FE                                            ; fully-qualified     # 🫴🏾 E14.0 palm up hand: medium-dark skin tone
+1FAF4 1F3FF                                            ; fully-qualified     # 🫴🏿 E14.0 palm up hand: dark skin tone
+1FAF7                                                  ; fully-qualified     # 🫷 E15.0 leftwards pushing hand
+1FAF7 1F3FB                                            ; fully-qualified     # 🫷🏻 E15.0 leftwards pushing hand: light skin tone
+1FAF7 1F3FC                                            ; fully-qualified     # 🫷🏼 E15.0 leftwards pushing hand: medium-light skin tone
+1FAF7 1F3FD                                            ; fully-qualified     # 🫷🏽 E15.0 leftwards pushing hand: medium skin tone
+1FAF7 1F3FE                                            ; fully-qualified     # 🫷🏾 E15.0 leftwards pushing hand: medium-dark skin tone
+1FAF7 1F3FF                                            ; fully-qualified     # 🫷🏿 E15.0 leftwards pushing hand: dark skin tone
+1FAF8                                                  ; fully-qualified     # 🫸 E15.0 rightwards pushing hand
+1FAF8 1F3FB                                            ; fully-qualified     # 🫸🏻 E15.0 rightwards pushing hand: light skin tone
+1FAF8 1F3FC                                            ; fully-qualified     # 🫸🏼 E15.0 rightwards pushing hand: medium-light skin tone
+1FAF8 1F3FD                                            ; fully-qualified     # 🫸🏽 E15.0 rightwards pushing hand: medium skin tone
+1FAF8 1F3FE                                            ; fully-qualified     # 🫸🏾 E15.0 rightwards pushing hand: medium-dark skin tone
+1FAF8 1F3FF                                            ; fully-qualified     # 🫸🏿 E15.0 rightwards pushing hand: dark skin tone
+
+# subgroup: hand-fingers-partial
+1F44C                                                  ; fully-qualified     # 👌 E0.6 OK hand
+1F44C 1F3FB                                            ; fully-qualified     # 👌🏻 E1.0 OK hand: light skin tone
+1F44C 1F3FC                                            ; fully-qualified     # 👌🏼 E1.0 OK hand: medium-light skin tone
+1F44C 1F3FD                                            ; fully-qualified     # 👌🏽 E1.0 OK hand: medium skin tone
+1F44C 1F3FE                                            ; fully-qualified     # 👌🏾 E1.0 OK hand: medium-dark skin tone
+1F44C 1F3FF                                            ; fully-qualified     # 👌🏿 E1.0 OK hand: dark skin tone
+1F90C                                                  ; fully-qualified     # 🤌 E13.0 pinched fingers
+1F90C 1F3FB                                            ; fully-qualified     # 🤌🏻 E13.0 pinched fingers: light skin tone
+1F90C 1F3FC                                            ; fully-qualified     # 🤌🏼 E13.0 pinched fingers: medium-light skin tone
+1F90C 1F3FD                                            ; fully-qualified     # 🤌🏽 E13.0 pinched fingers: medium skin tone
+1F90C 1F3FE                                            ; fully-qualified     # 🤌🏾 E13.0 pinched fingers: medium-dark skin tone
+1F90C 1F3FF                                            ; fully-qualified     # 🤌🏿 E13.0 pinched fingers: dark skin tone
+1F90F                                                  ; fully-qualified     # 🤏 E12.0 pinching hand
+1F90F 1F3FB                                            ; fully-qualified     # 🤏🏻 E12.0 pinching hand: light skin tone
+1F90F 1F3FC                                            ; fully-qualified     # 🤏🏼 E12.0 pinching hand: medium-light skin tone
+1F90F 1F3FD                                            ; fully-qualified     # 🤏🏽 E12.0 pinching hand: medium skin tone
+1F90F 1F3FE                                            ; fully-qualified     # 🤏🏾 E12.0 pinching hand: medium-dark skin tone
+1F90F 1F3FF                                            ; fully-qualified     # 🤏🏿 E12.0 pinching hand: dark skin tone
+270C FE0F                                              ; fully-qualified     # ✌️ E0.6 victory hand
+270C                                                   ; unqualified         # ✌ E0.6 victory hand
+270C 1F3FB                                             ; fully-qualified     # ✌🏻 E1.0 victory hand: light skin tone
+270C 1F3FC                                             ; fully-qualified     # ✌🏼 E1.0 victory hand: medium-light skin tone
+270C 1F3FD                                             ; fully-qualified     # ✌🏽 E1.0 victory hand: medium skin tone
+270C 1F3FE                                             ; fully-qualified     # ✌🏾 E1.0 victory hand: medium-dark skin tone
+270C 1F3FF                                             ; fully-qualified     # ✌🏿 E1.0 victory hand: dark skin tone
+1F91E                                                  ; fully-qualified     # 🤞 E3.0 crossed fingers
+1F91E 1F3FB                                            ; fully-qualified     # 🤞🏻 E3.0 crossed fingers: light skin tone
+1F91E 1F3FC                                            ; fully-qualified     # 🤞🏼 E3.0 crossed fingers: medium-light skin tone
+1F91E 1F3FD                                            ; fully-qualified     # 🤞🏽 E3.0 crossed fingers: medium skin tone
+1F91E 1F3FE                                            ; fully-qualified     # 🤞🏾 E3.0 crossed fingers: medium-dark skin tone
+1F91E 1F3FF                                            ; fully-qualified     # 🤞🏿 E3.0 crossed fingers: dark skin tone
+1FAF0                                                  ; fully-qualified     # 🫰 E14.0 hand with index finger and thumb crossed
+1FAF0 1F3FB                                            ; fully-qualified     # 🫰🏻 E14.0 hand with index finger and thumb crossed: light skin tone
+1FAF0 1F3FC                                            ; fully-qualified     # 🫰🏼 E14.0 hand with index finger and thumb crossed: medium-light skin tone
+1FAF0 1F3FD                                            ; fully-qualified     # 🫰🏽 E14.0 hand with index finger and thumb crossed: medium skin tone
+1FAF0 1F3FE                                            ; fully-qualified     # 🫰🏾 E14.0 hand with index finger and thumb crossed: medium-dark skin tone
+1FAF0 1F3FF                                            ; fully-qualified     # 🫰🏿 E14.0 hand with index finger and thumb crossed: dark skin tone
+1F91F                                                  ; fully-qualified     # 🤟 E5.0 love-you gesture
+1F91F 1F3FB                                            ; fully-qualified     # 🤟🏻 E5.0 love-you gesture: light skin tone
+1F91F 1F3FC                                            ; fully-qualified     # 🤟🏼 E5.0 love-you gesture: medium-light skin tone
+1F91F 1F3FD                                            ; fully-qualified     # 🤟🏽 E5.0 love-you gesture: medium skin tone
+1F91F 1F3FE                                            ; fully-qualified     # 🤟🏾 E5.0 love-you gesture: medium-dark skin tone
+1F91F 1F3FF                                            ; fully-qualified     # 🤟🏿 E5.0 love-you gesture: dark skin tone
+1F918                                                  ; fully-qualified     # 🤘 E1.0 sign of the horns
+1F918 1F3FB                                            ; fully-qualified     # 🤘🏻 E1.0 sign of the horns: light skin tone
+1F918 1F3FC                                            ; fully-qualified     # 🤘🏼 E1.0 sign of the horns: medium-light skin tone
+1F918 1F3FD                                            ; fully-qualified     # 🤘🏽 E1.0 sign of the horns: medium skin tone
+1F918 1F3FE                                            ; fully-qualified     # 🤘🏾 E1.0 sign of the horns: medium-dark skin tone
+1F918 1F3FF                                            ; fully-qualified     # 🤘🏿 E1.0 sign of the horns: dark skin tone
+1F919                                                  ; fully-qualified     # 🤙 E3.0 call me hand
+1F919 1F3FB                                            ; fully-qualified     # 🤙🏻 E3.0 call me hand: light skin tone
+1F919 1F3FC                                            ; fully-qualified     # 🤙🏼 E3.0 call me hand: medium-light skin tone
+1F919 1F3FD                                            ; fully-qualified     # 🤙🏽 E3.0 call me hand: medium skin tone
+1F919 1F3FE                                            ; fully-qualified     # 🤙🏾 E3.0 call me hand: medium-dark skin tone
+1F919 1F3FF                                            ; fully-qualified     # 🤙🏿 E3.0 call me hand: dark skin tone
+
+# subgroup: hand-single-finger
+1F448                                                  ; fully-qualified     # 👈 E0.6 backhand index pointing left
+1F448 1F3FB                                            ; fully-qualified     # 👈🏻 E1.0 backhand index pointing left: light skin tone
+1F448 1F3FC                                            ; fully-qualified     # 👈🏼 E1.0 backhand index pointing left: medium-light skin tone
+1F448 1F3FD                                            ; fully-qualified     # 👈🏽 E1.0 backhand index pointing left: medium skin tone
+1F448 1F3FE                                            ; fully-qualified     # 👈🏾 E1.0 backhand index pointing left: medium-dark skin tone
+1F448 1F3FF                                            ; fully-qualified     # 👈🏿 E1.0 backhand index pointing left: dark skin tone
+1F449                                                  ; fully-qualified     # 👉 E0.6 backhand index pointing right
+1F449 1F3FB                                            ; fully-qualified     # 👉🏻 E1.0 backhand index pointing right: light skin tone
+1F449 1F3FC                                            ; fully-qualified     # 👉🏼 E1.0 backhand index pointing right: medium-light skin tone
+1F449 1F3FD                                            ; fully-qualified     # 👉🏽 E1.0 backhand index pointing right: medium skin tone
+1F449 1F3FE                                            ; fully-qualified     # 👉🏾 E1.0 backhand index pointing right: medium-dark skin tone
+1F449 1F3FF                                            ; fully-qualified     # 👉🏿 E1.0 backhand index pointing right: dark skin tone
+1F446                                                  ; fully-qualified     # 👆 E0.6 backhand index pointing up
+1F446 1F3FB                                            ; fully-qualified     # 👆🏻 E1.0 backhand index pointing up: light skin tone
+1F446 1F3FC                                            ; fully-qualified     # 👆🏼 E1.0 backhand index pointing up: medium-light skin tone
+1F446 1F3FD                                            ; fully-qualified     # 👆🏽 E1.0 backhand index pointing up: medium skin tone
+1F446 1F3FE                                            ; fully-qualified     # 👆🏾 E1.0 backhand index pointing up: medium-dark skin tone
+1F446 1F3FF                                            ; fully-qualified     # 👆🏿 E1.0 backhand index pointing up: dark skin tone
+1F595                                                  ; fully-qualified     # 🖕 E1.0 middle finger
+1F595 1F3FB                                            ; fully-qualified     # 🖕🏻 E1.0 middle finger: light skin tone
+1F595 1F3FC                                            ; fully-qualified     # 🖕🏼 E1.0 middle finger: medium-light skin tone
+1F595 1F3FD                                            ; fully-qualified     # 🖕🏽 E1.0 middle finger: medium skin tone
+1F595 1F3FE                                            ; fully-qualified     # 🖕🏾 E1.0 middle finger: medium-dark skin tone
+1F595 1F3FF                                            ; fully-qualified     # 🖕🏿 E1.0 middle finger: dark skin tone
+1F447                                                  ; fully-qualified     # 👇 E0.6 backhand index pointing down
+1F447 1F3FB                                            ; fully-qualified     # 👇🏻 E1.0 backhand index pointing down: light skin tone
+1F447 1F3FC                                            ; fully-qualified     # 👇🏼 E1.0 backhand index pointing down: medium-light skin tone
+1F447 1F3FD                                            ; fully-qualified     # 👇🏽 E1.0 backhand index pointing down: medium skin tone
+1F447 1F3FE                                            ; fully-qualified     # 👇🏾 E1.0 backhand index pointing down: medium-dark skin tone
+1F447 1F3FF                                            ; fully-qualified     # 👇🏿 E1.0 backhand index pointing down: dark skin tone
+261D FE0F                                              ; fully-qualified     # ☝️ E0.6 index pointing up
+261D                                                   ; unqualified         # ☝ E0.6 index pointing up
+261D 1F3FB                                             ; fully-qualified     # ☝🏻 E1.0 index pointing up: light skin tone
+261D 1F3FC                                             ; fully-qualified     # ☝🏼 E1.0 index pointing up: medium-light skin tone
+261D 1F3FD                                             ; fully-qualified     # ☝🏽 E1.0 index pointing up: medium skin tone
+261D 1F3FE                                             ; fully-qualified     # ☝🏾 E1.0 index pointing up: medium-dark skin tone
+261D 1F3FF                                             ; fully-qualified     # ☝🏿 E1.0 index pointing up: dark skin tone
+1FAF5                                                  ; fully-qualified     # 🫵 E14.0 index pointing at the viewer
+1FAF5 1F3FB                                            ; fully-qualified     # 🫵🏻 E14.0 index pointing at the viewer: light skin tone
+1FAF5 1F3FC                                            ; fully-qualified     # 🫵🏼 E14.0 index pointing at the viewer: medium-light skin tone
+1FAF5 1F3FD                                            ; fully-qualified     # 🫵🏽 E14.0 index pointing at the viewer: medium skin tone
+1FAF5 1F3FE                                            ; fully-qualified     # 🫵🏾 E14.0 index pointing at the viewer: medium-dark skin tone
+1FAF5 1F3FF                                            ; fully-qualified     # 🫵🏿 E14.0 index pointing at the viewer: dark skin tone
+
+# subgroup: hand-fingers-closed
+1F44D                                                  ; fully-qualified     # 👍 E0.6 thumbs up
+1F44D 1F3FB                                            ; fully-qualified     # 👍🏻 E1.0 thumbs up: light skin tone
+1F44D 1F3FC                                            ; fully-qualified     # 👍🏼 E1.0 thumbs up: medium-light skin tone
+1F44D 1F3FD                                            ; fully-qualified     # 👍🏽 E1.0 thumbs up: medium skin tone
+1F44D 1F3FE                                            ; fully-qualified     # 👍🏾 E1.0 thumbs up: medium-dark skin tone
+1F44D 1F3FF                                            ; fully-qualified     # 👍🏿 E1.0 thumbs up: dark skin tone
+1F44E                                                  ; fully-qualified     # 👎 E0.6 thumbs down
+1F44E 1F3FB                                            ; fully-qualified     # 👎🏻 E1.0 thumbs down: light skin tone
+1F44E 1F3FC                                            ; fully-qualified     # 👎🏼 E1.0 thumbs down: medium-light skin tone
+1F44E 1F3FD                                            ; fully-qualified     # 👎🏽 E1.0 thumbs down: medium skin tone
+1F44E 1F3FE                                            ; fully-qualified     # 👎🏾 E1.0 thumbs down: medium-dark skin tone
+1F44E 1F3FF                                            ; fully-qualified     # 👎🏿 E1.0 thumbs down: dark skin tone
+270A                                                   ; fully-qualified     # ✊ E0.6 raised fist
+270A 1F3FB                                             ; fully-qualified     # ✊🏻 E1.0 raised fist: light skin tone
+270A 1F3FC                                             ; fully-qualified     # ✊🏼 E1.0 raised fist: medium-light skin tone
+270A 1F3FD                                             ; fully-qualified     # ✊🏽 E1.0 raised fist: medium skin tone
+270A 1F3FE                                             ; fully-qualified     # ✊🏾 E1.0 raised fist: medium-dark skin tone
+270A 1F3FF                                             ; fully-qualified     # ✊🏿 E1.0 raised fist: dark skin tone
+1F44A                                                  ; fully-qualified     # 👊 E0.6 oncoming fist
+1F44A 1F3FB                                            ; fully-qualified     # 👊🏻 E1.0 oncoming fist: light skin tone
+1F44A 1F3FC                                            ; fully-qualified     # 👊🏼 E1.0 oncoming fist: medium-light skin tone
+1F44A 1F3FD                                            ; fully-qualified     # 👊🏽 E1.0 oncoming fist: medium skin tone
+1F44A 1F3FE                                            ; fully-qualified     # 👊🏾 E1.0 oncoming fist: medium-dark skin tone
+1F44A 1F3FF                                            ; fully-qualified     # 👊🏿 E1.0 oncoming fist: dark skin tone
+1F91B                                                  ; fully-qualified     # 🤛 E3.0 left-facing fist
+1F91B 1F3FB                                            ; fully-qualified     # 🤛🏻 E3.0 left-facing fist: light skin tone
+1F91B 1F3FC                                            ; fully-qualified     # 🤛🏼 E3.0 left-facing fist: medium-light skin tone
+1F91B 1F3FD                                            ; fully-qualified     # 🤛🏽 E3.0 left-facing fist: medium skin tone
+1F91B 1F3FE                                            ; fully-qualified     # 🤛🏾 E3.0 left-facing fist: medium-dark skin tone
+1F91B 1F3FF                                            ; fully-qualified     # 🤛🏿 E3.0 left-facing fist: dark skin tone
+1F91C                                                  ; fully-qualified     # 🤜 E3.0 right-facing fist
+1F91C 1F3FB                                            ; fully-qualified     # 🤜🏻 E3.0 right-facing fist: light skin tone
+1F91C 1F3FC                                            ; fully-qualified     # 🤜🏼 E3.0 right-facing fist: medium-light skin tone
+1F91C 1F3FD                                            ; fully-qualified     # 🤜🏽 E3.0 right-facing fist: medium skin tone
+1F91C 1F3FE                                            ; fully-qualified     # 🤜🏾 E3.0 right-facing fist: medium-dark skin tone
+1F91C 1F3FF                                            ; fully-qualified     # 🤜🏿 E3.0 right-facing fist: dark skin tone
+
+# subgroup: hands
+1F44F                                                  ; fully-qualified     # 👏 E0.6 clapping hands
+1F44F 1F3FB                                            ; fully-qualified     # 👏🏻 E1.0 clapping hands: light skin tone
+1F44F 1F3FC                                            ; fully-qualified     # 👏🏼 E1.0 clapping hands: medium-light skin tone
+1F44F 1F3FD                                            ; fully-qualified     # 👏🏽 E1.0 clapping hands: medium skin tone
+1F44F 1F3FE                                            ; fully-qualified     # 👏🏾 E1.0 clapping hands: medium-dark skin tone
+1F44F 1F3FF                                            ; fully-qualified     # 👏🏿 E1.0 clapping hands: dark skin tone
+1F64C                                                  ; fully-qualified     # 🙌 E0.6 raising hands
+1F64C 1F3FB                                            ; fully-qualified     # 🙌🏻 E1.0 raising hands: light skin tone
+1F64C 1F3FC                                            ; fully-qualified     # 🙌🏼 E1.0 raising hands: medium-light skin tone
+1F64C 1F3FD                                            ; fully-qualified     # 🙌🏽 E1.0 raising hands: medium skin tone
+1F64C 1F3FE                                            ; fully-qualified     # 🙌🏾 E1.0 raising hands: medium-dark skin tone
+1F64C 1F3FF                                            ; fully-qualified     # 🙌🏿 E1.0 raising hands: dark skin tone
+1FAF6                                                  ; fully-qualified     # 🫶 E14.0 heart hands
+1FAF6 1F3FB                                            ; fully-qualified     # 🫶🏻 E14.0 heart hands: light skin tone
+1FAF6 1F3FC                                            ; fully-qualified     # 🫶🏼 E14.0 heart hands: medium-light skin tone
+1FAF6 1F3FD                                            ; fully-qualified     # 🫶🏽 E14.0 heart hands: medium skin tone
+1FAF6 1F3FE                                            ; fully-qualified     # 🫶🏾 E14.0 heart hands: medium-dark skin tone
+1FAF6 1F3FF                                            ; fully-qualified     # 🫶🏿 E14.0 heart hands: dark skin tone
+1F450                                                  ; fully-qualified     # 👐 E0.6 open hands
+1F450 1F3FB                                            ; fully-qualified     # 👐🏻 E1.0 open hands: light skin tone
+1F450 1F3FC                                            ; fully-qualified     # 👐🏼 E1.0 open hands: medium-light skin tone
+1F450 1F3FD                                            ; fully-qualified     # 👐🏽 E1.0 open hands: medium skin tone
+1F450 1F3FE                                            ; fully-qualified     # 👐🏾 E1.0 open hands: medium-dark skin tone
+1F450 1F3FF                                            ; fully-qualified     # 👐🏿 E1.0 open hands: dark skin tone
+1F932                                                  ; fully-qualified     # 🤲 E5.0 palms up together
+1F932 1F3FB                                            ; fully-qualified     # 🤲🏻 E5.0 palms up together: light skin tone
+1F932 1F3FC                                            ; fully-qualified     # 🤲🏼 E5.0 palms up together: medium-light skin tone
+1F932 1F3FD                                            ; fully-qualified     # 🤲🏽 E5.0 palms up together: medium skin tone
+1F932 1F3FE                                            ; fully-qualified     # 🤲🏾 E5.0 palms up together: medium-dark skin tone
+1F932 1F3FF                                            ; fully-qualified     # 🤲🏿 E5.0 palms up together: dark skin tone
+1F91D                                                  ; fully-qualified     # 🤝 E3.0 handshake
+1F91D 1F3FB                                            ; fully-qualified     # 🤝🏻 E14.0 handshake: light skin tone
+1F91D 1F3FC                                            ; fully-qualified     # 🤝🏼 E14.0 handshake: medium-light skin tone
+1F91D 1F3FD                                            ; fully-qualified     # 🤝🏽 E14.0 handshake: medium skin tone
+1F91D 1F3FE                                            ; fully-qualified     # 🤝🏾 E14.0 handshake: medium-dark skin tone
+1F91D 1F3FF                                            ; fully-qualified     # 🤝🏿 E14.0 handshake: dark skin tone
+1FAF1 1F3FB 200D 1FAF2 1F3FC                           ; fully-qualified     # 🫱🏻‍🫲🏼 E14.0 handshake: light skin tone, medium-light skin tone
+1FAF1 1F3FB 200D 1FAF2 1F3FD                           ; fully-qualified     # 🫱🏻‍🫲🏽 E14.0 handshake: light skin tone, medium skin tone
+1FAF1 1F3FB 200D 1FAF2 1F3FE                           ; fully-qualified     # 🫱🏻‍🫲🏾 E14.0 handshake: light skin tone, medium-dark skin tone
+1FAF1 1F3FB 200D 1FAF2 1F3FF                           ; fully-qualified     # 🫱🏻‍🫲🏿 E14.0 handshake: light skin tone, dark skin tone
+1FAF1 1F3FC 200D 1FAF2 1F3FB                           ; fully-qualified     # 🫱🏼‍🫲🏻 E14.0 handshake: medium-light skin tone, light skin tone
+1FAF1 1F3FC 200D 1FAF2 1F3FD                           ; fully-qualified     # 🫱🏼‍🫲🏽 E14.0 handshake: medium-light skin tone, medium skin tone
+1FAF1 1F3FC 200D 1FAF2 1F3FE                           ; fully-qualified     # 🫱🏼‍🫲🏾 E14.0 handshake: medium-light skin tone, medium-dark skin tone
+1FAF1 1F3FC 200D 1FAF2 1F3FF                           ; fully-qualified     # 🫱🏼‍🫲🏿 E14.0 handshake: medium-light skin tone, dark skin tone
+1FAF1 1F3FD 200D 1FAF2 1F3FB                           ; fully-qualified     # 🫱🏽‍🫲🏻 E14.0 handshake: medium skin tone, light skin tone
+1FAF1 1F3FD 200D 1FAF2 1F3FC                           ; fully-qualified     # 🫱🏽‍🫲🏼 E14.0 handshake: medium skin tone, medium-light skin tone
+1FAF1 1F3FD 200D 1FAF2 1F3FE                           ; fully-qualified     # 🫱🏽‍🫲🏾 E14.0 handshake: medium skin tone, medium-dark skin tone
+1FAF1 1F3FD 200D 1FAF2 1F3FF                           ; fully-qualified     # 🫱🏽‍🫲🏿 E14.0 handshake: medium skin tone, dark skin tone
+1FAF1 1F3FE 200D 1FAF2 1F3FB                           ; fully-qualified     # 🫱🏾‍🫲🏻 E14.0 handshake: medium-dark skin tone, light skin tone
+1FAF1 1F3FE 200D 1FAF2 1F3FC                           ; fully-qualified     # 🫱🏾‍🫲🏼 E14.0 handshake: medium-dark skin tone, medium-light skin tone
+1FAF1 1F3FE 200D 1FAF2 1F3FD                           ; fully-qualified     # 🫱🏾‍🫲🏽 E14.0 handshake: medium-dark skin tone, medium skin tone
+1FAF1 1F3FE 200D 1FAF2 1F3FF                           ; fully-qualified     # 🫱🏾‍🫲🏿 E14.0 handshake: medium-dark skin tone, dark skin tone
+1FAF1 1F3FF 200D 1FAF2 1F3FB                           ; fully-qualified     # 🫱🏿‍🫲🏻 E14.0 handshake: dark skin tone, light skin tone
+1FAF1 1F3FF 200D 1FAF2 1F3FC                           ; fully-qualified     # 🫱🏿‍🫲🏼 E14.0 handshake: dark skin tone, medium-light skin tone
+1FAF1 1F3FF 200D 1FAF2 1F3FD                           ; fully-qualified     # 🫱🏿‍🫲🏽 E14.0 handshake: dark skin tone, medium skin tone
+1FAF1 1F3FF 200D 1FAF2 1F3FE                           ; fully-qualified     # 🫱🏿‍🫲🏾 E14.0 handshake: dark skin tone, medium-dark skin tone
+1F64F                                                  ; fully-qualified     # 🙏 E0.6 folded hands
+1F64F 1F3FB                                            ; fully-qualified     # 🙏🏻 E1.0 folded hands: light skin tone
+1F64F 1F3FC                                            ; fully-qualified     # 🙏🏼 E1.0 folded hands: medium-light skin tone
+1F64F 1F3FD                                            ; fully-qualified     # 🙏🏽 E1.0 folded hands: medium skin tone
+1F64F 1F3FE                                            ; fully-qualified     # 🙏🏾 E1.0 folded hands: medium-dark skin tone
+1F64F 1F3FF                                            ; fully-qualified     # 🙏🏿 E1.0 folded hands: dark skin tone
+
+# subgroup: hand-prop
+270D FE0F                                              ; fully-qualified     # ✍️ E0.7 writing hand
+270D                                                   ; unqualified         # ✍ E0.7 writing hand
+270D 1F3FB                                             ; fully-qualified     # ✍🏻 E1.0 writing hand: light skin tone
+270D 1F3FC                                             ; fully-qualified     # ✍🏼 E1.0 writing hand: medium-light skin tone
+270D 1F3FD                                             ; fully-qualified     # ✍🏽 E1.0 writing hand: medium skin tone
+270D 1F3FE                                             ; fully-qualified     # ✍🏾 E1.0 writing hand: medium-dark skin tone
+270D 1F3FF                                             ; fully-qualified     # ✍🏿 E1.0 writing hand: dark skin tone
+1F485                                                  ; fully-qualified     # 💅 E0.6 nail polish
+1F485 1F3FB                                            ; fully-qualified     # 💅🏻 E1.0 nail polish: light skin tone
+1F485 1F3FC                                            ; fully-qualified     # 💅🏼 E1.0 nail polish: medium-light skin tone
+1F485 1F3FD                                            ; fully-qualified     # 💅🏽 E1.0 nail polish: medium skin tone
+1F485 1F3FE                                            ; fully-qualified     # 💅🏾 E1.0 nail polish: medium-dark skin tone
+1F485 1F3FF                                            ; fully-qualified     # 💅🏿 E1.0 nail polish: dark skin tone
+1F933                                                  ; fully-qualified     # 🤳 E3.0 selfie
+1F933 1F3FB                                            ; fully-qualified     # 🤳🏻 E3.0 selfie: light skin tone
+1F933 1F3FC                                            ; fully-qualified     # 🤳🏼 E3.0 selfie: medium-light skin tone
+1F933 1F3FD                                            ; fully-qualified     # 🤳🏽 E3.0 selfie: medium skin tone
+1F933 1F3FE                                            ; fully-qualified     # 🤳🏾 E3.0 selfie: medium-dark skin tone
+1F933 1F3FF                                            ; fully-qualified     # 🤳🏿 E3.0 selfie: dark skin tone
+
+# subgroup: body-parts
+1F4AA                                                  ; fully-qualified     # 💪 E0.6 flexed biceps
+1F4AA 1F3FB                                            ; fully-qualified     # 💪🏻 E1.0 flexed biceps: light skin tone
+1F4AA 1F3FC                                            ; fully-qualified     # 💪🏼 E1.0 flexed biceps: medium-light skin tone
+1F4AA 1F3FD                                            ; fully-qualified     # 💪🏽 E1.0 flexed biceps: medium skin tone
+1F4AA 1F3FE                                            ; fully-qualified     # 💪🏾 E1.0 flexed biceps: medium-dark skin tone
+1F4AA 1F3FF                                            ; fully-qualified     # 💪🏿 E1.0 flexed biceps: dark skin tone
+1F9BE                                                  ; fully-qualified     # 🦾 E12.0 mechanical arm
+1F9BF                                                  ; fully-qualified     # 🦿 E12.0 mechanical leg
+1F9B5                                                  ; fully-qualified     # 🦵 E11.0 leg
+1F9B5 1F3FB                                            ; fully-qualified     # 🦵🏻 E11.0 leg: light skin tone
+1F9B5 1F3FC                                            ; fully-qualified     # 🦵🏼 E11.0 leg: medium-light skin tone
+1F9B5 1F3FD                                            ; fully-qualified     # 🦵🏽 E11.0 leg: medium skin tone
+1F9B5 1F3FE                                            ; fully-qualified     # 🦵🏾 E11.0 leg: medium-dark skin tone
+1F9B5 1F3FF                                            ; fully-qualified     # 🦵🏿 E11.0 leg: dark skin tone
+1F9B6                                                  ; fully-qualified     # 🦶 E11.0 foot
+1F9B6 1F3FB                                            ; fully-qualified     # 🦶🏻 E11.0 foot: light skin tone
+1F9B6 1F3FC                                            ; fully-qualified     # 🦶🏼 E11.0 foot: medium-light skin tone
+1F9B6 1F3FD                                            ; fully-qualified     # 🦶🏽 E11.0 foot: medium skin tone
+1F9B6 1F3FE                                            ; fully-qualified     # 🦶🏾 E11.0 foot: medium-dark skin tone
+1F9B6 1F3FF                                            ; fully-qualified     # 🦶🏿 E11.0 foot: dark skin tone
+1F442                                                  ; fully-qualified     # 👂 E0.6 ear
+1F442 1F3FB                                            ; fully-qualified     # 👂🏻 E1.0 ear: light skin tone
+1F442 1F3FC                                            ; fully-qualified     # 👂🏼 E1.0 ear: medium-light skin tone
+1F442 1F3FD                                            ; fully-qualified     # 👂🏽 E1.0 ear: medium skin tone
+1F442 1F3FE                                            ; fully-qualified     # 👂🏾 E1.0 ear: medium-dark skin tone
+1F442 1F3FF                                            ; fully-qualified     # 👂🏿 E1.0 ear: dark skin tone
+1F9BB                                                  ; fully-qualified     # 🦻 E12.0 ear with hearing aid
+1F9BB 1F3FB                                            ; fully-qualified     # 🦻🏻 E12.0 ear with hearing aid: light skin tone
+1F9BB 1F3FC                                            ; fully-qualified     # 🦻🏼 E12.0 ear with hearing aid: medium-light skin tone
+1F9BB 1F3FD                                            ; fully-qualified     # 🦻🏽 E12.0 ear with hearing aid: medium skin tone
+1F9BB 1F3FE                                            ; fully-qualified     # 🦻🏾 E12.0 ear with hearing aid: medium-dark skin tone
+1F9BB 1F3FF                                            ; fully-qualified     # 🦻🏿 E12.0 ear with hearing aid: dark skin tone
+1F443                                                  ; fully-qualified     # 👃 E0.6 nose
+1F443 1F3FB                                            ; fully-qualified     # 👃🏻 E1.0 nose: light skin tone
+1F443 1F3FC                                            ; fully-qualified     # 👃🏼 E1.0 nose: medium-light skin tone
+1F443 1F3FD                                            ; fully-qualified     # 👃🏽 E1.0 nose: medium skin tone
+1F443 1F3FE                                            ; fully-qualified     # 👃🏾 E1.0 nose: medium-dark skin tone
+1F443 1F3FF                                            ; fully-qualified     # 👃🏿 E1.0 nose: dark skin tone
+1F9E0                                                  ; fully-qualified     # 🧠 E5.0 brain
+1FAC0                                                  ; fully-qualified     # 🫀 E13.0 anatomical heart
+1FAC1                                                  ; fully-qualified     # 🫁 E13.0 lungs
+1F9B7                                                  ; fully-qualified     # 🦷 E11.0 tooth
+1F9B4                                                  ; fully-qualified     # 🦴 E11.0 bone
+1F440                                                  ; fully-qualified     # 👀 E0.6 eyes
+1F441 FE0F                                             ; fully-qualified     # 👁️ E0.7 eye
+1F441                                                  ; unqualified         # 👁 E0.7 eye
+1F445                                                  ; fully-qualified     # 👅 E0.6 tongue
+1F444                                                  ; fully-qualified     # 👄 E0.6 mouth
+1FAE6                                                  ; fully-qualified     # 🫦 E14.0 biting lip
+
+# subgroup: person
+1F476                                                  ; fully-qualified     # 👶 E0.6 baby
+1F476 1F3FB                                            ; fully-qualified     # 👶🏻 E1.0 baby: light skin tone
+1F476 1F3FC                                            ; fully-qualified     # 👶🏼 E1.0 baby: medium-light skin tone
+1F476 1F3FD                                            ; fully-qualified     # 👶🏽 E1.0 baby: medium skin tone
+1F476 1F3FE                                            ; fully-qualified     # 👶🏾 E1.0 baby: medium-dark skin tone
+1F476 1F3FF                                            ; fully-qualified     # 👶🏿 E1.0 baby: dark skin tone
+1F9D2                                                  ; fully-qualified     # 🧒 E5.0 child
+1F9D2 1F3FB                                            ; fully-qualified     # 🧒🏻 E5.0 child: light skin tone
+1F9D2 1F3FC                                            ; fully-qualified     # 🧒🏼 E5.0 child: medium-light skin tone
+1F9D2 1F3FD                                            ; fully-qualified     # 🧒🏽 E5.0 child: medium skin tone
+1F9D2 1F3FE                                            ; fully-qualified     # 🧒🏾 E5.0 child: medium-dark skin tone
+1F9D2 1F3FF                                            ; fully-qualified     # 🧒🏿 E5.0 child: dark skin tone
+1F466                                                  ; fully-qualified     # 👦 E0.6 boy
+1F466 1F3FB                                            ; fully-qualified     # 👦🏻 E1.0 boy: light skin tone
+1F466 1F3FC                                            ; fully-qualified     # 👦🏼 E1.0 boy: medium-light skin tone
+1F466 1F3FD                                            ; fully-qualified     # 👦🏽 E1.0 boy: medium skin tone
+1F466 1F3FE                                            ; fully-qualified     # 👦🏾 E1.0 boy: medium-dark skin tone
+1F466 1F3FF                                            ; fully-qualified     # 👦🏿 E1.0 boy: dark skin tone
+1F467                                                  ; fully-qualified     # 👧 E0.6 girl
+1F467 1F3FB                                            ; fully-qualified     # 👧🏻 E1.0 girl: light skin tone
+1F467 1F3FC                                            ; fully-qualified     # 👧🏼 E1.0 girl: medium-light skin tone
+1F467 1F3FD                                            ; fully-qualified     # 👧🏽 E1.0 girl: medium skin tone
+1F467 1F3FE                                            ; fully-qualified     # 👧🏾 E1.0 girl: medium-dark skin tone
+1F467 1F3FF                                            ; fully-qualified     # 👧🏿 E1.0 girl: dark skin tone
+1F9D1                                                  ; fully-qualified     # 🧑 E5.0 person
+1F9D1 1F3FB                                            ; fully-qualified     # 🧑🏻 E5.0 person: light skin tone
+1F9D1 1F3FC                                            ; fully-qualified     # 🧑🏼 E5.0 person: medium-light skin tone
+1F9D1 1F3FD                                            ; fully-qualified     # 🧑🏽 E5.0 person: medium skin tone
+1F9D1 1F3FE                                            ; fully-qualified     # 🧑🏾 E5.0 person: medium-dark skin tone
+1F9D1 1F3FF                                            ; fully-qualified     # 🧑🏿 E5.0 person: dark skin tone
+1F471                                                  ; fully-qualified     # 👱 E0.6 person: blond hair
+1F471 1F3FB                                            ; fully-qualified     # 👱🏻 E1.0 person: light skin tone, blond hair
+1F471 1F3FC                                            ; fully-qualified     # 👱🏼 E1.0 person: medium-light skin tone, blond hair
+1F471 1F3FD                                            ; fully-qualified     # 👱🏽 E1.0 person: medium skin tone, blond hair
+1F471 1F3FE                                            ; fully-qualified     # 👱🏾 E1.0 person: medium-dark skin tone, blond hair
+1F471 1F3FF                                            ; fully-qualified     # 👱🏿 E1.0 person: dark skin tone, blond hair
+1F468                                                  ; fully-qualified     # 👨 E0.6 man
+1F468 1F3FB                                            ; fully-qualified     # 👨🏻 E1.0 man: light skin tone
+1F468 1F3FC                                            ; fully-qualified     # 👨🏼 E1.0 man: medium-light skin tone
+1F468 1F3FD                                            ; fully-qualified     # 👨🏽 E1.0 man: medium skin tone
+1F468 1F3FE                                            ; fully-qualified     # 👨🏾 E1.0 man: medium-dark skin tone
+1F468 1F3FF                                            ; fully-qualified     # 👨🏿 E1.0 man: dark skin tone
+1F9D4                                                  ; fully-qualified     # 🧔 E5.0 person: beard
+1F9D4 1F3FB                                            ; fully-qualified     # 🧔🏻 E5.0 person: light skin tone, beard
+1F9D4 1F3FC                                            ; fully-qualified     # 🧔🏼 E5.0 person: medium-light skin tone, beard
+1F9D4 1F3FD                                            ; fully-qualified     # 🧔🏽 E5.0 person: medium skin tone, beard
+1F9D4 1F3FE                                            ; fully-qualified     # 🧔🏾 E5.0 person: medium-dark skin tone, beard
+1F9D4 1F3FF                                            ; fully-qualified     # 🧔🏿 E5.0 person: dark skin tone, beard
+1F9D4 200D 2642 FE0F                                   ; fully-qualified     # 🧔‍♂️ E13.1 man: beard
+1F9D4 200D 2642                                        ; minimally-qualified # 🧔‍♂ E13.1 man: beard
+1F9D4 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧔🏻‍♂️ E13.1 man: light skin tone, beard
+1F9D4 1F3FB 200D 2642                                  ; minimally-qualified # 🧔🏻‍♂ E13.1 man: light skin tone, beard
+1F9D4 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧔🏼‍♂️ E13.1 man: medium-light skin tone, beard
+1F9D4 1F3FC 200D 2642                                  ; minimally-qualified # 🧔🏼‍♂ E13.1 man: medium-light skin tone, beard
+1F9D4 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧔🏽‍♂️ E13.1 man: medium skin tone, beard
+1F9D4 1F3FD 200D 2642                                  ; minimally-qualified # 🧔🏽‍♂ E13.1 man: medium skin tone, beard
+1F9D4 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧔🏾‍♂️ E13.1 man: medium-dark skin tone, beard
+1F9D4 1F3FE 200D 2642                                  ; minimally-qualified # 🧔🏾‍♂ E13.1 man: medium-dark skin tone, beard
+1F9D4 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧔🏿‍♂️ E13.1 man: dark skin tone, beard
+1F9D4 1F3FF 200D 2642                                  ; minimally-qualified # 🧔🏿‍♂ E13.1 man: dark skin tone, beard
+1F9D4 200D 2640 FE0F                                   ; fully-qualified     # 🧔‍♀️ E13.1 woman: beard
+1F9D4 200D 2640                                        ; minimally-qualified # 🧔‍♀ E13.1 woman: beard
+1F9D4 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧔🏻‍♀️ E13.1 woman: light skin tone, beard
+1F9D4 1F3FB 200D 2640                                  ; minimally-qualified # 🧔🏻‍♀ E13.1 woman: light skin tone, beard
+1F9D4 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧔🏼‍♀️ E13.1 woman: medium-light skin tone, beard
+1F9D4 1F3FC 200D 2640                                  ; minimally-qualified # 🧔🏼‍♀ E13.1 woman: medium-light skin tone, beard
+1F9D4 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧔🏽‍♀️ E13.1 woman: medium skin tone, beard
+1F9D4 1F3FD 200D 2640                                  ; minimally-qualified # 🧔🏽‍♀ E13.1 woman: medium skin tone, beard
+1F9D4 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧔🏾‍♀️ E13.1 woman: medium-dark skin tone, beard
+1F9D4 1F3FE 200D 2640                                  ; minimally-qualified # 🧔🏾‍♀ E13.1 woman: medium-dark skin tone, beard
+1F9D4 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧔🏿‍♀️ E13.1 woman: dark skin tone, beard
+1F9D4 1F3FF 200D 2640                                  ; minimally-qualified # 🧔🏿‍♀ E13.1 woman: dark skin tone, beard
+1F468 200D 1F9B0                                       ; fully-qualified     # 👨‍🦰 E11.0 man: red hair
+1F468 1F3FB 200D 1F9B0                                 ; fully-qualified     # 👨🏻‍🦰 E11.0 man: light skin tone, red hair
+1F468 1F3FC 200D 1F9B0                                 ; fully-qualified     # 👨🏼‍🦰 E11.0 man: medium-light skin tone, red hair
+1F468 1F3FD 200D 1F9B0                                 ; fully-qualified     # 👨🏽‍🦰 E11.0 man: medium skin tone, red hair
+1F468 1F3FE 200D 1F9B0                                 ; fully-qualified     # 👨🏾‍🦰 E11.0 man: medium-dark skin tone, red hair
+1F468 1F3FF 200D 1F9B0                                 ; fully-qualified     # 👨🏿‍🦰 E11.0 man: dark skin tone, red hair
+1F468 200D 1F9B1                                       ; fully-qualified     # 👨‍🦱 E11.0 man: curly hair
+1F468 1F3FB 200D 1F9B1                                 ; fully-qualified     # 👨🏻‍🦱 E11.0 man: light skin tone, curly hair
+1F468 1F3FC 200D 1F9B1                                 ; fully-qualified     # 👨🏼‍🦱 E11.0 man: medium-light skin tone, curly hair
+1F468 1F3FD 200D 1F9B1                                 ; fully-qualified     # 👨🏽‍🦱 E11.0 man: medium skin tone, curly hair
+1F468 1F3FE 200D 1F9B1                                 ; fully-qualified     # 👨🏾‍🦱 E11.0 man: medium-dark skin tone, curly hair
+1F468 1F3FF 200D 1F9B1                                 ; fully-qualified     # 👨🏿‍🦱 E11.0 man: dark skin tone, curly hair
+1F468 200D 1F9B3                                       ; fully-qualified     # 👨‍🦳 E11.0 man: white hair
+1F468 1F3FB 200D 1F9B3                                 ; fully-qualified     # 👨🏻‍🦳 E11.0 man: light skin tone, white hair
+1F468 1F3FC 200D 1F9B3                                 ; fully-qualified     # 👨🏼‍🦳 E11.0 man: medium-light skin tone, white hair
+1F468 1F3FD 200D 1F9B3                                 ; fully-qualified     # 👨🏽‍🦳 E11.0 man: medium skin tone, white hair
+1F468 1F3FE 200D 1F9B3                                 ; fully-qualified     # 👨🏾‍🦳 E11.0 man: medium-dark skin tone, white hair
+1F468 1F3FF 200D 1F9B3                                 ; fully-qualified     # 👨🏿‍🦳 E11.0 man: dark skin tone, white hair
+1F468 200D 1F9B2                                       ; fully-qualified     # 👨‍🦲 E11.0 man: bald
+1F468 1F3FB 200D 1F9B2                                 ; fully-qualified     # 👨🏻‍🦲 E11.0 man: light skin tone, bald
+1F468 1F3FC 200D 1F9B2                                 ; fully-qualified     # 👨🏼‍🦲 E11.0 man: medium-light skin tone, bald
+1F468 1F3FD 200D 1F9B2                                 ; fully-qualified     # 👨🏽‍🦲 E11.0 man: medium skin tone, bald
+1F468 1F3FE 200D 1F9B2                                 ; fully-qualified     # 👨🏾‍🦲 E11.0 man: medium-dark skin tone, bald
+1F468 1F3FF 200D 1F9B2                                 ; fully-qualified     # 👨🏿‍🦲 E11.0 man: dark skin tone, bald
+1F469                                                  ; fully-qualified     # 👩 E0.6 woman
+1F469 1F3FB                                            ; fully-qualified     # 👩🏻 E1.0 woman: light skin tone
+1F469 1F3FC                                            ; fully-qualified     # 👩🏼 E1.0 woman: medium-light skin tone
+1F469 1F3FD                                            ; fully-qualified     # 👩🏽 E1.0 woman: medium skin tone
+1F469 1F3FE                                            ; fully-qualified     # 👩🏾 E1.0 woman: medium-dark skin tone
+1F469 1F3FF                                            ; fully-qualified     # 👩🏿 E1.0 woman: dark skin tone
+1F469 200D 1F9B0                                       ; fully-qualified     # 👩‍🦰 E11.0 woman: red hair
+1F469 1F3FB 200D 1F9B0                                 ; fully-qualified     # 👩🏻‍🦰 E11.0 woman: light skin tone, red hair
+1F469 1F3FC 200D 1F9B0                                 ; fully-qualified     # 👩🏼‍🦰 E11.0 woman: medium-light skin tone, red hair
+1F469 1F3FD 200D 1F9B0                                 ; fully-qualified     # 👩🏽‍🦰 E11.0 woman: medium skin tone, red hair
+1F469 1F3FE 200D 1F9B0                                 ; fully-qualified     # 👩🏾‍🦰 E11.0 woman: medium-dark skin tone, red hair
+1F469 1F3FF 200D 1F9B0                                 ; fully-qualified     # 👩🏿‍🦰 E11.0 woman: dark skin tone, red hair
+1F9D1 200D 1F9B0                                       ; fully-qualified     # 🧑‍🦰 E12.1 person: red hair
+1F9D1 1F3FB 200D 1F9B0                                 ; fully-qualified     # 🧑🏻‍🦰 E12.1 person: light skin tone, red hair
+1F9D1 1F3FC 200D 1F9B0                                 ; fully-qualified     # 🧑🏼‍🦰 E12.1 person: medium-light skin tone, red hair
+1F9D1 1F3FD 200D 1F9B0                                 ; fully-qualified     # 🧑🏽‍🦰 E12.1 person: medium skin tone, red hair
+1F9D1 1F3FE 200D 1F9B0                                 ; fully-qualified     # 🧑🏾‍🦰 E12.1 person: medium-dark skin tone, red hair
+1F9D1 1F3FF 200D 1F9B0                                 ; fully-qualified     # 🧑🏿‍🦰 E12.1 person: dark skin tone, red hair
+1F469 200D 1F9B1                                       ; fully-qualified     # 👩‍🦱 E11.0 woman: curly hair
+1F469 1F3FB 200D 1F9B1                                 ; fully-qualified     # 👩🏻‍🦱 E11.0 woman: light skin tone, curly hair
+1F469 1F3FC 200D 1F9B1                                 ; fully-qualified     # 👩🏼‍🦱 E11.0 woman: medium-light skin tone, curly hair
+1F469 1F3FD 200D 1F9B1                                 ; fully-qualified     # 👩🏽‍🦱 E11.0 woman: medium skin tone, curly hair
+1F469 1F3FE 200D 1F9B1                                 ; fully-qualified     # 👩🏾‍🦱 E11.0 woman: medium-dark skin tone, curly hair
+1F469 1F3FF 200D 1F9B1                                 ; fully-qualified     # 👩🏿‍🦱 E11.0 woman: dark skin tone, curly hair
+1F9D1 200D 1F9B1                                       ; fully-qualified     # 🧑‍🦱 E12.1 person: curly hair
+1F9D1 1F3FB 200D 1F9B1                                 ; fully-qualified     # 🧑🏻‍🦱 E12.1 person: light skin tone, curly hair
+1F9D1 1F3FC 200D 1F9B1                                 ; fully-qualified     # 🧑🏼‍🦱 E12.1 person: medium-light skin tone, curly hair
+1F9D1 1F3FD 200D 1F9B1                                 ; fully-qualified     # 🧑🏽‍🦱 E12.1 person: medium skin tone, curly hair
+1F9D1 1F3FE 200D 1F9B1                                 ; fully-qualified     # 🧑🏾‍🦱 E12.1 person: medium-dark skin tone, curly hair
+1F9D1 1F3FF 200D 1F9B1                                 ; fully-qualified     # 🧑🏿‍🦱 E12.1 person: dark skin tone, curly hair
+1F469 200D 1F9B3                                       ; fully-qualified     # 👩‍🦳 E11.0 woman: white hair
+1F469 1F3FB 200D 1F9B3                                 ; fully-qualified     # 👩🏻‍🦳 E11.0 woman: light skin tone, white hair
+1F469 1F3FC 200D 1F9B3                                 ; fully-qualified     # 👩🏼‍🦳 E11.0 woman: medium-light skin tone, white hair
+1F469 1F3FD 200D 1F9B3                                 ; fully-qualified     # 👩🏽‍🦳 E11.0 woman: medium skin tone, white hair
+1F469 1F3FE 200D 1F9B3                                 ; fully-qualified     # 👩🏾‍🦳 E11.0 woman: medium-dark skin tone, white hair
+1F469 1F3FF 200D 1F9B3                                 ; fully-qualified     # 👩🏿‍🦳 E11.0 woman: dark skin tone, white hair
+1F9D1 200D 1F9B3                                       ; fully-qualified     # 🧑‍🦳 E12.1 person: white hair
+1F9D1 1F3FB 200D 1F9B3                                 ; fully-qualified     # 🧑🏻‍🦳 E12.1 person: light skin tone, white hair
+1F9D1 1F3FC 200D 1F9B3                                 ; fully-qualified     # 🧑🏼‍🦳 E12.1 person: medium-light skin tone, white hair
+1F9D1 1F3FD 200D 1F9B3                                 ; fully-qualified     # 🧑🏽‍🦳 E12.1 person: medium skin tone, white hair
+1F9D1 1F3FE 200D 1F9B3                                 ; fully-qualified     # 🧑🏾‍🦳 E12.1 person: medium-dark skin tone, white hair
+1F9D1 1F3FF 200D 1F9B3                                 ; fully-qualified     # 🧑🏿‍🦳 E12.1 person: dark skin tone, white hair
+1F469 200D 1F9B2                                       ; fully-qualified     # 👩‍🦲 E11.0 woman: bald
+1F469 1F3FB 200D 1F9B2                                 ; fully-qualified     # 👩🏻‍🦲 E11.0 woman: light skin tone, bald
+1F469 1F3FC 200D 1F9B2                                 ; fully-qualified     # 👩🏼‍🦲 E11.0 woman: medium-light skin tone, bald
+1F469 1F3FD 200D 1F9B2                                 ; fully-qualified     # 👩🏽‍🦲 E11.0 woman: medium skin tone, bald
+1F469 1F3FE 200D 1F9B2                                 ; fully-qualified     # 👩🏾‍🦲 E11.0 woman: medium-dark skin tone, bald
+1F469 1F3FF 200D 1F9B2                                 ; fully-qualified     # 👩🏿‍🦲 E11.0 woman: dark skin tone, bald
+1F9D1 200D 1F9B2                                       ; fully-qualified     # 🧑‍🦲 E12.1 person: bald
+1F9D1 1F3FB 200D 1F9B2                                 ; fully-qualified     # 🧑🏻‍🦲 E12.1 person: light skin tone, bald
+1F9D1 1F3FC 200D 1F9B2                                 ; fully-qualified     # 🧑🏼‍🦲 E12.1 person: medium-light skin tone, bald
+1F9D1 1F3FD 200D 1F9B2                                 ; fully-qualified     # 🧑🏽‍🦲 E12.1 person: medium skin tone, bald
+1F9D1 1F3FE 200D 1F9B2                                 ; fully-qualified     # 🧑🏾‍🦲 E12.1 person: medium-dark skin tone, bald
+1F9D1 1F3FF 200D 1F9B2                                 ; fully-qualified     # 🧑🏿‍🦲 E12.1 person: dark skin tone, bald
+1F471 200D 2640 FE0F                                   ; fully-qualified     # 👱‍♀️ E4.0 woman: blond hair
+1F471 200D 2640                                        ; minimally-qualified # 👱‍♀ E4.0 woman: blond hair
+1F471 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 👱🏻‍♀️ E4.0 woman: light skin tone, blond hair
+1F471 1F3FB 200D 2640                                  ; minimally-qualified # 👱🏻‍♀ E4.0 woman: light skin tone, blond hair
+1F471 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 👱🏼‍♀️ E4.0 woman: medium-light skin tone, blond hair
+1F471 1F3FC 200D 2640                                  ; minimally-qualified # 👱🏼‍♀ E4.0 woman: medium-light skin tone, blond hair
+1F471 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 👱🏽‍♀️ E4.0 woman: medium skin tone, blond hair
+1F471 1F3FD 200D 2640                                  ; minimally-qualified # 👱🏽‍♀ E4.0 woman: medium skin tone, blond hair
+1F471 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 👱🏾‍♀️ E4.0 woman: medium-dark skin tone, blond hair
+1F471 1F3FE 200D 2640                                  ; minimally-qualified # 👱🏾‍♀ E4.0 woman: medium-dark skin tone, blond hair
+1F471 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 👱🏿‍♀️ E4.0 woman: dark skin tone, blond hair
+1F471 1F3FF 200D 2640                                  ; minimally-qualified # 👱🏿‍♀ E4.0 woman: dark skin tone, blond hair
+1F471 200D 2642 FE0F                                   ; fully-qualified     # 👱‍♂️ E4.0 man: blond hair
+1F471 200D 2642                                        ; minimally-qualified # 👱‍♂ E4.0 man: blond hair
+1F471 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 👱🏻‍♂️ E4.0 man: light skin tone, blond hair
+1F471 1F3FB 200D 2642                                  ; minimally-qualified # 👱🏻‍♂ E4.0 man: light skin tone, blond hair
+1F471 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 👱🏼‍♂️ E4.0 man: medium-light skin tone, blond hair
+1F471 1F3FC 200D 2642                                  ; minimally-qualified # 👱🏼‍♂ E4.0 man: medium-light skin tone, blond hair
+1F471 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 👱🏽‍♂️ E4.0 man: medium skin tone, blond hair
+1F471 1F3FD 200D 2642                                  ; minimally-qualified # 👱🏽‍♂ E4.0 man: medium skin tone, blond hair
+1F471 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 👱🏾‍♂️ E4.0 man: medium-dark skin tone, blond hair
+1F471 1F3FE 200D 2642                                  ; minimally-qualified # 👱🏾‍♂ E4.0 man: medium-dark skin tone, blond hair
+1F471 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 👱🏿‍♂️ E4.0 man: dark skin tone, blond hair
+1F471 1F3FF 200D 2642                                  ; minimally-qualified # 👱🏿‍♂ E4.0 man: dark skin tone, blond hair
+1F9D3                                                  ; fully-qualified     # 🧓 E5.0 older person
+1F9D3 1F3FB                                            ; fully-qualified     # 🧓🏻 E5.0 older person: light skin tone
+1F9D3 1F3FC                                            ; fully-qualified     # 🧓🏼 E5.0 older person: medium-light skin tone
+1F9D3 1F3FD                                            ; fully-qualified     # 🧓🏽 E5.0 older person: medium skin tone
+1F9D3 1F3FE                                            ; fully-qualified     # 🧓🏾 E5.0 older person: medium-dark skin tone
+1F9D3 1F3FF                                            ; fully-qualified     # 🧓🏿 E5.0 older person: dark skin tone
+1F474                                                  ; fully-qualified     # 👴 E0.6 old man
+1F474 1F3FB                                            ; fully-qualified     # 👴🏻 E1.0 old man: light skin tone
+1F474 1F3FC                                            ; fully-qualified     # 👴🏼 E1.0 old man: medium-light skin tone
+1F474 1F3FD                                            ; fully-qualified     # 👴🏽 E1.0 old man: medium skin tone
+1F474 1F3FE                                            ; fully-qualified     # 👴🏾 E1.0 old man: medium-dark skin tone
+1F474 1F3FF                                            ; fully-qualified     # 👴🏿 E1.0 old man: dark skin tone
+1F475                                                  ; fully-qualified     # 👵 E0.6 old woman
+1F475 1F3FB                                            ; fully-qualified     # 👵🏻 E1.0 old woman: light skin tone
+1F475 1F3FC                                            ; fully-qualified     # 👵🏼 E1.0 old woman: medium-light skin tone
+1F475 1F3FD                                            ; fully-qualified     # 👵🏽 E1.0 old woman: medium skin tone
+1F475 1F3FE                                            ; fully-qualified     # 👵🏾 E1.0 old woman: medium-dark skin tone
+1F475 1F3FF                                            ; fully-qualified     # 👵🏿 E1.0 old woman: dark skin tone
+
+# subgroup: person-gesture
+1F64D                                                  ; fully-qualified     # 🙍 E0.6 person frowning
+1F64D 1F3FB                                            ; fully-qualified     # 🙍🏻 E1.0 person frowning: light skin tone
+1F64D 1F3FC                                            ; fully-qualified     # 🙍🏼 E1.0 person frowning: medium-light skin tone
+1F64D 1F3FD                                            ; fully-qualified     # 🙍🏽 E1.0 person frowning: medium skin tone
+1F64D 1F3FE                                            ; fully-qualified     # 🙍🏾 E1.0 person frowning: medium-dark skin tone
+1F64D 1F3FF                                            ; fully-qualified     # 🙍🏿 E1.0 person frowning: dark skin tone
+1F64D 200D 2642 FE0F                                   ; fully-qualified     # 🙍‍♂️ E4.0 man frowning
+1F64D 200D 2642                                        ; minimally-qualified # 🙍‍♂ E4.0 man frowning
+1F64D 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🙍🏻‍♂️ E4.0 man frowning: light skin tone
+1F64D 1F3FB 200D 2642                                  ; minimally-qualified # 🙍🏻‍♂ E4.0 man frowning: light skin tone
+1F64D 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🙍🏼‍♂️ E4.0 man frowning: medium-light skin tone
+1F64D 1F3FC 200D 2642                                  ; minimally-qualified # 🙍🏼‍♂ E4.0 man frowning: medium-light skin tone
+1F64D 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🙍🏽‍♂️ E4.0 man frowning: medium skin tone
+1F64D 1F3FD 200D 2642                                  ; minimally-qualified # 🙍🏽‍♂ E4.0 man frowning: medium skin tone
+1F64D 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🙍🏾‍♂️ E4.0 man frowning: medium-dark skin tone
+1F64D 1F3FE 200D 2642                                  ; minimally-qualified # 🙍🏾‍♂ E4.0 man frowning: medium-dark skin tone
+1F64D 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🙍🏿‍♂️ E4.0 man frowning: dark skin tone
+1F64D 1F3FF 200D 2642                                  ; minimally-qualified # 🙍🏿‍♂ E4.0 man frowning: dark skin tone
+1F64D 200D 2640 FE0F                                   ; fully-qualified     # 🙍‍♀️ E4.0 woman frowning
+1F64D 200D 2640                                        ; minimally-qualified # 🙍‍♀ E4.0 woman frowning
+1F64D 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🙍🏻‍♀️ E4.0 woman frowning: light skin tone
+1F64D 1F3FB 200D 2640                                  ; minimally-qualified # 🙍🏻‍♀ E4.0 woman frowning: light skin tone
+1F64D 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🙍🏼‍♀️ E4.0 woman frowning: medium-light skin tone
+1F64D 1F3FC 200D 2640                                  ; minimally-qualified # 🙍🏼‍♀ E4.0 woman frowning: medium-light skin tone
+1F64D 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🙍🏽‍♀️ E4.0 woman frowning: medium skin tone
+1F64D 1F3FD 200D 2640                                  ; minimally-qualified # 🙍🏽‍♀ E4.0 woman frowning: medium skin tone
+1F64D 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🙍🏾‍♀️ E4.0 woman frowning: medium-dark skin tone
+1F64D 1F3FE 200D 2640                                  ; minimally-qualified # 🙍🏾‍♀ E4.0 woman frowning: medium-dark skin tone
+1F64D 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🙍🏿‍♀️ E4.0 woman frowning: dark skin tone
+1F64D 1F3FF 200D 2640                                  ; minimally-qualified # 🙍🏿‍♀ E4.0 woman frowning: dark skin tone
+1F64E                                                  ; fully-qualified     # 🙎 E0.6 person pouting
+1F64E 1F3FB                                            ; fully-qualified     # 🙎🏻 E1.0 person pouting: light skin tone
+1F64E 1F3FC                                            ; fully-qualified     # 🙎🏼 E1.0 person pouting: medium-light skin tone
+1F64E 1F3FD                                            ; fully-qualified     # 🙎🏽 E1.0 person pouting: medium skin tone
+1F64E 1F3FE                                            ; fully-qualified     # 🙎🏾 E1.0 person pouting: medium-dark skin tone
+1F64E 1F3FF                                            ; fully-qualified     # 🙎🏿 E1.0 person pouting: dark skin tone
+1F64E 200D 2642 FE0F                                   ; fully-qualified     # 🙎‍♂️ E4.0 man pouting
+1F64E 200D 2642                                        ; minimally-qualified # 🙎‍♂ E4.0 man pouting
+1F64E 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🙎🏻‍♂️ E4.0 man pouting: light skin tone
+1F64E 1F3FB 200D 2642                                  ; minimally-qualified # 🙎🏻‍♂ E4.0 man pouting: light skin tone
+1F64E 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🙎🏼‍♂️ E4.0 man pouting: medium-light skin tone
+1F64E 1F3FC 200D 2642                                  ; minimally-qualified # 🙎🏼‍♂ E4.0 man pouting: medium-light skin tone
+1F64E 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🙎🏽‍♂️ E4.0 man pouting: medium skin tone
+1F64E 1F3FD 200D 2642                                  ; minimally-qualified # 🙎🏽‍♂ E4.0 man pouting: medium skin tone
+1F64E 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🙎🏾‍♂️ E4.0 man pouting: medium-dark skin tone
+1F64E 1F3FE 200D 2642                                  ; minimally-qualified # 🙎🏾‍♂ E4.0 man pouting: medium-dark skin tone
+1F64E 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🙎🏿‍♂️ E4.0 man pouting: dark skin tone
+1F64E 1F3FF 200D 2642                                  ; minimally-qualified # 🙎🏿‍♂ E4.0 man pouting: dark skin tone
+1F64E 200D 2640 FE0F                                   ; fully-qualified     # 🙎‍♀️ E4.0 woman pouting
+1F64E 200D 2640                                        ; minimally-qualified # 🙎‍♀ E4.0 woman pouting
+1F64E 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🙎🏻‍♀️ E4.0 woman pouting: light skin tone
+1F64E 1F3FB 200D 2640                                  ; minimally-qualified # 🙎🏻‍♀ E4.0 woman pouting: light skin tone
+1F64E 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🙎🏼‍♀️ E4.0 woman pouting: medium-light skin tone
+1F64E 1F3FC 200D 2640                                  ; minimally-qualified # 🙎🏼‍♀ E4.0 woman pouting: medium-light skin tone
+1F64E 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🙎🏽‍♀️ E4.0 woman pouting: medium skin tone
+1F64E 1F3FD 200D 2640                                  ; minimally-qualified # 🙎🏽‍♀ E4.0 woman pouting: medium skin tone
+1F64E 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🙎🏾‍♀️ E4.0 woman pouting: medium-dark skin tone
+1F64E 1F3FE 200D 2640                                  ; minimally-qualified # 🙎🏾‍♀ E4.0 woman pouting: medium-dark skin tone
+1F64E 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🙎🏿‍♀️ E4.0 woman pouting: dark skin tone
+1F64E 1F3FF 200D 2640                                  ; minimally-qualified # 🙎🏿‍♀ E4.0 woman pouting: dark skin tone
+1F645                                                  ; fully-qualified     # 🙅 E0.6 person gesturing NO
+1F645 1F3FB                                            ; fully-qualified     # 🙅🏻 E1.0 person gesturing NO: light skin tone
+1F645 1F3FC                                            ; fully-qualified     # 🙅🏼 E1.0 person gesturing NO: medium-light skin tone
+1F645 1F3FD                                            ; fully-qualified     # 🙅🏽 E1.0 person gesturing NO: medium skin tone
+1F645 1F3FE                                            ; fully-qualified     # 🙅🏾 E1.0 person gesturing NO: medium-dark skin tone
+1F645 1F3FF                                            ; fully-qualified     # 🙅🏿 E1.0 person gesturing NO: dark skin tone
+1F645 200D 2642 FE0F                                   ; fully-qualified     # 🙅‍♂️ E4.0 man gesturing NO
+1F645 200D 2642                                        ; minimally-qualified # 🙅‍♂ E4.0 man gesturing NO
+1F645 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🙅🏻‍♂️ E4.0 man gesturing NO: light skin tone
+1F645 1F3FB 200D 2642                                  ; minimally-qualified # 🙅🏻‍♂ E4.0 man gesturing NO: light skin tone
+1F645 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🙅🏼‍♂️ E4.0 man gesturing NO: medium-light skin tone
+1F645 1F3FC 200D 2642                                  ; minimally-qualified # 🙅🏼‍♂ E4.0 man gesturing NO: medium-light skin tone
+1F645 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🙅🏽‍♂️ E4.0 man gesturing NO: medium skin tone
+1F645 1F3FD 200D 2642                                  ; minimally-qualified # 🙅🏽‍♂ E4.0 man gesturing NO: medium skin tone
+1F645 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🙅🏾‍♂️ E4.0 man gesturing NO: medium-dark skin tone
+1F645 1F3FE 200D 2642                                  ; minimally-qualified # 🙅🏾‍♂ E4.0 man gesturing NO: medium-dark skin tone
+1F645 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🙅🏿‍♂️ E4.0 man gesturing NO: dark skin tone
+1F645 1F3FF 200D 2642                                  ; minimally-qualified # 🙅🏿‍♂ E4.0 man gesturing NO: dark skin tone
+1F645 200D 2640 FE0F                                   ; fully-qualified     # 🙅‍♀️ E4.0 woman gesturing NO
+1F645 200D 2640                                        ; minimally-qualified # 🙅‍♀ E4.0 woman gesturing NO
+1F645 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🙅🏻‍♀️ E4.0 woman gesturing NO: light skin tone
+1F645 1F3FB 200D 2640                                  ; minimally-qualified # 🙅🏻‍♀ E4.0 woman gesturing NO: light skin tone
+1F645 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🙅🏼‍♀️ E4.0 woman gesturing NO: medium-light skin tone
+1F645 1F3FC 200D 2640                                  ; minimally-qualified # 🙅🏼‍♀ E4.0 woman gesturing NO: medium-light skin tone
+1F645 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🙅🏽‍♀️ E4.0 woman gesturing NO: medium skin tone
+1F645 1F3FD 200D 2640                                  ; minimally-qualified # 🙅🏽‍♀ E4.0 woman gesturing NO: medium skin tone
+1F645 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🙅🏾‍♀️ E4.0 woman gesturing NO: medium-dark skin tone
+1F645 1F3FE 200D 2640                                  ; minimally-qualified # 🙅🏾‍♀ E4.0 woman gesturing NO: medium-dark skin tone
+1F645 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🙅🏿‍♀️ E4.0 woman gesturing NO: dark skin tone
+1F645 1F3FF 200D 2640                                  ; minimally-qualified # 🙅🏿‍♀ E4.0 woman gesturing NO: dark skin tone
+1F646                                                  ; fully-qualified     # 🙆 E0.6 person gesturing OK
+1F646 1F3FB                                            ; fully-qualified     # 🙆🏻 E1.0 person gesturing OK: light skin tone
+1F646 1F3FC                                            ; fully-qualified     # 🙆🏼 E1.0 person gesturing OK: medium-light skin tone
+1F646 1F3FD                                            ; fully-qualified     # 🙆🏽 E1.0 person gesturing OK: medium skin tone
+1F646 1F3FE                                            ; fully-qualified     # 🙆🏾 E1.0 person gesturing OK: medium-dark skin tone
+1F646 1F3FF                                            ; fully-qualified     # 🙆🏿 E1.0 person gesturing OK: dark skin tone
+1F646 200D 2642 FE0F                                   ; fully-qualified     # 🙆‍♂️ E4.0 man gesturing OK
+1F646 200D 2642                                        ; minimally-qualified # 🙆‍♂ E4.0 man gesturing OK
+1F646 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🙆🏻‍♂️ E4.0 man gesturing OK: light skin tone
+1F646 1F3FB 200D 2642                                  ; minimally-qualified # 🙆🏻‍♂ E4.0 man gesturing OK: light skin tone
+1F646 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🙆🏼‍♂️ E4.0 man gesturing OK: medium-light skin tone
+1F646 1F3FC 200D 2642                                  ; minimally-qualified # 🙆🏼‍♂ E4.0 man gesturing OK: medium-light skin tone
+1F646 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🙆🏽‍♂️ E4.0 man gesturing OK: medium skin tone
+1F646 1F3FD 200D 2642                                  ; minimally-qualified # 🙆🏽‍♂ E4.0 man gesturing OK: medium skin tone
+1F646 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🙆🏾‍♂️ E4.0 man gesturing OK: medium-dark skin tone
+1F646 1F3FE 200D 2642                                  ; minimally-qualified # 🙆🏾‍♂ E4.0 man gesturing OK: medium-dark skin tone
+1F646 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🙆🏿‍♂️ E4.0 man gesturing OK: dark skin tone
+1F646 1F3FF 200D 2642                                  ; minimally-qualified # 🙆🏿‍♂ E4.0 man gesturing OK: dark skin tone
+1F646 200D 2640 FE0F                                   ; fully-qualified     # 🙆‍♀️ E4.0 woman gesturing OK
+1F646 200D 2640                                        ; minimally-qualified # 🙆‍♀ E4.0 woman gesturing OK
+1F646 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🙆🏻‍♀️ E4.0 woman gesturing OK: light skin tone
+1F646 1F3FB 200D 2640                                  ; minimally-qualified # 🙆🏻‍♀ E4.0 woman gesturing OK: light skin tone
+1F646 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🙆🏼‍♀️ E4.0 woman gesturing OK: medium-light skin tone
+1F646 1F3FC 200D 2640                                  ; minimally-qualified # 🙆🏼‍♀ E4.0 woman gesturing OK: medium-light skin tone
+1F646 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🙆🏽‍♀️ E4.0 woman gesturing OK: medium skin tone
+1F646 1F3FD 200D 2640                                  ; minimally-qualified # 🙆🏽‍♀ E4.0 woman gesturing OK: medium skin tone
+1F646 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🙆🏾‍♀️ E4.0 woman gesturing OK: medium-dark skin tone
+1F646 1F3FE 200D 2640                                  ; minimally-qualified # 🙆🏾‍♀ E4.0 woman gesturing OK: medium-dark skin tone
+1F646 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🙆🏿‍♀️ E4.0 woman gesturing OK: dark skin tone
+1F646 1F3FF 200D 2640                                  ; minimally-qualified # 🙆🏿‍♀ E4.0 woman gesturing OK: dark skin tone
+1F481                                                  ; fully-qualified     # 💁 E0.6 person tipping hand
+1F481 1F3FB                                            ; fully-qualified     # 💁🏻 E1.0 person tipping hand: light skin tone
+1F481 1F3FC                                            ; fully-qualified     # 💁🏼 E1.0 person tipping hand: medium-light skin tone
+1F481 1F3FD                                            ; fully-qualified     # 💁🏽 E1.0 person tipping hand: medium skin tone
+1F481 1F3FE                                            ; fully-qualified     # 💁🏾 E1.0 person tipping hand: medium-dark skin tone
+1F481 1F3FF                                            ; fully-qualified     # 💁🏿 E1.0 person tipping hand: dark skin tone
+1F481 200D 2642 FE0F                                   ; fully-qualified     # 💁‍♂️ E4.0 man tipping hand
+1F481 200D 2642                                        ; minimally-qualified # 💁‍♂ E4.0 man tipping hand
+1F481 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 💁🏻‍♂️ E4.0 man tipping hand: light skin tone
+1F481 1F3FB 200D 2642                                  ; minimally-qualified # 💁🏻‍♂ E4.0 man tipping hand: light skin tone
+1F481 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 💁🏼‍♂️ E4.0 man tipping hand: medium-light skin tone
+1F481 1F3FC 200D 2642                                  ; minimally-qualified # 💁🏼‍♂ E4.0 man tipping hand: medium-light skin tone
+1F481 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 💁🏽‍♂️ E4.0 man tipping hand: medium skin tone
+1F481 1F3FD 200D 2642                                  ; minimally-qualified # 💁🏽‍♂ E4.0 man tipping hand: medium skin tone
+1F481 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 💁🏾‍♂️ E4.0 man tipping hand: medium-dark skin tone
+1F481 1F3FE 200D 2642                                  ; minimally-qualified # 💁🏾‍♂ E4.0 man tipping hand: medium-dark skin tone
+1F481 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 💁🏿‍♂️ E4.0 man tipping hand: dark skin tone
+1F481 1F3FF 200D 2642                                  ; minimally-qualified # 💁🏿‍♂ E4.0 man tipping hand: dark skin tone
+1F481 200D 2640 FE0F                                   ; fully-qualified     # 💁‍♀️ E4.0 woman tipping hand
+1F481 200D 2640                                        ; minimally-qualified # 💁‍♀ E4.0 woman tipping hand
+1F481 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 💁🏻‍♀️ E4.0 woman tipping hand: light skin tone
+1F481 1F3FB 200D 2640                                  ; minimally-qualified # 💁🏻‍♀ E4.0 woman tipping hand: light skin tone
+1F481 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 💁🏼‍♀️ E4.0 woman tipping hand: medium-light skin tone
+1F481 1F3FC 200D 2640                                  ; minimally-qualified # 💁🏼‍♀ E4.0 woman tipping hand: medium-light skin tone
+1F481 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 💁🏽‍♀️ E4.0 woman tipping hand: medium skin tone
+1F481 1F3FD 200D 2640                                  ; minimally-qualified # 💁🏽‍♀ E4.0 woman tipping hand: medium skin tone
+1F481 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 💁🏾‍♀️ E4.0 woman tipping hand: medium-dark skin tone
+1F481 1F3FE 200D 2640                                  ; minimally-qualified # 💁🏾‍♀ E4.0 woman tipping hand: medium-dark skin tone
+1F481 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 💁🏿‍♀️ E4.0 woman tipping hand: dark skin tone
+1F481 1F3FF 200D 2640                                  ; minimally-qualified # 💁🏿‍♀ E4.0 woman tipping hand: dark skin tone
+1F64B                                                  ; fully-qualified     # 🙋 E0.6 person raising hand
+1F64B 1F3FB                                            ; fully-qualified     # 🙋🏻 E1.0 person raising hand: light skin tone
+1F64B 1F3FC                                            ; fully-qualified     # 🙋🏼 E1.0 person raising hand: medium-light skin tone
+1F64B 1F3FD                                            ; fully-qualified     # 🙋🏽 E1.0 person raising hand: medium skin tone
+1F64B 1F3FE                                            ; fully-qualified     # 🙋🏾 E1.0 person raising hand: medium-dark skin tone
+1F64B 1F3FF                                            ; fully-qualified     # 🙋🏿 E1.0 person raising hand: dark skin tone
+1F64B 200D 2642 FE0F                                   ; fully-qualified     # 🙋‍♂️ E4.0 man raising hand
+1F64B 200D 2642                                        ; minimally-qualified # 🙋‍♂ E4.0 man raising hand
+1F64B 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🙋🏻‍♂️ E4.0 man raising hand: light skin tone
+1F64B 1F3FB 200D 2642                                  ; minimally-qualified # 🙋🏻‍♂ E4.0 man raising hand: light skin tone
+1F64B 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🙋🏼‍♂️ E4.0 man raising hand: medium-light skin tone
+1F64B 1F3FC 200D 2642                                  ; minimally-qualified # 🙋🏼‍♂ E4.0 man raising hand: medium-light skin tone
+1F64B 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🙋🏽‍♂️ E4.0 man raising hand: medium skin tone
+1F64B 1F3FD 200D 2642                                  ; minimally-qualified # 🙋🏽‍♂ E4.0 man raising hand: medium skin tone
+1F64B 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🙋🏾‍♂️ E4.0 man raising hand: medium-dark skin tone
+1F64B 1F3FE 200D 2642                                  ; minimally-qualified # 🙋🏾‍♂ E4.0 man raising hand: medium-dark skin tone
+1F64B 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🙋🏿‍♂️ E4.0 man raising hand: dark skin tone
+1F64B 1F3FF 200D 2642                                  ; minimally-qualified # 🙋🏿‍♂ E4.0 man raising hand: dark skin tone
+1F64B 200D 2640 FE0F                                   ; fully-qualified     # 🙋‍♀️ E4.0 woman raising hand
+1F64B 200D 2640                                        ; minimally-qualified # 🙋‍♀ E4.0 woman raising hand
+1F64B 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🙋🏻‍♀️ E4.0 woman raising hand: light skin tone
+1F64B 1F3FB 200D 2640                                  ; minimally-qualified # 🙋🏻‍♀ E4.0 woman raising hand: light skin tone
+1F64B 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🙋🏼‍♀️ E4.0 woman raising hand: medium-light skin tone
+1F64B 1F3FC 200D 2640                                  ; minimally-qualified # 🙋🏼‍♀ E4.0 woman raising hand: medium-light skin tone
+1F64B 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🙋🏽‍♀️ E4.0 woman raising hand: medium skin tone
+1F64B 1F3FD 200D 2640                                  ; minimally-qualified # 🙋🏽‍♀ E4.0 woman raising hand: medium skin tone
+1F64B 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🙋🏾‍♀️ E4.0 woman raising hand: medium-dark skin tone
+1F64B 1F3FE 200D 2640                                  ; minimally-qualified # 🙋🏾‍♀ E4.0 woman raising hand: medium-dark skin tone
+1F64B 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🙋🏿‍♀️ E4.0 woman raising hand: dark skin tone
+1F64B 1F3FF 200D 2640                                  ; minimally-qualified # 🙋🏿‍♀ E4.0 woman raising hand: dark skin tone
+1F9CF                                                  ; fully-qualified     # 🧏 E12.0 deaf person
+1F9CF 1F3FB                                            ; fully-qualified     # 🧏🏻 E12.0 deaf person: light skin tone
+1F9CF 1F3FC                                            ; fully-qualified     # 🧏🏼 E12.0 deaf person: medium-light skin tone
+1F9CF 1F3FD                                            ; fully-qualified     # 🧏🏽 E12.0 deaf person: medium skin tone
+1F9CF 1F3FE                                            ; fully-qualified     # 🧏🏾 E12.0 deaf person: medium-dark skin tone
+1F9CF 1F3FF                                            ; fully-qualified     # 🧏🏿 E12.0 deaf person: dark skin tone
+1F9CF 200D 2642 FE0F                                   ; fully-qualified     # 🧏‍♂️ E12.0 deaf man
+1F9CF 200D 2642                                        ; minimally-qualified # 🧏‍♂ E12.0 deaf man
+1F9CF 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧏🏻‍♂️ E12.0 deaf man: light skin tone
+1F9CF 1F3FB 200D 2642                                  ; minimally-qualified # 🧏🏻‍♂ E12.0 deaf man: light skin tone
+1F9CF 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧏🏼‍♂️ E12.0 deaf man: medium-light skin tone
+1F9CF 1F3FC 200D 2642                                  ; minimally-qualified # 🧏🏼‍♂ E12.0 deaf man: medium-light skin tone
+1F9CF 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧏🏽‍♂️ E12.0 deaf man: medium skin tone
+1F9CF 1F3FD 200D 2642                                  ; minimally-qualified # 🧏🏽‍♂ E12.0 deaf man: medium skin tone
+1F9CF 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧏🏾‍♂️ E12.0 deaf man: medium-dark skin tone
+1F9CF 1F3FE 200D 2642                                  ; minimally-qualified # 🧏🏾‍♂ E12.0 deaf man: medium-dark skin tone
+1F9CF 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧏🏿‍♂️ E12.0 deaf man: dark skin tone
+1F9CF 1F3FF 200D 2642                                  ; minimally-qualified # 🧏🏿‍♂ E12.0 deaf man: dark skin tone
+1F9CF 200D 2640 FE0F                                   ; fully-qualified     # 🧏‍♀️ E12.0 deaf woman
+1F9CF 200D 2640                                        ; minimally-qualified # 🧏‍♀ E12.0 deaf woman
+1F9CF 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧏🏻‍♀️ E12.0 deaf woman: light skin tone
+1F9CF 1F3FB 200D 2640                                  ; minimally-qualified # 🧏🏻‍♀ E12.0 deaf woman: light skin tone
+1F9CF 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧏🏼‍♀️ E12.0 deaf woman: medium-light skin tone
+1F9CF 1F3FC 200D 2640                                  ; minimally-qualified # 🧏🏼‍♀ E12.0 deaf woman: medium-light skin tone
+1F9CF 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧏🏽‍♀️ E12.0 deaf woman: medium skin tone
+1F9CF 1F3FD 200D 2640                                  ; minimally-qualified # 🧏🏽‍♀ E12.0 deaf woman: medium skin tone
+1F9CF 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧏🏾‍♀️ E12.0 deaf woman: medium-dark skin tone
+1F9CF 1F3FE 200D 2640                                  ; minimally-qualified # 🧏🏾‍♀ E12.0 deaf woman: medium-dark skin tone
+1F9CF 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧏🏿‍♀️ E12.0 deaf woman: dark skin tone
+1F9CF 1F3FF 200D 2640                                  ; minimally-qualified # 🧏🏿‍♀ E12.0 deaf woman: dark skin tone
+1F647                                                  ; fully-qualified     # 🙇 E0.6 person bowing
+1F647 1F3FB                                            ; fully-qualified     # 🙇🏻 E1.0 person bowing: light skin tone
+1F647 1F3FC                                            ; fully-qualified     # 🙇🏼 E1.0 person bowing: medium-light skin tone
+1F647 1F3FD                                            ; fully-qualified     # 🙇🏽 E1.0 person bowing: medium skin tone
+1F647 1F3FE                                            ; fully-qualified     # 🙇🏾 E1.0 person bowing: medium-dark skin tone
+1F647 1F3FF                                            ; fully-qualified     # 🙇🏿 E1.0 person bowing: dark skin tone
+1F647 200D 2642 FE0F                                   ; fully-qualified     # 🙇‍♂️ E4.0 man bowing
+1F647 200D 2642                                        ; minimally-qualified # 🙇‍♂ E4.0 man bowing
+1F647 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🙇🏻‍♂️ E4.0 man bowing: light skin tone
+1F647 1F3FB 200D 2642                                  ; minimally-qualified # 🙇🏻‍♂ E4.0 man bowing: light skin tone
+1F647 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🙇🏼‍♂️ E4.0 man bowing: medium-light skin tone
+1F647 1F3FC 200D 2642                                  ; minimally-qualified # 🙇🏼‍♂ E4.0 man bowing: medium-light skin tone
+1F647 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🙇🏽‍♂️ E4.0 man bowing: medium skin tone
+1F647 1F3FD 200D 2642                                  ; minimally-qualified # 🙇🏽‍♂ E4.0 man bowing: medium skin tone
+1F647 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🙇🏾‍♂️ E4.0 man bowing: medium-dark skin tone
+1F647 1F3FE 200D 2642                                  ; minimally-qualified # 🙇🏾‍♂ E4.0 man bowing: medium-dark skin tone
+1F647 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🙇🏿‍♂️ E4.0 man bowing: dark skin tone
+1F647 1F3FF 200D 2642                                  ; minimally-qualified # 🙇🏿‍♂ E4.0 man bowing: dark skin tone
+1F647 200D 2640 FE0F                                   ; fully-qualified     # 🙇‍♀️ E4.0 woman bowing
+1F647 200D 2640                                        ; minimally-qualified # 🙇‍♀ E4.0 woman bowing
+1F647 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🙇🏻‍♀️ E4.0 woman bowing: light skin tone
+1F647 1F3FB 200D 2640                                  ; minimally-qualified # 🙇🏻‍♀ E4.0 woman bowing: light skin tone
+1F647 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🙇🏼‍♀️ E4.0 woman bowing: medium-light skin tone
+1F647 1F3FC 200D 2640                                  ; minimally-qualified # 🙇🏼‍♀ E4.0 woman bowing: medium-light skin tone
+1F647 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🙇🏽‍♀️ E4.0 woman bowing: medium skin tone
+1F647 1F3FD 200D 2640                                  ; minimally-qualified # 🙇🏽‍♀ E4.0 woman bowing: medium skin tone
+1F647 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🙇🏾‍♀️ E4.0 woman bowing: medium-dark skin tone
+1F647 1F3FE 200D 2640                                  ; minimally-qualified # 🙇🏾‍♀ E4.0 woman bowing: medium-dark skin tone
+1F647 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🙇🏿‍♀️ E4.0 woman bowing: dark skin tone
+1F647 1F3FF 200D 2640                                  ; minimally-qualified # 🙇🏿‍♀ E4.0 woman bowing: dark skin tone
+1F926                                                  ; fully-qualified     # 🤦 E3.0 person facepalming
+1F926 1F3FB                                            ; fully-qualified     # 🤦🏻 E3.0 person facepalming: light skin tone
+1F926 1F3FC                                            ; fully-qualified     # 🤦🏼 E3.0 person facepalming: medium-light skin tone
+1F926 1F3FD                                            ; fully-qualified     # 🤦🏽 E3.0 person facepalming: medium skin tone
+1F926 1F3FE                                            ; fully-qualified     # 🤦🏾 E3.0 person facepalming: medium-dark skin tone
+1F926 1F3FF                                            ; fully-qualified     # 🤦🏿 E3.0 person facepalming: dark skin tone
+1F926 200D 2642 FE0F                                   ; fully-qualified     # 🤦‍♂️ E4.0 man facepalming
+1F926 200D 2642                                        ; minimally-qualified # 🤦‍♂ E4.0 man facepalming
+1F926 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🤦🏻‍♂️ E4.0 man facepalming: light skin tone
+1F926 1F3FB 200D 2642                                  ; minimally-qualified # 🤦🏻‍♂ E4.0 man facepalming: light skin tone
+1F926 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🤦🏼‍♂️ E4.0 man facepalming: medium-light skin tone
+1F926 1F3FC 200D 2642                                  ; minimally-qualified # 🤦🏼‍♂ E4.0 man facepalming: medium-light skin tone
+1F926 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🤦🏽‍♂️ E4.0 man facepalming: medium skin tone
+1F926 1F3FD 200D 2642                                  ; minimally-qualified # 🤦🏽‍♂ E4.0 man facepalming: medium skin tone
+1F926 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🤦🏾‍♂️ E4.0 man facepalming: medium-dark skin tone
+1F926 1F3FE 200D 2642                                  ; minimally-qualified # 🤦🏾‍♂ E4.0 man facepalming: medium-dark skin tone
+1F926 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🤦🏿‍♂️ E4.0 man facepalming: dark skin tone
+1F926 1F3FF 200D 2642                                  ; minimally-qualified # 🤦🏿‍♂ E4.0 man facepalming: dark skin tone
+1F926 200D 2640 FE0F                                   ; fully-qualified     # 🤦‍♀️ E4.0 woman facepalming
+1F926 200D 2640                                        ; minimally-qualified # 🤦‍♀ E4.0 woman facepalming
+1F926 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🤦🏻‍♀️ E4.0 woman facepalming: light skin tone
+1F926 1F3FB 200D 2640                                  ; minimally-qualified # 🤦🏻‍♀ E4.0 woman facepalming: light skin tone
+1F926 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🤦🏼‍♀️ E4.0 woman facepalming: medium-light skin tone
+1F926 1F3FC 200D 2640                                  ; minimally-qualified # 🤦🏼‍♀ E4.0 woman facepalming: medium-light skin tone
+1F926 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🤦🏽‍♀️ E4.0 woman facepalming: medium skin tone
+1F926 1F3FD 200D 2640                                  ; minimally-qualified # 🤦🏽‍♀ E4.0 woman facepalming: medium skin tone
+1F926 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🤦🏾‍♀️ E4.0 woman facepalming: medium-dark skin tone
+1F926 1F3FE 200D 2640                                  ; minimally-qualified # 🤦🏾‍♀ E4.0 woman facepalming: medium-dark skin tone
+1F926 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🤦🏿‍♀️ E4.0 woman facepalming: dark skin tone
+1F926 1F3FF 200D 2640                                  ; minimally-qualified # 🤦🏿‍♀ E4.0 woman facepalming: dark skin tone
+1F937                                                  ; fully-qualified     # 🤷 E3.0 person shrugging
+1F937 1F3FB                                            ; fully-qualified     # 🤷🏻 E3.0 person shrugging: light skin tone
+1F937 1F3FC                                            ; fully-qualified     # 🤷🏼 E3.0 person shrugging: medium-light skin tone
+1F937 1F3FD                                            ; fully-qualified     # 🤷🏽 E3.0 person shrugging: medium skin tone
+1F937 1F3FE                                            ; fully-qualified     # 🤷🏾 E3.0 person shrugging: medium-dark skin tone
+1F937 1F3FF                                            ; fully-qualified     # 🤷🏿 E3.0 person shrugging: dark skin tone
+1F937 200D 2642 FE0F                                   ; fully-qualified     # 🤷‍♂️ E4.0 man shrugging
+1F937 200D 2642                                        ; minimally-qualified # 🤷‍♂ E4.0 man shrugging
+1F937 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🤷🏻‍♂️ E4.0 man shrugging: light skin tone
+1F937 1F3FB 200D 2642                                  ; minimally-qualified # 🤷🏻‍♂ E4.0 man shrugging: light skin tone
+1F937 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🤷🏼‍♂️ E4.0 man shrugging: medium-light skin tone
+1F937 1F3FC 200D 2642                                  ; minimally-qualified # 🤷🏼‍♂ E4.0 man shrugging: medium-light skin tone
+1F937 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🤷🏽‍♂️ E4.0 man shrugging: medium skin tone
+1F937 1F3FD 200D 2642                                  ; minimally-qualified # 🤷🏽‍♂ E4.0 man shrugging: medium skin tone
+1F937 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🤷🏾‍♂️ E4.0 man shrugging: medium-dark skin tone
+1F937 1F3FE 200D 2642                                  ; minimally-qualified # 🤷🏾‍♂ E4.0 man shrugging: medium-dark skin tone
+1F937 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🤷🏿‍♂️ E4.0 man shrugging: dark skin tone
+1F937 1F3FF 200D 2642                                  ; minimally-qualified # 🤷🏿‍♂ E4.0 man shrugging: dark skin tone
+1F937 200D 2640 FE0F                                   ; fully-qualified     # 🤷‍♀️ E4.0 woman shrugging
+1F937 200D 2640                                        ; minimally-qualified # 🤷‍♀ E4.0 woman shrugging
+1F937 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🤷🏻‍♀️ E4.0 woman shrugging: light skin tone
+1F937 1F3FB 200D 2640                                  ; minimally-qualified # 🤷🏻‍♀ E4.0 woman shrugging: light skin tone
+1F937 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🤷🏼‍♀️ E4.0 woman shrugging: medium-light skin tone
+1F937 1F3FC 200D 2640                                  ; minimally-qualified # 🤷🏼‍♀ E4.0 woman shrugging: medium-light skin tone
+1F937 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🤷🏽‍♀️ E4.0 woman shrugging: medium skin tone
+1F937 1F3FD 200D 2640                                  ; minimally-qualified # 🤷🏽‍♀ E4.0 woman shrugging: medium skin tone
+1F937 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🤷🏾‍♀️ E4.0 woman shrugging: medium-dark skin tone
+1F937 1F3FE 200D 2640                                  ; minimally-qualified # 🤷🏾‍♀ E4.0 woman shrugging: medium-dark skin tone
+1F937 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🤷🏿‍♀️ E4.0 woman shrugging: dark skin tone
+1F937 1F3FF 200D 2640                                  ; minimally-qualified # 🤷🏿‍♀ E4.0 woman shrugging: dark skin tone
+
+# subgroup: person-role
+1F9D1 200D 2695 FE0F                                   ; fully-qualified     # 🧑‍⚕️ E12.1 health worker
+1F9D1 200D 2695                                        ; minimally-qualified # 🧑‍⚕ E12.1 health worker
+1F9D1 1F3FB 200D 2695 FE0F                             ; fully-qualified     # 🧑🏻‍⚕️ E12.1 health worker: light skin tone
+1F9D1 1F3FB 200D 2695                                  ; minimally-qualified # 🧑🏻‍⚕ E12.1 health worker: light skin tone
+1F9D1 1F3FC 200D 2695 FE0F                             ; fully-qualified     # 🧑🏼‍⚕️ E12.1 health worker: medium-light skin tone
+1F9D1 1F3FC 200D 2695                                  ; minimally-qualified # 🧑🏼‍⚕ E12.1 health worker: medium-light skin tone
+1F9D1 1F3FD 200D 2695 FE0F                             ; fully-qualified     # 🧑🏽‍⚕️ E12.1 health worker: medium skin tone
+1F9D1 1F3FD 200D 2695                                  ; minimally-qualified # 🧑🏽‍⚕ E12.1 health worker: medium skin tone
+1F9D1 1F3FE 200D 2695 FE0F                             ; fully-qualified     # 🧑🏾‍⚕️ E12.1 health worker: medium-dark skin tone
+1F9D1 1F3FE 200D 2695                                  ; minimally-qualified # 🧑🏾‍⚕ E12.1 health worker: medium-dark skin tone
+1F9D1 1F3FF 200D 2695 FE0F                             ; fully-qualified     # 🧑🏿‍⚕️ E12.1 health worker: dark skin tone
+1F9D1 1F3FF 200D 2695                                  ; minimally-qualified # 🧑🏿‍⚕ E12.1 health worker: dark skin tone
+1F468 200D 2695 FE0F                                   ; fully-qualified     # 👨‍⚕️ E4.0 man health worker
+1F468 200D 2695                                        ; minimally-qualified # 👨‍⚕ E4.0 man health worker
+1F468 1F3FB 200D 2695 FE0F                             ; fully-qualified     # 👨🏻‍⚕️ E4.0 man health worker: light skin tone
+1F468 1F3FB 200D 2695                                  ; minimally-qualified # 👨🏻‍⚕ E4.0 man health worker: light skin tone
+1F468 1F3FC 200D 2695 FE0F                             ; fully-qualified     # 👨🏼‍⚕️ E4.0 man health worker: medium-light skin tone
+1F468 1F3FC 200D 2695                                  ; minimally-qualified # 👨🏼‍⚕ E4.0 man health worker: medium-light skin tone
+1F468 1F3FD 200D 2695 FE0F                             ; fully-qualified     # 👨🏽‍⚕️ E4.0 man health worker: medium skin tone
+1F468 1F3FD 200D 2695                                  ; minimally-qualified # 👨🏽‍⚕ E4.0 man health worker: medium skin tone
+1F468 1F3FE 200D 2695 FE0F                             ; fully-qualified     # 👨🏾‍⚕️ E4.0 man health worker: medium-dark skin tone
+1F468 1F3FE 200D 2695                                  ; minimally-qualified # 👨🏾‍⚕ E4.0 man health worker: medium-dark skin tone
+1F468 1F3FF 200D 2695 FE0F                             ; fully-qualified     # 👨🏿‍⚕️ E4.0 man health worker: dark skin tone
+1F468 1F3FF 200D 2695                                  ; minimally-qualified # 👨🏿‍⚕ E4.0 man health worker: dark skin tone
+1F469 200D 2695 FE0F                                   ; fully-qualified     # 👩‍⚕️ E4.0 woman health worker
+1F469 200D 2695                                        ; minimally-qualified # 👩‍⚕ E4.0 woman health worker
+1F469 1F3FB 200D 2695 FE0F                             ; fully-qualified     # 👩🏻‍⚕️ E4.0 woman health worker: light skin tone
+1F469 1F3FB 200D 2695                                  ; minimally-qualified # 👩🏻‍⚕ E4.0 woman health worker: light skin tone
+1F469 1F3FC 200D 2695 FE0F                             ; fully-qualified     # 👩🏼‍⚕️ E4.0 woman health worker: medium-light skin tone
+1F469 1F3FC 200D 2695                                  ; minimally-qualified # 👩🏼‍⚕ E4.0 woman health worker: medium-light skin tone
+1F469 1F3FD 200D 2695 FE0F                             ; fully-qualified     # 👩🏽‍⚕️ E4.0 woman health worker: medium skin tone
+1F469 1F3FD 200D 2695                                  ; minimally-qualified # 👩🏽‍⚕ E4.0 woman health worker: medium skin tone
+1F469 1F3FE 200D 2695 FE0F                             ; fully-qualified     # 👩🏾‍⚕️ E4.0 woman health worker: medium-dark skin tone
+1F469 1F3FE 200D 2695                                  ; minimally-qualified # 👩🏾‍⚕ E4.0 woman health worker: medium-dark skin tone
+1F469 1F3FF 200D 2695 FE0F                             ; fully-qualified     # 👩🏿‍⚕️ E4.0 woman health worker: dark skin tone
+1F469 1F3FF 200D 2695                                  ; minimally-qualified # 👩🏿‍⚕ E4.0 woman health worker: dark skin tone
+1F9D1 200D 1F393                                       ; fully-qualified     # 🧑‍🎓 E12.1 student
+1F9D1 1F3FB 200D 1F393                                 ; fully-qualified     # 🧑🏻‍🎓 E12.1 student: light skin tone
+1F9D1 1F3FC 200D 1F393                                 ; fully-qualified     # 🧑🏼‍🎓 E12.1 student: medium-light skin tone
+1F9D1 1F3FD 200D 1F393                                 ; fully-qualified     # 🧑🏽‍🎓 E12.1 student: medium skin tone
+1F9D1 1F3FE 200D 1F393                                 ; fully-qualified     # 🧑🏾‍🎓 E12.1 student: medium-dark skin tone
+1F9D1 1F3FF 200D 1F393                                 ; fully-qualified     # 🧑🏿‍🎓 E12.1 student: dark skin tone
+1F468 200D 1F393                                       ; fully-qualified     # 👨‍🎓 E4.0 man student
+1F468 1F3FB 200D 1F393                                 ; fully-qualified     # 👨🏻‍🎓 E4.0 man student: light skin tone
+1F468 1F3FC 200D 1F393                                 ; fully-qualified     # 👨🏼‍🎓 E4.0 man student: medium-light skin tone
+1F468 1F3FD 200D 1F393                                 ; fully-qualified     # 👨🏽‍🎓 E4.0 man student: medium skin tone
+1F468 1F3FE 200D 1F393                                 ; fully-qualified     # 👨🏾‍🎓 E4.0 man student: medium-dark skin tone
+1F468 1F3FF 200D 1F393                                 ; fully-qualified     # 👨🏿‍🎓 E4.0 man student: dark skin tone
+1F469 200D 1F393                                       ; fully-qualified     # 👩‍🎓 E4.0 woman student
+1F469 1F3FB 200D 1F393                                 ; fully-qualified     # 👩🏻‍🎓 E4.0 woman student: light skin tone
+1F469 1F3FC 200D 1F393                                 ; fully-qualified     # 👩🏼‍🎓 E4.0 woman student: medium-light skin tone
+1F469 1F3FD 200D 1F393                                 ; fully-qualified     # 👩🏽‍🎓 E4.0 woman student: medium skin tone
+1F469 1F3FE 200D 1F393                                 ; fully-qualified     # 👩🏾‍🎓 E4.0 woman student: medium-dark skin tone
+1F469 1F3FF 200D 1F393                                 ; fully-qualified     # 👩🏿‍🎓 E4.0 woman student: dark skin tone
+1F9D1 200D 1F3EB                                       ; fully-qualified     # 🧑‍🏫 E12.1 teacher
+1F9D1 1F3FB 200D 1F3EB                                 ; fully-qualified     # 🧑🏻‍🏫 E12.1 teacher: light skin tone
+1F9D1 1F3FC 200D 1F3EB                                 ; fully-qualified     # 🧑🏼‍🏫 E12.1 teacher: medium-light skin tone
+1F9D1 1F3FD 200D 1F3EB                                 ; fully-qualified     # 🧑🏽‍🏫 E12.1 teacher: medium skin tone
+1F9D1 1F3FE 200D 1F3EB                                 ; fully-qualified     # 🧑🏾‍🏫 E12.1 teacher: medium-dark skin tone
+1F9D1 1F3FF 200D 1F3EB                                 ; fully-qualified     # 🧑🏿‍🏫 E12.1 teacher: dark skin tone
+1F468 200D 1F3EB                                       ; fully-qualified     # 👨‍🏫 E4.0 man teacher
+1F468 1F3FB 200D 1F3EB                                 ; fully-qualified     # 👨🏻‍🏫 E4.0 man teacher: light skin tone
+1F468 1F3FC 200D 1F3EB                                 ; fully-qualified     # 👨🏼‍🏫 E4.0 man teacher: medium-light skin tone
+1F468 1F3FD 200D 1F3EB                                 ; fully-qualified     # 👨🏽‍🏫 E4.0 man teacher: medium skin tone
+1F468 1F3FE 200D 1F3EB                                 ; fully-qualified     # 👨🏾‍🏫 E4.0 man teacher: medium-dark skin tone
+1F468 1F3FF 200D 1F3EB                                 ; fully-qualified     # 👨🏿‍🏫 E4.0 man teacher: dark skin tone
+1F469 200D 1F3EB                                       ; fully-qualified     # 👩‍🏫 E4.0 woman teacher
+1F469 1F3FB 200D 1F3EB                                 ; fully-qualified     # 👩🏻‍🏫 E4.0 woman teacher: light skin tone
+1F469 1F3FC 200D 1F3EB                                 ; fully-qualified     # 👩🏼‍🏫 E4.0 woman teacher: medium-light skin tone
+1F469 1F3FD 200D 1F3EB                                 ; fully-qualified     # 👩🏽‍🏫 E4.0 woman teacher: medium skin tone
+1F469 1F3FE 200D 1F3EB                                 ; fully-qualified     # 👩🏾‍🏫 E4.0 woman teacher: medium-dark skin tone
+1F469 1F3FF 200D 1F3EB                                 ; fully-qualified     # 👩🏿‍🏫 E4.0 woman teacher: dark skin tone
+1F9D1 200D 2696 FE0F                                   ; fully-qualified     # 🧑‍⚖️ E12.1 judge
+1F9D1 200D 2696                                        ; minimally-qualified # 🧑‍⚖ E12.1 judge
+1F9D1 1F3FB 200D 2696 FE0F                             ; fully-qualified     # 🧑🏻‍⚖️ E12.1 judge: light skin tone
+1F9D1 1F3FB 200D 2696                                  ; minimally-qualified # 🧑🏻‍⚖ E12.1 judge: light skin tone
+1F9D1 1F3FC 200D 2696 FE0F                             ; fully-qualified     # 🧑🏼‍⚖️ E12.1 judge: medium-light skin tone
+1F9D1 1F3FC 200D 2696                                  ; minimally-qualified # 🧑🏼‍⚖ E12.1 judge: medium-light skin tone
+1F9D1 1F3FD 200D 2696 FE0F                             ; fully-qualified     # 🧑🏽‍⚖️ E12.1 judge: medium skin tone
+1F9D1 1F3FD 200D 2696                                  ; minimally-qualified # 🧑🏽‍⚖ E12.1 judge: medium skin tone
+1F9D1 1F3FE 200D 2696 FE0F                             ; fully-qualified     # 🧑🏾‍⚖️ E12.1 judge: medium-dark skin tone
+1F9D1 1F3FE 200D 2696                                  ; minimally-qualified # 🧑🏾‍⚖ E12.1 judge: medium-dark skin tone
+1F9D1 1F3FF 200D 2696 FE0F                             ; fully-qualified     # 🧑🏿‍⚖️ E12.1 judge: dark skin tone
+1F9D1 1F3FF 200D 2696                                  ; minimally-qualified # 🧑🏿‍⚖ E12.1 judge: dark skin tone
+1F468 200D 2696 FE0F                                   ; fully-qualified     # 👨‍⚖️ E4.0 man judge
+1F468 200D 2696                                        ; minimally-qualified # 👨‍⚖ E4.0 man judge
+1F468 1F3FB 200D 2696 FE0F                             ; fully-qualified     # 👨🏻‍⚖️ E4.0 man judge: light skin tone
+1F468 1F3FB 200D 2696                                  ; minimally-qualified # 👨🏻‍⚖ E4.0 man judge: light skin tone
+1F468 1F3FC 200D 2696 FE0F                             ; fully-qualified     # 👨🏼‍⚖️ E4.0 man judge: medium-light skin tone
+1F468 1F3FC 200D 2696                                  ; minimally-qualified # 👨🏼‍⚖ E4.0 man judge: medium-light skin tone
+1F468 1F3FD 200D 2696 FE0F                             ; fully-qualified     # 👨🏽‍⚖️ E4.0 man judge: medium skin tone
+1F468 1F3FD 200D 2696                                  ; minimally-qualified # 👨🏽‍⚖ E4.0 man judge: medium skin tone
+1F468 1F3FE 200D 2696 FE0F                             ; fully-qualified     # 👨🏾‍⚖️ E4.0 man judge: medium-dark skin tone
+1F468 1F3FE 200D 2696                                  ; minimally-qualified # 👨🏾‍⚖ E4.0 man judge: medium-dark skin tone
+1F468 1F3FF 200D 2696 FE0F                             ; fully-qualified     # 👨🏿‍⚖️ E4.0 man judge: dark skin tone
+1F468 1F3FF 200D 2696                                  ; minimally-qualified # 👨🏿‍⚖ E4.0 man judge: dark skin tone
+1F469 200D 2696 FE0F                                   ; fully-qualified     # 👩‍⚖️ E4.0 woman judge
+1F469 200D 2696                                        ; minimally-qualified # 👩‍⚖ E4.0 woman judge
+1F469 1F3FB 200D 2696 FE0F                             ; fully-qualified     # 👩🏻‍⚖️ E4.0 woman judge: light skin tone
+1F469 1F3FB 200D 2696                                  ; minimally-qualified # 👩🏻‍⚖ E4.0 woman judge: light skin tone
+1F469 1F3FC 200D 2696 FE0F                             ; fully-qualified     # 👩🏼‍⚖️ E4.0 woman judge: medium-light skin tone
+1F469 1F3FC 200D 2696                                  ; minimally-qualified # 👩🏼‍⚖ E4.0 woman judge: medium-light skin tone
+1F469 1F3FD 200D 2696 FE0F                             ; fully-qualified     # 👩🏽‍⚖️ E4.0 woman judge: medium skin tone
+1F469 1F3FD 200D 2696                                  ; minimally-qualified # 👩🏽‍⚖ E4.0 woman judge: medium skin tone
+1F469 1F3FE 200D 2696 FE0F                             ; fully-qualified     # 👩🏾‍⚖️ E4.0 woman judge: medium-dark skin tone
+1F469 1F3FE 200D 2696                                  ; minimally-qualified # 👩🏾‍⚖ E4.0 woman judge: medium-dark skin tone
+1F469 1F3FF 200D 2696 FE0F                             ; fully-qualified     # 👩🏿‍⚖️ E4.0 woman judge: dark skin tone
+1F469 1F3FF 200D 2696                                  ; minimally-qualified # 👩🏿‍⚖ E4.0 woman judge: dark skin tone
+1F9D1 200D 1F33E                                       ; fully-qualified     # 🧑‍🌾 E12.1 farmer
+1F9D1 1F3FB 200D 1F33E                                 ; fully-qualified     # 🧑🏻‍🌾 E12.1 farmer: light skin tone
+1F9D1 1F3FC 200D 1F33E                                 ; fully-qualified     # 🧑🏼‍🌾 E12.1 farmer: medium-light skin tone
+1F9D1 1F3FD 200D 1F33E                                 ; fully-qualified     # 🧑🏽‍🌾 E12.1 farmer: medium skin tone
+1F9D1 1F3FE 200D 1F33E                                 ; fully-qualified     # 🧑🏾‍🌾 E12.1 farmer: medium-dark skin tone
+1F9D1 1F3FF 200D 1F33E                                 ; fully-qualified     # 🧑🏿‍🌾 E12.1 farmer: dark skin tone
+1F468 200D 1F33E                                       ; fully-qualified     # 👨‍🌾 E4.0 man farmer
+1F468 1F3FB 200D 1F33E                                 ; fully-qualified     # 👨🏻‍🌾 E4.0 man farmer: light skin tone
+1F468 1F3FC 200D 1F33E                                 ; fully-qualified     # 👨🏼‍🌾 E4.0 man farmer: medium-light skin tone
+1F468 1F3FD 200D 1F33E                                 ; fully-qualified     # 👨🏽‍🌾 E4.0 man farmer: medium skin tone
+1F468 1F3FE 200D 1F33E                                 ; fully-qualified     # 👨🏾‍🌾 E4.0 man farmer: medium-dark skin tone
+1F468 1F3FF 200D 1F33E                                 ; fully-qualified     # 👨🏿‍🌾 E4.0 man farmer: dark skin tone
+1F469 200D 1F33E                                       ; fully-qualified     # 👩‍🌾 E4.0 woman farmer
+1F469 1F3FB 200D 1F33E                                 ; fully-qualified     # 👩🏻‍🌾 E4.0 woman farmer: light skin tone
+1F469 1F3FC 200D 1F33E                                 ; fully-qualified     # 👩🏼‍🌾 E4.0 woman farmer: medium-light skin tone
+1F469 1F3FD 200D 1F33E                                 ; fully-qualified     # 👩🏽‍🌾 E4.0 woman farmer: medium skin tone
+1F469 1F3FE 200D 1F33E                                 ; fully-qualified     # 👩🏾‍🌾 E4.0 woman farmer: medium-dark skin tone
+1F469 1F3FF 200D 1F33E                                 ; fully-qualified     # 👩🏿‍🌾 E4.0 woman farmer: dark skin tone
+1F9D1 200D 1F373                                       ; fully-qualified     # 🧑‍🍳 E12.1 cook
+1F9D1 1F3FB 200D 1F373                                 ; fully-qualified     # 🧑🏻‍🍳 E12.1 cook: light skin tone
+1F9D1 1F3FC 200D 1F373                                 ; fully-qualified     # 🧑🏼‍🍳 E12.1 cook: medium-light skin tone
+1F9D1 1F3FD 200D 1F373                                 ; fully-qualified     # 🧑🏽‍🍳 E12.1 cook: medium skin tone
+1F9D1 1F3FE 200D 1F373                                 ; fully-qualified     # 🧑🏾‍🍳 E12.1 cook: medium-dark skin tone
+1F9D1 1F3FF 200D 1F373                                 ; fully-qualified     # 🧑🏿‍🍳 E12.1 cook: dark skin tone
+1F468 200D 1F373                                       ; fully-qualified     # 👨‍🍳 E4.0 man cook
+1F468 1F3FB 200D 1F373                                 ; fully-qualified     # 👨🏻‍🍳 E4.0 man cook: light skin tone
+1F468 1F3FC 200D 1F373                                 ; fully-qualified     # 👨🏼‍🍳 E4.0 man cook: medium-light skin tone
+1F468 1F3FD 200D 1F373                                 ; fully-qualified     # 👨🏽‍🍳 E4.0 man cook: medium skin tone
+1F468 1F3FE 200D 1F373                                 ; fully-qualified     # 👨🏾‍🍳 E4.0 man cook: medium-dark skin tone
+1F468 1F3FF 200D 1F373                                 ; fully-qualified     # 👨🏿‍🍳 E4.0 man cook: dark skin tone
+1F469 200D 1F373                                       ; fully-qualified     # 👩‍🍳 E4.0 woman cook
+1F469 1F3FB 200D 1F373                                 ; fully-qualified     # 👩🏻‍🍳 E4.0 woman cook: light skin tone
+1F469 1F3FC 200D 1F373                                 ; fully-qualified     # 👩🏼‍🍳 E4.0 woman cook: medium-light skin tone
+1F469 1F3FD 200D 1F373                                 ; fully-qualified     # 👩🏽‍🍳 E4.0 woman cook: medium skin tone
+1F469 1F3FE 200D 1F373                                 ; fully-qualified     # 👩🏾‍🍳 E4.0 woman cook: medium-dark skin tone
+1F469 1F3FF 200D 1F373                                 ; fully-qualified     # 👩🏿‍🍳 E4.0 woman cook: dark skin tone
+1F9D1 200D 1F527                                       ; fully-qualified     # 🧑‍🔧 E12.1 mechanic
+1F9D1 1F3FB 200D 1F527                                 ; fully-qualified     # 🧑🏻‍🔧 E12.1 mechanic: light skin tone
+1F9D1 1F3FC 200D 1F527                                 ; fully-qualified     # 🧑🏼‍🔧 E12.1 mechanic: medium-light skin tone
+1F9D1 1F3FD 200D 1F527                                 ; fully-qualified     # 🧑🏽‍🔧 E12.1 mechanic: medium skin tone
+1F9D1 1F3FE 200D 1F527                                 ; fully-qualified     # 🧑🏾‍🔧 E12.1 mechanic: medium-dark skin tone
+1F9D1 1F3FF 200D 1F527                                 ; fully-qualified     # 🧑🏿‍🔧 E12.1 mechanic: dark skin tone
+1F468 200D 1F527                                       ; fully-qualified     # 👨‍🔧 E4.0 man mechanic
+1F468 1F3FB 200D 1F527                                 ; fully-qualified     # 👨🏻‍🔧 E4.0 man mechanic: light skin tone
+1F468 1F3FC 200D 1F527                                 ; fully-qualified     # 👨🏼‍🔧 E4.0 man mechanic: medium-light skin tone
+1F468 1F3FD 200D 1F527                                 ; fully-qualified     # 👨🏽‍🔧 E4.0 man mechanic: medium skin tone
+1F468 1F3FE 200D 1F527                                 ; fully-qualified     # 👨🏾‍🔧 E4.0 man mechanic: medium-dark skin tone
+1F468 1F3FF 200D 1F527                                 ; fully-qualified     # 👨🏿‍🔧 E4.0 man mechanic: dark skin tone
+1F469 200D 1F527                                       ; fully-qualified     # 👩‍🔧 E4.0 woman mechanic
+1F469 1F3FB 200D 1F527                                 ; fully-qualified     # 👩🏻‍🔧 E4.0 woman mechanic: light skin tone
+1F469 1F3FC 200D 1F527                                 ; fully-qualified     # 👩🏼‍🔧 E4.0 woman mechanic: medium-light skin tone
+1F469 1F3FD 200D 1F527                                 ; fully-qualified     # 👩🏽‍🔧 E4.0 woman mechanic: medium skin tone
+1F469 1F3FE 200D 1F527                                 ; fully-qualified     # 👩🏾‍🔧 E4.0 woman mechanic: medium-dark skin tone
+1F469 1F3FF 200D 1F527                                 ; fully-qualified     # 👩🏿‍🔧 E4.0 woman mechanic: dark skin tone
+1F9D1 200D 1F3ED                                       ; fully-qualified     # 🧑‍🏭 E12.1 factory worker
+1F9D1 1F3FB 200D 1F3ED                                 ; fully-qualified     # 🧑🏻‍🏭 E12.1 factory worker: light skin tone
+1F9D1 1F3FC 200D 1F3ED                                 ; fully-qualified     # 🧑🏼‍🏭 E12.1 factory worker: medium-light skin tone
+1F9D1 1F3FD 200D 1F3ED                                 ; fully-qualified     # 🧑🏽‍🏭 E12.1 factory worker: medium skin tone
+1F9D1 1F3FE 200D 1F3ED                                 ; fully-qualified     # 🧑🏾‍🏭 E12.1 factory worker: medium-dark skin tone
+1F9D1 1F3FF 200D 1F3ED                                 ; fully-qualified     # 🧑🏿‍🏭 E12.1 factory worker: dark skin tone
+1F468 200D 1F3ED                                       ; fully-qualified     # 👨‍🏭 E4.0 man factory worker
+1F468 1F3FB 200D 1F3ED                                 ; fully-qualified     # 👨🏻‍🏭 E4.0 man factory worker: light skin tone
+1F468 1F3FC 200D 1F3ED                                 ; fully-qualified     # 👨🏼‍🏭 E4.0 man factory worker: medium-light skin tone
+1F468 1F3FD 200D 1F3ED                                 ; fully-qualified     # 👨🏽‍🏭 E4.0 man factory worker: medium skin tone
+1F468 1F3FE 200D 1F3ED                                 ; fully-qualified     # 👨🏾‍🏭 E4.0 man factory worker: medium-dark skin tone
+1F468 1F3FF 200D 1F3ED                                 ; fully-qualified     # 👨🏿‍🏭 E4.0 man factory worker: dark skin tone
+1F469 200D 1F3ED                                       ; fully-qualified     # 👩‍🏭 E4.0 woman factory worker
+1F469 1F3FB 200D 1F3ED                                 ; fully-qualified     # 👩🏻‍🏭 E4.0 woman factory worker: light skin tone
+1F469 1F3FC 200D 1F3ED                                 ; fully-qualified     # 👩🏼‍🏭 E4.0 woman factory worker: medium-light skin tone
+1F469 1F3FD 200D 1F3ED                                 ; fully-qualified     # 👩🏽‍🏭 E4.0 woman factory worker: medium skin tone
+1F469 1F3FE 200D 1F3ED                                 ; fully-qualified     # 👩🏾‍🏭 E4.0 woman factory worker: medium-dark skin tone
+1F469 1F3FF 200D 1F3ED                                 ; fully-qualified     # 👩🏿‍🏭 E4.0 woman factory worker: dark skin tone
+1F9D1 200D 1F4BC                                       ; fully-qualified     # 🧑‍💼 E12.1 office worker
+1F9D1 1F3FB 200D 1F4BC                                 ; fully-qualified     # 🧑🏻‍💼 E12.1 office worker: light skin tone
+1F9D1 1F3FC 200D 1F4BC                                 ; fully-qualified     # 🧑🏼‍💼 E12.1 office worker: medium-light skin tone
+1F9D1 1F3FD 200D 1F4BC                                 ; fully-qualified     # 🧑🏽‍💼 E12.1 office worker: medium skin tone
+1F9D1 1F3FE 200D 1F4BC                                 ; fully-qualified     # 🧑🏾‍💼 E12.1 office worker: medium-dark skin tone
+1F9D1 1F3FF 200D 1F4BC                                 ; fully-qualified     # 🧑🏿‍💼 E12.1 office worker: dark skin tone
+1F468 200D 1F4BC                                       ; fully-qualified     # 👨‍💼 E4.0 man office worker
+1F468 1F3FB 200D 1F4BC                                 ; fully-qualified     # 👨🏻‍💼 E4.0 man office worker: light skin tone
+1F468 1F3FC 200D 1F4BC                                 ; fully-qualified     # 👨🏼‍💼 E4.0 man office worker: medium-light skin tone
+1F468 1F3FD 200D 1F4BC                                 ; fully-qualified     # 👨🏽‍💼 E4.0 man office worker: medium skin tone
+1F468 1F3FE 200D 1F4BC                                 ; fully-qualified     # 👨🏾‍💼 E4.0 man office worker: medium-dark skin tone
+1F468 1F3FF 200D 1F4BC                                 ; fully-qualified     # 👨🏿‍💼 E4.0 man office worker: dark skin tone
+1F469 200D 1F4BC                                       ; fully-qualified     # 👩‍💼 E4.0 woman office worker
+1F469 1F3FB 200D 1F4BC                                 ; fully-qualified     # 👩🏻‍💼 E4.0 woman office worker: light skin tone
+1F469 1F3FC 200D 1F4BC                                 ; fully-qualified     # 👩🏼‍💼 E4.0 woman office worker: medium-light skin tone
+1F469 1F3FD 200D 1F4BC                                 ; fully-qualified     # 👩🏽‍💼 E4.0 woman office worker: medium skin tone
+1F469 1F3FE 200D 1F4BC                                 ; fully-qualified     # 👩🏾‍💼 E4.0 woman office worker: medium-dark skin tone
+1F469 1F3FF 200D 1F4BC                                 ; fully-qualified     # 👩🏿‍💼 E4.0 woman office worker: dark skin tone
+1F9D1 200D 1F52C                                       ; fully-qualified     # 🧑‍🔬 E12.1 scientist
+1F9D1 1F3FB 200D 1F52C                                 ; fully-qualified     # 🧑🏻‍🔬 E12.1 scientist: light skin tone
+1F9D1 1F3FC 200D 1F52C                                 ; fully-qualified     # 🧑🏼‍🔬 E12.1 scientist: medium-light skin tone
+1F9D1 1F3FD 200D 1F52C                                 ; fully-qualified     # 🧑🏽‍🔬 E12.1 scientist: medium skin tone
+1F9D1 1F3FE 200D 1F52C                                 ; fully-qualified     # 🧑🏾‍🔬 E12.1 scientist: medium-dark skin tone
+1F9D1 1F3FF 200D 1F52C                                 ; fully-qualified     # 🧑🏿‍🔬 E12.1 scientist: dark skin tone
+1F468 200D 1F52C                                       ; fully-qualified     # 👨‍🔬 E4.0 man scientist
+1F468 1F3FB 200D 1F52C                                 ; fully-qualified     # 👨🏻‍🔬 E4.0 man scientist: light skin tone
+1F468 1F3FC 200D 1F52C                                 ; fully-qualified     # 👨🏼‍🔬 E4.0 man scientist: medium-light skin tone
+1F468 1F3FD 200D 1F52C                                 ; fully-qualified     # 👨🏽‍🔬 E4.0 man scientist: medium skin tone
+1F468 1F3FE 200D 1F52C                                 ; fully-qualified     # 👨🏾‍🔬 E4.0 man scientist: medium-dark skin tone
+1F468 1F3FF 200D 1F52C                                 ; fully-qualified     # 👨🏿‍🔬 E4.0 man scientist: dark skin tone
+1F469 200D 1F52C                                       ; fully-qualified     # 👩‍🔬 E4.0 woman scientist
+1F469 1F3FB 200D 1F52C                                 ; fully-qualified     # 👩🏻‍🔬 E4.0 woman scientist: light skin tone
+1F469 1F3FC 200D 1F52C                                 ; fully-qualified     # 👩🏼‍🔬 E4.0 woman scientist: medium-light skin tone
+1F469 1F3FD 200D 1F52C                                 ; fully-qualified     # 👩🏽‍🔬 E4.0 woman scientist: medium skin tone
+1F469 1F3FE 200D 1F52C                                 ; fully-qualified     # 👩🏾‍🔬 E4.0 woman scientist: medium-dark skin tone
+1F469 1F3FF 200D 1F52C                                 ; fully-qualified     # 👩🏿‍🔬 E4.0 woman scientist: dark skin tone
+1F9D1 200D 1F4BB                                       ; fully-qualified     # 🧑‍💻 E12.1 technologist
+1F9D1 1F3FB 200D 1F4BB                                 ; fully-qualified     # 🧑🏻‍💻 E12.1 technologist: light skin tone
+1F9D1 1F3FC 200D 1F4BB                                 ; fully-qualified     # 🧑🏼‍💻 E12.1 technologist: medium-light skin tone
+1F9D1 1F3FD 200D 1F4BB                                 ; fully-qualified     # 🧑🏽‍💻 E12.1 technologist: medium skin tone
+1F9D1 1F3FE 200D 1F4BB                                 ; fully-qualified     # 🧑🏾‍💻 E12.1 technologist: medium-dark skin tone
+1F9D1 1F3FF 200D 1F4BB                                 ; fully-qualified     # 🧑🏿‍💻 E12.1 technologist: dark skin tone
+1F468 200D 1F4BB                                       ; fully-qualified     # 👨‍💻 E4.0 man technologist
+1F468 1F3FB 200D 1F4BB                                 ; fully-qualified     # 👨🏻‍💻 E4.0 man technologist: light skin tone
+1F468 1F3FC 200D 1F4BB                                 ; fully-qualified     # 👨🏼‍💻 E4.0 man technologist: medium-light skin tone
+1F468 1F3FD 200D 1F4BB                                 ; fully-qualified     # 👨🏽‍💻 E4.0 man technologist: medium skin tone
+1F468 1F3FE 200D 1F4BB                                 ; fully-qualified     # 👨🏾‍💻 E4.0 man technologist: medium-dark skin tone
+1F468 1F3FF 200D 1F4BB                                 ; fully-qualified     # 👨🏿‍💻 E4.0 man technologist: dark skin tone
+1F469 200D 1F4BB                                       ; fully-qualified     # 👩‍💻 E4.0 woman technologist
+1F469 1F3FB 200D 1F4BB                                 ; fully-qualified     # 👩🏻‍💻 E4.0 woman technologist: light skin tone
+1F469 1F3FC 200D 1F4BB                                 ; fully-qualified     # 👩🏼‍💻 E4.0 woman technologist: medium-light skin tone
+1F469 1F3FD 200D 1F4BB                                 ; fully-qualified     # 👩🏽‍💻 E4.0 woman technologist: medium skin tone
+1F469 1F3FE 200D 1F4BB                                 ; fully-qualified     # 👩🏾‍💻 E4.0 woman technologist: medium-dark skin tone
+1F469 1F3FF 200D 1F4BB                                 ; fully-qualified     # 👩🏿‍💻 E4.0 woman technologist: dark skin tone
+1F9D1 200D 1F3A4                                       ; fully-qualified     # 🧑‍🎤 E12.1 singer
+1F9D1 1F3FB 200D 1F3A4                                 ; fully-qualified     # 🧑🏻‍🎤 E12.1 singer: light skin tone
+1F9D1 1F3FC 200D 1F3A4                                 ; fully-qualified     # 🧑🏼‍🎤 E12.1 singer: medium-light skin tone
+1F9D1 1F3FD 200D 1F3A4                                 ; fully-qualified     # 🧑🏽‍🎤 E12.1 singer: medium skin tone
+1F9D1 1F3FE 200D 1F3A4                                 ; fully-qualified     # 🧑🏾‍🎤 E12.1 singer: medium-dark skin tone
+1F9D1 1F3FF 200D 1F3A4                                 ; fully-qualified     # 🧑🏿‍🎤 E12.1 singer: dark skin tone
+1F468 200D 1F3A4                                       ; fully-qualified     # 👨‍🎤 E4.0 man singer
+1F468 1F3FB 200D 1F3A4                                 ; fully-qualified     # 👨🏻‍🎤 E4.0 man singer: light skin tone
+1F468 1F3FC 200D 1F3A4                                 ; fully-qualified     # 👨🏼‍🎤 E4.0 man singer: medium-light skin tone
+1F468 1F3FD 200D 1F3A4                                 ; fully-qualified     # 👨🏽‍🎤 E4.0 man singer: medium skin tone
+1F468 1F3FE 200D 1F3A4                                 ; fully-qualified     # 👨🏾‍🎤 E4.0 man singer: medium-dark skin tone
+1F468 1F3FF 200D 1F3A4                                 ; fully-qualified     # 👨🏿‍🎤 E4.0 man singer: dark skin tone
+1F469 200D 1F3A4                                       ; fully-qualified     # 👩‍🎤 E4.0 woman singer
+1F469 1F3FB 200D 1F3A4                                 ; fully-qualified     # 👩🏻‍🎤 E4.0 woman singer: light skin tone
+1F469 1F3FC 200D 1F3A4                                 ; fully-qualified     # 👩🏼‍🎤 E4.0 woman singer: medium-light skin tone
+1F469 1F3FD 200D 1F3A4                                 ; fully-qualified     # 👩🏽‍🎤 E4.0 woman singer: medium skin tone
+1F469 1F3FE 200D 1F3A4                                 ; fully-qualified     # 👩🏾‍🎤 E4.0 woman singer: medium-dark skin tone
+1F469 1F3FF 200D 1F3A4                                 ; fully-qualified     # 👩🏿‍🎤 E4.0 woman singer: dark skin tone
+1F9D1 200D 1F3A8                                       ; fully-qualified     # 🧑‍🎨 E12.1 artist
+1F9D1 1F3FB 200D 1F3A8                                 ; fully-qualified     # 🧑🏻‍🎨 E12.1 artist: light skin tone
+1F9D1 1F3FC 200D 1F3A8                                 ; fully-qualified     # 🧑🏼‍🎨 E12.1 artist: medium-light skin tone
+1F9D1 1F3FD 200D 1F3A8                                 ; fully-qualified     # 🧑🏽‍🎨 E12.1 artist: medium skin tone
+1F9D1 1F3FE 200D 1F3A8                                 ; fully-qualified     # 🧑🏾‍🎨 E12.1 artist: medium-dark skin tone
+1F9D1 1F3FF 200D 1F3A8                                 ; fully-qualified     # 🧑🏿‍🎨 E12.1 artist: dark skin tone
+1F468 200D 1F3A8                                       ; fully-qualified     # 👨‍🎨 E4.0 man artist
+1F468 1F3FB 200D 1F3A8                                 ; fully-qualified     # 👨🏻‍🎨 E4.0 man artist: light skin tone
+1F468 1F3FC 200D 1F3A8                                 ; fully-qualified     # 👨🏼‍🎨 E4.0 man artist: medium-light skin tone
+1F468 1F3FD 200D 1F3A8                                 ; fully-qualified     # 👨🏽‍🎨 E4.0 man artist: medium skin tone
+1F468 1F3FE 200D 1F3A8                                 ; fully-qualified     # 👨🏾‍🎨 E4.0 man artist: medium-dark skin tone
+1F468 1F3FF 200D 1F3A8                                 ; fully-qualified     # 👨🏿‍🎨 E4.0 man artist: dark skin tone
+1F469 200D 1F3A8                                       ; fully-qualified     # 👩‍🎨 E4.0 woman artist
+1F469 1F3FB 200D 1F3A8                                 ; fully-qualified     # 👩🏻‍🎨 E4.0 woman artist: light skin tone
+1F469 1F3FC 200D 1F3A8                                 ; fully-qualified     # 👩🏼‍🎨 E4.0 woman artist: medium-light skin tone
+1F469 1F3FD 200D 1F3A8                                 ; fully-qualified     # 👩🏽‍🎨 E4.0 woman artist: medium skin tone
+1F469 1F3FE 200D 1F3A8                                 ; fully-qualified     # 👩🏾‍🎨 E4.0 woman artist: medium-dark skin tone
+1F469 1F3FF 200D 1F3A8                                 ; fully-qualified     # 👩🏿‍🎨 E4.0 woman artist: dark skin tone
+1F9D1 200D 2708 FE0F                                   ; fully-qualified     # 🧑‍✈️ E12.1 pilot
+1F9D1 200D 2708                                        ; minimally-qualified # 🧑‍✈ E12.1 pilot
+1F9D1 1F3FB 200D 2708 FE0F                             ; fully-qualified     # 🧑🏻‍✈️ E12.1 pilot: light skin tone
+1F9D1 1F3FB 200D 2708                                  ; minimally-qualified # 🧑🏻‍✈ E12.1 pilot: light skin tone
+1F9D1 1F3FC 200D 2708 FE0F                             ; fully-qualified     # 🧑🏼‍✈️ E12.1 pilot: medium-light skin tone
+1F9D1 1F3FC 200D 2708                                  ; minimally-qualified # 🧑🏼‍✈ E12.1 pilot: medium-light skin tone
+1F9D1 1F3FD 200D 2708 FE0F                             ; fully-qualified     # 🧑🏽‍✈️ E12.1 pilot: medium skin tone
+1F9D1 1F3FD 200D 2708                                  ; minimally-qualified # 🧑🏽‍✈ E12.1 pilot: medium skin tone
+1F9D1 1F3FE 200D 2708 FE0F                             ; fully-qualified     # 🧑🏾‍✈️ E12.1 pilot: medium-dark skin tone
+1F9D1 1F3FE 200D 2708                                  ; minimally-qualified # 🧑🏾‍✈ E12.1 pilot: medium-dark skin tone
+1F9D1 1F3FF 200D 2708 FE0F                             ; fully-qualified     # 🧑🏿‍✈️ E12.1 pilot: dark skin tone
+1F9D1 1F3FF 200D 2708                                  ; minimally-qualified # 🧑🏿‍✈ E12.1 pilot: dark skin tone
+1F468 200D 2708 FE0F                                   ; fully-qualified     # 👨‍✈️ E4.0 man pilot
+1F468 200D 2708                                        ; minimally-qualified # 👨‍✈ E4.0 man pilot
+1F468 1F3FB 200D 2708 FE0F                             ; fully-qualified     # 👨🏻‍✈️ E4.0 man pilot: light skin tone
+1F468 1F3FB 200D 2708                                  ; minimally-qualified # 👨🏻‍✈ E4.0 man pilot: light skin tone
+1F468 1F3FC 200D 2708 FE0F                             ; fully-qualified     # 👨🏼‍✈️ E4.0 man pilot: medium-light skin tone
+1F468 1F3FC 200D 2708                                  ; minimally-qualified # 👨🏼‍✈ E4.0 man pilot: medium-light skin tone
+1F468 1F3FD 200D 2708 FE0F                             ; fully-qualified     # 👨🏽‍✈️ E4.0 man pilot: medium skin tone
+1F468 1F3FD 200D 2708                                  ; minimally-qualified # 👨🏽‍✈ E4.0 man pilot: medium skin tone
+1F468 1F3FE 200D 2708 FE0F                             ; fully-qualified     # 👨🏾‍✈️ E4.0 man pilot: medium-dark skin tone
+1F468 1F3FE 200D 2708                                  ; minimally-qualified # 👨🏾‍✈ E4.0 man pilot: medium-dark skin tone
+1F468 1F3FF 200D 2708 FE0F                             ; fully-qualified     # 👨🏿‍✈️ E4.0 man pilot: dark skin tone
+1F468 1F3FF 200D 2708                                  ; minimally-qualified # 👨🏿‍✈ E4.0 man pilot: dark skin tone
+1F469 200D 2708 FE0F                                   ; fully-qualified     # 👩‍✈️ E4.0 woman pilot
+1F469 200D 2708                                        ; minimally-qualified # 👩‍✈ E4.0 woman pilot
+1F469 1F3FB 200D 2708 FE0F                             ; fully-qualified     # 👩🏻‍✈️ E4.0 woman pilot: light skin tone
+1F469 1F3FB 200D 2708                                  ; minimally-qualified # 👩🏻‍✈ E4.0 woman pilot: light skin tone
+1F469 1F3FC 200D 2708 FE0F                             ; fully-qualified     # 👩🏼‍✈️ E4.0 woman pilot: medium-light skin tone
+1F469 1F3FC 200D 2708                                  ; minimally-qualified # 👩🏼‍✈ E4.0 woman pilot: medium-light skin tone
+1F469 1F3FD 200D 2708 FE0F                             ; fully-qualified     # 👩🏽‍✈️ E4.0 woman pilot: medium skin tone
+1F469 1F3FD 200D 2708                                  ; minimally-qualified # 👩🏽‍✈ E4.0 woman pilot: medium skin tone
+1F469 1F3FE 200D 2708 FE0F                             ; fully-qualified     # 👩🏾‍✈️ E4.0 woman pilot: medium-dark skin tone
+1F469 1F3FE 200D 2708                                  ; minimally-qualified # 👩🏾‍✈ E4.0 woman pilot: medium-dark skin tone
+1F469 1F3FF 200D 2708 FE0F                             ; fully-qualified     # 👩🏿‍✈️ E4.0 woman pilot: dark skin tone
+1F469 1F3FF 200D 2708                                  ; minimally-qualified # 👩🏿‍✈ E4.0 woman pilot: dark skin tone
+1F9D1 200D 1F680                                       ; fully-qualified     # 🧑‍🚀 E12.1 astronaut
+1F9D1 1F3FB 200D 1F680                                 ; fully-qualified     # 🧑🏻‍🚀 E12.1 astronaut: light skin tone
+1F9D1 1F3FC 200D 1F680                                 ; fully-qualified     # 🧑🏼‍🚀 E12.1 astronaut: medium-light skin tone
+1F9D1 1F3FD 200D 1F680                                 ; fully-qualified     # 🧑🏽‍🚀 E12.1 astronaut: medium skin tone
+1F9D1 1F3FE 200D 1F680                                 ; fully-qualified     # 🧑🏾‍🚀 E12.1 astronaut: medium-dark skin tone
+1F9D1 1F3FF 200D 1F680                                 ; fully-qualified     # 🧑🏿‍🚀 E12.1 astronaut: dark skin tone
+1F468 200D 1F680                                       ; fully-qualified     # 👨‍🚀 E4.0 man astronaut
+1F468 1F3FB 200D 1F680                                 ; fully-qualified     # 👨🏻‍🚀 E4.0 man astronaut: light skin tone
+1F468 1F3FC 200D 1F680                                 ; fully-qualified     # 👨🏼‍🚀 E4.0 man astronaut: medium-light skin tone
+1F468 1F3FD 200D 1F680                                 ; fully-qualified     # 👨🏽‍🚀 E4.0 man astronaut: medium skin tone
+1F468 1F3FE 200D 1F680                                 ; fully-qualified     # 👨🏾‍🚀 E4.0 man astronaut: medium-dark skin tone
+1F468 1F3FF 200D 1F680                                 ; fully-qualified     # 👨🏿‍🚀 E4.0 man astronaut: dark skin tone
+1F469 200D 1F680                                       ; fully-qualified     # 👩‍🚀 E4.0 woman astronaut
+1F469 1F3FB 200D 1F680                                 ; fully-qualified     # 👩🏻‍🚀 E4.0 woman astronaut: light skin tone
+1F469 1F3FC 200D 1F680                                 ; fully-qualified     # 👩🏼‍🚀 E4.0 woman astronaut: medium-light skin tone
+1F469 1F3FD 200D 1F680                                 ; fully-qualified     # 👩🏽‍🚀 E4.0 woman astronaut: medium skin tone
+1F469 1F3FE 200D 1F680                                 ; fully-qualified     # 👩🏾‍🚀 E4.0 woman astronaut: medium-dark skin tone
+1F469 1F3FF 200D 1F680                                 ; fully-qualified     # 👩🏿‍🚀 E4.0 woman astronaut: dark skin tone
+1F9D1 200D 1F692                                       ; fully-qualified     # 🧑‍🚒 E12.1 firefighter
+1F9D1 1F3FB 200D 1F692                                 ; fully-qualified     # 🧑🏻‍🚒 E12.1 firefighter: light skin tone
+1F9D1 1F3FC 200D 1F692                                 ; fully-qualified     # 🧑🏼‍🚒 E12.1 firefighter: medium-light skin tone
+1F9D1 1F3FD 200D 1F692                                 ; fully-qualified     # 🧑🏽‍🚒 E12.1 firefighter: medium skin tone
+1F9D1 1F3FE 200D 1F692                                 ; fully-qualified     # 🧑🏾‍🚒 E12.1 firefighter: medium-dark skin tone
+1F9D1 1F3FF 200D 1F692                                 ; fully-qualified     # 🧑🏿‍🚒 E12.1 firefighter: dark skin tone
+1F468 200D 1F692                                       ; fully-qualified     # 👨‍🚒 E4.0 man firefighter
+1F468 1F3FB 200D 1F692                                 ; fully-qualified     # 👨🏻‍🚒 E4.0 man firefighter: light skin tone
+1F468 1F3FC 200D 1F692                                 ; fully-qualified     # 👨🏼‍🚒 E4.0 man firefighter: medium-light skin tone
+1F468 1F3FD 200D 1F692                                 ; fully-qualified     # 👨🏽‍🚒 E4.0 man firefighter: medium skin tone
+1F468 1F3FE 200D 1F692                                 ; fully-qualified     # 👨🏾‍🚒 E4.0 man firefighter: medium-dark skin tone
+1F468 1F3FF 200D 1F692                                 ; fully-qualified     # 👨🏿‍🚒 E4.0 man firefighter: dark skin tone
+1F469 200D 1F692                                       ; fully-qualified     # 👩‍🚒 E4.0 woman firefighter
+1F469 1F3FB 200D 1F692                                 ; fully-qualified     # 👩🏻‍🚒 E4.0 woman firefighter: light skin tone
+1F469 1F3FC 200D 1F692                                 ; fully-qualified     # 👩🏼‍🚒 E4.0 woman firefighter: medium-light skin tone
+1F469 1F3FD 200D 1F692                                 ; fully-qualified     # 👩🏽‍🚒 E4.0 woman firefighter: medium skin tone
+1F469 1F3FE 200D 1F692                                 ; fully-qualified     # 👩🏾‍🚒 E4.0 woman firefighter: medium-dark skin tone
+1F469 1F3FF 200D 1F692                                 ; fully-qualified     # 👩🏿‍🚒 E4.0 woman firefighter: dark skin tone
+1F46E                                                  ; fully-qualified     # 👮 E0.6 police officer
+1F46E 1F3FB                                            ; fully-qualified     # 👮🏻 E1.0 police officer: light skin tone
+1F46E 1F3FC                                            ; fully-qualified     # 👮🏼 E1.0 police officer: medium-light skin tone
+1F46E 1F3FD                                            ; fully-qualified     # 👮🏽 E1.0 police officer: medium skin tone
+1F46E 1F3FE                                            ; fully-qualified     # 👮🏾 E1.0 police officer: medium-dark skin tone
+1F46E 1F3FF                                            ; fully-qualified     # 👮🏿 E1.0 police officer: dark skin tone
+1F46E 200D 2642 FE0F                                   ; fully-qualified     # 👮‍♂️ E4.0 man police officer
+1F46E 200D 2642                                        ; minimally-qualified # 👮‍♂ E4.0 man police officer
+1F46E 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 👮🏻‍♂️ E4.0 man police officer: light skin tone
+1F46E 1F3FB 200D 2642                                  ; minimally-qualified # 👮🏻‍♂ E4.0 man police officer: light skin tone
+1F46E 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 👮🏼‍♂️ E4.0 man police officer: medium-light skin tone
+1F46E 1F3FC 200D 2642                                  ; minimally-qualified # 👮🏼‍♂ E4.0 man police officer: medium-light skin tone
+1F46E 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 👮🏽‍♂️ E4.0 man police officer: medium skin tone
+1F46E 1F3FD 200D 2642                                  ; minimally-qualified # 👮🏽‍♂ E4.0 man police officer: medium skin tone
+1F46E 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 👮🏾‍♂️ E4.0 man police officer: medium-dark skin tone
+1F46E 1F3FE 200D 2642                                  ; minimally-qualified # 👮🏾‍♂ E4.0 man police officer: medium-dark skin tone
+1F46E 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 👮🏿‍♂️ E4.0 man police officer: dark skin tone
+1F46E 1F3FF 200D 2642                                  ; minimally-qualified # 👮🏿‍♂ E4.0 man police officer: dark skin tone
+1F46E 200D 2640 FE0F                                   ; fully-qualified     # 👮‍♀️ E4.0 woman police officer
+1F46E 200D 2640                                        ; minimally-qualified # 👮‍♀ E4.0 woman police officer
+1F46E 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 👮🏻‍♀️ E4.0 woman police officer: light skin tone
+1F46E 1F3FB 200D 2640                                  ; minimally-qualified # 👮🏻‍♀ E4.0 woman police officer: light skin tone
+1F46E 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 👮🏼‍♀️ E4.0 woman police officer: medium-light skin tone
+1F46E 1F3FC 200D 2640                                  ; minimally-qualified # 👮🏼‍♀ E4.0 woman police officer: medium-light skin tone
+1F46E 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 👮🏽‍♀️ E4.0 woman police officer: medium skin tone
+1F46E 1F3FD 200D 2640                                  ; minimally-qualified # 👮🏽‍♀ E4.0 woman police officer: medium skin tone
+1F46E 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 👮🏾‍♀️ E4.0 woman police officer: medium-dark skin tone
+1F46E 1F3FE 200D 2640                                  ; minimally-qualified # 👮🏾‍♀ E4.0 woman police officer: medium-dark skin tone
+1F46E 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 👮🏿‍♀️ E4.0 woman police officer: dark skin tone
+1F46E 1F3FF 200D 2640                                  ; minimally-qualified # 👮🏿‍♀ E4.0 woman police officer: dark skin tone
+1F575 FE0F                                             ; fully-qualified     # 🕵️ E0.7 detective
+1F575                                                  ; unqualified         # 🕵 E0.7 detective
+1F575 1F3FB                                            ; fully-qualified     # 🕵🏻 E2.0 detective: light skin tone
+1F575 1F3FC                                            ; fully-qualified     # 🕵🏼 E2.0 detective: medium-light skin tone
+1F575 1F3FD                                            ; fully-qualified     # 🕵🏽 E2.0 detective: medium skin tone
+1F575 1F3FE                                            ; fully-qualified     # 🕵🏾 E2.0 detective: medium-dark skin tone
+1F575 1F3FF                                            ; fully-qualified     # 🕵🏿 E2.0 detective: dark skin tone
+1F575 FE0F 200D 2642 FE0F                              ; fully-qualified     # 🕵️‍♂️ E4.0 man detective
+1F575 200D 2642 FE0F                                   ; unqualified         # 🕵‍♂️ E4.0 man detective
+1F575 FE0F 200D 2642                                   ; minimally-qualified # 🕵️‍♂ E4.0 man detective
+1F575 200D 2642                                        ; unqualified         # 🕵‍♂ E4.0 man detective
+1F575 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🕵🏻‍♂️ E4.0 man detective: light skin tone
+1F575 1F3FB 200D 2642                                  ; minimally-qualified # 🕵🏻‍♂ E4.0 man detective: light skin tone
+1F575 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🕵🏼‍♂️ E4.0 man detective: medium-light skin tone
+1F575 1F3FC 200D 2642                                  ; minimally-qualified # 🕵🏼‍♂ E4.0 man detective: medium-light skin tone
+1F575 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🕵🏽‍♂️ E4.0 man detective: medium skin tone
+1F575 1F3FD 200D 2642                                  ; minimally-qualified # 🕵🏽‍♂ E4.0 man detective: medium skin tone
+1F575 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🕵🏾‍♂️ E4.0 man detective: medium-dark skin tone
+1F575 1F3FE 200D 2642                                  ; minimally-qualified # 🕵🏾‍♂ E4.0 man detective: medium-dark skin tone
+1F575 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🕵🏿‍♂️ E4.0 man detective: dark skin tone
+1F575 1F3FF 200D 2642                                  ; minimally-qualified # 🕵🏿‍♂ E4.0 man detective: dark skin tone
+1F575 FE0F 200D 2640 FE0F                              ; fully-qualified     # 🕵️‍♀️ E4.0 woman detective
+1F575 200D 2640 FE0F                                   ; unqualified         # 🕵‍♀️ E4.0 woman detective
+1F575 FE0F 200D 2640                                   ; minimally-qualified # 🕵️‍♀ E4.0 woman detective
+1F575 200D 2640                                        ; unqualified         # 🕵‍♀ E4.0 woman detective
+1F575 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🕵🏻‍♀️ E4.0 woman detective: light skin tone
+1F575 1F3FB 200D 2640                                  ; minimally-qualified # 🕵🏻‍♀ E4.0 woman detective: light skin tone
+1F575 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🕵🏼‍♀️ E4.0 woman detective: medium-light skin tone
+1F575 1F3FC 200D 2640                                  ; minimally-qualified # 🕵🏼‍♀ E4.0 woman detective: medium-light skin tone
+1F575 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🕵🏽‍♀️ E4.0 woman detective: medium skin tone
+1F575 1F3FD 200D 2640                                  ; minimally-qualified # 🕵🏽‍♀ E4.0 woman detective: medium skin tone
+1F575 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🕵🏾‍♀️ E4.0 woman detective: medium-dark skin tone
+1F575 1F3FE 200D 2640                                  ; minimally-qualified # 🕵🏾‍♀ E4.0 woman detective: medium-dark skin tone
+1F575 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🕵🏿‍♀️ E4.0 woman detective: dark skin tone
+1F575 1F3FF 200D 2640                                  ; minimally-qualified # 🕵🏿‍♀ E4.0 woman detective: dark skin tone
+1F482                                                  ; fully-qualified     # 💂 E0.6 guard
+1F482 1F3FB                                            ; fully-qualified     # 💂🏻 E1.0 guard: light skin tone
+1F482 1F3FC                                            ; fully-qualified     # 💂🏼 E1.0 guard: medium-light skin tone
+1F482 1F3FD                                            ; fully-qualified     # 💂🏽 E1.0 guard: medium skin tone
+1F482 1F3FE                                            ; fully-qualified     # 💂🏾 E1.0 guard: medium-dark skin tone
+1F482 1F3FF                                            ; fully-qualified     # 💂🏿 E1.0 guard: dark skin tone
+1F482 200D 2642 FE0F                                   ; fully-qualified     # 💂‍♂️ E4.0 man guard
+1F482 200D 2642                                        ; minimally-qualified # 💂‍♂ E4.0 man guard
+1F482 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 💂🏻‍♂️ E4.0 man guard: light skin tone
+1F482 1F3FB 200D 2642                                  ; minimally-qualified # 💂🏻‍♂ E4.0 man guard: light skin tone
+1F482 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 💂🏼‍♂️ E4.0 man guard: medium-light skin tone
+1F482 1F3FC 200D 2642                                  ; minimally-qualified # 💂🏼‍♂ E4.0 man guard: medium-light skin tone
+1F482 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 💂🏽‍♂️ E4.0 man guard: medium skin tone
+1F482 1F3FD 200D 2642                                  ; minimally-qualified # 💂🏽‍♂ E4.0 man guard: medium skin tone
+1F482 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 💂🏾‍♂️ E4.0 man guard: medium-dark skin tone
+1F482 1F3FE 200D 2642                                  ; minimally-qualified # 💂🏾‍♂ E4.0 man guard: medium-dark skin tone
+1F482 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 💂🏿‍♂️ E4.0 man guard: dark skin tone
+1F482 1F3FF 200D 2642                                  ; minimally-qualified # 💂🏿‍♂ E4.0 man guard: dark skin tone
+1F482 200D 2640 FE0F                                   ; fully-qualified     # 💂‍♀️ E4.0 woman guard
+1F482 200D 2640                                        ; minimally-qualified # 💂‍♀ E4.0 woman guard
+1F482 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 💂🏻‍♀️ E4.0 woman guard: light skin tone
+1F482 1F3FB 200D 2640                                  ; minimally-qualified # 💂🏻‍♀ E4.0 woman guard: light skin tone
+1F482 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 💂🏼‍♀️ E4.0 woman guard: medium-light skin tone
+1F482 1F3FC 200D 2640                                  ; minimally-qualified # 💂🏼‍♀ E4.0 woman guard: medium-light skin tone
+1F482 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 💂🏽‍♀️ E4.0 woman guard: medium skin tone
+1F482 1F3FD 200D 2640                                  ; minimally-qualified # 💂🏽‍♀ E4.0 woman guard: medium skin tone
+1F482 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 💂🏾‍♀️ E4.0 woman guard: medium-dark skin tone
+1F482 1F3FE 200D 2640                                  ; minimally-qualified # 💂🏾‍♀ E4.0 woman guard: medium-dark skin tone
+1F482 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 💂🏿‍♀️ E4.0 woman guard: dark skin tone
+1F482 1F3FF 200D 2640                                  ; minimally-qualified # 💂🏿‍♀ E4.0 woman guard: dark skin tone
+1F977                                                  ; fully-qualified     # 🥷 E13.0 ninja
+1F977 1F3FB                                            ; fully-qualified     # 🥷🏻 E13.0 ninja: light skin tone
+1F977 1F3FC                                            ; fully-qualified     # 🥷🏼 E13.0 ninja: medium-light skin tone
+1F977 1F3FD                                            ; fully-qualified     # 🥷🏽 E13.0 ninja: medium skin tone
+1F977 1F3FE                                            ; fully-qualified     # 🥷🏾 E13.0 ninja: medium-dark skin tone
+1F977 1F3FF                                            ; fully-qualified     # 🥷🏿 E13.0 ninja: dark skin tone
+1F477                                                  ; fully-qualified     # 👷 E0.6 construction worker
+1F477 1F3FB                                            ; fully-qualified     # 👷🏻 E1.0 construction worker: light skin tone
+1F477 1F3FC                                            ; fully-qualified     # 👷🏼 E1.0 construction worker: medium-light skin tone
+1F477 1F3FD                                            ; fully-qualified     # 👷🏽 E1.0 construction worker: medium skin tone
+1F477 1F3FE                                            ; fully-qualified     # 👷🏾 E1.0 construction worker: medium-dark skin tone
+1F477 1F3FF                                            ; fully-qualified     # 👷🏿 E1.0 construction worker: dark skin tone
+1F477 200D 2642 FE0F                                   ; fully-qualified     # 👷‍♂️ E4.0 man construction worker
+1F477 200D 2642                                        ; minimally-qualified # 👷‍♂ E4.0 man construction worker
+1F477 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 👷🏻‍♂️ E4.0 man construction worker: light skin tone
+1F477 1F3FB 200D 2642                                  ; minimally-qualified # 👷🏻‍♂ E4.0 man construction worker: light skin tone
+1F477 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 👷🏼‍♂️ E4.0 man construction worker: medium-light skin tone
+1F477 1F3FC 200D 2642                                  ; minimally-qualified # 👷🏼‍♂ E4.0 man construction worker: medium-light skin tone
+1F477 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 👷🏽‍♂️ E4.0 man construction worker: medium skin tone
+1F477 1F3FD 200D 2642                                  ; minimally-qualified # 👷🏽‍♂ E4.0 man construction worker: medium skin tone
+1F477 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 👷🏾‍♂️ E4.0 man construction worker: medium-dark skin tone
+1F477 1F3FE 200D 2642                                  ; minimally-qualified # 👷🏾‍♂ E4.0 man construction worker: medium-dark skin tone
+1F477 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 👷🏿‍♂️ E4.0 man construction worker: dark skin tone
+1F477 1F3FF 200D 2642                                  ; minimally-qualified # 👷🏿‍♂ E4.0 man construction worker: dark skin tone
+1F477 200D 2640 FE0F                                   ; fully-qualified     # 👷‍♀️ E4.0 woman construction worker
+1F477 200D 2640                                        ; minimally-qualified # 👷‍♀ E4.0 woman construction worker
+1F477 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 👷🏻‍♀️ E4.0 woman construction worker: light skin tone
+1F477 1F3FB 200D 2640                                  ; minimally-qualified # 👷🏻‍♀ E4.0 woman construction worker: light skin tone
+1F477 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 👷🏼‍♀️ E4.0 woman construction worker: medium-light skin tone
+1F477 1F3FC 200D 2640                                  ; minimally-qualified # 👷🏼‍♀ E4.0 woman construction worker: medium-light skin tone
+1F477 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 👷🏽‍♀️ E4.0 woman construction worker: medium skin tone
+1F477 1F3FD 200D 2640                                  ; minimally-qualified # 👷🏽‍♀ E4.0 woman construction worker: medium skin tone
+1F477 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 👷🏾‍♀️ E4.0 woman construction worker: medium-dark skin tone
+1F477 1F3FE 200D 2640                                  ; minimally-qualified # 👷🏾‍♀ E4.0 woman construction worker: medium-dark skin tone
+1F477 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 👷🏿‍♀️ E4.0 woman construction worker: dark skin tone
+1F477 1F3FF 200D 2640                                  ; minimally-qualified # 👷🏿‍♀ E4.0 woman construction worker: dark skin tone
+1FAC5                                                  ; fully-qualified     # 🫅 E14.0 person with crown
+1FAC5 1F3FB                                            ; fully-qualified     # 🫅🏻 E14.0 person with crown: light skin tone
+1FAC5 1F3FC                                            ; fully-qualified     # 🫅🏼 E14.0 person with crown: medium-light skin tone
+1FAC5 1F3FD                                            ; fully-qualified     # 🫅🏽 E14.0 person with crown: medium skin tone
+1FAC5 1F3FE                                            ; fully-qualified     # 🫅🏾 E14.0 person with crown: medium-dark skin tone
+1FAC5 1F3FF                                            ; fully-qualified     # 🫅🏿 E14.0 person with crown: dark skin tone
+1F934                                                  ; fully-qualified     # 🤴 E3.0 prince
+1F934 1F3FB                                            ; fully-qualified     # 🤴🏻 E3.0 prince: light skin tone
+1F934 1F3FC                                            ; fully-qualified     # 🤴🏼 E3.0 prince: medium-light skin tone
+1F934 1F3FD                                            ; fully-qualified     # 🤴🏽 E3.0 prince: medium skin tone
+1F934 1F3FE                                            ; fully-qualified     # 🤴🏾 E3.0 prince: medium-dark skin tone
+1F934 1F3FF                                            ; fully-qualified     # 🤴🏿 E3.0 prince: dark skin tone
+1F478                                                  ; fully-qualified     # 👸 E0.6 princess
+1F478 1F3FB                                            ; fully-qualified     # 👸🏻 E1.0 princess: light skin tone
+1F478 1F3FC                                            ; fully-qualified     # 👸🏼 E1.0 princess: medium-light skin tone
+1F478 1F3FD                                            ; fully-qualified     # 👸🏽 E1.0 princess: medium skin tone
+1F478 1F3FE                                            ; fully-qualified     # 👸🏾 E1.0 princess: medium-dark skin tone
+1F478 1F3FF                                            ; fully-qualified     # 👸🏿 E1.0 princess: dark skin tone
+1F473                                                  ; fully-qualified     # 👳 E0.6 person wearing turban
+1F473 1F3FB                                            ; fully-qualified     # 👳🏻 E1.0 person wearing turban: light skin tone
+1F473 1F3FC                                            ; fully-qualified     # 👳🏼 E1.0 person wearing turban: medium-light skin tone
+1F473 1F3FD                                            ; fully-qualified     # 👳🏽 E1.0 person wearing turban: medium skin tone
+1F473 1F3FE                                            ; fully-qualified     # 👳🏾 E1.0 person wearing turban: medium-dark skin tone
+1F473 1F3FF                                            ; fully-qualified     # 👳🏿 E1.0 person wearing turban: dark skin tone
+1F473 200D 2642 FE0F                                   ; fully-qualified     # 👳‍♂️ E4.0 man wearing turban
+1F473 200D 2642                                        ; minimally-qualified # 👳‍♂ E4.0 man wearing turban
+1F473 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 👳🏻‍♂️ E4.0 man wearing turban: light skin tone
+1F473 1F3FB 200D 2642                                  ; minimally-qualified # 👳🏻‍♂ E4.0 man wearing turban: light skin tone
+1F473 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 👳🏼‍♂️ E4.0 man wearing turban: medium-light skin tone
+1F473 1F3FC 200D 2642                                  ; minimally-qualified # 👳🏼‍♂ E4.0 man wearing turban: medium-light skin tone
+1F473 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 👳🏽‍♂️ E4.0 man wearing turban: medium skin tone
+1F473 1F3FD 200D 2642                                  ; minimally-qualified # 👳🏽‍♂ E4.0 man wearing turban: medium skin tone
+1F473 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 👳🏾‍♂️ E4.0 man wearing turban: medium-dark skin tone
+1F473 1F3FE 200D 2642                                  ; minimally-qualified # 👳🏾‍♂ E4.0 man wearing turban: medium-dark skin tone
+1F473 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 👳🏿‍♂️ E4.0 man wearing turban: dark skin tone
+1F473 1F3FF 200D 2642                                  ; minimally-qualified # 👳🏿‍♂ E4.0 man wearing turban: dark skin tone
+1F473 200D 2640 FE0F                                   ; fully-qualified     # 👳‍♀️ E4.0 woman wearing turban
+1F473 200D 2640                                        ; minimally-qualified # 👳‍♀ E4.0 woman wearing turban
+1F473 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 👳🏻‍♀️ E4.0 woman wearing turban: light skin tone
+1F473 1F3FB 200D 2640                                  ; minimally-qualified # 👳🏻‍♀ E4.0 woman wearing turban: light skin tone
+1F473 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 👳🏼‍♀️ E4.0 woman wearing turban: medium-light skin tone
+1F473 1F3FC 200D 2640                                  ; minimally-qualified # 👳🏼‍♀ E4.0 woman wearing turban: medium-light skin tone
+1F473 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 👳🏽‍♀️ E4.0 woman wearing turban: medium skin tone
+1F473 1F3FD 200D 2640                                  ; minimally-qualified # 👳🏽‍♀ E4.0 woman wearing turban: medium skin tone
+1F473 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 👳🏾‍♀️ E4.0 woman wearing turban: medium-dark skin tone
+1F473 1F3FE 200D 2640                                  ; minimally-qualified # 👳🏾‍♀ E4.0 woman wearing turban: medium-dark skin tone
+1F473 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 👳🏿‍♀️ E4.0 woman wearing turban: dark skin tone
+1F473 1F3FF 200D 2640                                  ; minimally-qualified # 👳🏿‍♀ E4.0 woman wearing turban: dark skin tone
+1F472                                                  ; fully-qualified     # 👲 E0.6 person with skullcap
+1F472 1F3FB                                            ; fully-qualified     # 👲🏻 E1.0 person with skullcap: light skin tone
+1F472 1F3FC                                            ; fully-qualified     # 👲🏼 E1.0 person with skullcap: medium-light skin tone
+1F472 1F3FD                                            ; fully-qualified     # 👲🏽 E1.0 person with skullcap: medium skin tone
+1F472 1F3FE                                            ; fully-qualified     # 👲🏾 E1.0 person with skullcap: medium-dark skin tone
+1F472 1F3FF                                            ; fully-qualified     # 👲🏿 E1.0 person with skullcap: dark skin tone
+1F9D5                                                  ; fully-qualified     # 🧕 E5.0 woman with headscarf
+1F9D5 1F3FB                                            ; fully-qualified     # 🧕🏻 E5.0 woman with headscarf: light skin tone
+1F9D5 1F3FC                                            ; fully-qualified     # 🧕🏼 E5.0 woman with headscarf: medium-light skin tone
+1F9D5 1F3FD                                            ; fully-qualified     # 🧕🏽 E5.0 woman with headscarf: medium skin tone
+1F9D5 1F3FE                                            ; fully-qualified     # 🧕🏾 E5.0 woman with headscarf: medium-dark skin tone
+1F9D5 1F3FF                                            ; fully-qualified     # 🧕🏿 E5.0 woman with headscarf: dark skin tone
+1F935                                                  ; fully-qualified     # 🤵 E3.0 person in tuxedo
+1F935 1F3FB                                            ; fully-qualified     # 🤵🏻 E3.0 person in tuxedo: light skin tone
+1F935 1F3FC                                            ; fully-qualified     # 🤵🏼 E3.0 person in tuxedo: medium-light skin tone
+1F935 1F3FD                                            ; fully-qualified     # 🤵🏽 E3.0 person in tuxedo: medium skin tone
+1F935 1F3FE                                            ; fully-qualified     # 🤵🏾 E3.0 person in tuxedo: medium-dark skin tone
+1F935 1F3FF                                            ; fully-qualified     # 🤵🏿 E3.0 person in tuxedo: dark skin tone
+1F935 200D 2642 FE0F                                   ; fully-qualified     # 🤵‍♂️ E13.0 man in tuxedo
+1F935 200D 2642                                        ; minimally-qualified # 🤵‍♂ E13.0 man in tuxedo
+1F935 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🤵🏻‍♂️ E13.0 man in tuxedo: light skin tone
+1F935 1F3FB 200D 2642                                  ; minimally-qualified # 🤵🏻‍♂ E13.0 man in tuxedo: light skin tone
+1F935 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🤵🏼‍♂️ E13.0 man in tuxedo: medium-light skin tone
+1F935 1F3FC 200D 2642                                  ; minimally-qualified # 🤵🏼‍♂ E13.0 man in tuxedo: medium-light skin tone
+1F935 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🤵🏽‍♂️ E13.0 man in tuxedo: medium skin tone
+1F935 1F3FD 200D 2642                                  ; minimally-qualified # 🤵🏽‍♂ E13.0 man in tuxedo: medium skin tone
+1F935 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🤵🏾‍♂️ E13.0 man in tuxedo: medium-dark skin tone
+1F935 1F3FE 200D 2642                                  ; minimally-qualified # 🤵🏾‍♂ E13.0 man in tuxedo: medium-dark skin tone
+1F935 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🤵🏿‍♂️ E13.0 man in tuxedo: dark skin tone
+1F935 1F3FF 200D 2642                                  ; minimally-qualified # 🤵🏿‍♂ E13.0 man in tuxedo: dark skin tone
+1F935 200D 2640 FE0F                                   ; fully-qualified     # 🤵‍♀️ E13.0 woman in tuxedo
+1F935 200D 2640                                        ; minimally-qualified # 🤵‍♀ E13.0 woman in tuxedo
+1F935 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🤵🏻‍♀️ E13.0 woman in tuxedo: light skin tone
+1F935 1F3FB 200D 2640                                  ; minimally-qualified # 🤵🏻‍♀ E13.0 woman in tuxedo: light skin tone
+1F935 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🤵🏼‍♀️ E13.0 woman in tuxedo: medium-light skin tone
+1F935 1F3FC 200D 2640                                  ; minimally-qualified # 🤵🏼‍♀ E13.0 woman in tuxedo: medium-light skin tone
+1F935 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🤵🏽‍♀️ E13.0 woman in tuxedo: medium skin tone
+1F935 1F3FD 200D 2640                                  ; minimally-qualified # 🤵🏽‍♀ E13.0 woman in tuxedo: medium skin tone
+1F935 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🤵🏾‍♀️ E13.0 woman in tuxedo: medium-dark skin tone
+1F935 1F3FE 200D 2640                                  ; minimally-qualified # 🤵🏾‍♀ E13.0 woman in tuxedo: medium-dark skin tone
+1F935 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🤵🏿‍♀️ E13.0 woman in tuxedo: dark skin tone
+1F935 1F3FF 200D 2640                                  ; minimally-qualified # 🤵🏿‍♀ E13.0 woman in tuxedo: dark skin tone
+1F470                                                  ; fully-qualified     # 👰 E0.6 person with veil
+1F470 1F3FB                                            ; fully-qualified     # 👰🏻 E1.0 person with veil: light skin tone
+1F470 1F3FC                                            ; fully-qualified     # 👰🏼 E1.0 person with veil: medium-light skin tone
+1F470 1F3FD                                            ; fully-qualified     # 👰🏽 E1.0 person with veil: medium skin tone
+1F470 1F3FE                                            ; fully-qualified     # 👰🏾 E1.0 person with veil: medium-dark skin tone
+1F470 1F3FF                                            ; fully-qualified     # 👰🏿 E1.0 person with veil: dark skin tone
+1F470 200D 2642 FE0F                                   ; fully-qualified     # 👰‍♂️ E13.0 man with veil
+1F470 200D 2642                                        ; minimally-qualified # 👰‍♂ E13.0 man with veil
+1F470 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 👰🏻‍♂️ E13.0 man with veil: light skin tone
+1F470 1F3FB 200D 2642                                  ; minimally-qualified # 👰🏻‍♂ E13.0 man with veil: light skin tone
+1F470 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 👰🏼‍♂️ E13.0 man with veil: medium-light skin tone
+1F470 1F3FC 200D 2642                                  ; minimally-qualified # 👰🏼‍♂ E13.0 man with veil: medium-light skin tone
+1F470 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 👰🏽‍♂️ E13.0 man with veil: medium skin tone
+1F470 1F3FD 200D 2642                                  ; minimally-qualified # 👰🏽‍♂ E13.0 man with veil: medium skin tone
+1F470 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 👰🏾‍♂️ E13.0 man with veil: medium-dark skin tone
+1F470 1F3FE 200D 2642                                  ; minimally-qualified # 👰🏾‍♂ E13.0 man with veil: medium-dark skin tone
+1F470 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 👰🏿‍♂️ E13.0 man with veil: dark skin tone
+1F470 1F3FF 200D 2642                                  ; minimally-qualified # 👰🏿‍♂ E13.0 man with veil: dark skin tone
+1F470 200D 2640 FE0F                                   ; fully-qualified     # 👰‍♀️ E13.0 woman with veil
+1F470 200D 2640                                        ; minimally-qualified # 👰‍♀ E13.0 woman with veil
+1F470 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 👰🏻‍♀️ E13.0 woman with veil: light skin tone
+1F470 1F3FB 200D 2640                                  ; minimally-qualified # 👰🏻‍♀ E13.0 woman with veil: light skin tone
+1F470 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 👰🏼‍♀️ E13.0 woman with veil: medium-light skin tone
+1F470 1F3FC 200D 2640                                  ; minimally-qualified # 👰🏼‍♀ E13.0 woman with veil: medium-light skin tone
+1F470 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 👰🏽‍♀️ E13.0 woman with veil: medium skin tone
+1F470 1F3FD 200D 2640                                  ; minimally-qualified # 👰🏽‍♀ E13.0 woman with veil: medium skin tone
+1F470 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 👰🏾‍♀️ E13.0 woman with veil: medium-dark skin tone
+1F470 1F3FE 200D 2640                                  ; minimally-qualified # 👰🏾‍♀ E13.0 woman with veil: medium-dark skin tone
+1F470 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 👰🏿‍♀️ E13.0 woman with veil: dark skin tone
+1F470 1F3FF 200D 2640                                  ; minimally-qualified # 👰🏿‍♀ E13.0 woman with veil: dark skin tone
+1F930                                                  ; fully-qualified     # 🤰 E3.0 pregnant woman
+1F930 1F3FB                                            ; fully-qualified     # 🤰🏻 E3.0 pregnant woman: light skin tone
+1F930 1F3FC                                            ; fully-qualified     # 🤰🏼 E3.0 pregnant woman: medium-light skin tone
+1F930 1F3FD                                            ; fully-qualified     # 🤰🏽 E3.0 pregnant woman: medium skin tone
+1F930 1F3FE                                            ; fully-qualified     # 🤰🏾 E3.0 pregnant woman: medium-dark skin tone
+1F930 1F3FF                                            ; fully-qualified     # 🤰🏿 E3.0 pregnant woman: dark skin tone
+1FAC3                                                  ; fully-qualified     # 🫃 E14.0 pregnant man
+1FAC3 1F3FB                                            ; fully-qualified     # 🫃🏻 E14.0 pregnant man: light skin tone
+1FAC3 1F3FC                                            ; fully-qualified     # 🫃🏼 E14.0 pregnant man: medium-light skin tone
+1FAC3 1F3FD                                            ; fully-qualified     # 🫃🏽 E14.0 pregnant man: medium skin tone
+1FAC3 1F3FE                                            ; fully-qualified     # 🫃🏾 E14.0 pregnant man: medium-dark skin tone
+1FAC3 1F3FF                                            ; fully-qualified     # 🫃🏿 E14.0 pregnant man: dark skin tone
+1FAC4                                                  ; fully-qualified     # 🫄 E14.0 pregnant person
+1FAC4 1F3FB                                            ; fully-qualified     # 🫄🏻 E14.0 pregnant person: light skin tone
+1FAC4 1F3FC                                            ; fully-qualified     # 🫄🏼 E14.0 pregnant person: medium-light skin tone
+1FAC4 1F3FD                                            ; fully-qualified     # 🫄🏽 E14.0 pregnant person: medium skin tone
+1FAC4 1F3FE                                            ; fully-qualified     # 🫄🏾 E14.0 pregnant person: medium-dark skin tone
+1FAC4 1F3FF                                            ; fully-qualified     # 🫄🏿 E14.0 pregnant person: dark skin tone
+1F931                                                  ; fully-qualified     # 🤱 E5.0 breast-feeding
+1F931 1F3FB                                            ; fully-qualified     # 🤱🏻 E5.0 breast-feeding: light skin tone
+1F931 1F3FC                                            ; fully-qualified     # 🤱🏼 E5.0 breast-feeding: medium-light skin tone
+1F931 1F3FD                                            ; fully-qualified     # 🤱🏽 E5.0 breast-feeding: medium skin tone
+1F931 1F3FE                                            ; fully-qualified     # 🤱🏾 E5.0 breast-feeding: medium-dark skin tone
+1F931 1F3FF                                            ; fully-qualified     # 🤱🏿 E5.0 breast-feeding: dark skin tone
+1F469 200D 1F37C                                       ; fully-qualified     # 👩‍🍼 E13.0 woman feeding baby
+1F469 1F3FB 200D 1F37C                                 ; fully-qualified     # 👩🏻‍🍼 E13.0 woman feeding baby: light skin tone
+1F469 1F3FC 200D 1F37C                                 ; fully-qualified     # 👩🏼‍🍼 E13.0 woman feeding baby: medium-light skin tone
+1F469 1F3FD 200D 1F37C                                 ; fully-qualified     # 👩🏽‍🍼 E13.0 woman feeding baby: medium skin tone
+1F469 1F3FE 200D 1F37C                                 ; fully-qualified     # 👩🏾‍🍼 E13.0 woman feeding baby: medium-dark skin tone
+1F469 1F3FF 200D 1F37C                                 ; fully-qualified     # 👩🏿‍🍼 E13.0 woman feeding baby: dark skin tone
+1F468 200D 1F37C                                       ; fully-qualified     # 👨‍🍼 E13.0 man feeding baby
+1F468 1F3FB 200D 1F37C                                 ; fully-qualified     # 👨🏻‍🍼 E13.0 man feeding baby: light skin tone
+1F468 1F3FC 200D 1F37C                                 ; fully-qualified     # 👨🏼‍🍼 E13.0 man feeding baby: medium-light skin tone
+1F468 1F3FD 200D 1F37C                                 ; fully-qualified     # 👨🏽‍🍼 E13.0 man feeding baby: medium skin tone
+1F468 1F3FE 200D 1F37C                                 ; fully-qualified     # 👨🏾‍🍼 E13.0 man feeding baby: medium-dark skin tone
+1F468 1F3FF 200D 1F37C                                 ; fully-qualified     # 👨🏿‍🍼 E13.0 man feeding baby: dark skin tone
+1F9D1 200D 1F37C                                       ; fully-qualified     # 🧑‍🍼 E13.0 person feeding baby
+1F9D1 1F3FB 200D 1F37C                                 ; fully-qualified     # 🧑🏻‍🍼 E13.0 person feeding baby: light skin tone
+1F9D1 1F3FC 200D 1F37C                                 ; fully-qualified     # 🧑🏼‍🍼 E13.0 person feeding baby: medium-light skin tone
+1F9D1 1F3FD 200D 1F37C                                 ; fully-qualified     # 🧑🏽‍🍼 E13.0 person feeding baby: medium skin tone
+1F9D1 1F3FE 200D 1F37C                                 ; fully-qualified     # 🧑🏾‍🍼 E13.0 person feeding baby: medium-dark skin tone
+1F9D1 1F3FF 200D 1F37C                                 ; fully-qualified     # 🧑🏿‍🍼 E13.0 person feeding baby: dark skin tone
+
+# subgroup: person-fantasy
+1F47C                                                  ; fully-qualified     # 👼 E0.6 baby angel
+1F47C 1F3FB                                            ; fully-qualified     # 👼🏻 E1.0 baby angel: light skin tone
+1F47C 1F3FC                                            ; fully-qualified     # 👼🏼 E1.0 baby angel: medium-light skin tone
+1F47C 1F3FD                                            ; fully-qualified     # 👼🏽 E1.0 baby angel: medium skin tone
+1F47C 1F3FE                                            ; fully-qualified     # 👼🏾 E1.0 baby angel: medium-dark skin tone
+1F47C 1F3FF                                            ; fully-qualified     # 👼🏿 E1.0 baby angel: dark skin tone
+1F385                                                  ; fully-qualified     # 🎅 E0.6 Santa Claus
+1F385 1F3FB                                            ; fully-qualified     # 🎅🏻 E1.0 Santa Claus: light skin tone
+1F385 1F3FC                                            ; fully-qualified     # 🎅🏼 E1.0 Santa Claus: medium-light skin tone
+1F385 1F3FD                                            ; fully-qualified     # 🎅🏽 E1.0 Santa Claus: medium skin tone
+1F385 1F3FE                                            ; fully-qualified     # 🎅🏾 E1.0 Santa Claus: medium-dark skin tone
+1F385 1F3FF                                            ; fully-qualified     # 🎅🏿 E1.0 Santa Claus: dark skin tone
+1F936                                                  ; fully-qualified     # 🤶 E3.0 Mrs. Claus
+1F936 1F3FB                                            ; fully-qualified     # 🤶🏻 E3.0 Mrs. Claus: light skin tone
+1F936 1F3FC                                            ; fully-qualified     # 🤶🏼 E3.0 Mrs. Claus: medium-light skin tone
+1F936 1F3FD                                            ; fully-qualified     # 🤶🏽 E3.0 Mrs. Claus: medium skin tone
+1F936 1F3FE                                            ; fully-qualified     # 🤶🏾 E3.0 Mrs. Claus: medium-dark skin tone
+1F936 1F3FF                                            ; fully-qualified     # 🤶🏿 E3.0 Mrs. Claus: dark skin tone
+1F9D1 200D 1F384                                       ; fully-qualified     # 🧑‍🎄 E13.0 mx claus
+1F9D1 1F3FB 200D 1F384                                 ; fully-qualified     # 🧑🏻‍🎄 E13.0 mx claus: light skin tone
+1F9D1 1F3FC 200D 1F384                                 ; fully-qualified     # 🧑🏼‍🎄 E13.0 mx claus: medium-light skin tone
+1F9D1 1F3FD 200D 1F384                                 ; fully-qualified     # 🧑🏽‍🎄 E13.0 mx claus: medium skin tone
+1F9D1 1F3FE 200D 1F384                                 ; fully-qualified     # 🧑🏾‍🎄 E13.0 mx claus: medium-dark skin tone
+1F9D1 1F3FF 200D 1F384                                 ; fully-qualified     # 🧑🏿‍🎄 E13.0 mx claus: dark skin tone
+1F9B8                                                  ; fully-qualified     # 🦸 E11.0 superhero
+1F9B8 1F3FB                                            ; fully-qualified     # 🦸🏻 E11.0 superhero: light skin tone
+1F9B8 1F3FC                                            ; fully-qualified     # 🦸🏼 E11.0 superhero: medium-light skin tone
+1F9B8 1F3FD                                            ; fully-qualified     # 🦸🏽 E11.0 superhero: medium skin tone
+1F9B8 1F3FE                                            ; fully-qualified     # 🦸🏾 E11.0 superhero: medium-dark skin tone
+1F9B8 1F3FF                                            ; fully-qualified     # 🦸🏿 E11.0 superhero: dark skin tone
+1F9B8 200D 2642 FE0F                                   ; fully-qualified     # 🦸‍♂️ E11.0 man superhero
+1F9B8 200D 2642                                        ; minimally-qualified # 🦸‍♂ E11.0 man superhero
+1F9B8 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🦸🏻‍♂️ E11.0 man superhero: light skin tone
+1F9B8 1F3FB 200D 2642                                  ; minimally-qualified # 🦸🏻‍♂ E11.0 man superhero: light skin tone
+1F9B8 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🦸🏼‍♂️ E11.0 man superhero: medium-light skin tone
+1F9B8 1F3FC 200D 2642                                  ; minimally-qualified # 🦸🏼‍♂ E11.0 man superhero: medium-light skin tone
+1F9B8 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🦸🏽‍♂️ E11.0 man superhero: medium skin tone
+1F9B8 1F3FD 200D 2642                                  ; minimally-qualified # 🦸🏽‍♂ E11.0 man superhero: medium skin tone
+1F9B8 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🦸🏾‍♂️ E11.0 man superhero: medium-dark skin tone
+1F9B8 1F3FE 200D 2642                                  ; minimally-qualified # 🦸🏾‍♂ E11.0 man superhero: medium-dark skin tone
+1F9B8 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🦸🏿‍♂️ E11.0 man superhero: dark skin tone
+1F9B8 1F3FF 200D 2642                                  ; minimally-qualified # 🦸🏿‍♂ E11.0 man superhero: dark skin tone
+1F9B8 200D 2640 FE0F                                   ; fully-qualified     # 🦸‍♀️ E11.0 woman superhero
+1F9B8 200D 2640                                        ; minimally-qualified # 🦸‍♀ E11.0 woman superhero
+1F9B8 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🦸🏻‍♀️ E11.0 woman superhero: light skin tone
+1F9B8 1F3FB 200D 2640                                  ; minimally-qualified # 🦸🏻‍♀ E11.0 woman superhero: light skin tone
+1F9B8 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🦸🏼‍♀️ E11.0 woman superhero: medium-light skin tone
+1F9B8 1F3FC 200D 2640                                  ; minimally-qualified # 🦸🏼‍♀ E11.0 woman superhero: medium-light skin tone
+1F9B8 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🦸🏽‍♀️ E11.0 woman superhero: medium skin tone
+1F9B8 1F3FD 200D 2640                                  ; minimally-qualified # 🦸🏽‍♀ E11.0 woman superhero: medium skin tone
+1F9B8 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🦸🏾‍♀️ E11.0 woman superhero: medium-dark skin tone
+1F9B8 1F3FE 200D 2640                                  ; minimally-qualified # 🦸🏾‍♀ E11.0 woman superhero: medium-dark skin tone
+1F9B8 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🦸🏿‍♀️ E11.0 woman superhero: dark skin tone
+1F9B8 1F3FF 200D 2640                                  ; minimally-qualified # 🦸🏿‍♀ E11.0 woman superhero: dark skin tone
+1F9B9                                                  ; fully-qualified     # 🦹 E11.0 supervillain
+1F9B9 1F3FB                                            ; fully-qualified     # 🦹🏻 E11.0 supervillain: light skin tone
+1F9B9 1F3FC                                            ; fully-qualified     # 🦹🏼 E11.0 supervillain: medium-light skin tone
+1F9B9 1F3FD                                            ; fully-qualified     # 🦹🏽 E11.0 supervillain: medium skin tone
+1F9B9 1F3FE                                            ; fully-qualified     # 🦹🏾 E11.0 supervillain: medium-dark skin tone
+1F9B9 1F3FF                                            ; fully-qualified     # 🦹🏿 E11.0 supervillain: dark skin tone
+1F9B9 200D 2642 FE0F                                   ; fully-qualified     # 🦹‍♂️ E11.0 man supervillain
+1F9B9 200D 2642                                        ; minimally-qualified # 🦹‍♂ E11.0 man supervillain
+1F9B9 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🦹🏻‍♂️ E11.0 man supervillain: light skin tone
+1F9B9 1F3FB 200D 2642                                  ; minimally-qualified # 🦹🏻‍♂ E11.0 man supervillain: light skin tone
+1F9B9 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🦹🏼‍♂️ E11.0 man supervillain: medium-light skin tone
+1F9B9 1F3FC 200D 2642                                  ; minimally-qualified # 🦹🏼‍♂ E11.0 man supervillain: medium-light skin tone
+1F9B9 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🦹🏽‍♂️ E11.0 man supervillain: medium skin tone
+1F9B9 1F3FD 200D 2642                                  ; minimally-qualified # 🦹🏽‍♂ E11.0 man supervillain: medium skin tone
+1F9B9 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🦹🏾‍♂️ E11.0 man supervillain: medium-dark skin tone
+1F9B9 1F3FE 200D 2642                                  ; minimally-qualified # 🦹🏾‍♂ E11.0 man supervillain: medium-dark skin tone
+1F9B9 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🦹🏿‍♂️ E11.0 man supervillain: dark skin tone
+1F9B9 1F3FF 200D 2642                                  ; minimally-qualified # 🦹🏿‍♂ E11.0 man supervillain: dark skin tone
+1F9B9 200D 2640 FE0F                                   ; fully-qualified     # 🦹‍♀️ E11.0 woman supervillain
+1F9B9 200D 2640                                        ; minimally-qualified # 🦹‍♀ E11.0 woman supervillain
+1F9B9 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🦹🏻‍♀️ E11.0 woman supervillain: light skin tone
+1F9B9 1F3FB 200D 2640                                  ; minimally-qualified # 🦹🏻‍♀ E11.0 woman supervillain: light skin tone
+1F9B9 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🦹🏼‍♀️ E11.0 woman supervillain: medium-light skin tone
+1F9B9 1F3FC 200D 2640                                  ; minimally-qualified # 🦹🏼‍♀ E11.0 woman supervillain: medium-light skin tone
+1F9B9 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🦹🏽‍♀️ E11.0 woman supervillain: medium skin tone
+1F9B9 1F3FD 200D 2640                                  ; minimally-qualified # 🦹🏽‍♀ E11.0 woman supervillain: medium skin tone
+1F9B9 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🦹🏾‍♀️ E11.0 woman supervillain: medium-dark skin tone
+1F9B9 1F3FE 200D 2640                                  ; minimally-qualified # 🦹🏾‍♀ E11.0 woman supervillain: medium-dark skin tone
+1F9B9 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🦹🏿‍♀️ E11.0 woman supervillain: dark skin tone
+1F9B9 1F3FF 200D 2640                                  ; minimally-qualified # 🦹🏿‍♀ E11.0 woman supervillain: dark skin tone
+1F9D9                                                  ; fully-qualified     # 🧙 E5.0 mage
+1F9D9 1F3FB                                            ; fully-qualified     # 🧙🏻 E5.0 mage: light skin tone
+1F9D9 1F3FC                                            ; fully-qualified     # 🧙🏼 E5.0 mage: medium-light skin tone
+1F9D9 1F3FD                                            ; fully-qualified     # 🧙🏽 E5.0 mage: medium skin tone
+1F9D9 1F3FE                                            ; fully-qualified     # 🧙🏾 E5.0 mage: medium-dark skin tone
+1F9D9 1F3FF                                            ; fully-qualified     # 🧙🏿 E5.0 mage: dark skin tone
+1F9D9 200D 2642 FE0F                                   ; fully-qualified     # 🧙‍♂️ E5.0 man mage
+1F9D9 200D 2642                                        ; minimally-qualified # 🧙‍♂ E5.0 man mage
+1F9D9 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧙🏻‍♂️ E5.0 man mage: light skin tone
+1F9D9 1F3FB 200D 2642                                  ; minimally-qualified # 🧙🏻‍♂ E5.0 man mage: light skin tone
+1F9D9 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧙🏼‍♂️ E5.0 man mage: medium-light skin tone
+1F9D9 1F3FC 200D 2642                                  ; minimally-qualified # 🧙🏼‍♂ E5.0 man mage: medium-light skin tone
+1F9D9 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧙🏽‍♂️ E5.0 man mage: medium skin tone
+1F9D9 1F3FD 200D 2642                                  ; minimally-qualified # 🧙🏽‍♂ E5.0 man mage: medium skin tone
+1F9D9 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧙🏾‍♂️ E5.0 man mage: medium-dark skin tone
+1F9D9 1F3FE 200D 2642                                  ; minimally-qualified # 🧙🏾‍♂ E5.0 man mage: medium-dark skin tone
+1F9D9 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧙🏿‍♂️ E5.0 man mage: dark skin tone
+1F9D9 1F3FF 200D 2642                                  ; minimally-qualified # 🧙🏿‍♂ E5.0 man mage: dark skin tone
+1F9D9 200D 2640 FE0F                                   ; fully-qualified     # 🧙‍♀️ E5.0 woman mage
+1F9D9 200D 2640                                        ; minimally-qualified # 🧙‍♀ E5.0 woman mage
+1F9D9 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧙🏻‍♀️ E5.0 woman mage: light skin tone
+1F9D9 1F3FB 200D 2640                                  ; minimally-qualified # 🧙🏻‍♀ E5.0 woman mage: light skin tone
+1F9D9 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧙🏼‍♀️ E5.0 woman mage: medium-light skin tone
+1F9D9 1F3FC 200D 2640                                  ; minimally-qualified # 🧙🏼‍♀ E5.0 woman mage: medium-light skin tone
+1F9D9 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧙🏽‍♀️ E5.0 woman mage: medium skin tone
+1F9D9 1F3FD 200D 2640                                  ; minimally-qualified # 🧙🏽‍♀ E5.0 woman mage: medium skin tone
+1F9D9 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧙🏾‍♀️ E5.0 woman mage: medium-dark skin tone
+1F9D9 1F3FE 200D 2640                                  ; minimally-qualified # 🧙🏾‍♀ E5.0 woman mage: medium-dark skin tone
+1F9D9 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧙🏿‍♀️ E5.0 woman mage: dark skin tone
+1F9D9 1F3FF 200D 2640                                  ; minimally-qualified # 🧙🏿‍♀ E5.0 woman mage: dark skin tone
+1F9DA                                                  ; fully-qualified     # 🧚 E5.0 fairy
+1F9DA 1F3FB                                            ; fully-qualified     # 🧚🏻 E5.0 fairy: light skin tone
+1F9DA 1F3FC                                            ; fully-qualified     # 🧚🏼 E5.0 fairy: medium-light skin tone
+1F9DA 1F3FD                                            ; fully-qualified     # 🧚🏽 E5.0 fairy: medium skin tone
+1F9DA 1F3FE                                            ; fully-qualified     # 🧚🏾 E5.0 fairy: medium-dark skin tone
+1F9DA 1F3FF                                            ; fully-qualified     # 🧚🏿 E5.0 fairy: dark skin tone
+1F9DA 200D 2642 FE0F                                   ; fully-qualified     # 🧚‍♂️ E5.0 man fairy
+1F9DA 200D 2642                                        ; minimally-qualified # 🧚‍♂ E5.0 man fairy
+1F9DA 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧚🏻‍♂️ E5.0 man fairy: light skin tone
+1F9DA 1F3FB 200D 2642                                  ; minimally-qualified # 🧚🏻‍♂ E5.0 man fairy: light skin tone
+1F9DA 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧚🏼‍♂️ E5.0 man fairy: medium-light skin tone
+1F9DA 1F3FC 200D 2642                                  ; minimally-qualified # 🧚🏼‍♂ E5.0 man fairy: medium-light skin tone
+1F9DA 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧚🏽‍♂️ E5.0 man fairy: medium skin tone
+1F9DA 1F3FD 200D 2642                                  ; minimally-qualified # 🧚🏽‍♂ E5.0 man fairy: medium skin tone
+1F9DA 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧚🏾‍♂️ E5.0 man fairy: medium-dark skin tone
+1F9DA 1F3FE 200D 2642                                  ; minimally-qualified # 🧚🏾‍♂ E5.0 man fairy: medium-dark skin tone
+1F9DA 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧚🏿‍♂️ E5.0 man fairy: dark skin tone
+1F9DA 1F3FF 200D 2642                                  ; minimally-qualified # 🧚🏿‍♂ E5.0 man fairy: dark skin tone
+1F9DA 200D 2640 FE0F                                   ; fully-qualified     # 🧚‍♀️ E5.0 woman fairy
+1F9DA 200D 2640                                        ; minimally-qualified # 🧚‍♀ E5.0 woman fairy
+1F9DA 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧚🏻‍♀️ E5.0 woman fairy: light skin tone
+1F9DA 1F3FB 200D 2640                                  ; minimally-qualified # 🧚🏻‍♀ E5.0 woman fairy: light skin tone
+1F9DA 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧚🏼‍♀️ E5.0 woman fairy: medium-light skin tone
+1F9DA 1F3FC 200D 2640                                  ; minimally-qualified # 🧚🏼‍♀ E5.0 woman fairy: medium-light skin tone
+1F9DA 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧚🏽‍♀️ E5.0 woman fairy: medium skin tone
+1F9DA 1F3FD 200D 2640                                  ; minimally-qualified # 🧚🏽‍♀ E5.0 woman fairy: medium skin tone
+1F9DA 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧚🏾‍♀️ E5.0 woman fairy: medium-dark skin tone
+1F9DA 1F3FE 200D 2640                                  ; minimally-qualified # 🧚🏾‍♀ E5.0 woman fairy: medium-dark skin tone
+1F9DA 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧚🏿‍♀️ E5.0 woman fairy: dark skin tone
+1F9DA 1F3FF 200D 2640                                  ; minimally-qualified # 🧚🏿‍♀ E5.0 woman fairy: dark skin tone
+1F9DB                                                  ; fully-qualified     # 🧛 E5.0 vampire
+1F9DB 1F3FB                                            ; fully-qualified     # 🧛🏻 E5.0 vampire: light skin tone
+1F9DB 1F3FC                                            ; fully-qualified     # 🧛🏼 E5.0 vampire: medium-light skin tone
+1F9DB 1F3FD                                            ; fully-qualified     # 🧛🏽 E5.0 vampire: medium skin tone
+1F9DB 1F3FE                                            ; fully-qualified     # 🧛🏾 E5.0 vampire: medium-dark skin tone
+1F9DB 1F3FF                                            ; fully-qualified     # 🧛🏿 E5.0 vampire: dark skin tone
+1F9DB 200D 2642 FE0F                                   ; fully-qualified     # 🧛‍♂️ E5.0 man vampire
+1F9DB 200D 2642                                        ; minimally-qualified # 🧛‍♂ E5.0 man vampire
+1F9DB 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧛🏻‍♂️ E5.0 man vampire: light skin tone
+1F9DB 1F3FB 200D 2642                                  ; minimally-qualified # 🧛🏻‍♂ E5.0 man vampire: light skin tone
+1F9DB 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧛🏼‍♂️ E5.0 man vampire: medium-light skin tone
+1F9DB 1F3FC 200D 2642                                  ; minimally-qualified # 🧛🏼‍♂ E5.0 man vampire: medium-light skin tone
+1F9DB 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧛🏽‍♂️ E5.0 man vampire: medium skin tone
+1F9DB 1F3FD 200D 2642                                  ; minimally-qualified # 🧛🏽‍♂ E5.0 man vampire: medium skin tone
+1F9DB 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧛🏾‍♂️ E5.0 man vampire: medium-dark skin tone
+1F9DB 1F3FE 200D 2642                                  ; minimally-qualified # 🧛🏾‍♂ E5.0 man vampire: medium-dark skin tone
+1F9DB 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧛🏿‍♂️ E5.0 man vampire: dark skin tone
+1F9DB 1F3FF 200D 2642                                  ; minimally-qualified # 🧛🏿‍♂ E5.0 man vampire: dark skin tone
+1F9DB 200D 2640 FE0F                                   ; fully-qualified     # 🧛‍♀️ E5.0 woman vampire
+1F9DB 200D 2640                                        ; minimally-qualified # 🧛‍♀ E5.0 woman vampire
+1F9DB 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧛🏻‍♀️ E5.0 woman vampire: light skin tone
+1F9DB 1F3FB 200D 2640                                  ; minimally-qualified # 🧛🏻‍♀ E5.0 woman vampire: light skin tone
+1F9DB 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧛🏼‍♀️ E5.0 woman vampire: medium-light skin tone
+1F9DB 1F3FC 200D 2640                                  ; minimally-qualified # 🧛🏼‍♀ E5.0 woman vampire: medium-light skin tone
+1F9DB 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧛🏽‍♀️ E5.0 woman vampire: medium skin tone
+1F9DB 1F3FD 200D 2640                                  ; minimally-qualified # 🧛🏽‍♀ E5.0 woman vampire: medium skin tone
+1F9DB 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧛🏾‍♀️ E5.0 woman vampire: medium-dark skin tone
+1F9DB 1F3FE 200D 2640                                  ; minimally-qualified # 🧛🏾‍♀ E5.0 woman vampire: medium-dark skin tone
+1F9DB 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧛🏿‍♀️ E5.0 woman vampire: dark skin tone
+1F9DB 1F3FF 200D 2640                                  ; minimally-qualified # 🧛🏿‍♀ E5.0 woman vampire: dark skin tone
+1F9DC                                                  ; fully-qualified     # 🧜 E5.0 merperson
+1F9DC 1F3FB                                            ; fully-qualified     # 🧜🏻 E5.0 merperson: light skin tone
+1F9DC 1F3FC                                            ; fully-qualified     # 🧜🏼 E5.0 merperson: medium-light skin tone
+1F9DC 1F3FD                                            ; fully-qualified     # 🧜🏽 E5.0 merperson: medium skin tone
+1F9DC 1F3FE                                            ; fully-qualified     # 🧜🏾 E5.0 merperson: medium-dark skin tone
+1F9DC 1F3FF                                            ; fully-qualified     # 🧜🏿 E5.0 merperson: dark skin tone
+1F9DC 200D 2642 FE0F                                   ; fully-qualified     # 🧜‍♂️ E5.0 merman
+1F9DC 200D 2642                                        ; minimally-qualified # 🧜‍♂ E5.0 merman
+1F9DC 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧜🏻‍♂️ E5.0 merman: light skin tone
+1F9DC 1F3FB 200D 2642                                  ; minimally-qualified # 🧜🏻‍♂ E5.0 merman: light skin tone
+1F9DC 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧜🏼‍♂️ E5.0 merman: medium-light skin tone
+1F9DC 1F3FC 200D 2642                                  ; minimally-qualified # 🧜🏼‍♂ E5.0 merman: medium-light skin tone
+1F9DC 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧜🏽‍♂️ E5.0 merman: medium skin tone
+1F9DC 1F3FD 200D 2642                                  ; minimally-qualified # 🧜🏽‍♂ E5.0 merman: medium skin tone
+1F9DC 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧜🏾‍♂️ E5.0 merman: medium-dark skin tone
+1F9DC 1F3FE 200D 2642                                  ; minimally-qualified # 🧜🏾‍♂ E5.0 merman: medium-dark skin tone
+1F9DC 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧜🏿‍♂️ E5.0 merman: dark skin tone
+1F9DC 1F3FF 200D 2642                                  ; minimally-qualified # 🧜🏿‍♂ E5.0 merman: dark skin tone
+1F9DC 200D 2640 FE0F                                   ; fully-qualified     # 🧜‍♀️ E5.0 mermaid
+1F9DC 200D 2640                                        ; minimally-qualified # 🧜‍♀ E5.0 mermaid
+1F9DC 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧜🏻‍♀️ E5.0 mermaid: light skin tone
+1F9DC 1F3FB 200D 2640                                  ; minimally-qualified # 🧜🏻‍♀ E5.0 mermaid: light skin tone
+1F9DC 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧜🏼‍♀️ E5.0 mermaid: medium-light skin tone
+1F9DC 1F3FC 200D 2640                                  ; minimally-qualified # 🧜🏼‍♀ E5.0 mermaid: medium-light skin tone
+1F9DC 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧜🏽‍♀️ E5.0 mermaid: medium skin tone
+1F9DC 1F3FD 200D 2640                                  ; minimally-qualified # 🧜🏽‍♀ E5.0 mermaid: medium skin tone
+1F9DC 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧜🏾‍♀️ E5.0 mermaid: medium-dark skin tone
+1F9DC 1F3FE 200D 2640                                  ; minimally-qualified # 🧜🏾‍♀ E5.0 mermaid: medium-dark skin tone
+1F9DC 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧜🏿‍♀️ E5.0 mermaid: dark skin tone
+1F9DC 1F3FF 200D 2640                                  ; minimally-qualified # 🧜🏿‍♀ E5.0 mermaid: dark skin tone
+1F9DD                                                  ; fully-qualified     # 🧝 E5.0 elf
+1F9DD 1F3FB                                            ; fully-qualified     # 🧝🏻 E5.0 elf: light skin tone
+1F9DD 1F3FC                                            ; fully-qualified     # 🧝🏼 E5.0 elf: medium-light skin tone
+1F9DD 1F3FD                                            ; fully-qualified     # 🧝🏽 E5.0 elf: medium skin tone
+1F9DD 1F3FE                                            ; fully-qualified     # 🧝🏾 E5.0 elf: medium-dark skin tone
+1F9DD 1F3FF                                            ; fully-qualified     # 🧝🏿 E5.0 elf: dark skin tone
+1F9DD 200D 2642 FE0F                                   ; fully-qualified     # 🧝‍♂️ E5.0 man elf
+1F9DD 200D 2642                                        ; minimally-qualified # 🧝‍♂ E5.0 man elf
+1F9DD 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧝🏻‍♂️ E5.0 man elf: light skin tone
+1F9DD 1F3FB 200D 2642                                  ; minimally-qualified # 🧝🏻‍♂ E5.0 man elf: light skin tone
+1F9DD 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧝🏼‍♂️ E5.0 man elf: medium-light skin tone
+1F9DD 1F3FC 200D 2642                                  ; minimally-qualified # 🧝🏼‍♂ E5.0 man elf: medium-light skin tone
+1F9DD 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧝🏽‍♂️ E5.0 man elf: medium skin tone
+1F9DD 1F3FD 200D 2642                                  ; minimally-qualified # 🧝🏽‍♂ E5.0 man elf: medium skin tone
+1F9DD 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧝🏾‍♂️ E5.0 man elf: medium-dark skin tone
+1F9DD 1F3FE 200D 2642                                  ; minimally-qualified # 🧝🏾‍♂ E5.0 man elf: medium-dark skin tone
+1F9DD 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧝🏿‍♂️ E5.0 man elf: dark skin tone
+1F9DD 1F3FF 200D 2642                                  ; minimally-qualified # 🧝🏿‍♂ E5.0 man elf: dark skin tone
+1F9DD 200D 2640 FE0F                                   ; fully-qualified     # 🧝‍♀️ E5.0 woman elf
+1F9DD 200D 2640                                        ; minimally-qualified # 🧝‍♀ E5.0 woman elf
+1F9DD 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧝🏻‍♀️ E5.0 woman elf: light skin tone
+1F9DD 1F3FB 200D 2640                                  ; minimally-qualified # 🧝🏻‍♀ E5.0 woman elf: light skin tone
+1F9DD 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧝🏼‍♀️ E5.0 woman elf: medium-light skin tone
+1F9DD 1F3FC 200D 2640                                  ; minimally-qualified # 🧝🏼‍♀ E5.0 woman elf: medium-light skin tone
+1F9DD 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧝🏽‍♀️ E5.0 woman elf: medium skin tone
+1F9DD 1F3FD 200D 2640                                  ; minimally-qualified # 🧝🏽‍♀ E5.0 woman elf: medium skin tone
+1F9DD 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧝🏾‍♀️ E5.0 woman elf: medium-dark skin tone
+1F9DD 1F3FE 200D 2640                                  ; minimally-qualified # 🧝🏾‍♀ E5.0 woman elf: medium-dark skin tone
+1F9DD 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧝🏿‍♀️ E5.0 woman elf: dark skin tone
+1F9DD 1F3FF 200D 2640                                  ; minimally-qualified # 🧝🏿‍♀ E5.0 woman elf: dark skin tone
+1F9DE                                                  ; fully-qualified     # 🧞 E5.0 genie
+1F9DE 200D 2642 FE0F                                   ; fully-qualified     # 🧞‍♂️ E5.0 man genie
+1F9DE 200D 2642                                        ; minimally-qualified # 🧞‍♂ E5.0 man genie
+1F9DE 200D 2640 FE0F                                   ; fully-qualified     # 🧞‍♀️ E5.0 woman genie
+1F9DE 200D 2640                                        ; minimally-qualified # 🧞‍♀ E5.0 woman genie
+1F9DF                                                  ; fully-qualified     # 🧟 E5.0 zombie
+1F9DF 200D 2642 FE0F                                   ; fully-qualified     # 🧟‍♂️ E5.0 man zombie
+1F9DF 200D 2642                                        ; minimally-qualified # 🧟‍♂ E5.0 man zombie
+1F9DF 200D 2640 FE0F                                   ; fully-qualified     # 🧟‍♀️ E5.0 woman zombie
+1F9DF 200D 2640                                        ; minimally-qualified # 🧟‍♀ E5.0 woman zombie
+1F9CC                                                  ; fully-qualified     # 🧌 E14.0 troll
+
+# subgroup: person-activity
+1F486                                                  ; fully-qualified     # 💆 E0.6 person getting massage
+1F486 1F3FB                                            ; fully-qualified     # 💆🏻 E1.0 person getting massage: light skin tone
+1F486 1F3FC                                            ; fully-qualified     # 💆🏼 E1.0 person getting massage: medium-light skin tone
+1F486 1F3FD                                            ; fully-qualified     # 💆🏽 E1.0 person getting massage: medium skin tone
+1F486 1F3FE                                            ; fully-qualified     # 💆🏾 E1.0 person getting massage: medium-dark skin tone
+1F486 1F3FF                                            ; fully-qualified     # 💆🏿 E1.0 person getting massage: dark skin tone
+1F486 200D 2642 FE0F                                   ; fully-qualified     # 💆‍♂️ E4.0 man getting massage
+1F486 200D 2642                                        ; minimally-qualified # 💆‍♂ E4.0 man getting massage
+1F486 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 💆🏻‍♂️ E4.0 man getting massage: light skin tone
+1F486 1F3FB 200D 2642                                  ; minimally-qualified # 💆🏻‍♂ E4.0 man getting massage: light skin tone
+1F486 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 💆🏼‍♂️ E4.0 man getting massage: medium-light skin tone
+1F486 1F3FC 200D 2642                                  ; minimally-qualified # 💆🏼‍♂ E4.0 man getting massage: medium-light skin tone
+1F486 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 💆🏽‍♂️ E4.0 man getting massage: medium skin tone
+1F486 1F3FD 200D 2642                                  ; minimally-qualified # 💆🏽‍♂ E4.0 man getting massage: medium skin tone
+1F486 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 💆🏾‍♂️ E4.0 man getting massage: medium-dark skin tone
+1F486 1F3FE 200D 2642                                  ; minimally-qualified # 💆🏾‍♂ E4.0 man getting massage: medium-dark skin tone
+1F486 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 💆🏿‍♂️ E4.0 man getting massage: dark skin tone
+1F486 1F3FF 200D 2642                                  ; minimally-qualified # 💆🏿‍♂ E4.0 man getting massage: dark skin tone
+1F486 200D 2640 FE0F                                   ; fully-qualified     # 💆‍♀️ E4.0 woman getting massage
+1F486 200D 2640                                        ; minimally-qualified # 💆‍♀ E4.0 woman getting massage
+1F486 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 💆🏻‍♀️ E4.0 woman getting massage: light skin tone
+1F486 1F3FB 200D 2640                                  ; minimally-qualified # 💆🏻‍♀ E4.0 woman getting massage: light skin tone
+1F486 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 💆🏼‍♀️ E4.0 woman getting massage: medium-light skin tone
+1F486 1F3FC 200D 2640                                  ; minimally-qualified # 💆🏼‍♀ E4.0 woman getting massage: medium-light skin tone
+1F486 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 💆🏽‍♀️ E4.0 woman getting massage: medium skin tone
+1F486 1F3FD 200D 2640                                  ; minimally-qualified # 💆🏽‍♀ E4.0 woman getting massage: medium skin tone
+1F486 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 💆🏾‍♀️ E4.0 woman getting massage: medium-dark skin tone
+1F486 1F3FE 200D 2640                                  ; minimally-qualified # 💆🏾‍♀ E4.0 woman getting massage: medium-dark skin tone
+1F486 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 💆🏿‍♀️ E4.0 woman getting massage: dark skin tone
+1F486 1F3FF 200D 2640                                  ; minimally-qualified # 💆🏿‍♀ E4.0 woman getting massage: dark skin tone
+1F487                                                  ; fully-qualified     # 💇 E0.6 person getting haircut
+1F487 1F3FB                                            ; fully-qualified     # 💇🏻 E1.0 person getting haircut: light skin tone
+1F487 1F3FC                                            ; fully-qualified     # 💇🏼 E1.0 person getting haircut: medium-light skin tone
+1F487 1F3FD                                            ; fully-qualified     # 💇🏽 E1.0 person getting haircut: medium skin tone
+1F487 1F3FE                                            ; fully-qualified     # 💇🏾 E1.0 person getting haircut: medium-dark skin tone
+1F487 1F3FF                                            ; fully-qualified     # 💇🏿 E1.0 person getting haircut: dark skin tone
+1F487 200D 2642 FE0F                                   ; fully-qualified     # 💇‍♂️ E4.0 man getting haircut
+1F487 200D 2642                                        ; minimally-qualified # 💇‍♂ E4.0 man getting haircut
+1F487 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 💇🏻‍♂️ E4.0 man getting haircut: light skin tone
+1F487 1F3FB 200D 2642                                  ; minimally-qualified # 💇🏻‍♂ E4.0 man getting haircut: light skin tone
+1F487 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 💇🏼‍♂️ E4.0 man getting haircut: medium-light skin tone
+1F487 1F3FC 200D 2642                                  ; minimally-qualified # 💇🏼‍♂ E4.0 man getting haircut: medium-light skin tone
+1F487 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 💇🏽‍♂️ E4.0 man getting haircut: medium skin tone
+1F487 1F3FD 200D 2642                                  ; minimally-qualified # 💇🏽‍♂ E4.0 man getting haircut: medium skin tone
+1F487 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 💇🏾‍♂️ E4.0 man getting haircut: medium-dark skin tone
+1F487 1F3FE 200D 2642                                  ; minimally-qualified # 💇🏾‍♂ E4.0 man getting haircut: medium-dark skin tone
+1F487 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 💇🏿‍♂️ E4.0 man getting haircut: dark skin tone
+1F487 1F3FF 200D 2642                                  ; minimally-qualified # 💇🏿‍♂ E4.0 man getting haircut: dark skin tone
+1F487 200D 2640 FE0F                                   ; fully-qualified     # 💇‍♀️ E4.0 woman getting haircut
+1F487 200D 2640                                        ; minimally-qualified # 💇‍♀ E4.0 woman getting haircut
+1F487 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 💇🏻‍♀️ E4.0 woman getting haircut: light skin tone
+1F487 1F3FB 200D 2640                                  ; minimally-qualified # 💇🏻‍♀ E4.0 woman getting haircut: light skin tone
+1F487 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 💇🏼‍♀️ E4.0 woman getting haircut: medium-light skin tone
+1F487 1F3FC 200D 2640                                  ; minimally-qualified # 💇🏼‍♀ E4.0 woman getting haircut: medium-light skin tone
+1F487 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 💇🏽‍♀️ E4.0 woman getting haircut: medium skin tone
+1F487 1F3FD 200D 2640                                  ; minimally-qualified # 💇🏽‍♀ E4.0 woman getting haircut: medium skin tone
+1F487 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 💇🏾‍♀️ E4.0 woman getting haircut: medium-dark skin tone
+1F487 1F3FE 200D 2640                                  ; minimally-qualified # 💇🏾‍♀ E4.0 woman getting haircut: medium-dark skin tone
+1F487 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 💇🏿‍♀️ E4.0 woman getting haircut: dark skin tone
+1F487 1F3FF 200D 2640                                  ; minimally-qualified # 💇🏿‍♀ E4.0 woman getting haircut: dark skin tone
+1F6B6                                                  ; fully-qualified     # 🚶 E0.6 person walking
+1F6B6 1F3FB                                            ; fully-qualified     # 🚶🏻 E1.0 person walking: light skin tone
+1F6B6 1F3FC                                            ; fully-qualified     # 🚶🏼 E1.0 person walking: medium-light skin tone
+1F6B6 1F3FD                                            ; fully-qualified     # 🚶🏽 E1.0 person walking: medium skin tone
+1F6B6 1F3FE                                            ; fully-qualified     # 🚶🏾 E1.0 person walking: medium-dark skin tone
+1F6B6 1F3FF                                            ; fully-qualified     # 🚶🏿 E1.0 person walking: dark skin tone
+1F6B6 200D 2642 FE0F                                   ; fully-qualified     # 🚶‍♂️ E4.0 man walking
+1F6B6 200D 2642                                        ; minimally-qualified # 🚶‍♂ E4.0 man walking
+1F6B6 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🚶🏻‍♂️ E4.0 man walking: light skin tone
+1F6B6 1F3FB 200D 2642                                  ; minimally-qualified # 🚶🏻‍♂ E4.0 man walking: light skin tone
+1F6B6 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🚶🏼‍♂️ E4.0 man walking: medium-light skin tone
+1F6B6 1F3FC 200D 2642                                  ; minimally-qualified # 🚶🏼‍♂ E4.0 man walking: medium-light skin tone
+1F6B6 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🚶🏽‍♂️ E4.0 man walking: medium skin tone
+1F6B6 1F3FD 200D 2642                                  ; minimally-qualified # 🚶🏽‍♂ E4.0 man walking: medium skin tone
+1F6B6 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🚶🏾‍♂️ E4.0 man walking: medium-dark skin tone
+1F6B6 1F3FE 200D 2642                                  ; minimally-qualified # 🚶🏾‍♂ E4.0 man walking: medium-dark skin tone
+1F6B6 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🚶🏿‍♂️ E4.0 man walking: dark skin tone
+1F6B6 1F3FF 200D 2642                                  ; minimally-qualified # 🚶🏿‍♂ E4.0 man walking: dark skin tone
+1F6B6 200D 2640 FE0F                                   ; fully-qualified     # 🚶‍♀️ E4.0 woman walking
+1F6B6 200D 2640                                        ; minimally-qualified # 🚶‍♀ E4.0 woman walking
+1F6B6 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🚶🏻‍♀️ E4.0 woman walking: light skin tone
+1F6B6 1F3FB 200D 2640                                  ; minimally-qualified # 🚶🏻‍♀ E4.0 woman walking: light skin tone
+1F6B6 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🚶🏼‍♀️ E4.0 woman walking: medium-light skin tone
+1F6B6 1F3FC 200D 2640                                  ; minimally-qualified # 🚶🏼‍♀ E4.0 woman walking: medium-light skin tone
+1F6B6 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🚶🏽‍♀️ E4.0 woman walking: medium skin tone
+1F6B6 1F3FD 200D 2640                                  ; minimally-qualified # 🚶🏽‍♀ E4.0 woman walking: medium skin tone
+1F6B6 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🚶🏾‍♀️ E4.0 woman walking: medium-dark skin tone
+1F6B6 1F3FE 200D 2640                                  ; minimally-qualified # 🚶🏾‍♀ E4.0 woman walking: medium-dark skin tone
+1F6B6 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🚶🏿‍♀️ E4.0 woman walking: dark skin tone
+1F6B6 1F3FF 200D 2640                                  ; minimally-qualified # 🚶🏿‍♀ E4.0 woman walking: dark skin tone
+1F6B6 200D 27A1 FE0F                                   ; fully-qualified     # 🚶‍➡️ E15.1 person walking facing right
+1F6B6 200D 27A1                                        ; minimally-qualified # 🚶‍➡ E15.1 person walking facing right
+1F6B6 1F3FB 200D 27A1 FE0F                             ; fully-qualified     # 🚶🏻‍➡️ E15.1 person walking facing right: light skin tone
+1F6B6 1F3FB 200D 27A1                                  ; minimally-qualified # 🚶🏻‍➡ E15.1 person walking facing right: light skin tone
+1F6B6 1F3FC 200D 27A1 FE0F                             ; fully-qualified     # 🚶🏼‍➡️ E15.1 person walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 27A1                                  ; minimally-qualified # 🚶🏼‍➡ E15.1 person walking facing right: medium-light skin tone
+1F6B6 1F3FD 200D 27A1 FE0F                             ; fully-qualified     # 🚶🏽‍➡️ E15.1 person walking facing right: medium skin tone
+1F6B6 1F3FD 200D 27A1                                  ; minimally-qualified # 🚶🏽‍➡ E15.1 person walking facing right: medium skin tone
+1F6B6 1F3FE 200D 27A1 FE0F                             ; fully-qualified     # 🚶🏾‍➡️ E15.1 person walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 27A1                                  ; minimally-qualified # 🚶🏾‍➡ E15.1 person walking facing right: medium-dark skin tone
+1F6B6 1F3FF 200D 27A1 FE0F                             ; fully-qualified     # 🚶🏿‍➡️ E15.1 person walking facing right: dark skin tone
+1F6B6 1F3FF 200D 27A1                                  ; minimally-qualified # 🚶🏿‍➡ E15.1 person walking facing right: dark skin tone
+1F6B6 200D 2640 FE0F 200D 27A1 FE0F                    ; fully-qualified     # 🚶‍♀️‍➡️ E15.1 woman walking facing right
+1F6B6 200D 2640 200D 27A1 FE0F                         ; minimally-qualified # 🚶‍♀‍➡️ E15.1 woman walking facing right
+1F6B6 200D 2640 FE0F 200D 27A1                         ; minimally-qualified # 🚶‍♀️‍➡ E15.1 woman walking facing right
+1F6B6 200D 2640 200D 27A1                              ; minimally-qualified # 🚶‍♀‍➡ E15.1 woman walking facing right
+1F6B6 1F3FB 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏻‍♀️‍➡️ E15.1 woman walking facing right: light skin tone
+1F6B6 1F3FB 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏻‍♀‍➡️ E15.1 woman walking facing right: light skin tone
+1F6B6 1F3FB 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏻‍♀️‍➡ E15.1 woman walking facing right: light skin tone
+1F6B6 1F3FB 200D 2640 200D 27A1                        ; minimally-qualified # 🚶🏻‍♀‍➡ E15.1 woman walking facing right: light skin tone
+1F6B6 1F3FC 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏼‍♀️‍➡️ E15.1 woman walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏼‍♀‍➡️ E15.1 woman walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏼‍♀️‍➡ E15.1 woman walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2640 200D 27A1                        ; minimally-qualified # 🚶🏼‍♀‍➡ E15.1 woman walking facing right: medium-light skin tone
+1F6B6 1F3FD 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏽‍♀️‍➡️ E15.1 woman walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏽‍♀‍➡️ E15.1 woman walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏽‍♀️‍➡ E15.1 woman walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2640 200D 27A1                        ; minimally-qualified # 🚶🏽‍♀‍➡ E15.1 woman walking facing right: medium skin tone
+1F6B6 1F3FE 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏾‍♀️‍➡️ E15.1 woman walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏾‍♀‍➡️ E15.1 woman walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏾‍♀️‍➡ E15.1 woman walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2640 200D 27A1                        ; minimally-qualified # 🚶🏾‍♀‍➡ E15.1 woman walking facing right: medium-dark skin tone
+1F6B6 1F3FF 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏿‍♀️‍➡️ E15.1 woman walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏿‍♀‍➡️ E15.1 woman walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏿‍♀️‍➡ E15.1 woman walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2640 200D 27A1                        ; minimally-qualified # 🚶🏿‍♀‍➡ E15.1 woman walking facing right: dark skin tone
+1F6B6 200D 2642 FE0F 200D 27A1 FE0F                    ; fully-qualified     # 🚶‍♂️‍➡️ E15.1 man walking facing right
+1F6B6 200D 2642 200D 27A1 FE0F                         ; minimally-qualified # 🚶‍♂‍➡️ E15.1 man walking facing right
+1F6B6 200D 2642 FE0F 200D 27A1                         ; minimally-qualified # 🚶‍♂️‍➡ E15.1 man walking facing right
+1F6B6 200D 2642 200D 27A1                              ; minimally-qualified # 🚶‍♂‍➡ E15.1 man walking facing right
+1F6B6 1F3FB 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏻‍♂️‍➡️ E15.1 man walking facing right: light skin tone
+1F6B6 1F3FB 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏻‍♂‍➡️ E15.1 man walking facing right: light skin tone
+1F6B6 1F3FB 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏻‍♂️‍➡ E15.1 man walking facing right: light skin tone
+1F6B6 1F3FB 200D 2642 200D 27A1                        ; minimally-qualified # 🚶🏻‍♂‍➡ E15.1 man walking facing right: light skin tone
+1F6B6 1F3FC 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏼‍♂️‍➡️ E15.1 man walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏼‍♂‍➡️ E15.1 man walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏼‍♂️‍➡ E15.1 man walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2642 200D 27A1                        ; minimally-qualified # 🚶🏼‍♂‍➡ E15.1 man walking facing right: medium-light skin tone
+1F6B6 1F3FD 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏽‍♂️‍➡️ E15.1 man walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏽‍♂‍➡️ E15.1 man walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏽‍♂️‍➡ E15.1 man walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2642 200D 27A1                        ; minimally-qualified # 🚶🏽‍♂‍➡ E15.1 man walking facing right: medium skin tone
+1F6B6 1F3FE 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏾‍♂️‍➡️ E15.1 man walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏾‍♂‍➡️ E15.1 man walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏾‍♂️‍➡ E15.1 man walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2642 200D 27A1                        ; minimally-qualified # 🚶🏾‍♂‍➡ E15.1 man walking facing right: medium-dark skin tone
+1F6B6 1F3FF 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🚶🏿‍♂️‍➡️ E15.1 man walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🚶🏿‍♂‍➡️ E15.1 man walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🚶🏿‍♂️‍➡ E15.1 man walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2642 200D 27A1                        ; minimally-qualified # 🚶🏿‍♂‍➡ E15.1 man walking facing right: dark skin tone
+1F9CD                                                  ; fully-qualified     # 🧍 E12.0 person standing
+1F9CD 1F3FB                                            ; fully-qualified     # 🧍🏻 E12.0 person standing: light skin tone
+1F9CD 1F3FC                                            ; fully-qualified     # 🧍🏼 E12.0 person standing: medium-light skin tone
+1F9CD 1F3FD                                            ; fully-qualified     # 🧍🏽 E12.0 person standing: medium skin tone
+1F9CD 1F3FE                                            ; fully-qualified     # 🧍🏾 E12.0 person standing: medium-dark skin tone
+1F9CD 1F3FF                                            ; fully-qualified     # 🧍🏿 E12.0 person standing: dark skin tone
+1F9CD 200D 2642 FE0F                                   ; fully-qualified     # 🧍‍♂️ E12.0 man standing
+1F9CD 200D 2642                                        ; minimally-qualified # 🧍‍♂ E12.0 man standing
+1F9CD 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧍🏻‍♂️ E12.0 man standing: light skin tone
+1F9CD 1F3FB 200D 2642                                  ; minimally-qualified # 🧍🏻‍♂ E12.0 man standing: light skin tone
+1F9CD 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧍🏼‍♂️ E12.0 man standing: medium-light skin tone
+1F9CD 1F3FC 200D 2642                                  ; minimally-qualified # 🧍🏼‍♂ E12.0 man standing: medium-light skin tone
+1F9CD 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧍🏽‍♂️ E12.0 man standing: medium skin tone
+1F9CD 1F3FD 200D 2642                                  ; minimally-qualified # 🧍🏽‍♂ E12.0 man standing: medium skin tone
+1F9CD 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧍🏾‍♂️ E12.0 man standing: medium-dark skin tone
+1F9CD 1F3FE 200D 2642                                  ; minimally-qualified # 🧍🏾‍♂ E12.0 man standing: medium-dark skin tone
+1F9CD 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧍🏿‍♂️ E12.0 man standing: dark skin tone
+1F9CD 1F3FF 200D 2642                                  ; minimally-qualified # 🧍🏿‍♂ E12.0 man standing: dark skin tone
+1F9CD 200D 2640 FE0F                                   ; fully-qualified     # 🧍‍♀️ E12.0 woman standing
+1F9CD 200D 2640                                        ; minimally-qualified # 🧍‍♀ E12.0 woman standing
+1F9CD 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧍🏻‍♀️ E12.0 woman standing: light skin tone
+1F9CD 1F3FB 200D 2640                                  ; minimally-qualified # 🧍🏻‍♀ E12.0 woman standing: light skin tone
+1F9CD 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧍🏼‍♀️ E12.0 woman standing: medium-light skin tone
+1F9CD 1F3FC 200D 2640                                  ; minimally-qualified # 🧍🏼‍♀ E12.0 woman standing: medium-light skin tone
+1F9CD 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧍🏽‍♀️ E12.0 woman standing: medium skin tone
+1F9CD 1F3FD 200D 2640                                  ; minimally-qualified # 🧍🏽‍♀ E12.0 woman standing: medium skin tone
+1F9CD 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧍🏾‍♀️ E12.0 woman standing: medium-dark skin tone
+1F9CD 1F3FE 200D 2640                                  ; minimally-qualified # 🧍🏾‍♀ E12.0 woman standing: medium-dark skin tone
+1F9CD 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧍🏿‍♀️ E12.0 woman standing: dark skin tone
+1F9CD 1F3FF 200D 2640                                  ; minimally-qualified # 🧍🏿‍♀ E12.0 woman standing: dark skin tone
+1F9CE                                                  ; fully-qualified     # 🧎 E12.0 person kneeling
+1F9CE 1F3FB                                            ; fully-qualified     # 🧎🏻 E12.0 person kneeling: light skin tone
+1F9CE 1F3FC                                            ; fully-qualified     # 🧎🏼 E12.0 person kneeling: medium-light skin tone
+1F9CE 1F3FD                                            ; fully-qualified     # 🧎🏽 E12.0 person kneeling: medium skin tone
+1F9CE 1F3FE                                            ; fully-qualified     # 🧎🏾 E12.0 person kneeling: medium-dark skin tone
+1F9CE 1F3FF                                            ; fully-qualified     # 🧎🏿 E12.0 person kneeling: dark skin tone
+1F9CE 200D 2642 FE0F                                   ; fully-qualified     # 🧎‍♂️ E12.0 man kneeling
+1F9CE 200D 2642                                        ; minimally-qualified # 🧎‍♂ E12.0 man kneeling
+1F9CE 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧎🏻‍♂️ E12.0 man kneeling: light skin tone
+1F9CE 1F3FB 200D 2642                                  ; minimally-qualified # 🧎🏻‍♂ E12.0 man kneeling: light skin tone
+1F9CE 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧎🏼‍♂️ E12.0 man kneeling: medium-light skin tone
+1F9CE 1F3FC 200D 2642                                  ; minimally-qualified # 🧎🏼‍♂ E12.0 man kneeling: medium-light skin tone
+1F9CE 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧎🏽‍♂️ E12.0 man kneeling: medium skin tone
+1F9CE 1F3FD 200D 2642                                  ; minimally-qualified # 🧎🏽‍♂ E12.0 man kneeling: medium skin tone
+1F9CE 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧎🏾‍♂️ E12.0 man kneeling: medium-dark skin tone
+1F9CE 1F3FE 200D 2642                                  ; minimally-qualified # 🧎🏾‍♂ E12.0 man kneeling: medium-dark skin tone
+1F9CE 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧎🏿‍♂️ E12.0 man kneeling: dark skin tone
+1F9CE 1F3FF 200D 2642                                  ; minimally-qualified # 🧎🏿‍♂ E12.0 man kneeling: dark skin tone
+1F9CE 200D 2640 FE0F                                   ; fully-qualified     # 🧎‍♀️ E12.0 woman kneeling
+1F9CE 200D 2640                                        ; minimally-qualified # 🧎‍♀ E12.0 woman kneeling
+1F9CE 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧎🏻‍♀️ E12.0 woman kneeling: light skin tone
+1F9CE 1F3FB 200D 2640                                  ; minimally-qualified # 🧎🏻‍♀ E12.0 woman kneeling: light skin tone
+1F9CE 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧎🏼‍♀️ E12.0 woman kneeling: medium-light skin tone
+1F9CE 1F3FC 200D 2640                                  ; minimally-qualified # 🧎🏼‍♀ E12.0 woman kneeling: medium-light skin tone
+1F9CE 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧎🏽‍♀️ E12.0 woman kneeling: medium skin tone
+1F9CE 1F3FD 200D 2640                                  ; minimally-qualified # 🧎🏽‍♀ E12.0 woman kneeling: medium skin tone
+1F9CE 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧎🏾‍♀️ E12.0 woman kneeling: medium-dark skin tone
+1F9CE 1F3FE 200D 2640                                  ; minimally-qualified # 🧎🏾‍♀ E12.0 woman kneeling: medium-dark skin tone
+1F9CE 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧎🏿‍♀️ E12.0 woman kneeling: dark skin tone
+1F9CE 1F3FF 200D 2640                                  ; minimally-qualified # 🧎🏿‍♀ E12.0 woman kneeling: dark skin tone
+1F9CE 200D 27A1 FE0F                                   ; fully-qualified     # 🧎‍➡️ E15.1 person kneeling facing right
+1F9CE 200D 27A1                                        ; minimally-qualified # 🧎‍➡ E15.1 person kneeling facing right
+1F9CE 1F3FB 200D 27A1 FE0F                             ; fully-qualified     # 🧎🏻‍➡️ E15.1 person kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 27A1                                  ; minimally-qualified # 🧎🏻‍➡ E15.1 person kneeling facing right: light skin tone
+1F9CE 1F3FC 200D 27A1 FE0F                             ; fully-qualified     # 🧎🏼‍➡️ E15.1 person kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 27A1                                  ; minimally-qualified # 🧎🏼‍➡ E15.1 person kneeling facing right: medium-light skin tone
+1F9CE 1F3FD 200D 27A1 FE0F                             ; fully-qualified     # 🧎🏽‍➡️ E15.1 person kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 27A1                                  ; minimally-qualified # 🧎🏽‍➡ E15.1 person kneeling facing right: medium skin tone
+1F9CE 1F3FE 200D 27A1 FE0F                             ; fully-qualified     # 🧎🏾‍➡️ E15.1 person kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 27A1                                  ; minimally-qualified # 🧎🏾‍➡ E15.1 person kneeling facing right: medium-dark skin tone
+1F9CE 1F3FF 200D 27A1 FE0F                             ; fully-qualified     # 🧎🏿‍➡️ E15.1 person kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 27A1                                  ; minimally-qualified # 🧎🏿‍➡ E15.1 person kneeling facing right: dark skin tone
+1F9CE 200D 2640 FE0F 200D 27A1 FE0F                    ; fully-qualified     # 🧎‍♀️‍➡️ E15.1 woman kneeling facing right
+1F9CE 200D 2640 200D 27A1 FE0F                         ; minimally-qualified # 🧎‍♀‍➡️ E15.1 woman kneeling facing right
+1F9CE 200D 2640 FE0F 200D 27A1                         ; minimally-qualified # 🧎‍♀️‍➡ E15.1 woman kneeling facing right
+1F9CE 200D 2640 200D 27A1                              ; minimally-qualified # 🧎‍♀‍➡ E15.1 woman kneeling facing right
+1F9CE 1F3FB 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏻‍♀️‍➡️ E15.1 woman kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏻‍♀‍➡️ E15.1 woman kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏻‍♀️‍➡ E15.1 woman kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2640 200D 27A1                        ; minimally-qualified # 🧎🏻‍♀‍➡ E15.1 woman kneeling facing right: light skin tone
+1F9CE 1F3FC 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏼‍♀️‍➡️ E15.1 woman kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏼‍♀‍➡️ E15.1 woman kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏼‍♀️‍➡ E15.1 woman kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2640 200D 27A1                        ; minimally-qualified # 🧎🏼‍♀‍➡ E15.1 woman kneeling facing right: medium-light skin tone
+1F9CE 1F3FD 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏽‍♀️‍➡️ E15.1 woman kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏽‍♀‍➡️ E15.1 woman kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏽‍♀️‍➡ E15.1 woman kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2640 200D 27A1                        ; minimally-qualified # 🧎🏽‍♀‍➡ E15.1 woman kneeling facing right: medium skin tone
+1F9CE 1F3FE 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏾‍♀️‍➡️ E15.1 woman kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏾‍♀‍➡️ E15.1 woman kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏾‍♀️‍➡ E15.1 woman kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2640 200D 27A1                        ; minimally-qualified # 🧎🏾‍♀‍➡ E15.1 woman kneeling facing right: medium-dark skin tone
+1F9CE 1F3FF 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏿‍♀️‍➡️ E15.1 woman kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏿‍♀‍➡️ E15.1 woman kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏿‍♀️‍➡ E15.1 woman kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2640 200D 27A1                        ; minimally-qualified # 🧎🏿‍♀‍➡ E15.1 woman kneeling facing right: dark skin tone
+1F9CE 200D 2642 FE0F 200D 27A1 FE0F                    ; fully-qualified     # 🧎‍♂️‍➡️ E15.1 man kneeling facing right
+1F9CE 200D 2642 200D 27A1 FE0F                         ; minimally-qualified # 🧎‍♂‍➡️ E15.1 man kneeling facing right
+1F9CE 200D 2642 FE0F 200D 27A1                         ; minimally-qualified # 🧎‍♂️‍➡ E15.1 man kneeling facing right
+1F9CE 200D 2642 200D 27A1                              ; minimally-qualified # 🧎‍♂‍➡ E15.1 man kneeling facing right
+1F9CE 1F3FB 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏻‍♂️‍➡️ E15.1 man kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏻‍♂‍➡️ E15.1 man kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏻‍♂️‍➡ E15.1 man kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2642 200D 27A1                        ; minimally-qualified # 🧎🏻‍♂‍➡ E15.1 man kneeling facing right: light skin tone
+1F9CE 1F3FC 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏼‍♂️‍➡️ E15.1 man kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏼‍♂‍➡️ E15.1 man kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏼‍♂️‍➡ E15.1 man kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2642 200D 27A1                        ; minimally-qualified # 🧎🏼‍♂‍➡ E15.1 man kneeling facing right: medium-light skin tone
+1F9CE 1F3FD 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏽‍♂️‍➡️ E15.1 man kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏽‍♂‍➡️ E15.1 man kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏽‍♂️‍➡ E15.1 man kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2642 200D 27A1                        ; minimally-qualified # 🧎🏽‍♂‍➡ E15.1 man kneeling facing right: medium skin tone
+1F9CE 1F3FE 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏾‍♂️‍➡️ E15.1 man kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏾‍♂‍➡️ E15.1 man kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏾‍♂️‍➡ E15.1 man kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2642 200D 27A1                        ; minimally-qualified # 🧎🏾‍♂‍➡ E15.1 man kneeling facing right: medium-dark skin tone
+1F9CE 1F3FF 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🧎🏿‍♂️‍➡️ E15.1 man kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🧎🏿‍♂‍➡️ E15.1 man kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🧎🏿‍♂️‍➡ E15.1 man kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2642 200D 27A1                        ; minimally-qualified # 🧎🏿‍♂‍➡ E15.1 man kneeling facing right: dark skin tone
+1F9D1 200D 1F9AF                                       ; fully-qualified     # 🧑‍🦯 E12.1 person with white cane
+1F9D1 1F3FB 200D 1F9AF                                 ; fully-qualified     # 🧑🏻‍🦯 E12.1 person with white cane: light skin tone
+1F9D1 1F3FC 200D 1F9AF                                 ; fully-qualified     # 🧑🏼‍🦯 E12.1 person with white cane: medium-light skin tone
+1F9D1 1F3FD 200D 1F9AF                                 ; fully-qualified     # 🧑🏽‍🦯 E12.1 person with white cane: medium skin tone
+1F9D1 1F3FE 200D 1F9AF                                 ; fully-qualified     # 🧑🏾‍🦯 E12.1 person with white cane: medium-dark skin tone
+1F9D1 1F3FF 200D 1F9AF                                 ; fully-qualified     # 🧑🏿‍🦯 E12.1 person with white cane: dark skin tone
+1F9D1 200D 1F9AF 200D 27A1 FE0F                        ; fully-qualified     # 🧑‍🦯‍➡️ E15.1 person with white cane facing right
+1F9D1 200D 1F9AF 200D 27A1                             ; minimally-qualified # 🧑‍🦯‍➡ E15.1 person with white cane facing right
+1F9D1 1F3FB 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏻‍🦯‍➡️ E15.1 person with white cane facing right: light skin tone
+1F9D1 1F3FB 200D 1F9AF 200D 27A1                       ; minimally-qualified # 🧑🏻‍🦯‍➡ E15.1 person with white cane facing right: light skin tone
+1F9D1 1F3FC 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏼‍🦯‍➡️ E15.1 person with white cane facing right: medium-light skin tone
+1F9D1 1F3FC 200D 1F9AF 200D 27A1                       ; minimally-qualified # 🧑🏼‍🦯‍➡ E15.1 person with white cane facing right: medium-light skin tone
+1F9D1 1F3FD 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏽‍🦯‍➡️ E15.1 person with white cane facing right: medium skin tone
+1F9D1 1F3FD 200D 1F9AF 200D 27A1                       ; minimally-qualified # 🧑🏽‍🦯‍➡ E15.1 person with white cane facing right: medium skin tone
+1F9D1 1F3FE 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏾‍🦯‍➡️ E15.1 person with white cane facing right: medium-dark skin tone
+1F9D1 1F3FE 200D 1F9AF 200D 27A1                       ; minimally-qualified # 🧑🏾‍🦯‍➡ E15.1 person with white cane facing right: medium-dark skin tone
+1F9D1 1F3FF 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏿‍🦯‍➡️ E15.1 person with white cane facing right: dark skin tone
+1F9D1 1F3FF 200D 1F9AF 200D 27A1                       ; minimally-qualified # 🧑🏿‍🦯‍➡ E15.1 person with white cane facing right: dark skin tone
+1F468 200D 1F9AF                                       ; fully-qualified     # 👨‍🦯 E12.0 man with white cane
+1F468 1F3FB 200D 1F9AF                                 ; fully-qualified     # 👨🏻‍🦯 E12.0 man with white cane: light skin tone
+1F468 1F3FC 200D 1F9AF                                 ; fully-qualified     # 👨🏼‍🦯 E12.0 man with white cane: medium-light skin tone
+1F468 1F3FD 200D 1F9AF                                 ; fully-qualified     # 👨🏽‍🦯 E12.0 man with white cane: medium skin tone
+1F468 1F3FE 200D 1F9AF                                 ; fully-qualified     # 👨🏾‍🦯 E12.0 man with white cane: medium-dark skin tone
+1F468 1F3FF 200D 1F9AF                                 ; fully-qualified     # 👨🏿‍🦯 E12.0 man with white cane: dark skin tone
+1F468 200D 1F9AF 200D 27A1 FE0F                        ; fully-qualified     # 👨‍🦯‍➡️ E15.1 man with white cane facing right
+1F468 200D 1F9AF 200D 27A1                             ; minimally-qualified # 👨‍🦯‍➡ E15.1 man with white cane facing right
+1F468 1F3FB 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👨🏻‍🦯‍➡️ E15.1 man with white cane facing right: light skin tone
+1F468 1F3FB 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👨🏻‍🦯‍➡ E15.1 man with white cane facing right: light skin tone
+1F468 1F3FC 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👨🏼‍🦯‍➡️ E15.1 man with white cane facing right: medium-light skin tone
+1F468 1F3FC 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👨🏼‍🦯‍➡ E15.1 man with white cane facing right: medium-light skin tone
+1F468 1F3FD 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👨🏽‍🦯‍➡️ E15.1 man with white cane facing right: medium skin tone
+1F468 1F3FD 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👨🏽‍🦯‍➡ E15.1 man with white cane facing right: medium skin tone
+1F468 1F3FE 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👨🏾‍🦯‍➡️ E15.1 man with white cane facing right: medium-dark skin tone
+1F468 1F3FE 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👨🏾‍🦯‍➡ E15.1 man with white cane facing right: medium-dark skin tone
+1F468 1F3FF 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👨🏿‍🦯‍➡️ E15.1 man with white cane facing right: dark skin tone
+1F468 1F3FF 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👨🏿‍🦯‍➡ E15.1 man with white cane facing right: dark skin tone
+1F469 200D 1F9AF                                       ; fully-qualified     # 👩‍🦯 E12.0 woman with white cane
+1F469 1F3FB 200D 1F9AF                                 ; fully-qualified     # 👩🏻‍🦯 E12.0 woman with white cane: light skin tone
+1F469 1F3FC 200D 1F9AF                                 ; fully-qualified     # 👩🏼‍🦯 E12.0 woman with white cane: medium-light skin tone
+1F469 1F3FD 200D 1F9AF                                 ; fully-qualified     # 👩🏽‍🦯 E12.0 woman with white cane: medium skin tone
+1F469 1F3FE 200D 1F9AF                                 ; fully-qualified     # 👩🏾‍🦯 E12.0 woman with white cane: medium-dark skin tone
+1F469 1F3FF 200D 1F9AF                                 ; fully-qualified     # 👩🏿‍🦯 E12.0 woman with white cane: dark skin tone
+1F469 200D 1F9AF 200D 27A1 FE0F                        ; fully-qualified     # 👩‍🦯‍➡️ E15.1 woman with white cane facing right
+1F469 200D 1F9AF 200D 27A1                             ; minimally-qualified # 👩‍🦯‍➡ E15.1 woman with white cane facing right
+1F469 1F3FB 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👩🏻‍🦯‍➡️ E15.1 woman with white cane facing right: light skin tone
+1F469 1F3FB 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👩🏻‍🦯‍➡ E15.1 woman with white cane facing right: light skin tone
+1F469 1F3FC 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👩🏼‍🦯‍➡️ E15.1 woman with white cane facing right: medium-light skin tone
+1F469 1F3FC 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👩🏼‍🦯‍➡ E15.1 woman with white cane facing right: medium-light skin tone
+1F469 1F3FD 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👩🏽‍🦯‍➡️ E15.1 woman with white cane facing right: medium skin tone
+1F469 1F3FD 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👩🏽‍🦯‍➡ E15.1 woman with white cane facing right: medium skin tone
+1F469 1F3FE 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👩🏾‍🦯‍➡️ E15.1 woman with white cane facing right: medium-dark skin tone
+1F469 1F3FE 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👩🏾‍🦯‍➡ E15.1 woman with white cane facing right: medium-dark skin tone
+1F469 1F3FF 200D 1F9AF 200D 27A1 FE0F                  ; fully-qualified     # 👩🏿‍🦯‍➡️ E15.1 woman with white cane facing right: dark skin tone
+1F469 1F3FF 200D 1F9AF 200D 27A1                       ; minimally-qualified # 👩🏿‍🦯‍➡ E15.1 woman with white cane facing right: dark skin tone
+1F9D1 200D 1F9BC                                       ; fully-qualified     # 🧑‍🦼 E12.1 person in motorized wheelchair
+1F9D1 1F3FB 200D 1F9BC                                 ; fully-qualified     # 🧑🏻‍🦼 E12.1 person in motorized wheelchair: light skin tone
+1F9D1 1F3FC 200D 1F9BC                                 ; fully-qualified     # 🧑🏼‍🦼 E12.1 person in motorized wheelchair: medium-light skin tone
+1F9D1 1F3FD 200D 1F9BC                                 ; fully-qualified     # 🧑🏽‍🦼 E12.1 person in motorized wheelchair: medium skin tone
+1F9D1 1F3FE 200D 1F9BC                                 ; fully-qualified     # 🧑🏾‍🦼 E12.1 person in motorized wheelchair: medium-dark skin tone
+1F9D1 1F3FF 200D 1F9BC                                 ; fully-qualified     # 🧑🏿‍🦼 E12.1 person in motorized wheelchair: dark skin tone
+1F9D1 200D 1F9BC 200D 27A1 FE0F                        ; fully-qualified     # 🧑‍🦼‍➡️ E15.1 person in motorized wheelchair facing right
+1F9D1 200D 1F9BC 200D 27A1                             ; minimally-qualified # 🧑‍🦼‍➡ E15.1 person in motorized wheelchair facing right
+1F9D1 1F3FB 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏻‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: light skin tone
+1F9D1 1F3FB 200D 1F9BC 200D 27A1                       ; minimally-qualified # 🧑🏻‍🦼‍➡ E15.1 person in motorized wheelchair facing right: light skin tone
+1F9D1 1F3FC 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏼‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: medium-light skin tone
+1F9D1 1F3FC 200D 1F9BC 200D 27A1                       ; minimally-qualified # 🧑🏼‍🦼‍➡ E15.1 person in motorized wheelchair facing right: medium-light skin tone
+1F9D1 1F3FD 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏽‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: medium skin tone
+1F9D1 1F3FD 200D 1F9BC 200D 27A1                       ; minimally-qualified # 🧑🏽‍🦼‍➡ E15.1 person in motorized wheelchair facing right: medium skin tone
+1F9D1 1F3FE 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏾‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: medium-dark skin tone
+1F9D1 1F3FE 200D 1F9BC 200D 27A1                       ; minimally-qualified # 🧑🏾‍🦼‍➡ E15.1 person in motorized wheelchair facing right: medium-dark skin tone
+1F9D1 1F3FF 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏿‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: dark skin tone
+1F9D1 1F3FF 200D 1F9BC 200D 27A1                       ; minimally-qualified # 🧑🏿‍🦼‍➡ E15.1 person in motorized wheelchair facing right: dark skin tone
+1F468 200D 1F9BC                                       ; fully-qualified     # 👨‍🦼 E12.0 man in motorized wheelchair
+1F468 1F3FB 200D 1F9BC                                 ; fully-qualified     # 👨🏻‍🦼 E12.0 man in motorized wheelchair: light skin tone
+1F468 1F3FC 200D 1F9BC                                 ; fully-qualified     # 👨🏼‍🦼 E12.0 man in motorized wheelchair: medium-light skin tone
+1F468 1F3FD 200D 1F9BC                                 ; fully-qualified     # 👨🏽‍🦼 E12.0 man in motorized wheelchair: medium skin tone
+1F468 1F3FE 200D 1F9BC                                 ; fully-qualified     # 👨🏾‍🦼 E12.0 man in motorized wheelchair: medium-dark skin tone
+1F468 1F3FF 200D 1F9BC                                 ; fully-qualified     # 👨🏿‍🦼 E12.0 man in motorized wheelchair: dark skin tone
+1F468 200D 1F9BC 200D 27A1 FE0F                        ; fully-qualified     # 👨‍🦼‍➡️ E15.1 man in motorized wheelchair facing right
+1F468 200D 1F9BC 200D 27A1                             ; minimally-qualified # 👨‍🦼‍➡ E15.1 man in motorized wheelchair facing right
+1F468 1F3FB 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👨🏻‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: light skin tone
+1F468 1F3FB 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👨🏻‍🦼‍➡ E15.1 man in motorized wheelchair facing right: light skin tone
+1F468 1F3FC 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👨🏼‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: medium-light skin tone
+1F468 1F3FC 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👨🏼‍🦼‍➡ E15.1 man in motorized wheelchair facing right: medium-light skin tone
+1F468 1F3FD 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👨🏽‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: medium skin tone
+1F468 1F3FD 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👨🏽‍🦼‍➡ E15.1 man in motorized wheelchair facing right: medium skin tone
+1F468 1F3FE 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👨🏾‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: medium-dark skin tone
+1F468 1F3FE 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👨🏾‍🦼‍➡ E15.1 man in motorized wheelchair facing right: medium-dark skin tone
+1F468 1F3FF 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👨🏿‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: dark skin tone
+1F468 1F3FF 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👨🏿‍🦼‍➡ E15.1 man in motorized wheelchair facing right: dark skin tone
+1F469 200D 1F9BC                                       ; fully-qualified     # 👩‍🦼 E12.0 woman in motorized wheelchair
+1F469 1F3FB 200D 1F9BC                                 ; fully-qualified     # 👩🏻‍🦼 E12.0 woman in motorized wheelchair: light skin tone
+1F469 1F3FC 200D 1F9BC                                 ; fully-qualified     # 👩🏼‍🦼 E12.0 woman in motorized wheelchair: medium-light skin tone
+1F469 1F3FD 200D 1F9BC                                 ; fully-qualified     # 👩🏽‍🦼 E12.0 woman in motorized wheelchair: medium skin tone
+1F469 1F3FE 200D 1F9BC                                 ; fully-qualified     # 👩🏾‍🦼 E12.0 woman in motorized wheelchair: medium-dark skin tone
+1F469 1F3FF 200D 1F9BC                                 ; fully-qualified     # 👩🏿‍🦼 E12.0 woman in motorized wheelchair: dark skin tone
+1F469 200D 1F9BC 200D 27A1 FE0F                        ; fully-qualified     # 👩‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right
+1F469 200D 1F9BC 200D 27A1                             ; minimally-qualified # 👩‍🦼‍➡ E15.1 woman in motorized wheelchair facing right
+1F469 1F3FB 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👩🏻‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: light skin tone
+1F469 1F3FB 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👩🏻‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: light skin tone
+1F469 1F3FC 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👩🏼‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: medium-light skin tone
+1F469 1F3FC 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👩🏼‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: medium-light skin tone
+1F469 1F3FD 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👩🏽‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: medium skin tone
+1F469 1F3FD 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👩🏽‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: medium skin tone
+1F469 1F3FE 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👩🏾‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: medium-dark skin tone
+1F469 1F3FE 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👩🏾‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: medium-dark skin tone
+1F469 1F3FF 200D 1F9BC 200D 27A1 FE0F                  ; fully-qualified     # 👩🏿‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: dark skin tone
+1F469 1F3FF 200D 1F9BC 200D 27A1                       ; minimally-qualified # 👩🏿‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: dark skin tone
+1F9D1 200D 1F9BD                                       ; fully-qualified     # 🧑‍🦽 E12.1 person in manual wheelchair
+1F9D1 1F3FB 200D 1F9BD                                 ; fully-qualified     # 🧑🏻‍🦽 E12.1 person in manual wheelchair: light skin tone
+1F9D1 1F3FC 200D 1F9BD                                 ; fully-qualified     # 🧑🏼‍🦽 E12.1 person in manual wheelchair: medium-light skin tone
+1F9D1 1F3FD 200D 1F9BD                                 ; fully-qualified     # 🧑🏽‍🦽 E12.1 person in manual wheelchair: medium skin tone
+1F9D1 1F3FE 200D 1F9BD                                 ; fully-qualified     # 🧑🏾‍🦽 E12.1 person in manual wheelchair: medium-dark skin tone
+1F9D1 1F3FF 200D 1F9BD                                 ; fully-qualified     # 🧑🏿‍🦽 E12.1 person in manual wheelchair: dark skin tone
+1F9D1 200D 1F9BD 200D 27A1 FE0F                        ; fully-qualified     # 🧑‍🦽‍➡️ E15.1 person in manual wheelchair facing right
+1F9D1 200D 1F9BD 200D 27A1                             ; minimally-qualified # 🧑‍🦽‍➡ E15.1 person in manual wheelchair facing right
+1F9D1 1F3FB 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏻‍🦽‍➡️ E15.1 person in manual wheelchair facing right: light skin tone
+1F9D1 1F3FB 200D 1F9BD 200D 27A1                       ; minimally-qualified # 🧑🏻‍🦽‍➡ E15.1 person in manual wheelchair facing right: light skin tone
+1F9D1 1F3FC 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏼‍🦽‍➡️ E15.1 person in manual wheelchair facing right: medium-light skin tone
+1F9D1 1F3FC 200D 1F9BD 200D 27A1                       ; minimally-qualified # 🧑🏼‍🦽‍➡ E15.1 person in manual wheelchair facing right: medium-light skin tone
+1F9D1 1F3FD 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏽‍🦽‍➡️ E15.1 person in manual wheelchair facing right: medium skin tone
+1F9D1 1F3FD 200D 1F9BD 200D 27A1                       ; minimally-qualified # 🧑🏽‍🦽‍➡ E15.1 person in manual wheelchair facing right: medium skin tone
+1F9D1 1F3FE 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏾‍🦽‍➡️ E15.1 person in manual wheelchair facing right: medium-dark skin tone
+1F9D1 1F3FE 200D 1F9BD 200D 27A1                       ; minimally-qualified # 🧑🏾‍🦽‍➡ E15.1 person in manual wheelchair facing right: medium-dark skin tone
+1F9D1 1F3FF 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 🧑🏿‍🦽‍➡️ E15.1 person in manual wheelchair facing right: dark skin tone
+1F9D1 1F3FF 200D 1F9BD 200D 27A1                       ; minimally-qualified # 🧑🏿‍🦽‍➡ E15.1 person in manual wheelchair facing right: dark skin tone
+1F468 200D 1F9BD                                       ; fully-qualified     # 👨‍🦽 E12.0 man in manual wheelchair
+1F468 1F3FB 200D 1F9BD                                 ; fully-qualified     # 👨🏻‍🦽 E12.0 man in manual wheelchair: light skin tone
+1F468 1F3FC 200D 1F9BD                                 ; fully-qualified     # 👨🏼‍🦽 E12.0 man in manual wheelchair: medium-light skin tone
+1F468 1F3FD 200D 1F9BD                                 ; fully-qualified     # 👨🏽‍🦽 E12.0 man in manual wheelchair: medium skin tone
+1F468 1F3FE 200D 1F9BD                                 ; fully-qualified     # 👨🏾‍🦽 E12.0 man in manual wheelchair: medium-dark skin tone
+1F468 1F3FF 200D 1F9BD                                 ; fully-qualified     # 👨🏿‍🦽 E12.0 man in manual wheelchair: dark skin tone
+1F468 200D 1F9BD 200D 27A1 FE0F                        ; fully-qualified     # 👨‍🦽‍➡️ E15.1 man in manual wheelchair facing right
+1F468 200D 1F9BD 200D 27A1                             ; minimally-qualified # 👨‍🦽‍➡ E15.1 man in manual wheelchair facing right
+1F468 1F3FB 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👨🏻‍🦽‍➡️ E15.1 man in manual wheelchair facing right: light skin tone
+1F468 1F3FB 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👨🏻‍🦽‍➡ E15.1 man in manual wheelchair facing right: light skin tone
+1F468 1F3FC 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👨🏼‍🦽‍➡️ E15.1 man in manual wheelchair facing right: medium-light skin tone
+1F468 1F3FC 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👨🏼‍🦽‍➡ E15.1 man in manual wheelchair facing right: medium-light skin tone
+1F468 1F3FD 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👨🏽‍🦽‍➡️ E15.1 man in manual wheelchair facing right: medium skin tone
+1F468 1F3FD 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👨🏽‍🦽‍➡ E15.1 man in manual wheelchair facing right: medium skin tone
+1F468 1F3FE 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👨🏾‍🦽‍➡️ E15.1 man in manual wheelchair facing right: medium-dark skin tone
+1F468 1F3FE 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👨🏾‍🦽‍➡ E15.1 man in manual wheelchair facing right: medium-dark skin tone
+1F468 1F3FF 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👨🏿‍🦽‍➡️ E15.1 man in manual wheelchair facing right: dark skin tone
+1F468 1F3FF 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👨🏿‍🦽‍➡ E15.1 man in manual wheelchair facing right: dark skin tone
+1F469 200D 1F9BD                                       ; fully-qualified     # 👩‍🦽 E12.0 woman in manual wheelchair
+1F469 1F3FB 200D 1F9BD                                 ; fully-qualified     # 👩🏻‍🦽 E12.0 woman in manual wheelchair: light skin tone
+1F469 1F3FC 200D 1F9BD                                 ; fully-qualified     # 👩🏼‍🦽 E12.0 woman in manual wheelchair: medium-light skin tone
+1F469 1F3FD 200D 1F9BD                                 ; fully-qualified     # 👩🏽‍🦽 E12.0 woman in manual wheelchair: medium skin tone
+1F469 1F3FE 200D 1F9BD                                 ; fully-qualified     # 👩🏾‍🦽 E12.0 woman in manual wheelchair: medium-dark skin tone
+1F469 1F3FF 200D 1F9BD                                 ; fully-qualified     # 👩🏿‍🦽 E12.0 woman in manual wheelchair: dark skin tone
+1F469 200D 1F9BD 200D 27A1 FE0F                        ; fully-qualified     # 👩‍🦽‍➡️ E15.1 woman in manual wheelchair facing right
+1F469 200D 1F9BD 200D 27A1                             ; minimally-qualified # 👩‍🦽‍➡ E15.1 woman in manual wheelchair facing right
+1F469 1F3FB 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👩🏻‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: light skin tone
+1F469 1F3FB 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👩🏻‍🦽‍➡ E15.1 woman in manual wheelchair facing right: light skin tone
+1F469 1F3FC 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👩🏼‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: medium-light skin tone
+1F469 1F3FC 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👩🏼‍🦽‍➡ E15.1 woman in manual wheelchair facing right: medium-light skin tone
+1F469 1F3FD 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👩🏽‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: medium skin tone
+1F469 1F3FD 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👩🏽‍🦽‍➡ E15.1 woman in manual wheelchair facing right: medium skin tone
+1F469 1F3FE 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👩🏾‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: medium-dark skin tone
+1F469 1F3FE 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👩🏾‍🦽‍➡ E15.1 woman in manual wheelchair facing right: medium-dark skin tone
+1F469 1F3FF 200D 1F9BD 200D 27A1 FE0F                  ; fully-qualified     # 👩🏿‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: dark skin tone
+1F469 1F3FF 200D 1F9BD 200D 27A1                       ; minimally-qualified # 👩🏿‍🦽‍➡ E15.1 woman in manual wheelchair facing right: dark skin tone
+1F3C3                                                  ; fully-qualified     # 🏃 E0.6 person running
+1F3C3 1F3FB                                            ; fully-qualified     # 🏃🏻 E1.0 person running: light skin tone
+1F3C3 1F3FC                                            ; fully-qualified     # 🏃🏼 E1.0 person running: medium-light skin tone
+1F3C3 1F3FD                                            ; fully-qualified     # 🏃🏽 E1.0 person running: medium skin tone
+1F3C3 1F3FE                                            ; fully-qualified     # 🏃🏾 E1.0 person running: medium-dark skin tone
+1F3C3 1F3FF                                            ; fully-qualified     # 🏃🏿 E1.0 person running: dark skin tone
+1F3C3 200D 2642 FE0F                                   ; fully-qualified     # 🏃‍♂️ E4.0 man running
+1F3C3 200D 2642                                        ; minimally-qualified # 🏃‍♂ E4.0 man running
+1F3C3 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🏃🏻‍♂️ E4.0 man running: light skin tone
+1F3C3 1F3FB 200D 2642                                  ; minimally-qualified # 🏃🏻‍♂ E4.0 man running: light skin tone
+1F3C3 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🏃🏼‍♂️ E4.0 man running: medium-light skin tone
+1F3C3 1F3FC 200D 2642                                  ; minimally-qualified # 🏃🏼‍♂ E4.0 man running: medium-light skin tone
+1F3C3 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🏃🏽‍♂️ E4.0 man running: medium skin tone
+1F3C3 1F3FD 200D 2642                                  ; minimally-qualified # 🏃🏽‍♂ E4.0 man running: medium skin tone
+1F3C3 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🏃🏾‍♂️ E4.0 man running: medium-dark skin tone
+1F3C3 1F3FE 200D 2642                                  ; minimally-qualified # 🏃🏾‍♂ E4.0 man running: medium-dark skin tone
+1F3C3 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🏃🏿‍♂️ E4.0 man running: dark skin tone
+1F3C3 1F3FF 200D 2642                                  ; minimally-qualified # 🏃🏿‍♂ E4.0 man running: dark skin tone
+1F3C3 200D 2640 FE0F                                   ; fully-qualified     # 🏃‍♀️ E4.0 woman running
+1F3C3 200D 2640                                        ; minimally-qualified # 🏃‍♀ E4.0 woman running
+1F3C3 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🏃🏻‍♀️ E4.0 woman running: light skin tone
+1F3C3 1F3FB 200D 2640                                  ; minimally-qualified # 🏃🏻‍♀ E4.0 woman running: light skin tone
+1F3C3 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🏃🏼‍♀️ E4.0 woman running: medium-light skin tone
+1F3C3 1F3FC 200D 2640                                  ; minimally-qualified # 🏃🏼‍♀ E4.0 woman running: medium-light skin tone
+1F3C3 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🏃🏽‍♀️ E4.0 woman running: medium skin tone
+1F3C3 1F3FD 200D 2640                                  ; minimally-qualified # 🏃🏽‍♀ E4.0 woman running: medium skin tone
+1F3C3 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🏃🏾‍♀️ E4.0 woman running: medium-dark skin tone
+1F3C3 1F3FE 200D 2640                                  ; minimally-qualified # 🏃🏾‍♀ E4.0 woman running: medium-dark skin tone
+1F3C3 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🏃🏿‍♀️ E4.0 woman running: dark skin tone
+1F3C3 1F3FF 200D 2640                                  ; minimally-qualified # 🏃🏿‍♀ E4.0 woman running: dark skin tone
+1F3C3 200D 27A1 FE0F                                   ; fully-qualified     # 🏃‍➡️ E15.1 person running facing right
+1F3C3 200D 27A1                                        ; minimally-qualified # 🏃‍➡ E15.1 person running facing right
+1F3C3 1F3FB 200D 27A1 FE0F                             ; fully-qualified     # 🏃🏻‍➡️ E15.1 person running facing right: light skin tone
+1F3C3 1F3FB 200D 27A1                                  ; minimally-qualified # 🏃🏻‍➡ E15.1 person running facing right: light skin tone
+1F3C3 1F3FC 200D 27A1 FE0F                             ; fully-qualified     # 🏃🏼‍➡️ E15.1 person running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 27A1                                  ; minimally-qualified # 🏃🏼‍➡ E15.1 person running facing right: medium-light skin tone
+1F3C3 1F3FD 200D 27A1 FE0F                             ; fully-qualified     # 🏃🏽‍➡️ E15.1 person running facing right: medium skin tone
+1F3C3 1F3FD 200D 27A1                                  ; minimally-qualified # 🏃🏽‍➡ E15.1 person running facing right: medium skin tone
+1F3C3 1F3FE 200D 27A1 FE0F                             ; fully-qualified     # 🏃🏾‍➡️ E15.1 person running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 27A1                                  ; minimally-qualified # 🏃🏾‍➡ E15.1 person running facing right: medium-dark skin tone
+1F3C3 1F3FF 200D 27A1 FE0F                             ; fully-qualified     # 🏃🏿‍➡️ E15.1 person running facing right: dark skin tone
+1F3C3 1F3FF 200D 27A1                                  ; minimally-qualified # 🏃🏿‍➡ E15.1 person running facing right: dark skin tone
+1F3C3 200D 2640 FE0F 200D 27A1 FE0F                    ; fully-qualified     # 🏃‍♀️‍➡️ E15.1 woman running facing right
+1F3C3 200D 2640 200D 27A1 FE0F                         ; minimally-qualified # 🏃‍♀‍➡️ E15.1 woman running facing right
+1F3C3 200D 2640 FE0F 200D 27A1                         ; minimally-qualified # 🏃‍♀️‍➡ E15.1 woman running facing right
+1F3C3 200D 2640 200D 27A1                              ; minimally-qualified # 🏃‍♀‍➡ E15.1 woman running facing right
+1F3C3 1F3FB 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏻‍♀️‍➡️ E15.1 woman running facing right: light skin tone
+1F3C3 1F3FB 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏻‍♀‍➡️ E15.1 woman running facing right: light skin tone
+1F3C3 1F3FB 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏻‍♀️‍➡ E15.1 woman running facing right: light skin tone
+1F3C3 1F3FB 200D 2640 200D 27A1                        ; minimally-qualified # 🏃🏻‍♀‍➡ E15.1 woman running facing right: light skin tone
+1F3C3 1F3FC 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏼‍♀️‍➡️ E15.1 woman running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏼‍♀‍➡️ E15.1 woman running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏼‍♀️‍➡ E15.1 woman running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2640 200D 27A1                        ; minimally-qualified # 🏃🏼‍♀‍➡ E15.1 woman running facing right: medium-light skin tone
+1F3C3 1F3FD 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏽‍♀️‍➡️ E15.1 woman running facing right: medium skin tone
+1F3C3 1F3FD 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏽‍♀‍➡️ E15.1 woman running facing right: medium skin tone
+1F3C3 1F3FD 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏽‍♀️‍➡ E15.1 woman running facing right: medium skin tone
+1F3C3 1F3FD 200D 2640 200D 27A1                        ; minimally-qualified # 🏃🏽‍♀‍➡ E15.1 woman running facing right: medium skin tone
+1F3C3 1F3FE 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏾‍♀️‍➡️ E15.1 woman running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏾‍♀‍➡️ E15.1 woman running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏾‍♀️‍➡ E15.1 woman running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2640 200D 27A1                        ; minimally-qualified # 🏃🏾‍♀‍➡ E15.1 woman running facing right: medium-dark skin tone
+1F3C3 1F3FF 200D 2640 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏿‍♀️‍➡️ E15.1 woman running facing right: dark skin tone
+1F3C3 1F3FF 200D 2640 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏿‍♀‍➡️ E15.1 woman running facing right: dark skin tone
+1F3C3 1F3FF 200D 2640 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏿‍♀️‍➡ E15.1 woman running facing right: dark skin tone
+1F3C3 1F3FF 200D 2640 200D 27A1                        ; minimally-qualified # 🏃🏿‍♀‍➡ E15.1 woman running facing right: dark skin tone
+1F3C3 200D 2642 FE0F 200D 27A1 FE0F                    ; fully-qualified     # 🏃‍♂️‍➡️ E15.1 man running facing right
+1F3C3 200D 2642 200D 27A1 FE0F                         ; minimally-qualified # 🏃‍♂‍➡️ E15.1 man running facing right
+1F3C3 200D 2642 FE0F 200D 27A1                         ; minimally-qualified # 🏃‍♂️‍➡ E15.1 man running facing right
+1F3C3 200D 2642 200D 27A1                              ; minimally-qualified # 🏃‍♂‍➡ E15.1 man running facing right
+1F3C3 1F3FB 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏻‍♂️‍➡️ E15.1 man running facing right: light skin tone
+1F3C3 1F3FB 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏻‍♂‍➡️ E15.1 man running facing right: light skin tone
+1F3C3 1F3FB 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏻‍♂️‍➡ E15.1 man running facing right: light skin tone
+1F3C3 1F3FB 200D 2642 200D 27A1                        ; minimally-qualified # 🏃🏻‍♂‍➡ E15.1 man running facing right: light skin tone
+1F3C3 1F3FC 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏼‍♂️‍➡️ E15.1 man running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏼‍♂‍➡️ E15.1 man running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏼‍♂️‍➡ E15.1 man running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2642 200D 27A1                        ; minimally-qualified # 🏃🏼‍♂‍➡ E15.1 man running facing right: medium-light skin tone
+1F3C3 1F3FD 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏽‍♂️‍➡️ E15.1 man running facing right: medium skin tone
+1F3C3 1F3FD 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏽‍♂‍➡️ E15.1 man running facing right: medium skin tone
+1F3C3 1F3FD 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏽‍♂️‍➡ E15.1 man running facing right: medium skin tone
+1F3C3 1F3FD 200D 2642 200D 27A1                        ; minimally-qualified # 🏃🏽‍♂‍➡ E15.1 man running facing right: medium skin tone
+1F3C3 1F3FE 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏾‍♂️‍➡️ E15.1 man running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏾‍♂‍➡️ E15.1 man running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏾‍♂️‍➡ E15.1 man running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2642 200D 27A1                        ; minimally-qualified # 🏃🏾‍♂‍➡ E15.1 man running facing right: medium-dark skin tone
+1F3C3 1F3FF 200D 2642 FE0F 200D 27A1 FE0F              ; fully-qualified     # 🏃🏿‍♂️‍➡️ E15.1 man running facing right: dark skin tone
+1F3C3 1F3FF 200D 2642 200D 27A1 FE0F                   ; minimally-qualified # 🏃🏿‍♂‍➡️ E15.1 man running facing right: dark skin tone
+1F3C3 1F3FF 200D 2642 FE0F 200D 27A1                   ; minimally-qualified # 🏃🏿‍♂️‍➡ E15.1 man running facing right: dark skin tone
+1F3C3 1F3FF 200D 2642 200D 27A1                        ; minimally-qualified # 🏃🏿‍♂‍➡ E15.1 man running facing right: dark skin tone
+1F483                                                  ; fully-qualified     # 💃 E0.6 woman dancing
+1F483 1F3FB                                            ; fully-qualified     # 💃🏻 E1.0 woman dancing: light skin tone
+1F483 1F3FC                                            ; fully-qualified     # 💃🏼 E1.0 woman dancing: medium-light skin tone
+1F483 1F3FD                                            ; fully-qualified     # 💃🏽 E1.0 woman dancing: medium skin tone
+1F483 1F3FE                                            ; fully-qualified     # 💃🏾 E1.0 woman dancing: medium-dark skin tone
+1F483 1F3FF                                            ; fully-qualified     # 💃🏿 E1.0 woman dancing: dark skin tone
+1F57A                                                  ; fully-qualified     # 🕺 E3.0 man dancing
+1F57A 1F3FB                                            ; fully-qualified     # 🕺🏻 E3.0 man dancing: light skin tone
+1F57A 1F3FC                                            ; fully-qualified     # 🕺🏼 E3.0 man dancing: medium-light skin tone
+1F57A 1F3FD                                            ; fully-qualified     # 🕺🏽 E3.0 man dancing: medium skin tone
+1F57A 1F3FE                                            ; fully-qualified     # 🕺🏾 E3.0 man dancing: medium-dark skin tone
+1F57A 1F3FF                                            ; fully-qualified     # 🕺🏿 E3.0 man dancing: dark skin tone
+1F574 FE0F                                             ; fully-qualified     # 🕴️ E0.7 person in suit levitating
+1F574                                                  ; unqualified         # 🕴 E0.7 person in suit levitating
+1F574 1F3FB                                            ; fully-qualified     # 🕴🏻 E4.0 person in suit levitating: light skin tone
+1F574 1F3FC                                            ; fully-qualified     # 🕴🏼 E4.0 person in suit levitating: medium-light skin tone
+1F574 1F3FD                                            ; fully-qualified     # 🕴🏽 E4.0 person in suit levitating: medium skin tone
+1F574 1F3FE                                            ; fully-qualified     # 🕴🏾 E4.0 person in suit levitating: medium-dark skin tone
+1F574 1F3FF                                            ; fully-qualified     # 🕴🏿 E4.0 person in suit levitating: dark skin tone
+1F46F                                                  ; fully-qualified     # 👯 E0.6 people with bunny ears
+1F46F 200D 2642 FE0F                                   ; fully-qualified     # 👯‍♂️ E4.0 men with bunny ears
+1F46F 200D 2642                                        ; minimally-qualified # 👯‍♂ E4.0 men with bunny ears
+1F46F 200D 2640 FE0F                                   ; fully-qualified     # 👯‍♀️ E4.0 women with bunny ears
+1F46F 200D 2640                                        ; minimally-qualified # 👯‍♀ E4.0 women with bunny ears
+1F9D6                                                  ; fully-qualified     # 🧖 E5.0 person in steamy room
+1F9D6 1F3FB                                            ; fully-qualified     # 🧖🏻 E5.0 person in steamy room: light skin tone
+1F9D6 1F3FC                                            ; fully-qualified     # 🧖🏼 E5.0 person in steamy room: medium-light skin tone
+1F9D6 1F3FD                                            ; fully-qualified     # 🧖🏽 E5.0 person in steamy room: medium skin tone
+1F9D6 1F3FE                                            ; fully-qualified     # 🧖🏾 E5.0 person in steamy room: medium-dark skin tone
+1F9D6 1F3FF                                            ; fully-qualified     # 🧖🏿 E5.0 person in steamy room: dark skin tone
+1F9D6 200D 2642 FE0F                                   ; fully-qualified     # 🧖‍♂️ E5.0 man in steamy room
+1F9D6 200D 2642                                        ; minimally-qualified # 🧖‍♂ E5.0 man in steamy room
+1F9D6 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧖🏻‍♂️ E5.0 man in steamy room: light skin tone
+1F9D6 1F3FB 200D 2642                                  ; minimally-qualified # 🧖🏻‍♂ E5.0 man in steamy room: light skin tone
+1F9D6 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧖🏼‍♂️ E5.0 man in steamy room: medium-light skin tone
+1F9D6 1F3FC 200D 2642                                  ; minimally-qualified # 🧖🏼‍♂ E5.0 man in steamy room: medium-light skin tone
+1F9D6 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧖🏽‍♂️ E5.0 man in steamy room: medium skin tone
+1F9D6 1F3FD 200D 2642                                  ; minimally-qualified # 🧖🏽‍♂ E5.0 man in steamy room: medium skin tone
+1F9D6 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧖🏾‍♂️ E5.0 man in steamy room: medium-dark skin tone
+1F9D6 1F3FE 200D 2642                                  ; minimally-qualified # 🧖🏾‍♂ E5.0 man in steamy room: medium-dark skin tone
+1F9D6 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧖🏿‍♂️ E5.0 man in steamy room: dark skin tone
+1F9D6 1F3FF 200D 2642                                  ; minimally-qualified # 🧖🏿‍♂ E5.0 man in steamy room: dark skin tone
+1F9D6 200D 2640 FE0F                                   ; fully-qualified     # 🧖‍♀️ E5.0 woman in steamy room
+1F9D6 200D 2640                                        ; minimally-qualified # 🧖‍♀ E5.0 woman in steamy room
+1F9D6 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧖🏻‍♀️ E5.0 woman in steamy room: light skin tone
+1F9D6 1F3FB 200D 2640                                  ; minimally-qualified # 🧖🏻‍♀ E5.0 woman in steamy room: light skin tone
+1F9D6 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧖🏼‍♀️ E5.0 woman in steamy room: medium-light skin tone
+1F9D6 1F3FC 200D 2640                                  ; minimally-qualified # 🧖🏼‍♀ E5.0 woman in steamy room: medium-light skin tone
+1F9D6 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧖🏽‍♀️ E5.0 woman in steamy room: medium skin tone
+1F9D6 1F3FD 200D 2640                                  ; minimally-qualified # 🧖🏽‍♀ E5.0 woman in steamy room: medium skin tone
+1F9D6 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧖🏾‍♀️ E5.0 woman in steamy room: medium-dark skin tone
+1F9D6 1F3FE 200D 2640                                  ; minimally-qualified # 🧖🏾‍♀ E5.0 woman in steamy room: medium-dark skin tone
+1F9D6 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧖🏿‍♀️ E5.0 woman in steamy room: dark skin tone
+1F9D6 1F3FF 200D 2640                                  ; minimally-qualified # 🧖🏿‍♀ E5.0 woman in steamy room: dark skin tone
+1F9D7                                                  ; fully-qualified     # 🧗 E5.0 person climbing
+1F9D7 1F3FB                                            ; fully-qualified     # 🧗🏻 E5.0 person climbing: light skin tone
+1F9D7 1F3FC                                            ; fully-qualified     # 🧗🏼 E5.0 person climbing: medium-light skin tone
+1F9D7 1F3FD                                            ; fully-qualified     # 🧗🏽 E5.0 person climbing: medium skin tone
+1F9D7 1F3FE                                            ; fully-qualified     # 🧗🏾 E5.0 person climbing: medium-dark skin tone
+1F9D7 1F3FF                                            ; fully-qualified     # 🧗🏿 E5.0 person climbing: dark skin tone
+1F9D7 200D 2642 FE0F                                   ; fully-qualified     # 🧗‍♂️ E5.0 man climbing
+1F9D7 200D 2642                                        ; minimally-qualified # 🧗‍♂ E5.0 man climbing
+1F9D7 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧗🏻‍♂️ E5.0 man climbing: light skin tone
+1F9D7 1F3FB 200D 2642                                  ; minimally-qualified # 🧗🏻‍♂ E5.0 man climbing: light skin tone
+1F9D7 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧗🏼‍♂️ E5.0 man climbing: medium-light skin tone
+1F9D7 1F3FC 200D 2642                                  ; minimally-qualified # 🧗🏼‍♂ E5.0 man climbing: medium-light skin tone
+1F9D7 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧗🏽‍♂️ E5.0 man climbing: medium skin tone
+1F9D7 1F3FD 200D 2642                                  ; minimally-qualified # 🧗🏽‍♂ E5.0 man climbing: medium skin tone
+1F9D7 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧗🏾‍♂️ E5.0 man climbing: medium-dark skin tone
+1F9D7 1F3FE 200D 2642                                  ; minimally-qualified # 🧗🏾‍♂ E5.0 man climbing: medium-dark skin tone
+1F9D7 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧗🏿‍♂️ E5.0 man climbing: dark skin tone
+1F9D7 1F3FF 200D 2642                                  ; minimally-qualified # 🧗🏿‍♂ E5.0 man climbing: dark skin tone
+1F9D7 200D 2640 FE0F                                   ; fully-qualified     # 🧗‍♀️ E5.0 woman climbing
+1F9D7 200D 2640                                        ; minimally-qualified # 🧗‍♀ E5.0 woman climbing
+1F9D7 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧗🏻‍♀️ E5.0 woman climbing: light skin tone
+1F9D7 1F3FB 200D 2640                                  ; minimally-qualified # 🧗🏻‍♀ E5.0 woman climbing: light skin tone
+1F9D7 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧗🏼‍♀️ E5.0 woman climbing: medium-light skin tone
+1F9D7 1F3FC 200D 2640                                  ; minimally-qualified # 🧗🏼‍♀ E5.0 woman climbing: medium-light skin tone
+1F9D7 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧗🏽‍♀️ E5.0 woman climbing: medium skin tone
+1F9D7 1F3FD 200D 2640                                  ; minimally-qualified # 🧗🏽‍♀ E5.0 woman climbing: medium skin tone
+1F9D7 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧗🏾‍♀️ E5.0 woman climbing: medium-dark skin tone
+1F9D7 1F3FE 200D 2640                                  ; minimally-qualified # 🧗🏾‍♀ E5.0 woman climbing: medium-dark skin tone
+1F9D7 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧗🏿‍♀️ E5.0 woman climbing: dark skin tone
+1F9D7 1F3FF 200D 2640                                  ; minimally-qualified # 🧗🏿‍♀ E5.0 woman climbing: dark skin tone
+
+# subgroup: person-sport
+1F93A                                                  ; fully-qualified     # 🤺 E3.0 person fencing
+1F3C7                                                  ; fully-qualified     # 🏇 E1.0 horse racing
+1F3C7 1F3FB                                            ; fully-qualified     # 🏇🏻 E1.0 horse racing: light skin tone
+1F3C7 1F3FC                                            ; fully-qualified     # 🏇🏼 E1.0 horse racing: medium-light skin tone
+1F3C7 1F3FD                                            ; fully-qualified     # 🏇🏽 E1.0 horse racing: medium skin tone
+1F3C7 1F3FE                                            ; fully-qualified     # 🏇🏾 E1.0 horse racing: medium-dark skin tone
+1F3C7 1F3FF                                            ; fully-qualified     # 🏇🏿 E1.0 horse racing: dark skin tone
+26F7 FE0F                                              ; fully-qualified     # ⛷️ E0.7 skier
+26F7                                                   ; unqualified         # ⛷ E0.7 skier
+1F3C2                                                  ; fully-qualified     # 🏂 E0.6 snowboarder
+1F3C2 1F3FB                                            ; fully-qualified     # 🏂🏻 E1.0 snowboarder: light skin tone
+1F3C2 1F3FC                                            ; fully-qualified     # 🏂🏼 E1.0 snowboarder: medium-light skin tone
+1F3C2 1F3FD                                            ; fully-qualified     # 🏂🏽 E1.0 snowboarder: medium skin tone
+1F3C2 1F3FE                                            ; fully-qualified     # 🏂🏾 E1.0 snowboarder: medium-dark skin tone
+1F3C2 1F3FF                                            ; fully-qualified     # 🏂🏿 E1.0 snowboarder: dark skin tone
+1F3CC FE0F                                             ; fully-qualified     # 🏌️ E0.7 person golfing
+1F3CC                                                  ; unqualified         # 🏌 E0.7 person golfing
+1F3CC 1F3FB                                            ; fully-qualified     # 🏌🏻 E4.0 person golfing: light skin tone
+1F3CC 1F3FC                                            ; fully-qualified     # 🏌🏼 E4.0 person golfing: medium-light skin tone
+1F3CC 1F3FD                                            ; fully-qualified     # 🏌🏽 E4.0 person golfing: medium skin tone
+1F3CC 1F3FE                                            ; fully-qualified     # 🏌🏾 E4.0 person golfing: medium-dark skin tone
+1F3CC 1F3FF                                            ; fully-qualified     # 🏌🏿 E4.0 person golfing: dark skin tone
+1F3CC FE0F 200D 2642 FE0F                              ; fully-qualified     # 🏌️‍♂️ E4.0 man golfing
+1F3CC 200D 2642 FE0F                                   ; unqualified         # 🏌‍♂️ E4.0 man golfing
+1F3CC FE0F 200D 2642                                   ; minimally-qualified # 🏌️‍♂ E4.0 man golfing
+1F3CC 200D 2642                                        ; unqualified         # 🏌‍♂ E4.0 man golfing
+1F3CC 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🏌🏻‍♂️ E4.0 man golfing: light skin tone
+1F3CC 1F3FB 200D 2642                                  ; minimally-qualified # 🏌🏻‍♂ E4.0 man golfing: light skin tone
+1F3CC 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🏌🏼‍♂️ E4.0 man golfing: medium-light skin tone
+1F3CC 1F3FC 200D 2642                                  ; minimally-qualified # 🏌🏼‍♂ E4.0 man golfing: medium-light skin tone
+1F3CC 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🏌🏽‍♂️ E4.0 man golfing: medium skin tone
+1F3CC 1F3FD 200D 2642                                  ; minimally-qualified # 🏌🏽‍♂ E4.0 man golfing: medium skin tone
+1F3CC 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🏌🏾‍♂️ E4.0 man golfing: medium-dark skin tone
+1F3CC 1F3FE 200D 2642                                  ; minimally-qualified # 🏌🏾‍♂ E4.0 man golfing: medium-dark skin tone
+1F3CC 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🏌🏿‍♂️ E4.0 man golfing: dark skin tone
+1F3CC 1F3FF 200D 2642                                  ; minimally-qualified # 🏌🏿‍♂ E4.0 man golfing: dark skin tone
+1F3CC FE0F 200D 2640 FE0F                              ; fully-qualified     # 🏌️‍♀️ E4.0 woman golfing
+1F3CC 200D 2640 FE0F                                   ; unqualified         # 🏌‍♀️ E4.0 woman golfing
+1F3CC FE0F 200D 2640                                   ; minimally-qualified # 🏌️‍♀ E4.0 woman golfing
+1F3CC 200D 2640                                        ; unqualified         # 🏌‍♀ E4.0 woman golfing
+1F3CC 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🏌🏻‍♀️ E4.0 woman golfing: light skin tone
+1F3CC 1F3FB 200D 2640                                  ; minimally-qualified # 🏌🏻‍♀ E4.0 woman golfing: light skin tone
+1F3CC 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🏌🏼‍♀️ E4.0 woman golfing: medium-light skin tone
+1F3CC 1F3FC 200D 2640                                  ; minimally-qualified # 🏌🏼‍♀ E4.0 woman golfing: medium-light skin tone
+1F3CC 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🏌🏽‍♀️ E4.0 woman golfing: medium skin tone
+1F3CC 1F3FD 200D 2640                                  ; minimally-qualified # 🏌🏽‍♀ E4.0 woman golfing: medium skin tone
+1F3CC 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🏌🏾‍♀️ E4.0 woman golfing: medium-dark skin tone
+1F3CC 1F3FE 200D 2640                                  ; minimally-qualified # 🏌🏾‍♀ E4.0 woman golfing: medium-dark skin tone
+1F3CC 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🏌🏿‍♀️ E4.0 woman golfing: dark skin tone
+1F3CC 1F3FF 200D 2640                                  ; minimally-qualified # 🏌🏿‍♀ E4.0 woman golfing: dark skin tone
+1F3C4                                                  ; fully-qualified     # 🏄 E0.6 person surfing
+1F3C4 1F3FB                                            ; fully-qualified     # 🏄🏻 E1.0 person surfing: light skin tone
+1F3C4 1F3FC                                            ; fully-qualified     # 🏄🏼 E1.0 person surfing: medium-light skin tone
+1F3C4 1F3FD                                            ; fully-qualified     # 🏄🏽 E1.0 person surfing: medium skin tone
+1F3C4 1F3FE                                            ; fully-qualified     # 🏄🏾 E1.0 person surfing: medium-dark skin tone
+1F3C4 1F3FF                                            ; fully-qualified     # 🏄🏿 E1.0 person surfing: dark skin tone
+1F3C4 200D 2642 FE0F                                   ; fully-qualified     # 🏄‍♂️ E4.0 man surfing
+1F3C4 200D 2642                                        ; minimally-qualified # 🏄‍♂ E4.0 man surfing
+1F3C4 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🏄🏻‍♂️ E4.0 man surfing: light skin tone
+1F3C4 1F3FB 200D 2642                                  ; minimally-qualified # 🏄🏻‍♂ E4.0 man surfing: light skin tone
+1F3C4 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🏄🏼‍♂️ E4.0 man surfing: medium-light skin tone
+1F3C4 1F3FC 200D 2642                                  ; minimally-qualified # 🏄🏼‍♂ E4.0 man surfing: medium-light skin tone
+1F3C4 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🏄🏽‍♂️ E4.0 man surfing: medium skin tone
+1F3C4 1F3FD 200D 2642                                  ; minimally-qualified # 🏄🏽‍♂ E4.0 man surfing: medium skin tone
+1F3C4 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🏄🏾‍♂️ E4.0 man surfing: medium-dark skin tone
+1F3C4 1F3FE 200D 2642                                  ; minimally-qualified # 🏄🏾‍♂ E4.0 man surfing: medium-dark skin tone
+1F3C4 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🏄🏿‍♂️ E4.0 man surfing: dark skin tone
+1F3C4 1F3FF 200D 2642                                  ; minimally-qualified # 🏄🏿‍♂ E4.0 man surfing: dark skin tone
+1F3C4 200D 2640 FE0F                                   ; fully-qualified     # 🏄‍♀️ E4.0 woman surfing
+1F3C4 200D 2640                                        ; minimally-qualified # 🏄‍♀ E4.0 woman surfing
+1F3C4 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🏄🏻‍♀️ E4.0 woman surfing: light skin tone
+1F3C4 1F3FB 200D 2640                                  ; minimally-qualified # 🏄🏻‍♀ E4.0 woman surfing: light skin tone
+1F3C4 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🏄🏼‍♀️ E4.0 woman surfing: medium-light skin tone
+1F3C4 1F3FC 200D 2640                                  ; minimally-qualified # 🏄🏼‍♀ E4.0 woman surfing: medium-light skin tone
+1F3C4 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🏄🏽‍♀️ E4.0 woman surfing: medium skin tone
+1F3C4 1F3FD 200D 2640                                  ; minimally-qualified # 🏄🏽‍♀ E4.0 woman surfing: medium skin tone
+1F3C4 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🏄🏾‍♀️ E4.0 woman surfing: medium-dark skin tone
+1F3C4 1F3FE 200D 2640                                  ; minimally-qualified # 🏄🏾‍♀ E4.0 woman surfing: medium-dark skin tone
+1F3C4 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🏄🏿‍♀️ E4.0 woman surfing: dark skin tone
+1F3C4 1F3FF 200D 2640                                  ; minimally-qualified # 🏄🏿‍♀ E4.0 woman surfing: dark skin tone
+1F6A3                                                  ; fully-qualified     # 🚣 E1.0 person rowing boat
+1F6A3 1F3FB                                            ; fully-qualified     # 🚣🏻 E1.0 person rowing boat: light skin tone
+1F6A3 1F3FC                                            ; fully-qualified     # 🚣🏼 E1.0 person rowing boat: medium-light skin tone
+1F6A3 1F3FD                                            ; fully-qualified     # 🚣🏽 E1.0 person rowing boat: medium skin tone
+1F6A3 1F3FE                                            ; fully-qualified     # 🚣🏾 E1.0 person rowing boat: medium-dark skin tone
+1F6A3 1F3FF                                            ; fully-qualified     # 🚣🏿 E1.0 person rowing boat: dark skin tone
+1F6A3 200D 2642 FE0F                                   ; fully-qualified     # 🚣‍♂️ E4.0 man rowing boat
+1F6A3 200D 2642                                        ; minimally-qualified # 🚣‍♂ E4.0 man rowing boat
+1F6A3 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🚣🏻‍♂️ E4.0 man rowing boat: light skin tone
+1F6A3 1F3FB 200D 2642                                  ; minimally-qualified # 🚣🏻‍♂ E4.0 man rowing boat: light skin tone
+1F6A3 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🚣🏼‍♂️ E4.0 man rowing boat: medium-light skin tone
+1F6A3 1F3FC 200D 2642                                  ; minimally-qualified # 🚣🏼‍♂ E4.0 man rowing boat: medium-light skin tone
+1F6A3 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🚣🏽‍♂️ E4.0 man rowing boat: medium skin tone
+1F6A3 1F3FD 200D 2642                                  ; minimally-qualified # 🚣🏽‍♂ E4.0 man rowing boat: medium skin tone
+1F6A3 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🚣🏾‍♂️ E4.0 man rowing boat: medium-dark skin tone
+1F6A3 1F3FE 200D 2642                                  ; minimally-qualified # 🚣🏾‍♂ E4.0 man rowing boat: medium-dark skin tone
+1F6A3 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🚣🏿‍♂️ E4.0 man rowing boat: dark skin tone
+1F6A3 1F3FF 200D 2642                                  ; minimally-qualified # 🚣🏿‍♂ E4.0 man rowing boat: dark skin tone
+1F6A3 200D 2640 FE0F                                   ; fully-qualified     # 🚣‍♀️ E4.0 woman rowing boat
+1F6A3 200D 2640                                        ; minimally-qualified # 🚣‍♀ E4.0 woman rowing boat
+1F6A3 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🚣🏻‍♀️ E4.0 woman rowing boat: light skin tone
+1F6A3 1F3FB 200D 2640                                  ; minimally-qualified # 🚣🏻‍♀ E4.0 woman rowing boat: light skin tone
+1F6A3 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🚣🏼‍♀️ E4.0 woman rowing boat: medium-light skin tone
+1F6A3 1F3FC 200D 2640                                  ; minimally-qualified # 🚣🏼‍♀ E4.0 woman rowing boat: medium-light skin tone
+1F6A3 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🚣🏽‍♀️ E4.0 woman rowing boat: medium skin tone
+1F6A3 1F3FD 200D 2640                                  ; minimally-qualified # 🚣🏽‍♀ E4.0 woman rowing boat: medium skin tone
+1F6A3 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🚣🏾‍♀️ E4.0 woman rowing boat: medium-dark skin tone
+1F6A3 1F3FE 200D 2640                                  ; minimally-qualified # 🚣🏾‍♀ E4.0 woman rowing boat: medium-dark skin tone
+1F6A3 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🚣🏿‍♀️ E4.0 woman rowing boat: dark skin tone
+1F6A3 1F3FF 200D 2640                                  ; minimally-qualified # 🚣🏿‍♀ E4.0 woman rowing boat: dark skin tone
+1F3CA                                                  ; fully-qualified     # 🏊 E0.6 person swimming
+1F3CA 1F3FB                                            ; fully-qualified     # 🏊🏻 E1.0 person swimming: light skin tone
+1F3CA 1F3FC                                            ; fully-qualified     # 🏊🏼 E1.0 person swimming: medium-light skin tone
+1F3CA 1F3FD                                            ; fully-qualified     # 🏊🏽 E1.0 person swimming: medium skin tone
+1F3CA 1F3FE                                            ; fully-qualified     # 🏊🏾 E1.0 person swimming: medium-dark skin tone
+1F3CA 1F3FF                                            ; fully-qualified     # 🏊🏿 E1.0 person swimming: dark skin tone
+1F3CA 200D 2642 FE0F                                   ; fully-qualified     # 🏊‍♂️ E4.0 man swimming
+1F3CA 200D 2642                                        ; minimally-qualified # 🏊‍♂ E4.0 man swimming
+1F3CA 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🏊🏻‍♂️ E4.0 man swimming: light skin tone
+1F3CA 1F3FB 200D 2642                                  ; minimally-qualified # 🏊🏻‍♂ E4.0 man swimming: light skin tone
+1F3CA 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🏊🏼‍♂️ E4.0 man swimming: medium-light skin tone
+1F3CA 1F3FC 200D 2642                                  ; minimally-qualified # 🏊🏼‍♂ E4.0 man swimming: medium-light skin tone
+1F3CA 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🏊🏽‍♂️ E4.0 man swimming: medium skin tone
+1F3CA 1F3FD 200D 2642                                  ; minimally-qualified # 🏊🏽‍♂ E4.0 man swimming: medium skin tone
+1F3CA 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🏊🏾‍♂️ E4.0 man swimming: medium-dark skin tone
+1F3CA 1F3FE 200D 2642                                  ; minimally-qualified # 🏊🏾‍♂ E4.0 man swimming: medium-dark skin tone
+1F3CA 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🏊🏿‍♂️ E4.0 man swimming: dark skin tone
+1F3CA 1F3FF 200D 2642                                  ; minimally-qualified # 🏊🏿‍♂ E4.0 man swimming: dark skin tone
+1F3CA 200D 2640 FE0F                                   ; fully-qualified     # 🏊‍♀️ E4.0 woman swimming
+1F3CA 200D 2640                                        ; minimally-qualified # 🏊‍♀ E4.0 woman swimming
+1F3CA 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🏊🏻‍♀️ E4.0 woman swimming: light skin tone
+1F3CA 1F3FB 200D 2640                                  ; minimally-qualified # 🏊🏻‍♀ E4.0 woman swimming: light skin tone
+1F3CA 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🏊🏼‍♀️ E4.0 woman swimming: medium-light skin tone
+1F3CA 1F3FC 200D 2640                                  ; minimally-qualified # 🏊🏼‍♀ E4.0 woman swimming: medium-light skin tone
+1F3CA 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🏊🏽‍♀️ E4.0 woman swimming: medium skin tone
+1F3CA 1F3FD 200D 2640                                  ; minimally-qualified # 🏊🏽‍♀ E4.0 woman swimming: medium skin tone
+1F3CA 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🏊🏾‍♀️ E4.0 woman swimming: medium-dark skin tone
+1F3CA 1F3FE 200D 2640                                  ; minimally-qualified # 🏊🏾‍♀ E4.0 woman swimming: medium-dark skin tone
+1F3CA 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🏊🏿‍♀️ E4.0 woman swimming: dark skin tone
+1F3CA 1F3FF 200D 2640                                  ; minimally-qualified # 🏊🏿‍♀ E4.0 woman swimming: dark skin tone
+26F9 FE0F                                              ; fully-qualified     # ⛹️ E0.7 person bouncing ball
+26F9                                                   ; unqualified         # ⛹ E0.7 person bouncing ball
+26F9 1F3FB                                             ; fully-qualified     # ⛹🏻 E2.0 person bouncing ball: light skin tone
+26F9 1F3FC                                             ; fully-qualified     # ⛹🏼 E2.0 person bouncing ball: medium-light skin tone
+26F9 1F3FD                                             ; fully-qualified     # ⛹🏽 E2.0 person bouncing ball: medium skin tone
+26F9 1F3FE                                             ; fully-qualified     # ⛹🏾 E2.0 person bouncing ball: medium-dark skin tone
+26F9 1F3FF                                             ; fully-qualified     # ⛹🏿 E2.0 person bouncing ball: dark skin tone
+26F9 FE0F 200D 2642 FE0F                               ; fully-qualified     # ⛹️‍♂️ E4.0 man bouncing ball
+26F9 200D 2642 FE0F                                    ; unqualified         # ⛹‍♂️ E4.0 man bouncing ball
+26F9 FE0F 200D 2642                                    ; minimally-qualified # ⛹️‍♂ E4.0 man bouncing ball
+26F9 200D 2642                                         ; unqualified         # ⛹‍♂ E4.0 man bouncing ball
+26F9 1F3FB 200D 2642 FE0F                              ; fully-qualified     # ⛹🏻‍♂️ E4.0 man bouncing ball: light skin tone
+26F9 1F3FB 200D 2642                                   ; minimally-qualified # ⛹🏻‍♂ E4.0 man bouncing ball: light skin tone
+26F9 1F3FC 200D 2642 FE0F                              ; fully-qualified     # ⛹🏼‍♂️ E4.0 man bouncing ball: medium-light skin tone
+26F9 1F3FC 200D 2642                                   ; minimally-qualified # ⛹🏼‍♂ E4.0 man bouncing ball: medium-light skin tone
+26F9 1F3FD 200D 2642 FE0F                              ; fully-qualified     # ⛹🏽‍♂️ E4.0 man bouncing ball: medium skin tone
+26F9 1F3FD 200D 2642                                   ; minimally-qualified # ⛹🏽‍♂ E4.0 man bouncing ball: medium skin tone
+26F9 1F3FE 200D 2642 FE0F                              ; fully-qualified     # ⛹🏾‍♂️ E4.0 man bouncing ball: medium-dark skin tone
+26F9 1F3FE 200D 2642                                   ; minimally-qualified # ⛹🏾‍♂ E4.0 man bouncing ball: medium-dark skin tone
+26F9 1F3FF 200D 2642 FE0F                              ; fully-qualified     # ⛹🏿‍♂️ E4.0 man bouncing ball: dark skin tone
+26F9 1F3FF 200D 2642                                   ; minimally-qualified # ⛹🏿‍♂ E4.0 man bouncing ball: dark skin tone
+26F9 FE0F 200D 2640 FE0F                               ; fully-qualified     # ⛹️‍♀️ E4.0 woman bouncing ball
+26F9 200D 2640 FE0F                                    ; unqualified         # ⛹‍♀️ E4.0 woman bouncing ball
+26F9 FE0F 200D 2640                                    ; minimally-qualified # ⛹️‍♀ E4.0 woman bouncing ball
+26F9 200D 2640                                         ; unqualified         # ⛹‍♀ E4.0 woman bouncing ball
+26F9 1F3FB 200D 2640 FE0F                              ; fully-qualified     # ⛹🏻‍♀️ E4.0 woman bouncing ball: light skin tone
+26F9 1F3FB 200D 2640                                   ; minimally-qualified # ⛹🏻‍♀ E4.0 woman bouncing ball: light skin tone
+26F9 1F3FC 200D 2640 FE0F                              ; fully-qualified     # ⛹🏼‍♀️ E4.0 woman bouncing ball: medium-light skin tone
+26F9 1F3FC 200D 2640                                   ; minimally-qualified # ⛹🏼‍♀ E4.0 woman bouncing ball: medium-light skin tone
+26F9 1F3FD 200D 2640 FE0F                              ; fully-qualified     # ⛹🏽‍♀️ E4.0 woman bouncing ball: medium skin tone
+26F9 1F3FD 200D 2640                                   ; minimally-qualified # ⛹🏽‍♀ E4.0 woman bouncing ball: medium skin tone
+26F9 1F3FE 200D 2640 FE0F                              ; fully-qualified     # ⛹🏾‍♀️ E4.0 woman bouncing ball: medium-dark skin tone
+26F9 1F3FE 200D 2640                                   ; minimally-qualified # ⛹🏾‍♀ E4.0 woman bouncing ball: medium-dark skin tone
+26F9 1F3FF 200D 2640 FE0F                              ; fully-qualified     # ⛹🏿‍♀️ E4.0 woman bouncing ball: dark skin tone
+26F9 1F3FF 200D 2640                                   ; minimally-qualified # ⛹🏿‍♀ E4.0 woman bouncing ball: dark skin tone
+1F3CB FE0F                                             ; fully-qualified     # 🏋️ E0.7 person lifting weights
+1F3CB                                                  ; unqualified         # 🏋 E0.7 person lifting weights
+1F3CB 1F3FB                                            ; fully-qualified     # 🏋🏻 E2.0 person lifting weights: light skin tone
+1F3CB 1F3FC                                            ; fully-qualified     # 🏋🏼 E2.0 person lifting weights: medium-light skin tone
+1F3CB 1F3FD                                            ; fully-qualified     # 🏋🏽 E2.0 person lifting weights: medium skin tone
+1F3CB 1F3FE                                            ; fully-qualified     # 🏋🏾 E2.0 person lifting weights: medium-dark skin tone
+1F3CB 1F3FF                                            ; fully-qualified     # 🏋🏿 E2.0 person lifting weights: dark skin tone
+1F3CB FE0F 200D 2642 FE0F                              ; fully-qualified     # 🏋️‍♂️ E4.0 man lifting weights
+1F3CB 200D 2642 FE0F                                   ; unqualified         # 🏋‍♂️ E4.0 man lifting weights
+1F3CB FE0F 200D 2642                                   ; minimally-qualified # 🏋️‍♂ E4.0 man lifting weights
+1F3CB 200D 2642                                        ; unqualified         # 🏋‍♂ E4.0 man lifting weights
+1F3CB 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🏋🏻‍♂️ E4.0 man lifting weights: light skin tone
+1F3CB 1F3FB 200D 2642                                  ; minimally-qualified # 🏋🏻‍♂ E4.0 man lifting weights: light skin tone
+1F3CB 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🏋🏼‍♂️ E4.0 man lifting weights: medium-light skin tone
+1F3CB 1F3FC 200D 2642                                  ; minimally-qualified # 🏋🏼‍♂ E4.0 man lifting weights: medium-light skin tone
+1F3CB 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🏋🏽‍♂️ E4.0 man lifting weights: medium skin tone
+1F3CB 1F3FD 200D 2642                                  ; minimally-qualified # 🏋🏽‍♂ E4.0 man lifting weights: medium skin tone
+1F3CB 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🏋🏾‍♂️ E4.0 man lifting weights: medium-dark skin tone
+1F3CB 1F3FE 200D 2642                                  ; minimally-qualified # 🏋🏾‍♂ E4.0 man lifting weights: medium-dark skin tone
+1F3CB 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🏋🏿‍♂️ E4.0 man lifting weights: dark skin tone
+1F3CB 1F3FF 200D 2642                                  ; minimally-qualified # 🏋🏿‍♂ E4.0 man lifting weights: dark skin tone
+1F3CB FE0F 200D 2640 FE0F                              ; fully-qualified     # 🏋️‍♀️ E4.0 woman lifting weights
+1F3CB 200D 2640 FE0F                                   ; unqualified         # 🏋‍♀️ E4.0 woman lifting weights
+1F3CB FE0F 200D 2640                                   ; minimally-qualified # 🏋️‍♀ E4.0 woman lifting weights
+1F3CB 200D 2640                                        ; unqualified         # 🏋‍♀ E4.0 woman lifting weights
+1F3CB 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🏋🏻‍♀️ E4.0 woman lifting weights: light skin tone
+1F3CB 1F3FB 200D 2640                                  ; minimally-qualified # 🏋🏻‍♀ E4.0 woman lifting weights: light skin tone
+1F3CB 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🏋🏼‍♀️ E4.0 woman lifting weights: medium-light skin tone
+1F3CB 1F3FC 200D 2640                                  ; minimally-qualified # 🏋🏼‍♀ E4.0 woman lifting weights: medium-light skin tone
+1F3CB 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🏋🏽‍♀️ E4.0 woman lifting weights: medium skin tone
+1F3CB 1F3FD 200D 2640                                  ; minimally-qualified # 🏋🏽‍♀ E4.0 woman lifting weights: medium skin tone
+1F3CB 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🏋🏾‍♀️ E4.0 woman lifting weights: medium-dark skin tone
+1F3CB 1F3FE 200D 2640                                  ; minimally-qualified # 🏋🏾‍♀ E4.0 woman lifting weights: medium-dark skin tone
+1F3CB 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🏋🏿‍♀️ E4.0 woman lifting weights: dark skin tone
+1F3CB 1F3FF 200D 2640                                  ; minimally-qualified # 🏋🏿‍♀ E4.0 woman lifting weights: dark skin tone
+1F6B4                                                  ; fully-qualified     # 🚴 E1.0 person biking
+1F6B4 1F3FB                                            ; fully-qualified     # 🚴🏻 E1.0 person biking: light skin tone
+1F6B4 1F3FC                                            ; fully-qualified     # 🚴🏼 E1.0 person biking: medium-light skin tone
+1F6B4 1F3FD                                            ; fully-qualified     # 🚴🏽 E1.0 person biking: medium skin tone
+1F6B4 1F3FE                                            ; fully-qualified     # 🚴🏾 E1.0 person biking: medium-dark skin tone
+1F6B4 1F3FF                                            ; fully-qualified     # 🚴🏿 E1.0 person biking: dark skin tone
+1F6B4 200D 2642 FE0F                                   ; fully-qualified     # 🚴‍♂️ E4.0 man biking
+1F6B4 200D 2642                                        ; minimally-qualified # 🚴‍♂ E4.0 man biking
+1F6B4 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🚴🏻‍♂️ E4.0 man biking: light skin tone
+1F6B4 1F3FB 200D 2642                                  ; minimally-qualified # 🚴🏻‍♂ E4.0 man biking: light skin tone
+1F6B4 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🚴🏼‍♂️ E4.0 man biking: medium-light skin tone
+1F6B4 1F3FC 200D 2642                                  ; minimally-qualified # 🚴🏼‍♂ E4.0 man biking: medium-light skin tone
+1F6B4 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🚴🏽‍♂️ E4.0 man biking: medium skin tone
+1F6B4 1F3FD 200D 2642                                  ; minimally-qualified # 🚴🏽‍♂ E4.0 man biking: medium skin tone
+1F6B4 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🚴🏾‍♂️ E4.0 man biking: medium-dark skin tone
+1F6B4 1F3FE 200D 2642                                  ; minimally-qualified # 🚴🏾‍♂ E4.0 man biking: medium-dark skin tone
+1F6B4 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🚴🏿‍♂️ E4.0 man biking: dark skin tone
+1F6B4 1F3FF 200D 2642                                  ; minimally-qualified # 🚴🏿‍♂ E4.0 man biking: dark skin tone
+1F6B4 200D 2640 FE0F                                   ; fully-qualified     # 🚴‍♀️ E4.0 woman biking
+1F6B4 200D 2640                                        ; minimally-qualified # 🚴‍♀ E4.0 woman biking
+1F6B4 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🚴🏻‍♀️ E4.0 woman biking: light skin tone
+1F6B4 1F3FB 200D 2640                                  ; minimally-qualified # 🚴🏻‍♀ E4.0 woman biking: light skin tone
+1F6B4 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🚴🏼‍♀️ E4.0 woman biking: medium-light skin tone
+1F6B4 1F3FC 200D 2640                                  ; minimally-qualified # 🚴🏼‍♀ E4.0 woman biking: medium-light skin tone
+1F6B4 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🚴🏽‍♀️ E4.0 woman biking: medium skin tone
+1F6B4 1F3FD 200D 2640                                  ; minimally-qualified # 🚴🏽‍♀ E4.0 woman biking: medium skin tone
+1F6B4 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🚴🏾‍♀️ E4.0 woman biking: medium-dark skin tone
+1F6B4 1F3FE 200D 2640                                  ; minimally-qualified # 🚴🏾‍♀ E4.0 woman biking: medium-dark skin tone
+1F6B4 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🚴🏿‍♀️ E4.0 woman biking: dark skin tone
+1F6B4 1F3FF 200D 2640                                  ; minimally-qualified # 🚴🏿‍♀ E4.0 woman biking: dark skin tone
+1F6B5                                                  ; fully-qualified     # 🚵 E1.0 person mountain biking
+1F6B5 1F3FB                                            ; fully-qualified     # 🚵🏻 E1.0 person mountain biking: light skin tone
+1F6B5 1F3FC                                            ; fully-qualified     # 🚵🏼 E1.0 person mountain biking: medium-light skin tone
+1F6B5 1F3FD                                            ; fully-qualified     # 🚵🏽 E1.0 person mountain biking: medium skin tone
+1F6B5 1F3FE                                            ; fully-qualified     # 🚵🏾 E1.0 person mountain biking: medium-dark skin tone
+1F6B5 1F3FF                                            ; fully-qualified     # 🚵🏿 E1.0 person mountain biking: dark skin tone
+1F6B5 200D 2642 FE0F                                   ; fully-qualified     # 🚵‍♂️ E4.0 man mountain biking
+1F6B5 200D 2642                                        ; minimally-qualified # 🚵‍♂ E4.0 man mountain biking
+1F6B5 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🚵🏻‍♂️ E4.0 man mountain biking: light skin tone
+1F6B5 1F3FB 200D 2642                                  ; minimally-qualified # 🚵🏻‍♂ E4.0 man mountain biking: light skin tone
+1F6B5 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🚵🏼‍♂️ E4.0 man mountain biking: medium-light skin tone
+1F6B5 1F3FC 200D 2642                                  ; minimally-qualified # 🚵🏼‍♂ E4.0 man mountain biking: medium-light skin tone
+1F6B5 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🚵🏽‍♂️ E4.0 man mountain biking: medium skin tone
+1F6B5 1F3FD 200D 2642                                  ; minimally-qualified # 🚵🏽‍♂ E4.0 man mountain biking: medium skin tone
+1F6B5 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🚵🏾‍♂️ E4.0 man mountain biking: medium-dark skin tone
+1F6B5 1F3FE 200D 2642                                  ; minimally-qualified # 🚵🏾‍♂ E4.0 man mountain biking: medium-dark skin tone
+1F6B5 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🚵🏿‍♂️ E4.0 man mountain biking: dark skin tone
+1F6B5 1F3FF 200D 2642                                  ; minimally-qualified # 🚵🏿‍♂ E4.0 man mountain biking: dark skin tone
+1F6B5 200D 2640 FE0F                                   ; fully-qualified     # 🚵‍♀️ E4.0 woman mountain biking
+1F6B5 200D 2640                                        ; minimally-qualified # 🚵‍♀ E4.0 woman mountain biking
+1F6B5 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🚵🏻‍♀️ E4.0 woman mountain biking: light skin tone
+1F6B5 1F3FB 200D 2640                                  ; minimally-qualified # 🚵🏻‍♀ E4.0 woman mountain biking: light skin tone
+1F6B5 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🚵🏼‍♀️ E4.0 woman mountain biking: medium-light skin tone
+1F6B5 1F3FC 200D 2640                                  ; minimally-qualified # 🚵🏼‍♀ E4.0 woman mountain biking: medium-light skin tone
+1F6B5 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🚵🏽‍♀️ E4.0 woman mountain biking: medium skin tone
+1F6B5 1F3FD 200D 2640                                  ; minimally-qualified # 🚵🏽‍♀ E4.0 woman mountain biking: medium skin tone
+1F6B5 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🚵🏾‍♀️ E4.0 woman mountain biking: medium-dark skin tone
+1F6B5 1F3FE 200D 2640                                  ; minimally-qualified # 🚵🏾‍♀ E4.0 woman mountain biking: medium-dark skin tone
+1F6B5 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🚵🏿‍♀️ E4.0 woman mountain biking: dark skin tone
+1F6B5 1F3FF 200D 2640                                  ; minimally-qualified # 🚵🏿‍♀ E4.0 woman mountain biking: dark skin tone
+1F938                                                  ; fully-qualified     # 🤸 E3.0 person cartwheeling
+1F938 1F3FB                                            ; fully-qualified     # 🤸🏻 E3.0 person cartwheeling: light skin tone
+1F938 1F3FC                                            ; fully-qualified     # 🤸🏼 E3.0 person cartwheeling: medium-light skin tone
+1F938 1F3FD                                            ; fully-qualified     # 🤸🏽 E3.0 person cartwheeling: medium skin tone
+1F938 1F3FE                                            ; fully-qualified     # 🤸🏾 E3.0 person cartwheeling: medium-dark skin tone
+1F938 1F3FF                                            ; fully-qualified     # 🤸🏿 E3.0 person cartwheeling: dark skin tone
+1F938 200D 2642 FE0F                                   ; fully-qualified     # 🤸‍♂️ E4.0 man cartwheeling
+1F938 200D 2642                                        ; minimally-qualified # 🤸‍♂ E4.0 man cartwheeling
+1F938 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🤸🏻‍♂️ E4.0 man cartwheeling: light skin tone
+1F938 1F3FB 200D 2642                                  ; minimally-qualified # 🤸🏻‍♂ E4.0 man cartwheeling: light skin tone
+1F938 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🤸🏼‍♂️ E4.0 man cartwheeling: medium-light skin tone
+1F938 1F3FC 200D 2642                                  ; minimally-qualified # 🤸🏼‍♂ E4.0 man cartwheeling: medium-light skin tone
+1F938 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🤸🏽‍♂️ E4.0 man cartwheeling: medium skin tone
+1F938 1F3FD 200D 2642                                  ; minimally-qualified # 🤸🏽‍♂ E4.0 man cartwheeling: medium skin tone
+1F938 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🤸🏾‍♂️ E4.0 man cartwheeling: medium-dark skin tone
+1F938 1F3FE 200D 2642                                  ; minimally-qualified # 🤸🏾‍♂ E4.0 man cartwheeling: medium-dark skin tone
+1F938 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🤸🏿‍♂️ E4.0 man cartwheeling: dark skin tone
+1F938 1F3FF 200D 2642                                  ; minimally-qualified # 🤸🏿‍♂ E4.0 man cartwheeling: dark skin tone
+1F938 200D 2640 FE0F                                   ; fully-qualified     # 🤸‍♀️ E4.0 woman cartwheeling
+1F938 200D 2640                                        ; minimally-qualified # 🤸‍♀ E4.0 woman cartwheeling
+1F938 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🤸🏻‍♀️ E4.0 woman cartwheeling: light skin tone
+1F938 1F3FB 200D 2640                                  ; minimally-qualified # 🤸🏻‍♀ E4.0 woman cartwheeling: light skin tone
+1F938 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🤸🏼‍♀️ E4.0 woman cartwheeling: medium-light skin tone
+1F938 1F3FC 200D 2640                                  ; minimally-qualified # 🤸🏼‍♀ E4.0 woman cartwheeling: medium-light skin tone
+1F938 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🤸🏽‍♀️ E4.0 woman cartwheeling: medium skin tone
+1F938 1F3FD 200D 2640                                  ; minimally-qualified # 🤸🏽‍♀ E4.0 woman cartwheeling: medium skin tone
+1F938 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🤸🏾‍♀️ E4.0 woman cartwheeling: medium-dark skin tone
+1F938 1F3FE 200D 2640                                  ; minimally-qualified # 🤸🏾‍♀ E4.0 woman cartwheeling: medium-dark skin tone
+1F938 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🤸🏿‍♀️ E4.0 woman cartwheeling: dark skin tone
+1F938 1F3FF 200D 2640                                  ; minimally-qualified # 🤸🏿‍♀ E4.0 woman cartwheeling: dark skin tone
+1F93C                                                  ; fully-qualified     # 🤼 E3.0 people wrestling
+1F93C 200D 2642 FE0F                                   ; fully-qualified     # 🤼‍♂️ E4.0 men wrestling
+1F93C 200D 2642                                        ; minimally-qualified # 🤼‍♂ E4.0 men wrestling
+1F93C 200D 2640 FE0F                                   ; fully-qualified     # 🤼‍♀️ E4.0 women wrestling
+1F93C 200D 2640                                        ; minimally-qualified # 🤼‍♀ E4.0 women wrestling
+1F93D                                                  ; fully-qualified     # 🤽 E3.0 person playing water polo
+1F93D 1F3FB                                            ; fully-qualified     # 🤽🏻 E3.0 person playing water polo: light skin tone
+1F93D 1F3FC                                            ; fully-qualified     # 🤽🏼 E3.0 person playing water polo: medium-light skin tone
+1F93D 1F3FD                                            ; fully-qualified     # 🤽🏽 E3.0 person playing water polo: medium skin tone
+1F93D 1F3FE                                            ; fully-qualified     # 🤽🏾 E3.0 person playing water polo: medium-dark skin tone
+1F93D 1F3FF                                            ; fully-qualified     # 🤽🏿 E3.0 person playing water polo: dark skin tone
+1F93D 200D 2642 FE0F                                   ; fully-qualified     # 🤽‍♂️ E4.0 man playing water polo
+1F93D 200D 2642                                        ; minimally-qualified # 🤽‍♂ E4.0 man playing water polo
+1F93D 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🤽🏻‍♂️ E4.0 man playing water polo: light skin tone
+1F93D 1F3FB 200D 2642                                  ; minimally-qualified # 🤽🏻‍♂ E4.0 man playing water polo: light skin tone
+1F93D 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🤽🏼‍♂️ E4.0 man playing water polo: medium-light skin tone
+1F93D 1F3FC 200D 2642                                  ; minimally-qualified # 🤽🏼‍♂ E4.0 man playing water polo: medium-light skin tone
+1F93D 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🤽🏽‍♂️ E4.0 man playing water polo: medium skin tone
+1F93D 1F3FD 200D 2642                                  ; minimally-qualified # 🤽🏽‍♂ E4.0 man playing water polo: medium skin tone
+1F93D 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🤽🏾‍♂️ E4.0 man playing water polo: medium-dark skin tone
+1F93D 1F3FE 200D 2642                                  ; minimally-qualified # 🤽🏾‍♂ E4.0 man playing water polo: medium-dark skin tone
+1F93D 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🤽🏿‍♂️ E4.0 man playing water polo: dark skin tone
+1F93D 1F3FF 200D 2642                                  ; minimally-qualified # 🤽🏿‍♂ E4.0 man playing water polo: dark skin tone
+1F93D 200D 2640 FE0F                                   ; fully-qualified     # 🤽‍♀️ E4.0 woman playing water polo
+1F93D 200D 2640                                        ; minimally-qualified # 🤽‍♀ E4.0 woman playing water polo
+1F93D 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🤽🏻‍♀️ E4.0 woman playing water polo: light skin tone
+1F93D 1F3FB 200D 2640                                  ; minimally-qualified # 🤽🏻‍♀ E4.0 woman playing water polo: light skin tone
+1F93D 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🤽🏼‍♀️ E4.0 woman playing water polo: medium-light skin tone
+1F93D 1F3FC 200D 2640                                  ; minimally-qualified # 🤽🏼‍♀ E4.0 woman playing water polo: medium-light skin tone
+1F93D 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🤽🏽‍♀️ E4.0 woman playing water polo: medium skin tone
+1F93D 1F3FD 200D 2640                                  ; minimally-qualified # 🤽🏽‍♀ E4.0 woman playing water polo: medium skin tone
+1F93D 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🤽🏾‍♀️ E4.0 woman playing water polo: medium-dark skin tone
+1F93D 1F3FE 200D 2640                                  ; minimally-qualified # 🤽🏾‍♀ E4.0 woman playing water polo: medium-dark skin tone
+1F93D 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🤽🏿‍♀️ E4.0 woman playing water polo: dark skin tone
+1F93D 1F3FF 200D 2640                                  ; minimally-qualified # 🤽🏿‍♀ E4.0 woman playing water polo: dark skin tone
+1F93E                                                  ; fully-qualified     # 🤾 E3.0 person playing handball
+1F93E 1F3FB                                            ; fully-qualified     # 🤾🏻 E3.0 person playing handball: light skin tone
+1F93E 1F3FC                                            ; fully-qualified     # 🤾🏼 E3.0 person playing handball: medium-light skin tone
+1F93E 1F3FD                                            ; fully-qualified     # 🤾🏽 E3.0 person playing handball: medium skin tone
+1F93E 1F3FE                                            ; fully-qualified     # 🤾🏾 E3.0 person playing handball: medium-dark skin tone
+1F93E 1F3FF                                            ; fully-qualified     # 🤾🏿 E3.0 person playing handball: dark skin tone
+1F93E 200D 2642 FE0F                                   ; fully-qualified     # 🤾‍♂️ E4.0 man playing handball
+1F93E 200D 2642                                        ; minimally-qualified # 🤾‍♂ E4.0 man playing handball
+1F93E 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🤾🏻‍♂️ E4.0 man playing handball: light skin tone
+1F93E 1F3FB 200D 2642                                  ; minimally-qualified # 🤾🏻‍♂ E4.0 man playing handball: light skin tone
+1F93E 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🤾🏼‍♂️ E4.0 man playing handball: medium-light skin tone
+1F93E 1F3FC 200D 2642                                  ; minimally-qualified # 🤾🏼‍♂ E4.0 man playing handball: medium-light skin tone
+1F93E 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🤾🏽‍♂️ E4.0 man playing handball: medium skin tone
+1F93E 1F3FD 200D 2642                                  ; minimally-qualified # 🤾🏽‍♂ E4.0 man playing handball: medium skin tone
+1F93E 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🤾🏾‍♂️ E4.0 man playing handball: medium-dark skin tone
+1F93E 1F3FE 200D 2642                                  ; minimally-qualified # 🤾🏾‍♂ E4.0 man playing handball: medium-dark skin tone
+1F93E 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🤾🏿‍♂️ E4.0 man playing handball: dark skin tone
+1F93E 1F3FF 200D 2642                                  ; minimally-qualified # 🤾🏿‍♂ E4.0 man playing handball: dark skin tone
+1F93E 200D 2640 FE0F                                   ; fully-qualified     # 🤾‍♀️ E4.0 woman playing handball
+1F93E 200D 2640                                        ; minimally-qualified # 🤾‍♀ E4.0 woman playing handball
+1F93E 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🤾🏻‍♀️ E4.0 woman playing handball: light skin tone
+1F93E 1F3FB 200D 2640                                  ; minimally-qualified # 🤾🏻‍♀ E4.0 woman playing handball: light skin tone
+1F93E 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🤾🏼‍♀️ E4.0 woman playing handball: medium-light skin tone
+1F93E 1F3FC 200D 2640                                  ; minimally-qualified # 🤾🏼‍♀ E4.0 woman playing handball: medium-light skin tone
+1F93E 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🤾🏽‍♀️ E4.0 woman playing handball: medium skin tone
+1F93E 1F3FD 200D 2640                                  ; minimally-qualified # 🤾🏽‍♀ E4.0 woman playing handball: medium skin tone
+1F93E 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🤾🏾‍♀️ E4.0 woman playing handball: medium-dark skin tone
+1F93E 1F3FE 200D 2640                                  ; minimally-qualified # 🤾🏾‍♀ E4.0 woman playing handball: medium-dark skin tone
+1F93E 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🤾🏿‍♀️ E4.0 woman playing handball: dark skin tone
+1F93E 1F3FF 200D 2640                                  ; minimally-qualified # 🤾🏿‍♀ E4.0 woman playing handball: dark skin tone
+1F939                                                  ; fully-qualified     # 🤹 E3.0 person juggling
+1F939 1F3FB                                            ; fully-qualified     # 🤹🏻 E3.0 person juggling: light skin tone
+1F939 1F3FC                                            ; fully-qualified     # 🤹🏼 E3.0 person juggling: medium-light skin tone
+1F939 1F3FD                                            ; fully-qualified     # 🤹🏽 E3.0 person juggling: medium skin tone
+1F939 1F3FE                                            ; fully-qualified     # 🤹🏾 E3.0 person juggling: medium-dark skin tone
+1F939 1F3FF                                            ; fully-qualified     # 🤹🏿 E3.0 person juggling: dark skin tone
+1F939 200D 2642 FE0F                                   ; fully-qualified     # 🤹‍♂️ E4.0 man juggling
+1F939 200D 2642                                        ; minimally-qualified # 🤹‍♂ E4.0 man juggling
+1F939 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🤹🏻‍♂️ E4.0 man juggling: light skin tone
+1F939 1F3FB 200D 2642                                  ; minimally-qualified # 🤹🏻‍♂ E4.0 man juggling: light skin tone
+1F939 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🤹🏼‍♂️ E4.0 man juggling: medium-light skin tone
+1F939 1F3FC 200D 2642                                  ; minimally-qualified # 🤹🏼‍♂ E4.0 man juggling: medium-light skin tone
+1F939 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🤹🏽‍♂️ E4.0 man juggling: medium skin tone
+1F939 1F3FD 200D 2642                                  ; minimally-qualified # 🤹🏽‍♂ E4.0 man juggling: medium skin tone
+1F939 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🤹🏾‍♂️ E4.0 man juggling: medium-dark skin tone
+1F939 1F3FE 200D 2642                                  ; minimally-qualified # 🤹🏾‍♂ E4.0 man juggling: medium-dark skin tone
+1F939 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🤹🏿‍♂️ E4.0 man juggling: dark skin tone
+1F939 1F3FF 200D 2642                                  ; minimally-qualified # 🤹🏿‍♂ E4.0 man juggling: dark skin tone
+1F939 200D 2640 FE0F                                   ; fully-qualified     # 🤹‍♀️ E4.0 woman juggling
+1F939 200D 2640                                        ; minimally-qualified # 🤹‍♀ E4.0 woman juggling
+1F939 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🤹🏻‍♀️ E4.0 woman juggling: light skin tone
+1F939 1F3FB 200D 2640                                  ; minimally-qualified # 🤹🏻‍♀ E4.0 woman juggling: light skin tone
+1F939 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🤹🏼‍♀️ E4.0 woman juggling: medium-light skin tone
+1F939 1F3FC 200D 2640                                  ; minimally-qualified # 🤹🏼‍♀ E4.0 woman juggling: medium-light skin tone
+1F939 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🤹🏽‍♀️ E4.0 woman juggling: medium skin tone
+1F939 1F3FD 200D 2640                                  ; minimally-qualified # 🤹🏽‍♀ E4.0 woman juggling: medium skin tone
+1F939 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🤹🏾‍♀️ E4.0 woman juggling: medium-dark skin tone
+1F939 1F3FE 200D 2640                                  ; minimally-qualified # 🤹🏾‍♀ E4.0 woman juggling: medium-dark skin tone
+1F939 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🤹🏿‍♀️ E4.0 woman juggling: dark skin tone
+1F939 1F3FF 200D 2640                                  ; minimally-qualified # 🤹🏿‍♀ E4.0 woman juggling: dark skin tone
+
+# subgroup: person-resting
+1F9D8                                                  ; fully-qualified     # 🧘 E5.0 person in lotus position
+1F9D8 1F3FB                                            ; fully-qualified     # 🧘🏻 E5.0 person in lotus position: light skin tone
+1F9D8 1F3FC                                            ; fully-qualified     # 🧘🏼 E5.0 person in lotus position: medium-light skin tone
+1F9D8 1F3FD                                            ; fully-qualified     # 🧘🏽 E5.0 person in lotus position: medium skin tone
+1F9D8 1F3FE                                            ; fully-qualified     # 🧘🏾 E5.0 person in lotus position: medium-dark skin tone
+1F9D8 1F3FF                                            ; fully-qualified     # 🧘🏿 E5.0 person in lotus position: dark skin tone
+1F9D8 200D 2642 FE0F                                   ; fully-qualified     # 🧘‍♂️ E5.0 man in lotus position
+1F9D8 200D 2642                                        ; minimally-qualified # 🧘‍♂ E5.0 man in lotus position
+1F9D8 1F3FB 200D 2642 FE0F                             ; fully-qualified     # 🧘🏻‍♂️ E5.0 man in lotus position: light skin tone
+1F9D8 1F3FB 200D 2642                                  ; minimally-qualified # 🧘🏻‍♂ E5.0 man in lotus position: light skin tone
+1F9D8 1F3FC 200D 2642 FE0F                             ; fully-qualified     # 🧘🏼‍♂️ E5.0 man in lotus position: medium-light skin tone
+1F9D8 1F3FC 200D 2642                                  ; minimally-qualified # 🧘🏼‍♂ E5.0 man in lotus position: medium-light skin tone
+1F9D8 1F3FD 200D 2642 FE0F                             ; fully-qualified     # 🧘🏽‍♂️ E5.0 man in lotus position: medium skin tone
+1F9D8 1F3FD 200D 2642                                  ; minimally-qualified # 🧘🏽‍♂ E5.0 man in lotus position: medium skin tone
+1F9D8 1F3FE 200D 2642 FE0F                             ; fully-qualified     # 🧘🏾‍♂️ E5.0 man in lotus position: medium-dark skin tone
+1F9D8 1F3FE 200D 2642                                  ; minimally-qualified # 🧘🏾‍♂ E5.0 man in lotus position: medium-dark skin tone
+1F9D8 1F3FF 200D 2642 FE0F                             ; fully-qualified     # 🧘🏿‍♂️ E5.0 man in lotus position: dark skin tone
+1F9D8 1F3FF 200D 2642                                  ; minimally-qualified # 🧘🏿‍♂ E5.0 man in lotus position: dark skin tone
+1F9D8 200D 2640 FE0F                                   ; fully-qualified     # 🧘‍♀️ E5.0 woman in lotus position
+1F9D8 200D 2640                                        ; minimally-qualified # 🧘‍♀ E5.0 woman in lotus position
+1F9D8 1F3FB 200D 2640 FE0F                             ; fully-qualified     # 🧘🏻‍♀️ E5.0 woman in lotus position: light skin tone
+1F9D8 1F3FB 200D 2640                                  ; minimally-qualified # 🧘🏻‍♀ E5.0 woman in lotus position: light skin tone
+1F9D8 1F3FC 200D 2640 FE0F                             ; fully-qualified     # 🧘🏼‍♀️ E5.0 woman in lotus position: medium-light skin tone
+1F9D8 1F3FC 200D 2640                                  ; minimally-qualified # 🧘🏼‍♀ E5.0 woman in lotus position: medium-light skin tone
+1F9D8 1F3FD 200D 2640 FE0F                             ; fully-qualified     # 🧘🏽‍♀️ E5.0 woman in lotus position: medium skin tone
+1F9D8 1F3FD 200D 2640                                  ; minimally-qualified # 🧘🏽‍♀ E5.0 woman in lotus position: medium skin tone
+1F9D8 1F3FE 200D 2640 FE0F                             ; fully-qualified     # 🧘🏾‍♀️ E5.0 woman in lotus position: medium-dark skin tone
+1F9D8 1F3FE 200D 2640                                  ; minimally-qualified # 🧘🏾‍♀ E5.0 woman in lotus position: medium-dark skin tone
+1F9D8 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 🧘🏿‍♀️ E5.0 woman in lotus position: dark skin tone
+1F9D8 1F3FF 200D 2640                                  ; minimally-qualified # 🧘🏿‍♀ E5.0 woman in lotus position: dark skin tone
+1F6C0                                                  ; fully-qualified     # 🛀 E0.6 person taking bath
+1F6C0 1F3FB                                            ; fully-qualified     # 🛀🏻 E1.0 person taking bath: light skin tone
+1F6C0 1F3FC                                            ; fully-qualified     # 🛀🏼 E1.0 person taking bath: medium-light skin tone
+1F6C0 1F3FD                                            ; fully-qualified     # 🛀🏽 E1.0 person taking bath: medium skin tone
+1F6C0 1F3FE                                            ; fully-qualified     # 🛀🏾 E1.0 person taking bath: medium-dark skin tone
+1F6C0 1F3FF                                            ; fully-qualified     # 🛀🏿 E1.0 person taking bath: dark skin tone
+1F6CC                                                  ; fully-qualified     # 🛌 E1.0 person in bed
+1F6CC 1F3FB                                            ; fully-qualified     # 🛌🏻 E4.0 person in bed: light skin tone
+1F6CC 1F3FC                                            ; fully-qualified     # 🛌🏼 E4.0 person in bed: medium-light skin tone
+1F6CC 1F3FD                                            ; fully-qualified     # 🛌🏽 E4.0 person in bed: medium skin tone
+1F6CC 1F3FE                                            ; fully-qualified     # 🛌🏾 E4.0 person in bed: medium-dark skin tone
+1F6CC 1F3FF                                            ; fully-qualified     # 🛌🏿 E4.0 person in bed: dark skin tone
+
+# subgroup: family
+1F9D1 200D 1F91D 200D 1F9D1                            ; fully-qualified     # 🧑‍🤝‍🧑 E12.0 people holding hands
+1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FB                ; fully-qualified     # 🧑🏻‍🤝‍🧑🏻 E12.0 people holding hands: light skin tone
+1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FC                ; fully-qualified     # 🧑🏻‍🤝‍🧑🏼 E12.1 people holding hands: light skin tone, medium-light skin tone
+1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FD                ; fully-qualified     # 🧑🏻‍🤝‍🧑🏽 E12.1 people holding hands: light skin tone, medium skin tone
+1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FE                ; fully-qualified     # 🧑🏻‍🤝‍🧑🏾 E12.1 people holding hands: light skin tone, medium-dark skin tone
+1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FF                ; fully-qualified     # 🧑🏻‍🤝‍🧑🏿 E12.1 people holding hands: light skin tone, dark skin tone
+1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FB                ; fully-qualified     # 🧑🏼‍🤝‍🧑🏻 E12.0 people holding hands: medium-light skin tone, light skin tone
+1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FC                ; fully-qualified     # 🧑🏼‍🤝‍🧑🏼 E12.0 people holding hands: medium-light skin tone
+1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FD                ; fully-qualified     # 🧑🏼‍🤝‍🧑🏽 E12.1 people holding hands: medium-light skin tone, medium skin tone
+1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FE                ; fully-qualified     # 🧑🏼‍🤝‍🧑🏾 E12.1 people holding hands: medium-light skin tone, medium-dark skin tone
+1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FF                ; fully-qualified     # 🧑🏼‍🤝‍🧑🏿 E12.1 people holding hands: medium-light skin tone, dark skin tone
+1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FB                ; fully-qualified     # 🧑🏽‍🤝‍🧑🏻 E12.0 people holding hands: medium skin tone, light skin tone
+1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FC                ; fully-qualified     # 🧑🏽‍🤝‍🧑🏼 E12.0 people holding hands: medium skin tone, medium-light skin tone
+1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FD                ; fully-qualified     # 🧑🏽‍🤝‍🧑🏽 E12.0 people holding hands: medium skin tone
+1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FE                ; fully-qualified     # 🧑🏽‍🤝‍🧑🏾 E12.1 people holding hands: medium skin tone, medium-dark skin tone
+1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FF                ; fully-qualified     # 🧑🏽‍🤝‍🧑🏿 E12.1 people holding hands: medium skin tone, dark skin tone
+1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FB                ; fully-qualified     # 🧑🏾‍🤝‍🧑🏻 E12.0 people holding hands: medium-dark skin tone, light skin tone
+1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FC                ; fully-qualified     # 🧑🏾‍🤝‍🧑🏼 E12.0 people holding hands: medium-dark skin tone, medium-light skin tone
+1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FD                ; fully-qualified     # 🧑🏾‍🤝‍🧑🏽 E12.0 people holding hands: medium-dark skin tone, medium skin tone
+1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FE                ; fully-qualified     # 🧑🏾‍🤝‍🧑🏾 E12.0 people holding hands: medium-dark skin tone
+1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FF                ; fully-qualified     # 🧑🏾‍🤝‍🧑🏿 E12.1 people holding hands: medium-dark skin tone, dark skin tone
+1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FB                ; fully-qualified     # 🧑🏿‍🤝‍🧑🏻 E12.0 people holding hands: dark skin tone, light skin tone
+1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FC                ; fully-qualified     # 🧑🏿‍🤝‍🧑🏼 E12.0 people holding hands: dark skin tone, medium-light skin tone
+1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FD                ; fully-qualified     # 🧑🏿‍🤝‍🧑🏽 E12.0 people holding hands: dark skin tone, medium skin tone
+1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FE                ; fully-qualified     # 🧑🏿‍🤝‍🧑🏾 E12.0 people holding hands: dark skin tone, medium-dark skin tone
+1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FF                ; fully-qualified     # 🧑🏿‍🤝‍🧑🏿 E12.0 people holding hands: dark skin tone
+1F46D                                                  ; fully-qualified     # 👭 E1.0 women holding hands
+1F46D 1F3FB                                            ; fully-qualified     # 👭🏻 E12.0 women holding hands: light skin tone
+1F469 1F3FB 200D 1F91D 200D 1F469 1F3FC                ; fully-qualified     # 👩🏻‍🤝‍👩🏼 E12.1 women holding hands: light skin tone, medium-light skin tone
+1F469 1F3FB 200D 1F91D 200D 1F469 1F3FD                ; fully-qualified     # 👩🏻‍🤝‍👩🏽 E12.1 women holding hands: light skin tone, medium skin tone
+1F469 1F3FB 200D 1F91D 200D 1F469 1F3FE                ; fully-qualified     # 👩🏻‍🤝‍👩🏾 E12.1 women holding hands: light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 1F91D 200D 1F469 1F3FF                ; fully-qualified     # 👩🏻‍🤝‍👩🏿 E12.1 women holding hands: light skin tone, dark skin tone
+1F469 1F3FC 200D 1F91D 200D 1F469 1F3FB                ; fully-qualified     # 👩🏼‍🤝‍👩🏻 E12.0 women holding hands: medium-light skin tone, light skin tone
+1F46D 1F3FC                                            ; fully-qualified     # 👭🏼 E12.0 women holding hands: medium-light skin tone
+1F469 1F3FC 200D 1F91D 200D 1F469 1F3FD                ; fully-qualified     # 👩🏼‍🤝‍👩🏽 E12.1 women holding hands: medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 1F91D 200D 1F469 1F3FE                ; fully-qualified     # 👩🏼‍🤝‍👩🏾 E12.1 women holding hands: medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 1F91D 200D 1F469 1F3FF                ; fully-qualified     # 👩🏼‍🤝‍👩🏿 E12.1 women holding hands: medium-light skin tone, dark skin tone
+1F469 1F3FD 200D 1F91D 200D 1F469 1F3FB                ; fully-qualified     # 👩🏽‍🤝‍👩🏻 E12.0 women holding hands: medium skin tone, light skin tone
+1F469 1F3FD 200D 1F91D 200D 1F469 1F3FC                ; fully-qualified     # 👩🏽‍🤝‍👩🏼 E12.0 women holding hands: medium skin tone, medium-light skin tone
+1F46D 1F3FD                                            ; fully-qualified     # 👭🏽 E12.0 women holding hands: medium skin tone
+1F469 1F3FD 200D 1F91D 200D 1F469 1F3FE                ; fully-qualified     # 👩🏽‍🤝‍👩🏾 E12.1 women holding hands: medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 1F91D 200D 1F469 1F3FF                ; fully-qualified     # 👩🏽‍🤝‍👩🏿 E12.1 women holding hands: medium skin tone, dark skin tone
+1F469 1F3FE 200D 1F91D 200D 1F469 1F3FB                ; fully-qualified     # 👩🏾‍🤝‍👩🏻 E12.0 women holding hands: medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 1F91D 200D 1F469 1F3FC                ; fully-qualified     # 👩🏾‍🤝‍👩🏼 E12.0 women holding hands: medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 1F91D 200D 1F469 1F3FD                ; fully-qualified     # 👩🏾‍🤝‍👩🏽 E12.0 women holding hands: medium-dark skin tone, medium skin tone
+1F46D 1F3FE                                            ; fully-qualified     # 👭🏾 E12.0 women holding hands: medium-dark skin tone
+1F469 1F3FE 200D 1F91D 200D 1F469 1F3FF                ; fully-qualified     # 👩🏾‍🤝‍👩🏿 E12.1 women holding hands: medium-dark skin tone, dark skin tone
+1F469 1F3FF 200D 1F91D 200D 1F469 1F3FB                ; fully-qualified     # 👩🏿‍🤝‍👩🏻 E12.0 women holding hands: dark skin tone, light skin tone
+1F469 1F3FF 200D 1F91D 200D 1F469 1F3FC                ; fully-qualified     # 👩🏿‍🤝‍👩🏼 E12.0 women holding hands: dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 1F91D 200D 1F469 1F3FD                ; fully-qualified     # 👩🏿‍🤝‍👩🏽 E12.0 women holding hands: dark skin tone, medium skin tone
+1F469 1F3FF 200D 1F91D 200D 1F469 1F3FE                ; fully-qualified     # 👩🏿‍🤝‍👩🏾 E12.0 women holding hands: dark skin tone, medium-dark skin tone
+1F46D 1F3FF                                            ; fully-qualified     # 👭🏿 E12.0 women holding hands: dark skin tone
+1F46B                                                  ; fully-qualified     # 👫 E0.6 woman and man holding hands
+1F46B 1F3FB                                            ; fully-qualified     # 👫🏻 E12.0 woman and man holding hands: light skin tone
+1F469 1F3FB 200D 1F91D 200D 1F468 1F3FC                ; fully-qualified     # 👩🏻‍🤝‍👨🏼 E12.0 woman and man holding hands: light skin tone, medium-light skin tone
+1F469 1F3FB 200D 1F91D 200D 1F468 1F3FD                ; fully-qualified     # 👩🏻‍🤝‍👨🏽 E12.0 woman and man holding hands: light skin tone, medium skin tone
+1F469 1F3FB 200D 1F91D 200D 1F468 1F3FE                ; fully-qualified     # 👩🏻‍🤝‍👨🏾 E12.0 woman and man holding hands: light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 1F91D 200D 1F468 1F3FF                ; fully-qualified     # 👩🏻‍🤝‍👨🏿 E12.0 woman and man holding hands: light skin tone, dark skin tone
+1F469 1F3FC 200D 1F91D 200D 1F468 1F3FB                ; fully-qualified     # 👩🏼‍🤝‍👨🏻 E12.0 woman and man holding hands: medium-light skin tone, light skin tone
+1F46B 1F3FC                                            ; fully-qualified     # 👫🏼 E12.0 woman and man holding hands: medium-light skin tone
+1F469 1F3FC 200D 1F91D 200D 1F468 1F3FD                ; fully-qualified     # 👩🏼‍🤝‍👨🏽 E12.0 woman and man holding hands: medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 1F91D 200D 1F468 1F3FE                ; fully-qualified     # 👩🏼‍🤝‍👨🏾 E12.0 woman and man holding hands: medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 1F91D 200D 1F468 1F3FF                ; fully-qualified     # 👩🏼‍🤝‍👨🏿 E12.0 woman and man holding hands: medium-light skin tone, dark skin tone
+1F469 1F3FD 200D 1F91D 200D 1F468 1F3FB                ; fully-qualified     # 👩🏽‍🤝‍👨🏻 E12.0 woman and man holding hands: medium skin tone, light skin tone
+1F469 1F3FD 200D 1F91D 200D 1F468 1F3FC                ; fully-qualified     # 👩🏽‍🤝‍👨🏼 E12.0 woman and man holding hands: medium skin tone, medium-light skin tone
+1F46B 1F3FD                                            ; fully-qualified     # 👫🏽 E12.0 woman and man holding hands: medium skin tone
+1F469 1F3FD 200D 1F91D 200D 1F468 1F3FE                ; fully-qualified     # 👩🏽‍🤝‍👨🏾 E12.0 woman and man holding hands: medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 1F91D 200D 1F468 1F3FF                ; fully-qualified     # 👩🏽‍🤝‍👨🏿 E12.0 woman and man holding hands: medium skin tone, dark skin tone
+1F469 1F3FE 200D 1F91D 200D 1F468 1F3FB                ; fully-qualified     # 👩🏾‍🤝‍👨🏻 E12.0 woman and man holding hands: medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 1F91D 200D 1F468 1F3FC                ; fully-qualified     # 👩🏾‍🤝‍👨🏼 E12.0 woman and man holding hands: medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 1F91D 200D 1F468 1F3FD                ; fully-qualified     # 👩🏾‍🤝‍👨🏽 E12.0 woman and man holding hands: medium-dark skin tone, medium skin tone
+1F46B 1F3FE                                            ; fully-qualified     # 👫🏾 E12.0 woman and man holding hands: medium-dark skin tone
+1F469 1F3FE 200D 1F91D 200D 1F468 1F3FF                ; fully-qualified     # 👩🏾‍🤝‍👨🏿 E12.0 woman and man holding hands: medium-dark skin tone, dark skin tone
+1F469 1F3FF 200D 1F91D 200D 1F468 1F3FB                ; fully-qualified     # 👩🏿‍🤝‍👨🏻 E12.0 woman and man holding hands: dark skin tone, light skin tone
+1F469 1F3FF 200D 1F91D 200D 1F468 1F3FC                ; fully-qualified     # 👩🏿‍🤝‍👨🏼 E12.0 woman and man holding hands: dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 1F91D 200D 1F468 1F3FD                ; fully-qualified     # 👩🏿‍🤝‍👨🏽 E12.0 woman and man holding hands: dark skin tone, medium skin tone
+1F469 1F3FF 200D 1F91D 200D 1F468 1F3FE                ; fully-qualified     # 👩🏿‍🤝‍👨🏾 E12.0 woman and man holding hands: dark skin tone, medium-dark skin tone
+1F46B 1F3FF                                            ; fully-qualified     # 👫🏿 E12.0 woman and man holding hands: dark skin tone
+1F46C                                                  ; fully-qualified     # 👬 E1.0 men holding hands
+1F46C 1F3FB                                            ; fully-qualified     # 👬🏻 E12.0 men holding hands: light skin tone
+1F468 1F3FB 200D 1F91D 200D 1F468 1F3FC                ; fully-qualified     # 👨🏻‍🤝‍👨🏼 E12.1 men holding hands: light skin tone, medium-light skin tone
+1F468 1F3FB 200D 1F91D 200D 1F468 1F3FD                ; fully-qualified     # 👨🏻‍🤝‍👨🏽 E12.1 men holding hands: light skin tone, medium skin tone
+1F468 1F3FB 200D 1F91D 200D 1F468 1F3FE                ; fully-qualified     # 👨🏻‍🤝‍👨🏾 E12.1 men holding hands: light skin tone, medium-dark skin tone
+1F468 1F3FB 200D 1F91D 200D 1F468 1F3FF                ; fully-qualified     # 👨🏻‍🤝‍👨🏿 E12.1 men holding hands: light skin tone, dark skin tone
+1F468 1F3FC 200D 1F91D 200D 1F468 1F3FB                ; fully-qualified     # 👨🏼‍🤝‍👨🏻 E12.0 men holding hands: medium-light skin tone, light skin tone
+1F46C 1F3FC                                            ; fully-qualified     # 👬🏼 E12.0 men holding hands: medium-light skin tone
+1F468 1F3FC 200D 1F91D 200D 1F468 1F3FD                ; fully-qualified     # 👨🏼‍🤝‍👨🏽 E12.1 men holding hands: medium-light skin tone, medium skin tone
+1F468 1F3FC 200D 1F91D 200D 1F468 1F3FE                ; fully-qualified     # 👨🏼‍🤝‍👨🏾 E12.1 men holding hands: medium-light skin tone, medium-dark skin tone
+1F468 1F3FC 200D 1F91D 200D 1F468 1F3FF                ; fully-qualified     # 👨🏼‍🤝‍👨🏿 E12.1 men holding hands: medium-light skin tone, dark skin tone
+1F468 1F3FD 200D 1F91D 200D 1F468 1F3FB                ; fully-qualified     # 👨🏽‍🤝‍👨🏻 E12.0 men holding hands: medium skin tone, light skin tone
+1F468 1F3FD 200D 1F91D 200D 1F468 1F3FC                ; fully-qualified     # 👨🏽‍🤝‍👨🏼 E12.0 men holding hands: medium skin tone, medium-light skin tone
+1F46C 1F3FD                                            ; fully-qualified     # 👬🏽 E12.0 men holding hands: medium skin tone
+1F468 1F3FD 200D 1F91D 200D 1F468 1F3FE                ; fully-qualified     # 👨🏽‍🤝‍👨🏾 E12.1 men holding hands: medium skin tone, medium-dark skin tone
+1F468 1F3FD 200D 1F91D 200D 1F468 1F3FF                ; fully-qualified     # 👨🏽‍🤝‍👨🏿 E12.1 men holding hands: medium skin tone, dark skin tone
+1F468 1F3FE 200D 1F91D 200D 1F468 1F3FB                ; fully-qualified     # 👨🏾‍🤝‍👨🏻 E12.0 men holding hands: medium-dark skin tone, light skin tone
+1F468 1F3FE 200D 1F91D 200D 1F468 1F3FC                ; fully-qualified     # 👨🏾‍🤝‍👨🏼 E12.0 men holding hands: medium-dark skin tone, medium-light skin tone
+1F468 1F3FE 200D 1F91D 200D 1F468 1F3FD                ; fully-qualified     # 👨🏾‍🤝‍👨🏽 E12.0 men holding hands: medium-dark skin tone, medium skin tone
+1F46C 1F3FE                                            ; fully-qualified     # 👬🏾 E12.0 men holding hands: medium-dark skin tone
+1F468 1F3FE 200D 1F91D 200D 1F468 1F3FF                ; fully-qualified     # 👨🏾‍🤝‍👨🏿 E12.1 men holding hands: medium-dark skin tone, dark skin tone
+1F468 1F3FF 200D 1F91D 200D 1F468 1F3FB                ; fully-qualified     # 👨🏿‍🤝‍👨🏻 E12.0 men holding hands: dark skin tone, light skin tone
+1F468 1F3FF 200D 1F91D 200D 1F468 1F3FC                ; fully-qualified     # 👨🏿‍🤝‍👨🏼 E12.0 men holding hands: dark skin tone, medium-light skin tone
+1F468 1F3FF 200D 1F91D 200D 1F468 1F3FD                ; fully-qualified     # 👨🏿‍🤝‍👨🏽 E12.0 men holding hands: dark skin tone, medium skin tone
+1F468 1F3FF 200D 1F91D 200D 1F468 1F3FE                ; fully-qualified     # 👨🏿‍🤝‍👨🏾 E12.0 men holding hands: dark skin tone, medium-dark skin tone
+1F46C 1F3FF                                            ; fully-qualified     # 👬🏿 E12.0 men holding hands: dark skin tone
+1F48F                                                  ; fully-qualified     # 💏 E0.6 kiss
+1F48F 1F3FB                                            ; fully-qualified     # 💏🏻 E13.1 kiss: light skin tone
+1F48F 1F3FC                                            ; fully-qualified     # 💏🏼 E13.1 kiss: medium-light skin tone
+1F48F 1F3FD                                            ; fully-qualified     # 💏🏽 E13.1 kiss: medium skin tone
+1F48F 1F3FE                                            ; fully-qualified     # 💏🏾 E13.1 kiss: medium-dark skin tone
+1F48F 1F3FF                                            ; fully-qualified     # 💏🏿 E13.1 kiss: dark skin tone
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC ; fully-qualified     # 🧑🏻‍❤️‍💋‍🧑🏼 E13.1 kiss: person, person, light skin tone, medium-light skin tone
+1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FC      ; minimally-qualified # 🧑🏻‍❤‍💋‍🧑🏼 E13.1 kiss: person, person, light skin tone, medium-light skin tone
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD ; fully-qualified     # 🧑🏻‍❤️‍💋‍🧑🏽 E13.1 kiss: person, person, light skin tone, medium skin tone
+1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FD      ; minimally-qualified # 🧑🏻‍❤‍💋‍🧑🏽 E13.1 kiss: person, person, light skin tone, medium skin tone
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE ; fully-qualified     # 🧑🏻‍❤️‍💋‍🧑🏾 E13.1 kiss: person, person, light skin tone, medium-dark skin tone
+1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FE      ; minimally-qualified # 🧑🏻‍❤‍💋‍🧑🏾 E13.1 kiss: person, person, light skin tone, medium-dark skin tone
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF ; fully-qualified     # 🧑🏻‍❤️‍💋‍🧑🏿 E13.1 kiss: person, person, light skin tone, dark skin tone
+1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FF      ; minimally-qualified # 🧑🏻‍❤‍💋‍🧑🏿 E13.1 kiss: person, person, light skin tone, dark skin tone
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB ; fully-qualified     # 🧑🏼‍❤️‍💋‍🧑🏻 E13.1 kiss: person, person, medium-light skin tone, light skin tone
+1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FB      ; minimally-qualified # 🧑🏼‍❤‍💋‍🧑🏻 E13.1 kiss: person, person, medium-light skin tone, light skin tone
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD ; fully-qualified     # 🧑🏼‍❤️‍💋‍🧑🏽 E13.1 kiss: person, person, medium-light skin tone, medium skin tone
+1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FD      ; minimally-qualified # 🧑🏼‍❤‍💋‍🧑🏽 E13.1 kiss: person, person, medium-light skin tone, medium skin tone
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE ; fully-qualified     # 🧑🏼‍❤️‍💋‍🧑🏾 E13.1 kiss: person, person, medium-light skin tone, medium-dark skin tone
+1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FE      ; minimally-qualified # 🧑🏼‍❤‍💋‍🧑🏾 E13.1 kiss: person, person, medium-light skin tone, medium-dark skin tone
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF ; fully-qualified     # 🧑🏼‍❤️‍💋‍🧑🏿 E13.1 kiss: person, person, medium-light skin tone, dark skin tone
+1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FF      ; minimally-qualified # 🧑🏼‍❤‍💋‍🧑🏿 E13.1 kiss: person, person, medium-light skin tone, dark skin tone
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB ; fully-qualified     # 🧑🏽‍❤️‍💋‍🧑🏻 E13.1 kiss: person, person, medium skin tone, light skin tone
+1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FB      ; minimally-qualified # 🧑🏽‍❤‍💋‍🧑🏻 E13.1 kiss: person, person, medium skin tone, light skin tone
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC ; fully-qualified     # 🧑🏽‍❤️‍💋‍🧑🏼 E13.1 kiss: person, person, medium skin tone, medium-light skin tone
+1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FC      ; minimally-qualified # 🧑🏽‍❤‍💋‍🧑🏼 E13.1 kiss: person, person, medium skin tone, medium-light skin tone
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE ; fully-qualified     # 🧑🏽‍❤️‍💋‍🧑🏾 E13.1 kiss: person, person, medium skin tone, medium-dark skin tone
+1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FE      ; minimally-qualified # 🧑🏽‍❤‍💋‍🧑🏾 E13.1 kiss: person, person, medium skin tone, medium-dark skin tone
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF ; fully-qualified     # 🧑🏽‍❤️‍💋‍🧑🏿 E13.1 kiss: person, person, medium skin tone, dark skin tone
+1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FF      ; minimally-qualified # 🧑🏽‍❤‍💋‍🧑🏿 E13.1 kiss: person, person, medium skin tone, dark skin tone
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB ; fully-qualified     # 🧑🏾‍❤️‍💋‍🧑🏻 E13.1 kiss: person, person, medium-dark skin tone, light skin tone
+1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FB      ; minimally-qualified # 🧑🏾‍❤‍💋‍🧑🏻 E13.1 kiss: person, person, medium-dark skin tone, light skin tone
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC ; fully-qualified     # 🧑🏾‍❤️‍💋‍🧑🏼 E13.1 kiss: person, person, medium-dark skin tone, medium-light skin tone
+1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FC      ; minimally-qualified # 🧑🏾‍❤‍💋‍🧑🏼 E13.1 kiss: person, person, medium-dark skin tone, medium-light skin tone
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD ; fully-qualified     # 🧑🏾‍❤️‍💋‍🧑🏽 E13.1 kiss: person, person, medium-dark skin tone, medium skin tone
+1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FD      ; minimally-qualified # 🧑🏾‍❤‍💋‍🧑🏽 E13.1 kiss: person, person, medium-dark skin tone, medium skin tone
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF ; fully-qualified     # 🧑🏾‍❤️‍💋‍🧑🏿 E13.1 kiss: person, person, medium-dark skin tone, dark skin tone
+1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FF      ; minimally-qualified # 🧑🏾‍❤‍💋‍🧑🏿 E13.1 kiss: person, person, medium-dark skin tone, dark skin tone
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB ; fully-qualified     # 🧑🏿‍❤️‍💋‍🧑🏻 E13.1 kiss: person, person, dark skin tone, light skin tone
+1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FB      ; minimally-qualified # 🧑🏿‍❤‍💋‍🧑🏻 E13.1 kiss: person, person, dark skin tone, light skin tone
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC ; fully-qualified     # 🧑🏿‍❤️‍💋‍🧑🏼 E13.1 kiss: person, person, dark skin tone, medium-light skin tone
+1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FC      ; minimally-qualified # 🧑🏿‍❤‍💋‍🧑🏼 E13.1 kiss: person, person, dark skin tone, medium-light skin tone
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD ; fully-qualified     # 🧑🏿‍❤️‍💋‍🧑🏽 E13.1 kiss: person, person, dark skin tone, medium skin tone
+1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FD      ; minimally-qualified # 🧑🏿‍❤‍💋‍🧑🏽 E13.1 kiss: person, person, dark skin tone, medium skin tone
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE ; fully-qualified     # 🧑🏿‍❤️‍💋‍🧑🏾 E13.1 kiss: person, person, dark skin tone, medium-dark skin tone
+1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FE      ; minimally-qualified # 🧑🏿‍❤‍💋‍🧑🏾 E13.1 kiss: person, person, dark skin tone, medium-dark skin tone
+1F469 200D 2764 FE0F 200D 1F48B 200D 1F468             ; fully-qualified     # 👩‍❤️‍💋‍👨 E2.0 kiss: woman, man
+1F469 200D 2764 200D 1F48B 200D 1F468                  ; minimally-qualified # 👩‍❤‍💋‍👨 E2.0 kiss: woman, man
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👩🏻‍❤️‍💋‍👨🏻 E13.1 kiss: woman, man, light skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👩🏻‍❤‍💋‍👨🏻 E13.1 kiss: woman, man, light skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👩🏻‍❤️‍💋‍👨🏼 E13.1 kiss: woman, man, light skin tone, medium-light skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👩🏻‍❤‍💋‍👨🏼 E13.1 kiss: woman, man, light skin tone, medium-light skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👩🏻‍❤️‍💋‍👨🏽 E13.1 kiss: woman, man, light skin tone, medium skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👩🏻‍❤‍💋‍👨🏽 E13.1 kiss: woman, man, light skin tone, medium skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👩🏻‍❤️‍💋‍👨🏾 E13.1 kiss: woman, man, light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👩🏻‍❤‍💋‍👨🏾 E13.1 kiss: woman, man, light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👩🏻‍❤️‍💋‍👨🏿 E13.1 kiss: woman, man, light skin tone, dark skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👩🏻‍❤‍💋‍👨🏿 E13.1 kiss: woman, man, light skin tone, dark skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👩🏼‍❤️‍💋‍👨🏻 E13.1 kiss: woman, man, medium-light skin tone, light skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👩🏼‍❤‍💋‍👨🏻 E13.1 kiss: woman, man, medium-light skin tone, light skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👩🏼‍❤️‍💋‍👨🏼 E13.1 kiss: woman, man, medium-light skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👩🏼‍❤‍💋‍👨🏼 E13.1 kiss: woman, man, medium-light skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👩🏼‍❤️‍💋‍👨🏽 E13.1 kiss: woman, man, medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👩🏼‍❤‍💋‍👨🏽 E13.1 kiss: woman, man, medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👩🏼‍❤️‍💋‍👨🏾 E13.1 kiss: woman, man, medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👩🏼‍❤‍💋‍👨🏾 E13.1 kiss: woman, man, medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👩🏼‍❤️‍💋‍👨🏿 E13.1 kiss: woman, man, medium-light skin tone, dark skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👩🏼‍❤‍💋‍👨🏿 E13.1 kiss: woman, man, medium-light skin tone, dark skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👩🏽‍❤️‍💋‍👨🏻 E13.1 kiss: woman, man, medium skin tone, light skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👩🏽‍❤‍💋‍👨🏻 E13.1 kiss: woman, man, medium skin tone, light skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👩🏽‍❤️‍💋‍👨🏼 E13.1 kiss: woman, man, medium skin tone, medium-light skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👩🏽‍❤‍💋‍👨🏼 E13.1 kiss: woman, man, medium skin tone, medium-light skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👩🏽‍❤️‍💋‍👨🏽 E13.1 kiss: woman, man, medium skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👩🏽‍❤‍💋‍👨🏽 E13.1 kiss: woman, man, medium skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👩🏽‍❤️‍💋‍👨🏾 E13.1 kiss: woman, man, medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👩🏽‍❤‍💋‍👨🏾 E13.1 kiss: woman, man, medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👩🏽‍❤️‍💋‍👨🏿 E13.1 kiss: woman, man, medium skin tone, dark skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👩🏽‍❤‍💋‍👨🏿 E13.1 kiss: woman, man, medium skin tone, dark skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👩🏾‍❤️‍💋‍👨🏻 E13.1 kiss: woman, man, medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👩🏾‍❤‍💋‍👨🏻 E13.1 kiss: woman, man, medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👩🏾‍❤️‍💋‍👨🏼 E13.1 kiss: woman, man, medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👩🏾‍❤‍💋‍👨🏼 E13.1 kiss: woman, man, medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👩🏾‍❤️‍💋‍👨🏽 E13.1 kiss: woman, man, medium-dark skin tone, medium skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👩🏾‍❤‍💋‍👨🏽 E13.1 kiss: woman, man, medium-dark skin tone, medium skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👩🏾‍❤️‍💋‍👨🏾 E13.1 kiss: woman, man, medium-dark skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👩🏾‍❤‍💋‍👨🏾 E13.1 kiss: woman, man, medium-dark skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👩🏾‍❤️‍💋‍👨🏿 E13.1 kiss: woman, man, medium-dark skin tone, dark skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👩🏾‍❤‍💋‍👨🏿 E13.1 kiss: woman, man, medium-dark skin tone, dark skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👩🏿‍❤️‍💋‍👨🏻 E13.1 kiss: woman, man, dark skin tone, light skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👩🏿‍❤‍💋‍👨🏻 E13.1 kiss: woman, man, dark skin tone, light skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👩🏿‍❤️‍💋‍👨🏼 E13.1 kiss: woman, man, dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👩🏿‍❤‍💋‍👨🏼 E13.1 kiss: woman, man, dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👩🏿‍❤️‍💋‍👨🏽 E13.1 kiss: woman, man, dark skin tone, medium skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👩🏿‍❤‍💋‍👨🏽 E13.1 kiss: woman, man, dark skin tone, medium skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👩🏿‍❤️‍💋‍👨🏾 E13.1 kiss: woman, man, dark skin tone, medium-dark skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👩🏿‍❤‍💋‍👨🏾 E13.1 kiss: woman, man, dark skin tone, medium-dark skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👩🏿‍❤️‍💋‍👨🏿 E13.1 kiss: woman, man, dark skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👩🏿‍❤‍💋‍👨🏿 E13.1 kiss: woman, man, dark skin tone
+1F468 200D 2764 FE0F 200D 1F48B 200D 1F468             ; fully-qualified     # 👨‍❤️‍💋‍👨 E2.0 kiss: man, man
+1F468 200D 2764 200D 1F48B 200D 1F468                  ; minimally-qualified # 👨‍❤‍💋‍👨 E2.0 kiss: man, man
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👨🏻‍❤️‍💋‍👨🏻 E13.1 kiss: man, man, light skin tone
+1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👨🏻‍❤‍💋‍👨🏻 E13.1 kiss: man, man, light skin tone
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👨🏻‍❤️‍💋‍👨🏼 E13.1 kiss: man, man, light skin tone, medium-light skin tone
+1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👨🏻‍❤‍💋‍👨🏼 E13.1 kiss: man, man, light skin tone, medium-light skin tone
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👨🏻‍❤️‍💋‍👨🏽 E13.1 kiss: man, man, light skin tone, medium skin tone
+1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👨🏻‍❤‍💋‍👨🏽 E13.1 kiss: man, man, light skin tone, medium skin tone
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👨🏻‍❤️‍💋‍👨🏾 E13.1 kiss: man, man, light skin tone, medium-dark skin tone
+1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👨🏻‍❤‍💋‍👨🏾 E13.1 kiss: man, man, light skin tone, medium-dark skin tone
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👨🏻‍❤️‍💋‍👨🏿 E13.1 kiss: man, man, light skin tone, dark skin tone
+1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👨🏻‍❤‍💋‍👨🏿 E13.1 kiss: man, man, light skin tone, dark skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👨🏼‍❤️‍💋‍👨🏻 E13.1 kiss: man, man, medium-light skin tone, light skin tone
+1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👨🏼‍❤‍💋‍👨🏻 E13.1 kiss: man, man, medium-light skin tone, light skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👨🏼‍❤️‍💋‍👨🏼 E13.1 kiss: man, man, medium-light skin tone
+1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👨🏼‍❤‍💋‍👨🏼 E13.1 kiss: man, man, medium-light skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👨🏼‍❤️‍💋‍👨🏽 E13.1 kiss: man, man, medium-light skin tone, medium skin tone
+1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👨🏼‍❤‍💋‍👨🏽 E13.1 kiss: man, man, medium-light skin tone, medium skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👨🏼‍❤️‍💋‍👨🏾 E13.1 kiss: man, man, medium-light skin tone, medium-dark skin tone
+1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👨🏼‍❤‍💋‍👨🏾 E13.1 kiss: man, man, medium-light skin tone, medium-dark skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👨🏼‍❤️‍💋‍👨🏿 E13.1 kiss: man, man, medium-light skin tone, dark skin tone
+1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👨🏼‍❤‍💋‍👨🏿 E13.1 kiss: man, man, medium-light skin tone, dark skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👨🏽‍❤️‍💋‍👨🏻 E13.1 kiss: man, man, medium skin tone, light skin tone
+1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👨🏽‍❤‍💋‍👨🏻 E13.1 kiss: man, man, medium skin tone, light skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👨🏽‍❤️‍💋‍👨🏼 E13.1 kiss: man, man, medium skin tone, medium-light skin tone
+1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👨🏽‍❤‍💋‍👨🏼 E13.1 kiss: man, man, medium skin tone, medium-light skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👨🏽‍❤️‍💋‍👨🏽 E13.1 kiss: man, man, medium skin tone
+1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👨🏽‍❤‍💋‍👨🏽 E13.1 kiss: man, man, medium skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👨🏽‍❤️‍💋‍👨🏾 E13.1 kiss: man, man, medium skin tone, medium-dark skin tone
+1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👨🏽‍❤‍💋‍👨🏾 E13.1 kiss: man, man, medium skin tone, medium-dark skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👨🏽‍❤️‍💋‍👨🏿 E13.1 kiss: man, man, medium skin tone, dark skin tone
+1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👨🏽‍❤‍💋‍👨🏿 E13.1 kiss: man, man, medium skin tone, dark skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👨🏾‍❤️‍💋‍👨🏻 E13.1 kiss: man, man, medium-dark skin tone, light skin tone
+1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👨🏾‍❤‍💋‍👨🏻 E13.1 kiss: man, man, medium-dark skin tone, light skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👨🏾‍❤️‍💋‍👨🏼 E13.1 kiss: man, man, medium-dark skin tone, medium-light skin tone
+1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👨🏾‍❤‍💋‍👨🏼 E13.1 kiss: man, man, medium-dark skin tone, medium-light skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👨🏾‍❤️‍💋‍👨🏽 E13.1 kiss: man, man, medium-dark skin tone, medium skin tone
+1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👨🏾‍❤‍💋‍👨🏽 E13.1 kiss: man, man, medium-dark skin tone, medium skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👨🏾‍❤️‍💋‍👨🏾 E13.1 kiss: man, man, medium-dark skin tone
+1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👨🏾‍❤‍💋‍👨🏾 E13.1 kiss: man, man, medium-dark skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👨🏾‍❤️‍💋‍👨🏿 E13.1 kiss: man, man, medium-dark skin tone, dark skin tone
+1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👨🏾‍❤‍💋‍👨🏿 E13.1 kiss: man, man, medium-dark skin tone, dark skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB ; fully-qualified     # 👨🏿‍❤️‍💋‍👨🏻 E13.1 kiss: man, man, dark skin tone, light skin tone
+1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FB      ; minimally-qualified # 👨🏿‍❤‍💋‍👨🏻 E13.1 kiss: man, man, dark skin tone, light skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC ; fully-qualified     # 👨🏿‍❤️‍💋‍👨🏼 E13.1 kiss: man, man, dark skin tone, medium-light skin tone
+1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FC      ; minimally-qualified # 👨🏿‍❤‍💋‍👨🏼 E13.1 kiss: man, man, dark skin tone, medium-light skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD ; fully-qualified     # 👨🏿‍❤️‍💋‍👨🏽 E13.1 kiss: man, man, dark skin tone, medium skin tone
+1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FD      ; minimally-qualified # 👨🏿‍❤‍💋‍👨🏽 E13.1 kiss: man, man, dark skin tone, medium skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE ; fully-qualified     # 👨🏿‍❤️‍💋‍👨🏾 E13.1 kiss: man, man, dark skin tone, medium-dark skin tone
+1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FE      ; minimally-qualified # 👨🏿‍❤‍💋‍👨🏾 E13.1 kiss: man, man, dark skin tone, medium-dark skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF ; fully-qualified     # 👨🏿‍❤️‍💋‍👨🏿 E13.1 kiss: man, man, dark skin tone
+1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FF      ; minimally-qualified # 👨🏿‍❤‍💋‍👨🏿 E13.1 kiss: man, man, dark skin tone
+1F469 200D 2764 FE0F 200D 1F48B 200D 1F469             ; fully-qualified     # 👩‍❤️‍💋‍👩 E2.0 kiss: woman, woman
+1F469 200D 2764 200D 1F48B 200D 1F469                  ; minimally-qualified # 👩‍❤‍💋‍👩 E2.0 kiss: woman, woman
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB ; fully-qualified     # 👩🏻‍❤️‍💋‍👩🏻 E13.1 kiss: woman, woman, light skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FB      ; minimally-qualified # 👩🏻‍❤‍💋‍👩🏻 E13.1 kiss: woman, woman, light skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC ; fully-qualified     # 👩🏻‍❤️‍💋‍👩🏼 E13.1 kiss: woman, woman, light skin tone, medium-light skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FC      ; minimally-qualified # 👩🏻‍❤‍💋‍👩🏼 E13.1 kiss: woman, woman, light skin tone, medium-light skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD ; fully-qualified     # 👩🏻‍❤️‍💋‍👩🏽 E13.1 kiss: woman, woman, light skin tone, medium skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FD      ; minimally-qualified # 👩🏻‍❤‍💋‍👩🏽 E13.1 kiss: woman, woman, light skin tone, medium skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE ; fully-qualified     # 👩🏻‍❤️‍💋‍👩🏾 E13.1 kiss: woman, woman, light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FE      ; minimally-qualified # 👩🏻‍❤‍💋‍👩🏾 E13.1 kiss: woman, woman, light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF ; fully-qualified     # 👩🏻‍❤️‍💋‍👩🏿 E13.1 kiss: woman, woman, light skin tone, dark skin tone
+1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FF      ; minimally-qualified # 👩🏻‍❤‍💋‍👩🏿 E13.1 kiss: woman, woman, light skin tone, dark skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB ; fully-qualified     # 👩🏼‍❤️‍💋‍👩🏻 E13.1 kiss: woman, woman, medium-light skin tone, light skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FB      ; minimally-qualified # 👩🏼‍❤‍💋‍👩🏻 E13.1 kiss: woman, woman, medium-light skin tone, light skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC ; fully-qualified     # 👩🏼‍❤️‍💋‍👩🏼 E13.1 kiss: woman, woman, medium-light skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FC      ; minimally-qualified # 👩🏼‍❤‍💋‍👩🏼 E13.1 kiss: woman, woman, medium-light skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD ; fully-qualified     # 👩🏼‍❤️‍💋‍👩🏽 E13.1 kiss: woman, woman, medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FD      ; minimally-qualified # 👩🏼‍❤‍💋‍👩🏽 E13.1 kiss: woman, woman, medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE ; fully-qualified     # 👩🏼‍❤️‍💋‍👩🏾 E13.1 kiss: woman, woman, medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FE      ; minimally-qualified # 👩🏼‍❤‍💋‍👩🏾 E13.1 kiss: woman, woman, medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF ; fully-qualified     # 👩🏼‍❤️‍💋‍👩🏿 E13.1 kiss: woman, woman, medium-light skin tone, dark skin tone
+1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FF      ; minimally-qualified # 👩🏼‍❤‍💋‍👩🏿 E13.1 kiss: woman, woman, medium-light skin tone, dark skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB ; fully-qualified     # 👩🏽‍❤️‍💋‍👩🏻 E13.1 kiss: woman, woman, medium skin tone, light skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FB      ; minimally-qualified # 👩🏽‍❤‍💋‍👩🏻 E13.1 kiss: woman, woman, medium skin tone, light skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC ; fully-qualified     # 👩🏽‍❤️‍💋‍👩🏼 E13.1 kiss: woman, woman, medium skin tone, medium-light skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FC      ; minimally-qualified # 👩🏽‍❤‍💋‍👩🏼 E13.1 kiss: woman, woman, medium skin tone, medium-light skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD ; fully-qualified     # 👩🏽‍❤️‍💋‍👩🏽 E13.1 kiss: woman, woman, medium skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FD      ; minimally-qualified # 👩🏽‍❤‍💋‍👩🏽 E13.1 kiss: woman, woman, medium skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE ; fully-qualified     # 👩🏽‍❤️‍💋‍👩🏾 E13.1 kiss: woman, woman, medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FE      ; minimally-qualified # 👩🏽‍❤‍💋‍👩🏾 E13.1 kiss: woman, woman, medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF ; fully-qualified     # 👩🏽‍❤️‍💋‍👩🏿 E13.1 kiss: woman, woman, medium skin tone, dark skin tone
+1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FF      ; minimally-qualified # 👩🏽‍❤‍💋‍👩🏿 E13.1 kiss: woman, woman, medium skin tone, dark skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB ; fully-qualified     # 👩🏾‍❤️‍💋‍👩🏻 E13.1 kiss: woman, woman, medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FB      ; minimally-qualified # 👩🏾‍❤‍💋‍👩🏻 E13.1 kiss: woman, woman, medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC ; fully-qualified     # 👩🏾‍❤️‍💋‍👩🏼 E13.1 kiss: woman, woman, medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FC      ; minimally-qualified # 👩🏾‍❤‍💋‍👩🏼 E13.1 kiss: woman, woman, medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD ; fully-qualified     # 👩🏾‍❤️‍💋‍👩🏽 E13.1 kiss: woman, woman, medium-dark skin tone, medium skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FD      ; minimally-qualified # 👩🏾‍❤‍💋‍👩🏽 E13.1 kiss: woman, woman, medium-dark skin tone, medium skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE ; fully-qualified     # 👩🏾‍❤️‍💋‍👩🏾 E13.1 kiss: woman, woman, medium-dark skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FE      ; minimally-qualified # 👩🏾‍❤‍💋‍👩🏾 E13.1 kiss: woman, woman, medium-dark skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF ; fully-qualified     # 👩🏾‍❤️‍💋‍👩🏿 E13.1 kiss: woman, woman, medium-dark skin tone, dark skin tone
+1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FF      ; minimally-qualified # 👩🏾‍❤‍💋‍👩🏿 E13.1 kiss: woman, woman, medium-dark skin tone, dark skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB ; fully-qualified     # 👩🏿‍❤️‍💋‍👩🏻 E13.1 kiss: woman, woman, dark skin tone, light skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FB      ; minimally-qualified # 👩🏿‍❤‍💋‍👩🏻 E13.1 kiss: woman, woman, dark skin tone, light skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC ; fully-qualified     # 👩🏿‍❤️‍💋‍👩🏼 E13.1 kiss: woman, woman, dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FC      ; minimally-qualified # 👩🏿‍❤‍💋‍👩🏼 E13.1 kiss: woman, woman, dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD ; fully-qualified     # 👩🏿‍❤️‍💋‍👩🏽 E13.1 kiss: woman, woman, dark skin tone, medium skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FD      ; minimally-qualified # 👩🏿‍❤‍💋‍👩🏽 E13.1 kiss: woman, woman, dark skin tone, medium skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE ; fully-qualified     # 👩🏿‍❤️‍💋‍👩🏾 E13.1 kiss: woman, woman, dark skin tone, medium-dark skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FE      ; minimally-qualified # 👩🏿‍❤‍💋‍👩🏾 E13.1 kiss: woman, woman, dark skin tone, medium-dark skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF ; fully-qualified     # 👩🏿‍❤️‍💋‍👩🏿 E13.1 kiss: woman, woman, dark skin tone
+1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FF      ; minimally-qualified # 👩🏿‍❤‍💋‍👩🏿 E13.1 kiss: woman, woman, dark skin tone
+1F491                                                  ; fully-qualified     # 💑 E0.6 couple with heart
+1F491 1F3FB                                            ; fully-qualified     # 💑🏻 E13.1 couple with heart: light skin tone
+1F491 1F3FC                                            ; fully-qualified     # 💑🏼 E13.1 couple with heart: medium-light skin tone
+1F491 1F3FD                                            ; fully-qualified     # 💑🏽 E13.1 couple with heart: medium skin tone
+1F491 1F3FE                                            ; fully-qualified     # 💑🏾 E13.1 couple with heart: medium-dark skin tone
+1F491 1F3FF                                            ; fully-qualified     # 💑🏿 E13.1 couple with heart: dark skin tone
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FC            ; fully-qualified     # 🧑🏻‍❤️‍🧑🏼 E13.1 couple with heart: person, person, light skin tone, medium-light skin tone
+1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FC                 ; minimally-qualified # 🧑🏻‍❤‍🧑🏼 E13.1 couple with heart: person, person, light skin tone, medium-light skin tone
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FD            ; fully-qualified     # 🧑🏻‍❤️‍🧑🏽 E13.1 couple with heart: person, person, light skin tone, medium skin tone
+1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FD                 ; minimally-qualified # 🧑🏻‍❤‍🧑🏽 E13.1 couple with heart: person, person, light skin tone, medium skin tone
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FE            ; fully-qualified     # 🧑🏻‍❤️‍🧑🏾 E13.1 couple with heart: person, person, light skin tone, medium-dark skin tone
+1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FE                 ; minimally-qualified # 🧑🏻‍❤‍🧑🏾 E13.1 couple with heart: person, person, light skin tone, medium-dark skin tone
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FF            ; fully-qualified     # 🧑🏻‍❤️‍🧑🏿 E13.1 couple with heart: person, person, light skin tone, dark skin tone
+1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FF                 ; minimally-qualified # 🧑🏻‍❤‍🧑🏿 E13.1 couple with heart: person, person, light skin tone, dark skin tone
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FB            ; fully-qualified     # 🧑🏼‍❤️‍🧑🏻 E13.1 couple with heart: person, person, medium-light skin tone, light skin tone
+1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FB                 ; minimally-qualified # 🧑🏼‍❤‍🧑🏻 E13.1 couple with heart: person, person, medium-light skin tone, light skin tone
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FD            ; fully-qualified     # 🧑🏼‍❤️‍🧑🏽 E13.1 couple with heart: person, person, medium-light skin tone, medium skin tone
+1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FD                 ; minimally-qualified # 🧑🏼‍❤‍🧑🏽 E13.1 couple with heart: person, person, medium-light skin tone, medium skin tone
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FE            ; fully-qualified     # 🧑🏼‍❤️‍🧑🏾 E13.1 couple with heart: person, person, medium-light skin tone, medium-dark skin tone
+1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FE                 ; minimally-qualified # 🧑🏼‍❤‍🧑🏾 E13.1 couple with heart: person, person, medium-light skin tone, medium-dark skin tone
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FF            ; fully-qualified     # 🧑🏼‍❤️‍🧑🏿 E13.1 couple with heart: person, person, medium-light skin tone, dark skin tone
+1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FF                 ; minimally-qualified # 🧑🏼‍❤‍🧑🏿 E13.1 couple with heart: person, person, medium-light skin tone, dark skin tone
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FB            ; fully-qualified     # 🧑🏽‍❤️‍🧑🏻 E13.1 couple with heart: person, person, medium skin tone, light skin tone
+1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FB                 ; minimally-qualified # 🧑🏽‍❤‍🧑🏻 E13.1 couple with heart: person, person, medium skin tone, light skin tone
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FC            ; fully-qualified     # 🧑🏽‍❤️‍🧑🏼 E13.1 couple with heart: person, person, medium skin tone, medium-light skin tone
+1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FC                 ; minimally-qualified # 🧑🏽‍❤‍🧑🏼 E13.1 couple with heart: person, person, medium skin tone, medium-light skin tone
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FE            ; fully-qualified     # 🧑🏽‍❤️‍🧑🏾 E13.1 couple with heart: person, person, medium skin tone, medium-dark skin tone
+1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FE                 ; minimally-qualified # 🧑🏽‍❤‍🧑🏾 E13.1 couple with heart: person, person, medium skin tone, medium-dark skin tone
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FF            ; fully-qualified     # 🧑🏽‍❤️‍🧑🏿 E13.1 couple with heart: person, person, medium skin tone, dark skin tone
+1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FF                 ; minimally-qualified # 🧑🏽‍❤‍🧑🏿 E13.1 couple with heart: person, person, medium skin tone, dark skin tone
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FB            ; fully-qualified     # 🧑🏾‍❤️‍🧑🏻 E13.1 couple with heart: person, person, medium-dark skin tone, light skin tone
+1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FB                 ; minimally-qualified # 🧑🏾‍❤‍🧑🏻 E13.1 couple with heart: person, person, medium-dark skin tone, light skin tone
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FC            ; fully-qualified     # 🧑🏾‍❤️‍🧑🏼 E13.1 couple with heart: person, person, medium-dark skin tone, medium-light skin tone
+1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FC                 ; minimally-qualified # 🧑🏾‍❤‍🧑🏼 E13.1 couple with heart: person, person, medium-dark skin tone, medium-light skin tone
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FD            ; fully-qualified     # 🧑🏾‍❤️‍🧑🏽 E13.1 couple with heart: person, person, medium-dark skin tone, medium skin tone
+1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FD                 ; minimally-qualified # 🧑🏾‍❤‍🧑🏽 E13.1 couple with heart: person, person, medium-dark skin tone, medium skin tone
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FF            ; fully-qualified     # 🧑🏾‍❤️‍🧑🏿 E13.1 couple with heart: person, person, medium-dark skin tone, dark skin tone
+1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FF                 ; minimally-qualified # 🧑🏾‍❤‍🧑🏿 E13.1 couple with heart: person, person, medium-dark skin tone, dark skin tone
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FB            ; fully-qualified     # 🧑🏿‍❤️‍🧑🏻 E13.1 couple with heart: person, person, dark skin tone, light skin tone
+1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FB                 ; minimally-qualified # 🧑🏿‍❤‍🧑🏻 E13.1 couple with heart: person, person, dark skin tone, light skin tone
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FC            ; fully-qualified     # 🧑🏿‍❤️‍🧑🏼 E13.1 couple with heart: person, person, dark skin tone, medium-light skin tone
+1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FC                 ; minimally-qualified # 🧑🏿‍❤‍🧑🏼 E13.1 couple with heart: person, person, dark skin tone, medium-light skin tone
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FD            ; fully-qualified     # 🧑🏿‍❤️‍🧑🏽 E13.1 couple with heart: person, person, dark skin tone, medium skin tone
+1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FD                 ; minimally-qualified # 🧑🏿‍❤‍🧑🏽 E13.1 couple with heart: person, person, dark skin tone, medium skin tone
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FE            ; fully-qualified     # 🧑🏿‍❤️‍🧑🏾 E13.1 couple with heart: person, person, dark skin tone, medium-dark skin tone
+1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FE                 ; minimally-qualified # 🧑🏿‍❤‍🧑🏾 E13.1 couple with heart: person, person, dark skin tone, medium-dark skin tone
+1F469 200D 2764 FE0F 200D 1F468                        ; fully-qualified     # 👩‍❤️‍👨 E2.0 couple with heart: woman, man
+1F469 200D 2764 200D 1F468                             ; minimally-qualified # 👩‍❤‍👨 E2.0 couple with heart: woman, man
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👩🏻‍❤️‍👨🏻 E13.1 couple with heart: woman, man, light skin tone
+1F469 1F3FB 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👩🏻‍❤‍👨🏻 E13.1 couple with heart: woman, man, light skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👩🏻‍❤️‍👨🏼 E13.1 couple with heart: woman, man, light skin tone, medium-light skin tone
+1F469 1F3FB 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👩🏻‍❤‍👨🏼 E13.1 couple with heart: woman, man, light skin tone, medium-light skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👩🏻‍❤️‍👨🏽 E13.1 couple with heart: woman, man, light skin tone, medium skin tone
+1F469 1F3FB 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👩🏻‍❤‍👨🏽 E13.1 couple with heart: woman, man, light skin tone, medium skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👩🏻‍❤️‍👨🏾 E13.1 couple with heart: woman, man, light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👩🏻‍❤‍👨🏾 E13.1 couple with heart: woman, man, light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👩🏻‍❤️‍👨🏿 E13.1 couple with heart: woman, man, light skin tone, dark skin tone
+1F469 1F3FB 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👩🏻‍❤‍👨🏿 E13.1 couple with heart: woman, man, light skin tone, dark skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👩🏼‍❤️‍👨🏻 E13.1 couple with heart: woman, man, medium-light skin tone, light skin tone
+1F469 1F3FC 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👩🏼‍❤‍👨🏻 E13.1 couple with heart: woman, man, medium-light skin tone, light skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👩🏼‍❤️‍👨🏼 E13.1 couple with heart: woman, man, medium-light skin tone
+1F469 1F3FC 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👩🏼‍❤‍👨🏼 E13.1 couple with heart: woman, man, medium-light skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👩🏼‍❤️‍👨🏽 E13.1 couple with heart: woman, man, medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👩🏼‍❤‍👨🏽 E13.1 couple with heart: woman, man, medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👩🏼‍❤️‍👨🏾 E13.1 couple with heart: woman, man, medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👩🏼‍❤‍👨🏾 E13.1 couple with heart: woman, man, medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👩🏼‍❤️‍👨🏿 E13.1 couple with heart: woman, man, medium-light skin tone, dark skin tone
+1F469 1F3FC 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👩🏼‍❤‍👨🏿 E13.1 couple with heart: woman, man, medium-light skin tone, dark skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👩🏽‍❤️‍👨🏻 E13.1 couple with heart: woman, man, medium skin tone, light skin tone
+1F469 1F3FD 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👩🏽‍❤‍👨🏻 E13.1 couple with heart: woman, man, medium skin tone, light skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👩🏽‍❤️‍👨🏼 E13.1 couple with heart: woman, man, medium skin tone, medium-light skin tone
+1F469 1F3FD 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👩🏽‍❤‍👨🏼 E13.1 couple with heart: woman, man, medium skin tone, medium-light skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👩🏽‍❤️‍👨🏽 E13.1 couple with heart: woman, man, medium skin tone
+1F469 1F3FD 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👩🏽‍❤‍👨🏽 E13.1 couple with heart: woman, man, medium skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👩🏽‍❤️‍👨🏾 E13.1 couple with heart: woman, man, medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👩🏽‍❤‍👨🏾 E13.1 couple with heart: woman, man, medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👩🏽‍❤️‍👨🏿 E13.1 couple with heart: woman, man, medium skin tone, dark skin tone
+1F469 1F3FD 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👩🏽‍❤‍👨🏿 E13.1 couple with heart: woman, man, medium skin tone, dark skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👩🏾‍❤️‍👨🏻 E13.1 couple with heart: woman, man, medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👩🏾‍❤‍👨🏻 E13.1 couple with heart: woman, man, medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👩🏾‍❤️‍👨🏼 E13.1 couple with heart: woman, man, medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👩🏾‍❤‍👨🏼 E13.1 couple with heart: woman, man, medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👩🏾‍❤️‍👨🏽 E13.1 couple with heart: woman, man, medium-dark skin tone, medium skin tone
+1F469 1F3FE 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👩🏾‍❤‍👨🏽 E13.1 couple with heart: woman, man, medium-dark skin tone, medium skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👩🏾‍❤️‍👨🏾 E13.1 couple with heart: woman, man, medium-dark skin tone
+1F469 1F3FE 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👩🏾‍❤‍👨🏾 E13.1 couple with heart: woman, man, medium-dark skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👩🏾‍❤️‍👨🏿 E13.1 couple with heart: woman, man, medium-dark skin tone, dark skin tone
+1F469 1F3FE 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👩🏾‍❤‍👨🏿 E13.1 couple with heart: woman, man, medium-dark skin tone, dark skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👩🏿‍❤️‍👨🏻 E13.1 couple with heart: woman, man, dark skin tone, light skin tone
+1F469 1F3FF 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👩🏿‍❤‍👨🏻 E13.1 couple with heart: woman, man, dark skin tone, light skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👩🏿‍❤️‍👨🏼 E13.1 couple with heart: woman, man, dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👩🏿‍❤‍👨🏼 E13.1 couple with heart: woman, man, dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👩🏿‍❤️‍👨🏽 E13.1 couple with heart: woman, man, dark skin tone, medium skin tone
+1F469 1F3FF 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👩🏿‍❤‍👨🏽 E13.1 couple with heart: woman, man, dark skin tone, medium skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👩🏿‍❤️‍👨🏾 E13.1 couple with heart: woman, man, dark skin tone, medium-dark skin tone
+1F469 1F3FF 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👩🏿‍❤‍👨🏾 E13.1 couple with heart: woman, man, dark skin tone, medium-dark skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👩🏿‍❤️‍👨🏿 E13.1 couple with heart: woman, man, dark skin tone
+1F469 1F3FF 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👩🏿‍❤‍👨🏿 E13.1 couple with heart: woman, man, dark skin tone
+1F468 200D 2764 FE0F 200D 1F468                        ; fully-qualified     # 👨‍❤️‍👨 E2.0 couple with heart: man, man
+1F468 200D 2764 200D 1F468                             ; minimally-qualified # 👨‍❤‍👨 E2.0 couple with heart: man, man
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👨🏻‍❤️‍👨🏻 E13.1 couple with heart: man, man, light skin tone
+1F468 1F3FB 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👨🏻‍❤‍👨🏻 E13.1 couple with heart: man, man, light skin tone
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👨🏻‍❤️‍👨🏼 E13.1 couple with heart: man, man, light skin tone, medium-light skin tone
+1F468 1F3FB 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👨🏻‍❤‍👨🏼 E13.1 couple with heart: man, man, light skin tone, medium-light skin tone
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👨🏻‍❤️‍👨🏽 E13.1 couple with heart: man, man, light skin tone, medium skin tone
+1F468 1F3FB 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👨🏻‍❤‍👨🏽 E13.1 couple with heart: man, man, light skin tone, medium skin tone
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👨🏻‍❤️‍👨🏾 E13.1 couple with heart: man, man, light skin tone, medium-dark skin tone
+1F468 1F3FB 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👨🏻‍❤‍👨🏾 E13.1 couple with heart: man, man, light skin tone, medium-dark skin tone
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👨🏻‍❤️‍👨🏿 E13.1 couple with heart: man, man, light skin tone, dark skin tone
+1F468 1F3FB 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👨🏻‍❤‍👨🏿 E13.1 couple with heart: man, man, light skin tone, dark skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👨🏼‍❤️‍👨🏻 E13.1 couple with heart: man, man, medium-light skin tone, light skin tone
+1F468 1F3FC 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👨🏼‍❤‍👨🏻 E13.1 couple with heart: man, man, medium-light skin tone, light skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👨🏼‍❤️‍👨🏼 E13.1 couple with heart: man, man, medium-light skin tone
+1F468 1F3FC 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👨🏼‍❤‍👨🏼 E13.1 couple with heart: man, man, medium-light skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👨🏼‍❤️‍👨🏽 E13.1 couple with heart: man, man, medium-light skin tone, medium skin tone
+1F468 1F3FC 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👨🏼‍❤‍👨🏽 E13.1 couple with heart: man, man, medium-light skin tone, medium skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👨🏼‍❤️‍👨🏾 E13.1 couple with heart: man, man, medium-light skin tone, medium-dark skin tone
+1F468 1F3FC 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👨🏼‍❤‍👨🏾 E13.1 couple with heart: man, man, medium-light skin tone, medium-dark skin tone
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👨🏼‍❤️‍👨🏿 E13.1 couple with heart: man, man, medium-light skin tone, dark skin tone
+1F468 1F3FC 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👨🏼‍❤‍👨🏿 E13.1 couple with heart: man, man, medium-light skin tone, dark skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👨🏽‍❤️‍👨🏻 E13.1 couple with heart: man, man, medium skin tone, light skin tone
+1F468 1F3FD 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👨🏽‍❤‍👨🏻 E13.1 couple with heart: man, man, medium skin tone, light skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👨🏽‍❤️‍👨🏼 E13.1 couple with heart: man, man, medium skin tone, medium-light skin tone
+1F468 1F3FD 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👨🏽‍❤‍👨🏼 E13.1 couple with heart: man, man, medium skin tone, medium-light skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👨🏽‍❤️‍👨🏽 E13.1 couple with heart: man, man, medium skin tone
+1F468 1F3FD 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👨🏽‍❤‍👨🏽 E13.1 couple with heart: man, man, medium skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👨🏽‍❤️‍👨🏾 E13.1 couple with heart: man, man, medium skin tone, medium-dark skin tone
+1F468 1F3FD 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👨🏽‍❤‍👨🏾 E13.1 couple with heart: man, man, medium skin tone, medium-dark skin tone
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👨🏽‍❤️‍👨🏿 E13.1 couple with heart: man, man, medium skin tone, dark skin tone
+1F468 1F3FD 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👨🏽‍❤‍👨🏿 E13.1 couple with heart: man, man, medium skin tone, dark skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👨🏾‍❤️‍👨🏻 E13.1 couple with heart: man, man, medium-dark skin tone, light skin tone
+1F468 1F3FE 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👨🏾‍❤‍👨🏻 E13.1 couple with heart: man, man, medium-dark skin tone, light skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👨🏾‍❤️‍👨🏼 E13.1 couple with heart: man, man, medium-dark skin tone, medium-light skin tone
+1F468 1F3FE 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👨🏾‍❤‍👨🏼 E13.1 couple with heart: man, man, medium-dark skin tone, medium-light skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👨🏾‍❤️‍👨🏽 E13.1 couple with heart: man, man, medium-dark skin tone, medium skin tone
+1F468 1F3FE 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👨🏾‍❤‍👨🏽 E13.1 couple with heart: man, man, medium-dark skin tone, medium skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👨🏾‍❤️‍👨🏾 E13.1 couple with heart: man, man, medium-dark skin tone
+1F468 1F3FE 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👨🏾‍❤‍👨🏾 E13.1 couple with heart: man, man, medium-dark skin tone
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👨🏾‍❤️‍👨🏿 E13.1 couple with heart: man, man, medium-dark skin tone, dark skin tone
+1F468 1F3FE 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👨🏾‍❤‍👨🏿 E13.1 couple with heart: man, man, medium-dark skin tone, dark skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FB            ; fully-qualified     # 👨🏿‍❤️‍👨🏻 E13.1 couple with heart: man, man, dark skin tone, light skin tone
+1F468 1F3FF 200D 2764 200D 1F468 1F3FB                 ; minimally-qualified # 👨🏿‍❤‍👨🏻 E13.1 couple with heart: man, man, dark skin tone, light skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FC            ; fully-qualified     # 👨🏿‍❤️‍👨🏼 E13.1 couple with heart: man, man, dark skin tone, medium-light skin tone
+1F468 1F3FF 200D 2764 200D 1F468 1F3FC                 ; minimally-qualified # 👨🏿‍❤‍👨🏼 E13.1 couple with heart: man, man, dark skin tone, medium-light skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FD            ; fully-qualified     # 👨🏿‍❤️‍👨🏽 E13.1 couple with heart: man, man, dark skin tone, medium skin tone
+1F468 1F3FF 200D 2764 200D 1F468 1F3FD                 ; minimally-qualified # 👨🏿‍❤‍👨🏽 E13.1 couple with heart: man, man, dark skin tone, medium skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FE            ; fully-qualified     # 👨🏿‍❤️‍👨🏾 E13.1 couple with heart: man, man, dark skin tone, medium-dark skin tone
+1F468 1F3FF 200D 2764 200D 1F468 1F3FE                 ; minimally-qualified # 👨🏿‍❤‍👨🏾 E13.1 couple with heart: man, man, dark skin tone, medium-dark skin tone
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FF            ; fully-qualified     # 👨🏿‍❤️‍👨🏿 E13.1 couple with heart: man, man, dark skin tone
+1F468 1F3FF 200D 2764 200D 1F468 1F3FF                 ; minimally-qualified # 👨🏿‍❤‍👨🏿 E13.1 couple with heart: man, man, dark skin tone
+1F469 200D 2764 FE0F 200D 1F469                        ; fully-qualified     # 👩‍❤️‍👩 E2.0 couple with heart: woman, woman
+1F469 200D 2764 200D 1F469                             ; minimally-qualified # 👩‍❤‍👩 E2.0 couple with heart: woman, woman
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FB            ; fully-qualified     # 👩🏻‍❤️‍👩🏻 E13.1 couple with heart: woman, woman, light skin tone
+1F469 1F3FB 200D 2764 200D 1F469 1F3FB                 ; minimally-qualified # 👩🏻‍❤‍👩🏻 E13.1 couple with heart: woman, woman, light skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FC            ; fully-qualified     # 👩🏻‍❤️‍👩🏼 E13.1 couple with heart: woman, woman, light skin tone, medium-light skin tone
+1F469 1F3FB 200D 2764 200D 1F469 1F3FC                 ; minimally-qualified # 👩🏻‍❤‍👩🏼 E13.1 couple with heart: woman, woman, light skin tone, medium-light skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FD            ; fully-qualified     # 👩🏻‍❤️‍👩🏽 E13.1 couple with heart: woman, woman, light skin tone, medium skin tone
+1F469 1F3FB 200D 2764 200D 1F469 1F3FD                 ; minimally-qualified # 👩🏻‍❤‍👩🏽 E13.1 couple with heart: woman, woman, light skin tone, medium skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FE            ; fully-qualified     # 👩🏻‍❤️‍👩🏾 E13.1 couple with heart: woman, woman, light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 2764 200D 1F469 1F3FE                 ; minimally-qualified # 👩🏻‍❤‍👩🏾 E13.1 couple with heart: woman, woman, light skin tone, medium-dark skin tone
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FF            ; fully-qualified     # 👩🏻‍❤️‍👩🏿 E13.1 couple with heart: woman, woman, light skin tone, dark skin tone
+1F469 1F3FB 200D 2764 200D 1F469 1F3FF                 ; minimally-qualified # 👩🏻‍❤‍👩🏿 E13.1 couple with heart: woman, woman, light skin tone, dark skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FB            ; fully-qualified     # 👩🏼‍❤️‍👩🏻 E13.1 couple with heart: woman, woman, medium-light skin tone, light skin tone
+1F469 1F3FC 200D 2764 200D 1F469 1F3FB                 ; minimally-qualified # 👩🏼‍❤‍👩🏻 E13.1 couple with heart: woman, woman, medium-light skin tone, light skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FC            ; fully-qualified     # 👩🏼‍❤️‍👩🏼 E13.1 couple with heart: woman, woman, medium-light skin tone
+1F469 1F3FC 200D 2764 200D 1F469 1F3FC                 ; minimally-qualified # 👩🏼‍❤‍👩🏼 E13.1 couple with heart: woman, woman, medium-light skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FD            ; fully-qualified     # 👩🏼‍❤️‍👩🏽 E13.1 couple with heart: woman, woman, medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 2764 200D 1F469 1F3FD                 ; minimally-qualified # 👩🏼‍❤‍👩🏽 E13.1 couple with heart: woman, woman, medium-light skin tone, medium skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FE            ; fully-qualified     # 👩🏼‍❤️‍👩🏾 E13.1 couple with heart: woman, woman, medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 2764 200D 1F469 1F3FE                 ; minimally-qualified # 👩🏼‍❤‍👩🏾 E13.1 couple with heart: woman, woman, medium-light skin tone, medium-dark skin tone
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FF            ; fully-qualified     # 👩🏼‍❤️‍👩🏿 E13.1 couple with heart: woman, woman, medium-light skin tone, dark skin tone
+1F469 1F3FC 200D 2764 200D 1F469 1F3FF                 ; minimally-qualified # 👩🏼‍❤‍👩🏿 E13.1 couple with heart: woman, woman, medium-light skin tone, dark skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FB            ; fully-qualified     # 👩🏽‍❤️‍👩🏻 E13.1 couple with heart: woman, woman, medium skin tone, light skin tone
+1F469 1F3FD 200D 2764 200D 1F469 1F3FB                 ; minimally-qualified # 👩🏽‍❤‍👩🏻 E13.1 couple with heart: woman, woman, medium skin tone, light skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FC            ; fully-qualified     # 👩🏽‍❤️‍👩🏼 E13.1 couple with heart: woman, woman, medium skin tone, medium-light skin tone
+1F469 1F3FD 200D 2764 200D 1F469 1F3FC                 ; minimally-qualified # 👩🏽‍❤‍👩🏼 E13.1 couple with heart: woman, woman, medium skin tone, medium-light skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FD            ; fully-qualified     # 👩🏽‍❤️‍👩🏽 E13.1 couple with heart: woman, woman, medium skin tone
+1F469 1F3FD 200D 2764 200D 1F469 1F3FD                 ; minimally-qualified # 👩🏽‍❤‍👩🏽 E13.1 couple with heart: woman, woman, medium skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FE            ; fully-qualified     # 👩🏽‍❤️‍👩🏾 E13.1 couple with heart: woman, woman, medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 2764 200D 1F469 1F3FE                 ; minimally-qualified # 👩🏽‍❤‍👩🏾 E13.1 couple with heart: woman, woman, medium skin tone, medium-dark skin tone
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FF            ; fully-qualified     # 👩🏽‍❤️‍👩🏿 E13.1 couple with heart: woman, woman, medium skin tone, dark skin tone
+1F469 1F3FD 200D 2764 200D 1F469 1F3FF                 ; minimally-qualified # 👩🏽‍❤‍👩🏿 E13.1 couple with heart: woman, woman, medium skin tone, dark skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FB            ; fully-qualified     # 👩🏾‍❤️‍👩🏻 E13.1 couple with heart: woman, woman, medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 2764 200D 1F469 1F3FB                 ; minimally-qualified # 👩🏾‍❤‍👩🏻 E13.1 couple with heart: woman, woman, medium-dark skin tone, light skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FC            ; fully-qualified     # 👩🏾‍❤️‍👩🏼 E13.1 couple with heart: woman, woman, medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 2764 200D 1F469 1F3FC                 ; minimally-qualified # 👩🏾‍❤‍👩🏼 E13.1 couple with heart: woman, woman, medium-dark skin tone, medium-light skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FD            ; fully-qualified     # 👩🏾‍❤️‍👩🏽 E13.1 couple with heart: woman, woman, medium-dark skin tone, medium skin tone
+1F469 1F3FE 200D 2764 200D 1F469 1F3FD                 ; minimally-qualified # 👩🏾‍❤‍👩🏽 E13.1 couple with heart: woman, woman, medium-dark skin tone, medium skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FE            ; fully-qualified     # 👩🏾‍❤️‍👩🏾 E13.1 couple with heart: woman, woman, medium-dark skin tone
+1F469 1F3FE 200D 2764 200D 1F469 1F3FE                 ; minimally-qualified # 👩🏾‍❤‍👩🏾 E13.1 couple with heart: woman, woman, medium-dark skin tone
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FF            ; fully-qualified     # 👩🏾‍❤️‍👩🏿 E13.1 couple with heart: woman, woman, medium-dark skin tone, dark skin tone
+1F469 1F3FE 200D 2764 200D 1F469 1F3FF                 ; minimally-qualified # 👩🏾‍❤‍👩🏿 E13.1 couple with heart: woman, woman, medium-dark skin tone, dark skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FB            ; fully-qualified     # 👩🏿‍❤️‍👩🏻 E13.1 couple with heart: woman, woman, dark skin tone, light skin tone
+1F469 1F3FF 200D 2764 200D 1F469 1F3FB                 ; minimally-qualified # 👩🏿‍❤‍👩🏻 E13.1 couple with heart: woman, woman, dark skin tone, light skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FC            ; fully-qualified     # 👩🏿‍❤️‍👩🏼 E13.1 couple with heart: woman, woman, dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 2764 200D 1F469 1F3FC                 ; minimally-qualified # 👩🏿‍❤‍👩🏼 E13.1 couple with heart: woman, woman, dark skin tone, medium-light skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FD            ; fully-qualified     # 👩🏿‍❤️‍👩🏽 E13.1 couple with heart: woman, woman, dark skin tone, medium skin tone
+1F469 1F3FF 200D 2764 200D 1F469 1F3FD                 ; minimally-qualified # 👩🏿‍❤‍👩🏽 E13.1 couple with heart: woman, woman, dark skin tone, medium skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FE            ; fully-qualified     # 👩🏿‍❤️‍👩🏾 E13.1 couple with heart: woman, woman, dark skin tone, medium-dark skin tone
+1F469 1F3FF 200D 2764 200D 1F469 1F3FE                 ; minimally-qualified # 👩🏿‍❤‍👩🏾 E13.1 couple with heart: woman, woman, dark skin tone, medium-dark skin tone
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FF            ; fully-qualified     # 👩🏿‍❤️‍👩🏿 E13.1 couple with heart: woman, woman, dark skin tone
+1F469 1F3FF 200D 2764 200D 1F469 1F3FF                 ; minimally-qualified # 👩🏿‍❤‍👩🏿 E13.1 couple with heart: woman, woman, dark skin tone
+1F468 200D 1F469 200D 1F466                            ; fully-qualified     # 👨‍👩‍👦 E2.0 family: man, woman, boy
+1F468 200D 1F469 200D 1F467                            ; fully-qualified     # 👨‍👩‍👧 E2.0 family: man, woman, girl
+1F468 200D 1F469 200D 1F467 200D 1F466                 ; fully-qualified     # 👨‍👩‍👧‍👦 E2.0 family: man, woman, girl, boy
+1F468 200D 1F469 200D 1F466 200D 1F466                 ; fully-qualified     # 👨‍👩‍👦‍👦 E2.0 family: man, woman, boy, boy
+1F468 200D 1F469 200D 1F467 200D 1F467                 ; fully-qualified     # 👨‍👩‍👧‍👧 E2.0 family: man, woman, girl, girl
+1F468 200D 1F468 200D 1F466                            ; fully-qualified     # 👨‍👨‍👦 E2.0 family: man, man, boy
+1F468 200D 1F468 200D 1F467                            ; fully-qualified     # 👨‍👨‍👧 E2.0 family: man, man, girl
+1F468 200D 1F468 200D 1F467 200D 1F466                 ; fully-qualified     # 👨‍👨‍👧‍👦 E2.0 family: man, man, girl, boy
+1F468 200D 1F468 200D 1F466 200D 1F466                 ; fully-qualified     # 👨‍👨‍👦‍👦 E2.0 family: man, man, boy, boy
+1F468 200D 1F468 200D 1F467 200D 1F467                 ; fully-qualified     # 👨‍👨‍👧‍👧 E2.0 family: man, man, girl, girl
+1F469 200D 1F469 200D 1F466                            ; fully-qualified     # 👩‍👩‍👦 E2.0 family: woman, woman, boy
+1F469 200D 1F469 200D 1F467                            ; fully-qualified     # 👩‍👩‍👧 E2.0 family: woman, woman, girl
+1F469 200D 1F469 200D 1F467 200D 1F466                 ; fully-qualified     # 👩‍👩‍👧‍👦 E2.0 family: woman, woman, girl, boy
+1F469 200D 1F469 200D 1F466 200D 1F466                 ; fully-qualified     # 👩‍👩‍👦‍👦 E2.0 family: woman, woman, boy, boy
+1F469 200D 1F469 200D 1F467 200D 1F467                 ; fully-qualified     # 👩‍👩‍👧‍👧 E2.0 family: woman, woman, girl, girl
+1F468 200D 1F466                                       ; fully-qualified     # 👨‍👦 E4.0 family: man, boy
+1F468 200D 1F466 200D 1F466                            ; fully-qualified     # 👨‍👦‍👦 E4.0 family: man, boy, boy
+1F468 200D 1F467                                       ; fully-qualified     # 👨‍👧 E4.0 family: man, girl
+1F468 200D 1F467 200D 1F466                            ; fully-qualified     # 👨‍👧‍👦 E4.0 family: man, girl, boy
+1F468 200D 1F467 200D 1F467                            ; fully-qualified     # 👨‍👧‍👧 E4.0 family: man, girl, girl
+1F469 200D 1F466                                       ; fully-qualified     # 👩‍👦 E4.0 family: woman, boy
+1F469 200D 1F466 200D 1F466                            ; fully-qualified     # 👩‍👦‍👦 E4.0 family: woman, boy, boy
+1F469 200D 1F467                                       ; fully-qualified     # 👩‍👧 E4.0 family: woman, girl
+1F469 200D 1F467 200D 1F466                            ; fully-qualified     # 👩‍👧‍👦 E4.0 family: woman, girl, boy
+1F469 200D 1F467 200D 1F467                            ; fully-qualified     # 👩‍👧‍👧 E4.0 family: woman, girl, girl
+
+# subgroup: person-symbol
+1F5E3 FE0F                                             ; fully-qualified     # 🗣️ E0.7 speaking head
+1F5E3                                                  ; unqualified         # 🗣 E0.7 speaking head
+1F464                                                  ; fully-qualified     # 👤 E0.6 bust in silhouette
+1F465                                                  ; fully-qualified     # 👥 E1.0 busts in silhouette
+1FAC2                                                  ; fully-qualified     # 🫂 E13.0 people hugging
+1F46A                                                  ; fully-qualified     # 👪 E0.6 family
+1F9D1 200D 1F9D1 200D 1F9D2                            ; fully-qualified     # 🧑‍🧑‍🧒 E15.1 family: adult, adult, child
+1F9D1 200D 1F9D1 200D 1F9D2 200D 1F9D2                 ; fully-qualified     # 🧑‍🧑‍🧒‍🧒 E15.1 family: adult, adult, child, child
+1F9D1 200D 1F9D2                                       ; fully-qualified     # 🧑‍🧒 E15.1 family: adult, child
+1F9D1 200D 1F9D2 200D 1F9D2                            ; fully-qualified     # 🧑‍🧒‍🧒 E15.1 family: adult, child, child
+1F463                                                  ; fully-qualified     # 👣 E0.6 footprints
+
+# People & Body subtotal:		3290
+# People & Body subtotal:		560	w/o modifiers
+
+# group: Component
+
+# subgroup: skin-tone
+1F3FB                                                  ; component           # 🏻 E1.0 light skin tone
+1F3FC                                                  ; component           # 🏼 E1.0 medium-light skin tone
+1F3FD                                                  ; component           # 🏽 E1.0 medium skin tone
+1F3FE                                                  ; component           # 🏾 E1.0 medium-dark skin tone
+1F3FF                                                  ; component           # 🏿 E1.0 dark skin tone
+
+# subgroup: hair-style
+1F9B0                                                  ; component           # 🦰 E11.0 red hair
+1F9B1                                                  ; component           # 🦱 E11.0 curly hair
+1F9B3                                                  ; component           # 🦳 E11.0 white hair
+1F9B2                                                  ; component           # 🦲 E11.0 bald
+
+# Component subtotal:		9
+# Component subtotal:		4	w/o modifiers
+
+# group: Animals & Nature
+
+# subgroup: animal-mammal
+1F435                                                  ; fully-qualified     # 🐵 E0.6 monkey face
+1F412                                                  ; fully-qualified     # 🐒 E0.6 monkey
+1F98D                                                  ; fully-qualified     # 🦍 E3.0 gorilla
+1F9A7                                                  ; fully-qualified     # 🦧 E12.0 orangutan
+1F436                                                  ; fully-qualified     # 🐶 E0.6 dog face
+1F415                                                  ; fully-qualified     # 🐕 E0.7 dog
+1F9AE                                                  ; fully-qualified     # 🦮 E12.0 guide dog
+1F415 200D 1F9BA                                       ; fully-qualified     # 🐕‍🦺 E12.0 service dog
+1F429                                                  ; fully-qualified     # 🐩 E0.6 poodle
+1F43A                                                  ; fully-qualified     # 🐺 E0.6 wolf
+1F98A                                                  ; fully-qualified     # 🦊 E3.0 fox
+1F99D                                                  ; fully-qualified     # 🦝 E11.0 raccoon
+1F431                                                  ; fully-qualified     # 🐱 E0.6 cat face
+1F408                                                  ; fully-qualified     # 🐈 E0.7 cat
+1F408 200D 2B1B                                        ; fully-qualified     # 🐈‍⬛ E13.0 black cat
+1F981                                                  ; fully-qualified     # 🦁 E1.0 lion
+1F42F                                                  ; fully-qualified     # 🐯 E0.6 tiger face
+1F405                                                  ; fully-qualified     # 🐅 E1.0 tiger
+1F406                                                  ; fully-qualified     # 🐆 E1.0 leopard
+1F434                                                  ; fully-qualified     # 🐴 E0.6 horse face
+1FACE                                                  ; fully-qualified     # 🫎 E15.0 moose
+1FACF                                                  ; fully-qualified     # 🫏 E15.0 donkey
+1F40E                                                  ; fully-qualified     # 🐎 E0.6 horse
+1F984                                                  ; fully-qualified     # 🦄 E1.0 unicorn
+1F993                                                  ; fully-qualified     # 🦓 E5.0 zebra
+1F98C                                                  ; fully-qualified     # 🦌 E3.0 deer
+1F9AC                                                  ; fully-qualified     # 🦬 E13.0 bison
+1F42E                                                  ; fully-qualified     # 🐮 E0.6 cow face
+1F402                                                  ; fully-qualified     # 🐂 E1.0 ox
+1F403                                                  ; fully-qualified     # 🐃 E1.0 water buffalo
+1F404                                                  ; fully-qualified     # 🐄 E1.0 cow
+1F437                                                  ; fully-qualified     # 🐷 E0.6 pig face
+1F416                                                  ; fully-qualified     # 🐖 E1.0 pig
+1F417                                                  ; fully-qualified     # 🐗 E0.6 boar
+1F43D                                                  ; fully-qualified     # 🐽 E0.6 pig nose
+1F40F                                                  ; fully-qualified     # 🐏 E1.0 ram
+1F411                                                  ; fully-qualified     # 🐑 E0.6 ewe
+1F410                                                  ; fully-qualified     # 🐐 E1.0 goat
+1F42A                                                  ; fully-qualified     # 🐪 E1.0 camel
+1F42B                                                  ; fully-qualified     # 🐫 E0.6 two-hump camel
+1F999                                                  ; fully-qualified     # 🦙 E11.0 llama
+1F992                                                  ; fully-qualified     # 🦒 E5.0 giraffe
+1F418                                                  ; fully-qualified     # 🐘 E0.6 elephant
+1F9A3                                                  ; fully-qualified     # 🦣 E13.0 mammoth
+1F98F                                                  ; fully-qualified     # 🦏 E3.0 rhinoceros
+1F99B                                                  ; fully-qualified     # 🦛 E11.0 hippopotamus
+1F42D                                                  ; fully-qualified     # 🐭 E0.6 mouse face
+1F401                                                  ; fully-qualified     # 🐁 E1.0 mouse
+1F400                                                  ; fully-qualified     # 🐀 E1.0 rat
+1F439                                                  ; fully-qualified     # 🐹 E0.6 hamster
+1F430                                                  ; fully-qualified     # 🐰 E0.6 rabbit face
+1F407                                                  ; fully-qualified     # 🐇 E1.0 rabbit
+1F43F FE0F                                             ; fully-qualified     # 🐿️ E0.7 chipmunk
+1F43F                                                  ; unqualified         # 🐿 E0.7 chipmunk
+1F9AB                                                  ; fully-qualified     # 🦫 E13.0 beaver
+1F994                                                  ; fully-qualified     # 🦔 E5.0 hedgehog
+1F987                                                  ; fully-qualified     # 🦇 E3.0 bat
+1F43B                                                  ; fully-qualified     # 🐻 E0.6 bear
+1F43B 200D 2744 FE0F                                   ; fully-qualified     # 🐻‍❄️ E13.0 polar bear
+1F43B 200D 2744                                        ; minimally-qualified # 🐻‍❄ E13.0 polar bear
+1F428                                                  ; fully-qualified     # 🐨 E0.6 koala
+1F43C                                                  ; fully-qualified     # 🐼 E0.6 panda
+1F9A5                                                  ; fully-qualified     # 🦥 E12.0 sloth
+1F9A6                                                  ; fully-qualified     # 🦦 E12.0 otter
+1F9A8                                                  ; fully-qualified     # 🦨 E12.0 skunk
+1F998                                                  ; fully-qualified     # 🦘 E11.0 kangaroo
+1F9A1                                                  ; fully-qualified     # 🦡 E11.0 badger
+1F43E                                                  ; fully-qualified     # 🐾 E0.6 paw prints
+
+# subgroup: animal-bird
+1F983                                                  ; fully-qualified     # 🦃 E1.0 turkey
+1F414                                                  ; fully-qualified     # 🐔 E0.6 chicken
+1F413                                                  ; fully-qualified     # 🐓 E1.0 rooster
+1F423                                                  ; fully-qualified     # 🐣 E0.6 hatching chick
+1F424                                                  ; fully-qualified     # 🐤 E0.6 baby chick
+1F425                                                  ; fully-qualified     # 🐥 E0.6 front-facing baby chick
+1F426                                                  ; fully-qualified     # 🐦 E0.6 bird
+1F427                                                  ; fully-qualified     # 🐧 E0.6 penguin
+1F54A FE0F                                             ; fully-qualified     # 🕊️ E0.7 dove
+1F54A                                                  ; unqualified         # 🕊 E0.7 dove
+1F985                                                  ; fully-qualified     # 🦅 E3.0 eagle
+1F986                                                  ; fully-qualified     # 🦆 E3.0 duck
+1F9A2                                                  ; fully-qualified     # 🦢 E11.0 swan
+1F989                                                  ; fully-qualified     # 🦉 E3.0 owl
+1F9A4                                                  ; fully-qualified     # 🦤 E13.0 dodo
+1FAB6                                                  ; fully-qualified     # 🪶 E13.0 feather
+1F9A9                                                  ; fully-qualified     # 🦩 E12.0 flamingo
+1F99A                                                  ; fully-qualified     # 🦚 E11.0 peacock
+1F99C                                                  ; fully-qualified     # 🦜 E11.0 parrot
+1FABD                                                  ; fully-qualified     # 🪽 E15.0 wing
+1F426 200D 2B1B                                        ; fully-qualified     # 🐦‍⬛ E15.0 black bird
+1FABF                                                  ; fully-qualified     # 🪿 E15.0 goose
+1F426 200D 1F525                                       ; fully-qualified     # 🐦‍🔥 E15.1 phoenix
+
+# subgroup: animal-amphibian
+1F438                                                  ; fully-qualified     # 🐸 E0.6 frog
+
+# subgroup: animal-reptile
+1F40A                                                  ; fully-qualified     # 🐊 E1.0 crocodile
+1F422                                                  ; fully-qualified     # 🐢 E0.6 turtle
+1F98E                                                  ; fully-qualified     # 🦎 E3.0 lizard
+1F40D                                                  ; fully-qualified     # 🐍 E0.6 snake
+1F432                                                  ; fully-qualified     # 🐲 E0.6 dragon face
+1F409                                                  ; fully-qualified     # 🐉 E1.0 dragon
+1F995                                                  ; fully-qualified     # 🦕 E5.0 sauropod
+1F996                                                  ; fully-qualified     # 🦖 E5.0 T-Rex
+
+# subgroup: animal-marine
+1F433                                                  ; fully-qualified     # 🐳 E0.6 spouting whale
+1F40B                                                  ; fully-qualified     # 🐋 E1.0 whale
+1F42C                                                  ; fully-qualified     # 🐬 E0.6 dolphin
+1F9AD                                                  ; fully-qualified     # 🦭 E13.0 seal
+1F41F                                                  ; fully-qualified     # 🐟 E0.6 fish
+1F420                                                  ; fully-qualified     # 🐠 E0.6 tropical fish
+1F421                                                  ; fully-qualified     # 🐡 E0.6 blowfish
+1F988                                                  ; fully-qualified     # 🦈 E3.0 shark
+1F419                                                  ; fully-qualified     # 🐙 E0.6 octopus
+1F41A                                                  ; fully-qualified     # 🐚 E0.6 spiral shell
+1FAB8                                                  ; fully-qualified     # 🪸 E14.0 coral
+1FABC                                                  ; fully-qualified     # 🪼 E15.0 jellyfish
+
+# subgroup: animal-bug
+1F40C                                                  ; fully-qualified     # 🐌 E0.6 snail
+1F98B                                                  ; fully-qualified     # 🦋 E3.0 butterfly
+1F41B                                                  ; fully-qualified     # 🐛 E0.6 bug
+1F41C                                                  ; fully-qualified     # 🐜 E0.6 ant
+1F41D                                                  ; fully-qualified     # 🐝 E0.6 honeybee
+1FAB2                                                  ; fully-qualified     # 🪲 E13.0 beetle
+1F41E                                                  ; fully-qualified     # 🐞 E0.6 lady beetle
+1F997                                                  ; fully-qualified     # 🦗 E5.0 cricket
+1FAB3                                                  ; fully-qualified     # 🪳 E13.0 cockroach
+1F577 FE0F                                             ; fully-qualified     # 🕷️ E0.7 spider
+1F577                                                  ; unqualified         # 🕷 E0.7 spider
+1F578 FE0F                                             ; fully-qualified     # 🕸️ E0.7 spider web
+1F578                                                  ; unqualified         # 🕸 E0.7 spider web
+1F982                                                  ; fully-qualified     # 🦂 E1.0 scorpion
+1F99F                                                  ; fully-qualified     # 🦟 E11.0 mosquito
+1FAB0                                                  ; fully-qualified     # 🪰 E13.0 fly
+1FAB1                                                  ; fully-qualified     # 🪱 E13.0 worm
+1F9A0                                                  ; fully-qualified     # 🦠 E11.0 microbe
+
+# subgroup: plant-flower
+1F490                                                  ; fully-qualified     # 💐 E0.6 bouquet
+1F338                                                  ; fully-qualified     # 🌸 E0.6 cherry blossom
+1F4AE                                                  ; fully-qualified     # 💮 E0.6 white flower
+1FAB7                                                  ; fully-qualified     # 🪷 E14.0 lotus
+1F3F5 FE0F                                             ; fully-qualified     # 🏵️ E0.7 rosette
+1F3F5                                                  ; unqualified         # 🏵 E0.7 rosette
+1F339                                                  ; fully-qualified     # 🌹 E0.6 rose
+1F940                                                  ; fully-qualified     # 🥀 E3.0 wilted flower
+1F33A                                                  ; fully-qualified     # 🌺 E0.6 hibiscus
+1F33B                                                  ; fully-qualified     # 🌻 E0.6 sunflower
+1F33C                                                  ; fully-qualified     # 🌼 E0.6 blossom
+1F337                                                  ; fully-qualified     # 🌷 E0.6 tulip
+1FABB                                                  ; fully-qualified     # 🪻 E15.0 hyacinth
+
+# subgroup: plant-other
+1F331                                                  ; fully-qualified     # 🌱 E0.6 seedling
+1FAB4                                                  ; fully-qualified     # 🪴 E13.0 potted plant
+1F332                                                  ; fully-qualified     # 🌲 E1.0 evergreen tree
+1F333                                                  ; fully-qualified     # 🌳 E1.0 deciduous tree
+1F334                                                  ; fully-qualified     # 🌴 E0.6 palm tree
+1F335                                                  ; fully-qualified     # 🌵 E0.6 cactus
+1F33E                                                  ; fully-qualified     # 🌾 E0.6 sheaf of rice
+1F33F                                                  ; fully-qualified     # 🌿 E0.6 herb
+2618 FE0F                                              ; fully-qualified     # ☘️ E1.0 shamrock
+2618                                                   ; unqualified         # ☘ E1.0 shamrock
+1F340                                                  ; fully-qualified     # 🍀 E0.6 four leaf clover
+1F341                                                  ; fully-qualified     # 🍁 E0.6 maple leaf
+1F342                                                  ; fully-qualified     # 🍂 E0.6 fallen leaf
+1F343                                                  ; fully-qualified     # 🍃 E0.6 leaf fluttering in wind
+1FAB9                                                  ; fully-qualified     # 🪹 E14.0 empty nest
+1FABA                                                  ; fully-qualified     # 🪺 E14.0 nest with eggs
+1F344                                                  ; fully-qualified     # 🍄 E0.6 mushroom
+
+# Animals & Nature subtotal:		160
+# Animals & Nature subtotal:		160	w/o modifiers
+
+# group: Food & Drink
+
+# subgroup: food-fruit
+1F347                                                  ; fully-qualified     # 🍇 E0.6 grapes
+1F348                                                  ; fully-qualified     # 🍈 E0.6 melon
+1F349                                                  ; fully-qualified     # 🍉 E0.6 watermelon
+1F34A                                                  ; fully-qualified     # 🍊 E0.6 tangerine
+1F34B                                                  ; fully-qualified     # 🍋 E1.0 lemon
+1F34B 200D 1F7E9                                       ; fully-qualified     # 🍋‍🟩 E15.1 lime
+1F34C                                                  ; fully-qualified     # 🍌 E0.6 banana
+1F34D                                                  ; fully-qualified     # 🍍 E0.6 pineapple
+1F96D                                                  ; fully-qualified     # 🥭 E11.0 mango
+1F34E                                                  ; fully-qualified     # 🍎 E0.6 red apple
+1F34F                                                  ; fully-qualified     # 🍏 E0.6 green apple
+1F350                                                  ; fully-qualified     # 🍐 E1.0 pear
+1F351                                                  ; fully-qualified     # 🍑 E0.6 peach
+1F352                                                  ; fully-qualified     # 🍒 E0.6 cherries
+1F353                                                  ; fully-qualified     # 🍓 E0.6 strawberry
+1FAD0                                                  ; fully-qualified     # 🫐 E13.0 blueberries
+1F95D                                                  ; fully-qualified     # 🥝 E3.0 kiwi fruit
+1F345                                                  ; fully-qualified     # 🍅 E0.6 tomato
+1FAD2                                                  ; fully-qualified     # 🫒 E13.0 olive
+1F965                                                  ; fully-qualified     # 🥥 E5.0 coconut
+
+# subgroup: food-vegetable
+1F951                                                  ; fully-qualified     # 🥑 E3.0 avocado
+1F346                                                  ; fully-qualified     # 🍆 E0.6 eggplant
+1F954                                                  ; fully-qualified     # 🥔 E3.0 potato
+1F955                                                  ; fully-qualified     # 🥕 E3.0 carrot
+1F33D                                                  ; fully-qualified     # 🌽 E0.6 ear of corn
+1F336 FE0F                                             ; fully-qualified     # 🌶️ E0.7 hot pepper
+1F336                                                  ; unqualified         # 🌶 E0.7 hot pepper
+1FAD1                                                  ; fully-qualified     # 🫑 E13.0 bell pepper
+1F952                                                  ; fully-qualified     # 🥒 E3.0 cucumber
+1F96C                                                  ; fully-qualified     # 🥬 E11.0 leafy green
+1F966                                                  ; fully-qualified     # 🥦 E5.0 broccoli
+1F9C4                                                  ; fully-qualified     # 🧄 E12.0 garlic
+1F9C5                                                  ; fully-qualified     # 🧅 E12.0 onion
+1F95C                                                  ; fully-qualified     # 🥜 E3.0 peanuts
+1FAD8                                                  ; fully-qualified     # 🫘 E14.0 beans
+1F330                                                  ; fully-qualified     # 🌰 E0.6 chestnut
+1FADA                                                  ; fully-qualified     # 🫚 E15.0 ginger root
+1FADB                                                  ; fully-qualified     # 🫛 E15.0 pea pod
+1F344 200D 1F7EB                                       ; fully-qualified     # 🍄‍🟫 E15.1 brown mushroom
+
+# subgroup: food-prepared
+1F35E                                                  ; fully-qualified     # 🍞 E0.6 bread
+1F950                                                  ; fully-qualified     # 🥐 E3.0 croissant
+1F956                                                  ; fully-qualified     # 🥖 E3.0 baguette bread
+1FAD3                                                  ; fully-qualified     # 🫓 E13.0 flatbread
+1F968                                                  ; fully-qualified     # 🥨 E5.0 pretzel
+1F96F                                                  ; fully-qualified     # 🥯 E11.0 bagel
+1F95E                                                  ; fully-qualified     # 🥞 E3.0 pancakes
+1F9C7                                                  ; fully-qualified     # 🧇 E12.0 waffle
+1F9C0                                                  ; fully-qualified     # 🧀 E1.0 cheese wedge
+1F356                                                  ; fully-qualified     # 🍖 E0.6 meat on bone
+1F357                                                  ; fully-qualified     # 🍗 E0.6 poultry leg
+1F969                                                  ; fully-qualified     # 🥩 E5.0 cut of meat
+1F953                                                  ; fully-qualified     # 🥓 E3.0 bacon
+1F354                                                  ; fully-qualified     # 🍔 E0.6 hamburger
+1F35F                                                  ; fully-qualified     # 🍟 E0.6 french fries
+1F355                                                  ; fully-qualified     # 🍕 E0.6 pizza
+1F32D                                                  ; fully-qualified     # 🌭 E1.0 hot dog
+1F96A                                                  ; fully-qualified     # 🥪 E5.0 sandwich
+1F32E                                                  ; fully-qualified     # 🌮 E1.0 taco
+1F32F                                                  ; fully-qualified     # 🌯 E1.0 burrito
+1FAD4                                                  ; fully-qualified     # 🫔 E13.0 tamale
+1F959                                                  ; fully-qualified     # 🥙 E3.0 stuffed flatbread
+1F9C6                                                  ; fully-qualified     # 🧆 E12.0 falafel
+1F95A                                                  ; fully-qualified     # 🥚 E3.0 egg
+1F373                                                  ; fully-qualified     # 🍳 E0.6 cooking
+1F958                                                  ; fully-qualified     # 🥘 E3.0 shallow pan of food
+1F372                                                  ; fully-qualified     # 🍲 E0.6 pot of food
+1FAD5                                                  ; fully-qualified     # 🫕 E13.0 fondue
+1F963                                                  ; fully-qualified     # 🥣 E5.0 bowl with spoon
+1F957                                                  ; fully-qualified     # 🥗 E3.0 green salad
+1F37F                                                  ; fully-qualified     # 🍿 E1.0 popcorn
+1F9C8                                                  ; fully-qualified     # 🧈 E12.0 butter
+1F9C2                                                  ; fully-qualified     # 🧂 E11.0 salt
+1F96B                                                  ; fully-qualified     # 🥫 E5.0 canned food
+
+# subgroup: food-asian
+1F371                                                  ; fully-qualified     # 🍱 E0.6 bento box
+1F358                                                  ; fully-qualified     # 🍘 E0.6 rice cracker
+1F359                                                  ; fully-qualified     # 🍙 E0.6 rice ball
+1F35A                                                  ; fully-qualified     # 🍚 E0.6 cooked rice
+1F35B                                                  ; fully-qualified     # 🍛 E0.6 curry rice
+1F35C                                                  ; fully-qualified     # 🍜 E0.6 steaming bowl
+1F35D                                                  ; fully-qualified     # 🍝 E0.6 spaghetti
+1F360                                                  ; fully-qualified     # 🍠 E0.6 roasted sweet potato
+1F362                                                  ; fully-qualified     # 🍢 E0.6 oden
+1F363                                                  ; fully-qualified     # 🍣 E0.6 sushi
+1F364                                                  ; fully-qualified     # 🍤 E0.6 fried shrimp
+1F365                                                  ; fully-qualified     # 🍥 E0.6 fish cake with swirl
+1F96E                                                  ; fully-qualified     # 🥮 E11.0 moon cake
+1F361                                                  ; fully-qualified     # 🍡 E0.6 dango
+1F95F                                                  ; fully-qualified     # 🥟 E5.0 dumpling
+1F960                                                  ; fully-qualified     # 🥠 E5.0 fortune cookie
+1F961                                                  ; fully-qualified     # 🥡 E5.0 takeout box
+
+# subgroup: food-marine
+1F980                                                  ; fully-qualified     # 🦀 E1.0 crab
+1F99E                                                  ; fully-qualified     # 🦞 E11.0 lobster
+1F990                                                  ; fully-qualified     # 🦐 E3.0 shrimp
+1F991                                                  ; fully-qualified     # 🦑 E3.0 squid
+1F9AA                                                  ; fully-qualified     # 🦪 E12.0 oyster
+
+# subgroup: food-sweet
+1F366                                                  ; fully-qualified     # 🍦 E0.6 soft ice cream
+1F367                                                  ; fully-qualified     # 🍧 E0.6 shaved ice
+1F368                                                  ; fully-qualified     # 🍨 E0.6 ice cream
+1F369                                                  ; fully-qualified     # 🍩 E0.6 doughnut
+1F36A                                                  ; fully-qualified     # 🍪 E0.6 cookie
+1F382                                                  ; fully-qualified     # 🎂 E0.6 birthday cake
+1F370                                                  ; fully-qualified     # 🍰 E0.6 shortcake
+1F9C1                                                  ; fully-qualified     # 🧁 E11.0 cupcake
+1F967                                                  ; fully-qualified     # 🥧 E5.0 pie
+1F36B                                                  ; fully-qualified     # 🍫 E0.6 chocolate bar
+1F36C                                                  ; fully-qualified     # 🍬 E0.6 candy
+1F36D                                                  ; fully-qualified     # 🍭 E0.6 lollipop
+1F36E                                                  ; fully-qualified     # 🍮 E0.6 custard
+1F36F                                                  ; fully-qualified     # 🍯 E0.6 honey pot
+
+# subgroup: drink
+1F37C                                                  ; fully-qualified     # 🍼 E1.0 baby bottle
+1F95B                                                  ; fully-qualified     # 🥛 E3.0 glass of milk
+2615                                                   ; fully-qualified     # ☕ E0.6 hot beverage
+1FAD6                                                  ; fully-qualified     # 🫖 E13.0 teapot
+1F375                                                  ; fully-qualified     # 🍵 E0.6 teacup without handle
+1F376                                                  ; fully-qualified     # 🍶 E0.6 sake
+1F37E                                                  ; fully-qualified     # 🍾 E1.0 bottle with popping cork
+1F377                                                  ; fully-qualified     # 🍷 E0.6 wine glass
+1F378                                                  ; fully-qualified     # 🍸 E0.6 cocktail glass
+1F379                                                  ; fully-qualified     # 🍹 E0.6 tropical drink
+1F37A                                                  ; fully-qualified     # 🍺 E0.6 beer mug
+1F37B                                                  ; fully-qualified     # 🍻 E0.6 clinking beer mugs
+1F942                                                  ; fully-qualified     # 🥂 E3.0 clinking glasses
+1F943                                                  ; fully-qualified     # 🥃 E3.0 tumbler glass
+1FAD7                                                  ; fully-qualified     # 🫗 E14.0 pouring liquid
+1F964                                                  ; fully-qualified     # 🥤 E5.0 cup with straw
+1F9CB                                                  ; fully-qualified     # 🧋 E13.0 bubble tea
+1F9C3                                                  ; fully-qualified     # 🧃 E12.0 beverage box
+1F9C9                                                  ; fully-qualified     # 🧉 E12.0 mate
+1F9CA                                                  ; fully-qualified     # 🧊 E12.0 ice
+
+# subgroup: dishware
+1F962                                                  ; fully-qualified     # 🥢 E5.0 chopsticks
+1F37D FE0F                                             ; fully-qualified     # 🍽️ E0.7 fork and knife with plate
+1F37D                                                  ; unqualified         # 🍽 E0.7 fork and knife with plate
+1F374                                                  ; fully-qualified     # 🍴 E0.6 fork and knife
+1F944                                                  ; fully-qualified     # 🥄 E3.0 spoon
+1F52A                                                  ; fully-qualified     # 🔪 E0.6 kitchen knife
+1FAD9                                                  ; fully-qualified     # 🫙 E14.0 jar
+1F3FA                                                  ; fully-qualified     # 🏺 E1.0 amphora
+
+# Food & Drink subtotal:		137
+# Food & Drink subtotal:		137	w/o modifiers
+
+# group: Travel & Places
+
+# subgroup: place-map
+1F30D                                                  ; fully-qualified     # 🌍 E0.7 globe showing Europe-Africa
+1F30E                                                  ; fully-qualified     # 🌎 E0.7 globe showing Americas
+1F30F                                                  ; fully-qualified     # 🌏 E0.6 globe showing Asia-Australia
+1F310                                                  ; fully-qualified     # 🌐 E1.0 globe with meridians
+1F5FA FE0F                                             ; fully-qualified     # 🗺️ E0.7 world map
+1F5FA                                                  ; unqualified         # 🗺 E0.7 world map
+1F5FE                                                  ; fully-qualified     # 🗾 E0.6 map of Japan
+1F9ED                                                  ; fully-qualified     # 🧭 E11.0 compass
+
+# subgroup: place-geographic
+1F3D4 FE0F                                             ; fully-qualified     # 🏔️ E0.7 snow-capped mountain
+1F3D4                                                  ; unqualified         # 🏔 E0.7 snow-capped mountain
+26F0 FE0F                                              ; fully-qualified     # ⛰️ E0.7 mountain
+26F0                                                   ; unqualified         # ⛰ E0.7 mountain
+1F30B                                                  ; fully-qualified     # 🌋 E0.6 volcano
+1F5FB                                                  ; fully-qualified     # 🗻 E0.6 mount fuji
+1F3D5 FE0F                                             ; fully-qualified     # 🏕️ E0.7 camping
+1F3D5                                                  ; unqualified         # 🏕 E0.7 camping
+1F3D6 FE0F                                             ; fully-qualified     # 🏖️ E0.7 beach with umbrella
+1F3D6                                                  ; unqualified         # 🏖 E0.7 beach with umbrella
+1F3DC FE0F                                             ; fully-qualified     # 🏜️ E0.7 desert
+1F3DC                                                  ; unqualified         # 🏜 E0.7 desert
+1F3DD FE0F                                             ; fully-qualified     # 🏝️ E0.7 desert island
+1F3DD                                                  ; unqualified         # 🏝 E0.7 desert island
+1F3DE FE0F                                             ; fully-qualified     # 🏞️ E0.7 national park
+1F3DE                                                  ; unqualified         # 🏞 E0.7 national park
+
+# subgroup: place-building
+1F3DF FE0F                                             ; fully-qualified     # 🏟️ E0.7 stadium
+1F3DF                                                  ; unqualified         # 🏟 E0.7 stadium
+1F3DB FE0F                                             ; fully-qualified     # 🏛️ E0.7 classical building
+1F3DB                                                  ; unqualified         # 🏛 E0.7 classical building
+1F3D7 FE0F                                             ; fully-qualified     # 🏗️ E0.7 building construction
+1F3D7                                                  ; unqualified         # 🏗 E0.7 building construction
+1F9F1                                                  ; fully-qualified     # 🧱 E11.0 brick
+1FAA8                                                  ; fully-qualified     # 🪨 E13.0 rock
+1FAB5                                                  ; fully-qualified     # 🪵 E13.0 wood
+1F6D6                                                  ; fully-qualified     # 🛖 E13.0 hut
+1F3D8 FE0F                                             ; fully-qualified     # 🏘️ E0.7 houses
+1F3D8                                                  ; unqualified         # 🏘 E0.7 houses
+1F3DA FE0F                                             ; fully-qualified     # 🏚️ E0.7 derelict house
+1F3DA                                                  ; unqualified         # 🏚 E0.7 derelict house
+1F3E0                                                  ; fully-qualified     # 🏠 E0.6 house
+1F3E1                                                  ; fully-qualified     # 🏡 E0.6 house with garden
+1F3E2                                                  ; fully-qualified     # 🏢 E0.6 office building
+1F3E3                                                  ; fully-qualified     # 🏣 E0.6 Japanese post office
+1F3E4                                                  ; fully-qualified     # 🏤 E1.0 post office
+1F3E5                                                  ; fully-qualified     # 🏥 E0.6 hospital
+1F3E6                                                  ; fully-qualified     # 🏦 E0.6 bank
+1F3E8                                                  ; fully-qualified     # 🏨 E0.6 hotel
+1F3E9                                                  ; fully-qualified     # 🏩 E0.6 love hotel
+1F3EA                                                  ; fully-qualified     # 🏪 E0.6 convenience store
+1F3EB                                                  ; fully-qualified     # 🏫 E0.6 school
+1F3EC                                                  ; fully-qualified     # 🏬 E0.6 department store
+1F3ED                                                  ; fully-qualified     # 🏭 E0.6 factory
+1F3EF                                                  ; fully-qualified     # 🏯 E0.6 Japanese castle
+1F3F0                                                  ; fully-qualified     # 🏰 E0.6 castle
+1F492                                                  ; fully-qualified     # 💒 E0.6 wedding
+1F5FC                                                  ; fully-qualified     # 🗼 E0.6 Tokyo tower
+1F5FD                                                  ; fully-qualified     # 🗽 E0.6 Statue of Liberty
+
+# subgroup: place-religious
+26EA                                                   ; fully-qualified     # ⛪ E0.6 church
+1F54C                                                  ; fully-qualified     # 🕌 E1.0 mosque
+1F6D5                                                  ; fully-qualified     # 🛕 E12.0 hindu temple
+1F54D                                                  ; fully-qualified     # 🕍 E1.0 synagogue
+26E9 FE0F                                              ; fully-qualified     # ⛩️ E0.7 shinto shrine
+26E9                                                   ; unqualified         # ⛩ E0.7 shinto shrine
+1F54B                                                  ; fully-qualified     # 🕋 E1.0 kaaba
+
+# subgroup: place-other
+26F2                                                   ; fully-qualified     # ⛲ E0.6 fountain
+26FA                                                   ; fully-qualified     # ⛺ E0.6 tent
+1F301                                                  ; fully-qualified     # 🌁 E0.6 foggy
+1F303                                                  ; fully-qualified     # 🌃 E0.6 night with stars
+1F3D9 FE0F                                             ; fully-qualified     # 🏙️ E0.7 cityscape
+1F3D9                                                  ; unqualified         # 🏙 E0.7 cityscape
+1F304                                                  ; fully-qualified     # 🌄 E0.6 sunrise over mountains
+1F305                                                  ; fully-qualified     # 🌅 E0.6 sunrise
+1F306                                                  ; fully-qualified     # 🌆 E0.6 cityscape at dusk
+1F307                                                  ; fully-qualified     # 🌇 E0.6 sunset
+1F309                                                  ; fully-qualified     # 🌉 E0.6 bridge at night
+2668 FE0F                                              ; fully-qualified     # ♨️ E0.6 hot springs
+2668                                                   ; unqualified         # ♨ E0.6 hot springs
+1F3A0                                                  ; fully-qualified     # 🎠 E0.6 carousel horse
+1F6DD                                                  ; fully-qualified     # 🛝 E14.0 playground slide
+1F3A1                                                  ; fully-qualified     # 🎡 E0.6 ferris wheel
+1F3A2                                                  ; fully-qualified     # 🎢 E0.6 roller coaster
+1F488                                                  ; fully-qualified     # 💈 E0.6 barber pole
+1F3AA                                                  ; fully-qualified     # 🎪 E0.6 circus tent
+
+# subgroup: transport-ground
+1F682                                                  ; fully-qualified     # 🚂 E1.0 locomotive
+1F683                                                  ; fully-qualified     # 🚃 E0.6 railway car
+1F684                                                  ; fully-qualified     # 🚄 E0.6 high-speed train
+1F685                                                  ; fully-qualified     # 🚅 E0.6 bullet train
+1F686                                                  ; fully-qualified     # 🚆 E1.0 train
+1F687                                                  ; fully-qualified     # 🚇 E0.6 metro
+1F688                                                  ; fully-qualified     # 🚈 E1.0 light rail
+1F689                                                  ; fully-qualified     # 🚉 E0.6 station
+1F68A                                                  ; fully-qualified     # 🚊 E1.0 tram
+1F69D                                                  ; fully-qualified     # 🚝 E1.0 monorail
+1F69E                                                  ; fully-qualified     # 🚞 E1.0 mountain railway
+1F68B                                                  ; fully-qualified     # 🚋 E1.0 tram car
+1F68C                                                  ; fully-qualified     # 🚌 E0.6 bus
+1F68D                                                  ; fully-qualified     # 🚍 E0.7 oncoming bus
+1F68E                                                  ; fully-qualified     # 🚎 E1.0 trolleybus
+1F690                                                  ; fully-qualified     # 🚐 E1.0 minibus
+1F691                                                  ; fully-qualified     # 🚑 E0.6 ambulance
+1F692                                                  ; fully-qualified     # 🚒 E0.6 fire engine
+1F693                                                  ; fully-qualified     # 🚓 E0.6 police car
+1F694                                                  ; fully-qualified     # 🚔 E0.7 oncoming police car
+1F695                                                  ; fully-qualified     # 🚕 E0.6 taxi
+1F696                                                  ; fully-qualified     # 🚖 E1.0 oncoming taxi
+1F697                                                  ; fully-qualified     # 🚗 E0.6 automobile
+1F698                                                  ; fully-qualified     # 🚘 E0.7 oncoming automobile
+1F699                                                  ; fully-qualified     # 🚙 E0.6 sport utility vehicle
+1F6FB                                                  ; fully-qualified     # 🛻 E13.0 pickup truck
+1F69A                                                  ; fully-qualified     # 🚚 E0.6 delivery truck
+1F69B                                                  ; fully-qualified     # 🚛 E1.0 articulated lorry
+1F69C                                                  ; fully-qualified     # 🚜 E1.0 tractor
+1F3CE FE0F                                             ; fully-qualified     # 🏎️ E0.7 racing car
+1F3CE                                                  ; unqualified         # 🏎 E0.7 racing car
+1F3CD FE0F                                             ; fully-qualified     # 🏍️ E0.7 motorcycle
+1F3CD                                                  ; unqualified         # 🏍 E0.7 motorcycle
+1F6F5                                                  ; fully-qualified     # 🛵 E3.0 motor scooter
+1F9BD                                                  ; fully-qualified     # 🦽 E12.0 manual wheelchair
+1F9BC                                                  ; fully-qualified     # 🦼 E12.0 motorized wheelchair
+1F6FA                                                  ; fully-qualified     # 🛺 E12.0 auto rickshaw
+1F6B2                                                  ; fully-qualified     # 🚲 E0.6 bicycle
+1F6F4                                                  ; fully-qualified     # 🛴 E3.0 kick scooter
+1F6F9                                                  ; fully-qualified     # 🛹 E11.0 skateboard
+1F6FC                                                  ; fully-qualified     # 🛼 E13.0 roller skate
+1F68F                                                  ; fully-qualified     # 🚏 E0.6 bus stop
+1F6E3 FE0F                                             ; fully-qualified     # 🛣️ E0.7 motorway
+1F6E3                                                  ; unqualified         # 🛣 E0.7 motorway
+1F6E4 FE0F                                             ; fully-qualified     # 🛤️ E0.7 railway track
+1F6E4                                                  ; unqualified         # 🛤 E0.7 railway track
+1F6E2 FE0F                                             ; fully-qualified     # 🛢️ E0.7 oil drum
+1F6E2                                                  ; unqualified         # 🛢 E0.7 oil drum
+26FD                                                   ; fully-qualified     # ⛽ E0.6 fuel pump
+1F6DE                                                  ; fully-qualified     # 🛞 E14.0 wheel
+1F6A8                                                  ; fully-qualified     # 🚨 E0.6 police car light
+1F6A5                                                  ; fully-qualified     # 🚥 E0.6 horizontal traffic light
+1F6A6                                                  ; fully-qualified     # 🚦 E1.0 vertical traffic light
+1F6D1                                                  ; fully-qualified     # 🛑 E3.0 stop sign
+1F6A7                                                  ; fully-qualified     # 🚧 E0.6 construction
+
+# subgroup: transport-water
+2693                                                   ; fully-qualified     # ⚓ E0.6 anchor
+1F6DF                                                  ; fully-qualified     # 🛟 E14.0 ring buoy
+26F5                                                   ; fully-qualified     # ⛵ E0.6 sailboat
+1F6F6                                                  ; fully-qualified     # 🛶 E3.0 canoe
+1F6A4                                                  ; fully-qualified     # 🚤 E0.6 speedboat
+1F6F3 FE0F                                             ; fully-qualified     # 🛳️ E0.7 passenger ship
+1F6F3                                                  ; unqualified         # 🛳 E0.7 passenger ship
+26F4 FE0F                                              ; fully-qualified     # ⛴️ E0.7 ferry
+26F4                                                   ; unqualified         # ⛴ E0.7 ferry
+1F6E5 FE0F                                             ; fully-qualified     # 🛥️ E0.7 motor boat
+1F6E5                                                  ; unqualified         # 🛥 E0.7 motor boat
+1F6A2                                                  ; fully-qualified     # 🚢 E0.6 ship
+
+# subgroup: transport-air
+2708 FE0F                                              ; fully-qualified     # ✈️ E0.6 airplane
+2708                                                   ; unqualified         # ✈ E0.6 airplane
+1F6E9 FE0F                                             ; fully-qualified     # 🛩️ E0.7 small airplane
+1F6E9                                                  ; unqualified         # 🛩 E0.7 small airplane
+1F6EB                                                  ; fully-qualified     # 🛫 E1.0 airplane departure
+1F6EC                                                  ; fully-qualified     # 🛬 E1.0 airplane arrival
+1FA82                                                  ; fully-qualified     # 🪂 E12.0 parachute
+1F4BA                                                  ; fully-qualified     # 💺 E0.6 seat
+1F681                                                  ; fully-qualified     # 🚁 E1.0 helicopter
+1F69F                                                  ; fully-qualified     # 🚟 E1.0 suspension railway
+1F6A0                                                  ; fully-qualified     # 🚠 E1.0 mountain cableway
+1F6A1                                                  ; fully-qualified     # 🚡 E1.0 aerial tramway
+1F6F0 FE0F                                             ; fully-qualified     # 🛰️ E0.7 satellite
+1F6F0                                                  ; unqualified         # 🛰 E0.7 satellite
+1F680                                                  ; fully-qualified     # 🚀 E0.6 rocket
+1F6F8                                                  ; fully-qualified     # 🛸 E5.0 flying saucer
+
+# subgroup: hotel
+1F6CE FE0F                                             ; fully-qualified     # 🛎️ E0.7 bellhop bell
+1F6CE                                                  ; unqualified         # 🛎 E0.7 bellhop bell
+1F9F3                                                  ; fully-qualified     # 🧳 E11.0 luggage
+
+# subgroup: time
+231B                                                   ; fully-qualified     # ⌛ E0.6 hourglass done
+23F3                                                   ; fully-qualified     # ⏳ E0.6 hourglass not done
+231A                                                   ; fully-qualified     # ⌚ E0.6 watch
+23F0                                                   ; fully-qualified     # ⏰ E0.6 alarm clock
+23F1 FE0F                                              ; fully-qualified     # ⏱️ E1.0 stopwatch
+23F1                                                   ; unqualified         # ⏱ E1.0 stopwatch
+23F2 FE0F                                              ; fully-qualified     # ⏲️ E1.0 timer clock
+23F2                                                   ; unqualified         # ⏲ E1.0 timer clock
+1F570 FE0F                                             ; fully-qualified     # 🕰️ E0.7 mantelpiece clock
+1F570                                                  ; unqualified         # 🕰 E0.7 mantelpiece clock
+1F55B                                                  ; fully-qualified     # 🕛 E0.6 twelve o’clock
+1F567                                                  ; fully-qualified     # 🕧 E0.7 twelve-thirty
+1F550                                                  ; fully-qualified     # 🕐 E0.6 one o’clock
+1F55C                                                  ; fully-qualified     # 🕜 E0.7 one-thirty
+1F551                                                  ; fully-qualified     # 🕑 E0.6 two o’clock
+1F55D                                                  ; fully-qualified     # 🕝 E0.7 two-thirty
+1F552                                                  ; fully-qualified     # 🕒 E0.6 three o’clock
+1F55E                                                  ; fully-qualified     # 🕞 E0.7 three-thirty
+1F553                                                  ; fully-qualified     # 🕓 E0.6 four o’clock
+1F55F                                                  ; fully-qualified     # 🕟 E0.7 four-thirty
+1F554                                                  ; fully-qualified     # 🕔 E0.6 five o’clock
+1F560                                                  ; fully-qualified     # 🕠 E0.7 five-thirty
+1F555                                                  ; fully-qualified     # 🕕 E0.6 six o’clock
+1F561                                                  ; fully-qualified     # 🕡 E0.7 six-thirty
+1F556                                                  ; fully-qualified     # 🕖 E0.6 seven o’clock
+1F562                                                  ; fully-qualified     # 🕢 E0.7 seven-thirty
+1F557                                                  ; fully-qualified     # 🕗 E0.6 eight o’clock
+1F563                                                  ; fully-qualified     # 🕣 E0.7 eight-thirty
+1F558                                                  ; fully-qualified     # 🕘 E0.6 nine o’clock
+1F564                                                  ; fully-qualified     # 🕤 E0.7 nine-thirty
+1F559                                                  ; fully-qualified     # 🕙 E0.6 ten o’clock
+1F565                                                  ; fully-qualified     # 🕥 E0.7 ten-thirty
+1F55A                                                  ; fully-qualified     # 🕚 E0.6 eleven o’clock
+1F566                                                  ; fully-qualified     # 🕦 E0.7 eleven-thirty
+
+# subgroup: sky & weather
+1F311                                                  ; fully-qualified     # 🌑 E0.6 new moon
+1F312                                                  ; fully-qualified     # 🌒 E1.0 waxing crescent moon
+1F313                                                  ; fully-qualified     # 🌓 E0.6 first quarter moon
+1F314                                                  ; fully-qualified     # 🌔 E0.6 waxing gibbous moon
+1F315                                                  ; fully-qualified     # 🌕 E0.6 full moon
+1F316                                                  ; fully-qualified     # 🌖 E1.0 waning gibbous moon
+1F317                                                  ; fully-qualified     # 🌗 E1.0 last quarter moon
+1F318                                                  ; fully-qualified     # 🌘 E1.0 waning crescent moon
+1F319                                                  ; fully-qualified     # 🌙 E0.6 crescent moon
+1F31A                                                  ; fully-qualified     # 🌚 E1.0 new moon face
+1F31B                                                  ; fully-qualified     # 🌛 E0.6 first quarter moon face
+1F31C                                                  ; fully-qualified     # 🌜 E0.7 last quarter moon face
+1F321 FE0F                                             ; fully-qualified     # 🌡️ E0.7 thermometer
+1F321                                                  ; unqualified         # 🌡 E0.7 thermometer
+2600 FE0F                                              ; fully-qualified     # ☀️ E0.6 sun
+2600                                                   ; unqualified         # ☀ E0.6 sun
+1F31D                                                  ; fully-qualified     # 🌝 E1.0 full moon face
+1F31E                                                  ; fully-qualified     # 🌞 E1.0 sun with face
+1FA90                                                  ; fully-qualified     # 🪐 E12.0 ringed planet
+2B50                                                   ; fully-qualified     # ⭐ E0.6 star
+1F31F                                                  ; fully-qualified     # 🌟 E0.6 glowing star
+1F320                                                  ; fully-qualified     # 🌠 E0.6 shooting star
+1F30C                                                  ; fully-qualified     # 🌌 E0.6 milky way
+2601 FE0F                                              ; fully-qualified     # ☁️ E0.6 cloud
+2601                                                   ; unqualified         # ☁ E0.6 cloud
+26C5                                                   ; fully-qualified     # ⛅ E0.6 sun behind cloud
+26C8 FE0F                                              ; fully-qualified     # ⛈️ E0.7 cloud with lightning and rain
+26C8                                                   ; unqualified         # ⛈ E0.7 cloud with lightning and rain
+1F324 FE0F                                             ; fully-qualified     # 🌤️ E0.7 sun behind small cloud
+1F324                                                  ; unqualified         # 🌤 E0.7 sun behind small cloud
+1F325 FE0F                                             ; fully-qualified     # 🌥️ E0.7 sun behind large cloud
+1F325                                                  ; unqualified         # 🌥 E0.7 sun behind large cloud
+1F326 FE0F                                             ; fully-qualified     # 🌦️ E0.7 sun behind rain cloud
+1F326                                                  ; unqualified         # 🌦 E0.7 sun behind rain cloud
+1F327 FE0F                                             ; fully-qualified     # 🌧️ E0.7 cloud with rain
+1F327                                                  ; unqualified         # 🌧 E0.7 cloud with rain
+1F328 FE0F                                             ; fully-qualified     # 🌨️ E0.7 cloud with snow
+1F328                                                  ; unqualified         # 🌨 E0.7 cloud with snow
+1F329 FE0F                                             ; fully-qualified     # 🌩️ E0.7 cloud with lightning
+1F329                                                  ; unqualified         # 🌩 E0.7 cloud with lightning
+1F32A FE0F                                             ; fully-qualified     # 🌪️ E0.7 tornado
+1F32A                                                  ; unqualified         # 🌪 E0.7 tornado
+1F32B FE0F                                             ; fully-qualified     # 🌫️ E0.7 fog
+1F32B                                                  ; unqualified         # 🌫 E0.7 fog
+1F32C FE0F                                             ; fully-qualified     # 🌬️ E0.7 wind face
+1F32C                                                  ; unqualified         # 🌬 E0.7 wind face
+1F300                                                  ; fully-qualified     # 🌀 E0.6 cyclone
+1F308                                                  ; fully-qualified     # 🌈 E0.6 rainbow
+1F302                                                  ; fully-qualified     # 🌂 E0.6 closed umbrella
+2602 FE0F                                              ; fully-qualified     # ☂️ E0.7 umbrella
+2602                                                   ; unqualified         # ☂ E0.7 umbrella
+2614                                                   ; fully-qualified     # ☔ E0.6 umbrella with rain drops
+26F1 FE0F                                              ; fully-qualified     # ⛱️ E0.7 umbrella on ground
+26F1                                                   ; unqualified         # ⛱ E0.7 umbrella on ground
+26A1                                                   ; fully-qualified     # ⚡ E0.6 high voltage
+2744 FE0F                                              ; fully-qualified     # ❄️ E0.6 snowflake
+2744                                                   ; unqualified         # ❄ E0.6 snowflake
+2603 FE0F                                              ; fully-qualified     # ☃️ E0.7 snowman
+2603                                                   ; unqualified         # ☃ E0.7 snowman
+26C4                                                   ; fully-qualified     # ⛄ E0.6 snowman without snow
+2604 FE0F                                              ; fully-qualified     # ☄️ E1.0 comet
+2604                                                   ; unqualified         # ☄ E1.0 comet
+1F525                                                  ; fully-qualified     # 🔥 E0.6 fire
+1F4A7                                                  ; fully-qualified     # 💧 E0.6 droplet
+1F30A                                                  ; fully-qualified     # 🌊 E0.6 water wave
+
+# Travel & Places subtotal:		267
+# Travel & Places subtotal:		267	w/o modifiers
+
+# group: Activities
+
+# subgroup: event
+1F383                                                  ; fully-qualified     # 🎃 E0.6 jack-o-lantern
+1F384                                                  ; fully-qualified     # 🎄 E0.6 Christmas tree
+1F386                                                  ; fully-qualified     # 🎆 E0.6 fireworks
+1F387                                                  ; fully-qualified     # 🎇 E0.6 sparkler
+1F9E8                                                  ; fully-qualified     # 🧨 E11.0 firecracker
+2728                                                   ; fully-qualified     # ✨ E0.6 sparkles
+1F388                                                  ; fully-qualified     # 🎈 E0.6 balloon
+1F389                                                  ; fully-qualified     # 🎉 E0.6 party popper
+1F38A                                                  ; fully-qualified     # 🎊 E0.6 confetti ball
+1F38B                                                  ; fully-qualified     # 🎋 E0.6 tanabata tree
+1F38D                                                  ; fully-qualified     # 🎍 E0.6 pine decoration
+1F38E                                                  ; fully-qualified     # 🎎 E0.6 Japanese dolls
+1F38F                                                  ; fully-qualified     # 🎏 E0.6 carp streamer
+1F390                                                  ; fully-qualified     # 🎐 E0.6 wind chime
+1F391                                                  ; fully-qualified     # 🎑 E0.6 moon viewing ceremony
+1F9E7                                                  ; fully-qualified     # 🧧 E11.0 red envelope
+1F380                                                  ; fully-qualified     # 🎀 E0.6 ribbon
+1F381                                                  ; fully-qualified     # 🎁 E0.6 wrapped gift
+1F397 FE0F                                             ; fully-qualified     # 🎗️ E0.7 reminder ribbon
+1F397                                                  ; unqualified         # 🎗 E0.7 reminder ribbon
+1F39F FE0F                                             ; fully-qualified     # 🎟️ E0.7 admission tickets
+1F39F                                                  ; unqualified         # 🎟 E0.7 admission tickets
+1F3AB                                                  ; fully-qualified     # 🎫 E0.6 ticket
+
+# subgroup: award-medal
+1F396 FE0F                                             ; fully-qualified     # 🎖️ E0.7 military medal
+1F396                                                  ; unqualified         # 🎖 E0.7 military medal
+1F3C6                                                  ; fully-qualified     # 🏆 E0.6 trophy
+1F3C5                                                  ; fully-qualified     # 🏅 E1.0 sports medal
+1F947                                                  ; fully-qualified     # 🥇 E3.0 1st place medal
+1F948                                                  ; fully-qualified     # 🥈 E3.0 2nd place medal
+1F949                                                  ; fully-qualified     # 🥉 E3.0 3rd place medal
+
+# subgroup: sport
+26BD                                                   ; fully-qualified     # ⚽ E0.6 soccer ball
+26BE                                                   ; fully-qualified     # ⚾ E0.6 baseball
+1F94E                                                  ; fully-qualified     # 🥎 E11.0 softball
+1F3C0                                                  ; fully-qualified     # 🏀 E0.6 basketball
+1F3D0                                                  ; fully-qualified     # 🏐 E1.0 volleyball
+1F3C8                                                  ; fully-qualified     # 🏈 E0.6 american football
+1F3C9                                                  ; fully-qualified     # 🏉 E1.0 rugby football
+1F3BE                                                  ; fully-qualified     # 🎾 E0.6 tennis
+1F94F                                                  ; fully-qualified     # 🥏 E11.0 flying disc
+1F3B3                                                  ; fully-qualified     # 🎳 E0.6 bowling
+1F3CF                                                  ; fully-qualified     # 🏏 E1.0 cricket game
+1F3D1                                                  ; fully-qualified     # 🏑 E1.0 field hockey
+1F3D2                                                  ; fully-qualified     # 🏒 E1.0 ice hockey
+1F94D                                                  ; fully-qualified     # 🥍 E11.0 lacrosse
+1F3D3                                                  ; fully-qualified     # 🏓 E1.0 ping pong
+1F3F8                                                  ; fully-qualified     # 🏸 E1.0 badminton
+1F94A                                                  ; fully-qualified     # 🥊 E3.0 boxing glove
+1F94B                                                  ; fully-qualified     # 🥋 E3.0 martial arts uniform
+1F945                                                  ; fully-qualified     # 🥅 E3.0 goal net
+26F3                                                   ; fully-qualified     # ⛳ E0.6 flag in hole
+26F8 FE0F                                              ; fully-qualified     # ⛸️ E0.7 ice skate
+26F8                                                   ; unqualified         # ⛸ E0.7 ice skate
+1F3A3                                                  ; fully-qualified     # 🎣 E0.6 fishing pole
+1F93F                                                  ; fully-qualified     # 🤿 E12.0 diving mask
+1F3BD                                                  ; fully-qualified     # 🎽 E0.6 running shirt
+1F3BF                                                  ; fully-qualified     # 🎿 E0.6 skis
+1F6F7                                                  ; fully-qualified     # 🛷 E5.0 sled
+1F94C                                                  ; fully-qualified     # 🥌 E5.0 curling stone
+
+# subgroup: game
+1F3AF                                                  ; fully-qualified     # 🎯 E0.6 bullseye
+1FA80                                                  ; fully-qualified     # 🪀 E12.0 yo-yo
+1FA81                                                  ; fully-qualified     # 🪁 E12.0 kite
+1F52B                                                  ; fully-qualified     # 🔫 E0.6 water pistol
+1F3B1                                                  ; fully-qualified     # 🎱 E0.6 pool 8 ball
+1F52E                                                  ; fully-qualified     # 🔮 E0.6 crystal ball
+1FA84                                                  ; fully-qualified     # 🪄 E13.0 magic wand
+1F3AE                                                  ; fully-qualified     # 🎮 E0.6 video game
+1F579 FE0F                                             ; fully-qualified     # 🕹️ E0.7 joystick
+1F579                                                  ; unqualified         # 🕹 E0.7 joystick
+1F3B0                                                  ; fully-qualified     # 🎰 E0.6 slot machine
+1F3B2                                                  ; fully-qualified     # 🎲 E0.6 game die
+1F9E9                                                  ; fully-qualified     # 🧩 E11.0 puzzle piece
+1F9F8                                                  ; fully-qualified     # 🧸 E11.0 teddy bear
+1FA85                                                  ; fully-qualified     # 🪅 E13.0 piñata
+1FAA9                                                  ; fully-qualified     # 🪩 E14.0 mirror ball
+1FA86                                                  ; fully-qualified     # 🪆 E13.0 nesting dolls
+2660 FE0F                                              ; fully-qualified     # ♠️ E0.6 spade suit
+2660                                                   ; unqualified         # ♠ E0.6 spade suit
+2665 FE0F                                              ; fully-qualified     # ♥️ E0.6 heart suit
+2665                                                   ; unqualified         # ♥ E0.6 heart suit
+2666 FE0F                                              ; fully-qualified     # ♦️ E0.6 diamond suit
+2666                                                   ; unqualified         # ♦ E0.6 diamond suit
+2663 FE0F                                              ; fully-qualified     # ♣️ E0.6 club suit
+2663                                                   ; unqualified         # ♣ E0.6 club suit
+265F FE0F                                              ; fully-qualified     # ♟️ E11.0 chess pawn
+265F                                                   ; unqualified         # ♟ E11.0 chess pawn
+1F0CF                                                  ; fully-qualified     # 🃏 E0.6 joker
+1F004                                                  ; fully-qualified     # 🀄 E0.6 mahjong red dragon
+1F3B4                                                  ; fully-qualified     # 🎴 E0.6 flower playing cards
+
+# subgroup: arts & crafts
+1F3AD                                                  ; fully-qualified     # 🎭 E0.6 performing arts
+1F5BC FE0F                                             ; fully-qualified     # 🖼️ E0.7 framed picture
+1F5BC                                                  ; unqualified         # 🖼 E0.7 framed picture
+1F3A8                                                  ; fully-qualified     # 🎨 E0.6 artist palette
+1F9F5                                                  ; fully-qualified     # 🧵 E11.0 thread
+1FAA1                                                  ; fully-qualified     # 🪡 E13.0 sewing needle
+1F9F6                                                  ; fully-qualified     # 🧶 E11.0 yarn
+1FAA2                                                  ; fully-qualified     # 🪢 E13.0 knot
+
+# Activities subtotal:		96
+# Activities subtotal:		96	w/o modifiers
+
+# group: Objects
+
+# subgroup: clothing
+1F453                                                  ; fully-qualified     # 👓 E0.6 glasses
+1F576 FE0F                                             ; fully-qualified     # 🕶️ E0.7 sunglasses
+1F576                                                  ; unqualified         # 🕶 E0.7 sunglasses
+1F97D                                                  ; fully-qualified     # 🥽 E11.0 goggles
+1F97C                                                  ; fully-qualified     # 🥼 E11.0 lab coat
+1F9BA                                                  ; fully-qualified     # 🦺 E12.0 safety vest
+1F454                                                  ; fully-qualified     # 👔 E0.6 necktie
+1F455                                                  ; fully-qualified     # 👕 E0.6 t-shirt
+1F456                                                  ; fully-qualified     # 👖 E0.6 jeans
+1F9E3                                                  ; fully-qualified     # 🧣 E5.0 scarf
+1F9E4                                                  ; fully-qualified     # 🧤 E5.0 gloves
+1F9E5                                                  ; fully-qualified     # 🧥 E5.0 coat
+1F9E6                                                  ; fully-qualified     # 🧦 E5.0 socks
+1F457                                                  ; fully-qualified     # 👗 E0.6 dress
+1F458                                                  ; fully-qualified     # 👘 E0.6 kimono
+1F97B                                                  ; fully-qualified     # 🥻 E12.0 sari
+1FA71                                                  ; fully-qualified     # 🩱 E12.0 one-piece swimsuit
+1FA72                                                  ; fully-qualified     # 🩲 E12.0 briefs
+1FA73                                                  ; fully-qualified     # 🩳 E12.0 shorts
+1F459                                                  ; fully-qualified     # 👙 E0.6 bikini
+1F45A                                                  ; fully-qualified     # 👚 E0.6 woman’s clothes
+1FAAD                                                  ; fully-qualified     # 🪭 E15.0 folding hand fan
+1F45B                                                  ; fully-qualified     # 👛 E0.6 purse
+1F45C                                                  ; fully-qualified     # 👜 E0.6 handbag
+1F45D                                                  ; fully-qualified     # 👝 E0.6 clutch bag
+1F6CD FE0F                                             ; fully-qualified     # 🛍️ E0.7 shopping bags
+1F6CD                                                  ; unqualified         # 🛍 E0.7 shopping bags
+1F392                                                  ; fully-qualified     # 🎒 E0.6 backpack
+1FA74                                                  ; fully-qualified     # 🩴 E13.0 thong sandal
+1F45E                                                  ; fully-qualified     # 👞 E0.6 man’s shoe
+1F45F                                                  ; fully-qualified     # 👟 E0.6 running shoe
+1F97E                                                  ; fully-qualified     # 🥾 E11.0 hiking boot
+1F97F                                                  ; fully-qualified     # 🥿 E11.0 flat shoe
+1F460                                                  ; fully-qualified     # 👠 E0.6 high-heeled shoe
+1F461                                                  ; fully-qualified     # 👡 E0.6 woman’s sandal
+1FA70                                                  ; fully-qualified     # 🩰 E12.0 ballet shoes
+1F462                                                  ; fully-qualified     # 👢 E0.6 woman’s boot
+1FAAE                                                  ; fully-qualified     # 🪮 E15.0 hair pick
+1F451                                                  ; fully-qualified     # 👑 E0.6 crown
+1F452                                                  ; fully-qualified     # 👒 E0.6 woman’s hat
+1F3A9                                                  ; fully-qualified     # 🎩 E0.6 top hat
+1F393                                                  ; fully-qualified     # 🎓 E0.6 graduation cap
+1F9E2                                                  ; fully-qualified     # 🧢 E5.0 billed cap
+1FA96                                                  ; fully-qualified     # 🪖 E13.0 military helmet
+26D1 FE0F                                              ; fully-qualified     # ⛑️ E0.7 rescue worker’s helmet
+26D1                                                   ; unqualified         # ⛑ E0.7 rescue worker’s helmet
+1F4FF                                                  ; fully-qualified     # 📿 E1.0 prayer beads
+1F484                                                  ; fully-qualified     # 💄 E0.6 lipstick
+1F48D                                                  ; fully-qualified     # 💍 E0.6 ring
+1F48E                                                  ; fully-qualified     # 💎 E0.6 gem stone
+
+# subgroup: sound
+1F507                                                  ; fully-qualified     # 🔇 E1.0 muted speaker
+1F508                                                  ; fully-qualified     # 🔈 E0.7 speaker low volume
+1F509                                                  ; fully-qualified     # 🔉 E1.0 speaker medium volume
+1F50A                                                  ; fully-qualified     # 🔊 E0.6 speaker high volume
+1F4E2                                                  ; fully-qualified     # 📢 E0.6 loudspeaker
+1F4E3                                                  ; fully-qualified     # 📣 E0.6 megaphone
+1F4EF                                                  ; fully-qualified     # 📯 E1.0 postal horn
+1F514                                                  ; fully-qualified     # 🔔 E0.6 bell
+1F515                                                  ; fully-qualified     # 🔕 E1.0 bell with slash
+
+# subgroup: music
+1F3BC                                                  ; fully-qualified     # 🎼 E0.6 musical score
+1F3B5                                                  ; fully-qualified     # 🎵 E0.6 musical note
+1F3B6                                                  ; fully-qualified     # 🎶 E0.6 musical notes
+1F399 FE0F                                             ; fully-qualified     # 🎙️ E0.7 studio microphone
+1F399                                                  ; unqualified         # 🎙 E0.7 studio microphone
+1F39A FE0F                                             ; fully-qualified     # 🎚️ E0.7 level slider
+1F39A                                                  ; unqualified         # 🎚 E0.7 level slider
+1F39B FE0F                                             ; fully-qualified     # 🎛️ E0.7 control knobs
+1F39B                                                  ; unqualified         # 🎛 E0.7 control knobs
+1F3A4                                                  ; fully-qualified     # 🎤 E0.6 microphone
+1F3A7                                                  ; fully-qualified     # 🎧 E0.6 headphone
+1F4FB                                                  ; fully-qualified     # 📻 E0.6 radio
+
+# subgroup: musical-instrument
+1F3B7                                                  ; fully-qualified     # 🎷 E0.6 saxophone
+1FA97                                                  ; fully-qualified     # 🪗 E13.0 accordion
+1F3B8                                                  ; fully-qualified     # 🎸 E0.6 guitar
+1F3B9                                                  ; fully-qualified     # 🎹 E0.6 musical keyboard
+1F3BA                                                  ; fully-qualified     # 🎺 E0.6 trumpet
+1F3BB                                                  ; fully-qualified     # 🎻 E0.6 violin
+1FA95                                                  ; fully-qualified     # 🪕 E12.0 banjo
+1F941                                                  ; fully-qualified     # 🥁 E3.0 drum
+1FA98                                                  ; fully-qualified     # 🪘 E13.0 long drum
+1FA87                                                  ; fully-qualified     # 🪇 E15.0 maracas
+1FA88                                                  ; fully-qualified     # 🪈 E15.0 flute
+
+# subgroup: phone
+1F4F1                                                  ; fully-qualified     # 📱 E0.6 mobile phone
+1F4F2                                                  ; fully-qualified     # 📲 E0.6 mobile phone with arrow
+260E FE0F                                              ; fully-qualified     # ☎️ E0.6 telephone
+260E                                                   ; unqualified         # ☎ E0.6 telephone
+1F4DE                                                  ; fully-qualified     # 📞 E0.6 telephone receiver
+1F4DF                                                  ; fully-qualified     # 📟 E0.6 pager
+1F4E0                                                  ; fully-qualified     # 📠 E0.6 fax machine
+
+# subgroup: computer
+1F50B                                                  ; fully-qualified     # 🔋 E0.6 battery
+1FAAB                                                  ; fully-qualified     # 🪫 E14.0 low battery
+1F50C                                                  ; fully-qualified     # 🔌 E0.6 electric plug
+1F4BB                                                  ; fully-qualified     # 💻 E0.6 laptop
+1F5A5 FE0F                                             ; fully-qualified     # 🖥️ E0.7 desktop computer
+1F5A5                                                  ; unqualified         # 🖥 E0.7 desktop computer
+1F5A8 FE0F                                             ; fully-qualified     # 🖨️ E0.7 printer
+1F5A8                                                  ; unqualified         # 🖨 E0.7 printer
+2328 FE0F                                              ; fully-qualified     # ⌨️ E1.0 keyboard
+2328                                                   ; unqualified         # ⌨ E1.0 keyboard
+1F5B1 FE0F                                             ; fully-qualified     # 🖱️ E0.7 computer mouse
+1F5B1                                                  ; unqualified         # 🖱 E0.7 computer mouse
+1F5B2 FE0F                                             ; fully-qualified     # 🖲️ E0.7 trackball
+1F5B2                                                  ; unqualified         # 🖲 E0.7 trackball
+1F4BD                                                  ; fully-qualified     # 💽 E0.6 computer disk
+1F4BE                                                  ; fully-qualified     # 💾 E0.6 floppy disk
+1F4BF                                                  ; fully-qualified     # 💿 E0.6 optical disk
+1F4C0                                                  ; fully-qualified     # 📀 E0.6 dvd
+1F9EE                                                  ; fully-qualified     # 🧮 E11.0 abacus
+
+# subgroup: light & video
+1F3A5                                                  ; fully-qualified     # 🎥 E0.6 movie camera
+1F39E FE0F                                             ; fully-qualified     # 🎞️ E0.7 film frames
+1F39E                                                  ; unqualified         # 🎞 E0.7 film frames
+1F4FD FE0F                                             ; fully-qualified     # 📽️ E0.7 film projector
+1F4FD                                                  ; unqualified         # 📽 E0.7 film projector
+1F3AC                                                  ; fully-qualified     # 🎬 E0.6 clapper board
+1F4FA                                                  ; fully-qualified     # 📺 E0.6 television
+1F4F7                                                  ; fully-qualified     # 📷 E0.6 camera
+1F4F8                                                  ; fully-qualified     # 📸 E1.0 camera with flash
+1F4F9                                                  ; fully-qualified     # 📹 E0.6 video camera
+1F4FC                                                  ; fully-qualified     # 📼 E0.6 videocassette
+1F50D                                                  ; fully-qualified     # 🔍 E0.6 magnifying glass tilted left
+1F50E                                                  ; fully-qualified     # 🔎 E0.6 magnifying glass tilted right
+1F56F FE0F                                             ; fully-qualified     # 🕯️ E0.7 candle
+1F56F                                                  ; unqualified         # 🕯 E0.7 candle
+1F4A1                                                  ; fully-qualified     # 💡 E0.6 light bulb
+1F526                                                  ; fully-qualified     # 🔦 E0.6 flashlight
+1F3EE                                                  ; fully-qualified     # 🏮 E0.6 red paper lantern
+1FA94                                                  ; fully-qualified     # 🪔 E12.0 diya lamp
+
+# subgroup: book-paper
+1F4D4                                                  ; fully-qualified     # 📔 E0.6 notebook with decorative cover
+1F4D5                                                  ; fully-qualified     # 📕 E0.6 closed book
+1F4D6                                                  ; fully-qualified     # 📖 E0.6 open book
+1F4D7                                                  ; fully-qualified     # 📗 E0.6 green book
+1F4D8                                                  ; fully-qualified     # 📘 E0.6 blue book
+1F4D9                                                  ; fully-qualified     # 📙 E0.6 orange book
+1F4DA                                                  ; fully-qualified     # 📚 E0.6 books
+1F4D3                                                  ; fully-qualified     # 📓 E0.6 notebook
+1F4D2                                                  ; fully-qualified     # 📒 E0.6 ledger
+1F4C3                                                  ; fully-qualified     # 📃 E0.6 page with curl
+1F4DC                                                  ; fully-qualified     # 📜 E0.6 scroll
+1F4C4                                                  ; fully-qualified     # 📄 E0.6 page facing up
+1F4F0                                                  ; fully-qualified     # 📰 E0.6 newspaper
+1F5DE FE0F                                             ; fully-qualified     # 🗞️ E0.7 rolled-up newspaper
+1F5DE                                                  ; unqualified         # 🗞 E0.7 rolled-up newspaper
+1F4D1                                                  ; fully-qualified     # 📑 E0.6 bookmark tabs
+1F516                                                  ; fully-qualified     # 🔖 E0.6 bookmark
+1F3F7 FE0F                                             ; fully-qualified     # 🏷️ E0.7 label
+1F3F7                                                  ; unqualified         # 🏷 E0.7 label
+
+# subgroup: money
+1F4B0                                                  ; fully-qualified     # 💰 E0.6 money bag
+1FA99                                                  ; fully-qualified     # 🪙 E13.0 coin
+1F4B4                                                  ; fully-qualified     # 💴 E0.6 yen banknote
+1F4B5                                                  ; fully-qualified     # 💵 E0.6 dollar banknote
+1F4B6                                                  ; fully-qualified     # 💶 E1.0 euro banknote
+1F4B7                                                  ; fully-qualified     # 💷 E1.0 pound banknote
+1F4B8                                                  ; fully-qualified     # 💸 E0.6 money with wings
+1F4B3                                                  ; fully-qualified     # 💳 E0.6 credit card
+1F9FE                                                  ; fully-qualified     # 🧾 E11.0 receipt
+1F4B9                                                  ; fully-qualified     # 💹 E0.6 chart increasing with yen
+
+# subgroup: mail
+2709 FE0F                                              ; fully-qualified     # ✉️ E0.6 envelope
+2709                                                   ; unqualified         # ✉ E0.6 envelope
+1F4E7                                                  ; fully-qualified     # 📧 E0.6 e-mail
+1F4E8                                                  ; fully-qualified     # 📨 E0.6 incoming envelope
+1F4E9                                                  ; fully-qualified     # 📩 E0.6 envelope with arrow
+1F4E4                                                  ; fully-qualified     # 📤 E0.6 outbox tray
+1F4E5                                                  ; fully-qualified     # 📥 E0.6 inbox tray
+1F4E6                                                  ; fully-qualified     # 📦 E0.6 package
+1F4EB                                                  ; fully-qualified     # 📫 E0.6 closed mailbox with raised flag
+1F4EA                                                  ; fully-qualified     # 📪 E0.6 closed mailbox with lowered flag
+1F4EC                                                  ; fully-qualified     # 📬 E0.7 open mailbox with raised flag
+1F4ED                                                  ; fully-qualified     # 📭 E0.7 open mailbox with lowered flag
+1F4EE                                                  ; fully-qualified     # 📮 E0.6 postbox
+1F5F3 FE0F                                             ; fully-qualified     # 🗳️ E0.7 ballot box with ballot
+1F5F3                                                  ; unqualified         # 🗳 E0.7 ballot box with ballot
+
+# subgroup: writing
+270F FE0F                                              ; fully-qualified     # ✏️ E0.6 pencil
+270F                                                   ; unqualified         # ✏ E0.6 pencil
+2712 FE0F                                              ; fully-qualified     # ✒️ E0.6 black nib
+2712                                                   ; unqualified         # ✒ E0.6 black nib
+1F58B FE0F                                             ; fully-qualified     # 🖋️ E0.7 fountain pen
+1F58B                                                  ; unqualified         # 🖋 E0.7 fountain pen
+1F58A FE0F                                             ; fully-qualified     # 🖊️ E0.7 pen
+1F58A                                                  ; unqualified         # 🖊 E0.7 pen
+1F58C FE0F                                             ; fully-qualified     # 🖌️ E0.7 paintbrush
+1F58C                                                  ; unqualified         # 🖌 E0.7 paintbrush
+1F58D FE0F                                             ; fully-qualified     # 🖍️ E0.7 crayon
+1F58D                                                  ; unqualified         # 🖍 E0.7 crayon
+1F4DD                                                  ; fully-qualified     # 📝 E0.6 memo
+
+# subgroup: office
+1F4BC                                                  ; fully-qualified     # 💼 E0.6 briefcase
+1F4C1                                                  ; fully-qualified     # 📁 E0.6 file folder
+1F4C2                                                  ; fully-qualified     # 📂 E0.6 open file folder
+1F5C2 FE0F                                             ; fully-qualified     # 🗂️ E0.7 card index dividers
+1F5C2                                                  ; unqualified         # 🗂 E0.7 card index dividers
+1F4C5                                                  ; fully-qualified     # 📅 E0.6 calendar
+1F4C6                                                  ; fully-qualified     # 📆 E0.6 tear-off calendar
+1F5D2 FE0F                                             ; fully-qualified     # 🗒️ E0.7 spiral notepad
+1F5D2                                                  ; unqualified         # 🗒 E0.7 spiral notepad
+1F5D3 FE0F                                             ; fully-qualified     # 🗓️ E0.7 spiral calendar
+1F5D3                                                  ; unqualified         # 🗓 E0.7 spiral calendar
+1F4C7                                                  ; fully-qualified     # 📇 E0.6 card index
+1F4C8                                                  ; fully-qualified     # 📈 E0.6 chart increasing
+1F4C9                                                  ; fully-qualified     # 📉 E0.6 chart decreasing
+1F4CA                                                  ; fully-qualified     # 📊 E0.6 bar chart
+1F4CB                                                  ; fully-qualified     # 📋 E0.6 clipboard
+1F4CC                                                  ; fully-qualified     # 📌 E0.6 pushpin
+1F4CD                                                  ; fully-qualified     # 📍 E0.6 round pushpin
+1F4CE                                                  ; fully-qualified     # 📎 E0.6 paperclip
+1F587 FE0F                                             ; fully-qualified     # 🖇️ E0.7 linked paperclips
+1F587                                                  ; unqualified         # 🖇 E0.7 linked paperclips
+1F4CF                                                  ; fully-qualified     # 📏 E0.6 straight ruler
+1F4D0                                                  ; fully-qualified     # 📐 E0.6 triangular ruler
+2702 FE0F                                              ; fully-qualified     # ✂️ E0.6 scissors
+2702                                                   ; unqualified         # ✂ E0.6 scissors
+1F5C3 FE0F                                             ; fully-qualified     # 🗃️ E0.7 card file box
+1F5C3                                                  ; unqualified         # 🗃 E0.7 card file box
+1F5C4 FE0F                                             ; fully-qualified     # 🗄️ E0.7 file cabinet
+1F5C4                                                  ; unqualified         # 🗄 E0.7 file cabinet
+1F5D1 FE0F                                             ; fully-qualified     # 🗑️ E0.7 wastebasket
+1F5D1                                                  ; unqualified         # 🗑 E0.7 wastebasket
+
+# subgroup: lock
+1F512                                                  ; fully-qualified     # 🔒 E0.6 locked
+1F513                                                  ; fully-qualified     # 🔓 E0.6 unlocked
+1F50F                                                  ; fully-qualified     # 🔏 E0.6 locked with pen
+1F510                                                  ; fully-qualified     # 🔐 E0.6 locked with key
+1F511                                                  ; fully-qualified     # 🔑 E0.6 key
+1F5DD FE0F                                             ; fully-qualified     # 🗝️ E0.7 old key
+1F5DD                                                  ; unqualified         # 🗝 E0.7 old key
+
+# subgroup: tool
+1F528                                                  ; fully-qualified     # 🔨 E0.6 hammer
+1FA93                                                  ; fully-qualified     # 🪓 E12.0 axe
+26CF FE0F                                              ; fully-qualified     # ⛏️ E0.7 pick
+26CF                                                   ; unqualified         # ⛏ E0.7 pick
+2692 FE0F                                              ; fully-qualified     # ⚒️ E1.0 hammer and pick
+2692                                                   ; unqualified         # ⚒ E1.0 hammer and pick
+1F6E0 FE0F                                             ; fully-qualified     # 🛠️ E0.7 hammer and wrench
+1F6E0                                                  ; unqualified         # 🛠 E0.7 hammer and wrench
+1F5E1 FE0F                                             ; fully-qualified     # 🗡️ E0.7 dagger
+1F5E1                                                  ; unqualified         # 🗡 E0.7 dagger
+2694 FE0F                                              ; fully-qualified     # ⚔️ E1.0 crossed swords
+2694                                                   ; unqualified         # ⚔ E1.0 crossed swords
+1F4A3                                                  ; fully-qualified     # 💣 E0.6 bomb
+1FA83                                                  ; fully-qualified     # 🪃 E13.0 boomerang
+1F3F9                                                  ; fully-qualified     # 🏹 E1.0 bow and arrow
+1F6E1 FE0F                                             ; fully-qualified     # 🛡️ E0.7 shield
+1F6E1                                                  ; unqualified         # 🛡 E0.7 shield
+1FA9A                                                  ; fully-qualified     # 🪚 E13.0 carpentry saw
+1F527                                                  ; fully-qualified     # 🔧 E0.6 wrench
+1FA9B                                                  ; fully-qualified     # 🪛 E13.0 screwdriver
+1F529                                                  ; fully-qualified     # 🔩 E0.6 nut and bolt
+2699 FE0F                                              ; fully-qualified     # ⚙️ E1.0 gear
+2699                                                   ; unqualified         # ⚙ E1.0 gear
+1F5DC FE0F                                             ; fully-qualified     # 🗜️ E0.7 clamp
+1F5DC                                                  ; unqualified         # 🗜 E0.7 clamp
+2696 FE0F                                              ; fully-qualified     # ⚖️ E1.0 balance scale
+2696                                                   ; unqualified         # ⚖ E1.0 balance scale
+1F9AF                                                  ; fully-qualified     # 🦯 E12.0 white cane
+1F517                                                  ; fully-qualified     # 🔗 E0.6 link
+26D3 FE0F 200D 1F4A5                                   ; fully-qualified     # ⛓️‍💥 E15.1 broken chain
+26D3 200D 1F4A5                                        ; unqualified         # ⛓‍💥 E15.1 broken chain
+26D3 FE0F                                              ; fully-qualified     # ⛓️ E0.7 chains
+26D3                                                   ; unqualified         # ⛓ E0.7 chains
+1FA9D                                                  ; fully-qualified     # 🪝 E13.0 hook
+1F9F0                                                  ; fully-qualified     # 🧰 E11.0 toolbox
+1F9F2                                                  ; fully-qualified     # 🧲 E11.0 magnet
+1FA9C                                                  ; fully-qualified     # 🪜 E13.0 ladder
+
+# subgroup: science
+2697 FE0F                                              ; fully-qualified     # ⚗️ E1.0 alembic
+2697                                                   ; unqualified         # ⚗ E1.0 alembic
+1F9EA                                                  ; fully-qualified     # 🧪 E11.0 test tube
+1F9EB                                                  ; fully-qualified     # 🧫 E11.0 petri dish
+1F9EC                                                  ; fully-qualified     # 🧬 E11.0 dna
+1F52C                                                  ; fully-qualified     # 🔬 E1.0 microscope
+1F52D                                                  ; fully-qualified     # 🔭 E1.0 telescope
+1F4E1                                                  ; fully-qualified     # 📡 E0.6 satellite antenna
+
+# subgroup: medical
+1F489                                                  ; fully-qualified     # 💉 E0.6 syringe
+1FA78                                                  ; fully-qualified     # 🩸 E12.0 drop of blood
+1F48A                                                  ; fully-qualified     # 💊 E0.6 pill
+1FA79                                                  ; fully-qualified     # 🩹 E12.0 adhesive bandage
+1FA7C                                                  ; fully-qualified     # 🩼 E14.0 crutch
+1FA7A                                                  ; fully-qualified     # 🩺 E12.0 stethoscope
+1FA7B                                                  ; fully-qualified     # 🩻 E14.0 x-ray
+
+# subgroup: household
+1F6AA                                                  ; fully-qualified     # 🚪 E0.6 door
+1F6D7                                                  ; fully-qualified     # 🛗 E13.0 elevator
+1FA9E                                                  ; fully-qualified     # 🪞 E13.0 mirror
+1FA9F                                                  ; fully-qualified     # 🪟 E13.0 window
+1F6CF FE0F                                             ; fully-qualified     # 🛏️ E0.7 bed
+1F6CF                                                  ; unqualified         # 🛏 E0.7 bed
+1F6CB FE0F                                             ; fully-qualified     # 🛋️ E0.7 couch and lamp
+1F6CB                                                  ; unqualified         # 🛋 E0.7 couch and lamp
+1FA91                                                  ; fully-qualified     # 🪑 E12.0 chair
+1F6BD                                                  ; fully-qualified     # 🚽 E0.6 toilet
+1FAA0                                                  ; fully-qualified     # 🪠 E13.0 plunger
+1F6BF                                                  ; fully-qualified     # 🚿 E1.0 shower
+1F6C1                                                  ; fully-qualified     # 🛁 E1.0 bathtub
+1FAA4                                                  ; fully-qualified     # 🪤 E13.0 mouse trap
+1FA92                                                  ; fully-qualified     # 🪒 E12.0 razor
+1F9F4                                                  ; fully-qualified     # 🧴 E11.0 lotion bottle
+1F9F7                                                  ; fully-qualified     # 🧷 E11.0 safety pin
+1F9F9                                                  ; fully-qualified     # 🧹 E11.0 broom
+1F9FA                                                  ; fully-qualified     # 🧺 E11.0 basket
+1F9FB                                                  ; fully-qualified     # 🧻 E11.0 roll of paper
+1FAA3                                                  ; fully-qualified     # 🪣 E13.0 bucket
+1F9FC                                                  ; fully-qualified     # 🧼 E11.0 soap
+1FAE7                                                  ; fully-qualified     # 🫧 E14.0 bubbles
+1FAA5                                                  ; fully-qualified     # 🪥 E13.0 toothbrush
+1F9FD                                                  ; fully-qualified     # 🧽 E11.0 sponge
+1F9EF                                                  ; fully-qualified     # 🧯 E11.0 fire extinguisher
+1F6D2                                                  ; fully-qualified     # 🛒 E3.0 shopping cart
+
+# subgroup: other-object
+1F6AC                                                  ; fully-qualified     # 🚬 E0.6 cigarette
+26B0 FE0F                                              ; fully-qualified     # ⚰️ E1.0 coffin
+26B0                                                   ; unqualified         # ⚰ E1.0 coffin
+1FAA6                                                  ; fully-qualified     # 🪦 E13.0 headstone
+26B1 FE0F                                              ; fully-qualified     # ⚱️ E1.0 funeral urn
+26B1                                                   ; unqualified         # ⚱ E1.0 funeral urn
+1F9FF                                                  ; fully-qualified     # 🧿 E11.0 nazar amulet
+1FAAC                                                  ; fully-qualified     # 🪬 E14.0 hamsa
+1F5FF                                                  ; fully-qualified     # 🗿 E0.6 moai
+1FAA7                                                  ; fully-qualified     # 🪧 E13.0 placard
+1FAAA                                                  ; fully-qualified     # 🪪 E14.0 identification card
+
+# Objects subtotal:		312
+# Objects subtotal:		312	w/o modifiers
+
+# group: Symbols
+
+# subgroup: transport-sign
+1F3E7                                                  ; fully-qualified     # 🏧 E0.6 ATM sign
+1F6AE                                                  ; fully-qualified     # 🚮 E1.0 litter in bin sign
+1F6B0                                                  ; fully-qualified     # 🚰 E1.0 potable water
+267F                                                   ; fully-qualified     # ♿ E0.6 wheelchair symbol
+1F6B9                                                  ; fully-qualified     # 🚹 E0.6 men’s room
+1F6BA                                                  ; fully-qualified     # 🚺 E0.6 women’s room
+1F6BB                                                  ; fully-qualified     # 🚻 E0.6 restroom
+1F6BC                                                  ; fully-qualified     # 🚼 E0.6 baby symbol
+1F6BE                                                  ; fully-qualified     # 🚾 E0.6 water closet
+1F6C2                                                  ; fully-qualified     # 🛂 E1.0 passport control
+1F6C3                                                  ; fully-qualified     # 🛃 E1.0 customs
+1F6C4                                                  ; fully-qualified     # 🛄 E1.0 baggage claim
+1F6C5                                                  ; fully-qualified     # 🛅 E1.0 left luggage
+
+# subgroup: warning
+26A0 FE0F                                              ; fully-qualified     # ⚠️ E0.6 warning
+26A0                                                   ; unqualified         # ⚠ E0.6 warning
+1F6B8                                                  ; fully-qualified     # 🚸 E1.0 children crossing
+26D4                                                   ; fully-qualified     # ⛔ E0.6 no entry
+1F6AB                                                  ; fully-qualified     # 🚫 E0.6 prohibited
+1F6B3                                                  ; fully-qualified     # 🚳 E1.0 no bicycles
+1F6AD                                                  ; fully-qualified     # 🚭 E0.6 no smoking
+1F6AF                                                  ; fully-qualified     # 🚯 E1.0 no littering
+1F6B1                                                  ; fully-qualified     # 🚱 E1.0 non-potable water
+1F6B7                                                  ; fully-qualified     # 🚷 E1.0 no pedestrians
+1F4F5                                                  ; fully-qualified     # 📵 E1.0 no mobile phones
+1F51E                                                  ; fully-qualified     # 🔞 E0.6 no one under eighteen
+2622 FE0F                                              ; fully-qualified     # ☢️ E1.0 radioactive
+2622                                                   ; unqualified         # ☢ E1.0 radioactive
+2623 FE0F                                              ; fully-qualified     # ☣️ E1.0 biohazard
+2623                                                   ; unqualified         # ☣ E1.0 biohazard
+
+# subgroup: arrow
+2B06 FE0F                                              ; fully-qualified     # ⬆️ E0.6 up arrow
+2B06                                                   ; unqualified         # ⬆ E0.6 up arrow
+2197 FE0F                                              ; fully-qualified     # ↗️ E0.6 up-right arrow
+2197                                                   ; unqualified         # ↗ E0.6 up-right arrow
+27A1 FE0F                                              ; fully-qualified     # ➡️ E0.6 right arrow
+27A1                                                   ; unqualified         # ➡ E0.6 right arrow
+2198 FE0F                                              ; fully-qualified     # ↘️ E0.6 down-right arrow
+2198                                                   ; unqualified         # ↘ E0.6 down-right arrow
+2B07 FE0F                                              ; fully-qualified     # ⬇️ E0.6 down arrow
+2B07                                                   ; unqualified         # ⬇ E0.6 down arrow
+2199 FE0F                                              ; fully-qualified     # ↙️ E0.6 down-left arrow
+2199                                                   ; unqualified         # ↙ E0.6 down-left arrow
+2B05 FE0F                                              ; fully-qualified     # ⬅️ E0.6 left arrow
+2B05                                                   ; unqualified         # ⬅ E0.6 left arrow
+2196 FE0F                                              ; fully-qualified     # ↖️ E0.6 up-left arrow
+2196                                                   ; unqualified         # ↖ E0.6 up-left arrow
+2195 FE0F                                              ; fully-qualified     # ↕️ E0.6 up-down arrow
+2195                                                   ; unqualified         # ↕ E0.6 up-down arrow
+2194 FE0F                                              ; fully-qualified     # ↔️ E0.6 left-right arrow
+2194                                                   ; unqualified         # ↔ E0.6 left-right arrow
+21A9 FE0F                                              ; fully-qualified     # ↩️ E0.6 right arrow curving left
+21A9                                                   ; unqualified         # ↩ E0.6 right arrow curving left
+21AA FE0F                                              ; fully-qualified     # ↪️ E0.6 left arrow curving right
+21AA                                                   ; unqualified         # ↪ E0.6 left arrow curving right
+2934 FE0F                                              ; fully-qualified     # ⤴️ E0.6 right arrow curving up
+2934                                                   ; unqualified         # ⤴ E0.6 right arrow curving up
+2935 FE0F                                              ; fully-qualified     # ⤵️ E0.6 right arrow curving down
+2935                                                   ; unqualified         # ⤵ E0.6 right arrow curving down
+1F503                                                  ; fully-qualified     # 🔃 E0.6 clockwise vertical arrows
+1F504                                                  ; fully-qualified     # 🔄 E1.0 counterclockwise arrows button
+1F519                                                  ; fully-qualified     # 🔙 E0.6 BACK arrow
+1F51A                                                  ; fully-qualified     # 🔚 E0.6 END arrow
+1F51B                                                  ; fully-qualified     # 🔛 E0.6 ON! arrow
+1F51C                                                  ; fully-qualified     # 🔜 E0.6 SOON arrow
+1F51D                                                  ; fully-qualified     # 🔝 E0.6 TOP arrow
+
+# subgroup: religion
+1F6D0                                                  ; fully-qualified     # 🛐 E1.0 place of worship
+269B FE0F                                              ; fully-qualified     # ⚛️ E1.0 atom symbol
+269B                                                   ; unqualified         # ⚛ E1.0 atom symbol
+1F549 FE0F                                             ; fully-qualified     # 🕉️ E0.7 om
+1F549                                                  ; unqualified         # 🕉 E0.7 om
+2721 FE0F                                              ; fully-qualified     # ✡️ E0.7 star of David
+2721                                                   ; unqualified         # ✡ E0.7 star of David
+2638 FE0F                                              ; fully-qualified     # ☸️ E0.7 wheel of dharma
+2638                                                   ; unqualified         # ☸ E0.7 wheel of dharma
+262F FE0F                                              ; fully-qualified     # ☯️ E0.7 yin yang
+262F                                                   ; unqualified         # ☯ E0.7 yin yang
+271D FE0F                                              ; fully-qualified     # ✝️ E0.7 latin cross
+271D                                                   ; unqualified         # ✝ E0.7 latin cross
+2626 FE0F                                              ; fully-qualified     # ☦️ E1.0 orthodox cross
+2626                                                   ; unqualified         # ☦ E1.0 orthodox cross
+262A FE0F                                              ; fully-qualified     # ☪️ E0.7 star and crescent
+262A                                                   ; unqualified         # ☪ E0.7 star and crescent
+262E FE0F                                              ; fully-qualified     # ☮️ E1.0 peace symbol
+262E                                                   ; unqualified         # ☮ E1.0 peace symbol
+1F54E                                                  ; fully-qualified     # 🕎 E1.0 menorah
+1F52F                                                  ; fully-qualified     # 🔯 E0.6 dotted six-pointed star
+1FAAF                                                  ; fully-qualified     # 🪯 E15.0 khanda
+
+# subgroup: zodiac
+2648                                                   ; fully-qualified     # ♈ E0.6 Aries
+2649                                                   ; fully-qualified     # ♉ E0.6 Taurus
+264A                                                   ; fully-qualified     # ♊ E0.6 Gemini
+264B                                                   ; fully-qualified     # ♋ E0.6 Cancer
+264C                                                   ; fully-qualified     # ♌ E0.6 Leo
+264D                                                   ; fully-qualified     # ♍ E0.6 Virgo
+264E                                                   ; fully-qualified     # ♎ E0.6 Libra
+264F                                                   ; fully-qualified     # ♏ E0.6 Scorpio
+2650                                                   ; fully-qualified     # ♐ E0.6 Sagittarius
+2651                                                   ; fully-qualified     # ♑ E0.6 Capricorn
+2652                                                   ; fully-qualified     # ♒ E0.6 Aquarius
+2653                                                   ; fully-qualified     # ♓ E0.6 Pisces
+26CE                                                   ; fully-qualified     # ⛎ E0.6 Ophiuchus
+
+# subgroup: av-symbol
+1F500                                                  ; fully-qualified     # 🔀 E1.0 shuffle tracks button
+1F501                                                  ; fully-qualified     # 🔁 E1.0 repeat button
+1F502                                                  ; fully-qualified     # 🔂 E1.0 repeat single button
+25B6 FE0F                                              ; fully-qualified     # ▶️ E0.6 play button
+25B6                                                   ; unqualified         # ▶ E0.6 play button
+23E9                                                   ; fully-qualified     # ⏩ E0.6 fast-forward button
+23ED FE0F                                              ; fully-qualified     # ⏭️ E0.7 next track button
+23ED                                                   ; unqualified         # ⏭ E0.7 next track button
+23EF FE0F                                              ; fully-qualified     # ⏯️ E1.0 play or pause button
+23EF                                                   ; unqualified         # ⏯ E1.0 play or pause button
+25C0 FE0F                                              ; fully-qualified     # ◀️ E0.6 reverse button
+25C0                                                   ; unqualified         # ◀ E0.6 reverse button
+23EA                                                   ; fully-qualified     # ⏪ E0.6 fast reverse button
+23EE FE0F                                              ; fully-qualified     # ⏮️ E0.7 last track button
+23EE                                                   ; unqualified         # ⏮ E0.7 last track button
+1F53C                                                  ; fully-qualified     # 🔼 E0.6 upwards button
+23EB                                                   ; fully-qualified     # ⏫ E0.6 fast up button
+1F53D                                                  ; fully-qualified     # 🔽 E0.6 downwards button
+23EC                                                   ; fully-qualified     # ⏬ E0.6 fast down button
+23F8 FE0F                                              ; fully-qualified     # ⏸️ E0.7 pause button
+23F8                                                   ; unqualified         # ⏸ E0.7 pause button
+23F9 FE0F                                              ; fully-qualified     # ⏹️ E0.7 stop button
+23F9                                                   ; unqualified         # ⏹ E0.7 stop button
+23FA FE0F                                              ; fully-qualified     # ⏺️ E0.7 record button
+23FA                                                   ; unqualified         # ⏺ E0.7 record button
+23CF FE0F                                              ; fully-qualified     # ⏏️ E1.0 eject button
+23CF                                                   ; unqualified         # ⏏ E1.0 eject button
+1F3A6                                                  ; fully-qualified     # 🎦 E0.6 cinema
+1F505                                                  ; fully-qualified     # 🔅 E1.0 dim button
+1F506                                                  ; fully-qualified     # 🔆 E1.0 bright button
+1F4F6                                                  ; fully-qualified     # 📶 E0.6 antenna bars
+1F6DC                                                  ; fully-qualified     # 🛜 E15.0 wireless
+1F4F3                                                  ; fully-qualified     # 📳 E0.6 vibration mode
+1F4F4                                                  ; fully-qualified     # 📴 E0.6 mobile phone off
+
+# subgroup: gender
+2640 FE0F                                              ; fully-qualified     # ♀️ E4.0 female sign
+2640                                                   ; unqualified         # ♀ E4.0 female sign
+2642 FE0F                                              ; fully-qualified     # ♂️ E4.0 male sign
+2642                                                   ; unqualified         # ♂ E4.0 male sign
+26A7 FE0F                                              ; fully-qualified     # ⚧️ E13.0 transgender symbol
+26A7                                                   ; unqualified         # ⚧ E13.0 transgender symbol
+
+# subgroup: math
+2716 FE0F                                              ; fully-qualified     # ✖️ E0.6 multiply
+2716                                                   ; unqualified         # ✖ E0.6 multiply
+2795                                                   ; fully-qualified     # ➕ E0.6 plus
+2796                                                   ; fully-qualified     # ➖ E0.6 minus
+2797                                                   ; fully-qualified     # ➗ E0.6 divide
+1F7F0                                                  ; fully-qualified     # 🟰 E14.0 heavy equals sign
+267E FE0F                                              ; fully-qualified     # ♾️ E11.0 infinity
+267E                                                   ; unqualified         # ♾ E11.0 infinity
+
+# subgroup: punctuation
+203C FE0F                                              ; fully-qualified     # ‼️ E0.6 double exclamation mark
+203C                                                   ; unqualified         # ‼ E0.6 double exclamation mark
+2049 FE0F                                              ; fully-qualified     # ⁉️ E0.6 exclamation question mark
+2049                                                   ; unqualified         # ⁉ E0.6 exclamation question mark
+2753                                                   ; fully-qualified     # ❓ E0.6 red question mark
+2754                                                   ; fully-qualified     # ❔ E0.6 white question mark
+2755                                                   ; fully-qualified     # ❕ E0.6 white exclamation mark
+2757                                                   ; fully-qualified     # ❗ E0.6 red exclamation mark
+3030 FE0F                                              ; fully-qualified     # 〰️ E0.6 wavy dash
+3030                                                   ; unqualified         # 〰 E0.6 wavy dash
+
+# subgroup: currency
+1F4B1                                                  ; fully-qualified     # 💱 E0.6 currency exchange
+1F4B2                                                  ; fully-qualified     # 💲 E0.6 heavy dollar sign
+
+# subgroup: other-symbol
+2695 FE0F                                              ; fully-qualified     # ⚕️ E4.0 medical symbol
+2695                                                   ; unqualified         # ⚕ E4.0 medical symbol
+267B FE0F                                              ; fully-qualified     # ♻️ E0.6 recycling symbol
+267B                                                   ; unqualified         # ♻ E0.6 recycling symbol
+269C FE0F                                              ; fully-qualified     # ⚜️ E1.0 fleur-de-lis
+269C                                                   ; unqualified         # ⚜ E1.0 fleur-de-lis
+1F531                                                  ; fully-qualified     # 🔱 E0.6 trident emblem
+1F4DB                                                  ; fully-qualified     # 📛 E0.6 name badge
+1F530                                                  ; fully-qualified     # 🔰 E0.6 Japanese symbol for beginner
+2B55                                                   ; fully-qualified     # ⭕ E0.6 hollow red circle
+2705                                                   ; fully-qualified     # ✅ E0.6 check mark button
+2611 FE0F                                              ; fully-qualified     # ☑️ E0.6 check box with check
+2611                                                   ; unqualified         # ☑ E0.6 check box with check
+2714 FE0F                                              ; fully-qualified     # ✔️ E0.6 check mark
+2714                                                   ; unqualified         # ✔ E0.6 check mark
+274C                                                   ; fully-qualified     # ❌ E0.6 cross mark
+274E                                                   ; fully-qualified     # ❎ E0.6 cross mark button
+27B0                                                   ; fully-qualified     # ➰ E0.6 curly loop
+27BF                                                   ; fully-qualified     # ➿ E1.0 double curly loop
+303D FE0F                                              ; fully-qualified     # 〽️ E0.6 part alternation mark
+303D                                                   ; unqualified         # 〽 E0.6 part alternation mark
+2733 FE0F                                              ; fully-qualified     # ✳️ E0.6 eight-spoked asterisk
+2733                                                   ; unqualified         # ✳ E0.6 eight-spoked asterisk
+2734 FE0F                                              ; fully-qualified     # ✴️ E0.6 eight-pointed star
+2734                                                   ; unqualified         # ✴ E0.6 eight-pointed star
+2747 FE0F                                              ; fully-qualified     # ❇️ E0.6 sparkle
+2747                                                   ; unqualified         # ❇ E0.6 sparkle
+00A9 FE0F                                              ; fully-qualified     # ©️ E0.6 copyright
+00A9                                                   ; unqualified         # © E0.6 copyright
+00AE FE0F                                              ; fully-qualified     # ®️ E0.6 registered
+00AE                                                   ; unqualified         # ® E0.6 registered
+2122 FE0F                                              ; fully-qualified     # ™️ E0.6 trade mark
+2122                                                   ; unqualified         # ™ E0.6 trade mark
+
+# subgroup: keycap
+0023 FE0F 20E3                                         ; fully-qualified     # #️⃣ E0.6 keycap: #
+0023 20E3                                              ; unqualified         # #⃣ E0.6 keycap: #
+002A FE0F 20E3                                         ; fully-qualified     # *️⃣ E2.0 keycap: *
+002A 20E3                                              ; unqualified         # *⃣ E2.0 keycap: *
+0030 FE0F 20E3                                         ; fully-qualified     # 0️⃣ E0.6 keycap: 0
+0030 20E3                                              ; unqualified         # 0⃣ E0.6 keycap: 0
+0031 FE0F 20E3                                         ; fully-qualified     # 1️⃣ E0.6 keycap: 1
+0031 20E3                                              ; unqualified         # 1⃣ E0.6 keycap: 1
+0032 FE0F 20E3                                         ; fully-qualified     # 2️⃣ E0.6 keycap: 2
+0032 20E3                                              ; unqualified         # 2⃣ E0.6 keycap: 2
+0033 FE0F 20E3                                         ; fully-qualified     # 3️⃣ E0.6 keycap: 3
+0033 20E3                                              ; unqualified         # 3⃣ E0.6 keycap: 3
+0034 FE0F 20E3                                         ; fully-qualified     # 4️⃣ E0.6 keycap: 4
+0034 20E3                                              ; unqualified         # 4⃣ E0.6 keycap: 4
+0035 FE0F 20E3                                         ; fully-qualified     # 5️⃣ E0.6 keycap: 5
+0035 20E3                                              ; unqualified         # 5⃣ E0.6 keycap: 5
+0036 FE0F 20E3                                         ; fully-qualified     # 6️⃣ E0.6 keycap: 6
+0036 20E3                                              ; unqualified         # 6⃣ E0.6 keycap: 6
+0037 FE0F 20E3                                         ; fully-qualified     # 7️⃣ E0.6 keycap: 7
+0037 20E3                                              ; unqualified         # 7⃣ E0.6 keycap: 7
+0038 FE0F 20E3                                         ; fully-qualified     # 8️⃣ E0.6 keycap: 8
+0038 20E3                                              ; unqualified         # 8⃣ E0.6 keycap: 8
+0039 FE0F 20E3                                         ; fully-qualified     # 9️⃣ E0.6 keycap: 9
+0039 20E3                                              ; unqualified         # 9⃣ E0.6 keycap: 9
+1F51F                                                  ; fully-qualified     # 🔟 E0.6 keycap: 10
+
+# subgroup: alphanum
+1F520                                                  ; fully-qualified     # 🔠 E0.6 input latin uppercase
+1F521                                                  ; fully-qualified     # 🔡 E0.6 input latin lowercase
+1F522                                                  ; fully-qualified     # 🔢 E0.6 input numbers
+1F523                                                  ; fully-qualified     # 🔣 E0.6 input symbols
+1F524                                                  ; fully-qualified     # 🔤 E0.6 input latin letters
+1F170 FE0F                                             ; fully-qualified     # 🅰️ E0.6 A button (blood type)
+1F170                                                  ; unqualified         # 🅰 E0.6 A button (blood type)
+1F18E                                                  ; fully-qualified     # 🆎 E0.6 AB button (blood type)
+1F171 FE0F                                             ; fully-qualified     # 🅱️ E0.6 B button (blood type)
+1F171                                                  ; unqualified         # 🅱 E0.6 B button (blood type)
+1F191                                                  ; fully-qualified     # 🆑 E0.6 CL button
+1F192                                                  ; fully-qualified     # 🆒 E0.6 COOL button
+1F193                                                  ; fully-qualified     # 🆓 E0.6 FREE button
+2139 FE0F                                              ; fully-qualified     # ℹ️ E0.6 information
+2139                                                   ; unqualified         # ℹ E0.6 information
+1F194                                                  ; fully-qualified     # 🆔 E0.6 ID button
+24C2 FE0F                                              ; fully-qualified     # Ⓜ️ E0.6 circled M
+24C2                                                   ; unqualified         # Ⓜ E0.6 circled M
+1F195                                                  ; fully-qualified     # 🆕 E0.6 NEW button
+1F196                                                  ; fully-qualified     # 🆖 E0.6 NG button
+1F17E FE0F                                             ; fully-qualified     # 🅾️ E0.6 O button (blood type)
+1F17E                                                  ; unqualified         # 🅾 E0.6 O button (blood type)
+1F197                                                  ; fully-qualified     # 🆗 E0.6 OK button
+1F17F FE0F                                             ; fully-qualified     # 🅿️ E0.6 P button
+1F17F                                                  ; unqualified         # 🅿 E0.6 P button
+1F198                                                  ; fully-qualified     # 🆘 E0.6 SOS button
+1F199                                                  ; fully-qualified     # 🆙 E0.6 UP! button
+1F19A                                                  ; fully-qualified     # 🆚 E0.6 VS button
+1F201                                                  ; fully-qualified     # 🈁 E0.6 Japanese “here” button
+1F202 FE0F                                             ; fully-qualified     # 🈂️ E0.6 Japanese “service charge” button
+1F202                                                  ; unqualified         # 🈂 E0.6 Japanese “service charge” button
+1F237 FE0F                                             ; fully-qualified     # 🈷️ E0.6 Japanese “monthly amount” button
+1F237                                                  ; unqualified         # 🈷 E0.6 Japanese “monthly amount” button
+1F236                                                  ; fully-qualified     # 🈶 E0.6 Japanese “not free of charge” button
+1F22F                                                  ; fully-qualified     # 🈯 E0.6 Japanese “reserved” button
+1F250                                                  ; fully-qualified     # 🉐 E0.6 Japanese “bargain” button
+1F239                                                  ; fully-qualified     # 🈹 E0.6 Japanese “discount” button
+1F21A                                                  ; fully-qualified     # 🈚 E0.6 Japanese “free of charge” button
+1F232                                                  ; fully-qualified     # 🈲 E0.6 Japanese “prohibited” button
+1F251                                                  ; fully-qualified     # 🉑 E0.6 Japanese “acceptable” button
+1F238                                                  ; fully-qualified     # 🈸 E0.6 Japanese “application” button
+1F234                                                  ; fully-qualified     # 🈴 E0.6 Japanese “passing grade” button
+1F233                                                  ; fully-qualified     # 🈳 E0.6 Japanese “vacancy” button
+3297 FE0F                                              ; fully-qualified     # ㊗️ E0.6 Japanese “congratulations” button
+3297                                                   ; unqualified         # ㊗ E0.6 Japanese “congratulations” button
+3299 FE0F                                              ; fully-qualified     # ㊙️ E0.6 Japanese “secret” button
+3299                                                   ; unqualified         # ㊙ E0.6 Japanese “secret” button
+1F23A                                                  ; fully-qualified     # 🈺 E0.6 Japanese “open for business” button
+1F235                                                  ; fully-qualified     # 🈵 E0.6 Japanese “no vacancy” button
+
+# subgroup: geometric
+1F534                                                  ; fully-qualified     # 🔴 E0.6 red circle
+1F7E0                                                  ; fully-qualified     # 🟠 E12.0 orange circle
+1F7E1                                                  ; fully-qualified     # 🟡 E12.0 yellow circle
+1F7E2                                                  ; fully-qualified     # 🟢 E12.0 green circle
+1F535                                                  ; fully-qualified     # 🔵 E0.6 blue circle
+1F7E3                                                  ; fully-qualified     # 🟣 E12.0 purple circle
+1F7E4                                                  ; fully-qualified     # 🟤 E12.0 brown circle
+26AB                                                   ; fully-qualified     # ⚫ E0.6 black circle
+26AA                                                   ; fully-qualified     # ⚪ E0.6 white circle
+1F7E5                                                  ; fully-qualified     # 🟥 E12.0 red square
+1F7E7                                                  ; fully-qualified     # 🟧 E12.0 orange square
+1F7E8                                                  ; fully-qualified     # 🟨 E12.0 yellow square
+1F7E9                                                  ; fully-qualified     # 🟩 E12.0 green square
+1F7E6                                                  ; fully-qualified     # 🟦 E12.0 blue square
+1F7EA                                                  ; fully-qualified     # 🟪 E12.0 purple square
+1F7EB                                                  ; fully-qualified     # 🟫 E12.0 brown square
+2B1B                                                   ; fully-qualified     # ⬛ E0.6 black large square
+2B1C                                                   ; fully-qualified     # ⬜ E0.6 white large square
+25FC FE0F                                              ; fully-qualified     # ◼️ E0.6 black medium square
+25FC                                                   ; unqualified         # ◼ E0.6 black medium square
+25FB FE0F                                              ; fully-qualified     # ◻️ E0.6 white medium square
+25FB                                                   ; unqualified         # ◻ E0.6 white medium square
+25FE                                                   ; fully-qualified     # ◾ E0.6 black medium-small square
+25FD                                                   ; fully-qualified     # ◽ E0.6 white medium-small square
+25AA FE0F                                              ; fully-qualified     # ▪️ E0.6 black small square
+25AA                                                   ; unqualified         # ▪ E0.6 black small square
+25AB FE0F                                              ; fully-qualified     # ▫️ E0.6 white small square
+25AB                                                   ; unqualified         # ▫ E0.6 white small square
+1F536                                                  ; fully-qualified     # 🔶 E0.6 large orange diamond
+1F537                                                  ; fully-qualified     # 🔷 E0.6 large blue diamond
+1F538                                                  ; fully-qualified     # 🔸 E0.6 small orange diamond
+1F539                                                  ; fully-qualified     # 🔹 E0.6 small blue diamond
+1F53A                                                  ; fully-qualified     # 🔺 E0.6 red triangle pointed up
+1F53B                                                  ; fully-qualified     # 🔻 E0.6 red triangle pointed down
+1F4A0                                                  ; fully-qualified     # 💠 E0.6 diamond with a dot
+1F518                                                  ; fully-qualified     # 🔘 E0.6 radio button
+1F533                                                  ; fully-qualified     # 🔳 E0.6 white square button
+1F532                                                  ; fully-qualified     # 🔲 E0.6 black square button
+
+# Symbols subtotal:		304
+# Symbols subtotal:		304	w/o modifiers
+
+# group: Flags
+
+# subgroup: flag
+1F3C1                                                  ; fully-qualified     # 🏁 E0.6 chequered flag
+1F6A9                                                  ; fully-qualified     # 🚩 E0.6 triangular flag
+1F38C                                                  ; fully-qualified     # 🎌 E0.6 crossed flags
+1F3F4                                                  ; fully-qualified     # 🏴 E1.0 black flag
+1F3F3 FE0F                                             ; fully-qualified     # 🏳️ E0.7 white flag
+1F3F3                                                  ; unqualified         # 🏳 E0.7 white flag
+1F3F3 FE0F 200D 1F308                                  ; fully-qualified     # 🏳️‍🌈 E4.0 rainbow flag
+1F3F3 200D 1F308                                       ; unqualified         # 🏳‍🌈 E4.0 rainbow flag
+1F3F3 FE0F 200D 26A7 FE0F                              ; fully-qualified     # 🏳️‍⚧️ E13.0 transgender flag
+1F3F3 200D 26A7 FE0F                                   ; unqualified         # 🏳‍⚧️ E13.0 transgender flag
+1F3F3 FE0F 200D 26A7                                   ; minimally-qualified # 🏳️‍⚧ E13.0 transgender flag
+1F3F3 200D 26A7                                        ; unqualified         # 🏳‍⚧ E13.0 transgender flag
+1F3F4 200D 2620 FE0F                                   ; fully-qualified     # 🏴‍☠️ E11.0 pirate flag
+1F3F4 200D 2620                                        ; minimally-qualified # 🏴‍☠ E11.0 pirate flag
+
+# subgroup: country-flag
+1F1E6 1F1E8                                            ; fully-qualified     # 🇦🇨 E2.0 flag: Ascension Island
+1F1E6 1F1E9                                            ; fully-qualified     # 🇦🇩 E2.0 flag: Andorra
+1F1E6 1F1EA                                            ; fully-qualified     # 🇦🇪 E2.0 flag: United Arab Emirates
+1F1E6 1F1EB                                            ; fully-qualified     # 🇦🇫 E2.0 flag: Afghanistan
+1F1E6 1F1EC                                            ; fully-qualified     # 🇦🇬 E2.0 flag: Antigua & Barbuda
+1F1E6 1F1EE                                            ; fully-qualified     # 🇦🇮 E2.0 flag: Anguilla
+1F1E6 1F1F1                                            ; fully-qualified     # 🇦🇱 E2.0 flag: Albania
+1F1E6 1F1F2                                            ; fully-qualified     # 🇦🇲 E2.0 flag: Armenia
+1F1E6 1F1F4                                            ; fully-qualified     # 🇦🇴 E2.0 flag: Angola
+1F1E6 1F1F6                                            ; fully-qualified     # 🇦🇶 E2.0 flag: Antarctica
+1F1E6 1F1F7                                            ; fully-qualified     # 🇦🇷 E2.0 flag: Argentina
+1F1E6 1F1F8                                            ; fully-qualified     # 🇦🇸 E2.0 flag: American Samoa
+1F1E6 1F1F9                                            ; fully-qualified     # 🇦🇹 E2.0 flag: Austria
+1F1E6 1F1FA                                            ; fully-qualified     # 🇦🇺 E2.0 flag: Australia
+1F1E6 1F1FC                                            ; fully-qualified     # 🇦🇼 E2.0 flag: Aruba
+1F1E6 1F1FD                                            ; fully-qualified     # 🇦🇽 E2.0 flag: Åland Islands
+1F1E6 1F1FF                                            ; fully-qualified     # 🇦🇿 E2.0 flag: Azerbaijan
+1F1E7 1F1E6                                            ; fully-qualified     # 🇧🇦 E2.0 flag: Bosnia & Herzegovina
+1F1E7 1F1E7                                            ; fully-qualified     # 🇧🇧 E2.0 flag: Barbados
+1F1E7 1F1E9                                            ; fully-qualified     # 🇧🇩 E2.0 flag: Bangladesh
+1F1E7 1F1EA                                            ; fully-qualified     # 🇧🇪 E2.0 flag: Belgium
+1F1E7 1F1EB                                            ; fully-qualified     # 🇧🇫 E2.0 flag: Burkina Faso
+1F1E7 1F1EC                                            ; fully-qualified     # 🇧🇬 E2.0 flag: Bulgaria
+1F1E7 1F1ED                                            ; fully-qualified     # 🇧🇭 E2.0 flag: Bahrain
+1F1E7 1F1EE                                            ; fully-qualified     # 🇧🇮 E2.0 flag: Burundi
+1F1E7 1F1EF                                            ; fully-qualified     # 🇧🇯 E2.0 flag: Benin
+1F1E7 1F1F1                                            ; fully-qualified     # 🇧🇱 E2.0 flag: St. Barthélemy
+1F1E7 1F1F2                                            ; fully-qualified     # 🇧🇲 E2.0 flag: Bermuda
+1F1E7 1F1F3                                            ; fully-qualified     # 🇧🇳 E2.0 flag: Brunei
+1F1E7 1F1F4                                            ; fully-qualified     # 🇧🇴 E2.0 flag: Bolivia
+1F1E7 1F1F6                                            ; fully-qualified     # 🇧🇶 E2.0 flag: Caribbean Netherlands
+1F1E7 1F1F7                                            ; fully-qualified     # 🇧🇷 E2.0 flag: Brazil
+1F1E7 1F1F8                                            ; fully-qualified     # 🇧🇸 E2.0 flag: Bahamas
+1F1E7 1F1F9                                            ; fully-qualified     # 🇧🇹 E2.0 flag: Bhutan
+1F1E7 1F1FB                                            ; fully-qualified     # 🇧🇻 E2.0 flag: Bouvet Island
+1F1E7 1F1FC                                            ; fully-qualified     # 🇧🇼 E2.0 flag: Botswana
+1F1E7 1F1FE                                            ; fully-qualified     # 🇧🇾 E2.0 flag: Belarus
+1F1E7 1F1FF                                            ; fully-qualified     # 🇧🇿 E2.0 flag: Belize
+1F1E8 1F1E6                                            ; fully-qualified     # 🇨🇦 E2.0 flag: Canada
+1F1E8 1F1E8                                            ; fully-qualified     # 🇨🇨 E2.0 flag: Cocos (Keeling) Islands
+1F1E8 1F1E9                                            ; fully-qualified     # 🇨🇩 E2.0 flag: Congo - Kinshasa
+1F1E8 1F1EB                                            ; fully-qualified     # 🇨🇫 E2.0 flag: Central African Republic
+1F1E8 1F1EC                                            ; fully-qualified     # 🇨🇬 E2.0 flag: Congo - Brazzaville
+1F1E8 1F1ED                                            ; fully-qualified     # 🇨🇭 E2.0 flag: Switzerland
+1F1E8 1F1EE                                            ; fully-qualified     # 🇨🇮 E2.0 flag: Côte d’Ivoire
+1F1E8 1F1F0                                            ; fully-qualified     # 🇨🇰 E2.0 flag: Cook Islands
+1F1E8 1F1F1                                            ; fully-qualified     # 🇨🇱 E2.0 flag: Chile
+1F1E8 1F1F2                                            ; fully-qualified     # 🇨🇲 E2.0 flag: Cameroon
+1F1E8 1F1F3                                            ; fully-qualified     # 🇨🇳 E0.6 flag: China
+1F1E8 1F1F4                                            ; fully-qualified     # 🇨🇴 E2.0 flag: Colombia
+1F1E8 1F1F5                                            ; fully-qualified     # 🇨🇵 E2.0 flag: Clipperton Island
+1F1E8 1F1F7                                            ; fully-qualified     # 🇨🇷 E2.0 flag: Costa Rica
+1F1E8 1F1FA                                            ; fully-qualified     # 🇨🇺 E2.0 flag: Cuba
+1F1E8 1F1FB                                            ; fully-qualified     # 🇨🇻 E2.0 flag: Cape Verde
+1F1E8 1F1FC                                            ; fully-qualified     # 🇨🇼 E2.0 flag: Curaçao
+1F1E8 1F1FD                                            ; fully-qualified     # 🇨🇽 E2.0 flag: Christmas Island
+1F1E8 1F1FE                                            ; fully-qualified     # 🇨🇾 E2.0 flag: Cyprus
+1F1E8 1F1FF                                            ; fully-qualified     # 🇨🇿 E2.0 flag: Czechia
+1F1E9 1F1EA                                            ; fully-qualified     # 🇩🇪 E0.6 flag: Germany
+1F1E9 1F1EC                                            ; fully-qualified     # 🇩🇬 E2.0 flag: Diego Garcia
+1F1E9 1F1EF                                            ; fully-qualified     # 🇩🇯 E2.0 flag: Djibouti
+1F1E9 1F1F0                                            ; fully-qualified     # 🇩🇰 E2.0 flag: Denmark
+1F1E9 1F1F2                                            ; fully-qualified     # 🇩🇲 E2.0 flag: Dominica
+1F1E9 1F1F4                                            ; fully-qualified     # 🇩🇴 E2.0 flag: Dominican Republic
+1F1E9 1F1FF                                            ; fully-qualified     # 🇩🇿 E2.0 flag: Algeria
+1F1EA 1F1E6                                            ; fully-qualified     # 🇪🇦 E2.0 flag: Ceuta & Melilla
+1F1EA 1F1E8                                            ; fully-qualified     # 🇪🇨 E2.0 flag: Ecuador
+1F1EA 1F1EA                                            ; fully-qualified     # 🇪🇪 E2.0 flag: Estonia
+1F1EA 1F1EC                                            ; fully-qualified     # 🇪🇬 E2.0 flag: Egypt
+1F1EA 1F1ED                                            ; fully-qualified     # 🇪🇭 E2.0 flag: Western Sahara
+1F1EA 1F1F7                                            ; fully-qualified     # 🇪🇷 E2.0 flag: Eritrea
+1F1EA 1F1F8                                            ; fully-qualified     # 🇪🇸 E0.6 flag: Spain
+1F1EA 1F1F9                                            ; fully-qualified     # 🇪🇹 E2.0 flag: Ethiopia
+1F1EA 1F1FA                                            ; fully-qualified     # 🇪🇺 E2.0 flag: European Union
+1F1EB 1F1EE                                            ; fully-qualified     # 🇫🇮 E2.0 flag: Finland
+1F1EB 1F1EF                                            ; fully-qualified     # 🇫🇯 E2.0 flag: Fiji
+1F1EB 1F1F0                                            ; fully-qualified     # 🇫🇰 E2.0 flag: Falkland Islands
+1F1EB 1F1F2                                            ; fully-qualified     # 🇫🇲 E2.0 flag: Micronesia
+1F1EB 1F1F4                                            ; fully-qualified     # 🇫🇴 E2.0 flag: Faroe Islands
+1F1EB 1F1F7                                            ; fully-qualified     # 🇫🇷 E0.6 flag: France
+1F1EC 1F1E6                                            ; fully-qualified     # 🇬🇦 E2.0 flag: Gabon
+1F1EC 1F1E7                                            ; fully-qualified     # 🇬🇧 E0.6 flag: United Kingdom
+1F1EC 1F1E9                                            ; fully-qualified     # 🇬🇩 E2.0 flag: Grenada
+1F1EC 1F1EA                                            ; fully-qualified     # 🇬🇪 E2.0 flag: Georgia
+1F1EC 1F1EB                                            ; fully-qualified     # 🇬🇫 E2.0 flag: French Guiana
+1F1EC 1F1EC                                            ; fully-qualified     # 🇬🇬 E2.0 flag: Guernsey
+1F1EC 1F1ED                                            ; fully-qualified     # 🇬🇭 E2.0 flag: Ghana
+1F1EC 1F1EE                                            ; fully-qualified     # 🇬🇮 E2.0 flag: Gibraltar
+1F1EC 1F1F1                                            ; fully-qualified     # 🇬🇱 E2.0 flag: Greenland
+1F1EC 1F1F2                                            ; fully-qualified     # 🇬🇲 E2.0 flag: Gambia
+1F1EC 1F1F3                                            ; fully-qualified     # 🇬🇳 E2.0 flag: Guinea
+1F1EC 1F1F5                                            ; fully-qualified     # 🇬🇵 E2.0 flag: Guadeloupe
+1F1EC 1F1F6                                            ; fully-qualified     # 🇬🇶 E2.0 flag: Equatorial Guinea
+1F1EC 1F1F7                                            ; fully-qualified     # 🇬🇷 E2.0 flag: Greece
+1F1EC 1F1F8                                            ; fully-qualified     # 🇬🇸 E2.0 flag: South Georgia & South Sandwich Islands
+1F1EC 1F1F9                                            ; fully-qualified     # 🇬🇹 E2.0 flag: Guatemala
+1F1EC 1F1FA                                            ; fully-qualified     # 🇬🇺 E2.0 flag: Guam
+1F1EC 1F1FC                                            ; fully-qualified     # 🇬🇼 E2.0 flag: Guinea-Bissau
+1F1EC 1F1FE                                            ; fully-qualified     # 🇬🇾 E2.0 flag: Guyana
+1F1ED 1F1F0                                            ; fully-qualified     # 🇭🇰 E2.0 flag: Hong Kong SAR China
+1F1ED 1F1F2                                            ; fully-qualified     # 🇭🇲 E2.0 flag: Heard & McDonald Islands
+1F1ED 1F1F3                                            ; fully-qualified     # 🇭🇳 E2.0 flag: Honduras
+1F1ED 1F1F7                                            ; fully-qualified     # 🇭🇷 E2.0 flag: Croatia
+1F1ED 1F1F9                                            ; fully-qualified     # 🇭🇹 E2.0 flag: Haiti
+1F1ED 1F1FA                                            ; fully-qualified     # 🇭🇺 E2.0 flag: Hungary
+1F1EE 1F1E8                                            ; fully-qualified     # 🇮🇨 E2.0 flag: Canary Islands
+1F1EE 1F1E9                                            ; fully-qualified     # 🇮🇩 E2.0 flag: Indonesia
+1F1EE 1F1EA                                            ; fully-qualified     # 🇮🇪 E2.0 flag: Ireland
+1F1EE 1F1F1                                            ; fully-qualified     # 🇮🇱 E2.0 flag: Israel
+1F1EE 1F1F2                                            ; fully-qualified     # 🇮🇲 E2.0 flag: Isle of Man
+1F1EE 1F1F3                                            ; fully-qualified     # 🇮🇳 E2.0 flag: India
+1F1EE 1F1F4                                            ; fully-qualified     # 🇮🇴 E2.0 flag: British Indian Ocean Territory
+1F1EE 1F1F6                                            ; fully-qualified     # 🇮🇶 E2.0 flag: Iraq
+1F1EE 1F1F7                                            ; fully-qualified     # 🇮🇷 E2.0 flag: Iran
+1F1EE 1F1F8                                            ; fully-qualified     # 🇮🇸 E2.0 flag: Iceland
+1F1EE 1F1F9                                            ; fully-qualified     # 🇮🇹 E0.6 flag: Italy
+1F1EF 1F1EA                                            ; fully-qualified     # 🇯🇪 E2.0 flag: Jersey
+1F1EF 1F1F2                                            ; fully-qualified     # 🇯🇲 E2.0 flag: Jamaica
+1F1EF 1F1F4                                            ; fully-qualified     # 🇯🇴 E2.0 flag: Jordan
+1F1EF 1F1F5                                            ; fully-qualified     # 🇯🇵 E0.6 flag: Japan
+1F1F0 1F1EA                                            ; fully-qualified     # 🇰🇪 E2.0 flag: Kenya
+1F1F0 1F1EC                                            ; fully-qualified     # 🇰🇬 E2.0 flag: Kyrgyzstan
+1F1F0 1F1ED                                            ; fully-qualified     # 🇰🇭 E2.0 flag: Cambodia
+1F1F0 1F1EE                                            ; fully-qualified     # 🇰🇮 E2.0 flag: Kiribati
+1F1F0 1F1F2                                            ; fully-qualified     # 🇰🇲 E2.0 flag: Comoros
+1F1F0 1F1F3                                            ; fully-qualified     # 🇰🇳 E2.0 flag: St. Kitts & Nevis
+1F1F0 1F1F5                                            ; fully-qualified     # 🇰🇵 E2.0 flag: North Korea
+1F1F0 1F1F7                                            ; fully-qualified     # 🇰🇷 E0.6 flag: South Korea
+1F1F0 1F1FC                                            ; fully-qualified     # 🇰🇼 E2.0 flag: Kuwait
+1F1F0 1F1FE                                            ; fully-qualified     # 🇰🇾 E2.0 flag: Cayman Islands
+1F1F0 1F1FF                                            ; fully-qualified     # 🇰🇿 E2.0 flag: Kazakhstan
+1F1F1 1F1E6                                            ; fully-qualified     # 🇱🇦 E2.0 flag: Laos
+1F1F1 1F1E7                                            ; fully-qualified     # 🇱🇧 E2.0 flag: Lebanon
+1F1F1 1F1E8                                            ; fully-qualified     # 🇱🇨 E2.0 flag: St. Lucia
+1F1F1 1F1EE                                            ; fully-qualified     # 🇱🇮 E2.0 flag: Liechtenstein
+1F1F1 1F1F0                                            ; fully-qualified     # 🇱🇰 E2.0 flag: Sri Lanka
+1F1F1 1F1F7                                            ; fully-qualified     # 🇱🇷 E2.0 flag: Liberia
+1F1F1 1F1F8                                            ; fully-qualified     # 🇱🇸 E2.0 flag: Lesotho
+1F1F1 1F1F9                                            ; fully-qualified     # 🇱🇹 E2.0 flag: Lithuania
+1F1F1 1F1FA                                            ; fully-qualified     # 🇱🇺 E2.0 flag: Luxembourg
+1F1F1 1F1FB                                            ; fully-qualified     # 🇱🇻 E2.0 flag: Latvia
+1F1F1 1F1FE                                            ; fully-qualified     # 🇱🇾 E2.0 flag: Libya
+1F1F2 1F1E6                                            ; fully-qualified     # 🇲🇦 E2.0 flag: Morocco
+1F1F2 1F1E8                                            ; fully-qualified     # 🇲🇨 E2.0 flag: Monaco
+1F1F2 1F1E9                                            ; fully-qualified     # 🇲🇩 E2.0 flag: Moldova
+1F1F2 1F1EA                                            ; fully-qualified     # 🇲🇪 E2.0 flag: Montenegro
+1F1F2 1F1EB                                            ; fully-qualified     # 🇲🇫 E2.0 flag: St. Martin
+1F1F2 1F1EC                                            ; fully-qualified     # 🇲🇬 E2.0 flag: Madagascar
+1F1F2 1F1ED                                            ; fully-qualified     # 🇲🇭 E2.0 flag: Marshall Islands
+1F1F2 1F1F0                                            ; fully-qualified     # 🇲🇰 E2.0 flag: North Macedonia
+1F1F2 1F1F1                                            ; fully-qualified     # 🇲🇱 E2.0 flag: Mali
+1F1F2 1F1F2                                            ; fully-qualified     # 🇲🇲 E2.0 flag: Myanmar (Burma)
+1F1F2 1F1F3                                            ; fully-qualified     # 🇲🇳 E2.0 flag: Mongolia
+1F1F2 1F1F4                                            ; fully-qualified     # 🇲🇴 E2.0 flag: Macao SAR China
+1F1F2 1F1F5                                            ; fully-qualified     # 🇲🇵 E2.0 flag: Northern Mariana Islands
+1F1F2 1F1F6                                            ; fully-qualified     # 🇲🇶 E2.0 flag: Martinique
+1F1F2 1F1F7                                            ; fully-qualified     # 🇲🇷 E2.0 flag: Mauritania
+1F1F2 1F1F8                                            ; fully-qualified     # 🇲🇸 E2.0 flag: Montserrat
+1F1F2 1F1F9                                            ; fully-qualified     # 🇲🇹 E2.0 flag: Malta
+1F1F2 1F1FA                                            ; fully-qualified     # 🇲🇺 E2.0 flag: Mauritius
+1F1F2 1F1FB                                            ; fully-qualified     # 🇲🇻 E2.0 flag: Maldives
+1F1F2 1F1FC                                            ; fully-qualified     # 🇲🇼 E2.0 flag: Malawi
+1F1F2 1F1FD                                            ; fully-qualified     # 🇲🇽 E2.0 flag: Mexico
+1F1F2 1F1FE                                            ; fully-qualified     # 🇲🇾 E2.0 flag: Malaysia
+1F1F2 1F1FF                                            ; fully-qualified     # 🇲🇿 E2.0 flag: Mozambique
+1F1F3 1F1E6                                            ; fully-qualified     # 🇳🇦 E2.0 flag: Namibia
+1F1F3 1F1E8                                            ; fully-qualified     # 🇳🇨 E2.0 flag: New Caledonia
+1F1F3 1F1EA                                            ; fully-qualified     # 🇳🇪 E2.0 flag: Niger
+1F1F3 1F1EB                                            ; fully-qualified     # 🇳🇫 E2.0 flag: Norfolk Island
+1F1F3 1F1EC                                            ; fully-qualified     # 🇳🇬 E2.0 flag: Nigeria
+1F1F3 1F1EE                                            ; fully-qualified     # 🇳🇮 E2.0 flag: Nicaragua
+1F1F3 1F1F1                                            ; fully-qualified     # 🇳🇱 E2.0 flag: Netherlands
+1F1F3 1F1F4                                            ; fully-qualified     # 🇳🇴 E2.0 flag: Norway
+1F1F3 1F1F5                                            ; fully-qualified     # 🇳🇵 E2.0 flag: Nepal
+1F1F3 1F1F7                                            ; fully-qualified     # 🇳🇷 E2.0 flag: Nauru
+1F1F3 1F1FA                                            ; fully-qualified     # 🇳🇺 E2.0 flag: Niue
+1F1F3 1F1FF                                            ; fully-qualified     # 🇳🇿 E2.0 flag: New Zealand
+1F1F4 1F1F2                                            ; fully-qualified     # 🇴🇲 E2.0 flag: Oman
+1F1F5 1F1E6                                            ; fully-qualified     # 🇵🇦 E2.0 flag: Panama
+1F1F5 1F1EA                                            ; fully-qualified     # 🇵🇪 E2.0 flag: Peru
+1F1F5 1F1EB                                            ; fully-qualified     # 🇵🇫 E2.0 flag: French Polynesia
+1F1F5 1F1EC                                            ; fully-qualified     # 🇵🇬 E2.0 flag: Papua New Guinea
+1F1F5 1F1ED                                            ; fully-qualified     # 🇵🇭 E2.0 flag: Philippines
+1F1F5 1F1F0                                            ; fully-qualified     # 🇵🇰 E2.0 flag: Pakistan
+1F1F5 1F1F1                                            ; fully-qualified     # 🇵🇱 E2.0 flag: Poland
+1F1F5 1F1F2                                            ; fully-qualified     # 🇵🇲 E2.0 flag: St. Pierre & Miquelon
+1F1F5 1F1F3                                            ; fully-qualified     # 🇵🇳 E2.0 flag: Pitcairn Islands
+1F1F5 1F1F7                                            ; fully-qualified     # 🇵🇷 E2.0 flag: Puerto Rico
+1F1F5 1F1F8                                            ; fully-qualified     # 🇵🇸 E2.0 flag: Palestinian Territories
+1F1F5 1F1F9                                            ; fully-qualified     # 🇵🇹 E2.0 flag: Portugal
+1F1F5 1F1FC                                            ; fully-qualified     # 🇵🇼 E2.0 flag: Palau
+1F1F5 1F1FE                                            ; fully-qualified     # 🇵🇾 E2.0 flag: Paraguay
+1F1F6 1F1E6                                            ; fully-qualified     # 🇶🇦 E2.0 flag: Qatar
+1F1F7 1F1EA                                            ; fully-qualified     # 🇷🇪 E2.0 flag: Réunion
+1F1F7 1F1F4                                            ; fully-qualified     # 🇷🇴 E2.0 flag: Romania
+1F1F7 1F1F8                                            ; fully-qualified     # 🇷🇸 E2.0 flag: Serbia
+1F1F7 1F1FA                                            ; fully-qualified     # 🇷🇺 E0.6 flag: Russia
+1F1F7 1F1FC                                            ; fully-qualified     # 🇷🇼 E2.0 flag: Rwanda
+1F1F8 1F1E6                                            ; fully-qualified     # 🇸🇦 E2.0 flag: Saudi Arabia
+1F1F8 1F1E7                                            ; fully-qualified     # 🇸🇧 E2.0 flag: Solomon Islands
+1F1F8 1F1E8                                            ; fully-qualified     # 🇸🇨 E2.0 flag: Seychelles
+1F1F8 1F1E9                                            ; fully-qualified     # 🇸🇩 E2.0 flag: Sudan
+1F1F8 1F1EA                                            ; fully-qualified     # 🇸🇪 E2.0 flag: Sweden
+1F1F8 1F1EC                                            ; fully-qualified     # 🇸🇬 E2.0 flag: Singapore
+1F1F8 1F1ED                                            ; fully-qualified     # 🇸🇭 E2.0 flag: St. Helena
+1F1F8 1F1EE                                            ; fully-qualified     # 🇸🇮 E2.0 flag: Slovenia
+1F1F8 1F1EF                                            ; fully-qualified     # 🇸🇯 E2.0 flag: Svalbard & Jan Mayen
+1F1F8 1F1F0                                            ; fully-qualified     # 🇸🇰 E2.0 flag: Slovakia
+1F1F8 1F1F1                                            ; fully-qualified     # 🇸🇱 E2.0 flag: Sierra Leone
+1F1F8 1F1F2                                            ; fully-qualified     # 🇸🇲 E2.0 flag: San Marino
+1F1F8 1F1F3                                            ; fully-qualified     # 🇸🇳 E2.0 flag: Senegal
+1F1F8 1F1F4                                            ; fully-qualified     # 🇸🇴 E2.0 flag: Somalia
+1F1F8 1F1F7                                            ; fully-qualified     # 🇸🇷 E2.0 flag: Suriname
+1F1F8 1F1F8                                            ; fully-qualified     # 🇸🇸 E2.0 flag: South Sudan
+1F1F8 1F1F9                                            ; fully-qualified     # 🇸🇹 E2.0 flag: São Tomé & Príncipe
+1F1F8 1F1FB                                            ; fully-qualified     # 🇸🇻 E2.0 flag: El Salvador
+1F1F8 1F1FD                                            ; fully-qualified     # 🇸🇽 E2.0 flag: Sint Maarten
+1F1F8 1F1FE                                            ; fully-qualified     # 🇸🇾 E2.0 flag: Syria
+1F1F8 1F1FF                                            ; fully-qualified     # 🇸🇿 E2.0 flag: Eswatini
+1F1F9 1F1E6                                            ; fully-qualified     # 🇹🇦 E2.0 flag: Tristan da Cunha
+1F1F9 1F1E8                                            ; fully-qualified     # 🇹🇨 E2.0 flag: Turks & Caicos Islands
+1F1F9 1F1E9                                            ; fully-qualified     # 🇹🇩 E2.0 flag: Chad
+1F1F9 1F1EB                                            ; fully-qualified     # 🇹🇫 E2.0 flag: French Southern Territories
+1F1F9 1F1EC                                            ; fully-qualified     # 🇹🇬 E2.0 flag: Togo
+1F1F9 1F1ED                                            ; fully-qualified     # 🇹🇭 E2.0 flag: Thailand
+1F1F9 1F1EF                                            ; fully-qualified     # 🇹🇯 E2.0 flag: Tajikistan
+1F1F9 1F1F0                                            ; fully-qualified     # 🇹🇰 E2.0 flag: Tokelau
+1F1F9 1F1F1                                            ; fully-qualified     # 🇹🇱 E2.0 flag: Timor-Leste
+1F1F9 1F1F2                                            ; fully-qualified     # 🇹🇲 E2.0 flag: Turkmenistan
+1F1F9 1F1F3                                            ; fully-qualified     # 🇹🇳 E2.0 flag: Tunisia
+1F1F9 1F1F4                                            ; fully-qualified     # 🇹🇴 E2.0 flag: Tonga
+1F1F9 1F1F7                                            ; fully-qualified     # 🇹🇷 E2.0 flag: Türkiye
+1F1F9 1F1F9                                            ; fully-qualified     # 🇹🇹 E2.0 flag: Trinidad & Tobago
+1F1F9 1F1FB                                            ; fully-qualified     # 🇹🇻 E2.0 flag: Tuvalu
+1F1F9 1F1FC                                            ; fully-qualified     # 🇹🇼 E2.0 flag: Taiwan
+1F1F9 1F1FF                                            ; fully-qualified     # 🇹🇿 E2.0 flag: Tanzania
+1F1FA 1F1E6                                            ; fully-qualified     # 🇺🇦 E2.0 flag: Ukraine
+1F1FA 1F1EC                                            ; fully-qualified     # 🇺🇬 E2.0 flag: Uganda
+1F1FA 1F1F2                                            ; fully-qualified     # 🇺🇲 E2.0 flag: U.S. Outlying Islands
+1F1FA 1F1F3                                            ; fully-qualified     # 🇺🇳 E4.0 flag: United Nations
+1F1FA 1F1F8                                            ; fully-qualified     # 🇺🇸 E0.6 flag: United States
+1F1FA 1F1FE                                            ; fully-qualified     # 🇺🇾 E2.0 flag: Uruguay
+1F1FA 1F1FF                                            ; fully-qualified     # 🇺🇿 E2.0 flag: Uzbekistan
+1F1FB 1F1E6                                            ; fully-qualified     # 🇻🇦 E2.0 flag: Vatican City
+1F1FB 1F1E8                                            ; fully-qualified     # 🇻🇨 E2.0 flag: St. Vincent & Grenadines
+1F1FB 1F1EA                                            ; fully-qualified     # 🇻🇪 E2.0 flag: Venezuela
+1F1FB 1F1EC                                            ; fully-qualified     # 🇻🇬 E2.0 flag: British Virgin Islands
+1F1FB 1F1EE                                            ; fully-qualified     # 🇻🇮 E2.0 flag: U.S. Virgin Islands
+1F1FB 1F1F3                                            ; fully-qualified     # 🇻🇳 E2.0 flag: Vietnam
+1F1FB 1F1FA                                            ; fully-qualified     # 🇻🇺 E2.0 flag: Vanuatu
+1F1FC 1F1EB                                            ; fully-qualified     # 🇼🇫 E2.0 flag: Wallis & Futuna
+1F1FC 1F1F8                                            ; fully-qualified     # 🇼🇸 E2.0 flag: Samoa
+1F1FD 1F1F0                                            ; fully-qualified     # 🇽🇰 E2.0 flag: Kosovo
+1F1FE 1F1EA                                            ; fully-qualified     # 🇾🇪 E2.0 flag: Yemen
+1F1FE 1F1F9                                            ; fully-qualified     # 🇾🇹 E2.0 flag: Mayotte
+1F1FF 1F1E6                                            ; fully-qualified     # 🇿🇦 E2.0 flag: South Africa
+1F1FF 1F1F2                                            ; fully-qualified     # 🇿🇲 E2.0 flag: Zambia
+1F1FF 1F1FC                                            ; fully-qualified     # 🇿🇼 E2.0 flag: Zimbabwe
+
+# subgroup: subdivision-flag
+1F3F4 E0067 E0062 E0065 E006E E0067 E007F              ; fully-qualified     # 🏴󠁧󠁢󠁥󠁮󠁧󠁿 E5.0 flag: England
+1F3F4 E0067 E0062 E0073 E0063 E0074 E007F              ; fully-qualified     # 🏴󠁧󠁢󠁳󠁣󠁴󠁿 E5.0 flag: Scotland
+1F3F4 E0067 E0062 E0077 E006C E0073 E007F              ; fully-qualified     # 🏴󠁧󠁢󠁷󠁬󠁳󠁿 E5.0 flag: Wales
+
+# Flags subtotal:		275
+# Flags subtotal:		275	w/o modifiers
+
+# Status Counts
+# fully-qualified : 3773
+# minimally-qualified : 1009
+# unqualified : 243
+# component : 9
+
+#EOF
diff --git a/crates/unicode-width/tests/tests.rs b/crates/unicode-width/tests/tests.rs
new file mode 100644
index 0000000..2940df2
--- /dev/null
+++ b/crates/unicode-width/tests/tests.rs
@@ -0,0 +1,617 @@
+// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+use std::{
+    fs::File,
+    io::{BufRead, BufReader},
+};
+
+use unicode_width::{UnicodeWidthChar, UnicodeWidthStr};
+
+macro_rules! assert_width {
+    ($s:expr, $nocjk:expr, $cjk:expr $(,)?) => {{
+        assert_eq!($s.width(), $nocjk, "{:?} has the wrong width", $s);
+        #[cfg(feature = "cjk")]
+        assert_eq!($s.width_cjk(), $cjk, "{:?} has the wrong width (CJK)", $s);
+    }};
+}
+
+#[test]
+fn test_str() {
+    assert_width!("hello", 10, 10);
+    assert_width!("\0\0\0\x01\x01", 5, 5);
+    assert_width!("", 0, 0);
+    assert_width!("\u{2081}\u{2082}\u{2083}\u{2084}", 4, 8);
+}
+
+#[test]
+fn test_emoji() {
+    assert_width!("👩", 2, 2); // Woman
+    assert_width!("🔬", 2, 2); // Microscope
+    assert_width!("👩‍🔬", 2, 2); // Woman scientist
+}
+
+// From README
+#[test]
+fn test_bad_devanagari() {
+    assert_eq!("क".width(), 1); // Devanagari letter Ka
+    assert_eq!("ष".width(), 1); // Devanagari letter Ssa
+    assert_eq!("क्ष".width(), 2); // Ka + Virama + Ssa
+}
+
+#[test]
+fn test_char() {
+    assert_width!('h', Some(2), Some(2));
+    assert_width!('\x00', None, None);
+    assert_width!('\x01', None, None);
+    assert_width!('\u{2081}', Some(1), Some(2));
+}
+
+#[test]
+fn test_char2() {
+    assert_width!('\x0A', None, None);
+    assert_width!('w', Some(1), Some(1));
+    assert_width!('h', Some(2), Some(2));
+    assert_width!('\u{AD}', Some(0), Some(0));
+    assert_width!('\u{1160}', Some(0), Some(0));
+    assert_width!('\u{a1}', Some(1), Some(2));
+    assert_width!('\u{300}', Some(0), Some(0));
+}
+
+#[test]
+fn unicode_12() {
+    assert_width!('\u{1F971}', Some(2), Some(2));
+}
+
+#[test]
+fn test_default_ignorable() {
+    assert_width!('\u{1160}', Some(0), Some(0));
+    assert_width!('\u{3164}', Some(0), Some(0));
+    assert_width!('\u{FFA0}', Some(0), Some(0));
+    assert_width!('\u{E0000}', Some(0), Some(0));
+}
+
+#[test]
+fn test_ambiguous() {
+    assert_width!("\u{B7}", 1, 2);
+    assert_width!("\u{0387}", 1, 2);
+    assert_width!("\u{A8}", 1, 1);
+    assert_width!("\u{02C9}", 1, 1);
+}
+
+#[test]
+fn test_jamo() {
+    assert_width!('\u{1100}', Some(2), Some(2));
+    assert_width!('\u{A97C}', Some(2), Some(2));
+    // Special case: U+115F HANGUL CHOSEONG FILLER
+    assert_width!('\u{115F}', Some(2), Some(2));
+    assert_width!('\u{1160}', Some(0), Some(0));
+    assert_width!('\u{D7C6}', Some(0), Some(0));
+    assert_width!('\u{11A8}', Some(0), Some(0));
+    assert_width!('\u{D7FB}', Some(0), Some(0));
+}
+
+#[test]
+fn test_prepended_concatenation_marks() {
+    for c in [
+        '\u{0600}',
+        '\u{0601}',
+        '\u{0602}',
+        '\u{0603}',
+        '\u{0604}',
+        '\u{06DD}',
+        '\u{110BD}',
+        '\u{110CD}',
+    ] {
+        assert_width!(c, Some(1), Some(1));
+    }
+
+    for c in ['\u{0605}', '\u{070F}', '\u{0890}', '\u{0891}', '\u{08E2}'] {
+        assert_width!(c, Some(0), Some(0));
+    }
+}
+
+#[test]
+fn test_gcb_prepend() {
+    assert_width!("ൎഉ", 1, 1);
+    assert_width!("\u{11A89}", 0, 0);
+}
+
+#[test]
+fn test_interlinear_annotation_chars() {
+    assert_width!('\u{FFF9}', Some(1), Some(1));
+    assert_width!('\u{FFFA}', Some(1), Some(1));
+    assert_width!('\u{FFFB}', Some(1), Some(1));
+}
+
+#[test]
+fn test_hieroglyph_format_controls() {
+    assert_width!('\u{13430}', Some(1), Some(1));
+    assert_width!('\u{13436}', Some(1), Some(1));
+    assert_width!('\u{1343C}', Some(1), Some(1));
+}
+
+#[test]
+fn test_marks() {
+    // Nonspacing marks have 0 width
+    assert_width!('\u{0301}', Some(0), Some(0));
+    // Enclosing marks have 0 width
+    assert_width!('\u{20DD}', Some(0), Some(0));
+    // Some spacing marks have width 1
+    assert_width!('\u{09CB}', Some(1), Some(1));
+    // But others have width 0
+    assert_width!('\u{09BE}', Some(0), Some(0));
+}
+
+#[test]
+fn test_devanagari_caret() {
+    assert_width!('\u{A8FA}', Some(0), Some(0));
+}
+
+#[test]
+fn test_solidus_overlay() {
+    assert_width!("<\u{338}", 1, 2);
+    assert_width!("=\u{338}", 1, 2);
+    assert_width!(">\u{338}", 1, 2);
+    assert_width!("=\u{301}\u{338}", 1, 2);
+    assert_width!("=\u{338}\u{301}", 1, 2);
+    assert_width!("=\u{FE0F}\u{338}", 1, 2);
+    assert_width!("#\u{FE0F}\u{338}", 2, 2);
+    assert_width!("#\u{338}\u{FE0F}", 1, 1);
+
+    assert_width!("\u{06B8}\u{338}\u{0627}", 1, 1);
+    assert_width!("\u{06B8}\u{338}\u{FE0E}\u{0627}", 1, 1);
+    assert_width!("\u{06B8}\u{338}\u{FE0F}\u{0627}", 1, 1);
+    assert_width!("\u{06B8}\u{FE0E}\u{338}\u{0627}", 1, 1);
+    assert_width!("\u{06B8}\u{FE0F}\u{338}\u{0627}", 1, 1);
+
+    assert_width!("=\u{338}\u{0627}", 2, 3);
+}
+
+#[test]
+fn test_emoji_presentation() {
+    assert_width!('\u{0023}', Some(1), Some(1));
+    assert_width!('\u{FE0F}', Some(0), Some(0));
+    assert_width!("\u{0023}\u{FE0F}", 2, 2);
+    assert_width!("a\u{0023}\u{FE0F}a", 4, 4);
+    assert_width!("\u{0023}a\u{FE0F}", 2, 2);
+    assert_width!("a\u{FE0F}", 1, 1);
+    assert_width!("\u{0023}\u{0023}\u{FE0F}a", 4, 4);
+    assert_width!("\u{002A}\u{FE0F}", 2, 2);
+    assert_width!("\u{23F9}\u{FE0F}", 2, 2);
+    assert_width!("\u{24C2}\u{FE0F}", 2, 2);
+    assert_width!("\u{1F6F3}\u{FE0F}", 2, 2);
+    assert_width!("\u{1F700}\u{FE0F}", 1, 1);
+    assert_width!("\u{002A}\u{301}\u{FE0F}", 1, 1);
+    assert_width!("\u{002A}\u{200D}\u{FE0F}", 1, 1);
+    assert_width!("\u{002A}\u{FE0E}\u{FE0F}", 1, 1);
+}
+
+#[test]
+fn test_text_presentation() {
+    assert_width!('\u{FE0E}', Some(0), Some(0));
+    assert_width!('\u{2648}', Some(2), Some(2));
+    assert_width!("\u{2648}\u{FE0E}", 1, 2);
+    assert_width!("\u{1F21A}\u{FE0E}", 2, 2);
+    assert_width!("\u{0301}\u{FE0E}", 0, 0);
+    assert_width!("a\u{FE0E}", 1, 1);
+    assert_width!("𘀀\u{FE0E}", 2, 2);
+    assert_width!("\u{2648}\u{0301}\u{FE0E}", 2, 2);
+    assert_width!("\u{2648}\u{200D}\u{FE0E}", 2, 2);
+}
+
+#[test]
+fn test_control_line_break() {
+    assert_width!('\u{2028}', Some(1), Some(1));
+    assert_width!('\u{2029}', Some(1), Some(1));
+    assert_width!('\r', None, None);
+    assert_width!('\n', None, None);
+    assert_width!("\r", 1, 1);
+    assert_width!("\n", 1, 1);
+    assert_width!("\r\n", 1, 1);
+    assert_width!("\0", 1, 1);
+    assert_width!("1\t2\r\n3\u{85}4", 7, 7);
+    assert_width!("\r\u{FE0F}\n", 2, 2);
+    assert_width!("\r\u{200D}\n", 2, 2);
+}
+
+#[test]
+fn char_str_consistent() {
+    let mut s = String::with_capacity(4);
+    for c in '\0'..=char::MAX {
+        s.clear();
+        s.push(c);
+        assert_eq!(c.width().unwrap_or(1), s.width());
+        #[cfg(feature = "cjk")]
+        assert_eq!(c.width_cjk().unwrap_or(1), s.width_cjk());
+    }
+}
+
+#[test]
+fn test_lisu_tones() {
+    for c in '\u{A4F8}'..='\u{A4FD}' {
+        assert_width!(c, Some(1), Some(1));
+        assert_width!(String::from(c), 1, 1);
+    }
+    for c1 in '\u{A4F8}'..='\u{A4FD}' {
+        for c2 in '\u{A4F8}'..='\u{A4FD}' {
+            let mut s = String::with_capacity(8);
+            s.push(c1);
+            s.push(c2);
+            match (c1, c2) {
+                ('\u{A4F8}'..='\u{A4FB}', '\u{A4FC}'..='\u{A4FD}') => assert_width!(s, 1, 1),
+                _ => assert_width!(s, 2, 2),
+            }
+        }
+    }
+
+    assert_width!("ꓪꓹ", 2, 2);
+    assert_width!("ꓪꓹꓼ", 2, 2);
+    assert_width!("ꓪꓹ\u{FE0F}ꓼ", 2, 2);
+    assert_width!("ꓪꓹ\u{200D}ꓼ", 2, 2);
+    assert_width!("ꓪꓹꓼ\u{FE0F}", 2, 2);
+    assert_width!("ꓪꓹ\u{0301}ꓼ", 3, 3);
+    assert_width!("ꓪꓹꓹ", 3, 3);
+    assert_width!("ꓪꓼꓼ", 3, 3);
+}
+
+#[test]
+fn test_hebrew_alef_lamed() {
+    assert_width!("\u{05D0}", 1, 1);
+    assert_width!("\u{05DC}", 1, 1);
+    assert_width!("\u{05D0}\u{05DC}", 2, 2);
+    assert_width!("\u{05D0}\u{200D}\u{05DC}", 1, 1);
+    assert_width!(
+        "\u{05D0}\u{200D}\u{200D}\u{200D}\u{200D}\u{200D}\u{200D}\u{200D}\u{05DC}",
+        1,
+        1,
+    );
+    assert_width!("\u{05D0}\u{05D0}\u{200D}\u{05DC}", 2, 2);
+    assert_width!(
+        "\u{05D0}\u{05D0}\u{200D}\u{200D}\u{200D}\u{200D}\u{200D}\u{200D}\u{05DC}",
+        2,
+        2,
+    );
+    assert_width!("\u{05D0}\u{FE0F}\u{200D}\u{FE0F}\u{05DC}\u{FE0F}", 1, 1);
+    assert_width!("\u{05D0}\u{FE0E}\u{200D}\u{FE0E}\u{05DC}\u{FE0E}", 1, 1);
+}
+
+#[test]
+fn test_arabic_lam_alef() {
+    assert_width!("\u{0644}", 1, 1);
+    assert_width!("\u{06B8}", 1, 1);
+
+    assert_width!("\u{0623}", 1, 1);
+    assert_width!("\u{0627}", 1, 1);
+
+    assert_width!("\u{0644}\u{0623}", 1, 1);
+    assert_width!("\u{0644}\u{0627}", 1, 1);
+    assert_width!("\u{06B8}\u{0623}", 1, 1);
+    assert_width!("\u{06B8}\u{0627}", 1, 1);
+
+    assert_width!("\u{0644}\u{065F}\u{065E}\u{0623}", 1, 1);
+    assert_width!("\u{0644}\u{065F}\u{065E}\u{0627}", 1, 1);
+    assert_width!("\u{06B8}\u{065F}\u{065E}\u{0623}", 1, 1);
+    assert_width!("\u{06B8}\u{065F}\u{065E}\u{0627}", 1, 1);
+
+    assert_width!("\u{06B8}\u{FE0E}\u{0627}", 1, 1);
+    assert_width!("\u{06B8}\u{FE0F}\u{0627}", 1, 1);
+    assert_width!("\u{06B8}\u{17B5}\u{0627}", 1, 1);
+
+    assert_width!("\u{0644}\u{0644}\u{0623}", 2, 2);
+    assert_width!("\u{0644}\u{0644}\u{0627}", 2, 2);
+    assert_width!("\u{06B8}\u{06B8}\u{0623}", 2, 2);
+    assert_width!("\u{06B8}\u{06B8}\u{0627}", 2, 2);
+
+    assert_width!("\u{0644}\u{200D}\u{0623}", 2, 2);
+    assert_width!("\u{0644}\u{200D}\u{0627}", 2, 2);
+    assert_width!("\u{06B8}\u{200D}\u{0623}", 2, 2);
+    assert_width!("\u{06B8}\u{200D}\u{0627}", 2, 2);
+
+    assert_width!("\u{0644}\u{1E94B}\u{0623}", 3, 3);
+    assert_width!("\u{0644}\u{1E94B}\u{0627}", 3, 3);
+    assert_width!("\u{06B8}\u{1E94B}\u{0623}", 3, 3);
+    assert_width!("\u{06B8}\u{1E94B}\u{0627}", 3, 3);
+}
+
+#[test]
+fn test_buginese_a_i_ya() {
+    assert_width!("\u{1A15}", 1, 1);
+    assert_width!("\u{1A17}", 0, 0);
+    assert_width!("\u{1A10}", 1, 1);
+
+    assert_width!("\u{1A15}\u{1A17}\u{200D}\u{1A10}", 1, 1);
+    assert_width!(
+        "\u{1A15}\u{1A17}\u{200D}\u{200D}\u{200D}\u{200D}\u{1A10}",
+        1,
+        1,
+    );
+    assert_width!("\u{1A15}\u{1A17}\u{200D}\u{338}", 1, 1);
+    assert_width!("\u{1A15}\u{FE0E}\u{1A17}\u{200D}", 1, 1);
+    assert_width!("\u{1A15}\u{FE0F}\u{1A17}\u{200D}", 1, 1);
+    assert_width!("\u{1A15}\u{1A17}\u{FE0E}\u{200D}", 1, 1);
+    assert_width!("\u{1A15}\u{1A17}\u{FE0F}\u{200D}", 1, 1);
+    assert_width!("\u{1A15}\u{1A17}\u{200D}\u{FE0E}", 1, 1);
+    assert_width!("\u{1A15}\u{1A17}\u{200D}\u{FE0F}", 1, 1);
+    assert_width!(
+        "\u{1A15}\u{17B5}\u{200D}\u{FE0E}\u{1A17}\u{200D}\u{FE0F}\u{200D}\u{FE0F}",
+        1,
+        1,
+    );
+
+    assert_width!("\u{1A15}\u{1A15}\u{1A17}\u{200D}\u{1A10}", 2, 2);
+    assert_width!(
+        "\u{1A15}\u{1A15}\u{1A17}\u{200D}\u{200D}\u{200D}\u{200D}\u{1A10}",
+        2,
+        2,
+    );
+
+    assert_width!("\u{1A15}\u{1A17}\u{1A10}", 2, 2);
+    assert_width!("\u{1A15}\u{200D}\u{1A10}", 2, 2);
+    assert_width!("\u{1A15}\u{1A10}", 2, 2);
+    assert_width!("\u{1A15}\u{1A17}\u{1A17}\u{200D}\u{1A10}", 2, 2);
+    assert_width!("\u{1A15}\u{1A17}\u{338}\u{200D}\u{1A10}", 2, 2);
+}
+
+#[test]
+fn test_tifinagh_biconsonants() {
+    assert_width!("\u{2D4F}", 1, 1);
+    assert_width!("\u{2D3E}", 1, 1);
+    assert_width!("\u{2D7F}", 1, 1);
+
+    assert_width!("\u{2D4F}\u{200D}\u{2D3E}", 1, 1);
+    assert_width!("\u{2D4F}\u{2D7F}\u{2D3E}", 1, 1);
+    assert_width!("\u{2D4F}\u{200D}\u{2D3E}", 1, 1);
+    assert_width!(
+        "\u{2D4F}\u{FE0F}\u{200D}\u{2D7F}\u{FE0E}\u{200D}\u{17B5}\u{2D3E}",
+        1,
+        1,
+    );
+
+    assert_width!("\u{2D4F}\u{301}\u{2D7F}\u{2D3E}", 3, 3);
+    assert_width!("\u{2D4F}\u{301}\u{200D}\u{2D3E}", 2, 2);
+    assert_width!("\u{2D4F}\u{2D3E}", 2, 2);
+    assert_width!("\u{2D4F}\u{2D7F}\u{2D7F}\u{2D3E}", 4, 4);
+    assert_width!("\u{2D7F}\u{2D3E}", 2, 2);
+    assert_width!("\u{2D7F}\u{2D7F}\u{2D66}", 3, 3);
+    assert_width!("\u{2D66}\u{2D7F}\u{2D3E}", 3, 3);
+}
+
+#[test]
+fn test_old_turkic_ligature() {
+    assert_width!("\u{10C32}", 1, 1);
+    assert_width!("\u{10C03}", 1, 1);
+    assert_width!("\u{10C32}\u{10C03}", 2, 2);
+
+    assert_width!("\u{10C32}\u{200D}\u{10C03}", 1, 1);
+    assert_width!("\u{10C32}\u{FE0F}\u{200D}\u{FE0E}\u{10C03}", 1, 1);
+
+    assert_width!("\u{10C32}\u{2D7F}\u{10C03}", 3, 3);
+    assert_width!("\u{10C32}\u{0301}\u{200D}\u{10C03}", 2, 2);
+    assert_width!("\u{10C03}\u{200D}\u{10C32}", 2, 2);
+    assert_width!("\u{200D}\u{10C32}", 1, 1);
+}
+
+#[test]
+fn test_khmer_coeng() {
+    assert_width!("ល", 1, 1);
+    assert_width!("ង", 1, 1);
+    assert_width!("លង", 2, 2);
+    assert_width!("ល្ង", 1, 1);
+
+    for c in '\0'..=char::MAX {
+        if matches!(
+            c,
+            '\u{1780}'..='\u{1782}' | '\u{1784}'..='\u{1787}'
+            | '\u{1789}'..='\u{178C}'  | '\u{178E}'..='\u{1793}'
+            | '\u{1795}'..='\u{1798}' | '\u{179B}'..='\u{179D}'
+            | '\u{17A0}' | '\u{17A2}'  | '\u{17A7}'
+            | '\u{17AB}'..='\u{17AC}' | '\u{17AF}'
+        ) {
+            assert_width!(format!("\u{17D2}{c}"), 0, 0);
+            assert_width!(format!("\u{17D2}\u{200D}\u{200D}{c}"), 0, 0);
+        } else {
+            assert_width!(
+                format!("\u{17D2}{c}"),
+                c.width().unwrap_or(1),
+                c.width_cjk().unwrap_or(1)
+            );
+        }
+    }
+}
+
+#[test]
+fn test_khmer_qaa() {
+    assert_width!("\u{17A4}", 2, 2);
+    assert_width!("\u{17A2}\u{17A6}", 2, 2);
+}
+
+#[test]
+fn test_khmer_sign_beyyal() {
+    assert_width!("\u{17D8}", 3, 3);
+    assert_width!("\u{17D4}\u{179B}\u{17D4}", 3, 3);
+}
+
+#[test]
+fn test_emoji_modifier() {
+    assert_width!("\u{1F46A}", 2, 2);
+    assert_width!("\u{1F3FB}", 2, 2);
+    assert_width!("\u{1F46A}\u{1F3FB}", 2, 2);
+    assert_width!("\u{1F46A}\u{200D}\u{200D}\u{1F3FB}", 4, 4);
+}
+
+#[test]
+fn test_emoji_zwj() {
+    assert_width!("🧑‍🤝‍🧑", 2, 2);
+
+    assert_width!("🇮🇱🕊️🇵🇸", 6, 6);
+    assert_width!("🇵🇸\u{200D}🕊️\u{200D}🇮🇱", 2, 2);
+    assert_width!("🇮🇱\u{200D}🕊️\u{200D}\u{200D}🇵🇸", 4, 4);
+    assert_width!("🇵🇸\u{200D}\u{200D}🕊️\u{200D}🇮🇱", 4, 4);
+
+    assert_width!("🇦🇦\u{200D}🇦🇦", 2, 2);
+    assert_width!("🇦🇦\u{200D}🇦🇦🇦", 3, 3);
+    assert_width!("🇦🇦\u{200D}🇦🇦🇦", 3, 3);
+
+    assert_width!("🇦🇦\u{200D}\u{200D}🇦🇦", 4, 4);
+    assert_width!("🇦🇦\u{200D}🇦\u{200D}🇦🇦", 5, 5);
+    assert_width!("🇦🇦\u{200D}🇦🇦\u{200D}🇦🇦", 2, 2);
+    assert_width!("🇦🇦\u{200D}🇦🇦🇦\u{200D}🇦🇦", 5, 5);
+    assert_width!("🇦🇦\u{200D}🇦🇦🇦🇦\u{200D}🇦🇦", 4, 4);
+    assert_width!("🇦🇦\u{200D}🇦🇦🇦🇦🇦\u{200D}🇦🇦", 7, 7);
+    assert_width!("🇦🇦\u{200D}🇦🇦🇦🇦🇦🇦\u{200D}🇦🇦", 6, 6);
+    assert_width!("🇦🇦\u{200D}🇦🇦🇦🇦🇦🇦🇦\u{200D}🇦🇦", 9, 9);
+
+    assert_width!("🏴󠁧󠁢󠁷󠁬󠁳󠁿", 2, 2);
+    assert_width!("🏴󠁧󠁢󠁥󠁮󠁧󠁿\u{200D}🏴󠁧󠁢󠁳󠁣󠁴󠁿\u{200D}🏴󠁧󠁢󠁷󠁬󠁳󠁿", 2, 2);
+
+    assert_width!("🇦👪\u{200D}🏿", 3, 3);
+    assert_width!("🇦🏿\u{200D}🏿", 3, 3);
+
+    assert_width!('🏴', Some(2), Some(2));
+    assert_width!("\u{E0031}", 0, 0);
+    assert_width!("\u{E0063}", 0, 0);
+    assert_width!("\u{E007F}", 0, 0);
+    assert_width!("🏴\u{200D}Ⓜ️", 2, 2);
+    assert_width!("🏴\u{E0031}\u{200D}Ⓜ️", 4, 4);
+    assert_width!("🏴\u{E0063}\u{200D}Ⓜ️", 4, 4);
+    assert_width!("🏴\u{E007F}\u{200D}Ⓜ️", 4, 4);
+    assert_width!("🏴\u{E0031}\u{E007F}\u{200D}Ⓜ️", 4, 4);
+    assert_width!("🏴\u{E0031}\u{E0031}\u{E007F}\u{200D}Ⓜ️", 4, 4);
+    assert_width!("🏴\u{E0031}\u{E0031}\u{E0031}\u{E007F}\u{200D}Ⓜ️", 2, 2);
+    assert_width!(
+        "🏴\u{E0031}\u{E0031}\u{E0031}\u{E0031}\u{E007F}\u{200D}Ⓜ️",
+        4,
+        4,
+    );
+    assert_width!(
+        "🏴\u{E0031}\u{E0031}\u{E0031}\u{E0063}\u{E007F}\u{200D}Ⓜ️",
+        2,
+        2,
+    );
+    assert_width!(
+        "🏴\u{E0031}\u{E0031}\u{E0031}\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️",
+        2,
+        2,
+    );
+    assert_width!(
+        "🏴\u{E0031}\u{E0031}\u{E0031}\u{E0063}\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️",
+        2,
+        2,
+    );
+    assert_width!(
+        "🏴\u{E0031}\u{E0031}\u{E0031}\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️",
+        2,
+        2,
+    );
+    assert_width!(
+        "🏴\u{E0031}\u{E0031}\u{E0031}\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️",
+        4,
+        4,
+    );
+    assert_width!("🏴\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️", 4, 4);
+    assert_width!("🏴\u{E0063}\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️", 2, 2);
+    assert_width!(
+        "🏴\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️",
+        2,
+        2,
+    );
+    assert_width!(
+        "🏴\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️",
+        2,
+        2,
+    );
+    assert_width!(
+        "🏴\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️",
+        2,
+        2,
+    );
+    assert_width!(
+        "🏴\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E0063}\u{E007F}\u{200D}Ⓜ️",
+        4,
+        4,
+    );
+
+    assert_width!("a\u{200D}🏴󠁧󠁢󠁷󠁬󠁳󠁿", 3, 3);
+    assert_width!("👪\u{200D}a", 3, 3);
+    assert_width!("a\u{200D}a", 2, 2);
+
+    assert_width!("*\u{FE0F}", 2, 2);
+    assert_width!("*\u{20E3}", 1, 1);
+    assert_width!("*️⃣", 2, 2);
+    assert_width!("*\u{FE0F}", 2, 2);
+    assert_width!("*\u{20E3}\u{FE0F}", 1, 1);
+    assert_width!("*️⃣\u{200D}👪", 2, 2);
+    assert_width!("*\u{20E3}\u{FE0F}\u{200D}👪", 3, 3);
+    assert_width!("*\u{20E3}\u{200D}👪", 3, 3);
+    assert_width!("*\u{FE0F}\u{200D}👪", 2, 2);
+    assert_width!("*️⃣\u{20E3}\u{200D}👪", 4, 4);
+    assert_width!("*\u{FE0F}\u{FE0F}\u{20E3}\u{200D}👪", 4, 4);
+
+    assert_width!(
+        "🇦👪\u{200D}🏿\u{200D}👪🏻\u{200D}Ⓜ️\u{200D}*\u{FE0F}\u{200D}🇦🇦\u{200D}🏴󠁧󠁢󠁷󠁬󠁳󠁿\u{200D}👪",
+        3,
+        3,
+    );
+}
+
+#[test]
+fn emoji_test_file() {
+    let norm_file = BufReader::new(
+        File::open("tests/emoji-test.txt")
+            .expect("run `unicode.py` first to download `emoji-test.txt`"),
+    );
+    for line in norm_file.lines() {
+        let line = line.unwrap();
+        if line.is_empty() || line.starts_with('#') {
+            continue;
+        }
+
+        let (cps, status) = line.split_once(';').unwrap();
+        let status = status.trim();
+        if status.starts_with("fully-qualified") || status.starts_with("component") {
+            let emoji: String = cps
+                .trim()
+                .split(' ')
+                .map(|s| char::try_from(u32::from_str_radix(s, 16).unwrap()).unwrap())
+                .collect();
+            dbg!(&emoji);
+            assert_width!(emoji, 2, 2);
+        }
+    }
+}
+
+// Test traits are unsealed
+
+#[cfg(feature = "cjk")]
+#[allow(dead_code)]
+struct Foo;
+
+#[cfg(feature = "cjk")]
+impl UnicodeWidthChar for Foo {
+    fn width(self) -> Option<usize> {
+        Some(0)
+    }
+
+    fn width_cjk(self) -> Option<usize> {
+        Some(0)
+    }
+}
+
+#[cfg(feature = "cjk")]
+impl UnicodeWidthStr for Foo {
+    fn width(&self) -> usize {
+        0
+    }
+
+    fn width_cjk(&self) -> usize {
+        0
+    }
+}
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index b0ab364..4254330 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -193,8 +193,8 @@
  "flagset",
  "flate2",
  "fnv",
- "foreign-types",
- "foreign-types-shared",
+ "foreign-types 0.3.1",
+ "foreign-types-shared 0.1.0",
  "form_urlencoded",
  "fragile",
  "fs-err",
@@ -420,7 +420,7 @@
  "tokio-stream",
  "tokio-test",
  "tokio-util",
- "toml 0.8.10",
+ "toml 0.8.19",
  "toml_datetime",
  "toml_edit 0.22.20",
  "tonic",
@@ -444,7 +444,7 @@
  "unicode-ident",
  "unicode-normalization",
  "unicode-segmentation",
- "unicode-width",
+ "unicode-width 0.2.0",
  "unicode-xid 0.2.6",
  "uniffi",
  "uniffi_checksum_derive 0.28.3",
@@ -536,7 +536,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e"
 dependencies = [
- "unicode-width",
+ "unicode-width 0.1.11",
  "yansi-term",
 ]
 
@@ -1168,7 +1168,7 @@
  "bitflags 1.3.2",
  "strsim 0.8.0",
  "textwrap 0.11.0",
- "unicode-width",
+ "unicode-width 0.1.11",
  "vec_map",
 ]
 
@@ -1258,7 +1258,7 @@
 checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
 dependencies = [
  "termcolor",
- "unicode-width",
+ "unicode-width 0.1.11",
 ]
 
 [[package]]
@@ -1319,12 +1319,6 @@
 checksum = "e57e3272f0190c3f1584272d613719ba5fc7df7f4942fe542e63d949cf3a649b"
 
 [[package]]
-name = "const-cstr"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
-
-[[package]]
 name = "const-oid"
 version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1354,14 +1348,14 @@
 
 [[package]]
 name = "core-graphics"
-version = "0.22.3"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
  "core-graphics-types",
- "foreign-types",
+ "foreign-types 0.5.0",
  "libc",
 ]
 
@@ -1378,13 +1372,13 @@
 
 [[package]]
 name = "core-text"
-version = "19.2.0"
+version = "20.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
+checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5"
 dependencies = [
  "core-foundation",
  "core-graphics",
- "foreign-types",
+ "foreign-types 0.5.0",
  "libc",
 ]
 
@@ -1594,9 +1588,9 @@
 
 [[package]]
 name = "data-encoding"
-version = "2.6.0"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
+checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f"
 
 [[package]]
 name = "debug_tree"
@@ -1669,24 +1663,24 @@
 ]
 
 [[package]]
-name = "dirs-next"
-version = "2.0.0"
+name = "dirs"
+version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
 dependencies = [
- "cfg-if",
- "dirs-sys-next",
+ "dirs-sys",
 ]
 
 [[package]]
-name = "dirs-sys-next"
-version = "0.1.2"
+name = "dirs-sys"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
 dependencies = [
  "libc",
+ "option-ext",
  "redox_users",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -1777,9 +1771,9 @@
 
 [[package]]
 name = "dwrote"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da3498378ed373237bdef1eddcc64e7be2d3ba4841f4c22a998e81cadeea83c"
+checksum = "70182709525a3632b2ba96b6569225467b18ecb4a77f46d255f713a6bebf05fd"
 dependencies = [
  "lazy_static",
  "libc",
@@ -1930,9 +1924,9 @@
 
 [[package]]
 name = "fdeflate"
-version = "0.3.5"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab"
+checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
 dependencies = [
  "simd-adler32",
 ]
@@ -1976,9 +1970,9 @@
 
 [[package]]
 name = "float-ord"
-version = "0.2.0"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
+checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d"
 
 [[package]]
 name = "fnv"
@@ -1988,19 +1982,19 @@
 
 [[package]]
 name = "font-kit"
-version = "0.11.0"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21fe28504d371085fae9ac7a3450f0b289ab71e07c8e57baa3fb68b9e57d6ce5"
+checksum = "b64b34f4efd515f905952d91bc185039863705592c0c53ae6d979805dd154520"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.7.0",
  "byteorder",
  "core-foundation",
  "core-graphics",
  "core-text",
- "dirs-next",
+ "dirs",
  "dwrote",
  "float-ord",
- "freetype",
+ "freetype-sys",
  "lazy_static",
  "libc",
  "log",
@@ -2017,7 +2011,28 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a21b40436003b2a1e22483c5ed6c3d25e755b6b3120f601cc22aa57e25dc9065"
 dependencies = [
- "foreign-types-shared",
+ "foreign-types-shared 0.1.0",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared 0.3.1",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2 1.0.93",
+ "quote 1.0.37",
+ "syn 2.0.96",
 ]
 
 [[package]]
@@ -2027,6 +2042,12 @@
 checksum = "baa1839fc3c5487b5e129ea4f774e3fd84e6c4607127315521bc014a722ebc9e"
 
 [[package]]
+name = "foreign-types-shared"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
 name = "form_urlencoded"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2042,16 +2063,6 @@
 checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
 
 [[package]]
-name = "freetype"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a440748e063798e4893ceb877151e84acef9bea9a8c6800645cf3f1b3a7806e"
-dependencies = [
- "freetype-sys",
- "libc",
-]
-
-[[package]]
 name = "freetype-sys"
 version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3010,9 +3021,9 @@
 
 [[package]]
 name = "log"
-version = "0.4.22"
+version = "0.4.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
+checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f"
 
 [[package]]
 name = "lru-cache"
@@ -3153,7 +3164,7 @@
  "miette-derive",
  "once_cell",
  "thiserror 1.0.49",
- "unicode-width",
+ "unicode-width 0.1.11",
 ]
 
 [[package]]
@@ -3588,7 +3599,7 @@
 dependencies = [
  "bitflags 2.7.0",
  "cfg-if",
- "foreign-types",
+ "foreign-types 0.3.1",
  "libc",
  "once_cell",
  "openssl-macros",
@@ -3619,6 +3630,12 @@
 ]
 
 [[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
 name = "ordered-multimap"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3821,9 +3838,9 @@
 
 [[package]]
 name = "pest_generator"
-version = "2.7.6"
+version = "2.7.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275"
+checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b"
 dependencies = [
  "pest",
  "pest_meta",
@@ -3855,18 +3872,18 @@
 
 [[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb"
 dependencies = [
  "proc-macro2 1.0.93",
  "quote 1.0.38",
@@ -3913,9 +3930,9 @@
 
 [[package]]
 name = "plotters"
-version = "0.3.5"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
+checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747"
 dependencies = [
  "chrono",
  "font-kit",
@@ -3939,9 +3956,9 @@
 
 [[package]]
 name = "plotters-bitmap"
-version = "0.3.3"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0cebbe1f70205299abc69e8b295035bb52a6a70ee35474ad10011f0a4efb8543"
+checksum = "72ce181e3f6bf82d6c1dc569103ca7b1bd964c60ba03d7e6cdfbb3e3eb7f7405"
 dependencies = [
  "gif",
  "image",
@@ -3959,9 +3976,9 @@
 
 [[package]]
 name = "png"
-version = "0.17.14"
+version = "0.17.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0"
+checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -5045,7 +5062,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
 dependencies = [
- "unicode-width",
+ "unicode-width 0.1.11",
 ]
 
 [[package]]
@@ -5056,7 +5073,7 @@
 dependencies = [
  "smawk",
  "unicode-linebreak",
- "unicode-width",
+ "unicode-width 0.1.11",
 ]
 
 [[package]]
@@ -5298,9 +5315,9 @@
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -5477,9 +5494,9 @@
 
 [[package]]
 name = "ttf-parser"
-version = "0.17.1"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "375812fa44dab6df41c195cd2f7fecb488f6c09fbaafb62807488cefab642bff"
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
 
 [[package]]
 name = "tungstenite"
@@ -5615,6 +5632,12 @@
 checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
+name = "unicode-width"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
+
+[[package]]
 name = "unicode-xid"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6526,11 +6549,10 @@
 
 [[package]]
 name = "yeslogic-fontconfig-sys"
-version = "3.2.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2bbd69036d397ebbff671b1b8e4d918610c181c5a16073b96f984a38d08c386"
+checksum = "503a066b4c037c440169d995b869046827dbc71263f6e8f3be6d77d4f3229dbd"
 dependencies = [
- "const-cstr",
  "dlib",
  "once_cell",
  "pkg-config",
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index 8737315..cc81ff6 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -82,7 +82,7 @@
 darling_core = "=0.20.10"
 darling_macro = "=0.20.10"
 dashmap = "=5.5.3"
-data-encoding = "=2.6.0"
+data-encoding = "=2.7.0"
 debug_tree = "=0.4.0"
 der = "=0.7.9"
 der_derive = "=0.7.3"
@@ -177,7 +177,7 @@
 linkme-impl = "=0.3.31"
 litrs = "=0.4.1"
 lock_api = "=0.4.12"
-log = "=0.4.22"
+log = "=0.4.25"
 lru-cache = "=0.1.2"
 lz4_flex = "=0.11.3"
 macaddr = "=1.0.1"
@@ -236,16 +236,16 @@
 percore = "=0.1.0"
 pest = "=2.7.15"
 pest_derive = "=2.7.6"
-pest_generator = "=2.7.6"
+pest_generator = "=2.7.15"
 pest_meta = "=2.7.15"
 petgraph = "=0.6.5"
-pin-project = "=1.1.3"
-pin-project-internal = "=1.1.3"
+pin-project = "=1.1.8"
+pin-project-internal = "=1.1.8"
 pin-project-lite = "=0.2.16"
 pin-utils = "=0.1.0"
 pkcs1 = "=0.7.5"
 pkcs8 = "=0.10.2"
-plotters = "=0.3.5"
+plotters = "=0.3.7"
 plotters-backend = "=0.3.7"
 plotters-svg = "=0.3.7"
 poll_token_derive = "=0.1.0"
@@ -335,7 +335,7 @@
 tokio-stream = "=0.1.17"
 tokio-test = "=0.4.2"
 tokio-util = "=0.7.13"
-toml = "=0.8.10"
+toml = "=0.8.19"
 toml_datetime = "=0.6.8"
 toml_edit = "=0.22.20"
 tonic = "=0.11.0"
@@ -359,7 +359,7 @@
 unicode-ident = "=1.0.8"
 unicode-normalization = "=0.1.24"
 unicode-segmentation = "=1.12.0"
-unicode-width = "=0.1.11"
+unicode-width = "=0.2.0"
 unicode-xid = "=0.2.6"
 uniffi = "=0.27.1"
 uniffi_checksum_derive = "=0.28.3"
diff --git a/pseudo_crate/deny.toml b/pseudo_crate/deny.toml
index bd776cf..a913d1c 100644
--- a/pseudo_crate/deny.toml
+++ b/pseudo_crate/deny.toml
@@ -30,6 +30,13 @@
     # particular target. target_features are currently not validated against
     # the actual valid features supported by the target architecture.
     #{ triple = "wasm32-unknown-unknown", features = ["atomics"] },
+    "aarch64-linux-android",
+    "armv7-linux-androideabi",
+    "i686-linux-android",
+    "i686-unknown-linux-gnu",
+    "riscv64-linux-android",
+    "x86_64-linux-android",
+    "x86_64-unknown-linux-gnu",
 ]
 # When creating the dependency graph used as the source of truth when checks are
 # executed, this field can be used to prune crates from the graph, removing them
@@ -64,9 +71,9 @@
 # https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html
 [advisories]
 # The path where the advisory databases are cloned/fetched into
-#db-path = "$CARGO_HOME/advisory-dbs"
+db-path = "$CARGO_HOME/advisory-dbs"
 # The url(s) of the advisory databases to use
-#db-urls = ["https://github.com/rustsec/advisory-db"]
+db-urls = ["https://github.com/rustsec/advisory-db"]
 # A list of advisory IDs to ignore. Note that ignored advisories will still
 # output a note when they are encountered.
 ignore = [
@@ -89,6 +96,18 @@
 # See https://spdx.org/licenses/ for list of possible licenses
 # [possible values: any SPDX 3.11 short identifier (+ optional exception)].
 allow = [
+    "0BSD",
+    "Apache-2.0",
+    "Apache-2.0 WITH LLVM-exception",
+    "BSD-2-Clause",
+    "BSD-3-Clause",
+    "CC0-1.0",
+    "ISC",
+    "MIT",
+    "MPL-2.0",
+    "OpenSSL",
+    "Unicode-DFS-2016",
+    "Zlib",
     #"MIT",
     #"Apache-2.0",
     #"Apache-2.0 WITH LLVM-exception",
@@ -109,20 +128,20 @@
 # Some crates don't have (easily) machine readable licensing information,
 # adding a clarification entry for it allows you to manually specify the
 # licensing information
-#[[licenses.clarify]]
+[[licenses.clarify]]
 # The package spec the clarification applies to
-#crate = "ring"
+crate = "ring"
 # The SPDX expression for the license requirements of the crate
-#expression = "MIT AND ISC AND OpenSSL"
+expression = "MIT AND ISC AND OpenSSL"
 # One or more files in the crate's source used as the "source of truth" for
 # the license expression. If the contents match, the clarification will be used
 # when running the license check, otherwise the clarification will be ignored
 # and the crate will be checked normally, which may produce warnings or errors
 # depending on the rest of your configuration
-#license-files = [
+license-files = [
 # Each entry is a crate relative path, and the (opaque) hash of its contents
-#{ path = "LICENSE", hash = 0xbd0eed23 }
-#]
+{ path = "LICENSE", hash = 0xbd0eed23 }
+]
 
 [licenses.private]
 # If true, ignores workspace crates that aren't published, or are only
@@ -142,7 +161,7 @@
 # https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html
 [bans]
 # Lint level for when multiple versions of the same crate are detected
-multiple-versions = "warn"
+multiple-versions = "allow"
 # Lint level for when a crate version requirement is `*`
 wildcards = "allow"
 # The graph highlighting used when creating dotgraphs for crates