aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2022-11-05 15:53:28 +0100
committerdec05eba <dec05eba@protonmail.com>2022-11-05 15:53:28 +0100
commit4daa57f6d139f51a62ea4bcffa738bd5035df33a (patch)
treeba767bbbf1c7153a12e3d9e866a079c30d1c69e0
parentf89117b5cf36797b04291942b2f2494895fc58dd (diff)
Support as many emoji as possible, using separate emoji images in text
-rw-r--r--README.md3
-rw-r--r--TODO7
m---------depends/mglpp0
-rwxr-xr-xgenerate-emoji-sequences.py117
-rwxr-xr-xgenerate-emoji-sprite.py73
-rw-r--r--generated/Emoji.cpp6658
-rw-r--r--generated/Emoji.hpp11
-rw-r--r--images/emoji.pngbin946761 -> 0 bytes
-rw-r--r--include/Text.hpp45
-rwxr-xr-xinstall.sh5
-rw-r--r--plugins/Youtube.hpp6
-rw-r--r--src/QuickMedia.cpp18
-rw-r--r--src/ResourceLoader.cpp1
-rw-r--r--src/Text.cpp462
-rw-r--r--src/plugins/Youtube.cpp17
-rw-r--r--tests/main.cpp12
16 files changed, 4276 insertions, 3159 deletions
diff --git a/README.md b/README.md
index bdf9024..9a9bac5 100644
--- a/README.md
+++ b/README.md
@@ -25,6 +25,7 @@ EXAMPLES:
```
## Installation
If you are running arch linux then you can install QuickMedia from aur (https://aur.archlinux.org/packages/quickmedia-git/), otherwise you will need to first install [sibs](https://git.dec05eba.com/sibs/) and then run `./install.sh` as root.\
+`unzip` and curl needs to be installed to run the `install.sh` script.\
Installing `lld` (the LLVM linker) can improve compile times.
## Dependencies
### Libraries
@@ -240,7 +241,7 @@ Cache is stored under `$XDG_CACHE_HOME/quickmedia` or `~/.cache/quickmedia`.
## Tabs
[tabbed](https://tools.suckless.org/tabbed/) can be used to put quickmedia windows into tabs. After installing `tabbed`, run `tabbed -c -k quickmedia launcher -e`.
## License
-QuickMedia is free software licensed under GPL 3.0, see LICENSE for more details. `images/emoji.png` uses Noto Color Emoji, which is licensed under the Apache license, see: https://github.com/googlefonts/noto-emoji.
+QuickMedia is free software licensed under GPL 3.0, see LICENSE for more details. The emojis are from the twemoji project, licensed under Creative Commons Public License 4.0 (see https://raw.githubusercontent.com/twitter/twemoji/v14.0.2/LICENSE-GRAPHICS).
# Screenshots
## Youtube search
![](https://dec05eba.com/images/youtube.webp)
diff --git a/TODO b/TODO
index 6821418..0a000a5 100644
--- a/TODO
+++ b/TODO
@@ -11,7 +11,7 @@ Allow deleting watch history with delete key (and show confirmation).
Add navigation to nyaa.si submitter torrents.
Create a large texture and add downloaded images to it. This will save memory usage because sfml has to use power of two textures (and so does opengl internally) for textures, so if you have multiple textures they will use more memory than one large texture with the same texture data.
Use fallback cjk font for regular mgl::Text as well (search, tabs, chapter name when viewing a page, path in file-manager, etc). That should also result in better performance on pinephone.
-Fix some japanese fonts not rendering (half width alphanumeric?).
+Fix some japanese characters not rendering (half width alphanumeric?).
Extract thumbnail from images that are being downloaded, while its downloading and show that while the full image is downloading (upscaled, or with blurhash).
Add setting to disable sending typing events to the server (matrix).
Take code from dchat to support gifs (inline in text) and support animated webp (either animated or as a static thumbnail).
@@ -240,4 +240,7 @@ Download manga pages in parallel. This helps downloading for certain websites su
Allow pasting a file link (with or without file://) directly into matrix chat to upload a file (if the chat input is empty). This allows replying-with-media to work with ctrl+v.
Matrix image reply to image reply to text reply is a bit broken in the text formatting.
The formatting of replying to a message with an image in matrix is a bit weird. The reply image should be below the replied to message instead of on the left side.
-Add ctrl+h to go back to the front page. \ No newline at end of file
+Add ctrl+h to go back to the front page.
+Async load textures (not just images). This can be done efficiently by using different opengl contexts in different threads and making the context current right before a heavy opengl operation. All threads need to set their opengl context often.
+Downloading files should take into account the remove mime type if available. Fallback to file extension.
+Text images atlas. \ No newline at end of file
diff --git a/depends/mglpp b/depends/mglpp
-Subproject a93ab69dc85a1e4898ccedcad1e59da0986acaa
+Subproject d04c98708fd46524c0861baf65e9e4ff62d4879
diff --git a/generate-emoji-sequences.py b/generate-emoji-sequences.py
new file mode 100755
index 0000000..b796548
--- /dev/null
+++ b/generate-emoji-sequences.py
@@ -0,0 +1,117 @@
+#!/usr/bin/env python3
+
+import requests
+
+response = requests.get("https://unicode.org/Public/emoji/15.0/emoji-test.txt")
+response.raise_for_status()
+
+all_sequences = []
+longest_sequence = 0
+
+for line in response.text.splitlines(False):
+ if len(line) == 0 or line[0] == '#' or line.find("fully-qualified") == -1:
+ continue
+
+ columns = line.split(";")
+ codepoints = columns[0].split()
+ sequence = []
+ for codepoint in codepoints:
+ sequence.append(int(codepoint, base=16))
+ longest_sequence = max(longest_sequence, len(sequence))
+ all_sequences.append(sequence)
+
+with open("generated/Emoji.hpp", "w") as header_file:
+ header_file.write("""#pragma once
+
+#include <stdint.h>
+#include <stddef.h>
+
+// This file was automatically generated with generate-emoji-sequences.py, do not edit manually!
+
+namespace QuickMedia {
+ bool match_emoji_sequence(const unsigned char *str, size_t size, uint32_t sequence[32], size_t &sequence_len, size_t &byte_length);
+}""")
+
+with open("generated/Emoji.cpp", "w") as source_file:
+ source_file.write("""#include "Emoji.hpp"
+#include <unordered_map>
+#include <array>
+#include <mglpp/system/Utf8.hpp>
+
+// This file was automatically generated with generate-emoji-sequences.py, do not edit manually!
+
+namespace QuickMedia {
+ static std::unordered_multimap<uint32_t, std::array<uint32_t, %d>> emoji_sequences = {
+""" % (longest_sequence - 1))
+ for sequence in all_sequences:
+ remaining_sequences = [ hex(c) for c in sequence[1:] ]
+ source_file.write(" { %s, { %s } },\n" % (hex(sequence[0]), ", ".join(remaining_sequences)))
+
+ source_file.write(
+""" };
+
+ bool match_emoji_sequence(const unsigned char *str, size_t size, uint32_t sequence[32], size_t &sequence_len, size_t &byte_length) {
+ uint32_t codepoint;
+ size_t clen;
+ if(!mgl::utf8_decode(str, size, &codepoint, &clen))
+ return false;
+
+ const size_t str_start_index = clen;
+ sequence[0] = codepoint;
+
+ auto range = emoji_sequences.equal_range(codepoint);
+ if(range.first == range.second)
+ return false;
+
+ auto longest_match_it = range.first;
+ size_t longest_match_byte_length = str_start_index;
+ bool match_found = false;
+
+ for(auto it = range.first, end = range.second; it != end; ++it) {
+ size_t str_index = str_start_index;
+
+ for(size_t i = 0; i < it->second.size(); ++i) {
+ const uint32_t codepoint_in_sequence = it->second[i];
+ if(codepoint_in_sequence == 0)
+ break;
+
+ if(str_index >= size)
+ goto next;
+
+ if(!mgl::utf8_decode(str + str_index, size - str_index, &codepoint, &clen))
+ goto next;
+
+ if(codepoint != codepoint_in_sequence)
+ goto next;
+
+ str_index += clen;
+ }
+
+ if(str_index >= longest_match_byte_length) {
+ longest_match_it = it;
+ longest_match_byte_length = str_index;
+ }
+
+ match_found = true;
+ next:;
+ }
+
+ if(!match_found)
+ return false;
+
+ size_t sequence_index = 1;
+ for(size_t i = 0; i < longest_match_it->second.size(); ++i) {
+ const uint32_t codepoint_in_sequence = longest_match_it->second[i];
+ if(codepoint_in_sequence == 0)
+ break;
+
+ sequence[sequence_index] = codepoint_in_sequence;
+ ++sequence_index;
+ }
+
+ sequence_len = sequence_index;
+ byte_length = longest_match_byte_length;
+ return true;
+ }
+}
+""") \ No newline at end of file
diff --git a/generate-emoji-sprite.py b/generate-emoji-sprite.py
deleted file mode 100755
index bc26843..0000000
--- a/generate-emoji-sprite.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env python3
-
-from gi.repository import Gtk, Gdk, Pango, PangoCairo
-import cairo
-
-surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 1024, 1369)
-context = cairo.Context(surface)
-pc = PangoCairo.create_context(context)
-layout = PangoCairo.create_layout(context)
-layout.set_font_description(Pango.FontDescription('NotoSans Emoji Normal 12'))
-layout.set_width(1024*Pango.SCALE)
-layout.set_wrap(Pango.WrapMode.CHAR)
-
-emoji_start = 0x1F000
-emoji_end = 0x1FB6F
-emoji_characters = []
-i = emoji_start
-while i <= emoji_end:
- emoji_characters.append(chr(i))
- i += 1
-
-layout.set_text("".join(emoji_characters), -1)
-PangoCairo.show_layout(context, layout)
-surface.write_to_png('images/emoji.png')
-
-with open("generated/Emoji.hpp", "w") as header_file:
- header_file.write("""#pragma once
-
-#include <stdint.h>
-
-// This file was automatically generated with generate-emoji-sprite.py, do not edit manually!
-
-namespace QuickMedia {
- struct EmojiRectangle {
- int x, y;
- int width, height;
- };
-
- bool codepoint_is_emoji(uint32_t codepoint);
- EmojiRectangle emoji_get_extents(uint32_t codepoint);
-}""")
-
-with open("generated/Emoji.cpp", "w") as source_file:
- source_file.write("""#include "Emoji.hpp"
-
-// This file was automatically generated with generate-emoji-sprite.py, do not edit manually!
-
-namespace QuickMedia {
- static EmojiRectangle emoji_extents[%s] = {
-""" % len(emoji_characters))
-
- i = 0
- index = 0
- for e in emoji_characters:
- emoji_pos = layout.index_to_pos(index)
- source_file.write(" {%s, %s, %s, %s}%s\n" % (int(emoji_pos.x/Pango.SCALE), int(emoji_pos.y/Pango.SCALE), int(emoji_pos.width/Pango.SCALE), int(emoji_pos.height/Pango.SCALE), "," if i < len(emoji_characters) - 1 else ""))
- i += 1
- index += 4
-
- source_file.write(
-""" };
-
- bool codepoint_is_emoji(uint32_t codepoint) {
- return codepoint >= 0x1F000 && codepoint <= 0x1FB6F;
- }
-
- EmojiRectangle emoji_get_extents(uint32_t codepoint) {
- if(codepoint < 0x1F000 || codepoint - 0x1F000 >= %s)
- return { 0, 0, 0, 0 };
- return emoji_extents[codepoint - 0x1F000];
- }
-}
-""" % len(emoji_characters))
diff --git a/generated/Emoji.cpp b/generated/Emoji.cpp
index c3b8b21..5156ba8 100644
--- a/generated/Emoji.cpp
+++ b/generated/Emoji.cpp
@@ -1,2946 +1,3730 @@
#include "Emoji.hpp"
+#include <unordered_map>
+#include <array>
+#include <mglpp/system/Utf8.hpp>
-// This file was automatically generated with generate-emoji-sprite.py, do not edit manually!
+// This file was automatically generated with generate-emoji-sequences.py, do not edit manually!
namespace QuickMedia {
- static EmojiRectangle emoji_extents[2928] = {
- {0, 0, 13, 21},
- {13, 0, 13, 21},
- {26, 0, 13, 21},
- {39, 0, 13, 21},
- {52, 0, 20, 21},
- {72, 0, 13, 21},
- {85, 0, 13, 21},
- {98, 0, 13, 21},
- {111, 0, 13, 21},
- {124, 0, 13, 21},
- {137, 0, 13, 21},
- {150, 0, 13, 21},
- {163, 0, 13, 21},
- {176, 0, 13, 21},
- {189, 0, 13, 21},
- {202, 0, 13, 21},
- {215, 0, 13, 21},
- {228, 0, 13, 21},
- {241, 0, 13, 21},
- {254, 0, 13, 21},
- {267, 0, 13, 21},
- {280, 0, 13, 21},
- {293, 0, 13, 21},
- {306, 0, 13, 21},
- {319, 0, 13, 21},
- {332, 0, 13, 21},
- {345, 0, 13, 21},
- {358, 0, 13, 21},
- {371, 0, 13, 21},
- {384, 0, 13, 21},
- {397, 0, 13, 21},
- {410, 0, 13, 21},
- {423, 0, 13, 21},
- {436, 0, 13, 21},
- {449, 0, 13, 21},
- {462, 0, 13, 21},
- {475, 0, 13, 21},
- {488, 0, 13, 21},
- {501, 0, 13, 21},
- {514, 0, 13, 21},
- {527, 0, 13, 21},
- {540, 0, 13, 21},
- {553, 0, 13, 21},
- {566, 0, 13, 21},
- {579, 0, 23, 21},
- {602, 0, 23, 21},
- {625, 0, 23, 21},
- {648, 0, 23, 21},
- {671, 0, 22, 21},
- {693, 0, 22, 21},
- {715, 0, 22, 21},
- {737, 0, 22, 21},
- {759, 0, 22, 21},
- {781, 0, 22, 21},
- {803, 0, 22, 21},
- {825, 0, 22, 21},
- {847, 0, 22, 21},
- {869, 0, 22, 21},
- {891, 0, 22, 21},
- {913, 0, 22, 21},
- {935, 0, 22, 21},
- {957, 0, 22, 21},
- {979, 0, 22, 21},
- {1001, 0, 22, 21},
- {0, 21, 22, 19},
- {22, 21, 22, 19},
- {44, 21, 22, 19},
- {66, 21, 22, 19},
- {88, 21, 22, 19},
- {110, 21, 22, 19},
- {132, 21, 22, 19},
- {154, 21, 22, 19},
- {176, 21, 22, 19},
- {198, 21, 22, 19},
- {220, 21, 22, 19},
- {242, 21, 22, 19},
- {264, 21, 22, 19},
- {286, 21, 22, 19},
- {308, 21, 22, 19},
- {330, 21, 22, 19},
- {352, 21, 22, 19},
- {374, 21, 22, 19},
- {396, 21, 22, 19},
- {418, 21, 22, 19},
- {440, 21, 22, 19},
- {462, 21, 22, 19},
- {484, 21, 22, 19},
- {506, 21, 22, 19},
- {528, 21, 22, 19},
- {550, 21, 22, 19},
- {572, 21, 22, 19},
- {594, 21, 22, 19},
- {616, 21, 22, 19},
- {638, 21, 22, 19},
- {660, 21, 22, 19},
- {682, 21, 22, 19},
- {704, 21, 22, 19},
- {726, 21, 22, 19},
- {748, 21, 13, 19},
- {761, 21, 13, 19},
- {774, 21, 13, 19},
- {787, 21, 13, 19},
- {800, 21, 13, 19},
- {813, 21, 13, 19},
- {826, 21, 13, 19},
- {839, 21, 13, 19},
- {852, 21, 13, 19},
- {865, 21, 13, 19},
- {878, 21, 13, 19},
- {891, 21, 13, 19},
- {904, 21, 13, 19},
- {917, 21, 13, 19},
- {930, 21, 13, 19},
- {943, 21, 13, 19},
- {956, 21, 13, 19},
- {969, 21, 13, 19},
- {982, 21, 13, 19},
- {995, 21, 13, 19},
- {1008, 21, 13, 19},
- {0, 40, 13, 21},
- {13, 40, 13, 21},
- {26, 40, 13, 21},
- {39, 40, 13, 21},
- {52, 40, 13, 21},
- {65, 40, 13, 21},
- {78, 40, 13, 21},
- {91, 40, 13, 21},
- {104, 40, 13, 21},
- {117, 40, 13, 21},
- {130, 40, 13, 21},
- {143, 40, 13, 21},
- {156, 40, 13, 21},
- {169, 40, 13, 21},
- {182, 40, 13, 21},
- {195, 40, 13, 21},
- {208, 40, 13, 21},
- {221, 40, 13, 21},
- {234, 40, 13, 21},
- {247, 40, 13, 21},
- {260, 40, 13, 21},
- {273, 40, 13, 21},
- {286, 40, 13, 21},
- {299, 40, 13, 21},
- {312, 40, 13, 21},
- {325, 40, 13, 21},
- {338, 40, 13, 21},
- {351, 40, 13, 21},
- {364, 40, 13, 21},
- {377, 40, 23, 21},
- {400, 40, 23, 21},
- {423, 40, 23, 21},
- {446, 40, 23, 21},
- {469, 40, 23, 21},
- {492, 40, 23, 21},
- {515, 40, 23, 21},
- {538, 40, 23, 21},
- {561, 40, 23, 21},
- {584, 40, 23, 21},
- {607, 40, 23, 21},
- {630, 40, 23, 21},
- {653, 40, 16, 21},
- {669, 40, 16, 21},
- {685, 40, 16, 21},
- {701, 40, 16, 21},
- {717, 40, 16, 21},
- {733, 40, 16, 21},
- {749, 40, 16, 21},
- {765, 40, 16, 21},
- {781, 40, 16, 21},
- {797, 40, 16, 21},
- {813, 40, 16, 21},
- {829, 40, 16, 21},
- {845, 40, 16, 21},
- {861, 40, 16, 21},
- {877, 40, 16, 21},
- {893, 40, 23, 21},
- {916, 40, 23, 21},
- {939, 40, 16, 21},
- {955, 40, 16, 21},
- {971, 40, 16, 21},
- {987, 40, 16, 21},
- {1003, 40, 16, 21},
- {0, 61, 16, 29},
- {16, 61, 16, 29},
- {32, 61, 16, 29},
- {48, 61, 16, 29},
- {64, 61, 16, 29},
- {80, 61, 16, 29},
- {96, 61, 16, 29},
- {112, 61, 17, 29},
- {129, 61, 16, 29},
- {145, 61, 11, 29},
- {156, 61, 23, 29},
- {179, 61, 16, 29},
- {195, 61, 16, 29},
- {211, 61, 16, 29},
- {227, 61, 16, 29},
- {243, 61, 16, 29},
- {259, 61, 16, 29},
- {275, 61, 16, 29},
- {291, 61, 16, 29},
- {307, 61, 16, 29},
- {323, 61, 16, 29},
- {339, 61, 16, 29},
- {355, 61, 16, 29},
- {371, 61, 16, 29},
- {387, 61, 16, 29},
- {403, 61, 20, 29},
- {423, 61, 23, 29},
- {446, 61, 16, 29},
- {462, 61, 16, 29},
- {478, 61, 16, 29},
- {494, 61, 16, 29},
- {510, 61, 16, 29},
- {526, 61, 16, 29},
- {542, 61, 16, 29},
- {558, 61, 16, 29},
- {574, 61, 16, 29},
- {590, 61, 16, 29},
- {606, 61, 16, 29},
- {622, 61, 16, 29},
- {638, 61, 16, 29},
- {654, 61, 16, 29},
- {670, 61, 16, 29},
- {686, 61, 11, 29},
- {697, 61, 11, 29},
- {708, 61, 11, 29},
- {719, 61, 11, 29},
- {730, 61, 11, 29},
- {741, 61, 11, 29},
- {752, 61, 11, 29},
- {763, 61, 11, 29},
- {774, 61, 11, 29},
- {785, 61, 11, 29},
- {796, 61, 11, 29},
- {807, 61, 11, 29},
- {818, 61, 11, 29},
- {829, 61, 11, 29},
- {840, 61, 11, 29},
- {851, 61, 11, 29},
- {862, 61, 11, 29},
- {873, 61, 11, 29},
- {884, 61, 11, 29},
- {895, 61, 11, 29},
- {906, 61, 11, 29},
- {917, 61, 11, 29},
- {928, 61, 23, 29},
- {951, 61, 23, 29},
- {974, 61, 23, 29},
- {997, 61, 23, 29},
- {0, 90, 23, 24},
- {23, 90, 23, 24},
- {46, 90, 23, 24},
- {69, 90, 23, 24},
- {92, 90, 23, 24},
- {115, 90, 23, 24},
- {138, 90, 16, 24},
- {154, 90, 16, 24},
- {170, 90, 16, 24},
- {186, 90, 16, 24},
- {202, 90, 16, 24},
- {218, 90, 16, 24},
- {234, 90, 16, 24},
- {250, 90, 16, 24},
- {266, 90, 16, 24},
- {282, 90, 16, 24},
- {298, 90, 16, 24},
- {314, 90, 16, 24},
- {330, 90, 16, 24},
- {346, 90, 23, 24},
- {369, 90, 23, 24},
- {392, 90, 23, 24},
- {415, 90, 16, 24},
- {431, 90, 16, 24},
- {447, 90, 16, 24},
- {463, 90, 16, 24},
- {479, 90, 16, 24},
- {495, 90, 16, 24},
- {511, 90, 16, 24},
- {527, 90, 16, 24},
- {543, 90, 16, 24},
- {559, 90, 16, 24},
- {575, 90, 16, 24},
- {591, 90, 16, 24},
- {607, 90, 16, 24},
- {623, 90, 16, 24},
- {639, 90, 16, 24},
- {655, 90, 16, 24},
- {671, 90, 16, 24},
- {687, 90, 16, 24},
- {703, 90, 16, 24},
- {719, 90, 16, 24},
- {735, 90, 16, 24},
- {751, 90, 16, 24},
- {767, 90, 16, 24},
- {783, 90, 16, 24},
- {799, 90, 16, 24},
- {815, 90, 16, 24},
- {831, 90, 16, 24},
- {847, 90, 16, 24},
- {863, 90, 16, 24},
- {879, 90, 16, 24},
- {895, 90, 16, 24},
- {911, 90, 13, 24},
- {924, 90, 16, 24},
- {940, 90, 16, 24},
- {956, 90, 16, 24},
- {972, 90, 16, 24},
- {988, 90, 16, 24},
- {1004, 90, 16, 24},
- {0, 114, 16, 24},
- {16, 114, 16, 24},
- {32, 114, 16, 24},
- {48, 114, 16, 24},
- {64, 114, 16, 24},
- {80, 114, 16, 24},
- {96, 114, 16, 24},
- {112, 114, 16, 24},
- {128, 114, 16, 24},
- {144, 114, 16, 24},
- {160, 114, 16, 24},
- {176, 114, 16, 24},
- {192, 114, 16, 24},
- {208, 114, 16, 24},
- {224, 114, 16, 24},
- {240, 114, 16, 24},
- {256, 114, 16, 24},
- {272, 114, 16, 24},
- {288, 114, 16, 24},
- {304, 114, 16, 24},
- {320, 114, 16, 24},
- {336, 114, 16, 24},
- {352, 114, 16, 24},
- {368, 114, 16, 24},
- {384, 114, 16, 24},
- {400, 114, 16, 24},
- {416, 114, 16, 24},
- {432, 114, 16, 24},
- {448, 114, 16, 24},
- {464, 114, 16, 24},
- {480, 114, 16, 24},
- {496, 114, 16, 24},
- {512, 114, 16, 24},
- {528, 114, 16, 24},
- {544, 114, 16, 24},
- {560, 114, 16, 24},
- {576, 114, 16, 24},
- {592, 114, 16, 24},
- {608, 114, 16, 24},
- {624, 114, 16, 24},
- {640, 114, 16, 24},
- {656, 114, 16, 24},
- {672, 114, 16, 24},
- {688, 114, 16, 24},
- {704, 114, 16, 24},
- {720, 114, 16, 24},
- {736, 114, 16, 24},
- {752, 114, 16, 24},
- {768, 114, 16, 24},
- {784, 114, 16, 24},
- {800, 114, 16, 24},
- {816, 114, 16, 24},
- {832, 114, 11, 24},
- {843, 114, 12, 24},
- {855, 114, 12, 24},
- {867, 114, 23, 24},
- {890, 114, 23, 24},
- {913, 114, 23, 24},
- {936, 114, 16, 24},
- {952, 114, 16, 24},
- {968, 114, 16, 24},
- {984, 114, 16, 24},
- {1000, 114, 16, 24},
- {0, 138, 16, 24},
- {16, 138, 16, 24},
- {32, 138, 16, 24},
- {48, 138, 16, 24},
- {64, 138, 16, 24},
- {80, 138, 16, 24},
- {96, 138, 16, 24},
- {112, 138, 16, 24},
- {128, 138, 16, 24},
- {144, 138, 16, 24},
- {160, 138, 16, 24},
- {176, 138, 16, 24},
- {192, 138, 16, 24},
- {208, 138, 16, 24},
- {224, 138, 16, 24},
- {240, 138, 16, 24},
- {256, 138, 16, 24},
- {272, 138, 16, 24},
- {288, 138, 16, 24},
- {304, 138, 16, 24},
- {320, 138, 16, 24},
- {336, 138, 16, 24},
- {352, 138, 16, 24},
- {368, 138, 16, 24},
- {384, 138, 16, 24},
- {400, 138, 20, 24},
- {420, 138, 16, 24},
- {436, 138, 16, 24},
- {452, 138, 20, 24},
- {472, 138, 20, 24},
- {492, 138, 20, 24},
- {512, 138, 20, 24},
- {532, 138, 20, 24},
- {552, 138, 20, 24},
- {572, 138, 20, 24},
- {592, 138, 20, 24},
- {612, 138, 20, 24},
- {632, 138, 20, 24},
- {652, 138, 16, 24},
- {668, 138, 16, 24},
- {684, 138, 16, 24},
- {700, 138, 16, 24},
- {716, 138, 16, 24},
- {732, 138, 16, 24},
- {748, 138, 16, 24},
- {764, 138, 16, 24},
- {780, 138, 16, 24},
- {796, 138, 16, 24},
- {812, 138, 16, 24},
- {828, 138, 16, 24},
- {844, 138, 16, 24},
- {860, 138, 16, 24},
- {876, 138, 16, 24},
- {892, 138, 16, 24},
- {908, 138, 16, 24},
- {924, 138, 16, 24},
- {940, 138, 23, 24},
- {963, 138, 23, 24},
- {986, 138, 23, 24},
- {0, 162, 23, 21},
- {23, 162, 23, 21},
- {46, 162, 23, 21},
- {69, 162, 23, 21},
- {92, 162, 23, 21},
- {115, 162, 23, 21},
- {138, 162, 23, 21},
- {161, 162, 23, 21},
- {184, 162, 23, 21},
- {207, 162, 23, 21},
- {230, 162, 23, 21},
- {253, 162, 23, 21},
- {276, 162, 23, 21},
- {299, 162, 23, 21},
- {322, 162, 23, 21},
- {345, 162, 23, 21},
- {368, 162, 23, 21},
- {391, 162, 23, 21},
- {414, 162, 23, 21},
- {437, 162, 23, 21},
- {460, 162, 23, 21},
- {483, 162, 23, 21},
- {506, 162, 23, 21},
- {529, 162, 23, 21},
- {552, 162, 23, 21},
- {575, 162, 23, 21},
- {598, 162, 23, 21},
- {621, 162, 23, 21},
- {644, 162, 23, 21},
- {667, 162, 23, 21},
- {690, 162, 23, 21},
- {713, 162, 23, 21},
- {736, 162, 23, 21},
- {759, 162, 23, 21},
- {782, 162, 23, 21},
- {805, 162, 23, 21},
- {828, 162, 23, 21},
- {851, 162, 23, 21},
- {874, 162, 23, 21},
- {897, 162, 23, 21},
- {920, 162, 23, 21},
- {943, 162, 23, 21},
- {966, 162, 23, 21},
- {989, 162, 23, 21},
- {0, 183, 23, 24},
- {23, 183, 23, 24},
- {46, 183, 23, 24},
- {69, 183, 23, 24},
- {92, 183, 23, 24},
- {115, 183, 23, 24},
- {138, 183, 23, 24},
- {161, 183, 23, 24},
- {184, 183, 23, 24},
- {207, 183, 23, 24},
- {230, 183, 20, 24},
- {230, 183, 20, 24},
- {250, 183, 20, 24},
- {250, 183, 20, 24},
- {270, 183, 20, 24},
- {270, 183, 20, 24},
- {290, 183, 20, 24},
- {290, 183, 20, 24},
- {310, 183, 20, 24},
- {310, 183, 20, 24},
- {330, 183, 20, 24},
- {330, 183, 20, 24},
- {350, 183, 20, 24},
- {350, 183, 20, 24},
- {370, 183, 20, 24},
- {370, 183, 20, 24},
- {390, 183, 30, 24},
- {390, 183, 30, 24},
- {420, 183, 20, 24},
- {420, 183, 20, 24},
- {440, 183, 20, 24},
- {440, 183, 20, 24},
- {460, 183, 20, 24},
- {460, 183, 20, 24},
- {480, 183, 30, 24},
- {480, 183, 30, 24},
- {510, 183, 16, 24},
- {526, 183, 20, 24},
- {546, 183, 16, 24},
- {562, 183, 23, 24},
- {585, 183, 23, 24},
- {608, 183, 23, 24},
- {631, 183, 23, 24},
- {654, 183, 23, 24},
- {677, 183, 23, 24},
- {700, 183, 23, 24},
- {723, 183, 23, 24},
- {746, 183, 23, 24},
- {769, 183, 23, 24},
- {792, 183, 23, 24},
- {815, 183, 23, 24},
- {838, 183, 23, 24},
- {861, 183, 16, 24},
- {877, 183, 16, 24},
- {893, 183, 16, 24},
- {909, 183, 16, 24},
- {925, 183, 16, 24},
- {941, 183, 16, 24},
- {957, 183, 16, 24},
- {973, 183, 16, 24},
- {989, 183, 16, 24},
- {1005, 183, 16, 24},
- {0, 207, 20, 24},
- {20, 207, 16, 24},
- {36, 207, 16, 24},
- {52, 207, 16, 24},
- {68, 207, 16, 24},
- {84, 207, 16, 24},
- {100, 207, 16, 24},
- {116, 207, 16, 24},
- {132, 207, 16, 24},
- {148, 207, 16, 24},
- {164, 207, 16, 24},
- {180, 207, 16, 24},
- {196, 207, 16, 24},
- {212, 207, 16, 24},
- {228, 207, 16, 24},
- {244, 207, 16, 24},
- {260, 207, 16, 24},
- {276, 207, 16, 24},
- {292, 207, 16, 24},
- {308, 207, 16, 24},
- {324, 207, 16, 24},
- {340, 207, 20, 24},
- {360, 207, 16, 24},
- {376, 207, 16, 24},
- {392, 207, 20, 24},
- {412, 207, 20, 24},
- {432, 207, 20, 24},
- {452, 207, 20, 24},
- {472, 207, 20, 24},
- {492, 207, 16, 24},
- {508, 207, 20, 24},
- {528, 207, 20, 24},
- {548, 207, 20, 24},
- {568, 207, 16, 24},
- {584, 207, 23, 24},
- {607, 207, 23, 24},
- {630, 207, 23, 24},
- {653, 207, 23, 24},
- {676, 207, 16, 24},
- {692, 207, 16, 24},
- {708, 207, 16, 24},
- {724, 207, 16, 24},
- {740, 207, 16, 24},
- {756, 207, 16, 24},
- {772, 207, 16, 24},
- {788, 207, 16, 24},
- {804, 207, 16, 24},
- {820, 207, 23, 24},
- {843, 207, 23, 24},
- {866, 207, 23, 24},
- {889, 207, 23, 24},
- {912, 207, 23, 24},
- {935, 207, 23, 24},
- {958, 207, 23, 24},
- {981, 207, 20, 24},
- {1001, 207, 20, 24},
- {0, 231, 23, 21},
- {23, 231, 23, 21},
- {46, 231, 23, 21},
- {69, 231, 23, 21},
- {92, 231, 23, 21},
- {115, 231, 23, 21},
- {138, 231, 23, 21},
- {161, 231, 23, 21},
- {184, 231, 23, 21},
- {207, 231, 23, 21},
- {230, 231, 23, 21},
- {253, 231, 23, 21},
- {276, 231, 23, 21},
- {299, 231, 23, 21},
- {322, 231, 23, 21},
- {345, 231, 23, 21},
- {368, 231, 23, 21},
- {391, 231, 23, 21},
- {414, 231, 23, 21},
- {437, 231, 23, 21},
- {460, 231, 23, 21},
- {483, 231, 23, 21},
- {506, 231, 23, 21},
- {529, 231, 23, 21},
- {552, 231, 23, 21},
- {575, 231, 23, 21},
- {598, 231, 23, 21},
- {621, 231, 23, 21},
- {644, 231, 23, 21},
- {667, 231, 23, 21},
- {690, 231, 23, 21},
- {713, 231, 23, 21},
- {736, 231, 23, 21},
- {759, 231, 23, 21},
- {782, 231, 23, 21},
- {805, 231, 23, 21},
- {828, 231, 23, 21},
- {851, 231, 23, 21},
- {874, 231, 23, 21},
- {897, 231, 23, 21},
- {920, 231, 23, 21},
- {943, 231, 23, 21},
- {966, 231, 23, 21},
- {989, 231, 23, 21},
- {0, 252, 23, 21},
- {23, 252, 23, 21},
- {46, 252, 23, 21},
- {69, 252, 23, 21},
- {92, 252, 23, 21},
- {115, 252, 23, 21},
- {138, 252, 23, 21},
- {161, 252, 23, 21},
- {184, 252, 23, 21},
- {207, 252, 23, 21},
- {230, 252, 23, 21},
- {253, 252, 23, 21},
- {276, 252, 23, 21},
- {299, 252, 23, 21},
- {322, 252, 23, 21},
- {345, 252, 23, 21},
- {368, 252, 23, 21},
- {391, 252, 23, 21},
- {414, 252, 23, 21},
- {437, 252, 23, 21},
- {460, 252, 23, 21},
- {483, 252, 23, 21},
- {506, 252, 23, 21},
- {529, 252, 23, 21},
- {552, 252, 23, 21},
- {575, 252, 23, 21},
- {598, 252, 23, 21},
- {621, 252, 23, 21},
- {644, 252, 23, 21},
- {667, 252, 23, 21},
- {690, 252, 23, 21},
- {713, 252, 23, 21},
- {736, 252, 23, 21},
- {759, 252, 23, 21},
- {782, 252, 23, 21},
- {805, 252, 23, 21},
- {828, 252, 23, 21},
- {851, 252, 23, 21},
- {874, 252, 23, 21},
- {897, 252, 23, 21},
- {920, 252, 23, 21},
- {943, 252, 23, 21},
- {966, 252, 23, 21},
- {989, 252, 23, 21},
- {0, 273, 23, 21},
- {23, 273, 23, 21},
- {46, 273, 23, 21},
- {69, 273, 23, 21},
- {92, 273, 23, 21},
- {115, 273, 23, 21},
- {138, 273, 23, 21},
- {161, 273, 23, 21},
- {184, 273, 23, 21},
- {207, 273, 23, 21},
- {230, 273, 23, 21},
- {253, 273, 23, 21},
- {276, 273, 23, 21},
- {299, 273, 23, 21},
- {322, 273, 23, 21},
- {345, 273, 23, 21},
- {368, 273, 23, 21},
- {391, 273, 23, 21},
- {414, 273, 23, 21},
- {437, 273, 23, 21},
- {460, 273, 23, 21},
- {483, 273, 23, 21},
- {506, 273, 23, 21},
- {529, 273, 23, 21},
- {552, 273, 23, 21},
- {575, 273, 23, 21},
- {598, 273, 23, 21},
- {621, 273, 23, 21},
- {644, 273, 23, 21},
- {667, 273, 23, 21},
- {690, 273, 23, 21},
- {713, 273, 23, 21},
- {736, 273, 23, 21},
- {759, 273, 23, 21},
- {782, 273, 23, 21},
- {805, 273, 23, 21},
- {828, 273, 23, 21},
- {851, 273, 23, 21},
- {874, 273, 23, 21},
- {897, 273, 23, 21},
- {920, 273, 23, 21},
- {943, 273, 23, 21},
- {966, 273, 23, 21},
- {989, 273, 23, 21},
- {0, 294, 23, 21},
- {23, 294, 23, 21},
- {46, 294, 23, 21},
- {69, 294, 23, 21},
- {92, 294, 23, 21},
- {115, 294, 23, 21},
- {138, 294, 23, 21},
- {161, 294, 23, 21},
- {184, 294, 23, 21},
- {207, 294, 23, 21},
- {230, 294, 23, 21},
- {253, 294, 23, 21},
- {276, 294, 23, 21},
- {299, 294, 23, 21},
- {322, 294, 23, 21},
- {345, 294, 23, 21},
- {368, 294, 23, 21},
- {391, 294, 23, 21},
- {414, 294, 23, 21},
- {437, 294, 23, 21},
- {460, 294, 23, 21},
- {483, 294, 23, 21},
- {506, 294, 23, 21},
- {529, 294, 23, 21},
- {552, 294, 23, 21},
- {575, 294, 23, 21},
- {598, 294, 23, 21},
- {621, 294, 23, 21},
- {644, 294, 23, 21},
- {667, 294, 23, 21},
- {690, 294, 23, 21},
- {713, 294, 23, 21},
- {736, 294, 23, 21},
- {759, 294, 23, 21},
- {782, 294, 23, 21},
- {805, 294, 23, 21},
- {828, 294, 23, 21},
- {851, 294, 23, 21},
- {874, 294, 23, 21},
- {897, 294, 23, 21},
- {920, 294, 23, 21},
- {943, 294, 23, 21},
- {966, 294, 20, 21},
- {986, 294, 20, 21},
- {0, 315, 20, 29},
- {20, 315, 20, 29},
- {40, 315, 20, 29},
- {60, 315, 20, 29},
- {80, 315, 20, 29},
- {100, 315, 20, 29},
- {120, 315, 20, 29},
- {140, 315, 20, 29},
- {160, 315, 20, 29},
- {180, 315, 20, 29},
- {200, 315, 20, 29},
- {220, 315, 20, 29},
- {240, 315, 20, 29},
- {260, 315, 20, 29},
- {280, 315, 20, 29},
- {300, 315, 20, 29},
- {320, 315, 20, 29},
- {340, 315, 20, 29},
- {360, 315, 20, 29},
- {380, 315, 20, 29},
- {400, 315, 20, 29},
- {420, 315, 20, 29},
- {440, 315, 20, 29},
- {460, 315, 20, 29},
- {480, 315, 20, 29},
- {500, 315, 20, 29},
- {520, 315, 20, 29},
- {540, 315, 20, 29},
- {560, 315, 20, 29},
- {580, 315, 20, 29},
- {600, 315, 20, 29},
- {620, 315, 11, 29},
- {631, 315, 11, 29},
- {642, 315, 14, 29},
- {656, 315, 19, 29},
- {675, 315, 17, 29},
- {692, 315, 18, 29},
- {710, 315, 18, 29},
- {728, 315, 20, 29},
- {748, 315, 18, 29},
- {766, 315, 18, 29},
- {784, 315, 18, 29},
- {802, 315, 17, 29},
- {819, 315, 20, 29},
- {839, 315, 20, 29},
- {859, 315, 20, 29},
- {879, 315, 20, 29},
- {899, 315, 20, 29},
- {919, 315, 20, 29},
- {939, 315, 20, 29},
- {959, 315, 20, 29},
- {979, 315, 20, 29},
- {999, 315, 12, 29},
- {0, 344, 20, 18},
- {20, 344, 20, 18},
- {40, 344, 20, 18},
- {60, 344, 20, 18},
- {80, 344, 20, 18},
- {100, 344, 20, 18},
- {120, 344, 20, 18},
- {140, 344, 20, 18},
- {160, 344, 20, 18},
- {180, 344, 20, 18},
- {200, 344, 20, 18},
- {220, 344, 20, 18},
- {240, 344, 20, 18},
- {260, 344, 20, 18},
- {280, 344, 20, 18},
- {300, 344, 20, 18},
- {320, 344, 20, 18},
- {340, 344, 20, 18},
- {360, 344, 20, 18},
- {380, 344, 20, 18},
- {400, 344, 20, 18},
- {420, 344, 20, 18},
- {440, 344, 20, 18},
- {460, 344, 20, 18},
- {480, 344, 20, 18},
- {500, 344, 20, 18},
- {520, 344, 20, 18},
- {540, 344, 20, 18},
- {560, 344, 20, 18},
- {580, 344, 20, 18},
- {600, 344, 20, 18},
- {620, 344, 20, 18},
- {640, 344, 20, 18},
- {660, 344, 20, 18},
- {680, 344, 20, 18},
- {700, 344, 20, 18},
- {720, 344, 20, 18},
- {740, 344, 20, 18},
- {760, 344, 20, 18},
- {780, 344, 20, 18},
- {800, 344, 20, 18},
- {820, 344, 20, 18},
- {840, 344, 20, 18},
- {860, 344, 20, 18},
- {880, 344, 20, 18},
- {900, 344, 20, 18},
- {920, 344, 20, 18},
- {940, 344, 20, 18},
- {960, 344, 20, 18},
- {980, 344, 20, 18},
- {1000, 344, 20, 18},
- {0, 363, 20, 29},
- {20, 363, 20, 29},
- {40, 363, 20, 29},
- {60, 363, 20, 29},
- {80, 363, 20, 29},
- {100, 363, 20, 29},
- {120, 363, 20, 29},
- {140, 363, 20, 29},
- {160, 363, 20, 29},
- {180, 363, 20, 29},
- {200, 363, 20, 29},
- {220, 363, 20, 29},
- {240, 363, 20, 29},
- {260, 363, 20, 29},
- {280, 363, 20, 29},
- {300, 363, 20, 29},
- {320, 363, 20, 29},
- {340, 363, 20, 29},
- {360, 363, 20, 29},
- {380, 363, 17, 29},
- {397, 363, 20, 29},
- {417, 363, 20, 29},
- {437, 363, 20, 29},
- {457, 363, 20, 29},
- {477, 363, 20, 29},
- {497, 363, 20, 29},
- {517, 363, 20, 29},
- {537, 363, 20, 29},
- {557, 363, 20, 29},
- {577, 363, 20, 29},
- {597, 363, 20, 29},
- {617, 363, 20, 29},
- {637, 363, 20, 29},
- {657, 363, 20, 29},
- {677, 363, 20, 29},
- {697, 363, 20, 29},
- {717, 363, 20, 29},
- {737, 363, 20, 29},
- {757, 363, 20, 29},
- {777, 363, 20, 29},
- {797, 363, 20, 29},
- {817, 363, 20, 29},
- {837, 363, 17, 29},
- {854, 363, 14, 29},
- {868, 363, 10, 29},
- {878, 363, 12, 29},
- {890, 363, 17, 29},
- {907, 363, 9, 29},
- {916, 363, 9, 29},
- {925, 363, 16, 29},
- {941, 363, 16, 29},
- {957, 363, 15, 29},
- {972, 363, 16, 29},
- {988, 363, 16, 29},
- {1004, 363, 20, 29},
- {0, 392, 20, 29},
- {20, 392, 20, 29},
- {40, 392, 20, 29},
- {60, 392, 20, 29},
- {80, 392, 20, 29},
- {100, 392, 20, 29},
- {120, 392, 20, 29},
- {140, 392, 20, 29},
- {160, 392, 20, 29},
- {180, 392, 20, 29},
- {200, 392, 20, 29},
- {220, 392, 20, 29},
- {240, 392, 20, 29},
- {260, 392, 20, 29},
- {280, 392, 20, 29},
- {300, 392, 20, 29},
- {320, 392, 20, 29},
- {340, 392, 20, 29},
- {360, 392, 20, 29},
- {380, 392, 20, 29},
- {400, 392, 20, 29},
- {420, 392, 20, 29},
- {440, 392, 20, 29},
- {460, 392, 20, 29},
- {480, 392, 20, 29},
- {500, 392, 20, 29},
- {520, 392, 20, 29},
- {540, 392, 20, 29},
- {560, 392, 20, 29},
- {580, 392, 20, 29},
- {600, 392, 20, 29},
- {620, 392, 20, 29},
- {640, 392, 20, 29},
- {660, 392, 20, 29},
- {680, 392, 20, 29},
- {700, 392, 20, 29},
- {720, 392, 20, 29},
- {740, 392, 20, 29},
- {760, 392, 20, 29},
- {780, 392, 20, 29},
- {800, 392, 20, 29},
- {820, 392, 20, 29},
- {840, 392, 20, 29},
- {860, 392, 20, 29},
- {880, 392, 18, 29},
- {898, 392, 20, 29},
- {918, 392, 20, 29},
- {938, 392, 20, 29},
- {958, 392, 20, 29},
- {978, 392, 20, 29},
- {998, 392, 20, 29},
- {0, 421, 18, 29},
- {18, 421, 18, 29},
- {36, 421, 18, 29},
- {54, 421, 18, 29},
- {72, 421, 18, 29},
- {90, 421, 18, 29},
- {108, 421, 18, 29},
- {126, 421, 18, 29},
- {144, 421, 18, 29},
- {162, 421, 18, 29},
- {180, 421, 18, 29},
- {198, 421, 18, 29},
- {216, 421, 20, 29},
- {236, 421, 20, 29},
- {256, 421, 20, 29},
- {276, 421, 20, 29},
- {296, 421, 20, 29},
- {316, 421, 20, 29},
- {336, 421, 20, 29},
- {356, 421, 20, 29},
- {376, 421, 20, 29},
- {396, 421, 20, 29},
- {416, 421, 20, 29},
- {436, 421, 20, 29},
- {456, 421, 20, 29},
- {476, 421, 20, 29},
- {496, 421, 20, 29},
- {516, 421, 20, 29},
- {536, 421, 20, 29},
- {556, 421, 14, 29},
- {570, 421, 14, 29},
- {584, 421, 18, 29},
- {602, 421, 20, 29},
- {622, 421, 15, 29},
- {637, 421, 15, 29},
- {652, 421, 18, 29},
- {670, 421, 20, 29},
- {690, 421, 20, 29},
- {710, 421, 40, 29},
- {730, 421, 100, 29},
- {730, 421, 100, 29},
- {730, 421, 100, 29},
- {730, 421, 100, 29},
- {730, 421, 100, 29},
- {830, 421, 20, 29},
- {850, 421, 20, 29},
- {870, 421, 20, 29},
- {890, 421, 20, 29},
- {910, 421, 20, 29},
- {930, 421, 20, 29},
- {950, 421, 20, 29},
- {970, 421, 20, 29},
- {990, 421, 20, 29},
- {0, 450, 20, 18},
- {20, 450, 20, 18},
- {40, 450, 20, 18},
- {60, 450, 20, 18},
- {80, 450, 20, 18},
- {100, 450, 20, 18},
- {120, 450, 20, 18},
- {140, 450, 20, 18},
- {160, 450, 20, 18},
- {180, 450, 20, 18},
- {200, 450, 20, 18},
- {220, 450, 20, 18},
- {240, 450, 20, 18},
- {260, 450, 20, 18},
- {280, 450, 20, 18},
- {300, 450, 20, 18},
- {320, 450, 20, 18},
- {340, 450, 20, 18},
- {360, 450, 20, 18},
- {380, 450, 20, 18},
- {400, 450, 20, 18},
- {420, 450, 20, 18},
- {440, 450, 20, 18},
- {460, 450, 20, 18},
- {480, 450, 20, 18},
- {500, 450, 20, 18},
- {520, 450, 20, 18},
- {540, 450, 20, 18},
- {560, 450, 20, 18},
- {580, 450, 20, 18},
- {600, 450, 20, 18},
- {620, 450, 20, 18},
- {640, 450, 20, 18},
- {660, 450, 20, 18},
- {680, 450, 20, 18},
- {700, 450, 20, 18},
- {720, 450, 20, 18},
- {740, 450, 20, 18},
- {760, 450, 20, 18},
- {780, 450, 20, 18},
- {800, 450, 20, 18},
- {820, 450, 20, 18},
- {840, 450, 20, 18},
- {860, 450, 20, 18},
- {880, 450, 20, 18},
- {900, 450, 20, 18},
- {920, 450, 20, 18},
- {940, 450, 20, 18},
- {960, 450, 20, 18},
- {980, 450, 20, 18},
- {1000, 450, 20, 18},
- {0, 469, 20, 29},
- {20, 469, 20, 29},
- {40, 469, 20, 29},
- {60, 469, 17, 29},
- {77, 469, 20, 29},
- {97, 469, 16, 29},
- {113, 469, 20, 29},
- {133, 469, 20, 29},
- {153, 469, 20, 29},
- {173, 469, 20, 29},
- {193, 469, 20, 29},
- {213, 469, 20, 29},
- {233, 469, 20, 29},
- {253, 469, 20, 29},
- {273, 469, 20, 29},
- {293, 469, 20, 29},
- {313, 469, 20, 29},
- {333, 469, 20, 29},
- {353, 469, 20, 29},
- {373, 469, 20, 29},
- {393, 469, 20, 29},
- {413, 469, 20, 29},
- {433, 469, 20, 29},
- {453, 469, 20, 29},
- {473, 469, 20, 29},
- {493, 469, 20, 29},
- {513, 469, 20, 29},
- {533, 469, 20, 29},
- {553, 469, 20, 29},
- {573, 469, 20, 29},
- {593, 469, 20, 29},
- {613, 469, 20, 29},
- {633, 469, 20, 29},
- {653, 469, 20, 29},
- {673, 469, 20, 29},
- {693, 469, 20, 29},
- {713, 469, 20, 29},
- {733, 469, 20, 29},
- {753, 469, 20, 29},
- {773, 469, 20, 29},
- {793, 469, 20, 29},
- {813, 469, 20, 29},
- {833, 469, 20, 29},
- {853, 469, 20, 29},
- {873, 469, 20, 29},
- {893, 469, 20, 29},
- {913, 469, 20, 29},
- {933, 469, 20, 29},
- {953, 469, 20, 29},
- {973, 469, 20, 29},
- {993, 469, 20, 29},
- {0, 498, 20, 18},
- {20, 498, 20, 18},
- {40, 498, 20, 18},
- {60, 498, 20, 18},
- {80, 498, 20, 18},
- {100, 498, 20, 18},
- {120, 498, 20, 18},
- {140, 498, 20, 18},
- {160, 498, 20, 18},
- {180, 498, 20, 18},
- {200, 498, 20, 18},
- {220, 498, 20, 18},
- {240, 498, 20, 18},
- {260, 498, 20, 18},
- {280, 498, 20, 18},
- {300, 498, 20, 18},
- {320, 498, 20, 18},
- {340, 498, 20, 18},
- {360, 498, 20, 18},
- {380, 498, 20, 18},
- {400, 498, 20, 18},
- {420, 498, 20, 18},
- {440, 498, 20, 18},
- {460, 498, 20, 18},
- {480, 498, 20, 18},
- {500, 498, 20, 18},
- {520, 498, 20, 18},
- {540, 498, 20, 18},
- {560, 498, 20, 18},
- {580, 498, 20, 18},
- {600, 498, 20, 18},
- {620, 498, 20, 18},
- {640, 498, 20, 18},
- {660, 498, 20, 18},
- {680, 498, 20, 18},
- {700, 498, 20, 18},
- {720, 498, 20, 18},
- {740, 498, 20, 18},
- {760, 498, 20, 18},
- {780, 498, 20, 18},
- {800, 498, 20, 18},
- {820, 498, 20, 18},
- {840, 498, 20, 18},
- {860, 498, 20, 18},
- {880, 498, 20, 18},
- {900, 498, 20, 18},
- {920, 498, 20, 18},
- {940, 498, 20, 18},
- {960, 498, 20, 18},
- {980, 498, 20, 18},
- {1000, 498, 20, 18},
- {0, 517, 20, 18},
- {20, 517, 20, 18},
- {40, 517, 20, 18},
- {60, 517, 20, 18},
- {80, 517, 20, 18},
- {100, 517, 20, 18},
- {120, 517, 20, 18},
- {140, 517, 20, 18},
- {160, 517, 20, 18},
- {180, 517, 20, 18},
- {200, 517, 20, 18},
- {220, 517, 20, 18},
- {240, 517, 20, 18},
- {260, 517, 20, 18},
- {280, 517, 20, 18},
- {300, 517, 20, 18},
- {320, 517, 20, 18},
- {340, 517, 20, 18},
- {360, 517, 20, 18},
- {380, 517, 20, 18},
- {400, 517, 20, 18},
- {420, 517, 20, 18},
- {440, 517, 20, 18},
- {460, 517, 20, 18},
- {480, 517, 20, 18},
- {500, 517, 20, 18},
- {520, 517, 20, 18},
- {540, 517, 20, 18},
- {560, 517, 20, 18},
- {580, 517, 20, 18},
- {600, 517, 20, 18},
- {620, 517, 20, 18},
- {640, 517, 20, 18},
- {660, 517, 20, 18},
- {680, 517, 20, 18},
- {700, 517, 20, 18},
- {720, 517, 20, 18},
- {740, 517, 20, 18},
- {760, 517, 20, 18},
- {780, 517, 20, 18},
- {800, 517, 20, 18},
- {820, 517, 20, 18},
- {840, 517, 20, 18},
- {860, 517, 20, 18},
- {880, 517, 20, 18},
- {900, 517, 20, 18},
- {920, 517, 20, 18},
- {940, 517, 20, 18},
- {960, 517, 20, 18},
- {980, 517, 20, 18},
- {1000, 517, 20, 18},
- {0, 536, 20, 29},
- {20, 536, 20, 29},
- {40, 536, 20, 29},
- {60, 536, 20, 29},
- {80, 536, 20, 29},
- {100, 536, 20, 29},
- {120, 536, 20, 29},
- {140, 536, 20, 29},
- {160, 536, 20, 29},
- {180, 536, 20, 29},
- {200, 536, 20, 29},
- {220, 536, 20, 29},
- {240, 536, 20, 29},
- {260, 536, 20, 29},
- {280, 536, 20, 29},
- {300, 536, 20, 29},
- {320, 536, 20, 29},
- {340, 536, 20, 29},
- {360, 536, 20, 29},
- {380, 536, 20, 29},
- {400, 536, 20, 29},
- {420, 536, 20, 29},
- {440, 536, 20, 29},
- {460, 536, 20, 29},
- {480, 536, 20, 29},
- {500, 536, 20, 29},
- {520, 536, 20, 29},
- {540, 536, 20, 29},
- {560, 536, 20, 29},
- {580, 536, 20, 29},
- {600, 536, 20, 29},
- {620, 536, 20, 29},
- {640, 536, 20, 29},
- {660, 536, 20, 29},
- {680, 536, 20, 29},
- {700, 536, 20, 29},
- {720, 536, 20, 29},
- {740, 536, 20, 29},
- {760, 536, 20, 29},
- {780, 536, 20, 29},
- {800, 536, 16, 29},
- {816, 536, 18, 29},
- {834, 536, 20, 29},
- {854, 536, 20, 29},
- {874, 536, 20, 29},
- {894, 536, 20, 29},
- {914, 536, 20, 29},
- {934, 536, 20, 29},
- {954, 536, 20, 29},
- {974, 536, 20, 29},
- {994, 536, 20, 29},
- {0, 565, 20, 18},
- {20, 565, 20, 18},
- {40, 565, 20, 18},
- {60, 565, 20, 18},
- {80, 565, 20, 18},
- {100, 565, 20, 18},
- {120, 565, 20, 18},
- {140, 565, 20, 18},
- {160, 565, 20, 18},
- {180, 565, 20, 18},
- {200, 565, 20, 18},
- {220, 565, 20, 18},
- {240, 565, 20, 18},
- {260, 565, 20, 18},
- {280, 565, 20, 18},
- {300, 565, 20, 18},
- {320, 565, 20, 18},
- {340, 565, 20, 18},
- {360, 565, 20, 18},
- {380, 565, 20, 18},
- {400, 565, 20, 18},
- {420, 565, 20, 18},
- {440, 565, 20, 18},
- {460, 565, 20, 18},
- {480, 565, 20, 18},
- {500, 565, 20, 18},
- {520, 565, 20, 18},
- {540, 565, 20, 18},
- {560, 565, 20, 18},
- {580, 565, 20, 18},
- {600, 565, 20, 18},
- {620, 565, 20, 18},
- {640, 565, 20, 18},
- {660, 565, 20, 18},
- {680, 565, 20, 18},
- {700, 565, 20, 18},
- {720, 565, 20, 18},
- {740, 565, 20, 18},
- {760, 565, 20, 18},
- {780, 565, 20, 18},
- {800, 565, 20, 18},
- {820, 565, 20, 18},
- {840, 565, 20, 18},
- {860, 565, 20, 18},
- {880, 565, 20, 18},
- {900, 565, 20, 18},
- {920, 565, 20, 18},
- {940, 565, 20, 18},
- {960, 565, 20, 18},
- {980, 565, 20, 18},
- {1000, 565, 20, 18},
- {0, 583, 20, 35},
- {20, 583, 20, 35},
- {40, 583, 20, 35},
- {60, 583, 15, 35},
- {75, 583, 15, 35},
- {90, 583, 16, 35},
- {106, 583, 16, 35},
- {122, 583, 14, 35},
- {136, 583, 14, 35},
- {150, 583, 14, 35},
- {164, 583, 13, 35},
- {177, 583, 11, 35},
- {188, 583, 11, 35},
- {199, 583, 11, 35},
- {210, 583, 17, 35},
- {227, 583, 16, 35},
- {243, 583, 20, 35},
- {263, 583, 20, 35},
- {283, 583, 20, 35},
- {303, 583, 20, 35},
- {323, 583, 13, 35},
- {336, 583, 20, 35},
- {356, 583, 20, 35},
- {376, 583, 20, 35},
- {396, 583, 20, 35},
- {416, 583, 20, 35},
- {436, 583, 20, 35},
- {456, 583, 20, 35},
- {476, 583, 20, 35},
- {496, 583, 20, 35},
- {516, 583, 20, 35},
- {536, 583, 20, 35},
- {556, 583, 20, 35},
- {576, 583, 20, 35},
- {596, 583, 20, 35},
- {616, 583, 20, 35},
- {636, 583, 20, 35},
- {656, 583, 20, 35},
- {676, 583, 20, 35},
- {696, 583, 20, 35},
- {716, 583, 20, 35},
- {736, 583, 20, 35},
- {756, 583, 20, 35},
- {776, 583, 20, 35},
- {796, 583, 20, 35},
- {816, 583, 17, 35},
- {833, 583, 17, 35},
- {850, 583, 17, 35},
- {867, 583, 15, 35},
- {882, 583, 20, 35},
- {902, 583, 14, 35},
- {916, 583, 19, 35},
- {935, 583, 8, 35},
- {943, 583, 20, 35},
- {963, 583, 16, 35},
- {979, 583, 17, 35},
- {996, 583, 17, 35},
- {0, 618, 20, 29},
- {20, 618, 20, 29},
- {40, 618, 17, 29},
- {57, 618, 16, 29},
- {73, 618, 16, 29},
- {89, 618, 16, 29},
- {105, 618, 20, 29},
- {125, 618, 7, 29},
- {132, 618, 17, 29},
- {149, 618, 7, 29},
- {156, 618, 16, 29},
- {172, 618, 16, 29},
- {188, 618, 16, 29},
- {204, 618, 8, 29},
- {212, 618, 19, 29},
- {231, 618, 19, 29},
- {250, 618, 19, 29},
- {269, 618, 20, 29},
- {289, 618, 19, 29},
- {308, 618, 16, 29},
- {324, 618, 15, 29},
- {339, 618, 17, 29},
- {356, 618, 15, 29},
- {371, 618, 18, 29},
- {389, 618, 17, 29},
- {406, 618, 17, 29},
- {423, 618, 19, 29},
- {442, 618, 17, 29},
- {459, 618, 20, 29},
- {479, 618, 17, 29},
- {496, 618, 15, 29},
- {511, 618, 15, 29},
- {526, 618, 13, 29},
- {539, 618, 20, 29},
- {559, 618, 20, 29},
- {579, 618, 13, 29},
- {592, 618, 20, 29},
- {612, 618, 20, 29},
- {632, 618, 20, 29},
- {652, 618, 20, 29},
- {672, 618, 20, 29},
- {692, 618, 20, 29},
- {712, 618, 13, 29},
- {725, 618, 13, 29},
- {738, 618, 13, 29},
- {751, 618, 13, 29},
- {764, 618, 13, 29},
- {777, 618, 13, 29},
- {790, 618, 20, 29},
- {810, 618, 10, 29},
- {820, 618, 16, 29},
- {836, 618, 18, 29},
- {854, 618, 16, 29},
- {870, 618, 10, 29},
- {880, 618, 14, 29},
- {894, 618, 14, 29},
- {908, 618, 14, 29},
- {922, 618, 19, 29},
- {941, 618, 16, 29},
- {957, 618, 11, 29},
- {968, 618, 11, 29},
- {979, 618, 11, 29},
- {990, 618, 11, 29},
- {1001, 618, 21, 29},
- {0, 647, 16, 29},
- {16, 647, 17, 29},
- {33, 647, 15, 29},
- {48, 647, 15, 29},
- {63, 647, 15, 29},
- {78, 647, 13, 29},
- {91, 647, 13, 29},
- {104, 647, 13, 29},
- {117, 647, 17, 29},
- {134, 647, 17, 29},
- {151, 647, 17, 29},
- {168, 647, 16, 29},
- {184, 647, 16, 29},
- {200, 647, 20, 29},
- {220, 647, 18, 29},
- {238, 647, 16, 29},
- {254, 647, 11, 29},
- {265, 647, 12, 29},
- {277, 647, 12, 29},
- {289, 647, 15, 29},
- {304, 647, 12, 29},
- {316, 647, 12, 29},
- {328, 647, 15, 29},
- {343, 647, 13, 29},
- {356, 647, 13, 29},
- {369, 647, 16, 29},
- {385, 647, 13, 29},
- {398, 647, 13, 29},
- {411, 647, 16, 29},
- {427, 647, 14, 29},
- {441, 647, 13, 29},
- {454, 647, 13, 29},
- {467, 647, 17, 29},
- {484, 647, 11, 29},
- {495, 647, 15, 29},
- {510, 647, 15, 29},
- {525, 647, 14, 29},
- {539, 647, 12, 29},
- {551, 647, 20, 29},
- {571, 647, 20, 29},
- {591, 647, 16, 29},
- {607, 647, 16, 29},
- {623, 647, 16, 29},
- {639, 647, 13, 29},
- {652, 647, 16, 29},
- {668, 647, 18, 29},
- {686, 647, 16, 29},
- {702, 647, 17, 29},
- {719, 647, 16, 29},
- {735, 647, 16, 29},
- {751, 647, 16, 29},
- {767, 647, 16, 29},
- {783, 647, 18, 29},
- {801, 647, 18, 29},
- {819, 647, 20, 29},
- {839, 647, 21, 29},
- {860, 647, 17, 29},
- {877, 647, 17, 29},
- {894, 647, 20, 29},
- {914, 647, 20, 29},
- {934, 647, 19, 29},
- {953, 647, 19, 29},
- {972, 647, 15, 29},
- {987, 647, 17, 29},
- {1004, 647, 12, 29},
- {0, 676, 13, 29},
- {13, 676, 15, 29},
- {28, 676, 13, 29},
- {41, 676, 12, 29},
- {53, 676, 14, 29},
- {67, 676, 22, 29},
- {89, 676, 20, 29},
- {109, 676, 20, 29},
- {129, 676, 20, 29},
- {149, 676, 20, 29},
- {169, 676, 20, 29},
- {189, 676, 20, 29},
- {209, 676, 20, 29},
- {229, 676, 20, 29},
- {249, 676, 20, 29},
- {269, 676, 20, 29},
- {289, 676, 20, 29},
- {309, 676, 20, 29},
- {329, 676, 20, 29},
- {349, 676, 20, 29},
- {369, 676, 20, 29},
- {389, 676, 20, 29},
- {409, 676, 20, 29},
- {429, 676, 20, 29},
- {449, 676, 20, 29},
- {469, 676, 20, 29},
- {489, 676, 20, 29},
- {509, 676, 20, 29},
- {529, 676, 20, 29},
- {549, 676, 20, 29},
- {569, 676, 20, 29},
- {589, 676, 20, 29},
- {609, 676, 20, 29},
- {629, 676, 20, 29},
- {649, 676, 20, 29},
- {669, 676, 20, 29},
- {689, 676, 20, 29},
- {709, 676, 20, 29},
- {729, 676, 20, 29},
- {749, 676, 20, 29},
- {769, 676, 20, 29},
- {789, 676, 20, 29},
- {809, 676, 20, 29},
- {829, 676, 20, 29},
- {849, 676, 20, 29},
- {869, 676, 20, 29},
- {889, 676, 20, 29},
- {909, 676, 20, 29},
- {929, 676, 20, 29},
- {949, 676, 20, 29},
- {969, 676, 20, 29},
- {989, 676, 20, 29},
- {0, 705, 20, 29},
- {20, 705, 20, 29},
- {40, 705, 20, 29},
- {60, 705, 20, 29},
- {80, 705, 20, 29},
- {100, 705, 20, 29},
- {120, 705, 20, 29},
- {140, 705, 20, 29},
- {160, 705, 20, 29},
- {180, 705, 20, 29},
- {200, 705, 20, 29},
- {220, 705, 20, 29},
- {240, 705, 20, 29},
- {260, 705, 20, 29},
- {280, 705, 20, 29},
- {300, 705, 20, 29},
- {320, 705, 20, 29},
- {340, 705, 20, 29},
- {360, 705, 20, 29},
- {380, 705, 20, 29},
- {400, 705, 20, 29},
- {420, 705, 20, 29},
- {440, 705, 20, 29},
- {460, 705, 20, 29},
- {480, 705, 20, 29},
- {500, 705, 20, 29},
- {520, 705, 20, 29},
- {540, 705, 20, 29},
- {560, 705, 20, 29},
- {580, 705, 20, 29},
- {600, 705, 20, 29},
- {620, 705, 20, 29},
- {640, 705, 20, 29},
- {660, 705, 20, 29},
- {680, 705, 20, 29},
- {700, 705, 20, 29},
- {720, 705, 20, 29},
- {740, 705, 20, 29},
- {760, 705, 20, 29},
- {780, 705, 14, 29},
- {794, 705, 15, 29},
- {809, 705, 15, 29},
- {824, 705, 14, 29},
- {838, 705, 15, 29},
- {853, 705, 14, 29},
- {867, 705, 14, 29},
- {881, 705, 15, 29},
- {896, 705, 16, 29},
- {912, 705, 16, 29},
- {928, 705, 16, 29},
- {944, 705, 16, 29},
- {960, 705, 18, 29},
- {978, 705, 18, 29},
- {996, 705, 18, 29},
- {0, 734, 18, 29},
- {18, 734, 16, 29},
- {34, 734, 16, 29},
- {50, 734, 16, 29},
- {66, 734, 16, 29},
- {82, 734, 17, 29},
- {99, 734, 17, 29},
- {116, 734, 17, 29},
- {133, 734, 17, 29},
- {150, 734, 16, 29},
- {166, 734, 16, 29},
- {182, 734, 16, 29},
- {198, 734, 16, 29},
- {214, 734, 17, 29},
- {231, 734, 12, 29},
- {243, 734, 17, 29},
- {260, 734, 12, 29},
- {272, 734, 20, 29},
- {292, 734, 20, 29},
- {312, 734, 11, 29},
- {323, 734, 12, 29},
- {335, 734, 14, 29},
- {349, 734, 20, 29},
- {369, 734, 11, 29},
- {380, 734, 11, 29},
- {391, 734, 11, 29},
- {402, 734, 11, 29},
- {413, 734, 8, 29},
- {421, 734, 9, 29},
- {430, 734, 19, 29},
- {449, 734, 19, 29},
- {468, 734, 19, 29},
- {487, 734, 19, 29},
- {506, 734, 20, 29},
- {526, 734, 20, 29},
- {546, 734, 20, 29},
- {566, 734, 20, 29},
- {586, 734, 20, 29},
- {606, 734, 20, 29},
- {626, 734, 20, 29},
- {646, 734, 20, 29},
- {666, 734, 20, 29},
- {686, 734, 20, 29},
- {706, 734, 20, 29},
- {726, 734, 20, 29},
- {746, 734, 20, 29},
- {766, 734, 20, 29},
- {786, 734, 20, 29},
- {806, 734, 20, 29},
- {826, 734, 20, 29},
- {846, 734, 20, 29},
- {866, 734, 20, 29},
- {886, 734, 20, 29},
- {906, 734, 20, 29},
- {926, 734, 20, 29},
- {946, 734, 20, 29},
- {966, 734, 20, 29},
- {986, 734, 20, 29},
- {0, 763, 20, 29},
- {20, 763, 20, 29},
- {40, 763, 20, 29},
- {60, 763, 20, 29},
- {80, 763, 20, 29},
- {100, 763, 20, 29},
- {120, 763, 20, 29},
- {140, 763, 20, 29},
- {160, 763, 20, 29},
- {180, 763, 20, 29},
- {200, 763, 20, 29},
- {220, 763, 20, 29},
- {240, 763, 20, 29},
- {260, 763, 20, 29},
- {280, 763, 20, 29},
- {300, 763, 20, 29},
- {320, 763, 20, 29},
- {340, 763, 20, 29},
- {360, 763, 20, 29},
- {380, 763, 20, 29},
- {400, 763, 20, 29},
- {420, 763, 20, 29},
- {440, 763, 20, 29},
- {460, 763, 20, 29},
- {480, 763, 20, 29},
- {500, 763, 20, 29},
- {520, 763, 20, 29},
- {540, 763, 20, 29},
- {560, 763, 20, 29},
- {580, 763, 20, 29},
- {600, 763, 20, 29},
- {620, 763, 20, 29},
- {640, 763, 20, 29},
- {660, 763, 20, 29},
- {680, 763, 20, 29},
- {700, 763, 20, 29},
- {720, 763, 20, 29},
- {740, 763, 20, 29},
- {760, 763, 20, 29},
- {780, 763, 20, 29},
- {800, 763, 20, 29},
- {820, 763, 20, 29},
- {840, 763, 20, 29},
- {860, 763, 20, 29},
- {880, 763, 20, 29},
- {900, 763, 16, 29},
- {916, 763, 16, 29},
- {932, 763, 16, 29},
- {948, 763, 9, 29},
- {957, 763, 9, 29},
- {966, 763, 18, 29},
- {984, 763, 20, 29},
- {1004, 763, 16, 29},
- {0, 792, 13, 35},
- {13, 792, 17, 35},
- {30, 792, 20, 35},
- {50, 792, 20, 35},
- {70, 792, 20, 35},
- {90, 792, 16, 35},
- {106, 792, 16, 35},
- {122, 792, 20, 35},
- {142, 792, 20, 35},
- {162, 792, 20, 35},
- {182, 792, 23, 35},
- {205, 792, 23, 35},
- {228, 792, 23, 35},
- {251, 792, 23, 35},
- {274, 792, 23, 35},
- {297, 792, 23, 35},
- {320, 792, 23, 35},
- {343, 792, 23, 35},
- {366, 792, 16, 35},
- {382, 792, 14, 35},
- {396, 792, 11, 35},
- {407, 792, 18, 35},
- {425, 792, 18, 35},
- {443, 792, 17, 35},
- {460, 792, 11, 35},
- {471, 792, 15, 35},
- {486, 792, 16, 35},
- {502, 792, 18, 35},
- {520, 792, 12, 35},
- {532, 792, 20, 35},
- {552, 792, 20, 35},
- {572, 792, 23, 35},
- {595, 792, 23, 35},
- {618, 792, 23, 35},
- {641, 792, 17, 35},
- {658, 792, 15, 35},
- {673, 792, 18, 35},
- {691, 792, 18, 35},
- {709, 792, 20, 35},
- {729, 792, 20, 35},
- {749, 792, 20, 35},
- {769, 792, 20, 35},
- {789, 792, 20, 35},
- {809, 792, 20, 35},
- {829, 792, 20, 35},
- {849, 792, 20, 35},
- {869, 792, 20, 35},
- {889, 792, 23, 35},
- {912, 792, 23, 35},
- {935, 792, 23, 35},
- {958, 792, 18, 35},
- {976, 792, 14, 35},
- {990, 792, 14, 35},
- {1004, 792, 14, 35},
- {0, 827, 14, 34},
- {14, 827, 18, 34},
- {32, 827, 19, 34},
- {51, 827, 17, 34},
- {68, 827, 11, 34},
- {79, 827, 13, 34},
- {92, 827, 13, 34},
- {105, 827, 13, 34},
- {118, 827, 8, 34},
- {126, 827, 11, 34},
- {137, 827, 11, 34},
- {148, 827, 14, 34},
- {162, 827, 14, 34},
- {176, 827, 11, 34},
- {187, 827, 15, 34},
- {202, 827, 18, 34},
- {220, 827, 13, 34},
- {233, 827, 13, 34},
- {246, 827, 13, 34},
- {259, 827, 13, 34},
- {272, 827, 9, 34},
- {281, 827, 19, 34},
- {300, 827, 16, 34},
- {316, 827, 15, 34},
- {331, 827, 18, 34},
- {349, 827, 16, 34},
- {365, 827, 10, 34},
- {375, 827, 10, 34},
- {385, 827, 10, 34},
- {395, 827, 15, 34},
- {410, 827, 10, 34},
- {420, 827, 6, 34},
- {426, 827, 22, 34},
- {448, 827, 8, 34},
- {456, 827, 8, 34},
- {464, 827, 8, 34},
- {472, 827, 13, 34},
- {485, 827, 12, 34},
- {497, 827, 12, 34},
- {509, 827, 10, 34},
- {519, 827, 10, 34},
- {529, 827, 8, 34},
- {537, 827, 7, 34},
- {544, 827, 8, 34},
- {552, 827, 10, 34},
- {562, 827, 8, 34},
- {570, 827, 15, 34},
- {585, 827, 17, 34},
- {602, 827, 10, 34},
- {612, 827, 10, 34},
- {622, 827, 13, 34},
- {635, 827, 11, 34},
- {646, 827, 15, 34},
- {661, 827, 12, 34},
- {673, 827, 15, 34},
- {688, 827, 10, 34},
- {698, 827, 15, 34},
- {713, 827, 15, 34},
- {728, 827, 14, 34},
- {742, 827, 8, 34},
- {750, 827, 15, 34},
- {765, 827, 11, 34},
- {776, 827, 11, 34},
- {787, 827, 14, 34},
- {801, 827, 16, 34},
- {817, 827, 8, 34},
- {825, 827, 13, 34},
- {838, 827, 23, 34},
- {861, 827, 16, 34},
- {877, 827, 15, 34},
- {892, 827, 13, 34},
- {905, 827, 7, 34},
- {912, 827, 9, 34},
- {921, 827, 9, 34},
- {930, 827, 12, 34},
- {942, 827, 9, 34},
- {951, 827, 20, 34},
- {971, 827, 15, 34},
- {986, 827, 15, 34},
- {1001, 827, 14, 34},
- {0, 861, 11, 35},
- {11, 861, 13, 35},
- {24, 861, 15, 35},
- {39, 861, 13, 35},
- {52, 861, 9, 35},
- {61, 861, 17, 35},
- {78, 861, 17, 35},
- {95, 861, 16, 35},
- {111, 861, 19, 35},
- {130, 861, 15, 35},
- {145, 861, 16, 35},
- {161, 861, 16, 35},
- {177, 861, 22, 35},
- {199, 861, 12, 35},
- {211, 861, 14, 35},
- {225, 861, 13, 35},
- {238, 861, 15, 35},
- {253, 861, 10, 35},
- {263, 861, 11, 35},
- {274, 861, 12, 35},
- {286, 861, 11, 35},
- {297, 861, 13, 35},
- {310, 861, 18, 35},
- {328, 861, 17, 35},
- {345, 861, 15, 35},
- {360, 861, 9, 35},
- {369, 861, 15, 35},
- {384, 861, 13, 35},
- {397, 861, 15, 35},
- {412, 861, 13, 35},
- {425, 861, 16, 35},
- {441, 861, 17, 35},
- {458, 861, 23, 35},
- {481, 861, 23, 35},
- {504, 861, 23, 35},
- {527, 861, 23, 35},
- {550, 861, 23, 35},
- {573, 861, 23, 35},
- {596, 861, 23, 35},
- {619, 861, 23, 35},
- {642, 861, 23, 35},
- {665, 861, 23, 35},
- {688, 861, 23, 35},
- {711, 861, 23, 35},
- {734, 861, 8, 35},
- {742, 861, 14, 35},
- {756, 861, 8, 35},
- {764, 861, 14, 35},
- {778, 861, 6, 35},
- {784, 861, 14, 35},
- {798, 861, 14, 35},
- {812, 861, 14, 35},
- {826, 861, 14, 35},
- {840, 861, 14, 35},
- {854, 861, 14, 35},
- {868, 861, 14, 35},
- {882, 861, 4, 35},
- {886, 861, 5, 35},
- {891, 861, 13, 35},
- {904, 861, 13, 35},
- {917, 861, 13, 35},
- {930, 861, 13, 35},
- {943, 861, 13, 35},
- {956, 861, 13, 35},
- {969, 861, 13, 35},
- {982, 861, 13, 35},
- {995, 861, 13, 35},
- {1008, 861, 4, 35},
- {1012, 861, 5, 35},
- {0, 896, 10, 29},
- {10, 896, 18, 29},
- {28, 896, 18, 29},
- {46, 896, 18, 29},
- {64, 896, 3, 29},
- {67, 896, 4, 29},
- {71, 896, 7, 29},
- {78, 896, 12, 29},
- {90, 896, 14, 29},
- {104, 896, 14, 29},
- {118, 896, 14, 29},
- {132, 896, 14, 29},
- {146, 896, 14, 29},
- {160, 896, 14, 29},
- {174, 896, 14, 29},
- {188, 896, 11, 29},
- {199, 896, 11, 29},
- {210, 896, 11, 29},
- {221, 896, 11, 29},
- {232, 896, 12, 29},
- {244, 896, 12, 29},
- {256, 896, 12, 29},
- {268, 896, 13, 29},
- {281, 896, 13, 29},
- {294, 896, 14, 29},
- {308, 896, 14, 29},
- {322, 896, 14, 29},
- {336, 896, 14, 29},
- {350, 896, 13, 29},
- {363, 896, 13, 29},
- {376, 896, 13, 29},
- {389, 896, 13, 29},
- {402, 896, 13, 29},
- {415, 896, 13, 29},
- {428, 896, 14, 29},
- {442, 896, 14, 29},
- {456, 896, 14, 29},
- {470, 896, 14, 29},
- {484, 896, 14, 29},
- {498, 896, 12, 29},
- {510, 896, 12, 29},
- {522, 896, 12, 29},
- {534, 896, 12, 29},
- {546, 896, 14, 29},
- {560, 896, 14, 29},
- {574, 896, 14, 29},
- {588, 896, 14, 29},
- {602, 896, 14, 29},
- {616, 896, 13, 29},
- {629, 896, 13, 29},
- {642, 896, 12, 29},
- {654, 896, 12, 29},
- {666, 896, 12, 29},
- {678, 896, 14, 29},
- {692, 896, 13, 29},
- {705, 896, 14, 29},
- {719, 896, 14, 29},
- {733, 896, 15, 29},
- {748, 896, 15, 29},
- {763, 896, 15, 29},
- {778, 896, 14, 29},
- {792, 896, 14, 29},
- {806, 896, 14, 29},
- {820, 896, 14, 29},
- {834, 896, 23, 29},
- {857, 896, 23, 29},
- {880, 896, 23, 29},
- {903, 896, 23, 29},
- {926, 896, 23, 29},
- {949, 896, 23, 29},
- {972, 896, 23, 29},
- {995, 896, 20, 29},
- {0, 925, 20, 29},
- {20, 925, 20, 29},
- {40, 925, 20, 29},
- {60, 925, 20, 29},
- {80, 925, 20, 29},
- {100, 925, 20, 29},
- {120, 925, 20, 29},
- {140, 925, 20, 29},
- {160, 925, 20, 29},
- {180, 925, 20, 29},
- {200, 925, 20, 29},
- {220, 925, 23, 29},
- {243, 925, 23, 29},
- {266, 925, 23, 29},
- {289, 925, 23, 29},
- {312, 925, 23, 29},
- {335, 925, 23, 29},
- {358, 925, 23, 29},
- {381, 925, 23, 29},
- {404, 925, 23, 29},
- {427, 925, 23, 29},
- {450, 925, 23, 29},
- {473, 925, 23, 29},
- {496, 925, 23, 29},
- {519, 925, 23, 29},
- {542, 925, 23, 29},
- {565, 925, 23, 29},
- {588, 925, 23, 29},
- {611, 925, 23, 29},
- {634, 925, 23, 29},
- {657, 925, 23, 29},
- {680, 925, 13, 29},
- {693, 925, 6, 29},
- {699, 925, 13, 29},
- {712, 925, 6, 29},
- {718, 925, 13, 29},
- {731, 925, 9, 29},
- {740, 925, 13, 29},
- {753, 925, 9, 29},
- {762, 925, 15, 29},
- {777, 925, 13, 29},
- {790, 925, 15, 29},
- {805, 925, 13, 29},
- {818, 925, 23, 29},
- {841, 925, 23, 29},
- {864, 925, 23, 29},
- {887, 925, 23, 29},
- {910, 925, 14, 29},
- {924, 925, 6, 29},
- {930, 925, 14, 29},
- {944, 925, 6, 29},
- {950, 925, 14, 29},
- {964, 925, 7, 29},
- {971, 925, 14, 29},
- {985, 925, 7, 29},
- {992, 925, 14, 29},
- {1006, 925, 8, 29},
- {0, 954, 14, 29},
- {14, 954, 8, 29},
- {22, 954, 14, 29},
- {36, 954, 10, 29},
- {46, 954, 14, 29},
- {60, 954, 10, 29},
- {70, 954, 14, 29},
- {84, 954, 9, 29},
- {93, 954, 14, 29},
- {107, 954, 9, 29},
- {116, 954, 13, 29},
- {129, 954, 9, 29},
- {138, 954, 13, 29},
- {151, 954, 9, 29},
- {160, 954, 13, 29},
- {173, 954, 9, 29},
- {182, 954, 13, 29},
- {195, 954, 9, 29},
- {204, 954, 13, 29},
- {217, 954, 11, 29},
- {228, 954, 13, 29},
- {241, 954, 11, 29},
- {252, 954, 16, 29},
- {268, 954, 11, 29},
- {279, 954, 16, 29},
- {295, 954, 11, 29},
- {306, 954, 13, 29},
- {319, 954, 9, 29},
- {328, 954, 13, 29},
- {341, 954, 9, 29},
- {350, 954, 8, 29},
- {358, 954, 10, 29},
- {368, 954, 8, 29},
- {376, 954, 10, 29},
- {386, 954, 6, 29},
- {392, 954, 13, 29},
- {405, 954, 6, 29},
- {411, 954, 13, 29},
- {424, 954, 9, 29},
- {433, 954, 16, 29},
- {449, 954, 9, 29},
- {458, 954, 16, 29},
- {474, 954, 17, 29},
- {491, 954, 16, 29},
- {507, 954, 17, 29},
- {524, 954, 16, 29},
- {540, 954, 23, 29},
- {563, 954, 23, 29},
- {586, 954, 23, 29},
- {609, 954, 23, 29},
- {632, 954, 23, 29},
- {655, 954, 23, 29},
- {678, 954, 23, 29},
- {701, 954, 23, 29},
- {724, 954, 13, 29},
- {737, 954, 8, 29},
- {745, 954, 13, 29},
- {758, 954, 8, 29},
- {766, 954, 11, 29},
- {777, 954, 11, 29},
- {788, 954, 11, 29},
- {799, 954, 11, 29},
- {810, 954, 17, 29},
- {827, 954, 8, 29},
- {835, 954, 23, 29},
- {858, 954, 23, 29},
- {881, 954, 23, 29},
- {904, 954, 23, 29},
- {927, 954, 23, 29},
- {950, 954, 23, 29},
- {973, 954, 13, 29},
- {986, 954, 11, 29},
- {997, 954, 13, 29},
- {1010, 954, 11, 29},
- {0, 983, 10, 29},
- {10, 983, 10, 29},
- {20, 983, 10, 29},
- {30, 983, 10, 29},
- {40, 983, 13, 29},
- {53, 983, 11, 29},
- {64, 983, 13, 29},
- {77, 983, 11, 29},
- {88, 983, 10, 29},
- {98, 983, 10, 29},
- {108, 983, 10, 29},
- {118, 983, 10, 29},
- {128, 983, 13, 29},
- {141, 983, 11, 29},
- {152, 983, 13, 29},
- {165, 983, 11, 29},
- {176, 983, 11, 29},
- {187, 983, 11, 29},
- {198, 983, 11, 29},
- {209, 983, 11, 29},
- {220, 983, 13, 29},
- {233, 983, 11, 29},
- {244, 983, 13, 29},
- {257, 983, 11, 29},
- {268, 983, 11, 29},
- {279, 983, 11, 29},
- {290, 983, 11, 29},
- {301, 983, 11, 29},
- {312, 983, 13, 29},
- {325, 983, 11, 29},
- {336, 983, 13, 29},
- {349, 983, 11, 29},
- {360, 983, 12, 29},
- {372, 983, 12, 29},
- {384, 983, 12, 29},
- {396, 983, 12, 29},
- {408, 983, 23, 29},
- {431, 983, 23, 29},
- {454, 983, 23, 29},
- {477, 983, 23, 29},
- {500, 983, 23, 29},
- {523, 983, 23, 29},
- {546, 983, 23, 29},
- {569, 983, 23, 29},
- {592, 983, 6, 29},
- {598, 983, 9, 29},
- {607, 983, 6, 29},
- {613, 983, 9, 29},
- {622, 983, 9, 29},
- {631, 983, 13, 29},
- {644, 983, 9, 29},
- {653, 983, 13, 29},
- {666, 983, 13, 29},
- {679, 983, 8, 29},
- {687, 983, 13, 29},
- {700, 983, 8, 29},
- {708, 983, 7, 29},
- {715, 983, 5, 29},
- {720, 983, 4, 29},
- {724, 983, 4, 29},
- {728, 983, 16, 29},
- {744, 983, 16, 29},
- {760, 983, 16, 29},
- {776, 983, 16, 29},
- {792, 983, 16, 29},
- {808, 983, 16, 29},
- {824, 983, 16, 29},
- {840, 983, 16, 29},
- {856, 983, 16, 29},
- {872, 983, 16, 29},
- {888, 983, 16, 29},
- {904, 983, 16, 29},
- {920, 983, 7, 29},
- {927, 983, 6, 29},
- {933, 983, 23, 29},
- {956, 983, 23, 29},
- {979, 983, 16, 29},
- {995, 983, 16, 29},
- {0, 1012, 23, 21},
- {23, 1012, 23, 21},
- {46, 1012, 23, 21},
- {69, 1012, 23, 21},
- {92, 1012, 23, 21},
- {115, 1012, 23, 21},
- {138, 1012, 23, 21},
- {161, 1012, 23, 21},
- {184, 1012, 23, 21},
- {207, 1012, 23, 21},
- {230, 1012, 23, 21},
- {253, 1012, 23, 21},
- {276, 1012, 23, 21},
- {299, 1012, 23, 21},
- {322, 1012, 23, 21},
- {345, 1012, 23, 21},
- {368, 1012, 23, 21},
- {391, 1012, 23, 21},
- {414, 1012, 23, 21},
- {437, 1012, 23, 21},
- {460, 1012, 23, 21},
- {483, 1012, 23, 21},
- {506, 1012, 23, 21},
- {529, 1012, 23, 21},
- {552, 1012, 23, 21},
- {575, 1012, 23, 21},
- {598, 1012, 23, 21},
- {621, 1012, 23, 21},
- {644, 1012, 23, 21},
- {667, 1012, 23, 21},
- {690, 1012, 23, 21},
- {713, 1012, 23, 21},
- {736, 1012, 23, 21},
- {759, 1012, 23, 21},
- {782, 1012, 23, 21},
- {805, 1012, 23, 21},
- {828, 1012, 23, 21},
- {851, 1012, 23, 21},
- {874, 1012, 23, 21},
- {897, 1012, 23, 21},
- {920, 1012, 23, 21},
- {943, 1012, 23, 21},
- {966, 1012, 23, 21},
- {989, 1012, 23, 21},
- {0, 1033, 23, 22},
- {23, 1033, 23, 22},
- {46, 1033, 23, 22},
- {69, 1033, 23, 22},
- {92, 1033, 23, 22},
- {115, 1033, 23, 22},
- {138, 1033, 23, 22},
- {161, 1033, 23, 22},
- {184, 1033, 23, 22},
- {207, 1033, 23, 22},
- {230, 1033, 23, 22},
- {253, 1033, 23, 22},
- {276, 1033, 23, 22},
- {299, 1033, 23, 22},
- {322, 1033, 23, 22},
- {345, 1033, 23, 22},
- {368, 1033, 23, 22},
- {391, 1033, 23, 22},
- {414, 1033, 23, 22},
- {437, 1033, 23, 22},
- {460, 1033, 23, 22},
- {483, 1033, 23, 22},
- {506, 1033, 23, 22},
- {529, 1033, 23, 22},
- {552, 1033, 23, 22},
- {575, 1033, 23, 22},
- {598, 1033, 23, 22},
- {621, 1033, 23, 22},
- {644, 1033, 23, 22},
- {667, 1033, 23, 22},
- {690, 1033, 23, 22},
- {713, 1033, 23, 22},
- {736, 1033, 23, 22},
- {759, 1033, 23, 22},
- {782, 1033, 23, 22},
- {805, 1033, 23, 22},
- {828, 1033, 23, 22},
- {851, 1033, 23, 22},
- {874, 1033, 23, 22},
- {897, 1033, 23, 22},
- {920, 1033, 23, 22},
- {943, 1033, 23, 22},
- {966, 1033, 23, 22},
- {989, 1033, 23, 22},
- {0, 1055, 23, 29},
- {23, 1055, 23, 29},
- {46, 1055, 20, 29},
- {66, 1055, 20, 29},
- {86, 1055, 20, 29},
- {106, 1055, 20, 29},
- {126, 1055, 20, 29},
- {146, 1055, 20, 29},
- {166, 1055, 20, 29},
- {186, 1055, 20, 29},
- {206, 1055, 20, 29},
- {226, 1055, 20, 29},
- {246, 1055, 20, 29},
- {266, 1055, 20, 29},
- {286, 1055, 20, 29},
- {306, 1055, 20, 29},
- {326, 1055, 20, 29},
- {346, 1055, 20, 29},
- {366, 1055, 20, 29},
- {386, 1055, 20, 29},
- {406, 1055, 20, 29},
- {426, 1055, 20, 29},
- {446, 1055, 20, 29},
- {466, 1055, 20, 29},
- {486, 1055, 20, 29},
- {506, 1055, 20, 29},
- {526, 1055, 20, 29},
- {546, 1055, 20, 29},
- {566, 1055, 20, 29},
- {586, 1055, 20, 29},
- {606, 1055, 20, 29},
- {626, 1055, 20, 29},
- {646, 1055, 20, 29},
- {666, 1055, 20, 29},
- {686, 1055, 20, 29},
- {706, 1055, 20, 29},
- {726, 1055, 20, 29},
- {746, 1055, 20, 29},
- {766, 1055, 20, 29},
- {786, 1055, 20, 29},
- {806, 1055, 20, 29},
- {826, 1055, 20, 29},
- {846, 1055, 20, 29},
- {866, 1055, 20, 29},
- {886, 1055, 20, 29},
- {906, 1055, 20, 29},
- {926, 1055, 20, 29},
- {946, 1055, 20, 29},
- {966, 1055, 20, 29},
- {986, 1055, 14, 29},
- {1000, 1055, 20, 29},
- {0, 1084, 20, 29},
- {20, 1084, 20, 29},
- {40, 1084, 20, 29},
- {60, 1084, 20, 29},
- {80, 1084, 20, 29},
- {100, 1084, 20, 29},
- {120, 1084, 20, 29},
- {140, 1084, 20, 29},
- {160, 1084, 20, 29},
- {180, 1084, 17, 29},
- {197, 1084, 20, 29},
- {217, 1084, 20, 29},
- {237, 1084, 20, 29},
- {257, 1084, 20, 29},
- {277, 1084, 20, 29},
- {297, 1084, 20, 29},
- {317, 1084, 20, 29},
- {337, 1084, 20, 29},
- {357, 1084, 20, 29},
- {377, 1084, 20, 29},
- {397, 1084, 20, 29},
- {417, 1084, 20, 29},
- {437, 1084, 20, 29},
- {457, 1084, 20, 29},
- {477, 1084, 20, 29},
- {497, 1084, 20, 29},
- {517, 1084, 20, 29},
- {537, 1084, 20, 29},
- {557, 1084, 20, 29},
- {577, 1084, 20, 29},
- {597, 1084, 20, 29},
- {617, 1084, 20, 29},
- {637, 1084, 20, 29},
- {657, 1084, 20, 29},
- {677, 1084, 20, 29},
- {697, 1084, 20, 29},
- {717, 1084, 20, 29},
- {737, 1084, 20, 29},
- {757, 1084, 20, 29},
- {777, 1084, 20, 29},
- {797, 1084, 20, 29},
- {817, 1084, 20, 29},
- {837, 1084, 20, 29},
- {857, 1084, 20, 29},
- {877, 1084, 20, 29},
- {897, 1084, 20, 29},
- {917, 1084, 20, 29},
- {937, 1084, 20, 29},
- {957, 1084, 20, 29},
- {977, 1084, 20, 29},
- {997, 1084, 20, 29},
- {0, 1113, 20, 21},
- {20, 1113, 20, 21},
- {40, 1113, 20, 21},
- {60, 1113, 20, 21},
- {80, 1113, 20, 21},
- {100, 1113, 20, 21},
- {120, 1113, 20, 21},
- {140, 1113, 20, 21},
- {160, 1113, 20, 21},
- {180, 1113, 23, 21},
- {203, 1113, 20, 21},
- {223, 1113, 20, 21},
- {243, 1113, 20, 21},
- {263, 1113, 20, 21},
- {283, 1113, 20, 21},
- {303, 1113, 20, 21},
- {323, 1113, 20, 21},
- {343, 1113, 20, 21},
- {363, 1113, 20, 21},
- {383, 1113, 20, 21},
- {403, 1113, 20, 21},
- {423, 1113, 20, 21},
- {443, 1113, 20, 21},
- {463, 1113, 20, 21},
- {483, 1113, 20, 21},
- {503, 1113, 20, 21},
- {523, 1113, 20, 21},
- {543, 1113, 20, 21},
- {563, 1113, 20, 21},
- {583, 1113, 20, 21},
- {603, 1113, 20, 21},
- {623, 1113, 20, 21},
- {643, 1113, 20, 21},
- {663, 1113, 20, 21},
- {683, 1113, 20, 21},
- {703, 1113, 20, 21},
- {723, 1113, 20, 21},
- {743, 1113, 20, 21},
- {763, 1113, 20, 21},
- {783, 1113, 20, 21},
- {803, 1113, 20, 21},
- {823, 1113, 20, 21},
- {843, 1113, 20, 21},
- {863, 1113, 20, 21},
- {883, 1113, 20, 21},
- {903, 1113, 20, 21},
- {923, 1113, 20, 21},
- {943, 1113, 20, 21},
- {963, 1113, 20, 21},
- {983, 1113, 20, 21},
- {1003, 1113, 20, 21},
- {0, 1135, 20, 21},
- {20, 1135, 20, 21},
- {40, 1135, 20, 21},
- {60, 1135, 20, 21},
- {80, 1135, 20, 21},
- {100, 1135, 20, 21},
- {120, 1135, 20, 21},
- {140, 1135, 20, 21},
- {160, 1135, 20, 21},
- {180, 1135, 20, 21},
- {200, 1135, 20, 21},
- {220, 1135, 20, 21},
- {240, 1135, 20, 21},
- {260, 1135, 20, 21},
- {280, 1135, 20, 21},
- {300, 1135, 20, 21},
- {320, 1135, 20, 21},
- {340, 1135, 20, 21},
- {360, 1135, 20, 21},
- {380, 1135, 20, 21},
- {400, 1135, 20, 21},
- {420, 1135, 20, 21},
- {440, 1135, 20, 21},
- {460, 1135, 20, 21},
- {480, 1135, 20, 21},
- {500, 1135, 20, 21},
- {520, 1135, 20, 21},
- {540, 1135, 20, 21},
- {560, 1135, 20, 21},
- {580, 1135, 20, 21},
- {600, 1135, 20, 21},
- {620, 1135, 20, 21},
- {640, 1135, 20, 21},
- {660, 1135, 20, 21},
- {680, 1135, 20, 21},
- {700, 1135, 20, 21},
- {720, 1135, 20, 21},
- {740, 1135, 20, 21},
- {760, 1135, 20, 21},
- {780, 1135, 20, 21},
- {800, 1135, 20, 21},
- {820, 1135, 23, 21},
- {843, 1135, 20, 21},
- {863, 1135, 20, 21},
- {883, 1135, 20, 21},
- {903, 1135, 20, 21},
- {923, 1135, 20, 21},
- {943, 1135, 20, 21},
- {963, 1135, 20, 21},
- {983, 1135, 20, 21},
- {1003, 1135, 20, 21},
- {0, 1157, 20, 29},
- {20, 1157, 20, 29},
- {40, 1157, 20, 29},
- {60, 1157, 20, 29},
- {80, 1157, 20, 29},
- {100, 1157, 20, 29},
- {120, 1157, 20, 29},
- {140, 1157, 20, 29},
- {160, 1157, 20, 29},
- {180, 1157, 20, 29},
- {200, 1157, 20, 29},
- {220, 1157, 20, 29},
- {240, 1157, 20, 29},
- {260, 1157, 20, 29},
- {280, 1157, 20, 29},
- {300, 1157, 20, 29},
- {320, 1157, 20, 29},
- {340, 1157, 20, 29},
- {360, 1157, 20, 29},
- {380, 1157, 20, 29},
- {400, 1157, 20, 29},
- {420, 1157, 20, 29},
- {440, 1157, 20, 29},
- {460, 1157, 20, 29},
- {480, 1157, 20, 29},
- {500, 1157, 20, 29},
- {520, 1157, 20, 29},
- {540, 1157, 20, 29},
- {560, 1157, 20, 29},
- {580, 1157, 20, 29},
- {600, 1157, 20, 29},
- {620, 1157, 20, 29},
- {640, 1157, 20, 29},
- {660, 1157, 20, 29},
- {680, 1157, 20, 29},
- {700, 1157, 20, 29},
- {720, 1157, 20, 29},
- {740, 1157, 20, 29},
- {760, 1157, 20, 29},
- {780, 1157, 20, 29},
- {800, 1157, 20, 29},
- {820, 1157, 20, 29},
- {840, 1157, 16, 29},
- {856, 1157, 16, 29},
- {872, 1157, 16, 29},
- {888, 1157, 16, 29},
- {904, 1157, 16, 29},
- {920, 1157, 16, 29},
- {936, 1157, 16, 29},
- {952, 1157, 16, 29},
- {968, 1157, 16, 29},
- {984, 1157, 16, 29},
- {1000, 1157, 16, 29},
- {0, 1186, 16, 29},
- {16, 1186, 16, 29},
- {32, 1186, 16, 29},
- {48, 1186, 16, 29},
- {64, 1186, 16, 29},
- {80, 1186, 16, 29},
- {96, 1186, 16, 29},
- {112, 1186, 16, 29},
- {128, 1186, 16, 29},
- {144, 1186, 16, 29},
- {160, 1186, 16, 29},
- {176, 1186, 16, 29},
- {192, 1186, 16, 29},
- {208, 1186, 16, 29},
- {224, 1186, 16, 29},
- {240, 1186, 16, 29},
- {256, 1186, 16, 29},
- {272, 1186, 16, 29},
- {288, 1186, 16, 29},
- {304, 1186, 16, 29},
- {320, 1186, 16, 29},
- {336, 1186, 16, 29},
- {352, 1186, 16, 29},
- {368, 1186, 16, 29},
- {384, 1186, 16, 29},
- {400, 1186, 16, 29},
- {416, 1186, 16, 29},
- {432, 1186, 16, 29},
- {448, 1186, 16, 29},
- {464, 1186, 16, 29},
- {480, 1186, 16, 29},
- {496, 1186, 16, 29},
- {512, 1186, 16, 29},
- {528, 1186, 16, 29},
- {544, 1186, 16, 29},
- {560, 1186, 16, 29},
- {576, 1186, 16, 29},
- {592, 1186, 16, 29},
- {608, 1186, 16, 29},
- {624, 1186, 16, 29},
- {640, 1186, 16, 29},
- {656, 1186, 16, 29},
- {672, 1186, 16, 29},
- {688, 1186, 16, 29},
- {704, 1186, 16, 29},
- {720, 1186, 16, 29},
- {736, 1186, 16, 29},
- {752, 1186, 16, 29},
- {768, 1186, 16, 29},
- {784, 1186, 16, 29},
- {800, 1186, 16, 29},
- {816, 1186, 16, 29},
- {832, 1186, 16, 29},
- {848, 1186, 16, 29},
- {864, 1186, 16, 29},
- {880, 1186, 16, 29},
- {896, 1186, 16, 29},
- {912, 1186, 16, 29},
- {928, 1186, 16, 29},
- {944, 1186, 16, 29},
- {960, 1186, 16, 29},
- {976, 1186, 16, 29},
- {992, 1186, 16, 29},
- {1008, 1186, 16, 29},
- {0, 1215, 16, 29},
- {16, 1215, 16, 29},
- {32, 1215, 16, 29},
- {48, 1215, 16, 29},
- {64, 1215, 16, 29},
- {80, 1215, 16, 29},
- {96, 1215, 16, 29},
- {112, 1215, 16, 29},
- {128, 1215, 16, 29},
- {144, 1215, 23, 29},
- {167, 1215, 23, 29},
- {190, 1215, 23, 29},
- {213, 1215, 23, 29},
- {236, 1215, 23, 29},
- {259, 1215, 23, 29},
- {282, 1215, 23, 29},
- {305, 1215, 23, 29},
- {328, 1215, 23, 29},
- {351, 1215, 23, 29},
- {374, 1215, 23, 29},
- {397, 1215, 23, 29},
- {420, 1215, 16, 29},
- {436, 1215, 16, 29},
- {452, 1215, 16, 29},
- {468, 1215, 16, 29},
- {484, 1215, 16, 29},
- {500, 1215, 16, 29},
- {516, 1215, 16, 29},
- {532, 1215, 16, 29},
- {548, 1215, 16, 29},
- {564, 1215, 16, 29},
- {580, 1215, 16, 29},
- {596, 1215, 16, 29},
- {612, 1215, 16, 29},
- {628, 1215, 16, 29},
- {644, 1215, 23, 29},
- {667, 1215, 23, 29},
- {690, 1215, 20, 29},
- {710, 1215, 20, 29},
- {730, 1215, 20, 29},
- {750, 1215, 20, 29},
- {770, 1215, 20, 29},
- {790, 1215, 23, 29},
- {813, 1215, 23, 29},
- {836, 1215, 23, 29},
- {859, 1215, 20, 29},
- {879, 1215, 20, 29},
- {899, 1215, 20, 29},
- {919, 1215, 23, 29},
- {942, 1215, 23, 29},
- {965, 1215, 23, 29},
- {988, 1215, 23, 29},
- {0, 1244, 23, 21},
- {23, 1244, 20, 21},
- {43, 1244, 20, 21},
- {63, 1244, 20, 21},
- {83, 1244, 20, 21},
- {103, 1244, 20, 21},
- {123, 1244, 20, 21},
- {143, 1244, 20, 21},
- {163, 1244, 23, 21},
- {186, 1244, 23, 21},
- {209, 1244, 23, 21},
- {232, 1244, 23, 21},
- {255, 1244, 23, 21},
- {278, 1244, 23, 21},
- {301, 1244, 23, 21},
- {324, 1244, 23, 21},
- {347, 1244, 23, 21},
- {370, 1244, 20, 21},
- {390, 1244, 20, 21},
- {410, 1244, 20, 21},
- {430, 1244, 20, 21},
- {450, 1244, 20, 21},
- {470, 1244, 20, 21},
- {490, 1244, 20, 21},
- {510, 1244, 20, 21},
- {530, 1244, 20, 21},
- {550, 1244, 20, 21},
- {570, 1244, 20, 21},
- {590, 1244, 20, 21},
- {610, 1244, 20, 21},
- {630, 1244, 20, 21},
- {650, 1244, 20, 21},
- {670, 1244, 20, 21},
- {690, 1244, 20, 21},
- {710, 1244, 20, 21},
- {730, 1244, 20, 21},
- {750, 1244, 20, 21},
- {770, 1244, 20, 21},
- {790, 1244, 20, 21},
- {810, 1244, 20, 21},
- {830, 1244, 20, 21},
- {850, 1244, 20, 21},
- {870, 1244, 23, 21},
- {893, 1244, 23, 21},
- {916, 1244, 23, 21},
- {939, 1244, 23, 21},
- {962, 1244, 23, 21},
- {985, 1244, 23, 21},
- {0, 1266, 23, 22},
- {23, 1266, 20, 22},
- {43, 1266, 20, 22},
- {63, 1266, 20, 22},
- {83, 1266, 20, 22},
- {103, 1266, 20, 22},
- {123, 1266, 20, 22},
- {143, 1266, 20, 22},
- {163, 1266, 23, 22},
- {186, 1266, 23, 22},
- {209, 1266, 23, 22},
- {232, 1266, 23, 22},
- {255, 1266, 23, 22},
- {278, 1266, 23, 22},
- {301, 1266, 23, 22},
- {324, 1266, 23, 22},
- {347, 1266, 23, 22},
- {370, 1266, 20, 22},
- {390, 1266, 20, 22},
- {410, 1266, 20, 22},
- {430, 1266, 23, 22},
- {453, 1266, 23, 22},
- {476, 1266, 23, 22},
- {499, 1266, 23, 22},
- {522, 1266, 23, 22},
- {545, 1266, 23, 22},
- {568, 1266, 23, 22},
- {591, 1266, 23, 22},
- {614, 1266, 23, 22},
- {637, 1266, 23, 22},
- {660, 1266, 23, 22},
- {683, 1266, 23, 22},
- {706, 1266, 23, 22},
- {729, 1266, 20, 22},
- {749, 1266, 20, 22},
- {769, 1266, 20, 22},
- {789, 1266, 20, 22},
- {809, 1266, 20, 22},
- {829, 1266, 20, 22},
- {849, 1266, 20, 22},
- {869, 1266, 23, 22},
- {892, 1266, 23, 22},
- {915, 1266, 23, 22},
- {938, 1266, 23, 22},
- {961, 1266, 23, 22},
- {984, 1266, 23, 22},
- {0, 1288, 23, 29},
- {23, 1288, 23, 29},
- {46, 1288, 23, 29},
- {69, 1288, 23, 29},
- {92, 1288, 23, 29},
- {115, 1288, 23, 29},
- {138, 1288, 23, 29},
- {161, 1288, 23, 29},
- {184, 1288, 23, 29},
- {207, 1288, 23, 29},
- {230, 1288, 23, 29},
- {253, 1288, 23, 29},
- {276, 1288, 23, 29},
- {299, 1288, 23, 29},
- {322, 1288, 23, 29},
- {345, 1288, 23, 29},
- {368, 1288, 23, 29},
- {391, 1288, 23, 29},
- {414, 1288, 23, 29},
- {437, 1288, 23, 29},
- {460, 1288, 23, 29},
- {483, 1288, 23, 29},
- {506, 1288, 23, 29},
- {529, 1288, 23, 29},
- {552, 1288, 23, 29},
- {575, 1288, 23, 29},
- {598, 1288, 23, 29},
- {621, 1288, 23, 29},
- {644, 1288, 23, 29},
- {667, 1288, 23, 29},
- {690, 1288, 23, 29},
- {713, 1288, 23, 29},
- {736, 1288, 23, 29},
- {759, 1288, 23, 29},
- {782, 1288, 23, 29},
- {805, 1288, 16, 29},
- {821, 1288, 16, 29},
- {837, 1288, 16, 29},
- {853, 1288, 16, 29},
- {869, 1288, 16, 29},
- {885, 1288, 16, 29},
- {901, 1288, 16, 29},
- {917, 1288, 16, 29},
- {933, 1288, 16, 29},
- {949, 1288, 16, 29},
- {965, 1288, 16, 29},
- {981, 1288, 16, 29},
- {997, 1288, 16, 29},
- {0, 1317, 16, 29},
- {16, 1317, 16, 29},
- {32, 1317, 16, 29},
- {48, 1317, 16, 29},
- {64, 1317, 16, 29},
- {80, 1317, 16, 29},
- {96, 1317, 16, 29},
- {112, 1317, 16, 29},
- {128, 1317, 16, 29},
- {144, 1317, 16, 29},
- {160, 1317, 16, 29},
- {176, 1317, 16, 29},
- {192, 1317, 16, 29},
- {208, 1317, 16, 29},
- {224, 1317, 16, 29},
- {240, 1317, 16, 29},
- {256, 1317, 16, 29},
- {272, 1317, 16, 29},
- {288, 1317, 16, 29},
- {304, 1317, 16, 29},
- {320, 1317, 16, 29},
- {336, 1317, 16, 29},
- {352, 1317, 16, 29},
- {368, 1317, 16, 29},
- {384, 1317, 16, 29},
- {400, 1317, 16, 29},
- {416, 1317, 16, 29},
- {432, 1317, 16, 29},
- {448, 1317, 16, 29},
- {464, 1317, 16, 29},
- {480, 1317, 16, 29},
- {496, 1317, 16, 29},
- {512, 1317, 16, 29},
- {528, 1317, 16, 29},
- {544, 1317, 16, 29},
- {560, 1317, 16, 29},
- {576, 1317, 16, 29},
- {592, 1317, 16, 29},
- {608, 1317, 16, 29},
- {624, 1317, 16, 29},
- {640, 1317, 16, 29},
- {656, 1317, 16, 29},
- {672, 1317, 16, 29},
- {688, 1317, 16, 29},
- {704, 1317, 16, 29},
- {720, 1317, 16, 29},
- {736, 1317, 16, 29},
- {752, 1317, 16, 29},
- {768, 1317, 16, 29},
- {784, 1317, 16, 29},
- {800, 1317, 16, 29},
- {816, 1317, 16, 29},
- {832, 1317, 16, 29},
- {848, 1317, 16, 29},
- {864, 1317, 16, 29},
- {880, 1317, 16, 29},
- {896, 1317, 16, 29},
- {912, 1317, 16, 29},
- {928, 1317, 16, 29},
- {944, 1317, 16, 29},
- {960, 1317, 16, 29},
- {976, 1317, 16, 29},
- {992, 1317, 16, 29},
- {1008, 1317, 16, 29},
- {0, 1346, 16, 29},
- {16, 1346, 16, 29},
- {32, 1346, 16, 29},
- {48, 1346, 16, 29},
- {64, 1346, 16, 29},
- {80, 1346, 16, 29},
- {96, 1346, 16, 29},
- {112, 1346, 16, 29},
- {128, 1346, 16, 29},
- {144, 1346, 16, 29},
- {160, 1346, 16, 29},
- {176, 1346, 16, 29},
- {192, 1346, 16, 29},
- {208, 1346, 16, 29},
- {224, 1346, 16, 29},
- {240, 1346, 16, 29},
- {256, 1346, 16, 29},
- {272, 1346, 16, 29},
- {288, 1346, 16, 29},
- {304, 1346, 16, 29},
- {320, 1346, 16, 29},
- {336, 1346, 16, 29},
- {352, 1346, 16, 29},
- {368, 1346, 16, 29},
- {384, 1346, 16, 29},
- {400, 1346, 16, 29},
- {416, 1346, 16, 29},
- {432, 1346, 16, 29},
- {448, 1346, 16, 29},
- {464, 1346, 16, 29},
- {480, 1346, 16, 29},
- {496, 1346, 16, 29},
- {512, 1346, 16, 29},
- {528, 1346, 16, 29},
- {544, 1346, 16, 29}
+ static std::unordered_multimap<uint32_t, std::array<uint32_t, 9>> emoji_sequences = {
+ { 0x1f600, { } },
+ { 0x1f603, { } },
+ { 0x1f604, { } },
+ { 0x1f601, { } },
+ { 0x1f606, { } },
+ { 0x1f605, { } },
+ { 0x1f923, { } },
+ { 0x1f602, { } },
+ { 0x1f642, { } },
+ { 0x1f643, { } },
+ { 0x1fae0, { } },
+ { 0x1f609, { } },
+ { 0x1f60a, { } },
+ { 0x1f607, { } },
+ { 0x1f970, { } },
+ { 0x1f60d, { } },
+ { 0x1f929, { } },
+ { 0x1f618, { } },
+ { 0x1f617, { } },
+ { 0x263a, { 0xfe0f } },
+ { 0x1f61a, { } },
+ { 0x1f619, { } },
+ { 0x1f972, { } },
+ { 0x1f60b, { } },
+ { 0x1f61b, { } },
+ { 0x1f61c, { } },
+ { 0x1f92a, { } },
+ { 0x1f61d, { } },
+ { 0x1f911, { } },
+ { 0x1f917, { } },
+ { 0x1f92d, { } },
+ { 0x1fae2, { } },
+ { 0x1fae3, { } },
+ { 0x1f92b, { } },
+ { 0x1f914, { } },
+ { 0x1fae1, { } },
+ { 0x1f910, { } },
+ { 0x1f928, { } },
+ { 0x1f610, { } },
+ { 0x1f611, { } },
+ { 0x1f636, { } },
+ { 0x1fae5, { } },
+ { 0x1f636, { 0x200d, 0x1f32b, 0xfe0f } },
+ { 0x1f60f, { } },
+ { 0x1f612, { } },
+ { 0x1f644, { } },
+ { 0x1f62c, { } },
+ { 0x1f62e, { 0x200d, 0x1f4a8 } },
+ { 0x1f925, { } },
+ { 0x1fae8, { } },
+ { 0x1f60c, { } },
+ { 0x1f614, { } },
+ { 0x1f62a, { } },
+ { 0x1f924, { } },
+ { 0x1f634, { } },
+ { 0x1f637, { } },
+ { 0x1f912, { } },
+ { 0x1f915, { } },
+ { 0x1f922, { } },
+ { 0x1f92e, { } },
+ { 0x1f927, { } },
+ { 0x1f975, { } },
+ { 0x1f976, { } },
+ { 0x1f974, { } },
+ { 0x1f635, { } },
+ { 0x1f635, { 0x200d, 0x1f4ab } },
+ { 0x1f92f, { } },
+ { 0x1f920, { } },
+ { 0x1f973, { } },
+ { 0x1f978, { } },
+ { 0x1f60e, { } },
+ { 0x1f913, { } },
+ { 0x1f9d0, { } },
+ { 0x1f615, { } },
+ { 0x1fae4, { } },
+ { 0x1f61f, { } },
+ { 0x1f641, { } },
+ { 0x2639, { 0xfe0f } },
+ { 0x1f62e, { } },
+ { 0x1f62f, { } },
+ { 0x1f632, { } },
+ { 0x1f633, { } },
+ { 0x1f97a, { } },
+ { 0x1f979, { } },
+ { 0x1f626, { } },
+ { 0x1f627, { } },
+ { 0x1f628, { } },
+ { 0x1f630, { } },
+ { 0x1f625, { } },
+ { 0x1f622, { } },
+ { 0x1f62d, { } },
+ { 0x1f631, { } },
+ { 0x1f616, { } },
+ { 0x1f623, { } },
+ { 0x1f61e, { } },
+ { 0x1f613, { } },
+ { 0x1f629, { } },
+ { 0x1f62b, { } },
+ { 0x1f971, { } },
+ { 0x1f624, { } },
+ { 0x1f621, { } },
+ { 0x1f620, { } },
+ { 0x1f92c, { } },
+ { 0x1f608, { } },
+ { 0x1f47f, { } },
+ { 0x1f480, { } },
+ { 0x2620, { 0xfe0f } },
+ { 0x1f4a9, { } },
+ { 0x1f921, { } },
+ { 0x1f479, { } },
+ { 0x1f47a, { } },
+ { 0x1f47b, { } },
+ { 0x1f47d, { } },
+ { 0x1f47e, { } },
+ { 0x1f916, { } },
+ { 0x1f63a, { } },
+ { 0x1f638, { } },
+ { 0x1f639, { } },
+ { 0x1f63b, { } },
+ { 0x1f63c, { } },
+ { 0x1f63d, { } },
+ { 0x1f640, { } },
+ { 0x1f63f, { } },
+ { 0x1f63e, { } },
+ { 0x1f648, { } },
+ { 0x1f649, { } },
+ { 0x1f64a, { } },
+ { 0x1f48c, { } },
+ { 0x1f498, { } },
+ { 0x1f49d, { } },
+ { 0x1f496, { } },
+ { 0x1f497, { } },
+ { 0x1f493, { } },
+ { 0x1f49e, { } },
+ { 0x1f495, { } },
+ { 0x1f49f, { } },
+ { 0x2763, { 0xfe0f } },
+ { 0x1f494, { } },
+ { 0x2764, { 0xfe0f, 0x200d, 0x1f525 } },
+ { 0x2764, { 0xfe0f, 0x200d, 0x1fa79 } },
+ { 0x2764, { 0xfe0f } },
+ { 0x1fa77, { } },
+ { 0x1f9e1, { } },
+ { 0x1f49b, { } },
+ { 0x1f49a, { } },
+ { 0x1f499, { } },
+ { 0x1fa75, { } },
+ { 0x1f49c, { } },
+ { 0x1f90e, { } },
+ { 0x1f5a4, { } },
+ { 0x1fa76, { } },
+ { 0x1f90d, { } },
+ { 0x1f48b, { } },
+ { 0x1f4af, { } },
+ { 0x1f4a2, { } },
+ { 0x1f4a5, { } },
+ { 0x1f4ab, { } },
+ { 0x1f4a6, { } },
+ { 0x1f4a8, { } },
+ { 0x1f573, { 0xfe0f } },
+ { 0x1f4ac, { } },
+ { 0x1f441, { 0xfe0f, 0x200d, 0x1f5e8, 0xfe0f } },
+ { 0x1f5e8, { 0xfe0f } },
+ { 0x1f5ef, { 0xfe0f } },
+ { 0x1f4ad, { } },
+ { 0x1f4a4, { } },
+ { 0x1f44b, { } },
+ { 0x1f44b, { 0x1f3fb } },
+ { 0x1f44b, { 0x1f3fc } },
+ { 0x1f44b, { 0x1f3fd } },
+ { 0x1f44b, { 0x1f3fe } },
+ { 0x1f44b, { 0x1f3ff } },
+ { 0x1f91a, { } },
+ { 0x1f91a, { 0x1f3fb } },
+ { 0x1f91a, { 0x1f3fc } },
+ { 0x1f91a, { 0x1f3fd } },
+ { 0x1f91a, { 0x1f3fe } },
+ { 0x1f91a, { 0x1f3ff } },
+ { 0x1f590, { 0xfe0f } },
+ { 0x1f590, { 0x1f3fb } },
+ { 0x1f590, { 0x1f3fc } },
+ { 0x1f590, { 0x1f3fd } },
+ { 0x1f590, { 0x1f3fe } },
+ { 0x1f590, { 0x1f3ff } },
+ { 0x270b, { } },
+ { 0x270b, { 0x1f3fb } },
+ { 0x270b, { 0x1f3fc } },
+ { 0x270b, { 0x1f3fd } },
+ { 0x270b, { 0x1f3fe } },
+ { 0x270b, { 0x1f3ff } },
+ { 0x1f596, { } },
+ { 0x1f596, { 0x1f3fb } },
+ { 0x1f596, { 0x1f3fc } },
+ { 0x1f596, { 0x1f3fd } },
+ { 0x1f596, { 0x1f3fe } },
+ { 0x1f596, { 0x1f3ff } },
+ { 0x1faf1, { } },
+ { 0x1faf1, { 0x1f3fb } },
+ { 0x1faf1, { 0x1f3fc } },
+ { 0x1faf1, { 0x1f3fd } },
+ { 0x1faf1, { 0x1f3fe } },
+ { 0x1faf1, { 0x1f3ff } },
+ { 0x1faf2, { } },
+ { 0x1faf2, { 0x1f3fb } },
+ { 0x1faf2, { 0x1f3fc } },
+ { 0x1faf2, { 0x1f3fd } },
+ { 0x1faf2, { 0x1f3fe } },
+ { 0x1faf2, { 0x1f3ff } },
+ { 0x1faf3, { } },
+ { 0x1faf3, { 0x1f3fb } },
+ { 0x1faf3, { 0x1f3fc } },
+ { 0x1faf3, { 0x1f3fd } },
+ { 0x1faf3, { 0x1f3fe } },
+ { 0x1faf3, { 0x1f3ff } },
+ { 0x1faf4, { } },
+ { 0x1faf4, { 0x1f3fb } },
+ { 0x1faf4, { 0x1f3fc } },
+ { 0x1faf4, { 0x1f3fd } },
+ { 0x1faf4, { 0x1f3fe } },
+ { 0x1faf4, { 0x1f3ff } },
+ { 0x1faf7, { } },
+ { 0x1faf7, { 0x1f3fb } },
+ { 0x1faf7, { 0x1f3fc } },
+ { 0x1faf7, { 0x1f3fd } },
+ { 0x1faf7, { 0x1f3fe } },
+ { 0x1faf7, { 0x1f3ff } },
+ { 0x1faf8, { } },
+ { 0x1faf8, { 0x1f3fb } },
+ { 0x1faf8, { 0x1f3fc } },
+ { 0x1faf8, { 0x1f3fd } },
+ { 0x1faf8, { 0x1f3fe } },
+ { 0x1faf8, { 0x1f3ff } },
+ { 0x1f44c, { } },
+ { 0x1f44c, { 0x1f3fb } },
+ { 0x1f44c, { 0x1f3fc } },
+ { 0x1f44c, { 0x1f3fd } },
+ { 0x1f44c, { 0x1f3fe } },
+ { 0x1f44c, { 0x1f3ff } },
+ { 0x1f90c, { } },
+ { 0x1f90c, { 0x1f3fb } },
+ { 0x1f90c, { 0x1f3fc } },
+ { 0x1f90c, { 0x1f3fd } },
+ { 0x1f90c, { 0x1f3fe } },
+ { 0x1f90c, { 0x1f3ff } },
+ { 0x1f90f, { } },
+ { 0x1f90f, { 0x1f3fb } },
+ { 0x1f90f, { 0x1f3fc } },
+ { 0x1f90f, { 0x1f3fd } },
+ { 0x1f90f, { 0x1f3fe } },
+ { 0x1f90f, { 0x1f3ff } },
+ { 0x270c, { 0xfe0f } },
+ { 0x270c, { 0x1f3fb } },
+ { 0x270c, { 0x1f3fc } },
+ { 0x270c, { 0x1f3fd } },
+ { 0x270c, { 0x1f3fe } },
+ { 0x270c, { 0x1f3ff } },
+ { 0x1f91e, { } },
+ { 0x1f91e, { 0x1f3fb } },
+ { 0x1f91e, { 0x1f3fc } },
+ { 0x1f91e, { 0x1f3fd } },
+ { 0x1f91e, { 0x1f3fe } },
+ { 0x1f91e, { 0x1f3ff } },
+ { 0x1faf0, { } },
+ { 0x1faf0, { 0x1f3fb } },
+ { 0x1faf0, { 0x1f3fc } },
+ { 0x1faf0, { 0x1f3fd } },
+ { 0x1faf0, { 0x1f3fe } },
+ { 0x1faf0, { 0x1f3ff } },
+ { 0x1f91f, { } },
+ { 0x1f91f, { 0x1f3fb } },
+ { 0x1f91f, { 0x1f3fc } },
+ { 0x1f91f, { 0x1f3fd } },
+ { 0x1f91f, { 0x1f3fe } },
+ { 0x1f91f, { 0x1f3ff } },
+ { 0x1f918, { } },
+ { 0x1f918, { 0x1f3fb } },
+ { 0x1f918, { 0x1f3fc } },
+ { 0x1f918, { 0x1f3fd } },
+ { 0x1f918, { 0x1f3fe } },
+ { 0x1f918, { 0x1f3ff } },
+ { 0x1f919, { } },
+ { 0x1f919, { 0x1f3fb } },
+ { 0x1f919, { 0x1f3fc } },
+ { 0x1f919, { 0x1f3fd } },
+ { 0x1f919, { 0x1f3fe } },
+ { 0x1f919, { 0x1f3ff } },
+ { 0x1f448, { } },
+ { 0x1f448, { 0x1f3fb } },
+ { 0x1f448, { 0x1f3fc } },
+ { 0x1f448, { 0x1f3fd } },
+ { 0x1f448, { 0x1f3fe } },
+ { 0x1f448, { 0x1f3ff } },
+ { 0x1f449, { } },
+ { 0x1f449, { 0x1f3fb } },
+ { 0x1f449, { 0x1f3fc } },
+ { 0x1f449, { 0x1f3fd } },
+ { 0x1f449, { 0x1f3fe } },
+ { 0x1f449, { 0x1f3ff } },
+ { 0x1f446, { } },
+ { 0x1f446, { 0x1f3fb } },
+ { 0x1f446, { 0x1f3fc } },
+ { 0x1f446, { 0x1f3fd } },
+ { 0x1f446, { 0x1f3fe } },
+ { 0x1f446, { 0x1f3ff } },
+ { 0x1f595, { } },
+ { 0x1f595, { 0x1f3fb } },
+ { 0x1f595, { 0x1f3fc } },
+ { 0x1f595, { 0x1f3fd } },
+ { 0x1f595, { 0x1f3fe } },
+ { 0x1f595, { 0x1f3ff } },
+ { 0x1f447, { } },
+ { 0x1f447, { 0x1f3fb } },
+ { 0x1f447, { 0x1f3fc } },
+ { 0x1f447, { 0x1f3fd } },
+ { 0x1f447, { 0x1f3fe } },
+ { 0x1f447, { 0x1f3ff } },
+ { 0x261d, { 0xfe0f } },
+ { 0x261d, { 0x1f3fb } },
+ { 0x261d, { 0x1f3fc } },
+ { 0x261d, { 0x1f3fd } },
+ { 0x261d, { 0x1f3fe } },
+ { 0x261d, { 0x1f3ff } },
+ { 0x1faf5, { } },
+ { 0x1faf5, { 0x1f3fb } },
+ { 0x1faf5, { 0x1f3fc } },
+ { 0x1faf5, { 0x1f3fd } },
+ { 0x1faf5, { 0x1f3fe } },
+ { 0x1faf5, { 0x1f3ff } },
+ { 0x1f44d, { } },
+ { 0x1f44d, { 0x1f3fb } },
+ { 0x1f44d, { 0x1f3fc } },
+ { 0x1f44d, { 0x1f3fd } },
+ { 0x1f44d, { 0x1f3fe } },
+ { 0x1f44d, { 0x1f3ff } },
+ { 0x1f44e, { } },
+ { 0x1f44e, { 0x1f3fb } },
+ { 0x1f44e, { 0x1f3fc } },
+ { 0x1f44e, { 0x1f3fd } },
+ { 0x1f44e, { 0x1f3fe } },
+ { 0x1f44e, { 0x1f3ff } },
+ { 0x270a, { } },
+ { 0x270a, { 0x1f3fb } },
+ { 0x270a, { 0x1f3fc } },
+ { 0x270a, { 0x1f3fd } },
+ { 0x270a, { 0x1f3fe } },
+ { 0x270a, { 0x1f3ff } },
+ { 0x1f44a, { } },
+ { 0x1f44a, { 0x1f3fb } },
+ { 0x1f44a, { 0x1f3fc } },
+ { 0x1f44a, { 0x1f3fd } },
+ { 0x1f44a, { 0x1f3fe } },
+ { 0x1f44a, { 0x1f3ff } },
+ { 0x1f91b, { } },
+ { 0x1f91b, { 0x1f3fb } },
+ { 0x1f91b, { 0x1f3fc } },
+ { 0x1f91b, { 0x1f3fd } },
+ { 0x1f91b, { 0x1f3fe } },
+ { 0x1f91b, { 0x1f3ff } },
+ { 0x1f91c, { } },
+ { 0x1f91c, { 0x1f3fb } },
+ { 0x1f91c, { 0x1f3fc } },
+ { 0x1f91c, { 0x1f3fd } },
+ { 0x1f91c, { 0x1f3fe } },
+ { 0x1f91c, { 0x1f3ff } },
+ { 0x1f44f, { } },
+ { 0x1f44f, { 0x1f3fb } },
+ { 0x1f44f, { 0x1f3fc } },
+ { 0x1f44f, { 0x1f3fd } },
+ { 0x1f44f, { 0x1f3fe } },
+ { 0x1f44f, { 0x1f3ff } },
+ { 0x1f64c, { } },
+ { 0x1f64c, { 0x1f3fb } },
+ { 0x1f64c, { 0x1f3fc } },
+ { 0x1f64c, { 0x1f3fd } },
+ { 0x1f64c, { 0x1f3fe } },
+ { 0x1f64c, { 0x1f3ff } },
+ { 0x1faf6, { } },
+ { 0x1faf6, { 0x1f3fb } },
+ { 0x1faf6, { 0x1f3fc } },
+ { 0x1faf6, { 0x1f3fd } },
+ { 0x1faf6, { 0x1f3fe } },
+ { 0x1faf6, { 0x1f3ff } },
+ { 0x1f450, { } },
+ { 0x1f450, { 0x1f3fb } },
+ { 0x1f450, { 0x1f3fc } },
+ { 0x1f450, { 0x1f3fd } },
+ { 0x1f450, { 0x1f3fe } },
+ { 0x1f450, { 0x1f3ff } },
+ { 0x1f932, { } },
+ { 0x1f932, { 0x1f3fb } },
+ { 0x1f932, { 0x1f3fc } },
+ { 0x1f932, { 0x1f3fd } },
+ { 0x1f932, { 0x1f3fe } },
+ { 0x1f932, { 0x1f3ff } },
+ { 0x1f91d, { } },
+ { 0x1f91d, { 0x1f3fb } },
+ { 0x1f91d, { 0x1f3fc } },
+ { 0x1f91d, { 0x1f3fd } },
+ { 0x1f91d, { 0x1f3fe } },
+ { 0x1f91d, { 0x1f3ff } },
+ { 0x1faf1, { 0x1f3fb, 0x200d, 0x1faf2, 0x1f3fc } },
+ { 0x1faf1, { 0x1f3fb, 0x200d, 0x1faf2, 0x1f3fd } },
+ { 0x1faf1, { 0x1f3fb, 0x200d, 0x1faf2, 0x1f3fe } },
+ { 0x1faf1, { 0x1f3fb, 0x200d, 0x1faf2, 0x1f3ff } },
+ { 0x1faf1, { 0x1f3fc, 0x200d, 0x1faf2, 0x1f3fb } },
+ { 0x1faf1, { 0x1f3fc, 0x200d, 0x1faf2, 0x1f3fd } },
+ { 0x1faf1, { 0x1f3fc, 0x200d, 0x1faf2, 0x1f3fe } },
+ { 0x1faf1, { 0x1f3fc, 0x200d, 0x1faf2, 0x1f3ff } },
+ { 0x1faf1, { 0x1f3fd, 0x200d, 0x1faf2, 0x1f3fb } },
+ { 0x1faf1, { 0x1f3fd, 0x200d, 0x1faf2, 0x1f3fc } },
+ { 0x1faf1, { 0x1f3fd, 0x200d, 0x1faf2, 0x1f3fe } },
+ { 0x1faf1, { 0x1f3fd, 0x200d, 0x1faf2, 0x1f3ff } },
+ { 0x1faf1, { 0x1f3fe, 0x200d, 0x1faf2, 0x1f3fb } },
+ { 0x1faf1, { 0x1f3fe, 0x200d, 0x1faf2, 0x1f3fc } },
+ { 0x1faf1, { 0x1f3fe, 0x200d, 0x1faf2, 0x1f3fd } },
+ { 0x1faf1, { 0x1f3fe, 0x200d, 0x1faf2, 0x1f3ff } },
+ { 0x1faf1, { 0x1f3ff, 0x200d, 0x1faf2, 0x1f3fb } },
+ { 0x1faf1, { 0x1f3ff, 0x200d, 0x1faf2, 0x1f3fc } },
+ { 0x1faf1, { 0x1f3ff, 0x200d, 0x1faf2, 0x1f3fd } },
+ { 0x1faf1, { 0x1f3ff, 0x200d, 0x1faf2, 0x1f3fe } },
+ { 0x1f64f, { } },
+ { 0x1f64f, { 0x1f3fb } },
+ { 0x1f64f, { 0x1f3fc } },
+ { 0x1f64f, { 0x1f3fd } },
+ { 0x1f64f, { 0x1f3fe } },
+ { 0x1f64f, { 0x1f3ff } },
+ { 0x270d, { 0xfe0f } },
+ { 0x270d, { 0x1f3fb } },
+ { 0x270d, { 0x1f3fc } },
+ { 0x270d, { 0x1f3fd } },
+ { 0x270d, { 0x1f3fe } },
+ { 0x270d, { 0x1f3ff } },
+ { 0x1f485, { } },
+ { 0x1f485, { 0x1f3fb } },
+ { 0x1f485, { 0x1f3fc } },
+ { 0x1f485, { 0x1f3fd } },
+ { 0x1f485, { 0x1f3fe } },
+ { 0x1f485, { 0x1f3ff } },
+ { 0x1f933, { } },
+ { 0x1f933, { 0x1f3fb } },
+ { 0x1f933, { 0x1f3fc } },
+ { 0x1f933, { 0x1f3fd } },
+ { 0x1f933, { 0x1f3fe } },
+ { 0x1f933, { 0x1f3ff } },
+ { 0x1f4aa, { } },
+ { 0x1f4aa, { 0x1f3fb } },
+ { 0x1f4aa, { 0x1f3fc } },
+ { 0x1f4aa, { 0x1f3fd } },
+ { 0x1f4aa, { 0x1f3fe } },
+ { 0x1f4aa, { 0x1f3ff } },
+ { 0x1f9be, { } },
+ { 0x1f9bf, { } },
+ { 0x1f9b5, { } },
+ { 0x1f9b5, { 0x1f3fb } },
+ { 0x1f9b5, { 0x1f3fc } },
+ { 0x1f9b5, { 0x1f3fd } },
+ { 0x1f9b5, { 0x1f3fe } },
+ { 0x1f9b5, { 0x1f3ff } },
+ { 0x1f9b6, { } },
+ { 0x1f9b6, { 0x1f3fb } },
+ { 0x1f9b6, { 0x1f3fc } },
+ { 0x1f9b6, { 0x1f3fd } },
+ { 0x1f9b6, { 0x1f3fe } },
+ { 0x1f9b6, { 0x1f3ff } },
+ { 0x1f442, { } },
+ { 0x1f442, { 0x1f3fb } },
+ { 0x1f442, { 0x1f3fc } },
+ { 0x1f442, { 0x1f3fd } },
+ { 0x1f442, { 0x1f3fe } },
+ { 0x1f442, { 0x1f3ff } },
+ { 0x1f9bb, { } },
+ { 0x1f9bb, { 0x1f3fb } },
+ { 0x1f9bb, { 0x1f3fc } },
+ { 0x1f9bb, { 0x1f3fd } },
+ { 0x1f9bb, { 0x1f3fe } },
+ { 0x1f9bb, { 0x1f3ff } },
+ { 0x1f443, { } },
+ { 0x1f443, { 0x1f3fb } },
+ { 0x1f443, { 0x1f3fc } },
+ { 0x1f443, { 0x1f3fd } },
+ { 0x1f443, { 0x1f3fe } },
+ { 0x1f443, { 0x1f3ff } },
+ { 0x1f9e0, { } },
+ { 0x1fac0, { } },
+ { 0x1fac1, { } },
+ { 0x1f9b7, { } },
+ { 0x1f9b4, { } },
+ { 0x1f440, { } },
+ { 0x1f441, { 0xfe0f } },
+ { 0x1f445, { } },
+ { 0x1f444, { } },
+ { 0x1fae6, { } },
+ { 0x1f476, { } },
+ { 0x1f476, { 0x1f3fb } },
+ { 0x1f476, { 0x1f3fc } },
+ { 0x1f476, { 0x1f3fd } },
+ { 0x1f476, { 0x1f3fe } },
+ { 0x1f476, { 0x1f3ff } },
+ { 0x1f9d2, { } },
+ { 0x1f9d2, { 0x1f3fb } },
+ { 0x1f9d2, { 0x1f3fc } },
+ { 0x1f9d2, { 0x1f3fd } },
+ { 0x1f9d2, { 0x1f3fe } },
+ { 0x1f9d2, { 0x1f3ff } },
+ { 0x1f466, { } },
+ { 0x1f466, { 0x1f3fb } },
+ { 0x1f466, { 0x1f3fc } },
+ { 0x1f466, { 0x1f3fd } },
+ { 0x1f466, { 0x1f3fe } },
+ { 0x1f466, { 0x1f3ff } },
+ { 0x1f467, { } },
+ { 0x1f467, { 0x1f3fb } },
+ { 0x1f467, { 0x1f3fc } },
+ { 0x1f467, { 0x1f3fd } },
+ { 0x1f467, { 0x1f3fe } },
+ { 0x1f467, { 0x1f3ff } },
+ { 0x1f9d1, { } },
+ { 0x1f9d1, { 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3ff } },
+ { 0x1f471, { } },
+ { 0x1f471, { 0x1f3fb } },
+ { 0x1f471, { 0x1f3fc } },
+ { 0x1f471, { 0x1f3fd } },
+ { 0x1f471, { 0x1f3fe } },
+ { 0x1f471, { 0x1f3ff } },
+ { 0x1f468, { } },
+ { 0x1f468, { 0x1f3fb } },
+ { 0x1f468, { 0x1f3fc } },
+ { 0x1f468, { 0x1f3fd } },
+ { 0x1f468, { 0x1f3fe } },
+ { 0x1f468, { 0x1f3ff } },
+ { 0x1f9d4, { } },
+ { 0x1f9d4, { 0x1f3fb } },
+ { 0x1f9d4, { 0x1f3fc } },
+ { 0x1f9d4, { 0x1f3fd } },
+ { 0x1f9d4, { 0x1f3fe } },
+ { 0x1f9d4, { 0x1f3ff } },
+ { 0x1f9d4, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d4, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d4, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f468, { 0x200d, 0x1f9b0 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9b0 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9b0 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9b0 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9b0 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9b0 } },
+ { 0x1f468, { 0x200d, 0x1f9b1 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9b1 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9b1 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9b1 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9b1 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9b1 } },
+ { 0x1f468, { 0x200d, 0x1f9b3 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9b3 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9b3 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9b3 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9b3 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9b3 } },
+ { 0x1f468, { 0x200d, 0x1f9b2 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9b2 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9b2 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9b2 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9b2 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9b2 } },
+ { 0x1f469, { } },
+ { 0x1f469, { 0x1f3fb } },
+ { 0x1f469, { 0x1f3fc } },
+ { 0x1f469, { 0x1f3fd } },
+ { 0x1f469, { 0x1f3fe } },
+ { 0x1f469, { 0x1f3ff } },
+ { 0x1f469, { 0x200d, 0x1f9b0 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9b0 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9b0 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9b0 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9b0 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9b0 } },
+ { 0x1f9d1, { 0x200d, 0x1f9b0 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9b0 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9b0 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9b0 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9b0 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9b0 } },
+ { 0x1f469, { 0x200d, 0x1f9b1 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9b1 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9b1 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9b1 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9b1 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9b1 } },
+ { 0x1f9d1, { 0x200d, 0x1f9b1 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9b1 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9b1 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9b1 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9b1 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9b1 } },
+ { 0x1f469, { 0x200d, 0x1f9b3 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9b3 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9b3 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9b3 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9b3 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9b3 } },
+ { 0x1f9d1, { 0x200d, 0x1f9b3 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9b3 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9b3 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9b3 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9b3 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9b3 } },
+ { 0x1f469, { 0x200d, 0x1f9b2 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9b2 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9b2 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9b2 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9b2 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9b2 } },
+ { 0x1f9d1, { 0x200d, 0x1f9b2 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9b2 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9b2 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9b2 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9b2 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9b2 } },
+ { 0x1f471, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f471, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f471, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f471, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f471, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f471, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f471, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f471, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f471, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f471, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f471, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f471, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d3, { } },
+ { 0x1f9d3, { 0x1f3fb } },
+ { 0x1f9d3, { 0x1f3fc } },
+ { 0x1f9d3, { 0x1f3fd } },
+ { 0x1f9d3, { 0x1f3fe } },
+ { 0x1f9d3, { 0x1f3ff } },
+ { 0x1f474, { } },
+ { 0x1f474, { 0x1f3fb } },
+ { 0x1f474, { 0x1f3fc } },
+ { 0x1f474, { 0x1f3fd } },
+ { 0x1f474, { 0x1f3fe } },
+ { 0x1f474, { 0x1f3ff } },
+ { 0x1f475, { } },
+ { 0x1f475, { 0x1f3fb } },
+ { 0x1f475, { 0x1f3fc } },
+ { 0x1f475, { 0x1f3fd } },
+ { 0x1f475, { 0x1f3fe } },
+ { 0x1f475, { 0x1f3ff } },
+ { 0x1f64d, { } },
+ { 0x1f64d, { 0x1f3fb } },
+ { 0x1f64d, { 0x1f3fc } },
+ { 0x1f64d, { 0x1f3fd } },
+ { 0x1f64d, { 0x1f3fe } },
+ { 0x1f64d, { 0x1f3ff } },
+ { 0x1f64d, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64d, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64d, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64d, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64d, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64d, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64d, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64d, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64d, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64d, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64d, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64d, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64e, { } },
+ { 0x1f64e, { 0x1f3fb } },
+ { 0x1f64e, { 0x1f3fc } },
+ { 0x1f64e, { 0x1f3fd } },
+ { 0x1f64e, { 0x1f3fe } },
+ { 0x1f64e, { 0x1f3ff } },
+ { 0x1f64e, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64e, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64e, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64e, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64e, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64e, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64e, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64e, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64e, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64e, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64e, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64e, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f645, { } },
+ { 0x1f645, { 0x1f3fb } },
+ { 0x1f645, { 0x1f3fc } },
+ { 0x1f645, { 0x1f3fd } },
+ { 0x1f645, { 0x1f3fe } },
+ { 0x1f645, { 0x1f3ff } },
+ { 0x1f645, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f645, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f645, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f645, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f645, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f645, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f645, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f645, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f645, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f645, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f645, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f645, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f646, { } },
+ { 0x1f646, { 0x1f3fb } },
+ { 0x1f646, { 0x1f3fc } },
+ { 0x1f646, { 0x1f3fd } },
+ { 0x1f646, { 0x1f3fe } },
+ { 0x1f646, { 0x1f3ff } },
+ { 0x1f646, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f646, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f646, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f646, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f646, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f646, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f646, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f646, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f646, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f646, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f646, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f646, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f481, { } },
+ { 0x1f481, { 0x1f3fb } },
+ { 0x1f481, { 0x1f3fc } },
+ { 0x1f481, { 0x1f3fd } },
+ { 0x1f481, { 0x1f3fe } },
+ { 0x1f481, { 0x1f3ff } },
+ { 0x1f481, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f481, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f481, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f481, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f481, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f481, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f481, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f481, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f481, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f481, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f481, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f481, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64b, { } },
+ { 0x1f64b, { 0x1f3fb } },
+ { 0x1f64b, { 0x1f3fc } },
+ { 0x1f64b, { 0x1f3fd } },
+ { 0x1f64b, { 0x1f3fe } },
+ { 0x1f64b, { 0x1f3ff } },
+ { 0x1f64b, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64b, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64b, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64b, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64b, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64b, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f64b, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64b, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64b, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64b, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64b, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f64b, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cf, { } },
+ { 0x1f9cf, { 0x1f3fb } },
+ { 0x1f9cf, { 0x1f3fc } },
+ { 0x1f9cf, { 0x1f3fd } },
+ { 0x1f9cf, { 0x1f3fe } },
+ { 0x1f9cf, { 0x1f3ff } },
+ { 0x1f9cf, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cf, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cf, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f647, { } },
+ { 0x1f647, { 0x1f3fb } },
+ { 0x1f647, { 0x1f3fc } },
+ { 0x1f647, { 0x1f3fd } },
+ { 0x1f647, { 0x1f3fe } },
+ { 0x1f647, { 0x1f3ff } },
+ { 0x1f647, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f647, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f647, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f647, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f647, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f647, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f647, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f647, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f647, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f647, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f647, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f647, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f926, { } },
+ { 0x1f926, { 0x1f3fb } },
+ { 0x1f926, { 0x1f3fc } },
+ { 0x1f926, { 0x1f3fd } },
+ { 0x1f926, { 0x1f3fe } },
+ { 0x1f926, { 0x1f3ff } },
+ { 0x1f926, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f926, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f926, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f926, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f926, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f926, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f926, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f926, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f926, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f926, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f926, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f926, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f937, { } },
+ { 0x1f937, { 0x1f3fb } },
+ { 0x1f937, { 0x1f3fc } },
+ { 0x1f937, { 0x1f3fd } },
+ { 0x1f937, { 0x1f3fe } },
+ { 0x1f937, { 0x1f3ff } },
+ { 0x1f937, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f937, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f937, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f937, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f937, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f937, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f937, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f937, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f937, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f937, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f937, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f937, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d1, { 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f468, { 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f469, { 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2695, 0xfe0f } },
+ { 0x1f9d1, { 0x200d, 0x1f393 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f393 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f393 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f393 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f393 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f393 } },
+ { 0x1f468, { 0x200d, 0x1f393 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f393 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f393 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f393 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f393 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f393 } },
+ { 0x1f469, { 0x200d, 0x1f393 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f393 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f393 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f393 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f393 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f393 } },
+ { 0x1f9d1, { 0x200d, 0x1f3eb } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f3eb } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f3eb } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f3eb } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f3eb } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f3eb } },
+ { 0x1f468, { 0x200d, 0x1f3eb } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f3eb } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f3eb } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f3eb } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f3eb } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f3eb } },
+ { 0x1f469, { 0x200d, 0x1f3eb } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f3eb } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f3eb } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f3eb } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f3eb } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f3eb } },
+ { 0x1f9d1, { 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f468, { 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f469, { 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2696, 0xfe0f } },
+ { 0x1f9d1, { 0x200d, 0x1f33e } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f33e } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f33e } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f33e } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f33e } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f33e } },
+ { 0x1f468, { 0x200d, 0x1f33e } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f33e } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f33e } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f33e } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f33e } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f33e } },
+ { 0x1f469, { 0x200d, 0x1f33e } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f33e } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f33e } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f33e } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f33e } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f33e } },
+ { 0x1f9d1, { 0x200d, 0x1f373 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f373 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f373 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f373 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f373 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f373 } },
+ { 0x1f468, { 0x200d, 0x1f373 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f373 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f373 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f373 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f373 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f373 } },
+ { 0x1f469, { 0x200d, 0x1f373 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f373 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f373 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f373 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f373 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f373 } },
+ { 0x1f9d1, { 0x200d, 0x1f527 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f527 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f527 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f527 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f527 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f527 } },
+ { 0x1f468, { 0x200d, 0x1f527 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f527 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f527 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f527 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f527 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f527 } },
+ { 0x1f469, { 0x200d, 0x1f527 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f527 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f527 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f527 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f527 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f527 } },
+ { 0x1f9d1, { 0x200d, 0x1f3ed } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f3ed } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f3ed } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f3ed } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f3ed } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f3ed } },
+ { 0x1f468, { 0x200d, 0x1f3ed } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f3ed } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f3ed } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f3ed } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f3ed } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f3ed } },
+ { 0x1f469, { 0x200d, 0x1f3ed } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f3ed } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f3ed } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f3ed } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f3ed } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f3ed } },
+ { 0x1f9d1, { 0x200d, 0x1f4bc } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f4bc } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f4bc } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f4bc } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f4bc } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f4bc } },
+ { 0x1f468, { 0x200d, 0x1f4bc } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f4bc } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f4bc } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f4bc } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f4bc } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f4bc } },
+ { 0x1f469, { 0x200d, 0x1f4bc } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f4bc } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f4bc } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f4bc } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f4bc } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f4bc } },
+ { 0x1f9d1, { 0x200d, 0x1f52c } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f52c } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f52c } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f52c } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f52c } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f52c } },
+ { 0x1f468, { 0x200d, 0x1f52c } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f52c } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f52c } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f52c } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f52c } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f52c } },
+ { 0x1f469, { 0x200d, 0x1f52c } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f52c } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f52c } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f52c } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f52c } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f52c } },
+ { 0x1f9d1, { 0x200d, 0x1f4bb } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f4bb } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f4bb } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f4bb } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f4bb } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f4bb } },
+ { 0x1f468, { 0x200d, 0x1f4bb } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f4bb } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f4bb } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f4bb } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f4bb } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f4bb } },
+ { 0x1f469, { 0x200d, 0x1f4bb } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f4bb } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f4bb } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f4bb } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f4bb } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f4bb } },
+ { 0x1f9d1, { 0x200d, 0x1f3a4 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f3a4 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f3a4 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f3a4 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f3a4 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f3a4 } },
+ { 0x1f468, { 0x200d, 0x1f3a4 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f3a4 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f3a4 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f3a4 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f3a4 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f3a4 } },
+ { 0x1f469, { 0x200d, 0x1f3a4 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f3a4 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f3a4 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f3a4 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f3a4 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f3a4 } },
+ { 0x1f9d1, { 0x200d, 0x1f3a8 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f3a8 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f3a8 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f3a8 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f3a8 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f3a8 } },
+ { 0x1f468, { 0x200d, 0x1f3a8 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f3a8 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f3a8 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f3a8 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f3a8 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f3a8 } },
+ { 0x1f469, { 0x200d, 0x1f3a8 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f3a8 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f3a8 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f3a8 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f3a8 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f3a8 } },
+ { 0x1f9d1, { 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f468, { 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f469, { 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2708, 0xfe0f } },
+ { 0x1f9d1, { 0x200d, 0x1f680 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f680 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f680 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f680 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f680 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f680 } },
+ { 0x1f468, { 0x200d, 0x1f680 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f680 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f680 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f680 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f680 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f680 } },
+ { 0x1f469, { 0x200d, 0x1f680 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f680 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f680 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f680 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f680 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f680 } },
+ { 0x1f9d1, { 0x200d, 0x1f692 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f692 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f692 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f692 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f692 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f692 } },
+ { 0x1f468, { 0x200d, 0x1f692 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f692 } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f692 } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f692 } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f692 } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f692 } },
+ { 0x1f469, { 0x200d, 0x1f692 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f692 } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f692 } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f692 } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f692 } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f692 } },
+ { 0x1f46e, { } },
+ { 0x1f46e, { 0x1f3fb } },
+ { 0x1f46e, { 0x1f3fc } },
+ { 0x1f46e, { 0x1f3fd } },
+ { 0x1f46e, { 0x1f3fe } },
+ { 0x1f46e, { 0x1f3ff } },
+ { 0x1f46e, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f46e, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f46e, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f46e, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f46e, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f46e, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f46e, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f46e, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f46e, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f46e, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f46e, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f46e, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f575, { 0xfe0f } },
+ { 0x1f575, { 0x1f3fb } },
+ { 0x1f575, { 0x1f3fc } },
+ { 0x1f575, { 0x1f3fd } },
+ { 0x1f575, { 0x1f3fe } },
+ { 0x1f575, { 0x1f3ff } },
+ { 0x1f575, { 0xfe0f, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f575, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f575, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f575, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f575, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f575, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f575, { 0xfe0f, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f575, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f575, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f575, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f575, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f575, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f482, { } },
+ { 0x1f482, { 0x1f3fb } },
+ { 0x1f482, { 0x1f3fc } },
+ { 0x1f482, { 0x1f3fd } },
+ { 0x1f482, { 0x1f3fe } },
+ { 0x1f482, { 0x1f3ff } },
+ { 0x1f482, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f482, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f482, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f482, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f482, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f482, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f482, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f482, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f482, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f482, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f482, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f482, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f977, { } },
+ { 0x1f977, { 0x1f3fb } },
+ { 0x1f977, { 0x1f3fc } },
+ { 0x1f977, { 0x1f3fd } },
+ { 0x1f977, { 0x1f3fe } },
+ { 0x1f977, { 0x1f3ff } },
+ { 0x1f477, { } },
+ { 0x1f477, { 0x1f3fb } },
+ { 0x1f477, { 0x1f3fc } },
+ { 0x1f477, { 0x1f3fd } },
+ { 0x1f477, { 0x1f3fe } },
+ { 0x1f477, { 0x1f3ff } },
+ { 0x1f477, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f477, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f477, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f477, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f477, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f477, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f477, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f477, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f477, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f477, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f477, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f477, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1fac5, { } },
+ { 0x1fac5, { 0x1f3fb } },
+ { 0x1fac5, { 0x1f3fc } },
+ { 0x1fac5, { 0x1f3fd } },
+ { 0x1fac5, { 0x1f3fe } },
+ { 0x1fac5, { 0x1f3ff } },
+ { 0x1f934, { } },
+ { 0x1f934, { 0x1f3fb } },
+ { 0x1f934, { 0x1f3fc } },
+ { 0x1f934, { 0x1f3fd } },
+ { 0x1f934, { 0x1f3fe } },
+ { 0x1f934, { 0x1f3ff } },
+ { 0x1f478, { } },
+ { 0x1f478, { 0x1f3fb } },
+ { 0x1f478, { 0x1f3fc } },
+ { 0x1f478, { 0x1f3fd } },
+ { 0x1f478, { 0x1f3fe } },
+ { 0x1f478, { 0x1f3ff } },
+ { 0x1f473, { } },
+ { 0x1f473, { 0x1f3fb } },
+ { 0x1f473, { 0x1f3fc } },
+ { 0x1f473, { 0x1f3fd } },
+ { 0x1f473, { 0x1f3fe } },
+ { 0x1f473, { 0x1f3ff } },
+ { 0x1f473, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f473, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f473, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f473, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f473, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f473, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f473, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f473, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f473, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f473, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f473, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f473, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f472, { } },
+ { 0x1f472, { 0x1f3fb } },
+ { 0x1f472, { 0x1f3fc } },
+ { 0x1f472, { 0x1f3fd } },
+ { 0x1f472, { 0x1f3fe } },
+ { 0x1f472, { 0x1f3ff } },
+ { 0x1f9d5, { } },
+ { 0x1f9d5, { 0x1f3fb } },
+ { 0x1f9d5, { 0x1f3fc } },
+ { 0x1f9d5, { 0x1f3fd } },
+ { 0x1f9d5, { 0x1f3fe } },
+ { 0x1f9d5, { 0x1f3ff } },
+ { 0x1f935, { } },
+ { 0x1f935, { 0x1f3fb } },
+ { 0x1f935, { 0x1f3fc } },
+ { 0x1f935, { 0x1f3fd } },
+ { 0x1f935, { 0x1f3fe } },
+ { 0x1f935, { 0x1f3ff } },
+ { 0x1f935, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f935, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f935, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f935, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f935, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f935, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f935, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f935, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f935, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f935, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f935, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f935, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f470, { } },
+ { 0x1f470, { 0x1f3fb } },
+ { 0x1f470, { 0x1f3fc } },
+ { 0x1f470, { 0x1f3fd } },
+ { 0x1f470, { 0x1f3fe } },
+ { 0x1f470, { 0x1f3ff } },
+ { 0x1f470, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f470, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f470, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f470, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f470, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f470, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f470, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f470, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f470, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f470, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f470, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f470, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f930, { } },
+ { 0x1f930, { 0x1f3fb } },
+ { 0x1f930, { 0x1f3fc } },
+ { 0x1f930, { 0x1f3fd } },
+ { 0x1f930, { 0x1f3fe } },
+ { 0x1f930, { 0x1f3ff } },
+ { 0x1fac3, { } },
+ { 0x1fac3, { 0x1f3fb } },
+ { 0x1fac3, { 0x1f3fc } },
+ { 0x1fac3, { 0x1f3fd } },
+ { 0x1fac3, { 0x1f3fe } },
+ { 0x1fac3, { 0x1f3ff } },
+ { 0x1fac4, { } },
+ { 0x1fac4, { 0x1f3fb } },
+ { 0x1fac4, { 0x1f3fc } },
+ { 0x1fac4, { 0x1f3fd } },
+ { 0x1fac4, { 0x1f3fe } },
+ { 0x1fac4, { 0x1f3ff } },
+ { 0x1f931, { } },
+ { 0x1f931, { 0x1f3fb } },
+ { 0x1f931, { 0x1f3fc } },
+ { 0x1f931, { 0x1f3fd } },
+ { 0x1f931, { 0x1f3fe } },
+ { 0x1f931, { 0x1f3ff } },
+ { 0x1f469, { 0x200d, 0x1f37c } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f37c } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f37c } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f37c } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f37c } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f37c } },
+ { 0x1f468, { 0x200d, 0x1f37c } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f37c } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f37c } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f37c } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f37c } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f37c } },
+ { 0x1f9d1, { 0x200d, 0x1f37c } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f37c } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f37c } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f37c } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f37c } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f37c } },
+ { 0x1f47c, { } },
+ { 0x1f47c, { 0x1f3fb } },
+ { 0x1f47c, { 0x1f3fc } },
+ { 0x1f47c, { 0x1f3fd } },
+ { 0x1f47c, { 0x1f3fe } },
+ { 0x1f47c, { 0x1f3ff } },
+ { 0x1f385, { } },
+ { 0x1f385, { 0x1f3fb } },
+ { 0x1f385, { 0x1f3fc } },
+ { 0x1f385, { 0x1f3fd } },
+ { 0x1f385, { 0x1f3fe } },
+ { 0x1f385, { 0x1f3ff } },
+ { 0x1f936, { } },
+ { 0x1f936, { 0x1f3fb } },
+ { 0x1f936, { 0x1f3fc } },
+ { 0x1f936, { 0x1f3fd } },
+ { 0x1f936, { 0x1f3fe } },
+ { 0x1f936, { 0x1f3ff } },
+ { 0x1f9d1, { 0x200d, 0x1f384 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f384 } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f384 } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f384 } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f384 } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f384 } },
+ { 0x1f9b8, { } },
+ { 0x1f9b8, { 0x1f3fb } },
+ { 0x1f9b8, { 0x1f3fc } },
+ { 0x1f9b8, { 0x1f3fd } },
+ { 0x1f9b8, { 0x1f3fe } },
+ { 0x1f9b8, { 0x1f3ff } },
+ { 0x1f9b8, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b8, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b8, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b9, { } },
+ { 0x1f9b9, { 0x1f3fb } },
+ { 0x1f9b9, { 0x1f3fc } },
+ { 0x1f9b9, { 0x1f3fd } },
+ { 0x1f9b9, { 0x1f3fe } },
+ { 0x1f9b9, { 0x1f3ff } },
+ { 0x1f9b9, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9b9, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9b9, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d9, { } },
+ { 0x1f9d9, { 0x1f3fb } },
+ { 0x1f9d9, { 0x1f3fc } },
+ { 0x1f9d9, { 0x1f3fd } },
+ { 0x1f9d9, { 0x1f3fe } },
+ { 0x1f9d9, { 0x1f3ff } },
+ { 0x1f9d9, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d9, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d9, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9da, { } },
+ { 0x1f9da, { 0x1f3fb } },
+ { 0x1f9da, { 0x1f3fc } },
+ { 0x1f9da, { 0x1f3fd } },
+ { 0x1f9da, { 0x1f3fe } },
+ { 0x1f9da, { 0x1f3ff } },
+ { 0x1f9da, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9da, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9da, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9da, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9da, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9da, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9da, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9da, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9da, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9da, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9da, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9da, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9db, { } },
+ { 0x1f9db, { 0x1f3fb } },
+ { 0x1f9db, { 0x1f3fc } },
+ { 0x1f9db, { 0x1f3fd } },
+ { 0x1f9db, { 0x1f3fe } },
+ { 0x1f9db, { 0x1f3ff } },
+ { 0x1f9db, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9db, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9db, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9db, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9db, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9db, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9db, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9db, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9db, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9db, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9db, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9db, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dc, { } },
+ { 0x1f9dc, { 0x1f3fb } },
+ { 0x1f9dc, { 0x1f3fc } },
+ { 0x1f9dc, { 0x1f3fd } },
+ { 0x1f9dc, { 0x1f3fe } },
+ { 0x1f9dc, { 0x1f3ff } },
+ { 0x1f9dc, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dc, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dc, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dd, { } },
+ { 0x1f9dd, { 0x1f3fb } },
+ { 0x1f9dd, { 0x1f3fc } },
+ { 0x1f9dd, { 0x1f3fd } },
+ { 0x1f9dd, { 0x1f3fe } },
+ { 0x1f9dd, { 0x1f3ff } },
+ { 0x1f9dd, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9dd, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9dd, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9de, { } },
+ { 0x1f9de, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9de, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9df, { } },
+ { 0x1f9df, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9df, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cc, { } },
+ { 0x1f486, { } },
+ { 0x1f486, { 0x1f3fb } },
+ { 0x1f486, { 0x1f3fc } },
+ { 0x1f486, { 0x1f3fd } },
+ { 0x1f486, { 0x1f3fe } },
+ { 0x1f486, { 0x1f3ff } },
+ { 0x1f486, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f486, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f486, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f486, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f486, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f486, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f486, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f486, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f486, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f486, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f486, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f486, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f487, { } },
+ { 0x1f487, { 0x1f3fb } },
+ { 0x1f487, { 0x1f3fc } },
+ { 0x1f487, { 0x1f3fd } },
+ { 0x1f487, { 0x1f3fe } },
+ { 0x1f487, { 0x1f3ff } },
+ { 0x1f487, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f487, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f487, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f487, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f487, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f487, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f487, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f487, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f487, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f487, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f487, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f487, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b6, { } },
+ { 0x1f6b6, { 0x1f3fb } },
+ { 0x1f6b6, { 0x1f3fc } },
+ { 0x1f6b6, { 0x1f3fd } },
+ { 0x1f6b6, { 0x1f3fe } },
+ { 0x1f6b6, { 0x1f3ff } },
+ { 0x1f6b6, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b6, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b6, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cd, { } },
+ { 0x1f9cd, { 0x1f3fb } },
+ { 0x1f9cd, { 0x1f3fc } },
+ { 0x1f9cd, { 0x1f3fd } },
+ { 0x1f9cd, { 0x1f3fe } },
+ { 0x1f9cd, { 0x1f3ff } },
+ { 0x1f9cd, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9cd, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9cd, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9ce, { } },
+ { 0x1f9ce, { 0x1f3fb } },
+ { 0x1f9ce, { 0x1f3fc } },
+ { 0x1f9ce, { 0x1f3fd } },
+ { 0x1f9ce, { 0x1f3fe } },
+ { 0x1f9ce, { 0x1f3ff } },
+ { 0x1f9ce, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9ce, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9ce, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d1, { 0x200d, 0x1f9af } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9af } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9af } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9af } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9af } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9af } },
+ { 0x1f468, { 0x200d, 0x1f9af } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9af } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9af } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9af } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9af } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9af } },
+ { 0x1f469, { 0x200d, 0x1f9af } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9af } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9af } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9af } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9af } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9af } },
+ { 0x1f9d1, { 0x200d, 0x1f9bc } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9bc } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9bc } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9bc } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9bc } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9bc } },
+ { 0x1f468, { 0x200d, 0x1f9bc } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9bc } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9bc } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9bc } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9bc } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9bc } },
+ { 0x1f469, { 0x200d, 0x1f9bc } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9bc } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9bc } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9bc } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9bc } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9bc } },
+ { 0x1f9d1, { 0x200d, 0x1f9bd } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9bd } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9bd } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9bd } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9bd } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9bd } },
+ { 0x1f468, { 0x200d, 0x1f9bd } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9bd } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9bd } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9bd } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9bd } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9bd } },
+ { 0x1f469, { 0x200d, 0x1f9bd } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9bd } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9bd } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9bd } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9bd } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9bd } },
+ { 0x1f3c3, { } },
+ { 0x1f3c3, { 0x1f3fb } },
+ { 0x1f3c3, { 0x1f3fc } },
+ { 0x1f3c3, { 0x1f3fd } },
+ { 0x1f3c3, { 0x1f3fe } },
+ { 0x1f3c3, { 0x1f3ff } },
+ { 0x1f3c3, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c3, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c3, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f483, { } },
+ { 0x1f483, { 0x1f3fb } },
+ { 0x1f483, { 0x1f3fc } },
+ { 0x1f483, { 0x1f3fd } },
+ { 0x1f483, { 0x1f3fe } },
+ { 0x1f483, { 0x1f3ff } },
+ { 0x1f57a, { } },
+ { 0x1f57a, { 0x1f3fb } },
+ { 0x1f57a, { 0x1f3fc } },
+ { 0x1f57a, { 0x1f3fd } },
+ { 0x1f57a, { 0x1f3fe } },
+ { 0x1f57a, { 0x1f3ff } },
+ { 0x1f574, { 0xfe0f } },
+ { 0x1f574, { 0x1f3fb } },
+ { 0x1f574, { 0x1f3fc } },
+ { 0x1f574, { 0x1f3fd } },
+ { 0x1f574, { 0x1f3fe } },
+ { 0x1f574, { 0x1f3ff } },
+ { 0x1f46f, { } },
+ { 0x1f46f, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f46f, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d6, { } },
+ { 0x1f9d6, { 0x1f3fb } },
+ { 0x1f9d6, { 0x1f3fc } },
+ { 0x1f9d6, { 0x1f3fd } },
+ { 0x1f9d6, { 0x1f3fe } },
+ { 0x1f9d6, { 0x1f3ff } },
+ { 0x1f9d6, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d6, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d6, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d7, { } },
+ { 0x1f9d7, { 0x1f3fb } },
+ { 0x1f9d7, { 0x1f3fc } },
+ { 0x1f9d7, { 0x1f3fd } },
+ { 0x1f9d7, { 0x1f3fe } },
+ { 0x1f9d7, { 0x1f3ff } },
+ { 0x1f9d7, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d7, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d7, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93a, { } },
+ { 0x1f3c7, { } },
+ { 0x1f3c7, { 0x1f3fb } },
+ { 0x1f3c7, { 0x1f3fc } },
+ { 0x1f3c7, { 0x1f3fd } },
+ { 0x1f3c7, { 0x1f3fe } },
+ { 0x1f3c7, { 0x1f3ff } },
+ { 0x26f7, { 0xfe0f } },
+ { 0x1f3c2, { } },
+ { 0x1f3c2, { 0x1f3fb } },
+ { 0x1f3c2, { 0x1f3fc } },
+ { 0x1f3c2, { 0x1f3fd } },
+ { 0x1f3c2, { 0x1f3fe } },
+ { 0x1f3c2, { 0x1f3ff } },
+ { 0x1f3cc, { 0xfe0f } },
+ { 0x1f3cc, { 0x1f3fb } },
+ { 0x1f3cc, { 0x1f3fc } },
+ { 0x1f3cc, { 0x1f3fd } },
+ { 0x1f3cc, { 0x1f3fe } },
+ { 0x1f3cc, { 0x1f3ff } },
+ { 0x1f3cc, { 0xfe0f, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cc, { 0xfe0f, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cc, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c4, { } },
+ { 0x1f3c4, { 0x1f3fb } },
+ { 0x1f3c4, { 0x1f3fc } },
+ { 0x1f3c4, { 0x1f3fd } },
+ { 0x1f3c4, { 0x1f3fe } },
+ { 0x1f3c4, { 0x1f3ff } },
+ { 0x1f3c4, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3c4, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3c4, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6a3, { } },
+ { 0x1f6a3, { 0x1f3fb } },
+ { 0x1f6a3, { 0x1f3fc } },
+ { 0x1f6a3, { 0x1f3fd } },
+ { 0x1f6a3, { 0x1f3fe } },
+ { 0x1f6a3, { 0x1f3ff } },
+ { 0x1f6a3, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6a3, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6a3, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3ca, { } },
+ { 0x1f3ca, { 0x1f3fb } },
+ { 0x1f3ca, { 0x1f3fc } },
+ { 0x1f3ca, { 0x1f3fd } },
+ { 0x1f3ca, { 0x1f3fe } },
+ { 0x1f3ca, { 0x1f3ff } },
+ { 0x1f3ca, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3ca, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3ca, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x26f9, { 0xfe0f } },
+ { 0x26f9, { 0x1f3fb } },
+ { 0x26f9, { 0x1f3fc } },
+ { 0x26f9, { 0x1f3fd } },
+ { 0x26f9, { 0x1f3fe } },
+ { 0x26f9, { 0x1f3ff } },
+ { 0x26f9, { 0xfe0f, 0x200d, 0x2642, 0xfe0f } },
+ { 0x26f9, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x26f9, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x26f9, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x26f9, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x26f9, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x26f9, { 0xfe0f, 0x200d, 0x2640, 0xfe0f } },
+ { 0x26f9, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x26f9, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x26f9, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x26f9, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x26f9, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cb, { 0xfe0f } },
+ { 0x1f3cb, { 0x1f3fb } },
+ { 0x1f3cb, { 0x1f3fc } },
+ { 0x1f3cb, { 0x1f3fd } },
+ { 0x1f3cb, { 0x1f3fe } },
+ { 0x1f3cb, { 0x1f3ff } },
+ { 0x1f3cb, { 0xfe0f, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f3cb, { 0xfe0f, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f3cb, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b4, { } },
+ { 0x1f6b4, { 0x1f3fb } },
+ { 0x1f6b4, { 0x1f3fc } },
+ { 0x1f6b4, { 0x1f3fd } },
+ { 0x1f6b4, { 0x1f3fe } },
+ { 0x1f6b4, { 0x1f3ff } },
+ { 0x1f6b4, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b4, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b4, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b5, { } },
+ { 0x1f6b5, { 0x1f3fb } },
+ { 0x1f6b5, { 0x1f3fc } },
+ { 0x1f6b5, { 0x1f3fd } },
+ { 0x1f6b5, { 0x1f3fe } },
+ { 0x1f6b5, { 0x1f3ff } },
+ { 0x1f6b5, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f6b5, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6b5, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f938, { } },
+ { 0x1f938, { 0x1f3fb } },
+ { 0x1f938, { 0x1f3fc } },
+ { 0x1f938, { 0x1f3fd } },
+ { 0x1f938, { 0x1f3fe } },
+ { 0x1f938, { 0x1f3ff } },
+ { 0x1f938, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f938, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f938, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f938, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f938, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f938, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f938, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f938, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f938, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f938, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f938, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f938, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93c, { } },
+ { 0x1f93c, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93c, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93d, { } },
+ { 0x1f93d, { 0x1f3fb } },
+ { 0x1f93d, { 0x1f3fc } },
+ { 0x1f93d, { 0x1f3fd } },
+ { 0x1f93d, { 0x1f3fe } },
+ { 0x1f93d, { 0x1f3ff } },
+ { 0x1f93d, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93d, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93d, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93d, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93d, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93d, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93d, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93d, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93d, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93d, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93d, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93d, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93e, { } },
+ { 0x1f93e, { 0x1f3fb } },
+ { 0x1f93e, { 0x1f3fc } },
+ { 0x1f93e, { 0x1f3fd } },
+ { 0x1f93e, { 0x1f3fe } },
+ { 0x1f93e, { 0x1f3ff } },
+ { 0x1f93e, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93e, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93e, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93e, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93e, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93e, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f93e, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93e, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93e, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93e, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93e, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f93e, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f939, { } },
+ { 0x1f939, { 0x1f3fb } },
+ { 0x1f939, { 0x1f3fc } },
+ { 0x1f939, { 0x1f3fd } },
+ { 0x1f939, { 0x1f3fe } },
+ { 0x1f939, { 0x1f3ff } },
+ { 0x1f939, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f939, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f939, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f939, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f939, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f939, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f939, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f939, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f939, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f939, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f939, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f939, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d8, { } },
+ { 0x1f9d8, { 0x1f3fb } },
+ { 0x1f9d8, { 0x1f3fc } },
+ { 0x1f9d8, { 0x1f3fd } },
+ { 0x1f9d8, { 0x1f3fe } },
+ { 0x1f9d8, { 0x1f3ff } },
+ { 0x1f9d8, { 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } },
+ { 0x1f9d8, { 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f9d8, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } },
+ { 0x1f6c0, { } },
+ { 0x1f6c0, { 0x1f3fb } },
+ { 0x1f6c0, { 0x1f3fc } },
+ { 0x1f6c0, { 0x1f3fd } },
+ { 0x1f6c0, { 0x1f3fe } },
+ { 0x1f6c0, { 0x1f3ff } },
+ { 0x1f6cc, { } },
+ { 0x1f6cc, { 0x1f3fb } },
+ { 0x1f6cc, { 0x1f3fc } },
+ { 0x1f6cc, { 0x1f3fd } },
+ { 0x1f6cc, { 0x1f3fe } },
+ { 0x1f6cc, { 0x1f3ff } },
+ { 0x1f9d1, { 0x200d, 0x1f91d, 0x200d, 0x1f9d1 } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f46d, { } },
+ { 0x1f46d, { 0x1f3fb } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f46d, { 0x1f3fc } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f46d, { 0x1f3fd } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f46d, { 0x1f3fe } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f46d, { 0x1f3ff } },
+ { 0x1f46b, { } },
+ { 0x1f46b, { 0x1f3fb } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f46b, { 0x1f3fc } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f46b, { 0x1f3fd } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f46b, { 0x1f3fe } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f46b, { 0x1f3ff } },
+ { 0x1f46c, { } },
+ { 0x1f46c, { 0x1f3fb } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f46c, { 0x1f3fc } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f46c, { 0x1f3fd } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f46c, { 0x1f3fe } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f46c, { 0x1f3ff } },
+ { 0x1f48f, { } },
+ { 0x1f48f, { 0x1f3fb } },
+ { 0x1f48f, { 0x1f3fc } },
+ { 0x1f48f, { 0x1f3fd } },
+ { 0x1f48f, { 0x1f3fe } },
+ { 0x1f48f, { 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f469, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f491, { } },
+ { 0x1f491, { 0x1f3fb } },
+ { 0x1f491, { 0x1f3fc } },
+ { 0x1f491, { 0x1f3fd } },
+ { 0x1f491, { 0x1f3fe } },
+ { 0x1f491, { 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3ff } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fb } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fc } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fd } },
+ { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fe } },
+ { 0x1f469, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468 } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } },
+ { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } },
+ { 0x1f469, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469 } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } },
+ { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } },
+ { 0x1f46a, { } },
+ { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f466 } },
+ { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f467 } },
+ { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f467, 0x200d, 0x1f466 } },
+ { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f466, 0x200d, 0x1f466 } },
+ { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f467, 0x200d, 0x1f467 } },
+ { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f466 } },
+ { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f467 } },
+ { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f467, 0x200d, 0x1f466 } },
+ { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f466, 0x200d, 0x1f466 } },
+ { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f467, 0x200d, 0x1f467 } },
+ { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f466 } },
+ { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f467 } },
+ { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f467, 0x200d, 0x1f466 } },
+ { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f466, 0x200d, 0x1f466 } },
+ { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f467, 0x200d, 0x1f467 } },
+ { 0x1f468, { 0x200d, 0x1f466 } },
+ { 0x1f468, { 0x200d, 0x1f466, 0x200d, 0x1f466 } },
+ { 0x1f468, { 0x200d, 0x1f467 } },
+ { 0x1f468, { 0x200d, 0x1f467, 0x200d, 0x1f466 } },
+ { 0x1f468, { 0x200d, 0x1f467, 0x200d, 0x1f467 } },
+ { 0x1f469, { 0x200d, 0x1f466 } },
+ { 0x1f469, { 0x200d, 0x1f466, 0x200d, 0x1f466 } },
+ { 0x1f469, { 0x200d, 0x1f467 } },
+ { 0x1f469, { 0x200d, 0x1f467, 0x200d, 0x1f466 } },
+ { 0x1f469, { 0x200d, 0x1f467, 0x200d, 0x1f467 } },
+ { 0x1f5e3, { 0xfe0f } },
+ { 0x1f464, { } },
+ { 0x1f465, { } },
+ { 0x1fac2, { } },
+ { 0x1f463, { } },
+ { 0x1f435, { } },
+ { 0x1f412, { } },
+ { 0x1f98d, { } },
+ { 0x1f9a7, { } },
+ { 0x1f436, { } },
+ { 0x1f415, { } },
+ { 0x1f9ae, { } },
+ { 0x1f415, { 0x200d, 0x1f9ba } },
+ { 0x1f429, { } },
+ { 0x1f43a, { } },
+ { 0x1f98a, { } },
+ { 0x1f99d, { } },
+ { 0x1f431, { } },
+ { 0x1f408, { } },
+ { 0x1f408, { 0x200d, 0x2b1b } },
+ { 0x1f981, { } },
+ { 0x1f42f, { } },
+ { 0x1f405, { } },
+ { 0x1f406, { } },
+ { 0x1f434, { } },
+ { 0x1face, { } },
+ { 0x1facf, { } },
+ { 0x1f40e, { } },
+ { 0x1f984, { } },
+ { 0x1f993, { } },
+ { 0x1f98c, { } },
+ { 0x1f9ac, { } },
+ { 0x1f42e, { } },
+ { 0x1f402, { } },
+ { 0x1f403, { } },
+ { 0x1f404, { } },
+ { 0x1f437, { } },
+ { 0x1f416, { } },
+ { 0x1f417, { } },
+ { 0x1f43d, { } },
+ { 0x1f40f, { } },
+ { 0x1f411, { } },
+ { 0x1f410, { } },
+ { 0x1f42a, { } },
+ { 0x1f42b, { } },
+ { 0x1f999, { } },
+ { 0x1f992, { } },
+ { 0x1f418, { } },
+ { 0x1f9a3, { } },
+ { 0x1f98f, { } },
+ { 0x1f99b, { } },
+ { 0x1f42d, { } },
+ { 0x1f401, { } },
+ { 0x1f400, { } },
+ { 0x1f439, { } },
+ { 0x1f430, { } },
+ { 0x1f407, { } },
+ { 0x1f43f, { 0xfe0f } },
+ { 0x1f9ab, { } },
+ { 0x1f994, { } },
+ { 0x1f987, { } },
+ { 0x1f43b, { } },
+ { 0x1f43b, { 0x200d, 0x2744, 0xfe0f } },
+ { 0x1f428, { } },
+ { 0x1f43c, { } },
+ { 0x1f9a5, { } },
+ { 0x1f9a6, { } },
+ { 0x1f9a8, { } },
+ { 0x1f998, { } },
+ { 0x1f9a1, { } },
+ { 0x1f43e, { } },
+ { 0x1f983, { } },
+ { 0x1f414, { } },
+ { 0x1f413, { } },
+ { 0x1f423, { } },
+ { 0x1f424, { } },
+ { 0x1f425, { } },
+ { 0x1f426, { } },
+ { 0x1f427, { } },
+ { 0x1f54a, { 0xfe0f } },
+ { 0x1f985, { } },
+ { 0x1f986, { } },
+ { 0x1f9a2, { } },
+ { 0x1f989, { } },
+ { 0x1f9a4, { } },
+ { 0x1fab6, { } },
+ { 0x1f9a9, { } },
+ { 0x1f99a, { } },
+ { 0x1f99c, { } },
+ { 0x1fabd, { } },
+ { 0x1f426, { 0x200d, 0x2b1b } },
+ { 0x1fabf, { } },
+ { 0x1f438, { } },
+ { 0x1f40a, { } },
+ { 0x1f422, { } },
+ { 0x1f98e, { } },
+ { 0x1f40d, { } },
+ { 0x1f432, { } },
+ { 0x1f409, { } },
+ { 0x1f995, { } },
+ { 0x1f996, { } },
+ { 0x1f433, { } },
+ { 0x1f40b, { } },
+ { 0x1f42c, { } },
+ { 0x1f9ad, { } },
+ { 0x1f41f, { } },
+ { 0x1f420, { } },
+ { 0x1f421, { } },
+ { 0x1f988, { } },
+ { 0x1f419, { } },
+ { 0x1f41a, { } },
+ { 0x1fab8, { } },
+ { 0x1fabc, { } },
+ { 0x1f40c, { } },
+ { 0x1f98b, { } },
+ { 0x1f41b, { } },
+ { 0x1f41c, { } },
+ { 0x1f41d, { } },
+ { 0x1fab2, { } },
+ { 0x1f41e, { } },
+ { 0x1f997, { } },
+ { 0x1fab3, { } },
+ { 0x1f577, { 0xfe0f } },
+ { 0x1f578, { 0xfe0f } },
+ { 0x1f982, { } },
+ { 0x1f99f, { } },
+ { 0x1fab0, { } },
+ { 0x1fab1, { } },
+ { 0x1f9a0, { } },
+ { 0x1f490, { } },
+ { 0x1f338, { } },
+ { 0x1f4ae, { } },
+ { 0x1fab7, { } },
+ { 0x1f3f5, { 0xfe0f } },
+ { 0x1f339, { } },
+ { 0x1f940, { } },
+ { 0x1f33a, { } },
+ { 0x1f33b, { } },
+ { 0x1f33c, { } },
+ { 0x1f337, { } },
+ { 0x1fabb, { } },
+ { 0x1f331, { } },
+ { 0x1fab4, { } },
+ { 0x1f332, { } },
+ { 0x1f333, { } },
+ { 0x1f334, { } },
+ { 0x1f335, { } },
+ { 0x1f33e, { } },
+ { 0x1f33f, { } },
+ { 0x2618, { 0xfe0f } },
+ { 0x1f340, { } },
+ { 0x1f341, { } },
+ { 0x1f342, { } },
+ { 0x1f343, { } },
+ { 0x1fab9, { } },
+ { 0x1faba, { } },
+ { 0x1f344, { } },
+ { 0x1f347, { } },
+ { 0x1f348, { } },
+ { 0x1f349, { } },
+ { 0x1f34a, { } },
+ { 0x1f34b, { } },
+ { 0x1f34c, { } },
+ { 0x1f34d, { } },
+ { 0x1f96d, { } },
+ { 0x1f34e, { } },
+ { 0x1f34f, { } },
+ { 0x1f350, { } },
+ { 0x1f351, { } },
+ { 0x1f352, { } },
+ { 0x1f353, { } },
+ { 0x1fad0, { } },
+ { 0x1f95d, { } },
+ { 0x1f345, { } },
+ { 0x1fad2, { } },
+ { 0x1f965, { } },
+ { 0x1f951, { } },
+ { 0x1f346, { } },
+ { 0x1f954, { } },
+ { 0x1f955, { } },
+ { 0x1f33d, { } },
+ { 0x1f336, { 0xfe0f } },
+ { 0x1fad1, { } },
+ { 0x1f952, { } },
+ { 0x1f96c, { } },
+ { 0x1f966, { } },
+ { 0x1f9c4, { } },
+ { 0x1f9c5, { } },
+ { 0x1f95c, { } },
+ { 0x1fad8, { } },
+ { 0x1f330, { } },
+ { 0x1fada, { } },
+ { 0x1fadb, { } },
+ { 0x1f35e, { } },
+ { 0x1f950, { } },
+ { 0x1f956, { } },
+ { 0x1fad3, { } },
+ { 0x1f968, { } },
+ { 0x1f96f, { } },
+ { 0x1f95e, { } },
+ { 0x1f9c7, { } },
+ { 0x1f9c0, { } },
+ { 0x1f356, { } },
+ { 0x1f357, { } },
+ { 0x1f969, { } },
+ { 0x1f953, { } },
+ { 0x1f354, { } },
+ { 0x1f35f, { } },
+ { 0x1f355, { } },
+ { 0x1f32d, { } },
+ { 0x1f96a, { } },
+ { 0x1f32e, { } },
+ { 0x1f32f, { } },
+ { 0x1fad4, { } },
+ { 0x1f959, { } },
+ { 0x1f9c6, { } },
+ { 0x1f95a, { } },
+ { 0x1f373, { } },
+ { 0x1f958, { } },
+ { 0x1f372, { } },
+ { 0x1fad5, { } },
+ { 0x1f963, { } },
+ { 0x1f957, { } },
+ { 0x1f37f, { } },
+ { 0x1f9c8, { } },
+ { 0x1f9c2, { } },
+ { 0x1f96b, { } },
+ { 0x1f371, { } },
+ { 0x1f358, { } },
+ { 0x1f359, { } },
+ { 0x1f35a, { } },
+ { 0x1f35b, { } },
+ { 0x1f35c, { } },
+ { 0x1f35d, { } },
+ { 0x1f360, { } },
+ { 0x1f362, { } },
+ { 0x1f363, { } },
+ { 0x1f364, { } },
+ { 0x1f365, { } },
+ { 0x1f96e, { } },
+ { 0x1f361, { } },
+ { 0x1f95f, { } },
+ { 0x1f960, { } },
+ { 0x1f961, { } },
+ { 0x1f980, { } },
+ { 0x1f99e, { } },
+ { 0x1f990, { } },
+ { 0x1f991, { } },
+ { 0x1f9aa, { } },
+ { 0x1f366, { } },
+ { 0x1f367, { } },
+ { 0x1f368, { } },
+ { 0x1f369, { } },
+ { 0x1f36a, { } },
+ { 0x1f382, { } },
+ { 0x1f370, { } },
+ { 0x1f9c1, { } },
+ { 0x1f967, { } },
+ { 0x1f36b, { } },
+ { 0x1f36c, { } },
+ { 0x1f36d, { } },
+ { 0x1f36e, { } },
+ { 0x1f36f, { } },
+ { 0x1f37c, { } },
+ { 0x1f95b, { } },
+ { 0x2615, { } },
+ { 0x1fad6, { } },
+ { 0x1f375, { } },
+ { 0x1f376, { } },
+ { 0x1f37e, { } },
+ { 0x1f377, { } },
+ { 0x1f378, { } },
+ { 0x1f379, { } },
+ { 0x1f37a, { } },
+ { 0x1f37b, { } },
+ { 0x1f942, { } },
+ { 0x1f943, { } },
+ { 0x1fad7, { } },
+ { 0x1f964, { } },
+ { 0x1f9cb, { } },
+ { 0x1f9c3, { } },
+ { 0x1f9c9, { } },
+ { 0x1f9ca, { } },
+ { 0x1f962, { } },
+ { 0x1f37d, { 0xfe0f } },
+ { 0x1f374, { } },
+ { 0x1f944, { } },
+ { 0x1f52a, { } },
+ { 0x1fad9, { } },
+ { 0x1f3fa, { } },
+ { 0x1f30d, { } },
+ { 0x1f30e, { } },
+ { 0x1f30f, { } },
+ { 0x1f310, { } },
+ { 0x1f5fa, { 0xfe0f } },
+ { 0x1f5fe, { } },
+ { 0x1f9ed, { } },
+ { 0x1f3d4, { 0xfe0f } },
+ { 0x26f0, { 0xfe0f } },
+ { 0x1f30b, { } },
+ { 0x1f5fb, { } },
+ { 0x1f3d5, { 0xfe0f } },
+ { 0x1f3d6, { 0xfe0f } },
+ { 0x1f3dc, { 0xfe0f } },
+ { 0x1f3dd, { 0xfe0f } },
+ { 0x1f3de, { 0xfe0f } },
+ { 0x1f3df, { 0xfe0f } },
+ { 0x1f3db, { 0xfe0f } },
+ { 0x1f3d7, { 0xfe0f } },
+ { 0x1f9f1, { } },
+ { 0x1faa8, { } },
+ { 0x1fab5, { } },
+ { 0x1f6d6, { } },
+ { 0x1f3d8, { 0xfe0f } },
+ { 0x1f3da, { 0xfe0f } },
+ { 0x1f3e0, { } },
+ { 0x1f3e1, { } },
+ { 0x1f3e2, { } },
+ { 0x1f3e3, { } },
+ { 0x1f3e4, { } },
+ { 0x1f3e5, { } },
+ { 0x1f3e6, { } },
+ { 0x1f3e8, { } },
+ { 0x1f3e9, { } },
+ { 0x1f3ea, { } },
+ { 0x1f3eb, { } },
+ { 0x1f3ec, { } },
+ { 0x1f3ed, { } },
+ { 0x1f3ef, { } },
+ { 0x1f3f0, { } },
+ { 0x1f492, { } },
+ { 0x1f5fc, { } },
+ { 0x1f5fd, { } },
+ { 0x26ea, { } },
+ { 0x1f54c, { } },
+ { 0x1f6d5, { } },
+ { 0x1f54d, { } },
+ { 0x26e9, { 0xfe0f } },
+ { 0x1f54b, { } },
+ { 0x26f2, { } },
+ { 0x26fa, { } },
+ { 0x1f301, { } },
+ { 0x1f303, { } },
+ { 0x1f3d9, { 0xfe0f } },
+ { 0x1f304, { } },
+ { 0x1f305, { } },
+ { 0x1f306, { } },
+ { 0x1f307, { } },
+ { 0x1f309, { } },
+ { 0x2668, { 0xfe0f } },
+ { 0x1f3a0, { } },
+ { 0x1f6dd, { } },
+ { 0x1f3a1, { } },
+ { 0x1f3a2, { } },
+ { 0x1f488, { } },
+ { 0x1f3aa, { } },
+ { 0x1f682, { } },
+ { 0x1f683, { } },
+ { 0x1f684, { } },
+ { 0x1f685, { } },
+ { 0x1f686, { } },
+ { 0x1f687, { } },
+ { 0x1f688, { } },
+ { 0x1f689, { } },
+ { 0x1f68a, { } },
+ { 0x1f69d, { } },
+ { 0x1f69e, { } },
+ { 0x1f68b, { } },
+ { 0x1f68c, { } },
+ { 0x1f68d, { } },
+ { 0x1f68e, { } },
+ { 0x1f690, { } },
+ { 0x1f691, { } },
+ { 0x1f692, { } },
+ { 0x1f693, { } },
+ { 0x1f694, { } },
+ { 0x1f695, { } },
+ { 0x1f696, { } },
+ { 0x1f697, { } },
+ { 0x1f698, { } },
+ { 0x1f699, { } },
+ { 0x1f6fb, { } },
+ { 0x1f69a, { } },
+ { 0x1f69b, { } },
+ { 0x1f69c, { } },
+ { 0x1f3ce, { 0xfe0f } },
+ { 0x1f3cd, { 0xfe0f } },
+ { 0x1f6f5, { } },
+ { 0x1f9bd, { } },
+ { 0x1f9bc, { } },
+ { 0x1f6fa, { } },
+ { 0x1f6b2, { } },
+ { 0x1f6f4, { } },
+ { 0x1f6f9, { } },
+ { 0x1f6fc, { } },
+ { 0x1f68f, { } },
+ { 0x1f6e3, { 0xfe0f } },
+ { 0x1f6e4, { 0xfe0f } },
+ { 0x1f6e2, { 0xfe0f } },
+ { 0x26fd, { } },
+ { 0x1f6de, { } },
+ { 0x1f6a8, { } },
+ { 0x1f6a5, { } },
+ { 0x1f6a6, { } },
+ { 0x1f6d1, { } },
+ { 0x1f6a7, { } },
+ { 0x2693, { } },
+ { 0x1f6df, { } },
+ { 0x26f5, { } },
+ { 0x1f6f6, { } },
+ { 0x1f6a4, { } },
+ { 0x1f6f3, { 0xfe0f } },
+ { 0x26f4, { 0xfe0f } },
+ { 0x1f6e5, { 0xfe0f } },
+ { 0x1f6a2, { } },
+ { 0x2708, { 0xfe0f } },
+ { 0x1f6e9, { 0xfe0f } },
+ { 0x1f6eb, { } },
+ { 0x1f6ec, { } },
+ { 0x1fa82, { } },
+ { 0x1f4ba, { } },
+ { 0x1f681, { } },
+ { 0x1f69f, { } },
+ { 0x1f6a0, { } },
+ { 0x1f6a1, { } },
+ { 0x1f6f0, { 0xfe0f } },
+ { 0x1f680, { } },
+ { 0x1f6f8, { } },
+ { 0x1f6ce, { 0xfe0f } },
+ { 0x1f9f3, { } },
+ { 0x231b, { } },
+ { 0x23f3, { } },
+ { 0x231a, { } },
+ { 0x23f0, { } },
+ { 0x23f1, { 0xfe0f } },
+ { 0x23f2, { 0xfe0f } },
+ { 0x1f570, { 0xfe0f } },
+ { 0x1f55b, { } },
+ { 0x1f567, { } },
+ { 0x1f550, { } },
+ { 0x1f55c, { } },
+ { 0x1f551, { } },
+ { 0x1f55d, { } },
+ { 0x1f552, { } },
+ { 0x1f55e, { } },
+ { 0x1f553, { } },
+ { 0x1f55f, { } },
+ { 0x1f554, { } },
+ { 0x1f560, { } },
+ { 0x1f555, { } },
+ { 0x1f561, { } },
+ { 0x1f556, { } },
+ { 0x1f562, { } },
+ { 0x1f557, { } },
+ { 0x1f563, { } },
+ { 0x1f558, { } },
+ { 0x1f564, { } },
+ { 0x1f559, { } },
+ { 0x1f565, { } },
+ { 0x1f55a, { } },
+ { 0x1f566, { } },
+ { 0x1f311, { } },
+ { 0x1f312, { } },
+ { 0x1f313, { } },
+ { 0x1f314, { } },
+ { 0x1f315, { } },
+ { 0x1f316, { } },
+ { 0x1f317, { } },
+ { 0x1f318, { } },
+ { 0x1f319, { } },
+ { 0x1f31a, { } },
+ { 0x1f31b, { } },
+ { 0x1f31c, { } },
+ { 0x1f321, { 0xfe0f } },
+ { 0x2600, { 0xfe0f } },
+ { 0x1f31d, { } },
+ { 0x1f31e, { } },
+ { 0x1fa90, { } },
+ { 0x2b50, { } },
+ { 0x1f31f, { } },
+ { 0x1f320, { } },
+ { 0x1f30c, { } },
+ { 0x2601, { 0xfe0f } },
+ { 0x26c5, { } },
+ { 0x26c8, { 0xfe0f } },
+ { 0x1f324, { 0xfe0f } },
+ { 0x1f325, { 0xfe0f } },
+ { 0x1f326, { 0xfe0f } },
+ { 0x1f327, { 0xfe0f } },
+ { 0x1f328, { 0xfe0f } },
+ { 0x1f329, { 0xfe0f } },
+ { 0x1f32a, { 0xfe0f } },
+ { 0x1f32b, { 0xfe0f } },
+ { 0x1f32c, { 0xfe0f } },
+ { 0x1f300, { } },
+ { 0x1f308, { } },
+ { 0x1f302, { } },
+ { 0x2602, { 0xfe0f } },
+ { 0x2614, { } },
+ { 0x26f1, { 0xfe0f } },
+ { 0x26a1, { } },
+ { 0x2744, { 0xfe0f } },
+ { 0x2603, { 0xfe0f } },
+ { 0x26c4, { } },
+ { 0x2604, { 0xfe0f } },
+ { 0x1f525, { } },
+ { 0x1f4a7, { } },
+ { 0x1f30a, { } },
+ { 0x1f383, { } },
+ { 0x1f384, { } },
+ { 0x1f386, { } },
+ { 0x1f387, { } },
+ { 0x1f9e8, { } },
+ { 0x2728, { } },
+ { 0x1f388, { } },
+ { 0x1f389, { } },
+ { 0x1f38a, { } },
+ { 0x1f38b, { } },
+ { 0x1f38d, { } },
+ { 0x1f38e, { } },
+ { 0x1f38f, { } },
+ { 0x1f390, { } },
+ { 0x1f391, { } },
+ { 0x1f9e7, { } },
+ { 0x1f380, { } },
+ { 0x1f381, { } },
+ { 0x1f397, { 0xfe0f } },
+ { 0x1f39f, { 0xfe0f } },
+ { 0x1f3ab, { } },
+ { 0x1f396, { 0xfe0f } },
+ { 0x1f3c6, { } },
+ { 0x1f3c5, { } },
+ { 0x1f947, { } },
+ { 0x1f948, { } },
+ { 0x1f949, { } },
+ { 0x26bd, { } },
+ { 0x26be, { } },
+ { 0x1f94e, { } },
+ { 0x1f3c0, { } },
+ { 0x1f3d0, { } },
+ { 0x1f3c8, { } },
+ { 0x1f3c9, { } },
+ { 0x1f3be, { } },
+ { 0x1f94f, { } },
+ { 0x1f3b3, { } },
+ { 0x1f3cf, { } },
+ { 0x1f3d1, { } },
+ { 0x1f3d2, { } },
+ { 0x1f94d, { } },
+ { 0x1f3d3, { } },
+ { 0x1f3f8, { } },
+ { 0x1f94a, { } },
+ { 0x1f94b, { } },
+ { 0x1f945, { } },
+ { 0x26f3, { } },
+ { 0x26f8, { 0xfe0f } },
+ { 0x1f3a3, { } },
+ { 0x1f93f, { } },
+ { 0x1f3bd, { } },
+ { 0x1f3bf, { } },
+ { 0x1f6f7, { } },
+ { 0x1f94c, { } },
+ { 0x1f3af, { } },
+ { 0x1fa80, { } },
+ { 0x1fa81, { } },
+ { 0x1f52b, { } },
+ { 0x1f3b1, { } },
+ { 0x1f52e, { } },
+ { 0x1fa84, { } },
+ { 0x1f3ae, { } },
+ { 0x1f579, { 0xfe0f } },
+ { 0x1f3b0, { } },
+ { 0x1f3b2, { } },
+ { 0x1f9e9, { } },
+ { 0x1f9f8, { } },
+ { 0x1fa85, { } },
+ { 0x1faa9, { } },
+ { 0x1fa86, { } },
+ { 0x2660, { 0xfe0f } },
+ { 0x2665, { 0xfe0f } },
+ { 0x2666, { 0xfe0f } },
+ { 0x2663, { 0xfe0f } },
+ { 0x265f, { 0xfe0f } },
+ { 0x1f0cf, { } },
+ { 0x1f004, { } },
+ { 0x1f3b4, { } },
+ { 0x1f3ad, { } },
+ { 0x1f5bc, { 0xfe0f } },
+ { 0x1f3a8, { } },
+ { 0x1f9f5, { } },
+ { 0x1faa1, { } },
+ { 0x1f9f6, { } },
+ { 0x1faa2, { } },
+ { 0x1f453, { } },
+ { 0x1f576, { 0xfe0f } },
+ { 0x1f97d, { } },
+ { 0x1f97c, { } },
+ { 0x1f9ba, { } },
+ { 0x1f454, { } },
+ { 0x1f455, { } },
+ { 0x1f456, { } },
+ { 0x1f9e3, { } },
+ { 0x1f9e4, { } },
+ { 0x1f9e5, { } },
+ { 0x1f9e6, { } },
+ { 0x1f457, { } },
+ { 0x1f458, { } },
+ { 0x1f97b, { } },
+ { 0x1fa71, { } },
+ { 0x1fa72, { } },
+ { 0x1fa73, { } },
+ { 0x1f459, { } },
+ { 0x1f45a, { } },
+ { 0x1faad, { } },
+ { 0x1f45b, { } },
+ { 0x1f45c, { } },
+ { 0x1f45d, { } },
+ { 0x1f6cd, { 0xfe0f } },
+ { 0x1f392, { } },
+ { 0x1fa74, { } },
+ { 0x1f45e, { } },
+ { 0x1f45f, { } },
+ { 0x1f97e, { } },
+ { 0x1f97f, { } },
+ { 0x1f460, { } },
+ { 0x1f461, { } },
+ { 0x1fa70, { } },
+ { 0x1f462, { } },
+ { 0x1faae, { } },
+ { 0x1f451, { } },
+ { 0x1f452, { } },
+ { 0x1f3a9, { } },
+ { 0x1f393, { } },
+ { 0x1f9e2, { } },
+ { 0x1fa96, { } },
+ { 0x26d1, { 0xfe0f } },
+ { 0x1f4ff, { } },
+ { 0x1f484, { } },
+ { 0x1f48d, { } },
+ { 0x1f48e, { } },
+ { 0x1f507, { } },
+ { 0x1f508, { } },
+ { 0x1f509, { } },
+ { 0x1f50a, { } },
+ { 0x1f4e2, { } },
+ { 0x1f4e3, { } },
+ { 0x1f4ef, { } },
+ { 0x1f514, { } },
+ { 0x1f515, { } },
+ { 0x1f3bc, { } },
+ { 0x1f3b5, { } },
+ { 0x1f3b6, { } },
+ { 0x1f399, { 0xfe0f } },
+ { 0x1f39a, { 0xfe0f } },
+ { 0x1f39b, { 0xfe0f } },
+ { 0x1f3a4, { } },
+ { 0x1f3a7, { } },
+ { 0x1f4fb, { } },
+ { 0x1f3b7, { } },
+ { 0x1fa97, { } },
+ { 0x1f3b8, { } },
+ { 0x1f3b9, { } },
+ { 0x1f3ba, { } },
+ { 0x1f3bb, { } },
+ { 0x1fa95, { } },
+ { 0x1f941, { } },
+ { 0x1fa98, { } },
+ { 0x1fa87, { } },
+ { 0x1fa88, { } },
+ { 0x1f4f1, { } },
+ { 0x1f4f2, { } },
+ { 0x260e, { 0xfe0f } },
+ { 0x1f4de, { } },
+ { 0x1f4df, { } },
+ { 0x1f4e0, { } },
+ { 0x1f50b, { } },
+ { 0x1faab, { } },
+ { 0x1f50c, { } },
+ { 0x1f4bb, { } },
+ { 0x1f5a5, { 0xfe0f } },
+ { 0x1f5a8, { 0xfe0f } },
+ { 0x2328, { 0xfe0f } },
+ { 0x1f5b1, { 0xfe0f } },
+ { 0x1f5b2, { 0xfe0f } },
+ { 0x1f4bd, { } },
+ { 0x1f4be, { } },
+ { 0x1f4bf, { } },
+ { 0x1f4c0, { } },
+ { 0x1f9ee, { } },
+ { 0x1f3a5, { } },
+ { 0x1f39e, { 0xfe0f } },
+ { 0x1f4fd, { 0xfe0f } },
+ { 0x1f3ac, { } },
+ { 0x1f4fa, { } },
+ { 0x1f4f7, { } },
+ { 0x1f4f8, { } },
+ { 0x1f4f9, { } },
+ { 0x1f4fc, { } },
+ { 0x1f50d, { } },
+ { 0x1f50e, { } },
+ { 0x1f56f, { 0xfe0f } },
+ { 0x1f4a1, { } },
+ { 0x1f526, { } },
+ { 0x1f3ee, { } },
+ { 0x1fa94, { } },
+ { 0x1f4d4, { } },
+ { 0x1f4d5, { } },
+ { 0x1f4d6, { } },
+ { 0x1f4d7, { } },
+ { 0x1f4d8, { } },
+ { 0x1f4d9, { } },
+ { 0x1f4da, { } },
+ { 0x1f4d3, { } },
+ { 0x1f4d2, { } },
+ { 0x1f4c3, { } },
+ { 0x1f4dc, { } },
+ { 0x1f4c4, { } },
+ { 0x1f4f0, { } },
+ { 0x1f5de, { 0xfe0f } },
+ { 0x1f4d1, { } },
+ { 0x1f516, { } },
+ { 0x1f3f7, { 0xfe0f } },
+ { 0x1f4b0, { } },
+ { 0x1fa99, { } },
+ { 0x1f4b4, { } },
+ { 0x1f4b5, { } },
+ { 0x1f4b6, { } },
+ { 0x1f4b7, { } },
+ { 0x1f4b8, { } },
+ { 0x1f4b3, { } },
+ { 0x1f9fe, { } },
+ { 0x1f4b9, { } },
+ { 0x2709, { 0xfe0f } },
+ { 0x1f4e7, { } },
+ { 0x1f4e8, { } },
+ { 0x1f4e9, { } },
+ { 0x1f4e4, { } },
+ { 0x1f4e5, { } },
+ { 0x1f4e6, { } },
+ { 0x1f4eb, { } },
+ { 0x1f4ea, { } },
+ { 0x1f4ec, { } },
+ { 0x1f4ed, { } },
+ { 0x1f4ee, { } },
+ { 0x1f5f3, { 0xfe0f } },
+ { 0x270f, { 0xfe0f } },
+ { 0x2712, { 0xfe0f } },
+ { 0x1f58b, { 0xfe0f } },
+ { 0x1f58a, { 0xfe0f } },
+ { 0x1f58c, { 0xfe0f } },
+ { 0x1f58d, { 0xfe0f } },
+ { 0x1f4dd, { } },
+ { 0x1f4bc, { } },
+ { 0x1f4c1, { } },
+ { 0x1f4c2, { } },
+ { 0x1f5c2, { 0xfe0f } },
+ { 0x1f4c5, { } },
+ { 0x1f4c6, { } },
+ { 0x1f5d2, { 0xfe0f } },
+ { 0x1f5d3, { 0xfe0f } },
+ { 0x1f4c7, { } },
+ { 0x1f4c8, { } },
+ { 0x1f4c9, { } },
+ { 0x1f4ca, { } },
+ { 0x1f4cb, { } },
+ { 0x1f4cc, { } },
+ { 0x1f4cd, { } },
+ { 0x1f4ce, { } },
+ { 0x1f587, { 0xfe0f } },
+ { 0x1f4cf, { } },
+ { 0x1f4d0, { } },
+ { 0x2702, { 0xfe0f } },
+ { 0x1f5c3, { 0xfe0f } },
+ { 0x1f5c4, { 0xfe0f } },
+ { 0x1f5d1, { 0xfe0f } },
+ { 0x1f512, { } },
+ { 0x1f513, { } },
+ { 0x1f50f, { } },
+ { 0x1f510, { } },
+ { 0x1f511, { } },
+ { 0x1f5dd, { 0xfe0f } },
+ { 0x1f528, { } },
+ { 0x1fa93, { } },
+ { 0x26cf, { 0xfe0f } },
+ { 0x2692, { 0xfe0f } },
+ { 0x1f6e0, { 0xfe0f } },
+ { 0x1f5e1, { 0xfe0f } },
+ { 0x2694, { 0xfe0f } },
+ { 0x1f4a3, { } },
+ { 0x1fa83, { } },
+ { 0x1f3f9, { } },
+ { 0x1f6e1, { 0xfe0f } },
+ { 0x1fa9a, { } },
+ { 0x1f527, { } },
+ { 0x1fa9b, { } },
+ { 0x1f529, { } },
+ { 0x2699, { 0xfe0f } },
+ { 0x1f5dc, { 0xfe0f } },
+ { 0x2696, { 0xfe0f } },
+ { 0x1f9af, { } },
+ { 0x1f517, { } },
+ { 0x26d3, { 0xfe0f } },
+ { 0x1fa9d, { } },
+ { 0x1f9f0, { } },
+ { 0x1f9f2, { } },
+ { 0x1fa9c, { } },
+ { 0x2697, { 0xfe0f } },
+ { 0x1f9ea, { } },
+ { 0x1f9eb, { } },
+ { 0x1f9ec, { } },
+ { 0x1f52c, { } },
+ { 0x1f52d, { } },
+ { 0x1f4e1, { } },
+ { 0x1f489, { } },
+ { 0x1fa78, { } },
+ { 0x1f48a, { } },
+ { 0x1fa79, { } },
+ { 0x1fa7c, { } },
+ { 0x1fa7a, { } },
+ { 0x1fa7b, { } },
+ { 0x1f6aa, { } },
+ { 0x1f6d7, { } },
+ { 0x1fa9e, { } },
+ { 0x1fa9f, { } },
+ { 0x1f6cf, { 0xfe0f } },
+ { 0x1f6cb, { 0xfe0f } },
+ { 0x1fa91, { } },
+ { 0x1f6bd, { } },
+ { 0x1faa0, { } },
+ { 0x1f6bf, { } },
+ { 0x1f6c1, { } },
+ { 0x1faa4, { } },
+ { 0x1fa92, { } },
+ { 0x1f9f4, { } },
+ { 0x1f9f7, { } },
+ { 0x1f9f9, { } },
+ { 0x1f9fa, { } },
+ { 0x1f9fb, { } },
+ { 0x1faa3, { } },
+ { 0x1f9fc, { } },
+ { 0x1fae7, { } },
+ { 0x1faa5, { } },
+ { 0x1f9fd, { } },
+ { 0x1f9ef, { } },
+ { 0x1f6d2, { } },
+ { 0x1f6ac, { } },
+ { 0x26b0, { 0xfe0f } },
+ { 0x1faa6, { } },
+ { 0x26b1, { 0xfe0f } },
+ { 0x1f9ff, { } },
+ { 0x1faac, { } },
+ { 0x1f5ff, { } },
+ { 0x1faa7, { } },
+ { 0x1faaa, { } },
+ { 0x1f3e7, { } },
+ { 0x1f6ae, { } },
+ { 0x1f6b0, { } },
+ { 0x267f, { } },
+ { 0x1f6b9, { } },
+ { 0x1f6ba, { } },
+ { 0x1f6bb, { } },
+ { 0x1f6bc, { } },
+ { 0x1f6be, { } },
+ { 0x1f6c2, { } },
+ { 0x1f6c3, { } },
+ { 0x1f6c4, { } },
+ { 0x1f6c5, { } },
+ { 0x26a0, { 0xfe0f } },
+ { 0x1f6b8, { } },
+ { 0x26d4, { } },
+ { 0x1f6ab, { } },
+ { 0x1f6b3, { } },
+ { 0x1f6ad, { } },
+ { 0x1f6af, { } },
+ { 0x1f6b1, { } },
+ { 0x1f6b7, { } },
+ { 0x1f4f5, { } },
+ { 0x1f51e, { } },
+ { 0x2622, { 0xfe0f } },
+ { 0x2623, { 0xfe0f } },
+ { 0x2b06, { 0xfe0f } },
+ { 0x2197, { 0xfe0f } },
+ { 0x27a1, { 0xfe0f } },
+ { 0x2198, { 0xfe0f } },
+ { 0x2b07, { 0xfe0f } },
+ { 0x2199, { 0xfe0f } },
+ { 0x2b05, { 0xfe0f } },
+ { 0x2196, { 0xfe0f } },
+ { 0x2195, { 0xfe0f } },
+ { 0x2194, { 0xfe0f } },
+ { 0x21a9, { 0xfe0f } },
+ { 0x21aa, { 0xfe0f } },
+ { 0x2934, { 0xfe0f } },
+ { 0x2935, { 0xfe0f } },
+ { 0x1f503, { } },
+ { 0x1f504, { } },
+ { 0x1f519, { } },
+ { 0x1f51a, { } },
+ { 0x1f51b, { } },
+ { 0x1f51c, { } },
+ { 0x1f51d, { } },
+ { 0x1f6d0, { } },
+ { 0x269b, { 0xfe0f } },
+ { 0x1f549, { 0xfe0f } },
+ { 0x2721, { 0xfe0f } },
+ { 0x2638, { 0xfe0f } },
+ { 0x262f, { 0xfe0f } },
+ { 0x271d, { 0xfe0f } },
+ { 0x2626, { 0xfe0f } },
+ { 0x262a, { 0xfe0f } },
+ { 0x262e, { 0xfe0f } },
+ { 0x1f54e, { } },
+ { 0x1f52f, { } },
+ { 0x1faaf, { } },
+ { 0x2648, { } },
+ { 0x2649, { } },
+ { 0x264a, { } },
+ { 0x264b, { } },
+ { 0x264c, { } },
+ { 0x264d, { } },
+ { 0x264e, { } },
+ { 0x264f, { } },
+ { 0x2650, { } },
+ { 0x2651, { } },
+ { 0x2652, { } },
+ { 0x2653, { } },
+ { 0x26ce, { } },
+ { 0x1f500, { } },
+ { 0x1f501, { } },
+ { 0x1f502, { } },
+ { 0x25b6, { 0xfe0f } },
+ { 0x23e9, { } },
+ { 0x23ed, { 0xfe0f } },
+ { 0x23ef, { 0xfe0f } },
+ { 0x25c0, { 0xfe0f } },
+ { 0x23ea, { } },
+ { 0x23ee, { 0xfe0f } },
+ { 0x1f53c, { } },
+ { 0x23eb, { } },
+ { 0x1f53d, { } },
+ { 0x23ec, { } },
+ { 0x23f8, { 0xfe0f } },
+ { 0x23f9, { 0xfe0f } },
+ { 0x23fa, { 0xfe0f } },
+ { 0x23cf, { 0xfe0f } },
+ { 0x1f3a6, { } },
+ { 0x1f505, { } },
+ { 0x1f506, { } },
+ { 0x1f4f6, { } },
+ { 0x1f6dc, { } },
+ { 0x1f4f3, { } },
+ { 0x1f4f4, { } },
+ { 0x2640, { 0xfe0f } },
+ { 0x2642, { 0xfe0f } },
+ { 0x26a7, { 0xfe0f } },
+ { 0x2716, { 0xfe0f } },
+ { 0x2795, { } },
+ { 0x2796, { } },
+ { 0x2797, { } },
+ { 0x1f7f0, { } },
+ { 0x267e, { 0xfe0f } },
+ { 0x203c, { 0xfe0f } },
+ { 0x2049, { 0xfe0f } },
+ { 0x2753, { } },
+ { 0x2754, { } },
+ { 0x2755, { } },
+ { 0x2757, { } },
+ { 0x3030, { 0xfe0f } },
+ { 0x1f4b1, { } },
+ { 0x1f4b2, { } },
+ { 0x2695, { 0xfe0f } },
+ { 0x267b, { 0xfe0f } },
+ { 0x269c, { 0xfe0f } },
+ { 0x1f531, { } },
+ { 0x1f4db, { } },
+ { 0x1f530, { } },
+ { 0x2b55, { } },
+ { 0x2705, { } },
+ { 0x2611, { 0xfe0f } },
+ { 0x2714, { 0xfe0f } },
+ { 0x274c, { } },
+ { 0x274e, { } },
+ { 0x27b0, { } },
+ { 0x27bf, { } },
+ { 0x303d, { 0xfe0f } },
+ { 0x2733, { 0xfe0f } },
+ { 0x2734, { 0xfe0f } },
+ { 0x2747, { 0xfe0f } },
+ { 0xa9, { 0xfe0f } },
+ { 0xae, { 0xfe0f } },
+ { 0x2122, { 0xfe0f } },
+ { 0x23, { 0xfe0f, 0x20e3 } },
+ { 0x2a, { 0xfe0f, 0x20e3 } },
+ { 0x30, { 0xfe0f, 0x20e3 } },
+ { 0x31, { 0xfe0f, 0x20e3 } },
+ { 0x32, { 0xfe0f, 0x20e3 } },
+ { 0x33, { 0xfe0f, 0x20e3 } },
+ { 0x34, { 0xfe0f, 0x20e3 } },
+ { 0x35, { 0xfe0f, 0x20e3 } },
+ { 0x36, { 0xfe0f, 0x20e3 } },
+ { 0x37, { 0xfe0f, 0x20e3 } },
+ { 0x38, { 0xfe0f, 0x20e3 } },
+ { 0x39, { 0xfe0f, 0x20e3 } },
+ { 0x1f51f, { } },
+ { 0x1f520, { } },
+ { 0x1f521, { } },
+ { 0x1f522, { } },
+ { 0x1f523, { } },
+ { 0x1f524, { } },
+ { 0x1f170, { 0xfe0f } },
+ { 0x1f18e, { } },
+ { 0x1f171, { 0xfe0f } },
+ { 0x1f191, { } },
+ { 0x1f192, { } },
+ { 0x1f193, { } },
+ { 0x2139, { 0xfe0f } },
+ { 0x1f194, { } },
+ { 0x24c2, { 0xfe0f } },
+ { 0x1f195, { } },
+ { 0x1f196, { } },
+ { 0x1f17e, { 0xfe0f } },
+ { 0x1f197, { } },
+ { 0x1f17f, { 0xfe0f } },
+ { 0x1f198, { } },
+ { 0x1f199, { } },
+ { 0x1f19a, { } },
+ { 0x1f201, { } },
+ { 0x1f202, { 0xfe0f } },
+ { 0x1f237, { 0xfe0f } },
+ { 0x1f236, { } },
+ { 0x1f22f, { } },
+ { 0x1f250, { } },
+ { 0x1f239, { } },
+ { 0x1f21a, { } },
+ { 0x1f232, { } },
+ { 0x1f251, { } },
+ { 0x1f238, { } },
+ { 0x1f234, { } },
+ { 0x1f233, { } },
+ { 0x3297, { 0xfe0f } },
+ { 0x3299, { 0xfe0f } },
+ { 0x1f23a, { } },
+ { 0x1f235, { } },
+ { 0x1f534, { } },
+ { 0x1f7e0, { } },
+ { 0x1f7e1, { } },
+ { 0x1f7e2, { } },
+ { 0x1f535, { } },
+ { 0x1f7e3, { } },
+ { 0x1f7e4, { } },
+ { 0x26ab, { } },
+ { 0x26aa, { } },
+ { 0x1f7e5, { } },
+ { 0x1f7e7, { } },
+ { 0x1f7e8, { } },
+ { 0x1f7e9, { } },
+ { 0x1f7e6, { } },
+ { 0x1f7ea, { } },
+ { 0x1f7eb, { } },
+ { 0x2b1b, { } },
+ { 0x2b1c, { } },
+ { 0x25fc, { 0xfe0f } },
+ { 0x25fb, { 0xfe0f } },
+ { 0x25fe, { } },
+ { 0x25fd, { } },
+ { 0x25aa, { 0xfe0f } },
+ { 0x25ab, { 0xfe0f } },
+ { 0x1f536, { } },
+ { 0x1f537, { } },
+ { 0x1f538, { } },
+ { 0x1f539, { } },
+ { 0x1f53a, { } },
+ { 0x1f53b, { } },
+ { 0x1f4a0, { } },
+ { 0x1f518, { } },
+ { 0x1f533, { } },
+ { 0x1f532, { } },
+ { 0x1f3c1, { } },
+ { 0x1f6a9, { } },
+ { 0x1f38c, { } },
+ { 0x1f3f4, { } },
+ { 0x1f3f3, { 0xfe0f } },
+ { 0x1f3f3, { 0xfe0f, 0x200d, 0x1f308 } },
+ { 0x1f3f3, { 0xfe0f, 0x200d, 0x26a7, 0xfe0f } },
+ { 0x1f3f4, { 0x200d, 0x2620, 0xfe0f } },
+ { 0x1f1e6, { 0x1f1e8 } },
+ { 0x1f1e6, { 0x1f1e9 } },
+ { 0x1f1e6, { 0x1f1ea } },
+ { 0x1f1e6, { 0x1f1eb } },
+ { 0x1f1e6, { 0x1f1ec } },
+ { 0x1f1e6, { 0x1f1ee } },
+ { 0x1f1e6, { 0x1f1f1 } },
+ { 0x1f1e6, { 0x1f1f2 } },
+ { 0x1f1e6, { 0x1f1f4 } },
+ { 0x1f1e6, { 0x1f1f6 } },
+ { 0x1f1e6, { 0x1f1f7 } },
+ { 0x1f1e6, { 0x1f1f8 } },
+ { 0x1f1e6, { 0x1f1f9 } },
+ { 0x1f1e6, { 0x1f1fa } },
+ { 0x1f1e6, { 0x1f1fc } },
+ { 0x1f1e6, { 0x1f1fd } },
+ { 0x1f1e6, { 0x1f1ff } },
+ { 0x1f1e7, { 0x1f1e6 } },
+ { 0x1f1e7, { 0x1f1e7 } },
+ { 0x1f1e7, { 0x1f1e9 } },
+ { 0x1f1e7, { 0x1f1ea } },
+ { 0x1f1e7, { 0x1f1eb } },
+ { 0x1f1e7, { 0x1f1ec } },
+ { 0x1f1e7, { 0x1f1ed } },
+ { 0x1f1e7, { 0x1f1ee } },
+ { 0x1f1e7, { 0x1f1ef } },
+ { 0x1f1e7, { 0x1f1f1 } },
+ { 0x1f1e7, { 0x1f1f2 } },
+ { 0x1f1e7, { 0x1f1f3 } },
+ { 0x1f1e7, { 0x1f1f4 } },
+ { 0x1f1e7, { 0x1f1f6 } },
+ { 0x1f1e7, { 0x1f1f7 } },
+ { 0x1f1e7, { 0x1f1f8 } },
+ { 0x1f1e7, { 0x1f1f9 } },
+ { 0x1f1e7, { 0x1f1fb } },
+ { 0x1f1e7, { 0x1f1fc } },
+ { 0x1f1e7, { 0x1f1fe } },
+ { 0x1f1e7, { 0x1f1ff } },
+ { 0x1f1e8, { 0x1f1e6 } },
+ { 0x1f1e8, { 0x1f1e8 } },
+ { 0x1f1e8, { 0x1f1e9 } },
+ { 0x1f1e8, { 0x1f1eb } },
+ { 0x1f1e8, { 0x1f1ec } },
+ { 0x1f1e8, { 0x1f1ed } },
+ { 0x1f1e8, { 0x1f1ee } },
+ { 0x1f1e8, { 0x1f1f0 } },
+ { 0x1f1e8, { 0x1f1f1 } },
+ { 0x1f1e8, { 0x1f1f2 } },
+ { 0x1f1e8, { 0x1f1f3 } },
+ { 0x1f1e8, { 0x1f1f4 } },
+ { 0x1f1e8, { 0x1f1f5 } },
+ { 0x1f1e8, { 0x1f1f7 } },
+ { 0x1f1e8, { 0x1f1fa } },
+ { 0x1f1e8, { 0x1f1fb } },
+ { 0x1f1e8, { 0x1f1fc } },
+ { 0x1f1e8, { 0x1f1fd } },
+ { 0x1f1e8, { 0x1f1fe } },
+ { 0x1f1e8, { 0x1f1ff } },
+ { 0x1f1e9, { 0x1f1ea } },
+ { 0x1f1e9, { 0x1f1ec } },
+ { 0x1f1e9, { 0x1f1ef } },
+ { 0x1f1e9, { 0x1f1f0 } },
+ { 0x1f1e9, { 0x1f1f2 } },
+ { 0x1f1e9, { 0x1f1f4 } },
+ { 0x1f1e9, { 0x1f1ff } },
+ { 0x1f1ea, { 0x1f1e6 } },
+ { 0x1f1ea, { 0x1f1e8 } },
+ { 0x1f1ea, { 0x1f1ea } },
+ { 0x1f1ea, { 0x1f1ec } },
+ { 0x1f1ea, { 0x1f1ed } },
+ { 0x1f1ea, { 0x1f1f7 } },
+ { 0x1f1ea, { 0x1f1f8 } },
+ { 0x1f1ea, { 0x1f1f9 } },
+ { 0x1f1ea, { 0x1f1fa } },
+ { 0x1f1eb, { 0x1f1ee } },
+ { 0x1f1eb, { 0x1f1ef } },
+ { 0x1f1eb, { 0x1f1f0 } },
+ { 0x1f1eb, { 0x1f1f2 } },
+ { 0x1f1eb, { 0x1f1f4 } },
+ { 0x1f1eb, { 0x1f1f7 } },
+ { 0x1f1ec, { 0x1f1e6 } },
+ { 0x1f1ec, { 0x1f1e7 } },
+ { 0x1f1ec, { 0x1f1e9 } },
+ { 0x1f1ec, { 0x1f1ea } },
+ { 0x1f1ec, { 0x1f1eb } },
+ { 0x1f1ec, { 0x1f1ec } },
+ { 0x1f1ec, { 0x1f1ed } },
+ { 0x1f1ec, { 0x1f1ee } },
+ { 0x1f1ec, { 0x1f1f1 } },
+ { 0x1f1ec, { 0x1f1f2 } },
+ { 0x1f1ec, { 0x1f1f3 } },
+ { 0x1f1ec, { 0x1f1f5 } },
+ { 0x1f1ec, { 0x1f1f6 } },
+ { 0x1f1ec, { 0x1f1f7 } },
+ { 0x1f1ec, { 0x1f1f8 } },
+ { 0x1f1ec, { 0x1f1f9 } },
+ { 0x1f1ec, { 0x1f1fa } },
+ { 0x1f1ec, { 0x1f1fc } },
+ { 0x1f1ec, { 0x1f1fe } },
+ { 0x1f1ed, { 0x1f1f0 } },
+ { 0x1f1ed, { 0x1f1f2 } },
+ { 0x1f1ed, { 0x1f1f3 } },
+ { 0x1f1ed, { 0x1f1f7 } },
+ { 0x1f1ed, { 0x1f1f9 } },
+ { 0x1f1ed, { 0x1f1fa } },
+ { 0x1f1ee, { 0x1f1e8 } },
+ { 0x1f1ee, { 0x1f1e9 } },
+ { 0x1f1ee, { 0x1f1ea } },
+ { 0x1f1ee, { 0x1f1f1 } },
+ { 0x1f1ee, { 0x1f1f2 } },
+ { 0x1f1ee, { 0x1f1f3 } },
+ { 0x1f1ee, { 0x1f1f4 } },
+ { 0x1f1ee, { 0x1f1f6 } },
+ { 0x1f1ee, { 0x1f1f7 } },
+ { 0x1f1ee, { 0x1f1f8 } },
+ { 0x1f1ee, { 0x1f1f9 } },
+ { 0x1f1ef, { 0x1f1ea } },
+ { 0x1f1ef, { 0x1f1f2 } },
+ { 0x1f1ef, { 0x1f1f4 } },
+ { 0x1f1ef, { 0x1f1f5 } },
+ { 0x1f1f0, { 0x1f1ea } },
+ { 0x1f1f0, { 0x1f1ec } },
+ { 0x1f1f0, { 0x1f1ed } },
+ { 0x1f1f0, { 0x1f1ee } },
+ { 0x1f1f0, { 0x1f1f2 } },
+ { 0x1f1f0, { 0x1f1f3 } },
+ { 0x1f1f0, { 0x1f1f5 } },
+ { 0x1f1f0, { 0x1f1f7 } },
+ { 0x1f1f0, { 0x1f1fc } },
+ { 0x1f1f0, { 0x1f1fe } },
+ { 0x1f1f0, { 0x1f1ff } },
+ { 0x1f1f1, { 0x1f1e6 } },
+ { 0x1f1f1, { 0x1f1e7 } },
+ { 0x1f1f1, { 0x1f1e8 } },
+ { 0x1f1f1, { 0x1f1ee } },
+ { 0x1f1f1, { 0x1f1f0 } },
+ { 0x1f1f1, { 0x1f1f7 } },
+ { 0x1f1f1, { 0x1f1f8 } },
+ { 0x1f1f1, { 0x1f1f9 } },
+ { 0x1f1f1, { 0x1f1fa } },
+ { 0x1f1f1, { 0x1f1fb } },
+ { 0x1f1f1, { 0x1f1fe } },
+ { 0x1f1f2, { 0x1f1e6 } },
+ { 0x1f1f2, { 0x1f1e8 } },
+ { 0x1f1f2, { 0x1f1e9 } },
+ { 0x1f1f2, { 0x1f1ea } },
+ { 0x1f1f2, { 0x1f1eb } },
+ { 0x1f1f2, { 0x1f1ec } },
+ { 0x1f1f2, { 0x1f1ed } },
+ { 0x1f1f2, { 0x1f1f0 } },
+ { 0x1f1f2, { 0x1f1f1 } },
+ { 0x1f1f2, { 0x1f1f2 } },
+ { 0x1f1f2, { 0x1f1f3 } },
+ { 0x1f1f2, { 0x1f1f4 } },
+ { 0x1f1f2, { 0x1f1f5 } },
+ { 0x1f1f2, { 0x1f1f6 } },
+ { 0x1f1f2, { 0x1f1f7 } },
+ { 0x1f1f2, { 0x1f1f8 } },
+ { 0x1f1f2, { 0x1f1f9 } },
+ { 0x1f1f2, { 0x1f1fa } },
+ { 0x1f1f2, { 0x1f1fb } },
+ { 0x1f1f2, { 0x1f1fc } },
+ { 0x1f1f2, { 0x1f1fd } },
+ { 0x1f1f2, { 0x1f1fe } },
+ { 0x1f1f2, { 0x1f1ff } },
+ { 0x1f1f3, { 0x1f1e6 } },
+ { 0x1f1f3, { 0x1f1e8 } },
+ { 0x1f1f3, { 0x1f1ea } },
+ { 0x1f1f3, { 0x1f1eb } },
+ { 0x1f1f3, { 0x1f1ec } },
+ { 0x1f1f3, { 0x1f1ee } },
+ { 0x1f1f3, { 0x1f1f1 } },
+ { 0x1f1f3, { 0x1f1f4 } },
+ { 0x1f1f3, { 0x1f1f5 } },
+ { 0x1f1f3, { 0x1f1f7 } },
+ { 0x1f1f3, { 0x1f1fa } },
+ { 0x1f1f3, { 0x1f1ff } },
+ { 0x1f1f4, { 0x1f1f2 } },
+ { 0x1f1f5, { 0x1f1e6 } },
+ { 0x1f1f5, { 0x1f1ea } },
+ { 0x1f1f5, { 0x1f1eb } },
+ { 0x1f1f5, { 0x1f1ec } },
+ { 0x1f1f5, { 0x1f1ed } },
+ { 0x1f1f5, { 0x1f1f0 } },
+ { 0x1f1f5, { 0x1f1f1 } },
+ { 0x1f1f5, { 0x1f1f2 } },
+ { 0x1f1f5, { 0x1f1f3 } },
+ { 0x1f1f5, { 0x1f1f7 } },
+ { 0x1f1f5, { 0x1f1f8 } },
+ { 0x1f1f5, { 0x1f1f9 } },
+ { 0x1f1f5, { 0x1f1fc } },
+ { 0x1f1f5, { 0x1f1fe } },
+ { 0x1f1f6, { 0x1f1e6 } },
+ { 0x1f1f7, { 0x1f1ea } },
+ { 0x1f1f7, { 0x1f1f4 } },
+ { 0x1f1f7, { 0x1f1f8 } },
+ { 0x1f1f7, { 0x1f1fa } },
+ { 0x1f1f7, { 0x1f1fc } },
+ { 0x1f1f8, { 0x1f1e6 } },
+ { 0x1f1f8, { 0x1f1e7 } },
+ { 0x1f1f8, { 0x1f1e8 } },
+ { 0x1f1f8, { 0x1f1e9 } },
+ { 0x1f1f8, { 0x1f1ea } },
+ { 0x1f1f8, { 0x1f1ec } },
+ { 0x1f1f8, { 0x1f1ed } },
+ { 0x1f1f8, { 0x1f1ee } },
+ { 0x1f1f8, { 0x1f1ef } },
+ { 0x1f1f8, { 0x1f1f0 } },
+ { 0x1f1f8, { 0x1f1f1 } },
+ { 0x1f1f8, { 0x1f1f2 } },
+ { 0x1f1f8, { 0x1f1f3 } },
+ { 0x1f1f8, { 0x1f1f4 } },
+ { 0x1f1f8, { 0x1f1f7 } },
+ { 0x1f1f8, { 0x1f1f8 } },
+ { 0x1f1f8, { 0x1f1f9 } },
+ { 0x1f1f8, { 0x1f1fb } },
+ { 0x1f1f8, { 0x1f1fd } },
+ { 0x1f1f8, { 0x1f1fe } },
+ { 0x1f1f8, { 0x1f1ff } },
+ { 0x1f1f9, { 0x1f1e6 } },
+ { 0x1f1f9, { 0x1f1e8 } },
+ { 0x1f1f9, { 0x1f1e9 } },
+ { 0x1f1f9, { 0x1f1eb } },
+ { 0x1f1f9, { 0x1f1ec } },
+ { 0x1f1f9, { 0x1f1ed } },
+ { 0x1f1f9, { 0x1f1ef } },
+ { 0x1f1f9, { 0x1f1f0 } },
+ { 0x1f1f9, { 0x1f1f1 } },
+ { 0x1f1f9, { 0x1f1f2 } },
+ { 0x1f1f9, { 0x1f1f3 } },
+ { 0x1f1f9, { 0x1f1f4 } },
+ { 0x1f1f9, { 0x1f1f7 } },
+ { 0x1f1f9, { 0x1f1f9 } },
+ { 0x1f1f9, { 0x1f1fb } },
+ { 0x1f1f9, { 0x1f1fc } },
+ { 0x1f1f9, { 0x1f1ff } },
+ { 0x1f1fa, { 0x1f1e6 } },
+ { 0x1f1fa, { 0x1f1ec } },
+ { 0x1f1fa, { 0x1f1f2 } },
+ { 0x1f1fa, { 0x1f1f3 } },
+ { 0x1f1fa, { 0x1f1f8 } },
+ { 0x1f1fa, { 0x1f1fe } },
+ { 0x1f1fa, { 0x1f1ff } },
+ { 0x1f1fb, { 0x1f1e6 } },
+ { 0x1f1fb, { 0x1f1e8 } },
+ { 0x1f1fb, { 0x1f1ea } },
+ { 0x1f1fb, { 0x1f1ec } },
+ { 0x1f1fb, { 0x1f1ee } },
+ { 0x1f1fb, { 0x1f1f3 } },
+ { 0x1f1fb, { 0x1f1fa } },
+ { 0x1f1fc, { 0x1f1eb } },
+ { 0x1f1fc, { 0x1f1f8 } },
+ { 0x1f1fd, { 0x1f1f0 } },
+ { 0x1f1fe, { 0x1f1ea } },
+ { 0x1f1fe, { 0x1f1f9 } },
+ { 0x1f1ff, { 0x1f1e6 } },
+ { 0x1f1ff, { 0x1f1f2 } },
+ { 0x1f1ff, { 0x1f1fc } },
+ { 0x1f3f4, { 0xe0067, 0xe0062, 0xe0065, 0xe006e, 0xe0067, 0xe007f } },
+ { 0x1f3f4, { 0xe0067, 0xe0062, 0xe0073, 0xe0063, 0xe0074, 0xe007f } },
+ { 0x1f3f4, { 0xe0067, 0xe0062, 0xe0077, 0xe006c, 0xe0073, 0xe007f } },
};
- bool codepoint_is_emoji(uint32_t codepoint) {
- return codepoint >= 0x1F000 && codepoint <= 0x1FB6F;
- }
+ bool match_emoji_sequence(const unsigned char *str, size_t size, uint32_t sequence[32], size_t &sequence_len, size_t &byte_length) {
+ uint32_t codepoint;
+ size_t clen;
+ if(!mgl::utf8_decode(str, size, &codepoint, &clen))
+ return false;
+
+ const size_t str_start_index = clen;
+ sequence[0] = codepoint;
+
+ auto range = emoji_sequences.equal_range(codepoint);
+ if(range.first == range.second)
+ return false;
+
+ auto longest_match_it = range.first;
+ size_t longest_match_byte_length = str_start_index;
+ bool match_found = false;
+
+ for(auto it = range.first, end = range.second; it != end; ++it) {
+ size_t str_index = str_start_index;
+
+ for(size_t i = 0; i < it->second.size(); ++i) {
+ const uint32_t codepoint_in_sequence = it->second[i];
+ if(codepoint_in_sequence == 0)
+ break;
+
+ if(str_index >= size)
+ goto next;
+
+ if(!mgl::utf8_decode(str + str_index, size - str_index, &codepoint, &clen))
+ goto next;
+
+ if(codepoint != codepoint_in_sequence)
+ goto next;
+
+ str_index += clen;
+ }
+
+ if(str_index >= longest_match_byte_length) {
+ longest_match_it = it;
+ longest_match_byte_length = str_index;
+ }
+
+ match_found = true;
+ next:;
+ }
+
+ if(!match_found)
+ return false;
+
+ size_t sequence_index = 1;
+ for(size_t i = 0; i < longest_match_it->second.size(); ++i) {
+ const uint32_t codepoint_in_sequence = longest_match_it->second[i];
+ if(codepoint_in_sequence == 0)
+ break;
+
+ sequence[sequence_index] = codepoint_in_sequence;
+ ++sequence_index;
+ }
- EmojiRectangle emoji_get_extents(uint32_t codepoint) {
- if(codepoint < 0x1F000 || codepoint - 0x1F000 >= 2928)
- return { 0, 0, 0, 0 };
- return emoji_extents[codepoint - 0x1F000];
+ sequence_len = sequence_index;
+ byte_length = longest_match_byte_length;
+ return true;
}
}
diff --git a/generated/Emoji.hpp b/generated/Emoji.hpp
index 89ebde3..0ba60b1 100644
--- a/generated/Emoji.hpp
+++ b/generated/Emoji.hpp
@@ -1,15 +1,10 @@
#pragma once
#include <stdint.h>
+#include <stddef.h>
-// This file was automatically generated with generate-emoji-sprite.py, do not edit manually!
+// This file was automatically generated with generate-emoji-sequences.py, do not edit manually!
namespace QuickMedia {
- struct EmojiRectangle {
- int x, y;
- int width, height;
- };
-
- bool codepoint_is_emoji(uint32_t codepoint);
- EmojiRectangle emoji_get_extents(uint32_t codepoint);
+ bool match_emoji_sequence(const unsigned char *str, size_t size, uint32_t sequence[32], size_t &sequence_len, size_t &byte_length);
} \ No newline at end of file
diff --git a/images/emoji.png b/images/emoji.png
deleted file mode 100644
index ec3d6db..0000000
--- a/images/emoji.png
+++ /dev/null
Binary files differ
diff --git a/include/Text.hpp b/include/Text.hpp
index fd1277f..1533380 100644
--- a/include/Text.hpp
+++ b/include/Text.hpp
@@ -23,9 +23,9 @@ namespace QuickMedia
{
struct TextElement
{
- enum class Type
- {
- TEXT
+ enum class Type {
+ TEXT,
+ IMAGE
};
enum class TextType {
@@ -36,18 +36,41 @@ namespace QuickMedia
};
TextElement() {}
- TextElement(std::string_view text, Type type) : text(text), type(type), text_type(TextType::LATIN) {}
+
+ void create_text(std::string_view text) {
+ this->text = text;
+ text_type = TextType::LATIN;
+ type = Type::TEXT;
+ }
+
+ // If size is {0, 0} then the image is drawn at its original size
+ void create_image(std::string url, bool local, mgl::vec2i size) {
+ this->url = std::move(url);
+ this->local = local;
+ this->size = size;
+ type = Type::IMAGE;
+ }
+ // TODO: union grouped
std::string_view text;
+ TextType text_type = TextType::LATIN;
+
+ // TODO: Remove these
+ std::string url;
+ bool local = false;
+ mgl::vec2i pos;
+ mgl::vec2i size;
+ int vertex_ref_index = 0; // Note: only used temporary within updateGeometry
+ int text_num_bytes = 0; // Note: only used temporary within updateGeometry
+
Type type;
- //bool ownLine; // Currently only used for emoji, to make emoji bigger when it's the only thing on a line
- TextType text_type;
};
struct VertexRef {
int vertices_index; // index to |vertices| VertexArray
int index; // index within vertices[vertices_index]
int line;
+ int text_num_bytes;
uint32_t codepoint;
};
@@ -61,6 +84,10 @@ namespace QuickMedia
void setString(std::string str);
const std::string& getString() const;
void appendText(const std::string &str);
+ // size = {0, 0} = keep original image size
+ void append_image(const std::string &url, bool local, mgl::vec2i size);
+ static std::string formatted_image(const std::string &url, bool local, mgl::vec2i size);
+ static std::string formatted_text(const std::string &text, mgl::Color color, bool bold);
void insert_text_at_caret_position(const std::string &str);
void set_position(float x, float y);
@@ -124,7 +151,7 @@ namespace QuickMedia
int getPreviousLineClosestPosition(int startIndex) const;
int getNextLineClosestPosition(int startIndex) const;
- void splitTextByFont();
+ void split_text_by_type(std::vector<TextElement> &text_elements, const std::string &str);
float font_get_real_height(mgl::Font *font);
float get_text_quad_left_side(const VertexRef &vertex_ref) const;
@@ -140,8 +167,8 @@ namespace QuickMedia
std::string str; // TODO: Remove this for non-editable text??? also replace with std::string? then we get more efficient editing of text
bool bold_font;
unsigned int characterSize;
- std::array<std::vector<mgl::Vertex>, 4> vertices;
- std::array<mgl::VertexBuffer, 4> vertex_buffers;
+ std::array<std::vector<mgl::Vertex>, 5> vertices;
+ std::array<mgl::VertexBuffer, 5> vertex_buffers;
float maxWidth;
mgl::vec2f position;
mgl::Color color;
diff --git a/install.sh b/install.sh
index 92c4044..ff06f82 100755
--- a/install.sh
+++ b/install.sh
@@ -5,6 +5,11 @@ cd "$script_dir"
[ $(id -u) -ne 0 ] && echo "You need root privileges to run the install script" && exit 1
+curl -sfL 'https://dec05eba.com/files/twemoji.zip' -o /tmp/twemoji.zip
+mkdir -p /usr/share/quickmedia/emoji
+unzip -uqq /tmp/twemoji.zip -d /usr/share/quickmedia/emoji/
+rm -f /tmp/twemoji.zip
+
sibs build --release video_player
sibs build --release
diff --git a/plugins/Youtube.hpp b/plugins/Youtube.hpp
index 6ce62e8..de8a0c3 100644
--- a/plugins/Youtube.hpp
+++ b/plugins/Youtube.hpp
@@ -86,15 +86,19 @@ namespace QuickMedia {
class YoutubeCommentRepliesPage : public LazyFetchPage {
public:
- YoutubeCommentRepliesPage(Program *program, const std::string &video_url, const std::string &continuation_token) : LazyFetchPage(program), video_url(video_url), continuation_token(continuation_token) {}
+ YoutubeCommentRepliesPage(Program *program, const std::string &video_url, const std::string &continuation_token, const BodyItem *replied_to_body_item) :
+ LazyFetchPage(program), video_url(video_url), continuation_token(continuation_token), replied_to_body_item(replied_to_body_item) {}
const char* get_title() const override { return "Comment replies"; }
PluginResult get_page(const std::string &str, int page, BodyItems &result_items) override;
PluginResult submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) override;
PluginResult lazy_fetch(BodyItems &result_items) override;
private:
+ PluginResult lazy_fetch(BodyItems &result_items, bool first_fetch);
+ private:
int current_page = 0;
std::string video_url;
std::string continuation_token;
+ const BodyItem *replied_to_body_item;
};
class YoutubeChannelPage : public LazyFetchPage, public TrackablePage {
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index e31b846..bbff6c6 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -387,7 +387,7 @@ namespace QuickMedia {
bool no_dialog = false;
for(int i = 1; i < argc; ++i) {
- if(!plugin_name) {
+ if(!plugin_name && argv[i][0] != '-') {
std::string youtube_url_converted = invidious_url_to_youtube_url(argv[i]);
std::string youtube_channel_id;
std::string youtube_video_id_dummy;
@@ -407,6 +407,12 @@ namespace QuickMedia {
break;
}
}
+
+ if(!plugin_name) {
+ fprintf(stderr, "\"%s\" is not a valid plugin/youtube url\n", argv[i]);
+ usage();
+ return -1;
+ }
}
if(strcmp(argv[i], "--no-video") == 0) {
@@ -6986,10 +6992,12 @@ namespace QuickMedia {
if(clipboard_success && !clipboard_text.empty() && get_file_type(clipboard_text) == FileType::REGULAR) {
const time_t now = time(nullptr);
- const struct tm *t = localtime(&now);
- char filename[256];
- strftime(filename, sizeof(filename)-1, "Clipboard_%Y-%m-%d_%H-%M-%S", t);
- strcat(filename, file_ext.c_str());
+ struct tm t;
+ localtime_r(&now, &t);
+ char filename[256] = {0};
+ const int num_bytes_written = strftime(filename, sizeof(filename)-1, "Clipboard_%Y-%m-%d_%H-%M-%S", &t);
+ if((int)sizeof(filename) - (num_bytes_written + file_ext.size()) >= 1)
+ strcat(filename, file_ext.c_str());
upload_file(clipboard_text, filename);
}
diff --git a/src/ResourceLoader.cpp b/src/ResourceLoader.cpp
index e5d16dd..e086ee7 100644
--- a/src/ResourceLoader.cpp
+++ b/src/ResourceLoader.cpp
@@ -49,7 +49,6 @@ namespace QuickMedia {
return true;
}
- fprintf(stderr, "Warning: failed to find font: %s\n", font_name.c_str());
return false;
}
}
diff --git a/src/Text.cpp b/src/Text.cpp
index d29c9b5..be31434 100644
--- a/src/Text.cpp
+++ b/src/Text.cpp
@@ -2,13 +2,19 @@
#include "../include/ResourceLoader.hpp"
#include "../include/Config.hpp"
#include "../include/Theme.hpp"
+#include "../include/AsyncImageLoader.hpp"
+#include "../include/StringUtils.hpp"
#include "../generated/Emoji.hpp"
+#include <string.h>
#include <mglpp/graphics/Rectangle.hpp>
#include <mglpp/window/Event.hpp>
#include <mglpp/window/Window.hpp>
#include <mglpp/graphics/Font.hpp>
#include <mglpp/graphics/Texture.hpp>
+#include <mglpp/graphics/Sprite.hpp>
#include <mglpp/system/Utf8.hpp>
+// TODO: Remove
+#include <sstream>
namespace QuickMedia
{
@@ -27,7 +33,16 @@ namespace QuickMedia
static const size_t FONT_INDEX_CJK = 1;
static const size_t FONT_INDEX_SYMBOLS = 2;
static const size_t FONT_INDEX_EMOJI = 3;
- static const size_t FONT_ARRAY_SIZE = 4;
+ static const size_t FONT_INDEX_IMAGE = 4;
+ static const size_t FONT_ARRAY_SIZE = 5;
+
+ static const uint8_t FORMATTED_TEXT_START = '\x02';
+ static const uint8_t FORMATTED_TEXT_END = '\x03';
+
+ enum class FormattedTextType : uint8_t {
+ TEXT,
+ IMAGE
+ };
Text::Text() :
bold_font(false),
@@ -111,6 +126,38 @@ namespace QuickMedia
dirtyText = true;
}
+ void Text::append_image(const std::string &url, bool local, mgl::vec2i size) {
+ str += Text::formatted_image(url, local, size);
+ }
+
+ // static
+ std::string Text::formatted_image(const std::string &url, bool local, mgl::vec2i size) {
+ std::string result;
+ result += FORMATTED_TEXT_START;
+ result += (uint8_t)FormattedTextType::IMAGE;
+ result.append((const char*)&size.x, sizeof(size.x));
+ result.append((const char*)&size.y, sizeof(size.y));
+ result.append((const char*)&local, sizeof(local));
+ result.append(url);
+ result += FORMATTED_TEXT_END;
+ return result;
+ }
+
+ // static
+ std::string Text::formatted_text(const std::string &text, mgl::Color color, bool bold) {
+ std::string result;
+ result += FORMATTED_TEXT_START;
+ result += (uint8_t)FormattedTextType::TEXT;
+ result += color.r;
+ result += color.g;
+ result += color.b;
+ result += color.a;
+ result += (uint8_t)bold;
+ result.append(text);
+ result += FORMATTED_TEXT_END;
+ return result;
+ }
+
void Text::insert_text_at_caret_position(const std::string &str) {
this->str.insert(caretIndex, str);
dirty = true;
@@ -299,7 +346,14 @@ namespace QuickMedia
return size;
}
- static size_t find_end_of_emoji(const char *str, size_t size) {
+ // TODO: Optimize, dont use ostringstream
+ static std::string codepoint_to_hex_str(uint32_t codepoint) {
+ std::ostringstream ss;
+ ss << std::hex << codepoint;
+ return ss.str();
+ }
+
+ static size_t find_end_of_symbol(const char *str, size_t size) {
for(size_t i = 0; i < size;) {
const unsigned char *cp = (const unsigned char*)&str[i];
uint32_t codepoint;
@@ -309,7 +363,7 @@ namespace QuickMedia
clen = 1;
}
- if(!codepoint_is_emoji(codepoint))
+ if(!is_symbol_codepoint(codepoint))
return i;
i += clen;
@@ -317,7 +371,11 @@ namespace QuickMedia
return size;
}
- static size_t find_end_of_symbol(const char *str, size_t size) {
+ static size_t find_end_latin(const char *str, size_t size) {
+ uint32_t emoji_sequence[32];
+ size_t emoji_sequence_length = 0;
+ size_t emoji_byte_length = 0;
+
for(size_t i = 0; i < size;) {
const unsigned char *cp = (const unsigned char*)&str[i];
uint32_t codepoint;
@@ -327,36 +385,80 @@ namespace QuickMedia
clen = 1;
}
- if(!is_symbol_codepoint(codepoint))
+ if(is_cjk_codepoint(codepoint) || is_symbol_codepoint(codepoint) || codepoint == FORMATTED_TEXT_START || match_emoji_sequence(cp, size - i, emoji_sequence, emoji_sequence_length, emoji_byte_length))
return i;
i += clen;
}
+
return size;
}
- static size_t find_end_latin(const char *str, size_t size) {
- for(size_t i = 0; i < size;) {
- const unsigned char *cp = (const unsigned char*)&str[i];
- uint32_t codepoint;
- size_t clen;
- if(!mgl::utf8_decode(cp, size - i, &codepoint, &clen)) {
- codepoint = *cp;
- clen = 1;
+// TODO:
+#if 0
+ static size_t parse_formatted_image(const char *str, size_t size, std::string &image_url, bool &image_local, mgl::vec2i &image_size) {
+ image_url.clear();
+ image_local = true;
+ image_size = { 0, 0 };
+
+ for(size_t i = 0; i < size; ++i) {
+ const char *cp = &str[i];
+ if(*cp == FORMATTED_TEXT_END) {
+ const size_t image_len = i;
+ if(image_len < sizeof(image_size.x) + sizeof(image_size.y) + sizeof(image_local))
+ return size;
+
+ memcpy(&image_size.x, str, sizeof(image_size.x));
+ memcpy(&image_size.y, str + sizeof(image_size.x), sizeof(image_size.y));
+ memcpy(&image_local, str + sizeof(image_size.x) + sizeof(image_size.y), sizeof(image_local));
+ const size_t image_url_index = sizeof(image_size.x) + sizeof(image_size.y) + sizeof(image_local);
+ image_url.assign(str + image_url_index, image_len - image_url_index);
+ return i + 1;
}
+ }
+ return size;
+ }
- if(is_cjk_codepoint(codepoint) || codepoint_is_emoji(codepoint) || is_symbol_codepoint(codepoint))
- return i;
+ static size_t parse_formatted_text(const char *str, size_t size, TextElement &text_element) {
+ if(size == 0)
+ return 0;
- i += clen;
+ FormattedTextType formatted_text_type = (FormattedTextType)*(uint8_t*)&str[0];
+ switch(formatted_text_type) {
+ case FormattedTextType::TEXT: {
+ text_element.type = TextElement::Type::TEXT;
+ // TODO:
+ //return parse_formatted_text(str + 1, size - 1, text_element)
+ }
+ case FormattedTextType::IMAGE: {
+ text_element.type = TextElement::Type::IMAGE;
+ return parse_formatted_image(str + 1, size - 1, text_element.url, text_element.local, text_element.size);
+ }
+ default:
+ break;
}
- return size;
+ return 0;
}
+#endif
+ void Text::split_text_by_type(std::vector<TextElement> &text_elements, const std::string &str) {
+ text_elements.clear();
- void Text::splitTextByFont() {
- textElements.clear();
+ mgl::Font *latin_font;
+ if(bold_font)
+ latin_font = FontLoader::get_font(FontLoader::FontType::LATIN_BOLD, characterSize);
+ else
+ latin_font = FontLoader::get_font(FontLoader::FontType::LATIN, characterSize);
+
+ const float vspace = font_get_real_height(latin_font);
size_t index = 0;
size_t size = str.size();
+
+ size_t offset;
+ uint32_t emoji_sequence[32];
+ size_t emoji_sequence_length = 0;
+ size_t emoji_byte_length = 0;
+ std::string emoji_codepoint_combined;
+
while(index < size) {
const unsigned char *cp = (const unsigned char*)&str[index];
uint32_t codepoint;
@@ -366,23 +468,77 @@ namespace QuickMedia
clen = 1;
}
- size_t offset;
- TextElement::TextType text_type = TextElement::TextType::LATIN;
+ TextElement text_element;
+
if(is_symbol_codepoint(codepoint)) {
- text_type = TextElement::TextType::SYMBOL;
offset = find_end_of_symbol(str.data() + index, size - index);
+
+ text_element.create_text(std::string_view(str.data() + index, offset));
+ text_element.text_type = TextElement::TextType::SYMBOL;
+ text_element.text_num_bytes = text_element.text.size();
+ text_elements.push_back(std::move(text_element));
} else if(is_cjk_codepoint(codepoint)) {
- text_type = TextElement::TextType::CJK;
offset = find_end_of_cjk(str.data() + index, size - index);
- } else if(codepoint_is_emoji(codepoint)) {
- text_type = TextElement::TextType::EMOJI;
- offset = find_end_of_emoji(str.data() + index, size - index);
+
+ text_element.create_text(std::string_view(str.data() + index, offset));
+ text_element.text_type = TextElement::TextType::CJK;
+ text_element.text_num_bytes = text_element.text.size();
+ text_elements.push_back(std::move(text_element));
+ } else if(codepoint == FORMATTED_TEXT_START) {
+ // TODO:
+ offset = 1;
+ #if 0
+ text_element.type = TextElement::Type::IMAGE;
+
+ index += 1;
+ offset = parse_formatted_text(str.data() + index, size - index, text_element);
+ text_element.text_num_bytes = ... // TODO
+ text_elements.push_back(std::move(text_element));
+ #endif
+ } else if(match_emoji_sequence((const unsigned char*)str.data() + index, size - index, emoji_sequence, emoji_sequence_length, emoji_byte_length)) {
+ offset = emoji_byte_length;
+
+ emoji_codepoint_combined.clear();
+ for(size_t i = 0; i < emoji_sequence_length; ++i) {
+ if(!emoji_codepoint_combined.empty())
+ emoji_codepoint_combined += '-';
+ emoji_codepoint_combined += codepoint_to_hex_str(emoji_sequence[i]);
+ }
+
+ // Twemoji issue
+ string_replace_all(emoji_codepoint_combined, "-fe0f-20e3", "-20e3");
+ if(emoji_codepoint_combined == "1f441-fe0f-200d-1f5e8-fe0f")
+ emoji_codepoint_combined = "1f441-200d-1f5e8";
+
+ std::string image_url;
+ bool image_local = false;
+ if(emoji_codepoint_combined != "1f3f3-fe0f-200d-26a7-fe0f") {
+ image_url = "/usr/share/quickmedia/emoji/" + emoji_codepoint_combined + ".png";
+ image_local = true;
+ } else {
+ image_url = "/home/dec05eba/Pictures/troonjak.png";
+ image_local = true;
+ }
+
+ text_element.create_text("E");
+ text_element.text_type = TextElement::TextType::EMOJI;
+ text_element.text = "E";
+ text_element.url = std::move(image_url);
+ text_element.local = image_local;
+ text_element.size = { (int)vspace, (int)vspace };
+ text_element.text_num_bytes = emoji_byte_length;
+ text_elements.push_back(std::move(text_element));
} else {
offset = find_end_latin(str.data() + index, size - index);
+
+ text_element.create_text(std::string_view(str.data() + index, offset));
+ text_element.text_type = TextElement::TextType::LATIN;
+ text_element.text_num_bytes = text_element.text.size();
+ text_elements.push_back(std::move(text_element));
}
- textElements.push_back({ std::string_view(str.data() + index, offset), TextElement::Type::TEXT });
- textElements.back().text_type = text_type;
+ // We never want an infinite loop even if there is a bug in the above code
+ offset = std::max(offset, (size_t)1);
index += offset;
}
}
@@ -451,7 +607,7 @@ namespace QuickMedia
if(dirtyText) {
assert(dirty);
dirtyText = false;
- splitTextByFont();
+ split_text_by_type(textElements, str);
// TODO: Optimize
if(highlight_urls) {
url_ranges = extract_urls(str);
@@ -480,7 +636,7 @@ namespace QuickMedia
const float latin_font_width = latin_font->get_glyph(' ').advance;
const float hspace = latin_font_width + characterSpacing;
const float vspace = font_get_real_height(latin_font);
- const float emoji_scale = vspace / 20.0f;
+ const float emoji_spacing = 2.0f;
const mgl::Color url_color = get_theme().url_text_color;
@@ -492,10 +648,48 @@ namespace QuickMedia
for(usize textElementIndex = 0; textElementIndex < textElements.size(); ++textElementIndex)
{
TextElement &textElement = textElements[textElementIndex];
+
mgl::Font *ff = latin_font;
int vertices_index = FONT_INDEX_LATIN;
- prevCodePoint = 0;
- if(textElement.text_type == TextElement::TextType::CJK) {
+ if(textElement.type == TextElement::Type::IMAGE) {
+ vertices_index = FONT_INDEX_IMAGE;
+ mgl::Color image_color(255, 255, 255, color.a);
+ int vertexStart = vertices[vertices_index].size();
+
+ if(prevCodePoint != 0)
+ glyphPos.x += emoji_spacing;
+
+ const float font_height_offset = 0.0f;//floor(vspace * 0.6f);
+ mgl::vec2f vertexTopLeft(glyphPos.x, glyphPos.y + font_height_offset - textElement.size.y * 0.5f);
+ mgl::vec2f vertexTopRight(glyphPos.x + textElement.size.x, glyphPos.y + font_height_offset - textElement.size.y * 0.5f);
+ mgl::vec2f vertexBottomLeft(glyphPos.x, glyphPos.y + font_height_offset + textElement.size.y * 0.5f);
+ mgl::vec2f vertexBottomRight(glyphPos.x + textElement.size.x, glyphPos.y + font_height_offset + textElement.size.y * 0.5f);
+
+ vertexTopLeft = vec2f_floor(vertexTopLeft);
+ vertexTopRight = vec2f_floor(vertexTopRight);
+ vertexBottomLeft = vec2f_floor(vertexBottomLeft);
+ vertexBottomRight = vec2f_floor(vertexBottomRight);
+
+ mgl::vec2f textureTopLeft(0.0f, 0.0f);
+ mgl::vec2f textureTopRight(0.0f + textElement.size.x, 0.0f);
+ mgl::vec2f textureBottomLeft(0.0f, 0.0f + textElement.size.y);
+ mgl::vec2f textureBottomRight(0.0f + textElement.size.x, 0.0f + textElement.size.y);
+
+ vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, image_color);
+ vertices[vertices_index].emplace_back(vertexTopLeft, textureTopLeft, image_color);
+ vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, image_color);
+ vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, image_color);
+ vertices[vertices_index].emplace_back(vertexBottomRight, textureBottomRight, image_color);
+ vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, image_color);
+
+ // TODO: Size.x update
+ glyphPos.x += floor(textElement.size.x) + characterSpacing + emoji_spacing;
+ textElement.vertex_ref_index = vertices_linear.size();
+ vertices_linear.push_back({vertices_index, vertexStart, 0, textElement.text_num_bytes, 'E'});
+
+ prevCodePoint = 0;
+ continue;
+ } else if(textElement.text_type == TextElement::TextType::CJK) {
ff = FontLoader::get_font(FontLoader::FontType::CJK, characterSize);
vertices_index = FONT_INDEX_CJK;
} else if(textElement.text_type == TextElement::TextType::SYMBOL) {
@@ -504,47 +698,41 @@ namespace QuickMedia
} else if(textElement.text_type == TextElement::TextType::EMOJI) {
vertices_index = FONT_INDEX_EMOJI;
mgl::Color emoji_color(255, 255, 255, color.a);
- for(size_t i = 0; i < textElement.text.size();)
- {
- const unsigned char *cp = (const unsigned char*)&textElement.text[i];
- uint32_t codepoint;
- size_t clen;
- if(!mgl::utf8_decode(cp, textElement.text.size() - i, &codepoint, &clen)) {
- codepoint = *cp;
- clen = 1;
- }
-
- int vertexStart = vertices[vertices_index].size();
- EmojiRectangle emoji_rec = emoji_get_extents(codepoint);
-
- const float font_height_offset = floor(vspace * 0.6f);
- mgl::vec2f vertexTopLeft(glyphPos.x, glyphPos.y + font_height_offset - floor(emoji_rec.height * emoji_scale) * 0.5f);
- mgl::vec2f vertexTopRight(glyphPos.x + floor(emoji_rec.width * emoji_scale), glyphPos.y + font_height_offset - floor(emoji_rec.height * emoji_scale) * 0.5f);
- mgl::vec2f vertexBottomLeft(glyphPos.x, glyphPos.y + font_height_offset + emoji_rec.height * emoji_scale * 0.5f);
- mgl::vec2f vertexBottomRight(glyphPos.x + floor(emoji_rec.width * emoji_scale), glyphPos.y + font_height_offset + floor(emoji_rec.height * emoji_scale) * 0.5f);
-
- vertexTopLeft = vec2f_floor(vertexTopLeft);
- vertexTopRight = vec2f_floor(vertexTopRight);
- vertexBottomLeft = vec2f_floor(vertexBottomLeft);
- vertexBottomRight = vec2f_floor(vertexBottomRight);
-
- mgl::vec2f textureTopLeft(emoji_rec.x, emoji_rec.y);
- mgl::vec2f textureTopRight(emoji_rec.x + emoji_rec.width, emoji_rec.y);
- mgl::vec2f textureBottomLeft(emoji_rec.x, emoji_rec.y + emoji_rec.height);
- mgl::vec2f textureBottomRight(emoji_rec.x + emoji_rec.width, emoji_rec.y + emoji_rec.height);
-
- vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, emoji_color);
- vertices[vertices_index].emplace_back(vertexTopLeft, textureTopLeft, emoji_color);
- vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, emoji_color);
- vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, emoji_color);
- vertices[vertices_index].emplace_back(vertexBottomRight, textureBottomRight, emoji_color);
- vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, emoji_color);
-
- glyphPos.x += floor(emoji_rec.width * emoji_scale) + characterSpacing;
- vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint});
- i += clen;
- }
+ int vertexStart = vertices[vertices_index].size();
+ const mgl::vec2f emoji_size = { vspace, vspace };
+
+ if(prevCodePoint != 0)
+ glyphPos.x += emoji_spacing;
+
+ const float font_height_offset = floor(vspace * 0.5f);
+ mgl::vec2f vertexTopLeft(glyphPos.x, glyphPos.y + font_height_offset - emoji_size.y * 0.5f);
+ mgl::vec2f vertexTopRight(glyphPos.x + emoji_size.x, glyphPos.y + font_height_offset - emoji_size.y * 0.5f);
+ mgl::vec2f vertexBottomLeft(glyphPos.x, glyphPos.y + font_height_offset + emoji_size.y * 0.5f);
+ mgl::vec2f vertexBottomRight(glyphPos.x + emoji_size.x, glyphPos.y + font_height_offset + emoji_size.y * 0.5f);
+
+ vertexTopLeft = vec2f_floor(vertexTopLeft);
+ vertexTopRight = vec2f_floor(vertexTopRight);
+ vertexBottomLeft = vec2f_floor(vertexBottomLeft);
+ vertexBottomRight = vec2f_floor(vertexBottomRight);
+
+ mgl::vec2f textureTopLeft(0.0f, 0.0f);
+ mgl::vec2f textureTopRight(0.0f + emoji_size.x, 0.0f);
+ mgl::vec2f textureBottomLeft(0.0f, 0.0f + emoji_size.y);
+ mgl::vec2f textureBottomRight(0.0f + emoji_size.x, 0.0f + emoji_size.y);
+
+ vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, emoji_color);
+ vertices[vertices_index].emplace_back(vertexTopLeft, textureTopLeft, emoji_color);
+ vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, emoji_color);
+ vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, emoji_color);
+ vertices[vertices_index].emplace_back(vertexBottomRight, textureBottomRight, emoji_color);
+ vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, emoji_color);
+
+ glyphPos.x += emoji_size.x + characterSpacing + emoji_spacing;
+ textElement.vertex_ref_index = vertices_linear.size();
+ vertices_linear.push_back({vertices_index, vertexStart, 0, textElement.text_num_bytes, 'E'});
+
+ prevCodePoint = 0;
continue;
}
@@ -600,7 +788,7 @@ namespace QuickMedia
vertices[vertices_index].emplace_back(vertexTopRight, mgl::vec2f(), mgl::Color(0, 0, 0, 0));
glyphPos.x += hspace;
- vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint});
+ vertices_linear.push_back({vertices_index, vertexStart, 0, (int)clen, codepoint});
break;
}
case '\t':
@@ -624,7 +812,7 @@ namespace QuickMedia
vertices[vertices_index].emplace_back(vertexTopRight, mgl::vec2f(), mgl::Color(0, 0, 0, 0));
glyphPos.x += char_width;
- vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint});
+ vertices_linear.push_back({vertices_index, vertexStart, 0, (int)clen, codepoint});
break;
}
case '\n':
@@ -648,7 +836,7 @@ namespace QuickMedia
glyphPos.x = 0.0f;
glyphPos.y += floor(vspace + lineSpacing);
- vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint});
+ vertices_linear.push_back({vertices_index, vertexStart, 0, (int)clen, codepoint});
break;
}
default: {
@@ -677,7 +865,7 @@ namespace QuickMedia
vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, text_color);
glyphPos.x += glyph.advance + characterSpacing;
- vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint});
+ vertices_linear.push_back({vertices_index, vertexStart, 0, (int)clen, codepoint});
break;
}
}
@@ -745,6 +933,15 @@ namespace QuickMedia
}
}
+ // TODO: Optimize
+ for(TextElement &textElement : textElements) {
+ if(textElement.text_type == TextElement::TextType::EMOJI || textElement.type == TextElement::Type::IMAGE) {
+ const VertexRef &vertex_ref = vertices_linear[textElement.vertex_ref_index];
+ const mgl::vec2f top_left_vertex_pos = vertices[vertex_ref.vertices_index][vertex_ref.index + 1].position;
+ textElement.pos = { (int)top_left_vertex_pos.x, (int)top_left_vertex_pos.y };
+ }
+ }
+
boundingBox.size.x = 0.0f;
for(VertexRef &vertex_ref : vertices_linear) {
boundingBox.size.x = std::max(boundingBox.size.x, get_text_quad_right_side(vertex_ref));
@@ -946,40 +1143,15 @@ namespace QuickMedia
// TODO: Optimize
size_t Text::get_string_index_from_caret_index(size_t caret_index) const {
- size_t codepoint_index = 0;
- for(size_t i = 0; i < str.size();) {
- if(codepoint_index == caret_index)
- return i;
-
- unsigned char *cp = (unsigned char*)&str[i];
- uint32_t codepoint;
- size_t clen;
- if(!mgl::utf8_decode(cp, str.size() - i, &codepoint, &clen)) {
- codepoint = *cp;
- clen = 1;
- }
-
- i += clen;
- ++codepoint_index;
- }
- return str.size();
- }
-
- static size_t utf8_get_length(const std::string &str) {
- size_t codepoint_index = 0;
- for(size_t i = 0; i < str.size();) {
- unsigned char *cp = (unsigned char*)&str[i];
- uint32_t codepoint;
- size_t clen;
- if(!mgl::utf8_decode(cp, str.size() - i, &codepoint, &clen)) {
- codepoint = *cp;
- clen = 1;
- }
+ size_t str_index = 0;
+ for(size_t i = 0; i < vertices_linear.size(); ++i) {
+ if(i == caret_index)
+ break;
- i += clen;
- ++codepoint_index;
+ auto &vertex = vertices_linear[i];
+ str_index += vertex.text_num_bytes;
}
- return codepoint_index;
+ return str_index;
}
// TODO: Optimize text editing by only processing the changed parts in updateGeometry.
@@ -1012,8 +1184,8 @@ namespace QuickMedia
else if(event.key.code == mgl::Keyboard::Backspace && caretIndex > 0)
{
const size_t str_index = get_string_index_from_caret_index(caretIndex);
- if(str_index > 0) {
- const size_t codepoint_start = mgl::utf8_get_start_of_codepoint((const unsigned char*)str.c_str(), str.size(), str_index - 1);
+ if(str_index > 0 && str_index <= str.size()) {
+ const size_t codepoint_start = str_index - vertices_linear[caretIndex - 1].text_num_bytes;
str.erase(codepoint_start, str_index - codepoint_start);
--caretIndex;
dirty = true;
@@ -1024,12 +1196,12 @@ namespace QuickMedia
else if(event.key.code == mgl::Keyboard::Delete && !caretAtEnd)
{
const size_t str_index = get_string_index_from_caret_index(caretIndex);
- uint32_t decoded_codepoint = 0;
- size_t decoded_length = 0;
- mgl::utf8_decode((const unsigned char*)str.c_str() + str_index, str.size() - str_index, &decoded_codepoint, &decoded_length);
- str.erase(str_index, decoded_length);
- dirty = true;
- dirtyText = true;
+ const size_t codepoint_end = str_index + vertices_linear[caretIndex].text_num_bytes;
+ if(str_index < str.size() && codepoint_end <= str.size()) {
+ str.erase(str_index, codepoint_end - str_index);
+ dirty = true;
+ dirtyText = true;
+ }
}
else if(event.key.code == mgl::Keyboard::D && event.key.control)
{
@@ -1079,7 +1251,7 @@ namespace QuickMedia
{
stringToAdd = window.get_clipboard_string();
}
- else if(event.text.codepoint >= 32 || (event.text.codepoint == '\t' && !single_line_edit))
+ else if(event.text.codepoint >= 32 || (event.text.codepoint == '\t' && !single_line_edit))
stringToAdd.assign(event.text.str, event.text.size);
else
return;
@@ -1091,7 +1263,14 @@ namespace QuickMedia
str.insert(str_index, stringToAdd);
}
- caretIndex += utf8_get_length(stringToAdd);
+ std::vector<TextElement> new_text_elements;
+ split_text_by_type(new_text_elements, stringToAdd);
+ for(auto &text_element : new_text_elements) {
+ if(text_element.type == TextElement::Type::IMAGE || text_element.text_type == TextElement::TextType::EMOJI)
+ caretIndex += 1;
+ else
+ caretIndex += text_element.text_num_bytes;
+ }
dirty = true;
dirtyText = true;
dirtyCaret = true;
@@ -1135,11 +1314,56 @@ namespace QuickMedia
target.draw(vertex_buffers[i]);
}
- if(vertex_buffers[FONT_INDEX_EMOJI].size() > 0) {
+ /*if(vertex_buffers[FONT_INDEX_EMOJI].size() > 0) {
vertex_buffers[FONT_INDEX_EMOJI].set_texture(TextureLoader::get_texture("images/emoji.png", true));
vertex_buffers[FONT_INDEX_EMOJI].set_position(pos);
target.draw(vertex_buffers[FONT_INDEX_EMOJI]);
+ }*/
+
+ // TODO: Use a new vector with only the image data instead of this.
+ // TODO: Sprite
+ mgl::Sprite sprite;
+ for(const TextElement &textElement : textElements) {
+ if(textElement.text_type == TextElement::TextType::EMOJI) {
+ auto emoji_data = AsyncImageLoader::get_instance().get_thumbnail(textElement.url, textElement.local, { (int)vspace, (int)vspace });
+ if(emoji_data->loading_state == LoadingState::FINISHED_LOADING) {
+ if(!emoji_data->texture.load_from_image(*emoji_data->image))
+ fprintf(stderr, "Warning: failed to load text emoji: %s\n", textElement.url.c_str());
+ emoji_data->image.reset();
+ emoji_data->loading_state = LoadingState::APPLIED_TO_TEXTURE;
+ }
+
+ if(emoji_data->loading_state == LoadingState::APPLIED_TO_TEXTURE) {
+ sprite.set_texture(&emoji_data->texture);
+ sprite.set_position(pos + textElement.pos.to_vec2f());
+ sprite.set_size(textElement.size.to_vec2f());
+ target.draw(sprite);
+ }
+ }
+ }
+
+ // TODO: Use a new vector with only the image data instead of this.
+ // TODO: Sprite
+ #if 0
+ for(const TextElement &textElement : textElements) {
+ if(textElement.type == TextElement::Type::IMAGE) {
+ auto thumbnail_data = AsyncImageLoader::get_instance().get_thumbnail(textElement.url, textElement.local, textElement.size);
+ if(thumbnail_data->loading_state == LoadingState::FINISHED_LOADING && thumbnail_data->image->get_size().x > 0 && thumbnail_data->image->get_size().y > 0) {
+ if(!thumbnail_data->texture.load_from_image(*thumbnail_data->image))
+ fprintf(stderr, "Warning: failed to load text image: %s\n", textElement.url.c_str());
+ thumbnail_data->image.reset();
+ thumbnail_data->loading_state = LoadingState::APPLIED_TO_TEXTURE;
+ }
+
+ if(thumbnail_data->loading_state == LoadingState::APPLIED_TO_TEXTURE) {
+ sprite.set_texture(&thumbnail_data->texture);
+ sprite.set_position(pos + textElement.pos.to_vec2f());
+ sprite.set_size(textElement.size.to_vec2f());
+ target.draw(sprite);
+ }
+ }
}
+ #endif
if(!editable) return true;
pos.y -= floor(vspace*1.25f);
diff --git a/src/plugins/Youtube.cpp b/src/plugins/Youtube.cpp
index 23e95c6..d3d498e 100644
--- a/src/plugins/Youtube.cpp
+++ b/src/plugins/Youtube.cpp
@@ -1139,7 +1139,9 @@ namespace QuickMedia {
PluginResult YoutubeCommentsPage::submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) {
if(args.url.empty())
return PluginResult::OK;
- result_tabs.push_back(Tab{create_body(), std::make_unique<YoutubeCommentRepliesPage>(program, video_url, args.url), nullptr});
+
+ const BodyItem *body_item = (BodyItem*)args.userdata;
+ result_tabs.push_back(Tab{create_body(), std::make_unique<YoutubeCommentRepliesPage>(program, video_url, args.url, body_item), nullptr});
return PluginResult::OK;
}
@@ -1266,6 +1268,7 @@ namespace QuickMedia {
}
body_item->set_description(std::move(description));
+ body_item->userdata = body_item.get();
return body_item;
}
@@ -1458,7 +1461,7 @@ namespace QuickMedia {
PluginResult YoutubeCommentRepliesPage::get_page(const std::string&, int page, BodyItems &result_items) {
while(current_page < page) {
- PluginResult plugin_result = lazy_fetch(result_items);
+ PluginResult plugin_result = lazy_fetch(result_items, false);
if(plugin_result != PluginResult::OK) return plugin_result;
++current_page;
}
@@ -1470,6 +1473,16 @@ namespace QuickMedia {
}
PluginResult YoutubeCommentRepliesPage::lazy_fetch(BodyItems &result_items) {
+ return lazy_fetch(result_items, true);
+ }
+
+ PluginResult YoutubeCommentRepliesPage::lazy_fetch(BodyItems &result_items, bool first_fetch) {
+ if(first_fetch) {
+ auto body_item = BodyItem::create("");
+ *body_item = *replied_to_body_item;
+ body_item->set_author("(OP) " + body_item->get_author());
+ result_items.push_back(std::move(body_item));
+ }
return fetch_comments(this, video_url, continuation_token, result_items);
}
diff --git a/tests/main.cpp b/tests/main.cpp
index 01f91a3..41ef45d 100644
--- a/tests/main.cpp
+++ b/tests/main.cpp
@@ -1,6 +1,8 @@
#include <stdio.h>
+#include <string.h>
#include "../include/NetUtils.hpp"
-#include "../plugins/EpisodeNameParser.hpp"
+#include "../plugins/utils/EpisodeNameParser.hpp"
+#include "../generated/Emoji.hpp"
#define assert_fail(str) do { fprintf(stderr, "Assert failed on line %d, reason: %s\n", __LINE__, (str)); exit(1); } while(0)
#define assert_equals(a, b) do { if((a) != (b)) { fprintf(stderr, "Assert failed on line %d, %s == %s\n", __LINE__, #a, #b); exit(1); } } while(0)
@@ -102,5 +104,13 @@ int main() {
assert_equals(name_parts4->season, "Yuukaku-hen");
assert_equals(name_parts4->episode, "11");
+ uint32_t emoji_sequence[32];
+ size_t emoji_sequence_length = 0;
+ size_t emoji_sequence_byte_length = 0;
+ const char *emoji = "\xF0\x9F\x8F\xB4\xE2\x80\x8D\xE2\x98\xA0\xEF\xB8\x8F";
+ assert_equals(match_emoji_sequence((const unsigned char*)emoji, strlen(emoji), emoji_sequence, emoji_sequence_length, emoji_sequence_byte_length), true);
+ assert_equals(emoji_sequence_length, 4);
+ assert_equals(emoji_sequence_byte_length, 13);
+
return 0;
}