diff options
Diffstat (limited to 'lib/unicode/prop/uprop_is_cwcf.c')
-rw-r--r-- | lib/unicode/prop/uprop_is_cwcf.c | 1012 |
1 files changed, 379 insertions, 633 deletions
diff --git a/lib/unicode/prop/uprop_is_cwcf.c b/lib/unicode/prop/uprop_is_cwcf.c index 809e4c5..246c354 100644 --- a/lib/unicode/prop/uprop_is_cwcf.c +++ b/lib/unicode/prop/uprop_is_cwcf.c @@ -1,646 +1,392 @@ /* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ -#include "_bsearch.h" #include "bitset.h" -#include "rune.h" #include "unicode/prop.h" -/* clang-format off */ - -static constexpr bitset(bs, LATIN1_MAX) = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, - 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, +static constexpr uint8_t stage1[] = { + 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 7, 6, 6, 8, 6, 6, 6, 6, 6, 6, 6, 6, 9, 6, 10, 11, + 6, 12, 6, 6, 13, 6, 6, 6, 6, 6, 6, 6, 14, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 15, 16, 6, 6, 6, 17, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 18, 6, 6, 6, 19, + 6, 6, 6, 6, 20, 21, 6, 6, 6, 6, 6, 6, 22, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 23, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 24, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 25, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, }; -static const struct { - rune lo, hi; -} lookup[] = { - {RUNE_C(0x000100), RUNE_C(0x000100)}, - {RUNE_C(0x000102), RUNE_C(0x000102)}, - {RUNE_C(0x000104), RUNE_C(0x000104)}, - {RUNE_C(0x000106), RUNE_C(0x000106)}, - {RUNE_C(0x000108), RUNE_C(0x000108)}, - {RUNE_C(0x00010A), RUNE_C(0x00010A)}, - {RUNE_C(0x00010C), RUNE_C(0x00010C)}, - {RUNE_C(0x00010E), RUNE_C(0x00010E)}, - {RUNE_C(0x000110), RUNE_C(0x000110)}, - {RUNE_C(0x000112), RUNE_C(0x000112)}, - {RUNE_C(0x000114), RUNE_C(0x000114)}, - {RUNE_C(0x000116), RUNE_C(0x000116)}, - {RUNE_C(0x000118), RUNE_C(0x000118)}, - {RUNE_C(0x00011A), RUNE_C(0x00011A)}, - {RUNE_C(0x00011C), RUNE_C(0x00011C)}, - {RUNE_C(0x00011E), RUNE_C(0x00011E)}, - {RUNE_C(0x000120), RUNE_C(0x000120)}, - {RUNE_C(0x000122), RUNE_C(0x000122)}, - {RUNE_C(0x000124), RUNE_C(0x000124)}, - {RUNE_C(0x000126), RUNE_C(0x000126)}, - {RUNE_C(0x000128), RUNE_C(0x000128)}, - {RUNE_C(0x00012A), RUNE_C(0x00012A)}, - {RUNE_C(0x00012C), RUNE_C(0x00012C)}, - {RUNE_C(0x00012E), RUNE_C(0x00012E)}, - {RUNE_C(0x000130), RUNE_C(0x000130)}, - {RUNE_C(0x000132), RUNE_C(0x000132)}, - {RUNE_C(0x000134), RUNE_C(0x000134)}, - {RUNE_C(0x000136), RUNE_C(0x000136)}, - {RUNE_C(0x000139), RUNE_C(0x000139)}, - {RUNE_C(0x00013B), RUNE_C(0x00013B)}, - {RUNE_C(0x00013D), RUNE_C(0x00013D)}, - {RUNE_C(0x00013F), RUNE_C(0x00013F)}, - {RUNE_C(0x000141), RUNE_C(0x000141)}, - {RUNE_C(0x000143), RUNE_C(0x000143)}, - {RUNE_C(0x000145), RUNE_C(0x000145)}, - {RUNE_C(0x000147), RUNE_C(0x000147)}, - {RUNE_C(0x000149), RUNE_C(0x00014A)}, - {RUNE_C(0x00014C), RUNE_C(0x00014C)}, - {RUNE_C(0x00014E), RUNE_C(0x00014E)}, - {RUNE_C(0x000150), RUNE_C(0x000150)}, - {RUNE_C(0x000152), RUNE_C(0x000152)}, - {RUNE_C(0x000154), RUNE_C(0x000154)}, - {RUNE_C(0x000156), RUNE_C(0x000156)}, - {RUNE_C(0x000158), RUNE_C(0x000158)}, - {RUNE_C(0x00015A), RUNE_C(0x00015A)}, - {RUNE_C(0x00015C), RUNE_C(0x00015C)}, - {RUNE_C(0x00015E), RUNE_C(0x00015E)}, - {RUNE_C(0x000160), RUNE_C(0x000160)}, - {RUNE_C(0x000162), RUNE_C(0x000162)}, - {RUNE_C(0x000164), RUNE_C(0x000164)}, - {RUNE_C(0x000166), RUNE_C(0x000166)}, - {RUNE_C(0x000168), RUNE_C(0x000168)}, - {RUNE_C(0x00016A), RUNE_C(0x00016A)}, - {RUNE_C(0x00016C), RUNE_C(0x00016C)}, - {RUNE_C(0x00016E), RUNE_C(0x00016E)}, - {RUNE_C(0x000170), RUNE_C(0x000170)}, - {RUNE_C(0x000172), RUNE_C(0x000172)}, - {RUNE_C(0x000174), RUNE_C(0x000174)}, - {RUNE_C(0x000176), RUNE_C(0x000176)}, - {RUNE_C(0x000178), RUNE_C(0x000179)}, - {RUNE_C(0x00017B), RUNE_C(0x00017B)}, - {RUNE_C(0x00017D), RUNE_C(0x00017D)}, - {RUNE_C(0x00017F), RUNE_C(0x00017F)}, - {RUNE_C(0x000181), RUNE_C(0x000182)}, - {RUNE_C(0x000184), RUNE_C(0x000184)}, - {RUNE_C(0x000186), RUNE_C(0x000187)}, - {RUNE_C(0x000189), RUNE_C(0x00018B)}, - {RUNE_C(0x00018E), RUNE_C(0x000191)}, - {RUNE_C(0x000193), RUNE_C(0x000194)}, - {RUNE_C(0x000196), RUNE_C(0x000198)}, - {RUNE_C(0x00019C), RUNE_C(0x00019D)}, - {RUNE_C(0x00019F), RUNE_C(0x0001A0)}, - {RUNE_C(0x0001A2), RUNE_C(0x0001A2)}, - {RUNE_C(0x0001A4), RUNE_C(0x0001A4)}, - {RUNE_C(0x0001A6), RUNE_C(0x0001A7)}, - {RUNE_C(0x0001A9), RUNE_C(0x0001A9)}, - {RUNE_C(0x0001AC), RUNE_C(0x0001AC)}, - {RUNE_C(0x0001AE), RUNE_C(0x0001AF)}, - {RUNE_C(0x0001B1), RUNE_C(0x0001B3)}, - {RUNE_C(0x0001B5), RUNE_C(0x0001B5)}, - {RUNE_C(0x0001B7), RUNE_C(0x0001B8)}, - {RUNE_C(0x0001BC), RUNE_C(0x0001BC)}, - {RUNE_C(0x0001C4), RUNE_C(0x0001C5)}, - {RUNE_C(0x0001C7), RUNE_C(0x0001C8)}, - {RUNE_C(0x0001CA), RUNE_C(0x0001CB)}, - {RUNE_C(0x0001CD), RUNE_C(0x0001CD)}, - {RUNE_C(0x0001CF), RUNE_C(0x0001CF)}, - {RUNE_C(0x0001D1), RUNE_C(0x0001D1)}, - {RUNE_C(0x0001D3), RUNE_C(0x0001D3)}, - {RUNE_C(0x0001D5), RUNE_C(0x0001D5)}, - {RUNE_C(0x0001D7), RUNE_C(0x0001D7)}, - {RUNE_C(0x0001D9), RUNE_C(0x0001D9)}, - {RUNE_C(0x0001DB), RUNE_C(0x0001DB)}, - {RUNE_C(0x0001DE), RUNE_C(0x0001DE)}, - {RUNE_C(0x0001E0), RUNE_C(0x0001E0)}, - {RUNE_C(0x0001E2), RUNE_C(0x0001E2)}, - {RUNE_C(0x0001E4), RUNE_C(0x0001E4)}, - {RUNE_C(0x0001E6), RUNE_C(0x0001E6)}, - {RUNE_C(0x0001E8), RUNE_C(0x0001E8)}, - {RUNE_C(0x0001EA), RUNE_C(0x0001EA)}, - {RUNE_C(0x0001EC), RUNE_C(0x0001EC)}, - {RUNE_C(0x0001EE), RUNE_C(0x0001EE)}, - {RUNE_C(0x0001F1), RUNE_C(0x0001F2)}, - {RUNE_C(0x0001F4), RUNE_C(0x0001F4)}, - {RUNE_C(0x0001F6), RUNE_C(0x0001F8)}, - {RUNE_C(0x0001FA), RUNE_C(0x0001FA)}, - {RUNE_C(0x0001FC), RUNE_C(0x0001FC)}, - {RUNE_C(0x0001FE), RUNE_C(0x0001FE)}, - {RUNE_C(0x000200), RUNE_C(0x000200)}, - {RUNE_C(0x000202), RUNE_C(0x000202)}, - {RUNE_C(0x000204), RUNE_C(0x000204)}, - {RUNE_C(0x000206), RUNE_C(0x000206)}, - {RUNE_C(0x000208), RUNE_C(0x000208)}, - {RUNE_C(0x00020A), RUNE_C(0x00020A)}, - {RUNE_C(0x00020C), RUNE_C(0x00020C)}, - {RUNE_C(0x00020E), RUNE_C(0x00020E)}, - {RUNE_C(0x000210), RUNE_C(0x000210)}, - {RUNE_C(0x000212), RUNE_C(0x000212)}, - {RUNE_C(0x000214), RUNE_C(0x000214)}, - {RUNE_C(0x000216), RUNE_C(0x000216)}, - {RUNE_C(0x000218), RUNE_C(0x000218)}, - {RUNE_C(0x00021A), RUNE_C(0x00021A)}, - {RUNE_C(0x00021C), RUNE_C(0x00021C)}, - {RUNE_C(0x00021E), RUNE_C(0x00021E)}, - {RUNE_C(0x000220), RUNE_C(0x000220)}, - {RUNE_C(0x000222), RUNE_C(0x000222)}, - {RUNE_C(0x000224), RUNE_C(0x000224)}, - {RUNE_C(0x000226), RUNE_C(0x000226)}, - {RUNE_C(0x000228), RUNE_C(0x000228)}, - {RUNE_C(0x00022A), RUNE_C(0x00022A)}, - {RUNE_C(0x00022C), RUNE_C(0x00022C)}, - {RUNE_C(0x00022E), RUNE_C(0x00022E)}, - {RUNE_C(0x000230), RUNE_C(0x000230)}, - {RUNE_C(0x000232), RUNE_C(0x000232)}, - {RUNE_C(0x00023A), RUNE_C(0x00023B)}, - {RUNE_C(0x00023D), RUNE_C(0x00023E)}, - {RUNE_C(0x000241), RUNE_C(0x000241)}, - {RUNE_C(0x000243), RUNE_C(0x000246)}, - {RUNE_C(0x000248), RUNE_C(0x000248)}, - {RUNE_C(0x00024A), RUNE_C(0x00024A)}, - {RUNE_C(0x00024C), RUNE_C(0x00024C)}, - {RUNE_C(0x00024E), RUNE_C(0x00024E)}, - {RUNE_C(0x000345), RUNE_C(0x000345)}, - {RUNE_C(0x000370), RUNE_C(0x000370)}, - {RUNE_C(0x000372), RUNE_C(0x000372)}, - {RUNE_C(0x000376), RUNE_C(0x000376)}, - {RUNE_C(0x00037F), RUNE_C(0x00037F)}, - {RUNE_C(0x000386), RUNE_C(0x000386)}, - {RUNE_C(0x000388), RUNE_C(0x00038A)}, - {RUNE_C(0x00038C), RUNE_C(0x00038C)}, - {RUNE_C(0x00038E), RUNE_C(0x00038F)}, - {RUNE_C(0x000391), RUNE_C(0x0003A1)}, - {RUNE_C(0x0003A3), RUNE_C(0x0003AB)}, - {RUNE_C(0x0003C2), RUNE_C(0x0003C2)}, - {RUNE_C(0x0003CF), RUNE_C(0x0003D1)}, - {RUNE_C(0x0003D5), RUNE_C(0x0003D6)}, - {RUNE_C(0x0003D8), RUNE_C(0x0003D8)}, - {RUNE_C(0x0003DA), RUNE_C(0x0003DA)}, - {RUNE_C(0x0003DC), RUNE_C(0x0003DC)}, - {RUNE_C(0x0003DE), RUNE_C(0x0003DE)}, - {RUNE_C(0x0003E0), RUNE_C(0x0003E0)}, - {RUNE_C(0x0003E2), RUNE_C(0x0003E2)}, - {RUNE_C(0x0003E4), RUNE_C(0x0003E4)}, - {RUNE_C(0x0003E6), RUNE_C(0x0003E6)}, - {RUNE_C(0x0003E8), RUNE_C(0x0003E8)}, - {RUNE_C(0x0003EA), RUNE_C(0x0003EA)}, - {RUNE_C(0x0003EC), RUNE_C(0x0003EC)}, - {RUNE_C(0x0003EE), RUNE_C(0x0003EE)}, - {RUNE_C(0x0003F0), RUNE_C(0x0003F1)}, - {RUNE_C(0x0003F4), RUNE_C(0x0003F5)}, - {RUNE_C(0x0003F7), RUNE_C(0x0003F7)}, - {RUNE_C(0x0003F9), RUNE_C(0x0003FA)}, - {RUNE_C(0x0003FD), RUNE_C(0x00042F)}, - {RUNE_C(0x000460), RUNE_C(0x000460)}, - {RUNE_C(0x000462), RUNE_C(0x000462)}, - {RUNE_C(0x000464), RUNE_C(0x000464)}, - {RUNE_C(0x000466), RUNE_C(0x000466)}, - {RUNE_C(0x000468), RUNE_C(0x000468)}, - {RUNE_C(0x00046A), RUNE_C(0x00046A)}, - {RUNE_C(0x00046C), RUNE_C(0x00046C)}, - {RUNE_C(0x00046E), RUNE_C(0x00046E)}, - {RUNE_C(0x000470), RUNE_C(0x000470)}, - {RUNE_C(0x000472), RUNE_C(0x000472)}, - {RUNE_C(0x000474), RUNE_C(0x000474)}, - {RUNE_C(0x000476), RUNE_C(0x000476)}, - {RUNE_C(0x000478), RUNE_C(0x000478)}, - {RUNE_C(0x00047A), RUNE_C(0x00047A)}, - {RUNE_C(0x00047C), RUNE_C(0x00047C)}, - {RUNE_C(0x00047E), RUNE_C(0x00047E)}, - {RUNE_C(0x000480), RUNE_C(0x000480)}, - {RUNE_C(0x00048A), RUNE_C(0x00048A)}, - {RUNE_C(0x00048C), RUNE_C(0x00048C)}, - {RUNE_C(0x00048E), RUNE_C(0x00048E)}, - {RUNE_C(0x000490), RUNE_C(0x000490)}, - {RUNE_C(0x000492), RUNE_C(0x000492)}, - {RUNE_C(0x000494), RUNE_C(0x000494)}, - {RUNE_C(0x000496), RUNE_C(0x000496)}, - {RUNE_C(0x000498), RUNE_C(0x000498)}, - {RUNE_C(0x00049A), RUNE_C(0x00049A)}, - {RUNE_C(0x00049C), RUNE_C(0x00049C)}, - {RUNE_C(0x00049E), RUNE_C(0x00049E)}, - {RUNE_C(0x0004A0), RUNE_C(0x0004A0)}, - {RUNE_C(0x0004A2), RUNE_C(0x0004A2)}, - {RUNE_C(0x0004A4), RUNE_C(0x0004A4)}, - {RUNE_C(0x0004A6), RUNE_C(0x0004A6)}, - {RUNE_C(0x0004A8), RUNE_C(0x0004A8)}, - {RUNE_C(0x0004AA), RUNE_C(0x0004AA)}, - {RUNE_C(0x0004AC), RUNE_C(0x0004AC)}, - {RUNE_C(0x0004AE), RUNE_C(0x0004AE)}, - {RUNE_C(0x0004B0), RUNE_C(0x0004B0)}, - {RUNE_C(0x0004B2), RUNE_C(0x0004B2)}, - {RUNE_C(0x0004B4), RUNE_C(0x0004B4)}, - {RUNE_C(0x0004B6), RUNE_C(0x0004B6)}, - {RUNE_C(0x0004B8), RUNE_C(0x0004B8)}, - {RUNE_C(0x0004BA), RUNE_C(0x0004BA)}, - {RUNE_C(0x0004BC), RUNE_C(0x0004BC)}, - {RUNE_C(0x0004BE), RUNE_C(0x0004BE)}, - {RUNE_C(0x0004C0), RUNE_C(0x0004C1)}, - {RUNE_C(0x0004C3), RUNE_C(0x0004C3)}, - {RUNE_C(0x0004C5), RUNE_C(0x0004C5)}, - {RUNE_C(0x0004C7), RUNE_C(0x0004C7)}, - {RUNE_C(0x0004C9), RUNE_C(0x0004C9)}, - {RUNE_C(0x0004CB), RUNE_C(0x0004CB)}, - {RUNE_C(0x0004CD), RUNE_C(0x0004CD)}, - {RUNE_C(0x0004D0), RUNE_C(0x0004D0)}, - {RUNE_C(0x0004D2), RUNE_C(0x0004D2)}, - {RUNE_C(0x0004D4), RUNE_C(0x0004D4)}, - {RUNE_C(0x0004D6), RUNE_C(0x0004D6)}, - {RUNE_C(0x0004D8), RUNE_C(0x0004D8)}, - {RUNE_C(0x0004DA), RUNE_C(0x0004DA)}, - {RUNE_C(0x0004DC), RUNE_C(0x0004DC)}, - {RUNE_C(0x0004DE), RUNE_C(0x0004DE)}, - {RUNE_C(0x0004E0), RUNE_C(0x0004E0)}, - {RUNE_C(0x0004E2), RUNE_C(0x0004E2)}, - {RUNE_C(0x0004E4), RUNE_C(0x0004E4)}, - {RUNE_C(0x0004E6), RUNE_C(0x0004E6)}, - {RUNE_C(0x0004E8), RUNE_C(0x0004E8)}, - {RUNE_C(0x0004EA), RUNE_C(0x0004EA)}, - {RUNE_C(0x0004EC), RUNE_C(0x0004EC)}, - {RUNE_C(0x0004EE), RUNE_C(0x0004EE)}, - {RUNE_C(0x0004F0), RUNE_C(0x0004F0)}, - {RUNE_C(0x0004F2), RUNE_C(0x0004F2)}, - {RUNE_C(0x0004F4), RUNE_C(0x0004F4)}, - {RUNE_C(0x0004F6), RUNE_C(0x0004F6)}, - {RUNE_C(0x0004F8), RUNE_C(0x0004F8)}, - {RUNE_C(0x0004FA), RUNE_C(0x0004FA)}, - {RUNE_C(0x0004FC), RUNE_C(0x0004FC)}, - {RUNE_C(0x0004FE), RUNE_C(0x0004FE)}, - {RUNE_C(0x000500), RUNE_C(0x000500)}, - {RUNE_C(0x000502), RUNE_C(0x000502)}, - {RUNE_C(0x000504), RUNE_C(0x000504)}, - {RUNE_C(0x000506), RUNE_C(0x000506)}, - {RUNE_C(0x000508), RUNE_C(0x000508)}, - {RUNE_C(0x00050A), RUNE_C(0x00050A)}, - {RUNE_C(0x00050C), RUNE_C(0x00050C)}, - {RUNE_C(0x00050E), RUNE_C(0x00050E)}, - {RUNE_C(0x000510), RUNE_C(0x000510)}, - {RUNE_C(0x000512), RUNE_C(0x000512)}, - {RUNE_C(0x000514), RUNE_C(0x000514)}, - {RUNE_C(0x000516), RUNE_C(0x000516)}, - {RUNE_C(0x000518), RUNE_C(0x000518)}, - {RUNE_C(0x00051A), RUNE_C(0x00051A)}, - {RUNE_C(0x00051C), RUNE_C(0x00051C)}, - {RUNE_C(0x00051E), RUNE_C(0x00051E)}, - {RUNE_C(0x000520), RUNE_C(0x000520)}, - {RUNE_C(0x000522), RUNE_C(0x000522)}, - {RUNE_C(0x000524), RUNE_C(0x000524)}, - {RUNE_C(0x000526), RUNE_C(0x000526)}, - {RUNE_C(0x000528), RUNE_C(0x000528)}, - {RUNE_C(0x00052A), RUNE_C(0x00052A)}, - {RUNE_C(0x00052C), RUNE_C(0x00052C)}, - {RUNE_C(0x00052E), RUNE_C(0x00052E)}, - {RUNE_C(0x000531), RUNE_C(0x000556)}, - {RUNE_C(0x000587), RUNE_C(0x000587)}, - {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, - {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, - {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, - {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, - {RUNE_C(0x001C80), RUNE_C(0x001C88)}, - {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, - {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, - {RUNE_C(0x001E00), RUNE_C(0x001E00)}, - {RUNE_C(0x001E02), RUNE_C(0x001E02)}, - {RUNE_C(0x001E04), RUNE_C(0x001E04)}, - {RUNE_C(0x001E06), RUNE_C(0x001E06)}, - {RUNE_C(0x001E08), RUNE_C(0x001E08)}, - {RUNE_C(0x001E0A), RUNE_C(0x001E0A)}, - {RUNE_C(0x001E0C), RUNE_C(0x001E0C)}, - {RUNE_C(0x001E0E), RUNE_C(0x001E0E)}, - {RUNE_C(0x001E10), RUNE_C(0x001E10)}, - {RUNE_C(0x001E12), RUNE_C(0x001E12)}, - {RUNE_C(0x001E14), RUNE_C(0x001E14)}, - {RUNE_C(0x001E16), RUNE_C(0x001E16)}, - {RUNE_C(0x001E18), RUNE_C(0x001E18)}, - {RUNE_C(0x001E1A), RUNE_C(0x001E1A)}, - {RUNE_C(0x001E1C), RUNE_C(0x001E1C)}, - {RUNE_C(0x001E1E), RUNE_C(0x001E1E)}, - {RUNE_C(0x001E20), RUNE_C(0x001E20)}, - {RUNE_C(0x001E22), RUNE_C(0x001E22)}, - {RUNE_C(0x001E24), RUNE_C(0x001E24)}, - {RUNE_C(0x001E26), RUNE_C(0x001E26)}, - {RUNE_C(0x001E28), RUNE_C(0x001E28)}, - {RUNE_C(0x001E2A), RUNE_C(0x001E2A)}, - {RUNE_C(0x001E2C), RUNE_C(0x001E2C)}, - {RUNE_C(0x001E2E), RUNE_C(0x001E2E)}, - {RUNE_C(0x001E30), RUNE_C(0x001E30)}, - {RUNE_C(0x001E32), RUNE_C(0x001E32)}, - {RUNE_C(0x001E34), RUNE_C(0x001E34)}, - {RUNE_C(0x001E36), RUNE_C(0x001E36)}, - {RUNE_C(0x001E38), RUNE_C(0x001E38)}, - {RUNE_C(0x001E3A), RUNE_C(0x001E3A)}, - {RUNE_C(0x001E3C), RUNE_C(0x001E3C)}, - {RUNE_C(0x001E3E), RUNE_C(0x001E3E)}, - {RUNE_C(0x001E40), RUNE_C(0x001E40)}, - {RUNE_C(0x001E42), RUNE_C(0x001E42)}, - {RUNE_C(0x001E44), RUNE_C(0x001E44)}, - {RUNE_C(0x001E46), RUNE_C(0x001E46)}, - {RUNE_C(0x001E48), RUNE_C(0x001E48)}, - {RUNE_C(0x001E4A), RUNE_C(0x001E4A)}, - {RUNE_C(0x001E4C), RUNE_C(0x001E4C)}, - {RUNE_C(0x001E4E), RUNE_C(0x001E4E)}, - {RUNE_C(0x001E50), RUNE_C(0x001E50)}, - {RUNE_C(0x001E52), RUNE_C(0x001E52)}, - {RUNE_C(0x001E54), RUNE_C(0x001E54)}, - {RUNE_C(0x001E56), RUNE_C(0x001E56)}, - {RUNE_C(0x001E58), RUNE_C(0x001E58)}, - {RUNE_C(0x001E5A), RUNE_C(0x001E5A)}, - {RUNE_C(0x001E5C), RUNE_C(0x001E5C)}, - {RUNE_C(0x001E5E), RUNE_C(0x001E5E)}, - {RUNE_C(0x001E60), RUNE_C(0x001E60)}, - {RUNE_C(0x001E62), RUNE_C(0x001E62)}, - {RUNE_C(0x001E64), RUNE_C(0x001E64)}, - {RUNE_C(0x001E66), RUNE_C(0x001E66)}, - {RUNE_C(0x001E68), RUNE_C(0x001E68)}, - {RUNE_C(0x001E6A), RUNE_C(0x001E6A)}, - {RUNE_C(0x001E6C), RUNE_C(0x001E6C)}, - {RUNE_C(0x001E6E), RUNE_C(0x001E6E)}, - {RUNE_C(0x001E70), RUNE_C(0x001E70)}, - {RUNE_C(0x001E72), RUNE_C(0x001E72)}, - {RUNE_C(0x001E74), RUNE_C(0x001E74)}, - {RUNE_C(0x001E76), RUNE_C(0x001E76)}, - {RUNE_C(0x001E78), RUNE_C(0x001E78)}, - {RUNE_C(0x001E7A), RUNE_C(0x001E7A)}, - {RUNE_C(0x001E7C), RUNE_C(0x001E7C)}, - {RUNE_C(0x001E7E), RUNE_C(0x001E7E)}, - {RUNE_C(0x001E80), RUNE_C(0x001E80)}, - {RUNE_C(0x001E82), RUNE_C(0x001E82)}, - {RUNE_C(0x001E84), RUNE_C(0x001E84)}, - {RUNE_C(0x001E86), RUNE_C(0x001E86)}, - {RUNE_C(0x001E88), RUNE_C(0x001E88)}, - {RUNE_C(0x001E8A), RUNE_C(0x001E8A)}, - {RUNE_C(0x001E8C), RUNE_C(0x001E8C)}, - {RUNE_C(0x001E8E), RUNE_C(0x001E8E)}, - {RUNE_C(0x001E90), RUNE_C(0x001E90)}, - {RUNE_C(0x001E92), RUNE_C(0x001E92)}, - {RUNE_C(0x001E94), RUNE_C(0x001E94)}, - {RUNE_C(0x001E9A), RUNE_C(0x001E9B)}, - {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, - {RUNE_C(0x001EA0), RUNE_C(0x001EA0)}, - {RUNE_C(0x001EA2), RUNE_C(0x001EA2)}, - {RUNE_C(0x001EA4), RUNE_C(0x001EA4)}, - {RUNE_C(0x001EA6), RUNE_C(0x001EA6)}, - {RUNE_C(0x001EA8), RUNE_C(0x001EA8)}, - {RUNE_C(0x001EAA), RUNE_C(0x001EAA)}, - {RUNE_C(0x001EAC), RUNE_C(0x001EAC)}, - {RUNE_C(0x001EAE), RUNE_C(0x001EAE)}, - {RUNE_C(0x001EB0), RUNE_C(0x001EB0)}, - {RUNE_C(0x001EB2), RUNE_C(0x001EB2)}, - {RUNE_C(0x001EB4), RUNE_C(0x001EB4)}, - {RUNE_C(0x001EB6), RUNE_C(0x001EB6)}, - {RUNE_C(0x001EB8), RUNE_C(0x001EB8)}, - {RUNE_C(0x001EBA), RUNE_C(0x001EBA)}, - {RUNE_C(0x001EBC), RUNE_C(0x001EBC)}, - {RUNE_C(0x001EBE), RUNE_C(0x001EBE)}, - {RUNE_C(0x001EC0), RUNE_C(0x001EC0)}, - {RUNE_C(0x001EC2), RUNE_C(0x001EC2)}, - {RUNE_C(0x001EC4), RUNE_C(0x001EC4)}, - {RUNE_C(0x001EC6), RUNE_C(0x001EC6)}, - {RUNE_C(0x001EC8), RUNE_C(0x001EC8)}, - {RUNE_C(0x001ECA), RUNE_C(0x001ECA)}, - {RUNE_C(0x001ECC), RUNE_C(0x001ECC)}, - {RUNE_C(0x001ECE), RUNE_C(0x001ECE)}, - {RUNE_C(0x001ED0), RUNE_C(0x001ED0)}, - {RUNE_C(0x001ED2), RUNE_C(0x001ED2)}, - {RUNE_C(0x001ED4), RUNE_C(0x001ED4)}, - {RUNE_C(0x001ED6), RUNE_C(0x001ED6)}, - {RUNE_C(0x001ED8), RUNE_C(0x001ED8)}, - {RUNE_C(0x001EDA), RUNE_C(0x001EDA)}, - {RUNE_C(0x001EDC), RUNE_C(0x001EDC)}, - {RUNE_C(0x001EDE), RUNE_C(0x001EDE)}, - {RUNE_C(0x001EE0), RUNE_C(0x001EE0)}, - {RUNE_C(0x001EE2), RUNE_C(0x001EE2)}, - {RUNE_C(0x001EE4), RUNE_C(0x001EE4)}, - {RUNE_C(0x001EE6), RUNE_C(0x001EE6)}, - {RUNE_C(0x001EE8), RUNE_C(0x001EE8)}, - {RUNE_C(0x001EEA), RUNE_C(0x001EEA)}, - {RUNE_C(0x001EEC), RUNE_C(0x001EEC)}, - {RUNE_C(0x001EEE), RUNE_C(0x001EEE)}, - {RUNE_C(0x001EF0), RUNE_C(0x001EF0)}, - {RUNE_C(0x001EF2), RUNE_C(0x001EF2)}, - {RUNE_C(0x001EF4), RUNE_C(0x001EF4)}, - {RUNE_C(0x001EF6), RUNE_C(0x001EF6)}, - {RUNE_C(0x001EF8), RUNE_C(0x001EF8)}, - {RUNE_C(0x001EFA), RUNE_C(0x001EFA)}, - {RUNE_C(0x001EFC), RUNE_C(0x001EFC)}, - {RUNE_C(0x001EFE), RUNE_C(0x001EFE)}, - {RUNE_C(0x001F08), RUNE_C(0x001F0F)}, - {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, - {RUNE_C(0x001F28), RUNE_C(0x001F2F)}, - {RUNE_C(0x001F38), RUNE_C(0x001F3F)}, - {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, - {RUNE_C(0x001F59), RUNE_C(0x001F59)}, - {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, - {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, - {RUNE_C(0x001F5F), RUNE_C(0x001F5F)}, - {RUNE_C(0x001F68), RUNE_C(0x001F6F)}, - {RUNE_C(0x001F80), RUNE_C(0x001FAF)}, - {RUNE_C(0x001FB2), RUNE_C(0x001FB4)}, - {RUNE_C(0x001FB7), RUNE_C(0x001FBC)}, - {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, - {RUNE_C(0x001FC7), RUNE_C(0x001FCC)}, - {RUNE_C(0x001FD8), RUNE_C(0x001FDB)}, - {RUNE_C(0x001FE8), RUNE_C(0x001FEC)}, - {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, - {RUNE_C(0x001FF7), RUNE_C(0x001FFC)}, - {RUNE_C(0x002126), RUNE_C(0x002126)}, - {RUNE_C(0x00212A), RUNE_C(0x00212B)}, - {RUNE_C(0x002132), RUNE_C(0x002132)}, - {RUNE_C(0x002160), RUNE_C(0x00216F)}, - {RUNE_C(0x002183), RUNE_C(0x002183)}, - {RUNE_C(0x0024B6), RUNE_C(0x0024CF)}, - {RUNE_C(0x002C00), RUNE_C(0x002C2F)}, - {RUNE_C(0x002C60), RUNE_C(0x002C60)}, - {RUNE_C(0x002C62), RUNE_C(0x002C64)}, - {RUNE_C(0x002C67), RUNE_C(0x002C67)}, - {RUNE_C(0x002C69), RUNE_C(0x002C69)}, - {RUNE_C(0x002C6B), RUNE_C(0x002C6B)}, - {RUNE_C(0x002C6D), RUNE_C(0x002C70)}, - {RUNE_C(0x002C72), RUNE_C(0x002C72)}, - {RUNE_C(0x002C75), RUNE_C(0x002C75)}, - {RUNE_C(0x002C7E), RUNE_C(0x002C80)}, - {RUNE_C(0x002C82), RUNE_C(0x002C82)}, - {RUNE_C(0x002C84), RUNE_C(0x002C84)}, - {RUNE_C(0x002C86), RUNE_C(0x002C86)}, - {RUNE_C(0x002C88), RUNE_C(0x002C88)}, - {RUNE_C(0x002C8A), RUNE_C(0x002C8A)}, - {RUNE_C(0x002C8C), RUNE_C(0x002C8C)}, - {RUNE_C(0x002C8E), RUNE_C(0x002C8E)}, - {RUNE_C(0x002C90), RUNE_C(0x002C90)}, - {RUNE_C(0x002C92), RUNE_C(0x002C92)}, - {RUNE_C(0x002C94), RUNE_C(0x002C94)}, - {RUNE_C(0x002C96), RUNE_C(0x002C96)}, - {RUNE_C(0x002C98), RUNE_C(0x002C98)}, - {RUNE_C(0x002C9A), RUNE_C(0x002C9A)}, - {RUNE_C(0x002C9C), RUNE_C(0x002C9C)}, - {RUNE_C(0x002C9E), RUNE_C(0x002C9E)}, - {RUNE_C(0x002CA0), RUNE_C(0x002CA0)}, - {RUNE_C(0x002CA2), RUNE_C(0x002CA2)}, - {RUNE_C(0x002CA4), RUNE_C(0x002CA4)}, - {RUNE_C(0x002CA6), RUNE_C(0x002CA6)}, - {RUNE_C(0x002CA8), RUNE_C(0x002CA8)}, - {RUNE_C(0x002CAA), RUNE_C(0x002CAA)}, - {RUNE_C(0x002CAC), RUNE_C(0x002CAC)}, - {RUNE_C(0x002CAE), RUNE_C(0x002CAE)}, - {RUNE_C(0x002CB0), RUNE_C(0x002CB0)}, - {RUNE_C(0x002CB2), RUNE_C(0x002CB2)}, - {RUNE_C(0x002CB4), RUNE_C(0x002CB4)}, - {RUNE_C(0x002CB6), RUNE_C(0x002CB6)}, - {RUNE_C(0x002CB8), RUNE_C(0x002CB8)}, - {RUNE_C(0x002CBA), RUNE_C(0x002CBA)}, - {RUNE_C(0x002CBC), RUNE_C(0x002CBC)}, - {RUNE_C(0x002CBE), RUNE_C(0x002CBE)}, - {RUNE_C(0x002CC0), RUNE_C(0x002CC0)}, - {RUNE_C(0x002CC2), RUNE_C(0x002CC2)}, - {RUNE_C(0x002CC4), RUNE_C(0x002CC4)}, - {RUNE_C(0x002CC6), RUNE_C(0x002CC6)}, - {RUNE_C(0x002CC8), RUNE_C(0x002CC8)}, - {RUNE_C(0x002CCA), RUNE_C(0x002CCA)}, - {RUNE_C(0x002CCC), RUNE_C(0x002CCC)}, - {RUNE_C(0x002CCE), RUNE_C(0x002CCE)}, - {RUNE_C(0x002CD0), RUNE_C(0x002CD0)}, - {RUNE_C(0x002CD2), RUNE_C(0x002CD2)}, - {RUNE_C(0x002CD4), RUNE_C(0x002CD4)}, - {RUNE_C(0x002CD6), RUNE_C(0x002CD6)}, - {RUNE_C(0x002CD8), RUNE_C(0x002CD8)}, - {RUNE_C(0x002CDA), RUNE_C(0x002CDA)}, - {RUNE_C(0x002CDC), RUNE_C(0x002CDC)}, - {RUNE_C(0x002CDE), RUNE_C(0x002CDE)}, - {RUNE_C(0x002CE0), RUNE_C(0x002CE0)}, - {RUNE_C(0x002CE2), RUNE_C(0x002CE2)}, - {RUNE_C(0x002CEB), RUNE_C(0x002CEB)}, - {RUNE_C(0x002CED), RUNE_C(0x002CED)}, - {RUNE_C(0x002CF2), RUNE_C(0x002CF2)}, - {RUNE_C(0x00A640), RUNE_C(0x00A640)}, - {RUNE_C(0x00A642), RUNE_C(0x00A642)}, - {RUNE_C(0x00A644), RUNE_C(0x00A644)}, - {RUNE_C(0x00A646), RUNE_C(0x00A646)}, - {RUNE_C(0x00A648), RUNE_C(0x00A648)}, - {RUNE_C(0x00A64A), RUNE_C(0x00A64A)}, - {RUNE_C(0x00A64C), RUNE_C(0x00A64C)}, - {RUNE_C(0x00A64E), RUNE_C(0x00A64E)}, - {RUNE_C(0x00A650), RUNE_C(0x00A650)}, - {RUNE_C(0x00A652), RUNE_C(0x00A652)}, - {RUNE_C(0x00A654), RUNE_C(0x00A654)}, - {RUNE_C(0x00A656), RUNE_C(0x00A656)}, - {RUNE_C(0x00A658), RUNE_C(0x00A658)}, - {RUNE_C(0x00A65A), RUNE_C(0x00A65A)}, - {RUNE_C(0x00A65C), RUNE_C(0x00A65C)}, - {RUNE_C(0x00A65E), RUNE_C(0x00A65E)}, - {RUNE_C(0x00A660), RUNE_C(0x00A660)}, - {RUNE_C(0x00A662), RUNE_C(0x00A662)}, - {RUNE_C(0x00A664), RUNE_C(0x00A664)}, - {RUNE_C(0x00A666), RUNE_C(0x00A666)}, - {RUNE_C(0x00A668), RUNE_C(0x00A668)}, - {RUNE_C(0x00A66A), RUNE_C(0x00A66A)}, - {RUNE_C(0x00A66C), RUNE_C(0x00A66C)}, - {RUNE_C(0x00A680), RUNE_C(0x00A680)}, - {RUNE_C(0x00A682), RUNE_C(0x00A682)}, - {RUNE_C(0x00A684), RUNE_C(0x00A684)}, - {RUNE_C(0x00A686), RUNE_C(0x00A686)}, - {RUNE_C(0x00A688), RUNE_C(0x00A688)}, - {RUNE_C(0x00A68A), RUNE_C(0x00A68A)}, - {RUNE_C(0x00A68C), RUNE_C(0x00A68C)}, - {RUNE_C(0x00A68E), RUNE_C(0x00A68E)}, - {RUNE_C(0x00A690), RUNE_C(0x00A690)}, - {RUNE_C(0x00A692), RUNE_C(0x00A692)}, - {RUNE_C(0x00A694), RUNE_C(0x00A694)}, - {RUNE_C(0x00A696), RUNE_C(0x00A696)}, - {RUNE_C(0x00A698), RUNE_C(0x00A698)}, - {RUNE_C(0x00A69A), RUNE_C(0x00A69A)}, - {RUNE_C(0x00A722), RUNE_C(0x00A722)}, - {RUNE_C(0x00A724), RUNE_C(0x00A724)}, - {RUNE_C(0x00A726), RUNE_C(0x00A726)}, - {RUNE_C(0x00A728), RUNE_C(0x00A728)}, - {RUNE_C(0x00A72A), RUNE_C(0x00A72A)}, - {RUNE_C(0x00A72C), RUNE_C(0x00A72C)}, - {RUNE_C(0x00A72E), RUNE_C(0x00A72E)}, - {RUNE_C(0x00A732), RUNE_C(0x00A732)}, - {RUNE_C(0x00A734), RUNE_C(0x00A734)}, - {RUNE_C(0x00A736), RUNE_C(0x00A736)}, - {RUNE_C(0x00A738), RUNE_C(0x00A738)}, - {RUNE_C(0x00A73A), RUNE_C(0x00A73A)}, - {RUNE_C(0x00A73C), RUNE_C(0x00A73C)}, - {RUNE_C(0x00A73E), RUNE_C(0x00A73E)}, - {RUNE_C(0x00A740), RUNE_C(0x00A740)}, - {RUNE_C(0x00A742), RUNE_C(0x00A742)}, - {RUNE_C(0x00A744), RUNE_C(0x00A744)}, - {RUNE_C(0x00A746), RUNE_C(0x00A746)}, - {RUNE_C(0x00A748), RUNE_C(0x00A748)}, - {RUNE_C(0x00A74A), RUNE_C(0x00A74A)}, - {RUNE_C(0x00A74C), RUNE_C(0x00A74C)}, - {RUNE_C(0x00A74E), RUNE_C(0x00A74E)}, - {RUNE_C(0x00A750), RUNE_C(0x00A750)}, - {RUNE_C(0x00A752), RUNE_C(0x00A752)}, - {RUNE_C(0x00A754), RUNE_C(0x00A754)}, - {RUNE_C(0x00A756), RUNE_C(0x00A756)}, - {RUNE_C(0x00A758), RUNE_C(0x00A758)}, - {RUNE_C(0x00A75A), RUNE_C(0x00A75A)}, - {RUNE_C(0x00A75C), RUNE_C(0x00A75C)}, - {RUNE_C(0x00A75E), RUNE_C(0x00A75E)}, - {RUNE_C(0x00A760), RUNE_C(0x00A760)}, - {RUNE_C(0x00A762), RUNE_C(0x00A762)}, - {RUNE_C(0x00A764), RUNE_C(0x00A764)}, - {RUNE_C(0x00A766), RUNE_C(0x00A766)}, - {RUNE_C(0x00A768), RUNE_C(0x00A768)}, - {RUNE_C(0x00A76A), RUNE_C(0x00A76A)}, - {RUNE_C(0x00A76C), RUNE_C(0x00A76C)}, - {RUNE_C(0x00A76E), RUNE_C(0x00A76E)}, - {RUNE_C(0x00A779), RUNE_C(0x00A779)}, - {RUNE_C(0x00A77B), RUNE_C(0x00A77B)}, - {RUNE_C(0x00A77D), RUNE_C(0x00A77E)}, - {RUNE_C(0x00A780), RUNE_C(0x00A780)}, - {RUNE_C(0x00A782), RUNE_C(0x00A782)}, - {RUNE_C(0x00A784), RUNE_C(0x00A784)}, - {RUNE_C(0x00A786), RUNE_C(0x00A786)}, - {RUNE_C(0x00A78B), RUNE_C(0x00A78B)}, - {RUNE_C(0x00A78D), RUNE_C(0x00A78D)}, - {RUNE_C(0x00A790), RUNE_C(0x00A790)}, - {RUNE_C(0x00A792), RUNE_C(0x00A792)}, - {RUNE_C(0x00A796), RUNE_C(0x00A796)}, - {RUNE_C(0x00A798), RUNE_C(0x00A798)}, - {RUNE_C(0x00A79A), RUNE_C(0x00A79A)}, - {RUNE_C(0x00A79C), RUNE_C(0x00A79C)}, - {RUNE_C(0x00A79E), RUNE_C(0x00A79E)}, - {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)}, - {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)}, - {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)}, - {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)}, - {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)}, - {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)}, - {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)}, - {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)}, - {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)}, - {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)}, - {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)}, - {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)}, - {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)}, - {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)}, - {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)}, - {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)}, - {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)}, - {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)}, - {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)}, - {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)}, - {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, - {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, - {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, - {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, - {RUNE_C(0x010400), RUNE_C(0x010427)}, - {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, - {RUNE_C(0x010570), RUNE_C(0x01057A)}, - {RUNE_C(0x01057C), RUNE_C(0x01058A)}, - {RUNE_C(0x01058C), RUNE_C(0x010592)}, - {RUNE_C(0x010594), RUNE_C(0x010595)}, - {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, - {RUNE_C(0x0118A0), RUNE_C(0x0118BF)}, - {RUNE_C(0x016E40), RUNE_C(0x016E5F)}, - {RUNE_C(0x01E900), RUNE_C(0x01E921)}, +static constexpr unsigned char stage2[][32] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00}, + {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, + 0xAA, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAB, + 0xD6, 0xCE, 0xDB, 0xB1, 0xD5, 0xD2, 0xAE, 0x11, + 0xB0, 0xAD, 0xAA, 0x4A, 0x55, 0x55, 0xD6, 0x55}, + {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x6C, + 0x7A, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x80, + 0x40, 0xD7, 0xFE, 0xFF, 0xFB, 0x0F, 0x00, 0x00, + 0x04, 0x80, 0x63, 0x55, 0x55, 0x55, 0xB3, 0xE6}, + {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, + 0x01, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0xAB, 0x2A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55}, + {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFE, 0xFF, + 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xBF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x15, 0x4C, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55}, + {0x00, 0xFF, 0x00, 0x3F, 0x00, 0xFF, 0x00, 0xFF, + 0x00, 0x3F, 0x00, 0xAA, 0x00, 0xFF, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9C, 0x1F, + 0x9C, 0x1F, 0x00, 0x0F, 0x00, 0x1F, 0x9C, 0x1F}, + {0x00, 0x00, 0x00, 0x00, 0x40, 0x0C, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x9D, 0xEA, 0x25, 0xC0, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x05, 0x28, 0x04, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, + 0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x54, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x6A, + 0x55, 0x28, 0x45, 0x55, 0x55, 0x7D, 0x5F, 0x55, + 0xF5, 0x02, 0x41, 0x01, 0x00, 0x00, 0x20, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x7F, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF7, + 0xFF, 0xF7, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, }; -_MLIB_DEFINE_BSEARCH_CONTAINS(lookup) - bool uprop_is_cwcf(rune ch) { - return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); + return TESTBIT(stage2[stage1[ch / 256]], ch % 256); } |