diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-04-16 22:03:49 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-04-16 22:03:49 +0200 |
commit | d1d0bc722d1d10936aaf3252b0ec5842715d0d31 (patch) | |
tree | 8949b4eb4f279bfb33a6fd6f0a12cb0576020970 | |
parent | 2bdff13305d08e8b6bdb582fdf064b7ca7860202 (diff) |
Add uprop_get_insc()
-rw-r--r-- | data/IndicSyllabicCategory | 1347 | ||||
-rwxr-xr-x | gen/data-files | 1 | ||||
-rwxr-xr-x | gen/prop/insc | 63 | ||||
-rw-r--r-- | include/unicode/prop.h | 40 | ||||
-rw-r--r-- | lib/unicode/prop/uprop_get_insc.c | 808 |
5 files changed, 2259 insertions, 0 deletions
diff --git a/data/IndicSyllabicCategory b/data/IndicSyllabicCategory new file mode 100644 index 0000000..f2623b4 --- /dev/null +++ b/data/IndicSyllabicCategory @@ -0,0 +1,1347 @@ +# IndicSyllabicCategory-15.1.0.txt +# Date: 2023-01-05 +# © 2023 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see https://www.unicode.org/terms_of_use.html +# +# For documentation, see UAX #44: Unicode Character Database, +# at https://www.unicode.org/reports/tr44/ +# +# This file defines the following property: +# +# Indic_Syllabic_Category enumerated property +# +# Scope: This property is aimed at two general problem +# areas involving the analysis and processing of Indic scripts: +# +# 1. Specification of syllabic structure. +# 2. Specification of segmentation rules. +# +# Both of these problem areas may benefit from having defined subtypes +# of Indic script characters which are relevant to how Indic +# syllables (or aksaras) are constructed. Note that rules for +# syllabic structure in Indic scripts may differ significantly +# from how phonological syllables are defined. +# +# Format: +# Field 0 Unicode code point value or range of code point values +# Field 1 Indic_Syllabic_Category property value +# +# Field 1 is followed by a comment field, starting with the number sign '#', +# which shows the General_Category property value, the Unicode character name +# or names, and, in lines with ranges of code points, the code point count in +# square brackets. +# +# The scripts assessed as Indic in the structural sense used for the +# Indic_Syllabic_Category are the following: +# +# Ahom, Balinese, Batak, Bengali, Bhaiksuki, Brahmi, Buginese, Buhid, +# Chakma, Cham, Devanagari, Dives Akuru, Dogra, Grantha, Gujarati, +# Gunjala Gondi, Gurmukhi, Hanunoo, Javanese, Kaithi, Kannada, Kawi, +# Kayah Li, Kharoshthi, Khmer, Khojki, Khudawadi, Lao, Lepcha, Limbu, +# Mahajani, Makasar, Malayalam, Marchen, Masaram Gondi, Meetei Mayek, +# Modi, Multani, Myanmar, Nandinagari, Newa, New Tai Lue, Oriya, +# Phags-pa, Rejang, Saurashtra, Sharada, Siddham, Sinhala, Soyombo, +# Sundanese, Syloti Nagri, Tagalog, Tagbanwa, Tai Le, Tai Tham, +# Tai Viet, Takri, Tamil, Telugu, Thai, Tibetan, Tirhuta, and +# Zanabazar Square. +# +# All characters for all other scripts not in that list +# take the default value for this property, unless they +# are individually listed in this data file. +# + +# ================================================ + +# Property: Indic_Syllabic_Category +# +# All code points not explicitly listed for Indic_Syllabic_Category +# have the value Other. +# +# @missing: 0000..10FFFF; Other + +# ================================================ + +# Indic_Syllabic_Category=Bindu + +# Bindu/Anusvara (nasalization or -n) + +# [Not derivable] + +0900..0902 ; Bindu # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA +0981 ; Bindu # Mn BENGALI SIGN CANDRABINDU +0982 ; Bindu # Mc BENGALI SIGN ANUSVARA +09FC ; Bindu # Lo BENGALI LETTER VEDIC ANUSVARA +0A01..0A02 ; Bindu # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI +0A70 ; Bindu # Mn GURMUKHI TIPPI +0A81..0A82 ; Bindu # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA +0B01 ; Bindu # Mn ORIYA SIGN CANDRABINDU +0B02 ; Bindu # Mc ORIYA SIGN ANUSVARA +0B82 ; Bindu # Mn TAMIL SIGN ANUSVARA +0C00 ; Bindu # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE +0C01..0C02 ; Bindu # Mc [2] TELUGU SIGN CANDRABINDU..TELUGU SIGN ANUSVARA +0C04 ; Bindu # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE +0C80 ; Bindu # Lo KANNADA SIGN SPACING CANDRABINDU +0C81 ; Bindu # Mn KANNADA SIGN CANDRABINDU +0C82 ; Bindu # Mc KANNADA SIGN ANUSVARA +0CF3 ; Bindu # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT +0D00..0D01 ; Bindu # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU +0D02 ; Bindu # Mc MALAYALAM SIGN ANUSVARA +0D04 ; Bindu # Lo MALAYALAM LETTER VEDIC ANUSVARA +0D81 ; Bindu # Mn SINHALA SIGN CANDRABINDU +0D82 ; Bindu # Mc SINHALA SIGN ANUSVARAYA +0E4D ; Bindu # Mn THAI CHARACTER NIKHAHIT +0ECD ; Bindu # Mn LAO NIGGAHITA +0F7E ; Bindu # Mn TIBETAN SIGN RJES SU NGA RO +0F82..0F83 ; Bindu # Mn [2] TIBETAN SIGN NYI ZLA NAA DA..TIBETAN SIGN SNA LDAN +1036 ; Bindu # Mn MYANMAR SIGN ANUSVARA +17C6 ; Bindu # Mn KHMER SIGN NIKAHIT +1932 ; Bindu # Mn LIMBU SMALL LETTER ANUSVARA +1A74 ; Bindu # Mn TAI THAM SIGN MAI KANG +1B00..1B02 ; Bindu # Mn [3] BALINESE SIGN ULU RICEM..BALINESE SIGN CECEK +1B80 ; Bindu # Mn SUNDANESE SIGN PANYECEK +1C34..1C35 ; Bindu # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG +A80B ; Bindu # Mn SYLOTI NAGRI SIGN ANUSVARA +A873 ; Bindu # Lo PHAGS-PA LETTER CANDRABINDU +A880 ; Bindu # Mc SAURASHTRA SIGN ANUSVARA +A8C5 ; Bindu # Mn SAURASHTRA SIGN CANDRABINDU +A8F2..A8F3 ; Bindu # Lo [2] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU VIRAMA +A980..A981 ; Bindu # Mn [2] JAVANESE SIGN PANYANGGA..JAVANESE SIGN CECAK +10A0E ; Bindu # Mn KHAROSHTHI SIGN ANUSVARA +11000 ; Bindu # Mc BRAHMI SIGN CANDRABINDU +11001 ; Bindu # Mn BRAHMI SIGN ANUSVARA +11080..11081 ; Bindu # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA +11100..11101 ; Bindu # Mn [2] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN ANUSVARA +11180..11181 ; Bindu # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA +111CF ; Bindu # Mn SHARADA SIGN INVERTED CANDRABINDU +11234 ; Bindu # Mn KHOJKI SIGN ANUSVARA +112DF ; Bindu # Mn KHUDAWADI SIGN ANUSVARA +11300..11301 ; Bindu # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU +11302 ; Bindu # Mc GRANTHA SIGN ANUSVARA +1135E..1135F ; Bindu # Lo [2] GRANTHA LETTER VEDIC ANUSVARA..GRANTHA LETTER VEDIC DOUBLE ANUSVARA +11443..11444 ; Bindu # Mn [2] NEWA SIGN CANDRABINDU..NEWA SIGN ANUSVARA +1145F ; Bindu # Lo NEWA LETTER VEDIC ANUSVARA +114BF..114C0 ; Bindu # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA +115BC..115BD ; Bindu # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA +1163D ; Bindu # Mn MODI SIGN ANUSVARA +116AB ; Bindu # Mn TAKRI SIGN ANUSVARA +11837 ; Bindu # Mn DOGRA SIGN ANUSVARA +1193B..1193C ; Bindu # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU +119DE ; Bindu # Mc NANDINAGARI SIGN ANUSVARA +11A35..11A38 ; Bindu # Mn [4] ZANABAZAR SQUARE SIGN CANDRABINDU..ZANABAZAR SQUARE SIGN ANUSVARA +11A96 ; Bindu # Mn SOYOMBO SIGN ANUSVARA +11C3C..11C3D ; Bindu # Mn [2] BHAIKSUKI SIGN CANDRABINDU..BHAIKSUKI SIGN ANUSVARA +11CB5..11CB6 ; Bindu # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU +11D40 ; Bindu # Mn MASARAM GONDI SIGN ANUSVARA +11D95 ; Bindu # Mn GUNJALA GONDI SIGN ANUSVARA +11F00..11F01 ; Bindu # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA + +# ================================================ + +# Indic_Syllabic_Category=Visarga + +# Visarga (-h) +# Excludes letters for jihvamuliya and upadhmaniya, which are +# related, but structured somewhat differently. + +# [Not derivable] + +0903 ; Visarga # Mc DEVANAGARI SIGN VISARGA +0983 ; Visarga # Mc BENGALI SIGN VISARGA +0A03 ; Visarga # Mc GURMUKHI SIGN VISARGA +0A83 ; Visarga # Mc GUJARATI SIGN VISARGA +0B03 ; Visarga # Mc ORIYA SIGN VISARGA +0C03 ; Visarga # Mc TELUGU SIGN VISARGA +0C83 ; Visarga # Mc KANNADA SIGN VISARGA +0D03 ; Visarga # Mc MALAYALAM SIGN VISARGA +0D83 ; Visarga # Mc SINHALA SIGN VISARGAYA +0F7F ; Visarga # Mc TIBETAN SIGN RNAM BCAD +1038 ; Visarga # Mc MYANMAR SIGN VISARGA +17C7 ; Visarga # Mc KHMER SIGN REAHMUK +1B04 ; Visarga # Mc BALINESE SIGN BISAH +1B82 ; Visarga # Mc SUNDANESE SIGN PANGWISAD +A881 ; Visarga # Mc SAURASHTRA SIGN VISARGA +A983 ; Visarga # Mc JAVANESE SIGN WIGNYAN +AAF5 ; Visarga # Mc MEETEI MAYEK VOWEL SIGN VISARGA +10A0F ; Visarga # Mn KHAROSHTHI SIGN VISARGA +11002 ; Visarga # Mc BRAHMI SIGN VISARGA +11082 ; Visarga # Mc KAITHI SIGN VISARGA +11102 ; Visarga # Mn CHAKMA SIGN VISARGA +11182 ; Visarga # Mc SHARADA SIGN VISARGA +11303 ; Visarga # Mc GRANTHA SIGN VISARGA +11445 ; Visarga # Mc NEWA SIGN VISARGA +114C1 ; Visarga # Mc TIRHUTA SIGN VISARGA +115BE ; Visarga # Mc SIDDHAM SIGN VISARGA +1163E ; Visarga # Mc MODI SIGN VISARGA +116AC ; Visarga # Mc TAKRI SIGN VISARGA +11838 ; Visarga # Mc DOGRA SIGN VISARGA +119DF ; Visarga # Mc NANDINAGARI SIGN VISARGA +11A39 ; Visarga # Mc ZANABAZAR SQUARE SIGN VISARGA +11A97 ; Visarga # Mc SOYOMBO SIGN VISARGA +11C3E ; Visarga # Mc BHAIKSUKI SIGN VISARGA +11D41 ; Visarga # Mn MASARAM GONDI SIGN VISARGA +11D96 ; Visarga # Mc GUNJALA GONDI SIGN VISARGA +11F03 ; Visarga # Mc KAWI SIGN VISARGA + +# ================================================ + +# Indic_Syllabic_Category=Avagraha + +# Avagraha (elision of initial a- in sandhi) + +# [Not derivable] + +093D ; Avagraha # Lo DEVANAGARI SIGN AVAGRAHA +09BD ; Avagraha # Lo BENGALI SIGN AVAGRAHA +0ABD ; Avagraha # Lo GUJARATI SIGN AVAGRAHA +0B3D ; Avagraha # Lo ORIYA SIGN AVAGRAHA +0C3D ; Avagraha # Lo TELUGU SIGN AVAGRAHA +0CBD ; Avagraha # Lo KANNADA SIGN AVAGRAHA +0D3D ; Avagraha # Lo MALAYALAM SIGN AVAGRAHA +0F85 ; Avagraha # Po TIBETAN MARK PALUTA +17DC ; Avagraha # Lo KHMER SIGN AVAKRAHASANYA +1BBA ; Avagraha # Lo SUNDANESE AVAGRAHA +111C1 ; Avagraha # Lo SHARADA SIGN AVAGRAHA +1133D ; Avagraha # Lo GRANTHA SIGN AVAGRAHA +11447 ; Avagraha # Lo NEWA SIGN AVAGRAHA +114C4 ; Avagraha # Lo TIRHUTA SIGN AVAGRAHA +119E1 ; Avagraha # Lo NANDINAGARI SIGN AVAGRAHA +11A9D ; Avagraha # Lo SOYOMBO MARK PLUTA +11C40 ; Avagraha # Lo BHAIKSUKI SIGN AVAGRAHA + +# ================================================ + +# Indic_Syllabic_Category=Nukta + +# Nukta (diacritic for borrowed consonants or other consonant +# modifications). Note that while the resulting sound is typically a +# consonant, the base letter a nukta follows may be an independent +# vowel. For example, <U+0A85 GUJARATI LETTER A, U+0AFD GUJARATI +# SIGN THREE-DOT NUKTA ABOVE> is used to transcribe ARABIC LETTER +# AIN. + +# [Not derivable] + +093C ; Nukta # Mn DEVANAGARI SIGN NUKTA +09BC ; Nukta # Mn BENGALI SIGN NUKTA +0A3C ; Nukta # Mn GURMUKHI SIGN NUKTA +0ABC ; Nukta # Mn GUJARATI SIGN NUKTA +0AFD..0AFF ; Nukta # Mn [3] GUJARATI SIGN THREE-DOT NUKTA ABOVE..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE +0B3C ; Nukta # Mn ORIYA SIGN NUKTA +0C3C ; Nukta # Mn TELUGU SIGN NUKTA +0CBC ; Nukta # Mn KANNADA SIGN NUKTA +0F39 ; Nukta # Mn TIBETAN MARK TSA -PHRU +1B34 ; Nukta # Mn BALINESE SIGN REREKAN +1BE6 ; Nukta # Mn BATAK SIGN TOMPI +1C37 ; Nukta # Mn LEPCHA SIGN NUKTA +A9B3 ; Nukta # Mn JAVANESE SIGN CECAK TELU +10A38..10A3A ; Nukta # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW +110BA ; Nukta # Mn KAITHI SIGN NUKTA +11173 ; Nukta # Mn MAHAJANI SIGN NUKTA +111CA ; Nukta # Mn SHARADA SIGN NUKTA +11236 ; Nukta # Mn KHOJKI SIGN NUKTA +112E9 ; Nukta # Mn KHUDAWADI SIGN NUKTA +1133B..1133C ; Nukta # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA +11446 ; Nukta # Mn NEWA SIGN NUKTA +114C3 ; Nukta # Mn TIRHUTA SIGN NUKTA +115C0 ; Nukta # Mn SIDDHAM SIGN NUKTA +116B7 ; Nukta # Mn TAKRI SIGN NUKTA +1183A ; Nukta # Mn DOGRA SIGN NUKTA +11943 ; Nukta # Mn DIVES AKURU SIGN NUKTA +11D42 ; Nukta # Mn MASARAM GONDI SIGN NUKTA + +# ================================================ + +# Indic_Syllabic_Category=Virama + +# Virama (killing of inherent vowel in consonant sequence +# or consonant stacker) +# Only includes characters that can act both as visible killer viramas +# and consonant stackers. Separate property values exist for characters +# that can only act as pure killers or only as consonant stackers. + +# [Derivation: (ccc=9) - (InSC=Pure_Killer) - (InSC=Invisible_Stacker) +# - (InSC=Number_Joiner) - 2D7F] + +094D ; Virama # Mn DEVANAGARI SIGN VIRAMA +09CD ; Virama # Mn BENGALI SIGN VIRAMA +0A4D ; Virama # Mn GURMUKHI SIGN VIRAMA +0ACD ; Virama # Mn GUJARATI SIGN VIRAMA +0B4D ; Virama # Mn ORIYA SIGN VIRAMA +0BCD ; Virama # Mn TAMIL SIGN VIRAMA +0C4D ; Virama # Mn TELUGU SIGN VIRAMA +0CCD ; Virama # Mn KANNADA SIGN VIRAMA +0D4D ; Virama # Mn MALAYALAM SIGN VIRAMA +0DCA ; Virama # Mn SINHALA SIGN AL-LAKUNA +1B44 ; Virama # Mc BALINESE ADEG ADEG +A806 ; Virama # Mn SYLOTI NAGRI SIGN HASANTA +A8C4 ; Virama # Mn SAURASHTRA SIGN VIRAMA +A9C0 ; Virama # Mc JAVANESE PANGKON +11046 ; Virama # Mn BRAHMI VIRAMA +110B9 ; Virama # Mn KAITHI SIGN VIRAMA +111C0 ; Virama # Mc SHARADA SIGN VIRAMA +11235 ; Virama # Mc KHOJKI SIGN VIRAMA +1134D ; Virama # Mc GRANTHA SIGN VIRAMA +11442 ; Virama # Mn NEWA SIGN VIRAMA +114C2 ; Virama # Mn TIRHUTA SIGN VIRAMA +115BF ; Virama # Mn SIDDHAM SIGN VIRAMA +1163F ; Virama # Mn MODI SIGN VIRAMA +116B6 ; Virama # Mc TAKRI SIGN VIRAMA +11839 ; Virama # Mn DOGRA SIGN VIRAMA +119E0 ; Virama # Mn NANDINAGARI SIGN VIRAMA +11C3F ; Virama # Mn BHAIKSUKI SIGN VIRAMA + +# ================================================ + +# Indic_Syllabic_Category=Pure_Killer + +# Pure killer (killing of inherent vowel in consonant sequence, +# with no consonant stacking behavior) + +# [Not derivable] + +0D3B..0D3C ; Pure_Killer # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA +0E3A ; Pure_Killer # Mn THAI CHARACTER PHINTHU +0E4E ; Pure_Killer # Mn THAI CHARACTER YAMAKKAN +0EBA ; Pure_Killer # Mn LAO SIGN PALI VIRAMA +0F84 ; Pure_Killer # Mn TIBETAN MARK HALANTA +103A ; Pure_Killer # Mn MYANMAR SIGN ASAT +1714 ; Pure_Killer # Mn TAGALOG SIGN VIRAMA +1715 ; Pure_Killer # Mc TAGALOG SIGN PAMUDPOD +1734 ; Pure_Killer # Mc HANUNOO SIGN PAMUDPOD +17D1 ; Pure_Killer # Mn KHMER SIGN VIRIAM +1A7A ; Pure_Killer # Mn TAI THAM SIGN RA HAAM +1BAA ; Pure_Killer # Mc SUNDANESE SIGN PAMAAEH +1BF2..1BF3 ; Pure_Killer # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN +A82C ; Pure_Killer # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA +A953 ; Pure_Killer # Mc REJANG VIRAMA +ABED ; Pure_Killer # Mn MEETEI MAYEK APUN IYEK +11070 ; Pure_Killer # Mn BRAHMI SIGN OLD TAMIL VIRAMA +11134 ; Pure_Killer # Mn CHAKMA MAAYYAA +112EA ; Pure_Killer # Mn KHUDAWADI SIGN VIRAMA +1172B ; Pure_Killer # Mn AHOM SIGN KILLER +1193D ; Pure_Killer # Mc DIVES AKURU SIGN HALANTA +11A34 ; Pure_Killer # Mn ZANABAZAR SQUARE SIGN VIRAMA +11D44 ; Pure_Killer # Mn MASARAM GONDI SIGN HALANTA +11F41 ; Pure_Killer # Mc KAWI SIGN KILLER + +# ================================================ + +# Indic_Syllabic_Category=Invisible_Stacker + +# Invisible stacker (invisible consonant stacker virama). +# +# Note that in some scripts, such as Kharoshthi and Masaram Gondi, an invisible +# stacker may have a second function, changing the shape and/or location of the +# consonant preceding it, even when there is no consonant following the +# invisible stacker. + +# [Not derivable] + +1039 ; Invisible_Stacker # Mn MYANMAR SIGN VIRAMA +17D2 ; Invisible_Stacker # Mn KHMER SIGN COENG +1A60 ; Invisible_Stacker # Mn TAI THAM SIGN SAKOT +1BAB ; Invisible_Stacker # Mn SUNDANESE SIGN VIRAMA +AAF6 ; Invisible_Stacker # Mn MEETEI MAYEK VIRAMA +10A3F ; Invisible_Stacker # Mn KHAROSHTHI VIRAMA +11133 ; Invisible_Stacker # Mn CHAKMA VIRAMA +1193E ; Invisible_Stacker # Mn DIVES AKURU VIRAMA +11A47 ; Invisible_Stacker # Mn ZANABAZAR SQUARE SUBJOINER +11A99 ; Invisible_Stacker # Mn SOYOMBO SUBJOINER +11D45 ; Invisible_Stacker # Mn MASARAM GONDI VIRAMA +11D97 ; Invisible_Stacker # Mn GUNJALA GONDI VIRAMA +11F42 ; Invisible_Stacker # Mn KAWI CONJOINER + +# ================================================ + +# Indic_Syllabic_Category=Vowel_Independent + +# Independent Vowels (contrasted with matras) + +# [Not derivable] + +0904..0914 ; Vowel_Independent # Lo [17] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER AU +0960..0961 ; Vowel_Independent # Lo [2] DEVANAGARI LETTER VOCALIC RR..DEVANAGARI LETTER VOCALIC LL +0972..0977 ; Vowel_Independent # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE +0985..098C ; Vowel_Independent # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L +098F..0990 ; Vowel_Independent # Lo [2] BENGALI LETTER E..BENGALI LETTER AI +0993..0994 ; Vowel_Independent # Lo [2] BENGALI LETTER O..BENGALI LETTER AU +09E0..09E1 ; Vowel_Independent # Lo [2] BENGALI LETTER VOCALIC RR..BENGALI LETTER VOCALIC LL +0A05..0A0A ; Vowel_Independent # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0F..0A10 ; Vowel_Independent # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A13..0A14 ; Vowel_Independent # Lo [2] GURMUKHI LETTER OO..GURMUKHI LETTER AU +0A85..0A8D ; Vowel_Independent # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E +0A8F..0A91 ; Vowel_Independent # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A93..0A94 ; Vowel_Independent # Lo [2] GUJARATI LETTER O..GUJARATI LETTER AU +0AE0..0AE1 ; Vowel_Independent # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL +0B05..0B0C ; Vowel_Independent # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0F..0B10 ; Vowel_Independent # Lo [2] ORIYA LETTER E..ORIYA LETTER AI +0B13..0B14 ; Vowel_Independent # Lo [2] ORIYA LETTER O..ORIYA LETTER AU +0B60..0B61 ; Vowel_Independent # Lo [2] ORIYA LETTER VOCALIC RR..ORIYA LETTER VOCALIC LL +0B85..0B8A ; Vowel_Independent # Lo [6] TAMIL LETTER A..TAMIL LETTER UU +0B8E..0B90 ; Vowel_Independent # Lo [3] TAMIL LETTER E..TAMIL LETTER AI +0B92..0B94 ; Vowel_Independent # Lo [3] TAMIL LETTER O..TAMIL LETTER AU +0C05..0C0C ; Vowel_Independent # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0E..0C10 ; Vowel_Independent # Lo [3] TELUGU LETTER E..TELUGU LETTER AI +0C12..0C14 ; Vowel_Independent # Lo [3] TELUGU LETTER O..TELUGU LETTER AU +0C60..0C61 ; Vowel_Independent # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C85..0C8C ; Vowel_Independent # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8E..0C90 ; Vowel_Independent # Lo [3] KANNADA LETTER E..KANNADA LETTER AI +0C92..0C94 ; Vowel_Independent # Lo [3] KANNADA LETTER O..KANNADA LETTER AU +0CE0..0CE1 ; Vowel_Independent # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0D05..0D0C ; Vowel_Independent # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L +0D0E..0D10 ; Vowel_Independent # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI +0D12..0D14 ; Vowel_Independent # Lo [3] MALAYALAM LETTER O..MALAYALAM LETTER AU +0D5F..0D61 ; Vowel_Independent # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL +0D85..0D96 ; Vowel_Independent # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +1021..102A ; Vowel_Independent # Lo [10] MYANMAR LETTER A..MYANMAR LETTER AU +1052..1055 ; Vowel_Independent # Lo [4] MYANMAR LETTER VOCALIC R..MYANMAR LETTER VOCALIC LL +1700..1702 ; Vowel_Independent # Lo [3] TAGALOG LETTER A..TAGALOG LETTER U +1720..1722 ; Vowel_Independent # Lo [3] HANUNOO LETTER A..HANUNOO LETTER U +1740..1742 ; Vowel_Independent # Lo [3] BUHID LETTER A..BUHID LETTER U +1760..1762 ; Vowel_Independent # Lo [3] TAGBANWA LETTER A..TAGBANWA LETTER U +17A3..17B3 ; Vowel_Independent # Lo [17] KHMER INDEPENDENT VOWEL QAQ..KHMER INDEPENDENT VOWEL QAU +1A4D..1A52 ; Vowel_Independent # Lo [6] TAI THAM LETTER I..TAI THAM LETTER OO +1B05..1B12 ; Vowel_Independent # Lo [14] BALINESE LETTER AKARA..BALINESE LETTER OKARA TEDUNG +1B83..1B89 ; Vowel_Independent # Lo [7] SUNDANESE LETTER A..SUNDANESE LETTER EU +1BE4..1BE5 ; Vowel_Independent # Lo [2] BATAK LETTER I..BATAK LETTER U +A800..A801 ; Vowel_Independent # Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I +A803..A805 ; Vowel_Independent # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O +A882..A891 ; Vowel_Independent # Lo [16] SAURASHTRA LETTER A..SAURASHTRA LETTER AU +A8FE ; Vowel_Independent # Lo DEVANAGARI LETTER AY +A984..A988 ; Vowel_Independent # Lo [5] JAVANESE LETTER A..JAVANESE LETTER U +A98C..A98E ; Vowel_Independent # Lo [3] JAVANESE LETTER E..JAVANESE LETTER O +AA00..AA05 ; Vowel_Independent # Lo [6] CHAM LETTER A..CHAM LETTER O +AAE0..AAE1 ; Vowel_Independent # Lo [2] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER O +ABCE..ABCF ; Vowel_Independent # Lo [2] MEETEI MAYEK LETTER UN..MEETEI MAYEK LETTER I +ABD1 ; Vowel_Independent # Lo MEETEI MAYEK LETTER ATIYA +11005..11012 ; Vowel_Independent # Lo [14] BRAHMI LETTER A..BRAHMI LETTER AU +11071..11072 ; Vowel_Independent # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O +11083..1108C ; Vowel_Independent # Lo [10] KAITHI LETTER A..KAITHI LETTER AU +11103..11106 ; Vowel_Independent # Lo [4] CHAKMA LETTER AA..CHAKMA LETTER E +11183..11190 ; Vowel_Independent # Lo [14] SHARADA LETTER A..SHARADA LETTER AU +11200..11207 ; Vowel_Independent # Lo [8] KHOJKI LETTER A..KHOJKI LETTER AU +11240 ; Vowel_Independent # Lo KHOJKI LETTER SHORT I +11280..11283 ; Vowel_Independent # Lo [4] MULTANI LETTER A..MULTANI LETTER E +112B0..112B9 ; Vowel_Independent # Lo [10] KHUDAWADI LETTER A..KHUDAWADI LETTER AU +11305..1130C ; Vowel_Independent # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L +1130F..11310 ; Vowel_Independent # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI +11313..11314 ; Vowel_Independent # Lo [2] GRANTHA LETTER OO..GRANTHA LETTER AU +11360..11361 ; Vowel_Independent # Lo [2] GRANTHA LETTER VOCALIC RR..GRANTHA LETTER VOCALIC LL +11400..1140D ; Vowel_Independent # Lo [14] NEWA LETTER A..NEWA LETTER AU +11481..1148E ; Vowel_Independent # Lo [14] TIRHUTA LETTER A..TIRHUTA LETTER AU +11580..1158D ; Vowel_Independent # Lo [14] SIDDHAM LETTER A..SIDDHAM LETTER AU +115D8..115DB ; Vowel_Independent # Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U +11600..1160D ; Vowel_Independent # Lo [14] MODI LETTER A..MODI LETTER AU +11680..11689 ; Vowel_Independent # Lo [10] TAKRI LETTER A..TAKRI LETTER AU +11800..11809 ; Vowel_Independent # Lo [10] DOGRA LETTER A..DOGRA LETTER AU +11900..11906 ; Vowel_Independent # Lo [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E +11909 ; Vowel_Independent # Lo DIVES AKURU LETTER O +119A0..119A7 ; Vowel_Independent # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR +119AA..119AD ; Vowel_Independent # Lo [4] NANDINAGARI LETTER E..NANDINAGARI LETTER AU +11A00 ; Vowel_Independent # Lo ZANABAZAR SQUARE LETTER A +11A50 ; Vowel_Independent # Lo SOYOMBO LETTER A +11C00..11C08 ; Vowel_Independent # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L +11C0A..11C0D ; Vowel_Independent # Lo [4] BHAIKSUKI LETTER E..BHAIKSUKI LETTER AU +11D00..11D06 ; Vowel_Independent # Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E +11D08..11D09 ; Vowel_Independent # Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O +11D0B ; Vowel_Independent # Lo MASARAM GONDI LETTER AU +11D60..11D65 ; Vowel_Independent # Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU +11D67..11D68 ; Vowel_Independent # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI +11D6A..11D6B ; Vowel_Independent # Lo [2] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER AU +11F04..11F10 ; Vowel_Independent # Lo [13] KAWI LETTER A..KAWI LETTER O + +# ================================================ + +# Indic_Syllabic_Category=Vowel_Dependent + +# Dependent Vowels (contrasted with independent vowels and/or with +# complex placement). Known as matras in Indic scripts. Also +# includes vowel modifiers that follow dependent (and sometimes +# independent) vowels. + +# [Not derivable] + +093A ; Vowel_Dependent # Mn DEVANAGARI VOWEL SIGN OE +093B ; Vowel_Dependent # Mc DEVANAGARI VOWEL SIGN OOE +093E..0940 ; Vowel_Dependent # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II +0941..0948 ; Vowel_Dependent # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI +0949..094C ; Vowel_Dependent # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU +094E..094F ; Vowel_Dependent # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW +0955..0957 ; Vowel_Dependent # Mn [3] DEVANAGARI VOWEL SIGN CANDRA LONG E..DEVANAGARI VOWEL SIGN UUE +0962..0963 ; Vowel_Dependent # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +09BE..09C0 ; Vowel_Dependent # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II +09C1..09C4 ; Vowel_Dependent # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR +09C7..09C8 ; Vowel_Dependent # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CC ; Vowel_Dependent # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU +09D7 ; Vowel_Dependent # Mc BENGALI AU LENGTH MARK +09E2..09E3 ; Vowel_Dependent # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +0A3E..0A40 ; Vowel_Dependent # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II +0A41..0A42 ; Vowel_Dependent # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; Vowel_Dependent # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4C ; Vowel_Dependent # Mn [2] GURMUKHI VOWEL SIGN OO..GURMUKHI VOWEL SIGN AU +0ABE..0AC0 ; Vowel_Dependent # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II +0AC1..0AC5 ; Vowel_Dependent # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC8 ; Vowel_Dependent # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI +0AC9 ; Vowel_Dependent # Mc GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACC ; Vowel_Dependent # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU +0AE2..0AE3 ; Vowel_Dependent # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL +0B3E ; Vowel_Dependent # Mc ORIYA VOWEL SIGN AA +0B3F ; Vowel_Dependent # Mn ORIYA VOWEL SIGN I +0B40 ; Vowel_Dependent # Mc ORIYA VOWEL SIGN II +0B41..0B44 ; Vowel_Dependent # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR +0B47..0B48 ; Vowel_Dependent # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4C ; Vowel_Dependent # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU +0B55..0B56 ; Vowel_Dependent # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK +0B57 ; Vowel_Dependent # Mc ORIYA AU LENGTH MARK +0B62..0B63 ; Vowel_Dependent # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0BBE..0BBF ; Vowel_Dependent # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I +0BC0 ; Vowel_Dependent # Mn TAMIL VOWEL SIGN II +0BC1..0BC2 ; Vowel_Dependent # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; Vowel_Dependent # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCC ; Vowel_Dependent # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU +0BD7 ; Vowel_Dependent # Mc TAMIL AU LENGTH MARK +0C3E..0C40 ; Vowel_Dependent # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II +0C41..0C44 ; Vowel_Dependent # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR +0C46..0C48 ; Vowel_Dependent # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4C ; Vowel_Dependent # Mn [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU +0C55..0C56 ; Vowel_Dependent # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C62..0C63 ; Vowel_Dependent # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0CBE ; Vowel_Dependent # Mc KANNADA VOWEL SIGN AA +0CBF ; Vowel_Dependent # Mn KANNADA VOWEL SIGN I +0CC0..0CC4 ; Vowel_Dependent # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR +0CC6 ; Vowel_Dependent # Mn KANNADA VOWEL SIGN E +0CC7..0CC8 ; Vowel_Dependent # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI +0CCA..0CCB ; Vowel_Dependent # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO +0CCC ; Vowel_Dependent # Mn KANNADA VOWEL SIGN AU +0CD5..0CD6 ; Vowel_Dependent # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CE2..0CE3 ; Vowel_Dependent # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0D3E..0D40 ; Vowel_Dependent # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II +0D41..0D44 ; Vowel_Dependent # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR +0D46..0D48 ; Vowel_Dependent # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4C ; Vowel_Dependent # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU +0D57 ; Vowel_Dependent # Mc MALAYALAM AU LENGTH MARK +0D62..0D63 ; Vowel_Dependent # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0DCF..0DD1 ; Vowel_Dependent # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA +0DD2..0DD4 ; Vowel_Dependent # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; Vowel_Dependent # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD8..0DDF ; Vowel_Dependent # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DF2..0DF3 ; Vowel_Dependent # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0E30 ; Vowel_Dependent # Lo THAI CHARACTER SARA A +0E31 ; Vowel_Dependent # Mn THAI CHARACTER MAI HAN-AKAT +0E32..0E33 ; Vowel_Dependent # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM +0E34..0E39 ; Vowel_Dependent # Mn [6] THAI CHARACTER SARA I..THAI CHARACTER SARA UU +0E40..0E45 ; Vowel_Dependent # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO +0E47 ; Vowel_Dependent # Mn THAI CHARACTER MAITAIKHU +0EB0 ; Vowel_Dependent # Lo LAO VOWEL SIGN A +0EB1 ; Vowel_Dependent # Mn LAO VOWEL SIGN MAI KAN +0EB2..0EB3 ; Vowel_Dependent # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM +0EB4..0EB9 ; Vowel_Dependent # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB ; Vowel_Dependent # Mn LAO VOWEL SIGN MAI KON +0EC0..0EC4 ; Vowel_Dependent # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0F71..0F7D ; Vowel_Dependent # Mn [13] TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN OO +0F80..0F81 ; Vowel_Dependent # Mn [2] TIBETAN VOWEL SIGN REVERSED I..TIBETAN VOWEL SIGN REVERSED II +102B..102C ; Vowel_Dependent # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA +102D..1030 ; Vowel_Dependent # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU +1031 ; Vowel_Dependent # Mc MYANMAR VOWEL SIGN E +1032..1035 ; Vowel_Dependent # Mn [4] MYANMAR VOWEL SIGN AI..MYANMAR VOWEL SIGN E ABOVE +1056..1057 ; Vowel_Dependent # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR +1058..1059 ; Vowel_Dependent # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL +1062 ; Vowel_Dependent # Mc MYANMAR VOWEL SIGN SGAW KAREN EU +1067..1068 ; Vowel_Dependent # Mc [2] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR VOWEL SIGN WESTERN PWO KAREN UE +1071..1074 ; Vowel_Dependent # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE +1083..1084 ; Vowel_Dependent # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E +1085..1086 ; Vowel_Dependent # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y +109C ; Vowel_Dependent # Mc MYANMAR VOWEL SIGN AITON A +109D ; Vowel_Dependent # Mn MYANMAR VOWEL SIGN AITON AI +1712..1713 ; Vowel_Dependent # Mn [2] TAGALOG VOWEL SIGN I..TAGALOG VOWEL SIGN U +1732..1733 ; Vowel_Dependent # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U +1752..1753 ; Vowel_Dependent # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U +1772..1773 ; Vowel_Dependent # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U +17B6 ; Vowel_Dependent # Mc KHMER VOWEL SIGN AA +17B7..17BD ; Vowel_Dependent # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA +17BE..17C5 ; Vowel_Dependent # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU +17C8 ; Vowel_Dependent # Mc KHMER SIGN YUUKALEAPINTU +1920..1922 ; Vowel_Dependent # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U +1923..1926 ; Vowel_Dependent # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU +1927..1928 ; Vowel_Dependent # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +193A ; Vowel_Dependent # Mn LIMBU SIGN KEMPHRENG +19B0..19C0 ; Vowel_Dependent # Lo [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY +1A17..1A18 ; Vowel_Dependent # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U +1A19..1A1A ; Vowel_Dependent # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O +1A1B ; Vowel_Dependent # Mn BUGINESE VOWEL SIGN AE +1A61 ; Vowel_Dependent # Mc TAI THAM VOWEL SIGN A +1A62 ; Vowel_Dependent # Mn TAI THAM VOWEL SIGN MAI SAT +1A63..1A64 ; Vowel_Dependent # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA +1A65..1A6C ; Vowel_Dependent # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW +1A6D..1A72 ; Vowel_Dependent # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI +1A73 ; Vowel_Dependent # Mn TAI THAM VOWEL SIGN OA ABOVE +1B35 ; Vowel_Dependent # Mc BALINESE VOWEL SIGN TEDUNG +1B36..1B3A ; Vowel_Dependent # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA +1B3B ; Vowel_Dependent # Mc BALINESE VOWEL SIGN RA REPA TEDUNG +1B3C ; Vowel_Dependent # Mn BALINESE VOWEL SIGN LA LENGA +1B3D..1B41 ; Vowel_Dependent # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG +1B42 ; Vowel_Dependent # Mn BALINESE VOWEL SIGN PEPET +1B43 ; Vowel_Dependent # Mc BALINESE VOWEL SIGN PEPET TEDUNG +1BA4..1BA5 ; Vowel_Dependent # Mn [2] SUNDANESE VOWEL SIGN PANGHULU..SUNDANESE VOWEL SIGN PANYUKU +1BA6..1BA7 ; Vowel_Dependent # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG +1BA8..1BA9 ; Vowel_Dependent # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG +1BE7 ; Vowel_Dependent # Mc BATAK VOWEL SIGN E +1BE8..1BE9 ; Vowel_Dependent # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE +1BEA..1BEC ; Vowel_Dependent # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O +1BED ; Vowel_Dependent # Mn BATAK VOWEL SIGN KARO O +1BEE ; Vowel_Dependent # Mc BATAK VOWEL SIGN U +1BEF ; Vowel_Dependent # Mn BATAK VOWEL SIGN U FOR SIMALUNGUN SA +1C26..1C2B ; Vowel_Dependent # Mc [6] LEPCHA VOWEL SIGN AA..LEPCHA VOWEL SIGN UU +1C2C ; Vowel_Dependent # Mn LEPCHA VOWEL SIGN E +A802 ; Vowel_Dependent # Mn SYLOTI NAGRI SIGN DVISVARA +A823..A824 ; Vowel_Dependent # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I +A825..A826 ; Vowel_Dependent # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +A827 ; Vowel_Dependent # Mc SYLOTI NAGRI VOWEL SIGN OO +A8B5..A8C3 ; Vowel_Dependent # Mc [15] SAURASHTRA VOWEL SIGN AA..SAURASHTRA VOWEL SIGN AU +A8FF ; Vowel_Dependent # Mn DEVANAGARI VOWEL SIGN AY +A947..A94E ; Vowel_Dependent # Mn [8] REJANG VOWEL SIGN I..REJANG VOWEL SIGN EA +A9B4..A9B5 ; Vowel_Dependent # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG +A9B6..A9B9 ; Vowel_Dependent # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT +A9BA..A9BB ; Vowel_Dependent # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE +A9BC ; Vowel_Dependent # Mn JAVANESE VOWEL SIGN PEPET +A9E5 ; Vowel_Dependent # Mn MYANMAR SIGN SHAN SAW +AA29..AA2E ; Vowel_Dependent # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE +AA2F..AA30 ; Vowel_Dependent # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI +AA31..AA32 ; Vowel_Dependent # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE +AAB0 ; Vowel_Dependent # Mn TAI VIET MAI KANG +AAB1 ; Vowel_Dependent # Lo TAI VIET VOWEL AA +AAB2..AAB4 ; Vowel_Dependent # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U +AAB5..AAB6 ; Vowel_Dependent # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB7..AAB8 ; Vowel_Dependent # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA +AAB9..AABD ; Vowel_Dependent # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN +AABE ; Vowel_Dependent # Mn TAI VIET VOWEL AM +AAEB ; Vowel_Dependent # Mc MEETEI MAYEK VOWEL SIGN II +AAEC..AAED ; Vowel_Dependent # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI +AAEE..AAEF ; Vowel_Dependent # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU +ABE3..ABE4 ; Vowel_Dependent # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP +ABE5 ; Vowel_Dependent # Mn MEETEI MAYEK VOWEL SIGN ANAP +ABE6..ABE7 ; Vowel_Dependent # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP +ABE8 ; Vowel_Dependent # Mn MEETEI MAYEK VOWEL SIGN UNAP +ABE9..ABEA ; Vowel_Dependent # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG +10A01..10A03 ; Vowel_Dependent # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R +10A05..10A06 ; Vowel_Dependent # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A0C..10A0D ; Vowel_Dependent # Mn [2] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN DOUBLE RING BELOW +11038..11045 ; Vowel_Dependent # Mn [14] BRAHMI VOWEL SIGN AA..BRAHMI VOWEL SIGN AU +11073..11074 ; Vowel_Dependent # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O +110B0..110B2 ; Vowel_Dependent # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II +110B3..110B6 ; Vowel_Dependent # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI +110B7..110B8 ; Vowel_Dependent # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU +110C2 ; Vowel_Dependent # Mn KAITHI VOWEL SIGN VOCALIC R +11127..1112B ; Vowel_Dependent # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU +1112C ; Vowel_Dependent # Mc CHAKMA VOWEL SIGN E +1112D..11132 ; Vowel_Dependent # Mn [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK +11145..11146 ; Vowel_Dependent # Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI +111B3..111B5 ; Vowel_Dependent # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II +111B6..111BE ; Vowel_Dependent # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O +111BF ; Vowel_Dependent # Mc SHARADA VOWEL SIGN AU +111CB..111CC ; Vowel_Dependent # Mn [2] SHARADA VOWEL MODIFIER MARK..SHARADA EXTRA SHORT VOWEL MARK +111CE ; Vowel_Dependent # Mc SHARADA VOWEL SIGN PRISHTHAMATRA E +1122C..1122E ; Vowel_Dependent # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II +1122F..11231 ; Vowel_Dependent # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI +11232..11233 ; Vowel_Dependent # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU +11241 ; Vowel_Dependent # Mn KHOJKI VOWEL SIGN VOCALIC R +112E0..112E2 ; Vowel_Dependent # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II +112E3..112E8 ; Vowel_Dependent # Mn [6] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN AU +1133E..1133F ; Vowel_Dependent # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I +11340 ; Vowel_Dependent # Mn GRANTHA VOWEL SIGN II +11341..11344 ; Vowel_Dependent # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR +11347..11348 ; Vowel_Dependent # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI +1134B..1134C ; Vowel_Dependent # Mc [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU +11357 ; Vowel_Dependent # Mc GRANTHA AU LENGTH MARK +11362..11363 ; Vowel_Dependent # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL +11435..11437 ; Vowel_Dependent # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II +11438..1143F ; Vowel_Dependent # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI +11440..11441 ; Vowel_Dependent # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU +114B0..114B2 ; Vowel_Dependent # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II +114B3..114B8 ; Vowel_Dependent # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL +114B9 ; Vowel_Dependent # Mc TIRHUTA VOWEL SIGN E +114BA ; Vowel_Dependent # Mn TIRHUTA VOWEL SIGN SHORT E +114BB..114BE ; Vowel_Dependent # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU +115AF..115B1 ; Vowel_Dependent # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II +115B2..115B5 ; Vowel_Dependent # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR +115B8..115BB ; Vowel_Dependent # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU +115DC..115DD ; Vowel_Dependent # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU +11630..11632 ; Vowel_Dependent # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II +11633..1163A ; Vowel_Dependent # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI +1163B..1163C ; Vowel_Dependent # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU +11640 ; Vowel_Dependent # Mn MODI SIGN ARDHACANDRA +116AD ; Vowel_Dependent # Mn TAKRI VOWEL SIGN AA +116AE..116AF ; Vowel_Dependent # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II +116B0..116B5 ; Vowel_Dependent # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU +11720..11721 ; Vowel_Dependent # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA +11722..11725 ; Vowel_Dependent # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU +11726 ; Vowel_Dependent # Mc AHOM VOWEL SIGN E +11727..1172A ; Vowel_Dependent # Mn [4] AHOM VOWEL SIGN AW..AHOM VOWEL SIGN AM +1182C..1182E ; Vowel_Dependent # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II +1182F..11836 ; Vowel_Dependent # Mn [8] DOGRA VOWEL SIGN U..DOGRA VOWEL SIGN AU +11930..11935 ; Vowel_Dependent # Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E +11937..11938 ; Vowel_Dependent # Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O +119D1..119D3 ; Vowel_Dependent # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II +119D4..119D7 ; Vowel_Dependent # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR +119DA..119DB ; Vowel_Dependent # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI +119DC..119DD ; Vowel_Dependent # Mc [2] NANDINAGARI VOWEL SIGN O..NANDINAGARI VOWEL SIGN AU +119E4 ; Vowel_Dependent # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E +11A01..11A0A ; Vowel_Dependent # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK +11A51..11A56 ; Vowel_Dependent # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE +11A57..11A58 ; Vowel_Dependent # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU +11A59..11A5B ; Vowel_Dependent # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK +11C2F ; Vowel_Dependent # Mc BHAIKSUKI VOWEL SIGN AA +11C30..11C36 ; Vowel_Dependent # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L +11C38..11C3B ; Vowel_Dependent # Mn [4] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI VOWEL SIGN AU +11CB0 ; Vowel_Dependent # Mn MARCHEN VOWEL SIGN AA +11CB1 ; Vowel_Dependent # Mc MARCHEN VOWEL SIGN I +11CB2..11CB3 ; Vowel_Dependent # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E +11CB4 ; Vowel_Dependent # Mc MARCHEN VOWEL SIGN O +11D31..11D36 ; Vowel_Dependent # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R +11D3A ; Vowel_Dependent # Mn MASARAM GONDI VOWEL SIGN E +11D3C..11D3D ; Vowel_Dependent # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O +11D3F ; Vowel_Dependent # Mn MASARAM GONDI VOWEL SIGN AU +11D43 ; Vowel_Dependent # Mn MASARAM GONDI SIGN CANDRA +11D8A..11D8E ; Vowel_Dependent # Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU +11D90..11D91 ; Vowel_Dependent # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI +11D93..11D94 ; Vowel_Dependent # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU +11EF3..11EF4 ; Vowel_Dependent # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U +11EF5..11EF6 ; Vowel_Dependent # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O +11F34..11F35 ; Vowel_Dependent # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA +11F36..11F3A ; Vowel_Dependent # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R +11F3E..11F3F ; Vowel_Dependent # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI +11F40 ; Vowel_Dependent # Mn KAWI VOWEL SIGN EU + +# ================================================ + +# Indic_Syllabic_Category=Vowel + +# (Other) Vowels (reanalyzed as ordinary alphabetic letters or marks) + +# [Not derivable] + +1963..196D ; Vowel # Lo [11] TAI LE LETTER A..TAI LE LETTER AI +A85E..A861 ; Vowel # Lo [4] PHAGS-PA LETTER I..PHAGS-PA LETTER O +A866 ; Vowel # Lo PHAGS-PA LETTER EE +A922..A925 ; Vowel # Lo [4] KAYAH LI LETTER A..KAYAH LI LETTER OO +A926..A92A ; Vowel # Mn [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O +11150..11154 ; Vowel # Lo [5] MAHAJANI LETTER A..MAHAJANI LETTER O + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Placeholder + +# Consonant Placeholder +# This includes generic placeholders used for +# Indic script layout (NBSP and dotted circle), as well as a few script- +# specific vowel-holder characters which are not technically +# consonants, but serve instead as bases for placement of vowel marks. + +# [Not derivable] + +002D ; Consonant_Placeholder # Pd HYPHEN-MINUS +00A0 ; Consonant_Placeholder # Zs NO-BREAK SPACE +00D7 ; Consonant_Placeholder # Sm MULTIPLICATION SIGN +0980 ; Consonant_Placeholder # Lo BENGALI ANJI +0A72..0A73 ; Consonant_Placeholder # Lo [2] GURMUKHI IRI..GURMUKHI URA +104B ; Consonant_Placeholder # Po MYANMAR SIGN SECTION +104E ; Consonant_Placeholder # Po MYANMAR SYMBOL AFOREMENTIONED +1900 ; Consonant_Placeholder # Lo LIMBU VOWEL-CARRIER LETTER +1CFA ; Consonant_Placeholder # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA +2010..2014 ; Consonant_Placeholder # Pd [5] HYPHEN..EM DASH +25CC ; Consonant_Placeholder # So DOTTED CIRCLE +AA74..AA76 ; Consonant_Placeholder # Lo [3] MYANMAR LOGOGRAM KHAMTI OAY..MYANMAR LOGOGRAM KHAMTI HM +11A3F ; Consonant_Placeholder # Po ZANABAZAR SQUARE INITIAL HEAD MARK +11A45 ; Consonant_Placeholder # Po ZANABAZAR SQUARE INITIAL DOUBLE-LINED HEAD MARK +11EF2 ; Consonant_Placeholder # Lo MAKASAR ANGKA + +# ================================================ + +# Indic_Syllabic_Category=Consonant + +# Consonant (ordinary abugida consonants, with inherent vowels) + +# [Not derivable] + +0915..0939 ; Consonant # Lo [37] DEVANAGARI LETTER KA..DEVANAGARI LETTER HA +0958..095F ; Consonant # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA +0978..097F ; Consonant # Lo [8] DEVANAGARI LETTER MARWARI DDA..DEVANAGARI LETTER BBA +0995..09A8 ; Consonant # Lo [20] BENGALI LETTER KA..BENGALI LETTER NA +09AA..09B0 ; Consonant # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA +09B2 ; Consonant # Lo BENGALI LETTER LA +09B6..09B9 ; Consonant # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA +09DC..09DD ; Consonant # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA +09DF ; Consonant # Lo BENGALI LETTER YYA +09F0..09F1 ; Consonant # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL +0A15..0A28 ; Consonant # Lo [20] GURMUKHI LETTER KA..GURMUKHI LETTER NA +0A2A..0A30 ; Consonant # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A32..0A33 ; Consonant # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA +0A35..0A36 ; Consonant # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA +0A38..0A39 ; Consonant # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A59..0A5C ; Consonant # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA +0A5E ; Consonant # Lo GURMUKHI LETTER FA +0A95..0AA8 ; Consonant # Lo [20] GUJARATI LETTER KA..GUJARATI LETTER NA +0AAA..0AB0 ; Consonant # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA +0AB2..0AB3 ; Consonant # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB5..0AB9 ; Consonant # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA +0AF9 ; Consonant # Lo GUJARATI LETTER ZHA +0B15..0B28 ; Consonant # Lo [20] ORIYA LETTER KA..ORIYA LETTER NA +0B2A..0B30 ; Consonant # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA +0B32..0B33 ; Consonant # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA +0B35..0B39 ; Consonant # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA +0B5C..0B5D ; Consonant # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA +0B5F ; Consonant # Lo ORIYA LETTER YYA +0B71 ; Consonant # Lo ORIYA LETTER WA +0B95 ; Consonant # Lo TAMIL LETTER KA +0B99..0B9A ; Consonant # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA +0B9C ; Consonant # Lo TAMIL LETTER JA +0B9E..0B9F ; Consonant # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA +0BA3..0BA4 ; Consonant # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA +0BA8..0BAA ; Consonant # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA +0BAE..0BB9 ; Consonant # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA +0C15..0C28 ; Consonant # Lo [20] TELUGU LETTER KA..TELUGU LETTER NA +0C2A..0C39 ; Consonant # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA +0C58..0C5A ; Consonant # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA +0C95..0CA8 ; Consonant # Lo [20] KANNADA LETTER KA..KANNADA LETTER NA +0CAA..0CB3 ; Consonant # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA +0CB5..0CB9 ; Consonant # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA +0CDE ; Consonant # Lo KANNADA LETTER FA +0D15..0D3A ; Consonant # Lo [38] MALAYALAM LETTER KA..MALAYALAM LETTER TTTA +0D9A..0DB1 ; Consonant # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB3..0DBB ; Consonant # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBD ; Consonant # Lo SINHALA LETTER DANTAJA LAYANNA +0DC0..0DC6 ; Consonant # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0E01..0E2E ; Consonant # Lo [46] THAI CHARACTER KO KAI..THAI CHARACTER HO NOKHUK +0E81..0E82 ; Consonant # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG +0E84 ; Consonant # Lo LAO LETTER KHO TAM +0E86..0E8A ; Consonant # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM +0E8C..0EA3 ; Consonant # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING +0EA5 ; Consonant # Lo LAO LETTER LO LOOT +0EA7..0EAE ; Consonant # Lo [8] LAO LETTER WO..LAO LETTER HO TAM +0EDC..0EDF ; Consonant # Lo [4] LAO HO NO..LAO LETTER KHMU NYO +0F40..0F47 ; Consonant # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA +0F49..0F6C ; Consonant # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA +1000..1020 ; Consonant # Lo [33] MYANMAR LETTER KA..MYANMAR LETTER LLA +103F ; Consonant # Lo MYANMAR LETTER GREAT SA +1050..1051 ; Consonant # Lo [2] MYANMAR LETTER SHA..MYANMAR LETTER SSA +105A..105D ; Consonant # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE +1061 ; Consonant # Lo MYANMAR LETTER SGAW KAREN SHA +1065..1066 ; Consonant # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA +106E..1070 ; Consonant # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA +1075..1081 ; Consonant # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA +108E ; Consonant # Lo MYANMAR LETTER RUMAI PALAUNG FA +1703..1711 ; Consonant # Lo [15] TAGALOG LETTER KA..TAGALOG LETTER HA +171F ; Consonant # Lo TAGALOG LETTER ARCHAIC RA +1723..1731 ; Consonant # Lo [15] HANUNOO LETTER KA..HANUNOO LETTER HA +1743..1751 ; Consonant # Lo [15] BUHID LETTER KA..BUHID LETTER HA +1763..176C ; Consonant # Lo [10] TAGBANWA LETTER KA..TAGBANWA LETTER YA +176E..1770 ; Consonant # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA +1780..17A2 ; Consonant # Lo [35] KHMER LETTER KA..KHMER LETTER QA +1901..191E ; Consonant # Lo [30] LIMBU LETTER KA..LIMBU LETTER TRA +1950..1962 ; Consonant # Lo [19] TAI LE LETTER KA..TAI LE LETTER NA +1980..19AB ; Consonant # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA +1A00..1A16 ; Consonant # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA +1A20..1A4C ; Consonant # Lo [45] TAI THAM LETTER HIGH KA..TAI THAM LETTER LOW HA +1A53..1A54 ; Consonant # Lo [2] TAI THAM LETTER LAE..TAI THAM LETTER GREAT SA +1B13..1B33 ; Consonant # Lo [33] BALINESE LETTER KA..BALINESE LETTER HA +1B45..1B4C ; Consonant # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA +1B8A..1BA0 ; Consonant # Lo [23] SUNDANESE LETTER KA..SUNDANESE LETTER HA +1BAE..1BAF ; Consonant # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA +1BBB..1BBD ; Consonant # Lo [3] SUNDANESE LETTER REU..SUNDANESE LETTER BHA +1BC0..1BE3 ; Consonant # Lo [36] BATAK LETTER A..BATAK LETTER MBA +1C00..1C23 ; Consonant # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A +1C4D..1C4F ; Consonant # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA +A807..A80A ; Consonant # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO +A80C..A822 ; Consonant # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO +A840..A85D ; Consonant # Lo [30] PHAGS-PA LETTER KA..PHAGS-PA LETTER A +A862..A865 ; Consonant # Lo [4] PHAGS-PA LETTER QA..PHAGS-PA LETTER GGA +A869..A870 ; Consonant # Lo [8] PHAGS-PA LETTER TTA..PHAGS-PA LETTER ASPIRATED FA +A872 ; Consonant # Lo PHAGS-PA SUPERFIXED LETTER RA +A892..A8B3 ; Consonant # Lo [34] SAURASHTRA LETTER KA..SAURASHTRA LETTER LLA +A90A..A921 ; Consonant # Lo [24] KAYAH LI LETTER KA..KAYAH LI LETTER CA +A930..A946 ; Consonant # Lo [23] REJANG LETTER KA..REJANG LETTER A +A989..A98B ; Consonant # Lo [3] JAVANESE LETTER PA CEREK..JAVANESE LETTER NGA LELET RASWADI +A98F..A9B2 ; Consonant # Lo [36] JAVANESE LETTER KA..JAVANESE LETTER HA +A9E0..A9E4 ; Consonant # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA +A9E7..A9EF ; Consonant # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA +A9FA..A9FE ; Consonant # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA +AA06..AA28 ; Consonant # Lo [35] CHAM LETTER KA..CHAM LETTER HA +AA60..AA6F ; Consonant # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA +AA71..AA73 ; Consonant # Lo [3] MYANMAR LETTER KHAMTI XA..MYANMAR LETTER KHAMTI RA +AA7A ; Consonant # Lo MYANMAR LETTER AITON RA +AA7E..AA7F ; Consonant # Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA +AA80..AAAF ; Consonant # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O +AAE2..AAEA ; Consonant # Lo [9] MEETEI MAYEK LETTER CHA..MEETEI MAYEK LETTER SSA +ABC0..ABCD ; Consonant # Lo [14] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER HUK +ABD0 ; Consonant # Lo MEETEI MAYEK LETTER PHAM +ABD2..ABDA ; Consonant # Lo [9] MEETEI MAYEK LETTER GOK..MEETEI MAYEK LETTER BHAM +10A00 ; Consonant # Lo KHAROSHTHI LETTER A +10A10..10A13 ; Consonant # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA +10A15..10A17 ; Consonant # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA +10A19..10A35 ; Consonant # Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA +11013..11037 ; Consonant # Lo [37] BRAHMI LETTER KA..BRAHMI LETTER OLD TAMIL NNNA +11075 ; Consonant # Lo BRAHMI LETTER OLD TAMIL LLA +1108D..110AF ; Consonant # Lo [35] KAITHI LETTER KA..KAITHI LETTER HA +11107..11126 ; Consonant # Lo [32] CHAKMA LETTER KAA..CHAKMA LETTER HAA +11144 ; Consonant # Lo CHAKMA LETTER LHAA +11147 ; Consonant # Lo CHAKMA LETTER VAA +11155..11172 ; Consonant # Lo [30] MAHAJANI LETTER KA..MAHAJANI LETTER RRA +11191..111B2 ; Consonant # Lo [34] SHARADA LETTER KA..SHARADA LETTER HA +11208..11211 ; Consonant # Lo [10] KHOJKI LETTER KA..KHOJKI LETTER JJA +11213..1122B ; Consonant # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA +1123F ; Consonant # Lo KHOJKI LETTER QA +11284..11286 ; Consonant # Lo [3] MULTANI LETTER KA..MULTANI LETTER GA +11288 ; Consonant # Lo MULTANI LETTER GHA +1128A..1128D ; Consonant # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA +1128F..1129D ; Consonant # Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA +1129F..112A8 ; Consonant # Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA +112BA..112DE ; Consonant # Lo [37] KHUDAWADI LETTER KA..KHUDAWADI LETTER HA +11315..11328 ; Consonant # Lo [20] GRANTHA LETTER KA..GRANTHA LETTER NA +1132A..11330 ; Consonant # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA +11332..11333 ; Consonant # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA +11335..11339 ; Consonant # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA +1140E..11434 ; Consonant # Lo [39] NEWA LETTER KA..NEWA LETTER HA +1148F..114AF ; Consonant # Lo [33] TIRHUTA LETTER KA..TIRHUTA LETTER HA +1158E..115AE ; Consonant # Lo [33] SIDDHAM LETTER KA..SIDDHAM LETTER HA +1160E..1162F ; Consonant # Lo [34] MODI LETTER KA..MODI LETTER LLA +1168A..116AA ; Consonant # Lo [33] TAKRI LETTER KA..TAKRI LETTER RRA +116B8 ; Consonant # Lo TAKRI LETTER ARCHAIC KHA +11700..1171A ; Consonant # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA +11740..11746 ; Consonant # Lo [7] AHOM LETTER CA..AHOM LETTER LLA +1180A..1182B ; Consonant # Lo [34] DOGRA LETTER KA..DOGRA LETTER RRA +1190C..11913 ; Consonant # Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA +11915..11916 ; Consonant # Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA +11918..1192F ; Consonant # Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA +119AE..119D0 ; Consonant # Lo [35] NANDINAGARI LETTER KA..NANDINAGARI LETTER RRA +11A0B..11A32 ; Consonant # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA +11A5C..11A83 ; Consonant # Lo [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA +11C0E..11C2E ; Consonant # Lo [33] BHAIKSUKI LETTER KA..BHAIKSUKI LETTER HA +11C72..11C8F ; Consonant # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A +11D0C..11D30 ; Consonant # Lo [37] MASARAM GONDI LETTER KA..MASARAM GONDI LETTER TRA +11D6C..11D89 ; Consonant # Lo [30] GUNJALA GONDI LETTER YA..GUNJALA GONDI LETTER SA +11EE0..11EF1 ; Consonant # Lo [18] MAKASAR LETTER KA..MAKASAR LETTER A +11F12..11F33 ; Consonant # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Dead + +# Dead Consonant (special consonant with killed vowel) + +# [Not derivable] + +09CE ; Consonant_Dead # Lo BENGALI LETTER KHANDA TA +0C5D ; Consonant_Dead # Lo TELUGU LETTER NAKAARA POLLU +0CDD ; Consonant_Dead # Lo KANNADA LETTER NAKAARA POLLU +0D54..0D56 ; Consonant_Dead # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL +0D7A..0D7F ; Consonant_Dead # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K +1CF2..1CF3 ; Consonant_Dead # Lo [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA + +# ================================================ + +# Indic_Syllabic_Category=Consonant_With_Stacker + +# Consonants that may make stacked ligatures with the next consonant +# without the use of a virama + +# [Not derivable] + +0CF1..0CF2 ; Consonant_With_Stacker # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA +1CF5..1CF6 ; Consonant_With_Stacker # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +11003..11004 ; Consonant_With_Stacker # Lo [2] BRAHMI SIGN JIHVAMULIYA..BRAHMI SIGN UPADHMANIYA +11460..11461 ; Consonant_With_Stacker # Lo [2] NEWA SIGN JIHVAMULIYA..NEWA SIGN UPADHMANIYA + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Prefixed + +# Cluster-initial consonants + +# [Not derivable] + +111C2..111C3 ; Consonant_Prefixed # Lo [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA +1193F ; Consonant_Prefixed # Lo DIVES AKURU PREFIXED NASAL SIGN +11A3A ; Consonant_Prefixed # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA +11A84..11A89 ; Consonant_Prefixed # Lo [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Preceding_Repha + +# Repha Form of RA (reanalyzed in some scripts), when preceding the main +# consonant. + +# [Not derivable] + +0D4E ; Consonant_Preceding_Repha # Lo MALAYALAM LETTER DOT REPH +11941 ; Consonant_Preceding_Repha # Lo DIVES AKURU INITIAL RA +11D46 ; Consonant_Preceding_Repha # Lo MASARAM GONDI REPHA +11F02 ; Consonant_Preceding_Repha # Lo KAWI SIGN REPHA + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Initial_Postfixed + +# Consonants that succeed the main consonant in character sequences, but are +# pronounced before it. + +# [Not derivable] + +1A5A ; Consonant_Initial_Postfixed # Mn TAI THAM CONSONANT SIGN LOW PA + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Succeeding_Repha + +# Repha Form of RA (reanalyzed in some scripts), when succeeding the main +# consonant. + +# [Not derivable] + +17CC ; Consonant_Succeeding_Repha # Mn KHMER SIGN ROBAT + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Subjoined + +# Subjoined Consonant (C2 form subtending a base consonant in Tibetan, etc.) + +# [Not derivable] + +0F8D..0F97 ; Consonant_Subjoined # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; Consonant_Subjoined # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +1929..192B ; Consonant_Subjoined # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA +1A57 ; Consonant_Subjoined # Mc TAI THAM CONSONANT SIGN LA TANG LAI +1A5B..1A5E ; Consonant_Subjoined # Mn [4] TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA..TAI THAM CONSONANT SIGN SA +1BA1 ; Consonant_Subjoined # Mc SUNDANESE CONSONANT SIGN PAMINGKAL +1BA2..1BA3 ; Consonant_Subjoined # Mn [2] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE CONSONANT SIGN PANYIKU +1BAC..1BAD ; Consonant_Subjoined # Mn [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA +1C24..1C25 ; Consonant_Subjoined # Mc [2] LEPCHA SUBJOINED LETTER YA..LEPCHA SUBJOINED LETTER RA +A867..A868 ; Consonant_Subjoined # Lo [2] PHAGS-PA SUBJOINED LETTER WA..PHAGS-PA SUBJOINED LETTER YA +A871 ; Consonant_Subjoined # Lo PHAGS-PA SUBJOINED LETTER RA +11C92..11CA7 ; Consonant_Subjoined # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA +11CA9 ; Consonant_Subjoined # Mc MARCHEN SUBJOINED LETTER YA +11CAA..11CAF ; Consonant_Subjoined # Mn [6] MARCHEN SUBJOINED LETTER RA..MARCHEN SUBJOINED LETTER A + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Medial + +# Medial Consonant (medial liquid, occurring in clusters) + +# [Not derivable] + +0A75 ; Consonant_Medial # Mn GURMUKHI SIGN YAKASH +0EBC ; Consonant_Medial # Mn LAO SEMIVOWEL SIGN LO +0EBD ; Consonant_Medial # Lo LAO SEMIVOWEL SIGN NYO +103B..103C ; Consonant_Medial # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA +103D..103E ; Consonant_Medial # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA +105E..1060 ; Consonant_Medial # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA +1082 ; Consonant_Medial # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA +1A55 ; Consonant_Medial # Mc TAI THAM CONSONANT SIGN MEDIAL RA +1A56 ; Consonant_Medial # Mn TAI THAM CONSONANT SIGN MEDIAL LA +A8B4 ; Consonant_Medial # Mc SAURASHTRA CONSONANT SIGN HAARU +A9BD ; Consonant_Medial # Mn JAVANESE CONSONANT SIGN KERET +A9BE..A9BF ; Consonant_Medial # Mc [2] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE CONSONANT SIGN CAKRA +AA33..AA34 ; Consonant_Medial # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA +AA35..AA36 ; Consonant_Medial # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA +1171D..1171F ; Consonant_Medial # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA +11940 ; Consonant_Medial # Mc DIVES AKURU MEDIAL YA +11942 ; Consonant_Medial # Mc DIVES AKURU MEDIAL RA +11A3B..11A3E ; Consonant_Medial # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA +11D47 ; Consonant_Medial # Mn MASARAM GONDI RA-KARA + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Final + +# Final Consonant (special final forms which do not take vowels) + +# [Not derivable] + +1930..1931 ; Consonant_Final # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA +1933..1938 ; Consonant_Final # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA +1939 ; Consonant_Final # Mn LIMBU SIGN MUKPHRENG +19C1..19C7 ; Consonant_Final # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B +1A58..1A59 ; Consonant_Final # Mn [2] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN FINAL NGA +1B03 ; Consonant_Final # Mn BALINESE SIGN SURANG +1B81 ; Consonant_Final # Mn SUNDANESE SIGN PANGLAYAR +1BBE..1BBF ; Consonant_Final # Lo [2] SUNDANESE LETTER FINAL K..SUNDANESE LETTER FINAL M +1BF0..1BF1 ; Consonant_Final # Mn [2] BATAK CONSONANT SIGN NG..BATAK CONSONANT SIGN H +1C2D..1C33 ; Consonant_Final # Mn [7] LEPCHA CONSONANT SIGN K..LEPCHA CONSONANT SIGN T +A94F..A951 ; Consonant_Final # Mn [3] REJANG CONSONANT SIGN NG..REJANG CONSONANT SIGN R +A952 ; Consonant_Final # Mc REJANG CONSONANT SIGN H +A982 ; Consonant_Final # Mn JAVANESE SIGN LAYAR +AA40..AA42 ; Consonant_Final # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG +AA43 ; Consonant_Final # Mn CHAM CONSONANT SIGN FINAL NG +AA44..AA4B ; Consonant_Final # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS +AA4C ; Consonant_Final # Mn CHAM CONSONANT SIGN FINAL M +AA4D ; Consonant_Final # Mc CHAM CONSONANT SIGN FINAL H +ABDB..ABE2 ; Consonant_Final # Lo [8] MEETEI MAYEK LETTER KOK LONSUM..MEETEI MAYEK LETTER I LONSUM +11A8A..11A95 ; Consonant_Final # Mn [12] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO FINAL CONSONANT SIGN -A + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Head_Letter + +# Head Letter (Tibetan) + +# [Not derivable] + +0F88..0F8C ; Consonant_Head_Letter # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN + +# ================================================ + +# Indic_Syllabic_Category=Modifying_Letter + +# Reanalyzed letters not participating in the abugida structure, but +# serving to modify the sound of an adjacent vowel or consonant. +# Note that this is not the same as General_Category=Modifier_Letter. + +# [Not derivable] + +0B83 ; Modifying_Letter # Lo TAMIL SIGN VISARGA + +# ================================================ + +# Indic_Syllabic_Category=Tone_Letter + +# Tone Letter (spacing lexical tone mark with status as a letter) + +# [Not derivable] + +1970..1974 ; Tone_Letter # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 +AAC0 ; Tone_Letter # Lo TAI VIET TONE MAI NUENG +AAC2 ; Tone_Letter # Lo TAI VIET TONE MAI SONG + +# ================================================ + +# Indic_Syllabic_Category=Tone_Mark + +# Tone Mark (nonspacing or spacing lexical tone mark) + +# [Not derivable] + +0E48..0E4B ; Tone_Mark # Mn [4] THAI CHARACTER MAI EK..THAI CHARACTER MAI CHATTAWA +0EC8..0ECB ; Tone_Mark # Mn [4] LAO TONE MAI EK..LAO TONE MAI CATAWA +1037 ; Tone_Mark # Mn MYANMAR SIGN DOT BELOW +1063..1064 ; Tone_Mark # Mc [2] MYANMAR TONE MARK SGAW KAREN HATHI..MYANMAR TONE MARK SGAW KAREN KE PHO +1069..106D ; Tone_Mark # Mc [5] MYANMAR SIGN WESTERN PWO KAREN TONE-1..MYANMAR SIGN WESTERN PWO KAREN TONE-5 +1087..108C ; Tone_Mark # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 +108D ; Tone_Mark # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE +108F ; Tone_Mark # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 +109A..109B ; Tone_Mark # Mc [2] MYANMAR SIGN KHAMTI TONE-1..MYANMAR SIGN KHAMTI TONE-3 +19C8..19C9 ; Tone_Mark # Lo [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2 +1A75..1A79 ; Tone_Mark # Mn [5] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN TONE-5 +A92B..A92D ; Tone_Mark # Mn [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU +AA7B ; Tone_Mark # Mc MYANMAR SIGN PAO KAREN TONE +AA7C ; Tone_Mark # Mn MYANMAR SIGN TAI LAING TONE-2 +AA7D ; Tone_Mark # Mc MYANMAR SIGN TAI LAING TONE-5 +AABF ; Tone_Mark # Mn TAI VIET TONE MAI EK +AAC1 ; Tone_Mark # Mn TAI VIET TONE MAI THO +ABEC ; Tone_Mark # Mc MEETEI MAYEK LUM IYEK + +# ================================================ + +# Indic_Syllabic_Category=Gemination_Mark + +# Gemination Mark (doubling of the preceding or following consonant) +# +# U+0A71 GURMUKHI ADDAK precedes the consonant it geminates, while the +# others follow the consonant they geminate. + +# [Not derivable] + +0A71 ; Gemination_Mark # Mn GURMUKHI ADDAK +0AFB ; Gemination_Mark # Mn GUJARATI SIGN SHADDA +11237 ; Gemination_Mark # Mn KHOJKI SIGN SHADDA +11A98 ; Gemination_Mark # Mn SOYOMBO GEMINATION MARK + +# ================================================ + +# Indic_Syllabic_Category=Cantillation_Mark + +# Cantillation Mark (recitation marks, such as svara markers for the Samaveda) + +# [Not derivable] + +0951..0952 ; Cantillation_Mark # Mn [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA +0A51 ; Cantillation_Mark # Mn GURMUKHI SIGN UDAAT +0AFA ; Cantillation_Mark # Mn GUJARATI SIGN SUKUN +0AFC ; Cantillation_Mark # Mn GUJARATI SIGN MADDAH +1CD0..1CD2 ; Cantillation_Mark # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA +1CD4..1CE0 ; Cantillation_Mark # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA +1CE1 ; Cantillation_Mark # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +1CF4 ; Cantillation_Mark # Mn VEDIC TONE CANDRA ABOVE +1CF7 ; Cantillation_Mark # Mc VEDIC SIGN ATIKRAMA +1CF8..1CF9 ; Cantillation_Mark # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE +20F0 ; Cantillation_Mark # Mn COMBINING ASTERISK ABOVE +A8E0..A8F1 ; Cantillation_Mark # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA +1123E ; Cantillation_Mark # Mn KHOJKI SIGN SUKUN +11366..1136C ; Cantillation_Mark # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX +11370..11374 ; Cantillation_Mark # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA + +# ================================================ + +# Indic_Syllabic_Category=Register_Shifter + +# Register Shifter (shifts register for consonants, akin to a tone mark) + +# [Not derivable] + +17C9..17CA ; Register_Shifter # Mn [2] KHMER SIGN MUUSIKATOAN..KHMER SIGN TRIISAP + +# ================================================ + +# Indic_Syllabic_Category=Syllable_Modifier + +# Syllable Modifier (miscellaneous combining characters that modify +# something in the orthographic syllable they succeed or appear in) + +# [Not derivable] + +00B2..00B3 ; Syllable_Modifier # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE +09FE ; Syllable_Modifier # Mn BENGALI SANDHI MARK +0ECE ; Syllable_Modifier # Mn LAO YAMAKKAN +0F35 ; Syllable_Modifier # Mn TIBETAN MARK NGAS BZUNG NYI ZLA +0F37 ; Syllable_Modifier # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS +0FC6 ; Syllable_Modifier # Mn TIBETAN SYMBOL PADMA GDAN +17CB ; Syllable_Modifier # Mn KHMER SIGN BANTOC +17CE..17D0 ; Syllable_Modifier # Mn [3] KHMER SIGN KAKABAT..KHMER SIGN SAMYOK SANNYA +17D3 ; Syllable_Modifier # Mn KHMER SIGN BATHAMASAT +17DD ; Syllable_Modifier # Mn KHMER SIGN ATTHACAN +193B ; Syllable_Modifier # Mn LIMBU SIGN SA-I +1A7B..1A7C ; Syllable_Modifier # Mn [2] TAI THAM SIGN MAI SAM..TAI THAM SIGN KHUEN-LUE KARAN +1A7F ; Syllable_Modifier # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT +1C36 ; Syllable_Modifier # Mn LEPCHA SIGN RAN +1DFB ; Syllable_Modifier # Mn COMBINING DELETION MARK +2074 ; Syllable_Modifier # No SUPERSCRIPT FOUR +2082..2084 ; Syllable_Modifier # No [3] SUBSCRIPT TWO..SUBSCRIPT FOUR +111C9 ; Syllable_Modifier # Mn SHARADA SANDHI MARK +1145E ; Syllable_Modifier # Mn NEWA SANDHI MARK +11A33 ; Syllable_Modifier # Mn ZANABAZAR SQUARE FINAL CONSONANT MARK + +# ================================================ + +# Indic_Syllabic_Category=Consonant_Killer + +# Consonant Killer (signifies that the previous consonant or consonants are +# not pronounced) + +# [Not derivable] + +0E4C ; Consonant_Killer # Mn THAI CHARACTER THANTHAKHAT +17CD ; Consonant_Killer # Mn KHMER SIGN TOANDAKHIAT + +# ================================================ + +# Indic_Syllabic_Category=Non_Joiner + +# Non_Joiner (Zero Width Non-Joiner) + +# [Not derivable] + +200C ; Non_Joiner # Cf ZERO WIDTH NON-JOINER + +# ================================================ + +# Indic_Syllabic_Category=Joiner + +# Joiner (Zero Width Joiner) + +# [Not derivable] + +200D ; Joiner # Cf ZERO WIDTH JOINER + +# ================================================ + +# Indic_Syllabic_Category=Number_Joiner + +# Number_Joiner (forms ligatures between numbers for multiplication) + +# [Not derivable] + +1107F ; Number_Joiner # Mn BRAHMI NUMBER JOINER + +# ================================================ + +# Indic_Syllabic_Category=Number + +# Number (can be used as vowel-holders like consonant placeholders) +# Note: A number may even hold subjoined consonants which may in turn +# have been formed using a virama or a stacker, e.g. the sequence +# <U+1A93, U+1A60, U+1A34> where THAI THAM LETTER LOW TA is subjoined to +# TAI THAM THAM DIGIT THREE using an invisible stacker. + +# [Not derivable] + +0030..0039 ; Number # Nd [10] DIGIT ZERO..DIGIT NINE +0966..096F ; Number # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE +09E6..09EF ; Number # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE +0A66..0A6F ; Number # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE +0AE6..0AEF ; Number # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE +0B66..0B6F ; Number # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE +0BE6..0BEF ; Number # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE +0C66..0C6F ; Number # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE +0CE6..0CEF ; Number # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE +0D66..0D6F ; Number # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE +0DE6..0DEF ; Number # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE +0E50..0E59 ; Number # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE +0ED0..0ED9 ; Number # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE +0F20..0F29 ; Number # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE +0F2A..0F33 ; Number # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO +1040..1049 ; Number # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE +1090..1099 ; Number # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE +17E0..17E9 ; Number # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE +1946..194F ; Number # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE +19D0..19D9 ; Number # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE +19DA ; Number # No NEW TAI LUE THAM DIGIT ONE +1A80..1A89 ; Number # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE +1A90..1A99 ; Number # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE +1B50..1B59 ; Number # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE +1BB0..1BB9 ; Number # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE +1C40..1C49 ; Number # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE +A8D0..A8D9 ; Number # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE +A900..A909 ; Number # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE +A9D0..A9D9 ; Number # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE +A9F0..A9F9 ; Number # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE +AA50..AA59 ; Number # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE +ABF0..ABF9 ; Number # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE +10A40..10A48 ; Number # No [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF +11066..1106F ; Number # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE +11136..1113F ; Number # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE +111D0..111D9 ; Number # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE +111E1..111F4 ; Number # No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND +112F0..112F9 ; Number # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE +11450..11459 ; Number # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE +114D0..114D9 ; Number # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE +11650..11659 ; Number # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE +116C0..116C9 ; Number # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE +11730..11739 ; Number # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE +1173A..1173B ; Number # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY +11950..11959 ; Number # Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE +11C50..11C59 ; Number # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE +11C5A..11C6C ; Number # No [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK +11D50..11D59 ; Number # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE +11DA0..11DA9 ; Number # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE +11F50..11F59 ; Number # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE + +# ================================================ + +# Indic_Syllabic_Category=Brahmi_Joining_Number + +# Brahmi Joining Number (may be joined by a Number_Joiner of the same +# script, e.g. in Brahmi) +# +# Note: These are different from Numbers, in the way that there is no known +# evidence of Brahmi Joining Numbers taking vowels or subjoined consonants. +# Until such evidence is found, implementations may assume that Brahmi +# Joining Numbers only participate in shaping with other Brahmi Joining +# Numbers. + +# [Not derivable] + +11052..11065 ; Brahmi_Joining_Number # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND + +# EOF diff --git a/gen/data-files b/gen/data-files index 63e0e76..de118c5 100755 --- a/gen/data-files +++ b/gen/data-files @@ -25,6 +25,7 @@ readonly PATHS=' extracted/DerivedNumericValues HangulSyllableType IndicPositionalCategory + IndicSyllabicCategory PropList Scripts SpecialCasing diff --git a/gen/prop/insc b/gen/prop/insc new file mode 100755 index 0000000..7ed2b96 --- /dev/null +++ b/gen/prop/insc @@ -0,0 +1,63 @@ +#!/bin/sh + +set -e +cd "${0%/*}/../.." +exec >lib/unicode/prop/uprop_get_insc.c + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" + + print "/* This file is autogenerated by gen/prop/insc; DO NOT EDIT. */" + print "" + print "#include \"_bsearch.h\"" + print "#include \"macros.h\"" + print "#include \"rune.h\"" + print "#include \"unicode/prop.h\"" + print "" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) { + gsub(/^; /, "", $2) + props[i] = "INSC_" toupper($2) + } +} + +END { + print "static constexpr enum uprop_insc lookup_lat1[LATIN1_MAX] = {" + for (i = 0; i < 0x100; i++) { + if (props[i]) + printf "\t[0x%02X] = %s,\n", i, props[i] + } + print "};" + print "" + print "static const struct {" + print "\trune lo, hi;" + print "\tenum uprop_insc val;" + print "} lookup[] = {" + + for (i = 0x100; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + lo = i + while (props[lo] == props[i + 1]) + i++ + printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X), %s},\n", lo, i, props[i] + } + + print "};" + print "" + print "_MLIB_DEFINE_BSEARCH(enum uprop_insc, lookup, INSC_OTHER)" + print "" + print "enum uprop_insc" + print "uprop_get_insc(rune ch)" + print "{" + print "\treturn ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup(ch);" + print "}" +} +' data/IndicSyllabicCategory | sed 's/\s*$//' diff --git a/include/unicode/prop.h b/include/unicode/prop.h index b7d7756..b6f32fd 100644 --- a/include/unicode/prop.h +++ b/include/unicode/prop.h @@ -553,6 +553,45 @@ enum uprop_inpc { INPC_VISUAL_ORDER_LEFT, }; +enum uprop_insc { + INSC_OTHER = 0, + INSC_AVAGRAHA, + INSC_BINDU, + INSC_BRAHMI_JOINING_NUMBER, + INSC_CANTILLATION_MARK, + INSC_CONSONANT, + INSC_CONSONANT_DEAD, + INSC_CONSONANT_FINAL, + INSC_CONSONANT_HEAD_LETTER, + INSC_CONSONANT_INITIAL_POSTFIXED, + INSC_CONSONANT_KILLER, + INSC_CONSONANT_MEDIAL, + INSC_CONSONANT_PLACEHOLDER, + INSC_CONSONANT_PRECEDING_REPHA, + INSC_CONSONANT_PREFIXED, + INSC_CONSONANT_SUBJOINED, + INSC_CONSONANT_SUCCEEDING_REPHA, + INSC_CONSONANT_WITH_STACKER, + INSC_GEMINATION_MARK, + INSC_INVISIBLE_STACKER, + INSC_JOINER, + INSC_MODIFYING_LETTER, + INSC_NON_JOINER, + INSC_NUKTA, + INSC_NUMBER, + INSC_NUMBER_JOINER, + INSC_PURE_KILLER, + INSC_REGISTER_SHIFTER, + INSC_SYLLABLE_MODIFIER, + INSC_TONE_LETTER, + INSC_TONE_MARK, + INSC_VIRAMA, + INSC_VISARGA, + INSC_VOWEL, + INSC_VOWEL_DEPENDENT, + INSC_VOWEL_INDEPENDENT, +}; + enum uprop_lb { LB_XX, /* Unknown */ LB_AI, /* Ambiguous */ @@ -799,6 +838,7 @@ enum uprop_vo { [[_mlib_pure]] enum uprop_gc uprop_get_gc(rune); [[_mlib_pure]] enum uprop_hst uprop_get_hst(rune); [[_mlib_pure]] enum uprop_inpc uprop_get_inpc(rune); +[[_mlib_pure]] enum uprop_insc uprop_get_insc(rune); [[_mlib_pure]] enum uprop_lb uprop_get_lb(rune); [[_mlib_pure]] enum uprop_nt uprop_get_nt(rune); [[_mlib_pure]] enum uprop_sc uprop_get_sc(rune); diff --git a/lib/unicode/prop/uprop_get_insc.c b/lib/unicode/prop/uprop_get_insc.c new file mode 100644 index 0000000..b3138a9 --- /dev/null +++ b/lib/unicode/prop/uprop_get_insc.c @@ -0,0 +1,808 @@ +/* This file is autogenerated by gen/prop/insc; DO NOT EDIT. */ + +#include "_bsearch.h" +#include "macros.h" +#include "rune.h" +#include "unicode/prop.h" + +static constexpr enum uprop_insc lookup_lat1[LATIN1_MAX] = { + [0x2D] = INSC_CONSONANT_PLACEHOLDER, + [0x30] = INSC_NUMBER, + [0x31] = INSC_NUMBER, + [0x32] = INSC_NUMBER, + [0x33] = INSC_NUMBER, + [0x34] = INSC_NUMBER, + [0x35] = INSC_NUMBER, + [0x36] = INSC_NUMBER, + [0x37] = INSC_NUMBER, + [0x38] = INSC_NUMBER, + [0x39] = INSC_NUMBER, + [0xA0] = INSC_CONSONANT_PLACEHOLDER, + [0xB2] = INSC_SYLLABLE_MODIFIER, + [0xB3] = INSC_SYLLABLE_MODIFIER, + [0xD7] = INSC_CONSONANT_PLACEHOLDER, +}; + +static const struct { + rune lo, hi; + enum uprop_insc val; +} lookup[] = { + {RUNE_C(0x000900), RUNE_C(0x000902), INSC_BINDU}, + {RUNE_C(0x000903), RUNE_C(0x000903), INSC_VISARGA}, + {RUNE_C(0x000904), RUNE_C(0x000914), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000915), RUNE_C(0x000939), INSC_CONSONANT}, + {RUNE_C(0x00093A), RUNE_C(0x00093B), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00093C), RUNE_C(0x00093C), INSC_NUKTA}, + {RUNE_C(0x00093D), RUNE_C(0x00093D), INSC_AVAGRAHA}, + {RUNE_C(0x00093E), RUNE_C(0x00094C), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00094D), RUNE_C(0x00094D), INSC_VIRAMA}, + {RUNE_C(0x00094E), RUNE_C(0x00094F), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000951), RUNE_C(0x000952), INSC_CANTILLATION_MARK}, + {RUNE_C(0x000955), RUNE_C(0x000957), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000958), RUNE_C(0x00095F), INSC_CONSONANT}, + {RUNE_C(0x000960), RUNE_C(0x000961), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000962), RUNE_C(0x000963), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000966), RUNE_C(0x00096F), INSC_NUMBER}, + {RUNE_C(0x000972), RUNE_C(0x000977), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000978), RUNE_C(0x00097F), INSC_CONSONANT}, + {RUNE_C(0x000980), RUNE_C(0x000980), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x000981), RUNE_C(0x000982), INSC_BINDU}, + {RUNE_C(0x000983), RUNE_C(0x000983), INSC_VISARGA}, + {RUNE_C(0x000985), RUNE_C(0x00098C), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00098F), RUNE_C(0x000990), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000993), RUNE_C(0x000994), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000995), RUNE_C(0x0009A8), INSC_CONSONANT}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0), INSC_CONSONANT}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2), INSC_CONSONANT}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9), INSC_CONSONANT}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC), INSC_NUKTA}, + {RUNE_C(0x0009BD), RUNE_C(0x0009BD), INSC_AVAGRAHA}, + {RUNE_C(0x0009BE), RUNE_C(0x0009C4), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CC), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD), INSC_VIRAMA}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE), INSC_CONSONANT_DEAD}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD), INSC_CONSONANT}, + {RUNE_C(0x0009DF), RUNE_C(0x0009DF), INSC_CONSONANT}, + {RUNE_C(0x0009E0), RUNE_C(0x0009E1), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x0009E2), RUNE_C(0x0009E3), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0009E6), RUNE_C(0x0009EF), INSC_NUMBER}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1), INSC_CONSONANT}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC), INSC_BINDU}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x000A01), RUNE_C(0x000A02), INSC_BINDU}, + {RUNE_C(0x000A03), RUNE_C(0x000A03), INSC_VISARGA}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000A13), RUNE_C(0x000A14), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000A15), RUNE_C(0x000A28), INSC_CONSONANT}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30), INSC_CONSONANT}, + {RUNE_C(0x000A32), RUNE_C(0x000A33), INSC_CONSONANT}, + {RUNE_C(0x000A35), RUNE_C(0x000A36), INSC_CONSONANT}, + {RUNE_C(0x000A38), RUNE_C(0x000A39), INSC_CONSONANT}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C), INSC_NUKTA}, + {RUNE_C(0x000A3E), RUNE_C(0x000A42), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000A47), RUNE_C(0x000A48), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4C), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000A4D), RUNE_C(0x000A4D), INSC_VIRAMA}, + {RUNE_C(0x000A51), RUNE_C(0x000A51), INSC_CANTILLATION_MARK}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C), INSC_CONSONANT}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E), INSC_CONSONANT}, + {RUNE_C(0x000A66), RUNE_C(0x000A6F), INSC_NUMBER}, + {RUNE_C(0x000A70), RUNE_C(0x000A70), INSC_BINDU}, + {RUNE_C(0x000A71), RUNE_C(0x000A71), INSC_GEMINATION_MARK}, + {RUNE_C(0x000A72), RUNE_C(0x000A73), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x000A75), RUNE_C(0x000A75), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x000A81), RUNE_C(0x000A82), INSC_BINDU}, + {RUNE_C(0x000A83), RUNE_C(0x000A83), INSC_VISARGA}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000A93), RUNE_C(0x000A94), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000A95), RUNE_C(0x000AA8), INSC_CONSONANT}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0), INSC_CONSONANT}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3), INSC_CONSONANT}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9), INSC_CONSONANT}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC), INSC_NUKTA}, + {RUNE_C(0x000ABD), RUNE_C(0x000ABD), INSC_AVAGRAHA}, + {RUNE_C(0x000ABE), RUNE_C(0x000AC5), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC9), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACC), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD), INSC_VIRAMA}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE1), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000AE2), RUNE_C(0x000AE3), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000AE6), RUNE_C(0x000AEF), INSC_NUMBER}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9), INSC_CONSONANT}, + {RUNE_C(0x000AFA), RUNE_C(0x000AFA), INSC_CANTILLATION_MARK}, + {RUNE_C(0x000AFB), RUNE_C(0x000AFB), INSC_GEMINATION_MARK}, + {RUNE_C(0x000AFC), RUNE_C(0x000AFC), INSC_CANTILLATION_MARK}, + {RUNE_C(0x000AFD), RUNE_C(0x000AFF), INSC_NUKTA}, + {RUNE_C(0x000B01), RUNE_C(0x000B02), INSC_BINDU}, + {RUNE_C(0x000B03), RUNE_C(0x000B03), INSC_VISARGA}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000B13), RUNE_C(0x000B14), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000B15), RUNE_C(0x000B28), INSC_CONSONANT}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30), INSC_CONSONANT}, + {RUNE_C(0x000B32), RUNE_C(0x000B33), INSC_CONSONANT}, + {RUNE_C(0x000B35), RUNE_C(0x000B39), INSC_CONSONANT}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C), INSC_NUKTA}, + {RUNE_C(0x000B3D), RUNE_C(0x000B3D), INSC_AVAGRAHA}, + {RUNE_C(0x000B3E), RUNE_C(0x000B44), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000B47), RUNE_C(0x000B48), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4C), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D), INSC_VIRAMA}, + {RUNE_C(0x000B55), RUNE_C(0x000B57), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D), INSC_CONSONANT}, + {RUNE_C(0x000B5F), RUNE_C(0x000B5F), INSC_CONSONANT}, + {RUNE_C(0x000B60), RUNE_C(0x000B61), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000B62), RUNE_C(0x000B63), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000B66), RUNE_C(0x000B6F), INSC_NUMBER}, + {RUNE_C(0x000B71), RUNE_C(0x000B71), INSC_CONSONANT}, + {RUNE_C(0x000B82), RUNE_C(0x000B82), INSC_BINDU}, + {RUNE_C(0x000B83), RUNE_C(0x000B83), INSC_MODIFYING_LETTER}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000B92), RUNE_C(0x000B94), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000B95), RUNE_C(0x000B95), INSC_CONSONANT}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A), INSC_CONSONANT}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C), INSC_CONSONANT}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F), INSC_CONSONANT}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4), INSC_CONSONANT}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA), INSC_CONSONANT}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9), INSC_CONSONANT}, + {RUNE_C(0x000BBE), RUNE_C(0x000BC2), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCC), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD), INSC_VIRAMA}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000BE6), RUNE_C(0x000BEF), INSC_NUMBER}, + {RUNE_C(0x000C00), RUNE_C(0x000C02), INSC_BINDU}, + {RUNE_C(0x000C03), RUNE_C(0x000C03), INSC_VISARGA}, + {RUNE_C(0x000C04), RUNE_C(0x000C04), INSC_BINDU}, + {RUNE_C(0x000C05), RUNE_C(0x000C0C), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000C12), RUNE_C(0x000C14), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000C15), RUNE_C(0x000C28), INSC_CONSONANT}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39), INSC_CONSONANT}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C), INSC_NUKTA}, + {RUNE_C(0x000C3D), RUNE_C(0x000C3D), INSC_AVAGRAHA}, + {RUNE_C(0x000C3E), RUNE_C(0x000C44), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000C46), RUNE_C(0x000C48), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4C), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000C4D), RUNE_C(0x000C4D), INSC_VIRAMA}, + {RUNE_C(0x000C55), RUNE_C(0x000C56), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A), INSC_CONSONANT}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D), INSC_CONSONANT_DEAD}, + {RUNE_C(0x000C60), RUNE_C(0x000C61), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000C62), RUNE_C(0x000C63), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000C66), RUNE_C(0x000C6F), INSC_NUMBER}, + {RUNE_C(0x000C80), RUNE_C(0x000C82), INSC_BINDU}, + {RUNE_C(0x000C83), RUNE_C(0x000C83), INSC_VISARGA}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000C92), RUNE_C(0x000C94), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000C95), RUNE_C(0x000CA8), INSC_CONSONANT}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3), INSC_CONSONANT}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9), INSC_CONSONANT}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC), INSC_NUKTA}, + {RUNE_C(0x000CBD), RUNE_C(0x000CBD), INSC_AVAGRAHA}, + {RUNE_C(0x000CBE), RUNE_C(0x000CC4), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC8), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCC), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000CCD), RUNE_C(0x000CCD), INSC_VIRAMA}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDD), INSC_CONSONANT_DEAD}, + {RUNE_C(0x000CDE), RUNE_C(0x000CDE), INSC_CONSONANT}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE1), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000CE2), RUNE_C(0x000CE3), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000CE6), RUNE_C(0x000CEF), INSC_NUMBER}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF2), INSC_CONSONANT_WITH_STACKER}, + {RUNE_C(0x000CF3), RUNE_C(0x000CF3), INSC_BINDU}, + {RUNE_C(0x000D00), RUNE_C(0x000D02), INSC_BINDU}, + {RUNE_C(0x000D03), RUNE_C(0x000D03), INSC_VISARGA}, + {RUNE_C(0x000D04), RUNE_C(0x000D04), INSC_BINDU}, + {RUNE_C(0x000D05), RUNE_C(0x000D0C), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000D12), RUNE_C(0x000D14), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000D15), RUNE_C(0x000D3A), INSC_CONSONANT}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C), INSC_PURE_KILLER}, + {RUNE_C(0x000D3D), RUNE_C(0x000D3D), INSC_AVAGRAHA}, + {RUNE_C(0x000D3E), RUNE_C(0x000D44), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000D46), RUNE_C(0x000D48), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4C), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D), INSC_VIRAMA}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4E), INSC_CONSONANT_PRECEDING_REPHA}, + {RUNE_C(0x000D54), RUNE_C(0x000D56), INSC_CONSONANT_DEAD}, + {RUNE_C(0x000D57), RUNE_C(0x000D57), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000D5F), RUNE_C(0x000D61), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000D62), RUNE_C(0x000D63), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000D66), RUNE_C(0x000D6F), INSC_NUMBER}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F), INSC_CONSONANT_DEAD}, + {RUNE_C(0x000D81), RUNE_C(0x000D82), INSC_BINDU}, + {RUNE_C(0x000D83), RUNE_C(0x000D83), INSC_VISARGA}, + {RUNE_C(0x000D85), RUNE_C(0x000D96), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1), INSC_CONSONANT}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB), INSC_CONSONANT}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD), INSC_CONSONANT}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6), INSC_CONSONANT}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA), INSC_VIRAMA}, + {RUNE_C(0x000DCF), RUNE_C(0x000DD4), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDF), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000DE6), RUNE_C(0x000DEF), INSC_NUMBER}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF3), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000E01), RUNE_C(0x000E2E), INSC_CONSONANT}, + {RUNE_C(0x000E30), RUNE_C(0x000E39), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000E3A), RUNE_C(0x000E3A), INSC_PURE_KILLER}, + {RUNE_C(0x000E40), RUNE_C(0x000E45), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000E47), RUNE_C(0x000E47), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000E48), RUNE_C(0x000E4B), INSC_TONE_MARK}, + {RUNE_C(0x000E4C), RUNE_C(0x000E4C), INSC_CONSONANT_KILLER}, + {RUNE_C(0x000E4D), RUNE_C(0x000E4D), INSC_BINDU}, + {RUNE_C(0x000E4E), RUNE_C(0x000E4E), INSC_PURE_KILLER}, + {RUNE_C(0x000E50), RUNE_C(0x000E59), INSC_NUMBER}, + {RUNE_C(0x000E81), RUNE_C(0x000E82), INSC_CONSONANT}, + {RUNE_C(0x000E84), RUNE_C(0x000E84), INSC_CONSONANT}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A), INSC_CONSONANT}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3), INSC_CONSONANT}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5), INSC_CONSONANT}, + {RUNE_C(0x000EA7), RUNE_C(0x000EAE), INSC_CONSONANT}, + {RUNE_C(0x000EB0), RUNE_C(0x000EB9), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000EBA), RUNE_C(0x000EBA), INSC_PURE_KILLER}, + {RUNE_C(0x000EBB), RUNE_C(0x000EBB), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000EBC), RUNE_C(0x000EBD), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECB), INSC_TONE_MARK}, + {RUNE_C(0x000ECD), RUNE_C(0x000ECD), INSC_BINDU}, + {RUNE_C(0x000ECE), RUNE_C(0x000ECE), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x000ED0), RUNE_C(0x000ED9), INSC_NUMBER}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF), INSC_CONSONANT}, + {RUNE_C(0x000F20), RUNE_C(0x000F33), INSC_NUMBER}, + {RUNE_C(0x000F35), RUNE_C(0x000F35), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x000F37), RUNE_C(0x000F37), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x000F39), RUNE_C(0x000F39), INSC_NUKTA}, + {RUNE_C(0x000F40), RUNE_C(0x000F47), INSC_CONSONANT}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C), INSC_CONSONANT}, + {RUNE_C(0x000F71), RUNE_C(0x000F7D), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000F7E), RUNE_C(0x000F7E), INSC_BINDU}, + {RUNE_C(0x000F7F), RUNE_C(0x000F7F), INSC_VISARGA}, + {RUNE_C(0x000F80), RUNE_C(0x000F81), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x000F82), RUNE_C(0x000F83), INSC_BINDU}, + {RUNE_C(0x000F84), RUNE_C(0x000F84), INSC_PURE_KILLER}, + {RUNE_C(0x000F85), RUNE_C(0x000F85), INSC_AVAGRAHA}, + {RUNE_C(0x000F88), RUNE_C(0x000F8C), INSC_CONSONANT_HEAD_LETTER}, + {RUNE_C(0x000F8D), RUNE_C(0x000F97), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x001000), RUNE_C(0x001020), INSC_CONSONANT}, + {RUNE_C(0x001021), RUNE_C(0x00102A), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00102B), RUNE_C(0x001035), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001036), RUNE_C(0x001036), INSC_BINDU}, + {RUNE_C(0x001037), RUNE_C(0x001037), INSC_TONE_MARK}, + {RUNE_C(0x001038), RUNE_C(0x001038), INSC_VISARGA}, + {RUNE_C(0x001039), RUNE_C(0x001039), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x00103A), RUNE_C(0x00103A), INSC_PURE_KILLER}, + {RUNE_C(0x00103B), RUNE_C(0x00103E), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x00103F), RUNE_C(0x00103F), INSC_CONSONANT}, + {RUNE_C(0x001040), RUNE_C(0x001049), INSC_NUMBER}, + {RUNE_C(0x00104B), RUNE_C(0x00104B), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x00104E), RUNE_C(0x00104E), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x001050), RUNE_C(0x001051), INSC_CONSONANT}, + {RUNE_C(0x001052), RUNE_C(0x001055), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x001056), RUNE_C(0x001059), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00105A), RUNE_C(0x00105D), INSC_CONSONANT}, + {RUNE_C(0x00105E), RUNE_C(0x001060), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x001061), RUNE_C(0x001061), INSC_CONSONANT}, + {RUNE_C(0x001062), RUNE_C(0x001062), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001063), RUNE_C(0x001064), INSC_TONE_MARK}, + {RUNE_C(0x001065), RUNE_C(0x001066), INSC_CONSONANT}, + {RUNE_C(0x001067), RUNE_C(0x001068), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001069), RUNE_C(0x00106D), INSC_TONE_MARK}, + {RUNE_C(0x00106E), RUNE_C(0x001070), INSC_CONSONANT}, + {RUNE_C(0x001071), RUNE_C(0x001074), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001075), RUNE_C(0x001081), INSC_CONSONANT}, + {RUNE_C(0x001082), RUNE_C(0x001082), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x001083), RUNE_C(0x001086), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001087), RUNE_C(0x00108D), INSC_TONE_MARK}, + {RUNE_C(0x00108E), RUNE_C(0x00108E), INSC_CONSONANT}, + {RUNE_C(0x00108F), RUNE_C(0x00108F), INSC_TONE_MARK}, + {RUNE_C(0x001090), RUNE_C(0x001099), INSC_NUMBER}, + {RUNE_C(0x00109A), RUNE_C(0x00109B), INSC_TONE_MARK}, + {RUNE_C(0x00109C), RUNE_C(0x00109D), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001700), RUNE_C(0x001702), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x001703), RUNE_C(0x001711), INSC_CONSONANT}, + {RUNE_C(0x001712), RUNE_C(0x001713), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001714), RUNE_C(0x001715), INSC_PURE_KILLER}, + {RUNE_C(0x00171F), RUNE_C(0x00171F), INSC_CONSONANT}, + {RUNE_C(0x001720), RUNE_C(0x001722), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x001723), RUNE_C(0x001731), INSC_CONSONANT}, + {RUNE_C(0x001732), RUNE_C(0x001733), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001734), RUNE_C(0x001734), INSC_PURE_KILLER}, + {RUNE_C(0x001740), RUNE_C(0x001742), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x001743), RUNE_C(0x001751), INSC_CONSONANT}, + {RUNE_C(0x001752), RUNE_C(0x001753), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001760), RUNE_C(0x001762), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x001763), RUNE_C(0x00176C), INSC_CONSONANT}, + {RUNE_C(0x00176E), RUNE_C(0x001770), INSC_CONSONANT}, + {RUNE_C(0x001772), RUNE_C(0x001773), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001780), RUNE_C(0x0017A2), INSC_CONSONANT}, + {RUNE_C(0x0017A3), RUNE_C(0x0017B3), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x0017B6), RUNE_C(0x0017C5), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0017C6), RUNE_C(0x0017C6), INSC_BINDU}, + {RUNE_C(0x0017C7), RUNE_C(0x0017C7), INSC_VISARGA}, + {RUNE_C(0x0017C8), RUNE_C(0x0017C8), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0017C9), RUNE_C(0x0017CA), INSC_REGISTER_SHIFTER}, + {RUNE_C(0x0017CB), RUNE_C(0x0017CB), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x0017CC), RUNE_C(0x0017CC), INSC_CONSONANT_SUCCEEDING_REPHA}, + {RUNE_C(0x0017CD), RUNE_C(0x0017CD), INSC_CONSONANT_KILLER}, + {RUNE_C(0x0017CE), RUNE_C(0x0017D0), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x0017D1), RUNE_C(0x0017D1), INSC_PURE_KILLER}, + {RUNE_C(0x0017D2), RUNE_C(0x0017D2), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x0017D3), RUNE_C(0x0017D3), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DC), INSC_AVAGRAHA}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x0017E0), RUNE_C(0x0017E9), INSC_NUMBER}, + {RUNE_C(0x001900), RUNE_C(0x001900), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x001901), RUNE_C(0x00191E), INSC_CONSONANT}, + {RUNE_C(0x001920), RUNE_C(0x001928), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001929), RUNE_C(0x00192B), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x001930), RUNE_C(0x001931), INSC_CONSONANT_FINAL}, + {RUNE_C(0x001932), RUNE_C(0x001932), INSC_BINDU}, + {RUNE_C(0x001933), RUNE_C(0x001939), INSC_CONSONANT_FINAL}, + {RUNE_C(0x00193A), RUNE_C(0x00193A), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00193B), RUNE_C(0x00193B), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x001946), RUNE_C(0x00194F), INSC_NUMBER}, + {RUNE_C(0x001950), RUNE_C(0x001962), INSC_CONSONANT}, + {RUNE_C(0x001963), RUNE_C(0x00196D), INSC_VOWEL}, + {RUNE_C(0x001970), RUNE_C(0x001974), INSC_TONE_LETTER}, + {RUNE_C(0x001980), RUNE_C(0x0019AB), INSC_CONSONANT}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C0), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0019C1), RUNE_C(0x0019C7), INSC_CONSONANT_FINAL}, + {RUNE_C(0x0019C8), RUNE_C(0x0019C9), INSC_TONE_MARK}, + {RUNE_C(0x0019D0), RUNE_C(0x0019DA), INSC_NUMBER}, + {RUNE_C(0x001A00), RUNE_C(0x001A16), INSC_CONSONANT}, + {RUNE_C(0x001A17), RUNE_C(0x001A1B), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001A20), RUNE_C(0x001A4C), INSC_CONSONANT}, + {RUNE_C(0x001A4D), RUNE_C(0x001A52), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x001A53), RUNE_C(0x001A54), INSC_CONSONANT}, + {RUNE_C(0x001A55), RUNE_C(0x001A56), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x001A57), RUNE_C(0x001A57), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x001A58), RUNE_C(0x001A59), INSC_CONSONANT_FINAL}, + {RUNE_C(0x001A5A), RUNE_C(0x001A5A), INSC_CONSONANT_INITIAL_POSTFIXED}, + {RUNE_C(0x001A5B), RUNE_C(0x001A5E), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x001A60), RUNE_C(0x001A60), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x001A61), RUNE_C(0x001A73), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001A74), RUNE_C(0x001A74), INSC_BINDU}, + {RUNE_C(0x001A75), RUNE_C(0x001A79), INSC_TONE_MARK}, + {RUNE_C(0x001A7A), RUNE_C(0x001A7A), INSC_PURE_KILLER}, + {RUNE_C(0x001A7B), RUNE_C(0x001A7C), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x001A80), RUNE_C(0x001A89), INSC_NUMBER}, + {RUNE_C(0x001A90), RUNE_C(0x001A99), INSC_NUMBER}, + {RUNE_C(0x001B00), RUNE_C(0x001B02), INSC_BINDU}, + {RUNE_C(0x001B03), RUNE_C(0x001B03), INSC_CONSONANT_FINAL}, + {RUNE_C(0x001B04), RUNE_C(0x001B04), INSC_VISARGA}, + {RUNE_C(0x001B05), RUNE_C(0x001B12), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x001B13), RUNE_C(0x001B33), INSC_CONSONANT}, + {RUNE_C(0x001B34), RUNE_C(0x001B34), INSC_NUKTA}, + {RUNE_C(0x001B35), RUNE_C(0x001B43), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001B44), RUNE_C(0x001B44), INSC_VIRAMA}, + {RUNE_C(0x001B45), RUNE_C(0x001B4C), INSC_CONSONANT}, + {RUNE_C(0x001B50), RUNE_C(0x001B59), INSC_NUMBER}, + {RUNE_C(0x001B80), RUNE_C(0x001B80), INSC_BINDU}, + {RUNE_C(0x001B81), RUNE_C(0x001B81), INSC_CONSONANT_FINAL}, + {RUNE_C(0x001B82), RUNE_C(0x001B82), INSC_VISARGA}, + {RUNE_C(0x001B83), RUNE_C(0x001B89), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x001B8A), RUNE_C(0x001BA0), INSC_CONSONANT}, + {RUNE_C(0x001BA1), RUNE_C(0x001BA3), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x001BA4), RUNE_C(0x001BA9), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001BAA), RUNE_C(0x001BAA), INSC_PURE_KILLER}, + {RUNE_C(0x001BAB), RUNE_C(0x001BAB), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x001BAC), RUNE_C(0x001BAD), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x001BAE), RUNE_C(0x001BAF), INSC_CONSONANT}, + {RUNE_C(0x001BB0), RUNE_C(0x001BB9), INSC_NUMBER}, + {RUNE_C(0x001BBA), RUNE_C(0x001BBA), INSC_AVAGRAHA}, + {RUNE_C(0x001BBB), RUNE_C(0x001BBD), INSC_CONSONANT}, + {RUNE_C(0x001BBE), RUNE_C(0x001BBF), INSC_CONSONANT_FINAL}, + {RUNE_C(0x001BC0), RUNE_C(0x001BE3), INSC_CONSONANT}, + {RUNE_C(0x001BE4), RUNE_C(0x001BE5), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6), INSC_NUKTA}, + {RUNE_C(0x001BE7), RUNE_C(0x001BEF), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001BF0), RUNE_C(0x001BF1), INSC_CONSONANT_FINAL}, + {RUNE_C(0x001BF2), RUNE_C(0x001BF3), INSC_PURE_KILLER}, + {RUNE_C(0x001C00), RUNE_C(0x001C23), INSC_CONSONANT}, + {RUNE_C(0x001C24), RUNE_C(0x001C25), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x001C26), RUNE_C(0x001C2C), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x001C2D), RUNE_C(0x001C33), INSC_CONSONANT_FINAL}, + {RUNE_C(0x001C34), RUNE_C(0x001C35), INSC_BINDU}, + {RUNE_C(0x001C36), RUNE_C(0x001C36), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x001C37), RUNE_C(0x001C37), INSC_NUKTA}, + {RUNE_C(0x001C40), RUNE_C(0x001C49), INSC_NUMBER}, + {RUNE_C(0x001C4D), RUNE_C(0x001C4F), INSC_CONSONANT}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2), INSC_CANTILLATION_MARK}, + {RUNE_C(0x001CD4), RUNE_C(0x001CE1), INSC_CANTILLATION_MARK}, + {RUNE_C(0x001CF2), RUNE_C(0x001CF3), INSC_CONSONANT_DEAD}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4), INSC_CANTILLATION_MARK}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF6), INSC_CONSONANT_WITH_STACKER}, + {RUNE_C(0x001CF7), RUNE_C(0x001CF9), INSC_CANTILLATION_MARK}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x001DFB), RUNE_C(0x001DFB), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x00200C), RUNE_C(0x00200C), INSC_NON_JOINER}, + {RUNE_C(0x00200D), RUNE_C(0x00200D), INSC_JOINER}, + {RUNE_C(0x002010), RUNE_C(0x002014), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x002074), RUNE_C(0x002074), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x002082), RUNE_C(0x002084), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x0020F0), RUNE_C(0x0020F0), INSC_CANTILLATION_MARK}, + {RUNE_C(0x0025CC), RUNE_C(0x0025CC), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x00A800), RUNE_C(0x00A801), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00A802), RUNE_C(0x00A802), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00A803), RUNE_C(0x00A805), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00A806), RUNE_C(0x00A806), INSC_VIRAMA}, + {RUNE_C(0x00A807), RUNE_C(0x00A80A), INSC_CONSONANT}, + {RUNE_C(0x00A80B), RUNE_C(0x00A80B), INSC_BINDU}, + {RUNE_C(0x00A80C), RUNE_C(0x00A822), INSC_CONSONANT}, + {RUNE_C(0x00A823), RUNE_C(0x00A827), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C), INSC_PURE_KILLER}, + {RUNE_C(0x00A840), RUNE_C(0x00A85D), INSC_CONSONANT}, + {RUNE_C(0x00A85E), RUNE_C(0x00A861), INSC_VOWEL}, + {RUNE_C(0x00A862), RUNE_C(0x00A865), INSC_CONSONANT}, + {RUNE_C(0x00A866), RUNE_C(0x00A866), INSC_VOWEL}, + {RUNE_C(0x00A867), RUNE_C(0x00A868), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x00A869), RUNE_C(0x00A870), INSC_CONSONANT}, + {RUNE_C(0x00A871), RUNE_C(0x00A871), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x00A872), RUNE_C(0x00A872), INSC_CONSONANT}, + {RUNE_C(0x00A873), RUNE_C(0x00A873), INSC_BINDU}, + {RUNE_C(0x00A880), RUNE_C(0x00A880), INSC_BINDU}, + {RUNE_C(0x00A881), RUNE_C(0x00A881), INSC_VISARGA}, + {RUNE_C(0x00A882), RUNE_C(0x00A891), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00A892), RUNE_C(0x00A8B3), INSC_CONSONANT}, + {RUNE_C(0x00A8B4), RUNE_C(0x00A8B4), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x00A8B5), RUNE_C(0x00A8C3), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C4), INSC_VIRAMA}, + {RUNE_C(0x00A8C5), RUNE_C(0x00A8C5), INSC_BINDU}, + {RUNE_C(0x00A8D0), RUNE_C(0x00A8D9), INSC_NUMBER}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1), INSC_CANTILLATION_MARK}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8F3), INSC_BINDU}, + {RUNE_C(0x00A8FE), RUNE_C(0x00A8FE), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00A900), RUNE_C(0x00A909), INSC_NUMBER}, + {RUNE_C(0x00A90A), RUNE_C(0x00A921), INSC_CONSONANT}, + {RUNE_C(0x00A922), RUNE_C(0x00A92A), INSC_VOWEL}, + {RUNE_C(0x00A92B), RUNE_C(0x00A92D), INSC_TONE_MARK}, + {RUNE_C(0x00A930), RUNE_C(0x00A946), INSC_CONSONANT}, + {RUNE_C(0x00A947), RUNE_C(0x00A94E), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00A94F), RUNE_C(0x00A952), INSC_CONSONANT_FINAL}, + {RUNE_C(0x00A953), RUNE_C(0x00A953), INSC_PURE_KILLER}, + {RUNE_C(0x00A980), RUNE_C(0x00A981), INSC_BINDU}, + {RUNE_C(0x00A982), RUNE_C(0x00A982), INSC_CONSONANT_FINAL}, + {RUNE_C(0x00A983), RUNE_C(0x00A983), INSC_VISARGA}, + {RUNE_C(0x00A984), RUNE_C(0x00A988), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00A989), RUNE_C(0x00A98B), INSC_CONSONANT}, + {RUNE_C(0x00A98C), RUNE_C(0x00A98E), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00A98F), RUNE_C(0x00A9B2), INSC_CONSONANT}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3), INSC_NUKTA}, + {RUNE_C(0x00A9B4), RUNE_C(0x00A9BC), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00A9BD), RUNE_C(0x00A9BF), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x00A9C0), RUNE_C(0x00A9C0), INSC_VIRAMA}, + {RUNE_C(0x00A9D0), RUNE_C(0x00A9D9), INSC_NUMBER}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9E4), INSC_CONSONANT}, + {RUNE_C(0x00A9E5), RUNE_C(0x00A9E5), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00A9E7), RUNE_C(0x00A9EF), INSC_CONSONANT}, + {RUNE_C(0x00A9F0), RUNE_C(0x00A9F9), INSC_NUMBER}, + {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE), INSC_CONSONANT}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA05), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00AA06), RUNE_C(0x00AA28), INSC_CONSONANT}, + {RUNE_C(0x00AA29), RUNE_C(0x00AA32), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00AA33), RUNE_C(0x00AA36), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA4D), INSC_CONSONANT_FINAL}, + {RUNE_C(0x00AA50), RUNE_C(0x00AA59), INSC_NUMBER}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA6F), INSC_CONSONANT}, + {RUNE_C(0x00AA71), RUNE_C(0x00AA73), INSC_CONSONANT}, + {RUNE_C(0x00AA74), RUNE_C(0x00AA76), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AA7A), INSC_CONSONANT}, + {RUNE_C(0x00AA7B), RUNE_C(0x00AA7D), INSC_TONE_MARK}, + {RUNE_C(0x00AA7E), RUNE_C(0x00AAAF), INSC_CONSONANT}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AABE), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00AABF), RUNE_C(0x00AABF), INSC_TONE_MARK}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0), INSC_TONE_LETTER}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1), INSC_TONE_MARK}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2), INSC_TONE_LETTER}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAE1), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00AAE2), RUNE_C(0x00AAEA), INSC_CONSONANT}, + {RUNE_C(0x00AAEB), RUNE_C(0x00AAEF), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00AAF5), RUNE_C(0x00AAF5), INSC_VISARGA}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x00ABC0), RUNE_C(0x00ABCD), INSC_CONSONANT}, + {RUNE_C(0x00ABCE), RUNE_C(0x00ABCF), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00ABD0), RUNE_C(0x00ABD0), INSC_CONSONANT}, + {RUNE_C(0x00ABD1), RUNE_C(0x00ABD1), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x00ABD2), RUNE_C(0x00ABDA), INSC_CONSONANT}, + {RUNE_C(0x00ABDB), RUNE_C(0x00ABE2), INSC_CONSONANT_FINAL}, + {RUNE_C(0x00ABE3), RUNE_C(0x00ABEA), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x00ABEC), RUNE_C(0x00ABEC), INSC_TONE_MARK}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED), INSC_PURE_KILLER}, + {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9), INSC_NUMBER}, + {RUNE_C(0x010A00), RUNE_C(0x010A00), INSC_CONSONANT}, + {RUNE_C(0x010A01), RUNE_C(0x010A03), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x010A05), RUNE_C(0x010A06), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x010A0C), RUNE_C(0x010A0D), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x010A0E), RUNE_C(0x010A0E), INSC_BINDU}, + {RUNE_C(0x010A0F), RUNE_C(0x010A0F), INSC_VISARGA}, + {RUNE_C(0x010A10), RUNE_C(0x010A13), INSC_CONSONANT}, + {RUNE_C(0x010A15), RUNE_C(0x010A17), INSC_CONSONANT}, + {RUNE_C(0x010A19), RUNE_C(0x010A35), INSC_CONSONANT}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A), INSC_NUKTA}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x010A40), RUNE_C(0x010A48), INSC_NUMBER}, + {RUNE_C(0x011000), RUNE_C(0x011001), INSC_BINDU}, + {RUNE_C(0x011002), RUNE_C(0x011002), INSC_VISARGA}, + {RUNE_C(0x011003), RUNE_C(0x011004), INSC_CONSONANT_WITH_STACKER}, + {RUNE_C(0x011005), RUNE_C(0x011012), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011013), RUNE_C(0x011037), INSC_CONSONANT}, + {RUNE_C(0x011038), RUNE_C(0x011045), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011046), RUNE_C(0x011046), INSC_VIRAMA}, + {RUNE_C(0x011052), RUNE_C(0x011065), INSC_BRAHMI_JOINING_NUMBER}, + {RUNE_C(0x011066), RUNE_C(0x01106F), INSC_NUMBER}, + {RUNE_C(0x011070), RUNE_C(0x011070), INSC_PURE_KILLER}, + {RUNE_C(0x011071), RUNE_C(0x011072), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011073), RUNE_C(0x011074), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011075), RUNE_C(0x011075), INSC_CONSONANT}, + {RUNE_C(0x01107F), RUNE_C(0x01107F), INSC_NUMBER_JOINER}, + {RUNE_C(0x011080), RUNE_C(0x011081), INSC_BINDU}, + {RUNE_C(0x011082), RUNE_C(0x011082), INSC_VISARGA}, + {RUNE_C(0x011083), RUNE_C(0x01108C), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x01108D), RUNE_C(0x0110AF), INSC_CONSONANT}, + {RUNE_C(0x0110B0), RUNE_C(0x0110B8), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0110B9), RUNE_C(0x0110B9), INSC_VIRAMA}, + {RUNE_C(0x0110BA), RUNE_C(0x0110BA), INSC_NUKTA}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011100), RUNE_C(0x011101), INSC_BINDU}, + {RUNE_C(0x011102), RUNE_C(0x011102), INSC_VISARGA}, + {RUNE_C(0x011103), RUNE_C(0x011106), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011107), RUNE_C(0x011126), INSC_CONSONANT}, + {RUNE_C(0x011127), RUNE_C(0x011132), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011133), RUNE_C(0x011133), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x011134), RUNE_C(0x011134), INSC_PURE_KILLER}, + {RUNE_C(0x011136), RUNE_C(0x01113F), INSC_NUMBER}, + {RUNE_C(0x011144), RUNE_C(0x011144), INSC_CONSONANT}, + {RUNE_C(0x011145), RUNE_C(0x011146), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011147), RUNE_C(0x011147), INSC_CONSONANT}, + {RUNE_C(0x011150), RUNE_C(0x011154), INSC_VOWEL}, + {RUNE_C(0x011155), RUNE_C(0x011172), INSC_CONSONANT}, + {RUNE_C(0x011173), RUNE_C(0x011173), INSC_NUKTA}, + {RUNE_C(0x011180), RUNE_C(0x011181), INSC_BINDU}, + {RUNE_C(0x011182), RUNE_C(0x011182), INSC_VISARGA}, + {RUNE_C(0x011183), RUNE_C(0x011190), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011191), RUNE_C(0x0111B2), INSC_CONSONANT}, + {RUNE_C(0x0111B3), RUNE_C(0x0111BF), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0111C0), RUNE_C(0x0111C0), INSC_VIRAMA}, + {RUNE_C(0x0111C1), RUNE_C(0x0111C1), INSC_AVAGRAHA}, + {RUNE_C(0x0111C2), RUNE_C(0x0111C3), INSC_CONSONANT_PREFIXED}, + {RUNE_C(0x0111C9), RUNE_C(0x0111C9), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x0111CA), RUNE_C(0x0111CA), INSC_NUKTA}, + {RUNE_C(0x0111CB), RUNE_C(0x0111CC), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0111CE), RUNE_C(0x0111CE), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0111CF), RUNE_C(0x0111CF), INSC_BINDU}, + {RUNE_C(0x0111D0), RUNE_C(0x0111D9), INSC_NUMBER}, + {RUNE_C(0x0111E1), RUNE_C(0x0111F4), INSC_NUMBER}, + {RUNE_C(0x011200), RUNE_C(0x011207), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011208), RUNE_C(0x011211), INSC_CONSONANT}, + {RUNE_C(0x011213), RUNE_C(0x01122B), INSC_CONSONANT}, + {RUNE_C(0x01122C), RUNE_C(0x011233), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011234), RUNE_C(0x011234), INSC_BINDU}, + {RUNE_C(0x011235), RUNE_C(0x011235), INSC_VIRAMA}, + {RUNE_C(0x011236), RUNE_C(0x011236), INSC_NUKTA}, + {RUNE_C(0x011237), RUNE_C(0x011237), INSC_GEMINATION_MARK}, + {RUNE_C(0x01123E), RUNE_C(0x01123E), INSC_CANTILLATION_MARK}, + {RUNE_C(0x01123F), RUNE_C(0x01123F), INSC_CONSONANT}, + {RUNE_C(0x011240), RUNE_C(0x011240), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011241), RUNE_C(0x011241), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011280), RUNE_C(0x011283), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011284), RUNE_C(0x011286), INSC_CONSONANT}, + {RUNE_C(0x011288), RUNE_C(0x011288), INSC_CONSONANT}, + {RUNE_C(0x01128A), RUNE_C(0x01128D), INSC_CONSONANT}, + {RUNE_C(0x01128F), RUNE_C(0x01129D), INSC_CONSONANT}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8), INSC_CONSONANT}, + {RUNE_C(0x0112B0), RUNE_C(0x0112B9), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x0112BA), RUNE_C(0x0112DE), INSC_CONSONANT}, + {RUNE_C(0x0112DF), RUNE_C(0x0112DF), INSC_BINDU}, + {RUNE_C(0x0112E0), RUNE_C(0x0112E8), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0112E9), RUNE_C(0x0112E9), INSC_NUKTA}, + {RUNE_C(0x0112EA), RUNE_C(0x0112EA), INSC_PURE_KILLER}, + {RUNE_C(0x0112F0), RUNE_C(0x0112F9), INSC_NUMBER}, + {RUNE_C(0x011300), RUNE_C(0x011302), INSC_BINDU}, + {RUNE_C(0x011303), RUNE_C(0x011303), INSC_VISARGA}, + {RUNE_C(0x011305), RUNE_C(0x01130C), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x01130F), RUNE_C(0x011310), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011313), RUNE_C(0x011314), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011315), RUNE_C(0x011328), INSC_CONSONANT}, + {RUNE_C(0x01132A), RUNE_C(0x011330), INSC_CONSONANT}, + {RUNE_C(0x011332), RUNE_C(0x011333), INSC_CONSONANT}, + {RUNE_C(0x011335), RUNE_C(0x011339), INSC_CONSONANT}, + {RUNE_C(0x01133B), RUNE_C(0x01133C), INSC_NUKTA}, + {RUNE_C(0x01133D), RUNE_C(0x01133D), INSC_AVAGRAHA}, + {RUNE_C(0x01133E), RUNE_C(0x011344), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011347), RUNE_C(0x011348), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x01134B), RUNE_C(0x01134C), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x01134D), RUNE_C(0x01134D), INSC_VIRAMA}, + {RUNE_C(0x011357), RUNE_C(0x011357), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x01135E), RUNE_C(0x01135F), INSC_BINDU}, + {RUNE_C(0x011360), RUNE_C(0x011361), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011362), RUNE_C(0x011363), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011366), RUNE_C(0x01136C), INSC_CANTILLATION_MARK}, + {RUNE_C(0x011370), RUNE_C(0x011374), INSC_CANTILLATION_MARK}, + {RUNE_C(0x011400), RUNE_C(0x01140D), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x01140E), RUNE_C(0x011434), INSC_CONSONANT}, + {RUNE_C(0x011435), RUNE_C(0x011441), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011442), RUNE_C(0x011442), INSC_VIRAMA}, + {RUNE_C(0x011443), RUNE_C(0x011444), INSC_BINDU}, + {RUNE_C(0x011445), RUNE_C(0x011445), INSC_VISARGA}, + {RUNE_C(0x011446), RUNE_C(0x011446), INSC_NUKTA}, + {RUNE_C(0x011447), RUNE_C(0x011447), INSC_AVAGRAHA}, + {RUNE_C(0x011450), RUNE_C(0x011459), INSC_NUMBER}, + {RUNE_C(0x01145E), RUNE_C(0x01145E), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x01145F), RUNE_C(0x01145F), INSC_BINDU}, + {RUNE_C(0x011460), RUNE_C(0x011461), INSC_CONSONANT_WITH_STACKER}, + {RUNE_C(0x011481), RUNE_C(0x01148E), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x01148F), RUNE_C(0x0114AF), INSC_CONSONANT}, + {RUNE_C(0x0114B0), RUNE_C(0x0114BE), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0114BF), RUNE_C(0x0114C0), INSC_BINDU}, + {RUNE_C(0x0114C1), RUNE_C(0x0114C1), INSC_VISARGA}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C2), INSC_VIRAMA}, + {RUNE_C(0x0114C3), RUNE_C(0x0114C3), INSC_NUKTA}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C4), INSC_AVAGRAHA}, + {RUNE_C(0x0114D0), RUNE_C(0x0114D9), INSC_NUMBER}, + {RUNE_C(0x011580), RUNE_C(0x01158D), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x01158E), RUNE_C(0x0115AE), INSC_CONSONANT}, + {RUNE_C(0x0115AF), RUNE_C(0x0115B5), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0115B8), RUNE_C(0x0115BB), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0115BC), RUNE_C(0x0115BD), INSC_BINDU}, + {RUNE_C(0x0115BE), RUNE_C(0x0115BE), INSC_VISARGA}, + {RUNE_C(0x0115BF), RUNE_C(0x0115BF), INSC_VIRAMA}, + {RUNE_C(0x0115C0), RUNE_C(0x0115C0), INSC_NUKTA}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DB), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x0115DC), RUNE_C(0x0115DD), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011600), RUNE_C(0x01160D), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x01160E), RUNE_C(0x01162F), INSC_CONSONANT}, + {RUNE_C(0x011630), RUNE_C(0x01163C), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x01163D), RUNE_C(0x01163D), INSC_BINDU}, + {RUNE_C(0x01163E), RUNE_C(0x01163E), INSC_VISARGA}, + {RUNE_C(0x01163F), RUNE_C(0x01163F), INSC_VIRAMA}, + {RUNE_C(0x011640), RUNE_C(0x011640), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011650), RUNE_C(0x011659), INSC_NUMBER}, + {RUNE_C(0x011680), RUNE_C(0x011689), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x01168A), RUNE_C(0x0116AA), INSC_CONSONANT}, + {RUNE_C(0x0116AB), RUNE_C(0x0116AB), INSC_BINDU}, + {RUNE_C(0x0116AC), RUNE_C(0x0116AC), INSC_VISARGA}, + {RUNE_C(0x0116AD), RUNE_C(0x0116B5), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0116B6), RUNE_C(0x0116B6), INSC_VIRAMA}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7), INSC_NUKTA}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B8), INSC_CONSONANT}, + {RUNE_C(0x0116C0), RUNE_C(0x0116C9), INSC_NUMBER}, + {RUNE_C(0x011700), RUNE_C(0x01171A), INSC_CONSONANT}, + {RUNE_C(0x01171D), RUNE_C(0x01171F), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x011720), RUNE_C(0x01172A), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x01172B), RUNE_C(0x01172B), INSC_PURE_KILLER}, + {RUNE_C(0x011730), RUNE_C(0x01173B), INSC_NUMBER}, + {RUNE_C(0x011740), RUNE_C(0x011746), INSC_CONSONANT}, + {RUNE_C(0x011800), RUNE_C(0x011809), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x01180A), RUNE_C(0x01182B), INSC_CONSONANT}, + {RUNE_C(0x01182C), RUNE_C(0x011836), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011837), RUNE_C(0x011837), INSC_BINDU}, + {RUNE_C(0x011838), RUNE_C(0x011838), INSC_VISARGA}, + {RUNE_C(0x011839), RUNE_C(0x011839), INSC_VIRAMA}, + {RUNE_C(0x01183A), RUNE_C(0x01183A), INSC_NUKTA}, + {RUNE_C(0x011900), RUNE_C(0x011906), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011909), RUNE_C(0x011909), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x01190C), RUNE_C(0x011913), INSC_CONSONANT}, + {RUNE_C(0x011915), RUNE_C(0x011916), INSC_CONSONANT}, + {RUNE_C(0x011918), RUNE_C(0x01192F), INSC_CONSONANT}, + {RUNE_C(0x011930), RUNE_C(0x011935), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011937), RUNE_C(0x011938), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x01193B), RUNE_C(0x01193C), INSC_BINDU}, + {RUNE_C(0x01193D), RUNE_C(0x01193D), INSC_PURE_KILLER}, + {RUNE_C(0x01193E), RUNE_C(0x01193E), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x01193F), RUNE_C(0x01193F), INSC_CONSONANT_PREFIXED}, + {RUNE_C(0x011940), RUNE_C(0x011940), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x011941), RUNE_C(0x011941), INSC_CONSONANT_PRECEDING_REPHA}, + {RUNE_C(0x011942), RUNE_C(0x011942), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x011943), RUNE_C(0x011943), INSC_NUKTA}, + {RUNE_C(0x011950), RUNE_C(0x011959), INSC_NUMBER}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x0119AA), RUNE_C(0x0119AD), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x0119AE), RUNE_C(0x0119D0), INSC_CONSONANT}, + {RUNE_C(0x0119D1), RUNE_C(0x0119D7), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0119DA), RUNE_C(0x0119DD), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x0119DE), RUNE_C(0x0119DE), INSC_BINDU}, + {RUNE_C(0x0119DF), RUNE_C(0x0119DF), INSC_VISARGA}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0), INSC_VIRAMA}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E1), INSC_AVAGRAHA}, + {RUNE_C(0x0119E4), RUNE_C(0x0119E4), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011A00), RUNE_C(0x011A00), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011A01), RUNE_C(0x011A0A), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011A0B), RUNE_C(0x011A32), INSC_CONSONANT}, + {RUNE_C(0x011A33), RUNE_C(0x011A33), INSC_SYLLABLE_MODIFIER}, + {RUNE_C(0x011A34), RUNE_C(0x011A34), INSC_PURE_KILLER}, + {RUNE_C(0x011A35), RUNE_C(0x011A38), INSC_BINDU}, + {RUNE_C(0x011A39), RUNE_C(0x011A39), INSC_VISARGA}, + {RUNE_C(0x011A3A), RUNE_C(0x011A3A), INSC_CONSONANT_PREFIXED}, + {RUNE_C(0x011A3B), RUNE_C(0x011A3E), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x011A3F), RUNE_C(0x011A3F), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x011A45), RUNE_C(0x011A45), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x011A47), RUNE_C(0x011A47), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x011A50), RUNE_C(0x011A50), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011A51), RUNE_C(0x011A5B), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011A5C), RUNE_C(0x011A83), INSC_CONSONANT}, + {RUNE_C(0x011A84), RUNE_C(0x011A89), INSC_CONSONANT_PREFIXED}, + {RUNE_C(0x011A8A), RUNE_C(0x011A95), INSC_CONSONANT_FINAL}, + {RUNE_C(0x011A96), RUNE_C(0x011A96), INSC_BINDU}, + {RUNE_C(0x011A97), RUNE_C(0x011A97), INSC_VISARGA}, + {RUNE_C(0x011A98), RUNE_C(0x011A98), INSC_GEMINATION_MARK}, + {RUNE_C(0x011A99), RUNE_C(0x011A99), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D), INSC_AVAGRAHA}, + {RUNE_C(0x011C00), RUNE_C(0x011C08), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011C0A), RUNE_C(0x011C0D), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011C0E), RUNE_C(0x011C2E), INSC_CONSONANT}, + {RUNE_C(0x011C2F), RUNE_C(0x011C36), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011C38), RUNE_C(0x011C3B), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011C3C), RUNE_C(0x011C3D), INSC_BINDU}, + {RUNE_C(0x011C3E), RUNE_C(0x011C3E), INSC_VISARGA}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F), INSC_VIRAMA}, + {RUNE_C(0x011C40), RUNE_C(0x011C40), INSC_AVAGRAHA}, + {RUNE_C(0x011C50), RUNE_C(0x011C6C), INSC_NUMBER}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F), INSC_CONSONANT}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x011CA9), RUNE_C(0x011CAF), INSC_CONSONANT_SUBJOINED}, + {RUNE_C(0x011CB0), RUNE_C(0x011CB4), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011CB5), RUNE_C(0x011CB6), INSC_BINDU}, + {RUNE_C(0x011D00), RUNE_C(0x011D06), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011D08), RUNE_C(0x011D09), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011D0B), RUNE_C(0x011D0B), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011D0C), RUNE_C(0x011D30), INSC_CONSONANT}, + {RUNE_C(0x011D31), RUNE_C(0x011D36), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011D3F), RUNE_C(0x011D3F), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011D40), RUNE_C(0x011D40), INSC_BINDU}, + {RUNE_C(0x011D41), RUNE_C(0x011D41), INSC_VISARGA}, + {RUNE_C(0x011D42), RUNE_C(0x011D42), INSC_NUKTA}, + {RUNE_C(0x011D43), RUNE_C(0x011D43), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011D44), RUNE_C(0x011D44), INSC_PURE_KILLER}, + {RUNE_C(0x011D45), RUNE_C(0x011D45), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x011D46), RUNE_C(0x011D46), INSC_CONSONANT_PRECEDING_REPHA}, + {RUNE_C(0x011D47), RUNE_C(0x011D47), INSC_CONSONANT_MEDIAL}, + {RUNE_C(0x011D50), RUNE_C(0x011D59), INSC_NUMBER}, + {RUNE_C(0x011D60), RUNE_C(0x011D65), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011D67), RUNE_C(0x011D68), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011D6A), RUNE_C(0x011D6B), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011D6C), RUNE_C(0x011D89), INSC_CONSONANT}, + {RUNE_C(0x011D8A), RUNE_C(0x011D8E), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011D90), RUNE_C(0x011D91), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011D93), RUNE_C(0x011D94), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011D95), RUNE_C(0x011D95), INSC_BINDU}, + {RUNE_C(0x011D96), RUNE_C(0x011D96), INSC_VISARGA}, + {RUNE_C(0x011D97), RUNE_C(0x011D97), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x011DA0), RUNE_C(0x011DA9), INSC_NUMBER}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF1), INSC_CONSONANT}, + {RUNE_C(0x011EF2), RUNE_C(0x011EF2), INSC_CONSONANT_PLACEHOLDER}, + {RUNE_C(0x011EF3), RUNE_C(0x011EF6), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011F00), RUNE_C(0x011F01), INSC_BINDU}, + {RUNE_C(0x011F02), RUNE_C(0x011F02), INSC_CONSONANT_PRECEDING_REPHA}, + {RUNE_C(0x011F03), RUNE_C(0x011F03), INSC_VISARGA}, + {RUNE_C(0x011F04), RUNE_C(0x011F10), INSC_VOWEL_INDEPENDENT}, + {RUNE_C(0x011F12), RUNE_C(0x011F33), INSC_CONSONANT}, + {RUNE_C(0x011F34), RUNE_C(0x011F3A), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011F3E), RUNE_C(0x011F40), INSC_VOWEL_DEPENDENT}, + {RUNE_C(0x011F41), RUNE_C(0x011F41), INSC_PURE_KILLER}, + {RUNE_C(0x011F42), RUNE_C(0x011F42), INSC_INVISIBLE_STACKER}, + {RUNE_C(0x011F50), RUNE_C(0x011F59), INSC_NUMBER}, +}; + +_MLIB_DEFINE_BSEARCH(enum uprop_insc, lookup, INSC_OTHER) + +enum uprop_insc +uprop_get_insc(rune ch) +{ + return ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup(ch); +} |