diff options
Diffstat (limited to 'tests/unigbrk')
-rw-r--r-- | tests/unigbrk/GraphemeBreakTest.txt | 428 | ||||
-rw-r--r-- | tests/unigbrk/test-u16-grapheme-breaks.c | 103 | ||||
-rw-r--r-- | tests/unigbrk/test-u16-grapheme-next.c | 102 | ||||
-rw-r--r-- | tests/unigbrk/test-u16-grapheme-prev.c | 104 | ||||
-rw-r--r-- | tests/unigbrk/test-u32-grapheme-breaks.c | 103 | ||||
-rw-r--r-- | tests/unigbrk/test-u32-grapheme-next.c | 103 | ||||
-rw-r--r-- | tests/unigbrk/test-u32-grapheme-prev.c | 105 | ||||
-rw-r--r-- | tests/unigbrk/test-u8-grapheme-breaks.c | 95 | ||||
-rw-r--r-- | tests/unigbrk/test-u8-grapheme-next.c | 79 | ||||
-rw-r--r-- | tests/unigbrk/test-u8-grapheme-prev.c | 80 | ||||
-rw-r--r-- | tests/unigbrk/test-uc-gbrk-prop.c | 84 | ||||
-rw-r--r-- | tests/unigbrk/test-uc-gbrk-prop.h | 1519 | ||||
-rw-r--r-- | tests/unigbrk/test-uc-is-grapheme-break.c | 158 | ||||
-rwxr-xr-x | tests/unigbrk/test-uc-is-grapheme-break.sh | 3 | ||||
-rw-r--r-- | tests/unigbrk/test-ulc-grapheme-breaks.c | 86 | ||||
-rwxr-xr-x | tests/unigbrk/test-ulc-grapheme-breaks.sh | 15 |
16 files changed, 0 insertions, 3167 deletions
diff --git a/tests/unigbrk/GraphemeBreakTest.txt b/tests/unigbrk/GraphemeBreakTest.txt deleted file mode 100644 index d54cd67e..00000000 --- a/tests/unigbrk/GraphemeBreakTest.txt +++ /dev/null @@ -1,428 +0,0 @@ -# GraphemeBreakTest-8.0.0.txt -# Date: 2015-02-13, 13:47:15 GMT [MD] -# -# Unicode Character Database -# Copyright (c) 1991-2015 Unicode, Inc. -# For terms of use, see http://www.unicode.org/terms_of_use.html -# For documentation, see http://www.unicode.org/reports/tr44/ -# -# Default Grapheme Break Test -# -# Format: -# <string> (# <comment>)? -# <string> contains hex Unicode code points, with -# ÷ wherever there is a break opportunity, and -# × wherever there is not. -# <comment> the format can change, but currently it shows: -# - the sample character name -# - (x) the Grapheme_Cluster_Break property value for the sample character -# - [x] the rule that determines whether there is a break or not -# -# These samples may be extended or changed in the future. -# -÷ 0020 ÷ 0020 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 0020 × 0308 ÷ 0020 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 0020 ÷ 000D ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0020 × 0308 ÷ 000D ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0020 ÷ 000A ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0020 × 0308 ÷ 000A ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0020 ÷ 0001 ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0020 × 0308 ÷ 0001 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0020 × 0300 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0020 × 0308 × 0300 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0020 × 0903 ÷ # ÷ [0.2] SPACE (Other) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0020 × 0308 × 0903 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0020 ÷ 1100 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0020 × 0308 ÷ 1100 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0020 ÷ 1160 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0020 × 0308 ÷ 1160 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0020 ÷ 11A8 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0020 × 0308 ÷ 11A8 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0020 ÷ AC00 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0020 × 0308 ÷ AC00 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0020 ÷ AC01 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0020 × 0308 ÷ AC01 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0020 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0020 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0020 ÷ 0378 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0020 × 0308 ÷ 0378 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0020 ÷ D800 ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0020 × 0308 ÷ D800 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 000D ÷ 0020 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] SPACE (Other) ÷ [0.3] -÷ 000D ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 000D ÷ 000D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 000D ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 000D × 000A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 000D ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 000D ÷ 0001 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 000D ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 000D ÷ 0300 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 000D ÷ 0308 × 0300 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 000D ÷ 0903 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 000D ÷ 0308 × 0903 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 000D ÷ 1100 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 000D ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 000D ÷ 1160 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 000D ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 000D ÷ 11A8 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 000D ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 000D ÷ AC00 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 000D ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 000D ÷ AC01 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 000D ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 000D ÷ 1F1E6 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 000D ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 000D ÷ 0378 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <reserved-0378> (Other) ÷ [0.3] -÷ 000D ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 000D ÷ D800 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 000D ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 000A ÷ 0020 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] SPACE (Other) ÷ [0.3] -÷ 000A ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 000A ÷ 000D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 000A ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 000A ÷ 000A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 000A ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 000A ÷ 0001 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 000A ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 000A ÷ 0300 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 000A ÷ 0308 × 0300 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 000A ÷ 0903 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 000A ÷ 0308 × 0903 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 000A ÷ 1100 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 000A ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 000A ÷ 1160 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 000A ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 000A ÷ 11A8 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 000A ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 000A ÷ AC00 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 000A ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 000A ÷ AC01 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 000A ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 000A ÷ 1F1E6 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 000A ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 000A ÷ 0378 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <reserved-0378> (Other) ÷ [0.3] -÷ 000A ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 000A ÷ D800 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 000A ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0001 ÷ 0020 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] SPACE (Other) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 0001 ÷ 000D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0001 ÷ 000A ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0001 ÷ 0001 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0001 ÷ 0300 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0001 ÷ 0308 × 0300 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0001 ÷ 0903 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0001 ÷ 0308 × 0903 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0001 ÷ 1100 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0001 ÷ 1160 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0001 ÷ 11A8 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0001 ÷ AC00 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0001 ÷ AC01 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0001 ÷ 1F1E6 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0001 ÷ 0378 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0001 ÷ D800 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0001 ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0300 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 0300 × 0308 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 0300 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0300 × 0308 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0300 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0300 × 0308 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0300 ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0300 × 0308 ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0300 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0300 × 0308 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0300 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0300 × 0308 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0300 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0300 × 0308 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0300 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0300 × 0308 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0300 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0300 × 0308 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0300 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0300 × 0308 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0300 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0300 × 0308 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0300 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0300 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0300 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0300 × 0308 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0300 ÷ D800 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0300 × 0308 ÷ D800 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0903 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 0903 × 0308 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 0903 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0903 × 0308 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0903 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0903 × 0308 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0903 ÷ 0001 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0903 × 0308 ÷ 0001 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0903 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0903 × 0308 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0903 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0903 × 0308 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0903 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0903 × 0308 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0903 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0903 × 0308 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0903 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0903 × 0308 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0903 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0903 × 0308 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0903 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0903 × 0308 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0903 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0903 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0903 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0903 × 0308 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0903 ÷ D800 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0903 × 0308 ÷ D800 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 1100 ÷ 0020 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 1100 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 1100 ÷ 000D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 1100 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 1100 ÷ 000A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 1100 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 1100 ÷ 0001 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 1100 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 1100 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 1100 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 1100 × 0903 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 1100 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 1100 × 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 1100 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 1100 × 1160 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 1100 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 1100 ÷ 11A8 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 1100 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 1100 × AC00 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 1100 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 1100 × AC01 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 1100 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 1100 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 1100 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 1100 ÷ 0378 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 1100 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 1100 ÷ D800 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 1100 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 1160 ÷ 0020 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 1160 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 1160 ÷ 000D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 1160 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 1160 ÷ 000A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 1160 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 1160 ÷ 0001 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 1160 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 1160 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 1160 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 1160 × 0903 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 1160 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 1160 ÷ 1100 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 1160 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 1160 × 1160 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 1160 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 1160 × 11A8 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 1160 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 1160 ÷ AC00 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 1160 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 1160 ÷ AC01 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 1160 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 1160 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 1160 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 1160 ÷ 0378 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 1160 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 1160 ÷ D800 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 1160 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 11A8 ÷ 0020 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 11A8 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 11A8 ÷ 000D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 11A8 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 11A8 ÷ 000A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 11A8 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 11A8 ÷ 0001 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 11A8 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 11A8 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 11A8 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 11A8 × 0903 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 11A8 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 11A8 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 11A8 ÷ 1160 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 11A8 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 11A8 × 11A8 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 11A8 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 11A8 ÷ AC00 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 11A8 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 11A8 ÷ AC01 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 11A8 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 11A8 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 11A8 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 11A8 ÷ 0378 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 11A8 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 11A8 ÷ D800 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 11A8 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ AC00 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ AC00 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ AC00 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ AC00 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ AC00 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ AC00 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ AC00 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ AC00 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ AC00 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ AC00 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ AC00 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ AC00 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ AC00 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ AC00 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ AC00 × 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ AC00 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ AC00 × 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ AC00 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ AC00 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ AC00 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ AC00 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ AC00 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ AC00 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ AC00 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ AC00 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ AC00 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ AC00 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ AC00 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ AC01 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ AC01 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ AC01 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ AC01 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ AC01 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ AC01 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ AC01 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ AC01 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ AC01 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ AC01 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ AC01 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ AC01 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ AC01 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ AC01 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ AC01 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ AC01 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ AC01 × 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ AC01 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ AC01 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ AC01 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ AC01 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ AC01 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ AC01 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ AC01 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ AC01 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ AC01 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ AC01 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ AC01 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 1F1E6 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 1F1E6 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 1F1E6 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 1F1E6 ÷ 0001 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ 0001 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 1F1E6 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 1F1E6 × 0308 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 1F1E6 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 1F1E6 × 0308 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 1F1E6 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 1F1E6 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 1F1E6 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 1F1E6 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 1F1E6 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 1F1E6 × 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 1F1E6 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 1F1E6 ÷ D800 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 1F1E6 × 0308 ÷ D800 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0378 ÷ 0020 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 0378 × 0308 ÷ 0020 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ 0378 ÷ 000D ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0378 × 0308 ÷ 000D ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ 0378 ÷ 000A ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0378 × 0308 ÷ 000A ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ 0378 ÷ 0001 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0378 × 0308 ÷ 0001 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ 0378 × 0300 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0378 × 0308 × 0300 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ 0378 × 0903 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0378 × 0308 × 0903 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ 0378 ÷ 1100 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0378 × 0308 ÷ 1100 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ 0378 ÷ 1160 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0378 × 0308 ÷ 1160 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ 0378 ÷ 11A8 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0378 × 0308 ÷ 11A8 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ 0378 ÷ AC00 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0378 × 0308 ÷ AC00 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ 0378 ÷ AC01 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0378 × 0308 ÷ AC01 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ 0378 ÷ 1F1E6 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0378 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ 0378 ÷ 0378 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0378 × 0308 ÷ 0378 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ 0378 ÷ D800 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0378 × 0308 ÷ D800 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ D800 ÷ 0020 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] SPACE (Other) ÷ [0.3] -÷ D800 ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -÷ D800 ÷ 000D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ D800 ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3] -÷ D800 ÷ 000A ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ D800 ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3] -÷ D800 ÷ 0001 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3] -÷ D800 ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3] -÷ D800 ÷ 0300 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ D800 ÷ 0308 × 0300 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] -÷ D800 ÷ 0903 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ D800 ÷ 0308 × 0903 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] -÷ D800 ÷ 1100 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ D800 ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] -÷ D800 ÷ 1160 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ D800 ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] -÷ D800 ÷ 11A8 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ D800 ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] -÷ D800 ÷ AC00 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ D800 ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] -÷ D800 ÷ AC01 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ D800 ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] -÷ D800 ÷ 1F1E6 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ D800 ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3] -÷ D800 ÷ 0378 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <reserved-0378> (Other) ÷ [0.3] -÷ D800 ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3] -÷ D800 ÷ D800 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <surrogate-D800> (Control) ÷ [0.3] -÷ D800 ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3] -÷ 0061 ÷ 1F1E6 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3] -÷ 1F1F7 × 1F1FA ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER R (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER U (Regional_Indicator) ÷ [0.3] -÷ 1F1F7 × 1F1FA × 1F1F8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER R (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER U (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER S (Regional_Indicator) ÷ [0.3] -÷ 1F1F7 × 1F1FA × 1F1F8 × 1F1EA ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER R (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER U (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER S (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER E (Regional_Indicator) ÷ [0.3] -÷ 1F1F7 × 1F1FA ÷ 200B ÷ 1F1F8 × 1F1EA ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER R (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER U (Regional_Indicator) ÷ [5.0] ZERO WIDTH SPACE (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER S (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER E (Regional_Indicator) ÷ [0.3] -÷ 1F1E6 × 1F1E7 × 1F1E8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER B (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER C (Regional_Indicator) ÷ [0.3] -÷ 1F1E6 × 200D ÷ 1F1E7 × 1F1E8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [9.0] ZERO WIDTH JOINER (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER B (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER C (Regional_Indicator) ÷ [0.3] -÷ 1F1E6 × 1F1E7 × 200D ÷ 1F1E8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [8.1] REGIONAL INDICATOR SYMBOL LETTER B (Regional_Indicator) × [9.0] ZERO WIDTH JOINER (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (Regional_Indicator) ÷ [0.3] -÷ 0020 × 200D ÷ 0646 ÷ # ÷ [0.2] SPACE (Other) × [9.0] ZERO WIDTH JOINER (Extend) ÷ [999.0] ARABIC LETTER NOON (Other) ÷ [0.3] -÷ 0646 × 200D ÷ 0020 ÷ # ÷ [0.2] ARABIC LETTER NOON (Other) × [9.0] ZERO WIDTH JOINER (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] -# -# Lines: 402 -# -# EOF diff --git a/tests/unigbrk/test-u16-grapheme-breaks.c b/tests/unigbrk/test-u16-grapheme-breaks.c deleted file mode 100644 index 28b81c65..00000000 --- a/tests/unigbrk/test-u16-grapheme-breaks.c +++ /dev/null @@ -1,103 +0,0 @@ -/* Grapheme cluster breaks test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "macros.h" - -static void -test_u16_grapheme_breaks (const char *expected, ...) -{ - size_t n = strlen (expected); - uint16_t s[16]; - va_list args; - char breaks[16]; - size_t i; - - ASSERT (n <= 16); - - memset (breaks, 0xcc, n); - - va_start (args, expected); - for (i = 0; i < n; i++) - { - int unit = va_arg (args, int); - ASSERT (unit >= 0); - s[i] = unit; - } - ASSERT (va_arg (args, int) == -1); - va_end (args); - - u16_grapheme_breaks (s, n, breaks); - for (i = 0; i < n; i++) - if (breaks[i] != (expected[i] == '#')) - { - size_t j; - - fprintf (stderr, "wrong grapheme breaks:\n"); - - fprintf (stderr, " input:"); - for (j = 0; j < n; j++) - fprintf (stderr, " %02x", s[j]); - putc ('\n', stderr); - - fprintf (stderr, "expected:"); - for (j = 0; j < n; j++) - fprintf (stderr, " %d", expected[j] == '#'); - putc ('\n', stderr); - - fprintf (stderr, " actual:"); - for (j = 0; j < n; j++) - fprintf (stderr, " %d", breaks[j]); - putc ('\n', stderr); - - abort (); - } -} - -int -main (void) -{ - /* Standalone 1-unit graphemes. */ - test_u16_grapheme_breaks ("#", 'a', -1); - test_u16_grapheme_breaks ("##", 'a', 'b', -1); - test_u16_grapheme_breaks ("###", 'a', 'b', 'c', -1); - -#define HIRAGANA_A 0x3042 /* あ: Hiragana letter 'a'. */ - test_u16_grapheme_breaks ("#", HIRAGANA_A, -1); - test_u16_grapheme_breaks ("##", HIRAGANA_A, 'x', -1); - test_u16_grapheme_breaks ("##", HIRAGANA_A, HIRAGANA_A, -1); - - /* Combining accents. */ -#define GRAVE 0x0300 /* Combining grave accent. */ -#define ACUTE 0x0301 /* Combining acute accent. */ - test_u16_grapheme_breaks ("#_", 'e', ACUTE, -1); - test_u16_grapheme_breaks ("#__", 'e', ACUTE, GRAVE, -1); - test_u16_grapheme_breaks ("#_#", 'e', ACUTE, 'x', -1); - test_u16_grapheme_breaks ("#_#_", 'e', ACUTE, 'e', GRAVE, -1); - - return 0; -} diff --git a/tests/unigbrk/test-u16-grapheme-next.c b/tests/unigbrk/test-u16-grapheme-next.c deleted file mode 100644 index f54aebcf..00000000 --- a/tests/unigbrk/test-u16-grapheme-next.c +++ /dev/null @@ -1,102 +0,0 @@ -/* Next grapheme cluster length test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdio.h> -#include <stdarg.h> -#include <stdlib.h> - -#include "macros.h" - -static void -test_u16_grapheme_next (size_t len, ...) -{ - const uint16_t *next; - uint16_t s[16]; - va_list args; - size_t n; - - va_start (args, len); - n = 0; - for (;;) - { - int unit = va_arg (args, int); - if (unit == -1) - break; - else if (n >= sizeof s / sizeof *s) - abort (); - - s[n++] = unit; - } - va_end (args); - - next = u16_grapheme_next (s, s + n); - if (next != s + len) - { - size_t i; - - if (next == NULL) - fputs ("u16_grapheme_next returned NULL", stderr); - else - fprintf (stderr, "u16_grapheme_next skipped %zu units", next - s); - fprintf (stderr, ", expected %zu:\n", len); - for (i = 0; i < n; i++) - fprintf (stderr, " %04x", s[i]); - putc ('\n', stderr); - abort (); - } -} - -int -main (void) -{ - static const uint16_t s[] = { 'a', 'b', 'c' }; - - /* Empty string. */ - ASSERT (u16_grapheme_next (NULL, NULL) == NULL); - ASSERT (u16_grapheme_next (s, s) == NULL); - - /* Standalone 1-unit graphemes. */ - test_u16_grapheme_next (1, 'a', -1); - test_u16_grapheme_next (1, 'a', 'b', -1); - test_u16_grapheme_next (1, 'a', 'b', 'c', -1); - - /* Multi-unit, single code point graphemes. */ -#define HIRAGANA_A 0x3042 /* あ: Hiragana letter 'a'. */ - test_u16_grapheme_next (1, HIRAGANA_A, -1); - test_u16_grapheme_next (1, HIRAGANA_A, 'x', -1); - test_u16_grapheme_next (1, HIRAGANA_A, HIRAGANA_A, -1); - - /* Combining accents. */ -#define GRAVE 0x0300 /* Combining grave accent. */ -#define ACUTE 0x0301 /* Combining acute accent. */ - test_u16_grapheme_next (2, 'e', ACUTE, -1); - test_u16_grapheme_next (3, 'e', ACUTE, GRAVE, -1); - test_u16_grapheme_next (2, 'e', ACUTE, 'x', -1); - test_u16_grapheme_next (2, 'e', ACUTE, 'e', ACUTE, -1); - - /* Surrogate pairs. */ - test_u16_grapheme_next (2, 0xd83d, 0xde10, -1); /* 😐: neutral face. */ - test_u16_grapheme_next (3, 0xd83d, 0xde10, GRAVE, -1); - - return 0; -} diff --git a/tests/unigbrk/test-u16-grapheme-prev.c b/tests/unigbrk/test-u16-grapheme-prev.c deleted file mode 100644 index d9057adc..00000000 --- a/tests/unigbrk/test-u16-grapheme-prev.c +++ /dev/null @@ -1,104 +0,0 @@ -/* Previous grapheme cluster test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdio.h> -#include <stdarg.h> -#include <stdlib.h> - -#include "macros.h" - -static void -test_u16_grapheme_prev (size_t len, ...) -{ - const uint16_t *prev; - const uint16_t *end; - uint16_t s[16]; - va_list args; - size_t n; - - va_start (args, len); - n = 0; - for (;;) - { - int unit = va_arg (args, int); - if (unit == -1) - break; - else if (n >= sizeof s / sizeof *s) - abort (); - - s[n++] = unit; - } - va_end (args); - - end = s + n; - prev = u16_grapheme_prev (end, s); - if (prev != end - len) - { - size_t i; - - if (prev == NULL) - fputs ("u16_grapheme_prev returned NULL", stderr); - else - fprintf (stderr, "u16_grapheme_prev skipped %zu units", end - prev); - fprintf (stderr, ", expected %zu:\n", len); - for (i = 0; i < n; i++) - fprintf (stderr, " %04x", s[i]); - putc ('\n', stderr); - abort (); - } -} - -int -main (void) -{ - static const uint16_t s[] = { 'a', 'b', 'c' }; - - /* Empty string. */ - ASSERT (u16_grapheme_prev (NULL, NULL) == NULL); - ASSERT (u16_grapheme_prev (s, s) == NULL); - - /* Standalone 1-unit graphemes. */ - test_u16_grapheme_prev (1, 'a', -1); - test_u16_grapheme_prev (1, 'a', 'b', -1); - test_u16_grapheme_prev (1, 'a', 'b', 'c', -1); - - /* Multi-unit, single code point graphemes. */ -#define HIRAGANA_A 0x3042 /* あ: Hiragana letter 'a'. */ - test_u16_grapheme_prev (1, HIRAGANA_A, -1); - test_u16_grapheme_prev (1, HIRAGANA_A, 'x', -1); - test_u16_grapheme_prev (1, HIRAGANA_A, HIRAGANA_A, -1); - - /* Combining accents. */ -#define GRAVE 0x0300 /* Combining grave accent. */ -#define ACUTE 0x0301 /* Combining acute accent. */ - test_u16_grapheme_prev (2, 'e', ACUTE, -1); - test_u16_grapheme_prev (3, 'e', ACUTE, GRAVE, -1); - test_u16_grapheme_prev (1, 'e', ACUTE, 'x', -1); - test_u16_grapheme_prev (2, 'e', ACUTE, 'e', ACUTE, -1); - - /* Surrogate pairs. */ - test_u16_grapheme_prev (2, 0xd83d, 0xde10, -1); /* 😐: neutral face. */ - test_u16_grapheme_prev (3, 0xd83d, 0xde10, GRAVE, -1); - - return 0; -} diff --git a/tests/unigbrk/test-u32-grapheme-breaks.c b/tests/unigbrk/test-u32-grapheme-breaks.c deleted file mode 100644 index dbfd0400..00000000 --- a/tests/unigbrk/test-u32-grapheme-breaks.c +++ /dev/null @@ -1,103 +0,0 @@ -/* Grapheme cluster breaks test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "macros.h" - -static void -test_u32_grapheme_breaks (const char *expected, ...) -{ - size_t n = strlen (expected); - uint32_t s[16]; - va_list args; - char breaks[16]; - size_t i; - - ASSERT (n <= 16); - - memset (breaks, 0xcc, n); - - va_start (args, expected); - for (i = 0; i < n; i++) - { - int unit = va_arg (args, int); - ASSERT (unit >= 0); - s[i] = unit; - } - ASSERT (va_arg (args, int) == -1); - va_end (args); - - u32_grapheme_breaks (s, n, breaks); - for (i = 0; i < n; i++) - if (breaks[i] != (expected[i] == '#')) - { - size_t j; - - fprintf (stderr, "wrong grapheme breaks:\n"); - - fprintf (stderr, " input:"); - for (j = 0; j < n; j++) - fprintf (stderr, " %02x", s[j]); - putc ('\n', stderr); - - fprintf (stderr, "expected:"); - for (j = 0; j < n; j++) - fprintf (stderr, " %d", expected[j] == '#'); - putc ('\n', stderr); - - fprintf (stderr, " actual:"); - for (j = 0; j < n; j++) - fprintf (stderr, " %d", breaks[j]); - putc ('\n', stderr); - - abort (); - } -} - -int -main (void) -{ - /* Standalone 1-unit graphemes. */ - test_u32_grapheme_breaks ("#", 'a', -1); - test_u32_grapheme_breaks ("##", 'a', 'b', -1); - test_u32_grapheme_breaks ("###", 'a', 'b', 'c', -1); - -#define HIRAGANA_A 0x3042 /* あ: Hiragana letter 'a'. */ - test_u32_grapheme_breaks ("#", HIRAGANA_A, -1); - test_u32_grapheme_breaks ("##", HIRAGANA_A, 'x', -1); - test_u32_grapheme_breaks ("##", HIRAGANA_A, HIRAGANA_A, -1); - - /* Combining accents. */ -#define GRAVE 0x0300 /* Combining grave accent. */ -#define ACUTE 0x0301 /* Combining acute accent. */ - test_u32_grapheme_breaks ("#_", 'e', ACUTE, -1); - test_u32_grapheme_breaks ("#__", 'e', ACUTE, GRAVE, -1); - test_u32_grapheme_breaks ("#_#", 'e', ACUTE, 'x', -1); - test_u32_grapheme_breaks ("#_#_", 'e', ACUTE, 'e', GRAVE, -1); - - return 0; -} diff --git a/tests/unigbrk/test-u32-grapheme-next.c b/tests/unigbrk/test-u32-grapheme-next.c deleted file mode 100644 index 4fc6498e..00000000 --- a/tests/unigbrk/test-u32-grapheme-next.c +++ /dev/null @@ -1,103 +0,0 @@ -/* Next grapheme cluster length test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdio.h> -#include <stdarg.h> -#include <stdlib.h> - -#include "macros.h" - -static void -test_u32_grapheme_next (size_t len, ...) -{ - const uint32_t *next; - uint32_t s[32]; - va_list args; - size_t n; - - va_start (args, len); - n = 0; - for (;;) - { - int unit = va_arg (args, int); - if (unit == -1) - break; - else if (n >= sizeof s / sizeof *s) - abort (); - - s[n++] = unit; - } - va_end (args); - - next = u32_grapheme_next (s, s + n); - if (next != s + len) - { - size_t i; - - if (next == NULL) - fputs ("u32_grapheme_next returned NULL", stderr); - else - fprintf (stderr, "u32_grapheme_next skipped %zu units", next - s); - fprintf (stderr, ", expected %zu:\n", len); - for (i = 0; i < n; i++) - fprintf (stderr, " %04x", s[i]); - putc ('\n', stderr); - abort (); - } -} - -int -main (void) -{ - static const uint32_t s[] = { 'a', 'b', 'c' }; - - /* Empty string. */ - ASSERT (u32_grapheme_next (NULL, NULL) == NULL); - ASSERT (u32_grapheme_next (s, s) == NULL); - - /* Standalone 1-unit graphemes. */ - test_u32_grapheme_next (1, 'a', -1); - test_u32_grapheme_next (1, 'a', 'b', -1); - test_u32_grapheme_next (1, 'a', 'b', 'c', -1); - - /* Multi-unit, single code point graphemes. */ -#define HIRAGANA_A 0x3042 /* あ: Hiragana letter 'a'. */ - test_u32_grapheme_next (1, HIRAGANA_A, -1); - test_u32_grapheme_next (1, HIRAGANA_A, 'x', -1); - test_u32_grapheme_next (1, HIRAGANA_A, HIRAGANA_A, -1); - - /* Combining accents. */ -#define GRAVE 0x0300 /* Combining grave accent. */ -#define ACUTE 0x0301 /* Combining acute accent. */ - test_u32_grapheme_next (2, 'e', ACUTE, -1); - test_u32_grapheme_next (3, 'e', ACUTE, GRAVE, -1); - test_u32_grapheme_next (2, 'e', ACUTE, 'x', -1); - test_u32_grapheme_next (2, 'e', ACUTE, 'e', ACUTE, -1); - - /* Outside BMP. */ -#define NEUTRAL_FACE 0x1f610 /* 😐: neutral face. */ - test_u32_grapheme_next (1, NEUTRAL_FACE, -1); - test_u32_grapheme_next (2, NEUTRAL_FACE, GRAVE, -1); - - return 0; -} diff --git a/tests/unigbrk/test-u32-grapheme-prev.c b/tests/unigbrk/test-u32-grapheme-prev.c deleted file mode 100644 index 12ff0428..00000000 --- a/tests/unigbrk/test-u32-grapheme-prev.c +++ /dev/null @@ -1,105 +0,0 @@ -/* Previous grapheme cluster test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdio.h> -#include <stdarg.h> -#include <stdlib.h> - -#include "macros.h" - -static void -test_u32_grapheme_prev (size_t len, ...) -{ - const uint32_t *prev; - const uint32_t *end; - uint32_t s[16]; - va_list args; - size_t n; - - va_start (args, len); - n = 0; - for (;;) - { - int unit = va_arg (args, int); - if (unit == -1) - break; - else if (n >= sizeof s / sizeof *s) - abort (); - - s[n++] = unit; - } - va_end (args); - - end = s + n; - prev = u32_grapheme_prev (end, s); - if (prev != end - len) - { - size_t i; - - if (prev == NULL) - fputs ("u32_grapheme_prev returned NULL", stderr); - else - fprintf (stderr, "u32_grapheme_prev skipped %zu units", end - prev); - fprintf (stderr, ", expected %zu:\n", len); - for (i = 0; i < n; i++) - fprintf (stderr, " %04x", s[i]); - putc ('\n', stderr); - abort (); - } -} - -int -main (void) -{ - static const uint32_t s[] = { 'a', 'b', 'c' }; - - /* Empty string. */ - ASSERT (u32_grapheme_prev (NULL, NULL) == NULL); - ASSERT (u32_grapheme_prev (s, s) == NULL); - - /* Standalone 1-unit graphemes. */ - test_u32_grapheme_prev (1, 'a', -1); - test_u32_grapheme_prev (1, 'a', 'b', -1); - test_u32_grapheme_prev (1, 'a', 'b', 'c', -1); - - /* Multi-unit, single code point graphemes. */ -#define HIRAGANA_A 0x3042 /* あ: Hiragana letter 'a'. */ - test_u32_grapheme_prev (1, HIRAGANA_A, -1); - test_u32_grapheme_prev (1, HIRAGANA_A, 'x', -1); - test_u32_grapheme_prev (1, HIRAGANA_A, HIRAGANA_A, -1); - - /* Combining accents. */ -#define GRAVE 0x0300 /* Combining grave accent. */ -#define ACUTE 0x0301 /* Combining acute accent. */ - test_u32_grapheme_prev (2, 'e', ACUTE, -1); - test_u32_grapheme_prev (3, 'e', ACUTE, GRAVE, -1); - test_u32_grapheme_prev (1, 'e', ACUTE, 'x', -1); - test_u32_grapheme_prev (2, 'e', ACUTE, 'e', ACUTE, -1); - - /* Outside BMP. */ -#define NEUTRAL_FACE 0x1f610 /* 😐: neutral face. */ - test_u32_grapheme_prev (1, NEUTRAL_FACE, -1); - test_u32_grapheme_prev (2, NEUTRAL_FACE, GRAVE, -1); - - return 0; -} diff --git a/tests/unigbrk/test-u8-grapheme-breaks.c b/tests/unigbrk/test-u8-grapheme-breaks.c deleted file mode 100644 index 97033bb6..00000000 --- a/tests/unigbrk/test-u8-grapheme-breaks.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Grapheme cluster breaks test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "macros.h" - -static void -test_u8_grapheme_breaks (const char *input, const char *expected) -{ - const uint8_t *s = (const uint8_t *) input; - size_t n = strlen (expected); - char *breaks; - size_t i; - - breaks = malloc (n); - if (!breaks) - abort (); - memset (breaks, 0xcc, n); - - u8_grapheme_breaks (s, n, breaks); - for (i = 0; i < n; i++) - if (breaks[i] != (expected[i] == '#')) - { - size_t j; - - fprintf (stderr, "wrong grapheme breaks:\n"); - - fprintf (stderr, " input:"); - for (j = 0; j < n; j++) - fprintf (stderr, " %02x", s[j]); - putc ('\n', stderr); - - fprintf (stderr, "expected:"); - for (j = 0; j < n; j++) - fprintf (stderr, " %d", expected[j] == '#'); - putc ('\n', stderr); - - fprintf (stderr, " actual:"); - for (j = 0; j < n; j++) - fprintf (stderr, " %d", breaks[j]); - putc ('\n', stderr); - - abort (); - } - - free (breaks); -} - -int -main (void) -{ - /* Standalone 1-unit graphemes. */ - test_u8_grapheme_breaks ("a", "#"); - test_u8_grapheme_breaks ("ab", "##"); - test_u8_grapheme_breaks ("abc", "###"); - - /* Multi-unit, single code point graphemes. */ -#define HIRAGANA_A "\343\201\202" /* あ: Hiragana letter 'a'. */ - test_u8_grapheme_breaks (HIRAGANA_A, "#__"); - test_u8_grapheme_breaks (HIRAGANA_A"x", "#__#"); - test_u8_grapheme_breaks (HIRAGANA_A HIRAGANA_A, "#__#__"); - - /* Combining accents. */ -#define GRAVE "\314\200" /* Combining grave accent. */ -#define ACUTE "\314\201" /* Combining acute accent. */ - test_u8_grapheme_breaks ("e"ACUTE, "#__"); - test_u8_grapheme_breaks ("e"ACUTE GRAVE, "#____"); - test_u8_grapheme_breaks ("e"ACUTE"x", "#__#"); - test_u8_grapheme_breaks ("e"ACUTE "e"ACUTE, "#__#__"); - - return 0; -} diff --git a/tests/unigbrk/test-u8-grapheme-next.c b/tests/unigbrk/test-u8-grapheme-next.c deleted file mode 100644 index e437dbdc..00000000 --- a/tests/unigbrk/test-u8-grapheme-next.c +++ /dev/null @@ -1,79 +0,0 @@ -/* Next grapheme cluster length test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdio.h> -#include <stdlib.h> - -#include "macros.h" - -static void -test_u8_grapheme_next (const char *input, size_t n, size_t len) -{ - const uint8_t *s = (const uint8_t *) input; - const uint8_t *next = u8_grapheme_next (s, s + n); - if (next != s + len) - { - size_t i; - - if (next == NULL) - fputs ("u8_grapheme_next returned NULL", stderr); - else - fprintf (stderr, "u8_grapheme_next skipped %zu bytes", next - s); - fprintf (stderr, ", expected %zu:\n", len); - for (i = 0; i < n; i++) - fprintf (stderr, " %02x", s[i]); - putc ('\n', stderr); - abort (); - } -} - -int -main (void) -{ - static const uint8_t s[] = "abc"; - - /* Empty string. */ - ASSERT (u8_grapheme_next (NULL, NULL) == NULL); - ASSERT (u8_grapheme_next (s, s) == NULL); - - /* Standalone 1-unit graphemes. */ - test_u8_grapheme_next ("a", 1, 1); - test_u8_grapheme_next ("ab", 2, 1); - test_u8_grapheme_next ("abc", 3, 1); - - /* Multi-unit, single code point graphemes. */ -#define HIRAGANA_A "\343\201\202" /* あ: Hiragana letter 'a'. */ - test_u8_grapheme_next (HIRAGANA_A, 3, 3); - test_u8_grapheme_next (HIRAGANA_A"x", 4, 3); - test_u8_grapheme_next (HIRAGANA_A HIRAGANA_A, 6, 3); - - /* Combining accents. */ -#define GRAVE "\314\200" /* Combining grave accent. */ -#define ACUTE "\314\201" /* Combining acute accent. */ - test_u8_grapheme_next ("e"ACUTE, 3, 3); - test_u8_grapheme_next ("e"ACUTE GRAVE, 5, 5); - test_u8_grapheme_next ("e"ACUTE"x", 4, 3); - test_u8_grapheme_next ("e"ACUTE "e"ACUTE, 6, 3); - - return 0; -} diff --git a/tests/unigbrk/test-u8-grapheme-prev.c b/tests/unigbrk/test-u8-grapheme-prev.c deleted file mode 100644 index 3f691800..00000000 --- a/tests/unigbrk/test-u8-grapheme-prev.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Previous grapheme cluster test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdio.h> -#include <stdlib.h> - -#include "macros.h" - -static void -test_u8_grapheme_prev (const char *input, size_t n, size_t len) -{ - const uint8_t *s = (const uint8_t *) input; - const uint8_t *end = s + n; - const uint8_t *prev = u8_grapheme_prev (end, s); - if (prev != end - len) - { - size_t i; - - if (prev == NULL) - fputs ("u8_grapheme_prev returned NULL", stderr); - else - fprintf (stderr, "u8_grapheme_prev skipped %zu bytes", end - prev); - fprintf (stderr, ", expected %zu:\n", len); - for (i = 0; i < n; i++) - fprintf (stderr, " %02x", s[i]); - putc ('\n', stderr); - abort (); - } -} - -int -main (void) -{ - static const uint8_t s[] = "abc"; - - /* Empty string. */ - ASSERT (u8_grapheme_prev (NULL, NULL) == NULL); - ASSERT (u8_grapheme_prev (s, s) == NULL); - - /* Standalone 1-unit graphemes. */ - test_u8_grapheme_prev ("a", 1, 1); - test_u8_grapheme_prev ("ab", 2, 1); - test_u8_grapheme_prev ("abc", 3, 1); - - /* Multi-unit, single code point graphemes. */ -#define HIRAGANA_A "\343\201\202" /* あ: Hiragana letter 'a'. */ - test_u8_grapheme_prev (HIRAGANA_A, 3, 3); - test_u8_grapheme_prev (HIRAGANA_A"x", 4, 1); - test_u8_grapheme_prev (HIRAGANA_A HIRAGANA_A, 6, 3); - - /* Combining accents. */ -#define GRAVE "\314\200" /* Combining grave accent. */ -#define ACUTE "\314\201" /* Combining acute accent. */ - test_u8_grapheme_prev ("e"ACUTE, 3, 3); - test_u8_grapheme_prev ("e"ACUTE GRAVE, 5, 5); - test_u8_grapheme_prev ("e"ACUTE"x", 4, 1); - test_u8_grapheme_prev ("e"ACUTE "e"ACUTE, 6, 3); - - return 0; -} diff --git a/tests/unigbrk/test-uc-gbrk-prop.c b/tests/unigbrk/test-uc-gbrk-prop.c deleted file mode 100644 index 8d3a1860..00000000 --- a/tests/unigbrk/test-uc-gbrk-prop.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Test the Unicode grapheme break property function. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -struct uc_gbrk_prop_range -{ - ucs4_t end; - int gbp; -}; - -static const struct uc_gbrk_prop_range set[] = - { -#include "test-uc-gbrk-prop.h" - }; - -#include "macros.h" - -const char * -graphemebreakproperty_to_string (int gbp) -{ - switch (gbp) - { -#define CASE(VALUE) case GBP_##VALUE: return #VALUE; - CASE(OTHER) - CASE(CR) - CASE(LF) - CASE(CONTROL) - CASE(EXTEND) - CASE(PREPEND) - CASE(SPACINGMARK) - CASE(L) - CASE(V) - CASE(T) - CASE(LV) - CASE(LVT) - CASE(RI) - } - abort (); -} - -int -main (void) -{ - const struct uc_gbrk_prop_range *r; - ucs4_t uc; - - uc = 0; - for (r = set; r < set + SIZEOF (set); r++) - { - for (; uc < r->end; uc++) - { - int retval = uc_graphemeclusterbreak_property (uc); - if (retval != r->gbp) - { - fprintf (stderr, "uc_graphemeclusterbreak_property(%#x) " - "yielded %s but should have been %s\n", - uc, graphemebreakproperty_to_string (retval), - graphemebreakproperty_to_string (r->gbp)); - fflush (stderr); - abort (); - } - } - } - ASSERT (uc == 0x110000); - - return 0; -} diff --git a/tests/unigbrk/test-uc-gbrk-prop.h b/tests/unigbrk/test-uc-gbrk-prop.h deleted file mode 100644 index 86324928..00000000 --- a/tests/unigbrk/test-uc-gbrk-prop.h +++ /dev/null @@ -1,1519 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Test the Unicode grapheme break property functions. - Copyright (C) 2010 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -{ 0x000A, GBP_CONTROL }, -{ 0x000B, GBP_LF }, -{ 0x000D, GBP_CONTROL }, -{ 0x000E, GBP_CR }, -{ 0x0020, GBP_CONTROL }, -{ 0x007F, GBP_OTHER }, -{ 0x00A0, GBP_CONTROL }, -{ 0x00AD, GBP_OTHER }, -{ 0x00AE, GBP_CONTROL }, -{ 0x0300, GBP_OTHER }, -{ 0x0370, GBP_EXTEND }, -{ 0x0483, GBP_OTHER }, -{ 0x048A, GBP_EXTEND }, -{ 0x0591, GBP_OTHER }, -{ 0x05BE, GBP_EXTEND }, -{ 0x05BF, GBP_OTHER }, -{ 0x05C0, GBP_EXTEND }, -{ 0x05C1, GBP_OTHER }, -{ 0x05C3, GBP_EXTEND }, -{ 0x05C4, GBP_OTHER }, -{ 0x05C6, GBP_EXTEND }, -{ 0x05C7, GBP_OTHER }, -{ 0x05C8, GBP_EXTEND }, -{ 0x0600, GBP_OTHER }, -{ 0x0606, GBP_CONTROL }, -{ 0x0610, GBP_OTHER }, -{ 0x061B, GBP_EXTEND }, -{ 0x061C, GBP_OTHER }, -{ 0x061D, GBP_CONTROL }, -{ 0x064B, GBP_OTHER }, -{ 0x0660, GBP_EXTEND }, -{ 0x0670, GBP_OTHER }, -{ 0x0671, GBP_EXTEND }, -{ 0x06D6, GBP_OTHER }, -{ 0x06DD, GBP_EXTEND }, -{ 0x06DE, GBP_CONTROL }, -{ 0x06DF, GBP_OTHER }, -{ 0x06E5, GBP_EXTEND }, -{ 0x06E7, GBP_OTHER }, -{ 0x06E9, GBP_EXTEND }, -{ 0x06EA, GBP_OTHER }, -{ 0x06EE, GBP_EXTEND }, -{ 0x070F, GBP_OTHER }, -{ 0x0710, GBP_CONTROL }, -{ 0x0711, GBP_OTHER }, -{ 0x0712, GBP_EXTEND }, -{ 0x0730, GBP_OTHER }, -{ 0x074B, GBP_EXTEND }, -{ 0x07A6, GBP_OTHER }, -{ 0x07B1, GBP_EXTEND }, -{ 0x07EB, GBP_OTHER }, -{ 0x07F4, GBP_EXTEND }, -{ 0x0816, GBP_OTHER }, -{ 0x081A, GBP_EXTEND }, -{ 0x081B, GBP_OTHER }, -{ 0x0824, GBP_EXTEND }, -{ 0x0825, GBP_OTHER }, -{ 0x0828, GBP_EXTEND }, -{ 0x0829, GBP_OTHER }, -{ 0x082E, GBP_EXTEND }, -{ 0x0859, GBP_OTHER }, -{ 0x085C, GBP_EXTEND }, -{ 0x08E3, GBP_OTHER }, -{ 0x0903, GBP_EXTEND }, -{ 0x0904, GBP_SPACINGMARK }, -{ 0x093A, GBP_OTHER }, -{ 0x093B, GBP_EXTEND }, -{ 0x093C, GBP_SPACINGMARK }, -{ 0x093D, GBP_EXTEND }, -{ 0x093E, GBP_OTHER }, -{ 0x0941, GBP_SPACINGMARK }, -{ 0x0949, GBP_EXTEND }, -{ 0x094D, GBP_SPACINGMARK }, -{ 0x094E, GBP_EXTEND }, -{ 0x0950, GBP_SPACINGMARK }, -{ 0x0951, GBP_OTHER }, -{ 0x0958, GBP_EXTEND }, -{ 0x0962, GBP_OTHER }, -{ 0x0964, GBP_EXTEND }, -{ 0x0981, GBP_OTHER }, -{ 0x0982, GBP_EXTEND }, -{ 0x0984, GBP_SPACINGMARK }, -{ 0x09BC, GBP_OTHER }, -{ 0x09BD, GBP_EXTEND }, -{ 0x09BE, GBP_OTHER }, -{ 0x09BF, GBP_EXTEND }, -{ 0x09C1, GBP_SPACINGMARK }, -{ 0x09C5, GBP_EXTEND }, -{ 0x09C7, GBP_OTHER }, -{ 0x09C9, GBP_SPACINGMARK }, -{ 0x09CB, GBP_OTHER }, -{ 0x09CD, GBP_SPACINGMARK }, -{ 0x09CE, GBP_EXTEND }, -{ 0x09D7, GBP_OTHER }, -{ 0x09D8, GBP_EXTEND }, -{ 0x09E2, GBP_OTHER }, -{ 0x09E4, GBP_EXTEND }, -{ 0x0A01, GBP_OTHER }, -{ 0x0A03, GBP_EXTEND }, -{ 0x0A04, GBP_SPACINGMARK }, -{ 0x0A3C, GBP_OTHER }, -{ 0x0A3D, GBP_EXTEND }, -{ 0x0A3E, GBP_OTHER }, -{ 0x0A41, GBP_SPACINGMARK }, -{ 0x0A43, GBP_EXTEND }, -{ 0x0A47, GBP_OTHER }, -{ 0x0A49, GBP_EXTEND }, -{ 0x0A4B, GBP_OTHER }, -{ 0x0A4E, GBP_EXTEND }, -{ 0x0A51, GBP_OTHER }, -{ 0x0A52, GBP_EXTEND }, -{ 0x0A70, GBP_OTHER }, -{ 0x0A72, GBP_EXTEND }, -{ 0x0A75, GBP_OTHER }, -{ 0x0A76, GBP_EXTEND }, -{ 0x0A81, GBP_OTHER }, -{ 0x0A83, GBP_EXTEND }, -{ 0x0A84, GBP_SPACINGMARK }, -{ 0x0ABC, GBP_OTHER }, -{ 0x0ABD, GBP_EXTEND }, -{ 0x0ABE, GBP_OTHER }, -{ 0x0AC1, GBP_SPACINGMARK }, -{ 0x0AC6, GBP_EXTEND }, -{ 0x0AC7, GBP_OTHER }, -{ 0x0AC9, GBP_EXTEND }, -{ 0x0ACA, GBP_SPACINGMARK }, -{ 0x0ACB, GBP_OTHER }, -{ 0x0ACD, GBP_SPACINGMARK }, -{ 0x0ACE, GBP_EXTEND }, -{ 0x0AE2, GBP_OTHER }, -{ 0x0AE4, GBP_EXTEND }, -{ 0x0B01, GBP_OTHER }, -{ 0x0B02, GBP_EXTEND }, -{ 0x0B04, GBP_SPACINGMARK }, -{ 0x0B3C, GBP_OTHER }, -{ 0x0B3D, GBP_EXTEND }, -{ 0x0B3E, GBP_OTHER }, -{ 0x0B40, GBP_EXTEND }, -{ 0x0B41, GBP_SPACINGMARK }, -{ 0x0B45, GBP_EXTEND }, -{ 0x0B47, GBP_OTHER }, -{ 0x0B49, GBP_SPACINGMARK }, -{ 0x0B4B, GBP_OTHER }, -{ 0x0B4D, GBP_SPACINGMARK }, -{ 0x0B4E, GBP_EXTEND }, -{ 0x0B56, GBP_OTHER }, -{ 0x0B58, GBP_EXTEND }, -{ 0x0B62, GBP_OTHER }, -{ 0x0B64, GBP_EXTEND }, -{ 0x0B82, GBP_OTHER }, -{ 0x0B83, GBP_EXTEND }, -{ 0x0BBE, GBP_OTHER }, -{ 0x0BBF, GBP_EXTEND }, -{ 0x0BC0, GBP_SPACINGMARK }, -{ 0x0BC1, GBP_EXTEND }, -{ 0x0BC3, GBP_SPACINGMARK }, -{ 0x0BC6, GBP_OTHER }, -{ 0x0BC9, GBP_SPACINGMARK }, -{ 0x0BCA, GBP_OTHER }, -{ 0x0BCD, GBP_SPACINGMARK }, -{ 0x0BCE, GBP_EXTEND }, -{ 0x0BD7, GBP_OTHER }, -{ 0x0BD8, GBP_EXTEND }, -{ 0x0C00, GBP_OTHER }, -{ 0x0C01, GBP_EXTEND }, -{ 0x0C04, GBP_SPACINGMARK }, -{ 0x0C3E, GBP_OTHER }, -{ 0x0C41, GBP_EXTEND }, -{ 0x0C45, GBP_SPACINGMARK }, -{ 0x0C46, GBP_OTHER }, -{ 0x0C49, GBP_EXTEND }, -{ 0x0C4A, GBP_OTHER }, -{ 0x0C4E, GBP_EXTEND }, -{ 0x0C55, GBP_OTHER }, -{ 0x0C57, GBP_EXTEND }, -{ 0x0C62, GBP_OTHER }, -{ 0x0C64, GBP_EXTEND }, -{ 0x0C81, GBP_OTHER }, -{ 0x0C82, GBP_EXTEND }, -{ 0x0C84, GBP_SPACINGMARK }, -{ 0x0CBC, GBP_OTHER }, -{ 0x0CBD, GBP_EXTEND }, -{ 0x0CBE, GBP_OTHER }, -{ 0x0CBF, GBP_SPACINGMARK }, -{ 0x0CC0, GBP_EXTEND }, -{ 0x0CC2, GBP_SPACINGMARK }, -{ 0x0CC3, GBP_EXTEND }, -{ 0x0CC5, GBP_SPACINGMARK }, -{ 0x0CC6, GBP_OTHER }, -{ 0x0CC7, GBP_EXTEND }, -{ 0x0CC9, GBP_SPACINGMARK }, -{ 0x0CCA, GBP_OTHER }, -{ 0x0CCC, GBP_SPACINGMARK }, -{ 0x0CCE, GBP_EXTEND }, -{ 0x0CD5, GBP_OTHER }, -{ 0x0CD7, GBP_EXTEND }, -{ 0x0CE2, GBP_OTHER }, -{ 0x0CE4, GBP_EXTEND }, -{ 0x0D01, GBP_OTHER }, -{ 0x0D02, GBP_EXTEND }, -{ 0x0D04, GBP_SPACINGMARK }, -{ 0x0D3E, GBP_OTHER }, -{ 0x0D3F, GBP_EXTEND }, -{ 0x0D41, GBP_SPACINGMARK }, -{ 0x0D45, GBP_EXTEND }, -{ 0x0D46, GBP_OTHER }, -{ 0x0D49, GBP_SPACINGMARK }, -{ 0x0D4A, GBP_OTHER }, -{ 0x0D4D, GBP_SPACINGMARK }, -{ 0x0D4E, GBP_EXTEND }, -{ 0x0D57, GBP_OTHER }, -{ 0x0D58, GBP_EXTEND }, -{ 0x0D62, GBP_OTHER }, -{ 0x0D64, GBP_EXTEND }, -{ 0x0D82, GBP_OTHER }, -{ 0x0D84, GBP_SPACINGMARK }, -{ 0x0DCA, GBP_OTHER }, -{ 0x0DCB, GBP_EXTEND }, -{ 0x0DCF, GBP_OTHER }, -{ 0x0DD0, GBP_EXTEND }, -{ 0x0DD2, GBP_SPACINGMARK }, -{ 0x0DD5, GBP_EXTEND }, -{ 0x0DD6, GBP_OTHER }, -{ 0x0DD7, GBP_EXTEND }, -{ 0x0DD8, GBP_OTHER }, -{ 0x0DDF, GBP_SPACINGMARK }, -{ 0x0DE0, GBP_EXTEND }, -{ 0x0DF2, GBP_OTHER }, -{ 0x0DF4, GBP_SPACINGMARK }, -{ 0x0E31, GBP_OTHER }, -{ 0x0E32, GBP_EXTEND }, -{ 0x0E33, GBP_OTHER }, -{ 0x0E34, GBP_SPACINGMARK }, -{ 0x0E3B, GBP_EXTEND }, -{ 0x0E47, GBP_OTHER }, -{ 0x0E4F, GBP_EXTEND }, -{ 0x0EB1, GBP_OTHER }, -{ 0x0EB2, GBP_EXTEND }, -{ 0x0EB3, GBP_OTHER }, -{ 0x0EB4, GBP_SPACINGMARK }, -{ 0x0EBA, GBP_EXTEND }, -{ 0x0EBB, GBP_OTHER }, -{ 0x0EBD, GBP_EXTEND }, -{ 0x0EC8, GBP_OTHER }, -{ 0x0ECE, GBP_EXTEND }, -{ 0x0F18, GBP_OTHER }, -{ 0x0F1A, GBP_EXTEND }, -{ 0x0F35, GBP_OTHER }, -{ 0x0F36, GBP_EXTEND }, -{ 0x0F37, GBP_OTHER }, -{ 0x0F38, GBP_EXTEND }, -{ 0x0F39, GBP_OTHER }, -{ 0x0F3A, GBP_EXTEND }, -{ 0x0F3E, GBP_OTHER }, -{ 0x0F40, GBP_SPACINGMARK }, -{ 0x0F71, GBP_OTHER }, -{ 0x0F7F, GBP_EXTEND }, -{ 0x0F80, GBP_SPACINGMARK }, -{ 0x0F85, GBP_EXTEND }, -{ 0x0F86, GBP_OTHER }, -{ 0x0F88, GBP_EXTEND }, -{ 0x0F8D, GBP_OTHER }, -{ 0x0F98, GBP_EXTEND }, -{ 0x0F99, GBP_OTHER }, -{ 0x0FBD, GBP_EXTEND }, -{ 0x0FC6, GBP_OTHER }, -{ 0x0FC7, GBP_EXTEND }, -{ 0x102D, GBP_OTHER }, -{ 0x1031, GBP_EXTEND }, -{ 0x1032, GBP_SPACINGMARK }, -{ 0x1038, GBP_EXTEND }, -{ 0x1039, GBP_OTHER }, -{ 0x103B, GBP_EXTEND }, -{ 0x103D, GBP_SPACINGMARK }, -{ 0x103F, GBP_EXTEND }, -{ 0x1056, GBP_OTHER }, -{ 0x1058, GBP_SPACINGMARK }, -{ 0x105A, GBP_EXTEND }, -{ 0x105E, GBP_OTHER }, -{ 0x1061, GBP_EXTEND }, -{ 0x1071, GBP_OTHER }, -{ 0x1075, GBP_EXTEND }, -{ 0x1082, GBP_OTHER }, -{ 0x1083, GBP_EXTEND }, -{ 0x1084, GBP_OTHER }, -{ 0x1085, GBP_SPACINGMARK }, -{ 0x1087, GBP_EXTEND }, -{ 0x108D, GBP_OTHER }, -{ 0x108E, GBP_EXTEND }, -{ 0x109D, GBP_OTHER }, -{ 0x109E, GBP_EXTEND }, -{ 0x1100, GBP_OTHER }, -{ 0x1160, GBP_L }, -{ 0x11A8, GBP_V }, -{ 0x1200, GBP_T }, -{ 0x135D, GBP_OTHER }, -{ 0x1360, GBP_EXTEND }, -{ 0x1712, GBP_OTHER }, -{ 0x1715, GBP_EXTEND }, -{ 0x1732, GBP_OTHER }, -{ 0x1735, GBP_EXTEND }, -{ 0x1752, GBP_OTHER }, -{ 0x1754, GBP_EXTEND }, -{ 0x1772, GBP_OTHER }, -{ 0x1774, GBP_EXTEND }, -{ 0x17B4, GBP_OTHER }, -{ 0x17B6, GBP_EXTEND }, -{ 0x17B7, GBP_SPACINGMARK }, -{ 0x17BE, GBP_EXTEND }, -{ 0x17C6, GBP_SPACINGMARK }, -{ 0x17C7, GBP_EXTEND }, -{ 0x17C9, GBP_SPACINGMARK }, -{ 0x17D4, GBP_EXTEND }, -{ 0x17DD, GBP_OTHER }, -{ 0x17DE, GBP_EXTEND }, -{ 0x180B, GBP_OTHER }, -{ 0x180E, GBP_EXTEND }, -{ 0x180F, GBP_CONTROL }, -{ 0x18A9, GBP_OTHER }, -{ 0x18AA, GBP_EXTEND }, -{ 0x1920, GBP_OTHER }, -{ 0x1923, GBP_EXTEND }, -{ 0x1927, GBP_SPACINGMARK }, -{ 0x1929, GBP_EXTEND }, -{ 0x192C, GBP_SPACINGMARK }, -{ 0x1930, GBP_OTHER }, -{ 0x1932, GBP_SPACINGMARK }, -{ 0x1933, GBP_EXTEND }, -{ 0x1939, GBP_SPACINGMARK }, -{ 0x193C, GBP_EXTEND }, -{ 0x1A17, GBP_OTHER }, -{ 0x1A19, GBP_EXTEND }, -{ 0x1A1B, GBP_SPACINGMARK }, -{ 0x1A1C, GBP_EXTEND }, -{ 0x1A55, GBP_OTHER }, -{ 0x1A56, GBP_SPACINGMARK }, -{ 0x1A57, GBP_EXTEND }, -{ 0x1A58, GBP_SPACINGMARK }, -{ 0x1A5F, GBP_EXTEND }, -{ 0x1A60, GBP_OTHER }, -{ 0x1A61, GBP_EXTEND }, -{ 0x1A62, GBP_OTHER }, -{ 0x1A63, GBP_EXTEND }, -{ 0x1A65, GBP_OTHER }, -{ 0x1A6D, GBP_EXTEND }, -{ 0x1A73, GBP_SPACINGMARK }, -{ 0x1A7D, GBP_EXTEND }, -{ 0x1A7F, GBP_OTHER }, -{ 0x1A80, GBP_EXTEND }, -{ 0x1AB0, GBP_OTHER }, -{ 0x1ABF, GBP_EXTEND }, -{ 0x1B00, GBP_OTHER }, -{ 0x1B04, GBP_EXTEND }, -{ 0x1B05, GBP_SPACINGMARK }, -{ 0x1B34, GBP_OTHER }, -{ 0x1B35, GBP_EXTEND }, -{ 0x1B36, GBP_SPACINGMARK }, -{ 0x1B3B, GBP_EXTEND }, -{ 0x1B3C, GBP_SPACINGMARK }, -{ 0x1B3D, GBP_EXTEND }, -{ 0x1B42, GBP_SPACINGMARK }, -{ 0x1B43, GBP_EXTEND }, -{ 0x1B45, GBP_SPACINGMARK }, -{ 0x1B6B, GBP_OTHER }, -{ 0x1B74, GBP_EXTEND }, -{ 0x1B80, GBP_OTHER }, -{ 0x1B82, GBP_EXTEND }, -{ 0x1B83, GBP_SPACINGMARK }, -{ 0x1BA1, GBP_OTHER }, -{ 0x1BA2, GBP_SPACINGMARK }, -{ 0x1BA6, GBP_EXTEND }, -{ 0x1BA8, GBP_SPACINGMARK }, -{ 0x1BAA, GBP_EXTEND }, -{ 0x1BAB, GBP_SPACINGMARK }, -{ 0x1BAE, GBP_EXTEND }, -{ 0x1BE6, GBP_OTHER }, -{ 0x1BE7, GBP_EXTEND }, -{ 0x1BE8, GBP_SPACINGMARK }, -{ 0x1BEA, GBP_EXTEND }, -{ 0x1BED, GBP_SPACINGMARK }, -{ 0x1BEE, GBP_EXTEND }, -{ 0x1BEF, GBP_SPACINGMARK }, -{ 0x1BF2, GBP_EXTEND }, -{ 0x1BF4, GBP_SPACINGMARK }, -{ 0x1C24, GBP_OTHER }, -{ 0x1C2C, GBP_SPACINGMARK }, -{ 0x1C34, GBP_EXTEND }, -{ 0x1C36, GBP_SPACINGMARK }, -{ 0x1C38, GBP_EXTEND }, -{ 0x1CD0, GBP_OTHER }, -{ 0x1CD3, GBP_EXTEND }, -{ 0x1CD4, GBP_OTHER }, -{ 0x1CE1, GBP_EXTEND }, -{ 0x1CE2, GBP_SPACINGMARK }, -{ 0x1CE9, GBP_EXTEND }, -{ 0x1CED, GBP_OTHER }, -{ 0x1CEE, GBP_EXTEND }, -{ 0x1CF2, GBP_OTHER }, -{ 0x1CF4, GBP_SPACINGMARK }, -{ 0x1CF5, GBP_EXTEND }, -{ 0x1CF8, GBP_OTHER }, -{ 0x1CFA, GBP_EXTEND }, -{ 0x1DC0, GBP_OTHER }, -{ 0x1DF6, GBP_EXTEND }, -{ 0x1DFC, GBP_OTHER }, -{ 0x1E00, GBP_EXTEND }, -{ 0x200B, GBP_OTHER }, -{ 0x200C, GBP_CONTROL }, -{ 0x200E, GBP_EXTEND }, -{ 0x2010, GBP_CONTROL }, -{ 0x2028, GBP_OTHER }, -{ 0x202F, GBP_CONTROL }, -{ 0x2060, GBP_OTHER }, -{ 0x2070, GBP_CONTROL }, -{ 0x20D0, GBP_OTHER }, -{ 0x20F1, GBP_EXTEND }, -{ 0x2CEF, GBP_OTHER }, -{ 0x2CF2, GBP_EXTEND }, -{ 0x2D7F, GBP_OTHER }, -{ 0x2D80, GBP_EXTEND }, -{ 0x2DE0, GBP_OTHER }, -{ 0x2E00, GBP_EXTEND }, -{ 0x302A, GBP_OTHER }, -{ 0x3030, GBP_EXTEND }, -{ 0x3099, GBP_OTHER }, -{ 0x309B, GBP_EXTEND }, -{ 0xA66F, GBP_OTHER }, -{ 0xA673, GBP_EXTEND }, -{ 0xA674, GBP_OTHER }, -{ 0xA67E, GBP_EXTEND }, -{ 0xA69E, GBP_OTHER }, -{ 0xA6A0, GBP_EXTEND }, -{ 0xA6F0, GBP_OTHER }, -{ 0xA6F2, GBP_EXTEND }, -{ 0xA802, GBP_OTHER }, -{ 0xA803, GBP_EXTEND }, -{ 0xA806, GBP_OTHER }, -{ 0xA807, GBP_EXTEND }, -{ 0xA80B, GBP_OTHER }, -{ 0xA80C, GBP_EXTEND }, -{ 0xA823, GBP_OTHER }, -{ 0xA825, GBP_SPACINGMARK }, -{ 0xA827, GBP_EXTEND }, -{ 0xA828, GBP_SPACINGMARK }, -{ 0xA880, GBP_OTHER }, -{ 0xA882, GBP_SPACINGMARK }, -{ 0xA8B4, GBP_OTHER }, -{ 0xA8C4, GBP_SPACINGMARK }, -{ 0xA8C5, GBP_EXTEND }, -{ 0xA8E0, GBP_OTHER }, -{ 0xA8F2, GBP_EXTEND }, -{ 0xA926, GBP_OTHER }, -{ 0xA92E, GBP_EXTEND }, -{ 0xA947, GBP_OTHER }, -{ 0xA952, GBP_EXTEND }, -{ 0xA954, GBP_SPACINGMARK }, -{ 0xA960, GBP_OTHER }, -{ 0xA97D, GBP_L }, -{ 0xA980, GBP_OTHER }, -{ 0xA983, GBP_EXTEND }, -{ 0xA984, GBP_SPACINGMARK }, -{ 0xA9B3, GBP_OTHER }, -{ 0xA9B4, GBP_EXTEND }, -{ 0xA9B6, GBP_SPACINGMARK }, -{ 0xA9BA, GBP_EXTEND }, -{ 0xA9BC, GBP_SPACINGMARK }, -{ 0xA9BD, GBP_EXTEND }, -{ 0xA9C1, GBP_SPACINGMARK }, -{ 0xA9E5, GBP_OTHER }, -{ 0xA9E6, GBP_EXTEND }, -{ 0xAA29, GBP_OTHER }, -{ 0xAA2F, GBP_EXTEND }, -{ 0xAA31, GBP_SPACINGMARK }, -{ 0xAA33, GBP_EXTEND }, -{ 0xAA35, GBP_SPACINGMARK }, -{ 0xAA37, GBP_EXTEND }, -{ 0xAA43, GBP_OTHER }, -{ 0xAA44, GBP_EXTEND }, -{ 0xAA4C, GBP_OTHER }, -{ 0xAA4D, GBP_EXTEND }, -{ 0xAA4E, GBP_SPACINGMARK }, -{ 0xAA7C, GBP_OTHER }, -{ 0xAA7D, GBP_EXTEND }, -{ 0xAAB0, GBP_OTHER }, -{ 0xAAB1, GBP_EXTEND }, -{ 0xAAB2, GBP_OTHER }, -{ 0xAAB5, GBP_EXTEND }, -{ 0xAAB7, GBP_OTHER }, -{ 0xAAB9, GBP_EXTEND }, -{ 0xAABE, GBP_OTHER }, -{ 0xAAC0, GBP_EXTEND }, -{ 0xAAC1, GBP_OTHER }, -{ 0xAAC2, GBP_EXTEND }, -{ 0xAAEB, GBP_OTHER }, -{ 0xAAEC, GBP_SPACINGMARK }, -{ 0xAAEE, GBP_EXTEND }, -{ 0xAAF0, GBP_SPACINGMARK }, -{ 0xAAF5, GBP_OTHER }, -{ 0xAAF6, GBP_SPACINGMARK }, -{ 0xAAF7, GBP_EXTEND }, -{ 0xABE3, GBP_OTHER }, -{ 0xABE5, GBP_SPACINGMARK }, -{ 0xABE6, GBP_EXTEND }, -{ 0xABE8, GBP_SPACINGMARK }, -{ 0xABE9, GBP_EXTEND }, -{ 0xABEB, GBP_SPACINGMARK }, -{ 0xABEC, GBP_OTHER }, -{ 0xABED, GBP_SPACINGMARK }, -{ 0xABEE, GBP_EXTEND }, -{ 0xAC00, GBP_OTHER }, -{ 0xAC01, GBP_LV }, -{ 0xAC1C, GBP_LVT }, -{ 0xAC1D, GBP_LV }, -{ 0xAC38, GBP_LVT }, -{ 0xAC39, GBP_LV }, -{ 0xAC54, GBP_LVT }, -{ 0xAC55, GBP_LV }, -{ 0xAC70, GBP_LVT }, -{ 0xAC71, GBP_LV }, -{ 0xAC8C, GBP_LVT }, -{ 0xAC8D, GBP_LV }, -{ 0xACA8, GBP_LVT }, -{ 0xACA9, GBP_LV }, -{ 0xACC4, GBP_LVT }, -{ 0xACC5, GBP_LV }, -{ 0xACE0, GBP_LVT }, -{ 0xACE1, GBP_LV }, -{ 0xACFC, GBP_LVT }, -{ 0xACFD, GBP_LV }, -{ 0xAD18, GBP_LVT }, -{ 0xAD19, GBP_LV }, -{ 0xAD34, GBP_LVT }, -{ 0xAD35, GBP_LV }, -{ 0xAD50, GBP_LVT }, -{ 0xAD51, GBP_LV }, -{ 0xAD6C, GBP_LVT }, -{ 0xAD6D, GBP_LV }, -{ 0xAD88, GBP_LVT }, -{ 0xAD89, GBP_LV }, -{ 0xADA4, GBP_LVT }, -{ 0xADA5, GBP_LV }, -{ 0xADC0, GBP_LVT }, -{ 0xADC1, GBP_LV }, -{ 0xADDC, GBP_LVT }, -{ 0xADDD, GBP_LV }, -{ 0xADF8, GBP_LVT }, -{ 0xADF9, GBP_LV }, -{ 0xAE14, GBP_LVT }, -{ 0xAE15, GBP_LV }, -{ 0xAE30, GBP_LVT }, -{ 0xAE31, GBP_LV }, -{ 0xAE4C, GBP_LVT }, -{ 0xAE4D, GBP_LV }, -{ 0xAE68, GBP_LVT }, -{ 0xAE69, GBP_LV }, -{ 0xAE84, GBP_LVT }, -{ 0xAE85, GBP_LV }, -{ 0xAEA0, GBP_LVT }, -{ 0xAEA1, GBP_LV }, -{ 0xAEBC, GBP_LVT }, -{ 0xAEBD, GBP_LV }, -{ 0xAED8, GBP_LVT }, -{ 0xAED9, GBP_LV }, -{ 0xAEF4, GBP_LVT }, -{ 0xAEF5, GBP_LV }, -{ 0xAF10, GBP_LVT }, -{ 0xAF11, GBP_LV }, -{ 0xAF2C, GBP_LVT }, -{ 0xAF2D, GBP_LV }, -{ 0xAF48, GBP_LVT }, -{ 0xAF49, GBP_LV }, -{ 0xAF64, GBP_LVT }, -{ 0xAF65, GBP_LV }, -{ 0xAF80, GBP_LVT }, -{ 0xAF81, GBP_LV }, -{ 0xAF9C, GBP_LVT }, -{ 0xAF9D, GBP_LV }, -{ 0xAFB8, GBP_LVT }, -{ 0xAFB9, GBP_LV }, -{ 0xAFD4, GBP_LVT }, -{ 0xAFD5, GBP_LV }, -{ 0xAFF0, GBP_LVT }, -{ 0xAFF1, GBP_LV }, -{ 0xB00C, GBP_LVT }, -{ 0xB00D, GBP_LV }, -{ 0xB028, GBP_LVT }, -{ 0xB029, GBP_LV }, -{ 0xB044, GBP_LVT }, -{ 0xB045, GBP_LV }, -{ 0xB060, GBP_LVT }, -{ 0xB061, GBP_LV }, -{ 0xB07C, GBP_LVT }, -{ 0xB07D, GBP_LV }, -{ 0xB098, GBP_LVT }, -{ 0xB099, GBP_LV }, -{ 0xB0B4, GBP_LVT }, -{ 0xB0B5, GBP_LV }, -{ 0xB0D0, GBP_LVT }, -{ 0xB0D1, GBP_LV }, -{ 0xB0EC, GBP_LVT }, -{ 0xB0ED, GBP_LV }, -{ 0xB108, GBP_LVT }, -{ 0xB109, GBP_LV }, -{ 0xB124, GBP_LVT }, -{ 0xB125, GBP_LV }, -{ 0xB140, GBP_LVT }, -{ 0xB141, GBP_LV }, -{ 0xB15C, GBP_LVT }, -{ 0xB15D, GBP_LV }, -{ 0xB178, GBP_LVT }, -{ 0xB179, GBP_LV }, -{ 0xB194, GBP_LVT }, -{ 0xB195, GBP_LV }, -{ 0xB1B0, GBP_LVT }, -{ 0xB1B1, GBP_LV }, -{ 0xB1CC, GBP_LVT }, -{ 0xB1CD, GBP_LV }, -{ 0xB1E8, GBP_LVT }, -{ 0xB1E9, GBP_LV }, -{ 0xB204, GBP_LVT }, -{ 0xB205, GBP_LV }, -{ 0xB220, GBP_LVT }, -{ 0xB221, GBP_LV }, -{ 0xB23C, GBP_LVT }, -{ 0xB23D, GBP_LV }, -{ 0xB258, GBP_LVT }, -{ 0xB259, GBP_LV }, -{ 0xB274, GBP_LVT }, -{ 0xB275, GBP_LV }, -{ 0xB290, GBP_LVT }, -{ 0xB291, GBP_LV }, -{ 0xB2AC, GBP_LVT }, -{ 0xB2AD, GBP_LV }, -{ 0xB2C8, GBP_LVT }, -{ 0xB2C9, GBP_LV }, -{ 0xB2E4, GBP_LVT }, -{ 0xB2E5, GBP_LV }, -{ 0xB300, GBP_LVT }, -{ 0xB301, GBP_LV }, -{ 0xB31C, GBP_LVT }, -{ 0xB31D, GBP_LV }, -{ 0xB338, GBP_LVT }, -{ 0xB339, GBP_LV }, -{ 0xB354, GBP_LVT }, -{ 0xB355, GBP_LV }, -{ 0xB370, GBP_LVT }, -{ 0xB371, GBP_LV }, -{ 0xB38C, GBP_LVT }, -{ 0xB38D, GBP_LV }, -{ 0xB3A8, GBP_LVT }, -{ 0xB3A9, GBP_LV }, -{ 0xB3C4, GBP_LVT }, -{ 0xB3C5, GBP_LV }, -{ 0xB3E0, GBP_LVT }, -{ 0xB3E1, GBP_LV }, -{ 0xB3FC, GBP_LVT }, -{ 0xB3FD, GBP_LV }, -{ 0xB418, GBP_LVT }, -{ 0xB419, GBP_LV }, -{ 0xB434, GBP_LVT }, -{ 0xB435, GBP_LV }, -{ 0xB450, GBP_LVT }, -{ 0xB451, GBP_LV }, -{ 0xB46C, GBP_LVT }, -{ 0xB46D, GBP_LV }, -{ 0xB488, GBP_LVT }, -{ 0xB489, GBP_LV }, -{ 0xB4A4, GBP_LVT }, -{ 0xB4A5, GBP_LV }, -{ 0xB4C0, GBP_LVT }, -{ 0xB4C1, GBP_LV }, -{ 0xB4DC, GBP_LVT }, -{ 0xB4DD, GBP_LV }, -{ 0xB4F8, GBP_LVT }, -{ 0xB4F9, GBP_LV }, -{ 0xB514, GBP_LVT }, -{ 0xB515, GBP_LV }, -{ 0xB530, GBP_LVT }, -{ 0xB531, GBP_LV }, -{ 0xB54C, GBP_LVT }, -{ 0xB54D, GBP_LV }, -{ 0xB568, GBP_LVT }, -{ 0xB569, GBP_LV }, -{ 0xB584, GBP_LVT }, -{ 0xB585, GBP_LV }, -{ 0xB5A0, GBP_LVT }, -{ 0xB5A1, GBP_LV }, -{ 0xB5BC, GBP_LVT }, -{ 0xB5BD, GBP_LV }, -{ 0xB5D8, GBP_LVT }, -{ 0xB5D9, GBP_LV }, -{ 0xB5F4, GBP_LVT }, -{ 0xB5F5, GBP_LV }, -{ 0xB610, GBP_LVT }, -{ 0xB611, GBP_LV }, -{ 0xB62C, GBP_LVT }, -{ 0xB62D, GBP_LV }, -{ 0xB648, GBP_LVT }, -{ 0xB649, GBP_LV }, -{ 0xB664, GBP_LVT }, -{ 0xB665, GBP_LV }, -{ 0xB680, GBP_LVT }, -{ 0xB681, GBP_LV }, -{ 0xB69C, GBP_LVT }, -{ 0xB69D, GBP_LV }, -{ 0xB6B8, GBP_LVT }, -{ 0xB6B9, GBP_LV }, -{ 0xB6D4, GBP_LVT }, -{ 0xB6D5, GBP_LV }, -{ 0xB6F0, GBP_LVT }, -{ 0xB6F1, GBP_LV }, -{ 0xB70C, GBP_LVT }, -{ 0xB70D, GBP_LV }, -{ 0xB728, GBP_LVT }, -{ 0xB729, GBP_LV }, -{ 0xB744, GBP_LVT }, -{ 0xB745, GBP_LV }, -{ 0xB760, GBP_LVT }, -{ 0xB761, GBP_LV }, -{ 0xB77C, GBP_LVT }, -{ 0xB77D, GBP_LV }, -{ 0xB798, GBP_LVT }, -{ 0xB799, GBP_LV }, -{ 0xB7B4, GBP_LVT }, -{ 0xB7B5, GBP_LV }, -{ 0xB7D0, GBP_LVT }, -{ 0xB7D1, GBP_LV }, -{ 0xB7EC, GBP_LVT }, -{ 0xB7ED, GBP_LV }, -{ 0xB808, GBP_LVT }, -{ 0xB809, GBP_LV }, -{ 0xB824, GBP_LVT }, -{ 0xB825, GBP_LV }, -{ 0xB840, GBP_LVT }, -{ 0xB841, GBP_LV }, -{ 0xB85C, GBP_LVT }, -{ 0xB85D, GBP_LV }, -{ 0xB878, GBP_LVT }, -{ 0xB879, GBP_LV }, -{ 0xB894, GBP_LVT }, -{ 0xB895, GBP_LV }, -{ 0xB8B0, GBP_LVT }, -{ 0xB8B1, GBP_LV }, -{ 0xB8CC, GBP_LVT }, -{ 0xB8CD, GBP_LV }, -{ 0xB8E8, GBP_LVT }, -{ 0xB8E9, GBP_LV }, -{ 0xB904, GBP_LVT }, -{ 0xB905, GBP_LV }, -{ 0xB920, GBP_LVT }, -{ 0xB921, GBP_LV }, -{ 0xB93C, GBP_LVT }, -{ 0xB93D, GBP_LV }, -{ 0xB958, GBP_LVT }, -{ 0xB959, GBP_LV }, -{ 0xB974, GBP_LVT }, -{ 0xB975, GBP_LV }, -{ 0xB990, GBP_LVT }, -{ 0xB991, GBP_LV }, -{ 0xB9AC, GBP_LVT }, -{ 0xB9AD, GBP_LV }, -{ 0xB9C8, GBP_LVT }, -{ 0xB9C9, GBP_LV }, -{ 0xB9E4, GBP_LVT }, -{ 0xB9E5, GBP_LV }, -{ 0xBA00, GBP_LVT }, -{ 0xBA01, GBP_LV }, -{ 0xBA1C, GBP_LVT }, -{ 0xBA1D, GBP_LV }, -{ 0xBA38, GBP_LVT }, -{ 0xBA39, GBP_LV }, -{ 0xBA54, GBP_LVT }, -{ 0xBA55, GBP_LV }, -{ 0xBA70, GBP_LVT }, -{ 0xBA71, GBP_LV }, -{ 0xBA8C, GBP_LVT }, -{ 0xBA8D, GBP_LV }, -{ 0xBAA8, GBP_LVT }, -{ 0xBAA9, GBP_LV }, -{ 0xBAC4, GBP_LVT }, -{ 0xBAC5, GBP_LV }, -{ 0xBAE0, GBP_LVT }, -{ 0xBAE1, GBP_LV }, -{ 0xBAFC, GBP_LVT }, -{ 0xBAFD, GBP_LV }, -{ 0xBB18, GBP_LVT }, -{ 0xBB19, GBP_LV }, -{ 0xBB34, GBP_LVT }, -{ 0xBB35, GBP_LV }, -{ 0xBB50, GBP_LVT }, -{ 0xBB51, GBP_LV }, -{ 0xBB6C, GBP_LVT }, -{ 0xBB6D, GBP_LV }, -{ 0xBB88, GBP_LVT }, -{ 0xBB89, GBP_LV }, -{ 0xBBA4, GBP_LVT }, -{ 0xBBA5, GBP_LV }, -{ 0xBBC0, GBP_LVT }, -{ 0xBBC1, GBP_LV }, -{ 0xBBDC, GBP_LVT }, -{ 0xBBDD, GBP_LV }, -{ 0xBBF8, GBP_LVT }, -{ 0xBBF9, GBP_LV }, -{ 0xBC14, GBP_LVT }, -{ 0xBC15, GBP_LV }, -{ 0xBC30, GBP_LVT }, -{ 0xBC31, GBP_LV }, -{ 0xBC4C, GBP_LVT }, -{ 0xBC4D, GBP_LV }, -{ 0xBC68, GBP_LVT }, -{ 0xBC69, GBP_LV }, -{ 0xBC84, GBP_LVT }, -{ 0xBC85, GBP_LV }, -{ 0xBCA0, GBP_LVT }, -{ 0xBCA1, GBP_LV }, -{ 0xBCBC, GBP_LVT }, -{ 0xBCBD, GBP_LV }, -{ 0xBCD8, GBP_LVT }, -{ 0xBCD9, GBP_LV }, -{ 0xBCF4, GBP_LVT }, -{ 0xBCF5, GBP_LV }, -{ 0xBD10, GBP_LVT }, -{ 0xBD11, GBP_LV }, -{ 0xBD2C, GBP_LVT }, -{ 0xBD2D, GBP_LV }, -{ 0xBD48, GBP_LVT }, -{ 0xBD49, GBP_LV }, -{ 0xBD64, GBP_LVT }, -{ 0xBD65, GBP_LV }, -{ 0xBD80, GBP_LVT }, -{ 0xBD81, GBP_LV }, -{ 0xBD9C, GBP_LVT }, -{ 0xBD9D, GBP_LV }, -{ 0xBDB8, GBP_LVT }, -{ 0xBDB9, GBP_LV }, -{ 0xBDD4, GBP_LVT }, -{ 0xBDD5, GBP_LV }, -{ 0xBDF0, GBP_LVT }, -{ 0xBDF1, GBP_LV }, -{ 0xBE0C, GBP_LVT }, -{ 0xBE0D, GBP_LV }, -{ 0xBE28, GBP_LVT }, -{ 0xBE29, GBP_LV }, -{ 0xBE44, GBP_LVT }, -{ 0xBE45, GBP_LV }, -{ 0xBE60, GBP_LVT }, -{ 0xBE61, GBP_LV }, -{ 0xBE7C, GBP_LVT }, -{ 0xBE7D, GBP_LV }, -{ 0xBE98, GBP_LVT }, -{ 0xBE99, GBP_LV }, -{ 0xBEB4, GBP_LVT }, -{ 0xBEB5, GBP_LV }, -{ 0xBED0, GBP_LVT }, -{ 0xBED1, GBP_LV }, -{ 0xBEEC, GBP_LVT }, -{ 0xBEED, GBP_LV }, -{ 0xBF08, GBP_LVT }, -{ 0xBF09, GBP_LV }, -{ 0xBF24, GBP_LVT }, -{ 0xBF25, GBP_LV }, -{ 0xBF40, GBP_LVT }, -{ 0xBF41, GBP_LV }, -{ 0xBF5C, GBP_LVT }, -{ 0xBF5D, GBP_LV }, -{ 0xBF78, GBP_LVT }, -{ 0xBF79, GBP_LV }, -{ 0xBF94, GBP_LVT }, -{ 0xBF95, GBP_LV }, -{ 0xBFB0, GBP_LVT }, -{ 0xBFB1, GBP_LV }, -{ 0xBFCC, GBP_LVT }, -{ 0xBFCD, GBP_LV }, -{ 0xBFE8, GBP_LVT }, -{ 0xBFE9, GBP_LV }, -{ 0xC004, GBP_LVT }, -{ 0xC005, GBP_LV }, -{ 0xC020, GBP_LVT }, -{ 0xC021, GBP_LV }, -{ 0xC03C, GBP_LVT }, -{ 0xC03D, GBP_LV }, -{ 0xC058, GBP_LVT }, -{ 0xC059, GBP_LV }, -{ 0xC074, GBP_LVT }, -{ 0xC075, GBP_LV }, -{ 0xC090, GBP_LVT }, -{ 0xC091, GBP_LV }, -{ 0xC0AC, GBP_LVT }, -{ 0xC0AD, GBP_LV }, -{ 0xC0C8, GBP_LVT }, -{ 0xC0C9, GBP_LV }, -{ 0xC0E4, GBP_LVT }, -{ 0xC0E5, GBP_LV }, -{ 0xC100, GBP_LVT }, -{ 0xC101, GBP_LV }, -{ 0xC11C, GBP_LVT }, -{ 0xC11D, GBP_LV }, -{ 0xC138, GBP_LVT }, -{ 0xC139, GBP_LV }, -{ 0xC154, GBP_LVT }, -{ 0xC155, GBP_LV }, -{ 0xC170, GBP_LVT }, -{ 0xC171, GBP_LV }, -{ 0xC18C, GBP_LVT }, -{ 0xC18D, GBP_LV }, -{ 0xC1A8, GBP_LVT }, -{ 0xC1A9, GBP_LV }, -{ 0xC1C4, GBP_LVT }, -{ 0xC1C5, GBP_LV }, -{ 0xC1E0, GBP_LVT }, -{ 0xC1E1, GBP_LV }, -{ 0xC1FC, GBP_LVT }, -{ 0xC1FD, GBP_LV }, -{ 0xC218, GBP_LVT }, -{ 0xC219, GBP_LV }, -{ 0xC234, GBP_LVT }, -{ 0xC235, GBP_LV }, -{ 0xC250, GBP_LVT }, -{ 0xC251, GBP_LV }, -{ 0xC26C, GBP_LVT }, -{ 0xC26D, GBP_LV }, -{ 0xC288, GBP_LVT }, -{ 0xC289, GBP_LV }, -{ 0xC2A4, GBP_LVT }, -{ 0xC2A5, GBP_LV }, -{ 0xC2C0, GBP_LVT }, -{ 0xC2C1, GBP_LV }, -{ 0xC2DC, GBP_LVT }, -{ 0xC2DD, GBP_LV }, -{ 0xC2F8, GBP_LVT }, -{ 0xC2F9, GBP_LV }, -{ 0xC314, GBP_LVT }, -{ 0xC315, GBP_LV }, -{ 0xC330, GBP_LVT }, -{ 0xC331, GBP_LV }, -{ 0xC34C, GBP_LVT }, -{ 0xC34D, GBP_LV }, -{ 0xC368, GBP_LVT }, -{ 0xC369, GBP_LV }, -{ 0xC384, GBP_LVT }, -{ 0xC385, GBP_LV }, -{ 0xC3A0, GBP_LVT }, -{ 0xC3A1, GBP_LV }, -{ 0xC3BC, GBP_LVT }, -{ 0xC3BD, GBP_LV }, -{ 0xC3D8, GBP_LVT }, -{ 0xC3D9, GBP_LV }, -{ 0xC3F4, GBP_LVT }, -{ 0xC3F5, GBP_LV }, -{ 0xC410, GBP_LVT }, -{ 0xC411, GBP_LV }, -{ 0xC42C, GBP_LVT }, -{ 0xC42D, GBP_LV }, -{ 0xC448, GBP_LVT }, -{ 0xC449, GBP_LV }, -{ 0xC464, GBP_LVT }, -{ 0xC465, GBP_LV }, -{ 0xC480, GBP_LVT }, -{ 0xC481, GBP_LV }, -{ 0xC49C, GBP_LVT }, -{ 0xC49D, GBP_LV }, -{ 0xC4B8, GBP_LVT }, -{ 0xC4B9, GBP_LV }, -{ 0xC4D4, GBP_LVT }, -{ 0xC4D5, GBP_LV }, -{ 0xC4F0, GBP_LVT }, -{ 0xC4F1, GBP_LV }, -{ 0xC50C, GBP_LVT }, -{ 0xC50D, GBP_LV }, -{ 0xC528, GBP_LVT }, -{ 0xC529, GBP_LV }, -{ 0xC544, GBP_LVT }, -{ 0xC545, GBP_LV }, -{ 0xC560, GBP_LVT }, -{ 0xC561, GBP_LV }, -{ 0xC57C, GBP_LVT }, -{ 0xC57D, GBP_LV }, -{ 0xC598, GBP_LVT }, -{ 0xC599, GBP_LV }, -{ 0xC5B4, GBP_LVT }, -{ 0xC5B5, GBP_LV }, -{ 0xC5D0, GBP_LVT }, -{ 0xC5D1, GBP_LV }, -{ 0xC5EC, GBP_LVT }, -{ 0xC5ED, GBP_LV }, -{ 0xC608, GBP_LVT }, -{ 0xC609, GBP_LV }, -{ 0xC624, GBP_LVT }, -{ 0xC625, GBP_LV }, -{ 0xC640, GBP_LVT }, -{ 0xC641, GBP_LV }, -{ 0xC65C, GBP_LVT }, -{ 0xC65D, GBP_LV }, -{ 0xC678, GBP_LVT }, -{ 0xC679, GBP_LV }, -{ 0xC694, GBP_LVT }, -{ 0xC695, GBP_LV }, -{ 0xC6B0, GBP_LVT }, -{ 0xC6B1, GBP_LV }, -{ 0xC6CC, GBP_LVT }, -{ 0xC6CD, GBP_LV }, -{ 0xC6E8, GBP_LVT }, -{ 0xC6E9, GBP_LV }, -{ 0xC704, GBP_LVT }, -{ 0xC705, GBP_LV }, -{ 0xC720, GBP_LVT }, -{ 0xC721, GBP_LV }, -{ 0xC73C, GBP_LVT }, -{ 0xC73D, GBP_LV }, -{ 0xC758, GBP_LVT }, -{ 0xC759, GBP_LV }, -{ 0xC774, GBP_LVT }, -{ 0xC775, GBP_LV }, -{ 0xC790, GBP_LVT }, -{ 0xC791, GBP_LV }, -{ 0xC7AC, GBP_LVT }, -{ 0xC7AD, GBP_LV }, -{ 0xC7C8, GBP_LVT }, -{ 0xC7C9, GBP_LV }, -{ 0xC7E4, GBP_LVT }, -{ 0xC7E5, GBP_LV }, -{ 0xC800, GBP_LVT }, -{ 0xC801, GBP_LV }, -{ 0xC81C, GBP_LVT }, -{ 0xC81D, GBP_LV }, -{ 0xC838, GBP_LVT }, -{ 0xC839, GBP_LV }, -{ 0xC854, GBP_LVT }, -{ 0xC855, GBP_LV }, -{ 0xC870, GBP_LVT }, -{ 0xC871, GBP_LV }, -{ 0xC88C, GBP_LVT }, -{ 0xC88D, GBP_LV }, -{ 0xC8A8, GBP_LVT }, -{ 0xC8A9, GBP_LV }, -{ 0xC8C4, GBP_LVT }, -{ 0xC8C5, GBP_LV }, -{ 0xC8E0, GBP_LVT }, -{ 0xC8E1, GBP_LV }, -{ 0xC8FC, GBP_LVT }, -{ 0xC8FD, GBP_LV }, -{ 0xC918, GBP_LVT }, -{ 0xC919, GBP_LV }, -{ 0xC934, GBP_LVT }, -{ 0xC935, GBP_LV }, -{ 0xC950, GBP_LVT }, -{ 0xC951, GBP_LV }, -{ 0xC96C, GBP_LVT }, -{ 0xC96D, GBP_LV }, -{ 0xC988, GBP_LVT }, -{ 0xC989, GBP_LV }, -{ 0xC9A4, GBP_LVT }, -{ 0xC9A5, GBP_LV }, -{ 0xC9C0, GBP_LVT }, -{ 0xC9C1, GBP_LV }, -{ 0xC9DC, GBP_LVT }, -{ 0xC9DD, GBP_LV }, -{ 0xC9F8, GBP_LVT }, -{ 0xC9F9, GBP_LV }, -{ 0xCA14, GBP_LVT }, -{ 0xCA15, GBP_LV }, -{ 0xCA30, GBP_LVT }, -{ 0xCA31, GBP_LV }, -{ 0xCA4C, GBP_LVT }, -{ 0xCA4D, GBP_LV }, -{ 0xCA68, GBP_LVT }, -{ 0xCA69, GBP_LV }, -{ 0xCA84, GBP_LVT }, -{ 0xCA85, GBP_LV }, -{ 0xCAA0, GBP_LVT }, -{ 0xCAA1, GBP_LV }, -{ 0xCABC, GBP_LVT }, -{ 0xCABD, GBP_LV }, -{ 0xCAD8, GBP_LVT }, -{ 0xCAD9, GBP_LV }, -{ 0xCAF4, GBP_LVT }, -{ 0xCAF5, GBP_LV }, -{ 0xCB10, GBP_LVT }, -{ 0xCB11, GBP_LV }, -{ 0xCB2C, GBP_LVT }, -{ 0xCB2D, GBP_LV }, -{ 0xCB48, GBP_LVT }, -{ 0xCB49, GBP_LV }, -{ 0xCB64, GBP_LVT }, -{ 0xCB65, GBP_LV }, -{ 0xCB80, GBP_LVT }, -{ 0xCB81, GBP_LV }, -{ 0xCB9C, GBP_LVT }, -{ 0xCB9D, GBP_LV }, -{ 0xCBB8, GBP_LVT }, -{ 0xCBB9, GBP_LV }, -{ 0xCBD4, GBP_LVT }, -{ 0xCBD5, GBP_LV }, -{ 0xCBF0, GBP_LVT }, -{ 0xCBF1, GBP_LV }, -{ 0xCC0C, GBP_LVT }, -{ 0xCC0D, GBP_LV }, -{ 0xCC28, GBP_LVT }, -{ 0xCC29, GBP_LV }, -{ 0xCC44, GBP_LVT }, -{ 0xCC45, GBP_LV }, -{ 0xCC60, GBP_LVT }, -{ 0xCC61, GBP_LV }, -{ 0xCC7C, GBP_LVT }, -{ 0xCC7D, GBP_LV }, -{ 0xCC98, GBP_LVT }, -{ 0xCC99, GBP_LV }, -{ 0xCCB4, GBP_LVT }, -{ 0xCCB5, GBP_LV }, -{ 0xCCD0, GBP_LVT }, -{ 0xCCD1, GBP_LV }, -{ 0xCCEC, GBP_LVT }, -{ 0xCCED, GBP_LV }, -{ 0xCD08, GBP_LVT }, -{ 0xCD09, GBP_LV }, -{ 0xCD24, GBP_LVT }, -{ 0xCD25, GBP_LV }, -{ 0xCD40, GBP_LVT }, -{ 0xCD41, GBP_LV }, -{ 0xCD5C, GBP_LVT }, -{ 0xCD5D, GBP_LV }, -{ 0xCD78, GBP_LVT }, -{ 0xCD79, GBP_LV }, -{ 0xCD94, GBP_LVT }, -{ 0xCD95, GBP_LV }, -{ 0xCDB0, GBP_LVT }, -{ 0xCDB1, GBP_LV }, -{ 0xCDCC, GBP_LVT }, -{ 0xCDCD, GBP_LV }, -{ 0xCDE8, GBP_LVT }, -{ 0xCDE9, GBP_LV }, -{ 0xCE04, GBP_LVT }, -{ 0xCE05, GBP_LV }, -{ 0xCE20, GBP_LVT }, -{ 0xCE21, GBP_LV }, -{ 0xCE3C, GBP_LVT }, -{ 0xCE3D, GBP_LV }, -{ 0xCE58, GBP_LVT }, -{ 0xCE59, GBP_LV }, -{ 0xCE74, GBP_LVT }, -{ 0xCE75, GBP_LV }, -{ 0xCE90, GBP_LVT }, -{ 0xCE91, GBP_LV }, -{ 0xCEAC, GBP_LVT }, -{ 0xCEAD, GBP_LV }, -{ 0xCEC8, GBP_LVT }, -{ 0xCEC9, GBP_LV }, -{ 0xCEE4, GBP_LVT }, -{ 0xCEE5, GBP_LV }, -{ 0xCF00, GBP_LVT }, -{ 0xCF01, GBP_LV }, -{ 0xCF1C, GBP_LVT }, -{ 0xCF1D, GBP_LV }, -{ 0xCF38, GBP_LVT }, -{ 0xCF39, GBP_LV }, -{ 0xCF54, GBP_LVT }, -{ 0xCF55, GBP_LV }, -{ 0xCF70, GBP_LVT }, -{ 0xCF71, GBP_LV }, -{ 0xCF8C, GBP_LVT }, -{ 0xCF8D, GBP_LV }, -{ 0xCFA8, GBP_LVT }, -{ 0xCFA9, GBP_LV }, -{ 0xCFC4, GBP_LVT }, -{ 0xCFC5, GBP_LV }, -{ 0xCFE0, GBP_LVT }, -{ 0xCFE1, GBP_LV }, -{ 0xCFFC, GBP_LVT }, -{ 0xCFFD, GBP_LV }, -{ 0xD018, GBP_LVT }, -{ 0xD019, GBP_LV }, -{ 0xD034, GBP_LVT }, -{ 0xD035, GBP_LV }, -{ 0xD050, GBP_LVT }, -{ 0xD051, GBP_LV }, -{ 0xD06C, GBP_LVT }, -{ 0xD06D, GBP_LV }, -{ 0xD088, GBP_LVT }, -{ 0xD089, GBP_LV }, -{ 0xD0A4, GBP_LVT }, -{ 0xD0A5, GBP_LV }, -{ 0xD0C0, GBP_LVT }, -{ 0xD0C1, GBP_LV }, -{ 0xD0DC, GBP_LVT }, -{ 0xD0DD, GBP_LV }, -{ 0xD0F8, GBP_LVT }, -{ 0xD0F9, GBP_LV }, -{ 0xD114, GBP_LVT }, -{ 0xD115, GBP_LV }, -{ 0xD130, GBP_LVT }, -{ 0xD131, GBP_LV }, -{ 0xD14C, GBP_LVT }, -{ 0xD14D, GBP_LV }, -{ 0xD168, GBP_LVT }, -{ 0xD169, GBP_LV }, -{ 0xD184, GBP_LVT }, -{ 0xD185, GBP_LV }, -{ 0xD1A0, GBP_LVT }, -{ 0xD1A1, GBP_LV }, -{ 0xD1BC, GBP_LVT }, -{ 0xD1BD, GBP_LV }, -{ 0xD1D8, GBP_LVT }, -{ 0xD1D9, GBP_LV }, -{ 0xD1F4, GBP_LVT }, -{ 0xD1F5, GBP_LV }, -{ 0xD210, GBP_LVT }, -{ 0xD211, GBP_LV }, -{ 0xD22C, GBP_LVT }, -{ 0xD22D, GBP_LV }, -{ 0xD248, GBP_LVT }, -{ 0xD249, GBP_LV }, -{ 0xD264, GBP_LVT }, -{ 0xD265, GBP_LV }, -{ 0xD280, GBP_LVT }, -{ 0xD281, GBP_LV }, -{ 0xD29C, GBP_LVT }, -{ 0xD29D, GBP_LV }, -{ 0xD2B8, GBP_LVT }, -{ 0xD2B9, GBP_LV }, -{ 0xD2D4, GBP_LVT }, -{ 0xD2D5, GBP_LV }, -{ 0xD2F0, GBP_LVT }, -{ 0xD2F1, GBP_LV }, -{ 0xD30C, GBP_LVT }, -{ 0xD30D, GBP_LV }, -{ 0xD328, GBP_LVT }, -{ 0xD329, GBP_LV }, -{ 0xD344, GBP_LVT }, -{ 0xD345, GBP_LV }, -{ 0xD360, GBP_LVT }, -{ 0xD361, GBP_LV }, -{ 0xD37C, GBP_LVT }, -{ 0xD37D, GBP_LV }, -{ 0xD398, GBP_LVT }, -{ 0xD399, GBP_LV }, -{ 0xD3B4, GBP_LVT }, -{ 0xD3B5, GBP_LV }, -{ 0xD3D0, GBP_LVT }, -{ 0xD3D1, GBP_LV }, -{ 0xD3EC, GBP_LVT }, -{ 0xD3ED, GBP_LV }, -{ 0xD408, GBP_LVT }, -{ 0xD409, GBP_LV }, -{ 0xD424, GBP_LVT }, -{ 0xD425, GBP_LV }, -{ 0xD440, GBP_LVT }, -{ 0xD441, GBP_LV }, -{ 0xD45C, GBP_LVT }, -{ 0xD45D, GBP_LV }, -{ 0xD478, GBP_LVT }, -{ 0xD479, GBP_LV }, -{ 0xD494, GBP_LVT }, -{ 0xD495, GBP_LV }, -{ 0xD4B0, GBP_LVT }, -{ 0xD4B1, GBP_LV }, -{ 0xD4CC, GBP_LVT }, -{ 0xD4CD, GBP_LV }, -{ 0xD4E8, GBP_LVT }, -{ 0xD4E9, GBP_LV }, -{ 0xD504, GBP_LVT }, -{ 0xD505, GBP_LV }, -{ 0xD520, GBP_LVT }, -{ 0xD521, GBP_LV }, -{ 0xD53C, GBP_LVT }, -{ 0xD53D, GBP_LV }, -{ 0xD558, GBP_LVT }, -{ 0xD559, GBP_LV }, -{ 0xD574, GBP_LVT }, -{ 0xD575, GBP_LV }, -{ 0xD590, GBP_LVT }, -{ 0xD591, GBP_LV }, -{ 0xD5AC, GBP_LVT }, -{ 0xD5AD, GBP_LV }, -{ 0xD5C8, GBP_LVT }, -{ 0xD5C9, GBP_LV }, -{ 0xD5E4, GBP_LVT }, -{ 0xD5E5, GBP_LV }, -{ 0xD600, GBP_LVT }, -{ 0xD601, GBP_LV }, -{ 0xD61C, GBP_LVT }, -{ 0xD61D, GBP_LV }, -{ 0xD638, GBP_LVT }, -{ 0xD639, GBP_LV }, -{ 0xD654, GBP_LVT }, -{ 0xD655, GBP_LV }, -{ 0xD670, GBP_LVT }, -{ 0xD671, GBP_LV }, -{ 0xD68C, GBP_LVT }, -{ 0xD68D, GBP_LV }, -{ 0xD6A8, GBP_LVT }, -{ 0xD6A9, GBP_LV }, -{ 0xD6C4, GBP_LVT }, -{ 0xD6C5, GBP_LV }, -{ 0xD6E0, GBP_LVT }, -{ 0xD6E1, GBP_LV }, -{ 0xD6FC, GBP_LVT }, -{ 0xD6FD, GBP_LV }, -{ 0xD718, GBP_LVT }, -{ 0xD719, GBP_LV }, -{ 0xD734, GBP_LVT }, -{ 0xD735, GBP_LV }, -{ 0xD750, GBP_LVT }, -{ 0xD751, GBP_LV }, -{ 0xD76C, GBP_LVT }, -{ 0xD76D, GBP_LV }, -{ 0xD788, GBP_LVT }, -{ 0xD789, GBP_LV }, -{ 0xD7A4, GBP_LVT }, -{ 0xD7B0, GBP_OTHER }, -{ 0xD7C7, GBP_V }, -{ 0xD7CB, GBP_OTHER }, -{ 0xD7FC, GBP_T }, -{ 0xD800, GBP_OTHER }, -{ 0xE000, GBP_CONTROL }, -{ 0xFB1E, GBP_OTHER }, -{ 0xFB1F, GBP_EXTEND }, -{ 0xFE00, GBP_OTHER }, -{ 0xFE10, GBP_EXTEND }, -{ 0xFE20, GBP_OTHER }, -{ 0xFE30, GBP_EXTEND }, -{ 0xFEFF, GBP_OTHER }, -{ 0xFF00, GBP_CONTROL }, -{ 0xFF9E, GBP_OTHER }, -{ 0xFFA0, GBP_EXTEND }, -{ 0xFFF0, GBP_OTHER }, -{ 0xFFFC, GBP_CONTROL }, -{ 0x101FD, GBP_OTHER }, -{ 0x101FE, GBP_EXTEND }, -{ 0x102E0, GBP_OTHER }, -{ 0x102E1, GBP_EXTEND }, -{ 0x10376, GBP_OTHER }, -{ 0x1037B, GBP_EXTEND }, -{ 0x10A01, GBP_OTHER }, -{ 0x10A04, GBP_EXTEND }, -{ 0x10A05, GBP_OTHER }, -{ 0x10A07, GBP_EXTEND }, -{ 0x10A0C, GBP_OTHER }, -{ 0x10A10, GBP_EXTEND }, -{ 0x10A38, GBP_OTHER }, -{ 0x10A3B, GBP_EXTEND }, -{ 0x10A3F, GBP_OTHER }, -{ 0x10A40, GBP_EXTEND }, -{ 0x10AE5, GBP_OTHER }, -{ 0x10AE7, GBP_EXTEND }, -{ 0x11000, GBP_OTHER }, -{ 0x11001, GBP_SPACINGMARK }, -{ 0x11002, GBP_EXTEND }, -{ 0x11003, GBP_SPACINGMARK }, -{ 0x11038, GBP_OTHER }, -{ 0x11047, GBP_EXTEND }, -{ 0x1107F, GBP_OTHER }, -{ 0x11082, GBP_EXTEND }, -{ 0x11083, GBP_SPACINGMARK }, -{ 0x110B0, GBP_OTHER }, -{ 0x110B3, GBP_SPACINGMARK }, -{ 0x110B7, GBP_EXTEND }, -{ 0x110B9, GBP_SPACINGMARK }, -{ 0x110BB, GBP_EXTEND }, -{ 0x110BD, GBP_OTHER }, -{ 0x110BE, GBP_CONTROL }, -{ 0x11100, GBP_OTHER }, -{ 0x11103, GBP_EXTEND }, -{ 0x11127, GBP_OTHER }, -{ 0x1112C, GBP_EXTEND }, -{ 0x1112D, GBP_SPACINGMARK }, -{ 0x11135, GBP_EXTEND }, -{ 0x11173, GBP_OTHER }, -{ 0x11174, GBP_EXTEND }, -{ 0x11180, GBP_OTHER }, -{ 0x11182, GBP_EXTEND }, -{ 0x11183, GBP_SPACINGMARK }, -{ 0x111B3, GBP_OTHER }, -{ 0x111B6, GBP_SPACINGMARK }, -{ 0x111BF, GBP_EXTEND }, -{ 0x111C1, GBP_SPACINGMARK }, -{ 0x111CA, GBP_OTHER }, -{ 0x111CD, GBP_EXTEND }, -{ 0x1122C, GBP_OTHER }, -{ 0x1122F, GBP_SPACINGMARK }, -{ 0x11232, GBP_EXTEND }, -{ 0x11234, GBP_SPACINGMARK }, -{ 0x11235, GBP_EXTEND }, -{ 0x11236, GBP_SPACINGMARK }, -{ 0x11238, GBP_EXTEND }, -{ 0x112DF, GBP_OTHER }, -{ 0x112E0, GBP_EXTEND }, -{ 0x112E3, GBP_SPACINGMARK }, -{ 0x112EB, GBP_EXTEND }, -{ 0x11300, GBP_OTHER }, -{ 0x11302, GBP_EXTEND }, -{ 0x11304, GBP_SPACINGMARK }, -{ 0x1133C, GBP_OTHER }, -{ 0x1133D, GBP_EXTEND }, -{ 0x1133E, GBP_OTHER }, -{ 0x1133F, GBP_EXTEND }, -{ 0x11340, GBP_SPACINGMARK }, -{ 0x11341, GBP_EXTEND }, -{ 0x11345, GBP_SPACINGMARK }, -{ 0x11347, GBP_OTHER }, -{ 0x11349, GBP_SPACINGMARK }, -{ 0x1134B, GBP_OTHER }, -{ 0x1134E, GBP_SPACINGMARK }, -{ 0x11357, GBP_OTHER }, -{ 0x11358, GBP_EXTEND }, -{ 0x11362, GBP_OTHER }, -{ 0x11364, GBP_SPACINGMARK }, -{ 0x11366, GBP_OTHER }, -{ 0x1136D, GBP_EXTEND }, -{ 0x11370, GBP_OTHER }, -{ 0x11375, GBP_EXTEND }, -{ 0x114B0, GBP_OTHER }, -{ 0x114B1, GBP_EXTEND }, -{ 0x114B3, GBP_SPACINGMARK }, -{ 0x114B9, GBP_EXTEND }, -{ 0x114BA, GBP_SPACINGMARK }, -{ 0x114BB, GBP_EXTEND }, -{ 0x114BD, GBP_SPACINGMARK }, -{ 0x114BE, GBP_EXTEND }, -{ 0x114BF, GBP_SPACINGMARK }, -{ 0x114C1, GBP_EXTEND }, -{ 0x114C2, GBP_SPACINGMARK }, -{ 0x114C4, GBP_EXTEND }, -{ 0x115AF, GBP_OTHER }, -{ 0x115B0, GBP_EXTEND }, -{ 0x115B2, GBP_SPACINGMARK }, -{ 0x115B6, GBP_EXTEND }, -{ 0x115B8, GBP_OTHER }, -{ 0x115BC, GBP_SPACINGMARK }, -{ 0x115BE, GBP_EXTEND }, -{ 0x115BF, GBP_SPACINGMARK }, -{ 0x115C1, GBP_EXTEND }, -{ 0x115DC, GBP_OTHER }, -{ 0x115DE, GBP_EXTEND }, -{ 0x11630, GBP_OTHER }, -{ 0x11633, GBP_SPACINGMARK }, -{ 0x1163B, GBP_EXTEND }, -{ 0x1163D, GBP_SPACINGMARK }, -{ 0x1163E, GBP_EXTEND }, -{ 0x1163F, GBP_SPACINGMARK }, -{ 0x11641, GBP_EXTEND }, -{ 0x116AB, GBP_OTHER }, -{ 0x116AC, GBP_EXTEND }, -{ 0x116AD, GBP_SPACINGMARK }, -{ 0x116AE, GBP_EXTEND }, -{ 0x116B0, GBP_SPACINGMARK }, -{ 0x116B6, GBP_EXTEND }, -{ 0x116B7, GBP_SPACINGMARK }, -{ 0x116B8, GBP_EXTEND }, -{ 0x1171D, GBP_OTHER }, -{ 0x11720, GBP_EXTEND }, -{ 0x11722, GBP_SPACINGMARK }, -{ 0x11726, GBP_EXTEND }, -{ 0x11727, GBP_SPACINGMARK }, -{ 0x1172C, GBP_EXTEND }, -{ 0x16AF0, GBP_OTHER }, -{ 0x16AF5, GBP_EXTEND }, -{ 0x16B30, GBP_OTHER }, -{ 0x16B37, GBP_EXTEND }, -{ 0x16F51, GBP_OTHER }, -{ 0x16F7F, GBP_SPACINGMARK }, -{ 0x16F8F, GBP_OTHER }, -{ 0x16F93, GBP_EXTEND }, -{ 0x1BC9D, GBP_OTHER }, -{ 0x1BC9F, GBP_EXTEND }, -{ 0x1BCA0, GBP_OTHER }, -{ 0x1BCA4, GBP_CONTROL }, -{ 0x1D165, GBP_OTHER }, -{ 0x1D166, GBP_EXTEND }, -{ 0x1D167, GBP_SPACINGMARK }, -{ 0x1D16A, GBP_EXTEND }, -{ 0x1D16D, GBP_OTHER }, -{ 0x1D16E, GBP_SPACINGMARK }, -{ 0x1D173, GBP_EXTEND }, -{ 0x1D17B, GBP_CONTROL }, -{ 0x1D183, GBP_EXTEND }, -{ 0x1D185, GBP_OTHER }, -{ 0x1D18C, GBP_EXTEND }, -{ 0x1D1AA, GBP_OTHER }, -{ 0x1D1AE, GBP_EXTEND }, -{ 0x1D242, GBP_OTHER }, -{ 0x1D245, GBP_EXTEND }, -{ 0x1DA00, GBP_OTHER }, -{ 0x1DA37, GBP_EXTEND }, -{ 0x1DA3B, GBP_OTHER }, -{ 0x1DA6D, GBP_EXTEND }, -{ 0x1DA75, GBP_OTHER }, -{ 0x1DA76, GBP_EXTEND }, -{ 0x1DA84, GBP_OTHER }, -{ 0x1DA85, GBP_EXTEND }, -{ 0x1DA9B, GBP_OTHER }, -{ 0x1DAA0, GBP_EXTEND }, -{ 0x1DAA1, GBP_OTHER }, -{ 0x1DAB0, GBP_EXTEND }, -{ 0x1E8D0, GBP_OTHER }, -{ 0x1E8D7, GBP_EXTEND }, -{ 0x1F1E6, GBP_OTHER }, -{ 0x1F200, GBP_RI }, -{ 0xE0000, GBP_OTHER }, -{ 0xE0100, GBP_CONTROL }, -{ 0xE01F0, GBP_EXTEND }, -{ 0xE1000, GBP_CONTROL }, -{ 0x110000, GBP_OTHER } diff --git a/tests/unigbrk/test-uc-is-grapheme-break.c b/tests/unigbrk/test-uc-is-grapheme-break.c deleted file mode 100644 index 8a9ac599..00000000 --- a/tests/unigbrk/test-uc-is-grapheme-break.c +++ /dev/null @@ -1,158 +0,0 @@ -/* Grapheme cluster break function test. - Copyright (C) 2010-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */ - -#include <config.h> - -/* Specification. */ -#include <unigbrk.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -const char * -graphemebreakproperty_to_string (int gbp) -{ - printf ("%d\n", gbp); - switch (gbp) - { -#define CASE(VALUE) case GBP_##VALUE: return #VALUE; - CASE(OTHER) - CASE(CR) - CASE(LF) - CASE(CONTROL) - CASE(EXTEND) - CASE(PREPEND) - CASE(SPACINGMARK) - CASE(L) - CASE(V) - CASE(T) - CASE(LV) - CASE(LVT) - CASE(RI) - } - abort (); -} - -int -main (int argc, char *argv[]) -{ - const char *filename; - char line[1024]; - int exit_code; - FILE *stream; - int lineno; - - if (argc != 2) - { - fprintf (stderr, "usage: %s FILENAME\n" - "where FILENAME is the location of the GraphemeBreakTest.txt\n" - "test file.\n", argv[0]); - exit (1); - } - - filename = argv[1]; - stream = fopen (filename, "r"); - if (stream == NULL) - { - fprintf (stderr, "error during fopen of '%s'\n", filename); - exit (1); - } - - exit_code = 0; - lineno = 0; - while (fgets (line, sizeof line, stream)) - { - char *comment; - const char *p; - ucs4_t prev; - - lineno++; - - comment = strchr (line, '#'); - if (comment != NULL) - *comment = '\0'; - if (line[strspn (line, " \t\r\n")] == '\0') - continue; - - prev = 0; - p = line; - do - { - bool should_break; - ucs4_t next; - - p += strspn (p, " \t\r\n"); - if (!strncmp (p, "\303\267" /* ÷ */, 2)) - { - should_break = true; - p += 2; - } - else if (!strncmp (p, "\303\227" /* × */, 2)) - { - should_break = false; - p += 2; - } - else - { - fprintf (stderr, "%s:%d.%d: syntax error expecting '÷' or '×'\n", - filename, lineno, (int) (p - line + 1)); - exit (1); - } - - p += strspn (p, " \t\r\n"); - if (*p == '\0') - next = 0; - else - { - unsigned int next_int; - int n; - - if (sscanf (p, "%x%n", &next_int, &n) != 1) - { - fprintf (stderr, "%s:%d.%d: syntax error at '%s' " - "expecting hexadecimal Unicode code point number\n", - filename, lineno, (int) (p - line + 1), p); - exit (1); - } - p += n; - - next = next_int; - } - - if (uc_is_grapheme_break (prev, next) != should_break) - { - int prev_gbp = uc_graphemeclusterbreak_property (prev); - int next_gbp = uc_graphemeclusterbreak_property (next); - fprintf (stderr, "%s:%d: should %s U+%04X (%s) and " - "U+%04X (%s)\n", - filename, lineno, - should_break ? "break" : "join", - prev, graphemebreakproperty_to_string (prev_gbp), - next, graphemebreakproperty_to_string (next_gbp)); - exit_code = 1; - } - - p += strspn (p, " \t\r\n"); - prev = next; - } - while (*p != '\0'); - } - - return exit_code; -} diff --git a/tests/unigbrk/test-uc-is-grapheme-break.sh b/tests/unigbrk/test-uc-is-grapheme-break.sh deleted file mode 100755 index 37473e1c..00000000 --- a/tests/unigbrk/test-uc-is-grapheme-break.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -./test-uc-is-grapheme-break${EXEEXT} "${srcdir}/unigbrk/GraphemeBreakTest.txt" diff --git a/tests/unigbrk/test-ulc-grapheme-breaks.c b/tests/unigbrk/test-ulc-grapheme-breaks.c deleted file mode 100644 index 29b8a26d..00000000 --- a/tests/unigbrk/test-ulc-grapheme-breaks.c +++ /dev/null @@ -1,86 +0,0 @@ -/* Grapheme cluster breaks test. - Copyright (C) 2009-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010, - based on code by Bruno Haible <bruno@clisp.org>, 2009. */ - -#include <config.h> - -#include "unigbrk.h" - -#include <locale.h> -#include <stdlib.h> - -#include "macros.h" - -static bool -is_8859_6_break (unsigned char c) -{ - /* ISO-8859-6 has combining characters in positions 0xeb through 0xf2. */ - return !(c >= 0xeb && c <= 0xf2); -} - -int -main () -{ - /* configure should already have checked that the locale is supported. */ - if (setlocale (LC_ALL, "") == NULL) - return 1; - - /* Test case n = 0. */ - ulc_grapheme_breaks (NULL, 0, NULL); - -#if HAVE_ICONV - { - /* This is just a random collection of bytes from ISO-8859-6. - - (We use ISO-8859-6 because it is one of very few non-UTF-8 locale - encodings supported by glibc that have combining characters.) */ - static const char s[] = "ZYX\352\353W\360\361V\362"; - enum { LENGTH = sizeof s - 1 }; - char p[LENGTH]; - size_t i; - - ulc_grapheme_breaks (s, LENGTH, p); - for (i = 0; i < LENGTH; i++) - if (p[i] != is_8859_6_break (s[i])) - { - size_t j; - - fprintf (stderr, "wrong grapheme breaks:\n"); - - fprintf (stderr, " input:"); - for (j = 0; j < LENGTH; j++) - fprintf (stderr, " %02x", (unsigned char) s[j]); - putc ('\n', stderr); - - fprintf (stderr, "expected:"); - for (j = 0; j < LENGTH; j++) - fprintf (stderr, " %d", is_8859_6_break (s[j])); - putc ('\n', stderr); - - fprintf (stderr, " actual:"); - for (j = 0; j < LENGTH; j++) - fprintf (stderr, " %d", p[j]); - putc ('\n', stderr); - - abort (); - } - } -#endif - - return 0; -} diff --git a/tests/unigbrk/test-ulc-grapheme-breaks.sh b/tests/unigbrk/test-ulc-grapheme-breaks.sh deleted file mode 100755 index 534df61b..00000000 --- a/tests/unigbrk/test-ulc-grapheme-breaks.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -# Test in an ISO-8895-6 locale. -: ${LOCALE_AR=ar_SA} -if test $LOCALE_AR = none; then - if test -f /usr/bin/localedef; then - echo "Skipping test: no traditional Arabic locale is installed" - else - echo "Skipping test: no traditional Arabic locale is supported" - fi - exit 77 -fi - -LC_ALL=$LOCALE_AR \ -./test-ulc-grapheme-breaks${EXEEXT} |