netsurf: branch vince/tools updated. release/3.10-27-gd4b3585
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/d4b3585c39949a5192826...
...commit http://git.netsurf-browser.org/netsurf.git/commit/d4b3585c39949a519282692...
...tree http://git.netsurf-browser.org/netsurf.git/tree/d4b3585c39949a51928269297...
The branch, vince/tools has been updated
discards d7760210cf1362c68cd4bb89938e379aba517125 (commit)
discards 20159da1325aa0b05f80bf2b18a056776f64ea8e (commit)
discards dffc14b11a9f4e87422cf0ca78a8b2fc5cd79936 (commit)
via d4b3585c39949a51928269297e4d79595592bb13 (commit)
via 1a5ee4626a83753cfdc0f8e3e45f6ee65df87b93 (commit)
via 567390f59da4e9ae0adc3fc22b1be4ebbf6b7b62 (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (d7760210cf1362c68cd4bb89938e379aba517125)
\
N -- N -- N (d4b3585c39949a51928269297e4d79595592bb13)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=d4b3585c39949a51928...
commit d4b3585c39949a51928269297e4d79595592bb13
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
update idna properties to unicode 11
diff --git a/tools/DerivedJoiningType.txt b/tools/DerivedJoiningType.txt
index d4dcc85..d4d382b 100644
--- a/tools/DerivedJoiningType.txt
+++ b/tools/DerivedJoiningType.txt
@@ -1,10 +1,11 @@
-# DerivedJoiningType-5.2.0.txt
-# Date: 2009-05-28, 20:37:39 GMT [MD]
+# DerivedJoiningType-11.0.0.txt
+# Date: 2018-02-21, 05:34:05 GMT
+# �� 2018 Unicode��, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# Copyright (c) 1991-2009 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see http://www.unicode.org/reports/tr44/
# ================================================
@@ -21,14 +22,16 @@
0640 ; C # Lm ARABIC TATWEEL
07FA ; C # Lm NKO LAJANYALAN
+180A ; C # Po MONGOLIAN NIRUGU
200D ; C # Cf ZERO WIDTH JOINER
-# Total code points: 3
+# Total code points: 4
# ================================================
# Joining_Type=Dual_Joining
+0620 ; D # Lo ARABIC LETTER KASHMIRI YEH
0626 ; D # Lo ARABIC LETTER YEH WITH HAMZA ABOVE
0628 ; D # Lo ARABIC LETTER BEH
062A..062E ; D # Lo [5] ARABIC LETTER TEH..ARABIC LETTER KHAH
@@ -57,8 +60,45 @@
0775..0777 ; D # Lo [3] ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
077A..077F ; D # Lo [6] ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER KAF WITH TWO DOTS ABOVE
07CA..07EA ; D # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+0841..0845 ; D # Lo [5] MANDAIC LETTER AB..MANDAIC LETTER USHENNA
+0848 ; D # Lo MANDAIC LETTER ATT
+084A..0853 ; D # Lo [10] MANDAIC LETTER AK..MANDAIC LETTER AR
+0855 ; D # Lo MANDAIC LETTER AT
+0860 ; D # Lo SYRIAC LETTER MALAYALAM NGA
+0862..0865 ; D # Lo [4] SYRIAC LETTER MALAYALAM NYA..SYRIAC LETTER MALAYALAM NNNA
+0868 ; D # Lo SYRIAC LETTER MALAYALAM LLA
+08A0..08A9 ; D # Lo [10] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
+08AF..08B0 ; D # Lo [2] ARABIC LETTER SAD WITH THREE DOTS BELOW..ARABIC LETTER GAF WITH INVERTED STROKE
+08B3..08B4 ; D # Lo [2] ARABIC LETTER AIN WITH THREE DOTS BELOW..ARABIC LETTER KAF WITH DOT BELOW
+08B6..08B8 ; D # Lo [3] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER TEH WITH SMALL TEH ABOVE
+08BA..08BD ; D # Lo [4] ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE..ARABIC LETTER AFRICAN NOON
+1807 ; D # Po MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
+1820..1842 ; D # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843 ; D # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1878 ; D # Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
+1887..18A8 ; D # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18AA ; D # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
+A840..A871 ; D # Lo [50] PHAGS-PA LETTER KA..PHAGS-PA SUBJOINED LETTER RA
+10AC0..10AC4 ; D # Lo [5] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER GHIMEL
+10AD3..10AD6 ; D # Lo [4] MANICHAEAN LETTER LAMEDH..MANICHAEAN LETTER MEM
+10AD8..10ADC ; D # Lo [5] MANICHAEAN LETTER SAMEKH..MANICHAEAN LETTER FE
+10ADE..10AE0 ; D # Lo [3] MANICHAEAN LETTER QOPH..MANICHAEAN LETTER QHOPH
+10AEB..10AEE ; D # No [4] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER TWENTY
+10B80 ; D # Lo PSALTER PAHLAVI LETTER ALEPH
+10B82 ; D # Lo PSALTER PAHLAVI LETTER GIMEL
+10B86..10B88 ; D # Lo [3] PSALTER PAHLAVI LETTER ZAYIN..PSALTER PAHLAVI LETTER YODH
+10B8A..10B8B ; D # Lo [2] PSALTER PAHLAVI LETTER LAMEDH..PSALTER PAHLAVI LETTER MEM-QOPH
+10B8D ; D # Lo PSALTER PAHLAVI LETTER SAMEKH
+10B90 ; D # Lo PSALTER PAHLAVI LETTER SHIN
+10BAD..10BAE ; D # No [2] PSALTER PAHLAVI NUMBER TEN..PSALTER PAHLAVI NUMBER TWENTY
+10D01..10D21 ; D # Lo [33] HANIFI ROHINGYA LETTER BA..HANIFI ROHINGYA VOWEL O
+10D23 ; D # Lo HANIFI ROHINGYA MARK NA KHONNA
+10F30..10F32 ; D # Lo [3] SOGDIAN LETTER ALEPH..SOGDIAN LETTER GIMEL
+10F34..10F44 ; D # Lo [17] SOGDIAN LETTER WAW..SOGDIAN LETTER LESH
+10F51..10F53 ; D # No [3] SOGDIAN NUMBER ONE..SOGDIAN NUMBER TWENTY
+1E900..1E943 ; D # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
-# Total code points: 188
+# Total code points: 565
# ================================================
@@ -92,8 +132,47 @@
0771 ; R # Lo ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
0773..0774 ; R # Lo [2] ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
0778..0779 ; R # Lo [2] ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+0840 ; R # Lo MANDAIC LETTER HALQA
+0846..0847 ; R # Lo [2] MANDAIC LETTER AZ..MANDAIC LETTER IT
+0849 ; R # Lo MANDAIC LETTER AKSA
+0854 ; R # Lo MANDAIC LETTER ASH
+0867 ; R # Lo SYRIAC LETTER MALAYALAM RA
+0869..086A ; R # Lo [2] SYRIAC LETTER MALAYALAM LLLA..SYRIAC LETTER MALAYALAM SSA
+08AA..08AC ; R # Lo [3] ARABIC LETTER REH WITH LOOP..ARABIC LETTER ROHINGYA YEH
+08AE ; R # Lo ARABIC LETTER DAL WITH THREE DOTS BELOW
+08B1..08B2 ; R # Lo [2] ARABIC LETTER STRAIGHT WAW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08B9 ; R # Lo ARABIC LETTER REH WITH SMALL NOON ABOVE
+10AC5 ; R # Lo MANICHAEAN LETTER DALETH
+10AC7 ; R # Lo MANICHAEAN LETTER WAW
+10AC9..10ACA ; R # Lo [2] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER ZHAYIN
+10ACE..10AD2 ; R # Lo [5] MANICHAEAN LETTER TETH..MANICHAEAN LETTER KHAPH
+10ADD ; R # Lo MANICHAEAN LETTER SADHE
+10AE1 ; R # Lo MANICHAEAN LETTER RESH
+10AE4 ; R # Lo MANICHAEAN LETTER TAW
+10AEF ; R # No MANICHAEAN NUMBER ONE HUNDRED
+10B81 ; R # Lo PSALTER PAHLAVI LETTER BETH
+10B83..10B85 ; R # Lo [3] PSALTER PAHLAVI LETTER DALETH..PSALTER PAHLAVI LETTER WAW-AYIN-RESH
+10B89 ; R # Lo PSALTER PAHLAVI LETTER KAPH
+10B8C ; R # Lo PSALTER PAHLAVI LETTER NUN
+10B8E..10B8F ; R # Lo [2] PSALTER PAHLAVI LETTER PE..PSALTER PAHLAVI LETTER SADHE
+10B91 ; R # Lo PSALTER PAHLAVI LETTER TAW
+10BA9..10BAC ; R # No [4] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER FOUR
+10D22 ; R # Lo HANIFI ROHINGYA MARK SAKIN
+10F33 ; R # Lo SOGDIAN LETTER HE
+10F54 ; R # No SOGDIAN NUMBER ONE HUNDRED
+
+# Total code points: 118
+
+# ================================================
+
+# Joining_Type=Left_Joining
+
+A872 ; L # Lo PHAGS-PA SUPERFIXED LETTER RA
+10ACD ; L # Lo MANICHAEAN LETTER HETH
+10AD7 ; L # Lo MANICHAEAN LETTER NUN
+10D00 ; L # Lo HANIFI ROHINGYA LETTER A
-# Total code points: 74
+# Total code points: 4
# ================================================
@@ -109,10 +188,10 @@
05C4..05C5 ; T # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
05C7 ; T # Mn HEBREW POINT QAMATS QATAN
0610..061A ; T # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
-064B..065E ; T # Mn [20] ARABIC FATHATAN..ARABIC FATHA WITH TWO DOTS
+061C ; T # Cf ARABIC LETTER MARK
+064B..065F ; T # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
0670 ; T # Mn ARABIC LETTER SUPERSCRIPT ALEF
06D6..06DC ; T # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
-06DE ; T # Me ARABIC START OF RUB EL HIZB
06DF..06E4 ; T # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
06E7..06E8 ; T # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
06EA..06ED ; T # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
@@ -121,21 +200,26 @@
0730..074A ; T # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
07A6..07B0 ; T # Mn [11] THAANA ABAFILI..THAANA SUKUN
07EB..07F3 ; T # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+07FD ; T # Mn NKO DANTAYALAN
0816..0819 ; T # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
081B..0823 ; T # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
0825..0827 ; T # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; T # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
-0900..0902 ; T # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+0859..085B ; T # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+08D3..08E1 ; T # Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
+08E3..0902 ; T # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
+093A ; T # Mn DEVANAGARI VOWEL SIGN OE
093C ; T # Mn DEVANAGARI SIGN NUKTA
0941..0948 ; T # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
094D ; T # Mn DEVANAGARI SIGN VIRAMA
-0951..0955 ; T # Mn [5] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN CANDRA LONG E
+0951..0957 ; T # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
0962..0963 ; T # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
0981 ; T # Mn BENGALI SIGN CANDRABINDU
09BC ; T # Mn BENGALI SIGN NUKTA
09C1..09C4 ; T # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
09CD ; T # Mn BENGALI SIGN VIRAMA
09E2..09E3 ; T # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+09FE ; T # Mn BENGALI SANDHI MARK
0A01..0A02 ; T # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
0A3C ; T # Mn GURMUKHI SIGN NUKTA
0A41..0A42 ; T # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
@@ -150,6 +234,7 @@
0AC7..0AC8 ; T # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
0ACD ; T # Mn GUJARATI SIGN VIRAMA
0AE2..0AE3 ; T # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0AFA..0AFF ; T # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
0B01 ; T # Mn ORIYA SIGN CANDRABINDU
0B3C ; T # Mn ORIYA SIGN NUKTA
0B3F ; T # Mn ORIYA VOWEL SIGN I
@@ -160,16 +245,21 @@
0B82 ; T # Mn TAMIL SIGN ANUSVARA
0BC0 ; T # Mn TAMIL VOWEL SIGN II
0BCD ; T # Mn TAMIL SIGN VIRAMA
+0C00 ; T # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C04 ; T # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
0C3E..0C40 ; T # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C46..0C48 ; T # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
0C4A..0C4D ; T # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
0C55..0C56 ; T # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0C62..0C63 ; T # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81 ; T # Mn KANNADA SIGN CANDRABINDU
0CBC ; T # Mn KANNADA SIGN NUKTA
0CBF ; T # Mn KANNADA VOWEL SIGN I
0CC6 ; T # Mn KANNADA VOWEL SIGN E
0CCC..0CCD ; T # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CE2..0CE3 ; T # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D00..0D01 ; T # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
+0D3B..0D3C ; T # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
0D41..0D44 ; T # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
0D4D ; T # Mn MALAYALAM SIGN VIRAMA
0D62..0D63 ; T # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
@@ -190,7 +280,7 @@
0F71..0F7E ; T # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
0F80..0F84 ; T # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
0F86..0F87 ; T # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
-0F90..0F97 ; T # Mn [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
+0F8D..0F97 ; T # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
0F99..0FBC ; T # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
0FC6 ; T # Mn TIBETAN SYMBOL PADMA GDAN
102D..1030 ; T # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
@@ -204,23 +294,25 @@
1085..1086 ; T # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
108D ; T # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
109D ; T # Mn MYANMAR VOWEL SIGN AITON AI
-135F ; T # Mn ETHIOPIC COMBINING GEMINATION MARK
+135D..135F ; T # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
1712..1714 ; T # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
1732..1734 ; T # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
1752..1753 ; T # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
1772..1773 ; T # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
-17B4..17B5 ; T # Cf [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B4..17B5 ; T # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
17B7..17BD ; T # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
17C6 ; T # Mn KHMER SIGN NIKAHIT
17C9..17D3 ; T # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
17DD ; T # Mn KHMER SIGN ATTHACAN
180B..180D ; T # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+1885..1886 ; T # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
18A9 ; T # Mn MONGOLIAN LETTER ALI GALI DAGALGA
1920..1922 ; T # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
1927..1928 ; T # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
1932 ; T # Mn LIMBU SMALL LETTER ANUSVARA
1939..193B ; T # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
1A17..1A18 ; T # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1A1B ; T # Mn BUGINESE VOWEL SIGN AE
1A56 ; T # Mn TAI THAM CONSONANT SIGN MEDIAL LA
1A58..1A5E ; T # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
1A60 ; T # Mn TAI THAM SIGN SAKOT
@@ -228,6 +320,8 @@
1A65..1A6C ; T # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
1A73..1A7C ; T # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
1A7F ; T # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD ; T # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; T # Me COMBINING PARENTHESES OVERLAY
1B00..1B03 ; T # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B34 ; T # Mn BALINESE SIGN REREKAN
1B36..1B3A ; T # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
@@ -237,14 +331,21 @@
1B80..1B81 ; T # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
1BA2..1BA5 ; T # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
1BA8..1BA9 ; T # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAB..1BAD ; T # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BE6 ; T # Mn BATAK SIGN TOMPI
+1BE8..1BE9 ; T # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+1BED ; T # Mn BATAK VOWEL SIGN KARO O
+1BEF..1BF1 ; T # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
1C2C..1C33 ; T # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
1C36..1C37 ; T # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
1CD0..1CD2 ; T # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
1CD4..1CE0 ; T # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
1CE2..1CE8 ; T # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CED ; T # Mn VEDIC SIGN TIRYAK
-1DC0..1DE6 ; T # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
-1DFD..1DFF ; T # Mn [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1CF4 ; T # Mn VEDIC TONE CANDRA ABOVE
+1CF8..1CF9 ; T # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF9 ; T # Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
+1DFB..1DFF ; T # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200B ; T # Cf ZERO WIDTH SPACE
200E..200F ; T # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
202A..202E ; T # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
@@ -256,63 +357,160 @@
20E2..20E4 ; T # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
20E5..20F0 ; T # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
2CEF..2CF1 ; T # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2D7F ; T # Mn TIFINAGH CONSONANT JOINER
2DE0..2DFF ; T # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-302A..302F ; T # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
+302A..302D ; T # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
3099..309A ; T # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
A66F ; T # Mn COMBINING CYRILLIC VZMET
A670..A672 ; T # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
-A67C..A67D ; T # Mn [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A674..A67D ; T # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+A69E..A69F ; T # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
A6F0..A6F1 ; T # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
A802 ; T # Mn SYLOTI NAGRI SIGN DVISVARA
A806 ; T # Mn SYLOTI NAGRI SIGN HASANTA
A80B ; T # Mn SYLOTI NAGRI SIGN ANUSVARA
A825..A826 ; T # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
-A8C4 ; T # Mn SAURASHTRA SIGN VIRAMA
+A8C4..A8C5 ; T # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
A8E0..A8F1 ; T # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+A8FF ; T # Mn DEVANAGARI VOWEL SIGN AY
A926..A92D ; T # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
A947..A951 ; T # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
A980..A982 ; T # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
A9B3 ; T # Mn JAVANESE SIGN CECAK TELU
A9B6..A9B9 ; T # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BC ; T # Mn JAVANESE VOWEL SIGN PEPET
+A9E5 ; T # Mn MYANMAR SIGN SHAN SAW
AA29..AA2E ; T # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA31..AA32 ; T # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
AA35..AA36 ; T # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
AA43 ; T # Mn CHAM CONSONANT SIGN FINAL NG
AA4C ; T # Mn CHAM CONSONANT SIGN FINAL M
+AA7C ; T # Mn MYANMAR SIGN TAI LAING TONE-2
AAB0 ; T # Mn TAI VIET MAI KANG
AAB2..AAB4 ; T # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
AAB7..AAB8 ; T # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
AABE..AABF ; T # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
AAC1 ; T # Mn TAI VIET TONE MAI THO
+AAEC..AAED ; T # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAF6 ; T # Mn MEETEI MAYEK VIRAMA
ABE5 ; T # Mn MEETEI MAYEK VOWEL SIGN ANAP
ABE8 ; T # Mn MEETEI MAYEK VOWEL SIGN UNAP
ABED ; T # Mn MEETEI MAYEK APUN IYEK
FB1E ; T # Mn HEBREW POINT JUDEO-SPANISH VARIKA
FE00..FE0F ; T # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26 ; T # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2F ; T # Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
FEFF ; T # Cf ZERO WIDTH NO-BREAK SPACE
FFF9..FFFB ; T # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
101FD ; T # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0 ; T # Mn COPTIC EPACT THOUSANDS MARK
+10376..1037A ; T # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
10A01..10A03 ; T # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
10A05..10A06 ; T # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
10A0C..10A0F ; T # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
10A38..10A3A ; T # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
10A3F ; T # Mn KHAROSHTHI VIRAMA
-11080..11081 ; T # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+10AE5..10AE6 ; T # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10D24..10D27 ; T # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+10F46..10F50 ; T # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+11001 ; T # Mn BRAHMI SIGN ANUSVARA
+11038..11046 ; T # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+1107F..11081 ; T # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
110B3..110B6 ; T # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
110B9..110BA ; T # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
-110BD ; T # Cf KAITHI NUMBER SIGN
+11100..11102 ; T # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11127..1112B ; T # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112D..11134 ; T # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173 ; T # Mn MAHAJANI SIGN NUKTA
+11180..11181 ; T # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+111B6..111BE ; T # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111C9..111CC ; T # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
+1122F..11231 ; T # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11234 ; T # Mn KHOJKI SIGN ANUSVARA
+11236..11237 ; T # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+1123E ; T # Mn KHOJKI SIGN SUKUN
+112DF ; T # Mn KHUDAWADI SIGN ANUSVARA
+112E3..112EA ; T # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11300..11301 ; T # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
+1133B..1133C ; T # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
+11340 ; T # Mn GRANTHA VOWEL SIGN II
+11366..1136C ; T # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374 ; T # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11438..1143F ; T # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
+11442..11444 ; T # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
+11446 ; T # Mn NEWA SIGN NUKTA
+1145E ; T # Mn NEWA SANDHI MARK
+114B3..114B8 ; T # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114BA ; T # Mn TIRHUTA VOWEL SIGN SHORT E
+114BF..114C0 ; T # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C2..114C3 ; T # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115B2..115B5 ; T # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115BC..115BD ; T # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BF..115C0 ; T # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115DC..115DD ; T # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
+11633..1163A ; T # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163D ; T # Mn MODI SIGN ANUSVARA
+1163F..11640 ; T # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+116AB ; T # Mn TAKRI SIGN ANUSVARA
+116AD ; T # Mn TAKRI VOWEL SIGN AA
+116B0..116B5 ; T # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B7 ; T # Mn TAKRI SIGN NUKTA
+1171D..1171F ; T # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
+11722..11725 ; T # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
+11727..1172B ; T # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
+1182F..11837 ; T # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
+11839..1183A ; T # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+11A01..11A0A ; T # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
+11A33..11A38 ; T # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
+11A3B..11A3E ; T # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+11A47 ; T # Mn ZANABAZAR SQUARE SUBJOINER
+11A51..11A56 ; T # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
+11A59..11A5B ; T # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
+11A8A..11A96 ; T # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
+11A98..11A99 ; T # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+11C30..11C36 ; T # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
+11C38..11C3D ; T # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
+11C3F ; T # Mn BHAIKSUKI SIGN VIRAMA
+11C92..11CA7 ; T # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+11CAA..11CB0 ; T # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
+11CB2..11CB3 ; T # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
+11CB5..11CB6 ; T # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
+11D31..11D36 ; T # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
+11D3A ; T # Mn MASARAM GONDI VOWEL SIGN E
+11D3C..11D3D ; T # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+11D3F..11D45 ; T # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
+11D47 ; T # Mn MASARAM GONDI RA-KARA
+11D90..11D91 ; T # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+11D95 ; T # Mn GUNJALA GONDI SIGN ANUSVARA
+11D97 ; T # Mn GUNJALA GONDI VIRAMA
+11EF3..11EF4 ; T # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+16AF0..16AF4 ; T # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36 ; T # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16F8F..16F92 ; T # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E ; T # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BCA0..1BCA3 ; T # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D167..1D169 ; T # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D173..1D17A ; T # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
1D17B..1D182 ; T # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D185..1D18B ; T # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; T # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
1D242..1D244 ; T # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1DA00..1DA36 ; T # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+1DA3B..1DA6C ; T # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+1DA75 ; T # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+1DA84 ; T # Mn SIGNWRITING LOCATION HEAD NECK
+1DA9B..1DA9F ; T # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+1DAA1..1DAAF ; T # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+1E000..1E006 ; T # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+1E008..1E018 ; T # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+1E01B..1E021 ; T # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+1E023..1E024 ; T # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+1E026..1E02A ; T # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E8D0..1E8D6 ; T # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1E944..1E94A ; T # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
E0001 ; T # Cf LANGUAGE TAG
E0020..E007F ; T # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; T # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 1308
+# Total code points: 1953
# EOF
diff --git a/tools/idna-tables-properties.csv b/tools/idna-tables-properties.csv
index a74547b..5f245ee 100644
--- a/tools/idna-tables-properties.csv
+++ b/tools/idna-tables-properties.csv
@@ -1,2322 +1,2838 @@
-Codepoint,Property,Description
-0000-002C,DISALLOWED,NULL..COMMA
-002D,PVALID,HYPHEN-MINUS
-002E-002F,DISALLOWED,FULL STOP..SOLIDUS
-0030-0039,PVALID,DIGIT ZERO..DIGIT NINE
-003A-0060,DISALLOWED,COLON..GRAVE ACCENT
-0061-007A,PVALID,LATIN SMALL LETTER A..LATIN SMALL LETTER Z
-007B-00B6,DISALLOWED,LEFT CURLY BRACKET..PILCROW SIGN
-00B7,CONTEXTO,MIDDLE DOT
-00B8-00DE,DISALLOWED,CEDILLA..LATIN CAPITAL LETTER THORN
-00DF-00F6,PVALID,LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS
-00F7,DISALLOWED,DIVISION SIGN
-00F8-00FF,PVALID,LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
-0100,DISALLOWED,LATIN CAPITAL LETTER A WITH MACRON
-0101,PVALID,LATIN SMALL LETTER A WITH MACRON
-0102,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE
-0103,PVALID,LATIN SMALL LETTER A WITH BREVE
-0104,DISALLOWED,LATIN CAPITAL LETTER A WITH OGONEK
-0105,PVALID,LATIN SMALL LETTER A WITH OGONEK
-0106,DISALLOWED,LATIN CAPITAL LETTER C WITH ACUTE
-0107,PVALID,LATIN SMALL LETTER C WITH ACUTE
-0108,DISALLOWED,LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-0109,PVALID,LATIN SMALL LETTER C WITH CIRCUMFLEX
-010A,DISALLOWED,LATIN CAPITAL LETTER C WITH DOT ABOVE
-010B,PVALID,LATIN SMALL LETTER C WITH DOT ABOVE
-010C,DISALLOWED,LATIN CAPITAL LETTER C WITH CARON
-010D,PVALID,LATIN SMALL LETTER C WITH CARON
-010E,DISALLOWED,LATIN CAPITAL LETTER D WITH CARON
-010F,PVALID,LATIN SMALL LETTER D WITH CARON
-0110,DISALLOWED,LATIN CAPITAL LETTER D WITH STROKE
-0111,PVALID,LATIN SMALL LETTER D WITH STROKE
-0112,DISALLOWED,LATIN CAPITAL LETTER E WITH MACRON
-0113,PVALID,LATIN SMALL LETTER E WITH MACRON
-0114,DISALLOWED,LATIN CAPITAL LETTER E WITH BREVE
-0115,PVALID,LATIN SMALL LETTER E WITH BREVE
-0116,DISALLOWED,LATIN CAPITAL LETTER E WITH DOT ABOVE
-0117,PVALID,LATIN SMALL LETTER E WITH DOT ABOVE
-0118,DISALLOWED,LATIN CAPITAL LETTER E WITH OGONEK
-0119,PVALID,LATIN SMALL LETTER E WITH OGONEK
-011A,DISALLOWED,LATIN CAPITAL LETTER E WITH CARON
-011B,PVALID,LATIN SMALL LETTER E WITH CARON
-011C,DISALLOWED,LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-011D,PVALID,LATIN SMALL LETTER G WITH CIRCUMFLEX
-011E,DISALLOWED,LATIN CAPITAL LETTER G WITH BREVE
-011F,PVALID,LATIN SMALL LETTER G WITH BREVE
-0120,DISALLOWED,LATIN CAPITAL LETTER G WITH DOT ABOVE
-0121,PVALID,LATIN SMALL LETTER G WITH DOT ABOVE
-0122,DISALLOWED,LATIN CAPITAL LETTER G WITH CEDILLA
-0123,PVALID,LATIN SMALL LETTER G WITH CEDILLA
-0124,DISALLOWED,LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0125,PVALID,LATIN SMALL LETTER H WITH CIRCUMFLEX
-0126,DISALLOWED,LATIN CAPITAL LETTER H WITH STROKE
-0127,PVALID,LATIN SMALL LETTER H WITH STROKE
-0128,DISALLOWED,LATIN CAPITAL LETTER I WITH TILDE
-0129,PVALID,LATIN SMALL LETTER I WITH TILDE
-012A,DISALLOWED,LATIN CAPITAL LETTER I WITH MACRON
-012B,PVALID,LATIN SMALL LETTER I WITH MACRON
-012C,DISALLOWED,LATIN CAPITAL LETTER I WITH BREVE
-012D,PVALID,LATIN SMALL LETTER I WITH BREVE
-012E,DISALLOWED,LATIN CAPITAL LETTER I WITH OGONEK
-012F,PVALID,LATIN SMALL LETTER I WITH OGONEK
-0130,DISALLOWED,LATIN CAPITAL LETTER I WITH DOT ABOVE
-0131,PVALID,LATIN SMALL LETTER DOTLESS I
-0132-0134,DISALLOWED,LATIN CAPITAL LIGATURE IJ..LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-0135,PVALID,LATIN SMALL LETTER J WITH CIRCUMFLEX
-0136,DISALLOWED,LATIN CAPITAL LETTER K WITH CEDILLA
-0137-0138,PVALID,LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA
-0139,DISALLOWED,LATIN CAPITAL LETTER L WITH ACUTE
-013A,PVALID,LATIN SMALL LETTER L WITH ACUTE
-013B,DISALLOWED,LATIN CAPITAL LETTER L WITH CEDILLA
-013C,PVALID,LATIN SMALL LETTER L WITH CEDILLA
-013D,DISALLOWED,LATIN CAPITAL LETTER L WITH CARON
-013E,PVALID,LATIN SMALL LETTER L WITH CARON
-013F-0141,DISALLOWED,LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN CAPITAL LETTER L WITH STROKE
-0142,PVALID,LATIN SMALL LETTER L WITH STROKE
-0143,DISALLOWED,LATIN CAPITAL LETTER N WITH ACUTE
-0144,PVALID,LATIN SMALL LETTER N WITH ACUTE
-0145,DISALLOWED,LATIN CAPITAL LETTER N WITH CEDILLA
-0146,PVALID,LATIN SMALL LETTER N WITH CEDILLA
-0147,DISALLOWED,LATIN CAPITAL LETTER N WITH CARON
-0148,PVALID,LATIN SMALL LETTER N WITH CARON
-0149-014A,DISALLOWED,LATIN SMALL LETTER N PRECEDED BY APOSTROPHE..LATIN CAPITAL LETTER ENG
-014B,PVALID,LATIN SMALL LETTER ENG
-014C,DISALLOWED,LATIN CAPITAL LETTER O WITH MACRON
-014D,PVALID,LATIN SMALL LETTER O WITH MACRON
-014E,DISALLOWED,LATIN CAPITAL LETTER O WITH BREVE
-014F,PVALID,LATIN SMALL LETTER O WITH BREVE
-0150,DISALLOWED,LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0151,PVALID,LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0152,DISALLOWED,LATIN CAPITAL LIGATURE OE
-0153,PVALID,LATIN SMALL LIGATURE OE
-0154,DISALLOWED,LATIN CAPITAL LETTER R WITH ACUTE
-0155,PVALID,LATIN SMALL LETTER R WITH ACUTE
-0156,DISALLOWED,LATIN CAPITAL LETTER R WITH CEDILLA
-0157,PVALID,LATIN SMALL LETTER R WITH CEDILLA
-0158,DISALLOWED,LATIN CAPITAL LETTER R WITH CARON
-0159,PVALID,LATIN SMALL LETTER R WITH CARON
-015A,DISALLOWED,LATIN CAPITAL LETTER S WITH ACUTE
-015B,PVALID,LATIN SMALL LETTER S WITH ACUTE
-015C,DISALLOWED,LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-015D,PVALID,LATIN SMALL LETTER S WITH CIRCUMFLEX
-015E,DISALLOWED,LATIN CAPITAL LETTER S WITH CEDILLA
-015F,PVALID,LATIN SMALL LETTER S WITH CEDILLA
-0160,DISALLOWED,LATIN CAPITAL LETTER S WITH CARON
-0161,PVALID,LATIN SMALL LETTER S WITH CARON
-0162,DISALLOWED,LATIN CAPITAL LETTER T WITH CEDILLA
-0163,PVALID,LATIN SMALL LETTER T WITH CEDILLA
-0164,DISALLOWED,LATIN CAPITAL LETTER T WITH CARON
-0165,PVALID,LATIN SMALL LETTER T WITH CARON
-0166,DISALLOWED,LATIN CAPITAL LETTER T WITH STROKE
-0167,PVALID,LATIN SMALL LETTER T WITH STROKE
-0168,DISALLOWED,LATIN CAPITAL LETTER U WITH TILDE
-0169,PVALID,LATIN SMALL LETTER U WITH TILDE
-016A,DISALLOWED,LATIN CAPITAL LETTER U WITH MACRON
-016B,PVALID,LATIN SMALL LETTER U WITH MACRON
-016C,DISALLOWED,LATIN CAPITAL LETTER U WITH BREVE
-016D,PVALID,LATIN SMALL LETTER U WITH BREVE
-016E,DISALLOWED,LATIN CAPITAL LETTER U WITH RING ABOVE
-016F,PVALID,LATIN SMALL LETTER U WITH RING ABOVE
-0170,DISALLOWED,LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0171,PVALID,LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0172,DISALLOWED,LATIN CAPITAL LETTER U WITH OGONEK
-0173,PVALID,LATIN SMALL LETTER U WITH OGONEK
-0174,DISALLOWED,LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-0175,PVALID,LATIN SMALL LETTER W WITH CIRCUMFLEX
-0176,DISALLOWED,LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-0177,PVALID,LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0178-0179,DISALLOWED,LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE
-017A,PVALID,LATIN SMALL LETTER Z WITH ACUTE
-017B,DISALLOWED,LATIN CAPITAL LETTER Z WITH DOT ABOVE
-017C,PVALID,LATIN SMALL LETTER Z WITH DOT ABOVE
-017D,DISALLOWED,LATIN CAPITAL LETTER Z WITH CARON
-017E,PVALID,LATIN SMALL LETTER Z WITH CARON
-017F,DISALLOWED,LATIN SMALL LETTER LONG S
-0180,PVALID,LATIN SMALL LETTER B WITH STROKE
-0181-0182,DISALLOWED,LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR
-0183,PVALID,LATIN SMALL LETTER B WITH TOPBAR
-0184,DISALLOWED,LATIN CAPITAL LETTER TONE SIX
-0185,PVALID,LATIN SMALL LETTER TONE SIX
-0186-0187,DISALLOWED,LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK
-0188,PVALID,LATIN SMALL LETTER C WITH HOOK
-0189-018B,DISALLOWED,LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR
-018C-018D,PVALID,LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA
-018E-0191,DISALLOWED,LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK
-0192,PVALID,LATIN SMALL LETTER F WITH HOOK
-0193-0194,DISALLOWED,LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA
-0195,PVALID,LATIN SMALL LETTER HV
-0196-0198,DISALLOWED,LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK
-0199-019B,PVALID,LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
-019C-019D,DISALLOWED,LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK
-019E,PVALID,LATIN SMALL LETTER N WITH LONG RIGHT LEG
-019F-01A0,DISALLOWED,LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN
-01A1,PVALID,LATIN SMALL LETTER O WITH HORN
-01A2,DISALLOWED,LATIN CAPITAL LETTER OI
-01A3,PVALID,LATIN SMALL LETTER OI
-01A4,DISALLOWED,LATIN CAPITAL LETTER P WITH HOOK
-01A5,PVALID,LATIN SMALL LETTER P WITH HOOK
-01A6-01A7,DISALLOWED,LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO
-01A8,PVALID,LATIN SMALL LETTER TONE TWO
-01A9,DISALLOWED,LATIN CAPITAL LETTER ESH
-01AA-01AB,PVALID,LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK
-01AC,DISALLOWED,LATIN CAPITAL LETTER T WITH HOOK
-01AD,PVALID,LATIN SMALL LETTER T WITH HOOK
-01AE-01AF,DISALLOWED,LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN
-01B0,PVALID,LATIN SMALL LETTER U WITH HORN
-01B1-01B3,DISALLOWED,LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK
-01B4,PVALID,LATIN SMALL LETTER Y WITH HOOK
-01B5,DISALLOWED,LATIN CAPITAL LETTER Z WITH STROKE
-01B6,PVALID,LATIN SMALL LETTER Z WITH STROKE
-01B7-01B8,DISALLOWED,LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED
-01B9-01BB,PVALID,LATIN SMALL LETTER EZH REVERSED..LATIN LETTER TWO WITH STROKE
-01BC,DISALLOWED,LATIN CAPITAL LETTER TONE FIVE
-01BD-01C3,PVALID,LATIN SMALL LETTER TONE FIVE..LATIN LETTER RETROFLEX CLICK
-01C4-01CD,DISALLOWED,LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON
-01CE,PVALID,LATIN SMALL LETTER A WITH CARON
-01CF,DISALLOWED,LATIN CAPITAL LETTER I WITH CARON
-01D0,PVALID,LATIN SMALL LETTER I WITH CARON
-01D1,DISALLOWED,LATIN CAPITAL LETTER O WITH CARON
-01D2,PVALID,LATIN SMALL LETTER O WITH CARON
-01D3,DISALLOWED,LATIN CAPITAL LETTER U WITH CARON
-01D4,PVALID,LATIN SMALL LETTER U WITH CARON
-01D5,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01D6,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D7,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D8,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D9,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-01DA,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01DB,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01DC-01DD,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E
-01DE,DISALLOWED,LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-01DF,PVALID,LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01E0,DISALLOWED,LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-01E1,PVALID,LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-01E2,DISALLOWED,LATIN CAPITAL LETTER AE WITH MACRON
-01E3,PVALID,LATIN SMALL LETTER AE WITH MACRON
-01E4,DISALLOWED,LATIN CAPITAL LETTER G WITH STROKE
-01E5,PVALID,LATIN SMALL LETTER G WITH STROKE
-01E6,DISALLOWED,LATIN CAPITAL LETTER G WITH CARON
-01E7,PVALID,LATIN SMALL LETTER G WITH CARON
-01E8,DISALLOWED,LATIN CAPITAL LETTER K WITH CARON
-01E9,PVALID,LATIN SMALL LETTER K WITH CARON
-01EA,DISALLOWED,LATIN CAPITAL LETTER O WITH OGONEK
-01EB,PVALID,LATIN SMALL LETTER O WITH OGONEK
-01EC,DISALLOWED,LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-01ED,PVALID,LATIN SMALL LETTER O WITH OGONEK AND MACRON
-01EE,DISALLOWED,LATIN CAPITAL LETTER EZH WITH CARON
-01EF-01F0,PVALID,LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON
-01F1-01F4,DISALLOWED,LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTER G WITH ACUTE
-01F5,PVALID,LATIN SMALL LETTER G WITH ACUTE
-01F6-01F8,DISALLOWED,LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE
-01F9,PVALID,LATIN SMALL LETTER N WITH GRAVE
-01FA,DISALLOWED,LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-01FB,PVALID,LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FC,DISALLOWED,LATIN CAPITAL LETTER AE WITH ACUTE
-01FD,PVALID,LATIN SMALL LETTER AE WITH ACUTE
-01FE,DISALLOWED,LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-01FF,PVALID,LATIN SMALL LETTER O WITH STROKE AND ACUTE
-0200,DISALLOWED,LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-0201,PVALID,LATIN SMALL LETTER A WITH DOUBLE GRAVE
-0202,DISALLOWED,LATIN CAPITAL LETTER A WITH INVERTED BREVE
-0203,PVALID,LATIN SMALL LETTER A WITH INVERTED BREVE
-0204,DISALLOWED,LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-0205,PVALID,LATIN SMALL LETTER E WITH DOUBLE GRAVE
-0206,DISALLOWED,LATIN CAPITAL LETTER E WITH INVERTED BREVE
-0207,PVALID,LATIN SMALL LETTER E WITH INVERTED BREVE
-0208,DISALLOWED,LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-0209,PVALID,LATIN SMALL LETTER I WITH DOUBLE GRAVE
-020A,DISALLOWED,LATIN CAPITAL LETTER I WITH INVERTED BREVE
-020B,PVALID,LATIN SMALL LETTER I WITH INVERTED BREVE
-020C,DISALLOWED,LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-020D,PVALID,LATIN SMALL LETTER O WITH DOUBLE GRAVE
-020E,DISALLOWED,LATIN CAPITAL LETTER O WITH INVERTED BREVE
-020F,PVALID,LATIN SMALL LETTER O WITH INVERTED BREVE
-0210,DISALLOWED,LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-0211,PVALID,LATIN SMALL LETTER R WITH DOUBLE GRAVE
-0212,DISALLOWED,LATIN CAPITAL LETTER R WITH INVERTED BREVE
-0213,PVALID,LATIN SMALL LETTER R WITH INVERTED BREVE
-0214,DISALLOWED,LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-0215,PVALID,LATIN SMALL LETTER U WITH DOUBLE GRAVE
-0216,DISALLOWED,LATIN CAPITAL LETTER U WITH INVERTED BREVE
-0217,PVALID,LATIN SMALL LETTER U WITH INVERTED BREVE
-0218,DISALLOWED,LATIN CAPITAL LETTER S WITH COMMA BELOW
-0219,PVALID,LATIN SMALL LETTER S WITH COMMA BELOW
-021A,DISALLOWED,LATIN CAPITAL LETTER T WITH COMMA BELOW
-021B,PVALID,LATIN SMALL LETTER T WITH COMMA BELOW
-021C,DISALLOWED,LATIN CAPITAL LETTER YOGH
-021D,PVALID,LATIN SMALL LETTER YOGH
-021E,DISALLOWED,LATIN CAPITAL LETTER H WITH CARON
-021F,PVALID,LATIN SMALL LETTER H WITH CARON
-0220,DISALLOWED,LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-0221,PVALID,LATIN SMALL LETTER D WITH CURL
-0222,DISALLOWED,LATIN CAPITAL LETTER OU
-0223,PVALID,LATIN SMALL LETTER OU
-0224,DISALLOWED,LATIN CAPITAL LETTER Z WITH HOOK
-0225,PVALID,LATIN SMALL LETTER Z WITH HOOK
-0226,DISALLOWED,LATIN CAPITAL LETTER A WITH DOT ABOVE
-0227,PVALID,LATIN SMALL LETTER A WITH DOT ABOVE
-0228,DISALLOWED,LATIN CAPITAL LETTER E WITH CEDILLA
-0229,PVALID,LATIN SMALL LETTER E WITH CEDILLA
-022A,DISALLOWED,LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-022B,PVALID,LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022C,DISALLOWED,LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-022D,PVALID,LATIN SMALL LETTER O WITH TILDE AND MACRON
-022E,DISALLOWED,LATIN CAPITAL LETTER O WITH DOT ABOVE
-022F,PVALID,LATIN SMALL LETTER O WITH DOT ABOVE
-0230,DISALLOWED,LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-0231,PVALID,LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-0232,DISALLOWED,LATIN CAPITAL LETTER Y WITH MACRON
-0233-0239,PVALID,LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH
-023A-023B,DISALLOWED,LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE
-023C,PVALID,LATIN SMALL LETTER C WITH STROKE
-023D-023E,DISALLOWED,LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-023F-0240,PVALID,LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL
-0241,DISALLOWED,LATIN CAPITAL LETTER GLOTTAL STOP
-0242,PVALID,LATIN SMALL LETTER GLOTTAL STOP
-0243-0246,DISALLOWED,LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE
-0247,PVALID,LATIN SMALL LETTER E WITH STROKE
-0248,DISALLOWED,LATIN CAPITAL LETTER J WITH STROKE
-0249,PVALID,LATIN SMALL LETTER J WITH STROKE
-024A,DISALLOWED,LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-024B,PVALID,LATIN SMALL LETTER Q WITH HOOK TAIL
-024C,DISALLOWED,LATIN CAPITAL LETTER R WITH STROKE
-024D,PVALID,LATIN SMALL LETTER R WITH STROKE
-024E,DISALLOWED,LATIN CAPITAL LETTER Y WITH STROKE
-024F-02AF,PVALID,LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-02B0-02B8,DISALLOWED,MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
-02B9-02C1,PVALID,MODIFIER LETTER PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP
-02C2-02C5,DISALLOWED,MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
-02C6-02D1,PVALID,MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
-02D2-02EB,DISALLOWED,MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC,PVALID,MODIFIER LETTER VOICING
-02ED,DISALLOWED,MODIFIER LETTER UNASPIRATED
-02EE,PVALID,MODIFIER LETTER DOUBLE APOSTROPHE
-02EF-02FF,DISALLOWED,MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
-0300-033F,PVALID,COMBINING GRAVE ACCENT..COMBINING DOUBLE OVERLINE
-0340-0341,DISALLOWED,COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
-0342,PVALID,COMBINING GREEK PERISPOMENI
-0343-0345,DISALLOWED,COMBINING GREEK KORONIS..COMBINING GREEK YPOGEGRAMMENI
-0346-034E,PVALID,COMBINING BRIDGE ABOVE..COMBINING UPWARDS ARROW BELOW
-034F,DISALLOWED,COMBINING GRAPHEME JOINER
-0350-036F,PVALID,COMBINING RIGHT ARROWHEAD ABOVE..COMBINING LATIN SMALL LETTER X
-0370,DISALLOWED,GREEK CAPITAL LETTER HETA
-0371,PVALID,GREEK SMALL LETTER HETA
-0372,DISALLOWED,GREEK CAPITAL LETTER ARCHAIC SAMPI
-0373,PVALID,GREEK SMALL LETTER ARCHAIC SAMPI
-0374,DISALLOWED,GREEK NUMERAL SIGN
-0375,CONTEXTO,GREEK LOWER NUMERAL SIGN
-0376,DISALLOWED,GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
-0377,PVALID,GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-0378-0379,UNASSIGNED,<RESERVED>..<RESERVED>
-037A,DISALLOWED,GREEK YPOGEGRAMMENI
-037B-037D,PVALID,GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-037E,DISALLOWED,GREEK QUESTION MARK
-037F-0383,UNASSIGNED,<RESERVED>..<RESERVED>
-0384-038A,DISALLOWED,GREEK TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
-038B,UNASSIGNED,<RESERVED>
-038C,DISALLOWED,GREEK CAPITAL LETTER OMICRON WITH TONOS
-038D,UNASSIGNED,<RESERVED>
-038E-038F,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS
-0390,PVALID,GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-0391-03A1,DISALLOWED,GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
-03A2,UNASSIGNED,<RESERVED>
-03A3-03AB,DISALLOWED,GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-03AC-03CE,PVALID,GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS
-03CF-03D6,DISALLOWED,GREEK CAPITAL KAI SYMBOL..GREEK PI SYMBOL
-03D7,PVALID,GREEK KAI SYMBOL
-03D8,DISALLOWED,GREEK LETTER ARCHAIC KOPPA
-03D9,PVALID,GREEK SMALL LETTER ARCHAIC KOPPA
-03DA,DISALLOWED,GREEK LETTER STIGMA
-03DB,PVALID,GREEK SMALL LETTER STIGMA
-03DC,DISALLOWED,GREEK LETTER DIGAMMA
-03DD,PVALID,GREEK SMALL LETTER DIGAMMA
-03DE,DISALLOWED,GREEK LETTER KOPPA
-03DF,PVALID,GREEK SMALL LETTER KOPPA
-03E0,DISALLOWED,GREEK LETTER SAMPI
-03E1,PVALID,GREEK SMALL LETTER SAMPI
-03E2,DISALLOWED,COPTIC CAPITAL LETTER SHEI
-03E3,PVALID,COPTIC SMALL LETTER SHEI
-03E4,DISALLOWED,COPTIC CAPITAL LETTER FEI
-03E5,PVALID,COPTIC SMALL LETTER FEI
-03E6,DISALLOWED,COPTIC CAPITAL LETTER KHEI
-03E7,PVALID,COPTIC SMALL LETTER KHEI
-03E8,DISALLOWED,COPTIC CAPITAL LETTER HORI
-03E9,PVALID,COPTIC SMALL LETTER HORI
-03EA,DISALLOWED,COPTIC CAPITAL LETTER GANGIA
-03EB,PVALID,COPTIC SMALL LETTER GANGIA
-03EC,DISALLOWED,COPTIC CAPITAL LETTER SHIMA
-03ED,PVALID,COPTIC SMALL LETTER SHIMA
-03EE,DISALLOWED,COPTIC CAPITAL LETTER DEI
-03EF,PVALID,COPTIC SMALL LETTER DEI
-03F0-03F2,DISALLOWED,GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBOL
-03F3,PVALID,GREEK LETTER YOT
-03F4-03F7,DISALLOWED,GREEK CAPITAL THETA SYMBOL..GREEK CAPITAL LETTER SHO
-03F8,PVALID,GREEK SMALL LETTER SHO
-03F9-03FA,DISALLOWED,GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN
-03FB-03FC,PVALID,GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL
-03FD-042F,DISALLOWED,GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA
-0430-045F,PVALID,CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE
-0460,DISALLOWED,CYRILLIC CAPITAL LETTER OMEGA
-0461,PVALID,CYRILLIC SMALL LETTER OMEGA
-0462,DISALLOWED,CYRILLIC CAPITAL LETTER YAT
-0463,PVALID,CYRILLIC SMALL LETTER YAT
-0464,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED E
-0465,PVALID,CYRILLIC SMALL LETTER IOTIFIED E
-0466,DISALLOWED,CYRILLIC CAPITAL LETTER LITTLE YUS
-0467,PVALID,CYRILLIC SMALL LETTER LITTLE YUS
-0468,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-0469,PVALID,CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-046A,DISALLOWED,CYRILLIC CAPITAL LETTER BIG YUS
-046B,PVALID,CYRILLIC SMALL LETTER BIG YUS
-046C,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-046D,PVALID,CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-046E,DISALLOWED,CYRILLIC CAPITAL LETTER KSI
-046F,PVALID,CYRILLIC SMALL LETTER KSI
-0470,DISALLOWED,CYRILLIC CAPITAL LETTER PSI
-0471,PVALID,CYRILLIC SMALL LETTER PSI
-0472,DISALLOWED,CYRILLIC CAPITAL LETTER FITA
-0473,PVALID,CYRILLIC SMALL LETTER FITA
-0474,DISALLOWED,CYRILLIC CAPITAL LETTER IZHITSA
-0475,PVALID,CYRILLIC SMALL LETTER IZHITSA
-0476,DISALLOWED,CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0477,PVALID,CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0478,DISALLOWED,CYRILLIC CAPITAL LETTER UK
-0479,PVALID,CYRILLIC SMALL LETTER UK
-047A,DISALLOWED,CYRILLIC CAPITAL LETTER ROUND OMEGA
-047B,PVALID,CYRILLIC SMALL LETTER ROUND OMEGA
-047C,DISALLOWED,CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-047D,PVALID,CYRILLIC SMALL LETTER OMEGA WITH TITLO
-047E,DISALLOWED,CYRILLIC CAPITAL LETTER OT
-047F,PVALID,CYRILLIC SMALL LETTER OT
-0480,DISALLOWED,CYRILLIC CAPITAL LETTER KOPPA
-0481,PVALID,CYRILLIC SMALL LETTER KOPPA
-0482,DISALLOWED,CYRILLIC THOUSANDS SIGN
-0483-0487,PVALID,COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
-0488-048A,DISALLOWED,COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-048B,PVALID,CYRILLIC SMALL LETTER SHORT I WITH TAIL
-048C,DISALLOWED,CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-048D,PVALID,CYRILLIC SMALL LETTER SEMISOFT SIGN
-048E,DISALLOWED,CYRILLIC CAPITAL LETTER ER WITH TICK
-048F,PVALID,CYRILLIC SMALL LETTER ER WITH TICK
-0490,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-0491,PVALID,CYRILLIC SMALL LETTER GHE WITH UPTURN
-0492,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH STROKE
-0493,PVALID,CYRILLIC SMALL LETTER GHE WITH STROKE
-0494,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-0495,PVALID,CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-0496,DISALLOWED,CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-0497,PVALID,CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-0498,DISALLOWED,CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-0499,PVALID,CYRILLIC SMALL LETTER ZE WITH DESCENDER
-049A,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-049B,PVALID,CYRILLIC SMALL LETTER KA WITH DESCENDER
-049C,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-049D,PVALID,CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-049E,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH STROKE
-049F,PVALID,CYRILLIC SMALL LETTER KA WITH STROKE
-04A0,DISALLOWED,CYRILLIC CAPITAL LETTER BASHKIR KA
-04A1,PVALID,CYRILLIC SMALL LETTER BASHKIR KA
-04A2,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-04A3,PVALID,CYRILLIC SMALL LETTER EN WITH DESCENDER
-04A4,DISALLOWED,CYRILLIC CAPITAL LIGATURE EN GHE
-04A5,PVALID,CYRILLIC SMALL LIGATURE EN GHE
-04A6,DISALLOWED,CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-04A7,PVALID,CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-04A8,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN HA
-04A9,PVALID,CYRILLIC SMALL LETTER ABKHASIAN HA
-04AA,DISALLOWED,CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-04AB,PVALID,CYRILLIC SMALL LETTER ES WITH DESCENDER
-04AC,DISALLOWED,CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-04AD,PVALID,CYRILLIC SMALL LETTER TE WITH DESCENDER
-04AE,DISALLOWED,CYRILLIC CAPITAL LETTER STRAIGHT U
-04AF,PVALID,CYRILLIC SMALL LETTER STRAIGHT U
-04B0,DISALLOWED,CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-04B1,PVALID,CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B2,DISALLOWED,CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-04B3,PVALID,CYRILLIC SMALL LETTER HA WITH DESCENDER
-04B4,DISALLOWED,CYRILLIC CAPITAL LIGATURE TE TSE
-04B5,PVALID,CYRILLIC SMALL LIGATURE TE TSE
-04B6,DISALLOWED,CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-04B7,PVALID,CYRILLIC SMALL LETTER CHE WITH DESCENDER
-04B8,DISALLOWED,CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-04B9,PVALID,CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04BA,DISALLOWED,CYRILLIC CAPITAL LETTER SHHA
-04BB,PVALID,CYRILLIC SMALL LETTER SHHA
-04BC,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-04BD,PVALID,CYRILLIC SMALL LETTER ABKHASIAN CHE
-04BE,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-04BF,PVALID,CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-04C0-04C1,DISALLOWED,CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-04C2,PVALID,CYRILLIC SMALL LETTER ZHE WITH BREVE
-04C3,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH HOOK
-04C4,PVALID,CYRILLIC SMALL LETTER KA WITH HOOK
-04C5,DISALLOWED,CYRILLIC CAPITAL LETTER EL WITH TAIL
-04C6,PVALID,CYRILLIC SMALL LETTER EL WITH TAIL
-04C7,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH HOOK
-04C8,PVALID,CYRILLIC SMALL LETTER EN WITH HOOK
-04C9,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH TAIL
-04CA,PVALID,CYRILLIC SMALL LETTER EN WITH TAIL
-04CB,DISALLOWED,CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-04CC,PVALID,CYRILLIC SMALL LETTER KHAKASSIAN CHE
-04CD,DISALLOWED,CYRILLIC CAPITAL LETTER EM WITH TAIL
-04CE-04CF,PVALID,CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA
-04D0,DISALLOWED,CYRILLIC CAPITAL LETTER A WITH BREVE
-04D1,PVALID,CYRILLIC SMALL LETTER A WITH BREVE
-04D2,DISALLOWED,CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04D3,PVALID,CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D4,DISALLOWED,CYRILLIC CAPITAL LIGATURE A IE
-04D5,PVALID,CYRILLIC SMALL LIGATURE A IE
-04D6,DISALLOWED,CYRILLIC CAPITAL LETTER IE WITH BREVE
-04D7,PVALID,CYRILLIC SMALL LETTER IE WITH BREVE
-04D8,DISALLOWED,CYRILLIC CAPITAL LETTER SCHWA
-04D9,PVALID,CYRILLIC SMALL LETTER SCHWA
-04DA,DISALLOWED,CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04DB,PVALID,CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DC,DISALLOWED,CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DD,PVALID,CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DE,DISALLOWED,CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04DF,PVALID,CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04E0,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-04E1,PVALID,CYRILLIC SMALL LETTER ABKHASIAN DZE
-04E2,DISALLOWED,CYRILLIC CAPITAL LETTER I WITH MACRON
-04E3,PVALID,CYRILLIC SMALL LETTER I WITH MACRON
-04E4,DISALLOWED,CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-04E5,PVALID,CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E6,DISALLOWED,CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04E7,PVALID,CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E8,DISALLOWED,CYRILLIC CAPITAL LETTER BARRED O
-04E9,PVALID,CYRILLIC SMALL LETTER BARRED O
-04EA,DISALLOWED,CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-04EB,PVALID,CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EC,DISALLOWED,CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-04ED,PVALID,CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EE,DISALLOWED,CYRILLIC CAPITAL LETTER U WITH MACRON
-04EF,PVALID,CYRILLIC SMALL LETTER U WITH MACRON
-04F0,DISALLOWED,CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F1,PVALID,CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F2,DISALLOWED,CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F3,PVALID,CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F4,DISALLOWED,CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F5,PVALID,CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F6,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-04F7,PVALID,CYRILLIC SMALL LETTER GHE WITH DESCENDER
-04F8,DISALLOWED,CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04F9,PVALID,CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04FA,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-04FB,PVALID,CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-04FC,DISALLOWED,CYRILLIC CAPITAL LETTER HA WITH HOOK
-04FD,PVALID,CYRILLIC SMALL LETTER HA WITH HOOK
-04FE,DISALLOWED,CYRILLIC CAPITAL LETTER HA WITH STROKE
-04FF,PVALID,CYRILLIC SMALL LETTER HA WITH STROKE
-0500,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI DE
-0501,PVALID,CYRILLIC SMALL LETTER KOMI DE
-0502,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI DJE
-0503,PVALID,CYRILLIC SMALL LETTER KOMI DJE
-0504,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI ZJE
-0505,PVALID,CYRILLIC SMALL LETTER KOMI ZJE
-0506,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI DZJE
-0507,PVALID,CYRILLIC SMALL LETTER KOMI DZJE
-0508,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI LJE
-0509,PVALID,CYRILLIC SMALL LETTER KOMI LJE
-050A,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI NJE
-050B,PVALID,CYRILLIC SMALL LETTER KOMI NJE
-050C,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI SJE
-050D,PVALID,CYRILLIC SMALL LETTER KOMI SJE
-050E,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI TJE
-050F,PVALID,CYRILLIC SMALL LETTER KOMI TJE
-0510,DISALLOWED,CYRILLIC CAPITAL LETTER REVERSED ZE
-0511,PVALID,CYRILLIC SMALL LETTER REVERSED ZE
-0512,DISALLOWED,CYRILLIC CAPITAL LETTER EL WITH HOOK
-0513,PVALID,CYRILLIC SMALL LETTER EL WITH HOOK
-0514,DISALLOWED,CYRILLIC CAPITAL LETTER LHA
-0515,PVALID,CYRILLIC SMALL LETTER LHA
-0516,DISALLOWED,CYRILLIC CAPITAL LETTER RHA
-0517,PVALID,CYRILLIC SMALL LETTER RHA
-0518,DISALLOWED,CYRILLIC CAPITAL LETTER YAE
-0519,PVALID,CYRILLIC SMALL LETTER YAE
-051A,DISALLOWED,CYRILLIC CAPITAL LETTER QA
-051B,PVALID,CYRILLIC SMALL LETTER QA
-051C,DISALLOWED,CYRILLIC CAPITAL LETTER WE
-051D,PVALID,CYRILLIC SMALL LETTER WE
-051E,DISALLOWED,CYRILLIC CAPITAL LETTER ALEUT KA
-051F,PVALID,CYRILLIC SMALL LETTER ALEUT KA
-0520,DISALLOWED,CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
-0521,PVALID,CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
-0522,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
-0523,PVALID,CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
-0524,DISALLOWED,CYRILLIC CAPITAL LETTER PE WITH DESCENDER
-0525,PVALID,CYRILLIC SMALL LETTER PE WITH DESCENDER
-0526-0530,UNASSIGNED,<RESERVED>..<RESERVED>
-0531-0556,DISALLOWED,ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
-0557-0558,UNASSIGNED,<RESERVED>..<RESERVED>
-0559,PVALID,ARMENIAN MODIFIER LETTER LEFT HALF RING
-055A-055F,DISALLOWED,ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
-0560,UNASSIGNED,<RESERVED>
-0561-0586,PVALID,ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LETTER FEH
-0587,DISALLOWED,ARMENIAN SMALL LIGATURE ECH YIWN
-0588,UNASSIGNED,<RESERVED>
-0589-058A,DISALLOWED,ARMENIAN FULL STOP..ARMENIAN HYPHEN
-058B-0590,UNASSIGNED,<RESERVED>..<RESERVED>
-0591-05BD,PVALID,HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
-05BE,DISALLOWED,HEBREW PUNCTUATION MAQAF
-05BF,PVALID,HEBREW POINT RAFE
-05C0,DISALLOWED,HEBREW PUNCTUATION PASEQ
-05C1-05C2,PVALID,HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
-05C3,DISALLOWED,HEBREW PUNCTUATION SOF PASUQ
-05C4-05C5,PVALID,HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
-05C6,DISALLOWED,HEBREW PUNCTUATION NUN HAFUKHA
-05C7,PVALID,HEBREW POINT QAMATS QATAN
-05C8-05CF,UNASSIGNED,<RESERVED>..<RESERVED>
-05D0-05EA,PVALID,HEBREW LETTER ALEF..HEBREW LETTER TAV
-05EB-05EF,UNASSIGNED,<RESERVED>..<RESERVED>
-05F0-05F2,PVALID,HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
-05F3-05F4,CONTEXTO,HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
-05F5-05FF,UNASSIGNED,<RESERVED>..<RESERVED>
-0600-0603,DISALLOWED,ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
-0604-0605,UNASSIGNED,<RESERVED>..<RESERVED>
-0606-060F,DISALLOWED,ARABIC-INDIC CUBE ROOT..ARABIC SIGN MISRA
-0610-061A,PVALID,ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
-061B,DISALLOWED,ARABIC SEMICOLON
-061C-061D,UNASSIGNED,<RESERVED>..<RESERVED>
-061E-061F,DISALLOWED,ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
-0620,UNASSIGNED,<RESERVED>
-0621-063F,PVALID,ARABIC LETTER HAMZA..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0640,DISALLOWED,ARABIC TATWEEL
-0641-065E,PVALID,ARABIC LETTER FEH..ARABIC FATHA WITH TWO DOTS
-065F,UNASSIGNED,<RESERVED>
-0660-0669,CONTEXTO,ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
-066A-066D,DISALLOWED,ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
-066E-0674,PVALID,ARABIC LETTER DOTLESS BEH..ARABIC LETTER HIGH HAMZA
-0675-0678,DISALLOWED,ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH
-0679-06D3,PVALID,ARABIC LETTER TTEH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D4,DISALLOWED,ARABIC FULL STOP
-06D5-06DC,PVALID,ARABIC LETTER AE..ARABIC SMALL HIGH SEEN
-06DD-06DE,DISALLOWED,ARABIC END OF AYAH..ARABIC START OF RUB EL HIZB
-06DF-06E8,PVALID,ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH NOON
-06E9,DISALLOWED,ARABIC PLACE OF SAJDAH
-06EA-06EF,PVALID,ARABIC EMPTY CENTRE LOW STOP..ARABIC LETTER REH WITH INVERTED V
-06F0-06F9,CONTEXTO,EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
-06FA-06FF,PVALID,ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER HEH WITH INVERTED V
-0700-070D,DISALLOWED,SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
-070E,UNASSIGNED,<RESERVED>
-070F,DISALLOWED,SYRIAC ABBREVIATION MARK
-0710-074A,PVALID,SYRIAC LETTER ALAPH..SYRIAC BARREKH
-074B-074C,UNASSIGNED,<RESERVED>..<RESERVED>
-074D-07B1,PVALID,SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER NAA
-07B2-07BF,UNASSIGNED,<RESERVED>..<RESERVED>
-07C0-07F5,PVALID,NKO DIGIT ZERO..NKO LOW TONE APOSTROPHE
-07F6-07FA,DISALLOWED,NKO SYMBOL OO DENNEN..NKO LAJANYALAN
-07FB-07FF,UNASSIGNED,<RESERVED>..<RESERVED>
-0800-082D,PVALID,SAMARITAN LETTER ALAF..SAMARITAN MARK NEQUDAA
-082E-082F,UNASSIGNED,<RESERVED>..<RESERVED>
-0830-083E,DISALLOWED,SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
-083F-08FF,UNASSIGNED,<RESERVED>..<RESERVED>
-0900-0939,PVALID,DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI LETTER HA
-093A-093B,UNASSIGNED,<RESERVED>..<RESERVED>
-093C-094E,PVALID,DEVANAGARI SIGN NUKTA..DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
-094F,UNASSIGNED,<RESERVED>
-0950-0955,PVALID,DEVANAGARI OM..DEVANAGARI VOWEL SIGN CANDRA LONG E
-0956-0957,UNASSIGNED,<RESERVED>..<RESERVED>
-0958-095F,DISALLOWED,DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
-0960-0963,PVALID,DEVANAGARI LETTER VOCALIC RR..DEVANAGARI VOWEL SIGN VOCALIC LL
-0964-0965,DISALLOWED,DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
-0966-096F,PVALID,DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
-0970,DISALLOWED,DEVANAGARI ABBREVIATION SIGN
-0971-0972,PVALID,DEVANAGARI SIGN HIGH SPACING DOT..DEVANAGARI LETTER CANDRA A
-0973-0978,UNASSIGNED,<RESERVED>..<RESERVED>
-0979-097F,PVALID,DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
-0980,UNASSIGNED,<RESERVED>
-0981-0983,PVALID,BENGALI SIGN CANDRABINDU..BENGALI SIGN VISARGA
-0984,UNASSIGNED,<RESERVED>
-0985-098C,PVALID,BENGALI LETTER A..BENGALI LETTER VOCALIC L
-098D-098E,UNASSIGNED,<RESERVED>..<RESERVED>
-098F-0990,PVALID,BENGALI LETTER E..BENGALI LETTER AI
-0991-0992,UNASSIGNED,<RESERVED>..<RESERVED>
-0993-09A8,PVALID,BENGALI LETTER O..BENGALI LETTER NA
-09A9,UNASSIGNED,<RESERVED>
-09AA-09B0,PVALID,BENGALI LETTER PA..BENGALI LETTER RA
-09B1,UNASSIGNED,<RESERVED>
-09B2,PVALID,BENGALI LETTER LA
-09B3-09B5,UNASSIGNED,<RESERVED>..<RESERVED>
-09B6-09B9,PVALID,BENGALI LETTER SHA..BENGALI LETTER HA
-09BA-09BB,UNASSIGNED,<RESERVED>..<RESERVED>
-09BC-09C4,PVALID,BENGALI SIGN NUKTA..BENGALI VOWEL SIGN VOCALIC RR
-09C5-09C6,UNASSIGNED,<RESERVED>..<RESERVED>
-09C7-09C8,PVALID,BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
-09C9-09CA,UNASSIGNED,<RESERVED>..<RESERVED>
-09CB-09CE,PVALID,BENGALI VOWEL SIGN O..BENGALI LETTER KHANDA TA
-09CF-09D6,UNASSIGNED,<RESERVED>..<RESERVED>
-09D7,PVALID,BENGALI AU LENGTH MARK
-09D8-09DB,UNASSIGNED,<RESERVED>..<RESERVED>
-09DC-09DD,DISALLOWED,BENGALI LETTER RRA..BENGALI LETTER RHA
-09DE,UNASSIGNED,<RESERVED>
-09DF,DISALLOWED,BENGALI LETTER YYA
-09E0-09E3,PVALID,BENGALI LETTER VOCALIC RR..BENGALI VOWEL SIGN VOCALIC LL
-09E4-09E5,UNASSIGNED,<RESERVED>..<RESERVED>
-09E6-09F1,PVALID,BENGALI DIGIT ZERO..BENGALI LETTER RA WITH LOWER DIAGONAL
-09F2-09FB,DISALLOWED,BENGALI RUPEE MARK..BENGALI GANDA MARK
-09FC-0A00,UNASSIGNED,<RESERVED>..<RESERVED>
-0A01-0A03,PVALID,GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN VISARGA
-0A04,UNASSIGNED,<RESERVED>
-0A05-0A0A,PVALID,GURMUKHI LETTER A..GURMUKHI LETTER UU
-0A0B-0A0E,UNASSIGNED,<RESERVED>..<RESERVED>
-0A0F-0A10,PVALID,GURMUKHI LETTER EE..GURMUKHI LETTER AI
-0A11-0A12,UNASSIGNED,<RESERVED>..<RESERVED>
-0A13-0A28,PVALID,GURMUKHI LETTER OO..GURMUKHI LETTER NA
-0A29,UNASSIGNED,<RESERVED>
-0A2A-0A30,PVALID,GURMUKHI LETTER PA..GURMUKHI LETTER RA
-0A31,UNASSIGNED,<RESERVED>
-0A32,PVALID,GURMUKHI LETTER LA
-0A33,DISALLOWED,GURMUKHI LETTER LLA
-0A34,UNASSIGNED,<RESERVED>
-0A35,PVALID,GURMUKHI LETTER VA
-0A36,DISALLOWED,GURMUKHI LETTER SHA
-0A37,UNASSIGNED,<RESERVED>
-0A38-0A39,PVALID,GURMUKHI LETTER SA..GURMUKHI LETTER HA
-0A3A-0A3B,UNASSIGNED,<RESERVED>..<RESERVED>
-0A3C,PVALID,GURMUKHI SIGN NUKTA
-0A3D,UNASSIGNED,<RESERVED>
-0A3E-0A42,PVALID,GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN UU
-0A43-0A46,UNASSIGNED,<RESERVED>..<RESERVED>
-0A47-0A48,PVALID,GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
-0A49-0A4A,UNASSIGNED,<RESERVED>..<RESERVED>
-0A4B-0A4D,PVALID,GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
-0A4E-0A50,UNASSIGNED,<RESERVED>..<RESERVED>
-0A51,PVALID,GURMUKHI SIGN UDAAT
-0A52-0A58,UNASSIGNED,<RESERVED>..<RESERVED>
-0A59-0A5B,DISALLOWED,GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
-0A5C,PVALID,GURMUKHI LETTER RRA
-0A5D,UNASSIGNED,<RESERVED>
-0A5E,DISALLOWED,GURMUKHI LETTER FA
-0A5F-0A65,UNASSIGNED,<RESERVED>..<RESERVED>
-0A66-0A75,PVALID,GURMUKHI DIGIT ZERO..GURMUKHI SIGN YAKASH
-0A76-0A80,UNASSIGNED,<RESERVED>..<RESERVED>
-0A81-0A83,PVALID,GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VISARGA
-0A84,UNASSIGNED,<RESERVED>
-0A85-0A8D,PVALID,GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
-0A8E,UNASSIGNED,<RESERVED>
-0A8F-0A91,PVALID,GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
-0A92,UNASSIGNED,<RESERVED>
-0A93-0AA8,PVALID,GUJARATI LETTER O..GUJARATI LETTER NA
-0AA9,UNASSIGNED,<RESERVED>
-0AAA-0AB0,PVALID,GUJARATI LETTER PA..GUJARATI LETTER RA
-0AB1,UNASSIGNED,<RESERVED>
-0AB2-0AB3,PVALID,GUJARATI LETTER LA..GUJARATI LETTER LLA
-0AB4,UNASSIGNED,<RESERVED>
-0AB5-0AB9,PVALID,GUJARATI LETTER VA..GUJARATI LETTER HA
-0ABA-0ABB,UNASSIGNED,<RESERVED>..<RESERVED>
-0ABC-0AC5,PVALID,GUJARATI SIGN NUKTA..GUJARATI VOWEL SIGN CANDRA E
-0AC6,UNASSIGNED,<RESERVED>
-0AC7-0AC9,PVALID,GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN CANDRA O
-0ACA,UNASSIGNED,<RESERVED>
-0ACB-0ACD,PVALID,GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA
-0ACE-0ACF,UNASSIGNED,<RESERVED>..<RESERVED>
-0AD0,PVALID,GUJARATI OM
-0AD1-0ADF,UNASSIGNED,<RESERVED>..<RESERVED>
-0AE0-0AE3,PVALID,GUJARATI LETTER VOCALIC RR..GUJARATI VOWEL SIGN VOCALIC LL
-0AE4-0AE5,UNASSIGNED,<RESERVED>..<RESERVED>
-0AE6-0AEF,PVALID,GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
-0AF0,UNASSIGNED,<RESERVED>
-0AF1,DISALLOWED,GUJARATI RUPEE SIGN
-0AF2-0B00,UNASSIGNED,<RESERVED>..<RESERVED>
-0B01-0B03,PVALID,ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA
-0B04,UNASSIGNED,<RESERVED>
-0B05-0B0C,PVALID,ORIYA LETTER A..ORIYA LETTER VOCALIC L
-0B0D-0B0E,UNASSIGNED,<RESERVED>..<RESERVED>
-0B0F-0B10,PVALID,ORIYA LETTER E..ORIYA LETTER AI
-0B11-0B12,UNASSIGNED,<RESERVED>..<RESERVED>
-0B13-0B28,PVALID,ORIYA LETTER O..ORIYA LETTER NA
-0B29,UNASSIGNED,<RESERVED>
-0B2A-0B30,PVALID,ORIYA LETTER PA..ORIYA LETTER RA
-0B31,UNASSIGNED,<RESERVED>
-0B32-0B33,PVALID,ORIYA LETTER LA..ORIYA LETTER LLA
-0B34,UNASSIGNED,<RESERVED>
-0B35-0B39,PVALID,ORIYA LETTER VA..ORIYA LETTER HA
-0B3A-0B3B,UNASSIGNED,<RESERVED>..<RESERVED>
-0B3C-0B44,PVALID,ORIYA SIGN NUKTA..ORIYA VOWEL SIGN VOCALIC RR
-0B45-0B46,UNASSIGNED,<RESERVED>..<RESERVED>
-0B47-0B48,PVALID,ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
-0B49-0B4A,UNASSIGNED,<RESERVED>..<RESERVED>
-0B4B-0B4D,PVALID,ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA
-0B4E-0B55,UNASSIGNED,<RESERVED>..<RESERVED>
-0B56-0B57,PVALID,ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK
-0B58-0B5B,UNASSIGNED,<RESERVED>..<RESERVED>
-0B5C-0B5D,DISALLOWED,ORIYA LETTER RRA..ORIYA LETTER RHA
-0B5E,UNASSIGNED,<RESERVED>
-0B5F-0B63,PVALID,ORIYA LETTER YYA..ORIYA VOWEL SIGN VOCALIC LL
-0B64-0B65,UNASSIGNED,<RESERVED>..<RESERVED>
-0B66-0B6F,PVALID,ORIYA DIGIT ZERO..ORIYA DIGIT NINE
-0B70,DISALLOWED,ORIYA ISSHAR
-0B71,PVALID,ORIYA LETTER WA
-0B72-0B81,UNASSIGNED,<RESERVED>..<RESERVED>
-0B82-0B83,PVALID,TAMIL SIGN ANUSVARA..TAMIL SIGN VISARGA
-0B84,UNASSIGNED,<RESERVED>
-0B85-0B8A,PVALID,TAMIL LETTER A..TAMIL LETTER UU
-0B8B-0B8D,UNASSIGNED,<RESERVED>..<RESERVED>
-0B8E-0B90,PVALID,TAMIL LETTER E..TAMIL LETTER AI
-0B91,UNASSIGNED,<RESERVED>
-0B92-0B95,PVALID,TAMIL LETTER O..TAMIL LETTER KA
-0B96-0B98,UNASSIGNED,<RESERVED>..<RESERVED>
-0B99-0B9A,PVALID,TAMIL LETTER NGA..TAMIL LETTER CA
-0B9B,UNASSIGNED,<RESERVED>
-0B9C,PVALID,TAMIL LETTER JA
-0B9D,UNASSIGNED,<RESERVED>
-0B9E-0B9F,PVALID,TAMIL LETTER NYA..TAMIL LETTER TTA
-0BA0-0BA2,UNASSIGNED,<RESERVED>..<RESERVED>
-0BA3-0BA4,PVALID,TAMIL LETTER NNA..TAMIL LETTER TA
-0BA5-0BA7,UNASSIGNED,<RESERVED>..<RESERVED>
-0BA8-0BAA,PVALID,TAMIL LETTER NA..TAMIL LETTER PA
-0BAB-0BAD,UNASSIGNED,<RESERVED>..<RESERVED>
-0BAE-0BB9,PVALID,TAMIL LETTER MA..TAMIL LETTER HA
-0BBA-0BBD,UNASSIGNED,<RESERVED>..<RESERVED>
-0BBE-0BC2,PVALID,TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU
-0BC3-0BC5,UNASSIGNED,<RESERVED>..<RESERVED>
-0BC6-0BC8,PVALID,TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
-0BC9,UNASSIGNED,<RESERVED>
-0BCA-0BCD,PVALID,TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA
-0BCE-0BCF,UNASSIGNED,<RESERVED>..<RESERVED>
-0BD0,PVALID,TAMIL OM
-0BD1-0BD6,UNASSIGNED,<RESERVED>..<RESERVED>
-0BD7,PVALID,TAMIL AU LENGTH MARK
-0BD8-0BE5,UNASSIGNED,<RESERVED>..<RESERVED>
-0BE6-0BEF,PVALID,TAMIL DIGIT ZERO..TAMIL DIGIT NINE
-0BF0-0BFA,DISALLOWED,TAMIL NUMBER TEN..TAMIL NUMBER SIGN
-0BFB-0C00,UNASSIGNED,<RESERVED>..<RESERVED>
-0C01-0C03,PVALID,TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
-0C04,UNASSIGNED,<RESERVED>
-0C05-0C0C,PVALID,TELUGU LETTER A..TELUGU LETTER VOCALIC L
-0C0D,UNASSIGNED,<RESERVED>
-0C0E-0C10,PVALID,TELUGU LETTER E..TELUGU LETTER AI
-0C11,UNASSIGNED,<RESERVED>
-0C12-0C28,PVALID,TELUGU LETTER O..TELUGU LETTER NA
-0C29,UNASSIGNED,<RESERVED>
-0C2A-0C33,PVALID,TELUGU LETTER PA..TELUGU LETTER LLA
-0C34,UNASSIGNED,<RESERVED>
-0C35-0C39,PVALID,TELUGU LETTER VA..TELUGU LETTER HA
-0C3A-0C3C,UNASSIGNED,<RESERVED>..<RESERVED>
-0C3D-0C44,PVALID,TELUGU SIGN AVAGRAHA..TELUGU VOWEL SIGN VOCALIC RR
-0C45,UNASSIGNED,<RESERVED>
-0C46-0C48,PVALID,TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
-0C49,UNASSIGNED,<RESERVED>
-0C4A-0C4D,PVALID,TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
-0C4E-0C54,UNASSIGNED,<RESERVED>..<RESERVED>
-0C55-0C56,PVALID,TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
-0C57,UNASSIGNED,<RESERVED>
-0C58-0C59,PVALID,TELUGU LETTER TSA..TELUGU LETTER DZA
-0C5A-0C5F,UNASSIGNED,<RESERVED>..<RESERVED>
-0C60-0C63,PVALID,TELUGU LETTER VOCALIC RR..TELUGU VOWEL SIGN VOCALIC LL
-0C64-0C65,UNASSIGNED,<RESERVED>..<RESERVED>
-0C66-0C6F,PVALID,TELUGU DIGIT ZERO..TELUGU DIGIT NINE
-0C70-0C77,UNASSIGNED,<RESERVED>..<RESERVED>
-0C78-0C7F,DISALLOWED,TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU SIGN TUUMU
-0C80-0C81,UNASSIGNED,<RESERVED>..<RESERVED>
-0C82-0C83,PVALID,KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
-0C84,UNASSIGNED,<RESERVED>
-0C85-0C8C,PVALID,KANNADA LETTER A..KANNADA LETTER VOCALIC L
-0C8D,UNASSIGNED,<RESERVED>
-0C8E-0C90,PVALID,KANNADA LETTER E..KANNADA LETTER AI
-0C91,UNASSIGNED,<RESERVED>
-0C92-0CA8,PVALID,KANNADA LETTER O..KANNADA LETTER NA
-0CA9,UNASSIGNED,<RESERVED>
-0CAA-0CB3,PVALID,KANNADA LETTER PA..KANNADA LETTER LLA
-0CB4,UNASSIGNED,<RESERVED>
-0CB5-0CB9,PVALID,KANNADA LETTER VA..KANNADA LETTER HA
-0CBA-0CBB,UNASSIGNED,<RESERVED>..<RESERVED>
-0CBC-0CC4,PVALID,KANNADA SIGN NUKTA..KANNADA VOWEL SIGN VOCALIC RR
-0CC5,UNASSIGNED,<RESERVED>
-0CC6-0CC8,PVALID,KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI
-0CC9,UNASSIGNED,<RESERVED>
-0CCA-0CCD,PVALID,KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA
-0CCE-0CD4,UNASSIGNED,<RESERVED>..<RESERVED>
-0CD5-0CD6,PVALID,KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
-0CD7-0CDD,UNASSIGNED,<RESERVED>..<RESERVED>
-0CDE,PVALID,KANNADA LETTER FA
-0CDF,UNASSIGNED,<RESERVED>
-0CE0-0CE3,PVALID,KANNADA LETTER VOCALIC RR..KANNADA VOWEL SIGN VOCALIC LL
-0CE4-0CE5,UNASSIGNED,<RESERVED>..<RESERVED>
-0CE6-0CEF,PVALID,KANNADA DIGIT ZERO..KANNADA DIGIT NINE
-0CF0,UNASSIGNED,<RESERVED>
-0CF1-0CF2,DISALLOWED,KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
-0CF3-0D01,UNASSIGNED,<RESERVED>..<RESERVED>
-0D02-0D03,PVALID,MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
-0D04,UNASSIGNED,<RESERVED>
-0D05-0D0C,PVALID,MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
-0D0D,UNASSIGNED,<RESERVED>
-0D0E-0D10,PVALID,MALAYALAM LETTER E..MALAYALAM LETTER AI
-0D11,UNASSIGNED,<RESERVED>
-0D12-0D28,PVALID,MALAYALAM LETTER O..MALAYALAM LETTER NA
-0D29,UNASSIGNED,<RESERVED>
-0D2A-0D39,PVALID,MALAYALAM LETTER PA..MALAYALAM LETTER HA
-0D3A-0D3C,UNASSIGNED,<RESERVED>..<RESERVED>
-0D3D-0D44,PVALID,MALAYALAM SIGN AVAGRAHA..MALAYALAM VOWEL SIGN VOCALIC RR
-0D45,UNASSIGNED,<RESERVED>
-0D46-0D48,PVALID,MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
-0D49,UNASSIGNED,<RESERVED>
-0D4A-0D4D,PVALID,MALAYALAM VOWEL SIGN O..MALAYALAM SIGN VIRAMA
-0D4E-0D56,UNASSIGNED,<RESERVED>..<RESERVED>
-0D57,PVALID,MALAYALAM AU LENGTH MARK
-0D58-0D5F,UNASSIGNED,<RESERVED>..<RESERVED>
-0D60-0D63,PVALID,MALAYALAM LETTER VOCALIC RR..MALAYALAM VOWEL SIGN VOCALIC LL
-0D64-0D65,UNASSIGNED,<RESERVED>..<RESERVED>
-0D66-0D6F,PVALID,MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
-0D70-0D75,DISALLOWED,MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
-0D76-0D78,UNASSIGNED,<RESERVED>..<RESERVED>
-0D79,DISALLOWED,MALAYALAM DATE MARK
-0D7A-0D7F,PVALID,MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
-0D80-0D81,UNASSIGNED,<RESERVED>..<RESERVED>
-0D82-0D83,PVALID,SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
-0D84,UNASSIGNED,<RESERVED>
-0D85-0D96,PVALID,SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
-0D97-0D99,UNASSIGNED,<RESERVED>..<RESERVED>
-0D9A-0DB1,PVALID,SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
-0DB2,UNASSIGNED,<RESERVED>
-0DB3-0DBB,PVALID,SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
-0DBC,UNASSIGNED,<RESERVED>
-0DBD,PVALID,SINHALA LETTER DANTAJA LAYANNA
-0DBE-0DBF,UNASSIGNED,<RESERVED>..<RESERVED>
-0DC0-0DC6,PVALID,SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
-0DC7-0DC9,UNASSIGNED,<RESERVED>..<RESERVED>
-0DCA,PVALID,SINHALA SIGN AL-LAKUNA
-0DCB-0DCE,UNASSIGNED,<RESERVED>..<RESERVED>
-0DCF-0DD4,PVALID,SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD5,UNASSIGNED,<RESERVED>
-0DD6,PVALID,SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD7,UNASSIGNED,<RESERVED>
-0DD8-0DDF,PVALID,SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
-0DE0-0DF1,UNASSIGNED,<RESERVED>..<RESERVED>
-0DF2-0DF3,PVALID,SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DF4,DISALLOWED,SINHALA PUNCTUATION KUNDDALIYA
-0DF5-0E00,UNASSIGNED,<RESERVED>..<RESERVED>
-0E01-0E32,PVALID,THAI CHARACTER KO KAI..THAI CHARACTER SARA AA
-0E33,DISALLOWED,THAI CHARACTER SARA AM
-0E34-0E3A,PVALID,THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
-0E3B-0E3E,UNASSIGNED,<RESERVED>..<RESERVED>
-0E3F,DISALLOWED,THAI CURRENCY SYMBOL BAHT
-0E40-0E4E,PVALID,THAI CHARACTER SARA E..THAI CHARACTER YAMAKKAN
-0E4F,DISALLOWED,THAI CHARACTER FONGMAN
-0E50-0E59,PVALID,THAI DIGIT ZERO..THAI DIGIT NINE
-0E5A-0E5B,DISALLOWED,THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
-0E5C-0E80,UNASSIGNED,<RESERVED>..<RESERVED>
-0E81-0E82,PVALID,LAO LETTER KO..LAO LETTER KHO SUNG
-0E83,UNASSIGNED,<RESERVED>
-0E84,PVALID,LAO LETTER KHO TAM
-0E85-0E86,UNASSIGNED,<RESERVED>..<RESERVED>
-0E87-0E88,PVALID,LAO LETTER NGO..LAO LETTER CO
-0E89,UNASSIGNED,<RESERVED>
-0E8A,PVALID,LAO LETTER SO TAM
-0E8B-0E8C,UNASSIGNED,<RESERVED>..<RESERVED>
-0E8D,PVALID,LAO LETTER NYO
-0E8E-0E93,UNASSIGNED,<RESERVED>..<RESERVED>
-0E94-0E97,PVALID,LAO LETTER DO..LAO LETTER THO TAM
-0E98,UNASSIGNED,<RESERVED>
-0E99-0E9F,PVALID,LAO LETTER NO..LAO LETTER FO SUNG
-0EA0,UNASSIGNED,<RESERVED>
-0EA1-0EA3,PVALID,LAO LETTER MO..LAO LETTER LO LING
-0EA4,UNASSIGNED,<RESERVED>
-0EA5,PVALID,LAO LETTER LO LOOT
-0EA6,UNASSIGNED,<RESERVED>
-0EA7,PVALID,LAO LETTER WO
-0EA8-0EA9,UNASSIGNED,<RESERVED>..<RESERVED>
-0EAA-0EAB,PVALID,LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAC,UNASSIGNED,<RESERVED>
-0EAD-0EB2,PVALID,LAO LETTER O..LAO VOWEL SIGN AA
-0EB3,DISALLOWED,LAO VOWEL SIGN AM
-0EB4-0EB9,PVALID,LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBA,UNASSIGNED,<RESERVED>
-0EBB-0EBD,PVALID,LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN NYO
-0EBE-0EBF,UNASSIGNED,<RESERVED>..<RESERVED>
-0EC0-0EC4,PVALID,LAO VOWEL SIGN E..LAO VOWEL SIGN AI
-0EC5,UNASSIGNED,<RESERVED>
-0EC6,PVALID,LAO KO LA
-0EC7,UNASSIGNED,<RESERVED>
-0EC8-0ECD,PVALID,LAO TONE MAI EK..LAO NIGGAHITA
-0ECE-0ECF,UNASSIGNED,<RESERVED>..<RESERVED>
-0ED0-0ED9,PVALID,LAO DIGIT ZERO..LAO DIGIT NINE
-0EDA-0EDB,UNASSIGNED,<RESERVED>..<RESERVED>
-0EDC-0EDD,DISALLOWED,LAO HO NO..LAO HO MO
-0EDE-0EFF,UNASSIGNED,<RESERVED>..<RESERVED>
-0F00,PVALID,TIBETAN SYLLABLE OM
-0F01-0F0A,DISALLOWED,TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK BKA- SHOG YIG MGO
-0F0B,PVALID,TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C-0F17,DISALLOWED,TIBETAN MARK DELIMITER TSHEG BSTAR..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
-0F18-0F19,PVALID,TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A-0F1F,DISALLOWED,TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
-0F20-0F29,PVALID,TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
-0F2A-0F34,DISALLOWED,TIBETAN DIGIT HALF ONE..TIBETAN MARK BSDUS RTAGS
-0F35,PVALID,TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36,DISALLOWED,TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
-0F37,PVALID,TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38,DISALLOWED,TIBETAN MARK CHE MGO
-0F39,PVALID,TIBETAN MARK TSA -PHRU
-0F3A-0F3D,DISALLOWED,TIBETAN MARK GUG RTAGS GYON..TIBETAN MARK ANG KHANG GYAS
-0F3E-0F42,PVALID,TIBETAN SIGN YAR TSHES..TIBETAN LETTER GA
-0F43,DISALLOWED,TIBETAN LETTER GHA
-0F44-0F47,PVALID,TIBETAN LETTER NGA..TIBETAN LETTER JA
-0F48,UNASSIGNED,<RESERVED>
-0F49-0F4C,PVALID,TIBETAN LETTER NYA..TIBETAN LETTER DDA
-0F4D,DISALLOWED,TIBETAN LETTER DDHA
-0F4E-0F51,PVALID,TIBETAN LETTER NNA..TIBETAN LETTER DA
-0F52,DISALLOWED,TIBETAN LETTER DHA
-0F53-0F56,PVALID,TIBETAN LETTER NA..TIBETAN LETTER BA
-0F57,DISALLOWED,TIBETAN LETTER BHA
-0F58-0F5B,PVALID,TIBETAN LETTER MA..TIBETAN LETTER DZA
-0F5C,DISALLOWED,TIBETAN LETTER DZHA
-0F5D-0F68,PVALID,TIBETAN LETTER WA..TIBETAN LETTER A
-0F69,DISALLOWED,TIBETAN LETTER KSSA
-0F6A-0F6C,PVALID,TIBETAN LETTER FIXED-FORM RA..TIBETAN LETTER RRA
-0F6D-0F70,UNASSIGNED,<RESERVED>..<RESERVED>
-0F71-0F72,PVALID,TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I
-0F73,DISALLOWED,TIBETAN VOWEL SIGN II
-0F74,PVALID,TIBETAN VOWEL SIGN U
-0F75-0F79,DISALLOWED,TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
-0F7A-0F80,PVALID,TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REVERSED I
-0F81,DISALLOWED,TIBETAN VOWEL SIGN REVERSED II
-0F82-0F84,PVALID,TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA
-0F85,DISALLOWED,TIBETAN MARK PALUTA
-0F86-0F8B,PVALID,TIBETAN SIGN LCI RTAGS..TIBETAN SIGN GRU MED RGYINGS
-0F8C-0F8F,UNASSIGNED,<RESERVED>..<RESERVED>
-0F90-0F92,PVALID,TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER GA
-0F93,DISALLOWED,TIBETAN SUBJOINED LETTER GHA
-0F94-0F97,PVALID,TIBETAN SUBJOINED LETTER NGA..TIBETAN SUBJOINED LETTER JA
-0F98,UNASSIGNED,<RESERVED>
-0F99-0F9C,PVALID,TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER DDA
-0F9D,DISALLOWED,TIBETAN SUBJOINED LETTER DDHA
-0F9E-0FA1,PVALID,TIBETAN SUBJOINED LETTER NNA..TIBETAN SUBJOINED LETTER DA
-0FA2,DISALLOWED,TIBETAN SUBJOINED LETTER DHA
-0FA3-0FA6,PVALID,TIBETAN SUBJOINED LETTER NA..TIBETAN SUBJOINED LETTER BA
-0FA7,DISALLOWED,TIBETAN SUBJOINED LETTER BHA
-0FA8-0FAB,PVALID,TIBETAN SUBJOINED LETTER MA..TIBETAN SUBJOINED LETTER DZA
-0FAC,DISALLOWED,TIBETAN SUBJOINED LETTER DZHA
-0FAD-0FB8,PVALID,TIBETAN SUBJOINED LETTER WA..TIBETAN SUBJOINED LETTER A
-0FB9,DISALLOWED,TIBETAN SUBJOINED LETTER KSSA
-0FBA-0FBC,PVALID,TIBETAN SUBJOINED LETTER FIXED-FORM WA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0FBD,UNASSIGNED,<RESERVED>
-0FBE-0FC5,DISALLOWED,TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
-0FC6,PVALID,TIBETAN SYMBOL PADMA GDAN
-0FC7-0FCC,DISALLOWED,TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCD,UNASSIGNED,<RESERVED>
-0FCE-0FD8,DISALLOWED,TIBETAN SIGN RDEL NAG RDEL DKAR..LEFT-FACING SVASTI SIGN WITH DOTS
-0FD9-0FFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1000-1049,PVALID,MYANMAR LETTER KA..MYANMAR DIGIT NINE
-104A-104F,DISALLOWED,MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
-1050-109D,PVALID,MYANMAR LETTER SHA..MYANMAR VOWEL SIGN AITON AI
-109E-10C5,DISALLOWED,MYANMAR SYMBOL SHAN ONE..GEORGIAN CAPITAL LETTER HOE
-10C6-10CF,UNASSIGNED,<RESERVED>..<RESERVED>
-10D0-10FA,PVALID,GEORGIAN LETTER AN..GEORGIAN LETTER AIN
-10FB-10FC,DISALLOWED,GEORGIAN PARAGRAPH SEPARATOR..MODIFIER LETTER GEORGIAN NAR
-10FD-10FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1100-11FF,DISALLOWED,HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
-1200-1248,PVALID,ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
-1249,UNASSIGNED,<RESERVED>
-124A-124D,PVALID,ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
-124E-124F,UNASSIGNED,<RESERVED>..<RESERVED>
-1250-1256,PVALID,ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
-1257,UNASSIGNED,<RESERVED>
-1258,PVALID,ETHIOPIC SYLLABLE QHWA
-1259,UNASSIGNED,<RESERVED>
-125A-125D,PVALID,ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
-125E-125F,UNASSIGNED,<RESERVED>..<RESERVED>
-1260-1288,PVALID,ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
-1289,UNASSIGNED,<RESERVED>
-128A-128D,PVALID,ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
-128E-128F,UNASSIGNED,<RESERVED>..<RESERVED>
-1290-12B0,PVALID,ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
-12B1,UNASSIGNED,<RESERVED>
-12B2-12B5,PVALID,ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
-12B6-12B7,UNASSIGNED,<RESERVED>..<RESERVED>
-12B8-12BE,PVALID,ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
-12BF,UNASSIGNED,<RESERVED>
-12C0,PVALID,ETHIOPIC SYLLABLE KXWA
-12C1,UNASSIGNED,<RESERVED>
-12C2-12C5,PVALID,ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
-12C6-12C7,UNASSIGNED,<RESERVED>..<RESERVED>
-12C8-12D6,PVALID,ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
-12D7,UNASSIGNED,<RESERVED>
-12D8-1310,PVALID,ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
-1311,UNASSIGNED,<RESERVED>
-1312-1315,PVALID,ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
-1316-1317,UNASSIGNED,<RESERVED>..<RESERVED>
-1318-135A,PVALID,ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
-135B-135E,UNASSIGNED,<RESERVED>..<RESERVED>
-135F,PVALID,ETHIOPIC COMBINING GEMINATION MARK
-1360-137C,DISALLOWED,ETHIOPIC SECTION MARK..ETHIOPIC NUMBER TEN THOUSAND
-137D-137F,UNASSIGNED,<RESERVED>..<RESERVED>
-1380-138F,PVALID,ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
-1390-1399,DISALLOWED,ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
-139A-139F,UNASSIGNED,<RESERVED>..<RESERVED>
-13A0-13F4,PVALID,CHEROKEE LETTER A..CHEROKEE LETTER YV
-13F5-13FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1400,DISALLOWED,CANADIAN SYLLABICS HYPHEN
-1401-166C,PVALID,CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
-166D-166E,DISALLOWED,CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
-166F-167F,PVALID,CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
-1680,DISALLOWED,OGHAM SPACE MARK
-1681-169A,PVALID,OGHAM LETTER BEITH..OGHAM LETTER PEITH
-169B-169C,DISALLOWED,OGHAM FEATHER MARK..OGHAM REVERSED FEATHER MARK
-169D-169F,UNASSIGNED,<RESERVED>..<RESERVED>
-16A0-16EA,PVALID,RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
-16EB-16F0,DISALLOWED,RUNIC SINGLE PUNCTUATION..RUNIC BELGTHOR SYMBOL
-16F1-16FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1700-170C,PVALID,TAGALOG LETTER A..TAGALOG LETTER YA
-170D,UNASSIGNED,<RESERVED>
-170E-1714,PVALID,TAGALOG LETTER LA..TAGALOG SIGN VIRAMA
-1715-171F,UNASSIGNED,<RESERVED>..<RESERVED>
-1720-1734,PVALID,HANUNOO LETTER A..HANUNOO SIGN PAMUDPOD
-1735-1736,DISALLOWED,PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
-1737-173F,UNASSIGNED,<RESERVED>..<RESERVED>
-1740-1753,PVALID,BUHID LETTER A..BUHID VOWEL SIGN U
-1754-175F,UNASSIGNED,<RESERVED>..<RESERVED>
-1760-176C,PVALID,TAGBANWA LETTER A..TAGBANWA LETTER YA
-176D,UNASSIGNED,<RESERVED>
-176E-1770,PVALID,TAGBANWA LETTER LA..TAGBANWA LETTER SA
-1771,UNASSIGNED,<RESERVED>
-1772-1773,PVALID,TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
-1774-177F,UNASSIGNED,<RESERVED>..<RESERVED>
-1780-17B3,PVALID,KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
-17B4-17B5,DISALLOWED,KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
-17B6-17D3,PVALID,KHMER VOWEL SIGN AA..KHMER SIGN BATHAMASAT
-17D4-17D6,DISALLOWED,KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
-17D7,PVALID,KHMER SIGN LEK TOO
-17D8-17DB,DISALLOWED,KHMER SIGN BEYYAL..KHMER CURRENCY SYMBOL RIEL
-17DC-17DD,PVALID,KHMER SIGN AVAKRAHASANYA..KHMER SIGN ATTHACAN
-17DE-17DF,UNASSIGNED,<RESERVED>..<RESERVED>
-17E0-17E9,PVALID,KHMER DIGIT ZERO..KHMER DIGIT NINE
-17EA-17EF,UNASSIGNED,<RESERVED>..<RESERVED>
-17F0-17F9,DISALLOWED,KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
-17FA-17FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1800-180E,DISALLOWED,MONGOLIAN BIRGA..MONGOLIAN VOWEL SEPARATOR
-180F,UNASSIGNED,<RESERVED>
-1810-1819,PVALID,MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
-181A-181F,UNASSIGNED,<RESERVED>..<RESERVED>
-1820-1877,PVALID,MONGOLIAN LETTER A..MONGOLIAN LETTER MANCHU ZHA
-1878-187F,UNASSIGNED,<RESERVED>..<RESERVED>
-1880-18AA,PVALID,MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI LHA
-18AB-18AF,UNASSIGNED,<RESERVED>..<RESERVED>
-18B0-18F5,PVALID,CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-18F6-18FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1900-191C,PVALID,LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
-191D-191F,UNASSIGNED,<RESERVED>..<RESERVED>
-1920-192B,PVALID,LIMBU VOWEL SIGN A..LIMBU SUBJOINED LETTER WA
-192C-192F,UNASSIGNED,<RESERVED>..<RESERVED>
-1930-193B,PVALID,LIMBU SMALL LETTER KA..LIMBU SIGN SA-I
-193C-193F,UNASSIGNED,<RESERVED>..<RESERVED>
-1940,DISALLOWED,LIMBU SIGN LOO
-1941-1943,UNASSIGNED,<RESERVED>..<RESERVED>
-1944-1945,DISALLOWED,LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
-1946-196D,PVALID,LIMBU DIGIT ZERO..TAI LE LETTER AI
-196E-196F,UNASSIGNED,<RESERVED>..<RESERVED>
-1970-1974,PVALID,TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
-1975-197F,UNASSIGNED,<RESERVED>..<RESERVED>
-1980-19AB,PVALID,NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
-19AC-19AF,UNASSIGNED,<RESERVED>..<RESERVED>
-19B0-19C9,PVALID,NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
-19CA-19CF,UNASSIGNED,<RESERVED>..<RESERVED>
-19D0-19DA,PVALID,NEW TAI LUE DIGIT ZERO..NEW TAI LUE THAM DIGIT ONE
-19DB-19DD,UNASSIGNED,<RESERVED>..<RESERVED>
-19DE-19FF,DISALLOWED,NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM ROC
-1A00-1A1B,PVALID,BUGINESE LETTER KA..BUGINESE VOWEL SIGN AE
-1A1C-1A1D,UNASSIGNED,<RESERVED>..<RESERVED>
-1A1E-1A1F,DISALLOWED,BUGINESE PALLAWA..BUGINESE END OF SECTION
-1A20-1A5E,PVALID,TAI THAM LETTER HIGH KA..TAI THAM CONSONANT SIGN SA
-1A5F,UNASSIGNED,<RESERVED>
-1A60-1A7C,PVALID,TAI THAM SIGN SAKOT..TAI THAM SIGN KHUEN-LUE KARAN
-1A7D-1A7E,UNASSIGNED,<RESERVED>..<RESERVED>
-1A7F-1A89,PVALID,TAI THAM COMBINING CRYPTOGRAMMIC DOT..TAI THAM HORA DIGIT NINE
-1A8A-1A8F,UNASSIGNED,<RESERVED>..<RESERVED>
-1A90-1A99,PVALID,TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
-1A9A-1A9F,UNASSIGNED,<RESERVED>..<RESERVED>
-1AA0-1AA6,DISALLOWED,TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
-1AA7,PVALID,TAI THAM SIGN MAI YAMOK
-1AA8-1AAD,DISALLOWED,TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
-1AAE-1AFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1B00-1B4B,PVALID,BALINESE SIGN ULU RICEM..BALINESE LETTER ASYURA SASAK
-1B4C-1B4F,UNASSIGNED,<RESERVED>..<RESERVED>
-1B50-1B59,PVALID,BALINESE DIGIT ZERO..BALINESE DIGIT NINE
-1B5A-1B6A,DISALLOWED,BALINESE PANTI..BALINESE MUSICAL SYMBOL DANG GEDE
-1B6B-1B73,PVALID,BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
-1B74-1B7C,DISALLOWED,BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
-1B7D-1B7F,UNASSIGNED,<RESERVED>..<RESERVED>
-1B80-1BAA,PVALID,SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PAMAAEH
-1BAB-1BAD,UNASSIGNED,<RESERVED>..<RESERVED>
-1BAE-1BB9,PVALID,SUNDANESE LETTER KHA..SUNDANESE DIGIT NINE
-1BBA-1BFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1C00-1C37,PVALID,LEPCHA LETTER KA..LEPCHA SIGN NUKTA
-1C38-1C3A,UNASSIGNED,<RESERVED>..<RESERVED>
-1C3B-1C3F,DISALLOWED,LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
-1C40-1C49,PVALID,LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
-1C4A-1C4C,UNASSIGNED,<RESERVED>..<RESERVED>
-1C4D-1C7D,PVALID,LEPCHA LETTER TTA..OL CHIKI AHAD
-1C7E-1C7F,DISALLOWED,OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
-1C80-1CCF,UNASSIGNED,<RESERVED>..<RESERVED>
-1CD0-1CD2,PVALID,VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
-1CD3,DISALLOWED,VEDIC SIGN NIHSHVASA
-1CD4-1CF2,PVALID,VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC SIGN ARDHAVISARGA
-1CF3-1CFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1D00-1D2B,PVALID,LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
-1D2C-1D2E,DISALLOWED,MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B
-1D2F,PVALID,MODIFIER LETTER CAPITAL BARRED B
-1D30-1D3A,DISALLOWED,MODIFIER LETTER CAPITAL D..MODIFIER LETTER CAPITAL N
-1D3B,PVALID,MODIFIER LETTER CAPITAL REVERSED N
-1D3C-1D4D,DISALLOWED,MODIFIER LETTER CAPITAL O..MODIFIER LETTER SMALL G
-1D4E,PVALID,MODIFIER LETTER SMALL TURNED I
-1D4F-1D6A,DISALLOWED,MODIFIER LETTER SMALL K..GREEK SUBSCRIPT SMALL LETTER CHI
-1D6B-1D77,PVALID,LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
-1D78,DISALLOWED,MODIFIER LETTER CYRILLIC EN
-1D79-1D9A,PVALID,LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-1D9B-1DBF,DISALLOWED,MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1DC0-1DE6,PVALID,COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
-1DE7-1DFC,UNASSIGNED,<RESERVED>..<RESERVED>
-1DFD-1DFF,PVALID,COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
-1E00,DISALLOWED,LATIN CAPITAL LETTER A WITH RING BELOW
-1E01,PVALID,LATIN SMALL LETTER A WITH RING BELOW
-1E02,DISALLOWED,LATIN CAPITAL LETTER B WITH DOT ABOVE
-1E03,PVALID,LATIN SMALL LETTER B WITH DOT ABOVE
-1E04,DISALLOWED,LATIN CAPITAL LETTER B WITH DOT BELOW
-1E05,PVALID,LATIN SMALL LETTER B WITH DOT BELOW
-1E06,DISALLOWED,LATIN CAPITAL LETTER B WITH LINE BELOW
-1E07,PVALID,LATIN SMALL LETTER B WITH LINE BELOW
-1E08,DISALLOWED,LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-1E09,PVALID,LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-1E0A,DISALLOWED,LATIN CAPITAL LETTER D WITH DOT ABOVE
-1E0B,PVALID,LATIN SMALL LETTER D WITH DOT ABOVE
-1E0C,DISALLOWED,LATIN CAPITAL LETTER D WITH DOT BELOW
-1E0D,PVALID,LATIN SMALL LETTER D WITH DOT BELOW
-1E0E,DISALLOWED,LATIN CAPITAL LETTER D WITH LINE BELOW
-1E0F,PVALID,LATIN SMALL LETTER D WITH LINE BELOW
-1E10,DISALLOWED,LATIN CAPITAL LETTER D WITH CEDILLA
-1E11,PVALID,LATIN SMALL LETTER D WITH CEDILLA
-1E12,DISALLOWED,LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-1E13,PVALID,LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-1E14,DISALLOWED,LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-1E15,PVALID,LATIN SMALL LETTER E WITH MACRON AND GRAVE
-1E16,DISALLOWED,LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-1E17,PVALID,LATIN SMALL LETTER E WITH MACRON AND ACUTE
-1E18,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-1E19,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-1E1A,DISALLOWED,LATIN CAPITAL LETTER E WITH TILDE BELOW
-1E1B,PVALID,LATIN SMALL LETTER E WITH TILDE BELOW
-1E1C,DISALLOWED,LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-1E1D,PVALID,LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-1E1E,DISALLOWED,LATIN CAPITAL LETTER F WITH DOT ABOVE
-1E1F,PVALID,LATIN SMALL LETTER F WITH DOT ABOVE
-1E20,DISALLOWED,LATIN CAPITAL LETTER G WITH MACRON
-1E21,PVALID,LATIN SMALL LETTER G WITH MACRON
-1E22,DISALLOWED,LATIN CAPITAL LETTER H WITH DOT ABOVE
-1E23,PVALID,LATIN SMALL LETTER H WITH DOT ABOVE
-1E24,DISALLOWED,LATIN CAPITAL LETTER H WITH DOT BELOW
-1E25,PVALID,LATIN SMALL LETTER H WITH DOT BELOW
-1E26,DISALLOWED,LATIN CAPITAL LETTER H WITH DIAERESIS
-1E27,PVALID,LATIN SMALL LETTER H WITH DIAERESIS
-1E28,DISALLOWED,LATIN CAPITAL LETTER H WITH CEDILLA
-1E29,PVALID,LATIN SMALL LETTER H WITH CEDILLA
-1E2A,DISALLOWED,LATIN CAPITAL LETTER H WITH BREVE BELOW
-1E2B,PVALID,LATIN SMALL LETTER H WITH BREVE BELOW
-1E2C,DISALLOWED,LATIN CAPITAL LETTER I WITH TILDE BELOW
-1E2D,PVALID,LATIN SMALL LETTER I WITH TILDE BELOW
-1E2E,DISALLOWED,LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-1E2F,PVALID,LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-1E30,DISALLOWED,LATIN CAPITAL LETTER K WITH ACUTE
-1E31,PVALID,LATIN SMALL LETTER K WITH ACUTE
-1E32,DISALLOWED,LATIN CAPITAL LETTER K WITH DOT BELOW
-1E33,PVALID,LATIN SMALL LETTER K WITH DOT BELOW
-1E34,DISALLOWED,LATIN CAPITAL LETTER K WITH LINE BELOW
-1E35,PVALID,LATIN SMALL LETTER K WITH LINE BELOW
-1E36,DISALLOWED,LATIN CAPITAL LETTER L WITH DOT BELOW
-1E37,PVALID,LATIN SMALL LETTER L WITH DOT BELOW
-1E38,DISALLOWED,LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-1E39,PVALID,LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-1E3A,DISALLOWED,LATIN CAPITAL LETTER L WITH LINE BELOW
-1E3B,PVALID,LATIN SMALL LETTER L WITH LINE BELOW
-1E3C,DISALLOWED,LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-1E3D,PVALID,LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-1E3E,DISALLOWED,LATIN CAPITAL LETTER M WITH ACUTE
-1E3F,PVALID,LATIN SMALL LETTER M WITH ACUTE
-1E40,DISALLOWED,LATIN CAPITAL LETTER M WITH DOT ABOVE
-1E41,PVALID,LATIN SMALL LETTER M WITH DOT ABOVE
-1E42,DISALLOWED,LATIN CAPITAL LETTER M WITH DOT BELOW
-1E43,PVALID,LATIN SMALL LETTER M WITH DOT BELOW
-1E44,DISALLOWED,LATIN CAPITAL LETTER N WITH DOT ABOVE
-1E45,PVALID,LATIN SMALL LETTER N WITH DOT ABOVE
-1E46,DISALLOWED,LATIN CAPITAL LETTER N WITH DOT BELOW
-1E47,PVALID,LATIN SMALL LETTER N WITH DOT BELOW
-1E48,DISALLOWED,LATIN CAPITAL LETTER N WITH LINE BELOW
-1E49,PVALID,LATIN SMALL LETTER N WITH LINE BELOW
-1E4A,DISALLOWED,LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-1E4B,PVALID,LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-1E4C,DISALLOWED,LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-1E4D,PVALID,LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4E,DISALLOWED,LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1E4F,PVALID,LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E50,DISALLOWED,LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-1E51,PVALID,LATIN SMALL LETTER O WITH MACRON AND GRAVE
-1E52,DISALLOWED,LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-1E53,PVALID,LATIN SMALL LETTER O WITH MACRON AND ACUTE
-1E54,DISALLOWED,LATIN CAPITAL LETTER P WITH ACUTE
-1E55,PVALID,LATIN SMALL LETTER P WITH ACUTE
-1E56,DISALLOWED,LATIN CAPITAL LETTER P WITH DOT ABOVE
-1E57,PVALID,LATIN SMALL LETTER P WITH DOT ABOVE
-1E58,DISALLOWED,LATIN CAPITAL LETTER R WITH DOT ABOVE
-1E59,PVALID,LATIN SMALL LETTER R WITH DOT ABOVE
-1E5A,DISALLOWED,LATIN CAPITAL LETTER R WITH DOT BELOW
-1E5B,PVALID,LATIN SMALL LETTER R WITH DOT BELOW
-1E5C,DISALLOWED,LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-1E5D,PVALID,LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-1E5E,DISALLOWED,LATIN CAPITAL LETTER R WITH LINE BELOW
-1E5F,PVALID,LATIN SMALL LETTER R WITH LINE BELOW
-1E60,DISALLOWED,LATIN CAPITAL LETTER S WITH DOT ABOVE
-1E61,PVALID,LATIN SMALL LETTER S WITH DOT ABOVE
-1E62,DISALLOWED,LATIN CAPITAL LETTER S WITH DOT BELOW
-1E63,PVALID,LATIN SMALL LETTER S WITH DOT BELOW
-1E64,DISALLOWED,LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-1E65,PVALID,LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-1E66,DISALLOWED,LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-1E67,PVALID,LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-1E68,DISALLOWED,LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E69,PVALID,LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E6A,DISALLOWED,LATIN CAPITAL LETTER T WITH DOT ABOVE
-1E6B,PVALID,LATIN SMALL LETTER T WITH DOT ABOVE
-1E6C,DISALLOWED,LATIN CAPITAL LETTER T WITH DOT BELOW
-1E6D,PVALID,LATIN SMALL LETTER T WITH DOT BELOW
-1E6E,DISALLOWED,LATIN CAPITAL LETTER T WITH LINE BELOW
-1E6F,PVALID,LATIN SMALL LETTER T WITH LINE BELOW
-1E70,DISALLOWED,LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-1E71,PVALID,LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-1E72,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-1E73,PVALID,LATIN SMALL LETTER U WITH DIAERESIS BELOW
-1E74,DISALLOWED,LATIN CAPITAL LETTER U WITH TILDE BELOW
-1E75,PVALID,LATIN SMALL LETTER U WITH TILDE BELOW
-1E76,DISALLOWED,LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-1E77,PVALID,LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-1E78,DISALLOWED,LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-1E79,PVALID,LATIN SMALL LETTER U WITH TILDE AND ACUTE
-1E7A,DISALLOWED,LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-1E7B,PVALID,LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-1E7C,DISALLOWED,LATIN CAPITAL LETTER V WITH TILDE
-1E7D,PVALID,LATIN SMALL LETTER V WITH TILDE
-1E7E,DISALLOWED,LATIN CAPITAL LETTER V WITH DOT BELOW
-1E7F,PVALID,LATIN SMALL LETTER V WITH DOT BELOW
-1E80,DISALLOWED,LATIN CAPITAL LETTER W WITH GRAVE
-1E81,PVALID,LATIN SMALL LETTER W WITH GRAVE
-1E82,DISALLOWED,LATIN CAPITAL LETTER W WITH ACUTE
-1E83,PVALID,LATIN SMALL LETTER W WITH ACUTE
-1E84,DISALLOWED,LATIN CAPITAL LETTER W WITH DIAERESIS
-1E85,PVALID,LATIN SMALL LETTER W WITH DIAERESIS
-1E86,DISALLOWED,LATIN CAPITAL LETTER W WITH DOT ABOVE
-1E87,PVALID,LATIN SMALL LETTER W WITH DOT ABOVE
-1E88,DISALLOWED,LATIN CAPITAL LETTER W WITH DOT BELOW
-1E89,PVALID,LATIN SMALL LETTER W WITH DOT BELOW
-1E8A,DISALLOWED,LATIN CAPITAL LETTER X WITH DOT ABOVE
-1E8B,PVALID,LATIN SMALL LETTER X WITH DOT ABOVE
-1E8C,DISALLOWED,LATIN CAPITAL LETTER X WITH DIAERESIS
-1E8D,PVALID,LATIN SMALL LETTER X WITH DIAERESIS
-1E8E,DISALLOWED,LATIN CAPITAL LETTER Y WITH DOT ABOVE
-1E8F,PVALID,LATIN SMALL LETTER Y WITH DOT ABOVE
-1E90,DISALLOWED,LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-1E91,PVALID,LATIN SMALL LETTER Z WITH CIRCUMFLEX
-1E92,DISALLOWED,LATIN CAPITAL LETTER Z WITH DOT BELOW
-1E93,PVALID,LATIN SMALL LETTER Z WITH DOT BELOW
-1E94,DISALLOWED,LATIN CAPITAL LETTER Z WITH LINE BELOW
-1E95-1E99,PVALID,LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER Y WITH RING ABOVE
-1E9A-1E9B,DISALLOWED,LATIN SMALL LETTER A WITH RIGHT HALF RING..LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1E9C-1E9D,PVALID,LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE..LATIN SMALL LETTER LONG S WITH HIGH STROKE
-1E9E,DISALLOWED,LATIN CAPITAL LETTER SHARP S
-1E9F,PVALID,LATIN SMALL LETTER DELTA
-1EA0,DISALLOWED,LATIN CAPITAL LETTER A WITH DOT BELOW
-1EA1,PVALID,LATIN SMALL LETTER A WITH DOT BELOW
-1EA2,DISALLOWED,LATIN CAPITAL LETTER A WITH HOOK ABOVE
-1EA3,PVALID,LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA4,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA5,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA6,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA7,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA8,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA9,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAA,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAB,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAC,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAD,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAE,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EAF,PVALID,LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EB0,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EB1,PVALID,LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB2,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB3,PVALID,LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB4,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB5,PVALID,LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB6,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-1EB7,PVALID,LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB8,DISALLOWED,LATIN CAPITAL LETTER E WITH DOT BELOW
-1EB9,PVALID,LATIN SMALL LETTER E WITH DOT BELOW
-1EBA,DISALLOWED,LATIN CAPITAL LETTER E WITH HOOK ABOVE
-1EBB,PVALID,LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBC,DISALLOWED,LATIN CAPITAL LETTER E WITH TILDE
-1EBD,PVALID,LATIN SMALL LETTER E WITH TILDE
-1EBE,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBF,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC0,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC1,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC2,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC3,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC4,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC5,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC6,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC7,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC8,DISALLOWED,LATIN CAPITAL LETTER I WITH HOOK ABOVE
-1EC9,PVALID,LATIN SMALL LETTER I WITH HOOK ABOVE
-1ECA,DISALLOWED,LATIN CAPITAL LETTER I WITH DOT BELOW
-1ECB,PVALID,LATIN SMALL LETTER I WITH DOT BELOW
-1ECC,DISALLOWED,LATIN CAPITAL LETTER O WITH DOT BELOW
-1ECD,PVALID,LATIN SMALL LETTER O WITH DOT BELOW
-1ECE,DISALLOWED,LATIN CAPITAL LETTER O WITH HOOK ABOVE
-1ECF,PVALID,LATIN SMALL LETTER O WITH HOOK ABOVE
-1ED0,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED1,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED2,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED3,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED4,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED5,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED6,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED7,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED8,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED9,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EDA,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EDB,PVALID,LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDC,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EDD,PVALID,LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDE,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EDF,PVALID,LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EE0,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EE1,PVALID,LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE2,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1EE3,PVALID,LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE4,DISALLOWED,LATIN CAPITAL LETTER U WITH DOT BELOW
-1EE5,PVALID,LATIN SMALL LETTER U WITH DOT BELOW
-1EE6,DISALLOWED,LATIN CAPITAL LETTER U WITH HOOK ABOVE
-1EE7,PVALID,LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE8,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EE9,PVALID,LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EEA,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EEB,PVALID,LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEC,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EED,PVALID,LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEE,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EEF,PVALID,LATIN SMALL LETTER U WITH HORN AND TILDE
-1EF0,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EF1,PVALID,LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF2,DISALLOWED,LATIN CAPITAL LETTER Y WITH GRAVE
-1EF3,PVALID,LATIN SMALL LETTER Y WITH GRAVE
-1EF4,DISALLOWED,LATIN CAPITAL LETTER Y WITH DOT BELOW
-1EF5,PVALID,LATIN SMALL LETTER Y WITH DOT BELOW
-1EF6,DISALLOWED,LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-1EF7,PVALID,LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF8,DISALLOWED,LATIN CAPITAL LETTER Y WITH TILDE
-1EF9,PVALID,LATIN SMALL LETTER Y WITH TILDE
-1EFA,DISALLOWED,LATIN CAPITAL LETTER MIDDLE-WELSH LL
-1EFB,PVALID,LATIN SMALL LETTER MIDDLE-WELSH LL
-1EFC,DISALLOWED,LATIN CAPITAL LETTER MIDDLE-WELSH V
-1EFD,PVALID,LATIN SMALL LETTER MIDDLE-WELSH V
-1EFE,DISALLOWED,LATIN CAPITAL LETTER Y WITH LOOP
-1EFF-1F07,PVALID,LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F08-1F0F,DISALLOWED,GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F10-1F15,PVALID,GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F16-1F17,UNASSIGNED,<RESERVED>..<RESERVED>
-1F18-1F1D,DISALLOWED,GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F1E-1F1F,UNASSIGNED,<RESERVED>..<RESERVED>
-1F20-1F27,PVALID,GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-1F28-1F2F,DISALLOWED,GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-1F30-1F37,PVALID,GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F38-1F3F,DISALLOWED,GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F40-1F45,PVALID,GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F46-1F47,UNASSIGNED,<RESERVED>..<RESERVED>
-1F48-1F4D,DISALLOWED,GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F4E-1F4F,UNASSIGNED,<RESERVED>..<RESERVED>
-1F50-1F57,PVALID,GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F58,UNASSIGNED,<RESERVED>
-1F59,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F5A,UNASSIGNED,<RESERVED>
-1F5B,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F5C,UNASSIGNED,<RESERVED>
-1F5D,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F5E,UNASSIGNED,<RESERVED>
-1F5F,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F60-1F67,PVALID,GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F68-1F6F,DISALLOWED,GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F70,PVALID,GREEK SMALL LETTER ALPHA WITH VARIA
-1F71,DISALLOWED,GREEK SMALL LETTER ALPHA WITH OXIA
-1F72,PVALID,GREEK SMALL LETTER EPSILON WITH VARIA
-1F73,DISALLOWED,GREEK SMALL LETTER EPSILON WITH OXIA
-1F74,PVALID,GREEK SMALL LETTER ETA WITH VARIA
-1F75,DISALLOWED,GREEK SMALL LETTER ETA WITH OXIA
-1F76,PVALID,GREEK SMALL LETTER IOTA WITH VARIA
-1F77,DISALLOWED,GREEK SMALL LETTER IOTA WITH OXIA
-1F78,PVALID,GREEK SMALL LETTER OMICRON WITH VARIA
-1F79,DISALLOWED,GREEK SMALL LETTER OMICRON WITH OXIA
-1F7A,PVALID,GREEK SMALL LETTER UPSILON WITH VARIA
-1F7B,DISALLOWED,GREEK SMALL LETTER UPSILON WITH OXIA
-1F7C,PVALID,GREEK SMALL LETTER OMEGA WITH VARIA
-1F7D,DISALLOWED,GREEK SMALL LETTER OMEGA WITH OXIA
-1F7E-1F7F,UNASSIGNED,<RESERVED>..<RESERVED>
-1F80-1FAF,DISALLOWED,GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FB0-1FB1,PVALID,GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH MACRON
-1FB2-1FB4,DISALLOWED,GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1FB5,UNASSIGNED,<RESERVED>
-1FB6,PVALID,GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-1FB7-1FC4,DISALLOWED,GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1FC5,UNASSIGNED,<RESERVED>
-1FC6,PVALID,GREEK SMALL LETTER ETA WITH PERISPOMENI
-1FC7-1FCF,DISALLOWED,GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK PSILI AND PERISPOMENI
-1FD0-1FD2,PVALID,GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-1FD3,DISALLOWED,GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD4-1FD5,UNASSIGNED,<RESERVED>..<RESERVED>
-1FD6-1FD7,PVALID,GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-1FD8-1FDB,DISALLOWED,GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA
-1FDC,UNASSIGNED,<RESERVED>
-1FDD-1FDF,DISALLOWED,GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
-1FE0-1FE2,PVALID,GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-1FE3,DISALLOWED,GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-1FE4-1FE7,PVALID,GREEK SMALL LETTER RHO WITH PSILI..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-1FE8-1FEF,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK VARIA
-1FF0-1FF1,UNASSIGNED,<RESERVED>..<RESERVED>
-1FF2-1FF4,DISALLOWED,GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1FF5,UNASSIGNED,<RESERVED>
-1FF6,PVALID,GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-1FF7-1FFE,DISALLOWED,GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK DASIA
-1FFF,UNASSIGNED,<RESERVED>
-2000-200B,DISALLOWED,EN QUAD..ZERO WIDTH SPACE
-200C-200D,CONTEXTJ,ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
-200E-2064,DISALLOWED,LEFT-TO-RIGHT MARK..INVISIBLE PLUS
-2065-2069,UNASSIGNED,<RESERVED>..<RESERVED>
-206A-2071,DISALLOWED,INHIBIT SYMMETRIC SWAPPING..SUPERSCRIPT LATIN SMALL LETTER I
-2072-2073,UNASSIGNED,<RESERVED>..<RESERVED>
-2074-208E,DISALLOWED,SUPERSCRIPT FOUR..SUBSCRIPT RIGHT PARENTHESIS
-208F,UNASSIGNED,<RESERVED>
-2090-2094,DISALLOWED,LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
-2095-209F,UNASSIGNED,<RESERVED>..<RESERVED>
-20A0-20B8,DISALLOWED,EURO-CURRENCY SIGN..TENGE SIGN
-20B9-20CF,UNASSIGNED,<RESERVED>..<RESERVED>
-20D0-20F0,DISALLOWED,COMBINING LEFT HARPOON ABOVE..COMBINING ASTERISK ABOVE
-20F1-20FF,UNASSIGNED,<RESERVED>..<RESERVED>
-2100-214D,DISALLOWED,ACCOUNT OF..AKTIESELSKAB
-214E,PVALID,TURNED SMALL F
-214F-2183,DISALLOWED,SYMBOL FOR SAMARITAN SOURCE..ROMAN NUMERAL REVERSED ONE HUNDRED
-2184,PVALID,LATIN SMALL LETTER REVERSED C
-2185-2189,DISALLOWED,ROMAN NUMERAL SIX LATE FORM..VULGAR FRACTION ZERO THIRDS
-218A-218F,UNASSIGNED,<RESERVED>..<RESERVED>
-2190-23E8,DISALLOWED,LEFTWARDS ARROW..DECIMAL EXPONENT SYMBOL
-23E9-23FF,UNASSIGNED,<RESERVED>..<RESERVED>
-2400-2426,DISALLOWED,SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
-2427-243F,UNASSIGNED,<RESERVED>..<RESERVED>
-2440-244A,DISALLOWED,OCR HOOK..OCR DOUBLE BACKSLASH
-244B-245F,UNASSIGNED,<RESERVED>..<RESERVED>
-2460-26CD,DISALLOWED,CIRCLED DIGIT ONE..DISABLED CAR
-26CE,UNASSIGNED,<RESERVED>
-26CF-26E1,DISALLOWED,PICK..RESTRICTED LEFT ENTRY-2
-26E2,UNASSIGNED,<RESERVED>
-26E3,DISALLOWED,HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
-26E4-26E7,UNASSIGNED,<RESERVED>..<RESERVED>
-26E8-26FF,DISALLOWED,BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2700,UNASSIGNED,<RESERVED>
-2701-2704,DISALLOWED,UPPER BLADE SCISSORS..WHITE SCISSORS
-2705,UNASSIGNED,<RESERVED>
-2706-2709,DISALLOWED,TELEPHONE LOCATION SIGN..ENVELOPE
-270A-270B,UNASSIGNED,<RESERVED>..<RESERVED>
-270C-2727,DISALLOWED,VICTORY HAND..WHITE FOUR POINTED STAR
-2728,UNASSIGNED,<RESERVED>
-2729-274B,DISALLOWED,STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274C,UNASSIGNED,<RESERVED>
-274D,DISALLOWED,SHADOWED WHITE CIRCLE
-274E,UNASSIGNED,<RESERVED>
-274F-2752,DISALLOWED,LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
-2753-2755,UNASSIGNED,<RESERVED>..<RESERVED>
-2756-275E,DISALLOWED,BLACK DIAMOND MINUS WHITE X..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-275F-2760,UNASSIGNED,<RESERVED>..<RESERVED>
-2761-2794,DISALLOWED,CURVED STEM PARAGRAPH SIGN ORNAMENT..HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2795-2797,UNASSIGNED,<RESERVED>..<RESERVED>
-2798-27AF,DISALLOWED,HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B0,UNASSIGNED,<RESERVED>
-27B1-27BE,DISALLOWED,NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
-27BF,UNASSIGNED,<RESERVED>
-27C0-27CA,DISALLOWED,THREE DIMENSIONAL ANGLE..VERTICAL BAR WITH HORIZONTAL STROKE
-27CB,UNASSIGNED,<RESERVED>
-27CC,DISALLOWED,LONG DIVISION
-27CD-27CF,UNASSIGNED,<RESERVED>..<RESERVED>
-27D0-2B4C,DISALLOWED,WHITE DIAMOND WITH CENTRED DOT..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4D-2B4F,UNASSIGNED,<RESERVED>..<RESERVED>
-2B50-2B59,DISALLOWED,WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE
-2B5A-2BFF,UNASSIGNED,<RESERVED>..<RESERVED>
-2C00-2C2E,DISALLOWED,GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-2C2F,UNASSIGNED,<RESERVED>
-2C30-2C5E,PVALID,GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-2C5F,UNASSIGNED,<RESERVED>
-2C60,DISALLOWED,LATIN CAPITAL LETTER L WITH DOUBLE BAR
-2C61,PVALID,LATIN SMALL LETTER L WITH DOUBLE BAR
-2C62-2C64,DISALLOWED,LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL
-2C65-2C66,PVALID,LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE
-2C67,DISALLOWED,LATIN CAPITAL LETTER H WITH DESCENDER
-2C68,PVALID,LATIN SMALL LETTER H WITH DESCENDER
-2C69,DISALLOWED,LATIN CAPITAL LETTER K WITH DESCENDER
-2C6A,PVALID,LATIN SMALL LETTER K WITH DESCENDER
-2C6B,DISALLOWED,LATIN CAPITAL LETTER Z WITH DESCENDER
-2C6C,PVALID,LATIN SMALL LETTER Z WITH DESCENDER
-2C6D-2C70,DISALLOWED,LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA
-2C71,PVALID,LATIN SMALL LETTER V WITH RIGHT HOOK
-2C72,DISALLOWED,LATIN CAPITAL LETTER W WITH HOOK
-2C73-2C74,PVALID,LATIN SMALL LETTER W WITH HOOK..LATIN SMALL LETTER V WITH CURL
-2C75,DISALLOWED,LATIN CAPITAL LETTER HALF H
-2C76-2C7B,PVALID,LATIN SMALL LETTER HALF H..LATIN LETTER SMALL CAPITAL TURNED E
-2C7C-2C80,DISALLOWED,LATIN SUBSCRIPT SMALL LETTER J..COPTIC CAPITAL LETTER ALFA
-2C81,PVALID,COPTIC SMALL LETTER ALFA
-2C82,DISALLOWED,COPTIC CAPITAL LETTER VIDA
-2C83,PVALID,COPTIC SMALL LETTER VIDA
-2C84,DISALLOWED,COPTIC CAPITAL LETTER GAMMA
-2C85,PVALID,COPTIC SMALL LETTER GAMMA
-2C86,DISALLOWED,COPTIC CAPITAL LETTER DALDA
-2C87,PVALID,COPTIC SMALL LETTER DALDA
-2C88,DISALLOWED,COPTIC CAPITAL LETTER EIE
-2C89,PVALID,COPTIC SMALL LETTER EIE
-2C8A,DISALLOWED,COPTIC CAPITAL LETTER SOU
-2C8B,PVALID,COPTIC SMALL LETTER SOU
-2C8C,DISALLOWED,COPTIC CAPITAL LETTER ZATA
-2C8D,PVALID,COPTIC SMALL LETTER ZATA
-2C8E,DISALLOWED,COPTIC CAPITAL LETTER HATE
-2C8F,PVALID,COPTIC SMALL LETTER HATE
-2C90,DISALLOWED,COPTIC CAPITAL LETTER THETHE
-2C91,PVALID,COPTIC SMALL LETTER THETHE
-2C92,DISALLOWED,COPTIC CAPITAL LETTER IAUDA
-2C93,PVALID,COPTIC SMALL LETTER IAUDA
-2C94,DISALLOWED,COPTIC CAPITAL LETTER KAPA
-2C95,PVALID,COPTIC SMALL LETTER KAPA
-2C96,DISALLOWED,COPTIC CAPITAL LETTER LAULA
-2C97,PVALID,COPTIC SMALL LETTER LAULA
-2C98,DISALLOWED,COPTIC CAPITAL LETTER MI
-2C99,PVALID,COPTIC SMALL LETTER MI
-2C9A,DISALLOWED,COPTIC CAPITAL LETTER NI
-2C9B,PVALID,COPTIC SMALL LETTER NI
-2C9C,DISALLOWED,COPTIC CAPITAL LETTER KSI
-2C9D,PVALID,COPTIC SMALL LETTER KSI
-2C9E,DISALLOWED,COPTIC CAPITAL LETTER O
-2C9F,PVALID,COPTIC SMALL LETTER O
-2CA0,DISALLOWED,COPTIC CAPITAL LETTER PI
-2CA1,PVALID,COPTIC SMALL LETTER PI
-2CA2,DISALLOWED,COPTIC CAPITAL LETTER RO
-2CA3,PVALID,COPTIC SMALL LETTER RO
-2CA4,DISALLOWED,COPTIC CAPITAL LETTER SIMA
-2CA5,PVALID,COPTIC SMALL LETTER SIMA
-2CA6,DISALLOWED,COPTIC CAPITAL LETTER TAU
-2CA7,PVALID,COPTIC SMALL LETTER TAU
-2CA8,DISALLOWED,COPTIC CAPITAL LETTER UA
-2CA9,PVALID,COPTIC SMALL LETTER UA
-2CAA,DISALLOWED,COPTIC CAPITAL LETTER FI
-2CAB,PVALID,COPTIC SMALL LETTER FI
-2CAC,DISALLOWED,COPTIC CAPITAL LETTER KHI
-2CAD,PVALID,COPTIC SMALL LETTER KHI
-2CAE,DISALLOWED,COPTIC CAPITAL LETTER PSI
-2CAF,PVALID,COPTIC SMALL LETTER PSI
-2CB0,DISALLOWED,COPTIC CAPITAL LETTER OOU
-2CB1,PVALID,COPTIC SMALL LETTER OOU
-2CB2,DISALLOWED,COPTIC CAPITAL LETTER DIALECT-P ALEF
-2CB3,PVALID,COPTIC SMALL LETTER DIALECT-P ALEF
-2CB4,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC AIN
-2CB5,PVALID,COPTIC SMALL LETTER OLD COPTIC AIN
-2CB6,DISALLOWED,COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
-2CB7,PVALID,COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
-2CB8,DISALLOWED,COPTIC CAPITAL LETTER DIALECT-P KAPA
-2CB9,PVALID,COPTIC SMALL LETTER DIALECT-P KAPA
-2CBA,DISALLOWED,COPTIC CAPITAL LETTER DIALECT-P NI
-2CBB,PVALID,COPTIC SMALL LETTER DIALECT-P NI
-2CBC,DISALLOWED,COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
-2CBD,PVALID,COPTIC SMALL LETTER CRYPTOGRAMMIC NI
-2CBE,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC OOU
-2CBF,PVALID,COPTIC SMALL LETTER OLD COPTIC OOU
-2CC0,DISALLOWED,COPTIC CAPITAL LETTER SAMPI
-2CC1,PVALID,COPTIC SMALL LETTER SAMPI
-2CC2,DISALLOWED,COPTIC CAPITAL LETTER CROSSED SHEI
-2CC3,PVALID,COPTIC SMALL LETTER CROSSED SHEI
-2CC4,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC SHEI
-2CC5,PVALID,COPTIC SMALL LETTER OLD COPTIC SHEI
-2CC6,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC ESH
-2CC7,PVALID,COPTIC SMALL LETTER OLD COPTIC ESH
-2CC8,DISALLOWED,COPTIC CAPITAL LETTER AKHMIMIC KHEI
-2CC9,PVALID,COPTIC SMALL LETTER AKHMIMIC KHEI
-2CCA,DISALLOWED,COPTIC CAPITAL LETTER DIALECT-P HORI
-2CCB,PVALID,COPTIC SMALL LETTER DIALECT-P HORI
-2CCC,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC HORI
-2CCD,PVALID,COPTIC SMALL LETTER OLD COPTIC HORI
-2CCE,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC HA
-2CCF,PVALID,COPTIC SMALL LETTER OLD COPTIC HA
-2CD0,DISALLOWED,COPTIC CAPITAL LETTER L-SHAPED HA
-2CD1,PVALID,COPTIC SMALL LETTER L-SHAPED HA
-2CD2,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC HEI
-2CD3,PVALID,COPTIC SMALL LETTER OLD COPTIC HEI
-2CD4,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC HAT
-2CD5,PVALID,COPTIC SMALL LETTER OLD COPTIC HAT
-2CD6,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC GANGIA
-2CD7,PVALID,COPTIC SMALL LETTER OLD COPTIC GANGIA
-2CD8,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC DJA
-2CD9,PVALID,COPTIC SMALL LETTER OLD COPTIC DJA
-2CDA,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC SHIMA
-2CDB,PVALID,COPTIC SMALL LETTER OLD COPTIC SHIMA
-2CDC,DISALLOWED,COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
-2CDD,PVALID,COPTIC SMALL LETTER OLD NUBIAN SHIMA
-2CDE,DISALLOWED,COPTIC CAPITAL LETTER OLD NUBIAN NGI
-2CDF,PVALID,COPTIC SMALL LETTER OLD NUBIAN NGI
-2CE0,DISALLOWED,COPTIC CAPITAL LETTER OLD NUBIAN NYI
-2CE1,PVALID,COPTIC SMALL LETTER OLD NUBIAN NYI
-2CE2,DISALLOWED,COPTIC CAPITAL LETTER OLD NUBIAN WAU
-2CE3-2CE4,PVALID,COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI
-2CE5-2CEB,DISALLOWED,COPTIC SYMBOL MI RO..COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
-2CEC,PVALID,COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
-2CED,DISALLOWED,COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
-2CEE-2CF1,PVALID,COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA..COPTIC COMBINING SPIRITUS LENIS
-2CF2-2CF8,UNASSIGNED,<RESERVED>..<RESERVED>
-2CF9-2CFF,DISALLOWED,COPTIC OLD NUBIAN FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
-2D00-2D25,PVALID,GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
-2D26-2D2F,UNASSIGNED,<RESERVED>..<RESERVED>
-2D30-2D65,PVALID,TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
-2D66-2D6E,UNASSIGNED,<RESERVED>..<RESERVED>
-2D6F,DISALLOWED,TIFINAGH MODIFIER LETTER LABIALIZATION MARK
-2D70-2D7F,UNASSIGNED,<RESERVED>..<RESERVED>
-2D80-2D96,PVALID,ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
-2D97-2D9F,UNASSIGNED,<RESERVED>..<RESERVED>
-2DA0-2DA6,PVALID,ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
-2DA7,UNASSIGNED,<RESERVED>
-2DA8-2DAE,PVALID,ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
-2DAF,UNASSIGNED,<RESERVED>
-2DB0-2DB6,PVALID,ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
-2DB7,UNASSIGNED,<RESERVED>
-2DB8-2DBE,PVALID,ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
-2DBF,UNASSIGNED,<RESERVED>
-2DC0-2DC6,PVALID,ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
-2DC7,UNASSIGNED,<RESERVED>
-2DC8-2DCE,PVALID,ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
-2DCF,UNASSIGNED,<RESERVED>
-2DD0-2DD6,PVALID,ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
-2DD7,UNASSIGNED,<RESERVED>
-2DD8-2DDE,PVALID,ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
-2DDF,UNASSIGNED,<RESERVED>
-2DE0-2DFF,PVALID,COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-2E00-2E2E,DISALLOWED,RIGHT ANGLE SUBSTITUTION MARKER..REVERSED QUESTION MARK
-2E2F,PVALID,VERTICAL TILDE
-2E30-2E31,DISALLOWED,RING POINT..WORD SEPARATOR MIDDLE DOT
-2E32-2E7F,UNASSIGNED,<RESERVED>..<RESERVED>
-2E80-2E99,DISALLOWED,CJK RADICAL REPEAT..CJK RADICAL RAP
-2E9A,UNASSIGNED,<RESERVED>
-2E9B-2EF3,DISALLOWED,CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
-2EF4-2EFF,UNASSIGNED,<RESERVED>..<RESERVED>
-2F00-2FD5,DISALLOWED,KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
-2FD6-2FEF,UNASSIGNED,<RESERVED>..<RESERVED>
-2FF0-2FFB,DISALLOWED,IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
-2FFC-2FFF,UNASSIGNED,<RESERVED>..<RESERVED>
-3000-3004,DISALLOWED,IDEOGRAPHIC SPACE..JAPANESE INDUSTRIAL STANDARD SYMBOL
-3005-3007,PVALID,IDEOGRAPHIC ITERATION MARK..IDEOGRAPHIC NUMBER ZERO
-3008-3029,DISALLOWED,LEFT ANGLE BRACKET..HANGZHOU NUMERAL NINE
-302A-302D,PVALID,IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
-302E-303B,DISALLOWED,HANGUL SINGLE DOT TONE MARK..VERTICAL IDEOGRAPHIC ITERATION MARK
-303C,PVALID,MASU MARK
-303D-303F,DISALLOWED,PART ALTERNATION MARK..IDEOGRAPHIC HALF FILL SPACE
-3040,UNASSIGNED,<RESERVED>
-3041-3096,PVALID,HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
-3097-3098,UNASSIGNED,<RESERVED>..<RESERVED>
-3099-309A,PVALID,COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309B-309C,DISALLOWED,KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309D-309E,PVALID,HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
-309F-30A0,DISALLOWED,HIRAGANA DIGRAPH YORI..KATAKANA-HIRAGANA DOUBLE HYPHEN
-30A1-30FA,PVALID,KATAKANA LETTER SMALL A..KATAKANA LETTER VO
-30FB,CONTEXTO,KATAKANA MIDDLE DOT
-30FC-30FE,PVALID,KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
-30FF,DISALLOWED,KATAKANA DIGRAPH KOTO
-3100-3104,UNASSIGNED,<RESERVED>..<RESERVED>
-3105-312D,PVALID,BOPOMOFO LETTER B..BOPOMOFO LETTER IH
-312E-3130,UNASSIGNED,<RESERVED>..<RESERVED>
-3131-318E,DISALLOWED,HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
-318F,UNASSIGNED,<RESERVED>
-3190-319F,DISALLOWED,IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION MAN MARK
-31A0-31B7,PVALID,BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H
-31B8-31BF,UNASSIGNED,<RESERVED>..<RESERVED>
-31C0-31E3,DISALLOWED,CJK STROKE T..CJK STROKE Q
-31E4-31EF,UNASSIGNED,<RESERVED>..<RESERVED>
-31F0-31FF,PVALID,KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
-3200-321E,DISALLOWED,PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
-321F,UNASSIGNED,<RESERVED>
-3220-32FE,DISALLOWED,PARENTHESIZED IDEOGRAPH ONE..CIRCLED KATAKANA WO
-32FF,UNASSIGNED,<RESERVED>
-3300-33FF,DISALLOWED,SQUARE APAATO..SQUARE GAL
-3400-4DB5,PVALID,"<CJK IDEOGRAPH EXTENSION A, FIRST>..<CJK IDEOGRAPH EXTENSION A, LAST>"
-4DB6-4DBF,UNASSIGNED,<RESERVED>..<RESERVED>
-4DC0-4DFF,DISALLOWED,HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
-4E00-9FCB,PVALID,"<CJK IDEOGRAPH, FIRST>..<CJK IDEOGRAPH, LAST>"
-9FCC-9FFF,UNASSIGNED,<RESERVED>..<RESERVED>
-A000-A48C,PVALID,YI SYLLABLE IT..YI SYLLABLE YYR
-A48D-A48F,UNASSIGNED,<RESERVED>..<RESERVED>
-A490-A4C6,DISALLOWED,YI RADICAL QOT..YI RADICAL KE
-A4C7-A4CF,UNASSIGNED,<RESERVED>..<RESERVED>
-A4D0-A4FD,PVALID,LISU LETTER BA..LISU LETTER TONE MYA JEU
-A4FE-A4FF,DISALLOWED,LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
-A500-A60C,PVALID,VAI SYLLABLE EE..VAI SYLLABLE LENGTHENER
-A60D-A60F,DISALLOWED,VAI COMMA..VAI QUESTION MARK
-A610-A62B,PVALID,VAI SYLLABLE NDOLE FA..VAI SYLLABLE NDOLE DO
-A62C-A63F,UNASSIGNED,<RESERVED>..<RESERVED>
-A640,DISALLOWED,CYRILLIC CAPITAL LETTER ZEMLYA
-A641,PVALID,CYRILLIC SMALL LETTER ZEMLYA
-A642,DISALLOWED,CYRILLIC CAPITAL LETTER DZELO
-A643,PVALID,CYRILLIC SMALL LETTER DZELO
-A644,DISALLOWED,CYRILLIC CAPITAL LETTER REVERSED DZE
-A645,PVALID,CYRILLIC SMALL LETTER REVERSED DZE
-A646,DISALLOWED,CYRILLIC CAPITAL LETTER IOTA
-A647,PVALID,CYRILLIC SMALL LETTER IOTA
-A648,DISALLOWED,CYRILLIC CAPITAL LETTER DJERV
-A649,PVALID,CYRILLIC SMALL LETTER DJERV
-A64A,DISALLOWED,CYRILLIC CAPITAL LETTER MONOGRAPH UK
-A64B,PVALID,CYRILLIC SMALL LETTER MONOGRAPH UK
-A64C,DISALLOWED,CYRILLIC CAPITAL LETTER BROAD OMEGA
-A64D,PVALID,CYRILLIC SMALL LETTER BROAD OMEGA
-A64E,DISALLOWED,CYRILLIC CAPITAL LETTER NEUTRAL YER
-A64F,PVALID,CYRILLIC SMALL LETTER NEUTRAL YER
-A650,DISALLOWED,CYRILLIC CAPITAL LETTER YERU WITH BACK YER
-A651,PVALID,CYRILLIC SMALL LETTER YERU WITH BACK YER
-A652,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED YAT
-A653,PVALID,CYRILLIC SMALL LETTER IOTIFIED YAT
-A654,DISALLOWED,CYRILLIC CAPITAL LETTER REVERSED YU
-A655,PVALID,CYRILLIC SMALL LETTER REVERSED YU
-A656,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED A
-A657,PVALID,CYRILLIC SMALL LETTER IOTIFIED A
-A658,DISALLOWED,CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
-A659,PVALID,CYRILLIC SMALL LETTER CLOSED LITTLE YUS
-A65A,DISALLOWED,CYRILLIC CAPITAL LETTER BLENDED YUS
-A65B,PVALID,CYRILLIC SMALL LETTER BLENDED YUS
-A65C,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
-A65D,PVALID,CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
-A65E,DISALLOWED,CYRILLIC CAPITAL LETTER YN
-A65F,PVALID,CYRILLIC SMALL LETTER YN
-A660-A661,UNASSIGNED,<RESERVED>..<RESERVED>
-A662,DISALLOWED,CYRILLIC CAPITAL LETTER SOFT DE
-A663,PVALID,CYRILLIC SMALL LETTER SOFT DE
-A664,DISALLOWED,CYRILLIC CAPITAL LETTER SOFT EL
-A665,PVALID,CYRILLIC SMALL LETTER SOFT EL
-A666,DISALLOWED,CYRILLIC CAPITAL LETTER SOFT EM
-A667,PVALID,CYRILLIC SMALL LETTER SOFT EM
-A668,DISALLOWED,CYRILLIC CAPITAL LETTER MONOCULAR O
-A669,PVALID,CYRILLIC SMALL LETTER MONOCULAR O
-A66A,DISALLOWED,CYRILLIC CAPITAL LETTER BINOCULAR O
-A66B,PVALID,CYRILLIC SMALL LETTER BINOCULAR O
-A66C,DISALLOWED,CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
-A66D-A66F,PVALID,CYRILLIC SMALL LETTER DOUBLE MONOCULAR O..COMBINING CYRILLIC VZMET
-A670-A673,DISALLOWED,COMBINING CYRILLIC TEN MILLIONS SIGN..SLAVONIC ASTERISK
-A674-A67B,UNASSIGNED,<RESERVED>..<RESERVED>
-A67C-A67D,PVALID,COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
-A67E,DISALLOWED,CYRILLIC KAVYKA
-A67F,PVALID,CYRILLIC PAYEROK
-A680,DISALLOWED,CYRILLIC CAPITAL LETTER DWE
-A681,PVALID,CYRILLIC SMALL LETTER DWE
-A682,DISALLOWED,CYRILLIC CAPITAL LETTER DZWE
-A683,PVALID,CYRILLIC SMALL LETTER DZWE
-A684,DISALLOWED,CYRILLIC CAPITAL LETTER ZHWE
-A685,PVALID,CYRILLIC SMALL LETTER ZHWE
-A686,DISALLOWED,CYRILLIC CAPITAL LETTER CCHE
-A687,PVALID,CYRILLIC SMALL LETTER CCHE
-A688,DISALLOWED,CYRILLIC CAPITAL LETTER DZZE
-A689,PVALID,CYRILLIC SMALL LETTER DZZE
-A68A,DISALLOWED,CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
-A68B,PVALID,CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
-A68C,DISALLOWED,CYRILLIC CAPITAL LETTER TWE
-A68D,PVALID,CYRILLIC SMALL LETTER TWE
-A68E,DISALLOWED,CYRILLIC CAPITAL LETTER TSWE
-A68F,PVALID,CYRILLIC SMALL LETTER TSWE
-A690,DISALLOWED,CYRILLIC CAPITAL LETTER TSSE
-A691,PVALID,CYRILLIC SMALL LETTER TSSE
-A692,DISALLOWED,CYRILLIC CAPITAL LETTER TCHE
-A693,PVALID,CYRILLIC SMALL LETTER TCHE
-A694,DISALLOWED,CYRILLIC CAPITAL LETTER HWE
-A695,PVALID,CYRILLIC SMALL LETTER HWE
-A696,DISALLOWED,CYRILLIC CAPITAL LETTER SHWE
-A697,PVALID,CYRILLIC SMALL LETTER SHWE
-A698-A69F,UNASSIGNED,<RESERVED>..<RESERVED>
-A6A0-A6E5,PVALID,BAMUM LETTER A..BAMUM LETTER KI
-A6E6-A6EF,DISALLOWED,BAMUM LETTER MO..BAMUM LETTER KOGHOM
-A6F0-A6F1,PVALID,BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
-A6F2-A6F7,DISALLOWED,BAMUM NJAEMLI..BAMUM QUESTION MARK
-A6F8-A6FF,UNASSIGNED,<RESERVED>..<RESERVED>
-A700-A716,DISALLOWED,MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
-A717-A71F,PVALID,MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
-A720-A722,DISALLOWED,MODIFIER LETTER STRESS AND HIGH TONE..LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
-A723,PVALID,LATIN SMALL LETTER EGYPTOLOGICAL ALEF
-A724,DISALLOWED,LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
-A725,PVALID,LATIN SMALL LETTER EGYPTOLOGICAL AIN
-A726,DISALLOWED,LATIN CAPITAL LETTER HENG
-A727,PVALID,LATIN SMALL LETTER HENG
-A728,DISALLOWED,LATIN CAPITAL LETTER TZ
-A729,PVALID,LATIN SMALL LETTER TZ
-A72A,DISALLOWED,LATIN CAPITAL LETTER TRESILLO
-A72B,PVALID,LATIN SMALL LETTER TRESILLO
-A72C,DISALLOWED,LATIN CAPITAL LETTER CUATRILLO
-A72D,PVALID,LATIN SMALL LETTER CUATRILLO
-A72E,DISALLOWED,LATIN CAPITAL LETTER CUATRILLO WITH COMMA
-A72F-A731,PVALID,LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S
-A732,DISALLOWED,LATIN CAPITAL LETTER AA
-A733,PVALID,LATIN SMALL LETTER AA
-A734,DISALLOWED,LATIN CAPITAL LETTER AO
-A735,PVALID,LATIN SMALL LETTER AO
-A736,DISALLOWED,LATIN CAPITAL LETTER AU
-A737,PVALID,LATIN SMALL LETTER AU
-A738,DISALLOWED,LATIN CAPITAL LETTER AV
-A739,PVALID,LATIN SMALL LETTER AV
-A73A,DISALLOWED,LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
-A73B,PVALID,LATIN SMALL LETTER AV WITH HORIZONTAL BAR
-A73C,DISALLOWED,LATIN CAPITAL LETTER AY
-A73D,PVALID,LATIN SMALL LETTER AY
-A73E,DISALLOWED,LATIN CAPITAL LETTER REVERSED C WITH DOT
-A73F,PVALID,LATIN SMALL LETTER REVERSED C WITH DOT
-A740,DISALLOWED,LATIN CAPITAL LETTER K WITH STROKE
-A741,PVALID,LATIN SMALL LETTER K WITH STROKE
-A742,DISALLOWED,LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
-A743,PVALID,LATIN SMALL LETTER K WITH DIAGONAL STROKE
-A744,DISALLOWED,LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
-A745,PVALID,LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
-A746,DISALLOWED,LATIN CAPITAL LETTER BROKEN L
-A747,PVALID,LATIN SMALL LETTER BROKEN L
-A748,DISALLOWED,LATIN CAPITAL LETTER L WITH HIGH STROKE
-A749,PVALID,LATIN SMALL LETTER L WITH HIGH STROKE
-A74A,DISALLOWED,LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
-A74B,PVALID,LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
-A74C,DISALLOWED,LATIN CAPITAL LETTER O WITH LOOP
-A74D,PVALID,LATIN SMALL LETTER O WITH LOOP
-A74E,DISALLOWED,LATIN CAPITAL LETTER OO
-A74F,PVALID,LATIN SMALL LETTER OO
-A750,DISALLOWED,LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
-A751,PVALID,LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
-A752,DISALLOWED,LATIN CAPITAL LETTER P WITH FLOURISH
-A753,PVALID,LATIN SMALL LETTER P WITH FLOURISH
-A754,DISALLOWED,LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
-A755,PVALID,LATIN SMALL LETTER P WITH SQUIRREL TAIL
-A756,DISALLOWED,LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
-A757,PVALID,LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
-A758,DISALLOWED,LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
-A759,PVALID,LATIN SMALL LETTER Q WITH DIAGONAL STROKE
-A75A,DISALLOWED,LATIN CAPITAL LETTER R ROTUNDA
-A75B,PVALID,LATIN SMALL LETTER R ROTUNDA
-A75C,DISALLOWED,LATIN CAPITAL LETTER RUM ROTUNDA
-A75D,PVALID,LATIN SMALL LETTER RUM ROTUNDA
-A75E,DISALLOWED,LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
-A75F,PVALID,LATIN SMALL LETTER V WITH DIAGONAL STROKE
-A760,DISALLOWED,LATIN CAPITAL LETTER VY
-A761,PVALID,LATIN SMALL LETTER VY
-A762,DISALLOWED,LATIN CAPITAL LETTER VISIGOTHIC Z
-A763,PVALID,LATIN SMALL LETTER VISIGOTHIC Z
-A764,DISALLOWED,LATIN CAPITAL LETTER THORN WITH STROKE
-A765,PVALID,LATIN SMALL LETTER THORN WITH STROKE
-A766,DISALLOWED,LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
-A767,PVALID,LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
-A768,DISALLOWED,LATIN CAPITAL LETTER VEND
-A769,PVALID,LATIN SMALL LETTER VEND
-A76A,DISALLOWED,LATIN CAPITAL LETTER ET
-A76B,PVALID,LATIN SMALL LETTER ET
-A76C,DISALLOWED,LATIN CAPITAL LETTER IS
-A76D,PVALID,LATIN SMALL LETTER IS
-A76E,DISALLOWED,LATIN CAPITAL LETTER CON
-A76F,PVALID,LATIN SMALL LETTER CON
-A770,DISALLOWED,MODIFIER LETTER US
-A771-A778,PVALID,LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM
-A779,DISALLOWED,LATIN CAPITAL LETTER INSULAR D
-A77A,PVALID,LATIN SMALL LETTER INSULAR D
-A77B,DISALLOWED,LATIN CAPITAL LETTER INSULAR F
-A77C,PVALID,LATIN SMALL LETTER INSULAR F
-A77D-A77E,DISALLOWED,LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G
-A77F,PVALID,LATIN SMALL LETTER TURNED INSULAR G
-A780,DISALLOWED,LATIN CAPITAL LETTER TURNED L
-A781,PVALID,LATIN SMALL LETTER TURNED L
-A782,DISALLOWED,LATIN CAPITAL LETTER INSULAR R
-A783,PVALID,LATIN SMALL LETTER INSULAR R
-A784,DISALLOWED,LATIN CAPITAL LETTER INSULAR S
-A785,PVALID,LATIN SMALL LETTER INSULAR S
-A786,DISALLOWED,LATIN CAPITAL LETTER INSULAR T
-A787-A788,PVALID,LATIN SMALL LETTER INSULAR T..MODIFIER LETTER LOW CIRCUMFLEX ACCENT
-A789-A78B,DISALLOWED,MODIFIER LETTER COLON..LATIN CAPITAL LETTER SALTILLO
-A78C,PVALID,LATIN SMALL LETTER SALTILLO
-A78D-A7FA,UNASSIGNED,<RESERVED>..<RESERVED>
-A7FB-A827,PVALID,LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI VOWEL SIGN OO
-A828-A82B,DISALLOWED,SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
-A82C-A82F,UNASSIGNED,<RESERVED>..<RESERVED>
-A830-A839,DISALLOWED,NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC QUANTITY MARK
-A83A-A83F,UNASSIGNED,<RESERVED>..<RESERVED>
-A840-A873,PVALID,PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
-A874-A877,DISALLOWED,PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
-A878-A87F,UNASSIGNED,<RESERVED>..<RESERVED>
-A880-A8C4,PVALID,SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VIRAMA
-A8C5-A8CD,UNASSIGNED,<RESERVED>..<RESERVED>
-A8CE-A8CF,DISALLOWED,SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
-A8D0-A8D9,PVALID,SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
-A8DA-A8DF,UNASSIGNED,<RESERVED>..<RESERVED>
-A8E0-A8F7,PVALID,COMBINING DEVANAGARI DIGIT ZERO..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
-A8F8-A8FA,DISALLOWED,DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
-A8FB,PVALID,DEVANAGARI HEADSTROKE
-A8FC-A8FF,UNASSIGNED,<RESERVED>..<RESERVED>
-A900-A92D,PVALID,KAYAH LI DIGIT ZERO..KAYAH LI TONE CALYA PLOPHU
-A92E-A92F,DISALLOWED,KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
-A930-A953,PVALID,REJANG LETTER KA..REJANG VIRAMA
-A954-A95E,UNASSIGNED,<RESERVED>..<RESERVED>
-A95F-A97C,DISALLOWED,REJANG SECTION MARK..HANGUL CHOSEONG SSANGYEORINHIEUH
-A97D-A97F,UNASSIGNED,<RESERVED>..<RESERVED>
-A980-A9C0,PVALID,JAVANESE SIGN PANYANGGA..JAVANESE PANGKON
-A9C1-A9CD,DISALLOWED,JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
-A9CE,UNASSIGNED,<RESERVED>
-A9CF-A9D9,PVALID,JAVANESE PANGRANGKEP..JAVANESE DIGIT NINE
-A9DA-A9DD,UNASSIGNED,<RESERVED>..<RESERVED>
-A9DE-A9DF,DISALLOWED,JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
-A9E0-A9FF,UNASSIGNED,<RESERVED>..<RESERVED>
-AA00-AA36,PVALID,CHAM LETTER A..CHAM CONSONANT SIGN WA
-AA37-AA3F,UNASSIGNED,<RESERVED>..<RESERVED>
-AA40-AA4D,PVALID,CHAM LETTER FINAL K..CHAM CONSONANT SIGN FINAL H
-AA4E-AA4F,UNASSIGNED,<RESERVED>..<RESERVED>
-AA50-AA59,PVALID,CHAM DIGIT ZERO..CHAM DIGIT NINE
-AA5A-AA5B,UNASSIGNED,<RESERVED>..<RESERVED>
-AA5C-AA5F,DISALLOWED,CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
-AA60-AA76,PVALID,MYANMAR LETTER KHAMTI GA..MYANMAR LOGOGRAM KHAMTI HM
-AA77-AA79,DISALLOWED,MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
-AA7A-AA7B,PVALID,MYANMAR LETTER AITON RA..MYANMAR SIGN PAO KAREN TONE
-AA7C-AA7F,UNASSIGNED,<RESERVED>..<RESERVED>
-AA80-AAC2,PVALID,TAI VIET LETTER LOW KO..TAI VIET TONE MAI SONG
-AAC3-AADA,UNASSIGNED,<RESERVED>..<RESERVED>
-AADB-AADD,PVALID,TAI VIET SYMBOL KON..TAI VIET SYMBOL SAM
-AADE-AADF,DISALLOWED,TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
-AAE0-ABBF,UNASSIGNED,<RESERVED>..<RESERVED>
-ABC0-ABEA,PVALID,MEETEI MAYEK LETTER KOK..MEETEI MAYEK VOWEL SIGN NUNG
-ABEB,DISALLOWED,MEETEI MAYEK CHEIKHEI
-ABEC-ABED,PVALID,MEETEI MAYEK LUM IYEK..MEETEI MAYEK APUN IYEK
-ABEE-ABEF,UNASSIGNED,<RESERVED>..<RESERVED>
-ABF0-ABF9,PVALID,MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
-ABFA-ABFF,UNASSIGNED,<RESERVED>..<RESERVED>
-AC00-D7A3,PVALID,"<HANGUL SYLLABLE, FIRST>..<HANGUL SYLLABLE, LAST>"
-D7A4-D7AF,UNASSIGNED,<RESERVED>..<RESERVED>
-D7B0-D7C6,DISALLOWED,HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
-D7C7-D7CA,UNASSIGNED,<RESERVED>..<RESERVED>
-D7CB-D7FB,DISALLOWED,HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
-D7FC-D7FF,UNASSIGNED,<RESERVED>..<RESERVED>
-D800-FA0D,DISALLOWED,"<NON PRIVATE USE HIGH SURROGATE, FIRST>..CJK COMPATIBILITY IDEOGRAPH-FA0D"
-FA0E-FA0F,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
-FA10,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA10
-FA11,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA11
-FA12,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA12
-FA13-FA14,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
-FA15-FA1E,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E
-FA1F,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA1F
-FA20,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA20
-FA21,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA21
-FA22,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA22
-FA23-FA24,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
-FA25-FA26,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26
-FA27-FA29,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
-FA2A-FA2D,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA2E-FA2F,UNASSIGNED,<RESERVED>..<RESERVED>
-FA30-FA6D,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6D
-FA6E-FA6F,UNASSIGNED,<RESERVED>..<RESERVED>
-FA70-FAD9,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
-FADA-FAFF,UNASSIGNED,<RESERVED>..<RESERVED>
-FB00-FB06,DISALLOWED,LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
-FB07-FB12,UNASSIGNED,<RESERVED>..<RESERVED>
-FB13-FB17,DISALLOWED,ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
-FB18-FB1C,UNASSIGNED,<RESERVED>..<RESERVED>
-FB1D,DISALLOWED,HEBREW LETTER YOD WITH HIRIQ
-FB1E,PVALID,HEBREW POINT JUDEO-SPANISH VARIKA
-FB1F-FB36,DISALLOWED,HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER ZAYIN WITH DAGESH
-FB37,UNASSIGNED,<RESERVED>
-FB38-FB3C,DISALLOWED,HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
-FB3D,UNASSIGNED,<RESERVED>
-FB3E,DISALLOWED,HEBREW LETTER MEM WITH DAGESH
-FB3F,UNASSIGNED,<RESERVED>
-FB40-FB41,DISALLOWED,HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
-FB42,UNASSIGNED,<RESERVED>
-FB43-FB44,DISALLOWED,HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
-FB45,UNASSIGNED,<RESERVED>
-FB46-FBB1,DISALLOWED,HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBB2-FBD2,UNASSIGNED,<RESERVED>..<RESERVED>
-FBD3-FD3F,DISALLOWED,ARABIC LETTER NG ISOLATED FORM..ORNATE RIGHT PARENTHESIS
-FD40-FD4F,UNASSIGNED,<RESERVED>..<RESERVED>
-FD50-FD8F,DISALLOWED,ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FD90-FD91,UNASSIGNED,<RESERVED>..<RESERVED>
-FD92-FDC7,DISALLOWED,ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FDC8-FDCF,UNASSIGNED,<RESERVED>..<RESERVED>
-FDD0-FDFD,DISALLOWED,<NOT A CHARACTER>..ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
-FDFE-FDFF,UNASSIGNED,<RESERVED>..<RESERVED>
-FE00-FE19,DISALLOWED,VARIATION SELECTOR-1..PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
-FE1A-FE1F,UNASSIGNED,<RESERVED>..<RESERVED>
-FE20-FE26,PVALID,COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
-FE27-FE2F,UNASSIGNED,<RESERVED>..<RESERVED>
-FE30-FE52,DISALLOWED,PRESENTATION FORM FOR VERTICAL TWO DOT LEADER..SMALL FULL STOP
-FE53,UNASSIGNED,<RESERVED>
-FE54-FE66,DISALLOWED,SMALL SEMICOLON..SMALL EQUALS SIGN
-FE67,UNASSIGNED,<RESERVED>
-FE68-FE6B,DISALLOWED,SMALL REVERSE SOLIDUS..SMALL COMMERCIAL AT
-FE6C-FE6F,UNASSIGNED,<RESERVED>..<RESERVED>
-FE70-FE72,DISALLOWED,ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM
-FE73,PVALID,ARABIC TAIL FRAGMENT
-FE74,DISALLOWED,ARABIC KASRATAN ISOLATED FORM
-FE75,UNASSIGNED,<RESERVED>
-FE76-FEFC,DISALLOWED,ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFD-FEFE,UNASSIGNED,<RESERVED>..<RESERVED>
-FEFF,DISALLOWED,ZERO WIDTH NO-BREAK SPACE
-FF00,UNASSIGNED,<RESERVED>
-FF01-FFBE,DISALLOWED,FULLWIDTH EXCLAMATION MARK..HALFWIDTH HANGUL LETTER HIEUH
-FFBF-FFC1,UNASSIGNED,<RESERVED>..<RESERVED>
-FFC2-FFC7,DISALLOWED,HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
-FFC8-FFC9,UNASSIGNED,<RESERVED>..<RESERVED>
-FFCA-FFCF,DISALLOWED,HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
-FFD0-FFD1,UNASSIGNED,<RESERVED>..<RESERVED>
-FFD2-FFD7,DISALLOWED,HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
-FFD8-FFD9,UNASSIGNED,<RESERVED>..<RESERVED>
-FFDA-FFDC,DISALLOWED,HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
-FFDD-FFDF,UNASSIGNED,<RESERVED>..<RESERVED>
-FFE0-FFE6,DISALLOWED,FULLWIDTH CENT SIGN..FULLWIDTH WON SIGN
-FFE7,UNASSIGNED,<RESERVED>
-FFE8-FFEE,DISALLOWED,HALFWIDTH FORMS LIGHT VERTICAL..HALFWIDTH WHITE CIRCLE
-FFEF-FFF8,UNASSIGNED,<RESERVED>..<RESERVED>
-FFF9-FFFF,DISALLOWED,INTERLINEAR ANNOTATION ANCHOR..<NOT A CHARACTER>
-10000-1000B,PVALID,LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
-1000C,UNASSIGNED,<RESERVED>
-1000D-10026,PVALID,LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
-10027,UNASSIGNED,<RESERVED>
-10028-1003A,PVALID,LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
-1003B,UNASSIGNED,<RESERVED>
-1003C-1003D,PVALID,LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
-1003E,UNASSIGNED,<RESERVED>
-1003F-1004D,PVALID,LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
-1004E-1004F,UNASSIGNED,<RESERVED>..<RESERVED>
-10050-1005D,PVALID,LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
-1005E-1007F,UNASSIGNED,<RESERVED>..<RESERVED>
-10080-100FA,PVALID,LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
-100FB-100FF,UNASSIGNED,<RESERVED>..<RESERVED>
-10100-10102,DISALLOWED,AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
-10103-10106,UNASSIGNED,<RESERVED>..<RESERVED>
-10107-10133,DISALLOWED,AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
-10134-10136,UNASSIGNED,<RESERVED>..<RESERVED>
-10137-1018A,DISALLOWED,AEGEAN WEIGHT BASE UNIT..GREEK ZERO SIGN
-1018B-1018F,UNASSIGNED,<RESERVED>..<RESERVED>
-10190-1019B,DISALLOWED,ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
-1019C-101CF,UNASSIGNED,<RESERVED>..<RESERVED>
-101D0-101FC,DISALLOWED,PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
-101FD,PVALID,PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
-101FE-1027F,UNASSIGNED,<RESERVED>..<RESERVED>
-10280-1029C,PVALID,LYCIAN LETTER A..LYCIAN LETTER X
-1029D-1029F,UNASSIGNED,<RESERVED>..<RESERVED>
-102A0-102D0,PVALID,CARIAN LETTER A..CARIAN LETTER UUU3
-102D1-102FF,UNASSIGNED,<RESERVED>..<RESERVED>
-10300-1031E,PVALID,OLD ITALIC LETTER A..OLD ITALIC LETTER UU
-1031F,UNASSIGNED,<RESERVED>
-10320-10323,DISALLOWED,OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
-10324-1032F,UNASSIGNED,<RESERVED>..<RESERVED>
-10330-10340,PVALID,GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
-10341,DISALLOWED,GOTHIC LETTER NINETY
-10342-10349,PVALID,GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
-1034A,DISALLOWED,GOTHIC LETTER NINE HUNDRED
-1034B-1037F,UNASSIGNED,<RESERVED>..<RESERVED>
-10380-1039D,PVALID,UGARITIC LETTER ALPA..UGARITIC LETTER SSU
-1039E,UNASSIGNED,<RESERVED>
-1039F,DISALLOWED,UGARITIC WORD DIVIDER
-103A0-103C3,PVALID,OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
-103C4-103C7,UNASSIGNED,<RESERVED>..<RESERVED>
-103C8-103CF,PVALID,OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
-103D0-103D5,DISALLOWED,OLD PERSIAN WORD DIVIDER..OLD PERSIAN NUMBER HUNDRED
-103D6-103FF,UNASSIGNED,<RESERVED>..<RESERVED>
-10400-10427,DISALLOWED,DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
-10428-1049D,PVALID,DESERET SMALL LETTER LONG I..OSMANYA LETTER OO
-1049E-1049F,UNASSIGNED,<RESERVED>..<RESERVED>
-104A0-104A9,PVALID,OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
-104AA-107FF,UNASSIGNED,<RESERVED>..<RESERVED>
-10800-10805,PVALID,CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
-10806-10807,UNASSIGNED,<RESERVED>..<RESERVED>
-10808,PVALID,CYPRIOT SYLLABLE JO
-10809,UNASSIGNED,<RESERVED>
-1080A-10835,PVALID,CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
-10836,UNASSIGNED,<RESERVED>
-10837-10838,PVALID,CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
-10839-1083B,UNASSIGNED,<RESERVED>..<RESERVED>
-1083C,PVALID,CYPRIOT SYLLABLE ZA
-1083D-1083E,UNASSIGNED,<RESERVED>..<RESERVED>
-1083F-10855,PVALID,CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
-10856,UNASSIGNED,<RESERVED>
-10857-1085F,DISALLOWED,IMPERIAL ARAMAIC SECTION SIGN..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
-10860-108FF,UNASSIGNED,<RESERVED>..<RESERVED>
-10900-10915,PVALID,PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
-10916-1091B,DISALLOWED,PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
-1091C-1091E,UNASSIGNED,<RESERVED>..<RESERVED>
-1091F,DISALLOWED,PHOENICIAN WORD SEPARATOR
-10920-10939,PVALID,LYDIAN LETTER A..LYDIAN LETTER C
-1093A-1093E,UNASSIGNED,<RESERVED>..<RESERVED>
-1093F,DISALLOWED,LYDIAN TRIANGULAR MARK
-10940-109FF,UNASSIGNED,<RESERVED>..<RESERVED>
-10A00-10A03,PVALID,KHAROSHTHI LETTER A..KHAROSHTHI VOWEL SIGN VOCALIC R
-10A04,UNASSIGNED,<RESERVED>
-10A05-10A06,PVALID,KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
-10A07-10A0B,UNASSIGNED,<RESERVED>..<RESERVED>
-10A0C-10A13,PVALID,KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI LETTER GHA
-10A14,UNASSIGNED,<RESERVED>
-10A15-10A17,PVALID,KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
-10A18,UNASSIGNED,<RESERVED>
-10A19-10A33,PVALID,KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
-10A34-10A37,UNASSIGNED,<RESERVED>..<RESERVED>
-10A38-10A3A,PVALID,KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
-10A3B-10A3E,UNASSIGNED,<RESERVED>..<RESERVED>
-10A3F,PVALID,KHAROSHTHI VIRAMA
-10A40-10A47,DISALLOWED,KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
-10A48-10A4F,UNASSIGNED,<RESERVED>..<RESERVED>
-10A50-10A58,DISALLOWED,KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
-10A59-10A5F,UNASSIGNED,<RESERVED>..<RESERVED>
-10A60-10A7C,PVALID,OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
-10A7D-10A7F,DISALLOWED,OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMERIC INDICATOR
-10A80-10AFF,UNASSIGNED,<RESERVED>..<RESERVED>
-10B00-10B35,PVALID,AVESTAN LETTER A..AVESTAN LETTER HE
-10B36-10B38,UNASSIGNED,<RESERVED>..<RESERVED>
-10B39-10B3F,DISALLOWED,AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
-10B40-10B55,PVALID,INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
-10B56-10B57,UNASSIGNED,<RESERVED>..<RESERVED>
-10B58-10B5F,DISALLOWED,INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
-10B60-10B72,PVALID,INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
-10B73-10B77,UNASSIGNED,<RESERVED>..<RESERVED>
-10B78-10B7F,DISALLOWED,INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
-10B80-10BFF,UNASSIGNED,<RESERVED>..<RESERVED>
-10C00-10C48,PVALID,OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
-10C49-10E5F,UNASSIGNED,<RESERVED>..<RESERVED>
-10E60-10E7E,DISALLOWED,RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
-10E7F-1107F,UNASSIGNED,<RESERVED>..<RESERVED>
-11080-110BA,PVALID,KAITHI SIGN CANDRABINDU..KAITHI SIGN NUKTA
-110BB-110C1,DISALLOWED,KAITHI ABBREVIATION SIGN..KAITHI DOUBLE DANDA
-110C2-11FFF,UNASSIGNED,<RESERVED>..<RESERVED>
-12000-1236E,PVALID,CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-1236F-123FF,UNASSIGNED,<RESERVED>..<RESERVED>
-12400-12462,DISALLOWED,CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12463-1246F,UNASSIGNED,<RESERVED>..<RESERVED>
-12470-12473,DISALLOWED,CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-12474-12FFF,UNASSIGNED,<RESERVED>..<RESERVED>
-13000-1342E,PVALID,EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-1342F-1CFFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1D000-1D0F5,DISALLOWED,BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D0F6-1D0FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1D100-1D126,DISALLOWED,MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
-1D127-1D128,UNASSIGNED,<RESERVED>..<RESERVED>
-1D129-1D1DD,DISALLOWED,MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL PES SUBPUNCTIS
-1D1DE-1D1FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1D200-1D245,DISALLOWED,GREEK VOCAL NOTATION SYMBOL-1..GREEK MUSICAL LEIMMA
-1D246-1D2FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1D300-1D356,DISALLOWED,MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
-1D357-1D35F,UNASSIGNED,<RESERVED>..<RESERVED>
-1D360-1D371,DISALLOWED,COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
-1D372-1D3FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1D400-1D454,DISALLOWED,MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
-1D455,UNASSIGNED,<RESERVED>
-1D456-1D49C,DISALLOWED,MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
-1D49D,UNASSIGNED,<RESERVED>
-1D49E-1D49F,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
-1D4A0-1D4A1,UNASSIGNED,<RESERVED>..<RESERVED>
-1D4A2,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL G
-1D4A3-1D4A4,UNASSIGNED,<RESERVED>..<RESERVED>
-1D4A5-1D4A6,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
-1D4A7-1D4A8,UNASSIGNED,<RESERVED>..<RESERVED>
-1D4A9-1D4AC,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
-1D4AD,UNASSIGNED,<RESERVED>
-1D4AE-1D4B9,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
-1D4BA,UNASSIGNED,<RESERVED>
-1D4BB,DISALLOWED,MATHEMATICAL SCRIPT SMALL F
-1D4BC,UNASSIGNED,<RESERVED>
-1D4BD-1D4C3,DISALLOWED,MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
-1D4C4,UNASSIGNED,<RESERVED>
-1D4C5-1D505,DISALLOWED,MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
-1D506,UNASSIGNED,<RESERVED>
-1D507-1D50A,DISALLOWED,MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
-1D50B-1D50C,UNASSIGNED,<RESERVED>..<RESERVED>
-1D50D-1D514,DISALLOWED,MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
-1D515,UNASSIGNED,<RESERVED>
-1D516-1D51C,DISALLOWED,MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
-1D51D,UNASSIGNED,<RESERVED>
-1D51E-1D539,DISALLOWED,MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D53A,UNASSIGNED,<RESERVED>
-1D53B-1D53E,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D53F,UNASSIGNED,<RESERVED>
-1D540-1D544,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D545,UNASSIGNED,<RESERVED>
-1D546,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D547-1D549,UNASSIGNED,<RESERVED>..<RESERVED>
-1D54A-1D550,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D551,UNASSIGNED,<RESERVED>
-1D552-1D6A5,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
-1D6A6-1D6A7,UNASSIGNED,<RESERVED>..<RESERVED>
-1D6A8-1D7CB,DISALLOWED,MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD SMALL DIGAMMA
-1D7CC-1D7CD,UNASSIGNED,<RESERVED>..<RESERVED>
-1D7CE-1D7FF,DISALLOWED,MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
-1D800-1EFFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1F000-1F02B,DISALLOWED,MAHJONG TILE EAST WIND..MAHJONG TILE BACK
-1F02C-1F02F,UNASSIGNED,<RESERVED>..<RESERVED>
-1F030-1F093,DISALLOWED,DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
-1F094-1F0FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1F100-1F10A,DISALLOWED,DIGIT ZERO FULL STOP..DIGIT NINE COMMA
-1F10B-1F10F,UNASSIGNED,<RESERVED>..<RESERVED>
-1F110-1F12E,DISALLOWED,PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
-1F12F-1F130,UNASSIGNED,<RESERVED>..<RESERVED>
-1F131,DISALLOWED,SQUARED LATIN CAPITAL LETTER B
-1F132-1F13C,UNASSIGNED,<RESERVED>..<RESERVED>
-1F13D,DISALLOWED,SQUARED LATIN CAPITAL LETTER N
-1F13E,UNASSIGNED,<RESERVED>
-1F13F,DISALLOWED,SQUARED LATIN CAPITAL LETTER P
-1F140-1F141,UNASSIGNED,<RESERVED>..<RESERVED>
-1F142,DISALLOWED,SQUARED LATIN CAPITAL LETTER S
-1F143-1F145,UNASSIGNED,<RESERVED>..<RESERVED>
-1F146,DISALLOWED,SQUARED LATIN CAPITAL LETTER W
-1F147-1F149,UNASSIGNED,<RESERVED>..<RESERVED>
-1F14A-1F14E,DISALLOWED,SQUARED HV..SQUARED PPV
-1F14F-1F156,UNASSIGNED,<RESERVED>..<RESERVED>
-1F157,DISALLOWED,NEGATIVE CIRCLED LATIN CAPITAL LETTER H
-1F158-1F15E,UNASSIGNED,<RESERVED>..<RESERVED>
-1F15F,DISALLOWED,NEGATIVE CIRCLED LATIN CAPITAL LETTER P
-1F160-1F178,UNASSIGNED,<RESERVED>..<RESERVED>
-1F179,DISALLOWED,NEGATIVE SQUARED LATIN CAPITAL LETTER J
-1F17A,UNASSIGNED,<RESERVED>
-1F17B-1F17C,DISALLOWED,NEGATIVE SQUARED LATIN CAPITAL LETTER L..NEGATIVE SQUARED LATIN CAPITAL LETTER M
-1F17D-1F17E,UNASSIGNED,<RESERVED>..<RESERVED>
-1F17F,DISALLOWED,NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F180-1F189,UNASSIGNED,<RESERVED>..<RESERVED>
-1F18A-1F18D,DISALLOWED,CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P..NEGATIVE SQUARED SA
-1F18E-1F18F,UNASSIGNED,<RESERVED>..<RESERVED>
-1F190,DISALLOWED,SQUARE DJ
-1F191-1F1FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1F200,DISALLOWED,SQUARE HIRAGANA HOKA
-1F201-1F20F,UNASSIGNED,<RESERVED>..<RESERVED>
-1F210-1F231,DISALLOWED,SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-6253
-1F232-1F23F,UNASSIGNED,<RESERVED>..<RESERVED>
-1F240-1F248,DISALLOWED,TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F249-1FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-1FFFE-1FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-20000-2A6D6,PVALID,"<CJK IDEOGRAPH EXTENSION B, FIRST>..<CJK IDEOGRAPH EXTENSION B, LAST>"
-2A6D7-2A6FF,UNASSIGNED,<RESERVED>..<RESERVED>
-2A700-2B734,PVALID,"<CJK IDEOGRAPH EXTENSION C, FIRST>..<CJK IDEOGRAPH EXTENSION C, LAST>"
-2B735-2F7FF,UNASSIGNED,<RESERVED>..<RESERVED>
-2F800-2FA1D,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-2FA1E-2FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-2FFFE-2FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-30000-3FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-3FFFE-3FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-40000-4FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-4FFFE-4FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-50000-5FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-5FFFE-5FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-60000-6FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-6FFFE-6FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-70000-7FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-7FFFE-7FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-80000-8FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-8FFFE-8FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-90000-9FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-9FFFE-9FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-A0000-AFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-AFFFE-AFFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-B0000-BFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-BFFFE-BFFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-C0000-CFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-CFFFE-CFFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-D0000-DFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-DFFFE-DFFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
-E0000,UNASSIGNED,<RESERVED>
-E0001,DISALLOWED,LANGUAGE TAG
-E0002-E001F,UNASSIGNED,<RESERVED>..<RESERVED>
-E0020-E007F,DISALLOWED,TAG SPACE..CANCEL TAG
-E0080-E00FF,UNASSIGNED,<RESERVED>..<RESERVED>
-E0100-E01EF,DISALLOWED,VARIATION SELECTOR-17..VARIATION SELECTOR-256
-E01F0-EFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
-EFFFE-10FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+Codepoint,Property,Status,Description
+0000-002C,DISALLOWED,,NULL..COMMA
+002D,PVALID,,HYPHEN-MINUS
+002E-002F,DISALLOWED,,FULL STOP..SOLIDUS
+0030-0039,PVALID,,DIGIT ZERO..DIGIT NINE
+003A-0060,DISALLOWED,,COLON..GRAVE ACCENT
+0061-007A,PVALID,,LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+007B-00B6,DISALLOWED,,LEFT CURLY BRACKET..PILCROW SIGN
+00B7,CONTEXTO,,MIDDLE DOT
+00B8-00DE,DISALLOWED,,CEDILLA..LATIN CAPITAL LETTER THORN
+00DF-00F6,PVALID,,LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS
+00F7,DISALLOWED,,DIVISION SIGN
+00F8-00FF,PVALID,,LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
+0100,DISALLOWED,,LATIN CAPITAL LETTER A WITH MACRON
+0101,PVALID,,LATIN SMALL LETTER A WITH MACRON
+0102,DISALLOWED,,LATIN CAPITAL LETTER A WITH BREVE
+0103,PVALID,,LATIN SMALL LETTER A WITH BREVE
+0104,DISALLOWED,,LATIN CAPITAL LETTER A WITH OGONEK
+0105,PVALID,,LATIN SMALL LETTER A WITH OGONEK
+0106,DISALLOWED,,LATIN CAPITAL LETTER C WITH ACUTE
+0107,PVALID,,LATIN SMALL LETTER C WITH ACUTE
+0108,DISALLOWED,,LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0109,PVALID,,LATIN SMALL LETTER C WITH CIRCUMFLEX
+010A,DISALLOWED,,LATIN CAPITAL LETTER C WITH DOT ABOVE
+010B,PVALID,,LATIN SMALL LETTER C WITH DOT ABOVE
+010C,DISALLOWED,,LATIN CAPITAL LETTER C WITH CARON
+010D,PVALID,,LATIN SMALL LETTER C WITH CARON
+010E,DISALLOWED,,LATIN CAPITAL LETTER D WITH CARON
+010F,PVALID,,LATIN SMALL LETTER D WITH CARON
+0110,DISALLOWED,,LATIN CAPITAL LETTER D WITH STROKE
+0111,PVALID,,LATIN SMALL LETTER D WITH STROKE
+0112,DISALLOWED,,LATIN CAPITAL LETTER E WITH MACRON
+0113,PVALID,,LATIN SMALL LETTER E WITH MACRON
+0114,DISALLOWED,,LATIN CAPITAL LETTER E WITH BREVE
+0115,PVALID,,LATIN SMALL LETTER E WITH BREVE
+0116,DISALLOWED,,LATIN CAPITAL LETTER E WITH DOT ABOVE
+0117,PVALID,,LATIN SMALL LETTER E WITH DOT ABOVE
+0118,DISALLOWED,,LATIN CAPITAL LETTER E WITH OGONEK
+0119,PVALID,,LATIN SMALL LETTER E WITH OGONEK
+011A,DISALLOWED,,LATIN CAPITAL LETTER E WITH CARON
+011B,PVALID,,LATIN SMALL LETTER E WITH CARON
+011C,DISALLOWED,,LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+011D,PVALID,,LATIN SMALL LETTER G WITH CIRCUMFLEX
+011E,DISALLOWED,,LATIN CAPITAL LETTER G WITH BREVE
+011F,PVALID,,LATIN SMALL LETTER G WITH BREVE
+0120,DISALLOWED,,LATIN CAPITAL LETTER G WITH DOT ABOVE
+0121,PVALID,,LATIN SMALL LETTER G WITH DOT ABOVE
+0122,DISALLOWED,,LATIN CAPITAL LETTER G WITH CEDILLA
+0123,PVALID,,LATIN SMALL LETTER G WITH CEDILLA
+0124,DISALLOWED,,LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0125,PVALID,,LATIN SMALL LETTER H WITH CIRCUMFLEX
+0126,DISALLOWED,,LATIN CAPITAL LETTER H WITH STROKE
+0127,PVALID,,LATIN SMALL LETTER H WITH STROKE
+0128,DISALLOWED,,LATIN CAPITAL LETTER I WITH TILDE
+0129,PVALID,,LATIN SMALL LETTER I WITH TILDE
+012A,DISALLOWED,,LATIN CAPITAL LETTER I WITH MACRON
+012B,PVALID,,LATIN SMALL LETTER I WITH MACRON
+012C,DISALLOWED,,LATIN CAPITAL LETTER I WITH BREVE
+012D,PVALID,,LATIN SMALL LETTER I WITH BREVE
+012E,DISALLOWED,,LATIN CAPITAL LETTER I WITH OGONEK
+012F,PVALID,,LATIN SMALL LETTER I WITH OGONEK
+0130,DISALLOWED,,LATIN CAPITAL LETTER I WITH DOT ABOVE
+0131,PVALID,,LATIN SMALL LETTER DOTLESS I
+0132-0134,DISALLOWED,,LATIN CAPITAL LIGATURE IJ..LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0135,PVALID,,LATIN SMALL LETTER J WITH CIRCUMFLEX
+0136,DISALLOWED,,LATIN CAPITAL LETTER K WITH CEDILLA
+0137-0138,PVALID,,LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA
+0139,DISALLOWED,,LATIN CAPITAL LETTER L WITH ACUTE
+013A,PVALID,,LATIN SMALL LETTER L WITH ACUTE
+013B,DISALLOWED,,LATIN CAPITAL LETTER L WITH CEDILLA
+013C,PVALID,,LATIN SMALL LETTER L WITH CEDILLA
+013D,DISALLOWED,,LATIN CAPITAL LETTER L WITH CARON
+013E,PVALID,,LATIN SMALL LETTER L WITH CARON
+013F-0141,DISALLOWED,,LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN CAPITAL LETTER L WITH STROKE
+0142,PVALID,,LATIN SMALL LETTER L WITH STROKE
+0143,DISALLOWED,,LATIN CAPITAL LETTER N WITH ACUTE
+0144,PVALID,,LATIN SMALL LETTER N WITH ACUTE
+0145,DISALLOWED,,LATIN CAPITAL LETTER N WITH CEDILLA
+0146,PVALID,,LATIN SMALL LETTER N WITH CEDILLA
+0147,DISALLOWED,,LATIN CAPITAL LETTER N WITH CARON
+0148,PVALID,,LATIN SMALL LETTER N WITH CARON
+0149-014A,DISALLOWED,,LATIN SMALL LETTER N PRECEDED BY APOSTROPHE..LATIN CAPITAL LETTER ENG
+014B,PVALID,,LATIN SMALL LETTER ENG
+014C,DISALLOWED,,LATIN CAPITAL LETTER O WITH MACRON
+014D,PVALID,,LATIN SMALL LETTER O WITH MACRON
+014E,DISALLOWED,,LATIN CAPITAL LETTER O WITH BREVE
+014F,PVALID,,LATIN SMALL LETTER O WITH BREVE
+0150,DISALLOWED,,LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0151,PVALID,,LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0152,DISALLOWED,,LATIN CAPITAL LIGATURE OE
+0153,PVALID,,LATIN SMALL LIGATURE OE
+0154,DISALLOWED,,LATIN CAPITAL LETTER R WITH ACUTE
+0155,PVALID,,LATIN SMALL LETTER R WITH ACUTE
+0156,DISALLOWED,,LATIN CAPITAL LETTER R WITH CEDILLA
+0157,PVALID,,LATIN SMALL LETTER R WITH CEDILLA
+0158,DISALLOWED,,LATIN CAPITAL LETTER R WITH CARON
+0159,PVALID,,LATIN SMALL LETTER R WITH CARON
+015A,DISALLOWED,,LATIN CAPITAL LETTER S WITH ACUTE
+015B,PVALID,,LATIN SMALL LETTER S WITH ACUTE
+015C,DISALLOWED,,LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+015D,PVALID,,LATIN SMALL LETTER S WITH CIRCUMFLEX
+015E,DISALLOWED,,LATIN CAPITAL LETTER S WITH CEDILLA
+015F,PVALID,,LATIN SMALL LETTER S WITH CEDILLA
+0160,DISALLOWED,,LATIN CAPITAL LETTER S WITH CARON
+0161,PVALID,,LATIN SMALL LETTER S WITH CARON
+0162,DISALLOWED,,LATIN CAPITAL LETTER T WITH CEDILLA
+0163,PVALID,,LATIN SMALL LETTER T WITH CEDILLA
+0164,DISALLOWED,,LATIN CAPITAL LETTER T WITH CARON
+0165,PVALID,,LATIN SMALL LETTER T WITH CARON
+0166,DISALLOWED,,LATIN CAPITAL LETTER T WITH STROKE
+0167,PVALID,,LATIN SMALL LETTER T WITH STROKE
+0168,DISALLOWED,,LATIN CAPITAL LETTER U WITH TILDE
+0169,PVALID,,LATIN SMALL LETTER U WITH TILDE
+016A,DISALLOWED,,LATIN CAPITAL LETTER U WITH MACRON
+016B,PVALID,,LATIN SMALL LETTER U WITH MACRON
+016C,DISALLOWED,,LATIN CAPITAL LETTER U WITH BREVE
+016D,PVALID,,LATIN SMALL LETTER U WITH BREVE
+016E,DISALLOWED,,LATIN CAPITAL LETTER U WITH RING ABOVE
+016F,PVALID,,LATIN SMALL LETTER U WITH RING ABOVE
+0170,DISALLOWED,,LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0171,PVALID,,LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0172,DISALLOWED,,LATIN CAPITAL LETTER U WITH OGONEK
+0173,PVALID,,LATIN SMALL LETTER U WITH OGONEK
+0174,DISALLOWED,,LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0175,PVALID,,LATIN SMALL LETTER W WITH CIRCUMFLEX
+0176,DISALLOWED,,LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0177,PVALID,,LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0178-0179,DISALLOWED,,LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE
+017A,PVALID,,LATIN SMALL LETTER Z WITH ACUTE
+017B,DISALLOWED,,LATIN CAPITAL LETTER Z WITH DOT ABOVE
+017C,PVALID,,LATIN SMALL LETTER Z WITH DOT ABOVE
+017D,DISALLOWED,,LATIN CAPITAL LETTER Z WITH CARON
+017E,PVALID,,LATIN SMALL LETTER Z WITH CARON
+017F,DISALLOWED,,LATIN SMALL LETTER LONG S
+0180,PVALID,,LATIN SMALL LETTER B WITH STROKE
+0181-0182,DISALLOWED,,LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR
+0183,PVALID,,LATIN SMALL LETTER B WITH TOPBAR
+0184,DISALLOWED,,LATIN CAPITAL LETTER TONE SIX
+0185,PVALID,,LATIN SMALL LETTER TONE SIX
+0186-0187,DISALLOWED,,LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK
+0188,PVALID,,LATIN SMALL LETTER C WITH HOOK
+0189-018B,DISALLOWED,,LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR
+018C-018D,PVALID,,LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA
+018E-0191,DISALLOWED,,LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK
+0192,PVALID,,LATIN SMALL LETTER F WITH HOOK
+0193-0194,DISALLOWED,,LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA
+0195,PVALID,,LATIN SMALL LETTER HV
+0196-0198,DISALLOWED,,LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK
+0199-019B,PVALID,,LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
+019C-019D,DISALLOWED,,LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK
+019E,PVALID,,LATIN SMALL LETTER N WITH LONG RIGHT LEG
+019F-01A0,DISALLOWED,,LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN
+01A1,PVALID,,LATIN SMALL LETTER O WITH HORN
+01A2,DISALLOWED,,LATIN CAPITAL LETTER OI
+01A3,PVALID,,LATIN SMALL LETTER OI
+01A4,DISALLOWED,,LATIN CAPITAL LETTER P WITH HOOK
+01A5,PVALID,,LATIN SMALL LETTER P WITH HOOK
+01A6-01A7,DISALLOWED,,LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO
+01A8,PVALID,,LATIN SMALL LETTER TONE TWO
+01A9,DISALLOWED,,LATIN CAPITAL LETTER ESH
+01AA-01AB,PVALID,,LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK
+01AC,DISALLOWED,,LATIN CAPITAL LETTER T WITH HOOK
+01AD,PVALID,,LATIN SMALL LETTER T WITH HOOK
+01AE-01AF,DISALLOWED,,LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN
+01B0,PVALID,,LATIN SMALL LETTER U WITH HORN
+01B1-01B3,DISALLOWED,,LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK
+01B4,PVALID,,LATIN SMALL LETTER Y WITH HOOK
+01B5,DISALLOWED,,LATIN CAPITAL LETTER Z WITH STROKE
+01B6,PVALID,,LATIN SMALL LETTER Z WITH STROKE
+01B7-01B8,DISALLOWED,,LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED
+01B9-01BB,PVALID,,LATIN SMALL LETTER EZH REVERSED..LATIN LETTER TWO WITH STROKE
+01BC,DISALLOWED,,LATIN CAPITAL LETTER TONE FIVE
+01BD-01C3,PVALID,,LATIN SMALL LETTER TONE FIVE..LATIN LETTER RETROFLEX CLICK
+01C4-01CD,DISALLOWED,,LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON
+01CE,PVALID,,LATIN SMALL LETTER A WITH CARON
+01CF,DISALLOWED,,LATIN CAPITAL LETTER I WITH CARON
+01D0,PVALID,,LATIN SMALL LETTER I WITH CARON
+01D1,DISALLOWED,,LATIN CAPITAL LETTER O WITH CARON
+01D2,PVALID,,LATIN SMALL LETTER O WITH CARON
+01D3,DISALLOWED,,LATIN CAPITAL LETTER U WITH CARON
+01D4,PVALID,,LATIN SMALL LETTER U WITH CARON
+01D5,DISALLOWED,,LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D6,PVALID,,LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D7,DISALLOWED,,LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D8,PVALID,,LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D9,DISALLOWED,,LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DA,PVALID,,LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DB,DISALLOWED,,LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DC-01DD,PVALID,,LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E
+01DE,DISALLOWED,,LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+01DF,PVALID,,LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01E0,DISALLOWED,,LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+01E1,PVALID,,LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E2,DISALLOWED,,LATIN CAPITAL LETTER AE WITH MACRON
+01E3,PVALID,,LATIN SMALL LETTER AE WITH MACRON
+01E4,DISALLOWED,,LATIN CAPITAL LETTER G WITH STROKE
+01E5,PVALID,,LATIN SMALL LETTER G WITH STROKE
+01E6,DISALLOWED,,LATIN CAPITAL LETTER G WITH CARON
+01E7,PVALID,,LATIN SMALL LETTER G WITH CARON
+01E8,DISALLOWED,,LATIN CAPITAL LETTER K WITH CARON
+01E9,PVALID,,LATIN SMALL LETTER K WITH CARON
+01EA,DISALLOWED,,LATIN CAPITAL LETTER O WITH OGONEK
+01EB,PVALID,,LATIN SMALL LETTER O WITH OGONEK
+01EC,DISALLOWED,,LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+01ED,PVALID,,LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EE,DISALLOWED,,LATIN CAPITAL LETTER EZH WITH CARON
+01EF-01F0,PVALID,,LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON
+01F1-01F4,DISALLOWED,,LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTER G WITH ACUTE
+01F5,PVALID,,LATIN SMALL LETTER G WITH ACUTE
+01F6-01F8,DISALLOWED,,LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE
+01F9,PVALID,,LATIN SMALL LETTER N WITH GRAVE
+01FA,DISALLOWED,,LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+01FB,PVALID,,LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FC,DISALLOWED,,LATIN CAPITAL LETTER AE WITH ACUTE
+01FD,PVALID,,LATIN SMALL LETTER AE WITH ACUTE
+01FE,DISALLOWED,,LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+01FF,PVALID,,LATIN SMALL LETTER O WITH STROKE AND ACUTE
+0200,DISALLOWED,,LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0201,PVALID,,LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0202,DISALLOWED,,LATIN CAPITAL LETTER A WITH INVERTED BREVE
+0203,PVALID,,LATIN SMALL LETTER A WITH INVERTED BREVE
+0204,DISALLOWED,,LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0205,PVALID,,LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0206,DISALLOWED,,LATIN CAPITAL LETTER E WITH INVERTED BREVE
+0207,PVALID,,LATIN SMALL LETTER E WITH INVERTED BREVE
+0208,DISALLOWED,,LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+0209,PVALID,,LATIN SMALL LETTER I WITH DOUBLE GRAVE
+020A,DISALLOWED,,LATIN CAPITAL LETTER I WITH INVERTED BREVE
+020B,PVALID,,LATIN SMALL LETTER I WITH INVERTED BREVE
+020C,DISALLOWED,,LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020D,PVALID,,LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020E,DISALLOWED,,LATIN CAPITAL LETTER O WITH INVERTED BREVE
+020F,PVALID,,LATIN SMALL LETTER O WITH INVERTED BREVE
+0210,DISALLOWED,,LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0211,PVALID,,LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0212,DISALLOWED,,LATIN CAPITAL LETTER R WITH INVERTED BREVE
+0213,PVALID,,LATIN SMALL LETTER R WITH INVERTED BREVE
+0214,DISALLOWED,,LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0215,PVALID,,LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0216,DISALLOWED,,LATIN CAPITAL LETTER U WITH INVERTED BREVE
+0217,PVALID,,LATIN SMALL LETTER U WITH INVERTED BREVE
+0218,DISALLOWED,,LATIN CAPITAL LETTER S WITH COMMA BELOW
+0219,PVALID,,LATIN SMALL LETTER S WITH COMMA BELOW
+021A,DISALLOWED,,LATIN CAPITAL LETTER T WITH COMMA BELOW
+021B,PVALID,,LATIN SMALL LETTER T WITH COMMA BELOW
+021C,DISALLOWED,,LATIN CAPITAL LETTER YOGH
+021D,PVALID,,LATIN SMALL LETTER YOGH
+021E,DISALLOWED,,LATIN CAPITAL LETTER H WITH CARON
+021F,PVALID,,LATIN SMALL LETTER H WITH CARON
+0220,DISALLOWED,,LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+0221,PVALID,,LATIN SMALL LETTER D WITH CURL
+0222,DISALLOWED,,LATIN CAPITAL LETTER OU
+0223,PVALID,,LATIN SMALL LETTER OU
+0224,DISALLOWED,,LATIN CAPITAL LETTER Z WITH HOOK
+0225,PVALID,,LATIN SMALL LETTER Z WITH HOOK
+0226,DISALLOWED,,LATIN CAPITAL LETTER A WITH DOT ABOVE
+0227,PVALID,,LATIN SMALL LETTER A WITH DOT ABOVE
+0228,DISALLOWED,,LATIN CAPITAL LETTER E WITH CEDILLA
+0229,PVALID,,LATIN SMALL LETTER E WITH CEDILLA
+022A,DISALLOWED,,LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+022B,PVALID,,LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022C,DISALLOWED,,LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022D,PVALID,,LATIN SMALL LETTER O WITH TILDE AND MACRON
+022E,DISALLOWED,,LATIN CAPITAL LETTER O WITH DOT ABOVE
+022F,PVALID,,LATIN SMALL LETTER O WITH DOT ABOVE
+0230,DISALLOWED,,LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+0231,PVALID,,LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0232,DISALLOWED,,LATIN CAPITAL LETTER Y WITH MACRON
+0233-0239,PVALID,,LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH
+023A-023B,DISALLOWED,,LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE
+023C,PVALID,,LATIN SMALL LETTER C WITH STROKE
+023D-023E,DISALLOWED,,LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+023F-0240,PVALID,,LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL
+0241,DISALLOWED,,LATIN CAPITAL LETTER GLOTTAL STOP
+0242,PVALID,,LATIN SMALL LETTER GLOTTAL STOP
+0243-0246,DISALLOWED,,LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE
+0247,PVALID,,LATIN SMALL LETTER E WITH STROKE
+0248,DISALLOWED,,LATIN CAPITAL LETTER J WITH STROKE
+0249,PVALID,,LATIN SMALL LETTER J WITH STROKE
+024A,DISALLOWED,,LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+024B,PVALID,,LATIN SMALL LETTER Q WITH HOOK TAIL
+024C,DISALLOWED,,LATIN CAPITAL LETTER R WITH STROKE
+024D,PVALID,,LATIN SMALL LETTER R WITH STROKE
+024E,DISALLOWED,,LATIN CAPITAL LETTER Y WITH STROKE
+024F-02AF,PVALID,,LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0-02B8,DISALLOWED,,MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
+02B9-02C1,PVALID,,MODIFIER LETTER PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2-02C5,DISALLOWED,,MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6-02D1,PVALID,,MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
+02D2-02EB,DISALLOWED,,MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC,PVALID,,MODIFIER LETTER VOICING
+02ED,DISALLOWED,,MODIFIER LETTER UNASPIRATED
+02EE,PVALID,,MODIFIER LETTER DOUBLE APOSTROPHE
+02EF-02FF,DISALLOWED,,MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0300-033F,PVALID,,COMBINING GRAVE ACCENT..COMBINING DOUBLE OVERLINE
+0340-0341,DISALLOWED,,COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
+0342,PVALID,,COMBINING GREEK PERISPOMENI
+0343-0345,DISALLOWED,,COMBINING GREEK KORONIS..COMBINING GREEK YPOGEGRAMMENI
+0346-034E,PVALID,,COMBINING BRIDGE ABOVE..COMBINING UPWARDS ARROW BELOW
+034F,DISALLOWED,,COMBINING GRAPHEME JOINER
+0350-036F,PVALID,,COMBINING RIGHT ARROWHEAD ABOVE..COMBINING LATIN SMALL LETTER X
+0370,DISALLOWED,,GREEK CAPITAL LETTER HETA
+0371,PVALID,,GREEK SMALL LETTER HETA
+0372,DISALLOWED,,GREEK CAPITAL LETTER ARCHAIC SAMPI
+0373,PVALID,,GREEK SMALL LETTER ARCHAIC SAMPI
+0374,DISALLOWED,,GREEK NUMERAL SIGN
+0375,CONTEXTO,,GREEK LOWER NUMERAL SIGN
+0376,DISALLOWED,,GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+0377,PVALID,,GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+0378-0379,UNASSIGNED,,<RESERVED>..<RESERVED>
+037A,DISALLOWED,,GREEK YPOGEGRAMMENI
+037B-037D,PVALID,,GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E-037F,DISALLOWED,,GREEK QUESTION MARK..GREEK CAPITAL LETTER YOT
+0380-0383,UNASSIGNED,,<RESERVED>..<RESERVED>
+0384-038A,DISALLOWED,,GREEK TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038B,UNASSIGNED,,<RESERVED>
+038C,DISALLOWED,,GREEK CAPITAL LETTER OMICRON WITH TONOS
+038D,UNASSIGNED,,<RESERVED>
+038E-038F,DISALLOWED,,GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS
+0390,PVALID,,GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+0391-03A1,DISALLOWED,,GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
+03A2,UNASSIGNED,,<RESERVED>
+03A3-03AB,DISALLOWED,,GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03AC-03CE,PVALID,,GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS
+03CF-03D6,DISALLOWED,,GREEK CAPITAL KAI SYMBOL..GREEK PI SYMBOL
+03D7,PVALID,,GREEK KAI SYMBOL
+03D8,DISALLOWED,,GREEK LETTER ARCHAIC KOPPA
+03D9,PVALID,,GREEK SMALL LETTER ARCHAIC KOPPA
+03DA,DISALLOWED,,GREEK LETTER STIGMA
+03DB,PVALID,,GREEK SMALL LETTER STIGMA
+03DC,DISALLOWED,,GREEK LETTER DIGAMMA
+03DD,PVALID,,GREEK SMALL LETTER DIGAMMA
+03DE,DISALLOWED,,GREEK LETTER KOPPA
+03DF,PVALID,,GREEK SMALL LETTER KOPPA
+03E0,DISALLOWED,,GREEK LETTER SAMPI
+03E1,PVALID,,GREEK SMALL LETTER SAMPI
+03E2,DISALLOWED,,COPTIC CAPITAL LETTER SHEI
+03E3,PVALID,,COPTIC SMALL LETTER SHEI
+03E4,DISALLOWED,,COPTIC CAPITAL LETTER FEI
+03E5,PVALID,,COPTIC SMALL LETTER FEI
+03E6,DISALLOWED,,COPTIC CAPITAL LETTER KHEI
+03E7,PVALID,,COPTIC SMALL LETTER KHEI
+03E8,DISALLOWED,,COPTIC CAPITAL LETTER HORI
+03E9,PVALID,,COPTIC SMALL LETTER HORI
+03EA,DISALLOWED,,COPTIC CAPITAL LETTER GANGIA
+03EB,PVALID,,COPTIC SMALL LETTER GANGIA
+03EC,DISALLOWED,,COPTIC CAPITAL LETTER SHIMA
+03ED,PVALID,,COPTIC SMALL LETTER SHIMA
+03EE,DISALLOWED,,COPTIC CAPITAL LETTER DEI
+03EF,PVALID,,COPTIC SMALL LETTER DEI
+03F0-03F2,DISALLOWED,,GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBOL
+03F3,PVALID,,GREEK LETTER YOT
+03F4-03F7,DISALLOWED,,GREEK CAPITAL THETA SYMBOL..GREEK CAPITAL LETTER SHO
+03F8,PVALID,,GREEK SMALL LETTER SHO
+03F9-03FA,DISALLOWED,,GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN
+03FB-03FC,PVALID,,GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL
+03FD-042F,DISALLOWED,,GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA
+0430-045F,PVALID,,CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE
+0460,DISALLOWED,,CYRILLIC CAPITAL LETTER OMEGA
+0461,PVALID,,CYRILLIC SMALL LETTER OMEGA
+0462,DISALLOWED,,CYRILLIC CAPITAL LETTER YAT
+0463,PVALID,,CYRILLIC SMALL LETTER YAT
+0464,DISALLOWED,,CYRILLIC CAPITAL LETTER IOTIFIED E
+0465,PVALID,,CYRILLIC SMALL LETTER IOTIFIED E
+0466,DISALLOWED,,CYRILLIC CAPITAL LETTER LITTLE YUS
+0467,PVALID,,CYRILLIC SMALL LETTER LITTLE YUS
+0468,DISALLOWED,,CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+0469,PVALID,,CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+046A,DISALLOWED,,CYRILLIC CAPITAL LETTER BIG YUS
+046B,PVALID,,CYRILLIC SMALL LETTER BIG YUS
+046C,DISALLOWED,,CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046D,PVALID,,CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+046E,DISALLOWED,,CYRILLIC CAPITAL LETTER KSI
+046F,PVALID,,CYRILLIC SMALL LETTER KSI
+0470,DISALLOWED,,CYRILLIC CAPITAL LETTER PSI
+0471,PVALID,,CYRILLIC SMALL LETTER PSI
+0472,DISALLOWED,,CYRILLIC CAPITAL LETTER FITA
+0473,PVALID,,CYRILLIC SMALL LETTER FITA
+0474,DISALLOWED,,CYRILLIC CAPITAL LETTER IZHITSA
+0475,PVALID,,CYRILLIC SMALL LETTER IZHITSA
+0476,DISALLOWED,,CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0477,PVALID,,CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0478,DISALLOWED,,CYRILLIC CAPITAL LETTER UK
+0479,PVALID,,CYRILLIC SMALL LETTER UK
+047A,DISALLOWED,,CYRILLIC CAPITAL LETTER ROUND OMEGA
+047B,PVALID,,CYRILLIC SMALL LETTER ROUND OMEGA
+047C,DISALLOWED,,CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047D,PVALID,,CYRILLIC SMALL LETTER OMEGA WITH TITLO
+047E,DISALLOWED,,CYRILLIC CAPITAL LETTER OT
+047F,PVALID,,CYRILLIC SMALL LETTER OT
+0480,DISALLOWED,,CYRILLIC CAPITAL LETTER KOPPA
+0481,PVALID,,CYRILLIC SMALL LETTER KOPPA
+0482,DISALLOWED,,CYRILLIC THOUSANDS SIGN
+0483-0487,PVALID,,COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488-048A,DISALLOWED,,COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+048B,PVALID,,CYRILLIC SMALL LETTER SHORT I WITH TAIL
+048C,DISALLOWED,,CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+048D,PVALID,,CYRILLIC SMALL LETTER SEMISOFT SIGN
+048E,DISALLOWED,,CYRILLIC CAPITAL LETTER ER WITH TICK
+048F,PVALID,,CYRILLIC SMALL LETTER ER WITH TICK
+0490,DISALLOWED,,CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0491,PVALID,,CYRILLIC SMALL LETTER GHE WITH UPTURN
+0492,DISALLOWED,,CYRILLIC CAPITAL LETTER GHE WITH STROKE
+0493,PVALID,,CYRILLIC SMALL LETTER GHE WITH STROKE
+0494,DISALLOWED,,CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+0495,PVALID,,CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+0496,DISALLOWED,,CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0497,PVALID,,CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+0498,DISALLOWED,,CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+0499,PVALID,,CYRILLIC SMALL LETTER ZE WITH DESCENDER
+049A,DISALLOWED,,CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+049B,PVALID,,CYRILLIC SMALL LETTER KA WITH DESCENDER
+049C,DISALLOWED,,CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+049D,PVALID,,CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+049E,DISALLOWED,,CYRILLIC CAPITAL LETTER KA WITH STROKE
+049F,PVALID,,CYRILLIC SMALL LETTER KA WITH STROKE
+04A0,DISALLOWED,,CYRILLIC CAPITAL LETTER BASHKIR KA
+04A1,PVALID,,CYRILLIC SMALL LETTER BASHKIR KA
+04A2,DISALLOWED,,CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04A3,PVALID,,CYRILLIC SMALL LETTER EN WITH DESCENDER
+04A4,DISALLOWED,,CYRILLIC CAPITAL LIGATURE EN GHE
+04A5,PVALID,,CYRILLIC SMALL LIGATURE EN GHE
+04A6,DISALLOWED,,CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+04A7,PVALID,,CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+04A8,DISALLOWED,,CYRILLIC CAPITAL LETTER ABKHASIAN HA
+04A9,PVALID,,CYRILLIC SMALL LETTER ABKHASIAN HA
+04AA,DISALLOWED,,CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+04AB,PVALID,,CYRILLIC SMALL LETTER ES WITH DESCENDER
+04AC,DISALLOWED,,CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+04AD,PVALID,,CYRILLIC SMALL LETTER TE WITH DESCENDER
+04AE,DISALLOWED,,CYRILLIC CAPITAL LETTER STRAIGHT U
+04AF,PVALID,,CYRILLIC SMALL LETTER STRAIGHT U
+04B0,DISALLOWED,,CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+04B1,PVALID,,CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+04B2,DISALLOWED,,CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04B3,PVALID,,CYRILLIC SMALL LETTER HA WITH DESCENDER
+04B4,DISALLOWED,,CYRILLIC CAPITAL LIGATURE TE TSE
+04B5,PVALID,,CYRILLIC SMALL LIGATURE TE TSE
+04B6,DISALLOWED,,CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04B7,PVALID,,CYRILLIC SMALL LETTER CHE WITH DESCENDER
+04B8,DISALLOWED,,CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+04B9,PVALID,,CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04BA,DISALLOWED,,CYRILLIC CAPITAL LETTER SHHA
+04BB,PVALID,,CYRILLIC SMALL LETTER SHHA
+04BC,DISALLOWED,,CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BD,PVALID,,CYRILLIC SMALL LETTER ABKHASIAN CHE
+04BE,DISALLOWED,,CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+04BF,PVALID,,CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+04C0-04C1,DISALLOWED,,CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04C2,PVALID,,CYRILLIC SMALL LETTER ZHE WITH BREVE
+04C3,DISALLOWED,,CYRILLIC CAPITAL LETTER KA WITH HOOK
+04C4,PVALID,,CYRILLIC SMALL LETTER KA WITH HOOK
+04C5,DISALLOWED,,CYRILLIC CAPITAL LETTER EL WITH TAIL
+04C6,PVALID,,CYRILLIC SMALL LETTER EL WITH TAIL
+04C7,DISALLOWED,,CYRILLIC CAPITAL LETTER EN WITH HOOK
+04C8,PVALID,,CYRILLIC SMALL LETTER EN WITH HOOK
+04C9,DISALLOWED,,CYRILLIC CAPITAL LETTER EN WITH TAIL
+04CA,PVALID,,CYRILLIC SMALL LETTER EN WITH TAIL
+04CB,DISALLOWED,,CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04CC,PVALID,,CYRILLIC SMALL LETTER KHAKASSIAN CHE
+04CD,DISALLOWED,,CYRILLIC CAPITAL LETTER EM WITH TAIL
+04CE-04CF,PVALID,,CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA
+04D0,DISALLOWED,,CYRILLIC CAPITAL LETTER A WITH BREVE
+04D1,PVALID,,CYRILLIC SMALL LETTER A WITH BREVE
+04D2,DISALLOWED,,CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D3,PVALID,,CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D4,DISALLOWED,,CYRILLIC CAPITAL LIGATURE A IE
+04D5,PVALID,,CYRILLIC SMALL LIGATURE A IE
+04D6,DISALLOWED,,CYRILLIC CAPITAL LETTER IE WITH BREVE
+04D7,PVALID,,CYRILLIC SMALL LETTER IE WITH BREVE
+04D8,DISALLOWED,,CYRILLIC CAPITAL LETTER SCHWA
+04D9,PVALID,,CYRILLIC SMALL LETTER SCHWA
+04DA,DISALLOWED,,CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04DB,PVALID,,CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DC,DISALLOWED,,CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+04DD,PVALID,,CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DE,DISALLOWED,,CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+04DF,PVALID,,CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E0,DISALLOWED,,CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+04E1,PVALID,,CYRILLIC SMALL LETTER ABKHASIAN DZE
+04E2,DISALLOWED,,CYRILLIC CAPITAL LETTER I WITH MACRON
+04E3,PVALID,,CYRILLIC SMALL LETTER I WITH MACRON
+04E4,DISALLOWED,,CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E5,PVALID,,CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E6,DISALLOWED,,CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E7,PVALID,,CYRILLIC SMALL LETTER O WITH DIAERESIS
+04E8,DISALLOWED,,CYRILLIC CAPITAL LETTER BARRED O
+04E9,PVALID,,CYRILLIC SMALL LETTER BARRED O
+04EA,DISALLOWED,,CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+04EB,PVALID,,CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EC,DISALLOWED,,CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+04ED,PVALID,,CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EE,DISALLOWED,,CYRILLIC CAPITAL LETTER U WITH MACRON
+04EF,PVALID,,CYRILLIC SMALL LETTER U WITH MACRON
+04F0,DISALLOWED,,CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F1,PVALID,,CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F2,DISALLOWED,,CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F3,PVALID,,CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F4,DISALLOWED,,CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F5,PVALID,,CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F6,DISALLOWED,,CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+04F7,PVALID,,CYRILLIC SMALL LETTER GHE WITH DESCENDER
+04F8,DISALLOWED,,CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04F9,PVALID,,CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+04FA,DISALLOWED,,CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+04FB,PVALID,,CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
+04FC,DISALLOWED,,CYRILLIC CAPITAL LETTER HA WITH HOOK
+04FD,PVALID,,CYRILLIC SMALL LETTER HA WITH HOOK
+04FE,DISALLOWED,,CYRILLIC CAPITAL LETTER HA WITH STROKE
+04FF,PVALID,,CYRILLIC SMALL LETTER HA WITH STROKE
+0500,DISALLOWED,,CYRILLIC CAPITAL LETTER KOMI DE
+0501,PVALID,,CYRILLIC SMALL LETTER KOMI DE
+0502,DISALLOWED,,CYRILLIC CAPITAL LETTER KOMI DJE
+0503,PVALID,,CYRILLIC SMALL LETTER KOMI DJE
+0504,DISALLOWED,,CYRILLIC CAPITAL LETTER KOMI ZJE
+0505,PVALID,,CYRILLIC SMALL LETTER KOMI ZJE
+0506,DISALLOWED,,CYRILLIC CAPITAL LETTER KOMI DZJE
+0507,PVALID,,CYRILLIC SMALL LETTER KOMI DZJE
+0508,DISALLOWED,,CYRILLIC CAPITAL LETTER KOMI LJE
+0509,PVALID,,CYRILLIC SMALL LETTER KOMI LJE
+050A,DISALLOWED,,CYRILLIC CAPITAL LETTER KOMI NJE
+050B,PVALID,,CYRILLIC SMALL LETTER KOMI NJE
+050C,DISALLOWED,,CYRILLIC CAPITAL LETTER KOMI SJE
+050D,PVALID,,CYRILLIC SMALL LETTER KOMI SJE
+050E,DISALLOWED,,CYRILLIC CAPITAL LETTER KOMI TJE
+050F,PVALID,,CYRILLIC SMALL LETTER KOMI TJE
+0510,DISALLOWED,,CYRILLIC CAPITAL LETTER REVERSED ZE
+0511,PVALID,,CYRILLIC SMALL LETTER REVERSED ZE
+0512,DISALLOWED,,CYRILLIC CAPITAL LETTER EL WITH HOOK
+0513,PVALID,,CYRILLIC SMALL LETTER EL WITH HOOK
+0514,DISALLOWED,,CYRILLIC CAPITAL LETTER LHA
+0515,PVALID,,CYRILLIC SMALL LETTER LHA
+0516,DISALLOWED,,CYRILLIC CAPITAL LETTER RHA
+0517,PVALID,,CYRILLIC SMALL LETTER RHA
+0518,DISALLOWED,,CYRILLIC CAPITAL LETTER YAE
+0519,PVALID,,CYRILLIC SMALL LETTER YAE
+051A,DISALLOWED,,CYRILLIC CAPITAL LETTER QA
+051B,PVALID,,CYRILLIC SMALL LETTER QA
+051C,DISALLOWED,,CYRILLIC CAPITAL LETTER WE
+051D,PVALID,,CYRILLIC SMALL LETTER WE
+051E,DISALLOWED,,CYRILLIC CAPITAL LETTER ALEUT KA
+051F,PVALID,,CYRILLIC SMALL LETTER ALEUT KA
+0520,DISALLOWED,,CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
+0521,PVALID,,CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
+0522,DISALLOWED,,CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+0523,PVALID,,CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
+0524,DISALLOWED,,CYRILLIC CAPITAL LETTER PE WITH DESCENDER
+0525,PVALID,,CYRILLIC SMALL LETTER PE WITH DESCENDER
+0526,DISALLOWED,,CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0527,PVALID,,CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0528,DISALLOWED,,CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+0529,PVALID,,CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+052A,DISALLOWED,,CYRILLIC CAPITAL LETTER DZZHE
+052B,PVALID,,CYRILLIC SMALL LETTER DZZHE
+052C,DISALLOWED,,CYRILLIC CAPITAL LETTER DCHE
+052D,PVALID,,CYRILLIC SMALL LETTER DCHE
+052E,DISALLOWED,,CYRILLIC CAPITAL LETTER EL WITH DESCENDER
+052F,PVALID,,CYRILLIC SMALL LETTER EL WITH DESCENDER
+0530,UNASSIGNED,,<RESERVED>
+0531-0556,DISALLOWED,,ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0557-0558,UNASSIGNED,,<RESERVED>..<RESERVED>
+0559,PVALID,,ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A-055F,DISALLOWED,,ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0560-0586,PVALID,,ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER FEH
+0587,DISALLOWED,,ARMENIAN SMALL LIGATURE ECH YIWN
+0588,PVALID,,ARMENIAN SMALL LETTER YI WITH STROKE
+0589-058A,DISALLOWED,,ARMENIAN FULL STOP..ARMENIAN HYPHEN
+058B-058C,UNASSIGNED,,<RESERVED>..<RESERVED>
+058D-058F,DISALLOWED,,RIGHT-FACING ARMENIAN ETERNITY SIGN..ARMENIAN DRAM SIGN
+0590,UNASSIGNED,,<RESERVED>
+0591-05BD,PVALID,,HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BE,DISALLOWED,,HEBREW PUNCTUATION MAQAF
+05BF,PVALID,,HEBREW POINT RAFE
+05C0,DISALLOWED,,HEBREW PUNCTUATION PASEQ
+05C1-05C2,PVALID,,HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3,DISALLOWED,,HEBREW PUNCTUATION SOF PASUQ
+05C4-05C5,PVALID,,HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C6,DISALLOWED,,HEBREW PUNCTUATION NUN HAFUKHA
+05C7,PVALID,,HEBREW POINT QAMATS QATAN
+05C8-05CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+05D0-05EA,PVALID,,HEBREW LETTER ALEF..HEBREW LETTER TAV
+05EB-05EE,UNASSIGNED,,<RESERVED>..<RESERVED>
+05EF-05F2,PVALID,,HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3-05F4,CONTEXTO,,HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+05F5-05FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0600-060F,DISALLOWED,,ARABIC NUMBER SIGN..ARABIC SIGN MISRA
+0610-061A,PVALID,,ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+061B-061C,DISALLOWED,,ARABIC SEMICOLON..ARABIC LETTER MARK
+061D,UNASSIGNED,,<RESERVED>
+061E-061F,DISALLOWED,,ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
+0620-063F,PVALID,,ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640,DISALLOWED,,ARABIC TATWEEL
+0641-065F,PVALID,,ARABIC LETTER FEH..ARABIC WAVY HAMZA BELOW
+0660-0669,CONTEXTO,,ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A-066D,DISALLOWED,,ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+066E-0674,PVALID,,ARABIC LETTER DOTLESS BEH..ARABIC LETTER HIGH HAMZA
+0675-0678,DISALLOWED,,ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH
+0679-06D3,PVALID,,ARABIC LETTER TTEH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4,DISALLOWED,,ARABIC FULL STOP
+06D5-06DC,PVALID,,ARABIC LETTER AE..ARABIC SMALL HIGH SEEN
+06DD-06DE,DISALLOWED,,ARABIC END OF AYAH..ARABIC START OF RUB EL HIZB
+06DF-06E8,PVALID,,ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH NOON
+06E9,DISALLOWED,,ARABIC PLACE OF SAJDAH
+06EA-06EF,PVALID,,ARABIC EMPTY CENTRE LOW STOP..ARABIC LETTER REH WITH INVERTED V
+06F0-06F9,CONTEXTO,,EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA-06FF,PVALID,,ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER HEH WITH INVERTED V
+0700-070D,DISALLOWED,,SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070E,UNASSIGNED,,<RESERVED>
+070F,DISALLOWED,,SYRIAC ABBREVIATION MARK
+0710-074A,PVALID,,SYRIAC LETTER ALAPH..SYRIAC BARREKH
+074B-074C,UNASSIGNED,,<RESERVED>..<RESERVED>
+074D-07B1,PVALID,,SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER NAA
+07B2-07BF,UNASSIGNED,,<RESERVED>..<RESERVED>
+07C0-07F5,PVALID,,NKO DIGIT ZERO..NKO LOW TONE APOSTROPHE
+07F6-07FA,DISALLOWED,,NKO SYMBOL OO DENNEN..NKO LAJANYALAN
+07FB-07FC,UNASSIGNED,,<RESERVED>..<RESERVED>
+07FD,PVALID,,NKO DANTAYALAN
+07FE-07FF,DISALLOWED,,NKO DOROME SIGN..NKO TAMAN SIGN
+0800-082D,PVALID,,SAMARITAN LETTER ALAF..SAMARITAN MARK NEQUDAA
+082E-082F,UNASSIGNED,,<RESERVED>..<RESERVED>
+0830-083E,DISALLOWED,,SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+083F,UNASSIGNED,,<RESERVED>
+0840-085B,PVALID,,MANDAIC LETTER HALQA..MANDAIC GEMINATION MARK
+085C-085D,UNASSIGNED,,<RESERVED>..<RESERVED>
+085E,DISALLOWED,,MANDAIC PUNCTUATION
+085F,UNASSIGNED,,<RESERVED>
+0860-086A,PVALID,,SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
+086B-089F,UNASSIGNED,,<RESERVED>..<RESERVED>
+08A0-08B4,PVALID,,ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW
+08B5,UNASSIGNED,,<RESERVED>
+08B6-08BD,PVALID,,ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON
+08BE-08D2,UNASSIGNED,,<RESERVED>..<RESERVED>
+08D3-08E1,PVALID,,ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
+08E2,DISALLOWED,,ARABIC DISPUTED END OF AYAH
+08E3-0957,PVALID,,ARABIC TURNED DAMMA BELOW..DEVANAGARI VOWEL SIGN UUE
+0958-095F,DISALLOWED,,DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+0960-0963,PVALID,,DEVANAGARI LETTER VOCALIC RR..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964-0965,DISALLOWED,,DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0966-096F,PVALID,,DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970,DISALLOWED,,DEVANAGARI ABBREVIATION SIGN
+0971-0983,PVALID,,DEVANAGARI SIGN HIGH SPACING DOT..BENGALI SIGN VISARGA
+0984,UNASSIGNED,,<RESERVED>
+0985-098C,PVALID,,BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098D-098E,UNASSIGNED,,<RESERVED>..<RESERVED>
+098F-0990,PVALID,,BENGALI LETTER E..BENGALI LETTER AI
+0991-0992,UNASSIGNED,,<RESERVED>..<RESERVED>
+0993-09A8,PVALID,,BENGALI LETTER O..BENGALI LETTER NA
+09A9,UNASSIGNED,,<RESERVED>
+09AA-09B0,PVALID,,BENGALI LETTER PA..BENGALI LETTER RA
+09B1,UNASSIGNED,,<RESERVED>
+09B2,PVALID,,BENGALI LETTER LA
+09B3-09B5,UNASSIGNED,,<RESERVED>..<RESERVED>
+09B6-09B9,PVALID,,BENGALI LETTER SHA..BENGALI LETTER HA
+09BA-09BB,UNASSIGNED,,<RESERVED>..<RESERVED>
+09BC-09C4,PVALID,,BENGALI SIGN NUKTA..BENGALI VOWEL SIGN VOCALIC RR
+09C5-09C6,UNASSIGNED,,<RESERVED>..<RESERVED>
+09C7-09C8,PVALID,,BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09C9-09CA,UNASSIGNED,,<RESERVED>..<RESERVED>
+09CB-09CE,PVALID,,BENGALI VOWEL SIGN O..BENGALI LETTER KHANDA TA
+09CF-09D6,UNASSIGNED,,<RESERVED>..<RESERVED>
+09D7,PVALID,,BENGALI AU LENGTH MARK
+09D8-09DB,UNASSIGNED,,<RESERVED>..<RESERVED>
+09DC-09DD,DISALLOWED,,BENGALI LETTER RRA..BENGALI LETTER RHA
+09DE,UNASSIGNED,,<RESERVED>
+09DF,DISALLOWED,,BENGALI LETTER YYA
+09E0-09E3,PVALID,,BENGALI LETTER VOCALIC RR..BENGALI VOWEL SIGN VOCALIC LL
+09E4-09E5,UNASSIGNED,,<RESERVED>..<RESERVED>
+09E6-09F1,PVALID,,BENGALI DIGIT ZERO..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2-09FB,DISALLOWED,,BENGALI RUPEE MARK..BENGALI GANDA MARK
+09FC,PVALID,,BENGALI LETTER VEDIC ANUSVARA
+09FD,DISALLOWED,,BENGALI ABBREVIATION SIGN
+09FE,PVALID,,BENGALI SANDHI MARK
+09FF-0A00,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A01-0A03,PVALID,,GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN VISARGA
+0A04,UNASSIGNED,,<RESERVED>
+0A05-0A0A,PVALID,,GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0B-0A0E,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A0F-0A10,PVALID,,GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A11-0A12,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A13-0A28,PVALID,,GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A29,UNASSIGNED,,<RESERVED>
+0A2A-0A30,PVALID,,GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A31,UNASSIGNED,,<RESERVED>
+0A32,PVALID,,GURMUKHI LETTER LA
+0A33,DISALLOWED,,GURMUKHI LETTER LLA
+0A34,UNASSIGNED,,<RESERVED>
+0A35,PVALID,,GURMUKHI LETTER VA
+0A36,DISALLOWED,,GURMUKHI LETTER SHA
+0A37,UNASSIGNED,,<RESERVED>
+0A38-0A39,PVALID,,GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3A-0A3B,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A3C,PVALID,,GURMUKHI SIGN NUKTA
+0A3D,UNASSIGNED,,<RESERVED>
+0A3E-0A42,PVALID,,GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN UU
+0A43-0A46,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A47-0A48,PVALID,,GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A49-0A4A,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A4B-0A4D,PVALID,,GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A4E-0A50,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A51,PVALID,,GURMUKHI SIGN UDAAT
+0A52-0A58,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A59-0A5B,DISALLOWED,,GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5C,PVALID,,GURMUKHI LETTER RRA
+0A5D,UNASSIGNED,,<RESERVED>
+0A5E,DISALLOWED,,GURMUKHI LETTER FA
+0A5F-0A65,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A66-0A75,PVALID,,GURMUKHI DIGIT ZERO..GURMUKHI SIGN YAKASH
+0A76,DISALLOWED,,GURMUKHI ABBREVIATION SIGN
+0A77-0A80,UNASSIGNED,,<RESERVED>..<RESERVED>
+0A81-0A83,PVALID,,GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VISARGA
+0A84,UNASSIGNED,,<RESERVED>
+0A85-0A8D,PVALID,,GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8E,UNASSIGNED,,<RESERVED>
+0A8F-0A91,PVALID,,GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A92,UNASSIGNED,,<RESERVED>
+0A93-0AA8,PVALID,,GUJARATI LETTER O..GUJARATI LETTER NA
+0AA9,UNASSIGNED,,<RESERVED>
+0AAA-0AB0,PVALID,,GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB1,UNASSIGNED,,<RESERVED>
+0AB2-0AB3,PVALID,,GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB4,UNASSIGNED,,<RESERVED>
+0AB5-0AB9,PVALID,,GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABA-0ABB,UNASSIGNED,,<RESERVED>..<RESERVED>
+0ABC-0AC5,PVALID,,GUJARATI SIGN NUKTA..GUJARATI VOWEL SIGN CANDRA E
+0AC6,UNASSIGNED,,<RESERVED>
+0AC7-0AC9,PVALID,,GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN CANDRA O
+0ACA,UNASSIGNED,,<RESERVED>
+0ACB-0ACD,PVALID,,GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA
+0ACE-0ACF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0AD0,PVALID,,GUJARATI OM
+0AD1-0ADF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0AE0-0AE3,PVALID,,GUJARATI LETTER VOCALIC RR..GUJARATI VOWEL SIGN VOCALIC LL
+0AE4-0AE5,UNASSIGNED,,<RESERVED>..<RESERVED>
+0AE6-0AEF,PVALID,,GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0-0AF1,DISALLOWED,,GUJARATI ABBREVIATION SIGN..GUJARATI RUPEE SIGN
+0AF2-0AF8,UNASSIGNED,,<RESERVED>..<RESERVED>
+0AF9-0AFF,PVALID,,GUJARATI LETTER ZHA..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+0B00,UNASSIGNED,,<RESERVED>
+0B01-0B03,PVALID,,ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA
+0B04,UNASSIGNED,,<RESERVED>
+0B05-0B0C,PVALID,,ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0D-0B0E,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B0F-0B10,PVALID,,ORIYA LETTER E..ORIYA LETTER AI
+0B11-0B12,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B13-0B28,PVALID,,ORIYA LETTER O..ORIYA LETTER NA
+0B29,UNASSIGNED,,<RESERVED>
+0B2A-0B30,PVALID,,ORIYA LETTER PA..ORIYA LETTER RA
+0B31,UNASSIGNED,,<RESERVED>
+0B32-0B33,PVALID,,ORIYA LETTER LA..ORIYA LETTER LLA
+0B34,UNASSIGNED,,<RESERVED>
+0B35-0B39,PVALID,,ORIYA LETTER VA..ORIYA LETTER HA
+0B3A-0B3B,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B3C-0B44,PVALID,,ORIYA SIGN NUKTA..ORIYA VOWEL SIGN VOCALIC RR
+0B45-0B46,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B47-0B48,PVALID,,ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B49-0B4A,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B4B-0B4D,PVALID,,ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA
+0B4E-0B55,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B56-0B57,PVALID,,ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK
+0B58-0B5B,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B5C-0B5D,DISALLOWED,,ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5E,UNASSIGNED,,<RESERVED>
+0B5F-0B63,PVALID,,ORIYA LETTER YYA..ORIYA VOWEL SIGN VOCALIC LL
+0B64-0B65,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B66-0B6F,PVALID,,ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70,DISALLOWED,,ORIYA ISSHAR
+0B71,PVALID,,ORIYA LETTER WA
+0B72-0B77,DISALLOWED,,ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
+0B78-0B81,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B82-0B83,PVALID,,TAMIL SIGN ANUSVARA..TAMIL SIGN VISARGA
+0B84,UNASSIGNED,,<RESERVED>
+0B85-0B8A,PVALID,,TAMIL LETTER A..TAMIL LETTER UU
+0B8B-0B8D,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B8E-0B90,PVALID,,TAMIL LETTER E..TAMIL LETTER AI
+0B91,UNASSIGNED,,<RESERVED>
+0B92-0B95,PVALID,,TAMIL LETTER O..TAMIL LETTER KA
+0B96-0B98,UNASSIGNED,,<RESERVED>..<RESERVED>
+0B99-0B9A,PVALID,,TAMIL LETTER NGA..TAMIL LETTER CA
+0B9B,UNASSIGNED,,<RESERVED>
+0B9C,PVALID,,TAMIL LETTER JA
+0B9D,UNASSIGNED,,<RESERVED>
+0B9E-0B9F,PVALID,,TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA0-0BA2,UNASSIGNED,,<RESERVED>..<RESERVED>
+0BA3-0BA4,PVALID,,TAMIL LETTER NNA..TAMIL LETTER TA
+0BA5-0BA7,UNASSIGNED,,<RESERVED>..<RESERVED>
+0BA8-0BAA,PVALID,,TAMIL LETTER NA..TAMIL LETTER PA
+0BAB-0BAD,UNASSIGNED,,<RESERVED>..<RESERVED>
+0BAE-0BB9,PVALID,,TAMIL LETTER MA..TAMIL LETTER HA
+0BBA-0BBD,UNASSIGNED,,<RESERVED>..<RESERVED>
+0BBE-0BC2,PVALID,,TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU
+0BC3-0BC5,UNASSIGNED,,<RESERVED>..<RESERVED>
+0BC6-0BC8,PVALID,,TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BC9,UNASSIGNED,,<RESERVED>
+0BCA-0BCD,PVALID,,TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA
+0BCE-0BCF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0BD0,PVALID,,TAMIL OM
+0BD1-0BD6,UNASSIGNED,,<RESERVED>..<RESERVED>
+0BD7,PVALID,,TAMIL AU LENGTH MARK
+0BD8-0BE5,UNASSIGNED,,<RESERVED>..<RESERVED>
+0BE6-0BEF,PVALID,,TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0-0BFA,DISALLOWED,,TAMIL NUMBER TEN..TAMIL NUMBER SIGN
+0BFB-0BFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0C00-0C0C,PVALID,,TELUGU SIGN COMBINING CANDRABINDU ABOVE..TELUGU LETTER VOCALIC L
+0C0D,UNASSIGNED,,<RESERVED>
+0C0E-0C10,PVALID,,TELUGU LETTER E..TELUGU LETTER AI
+0C11,UNASSIGNED,,<RESERVED>
+0C12-0C28,PVALID,,TELUGU LETTER O..TELUGU LETTER NA
+0C29,UNASSIGNED,,<RESERVED>
+0C2A-0C39,PVALID,,TELUGU LETTER PA..TELUGU LETTER HA
+0C3A-0C3C,UNASSIGNED,,<RESERVED>..<RESERVED>
+0C3D-0C44,PVALID,,TELUGU SIGN AVAGRAHA..TELUGU VOWEL SIGN VOCALIC RR
+0C45,UNASSIGNED,,<RESERVED>
+0C46-0C48,PVALID,,TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C49,UNASSIGNED,,<RESERVED>
+0C4A-0C4D,PVALID,,TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C4E-0C54,UNASSIGNED,,<RESERVED>..<RESERVED>
+0C55-0C56,PVALID,,TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C57,UNASSIGNED,,<RESERVED>
+0C58-0C5A,PVALID,,TELUGU LETTER TSA..TELUGU LETTER RRRA
+0C5B-0C5F,UNASSIGNED,,<RESERVED>..<RESERVED>
+0C60-0C63,PVALID,,TELUGU LETTER VOCALIC RR..TELUGU VOWEL SIGN VOCALIC LL
+0C64-0C65,UNASSIGNED,,<RESERVED>..<RESERVED>
+0C66-0C6F,PVALID,,TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C70-0C77,UNASSIGNED,,<RESERVED>..<RESERVED>
+0C78-0C7F,DISALLOWED,,TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU SIGN TUUMU
+0C80-0C83,PVALID,,KANNADA SIGN SPACING CANDRABINDU..KANNADA SIGN VISARGA
+0C84,DISALLOWED,,KANNADA SIGN SIDDHAM
+0C85-0C8C,PVALID,,KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8D,UNASSIGNED,,<RESERVED>
+0C8E-0C90,PVALID,,KANNADA LETTER E..KANNADA LETTER AI
+0C91,UNASSIGNED,,<RESERVED>
+0C92-0CA8,PVALID,,KANNADA LETTER O..KANNADA LETTER NA
+0CA9,UNASSIGNED,,<RESERVED>
+0CAA-0CB3,PVALID,,KANNADA LETTER PA..KANNADA LETTER LLA
+0CB4,UNASSIGNED,,<RESERVED>
+0CB5-0CB9,PVALID,,KANNADA LETTER VA..KANNADA LETTER HA
+0CBA-0CBB,UNASSIGNED,,<RESERVED>..<RESERVED>
+0CBC-0CC4,PVALID,,KANNADA SIGN NUKTA..KANNADA VOWEL SIGN VOCALIC RR
+0CC5,UNASSIGNED,,<RESERVED>
+0CC6-0CC8,PVALID,,KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI
+0CC9,UNASSIGNED,,<RESERVED>
+0CCA-0CCD,PVALID,,KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA
+0CCE-0CD4,UNASSIGNED,,<RESERVED>..<RESERVED>
+0CD5-0CD6,PVALID,,KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CD7-0CDD,UNASSIGNED,,<RESERVED>..<RESERVED>
+0CDE,PVALID,,KANNADA LETTER FA
+0CDF,UNASSIGNED,,<RESERVED>
+0CE0-0CE3,PVALID,,KANNADA LETTER VOCALIC RR..KANNADA VOWEL SIGN VOCALIC LL
+0CE4-0CE5,UNASSIGNED,,<RESERVED>..<RESERVED>
+0CE6-0CEF,PVALID,,KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF0,UNASSIGNED,,<RESERVED>
+0CF1-0CF2,PVALID,,KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3-0CFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0D00-0D03,PVALID,,MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN VISARGA
+0D04,UNASSIGNED,,<RESERVED>
+0D05-0D0C,PVALID,,MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
+0D0D,UNASSIGNED,,<RESERVED>
+0D0E-0D10,PVALID,,MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D11,UNASSIGNED,,<RESERVED>
+0D12-0D44,PVALID,,MALAYALAM LETTER O..MALAYALAM VOWEL SIGN VOCALIC RR
+0D45,UNASSIGNED,,<RESERVED>
+0D46-0D48,PVALID,,MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D49,UNASSIGNED,,<RESERVED>
+0D4A-0D4E,PVALID,,MALAYALAM VOWEL SIGN O..MALAYALAM LETTER DOT REPH
+0D4F,DISALLOWED,,MALAYALAM SIGN PARA
+0D50-0D53,UNASSIGNED,,<RESERVED>..<RESERVED>
+0D54-0D57,PVALID,,MALAYALAM LETTER CHILLU M..MALAYALAM AU LENGTH MARK
+0D58-0D5E,DISALLOWED,,MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
+0D5F-0D63,PVALID,,MALAYALAM LETTER ARCHAIC II..MALAYALAM VOWEL SIGN VOCALIC LL
+0D64-0D65,UNASSIGNED,,<RESERVED>..<RESERVED>
+0D66-0D6F,PVALID,,MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70-0D79,DISALLOWED,,MALAYALAM NUMBER TEN..MALAYALAM DATE MARK
+0D7A-0D7F,PVALID,,MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D80-0D81,UNASSIGNED,,<RESERVED>..<RESERVED>
+0D82-0D83,PVALID,,SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D84,UNASSIGNED,,<RESERVED>
+0D85-0D96,PVALID,,SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D97-0D99,UNASSIGNED,,<RESERVED>..<RESERVED>
+0D9A-0DB1,PVALID,,SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB2,UNASSIGNED,,<RESERVED>
+0DB3-0DBB,PVALID,,SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBC,UNASSIGNED,,<RESERVED>
+0DBD,PVALID,,SINHALA LETTER DANTAJA LAYANNA
+0DBE-0DBF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0DC0-0DC6,PVALID,,SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DC7-0DC9,UNASSIGNED,,<RESERVED>..<RESERVED>
+0DCA,PVALID,,SINHALA SIGN AL-LAKUNA
+0DCB-0DCE,UNASSIGNED,,<RESERVED>..<RESERVED>
+0DCF-0DD4,PVALID,,SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD5,UNASSIGNED,,<RESERVED>
+0DD6,PVALID,,SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD7,UNASSIGNED,,<RESERVED>
+0DD8-0DDF,PVALID,,SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE0-0DE5,UNASSIGNED,,<RESERVED>..<RESERVED>
+0DE6-0DEF,PVALID,,SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+0DF0-0DF1,UNASSIGNED,,<RESERVED>..<RESERVED>
+0DF2-0DF3,PVALID,,SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4,DISALLOWED,,SINHALA PUNCTUATION KUNDDALIYA
+0DF5-0E00,UNASSIGNED,,<RESERVED>..<RESERVED>
+0E01-0E32,PVALID,,THAI CHARACTER KO KAI..THAI CHARACTER SARA AA
+0E33,DISALLOWED,,THAI CHARACTER SARA AM
+0E34-0E3A,PVALID,,THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E3B-0E3E,UNASSIGNED,,<RESERVED>..<RESERVED>
+0E3F,DISALLOWED,,THAI CURRENCY SYMBOL BAHT
+0E40-0E4E,PVALID,,THAI CHARACTER SARA E..THAI CHARACTER YAMAKKAN
+0E4F,DISALLOWED,,THAI CHARACTER FONGMAN
+0E50-0E59,PVALID,,THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A-0E5B,DISALLOWED,,THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E5C-0E80,UNASSIGNED,,<RESERVED>..<RESERVED>
+0E81-0E82,PVALID,,LAO LETTER KO..LAO LETTER KHO SUNG
+0E83,UNASSIGNED,,<RESERVED>
+0E84,PVALID,,LAO LETTER KHO TAM
+0E85-0E86,UNASSIGNED,,<RESERVED>..<RESERVED>
+0E87-0E88,PVALID,,LAO LETTER NGO..LAO LETTER CO
+0E89,UNASSIGNED,,<RESERVED>
+0E8A,PVALID,,LAO LETTER SO TAM
+0E8B-0E8C,UNASSIGNED,,<RESERVED>..<RESERVED>
+0E8D,PVALID,,LAO LETTER NYO
+0E8E-0E93,UNASSIGNED,,<RESERVED>..<RESERVED>
+0E94-0E97,PVALID,,LAO LETTER DO..LAO LETTER THO TAM
+0E98,UNASSIGNED,,<RESERVED>
+0E99-0E9F,PVALID,,LAO LETTER NO..LAO LETTER FO SUNG
+0EA0,UNASSIGNED,,<RESERVED>
+0EA1-0EA3,PVALID,,LAO LETTER MO..LAO LETTER LO LING
+0EA4,UNASSIGNED,,<RESERVED>
+0EA5,PVALID,,LAO LETTER LO LOOT
+0EA6,UNASSIGNED,,<RESERVED>
+0EA7,PVALID,,LAO LETTER WO
+0EA8-0EA9,UNASSIGNED,,<RESERVED>..<RESERVED>
+0EAA-0EAB,PVALID,,LAO LETTER SO SUNG..LAO LETTER HO SUNG
+0EAC,UNASSIGNED,,<RESERVED>
+0EAD-0EB2,PVALID,,LAO LETTER O..LAO VOWEL SIGN AA
+0EB3,DISALLOWED,,LAO VOWEL SIGN AM
+0EB4-0EB9,PVALID,,LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBA,UNASSIGNED,,<RESERVED>
+0EBB-0EBD,PVALID,,LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN NYO
+0EBE-0EBF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0EC0-0EC4,PVALID,,LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC5,UNASSIGNED,,<RESERVED>
+0EC6,PVALID,,LAO KO LA
+0EC7,UNASSIGNED,,<RESERVED>
+0EC8-0ECD,PVALID,,LAO TONE MAI EK..LAO NIGGAHITA
+0ECE-0ECF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0ED0-0ED9,PVALID,,LAO DIGIT ZERO..LAO DIGIT NINE
+0EDA-0EDB,UNASSIGNED,,<RESERVED>..<RESERVED>
+0EDC-0EDD,DISALLOWED,,LAO HO NO..LAO HO MO
+0EDE-0EDF,PVALID,,LAO LETTER KHMU GO..LAO LETTER KHMU NYO
+0EE0-0EFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+0F00,PVALID,,TIBETAN SYLLABLE OM
+0F01-0F0A,DISALLOWED,,TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK BKA- SHOG YIG MGO
+0F0B,PVALID,,TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C-0F17,DISALLOWED,,TIBETAN MARK DELIMITER TSHEG BSTAR..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18-0F19,PVALID,,TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A-0F1F,DISALLOWED,,TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20-0F29,PVALID,,TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A-0F34,DISALLOWED,,TIBETAN DIGIT HALF ONE..TIBETAN MARK BSDUS RTAGS
+0F35,PVALID,,TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36,DISALLOWED,,TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37,PVALID,,TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38,DISALLOWED,,TIBETAN MARK CHE MGO
+0F39,PVALID,,TIBETAN MARK TSA -PHRU
+0F3A-0F3D,DISALLOWED,,TIBETAN MARK GUG RTAGS GYON..TIBETAN MARK ANG KHANG GYAS
+0F3E-0F42,PVALID,,TIBETAN SIGN YAR TSHES..TIBETAN LETTER GA
+0F43,DISALLOWED,,TIBETAN LETTER GHA
+0F44-0F47,PVALID,,TIBETAN LETTER NGA..TIBETAN LETTER JA
+0F48,UNASSIGNED,,<RESERVED>
+0F49-0F4C,PVALID,,TIBETAN LETTER NYA..TIBETAN LETTER DDA
+0F4D,DISALLOWED,,TIBETAN LETTER DDHA
+0F4E-0F51,PVALID,,TIBETAN LETTER NNA..TIBETAN LETTER DA
+0F52,DISALLOWED,,TIBETAN LETTER DHA
+0F53-0F56,PVALID,,TIBETAN LETTER NA..TIBETAN LETTER BA
+0F57,DISALLOWED,,TIBETAN LETTER BHA
+0F58-0F5B,PVALID,,TIBETAN LETTER MA..TIBETAN LETTER DZA
+0F5C,DISALLOWED,,TIBETAN LETTER DZHA
+0F5D-0F68,PVALID,,TIBETAN LETTER WA..TIBETAN LETTER A
+0F69,DISALLOWED,,TIBETAN LETTER KSSA
+0F6A-0F6C,PVALID,,TIBETAN LETTER FIXED-FORM RA..TIBETAN LETTER RRA
+0F6D-0F70,UNASSIGNED,,<RESERVED>..<RESERVED>
+0F71-0F72,PVALID,,TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I
+0F73,DISALLOWED,,TIBETAN VOWEL SIGN II
+0F74,PVALID,,TIBETAN VOWEL SIGN U
+0F75-0F79,DISALLOWED,,TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
+0F7A-0F80,PVALID,,TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REVERSED I
+0F81,DISALLOWED,,TIBETAN VOWEL SIGN REVERSED II
+0F82-0F84,PVALID,,TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA
+0F85,DISALLOWED,,TIBETAN MARK PALUTA
+0F86-0F92,PVALID,,TIBETAN SIGN LCI RTAGS..TIBETAN SUBJOINED LETTER GA
+0F93,DISALLOWED,,TIBETAN SUBJOINED LETTER GHA
+0F94-0F97,PVALID,,TIBETAN SUBJOINED LETTER NGA..TIBETAN SUBJOINED LETTER JA
+0F98,UNASSIGNED,,<RESERVED>
+0F99-0F9C,PVALID,,TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER DDA
+0F9D,DISALLOWED,,TIBETAN SUBJOINED LETTER DDHA
+0F9E-0FA1,PVALID,,TIBETAN SUBJOINED LETTER NNA..TIBETAN SUBJOINED LETTER DA
+0FA2,DISALLOWED,,TIBETAN SUBJOINED LETTER DHA
+0FA3-0FA6,PVALID,,TIBETAN SUBJOINED LETTER NA..TIBETAN SUBJOINED LETTER BA
+0FA7,DISALLOWED,,TIBETAN SUBJOINED LETTER BHA
+0FA8-0FAB,PVALID,,TIBETAN SUBJOINED LETTER MA..TIBETAN SUBJOINED LETTER DZA
+0FAC,DISALLOWED,,TIBETAN SUBJOINED LETTER DZHA
+0FAD-0FB8,PVALID,,TIBETAN SUBJOINED LETTER WA..TIBETAN SUBJOINED LETTER A
+0FB9,DISALLOWED,,TIBETAN SUBJOINED LETTER KSSA
+0FBA-0FBC,PVALID,,TIBETAN SUBJOINED LETTER FIXED-FORM WA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBD,UNASSIGNED,,<RESERVED>
+0FBE-0FC5,DISALLOWED,,TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+0FC6,PVALID,,TIBETAN SYMBOL PADMA GDAN
+0FC7-0FCC,DISALLOWED,,TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCD,UNASSIGNED,,<RESERVED>
+0FCE-0FDA,DISALLOWED,,TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN MARK TRAILING MCHAN RTAGS
+0FDB-0FFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1000-1049,PVALID,,MYANMAR LETTER KA..MYANMAR DIGIT NINE
+104A-104F,DISALLOWED,,MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+1050-109D,PVALID,,MYANMAR LETTER SHA..MYANMAR VOWEL SIGN AITON AI
+109E-10C5,DISALLOWED,,MYANMAR SYMBOL SHAN ONE..GEORGIAN CAPITAL LETTER HOE
+10C6,UNASSIGNED,,<RESERVED>
+10C7,DISALLOWED,,GEORGIAN CAPITAL LETTER YN
+10C8-10CC,UNASSIGNED,,<RESERVED>..<RESERVED>
+10CD,DISALLOWED,,GEORGIAN CAPITAL LETTER AEN
+10CE-10CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10D0-10FA,PVALID,,GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FB-10FC,DISALLOWED,,GEORGIAN PARAGRAPH SEPARATOR..MODIFIER LETTER GEORGIAN NAR
+10FD-10FF,PVALID,,GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+1100-11FF,DISALLOWED,,HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
+1200-1248,PVALID,,ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+1249,UNASSIGNED,,<RESERVED>
+124A-124D,PVALID,,ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+124E-124F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1250-1256,PVALID,,ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1257,UNASSIGNED,,<RESERVED>
+1258,PVALID,,ETHIOPIC SYLLABLE QHWA
+1259,UNASSIGNED,,<RESERVED>
+125A-125D,PVALID,,ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+125E-125F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1260-1288,PVALID,,ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+1289,UNASSIGNED,,<RESERVED>
+128A-128D,PVALID,,ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+128E-128F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1290-12B0,PVALID,,ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B1,UNASSIGNED,,<RESERVED>
+12B2-12B5,PVALID,,ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B6-12B7,UNASSIGNED,,<RESERVED>..<RESERVED>
+12B8-12BE,PVALID,,ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12BF,UNASSIGNED,,<RESERVED>
+12C0,PVALID,,ETHIOPIC SYLLABLE KXWA
+12C1,UNASSIGNED,,<RESERVED>
+12C2-12C5,PVALID,,ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C6-12C7,UNASSIGNED,,<RESERVED>..<RESERVED>
+12C8-12D6,PVALID,,ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D7,UNASSIGNED,,<RESERVED>
+12D8-1310,PVALID,,ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1311,UNASSIGNED,,<RESERVED>
+1312-1315,PVALID,,ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1316-1317,UNASSIGNED,,<RESERVED>..<RESERVED>
+1318-135A,PVALID,,ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+135B-135C,UNASSIGNED,,<RESERVED>..<RESERVED>
+135D-135F,PVALID,,ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+1360-137C,DISALLOWED,,ETHIOPIC SECTION MARK..ETHIOPIC NUMBER TEN THOUSAND
+137D-137F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1380-138F,PVALID,,ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390-1399,DISALLOWED,,ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+139A-139F,UNASSIGNED,,<RESERVED>..<RESERVED>
+13A0-13F5,PVALID,,CHEROKEE LETTER A..CHEROKEE LETTER MV
+13F6-13F7,UNASSIGNED,,<RESERVED>..<RESERVED>
+13F8-13FD,DISALLOWED,,CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
+13FE-13FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1400,DISALLOWED,,CANADIAN SYLLABICS HYPHEN
+1401-166C,PVALID,,CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D-166E,DISALLOWED,,CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166F-167F,PVALID,,CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
+1680,DISALLOWED,,OGHAM SPACE MARK
+1681-169A,PVALID,,OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B-169C,DISALLOWED,,OGHAM FEATHER MARK..OGHAM REVERSED FEATHER MARK
+169D-169F,UNASSIGNED,,<RESERVED>..<RESERVED>
+16A0-16EA,PVALID,,RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EB-16F0,DISALLOWED,,RUNIC SINGLE PUNCTUATION..RUNIC BELGTHOR SYMBOL
+16F1-16F8,PVALID,,RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+16F9-16FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1700-170C,PVALID,,TAGALOG LETTER A..TAGALOG LETTER YA
+170D,UNASSIGNED,,<RESERVED>
+170E-1714,PVALID,,TAGALOG LETTER LA..TAGALOG SIGN VIRAMA
+1715-171F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1720-1734,PVALID,,HANUNOO LETTER A..HANUNOO SIGN PAMUDPOD
+1735-1736,DISALLOWED,,PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1737-173F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1740-1753,PVALID,,BUHID LETTER A..BUHID VOWEL SIGN U
+1754-175F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1760-176C,PVALID,,TAGBANWA LETTER A..TAGBANWA LETTER YA
+176D,UNASSIGNED,,<RESERVED>
+176E-1770,PVALID,,TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1771,UNASSIGNED,,<RESERVED>
+1772-1773,PVALID,,TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1774-177F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1780-17B3,PVALID,,KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4-17B5,DISALLOWED,,KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6-17D3,PVALID,,KHMER VOWEL SIGN AA..KHMER SIGN BATHAMASAT
+17D4-17D6,DISALLOWED,,KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+17D7,PVALID,,KHMER SIGN LEK TOO
+17D8-17DB,DISALLOWED,,KHMER SIGN BEYYAL..KHMER CURRENCY SYMBOL RIEL
+17DC-17DD,PVALID,,KHMER SIGN AVAKRAHASANYA..KHMER SIGN ATTHACAN
+17DE-17DF,UNASSIGNED,,<RESERVED>..<RESERVED>
+17E0-17E9,PVALID,,KHMER DIGIT ZERO..KHMER DIGIT NINE
+17EA-17EF,UNASSIGNED,,<RESERVED>..<RESERVED>
+17F0-17F9,DISALLOWED,,KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+17FA-17FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1800-180E,DISALLOWED,,MONGOLIAN BIRGA..MONGOLIAN VOWEL SEPARATOR
+180F,UNASSIGNED,,<RESERVED>
+1810-1819,PVALID,,MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+181A-181F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1820-1878,PVALID,,MONGOLIAN LETTER A..MONGOLIAN LETTER CHA WITH TWO DOTS
+1879-187F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1880-18AA,PVALID,,MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI LHA
+18AB-18AF,UNASSIGNED,,<RESERVED>..<RESERVED>
+18B0-18F5,PVALID,,CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+18F6-18FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1900-191E,PVALID,,LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
+191F,UNASSIGNED,,<RESERVED>
+1920-192B,PVALID,,LIMBU VOWEL SIGN A..LIMBU SUBJOINED LETTER WA
+192C-192F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1930-193B,PVALID,,LIMBU SMALL LETTER KA..LIMBU SIGN SA-I
+193C-193F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1940,DISALLOWED,,LIMBU SIGN LOO
+1941-1943,UNASSIGNED,,<RESERVED>..<RESERVED>
+1944-1945,DISALLOWED,,LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946-196D,PVALID,,LIMBU DIGIT ZERO..TAI LE LETTER AI
+196E-196F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1970-1974,PVALID,,TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1975-197F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1980-19AB,PVALID,,NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
+19AC-19AF,UNASSIGNED,,<RESERVED>..<RESERVED>
+19B0-19C9,PVALID,,NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
+19CA-19CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+19D0-19D9,PVALID,,NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DA,DISALLOWED,,NEW TAI LUE THAM DIGIT ONE
+19DB-19DD,UNASSIGNED,,<RESERVED>..<RESERVED>
+19DE-19FF,DISALLOWED,,NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM ROC
+1A00-1A1B,PVALID,,BUGINESE LETTER KA..BUGINESE VOWEL SIGN AE
+1A1C-1A1D,UNASSIGNED,,<RESERVED>..<RESERVED>
+1A1E-1A1F,DISALLOWED,,BUGINESE PALLAWA..BUGINESE END OF SECTION
+1A20-1A5E,PVALID,,TAI THAM LETTER HIGH KA..TAI THAM CONSONANT SIGN SA
+1A5F,UNASSIGNED,,<RESERVED>
+1A60-1A7C,PVALID,,TAI THAM SIGN SAKOT..TAI THAM SIGN KHUEN-LUE KARAN
+1A7D-1A7E,UNASSIGNED,,<RESERVED>..<RESERVED>
+1A7F-1A89,PVALID,,TAI THAM COMBINING CRYPTOGRAMMIC DOT..TAI THAM HORA DIGIT NINE
+1A8A-1A8F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1A90-1A99,PVALID,,TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1A9A-1A9F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1AA0-1AA6,DISALLOWED,,TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+1AA7,PVALID,,TAI THAM SIGN MAI YAMOK
+1AA8-1AAD,DISALLOWED,,TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1AAE-1AAF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1AB0-1ABD,PVALID,,COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE,DISALLOWED,,COMBINING PARENTHESES OVERLAY
+1ABF-1AFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1B00-1B4B,PVALID,,BALINESE SIGN ULU RICEM..BALINESE LETTER ASYURA SASAK
+1B4C-1B4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1B50-1B59,PVALID,,BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A-1B6A,DISALLOWED,,BALINESE PANTI..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B-1B73,PVALID,,BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74-1B7C,DISALLOWED,,BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B7D-1B7F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1B80-1BF3,PVALID,,SUNDANESE SIGN PANYECEK..BATAK PANONGONAN
+1BF4-1BFB,UNASSIGNED,,<RESERVED>..<RESERVED>
+1BFC-1BFF,DISALLOWED,,BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
+1C00-1C37,PVALID,,LEPCHA LETTER KA..LEPCHA SIGN NUKTA
+1C38-1C3A,UNASSIGNED,,<RESERVED>..<RESERVED>
+1C3B-1C3F,DISALLOWED,,LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40-1C49,PVALID,,LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4A-1C4C,UNASSIGNED,,<RESERVED>..<RESERVED>
+1C4D-1C7D,PVALID,,LEPCHA LETTER TTA..OL CHIKI AHAD
+1C7E-1C88,DISALLOWED,,OL CHIKI PUNCTUATION MUCAAD..CYRILLIC SMALL LETTER UNBLENDED UK
+1C89-1C8F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1C90-1CBA,DISALLOWED,,GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBB-1CBC,UNASSIGNED,,<RESERVED>..<RESERVED>
+1CBD-1CC7,DISALLOWED,,GEORGIAN MTAVRULI CAPITAL LETTER AEN..SUNDANESE PUNCTUATION BINDU BA SATANGA
+1CC8-1CCF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1CD0-1CD2,PVALID,,VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD3,DISALLOWED,,VEDIC SIGN NIHSHVASA
+1CD4-1CF9,PVALID,,VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE DOUBLE RING ABOVE
+1CFA-1CFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D00-1D2B,PVALID,,LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C-1D2E,DISALLOWED,,MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B
+1D2F,PVALID,,MODIFIER LETTER CAPITAL BARRED B
+1D30-1D3A,DISALLOWED,,MODIFIER LETTER CAPITAL D..MODIFIER LETTER CAPITAL N
+1D3B,PVALID,,MODIFIER LETTER CAPITAL REVERSED N
+1D3C-1D4D,DISALLOWED,,MODIFIER LETTER CAPITAL O..MODIFIER LETTER SMALL G
+1D4E,PVALID,,MODIFIER LETTER SMALL TURNED I
+1D4F-1D6A,DISALLOWED,,MODIFIER LETTER SMALL K..GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B-1D77,PVALID,,LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+1D78,DISALLOWED,,MODIFIER LETTER CYRILLIC EN
+1D79-1D9A,PVALID,,LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B-1DBF,DISALLOWED,,MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1DC0-1DF9,PVALID,,COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
+1DFA,UNASSIGNED,,<RESERVED>
+1DFB-1DFF,PVALID,,COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1E00,DISALLOWED,,LATIN CAPITAL LETTER A WITH RING BELOW
+1E01,PVALID,,LATIN SMALL LETTER A WITH RING BELOW
+1E02,DISALLOWED,,LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E03,PVALID,,LATIN SMALL LETTER B WITH DOT ABOVE
+1E04,DISALLOWED,,LATIN CAPITAL LETTER B WITH DOT BELOW
+1E05,PVALID,,LATIN SMALL LETTER B WITH DOT BELOW
+1E06,DISALLOWED,,LATIN CAPITAL LETTER B WITH LINE BELOW
+1E07,PVALID,,LATIN SMALL LETTER B WITH LINE BELOW
+1E08,DISALLOWED,,LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+1E09,PVALID,,LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E0A,DISALLOWED,,LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0B,PVALID,,LATIN SMALL LETTER D WITH DOT ABOVE
+1E0C,DISALLOWED,,LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0D,PVALID,,LATIN SMALL LETTER D WITH DOT BELOW
+1E0E,DISALLOWED,,LATIN CAPITAL LETTER D WITH LINE BELOW
+1E0F,PVALID,,LATIN SMALL LETTER D WITH LINE BELOW
+1E10,DISALLOWED,,LATIN CAPITAL LETTER D WITH CEDILLA
+1E11,PVALID,,LATIN SMALL LETTER D WITH CEDILLA
+1E12,DISALLOWED,,LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E13,PVALID,,LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E14,DISALLOWED,,LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1E15,PVALID,,LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E16,DISALLOWED,,LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E17,PVALID,,LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E18,DISALLOWED,,LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E19,PVALID,,LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E1A,DISALLOWED,,LATIN CAPITAL LETTER E WITH TILDE BELOW
+1E1B,PVALID,,LATIN SMALL LETTER E WITH TILDE BELOW
+1E1C,DISALLOWED,,LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+1E1D,PVALID,,LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1E,DISALLOWED,,LATIN CAPITAL LETTER F WITH DOT ABOVE
+1E1F,PVALID,,LATIN SMALL LETTER F WITH DOT ABOVE
+1E20,DISALLOWED,,LATIN CAPITAL LETTER G WITH MACRON
+1E21,PVALID,,LATIN SMALL LETTER G WITH MACRON
+1E22,DISALLOWED,,LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E23,PVALID,,LATIN SMALL LETTER H WITH DOT ABOVE
+1E24,DISALLOWED,,LATIN CAPITAL LETTER H WITH DOT BELOW
+1E25,PVALID,,LATIN SMALL LETTER H WITH DOT BELOW
+1E26,DISALLOWED,,LATIN CAPITAL LETTER H WITH DIAERESIS
+1E27,PVALID,,LATIN SMALL LETTER H WITH DIAERESIS
+1E28,DISALLOWED,,LATIN CAPITAL LETTER H WITH CEDILLA
+1E29,PVALID,,LATIN SMALL LETTER H WITH CEDILLA
+1E2A,DISALLOWED,,LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E2B,PVALID,,LATIN SMALL LETTER H WITH BREVE BELOW
+1E2C,DISALLOWED,,LATIN CAPITAL LETTER I WITH TILDE BELOW
+1E2D,PVALID,,LATIN SMALL LETTER I WITH TILDE BELOW
+1E2E,DISALLOWED,,LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+1E2F,PVALID,,LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+1E30,DISALLOWED,,LATIN CAPITAL LETTER K WITH ACUTE
+1E31,PVALID,,LATIN SMALL LETTER K WITH ACUTE
+1E32,DISALLOWED,,LATIN CAPITAL LETTER K WITH DOT BELOW
+1E33,PVALID,,LATIN SMALL LETTER K WITH DOT BELOW
+1E34,DISALLOWED,,LATIN CAPITAL LETTER K WITH LINE BELOW
+1E35,PVALID,,LATIN SMALL LETTER K WITH LINE BELOW
+1E36,DISALLOWED,,LATIN CAPITAL LETTER L WITH DOT BELOW
+1E37,PVALID,,LATIN SMALL LETTER L WITH DOT BELOW
+1E38,DISALLOWED,,LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E39,PVALID,,LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E3A,DISALLOWED,,LATIN CAPITAL LETTER L WITH LINE BELOW
+1E3B,PVALID,,LATIN SMALL LETTER L WITH LINE BELOW
+1E3C,DISALLOWED,,LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3D,PVALID,,LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3E,DISALLOWED,,LATIN CAPITAL LETTER M WITH ACUTE
+1E3F,PVALID,,LATIN SMALL LETTER M WITH ACUTE
+1E40,DISALLOWED,,LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E41,PVALID,,LATIN SMALL LETTER M WITH DOT ABOVE
+1E42,DISALLOWED,,LATIN CAPITAL LETTER M WITH DOT BELOW
+1E43,PVALID,,LATIN SMALL LETTER M WITH DOT BELOW
+1E44,DISALLOWED,,LATIN CAPITAL LETTER N WITH DOT ABOVE
+1E45,PVALID,,LATIN SMALL LETTER N WITH DOT ABOVE
+1E46,DISALLOWED,,LATIN CAPITAL LETTER N WITH DOT BELOW
+1E47,PVALID,,LATIN SMALL LETTER N WITH DOT BELOW
+1E48,DISALLOWED,,LATIN CAPITAL LETTER N WITH LINE BELOW
+1E49,PVALID,,LATIN SMALL LETTER N WITH LINE BELOW
+1E4A,DISALLOWED,,LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E4B,PVALID,,LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4C,DISALLOWED,,LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4D,PVALID,,LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4E,DISALLOWED,,LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1E4F,PVALID,,LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E50,DISALLOWED,,LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1E51,PVALID,,LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E52,DISALLOWED,,LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E53,PVALID,,LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E54,DISALLOWED,,LATIN CAPITAL LETTER P WITH ACUTE
+1E55,PVALID,,LATIN SMALL LETTER P WITH ACUTE
+1E56,DISALLOWED,,LATIN CAPITAL LETTER P WITH DOT ABOVE
+1E57,PVALID,,LATIN SMALL LETTER P WITH DOT ABOVE
+1E58,DISALLOWED,,LATIN CAPITAL LETTER R WITH DOT ABOVE
+1E59,PVALID,,LATIN SMALL LETTER R WITH DOT ABOVE
+1E5A,DISALLOWED,,LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5B,PVALID,,LATIN SMALL LETTER R WITH DOT BELOW
+1E5C,DISALLOWED,,LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5D,PVALID,,LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5E,DISALLOWED,,LATIN CAPITAL LETTER R WITH LINE BELOW
+1E5F,PVALID,,LATIN SMALL LETTER R WITH LINE BELOW
+1E60,DISALLOWED,,LATIN CAPITAL LETTER S WITH DOT ABOVE
+1E61,PVALID,,LATIN SMALL LETTER S WITH DOT ABOVE
+1E62,DISALLOWED,,LATIN CAPITAL LETTER S WITH DOT BELOW
+1E63,PVALID,,LATIN SMALL LETTER S WITH DOT BELOW
+1E64,DISALLOWED,,LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+1E65,PVALID,,LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E66,DISALLOWED,,LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E67,PVALID,,LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E68,DISALLOWED,,LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E69,PVALID,,LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A,DISALLOWED,,LATIN CAPITAL LETTER T WITH DOT ABOVE
+1E6B,PVALID,,LATIN SMALL LETTER T WITH DOT ABOVE
+1E6C,DISALLOWED,,LATIN CAPITAL LETTER T WITH DOT BELOW
+1E6D,PVALID,,LATIN SMALL LETTER T WITH DOT BELOW
+1E6E,DISALLOWED,,LATIN CAPITAL LETTER T WITH LINE BELOW
+1E6F,PVALID,,LATIN SMALL LETTER T WITH LINE BELOW
+1E70,DISALLOWED,,LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E71,PVALID,,LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E72,DISALLOWED,,LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E73,PVALID,,LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E74,DISALLOWED,,LATIN CAPITAL LETTER U WITH TILDE BELOW
+1E75,PVALID,,LATIN SMALL LETTER U WITH TILDE BELOW
+1E76,DISALLOWED,,LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E77,PVALID,,LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E78,DISALLOWED,,LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+1E79,PVALID,,LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E7A,DISALLOWED,,LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1E7B,PVALID,,LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7C,DISALLOWED,,LATIN CAPITAL LETTER V WITH TILDE
+1E7D,PVALID,,LATIN SMALL LETTER V WITH TILDE
+1E7E,DISALLOWED,,LATIN CAPITAL LETTER V WITH DOT BELOW
+1E7F,PVALID,,LATIN SMALL LETTER V WITH DOT BELOW
+1E80,DISALLOWED,,LATIN CAPITAL LETTER W WITH GRAVE
+1E81,PVALID,,LATIN SMALL LETTER W WITH GRAVE
+1E82,DISALLOWED,,LATIN CAPITAL LETTER W WITH ACUTE
+1E83,PVALID,,LATIN SMALL LETTER W WITH ACUTE
+1E84,DISALLOWED,,LATIN CAPITAL LETTER W WITH DIAERESIS
+1E85,PVALID,,LATIN SMALL LETTER W WITH DIAERESIS
+1E86,DISALLOWED,,LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E87,PVALID,,LATIN SMALL LETTER W WITH DOT ABOVE
+1E88,DISALLOWED,,LATIN CAPITAL LETTER W WITH DOT BELOW
+1E89,PVALID,,LATIN SMALL LETTER W WITH DOT BELOW
+1E8A,DISALLOWED,,LATIN CAPITAL LETTER X WITH DOT ABOVE
+1E8B,PVALID,,LATIN SMALL LETTER X WITH DOT ABOVE
+1E8C,DISALLOWED,,LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8D,PVALID,,LATIN SMALL LETTER X WITH DIAERESIS
+1E8E,DISALLOWED,,LATIN CAPITAL LETTER Y WITH DOT ABOVE
+1E8F,PVALID,,LATIN SMALL LETTER Y WITH DOT ABOVE
+1E90,DISALLOWED,,LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+1E91,PVALID,,LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E92,DISALLOWED,,LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E93,PVALID,,LATIN SMALL LETTER Z WITH DOT BELOW
+1E94,DISALLOWED,,LATIN CAPITAL LETTER Z WITH LINE BELOW
+1E95-1E99,PVALID,,LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER Y WITH RING ABOVE
+1E9A-1E9B,DISALLOWED,,LATIN SMALL LETTER A WITH RIGHT HALF RING..LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1E9C-1E9D,PVALID,,LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE..LATIN SMALL LETTER LONG S WITH HIGH STROKE
+1E9E,DISALLOWED,,LATIN CAPITAL LETTER SHARP S
+1E9F,PVALID,,LATIN SMALL LETTER DELTA
+1EA0,DISALLOWED,,LATIN CAPITAL LETTER A WITH DOT BELOW
+1EA1,PVALID,,LATIN SMALL LETTER A WITH DOT BELOW
+1EA2,DISALLOWED,,LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EA3,PVALID,,LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA4,DISALLOWED,,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA5,PVALID,,LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6,DISALLOWED,,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA7,PVALID,,LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8,DISALLOWED,,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA9,PVALID,,LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA,DISALLOWED,,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAB,PVALID,,LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC,DISALLOWED,,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAD,PVALID,,LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE,DISALLOWED,,LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EAF,PVALID,,LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EB0,DISALLOWED,,LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB1,PVALID,,LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB2,DISALLOWED,,LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB3,PVALID,,LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB4,DISALLOWED,,LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB5,PVALID,,LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB6,DISALLOWED,,LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EB7,PVALID,,LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB8,DISALLOWED,,LATIN CAPITAL LETTER E WITH DOT BELOW
+1EB9,PVALID,,LATIN SMALL LETTER E WITH DOT BELOW
+1EBA,DISALLOWED,,LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EBB,PVALID,,LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBC,DISALLOWED,,LATIN CAPITAL LETTER E WITH TILDE
+1EBD,PVALID,,LATIN SMALL LETTER E WITH TILDE
+1EBE,DISALLOWED,,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBF,PVALID,,LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC0,DISALLOWED,,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC1,PVALID,,LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2,DISALLOWED,,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC3,PVALID,,LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4,DISALLOWED,,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC5,PVALID,,LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6,DISALLOWED,,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC7,PVALID,,LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8,DISALLOWED,,LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1EC9,PVALID,,LATIN SMALL LETTER I WITH HOOK ABOVE
+1ECA,DISALLOWED,,LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECB,PVALID,,LATIN SMALL LETTER I WITH DOT BELOW
+1ECC,DISALLOWED,,LATIN CAPITAL LETTER O WITH DOT BELOW
+1ECD,PVALID,,LATIN SMALL LETTER O WITH DOT BELOW
+1ECE,DISALLOWED,,LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1ECF,PVALID,,LATIN SMALL LETTER O WITH HOOK ABOVE
+1ED0,DISALLOWED,,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED1,PVALID,,LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2,DISALLOWED,,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED3,PVALID,,LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4,DISALLOWED,,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED5,PVALID,,LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6,DISALLOWED,,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED7,PVALID,,LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8,DISALLOWED,,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED9,PVALID,,LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA,DISALLOWED,,LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDB,PVALID,,LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDC,DISALLOWED,,LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDD,PVALID,,LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDE,DISALLOWED,,LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EDF,PVALID,,LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EE0,DISALLOWED,,LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EE1,PVALID,,LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE2,DISALLOWED,,LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1EE3,PVALID,,LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE4,DISALLOWED,,LATIN CAPITAL LETTER U WITH DOT BELOW
+1EE5,PVALID,,LATIN SMALL LETTER U WITH DOT BELOW
+1EE6,DISALLOWED,,LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EE7,PVALID,,LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE8,DISALLOWED,,LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EE9,PVALID,,LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EEA,DISALLOWED,,LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEB,PVALID,,LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEC,DISALLOWED,,LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EED,PVALID,,LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEE,DISALLOWED,,LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EEF,PVALID,,LATIN SMALL LETTER U WITH HORN AND TILDE
+1EF0,DISALLOWED,,LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EF1,PVALID,,LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF2,DISALLOWED,,LATIN CAPITAL LETTER Y WITH GRAVE
+1EF3,PVALID,,LATIN SMALL LETTER Y WITH GRAVE
+1EF4,DISALLOWED,,LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EF5,PVALID,,LATIN SMALL LETTER Y WITH DOT BELOW
+1EF6,DISALLOWED,,LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF7,PVALID,,LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF8,DISALLOWED,,LATIN CAPITAL LETTER Y WITH TILDE
+1EF9,PVALID,,LATIN SMALL LETTER Y WITH TILDE
+1EFA,DISALLOWED,,LATIN CAPITAL LETTER MIDDLE-WELSH LL
+1EFB,PVALID,,LATIN SMALL LETTER MIDDLE-WELSH LL
+1EFC,DISALLOWED,,LATIN CAPITAL LETTER MIDDLE-WELSH V
+1EFD,PVALID,,LATIN SMALL LETTER MIDDLE-WELSH V
+1EFE,DISALLOWED,,LATIN CAPITAL LETTER Y WITH LOOP
+1EFF-1F07,PVALID,,LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F08-1F0F,DISALLOWED,,GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F10-1F15,PVALID,,GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F16-1F17,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F18-1F1D,DISALLOWED,,GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F1E-1F1F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F20-1F27,PVALID,,GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F28-1F2F,DISALLOWED,,GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F30-1F37,PVALID,,GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F38-1F3F,DISALLOWED,,GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F40-1F45,PVALID,,GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F46-1F47,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F48-1F4D,DISALLOWED,,GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F4E-1F4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F50-1F57,PVALID,,GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F58,UNASSIGNED,,<RESERVED>
+1F59,DISALLOWED,,GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5A,UNASSIGNED,,<RESERVED>
+1F5B,DISALLOWED,,GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5C,UNASSIGNED,,<RESERVED>
+1F5D,DISALLOWED,,GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5E,UNASSIGNED,,<RESERVED>
+1F5F,DISALLOWED,,GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F60-1F67,PVALID,,GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F68-1F6F,DISALLOWED,,GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F70,PVALID,,GREEK SMALL LETTER ALPHA WITH VARIA
+1F71,DISALLOWED,,GREEK SMALL LETTER ALPHA WITH OXIA
+1F72,PVALID,,GREEK SMALL LETTER EPSILON WITH VARIA
+1F73,DISALLOWED,,GREEK SMALL LETTER EPSILON WITH OXIA
+1F74,PVALID,,GREEK SMALL LETTER ETA WITH VARIA
+1F75,DISALLOWED,,GREEK SMALL LETTER ETA WITH OXIA
+1F76,PVALID,,GREEK SMALL LETTER IOTA WITH VARIA
+1F77,DISALLOWED,,GREEK SMALL LETTER IOTA WITH OXIA
+1F78,PVALID,,GREEK SMALL LETTER OMICRON WITH VARIA
+1F79,DISALLOWED,,GREEK SMALL LETTER OMICRON WITH OXIA
+1F7A,PVALID,,GREEK SMALL LETTER UPSILON WITH VARIA
+1F7B,DISALLOWED,,GREEK SMALL LETTER UPSILON WITH OXIA
+1F7C,PVALID,,GREEK SMALL LETTER OMEGA WITH VARIA
+1F7D,DISALLOWED,,GREEK SMALL LETTER OMEGA WITH OXIA
+1F7E-1F7F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F80-1FAF,DISALLOWED,,GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FB0-1FB1,PVALID,,GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH MACRON
+1FB2-1FB4,DISALLOWED,,GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB5,UNASSIGNED,,<RESERVED>
+1FB6,PVALID,,GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FB7-1FC4,DISALLOWED,,GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC5,UNASSIGNED,,<RESERVED>
+1FC6,PVALID,,GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FC7-1FCF,DISALLOWED,,GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK PSILI AND PERISPOMENI
+1FD0-1FD2,PVALID,,GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD3,DISALLOWED,,GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD4-1FD5,UNASSIGNED,,<RESERVED>..<RESERVED>
+1FD6-1FD7,PVALID,,GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FD8-1FDB,DISALLOWED,,GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDC,UNASSIGNED,,<RESERVED>
+1FDD-1FDF,DISALLOWED,,GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0-1FE2,PVALID,,GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE3,DISALLOWED,,GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE4-1FE7,PVALID,,GREEK SMALL LETTER RHO WITH PSILI..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE8-1FEF,DISALLOWED,,GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK VARIA
+1FF0-1FF1,UNASSIGNED,,<RESERVED>..<RESERVED>
+1FF2-1FF4,DISALLOWED,,GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF5,UNASSIGNED,,<RESERVED>
+1FF6,PVALID,,GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+1FF7-1FFE,DISALLOWED,,GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK DASIA
+1FFF,UNASSIGNED,,<RESERVED>
+2000-200B,DISALLOWED,,EN QUAD..ZERO WIDTH SPACE
+200C-200D,CONTEXTJ,,ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+200E-2064,DISALLOWED,,LEFT-TO-RIGHT MARK..INVISIBLE PLUS
+2065,UNASSIGNED,,<RESERVED>
+2066-2071,DISALLOWED,,LEFT-TO-RIGHT ISOLATE..SUPERSCRIPT LATIN SMALL LETTER I
+2072-2073,UNASSIGNED,,<RESERVED>..<RESERVED>
+2074-208E,DISALLOWED,,SUPERSCRIPT FOUR..SUBSCRIPT RIGHT PARENTHESIS
+208F,UNASSIGNED,,<RESERVED>
+2090-209C,DISALLOWED,,LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
+209D-209F,UNASSIGNED,,<RESERVED>..<RESERVED>
+20A0-20BF,DISALLOWED,,EURO-CURRENCY SIGN..BITCOIN SIGN
+20C0-20CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+20D0-20F0,DISALLOWED,,COMBINING LEFT HARPOON ABOVE..COMBINING ASTERISK ABOVE
+20F1-20FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+2100-214D,DISALLOWED,,ACCOUNT OF..AKTIESELSKAB
+214E,PVALID,,TURNED SMALL F
+214F-2183,DISALLOWED,,SYMBOL FOR SAMARITAN SOURCE..ROMAN NUMERAL REVERSED ONE HUNDRED
+2184,PVALID,,LATIN SMALL LETTER REVERSED C
+2185-218B,DISALLOWED,,ROMAN NUMERAL SIX LATE FORM..TURNED DIGIT THREE
+218C-218F,UNASSIGNED,,<RESERVED>..<RESERVED>
+2190-2426,DISALLOWED,,LEFTWARDS ARROW..SYMBOL FOR SUBSTITUTE FORM TWO
+2427-243F,UNASSIGNED,,<RESERVED>..<RESERVED>
+2440-244A,DISALLOWED,,OCR HOOK..OCR DOUBLE BACKSLASH
+244B-245F,UNASSIGNED,,<RESERVED>..<RESERVED>
+2460-2B73,DISALLOWED,,CIRCLED DIGIT ONE..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B74-2B75,UNASSIGNED,,<RESERVED>..<RESERVED>
+2B76-2B95,DISALLOWED,,NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B96-2B97,UNASSIGNED,,<RESERVED>..<RESERVED>
+2B98-2BC8,DISALLOWED,,THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BC9,UNASSIGNED,,<RESERVED>
+2BCA-2BFE,DISALLOWED,,TOP HALF BLACK CIRCLE..REVERSED RIGHT ANGLE
+2BFF,UNASSIGNED,,<RESERVED>
+2C00-2C2E,DISALLOWED,,GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C2F,UNASSIGNED,,<RESERVED>
+2C30-2C5E,PVALID,,GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C5F,UNASSIGNED,,<RESERVED>
+2C60,DISALLOWED,,LATIN CAPITAL LETTER L WITH DOUBLE BAR
+2C61,PVALID,,LATIN SMALL LETTER L WITH DOUBLE BAR
+2C62-2C64,DISALLOWED,,LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL
+2C65-2C66,PVALID,,LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE
+2C67,DISALLOWED,,LATIN CAPITAL LETTER H WITH DESCENDER
+2C68,PVALID,,LATIN SMALL LETTER H WITH DESCENDER
+2C69,DISALLOWED,,LATIN CAPITAL LETTER K WITH DESCENDER
+2C6A,PVALID,,LATIN SMALL LETTER K WITH DESCENDER
+2C6B,DISALLOWED,,LATIN CAPITAL LETTER Z WITH DESCENDER
+2C6C,PVALID,,LATIN SMALL LETTER Z WITH DESCENDER
+2C6D-2C70,DISALLOWED,,LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA
+2C71,PVALID,,LATIN SMALL LETTER V WITH RIGHT HOOK
+2C72,DISALLOWED,,LATIN CAPITAL LETTER W WITH HOOK
+2C73-2C74,PVALID,,LATIN SMALL LETTER W WITH HOOK..LATIN SMALL LETTER V WITH CURL
+2C75,DISALLOWED,,LATIN CAPITAL LETTER HALF H
+2C76-2C7B,PVALID,,LATIN SMALL LETTER HALF H..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C-2C80,DISALLOWED,,LATIN SUBSCRIPT SMALL LETTER J..COPTIC CAPITAL LETTER ALFA
+2C81,PVALID,,COPTIC SMALL LETTER ALFA
+2C82,DISALLOWED,,COPTIC CAPITAL LETTER VIDA
+2C83,PVALID,,COPTIC SMALL LETTER VIDA
+2C84,DISALLOWED,,COPTIC CAPITAL LETTER GAMMA
+2C85,PVALID,,COPTIC SMALL LETTER GAMMA
+2C86,DISALLOWED,,COPTIC CAPITAL LETTER DALDA
+2C87,PVALID,,COPTIC SMALL LETTER DALDA
+2C88,DISALLOWED,,COPTIC CAPITAL LETTER EIE
+2C89,PVALID,,COPTIC SMALL LETTER EIE
+2C8A,DISALLOWED,,COPTIC CAPITAL LETTER SOU
+2C8B,PVALID,,COPTIC SMALL LETTER SOU
+2C8C,DISALLOWED,,COPTIC CAPITAL LETTER ZATA
+2C8D,PVALID,,COPTIC SMALL LETTER ZATA
+2C8E,DISALLOWED,,COPTIC CAPITAL LETTER HATE
+2C8F,PVALID,,COPTIC SMALL LETTER HATE
+2C90,DISALLOWED,,COPTIC CAPITAL LETTER THETHE
+2C91,PVALID,,COPTIC SMALL LETTER THETHE
+2C92,DISALLOWED,,COPTIC CAPITAL LETTER IAUDA
+2C93,PVALID,,COPTIC SMALL LETTER IAUDA
+2C94,DISALLOWED,,COPTIC CAPITAL LETTER KAPA
+2C95,PVALID,,COPTIC SMALL LETTER KAPA
+2C96,DISALLOWED,,COPTIC CAPITAL LETTER LAULA
+2C97,PVALID,,COPTIC SMALL LETTER LAULA
+2C98,DISALLOWED,,COPTIC CAPITAL LETTER MI
+2C99,PVALID,,COPTIC SMALL LETTER MI
+2C9A,DISALLOWED,,COPTIC CAPITAL LETTER NI
+2C9B,PVALID,,COPTIC SMALL LETTER NI
+2C9C,DISALLOWED,,COPTIC CAPITAL LETTER KSI
+2C9D,PVALID,,COPTIC SMALL LETTER KSI
+2C9E,DISALLOWED,,COPTIC CAPITAL LETTER O
+2C9F,PVALID,,COPTIC SMALL LETTER O
+2CA0,DISALLOWED,,COPTIC CAPITAL LETTER PI
+2CA1,PVALID,,COPTIC SMALL LETTER PI
+2CA2,DISALLOWED,,COPTIC CAPITAL LETTER RO
+2CA3,PVALID,,COPTIC SMALL LETTER RO
+2CA4,DISALLOWED,,COPTIC CAPITAL LETTER SIMA
+2CA5,PVALID,,COPTIC SMALL LETTER SIMA
+2CA6,DISALLOWED,,COPTIC CAPITAL LETTER TAU
+2CA7,PVALID,,COPTIC SMALL LETTER TAU
+2CA8,DISALLOWED,,COPTIC CAPITAL LETTER UA
+2CA9,PVALID,,COPTIC SMALL LETTER UA
+2CAA,DISALLOWED,,COPTIC CAPITAL LETTER FI
+2CAB,PVALID,,COPTIC SMALL LETTER FI
+2CAC,DISALLOWED,,COPTIC CAPITAL LETTER KHI
+2CAD,PVALID,,COPTIC SMALL LETTER KHI
+2CAE,DISALLOWED,,COPTIC CAPITAL LETTER PSI
+2CAF,PVALID,,COPTIC SMALL LETTER PSI
+2CB0,DISALLOWED,,COPTIC CAPITAL LETTER OOU
+2CB1,PVALID,,COPTIC SMALL LETTER OOU
+2CB2,DISALLOWED,,COPTIC CAPITAL LETTER DIALECT-P ALEF
+2CB3,PVALID,,COPTIC SMALL LETTER DIALECT-P ALEF
+2CB4,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC AIN
+2CB5,PVALID,,COPTIC SMALL LETTER OLD COPTIC AIN
+2CB6,DISALLOWED,,COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+2CB7,PVALID,,COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
+2CB8,DISALLOWED,,COPTIC CAPITAL LETTER DIALECT-P KAPA
+2CB9,PVALID,,COPTIC SMALL LETTER DIALECT-P KAPA
+2CBA,DISALLOWED,,COPTIC CAPITAL LETTER DIALECT-P NI
+2CBB,PVALID,,COPTIC SMALL LETTER DIALECT-P NI
+2CBC,DISALLOWED,,COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+2CBD,PVALID,,COPTIC SMALL LETTER CRYPTOGRAMMIC NI
+2CBE,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC OOU
+2CBF,PVALID,,COPTIC SMALL LETTER OLD COPTIC OOU
+2CC0,DISALLOWED,,COPTIC CAPITAL LETTER SAMPI
+2CC1,PVALID,,COPTIC SMALL LETTER SAMPI
+2CC2,DISALLOWED,,COPTIC CAPITAL LETTER CROSSED SHEI
+2CC3,PVALID,,COPTIC SMALL LETTER CROSSED SHEI
+2CC4,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC SHEI
+2CC5,PVALID,,COPTIC SMALL LETTER OLD COPTIC SHEI
+2CC6,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC ESH
+2CC7,PVALID,,COPTIC SMALL LETTER OLD COPTIC ESH
+2CC8,DISALLOWED,,COPTIC CAPITAL LETTER AKHMIMIC KHEI
+2CC9,PVALID,,COPTIC SMALL LETTER AKHMIMIC KHEI
+2CCA,DISALLOWED,,COPTIC CAPITAL LETTER DIALECT-P HORI
+2CCB,PVALID,,COPTIC SMALL LETTER DIALECT-P HORI
+2CCC,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC HORI
+2CCD,PVALID,,COPTIC SMALL LETTER OLD COPTIC HORI
+2CCE,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC HA
+2CCF,PVALID,,COPTIC SMALL LETTER OLD COPTIC HA
+2CD0,DISALLOWED,,COPTIC CAPITAL LETTER L-SHAPED HA
+2CD1,PVALID,,COPTIC SMALL LETTER L-SHAPED HA
+2CD2,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC HEI
+2CD3,PVALID,,COPTIC SMALL LETTER OLD COPTIC HEI
+2CD4,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC HAT
+2CD5,PVALID,,COPTIC SMALL LETTER OLD COPTIC HAT
+2CD6,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+2CD7,PVALID,,COPTIC SMALL LETTER OLD COPTIC GANGIA
+2CD8,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC DJA
+2CD9,PVALID,,COPTIC SMALL LETTER OLD COPTIC DJA
+2CDA,DISALLOWED,,COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+2CDB,PVALID,,COPTIC SMALL LETTER OLD COPTIC SHIMA
+2CDC,DISALLOWED,,COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+2CDD,PVALID,,COPTIC SMALL LETTER OLD NUBIAN SHIMA
+2CDE,DISALLOWED,,COPTIC CAPITAL LETTER OLD NUBIAN NGI
+2CDF,PVALID,,COPTIC SMALL LETTER OLD NUBIAN NGI
+2CE0,DISALLOWED,,COPTIC CAPITAL LETTER OLD NUBIAN NYI
+2CE1,PVALID,,COPTIC SMALL LETTER OLD NUBIAN NYI
+2CE2,DISALLOWED,,COPTIC CAPITAL LETTER OLD NUBIAN WAU
+2CE3-2CE4,PVALID,,COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI
+2CE5-2CEB,DISALLOWED,,COPTIC SYMBOL MI RO..COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
+2CEC,PVALID,,COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
+2CED,DISALLOWED,,COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
+2CEE-2CF1,PVALID,,COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA..COPTIC COMBINING SPIRITUS LENIS
+2CF2,DISALLOWED,,COPTIC CAPITAL LETTER BOHAIRIC KHEI
+2CF3,PVALID,,COPTIC SMALL LETTER BOHAIRIC KHEI
+2CF4-2CF8,UNASSIGNED,,<RESERVED>..<RESERVED>
+2CF9-2CFF,DISALLOWED,,COPTIC OLD NUBIAN FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+2D00-2D25,PVALID,,GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D26,UNASSIGNED,,<RESERVED>
+2D27,PVALID,,GEORGIAN SMALL LETTER YN
+2D28-2D2C,UNASSIGNED,,<RESERVED>..<RESERVED>
+2D2D,PVALID,,GEORGIAN SMALL LETTER AEN
+2D2E-2D2F,UNASSIGNED,,<RESERVED>..<RESERVED>
+2D30-2D67,PVALID,,TIFINAGH LETTER YA..TIFINAGH LETTER YO
+2D68-2D6E,UNASSIGNED,,<RESERVED>..<RESERVED>
+2D6F-2D70,DISALLOWED,,TIFINAGH MODIFIER LETTER LABIALIZATION MARK..TIFINAGH SEPARATOR MARK
+2D71-2D7E,UNASSIGNED,,<RESERVED>..<RESERVED>
+2D7F-2D96,PVALID,,TIFINAGH CONSONANT JOINER..ETHIOPIC SYLLABLE GGWE
+2D97-2D9F,UNASSIGNED,,<RESERVED>..<RESERVED>
+2DA0-2DA6,PVALID,,ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA7,UNASSIGNED,,<RESERVED>
+2DA8-2DAE,PVALID,,ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DAF,UNASSIGNED,,<RESERVED>
+2DB0-2DB6,PVALID,,ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB7,UNASSIGNED,,<RESERVED>
+2DB8-2DBE,PVALID,,ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DBF,UNASSIGNED,,<RESERVED>
+2DC0-2DC6,PVALID,,ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC7,UNASSIGNED,,<RESERVED>
+2DC8-2DCE,PVALID,,ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DCF,UNASSIGNED,,<RESERVED>
+2DD0-2DD6,PVALID,,ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD7,UNASSIGNED,,<RESERVED>
+2DD8-2DDE,PVALID,,ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2DDF,UNASSIGNED,,<RESERVED>
+2DE0-2DFF,PVALID,,COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+2E00-2E2E,DISALLOWED,,RIGHT ANGLE SUBSTITUTION MARKER..REVERSED QUESTION MARK
+2E2F,PVALID,,VERTICAL TILDE
+2E30-2E4E,DISALLOWED,,RING POINT..PUNCTUS ELEVATUS MARK
+2E4F-2E7F,UNASSIGNED,,<RESERVED>..<RESERVED>
+2E80-2E99,DISALLOWED,,CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9A,UNASSIGNED,,<RESERVED>
+2E9B-2EF3,DISALLOWED,,CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2EF4-2EFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+2F00-2FD5,DISALLOWED,,KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2FD6-2FEF,UNASSIGNED,,<RESERVED>..<RESERVED>
+2FF0-2FFB,DISALLOWED,,IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+2FFC-2FFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+3000-3004,DISALLOWED,,IDEOGRAPHIC SPACE..JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005-3007,PVALID,,IDEOGRAPHIC ITERATION MARK..IDEOGRAPHIC NUMBER ZERO
+3008-3029,DISALLOWED,,LEFT ANGLE BRACKET..HANGZHOU NUMERAL NINE
+302A-302D,PVALID,,IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E-303B,DISALLOWED,,HANGUL SINGLE DOT TONE MARK..VERTICAL IDEOGRAPHIC ITERATION MARK
+303C,PVALID,,MASU MARK
+303D-303F,DISALLOWED,,PART ALTERNATION MARK..IDEOGRAPHIC HALF FILL SPACE
+3040,UNASSIGNED,,<RESERVED>
+3041-3096,PVALID,,HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
+3097-3098,UNASSIGNED,,<RESERVED>..<RESERVED>
+3099-309A,PVALID,,COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B-309C,DISALLOWED,,KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D-309E,PVALID,,HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F-30A0,DISALLOWED,,HIRAGANA DIGRAPH YORI..KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1-30FA,PVALID,,KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+30FB,CONTEXTO,,KATAKANA MIDDLE DOT
+30FC-30FE,PVALID,,KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
+30FF,DISALLOWED,,KATAKANA DIGRAPH KOTO
+3100-3104,UNASSIGNED,,<RESERVED>..<RESERVED>
+3105-312F,PVALID,,BOPOMOFO LETTER B..BOPOMOFO LETTER NN
+3130,UNASSIGNED,,<RESERVED>
+3131-318E,DISALLOWED,,HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+318F,UNASSIGNED,,<RESERVED>
+3190-319F,DISALLOWED,,IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31A0-31BA,PVALID,,BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY
+31BB-31BF,UNASSIGNED,,<RESERVED>..<RESERVED>
+31C0-31E3,DISALLOWED,,CJK STROKE T..CJK STROKE Q
+31E4-31EF,UNASSIGNED,,<RESERVED>..<RESERVED>
+31F0-31FF,PVALID,,KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3200-321E,DISALLOWED,,PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+321F,UNASSIGNED,,<RESERVED>
+3220-32FE,DISALLOWED,,PARENTHESIZED IDEOGRAPH ONE..CIRCLED KATAKANA WO
+32FF,UNASSIGNED,,<RESERVED>
+3300-33FF,DISALLOWED,,SQUARE APAATO..SQUARE GAL
+3400-4DB5,PVALID,,"<CJK IDEOGRAPH EXTENSION A, FIRST>..<CJK IDEOGRAPH EXTENSION A, LAST>"
+4DB6-4DBF,UNASSIGNED,,<RESERVED>..<RESERVED>
+4DC0-4DFF,DISALLOWED,,HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00-9FEF,PVALID,,"<CJK IDEOGRAPH, FIRST>..<CJK IDEOGRAPH, LAST>"
+9FF0-9FFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+A000-A48C,PVALID,,YI SYLLABLE IT..YI SYLLABLE YYR
+A48D-A48F,UNASSIGNED,,<RESERVED>..<RESERVED>
+A490-A4C6,DISALLOWED,,YI RADICAL QOT..YI RADICAL KE
+A4C7-A4CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+A4D0-A4FD,PVALID,,LISU LETTER BA..LISU LETTER TONE MYA JEU
+A4FE-A4FF,DISALLOWED,,LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
+A500-A60C,PVALID,,VAI SYLLABLE EE..VAI SYLLABLE LENGTHENER
+A60D-A60F,DISALLOWED,,VAI COMMA..VAI QUESTION MARK
+A610-A62B,PVALID,,VAI SYLLABLE NDOLE FA..VAI SYLLABLE NDOLE DO
+A62C-A63F,UNASSIGNED,,<RESERVED>..<RESERVED>
+A640,DISALLOWED,,CYRILLIC CAPITAL LETTER ZEMLYA
+A641,PVALID,,CYRILLIC SMALL LETTER ZEMLYA
+A642,DISALLOWED,,CYRILLIC CAPITAL LETTER DZELO
+A643,PVALID,,CYRILLIC SMALL LETTER DZELO
+A644,DISALLOWED,,CYRILLIC CAPITAL LETTER REVERSED DZE
+A645,PVALID,,CYRILLIC SMALL LETTER REVERSED DZE
+A646,DISALLOWED,,CYRILLIC CAPITAL LETTER IOTA
+A647,PVALID,,CYRILLIC SMALL LETTER IOTA
+A648,DISALLOWED,,CYRILLIC CAPITAL LETTER DJERV
+A649,PVALID,,CYRILLIC SMALL LETTER DJERV
+A64A,DISALLOWED,,CYRILLIC CAPITAL LETTER MONOGRAPH UK
+A64B,PVALID,,CYRILLIC SMALL LETTER MONOGRAPH UK
+A64C,DISALLOWED,,CYRILLIC CAPITAL LETTER BROAD OMEGA
+A64D,PVALID,,CYRILLIC SMALL LETTER BROAD OMEGA
+A64E,DISALLOWED,,CYRILLIC CAPITAL LETTER NEUTRAL YER
+A64F,PVALID,,CYRILLIC SMALL LETTER NEUTRAL YER
+A650,DISALLOWED,,CYRILLIC CAPITAL LETTER YERU WITH BACK YER
+A651,PVALID,,CYRILLIC SMALL LETTER YERU WITH BACK YER
+A652,DISALLOWED,,CYRILLIC CAPITAL LETTER IOTIFIED YAT
+A653,PVALID,,CYRILLIC SMALL LETTER IOTIFIED YAT
+A654,DISALLOWED,,CYRILLIC CAPITAL LETTER REVERSED YU
+A655,PVALID,,CYRILLIC SMALL LETTER REVERSED YU
+A656,DISALLOWED,,CYRILLIC CAPITAL LETTER IOTIFIED A
+A657,PVALID,,CYRILLIC SMALL LETTER IOTIFIED A
+A658,DISALLOWED,,CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
+A659,PVALID,,CYRILLIC SMALL LETTER CLOSED LITTLE YUS
+A65A,DISALLOWED,,CYRILLIC CAPITAL LETTER BLENDED YUS
+A65B,PVALID,,CYRILLIC SMALL LETTER BLENDED YUS
+A65C,DISALLOWED,,CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
+A65D,PVALID,,CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
+A65E,DISALLOWED,,CYRILLIC CAPITAL LETTER YN
+A65F,PVALID,,CYRILLIC SMALL LETTER YN
+A660,DISALLOWED,,CYRILLIC CAPITAL LETTER REVERSED TSE
+A661,PVALID,,CYRILLIC SMALL LETTER REVERSED TSE
+A662,DISALLOWED,,CYRILLIC CAPITAL LETTER SOFT DE
+A663,PVALID,,CYRILLIC SMALL LETTER SOFT DE
+A664,DISALLOWED,,CYRILLIC CAPITAL LETTER SOFT EL
+A665,PVALID,,CYRILLIC SMALL LETTER SOFT EL
+A666,DISALLOWED,,CYRILLIC CAPITAL LETTER SOFT EM
+A667,PVALID,,CYRILLIC SMALL LETTER SOFT EM
+A668,DISALLOWED,,CYRILLIC CAPITAL LETTER MONOCULAR O
+A669,PVALID,,CYRILLIC SMALL LETTER MONOCULAR O
+A66A,DISALLOWED,,CYRILLIC CAPITAL LETTER BINOCULAR O
+A66B,PVALID,,CYRILLIC SMALL LETTER BINOCULAR O
+A66C,DISALLOWED,,CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
+A66D-A66F,PVALID,,CYRILLIC SMALL LETTER DOUBLE MONOCULAR O..COMBINING CYRILLIC VZMET
+A670-A673,DISALLOWED,,COMBINING CYRILLIC TEN MILLIONS SIGN..SLAVONIC ASTERISK
+A674-A67D,PVALID,,COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+A67E,DISALLOWED,,CYRILLIC KAVYKA
+A67F,PVALID,,CYRILLIC PAYEROK
+A680,DISALLOWED,,CYRILLIC CAPITAL LETTER DWE
+A681,PVALID,,CYRILLIC SMALL LETTER DWE
+A682,DISALLOWED,,CYRILLIC CAPITAL LETTER DZWE
+A683,PVALID,,CYRILLIC SMALL LETTER DZWE
+A684,DISALLOWED,,CYRILLIC CAPITAL LETTER ZHWE
+A685,PVALID,,CYRILLIC SMALL LETTER ZHWE
+A686,DISALLOWED,,CYRILLIC CAPITAL LETTER CCHE
+A687,PVALID,,CYRILLIC SMALL LETTER CCHE
+A688,DISALLOWED,,CYRILLIC CAPITAL LETTER DZZE
+A689,PVALID,,CYRILLIC SMALL LETTER DZZE
+A68A,DISALLOWED,,CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
+A68B,PVALID,,CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
+A68C,DISALLOWED,,CYRILLIC CAPITAL LETTER TWE
+A68D,PVALID,,CYRILLIC SMALL LETTER TWE
+A68E,DISALLOWED,,CYRILLIC CAPITAL LETTER TSWE
+A68F,PVALID,,CYRILLIC SMALL LETTER TSWE
+A690,DISALLOWED,,CYRILLIC CAPITAL LETTER TSSE
+A691,PVALID,,CYRILLIC SMALL LETTER TSSE
+A692,DISALLOWED,,CYRILLIC CAPITAL LETTER TCHE
+A693,PVALID,,CYRILLIC SMALL LETTER TCHE
+A694,DISALLOWED,,CYRILLIC CAPITAL LETTER HWE
+A695,PVALID,,CYRILLIC SMALL LETTER HWE
+A696,DISALLOWED,,CYRILLIC CAPITAL LETTER SHWE
+A697,PVALID,,CYRILLIC SMALL LETTER SHWE
+A698,DISALLOWED,,CYRILLIC CAPITAL LETTER DOUBLE O
+A699,PVALID,,CYRILLIC SMALL LETTER DOUBLE O
+A69A,DISALLOWED,,CYRILLIC CAPITAL LETTER CROSSED O
+A69B,PVALID,,CYRILLIC SMALL LETTER CROSSED O
+A69C-A69D,DISALLOWED,,MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+A69E-A6E5,PVALID,,COMBINING CYRILLIC LETTER EF..BAMUM LETTER KI
+A6E6-A6EF,DISALLOWED,,BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A6F0-A6F1,PVALID,,BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A6F2-A6F7,DISALLOWED,,BAMUM NJAEMLI..BAMUM QUESTION MARK
+A6F8-A6FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+A700-A716,DISALLOWED,,MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717-A71F,PVALID,,MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720-A722,DISALLOWED,,MODIFIER LETTER STRESS AND HIGH TONE..LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
+A723,PVALID,,LATIN SMALL LETTER EGYPTOLOGICAL ALEF
+A724,DISALLOWED,,LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
+A725,PVALID,,LATIN SMALL LETTER EGYPTOLOGICAL AIN
+A726,DISALLOWED,,LATIN CAPITAL LETTER HENG
+A727,PVALID,,LATIN SMALL LETTER HENG
+A728,DISALLOWED,,LATIN CAPITAL LETTER TZ
+A729,PVALID,,LATIN SMALL LETTER TZ
+A72A,DISALLOWED,,LATIN CAPITAL LETTER TRESILLO
+A72B,PVALID,,LATIN SMALL LETTER TRESILLO
+A72C,DISALLOWED,,LATIN CAPITAL LETTER CUATRILLO
+A72D,PVALID,,LATIN SMALL LETTER CUATRILLO
+A72E,DISALLOWED,,LATIN CAPITAL LETTER CUATRILLO WITH COMMA
+A72F-A731,PVALID,,LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S
+A732,DISALLOWED,,LATIN CAPITAL LETTER AA
+A733,PVALID,,LATIN SMALL LETTER AA
+A734,DISALLOWED,,LATIN CAPITAL LETTER AO
+A735,PVALID,,LATIN SMALL LETTER AO
+A736,DISALLOWED,,LATIN CAPITAL LETTER AU
+A737,PVALID,,LATIN SMALL LETTER AU
+A738,DISALLOWED,,LATIN CAPITAL LETTER AV
+A739,PVALID,,LATIN SMALL LETTER AV
+A73A,DISALLOWED,,LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
+A73B,PVALID,,LATIN SMALL LETTER AV WITH HORIZONTAL BAR
+A73C,DISALLOWED,,LATIN CAPITAL LETTER AY
+A73D,PVALID,,LATIN SMALL LETTER AY
+A73E,DISALLOWED,,LATIN CAPITAL LETTER REVERSED C WITH DOT
+A73F,PVALID,,LATIN SMALL LETTER REVERSED C WITH DOT
+A740,DISALLOWED,,LATIN CAPITAL LETTER K WITH STROKE
+A741,PVALID,,LATIN SMALL LETTER K WITH STROKE
+A742,DISALLOWED,,LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
+A743,PVALID,,LATIN SMALL LETTER K WITH DIAGONAL STROKE
+A744,DISALLOWED,,LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
+A745,PVALID,,LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
+A746,DISALLOWED,,LATIN CAPITAL LETTER BROKEN L
+A747,PVALID,,LATIN SMALL LETTER BROKEN L
+A748,DISALLOWED,,LATIN CAPITAL LETTER L WITH HIGH STROKE
+A749,PVALID,,LATIN SMALL LETTER L WITH HIGH STROKE
+A74A,DISALLOWED,,LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
+A74B,PVALID,,LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
+A74C,DISALLOWED,,LATIN CAPITAL LETTER O WITH LOOP
+A74D,PVALID,,LATIN SMALL LETTER O WITH LOOP
+A74E,DISALLOWED,,LATIN CAPITAL LETTER OO
+A74F,PVALID,,LATIN SMALL LETTER OO
+A750,DISALLOWED,,LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
+A751,PVALID,,LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
+A752,DISALLOWED,,LATIN CAPITAL LETTER P WITH FLOURISH
+A753,PVALID,,LATIN SMALL LETTER P WITH FLOURISH
+A754,DISALLOWED,,LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
+A755,PVALID,,LATIN SMALL LETTER P WITH SQUIRREL TAIL
+A756,DISALLOWED,,LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
+A757,PVALID,,LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
+A758,DISALLOWED,,LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
+A759,PVALID,,LATIN SMALL LETTER Q WITH DIAGONAL STROKE
+A75A,DISALLOWED,,LATIN CAPITAL LETTER R ROTUNDA
+A75B,PVALID,,LATIN SMALL LETTER R ROTUNDA
+A75C,DISALLOWED,,LATIN CAPITAL LETTER RUM ROTUNDA
+A75D,PVALID,,LATIN SMALL LETTER RUM ROTUNDA
+A75E,DISALLOWED,,LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
+A75F,PVALID,,LATIN SMALL LETTER V WITH DIAGONAL STROKE
+A760,DISALLOWED,,LATIN CAPITAL LETTER VY
+A761,PVALID,,LATIN SMALL LETTER VY
+A762,DISALLOWED,,LATIN CAPITAL LETTER VISIGOTHIC Z
+A763,PVALID,,LATIN SMALL LETTER VISIGOTHIC Z
+A764,DISALLOWED,,LATIN CAPITAL LETTER THORN WITH STROKE
+A765,PVALID,,LATIN SMALL LETTER THORN WITH STROKE
+A766,DISALLOWED,,LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
+A767,PVALID,,LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
+A768,DISALLOWED,,LATIN CAPITAL LETTER VEND
+A769,PVALID,,LATIN SMALL LETTER VEND
+A76A,DISALLOWED,,LATIN CAPITAL LETTER ET
+A76B,PVALID,,LATIN SMALL LETTER ET
+A76C,DISALLOWED,,LATIN CAPITAL LETTER IS
+A76D,PVALID,,LATIN SMALL LETTER IS
+A76E,DISALLOWED,,LATIN CAPITAL LETTER CON
+A76F,PVALID,,LATIN SMALL LETTER CON
+A770,DISALLOWED,,MODIFIER LETTER US
+A771-A778,PVALID,,LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM
+A779,DISALLOWED,,LATIN CAPITAL LETTER INSULAR D
+A77A,PVALID,,LATIN SMALL LETTER INSULAR D
+A77B,DISALLOWED,,LATIN CAPITAL LETTER INSULAR F
+A77C,PVALID,,LATIN SMALL LETTER INSULAR F
+A77D-A77E,DISALLOWED,,LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G
+A77F,PVALID,,LATIN SMALL LETTER TURNED INSULAR G
+A780,DISALLOWED,,LATIN CAPITAL LETTER TURNED L
+A781,PVALID,,LATIN SMALL LETTER TURNED L
+A782,DISALLOWED,,LATIN CAPITAL LETTER INSULAR R
+A783,PVALID,,LATIN SMALL LETTER INSULAR R
+A784,DISALLOWED,,LATIN CAPITAL LETTER INSULAR S
+A785,PVALID,,LATIN SMALL LETTER INSULAR S
+A786,DISALLOWED,,LATIN CAPITAL LETTER INSULAR T
+A787-A788,PVALID,,LATIN SMALL LETTER INSULAR T..MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789-A78B,DISALLOWED,,MODIFIER LETTER COLON..LATIN CAPITAL LETTER SALTILLO
+A78C,PVALID,,LATIN SMALL LETTER SALTILLO
+A78D,DISALLOWED,,LATIN CAPITAL LETTER TURNED H
+A78E-A78F,PVALID,,LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT..LATIN LETTER SINOLOGICAL DOT
+A790,DISALLOWED,,LATIN CAPITAL LETTER N WITH DESCENDER
+A791,PVALID,,LATIN SMALL LETTER N WITH DESCENDER
+A792,DISALLOWED,,LATIN CAPITAL LETTER C WITH BAR
+A793-A795,PVALID,,LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER H WITH PALATAL HOOK
+A796,DISALLOWED,,LATIN CAPITAL LETTER B WITH FLOURISH
+A797,PVALID,,LATIN SMALL LETTER B WITH FLOURISH
+A798,DISALLOWED,,LATIN CAPITAL LETTER F WITH STROKE
+A799,PVALID,,LATIN SMALL LETTER F WITH STROKE
+A79A,DISALLOWED,,LATIN CAPITAL LETTER VOLAPUK AE
+A79B,PVALID,,LATIN SMALL LETTER VOLAPUK AE
+A79C,DISALLOWED,,LATIN CAPITAL LETTER VOLAPUK OE
+A79D,PVALID,,LATIN SMALL LETTER VOLAPUK OE
+A79E,DISALLOWED,,LATIN CAPITAL LETTER VOLAPUK UE
+A79F,PVALID,,LATIN SMALL LETTER VOLAPUK UE
+A7A0,DISALLOWED,,LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
+A7A1,PVALID,,LATIN SMALL LETTER G WITH OBLIQUE STROKE
+A7A2,DISALLOWED,,LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
+A7A3,PVALID,,LATIN SMALL LETTER K WITH OBLIQUE STROKE
+A7A4,DISALLOWED,,LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
+A7A5,PVALID,,LATIN SMALL LETTER N WITH OBLIQUE STROKE
+A7A6,DISALLOWED,,LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
+A7A7,PVALID,,LATIN SMALL LETTER R WITH OBLIQUE STROKE
+A7A8,DISALLOWED,,LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
+A7A9,PVALID,,LATIN SMALL LETTER S WITH OBLIQUE STROKE
+A7AA-A7AE,DISALLOWED,,LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER SMALL CAPITAL I
+A7AF,PVALID,,LATIN LETTER SMALL CAPITAL Q
+A7B0-A7B4,DISALLOWED,,LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA
+A7B5,PVALID,,LATIN SMALL LETTER BETA
+A7B6,DISALLOWED,,LATIN CAPITAL LETTER OMEGA
+A7B7,PVALID,,LATIN SMALL LETTER OMEGA
+A7B8,DISALLOWED,,LATIN CAPITAL LETTER U WITH STROKE
+A7B9,PVALID,,LATIN SMALL LETTER U WITH STROKE
+A7BA-A7F6,UNASSIGNED,,<RESERVED>..<RESERVED>
+A7F7,PVALID,,LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A7F8-A7F9,DISALLOWED,,MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+A7FA-A827,PVALID,,LATIN LETTER SMALL CAPITAL TURNED M..SYLOTI NAGRI VOWEL SIGN OO
+A828-A82B,DISALLOWED,,SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A82C-A82F,UNASSIGNED,,<RESERVED>..<RESERVED>
+A830-A839,DISALLOWED,,NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC QUANTITY MARK
+A83A-A83F,UNASSIGNED,,<RESERVED>..<RESERVED>
+A840-A873,PVALID,,PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874-A877,DISALLOWED,,PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+A878-A87F,UNASSIGNED,,<RESERVED>..<RESERVED>
+A880-A8C5,PVALID,,SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN CANDRABINDU
+A8C6-A8CD,UNASSIGNED,,<RESERVED>..<RESERVED>
+A8CE-A8CF,DISALLOWED,,SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0-A8D9,PVALID,,SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A8DA-A8DF,UNASSIGNED,,<RESERVED>..<RESERVED>
+A8E0-A8F7,PVALID,,COMBINING DEVANAGARI DIGIT ZERO..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8-A8FA,DISALLOWED,,DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
+A8FB,PVALID,,DEVANAGARI HEADSTROKE
+A8FC,DISALLOWED,,DEVANAGARI SIGN SIDDHAM
+A8FD-A92D,PVALID,,DEVANAGARI JAIN OM..KAYAH LI TONE CALYA PLOPHU
+A92E-A92F,DISALLOWED,,KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A930-A953,PVALID,,REJANG LETTER KA..REJANG VIRAMA
+A954-A95E,UNASSIGNED,,<RESERVED>..<RESERVED>
+A95F-A97C,DISALLOWED,,REJANG SECTION MARK..HANGUL CHOSEONG SSANGYEORINHIEUH
+A97D-A97F,UNASSIGNED,,<RESERVED>..<RESERVED>
+A980-A9C0,PVALID,,JAVANESE SIGN PANYANGGA..JAVANESE PANGKON
+A9C1-A9CD,DISALLOWED,,JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
+A9CE,UNASSIGNED,,<RESERVED>
+A9CF-A9D9,PVALID,,JAVANESE PANGRANGKEP..JAVANESE DIGIT NINE
+A9DA-A9DD,UNASSIGNED,,<RESERVED>..<RESERVED>
+A9DE-A9DF,DISALLOWED,,JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0-A9FE,PVALID,,MYANMAR LETTER SHAN GHA..MYANMAR LETTER TAI LAING BHA
+A9FF,UNASSIGNED,,<RESERVED>
+AA00-AA36,PVALID,,CHAM LETTER A..CHAM CONSONANT SIGN WA
+AA37-AA3F,UNASSIGNED,,<RESERVED>..<RESERVED>
+AA40-AA4D,PVALID,,CHAM LETTER FINAL K..CHAM CONSONANT SIGN FINAL H
+AA4E-AA4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+AA50-AA59,PVALID,,CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5A-AA5B,UNASSIGNED,,<RESERVED>..<RESERVED>
+AA5C-AA5F,DISALLOWED,,CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+AA60-AA76,PVALID,,MYANMAR LETTER KHAMTI GA..MYANMAR LOGOGRAM KHAMTI HM
+AA77-AA79,DISALLOWED,,MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+AA7A-AAC2,PVALID,,MYANMAR LETTER AITON RA..TAI VIET TONE MAI SONG
+AAC3-AADA,UNASSIGNED,,<RESERVED>..<RESERVED>
+AADB-AADD,PVALID,,TAI VIET SYMBOL KON..TAI VIET SYMBOL SAM
+AADE-AADF,DISALLOWED,,TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
+AAE0-AAEF,PVALID,,MEETEI MAYEK LETTER E..MEETEI MAYEK VOWEL SIGN AAU
+AAF0-AAF1,DISALLOWED,,MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2-AAF6,PVALID,,MEETEI MAYEK ANJI..MEETEI MAYEK VIRAMA
+AAF7-AB00,UNASSIGNED,,<RESERVED>..<RESERVED>
+AB01-AB06,PVALID,,ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+AB07-AB08,UNASSIGNED,,<RESERVED>..<RESERVED>
+AB09-AB0E,PVALID,,ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+AB0F-AB10,UNASSIGNED,,<RESERVED>..<RESERVED>
+AB11-AB16,PVALID,,ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+AB17-AB1F,UNASSIGNED,,<RESERVED>..<RESERVED>
+AB20-AB26,PVALID,,ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+AB27,UNASSIGNED,,<RESERVED>
+AB28-AB2E,PVALID,,ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB2F,UNASSIGNED,,<RESERVED>
+AB30-AB5A,PVALID,,LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B-AB5F,DISALLOWED,,MODIFIER BREVE WITH INVERTED BREVE..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB60-AB65,PVALID,,LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB66-AB6F,UNASSIGNED,,<RESERVED>..<RESERVED>
+AB70-ABBF,DISALLOWED,,CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
+ABC0-ABEA,PVALID,,MEETEI MAYEK LETTER KOK..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB,DISALLOWED,,MEETEI MAYEK CHEIKHEI
+ABEC-ABED,PVALID,,MEETEI MAYEK LUM IYEK..MEETEI MAYEK APUN IYEK
+ABEE-ABEF,UNASSIGNED,,<RESERVED>..<RESERVED>
+ABF0-ABF9,PVALID,,MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+ABFA-ABFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+AC00-D7A3,PVALID,,"<HANGUL SYLLABLE, FIRST>..<HANGUL SYLLABLE, LAST>"
+D7A4-D7AF,UNASSIGNED,,<RESERVED>..<RESERVED>
+D7B0-D7C6,DISALLOWED,,HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7C7-D7CA,UNASSIGNED,,<RESERVED>..<RESERVED>
+D7CB-D7FB,DISALLOWED,,HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+D7FC-D7FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+D800-FA0D,DISALLOWED,,"<NON PRIVATE USE HIGH SURROGATE, FIRST>..CJK COMPATIBILITY IDEOGRAPH-FA0D"
+FA0E-FA0F,PVALID,,CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
+FA10,DISALLOWED,,CJK COMPATIBILITY IDEOGRAPH-FA10
+FA11,PVALID,,CJK COMPATIBILITY IDEOGRAPH-FA11
+FA12,DISALLOWED,,CJK COMPATIBILITY IDEOGRAPH-FA12
+FA13-FA14,PVALID,,CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
+FA15-FA1E,DISALLOWED,,CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA1F,PVALID,,CJK COMPATIBILITY IDEOGRAPH-FA1F
+FA20,DISALLOWED,,CJK COMPATIBILITY IDEOGRAPH-FA20
+FA21,PVALID,,CJK COMPATIBILITY IDEOGRAPH-FA21
+FA22,DISALLOWED,,CJK COMPATIBILITY IDEOGRAPH-FA22
+FA23-FA24,PVALID,,CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
+FA25-FA26,DISALLOWED,,CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26
+FA27-FA29,PVALID,,CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
+FA2A-FA6D,DISALLOWED,,CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA6E-FA6F,UNASSIGNED,,<RESERVED>..<RESERVED>
+FA70-FAD9,DISALLOWED,,CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FADA-FAFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+FB00-FB06,DISALLOWED,,LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB07-FB12,UNASSIGNED,,<RESERVED>..<RESERVED>
+FB13-FB17,DISALLOWED,,ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB18-FB1C,UNASSIGNED,,<RESERVED>..<RESERVED>
+FB1D,DISALLOWED,,HEBREW LETTER YOD WITH HIRIQ
+FB1E,PVALID,,HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F-FB36,DISALLOWED,,HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER ZAYIN WITH DAGESH
+FB37,UNASSIGNED,,<RESERVED>
+FB38-FB3C,DISALLOWED,,HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3D,UNASSIGNED,,<RESERVED>
+FB3E,DISALLOWED,,HEBREW LETTER MEM WITH DAGESH
+FB3F,UNASSIGNED,,<RESERVED>
+FB40-FB41,DISALLOWED,,HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB42,UNASSIGNED,,<RESERVED>
+FB43-FB44,DISALLOWED,,HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB45,UNASSIGNED,,<RESERVED>
+FB46-FBC1,DISALLOWED,,HEBREW LETTER TSADI WITH DAGESH..ARABIC SYMBOL SMALL TAH BELOW
+FBC2-FBD2,UNASSIGNED,,<RESERVED>..<RESERVED>
+FBD3-FD3F,DISALLOWED,,ARABIC LETTER NG ISOLATED FORM..ORNATE RIGHT PARENTHESIS
+FD40-FD4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+FD50-FD8F,DISALLOWED,,ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD90-FD91,UNASSIGNED,,<RESERVED>..<RESERVED>
+FD92-FDC7,DISALLOWED,,ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDC8-FDCF,UNASSIGNED,,<RESERVED>..<RESERVED>
+FDD0-FDFD,DISALLOWED,,<NOT A CHARACTER>..ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FDFE-FDFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+FE00-FE19,DISALLOWED,,VARIATION SELECTOR-1..PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE1A-FE1F,UNASSIGNED,,<RESERVED>..<RESERVED>
+FE20-FE2F,PVALID,,COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+FE30-FE52,DISALLOWED,,PRESENTATION FORM FOR VERTICAL TWO DOT LEADER..SMALL FULL STOP
+FE53,UNASSIGNED,,<RESERVED>
+FE54-FE66,DISALLOWED,,SMALL SEMICOLON..SMALL EQUALS SIGN
+FE67,UNASSIGNED,,<RESERVED>
+FE68-FE6B,DISALLOWED,,SMALL REVERSE SOLIDUS..SMALL COMMERCIAL AT
+FE6C-FE6F,UNASSIGNED,,<RESERVED>..<RESERVED>
+FE70-FE72,DISALLOWED,,ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM
+FE73,PVALID,,ARABIC TAIL FRAGMENT
+FE74,DISALLOWED,,ARABIC KASRATAN ISOLATED FORM
+FE75,UNASSIGNED,,<RESERVED>
+FE76-FEFC,DISALLOWED,,ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFD-FEFE,UNASSIGNED,,<RESERVED>..<RESERVED>
+FEFF,DISALLOWED,,ZERO WIDTH NO-BREAK SPACE
+FF00,UNASSIGNED,,<RESERVED>
+FF01-FFBE,DISALLOWED,,FULLWIDTH EXCLAMATION MARK..HALFWIDTH HANGUL LETTER HIEUH
+FFBF-FFC1,UNASSIGNED,,<RESERVED>..<RESERVED>
+FFC2-FFC7,DISALLOWED,,HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFC8-FFC9,UNASSIGNED,,<RESERVED>..<RESERVED>
+FFCA-FFCF,DISALLOWED,,HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD0-FFD1,UNASSIGNED,,<RESERVED>..<RESERVED>
+FFD2-FFD7,DISALLOWED,,HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFD8-FFD9,UNASSIGNED,,<RESERVED>..<RESERVED>
+FFDA-FFDC,DISALLOWED,,HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFDD-FFDF,UNASSIGNED,,<RESERVED>..<RESERVED>
+FFE0-FFE6,DISALLOWED,,FULLWIDTH CENT SIGN..FULLWIDTH WON SIGN
+FFE7,UNASSIGNED,,<RESERVED>
+FFE8-FFEE,DISALLOWED,,HALFWIDTH FORMS LIGHT VERTICAL..HALFWIDTH WHITE CIRCLE
+FFEF-FFF8,UNASSIGNED,,<RESERVED>..<RESERVED>
+FFF9-FFFF,DISALLOWED,,INTERLINEAR ANNOTATION ANCHOR..<NOT A CHARACTER>
+10000-1000B,PVALID,,LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000C,UNASSIGNED,,<RESERVED>
+1000D-10026,PVALID,,LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10027,UNASSIGNED,,<RESERVED>
+10028-1003A,PVALID,,LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003B,UNASSIGNED,,<RESERVED>
+1003C-1003D,PVALID,,LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003E,UNASSIGNED,,<RESERVED>
+1003F-1004D,PVALID,,LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+1004E-1004F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10050-1005D,PVALID,,LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+1005E-1007F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10080-100FA,PVALID,,LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+100FB-100FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10100-10102,DISALLOWED,,AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+10103-10106,UNASSIGNED,,<RESERVED>..<RESERVED>
+10107-10133,DISALLOWED,,AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10134-10136,UNASSIGNED,,<RESERVED>..<RESERVED>
+10137-1018E,DISALLOWED,,AEGEAN WEIGHT BASE UNIT..NOMISMA SIGN
+1018F,UNASSIGNED,,<RESERVED>
+10190-1019B,DISALLOWED,,ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+1019C-1019F,UNASSIGNED,,<RESERVED>..<RESERVED>
+101A0,DISALLOWED,,GREEK SYMBOL TAU RHO
+101A1-101CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+101D0-101FC,DISALLOWED,,PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+101FD,PVALID,,PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+101FE-1027F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10280-1029C,PVALID,,LYCIAN LETTER A..LYCIAN LETTER X
+1029D-1029F,UNASSIGNED,,<RESERVED>..<RESERVED>
+102A0-102D0,PVALID,,CARIAN LETTER A..CARIAN LETTER UUU3
+102D1-102DF,UNASSIGNED,,<RESERVED>..<RESERVED>
+102E0,PVALID,,COPTIC EPACT THOUSANDS MARK
+102E1-102FB,DISALLOWED,,COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+102FC-102FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10300-1031F,PVALID,,OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
+10320-10323,DISALLOWED,,OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10324-1032C,UNASSIGNED,,<RESERVED>..<RESERVED>
+1032D-10340,PVALID,,OLD ITALIC LETTER YE..GOTHIC LETTER PAIRTHRA
+10341,DISALLOWED,,GOTHIC LETTER NINETY
+10342-10349,PVALID,,GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A,DISALLOWED,,GOTHIC LETTER NINE HUNDRED
+1034B-1034F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10350-1037A,PVALID,,OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+1037B-1037F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10380-1039D,PVALID,,UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039E,UNASSIGNED,,<RESERVED>
+1039F,DISALLOWED,,UGARITIC WORD DIVIDER
+103A0-103C3,PVALID,,OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C4-103C7,UNASSIGNED,,<RESERVED>..<RESERVED>
+103C8-103CF,PVALID,,OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0-103D5,DISALLOWED,,OLD PERSIAN WORD DIVIDER..OLD PERSIAN NUMBER HUNDRED
+103D6-103FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10400-10427,DISALLOWED,,DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+10428-1049D,PVALID,,DESERET SMALL LETTER LONG I..OSMANYA LETTER OO
+1049E-1049F,UNASSIGNED,,<RESERVED>..<RESERVED>
+104A0-104A9,PVALID,,OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+104AA-104AF,UNASSIGNED,,<RESERVED>..<RESERVED>
+104B0-104D3,DISALLOWED,,OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
+104D4-104D7,UNASSIGNED,,<RESERVED>..<RESERVED>
+104D8-104FB,PVALID,,OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
+104FC-104FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10500-10527,PVALID,,ELBASAN LETTER A..ELBASAN LETTER KHE
+10528-1052F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10530-10563,PVALID,,CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10564-1056E,UNASSIGNED,,<RESERVED>..<RESERVED>
+1056F,DISALLOWED,,CAUCASIAN ALBANIAN CITATION MARK
+10570-105FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10600-10736,PVALID,,LINEAR A SIGN AB001..LINEAR A SIGN A664
+10737-1073F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10740-10755,PVALID,,LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10756-1075F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10760-10767,PVALID,,LINEAR A SIGN A800..LINEAR A SIGN A807
+10768-107FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10800-10805,PVALID,,CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10806-10807,UNASSIGNED,,<RESERVED>..<RESERVED>
+10808,PVALID,,CYPRIOT SYLLABLE JO
+10809,UNASSIGNED,,<RESERVED>
+1080A-10835,PVALID,,CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10836,UNASSIGNED,,<RESERVED>
+10837-10838,PVALID,,CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+10839-1083B,UNASSIGNED,,<RESERVED>..<RESERVED>
+1083C,PVALID,,CYPRIOT SYLLABLE ZA
+1083D-1083E,UNASSIGNED,,<RESERVED>..<RESERVED>
+1083F-10855,PVALID,,CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10856,UNASSIGNED,,<RESERVED>
+10857-1085F,DISALLOWED,,IMPERIAL ARAMAIC SECTION SIGN..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860-10876,PVALID,,PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877-1087F,DISALLOWED,,PALMYRENE LEFT-POINTING FLEURON..PALMYRENE NUMBER TWENTY
+10880-1089E,PVALID,,NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+1089F-108A6,UNASSIGNED,,<RESERVED>..<RESERVED>
+108A7-108AF,DISALLOWED,,NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+108B0-108DF,UNASSIGNED,,<RESERVED>..<RESERVED>
+108E0-108F2,PVALID,,HATRAN LETTER ALEPH..HATRAN LETTER QOPH
+108F3,UNASSIGNED,,<RESERVED>
+108F4-108F5,PVALID,,HATRAN LETTER SHIN..HATRAN LETTER TAW
+108F6-108FA,UNASSIGNED,,<RESERVED>..<RESERVED>
+108FB-108FF,DISALLOWED,,HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
+10900-10915,PVALID,,PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916-1091B,DISALLOWED,,PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
+1091C-1091E,UNASSIGNED,,<RESERVED>..<RESERVED>
+1091F,DISALLOWED,,PHOENICIAN WORD SEPARATOR
+10920-10939,PVALID,,LYDIAN LETTER A..LYDIAN LETTER C
+1093A-1093E,UNASSIGNED,,<RESERVED>..<RESERVED>
+1093F,DISALLOWED,,LYDIAN TRIANGULAR MARK
+10940-1097F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10980-109B7,PVALID,,MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
+109B8-109BB,UNASSIGNED,,<RESERVED>..<RESERVED>
+109BC-109BD,DISALLOWED,,MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
+109BE-109BF,PVALID,,MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+109C0-109CF,DISALLOWED,,MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
+109D0-109D1,UNASSIGNED,,<RESERVED>..<RESERVED>
+109D2-109FF,DISALLOWED,,MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
+10A00-10A03,PVALID,,KHAROSHTHI LETTER A..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A04,UNASSIGNED,,<RESERVED>
+10A05-10A06,PVALID,,KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A07-10A0B,UNASSIGNED,,<RESERVED>..<RESERVED>
+10A0C-10A13,PVALID,,KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI LETTER GHA
+10A14,UNASSIGNED,,<RESERVED>
+10A15-10A17,PVALID,,KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A18,UNASSIGNED,,<RESERVED>
+10A19-10A35,PVALID,,KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
+10A36-10A37,UNASSIGNED,,<RESERVED>..<RESERVED>
+10A38-10A3A,PVALID,,KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3B-10A3E,UNASSIGNED,,<RESERVED>..<RESERVED>
+10A3F,PVALID,,KHAROSHTHI VIRAMA
+10A40-10A48,DISALLOWED,,KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
+10A49-10A4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10A50-10A58,DISALLOWED,,KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+10A59-10A5F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10A60-10A7C,PVALID,,OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A7D-10A7F,DISALLOWED,,OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80-10A9C,PVALID,,OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D-10A9F,DISALLOWED,,OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AA0-10ABF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10AC0-10AC7,PVALID,,MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8,DISALLOWED,,MANICHAEAN SIGN UD
+10AC9-10AE6,PVALID,,MANICHAEAN LETTER ZAYIN..MANICHAEAN ABBREVIATION MARK BELOW
+10AE7-10AEA,UNASSIGNED,,<RESERVED>..<RESERVED>
+10AEB-10AF6,DISALLOWED,,MANICHAEAN NUMBER ONE..MANICHAEAN PUNCTUATION LINE FILLER
+10AF7-10AFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10B00-10B35,PVALID,,AVESTAN LETTER A..AVESTAN LETTER HE
+10B36-10B38,UNASSIGNED,,<RESERVED>..<RESERVED>
+10B39-10B3F,DISALLOWED,,AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B40-10B55,PVALID,,INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B56-10B57,UNASSIGNED,,<RESERVED>..<RESERVED>
+10B58-10B5F,DISALLOWED,,INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B60-10B72,PVALID,,INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B73-10B77,UNASSIGNED,,<RESERVED>..<RESERVED>
+10B78-10B7F,DISALLOWED,,INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80-10B91,PVALID,,PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B92-10B98,UNASSIGNED,,<RESERVED>..<RESERVED>
+10B99-10B9C,DISALLOWED,,PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10B9D-10BA8,UNASSIGNED,,<RESERVED>..<RESERVED>
+10BA9-10BAF,DISALLOWED,,PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+10BB0-10BFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10C00-10C48,PVALID,,OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10C49-10C7F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10C80-10CB2,DISALLOWED,,OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
+10CB3-10CBF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10CC0-10CF2,PVALID,,OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+10CF3-10CF9,UNASSIGNED,,<RESERVED>..<RESERVED>
+10CFA-10CFF,DISALLOWED,,OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
+10D00-10D27,PVALID,,HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA SIGN TASSI
+10D28-10D2F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10D30-10D39,PVALID,,HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+10D3A-10E5F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10E60-10E7E,DISALLOWED,,RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+10E7F-10EFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+10F00-10F1C,PVALID,,OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
+10F1D-10F26,DISALLOWED,,OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
+10F27,PVALID,,OLD SOGDIAN LIGATURE AYIN-DALETH
+10F28-10F2F,UNASSIGNED,,<RESERVED>..<RESERVED>
+10F30-10F50,PVALID,,SOGDIAN LETTER ALEPH..SOGDIAN COMBINING STROKE BELOW
+10F51-10F59,DISALLOWED,,SOGDIAN NUMBER ONE..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10F5A-10FFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11000-11046,PVALID,,BRAHMI SIGN CANDRABINDU..BRAHMI VIRAMA
+11047-1104D,DISALLOWED,,BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
+1104E-11051,UNASSIGNED,,<RESERVED>..<RESERVED>
+11052-11065,DISALLOWED,,BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+11066-1106F,PVALID,,BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+11070-1107E,UNASSIGNED,,<RESERVED>..<RESERVED>
+1107F-110BA,PVALID,,BRAHMI NUMBER JOINER..KAITHI SIGN NUKTA
+110BB-110C1,DISALLOWED,,KAITHI ABBREVIATION SIGN..KAITHI DOUBLE DANDA
+110C2-110CC,UNASSIGNED,,<RESERVED>..<RESERVED>
+110CD,DISALLOWED,,KAITHI NUMBER SIGN ABOVE
+110CE-110CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+110D0-110E8,PVALID,,SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+110E9-110EF,UNASSIGNED,,<RESERVED>..<RESERVED>
+110F0-110F9,PVALID,,SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+110FA-110FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11100-11134,PVALID,,CHAKMA SIGN CANDRABINDU..CHAKMA MAAYYAA
+11135,UNASSIGNED,,<RESERVED>
+11136-1113F,PVALID,,CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140-11143,DISALLOWED,,CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11144-11146,PVALID,,CHAKMA LETTER LHAA..CHAKMA VOWEL SIGN EI
+11147-1114F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11150-11173,PVALID,,MAHAJANI LETTER A..MAHAJANI SIGN NUKTA
+11174-11175,DISALLOWED,,MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176,PVALID,,MAHAJANI LIGATURE SHRI
+11177-1117F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11180-111C4,PVALID,,SHARADA SIGN CANDRABINDU..SHARADA OM
+111C5-111C8,DISALLOWED,,SHARADA DANDA..SHARADA SEPARATOR
+111C9-111CC,PVALID,,SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
+111CD,DISALLOWED,,SHARADA SUTRA MARK
+111CE-111CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+111D0-111DA,PVALID,,SHARADA DIGIT ZERO..SHARADA EKAM
+111DB,DISALLOWED,,SHARADA SIGN SIDDHAM
+111DC,PVALID,,SHARADA HEADSTROKE
+111DD-111DF,DISALLOWED,,SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
+111E0,UNASSIGNED,,<RESERVED>
+111E1-111F4,DISALLOWED,,SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+111F5-111FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11200-11211,PVALID,,KHOJKI LETTER A..KHOJKI LETTER JJA
+11212,UNASSIGNED,,<RESERVED>
+11213-11237,PVALID,,KHOJKI LETTER NYA..KHOJKI SIGN SHADDA
+11238-1123D,DISALLOWED,,KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+1123E,PVALID,,KHOJKI SIGN SUKUN
+1123F-1127F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11280-11286,PVALID,,MULTANI LETTER A..MULTANI LETTER GA
+11287,UNASSIGNED,,<RESERVED>
+11288,PVALID,,MULTANI LETTER GHA
+11289,UNASSIGNED,,<RESERVED>
+1128A-1128D,PVALID,,MULTANI LETTER CA..MULTANI LETTER JJA
+1128E,UNASSIGNED,,<RESERVED>
+1128F-1129D,PVALID,,MULTANI LETTER NYA..MULTANI LETTER BA
+1129E,UNASSIGNED,,<RESERVED>
+1129F-112A8,PVALID,,MULTANI LETTER BHA..MULTANI LETTER RHA
+112A9,DISALLOWED,,MULTANI SECTION MARK
+112AA-112AF,UNASSIGNED,,<RESERVED>..<RESERVED>
+112B0-112EA,PVALID,,KHUDAWADI LETTER A..KHUDAWADI SIGN VIRAMA
+112EB-112EF,UNASSIGNED,,<RESERVED>..<RESERVED>
+112F0-112F9,PVALID,,KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+112FA-112FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11300-11303,PVALID,,GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN VISARGA
+11304,UNASSIGNED,,<RESERVED>
+11305-1130C,PVALID,,GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130D-1130E,UNASSIGNED,,<RESERVED>..<RESERVED>
+1130F-11310,PVALID,,GRANTHA LETTER EE..GRANTHA LETTER AI
+11311-11312,UNASSIGNED,,<RESERVED>..<RESERVED>
+11313-11328,PVALID,,GRANTHA LETTER OO..GRANTHA LETTER NA
+11329,UNASSIGNED,,<RESERVED>
+1132A-11330,PVALID,,GRANTHA LETTER PA..GRANTHA LETTER RA
+11331,UNASSIGNED,,<RESERVED>
+11332-11333,PVALID,,GRANTHA LETTER LA..GRANTHA LETTER LLA
+11334,UNASSIGNED,,<RESERVED>
+11335-11339,PVALID,,GRANTHA LETTER VA..GRANTHA LETTER HA
+1133A,UNASSIGNED,,<RESERVED>
+1133B-11344,PVALID,,COMBINING BINDU BELOW..GRANTHA VOWEL SIGN VOCALIC RR
+11345-11346,UNASSIGNED,,<RESERVED>..<RESERVED>
+11347-11348,PVALID,,GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+11349-1134A,UNASSIGNED,,<RESERVED>..<RESERVED>
+1134B-1134D,PVALID,,GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+1134E-1134F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11350,PVALID,,GRANTHA OM
+11351-11356,UNASSIGNED,,<RESERVED>..<RESERVED>
+11357,PVALID,,GRANTHA AU LENGTH MARK
+11358-1135C,UNASSIGNED,,<RESERVED>..<RESERVED>
+1135D-11363,PVALID,,GRANTHA SIGN PLUTA..GRANTHA VOWEL SIGN VOCALIC LL
+11364-11365,UNASSIGNED,,<RESERVED>..<RESERVED>
+11366-1136C,PVALID,,COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+1136D-1136F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11370-11374,PVALID,,COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11375-113FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11400-1144A,PVALID,,NEWA LETTER A..NEWA SIDDHI
+1144B-1144F,DISALLOWED,,NEWA DANDA..NEWA ABBREVIATION SIGN
+11450-11459,PVALID,,NEWA DIGIT ZERO..NEWA DIGIT NINE
+1145A,UNASSIGNED,,<RESERVED>
+1145B,DISALLOWED,,NEWA PLACEHOLDER MARK
+1145C,UNASSIGNED,,<RESERVED>
+1145D,DISALLOWED,,NEWA INSERTION SIGN
+1145E,PVALID,,NEWA SANDHI MARK
+1145F-1147F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11480-114C5,PVALID,,TIRHUTA ANJI..TIRHUTA GVANG
+114C6,DISALLOWED,,TIRHUTA ABBREVIATION SIGN
+114C7,PVALID,,TIRHUTA OM
+114C8-114CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+114D0-114D9,PVALID,,TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+114DA-1157F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11580-115B5,PVALID,,SIDDHAM LETTER A..SIDDHAM VOWEL SIGN VOCALIC RR
+115B6-115B7,UNASSIGNED,,<RESERVED>..<RESERVED>
+115B8-115C0,PVALID,,SIDDHAM VOWEL SIGN E..SIDDHAM SIGN NUKTA
+115C1-115D7,DISALLOWED,,SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
+115D8-115DD,PVALID,,SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM VOWEL SIGN ALTERNATE UU
+115DE-115FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11600-11640,PVALID,,MODI LETTER A..MODI SIGN ARDHACANDRA
+11641-11643,DISALLOWED,,MODI DANDA..MODI ABBREVIATION SIGN
+11644,PVALID,,MODI SIGN HUVA
+11645-1164F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11650-11659,PVALID,,MODI DIGIT ZERO..MODI DIGIT NINE
+1165A-1165F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11660-1166C,DISALLOWED,,MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
+1166D-1167F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11680-116B7,PVALID,,TAKRI LETTER A..TAKRI SIGN NUKTA
+116B8-116BF,UNASSIGNED,,<RESERVED>..<RESERVED>
+116C0-116C9,PVALID,,TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+116CA-116FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11700-1171A,PVALID,,AHOM LETTER KA..AHOM LETTER ALTERNATE BA
+1171B-1171C,UNASSIGNED,,<RESERVED>..<RESERVED>
+1171D-1172B,PVALID,,AHOM CONSONANT SIGN MEDIAL LA..AHOM SIGN KILLER
+1172C-1172F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11730-11739,PVALID,,AHOM DIGIT ZERO..AHOM DIGIT NINE
+1173A-1173F,DISALLOWED,,AHOM NUMBER TEN..AHOM SYMBOL VI
+11740-117FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11800-1183A,PVALID,,DOGRA LETTER A..DOGRA SIGN NUKTA
+1183B,DISALLOWED,,DOGRA ABBREVIATION SIGN
+1183C-1189F,UNASSIGNED,,<RESERVED>..<RESERVED>
+118A0-118BF,DISALLOWED,,WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
+118C0-118E9,PVALID,,WARANG CITI SMALL LETTER NGAA..WARANG CITI DIGIT NINE
+118EA-118F2,DISALLOWED,,WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118F3-118FE,UNASSIGNED,,<RESERVED>..<RESERVED>
+118FF,PVALID,,WARANG CITI OM
+11900-119FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11A00-11A3E,PVALID,,ZANABAZAR SQUARE LETTER A..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+11A3F-11A46,DISALLOWED,,ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
+11A47,PVALID,,ZANABAZAR SQUARE SUBJOINER
+11A48-11A4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11A50-11A83,PVALID,,SOYOMBO LETTER A..SOYOMBO LETTER KSSA
+11A84-11A85,UNASSIGNED,,<RESERVED>..<RESERVED>
+11A86-11A99,PVALID,,SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO SUBJOINER
+11A9A-11A9C,DISALLOWED,,SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
+11A9D,PVALID,,SOYOMBO MARK PLUTA
+11A9E-11AA2,DISALLOWED,,SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
+11AA3-11ABF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11AC0-11AF8,PVALID,,PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11AF9-11BFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11C00-11C08,PVALID,,BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
+11C09,UNASSIGNED,,<RESERVED>
+11C0A-11C36,PVALID,,BHAIKSUKI LETTER E..BHAIKSUKI VOWEL SIGN VOCALIC L
+11C37,UNASSIGNED,,<RESERVED>
+11C38-11C40,PVALID,,BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN AVAGRAHA
+11C41-11C45,DISALLOWED,,BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
+11C46-11C4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11C50-11C59,PVALID,,BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
+11C5A-11C6C,DISALLOWED,,BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
+11C6D-11C6F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11C70-11C71,DISALLOWED,,MARCHEN HEAD MARK..MARCHEN MARK SHAD
+11C72-11C8F,PVALID,,MARCHEN LETTER KA..MARCHEN LETTER A
+11C90-11C91,UNASSIGNED,,<RESERVED>..<RESERVED>
+11C92-11CA7,PVALID,,MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+11CA8,UNASSIGNED,,<RESERVED>
+11CA9-11CB6,PVALID,,MARCHEN SUBJOINED LETTER YA..MARCHEN SIGN CANDRABINDU
+11CB7-11CFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11D00-11D06,PVALID,,MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
+11D07,UNASSIGNED,,<RESERVED>
+11D08-11D09,PVALID,,MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
+11D0A,UNASSIGNED,,<RESERVED>
+11D0B-11D36,PVALID,,MASARAM GONDI LETTER AU..MASARAM GONDI VOWEL SIGN VOCALIC R
+11D37-11D39,UNASSIGNED,,<RESERVED>..<RESERVED>
+11D3A,PVALID,,MASARAM GONDI VOWEL SIGN E
+11D3B,UNASSIGNED,,<RESERVED>
+11D3C-11D3D,PVALID,,MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+11D3E,UNASSIGNED,,<RESERVED>
+11D3F-11D47,PVALID,,MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI RA-KARA
+11D48-11D4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11D50-11D59,PVALID,,MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
+11D5A-11D5F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11D60-11D65,PVALID,,GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
+11D66,UNASSIGNED,,<RESERVED>
+11D67-11D68,PVALID,,GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
+11D69,UNASSIGNED,,<RESERVED>
+11D6A-11D8E,PVALID,,GUNJALA GONDI LETTER OO..GUNJALA GONDI VOWEL SIGN UU
+11D8F,UNASSIGNED,,<RESERVED>
+11D90-11D91,PVALID,,GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+11D92,UNASSIGNED,,<RESERVED>
+11D93-11D98,PVALID,,GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI OM
+11D99-11D9F,UNASSIGNED,,<RESERVED>..<RESERVED>
+11DA0-11DA9,PVALID,,GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11DAA-11EDF,UNASSIGNED,,<RESERVED>..<RESERVED>
+11EE0-11EF6,PVALID,,MAKASAR LETTER KA..MAKASAR VOWEL SIGN O
+11EF7-11EF8,DISALLOWED,,MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11EF9-11FFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+12000-12399,PVALID,,CUNEIFORM SIGN A..CUNEIFORM SIGN U U
+1239A-123FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+12400-1246E,DISALLOWED,,CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+1246F,UNASSIGNED,,<RESERVED>
+12470-12474,DISALLOWED,,CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+12475-1247F,UNASSIGNED,,<RESERVED>..<RESERVED>
+12480-12543,PVALID,,CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+12544-12FFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+13000-1342E,PVALID,,EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+1342F-143FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+14400-14646,PVALID,,ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+14647-167FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+16800-16A38,PVALID,,BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A39-16A3F,UNASSIGNED,,<RESERVED>..<RESERVED>
+16A40-16A5E,PVALID,,MRO LETTER TA..MRO LETTER TEK
+16A5F,UNASSIGNED,,<RESERVED>
+16A60-16A69,PVALID,,MRO DIGIT ZERO..MRO DIGIT NINE
+16A6A-16A6D,UNASSIGNED,,<RESERVED>..<RESERVED>
+16A6E-16A6F,DISALLOWED,,MRO DANDA..MRO DOUBLE DANDA
+16A70-16ACF,UNASSIGNED,,<RESERVED>..<RESERVED>
+16AD0-16AED,PVALID,,BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AEE-16AEF,UNASSIGNED,,<RESERVED>..<RESERVED>
+16AF0-16AF4,PVALID,,BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5,DISALLOWED,,BASSA VAH FULL STOP
+16AF6-16AFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+16B00-16B36,PVALID,,PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG MARK CIM TAUM
+16B37-16B3F,DISALLOWED,,PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN XYEEM FAIB
+16B40-16B43,PVALID,,PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44-16B45,DISALLOWED,,PAHAWH HMONG SIGN XAUS..PAHAWH HMONG SIGN CIM TSOV ROG
+16B46-16B4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+16B50-16B59,PVALID,,PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5A,UNASSIGNED,,<RESERVED>
+16B5B-16B61,DISALLOWED,,PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B62,UNASSIGNED,,<RESERVED>
+16B63-16B77,PVALID,,PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B78-16B7C,UNASSIGNED,,<RESERVED>..<RESERVED>
+16B7D-16B8F,PVALID,,PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+16B90-16E3F,UNASSIGNED,,<RESERVED>..<RESERVED>
+16E40-16E5F,DISALLOWED,,MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
+16E60-16E7F,PVALID,,MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
+16E80-16E9A,DISALLOWED,,MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN EXCLAMATION OH
+16E9B-16EFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+16F00-16F44,PVALID,,MIAO LETTER PA..MIAO LETTER HHA
+16F45-16F4F,UNASSIGNED,,<RESERVED>..<RESERVED>
+16F50-16F7E,PVALID,,MIAO LETTER NASALIZATION..MIAO VOWEL SIGN NG
+16F7F-16F8E,UNASSIGNED,,<RESERVED>..<RESERVED>
+16F8F-16F9F,PVALID,,MIAO TONE RIGHT..MIAO LETTER REFORMED TONE-8
+16FA0-16FDF,UNASSIGNED,,<RESERVED>..<RESERVED>
+16FE0-16FE1,PVALID,,TANGUT ITERATION MARK..NUSHU ITERATION MARK
+16FE2-16FFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+17000-187F1,PVALID,,"<TANGUT IDEOGRAPH, FIRST>..<TANGUT IDEOGRAPH, LAST>"
+187F2-187FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+18800-18AF2,PVALID,,TANGUT COMPONENT-001..TANGUT COMPONENT-755
+18AF3-1AFFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1B000-1B11E,PVALID,,KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER N-MU-MO-2
+1B11F-1B16F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1B170-1B2FB,PVALID,,NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
+1B2FC-1BBFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1BC00-1BC6A,PVALID,,DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC6B-1BC6F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1BC70-1BC7C,PVALID,,DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC7D-1BC7F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1BC80-1BC88,PVALID,,DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC89-1BC8F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1BC90-1BC99,PVALID,,DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9A-1BC9B,UNASSIGNED,,<RESERVED>..<RESERVED>
+1BC9C,DISALLOWED,,DUPLOYAN SIGN O WITH CROSS
+1BC9D-1BC9E,PVALID,,DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F-1BCA3,DISALLOWED,,DUPLOYAN PUNCTUATION CHINOOK FULL STOP..SHORTHAND FORMAT UP STEP
+1BCA4-1CFFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D000-1D0F5,DISALLOWED,,BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D0F6-1D0FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D100-1D126,DISALLOWED,,MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D127-1D128,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D129-1D1E8,DISALLOWED,,MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL KIEVAN FLAT SIGN
+1D1E9-1D1FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D200-1D245,DISALLOWED,,GREEK VOCAL NOTATION SYMBOL-1..GREEK MUSICAL LEIMMA
+1D246-1D2DF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D2E0-1D2F3,DISALLOWED,,MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
+1D2F4-1D2FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D300-1D356,DISALLOWED,,MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D357-1D35F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D360-1D378,DISALLOWED,,COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
+1D379-1D3FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D400-1D454,DISALLOWED,,MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D455,UNASSIGNED,,<RESERVED>
+1D456-1D49C,DISALLOWED,,MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49D,UNASSIGNED,,<RESERVED>
+1D49E-1D49F,DISALLOWED,,MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A0-1D4A1,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D4A2,DISALLOWED,,MATHEMATICAL SCRIPT CAPITAL G
+1D4A3-1D4A4,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D4A5-1D4A6,DISALLOWED,,MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A7-1D4A8,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D4A9-1D4AC,DISALLOWED,,MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AD,UNASSIGNED,,<RESERVED>
+1D4AE-1D4B9,DISALLOWED,,MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BA,UNASSIGNED,,<RESERVED>
+1D4BB,DISALLOWED,,MATHEMATICAL SCRIPT SMALL F
+1D4BC,UNASSIGNED,,<RESERVED>
+1D4BD-1D4C3,DISALLOWED,,MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C4,UNASSIGNED,,<RESERVED>
+1D4C5-1D505,DISALLOWED,,MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D506,UNASSIGNED,,<RESERVED>
+1D507-1D50A,DISALLOWED,,MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50B-1D50C,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D50D-1D514,DISALLOWED,,MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D515,UNASSIGNED,,<RESERVED>
+1D516-1D51C,DISALLOWED,,MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51D,UNASSIGNED,,<RESERVED>
+1D51E-1D539,DISALLOWED,,MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53A,UNASSIGNED,,<RESERVED>
+1D53B-1D53E,DISALLOWED,,MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D53F,UNASSIGNED,,<RESERVED>
+1D540-1D544,DISALLOWED,,MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D545,UNASSIGNED,,<RESERVED>
+1D546,DISALLOWED,,MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D547-1D549,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D54A-1D550,DISALLOWED,,MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D551,UNASSIGNED,,<RESERVED>
+1D552-1D6A5,DISALLOWED,,MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A6-1D6A7,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D6A8-1D7CB,DISALLOWED,,MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CC-1D7CD,UNASSIGNED,,<RESERVED>..<RESERVED>
+1D7CE-1D9FF,DISALLOWED,,MATHEMATICAL BOLD DIGIT ZERO..SIGNWRITING HEAD
+1DA00-1DA36,PVALID,,SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+1DA37-1DA3A,DISALLOWED,,SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
+1DA3B-1DA6C,PVALID,,SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+1DA6D-1DA74,DISALLOWED,,SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
+1DA75,PVALID,,SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+1DA76-1DA83,DISALLOWED,,SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
+1DA84,PVALID,,SIGNWRITING LOCATION HEAD NECK
+1DA85-1DA8B,DISALLOWED,,SIGNWRITING LOCATION TORSO..SIGNWRITING PARENTHESIS
+1DA8C-1DA9A,UNASSIGNED,,<RESERVED>..<RESERVED>
+1DA9B-1DA9F,PVALID,,SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+1DAA0,UNASSIGNED,,<RESERVED>
+1DAA1-1DAAF,PVALID,,SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+1DAB0-1DFFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1E000-1E006,PVALID,,COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+1E007,UNASSIGNED,,<RESERVED>
+1E008-1E018,PVALID,,COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+1E019-1E01A,UNASSIGNED,,<RESERVED>..<RESERVED>
+1E01B-1E021,PVALID,,COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+1E022,UNASSIGNED,,<RESERVED>
+1E023-1E024,PVALID,,COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+1E025,UNASSIGNED,,<RESERVED>
+1E026-1E02A,PVALID,,COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E02B-1E7FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1E800-1E8C4,PVALID,,MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C5-1E8C6,UNASSIGNED,,<RESERVED>..<RESERVED>
+1E8C7-1E8CF,DISALLOWED,,MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0-1E8D6,PVALID,,MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1E8D7-1E8FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1E900-1E921,DISALLOWED,,ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
+1E922-1E94A,PVALID,,ADLAM SMALL LETTER ALIF..ADLAM NUKTA
+1E94B-1E94F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1E950-1E959,PVALID,,ADLAM DIGIT ZERO..ADLAM DIGIT NINE
+1E95A-1E95D,UNASSIGNED,,<RESERVED>..<RESERVED>
+1E95E-1E95F,DISALLOWED,,ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
+1E960-1EC70,UNASSIGNED,,<RESERVED>..<RESERVED>
+1EC71-1ECB4,DISALLOWED,,INDIC SIYAQ NUMBER ONE..INDIC SIYAQ ALTERNATE LAKH MARK
+1ECB5-1EDFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1EE00-1EE03,DISALLOWED,,ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE04,UNASSIGNED,,<RESERVED>
+1EE05-1EE1F,DISALLOWED,,ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE20,UNASSIGNED,,<RESERVED>
+1EE21-1EE22,DISALLOWED,,ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE23,UNASSIGNED,,<RESERVED>
+1EE24,DISALLOWED,,ARABIC MATHEMATICAL INITIAL HEH
+1EE25-1EE26,UNASSIGNED,,<RESERVED>..<RESERVED>
+1EE27,DISALLOWED,,ARABIC MATHEMATICAL INITIAL HAH
+1EE28,UNASSIGNED,,<RESERVED>
+1EE29-1EE32,DISALLOWED,,ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE33,UNASSIGNED,,<RESERVED>
+1EE34-1EE37,DISALLOWED,,ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE38,UNASSIGNED,,<RESERVED>
+1EE39,DISALLOWED,,ARABIC MATHEMATICAL INITIAL DAD
+1EE3A,UNASSIGNED,,<RESERVED>
+1EE3B,DISALLOWED,,ARABIC MATHEMATICAL INITIAL GHAIN
+1EE3C-1EE41,UNASSIGNED,,<RESERVED>..<RESERVED>
+1EE42,DISALLOWED,,ARABIC MATHEMATICAL TAILED JEEM
+1EE43-1EE46,UNASSIGNED,,<RESERVED>..<RESERVED>
+1EE47,DISALLOWED,,ARABIC MATHEMATICAL TAILED HAH
+1EE48,UNASSIGNED,,<RESERVED>
+1EE49,DISALLOWED,,ARABIC MATHEMATICAL TAILED YEH
+1EE4A,UNASSIGNED,,<RESERVED>
+1EE4B,DISALLOWED,,ARABIC MATHEMATICAL TAILED LAM
+1EE4C,UNASSIGNED,,<RESERVED>
+1EE4D-1EE4F,DISALLOWED,,ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE50,UNASSIGNED,,<RESERVED>
+1EE51-1EE52,DISALLOWED,,ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE53,UNASSIGNED,,<RESERVED>
+1EE54,DISALLOWED,,ARABIC MATHEMATICAL TAILED SHEEN
+1EE55-1EE56,UNASSIGNED,,<RESERVED>..<RESERVED>
+1EE57,DISALLOWED,,ARABIC MATHEMATICAL TAILED KHAH
+1EE58,UNASSIGNED,,<RESERVED>
+1EE59,DISALLOWED,,ARABIC MATHEMATICAL TAILED DAD
+1EE5A,UNASSIGNED,,<RESERVED>
+1EE5B,DISALLOWED,,ARABIC MATHEMATICAL TAILED GHAIN
+1EE5C,UNASSIGNED,,<RESERVED>
+1EE5D,DISALLOWED,,ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5E,UNASSIGNED,,<RESERVED>
+1EE5F,DISALLOWED,,ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE60,UNASSIGNED,,<RESERVED>
+1EE61-1EE62,DISALLOWED,,ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE63,UNASSIGNED,,<RESERVED>
+1EE64,DISALLOWED,,ARABIC MATHEMATICAL STRETCHED HEH
+1EE65-1EE66,UNASSIGNED,,<RESERVED>..<RESERVED>
+1EE67-1EE6A,DISALLOWED,,ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6B,UNASSIGNED,,<RESERVED>
+1EE6C-1EE72,DISALLOWED,,ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE73,UNASSIGNED,,<RESERVED>
+1EE74-1EE77,DISALLOWED,,ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE78,UNASSIGNED,,<RESERVED>
+1EE79-1EE7C,DISALLOWED,,ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7D,UNASSIGNED,,<RESERVED>
+1EE7E,DISALLOWED,,ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE7F,UNASSIGNED,,<RESERVED>
+1EE80-1EE89,DISALLOWED,,ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8A,UNASSIGNED,,<RESERVED>
+1EE8B-1EE9B,DISALLOWED,,ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EE9C-1EEA0,UNASSIGNED,,<RESERVED>..<RESERVED>
+1EEA1-1EEA3,DISALLOWED,,ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA4,UNASSIGNED,,<RESERVED>
+1EEA5-1EEA9,DISALLOWED,,ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAA,UNASSIGNED,,<RESERVED>
+1EEAB-1EEBB,DISALLOWED,,ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEBC-1EEEF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1EEF0-1EEF1,DISALLOWED,,ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+1EEF2-1EFFF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F000-1F02B,DISALLOWED,,MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F02C-1F02F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F030-1F093,DISALLOWED,,DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+1F094-1F09F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F0A0-1F0AE,DISALLOWED,,PLAYING CARD BACK..PLAYING CARD KING OF SPADES
+1F0AF-1F0B0,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F0B1-1F0BF,DISALLOWED,,PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
+1F0C0,UNASSIGNED,,<RESERVED>
+1F0C1-1F0CF,DISALLOWED,,PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
+1F0D0,UNASSIGNED,,<RESERVED>
+1F0D1-1F0F5,DISALLOWED,,PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F0F6-1F0FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F100-1F10C,DISALLOWED,,DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F10D-1F10F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F110-1F16B,DISALLOWED,,PARENTHESIZED LATIN CAPITAL LETTER A..RAISED MD SIGN
+1F16C-1F16F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F170-1F1AC,DISALLOWED,,NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VOD
+1F1AD-1F1E5,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F1E6-1F202,DISALLOWED,,REGIONAL INDICATOR SYMBOL LETTER A..SQUARED KATAKANA SA
+1F203-1F20F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F210-1F23B,DISALLOWED,,SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
+1F23C-1F23F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F240-1F248,DISALLOWED,,TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F249-1F24F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F250-1F251,DISALLOWED,,CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
+1F252-1F25F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F260-1F265,DISALLOWED,,ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
+1F266-1F2FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F300-1F6D4,DISALLOWED,,CYCLONE..PAGODA
+1F6D5-1F6DF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F6E0-1F6EC,DISALLOWED,,HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6ED-1F6EF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F6F0-1F6F9,DISALLOWED,,SATELLITE..SKATEBOARD
+1F6FA-1F6FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F700-1F773,DISALLOWED,,ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F774-1F77F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F780-1F7D8,DISALLOWED,,BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F7D9-1F7FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F800-1F80B,DISALLOWED,,LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80C-1F80F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F810-1F847,DISALLOWED,,LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F848-1F84F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F850-1F859,DISALLOWED,,LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F85A-1F85F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F860-1F887,DISALLOWED,,WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F888-1F88F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F890-1F8AD,DISALLOWED,,LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+1F8AE-1F8FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F900-1F90B,DISALLOWED,,CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
+1F90C-1F90F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F910-1F93E,DISALLOWED,,ZIPPER-MOUTH FACE..HANDBALL
+1F93F,UNASSIGNED,,<RESERVED>
+1F940-1F970,DISALLOWED,,WILTED FLOWER..SMILING FACE WITH SMILING EYES AND THREE HEARTS
+1F971-1F972,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F973-1F976,DISALLOWED,,FACE WITH PARTY HORN AND PARTY HAT..FREEZING FACE
+1F977-1F979,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F97A,DISALLOWED,,FACE WITH PLEADING EYES
+1F97B,UNASSIGNED,,<RESERVED>
+1F97C-1F9A2,DISALLOWED,,LAB COAT..SWAN
+1F9A3-1F9AF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F9B0-1F9B9,DISALLOWED,,EMOJI COMPONENT RED HAIR..SUPERVILLAIN
+1F9BA-1F9BF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F9C0-1F9C2,DISALLOWED,,CHEESE WEDGE..SALT SHAKER
+1F9C3-1F9CF,UNASSIGNED,,<RESERVED>..<RESERVED>
+1F9D0-1F9FF,DISALLOWED,,FACE WITH MONOCLE..NAZAR AMULET
+1FA00-1FA5F,UNASSIGNED,,<RESERVED>..<RESERVED>
+1FA60-1FA6D,DISALLOWED,,XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
+1FA6E-1FFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+1FFFE-1FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+20000-2A6D6,PVALID,,"<CJK IDEOGRAPH EXTENSION B, FIRST>..<CJK IDEOGRAPH EXTENSION B, LAST>"
+2A6D7-2A6FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+2A700-2B734,PVALID,,"<CJK IDEOGRAPH EXTENSION C, FIRST>..<CJK IDEOGRAPH EXTENSION C, LAST>"
+2B735-2B73F,UNASSIGNED,,<RESERVED>..<RESERVED>
+2B740-2B81D,PVALID,,"<CJK IDEOGRAPH EXTENSION D, FIRST>..<CJK IDEOGRAPH EXTENSION D, LAST>"
+2B81E-2B81F,UNASSIGNED,,<RESERVED>..<RESERVED>
+2B820-2CEA1,PVALID,,"<CJK IDEOGRAPH EXTENSION E, FIRST>..<CJK IDEOGRAPH EXTENSION E, LAST>"
+2CEA2-2CEAF,UNASSIGNED,,<RESERVED>..<RESERVED>
+2CEB0-2EBE0,PVALID,,"<CJK IDEOGRAPH EXTENSION F, FIRST>..<CJK IDEOGRAPH EXTENSION F, LAST>"
+2EBE1-2F7FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+2F800-2FA1D,DISALLOWED,,CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+2FA1E-2FFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+2FFFE-2FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+30000-3FFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+3FFFE-3FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+40000-4FFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+4FFFE-4FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+50000-5FFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+5FFFE-5FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+60000-6FFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+6FFFE-6FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+70000-7FFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+7FFFE-7FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+80000-8FFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+8FFFE-8FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+90000-9FFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+9FFFE-9FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+A0000-AFFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+AFFFE-AFFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+B0000-BFFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+BFFFE-BFFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+C0000-CFFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+CFFFE-CFFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+D0000-DFFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+DFFFE-DFFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
+E0000,UNASSIGNED,,<RESERVED>
+E0001,DISALLOWED,,LANGUAGE TAG
+E0002-E001F,UNASSIGNED,,<RESERVED>..<RESERVED>
+E0020-E007F,DISALLOWED,,TAG SPACE..CANCEL TAG
+E0080-E00FF,UNASSIGNED,,<RESERVED>..<RESERVED>
+E0100-E01EF,DISALLOWED,,VARIATION SELECTOR-17..VARIATION SELECTOR-256
+E01F0-EFFFD,UNASSIGNED,,<RESERVED>..<RESERVED>
+EFFFE-10FFFF,DISALLOWED,,<NOT A CHARACTER>..<NOT A CHARACTER>
diff --git a/utils/idna_props.h b/utils/idna_props.h
index b5ca966..05546c5 100644
--- a/utils/idna_props.h
+++ b/utils/idna_props.h
@@ -343,8 +343,8 @@ idna_table idna_derived[] = {
{ 0x0378, 0x0379, .p.property = IDNA_P_UNASSIGNED },
{ 0x037A, 0x037A, .p.property = IDNA_P_DISALLOWED },
{ 0x037B, 0x037D, .p.property = IDNA_P_PVALID },
- { 0x037E, 0x037E, .p.property = IDNA_P_DISALLOWED },
- { 0x037F, 0x0383, .p.property = IDNA_P_UNASSIGNED },
+ { 0x037E, 0x037F, .p.property = IDNA_P_DISALLOWED },
+ { 0x0380, 0x0383, .p.property = IDNA_P_UNASSIGNED },
{ 0x0384, 0x038A, .p.property = IDNA_P_DISALLOWED },
{ 0x038B, 0x038B, .p.property = IDNA_P_UNASSIGNED },
{ 0x038C, 0x038C, .p.property = IDNA_P_DISALLOWED },
@@ -579,17 +579,28 @@ idna_table idna_derived[] = {
{ 0x0523, 0x0523, .p.property = IDNA_P_PVALID },
{ 0x0524, 0x0524, .p.property = IDNA_P_DISALLOWED },
{ 0x0525, 0x0525, .p.property = IDNA_P_PVALID },
- { 0x0526, 0x0530, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0526, 0x0526, .p.property = IDNA_P_DISALLOWED },
+ { 0x0527, 0x0527, .p.property = IDNA_P_PVALID },
+ { 0x0528, 0x0528, .p.property = IDNA_P_DISALLOWED },
+ { 0x0529, 0x0529, .p.property = IDNA_P_PVALID },
+ { 0x052A, 0x052A, .p.property = IDNA_P_DISALLOWED },
+ { 0x052B, 0x052B, .p.property = IDNA_P_PVALID },
+ { 0x052C, 0x052C, .p.property = IDNA_P_DISALLOWED },
+ { 0x052D, 0x052D, .p.property = IDNA_P_PVALID },
+ { 0x052E, 0x052E, .p.property = IDNA_P_DISALLOWED },
+ { 0x052F, 0x052F, .p.property = IDNA_P_PVALID },
+ { 0x0530, 0x0530, .p.property = IDNA_P_UNASSIGNED },
{ 0x0531, 0x0556, .p.property = IDNA_P_DISALLOWED },
{ 0x0557, 0x0558, .p.property = IDNA_P_UNASSIGNED },
{ 0x0559, 0x0559, .p.property = IDNA_P_PVALID },
{ 0x055A, 0x055F, .p.property = IDNA_P_DISALLOWED },
- { 0x0560, 0x0560, .p.property = IDNA_P_UNASSIGNED },
- { 0x0561, 0x0586, .p.property = IDNA_P_PVALID },
+ { 0x0560, 0x0586, .p.property = IDNA_P_PVALID },
{ 0x0587, 0x0587, .p.property = IDNA_P_DISALLOWED },
- { 0x0588, 0x0588, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0588, 0x0588, .p.property = IDNA_P_PVALID },
{ 0x0589, 0x058A, .p.property = IDNA_P_DISALLOWED },
- { 0x058B, 0x0590, .p.property = IDNA_P_UNASSIGNED },
+ { 0x058B, 0x058C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x058D, 0x058F, .p.property = IDNA_P_DISALLOWED },
+ { 0x0590, 0x0590, .p.property = IDNA_P_UNASSIGNED },
{ 0x0591, 0x05BD, .p.property = IDNA_P_PVALID },
{ 0x05BE, 0x05BE, .p.property = IDNA_P_DISALLOWED },
{ 0x05BF, 0x05BF, .p.property = IDNA_P_PVALID },
@@ -601,22 +612,18 @@ idna_table idna_derived[] = {
{ 0x05C7, 0x05C7, .p.property = IDNA_P_PVALID },
{ 0x05C8, 0x05CF, .p.property = IDNA_P_UNASSIGNED },
{ 0x05D0, 0x05EA, .p.property = IDNA_P_PVALID },
- { 0x05EB, 0x05EF, .p.property = IDNA_P_UNASSIGNED },
- { 0x05F0, 0x05F2, .p.property = IDNA_P_PVALID },
+ { 0x05EB, 0x05EE, .p.property = IDNA_P_UNASSIGNED },
+ { 0x05EF, 0x05F2, .p.property = IDNA_P_PVALID },
{ 0x05F3, 0x05F4, .p.property = IDNA_P_CONTEXTO },
{ 0x05F5, 0x05FF, .p.property = IDNA_P_UNASSIGNED },
- { 0x0600, 0x0603, .p.property = IDNA_P_DISALLOWED },
- { 0x0604, 0x0605, .p.property = IDNA_P_UNASSIGNED },
- { 0x0606, 0x060F, .p.property = IDNA_P_DISALLOWED },
+ { 0x0600, 0x060F, .p.property = IDNA_P_DISALLOWED },
{ 0x0610, 0x061A, .p.property = IDNA_P_PVALID },
- { 0x061B, 0x061B, .p.property = IDNA_P_DISALLOWED },
- { 0x061C, 0x061D, .p.property = IDNA_P_UNASSIGNED },
+ { 0x061B, 0x061C, .p.property = IDNA_P_DISALLOWED },
+ { 0x061D, 0x061D, .p.property = IDNA_P_UNASSIGNED },
{ 0x061E, 0x061F, .p.property = IDNA_P_DISALLOWED },
- { 0x0620, 0x0620, .p.property = IDNA_P_UNASSIGNED },
- { 0x0621, 0x063F, .p.property = IDNA_P_PVALID },
+ { 0x0620, 0x063F, .p.property = IDNA_P_PVALID },
{ 0x0640, 0x0640, .p.property = IDNA_P_DISALLOWED },
- { 0x0641, 0x065E, .p.property = IDNA_P_PVALID },
- { 0x065F, 0x065F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0641, 0x065F, .p.property = IDNA_P_PVALID },
{ 0x0660, 0x0669, .p.property = IDNA_P_CONTEXTO },
{ 0x066A, 0x066D, .p.property = IDNA_P_DISALLOWED },
{ 0x066E, 0x0674, .p.property = IDNA_P_PVALID },
@@ -639,27 +646,32 @@ idna_table idna_derived[] = {
{ 0x07B2, 0x07BF, .p.property = IDNA_P_UNASSIGNED },
{ 0x07C0, 0x07F5, .p.property = IDNA_P_PVALID },
{ 0x07F6, 0x07FA, .p.property = IDNA_P_DISALLOWED },
- { 0x07FB, 0x07FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x07FB, 0x07FC, .p.property = IDNA_P_UNASSIGNED },
+ { 0x07FD, 0x07FD, .p.property = IDNA_P_PVALID },
+ { 0x07FE, 0x07FF, .p.property = IDNA_P_DISALLOWED },
{ 0x0800, 0x082D, .p.property = IDNA_P_PVALID },
{ 0x082E, 0x082F, .p.property = IDNA_P_UNASSIGNED },
{ 0x0830, 0x083E, .p.property = IDNA_P_DISALLOWED },
- { 0x083F, 0x08FF, .p.property = IDNA_P_UNASSIGNED },
- { 0x0900, 0x0939, .p.property = IDNA_P_PVALID },
- { 0x093A, 0x093B, .p.property = IDNA_P_UNASSIGNED },
- { 0x093C, 0x094E, .p.property = IDNA_P_PVALID },
- { 0x094F, 0x094F, .p.property = IDNA_P_UNASSIGNED },
- { 0x0950, 0x0955, .p.property = IDNA_P_PVALID },
- { 0x0956, 0x0957, .p.property = IDNA_P_UNASSIGNED },
+ { 0x083F, 0x083F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0840, 0x085B, .p.property = IDNA_P_PVALID },
+ { 0x085C, 0x085D, .p.property = IDNA_P_UNASSIGNED },
+ { 0x085E, 0x085E, .p.property = IDNA_P_DISALLOWED },
+ { 0x085F, 0x085F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0860, 0x086A, .p.property = IDNA_P_PVALID },
+ { 0x086B, 0x089F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x08A0, 0x08B4, .p.property = IDNA_P_PVALID },
+ { 0x08B5, 0x08B5, .p.property = IDNA_P_UNASSIGNED },
+ { 0x08B6, 0x08BD, .p.property = IDNA_P_PVALID },
+ { 0x08BE, 0x08D2, .p.property = IDNA_P_UNASSIGNED },
+ { 0x08D3, 0x08E1, .p.property = IDNA_P_PVALID },
+ { 0x08E2, 0x08E2, .p.property = IDNA_P_DISALLOWED },
+ { 0x08E3, 0x0957, .p.property = IDNA_P_PVALID },
{ 0x0958, 0x095F, .p.property = IDNA_P_DISALLOWED },
{ 0x0960, 0x0963, .p.property = IDNA_P_PVALID },
{ 0x0964, 0x0965, .p.property = IDNA_P_DISALLOWED },
{ 0x0966, 0x096F, .p.property = IDNA_P_PVALID },
{ 0x0970, 0x0970, .p.property = IDNA_P_DISALLOWED },
- { 0x0971, 0x0972, .p.property = IDNA_P_PVALID },
- { 0x0973, 0x0978, .p.property = IDNA_P_UNASSIGNED },
- { 0x0979, 0x097F, .p.property = IDNA_P_PVALID },
- { 0x0980, 0x0980, .p.property = IDNA_P_UNASSIGNED },
- { 0x0981, 0x0983, .p.property = IDNA_P_PVALID },
+ { 0x0971, 0x0983, .p.property = IDNA_P_PVALID },
{ 0x0984, 0x0984, .p.property = IDNA_P_UNASSIGNED },
{ 0x0985, 0x098C, .p.property = IDNA_P_PVALID },
{ 0x098D, 0x098E, .p.property = IDNA_P_UNASSIGNED },
@@ -688,7 +700,10 @@ idna_table idna_derived[] = {
{ 0x09E4, 0x09E5, .p.property = IDNA_P_UNASSIGNED },
{ 0x09E6, 0x09F1, .p.property = IDNA_P_PVALID },
{ 0x09F2, 0x09FB, .p.property = IDNA_P_DISALLOWED },
- { 0x09FC, 0x0A00, .p.property = IDNA_P_UNASSIGNED },
+ { 0x09FC, 0x09FC, .p.property = IDNA_P_PVALID },
+ { 0x09FD, 0x09FD, .p.property = IDNA_P_DISALLOWED },
+ { 0x09FE, 0x09FE, .p.property = IDNA_P_PVALID },
+ { 0x09FF, 0x0A00, .p.property = IDNA_P_UNASSIGNED },
{ 0x0A01, 0x0A03, .p.property = IDNA_P_PVALID },
{ 0x0A04, 0x0A04, .p.property = IDNA_P_UNASSIGNED },
{ 0x0A05, 0x0A0A, .p.property = IDNA_P_PVALID },
@@ -723,7 +738,8 @@ idna_table idna_derived[] = {
{ 0x0A5E, 0x0A5E, .p.property = IDNA_P_DISALLOWED },
{ 0x0A5F, 0x0A65, .p.property = IDNA_P_UNASSIGNED },
{ 0x0A66, 0x0A75, .p.property = IDNA_P_PVALID },
- { 0x0A76, 0x0A80, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0A76, 0x0A76, .p.property = IDNA_P_DISALLOWED },
+ { 0x0A77, 0x0A80, .p.property = IDNA_P_UNASSIGNED },
{ 0x0A81, 0x0A83, .p.property = IDNA_P_PVALID },
{ 0x0A84, 0x0A84, .p.property = IDNA_P_UNASSIGNED },
{ 0x0A85, 0x0A8D, .p.property = IDNA_P_PVALID },
@@ -749,9 +765,10 @@ idna_table idna_derived[] = {
{ 0x0AE0, 0x0AE3, .p.property = IDNA_P_PVALID },
{ 0x0AE4, 0x0AE5, .p.property = IDNA_P_UNASSIGNED },
{ 0x0AE6, 0x0AEF, .p.property = IDNA_P_PVALID },
- { 0x0AF0, 0x0AF0, .p.property = IDNA_P_UNASSIGNED },
- { 0x0AF1, 0x0AF1, .p.property = IDNA_P_DISALLOWED },
- { 0x0AF2, 0x0B00, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0AF0, 0x0AF1, .p.property = IDNA_P_DISALLOWED },
+ { 0x0AF2, 0x0AF8, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0AF9, 0x0AFF, .p.property = IDNA_P_PVALID },
+ { 0x0B00, 0x0B00, .p.property = IDNA_P_UNASSIGNED },
{ 0x0B01, 0x0B03, .p.property = IDNA_P_PVALID },
{ 0x0B04, 0x0B04, .p.property = IDNA_P_UNASSIGNED },
{ 0x0B05, 0x0B0C, .p.property = IDNA_P_PVALID },
@@ -781,7 +798,8 @@ idna_table idna_derived[] = {
{ 0x0B66, 0x0B6F, .p.property = IDNA_P_PVALID },
{ 0x0B70, 0x0B70, .p.property = IDNA_P_DISALLOWED },
{ 0x0B71, 0x0B71, .p.property = IDNA_P_PVALID },
- { 0x0B72, 0x0B81, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0B72, 0x0B77, .p.property = IDNA_P_DISALLOWED },
+ { 0x0B78, 0x0B81, .p.property = IDNA_P_UNASSIGNED },
{ 0x0B82, 0x0B83, .p.property = IDNA_P_PVALID },
{ 0x0B84, 0x0B84, .p.property = IDNA_P_UNASSIGNED },
{ 0x0B85, 0x0B8A, .p.property = IDNA_P_PVALID },
@@ -814,18 +832,14 @@ idna_table idna_derived[] = {
{ 0x0BD8, 0x0BE5, .p.property = IDNA_P_UNASSIGNED },
{ 0x0BE6, 0x0BEF, .p.property = IDNA_P_PVALID },
{ 0x0BF0, 0x0BFA, .p.property = IDNA_P_DISALLOWED },
- { 0x0BFB, 0x0C00, .p.property = IDNA_P_UNASSIGNED },
- { 0x0C01, 0x0C03, .p.property = IDNA_P_PVALID },
- { 0x0C04, 0x0C04, .p.property = IDNA_P_UNASSIGNED },
- { 0x0C05, 0x0C0C, .p.property = IDNA_P_PVALID },
+ { 0x0BFB, 0x0BFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0C00, 0x0C0C, .p.property = IDNA_P_PVALID },
{ 0x0C0D, 0x0C0D, .p.property = IDNA_P_UNASSIGNED },
{ 0x0C0E, 0x0C10, .p.property = IDNA_P_PVALID },
{ 0x0C11, 0x0C11, .p.property = IDNA_P_UNASSIGNED },
{ 0x0C12, 0x0C28, .p.property = IDNA_P_PVALID },
{ 0x0C29, 0x0C29, .p.property = IDNA_P_UNASSIGNED },
- { 0x0C2A, 0x0C33, .p.property = IDNA_P_PVALID },
- { 0x0C34, 0x0C34, .p.property = IDNA_P_UNASSIGNED },
- { 0x0C35, 0x0C39, .p.property = IDNA_P_PVALID },
+ { 0x0C2A, 0x0C39, .p.property = IDNA_P_PVALID },
{ 0x0C3A, 0x0C3C, .p.property = IDNA_P_UNASSIGNED },
{ 0x0C3D, 0x0C44, .p.property = IDNA_P_PVALID },
{ 0x0C45, 0x0C45, .p.property = IDNA_P_UNASSIGNED },
@@ -835,16 +849,15 @@ idna_table idna_derived[] = {
{ 0x0C4E, 0x0C54, .p.property = IDNA_P_UNASSIGNED },
{ 0x0C55, 0x0C56, .p.property = IDNA_P_PVALID },
{ 0x0C57, 0x0C57, .p.property = IDNA_P_UNASSIGNED },
- { 0x0C58, 0x0C59, .p.property = IDNA_P_PVALID },
- { 0x0C5A, 0x0C5F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0C58, 0x0C5A, .p.property = IDNA_P_PVALID },
+ { 0x0C5B, 0x0C5F, .p.property = IDNA_P_UNASSIGNED },
{ 0x0C60, 0x0C63, .p.property = IDNA_P_PVALID },
{ 0x0C64, 0x0C65, .p.property = IDNA_P_UNASSIGNED },
{ 0x0C66, 0x0C6F, .p.property = IDNA_P_PVALID },
{ 0x0C70, 0x0C77, .p.property = IDNA_P_UNASSIGNED },
{ 0x0C78, 0x0C7F, .p.property = IDNA_P_DISALLOWED },
- { 0x0C80, 0x0C81, .p.property = IDNA_P_UNASSIGNED },
- { 0x0C82, 0x0C83, .p.property = IDNA_P_PVALID },
- { 0x0C84, 0x0C84, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0C80, 0x0C83, .p.property = IDNA_P_PVALID },
+ { 0x0C84, 0x0C84, .p.property = IDNA_P_DISALLOWED },
{ 0x0C85, 0x0C8C, .p.property = IDNA_P_PVALID },
{ 0x0C8D, 0x0C8D, .p.property = IDNA_P_UNASSIGNED },
{ 0x0C8E, 0x0C90, .p.property = IDNA_P_PVALID },
@@ -869,32 +882,27 @@ idna_table idna_derived[] = {
{ 0x0CE4, 0x0CE5, .p.property = IDNA_P_UNASSIGNED },
{ 0x0CE6, 0x0CEF, .p.property = IDNA_P_PVALID },
{ 0x0CF0, 0x0CF0, .p.property = IDNA_P_UNASSIGNED },
- { 0x0CF1, 0x0CF2, .p.property = IDNA_P_DISALLOWED },
- { 0x0CF3, 0x0D01, .p.property = IDNA_P_UNASSIGNED },
- { 0x0D02, 0x0D03, .p.property = IDNA_P_PVALID },
+ { 0x0CF1, 0x0CF2, .p.property = IDNA_P_PVALID },
+ { 0x0CF3, 0x0CFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0D00, 0x0D03, .p.property = IDNA_P_PVALID },
{ 0x0D04, 0x0D04, .p.property = IDNA_P_UNASSIGNED },
{ 0x0D05, 0x0D0C, .p.property = IDNA_P_PVALID },
{ 0x0D0D, 0x0D0D, .p.property = IDNA_P_UNASSIGNED },
{ 0x0D0E, 0x0D10, .p.property = IDNA_P_PVALID },
{ 0x0D11, 0x0D11, .p.property = IDNA_P_UNASSIGNED },
- { 0x0D12, 0x0D28, .p.property = IDNA_P_PVALID },
- { 0x0D29, 0x0D29, .p.property = IDNA_P_UNASSIGNED },
- { 0x0D2A, 0x0D39, .p.property = IDNA_P_PVALID },
- { 0x0D3A, 0x0D3C, .p.property = IDNA_P_UNASSIGNED },
- { 0x0D3D, 0x0D44, .p.property = IDNA_P_PVALID },
+ { 0x0D12, 0x0D44, .p.property = IDNA_P_PVALID },
{ 0x0D45, 0x0D45, .p.property = IDNA_P_UNASSIGNED },
{ 0x0D46, 0x0D48, .p.property = IDNA_P_PVALID },
{ 0x0D49, 0x0D49, .p.property = IDNA_P_UNASSIGNED },
- { 0x0D4A, 0x0D4D, .p.property = IDNA_P_PVALID },
- { 0x0D4E, 0x0D56, .p.property = IDNA_P_UNASSIGNED },
- { 0x0D57, 0x0D57, .p.property = IDNA_P_PVALID },
- { 0x0D58, 0x0D5F, .p.property = IDNA_P_UNASSIGNED },
- { 0x0D60, 0x0D63, .p.property = IDNA_P_PVALID },
+ { 0x0D4A, 0x0D4E, .p.property = IDNA_P_PVALID },
+ { 0x0D4F, 0x0D4F, .p.property = IDNA_P_DISALLOWED },
+ { 0x0D50, 0x0D53, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0D54, 0x0D57, .p.property = IDNA_P_PVALID },
+ { 0x0D58, 0x0D5E, .p.property = IDNA_P_DISALLOWED },
+ { 0x0D5F, 0x0D63, .p.property = IDNA_P_PVALID },
{ 0x0D64, 0x0D65, .p.property = IDNA_P_UNASSIGNED },
{ 0x0D66, 0x0D6F, .p.property = IDNA_P_PVALID },
- { 0x0D70, 0x0D75, .p.property = IDNA_P_DISALLOWED },
- { 0x0D76, 0x0D78, .p.property = IDNA_P_UNASSIGNED },
- { 0x0D79, 0x0D79, .p.property = IDNA_P_DISALLOWED },
+ { 0x0D70, 0x0D79, .p.property = IDNA_P_DISALLOWED },
{ 0x0D7A, 0x0D7F, .p.property = IDNA_P_PVALID },
{ 0x0D80, 0x0D81, .p.property = IDNA_P_UNASSIGNED },
{ 0x0D82, 0x0D83, .p.property = IDNA_P_PVALID },
@@ -916,7 +924,9 @@ idna_table idna_derived[] = {
{ 0x0DD6, 0x0DD6, .p.property = IDNA_P_PVALID },
{ 0x0DD7, 0x0DD7, .p.property = IDNA_P_UNASSIGNED },
{ 0x0DD8, 0x0DDF, .p.property = IDNA_P_PVALID },
- { 0x0DE0, 0x0DF1, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0DE0, 0x0DE5, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0DE6, 0x0DEF, .p.property = IDNA_P_PVALID },
+ { 0x0DF0, 0x0DF1, .p.property = IDNA_P_UNASSIGNED },
{ 0x0DF2, 0x0DF3, .p.property = IDNA_P_PVALID },
{ 0x0DF4, 0x0DF4, .p.property = IDNA_P_DISALLOWED },
{ 0x0DF5, 0x0E00, .p.property = IDNA_P_UNASSIGNED },
@@ -967,7 +977,8 @@ idna_table idna_derived[] = {
{ 0x0ED0, 0x0ED9, .p.property = IDNA_P_PVALID },
{ 0x0EDA, 0x0EDB, .p.property = IDNA_P_UNASSIGNED },
{ 0x0EDC, 0x0EDD, .p.property = IDNA_P_DISALLOWED },
- { 0x0EDE, 0x0EFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0EDE, 0x0EDF, .p.property = IDNA_P_PVALID },
+ { 0x0EE0, 0x0EFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x0F00, 0x0F00, .p.property = IDNA_P_PVALID },
{ 0x0F01, 0x0F0A, .p.property = IDNA_P_DISALLOWED },
{ 0x0F0B, 0x0F0B, .p.property = IDNA_P_PVALID },
@@ -1006,9 +1017,7 @@ idna_table idna_derived[] = {
{ 0x0F81, 0x0F81, .p.property = IDNA_P_DISALLOWED },
{ 0x0F82, 0x0F84, .p.property = IDNA_P_PVALID },
{ 0x0F85, 0x0F85, .p.property = IDNA_P_DISALLOWED },
- { 0x0F86, 0x0F8B, .p.property = IDNA_P_PVALID },
- { 0x0F8C, 0x0F8F, .p.property = IDNA_P_UNASSIGNED },
- { 0x0F90, 0x0F92, .p.property = IDNA_P_PVALID },
+ { 0x0F86, 0x0F92, .p.property = IDNA_P_PVALID },
{ 0x0F93, 0x0F93, .p.property = IDNA_P_DISALLOWED },
{ 0x0F94, 0x0F97, .p.property = IDNA_P_PVALID },
{ 0x0F98, 0x0F98, .p.property = IDNA_P_UNASSIGNED },
@@ -1028,16 +1037,20 @@ idna_table idna_derived[] = {
{ 0x0FC6, 0x0FC6, .p.property = IDNA_P_PVALID },
{ 0x0FC7, 0x0FCC, .p.property = IDNA_P_DISALLOWED },
{ 0x0FCD, 0x0FCD, .p.property = IDNA_P_UNASSIGNED },
- { 0x0FCE, 0x0FD8, .p.property = IDNA_P_DISALLOWED },
- { 0x0FD9, 0x0FFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x0FCE, 0x0FDA, .p.property = IDNA_P_DISALLOWED },
+ { 0x0FDB, 0x0FFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1000, 0x1049, .p.property = IDNA_P_PVALID },
{ 0x104A, 0x104F, .p.property = IDNA_P_DISALLOWED },
{ 0x1050, 0x109D, .p.property = IDNA_P_PVALID },
{ 0x109E, 0x10C5, .p.property = IDNA_P_DISALLOWED },
- { 0x10C6, 0x10CF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10C6, 0x10C6, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10C7, 0x10C7, .p.property = IDNA_P_DISALLOWED },
+ { 0x10C8, 0x10CC, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10CD, 0x10CD, .p.property = IDNA_P_DISALLOWED },
+ { 0x10CE, 0x10CF, .p.property = IDNA_P_UNASSIGNED },
{ 0x10D0, 0x10FA, .p.property = IDNA_P_PVALID },
{ 0x10FB, 0x10FC, .p.property = IDNA_P_DISALLOWED },
- { 0x10FD, 0x10FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10FD, 0x10FF, .p.property = IDNA_P_PVALID },
{ 0x1100, 0x11FF, .p.property = IDNA_P_DISALLOWED },
{ 0x1200, 0x1248, .p.property = IDNA_P_PVALID },
{ 0x1249, 0x1249, .p.property = IDNA_P_UNASSIGNED },
@@ -1070,15 +1083,17 @@ idna_table idna_derived[] = {
{ 0x1312, 0x1315, .p.property = IDNA_P_PVALID },
{ 0x1316, 0x1317, .p.property = IDNA_P_UNASSIGNED },
{ 0x1318, 0x135A, .p.property = IDNA_P_PVALID },
- { 0x135B, 0x135E, .p.property = IDNA_P_UNASSIGNED },
- { 0x135F, 0x135F, .p.property = IDNA_P_PVALID },
+ { 0x135B, 0x135C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x135D, 0x135F, .p.property = IDNA_P_PVALID },
{ 0x1360, 0x137C, .p.property = IDNA_P_DISALLOWED },
{ 0x137D, 0x137F, .p.property = IDNA_P_UNASSIGNED },
{ 0x1380, 0x138F, .p.property = IDNA_P_PVALID },
{ 0x1390, 0x1399, .p.property = IDNA_P_DISALLOWED },
{ 0x139A, 0x139F, .p.property = IDNA_P_UNASSIGNED },
- { 0x13A0, 0x13F4, .p.property = IDNA_P_PVALID },
- { 0x13F5, 0x13FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x13A0, 0x13F5, .p.property = IDNA_P_PVALID },
+ { 0x13F6, 0x13F7, .p.property = IDNA_P_UNASSIGNED },
+ { 0x13F8, 0x13FD, .p.property = IDNA_P_DISALLOWED },
+ { 0x13FE, 0x13FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1400, 0x1400, .p.property = IDNA_P_DISALLOWED },
{ 0x1401, 0x166C, .p.property = IDNA_P_PVALID },
{ 0x166D, 0x166E, .p.property = IDNA_P_DISALLOWED },
@@ -1089,7 +1104,8 @@ idna_table idna_derived[] = {
{ 0x169D, 0x169F, .p.property = IDNA_P_UNASSIGNED },
{ 0x16A0, 0x16EA, .p.property = IDNA_P_PVALID },
{ 0x16EB, 0x16F0, .p.property = IDNA_P_DISALLOWED },
- { 0x16F1, 0x16FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16F1, 0x16F8, .p.property = IDNA_P_PVALID },
+ { 0x16F9, 0x16FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1700, 0x170C, .p.property = IDNA_P_PVALID },
{ 0x170D, 0x170D, .p.property = IDNA_P_UNASSIGNED },
{ 0x170E, 0x1714, .p.property = IDNA_P_PVALID },
@@ -1121,14 +1137,14 @@ idna_table idna_derived[] = {
{ 0x180F, 0x180F, .p.property = IDNA_P_UNASSIGNED },
{ 0x1810, 0x1819, .p.property = IDNA_P_PVALID },
{ 0x181A, 0x181F, .p.property = IDNA_P_UNASSIGNED },
- { 0x1820, 0x1877, .p.property = IDNA_P_PVALID },
- { 0x1878, 0x187F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1820, 0x1878, .p.property = IDNA_P_PVALID },
+ { 0x1879, 0x187F, .p.property = IDNA_P_UNASSIGNED },
{ 0x1880, 0x18AA, .p.property = IDNA_P_PVALID },
{ 0x18AB, 0x18AF, .p.property = IDNA_P_UNASSIGNED },
{ 0x18B0, 0x18F5, .p.property = IDNA_P_PVALID },
{ 0x18F6, 0x18FF, .p.property = IDNA_P_UNASSIGNED },
- { 0x1900, 0x191C, .p.property = IDNA_P_PVALID },
- { 0x191D, 0x191F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1900, 0x191E, .p.property = IDNA_P_PVALID },
+ { 0x191F, 0x191F, .p.property = IDNA_P_UNASSIGNED },
{ 0x1920, 0x192B, .p.property = IDNA_P_PVALID },
{ 0x192C, 0x192F, .p.property = IDNA_P_UNASSIGNED },
{ 0x1930, 0x193B, .p.property = IDNA_P_PVALID },
@@ -1144,7 +1160,8 @@ idna_table idna_derived[] = {
{ 0x19AC, 0x19AF, .p.property = IDNA_P_UNASSIGNED },
{ 0x19B0, 0x19C9, .p.property = IDNA_P_PVALID },
{ 0x19CA, 0x19CF, .p.property = IDNA_P_UNASSIGNED },
- { 0x19D0, 0x19DA, .p.property = IDNA_P_PVALID },
+ { 0x19D0, 0x19D9, .p.property = IDNA_P_PVALID },
+ { 0x19DA, 0x19DA, .p.property = IDNA_P_DISALLOWED },
{ 0x19DB, 0x19DD, .p.property = IDNA_P_UNASSIGNED },
{ 0x19DE, 0x19FF, .p.property = IDNA_P_DISALLOWED },
{ 0x1A00, 0x1A1B, .p.property = IDNA_P_PVALID },
@@ -1161,7 +1178,10 @@ idna_table idna_derived[] = {
{ 0x1AA0, 0x1AA6, .p.property = IDNA_P_DISALLOWED },
{ 0x1AA7, 0x1AA7, .p.property = IDNA_P_PVALID },
{ 0x1AA8, 0x1AAD, .p.property = IDNA_P_DISALLOWED },
- { 0x1AAE, 0x1AFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1AAE, 0x1AAF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1AB0, 0x1ABD, .p.property = IDNA_P_PVALID },
+ { 0x1ABE, 0x1ABE, .p.property = IDNA_P_DISALLOWED },
+ { 0x1ABF, 0x1AFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1B00, 0x1B4B, .p.property = IDNA_P_PVALID },
{ 0x1B4C, 0x1B4F, .p.property = IDNA_P_UNASSIGNED },
{ 0x1B50, 0x1B59, .p.property = IDNA_P_PVALID },
@@ -1169,22 +1189,25 @@ idna_table idna_derived[] = {
{ 0x1B6B, 0x1B73, .p.property = IDNA_P_PVALID },
{ 0x1B74, 0x1B7C, .p.property = IDNA_P_DISALLOWED },
{ 0x1B7D, 0x1B7F, .p.property = IDNA_P_UNASSIGNED },
- { 0x1B80, 0x1BAA, .p.property = IDNA_P_PVALID },
- { 0x1BAB, 0x1BAD, .p.property = IDNA_P_UNASSIGNED },
- { 0x1BAE, 0x1BB9, .p.property = IDNA_P_PVALID },
- { 0x1BBA, 0x1BFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1B80, 0x1BF3, .p.property = IDNA_P_PVALID },
+ { 0x1BF4, 0x1BFB, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1BFC, 0x1BFF, .p.property = IDNA_P_DISALLOWED },
{ 0x1C00, 0x1C37, .p.property = IDNA_P_PVALID },
{ 0x1C38, 0x1C3A, .p.property = IDNA_P_UNASSIGNED },
{ 0x1C3B, 0x1C3F, .p.property = IDNA_P_DISALLOWED },
{ 0x1C40, 0x1C49, .p.property = IDNA_P_PVALID },
{ 0x1C4A, 0x1C4C, .p.property = IDNA_P_UNASSIGNED },
{ 0x1C4D, 0x1C7D, .p.property = IDNA_P_PVALID },
- { 0x1C7E, 0x1C7F, .p.property = IDNA_P_DISALLOWED },
- { 0x1C80, 0x1CCF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1C7E, 0x1C88, .p.property = IDNA_P_DISALLOWED },
+ { 0x1C89, 0x1C8F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1C90, 0x1CBA, .p.property = IDNA_P_DISALLOWED },
+ { 0x1CBB, 0x1CBC, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1CBD, 0x1CC7, .p.property = IDNA_P_DISALLOWED },
+ { 0x1CC8, 0x1CCF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1CD0, 0x1CD2, .p.property = IDNA_P_PVALID },
{ 0x1CD3, 0x1CD3, .p.property = IDNA_P_DISALLOWED },
- { 0x1CD4, 0x1CF2, .p.property = IDNA_P_PVALID },
- { 0x1CF3, 0x1CFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1CD4, 0x1CF9, .p.property = IDNA_P_PVALID },
+ { 0x1CFA, 0x1CFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1D00, 0x1D2B, .p.property = IDNA_P_PVALID },
{ 0x1D2C, 0x1D2E, .p.property = IDNA_P_DISALLOWED },
{ 0x1D2F, 0x1D2F, .p.property = IDNA_P_PVALID },
@@ -1197,9 +1220,9 @@ idna_table idna_derived[] = {
{ 0x1D78, 0x1D78, .p.property = IDNA_P_DISALLOWED },
{ 0x1D79, 0x1D9A, .p.property = IDNA_P_PVALID },
{ 0x1D9B, 0x1DBF, .p.property = IDNA_P_DISALLOWED },
- { 0x1DC0, 0x1DE6, .p.property = IDNA_P_PVALID },
- { 0x1DE7, 0x1DFC, .p.property = IDNA_P_UNASSIGNED },
- { 0x1DFD, 0x1DFF, .p.property = IDNA_P_PVALID },
+ { 0x1DC0, 0x1DF9, .p.property = IDNA_P_PVALID },
+ { 0x1DFA, 0x1DFA, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1DFB, 0x1DFF, .p.property = IDNA_P_PVALID },
{ 0x1E00, 0x1E00, .p.property = IDNA_P_DISALLOWED },
{ 0x1E01, 0x1E01, .p.property = IDNA_P_PVALID },
{ 0x1E02, 0x1E02, .p.property = IDNA_P_DISALLOWED },
@@ -1518,65 +1541,35 @@ idna_table idna_derived[] = {
{ 0x2000, 0x200B, .p.property = IDNA_P_DISALLOWED },
{ 0x200C, 0x200D, .p.property = IDNA_P_CONTEXTJ },
{ 0x200E, 0x2064, .p.property = IDNA_P_DISALLOWED },
- { 0x2065, 0x2069, .p.property = IDNA_P_UNASSIGNED },
- { 0x206A, 0x2071, .p.property = IDNA_P_DISALLOWED },
+ { 0x2065, 0x2065, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2066, 0x2071, .p.property = IDNA_P_DISALLOWED },
{ 0x2072, 0x2073, .p.property = IDNA_P_UNASSIGNED },
{ 0x2074, 0x208E, .p.property = IDNA_P_DISALLOWED },
{ 0x208F, 0x208F, .p.property = IDNA_P_UNASSIGNED },
- { 0x2090, 0x2094, .p.property = IDNA_P_DISALLOWED },
- { 0x2095, 0x209F, .p.property = IDNA_P_UNASSIGNED },
- { 0x20A0, 0x20B8, .p.property = IDNA_P_DISALLOWED },
- { 0x20B9, 0x20CF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2090, 0x209C, .p.property = IDNA_P_DISALLOWED },
+ { 0x209D, 0x209F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x20A0, 0x20BF, .p.property = IDNA_P_DISALLOWED },
+ { 0x20C0, 0x20CF, .p.property = IDNA_P_UNASSIGNED },
{ 0x20D0, 0x20F0, .p.property = IDNA_P_DISALLOWED },
{ 0x20F1, 0x20FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x2100, 0x214D, .p.property = IDNA_P_DISALLOWED },
{ 0x214E, 0x214E, .p.property = IDNA_P_PVALID },
{ 0x214F, 0x2183, .p.property = IDNA_P_DISALLOWED },
{ 0x2184, 0x2184, .p.property = IDNA_P_PVALID },
- { 0x2185, 0x2189, .p.property = IDNA_P_DISALLOWED },
- { 0x218A, 0x218F, .p.property = IDNA_P_UNASSIGNED },
- { 0x2190, 0x23E8, .p.property = IDNA_P_DISALLOWED },
- { 0x23E9, 0x23FF, .p.property = IDNA_P_UNASSIGNED },
- { 0x2400, 0x2426, .p.property = IDNA_P_DISALLOWED },
+ { 0x2185, 0x218B, .p.property = IDNA_P_DISALLOWED },
+ { 0x218C, 0x218F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2190, 0x2426, .p.property = IDNA_P_DISALLOWED },
{ 0x2427, 0x243F, .p.property = IDNA_P_UNASSIGNED },
{ 0x2440, 0x244A, .p.property = IDNA_P_DISALLOWED },
{ 0x244B, 0x245F, .p.property = IDNA_P_UNASSIGNED },
- { 0x2460, 0x26CD, .p.property = IDNA_P_DISALLOWED },
- { 0x26CE, 0x26CE, .p.property = IDNA_P_UNASSIGNED },
- { 0x26CF, 0x26E1, .p.property = IDNA_P_DISALLOWED },
- { 0x26E2, 0x26E2, .p.property = IDNA_P_UNASSIGNED },
- { 0x26E3, 0x26E3, .p.property = IDNA_P_DISALLOWED },
- { 0x26E4, 0x26E7, .p.property = IDNA_P_UNASSIGNED },
- { 0x26E8, 0x26FF, .p.property = IDNA_P_DISALLOWED },
- { 0x2700, 0x2700, .p.property = IDNA_P_UNASSIGNED },
- { 0x2701, 0x2704, .p.property = IDNA_P_DISALLOWED },
- { 0x2705, 0x2705, .p.property = IDNA_P_UNASSIGNED },
- { 0x2706, 0x2709, .p.property = IDNA_P_DISALLOWED },
- { 0x270A, 0x270B, .p.property = IDNA_P_UNASSIGNED },
- { 0x270C, 0x2727, .p.property = IDNA_P_DISALLOWED },
- { 0x2728, 0x2728, .p.property = IDNA_P_UNASSIGNED },
- { 0x2729, 0x274B, .p.property = IDNA_P_DISALLOWED },
- { 0x274C, 0x274C, .p.property = IDNA_P_UNASSIGNED },
- { 0x274D, 0x274D, .p.property = IDNA_P_DISALLOWED },
- { 0x274E, 0x274E, .p.property = IDNA_P_UNASSIGNED },
- { 0x274F, 0x2752, .p.property = IDNA_P_DISALLOWED },
- { 0x2753, 0x2755, .p.property = IDNA_P_UNASSIGNED },
- { 0x2756, 0x275E, .p.property = IDNA_P_DISALLOWED },
- { 0x275F, 0x2760, .p.property = IDNA_P_UNASSIGNED },
- { 0x2761, 0x2794, .p.property = IDNA_P_DISALLOWED },
- { 0x2795, 0x2797, .p.property = IDNA_P_UNASSIGNED },
- { 0x2798, 0x27AF, .p.property = IDNA_P_DISALLOWED },
- { 0x27B0, 0x27B0, .p.property = IDNA_P_UNASSIGNED },
- { 0x27B1, 0x27BE, .p.property = IDNA_P_DISALLOWED },
- { 0x27BF, 0x27BF, .p.property = IDNA_P_UNASSIGNED },
- { 0x27C0, 0x27CA, .p.property = IDNA_P_DISALLOWED },
- { 0x27CB, 0x27CB, .p.property = IDNA_P_UNASSIGNED },
- { 0x27CC, 0x27CC, .p.property = IDNA_P_DISALLOWED },
- { 0x27CD, 0x27CF, .p.property = IDNA_P_UNASSIGNED },
- { 0x27D0, 0x2B4C, .p.property = IDNA_P_DISALLOWED },
- { 0x2B4D, 0x2B4F, .p.property = IDNA_P_UNASSIGNED },
- { 0x2B50, 0x2B59, .p.property = IDNA_P_DISALLOWED },
- { 0x2B5A, 0x2BFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2460, 0x2B73, .p.property = IDNA_P_DISALLOWED },
+ { 0x2B74, 0x2B75, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2B76, 0x2B95, .p.property = IDNA_P_DISALLOWED },
+ { 0x2B96, 0x2B97, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2B98, 0x2BC8, .p.property = IDNA_P_DISALLOWED },
+ { 0x2BC9, 0x2BC9, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2BCA, 0x2BFE, .p.property = IDNA_P_DISALLOWED },
+ { 0x2BFF, 0x2BFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x2C00, 0x2C2E, .p.property = IDNA_P_DISALLOWED },
{ 0x2C2F, 0x2C2F, .p.property = IDNA_P_UNASSIGNED },
{ 0x2C30, 0x2C5E, .p.property = IDNA_P_PVALID },
@@ -1701,15 +1694,21 @@ idna_table idna_derived[] = {
{ 0x2CEC, 0x2CEC, .p.property = IDNA_P_PVALID },
{ 0x2CED, 0x2CED, .p.property = IDNA_P_DISALLOWED },
{ 0x2CEE, 0x2CF1, .p.property = IDNA_P_PVALID },
- { 0x2CF2, 0x2CF8, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2CF2, 0x2CF2, .p.property = IDNA_P_DISALLOWED },
+ { 0x2CF3, 0x2CF3, .p.property = IDNA_P_PVALID },
+ { 0x2CF4, 0x2CF8, .p.property = IDNA_P_UNASSIGNED },
{ 0x2CF9, 0x2CFF, .p.property = IDNA_P_DISALLOWED },
{ 0x2D00, 0x2D25, .p.property = IDNA_P_PVALID },
- { 0x2D26, 0x2D2F, .p.property = IDNA_P_UNASSIGNED },
- { 0x2D30, 0x2D65, .p.property = IDNA_P_PVALID },
- { 0x2D66, 0x2D6E, .p.property = IDNA_P_UNASSIGNED },
- { 0x2D6F, 0x2D6F, .p.property = IDNA_P_DISALLOWED },
- { 0x2D70, 0x2D7F, .p.property = IDNA_P_UNASSIGNED },
- { 0x2D80, 0x2D96, .p.property = IDNA_P_PVALID },
+ { 0x2D26, 0x2D26, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2D27, 0x2D27, .p.property = IDNA_P_PVALID },
+ { 0x2D28, 0x2D2C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2D2D, 0x2D2D, .p.property = IDNA_P_PVALID },
+ { 0x2D2E, 0x2D2F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2D30, 0x2D67, .p.property = IDNA_P_PVALID },
+ { 0x2D68, 0x2D6E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2D6F, 0x2D70, .p.property = IDNA_P_DISALLOWED },
+ { 0x2D71, 0x2D7E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2D7F, 0x2D96, .p.property = IDNA_P_PVALID },
{ 0x2D97, 0x2D9F, .p.property = IDNA_P_UNASSIGNED },
{ 0x2DA0, 0x2DA6, .p.property = IDNA_P_PVALID },
{ 0x2DA7, 0x2DA7, .p.property = IDNA_P_UNASSIGNED },
@@ -1730,8 +1729,8 @@ idna_table idna_derived[] = {
{ 0x2DE0, 0x2DFF, .p.property = IDNA_P_PVALID },
{ 0x2E00, 0x2E2E, .p.property = IDNA_P_DISALLOWED },
{ 0x2E2F, 0x2E2F, .p.property = IDNA_P_PVALID },
- { 0x2E30, 0x2E31, .p.property = IDNA_P_DISALLOWED },
- { 0x2E32, 0x2E7F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2E30, 0x2E4E, .p.property = IDNA_P_DISALLOWED },
+ { 0x2E4F, 0x2E7F, .p.property = IDNA_P_UNASSIGNED },
{ 0x2E80, 0x2E99, .p.property = IDNA_P_DISALLOWED },
{ 0x2E9A, 0x2E9A, .p.property = IDNA_P_UNASSIGNED },
{ 0x2E9B, 0x2EF3, .p.property = IDNA_P_DISALLOWED },
@@ -1759,13 +1758,13 @@ idna_table idna_derived[] = {
{ 0x30FC, 0x30FE, .p.property = IDNA_P_PVALID },
{ 0x30FF, 0x30FF, .p.property = IDNA_P_DISALLOWED },
{ 0x3100, 0x3104, .p.property = IDNA_P_UNASSIGNED },
- { 0x3105, 0x312D, .p.property = IDNA_P_PVALID },
- { 0x312E, 0x3130, .p.property = IDNA_P_UNASSIGNED },
+ { 0x3105, 0x312F, .p.property = IDNA_P_PVALID },
+ { 0x3130, 0x3130, .p.property = IDNA_P_UNASSIGNED },
{ 0x3131, 0x318E, .p.property = IDNA_P_DISALLOWED },
{ 0x318F, 0x318F, .p.property = IDNA_P_UNASSIGNED },
{ 0x3190, 0x319F, .p.property = IDNA_P_DISALLOWED },
- { 0x31A0, 0x31B7, .p.property = IDNA_P_PVALID },
- { 0x31B8, 0x31BF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x31A0, 0x31BA, .p.property = IDNA_P_PVALID },
+ { 0x31BB, 0x31BF, .p.property = IDNA_P_UNASSIGNED },
{ 0x31C0, 0x31E3, .p.property = IDNA_P_DISALLOWED },
{ 0x31E4, 0x31EF, .p.property = IDNA_P_UNASSIGNED },
{ 0x31F0, 0x31FF, .p.property = IDNA_P_PVALID },
@@ -1777,8 +1776,8 @@ idna_table idna_derived[] = {
{ 0x3400, 0x4DB5, .p.property = IDNA_P_PVALID },
{ 0x4DB6, 0x4DBF, .p.property = IDNA_P_UNASSIGNED },
{ 0x4DC0, 0x4DFF, .p.property = IDNA_P_DISALLOWED },
- { 0x4E00, 0x9FCB, .p.property = IDNA_P_PVALID },
- { 0x9FCC, 0x9FFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x4E00, 0x9FEF, .p.property = IDNA_P_PVALID },
+ { 0x9FF0, 0x9FFF, .p.property = IDNA_P_UNASSIGNED },
{ 0xA000, 0xA48C, .p.property = IDNA_P_PVALID },
{ 0xA48D, 0xA48F, .p.property = IDNA_P_UNASSIGNED },
{ 0xA490, 0xA4C6, .p.property = IDNA_P_DISALLOWED },
@@ -1821,7 +1820,8 @@ idna_table idna_derived[] = {
{ 0xA65D, 0xA65D, .p.property = IDNA_P_PVALID },
{ 0xA65E, 0xA65E, .p.property = IDNA_P_DISALLOWED },
{ 0xA65F, 0xA65F, .p.property = IDNA_P_PVALID },
- { 0xA660, 0xA661, .p.property = IDNA_P_UNASSIGNED },
+ { 0xA660, 0xA660, .p.property = IDNA_P_DISALLOWED },
+ { 0xA661, 0xA661, .p.property = IDNA_P_PVALID },
{ 0xA662, 0xA662, .p.property = IDNA_P_DISALLOWED },
{ 0xA663, 0xA663, .p.property = IDNA_P_PVALID },
{ 0xA664, 0xA664, .p.property = IDNA_P_DISALLOWED },
@@ -1835,8 +1835,7 @@ idna_table idna_derived[] = {
{ 0xA66C, 0xA66C, .p.property = IDNA_P_DISALLOWED },
{ 0xA66D, 0xA66F, .p.property = IDNA_P_PVALID },
{ 0xA670, 0xA673, .p.property = IDNA_P_DISALLOWED },
- { 0xA674, 0xA67B, .p.property = IDNA_P_UNASSIGNED },
- { 0xA67C, 0xA67D, .p.property = IDNA_P_PVALID },
+ { 0xA674, 0xA67D, .p.property = IDNA_P_PVALID },
{ 0xA67E, 0xA67E, .p.property = IDNA_P_DISALLOWED },
{ 0xA67F, 0xA67F, .p.property = IDNA_P_PVALID },
{ 0xA680, 0xA680, .p.property = IDNA_P_DISALLOWED },
@@ -1863,8 +1862,12 @@ idna_table idna_derived[] = {
{ 0xA695, 0xA695, .p.property = IDNA_P_PVALID },
{ 0xA696, 0xA696, .p.property = IDNA_P_DISALLOWED },
{ 0xA697, 0xA697, .p.property = IDNA_P_PVALID },
- { 0xA698, 0xA69F, .p.property = IDNA_P_UNASSIGNED },
- { 0xA6A0, 0xA6E5, .p.property = IDNA_P_PVALID },
+ { 0xA698, 0xA698, .p.property = IDNA_P_DISALLOWED },
+ { 0xA699, 0xA699, .p.property = IDNA_P_PVALID },
+ { 0xA69A, 0xA69A, .p.property = IDNA_P_DISALLOWED },
+ { 0xA69B, 0xA69B, .p.property = IDNA_P_PVALID },
+ { 0xA69C, 0xA69D, .p.property = IDNA_P_DISALLOWED },
+ { 0xA69E, 0xA6E5, .p.property = IDNA_P_PVALID },
{ 0xA6E6, 0xA6EF, .p.property = IDNA_P_DISALLOWED },
{ 0xA6F0, 0xA6F1, .p.property = IDNA_P_PVALID },
{ 0xA6F2, 0xA6F7, .p.property = IDNA_P_DISALLOWED },
@@ -1965,8 +1968,44 @@ idna_table idna_derived[] = {
{ 0xA787, 0xA788, .p.property = IDNA_P_PVALID },
{ 0xA789, 0xA78B, .p.property = IDNA_P_DISALLOWED },
{ 0xA78C, 0xA78C, .p.property = IDNA_P_PVALID },
- { 0xA78D, 0xA7FA, .p.property = IDNA_P_UNASSIGNED },
- { 0xA7FB, 0xA827, .p.property = IDNA_P_PVALID },
+ { 0xA78D, 0xA78D, .p.property = IDNA_P_DISALLOWED },
+ { 0xA78E, 0xA78F, .p.property = IDNA_P_PVALID },
+ { 0xA790, 0xA790, .p.property = IDNA_P_DISALLOWED },
+ { 0xA791, 0xA791, .p.property = IDNA_P_PVALID },
+ { 0xA792, 0xA792, .p.property = IDNA_P_DISALLOWED },
+ { 0xA793, 0xA795, .p.property = IDNA_P_PVALID },
+ { 0xA796, 0xA796, .p.property = IDNA_P_DISALLOWED },
+ { 0xA797, 0xA797, .p.property = IDNA_P_PVALID },
+ { 0xA798, 0xA798, .p.property = IDNA_P_DISALLOWED },
+ { 0xA799, 0xA799, .p.property = IDNA_P_PVALID },
+ { 0xA79A, 0xA79A, .p.property = IDNA_P_DISALLOWED },
+ { 0xA79B, 0xA79B, .p.property = IDNA_P_PVALID },
+ { 0xA79C, 0xA79C, .p.property = IDNA_P_DISALLOWED },
+ { 0xA79D, 0xA79D, .p.property = IDNA_P_PVALID },
+ { 0xA79E, 0xA79E, .p.property = IDNA_P_DISALLOWED },
+ { 0xA79F, 0xA79F, .p.property = IDNA_P_PVALID },
+ { 0xA7A0, 0xA7A0, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7A1, 0xA7A1, .p.property = IDNA_P_PVALID },
+ { 0xA7A2, 0xA7A2, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7A3, 0xA7A3, .p.property = IDNA_P_PVALID },
+ { 0xA7A4, 0xA7A4, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7A5, 0xA7A5, .p.property = IDNA_P_PVALID },
+ { 0xA7A6, 0xA7A6, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7A7, 0xA7A7, .p.property = IDNA_P_PVALID },
+ { 0xA7A8, 0xA7A8, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7A9, 0xA7A9, .p.property = IDNA_P_PVALID },
+ { 0xA7AA, 0xA7AE, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7AF, 0xA7AF, .p.property = IDNA_P_PVALID },
+ { 0xA7B0, 0xA7B4, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7B5, 0xA7B5, .p.property = IDNA_P_PVALID },
+ { 0xA7B6, 0xA7B6, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7B7, 0xA7B7, .p.property = IDNA_P_PVALID },
+ { 0xA7B8, 0xA7B8, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7B9, 0xA7B9, .p.property = IDNA_P_PVALID },
+ { 0xA7BA, 0xA7F6, .p.property = IDNA_P_UNASSIGNED },
+ { 0xA7F7, 0xA7F7, .p.property = IDNA_P_PVALID },
+ { 0xA7F8, 0xA7F9, .p.property = IDNA_P_DISALLOWED },
+ { 0xA7FA, 0xA827, .p.property = IDNA_P_PVALID },
{ 0xA828, 0xA82B, .p.property = IDNA_P_DISALLOWED },
{ 0xA82C, 0xA82F, .p.property = IDNA_P_UNASSIGNED },
{ 0xA830, 0xA839, .p.property = IDNA_P_DISALLOWED },
@@ -1974,16 +2013,16 @@ idna_table idna_derived[] = {
{ 0xA840, 0xA873, .p.property = IDNA_P_PVALID },
{ 0xA874, 0xA877, .p.property = IDNA_P_DISALLOWED },
{ 0xA878, 0xA87F, .p.property = IDNA_P_UNASSIGNED },
- { 0xA880, 0xA8C4, .p.property = IDNA_P_PVALID },
- { 0xA8C5, 0xA8CD, .p.property = IDNA_P_UNASSIGNED },
+ { 0xA880, 0xA8C5, .p.property = IDNA_P_PVALID },
+ { 0xA8C6, 0xA8CD, .p.property = IDNA_P_UNASSIGNED },
{ 0xA8CE, 0xA8CF, .p.property = IDNA_P_DISALLOWED },
{ 0xA8D0, 0xA8D9, .p.property = IDNA_P_PVALID },
{ 0xA8DA, 0xA8DF, .p.property = IDNA_P_UNASSIGNED },
{ 0xA8E0, 0xA8F7, .p.property = IDNA_P_PVALID },
{ 0xA8F8, 0xA8FA, .p.property = IDNA_P_DISALLOWED },
{ 0xA8FB, 0xA8FB, .p.property = IDNA_P_PVALID },
- { 0xA8FC, 0xA8FF, .p.property = IDNA_P_UNASSIGNED },
- { 0xA900, 0xA92D, .p.property = IDNA_P_PVALID },
+ { 0xA8FC, 0xA8FC, .p.property = IDNA_P_DISALLOWED },
+ { 0xA8FD, 0xA92D, .p.property = IDNA_P_PVALID },
{ 0xA92E, 0xA92F, .p.property = IDNA_P_DISALLOWED },
{ 0xA930, 0xA953, .p.property = IDNA_P_PVALID },
{ 0xA954, 0xA95E, .p.property = IDNA_P_UNASSIGNED },
@@ -1995,7 +2034,8 @@ idna_table idna_derived[] = {
{ 0xA9CF, 0xA9D9, .p.property = IDNA_P_PVALID },
{ 0xA9DA, 0xA9DD, .p.property = IDNA_P_UNASSIGNED },
{ 0xA9DE, 0xA9DF, .p.property = IDNA_P_DISALLOWED },
- { 0xA9E0, 0xA9FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0xA9E0, 0xA9FE, .p.property = IDNA_P_PVALID },
+ { 0xA9FF, 0xA9FF, .p.property = IDNA_P_UNASSIGNED },
{ 0xAA00, 0xAA36, .p.property = IDNA_P_PVALID },
{ 0xAA37, 0xAA3F, .p.property = IDNA_P_UNASSIGNED },
{ 0xAA40, 0xAA4D, .p.property = IDNA_P_PVALID },
@@ -2005,13 +2045,29 @@ idna_table idna_derived[] = {
{ 0xAA5C, 0xAA5F, .p.property = IDNA_P_DISALLOWED },
{ 0xAA60, 0xAA76, .p.property = IDNA_P_PVALID },
{ 0xAA77, 0xAA79, .p.property = IDNA_P_DISALLOWED },
- { 0xAA7A, 0xAA7B, .p.property = IDNA_P_PVALID },
- { 0xAA7C, 0xAA7F, .p.property = IDNA_P_UNASSIGNED },
- { 0xAA80, 0xAAC2, .p.property = IDNA_P_PVALID },
+ { 0xAA7A, 0xAAC2, .p.property = IDNA_P_PVALID },
{ 0xAAC3, 0xAADA, .p.property = IDNA_P_UNASSIGNED },
{ 0xAADB, 0xAADD, .p.property = IDNA_P_PVALID },
{ 0xAADE, 0xAADF, .p.property = IDNA_P_DISALLOWED },
- { 0xAAE0, 0xABBF, .p.property = IDNA_P_UNASSIGNED },
+ { 0xAAE0, 0xAAEF, .p.property = IDNA_P_PVALID },
+ { 0xAAF0, 0xAAF1, .p.property = IDNA_P_DISALLOWED },
+ { 0xAAF2, 0xAAF6, .p.property = IDNA_P_PVALID },
+ { 0xAAF7, 0xAB00, .p.property = IDNA_P_UNASSIGNED },
+ { 0xAB01, 0xAB06, .p.property = IDNA_P_PVALID },
+ { 0xAB07, 0xAB08, .p.property = IDNA_P_UNASSIGNED },
+ { 0xAB09, 0xAB0E, .p.property = IDNA_P_PVALID },
+ { 0xAB0F, 0xAB10, .p.property = IDNA_P_UNASSIGNED },
+ { 0xAB11, 0xAB16, .p.property = IDNA_P_PVALID },
+ { 0xAB17, 0xAB1F, .p.property = IDNA_P_UNASSIGNED },
+ { 0xAB20, 0xAB26, .p.property = IDNA_P_PVALID },
+ { 0xAB27, 0xAB27, .p.property = IDNA_P_UNASSIGNED },
+ { 0xAB28, 0xAB2E, .p.property = IDNA_P_PVALID },
+ { 0xAB2F, 0xAB2F, .p.property = IDNA_P_UNASSIGNED },
+ { 0xAB30, 0xAB5A, .p.property = IDNA_P_PVALID },
+ { 0xAB5B, 0xAB5F, .p.property = IDNA_P_DISALLOWED },
+ { 0xAB60, 0xAB65, .p.property = IDNA_P_PVALID },
+ { 0xAB66, 0xAB6F, .p.property = IDNA_P_UNASSIGNED },
+ { 0xAB70, 0xABBF, .p.property = IDNA_P_DISALLOWED },
{ 0xABC0, 0xABEA, .p.property = IDNA_P_PVALID },
{ 0xABEB, 0xABEB, .p.property = IDNA_P_DISALLOWED },
{ 0xABEC, 0xABED, .p.property = IDNA_P_PVALID },
@@ -2038,9 +2094,7 @@ idna_table idna_derived[] = {
{ 0xFA23, 0xFA24, .p.property = IDNA_P_PVALID },
{ 0xFA25, 0xFA26, .p.property = IDNA_P_DISALLOWED },
{ 0xFA27, 0xFA29, .p.property = IDNA_P_PVALID },
- { 0xFA2A, 0xFA2D, .p.property = IDNA_P_DISALLOWED },
- { 0xFA2E, 0xFA2F, .p.property = IDNA_P_UNASSIGNED },
- { 0xFA30, 0xFA6D, .p.property = IDNA_P_DISALLOWED },
+ { 0xFA2A, 0xFA6D, .p.property = IDNA_P_DISALLOWED },
{ 0xFA6E, 0xFA6F, .p.property = IDNA_P_UNASSIGNED },
{ 0xFA70, 0xFAD9, .p.property = IDNA_P_DISALLOWED },
{ 0xFADA, 0xFAFF, .p.property = IDNA_P_UNASSIGNED },
@@ -2060,8 +2114,8 @@ idna_table idna_derived[] = {
{ 0xFB42, 0xFB42, .p.property = IDNA_P_UNASSIGNED },
{ 0xFB43, 0xFB44, .p.property = IDNA_P_DISALLOWED },
{ 0xFB45, 0xFB45, .p.property = IDNA_P_UNASSIGNED },
- { 0xFB46, 0xFBB1, .p.property = IDNA_P_DISALLOWED },
- { 0xFBB2, 0xFBD2, .p.property = IDNA_P_UNASSIGNED },
+ { 0xFB46, 0xFBC1, .p.property = IDNA_P_DISALLOWED },
+ { 0xFBC2, 0xFBD2, .p.property = IDNA_P_UNASSIGNED },
{ 0xFBD3, 0xFD3F, .p.property = IDNA_P_DISALLOWED },
{ 0xFD40, 0xFD4F, .p.property = IDNA_P_UNASSIGNED },
{ 0xFD50, 0xFD8F, .p.property = IDNA_P_DISALLOWED },
@@ -2072,8 +2126,7 @@ idna_table idna_derived[] = {
{ 0xFDFE, 0xFDFF, .p.property = IDNA_P_UNASSIGNED },
{ 0xFE00, 0xFE19, .p.property = IDNA_P_DISALLOWED },
{ 0xFE1A, 0xFE1F, .p.property = IDNA_P_UNASSIGNED },
- { 0xFE20, 0xFE26, .p.property = IDNA_P_PVALID },
- { 0xFE27, 0xFE2F, .p.property = IDNA_P_UNASSIGNED },
+ { 0xFE20, 0xFE2F, .p.property = IDNA_P_PVALID },
{ 0xFE30, 0xFE52, .p.property = IDNA_P_DISALLOWED },
{ 0xFE53, 0xFE53, .p.property = IDNA_P_UNASSIGNED },
{ 0xFE54, 0xFE66, .p.property = IDNA_P_DISALLOWED },
@@ -2121,26 +2174,32 @@ idna_table idna_derived[] = {
{ 0x10103, 0x10106, .p.property = IDNA_P_UNASSIGNED },
{ 0x10107, 0x10133, .p.property = IDNA_P_DISALLOWED },
{ 0x10134, 0x10136, .p.property = IDNA_P_UNASSIGNED },
- { 0x10137, 0x1018A, .p.property = IDNA_P_DISALLOWED },
- { 0x1018B, 0x1018F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10137, 0x1018E, .p.property = IDNA_P_DISALLOWED },
+ { 0x1018F, 0x1018F, .p.property = IDNA_P_UNASSIGNED },
{ 0x10190, 0x1019B, .p.property = IDNA_P_DISALLOWED },
- { 0x1019C, 0x101CF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1019C, 0x1019F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x101A0, 0x101A0, .p.property = IDNA_P_DISALLOWED },
+ { 0x101A1, 0x101CF, .p.property = IDNA_P_UNASSIGNED },
{ 0x101D0, 0x101FC, .p.property = IDNA_P_DISALLOWED },
{ 0x101FD, 0x101FD, .p.property = IDNA_P_PVALID },
{ 0x101FE, 0x1027F, .p.property = IDNA_P_UNASSIGNED },
{ 0x10280, 0x1029C, .p.property = IDNA_P_PVALID },
{ 0x1029D, 0x1029F, .p.property = IDNA_P_UNASSIGNED },
{ 0x102A0, 0x102D0, .p.property = IDNA_P_PVALID },
- { 0x102D1, 0x102FF, .p.property = IDNA_P_UNASSIGNED },
- { 0x10300, 0x1031E, .p.property = IDNA_P_PVALID },
- { 0x1031F, 0x1031F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x102D1, 0x102DF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x102E0, 0x102E0, .p.property = IDNA_P_PVALID },
+ { 0x102E1, 0x102FB, .p.property = IDNA_P_DISALLOWED },
+ { 0x102FC, 0x102FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10300, 0x1031F, .p.property = IDNA_P_PVALID },
{ 0x10320, 0x10323, .p.property = IDNA_P_DISALLOWED },
- { 0x10324, 0x1032F, .p.property = IDNA_P_UNASSIGNED },
- { 0x10330, 0x10340, .p.property = IDNA_P_PVALID },
+ { 0x10324, 0x1032C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1032D, 0x10340, .p.property = IDNA_P_PVALID },
{ 0x10341, 0x10341, .p.property = IDNA_P_DISALLOWED },
{ 0x10342, 0x10349, .p.property = IDNA_P_PVALID },
{ 0x1034A, 0x1034A, .p.property = IDNA_P_DISALLOWED },
- { 0x1034B, 0x1037F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1034B, 0x1034F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10350, 0x1037A, .p.property = IDNA_P_PVALID },
+ { 0x1037B, 0x1037F, .p.property = IDNA_P_UNASSIGNED },
{ 0x10380, 0x1039D, .p.property = IDNA_P_PVALID },
{ 0x1039E, 0x1039E, .p.property = IDNA_P_UNASSIGNED },
{ 0x1039F, 0x1039F, .p.property = IDNA_P_DISALLOWED },
@@ -2153,7 +2212,23 @@ idna_table idna_derived[] = {
{ 0x10428, 0x1049D, .p.property = IDNA_P_PVALID },
{ 0x1049E, 0x1049F, .p.property = IDNA_P_UNASSIGNED },
{ 0x104A0, 0x104A9, .p.property = IDNA_P_PVALID },
- { 0x104AA, 0x107FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x104AA, 0x104AF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x104B0, 0x104D3, .p.property = IDNA_P_DISALLOWED },
+ { 0x104D4, 0x104D7, .p.property = IDNA_P_UNASSIGNED },
+ { 0x104D8, 0x104FB, .p.property = IDNA_P_PVALID },
+ { 0x104FC, 0x104FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10500, 0x10527, .p.property = IDNA_P_PVALID },
+ { 0x10528, 0x1052F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10530, 0x10563, .p.property = IDNA_P_PVALID },
+ { 0x10564, 0x1056E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1056F, 0x1056F, .p.property = IDNA_P_DISALLOWED },
+ { 0x10570, 0x105FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10600, 0x10736, .p.property = IDNA_P_PVALID },
+ { 0x10737, 0x1073F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10740, 0x10755, .p.property = IDNA_P_PVALID },
+ { 0x10756, 0x1075F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10760, 0x10767, .p.property = IDNA_P_PVALID },
+ { 0x10768, 0x107FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x10800, 0x10805, .p.property = IDNA_P_PVALID },
{ 0x10806, 0x10807, .p.property = IDNA_P_UNASSIGNED },
{ 0x10808, 0x10808, .p.property = IDNA_P_PVALID },
@@ -2167,7 +2242,17 @@ idna_table idna_derived[] = {
{ 0x1083F, 0x10855, .p.property = IDNA_P_PVALID },
{ 0x10856, 0x10856, .p.property = IDNA_P_UNASSIGNED },
{ 0x10857, 0x1085F, .p.property = IDNA_P_DISALLOWED },
- { 0x10860, 0x108FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10860, 0x10876, .p.property = IDNA_P_PVALID },
+ { 0x10877, 0x1087F, .p.property = IDNA_P_DISALLOWED },
+ { 0x10880, 0x1089E, .p.property = IDNA_P_PVALID },
+ { 0x1089F, 0x108A6, .p.property = IDNA_P_UNASSIGNED },
+ { 0x108A7, 0x108AF, .p.property = IDNA_P_DISALLOWED },
+ { 0x108B0, 0x108DF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x108E0, 0x108F2, .p.property = IDNA_P_PVALID },
+ { 0x108F3, 0x108F3, .p.property = IDNA_P_UNASSIGNED },
+ { 0x108F4, 0x108F5, .p.property = IDNA_P_PVALID },
+ { 0x108F6, 0x108FA, .p.property = IDNA_P_UNASSIGNED },
+ { 0x108FB, 0x108FF, .p.property = IDNA_P_DISALLOWED },
{ 0x10900, 0x10915, .p.property = IDNA_P_PVALID },
{ 0x10916, 0x1091B, .p.property = IDNA_P_DISALLOWED },
{ 0x1091C, 0x1091E, .p.property = IDNA_P_UNASSIGNED },
@@ -2175,7 +2260,14 @@ idna_table idna_derived[] = {
{ 0x10920, 0x10939, .p.property = IDNA_P_PVALID },
{ 0x1093A, 0x1093E, .p.property = IDNA_P_UNASSIGNED },
{ 0x1093F, 0x1093F, .p.property = IDNA_P_DISALLOWED },
- { 0x10940, 0x109FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10940, 0x1097F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10980, 0x109B7, .p.property = IDNA_P_PVALID },
+ { 0x109B8, 0x109BB, .p.property = IDNA_P_UNASSIGNED },
+ { 0x109BC, 0x109BD, .p.property = IDNA_P_DISALLOWED },
+ { 0x109BE, 0x109BF, .p.property = IDNA_P_PVALID },
+ { 0x109C0, 0x109CF, .p.property = IDNA_P_DISALLOWED },
+ { 0x109D0, 0x109D1, .p.property = IDNA_P_UNASSIGNED },
+ { 0x109D2, 0x109FF, .p.property = IDNA_P_DISALLOWED },
{ 0x10A00, 0x10A03, .p.property = IDNA_P_PVALID },
{ 0x10A04, 0x10A04, .p.property = IDNA_P_UNASSIGNED },
{ 0x10A05, 0x10A06, .p.property = IDNA_P_PVALID },
@@ -2184,18 +2276,26 @@ idna_table idna_derived[] = {
{ 0x10A14, 0x10A14, .p.property = IDNA_P_UNASSIGNED },
{ 0x10A15, 0x10A17, .p.property = IDNA_P_PVALID },
{ 0x10A18, 0x10A18, .p.property = IDNA_P_UNASSIGNED },
- { 0x10A19, 0x10A33, .p.property = IDNA_P_PVALID },
- { 0x10A34, 0x10A37, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10A19, 0x10A35, .p.property = IDNA_P_PVALID },
+ { 0x10A36, 0x10A37, .p.property = IDNA_P_UNASSIGNED },
{ 0x10A38, 0x10A3A, .p.property = IDNA_P_PVALID },
{ 0x10A3B, 0x10A3E, .p.property = IDNA_P_UNASSIGNED },
{ 0x10A3F, 0x10A3F, .p.property = IDNA_P_PVALID },
- { 0x10A40, 0x10A47, .p.property = IDNA_P_DISALLOWED },
- { 0x10A48, 0x10A4F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10A40, 0x10A48, .p.property = IDNA_P_DISALLOWED },
+ { 0x10A49, 0x10A4F, .p.property = IDNA_P_UNASSIGNED },
{ 0x10A50, 0x10A58, .p.property = IDNA_P_DISALLOWED },
{ 0x10A59, 0x10A5F, .p.property = IDNA_P_UNASSIGNED },
{ 0x10A60, 0x10A7C, .p.property = IDNA_P_PVALID },
{ 0x10A7D, 0x10A7F, .p.property = IDNA_P_DISALLOWED },
- { 0x10A80, 0x10AFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10A80, 0x10A9C, .p.property = IDNA_P_PVALID },
+ { 0x10A9D, 0x10A9F, .p.property = IDNA_P_DISALLOWED },
+ { 0x10AA0, 0x10ABF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10AC0, 0x10AC7, .p.property = IDNA_P_PVALID },
+ { 0x10AC8, 0x10AC8, .p.property = IDNA_P_DISALLOWED },
+ { 0x10AC9, 0x10AE6, .p.property = IDNA_P_PVALID },
+ { 0x10AE7, 0x10AEA, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10AEB, 0x10AF6, .p.property = IDNA_P_DISALLOWED },
+ { 0x10AF7, 0x10AFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x10B00, 0x10B35, .p.property = IDNA_P_PVALID },
{ 0x10B36, 0x10B38, .p.property = IDNA_P_UNASSIGNED },
{ 0x10B39, 0x10B3F, .p.property = IDNA_P_DISALLOWED },
@@ -2205,34 +2305,312 @@ idna_table idna_derived[] = {
{ 0x10B60, 0x10B72, .p.property = IDNA_P_PVALID },
{ 0x10B73, 0x10B77, .p.property = IDNA_P_UNASSIGNED },
{ 0x10B78, 0x10B7F, .p.property = IDNA_P_DISALLOWED },
- { 0x10B80, 0x10BFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10B80, 0x10B91, .p.property = IDNA_P_PVALID },
+ { 0x10B92, 0x10B98, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10B99, 0x10B9C, .p.property = IDNA_P_DISALLOWED },
+ { 0x10B9D, 0x10BA8, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10BA9, 0x10BAF, .p.property = IDNA_P_DISALLOWED },
+ { 0x10BB0, 0x10BFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x10C00, 0x10C48, .p.property = IDNA_P_PVALID },
- { 0x10C49, 0x10E5F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10C49, 0x10C7F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10C80, 0x10CB2, .p.property = IDNA_P_DISALLOWED },
+ { 0x10CB3, 0x10CBF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10CC0, 0x10CF2, .p.property = IDNA_P_PVALID },
+ { 0x10CF3, 0x10CF9, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10CFA, 0x10CFF, .p.property = IDNA_P_DISALLOWED },
+ { 0x10D00, 0x10D27, .p.property = IDNA_P_PVALID },
+ { 0x10D28, 0x10D2F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10D30, 0x10D39, .p.property = IDNA_P_PVALID },
+ { 0x10D3A, 0x10E5F, .p.property = IDNA_P_UNASSIGNED },
{ 0x10E60, 0x10E7E, .p.property = IDNA_P_DISALLOWED },
- { 0x10E7F, 0x1107F, .p.property = IDNA_P_UNASSIGNED },
- { 0x11080, 0x110BA, .p.property = IDNA_P_PVALID },
+ { 0x10E7F, 0x10EFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10F00, 0x10F1C, .p.property = IDNA_P_PVALID },
+ { 0x10F1D, 0x10F26, .p.property = IDNA_P_DISALLOWED },
+ { 0x10F27, 0x10F27, .p.property = IDNA_P_PVALID },
+ { 0x10F28, 0x10F2F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x10F30, 0x10F50, .p.property = IDNA_P_PVALID },
+ { 0x10F51, 0x10F59, .p.property = IDNA_P_DISALLOWED },
+ { 0x10F5A, 0x10FFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11000, 0x11046, .p.property = IDNA_P_PVALID },
+ { 0x11047, 0x1104D, .p.property = IDNA_P_DISALLOWED },
+ { 0x1104E, 0x11051, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11052, 0x11065, .p.property = IDNA_P_DISALLOWED },
+ { 0x11066, 0x1106F, .p.property = IDNA_P_PVALID },
+ { 0x11070, 0x1107E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1107F, 0x110BA, .p.property = IDNA_P_PVALID },
{ 0x110BB, 0x110C1, .p.property = IDNA_P_DISALLOWED },
- { 0x110C2, 0x11FFF, .p.property = IDNA_P_UNASSIGNED },
- { 0x12000, 0x1236E, .p.property = IDNA_P_PVALID },
- { 0x1236F, 0x123FF, .p.property = IDNA_P_UNASSIGNED },
- { 0x12400, 0x12462, .p.property = IDNA_P_DISALLOWED },
- { 0x12463, 0x1246F, .p.property = IDNA_P_UNASSIGNED },
- { 0x12470, 0x12473, .p.property = IDNA_P_DISALLOWED },
- { 0x12474, 0x12FFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x110C2, 0x110CC, .p.property = IDNA_P_UNASSIGNED },
+ { 0x110CD, 0x110CD, .p.property = IDNA_P_DISALLOWED },
+ { 0x110CE, 0x110CF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x110D0, 0x110E8, .p.property = IDNA_P_PVALID },
+ { 0x110E9, 0x110EF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x110F0, 0x110F9, .p.property = IDNA_P_PVALID },
+ { 0x110FA, 0x110FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11100, 0x11134, .p.property = IDNA_P_PVALID },
+ { 0x11135, 0x11135, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11136, 0x1113F, .p.property = IDNA_P_PVALID },
+ { 0x11140, 0x11143, .p.property = IDNA_P_DISALLOWED },
+ { 0x11144, 0x11146, .p.property = IDNA_P_PVALID },
+ { 0x11147, 0x1114F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11150, 0x11173, .p.property = IDNA_P_PVALID },
+ { 0x11174, 0x11175, .p.property = IDNA_P_DISALLOWED },
+ { 0x11176, 0x11176, .p.property = IDNA_P_PVALID },
+ { 0x11177, 0x1117F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11180, 0x111C4, .p.property = IDNA_P_PVALID },
+ { 0x111C5, 0x111C8, .p.property = IDNA_P_DISALLOWED },
+ { 0x111C9, 0x111CC, .p.property = IDNA_P_PVALID },
+ { 0x111CD, 0x111CD, .p.property = IDNA_P_DISALLOWED },
+ { 0x111CE, 0x111CF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x111D0, 0x111DA, .p.property = IDNA_P_PVALID },
+ { 0x111DB, 0x111DB, .p.property = IDNA_P_DISALLOWED },
+ { 0x111DC, 0x111DC, .p.property = IDNA_P_PVALID },
+ { 0x111DD, 0x111DF, .p.property = IDNA_P_DISALLOWED },
+ { 0x111E0, 0x111E0, .p.property = IDNA_P_UNASSIGNED },
+ { 0x111E1, 0x111F4, .p.property = IDNA_P_DISALLOWED },
+ { 0x111F5, 0x111FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11200, 0x11211, .p.property = IDNA_P_PVALID },
+ { 0x11212, 0x11212, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11213, 0x11237, .p.property = IDNA_P_PVALID },
+ { 0x11238, 0x1123D, .p.property = IDNA_P_DISALLOWED },
+ { 0x1123E, 0x1123E, .p.property = IDNA_P_PVALID },
+ { 0x1123F, 0x1127F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11280, 0x11286, .p.property = IDNA_P_PVALID },
+ { 0x11287, 0x11287, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11288, 0x11288, .p.property = IDNA_P_PVALID },
+ { 0x11289, 0x11289, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1128A, 0x1128D, .p.property = IDNA_P_PVALID },
+ { 0x1128E, 0x1128E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1128F, 0x1129D, .p.property = IDNA_P_PVALID },
+ { 0x1129E, 0x1129E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1129F, 0x112A8, .p.property = IDNA_P_PVALID },
+ { 0x112A9, 0x112A9, .p.property = IDNA_P_DISALLOWED },
+ { 0x112AA, 0x112AF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x112B0, 0x112EA, .p.property = IDNA_P_PVALID },
+ { 0x112EB, 0x112EF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x112F0, 0x112F9, .p.property = IDNA_P_PVALID },
+ { 0x112FA, 0x112FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11300, 0x11303, .p.property = IDNA_P_PVALID },
+ { 0x11304, 0x11304, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11305, 0x1130C, .p.property = IDNA_P_PVALID },
+ { 0x1130D, 0x1130E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1130F, 0x11310, .p.property = IDNA_P_PVALID },
+ { 0x11311, 0x11312, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11313, 0x11328, .p.property = IDNA_P_PVALID },
+ { 0x11329, 0x11329, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1132A, 0x11330, .p.property = IDNA_P_PVALID },
+ { 0x11331, 0x11331, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11332, 0x11333, .p.property = IDNA_P_PVALID },
+ { 0x11334, 0x11334, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11335, 0x11339, .p.property = IDNA_P_PVALID },
+ { 0x1133A, 0x1133A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1133B, 0x11344, .p.property = IDNA_P_PVALID },
+ { 0x11345, 0x11346, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11347, 0x11348, .p.property = IDNA_P_PVALID },
+ { 0x11349, 0x1134A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1134B, 0x1134D, .p.property = IDNA_P_PVALID },
+ { 0x1134E, 0x1134F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11350, 0x11350, .p.property = IDNA_P_PVALID },
+ { 0x11351, 0x11356, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11357, 0x11357, .p.property = IDNA_P_PVALID },
+ { 0x11358, 0x1135C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1135D, 0x11363, .p.property = IDNA_P_PVALID },
+ { 0x11364, 0x11365, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11366, 0x1136C, .p.property = IDNA_P_PVALID },
+ { 0x1136D, 0x1136F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11370, 0x11374, .p.property = IDNA_P_PVALID },
+ { 0x11375, 0x113FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11400, 0x1144A, .p.property = IDNA_P_PVALID },
+ { 0x1144B, 0x1144F, .p.property = IDNA_P_DISALLOWED },
+ { 0x11450, 0x11459, .p.property = IDNA_P_PVALID },
+ { 0x1145A, 0x1145A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1145B, 0x1145B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1145C, 0x1145C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1145D, 0x1145D, .p.property = IDNA_P_DISALLOWED },
+ { 0x1145E, 0x1145E, .p.property = IDNA_P_PVALID },
+ { 0x1145F, 0x1147F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11480, 0x114C5, .p.property = IDNA_P_PVALID },
+ { 0x114C6, 0x114C6, .p.property = IDNA_P_DISALLOWED },
+ { 0x114C7, 0x114C7, .p.property = IDNA_P_PVALID },
+ { 0x114C8, 0x114CF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x114D0, 0x114D9, .p.property = IDNA_P_PVALID },
+ { 0x114DA, 0x1157F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11580, 0x115B5, .p.property = IDNA_P_PVALID },
+ { 0x115B6, 0x115B7, .p.property = IDNA_P_UNASSIGNED },
+ { 0x115B8, 0x115C0, .p.property = IDNA_P_PVALID },
+ { 0x115C1, 0x115D7, .p.property = IDNA_P_DISALLOWED },
+ { 0x115D8, 0x115DD, .p.property = IDNA_P_PVALID },
+ { 0x115DE, 0x115FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11600, 0x11640, .p.property = IDNA_P_PVALID },
+ { 0x11641, 0x11643, .p.property = IDNA_P_DISALLOWED },
+ { 0x11644, 0x11644, .p.property = IDNA_P_PVALID },
+ { 0x11645, 0x1164F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11650, 0x11659, .p.property = IDNA_P_PVALID },
+ { 0x1165A, 0x1165F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11660, 0x1166C, .p.property = IDNA_P_DISALLOWED },
+ { 0x1166D, 0x1167F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11680, 0x116B7, .p.property = IDNA_P_PVALID },
+ { 0x116B8, 0x116BF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x116C0, 0x116C9, .p.property = IDNA_P_PVALID },
+ { 0x116CA, 0x116FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11700, 0x1171A, .p.property = IDNA_P_PVALID },
+ { 0x1171B, 0x1171C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1171D, 0x1172B, .p.property = IDNA_P_PVALID },
+ { 0x1172C, 0x1172F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11730, 0x11739, .p.property = IDNA_P_PVALID },
+ { 0x1173A, 0x1173F, .p.property = IDNA_P_DISALLOWED },
+ { 0x11740, 0x117FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11800, 0x1183A, .p.property = IDNA_P_PVALID },
+ { 0x1183B, 0x1183B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1183C, 0x1189F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x118A0, 0x118BF, .p.property = IDNA_P_DISALLOWED },
+ { 0x118C0, 0x118E9, .p.property = IDNA_P_PVALID },
+ { 0x118EA, 0x118F2, .p.property = IDNA_P_DISALLOWED },
+ { 0x118F3, 0x118FE, .p.property = IDNA_P_UNASSIGNED },
+ { 0x118FF, 0x118FF, .p.property = IDNA_P_PVALID },
+ { 0x11900, 0x119FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11A00, 0x11A3E, .p.property = IDNA_P_PVALID },
+ { 0x11A3F, 0x11A46, .p.property = IDNA_P_DISALLOWED },
+ { 0x11A47, 0x11A47, .p.property = IDNA_P_PVALID },
+ { 0x11A48, 0x11A4F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11A50, 0x11A83, .p.property = IDNA_P_PVALID },
+ { 0x11A84, 0x11A85, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11A86, 0x11A99, .p.property = IDNA_P_PVALID },
+ { 0x11A9A, 0x11A9C, .p.property = IDNA_P_DISALLOWED },
+ { 0x11A9D, 0x11A9D, .p.property = IDNA_P_PVALID },
+ { 0x11A9E, 0x11AA2, .p.property = IDNA_P_DISALLOWED },
+ { 0x11AA3, 0x11ABF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11AC0, 0x11AF8, .p.property = IDNA_P_PVALID },
+ { 0x11AF9, 0x11BFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11C00, 0x11C08, .p.property = IDNA_P_PVALID },
+ { 0x11C09, 0x11C09, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11C0A, 0x11C36, .p.property = IDNA_P_PVALID },
+ { 0x11C37, 0x11C37, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11C38, 0x11C40, .p.property = IDNA_P_PVALID },
+ { 0x11C41, 0x11C45, .p.property = IDNA_P_DISALLOWED },
+ { 0x11C46, 0x11C4F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11C50, 0x11C59, .p.property = IDNA_P_PVALID },
+ { 0x11C5A, 0x11C6C, .p.property = IDNA_P_DISALLOWED },
+ { 0x11C6D, 0x11C6F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11C70, 0x11C71, .p.property = IDNA_P_DISALLOWED },
+ { 0x11C72, 0x11C8F, .p.property = IDNA_P_PVALID },
+ { 0x11C90, 0x11C91, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11C92, 0x11CA7, .p.property = IDNA_P_PVALID },
+ { 0x11CA8, 0x11CA8, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11CA9, 0x11CB6, .p.property = IDNA_P_PVALID },
+ { 0x11CB7, 0x11CFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D00, 0x11D06, .p.property = IDNA_P_PVALID },
+ { 0x11D07, 0x11D07, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D08, 0x11D09, .p.property = IDNA_P_PVALID },
+ { 0x11D0A, 0x11D0A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D0B, 0x11D36, .p.property = IDNA_P_PVALID },
+ { 0x11D37, 0x11D39, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D3A, 0x11D3A, .p.property = IDNA_P_PVALID },
+ { 0x11D3B, 0x11D3B, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D3C, 0x11D3D, .p.property = IDNA_P_PVALID },
+ { 0x11D3E, 0x11D3E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D3F, 0x11D47, .p.property = IDNA_P_PVALID },
+ { 0x11D48, 0x11D4F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D50, 0x11D59, .p.property = IDNA_P_PVALID },
+ { 0x11D5A, 0x11D5F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D60, 0x11D65, .p.property = IDNA_P_PVALID },
+ { 0x11D66, 0x11D66, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D67, 0x11D68, .p.property = IDNA_P_PVALID },
+ { 0x11D69, 0x11D69, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D6A, 0x11D8E, .p.property = IDNA_P_PVALID },
+ { 0x11D8F, 0x11D8F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D90, 0x11D91, .p.property = IDNA_P_PVALID },
+ { 0x11D92, 0x11D92, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11D93, 0x11D98, .p.property = IDNA_P_PVALID },
+ { 0x11D99, 0x11D9F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11DA0, 0x11DA9, .p.property = IDNA_P_PVALID },
+ { 0x11DAA, 0x11EDF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x11EE0, 0x11EF6, .p.property = IDNA_P_PVALID },
+ { 0x11EF7, 0x11EF8, .p.property = IDNA_P_DISALLOWED },
+ { 0x11EF9, 0x11FFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x12000, 0x12399, .p.property = IDNA_P_PVALID },
+ { 0x1239A, 0x123FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x12400, 0x1246E, .p.property = IDNA_P_DISALLOWED },
+ { 0x1246F, 0x1246F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x12470, 0x12474, .p.property = IDNA_P_DISALLOWED },
+ { 0x12475, 0x1247F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x12480, 0x12543, .p.property = IDNA_P_PVALID },
+ { 0x12544, 0x12FFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x13000, 0x1342E, .p.property = IDNA_P_PVALID },
- { 0x1342F, 0x1CFFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1342F, 0x143FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x14400, 0x14646, .p.property = IDNA_P_PVALID },
+ { 0x14647, 0x167FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16800, 0x16A38, .p.property = IDNA_P_PVALID },
+ { 0x16A39, 0x16A3F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16A40, 0x16A5E, .p.property = IDNA_P_PVALID },
+ { 0x16A5F, 0x16A5F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16A60, 0x16A69, .p.property = IDNA_P_PVALID },
+ { 0x16A6A, 0x16A6D, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16A6E, 0x16A6F, .p.property = IDNA_P_DISALLOWED },
+ { 0x16A70, 0x16ACF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16AD0, 0x16AED, .p.property = IDNA_P_PVALID },
+ { 0x16AEE, 0x16AEF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16AF0, 0x16AF4, .p.property = IDNA_P_PVALID },
+ { 0x16AF5, 0x16AF5, .p.property = IDNA_P_DISALLOWED },
+ { 0x16AF6, 0x16AFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16B00, 0x16B36, .p.property = IDNA_P_PVALID },
+ { 0x16B37, 0x16B3F, .p.property = IDNA_P_DISALLOWED },
+ { 0x16B40, 0x16B43, .p.property = IDNA_P_PVALID },
+ { 0x16B44, 0x16B45, .p.property = IDNA_P_DISALLOWED },
+ { 0x16B46, 0x16B4F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16B50, 0x16B59, .p.property = IDNA_P_PVALID },
+ { 0x16B5A, 0x16B5A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16B5B, 0x16B61, .p.property = IDNA_P_DISALLOWED },
+ { 0x16B62, 0x16B62, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16B63, 0x16B77, .p.property = IDNA_P_PVALID },
+ { 0x16B78, 0x16B7C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16B7D, 0x16B8F, .p.property = IDNA_P_PVALID },
+ { 0x16B90, 0x16E3F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16E40, 0x16E5F, .p.property = IDNA_P_DISALLOWED },
+ { 0x16E60, 0x16E7F, .p.property = IDNA_P_PVALID },
+ { 0x16E80, 0x16E9A, .p.property = IDNA_P_DISALLOWED },
+ { 0x16E9B, 0x16EFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16F00, 0x16F44, .p.property = IDNA_P_PVALID },
+ { 0x16F45, 0x16F4F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16F50, 0x16F7E, .p.property = IDNA_P_PVALID },
+ { 0x16F7F, 0x16F8E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16F8F, 0x16F9F, .p.property = IDNA_P_PVALID },
+ { 0x16FA0, 0x16FDF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x16FE0, 0x16FE1, .p.property = IDNA_P_PVALID },
+ { 0x16FE2, 0x16FFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x17000, 0x187F1, .p.property = IDNA_P_PVALID },
+ { 0x187F2, 0x187FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x18800, 0x18AF2, .p.property = IDNA_P_PVALID },
+ { 0x18AF3, 0x1AFFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1B000, 0x1B11E, .p.property = IDNA_P_PVALID },
+ { 0x1B11F, 0x1B16F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1B170, 0x1B2FB, .p.property = IDNA_P_PVALID },
+ { 0x1B2FC, 0x1BBFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1BC00, 0x1BC6A, .p.property = IDNA_P_PVALID },
+ { 0x1BC6B, 0x1BC6F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1BC70, 0x1BC7C, .p.property = IDNA_P_PVALID },
+ { 0x1BC7D, 0x1BC7F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1BC80, 0x1BC88, .p.property = IDNA_P_PVALID },
+ { 0x1BC89, 0x1BC8F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1BC90, 0x1BC99, .p.property = IDNA_P_PVALID },
+ { 0x1BC9A, 0x1BC9B, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1BC9C, 0x1BC9C, .p.property = IDNA_P_DISALLOWED },
+ { 0x1BC9D, 0x1BC9E, .p.property = IDNA_P_PVALID },
+ { 0x1BC9F, 0x1BCA3, .p.property = IDNA_P_DISALLOWED },
+ { 0x1BCA4, 0x1CFFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1D000, 0x1D0F5, .p.property = IDNA_P_DISALLOWED },
{ 0x1D0F6, 0x1D0FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1D100, 0x1D126, .p.property = IDNA_P_DISALLOWED },
{ 0x1D127, 0x1D128, .p.property = IDNA_P_UNASSIGNED },
- { 0x1D129, 0x1D1DD, .p.property = IDNA_P_DISALLOWED },
- { 0x1D1DE, 0x1D1FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1D129, 0x1D1E8, .p.property = IDNA_P_DISALLOWED },
+ { 0x1D1E9, 0x1D1FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1D200, 0x1D245, .p.property = IDNA_P_DISALLOWED },
- { 0x1D246, 0x1D2FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1D246, 0x1D2DF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1D2E0, 0x1D2F3, .p.property = IDNA_P_DISALLOWED },
+ { 0x1D2F4, 0x1D2FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1D300, 0x1D356, .p.property = IDNA_P_DISALLOWED },
{ 0x1D357, 0x1D35F, .p.property = IDNA_P_UNASSIGNED },
- { 0x1D360, 0x1D371, .p.property = IDNA_P_DISALLOWED },
- { 0x1D372, 0x1D3FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1D360, 0x1D378, .p.property = IDNA_P_DISALLOWED },
+ { 0x1D379, 0x1D3FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1D400, 0x1D454, .p.property = IDNA_P_DISALLOWED },
{ 0x1D455, 0x1D455, .p.property = IDNA_P_UNASSIGNED },
{ 0x1D456, 0x1D49C, .p.property = IDNA_P_DISALLOWED },
@@ -2273,53 +2651,191 @@ idna_table idna_derived[] = {
{ 0x1D6A6, 0x1D6A7, .p.property = IDNA_P_UNASSIGNED },
{ 0x1D6A8, 0x1D7CB, .p.property = IDNA_P_DISALLOWED },
{ 0x1D7CC, 0x1D7CD, .p.property = IDNA_P_UNASSIGNED },
- { 0x1D7CE, 0x1D7FF, .p.property = IDNA_P_DISALLOWED },
- { 0x1D800, 0x1EFFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1D7CE, 0x1D9FF, .p.property = IDNA_P_DISALLOWED },
+ { 0x1DA00, 0x1DA36, .p.property = IDNA_P_PVALID },
+ { 0x1DA37, 0x1DA3A, .p.property = IDNA_P_DISALLOWED },
+ { 0x1DA3B, 0x1DA6C, .p.property = IDNA_P_PVALID },
+ { 0x1DA6D, 0x1DA74, .p.property = IDNA_P_DISALLOWED },
+ { 0x1DA75, 0x1DA75, .p.property = IDNA_P_PVALID },
+ { 0x1DA76, 0x1DA83, .p.property = IDNA_P_DISALLOWED },
+ { 0x1DA84, 0x1DA84, .p.property = IDNA_P_PVALID },
+ { 0x1DA85, 0x1DA8B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1DA8C, 0x1DA9A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1DA9B, 0x1DA9F, .p.property = IDNA_P_PVALID },
+ { 0x1DAA0, 0x1DAA0, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1DAA1, 0x1DAAF, .p.property = IDNA_P_PVALID },
+ { 0x1DAB0, 0x1DFFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E000, 0x1E006, .p.property = IDNA_P_PVALID },
+ { 0x1E007, 0x1E007, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E008, 0x1E018, .p.property = IDNA_P_PVALID },
+ { 0x1E019, 0x1E01A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E01B, 0x1E021, .p.property = IDNA_P_PVALID },
+ { 0x1E022, 0x1E022, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E023, 0x1E024, .p.property = IDNA_P_PVALID },
+ { 0x1E025, 0x1E025, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E026, 0x1E02A, .p.property = IDNA_P_PVALID },
+ { 0x1E02B, 0x1E7FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E800, 0x1E8C4, .p.property = IDNA_P_PVALID },
+ { 0x1E8C5, 0x1E8C6, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E8C7, 0x1E8CF, .p.property = IDNA_P_DISALLOWED },
+ { 0x1E8D0, 0x1E8D6, .p.property = IDNA_P_PVALID },
+ { 0x1E8D7, 0x1E8FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E900, 0x1E921, .p.property = IDNA_P_DISALLOWED },
+ { 0x1E922, 0x1E94A, .p.property = IDNA_P_PVALID },
+ { 0x1E94B, 0x1E94F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E950, 0x1E959, .p.property = IDNA_P_PVALID },
+ { 0x1E95A, 0x1E95D, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1E95E, 0x1E95F, .p.property = IDNA_P_DISALLOWED },
+ { 0x1E960, 0x1EC70, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EC71, 0x1ECB4, .p.property = IDNA_P_DISALLOWED },
+ { 0x1ECB5, 0x1EDFF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE00, 0x1EE03, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE04, 0x1EE04, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE05, 0x1EE1F, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE20, 0x1EE20, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE21, 0x1EE22, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE23, 0x1EE23, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE24, 0x1EE24, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE25, 0x1EE26, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE27, 0x1EE27, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE28, 0x1EE28, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE29, 0x1EE32, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE33, 0x1EE33, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE34, 0x1EE37, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE38, 0x1EE38, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE39, 0x1EE39, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE3A, 0x1EE3A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE3B, 0x1EE3B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE3C, 0x1EE41, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE42, 0x1EE42, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE43, 0x1EE46, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE47, 0x1EE47, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE48, 0x1EE48, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE49, 0x1EE49, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE4A, 0x1EE4A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE4B, 0x1EE4B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE4C, 0x1EE4C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE4D, 0x1EE4F, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE50, 0x1EE50, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE51, 0x1EE52, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE53, 0x1EE53, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE54, 0x1EE54, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE55, 0x1EE56, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE57, 0x1EE57, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE58, 0x1EE58, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE59, 0x1EE59, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE5A, 0x1EE5A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE5B, 0x1EE5B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE5C, 0x1EE5C, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE5D, 0x1EE5D, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE5E, 0x1EE5E, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE5F, 0x1EE5F, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE60, 0x1EE60, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE61, 0x1EE62, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE63, 0x1EE63, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE64, 0x1EE64, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE65, 0x1EE66, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE67, 0x1EE6A, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE6B, 0x1EE6B, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE6C, 0x1EE72, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE73, 0x1EE73, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE74, 0x1EE77, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE78, 0x1EE78, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE79, 0x1EE7C, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE7D, 0x1EE7D, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE7E, 0x1EE7E, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE7F, 0x1EE7F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE80, 0x1EE89, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE8A, 0x1EE8A, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EE8B, 0x1EE9B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EE9C, 0x1EEA0, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EEA1, 0x1EEA3, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EEA4, 0x1EEA4, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EEA5, 0x1EEA9, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EEAA, 0x1EEAA, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EEAB, 0x1EEBB, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EEBC, 0x1EEEF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1EEF0, 0x1EEF1, .p.property = IDNA_P_DISALLOWED },
+ { 0x1EEF2, 0x1EFFF, .p.property = IDNA_P_UNASSIGNED },
{ 0x1F000, 0x1F02B, .p.property = IDNA_P_DISALLOWED },
{ 0x1F02C, 0x1F02F, .p.property = IDNA_P_UNASSIGNED },
{ 0x1F030, 0x1F093, .p.property = IDNA_P_DISALLOWED },
- { 0x1F094, 0x1F0FF, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F100, 0x1F10A, .p.property = IDNA_P_DISALLOWED },
- { 0x1F10B, 0x1F10F, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F110, 0x1F12E, .p.property = IDNA_P_DISALLOWED },
- { 0x1F12F, 0x1F130, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F131, 0x1F131, .p.property = IDNA_P_DISALLOWED },
- { 0x1F132, 0x1F13C, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F13D, 0x1F13D, .p.property = IDNA_P_DISALLOWED },
- { 0x1F13E, 0x1F13E, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F13F, 0x1F13F, .p.property = IDNA_P_DISALLOWED },
- { 0x1F140, 0x1F141, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F142, 0x1F142, .p.property = IDNA_P_DISALLOWED },
- { 0x1F143, 0x1F145, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F146, 0x1F146, .p.property = IDNA_P_DISALLOWED },
- { 0x1F147, 0x1F149, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F14A, 0x1F14E, .p.property = IDNA_P_DISALLOWED },
- { 0x1F14F, 0x1F156, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F157, 0x1F157, .p.property = IDNA_P_DISALLOWED },
- { 0x1F158, 0x1F15E, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F15F, 0x1F15F, .p.property = IDNA_P_DISALLOWED },
- { 0x1F160, 0x1F178, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F179, 0x1F179, .p.property = IDNA_P_DISALLOWED },
- { 0x1F17A, 0x1F17A, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F17B, 0x1F17C, .p.property = IDNA_P_DISALLOWED },
- { 0x1F17D, 0x1F17E, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F17F, 0x1F17F, .p.property = IDNA_P_DISALLOWED },
- { 0x1F180, 0x1F189, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F18A, 0x1F18D, .p.property = IDNA_P_DISALLOWED },
- { 0x1F18E, 0x1F18F, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F190, 0x1F190, .p.property = IDNA_P_DISALLOWED },
- { 0x1F191, 0x1F1FF, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F200, 0x1F200, .p.property = IDNA_P_DISALLOWED },
- { 0x1F201, 0x1F20F, .p.property = IDNA_P_UNASSIGNED },
- { 0x1F210, 0x1F231, .p.property = IDNA_P_DISALLOWED },
- { 0x1F232, 0x1F23F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F094, 0x1F09F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F0A0, 0x1F0AE, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F0AF, 0x1F0B0, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F0B1, 0x1F0BF, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F0C0, 0x1F0C0, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F0C1, 0x1F0CF, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F0D0, 0x1F0D0, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F0D1, 0x1F0F5, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F0F6, 0x1F0FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F100, 0x1F10C, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F10D, 0x1F10F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F110, 0x1F16B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F16C, 0x1F16F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F170, 0x1F1AC, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F1AD, 0x1F1E5, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F1E6, 0x1F202, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F203, 0x1F20F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F210, 0x1F23B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F23C, 0x1F23F, .p.property = IDNA_P_UNASSIGNED },
{ 0x1F240, 0x1F248, .p.property = IDNA_P_DISALLOWED },
- { 0x1F249, 0x1FFFD, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F249, 0x1F24F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F250, 0x1F251, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F252, 0x1F25F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F260, 0x1F265, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F266, 0x1F2FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F300, 0x1F6D4, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F6D5, 0x1F6DF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F6E0, 0x1F6EC, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F6ED, 0x1F6EF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F6F0, 0x1F6F9, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F6FA, 0x1F6FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F700, 0x1F773, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F774, 0x1F77F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F780, 0x1F7D8, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F7D9, 0x1F7FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F800, 0x1F80B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F80C, 0x1F80F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F810, 0x1F847, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F848, 0x1F84F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F850, 0x1F859, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F85A, 0x1F85F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F860, 0x1F887, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F888, 0x1F88F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F890, 0x1F8AD, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F8AE, 0x1F8FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F900, 0x1F90B, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F90C, 0x1F90F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F910, 0x1F93E, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F93F, 0x1F93F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F940, 0x1F970, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F971, 0x1F972, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F973, 0x1F976, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F977, 0x1F979, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F97A, 0x1F97A, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F97B, 0x1F97B, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F97C, 0x1F9A2, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F9A3, 0x1F9AF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F9B0, 0x1F9B9, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F9BA, 0x1F9BF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F9C0, 0x1F9C2, .p.property = IDNA_P_DISALLOWED },
+ { 0x1F9C3, 0x1F9CF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1F9D0, 0x1F9FF, .p.property = IDNA_P_DISALLOWED },
+ { 0x1FA00, 0x1FA5F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x1FA60, 0x1FA6D, .p.property = IDNA_P_DISALLOWED },
+ { 0x1FA6E, 0x1FFFD, .p.property = IDNA_P_UNASSIGNED },
{ 0x1FFFE, 0x1FFFF, .p.property = IDNA_P_DISALLOWED },
{ 0x20000, 0x2A6D6, .p.property = IDNA_P_PVALID },
{ 0x2A6D7, 0x2A6FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x2A700, 0x2B734, .p.property = IDNA_P_PVALID },
- { 0x2B735, 0x2F7FF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2B735, 0x2B73F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2B740, 0x2B81D, .p.property = IDNA_P_PVALID },
+ { 0x2B81E, 0x2B81F, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2B820, 0x2CEA1, .p.property = IDNA_P_PVALID },
+ { 0x2CEA2, 0x2CEAF, .p.property = IDNA_P_UNASSIGNED },
+ { 0x2CEB0, 0x2EBE0, .p.property = IDNA_P_PVALID },
+ { 0x2EBE1, 0x2F7FF, .p.property = IDNA_P_UNASSIGNED },
{ 0x2F800, 0x2FA1D, .p.property = IDNA_P_DISALLOWED },
{ 0x2FA1E, 0x2FFFD, .p.property = IDNA_P_UNASSIGNED },
{ 0x2FFFE, 0x2FFFF, .p.property = IDNA_P_DISALLOWED },
@@ -2359,7 +2875,9 @@ idna_table idna_derived[] = {
idna_table idna_joiningtype[] = {
{ 0x0640 , 0x0640 , .p.jt = IDNA_UNICODE_JT_C },
{ 0x07FA , 0x07FA , .p.jt = IDNA_UNICODE_JT_C },
+ { 0x180A , 0x180A , .p.jt = IDNA_UNICODE_JT_C },
{ 0x200D , 0x200D , .p.jt = IDNA_UNICODE_JT_C },
+ { 0x0620 , 0x0620 , .p.jt = IDNA_UNICODE_JT_D },
{ 0x0626 , 0x0626 , .p.jt = IDNA_UNICODE_JT_D },
{ 0x0628 , 0x0628 , .p.jt = IDNA_UNICODE_JT_D },
{ 0x062A, 0x062E , .p.jt = IDNA_UNICODE_JT_D },
@@ -2388,6 +2906,43 @@ idna_table idna_joiningtype[] = {
{ 0x0775, 0x0777 , .p.jt = IDNA_UNICODE_JT_D },
{ 0x077A, 0x077F , .p.jt = IDNA_UNICODE_JT_D },
{ 0x07CA, 0x07EA , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x0841, 0x0845 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x0848 , 0x0848 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x084A, 0x0853 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x0855 , 0x0855 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x0860 , 0x0860 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x0862, 0x0865 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x0868 , 0x0868 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x08A0, 0x08A9 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x08AF, 0x08B0 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x08B3, 0x08B4 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x08B6, 0x08B8 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x08BA, 0x08BD , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x1807 , 0x1807 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x1820, 0x1842 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x1843 , 0x1843 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x1844, 0x1878 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x1887, 0x18A8 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x18AA , 0x18AA , .p.jt = IDNA_UNICODE_JT_D },
+ { 0xA840, 0xA871 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10AC0, 0x10AC4 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10AD3, 0x10AD6 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10AD8, 0x10ADC , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10ADE, 0x10AE0 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10AEB, 0x10AEE , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10B80 , 0x10B80 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10B82 , 0x10B82 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10B86, 0x10B88 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10B8A, 0x10B8B , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10B8D , 0x10B8D , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10B90 , 0x10B90 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10BAD, 0x10BAE , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10D01, 0x10D21 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10D23 , 0x10D23 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10F30, 0x10F32 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10F34, 0x10F44 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x10F51, 0x10F53 , .p.jt = IDNA_UNICODE_JT_D },
+ { 0x1E900, 0x1E943 , .p.jt = IDNA_UNICODE_JT_D },
{ 0x0622, 0x0625 , .p.jt = IDNA_UNICODE_JT_R },
{ 0x0627 , 0x0627 , .p.jt = IDNA_UNICODE_JT_R },
{ 0x0629 , 0x0629 , .p.jt = IDNA_UNICODE_JT_R },
@@ -2416,6 +2971,38 @@ idna_table idna_joiningtype[] = {
{ 0x0771 , 0x0771 , .p.jt = IDNA_UNICODE_JT_R },
{ 0x0773, 0x0774 , .p.jt = IDNA_UNICODE_JT_R },
{ 0x0778, 0x0779 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x0840 , 0x0840 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x0846, 0x0847 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x0849 , 0x0849 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x0854 , 0x0854 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x0867 , 0x0867 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x0869, 0x086A , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x08AA, 0x08AC , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x08AE , 0x08AE , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x08B1, 0x08B2 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x08B9 , 0x08B9 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10AC5 , 0x10AC5 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10AC7 , 0x10AC7 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10AC9, 0x10ACA , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10ACE, 0x10AD2 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10ADD , 0x10ADD , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10AE1 , 0x10AE1 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10AE4 , 0x10AE4 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10AEF , 0x10AEF , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10B81 , 0x10B81 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10B83, 0x10B85 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10B89 , 0x10B89 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10B8C , 0x10B8C , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10B8E, 0x10B8F , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10B91 , 0x10B91 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10BA9, 0x10BAC , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10D22 , 0x10D22 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10F33 , 0x10F33 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0x10F54 , 0x10F54 , .p.jt = IDNA_UNICODE_JT_R },
+ { 0xA872 , 0xA872 , .p.jt = IDNA_UNICODE_JT_L },
+ { 0x10ACD , 0x10ACD , .p.jt = IDNA_UNICODE_JT_L },
+ { 0x10AD7 , 0x10AD7 , .p.jt = IDNA_UNICODE_JT_L },
+ { 0x10D00 , 0x10D00 , .p.jt = IDNA_UNICODE_JT_L },
{ 0x00AD , 0x00AD , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0300, 0x036F , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0483, 0x0487 , .p.jt = IDNA_UNICODE_JT_T },
@@ -2426,10 +3013,10 @@ idna_table idna_joiningtype[] = {
{ 0x05C4, 0x05C5 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x05C7 , 0x05C7 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0610, 0x061A , .p.jt = IDNA_UNICODE_JT_T },
- { 0x064B, 0x065E , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x061C , 0x061C , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x064B, 0x065F , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0670 , 0x0670 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x06D6, 0x06DC , .p.jt = IDNA_UNICODE_JT_T },
- { 0x06DE , 0x06DE , .p.jt = IDNA_UNICODE_JT_T },
{ 0x06DF, 0x06E4 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x06E7, 0x06E8 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x06EA, 0x06ED , .p.jt = IDNA_UNICODE_JT_T },
@@ -2438,21 +3025,26 @@ idna_table idna_joiningtype[] = {
{ 0x0730, 0x074A , .p.jt = IDNA_UNICODE_JT_T },
{ 0x07A6, 0x07B0 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x07EB, 0x07F3 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x07FD , 0x07FD , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0816, 0x0819 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x081B, 0x0823 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0825, 0x0827 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0829, 0x082D , .p.jt = IDNA_UNICODE_JT_T },
- { 0x0900, 0x0902 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x0859, 0x085B , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x08D3, 0x08E1 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x08E3, 0x0902 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x093A , 0x093A , .p.jt = IDNA_UNICODE_JT_T },
{ 0x093C , 0x093C , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0941, 0x0948 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x094D , 0x094D , .p.jt = IDNA_UNICODE_JT_T },
- { 0x0951, 0x0955 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x0951, 0x0957 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0962, 0x0963 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0981 , 0x0981 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x09BC , 0x09BC , .p.jt = IDNA_UNICODE_JT_T },
{ 0x09C1, 0x09C4 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x09CD , 0x09CD , .p.jt = IDNA_UNICODE_JT_T },
{ 0x09E2, 0x09E3 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x09FE , 0x09FE , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0A01, 0x0A02 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0A3C , 0x0A3C , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0A41, 0x0A42 , .p.jt = IDNA_UNICODE_JT_T },
@@ -2467,6 +3059,7 @@ idna_table idna_joiningtype[] = {
{ 0x0AC7, 0x0AC8 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0ACD , 0x0ACD , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0AE2, 0x0AE3 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x0AFA, 0x0AFF , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0B01 , 0x0B01 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0B3C , 0x0B3C , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0B3F , 0x0B3F , .p.jt = IDNA_UNICODE_JT_T },
@@ -2477,16 +3070,21 @@ idna_table idna_joiningtype[] = {
{ 0x0B82 , 0x0B82 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0BC0 , 0x0BC0 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0BCD , 0x0BCD , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x0C00 , 0x0C00 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x0C04 , 0x0C04 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0C3E, 0x0C40 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0C46, 0x0C48 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0C4A, 0x0C4D , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0C55, 0x0C56 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0C62, 0x0C63 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x0C81 , 0x0C81 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0CBC , 0x0CBC , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0CBF , 0x0CBF , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0CC6 , 0x0CC6 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0CCC, 0x0CCD , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0CE2, 0x0CE3 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x0D00, 0x0D01 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x0D3B, 0x0D3C , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0D41, 0x0D44 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0D4D , 0x0D4D , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0D62, 0x0D63 , .p.jt = IDNA_UNICODE_JT_T },
@@ -2507,7 +3105,7 @@ idna_table idna_joiningtype[] = {
{ 0x0F71, 0x0F7E , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0F80, 0x0F84 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0F86, 0x0F87 , .p.jt = IDNA_UNICODE_JT_T },
- { 0x0F90, 0x0F97 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x0F8D, 0x0F97 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0F99, 0x0FBC , .p.jt = IDNA_UNICODE_JT_T },
{ 0x0FC6 , 0x0FC6 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x102D, 0x1030 , .p.jt = IDNA_UNICODE_JT_T },
@@ -2521,7 +3119,7 @@ idna_table idna_joiningtype[] = {
{ 0x1085, 0x1086 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x108D , 0x108D , .p.jt = IDNA_UNICODE_JT_T },
{ 0x109D , 0x109D , .p.jt = IDNA_UNICODE_JT_T },
- { 0x135F , 0x135F , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x135D, 0x135F , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1712, 0x1714 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1732, 0x1734 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1752, 0x1753 , .p.jt = IDNA_UNICODE_JT_T },
@@ -2532,12 +3130,14 @@ idna_table idna_joiningtype[] = {
{ 0x17C9, 0x17D3 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x17DD , 0x17DD , .p.jt = IDNA_UNICODE_JT_T },
{ 0x180B, 0x180D , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1885, 0x1886 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x18A9 , 0x18A9 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1920, 0x1922 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1927, 0x1928 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1932 , 0x1932 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1939, 0x193B , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1A17, 0x1A18 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1A1B , 0x1A1B , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1A56 , 0x1A56 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1A58, 0x1A5E , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1A60 , 0x1A60 , .p.jt = IDNA_UNICODE_JT_T },
@@ -2545,6 +3145,8 @@ idna_table idna_joiningtype[] = {
{ 0x1A65, 0x1A6C , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1A73, 0x1A7C , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1A7F , 0x1A7F , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1AB0, 0x1ABD , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1ABE , 0x1ABE , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1B00, 0x1B03 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1B34 , 0x1B34 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1B36, 0x1B3A , .p.jt = IDNA_UNICODE_JT_T },
@@ -2554,14 +3156,21 @@ idna_table idna_joiningtype[] = {
{ 0x1B80, 0x1B81 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1BA2, 0x1BA5 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1BA8, 0x1BA9 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1BAB, 0x1BAD , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1BE6 , 0x1BE6 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1BE8, 0x1BE9 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1BED , 0x1BED , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1BEF, 0x1BF1 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1C2C, 0x1C33 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1C36, 0x1C37 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1CD0, 0x1CD2 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1CD4, 0x1CE0 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1CE2, 0x1CE8 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1CED , 0x1CED , .p.jt = IDNA_UNICODE_JT_T },
- { 0x1DC0, 0x1DE6 , .p.jt = IDNA_UNICODE_JT_T },
- { 0x1DFD, 0x1DFF , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1CF4 , 0x1CF4 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1CF8, 0x1CF9 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1DC0, 0x1DF9 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1DFB, 0x1DFF , .p.jt = IDNA_UNICODE_JT_T },
{ 0x200B , 0x200B , .p.jt = IDNA_UNICODE_JT_T },
{ 0x200E, 0x200F , .p.jt = IDNA_UNICODE_JT_T },
{ 0x202A, 0x202E , .p.jt = IDNA_UNICODE_JT_T },
@@ -2573,59 +3182,156 @@ idna_table idna_joiningtype[] = {
{ 0x20E2, 0x20E4 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x20E5, 0x20F0 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x2CEF, 0x2CF1 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x2D7F , 0x2D7F , .p.jt = IDNA_UNICODE_JT_T },
{ 0x2DE0, 0x2DFF , .p.jt = IDNA_UNICODE_JT_T },
- { 0x302A, 0x302F , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x302A, 0x302D , .p.jt = IDNA_UNICODE_JT_T },
{ 0x3099, 0x309A , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA66F , 0xA66F , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA670, 0xA672 , .p.jt = IDNA_UNICODE_JT_T },
- { 0xA67C, 0xA67D , .p.jt = IDNA_UNICODE_JT_T },
+ { 0xA674, 0xA67D , .p.jt = IDNA_UNICODE_JT_T },
+ { 0xA69E, 0xA69F , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA6F0, 0xA6F1 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA802 , 0xA802 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA806 , 0xA806 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA80B , 0xA80B , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA825, 0xA826 , .p.jt = IDNA_UNICODE_JT_T },
- { 0xA8C4 , 0xA8C4 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0xA8C4, 0xA8C5 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA8E0, 0xA8F1 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0xA8FF , 0xA8FF , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA926, 0xA92D , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA947, 0xA951 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA980, 0xA982 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA9B3 , 0xA9B3 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA9B6, 0xA9B9 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xA9BC , 0xA9BC , .p.jt = IDNA_UNICODE_JT_T },
+ { 0xA9E5 , 0xA9E5 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAA29, 0xAA2E , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAA31, 0xAA32 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAA35, 0xAA36 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAA43 , 0xAA43 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAA4C , 0xAA4C , .p.jt = IDNA_UNICODE_JT_T },
+ { 0xAA7C , 0xAA7C , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAAB0 , 0xAAB0 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAAB2, 0xAAB4 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAAB7, 0xAAB8 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAABE, 0xAABF , .p.jt = IDNA_UNICODE_JT_T },
{ 0xAAC1 , 0xAAC1 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0xAAEC, 0xAAED , .p.jt = IDNA_UNICODE_JT_T },
+ { 0xAAF6 , 0xAAF6 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xABE5 , 0xABE5 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xABE8 , 0xABE8 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xABED , 0xABED , .p.jt = IDNA_UNICODE_JT_T },
{ 0xFB1E , 0xFB1E , .p.jt = IDNA_UNICODE_JT_T },
{ 0xFE00, 0xFE0F , .p.jt = IDNA_UNICODE_JT_T },
- { 0xFE20, 0xFE26 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0xFE20, 0xFE2F , .p.jt = IDNA_UNICODE_JT_T },
{ 0xFEFF , 0xFEFF , .p.jt = IDNA_UNICODE_JT_T },
{ 0xFFF9, 0xFFFB , .p.jt = IDNA_UNICODE_JT_T },
{ 0x101FD , 0x101FD , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x102E0 , 0x102E0 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x10376, 0x1037A , .p.jt = IDNA_UNICODE_JT_T },
{ 0x10A01, 0x10A03 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x10A05, 0x10A06 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x10A0C, 0x10A0F , .p.jt = IDNA_UNICODE_JT_T },
{ 0x10A38, 0x10A3A , .p.jt = IDNA_UNICODE_JT_T },
{ 0x10A3F , 0x10A3F , .p.jt = IDNA_UNICODE_JT_T },
- { 0x11080, 0x11081 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x10AE5, 0x10AE6 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x10D24, 0x10D27 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x10F46, 0x10F50 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11001 , 0x11001 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11038, 0x11046 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1107F, 0x11081 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x110B3, 0x110B6 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x110B9, 0x110BA , .p.jt = IDNA_UNICODE_JT_T },
- { 0x110BD , 0x110BD , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11100, 0x11102 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11127, 0x1112B , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1112D, 0x11134 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11173 , 0x11173 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11180, 0x11181 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x111B6, 0x111BE , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x111C9, 0x111CC , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1122F, 0x11231 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11234 , 0x11234 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11236, 0x11237 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1123E , 0x1123E , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x112DF , 0x112DF , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x112E3, 0x112EA , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11300, 0x11301 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1133B, 0x1133C , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11340 , 0x11340 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11366, 0x1136C , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11370, 0x11374 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11438, 0x1143F , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11442, 0x11444 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11446 , 0x11446 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1145E , 0x1145E , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x114B3, 0x114B8 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x114BA , 0x114BA , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x114BF, 0x114C0 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x114C2, 0x114C3 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x115B2, 0x115B5 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x115BC, 0x115BD , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x115BF, 0x115C0 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x115DC, 0x115DD , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11633, 0x1163A , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1163D , 0x1163D , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1163F, 0x11640 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x116AB , 0x116AB , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x116AD , 0x116AD , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x116B0, 0x116B5 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x116B7 , 0x116B7 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1171D, 0x1171F , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11722, 0x11725 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11727, 0x1172B , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1182F, 0x11837 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11839, 0x1183A , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11A01, 0x11A0A , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11A33, 0x11A38 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11A3B, 0x11A3E , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11A47 , 0x11A47 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11A51, 0x11A56 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11A59, 0x11A5B , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11A8A, 0x11A96 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11A98, 0x11A99 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11C30, 0x11C36 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11C38, 0x11C3D , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11C3F , 0x11C3F , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11C92, 0x11CA7 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11CAA, 0x11CB0 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11CB2, 0x11CB3 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11CB5, 0x11CB6 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11D31, 0x11D36 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11D3A , 0x11D3A , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11D3C, 0x11D3D , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11D3F, 0x11D45 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11D47 , 0x11D47 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11D90, 0x11D91 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11D95 , 0x11D95 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11D97 , 0x11D97 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x11EF3, 0x11EF4 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x16AF0, 0x16AF4 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x16B30, 0x16B36 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x16F8F, 0x16F92 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1BC9D, 0x1BC9E , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1BCA0, 0x1BCA3 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1D167, 0x1D169 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1D173, 0x1D17A , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1D17B, 0x1D182 , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1D185, 0x1D18B , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1D1AA, 0x1D1AD , .p.jt = IDNA_UNICODE_JT_T },
{ 0x1D242, 0x1D244 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1DA00, 0x1DA36 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1DA3B, 0x1DA6C , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1DA75 , 0x1DA75 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1DA84 , 0x1DA84 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1DA9B, 0x1DA9F , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1DAA1, 0x1DAAF , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1E000, 0x1E006 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1E008, 0x1E018 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1E01B, 0x1E021 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1E023, 0x1E024 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1E026, 0x1E02A , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1E8D0, 0x1E8D6 , .p.jt = IDNA_UNICODE_JT_T },
+ { 0x1E944, 0x1E94A , .p.jt = IDNA_UNICODE_JT_T },
{ 0xE0001 , 0xE0001 , .p.jt = IDNA_UNICODE_JT_T },
{ 0xE0020, 0xE007F , .p.jt = IDNA_UNICODE_JT_T },
{ 0xE0100, 0xE01EF , .p.jt = IDNA_UNICODE_JT_T },
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=1a5ee4626a83753cfdc...
commit 1a5ee4626a83753cfdc0f8e3e45f6ee65df87b93
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
split tools and utils
diff --git a/Makefile b/Makefile
index 1af792a..6183745 100644
--- a/Makefile
+++ b/Makefile
@@ -638,6 +638,12 @@ POSTEXES :=
include frontends/Makefile
# ----------------------------------------------------------------------------
+# Build tools setup
+# ----------------------------------------------------------------------------
+
+include tools/Makefile
+
+# ----------------------------------------------------------------------------
# General source file setup
# ----------------------------------------------------------------------------
@@ -743,10 +749,6 @@ clean-target:
$(Q)$(RM) $(EXETARGET)
CLEANS += clean-target
-clean-testament:
- $(VQ)echo " CLEAN: testament.h"
- $(Q)$(RM) $(OBJROOT)/testament.h
-CLEANS += clean-testament
clean-builddir:
$(VQ)echo " CLEAN: $(OBJROOT)"
@@ -754,10 +756,7 @@ clean-builddir:
CLEANS += clean-builddir
-.PHONY: all-program testament
-
-testament $(OBJROOT)/testament.h:
- $(Q)$(PERL) utils/git-testament.pl $(CURDIR) $(OBJROOT)/testament.h
+.PHONY: all-program
all-program: $(EXETARGET) $(POSTEXES)
diff --git a/frontends/riscos/Makefile b/frontends/riscos/Makefile
index c028ed7..af6585c 100644
--- a/frontends/riscos/Makefile
+++ b/frontends/riscos/Makefile
@@ -178,7 +178,7 @@ netsurf.zip: $(EXETARGET)
$(eval $@_TMPDIR := $(shell mktemp -d))
$(Q) $(RM) $@
$(Q) cp -rLvp $(FRONTEND_SOURCE_DIR)/appdir $($@_TMPDIR)/!NetSurf
- $(Q) $(CURDIR)/utils/git-date.sh $(FRONTEND_SOURCE_DIR)/distribution
+ $(Q) $(CURDIR)/tools/git-date.sh $(FRONTEND_SOURCE_DIR)/distribution
$(Q) rsync --archive --verbose $(FRONTEND_SOURCE_DIR)/distribution/!Boot $($@_TMPDIR)
$(Q) rsync --archive --verbose $(FRONTEND_SOURCE_DIR)/distribution/!System $($@_TMPDIR)
$(Q) rsync --archive --verbose $(FRONTEND_SOURCE_DIR)/distribution/3rdParty $($@_TMPDIR)
diff --git a/tools/DerivedJoiningType.txt b/tools/DerivedJoiningType.txt
new file mode 100644
index 0000000..d4dcc85
--- /dev/null
+++ b/tools/DerivedJoiningType.txt
@@ -0,0 +1,318 @@
+# DerivedJoiningType-5.2.0.txt
+# Date: 2009-05-28, 20:37:39 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2009 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For documentation, see http://www.unicode.org/reports/tr44/
+
+# ================================================
+
+# Type T is derived, as described in ArabicShaping.txt
+
+# All code points not explicitly listed for Joining_Type
+# have the value Non_Joining (U).
+
+# @missing: 0000..10FFFF; Non_Joining
+
+# ================================================
+
+# Joining_Type=Join_Causing
+
+0640 ; C # Lm ARABIC TATWEEL
+07FA ; C # Lm NKO LAJANYALAN
+200D ; C # Cf ZERO WIDTH JOINER
+
+# Total code points: 3
+
+# ================================================
+
+# Joining_Type=Dual_Joining
+
+0626 ; D # Lo ARABIC LETTER YEH WITH HAMZA ABOVE
+0628 ; D # Lo ARABIC LETTER BEH
+062A..062E ; D # Lo [5] ARABIC LETTER TEH..ARABIC LETTER KHAH
+0633..063F ; D # Lo [13] ARABIC LETTER SEEN..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0641..0647 ; D # Lo [7] ARABIC LETTER FEH..ARABIC LETTER HEH
+0649..064A ; D # Lo [2] ARABIC LETTER ALEF MAKSURA..ARABIC LETTER YEH
+066E..066F ; D # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0678..0687 ; D # Lo [16] ARABIC LETTER HIGH HAMZA YEH..ARABIC LETTER TCHEHEH
+069A..06BF ; D # Lo [38] ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE..ARABIC LETTER TCHEH WITH DOT ABOVE
+06C1..06C2 ; D # Lo [2] ARABIC LETTER HEH GOAL..ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06CC ; D # Lo ARABIC LETTER FARSI YEH
+06CE ; D # Lo ARABIC LETTER YEH WITH SMALL V
+06D0..06D1 ; D # Lo [2] ARABIC LETTER E..ARABIC LETTER YEH WITH THREE DOTS BELOW
+06FA..06FC ; D # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FF ; D # Lo ARABIC LETTER HEH WITH INVERTED V
+0712..0714 ; D # Lo [3] SYRIAC LETTER BETH..SYRIAC LETTER GAMAL GARSHUNI
+071A..071D ; D # Lo [4] SYRIAC LETTER HETH..SYRIAC LETTER YUDH
+071F..0727 ; D # Lo [9] SYRIAC LETTER KAPH..SYRIAC LETTER REVERSED PE
+0729 ; D # Lo SYRIAC LETTER QAPH
+072B ; D # Lo SYRIAC LETTER SHIN
+072D..072E ; D # Lo [2] SYRIAC LETTER PERSIAN BHETH..SYRIAC LETTER PERSIAN GHAMAL
+074E..0758 ; D # Lo [11] SYRIAC LETTER SOGDIAN KHAPH..ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
+075C..076A ; D # Lo [15] ARABIC LETTER SEEN WITH FOUR DOTS ABOVE..ARABIC LETTER LAM WITH BAR
+076D..0770 ; D # Lo [4] ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE..ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
+0772 ; D # Lo ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
+0775..0777 ; D # Lo [3] ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
+077A..077F ; D # Lo [6] ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+07CA..07EA ; D # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+
+# Total code points: 188
+
+# ================================================
+
+# Joining_Type=Right_Joining
+
+0622..0625 ; R # Lo [4] ARABIC LETTER ALEF WITH MADDA ABOVE..ARABIC LETTER ALEF WITH HAMZA BELOW
+0627 ; R # Lo ARABIC LETTER ALEF
+0629 ; R # Lo ARABIC LETTER TEH MARBUTA
+062F..0632 ; R # Lo [4] ARABIC LETTER DAL..ARABIC LETTER ZAIN
+0648 ; R # Lo ARABIC LETTER WAW
+0671..0673 ; R # Lo [3] ARABIC LETTER ALEF WASLA..ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
+0675..0677 ; R # Lo [3] ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER U WITH HAMZA ABOVE
+0688..0699 ; R # Lo [18] ARABIC LETTER DDAL..ARABIC LETTER REH WITH FOUR DOTS ABOVE
+06C0 ; R # Lo ARABIC LETTER HEH WITH YEH ABOVE
+06C3..06CB ; R # Lo [9] ARABIC LETTER TEH MARBUTA GOAL..ARABIC LETTER VE
+06CD ; R # Lo ARABIC LETTER YEH WITH TAIL
+06CF ; R # Lo ARABIC LETTER WAW WITH DOT ABOVE
+06D2..06D3 ; R # Lo [2] ARABIC LETTER YEH BARREE..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D5 ; R # Lo ARABIC LETTER AE
+06EE..06EF ; R # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+0710 ; R # Lo SYRIAC LETTER ALAPH
+0715..0719 ; R # Lo [5] SYRIAC LETTER DALATH..SYRIAC LETTER ZAIN
+071E ; R # Lo SYRIAC LETTER YUDH HE
+0728 ; R # Lo SYRIAC LETTER SADHE
+072A ; R # Lo SYRIAC LETTER RISH
+072C ; R # Lo SYRIAC LETTER TAW
+072F ; R # Lo SYRIAC LETTER PERSIAN DHALATH
+074D ; R # Lo SYRIAC LETTER SOGDIAN ZHAIN
+0759..075B ; R # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH..ARABIC LETTER REH WITH STROKE
+076B..076C ; R # Lo [2] ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE..ARABIC LETTER REH WITH HAMZA ABOVE
+0771 ; R # Lo ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
+0773..0774 ; R # Lo [2] ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+0778..0779 ; R # Lo [2] ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+
+# Total code points: 74
+
+# ================================================
+
+# Joining_Type=Transparent
+
+00AD ; T # Cf SOFT HYPHEN
+0300..036F ; T # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+0483..0487 ; T # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488..0489 ; T # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+0591..05BD ; T # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BF ; T # Mn HEBREW POINT RAFE
+05C1..05C2 ; T # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C4..05C5 ; T # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C7 ; T # Mn HEBREW POINT QAMATS QATAN
+0610..061A ; T # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+064B..065E ; T # Mn [20] ARABIC FATHATAN..ARABIC FATHA WITH TWO DOTS
+0670 ; T # Mn ARABIC LETTER SUPERSCRIPT ALEF
+06D6..06DC ; T # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DE ; T # Me ARABIC START OF RUB EL HIZB
+06DF..06E4 ; T # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E7..06E8 ; T # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06EA..06ED ; T # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+070F ; T # Cf SYRIAC ABBREVIATION MARK
+0711 ; T # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
+0730..074A ; T # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+07A6..07B0 ; T # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07EB..07F3 ; T # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+0816..0819 ; T # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+081B..0823 ; T # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+0825..0827 ; T # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+0829..082D ; T # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+0900..0902 ; T # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+093C ; T # Mn DEVANAGARI SIGN NUKTA
+0941..0948 ; T # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+094D ; T # Mn DEVANAGARI SIGN VIRAMA
+0951..0955 ; T # Mn [5] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN CANDRA LONG E
+0962..0963 ; T # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0981 ; T # Mn BENGALI SIGN CANDRABINDU
+09BC ; T # Mn BENGALI SIGN NUKTA
+09C1..09C4 ; T # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09CD ; T # Mn BENGALI SIGN VIRAMA
+09E2..09E3 ; T # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+0A01..0A02 ; T # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A3C ; T # Mn GURMUKHI SIGN NUKTA
+0A41..0A42 ; T # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48 ; T # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D ; T # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51 ; T # Mn GURMUKHI SIGN UDAAT
+0A70..0A71 ; T # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A75 ; T # Mn GURMUKHI SIGN YAKASH
+0A81..0A82 ; T # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0ABC ; T # Mn GUJARATI SIGN NUKTA
+0AC1..0AC5 ; T # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8 ; T # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0ACD ; T # Mn GUJARATI SIGN VIRAMA
+0AE2..0AE3 ; T # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0B01 ; T # Mn ORIYA SIGN CANDRABINDU
+0B3C ; T # Mn ORIYA SIGN NUKTA
+0B3F ; T # Mn ORIYA VOWEL SIGN I
+0B41..0B44 ; T # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B4D ; T # Mn ORIYA SIGN VIRAMA
+0B56 ; T # Mn ORIYA AI LENGTH MARK
+0B62..0B63 ; T # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B82 ; T # Mn TAMIL SIGN ANUSVARA
+0BC0 ; T # Mn TAMIL VOWEL SIGN II
+0BCD ; T # Mn TAMIL SIGN VIRAMA
+0C3E..0C40 ; T # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C46..0C48 ; T # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D ; T # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56 ; T # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C62..0C63 ; T # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0CBC ; T # Mn KANNADA SIGN NUKTA
+0CBF ; T # Mn KANNADA VOWEL SIGN I
+0CC6 ; T # Mn KANNADA VOWEL SIGN E
+0CCC..0CCD ; T # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CE2..0CE3 ; T # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D41..0D44 ; T # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D4D ; T # Mn MALAYALAM SIGN VIRAMA
+0D62..0D63 ; T # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0DCA ; T # Mn SINHALA SIGN AL-LAKUNA
+0DD2..0DD4 ; T # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; T # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
+0E31 ; T # Mn THAI CHARACTER MAI HAN-AKAT
+0E34..0E3A ; T # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E47..0E4E ; T # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0EB1 ; T # Mn LAO VOWEL SIGN MAI KAN
+0EB4..0EB9 ; T # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBB..0EBC ; T # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EC8..0ECD ; T # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0F18..0F19 ; T # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F35 ; T # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
+0F37 ; T # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F39 ; T # Mn TIBETAN MARK TSA -PHRU
+0F71..0F7E ; T # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F80..0F84 ; T # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F86..0F87 ; T # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F90..0F97 ; T # Mn [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC ; T # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FC6 ; T # Mn TIBETAN SYMBOL PADMA GDAN
+102D..1030 ; T # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1032..1037 ; T # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1039..103A ; T # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103D..103E ; T # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+1058..1059 ; T # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105E..1060 ; T # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1071..1074 ; T # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1082 ; T # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1085..1086 ; T # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+108D ; T # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+109D ; T # Mn MYANMAR VOWEL SIGN AITON AI
+135F ; T # Mn ETHIOPIC COMBINING GEMINATION MARK
+1712..1714 ; T # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1732..1734 ; T # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1752..1753 ; T # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1772..1773 ; T # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+17B4..17B5 ; T # Cf [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B7..17BD ; T # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17C6 ; T # Mn KHMER SIGN NIKAHIT
+17C9..17D3 ; T # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17DD ; T # Mn KHMER SIGN ATTHACAN
+180B..180D ; T # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+18A9 ; T # Mn MONGOLIAN LETTER ALI GALI DAGALGA
+1920..1922 ; T # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1927..1928 ; T # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1932 ; T # Mn LIMBU SMALL LETTER ANUSVARA
+1939..193B ; T # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1A17..1A18 ; T # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1A56 ; T # Mn TAI THAM CONSONANT SIGN MEDIAL LA
+1A58..1A5E ; T # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+1A60 ; T # Mn TAI THAM SIGN SAKOT
+1A62 ; T # Mn TAI THAM VOWEL SIGN MAI SAT
+1A65..1A6C ; T # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+1A73..1A7C ; T # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+1A7F ; T # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1B00..1B03 ; T # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B34 ; T # Mn BALINESE SIGN REREKAN
+1B36..1B3A ; T # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3C ; T # Mn BALINESE VOWEL SIGN LA LENGA
+1B42 ; T # Mn BALINESE VOWEL SIGN PEPET
+1B6B..1B73 ; T # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B80..1B81 ; T # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1BA2..1BA5 ; T # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA8..1BA9 ; T # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1C2C..1C33 ; T # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C36..1C37 ; T # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1CD0..1CD2 ; T # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD4..1CE0 ; T # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE2..1CE8 ; T # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+1CED ; T # Mn VEDIC SIGN TIRYAK
+1DC0..1DE6 ; T # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1DFD..1DFF ; T # Mn [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+200B ; T # Cf ZERO WIDTH SPACE
+200E..200F ; T # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+202A..202E ; T # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+2060..2064 ; T # Cf [5] WORD JOINER..INVISIBLE PLUS
+206A..206F ; T # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
+20D0..20DC ; T # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20DD..20E0 ; T # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1 ; T # Mn COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4 ; T # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0 ; T # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+2CEF..2CF1 ; T # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2DE0..2DFF ; T # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+302A..302F ; T # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3099..309A ; T # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+A66F ; T # Mn COMBINING CYRILLIC VZMET
+A670..A672 ; T # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A67C..A67D ; T # Mn [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A6F0..A6F1 ; T # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A802 ; T # Mn SYLOTI NAGRI SIGN DVISVARA
+A806 ; T # Mn SYLOTI NAGRI SIGN HASANTA
+A80B ; T # Mn SYLOTI NAGRI SIGN ANUSVARA
+A825..A826 ; T # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A8C4 ; T # Mn SAURASHTRA SIGN VIRAMA
+A8E0..A8F1 ; T # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+A926..A92D ; T # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A947..A951 ; T # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A980..A982 ; T # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+A9B3 ; T # Mn JAVANESE SIGN CECAK TELU
+A9B6..A9B9 ; T # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+A9BC ; T # Mn JAVANESE VOWEL SIGN PEPET
+AA29..AA2E ; T # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA31..AA32 ; T # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA35..AA36 ; T # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA43 ; T # Mn CHAM CONSONANT SIGN FINAL NG
+AA4C ; T # Mn CHAM CONSONANT SIGN FINAL M
+AAB0 ; T # Mn TAI VIET MAI KANG
+AAB2..AAB4 ; T # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+AAB7..AAB8 ; T # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+AABE..AABF ; T # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+AAC1 ; T # Mn TAI VIET TONE MAI THO
+ABE5 ; T # Mn MEETEI MAYEK VOWEL SIGN ANAP
+ABE8 ; T # Mn MEETEI MAYEK VOWEL SIGN UNAP
+ABED ; T # Mn MEETEI MAYEK APUN IYEK
+FB1E ; T # Mn HEBREW POINT JUDEO-SPANISH VARIKA
+FE00..FE0F ; T # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE20..FE26 ; T # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FEFF ; T # Cf ZERO WIDTH NO-BREAK SPACE
+FFF9..FFFB ; T # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+101FD ; T # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+10A01..10A03 ; T # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06 ; T # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F ; T # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A38..10A3A ; T # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F ; T # Mn KHAROSHTHI VIRAMA
+11080..11081 ; T # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+110B3..110B6 ; T # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+110B9..110BA ; T # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110BD ; T # Cf KAITHI NUMBER SIGN
+1D167..1D169 ; T # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D173..1D17A ; T # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D17B..1D182 ; T # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D185..1D18B ; T # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D1AA..1D1AD ; T # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D242..1D244 ; T # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+E0001 ; T # Cf LANGUAGE TAG
+E0020..E007F ; T # Cf [96] TAG SPACE..CANCEL TAG
+E0100..E01EF ; T # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+
+# Total code points: 1308
+
+# EOF
diff --git a/tools/Makefile b/tools/Makefile
new file mode 100644
index 0000000..a53759f
--- /dev/null
+++ b/tools/Makefile
@@ -0,0 +1,73 @@
+# Tools
+
+# testament rules
+
+clean-testament:
+ $(VQ)echo " CLEAN: testament.h"
+ $(Q)$(RM) $(OBJROOT)/testament.h
+CLEANS += clean-testament
+
+.PHONY: testament
+
+testament $(OBJROOT)/testament.h:
+ $(Q)$(PERL) tools/git-testament.pl $(CURDIR) $(OBJROOT)/testament.h
+
+
+# lib png build compiler flags
+ifeq ($(HOST),OpenBSD)
+ BUILD_LIBPNG_CFLAGS += $(shell $(PKG_CONFIG) --cflags libpng)
+ BUILD_LIBPNG_LDFLAGS += $(shell $(PKG_CONFIG) --libs libpng)
+else
+ ifeq ($(HOST),FreeBSD)
+ BUILD_LIBPNG_CFLAGS += $(shell $(PKG_CONFIG) --cflags libpng)
+ BUILD_LIBPNG_LDFLAGS += $(shell $(PKG_CONFIG) --libs libpng)
+ else
+ BUILD_LIBPNG_CFLAGS +=
+ BUILD_LIBPNG_LDFLAGS += -lpng
+ endif
+endif
+
+
+# Build tool to convert file to comiled data
+#
+$(TOOLROOT)/xxd: tools/xxd.c $(TOOLROOT)/created
+ $(VQ)echo "BUILD CC: $@"
+ $(Q)$(BUILD_CC) $(BUILD_CFLAGS) -o $@ $< $(BUILD_LDFLAGS)
+
+
+# Build tool to filter messages
+#
+$(TOOLROOT)/split-messages: tools/split-messages.c $(TOOLROOT)/created
+ $(VQ)echo "BUILD CC: $@"
+ $(Q)$(BUILD_CC) $(BUILD_CFLAGS) -I. -o $@ $< $(BUILD_LDFLAGS) -lz
+
+
+# Build tool to convert image bitmaps to source code.
+#
+$(TOOLROOT)/convert_image: tools/convert_image.c $(TOOLROOT)/created
+ $(VQ)echo "BUILD CC: $@"
+ $(Q)$(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_LIBPNG_CFLAGS) -o $@ $< $(BUILD_LDFLAGS) $(BUILD_LIBPNG_LDFLAGS)
+
+
+# Build too to perform font conversion
+$(TOOLROOT)/convert_font: tools/convert_font.c $(TOOLROOT)/created
+ $(VQ)echo "BUILD CC: $@"
+ $(Q)$(BUILD_CC) $(BUILD_CFLAGS) -o $@ $<
+
+# idna
+#
+IDNA_UNICODE_MAJOR=11
+
+tools/DerivedJoiningType.txt:
+ curl -o $@ "https://www.unicode.org/Public/$(IDNA_UNICODE_MAJOR).0.0/ucd/extracted/De..."
+
+tools/IdnaMappingTable.txt:
+ curl -o $@ "https://www.unicode.org/Public/idna/$(IDNA_UNICODE_MAJOR).0.0/IdnaMapping..."
+
+tools/idna-tables-properties.csv:
+ curl -o $@ "https://www.iana.org/assignments/idna-tables-$(IDNA_UNICODE_MAJOR).0.0/id..."
+
+
+utils/idna_props.h: tools/DerivedJoiningType.txt tools/idna-tables-properties.csv
+ $(VQ)echo " IDNA: $@"
+ $(Q)$(PERL) tools/idna-derived-props-gen.pl -o $@ -p tools/idna-tables-properties.csv -j tools/DerivedJoiningType.txt
diff --git a/tools/convert_font.c b/tools/convert_font.c
new file mode 100644
index 0000000..9f5734b
--- /dev/null
+++ b/tools/convert_font.c
@@ -0,0 +1,1215 @@
+/*
+ * Copyright 2014 Michael Drake <tlsa(a)netsurf-browser.org>
+ * Copyright 2014 Vincent Sanders <vince(a)netsurf-browser.org>
+ *
+ * This file is part of the convert_font tool used to convert font
+ * glyph data into a compilable representation.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <unistd.h>
+#include <getopt.h>
+
+#define GLYPH_LEN 16
+#define BUCKETS 512
+#define CHUNK_SIZE (64 * 1024)
+#define HEADER_MAX 2000
+
+#define SECTION_SIZE (sizeof(uint16_t) * 256)
+
+const char *labels[4] = {
+ " Regular",
+ " Italic",
+ " Bold",
+ "Bold & Italic"
+};
+
+const char *var_lables[4] = {
+ "fb_regular",
+ "fb_italic",
+ "fb_bold",
+ "fb_bold_italic"
+};
+
+const char *short_labels[4] = {
+ " ",
+ " i",
+ "b ",
+ "bi"
+};
+
+enum font_style {
+ REGULAR = 0,
+ ITALIC = (1 << 0),
+ BOLD = (1 << 1),
+ ITALIC_BOLD = (1 << 2)
+};
+
+enum log_level {
+ LOG_DEBUG,
+ LOG_INFO,
+ LOG_RESULT,
+ LOG_WARNING,
+ LOG_ERROR
+};
+
+enum log_level level;
+
+typedef struct glyph_entry {
+ union {
+ uint32_t u32[GLYPH_LEN / 4];
+ uint8_t u8[GLYPH_LEN];
+ } data;
+ uint32_t index;
+ struct glyph_entry *next;
+} glyph_entry;
+
+/** Scratch glyph for generated code points */
+uint8_t code_point[GLYPH_LEN];
+
+/** Hash table */
+glyph_entry *ht[BUCKETS];
+
+#define LOG(lev, fmt, ...) \
+ if (lev >= level) \
+ printf(fmt, ##__VA_ARGS__);
+
+/**
+ * Get hash for glyph data
+ * \param g Glyph data (GLYPH_LEN bytes)
+ * \return glyph's hash
+ */
+static inline uint32_t glyph_hash(const uint8_t *g)
+{
+ uint32_t hash = 0x811c9dc5;
+ unsigned int len = GLYPH_LEN;
+
+ while (len > 0) {
+ hash *= 0x01000193;
+ hash ^= *g++;
+ len--;
+ }
+
+ return hash;
+}
+
+
+/**
+ * Check whether glyphs are identical (compares glyph data)
+ *
+ * \param g1 First glyph's data (GLYPH_LEN bytes)
+ * \param g2 Second glyph's data (GLYPH_LEN bytes)
+ * \return true iff both glyphs are identical, else false
+ */
+static inline bool glyphs_match(const uint8_t *g1, const uint8_t *g2)
+{
+ return (memcmp(g1, g2, GLYPH_LEN) == 0);
+}
+
+
+/**
+ * Add a glyph to a hash chain (or free, and return pointer to existing glyph)
+ *
+ * Note that if new glyph already exists in chain, it is freed and a pointer to
+ * the existing glyph is returned. If the glyph does not exist in the chain
+ * it is added and its pointer is returned.
+ *
+ * \param head Head of hash chain
+ * \param new New glyph to add (may be freed)
+ * \return pointer to glyph in hash chain
+ */
+static glyph_entry * glyph_add_to_chain(glyph_entry **head, glyph_entry *new)
+{
+ glyph_entry *e = *head;
+
+ if (*head == NULL) {
+ new->next = NULL;
+ *head = new;
+ return new;
+ }
+
+ do {
+ if (glyphs_match(new->data.u8, e->data.u8)) {
+ free(new);
+ return e;
+ }
+ if (e->next == NULL)
+ break;
+ e = e->next;
+ } while (1);
+
+ new->next = e->next;
+ e->next = new;
+ return new;
+}
+
+
+/**
+ * Free a glyph entry chain
+ *
+ * \param head Head of hash chain
+ */
+static void free_chain(glyph_entry *head)
+{
+ glyph_entry *e = head;
+
+ if (head == NULL)
+ return;
+
+ while (e != NULL) {
+ head = e->next;
+ free(e);
+ e = head;
+ };
+}
+
+
+/**
+ * Add new glyph to hash table (or free, and return pointer to existing glyph)
+ *
+ * Note that if new glyph already exists in table, it is freed and a pointer to
+ * the existing glyph is returned. If the glyph does not exist in the table
+ * it is added and its pointer is returned.
+ *
+ * \param new New glyph to add (may be freed)
+ * \return pointer to glyph in hash table
+ */
+static glyph_entry * glyph_add_to_table(glyph_entry *new)
+{
+ uint32_t hash = glyph_hash(new->data.u8);
+
+ return glyph_add_to_chain(&ht[hash % BUCKETS], new);
+}
+
+
+/**
+ * Free glyph table.
+ */
+static void free_table(void)
+{
+ int i;
+
+ for (i = 0; i < BUCKETS; i++) {
+ free_chain(ht[i]);
+ }
+}
+
+struct parse_context {
+ enum {
+ START,
+ IN_HEADER,
+ BEFORE_ID,
+ GLYPH_ID,
+ BEFORE_GLYPH_DATA,
+ IN_GLYPH_DATA
+ } state; /**< Current parser state */
+
+ union {
+ struct {
+ bool new_line;
+ } in_header;
+ struct {
+ bool new_line;
+ bool u;
+ } before_id;
+ struct {
+ int c;
+ } g_id;
+ struct {
+ bool new_line;
+ bool prev_h;
+ bool prev_s;
+ int c;
+ } before_gd;
+ struct {
+ int line;
+ int pos;
+ int styles;
+ int line_styles;
+ glyph_entry *e[4];
+ } in_gd;
+ } data; /**< The state specific data */
+
+ int id; /**< Current ID */
+
+ int codepoints; /**< Glyphs containing codepoints */
+ int count[4]; /**< Count of glyphs in file */
+};
+
+struct font_data {
+ char header[HEADER_MAX];
+ int header_len;
+
+ uint8_t section_table[4][256];
+ uint8_t sec_count[4];
+ uint16_t *sections[4];
+
+ glyph_entry *e[0xffff];
+ int glyphs;
+};
+
+static bool generate_font_header(const char *path, struct font_data *data)
+{
+ FILE *fp;
+ int s;
+
+ fp = fopen(path, "wb");
+ if (fp == NULL) {
+ LOG(LOG_ERROR, "Couldn't open header file \"%s\"\n", path);
+ return false;
+ }
+
+ fprintf(fp, "/*\n");
+ fwrite(data->header, 1, data->header_len, fp);
+ fprintf(fp, " */\n\n");
+ fprintf(fp, "/* Don't edit this file, it was generated from the "
+ "plain text source data. */\n\n");
+
+
+ for (s = 0; s < 4; s++) {
+ fprintf(fp, "const uint8_t *%s_section_table;\n",
+ var_lables[s]);
+ fprintf(fp, "const uint16_t *%s_sections;\n",
+ var_lables[s]);
+
+ }
+
+ fprintf(fp, "const uint8_t *font_glyph_data;\n");
+
+ fprintf(fp, "\n\n");
+
+ fclose(fp);
+
+ return true;
+
+}
+
+static bool generate_font_source(const char *path, struct font_data *data)
+{
+ int s, i, y;
+ int limit;
+ FILE *fp;
+
+ fp = fopen(path, "wb");
+ if (fp == NULL) {
+ LOG(LOG_ERROR, "Couldn't open output file \"%s\"\n", path);
+ return false;
+ }
+
+ fprintf(fp, "/*\n");
+ fwrite(data->header, 1, data->header_len, fp);
+ fprintf(fp, " */\n\n");
+ fprintf(fp, "/* Don't edit this file, it was generated from the "
+ "plain text source data. */\n\n");
+
+ fprintf(fp, "#include <stdint.h>\n");
+ fprintf(fp, "\n");
+
+ for (s = 0; s < 4; s++) {
+
+ fprintf(fp, "static const uint8_t %s_section_table_c[256] = {\n",
+ var_lables[s]);
+
+ for (i = 0; i < 256; i++) {
+ if (i == 255)
+ fprintf(fp, "0x%.2X\n",
+ data->section_table[s][i]);
+ else if (i % 8 == 7)
+ fprintf(fp, "0x%.2X,\n",
+ data->section_table[s][i]);
+ else if (i % 8 == 0)
+ fprintf(fp, "\t0x%.2X, ",
+ data->section_table[s][i]);
+ else
+ fprintf(fp, "0x%.2X, ",
+ data->section_table[s][i]);
+ }
+
+ fprintf(fp, "};\nconst uint8_t *%s_section_table = &%s_section_table_c[0];\n\n",
+ var_lables[s], var_lables[s]);
+ fprintf(fp, "static const uint16_t %s_sections_c[%i] = {\n",
+ var_lables[s], data->sec_count[s] * 256);
+
+ limit = data->sec_count[s] * 256;
+ for (i = 0; i < limit; i++) {
+ uint16_t offset = data->sections[s][i];
+ if (i == limit - 1)
+ fprintf(fp, "0x%.4X\n", offset);
+ else if (i % 4 == 3)
+ fprintf(fp, "0x%.4X,\n", offset);
+ else if (i % 4 == 0)
+ fprintf(fp, "\t0x%.4X, ", offset);
+ else
+ fprintf(fp, "0x%.4X, ", offset);
+ }
+
+ fprintf(fp, "};\nconst uint16_t *%s_sections = &%s_sections_c[0];\n\n", var_lables[s], var_lables[s]);
+ }
+
+ fprintf(fp, "static const uint8_t font_glyph_data_c[%i] = {\n",
+ (data->glyphs + 1) * 16);
+
+ fprintf(fp, "\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n"
+ "\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n");
+
+ limit = data->glyphs;
+ for (i = 0; i < limit; i++) {
+ glyph_entry *e = data->e[i];
+
+ for (y = 0; y < 16; y++) {
+ if (i == limit - 1 && y == 15)
+ fprintf(fp, "0x%.2X\n", e->data.u8[y]);
+ else if (y % 8 == 7)
+ fprintf(fp, "0x%.2X,\n", e->data.u8[y]);
+ else if (y % 8 == 0)
+ fprintf(fp, "\t0x%.2X, ", e->data.u8[y]);
+ else
+ fprintf(fp, "0x%.2X, ", e->data.u8[y]);
+ }
+ }
+
+ fprintf(fp, "};\n");
+ fprintf(fp, "const uint8_t *font_glyph_data = &font_glyph_data_c[0];\n\n");
+
+ fclose(fp);
+
+ return true;
+}
+
+static bool add_glyph_to_data(glyph_entry *add, int id, int style,
+ struct font_data *d)
+{
+ glyph_entry *e;
+ int offset;
+ int s;
+
+ /* Find out if 'add' is unique, and get its unique table entry */
+ e = glyph_add_to_table(add);
+ if (e == add) {
+ /* Unique glyph */
+ d->e[d->glyphs++] = e;
+ e->index = d->glyphs;
+ if (d->glyphs >= 0xfffd) {
+ LOG(LOG_ERROR, " Too many glyphs for internal data "
+ "representation\n");
+ return false;
+ }
+ } else {
+ /* Duplicate glyph */
+ LOG(LOG_DEBUG, " U+%.4X (%s) is duplicate\n",
+ id, short_labels[style]);
+ }
+
+ /* Find glyph's section */
+ s = id / 256;
+
+ /* Allocate section if needed */
+ if ((s == 0 && d->sections[style] == NULL) ||
+ (s != 0 && d->section_table[style][s] == 0)) {
+ size_t size = (d->sec_count[style] + 1) * SECTION_SIZE;
+ uint16_t *temp = realloc(d->sections[style], size);
+ if (temp == NULL) {
+ LOG(LOG_ERROR, " Couldn't increase sections "
+ "allocation\n");
+ return false;
+ }
+ memset(temp + d->sec_count[style] * 256, 0,
+ SECTION_SIZE);
+ d->section_table[style][s] = d->sec_count[style];
+ d->sections[style] = temp;
+ d->sec_count[style]++;
+ }
+
+ offset = d->section_table[style][s] * 256 + (id & 0xff);
+ d->sections[style][offset] = e->index;
+
+ return true;
+}
+
+
+static bool check_glyph_data_valid(int pos, char c)
+{
+ int offset = pos % 11;
+
+ if (pos == 44) {
+ if (c != '\n') {
+ LOG(LOG_ERROR, " Invalid glyph data: "
+ "expecting '\\n', got '%c' (%i)\n",
+ c, c);
+ return false;
+ } else {
+ return true;
+ }
+ } else if (pos < 3) {
+ if (c != ' ') {
+ LOG(LOG_ERROR, " Invalid glyph data: "
+ "expecting ' ', got '%c' (%i)\n",
+ c, c);
+ return false;
+ } else {
+ return true;
+ }
+ } else if (offset == 0) {
+ if (c != '\n' && c != ' ') {
+ LOG(LOG_ERROR, " Invalid glyph data: "
+ "expecting '\\n' or ' ', "
+ "got '%c' (%i)\n",
+ c, c);
+ return false;
+ } else {
+ return true;
+ }
+ } else if (offset < 3) {
+ if (c != ' ') {
+ LOG(LOG_ERROR, " Invalid glyph data: "
+ "expecting ' ', got '%c' (%i)\n",
+ c, c);
+ return false;
+ } else {
+ return true;
+ }
+ } else if (offset >= 3 && pos < 11) {
+ if (c != '.' && c != '#') {
+ LOG(LOG_ERROR, " Invalid glyph data: "
+ "expecting '.' or '#', "
+ "got '%c' (%i)\n",
+ c, c);
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ /* offset must be >=3 */
+ if (c != '.' && c != '#' && c != ' ') {
+ LOG(LOG_ERROR, " Invalid glyph data: "
+ "expecting '.', '#', or ' ', "
+ "got '%c' (%i)\n",
+ c, c);
+ return false;
+ }
+
+ return true;
+}
+
+#define SEVEN_SET ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | \
+ (1 << 4) | (1 << 5) | (1 << 6))
+
+#define THREE_SSS ((1 << 0) | (1 << 1) | (1 << 2))
+#define THREE_S_S ((1 << 0) | (1 << 2))
+#define THREE__SS ((1 << 0) | (1 << 1) )
+#define THREE_SS_ ( (1 << 1) | (1 << 2))
+#define THREE_S__ (1 << 2)
+#define THREE__S_ (1 << 1)
+#define THREE___S (1 << 0)
+
+uint8_t frag[16][5] = {
+ { THREE_SSS,
+ THREE_S_S,
+ THREE_S_S,
+ THREE_S_S,
+ THREE_SSS },
+
+ { THREE__S_,
+ THREE_SS_,
+ THREE__S_,
+ THREE__S_,
+ THREE_SSS },
+
+ { THREE_SS_,
+ THREE___S,
+ THREE__S_,
+ THREE_S__,
+ THREE_SSS },
+
+ { THREE_SS_,
+ THREE___S,
+ THREE_SS_,
+ THREE___S,
+ THREE_SS_ },
+
+ { THREE_S_S,
+ THREE_S_S,
+ THREE_SSS,
+ THREE___S,
+ THREE___S },
+
+ { THREE_SSS,
+ THREE_S__,
+ THREE_SSS,
+ THREE___S,
+ THREE_SSS },
+
+ { THREE__SS,
+ THREE_S__,
+ THREE_SSS,
+ THREE_S_S,
+ THREE_SSS },
+
+ { THREE_SSS,
+ THREE___S,
+ THREE__S_,
+ THREE__S_,
+ THREE__S_ },
+
+ { THREE_SSS,
+ THREE_S_S,
+ THREE_SSS,
+ THREE_S_S,
+ THREE_SSS },
+
+ { THREE_SSS,
+ THREE_S_S,
+ THREE_SSS,
+ THREE___S,
+ THREE___S },
+
+ { THREE__S_,
+ THREE_S_S,
+ THREE_SSS,
+ THREE_S_S,
+ THREE_S_S },
+
+ { THREE_SS_,
+ THREE_S_S,
+ THREE_SS_,
+ THREE_S_S,
+ THREE_SS_ },
+
+ { THREE__S_,
+ THREE_S_S,
+ THREE_S__,
+ THREE_S_S,
+ THREE__S_ },
+
+ { THREE_SS_,
+ THREE_S_S,
+ THREE_S_S,
+ THREE_S_S,
+ THREE_SS_ },
+
+ { THREE_SSS,
+ THREE_S__,
+ THREE_SS_,
+ THREE_S__,
+ THREE_SSS },
+
+ { THREE_SSS,
+ THREE_S__,
+ THREE_SS_,
+ THREE_S__,
+ THREE_S__ }
+};
+
+static void build_codepoint(int id, bool italic, uint8_t *code_point)
+{
+ int shift = 0;
+ int l;
+ int r;
+
+ if (!italic)
+ shift = 1;
+
+ l = (id >> 12);
+ r = 0xf & (id >> 8);
+
+ code_point[ 0] = 0;
+ code_point[ 1] = SEVEN_SET << shift;
+ code_point[ 2] = 0;
+
+ code_point[ 3] = (frag[l][0] << (4 + shift)) | (frag[r][0] << shift);
+ code_point[ 4] = (frag[l][1] << (4 + shift)) | (frag[r][1] << shift);
+ code_point[ 5] = (frag[l][2] << (4 + shift)) | (frag[r][2] << shift);
+ code_point[ 6] = (frag[l][3] << (4 + shift)) | (frag[r][3] << shift);
+ code_point[ 7] = (frag[l][4] << (4 + shift)) | (frag[r][4] << shift);
+
+ code_point[ 8] = 0;
+
+ shift = 1;
+
+ l = 0xf & (id >> 4);
+ r = 0xf & id ;
+
+ code_point[ 9] = (frag[l][0] << (4 + shift)) | (frag[r][0] << shift);
+ code_point[10] = (frag[l][1] << (4 + shift)) | (frag[r][1] << shift);
+ code_point[11] = (frag[l][2] << (4 + shift)) | (frag[r][2] << shift);
+ code_point[12] = (frag[l][3] << (4 + shift)) | (frag[r][3] << shift);
+ code_point[13] = (frag[l][4] << (4 + shift)) | (frag[r][4] << shift);
+
+ code_point[14] = 0;
+ code_point[15] = SEVEN_SET << shift;
+}
+
+#undef SEVEN_SET
+#undef THREE_SSS
+#undef THREE_S_S
+#undef THREE__SS
+#undef THREE_SS_
+#undef THREE_S__
+#undef THREE__S_
+#undef THREE___S
+
+static bool glyph_is_codepoint(const glyph_entry *e, int id, int style)
+{
+ bool italic = false;
+
+ if (style == 1 || style == 3) {
+ italic = true;
+ }
+
+ build_codepoint(id, italic, code_point);
+
+ return glyphs_match(code_point, e->data.u8);
+}
+
+
+static bool parse_glyph_data(struct parse_context *ctx, char c,
+ struct font_data *d)
+{
+ int glyph = ctx->data.in_gd.pos / 11;
+ int g_pos = ctx->data.in_gd.pos % 11 - 3;
+ uint8_t *row;
+ bool ok;
+ int i;
+
+ /* Check that character is valid */
+ if (check_glyph_data_valid(ctx->data.in_gd.pos, c) == false) {
+ LOG(LOG_ERROR, " Error in U+%.4X data: "
+ "glyph line: %i, pos: %i\n",
+ ctx->id,
+ ctx->data.in_gd.line,
+ ctx->data.in_gd.pos);
+ goto error;
+ }
+
+ /* Allocate glyph data if needed */
+ if (ctx->data.in_gd.line == 0 &&
+ (c == '.' || c == '#')) {
+ if (ctx->data.in_gd.e[glyph] == NULL) {
+ ctx->data.in_gd.e[glyph] =
+ calloc(sizeof(struct glyph_entry), 1);
+ if (ctx->data.in_gd.e[glyph] == NULL) {
+ LOG(LOG_ERROR, " Couldn't allocate memory for "
+ "glyph entry\n");
+ goto error;
+ }
+
+ ctx->data.in_gd.styles |= 1 << glyph;
+ }
+ }
+
+ /* Build glyph data */
+ if (c == '#') {
+ row = &ctx->data.in_gd.e[glyph]->data.u8[ctx->data.in_gd.line];
+ *row += 1 << (7 - g_pos);
+
+ ctx->data.in_gd.line_styles |= 1 << glyph;
+ } else if (c == '.') {
+ ctx->data.in_gd.line_styles |= 1 << glyph;
+ }
+
+ /* Deal with current position */
+ if (c == '\n') {
+ if (ctx->data.in_gd.line == 0) {
+ if (ctx->data.in_gd.e[0] == NULL) {
+ LOG(LOG_ERROR, " Error in U+%.4X data: "
+ "\"Regular\" glyph style must "
+ "be present\n", ctx->id);
+ goto error;
+ }
+ } else if (ctx->data.in_gd.styles !=
+ ctx->data.in_gd.line_styles) {
+ LOG(LOG_ERROR, " Error in U+%.4X data: "
+ "glyph line: %i "
+ "styles don't match first line\n",
+ ctx->id,
+ ctx->data.in_gd.line);
+ goto error;
+ }
+
+ ctx->data.in_gd.pos = 0;
+ ctx->data.in_gd.line++;
+ ctx->data.in_gd.line_styles = 0;
+ } else {
+ ctx->data.in_gd.pos++;
+ }
+
+ /* If we've got all the glyph data, tidy up and advance state */
+ if (ctx->data.in_gd.line == 16) {
+ for (i = 0; i < 4; i++) {
+ if (ctx->data.in_gd.e[i] != NULL) {
+ ctx->count[i] += 1;
+ if (glyph_is_codepoint(ctx->data.in_gd.e[i],
+ ctx->id, i)) {
+ LOG(LOG_DEBUG, " U+%.4X (%s) is "
+ "codepoint\n",
+ ctx->id,
+ short_labels[i]);
+ ctx->codepoints += 1;
+ free(ctx->data.in_gd.e[i]);
+ ctx->data.in_gd.e[i] = NULL;
+ continue;
+ }
+
+ ok = add_glyph_to_data(ctx->data.in_gd.e[i],
+ ctx->id, i, d);
+ if (!ok) {
+ goto error;
+ }
+ }
+ }
+
+ ctx->data.before_id.new_line = false;
+ ctx->data.before_id.u = false;
+ ctx->state = BEFORE_ID;
+ }
+
+ return true;
+
+error:
+
+ for (i = 0; i < 4; i++) {
+ free(ctx->data.in_gd.e[i]);
+ }
+
+ return false;
+}
+
+static void parse_init(struct parse_context *ctx)
+{
+ memset(ctx, 0, sizeof(struct parse_context));
+}
+
+static bool get_hex_digit_value(char c, int *v)
+{
+ if (c >= '0' && c <= '9')
+ *v = (c - '0');
+ else if (c >= 'A' && c <= 'F')
+ *v = (10 + c - 'A');
+ else {
+ LOG(LOG_ERROR, "Invalid hex digit '%c' (%i)\n", c, c);
+ return false;
+ }
+
+ return true;
+}
+
+static bool assemble_codepoint(const char* c, int n, int *id)
+{
+ bool ok;
+ int v;
+
+ ok = get_hex_digit_value(*c, &v);
+ if (!ok) {
+ return false;
+ }
+
+ *id += v << (4 * (3 - n));
+
+ return true;
+}
+
+static bool parse_chunk(struct parse_context *ctx, const char *buf, size_t len,
+ struct font_data *d)
+{
+ int i;
+ bool ok;
+ int count[4];
+ const char *pos = buf;
+ const char *end = buf + len;
+
+ for (i = 0; i < 4; i++) {
+ count[i] = ctx->count[i];
+ }
+
+ while (pos < end) {
+ if (*pos == '\r') {
+ LOG(LOG_ERROR, "Detected \'\\r\': Bad line ending\n");
+ return false;
+ }
+
+ switch (ctx->state) {
+ case START:
+ if (*pos != '*') {
+ LOG(LOG_ERROR, "First character must be '*'\n");
+ printf("Got: %c (%i)\n", *pos, *pos);
+ return false;
+ }
+ d->header_len = 0;
+ ctx->data.in_header.new_line = true;
+ ctx->state = IN_HEADER;
+
+ /* Fall through */
+ case IN_HEADER:
+ if (ctx->data.in_header.new_line == true) {
+ if (*pos != '*') {
+ LOG(LOG_INFO, " Got header "
+ "(%i bytes)\n",
+ d->header_len);
+ LOG(LOG_DEBUG, " Header:\n\n%.*s\n",
+ d->header_len,
+ d->header);
+ ctx->data.before_id.new_line = false;
+ ctx->data.before_id.u = false;
+ ctx->state = BEFORE_ID;
+ continue;
+ } else if (*pos == '*') {
+ d->header[d->header_len++] = ' ';
+ }
+ ctx->data.in_header.new_line = false;
+
+ } else if (*pos == '\n') {
+ ctx->data.in_header.new_line = true;
+ }
+
+ if (d->header_len == HEADER_MAX) {
+ LOG(LOG_ERROR, " Header too long "
+ "(>%i bytes)\n",
+ d->header_len);
+ return false;
+ }
+
+ d->header[d->header_len++] = *pos;
+ break;
+
+ case BEFORE_ID:
+ if (*pos == '+' &&
+ ctx->data.before_id.new_line == true &&
+ ctx->data.before_id.u == true) {
+ ctx->data.g_id.c = 0;
+ ctx->id = 0;
+ ctx->state = GLYPH_ID;
+ break;
+
+ } else if (*pos == 'U' &&
+ ctx->data.before_id.new_line == true) {
+ ctx->data.before_id.u = true;
+
+ } else if (*pos == '\n') {
+ ctx->data.before_id.new_line = true;
+ ctx->data.before_id.u = false;
+
+ } else {
+ ctx->data.before_id.new_line = false;
+ ctx->data.before_id.u = false;
+ }
+ break;
+
+ case GLYPH_ID:
+ ok = assemble_codepoint(pos, ctx->data.g_id.c++,
+ &ctx->id);
+ if (!ok) {
+ LOG(LOG_ERROR, " Invalid glyph ID\n");
+ return false;
+ }
+
+ if (ctx->data.g_id.c == 4) {
+ ctx->data.before_gd.new_line = false;
+ ctx->data.before_gd.prev_h = false;
+ ctx->data.before_gd.prev_s = false;
+ ctx->data.before_gd.c = 0;
+ ctx->state = BEFORE_GLYPH_DATA;
+ break;
+ }
+ break;
+
+ case BEFORE_GLYPH_DATA:
+ /* Skip until end of dashed line */
+ if (*pos == '\n' && ctx->data.before_gd.c == 53) {
+ ctx->state = IN_GLYPH_DATA;
+ ctx->data.in_gd.e[0] = NULL;
+ ctx->data.in_gd.e[1] = NULL;
+ ctx->data.in_gd.e[2] = NULL;
+ ctx->data.in_gd.e[3] = NULL;
+ ctx->data.in_gd.line = 0;
+ ctx->data.in_gd.pos = 0;
+ ctx->data.in_gd.line_styles = 0;
+ ctx->data.in_gd.styles = 0;
+ break;
+
+ } else if (*pos == '\n') {
+ ctx->data.before_gd.new_line = true;
+ ctx->data.before_gd.prev_h = false;
+ ctx->data.before_gd.prev_s = false;
+ ctx->data.before_gd.c = 0;
+ } else if (*pos == '-' &&
+ ctx->data.before_gd.new_line == true) {
+ assert(ctx->data.before_gd.c == 0);
+ ctx->data.before_gd.new_line = false;
+ ctx->data.before_gd.c++;
+ ctx->data.before_gd.prev_h = true;
+ } else if (*pos == ' ' &&
+ ctx->data.before_gd.prev_h == true) {
+ assert(ctx->data.before_gd.prev_s == false);
+ ctx->data.before_gd.c++;
+ ctx->data.before_gd.prev_h = false;
+ ctx->data.before_gd.prev_s = true;
+ } else if (*pos == '-' &&
+ ctx->data.before_gd.prev_s == true) {
+ assert(ctx->data.before_gd.prev_h == false);
+ ctx->data.before_gd.c++;
+ ctx->data.before_gd.prev_h = true;
+ ctx->data.before_gd.prev_s = false;
+ } else {
+ ctx->data.before_gd.new_line = false;
+ ctx->data.before_gd.prev_h = false;
+ ctx->data.before_gd.prev_s = false;
+ ctx->data.before_gd.c = 0;
+ }
+ break;
+
+ case IN_GLYPH_DATA:
+ ok = parse_glyph_data(ctx, *pos, d);
+ if (!ok) {
+ return false;
+ }
+
+ break;
+ }
+
+ pos++;
+ }
+
+ for (i = 0; i < 4; i++) {
+ LOG(LOG_DEBUG, " %s: %i gylphs\n", labels[i],
+ ctx->count[i] - count[i]);
+ }
+
+ return true;
+}
+
+
+static bool load_font(const char *path, struct font_data **data)
+{
+ struct parse_context ctx;
+ struct font_data *d;
+ size_t file_len;
+ size_t done;
+ size_t len;
+ int count;
+ char *buf;
+ FILE *fp;
+ bool ok;
+ int i;
+
+ *data = NULL;
+
+ fp = fopen(path, "rb");
+ if (fp == NULL) {
+ LOG(LOG_ERROR, "Couldn't open font data file\n");
+ return false;
+ }
+
+ d = calloc(sizeof(struct font_data), 1);
+ if (d == NULL) {
+ LOG(LOG_ERROR, "Couldn't allocate memory for font data\n");
+ fclose(fp);
+ return false;
+ }
+
+ /* Find filesize */
+ fseek(fp, 0L, SEEK_END);
+ file_len = ftell(fp);
+ if ((long)file_len == -1) {
+ LOG(LOG_ERROR, "Could not size input file\n");
+ free(d);
+ fclose(fp);
+ return false;
+ }
+ fseek(fp, 0L, SEEK_SET);
+ LOG(LOG_DEBUG, "Input size: %zu bytes\n", file_len);
+
+ /* Allocate buffer for data chunks */
+ buf = malloc(CHUNK_SIZE);
+ if (buf == NULL) {
+ LOG(LOG_ERROR, "Couldn't allocate memory for input buffer\n");
+ free(d);
+ fclose(fp);
+ return false;
+ }
+
+ /* Initialise parser */
+ parse_init(&ctx);
+
+ LOG(LOG_DEBUG, "Using chunk size of %i bytes\n", CHUNK_SIZE);
+
+ /* Parse the input file in chunks */
+ for (done = 0; done < file_len; done += CHUNK_SIZE) {
+ LOG(LOG_INFO, "Parsing input chunk %zu\n", done / CHUNK_SIZE);
+
+ /* Read chunk */
+ len = fread(buf, 1, CHUNK_SIZE, fp);
+ if (file_len - done < CHUNK_SIZE &&
+ len != file_len - done) {
+ LOG(LOG_WARNING, "Last chunk has suspicious size\n");
+ } else if (file_len - done >= CHUNK_SIZE &&
+ len != CHUNK_SIZE) {
+ LOG(LOG_ERROR, "Problem reading file\n");
+ free(buf);
+ free(d);
+ fclose(fp);
+ return false;
+ }
+
+ /* Parse chunk */
+ ok = parse_chunk(&ctx, buf, len, d);
+ if (!ok) {
+ free(buf);
+ free(d);
+ fclose(fp);
+ return false;
+ }
+ LOG(LOG_DEBUG, "Parsed %zu bytes\n", done + len);
+ }
+
+ fclose(fp);
+
+ if (ctx.state != BEFORE_ID) {
+ LOG(LOG_ERROR, "Unexpected end of file\n");
+ free(buf);
+ free(d);
+ return false;
+ }
+
+ LOG(LOG_INFO, "Parsing complete:\n");
+ count = 0;
+ for (i = 0; i < 4; i++) {
+ LOG(LOG_INFO, " %s: %i gylphs\n", labels[i], ctx.count[i]);
+ count += ctx.count[i];
+ }
+
+ LOG(LOG_RESULT, " Total %i gylphs "
+ "(of which %i unique, %i codepoints, %i duplicates)\n",
+ count, d->glyphs, ctx.codepoints,
+ count - d->glyphs - ctx.codepoints);
+
+ free(buf);
+
+ *data = d;
+ return true;
+}
+
+static void log_usage(const char *argv0)
+{
+ level = LOG_INFO;
+ LOG(LOG_INFO,
+ "Usage:\n"
+ "\t%s [options] <in_file> <out_file>\n"
+ "\n"
+ "Options:\n"
+ "\t--help -h Display this text\n"
+ "\t--quiet -q Don't show warnings\n"
+ "\t--verbose -v Verbose output\n"
+ "\t--debug -d Full debug output\n",
+ argv0);
+}
+
+int main(int argc, char** argv)
+{
+ const char *in_path = NULL;
+ const char *out_path = NULL;
+ char *header_path = NULL;
+ struct font_data *data;
+ bool ok;
+ int i;
+ int opt;
+
+ level = LOG_RESULT;
+
+ /* Handle program arguments */
+ struct option long_options[] = {
+ { "help", no_argument, NULL, 'h' },
+ { "quiet", no_argument, NULL, 'q' },
+ { "verbose", no_argument, NULL, 'v' },
+ { "debug", no_argument, NULL, 'd' },
+ { "header", required_argument, NULL, 'H' },
+ };
+
+ while ((opt = getopt_long(argc, argv, "hqvdH:", long_options, NULL)) != -1) {
+ switch (opt) {
+ case 'q':
+ level = LOG_WARNING;
+ break;
+
+ case 'v':
+ level = LOG_INFO;
+ break;
+
+ case 'd':
+ level = LOG_DEBUG;
+ break;
+
+ case 'H':
+ header_path = strdup(optarg);
+ break;
+
+ case 'h':
+ log_usage(argv[0]);
+ free(header_path);
+ return EXIT_SUCCESS;
+
+ default:
+ log_usage(argv[0]);
+ free(header_path);
+ return EXIT_FAILURE;
+ }
+ }
+
+ if ((argc - optind) < 2) {
+ log_usage(argv[0]);
+ free(header_path);
+ return EXIT_FAILURE;
+ }
+
+ in_path = argv[optind];
+ out_path = argv[optind + 1];
+
+ LOG(LOG_DEBUG, "Using input path: \"%s\"\n", in_path);
+ LOG(LOG_DEBUG, "Using output path: \"%s\"\n", out_path);
+
+ ok = load_font(in_path, &data);
+ if (!ok) {
+ free_table();
+ free(header_path);
+ return EXIT_FAILURE;
+ }
+
+ ok = generate_font_source(out_path, data);
+ if (ok && (header_path != NULL)) {
+ ok = generate_font_header(header_path, data);
+ }
+ free(header_path);
+ free_table();
+ for (i = 0; i < 4; i++) {
+ free(data->sections[i]);
+ }
+ free(data);
+ if (!ok) {
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+}
diff --git a/tools/convert_image.c b/tools/convert_image.c
new file mode 100644
index 0000000..de772fc
--- /dev/null
+++ b/tools/convert_image.c
@@ -0,0 +1,304 @@
+/*
+ * Copyright 2009 Daniel Silverstone <dsilvers(a)netsurf-browser.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf 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; version 2 of the License.
+ *
+ * NetSurf 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 <stdbool.h>
+#include <errno.h>
+#include <stdio.h>
+#include <png.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if PNG_LIBPNG_VER < 10209
+#define png_set_expand_gray_1_2_4_to_8(png) png_set_gray_1_2_4_to_8(png)
+#endif
+
+static png_structp png;
+static png_infop info;
+static int interlace;
+static size_t rowbytes;
+static int raw_width, raw_height;
+static int rowstride;
+static unsigned char *bitmap_data;
+static bool is_cursor = true;
+static int raw_hot_x, raw_hot_y;
+
+#define WIDTH (is_cursor?raw_width-1:raw_width)
+#define HEIGHT (is_cursor?raw_height-1:raw_height)
+
+#define HOT_X (is_cursor?raw_hot_x-1:0)
+#define HOT_Y (is_cursor?raw_hot_y-1:0)
+
+#define REAL(v) (is_cursor?v+1:v)
+
+#define PPIX_AT(x,y) ((bitmap_data + (rowstride * y)) + (x * 4))
+
+#define R_OFF 2
+#define G_OFF 1
+#define B_OFF 0
+#define A_OFF 3
+
+#define R_AT(x,y) *(PPIX_AT(x,y) + R_OFF)
+#define G_AT(x,y) *(PPIX_AT(x,y) + G_OFF)
+#define B_AT(x,y) *(PPIX_AT(x,y) + B_OFF)
+#define A_AT(x,y) *(PPIX_AT(x,y) + A_OFF)
+
+
+static void
+usage(void)
+{
+ fprintf(stderr, "usage: fb_convert_image input.png output.inc varname\n");
+}
+
+
+static void
+detect_hotspot(void)
+{
+ int i;
+ int greenpixels = 0;
+
+ for (i = 0; i < raw_width; ++i) {
+ if (A_AT(i, 0) == 255) {
+ if (G_AT(i, 0) == 255) {
+ greenpixels++;
+ raw_hot_x = i;
+ }
+ if ((B_AT(i, 0) != 0) || (R_AT(i, 0) != 0)) {
+ is_cursor = false;
+ return;
+ }
+ } else if (A_AT(i, 0) != 0) {
+ is_cursor = false;
+ return;
+ }
+ }
+ if (greenpixels != 1) {
+ is_cursor = false;
+ return;
+ }
+
+ for (i = 0; i < raw_height; ++i) {
+ if (A_AT(0, i) == 255) {
+ if (G_AT(0, i) == 255) {
+ greenpixels++;
+ raw_hot_y = i;
+ }
+ if ((B_AT(0, i) != 0) || (R_AT(0, i) != 0)) {
+ is_cursor = false;
+ return;
+ }
+ } else if (A_AT(0, i) != 0) {
+ is_cursor = false;
+ return;
+ }
+ }
+ if (greenpixels != 2) {
+ is_cursor = false;
+ return;
+ }
+ printf(" Pointer detected. Adjusted hotspot at %d, %d (0-based)\n",
+ raw_hot_x - 1, raw_hot_y - 1);
+}
+
+
+static void
+info_callback(png_structp png, png_infop info)
+{
+ int bit_depth, color_type, interlace, intent;
+ double gamma;
+ png_uint_32 width, height;
+
+ /* Read the PNG details */
+ png_get_IHDR(png, info, &width, &height, &bit_depth,
+ &color_type, &interlace, 0, 0);
+
+ /* Set up our transformations */
+ if (color_type == PNG_COLOR_TYPE_PALETTE)
+ png_set_palette_to_rgb(png);
+ if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
+ png_set_expand_gray_1_2_4_to_8(png);
+ if (png_get_valid(png, info, PNG_INFO_tRNS))
+ png_set_tRNS_to_alpha(png);
+ if (bit_depth == 16)
+ png_set_strip_16(png);
+ if (color_type == PNG_COLOR_TYPE_GRAY ||
+ color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+ png_set_gray_to_rgb(png);
+ if (!(color_type & PNG_COLOR_MASK_ALPHA))
+ png_set_filler(png, 0xff, PNG_FILLER_AFTER);
+ /* gamma correction - we use 2.2 as our screen gamma
+ * this appears to be correct (at least in respect to !Browse)
+ * see http://www.w3.org/Graphics/PNG/all_seven.html for a test case
+ */
+ if (png_get_sRGB(png, info, &intent))
+ png_set_gamma(png, 2.2, 0.45455);
+ else {
+ if (png_get_gAMA(png, info, &gamma))
+ png_set_gamma(png, 2.2, gamma);
+ else
+ png_set_gamma(png, 2.2, 0.45455);
+ }
+
+
+ png_read_update_info(png, info);
+
+ rowbytes = png_get_rowbytes(png, info);
+ interlace = (interlace == PNG_INTERLACE_ADAM7);
+ raw_width = width;
+ raw_height = height;
+
+ rowstride = raw_width * 4;
+ bitmap_data = malloc(rowstride * raw_height);
+}
+
+static unsigned int interlace_start[8] = {0, 16, 0, 8, 0, 4, 0};
+static unsigned int interlace_step[8] = {28, 28, 12, 12, 4, 4, 0};
+static unsigned int interlace_row_start[8] = {0, 0, 4, 0, 2, 0, 1};
+static unsigned int interlace_row_step[8] = {8, 8, 8, 4, 4, 2, 2};
+
+static void
+row_callback(png_structp png, png_bytep new_row,
+ png_uint_32 row_num, int pass)
+{
+ unsigned long i, j;
+ unsigned int start, step;
+ unsigned char *row = bitmap_data + (rowstride * row_num);
+
+ if (new_row == 0)
+ return;
+
+ if (interlace) {
+ start = interlace_start[pass];
+ step = interlace_step[pass];
+ row_num = interlace_row_start[pass] +
+ interlace_row_step[pass] * row_num;
+
+ /* Copy the data to our current row taking interlacing
+ * into consideration */
+ row = bitmap_data + (rowstride * row_num);
+ for (j = 0, i = start; i < rowbytes; i += step) {
+ row[i++] = new_row[j++];
+ row[i++] = new_row[j++];
+ row[i++] = new_row[j++];
+ row[i++] = new_row[j++];
+ }
+ } else {
+ memcpy(row, new_row, rowbytes);
+ }
+}
+
+static void
+end_callback(png_structp png, png_infop info)
+{
+}
+
+
+int
+main(int argc, char **argv)
+{
+ FILE *f;
+ unsigned char buffer[1024];
+ int br;
+ int x, y, c;
+
+ if (argc != 4) {
+ usage();
+ return 1;
+ }
+
+ printf(" CONVERT: %s (%s)\n", argv[1], argv[3]);
+
+ png = png_create_read_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0);
+ info = png_create_info_struct(png);
+
+ png_set_progressive_read_fn(png, NULL, info_callback, row_callback, end_callback);
+
+ f = fopen(argv[1], "rb");
+ if (f == NULL) {
+ printf(" Unable to open %s\n", argv[1]);
+ return 1;
+ }
+
+ do {
+ br = fread(buffer, 1, 1024, f);
+ if (br > 0) {
+ png_process_data(png, info, buffer, br);
+ }
+ } while (br > 0);
+
+ if (br < 0) {
+ printf("Error reading input: %s\n", strerror(errno));
+ fclose(f);
+ return 1;
+ }
+
+ fclose(f);
+
+ detect_hotspot();
+
+ f = fopen(argv[2], "w");
+ if (f == NULL) {
+ printf(" Unable to open %s\n", argv[2]);
+ return 2;
+ }
+
+ fprintf(f, "/* This file is auto-generated from %s\n", argv[1]);
+ fprintf(f, " *\n * Do not edit this file directly.\n */\n\n");
+ fprintf(f, "#include <sys/types.h>\n\n");
+ fprintf(f, "#include <stdint.h>\n\n");
+ fprintf(f, "#include <stdbool.h>\n\n");
+ fprintf(f, "#include <libnsfb.h>\n\n");
+ fprintf(f, "#include \"netsurf/plot_style.h\"\n");
+ fprintf(f, "#include \"framebuffer/gui.h\"\n");
+ fprintf(f, "#include \"framebuffer/fbtk.h\"\n\n");
+
+ fprintf(f, "static uint8_t %s_pixdata[] = {\n", argv[3]);
+ for (y = 0; y < HEIGHT; ++y) {
+ unsigned char *rowptr = bitmap_data + (rowstride * y);
+ if (is_cursor) {
+ /* If it's a cursor, skip one row and one column */
+ rowptr += rowstride + 4;
+ }
+ fprintf(f, "\t");
+ for (x = 0; x < WIDTH; ++x) {
+ for (c = 0; c < 4; ++c) {
+ unsigned char b = *rowptr++;
+ fprintf(f, "0x%02x, ", b);
+ }
+ }
+ fprintf(f, "\n");
+ }
+ fprintf(f, "};\n\n");
+
+ fprintf(f, "struct fbtk_bitmap %s = {\n", argv[3]);
+ fprintf(f, "\t.width\t\t= %d,\n", WIDTH);
+ fprintf(f, "\t.height\t\t= %d,\n", HEIGHT);
+ fprintf(f, "\t.hot_x\t\t= %d,\n", HOT_X);
+ fprintf(f, "\t.hot_y\t\t= %d,\n", HOT_Y);
+ fprintf(f, "\t.pixdata\t= %s_pixdata,\n", argv[3]);
+
+ fprintf(f, "};\n\n");
+ fclose(f);
+
+ return 0;
+}
+
+/*
+ * Local Variables:
+ * c-basic-offset:8
+ * End:
+ */
diff --git a/tools/coverity-build.sh b/tools/coverity-build.sh
new file mode 100755
index 0000000..24dafd1
--- /dev/null
+++ b/tools/coverity-build.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+#
+# Copyright �� 2013 Vincent Sanders <vince(a)netsurf-browser.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# * The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+# CI system coverity build and submission script
+#
+# Usage: coverity-build.sh
+#
+
+# environment variables
+#
+# HOST The ABI to be compiled for
+# COVERITY_TOKEN
+# COVERITY_USER
+# COVERITY_PREFIX path to tools else default is used
+#
+# either PREFIX or JENKINS_HOME
+
+COVERITY_PROJECT="NetSurf+Browser"
+
+# build gtk2, framebuffer and monkey frontend by default
+TARGETS="gtk2 framebuffer monkey"
+
+# setup build environment
+export PREFIX=${PREFIX:-${JENKINS_HOME}/artifacts-${HOST}}
+export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig
+export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PREFIX}/lib
+export PATH=${PATH}:${PREFIX}/bin
+
+# Coverity tools location
+COVERITY_PREFIX=${COVERITY_PREFIX:-/opt/coverity/cov-analysis-linux64-7.5.0}
+COVERITY_VERSION=$(git rev-parse HEAD)
+
+export PATH=${PATH}:${COVERITY_PREFIX}/bin
+
+COVERITY_TAR=coverity-scan.tar
+
+# cleanup before we start
+rm -rf cov-int/ ${COVERITY_TAR} ${COVERITY_TAR}.gz
+
+for TARGET in ${TARGETS}; do
+ make clean TARGET=${TARGET}
+done
+
+# Do the builds using coverity data gathering tool
+for TARGET in ${TARGETS}; do
+ cov-build --dir cov-int make CCACHE= TARGET=${TARGET}
+done
+
+tar cf ${COVERITY_TAR} cov-int
+
+gzip -9 ${COVERITY_TAR}
+
+curl --form "project=${COVERITY_PROJECT}" --form "token=${COVERITY_TOKEN}" --form "email=${COVERITY_USER}" --form "file=(a)${COVERITY_TAR}.gz" --form "version=${COVERITY_VERSION}" --form "description=Git Head build" "https://scan.coverity.com/builds?project=${COVERITY_PROJECT}"
diff --git a/tools/fetch-transifex.pl b/tools/fetch-transifex.pl
new file mode 100644
index 0000000..4d40062
--- /dev/null
+++ b/tools/fetch-transifex.pl
@@ -0,0 +1,127 @@
+#!/usr/bin/perl
+#
+# Copyright �� 2013 Vincent Sanders <vince(a)netsurf-browser.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# * The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+=head1
+
+retrive resource from transifex service
+
+=cut
+
+use strict;
+use Getopt::Long ();
+use LWP::UserAgent;
+use JSON qw( decode_json );
+use Data::Dumper;
+use Fcntl qw( O_CREAT O_EXCL O_WRONLY O_APPEND O_RDONLY O_WRONLY );
+
+use constant GETOPT_OPTS => qw( auto_abbrev no_getopt_compat bundling );
+use constant GETOPT_SPEC =>
+ qw( output|o=s
+ lang|l=s
+ resource|res|r=s
+ project|prj|p=s
+ user|u=s
+ password|w=s
+ help|h|? );
+
+# ensure no locale translation is applied and leave it all in UTF-8
+use bytes;
+
+# default option values:
+my %opt = qw( resource messagesany project netsurf user netsurf );
+
+sub output_stream ();
+sub usage ();
+
+sub main ()
+{
+ my $output;
+ my $opt_ok;
+
+ # option parsing:
+ Getopt::Long::Configure( GETOPT_OPTS );
+ $opt_ok = Getopt::Long::GetOptions( \%opt, GETOPT_SPEC );
+
+ if( $opt_ok )
+ {
+ $output = output_stream();
+ }
+
+ # double check the options are sane (and we weren't asked for the help)
+ if( !$opt_ok || $opt{help} || $opt{lang} !~ /^[a-z]{2}$/ )
+ {
+ usage();
+ }
+
+ my $transifexurl = "https://www.transifex.com/api/2/project/" . $opt{project} . "/resource/" . $opt{resource} . "/translation/" . $opt{lang} . "/";
+
+ my $ua = LWP::UserAgent->new;
+ $ua->credentials(
+ 'www.transifex.com:443',
+ 'Transifex API',
+ $opt{user} => $opt{password}
+ );
+
+ my $response = $ua->get( $transifexurl );
+ if (!$response->is_success) {
+ die $response->status_line . " When fetching " . $transifexurl;
+ }
+
+ # Decode the entire JSON
+ my $decoded_json = decode_json( $response->decoded_content );
+
+ print ( $output $decoded_json->{'content'} );
+}
+
+main();
+
+sub usage ()
+{
+ print(STDERR <<TXT );
+usage:
+ $0 -l lang-code \
+ [-o output-file] [-r resource] [-p project] [-u user] [-w password]
+
+ lang-code : en fr ko ... (no default)
+ project : transifex project (default 'netsurf')
+ resource : transifex resource (default 'messagesany')
+ user : transifex resource (default 'netsurf')
+ password : transifex resource (no default)
+ output-file: defaults to standard output
+TXT
+ exit(1);
+}
+
+sub output_stream ()
+{
+ if( $opt{output} )
+ {
+ my $ofh;
+
+ sysopen( $ofh, $opt{output}, O_CREAT|O_EXCL|O_APPEND|O_WRONLY ) ||
+ die( "$0: Failed to open output file $opt{output}: $!\n" );
+
+ return $ofh;
+ }
+
+ return \*STDOUT;
+}
diff --git a/tools/git-date.sh b/tools/git-date.sh
new file mode 100755
index 0000000..d9a9059
--- /dev/null
+++ b/tools/git-date.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# Copyright �� 2016 Michael Drake <tlsa(a)netsurf-browser.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# * The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+# Sets the timestamp of files to the last time a commit touched them in
+# the given subtree.
+#
+# Usage: git-date.sh <PATH>
+#
+# Example: /utils/git-date.sh riscos/distribution
+
+set -e
+
+for FILE in $(git ls-files ${1})
+do
+ TIME=$(git log --pretty=format:%cd -n 1 --date=iso "$FILE")
+ touch -m -d "$TIME" "$FILE"
+done
diff --git a/tools/git-testament.pl b/tools/git-testament.pl
new file mode 100644
index 0000000..5a71a16
--- /dev/null
+++ b/tools/git-testament.pl
@@ -0,0 +1,227 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+=head1
+
+Generate a testament describing the current Git status. This gets written
+out in a C form which can be used to construct the NetSurf Git testament
+file for signon notification.
+
+If there is no Git in place, the data is invented arbitrarily.
+
+=cut
+
+$ENV{LC_ALL} = 'C';
+
+my $root = shift @ARGV;
+my $targetfile = shift @ARGV;
+
+my %gitinfo; # The Git information
+
+$root .= "/" unless ($root =~ m@/$@);
+
+my $git_present = 0;
+if ( -d ".git" ) {
+ $git_present = 1;
+}
+
+sub compat_tmpnam {
+ #��File::Temp was introduced in Perl 5.6.1
+ my $have_file_tmp = eval { require File::Temp };
+
+ if ( ! $have_file_tmp ) {
+ return "$$.gitt";
+ } else {
+ return File::Temp::tmpnam();
+ }
+}
+
+sub compat_md5_hex {
+ # Digest::MD5 was introduced in Perl 5.7.1
+ my $have_digest_md5 = eval { require Digest::MD5 };
+ my $have_md5 = eval { require MD5 };
+ my $data = shift;
+
+ if ( ! $have_digest_md5 ) {
+ return MD5->hexhash($data);
+ } else {
+ return Digest::MD5->new->add($data)->hexdigest;
+ }
+}
+
+sub gather_output {
+ my $cmd = shift;
+ my $tmpfile = compat_tmpnam();
+ local $/ = undef();
+ system("$cmd > $tmpfile");
+ open(my $CMDH, "<", $tmpfile);
+ my $ret = <$CMDH>;
+ close($CMDH);
+ unlink($tmpfile);
+ return $ret;
+}
+
+if ( $git_present ) {
+ my @bits = split /\s+/, `git config --get-regexp "^remote.*.url\$"`;
+ $gitinfo{url} = $bits[1];
+ chomp $gitinfo{url};
+ $gitinfo{revision} = `git rev-parse HEAD`;
+ chomp $gitinfo{revision};
+ $gitinfo{branch} = `git for-each-ref --format="\%(refname:short)" \$(git symbolic-ref HEAD 2>/dev/null || git show-ref -s HEAD)`;
+ chomp $gitinfo{branch};
+ @bits = split /\s+/, `git describe --tags --exact-match HEAD 2>/dev/null`;
+ $bits[0] = "" unless exists $bits[0];
+ $gitinfo{tag} = $bits[0];
+ $gitinfo{branch} = $gitinfo{tag} if ($gitinfo{tag} =~ m@.@);
+} else {
+ $gitinfo{url} = "http://nowhere/tarball/";
+ $gitinfo{revision} = "unknown";
+ $gitinfo{branch} = "tarball";
+ $gitinfo{tag} = "";
+}
+
+my %gitstatus; # The Git status output
+
+if ( $git_present ) {
+ foreach my $line (split(/\n/, gather_output("git status --porcelain"))) {
+ chomp $line;
+ my ($X, $Y, $fp) = ($line =~ /^(.)(.) (.+)$/);
+ my $fn = $fp;
+ $fn = ($fp =~ /(.+) ->/) if ($fp =~ / -> /);
+ next unless (care_about_file($fn));
+ # Normalise $X and $Y (WT and index) into a simple A/M/D etc
+
+ $gitstatus{$fn} = "$X$Y";
+ }
+}
+
+my %userinfo; # The information about the current user
+
+{
+ my @pwent = getpwuid($<);
+ $userinfo{USERNAME} = $pwent[0];
+ my $gecos = $pwent[6];
+ $gecos =~ s/,.+//g;
+ $gecos =~ s/"/'/g;
+ $gecos =~ s/\\/\\\\/g;
+ $userinfo{GECOS} = $gecos;
+}
+
+# The current date, in AmigaOS version friendly format (dd.mm.yyyy)
+
+my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
+my $compiledate = sprintf("%02d.%02d.%d",$mday,$mon+1,$year+1900);
+chomp $compiledate;
+
+# Spew the testament out
+
+my $testament = "";
+
+$testament .= "#define USERNAME \"$userinfo{USERNAME}\"\n";
+$testament .= "#define GECOS \"$userinfo{GECOS}\"\n";
+
+my $qroot = $root;
+$qroot =~ s/"/\\"/g;
+
+my $hostname = $ENV{HOSTNAME};
+
+unless ( defined($hostname) && $hostname ne "") {
+ # Try hostname command if env-var empty
+ $hostname = gather_output("hostname");
+ chomp $hostname;
+}
+
+$hostname = "unknown-host" unless (defined($hostname) && $hostname ne "");
+$hostname =~ s/"/\\"/g;
+
+$testament .= "#define WT_ROOT \"$qroot\"\n";
+$testament .= "#define WT_HOSTNAME \"$hostname\"\n";
+$testament .= "#define WT_COMPILEDATE \"$compiledate\"\n";
+
+my $cibuild = $ENV{CI_BUILD};
+if (defined ($cibuild) && ($cibuild ne '')) {
+ $testament .= "#define CI_BUILD \"$cibuild\"\n";
+}
+
+$testament .= "#define WT_BRANCHPATH \"$gitinfo{branch}\"\n";
+
+if ($gitinfo{branch} =~ m@^master$@) {
+ $testament .= "#define WT_BRANCHISMASTER 1\n";
+}
+if ($gitinfo{tag} =~ m@.@) {
+ $testament .= "#define WT_BRANCHISTAG 1\n";
+ $testament .= "#define WT_TAGIS \"$gitinfo{tag}\"\n";
+}
+if ($gitinfo{url} =~ m@/tarball/@) {
+ $testament .= "#define WT_NO_GIT 1\n";
+}
+$testament .= "#define WT_REVID \"$gitinfo{revision}\"\n";
+$testament .= "#define WT_MODIFIED " . scalar(keys %gitstatus) . "\n";
+$testament .= "#define WT_MODIFICATIONS {\\\n";
+my $doneone = 0;
+foreach my $filename (sort keys %gitstatus) {
+ if ($doneone) {
+ $testament .= ", \\\n";
+ }
+ $testament .= " { \"$filename\", \"$gitstatus{$filename}\" }";
+ $doneone = 1;
+}
+$testament .= " \\\n}\n";
+
+my $oldcsum = "";
+if ( -e $targetfile ) {
+ open(my $OLDVALUES, "<", $targetfile);
+ foreach my $line (readline($OLDVALUES)) {
+ if ($line =~ /MD5:([0-9a-f]+)/) {
+ $oldcsum = $1;
+ }
+ }
+ close($OLDVALUES);
+}
+
+my $newcsum = compat_md5_hex($testament);
+
+if ($oldcsum ne $newcsum) {
+ print "TESTMENT: $targetfile\n";
+ open(my $NEWVALUES, ">", $targetfile) or die "$!";
+ print $NEWVALUES "/* ", $targetfile,"\n";
+ print $NEWVALUES <<'EOS';
+ *
+ * Revision testament.
+ *
+ * *WARNING* this file is automatically generated by git-testament.pl
+ *
+ * Copyright 2012 NetSurf Browser Project
+ */
+
+EOS
+
+ print $NEWVALUES "#ifndef NETSURF_REVISION_TESTAMENT\n";
+ print $NEWVALUES "#define NETSURF_REVISION_TESTAMENT \"$newcsum\"\n\n";
+ print $NEWVALUES "/* Revision testament checksum:\n";
+ print $NEWVALUES " * MD5:", $newcsum,"\n */\n\n";
+ print $NEWVALUES "/* Revision testament: */\n";
+ print $NEWVALUES $testament;
+ print $NEWVALUES "\n#endif\n";
+ close($NEWVALUES);
+ foreach my $unwanted (@ARGV) {
+ next unless(-e $unwanted);
+ print "TESTAMENT: Removing $unwanted\n";
+ system("rm", "-f", "--", $unwanted);
+ }
+} else {
+ print "TESTMENT: unchanged\n";
+}
+
+exit 0;
+
+sub care_about_file {
+ my ($fn) = @_;
+ return 0 if ($fn =~ /\.d$/); # Don't care for extraneous DEP files
+ return 0 if ($fn =~ /\.a$/); # Don't care for extraneous archive files
+ return 0 if ($fn =~ /\.md5$/); # Don't care for md5sum files
+ return 0 if ($fn =~ /\.map$/); # Don't care for map files
+ return 0 if ($fn =~ /\.gitt$/); # Don't care for testament temp files
+ return 1;
+}
diff --git a/tools/idna-derived-props-gen.pl b/tools/idna-derived-props-gen.pl
new file mode 100644
index 0000000..a9e9b4b
--- /dev/null
+++ b/tools/idna-derived-props-gen.pl
@@ -0,0 +1,182 @@
+#!/usr/bin/perl
+#
+# Copyright 2014 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
+#
+# This file is part of NetSurf, http://www.netsurf-browser.org/
+#
+# NetSurf 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; version 2 of the License.
+#
+# NetSurf 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/>.
+
+use strict;
+
+use Getopt::Long ();
+use Fcntl qw( O_CREAT O_EXCL O_WRONLY O_APPEND O_RDONLY O_WRONLY );
+
+use constant GETOPT_OPTS => qw( auto_abbrev no_getopt_compat bundling );
+use constant GETOPT_SPEC =>
+ qw( output|o=s
+ properties|p=s
+ joining|j=s
+ help|h|? );
+
+# default option values:
+my %opt = qw(properties "idna-tables-properties.csv" joining "DerivedJoiningType.txt");
+
+sub usage
+{
+ my @fmt = map { s/::$//; $_ } keys(%{$::{'msgfmt::'}});
+ print(STDERR <<TXT );
+usage:
+ $0 [-o output-file] -p properties-file -j joining-file
+
+ output-file : defaults to standard output
+TXT
+ exit(1);
+}
+
+sub output_stream
+{
+ if( $opt{output} )
+ {
+ my $ofh;
+
+ sysopen( $ofh, $opt{output}, O_CREAT|O_EXCL|O_APPEND|O_WRONLY ) ||
+ die( "$0: Failed to open output file $opt{output}: $!\n" );
+
+ return $ofh;
+ }
+
+ return \*STDOUT;
+}
+
+sub input_stream
+{
+ my $stream = $_[0];
+
+ if( $opt{$stream} )
+ {
+ my $ifh;
+
+ sysopen( $ifh, $opt{$stream}, O_RDONLY ) ||
+ die( "$0: Failed to open input file $stream: $!\n" );
+
+ return $ifh;
+ }
+ die( "$0: No input file for $stream");
+}
+
+sub main
+{
+ my $output;
+ my $properties;
+ my $joining;
+ my $opt_ok;
+
+ # option parsing:
+ Getopt::Long::Configure( GETOPT_OPTS );
+ $opt_ok = Getopt::Long::GetOptions( \%opt, GETOPT_SPEC );
+
+ # double check the options are sane (and we weren't asked for the help)
+ if( !$opt_ok || $opt{help} )
+ {
+ usage();
+ }
+
+ # open the appropriate files
+ $properties = input_stream("properties");
+ $joining = input_stream("joining");
+ $output = output_stream();
+
+
+ print { $output } <<HEADER;
+/* This file is generated by idna-derived-props-gen.pl
+ * DO NOT EDIT BY HAND
+ */
+#ifndef _NETSURF_UTILS_IDNA_PROPS_H_
+#define _NETSURF_UTILS_IDNA_PROPS_H_
+
+typedef enum idna_property {
+ IDNA_P_PVALID = 1,
+ IDNA_P_CONTEXTJ = 2,
+ IDNA_P_CONTEXTO = 3,
+ IDNA_P_DISALLOWED = 4,
+ IDNA_P_UNASSIGNED = 5
+} idna_property;
+
+typedef enum idna_unicode_jt {
+ IDNA_UNICODE_JT_U = 0,
+ IDNA_UNICODE_JT_C = 1,
+ IDNA_UNICODE_JT_D = 2,
+ IDNA_UNICODE_JT_R = 3,
+ IDNA_UNICODE_JT_T = 4,
+ IDNA_UNICODE_JT_L = 5
+} idna_unicode_jt;
+
+
+typedef struct idna_table {
+ int32_t start;
+ int32_t end;
+ union p {
+ idna_property property;
+ idna_unicode_jt jt;
+ } p;
+} idna_table;
+
+idna_table idna_derived[] = {
+HEADER
+
+
+ my $line = <$properties>; # discard header line
+
+ while($line = <$properties>) {
+ my @items = split(/\,/, $line);
+ my @codepoints = split(/-/, $items[0]);
+ if($#codepoints == 0) {
+ $codepoints[1] = $codepoints[0];
+ }
+ print { $output } "\t{ 0x" . $codepoints[0] . ", 0x" . $codepoints[1] . ", .p.property = IDNA_P_" . $items[1] . " },\n";
+ }
+
+ close($properties);
+
+ print { $output } <<HEADER;
+ { 0, 0, .p.property = 0}
+};
+
+idna_table idna_joiningtype[] = {
+HEADER
+
+
+ while($line = <$joining>) {
+ chop($line);
+ if(substr($line, 0, 1) eq '#') {next;}
+ if(length($line) == 0) {next;}
+ my @items = split(/;/, $line);
+ my @codepoints = split(/\./, $items[0]);
+ if($#codepoints == 0) {
+ $codepoints[2] = $codepoints[0];
+ }
+ print { $output } "\t{ 0x" . $codepoints[0] . ", 0x" . $codepoints[2] . ", .p.jt = IDNA_UNICODE_JT_" . substr($items[1], 1, 1) . " },\n";
+ }
+
+ close($joining);
+
+ print { $output } <<HEADER;
+ { 0, 0, .p.jt = 0}
+};
+#endif
+HEADER
+
+
+}
+
+main();
diff --git a/tools/idna-tables-properties.csv b/tools/idna-tables-properties.csv
new file mode 100644
index 0000000..a74547b
--- /dev/null
+++ b/tools/idna-tables-properties.csv
@@ -0,0 +1,2322 @@
+Codepoint,Property,Description
+0000-002C,DISALLOWED,NULL..COMMA
+002D,PVALID,HYPHEN-MINUS
+002E-002F,DISALLOWED,FULL STOP..SOLIDUS
+0030-0039,PVALID,DIGIT ZERO..DIGIT NINE
+003A-0060,DISALLOWED,COLON..GRAVE ACCENT
+0061-007A,PVALID,LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+007B-00B6,DISALLOWED,LEFT CURLY BRACKET..PILCROW SIGN
+00B7,CONTEXTO,MIDDLE DOT
+00B8-00DE,DISALLOWED,CEDILLA..LATIN CAPITAL LETTER THORN
+00DF-00F6,PVALID,LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS
+00F7,DISALLOWED,DIVISION SIGN
+00F8-00FF,PVALID,LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
+0100,DISALLOWED,LATIN CAPITAL LETTER A WITH MACRON
+0101,PVALID,LATIN SMALL LETTER A WITH MACRON
+0102,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE
+0103,PVALID,LATIN SMALL LETTER A WITH BREVE
+0104,DISALLOWED,LATIN CAPITAL LETTER A WITH OGONEK
+0105,PVALID,LATIN SMALL LETTER A WITH OGONEK
+0106,DISALLOWED,LATIN CAPITAL LETTER C WITH ACUTE
+0107,PVALID,LATIN SMALL LETTER C WITH ACUTE
+0108,DISALLOWED,LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0109,PVALID,LATIN SMALL LETTER C WITH CIRCUMFLEX
+010A,DISALLOWED,LATIN CAPITAL LETTER C WITH DOT ABOVE
+010B,PVALID,LATIN SMALL LETTER C WITH DOT ABOVE
+010C,DISALLOWED,LATIN CAPITAL LETTER C WITH CARON
+010D,PVALID,LATIN SMALL LETTER C WITH CARON
+010E,DISALLOWED,LATIN CAPITAL LETTER D WITH CARON
+010F,PVALID,LATIN SMALL LETTER D WITH CARON
+0110,DISALLOWED,LATIN CAPITAL LETTER D WITH STROKE
+0111,PVALID,LATIN SMALL LETTER D WITH STROKE
+0112,DISALLOWED,LATIN CAPITAL LETTER E WITH MACRON
+0113,PVALID,LATIN SMALL LETTER E WITH MACRON
+0114,DISALLOWED,LATIN CAPITAL LETTER E WITH BREVE
+0115,PVALID,LATIN SMALL LETTER E WITH BREVE
+0116,DISALLOWED,LATIN CAPITAL LETTER E WITH DOT ABOVE
+0117,PVALID,LATIN SMALL LETTER E WITH DOT ABOVE
+0118,DISALLOWED,LATIN CAPITAL LETTER E WITH OGONEK
+0119,PVALID,LATIN SMALL LETTER E WITH OGONEK
+011A,DISALLOWED,LATIN CAPITAL LETTER E WITH CARON
+011B,PVALID,LATIN SMALL LETTER E WITH CARON
+011C,DISALLOWED,LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+011D,PVALID,LATIN SMALL LETTER G WITH CIRCUMFLEX
+011E,DISALLOWED,LATIN CAPITAL LETTER G WITH BREVE
+011F,PVALID,LATIN SMALL LETTER G WITH BREVE
+0120,DISALLOWED,LATIN CAPITAL LETTER G WITH DOT ABOVE
+0121,PVALID,LATIN SMALL LETTER G WITH DOT ABOVE
+0122,DISALLOWED,LATIN CAPITAL LETTER G WITH CEDILLA
+0123,PVALID,LATIN SMALL LETTER G WITH CEDILLA
+0124,DISALLOWED,LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0125,PVALID,LATIN SMALL LETTER H WITH CIRCUMFLEX
+0126,DISALLOWED,LATIN CAPITAL LETTER H WITH STROKE
+0127,PVALID,LATIN SMALL LETTER H WITH STROKE
+0128,DISALLOWED,LATIN CAPITAL LETTER I WITH TILDE
+0129,PVALID,LATIN SMALL LETTER I WITH TILDE
+012A,DISALLOWED,LATIN CAPITAL LETTER I WITH MACRON
+012B,PVALID,LATIN SMALL LETTER I WITH MACRON
+012C,DISALLOWED,LATIN CAPITAL LETTER I WITH BREVE
+012D,PVALID,LATIN SMALL LETTER I WITH BREVE
+012E,DISALLOWED,LATIN CAPITAL LETTER I WITH OGONEK
+012F,PVALID,LATIN SMALL LETTER I WITH OGONEK
+0130,DISALLOWED,LATIN CAPITAL LETTER I WITH DOT ABOVE
+0131,PVALID,LATIN SMALL LETTER DOTLESS I
+0132-0134,DISALLOWED,LATIN CAPITAL LIGATURE IJ..LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0135,PVALID,LATIN SMALL LETTER J WITH CIRCUMFLEX
+0136,DISALLOWED,LATIN CAPITAL LETTER K WITH CEDILLA
+0137-0138,PVALID,LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA
+0139,DISALLOWED,LATIN CAPITAL LETTER L WITH ACUTE
+013A,PVALID,LATIN SMALL LETTER L WITH ACUTE
+013B,DISALLOWED,LATIN CAPITAL LETTER L WITH CEDILLA
+013C,PVALID,LATIN SMALL LETTER L WITH CEDILLA
+013D,DISALLOWED,LATIN CAPITAL LETTER L WITH CARON
+013E,PVALID,LATIN SMALL LETTER L WITH CARON
+013F-0141,DISALLOWED,LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN CAPITAL LETTER L WITH STROKE
+0142,PVALID,LATIN SMALL LETTER L WITH STROKE
+0143,DISALLOWED,LATIN CAPITAL LETTER N WITH ACUTE
+0144,PVALID,LATIN SMALL LETTER N WITH ACUTE
+0145,DISALLOWED,LATIN CAPITAL LETTER N WITH CEDILLA
+0146,PVALID,LATIN SMALL LETTER N WITH CEDILLA
+0147,DISALLOWED,LATIN CAPITAL LETTER N WITH CARON
+0148,PVALID,LATIN SMALL LETTER N WITH CARON
+0149-014A,DISALLOWED,LATIN SMALL LETTER N PRECEDED BY APOSTROPHE..LATIN CAPITAL LETTER ENG
+014B,PVALID,LATIN SMALL LETTER ENG
+014C,DISALLOWED,LATIN CAPITAL LETTER O WITH MACRON
+014D,PVALID,LATIN SMALL LETTER O WITH MACRON
+014E,DISALLOWED,LATIN CAPITAL LETTER O WITH BREVE
+014F,PVALID,LATIN SMALL LETTER O WITH BREVE
+0150,DISALLOWED,LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0151,PVALID,LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0152,DISALLOWED,LATIN CAPITAL LIGATURE OE
+0153,PVALID,LATIN SMALL LIGATURE OE
+0154,DISALLOWED,LATIN CAPITAL LETTER R WITH ACUTE
+0155,PVALID,LATIN SMALL LETTER R WITH ACUTE
+0156,DISALLOWED,LATIN CAPITAL LETTER R WITH CEDILLA
+0157,PVALID,LATIN SMALL LETTER R WITH CEDILLA
+0158,DISALLOWED,LATIN CAPITAL LETTER R WITH CARON
+0159,PVALID,LATIN SMALL LETTER R WITH CARON
+015A,DISALLOWED,LATIN CAPITAL LETTER S WITH ACUTE
+015B,PVALID,LATIN SMALL LETTER S WITH ACUTE
+015C,DISALLOWED,LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+015D,PVALID,LATIN SMALL LETTER S WITH CIRCUMFLEX
+015E,DISALLOWED,LATIN CAPITAL LETTER S WITH CEDILLA
+015F,PVALID,LATIN SMALL LETTER S WITH CEDILLA
+0160,DISALLOWED,LATIN CAPITAL LETTER S WITH CARON
+0161,PVALID,LATIN SMALL LETTER S WITH CARON
+0162,DISALLOWED,LATIN CAPITAL LETTER T WITH CEDILLA
+0163,PVALID,LATIN SMALL LETTER T WITH CEDILLA
+0164,DISALLOWED,LATIN CAPITAL LETTER T WITH CARON
+0165,PVALID,LATIN SMALL LETTER T WITH CARON
+0166,DISALLOWED,LATIN CAPITAL LETTER T WITH STROKE
+0167,PVALID,LATIN SMALL LETTER T WITH STROKE
+0168,DISALLOWED,LATIN CAPITAL LETTER U WITH TILDE
+0169,PVALID,LATIN SMALL LETTER U WITH TILDE
+016A,DISALLOWED,LATIN CAPITAL LETTER U WITH MACRON
+016B,PVALID,LATIN SMALL LETTER U WITH MACRON
+016C,DISALLOWED,LATIN CAPITAL LETTER U WITH BREVE
+016D,PVALID,LATIN SMALL LETTER U WITH BREVE
+016E,DISALLOWED,LATIN CAPITAL LETTER U WITH RING ABOVE
+016F,PVALID,LATIN SMALL LETTER U WITH RING ABOVE
+0170,DISALLOWED,LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0171,PVALID,LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0172,DISALLOWED,LATIN CAPITAL LETTER U WITH OGONEK
+0173,PVALID,LATIN SMALL LETTER U WITH OGONEK
+0174,DISALLOWED,LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0175,PVALID,LATIN SMALL LETTER W WITH CIRCUMFLEX
+0176,DISALLOWED,LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0177,PVALID,LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0178-0179,DISALLOWED,LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE
+017A,PVALID,LATIN SMALL LETTER Z WITH ACUTE
+017B,DISALLOWED,LATIN CAPITAL LETTER Z WITH DOT ABOVE
+017C,PVALID,LATIN SMALL LETTER Z WITH DOT ABOVE
+017D,DISALLOWED,LATIN CAPITAL LETTER Z WITH CARON
+017E,PVALID,LATIN SMALL LETTER Z WITH CARON
+017F,DISALLOWED,LATIN SMALL LETTER LONG S
+0180,PVALID,LATIN SMALL LETTER B WITH STROKE
+0181-0182,DISALLOWED,LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR
+0183,PVALID,LATIN SMALL LETTER B WITH TOPBAR
+0184,DISALLOWED,LATIN CAPITAL LETTER TONE SIX
+0185,PVALID,LATIN SMALL LETTER TONE SIX
+0186-0187,DISALLOWED,LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK
+0188,PVALID,LATIN SMALL LETTER C WITH HOOK
+0189-018B,DISALLOWED,LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR
+018C-018D,PVALID,LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA
+018E-0191,DISALLOWED,LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK
+0192,PVALID,LATIN SMALL LETTER F WITH HOOK
+0193-0194,DISALLOWED,LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA
+0195,PVALID,LATIN SMALL LETTER HV
+0196-0198,DISALLOWED,LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK
+0199-019B,PVALID,LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
+019C-019D,DISALLOWED,LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK
+019E,PVALID,LATIN SMALL LETTER N WITH LONG RIGHT LEG
+019F-01A0,DISALLOWED,LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN
+01A1,PVALID,LATIN SMALL LETTER O WITH HORN
+01A2,DISALLOWED,LATIN CAPITAL LETTER OI
+01A3,PVALID,LATIN SMALL LETTER OI
+01A4,DISALLOWED,LATIN CAPITAL LETTER P WITH HOOK
+01A5,PVALID,LATIN SMALL LETTER P WITH HOOK
+01A6-01A7,DISALLOWED,LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO
+01A8,PVALID,LATIN SMALL LETTER TONE TWO
+01A9,DISALLOWED,LATIN CAPITAL LETTER ESH
+01AA-01AB,PVALID,LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK
+01AC,DISALLOWED,LATIN CAPITAL LETTER T WITH HOOK
+01AD,PVALID,LATIN SMALL LETTER T WITH HOOK
+01AE-01AF,DISALLOWED,LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN
+01B0,PVALID,LATIN SMALL LETTER U WITH HORN
+01B1-01B3,DISALLOWED,LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK
+01B4,PVALID,LATIN SMALL LETTER Y WITH HOOK
+01B5,DISALLOWED,LATIN CAPITAL LETTER Z WITH STROKE
+01B6,PVALID,LATIN SMALL LETTER Z WITH STROKE
+01B7-01B8,DISALLOWED,LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED
+01B9-01BB,PVALID,LATIN SMALL LETTER EZH REVERSED..LATIN LETTER TWO WITH STROKE
+01BC,DISALLOWED,LATIN CAPITAL LETTER TONE FIVE
+01BD-01C3,PVALID,LATIN SMALL LETTER TONE FIVE..LATIN LETTER RETROFLEX CLICK
+01C4-01CD,DISALLOWED,LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON
+01CE,PVALID,LATIN SMALL LETTER A WITH CARON
+01CF,DISALLOWED,LATIN CAPITAL LETTER I WITH CARON
+01D0,PVALID,LATIN SMALL LETTER I WITH CARON
+01D1,DISALLOWED,LATIN CAPITAL LETTER O WITH CARON
+01D2,PVALID,LATIN SMALL LETTER O WITH CARON
+01D3,DISALLOWED,LATIN CAPITAL LETTER U WITH CARON
+01D4,PVALID,LATIN SMALL LETTER U WITH CARON
+01D5,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D6,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D7,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D8,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D9,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DA,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DB,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DC-01DD,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E
+01DE,DISALLOWED,LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+01DF,PVALID,LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01E0,DISALLOWED,LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+01E1,PVALID,LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E2,DISALLOWED,LATIN CAPITAL LETTER AE WITH MACRON
+01E3,PVALID,LATIN SMALL LETTER AE WITH MACRON
+01E4,DISALLOWED,LATIN CAPITAL LETTER G WITH STROKE
+01E5,PVALID,LATIN SMALL LETTER G WITH STROKE
+01E6,DISALLOWED,LATIN CAPITAL LETTER G WITH CARON
+01E7,PVALID,LATIN SMALL LETTER G WITH CARON
+01E8,DISALLOWED,LATIN CAPITAL LETTER K WITH CARON
+01E9,PVALID,LATIN SMALL LETTER K WITH CARON
+01EA,DISALLOWED,LATIN CAPITAL LETTER O WITH OGONEK
+01EB,PVALID,LATIN SMALL LETTER O WITH OGONEK
+01EC,DISALLOWED,LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+01ED,PVALID,LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EE,DISALLOWED,LATIN CAPITAL LETTER EZH WITH CARON
+01EF-01F0,PVALID,LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON
+01F1-01F4,DISALLOWED,LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTER G WITH ACUTE
+01F5,PVALID,LATIN SMALL LETTER G WITH ACUTE
+01F6-01F8,DISALLOWED,LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE
+01F9,PVALID,LATIN SMALL LETTER N WITH GRAVE
+01FA,DISALLOWED,LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+01FB,PVALID,LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FC,DISALLOWED,LATIN CAPITAL LETTER AE WITH ACUTE
+01FD,PVALID,LATIN SMALL LETTER AE WITH ACUTE
+01FE,DISALLOWED,LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+01FF,PVALID,LATIN SMALL LETTER O WITH STROKE AND ACUTE
+0200,DISALLOWED,LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0201,PVALID,LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0202,DISALLOWED,LATIN CAPITAL LETTER A WITH INVERTED BREVE
+0203,PVALID,LATIN SMALL LETTER A WITH INVERTED BREVE
+0204,DISALLOWED,LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0205,PVALID,LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0206,DISALLOWED,LATIN CAPITAL LETTER E WITH INVERTED BREVE
+0207,PVALID,LATIN SMALL LETTER E WITH INVERTED BREVE
+0208,DISALLOWED,LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+0209,PVALID,LATIN SMALL LETTER I WITH DOUBLE GRAVE
+020A,DISALLOWED,LATIN CAPITAL LETTER I WITH INVERTED BREVE
+020B,PVALID,LATIN SMALL LETTER I WITH INVERTED BREVE
+020C,DISALLOWED,LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020D,PVALID,LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020E,DISALLOWED,LATIN CAPITAL LETTER O WITH INVERTED BREVE
+020F,PVALID,LATIN SMALL LETTER O WITH INVERTED BREVE
+0210,DISALLOWED,LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0211,PVALID,LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0212,DISALLOWED,LATIN CAPITAL LETTER R WITH INVERTED BREVE
+0213,PVALID,LATIN SMALL LETTER R WITH INVERTED BREVE
+0214,DISALLOWED,LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0215,PVALID,LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0216,DISALLOWED,LATIN CAPITAL LETTER U WITH INVERTED BREVE
+0217,PVALID,LATIN SMALL LETTER U WITH INVERTED BREVE
+0218,DISALLOWED,LATIN CAPITAL LETTER S WITH COMMA BELOW
+0219,PVALID,LATIN SMALL LETTER S WITH COMMA BELOW
+021A,DISALLOWED,LATIN CAPITAL LETTER T WITH COMMA BELOW
+021B,PVALID,LATIN SMALL LETTER T WITH COMMA BELOW
+021C,DISALLOWED,LATIN CAPITAL LETTER YOGH
+021D,PVALID,LATIN SMALL LETTER YOGH
+021E,DISALLOWED,LATIN CAPITAL LETTER H WITH CARON
+021F,PVALID,LATIN SMALL LETTER H WITH CARON
+0220,DISALLOWED,LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+0221,PVALID,LATIN SMALL LETTER D WITH CURL
+0222,DISALLOWED,LATIN CAPITAL LETTER OU
+0223,PVALID,LATIN SMALL LETTER OU
+0224,DISALLOWED,LATIN CAPITAL LETTER Z WITH HOOK
+0225,PVALID,LATIN SMALL LETTER Z WITH HOOK
+0226,DISALLOWED,LATIN CAPITAL LETTER A WITH DOT ABOVE
+0227,PVALID,LATIN SMALL LETTER A WITH DOT ABOVE
+0228,DISALLOWED,LATIN CAPITAL LETTER E WITH CEDILLA
+0229,PVALID,LATIN SMALL LETTER E WITH CEDILLA
+022A,DISALLOWED,LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+022B,PVALID,LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022C,DISALLOWED,LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022D,PVALID,LATIN SMALL LETTER O WITH TILDE AND MACRON
+022E,DISALLOWED,LATIN CAPITAL LETTER O WITH DOT ABOVE
+022F,PVALID,LATIN SMALL LETTER O WITH DOT ABOVE
+0230,DISALLOWED,LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+0231,PVALID,LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0232,DISALLOWED,LATIN CAPITAL LETTER Y WITH MACRON
+0233-0239,PVALID,LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH
+023A-023B,DISALLOWED,LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE
+023C,PVALID,LATIN SMALL LETTER C WITH STROKE
+023D-023E,DISALLOWED,LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+023F-0240,PVALID,LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL
+0241,DISALLOWED,LATIN CAPITAL LETTER GLOTTAL STOP
+0242,PVALID,LATIN SMALL LETTER GLOTTAL STOP
+0243-0246,DISALLOWED,LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE
+0247,PVALID,LATIN SMALL LETTER E WITH STROKE
+0248,DISALLOWED,LATIN CAPITAL LETTER J WITH STROKE
+0249,PVALID,LATIN SMALL LETTER J WITH STROKE
+024A,DISALLOWED,LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+024B,PVALID,LATIN SMALL LETTER Q WITH HOOK TAIL
+024C,DISALLOWED,LATIN CAPITAL LETTER R WITH STROKE
+024D,PVALID,LATIN SMALL LETTER R WITH STROKE
+024E,DISALLOWED,LATIN CAPITAL LETTER Y WITH STROKE
+024F-02AF,PVALID,LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0-02B8,DISALLOWED,MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
+02B9-02C1,PVALID,MODIFIER LETTER PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2-02C5,DISALLOWED,MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6-02D1,PVALID,MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
+02D2-02EB,DISALLOWED,MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC,PVALID,MODIFIER LETTER VOICING
+02ED,DISALLOWED,MODIFIER LETTER UNASPIRATED
+02EE,PVALID,MODIFIER LETTER DOUBLE APOSTROPHE
+02EF-02FF,DISALLOWED,MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0300-033F,PVALID,COMBINING GRAVE ACCENT..COMBINING DOUBLE OVERLINE
+0340-0341,DISALLOWED,COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
+0342,PVALID,COMBINING GREEK PERISPOMENI
+0343-0345,DISALLOWED,COMBINING GREEK KORONIS..COMBINING GREEK YPOGEGRAMMENI
+0346-034E,PVALID,COMBINING BRIDGE ABOVE..COMBINING UPWARDS ARROW BELOW
+034F,DISALLOWED,COMBINING GRAPHEME JOINER
+0350-036F,PVALID,COMBINING RIGHT ARROWHEAD ABOVE..COMBINING LATIN SMALL LETTER X
+0370,DISALLOWED,GREEK CAPITAL LETTER HETA
+0371,PVALID,GREEK SMALL LETTER HETA
+0372,DISALLOWED,GREEK CAPITAL LETTER ARCHAIC SAMPI
+0373,PVALID,GREEK SMALL LETTER ARCHAIC SAMPI
+0374,DISALLOWED,GREEK NUMERAL SIGN
+0375,CONTEXTO,GREEK LOWER NUMERAL SIGN
+0376,DISALLOWED,GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+0377,PVALID,GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+0378-0379,UNASSIGNED,<RESERVED>..<RESERVED>
+037A,DISALLOWED,GREEK YPOGEGRAMMENI
+037B-037D,PVALID,GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E,DISALLOWED,GREEK QUESTION MARK
+037F-0383,UNASSIGNED,<RESERVED>..<RESERVED>
+0384-038A,DISALLOWED,GREEK TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038B,UNASSIGNED,<RESERVED>
+038C,DISALLOWED,GREEK CAPITAL LETTER OMICRON WITH TONOS
+038D,UNASSIGNED,<RESERVED>
+038E-038F,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS
+0390,PVALID,GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+0391-03A1,DISALLOWED,GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
+03A2,UNASSIGNED,<RESERVED>
+03A3-03AB,DISALLOWED,GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03AC-03CE,PVALID,GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS
+03CF-03D6,DISALLOWED,GREEK CAPITAL KAI SYMBOL..GREEK PI SYMBOL
+03D7,PVALID,GREEK KAI SYMBOL
+03D8,DISALLOWED,GREEK LETTER ARCHAIC KOPPA
+03D9,PVALID,GREEK SMALL LETTER ARCHAIC KOPPA
+03DA,DISALLOWED,GREEK LETTER STIGMA
+03DB,PVALID,GREEK SMALL LETTER STIGMA
+03DC,DISALLOWED,GREEK LETTER DIGAMMA
+03DD,PVALID,GREEK SMALL LETTER DIGAMMA
+03DE,DISALLOWED,GREEK LETTER KOPPA
+03DF,PVALID,GREEK SMALL LETTER KOPPA
+03E0,DISALLOWED,GREEK LETTER SAMPI
+03E1,PVALID,GREEK SMALL LETTER SAMPI
+03E2,DISALLOWED,COPTIC CAPITAL LETTER SHEI
+03E3,PVALID,COPTIC SMALL LETTER SHEI
+03E4,DISALLOWED,COPTIC CAPITAL LETTER FEI
+03E5,PVALID,COPTIC SMALL LETTER FEI
+03E6,DISALLOWED,COPTIC CAPITAL LETTER KHEI
+03E7,PVALID,COPTIC SMALL LETTER KHEI
+03E8,DISALLOWED,COPTIC CAPITAL LETTER HORI
+03E9,PVALID,COPTIC SMALL LETTER HORI
+03EA,DISALLOWED,COPTIC CAPITAL LETTER GANGIA
+03EB,PVALID,COPTIC SMALL LETTER GANGIA
+03EC,DISALLOWED,COPTIC CAPITAL LETTER SHIMA
+03ED,PVALID,COPTIC SMALL LETTER SHIMA
+03EE,DISALLOWED,COPTIC CAPITAL LETTER DEI
+03EF,PVALID,COPTIC SMALL LETTER DEI
+03F0-03F2,DISALLOWED,GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBOL
+03F3,PVALID,GREEK LETTER YOT
+03F4-03F7,DISALLOWED,GREEK CAPITAL THETA SYMBOL..GREEK CAPITAL LETTER SHO
+03F8,PVALID,GREEK SMALL LETTER SHO
+03F9-03FA,DISALLOWED,GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN
+03FB-03FC,PVALID,GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL
+03FD-042F,DISALLOWED,GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA
+0430-045F,PVALID,CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE
+0460,DISALLOWED,CYRILLIC CAPITAL LETTER OMEGA
+0461,PVALID,CYRILLIC SMALL LETTER OMEGA
+0462,DISALLOWED,CYRILLIC CAPITAL LETTER YAT
+0463,PVALID,CYRILLIC SMALL LETTER YAT
+0464,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED E
+0465,PVALID,CYRILLIC SMALL LETTER IOTIFIED E
+0466,DISALLOWED,CYRILLIC CAPITAL LETTER LITTLE YUS
+0467,PVALID,CYRILLIC SMALL LETTER LITTLE YUS
+0468,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+0469,PVALID,CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+046A,DISALLOWED,CYRILLIC CAPITAL LETTER BIG YUS
+046B,PVALID,CYRILLIC SMALL LETTER BIG YUS
+046C,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046D,PVALID,CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+046E,DISALLOWED,CYRILLIC CAPITAL LETTER KSI
+046F,PVALID,CYRILLIC SMALL LETTER KSI
+0470,DISALLOWED,CYRILLIC CAPITAL LETTER PSI
+0471,PVALID,CYRILLIC SMALL LETTER PSI
+0472,DISALLOWED,CYRILLIC CAPITAL LETTER FITA
+0473,PVALID,CYRILLIC SMALL LETTER FITA
+0474,DISALLOWED,CYRILLIC CAPITAL LETTER IZHITSA
+0475,PVALID,CYRILLIC SMALL LETTER IZHITSA
+0476,DISALLOWED,CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0477,PVALID,CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0478,DISALLOWED,CYRILLIC CAPITAL LETTER UK
+0479,PVALID,CYRILLIC SMALL LETTER UK
+047A,DISALLOWED,CYRILLIC CAPITAL LETTER ROUND OMEGA
+047B,PVALID,CYRILLIC SMALL LETTER ROUND OMEGA
+047C,DISALLOWED,CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047D,PVALID,CYRILLIC SMALL LETTER OMEGA WITH TITLO
+047E,DISALLOWED,CYRILLIC CAPITAL LETTER OT
+047F,PVALID,CYRILLIC SMALL LETTER OT
+0480,DISALLOWED,CYRILLIC CAPITAL LETTER KOPPA
+0481,PVALID,CYRILLIC SMALL LETTER KOPPA
+0482,DISALLOWED,CYRILLIC THOUSANDS SIGN
+0483-0487,PVALID,COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488-048A,DISALLOWED,COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+048B,PVALID,CYRILLIC SMALL LETTER SHORT I WITH TAIL
+048C,DISALLOWED,CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+048D,PVALID,CYRILLIC SMALL LETTER SEMISOFT SIGN
+048E,DISALLOWED,CYRILLIC CAPITAL LETTER ER WITH TICK
+048F,PVALID,CYRILLIC SMALL LETTER ER WITH TICK
+0490,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0491,PVALID,CYRILLIC SMALL LETTER GHE WITH UPTURN
+0492,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH STROKE
+0493,PVALID,CYRILLIC SMALL LETTER GHE WITH STROKE
+0494,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+0495,PVALID,CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+0496,DISALLOWED,CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0497,PVALID,CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+0498,DISALLOWED,CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+0499,PVALID,CYRILLIC SMALL LETTER ZE WITH DESCENDER
+049A,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+049B,PVALID,CYRILLIC SMALL LETTER KA WITH DESCENDER
+049C,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+049D,PVALID,CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+049E,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH STROKE
+049F,PVALID,CYRILLIC SMALL LETTER KA WITH STROKE
+04A0,DISALLOWED,CYRILLIC CAPITAL LETTER BASHKIR KA
+04A1,PVALID,CYRILLIC SMALL LETTER BASHKIR KA
+04A2,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04A3,PVALID,CYRILLIC SMALL LETTER EN WITH DESCENDER
+04A4,DISALLOWED,CYRILLIC CAPITAL LIGATURE EN GHE
+04A5,PVALID,CYRILLIC SMALL LIGATURE EN GHE
+04A6,DISALLOWED,CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+04A7,PVALID,CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+04A8,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN HA
+04A9,PVALID,CYRILLIC SMALL LETTER ABKHASIAN HA
+04AA,DISALLOWED,CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+04AB,PVALID,CYRILLIC SMALL LETTER ES WITH DESCENDER
+04AC,DISALLOWED,CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+04AD,PVALID,CYRILLIC SMALL LETTER TE WITH DESCENDER
+04AE,DISALLOWED,CYRILLIC CAPITAL LETTER STRAIGHT U
+04AF,PVALID,CYRILLIC SMALL LETTER STRAIGHT U
+04B0,DISALLOWED,CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+04B1,PVALID,CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+04B2,DISALLOWED,CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04B3,PVALID,CYRILLIC SMALL LETTER HA WITH DESCENDER
+04B4,DISALLOWED,CYRILLIC CAPITAL LIGATURE TE TSE
+04B5,PVALID,CYRILLIC SMALL LIGATURE TE TSE
+04B6,DISALLOWED,CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04B7,PVALID,CYRILLIC SMALL LETTER CHE WITH DESCENDER
+04B8,DISALLOWED,CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+04B9,PVALID,CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04BA,DISALLOWED,CYRILLIC CAPITAL LETTER SHHA
+04BB,PVALID,CYRILLIC SMALL LETTER SHHA
+04BC,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BD,PVALID,CYRILLIC SMALL LETTER ABKHASIAN CHE
+04BE,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+04BF,PVALID,CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+04C0-04C1,DISALLOWED,CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04C2,PVALID,CYRILLIC SMALL LETTER ZHE WITH BREVE
+04C3,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH HOOK
+04C4,PVALID,CYRILLIC SMALL LETTER KA WITH HOOK
+04C5,DISALLOWED,CYRILLIC CAPITAL LETTER EL WITH TAIL
+04C6,PVALID,CYRILLIC SMALL LETTER EL WITH TAIL
+04C7,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH HOOK
+04C8,PVALID,CYRILLIC SMALL LETTER EN WITH HOOK
+04C9,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH TAIL
+04CA,PVALID,CYRILLIC SMALL LETTER EN WITH TAIL
+04CB,DISALLOWED,CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04CC,PVALID,CYRILLIC SMALL LETTER KHAKASSIAN CHE
+04CD,DISALLOWED,CYRILLIC CAPITAL LETTER EM WITH TAIL
+04CE-04CF,PVALID,CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA
+04D0,DISALLOWED,CYRILLIC CAPITAL LETTER A WITH BREVE
+04D1,PVALID,CYRILLIC SMALL LETTER A WITH BREVE
+04D2,DISALLOWED,CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D3,PVALID,CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D4,DISALLOWED,CYRILLIC CAPITAL LIGATURE A IE
+04D5,PVALID,CYRILLIC SMALL LIGATURE A IE
+04D6,DISALLOWED,CYRILLIC CAPITAL LETTER IE WITH BREVE
+04D7,PVALID,CYRILLIC SMALL LETTER IE WITH BREVE
+04D8,DISALLOWED,CYRILLIC CAPITAL LETTER SCHWA
+04D9,PVALID,CYRILLIC SMALL LETTER SCHWA
+04DA,DISALLOWED,CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04DB,PVALID,CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DC,DISALLOWED,CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+04DD,PVALID,CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DE,DISALLOWED,CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+04DF,PVALID,CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E0,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+04E1,PVALID,CYRILLIC SMALL LETTER ABKHASIAN DZE
+04E2,DISALLOWED,CYRILLIC CAPITAL LETTER I WITH MACRON
+04E3,PVALID,CYRILLIC SMALL LETTER I WITH MACRON
+04E4,DISALLOWED,CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E5,PVALID,CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E6,DISALLOWED,CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E7,PVALID,CYRILLIC SMALL LETTER O WITH DIAERESIS
+04E8,DISALLOWED,CYRILLIC CAPITAL LETTER BARRED O
+04E9,PVALID,CYRILLIC SMALL LETTER BARRED O
+04EA,DISALLOWED,CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+04EB,PVALID,CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EC,DISALLOWED,CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+04ED,PVALID,CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EE,DISALLOWED,CYRILLIC CAPITAL LETTER U WITH MACRON
+04EF,PVALID,CYRILLIC SMALL LETTER U WITH MACRON
+04F0,DISALLOWED,CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F1,PVALID,CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F2,DISALLOWED,CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F3,PVALID,CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F4,DISALLOWED,CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F5,PVALID,CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F6,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+04F7,PVALID,CYRILLIC SMALL LETTER GHE WITH DESCENDER
+04F8,DISALLOWED,CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04F9,PVALID,CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+04FA,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+04FB,PVALID,CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
+04FC,DISALLOWED,CYRILLIC CAPITAL LETTER HA WITH HOOK
+04FD,PVALID,CYRILLIC SMALL LETTER HA WITH HOOK
+04FE,DISALLOWED,CYRILLIC CAPITAL LETTER HA WITH STROKE
+04FF,PVALID,CYRILLIC SMALL LETTER HA WITH STROKE
+0500,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI DE
+0501,PVALID,CYRILLIC SMALL LETTER KOMI DE
+0502,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI DJE
+0503,PVALID,CYRILLIC SMALL LETTER KOMI DJE
+0504,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI ZJE
+0505,PVALID,CYRILLIC SMALL LETTER KOMI ZJE
+0506,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI DZJE
+0507,PVALID,CYRILLIC SMALL LETTER KOMI DZJE
+0508,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI LJE
+0509,PVALID,CYRILLIC SMALL LETTER KOMI LJE
+050A,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI NJE
+050B,PVALID,CYRILLIC SMALL LETTER KOMI NJE
+050C,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI SJE
+050D,PVALID,CYRILLIC SMALL LETTER KOMI SJE
+050E,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI TJE
+050F,PVALID,CYRILLIC SMALL LETTER KOMI TJE
+0510,DISALLOWED,CYRILLIC CAPITAL LETTER REVERSED ZE
+0511,PVALID,CYRILLIC SMALL LETTER REVERSED ZE
+0512,DISALLOWED,CYRILLIC CAPITAL LETTER EL WITH HOOK
+0513,PVALID,CYRILLIC SMALL LETTER EL WITH HOOK
+0514,DISALLOWED,CYRILLIC CAPITAL LETTER LHA
+0515,PVALID,CYRILLIC SMALL LETTER LHA
+0516,DISALLOWED,CYRILLIC CAPITAL LETTER RHA
+0517,PVALID,CYRILLIC SMALL LETTER RHA
+0518,DISALLOWED,CYRILLIC CAPITAL LETTER YAE
+0519,PVALID,CYRILLIC SMALL LETTER YAE
+051A,DISALLOWED,CYRILLIC CAPITAL LETTER QA
+051B,PVALID,CYRILLIC SMALL LETTER QA
+051C,DISALLOWED,CYRILLIC CAPITAL LETTER WE
+051D,PVALID,CYRILLIC SMALL LETTER WE
+051E,DISALLOWED,CYRILLIC CAPITAL LETTER ALEUT KA
+051F,PVALID,CYRILLIC SMALL LETTER ALEUT KA
+0520,DISALLOWED,CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
+0521,PVALID,CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
+0522,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+0523,PVALID,CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
+0524,DISALLOWED,CYRILLIC CAPITAL LETTER PE WITH DESCENDER
+0525,PVALID,CYRILLIC SMALL LETTER PE WITH DESCENDER
+0526-0530,UNASSIGNED,<RESERVED>..<RESERVED>
+0531-0556,DISALLOWED,ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0557-0558,UNASSIGNED,<RESERVED>..<RESERVED>
+0559,PVALID,ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A-055F,DISALLOWED,ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0560,UNASSIGNED,<RESERVED>
+0561-0586,PVALID,ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LETTER FEH
+0587,DISALLOWED,ARMENIAN SMALL LIGATURE ECH YIWN
+0588,UNASSIGNED,<RESERVED>
+0589-058A,DISALLOWED,ARMENIAN FULL STOP..ARMENIAN HYPHEN
+058B-0590,UNASSIGNED,<RESERVED>..<RESERVED>
+0591-05BD,PVALID,HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BE,DISALLOWED,HEBREW PUNCTUATION MAQAF
+05BF,PVALID,HEBREW POINT RAFE
+05C0,DISALLOWED,HEBREW PUNCTUATION PASEQ
+05C1-05C2,PVALID,HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3,DISALLOWED,HEBREW PUNCTUATION SOF PASUQ
+05C4-05C5,PVALID,HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C6,DISALLOWED,HEBREW PUNCTUATION NUN HAFUKHA
+05C7,PVALID,HEBREW POINT QAMATS QATAN
+05C8-05CF,UNASSIGNED,<RESERVED>..<RESERVED>
+05D0-05EA,PVALID,HEBREW LETTER ALEF..HEBREW LETTER TAV
+05EB-05EF,UNASSIGNED,<RESERVED>..<RESERVED>
+05F0-05F2,PVALID,HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3-05F4,CONTEXTO,HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+05F5-05FF,UNASSIGNED,<RESERVED>..<RESERVED>
+0600-0603,DISALLOWED,ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
+0604-0605,UNASSIGNED,<RESERVED>..<RESERVED>
+0606-060F,DISALLOWED,ARABIC-INDIC CUBE ROOT..ARABIC SIGN MISRA
+0610-061A,PVALID,ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+061B,DISALLOWED,ARABIC SEMICOLON
+061C-061D,UNASSIGNED,<RESERVED>..<RESERVED>
+061E-061F,DISALLOWED,ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
+0620,UNASSIGNED,<RESERVED>
+0621-063F,PVALID,ARABIC LETTER HAMZA..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640,DISALLOWED,ARABIC TATWEEL
+0641-065E,PVALID,ARABIC LETTER FEH..ARABIC FATHA WITH TWO DOTS
+065F,UNASSIGNED,<RESERVED>
+0660-0669,CONTEXTO,ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A-066D,DISALLOWED,ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+066E-0674,PVALID,ARABIC LETTER DOTLESS BEH..ARABIC LETTER HIGH HAMZA
+0675-0678,DISALLOWED,ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH
+0679-06D3,PVALID,ARABIC LETTER TTEH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4,DISALLOWED,ARABIC FULL STOP
+06D5-06DC,PVALID,ARABIC LETTER AE..ARABIC SMALL HIGH SEEN
+06DD-06DE,DISALLOWED,ARABIC END OF AYAH..ARABIC START OF RUB EL HIZB
+06DF-06E8,PVALID,ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH NOON
+06E9,DISALLOWED,ARABIC PLACE OF SAJDAH
+06EA-06EF,PVALID,ARABIC EMPTY CENTRE LOW STOP..ARABIC LETTER REH WITH INVERTED V
+06F0-06F9,CONTEXTO,EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA-06FF,PVALID,ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER HEH WITH INVERTED V
+0700-070D,DISALLOWED,SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070E,UNASSIGNED,<RESERVED>
+070F,DISALLOWED,SYRIAC ABBREVIATION MARK
+0710-074A,PVALID,SYRIAC LETTER ALAPH..SYRIAC BARREKH
+074B-074C,UNASSIGNED,<RESERVED>..<RESERVED>
+074D-07B1,PVALID,SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER NAA
+07B2-07BF,UNASSIGNED,<RESERVED>..<RESERVED>
+07C0-07F5,PVALID,NKO DIGIT ZERO..NKO LOW TONE APOSTROPHE
+07F6-07FA,DISALLOWED,NKO SYMBOL OO DENNEN..NKO LAJANYALAN
+07FB-07FF,UNASSIGNED,<RESERVED>..<RESERVED>
+0800-082D,PVALID,SAMARITAN LETTER ALAF..SAMARITAN MARK NEQUDAA
+082E-082F,UNASSIGNED,<RESERVED>..<RESERVED>
+0830-083E,DISALLOWED,SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+083F-08FF,UNASSIGNED,<RESERVED>..<RESERVED>
+0900-0939,PVALID,DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI LETTER HA
+093A-093B,UNASSIGNED,<RESERVED>..<RESERVED>
+093C-094E,PVALID,DEVANAGARI SIGN NUKTA..DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
+094F,UNASSIGNED,<RESERVED>
+0950-0955,PVALID,DEVANAGARI OM..DEVANAGARI VOWEL SIGN CANDRA LONG E
+0956-0957,UNASSIGNED,<RESERVED>..<RESERVED>
+0958-095F,DISALLOWED,DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+0960-0963,PVALID,DEVANAGARI LETTER VOCALIC RR..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964-0965,DISALLOWED,DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0966-096F,PVALID,DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970,DISALLOWED,DEVANAGARI ABBREVIATION SIGN
+0971-0972,PVALID,DEVANAGARI SIGN HIGH SPACING DOT..DEVANAGARI LETTER CANDRA A
+0973-0978,UNASSIGNED,<RESERVED>..<RESERVED>
+0979-097F,PVALID,DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0980,UNASSIGNED,<RESERVED>
+0981-0983,PVALID,BENGALI SIGN CANDRABINDU..BENGALI SIGN VISARGA
+0984,UNASSIGNED,<RESERVED>
+0985-098C,PVALID,BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098D-098E,UNASSIGNED,<RESERVED>..<RESERVED>
+098F-0990,PVALID,BENGALI LETTER E..BENGALI LETTER AI
+0991-0992,UNASSIGNED,<RESERVED>..<RESERVED>
+0993-09A8,PVALID,BENGALI LETTER O..BENGALI LETTER NA
+09A9,UNASSIGNED,<RESERVED>
+09AA-09B0,PVALID,BENGALI LETTER PA..BENGALI LETTER RA
+09B1,UNASSIGNED,<RESERVED>
+09B2,PVALID,BENGALI LETTER LA
+09B3-09B5,UNASSIGNED,<RESERVED>..<RESERVED>
+09B6-09B9,PVALID,BENGALI LETTER SHA..BENGALI LETTER HA
+09BA-09BB,UNASSIGNED,<RESERVED>..<RESERVED>
+09BC-09C4,PVALID,BENGALI SIGN NUKTA..BENGALI VOWEL SIGN VOCALIC RR
+09C5-09C6,UNASSIGNED,<RESERVED>..<RESERVED>
+09C7-09C8,PVALID,BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09C9-09CA,UNASSIGNED,<RESERVED>..<RESERVED>
+09CB-09CE,PVALID,BENGALI VOWEL SIGN O..BENGALI LETTER KHANDA TA
+09CF-09D6,UNASSIGNED,<RESERVED>..<RESERVED>
+09D7,PVALID,BENGALI AU LENGTH MARK
+09D8-09DB,UNASSIGNED,<RESERVED>..<RESERVED>
+09DC-09DD,DISALLOWED,BENGALI LETTER RRA..BENGALI LETTER RHA
+09DE,UNASSIGNED,<RESERVED>
+09DF,DISALLOWED,BENGALI LETTER YYA
+09E0-09E3,PVALID,BENGALI LETTER VOCALIC RR..BENGALI VOWEL SIGN VOCALIC LL
+09E4-09E5,UNASSIGNED,<RESERVED>..<RESERVED>
+09E6-09F1,PVALID,BENGALI DIGIT ZERO..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2-09FB,DISALLOWED,BENGALI RUPEE MARK..BENGALI GANDA MARK
+09FC-0A00,UNASSIGNED,<RESERVED>..<RESERVED>
+0A01-0A03,PVALID,GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN VISARGA
+0A04,UNASSIGNED,<RESERVED>
+0A05-0A0A,PVALID,GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0B-0A0E,UNASSIGNED,<RESERVED>..<RESERVED>
+0A0F-0A10,PVALID,GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A11-0A12,UNASSIGNED,<RESERVED>..<RESERVED>
+0A13-0A28,PVALID,GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A29,UNASSIGNED,<RESERVED>
+0A2A-0A30,PVALID,GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A31,UNASSIGNED,<RESERVED>
+0A32,PVALID,GURMUKHI LETTER LA
+0A33,DISALLOWED,GURMUKHI LETTER LLA
+0A34,UNASSIGNED,<RESERVED>
+0A35,PVALID,GURMUKHI LETTER VA
+0A36,DISALLOWED,GURMUKHI LETTER SHA
+0A37,UNASSIGNED,<RESERVED>
+0A38-0A39,PVALID,GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3A-0A3B,UNASSIGNED,<RESERVED>..<RESERVED>
+0A3C,PVALID,GURMUKHI SIGN NUKTA
+0A3D,UNASSIGNED,<RESERVED>
+0A3E-0A42,PVALID,GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN UU
+0A43-0A46,UNASSIGNED,<RESERVED>..<RESERVED>
+0A47-0A48,PVALID,GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A49-0A4A,UNASSIGNED,<RESERVED>..<RESERVED>
+0A4B-0A4D,PVALID,GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A4E-0A50,UNASSIGNED,<RESERVED>..<RESERVED>
+0A51,PVALID,GURMUKHI SIGN UDAAT
+0A52-0A58,UNASSIGNED,<RESERVED>..<RESERVED>
+0A59-0A5B,DISALLOWED,GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5C,PVALID,GURMUKHI LETTER RRA
+0A5D,UNASSIGNED,<RESERVED>
+0A5E,DISALLOWED,GURMUKHI LETTER FA
+0A5F-0A65,UNASSIGNED,<RESERVED>..<RESERVED>
+0A66-0A75,PVALID,GURMUKHI DIGIT ZERO..GURMUKHI SIGN YAKASH
+0A76-0A80,UNASSIGNED,<RESERVED>..<RESERVED>
+0A81-0A83,PVALID,GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VISARGA
+0A84,UNASSIGNED,<RESERVED>
+0A85-0A8D,PVALID,GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8E,UNASSIGNED,<RESERVED>
+0A8F-0A91,PVALID,GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A92,UNASSIGNED,<RESERVED>
+0A93-0AA8,PVALID,GUJARATI LETTER O..GUJARATI LETTER NA
+0AA9,UNASSIGNED,<RESERVED>
+0AAA-0AB0,PVALID,GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB1,UNASSIGNED,<RESERVED>
+0AB2-0AB3,PVALID,GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB4,UNASSIGNED,<RESERVED>
+0AB5-0AB9,PVALID,GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABA-0ABB,UNASSIGNED,<RESERVED>..<RESERVED>
+0ABC-0AC5,PVALID,GUJARATI SIGN NUKTA..GUJARATI VOWEL SIGN CANDRA E
+0AC6,UNASSIGNED,<RESERVED>
+0AC7-0AC9,PVALID,GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN CANDRA O
+0ACA,UNASSIGNED,<RESERVED>
+0ACB-0ACD,PVALID,GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA
+0ACE-0ACF,UNASSIGNED,<RESERVED>..<RESERVED>
+0AD0,PVALID,GUJARATI OM
+0AD1-0ADF,UNASSIGNED,<RESERVED>..<RESERVED>
+0AE0-0AE3,PVALID,GUJARATI LETTER VOCALIC RR..GUJARATI VOWEL SIGN VOCALIC LL
+0AE4-0AE5,UNASSIGNED,<RESERVED>..<RESERVED>
+0AE6-0AEF,PVALID,GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0,UNASSIGNED,<RESERVED>
+0AF1,DISALLOWED,GUJARATI RUPEE SIGN
+0AF2-0B00,UNASSIGNED,<RESERVED>..<RESERVED>
+0B01-0B03,PVALID,ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA
+0B04,UNASSIGNED,<RESERVED>
+0B05-0B0C,PVALID,ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0D-0B0E,UNASSIGNED,<RESERVED>..<RESERVED>
+0B0F-0B10,PVALID,ORIYA LETTER E..ORIYA LETTER AI
+0B11-0B12,UNASSIGNED,<RESERVED>..<RESERVED>
+0B13-0B28,PVALID,ORIYA LETTER O..ORIYA LETTER NA
+0B29,UNASSIGNED,<RESERVED>
+0B2A-0B30,PVALID,ORIYA LETTER PA..ORIYA LETTER RA
+0B31,UNASSIGNED,<RESERVED>
+0B32-0B33,PVALID,ORIYA LETTER LA..ORIYA LETTER LLA
+0B34,UNASSIGNED,<RESERVED>
+0B35-0B39,PVALID,ORIYA LETTER VA..ORIYA LETTER HA
+0B3A-0B3B,UNASSIGNED,<RESERVED>..<RESERVED>
+0B3C-0B44,PVALID,ORIYA SIGN NUKTA..ORIYA VOWEL SIGN VOCALIC RR
+0B45-0B46,UNASSIGNED,<RESERVED>..<RESERVED>
+0B47-0B48,PVALID,ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B49-0B4A,UNASSIGNED,<RESERVED>..<RESERVED>
+0B4B-0B4D,PVALID,ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA
+0B4E-0B55,UNASSIGNED,<RESERVED>..<RESERVED>
+0B56-0B57,PVALID,ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK
+0B58-0B5B,UNASSIGNED,<RESERVED>..<RESERVED>
+0B5C-0B5D,DISALLOWED,ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5E,UNASSIGNED,<RESERVED>
+0B5F-0B63,PVALID,ORIYA LETTER YYA..ORIYA VOWEL SIGN VOCALIC LL
+0B64-0B65,UNASSIGNED,<RESERVED>..<RESERVED>
+0B66-0B6F,PVALID,ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70,DISALLOWED,ORIYA ISSHAR
+0B71,PVALID,ORIYA LETTER WA
+0B72-0B81,UNASSIGNED,<RESERVED>..<RESERVED>
+0B82-0B83,PVALID,TAMIL SIGN ANUSVARA..TAMIL SIGN VISARGA
+0B84,UNASSIGNED,<RESERVED>
+0B85-0B8A,PVALID,TAMIL LETTER A..TAMIL LETTER UU
+0B8B-0B8D,UNASSIGNED,<RESERVED>..<RESERVED>
+0B8E-0B90,PVALID,TAMIL LETTER E..TAMIL LETTER AI
+0B91,UNASSIGNED,<RESERVED>
+0B92-0B95,PVALID,TAMIL LETTER O..TAMIL LETTER KA
+0B96-0B98,UNASSIGNED,<RESERVED>..<RESERVED>
+0B99-0B9A,PVALID,TAMIL LETTER NGA..TAMIL LETTER CA
+0B9B,UNASSIGNED,<RESERVED>
+0B9C,PVALID,TAMIL LETTER JA
+0B9D,UNASSIGNED,<RESERVED>
+0B9E-0B9F,PVALID,TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA0-0BA2,UNASSIGNED,<RESERVED>..<RESERVED>
+0BA3-0BA4,PVALID,TAMIL LETTER NNA..TAMIL LETTER TA
+0BA5-0BA7,UNASSIGNED,<RESERVED>..<RESERVED>
+0BA8-0BAA,PVALID,TAMIL LETTER NA..TAMIL LETTER PA
+0BAB-0BAD,UNASSIGNED,<RESERVED>..<RESERVED>
+0BAE-0BB9,PVALID,TAMIL LETTER MA..TAMIL LETTER HA
+0BBA-0BBD,UNASSIGNED,<RESERVED>..<RESERVED>
+0BBE-0BC2,PVALID,TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU
+0BC3-0BC5,UNASSIGNED,<RESERVED>..<RESERVED>
+0BC6-0BC8,PVALID,TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BC9,UNASSIGNED,<RESERVED>
+0BCA-0BCD,PVALID,TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA
+0BCE-0BCF,UNASSIGNED,<RESERVED>..<RESERVED>
+0BD0,PVALID,TAMIL OM
+0BD1-0BD6,UNASSIGNED,<RESERVED>..<RESERVED>
+0BD7,PVALID,TAMIL AU LENGTH MARK
+0BD8-0BE5,UNASSIGNED,<RESERVED>..<RESERVED>
+0BE6-0BEF,PVALID,TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0-0BFA,DISALLOWED,TAMIL NUMBER TEN..TAMIL NUMBER SIGN
+0BFB-0C00,UNASSIGNED,<RESERVED>..<RESERVED>
+0C01-0C03,PVALID,TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04,UNASSIGNED,<RESERVED>
+0C05-0C0C,PVALID,TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0D,UNASSIGNED,<RESERVED>
+0C0E-0C10,PVALID,TELUGU LETTER E..TELUGU LETTER AI
+0C11,UNASSIGNED,<RESERVED>
+0C12-0C28,PVALID,TELUGU LETTER O..TELUGU LETTER NA
+0C29,UNASSIGNED,<RESERVED>
+0C2A-0C33,PVALID,TELUGU LETTER PA..TELUGU LETTER LLA
+0C34,UNASSIGNED,<RESERVED>
+0C35-0C39,PVALID,TELUGU LETTER VA..TELUGU LETTER HA
+0C3A-0C3C,UNASSIGNED,<RESERVED>..<RESERVED>
+0C3D-0C44,PVALID,TELUGU SIGN AVAGRAHA..TELUGU VOWEL SIGN VOCALIC RR
+0C45,UNASSIGNED,<RESERVED>
+0C46-0C48,PVALID,TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C49,UNASSIGNED,<RESERVED>
+0C4A-0C4D,PVALID,TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C4E-0C54,UNASSIGNED,<RESERVED>..<RESERVED>
+0C55-0C56,PVALID,TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C57,UNASSIGNED,<RESERVED>
+0C58-0C59,PVALID,TELUGU LETTER TSA..TELUGU LETTER DZA
+0C5A-0C5F,UNASSIGNED,<RESERVED>..<RESERVED>
+0C60-0C63,PVALID,TELUGU LETTER VOCALIC RR..TELUGU VOWEL SIGN VOCALIC LL
+0C64-0C65,UNASSIGNED,<RESERVED>..<RESERVED>
+0C66-0C6F,PVALID,TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C70-0C77,UNASSIGNED,<RESERVED>..<RESERVED>
+0C78-0C7F,DISALLOWED,TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU SIGN TUUMU
+0C80-0C81,UNASSIGNED,<RESERVED>..<RESERVED>
+0C82-0C83,PVALID,KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C84,UNASSIGNED,<RESERVED>
+0C85-0C8C,PVALID,KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8D,UNASSIGNED,<RESERVED>
+0C8E-0C90,PVALID,KANNADA LETTER E..KANNADA LETTER AI
+0C91,UNASSIGNED,<RESERVED>
+0C92-0CA8,PVALID,KANNADA LETTER O..KANNADA LETTER NA
+0CA9,UNASSIGNED,<RESERVED>
+0CAA-0CB3,PVALID,KANNADA LETTER PA..KANNADA LETTER LLA
+0CB4,UNASSIGNED,<RESERVED>
+0CB5-0CB9,PVALID,KANNADA LETTER VA..KANNADA LETTER HA
+0CBA-0CBB,UNASSIGNED,<RESERVED>..<RESERVED>
+0CBC-0CC4,PVALID,KANNADA SIGN NUKTA..KANNADA VOWEL SIGN VOCALIC RR
+0CC5,UNASSIGNED,<RESERVED>
+0CC6-0CC8,PVALID,KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI
+0CC9,UNASSIGNED,<RESERVED>
+0CCA-0CCD,PVALID,KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA
+0CCE-0CD4,UNASSIGNED,<RESERVED>..<RESERVED>
+0CD5-0CD6,PVALID,KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CD7-0CDD,UNASSIGNED,<RESERVED>..<RESERVED>
+0CDE,PVALID,KANNADA LETTER FA
+0CDF,UNASSIGNED,<RESERVED>
+0CE0-0CE3,PVALID,KANNADA LETTER VOCALIC RR..KANNADA VOWEL SIGN VOCALIC LL
+0CE4-0CE5,UNASSIGNED,<RESERVED>..<RESERVED>
+0CE6-0CEF,PVALID,KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF0,UNASSIGNED,<RESERVED>
+0CF1-0CF2,DISALLOWED,KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3-0D01,UNASSIGNED,<RESERVED>..<RESERVED>
+0D02-0D03,PVALID,MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D04,UNASSIGNED,<RESERVED>
+0D05-0D0C,PVALID,MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
+0D0D,UNASSIGNED,<RESERVED>
+0D0E-0D10,PVALID,MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D11,UNASSIGNED,<RESERVED>
+0D12-0D28,PVALID,MALAYALAM LETTER O..MALAYALAM LETTER NA
+0D29,UNASSIGNED,<RESERVED>
+0D2A-0D39,PVALID,MALAYALAM LETTER PA..MALAYALAM LETTER HA
+0D3A-0D3C,UNASSIGNED,<RESERVED>..<RESERVED>
+0D3D-0D44,PVALID,MALAYALAM SIGN AVAGRAHA..MALAYALAM VOWEL SIGN VOCALIC RR
+0D45,UNASSIGNED,<RESERVED>
+0D46-0D48,PVALID,MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D49,UNASSIGNED,<RESERVED>
+0D4A-0D4D,PVALID,MALAYALAM VOWEL SIGN O..MALAYALAM SIGN VIRAMA
+0D4E-0D56,UNASSIGNED,<RESERVED>..<RESERVED>
+0D57,PVALID,MALAYALAM AU LENGTH MARK
+0D58-0D5F,UNASSIGNED,<RESERVED>..<RESERVED>
+0D60-0D63,PVALID,MALAYALAM LETTER VOCALIC RR..MALAYALAM VOWEL SIGN VOCALIC LL
+0D64-0D65,UNASSIGNED,<RESERVED>..<RESERVED>
+0D66-0D6F,PVALID,MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70-0D75,DISALLOWED,MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
+0D76-0D78,UNASSIGNED,<RESERVED>..<RESERVED>
+0D79,DISALLOWED,MALAYALAM DATE MARK
+0D7A-0D7F,PVALID,MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D80-0D81,UNASSIGNED,<RESERVED>..<RESERVED>
+0D82-0D83,PVALID,SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D84,UNASSIGNED,<RESERVED>
+0D85-0D96,PVALID,SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D97-0D99,UNASSIGNED,<RESERVED>..<RESERVED>
+0D9A-0DB1,PVALID,SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB2,UNASSIGNED,<RESERVED>
+0DB3-0DBB,PVALID,SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBC,UNASSIGNED,<RESERVED>
+0DBD,PVALID,SINHALA LETTER DANTAJA LAYANNA
+0DBE-0DBF,UNASSIGNED,<RESERVED>..<RESERVED>
+0DC0-0DC6,PVALID,SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DC7-0DC9,UNASSIGNED,<RESERVED>..<RESERVED>
+0DCA,PVALID,SINHALA SIGN AL-LAKUNA
+0DCB-0DCE,UNASSIGNED,<RESERVED>..<RESERVED>
+0DCF-0DD4,PVALID,SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD5,UNASSIGNED,<RESERVED>
+0DD6,PVALID,SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD7,UNASSIGNED,<RESERVED>
+0DD8-0DDF,PVALID,SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE0-0DF1,UNASSIGNED,<RESERVED>..<RESERVED>
+0DF2-0DF3,PVALID,SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4,DISALLOWED,SINHALA PUNCTUATION KUNDDALIYA
+0DF5-0E00,UNASSIGNED,<RESERVED>..<RESERVED>
+0E01-0E32,PVALID,THAI CHARACTER KO KAI..THAI CHARACTER SARA AA
+0E33,DISALLOWED,THAI CHARACTER SARA AM
+0E34-0E3A,PVALID,THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E3B-0E3E,UNASSIGNED,<RESERVED>..<RESERVED>
+0E3F,DISALLOWED,THAI CURRENCY SYMBOL BAHT
+0E40-0E4E,PVALID,THAI CHARACTER SARA E..THAI CHARACTER YAMAKKAN
+0E4F,DISALLOWED,THAI CHARACTER FONGMAN
+0E50-0E59,PVALID,THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A-0E5B,DISALLOWED,THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E5C-0E80,UNASSIGNED,<RESERVED>..<RESERVED>
+0E81-0E82,PVALID,LAO LETTER KO..LAO LETTER KHO SUNG
+0E83,UNASSIGNED,<RESERVED>
+0E84,PVALID,LAO LETTER KHO TAM
+0E85-0E86,UNASSIGNED,<RESERVED>..<RESERVED>
+0E87-0E88,PVALID,LAO LETTER NGO..LAO LETTER CO
+0E89,UNASSIGNED,<RESERVED>
+0E8A,PVALID,LAO LETTER SO TAM
+0E8B-0E8C,UNASSIGNED,<RESERVED>..<RESERVED>
+0E8D,PVALID,LAO LETTER NYO
+0E8E-0E93,UNASSIGNED,<RESERVED>..<RESERVED>
+0E94-0E97,PVALID,LAO LETTER DO..LAO LETTER THO TAM
+0E98,UNASSIGNED,<RESERVED>
+0E99-0E9F,PVALID,LAO LETTER NO..LAO LETTER FO SUNG
+0EA0,UNASSIGNED,<RESERVED>
+0EA1-0EA3,PVALID,LAO LETTER MO..LAO LETTER LO LING
+0EA4,UNASSIGNED,<RESERVED>
+0EA5,PVALID,LAO LETTER LO LOOT
+0EA6,UNASSIGNED,<RESERVED>
+0EA7,PVALID,LAO LETTER WO
+0EA8-0EA9,UNASSIGNED,<RESERVED>..<RESERVED>
+0EAA-0EAB,PVALID,LAO LETTER SO SUNG..LAO LETTER HO SUNG
+0EAC,UNASSIGNED,<RESERVED>
+0EAD-0EB2,PVALID,LAO LETTER O..LAO VOWEL SIGN AA
+0EB3,DISALLOWED,LAO VOWEL SIGN AM
+0EB4-0EB9,PVALID,LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBA,UNASSIGNED,<RESERVED>
+0EBB-0EBD,PVALID,LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN NYO
+0EBE-0EBF,UNASSIGNED,<RESERVED>..<RESERVED>
+0EC0-0EC4,PVALID,LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC5,UNASSIGNED,<RESERVED>
+0EC6,PVALID,LAO KO LA
+0EC7,UNASSIGNED,<RESERVED>
+0EC8-0ECD,PVALID,LAO TONE MAI EK..LAO NIGGAHITA
+0ECE-0ECF,UNASSIGNED,<RESERVED>..<RESERVED>
+0ED0-0ED9,PVALID,LAO DIGIT ZERO..LAO DIGIT NINE
+0EDA-0EDB,UNASSIGNED,<RESERVED>..<RESERVED>
+0EDC-0EDD,DISALLOWED,LAO HO NO..LAO HO MO
+0EDE-0EFF,UNASSIGNED,<RESERVED>..<RESERVED>
+0F00,PVALID,TIBETAN SYLLABLE OM
+0F01-0F0A,DISALLOWED,TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK BKA- SHOG YIG MGO
+0F0B,PVALID,TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C-0F17,DISALLOWED,TIBETAN MARK DELIMITER TSHEG BSTAR..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18-0F19,PVALID,TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A-0F1F,DISALLOWED,TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20-0F29,PVALID,TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A-0F34,DISALLOWED,TIBETAN DIGIT HALF ONE..TIBETAN MARK BSDUS RTAGS
+0F35,PVALID,TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36,DISALLOWED,TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37,PVALID,TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38,DISALLOWED,TIBETAN MARK CHE MGO
+0F39,PVALID,TIBETAN MARK TSA -PHRU
+0F3A-0F3D,DISALLOWED,TIBETAN MARK GUG RTAGS GYON..TIBETAN MARK ANG KHANG GYAS
+0F3E-0F42,PVALID,TIBETAN SIGN YAR TSHES..TIBETAN LETTER GA
+0F43,DISALLOWED,TIBETAN LETTER GHA
+0F44-0F47,PVALID,TIBETAN LETTER NGA..TIBETAN LETTER JA
+0F48,UNASSIGNED,<RESERVED>
+0F49-0F4C,PVALID,TIBETAN LETTER NYA..TIBETAN LETTER DDA
+0F4D,DISALLOWED,TIBETAN LETTER DDHA
+0F4E-0F51,PVALID,TIBETAN LETTER NNA..TIBETAN LETTER DA
+0F52,DISALLOWED,TIBETAN LETTER DHA
+0F53-0F56,PVALID,TIBETAN LETTER NA..TIBETAN LETTER BA
+0F57,DISALLOWED,TIBETAN LETTER BHA
+0F58-0F5B,PVALID,TIBETAN LETTER MA..TIBETAN LETTER DZA
+0F5C,DISALLOWED,TIBETAN LETTER DZHA
+0F5D-0F68,PVALID,TIBETAN LETTER WA..TIBETAN LETTER A
+0F69,DISALLOWED,TIBETAN LETTER KSSA
+0F6A-0F6C,PVALID,TIBETAN LETTER FIXED-FORM RA..TIBETAN LETTER RRA
+0F6D-0F70,UNASSIGNED,<RESERVED>..<RESERVED>
+0F71-0F72,PVALID,TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I
+0F73,DISALLOWED,TIBETAN VOWEL SIGN II
+0F74,PVALID,TIBETAN VOWEL SIGN U
+0F75-0F79,DISALLOWED,TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
+0F7A-0F80,PVALID,TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REVERSED I
+0F81,DISALLOWED,TIBETAN VOWEL SIGN REVERSED II
+0F82-0F84,PVALID,TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA
+0F85,DISALLOWED,TIBETAN MARK PALUTA
+0F86-0F8B,PVALID,TIBETAN SIGN LCI RTAGS..TIBETAN SIGN GRU MED RGYINGS
+0F8C-0F8F,UNASSIGNED,<RESERVED>..<RESERVED>
+0F90-0F92,PVALID,TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER GA
+0F93,DISALLOWED,TIBETAN SUBJOINED LETTER GHA
+0F94-0F97,PVALID,TIBETAN SUBJOINED LETTER NGA..TIBETAN SUBJOINED LETTER JA
+0F98,UNASSIGNED,<RESERVED>
+0F99-0F9C,PVALID,TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER DDA
+0F9D,DISALLOWED,TIBETAN SUBJOINED LETTER DDHA
+0F9E-0FA1,PVALID,TIBETAN SUBJOINED LETTER NNA..TIBETAN SUBJOINED LETTER DA
+0FA2,DISALLOWED,TIBETAN SUBJOINED LETTER DHA
+0FA3-0FA6,PVALID,TIBETAN SUBJOINED LETTER NA..TIBETAN SUBJOINED LETTER BA
+0FA7,DISALLOWED,TIBETAN SUBJOINED LETTER BHA
+0FA8-0FAB,PVALID,TIBETAN SUBJOINED LETTER MA..TIBETAN SUBJOINED LETTER DZA
+0FAC,DISALLOWED,TIBETAN SUBJOINED LETTER DZHA
+0FAD-0FB8,PVALID,TIBETAN SUBJOINED LETTER WA..TIBETAN SUBJOINED LETTER A
+0FB9,DISALLOWED,TIBETAN SUBJOINED LETTER KSSA
+0FBA-0FBC,PVALID,TIBETAN SUBJOINED LETTER FIXED-FORM WA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBD,UNASSIGNED,<RESERVED>
+0FBE-0FC5,DISALLOWED,TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+0FC6,PVALID,TIBETAN SYMBOL PADMA GDAN
+0FC7-0FCC,DISALLOWED,TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCD,UNASSIGNED,<RESERVED>
+0FCE-0FD8,DISALLOWED,TIBETAN SIGN RDEL NAG RDEL DKAR..LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9-0FFF,UNASSIGNED,<RESERVED>..<RESERVED>
+1000-1049,PVALID,MYANMAR LETTER KA..MYANMAR DIGIT NINE
+104A-104F,DISALLOWED,MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+1050-109D,PVALID,MYANMAR LETTER SHA..MYANMAR VOWEL SIGN AITON AI
+109E-10C5,DISALLOWED,MYANMAR SYMBOL SHAN ONE..GEORGIAN CAPITAL LETTER HOE
+10C6-10CF,UNASSIGNED,<RESERVED>..<RESERVED>
+10D0-10FA,PVALID,GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FB-10FC,DISALLOWED,GEORGIAN PARAGRAPH SEPARATOR..MODIFIER LETTER GEORGIAN NAR
+10FD-10FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1100-11FF,DISALLOWED,HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
+1200-1248,PVALID,ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+1249,UNASSIGNED,<RESERVED>
+124A-124D,PVALID,ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+124E-124F,UNASSIGNED,<RESERVED>..<RESERVED>
+1250-1256,PVALID,ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1257,UNASSIGNED,<RESERVED>
+1258,PVALID,ETHIOPIC SYLLABLE QHWA
+1259,UNASSIGNED,<RESERVED>
+125A-125D,PVALID,ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+125E-125F,UNASSIGNED,<RESERVED>..<RESERVED>
+1260-1288,PVALID,ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+1289,UNASSIGNED,<RESERVED>
+128A-128D,PVALID,ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+128E-128F,UNASSIGNED,<RESERVED>..<RESERVED>
+1290-12B0,PVALID,ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B1,UNASSIGNED,<RESERVED>
+12B2-12B5,PVALID,ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B6-12B7,UNASSIGNED,<RESERVED>..<RESERVED>
+12B8-12BE,PVALID,ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12BF,UNASSIGNED,<RESERVED>
+12C0,PVALID,ETHIOPIC SYLLABLE KXWA
+12C1,UNASSIGNED,<RESERVED>
+12C2-12C5,PVALID,ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C6-12C7,UNASSIGNED,<RESERVED>..<RESERVED>
+12C8-12D6,PVALID,ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D7,UNASSIGNED,<RESERVED>
+12D8-1310,PVALID,ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1311,UNASSIGNED,<RESERVED>
+1312-1315,PVALID,ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1316-1317,UNASSIGNED,<RESERVED>..<RESERVED>
+1318-135A,PVALID,ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+135B-135E,UNASSIGNED,<RESERVED>..<RESERVED>
+135F,PVALID,ETHIOPIC COMBINING GEMINATION MARK
+1360-137C,DISALLOWED,ETHIOPIC SECTION MARK..ETHIOPIC NUMBER TEN THOUSAND
+137D-137F,UNASSIGNED,<RESERVED>..<RESERVED>
+1380-138F,PVALID,ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390-1399,DISALLOWED,ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+139A-139F,UNASSIGNED,<RESERVED>..<RESERVED>
+13A0-13F4,PVALID,CHEROKEE LETTER A..CHEROKEE LETTER YV
+13F5-13FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1400,DISALLOWED,CANADIAN SYLLABICS HYPHEN
+1401-166C,PVALID,CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D-166E,DISALLOWED,CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166F-167F,PVALID,CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
+1680,DISALLOWED,OGHAM SPACE MARK
+1681-169A,PVALID,OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B-169C,DISALLOWED,OGHAM FEATHER MARK..OGHAM REVERSED FEATHER MARK
+169D-169F,UNASSIGNED,<RESERVED>..<RESERVED>
+16A0-16EA,PVALID,RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EB-16F0,DISALLOWED,RUNIC SINGLE PUNCTUATION..RUNIC BELGTHOR SYMBOL
+16F1-16FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1700-170C,PVALID,TAGALOG LETTER A..TAGALOG LETTER YA
+170D,UNASSIGNED,<RESERVED>
+170E-1714,PVALID,TAGALOG LETTER LA..TAGALOG SIGN VIRAMA
+1715-171F,UNASSIGNED,<RESERVED>..<RESERVED>
+1720-1734,PVALID,HANUNOO LETTER A..HANUNOO SIGN PAMUDPOD
+1735-1736,DISALLOWED,PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1737-173F,UNASSIGNED,<RESERVED>..<RESERVED>
+1740-1753,PVALID,BUHID LETTER A..BUHID VOWEL SIGN U
+1754-175F,UNASSIGNED,<RESERVED>..<RESERVED>
+1760-176C,PVALID,TAGBANWA LETTER A..TAGBANWA LETTER YA
+176D,UNASSIGNED,<RESERVED>
+176E-1770,PVALID,TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1771,UNASSIGNED,<RESERVED>
+1772-1773,PVALID,TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1774-177F,UNASSIGNED,<RESERVED>..<RESERVED>
+1780-17B3,PVALID,KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4-17B5,DISALLOWED,KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6-17D3,PVALID,KHMER VOWEL SIGN AA..KHMER SIGN BATHAMASAT
+17D4-17D6,DISALLOWED,KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+17D7,PVALID,KHMER SIGN LEK TOO
+17D8-17DB,DISALLOWED,KHMER SIGN BEYYAL..KHMER CURRENCY SYMBOL RIEL
+17DC-17DD,PVALID,KHMER SIGN AVAKRAHASANYA..KHMER SIGN ATTHACAN
+17DE-17DF,UNASSIGNED,<RESERVED>..<RESERVED>
+17E0-17E9,PVALID,KHMER DIGIT ZERO..KHMER DIGIT NINE
+17EA-17EF,UNASSIGNED,<RESERVED>..<RESERVED>
+17F0-17F9,DISALLOWED,KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+17FA-17FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1800-180E,DISALLOWED,MONGOLIAN BIRGA..MONGOLIAN VOWEL SEPARATOR
+180F,UNASSIGNED,<RESERVED>
+1810-1819,PVALID,MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+181A-181F,UNASSIGNED,<RESERVED>..<RESERVED>
+1820-1877,PVALID,MONGOLIAN LETTER A..MONGOLIAN LETTER MANCHU ZHA
+1878-187F,UNASSIGNED,<RESERVED>..<RESERVED>
+1880-18AA,PVALID,MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI LHA
+18AB-18AF,UNASSIGNED,<RESERVED>..<RESERVED>
+18B0-18F5,PVALID,CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+18F6-18FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1900-191C,PVALID,LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+191D-191F,UNASSIGNED,<RESERVED>..<RESERVED>
+1920-192B,PVALID,LIMBU VOWEL SIGN A..LIMBU SUBJOINED LETTER WA
+192C-192F,UNASSIGNED,<RESERVED>..<RESERVED>
+1930-193B,PVALID,LIMBU SMALL LETTER KA..LIMBU SIGN SA-I
+193C-193F,UNASSIGNED,<RESERVED>..<RESERVED>
+1940,DISALLOWED,LIMBU SIGN LOO
+1941-1943,UNASSIGNED,<RESERVED>..<RESERVED>
+1944-1945,DISALLOWED,LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946-196D,PVALID,LIMBU DIGIT ZERO..TAI LE LETTER AI
+196E-196F,UNASSIGNED,<RESERVED>..<RESERVED>
+1970-1974,PVALID,TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1975-197F,UNASSIGNED,<RESERVED>..<RESERVED>
+1980-19AB,PVALID,NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
+19AC-19AF,UNASSIGNED,<RESERVED>..<RESERVED>
+19B0-19C9,PVALID,NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
+19CA-19CF,UNASSIGNED,<RESERVED>..<RESERVED>
+19D0-19DA,PVALID,NEW TAI LUE DIGIT ZERO..NEW TAI LUE THAM DIGIT ONE
+19DB-19DD,UNASSIGNED,<RESERVED>..<RESERVED>
+19DE-19FF,DISALLOWED,NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM ROC
+1A00-1A1B,PVALID,BUGINESE LETTER KA..BUGINESE VOWEL SIGN AE
+1A1C-1A1D,UNASSIGNED,<RESERVED>..<RESERVED>
+1A1E-1A1F,DISALLOWED,BUGINESE PALLAWA..BUGINESE END OF SECTION
+1A20-1A5E,PVALID,TAI THAM LETTER HIGH KA..TAI THAM CONSONANT SIGN SA
+1A5F,UNASSIGNED,<RESERVED>
+1A60-1A7C,PVALID,TAI THAM SIGN SAKOT..TAI THAM SIGN KHUEN-LUE KARAN
+1A7D-1A7E,UNASSIGNED,<RESERVED>..<RESERVED>
+1A7F-1A89,PVALID,TAI THAM COMBINING CRYPTOGRAMMIC DOT..TAI THAM HORA DIGIT NINE
+1A8A-1A8F,UNASSIGNED,<RESERVED>..<RESERVED>
+1A90-1A99,PVALID,TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1A9A-1A9F,UNASSIGNED,<RESERVED>..<RESERVED>
+1AA0-1AA6,DISALLOWED,TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+1AA7,PVALID,TAI THAM SIGN MAI YAMOK
+1AA8-1AAD,DISALLOWED,TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1AAE-1AFF,UNASSIGNED,<RESERVED>..<RESERVED>
+1B00-1B4B,PVALID,BALINESE SIGN ULU RICEM..BALINESE LETTER ASYURA SASAK
+1B4C-1B4F,UNASSIGNED,<RESERVED>..<RESERVED>
+1B50-1B59,PVALID,BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A-1B6A,DISALLOWED,BALINESE PANTI..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B-1B73,PVALID,BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74-1B7C,DISALLOWED,BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B7D-1B7F,UNASSIGNED,<RESERVED>..<RESERVED>
+1B80-1BAA,PVALID,SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PAMAAEH
+1BAB-1BAD,UNASSIGNED,<RESERVED>..<RESERVED>
+1BAE-1BB9,PVALID,SUNDANESE LETTER KHA..SUNDANESE DIGIT NINE
+1BBA-1BFF,UNASSIGNED,<RESERVED>..<RESERVED>
+1C00-1C37,PVALID,LEPCHA LETTER KA..LEPCHA SIGN NUKTA
+1C38-1C3A,UNASSIGNED,<RESERVED>..<RESERVED>
+1C3B-1C3F,DISALLOWED,LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40-1C49,PVALID,LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4A-1C4C,UNASSIGNED,<RESERVED>..<RESERVED>
+1C4D-1C7D,PVALID,LEPCHA LETTER TTA..OL CHIKI AHAD
+1C7E-1C7F,DISALLOWED,OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1C80-1CCF,UNASSIGNED,<RESERVED>..<RESERVED>
+1CD0-1CD2,PVALID,VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD3,DISALLOWED,VEDIC SIGN NIHSHVASA
+1CD4-1CF2,PVALID,VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC SIGN ARDHAVISARGA
+1CF3-1CFF,UNASSIGNED,<RESERVED>..<RESERVED>
+1D00-1D2B,PVALID,LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C-1D2E,DISALLOWED,MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B
+1D2F,PVALID,MODIFIER LETTER CAPITAL BARRED B
+1D30-1D3A,DISALLOWED,MODIFIER LETTER CAPITAL D..MODIFIER LETTER CAPITAL N
+1D3B,PVALID,MODIFIER LETTER CAPITAL REVERSED N
+1D3C-1D4D,DISALLOWED,MODIFIER LETTER CAPITAL O..MODIFIER LETTER SMALL G
+1D4E,PVALID,MODIFIER LETTER SMALL TURNED I
+1D4F-1D6A,DISALLOWED,MODIFIER LETTER SMALL K..GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B-1D77,PVALID,LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+1D78,DISALLOWED,MODIFIER LETTER CYRILLIC EN
+1D79-1D9A,PVALID,LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B-1DBF,DISALLOWED,MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1DC0-1DE6,PVALID,COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1DE7-1DFC,UNASSIGNED,<RESERVED>..<RESERVED>
+1DFD-1DFF,PVALID,COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1E00,DISALLOWED,LATIN CAPITAL LETTER A WITH RING BELOW
+1E01,PVALID,LATIN SMALL LETTER A WITH RING BELOW
+1E02,DISALLOWED,LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E03,PVALID,LATIN SMALL LETTER B WITH DOT ABOVE
+1E04,DISALLOWED,LATIN CAPITAL LETTER B WITH DOT BELOW
+1E05,PVALID,LATIN SMALL LETTER B WITH DOT BELOW
+1E06,DISALLOWED,LATIN CAPITAL LETTER B WITH LINE BELOW
+1E07,PVALID,LATIN SMALL LETTER B WITH LINE BELOW
+1E08,DISALLOWED,LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+1E09,PVALID,LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E0A,DISALLOWED,LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0B,PVALID,LATIN SMALL LETTER D WITH DOT ABOVE
+1E0C,DISALLOWED,LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0D,PVALID,LATIN SMALL LETTER D WITH DOT BELOW
+1E0E,DISALLOWED,LATIN CAPITAL LETTER D WITH LINE BELOW
+1E0F,PVALID,LATIN SMALL LETTER D WITH LINE BELOW
+1E10,DISALLOWED,LATIN CAPITAL LETTER D WITH CEDILLA
+1E11,PVALID,LATIN SMALL LETTER D WITH CEDILLA
+1E12,DISALLOWED,LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E13,PVALID,LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E14,DISALLOWED,LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1E15,PVALID,LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E16,DISALLOWED,LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E17,PVALID,LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E18,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E19,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E1A,DISALLOWED,LATIN CAPITAL LETTER E WITH TILDE BELOW
+1E1B,PVALID,LATIN SMALL LETTER E WITH TILDE BELOW
+1E1C,DISALLOWED,LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+1E1D,PVALID,LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1E,DISALLOWED,LATIN CAPITAL LETTER F WITH DOT ABOVE
+1E1F,PVALID,LATIN SMALL LETTER F WITH DOT ABOVE
+1E20,DISALLOWED,LATIN CAPITAL LETTER G WITH MACRON
+1E21,PVALID,LATIN SMALL LETTER G WITH MACRON
+1E22,DISALLOWED,LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E23,PVALID,LATIN SMALL LETTER H WITH DOT ABOVE
+1E24,DISALLOWED,LATIN CAPITAL LETTER H WITH DOT BELOW
+1E25,PVALID,LATIN SMALL LETTER H WITH DOT BELOW
+1E26,DISALLOWED,LATIN CAPITAL LETTER H WITH DIAERESIS
+1E27,PVALID,LATIN SMALL LETTER H WITH DIAERESIS
+1E28,DISALLOWED,LATIN CAPITAL LETTER H WITH CEDILLA
+1E29,PVALID,LATIN SMALL LETTER H WITH CEDILLA
+1E2A,DISALLOWED,LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E2B,PVALID,LATIN SMALL LETTER H WITH BREVE BELOW
+1E2C,DISALLOWED,LATIN CAPITAL LETTER I WITH TILDE BELOW
+1E2D,PVALID,LATIN SMALL LETTER I WITH TILDE BELOW
+1E2E,DISALLOWED,LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+1E2F,PVALID,LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+1E30,DISALLOWED,LATIN CAPITAL LETTER K WITH ACUTE
+1E31,PVALID,LATIN SMALL LETTER K WITH ACUTE
+1E32,DISALLOWED,LATIN CAPITAL LETTER K WITH DOT BELOW
+1E33,PVALID,LATIN SMALL LETTER K WITH DOT BELOW
+1E34,DISALLOWED,LATIN CAPITAL LETTER K WITH LINE BELOW
+1E35,PVALID,LATIN SMALL LETTER K WITH LINE BELOW
+1E36,DISALLOWED,LATIN CAPITAL LETTER L WITH DOT BELOW
+1E37,PVALID,LATIN SMALL LETTER L WITH DOT BELOW
+1E38,DISALLOWED,LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E39,PVALID,LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E3A,DISALLOWED,LATIN CAPITAL LETTER L WITH LINE BELOW
+1E3B,PVALID,LATIN SMALL LETTER L WITH LINE BELOW
+1E3C,DISALLOWED,LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3D,PVALID,LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3E,DISALLOWED,LATIN CAPITAL LETTER M WITH ACUTE
+1E3F,PVALID,LATIN SMALL LETTER M WITH ACUTE
+1E40,DISALLOWED,LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E41,PVALID,LATIN SMALL LETTER M WITH DOT ABOVE
+1E42,DISALLOWED,LATIN CAPITAL LETTER M WITH DOT BELOW
+1E43,PVALID,LATIN SMALL LETTER M WITH DOT BELOW
+1E44,DISALLOWED,LATIN CAPITAL LETTER N WITH DOT ABOVE
+1E45,PVALID,LATIN SMALL LETTER N WITH DOT ABOVE
+1E46,DISALLOWED,LATIN CAPITAL LETTER N WITH DOT BELOW
+1E47,PVALID,LATIN SMALL LETTER N WITH DOT BELOW
+1E48,DISALLOWED,LATIN CAPITAL LETTER N WITH LINE BELOW
+1E49,PVALID,LATIN SMALL LETTER N WITH LINE BELOW
+1E4A,DISALLOWED,LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E4B,PVALID,LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4C,DISALLOWED,LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4D,PVALID,LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4E,DISALLOWED,LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1E4F,PVALID,LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E50,DISALLOWED,LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1E51,PVALID,LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E52,DISALLOWED,LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E53,PVALID,LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E54,DISALLOWED,LATIN CAPITAL LETTER P WITH ACUTE
+1E55,PVALID,LATIN SMALL LETTER P WITH ACUTE
+1E56,DISALLOWED,LATIN CAPITAL LETTER P WITH DOT ABOVE
+1E57,PVALID,LATIN SMALL LETTER P WITH DOT ABOVE
+1E58,DISALLOWED,LATIN CAPITAL LETTER R WITH DOT ABOVE
+1E59,PVALID,LATIN SMALL LETTER R WITH DOT ABOVE
+1E5A,DISALLOWED,LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5B,PVALID,LATIN SMALL LETTER R WITH DOT BELOW
+1E5C,DISALLOWED,LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5D,PVALID,LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5E,DISALLOWED,LATIN CAPITAL LETTER R WITH LINE BELOW
+1E5F,PVALID,LATIN SMALL LETTER R WITH LINE BELOW
+1E60,DISALLOWED,LATIN CAPITAL LETTER S WITH DOT ABOVE
+1E61,PVALID,LATIN SMALL LETTER S WITH DOT ABOVE
+1E62,DISALLOWED,LATIN CAPITAL LETTER S WITH DOT BELOW
+1E63,PVALID,LATIN SMALL LETTER S WITH DOT BELOW
+1E64,DISALLOWED,LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+1E65,PVALID,LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E66,DISALLOWED,LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E67,PVALID,LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E68,DISALLOWED,LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E69,PVALID,LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A,DISALLOWED,LATIN CAPITAL LETTER T WITH DOT ABOVE
+1E6B,PVALID,LATIN SMALL LETTER T WITH DOT ABOVE
+1E6C,DISALLOWED,LATIN CAPITAL LETTER T WITH DOT BELOW
+1E6D,PVALID,LATIN SMALL LETTER T WITH DOT BELOW
+1E6E,DISALLOWED,LATIN CAPITAL LETTER T WITH LINE BELOW
+1E6F,PVALID,LATIN SMALL LETTER T WITH LINE BELOW
+1E70,DISALLOWED,LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E71,PVALID,LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E72,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E73,PVALID,LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E74,DISALLOWED,LATIN CAPITAL LETTER U WITH TILDE BELOW
+1E75,PVALID,LATIN SMALL LETTER U WITH TILDE BELOW
+1E76,DISALLOWED,LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E77,PVALID,LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E78,DISALLOWED,LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+1E79,PVALID,LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E7A,DISALLOWED,LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1E7B,PVALID,LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7C,DISALLOWED,LATIN CAPITAL LETTER V WITH TILDE
+1E7D,PVALID,LATIN SMALL LETTER V WITH TILDE
+1E7E,DISALLOWED,LATIN CAPITAL LETTER V WITH DOT BELOW
+1E7F,PVALID,LATIN SMALL LETTER V WITH DOT BELOW
+1E80,DISALLOWED,LATIN CAPITAL LETTER W WITH GRAVE
+1E81,PVALID,LATIN SMALL LETTER W WITH GRAVE
+1E82,DISALLOWED,LATIN CAPITAL LETTER W WITH ACUTE
+1E83,PVALID,LATIN SMALL LETTER W WITH ACUTE
+1E84,DISALLOWED,LATIN CAPITAL LETTER W WITH DIAERESIS
+1E85,PVALID,LATIN SMALL LETTER W WITH DIAERESIS
+1E86,DISALLOWED,LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E87,PVALID,LATIN SMALL LETTER W WITH DOT ABOVE
+1E88,DISALLOWED,LATIN CAPITAL LETTER W WITH DOT BELOW
+1E89,PVALID,LATIN SMALL LETTER W WITH DOT BELOW
+1E8A,DISALLOWED,LATIN CAPITAL LETTER X WITH DOT ABOVE
+1E8B,PVALID,LATIN SMALL LETTER X WITH DOT ABOVE
+1E8C,DISALLOWED,LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8D,PVALID,LATIN SMALL LETTER X WITH DIAERESIS
+1E8E,DISALLOWED,LATIN CAPITAL LETTER Y WITH DOT ABOVE
+1E8F,PVALID,LATIN SMALL LETTER Y WITH DOT ABOVE
+1E90,DISALLOWED,LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+1E91,PVALID,LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E92,DISALLOWED,LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E93,PVALID,LATIN SMALL LETTER Z WITH DOT BELOW
+1E94,DISALLOWED,LATIN CAPITAL LETTER Z WITH LINE BELOW
+1E95-1E99,PVALID,LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER Y WITH RING ABOVE
+1E9A-1E9B,DISALLOWED,LATIN SMALL LETTER A WITH RIGHT HALF RING..LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1E9C-1E9D,PVALID,LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE..LATIN SMALL LETTER LONG S WITH HIGH STROKE
+1E9E,DISALLOWED,LATIN CAPITAL LETTER SHARP S
+1E9F,PVALID,LATIN SMALL LETTER DELTA
+1EA0,DISALLOWED,LATIN CAPITAL LETTER A WITH DOT BELOW
+1EA1,PVALID,LATIN SMALL LETTER A WITH DOT BELOW
+1EA2,DISALLOWED,LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EA3,PVALID,LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA4,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA5,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA7,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA9,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAB,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAD,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EAF,PVALID,LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EB0,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB1,PVALID,LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB2,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB3,PVALID,LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB4,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB5,PVALID,LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB6,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EB7,PVALID,LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB8,DISALLOWED,LATIN CAPITAL LETTER E WITH DOT BELOW
+1EB9,PVALID,LATIN SMALL LETTER E WITH DOT BELOW
+1EBA,DISALLOWED,LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EBB,PVALID,LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBC,DISALLOWED,LATIN CAPITAL LETTER E WITH TILDE
+1EBD,PVALID,LATIN SMALL LETTER E WITH TILDE
+1EBE,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBF,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC0,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC1,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC3,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC5,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC7,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8,DISALLOWED,LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1EC9,PVALID,LATIN SMALL LETTER I WITH HOOK ABOVE
+1ECA,DISALLOWED,LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECB,PVALID,LATIN SMALL LETTER I WITH DOT BELOW
+1ECC,DISALLOWED,LATIN CAPITAL LETTER O WITH DOT BELOW
+1ECD,PVALID,LATIN SMALL LETTER O WITH DOT BELOW
+1ECE,DISALLOWED,LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1ECF,PVALID,LATIN SMALL LETTER O WITH HOOK ABOVE
+1ED0,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED1,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED3,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED5,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED7,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED9,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDB,PVALID,LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDC,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDD,PVALID,LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDE,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EDF,PVALID,LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EE0,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EE1,PVALID,LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE2,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1EE3,PVALID,LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE4,DISALLOWED,LATIN CAPITAL LETTER U WITH DOT BELOW
+1EE5,PVALID,LATIN SMALL LETTER U WITH DOT BELOW
+1EE6,DISALLOWED,LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EE7,PVALID,LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE8,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EE9,PVALID,LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EEA,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEB,PVALID,LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEC,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EED,PVALID,LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEE,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EEF,PVALID,LATIN SMALL LETTER U WITH HORN AND TILDE
+1EF0,DISALLOWED,LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EF1,PVALID,LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF2,DISALLOWED,LATIN CAPITAL LETTER Y WITH GRAVE
+1EF3,PVALID,LATIN SMALL LETTER Y WITH GRAVE
+1EF4,DISALLOWED,LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EF5,PVALID,LATIN SMALL LETTER Y WITH DOT BELOW
+1EF6,DISALLOWED,LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF7,PVALID,LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF8,DISALLOWED,LATIN CAPITAL LETTER Y WITH TILDE
+1EF9,PVALID,LATIN SMALL LETTER Y WITH TILDE
+1EFA,DISALLOWED,LATIN CAPITAL LETTER MIDDLE-WELSH LL
+1EFB,PVALID,LATIN SMALL LETTER MIDDLE-WELSH LL
+1EFC,DISALLOWED,LATIN CAPITAL LETTER MIDDLE-WELSH V
+1EFD,PVALID,LATIN SMALL LETTER MIDDLE-WELSH V
+1EFE,DISALLOWED,LATIN CAPITAL LETTER Y WITH LOOP
+1EFF-1F07,PVALID,LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F08-1F0F,DISALLOWED,GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F10-1F15,PVALID,GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F16-1F17,UNASSIGNED,<RESERVED>..<RESERVED>
+1F18-1F1D,DISALLOWED,GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F1E-1F1F,UNASSIGNED,<RESERVED>..<RESERVED>
+1F20-1F27,PVALID,GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F28-1F2F,DISALLOWED,GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F30-1F37,PVALID,GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F38-1F3F,DISALLOWED,GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F40-1F45,PVALID,GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F46-1F47,UNASSIGNED,<RESERVED>..<RESERVED>
+1F48-1F4D,DISALLOWED,GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F4E-1F4F,UNASSIGNED,<RESERVED>..<RESERVED>
+1F50-1F57,PVALID,GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F58,UNASSIGNED,<RESERVED>
+1F59,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5A,UNASSIGNED,<RESERVED>
+1F5B,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5C,UNASSIGNED,<RESERVED>
+1F5D,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5E,UNASSIGNED,<RESERVED>
+1F5F,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F60-1F67,PVALID,GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F68-1F6F,DISALLOWED,GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F70,PVALID,GREEK SMALL LETTER ALPHA WITH VARIA
+1F71,DISALLOWED,GREEK SMALL LETTER ALPHA WITH OXIA
+1F72,PVALID,GREEK SMALL LETTER EPSILON WITH VARIA
+1F73,DISALLOWED,GREEK SMALL LETTER EPSILON WITH OXIA
+1F74,PVALID,GREEK SMALL LETTER ETA WITH VARIA
+1F75,DISALLOWED,GREEK SMALL LETTER ETA WITH OXIA
+1F76,PVALID,GREEK SMALL LETTER IOTA WITH VARIA
+1F77,DISALLOWED,GREEK SMALL LETTER IOTA WITH OXIA
+1F78,PVALID,GREEK SMALL LETTER OMICRON WITH VARIA
+1F79,DISALLOWED,GREEK SMALL LETTER OMICRON WITH OXIA
+1F7A,PVALID,GREEK SMALL LETTER UPSILON WITH VARIA
+1F7B,DISALLOWED,GREEK SMALL LETTER UPSILON WITH OXIA
+1F7C,PVALID,GREEK SMALL LETTER OMEGA WITH VARIA
+1F7D,DISALLOWED,GREEK SMALL LETTER OMEGA WITH OXIA
+1F7E-1F7F,UNASSIGNED,<RESERVED>..<RESERVED>
+1F80-1FAF,DISALLOWED,GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FB0-1FB1,PVALID,GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH MACRON
+1FB2-1FB4,DISALLOWED,GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB5,UNASSIGNED,<RESERVED>
+1FB6,PVALID,GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FB7-1FC4,DISALLOWED,GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC5,UNASSIGNED,<RESERVED>
+1FC6,PVALID,GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FC7-1FCF,DISALLOWED,GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK PSILI AND PERISPOMENI
+1FD0-1FD2,PVALID,GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD3,DISALLOWED,GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD4-1FD5,UNASSIGNED,<RESERVED>..<RESERVED>
+1FD6-1FD7,PVALID,GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FD8-1FDB,DISALLOWED,GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDC,UNASSIGNED,<RESERVED>
+1FDD-1FDF,DISALLOWED,GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0-1FE2,PVALID,GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE3,DISALLOWED,GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE4-1FE7,PVALID,GREEK SMALL LETTER RHO WITH PSILI..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE8-1FEF,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK VARIA
+1FF0-1FF1,UNASSIGNED,<RESERVED>..<RESERVED>
+1FF2-1FF4,DISALLOWED,GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF5,UNASSIGNED,<RESERVED>
+1FF6,PVALID,GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+1FF7-1FFE,DISALLOWED,GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI..GREEK DASIA
+1FFF,UNASSIGNED,<RESERVED>
+2000-200B,DISALLOWED,EN QUAD..ZERO WIDTH SPACE
+200C-200D,CONTEXTJ,ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+200E-2064,DISALLOWED,LEFT-TO-RIGHT MARK..INVISIBLE PLUS
+2065-2069,UNASSIGNED,<RESERVED>..<RESERVED>
+206A-2071,DISALLOWED,INHIBIT SYMMETRIC SWAPPING..SUPERSCRIPT LATIN SMALL LETTER I
+2072-2073,UNASSIGNED,<RESERVED>..<RESERVED>
+2074-208E,DISALLOWED,SUPERSCRIPT FOUR..SUBSCRIPT RIGHT PARENTHESIS
+208F,UNASSIGNED,<RESERVED>
+2090-2094,DISALLOWED,LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
+2095-209F,UNASSIGNED,<RESERVED>..<RESERVED>
+20A0-20B8,DISALLOWED,EURO-CURRENCY SIGN..TENGE SIGN
+20B9-20CF,UNASSIGNED,<RESERVED>..<RESERVED>
+20D0-20F0,DISALLOWED,COMBINING LEFT HARPOON ABOVE..COMBINING ASTERISK ABOVE
+20F1-20FF,UNASSIGNED,<RESERVED>..<RESERVED>
+2100-214D,DISALLOWED,ACCOUNT OF..AKTIESELSKAB
+214E,PVALID,TURNED SMALL F
+214F-2183,DISALLOWED,SYMBOL FOR SAMARITAN SOURCE..ROMAN NUMERAL REVERSED ONE HUNDRED
+2184,PVALID,LATIN SMALL LETTER REVERSED C
+2185-2189,DISALLOWED,ROMAN NUMERAL SIX LATE FORM..VULGAR FRACTION ZERO THIRDS
+218A-218F,UNASSIGNED,<RESERVED>..<RESERVED>
+2190-23E8,DISALLOWED,LEFTWARDS ARROW..DECIMAL EXPONENT SYMBOL
+23E9-23FF,UNASSIGNED,<RESERVED>..<RESERVED>
+2400-2426,DISALLOWED,SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
+2427-243F,UNASSIGNED,<RESERVED>..<RESERVED>
+2440-244A,DISALLOWED,OCR HOOK..OCR DOUBLE BACKSLASH
+244B-245F,UNASSIGNED,<RESERVED>..<RESERVED>
+2460-26CD,DISALLOWED,CIRCLED DIGIT ONE..DISABLED CAR
+26CE,UNASSIGNED,<RESERVED>
+26CF-26E1,DISALLOWED,PICK..RESTRICTED LEFT ENTRY-2
+26E2,UNASSIGNED,<RESERVED>
+26E3,DISALLOWED,HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
+26E4-26E7,UNASSIGNED,<RESERVED>..<RESERVED>
+26E8-26FF,DISALLOWED,BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700,UNASSIGNED,<RESERVED>
+2701-2704,DISALLOWED,UPPER BLADE SCISSORS..WHITE SCISSORS
+2705,UNASSIGNED,<RESERVED>
+2706-2709,DISALLOWED,TELEPHONE LOCATION SIGN..ENVELOPE
+270A-270B,UNASSIGNED,<RESERVED>..<RESERVED>
+270C-2727,DISALLOWED,VICTORY HAND..WHITE FOUR POINTED STAR
+2728,UNASSIGNED,<RESERVED>
+2729-274B,DISALLOWED,STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274C,UNASSIGNED,<RESERVED>
+274D,DISALLOWED,SHADOWED WHITE CIRCLE
+274E,UNASSIGNED,<RESERVED>
+274F-2752,DISALLOWED,LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
+2753-2755,UNASSIGNED,<RESERVED>..<RESERVED>
+2756-275E,DISALLOWED,BLACK DIAMOND MINUS WHITE X..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+275F-2760,UNASSIGNED,<RESERVED>..<RESERVED>
+2761-2794,DISALLOWED,CURVED STEM PARAGRAPH SIGN ORNAMENT..HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2795-2797,UNASSIGNED,<RESERVED>..<RESERVED>
+2798-27AF,DISALLOWED,HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B0,UNASSIGNED,<RESERVED>
+27B1-27BE,DISALLOWED,NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
+27BF,UNASSIGNED,<RESERVED>
+27C0-27CA,DISALLOWED,THREE DIMENSIONAL ANGLE..VERTICAL BAR WITH HORIZONTAL STROKE
+27CB,UNASSIGNED,<RESERVED>
+27CC,DISALLOWED,LONG DIVISION
+27CD-27CF,UNASSIGNED,<RESERVED>..<RESERVED>
+27D0-2B4C,DISALLOWED,WHITE DIAMOND WITH CENTRED DOT..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D-2B4F,UNASSIGNED,<RESERVED>..<RESERVED>
+2B50-2B59,DISALLOWED,WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE
+2B5A-2BFF,UNASSIGNED,<RESERVED>..<RESERVED>
+2C00-2C2E,DISALLOWED,GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C2F,UNASSIGNED,<RESERVED>
+2C30-2C5E,PVALID,GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C5F,UNASSIGNED,<RESERVED>
+2C60,DISALLOWED,LATIN CAPITAL LETTER L WITH DOUBLE BAR
+2C61,PVALID,LATIN SMALL LETTER L WITH DOUBLE BAR
+2C62-2C64,DISALLOWED,LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL
+2C65-2C66,PVALID,LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE
+2C67,DISALLOWED,LATIN CAPITAL LETTER H WITH DESCENDER
+2C68,PVALID,LATIN SMALL LETTER H WITH DESCENDER
+2C69,DISALLOWED,LATIN CAPITAL LETTER K WITH DESCENDER
+2C6A,PVALID,LATIN SMALL LETTER K WITH DESCENDER
+2C6B,DISALLOWED,LATIN CAPITAL LETTER Z WITH DESCENDER
+2C6C,PVALID,LATIN SMALL LETTER Z WITH DESCENDER
+2C6D-2C70,DISALLOWED,LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA
+2C71,PVALID,LATIN SMALL LETTER V WITH RIGHT HOOK
+2C72,DISALLOWED,LATIN CAPITAL LETTER W WITH HOOK
+2C73-2C74,PVALID,LATIN SMALL LETTER W WITH HOOK..LATIN SMALL LETTER V WITH CURL
+2C75,DISALLOWED,LATIN CAPITAL LETTER HALF H
+2C76-2C7B,PVALID,LATIN SMALL LETTER HALF H..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C-2C80,DISALLOWED,LATIN SUBSCRIPT SMALL LETTER J..COPTIC CAPITAL LETTER ALFA
+2C81,PVALID,COPTIC SMALL LETTER ALFA
+2C82,DISALLOWED,COPTIC CAPITAL LETTER VIDA
+2C83,PVALID,COPTIC SMALL LETTER VIDA
+2C84,DISALLOWED,COPTIC CAPITAL LETTER GAMMA
+2C85,PVALID,COPTIC SMALL LETTER GAMMA
+2C86,DISALLOWED,COPTIC CAPITAL LETTER DALDA
+2C87,PVALID,COPTIC SMALL LETTER DALDA
+2C88,DISALLOWED,COPTIC CAPITAL LETTER EIE
+2C89,PVALID,COPTIC SMALL LETTER EIE
+2C8A,DISALLOWED,COPTIC CAPITAL LETTER SOU
+2C8B,PVALID,COPTIC SMALL LETTER SOU
+2C8C,DISALLOWED,COPTIC CAPITAL LETTER ZATA
+2C8D,PVALID,COPTIC SMALL LETTER ZATA
+2C8E,DISALLOWED,COPTIC CAPITAL LETTER HATE
+2C8F,PVALID,COPTIC SMALL LETTER HATE
+2C90,DISALLOWED,COPTIC CAPITAL LETTER THETHE
+2C91,PVALID,COPTIC SMALL LETTER THETHE
+2C92,DISALLOWED,COPTIC CAPITAL LETTER IAUDA
+2C93,PVALID,COPTIC SMALL LETTER IAUDA
+2C94,DISALLOWED,COPTIC CAPITAL LETTER KAPA
+2C95,PVALID,COPTIC SMALL LETTER KAPA
+2C96,DISALLOWED,COPTIC CAPITAL LETTER LAULA
+2C97,PVALID,COPTIC SMALL LETTER LAULA
+2C98,DISALLOWED,COPTIC CAPITAL LETTER MI
+2C99,PVALID,COPTIC SMALL LETTER MI
+2C9A,DISALLOWED,COPTIC CAPITAL LETTER NI
+2C9B,PVALID,COPTIC SMALL LETTER NI
+2C9C,DISALLOWED,COPTIC CAPITAL LETTER KSI
+2C9D,PVALID,COPTIC SMALL LETTER KSI
+2C9E,DISALLOWED,COPTIC CAPITAL LETTER O
+2C9F,PVALID,COPTIC SMALL LETTER O
+2CA0,DISALLOWED,COPTIC CAPITAL LETTER PI
+2CA1,PVALID,COPTIC SMALL LETTER PI
+2CA2,DISALLOWED,COPTIC CAPITAL LETTER RO
+2CA3,PVALID,COPTIC SMALL LETTER RO
+2CA4,DISALLOWED,COPTIC CAPITAL LETTER SIMA
+2CA5,PVALID,COPTIC SMALL LETTER SIMA
+2CA6,DISALLOWED,COPTIC CAPITAL LETTER TAU
+2CA7,PVALID,COPTIC SMALL LETTER TAU
+2CA8,DISALLOWED,COPTIC CAPITAL LETTER UA
+2CA9,PVALID,COPTIC SMALL LETTER UA
+2CAA,DISALLOWED,COPTIC CAPITAL LETTER FI
+2CAB,PVALID,COPTIC SMALL LETTER FI
+2CAC,DISALLOWED,COPTIC CAPITAL LETTER KHI
+2CAD,PVALID,COPTIC SMALL LETTER KHI
+2CAE,DISALLOWED,COPTIC CAPITAL LETTER PSI
+2CAF,PVALID,COPTIC SMALL LETTER PSI
+2CB0,DISALLOWED,COPTIC CAPITAL LETTER OOU
+2CB1,PVALID,COPTIC SMALL LETTER OOU
+2CB2,DISALLOWED,COPTIC CAPITAL LETTER DIALECT-P ALEF
+2CB3,PVALID,COPTIC SMALL LETTER DIALECT-P ALEF
+2CB4,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC AIN
+2CB5,PVALID,COPTIC SMALL LETTER OLD COPTIC AIN
+2CB6,DISALLOWED,COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+2CB7,PVALID,COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
+2CB8,DISALLOWED,COPTIC CAPITAL LETTER DIALECT-P KAPA
+2CB9,PVALID,COPTIC SMALL LETTER DIALECT-P KAPA
+2CBA,DISALLOWED,COPTIC CAPITAL LETTER DIALECT-P NI
+2CBB,PVALID,COPTIC SMALL LETTER DIALECT-P NI
+2CBC,DISALLOWED,COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+2CBD,PVALID,COPTIC SMALL LETTER CRYPTOGRAMMIC NI
+2CBE,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC OOU
+2CBF,PVALID,COPTIC SMALL LETTER OLD COPTIC OOU
+2CC0,DISALLOWED,COPTIC CAPITAL LETTER SAMPI
+2CC1,PVALID,COPTIC SMALL LETTER SAMPI
+2CC2,DISALLOWED,COPTIC CAPITAL LETTER CROSSED SHEI
+2CC3,PVALID,COPTIC SMALL LETTER CROSSED SHEI
+2CC4,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC SHEI
+2CC5,PVALID,COPTIC SMALL LETTER OLD COPTIC SHEI
+2CC6,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC ESH
+2CC7,PVALID,COPTIC SMALL LETTER OLD COPTIC ESH
+2CC8,DISALLOWED,COPTIC CAPITAL LETTER AKHMIMIC KHEI
+2CC9,PVALID,COPTIC SMALL LETTER AKHMIMIC KHEI
+2CCA,DISALLOWED,COPTIC CAPITAL LETTER DIALECT-P HORI
+2CCB,PVALID,COPTIC SMALL LETTER DIALECT-P HORI
+2CCC,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC HORI
+2CCD,PVALID,COPTIC SMALL LETTER OLD COPTIC HORI
+2CCE,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC HA
+2CCF,PVALID,COPTIC SMALL LETTER OLD COPTIC HA
+2CD0,DISALLOWED,COPTIC CAPITAL LETTER L-SHAPED HA
+2CD1,PVALID,COPTIC SMALL LETTER L-SHAPED HA
+2CD2,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC HEI
+2CD3,PVALID,COPTIC SMALL LETTER OLD COPTIC HEI
+2CD4,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC HAT
+2CD5,PVALID,COPTIC SMALL LETTER OLD COPTIC HAT
+2CD6,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+2CD7,PVALID,COPTIC SMALL LETTER OLD COPTIC GANGIA
+2CD8,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC DJA
+2CD9,PVALID,COPTIC SMALL LETTER OLD COPTIC DJA
+2CDA,DISALLOWED,COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+2CDB,PVALID,COPTIC SMALL LETTER OLD COPTIC SHIMA
+2CDC,DISALLOWED,COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+2CDD,PVALID,COPTIC SMALL LETTER OLD NUBIAN SHIMA
+2CDE,DISALLOWED,COPTIC CAPITAL LETTER OLD NUBIAN NGI
+2CDF,PVALID,COPTIC SMALL LETTER OLD NUBIAN NGI
+2CE0,DISALLOWED,COPTIC CAPITAL LETTER OLD NUBIAN NYI
+2CE1,PVALID,COPTIC SMALL LETTER OLD NUBIAN NYI
+2CE2,DISALLOWED,COPTIC CAPITAL LETTER OLD NUBIAN WAU
+2CE3-2CE4,PVALID,COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI
+2CE5-2CEB,DISALLOWED,COPTIC SYMBOL MI RO..COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
+2CEC,PVALID,COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
+2CED,DISALLOWED,COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
+2CEE-2CF1,PVALID,COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA..COPTIC COMBINING SPIRITUS LENIS
+2CF2-2CF8,UNASSIGNED,<RESERVED>..<RESERVED>
+2CF9-2CFF,DISALLOWED,COPTIC OLD NUBIAN FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+2D00-2D25,PVALID,GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D26-2D2F,UNASSIGNED,<RESERVED>..<RESERVED>
+2D30-2D65,PVALID,TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
+2D66-2D6E,UNASSIGNED,<RESERVED>..<RESERVED>
+2D6F,DISALLOWED,TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D70-2D7F,UNASSIGNED,<RESERVED>..<RESERVED>
+2D80-2D96,PVALID,ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2D97-2D9F,UNASSIGNED,<RESERVED>..<RESERVED>
+2DA0-2DA6,PVALID,ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA7,UNASSIGNED,<RESERVED>
+2DA8-2DAE,PVALID,ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DAF,UNASSIGNED,<RESERVED>
+2DB0-2DB6,PVALID,ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB7,UNASSIGNED,<RESERVED>
+2DB8-2DBE,PVALID,ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DBF,UNASSIGNED,<RESERVED>
+2DC0-2DC6,PVALID,ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC7,UNASSIGNED,<RESERVED>
+2DC8-2DCE,PVALID,ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DCF,UNASSIGNED,<RESERVED>
+2DD0-2DD6,PVALID,ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD7,UNASSIGNED,<RESERVED>
+2DD8-2DDE,PVALID,ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2DDF,UNASSIGNED,<RESERVED>
+2DE0-2DFF,PVALID,COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+2E00-2E2E,DISALLOWED,RIGHT ANGLE SUBSTITUTION MARKER..REVERSED QUESTION MARK
+2E2F,PVALID,VERTICAL TILDE
+2E30-2E31,DISALLOWED,RING POINT..WORD SEPARATOR MIDDLE DOT
+2E32-2E7F,UNASSIGNED,<RESERVED>..<RESERVED>
+2E80-2E99,DISALLOWED,CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9A,UNASSIGNED,<RESERVED>
+2E9B-2EF3,DISALLOWED,CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2EF4-2EFF,UNASSIGNED,<RESERVED>..<RESERVED>
+2F00-2FD5,DISALLOWED,KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2FD6-2FEF,UNASSIGNED,<RESERVED>..<RESERVED>
+2FF0-2FFB,DISALLOWED,IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+2FFC-2FFF,UNASSIGNED,<RESERVED>..<RESERVED>
+3000-3004,DISALLOWED,IDEOGRAPHIC SPACE..JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005-3007,PVALID,IDEOGRAPHIC ITERATION MARK..IDEOGRAPHIC NUMBER ZERO
+3008-3029,DISALLOWED,LEFT ANGLE BRACKET..HANGZHOU NUMERAL NINE
+302A-302D,PVALID,IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E-303B,DISALLOWED,HANGUL SINGLE DOT TONE MARK..VERTICAL IDEOGRAPHIC ITERATION MARK
+303C,PVALID,MASU MARK
+303D-303F,DISALLOWED,PART ALTERNATION MARK..IDEOGRAPHIC HALF FILL SPACE
+3040,UNASSIGNED,<RESERVED>
+3041-3096,PVALID,HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
+3097-3098,UNASSIGNED,<RESERVED>..<RESERVED>
+3099-309A,PVALID,COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B-309C,DISALLOWED,KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D-309E,PVALID,HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F-30A0,DISALLOWED,HIRAGANA DIGRAPH YORI..KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1-30FA,PVALID,KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+30FB,CONTEXTO,KATAKANA MIDDLE DOT
+30FC-30FE,PVALID,KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
+30FF,DISALLOWED,KATAKANA DIGRAPH KOTO
+3100-3104,UNASSIGNED,<RESERVED>..<RESERVED>
+3105-312D,PVALID,BOPOMOFO LETTER B..BOPOMOFO LETTER IH
+312E-3130,UNASSIGNED,<RESERVED>..<RESERVED>
+3131-318E,DISALLOWED,HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+318F,UNASSIGNED,<RESERVED>
+3190-319F,DISALLOWED,IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31A0-31B7,PVALID,BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H
+31B8-31BF,UNASSIGNED,<RESERVED>..<RESERVED>
+31C0-31E3,DISALLOWED,CJK STROKE T..CJK STROKE Q
+31E4-31EF,UNASSIGNED,<RESERVED>..<RESERVED>
+31F0-31FF,PVALID,KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3200-321E,DISALLOWED,PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+321F,UNASSIGNED,<RESERVED>
+3220-32FE,DISALLOWED,PARENTHESIZED IDEOGRAPH ONE..CIRCLED KATAKANA WO
+32FF,UNASSIGNED,<RESERVED>
+3300-33FF,DISALLOWED,SQUARE APAATO..SQUARE GAL
+3400-4DB5,PVALID,"<CJK IDEOGRAPH EXTENSION A, FIRST>..<CJK IDEOGRAPH EXTENSION A, LAST>"
+4DB6-4DBF,UNASSIGNED,<RESERVED>..<RESERVED>
+4DC0-4DFF,DISALLOWED,HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00-9FCB,PVALID,"<CJK IDEOGRAPH, FIRST>..<CJK IDEOGRAPH, LAST>"
+9FCC-9FFF,UNASSIGNED,<RESERVED>..<RESERVED>
+A000-A48C,PVALID,YI SYLLABLE IT..YI SYLLABLE YYR
+A48D-A48F,UNASSIGNED,<RESERVED>..<RESERVED>
+A490-A4C6,DISALLOWED,YI RADICAL QOT..YI RADICAL KE
+A4C7-A4CF,UNASSIGNED,<RESERVED>..<RESERVED>
+A4D0-A4FD,PVALID,LISU LETTER BA..LISU LETTER TONE MYA JEU
+A4FE-A4FF,DISALLOWED,LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
+A500-A60C,PVALID,VAI SYLLABLE EE..VAI SYLLABLE LENGTHENER
+A60D-A60F,DISALLOWED,VAI COMMA..VAI QUESTION MARK
+A610-A62B,PVALID,VAI SYLLABLE NDOLE FA..VAI SYLLABLE NDOLE DO
+A62C-A63F,UNASSIGNED,<RESERVED>..<RESERVED>
+A640,DISALLOWED,CYRILLIC CAPITAL LETTER ZEMLYA
+A641,PVALID,CYRILLIC SMALL LETTER ZEMLYA
+A642,DISALLOWED,CYRILLIC CAPITAL LETTER DZELO
+A643,PVALID,CYRILLIC SMALL LETTER DZELO
+A644,DISALLOWED,CYRILLIC CAPITAL LETTER REVERSED DZE
+A645,PVALID,CYRILLIC SMALL LETTER REVERSED DZE
+A646,DISALLOWED,CYRILLIC CAPITAL LETTER IOTA
+A647,PVALID,CYRILLIC SMALL LETTER IOTA
+A648,DISALLOWED,CYRILLIC CAPITAL LETTER DJERV
+A649,PVALID,CYRILLIC SMALL LETTER DJERV
+A64A,DISALLOWED,CYRILLIC CAPITAL LETTER MONOGRAPH UK
+A64B,PVALID,CYRILLIC SMALL LETTER MONOGRAPH UK
+A64C,DISALLOWED,CYRILLIC CAPITAL LETTER BROAD OMEGA
+A64D,PVALID,CYRILLIC SMALL LETTER BROAD OMEGA
+A64E,DISALLOWED,CYRILLIC CAPITAL LETTER NEUTRAL YER
+A64F,PVALID,CYRILLIC SMALL LETTER NEUTRAL YER
+A650,DISALLOWED,CYRILLIC CAPITAL LETTER YERU WITH BACK YER
+A651,PVALID,CYRILLIC SMALL LETTER YERU WITH BACK YER
+A652,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED YAT
+A653,PVALID,CYRILLIC SMALL LETTER IOTIFIED YAT
+A654,DISALLOWED,CYRILLIC CAPITAL LETTER REVERSED YU
+A655,PVALID,CYRILLIC SMALL LETTER REVERSED YU
+A656,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED A
+A657,PVALID,CYRILLIC SMALL LETTER IOTIFIED A
+A658,DISALLOWED,CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
+A659,PVALID,CYRILLIC SMALL LETTER CLOSED LITTLE YUS
+A65A,DISALLOWED,CYRILLIC CAPITAL LETTER BLENDED YUS
+A65B,PVALID,CYRILLIC SMALL LETTER BLENDED YUS
+A65C,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
+A65D,PVALID,CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
+A65E,DISALLOWED,CYRILLIC CAPITAL LETTER YN
+A65F,PVALID,CYRILLIC SMALL LETTER YN
+A660-A661,UNASSIGNED,<RESERVED>..<RESERVED>
+A662,DISALLOWED,CYRILLIC CAPITAL LETTER SOFT DE
+A663,PVALID,CYRILLIC SMALL LETTER SOFT DE
+A664,DISALLOWED,CYRILLIC CAPITAL LETTER SOFT EL
+A665,PVALID,CYRILLIC SMALL LETTER SOFT EL
+A666,DISALLOWED,CYRILLIC CAPITAL LETTER SOFT EM
+A667,PVALID,CYRILLIC SMALL LETTER SOFT EM
+A668,DISALLOWED,CYRILLIC CAPITAL LETTER MONOCULAR O
+A669,PVALID,CYRILLIC SMALL LETTER MONOCULAR O
+A66A,DISALLOWED,CYRILLIC CAPITAL LETTER BINOCULAR O
+A66B,PVALID,CYRILLIC SMALL LETTER BINOCULAR O
+A66C,DISALLOWED,CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
+A66D-A66F,PVALID,CYRILLIC SMALL LETTER DOUBLE MONOCULAR O..COMBINING CYRILLIC VZMET
+A670-A673,DISALLOWED,COMBINING CYRILLIC TEN MILLIONS SIGN..SLAVONIC ASTERISK
+A674-A67B,UNASSIGNED,<RESERVED>..<RESERVED>
+A67C-A67D,PVALID,COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A67E,DISALLOWED,CYRILLIC KAVYKA
+A67F,PVALID,CYRILLIC PAYEROK
+A680,DISALLOWED,CYRILLIC CAPITAL LETTER DWE
+A681,PVALID,CYRILLIC SMALL LETTER DWE
+A682,DISALLOWED,CYRILLIC CAPITAL LETTER DZWE
+A683,PVALID,CYRILLIC SMALL LETTER DZWE
+A684,DISALLOWED,CYRILLIC CAPITAL LETTER ZHWE
+A685,PVALID,CYRILLIC SMALL LETTER ZHWE
+A686,DISALLOWED,CYRILLIC CAPITAL LETTER CCHE
+A687,PVALID,CYRILLIC SMALL LETTER CCHE
+A688,DISALLOWED,CYRILLIC CAPITAL LETTER DZZE
+A689,PVALID,CYRILLIC SMALL LETTER DZZE
+A68A,DISALLOWED,CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
+A68B,PVALID,CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
+A68C,DISALLOWED,CYRILLIC CAPITAL LETTER TWE
+A68D,PVALID,CYRILLIC SMALL LETTER TWE
+A68E,DISALLOWED,CYRILLIC CAPITAL LETTER TSWE
+A68F,PVALID,CYRILLIC SMALL LETTER TSWE
+A690,DISALLOWED,CYRILLIC CAPITAL LETTER TSSE
+A691,PVALID,CYRILLIC SMALL LETTER TSSE
+A692,DISALLOWED,CYRILLIC CAPITAL LETTER TCHE
+A693,PVALID,CYRILLIC SMALL LETTER TCHE
+A694,DISALLOWED,CYRILLIC CAPITAL LETTER HWE
+A695,PVALID,CYRILLIC SMALL LETTER HWE
+A696,DISALLOWED,CYRILLIC CAPITAL LETTER SHWE
+A697,PVALID,CYRILLIC SMALL LETTER SHWE
+A698-A69F,UNASSIGNED,<RESERVED>..<RESERVED>
+A6A0-A6E5,PVALID,BAMUM LETTER A..BAMUM LETTER KI
+A6E6-A6EF,DISALLOWED,BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A6F0-A6F1,PVALID,BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A6F2-A6F7,DISALLOWED,BAMUM NJAEMLI..BAMUM QUESTION MARK
+A6F8-A6FF,UNASSIGNED,<RESERVED>..<RESERVED>
+A700-A716,DISALLOWED,MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717-A71F,PVALID,MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720-A722,DISALLOWED,MODIFIER LETTER STRESS AND HIGH TONE..LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
+A723,PVALID,LATIN SMALL LETTER EGYPTOLOGICAL ALEF
+A724,DISALLOWED,LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
+A725,PVALID,LATIN SMALL LETTER EGYPTOLOGICAL AIN
+A726,DISALLOWED,LATIN CAPITAL LETTER HENG
+A727,PVALID,LATIN SMALL LETTER HENG
+A728,DISALLOWED,LATIN CAPITAL LETTER TZ
+A729,PVALID,LATIN SMALL LETTER TZ
+A72A,DISALLOWED,LATIN CAPITAL LETTER TRESILLO
+A72B,PVALID,LATIN SMALL LETTER TRESILLO
+A72C,DISALLOWED,LATIN CAPITAL LETTER CUATRILLO
+A72D,PVALID,LATIN SMALL LETTER CUATRILLO
+A72E,DISALLOWED,LATIN CAPITAL LETTER CUATRILLO WITH COMMA
+A72F-A731,PVALID,LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S
+A732,DISALLOWED,LATIN CAPITAL LETTER AA
+A733,PVALID,LATIN SMALL LETTER AA
+A734,DISALLOWED,LATIN CAPITAL LETTER AO
+A735,PVALID,LATIN SMALL LETTER AO
+A736,DISALLOWED,LATIN CAPITAL LETTER AU
+A737,PVALID,LATIN SMALL LETTER AU
+A738,DISALLOWED,LATIN CAPITAL LETTER AV
+A739,PVALID,LATIN SMALL LETTER AV
+A73A,DISALLOWED,LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
+A73B,PVALID,LATIN SMALL LETTER AV WITH HORIZONTAL BAR
+A73C,DISALLOWED,LATIN CAPITAL LETTER AY
+A73D,PVALID,LATIN SMALL LETTER AY
+A73E,DISALLOWED,LATIN CAPITAL LETTER REVERSED C WITH DOT
+A73F,PVALID,LATIN SMALL LETTER REVERSED C WITH DOT
+A740,DISALLOWED,LATIN CAPITAL LETTER K WITH STROKE
+A741,PVALID,LATIN SMALL LETTER K WITH STROKE
+A742,DISALLOWED,LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
+A743,PVALID,LATIN SMALL LETTER K WITH DIAGONAL STROKE
+A744,DISALLOWED,LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
+A745,PVALID,LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
+A746,DISALLOWED,LATIN CAPITAL LETTER BROKEN L
+A747,PVALID,LATIN SMALL LETTER BROKEN L
+A748,DISALLOWED,LATIN CAPITAL LETTER L WITH HIGH STROKE
+A749,PVALID,LATIN SMALL LETTER L WITH HIGH STROKE
+A74A,DISALLOWED,LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
+A74B,PVALID,LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
+A74C,DISALLOWED,LATIN CAPITAL LETTER O WITH LOOP
+A74D,PVALID,LATIN SMALL LETTER O WITH LOOP
+A74E,DISALLOWED,LATIN CAPITAL LETTER OO
+A74F,PVALID,LATIN SMALL LETTER OO
+A750,DISALLOWED,LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
+A751,PVALID,LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
+A752,DISALLOWED,LATIN CAPITAL LETTER P WITH FLOURISH
+A753,PVALID,LATIN SMALL LETTER P WITH FLOURISH
+A754,DISALLOWED,LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
+A755,PVALID,LATIN SMALL LETTER P WITH SQUIRREL TAIL
+A756,DISALLOWED,LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
+A757,PVALID,LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
+A758,DISALLOWED,LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
+A759,PVALID,LATIN SMALL LETTER Q WITH DIAGONAL STROKE
+A75A,DISALLOWED,LATIN CAPITAL LETTER R ROTUNDA
+A75B,PVALID,LATIN SMALL LETTER R ROTUNDA
+A75C,DISALLOWED,LATIN CAPITAL LETTER RUM ROTUNDA
+A75D,PVALID,LATIN SMALL LETTER RUM ROTUNDA
+A75E,DISALLOWED,LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
+A75F,PVALID,LATIN SMALL LETTER V WITH DIAGONAL STROKE
+A760,DISALLOWED,LATIN CAPITAL LETTER VY
+A761,PVALID,LATIN SMALL LETTER VY
+A762,DISALLOWED,LATIN CAPITAL LETTER VISIGOTHIC Z
+A763,PVALID,LATIN SMALL LETTER VISIGOTHIC Z
+A764,DISALLOWED,LATIN CAPITAL LETTER THORN WITH STROKE
+A765,PVALID,LATIN SMALL LETTER THORN WITH STROKE
+A766,DISALLOWED,LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
+A767,PVALID,LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
+A768,DISALLOWED,LATIN CAPITAL LETTER VEND
+A769,PVALID,LATIN SMALL LETTER VEND
+A76A,DISALLOWED,LATIN CAPITAL LETTER ET
+A76B,PVALID,LATIN SMALL LETTER ET
+A76C,DISALLOWED,LATIN CAPITAL LETTER IS
+A76D,PVALID,LATIN SMALL LETTER IS
+A76E,DISALLOWED,LATIN CAPITAL LETTER CON
+A76F,PVALID,LATIN SMALL LETTER CON
+A770,DISALLOWED,MODIFIER LETTER US
+A771-A778,PVALID,LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM
+A779,DISALLOWED,LATIN CAPITAL LETTER INSULAR D
+A77A,PVALID,LATIN SMALL LETTER INSULAR D
+A77B,DISALLOWED,LATIN CAPITAL LETTER INSULAR F
+A77C,PVALID,LATIN SMALL LETTER INSULAR F
+A77D-A77E,DISALLOWED,LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G
+A77F,PVALID,LATIN SMALL LETTER TURNED INSULAR G
+A780,DISALLOWED,LATIN CAPITAL LETTER TURNED L
+A781,PVALID,LATIN SMALL LETTER TURNED L
+A782,DISALLOWED,LATIN CAPITAL LETTER INSULAR R
+A783,PVALID,LATIN SMALL LETTER INSULAR R
+A784,DISALLOWED,LATIN CAPITAL LETTER INSULAR S
+A785,PVALID,LATIN SMALL LETTER INSULAR S
+A786,DISALLOWED,LATIN CAPITAL LETTER INSULAR T
+A787-A788,PVALID,LATIN SMALL LETTER INSULAR T..MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789-A78B,DISALLOWED,MODIFIER LETTER COLON..LATIN CAPITAL LETTER SALTILLO
+A78C,PVALID,LATIN SMALL LETTER SALTILLO
+A78D-A7FA,UNASSIGNED,<RESERVED>..<RESERVED>
+A7FB-A827,PVALID,LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI VOWEL SIGN OO
+A828-A82B,DISALLOWED,SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A82C-A82F,UNASSIGNED,<RESERVED>..<RESERVED>
+A830-A839,DISALLOWED,NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC QUANTITY MARK
+A83A-A83F,UNASSIGNED,<RESERVED>..<RESERVED>
+A840-A873,PVALID,PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874-A877,DISALLOWED,PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+A878-A87F,UNASSIGNED,<RESERVED>..<RESERVED>
+A880-A8C4,PVALID,SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VIRAMA
+A8C5-A8CD,UNASSIGNED,<RESERVED>..<RESERVED>
+A8CE-A8CF,DISALLOWED,SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0-A8D9,PVALID,SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A8DA-A8DF,UNASSIGNED,<RESERVED>..<RESERVED>
+A8E0-A8F7,PVALID,COMBINING DEVANAGARI DIGIT ZERO..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8-A8FA,DISALLOWED,DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
+A8FB,PVALID,DEVANAGARI HEADSTROKE
+A8FC-A8FF,UNASSIGNED,<RESERVED>..<RESERVED>
+A900-A92D,PVALID,KAYAH LI DIGIT ZERO..KAYAH LI TONE CALYA PLOPHU
+A92E-A92F,DISALLOWED,KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A930-A953,PVALID,REJANG LETTER KA..REJANG VIRAMA
+A954-A95E,UNASSIGNED,<RESERVED>..<RESERVED>
+A95F-A97C,DISALLOWED,REJANG SECTION MARK..HANGUL CHOSEONG SSANGYEORINHIEUH
+A97D-A97F,UNASSIGNED,<RESERVED>..<RESERVED>
+A980-A9C0,PVALID,JAVANESE SIGN PANYANGGA..JAVANESE PANGKON
+A9C1-A9CD,DISALLOWED,JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
+A9CE,UNASSIGNED,<RESERVED>
+A9CF-A9D9,PVALID,JAVANESE PANGRANGKEP..JAVANESE DIGIT NINE
+A9DA-A9DD,UNASSIGNED,<RESERVED>..<RESERVED>
+A9DE-A9DF,DISALLOWED,JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0-A9FF,UNASSIGNED,<RESERVED>..<RESERVED>
+AA00-AA36,PVALID,CHAM LETTER A..CHAM CONSONANT SIGN WA
+AA37-AA3F,UNASSIGNED,<RESERVED>..<RESERVED>
+AA40-AA4D,PVALID,CHAM LETTER FINAL K..CHAM CONSONANT SIGN FINAL H
+AA4E-AA4F,UNASSIGNED,<RESERVED>..<RESERVED>
+AA50-AA59,PVALID,CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5A-AA5B,UNASSIGNED,<RESERVED>..<RESERVED>
+AA5C-AA5F,DISALLOWED,CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+AA60-AA76,PVALID,MYANMAR LETTER KHAMTI GA..MYANMAR LOGOGRAM KHAMTI HM
+AA77-AA79,DISALLOWED,MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+AA7A-AA7B,PVALID,MYANMAR LETTER AITON RA..MYANMAR SIGN PAO KAREN TONE
+AA7C-AA7F,UNASSIGNED,<RESERVED>..<RESERVED>
+AA80-AAC2,PVALID,TAI VIET LETTER LOW KO..TAI VIET TONE MAI SONG
+AAC3-AADA,UNASSIGNED,<RESERVED>..<RESERVED>
+AADB-AADD,PVALID,TAI VIET SYMBOL KON..TAI VIET SYMBOL SAM
+AADE-AADF,DISALLOWED,TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
+AAE0-ABBF,UNASSIGNED,<RESERVED>..<RESERVED>
+ABC0-ABEA,PVALID,MEETEI MAYEK LETTER KOK..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB,DISALLOWED,MEETEI MAYEK CHEIKHEI
+ABEC-ABED,PVALID,MEETEI MAYEK LUM IYEK..MEETEI MAYEK APUN IYEK
+ABEE-ABEF,UNASSIGNED,<RESERVED>..<RESERVED>
+ABF0-ABF9,PVALID,MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+ABFA-ABFF,UNASSIGNED,<RESERVED>..<RESERVED>
+AC00-D7A3,PVALID,"<HANGUL SYLLABLE, FIRST>..<HANGUL SYLLABLE, LAST>"
+D7A4-D7AF,UNASSIGNED,<RESERVED>..<RESERVED>
+D7B0-D7C6,DISALLOWED,HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7C7-D7CA,UNASSIGNED,<RESERVED>..<RESERVED>
+D7CB-D7FB,DISALLOWED,HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+D7FC-D7FF,UNASSIGNED,<RESERVED>..<RESERVED>
+D800-FA0D,DISALLOWED,"<NON PRIVATE USE HIGH SURROGATE, FIRST>..CJK COMPATIBILITY IDEOGRAPH-FA0D"
+FA0E-FA0F,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
+FA10,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA10
+FA11,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA11
+FA12,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA12
+FA13-FA14,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
+FA15-FA1E,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA1F,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA1F
+FA20,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA20
+FA21,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA21
+FA22,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA22
+FA23-FA24,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
+FA25-FA26,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26
+FA27-FA29,PVALID,CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
+FA2A-FA2D,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA2E-FA2F,UNASSIGNED,<RESERVED>..<RESERVED>
+FA30-FA6D,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA6E-FA6F,UNASSIGNED,<RESERVED>..<RESERVED>
+FA70-FAD9,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FADA-FAFF,UNASSIGNED,<RESERVED>..<RESERVED>
+FB00-FB06,DISALLOWED,LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB07-FB12,UNASSIGNED,<RESERVED>..<RESERVED>
+FB13-FB17,DISALLOWED,ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB18-FB1C,UNASSIGNED,<RESERVED>..<RESERVED>
+FB1D,DISALLOWED,HEBREW LETTER YOD WITH HIRIQ
+FB1E,PVALID,HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F-FB36,DISALLOWED,HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER ZAYIN WITH DAGESH
+FB37,UNASSIGNED,<RESERVED>
+FB38-FB3C,DISALLOWED,HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3D,UNASSIGNED,<RESERVED>
+FB3E,DISALLOWED,HEBREW LETTER MEM WITH DAGESH
+FB3F,UNASSIGNED,<RESERVED>
+FB40-FB41,DISALLOWED,HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB42,UNASSIGNED,<RESERVED>
+FB43-FB44,DISALLOWED,HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB45,UNASSIGNED,<RESERVED>
+FB46-FBB1,DISALLOWED,HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB2-FBD2,UNASSIGNED,<RESERVED>..<RESERVED>
+FBD3-FD3F,DISALLOWED,ARABIC LETTER NG ISOLATED FORM..ORNATE RIGHT PARENTHESIS
+FD40-FD4F,UNASSIGNED,<RESERVED>..<RESERVED>
+FD50-FD8F,DISALLOWED,ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD90-FD91,UNASSIGNED,<RESERVED>..<RESERVED>
+FD92-FDC7,DISALLOWED,ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDC8-FDCF,UNASSIGNED,<RESERVED>..<RESERVED>
+FDD0-FDFD,DISALLOWED,<NOT A CHARACTER>..ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FDFE-FDFF,UNASSIGNED,<RESERVED>..<RESERVED>
+FE00-FE19,DISALLOWED,VARIATION SELECTOR-1..PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE1A-FE1F,UNASSIGNED,<RESERVED>..<RESERVED>
+FE20-FE26,PVALID,COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE27-FE2F,UNASSIGNED,<RESERVED>..<RESERVED>
+FE30-FE52,DISALLOWED,PRESENTATION FORM FOR VERTICAL TWO DOT LEADER..SMALL FULL STOP
+FE53,UNASSIGNED,<RESERVED>
+FE54-FE66,DISALLOWED,SMALL SEMICOLON..SMALL EQUALS SIGN
+FE67,UNASSIGNED,<RESERVED>
+FE68-FE6B,DISALLOWED,SMALL REVERSE SOLIDUS..SMALL COMMERCIAL AT
+FE6C-FE6F,UNASSIGNED,<RESERVED>..<RESERVED>
+FE70-FE72,DISALLOWED,ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM
+FE73,PVALID,ARABIC TAIL FRAGMENT
+FE74,DISALLOWED,ARABIC KASRATAN ISOLATED FORM
+FE75,UNASSIGNED,<RESERVED>
+FE76-FEFC,DISALLOWED,ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFD-FEFE,UNASSIGNED,<RESERVED>..<RESERVED>
+FEFF,DISALLOWED,ZERO WIDTH NO-BREAK SPACE
+FF00,UNASSIGNED,<RESERVED>
+FF01-FFBE,DISALLOWED,FULLWIDTH EXCLAMATION MARK..HALFWIDTH HANGUL LETTER HIEUH
+FFBF-FFC1,UNASSIGNED,<RESERVED>..<RESERVED>
+FFC2-FFC7,DISALLOWED,HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFC8-FFC9,UNASSIGNED,<RESERVED>..<RESERVED>
+FFCA-FFCF,DISALLOWED,HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD0-FFD1,UNASSIGNED,<RESERVED>..<RESERVED>
+FFD2-FFD7,DISALLOWED,HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFD8-FFD9,UNASSIGNED,<RESERVED>..<RESERVED>
+FFDA-FFDC,DISALLOWED,HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFDD-FFDF,UNASSIGNED,<RESERVED>..<RESERVED>
+FFE0-FFE6,DISALLOWED,FULLWIDTH CENT SIGN..FULLWIDTH WON SIGN
+FFE7,UNASSIGNED,<RESERVED>
+FFE8-FFEE,DISALLOWED,HALFWIDTH FORMS LIGHT VERTICAL..HALFWIDTH WHITE CIRCLE
+FFEF-FFF8,UNASSIGNED,<RESERVED>..<RESERVED>
+FFF9-FFFF,DISALLOWED,INTERLINEAR ANNOTATION ANCHOR..<NOT A CHARACTER>
+10000-1000B,PVALID,LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000C,UNASSIGNED,<RESERVED>
+1000D-10026,PVALID,LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10027,UNASSIGNED,<RESERVED>
+10028-1003A,PVALID,LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003B,UNASSIGNED,<RESERVED>
+1003C-1003D,PVALID,LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003E,UNASSIGNED,<RESERVED>
+1003F-1004D,PVALID,LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+1004E-1004F,UNASSIGNED,<RESERVED>..<RESERVED>
+10050-1005D,PVALID,LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+1005E-1007F,UNASSIGNED,<RESERVED>..<RESERVED>
+10080-100FA,PVALID,LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+100FB-100FF,UNASSIGNED,<RESERVED>..<RESERVED>
+10100-10102,DISALLOWED,AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+10103-10106,UNASSIGNED,<RESERVED>..<RESERVED>
+10107-10133,DISALLOWED,AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10134-10136,UNASSIGNED,<RESERVED>..<RESERVED>
+10137-1018A,DISALLOWED,AEGEAN WEIGHT BASE UNIT..GREEK ZERO SIGN
+1018B-1018F,UNASSIGNED,<RESERVED>..<RESERVED>
+10190-1019B,DISALLOWED,ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+1019C-101CF,UNASSIGNED,<RESERVED>..<RESERVED>
+101D0-101FC,DISALLOWED,PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+101FD,PVALID,PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+101FE-1027F,UNASSIGNED,<RESERVED>..<RESERVED>
+10280-1029C,PVALID,LYCIAN LETTER A..LYCIAN LETTER X
+1029D-1029F,UNASSIGNED,<RESERVED>..<RESERVED>
+102A0-102D0,PVALID,CARIAN LETTER A..CARIAN LETTER UUU3
+102D1-102FF,UNASSIGNED,<RESERVED>..<RESERVED>
+10300-1031E,PVALID,OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+1031F,UNASSIGNED,<RESERVED>
+10320-10323,DISALLOWED,OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10324-1032F,UNASSIGNED,<RESERVED>..<RESERVED>
+10330-10340,PVALID,GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341,DISALLOWED,GOTHIC LETTER NINETY
+10342-10349,PVALID,GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A,DISALLOWED,GOTHIC LETTER NINE HUNDRED
+1034B-1037F,UNASSIGNED,<RESERVED>..<RESERVED>
+10380-1039D,PVALID,UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039E,UNASSIGNED,<RESERVED>
+1039F,DISALLOWED,UGARITIC WORD DIVIDER
+103A0-103C3,PVALID,OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C4-103C7,UNASSIGNED,<RESERVED>..<RESERVED>
+103C8-103CF,PVALID,OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0-103D5,DISALLOWED,OLD PERSIAN WORD DIVIDER..OLD PERSIAN NUMBER HUNDRED
+103D6-103FF,UNASSIGNED,<RESERVED>..<RESERVED>
+10400-10427,DISALLOWED,DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+10428-1049D,PVALID,DESERET SMALL LETTER LONG I..OSMANYA LETTER OO
+1049E-1049F,UNASSIGNED,<RESERVED>..<RESERVED>
+104A0-104A9,PVALID,OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+104AA-107FF,UNASSIGNED,<RESERVED>..<RESERVED>
+10800-10805,PVALID,CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10806-10807,UNASSIGNED,<RESERVED>..<RESERVED>
+10808,PVALID,CYPRIOT SYLLABLE JO
+10809,UNASSIGNED,<RESERVED>
+1080A-10835,PVALID,CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10836,UNASSIGNED,<RESERVED>
+10837-10838,PVALID,CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+10839-1083B,UNASSIGNED,<RESERVED>..<RESERVED>
+1083C,PVALID,CYPRIOT SYLLABLE ZA
+1083D-1083E,UNASSIGNED,<RESERVED>..<RESERVED>
+1083F-10855,PVALID,CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10856,UNASSIGNED,<RESERVED>
+10857-1085F,DISALLOWED,IMPERIAL ARAMAIC SECTION SIGN..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860-108FF,UNASSIGNED,<RESERVED>..<RESERVED>
+10900-10915,PVALID,PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916-1091B,DISALLOWED,PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
+1091C-1091E,UNASSIGNED,<RESERVED>..<RESERVED>
+1091F,DISALLOWED,PHOENICIAN WORD SEPARATOR
+10920-10939,PVALID,LYDIAN LETTER A..LYDIAN LETTER C
+1093A-1093E,UNASSIGNED,<RESERVED>..<RESERVED>
+1093F,DISALLOWED,LYDIAN TRIANGULAR MARK
+10940-109FF,UNASSIGNED,<RESERVED>..<RESERVED>
+10A00-10A03,PVALID,KHAROSHTHI LETTER A..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A04,UNASSIGNED,<RESERVED>
+10A05-10A06,PVALID,KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A07-10A0B,UNASSIGNED,<RESERVED>..<RESERVED>
+10A0C-10A13,PVALID,KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI LETTER GHA
+10A14,UNASSIGNED,<RESERVED>
+10A15-10A17,PVALID,KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A18,UNASSIGNED,<RESERVED>
+10A19-10A33,PVALID,KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
+10A34-10A37,UNASSIGNED,<RESERVED>..<RESERVED>
+10A38-10A3A,PVALID,KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3B-10A3E,UNASSIGNED,<RESERVED>..<RESERVED>
+10A3F,PVALID,KHAROSHTHI VIRAMA
+10A40-10A47,DISALLOWED,KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+10A48-10A4F,UNASSIGNED,<RESERVED>..<RESERVED>
+10A50-10A58,DISALLOWED,KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+10A59-10A5F,UNASSIGNED,<RESERVED>..<RESERVED>
+10A60-10A7C,PVALID,OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A7D-10A7F,DISALLOWED,OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80-10AFF,UNASSIGNED,<RESERVED>..<RESERVED>
+10B00-10B35,PVALID,AVESTAN LETTER A..AVESTAN LETTER HE
+10B36-10B38,UNASSIGNED,<RESERVED>..<RESERVED>
+10B39-10B3F,DISALLOWED,AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B40-10B55,PVALID,INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B56-10B57,UNASSIGNED,<RESERVED>..<RESERVED>
+10B58-10B5F,DISALLOWED,INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B60-10B72,PVALID,INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B73-10B77,UNASSIGNED,<RESERVED>..<RESERVED>
+10B78-10B7F,DISALLOWED,INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80-10BFF,UNASSIGNED,<RESERVED>..<RESERVED>
+10C00-10C48,PVALID,OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10C49-10E5F,UNASSIGNED,<RESERVED>..<RESERVED>
+10E60-10E7E,DISALLOWED,RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+10E7F-1107F,UNASSIGNED,<RESERVED>..<RESERVED>
+11080-110BA,PVALID,KAITHI SIGN CANDRABINDU..KAITHI SIGN NUKTA
+110BB-110C1,DISALLOWED,KAITHI ABBREVIATION SIGN..KAITHI DOUBLE DANDA
+110C2-11FFF,UNASSIGNED,<RESERVED>..<RESERVED>
+12000-1236E,PVALID,CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
+1236F-123FF,UNASSIGNED,<RESERVED>..<RESERVED>
+12400-12462,DISALLOWED,CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12463-1246F,UNASSIGNED,<RESERVED>..<RESERVED>
+12470-12473,DISALLOWED,CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+12474-12FFF,UNASSIGNED,<RESERVED>..<RESERVED>
+13000-1342E,PVALID,EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+1342F-1CFFF,UNASSIGNED,<RESERVED>..<RESERVED>
+1D000-1D0F5,DISALLOWED,BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D0F6-1D0FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1D100-1D126,DISALLOWED,MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D127-1D128,UNASSIGNED,<RESERVED>..<RESERVED>
+1D129-1D1DD,DISALLOWED,MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL PES SUBPUNCTIS
+1D1DE-1D1FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1D200-1D245,DISALLOWED,GREEK VOCAL NOTATION SYMBOL-1..GREEK MUSICAL LEIMMA
+1D246-1D2FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1D300-1D356,DISALLOWED,MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D357-1D35F,UNASSIGNED,<RESERVED>..<RESERVED>
+1D360-1D371,DISALLOWED,COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D372-1D3FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1D400-1D454,DISALLOWED,MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D455,UNASSIGNED,<RESERVED>
+1D456-1D49C,DISALLOWED,MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49D,UNASSIGNED,<RESERVED>
+1D49E-1D49F,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A0-1D4A1,UNASSIGNED,<RESERVED>..<RESERVED>
+1D4A2,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL G
+1D4A3-1D4A4,UNASSIGNED,<RESERVED>..<RESERVED>
+1D4A5-1D4A6,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A7-1D4A8,UNASSIGNED,<RESERVED>..<RESERVED>
+1D4A9-1D4AC,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AD,UNASSIGNED,<RESERVED>
+1D4AE-1D4B9,DISALLOWED,MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BA,UNASSIGNED,<RESERVED>
+1D4BB,DISALLOWED,MATHEMATICAL SCRIPT SMALL F
+1D4BC,UNASSIGNED,<RESERVED>
+1D4BD-1D4C3,DISALLOWED,MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C4,UNASSIGNED,<RESERVED>
+1D4C5-1D505,DISALLOWED,MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D506,UNASSIGNED,<RESERVED>
+1D507-1D50A,DISALLOWED,MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50B-1D50C,UNASSIGNED,<RESERVED>..<RESERVED>
+1D50D-1D514,DISALLOWED,MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D515,UNASSIGNED,<RESERVED>
+1D516-1D51C,DISALLOWED,MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51D,UNASSIGNED,<RESERVED>
+1D51E-1D539,DISALLOWED,MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53A,UNASSIGNED,<RESERVED>
+1D53B-1D53E,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D53F,UNASSIGNED,<RESERVED>
+1D540-1D544,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D545,UNASSIGNED,<RESERVED>
+1D546,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D547-1D549,UNASSIGNED,<RESERVED>..<RESERVED>
+1D54A-1D550,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D551,UNASSIGNED,<RESERVED>
+1D552-1D6A5,DISALLOWED,MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A6-1D6A7,UNASSIGNED,<RESERVED>..<RESERVED>
+1D6A8-1D7CB,DISALLOWED,MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CC-1D7CD,UNASSIGNED,<RESERVED>..<RESERVED>
+1D7CE-1D7FF,DISALLOWED,MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1D800-1EFFF,UNASSIGNED,<RESERVED>..<RESERVED>
+1F000-1F02B,DISALLOWED,MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F02C-1F02F,UNASSIGNED,<RESERVED>..<RESERVED>
+1F030-1F093,DISALLOWED,DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+1F094-1F0FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1F100-1F10A,DISALLOWED,DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+1F10B-1F10F,UNASSIGNED,<RESERVED>..<RESERVED>
+1F110-1F12E,DISALLOWED,PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
+1F12F-1F130,UNASSIGNED,<RESERVED>..<RESERVED>
+1F131,DISALLOWED,SQUARED LATIN CAPITAL LETTER B
+1F132-1F13C,UNASSIGNED,<RESERVED>..<RESERVED>
+1F13D,DISALLOWED,SQUARED LATIN CAPITAL LETTER N
+1F13E,UNASSIGNED,<RESERVED>
+1F13F,DISALLOWED,SQUARED LATIN CAPITAL LETTER P
+1F140-1F141,UNASSIGNED,<RESERVED>..<RESERVED>
+1F142,DISALLOWED,SQUARED LATIN CAPITAL LETTER S
+1F143-1F145,UNASSIGNED,<RESERVED>..<RESERVED>
+1F146,DISALLOWED,SQUARED LATIN CAPITAL LETTER W
+1F147-1F149,UNASSIGNED,<RESERVED>..<RESERVED>
+1F14A-1F14E,DISALLOWED,SQUARED HV..SQUARED PPV
+1F14F-1F156,UNASSIGNED,<RESERVED>..<RESERVED>
+1F157,DISALLOWED,NEGATIVE CIRCLED LATIN CAPITAL LETTER H
+1F158-1F15E,UNASSIGNED,<RESERVED>..<RESERVED>
+1F15F,DISALLOWED,NEGATIVE CIRCLED LATIN CAPITAL LETTER P
+1F160-1F178,UNASSIGNED,<RESERVED>..<RESERVED>
+1F179,DISALLOWED,NEGATIVE SQUARED LATIN CAPITAL LETTER J
+1F17A,UNASSIGNED,<RESERVED>
+1F17B-1F17C,DISALLOWED,NEGATIVE SQUARED LATIN CAPITAL LETTER L..NEGATIVE SQUARED LATIN CAPITAL LETTER M
+1F17D-1F17E,UNASSIGNED,<RESERVED>..<RESERVED>
+1F17F,DISALLOWED,NEGATIVE SQUARED LATIN CAPITAL LETTER P
+1F180-1F189,UNASSIGNED,<RESERVED>..<RESERVED>
+1F18A-1F18D,DISALLOWED,CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P..NEGATIVE SQUARED SA
+1F18E-1F18F,UNASSIGNED,<RESERVED>..<RESERVED>
+1F190,DISALLOWED,SQUARE DJ
+1F191-1F1FF,UNASSIGNED,<RESERVED>..<RESERVED>
+1F200,DISALLOWED,SQUARE HIRAGANA HOKA
+1F201-1F20F,UNASSIGNED,<RESERVED>..<RESERVED>
+1F210-1F231,DISALLOWED,SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-6253
+1F232-1F23F,UNASSIGNED,<RESERVED>..<RESERVED>
+1F240-1F248,DISALLOWED,TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F249-1FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+1FFFE-1FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+20000-2A6D6,PVALID,"<CJK IDEOGRAPH EXTENSION B, FIRST>..<CJK IDEOGRAPH EXTENSION B, LAST>"
+2A6D7-2A6FF,UNASSIGNED,<RESERVED>..<RESERVED>
+2A700-2B734,PVALID,"<CJK IDEOGRAPH EXTENSION C, FIRST>..<CJK IDEOGRAPH EXTENSION C, LAST>"
+2B735-2F7FF,UNASSIGNED,<RESERVED>..<RESERVED>
+2F800-2FA1D,DISALLOWED,CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+2FA1E-2FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+2FFFE-2FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+30000-3FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+3FFFE-3FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+40000-4FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+4FFFE-4FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+50000-5FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+5FFFE-5FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+60000-6FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+6FFFE-6FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+70000-7FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+7FFFE-7FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+80000-8FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+8FFFE-8FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+90000-9FFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+9FFFE-9FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+A0000-AFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+AFFFE-AFFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+B0000-BFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+BFFFE-BFFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+C0000-CFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+CFFFE-CFFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+D0000-DFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+DFFFE-DFFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
+E0000,UNASSIGNED,<RESERVED>
+E0001,DISALLOWED,LANGUAGE TAG
+E0002-E001F,UNASSIGNED,<RESERVED>..<RESERVED>
+E0020-E007F,DISALLOWED,TAG SPACE..CANCEL TAG
+E0080-E00FF,UNASSIGNED,<RESERVED>..<RESERVED>
+E0100-E01EF,DISALLOWED,VARIATION SELECTOR-17..VARIATION SELECTOR-256
+E01F0-EFFFD,UNASSIGNED,<RESERVED>..<RESERVED>
+EFFFE-10FFFF,DISALLOWED,<NOT A CHARACTER>..<NOT A CHARACTER>
diff --git a/tools/import-messages.pl b/tools/import-messages.pl
new file mode 100644
index 0000000..4c13a85
--- /dev/null
+++ b/tools/import-messages.pl
@@ -0,0 +1,326 @@
+#!/usr/bin/perl
+#
+# Copyright �� 2013 Vivek Dasmohapatra <vivek(a)collabora.co.uk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# * The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+=head1
+
+Take a single-language messages file and merge it back in to the
+NetSurf master messaged (i10n) file.
+
+=cut
+
+use strict;
+
+use Getopt::Long ();
+use Fcntl qw( O_CREAT O_EXCL O_WRONLY O_APPEND O_RDONLY O_WRONLY O_TRUNC );
+
+use constant GETOPT_OPTS => qw( auto_abbrev no_getopt_compat bundling );
+use constant GETOPT_SPEC =>
+ qw( output|o=s
+ input|i=s
+ lang|l=s
+ plat|platform|p=s
+ format|fmt|f=s
+ import|I=s
+ help|h|? );
+
+# default option values:
+my %opt = qw( plat any format messages );
+
+sub input_stream ($;$);
+sub output_stream ();
+sub usage ();
+sub parser ();
+
+sub main ()
+{
+ my $input;
+ my $output;
+ my $import;
+ my $parser;
+ my $opt_ok;
+ my @input;
+ my %message;
+ my $last_key;
+ my $last_plat;
+
+ # option parsing:
+ Getopt::Long::Configure( GETOPT_OPTS );
+ $opt_ok = Getopt::Long::GetOptions( \%opt, GETOPT_SPEC );
+
+ # allow input, import & output to be specified as non-option arguments:
+ if( @ARGV ) { $opt{input } ||= shift( @ARGV ) }
+ if( @ARGV ) { $opt{import} ||= shift( @ARGV ) }
+ if( @ARGV ) { $opt{output} ||= shift( @ARGV ) }
+
+ # open the appropriate streams and get the formatter and headers:
+ if( $opt_ok )
+ {
+ $input = input_stream( $opt{input} );
+ $import = input_stream( $opt{import}, 'import-file' );
+ $parser = parser();
+ $opt{plat} ||= 'any';
+ }
+
+ # double check the options are sane (and we weren't asked for the help)
+ if( !$opt_ok || $opt{help} || $opt{lang} !~ /^[a-z]{2}$/ )
+ {
+ usage();
+ }
+
+ @input = <$input>;
+ $output = output_stream();
+
+ $parser->( \%message, $import );
+
+ foreach ( @input )
+ {
+ use bytes;
+
+ my( $lang, $plat, $key );
+
+ if( /^([a-z]{2})\.([^.]+)\.([^:]+):/ )
+ {
+ ( $lang, $plat, $key ) = ( $1, $2, $3 );
+ }
+
+ if( $key || $message{ $last_key } )
+ {
+ #print( $output "## $last_key -> $key\n" );
+ # the key changed but we have a message for it still pending:
+ if( $last_key && $message{ $last_key } && ($key ne $last_key) )
+ {
+ my $plt = $last_plat;
+ my $str = $message{ $last_key };
+ my $msg = qq|$opt{lang}.$last_plat.$last_key:$str\n|;
+
+ print( $output $msg );
+ delete( $message{ $last_key } );
+
+ # if the line following our new translation is not blank,
+ # generate a synthetic group-separator:
+ if( !/^\s*$/ ) { print( $output "\n") }
+ }
+
+ $last_key = $key;
+ $last_plat = $plat;
+
+ if( $lang eq $opt{lang} )
+ {
+ my $val = $message{ $key };
+ if( $val &&
+ ( $opt{plat} eq 'any' || # all platforms ok
+ $opt{plat} eq $plat ) ) # specified platform matched
+ {
+ print( $output qq|$1.$2.$3:$val\n| );
+ delete( $message{ $key } );
+ next;
+ }
+ }
+ }
+
+ print( $output $_ );
+ }
+}
+
+main();
+
+sub usage ()
+{
+ my @fmt = map { s/::$//; $_ } keys(%{$::{'msgfmt::'}});
+ print( STDERR <<TXT );
+usage:
+ $0 -l lang-code \
+ [-p platform] [-f format] \
+ [-o output-file] [-i input-file] [-I import-file]
+
+ $0 -l lang-code ��� [input-file [import-file [output-file]]]
+
+ lang-code : en fr ko ��� (no default)
+ platform : any gtk ami (default 'any')
+ format : @fmt (default 'messages')
+ input-file : defaults to standard input
+ output-file: defaults to standard output
+ import-file: no default
+
+ The input-file may be the same as the output-file, in which case
+ it will be altered in place.
+TXT
+ exit(1);
+}
+
+sub input_stream ($;$)
+{
+ my $file = shift();
+ my $must_exist = shift();
+
+ if( $file )
+ {
+ my $ifh;
+
+ sysopen( $ifh, $file, O_RDONLY ) ||
+ die( "$0: Failed to open input file $file: $!\n" );
+
+ return $ifh;
+ }
+
+ if( $must_exist )
+ {
+ print( STDERR "No file specified for $must_exist\n" );
+ usage();
+ }
+
+ return \*STDIN;
+}
+
+sub output_stream ()
+{
+ if( $opt{output} )
+ {
+ my $ofh;
+
+ sysopen( $ofh, $opt{output}, O_CREAT|O_TRUNC|O_WRONLY ) ||
+ die( "$0: Failed to open output file $opt{output}: $!\n" );
+
+ return $ofh;
+ }
+
+ return \*STDOUT;
+}
+
+sub parser ()
+{
+ my $name = $opt{format};
+ my $func = "msgfmt::$name"->UNIVERSAL::can("parse");
+
+ return $func || die( "No handler found for format '$name'\n" );
+}
+
+# format implementations:
+{
+ package msgfmt::java;
+
+ sub unescape { $_[0] =~ s/\\([^abfnrtv])/$1/g; $_[0] }
+ sub parse
+ {
+ my $cache = shift();
+ my $stream = shift();
+
+ while ( <$stream> )
+ {
+ if( /([^#]\S+)\s*=\s?(.*)/ )
+ {
+ my $key = $1;
+ my $val = $2;
+ $cache->{ $key } = unescape( $val );
+ }
+ }
+ }
+}
+
+{
+ package msgfmt::messages; # native netsurf format
+
+ sub parse
+ {
+ my $cache = shift();
+ my $stream = shift();
+
+ while ( <$stream> )
+ {
+ if( /^([a-z]{2})\.([^.]+)\.([^:]+):(.*)/ )
+ {
+ my( $lang, $plat, $key, $val ) = ( $1, $2, $3, $4 );
+
+ if( $lang ne $opt{lang} ) { next }
+ if( $opt{plat} ne 'any' &&
+ $opt{plat} ne $plat &&
+ 'all' ne $plat ) { next }
+
+ $cache->{ $key } = $val;
+ }
+ }
+ }
+}
+
+{
+ package msgfmt::transifex;
+ use base 'msgfmt::java';
+
+ # the differences between transifex and java properties only matter in
+ # the outward direction: During import they can be treated the same way
+}
+
+{
+ package msgfmt::android;
+
+ ANDROID_XML:
+ {
+ package msgfmt::android::xml;
+
+ my @stack;
+ my $data;
+ my $key;
+ our $cache;
+
+ sub StartDocument ($) { @stack = (); $key = '' }
+ sub Text ($) { if( $key ) { $data .= $_ } }
+ sub PI ($$$) { }
+ sub EndDocument ($) { }
+
+ sub EndTag ($$)
+ {
+ pop( @stack );
+
+ if( !$key ) { return; }
+
+ $cache->{ $key } = $data;
+ $data = $key = '';
+ }
+
+ sub StartTag ($$)
+ {
+ push( @stack, $_[1] );
+
+ if( "@stack" eq "resources string" )
+ {
+ $data = '';
+ $key = $_{ name };
+ }
+ }
+ }
+
+ sub parse
+ {
+ require XML::Parser;
+
+ if( !$XML::Parser::VERSION )
+ {
+ die("XML::Parser required for android format support\n");
+ }
+
+ $msgfmt::android::xml::cache = shift();
+ my $stream = shift();
+ my $parser = XML::Parser->new( Style => 'Stream',
+ Pkg => 'msgfmt::android::xml' );
+ $parser->parse( $stream );
+ }
+}
diff --git a/tools/jenkins-build.sh b/tools/jenkins-build.sh
new file mode 100755
index 0000000..d31b233
--- /dev/null
+++ b/tools/jenkins-build.sh
@@ -0,0 +1,486 @@
+#!/bin/bash
+#
+# Copyright �� 2013 Vincent Sanders <vince(a)netsurf-browser.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# * The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+# NetSurf continuous integration build script for jenkins
+#
+# This script is executed by jenkins to build netsurf itself
+#
+# Usage: jenkins-build.sh
+#
+
+# TARGET is set to the frontend target to build
+# HOST is set to the identifier of the toolchain doing the building
+# CC is the compiler (gcc or clang)
+# BUILD_NUMBER is the CI build number
+
+#####
+
+# set defaults - this is not retrivable from the jenkins environment
+OLD_ARTIFACT_COUNT=25
+
+################# Parameter and environment setup #####################
+
+#identifier for this specific build
+IDENTIFIER="$CC-${BUILD_NUMBER}"
+
+# Identifier for build which will be cleaned
+OLD_IDENTIFIER="$CC-$((BUILD_NUMBER - ${OLD_ARTIFACT_COUNT}))"
+
+# default atari architecture - bletch
+ATARIARCH=68020-60
+
+# make tool
+MAKE=make
+
+# NetSurf version number haiku needs it for package name
+NETSURF_VERSION="3.11"
+
+# Ensure the combination of target and toolchain works and set build
+# specific parameters too
+case ${TARGET} in
+ "riscos")
+ case ${HOST} in
+ "arm-unknown-riscos")
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST})\""
+ exit 1
+ ;;
+
+ esac
+
+ PKG_SRC=netsurf
+ PKG_SFX=.zip
+ ;;
+
+ "haiku")
+ case ${HOST} in
+ "i586-pc-haiku")
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST})\""
+ exit 1
+ ;;
+
+ esac
+
+ PKG_SRC="netsurf_x86-${NETSURF_VERSION}-1-x86_gcc2"
+ PKG_SFX=.hpkg
+ ;;
+
+
+ "windows")
+ case ${HOST} in
+ "i686-w64-mingw32")
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST})\""
+ exit 1
+ ;;
+
+ esac
+
+ PKG_SRC=netsurf-installer
+ PKG_SFX=.exe
+ ;;
+
+
+ "cocoa")
+ case ${HOST} in
+ "x86_64-apple-darwin14.5.0")
+ PATH=/opt/local/bin:/opt/local/sbin:${PATH}
+ ;;
+
+ "i686-apple-darwin10")
+ ;;
+
+ "powerpc-apple-darwin9")
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST})\""
+ exit 1
+ ;;
+
+ esac
+
+ IDENTIFIER="${HOST}-${IDENTIFIER}"
+ OLD_IDENTIFIER="${HOST}-${OLD_IDENTIFIER}"
+ PKG_SRC=NetSurf
+ PKG_SFX=.dmg
+ ;;
+
+
+ "amiga")
+ case ${HOST} in
+ "ppc-amigaos")
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST})\""
+ exit 1
+ ;;
+
+ esac
+
+ PKG_SRC=NetSurf_Amiga/netsurf
+ PKG_SFX=.lha
+ ;;
+
+
+ "amigaos3")
+ case ${HOST} in
+ "m68k-unknown-amigaos")
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST})\""
+ exit 1
+ ;;
+
+ esac
+
+ PKG_SRC=NetSurf_Amiga/netsurf
+ PKG_SFX=.lha
+ ;;
+
+
+ "atari")
+ case ${HOST} in
+ "m68k-atari-mint")
+ PKG_SRC=ns020
+ PKG_SFX=.zip
+ ;;
+
+ "m5475-atari-mint")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/m5475-atari-mint/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/m5475-atari-mint/cross/bin
+ ATARIARCH=v4e
+ PKG_SRC=nsv4e
+ PKG_SFX=.zip
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST})\""
+ exit 1
+ ;;
+
+ esac
+
+ IDENTIFIER="${HOST}-${IDENTIFIER}"
+ OLD_IDENTIFIER="${HOST}-${OLD_IDENTIFIER}"
+ ;;
+
+
+ "gtk2")
+ case ${HOST} in
+ "x86_64-linux-gnu")
+ ;;
+
+ "arm-linux-gnueabihf")
+ ;;
+
+ "aarch64-linux-gnu")
+ ;;
+
+ amd64-unknown-openbsd*)
+ MAKE=gmake
+ ;;
+
+ x86_64-unknown-freebsd*)
+ MAKE=gmake
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST}\""
+ exit 1
+ ;;
+
+ esac
+
+ IDENTIFIER="${HOST}-${IDENTIFIER}"
+ OLD_IDENTIFIER="${HOST}-${OLD_IDENTIFIER}"
+ PKG_SRC=nsgtk2
+ PKG_SFX=
+ ;;
+
+
+ "gtk3")
+ case ${HOST} in
+ "x86_64-linux-gnu")
+ ;;
+
+ "arm-linux-gnueabihf")
+ ;;
+
+ "aarch64-linux-gnu")
+ ;;
+
+ amd64-unknown-openbsd*)
+ MAKE=gmake
+ ;;
+
+ x86_64-unknown-freebsd*)
+ MAKE=gmake
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST}\""
+ exit 1
+ ;;
+
+ esac
+
+ IDENTIFIER="${HOST}-${IDENTIFIER}"
+ OLD_IDENTIFIER="${HOST}-${OLD_IDENTIFIER}"
+ PKG_SRC=nsgtk3
+ PKG_SFX=
+ ;;
+
+
+ "framebuffer")
+ case ${HOST} in
+ "x86_64-linux-gnu")
+ ;;
+
+ arm-linux-gnueabihf)
+ ;;
+
+ "aarch64-linux-gnu")
+ ;;
+
+ "i686-apple-darwin10")
+ ;;
+
+ "powerpc-apple-darwin9")
+ ;;
+
+ amd64-unknown-openbsd*)
+ MAKE=gmake
+ ;;
+
+ x86_64-unknown-freebsd*)
+ MAKE=gmake
+ ;;
+
+ "arm-unknown-riscos")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ "m68k-atari-mint")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ "m5475-atari-mint")
+ ATARIARCH=v4e
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ "i686-w64-mingw32")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ "ppc-amigaos")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ "m68k-unknown-amigaos")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" cannot be built on \"${HOST})\""
+ exit 1
+ ;;
+
+ esac
+
+ IDENTIFIER="${HOST}-${IDENTIFIER}"
+ OLD_IDENTIFIER="${HOST}-${OLD_IDENTIFIER}"
+ PKG_SRC=nsfb
+ PKG_SFX=
+ ;;
+
+
+ "monkey")
+ # monkey target can be built anywhere
+ case ${HOST} in
+ amd64-unknown-openbsd*)
+ MAKE=gmake
+ ;;
+
+ x86_64-unknown-freebsd*)
+ MAKE=gmake
+ ;;
+
+ "arm-unknown-riscos")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ # headers and compiler combination throw these warnings
+ export CFLAGS="-Wno-redundant-decls -Wno-parentheses"
+ export LDFLAGS=-lcares
+ ;;
+
+ "m68k-atari-mint")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ "m5475-atari-mint")
+ ATARIARCH=v4e
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ "i686-w64-mingw32")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ "ppc-amigaos")
+ export GCCSDK_INSTALL_ENV=/opt/netsurf/${HOST}/env
+ export GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/${HOST}/cross/bin
+ ;;
+
+ *)
+ echo "Target \"${TARGET}\" generic build on \"${HOST})\""
+ ;;
+
+ esac
+
+ IDENTIFIER="${HOST}-${IDENTIFIER}"
+ OLD_IDENTIFIER="${HOST}-${OLD_IDENTIFIER}"
+ PKG_SRC=nsmonkey
+ PKG_SFX=
+ ;;
+
+ *)
+ # TARGET must be in the environment and set correctly
+ echo "Unkown TARGET \"${TARGET}\""
+ exit 1
+ ;;
+
+esac
+
+# setup environment
+export PREFIX=${JENKINS_HOME}/artifacts-${HOST}
+export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig
+export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PREFIX}/lib
+export PATH=${PATH}:${PREFIX}/bin
+
+# configure ccache for clang
+if [ "${CC}" = "clang" ];then
+ export CCACHE_CPP2=yes
+ export CC="clang -Qunused-arguments"
+fi
+
+########### Use distcc if present ######
+
+DISTCC=distcc
+PARALLEL=1
+HAVE_DISTCC=$(${DISTCC} --version >/dev/null 2>&1 && echo "true" || echo "false")
+if [ ${HAVE_DISTCC} = "true" ];then
+ PARALLEL=$(${DISTCC} -j)
+ export PATH=/usr/lib/distcc:${PATH}
+ export DISTCC_DIR=${JENKINS_HOME}
+fi
+
+
+########### Prepare a Makefile.config ##################
+
+rm -f Makefile.config
+cat > Makefile.config <<EOF
+override NETSURF_LOG_LEVEL := DEBUG
+EOF
+
+########### Additional environment info ########
+
+uname -a
+
+
+########### Build from source ##################
+
+# Clean first
+${MAKE} clean
+
+# Do the Build
+${MAKE} -j ${PARALLEL} -k CI_BUILD=${BUILD_NUMBER} ATARIARCH=${ATARIARCH} Q=
+
+
+############ Package artifact construction ################
+
+# build the package file
+${MAKE} -k CI_BUILD=${BUILD_NUMBER} ATARIARCH=${ATARIARCH} PACKAGER="NetSurf Developers <support(a)netsurf-browser.org>" Q= package
+
+if [ ! -f "${PKG_SRC}${PKG_SFX}" ]; then
+ # unable to find package file
+ exit 1
+fi
+
+# create package checksum files
+
+# find md5sum binary
+MD5SUM=md5sum;
+command -v ${MD5SUM} >/dev/null 2>&1 || MD5SUM=md5
+command -v ${MD5SUM} >/dev/null 2>&1 || MD5SUM=echo
+
+# find sha256 binary name
+SHAR256SUM=sha256sum
+command -v ${SHAR256SUM} >/dev/null 2>&1 || SHAR256SUM=sha256
+command -v ${SHAR256SUM} >/dev/null 2>&1 || SHAR256SUM=echo
+
+${MD5SUM} "${PKG_SRC}${PKG_SFX}" > ${PKG_SRC}.md5
+${SHAR256SUM} "${PKG_SRC}${PKG_SFX}" > ${PKG_SRC}.sha256
+
+
+############ Package artifact deployment ################
+
+#destination for package artifacts
+DESTDIR=/srv/ci.netsurf-browser.org/html/builds/${TARGET}/
+
+NEW_ARTIFACT_TARGET="NetSurf-${IDENTIFIER}"
+OLD_ARTIFACT_TARGETS=""
+
+for SUFFIX in "${PKG_SFX}" .md5 .sha256;do
+ # copy the file to the output - always use scp as it works local or remote
+ scp "${PKG_SRC}${SUFFIX}" netsurf@ci.netsurf-browser.org:${DESTDIR}/${NEW_ARTIFACT_TARGET}${SUFFIX}
+
+ # remove the local file artifact
+ rm -f "${PKG_SRC}${SUFFIX}"
+
+ OLD_ARTIFACT_TARGETS="${OLD_ARTIFACT_TARGETS} ${DESTDIR}/NetSurf-${OLD_IDENTIFIER}${SUFFIX}"
+done
+
+
+############ Expired package artifact removal and latest linking ##############
+
+
+ssh netsurf(a)ci.netsurf-browser.org "rm -f ${OLD_ARTIFACT_TARGETS} ${DESTDIR}/LATEST && echo "${NEW_ARTIFACT_TARGET}${PKG_SFX}" > ${DESTDIR}/LATEST"
diff --git a/tools/memanalyze.pl b/tools/memanalyze.pl
new file mode 100755
index 0000000..57e107d
--- /dev/null
+++ b/tools/memanalyze.pl
@@ -0,0 +1,380 @@
+#!/usr/bin/env perl
+#
+# Example input:
+#
+# MEM mprintf.c:1094 malloc(32) = e5718
+# MEM mprintf.c:1103 realloc(e5718, 64) = e6118
+# MEM sendf.c:232 free(f6520)
+
+my $mallocs=0;
+my $callocs=0;
+my $reallocs=0;
+my $strdups=0;
+my $showlimit;
+
+while(1) {
+ if($ARGV[0] eq "-v") {
+ $verbose=1;
+ shift @ARGV;
+ }
+ elsif($ARGV[0] eq "-t") {
+ $trace=1;
+ shift @ARGV;
+ }
+ elsif($ARGV[0] eq "-l") {
+ # only show what alloc that caused a memlimit failure
+ $showlimit=1;
+ shift @ARGV;
+ }
+ else {
+ last;
+ }
+}
+
+my $maxmem;
+
+sub newtotal {
+ my ($newtot)=@_;
+ # count a max here
+
+ if($newtot > $maxmem) {
+ $maxmem= $newtot;
+ }
+}
+
+my $file = $ARGV[0];
+
+if(! -f $file) {
+ print "Usage: memanalyze.pl [options] <dump file>\n",
+ "Options:\n",
+ " -l memlimit failure displayed\n",
+ " -v Verbose\n",
+ " -t Trace\n";
+ exit;
+}
+
+open(FILE, "<$file");
+
+if($showlimit) {
+ while(<FILE>) {
+ if(/^LIMIT.*memlimit$/) {
+ print $_;
+ last;
+ }
+ }
+ close(FILE);
+ exit;
+}
+
+
+
+while(<FILE>) {
+ chomp $_;
+ $line = $_;
+
+ if($line =~ /^LIMIT ([^ ]*):(\d*) (.*)/) {
+ # new memory limit test prefix
+ my $i = $3;
+ my ($source, $linenum) = ($1, $2);
+ if($trace && ($i =~ /([^ ]*) reached memlimit/)) {
+ print "LIMIT: $1 returned error at $source:$linenum\n";
+ }
+ }
+ elsif($line =~ /^MEM ([^ ]*):(\d*) (.*)/) {
+ # generic match for the filename+linenumber
+ $source = $1;
+ $linenum = $2;
+ $function = $3;
+
+ if($function =~ /free\(0x([0-9a-f]*)/) {
+ $addr = $1;
+ if(!exists $sizeataddr{$addr}) {
+ print "FREE ERROR: No memory allocated: $line\n";
+ }
+ elsif(-1 == $sizeataddr{$addr}) {
+ print "FREE ERROR: Memory freed twice: $line\n";
+ print "FREE ERROR: Previously freed at: ".$getmem{$addr}."\n";
+ }
+ else {
+ $totalmem -= $sizeataddr{$addr};
+ if($trace) {
+ print "FREE: malloc at ".$getmem{$addr}." is freed again at $source:$linenum\n";
+ printf("FREE: %d bytes freed, left allocated: $totalmem bytes\n", $sizeataddr{$addr});
+ }
+
+ newtotal($totalmem);
+ $frees++;
+
+ $sizeataddr{$addr}=-1; # set -1 to mark as freed
+ $getmem{$addr}="$source:$linenum";
+
+ }
+ }
+ elsif($function =~ /malloc\((\d*)\) = 0x([0-9a-f]*)/) {
+ $size = $1;
+ $addr = $2;
+
+ if($sizeataddr{$addr}>0) {
+ # this means weeeeeirdo
+ print "Mixed debug compile, rebuild curl now\n";
+ }
+
+ $sizeataddr{$addr}=$size;
+ $totalmem += $size;
+
+ if($trace) {
+ print "MALLOC: malloc($size) at $source:$linenum",
+ " makes totally $totalmem bytes\n";
+ }
+
+ newtotal($totalmem);
+ $mallocs++;
+
+ $getmem{$addr}="$source:$linenum";
+ }
+ elsif($function =~ /calloc\((\d*),(\d*)\) = 0x([0-9a-f]*)/) {
+ $size = $1*$2;
+ $addr = $3;
+
+ $arg1 = $1;
+ $arg2 = $2;
+
+ if($sizeataddr{$addr}>0) {
+ # this means weeeeeirdo
+ print "Mixed debug compile, rebuild curl now\n";
+ }
+
+ $sizeataddr{$addr}=$size;
+ $totalmem += $size;
+
+ if($trace) {
+ print "CALLOC: calloc($arg1,$arg2) at $source:$linenum",
+ " makes totally $totalmem bytes\n";
+ }
+
+ newtotal($totalmem);
+ $callocs++;
+
+ $getmem{$addr}="$source:$linenum";
+ }
+ elsif($function =~ /realloc\(0x([0-9a-f]*), (\d*)\) = 0x([0-9a-f]*)/) {
+ $oldaddr = $1;
+ $newsize = $2;
+ $newaddr = $3;
+
+ $totalmem -= $sizeataddr{$oldaddr};
+ if($trace) {
+ printf("REALLOC: %d less bytes and ", $sizeataddr{$oldaddr});
+ }
+ $sizeataddr{$oldaddr}=0;
+
+ $totalmem += $newsize;
+ $sizeataddr{$newaddr}=$newsize;
+
+ if($trace) {
+ printf("%d more bytes ($source:$linenum)\n", $newsize);
+ }
+
+ newtotal($totalmem);
+ $reallocs++;
+
+ $getmem{$oldaddr}="";
+ $getmem{$newaddr}="$source:$linenum";
+ }
+ elsif($function =~ /strdup\(0x([0-9a-f]*)\) \((\d*)\) = 0x([0-9a-f]*)/) {
+ # strdup(a5b50) (8) = df7c0
+
+ $dup = $1;
+ $size = $2;
+ $addr = $3;
+ $getmem{$addr}="$source:$linenum";
+ $sizeataddr{$addr}=$size;
+
+ $totalmem += $size;
+
+ if($trace) {
+ printf("STRDUP: $size bytes at %s, makes totally: %d bytes\n",
+ $getmem{$addr}, $totalmem);
+ }
+
+ newtotal($totalmem);
+ $strdups++;
+ }
+ elsif($function =~ /strndup\(0x([0-9a-f]*), (\d*)\) \((\d*)\) = 0x([0-9a-f]*)/) {
+ # strndup(a5b50, 20) (8) = df7c0
+
+ $dup = $1;
+ $limit = $2;
+ $size = $3;
+ $addr = $4;
+ $getmem{$addr}="$source:$linenum";
+ $sizeataddr{$addr}=$size;
+
+ $totalmem += $size;
+
+ if($trace) {
+ printf("STRDUP: $size bytes at %s, makes totally: %d bytes\n",
+ $getmem{$addr}, $totalmem);
+ }
+
+ newtotal($totalmem);
+ $strdups++;
+ }
+ else {
+ print "Not recognized input line: $function\n";
+ }
+ }
+ # FD url.c:1282 socket() = 5
+ elsif($_ =~ /^FD ([^ ]*):(\d*) (.*)/) {
+ # generic match for the filename+linenumber
+ $source = $1;
+ $linenum = $2;
+ $function = $3;
+
+ if($function =~ /socket\(\) = (\d*)/) {
+ $filedes{$1}=1;
+ $getfile{$1}="$source:$linenum";
+ $openfile++;
+ }
+ elsif($function =~ /accept\(\) = (\d*)/) {
+ $filedes{$1}=1;
+ $getfile{$1}="$source:$linenum";
+ $openfile++;
+ }
+ elsif($function =~ /sclose\((\d*)\)/) {
+ if($filedes{$1} != 1) {
+ print "Close without open: $line\n";
+ }
+ else {
+ $filedes{$1}=0; # closed now
+ $openfile--;
+ }
+ }
+ }
+ # FILE url.c:1282 fopen("blabla") = 0x5ddd
+ elsif($_ =~ /^FILE ([^ ]*):(\d*) (.*)/) {
+ # generic match for the filename+linenumber
+ $source = $1;
+ $linenum = $2;
+ $function = $3;
+
+ if($function =~ /fopen\(\"([^\"]*)\",\"([^\"]*)\"\) = (\(nil\)|0x([0-9a-f]*))/) {
+ if($3 eq "(nil)") {
+ ;
+ }
+ else {
+ $fopen{$4}=1;
+ $fopenfile{$4}="$source:$linenum";
+ $fopens++;
+ }
+ }
+ # fclose(0x1026c8)
+ elsif($function =~ /fclose\(0x([0-9a-f]*)\)/) {
+ if(!$fopen{$1}) {
+ print "fclose() without fopen(): $line\n";
+ }
+ else {
+ $fopen{$1}=0;
+ $fopens--;
+ }
+ }
+ }
+ # GETNAME url.c:1901 getnameinfo()
+ elsif($_ =~ /^GETNAME ([^ ]*):(\d*) (.*)/) {
+ # not much to do
+ }
+
+ # ADDR url.c:1282 getaddrinfo() = 0x5ddd
+ elsif($_ =~ /^ADDR ([^ ]*):(\d*) (.*)/) {
+ # generic match for the filename+linenumber
+ $source = $1;
+ $linenum = $2;
+ $function = $3;
+
+ if($function =~ /getaddrinfo\(\) = (\(nil\)|0x([0-9a-f]*))/) {
+ my $add = $2;
+ if($add eq "(nil)") {
+ ;
+ }
+ else {
+ $addrinfo{$add}=1;
+ $addrinfofile{$add}="$source:$linenum";
+ $addrinfos++;
+ }
+ }
+ # fclose(0x1026c8)
+ elsif($function =~ /freeaddrinfo\(0x([0-9a-f]*)\)/) {
+ if(!$addrinfo{$1}) {
+ print "freeaddrinfo() without getaddrinfo(): $line\n";
+ }
+ else {
+ $addrinfo{$1}=0;
+ $addrinfos--;
+ }
+ }
+
+
+ }
+ else {
+ print "Not recognized prefix line: $line\n";
+ }
+}
+close(FILE);
+
+if($totalmem) {
+ print "Leak detected: memory still allocated: $totalmem bytes\n";
+
+ for(keys %sizeataddr) {
+ $addr = $_;
+ $size = $sizeataddr{$addr};
+ if($size > 0) {
+ print "At $addr, there's $size bytes.\t";
+ print " allocated by ".$getmem{$addr}."\n";
+ $allocs{$getmem{$addr}}++;
+ $amount{$getmem{$addr}} += $size;
+ }
+ }
+
+ print "Summary by location of allocation:\n";
+ print "Allocs\tBytes\tLocation\n";
+ for (sort { $amount{$b} <=> $amount{$a} } keys %allocs) {
+ print "$allocs{$_}\t$amount{$_}\t$_\n";
+ }
+}
+
+if($openfile) {
+ for(keys %filedes) {
+ if($filedes{$_} == 1) {
+ print "Open file descriptor created at ".$getfile{$_}."\n";
+ }
+ }
+}
+
+if($fopens) {
+ print "Open FILE handles left at:\n";
+ for(keys %fopen) {
+ if($fopen{$_} == 1) {
+ print "fopen() called at ".$fopenfile{$_}."\n";
+ }
+ }
+}
+
+if($addrinfos) {
+ print "IPv6-style name resolve data left at:\n";
+ for(keys %addrinfofile) {
+ if($addrinfo{$_} == 1) {
+ print "getaddrinfo() called at ".$addrinfofile{$_}."\n";
+ }
+ }
+}
+
+if($verbose) {
+ print "Mallocs: $mallocs\n",
+ "Reallocs: $reallocs\n",
+ "Callocs: $callocs\n",
+ "Strdups: $strdups\n",
+ "Frees: $frees\n",
+ "Allocations: ".($mallocs + $callocs + $reallocs + $strdups)."\n";
+
+ print "Maximum allocated: $maxmem\n";
+}
diff --git a/tools/split-messages.c b/tools/split-messages.c
new file mode 100644
index 0000000..0bce739
--- /dev/null
+++ b/tools/split-messages.c
@@ -0,0 +1,549 @@
+/**
+ * \file
+ * simple tool to split fat messages file without the capabilities of
+ * the full tool but without the dependancy on perl.
+ *
+ */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <zlib.h>
+
+#include "utils/errors.h"
+
+enum out_fmt {
+ OUTPUTFMT_NONE = 0,
+ OUTPUTFMT_MESSAGES,
+};
+
+/**
+ * parameters that control behaviour of tool
+ */
+struct param {
+ /**
+ * compress output
+ */
+ int compress;
+ /**
+ * select language
+ */
+ char *selected;
+ /**
+ * fallback language for items unavailable in selecte dlanguage
+ */
+ char *fallback;
+ int warnings;
+ char *platform;
+ enum out_fmt format;
+ char *infilename;
+ char *outfilename;
+};
+
+struct trnsltn_entry {
+ struct trnsltn_entry *next;
+ char *lang;
+ char *key;
+ char *value;
+};
+
+static nserror usage(int argc, char **argv)
+{
+ fprintf(stderr,
+ "Usage: %s -l lang [-z] [-d lang] [-W warning] [-o <file>] [-i <file>] [-p platform] [-f format] [<file> [<file>]]\n"
+ "Options:\n"
+ " -z Gzip output\n"
+ " -l lang Language to select for\n"
+ " -d lang Fallback language [default: en]\n"
+ " -W warning Warnings generated none, all [default: none]\n"
+ " -p platform Platform to select for any, gtk, ami [default: any]\n"
+ " -f format Output format [default: messages]\n"
+ " -i filename Input file\n"
+ " -o filename Output file\n",
+ argv[0]);
+ return NSERROR_OK;
+}
+
+/**
+ * process command line arguments
+ *
+ *
+ */
+static nserror process_cmdline(int argc, char **argv, struct param *param)
+{
+ int opt;
+
+ memset(param, 0, sizeof(*param));
+
+ while ((opt = getopt(argc, argv, "zl:d:W:o:i:p:f:")) != -1) {
+ switch (opt) {
+ case 'z':
+ param->compress = 1;
+ break;
+
+ case 'l':
+ param->selected = strdup(optarg);
+ break;
+
+ case 'd':
+ param->fallback = strdup(optarg);
+ break;
+
+ case 'W':
+ param->warnings = 1;
+ break;
+
+ case 'o':
+ param->outfilename = strdup(optarg);
+ break;
+
+ case 'i':
+ param->infilename = strdup(optarg);
+ break;
+
+ case 'p':
+ param->platform = strdup(optarg);
+ break;
+
+ case 'f':
+ if (strcmp(optarg, "messages") == 0) {
+ param->format = OUTPUTFMT_MESSAGES;
+ } else {
+ fprintf(stderr,
+ "output format %s not supported",
+ optarg);
+ usage(argc, argv);
+ return NSERROR_NOT_IMPLEMENTED;
+ }
+ break;
+
+ default:
+ usage(argc, argv);
+ return NSERROR_BAD_PARAMETER;
+ }
+ }
+
+ /* trailing filename arguments */
+ if (optind < argc) {
+ param->infilename = strdup(argv[optind]);
+ optind++;
+ }
+
+ if (optind < argc) {
+ param->outfilename = strdup(argv[optind]);
+ optind++;
+ }
+
+ /* parameter checks */
+ if (param->selected == NULL) {
+ fprintf(stderr, "A language to select must be specified\n");
+ usage(argc, argv);
+ return NSERROR_BAD_PARAMETER;
+ }
+
+ if (param->infilename == NULL) {
+ fprintf(stderr, "Input file required\n");
+ usage(argc, argv);
+ return NSERROR_BAD_PARAMETER;
+ }
+
+ if (param->outfilename == NULL) {
+ fprintf(stderr, "Output file required\n");
+ usage(argc, argv);
+ return NSERROR_BAD_PARAMETER;
+ }
+
+ if ((param->platform != NULL) &&
+ (strcmp(param->platform, "any") ==0)) {
+ free(param->platform);
+ param->platform = NULL;
+ }
+
+ /* defaults */
+ if (param->fallback == NULL) {
+ param->fallback = strdup("en");
+ }
+
+ if (param->format == OUTPUTFMT_NONE) {
+ param->format = OUTPUTFMT_MESSAGES;
+ }
+
+ return NSERROR_OK;
+}
+
+
+/**
+ * extract key/value from a line of input
+ *
+ * \retun NSERROR_OK and key_out and value_out updated
+ * NSERROR_NOT_FOUND if not a key/value input line
+ * NSERROR_INVALID if the line is and invalid format (missing colon)
+ */
+static nserror
+get_key_value(char *line, ssize_t linelen, char **key_out, char **value_out)
+{
+ char *key;
+ char *value;
+
+ /* skip leading whitespace for start of key */
+ for (key = line; *key != 0; key++) {
+ if ((*key != ' ') && (*key != '\t') && (*key != '\n')) {
+ break;
+ }
+ }
+
+ /* empty line or only whitespace */
+ if (*key == 0) {
+ return NSERROR_NOT_FOUND;
+ }
+
+ /* comment */
+ if (*key == '#') {
+ return NSERROR_NOT_FOUND;
+ }
+
+ /* get start of value */
+ for (value = key; *value != 0; value++) {
+ if (*value == ':') {
+ *value = 0;
+ value++;
+ break;
+ }
+ }
+
+ /* missing colon separator */
+ if (*value == 0) {
+ return NSERROR_INVALID;
+ }
+
+ /* remove delimiter from value */
+ if (line[linelen - 1] == '\n') {
+ linelen--;
+ line[linelen] = 0;
+ }
+
+ *key_out = key;
+ *value_out = value;
+ return NSERROR_OK;
+}
+
+
+/**
+ * extract language, platform and token elements from a string
+ */
+static nserror
+get_lang_plat_tok(char *str, char **lang_out, char **plat_out, char **tok_out)
+{
+ char *plat;
+ char *tok;
+
+ for (plat = str; *plat != 0; plat++) {
+ if (*plat == '.') {
+ *plat = 0;
+ plat++;
+ break;
+ }
+ }
+ if (*plat == 0) {
+ return NSERROR_INVALID;
+ }
+
+ for (tok = plat; *tok != 0; tok++) {
+ if (*tok == '.') {
+ *tok = 0;
+ tok++;
+ break;
+ }
+ }
+ if (*tok == 0) {
+ return NSERROR_INVALID;
+ }
+
+ *lang_out = str;
+ *plat_out = plat;
+ *tok_out = tok;
+
+ return NSERROR_OK;
+}
+
+
+/**
+ * reverse order of entries in a translation list
+ */
+static nserror
+translation_list_reverse(struct trnsltn_entry **tlist)
+{
+ struct trnsltn_entry *prev;
+ struct trnsltn_entry *next;
+ struct trnsltn_entry *curr;
+
+ prev = NULL;
+ next = NULL;
+ curr = *tlist;
+
+ while (curr != NULL) {
+ next = curr->next;
+ curr->next = prev;
+ prev = curr;
+ curr = next;
+ }
+
+ *tlist = prev;
+ return NSERROR_OK;
+}
+
+
+/**
+ * find a translation entry from a key
+ *
+ * \todo This implementation is imcomplete! it only considers the very
+ * first entry on the list. this introduces the odd ordering
+ * requirement for keys in the fatmessages file. This is done to avoid
+ * an O(n^2) list search for every line of input.
+ *
+ * \param tlist translation list head
+ * \param key The key of the translation to search for
+ * \param trans_out The sucessful result
+ * \return NSERROR_OK and trans_out updated on success else NSERROR_NOT_FOUND;
+ */
+static nserror
+translation_from_key(struct trnsltn_entry *tlist,
+ char *key,
+ struct trnsltn_entry **trans_out)
+{
+ if (tlist == NULL) {
+ return NSERROR_NOT_FOUND;
+ }
+
+ if (strcmp(tlist->key, key) != 0) {
+ return NSERROR_NOT_FOUND;
+ }
+
+ *trans_out = tlist;
+ return NSERROR_OK;
+}
+
+
+/**
+ * create and link an entry into translation list
+ */
+static nserror
+translation_add(struct trnsltn_entry **tlist,
+ const char *lang,
+ const char *key,
+ const char *value)
+{
+ struct trnsltn_entry *tnew;
+
+ tnew = malloc(sizeof(*tnew));
+ if (tnew == NULL) {
+ return NSERROR_NOMEM;
+ }
+ tnew->next = *tlist;
+ tnew->lang = strdup(lang);
+ tnew->key = strdup(key);
+ tnew->value = strdup(value);
+
+ *tlist = tnew;
+ return NSERROR_OK;
+}
+
+
+/**
+ * replace key and value on a translation entry
+ */
+static nserror
+translation_replace(struct trnsltn_entry *tran,
+ const char *lang,
+ const char *key,
+ const char *value)
+{
+ free(tran->lang);
+ tran->lang = strdup(lang);
+ free(tran->key);
+ tran->key = strdup(key);
+ free(tran->value);
+ tran->value = strdup(value);
+
+ return NSERROR_OK;
+}
+
+
+/**
+ * process a line of the input file
+ *
+ */
+static nserror
+messageline(struct param *param,
+ struct trnsltn_entry **tlist,
+ char *line, ssize_t linelen)
+{
+ nserror res;
+ char *key;
+ char *value;
+ char *lang;
+ char *plat;
+ char *tok;
+ struct trnsltn_entry *tran;
+
+ res = get_key_value(line, linelen, &key, &value);
+ if (res != NSERROR_OK) {
+ /* skip line as no valid key value pair found */
+ return res;
+ }
+
+ res = get_lang_plat_tok(key, &lang, &plat, &tok);
+ if (res != NSERROR_OK) {
+ /* malformed key */
+ return res;
+ }
+
+ if ((param->platform != NULL) &&
+ (strcmp(plat, "all") != 0) &&
+ (strcmp(plat, param->platform) != 0)) {
+ /* this translation is not for the selected platform */
+ return NSERROR_OK;
+ }
+
+ res = translation_from_key(*tlist, tok, &tran);
+ if (res == NSERROR_OK) {
+ if (strcmp(tran->lang, param->selected) != 0) {
+ /* current entry is not the selected language */
+ if (strcmp(lang, param->selected) == 0) {
+ /*
+ * new entry is in selected language and
+ * current entry is not
+ */
+ res = translation_replace(tran, lang, tok, value);
+ } else if ((strcmp(lang, param->fallback) != 0) &&
+ (strcmp(tran->lang, param->fallback) != 0)) {
+ /*
+ * new entry is in fallback language and
+ * current entry is not.
+ */
+ res = translation_replace(tran, lang, tok, value);
+ }
+ } else {
+ if (strcmp(tran->lang, lang) == 0) {
+ /* second entry with matching language */
+ res = translation_replace(tran, lang, tok, value);
+ }
+ }
+ } else if (res == NSERROR_NOT_FOUND) {
+ res = translation_add(tlist, lang, tok, value);
+ }
+
+ return res;
+}
+
+
+/**
+ * read fatmessages file and create a translation entry list
+ */
+static nserror
+fatmessages_read(struct param *param, struct trnsltn_entry **tlist)
+{
+ nserror res;
+ FILE *infile;
+ char *line = NULL;
+ size_t linealloc = 0;
+ ssize_t linelen;
+ int linenum = 0;
+
+ infile = fopen(param->infilename, "r");
+ if (infile == NULL) {
+ perror("Unable to open input file");
+ return NSERROR_NOT_FOUND;
+ }
+
+ while (1) {
+ linelen = getline(&line, &linealloc, infile);
+ if (linelen == -1) {
+ break;
+ }
+ linenum++;
+
+ res = messageline(param, tlist, line, linelen);
+ if ((res == NSERROR_INVALID) && (param->warnings > 0)) {
+ fprintf(stderr, "line %d Malformed: \"%s\"\n",
+ linenum, line);
+ }
+ }
+
+ fclose(infile);
+
+ res = translation_list_reverse(tlist);
+
+ return res;
+}
+
+
+/**
+ * write output in NetSurf messages format
+ */
+static nserror
+message_write(struct param *param, struct trnsltn_entry *tlist)
+{
+ gzFile outf;
+ const char *mode;
+
+ if (param->compress == 0) {
+ mode = "wbT";
+ } else {
+ mode = "wb9";
+ }
+
+ outf = gzopen(param->outfilename, mode);
+ if (outf == NULL) {
+ perror("Unable to open output file");
+ return NSERROR_PERMISSION;
+ }
+
+ gzprintf(outf,
+ "# This messages file is automatically generated from %s\n"
+ "# at build-time. Please go and edit that instead of this.\n\n",
+ param->infilename);
+
+ while (tlist != NULL) {
+ gzprintf(outf, "%s:%s\n", tlist->key, tlist->value);
+ tlist = tlist->next;
+ }
+
+ gzclose(outf);
+
+ return NSERROR_OK;
+}
+
+int main(int argc, char **argv)
+{
+ nserror res;
+ struct param param; /* control paramters */
+ struct trnsltn_entry *translations = NULL;
+
+ res = process_cmdline(argc, argv, ¶m);
+ if (res != NSERROR_OK) {
+ return EXIT_FAILURE;
+ }
+
+ res = fatmessages_read(¶m, &translations);
+ if (res != NSERROR_OK) {
+ return EXIT_FAILURE;
+ }
+
+ switch (param.format) {
+ case OUTPUTFMT_NONE:
+ res = NSERROR_OK;
+ break;
+
+ case OUTPUTFMT_MESSAGES:
+ res = message_write(¶m, translations);
+ break;
+ }
+
+ if (res != NSERROR_OK) {
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+}
diff --git a/tools/split-messages.pl b/tools/split-messages.pl
new file mode 100644
index 0000000..0504b24
--- /dev/null
+++ b/tools/split-messages.pl
@@ -0,0 +1,318 @@
+#!/usr/bin/perl
+#
+# Copyright 2013 Vivek Dasmohapatra <vivek(a)collabora.co.uk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# * The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+=head1
+
+Filter the NetSurf combined messages (i10n) file according to language
+and platform and generate output in a selection of formats for use
+both internally within netsurf and externally for translation
+services.
+
+=cut
+
+use strict;
+
+use Getopt::Long ();
+use Fcntl qw( O_CREAT O_EXCL O_WRONLY O_APPEND O_RDONLY O_WRONLY );
+
+use IO::Compress::Gzip;
+
+use constant GETOPT_OPTS => qw( auto_abbrev no_getopt_compat bundling );
+use constant GETOPT_SPEC =>
+ qw( output|o=s
+ input|i=s
+ lang|l=s
+ dlang|d=s
+ plat|platform|p=s
+ format|fmt|f=s
+ warning|W=s
+ gzip|z
+ help|h|? );
+
+# default option values:
+my %opt = qw( dlang en plat any format messages warning none );
+
+sub input_stream ();
+sub output_stream ();
+sub formatter ();
+sub static_section($);
+sub usage ();
+
+sub main ()
+{
+ my $input;
+ my $output;
+ my $format;
+ my $header;
+ my $footer;
+ my $opt_ok;
+
+ # option parsing:
+ Getopt::Long::Configure( GETOPT_OPTS );
+ $opt_ok = Getopt::Long::GetOptions( \%opt, GETOPT_SPEC );
+
+ # allow input and output to be specified as non-option arguments:
+ if( @ARGV ) { $opt{input } ||= shift( @ARGV ) }
+ if( @ARGV ) { $opt{output} ||= shift( @ARGV ) }
+
+ # open the appropriate streams and get the formatter and headers:
+ if( $opt_ok )
+ {
+ $input = input_stream();
+ $output = output_stream();
+ $format = formatter();
+ $header = static_section('header');
+ $footer = static_section('footer');
+ }
+
+ # double check the options are sane (and we weren't asked for the help)
+ if( !$opt_ok || $opt{help} || $opt{lang} !~ /^[a-z]{2}$/ || $opt{dlang} !~ /^[a-z]{2}$/ )
+ {
+ usage();
+ }
+
+ # we are good to go:
+ print( $output $header );
+
+ my $cur_key;
+
+ my $dlang_key;
+ my $dlang_val;
+
+ my $tran_out = 1;
+ my $tran_val;
+ my $tran_key;
+
+ while (<$input>)
+ {
+ # skip comment and empty lines
+ /^#/ && next;
+ /^\s*$/ && next;
+
+ # only parsing things that look like message lines:
+ if( /^([a-z]{2}).([^.]+).([^:]+):(.*)/ )
+ {
+ my( $lang, $plat, $key, $val ) = ( $1, $2, $3, $4 );
+
+ # skip the line if it is not for our target platform
+ if( $opt{plat} ne 'any' &&
+ $opt{plat} ne $plat &&
+ 'all' ne $plat )
+ {
+ next;
+ }
+
+ # On key change ensure a translation has been generated
+ if ($cur_key ne $key)
+ {
+ if ($tran_out == 0)
+ {
+ # No translaton for previous key
+ if ($cur_key eq $dlang_key)
+ {
+ print( $output $format->( $dlang_key, $dlang_val ) );
+ if( $opt{warning} eq "fb" )
+ {
+ warn( "warning: $dlang_key missing translation in $opt{lang} using $opt{dlang} instead" );
+ }
+ }
+ else
+ {
+ # No translation and nothing in default language
+ warn( "warning: $dlang_key missing translation in $opt{lang} and no fallback in $opt{dlang}" );
+ }
+ }
+ else
+ {
+ if (($opt{dlang} ne $opt{lang} ) && ($tran_key eq $dlang_key) && ($tran_val eq $dlang_val))
+ {
+ if( $opt{warning} eq "dup" )
+ {
+ warn( "warning: $tran_key value in $opt{lang} is same as in default $opt{dlang}" );
+ }
+ }
+ }
+ $cur_key = $key;
+ $tran_out = 0;
+ }
+
+ # capture the key/value in the default language
+ if( $lang eq $opt{dlang} )
+ {
+ $dlang_key = $key;
+ $dlang_val = $val;
+ }
+
+ # output if its the target language
+ if( $lang eq $opt{lang} ) {
+ print( $output $format->( $key, $val ) );
+ $tran_out = 1;
+ $tran_val = $val;
+ $tran_key = $key;
+ }
+ }
+ else
+ {
+ warn( "Malformed entry: $_" );
+ }
+ }
+
+ print( $output $footer );
+}
+
+main();
+
+sub usage ()
+{
+ my @fmt = map { s/::$//; $_ } keys(%{$::{'msgfmt::'}});
+ print(STDERR <<TXT );
+usage:
+ $0 -l lang-code [-d def-lang-code] [-W warning] \
+ [-o output-file] [-i input-file] [-p platform] [-f format] [-z]
+
+ $0 -l lang-code ... [input-file [output-file]]
+
+ lang-code : en fr ko ... (no default)
+ def-lang-code : en fr ko ... (default 'en')
+ warning : none, all (default 'none')
+ platform : any gtk ami (default 'any')
+ format : @fmt (default 'messages')
+ input-file : defaults to standard input
+ output-file : defaults to standard output
+TXT
+ exit(1);
+}
+
+sub input_stream ()
+{
+ if( $opt{input} )
+ {
+ my $ifh;
+
+ sysopen( $ifh, $opt{input}, O_RDONLY ) ||
+ die( "$0: Failed to open input file $opt{input}: $!\n" );
+
+ return $ifh;
+ }
+
+ return \*STDIN;
+}
+
+sub underlying_output_stream ()
+{
+ if( $opt{output} )
+ {
+ my $ofh;
+
+ sysopen( $ofh, $opt{output}, O_CREAT|O_EXCL|O_APPEND|O_WRONLY ) ||
+ die( "$0: Failed to open output file $opt{output}: $!\n" );
+
+ return $ofh;
+ }
+
+ return \*STDOUT;
+}
+
+sub output_stream ()
+{
+ my $ofh = underlying_output_stream();
+
+ if( $opt{gzip} )
+ {
+ $ofh = new IO::Compress::Gzip( $ofh, AutoClose => 1, -Level => 9 );
+ }
+
+ return $ofh;
+}
+
+sub formatter ()
+{
+ my $name = $opt{format};
+ my $func = "msgfmt::$name"->UNIVERSAL::can("format");
+
+ return $func || die( "No handler found for format '$name'\n" );
+}
+
+sub static_section ($)
+{
+ my $name = $opt{format};
+ my $sect = shift();
+ my $func = "msgfmt::$name"->UNIVERSAL::can( $sect );
+
+ return $func ? $func->() : "";
+}
+
+# format implementations:
+{
+ package msgfmt::java;
+
+ sub escape { $_[0] =~ s/([:'\\])/\\$1/g; $_[0] }
+ sub format { return join(' = ', $_[0], escape( $_[1] ) ) . "\n" }
+ sub header { "# autogenerated from " . ($opt{input} || '-stdin-') . "\n" }
+}
+
+{
+ package msgfmt::messages; # native netsurf format
+
+ sub format { return join( ":", @_ ) . "\n" }
+ sub header
+ {
+ my $in = $opt{input} || '-stdin-';
+ return <<TXT;
+# This messages file is automatically generated from $in
+# at build-time. Please go and edit that instead of this.\n
+TXT
+ }
+}
+
+{
+ package msgfmt::transifex;
+ use base 'msgfmt::java';
+
+ # transifex has the following quirks:
+ # \ processing is buggy - they re-process every \\ as a \
+ # so \\n, instead or producing literal '\n', is interpreted as \ ^J
+ # Additionally, although the java properties format specifies
+ # that ' should be \ escaped, transifex does not allow/support this:
+ sub escape { $_[0] =~ s/(:|\\(?![abfnrtv]))/\\$1/g; $_[0] }
+ sub format { return join(' = ', $_[0], escape( $_[1] ) ) . "\n" }
+}
+
+########### YAML ###########
+#{
+# package msgfmt::yaml;
+# use YAML qw(Dump Bless);
+# print Dump %data;
+#}
+
+{
+ package msgfmt::android;
+
+ sub header { qq|<?xml version="1.0" encoding="utf-8"?>\n<resources>\n| }
+ sub footer { qq|</resources>| }
+ sub format
+ {
+ use HTML::Entities qw(encode_entities);
+ my $escaped = encode_entities( $_[1], '<>&"' );
+ qq| <string name="$_[0]">$escaped</string>\n|;
+ }
+}
diff --git a/tools/test-netsurf b/tools/test-netsurf
new file mode 100755
index 0000000..90c7e12
--- /dev/null
+++ b/tools/test-netsurf
@@ -0,0 +1,35 @@
+#!/bin/sh
+# This file is part of NetSurf, http://netsurf-browser.org/
+# Licensed under the GNU General Public License,
+# http://www.opensource.org/licenses/gpl-license
+# Copyright 2007 Rob Kendrick <rjek(a)netsurf-browser.org>
+#
+# This launcher script is meant only for running nsgtk from inside the
+# build tree, with some debugging enabled. It is not meant for day-to-day
+# or packaged use!
+
+if [ -d ~/.netsurf ]; then
+ LOG=~/.netsurf/log.txt
+elif [ -d /tmp ]; then
+ LOG=/tmp/netsurf-log.txt
+else
+ LOG=netsurf-log.txt
+fi
+
+echo $0: using $LOG as logfile
+
+ulimit -c unlimited
+
+if [ "x$1" = "x--gdb" ]; then
+ GDB="gdb --args"
+ echo
+ echo
+ echo "**********************************************************"
+ echo "Remember to type 'run' and press ENTER once gdb has loaded"
+ echo "**********************************************************"
+ echo
+ echo
+ shift
+fi
+
+exec $GDB $PREFIX/bin/netsurf -v "$@" 2>&1 | tee $LOG
diff --git a/tools/valgrind.supp b/tools/valgrind.supp
new file mode 100644
index 0000000..f1a27f4
--- /dev/null
+++ b/tools/valgrind.supp
@@ -0,0 +1,14 @@
+# Valgrind suppression file for NetSurf
+
+# Suppress a valgrind message about use of uninitialized memory in strchrnul().
+# This use is OK because it provides only a speedup.
+{
+ strchrnul-addr4
+ Memcheck:Addr4
+ fun:strchrnul
+}
+{
+ strchrnul-addr8
+ Memcheck:Addr8
+ fun:strchrnul
+}
diff --git a/tools/xxd.c b/tools/xxd.c
new file mode 100644
index 0000000..a4e5dac
--- /dev/null
+++ b/tools/xxd.c
@@ -0,0 +1,135 @@
+/*
+ * xxd utility
+ *
+ * Copyright 2020 Lars Wirzenius
+ * Copyright 2020 Vincent Sanders <vince(a)netsurf-browser.org>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+static char *get_array_name(const char *fname)
+{
+ int fnamelen;
+ char *aryname;
+ int idx;
+
+ fnamelen = strlen(fname);
+ aryname = malloc(fnamelen + 1);
+
+ if (aryname != NULL) {
+ for (idx = 0; idx < fnamelen; idx++) {
+ int c = fname[idx];
+ if ((c >= '0' && c <= '9') ||
+ (c >= 'A' && c <= 'Z') ||
+ (c >= 'a' && c <= 'z')) {
+ aryname[idx] = fname[idx];
+ } else {
+ aryname[idx] = '_';
+ }
+ }
+ aryname[idx] = 0;
+ }
+ return aryname;
+}
+
+int main(int argc, char **argv)
+{
+ int inc = 0;
+ int opt;
+ int c, n;
+ FILE *inf;
+ FILE *outf;
+ char *aryname = NULL;
+ int outlen;
+
+ while ((opt = getopt(argc, argv, "i")) != -1) {
+ switch (opt) {
+ case 'i':
+ inc = 1;
+ break;
+
+ default: /* '?' */
+ fprintf(stderr, "Usage: %s [-i] [infile [outfile]]]\n",
+ argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ if (optind < argc) {
+ inf = fopen(argv[optind], "r");
+ if (inf == NULL) {
+ perror("Opening for read");
+ exit(EXIT_FAILURE);
+ }
+ aryname = get_array_name(argv[optind]);
+ optind++;
+ } else {
+ inf = stdin;
+
+ }
+
+ if (optind < argc) {
+ outf = fopen(argv[optind], "w");
+ if (outf == NULL) {
+ perror("Opening for write");
+ exit(EXIT_FAILURE);
+ }
+ } else {
+ outf = stdout;
+ }
+
+ if ((inc != 0) && (aryname != NULL)) {
+ fprintf(outf, "unsigned char %s[] = {\n", aryname);
+ }
+
+ outlen = 0;
+ n = 0;
+ while ((c = getc(inf)) != EOF) {
+ if (n == 0) {
+ fprintf(outf, " ");
+ }
+ fprintf(outf, " 0x%02x,", c);
+ n += 1;
+ outlen++;
+ if (n >= 12) {
+ fprintf(outf, "\n");
+ n = 0;
+ }
+ }
+ if (n > 0) {
+ fprintf(outf, "\n");
+ }
+
+ if ((inc != 0) && (aryname != NULL)) {
+ fprintf(outf, "};\nunsigned int %s_len = %d;\n",
+ aryname, outlen);
+ }
+
+
+
+ fclose(outf);
+ fclose(inf);
+
+ return 0;
+}
diff --git a/utils/DerivedJoiningType.txt b/utils/DerivedJoiningType.txt
deleted file mode 100644
index d4dcc85..0000000
--- a/utils/DerivedJoiningType.txt
+++ /dev/null
@@ -1,318 +0,0 @@
-# DerivedJoiningType-5.2.0.txt
-# Date: 2009-05-28, 20:37:39 GMT [MD]
-#
-# Unicode Character Database
-# Copyright (c) 1991-2009 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
-# For documentation, see http://www.unicode.org/reports/tr44/
-
-# ================================================
-
-# Type T is derived, as described in ArabicShaping.txt
-
-# All code points not explicitly listed for Joining_Type
-# have the value Non_Joining (U).
-
-# @missing: 0000..10FFFF; Non_Joining
-
-# ================================================
-
-# Joining_Type=Join_Causing
-
-0640 ; C # Lm ARABIC TATWEEL
-07FA ; C # Lm NKO LAJANYALAN
-200D ; C # Cf ZERO WIDTH JOINER
-
-# Total code points: 3
-
-# ================================================
-
-# Joining_Type=Dual_Joining
-
-0626 ; D # Lo ARABIC LETTER YEH WITH HAMZA ABOVE
-0628 ; D # Lo ARABIC LETTER BEH
-062A..062E ; D # Lo [5] ARABIC LETTER TEH..ARABIC LETTER KHAH
-0633..063F ; D # Lo [13] ARABIC LETTER SEEN..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0641..0647 ; D # Lo [7] ARABIC LETTER FEH..ARABIC LETTER HEH
-0649..064A ; D # Lo [2] ARABIC LETTER ALEF MAKSURA..ARABIC LETTER YEH
-066E..066F ; D # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
-0678..0687 ; D # Lo [16] ARABIC LETTER HIGH HAMZA YEH..ARABIC LETTER TCHEHEH
-069A..06BF ; D # Lo [38] ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE..ARABIC LETTER TCHEH WITH DOT ABOVE
-06C1..06C2 ; D # Lo [2] ARABIC LETTER HEH GOAL..ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06CC ; D # Lo ARABIC LETTER FARSI YEH
-06CE ; D # Lo ARABIC LETTER YEH WITH SMALL V
-06D0..06D1 ; D # Lo [2] ARABIC LETTER E..ARABIC LETTER YEH WITH THREE DOTS BELOW
-06FA..06FC ; D # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
-06FF ; D # Lo ARABIC LETTER HEH WITH INVERTED V
-0712..0714 ; D # Lo [3] SYRIAC LETTER BETH..SYRIAC LETTER GAMAL GARSHUNI
-071A..071D ; D # Lo [4] SYRIAC LETTER HETH..SYRIAC LETTER YUDH
-071F..0727 ; D # Lo [9] SYRIAC LETTER KAPH..SYRIAC LETTER REVERSED PE
-0729 ; D # Lo SYRIAC LETTER QAPH
-072B ; D # Lo SYRIAC LETTER SHIN
-072D..072E ; D # Lo [2] SYRIAC LETTER PERSIAN BHETH..SYRIAC LETTER PERSIAN GHAMAL
-074E..0758 ; D # Lo [11] SYRIAC LETTER SOGDIAN KHAPH..ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
-075C..076A ; D # Lo [15] ARABIC LETTER SEEN WITH FOUR DOTS ABOVE..ARABIC LETTER LAM WITH BAR
-076D..0770 ; D # Lo [4] ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE..ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0772 ; D # Lo ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
-0775..0777 ; D # Lo [3] ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-077A..077F ; D # Lo [6] ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER KAF WITH TWO DOTS ABOVE
-07CA..07EA ; D # Lo [33] NKO LETTER A..NKO LETTER JONA RA
-
-# Total code points: 188
-
-# ================================================
-
-# Joining_Type=Right_Joining
-
-0622..0625 ; R # Lo [4] ARABIC LETTER ALEF WITH MADDA ABOVE..ARABIC LETTER ALEF WITH HAMZA BELOW
-0627 ; R # Lo ARABIC LETTER ALEF
-0629 ; R # Lo ARABIC LETTER TEH MARBUTA
-062F..0632 ; R # Lo [4] ARABIC LETTER DAL..ARABIC LETTER ZAIN
-0648 ; R # Lo ARABIC LETTER WAW
-0671..0673 ; R # Lo [3] ARABIC LETTER ALEF WASLA..ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0675..0677 ; R # Lo [3] ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER U WITH HAMZA ABOVE
-0688..0699 ; R # Lo [18] ARABIC LETTER DDAL..ARABIC LETTER REH WITH FOUR DOTS ABOVE
-06C0 ; R # Lo ARABIC LETTER HEH WITH YEH ABOVE
-06C3..06CB ; R # Lo [9] ARABIC LETTER TEH MARBUTA GOAL..ARABIC LETTER VE
-06CD ; R # Lo ARABIC LETTER YEH WITH TAIL
-06CF ; R # Lo ARABIC LETTER WAW WITH DOT ABOVE
-06D2..06D3 ; R # Lo [2] ARABIC LETTER YEH BARREE..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D5 ; R # Lo ARABIC LETTER AE
-06EE..06EF ; R # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
-0710 ; R # Lo SYRIAC LETTER ALAPH
-0715..0719 ; R # Lo [5] SYRIAC LETTER DALATH..SYRIAC LETTER ZAIN
-071E ; R # Lo SYRIAC LETTER YUDH HE
-0728 ; R # Lo SYRIAC LETTER SADHE
-072A ; R # Lo SYRIAC LETTER RISH
-072C ; R # Lo SYRIAC LETTER TAW
-072F ; R # Lo SYRIAC LETTER PERSIAN DHALATH
-074D ; R # Lo SYRIAC LETTER SOGDIAN ZHAIN
-0759..075B ; R # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH..ARABIC LETTER REH WITH STROKE
-076B..076C ; R # Lo [2] ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE..ARABIC LETTER REH WITH HAMZA ABOVE
-0771 ; R # Lo ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0773..0774 ; R # Lo [2] ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0778..0779 ; R # Lo [2] ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE..ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-
-# Total code points: 74
-
-# ================================================
-
-# Joining_Type=Transparent
-
-00AD ; T # Cf SOFT HYPHEN
-0300..036F ; T # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
-0483..0487 ; T # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
-0488..0489 ; T # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
-0591..05BD ; T # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
-05BF ; T # Mn HEBREW POINT RAFE
-05C1..05C2 ; T # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
-05C4..05C5 ; T # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
-05C7 ; T # Mn HEBREW POINT QAMATS QATAN
-0610..061A ; T # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
-064B..065E ; T # Mn [20] ARABIC FATHATAN..ARABIC FATHA WITH TWO DOTS
-0670 ; T # Mn ARABIC LETTER SUPERSCRIPT ALEF
-06D6..06DC ; T # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
-06DE ; T # Me ARABIC START OF RUB EL HIZB
-06DF..06E4 ; T # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
-06E7..06E8 ; T # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
-06EA..06ED ; T # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
-070F ; T # Cf SYRIAC ABBREVIATION MARK
-0711 ; T # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
-0730..074A ; T # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
-07A6..07B0 ; T # Mn [11] THAANA ABAFILI..THAANA SUKUN
-07EB..07F3 ; T # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
-0816..0819 ; T # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
-081B..0823 ; T # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
-0825..0827 ; T # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
-0829..082D ; T # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
-0900..0902 ; T # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
-093C ; T # Mn DEVANAGARI SIGN NUKTA
-0941..0948 ; T # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
-094D ; T # Mn DEVANAGARI SIGN VIRAMA
-0951..0955 ; T # Mn [5] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN CANDRA LONG E
-0962..0963 ; T # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
-0981 ; T # Mn BENGALI SIGN CANDRABINDU
-09BC ; T # Mn BENGALI SIGN NUKTA
-09C1..09C4 ; T # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
-09CD ; T # Mn BENGALI SIGN VIRAMA
-09E2..09E3 ; T # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
-0A01..0A02 ; T # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
-0A3C ; T # Mn GURMUKHI SIGN NUKTA
-0A41..0A42 ; T # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
-0A47..0A48 ; T # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
-0A4B..0A4D ; T # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
-0A51 ; T # Mn GURMUKHI SIGN UDAAT
-0A70..0A71 ; T # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
-0A75 ; T # Mn GURMUKHI SIGN YAKASH
-0A81..0A82 ; T # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
-0ABC ; T # Mn GUJARATI SIGN NUKTA
-0AC1..0AC5 ; T # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
-0AC7..0AC8 ; T # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
-0ACD ; T # Mn GUJARATI SIGN VIRAMA
-0AE2..0AE3 ; T # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
-0B01 ; T # Mn ORIYA SIGN CANDRABINDU
-0B3C ; T # Mn ORIYA SIGN NUKTA
-0B3F ; T # Mn ORIYA VOWEL SIGN I
-0B41..0B44 ; T # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
-0B4D ; T # Mn ORIYA SIGN VIRAMA
-0B56 ; T # Mn ORIYA AI LENGTH MARK
-0B62..0B63 ; T # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
-0B82 ; T # Mn TAMIL SIGN ANUSVARA
-0BC0 ; T # Mn TAMIL VOWEL SIGN II
-0BCD ; T # Mn TAMIL SIGN VIRAMA
-0C3E..0C40 ; T # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
-0C46..0C48 ; T # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
-0C4A..0C4D ; T # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
-0C55..0C56 ; T # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
-0C62..0C63 ; T # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
-0CBC ; T # Mn KANNADA SIGN NUKTA
-0CBF ; T # Mn KANNADA VOWEL SIGN I
-0CC6 ; T # Mn KANNADA VOWEL SIGN E
-0CCC..0CCD ; T # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
-0CE2..0CE3 ; T # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
-0D41..0D44 ; T # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
-0D4D ; T # Mn MALAYALAM SIGN VIRAMA
-0D62..0D63 ; T # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
-0DCA ; T # Mn SINHALA SIGN AL-LAKUNA
-0DD2..0DD4 ; T # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6 ; T # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
-0E31 ; T # Mn THAI CHARACTER MAI HAN-AKAT
-0E34..0E3A ; T # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
-0E47..0E4E ; T # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
-0EB1 ; T # Mn LAO VOWEL SIGN MAI KAN
-0EB4..0EB9 ; T # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBB..0EBC ; T # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD ; T # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
-0F18..0F19 ; T # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F35 ; T # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
-0F37 ; T # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F39 ; T # Mn TIBETAN MARK TSA -PHRU
-0F71..0F7E ; T # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
-0F80..0F84 ; T # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
-0F86..0F87 ; T # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
-0F90..0F97 ; T # Mn [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
-0F99..0FBC ; T # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0FC6 ; T # Mn TIBETAN SYMBOL PADMA GDAN
-102D..1030 ; T # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
-1032..1037 ; T # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
-1039..103A ; T # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
-103D..103E ; T # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
-1058..1059 ; T # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
-105E..1060 ; T # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
-1071..1074 ; T # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
-1082 ; T # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
-1085..1086 ; T # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
-108D ; T # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
-109D ; T # Mn MYANMAR VOWEL SIGN AITON AI
-135F ; T # Mn ETHIOPIC COMBINING GEMINATION MARK
-1712..1714 ; T # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
-1732..1734 ; T # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
-1752..1753 ; T # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
-1772..1773 ; T # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
-17B4..17B5 ; T # Cf [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
-17B7..17BD ; T # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
-17C6 ; T # Mn KHMER SIGN NIKAHIT
-17C9..17D3 ; T # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
-17DD ; T # Mn KHMER SIGN ATTHACAN
-180B..180D ; T # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
-18A9 ; T # Mn MONGOLIAN LETTER ALI GALI DAGALGA
-1920..1922 ; T # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
-1927..1928 ; T # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
-1932 ; T # Mn LIMBU SMALL LETTER ANUSVARA
-1939..193B ; T # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
-1A17..1A18 ; T # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
-1A56 ; T # Mn TAI THAM CONSONANT SIGN MEDIAL LA
-1A58..1A5E ; T # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
-1A60 ; T # Mn TAI THAM SIGN SAKOT
-1A62 ; T # Mn TAI THAM VOWEL SIGN MAI SAT
-1A65..1A6C ; T # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
-1A73..1A7C ; T # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
-1A7F ; T # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
-1B00..1B03 ; T # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
-1B34 ; T # Mn BALINESE SIGN REREKAN
-1B36..1B3A ; T # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
-1B3C ; T # Mn BALINESE VOWEL SIGN LA LENGA
-1B42 ; T # Mn BALINESE VOWEL SIGN PEPET
-1B6B..1B73 ; T # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
-1B80..1B81 ; T # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
-1BA2..1BA5 ; T # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
-1BA8..1BA9 ; T # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1C2C..1C33 ; T # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
-1C36..1C37 ; T # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
-1CD0..1CD2 ; T # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
-1CD4..1CE0 ; T # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
-1CE2..1CE8 ; T # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
-1CED ; T # Mn VEDIC SIGN TIRYAK
-1DC0..1DE6 ; T # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
-1DFD..1DFF ; T # Mn [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
-200B ; T # Cf ZERO WIDTH SPACE
-200E..200F ; T # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
-202A..202E ; T # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
-2060..2064 ; T # Cf [5] WORD JOINER..INVISIBLE PLUS
-206A..206F ; T # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
-20D0..20DC ; T # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
-20DD..20E0 ; T # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
-20E1 ; T # Mn COMBINING LEFT RIGHT ARROW ABOVE
-20E2..20E4 ; T # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
-20E5..20F0 ; T # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
-2CEF..2CF1 ; T # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
-2DE0..2DFF ; T # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-302A..302F ; T # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
-3099..309A ; T # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-A66F ; T # Mn COMBINING CYRILLIC VZMET
-A670..A672 ; T # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
-A67C..A67D ; T # Mn [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
-A6F0..A6F1 ; T # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
-A802 ; T # Mn SYLOTI NAGRI SIGN DVISVARA
-A806 ; T # Mn SYLOTI NAGRI SIGN HASANTA
-A80B ; T # Mn SYLOTI NAGRI SIGN ANUSVARA
-A825..A826 ; T # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
-A8C4 ; T # Mn SAURASHTRA SIGN VIRAMA
-A8E0..A8F1 ; T # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
-A926..A92D ; T # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
-A947..A951 ; T # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
-A980..A982 ; T # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
-A9B3 ; T # Mn JAVANESE SIGN CECAK TELU
-A9B6..A9B9 ; T # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
-A9BC ; T # Mn JAVANESE VOWEL SIGN PEPET
-AA29..AA2E ; T # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
-AA31..AA32 ; T # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
-AA35..AA36 ; T # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
-AA43 ; T # Mn CHAM CONSONANT SIGN FINAL NG
-AA4C ; T # Mn CHAM CONSONANT SIGN FINAL M
-AAB0 ; T # Mn TAI VIET MAI KANG
-AAB2..AAB4 ; T # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
-AAB7..AAB8 ; T # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
-AABE..AABF ; T # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
-AAC1 ; T # Mn TAI VIET TONE MAI THO
-ABE5 ; T # Mn MEETEI MAYEK VOWEL SIGN ANAP
-ABE8 ; T # Mn MEETEI MAYEK VOWEL SIGN UNAP
-ABED ; T # Mn MEETEI MAYEK APUN IYEK
-FB1E ; T # Mn HEBREW POINT JUDEO-SPANISH VARIKA
-FE00..FE0F ; T # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26 ; T # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
-FEFF ; T # Cf ZERO WIDTH NO-BREAK SPACE
-FFF9..FFFB ; T # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
-101FD ; T # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
-10A01..10A03 ; T # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05..10A06 ; T # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
-10A0C..10A0F ; T # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
-10A38..10A3A ; T # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
-10A3F ; T # Mn KHAROSHTHI VIRAMA
-11080..11081 ; T # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
-110B3..110B6 ; T # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
-110B9..110BA ; T # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
-110BD ; T # Cf KAITHI NUMBER SIGN
-1D167..1D169 ; T # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
-1D173..1D17A ; T # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
-1D17B..1D182 ; T # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
-1D185..1D18B ; T # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D1AA..1D1AD ; T # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-1D242..1D244 ; T # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
-E0001 ; T # Cf LANGUAGE TAG
-E0020..E007F ; T # Cf [96] TAG SPACE..CANCEL TAG
-E0100..E01EF ; T # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-
-# Total code points: 1308
-
-# EOF
diff --git a/utils/Makefile b/utils/Makefile
index 430edf9..b186cd1 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -24,65 +24,3 @@ S_UTILS := \
utils.c
S_UTILS := $(addprefix utils/,$(S_UTILS))
-
-
-# lib png build compiler flags
-ifeq ($(HOST),OpenBSD)
- BUILD_LIBPNG_CFLAGS += $(shell $(PKG_CONFIG) --cflags libpng)
- BUILD_LIBPNG_LDFLAGS += $(shell $(PKG_CONFIG) --libs libpng)
-else
- ifeq ($(HOST),FreeBSD)
- BUILD_LIBPNG_CFLAGS += $(shell $(PKG_CONFIG) --cflags libpng)
- BUILD_LIBPNG_LDFLAGS += $(shell $(PKG_CONFIG) --libs libpng)
- else
- BUILD_LIBPNG_CFLAGS +=
- BUILD_LIBPNG_LDFLAGS += -lpng
- endif
-endif
-
-
-# Build tool to convert file to comiled data
-#
-$(TOOLROOT)/xxd: utils/xxd.c $(TOOLROOT)/created
- $(VQ)echo "BUILD CC: $@"
- $(Q)$(BUILD_CC) $(BUILD_CFLAGS) -o $@ $< $(BUILD_LDFLAGS)
-
-
-# Build tool to filter messages
-#
-$(TOOLROOT)/split-messages: utils/split-messages.c $(TOOLROOT)/created
- $(VQ)echo "BUILD CC: $@"
- $(Q)$(BUILD_CC) $(BUILD_CFLAGS) -o $@ $< $(BUILD_LDFLAGS) -lz
-
-
-# Build tool to convert image bitmaps to source code.
-#
-$(TOOLROOT)/convert_image: utils/convert_image.c $(TOOLROOT)/created
- $(VQ)echo "BUILD CC: $@"
- $(Q)$(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_LIBPNG_CFLAGS) -o $@ $< $(BUILD_LDFLAGS) $(BUILD_LIBPNG_LDFLAGS)
-
-
-# Build too to perform font conversion
-#
-$(TOOLROOT)/convert_font: utils/convert_font.c $(TOOLROOT)/created
- $(VQ)echo "BUILD CC: $@"
- $(Q)$(BUILD_CC) $(BUILD_CFLAGS) -o $@ $<
-
-
-# idna
-#
-IDNA_UNICODE_MAJOR=11
-
-utils/DerivedJoiningType.txt:
- curl -o $@ "https://www.unicode.org/Public/$(IDNA_UNICODE_MAJOR).0.0/ucd/extracted/De..."
-
-utils/IdnaMappingTable.txt:
- curl -o $@ "https://www.unicode.org/Public/idna/$(IDNA_UNICODE_MAJOR).0.0/IdnaMapping..."
-
-utils/idna-tables-properties.csv:
- curl -o $@ "https://www.iana.org/assignments/idna-tables-$(IDNA_UNICODE_MAJOR).0.0/id..."
-
-
-utils/idna_props.h: utils/DerivedJoiningType.txt utils/idna-tables-properties.csv
- $(VQ)echo " IDNA: $@"
- $(Q)$(PERL) utils/idna-derived-props-gen.pl -o $@ -p utils/idna-tables-properties.csv -j utils/DerivedJoiningType.txt
diff --git a/utils/convert_font.c b/utils/convert_font.c
deleted file mode 100644
index 9f5734b..0000000
--- a/utils/convert_font.c
+++ /dev/null
@@ -1,1215 +0,0 @@
-/*
- * Copyright 2014 Michael Drake <tlsa(a)netsurf-browser.org>
- * Copyright 2014 Vincent Sanders <vince(a)netsurf-browser.org>
- *
- * This file is part of the convert_font tool used to convert font
- * glyph data into a compilable representation.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <unistd.h>
-#include <getopt.h>
-
-#define GLYPH_LEN 16
-#define BUCKETS 512
-#define CHUNK_SIZE (64 * 1024)
-#define HEADER_MAX 2000
-
-#define SECTION_SIZE (sizeof(uint16_t) * 256)
-
-const char *labels[4] = {
- " Regular",
- " Italic",
- " Bold",
- "Bold & Italic"
-};
-
-const char *var_lables[4] = {
- "fb_regular",
- "fb_italic",
- "fb_bold",
- "fb_bold_italic"
-};
-
-const char *short_labels[4] = {
- " ",
- " i",
- "b ",
- "bi"
-};
-
-enum font_style {
- REGULAR = 0,
- ITALIC = (1 << 0),
- BOLD = (1 << 1),
- ITALIC_BOLD = (1 << 2)
-};
-
-enum log_level {
- LOG_DEBUG,
- LOG_INFO,
- LOG_RESULT,
- LOG_WARNING,
- LOG_ERROR
-};
-
-enum log_level level;
-
-typedef struct glyph_entry {
- union {
- uint32_t u32[GLYPH_LEN / 4];
- uint8_t u8[GLYPH_LEN];
- } data;
- uint32_t index;
- struct glyph_entry *next;
-} glyph_entry;
-
-/** Scratch glyph for generated code points */
-uint8_t code_point[GLYPH_LEN];
-
-/** Hash table */
-glyph_entry *ht[BUCKETS];
-
-#define LOG(lev, fmt, ...) \
- if (lev >= level) \
- printf(fmt, ##__VA_ARGS__);
-
-/**
- * Get hash for glyph data
- * \param g Glyph data (GLYPH_LEN bytes)
- * \return glyph's hash
- */
-static inline uint32_t glyph_hash(const uint8_t *g)
-{
- uint32_t hash = 0x811c9dc5;
- unsigned int len = GLYPH_LEN;
-
- while (len > 0) {
- hash *= 0x01000193;
- hash ^= *g++;
- len--;
- }
-
- return hash;
-}
-
-
-/**
- * Check whether glyphs are identical (compares glyph data)
- *
- * \param g1 First glyph's data (GLYPH_LEN bytes)
- * \param g2 Second glyph's data (GLYPH_LEN bytes)
- * \return true iff both glyphs are identical, else false
- */
-static inline bool glyphs_match(const uint8_t *g1, const uint8_t *g2)
-{
- return (memcmp(g1, g2, GLYPH_LEN) == 0);
-}
-
-
-/**
- * Add a glyph to a hash chain (or free, and return pointer to existing glyph)
- *
- * Note that if new glyph already exists in chain, it is freed and a pointer to
- * the existing glyph is returned. If the glyph does not exist in the chain
- * it is added and its pointer is returned.
- *
- * \param head Head of hash chain
- * \param new New glyph to add (may be freed)
- * \return pointer to glyph in hash chain
- */
-static glyph_entry * glyph_add_to_chain(glyph_entry **head, glyph_entry *new)
-{
- glyph_entry *e = *head;
-
- if (*head == NULL) {
- new->next = NULL;
- *head = new;
- return new;
- }
-
- do {
- if (glyphs_match(new->data.u8, e->data.u8)) {
- free(new);
- return e;
- }
- if (e->next == NULL)
- break;
- e = e->next;
- } while (1);
-
- new->next = e->next;
- e->next = new;
- return new;
-}
-
-
-/**
- * Free a glyph entry chain
- *
- * \param head Head of hash chain
- */
-static void free_chain(glyph_entry *head)
-{
- glyph_entry *e = head;
-
- if (head == NULL)
- return;
-
- while (e != NULL) {
- head = e->next;
- free(e);
- e = head;
- };
-}
-
-
-/**
- * Add new glyph to hash table (or free, and return pointer to existing glyph)
- *
- * Note that if new glyph already exists in table, it is freed and a pointer to
- * the existing glyph is returned. If the glyph does not exist in the table
- * it is added and its pointer is returned.
- *
- * \param new New glyph to add (may be freed)
- * \return pointer to glyph in hash table
- */
-static glyph_entry * glyph_add_to_table(glyph_entry *new)
-{
- uint32_t hash = glyph_hash(new->data.u8);
-
- return glyph_add_to_chain(&ht[hash % BUCKETS], new);
-}
-
-
-/**
- * Free glyph table.
- */
-static void free_table(void)
-{
- int i;
-
- for (i = 0; i < BUCKETS; i++) {
- free_chain(ht[i]);
- }
-}
-
-struct parse_context {
- enum {
- START,
- IN_HEADER,
- BEFORE_ID,
- GLYPH_ID,
- BEFORE_GLYPH_DATA,
- IN_GLYPH_DATA
- } state; /**< Current parser state */
-
- union {
- struct {
- bool new_line;
- } in_header;
- struct {
- bool new_line;
- bool u;
- } before_id;
- struct {
- int c;
- } g_id;
- struct {
- bool new_line;
- bool prev_h;
- bool prev_s;
- int c;
- } before_gd;
- struct {
- int line;
- int pos;
- int styles;
- int line_styles;
- glyph_entry *e[4];
- } in_gd;
- } data; /**< The state specific data */
-
- int id; /**< Current ID */
-
- int codepoints; /**< Glyphs containing codepoints */
- int count[4]; /**< Count of glyphs in file */
-};
-
-struct font_data {
- char header[HEADER_MAX];
- int header_len;
-
- uint8_t section_table[4][256];
- uint8_t sec_count[4];
- uint16_t *sections[4];
-
- glyph_entry *e[0xffff];
- int glyphs;
-};
-
-static bool generate_font_header(const char *path, struct font_data *data)
-{
- FILE *fp;
- int s;
-
- fp = fopen(path, "wb");
- if (fp == NULL) {
- LOG(LOG_ERROR, "Couldn't open header file \"%s\"\n", path);
- return false;
- }
-
- fprintf(fp, "/*\n");
- fwrite(data->header, 1, data->header_len, fp);
- fprintf(fp, " */\n\n");
- fprintf(fp, "/* Don't edit this file, it was generated from the "
- "plain text source data. */\n\n");
-
-
- for (s = 0; s < 4; s++) {
- fprintf(fp, "const uint8_t *%s_section_table;\n",
- var_lables[s]);
- fprintf(fp, "const uint16_t *%s_sections;\n",
- var_lables[s]);
-
- }
-
- fprintf(fp, "const uint8_t *font_glyph_data;\n");
-
- fprintf(fp, "\n\n");
-
- fclose(fp);
-
- return true;
-
-}
-
-static bool generate_font_source(const char *path, struct font_data *data)
-{
- int s, i, y;
- int limit;
- FILE *fp;
-
- fp = fopen(path, "wb");
- if (fp == NULL) {
- LOG(LOG_ERROR, "Couldn't open output file \"%s\"\n", path);
- return false;
- }
-
- fprintf(fp, "/*\n");
- fwrite(data->header, 1, data->header_len, fp);
- fprintf(fp, " */\n\n");
- fprintf(fp, "/* Don't edit this file, it was generated from the "
- "plain text source data. */\n\n");
-
- fprintf(fp, "#include <stdint.h>\n");
- fprintf(fp, "\n");
-
- for (s = 0; s < 4; s++) {
-
- fprintf(fp, "static const uint8_t %s_section_table_c[256] = {\n",
- var_lables[s]);
-
- for (i = 0; i < 256; i++) {
- if (i == 255)
- fprintf(fp, "0x%.2X\n",
- data->section_table[s][i]);
- else if (i % 8 == 7)
- fprintf(fp, "0x%.2X,\n",
- data->section_table[s][i]);
- else if (i % 8 == 0)
- fprintf(fp, "\t0x%.2X, ",
- data->section_table[s][i]);
- else
- fprintf(fp, "0x%.2X, ",
- data->section_table[s][i]);
- }
-
- fprintf(fp, "};\nconst uint8_t *%s_section_table = &%s_section_table_c[0];\n\n",
- var_lables[s], var_lables[s]);
- fprintf(fp, "static const uint16_t %s_sections_c[%i] = {\n",
- var_lables[s], data->sec_count[s] * 256);
-
- limit = data->sec_count[s] * 256;
- for (i = 0; i < limit; i++) {
- uint16_t offset = data->sections[s][i];
- if (i == limit - 1)
- fprintf(fp, "0x%.4X\n", offset);
- else if (i % 4 == 3)
- fprintf(fp, "0x%.4X,\n", offset);
- else if (i % 4 == 0)
- fprintf(fp, "\t0x%.4X, ", offset);
- else
- fprintf(fp, "0x%.4X, ", offset);
- }
-
- fprintf(fp, "};\nconst uint16_t *%s_sections = &%s_sections_c[0];\n\n", var_lables[s], var_lables[s]);
- }
-
- fprintf(fp, "static const uint8_t font_glyph_data_c[%i] = {\n",
- (data->glyphs + 1) * 16);
-
- fprintf(fp, "\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n"
- "\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n");
-
- limit = data->glyphs;
- for (i = 0; i < limit; i++) {
- glyph_entry *e = data->e[i];
-
- for (y = 0; y < 16; y++) {
- if (i == limit - 1 && y == 15)
- fprintf(fp, "0x%.2X\n", e->data.u8[y]);
- else if (y % 8 == 7)
- fprintf(fp, "0x%.2X,\n", e->data.u8[y]);
- else if (y % 8 == 0)
- fprintf(fp, "\t0x%.2X, ", e->data.u8[y]);
- else
- fprintf(fp, "0x%.2X, ", e->data.u8[y]);
- }
- }
-
- fprintf(fp, "};\n");
- fprintf(fp, "const uint8_t *font_glyph_data = &font_glyph_data_c[0];\n\n");
-
- fclose(fp);
-
- return true;
-}
-
-static bool add_glyph_to_data(glyph_entry *add, int id, int style,
- struct font_data *d)
-{
- glyph_entry *e;
- int offset;
- int s;
-
- /* Find out if 'add' is unique, and get its unique table entry */
- e = glyph_add_to_table(add);
- if (e == add) {
- /* Unique glyph */
- d->e[d->glyphs++] = e;
- e->index = d->glyphs;
- if (d->glyphs >= 0xfffd) {
- LOG(LOG_ERROR, " Too many glyphs for internal data "
- "representation\n");
- return false;
- }
- } else {
- /* Duplicate glyph */
- LOG(LOG_DEBUG, " U+%.4X (%s) is duplicate\n",
- id, short_labels[style]);
- }
-
- /* Find glyph's section */
- s = id / 256;
-
- /* Allocate section if needed */
- if ((s == 0 && d->sections[style] == NULL) ||
- (s != 0 && d->section_table[style][s] == 0)) {
- size_t size = (d->sec_count[style] + 1) * SECTION_SIZE;
- uint16_t *temp = realloc(d->sections[style], size);
- if (temp == NULL) {
- LOG(LOG_ERROR, " Couldn't increase sections "
- "allocation\n");
- return false;
- }
- memset(temp + d->sec_count[style] * 256, 0,
- SECTION_SIZE);
- d->section_table[style][s] = d->sec_count[style];
- d->sections[style] = temp;
- d->sec_count[style]++;
- }
-
- offset = d->section_table[style][s] * 256 + (id & 0xff);
- d->sections[style][offset] = e->index;
-
- return true;
-}
-
-
-static bool check_glyph_data_valid(int pos, char c)
-{
- int offset = pos % 11;
-
- if (pos == 44) {
- if (c != '\n') {
- LOG(LOG_ERROR, " Invalid glyph data: "
- "expecting '\\n', got '%c' (%i)\n",
- c, c);
- return false;
- } else {
- return true;
- }
- } else if (pos < 3) {
- if (c != ' ') {
- LOG(LOG_ERROR, " Invalid glyph data: "
- "expecting ' ', got '%c' (%i)\n",
- c, c);
- return false;
- } else {
- return true;
- }
- } else if (offset == 0) {
- if (c != '\n' && c != ' ') {
- LOG(LOG_ERROR, " Invalid glyph data: "
- "expecting '\\n' or ' ', "
- "got '%c' (%i)\n",
- c, c);
- return false;
- } else {
- return true;
- }
- } else if (offset < 3) {
- if (c != ' ') {
- LOG(LOG_ERROR, " Invalid glyph data: "
- "expecting ' ', got '%c' (%i)\n",
- c, c);
- return false;
- } else {
- return true;
- }
- } else if (offset >= 3 && pos < 11) {
- if (c != '.' && c != '#') {
- LOG(LOG_ERROR, " Invalid glyph data: "
- "expecting '.' or '#', "
- "got '%c' (%i)\n",
- c, c);
- return false;
- } else {
- return true;
- }
- }
-
- /* offset must be >=3 */
- if (c != '.' && c != '#' && c != ' ') {
- LOG(LOG_ERROR, " Invalid glyph data: "
- "expecting '.', '#', or ' ', "
- "got '%c' (%i)\n",
- c, c);
- return false;
- }
-
- return true;
-}
-
-#define SEVEN_SET ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | \
- (1 << 4) | (1 << 5) | (1 << 6))
-
-#define THREE_SSS ((1 << 0) | (1 << 1) | (1 << 2))
-#define THREE_S_S ((1 << 0) | (1 << 2))
-#define THREE__SS ((1 << 0) | (1 << 1) )
-#define THREE_SS_ ( (1 << 1) | (1 << 2))
-#define THREE_S__ (1 << 2)
-#define THREE__S_ (1 << 1)
-#define THREE___S (1 << 0)
-
-uint8_t frag[16][5] = {
- { THREE_SSS,
- THREE_S_S,
- THREE_S_S,
- THREE_S_S,
- THREE_SSS },
-
- { THREE__S_,
- THREE_SS_,
- THREE__S_,
- THREE__S_,
- THREE_SSS },
-
- { THREE_SS_,
- THREE___S,
- THREE__S_,
- THREE_S__,
- THREE_SSS },
-
- { THREE_SS_,
- THREE___S,
- THREE_SS_,
- THREE___S,
- THREE_SS_ },
-
- { THREE_S_S,
- THREE_S_S,
- THREE_SSS,
- THREE___S,
- THREE___S },
-
- { THREE_SSS,
- THREE_S__,
- THREE_SSS,
- THREE___S,
- THREE_SSS },
-
- { THREE__SS,
- THREE_S__,
- THREE_SSS,
- THREE_S_S,
- THREE_SSS },
-
- { THREE_SSS,
- THREE___S,
- THREE__S_,
- THREE__S_,
- THREE__S_ },
-
- { THREE_SSS,
- THREE_S_S,
- THREE_SSS,
- THREE_S_S,
- THREE_SSS },
-
- { THREE_SSS,
- THREE_S_S,
- THREE_SSS,
- THREE___S,
- THREE___S },
-
- { THREE__S_,
- THREE_S_S,
- THREE_SSS,
- THREE_S_S,
- THREE_S_S },
-
- { THREE_SS_,
- THREE_S_S,
- THREE_SS_,
- THREE_S_S,
- THREE_SS_ },
-
- { THREE__S_,
- THREE_S_S,
- THREE_S__,
- THREE_S_S,
- THREE__S_ },
-
- { THREE_SS_,
- THREE_S_S,
- THREE_S_S,
- THREE_S_S,
- THREE_SS_ },
-
- { THREE_SSS,
- THREE_S__,
- THREE_SS_,
- THREE_S__,
- THREE_SSS },
-
- { THREE_SSS,
- THREE_S__,
- THREE_SS_,
- THREE_S__,
- THREE_S__ }
-};
-
-static void build_codepoint(int id, bool italic, uint8_t *code_point)
-{
- int shift = 0;
- int l;
- int r;
-
- if (!italic)
- shift = 1;
-
- l = (id >> 12);
- r = 0xf & (id >> 8);
-
- code_point[ 0] = 0;
- code_point[ 1] = SEVEN_SET << shift;
- code_point[ 2] = 0;
-
- code_point[ 3] = (frag[l][0] << (4 + shift)) | (frag[r][0] << shift);
- code_point[ 4] = (frag[l][1] << (4 + shift)) | (frag[r][1] << shift);
- code_point[ 5] = (frag[l][2] << (4 + shift)) | (frag[r][2] << shift);
- code_point[ 6] = (frag[l][3] << (4 + shift)) | (frag[r][3] << shift);
- code_point[ 7] = (frag[l][4] << (4 + shift)) | (frag[r][4] << shift);
-
- code_point[ 8] = 0;
-
- shift = 1;
-
- l = 0xf & (id >> 4);
- r = 0xf & id ;
-
- code_point[ 9] = (frag[l][0] << (4 + shift)) | (frag[r][0] << shift);
- code_point[10] = (frag[l][1] << (4 + shift)) | (frag[r][1] << shift);
- code_point[11] = (frag[l][2] << (4 + shift)) | (frag[r][2] << shift);
- code_point[12] = (frag[l][3] << (4 + shift)) | (frag[r][3] << shift);
- code_point[13] = (frag[l][4] << (4 + shift)) | (frag[r][4] << shift);
-
- code_point[14] = 0;
- code_point[15] = SEVEN_SET << shift;
-}
-
-#undef SEVEN_SET
-#undef THREE_SSS
-#undef THREE_S_S
-#undef THREE__SS
-#undef THREE_SS_
-#undef THREE_S__
-#undef THREE__S_
-#undef THREE___S
-
-static bool glyph_is_codepoint(const glyph_entry *e, int id, int style)
-{
- bool italic = false;
-
- if (style == 1 || style == 3) {
- italic = true;
- }
-
- build_codepoint(id, italic, code_point);
-
- return glyphs_match(code_point, e->data.u8);
-}
-
-
-static bool parse_glyph_data(struct parse_context *ctx, char c,
- struct font_data *d)
-{
- int glyph = ctx->data.in_gd.pos / 11;
- int g_pos = ctx->data.in_gd.pos % 11 - 3;
- uint8_t *row;
- bool ok;
- int i;
-
- /* Check that character is valid */
- if (check_glyph_data_valid(ctx->data.in_gd.pos, c) == false) {
- LOG(LOG_ERROR, " Error in U+%.4X data: "
- "glyph line: %i, pos: %i\n",
- ctx->id,
- ctx->data.in_gd.line,
- ctx->data.in_gd.pos);
- goto error;
- }
-
- /* Allocate glyph data if needed */
- if (ctx->data.in_gd.line == 0 &&
- (c == '.' || c == '#')) {
- if (ctx->data.in_gd.e[glyph] == NULL) {
- ctx->data.in_gd.e[glyph] =
- calloc(sizeof(struct glyph_entry), 1);
- if (ctx->data.in_gd.e[glyph] == NULL) {
- LOG(LOG_ERROR, " Couldn't allocate memory for "
- "glyph entry\n");
- goto error;
- }
-
- ctx->data.in_gd.styles |= 1 << glyph;
- }
- }
-
- /* Build glyph data */
- if (c == '#') {
- row = &ctx->data.in_gd.e[glyph]->data.u8[ctx->data.in_gd.line];
- *row += 1 << (7 - g_pos);
-
- ctx->data.in_gd.line_styles |= 1 << glyph;
- } else if (c == '.') {
- ctx->data.in_gd.line_styles |= 1 << glyph;
- }
-
- /* Deal with current position */
- if (c == '\n') {
- if (ctx->data.in_gd.line == 0) {
- if (ctx->data.in_gd.e[0] == NULL) {
- LOG(LOG_ERROR, " Error in U+%.4X data: "
- "\"Regular\" glyph style must "
- "be present\n", ctx->id);
- goto error;
- }
- } else if (ctx->data.in_gd.styles !=
- ctx->data.in_gd.line_styles) {
- LOG(LOG_ERROR, " Error in U+%.4X data: "
- "glyph line: %i "
- "styles don't match first line\n",
- ctx->id,
- ctx->data.in_gd.line);
- goto error;
- }
-
- ctx->data.in_gd.pos = 0;
- ctx->data.in_gd.line++;
- ctx->data.in_gd.line_styles = 0;
- } else {
- ctx->data.in_gd.pos++;
- }
-
- /* If we've got all the glyph data, tidy up and advance state */
- if (ctx->data.in_gd.line == 16) {
- for (i = 0; i < 4; i++) {
- if (ctx->data.in_gd.e[i] != NULL) {
- ctx->count[i] += 1;
- if (glyph_is_codepoint(ctx->data.in_gd.e[i],
- ctx->id, i)) {
- LOG(LOG_DEBUG, " U+%.4X (%s) is "
- "codepoint\n",
- ctx->id,
- short_labels[i]);
- ctx->codepoints += 1;
- free(ctx->data.in_gd.e[i]);
- ctx->data.in_gd.e[i] = NULL;
- continue;
- }
-
- ok = add_glyph_to_data(ctx->data.in_gd.e[i],
- ctx->id, i, d);
- if (!ok) {
- goto error;
- }
- }
- }
-
- ctx->data.before_id.new_line = false;
- ctx->data.before_id.u = false;
- ctx->state = BEFORE_ID;
- }
-
- return true;
-
-error:
-
- for (i = 0; i < 4; i++) {
- free(ctx->data.in_gd.e[i]);
- }
-
- return false;
-}
-
-static void parse_init(struct parse_context *ctx)
-{
- memset(ctx, 0, sizeof(struct parse_context));
-}
-
-static bool get_hex_digit_value(char c, int *v)
-{
- if (c >= '0' && c <= '9')
- *v = (c - '0');
- else if (c >= 'A' && c <= 'F')
- *v = (10 + c - 'A');
- else {
- LOG(LOG_ERROR, "Invalid hex digit '%c' (%i)\n", c, c);
- return false;
- }
-
- return true;
-}
-
-static bool assemble_codepoint(const char* c, int n, int *id)
-{
- bool ok;
- int v;
-
- ok = get_hex_digit_value(*c, &v);
- if (!ok) {
- return false;
- }
-
- *id += v << (4 * (3 - n));
-
- return true;
-}
-
-static bool parse_chunk(struct parse_context *ctx, const char *buf, size_t len,
- struct font_data *d)
-{
- int i;
- bool ok;
- int count[4];
- const char *pos = buf;
- const char *end = buf + len;
-
- for (i = 0; i < 4; i++) {
- count[i] = ctx->count[i];
- }
-
- while (pos < end) {
- if (*pos == '\r') {
- LOG(LOG_ERROR, "Detected \'\\r\': Bad line ending\n");
- return false;
- }
-
- switch (ctx->state) {
- case START:
- if (*pos != '*') {
- LOG(LOG_ERROR, "First character must be '*'\n");
- printf("Got: %c (%i)\n", *pos, *pos);
- return false;
- }
- d->header_len = 0;
- ctx->data.in_header.new_line = true;
- ctx->state = IN_HEADER;
-
- /* Fall through */
- case IN_HEADER:
- if (ctx->data.in_header.new_line == true) {
- if (*pos != '*') {
- LOG(LOG_INFO, " Got header "
- "(%i bytes)\n",
- d->header_len);
- LOG(LOG_DEBUG, " Header:\n\n%.*s\n",
- d->header_len,
- d->header);
- ctx->data.before_id.new_line = false;
- ctx->data.before_id.u = false;
- ctx->state = BEFORE_ID;
- continue;
- } else if (*pos == '*') {
- d->header[d->header_len++] = ' ';
- }
- ctx->data.in_header.new_line = false;
-
- } else if (*pos == '\n') {
- ctx->data.in_header.new_line = true;
- }
-
- if (d->header_len == HEADER_MAX) {
- LOG(LOG_ERROR, " Header too long "
- "(>%i bytes)\n",
- d->header_len);
- return false;
- }
-
- d->header[d->header_len++] = *pos;
- break;
-
- case BEFORE_ID:
- if (*pos == '+' &&
- ctx->data.before_id.new_line == true &&
- ctx->data.before_id.u == true) {
- ctx->data.g_id.c = 0;
- ctx->id = 0;
- ctx->state = GLYPH_ID;
- break;
-
- } else if (*pos == 'U' &&
- ctx->data.before_id.new_line == true) {
- ctx->data.before_id.u = true;
-
- } else if (*pos == '\n') {
- ctx->data.before_id.new_line = true;
- ctx->data.before_id.u = false;
-
- } else {
- ctx->data.before_id.new_line = false;
- ctx->data.before_id.u = false;
- }
- break;
-
- case GLYPH_ID:
- ok = assemble_codepoint(pos, ctx->data.g_id.c++,
- &ctx->id);
- if (!ok) {
- LOG(LOG_ERROR, " Invalid glyph ID\n");
- return false;
- }
-
- if (ctx->data.g_id.c == 4) {
- ctx->data.before_gd.new_line = false;
- ctx->data.before_gd.prev_h = false;
- ctx->data.before_gd.prev_s = false;
- ctx->data.before_gd.c = 0;
- ctx->state = BEFORE_GLYPH_DATA;
- break;
- }
- break;
-
- case BEFORE_GLYPH_DATA:
- /* Skip until end of dashed line */
- if (*pos == '\n' && ctx->data.before_gd.c == 53) {
- ctx->state = IN_GLYPH_DATA;
- ctx->data.in_gd.e[0] = NULL;
- ctx->data.in_gd.e[1] = NULL;
- ctx->data.in_gd.e[2] = NULL;
- ctx->data.in_gd.e[3] = NULL;
- ctx->data.in_gd.line = 0;
- ctx->data.in_gd.pos = 0;
- ctx->data.in_gd.line_styles = 0;
- ctx->data.in_gd.styles = 0;
- break;
-
- } else if (*pos == '\n') {
- ctx->data.before_gd.new_line = true;
- ctx->data.before_gd.prev_h = false;
- ctx->data.before_gd.prev_s = false;
- ctx->data.before_gd.c = 0;
- } else if (*pos == '-' &&
- ctx->data.before_gd.new_line == true) {
- assert(ctx->data.before_gd.c == 0);
- ctx->data.before_gd.new_line = false;
- ctx->data.before_gd.c++;
- ctx->data.before_gd.prev_h = true;
- } else if (*pos == ' ' &&
- ctx->data.before_gd.prev_h == true) {
- assert(ctx->data.before_gd.prev_s == false);
- ctx->data.before_gd.c++;
- ctx->data.before_gd.prev_h = false;
- ctx->data.before_gd.prev_s = true;
- } else if (*pos == '-' &&
- ctx->data.before_gd.prev_s == true) {
- assert(ctx->data.before_gd.prev_h == false);
- ctx->data.before_gd.c++;
- ctx->data.before_gd.prev_h = true;
- ctx->data.before_gd.prev_s = false;
- } else {
- ctx->data.before_gd.new_line = false;
- ctx->data.before_gd.prev_h = false;
- ctx->data.before_gd.prev_s = false;
- ctx->data.before_gd.c = 0;
- }
- break;
-
- case IN_GLYPH_DATA:
- ok = parse_glyph_data(ctx, *pos, d);
- if (!ok) {
- return false;
- }
-
- break;
- }
-
- pos++;
- }
-
- for (i = 0; i < 4; i++) {
- LOG(LOG_DEBUG, " %s: %i gylphs\n", labels[i],
- ctx->count[i] - count[i]);
- }
-
- return true;
-}
-
-
-static bool load_font(const char *path, struct font_data **data)
-{
- struct parse_context ctx;
- struct font_data *d;
- size_t file_len;
- size_t done;
- size_t len;
- int count;
- char *buf;
- FILE *fp;
- bool ok;
- int i;
-
- *data = NULL;
-
- fp = fopen(path, "rb");
- if (fp == NULL) {
- LOG(LOG_ERROR, "Couldn't open font data file\n");
- return false;
- }
-
- d = calloc(sizeof(struct font_data), 1);
- if (d == NULL) {
- LOG(LOG_ERROR, "Couldn't allocate memory for font data\n");
- fclose(fp);
- return false;
- }
-
- /* Find filesize */
- fseek(fp, 0L, SEEK_END);
- file_len = ftell(fp);
- if ((long)file_len == -1) {
- LOG(LOG_ERROR, "Could not size input file\n");
- free(d);
- fclose(fp);
- return false;
- }
- fseek(fp, 0L, SEEK_SET);
- LOG(LOG_DEBUG, "Input size: %zu bytes\n", file_len);
-
- /* Allocate buffer for data chunks */
- buf = malloc(CHUNK_SIZE);
- if (buf == NULL) {
- LOG(LOG_ERROR, "Couldn't allocate memory for input buffer\n");
- free(d);
- fclose(fp);
- return false;
- }
-
- /* Initialise parser */
- parse_init(&ctx);
-
- LOG(LOG_DEBUG, "Using chunk size of %i bytes\n", CHUNK_SIZE);
-
- /* Parse the input file in chunks */
- for (done = 0; done < file_len; done += CHUNK_SIZE) {
- LOG(LOG_INFO, "Parsing input chunk %zu\n", done / CHUNK_SIZE);
-
- /* Read chunk */
- len = fread(buf, 1, CHUNK_SIZE, fp);
- if (file_len - done < CHUNK_SIZE &&
- len != file_len - done) {
- LOG(LOG_WARNING, "Last chunk has suspicious size\n");
- } else if (file_len - done >= CHUNK_SIZE &&
- len != CHUNK_SIZE) {
- LOG(LOG_ERROR, "Problem reading file\n");
- free(buf);
- free(d);
- fclose(fp);
- return false;
- }
-
- /* Parse chunk */
- ok = parse_chunk(&ctx, buf, len, d);
- if (!ok) {
- free(buf);
- free(d);
- fclose(fp);
- return false;
- }
- LOG(LOG_DEBUG, "Parsed %zu bytes\n", done + len);
- }
-
- fclose(fp);
-
- if (ctx.state != BEFORE_ID) {
- LOG(LOG_ERROR, "Unexpected end of file\n");
- free(buf);
- free(d);
- return false;
- }
-
- LOG(LOG_INFO, "Parsing complete:\n");
- count = 0;
- for (i = 0; i < 4; i++) {
- LOG(LOG_INFO, " %s: %i gylphs\n", labels[i], ctx.count[i]);
- count += ctx.count[i];
- }
-
- LOG(LOG_RESULT, " Total %i gylphs "
- "(of which %i unique, %i codepoints, %i duplicates)\n",
- count, d->glyphs, ctx.codepoints,
- count - d->glyphs - ctx.codepoints);
-
- free(buf);
-
- *data = d;
- return true;
-}
-
-static void log_usage(const char *argv0)
-{
- level = LOG_INFO;
- LOG(LOG_INFO,
- "Usage:\n"
- "\t%s [options] <in_file> <out_file>\n"
- "\n"
- "Options:\n"
- "\t--help -h Display this text\n"
- "\t--quiet -q Don't show warnings\n"
- "\t--verbose -v Verbose output\n"
- "\t--debug -d Full debug output\n",
- argv0);
-}
-
-int main(int argc, char** argv)
-{
- const char *in_path = NULL;
- const char *out_path = NULL;
- char *header_path = NULL;
- struct font_data *data;
- bool ok;
- int i;
- int opt;
-
- level = LOG_RESULT;
-
- /* Handle program arguments */
- struct option long_options[] = {
- { "help", no_argument, NULL, 'h' },
- { "quiet", no_argument, NULL, 'q' },
- { "verbose", no_argument, NULL, 'v' },
- { "debug", no_argument, NULL, 'd' },
- { "header", required_argument, NULL, 'H' },
- };
-
- while ((opt = getopt_long(argc, argv, "hqvdH:", long_options, NULL)) != -1) {
- switch (opt) {
- case 'q':
- level = LOG_WARNING;
- break;
-
- case 'v':
- level = LOG_INFO;
- break;
-
- case 'd':
- level = LOG_DEBUG;
- break;
-
- case 'H':
- header_path = strdup(optarg);
- break;
-
- case 'h':
- log_usage(argv[0]);
- free(header_path);
- return EXIT_SUCCESS;
-
- default:
- log_usage(argv[0]);
- free(header_path);
- return EXIT_FAILURE;
- }
- }
-
- if ((argc - optind) < 2) {
- log_usage(argv[0]);
- free(header_path);
- return EXIT_FAILURE;
- }
-
- in_path = argv[optind];
- out_path = argv[optind + 1];
-
- LOG(LOG_DEBUG, "Using input path: \"%s\"\n", in_path);
- LOG(LOG_DEBUG, "Using output path: \"%s\"\n", out_path);
-
- ok = load_font(in_path, &data);
- if (!ok) {
- free_table();
- free(header_path);
- return EXIT_FAILURE;
- }
-
- ok = generate_font_source(out_path, data);
- if (ok && (header_path != NULL)) {
- ok = generate_font_header(header_path, data);
- }
- free(header_path);
- free_table();
- for (i = 0; i < 4; i++) {
- free(data->sections[i]);
- }
- free(data);
- if (!ok) {
- return EXIT_FAILURE;
- }
-
- return EXIT_SUCCESS;
-}
diff --git a/utils/convert_image.c b/utils/convert_image.c
deleted file mode 100644
index de772fc..0000000
--- a/utils/convert_image.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright 2009 Daniel Silverstone <dsilvers(a)netsurf-browser.org>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf 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; version 2 of the License.
- *
- * NetSurf 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 <stdbool.h>
-#include <errno.h>
-#include <stdio.h>
-#include <png.h>
-#include <stdlib.h>
-#include <string.h>
-
-#if PNG_LIBPNG_VER < 10209
-#define png_set_expand_gray_1_2_4_to_8(png) png_set_gray_1_2_4_to_8(png)
-#endif
-
-static png_structp png;
-static png_infop info;
-static int interlace;
-static size_t rowbytes;
-static int raw_width, raw_height;
-static int rowstride;
-static unsigned char *bitmap_data;
-static bool is_cursor = true;
-static int raw_hot_x, raw_hot_y;
-
-#define WIDTH (is_cursor?raw_width-1:raw_width)
-#define HEIGHT (is_cursor?raw_height-1:raw_height)
-
-#define HOT_X (is_cursor?raw_hot_x-1:0)
-#define HOT_Y (is_cursor?raw_hot_y-1:0)
-
-#define REAL(v) (is_cursor?v+1:v)
-
-#define PPIX_AT(x,y) ((bitmap_data + (rowstride * y)) + (x * 4))
-
-#define R_OFF 2
-#define G_OFF 1
-#define B_OFF 0
-#define A_OFF 3
-
-#define R_AT(x,y) *(PPIX_AT(x,y) + R_OFF)
-#define G_AT(x,y) *(PPIX_AT(x,y) + G_OFF)
-#define B_AT(x,y) *(PPIX_AT(x,y) + B_OFF)
-#define A_AT(x,y) *(PPIX_AT(x,y) + A_OFF)
-
-
-static void
-usage(void)
-{
- fprintf(stderr, "usage: fb_convert_image input.png output.inc varname\n");
-}
-
-
-static void
-detect_hotspot(void)
-{
- int i;
- int greenpixels = 0;
-
- for (i = 0; i < raw_width; ++i) {
- if (A_AT(i, 0) == 255) {
- if (G_AT(i, 0) == 255) {
- greenpixels++;
- raw_hot_x = i;
- }
- if ((B_AT(i, 0) != 0) || (R_AT(i, 0) != 0)) {
- is_cursor = false;
- return;
- }
- } else if (A_AT(i, 0) != 0) {
- is_cursor = false;
- return;
- }
- }
- if (greenpixels != 1) {
- is_cursor = false;
- return;
- }
-
- for (i = 0; i < raw_height; ++i) {
- if (A_AT(0, i) == 255) {
- if (G_AT(0, i) == 255) {
- greenpixels++;
- raw_hot_y = i;
- }
- if ((B_AT(0, i) != 0) || (R_AT(0, i) != 0)) {
- is_cursor = false;
- return;
- }
- } else if (A_AT(0, i) != 0) {
- is_cursor = false;
- return;
- }
- }
- if (greenpixels != 2) {
- is_cursor = false;
- return;
- }
- printf(" Pointer detected. Adjusted hotspot at %d, %d (0-based)\n",
- raw_hot_x - 1, raw_hot_y - 1);
-}
-
-
-static void
-info_callback(png_structp png, png_infop info)
-{
- int bit_depth, color_type, interlace, intent;
- double gamma;
- png_uint_32 width, height;
-
- /* Read the PNG details */
- png_get_IHDR(png, info, &width, &height, &bit_depth,
- &color_type, &interlace, 0, 0);
-
- /* Set up our transformations */
- if (color_type == PNG_COLOR_TYPE_PALETTE)
- png_set_palette_to_rgb(png);
- if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
- png_set_expand_gray_1_2_4_to_8(png);
- if (png_get_valid(png, info, PNG_INFO_tRNS))
- png_set_tRNS_to_alpha(png);
- if (bit_depth == 16)
- png_set_strip_16(png);
- if (color_type == PNG_COLOR_TYPE_GRAY ||
- color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
- png_set_gray_to_rgb(png);
- if (!(color_type & PNG_COLOR_MASK_ALPHA))
- png_set_filler(png, 0xff, PNG_FILLER_AFTER);
- /* gamma correction - we use 2.2 as our screen gamma
- * this appears to be correct (at least in respect to !Browse)
- * see http://www.w3.org/Graphics/PNG/all_seven.html for a test case
- */
- if (png_get_sRGB(png, info, &intent))
- png_set_gamma(png, 2.2, 0.45455);
- else {
- if (png_get_gAMA(png, info, &gamma))
- png_set_gamma(png, 2.2, gamma);
- else
- png_set_gamma(png, 2.2, 0.45455);
- }
-
-
- png_read_update_info(png, info);
-
- rowbytes = png_get_rowbytes(png, info);
- interlace = (interlace == PNG_INTERLACE_ADAM7);
- raw_width = width;
- raw_height = height;
-
- rowstride = raw_width * 4;
- bitmap_data = malloc(rowstride * raw_height);
-}
-
-static unsigned int interlace_start[8] = {0, 16, 0, 8, 0, 4, 0};
-static unsigned int interlace_step[8] = {28, 28, 12, 12, 4, 4, 0};
-static unsigned int interlace_row_start[8] = {0, 0, 4, 0, 2, 0, 1};
-static unsigned int interlace_row_step[8] = {8, 8, 8, 4, 4, 2, 2};
-
-static void
-row_callback(png_structp png, png_bytep new_row,
- png_uint_32 row_num, int pass)
-{
- unsigned long i, j;
- unsigned int start, step;
- unsigned char *row = bitmap_data + (rowstride * row_num);
-
- if (new_row == 0)
- return;
-
- if (interlace) {
- start = interlace_start[pass];
- step = interlace_step[pass];
- row_num = interlace_row_start[pass] +
- interlace_row_step[pass] * row_num;
-
- /* Copy the data to our current row taking interlacing
- * into consideration */
- row = bitmap_data + (rowstride * row_num);
- for (j = 0, i = start; i < rowbytes; i += step) {
- row[i++] = new_row[j++];
- row[i++] = new_row[j++];
- row[i++] = new_row[j++];
- row[i++] = new_row[j++];
- }
- } else {
- memcpy(row, new_row, rowbytes);
- }
-}
-
-static void
-end_callback(png_structp png, png_infop info)
-{
-}
-
-
-int
-main(int argc, char **argv)
-{
- FILE *f;
- unsigned char buffer[1024];
- int br;
- int x, y, c;
-
- if (argc != 4) {
- usage();
- return 1;
- }
-
- printf(" CONVERT: %s (%s)\n", argv[1], argv[3]);
-
- png = png_create_read_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0);
- info = png_create_info_struct(png);
-
- png_set_progressive_read_fn(png, NULL, info_callback, row_callback, end_callback);
-
- f = fopen(argv[1], "rb");
- if (f == NULL) {
- printf(" Unable to open %s\n", argv[1]);
- return 1;
- }
-
- do {
- br = fread(buffer, 1, 1024, f);
- if (br > 0) {
- png_process_data(png, info, buffer, br);
- }
- } while (br > 0);
-
- if (br < 0) {
- printf("Error reading input: %s\n", strerror(errno));
- fclose(f);
- return 1;
- }
-
- fclose(f);
-
- detect_hotspot();
-
- f = fopen(argv[2], "w");
- if (f == NULL) {
- printf(" Unable to open %s\n", argv[2]);
- return 2;
- }
-
- fprintf(f, "/* This file is auto-generated from %s\n", argv[1]);
- fprintf(f, " *\n * Do not edit this file directly.\n */\n\n");
- fprintf(f, "#include <sys/types.h>\n\n");
- fprintf(f, "#include <stdint.h>\n\n");
- fprintf(f, "#include <stdbool.h>\n\n");
- fprintf(f, "#include <libnsfb.h>\n\n");
- fprintf(f, "#include \"netsurf/plot_style.h\"\n");
- fprintf(f, "#include \"framebuffer/gui.h\"\n");
- fprintf(f, "#include \"framebuffer/fbtk.h\"\n\n");
-
- fprintf(f, "static uint8_t %s_pixdata[] = {\n", argv[3]);
- for (y = 0; y < HEIGHT; ++y) {
- unsigned char *rowptr = bitmap_data + (rowstride * y);
- if (is_cursor) {
- /* If it's a cursor, skip one row and one column */
- rowptr += rowstride + 4;
- }
- fprintf(f, "\t");
- for (x = 0; x < WIDTH; ++x) {
- for (c = 0; c < 4; ++c) {
- unsigned char b = *rowptr++;
- fprintf(f, "0x%02x, ", b);
- }
- }
- fprintf(f, "\n");
- }
- fprintf(f, "};\n\n");
-
- fprintf(f, "struct fbtk_bitmap %s = {\n", argv[3]);
- fprintf(f, "\t.width\t\t= %d,\n", WIDTH);
- fprintf(f, "\t.height\t\t= %d,\n", HEIGHT);
- fprintf(f, "\t.hot_x\t\t= %d,\n", HOT_X);
- fprintf(f, "\t.hot_y\t\t= %d,\n", HOT_Y);
- fprintf(f, "\t.pixdata\t= %s_pixdata,\n", argv[3]);
-
- fprintf(f, "};\n\n");
- fclose(f);
-
- return 0;
-}
-
-/*
- * Local Variables:
- * c-basic-offset:8
- * End:
- */
diff --git a/utils/coverity-build.sh b/utils/coverity-build.sh
deleted file mode 100755
index 24dafd1..0000000
--- a/utils/coverity-build.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/bash
-#
-# Copyright �� 2013 Vincent Sanders <vince(a)netsurf-browser.org>
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# * The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-# CI system coverity build and submission script
-#
-# Usage: coverity-build.sh
-#
-
-# environment variables
-#
-# HOST The ABI to be compiled for
-# COVERITY_TOKEN
-# COVERITY_USER
-# COVERITY_PREFIX path to tools else default is used
-#
-# either PREFIX or JENKINS_HOME
-
-COVERITY_PROJECT="NetSurf+Browser"
-
-# build gtk2, framebuffer and monkey frontend by default
-TARGETS="gtk2 framebuffer monkey"
-
-# setup build environment
-export PREFIX=${PREFIX:-${JENKINS_HOME}/artifacts-${HOST}}
-export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig
-export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PREFIX}/lib
-export PATH=${PATH}:${PREFIX}/bin
-
-# Coverity tools location
-COVERITY_PREFIX=${COVERITY_PREFIX:-/opt/coverity/cov-analysis-linux64-7.5.0}
-COVERITY_VERSION=$(git rev-parse HEAD)
-
-export PATH=${PATH}:${COVERITY_PREFIX}/bin
-
-COVERITY_TAR=coverity-scan.tar
-
-# cleanup before we start
-rm -rf cov-int/ ${COVERITY_TAR} ${COVERITY_TAR}.gz
-
-for TARGET in ${TARGETS}; do
- make clean TARGET=${TARGET}
-done
-
-# Do the builds using coverity data gathering tool
-for TARGET in ${TARGETS}; do
- cov-build --dir cov-int make CCACHE= TARGET=${TARGET}
-done
-
-tar cf ${COVERITY_TAR} cov-int
-
-gzip -9 ${COVERITY_TAR}
-
-curl --form "project=${COVERITY_PROJECT}" --form "token=${COVERITY_TOKEN}" --form "email=${COVERITY_USER}" --form "file=(a)${COVERITY_TAR}.gz" --form "version=${COVERITY_VERSION}" --form "description=Git Head build" "https://scan.coverity.com/builds?project=${COVERITY_PROJECT}"
diff --git a/utils/fetch-transifex.pl b/utils/fetch-transifex.pl
deleted file mode 100644
index 4d40062..0000000
--- a/utils/fetch-transifex.pl
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright �� 2013 Vincent Sanders <vince(a)netsurf-browser.org>
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# * The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-=head1
-
-retrive resource from transifex service
-
-=cut
-
-use strict;
-use Getopt::Long ();
-use LWP::UserAgent;
-use JSON qw( decode_json );
-use Data::Dumper;
-use Fcntl qw( O_CREAT O_EXCL O_WRONLY O_APPEND O_RDONLY O_WRONLY );
-
-use constant GETOPT_OPTS => qw( auto_abbrev no_getopt_compat bundling );
-use constant GETOPT_SPEC =>
- qw( output|o=s
- lang|l=s
- resource|res|r=s
- project|prj|p=s
- user|u=s
- password|w=s
- help|h|? );
-
-# ensure no locale translation is applied and leave it all in UTF-8
-use bytes;
-
-# default option values:
-my %opt = qw( resource messagesany project netsurf user netsurf );
-
-sub output_stream ();
-sub usage ();
-
-sub main ()
-{
- my $output;
- my $opt_ok;
-
- # option parsing:
- Getopt::Long::Configure( GETOPT_OPTS );
- $opt_ok = Getopt::Long::GetOptions( \%opt, GETOPT_SPEC );
-
- if( $opt_ok )
- {
- $output = output_stream();
- }
-
- # double check the options are sane (and we weren't asked for the help)
- if( !$opt_ok || $opt{help} || $opt{lang} !~ /^[a-z]{2}$/ )
- {
- usage();
- }
-
- my $transifexurl = "https://www.transifex.com/api/2/project/" . $opt{project} . "/resource/" . $opt{resource} . "/translation/" . $opt{lang} . "/";
-
- my $ua = LWP::UserAgent->new;
- $ua->credentials(
- 'www.transifex.com:443',
- 'Transifex API',
- $opt{user} => $opt{password}
- );
-
- my $response = $ua->get( $transifexurl );
- if (!$response->is_success) {
- die $response->status_line . " When fetching " . $transifexurl;
- }
-
- # Decode the entire JSON
- my $decoded_json = decode_json( $response->decoded_content );
-
- print ( $output $decoded_json->{'content'} );
-}
-
-main();
-
-sub usage ()
-{
- print(STDERR <<TXT );
-usage:
- $0 -l lang-code \
- [-o output-file] [-r resource] [-p project] [-u user] [-w password]
-
- lang-code : en fr ko ... (no default)
- project : transifex project (default 'netsurf')
- resource : transifex resource (default 'messagesany')
- user : transifex resource (default 'netsurf')
- password : transifex resource (no default)
- output-file: defaults to standard output
-TXT
- exit(1);
-}
-
-sub output_stream ()
-{
- if( $opt{output} )
- {
- my $ofh;
-
- sysopen( $ofh, $opt{output}, O_CREAT|O_EXCL|O_APPEND|O_WRONLY ) ||
- die( "$0: Failed to open output file $opt{output}: $!\n" );
-
- return $ofh;
- }
-
- return \*STDOUT;
-}
diff --git a/utils/git-date.sh b/utils/git-date.sh
deleted file mode 100755
index d9a9059..0000000
--- a/utils/git-date.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-#
-# Copyright �� 2016 Michael Drake <tlsa(a)netsurf-browser.org>
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# * The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-# Sets the timestamp of files to the last time a commit touched them in
-# the given subtree.
-#
-# Usage: git-date.sh <PATH>
-#
-# Example: /utils/git-date.sh riscos/distribution
-
-set -e
-
-for FILE in $(git ls-files ${1})
-do
- TIME=$(git log --pretty=format:%cd -n 1 --date=iso "$FILE")
- touch -m -d "$TIME" "$FILE"
-done
diff --git a/utils/git-testament.pl b/utils/git-testament.pl
deleted file mode 100644
index 5a71a16..0000000
--- a/utils/git-testament.pl
+++ /dev/null
@@ -1,227 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-=head1
-
-Generate a testament describing the current Git status. This gets written
-out in a C form which can be used to construct the NetSurf Git testament
-file for signon notification.
-
-If there is no Git in place, the data is invented arbitrarily.
-
-=cut
-
-$ENV{LC_ALL} = 'C';
-
-my $root = shift @ARGV;
-my $targetfile = shift @ARGV;
-
-my %gitinfo; # The Git information
-
-$root .= "/" unless ($root =~ m@/$@);
-
-my $git_present = 0;
-if ( -d ".git" ) {
- $git_present = 1;
-}
-
-sub compat_tmpnam {
- #��File::Temp was introduced in Perl 5.6.1
- my $have_file_tmp = eval { require File::Temp };
-
- if ( ! $have_file_tmp ) {
- return "$$.gitt";
- } else {
- return File::Temp::tmpnam();
- }
-}
-
-sub compat_md5_hex {
- # Digest::MD5 was introduced in Perl 5.7.1
- my $have_digest_md5 = eval { require Digest::MD5 };
- my $have_md5 = eval { require MD5 };
- my $data = shift;
-
- if ( ! $have_digest_md5 ) {
- return MD5->hexhash($data);
- } else {
- return Digest::MD5->new->add($data)->hexdigest;
- }
-}
-
-sub gather_output {
- my $cmd = shift;
- my $tmpfile = compat_tmpnam();
- local $/ = undef();
- system("$cmd > $tmpfile");
- open(my $CMDH, "<", $tmpfile);
- my $ret = <$CMDH>;
- close($CMDH);
- unlink($tmpfile);
- return $ret;
-}
-
-if ( $git_present ) {
- my @bits = split /\s+/, `git config --get-regexp "^remote.*.url\$"`;
- $gitinfo{url} = $bits[1];
- chomp $gitinfo{url};
- $gitinfo{revision} = `git rev-parse HEAD`;
- chomp $gitinfo{revision};
- $gitinfo{branch} = `git for-each-ref --format="\%(refname:short)" \$(git symbolic-ref HEAD 2>/dev/null || git show-ref -s HEAD)`;
- chomp $gitinfo{branch};
- @bits = split /\s+/, `git describe --tags --exact-match HEAD 2>/dev/null`;
- $bits[0] = "" unless exists $bits[0];
- $gitinfo{tag} = $bits[0];
- $gitinfo{branch} = $gitinfo{tag} if ($gitinfo{tag} =~ m@.@);
-} else {
- $gitinfo{url} = "http://nowhere/tarball/";
- $gitinfo{revision} = "unknown";
- $gitinfo{branch} = "tarball";
- $gitinfo{tag} = "";
-}
-
-my %gitstatus; # The Git status output
-
-if ( $git_present ) {
- foreach my $line (split(/\n/, gather_output("git status --porcelain"))) {
- chomp $line;
- my ($X, $Y, $fp) = ($line =~ /^(.)(.) (.+)$/);
- my $fn = $fp;
- $fn = ($fp =~ /(.+) ->/) if ($fp =~ / -> /);
- next unless (care_about_file($fn));
- # Normalise $X and $Y (WT and index) into a simple A/M/D etc
-
- $gitstatus{$fn} = "$X$Y";
- }
-}
-
-my %userinfo; # The information about the current user
-
-{
- my @pwent = getpwuid($<);
- $userinfo{USERNAME} = $pwent[0];
- my $gecos = $pwent[6];
- $gecos =~ s/,.+//g;
- $gecos =~ s/"/'/g;
- $gecos =~ s/\\/\\\\/g;
- $userinfo{GECOS} = $gecos;
-}
-
-# The current date, in AmigaOS version friendly format (dd.mm.yyyy)
-
-my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
-my $compiledate = sprintf("%02d.%02d.%d",$mday,$mon+1,$year+1900);
-chomp $compiledate;
-
-# Spew the testament out
-
-my $testament = "";
-
-$testament .= "#define USERNAME \"$userinfo{USERNAME}\"\n";
-$testament .= "#define GECOS \"$userinfo{GECOS}\"\n";
-
-my $qroot = $root;
-$qroot =~ s/"/\\"/g;
-
-my $hostname = $ENV{HOSTNAME};
-
-unless ( defined($hostname) && $hostname ne "") {
- # Try hostname command if env-var empty
- $hostname = gather_output("hostname");
- chomp $hostname;
-}
-
-$hostname = "unknown-host" unless (defined($hostname) && $hostname ne "");
-$hostname =~ s/"/\\"/g;
-
-$testament .= "#define WT_ROOT \"$qroot\"\n";
-$testament .= "#define WT_HOSTNAME \"$hostname\"\n";
-$testament .= "#define WT_COMPILEDATE \"$compiledate\"\n";
-
-my $cibuild = $ENV{CI_BUILD};
-if (defined ($cibuild) && ($cibuild ne '')) {
- $testament .= "#define CI_BUILD \"$cibuild\"\n";
-}
-
-$testament .= "#define WT_BRANCHPATH \"$gitinfo{branch}\"\n";
-
-if ($gitinfo{branch} =~ m@^master$@) {
- $testament .= "#define WT_BRANCHISMASTER 1\n";
-}
-if ($gitinfo{tag} =~ m@.@) {
- $testament .= "#define WT_BRANCHISTAG 1\n";
- $testament .= "#define WT_TAGIS \"$gitinfo{tag}\"\n";
-}
-if ($gitinfo{url} =~ m@/tarball/@) {
- $testament .= "#define WT_NO_GIT 1\n";
-}
-$testament .= "#define WT_REVID \"$gitinfo{revision}\"\n";
-$testament .= "#define WT_MODIFIED " . scalar(keys %gitstatus) . "\n";
-$testament .= "#define WT_MODIFICATIONS {\\\n";
-my $doneone = 0;
-foreach my $filename (sort keys %gitstatus) {
- if ($doneone) {
- $testament .= ", \\\n";
- }
- $testament .= " { \"$filename\", \"$gitstatus{$filename}\" }";
- $doneone = 1;
-}
-$testament .= " \\\n}\n";
-
-my $oldcsum = "";
-if ( -e $targetfile ) {
- open(my $OLDVALUES, "<", $targetfile);
- foreach my $line (readline($OLDVALUES)) {
- if ($line =~ /MD5:([0-9a-f]+)/) {
- $oldcsum = $1;
- }
- }
- close($OLDVALUES);
-}
-
-my $newcsum = compat_md5_hex($testament);
-
-if ($oldcsum ne $newcsum) {
- print "TESTMENT: $targetfile\n";
- open(my $NEWVALUES, ">", $targetfile) or die "$!";
- print $NEWVALUES "/* ", $targetfile,"\n";
- print $NEWVALUES <<'EOS';
- *
- * Revision testament.
- *
- * *WARNING* this file is automatically generated by git-testament.pl
- *
- * Copyright 2012 NetSurf Browser Project
- */
-
-EOS
-
- print $NEWVALUES "#ifndef NETSURF_REVISION_TESTAMENT\n";
- print $NEWVALUES "#define NETSURF_REVISION_TESTAMENT \"$newcsum\"\n\n";
- print $NEWVALUES "/* Revision testament checksum:\n";
- print $NEWVALUES " * MD5:", $newcsum,"\n */\n\n";
- print $NEWVALUES "/* Revision testament: */\n";
- print $NEWVALUES $testament;
- print $NEWVALUES "\n#endif\n";
- close($NEWVALUES);
- foreach my $unwanted (@ARGV) {
- next unless(-e $unwanted);
- print "TESTAMENT: Removing $unwanted\n";
- system("rm", "-f", "--", $unwanted);
- }
-} else {
- print "TESTMENT: unchanged\n";
-}
-
-exit 0;
-
-sub care_about_file {
- my ($fn) = @_;
- return 0 if ($fn =~ /\.d$/); # Don't care for extraneous DEP files
- return 0 if ($fn =~ /\.a$/); # Don't care for extraneous archive files
- return 0 if ($fn =~ /\.md5$/); # Don't care for md5sum files
- return 0 if ($fn =~ /\.map$/); # Don't care for map files
- return 0 if ($fn =~ /\.gitt$/); # Don't care for testament temp files
- return 1;
-}
diff --git a/utils/idna-derived-props-gen.pl b/utils/idna-derived-props-gen.pl
deleted file mode 100644
index a9e9b4b..0000000
--- a/utils/idna-derived-props-gen.pl
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright 2014 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
-#
-# This file is part of NetSurf, http://www.netsurf-browser.org/
-#
-# NetSurf 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; version 2 of the License.
-#
-# NetSurf 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/>.
-
-use strict;
-
-use Getopt::Long ();
-use Fcntl qw( O_CREAT O_EXCL O_WRONLY O_APPEND O_RDONLY O_WRONLY );
-
-use constant GETOPT_OPTS => qw( auto_abbrev no_getopt_compat bundling );
-use constant GETOPT_SPEC =>
- qw( output|o=s
- properties|p=s
- joining|j=s
- help|h|? );
-
-# default option values:
-my %opt = qw(properties "idna-tables-properties.csv" joining "DerivedJoiningType.txt");
-
-sub usage
-{
- my @fmt = map { s/::$//; $_ } keys(%{$::{'msgfmt::'}});
- print(STDERR <<TXT );
-usage:
- $0 [-o output-file] -p properties-file -j joining-file
-
- output-file : defaults to standard output
-TXT
- exit(1);
-}
-
-sub output_stream
-{
- if( $opt{output} )
- {
- my $ofh;
-
- sysopen( $ofh, $opt{output}, O_CREAT|O_EXCL|O_APPEND|O_WRONLY ) ||
- die( "$0: Failed to open output file $opt{output}: $!\n" );
-
- return $ofh;
- }
-
- return \*STDOUT;
-}
-
-sub input_stream
-{
- my $stream = $_[0];
-
- if( $opt{$stream} )
- {
- my $ifh;
-
- sysopen( $ifh, $opt{$stream}, O_RDONLY ) ||
- die( "$0: Failed to open input file $stream: $!\n" );
-
- return $ifh;
- }
- die( "$0: No input file for $stream");
-}
-
-sub main
-{
- my $output;
- my $properties;
- my $joining;
- my $opt_ok;
-
- # option parsing:
- Getopt::Long::Configure( GETOPT_OPTS );
- $opt_ok = Getopt::Long::GetOptions( \%opt, GETOPT_SPEC );
-
- # double check the options are sane (and we weren't asked for the help)
- if( !$opt_ok || $opt{help} )
- {
- usage();
- }
-
- # open the appropriate files
- $properties = input_stream("properties");
- $joining = input_stream("joining");
- $output = output_stream();
-
-
- print { $output } <<HEADER;
-/* This file is generated by idna-derived-props-gen.pl
- * DO NOT EDIT BY HAND
- */
-#ifndef _NETSURF_UTILS_IDNA_PROPS_H_
-#define _NETSURF_UTILS_IDNA_PROPS_H_
-
-typedef enum idna_property {
- IDNA_P_PVALID = 1,
- IDNA_P_CONTEXTJ = 2,
- IDNA_P_CONTEXTO = 3,
- IDNA_P_DISALLOWED = 4,
- IDNA_P_UNASSIGNED = 5
-} idna_property;
-
-typedef enum idna_unicode_jt {
- IDNA_UNICODE_JT_U = 0,
- IDNA_UNICODE_JT_C = 1,
- IDNA_UNICODE_JT_D = 2,
- IDNA_UNICODE_JT_R = 3,
- IDNA_UNICODE_JT_T = 4,
- IDNA_UNICODE_JT_L = 5
-} idna_unicode_jt;
-
-
-typedef struct idna_table {
- int32_t start;
- int32_t end;
- union p {
- idna_property property;
- idna_unicode_jt jt;
- } p;
-} idna_table;
-
-idna_table idna_derived[] = {
-HEADER
-
-
- my $line = <$properties>; # discard header line
-
- while($line = <$properties>) {
- my @items = split(/\,/, $line);
- my @codepoints = split(/-/, $items[0]);
- if($#codepoints == 0) {
- $codepoints[1] = $codepoints[0];
- }
- print { $output } "\t{ 0x" . $codepoints[0] . ", 0x" . $codepoints[1] . ", .p.property = IDNA_P_" . $items[1] . " },\n";
- }
-
- close($properties);
-
- print { $output } <<HEADER;
- { 0, 0, .p.property = 0}
-};
-
-idna_table idna_joiningtype[] = {
-HEADER
-
-
- while($line = <$joining>) {
- chop($line);
- if(substr($line, 0, 1) eq '#') {next;}
- if(length($line) == 0) {next;}
- my @items = split(/;/, $line);
- my @codepoints = split(/\./, $items[0]);
- if($#codepoints == 0) {
- $codepoints[2] = $codepoints[0];
- }
- print { $output } "\t{ 0x" . $codepoints[0] . ", 0x" . $codepoints[2] . ", .p.jt = IDNA_UNICODE_JT_" . substr($items[1], 1, 1) . " },\n";
- }
-
- close($joining);
-
- print { $output } <<HEADER;
- { 0, 0, .p.jt = 0}
-};
-#endif
-HEADER
-
-
-}
-
-main();
diff --git a/utils/idna-tables-properties.csv b/utils/idna-tables-properties.csv
deleted file mode 100644
index a74547b..0000000
--- a/utils/idna-tables-properties.csv
+++ /dev/null
@@ -1,2322 +0,0 @@
-Codepoint,Property,Description
-0000-002C,DISALLOWED,NULL..COMMA
-002D,PVALID,HYPHEN-MINUS
-002E-002F,DISALLOWED,FULL STOP..SOLIDUS
-0030-0039,PVALID,DIGIT ZERO..DIGIT NINE
-003A-0060,DISALLOWED,COLON..GRAVE ACCENT
-0061-007A,PVALID,LATIN SMALL LETTER A..LATIN SMALL LETTER Z
-007B-00B6,DISALLOWED,LEFT CURLY BRACKET..PILCROW SIGN
-00B7,CONTEXTO,MIDDLE DOT
-00B8-00DE,DISALLOWED,CEDILLA..LATIN CAPITAL LETTER THORN
-00DF-00F6,PVALID,LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS
-00F7,DISALLOWED,DIVISION SIGN
-00F8-00FF,PVALID,LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
-0100,DISALLOWED,LATIN CAPITAL LETTER A WITH MACRON
-0101,PVALID,LATIN SMALL LETTER A WITH MACRON
-0102,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE
-0103,PVALID,LATIN SMALL LETTER A WITH BREVE
-0104,DISALLOWED,LATIN CAPITAL LETTER A WITH OGONEK
-0105,PVALID,LATIN SMALL LETTER A WITH OGONEK
-0106,DISALLOWED,LATIN CAPITAL LETTER C WITH ACUTE
-0107,PVALID,LATIN SMALL LETTER C WITH ACUTE
-0108,DISALLOWED,LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-0109,PVALID,LATIN SMALL LETTER C WITH CIRCUMFLEX
-010A,DISALLOWED,LATIN CAPITAL LETTER C WITH DOT ABOVE
-010B,PVALID,LATIN SMALL LETTER C WITH DOT ABOVE
-010C,DISALLOWED,LATIN CAPITAL LETTER C WITH CARON
-010D,PVALID,LATIN SMALL LETTER C WITH CARON
-010E,DISALLOWED,LATIN CAPITAL LETTER D WITH CARON
-010F,PVALID,LATIN SMALL LETTER D WITH CARON
-0110,DISALLOWED,LATIN CAPITAL LETTER D WITH STROKE
-0111,PVALID,LATIN SMALL LETTER D WITH STROKE
-0112,DISALLOWED,LATIN CAPITAL LETTER E WITH MACRON
-0113,PVALID,LATIN SMALL LETTER E WITH MACRON
-0114,DISALLOWED,LATIN CAPITAL LETTER E WITH BREVE
-0115,PVALID,LATIN SMALL LETTER E WITH BREVE
-0116,DISALLOWED,LATIN CAPITAL LETTER E WITH DOT ABOVE
-0117,PVALID,LATIN SMALL LETTER E WITH DOT ABOVE
-0118,DISALLOWED,LATIN CAPITAL LETTER E WITH OGONEK
-0119,PVALID,LATIN SMALL LETTER E WITH OGONEK
-011A,DISALLOWED,LATIN CAPITAL LETTER E WITH CARON
-011B,PVALID,LATIN SMALL LETTER E WITH CARON
-011C,DISALLOWED,LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-011D,PVALID,LATIN SMALL LETTER G WITH CIRCUMFLEX
-011E,DISALLOWED,LATIN CAPITAL LETTER G WITH BREVE
-011F,PVALID,LATIN SMALL LETTER G WITH BREVE
-0120,DISALLOWED,LATIN CAPITAL LETTER G WITH DOT ABOVE
-0121,PVALID,LATIN SMALL LETTER G WITH DOT ABOVE
-0122,DISALLOWED,LATIN CAPITAL LETTER G WITH CEDILLA
-0123,PVALID,LATIN SMALL LETTER G WITH CEDILLA
-0124,DISALLOWED,LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0125,PVALID,LATIN SMALL LETTER H WITH CIRCUMFLEX
-0126,DISALLOWED,LATIN CAPITAL LETTER H WITH STROKE
-0127,PVALID,LATIN SMALL LETTER H WITH STROKE
-0128,DISALLOWED,LATIN CAPITAL LETTER I WITH TILDE
-0129,PVALID,LATIN SMALL LETTER I WITH TILDE
-012A,DISALLOWED,LATIN CAPITAL LETTER I WITH MACRON
-012B,PVALID,LATIN SMALL LETTER I WITH MACRON
-012C,DISALLOWED,LATIN CAPITAL LETTER I WITH BREVE
-012D,PVALID,LATIN SMALL LETTER I WITH BREVE
-012E,DISALLOWED,LATIN CAPITAL LETTER I WITH OGONEK
-012F,PVALID,LATIN SMALL LETTER I WITH OGONEK
-0130,DISALLOWED,LATIN CAPITAL LETTER I WITH DOT ABOVE
-0131,PVALID,LATIN SMALL LETTER DOTLESS I
-0132-0134,DISALLOWED,LATIN CAPITAL LIGATURE IJ..LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-0135,PVALID,LATIN SMALL LETTER J WITH CIRCUMFLEX
-0136,DISALLOWED,LATIN CAPITAL LETTER K WITH CEDILLA
-0137-0138,PVALID,LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA
-0139,DISALLOWED,LATIN CAPITAL LETTER L WITH ACUTE
-013A,PVALID,LATIN SMALL LETTER L WITH ACUTE
-013B,DISALLOWED,LATIN CAPITAL LETTER L WITH CEDILLA
-013C,PVALID,LATIN SMALL LETTER L WITH CEDILLA
-013D,DISALLOWED,LATIN CAPITAL LETTER L WITH CARON
-013E,PVALID,LATIN SMALL LETTER L WITH CARON
-013F-0141,DISALLOWED,LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN CAPITAL LETTER L WITH STROKE
-0142,PVALID,LATIN SMALL LETTER L WITH STROKE
-0143,DISALLOWED,LATIN CAPITAL LETTER N WITH ACUTE
-0144,PVALID,LATIN SMALL LETTER N WITH ACUTE
-0145,DISALLOWED,LATIN CAPITAL LETTER N WITH CEDILLA
-0146,PVALID,LATIN SMALL LETTER N WITH CEDILLA
-0147,DISALLOWED,LATIN CAPITAL LETTER N WITH CARON
-0148,PVALID,LATIN SMALL LETTER N WITH CARON
-0149-014A,DISALLOWED,LATIN SMALL LETTER N PRECEDED BY APOSTROPHE..LATIN CAPITAL LETTER ENG
-014B,PVALID,LATIN SMALL LETTER ENG
-014C,DISALLOWED,LATIN CAPITAL LETTER O WITH MACRON
-014D,PVALID,LATIN SMALL LETTER O WITH MACRON
-014E,DISALLOWED,LATIN CAPITAL LETTER O WITH BREVE
-014F,PVALID,LATIN SMALL LETTER O WITH BREVE
-0150,DISALLOWED,LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0151,PVALID,LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0152,DISALLOWED,LATIN CAPITAL LIGATURE OE
-0153,PVALID,LATIN SMALL LIGATURE OE
-0154,DISALLOWED,LATIN CAPITAL LETTER R WITH ACUTE
-0155,PVALID,LATIN SMALL LETTER R WITH ACUTE
-0156,DISALLOWED,LATIN CAPITAL LETTER R WITH CEDILLA
-0157,PVALID,LATIN SMALL LETTER R WITH CEDILLA
-0158,DISALLOWED,LATIN CAPITAL LETTER R WITH CARON
-0159,PVALID,LATIN SMALL LETTER R WITH CARON
-015A,DISALLOWED,LATIN CAPITAL LETTER S WITH ACUTE
-015B,PVALID,LATIN SMALL LETTER S WITH ACUTE
-015C,DISALLOWED,LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-015D,PVALID,LATIN SMALL LETTER S WITH CIRCUMFLEX
-015E,DISALLOWED,LATIN CAPITAL LETTER S WITH CEDILLA
-015F,PVALID,LATIN SMALL LETTER S WITH CEDILLA
-0160,DISALLOWED,LATIN CAPITAL LETTER S WITH CARON
-0161,PVALID,LATIN SMALL LETTER S WITH CARON
-0162,DISALLOWED,LATIN CAPITAL LETTER T WITH CEDILLA
-0163,PVALID,LATIN SMALL LETTER T WITH CEDILLA
-0164,DISALLOWED,LATIN CAPITAL LETTER T WITH CARON
-0165,PVALID,LATIN SMALL LETTER T WITH CARON
-0166,DISALLOWED,LATIN CAPITAL LETTER T WITH STROKE
-0167,PVALID,LATIN SMALL LETTER T WITH STROKE
-0168,DISALLOWED,LATIN CAPITAL LETTER U WITH TILDE
-0169,PVALID,LATIN SMALL LETTER U WITH TILDE
-016A,DISALLOWED,LATIN CAPITAL LETTER U WITH MACRON
-016B,PVALID,LATIN SMALL LETTER U WITH MACRON
-016C,DISALLOWED,LATIN CAPITAL LETTER U WITH BREVE
-016D,PVALID,LATIN SMALL LETTER U WITH BREVE
-016E,DISALLOWED,LATIN CAPITAL LETTER U WITH RING ABOVE
-016F,PVALID,LATIN SMALL LETTER U WITH RING ABOVE
-0170,DISALLOWED,LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0171,PVALID,LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0172,DISALLOWED,LATIN CAPITAL LETTER U WITH OGONEK
-0173,PVALID,LATIN SMALL LETTER U WITH OGONEK
-0174,DISALLOWED,LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-0175,PVALID,LATIN SMALL LETTER W WITH CIRCUMFLEX
-0176,DISALLOWED,LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-0177,PVALID,LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0178-0179,DISALLOWED,LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE
-017A,PVALID,LATIN SMALL LETTER Z WITH ACUTE
-017B,DISALLOWED,LATIN CAPITAL LETTER Z WITH DOT ABOVE
-017C,PVALID,LATIN SMALL LETTER Z WITH DOT ABOVE
-017D,DISALLOWED,LATIN CAPITAL LETTER Z WITH CARON
-017E,PVALID,LATIN SMALL LETTER Z WITH CARON
-017F,DISALLOWED,LATIN SMALL LETTER LONG S
-0180,PVALID,LATIN SMALL LETTER B WITH STROKE
-0181-0182,DISALLOWED,LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR
-0183,PVALID,LATIN SMALL LETTER B WITH TOPBAR
-0184,DISALLOWED,LATIN CAPITAL LETTER TONE SIX
-0185,PVALID,LATIN SMALL LETTER TONE SIX
-0186-0187,DISALLOWED,LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK
-0188,PVALID,LATIN SMALL LETTER C WITH HOOK
-0189-018B,DISALLOWED,LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR
-018C-018D,PVALID,LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA
-018E-0191,DISALLOWED,LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK
-0192,PVALID,LATIN SMALL LETTER F WITH HOOK
-0193-0194,DISALLOWED,LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA
-0195,PVALID,LATIN SMALL LETTER HV
-0196-0198,DISALLOWED,LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK
-0199-019B,PVALID,LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
-019C-019D,DISALLOWED,LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK
-019E,PVALID,LATIN SMALL LETTER N WITH LONG RIGHT LEG
-019F-01A0,DISALLOWED,LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN
-01A1,PVALID,LATIN SMALL LETTER O WITH HORN
-01A2,DISALLOWED,LATIN CAPITAL LETTER OI
-01A3,PVALID,LATIN SMALL LETTER OI
-01A4,DISALLOWED,LATIN CAPITAL LETTER P WITH HOOK
-01A5,PVALID,LATIN SMALL LETTER P WITH HOOK
-01A6-01A7,DISALLOWED,LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO
-01A8,PVALID,LATIN SMALL LETTER TONE TWO
-01A9,DISALLOWED,LATIN CAPITAL LETTER ESH
-01AA-01AB,PVALID,LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK
-01AC,DISALLOWED,LATIN CAPITAL LETTER T WITH HOOK
-01AD,PVALID,LATIN SMALL LETTER T WITH HOOK
-01AE-01AF,DISALLOWED,LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN
-01B0,PVALID,LATIN SMALL LETTER U WITH HORN
-01B1-01B3,DISALLOWED,LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK
-01B4,PVALID,LATIN SMALL LETTER Y WITH HOOK
-01B5,DISALLOWED,LATIN CAPITAL LETTER Z WITH STROKE
-01B6,PVALID,LATIN SMALL LETTER Z WITH STROKE
-01B7-01B8,DISALLOWED,LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED
-01B9-01BB,PVALID,LATIN SMALL LETTER EZH REVERSED..LATIN LETTER TWO WITH STROKE
-01BC,DISALLOWED,LATIN CAPITAL LETTER TONE FIVE
-01BD-01C3,PVALID,LATIN SMALL LETTER TONE FIVE..LATIN LETTER RETROFLEX CLICK
-01C4-01CD,DISALLOWED,LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON
-01CE,PVALID,LATIN SMALL LETTER A WITH CARON
-01CF,DISALLOWED,LATIN CAPITAL LETTER I WITH CARON
-01D0,PVALID,LATIN SMALL LETTER I WITH CARON
-01D1,DISALLOWED,LATIN CAPITAL LETTER O WITH CARON
-01D2,PVALID,LATIN SMALL LETTER O WITH CARON
-01D3,DISALLOWED,LATIN CAPITAL LETTER U WITH CARON
-01D4,PVALID,LATIN SMALL LETTER U WITH CARON
-01D5,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01D6,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D7,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D8,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D9,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-01DA,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01DB,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01DC-01DD,PVALID,LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E
-01DE,DISALLOWED,LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-01DF,PVALID,LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01E0,DISALLOWED,LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-01E1,PVALID,LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-01E2,DISALLOWED,LATIN CAPITAL LETTER AE WITH MACRON
-01E3,PVALID,LATIN SMALL LETTER AE WITH MACRON
-01E4,DISALLOWED,LATIN CAPITAL LETTER G WITH STROKE
-01E5,PVALID,LATIN SMALL LETTER G WITH STROKE
-01E6,DISALLOWED,LATIN CAPITAL LETTER G WITH CARON
-01E7,PVALID,LATIN SMALL LETTER G WITH CARON
-01E8,DISALLOWED,LATIN CAPITAL LETTER K WITH CARON
-01E9,PVALID,LATIN SMALL LETTER K WITH CARON
-01EA,DISALLOWED,LATIN CAPITAL LETTER O WITH OGONEK
-01EB,PVALID,LATIN SMALL LETTER O WITH OGONEK
-01EC,DISALLOWED,LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-01ED,PVALID,LATIN SMALL LETTER O WITH OGONEK AND MACRON
-01EE,DISALLOWED,LATIN CAPITAL LETTER EZH WITH CARON
-01EF-01F0,PVALID,LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON
-01F1-01F4,DISALLOWED,LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTER G WITH ACUTE
-01F5,PVALID,LATIN SMALL LETTER G WITH ACUTE
-01F6-01F8,DISALLOWED,LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE
-01F9,PVALID,LATIN SMALL LETTER N WITH GRAVE
-01FA,DISALLOWED,LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-01FB,PVALID,LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FC,DISALLOWED,LATIN CAPITAL LETTER AE WITH ACUTE
-01FD,PVALID,LATIN SMALL LETTER AE WITH ACUTE
-01FE,DISALLOWED,LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-01FF,PVALID,LATIN SMALL LETTER O WITH STROKE AND ACUTE
-0200,DISALLOWED,LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-0201,PVALID,LATIN SMALL LETTER A WITH DOUBLE GRAVE
-0202,DISALLOWED,LATIN CAPITAL LETTER A WITH INVERTED BREVE
-0203,PVALID,LATIN SMALL LETTER A WITH INVERTED BREVE
-0204,DISALLOWED,LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-0205,PVALID,LATIN SMALL LETTER E WITH DOUBLE GRAVE
-0206,DISALLOWED,LATIN CAPITAL LETTER E WITH INVERTED BREVE
-0207,PVALID,LATIN SMALL LETTER E WITH INVERTED BREVE
-0208,DISALLOWED,LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-0209,PVALID,LATIN SMALL LETTER I WITH DOUBLE GRAVE
-020A,DISALLOWED,LATIN CAPITAL LETTER I WITH INVERTED BREVE
-020B,PVALID,LATIN SMALL LETTER I WITH INVERTED BREVE
-020C,DISALLOWED,LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-020D,PVALID,LATIN SMALL LETTER O WITH DOUBLE GRAVE
-020E,DISALLOWED,LATIN CAPITAL LETTER O WITH INVERTED BREVE
-020F,PVALID,LATIN SMALL LETTER O WITH INVERTED BREVE
-0210,DISALLOWED,LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-0211,PVALID,LATIN SMALL LETTER R WITH DOUBLE GRAVE
-0212,DISALLOWED,LATIN CAPITAL LETTER R WITH INVERTED BREVE
-0213,PVALID,LATIN SMALL LETTER R WITH INVERTED BREVE
-0214,DISALLOWED,LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-0215,PVALID,LATIN SMALL LETTER U WITH DOUBLE GRAVE
-0216,DISALLOWED,LATIN CAPITAL LETTER U WITH INVERTED BREVE
-0217,PVALID,LATIN SMALL LETTER U WITH INVERTED BREVE
-0218,DISALLOWED,LATIN CAPITAL LETTER S WITH COMMA BELOW
-0219,PVALID,LATIN SMALL LETTER S WITH COMMA BELOW
-021A,DISALLOWED,LATIN CAPITAL LETTER T WITH COMMA BELOW
-021B,PVALID,LATIN SMALL LETTER T WITH COMMA BELOW
-021C,DISALLOWED,LATIN CAPITAL LETTER YOGH
-021D,PVALID,LATIN SMALL LETTER YOGH
-021E,DISALLOWED,LATIN CAPITAL LETTER H WITH CARON
-021F,PVALID,LATIN SMALL LETTER H WITH CARON
-0220,DISALLOWED,LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-0221,PVALID,LATIN SMALL LETTER D WITH CURL
-0222,DISALLOWED,LATIN CAPITAL LETTER OU
-0223,PVALID,LATIN SMALL LETTER OU
-0224,DISALLOWED,LATIN CAPITAL LETTER Z WITH HOOK
-0225,PVALID,LATIN SMALL LETTER Z WITH HOOK
-0226,DISALLOWED,LATIN CAPITAL LETTER A WITH DOT ABOVE
-0227,PVALID,LATIN SMALL LETTER A WITH DOT ABOVE
-0228,DISALLOWED,LATIN CAPITAL LETTER E WITH CEDILLA
-0229,PVALID,LATIN SMALL LETTER E WITH CEDILLA
-022A,DISALLOWED,LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-022B,PVALID,LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022C,DISALLOWED,LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-022D,PVALID,LATIN SMALL LETTER O WITH TILDE AND MACRON
-022E,DISALLOWED,LATIN CAPITAL LETTER O WITH DOT ABOVE
-022F,PVALID,LATIN SMALL LETTER O WITH DOT ABOVE
-0230,DISALLOWED,LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-0231,PVALID,LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-0232,DISALLOWED,LATIN CAPITAL LETTER Y WITH MACRON
-0233-0239,PVALID,LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH
-023A-023B,DISALLOWED,LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE
-023C,PVALID,LATIN SMALL LETTER C WITH STROKE
-023D-023E,DISALLOWED,LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-023F-0240,PVALID,LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL
-0241,DISALLOWED,LATIN CAPITAL LETTER GLOTTAL STOP
-0242,PVALID,LATIN SMALL LETTER GLOTTAL STOP
-0243-0246,DISALLOWED,LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE
-0247,PVALID,LATIN SMALL LETTER E WITH STROKE
-0248,DISALLOWED,LATIN CAPITAL LETTER J WITH STROKE
-0249,PVALID,LATIN SMALL LETTER J WITH STROKE
-024A,DISALLOWED,LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-024B,PVALID,LATIN SMALL LETTER Q WITH HOOK TAIL
-024C,DISALLOWED,LATIN CAPITAL LETTER R WITH STROKE
-024D,PVALID,LATIN SMALL LETTER R WITH STROKE
-024E,DISALLOWED,LATIN CAPITAL LETTER Y WITH STROKE
-024F-02AF,PVALID,LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-02B0-02B8,DISALLOWED,MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
-02B9-02C1,PVALID,MODIFIER LETTER PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP
-02C2-02C5,DISALLOWED,MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
-02C6-02D1,PVALID,MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
-02D2-02EB,DISALLOWED,MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC,PVALID,MODIFIER LETTER VOICING
-02ED,DISALLOWED,MODIFIER LETTER UNASPIRATED
-02EE,PVALID,MODIFIER LETTER DOUBLE APOSTROPHE
-02EF-02FF,DISALLOWED,MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
-0300-033F,PVALID,COMBINING GRAVE ACCENT..COMBINING DOUBLE OVERLINE
-0340-0341,DISALLOWED,COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
-0342,PVALID,COMBINING GREEK PERISPOMENI
-0343-0345,DISALLOWED,COMBINING GREEK KORONIS..COMBINING GREEK YPOGEGRAMMENI
-0346-034E,PVALID,COMBINING BRIDGE ABOVE..COMBINING UPWARDS ARROW BELOW
-034F,DISALLOWED,COMBINING GRAPHEME JOINER
-0350-036F,PVALID,COMBINING RIGHT ARROWHEAD ABOVE..COMBINING LATIN SMALL LETTER X
-0370,DISALLOWED,GREEK CAPITAL LETTER HETA
-0371,PVALID,GREEK SMALL LETTER HETA
-0372,DISALLOWED,GREEK CAPITAL LETTER ARCHAIC SAMPI
-0373,PVALID,GREEK SMALL LETTER ARCHAIC SAMPI
-0374,DISALLOWED,GREEK NUMERAL SIGN
-0375,CONTEXTO,GREEK LOWER NUMERAL SIGN
-0376,DISALLOWED,GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
-0377,PVALID,GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-0378-0379,UNASSIGNED,<RESERVED>..<RESERVED>
-037A,DISALLOWED,GREEK YPOGEGRAMMENI
-037B-037D,PVALID,GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-037E,DISALLOWED,GREEK QUESTION MARK
-037F-0383,UNASSIGNED,<RESERVED>..<RESERVED>
-0384-038A,DISALLOWED,GREEK TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
-038B,UNASSIGNED,<RESERVED>
-038C,DISALLOWED,GREEK CAPITAL LETTER OMICRON WITH TONOS
-038D,UNASSIGNED,<RESERVED>
-038E-038F,DISALLOWED,GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS
-0390,PVALID,GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-0391-03A1,DISALLOWED,GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
-03A2,UNASSIGNED,<RESERVED>
-03A3-03AB,DISALLOWED,GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-03AC-03CE,PVALID,GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS
-03CF-03D6,DISALLOWED,GREEK CAPITAL KAI SYMBOL..GREEK PI SYMBOL
-03D7,PVALID,GREEK KAI SYMBOL
-03D8,DISALLOWED,GREEK LETTER ARCHAIC KOPPA
-03D9,PVALID,GREEK SMALL LETTER ARCHAIC KOPPA
-03DA,DISALLOWED,GREEK LETTER STIGMA
-03DB,PVALID,GREEK SMALL LETTER STIGMA
-03DC,DISALLOWED,GREEK LETTER DIGAMMA
-03DD,PVALID,GREEK SMALL LETTER DIGAMMA
-03DE,DISALLOWED,GREEK LETTER KOPPA
-03DF,PVALID,GREEK SMALL LETTER KOPPA
-03E0,DISALLOWED,GREEK LETTER SAMPI
-03E1,PVALID,GREEK SMALL LETTER SAMPI
-03E2,DISALLOWED,COPTIC CAPITAL LETTER SHEI
-03E3,PVALID,COPTIC SMALL LETTER SHEI
-03E4,DISALLOWED,COPTIC CAPITAL LETTER FEI
-03E5,PVALID,COPTIC SMALL LETTER FEI
-03E6,DISALLOWED,COPTIC CAPITAL LETTER KHEI
-03E7,PVALID,COPTIC SMALL LETTER KHEI
-03E8,DISALLOWED,COPTIC CAPITAL LETTER HORI
-03E9,PVALID,COPTIC SMALL LETTER HORI
-03EA,DISALLOWED,COPTIC CAPITAL LETTER GANGIA
-03EB,PVALID,COPTIC SMALL LETTER GANGIA
-03EC,DISALLOWED,COPTIC CAPITAL LETTER SHIMA
-03ED,PVALID,COPTIC SMALL LETTER SHIMA
-03EE,DISALLOWED,COPTIC CAPITAL LETTER DEI
-03EF,PVALID,COPTIC SMALL LETTER DEI
-03F0-03F2,DISALLOWED,GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBOL
-03F3,PVALID,GREEK LETTER YOT
-03F4-03F7,DISALLOWED,GREEK CAPITAL THETA SYMBOL..GREEK CAPITAL LETTER SHO
-03F8,PVALID,GREEK SMALL LETTER SHO
-03F9-03FA,DISALLOWED,GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN
-03FB-03FC,PVALID,GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL
-03FD-042F,DISALLOWED,GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA
-0430-045F,PVALID,CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE
-0460,DISALLOWED,CYRILLIC CAPITAL LETTER OMEGA
-0461,PVALID,CYRILLIC SMALL LETTER OMEGA
-0462,DISALLOWED,CYRILLIC CAPITAL LETTER YAT
-0463,PVALID,CYRILLIC SMALL LETTER YAT
-0464,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED E
-0465,PVALID,CYRILLIC SMALL LETTER IOTIFIED E
-0466,DISALLOWED,CYRILLIC CAPITAL LETTER LITTLE YUS
-0467,PVALID,CYRILLIC SMALL LETTER LITTLE YUS
-0468,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-0469,PVALID,CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-046A,DISALLOWED,CYRILLIC CAPITAL LETTER BIG YUS
-046B,PVALID,CYRILLIC SMALL LETTER BIG YUS
-046C,DISALLOWED,CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-046D,PVALID,CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-046E,DISALLOWED,CYRILLIC CAPITAL LETTER KSI
-046F,PVALID,CYRILLIC SMALL LETTER KSI
-0470,DISALLOWED,CYRILLIC CAPITAL LETTER PSI
-0471,PVALID,CYRILLIC SMALL LETTER PSI
-0472,DISALLOWED,CYRILLIC CAPITAL LETTER FITA
-0473,PVALID,CYRILLIC SMALL LETTER FITA
-0474,DISALLOWED,CYRILLIC CAPITAL LETTER IZHITSA
-0475,PVALID,CYRILLIC SMALL LETTER IZHITSA
-0476,DISALLOWED,CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0477,PVALID,CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0478,DISALLOWED,CYRILLIC CAPITAL LETTER UK
-0479,PVALID,CYRILLIC SMALL LETTER UK
-047A,DISALLOWED,CYRILLIC CAPITAL LETTER ROUND OMEGA
-047B,PVALID,CYRILLIC SMALL LETTER ROUND OMEGA
-047C,DISALLOWED,CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-047D,PVALID,CYRILLIC SMALL LETTER OMEGA WITH TITLO
-047E,DISALLOWED,CYRILLIC CAPITAL LETTER OT
-047F,PVALID,CYRILLIC SMALL LETTER OT
-0480,DISALLOWED,CYRILLIC CAPITAL LETTER KOPPA
-0481,PVALID,CYRILLIC SMALL LETTER KOPPA
-0482,DISALLOWED,CYRILLIC THOUSANDS SIGN
-0483-0487,PVALID,COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
-0488-048A,DISALLOWED,COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-048B,PVALID,CYRILLIC SMALL LETTER SHORT I WITH TAIL
-048C,DISALLOWED,CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-048D,PVALID,CYRILLIC SMALL LETTER SEMISOFT SIGN
-048E,DISALLOWED,CYRILLIC CAPITAL LETTER ER WITH TICK
-048F,PVALID,CYRILLIC SMALL LETTER ER WITH TICK
-0490,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-0491,PVALID,CYRILLIC SMALL LETTER GHE WITH UPTURN
-0492,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH STROKE
-0493,PVALID,CYRILLIC SMALL LETTER GHE WITH STROKE
-0494,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-0495,PVALID,CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-0496,DISALLOWED,CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-0497,PVALID,CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-0498,DISALLOWED,CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-0499,PVALID,CYRILLIC SMALL LETTER ZE WITH DESCENDER
-049A,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-049B,PVALID,CYRILLIC SMALL LETTER KA WITH DESCENDER
-049C,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-049D,PVALID,CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-049E,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH STROKE
-049F,PVALID,CYRILLIC SMALL LETTER KA WITH STROKE
-04A0,DISALLOWED,CYRILLIC CAPITAL LETTER BASHKIR KA
-04A1,PVALID,CYRILLIC SMALL LETTER BASHKIR KA
-04A2,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-04A3,PVALID,CYRILLIC SMALL LETTER EN WITH DESCENDER
-04A4,DISALLOWED,CYRILLIC CAPITAL LIGATURE EN GHE
-04A5,PVALID,CYRILLIC SMALL LIGATURE EN GHE
-04A6,DISALLOWED,CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-04A7,PVALID,CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-04A8,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN HA
-04A9,PVALID,CYRILLIC SMALL LETTER ABKHASIAN HA
-04AA,DISALLOWED,CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-04AB,PVALID,CYRILLIC SMALL LETTER ES WITH DESCENDER
-04AC,DISALLOWED,CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-04AD,PVALID,CYRILLIC SMALL LETTER TE WITH DESCENDER
-04AE,DISALLOWED,CYRILLIC CAPITAL LETTER STRAIGHT U
-04AF,PVALID,CYRILLIC SMALL LETTER STRAIGHT U
-04B0,DISALLOWED,CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-04B1,PVALID,CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B2,DISALLOWED,CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-04B3,PVALID,CYRILLIC SMALL LETTER HA WITH DESCENDER
-04B4,DISALLOWED,CYRILLIC CAPITAL LIGATURE TE TSE
-04B5,PVALID,CYRILLIC SMALL LIGATURE TE TSE
-04B6,DISALLOWED,CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-04B7,PVALID,CYRILLIC SMALL LETTER CHE WITH DESCENDER
-04B8,DISALLOWED,CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-04B9,PVALID,CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04BA,DISALLOWED,CYRILLIC CAPITAL LETTER SHHA
-04BB,PVALID,CYRILLIC SMALL LETTER SHHA
-04BC,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-04BD,PVALID,CYRILLIC SMALL LETTER ABKHASIAN CHE
-04BE,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-04BF,PVALID,CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-04C0-04C1,DISALLOWED,CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-04C2,PVALID,CYRILLIC SMALL LETTER ZHE WITH BREVE
-04C3,DISALLOWED,CYRILLIC CAPITAL LETTER KA WITH HOOK
-04C4,PVALID,CYRILLIC SMALL LETTER KA WITH HOOK
-04C5,DISALLOWED,CYRILLIC CAPITAL LETTER EL WITH TAIL
-04C6,PVALID,CYRILLIC SMALL LETTER EL WITH TAIL
-04C7,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH HOOK
-04C8,PVALID,CYRILLIC SMALL LETTER EN WITH HOOK
-04C9,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH TAIL
-04CA,PVALID,CYRILLIC SMALL LETTER EN WITH TAIL
-04CB,DISALLOWED,CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-04CC,PVALID,CYRILLIC SMALL LETTER KHAKASSIAN CHE
-04CD,DISALLOWED,CYRILLIC CAPITAL LETTER EM WITH TAIL
-04CE-04CF,PVALID,CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA
-04D0,DISALLOWED,CYRILLIC CAPITAL LETTER A WITH BREVE
-04D1,PVALID,CYRILLIC SMALL LETTER A WITH BREVE
-04D2,DISALLOWED,CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04D3,PVALID,CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D4,DISALLOWED,CYRILLIC CAPITAL LIGATURE A IE
-04D5,PVALID,CYRILLIC SMALL LIGATURE A IE
-04D6,DISALLOWED,CYRILLIC CAPITAL LETTER IE WITH BREVE
-04D7,PVALID,CYRILLIC SMALL LETTER IE WITH BREVE
-04D8,DISALLOWED,CYRILLIC CAPITAL LETTER SCHWA
-04D9,PVALID,CYRILLIC SMALL LETTER SCHWA
-04DA,DISALLOWED,CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04DB,PVALID,CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DC,DISALLOWED,CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DD,PVALID,CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DE,DISALLOWED,CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04DF,PVALID,CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04E0,DISALLOWED,CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-04E1,PVALID,CYRILLIC SMALL LETTER ABKHASIAN DZE
-04E2,DISALLOWED,CYRILLIC CAPITAL LETTER I WITH MACRON
-04E3,PVALID,CYRILLIC SMALL LETTER I WITH MACRON
-04E4,DISALLOWED,CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-04E5,PVALID,CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E6,DISALLOWED,CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04E7,PVALID,CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E8,DISALLOWED,CYRILLIC CAPITAL LETTER BARRED O
-04E9,PVALID,CYRILLIC SMALL LETTER BARRED O
-04EA,DISALLOWED,CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-04EB,PVALID,CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EC,DISALLOWED,CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-04ED,PVALID,CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EE,DISALLOWED,CYRILLIC CAPITAL LETTER U WITH MACRON
-04EF,PVALID,CYRILLIC SMALL LETTER U WITH MACRON
-04F0,DISALLOWED,CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F1,PVALID,CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F2,DISALLOWED,CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F3,PVALID,CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F4,DISALLOWED,CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F5,PVALID,CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F6,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-04F7,PVALID,CYRILLIC SMALL LETTER GHE WITH DESCENDER
-04F8,DISALLOWED,CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04F9,PVALID,CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04FA,DISALLOWED,CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-04FB,PVALID,CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-04FC,DISALLOWED,CYRILLIC CAPITAL LETTER HA WITH HOOK
-04FD,PVALID,CYRILLIC SMALL LETTER HA WITH HOOK
-04FE,DISALLOWED,CYRILLIC CAPITAL LETTER HA WITH STROKE
-04FF,PVALID,CYRILLIC SMALL LETTER HA WITH STROKE
-0500,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI DE
-0501,PVALID,CYRILLIC SMALL LETTER KOMI DE
-0502,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI DJE
-0503,PVALID,CYRILLIC SMALL LETTER KOMI DJE
-0504,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI ZJE
-0505,PVALID,CYRILLIC SMALL LETTER KOMI ZJE
-0506,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI DZJE
-0507,PVALID,CYRILLIC SMALL LETTER KOMI DZJE
-0508,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI LJE
-0509,PVALID,CYRILLIC SMALL LETTER KOMI LJE
-050A,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI NJE
-050B,PVALID,CYRILLIC SMALL LETTER KOMI NJE
-050C,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI SJE
-050D,PVALID,CYRILLIC SMALL LETTER KOMI SJE
-050E,DISALLOWED,CYRILLIC CAPITAL LETTER KOMI TJE
-050F,PVALID,CYRILLIC SMALL LETTER KOMI TJE
-0510,DISALLOWED,CYRILLIC CAPITAL LETTER REVERSED ZE
-0511,PVALID,CYRILLIC SMALL LETTER REVERSED ZE
-0512,DISALLOWED,CYRILLIC CAPITAL LETTER EL WITH HOOK
-0513,PVALID,CYRILLIC SMALL LETTER EL WITH HOOK
-0514,DISALLOWED,CYRILLIC CAPITAL LETTER LHA
-0515,PVALID,CYRILLIC SMALL LETTER LHA
-0516,DISALLOWED,CYRILLIC CAPITAL LETTER RHA
-0517,PVALID,CYRILLIC SMALL LETTER RHA
-0518,DISALLOWED,CYRILLIC CAPITAL LETTER YAE
-0519,PVALID,CYRILLIC SMALL LETTER YAE
-051A,DISALLOWED,CYRILLIC CAPITAL LETTER QA
-051B,PVALID,CYRILLIC SMALL LETTER QA
-051C,DISALLOWED,CYRILLIC CAPITAL LETTER WE
-051D,PVALID,CYRILLIC SMALL LETTER WE
-051E,DISALLOWED,CYRILLIC CAPITAL LETTER ALEUT KA
-051F,PVALID,CYRILLIC SMALL LETTER ALEUT KA
-0520,DISALLOWED,CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
-0521,PVALID,CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
-0522,DISALLOWED,CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
-0523,PVALID,CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
-0524,DISALLOWED,CYRILLIC CAPITAL LETTER PE WITH DESCENDER
-0525,PVALID,CYRILLIC SMALL LETTER PE WITH DESCENDER
-0526-0530,UNASSIGNED,<RESERVED>..<RESERVED>
-0531-0556,DISALLOWED,ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
-0557-0558,UNASSIGNED,<RESERVED>..<RESERVED>
-0559,PVALID,ARMENIAN MODIFIER LETTER LEFT HALF RING
-055A-055F,DISALLOWED,ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
-0560,UNASSIGNED,<RESERVED>
-0561-0586,PVALID,ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LETTER FEH
-0587,DISALLOWED,ARMENIAN SMALL LIGATURE ECH YIWN
-0588,UNASSIGNED,<RESERVED>
-0589-058A,DISALLOWED,ARMENIAN FULL STOP..ARMENIAN HYPHEN
-058B-0590,UNASSIGNED,<RESERVED>..<RESERVED>
-0591-05BD,PVALID,HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
-05BE,DISALLOWED,HEBREW PUNCTUATION MAQAF
-05BF,PVALID,HEBREW POINT RAFE
-05C0,DISALLOWED,HEBREW PUNCTUATION PASEQ
-05C1-05C2,PVALID,HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
-05C3,DISALLOWED,HEBREW PUNCTUATION SOF PASUQ
-05C4-05C5,PVALID,HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
-05C6,DISALLOWED,HEBREW PUNCTUATION NUN HAFUKHA
-05C7,PVALID,HEBREW POINT QAMATS QATAN
-05C8-05CF,UNASSIGNED,<RESERVED>..<RESERVED>
-05D0-05EA,PVALID,HEBREW LETTER ALEF..HEBREW LETTER TAV
-05EB-05EF,UNASSIGNED,<RESERVED>..<RESERVED>
-05F0-05F2,PVALID,HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
-05F3-05F4,CONTEXTO,HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
-05F5-05FF,UNASSIGNED,<RESERVED>..<RESERVED>
-0600-0603,DISALLOWED,ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
-0604-0605,UNASSIGNED,<RESERVED>..<RESERVED>
-0606-060F,DISALLOWED,ARABIC-INDIC CUBE ROOT..ARABIC SIGN MISRA
-0610-061A,PVALID,ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
-061B,DISALLOWED,ARABIC SEMICOLON
-061C-061D,UNASSIGNED,<RESERVED>..<RESERVED>
-061E-061F,DISALLOWED,ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
-0620,UNASSIGNED,<RESERVED>
-0621-063F,PVALID,ARABIC LETTER HAMZA..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0640,DISALLOWED,ARABIC TATWEEL
-0641-065E,PVALID,ARABIC LETTER FEH..ARABIC FATHA WITH TWO DOTS
-065F,UNASSIGNED,<RESERVED>
-0660-0669,CONTEXTO,ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
-066A-066D,DISALLOWED,ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
-066E-0674,PVALID,ARABIC LETTER DOTLESS BEH..ARABIC LETTER HIGH HAMZA
-0675-0678,DISALLOWED,ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH
-0679-06D3,PVALID,ARABIC LETTER TTEH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D4,DISALLOWED,ARABIC FULL STOP
-06D5-06DC,PVALID,ARABIC LETTER AE..ARABIC SMALL HIGH SEEN
-06DD-06DE,DISALLOWED,ARABIC END OF AYAH..ARABIC START OF RUB EL HIZB
-06DF-06E8,PVALID,ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH NOON
-06E9,DISALLOWED,ARABIC PLACE OF SAJDAH
-06EA-06EF,PVALID,ARABIC EMPTY CENTRE LOW STOP..ARABIC LETTER REH WITH INVERTED V
-06F0-06F9,CONTEXTO,EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
-06FA-06FF,PVALID,ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER HEH WITH INVERTED V
-0700-070D,DISALLOWED,SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
-070E,UNASSIGNED,<RESERVED>
-070F,DISALLOWED,SYRIAC ABBREVIATION MARK
-0710-074A,PVALID,SYRIAC LETTER ALAPH..SYRIAC BARREKH
-074B-074C,UNASSIGNED,<RESERVED>..<RESERVED>
-074D-07B1,PVALID,SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER NAA
-07B2-07BF,UNASSIGNED,<RESERVED>..<RESERVED>
-07C0-07F5,PVALID,NKO DIGIT ZERO..NKO LOW TONE APOSTROPHE
-07F6-07FA,DISALLOWED,NKO SYMBOL OO DENNEN..NKO LAJANYALAN
-07FB-07FF,UNASSIGNED,<RESERVED>..<RESERVED>
-0800-082D,PVALID,SAMARITAN LETTER ALAF..SAMARITAN MARK NEQUDAA
-082E-082F,UNASSIGNED,<RESERVED>..<RESERVED>
-0830-083E,DISALLOWED,SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
-083F-08FF,UNASSIGNED,<RESERVED>..<RESERVED>
-0900-0939,PVALID,DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI LETTER HA
-093A-093B,UNASSIGNED,<RESERVED>..<RESERVED>
-093C-094E,PVALID,DEVANAGARI SIGN NUKTA..DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
-094F,UNASSIGNED,<RESERVED>
-0950-0955,PVALID,DEVANAGARI OM..DEVANAGARI VOWEL SIGN CANDRA LONG E
-0956-0957,UNASSIGNED,<RESERVED>..<RESERVED>
-0958-095F,DISALLOWED,DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
-0960-0963,PVALID,DEVANAGARI LETTER VOCALIC RR..DEVANAGARI VOWEL SIGN VOCALIC LL
-0964-0965,DISALLOWED,DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
-0966-096F,PVALID,DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
-0970,DISALLOWED,DEVANAGARI ABBREVIATION SIGN
-0971-0972,PVALID,DEVANAGARI SIGN HIGH SPACING DOT..DEVANAGARI LETTER CANDRA A
-0973-0978,UNASSIGNED,<RESERVED>..<RESERVED>
-0979-097F,PVALID,DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
-0980,UNASSIGNED,<RESERVED>
-0981-0983,PVALID,BENGALI SIGN CANDRABINDU..BENGALI SIGN VISARGA
-0984,UNASSIGNED,<RESERVED>
-0985-098C,PVALID,BENGALI LETTER A..BENGALI LETTER VOCALIC L
-098D-098E,UNASSIGNED,<RESERVED>..<RESERVED>
-098F-0990,PVALID,BENGALI LETTER E..BENGALI LETTER AI
-0991-0992,UNASSIGNED,<RESERVED>..<RESERVED>
-0993-09A8,PVALID,BENGALI LETTER O..BENGALI LETTER NA
-09A9,UNASSIGNED,<RESERVED>
-09AA-09B0,PVALID,BENGALI LETTER PA..BENGALI LETTER RA
-09B1,UNASSIGNED,<RESERVED>
-09B2,PVALID,BENGALI LETTER LA
-09B3-09B5,UNASSIGNED,<RESERVED>..<RESERVED>
-09B6-09B9,PVALID,BENGALI LETTER SHA..BENGALI LETTER HA
-09BA-09BB,UNASSIGNED,<RESERVED>..<RESERVED>
-09BC-09C4,PVALID,BENGALI SIGN NUKTA..BENGALI VOWEL SIGN VOCALIC RR
-09C5-09C6,UNASSIGNED,<RESERVED>..<RESERVED>
-09C7-09C8,PVALID,BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
-09C9-09CA,UNASSIGNED,<RESERVED>..<RESERVED>
-09CB-09CE,PVALID,BENGALI VOWEL SIGN O..BENGALI LETTER KHANDA TA
-09CF-09D6,UNASSIGNED,<RESERVED>..<RESERVED>
-09D7,PVALID,BENGALI AU LENGTH MARK
-09D8-09DB,UNASSIGNED,<RESERVED>..<RESERVED>
-09DC-09DD,DISALLOWED,BENGALI LETTER RRA..BENGALI LETTER RHA
-09DE,UNASSIGNED,<RESERVED>
-09DF,DISALLOWED,BENGALI LETTER YYA
-09E0-09E3,PVALID,BENGALI LETTER VOCALIC RR..BENGALI VOWEL SIGN VOCALIC LL
-09E4-09E5,UNASSIGNED,<RESERVED>..<RESERVED>
-09E6-09F1,PVALID,BENGALI DIGIT ZERO..BENGALI LETTER RA WITH LOWER DIAGONAL
-09F2-09FB,DISALLOWED,BENGALI RUPEE MARK..BENGALI GANDA MARK
-09FC-0A00,UNASSIGNED,<RESERVED>..<RESERVED>
-0A01-0A03,PVALID,GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN VISARGA
-0A04,UNASSIGNED,<RESERVED>
-0A05-0A0A,PVALID,GURMUKHI LETTER A..GURMUKHI LETTER UU
-0A0B-0A0E,UNASSIGNED,<RESERVED>..<RESERVED>
-0A0F-0A10,PVALID,GURMUKHI LETTER EE..GURMUKHI LETTER AI
-0A11-0A12,UNASSIGNED,<RESERVED>..<RESERVED>
-0A13-0A28,PVALID,GURMUKHI LETTER OO..GURMUKHI LETTER NA
-0A29,UNASSIGNED,<RESERVED>
-0A2A-0A30,PVALID,GURMUKHI LETTER PA..GURMUKHI LETTER RA
-0A31,UNASSIGNED,<RESERVED>
-0A32,PVALID,GURMUKHI LETTER LA
-0A33,DISALLOWED,GURMUKHI LETTER LLA
-0A34,UNASSIGNED,<RESERVED>
-0A35,PVALID,GURMUKHI LETTER VA
-0A36,DISALLOWED,GURMUKHI LETTER SHA
-0A37,UNASSIGNED,<RESERVED>
-0A38-0A39,PVALID,GURMUKHI LETTER SA..GURMUKHI LETTER HA
-0A3A-0A3B,UNASSIGNED,<RESERVED>..<RESERVED>
-0A3C,PVALID,GURMUKHI SIGN NUKTA
-0A3D,UNASSIGNED,<RESERVED>
-0A3E-0A42,PVALID,GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN UU
-0A43-0A46,UNASSIGNED,<RESERVED>..<RESERVED>
-0A47-0A48,PVALID,GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
-0A49-0A4A,UNASSIGNED,<RESERVED>..<RESERVED>
-0A4B-0A4D,PVALID,GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
-0A4E-0A50,UNASSIGNED,<RESERVED>..<RESERVED>
-0A51,PVALID,GURMUKHI SIGN UDAAT
-0A52-0A58,UNASSIGNED,<RESERVED>..<RESERVED>
-0A59-0A5B,DISALLOWED,GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
-0A5C,PVALID,GURMUKHI LETTER RRA
-0A5D,UNASSIGNED,<RESERVED>
-0A5E,DISALLOWED,GURMUKHI LETTER FA
-0A5F-0A65,UNASSIGNED,<RESERVED>..<RESERVED>
-0A66-0A75,PVALID,GURMUKHI DIGIT ZERO..GURMUKHI SIGN YAKASH
-0A76-0A80,UNASSIGNED,<RESERVED>..<RESERVED>
-0A81-0A83,PVALID,GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VISARGA
-0A84,UNASSIGNED,<RESERVED>
-0A85-0A8D,PVALID,GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
-0A8E,UNASSIGNED,<RESERVED>
-0A8F-0A91,PVALID,GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
-0A92,UNASSIGNED,<RESERVED>
-0A93-0AA8,PVALID,GUJARATI LETTER O..GUJARATI LETTER NA
-0AA9,UNASSIGNED,<RESERVED>
-0AAA-0AB0,PVALID,GUJARATI LETTER PA..GUJARATI LETTER RA
-0AB1,UNASSIGNED,<RESERVED>
-0AB2-0AB3,PVALID,GUJARATI LETTER LA..GUJARATI LETTER LLA
-0AB4,UNASSIGNED,<RESERVED>
-0AB5-0AB9,PVALID,GUJARATI LETTER VA..GUJARATI LETTER HA
-0ABA-0ABB,UNASSIGNED,<RESERVED>..<RESERVED>
-0ABC-0AC5,PVALID,GUJARATI SIGN NUKTA..GUJARATI VOWEL SIGN CANDRA E
-0AC6,UNASSIGNED,<RESERVED>
-0AC7-0AC9,PVALID,GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN CANDRA O
-0ACA,UNASSIGNED,<RESERVED>
-0ACB-0ACD,PVALID,GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA
-0ACE-0ACF,UNASSIGNED,<RESERVED>..<RESERVED>
-0AD0,PVALID,GUJARATI OM
-0AD1-0ADF,UNASSIGNED,<RESERVED>..<RESERVED>
-0AE0-0AE3,PVALID,GUJARATI LETTER VOCALIC RR..GUJARATI VOWEL SIGN VOCALIC LL
-0AE4-0AE5,UNASSIGNED,<RESERVED>..<RESERVED>
-0AE6-0AEF,PVALID,GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
-0AF0,UNASSIGNED,<RESERVED>
-0AF1,DISALLOWED,GUJARATI RUPEE SIGN
-0AF2-0B00,UNASSIGNED,<RESERVED>..<RESERVED>
-0B01-0B03,PVALID,ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA
-0B04,UNASSIGNED,<RESERVED>
-0B05-0B0C,PVALID,ORIYA LETTER A..ORIYA LETTER VOCALIC L
-0B0D-0B0E,UNASSIGNED,<RESERVED>..<RESERVED>
-0B0F-0B10,PVALID,ORIYA LETTER E..ORIYA LETTER AI
-0B11-0B12,UNASSIGNED,<RESERVED>..<RESERVED>
-0B13-0B28,PVALID,ORIYA LETTER O..ORIYA LETTER NA
-0B29,UNASSIGNED,<RESERVED>
-0B2A-0B30,PVALID,ORIYA LETTER PA..ORIYA LETTER RA
-0B31,UNASSIGNED,<RESERVED>
-0B32-0B33,PVALID,ORIYA LETTER LA..ORIYA LETTER LLA
-0B34,UNASSIGNED,<RESERVED>
-0B35-0B39,PVALID,ORIYA LETTER VA..ORIYA LETTER HA
-0B3A-0B3B,UNASSIGNED,<RESERVED>..<RESERVED>
-0B3C-0B44,PVALID,ORIYA SIGN NUKTA..ORIYA VOWEL SIGN VOCALIC RR
-0B45-0B46,UNASSIGNED,<RESERVED>..<RESERVED>
-0B47-0B48,PVALID,ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
-0B49-0B4A,UNASSIGNED,<RESERVED>..<RESERVED>
-0B4B-0B4D,PVALID,ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA
-0B4E-0B55,UNASSIGNED,<RESERVED>..<RESERVED>
-0B56-0B57,PVALID,ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK
-0B58-0B5B,UNASSIGNED,<RESERVED>..<RESERVED>
-0B5C-0B5D,DISALLOWED,ORIYA LETTER RRA..ORIYA LETTER RHA
-0B5E,UNASSIGNED,<RESERVED>
-0B5F-0B63,PVALID,ORIYA LETTER YYA..ORIYA VOWEL SIGN VOCALIC LL
-0B64-0B65,UNASSIGNED,<RESERVED>..<RESERVED>
-0B66-0B6F,PVALID,ORIYA DIGIT ZERO..ORIYA DIGIT NINE
-0B70,DISALLOWED,ORIYA ISSHAR
-0B71,PVALID,ORIYA LETTER WA
-0B72-0B81,UNASSIGNED,<RESERVED>..<RESERVED>
-0B82-0B83,PVALID,TAMIL SIGN ANUSVARA..TAMIL SIGN VISARGA
-0B84,UNASSIGNED,<RESERVED>
-0B85-0B8A,PVALID,TAMIL LETTER A..TAMIL LETTER UU
-0B8B-0B8D,UNASSIGNED,<RESERVED>..<RESERVED>
-0B8E-0B90,PVALID,TAMIL LETTER E..TAMIL LETTER AI
-0B91,UNASSIGNED,<RESERVED>
-0B92-0B95,PVALID,TAMIL LETTER O..TAMIL LETTER KA
-0B96-0B98,UNASSIGNED,<RESERVED>..<RESERVED>
-0B99-0B9A,PVALID,TAMIL LETTER NGA..TAMIL LETTER CA
-0B9B,UNASSIGNED,<RESERVED>
-0B9C,PVALID,TAMIL LETTER JA
-0B9D,UNASSIGNED,<RESERVED>
-0B9E-0B9F,PVALID,TAMIL LETTER NYA..TAMIL LETTER TTA
-0BA0-0BA2,UNASSIGNED,<RESERVED>..<RESERVED>
-0BA3-0BA4,PVALID,TAMIL LETTER NNA..TAMIL LETTER TA
-0BA5-0BA7,UNASSIGNED,<RESERVED>..<RESERVED>
-0BA8-0BAA,PVALID,TAMIL LETTER NA..TAMIL LETTER PA
-0BAB-0BAD,UNASSIGNED,<RESERVED>..<RESERVED>
-0BAE-0BB9,PVALID,TAMIL LETTER MA..TAMIL LETTER HA
-0BBA-0BBD,UNASSIGNED,<RESERVED>..<RESERVED>
-0BBE-0BC2,PVALID,TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU
-0BC3-0BC5,UNASSIGNED,<RESERVED>..<RESERVED>
-0BC6-0BC8,PVALID,TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
-0BC9,UNASSIGNED,<RESERVED>
-0BCA-0BCD,PVALID,TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA
-0BCE-0BCF,UNASSIGNED,<RESERVED>..<RESERVED>
-0BD0,PVALID,TAMIL OM
-0BD1-0BD6,UNASSIGNED,<RESERVED>..<RESERVED>
-0BD7,PVALID,TAMIL AU LENGTH MARK
-0BD8-0BE5,UNASSIGNED,<RESERVED>..<RESERVED>
-0BE6-0BEF,PVALID,TAMIL DIGIT ZERO..TAMIL DIGIT NINE
-0BF0-0BFA,DISALLOWED,TAMIL NUMBER TEN..TAMIL NUMBER SIGN
-0BFB-0C00,UNASSIGNED,<RESERVED>..<RESERVED>
-0C01-0C03,PVALID,TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
-0C04,UNASSIGNED,<RESERVED>
-0C05-0C0C,PVALID,TELUGU LETTER A..TELUGU LETTER VOCALIC L
-0C0D,UNASSIGNED,<RESERVED>
-0C0E-0C10,PVALID,TELUGU LETTER E..TELUGU LETTER AI
-0C11,UNASSIGNED,<RESERVED>
-0C12-0C28,PVALID,TELUGU LETTER O..TELUGU LETTER NA
-0C29,UNASSIGNED,<RESERVED>
-0C2A-0C33,PVALID,TELUGU LETTER PA..TELUGU LETTER LLA
-0C34,UNASSIGNED,<RESERVED>
-0C35-0C39,PVALID,TELUGU LETTER VA..TELUGU LETTER HA
-0C3A-0C3C,UNASSIGNED,<RESERVED>..<RESERVED>
-0C3D-0C44,PVALID,TELUGU SIGN AVAGRAHA..TELUGU VOWEL SIGN VOCALIC RR
-0C45,UNASSIGNED,<RESERVED>
-0C46-0C48,PVALID,TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
-0C49,UNASSIGNED,<RESERVED>
-0C4A-0C4D,PVALID,TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
-0C4E-0C54,UNASSIGNED,<RESERVED>..<RESERVED>
-0C55-0C56,PVALID,TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
-0C57,UNASSIGNED,<RESERVED>
-0C58-0C59,PVALID,TELUGU LETTER TSA..TELUGU LETTER DZA
-0C5A-0C5F,UNASSIGNED,<RESERVED>..<RESERVED>
-0C60-0C63,PVALID,TELUGU LETTER VOCALIC RR..TELUGU VOWEL SIGN VOCALIC LL
-0C64-0C65,UNASSIGNED,<RESERVED>..<RESERVED>
-0C66-0C6F,PVALID,TELUGU DIGIT ZERO..TELUGU DIGIT NINE
-0C70-0C77,UNASSIGNED,<RESERVED>..<RESERVED>
-0C78-0C7F,DISALLOWED,TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU SIGN TUUMU
-0C80-0C81,UNASSIGNED,<RESERVED>..<RESERVED>
-0C82-0C83,PVALID,KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
-0C84,UNASSIGNED,<RESERVED>
-0C85-0C8C,PVALID,KANNADA LETTER A..KANNADA LETTER VOCALIC L
-0C8D,UNASSIGNED,<RESERVED>
-0C8E-0C90,PVALID,KANNADA LETTER E..KANNADA LETTER AI
-0C91,UNASSIGNED,<RESERVED>
-0C92-0CA8,PVALID,KANNADA LETTER O..KANNADA LETTER NA
-0CA9,UNASSIGNED,<RESERVED>
-0CAA-0CB3,PVALID,KANNADA LETTER PA..KANNADA LETTER LLA
-0CB4,UNASSIGNED,<RESERVED>
-0CB5-0CB9,PVALID,KANNADA LETTER VA..KANNADA LETTER HA
-0CBA-0CBB,UNASSIGNED,<RESERVED>..<RESERVED>
-0CBC-0CC4,PVALID,KANNADA SIGN NUKTA..KANNADA VOWEL SIGN VOCALIC RR
-0CC5,UNASSIGNED,<RESERVED>
-0CC6-0CC8,PVALID,KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI
-0CC9,UNASSIGNED,<RESERVED>
-0CCA-0CCD,PVALID,KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA
-0CCE-0CD4,UNASSIGNED,<RESERVED>..<RESERVED>
-0CD5-0CD6,PVALID,KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
-0CD7-0CDD,UNASSIGNED,<RESERVED>..<RESERVED>
-0CDE,PVALID,KANNADA LETTER FA
-0CDF,UNASSIGNED,<RESERVED>
-0CE0-0CE3,PVALID,KANNADA LETTER VOCALIC RR..KANNADA VOWEL SIGN VOCALIC LL
-0CE4-0CE5,UNASSIGNED,<RESERVED>..<RESERVED>
-0CE6-0CEF,PVALID,KANNADA DIGIT ZERO..KANNADA DIGIT NINE
-0CF0,UNASSIGNED,<RESERVED>
-0CF1-0CF2,DISALLOWED,KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
-0CF3-0D01,UNASSIGNED,<RESERVED>..<RESERVED>
-0D02-0D03,PVALID,MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
-0D04,UNASSIGNED,<RESERVED>
-0D05-0D0C,PVALID,MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
-0D0D,UNASSIGNED,<RESERVED>
-0D0E-0D10,PVALID,MALAYALAM LETTER E..MALAYALAM LETTER AI
-0D11,UNASSIGNED,<RESERVED>
-0D12-0D28,PVALID,MALAYALAM LETTER O..MALAYALAM LETTER NA
-0D29,UNASSIGNED,<RESERVED>
-0D2A-0D39,PVALID,MALAYALAM LETTER PA..MALAYALAM LETTER HA
-0D3A-0D3C,UNASSIGNED,<RESERVED>..<RESERVED>
-0D3D-0D44,PVALID,MALAYALAM SIGN AVAGRAHA..MALAYALAM VOWEL SIGN VOCALIC RR
-0D45,UNASSIGNED,<RESERVED>
-0D46-0D48,PVALID,MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
-0D49,UNASSIGNED,<RESERVED>
-0D4A-0D4D,PVALID,MALAYALAM VOWEL SIGN O..MALAYALAM SIGN VIRAMA
-0D4E-0D56,UNASSIGNED,<RESERVED>..<RESERVED>
-0D57,PVALID,MALAYALAM AU LENGTH MARK
-0D58-0D5F,UNASSIGNED,<RESERVED>..<RESERVED>
-0D60-0D63,PVALID,MALAYALAM LETTER VOCALIC RR..MALAYALAM VOWEL SIGN VOCALIC LL
-0D64-0D65,UNASSIGNED,<RESERVED>..<RESERVED>
-0D66-0D6F,PVALID,MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
-0D70-0D75,DISALLOWED,MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
-0D76-0D78,UNASSIGNED,<RESERVED>..<RESERVED>
-0D79,DISALLOWED,MALAYALAM DATE MARK
-0D7A-0D7F,PVALID,MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
-0D80-0D81,UNASSIGNED,<RESERVED>..<RESERVED>
-0D82-0D83,PVALID,SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
-0D84,UNASSIGNED,<RESERVED>
-0D85-0D96,PVALID,SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
-0D97-0D99,UNASSIGNED,<RESERVED>..<RESERVED>
-0D9A-0DB1,PVALID,SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
-0DB2,UNASSIGNED,<RESERVED>
-0DB3-0DBB,PVALID,SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
-0DBC,UNASSIGNED,<RESERVED>
-0DBD,PVALID,SINHALA LETTER DANTAJA LAYANNA
-0DBE-0DBF,UNASSIGNED,<RESERVED>..<RESERVED>
-0DC0-0DC6,PVALID,SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
-0DC7-0DC9,UNASSIGNED,<RESERVED>..<RESERVED>
-0DCA,PVALID,SINHALA SIGN AL-LAKUNA
-0DCB-0DCE,UNASSIGNED,<RESERVED>..<RESERVED>
-0DCF-0DD4,PVALID,SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD5,UNASSIGNED,<RESERVED>
-0DD6,PVALID,SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD7,UNASSIGNED,<RESERVED>
-0DD8-0DDF,PVALID,SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
-0DE0-0DF1,UNASSIGNED,<RESERVED>..<RESERVED>
-0DF2-0DF3,PVALID,SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DF4,DISALLOWED,SINHALA PUNCTUATION KUNDDALIYA
-0DF5-0E00,UNASSIGNED,<RESERVED>..<RESERVED>
-0E01-0E32,PVALID,THAI CHARACTER KO KAI..THAI CHARACTER SARA AA
-0E33,DISALLOWED,THAI CHARACTER SARA AM
-0E34-0E3A,PVALID,THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
-0E3B-0E3E,UNASSIGNED,<RESERVED>..<RESERVED>
-0E3F,DISALLOWED,THAI CURRENCY SYMBOL BAHT
-0E40-0E4E,PVALID,THAI CHARACTER SARA E..THAI CHARACTER YAMAKKAN
-0E4F,DISALLOWED,THAI CHARACTER FONGMAN
-0E50-0E59,PVALID,THAI DIGIT ZERO..THAI DIGIT NINE
-0E5A-0E5B,DISALLOWED,THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
-0E5C-0E80,UNASSIGNED,<RESERVED>..<RESERVED>
-0E81-0E82,PVALID,LAO LETTER KO..LAO LETTER KHO SUNG
-0E83,UNASSIGNED,<RESERVED>
-0E84,PVALID,LAO LETTER KHO TAM
-0E85-0E86,UNASSIGNED,<RESERVED>..<RESERVED>
-0E87-0E88,PVALID,LAO LETTER NGO..LAO LETTER CO
-0E89,UNASSIGNED,<RESERVED>
-0E8A,PVALID,LAO LETTER SO TAM
-0E8B-0E8C,UNASSIGNED,<RESERVED>..<RESERVED>
-0E8D,PVALID,LAO LETTER NYO
-0E8E-0E93,UNASSIGNED,<RESERVED>..<RESERVED>
-0E94-0E97,PVALID,LAO LETTER DO..LAO LETTER THO TAM
-0E98,UNASSIGNED,<RESERVED>
-0E99-0E9F,PVALID,LAO LETTER NO..LAO LETTER FO SUNG
-0EA0,UNASSIGNED,<RESERVED>
-0EA1-0EA3,PVALID,LAO LETTER MO..LAO LETTER LO LING
-0EA4,UNASSIGNED,<RESERVED>
-0EA5,PVALID,LAO LETTER LO LOOT
-0EA6,UNASSIGNED,<RESERVED>
-0EA7,PVALID,LAO LETTER WO
-0EA8-0EA9,UNASSIGNED,<RESERVED>..<RESERVED>
-0EAA-0EAB,PVALID,LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAC,UNASSIGNED,<RESERVED>
-0EAD-0EB2,PVALID,LAO LETTER O..LAO VOWEL SIGN AA
-0EB3,DISALLOWED,LAO VOWEL SIGN AM
-0EB4-0EB9,PVALID,LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBA,UNASSIGNED,<RESERVED>
-0EBB-0EBD,PVALID,LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN NYO
-0EBE-0EBF,UNASSIGNED,<RESERVED>..<RESERVED>
-0EC0-0EC4,PVALID,LAO VOWEL SIGN E..LAO VOWEL SIGN AI
-0EC5,UNASSIGNED,<RESERVED>
-0EC6,PVALID,LAO KO LA
-0EC7,UNASSIGNED,<RESERVED>
-0EC8-0ECD,PVALID,LAO TONE MAI EK..LAO NIGGAHITA
-0ECE-0ECF,UNASSIGNED,<RESERVED>..<RESERVED>
-0ED0-0ED9,PVALID,LAO DIGIT ZERO..LAO DIGIT NINE
-0EDA-0EDB,UNASSIGNED,<RESERVED>..<RESERVED>
-0EDC-0EDD,DISALLOWED,LAO HO NO..LAO HO MO
-0EDE-0EFF,UNASSIGNED,<RESERVED>..<RESERVED>
-0F00,PVALID,TIBETAN SYLLABLE OM
-0F01-0F0A,DISALLOWED,TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK BKA- SHOG YIG MGO
-0F0B,PVALID,TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C-0F17,DISALLOWED,TIBETAN MARK DELIMITER TSHEG BSTAR..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
-0F18-0F19,PVALID,TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A-0F1F,DISALLOWED,TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
-0F20-0F29,PVALID,TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
-0F2A-0F34,DISALLOWED,TIBETAN DIGIT HALF ONE..TIBETAN MARK BSDUS RTAGS
-0F35,PVALID,TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36,DISALLOWED,TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
-0F37,PVALID,TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38,DISALLOWED,TIBETAN MARK CHE MGO
-0F39,PVALID,TIBETAN MARK TSA -PHRU
-0F3A-0F3D,DISALLOWED,TIBETAN MARK GUG RTAGS GYON..TIBETAN MARK ANG KHANG GYAS
-0F3E-0F42,PVALID,TIBETAN SIGN YAR TSHES..TIBETAN LETTER GA
-0F43,DISALLOWED,TIBETAN LETTER GHA
-0F44-0F47,PVALID,TIBETAN LETTER NGA..TIBETAN LETTER JA
-0F48,UNASSIGNED,<RESERVED>
-0F49-0F4C,PVALID,TIBETAN LETTER NYA..TIBETAN LETTER DDA
-0F4D,DISALLOWED,TIBETAN LETTER DDHA
-0F4E-0F51,PVALID,TIBETAN LETTER NNA..TIBETAN LETTER DA
-0F52,DISALLOWED,TIBETAN LETTER DHA
-0F53-0F56,PVALID,TIBETAN LETTER NA..TIBETAN LETTER BA
-0F57,DISALLOWED,TIBETAN LETTER BHA
-0F58-0F5B,PVALID,TIBETAN LETTER MA..TIBETAN LETTER DZA
-0F5C,DISALLOWED,TIBETAN LETTER DZHA
-0F5D-0F68,PVALID,TIBETAN LETTER WA..TIBETAN LETTER A
-0F69,DISALLOWED,TIBETAN LETTER KSSA
-0F6A-0F6C,PVALID,TIBETAN LETTER FIXED-FORM RA..TIBETAN LETTER RRA
-0F6D-0F70,UNASSIGNED,<RESERVED>..<RESERVED>
-0F71-0F72,PVALID,TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I
-0F73,DISALLOWED,TIBETAN VOWEL SIGN II
-0F74,PVALID,TIBETAN VOWEL SIGN U
-0F75-0F79,DISALLOWED,TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
-0F7A-0F80,PVALID,TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REVERSED I
-0F81,DISALLOWED,TIBETAN VOWEL SIGN REVERSED II
-0F82-0F84,PVALID,TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA
-0F85,DISALLOWED,TIBETAN MARK PALUTA
-0F86-0F8B,PVALID,TIBETAN SIGN LCI RTAGS..TIBETAN SIGN GRU MED RGYINGS
-0F8C-0F8F,UNASSIGNED,<RESERVED>..<RESERVED>
-0F90-0F92,PVALID,TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER GA
-0F93,DISALLOWED,TIBETAN SUBJOINED LETTER GHA
-0F94-0F97,PVALID,TIBETAN SUBJOINED LETTER NGA..TIBETAN SUBJOINED LETTER JA
-0F98,UNASSIGNED,<RESERVED>
-0F99-0F9C,PVALID,TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER DDA
-0F9D,DISALLOWED,TIBETAN SUBJOINED LETTER DDHA
-0F9E-0FA1,PVALID,TIBETAN SUBJOINED LETTER NNA..TIBETAN SUBJOINED LETTER DA
-0FA2,DISALLOWED,TIBETAN SUBJOINED LETTER DHA
-0FA3-0FA6,PVALID,TIBETAN SUBJOINED LETTER NA..TIBETAN SUBJOINED LETTER BA
-0FA7,DISALLOWED,TIBETAN SUBJOINED LETTER BHA
-0FA8-0FAB,PVALID,TIBETAN SUBJOINED LETTER MA..TIBETAN SUBJOINED LETTER DZA
-0FAC,DISALLOWED,TIBETAN SUBJOINED LETTER DZHA
-0FAD-0FB8,PVALID,TIBETAN SUBJOINED LETTER WA..TIBETAN SUBJOINED LETTER A
-0FB9,DISALLOWED,TIBETAN SUBJOINED LETTER KSSA
-0FBA-0FBC,PVALID,TIBETAN SUBJOINED LETTER FIXED-FORM WA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0FBD,UNASSIGNED,<RESERVED>
-0FBE-0FC5,DISALLOWED,TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
-0FC6,PVALID,TIBETAN SYMBOL PADMA GDAN
-0FC7-0FCC,DISALLOWED,TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCD,UNASSIGNED,<RESERVED>
-0FCE-0FD8,DISALLOWED,TIBETAN SIGN RDEL NAG RDEL DKAR..LEFT-FACING SVASTI SIGN WITH DOTS
-0FD9-0FFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1000-1049,PVALID,MYANMAR LETTER KA..MYANMAR DIGIT NINE
-104A-104F,DISALLOWED,MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
-1050-109D,PVALID,MYANMAR LETTER SHA..MYANMAR VOWEL SIGN AITON AI
-109E-10C5,DISALLOWED,MYANMAR SYMBOL SHAN ONE..GEORGIAN CAPITAL LETTER HOE
-10C6-10CF,UNASSIGNED,<RESERVED>..<RESERVED>
-10D0-10FA,PVALID,GEORGIAN LETTER AN..GEORGIAN LETTER AIN
-10FB-10FC,DISALLOWED,GEORGIAN PARAGRAPH SEPARATOR..MODIFIER LETTER GEORGIAN NAR
-10FD-10FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1100-11FF,DISALLOWED,HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
-1200-1248,PVALID,ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
-1249,UNASSIGNED,<RESERVED>
-124A-124D,PVALID,ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
-124E-124F,UNASSIGNED,<RESERVED>..<RESERVED>
-1250-1256,PVALID,ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
-1257,UNASSIGNED,<RESERVED>
-1258,PVALID,ETHIOPIC SYLLABLE QHWA
-1259,UNASSIGNED,<RESERVED>
-125A-125D,PVALID,ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
-125E-125F,UNASSIGNED,<RESERVED>..<RESERVED>
-1260-1288,PVALID,ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
-1289,UNASSIGNED,<RESERVED>
-128A-128D,PVALID,ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
-128E-128F,UNASSIGNED,<RESERVED>..<RESERVED>
-1290-12B0,PVALID,ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
-12B1,UNASSIGNED,<RESERVED>
-12B2-12B5,PVALID,ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
-12B6-12B7,UNASSIGNED,<RESERVED>..<RESERVED>
-12B8-12BE,PVALID,ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
-12BF,UNASSIGNED,<RESERVED>
-12C0,PVALID,ETHIOPIC SYLLABLE KXWA
-12C1,UNASSIGNED,<RESERVED>
-12C2-12C5,PVALID,ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
-12C6-12C7,UNASSIGNED,<RESERVED>..<RESERVED>
-12C8-12D6,PVALID,ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
-12D7,UNASSIGNED,<RESERVED>
-12D8-1310,PVALID,ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
-1311,UNASSIGNED,<RESERVED>
-1312-1315,PVALID,ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
-1316-1317,UNASSIGNED,<RESERVED>..<RESERVED>
-1318-135A,PVALID,ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
-135B-135E,UNASSIGNED,<RESERVED>..<RESERVED>
-135F,PVALID,ETHIOPIC COMBINING GEMINATION MARK
-1360-137C,DISALLOWED,ETHIOPIC SECTION MARK..ETHIOPIC NUMBER TEN THOUSAND
-137D-137F,UNASSIGNED,<RESERVED>..<RESERVED>
-1380-138F,PVALID,ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
-1390-1399,DISALLOWED,ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
-139A-139F,UNASSIGNED,<RESERVED>..<RESERVED>
-13A0-13F4,PVALID,CHEROKEE LETTER A..CHEROKEE LETTER YV
-13F5-13FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1400,DISALLOWED,CANADIAN SYLLABICS HYPHEN
-1401-166C,PVALID,CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
-166D-166E,DISALLOWED,CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
-166F-167F,PVALID,CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
-1680,DISALLOWED,OGHAM SPACE MARK
-1681-169A,PVALID,OGHAM LETTER BEITH..OGHAM LETTER PEITH
-169B-169C,DISALLOWED,OGHAM FEATHER MARK..OGHAM REVERSED FEATHER MARK
-169D-169F,UNASSIGNED,<RESERVED>..<RESERVED>
-16A0-16EA,PVALID,RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
-16EB-16F0,DISALLOWED,RUNIC SINGLE PUNCTUATION..RUNIC BELGTHOR SYMBOL
-16F1-16FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1700-170C,PVALID,TAGALOG LETTER A..TAGALOG LETTER YA
-170D,UNASSIGNED,<RESERVED>
-170E-1714,PVALID,TAGALOG LETTER LA..TAGALOG SIGN VIRAMA
-1715-171F,UNASSIGNED,<RESERVED>..<RESERVED>
-1720-1734,PVALID,HANUNOO LETTER A..HANUNOO SIGN PAMUDPOD
-1735-1736,DISALLOWED,PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
-1737-173F,UNASSIGNED,<RESERVED>..<RESERVED>
-1740-1753,PVALID,BUHID LETTER A..BUHID VOWEL SIGN U
-1754-175F,UNASSIGNED,<RESERVED>..<RESERVED>
-1760-176C,PVALID,TAGBANWA LETTER A..TAGBANWA LETTER YA
-176D,UNASSIGNED,<RESERVED>
-176E-1770,PVALID,TAGBANWA LETTER LA..TAGBANWA LETTER SA
-1771,UNASSIGNED,<RESERVED>
-1772-1773,PVALID,TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
-1774-177F,UNASSIGNED,<RESERVED>..<RESERVED>
-1780-17B3,PVALID,KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
-17B4-17B5,DISALLOWED,KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
-17B6-17D3,PVALID,KHMER VOWEL SIGN AA..KHMER SIGN BATHAMASAT
-17D4-17D6,DISALLOWED,KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
-17D7,PVALID,KHMER SIGN LEK TOO
-17D8-17DB,DISALLOWED,KHMER SIGN BEYYAL..KHMER CURRENCY SYMBOL RIEL
-17DC-17DD,PVALID,KHMER SIGN AVAKRAHASANYA..KHMER SIGN ATTHACAN
-17DE-17DF,UNASSIGNED,<RESERVED>..<RESERVED>
-17E0-17E9,PVALID,KHMER DIGIT ZERO..KHMER DIGIT NINE
-17EA-17EF,UNASSIGNED,<RESERVED>..<RESERVED>
-17F0-17F9,DISALLOWED,KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
-17FA-17FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1800-180E,DISALLOWED,MONGOLIAN BIRGA..MONGOLIAN VOWEL SEPARATOR
-180F,UNASSIGNED,<RESERVED>
-1810-1819,PVALID,MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
-181A-181F,UNASSIGNED,<RESERVED>..<RESERVED>
-1820-1877,PVALID,MONGOLIAN LETTER A..MONGOLIAN LETTER MANCHU ZHA
-1878-187F,UNASSIGNED,<RESERVED>..<RESERVED>
-1880-18AA,PVALID,MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI LHA
-18AB-18AF,UNASSIGNED,<RESERVED>..<RESERVED>
-18B0-18F5,PVALID,CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-18F6-18FF,UNASSIGNED,<RESERVED>..<RESERVED>
-1900-191C,PVALID,LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
-191D-191F,UNASSIGNED,<RESERVED>..<RESERVED>
-1920-192B,PVALID,LIMBU VOWEL SIGN A..LIMBU SUBJOINED LETTER WA
-192C-192F,UNASSIGNED,<RESERVED>..<RESERVED>
-1930-193B,PVALID,LIMBU SMALL LETTER KA..LIMBU SIGN SA-I
-193C-193F,UNASSIGNED,<RESERVED>..<RESERVED>
-1940,DISALLOWED,LIMBU SIGN LOO
-1941-1943,UNASSIGNED,<RESERVED>..<RESERVED>
-1944-1945,DISALLOWED,LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
-1946-196D,PVALID,LIMBU DIGIT ZERO..TAI LE LETTER AI
-196E-196F,UNASSIGNED,<RESERVED>..<RESERVED>
-1970-1974,PVALID,TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
-1975-197F,UNASSIGNED,<RESERVED>..<RESERVED>
-1980-19AB,PVALID,NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
-19AC-19AF,UNASSIGNED,<RESERVED>..<RESERVED>
-19B0-19C9,PVALID,NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
-19CA-19CF,UNASSIGNED,<RESERVED>..<RESERVED>
-19D0-19DA,PVALID,NEW TAI LUE DIGIT ZERO..NEW TAI LUE THAM DIGIT ONE
-19DB-19DD,UNASSIGNED,<RESERVED>..<RESERVED>
-19DE-19FF,DISALLOWED,NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM ROC
-1A00-1A1B,PVALID,BUGINESE LETTER KA..BUGINESE VOWEL SIGN AE
-1A1C-1A1D,UNASSIGNED,<RESERVED>..<RESERVED>
-1A1E-1A1F,DISALLOWED,BUGINESE PALLAWA..BUGINESE END OF SECTION
-1A20-1A5E,PVALID,TAI THAM LETTER HIGH KA..TAI THAM CONSONANT SIGN SA
-1A5F,UNASSIGNED,<RESERVED>
-1A60-1A7C,PVALID,TAI THAM SIGN SAKOT..TAI THAM SIGN KHUEN-LUE KARAN
-1A7D-1A7E,UNASSIGNED,<RESERVED>..<RESERVED>
-1A7F-1A89,PVALID,TAI THAM COMBINING CRYPTOGRAMMIC DOT..TAI THAM HORA DIGIT NINE
-1A8A-1A8F,UNASSIGNED,<RESERVED>..<RESERVED>
-1A90-1A99,PVALID,TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
-1A9A-1A9F,UNASSIGNED,<RESERVED>..<RESERVED>
-1AA0-1AA6,DISALLOWED,TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
-1AA7,PVALID,TAI THAM SIGN MAI YAMOK
-1AA8-1AAD,DISALLOWED,TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
-1AAE-1AFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1B00-1B4B,PVALID,BALINESE SIGN ULU RICEM..BALINESE LETTER ASYURA SASAK
-1B4C-1B4F,UNASSIGNED,<RESERVED>..<RESERVED>
-1B50-1B59,PVALID,BALINESE DIGIT ZERO..BALINESE DIGIT NINE
-1B5A-1B6A,DISALLOWED,BALINESE PANTI..BALINESE MUSICAL SYMBOL DANG GEDE
-1B6B-1B73,PVALID,BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
-1B74-1B7C,DISALLOWED,BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
-1B7D-1B7F,UNASSIGNED,<RESERVED>..<RESERVED>
-1B80-1BAA,PVALID,SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PAMAAEH
-1BAB-1BAD,UNASSIGNED,<RESERVED>..<RESERVED>
-1BAE-1BB9,PVALID,SUNDANESE LETTER KHA..SUNDANESE DIGIT NINE
-1BBA-1BFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1C00-1C37,PVALID,LEPCHA LETTER KA..LEPCHA SIGN NUKTA
-1C38-1C3A,UNASSIGNED,<RESERVED>..<RESERVED>
-1C3B-1C3F,DISALLOWED,LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
-1C40-1C49,PVALID,LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
-1C4A-1C4C,UNASSIGNED,<RESERVED>..<RESERVED>
-1C4D-1C7D,PVALID,LEPCHA LETTER TTA..OL CHIKI AHAD
-1C7E-1C7F,DISALLOWED,OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
-1C80-1CCF,UNASSIGNED,<RESERVED>..<RESERVED>
-1CD0-1CD2,PVALID,VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
-1CD3,DISALLOWED,VEDIC SIGN NIHSHVASA
-1CD4-1CF2,PVALID,VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC SIGN ARDHAVISARGA
-1CF3-1CFF,UNASSIGNED,<RESERVED>..<RESERVED>
-1D00-1D2B,PVALID,LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
-1D2C-1D2E,DISALLOWED,MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B
-1D2F,PVALID,MODIFIER LETTER CAPITAL BARRED B
-1D30-1D3A,DISALLOWED,MODIFIER LETTER CAPITAL D..MODIFIER LETTER CAPITAL N
-1D3B,PVALID,MODIFIER LETTER CAPITAL REVERSED N
-1D3C-1D4D,DISALLOWED,MODIFIER LETTER CAPITAL O..MODIFIER LETTER SMALL G
-1D4E,PVALID,MODIFIER LETTER SMALL TURNED I
-1D4F-1D6A,DISALLOWED,MODIFIER LETTER SMALL K..GREEK SUBSCRIPT SMALL LETTER CHI
-1D6B-1D77,PVALID,LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
-1D78,DISALLOWED,MODIFIER LETTER CYRILLIC EN
-1D79-1D9A,PVALID,LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-1D9B-1DBF,DISALLOWED,MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1DC0-1DE6,PVALID,COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
-1DE7-1DFC,UNASSIGNED,<RESERVED>..<RESERVED>
-1DFD-1DFF,PVALID,COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
-1E00,DISALLOWED,LATIN CAPITAL LETTER A WITH RING BELOW
-1E01,PVALID,LATIN SMALL LETTER A WITH RING BELOW
-1E02,DISALLOWED,LATIN CAPITAL LETTER B WITH DOT ABOVE
-1E03,PVALID,LATIN SMALL LETTER B WITH DOT ABOVE
-1E04,DISALLOWED,LATIN CAPITAL LETTER B WITH DOT BELOW
-1E05,PVALID,LATIN SMALL LETTER B WITH DOT BELOW
-1E06,DISALLOWED,LATIN CAPITAL LETTER B WITH LINE BELOW
-1E07,PVALID,LATIN SMALL LETTER B WITH LINE BELOW
-1E08,DISALLOWED,LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-1E09,PVALID,LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-1E0A,DISALLOWED,LATIN CAPITAL LETTER D WITH DOT ABOVE
-1E0B,PVALID,LATIN SMALL LETTER D WITH DOT ABOVE
-1E0C,DISALLOWED,LATIN CAPITAL LETTER D WITH DOT BELOW
-1E0D,PVALID,LATIN SMALL LETTER D WITH DOT BELOW
-1E0E,DISALLOWED,LATIN CAPITAL LETTER D WITH LINE BELOW
-1E0F,PVALID,LATIN SMALL LETTER D WITH LINE BELOW
-1E10,DISALLOWED,LATIN CAPITAL LETTER D WITH CEDILLA
-1E11,PVALID,LATIN SMALL LETTER D WITH CEDILLA
-1E12,DISALLOWED,LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-1E13,PVALID,LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-1E14,DISALLOWED,LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-1E15,PVALID,LATIN SMALL LETTER E WITH MACRON AND GRAVE
-1E16,DISALLOWED,LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-1E17,PVALID,LATIN SMALL LETTER E WITH MACRON AND ACUTE
-1E18,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-1E19,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-1E1A,DISALLOWED,LATIN CAPITAL LETTER E WITH TILDE BELOW
-1E1B,PVALID,LATIN SMALL LETTER E WITH TILDE BELOW
-1E1C,DISALLOWED,LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-1E1D,PVALID,LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-1E1E,DISALLOWED,LATIN CAPITAL LETTER F WITH DOT ABOVE
-1E1F,PVALID,LATIN SMALL LETTER F WITH DOT ABOVE
-1E20,DISALLOWED,LATIN CAPITAL LETTER G WITH MACRON
-1E21,PVALID,LATIN SMALL LETTER G WITH MACRON
-1E22,DISALLOWED,LATIN CAPITAL LETTER H WITH DOT ABOVE
-1E23,PVALID,LATIN SMALL LETTER H WITH DOT ABOVE
-1E24,DISALLOWED,LATIN CAPITAL LETTER H WITH DOT BELOW
-1E25,PVALID,LATIN SMALL LETTER H WITH DOT BELOW
-1E26,DISALLOWED,LATIN CAPITAL LETTER H WITH DIAERESIS
-1E27,PVALID,LATIN SMALL LETTER H WITH DIAERESIS
-1E28,DISALLOWED,LATIN CAPITAL LETTER H WITH CEDILLA
-1E29,PVALID,LATIN SMALL LETTER H WITH CEDILLA
-1E2A,DISALLOWED,LATIN CAPITAL LETTER H WITH BREVE BELOW
-1E2B,PVALID,LATIN SMALL LETTER H WITH BREVE BELOW
-1E2C,DISALLOWED,LATIN CAPITAL LETTER I WITH TILDE BELOW
-1E2D,PVALID,LATIN SMALL LETTER I WITH TILDE BELOW
-1E2E,DISALLOWED,LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-1E2F,PVALID,LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-1E30,DISALLOWED,LATIN CAPITAL LETTER K WITH ACUTE
-1E31,PVALID,LATIN SMALL LETTER K WITH ACUTE
-1E32,DISALLOWED,LATIN CAPITAL LETTER K WITH DOT BELOW
-1E33,PVALID,LATIN SMALL LETTER K WITH DOT BELOW
-1E34,DISALLOWED,LATIN CAPITAL LETTER K WITH LINE BELOW
-1E35,PVALID,LATIN SMALL LETTER K WITH LINE BELOW
-1E36,DISALLOWED,LATIN CAPITAL LETTER L WITH DOT BELOW
-1E37,PVALID,LATIN SMALL LETTER L WITH DOT BELOW
-1E38,DISALLOWED,LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-1E39,PVALID,LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-1E3A,DISALLOWED,LATIN CAPITAL LETTER L WITH LINE BELOW
-1E3B,PVALID,LATIN SMALL LETTER L WITH LINE BELOW
-1E3C,DISALLOWED,LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-1E3D,PVALID,LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-1E3E,DISALLOWED,LATIN CAPITAL LETTER M WITH ACUTE
-1E3F,PVALID,LATIN SMALL LETTER M WITH ACUTE
-1E40,DISALLOWED,LATIN CAPITAL LETTER M WITH DOT ABOVE
-1E41,PVALID,LATIN SMALL LETTER M WITH DOT ABOVE
-1E42,DISALLOWED,LATIN CAPITAL LETTER M WITH DOT BELOW
-1E43,PVALID,LATIN SMALL LETTER M WITH DOT BELOW
-1E44,DISALLOWED,LATIN CAPITAL LETTER N WITH DOT ABOVE
-1E45,PVALID,LATIN SMALL LETTER N WITH DOT ABOVE
-1E46,DISALLOWED,LATIN CAPITAL LETTER N WITH DOT BELOW
-1E47,PVALID,LATIN SMALL LETTER N WITH DOT BELOW
-1E48,DISALLOWED,LATIN CAPITAL LETTER N WITH LINE BELOW
-1E49,PVALID,LATIN SMALL LETTER N WITH LINE BELOW
-1E4A,DISALLOWED,LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-1E4B,PVALID,LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-1E4C,DISALLOWED,LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-1E4D,PVALID,LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4E,DISALLOWED,LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1E4F,PVALID,LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E50,DISALLOWED,LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-1E51,PVALID,LATIN SMALL LETTER O WITH MACRON AND GRAVE
-1E52,DISALLOWED,LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-1E53,PVALID,LATIN SMALL LETTER O WITH MACRON AND ACUTE
-1E54,DISALLOWED,LATIN CAPITAL LETTER P WITH ACUTE
-1E55,PVALID,LATIN SMALL LETTER P WITH ACUTE
-1E56,DISALLOWED,LATIN CAPITAL LETTER P WITH DOT ABOVE
-1E57,PVALID,LATIN SMALL LETTER P WITH DOT ABOVE
-1E58,DISALLOWED,LATIN CAPITAL LETTER R WITH DOT ABOVE
-1E59,PVALID,LATIN SMALL LETTER R WITH DOT ABOVE
-1E5A,DISALLOWED,LATIN CAPITAL LETTER R WITH DOT BELOW
-1E5B,PVALID,LATIN SMALL LETTER R WITH DOT BELOW
-1E5C,DISALLOWED,LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-1E5D,PVALID,LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-1E5E,DISALLOWED,LATIN CAPITAL LETTER R WITH LINE BELOW
-1E5F,PVALID,LATIN SMALL LETTER R WITH LINE BELOW
-1E60,DISALLOWED,LATIN CAPITAL LETTER S WITH DOT ABOVE
-1E61,PVALID,LATIN SMALL LETTER S WITH DOT ABOVE
-1E62,DISALLOWED,LATIN CAPITAL LETTER S WITH DOT BELOW
-1E63,PVALID,LATIN SMALL LETTER S WITH DOT BELOW
-1E64,DISALLOWED,LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-1E65,PVALID,LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-1E66,DISALLOWED,LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-1E67,PVALID,LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-1E68,DISALLOWED,LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E69,PVALID,LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E6A,DISALLOWED,LATIN CAPITAL LETTER T WITH DOT ABOVE
-1E6B,PVALID,LATIN SMALL LETTER T WITH DOT ABOVE
-1E6C,DISALLOWED,LATIN CAPITAL LETTER T WITH DOT BELOW
-1E6D,PVALID,LATIN SMALL LETTER T WITH DOT BELOW
-1E6E,DISALLOWED,LATIN CAPITAL LETTER T WITH LINE BELOW
-1E6F,PVALID,LATIN SMALL LETTER T WITH LINE BELOW
-1E70,DISALLOWED,LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-1E71,PVALID,LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-1E72,DISALLOWED,LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-1E73,PVALID,LATIN SMALL LETTER U WITH DIAERESIS BELOW
-1E74,DISALLOWED,LATIN CAPITAL LETTER U WITH TILDE BELOW
-1E75,PVALID,LATIN SMALL LETTER U WITH TILDE BELOW
-1E76,DISALLOWED,LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-1E77,PVALID,LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-1E78,DISALLOWED,LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-1E79,PVALID,LATIN SMALL LETTER U WITH TILDE AND ACUTE
-1E7A,DISALLOWED,LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-1E7B,PVALID,LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-1E7C,DISALLOWED,LATIN CAPITAL LETTER V WITH TILDE
-1E7D,PVALID,LATIN SMALL LETTER V WITH TILDE
-1E7E,DISALLOWED,LATIN CAPITAL LETTER V WITH DOT BELOW
-1E7F,PVALID,LATIN SMALL LETTER V WITH DOT BELOW
-1E80,DISALLOWED,LATIN CAPITAL LETTER W WITH GRAVE
-1E81,PVALID,LATIN SMALL LETTER W WITH GRAVE
-1E82,DISALLOWED,LATIN CAPITAL LETTER W WITH ACUTE
-1E83,PVALID,LATIN SMALL LETTER W WITH ACUTE
-1E84,DISALLOWED,LATIN CAPITAL LETTER W WITH DIAERESIS
-1E85,PVALID,LATIN SMALL LETTER W WITH DIAERESIS
-1E86,DISALLOWED,LATIN CAPITAL LETTER W WITH DOT ABOVE
-1E87,PVALID,LATIN SMALL LETTER W WITH DOT ABOVE
-1E88,DISALLOWED,LATIN CAPITAL LETTER W WITH DOT BELOW
-1E89,PVALID,LATIN SMALL LETTER W WITH DOT BELOW
-1E8A,DISALLOWED,LATIN CAPITAL LETTER X WITH DOT ABOVE
-1E8B,PVALID,LATIN SMALL LETTER X WITH DOT ABOVE
-1E8C,DISALLOWED,LATIN CAPITAL LETTER X WITH DIAERESIS
-1E8D,PVALID,LATIN SMALL LETTER X WITH DIAERESIS
-1E8E,DISALLOWED,LATIN CAPITAL LETTER Y WITH DOT ABOVE
-1E8F,PVALID,LATIN SMALL LETTER Y WITH DOT ABOVE
-1E90,DISALLOWED,LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-1E91,PVALID,LATIN SMALL LETTER Z WITH CIRCUMFLEX
-1E92,DISALLOWED,LATIN CAPITAL LETTER Z WITH DOT BELOW
-1E93,PVALID,LATIN SMALL LETTER Z WITH DOT BELOW
-1E94,DISALLOWED,LATIN CAPITAL LETTER Z WITH LINE BELOW
-1E95-1E99,PVALID,LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER Y WITH RING ABOVE
-1E9A-1E9B,DISALLOWED,LATIN SMALL LETTER A WITH RIGHT HALF RING..LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1E9C-1E9D,PVALID,LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE..LATIN SMALL LETTER LONG S WITH HIGH STROKE
-1E9E,DISALLOWED,LATIN CAPITAL LETTER SHARP S
-1E9F,PVALID,LATIN SMALL LETTER DELTA
-1EA0,DISALLOWED,LATIN CAPITAL LETTER A WITH DOT BELOW
-1EA1,PVALID,LATIN SMALL LETTER A WITH DOT BELOW
-1EA2,DISALLOWED,LATIN CAPITAL LETTER A WITH HOOK ABOVE
-1EA3,PVALID,LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA4,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA5,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA6,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA7,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA8,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA9,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAA,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAB,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAC,DISALLOWED,LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAD,PVALID,LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAE,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EAF,PVALID,LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EB0,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EB1,PVALID,LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB2,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB3,PVALID,LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB4,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB5,PVALID,LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB6,DISALLOWED,LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-1EB7,PVALID,LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB8,DISALLOWED,LATIN CAPITAL LETTER E WITH DOT BELOW
-1EB9,PVALID,LATIN SMALL LETTER E WITH DOT BELOW
-1EBA,DISALLOWED,LATIN CAPITAL LETTER E WITH HOOK ABOVE
-1EBB,PVALID,LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBC,DISALLOWED,LATIN CAPITAL LETTER E WITH TILDE
-1EBD,PVALID,LATIN SMALL LETTER E WITH TILDE
-1EBE,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBF,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC0,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC1,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC2,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC3,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC4,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC5,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC6,DISALLOWED,LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC7,PVALID,LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC8,DISALLOWED,LATIN CAPITAL LETTER I WITH HOOK ABOVE
-1EC9,PVALID,LATIN SMALL LETTER I WITH HOOK ABOVE
-1ECA,DISALLOWED,LATIN CAPITAL LETTER I WITH DOT BELOW
-1ECB,PVALID,LATIN SMALL LETTER I WITH DOT BELOW
-1ECC,DISALLOWED,LATIN CAPITAL LETTER O WITH DOT BELOW
-1ECD,PVALID,LATIN SMALL LETTER O WITH DOT BELOW
-1ECE,DISALLOWED,LATIN CAPITAL LETTER O WITH HOOK ABOVE
-1ECF,PVALID,LATIN SMALL LETTER O WITH HOOK ABOVE
-1ED0,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED1,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED2,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED3,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED4,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED5,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED6,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED7,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED8,DISALLOWED,LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED9,PVALID,LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EDA,DISALLOWED,LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EDB,PVALID,LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDC,DISALLOWED,LATIN CAPITA