diff --git a/Dockerfile b/Dockerfile index 8b2e852..78d7613 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,9 @@ COPY tests ./tests/ COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt +ENV HF_DATASETS_CACHE /data/hf/datasets +RUN ./sscli admin init-db + RUN chmod +x ./entrypoint.sh #RUN chown -R www:www ${WORKROOT} . diff --git a/doc/rest_api.md b/doc/rest_api.md index b4712c3..94bf4bb 100644 --- a/doc/rest_api.md +++ b/doc/rest_api.md @@ -73,7 +73,7 @@ MIME type: `application/json` Content: JSON object with the following keys: -- `lang`: Language code as given by the `/languages` endpoint. +- `lang`: Language code as given by the `/languages` endpoint. - `text`: Input text to be transliterated. - `capitalize`: One of `first` (capitalize the first letter of the input), `all` (capitalize all words separated by spaces), or null (default: apply no diff --git a/entrypoint.sh b/entrypoint.sh index ccecb7f..3ba294f 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -9,11 +9,12 @@ else export FLASK_ENV="production" fi +# Preload Thai model. +python -c 'from esupar import load; load("th")' + host=${TXL_WEBAPP_HOST:-"0.0.0.0"} port=${TXL_WEBAPP_PORT:-"8000"} -./sscli admin init-db - if [ "${FLASK_ENV}" == "development" ]; then exec flask run -h $host -p $port else diff --git a/example.env b/example.env index 004c0d4..5e30eb8 100644 --- a/example.env +++ b/example.env @@ -2,4 +2,6 @@ FLASK_DEBUG=true TXL_DICTA_EP="changeme" TXL_FLASK_SECRET="changeme" TXL_LOGLEVEL="INFO" +TXL_EMAIL_FROM="me@loc.gov" +TXL_EMAIL_TO="me@loc.gov" LOSHN_KOYDESH_O2P_SRC="${PWD}/scriptshifter/hooks/yiddish_/loshn_koydesh_o2p_override.tsv" diff --git a/legacy/processNumbers.ts b/legacy/processNumbers.ts new file mode 100644 index 0000000..691e5ab --- /dev/null +++ b/legacy/processNumbers.ts @@ -0,0 +1,144 @@ +private processNumbers(pinyinString: string, tag: string, code: string): string { + let outputString = ""; + let useNumVersion = false; + //useNumVersion is set in specific subfields where we definitely want to treat numbers as numbers + if ((tag == "245" || tag == "830") && code == "n") { + useNumVersion = true; + } + + /* + * The input string is split, with any space or punctuation character (except for #) as the delimiter. + * The delimiters will be captured and included in the string of tokens. Only the even-numbered + * array elements are the true 'tokens', so the code for processing tokens is run only for even + * values of j. + */ + let tokens: string[] = pinyinString.split(new RegExp("([^\\P{P}#]|\\s)","u")); + let numTokenPattern = "^([A-Za-z]+)#([0-9]*)$"; + let numToken_re = new RegExp(numTokenPattern); + let n = tokens.length + //this.alert.info(tokens.join("|"),{autoClose: false}) + for (let i = 0; i < n; i++) { + let toki = tokens[i]; + if (toki.match(numToken_re)) { + /* + * When a numerical token (containing #) is reached, the inner loop consumes it and all consecutive numerical tokens + * found after it. Two versions of the string are maintained. The textVersion is the original pinyin (minus the + * # suffixes). In the numVersion, characters representing numbers are converted to Arabic numerals. When a + * non-numerical token (or end of string) is encountered, the string of numerical tokens is evaluated to determine + * which version should be used in the output string. The outer loop then continues where the inner loop left off. + */ + let textVersion = ""; + let numVersion = ""; + for (let j = i; j < n; j++) { + let tokj = tokens[j]; + /* a token without # (or the end of string) is reached */ + if ((j % 2 == 0 && !tokj.match(numToken_re)) || j == n - 1) { + //If this runs, then we are on the last token and it is numeric. Add text after # (if present) to numerical version + let m = tokj.match(numToken_re); + if (m) { + textVersion += m[1] + if (m[2] == "") { + numVersion += m[1]; + } else { + numVersion += m[2]; + } + } else if (j == n - 1) { + //if last token is non-numerical, just tack it on. + textVersion += tokj; + numVersion += tokj; + } else if (textVersion.length > 0 && numVersion.length > 0) { + //if not at end of string yet and token is non-numerical, remove the last delimiter that was appended + //(outer loop will pick up at this point) + textVersion = textVersion.substring(0, textVersion.length - 1); + numVersion = numVersion.substring(0, numVersion.length - 1); + } + //evaluate numerical string that has been constructed so far + //use num version for ordinals and date strings + if (numVersion.match(/^di [0-9]/i) || + numVersion.match(/[0-9] [0-9] [0-9] [0-9]/) || + numVersion.match(/[0-9]+ nian [0-9]+ yue/i) || + numVersion.match(/"[0-9]+ yue [0-9]+ ri/i) || + useNumVersion + ) { + useNumVersion = true; + /* + * At this point, string may contain literal translations of Chinese numerals + * Convert these to Arabic numerals (for example "2 10 7" = "27"). + */ + + while (numVersion.match(/[0-9] 10+/) || numVersion.match(/[1-9]0+ [1-9]/)) { + m = numVersion.match(/([0-9]+) ([1-9]0+)/); + if (m) { + let sum = Number(m[1]) * Number(m[2]); + numVersion = numVersion.replace(/[0-9]+ [1-9]0+/, String(sum)); + } else { + let mb = numVersion.match(/([1-9]0+) ([0-9]+)/); + if (mb) + { + let sumb = Number(mb[1]) + Number(mb[2]); + numVersion = numVersion.replace(/[1-9]0+ [0-9]+/, String(sumb)); + } + else + { + break; + } + } + } + + //A few other tweaks + numVersion = numVersion.replace(/([0-9]) ([0-9]) ([0-9]) ([0-9])/g, "$1$2$3$4"); + if ((tag == "245" || tag == "830") && code == "n") { + while (numVersion.match(/[0-9] [0-9]/)) { + numVersion = numVersion.replace(/([0-9]) ([0-9])/, "$1$2"); + } + } + } + if (useNumVersion) + { + outputString += numVersion; + } + else + { + outputString += textVersion; + } + //if the end of the string is not reached, backtrack to the delimiter after the last numerical token + //(i.e. two tokens ago) + if (j < n - 1) + { + i = j - 2; + } + else //we are at the end of the string, so we are done! + { + i = j; + } + break; + } + //this is run when we are not yet at the end of the string and have not yet reached a non-numerical token + //This is identical to the code that is run above when the last token is numeric. + if (j % 2 == 0) + { + let m = tokj.match(numToken_re); + textVersion += m[1]; + if (m[2]== "") + { + numVersion += m[1]; + } + else + { + numVersion += m[2]; + } + } + else //a delimiter, just tack it on. + { + textVersion += tokj; + numVersion += tokj; + } + } + } + else // the outer loop has encountered a non-numeric token or delimiter, just tack it on. + { + outputString += toki; + } + } + return outputString; + } diff --git a/requirements.txt b/requirements.txt index 4e85565..f5675ef 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ # Core application dependencies. aksharamukha>=2.2,<3 +esupar>=1.7.5 flask>=2.3,<3 flask-cors>=4.0,<5 python-dotenv>=1.0,<2 diff --git a/scriptshifter/__init__.py b/scriptshifter/__init__.py index 88903f2..d6adb57 100644 --- a/scriptshifter/__init__.py +++ b/scriptshifter/__init__.py @@ -15,7 +15,7 @@ This DB stores all the runtime transliteration data. """ DB_PATH = environ.get( - "DB_PATH", path.join(APP_ROOT, "data", "scriptshifter.db")) + "TXL_DB_PATH", path.join(APP_ROOT, "data", "scriptshifter.db")) """ SMTP server for sending email. For a dummy server that just echoes the @@ -50,8 +50,10 @@ if not env: logger.warn("No .env file found. Assuming env was passed externally.") -EMAIL_FROM = environ["TXL_EMAIL_FROM"] -EMAIL_TO = environ["TXL_EMAIL_TO"] +if SMTP_HOST or FEEDBACK_PATH: + EMAIL_FROM = environ["TXL_EMAIL_FROM"] + EMAIL_TO = environ["TXL_EMAIL_TO"] + try: SMTP_PORT = int(environ.get("TXL_SMTP_PORT", "1025")) except ValueError: diff --git a/scriptshifter/hooks/asian_tokenizer/__init__.py b/scriptshifter/hooks/asian_tokenizer/__init__.py new file mode 100644 index 0000000..1b396d5 --- /dev/null +++ b/scriptshifter/hooks/asian_tokenizer/__init__.py @@ -0,0 +1,8 @@ +from esupar import load + + +def s2r_tokenize(ctx, model): + nlp = load(model) + token_data = nlp(ctx.src) + + ctx._src = " ".join(token_data.values[1]) diff --git a/scriptshifter/hooks/chinese/__init__.py b/scriptshifter/hooks/chinese/__init__.py index ae670a3..fa125aa 100644 --- a/scriptshifter/hooks/chinese/__init__.py +++ b/scriptshifter/hooks/chinese/__init__.py @@ -127,3 +127,20 @@ def parse_numerals_pre_assembly(ctx): # Skip main transliterate function joining. return normalize_spacing_post_assembly(ctx) + + +def person_name_pre_assembly(ctx): + """ + Parse a personal name from a specific MARC field. + """ + if not ctx.options.get("marc_field") in ("100", "600", "700", "800"): + return + + ctx.dest_ls[0] = ctx.dest_ls[0].capitalize().strip() + ", " + ctx.dest_ls[1] = ctx.dest_ls[1].capitalize() + if len(ctx.dest_ls) > 2: + ctx.dest_ls[1] = ctx.dest_ls[1].strip() + if ctx.dest_ls[2][0] in "aeiou": + ctx.dest_ls[1] += "'" + ctx.dest_ls[1] += ctx.dest_ls[2] + del(ctx.dest_ls[2]) diff --git a/scriptshifter/tables/__init__.py b/scriptshifter/tables/__init__.py index a2098c9..ee6126d 100644 --- a/scriptshifter/tables/__init__.py +++ b/scriptshifter/tables/__init__.py @@ -1,5 +1,4 @@ import logging -import re import sqlite3 from collections import defaultdict @@ -7,6 +6,7 @@ from importlib import import_module from json import dumps as jdumps, loads as jloads from os import R_OK, access, environ, makedirs, path, unlink +from re import compile from shutil import move from yaml import load @@ -28,9 +28,6 @@ """ -TMP_DB_PATH = path.join( - path.dirname(DB_PATH), "~tmp." + path.basename(DB_PATH)) - DEFAULT_TABLE_DIR = path.join(path.dirname(path.realpath(__file__)), "data") # Can be overridden for tests. TABLE_DIR = environ.get("TXL_CONFIG_TABLE_DIR", DEFAULT_TABLE_DIR) @@ -143,7 +140,7 @@ def init_db(): This operation removes any preexisting database. - All tables in the index file (`./data/index.yml`) will be parsed + All tables in the index file (`./index.yml`) will be parsed (including inheritance rules) and loaded into the designated DB. This must be done only once at bootstrap. To update individual tables, @@ -151,7 +148,9 @@ def init_db(): """ # Create parent diretories if necessary. # If the DB already exists, it will be overwritten ONLY on success at - # hhis point. + # this point. + TMP_DB_PATH = path.join( + path.dirname(DB_PATH), "~tmp." + path.basename(DB_PATH)) if path.isfile(TMP_DB_PATH): # Remove previous temp file (possibly from failed attempt) unlink(TMP_DB_PATH) @@ -166,25 +165,17 @@ def init_db(): conn.executescript(fh.read()) # Populate tables. - with open(path.join(TABLE_DIR, "index.yml")) as fh: + with open(path.join(path.dirname(TABLE_DIR), "index.yml")) as fh: tlist = load(fh, Loader=Loader) try: with conn: for tname, tdata in tlist.items(): - res = conn.execute( - """INSERT INTO tbl_language ( - name, label, marc_code, description - ) VALUES (?, ?, ?, ?)""", - ( - tname, tdata.get("name"), tdata.get("marc_code"), - tdata.get("description"), - ) - ) - populate_table(conn, res.lastrowid, tname) + populate_table(conn, tname, tdata) # If the DB already exists, it will be overwritten ONLY on success at # thhis point. move(TMP_DB_PATH, DB_PATH) + logger.info(f"Database initialized at {DB_PATH}.") finally: conn.close() if path.isfile(TMP_DB_PATH): @@ -201,7 +192,27 @@ def get_connection(): return sqlite3.connect(DB_PATH) -def populate_table(conn, tid, tname): +def populate_table(conn, tname, tdata): + """ + Populate an individual table with data from a configuration. + + @param conn: SQLite connection. + + @param tname(str): Table name. + + @param tdata(dict): Table data. + """ + res = conn.execute( + """INSERT INTO tbl_language ( + name, label, marc_code, description + ) VALUES (?, ?, ?, ?)""", + ( + tname, tdata.get("name"), tdata.get("marc_code"), + tdata.get("description"), + ) + ) + tid = res.lastrowid + data = load_table(tname) flags = 0 if "script_to_roman" in data: @@ -247,20 +258,19 @@ def populate_table(conn, tid, tname): hook_data[1].__name__, jdumps(hook_data[2]))) # Ignore rules (R2S only). - for row in sec.get("ignore", []): - if isinstance(row, dict): - if "re" in row: - flags = FEAT_RE - rule = row["re"] - else: - flags = 0 - rule = row + for rule in sec.get("ignore", []): + conn.execute( + """INSERT INTO tbl_ignore ( + lang_id, rule, features + ) VALUES (?, ?, ?)""", + (tid, rule, 0)) + for rule in sec.get("ignore_ptn", []): conn.execute( """INSERT INTO tbl_ignore ( lang_id, rule, features ) VALUES (?, ?, ?)""", - (tid, rule, flags)) + (tid, rule, FEAT_RE)) # Double caps (S2R only). for rule in sec.get("double_cap", []): @@ -417,33 +427,22 @@ def load_table(tname): # Ignore regular expression patterns. # Patterns are evaluated in the order they are listed in the config. - ignore_ptn = [ - re.compile(ptn) - for ptn in tdata["roman_to_script"].get("ignore_ptn", [])] + ignore_ptn = tdata["roman_to_script"].get("ignore_ptn", []) for parent in parents: parent_tdata = load_table(parent) # NOTE: duplicates are not removed. - ignore_ptn = [ - re.compile(ptn) - for ptn in parent_tdata.get( - "roman_to_script", {}).get("ignore_ptn", []) - ] + ignore_ptn + ignore_ptn = parent_tdata.get( + "roman_to_script", {}).get("ignore_ptn", []) + ignore_ptn tdata["roman_to_script"]["ignore_ptn"] = ignore_ptn # Ignore plain strings. - ignore = { - Token(t) - for t in tdata["roman_to_script"].get("ignore", []) - } + ignore = set(tdata["roman_to_script"].get("ignore", [])) for parent in parents: parent_tdata = load_table(parent) # No overriding occurs with the ignore list, only de-duplication. - ignore |= { - Token(t) for t in parent_tdata.get( - "roman_to_script", {}).get("ignore", []) - } - tdata["roman_to_script"]["ignore"] = [ - t.content for t in sorted(ignore)] + ignore |= set(parent_tdata.get( + "roman_to_script", {}).get("ignore", [])) + tdata["roman_to_script"]["ignore"] = sorted(ignore) # Hooks. if "hooks" in tdata["roman_to_script"]: @@ -521,6 +520,10 @@ def get_language(lang): if len(s2r_hooks): data["script_to_roman"]["hooks"] = s2r_hooks + double_cap = get_lang_dcap(conn, lang_id) + if len(double_cap): + data["script_to_roman"]["double_cap"] = double_cap + # Roman to script map, ignore list, and hooks. if data["has_r2s"]: @@ -542,10 +545,6 @@ def get_language(lang): if len(opt_data): data["options"] = opt_data - double_cap = get_lang_dcap(conn, lang_id) - if len(double_cap): - data["double_cap"] = double_cap - conn.close() return data @@ -591,8 +590,9 @@ def get_lang_ignore(conn, lang_id): """SELECT rule, features FROM tbl_ignore WHERE lang_id = ?""", (lang_id,)) - # Features (regular expressions) not implemented yet. - return tuple(row[0] for row in qry) + return tuple( + compile(row[0]) if row[1] & FEAT_RE else row[0] + for row in qry) @cache @@ -652,7 +652,7 @@ def get_lang_hooks(conn, lang_id, t_dir): } ) - return hooks + return dict(hooks) def get_lang_dcap(conn, lang_id): diff --git a/scriptshifter/tables/data/_ignore_base.yml b/scriptshifter/tables/data/_ignore_base.yml index 4937783..da083ac 100644 --- a/scriptshifter/tables/data/_ignore_base.yml +++ b/scriptshifter/tables/data/_ignore_base.yml @@ -16,106 +16,21 @@ roman_to_script: # dedicated U+2160÷U+216F (uppercase Roman # numerals) and/or U+2170÷U+217F (lower case Roman # numerals) ranges to avoid this ambiguity. - # TODO implement regular expressions for ignore patterns. - #- re: "I{2,3}" - #- re: "I(V|X)" - #- re: "LI{,3}" - #- re: "LI?(V|X)" - #- re: "L(V|X{1,3})I{,3}" - #- re: "LX{1,3}I?V" - #- re: "LX{1,3}VI{,3}" - #- re: "(V|X{1,3})I{,3}" - #- re: "X{1,3}I{,3}" - #- re: "X{1,3}I(V|X)" - #- re: "X{1,3}VI{,3}" - - "II" - - "III" - - "IV" - - "IX" - - "LI" - - "LII" - - "LIII" - - "LIV" - - "LIX" - - "LV" - - "LVI" - - "LVII" - - "LVIII" - - "LX" - - "LXI" - - "LXII" - - "LXIII" - - "LXIV" - - "LXIX" - - "LXV" - - "LXVI" - - "LXVII" - - "LXVIII" - - "LXX" - - "LXXI" - - "LXXII" - - "LXXIII" - - "LXXIV" - - "LXXIX" - - "LXXV" - - "LXXVI" - - "LXXVII" - - "LXXVIII" - - "LXXX" - - "LXXXI" - - "LXXXII" - - "LXXXIII" - - "LXXXIV" - - "LXXXIX" - - "LXXXV" - - "LXXXVI" - - "LXXXVII" - - "LXXXVIII" - - "VI" - - "VII" - - "VIII" - - "XI" - - "XII" - - "XIII" - - "XIV" - - "XIX" - - "XL" - - "XLI" - - "XLII" - - "XLIII" - - "XLIV" - - "XLIX" - - "XLV" - - "XLVI" - - "XLVII" - - "XLVIII" - - "XV" - - "XVI" - - "XVII" - - "XVIII" - - "XX" - - "XXI" - - "XXII" - - "XXIII" - - "XXIV" - - "XXIX" - - "XXV" - - "XXVI" - - "XXVII" - - "XXVIII" - - "XXX" - - "XXXI" - - "XXXII" - - "XXXIII" - - "XXXIV" - - "XXXIX" - - "XXXV" - - "XXXVI" - - "XXXVII" - - "XXXVIII" - "and one other" - #- re: "and ([a-z0-9]+ )?others" - "et al." + ignore_ptn: + - "and ([a-z0-9]+ )?others" + - "I{2,3}" + - "I(V|X)" + - "LI{,3}" + - "LI?(V|X)" + - "L(V|X{1,3})I{,3}" + - "LX{1,3}I?V" + - "LX{1,3}VI{,3}" + - "(V|X{1,3})I{,3}" + - "X{1,3}I{,3}" + - "X{1,3}I(V|X)" + - "X{1,3}VI{,3}" script_to_roman: ignore: diff --git a/scriptshifter/tables/data/chinese.yml b/scriptshifter/tables/data/chinese.yml index a846713..dd668af 100644 --- a/scriptshifter/tables/data/chinese.yml +++ b/scriptshifter/tables/data/chinese.yml @@ -31,6 +31,8 @@ script_to_roman: pre_assembly: - - chinese.parse_numerals_pre_assembly + - + - chinese.person_name_pre_assembly map: "〇": "ling#0 " diff --git a/scriptshifter/tables/data/thai.yml b/scriptshifter/tables/data/thai.yml index 10b80f8..26a4229 100644 --- a/scriptshifter/tables/data/thai.yml +++ b/scriptshifter/tables/data/thai.yml @@ -3,43 +3,2668 @@ general: name: Thai case_sensitive: false -options: - - id: ThaiTranscription - label: Thai Orthography - description: พุทฺธ → พุทธะ - type: boolean - default: false - - id: ThaiSajjhayaOrthography - label: Sajjhāya orthography - description: พุทฺธ → พุท์ธ - type: boolean - default: false - - id: ThaiSajjhayawithA - label: Nativized sajjhaya - description: พุทฺธํ → พุท์ธัง - type: boolean - default: false - - id: ThaiNativeConsonants - label: Thai phonetic - description: พุทฺธตฺว → บุดธะต͜วะ - type: boolean - default: false - - id: ThaiVisargaSaraA - label: Sara a ะ as Visarga - description: พุทฺธ → พุทธะ - type: boolean - default: false - script_to_roman: hooks: - post_config: + post_normalize: - - - aksharamukha.romanizer.s2r_post_config - - src_script: "Thai" + - asian_tokenizer.s2r_tokenize + - model: "th" + map: + # COMMON SPECIAL CHARACTERS -roman_to_script: - hooks: - post_config: - - - - aksharamukha.romanizer.r2s_post_config - - dest_script: "Thai" + # Latin capital letter AE \u00C6 + # Latin small letter ae \u00E6 + # Latin capital letter OE \u0152 + # Latin small letter oe \u0153 + # Latin capital letter U-hook \u01AF + # Latin small letter u-hook \u01B0 + # Modifier letter turned comma (ayn) \u02BB + # combining macron \u0304 + # combining caron \u030C + # combining left half ring below (right cedilla) \u031C + + # TONE MARKS - REMOVED AT START OF CONVERSION + # THAI CHARACTER MAI EK (LOW TONE MARK) + "\u0E48": "" + # THAI CHARACTER MAI THO (FALLING TONE MARK) + "\u0E49": "" + # THAI CHARACTER MAI TRI (HIGH TONE MARK) + "\u0E4A": "" + # THAI CHARACTER MAI CHATTAWA (RISING TONE MARK) + "\u0E4B": "" + + # CONSONANT KO KAI WITH VOWELS + "\u0E01\u0E22\u0E27": "ka\u0304o" + "\u0E01\u0E24": "kr\u01B0" + "\u0E01\u0E24": "kri" + "\u0E01\u0E24": "k\u0153\u0304" + "\u0E01\u0E24\u0E32": "kr\u01B0\u0304" + "\u0E01\u0E26\u0032": "kl\u01B0\u0304" + "\u0E01\u0E26": "kl\u01B0" + "\u0E01\u0E27\u0E22": "ku\u0304ai" + "\u0E01\u0E27": "ku\u0304a" + "\u0E01\u0E2D\u0E22": "ko\u0304\u031Ci" + "\u0E01\u0E2D": "ko\u0304\u031C" + "\u0E01\u0E30": "ka" + "\u0E01\u0E31\u0E22": "kai" + "\u0E01\u0E31\u0E27\u0E30": "kua" + "\u0E01\u0E31\u0E27": "ku\u0304a" + "\u0E01\u0E31": "ka" + "\u0E01\u0E32\u0E22": "ka\u0304i" + "\u0E01\u0E32": "ka\u0304" + "\u0E01\u0E33": "kam" + "\u0E01\u0E34\u0E27": "kiu" + "\u0E01\u0E34": "ki" + "\u0E01\u0E35": "ki\u0304" + "\u0E01\u0E36": "k\u01B0" + "\u0E01\u0E37": "k\u01B0\u0304" + "\u0E01\u0E38\u0E22": "kui" + "\u0E01\u0E38": "ku" + "\u0E01\u0E39": "ku\u0304" + "\u0E01\u0E40\u0E22": "kao" + "\u0E01\u0E40\u0E30": "ke" + "\u0E01\u0E40\u0E47": "ke" + "\u0E01\u0E40\u0E27\u0E30": "ko\u031C" + "\u0E01\u0E40\u0E2D\u0E30": "k\u0153" + "\u0E01\u0E40\u0E2D": "k\u0153\u0304" + "\u0E01\u0E40\u0E34": "k\u0153\u0304" + "\u0E01\u0E40\u0E22": "k\u0153\u0304i" + "\u0E01\u0E40\u0E35\u0E22\u0E27": "ki\u0304eo" + "\u0E01\u0E40\u0E35\u0E22\u0E30": "kia" + "\u0E01\u0E40\u0E35\u0E22": "ki\u0304a" + "\u0E01\u0E40\u0E37\u0E2D\u0E22": "k\u01B0\u0304ai" + "\u0E01\u0E40\u0E37\u0E2D\u0E30": "k\u01B0a" + "\u0E01\u0E40\u0E37\u0E2D": "k\u01B0\u0304a" + "\u0E01\u0E40\u0E47\u0E27": "keo" + "\u0E01\u0E40\u0E27": "ke\u0304o" + "\u0E01\u0E40": "ke\u0304" + "\u0E01\u0E41\u0E27": "k\u00E6\u0304o" + "\u0E01\u0E41\u0E30": "k\u00E6" + "\u0E01\u0E41\u0E47": "k\u00E6" + "\u0E01\u0E41": "k\u00E6\u0304" + "\u0E01\u0E42\u0E22": "ko\u0304i" + "\u0E01\u0E42\u0E30": "ko" + "\u0E01\u0E42": "ko\u0304" + "\u0E01\u0E43": "kai" + "\u0E01\u0E44\u0E22": "kai" + "\u0E01\u0E44": "kai" + # FINAL CONSONANT KO KAI WITH NO VOWEL + "%\u0E01": "k" + "\u0E01": "ko" + + # CONSONANT KHO KHAI WITH VOWELS + "\u0E02\u0E22\u0E27": "kha\u0304o" + "\u0E02\u0E24": "khr\u01B0" + "\u0E02\u0E24": "khri" + "\u0E02\u0E24": "kh\u0153\u0304" + "\u0E02\u0E24\u0E32": "khr\u01B0\u0304" + "\u0E02\u0E26\u0032": "khl\u01B0\u0304" + "\u0E02\u0E26": "khl\u01B0" + "\u0E02\u0E27\u0E22": "khu\u0304ai" + "\u0E02\u0E27": "khu\u0304a" + "\u0E02\u0E2D\u0E22": "kho\u0304\u031Ci" + "\u0E02\u0E2D": "kho\u0304\u031C" + "\u0E02\u0E30": "kha" + "\u0E02\u0E31\u0E22": "khai" + "\u0E02\u0E31\u0E27\u0E30": "khua" + "\u0E02\u0E31\u0E27": "khu\u0304a" + "\u0E02\u0E31": "kha" + "\u0E02\u0E32\u0E22": "kha\u0304i" + "\u0E02\u0E32": "kha\u0304" + "\u0E02\u0E33": "kham" + "\u0E02\u0E34\u0E27": "khiu" + "\u0E02\u0E34": "khi" + "\u0E02\u0E35": "khi\u0304" + "\u0E02\u0E36": "kh\u01B0" + "\u0E02\u0E37": "kh\u01B0\u0304" + "\u0E02\u0E38\u0E22": "khui" + "\u0E02\u0E38": "khu" + "\u0E02\u0E39": "khu\u0304" + "\u0E02\u0E40\u0E22": "khao" + "\u0E02\u0E40\u0E30": "khe" + "\u0E02\u0E40\u0E47": "khe" + "\u0E02\u0E40\u0E27\u0E30": "kho\u031C" + "\u0E02\u0E40\u0E2D\u0E30": "kh\u0153" + "\u0E02\u0E40\u0E2D": "kh\u0153\u0304" + "\u0E02\u0E40\u0E34": "kh\u0153\u0304" + "\u0E02\u0E40\u0E22": "kh\u0153\u0304i" + "\u0E02\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" + "\u0E02\u0E40\u0E35\u0E22\u0E30": "khia" + "\u0E02\u0E40\u0E35\u0E22": "khi\u0304a" + "\u0E02\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" + "\u0E02\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" + "\u0E02\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" + "\u0E02\u0E40\u0E47\u0E27": "kheo" + "\u0E02\u0E40\u0E27": "khe\u0304o" + "\u0E02\u0E40": "khe\u0304" + "\u0E02\u0E41\u0E27": "kh\u00E6\u0304o" + "\u0E02\u0E41\u0E30": "kh\u00E6" + "\u0E02\u0E41\u0E47": "kh\u00E6" + "\u0E02\u0E41": "kh\u00E6\u0304" + "\u0E02\u0E42\u0E22": "kho\u0304i" + "\u0E02\u0E42\u0E30": "kho" + "\u0E02\u0E42": "kho\u0304" + "\u0E02\u0E43": "khai" + "\u0E02\u0E44\u0E22": "khai" + "\u0E02\u0E44": "khai" + # FINAL CONSONANT KHO KHAI WITH NO VOWEL + "%\u0E02": "k" + "\u0E02": "kho" + + # CONSONANT KHO KHUAT WITH VOWELS + "\u0E03\u0E22\u0E27": "kha\u0304o" + "\u0E03\u0E24": "khr\u01B0" + "\u0E03\u0E24": "khri" + "\u0E03\u0E24": "kh\u0153\u0304" + "\u0E03\u0E24\u0E32": "khr\u01B0\u0304" + "\u0E03\u0E26\u0032": "khl\u01B0\u0304" + "\u0E03\u0E26": "khl\u01B0" + "\u0E03\u0E27\u0E22": "khu\u0304ai" + "\u0E03\u0E27": "khu\u0304a" + "\u0E03\u0E2D\u0E22": "kho\u0304\u031Ci" + "\u0E03\u0E2D": "kho\u0304\u031C" + "\u0E03\u0E30": "kha" + "\u0E03\u0E31\u0E22": "khai" + "\u0E03\u0E31\u0E27\u0E30": "khua" + "\u0E03\u0E31\u0E27": "khu\u0304a" + "\u0E03\u0E31": "kha" + "\u0E03\u0E32\u0E22": "kha\u0304i" + "\u0E03\u0E32": "kha\u0304" + "\u0E03\u0E33": "kham" + "\u0E03\u0E34\u0E27": "khiu" + "\u0E03\u0E34": "khi" + "\u0E03\u0E35": "khi\u0304" + "\u0E03\u0E36": "kh\u01B0" + "\u0E03\u0E37": "kh\u01B0\u0304" + "\u0E03\u0E38\u0E22": "khui" + "\u0E03\u0E38": "khu" + "\u0E03\u0E39": "khu\u0304" + "\u0E03\u0E40\u0E22": "khao" + "\u0E03\u0E40\u0E30": "khe" + "\u0E03\u0E40\u0E47": "khe" + "\u0E03\u0E40\u0E27\u0E30": "kho\u031C" + "\u0E03\u0E40\u0E2D\u0E30": "kh\u0153" + "\u0E03\u0E40\u0E2D": "kh\u0153\u0304" + "\u0E03\u0E40\u0E34": "kh\u0153\u0304" + "\u0E03\u0E40\u0E22": "kh\u0153\u0304i" + "\u0E03\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" + "\u0E03\u0E40\u0E35\u0E22\u0E30": "khia" + "\u0E03\u0E40\u0E35\u0E22": "khi\u0304a" + "\u0E03\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" + "\u0E03\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" + "\u0E03\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" + "\u0E03\u0E40\u0E47\u0E27": "kheo" + "\u0E03\u0E40\u0E27": "khe\u0304o" + "\u0E03\u0E40": "khe\u0304" + "\u0E03\u0E41\u0E27": "kh\u00E6\u0304o" + "\u0E03\u0E41\u0E30": "kh\u00E6" + "\u0E03\u0E41\u0E47": "kh\u00E6" + "\u0E03\u0E41": "kh\u00E6\u0304" + "\u0E03\u0E42\u0E22": "kho\u0304i" + "\u0E03\u0E42\u0E30": "kho" + "\u0E03\u0E42": "kho\u0304" + "\u0E03\u0E43": "khai" + "\u0E03\u0E44\u0E22": "khai" + "\u0E03\u0E44": "khai" + # FINAL CONSONANT KHO KHUAT WITH NO VOWEL + "%\u0E03": "k" + "\u0E03": "kho" + + # CONSONANT KHO KHWAI WITH VOWELS + "\u0E04\u0E22\u0E27": "kha\u0304o" + "\u0E04\u0E24": "khr\u01B0" + "\u0E04\u0E24": "khri" + "\u0E04\u0E24": "kh\u0153\u0304" + "\u0E04\u0E24\u0E32": "khr\u01B0\u0304" + "\u0E04\u0E26\u0032": "khl\u01B0\u0304" + "\u0E04\u0E26": "khl\u01B0" + "\u0E04\u0E27\u0E22": "khu\u0304ai" + "\u0E04\u0E27": "khu\u0304a" + "\u0E04\u0E2D\u0E22": "kho\u0304\u031Ci" + "\u0E04\u0E2D": "kho\u0304\u031C" + "\u0E04\u0E30": "kha" + "\u0E04\u0E31\u0E22": "khai" + "\u0E04\u0E31\u0E27\u0E30": "khua" + "\u0E04\u0E31\u0E27": "khu\u0304a" + "\u0E04\u0E31": "kha" + "\u0E04\u0E32\u0E22": "kha\u0304i" + "\u0E04\u0E32": "kha\u0304" + "\u0E04\u0E33": "kham" + "\u0E04\u0E34\u0E27": "khiu" + "\u0E04\u0E34": "khi" + "\u0E04\u0E35": "khi\u0304" + "\u0E04\u0E36": "kh\u01B0" + "\u0E04\u0E37": "kh\u01B0\u0304" + "\u0E04\u0E38\u0E22": "khui" + "\u0E04\u0E38": "khu" + "\u0E04\u0E39": "khu\u0304" + "\u0E04\u0E40\u0E22": "khao" + "\u0E04\u0E40\u0E30": "khe" + "\u0E04\u0E40\u0E47": "khe" + "\u0E04\u0E40\u0E27\u0E30": "kho\u031C" + "\u0E04\u0E40\u0E2D\u0E30": "kh\u0153" + "\u0E04\u0E40\u0E2D": "kh\u0153\u0304" + "\u0E04\u0E40\u0E34": "kh\u0153\u0304" + "\u0E04\u0E40\u0E22": "kh\u0153\u0304i" + "\u0E04\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" + "\u0E04\u0E40\u0E35\u0E22\u0E30": "khia" + "\u0E04\u0E40\u0E35\u0E22": "khi\u0304a" + "\u0E04\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" + "\u0E04\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" + "\u0E04\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" + "\u0E04\u0E40\u0E47\u0E27": "kheo" + "\u0E04\u0E40\u0E27": "khe\u0304o" + "\u0E04\u0E40": "khe\u0304" + "\u0E04\u0E41\u0E27": "kh\u00E6\u0304o" + "\u0E04\u0E41\u0E30": "kh\u00E6" + "\u0E04\u0E41\u0E47": "kh\u00E6" + "\u0E04\u0E41": "kh\u00E6\u0304" + "\u0E04\u0E42\u0E22": "kho\u0304i" + "\u0E04\u0E42\u0E30": "kho" + "\u0E04\u0E42": "kho\u0304" + "\u0E04\u0E43": "khai" + "\u0E04\u0E44\u0E22": "khai" + "\u0E04\u0E44": "khai" + # FINAL CONSONANT KHO KHWAI WITH NO VOWEL + "%\u0E04": "k" + "\u0E04": "kho" + + # CONSONANT KHO KHON WITH VOWELS + "\u0E05\u0E22\u0E27": "kha\u0304o" + "\u0E05\u0E24": "khr\u01B0" + "\u0E05\u0E24": "khri" + "\u0E05\u0E24": "kh\u0153\u0304" + "\u0E05\u0E24\u0E32": "khr\u01B0\u0304" + "\u0E05\u0E26\u0032": "khl\u01B0\u0304" + "\u0E05\u0E26": "khl\u01B0" + "\u0E05\u0E27\u0E22": "khu\u0304ai" + "\u0E05\u0E27": "khu\u0304a" + "\u0E05\u0E2D\u0E22": "kho\u0304\u031Ci" + "\u0E05\u0E2D": "kho\u0304\u031C" + "\u0E05\u0E30": "kha" + "\u0E05\u0E31\u0E22": "khai" + "\u0E05\u0E31\u0E27\u0E30": "khua" + "\u0E05\u0E31\u0E27": "khu\u0304a" + "\u0E05\u0E31": "kha" + "\u0E05\u0E32\u0E22": "kha\u0304i" + "\u0E05\u0E32": "kha\u0304" + "\u0E05\u0E33": "kham" + "\u0E05\u0E34\u0E27": "khiu" + "\u0E05\u0E34": "khi" + "\u0E05\u0E35": "khi\u0304" + "\u0E05\u0E36": "kh\u01B0" + "\u0E05\u0E37": "kh\u01B0\u0304" + "\u0E05\u0E38\u0E22": "khui" + "\u0E05\u0E38": "khu" + "\u0E05\u0E39": "khu\u0304" + "\u0E05\u0E40\u0E22": "khao" + "\u0E05\u0E40\u0E30": "khe" + "\u0E05\u0E40\u0E47": "khe" + "\u0E05\u0E40\u0E27\u0E30": "kho\u031C" + "\u0E05\u0E40\u0E2D\u0E30": "kh\u0153" + "\u0E05\u0E40\u0E2D": "kh\u0153\u0304" + "\u0E05\u0E40\u0E34": "kh\u0153\u0304" + "\u0E05\u0E40\u0E22": "kh\u0153\u0304i" + "\u0E05\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" + "\u0E05\u0E40\u0E35\u0E22\u0E30": "khia" + "\u0E05\u0E40\u0E35\u0E22": "khi\u0304a" + "\u0E05\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" + "\u0E05\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" + "\u0E05\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" + "\u0E05\u0E40\u0E47\u0E27": "kheo" + "\u0E05\u0E40\u0E27": "khe\u0304o" + "\u0E05\u0E40": "khe\u0304" + "\u0E05\u0E41\u0E27": "kh\u00E6\u0304o" + "\u0E05\u0E41\u0E30": "kh\u00E6" + "\u0E05\u0E41\u0E47": "kh\u00E6" + "\u0E05\u0E41": "kh\u00E6\u0304" + "\u0E05\u0E42\u0E22": "kho\u0304i" + "\u0E05\u0E42\u0E30": "kho" + "\u0E05\u0E42": "kho\u0304" + "\u0E05\u0E43": "khai" + "\u0E05\u0E44\u0E22": "khai" + "\u0E05\u0E44": "khai" + # FINAL CONSONANT KHO KHON WITH NO VOWEL + "%\u0E05": "k" + "\u0E05": "kho" + + # CONSONANT KHO RAKHANG WITH VOWELS + "\u0E06\u0E22\u0E27": "kha\u0304o" + "\u0E06\u0E24": "khr\u01B0" + "\u0E06\u0E24": "khri" + "\u0E06\u0E24": "kh\u0153\u0304" + "\u0E06\u0E24\u0E32": "khr\u01B0\u0304" + "\u0E06\u0E26\u0032": "khl\u01B0\u0304" + "\u0E06\u0E26": "khl\u01B0" + "\u0E06\u0E27\u0E22": "khu\u0304ai" + "\u0E06\u0E27": "khu\u0304a" + "\u0E06\u0E2D\u0E22": "kho\u0304\u031Ci" + "\u0E06\u0E2D": "kho\u0304\u031C" + "\u0E06\u0E30": "kha" + "\u0E06\u0E31\u0E22": "khai" + "\u0E06\u0E31\u0E27\u0E30": "khua" + "\u0E06\u0E31\u0E27": "khu\u0304a" + "\u0E06\u0E31": "kha" + "\u0E06\u0E32\u0E22": "kha\u0304i" + "\u0E06\u0E32": "kha\u0304" + "\u0E06\u0E33": "kham" + "\u0E06\u0E34\u0E27": "khiu" + "\u0E06\u0E34": "khi" + "\u0E06\u0E35": "khi\u0304" + "\u0E06\u0E36": "kh\u01B0" + "\u0E06\u0E37": "kh\u01B0\u0304" + "\u0E06\u0E38\u0E22": "khui" + "\u0E06\u0E38": "khu" + "\u0E06\u0E39": "khu\u0304" + "\u0E06\u0E40\u0E22": "khao" + "\u0E06\u0E40\u0E30": "khe" + "\u0E06\u0E40\u0E47": "khe" + "\u0E06\u0E40\u0E27\u0E30": "kho\u031C" + "\u0E06\u0E40\u0E2D\u0E30": "kh\u0153" + "\u0E06\u0E40\u0E2D": "kh\u0153\u0304" + "\u0E06\u0E40\u0E34": "kh\u0153\u0304" + "\u0E06\u0E40\u0E22": "kh\u0153\u0304i" + "\u0E06\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" + "\u0E06\u0E40\u0E35\u0E22\u0E30": "khia" + "\u0E06\u0E40\u0E35\u0E22": "khi\u0304a" + "\u0E06\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" + "\u0E06\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" + "\u0E06\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" + "\u0E06\u0E40\u0E47\u0E27": "kheo" + "\u0E06\u0E40\u0E27": "khe\u0304o" + "\u0E06\u0E40": "khe\u0304" + "\u0E06\u0E41\u0E27": "kh\u00E6\u0304o" + "\u0E06\u0E41\u0E30": "kh\u00E6" + "\u0E06\u0E41\u0E47": "kh\u00E6" + "\u0E06\u0E41": "kh\u00E6\u0304" + "\u0E06\u0E42\u0E22": "kho\u0304i" + "\u0E06\u0E42\u0E30": "kho" + "\u0E06\u0E42": "kho\u0304" + "\u0E06\u0E43": "khai" + "\u0E06\u0E44\u0E22": "khai" + "\u0E06\u0E44": "khai" + # FINAL CONSONANT KHO RAKHANG WITH NO VOWEL + "%\u0E06": "k" + "\u0E06": "kho" + + # CONSONANT NGO NGU WITH VOWELS + "\u0E07\u0E22\u0E27": "nga\u0304o" + "\u0E07\u0E24": "ngr\u01B0" + "\u0E07\u0E24": "ngri" + "\u0E07\u0E24": "ng\u0153\u0304" + "\u0E07\u0E24\u0E32": "ngr\u01B0\u0304" + "\u0E07\u0E26\u0032": "ngl\u01B0\u0304" + "\u0E07\u0E26": "ngl\u01B0" + "\u0E07\u0E27\u0E22": "ngu\u0304ai" + "\u0E07\u0E27": "ngu\u0304a" + "\u0E07\u0E2D\u0E22": "ngo\u0304\u031Ci" + "\u0E07\u0E2D": "ngo\u0304\u031C" + "\u0E07\u0E30": "nga" + "\u0E07\u0E31\u0E22": "ngai" + "\u0E07\u0E31\u0E27\u0E30": "ngua" + "\u0E07\u0E31\u0E27": "ngu\u0304a" + "\u0E07\u0E31": "nga" + "\u0E07\u0E32\u0E22": "nga\u0304i" + "\u0E07\u0E32": "nga\u0304" + "\u0E07\u0E33": "ngam" + "\u0E07\u0E34\u0E27": "ngiu" + "\u0E07\u0E34": "ngi" + "\u0E07\u0E35": "ngi\u0304" + "\u0E07\u0E36": "ng\u01B0" + "\u0E07\u0E37": "ng\u01B0\u0304" + "\u0E07\u0E38\u0E22": "ngui" + "\u0E07\u0E38": "ngu" + "\u0E07\u0E39": "ngu\u0304" + "\u0E07\u0E40\u0E22": "ngao" + "\u0E07\u0E40\u0E30": "nge" + "\u0E07\u0E40\u0E47": "nge" + "\u0E07\u0E40\u0E27\u0E30": "ngo\u031C" + "\u0E07\u0E40\u0E2D\u0E30": "ng\u0153" + "\u0E07\u0E40\u0E2D": "ng\u0153\u0304" + "\u0E07\u0E40\u0E34": "ng\u0153\u0304" + "\u0E07\u0E40\u0E22": "ng\u0153\u0304i" + "\u0E07\u0E40\u0E35\u0E22\u0E27": "ngi\u0304eo" + "\u0E07\u0E40\u0E35\u0E22\u0E30": "ngia" + "\u0E07\u0E40\u0E35\u0E22": "ngi\u0304a" + "\u0E07\u0E40\u0E37\u0E2D\u0E22": "ng\u01B0\u0304ai" + "\u0E07\u0E40\u0E37\u0E2D\u0E30": "ng\u01B0a" + "\u0E07\u0E40\u0E37\u0E2D": "ng\u01B0\u0304a" + "\u0E07\u0E40\u0E47\u0E27": "ngeo" + "\u0E07\u0E40\u0E27": "nge\u0304o" + "\u0E07\u0E40": "nge\u0304" + "\u0E07\u0E41\u0E27": "ng\u00E6\u0304o" + "\u0E07\u0E41\u0E30": "ng\u00E6" + "\u0E07\u0E41\u0E47": "ng\u00E6" + "\u0E07\u0E41": "ng\u00E6\u0304" + "\u0E07\u0E42\u0E22": "ngo\u0304i" + "\u0E07\u0E42\u0E30": "ngo" + "\u0E07\u0E42": "ngo\u0304" + "\u0E07\u0E43": "ngai" + "\u0E07\u0E44\u0E22": "ngai" + "\u0E07\u0E44": "ngai" + # FINAL CONSONANT NGO NGU WITH NO VOWEL + "%\u0E07": "ng" + "\u0E07": "ngo" + + # CONSONANT CHO CHAN WITH VOWELS + "\u0E08\u0E22\u0E27": "c\u030Cha\u0304o" + "\u0E08\u0E24": "c\u030Chr\u01B0" + "\u0E08\u0E24": "c\u030Chri" + "\u0E08\u0E24": "c\u030Ch\u0153\u0304" + "\u0E08\u0E24\u0E32": "c\u030Chr\u01B0\u0304" + "\u0E08\u0E26\u0032": "c\u030Chl\u01B0\u0304" + "\u0E08\u0E26": "c\u030Chl\u01B0" + "\u0E08\u0E27\u0E22": "c\u030Chu\u0304ai" + "\u0E08\u0E27": "c\u030Chu\u0304a" + "\u0E08\u0E2D\u0E22": "c\u030Cho\u0304\u031Ci" + "\u0E08\u0E2D": "c\u030Cho\u0304\u031C" + "\u0E08\u0E30": "c\u030Cha" + "\u0E08\u0E31\u0E22": "c\u030Chai" + "\u0E08\u0E31\u0E27\u0E30": "c\u030Chua" + "\u0E08\u0E31\u0E27": "c\u030Chu\u0304a" + "\u0E08\u0E31": "c\u030Cha" + "\u0E08\u0E32\u0E22": "c\u030Cha\u0304i" + "\u0E08\u0E32": "c\u030Cha\u0304" + "\u0E08\u0E33": "c\u030Cham" + "\u0E08\u0E34\u0E27": "c\u030Chiu" + "\u0E08\u0E34": "c\u030Chi" + "\u0E08\u0E35": "c\u030Chi\u0304" + "\u0E08\u0E36": "c\u030Ch\u01B0" + "\u0E08\u0E37": "c\u030Ch\u01B0\u0304" + "\u0E08\u0E38\u0E22": "c\u030Chui" + "\u0E08\u0E38": "c\u030Chu" + "\u0E08\u0E39": "c\u030Chu\u0304" + "\u0E08\u0E40\u0E22": "c\u030Chao" + "\u0E08\u0E40\u0E30": "c\u030Che" + "\u0E08\u0E40\u0E47": "c\u030Che" + "\u0E08\u0E40\u0E27\u0E30": "c\u030Cho\u031C" + "\u0E08\u0E40\u0E2D\u0E30": "c\u030Ch\u0153" + "\u0E08\u0E40\u0E2D": "c\u030Ch\u0153\u0304" + "\u0E08\u0E40\u0E34": "c\u030Ch\u0153\u0304" + "\u0E08\u0E40\u0E22": "c\u030Ch\u0153\u0304i" + "\u0E08\u0E40\u0E35\u0E22\u0E27": "c\u030Chi\u0304eo" + "\u0E08\u0E40\u0E35\u0E22\u0E30": "c\u030Chia" + "\u0E08\u0E40\u0E35\u0E22": "c\u030Chi\u0304a" + "\u0E08\u0E40\u0E37\u0E2D\u0E22": "c\u030Ch\u01B0\u0304ai" + "\u0E08\u0E40\u0E37\u0E2D\u0E30": "c\u030Ch\u01B0a" + "\u0E08\u0E40\u0E37\u0E2D": "c\u030Ch\u01B0\u0304a" + "\u0E08\u0E40\u0E47\u0E27": "c\u030Cheo" + "\u0E08\u0E40\u0E27": "c\u030Che\u0304o" + "\u0E08\u0E40": "c\u030Che\u0304" + "\u0E08\u0E41\u0E27": "c\u030Ch\u00E6\u0304o" + "\u0E08\u0E41\u0E30": "c\u030Ch\u00E6" + "\u0E08\u0E41\u0E47": "c\u030Ch\u00E6" + "\u0E08\u0E41": "c\u030Ch\u00E6\u0304" + "\u0E08\u0E42\u0E22": "c\u030Cho\u0304i" + "\u0E08\u0E42\u0E30": "c\u030Cho" + "\u0E08\u0E42": "c\u030Cho\u0304" + "\u0E08\u0E43": "c\u030Chai" + "\u0E08\u0E44\u0E22": "c\u030Chai" + "\u0E08\u0E44": "c\u030Chai" + # FINAL CONSONANT CHO CHAN WITH NO VOWEL + "%\u0E08": "t" + "\u0E08": "c\u030Cho" + + # CONSONANT CHO CHING WITH VOWELS + "\u0E09\u0E22\u0E27": "cha\u0304o" + "\u0E09\u0E24": "chr\u01B0" + "\u0E09\u0E24": "chri" + "\u0E09\u0E24": "ch\u0153\u0304" + "\u0E09\u0E24\u0E32": "chr\u01B0\u0304" + "\u0E09\u0E26\u0032": "chl\u01B0\u0304" + "\u0E09\u0E26": "chl\u01B0" + "\u0E09\u0E27\u0E22": "chu\u0304ai" + "\u0E09\u0E27": "chu\u0304a" + "\u0E09\u0E2D\u0E22": "cho\u0304\u031Ci" + "\u0E09\u0E2D": "cho\u0304\u031C" + "\u0E09\u0E30": "cha" + "\u0E09\u0E31\u0E22": "chai" + "\u0E09\u0E31\u0E27\u0E30": "chua" + "\u0E09\u0E31\u0E27": "chu\u0304a" + "\u0E09\u0E31": "cha" + "\u0E09\u0E32\u0E22": "cha\u0304i" + "\u0E09\u0E32": "cha\u0304" + "\u0E09\u0E33": "cham" + "\u0E09\u0E34\u0E27": "chiu" + "\u0E09\u0E34": "chi" + "\u0E09\u0E35": "chi\u0304" + "\u0E09\u0E36": "ch\u01B0" + "\u0E09\u0E37": "ch\u01B0\u0304" + "\u0E09\u0E38\u0E22": "chui" + "\u0E09\u0E38": "chu" + "\u0E09\u0E39": "chu\u0304" + "\u0E09\u0E40\u0E22": "chao" + "\u0E09\u0E40\u0E30": "che" + "\u0E09\u0E40\u0E47": "che" + "\u0E09\u0E40\u0E27\u0E30": "cho\u031C" + "\u0E09\u0E40\u0E2D\u0E30": "ch\u0153" + "\u0E09\u0E40\u0E2D": "ch\u0153\u0304" + "\u0E09\u0E40\u0E34": "ch\u0153\u0304" + "\u0E09\u0E40\u0E22": "ch\u0153\u0304i" + "\u0E09\u0E40\u0E35\u0E22\u0E27": "chi\u0304eo" + "\u0E09\u0E40\u0E35\u0E22\u0E30": "chia" + "\u0E09\u0E40\u0E35\u0E22": "chi\u0304a" + "\u0E09\u0E40\u0E37\u0E2D\u0E22": "ch\u01B0\u0304ai" + "\u0E09\u0E40\u0E37\u0E2D\u0E30": "ch\u01B0a" + "\u0E09\u0E40\u0E37\u0E2D": "ch\u01B0\u0304a" + "\u0E09\u0E40\u0E47\u0E27": "cheo" + "\u0E09\u0E40\u0E27": "che\u0304o" + "\u0E09\u0E40": "che\u0304" + "\u0E09\u0E41\u0E27": "ch\u00E6\u0304o" + "\u0E09\u0E41\u0E30": "ch\u00E6" + "\u0E09\u0E41\u0E47": "ch\u00E6" + "\u0E09\u0E41": "ch\u00E6\u0304" + "\u0E09\u0E42\u0E22": "cho\u0304i" + "\u0E09\u0E42\u0E30": "cho" + "\u0E09\u0E42": "cho\u0304" + "\u0E09\u0E43": "chai" + "\u0E09\u0E44\u0E22": "chai" + "\u0E09\u0E44": "chai" + # FINAL CONSONANT CHO CHING WITH NO VOWEL + "%\u0E09": "t" + "\u0E09": "cho" + + # CONSONANT CHO CHANG WITH VOWELS + "\u0E0A\u0E22\u0E27": "cha\u0304o" + "\u0E0A\u0E24": "chr\u01B0" + "\u0E0A\u0E24": "chri" + "\u0E0A\u0E24": "ch\u0153\u0304" + "\u0E0A\u0E24\u0E32": "chr\u01B0\u0304" + "\u0E0A\u0E26\u0032": "chl\u01B0\u0304" + "\u0E0A\u0E26": "chl\u01B0" + "\u0E0A\u0E27\u0E22": "chu\u0304ai" + "\u0E0A\u0E27": "chu\u0304a" + "\u0E0A\u0E2D\u0E22": "cho\u0304\u031Ci" + "\u0E0A\u0E2D": "cho\u0304\u031C" + "\u0E0A\u0E30": "cha" + "\u0E0A\u0E31\u0E22": "chai" + "\u0E0A\u0E31\u0E27\u0E30": "chua" + "\u0E0A\u0E31\u0E27": "chu\u0304a" + "\u0E0A\u0E31": "cha" + "\u0E0A\u0E32\u0E22": "cha\u0304i" + "\u0E0A\u0E32": "cha\u0304" + "\u0E0A\u0E33": "cham" + "\u0E0A\u0E34\u0E27": "chiu" + "\u0E0A\u0E34": "chi" + "\u0E0A\u0E35": "chi\u0304" + "\u0E0A\u0E36": "ch\u01B0" + "\u0E0A\u0E37": "ch\u01B0\u0304" + "\u0E0A\u0E38\u0E22": "chui" + "\u0E0A\u0E38": "chu" + "\u0E0A\u0E39": "chu\u0304" + "\u0E0A\u0E40\u0E22": "chao" + "\u0E0A\u0E40\u0E30": "che" + "\u0E0A\u0E40\u0E47": "che" + "\u0E0A\u0E40\u0E27\u0E30": "cho\u031C" + "\u0E0A\u0E40\u0E2D\u0E30": "ch\u0153" + "\u0E0A\u0E40\u0E2D": "ch\u0153\u0304" + "\u0E0A\u0E40\u0E34": "ch\u0153\u0304" + "\u0E0A\u0E40\u0E22": "ch\u0153\u0304i" + "\u0E0A\u0E40\u0E35\u0E22\u0E27": "chi\u0304eo" + "\u0E0A\u0E40\u0E35\u0E22\u0E30": "chia" + "\u0E0A\u0E40\u0E35\u0E22": "chi\u0304a" + "\u0E0A\u0E40\u0E37\u0E2D\u0E22": "ch\u01B0\u0304ai" + "\u0E0A\u0E40\u0E37\u0E2D\u0E30": "ch\u01B0a" + "\u0E0A\u0E40\u0E37\u0E2D": "ch\u01B0\u0304a" + "\u0E0A\u0E40\u0E47\u0E27": "cheo" + "\u0E0A\u0E40\u0E27": "che\u0304o" + "\u0E0A\u0E40": "che\u0304" + "\u0E0A\u0E41\u0E27": "ch\u00E6\u0304o" + "\u0E0A\u0E41\u0E30": "ch\u00E6" + "\u0E0A\u0E41\u0E47": "ch\u00E6" + "\u0E0A\u0E41": "ch\u00E6\u0304" + "\u0E0A\u0E42\u0E22": "cho\u0304i" + "\u0E0A\u0E42\u0E30": "cho" + "\u0E0A\u0E42": "cho\u0304" + "\u0E0A\u0E43": "chai" + "\u0E0A\u0E44\u0E22": "chai" + "\u0E0A\u0E44": "chai" + # FINAL CONSONANT CHO CHANG WITH NO VOWEL + "%\u0E0A": "t" + "\u0E0A": "cho" + + # CONSONANT SO SO WITH VOWELS + "\u0E0B\u0E22\u0E27": "sa\u0304o" + "\u0E0B\u0E24": "sr\u01B0" + "\u0E0B\u0E24": "sri" + "\u0E0B\u0E24": "s\u0153\u0304" + "\u0E0B\u0E24\u0E32": "sr\u01B0\u0304" + "\u0E0B\u0E26\u0032": "sl\u01B0\u0304" + "\u0E0B\u0E26": "sl\u01B0" + "\u0E0B\u0E27\u0E22": "su\u0304ai" + "\u0E0B\u0E27": "su\u0304a" + "\u0E0B\u0E2D\u0E22": "so\u0304\u031Ci" + "\u0E0B\u0E2D": "so\u0304\u031C" + "\u0E0B\u0E30": "sa" + "\u0E0B\u0E31\u0E22": "sai" + "\u0E0B\u0E31\u0E27\u0E30": "sua" + "\u0E0B\u0E31\u0E27": "su\u0304a" + "\u0E0B\u0E31": "sa" + "\u0E0B\u0E32\u0E22": "sa\u0304i" + "\u0E0B\u0E32": "sa\u0304" + "\u0E0B\u0E33": "sam" + "\u0E0B\u0E34\u0E27": "siu" + "\u0E0B\u0E34": "si" + "\u0E0B\u0E35": "si\u0304" + "\u0E0B\u0E36": "s\u01B0" + "\u0E0B\u0E37": "s\u01B0\u0304" + "\u0E0B\u0E38\u0E22": "sui" + "\u0E0B\u0E38": "su" + "\u0E0B\u0E39": "su\u0304" + "\u0E0B\u0E40\u0E22": "sao" + "\u0E0B\u0E40\u0E30": "se" + "\u0E0B\u0E40\u0E47": "se" + "\u0E0B\u0E40\u0E27\u0E30": "so\u031C" + "\u0E0B\u0E40\u0E2D\u0E30": "s\u0153" + "\u0E0B\u0E40\u0E2D": "s\u0153\u0304" + "\u0E0B\u0E40\u0E34": "s\u0153\u0304" + "\u0E0B\u0E40\u0E22": "s\u0153\u0304i" + "\u0E0B\u0E40\u0E35\u0E22\u0E27": "si\u0304eo" + "\u0E0B\u0E40\u0E35\u0E22\u0E30": "sia" + "\u0E0B\u0E40\u0E35\u0E22": "si\u0304a" + "\u0E0B\u0E40\u0E37\u0E2D\u0E22": "s\u01B0\u0304ai" + "\u0E0B\u0E40\u0E37\u0E2D\u0E30": "s\u01B0a" + "\u0E0B\u0E40\u0E37\u0E2D": "s\u01B0\u0304a" + "\u0E0B\u0E40\u0E47\u0E27": "seo" + "\u0E0B\u0E40\u0E27": "se\u0304o" + "\u0E0B\u0E40": "se\u0304" + "\u0E0B\u0E41\u0E27": "s\u00E6\u0304o" + "\u0E0B\u0E41\u0E30": "s\u00E6" + "\u0E0B\u0E41\u0E47": "s\u00E6" + "\u0E0B\u0E41": "s\u00E6\u0304" + "\u0E0B\u0E42\u0E22": "so\u0304i" + "\u0E0B\u0E42\u0E30": "so" + "\u0E0B\u0E42": "so\u0304" + "\u0E0B\u0E43": "sai" + "\u0E0B\u0E44\u0E22": "sai" + "\u0E0B\u0E44": "sai" + # FINAL CONSONANT SO SO WITH NO VOWEL + "%\u0E0B": "t" + "\u0E0B": "so" + + # CONSONANT CHO CHOE WITH VOWELS + "\u0E0C\u0E22\u0E27": "cha\u0304o" + "\u0E0C\u0E24": "chr\u01B0" + "\u0E0C\u0E24": "chri" + "\u0E0C\u0E24": "ch\u0153\u0304" + "\u0E0C\u0E24\u0E32": "chr\u01B0\u0304" + "\u0E0C\u0E26\u0032": "chl\u01B0\u0304" + "\u0E0C\u0E26": "chl\u01B0" + "\u0E0C\u0E27\u0E22": "chu\u0304ai" + "\u0E0C\u0E27": "chu\u0304a" + "\u0E0C\u0E2D\u0E22": "cho\u0304\u031Ci" + "\u0E0C\u0E2D": "cho\u0304\u031C" + "\u0E0C\u0E30": "cha" + "\u0E0C\u0E31\u0E22": "chai" + "\u0E0C\u0E31\u0E27\u0E30": "chua" + "\u0E0C\u0E31\u0E27": "chu\u0304a" + "\u0E0C\u0E31": "cha" + "\u0E0C\u0E32\u0E22": "cha\u0304i" + "\u0E0C\u0E32": "cha\u0304" + "\u0E0C\u0E33": "cham" + "\u0E0C\u0E34\u0E27": "chiu" + "\u0E0C\u0E34": "chi" + "\u0E0C\u0E35": "chi\u0304" + "\u0E0C\u0E36": "ch\u01B0" + "\u0E0C\u0E37": "ch\u01B0\u0304" + "\u0E0C\u0E38\u0E22": "chui" + "\u0E0C\u0E38": "chu" + "\u0E0C\u0E39": "chu\u0304" + "\u0E0C\u0E40\u0E22": "chao" + "\u0E0C\u0E40\u0E30": "che" + "\u0E0C\u0E40\u0E47": "che" + "\u0E0C\u0E40\u0E27\u0E30": "cho\u031C" + "\u0E0C\u0E40\u0E2D\u0E30": "ch\u0153" + "\u0E0C\u0E40\u0E2D": "ch\u0153\u0304" + "\u0E0C\u0E40\u0E34": "ch\u0153\u0304" + "\u0E0C\u0E40\u0E22": "ch\u0153\u0304i" + "\u0E0C\u0E40\u0E35\u0E22\u0E27": "chi\u0304eo" + "\u0E0C\u0E40\u0E35\u0E22\u0E30": "chia" + "\u0E0C\u0E40\u0E35\u0E22": "chi\u0304a" + "\u0E0C\u0E40\u0E37\u0E2D\u0E22": "ch\u01B0\u0304ai" + "\u0E0C\u0E40\u0E37\u0E2D\u0E30": "ch\u01B0a" + "\u0E0C\u0E40\u0E37\u0E2D": "ch\u01B0\u0304a" + "\u0E0C\u0E40\u0E47\u0E27": "cheo" + "\u0E0C\u0E40\u0E27": "che\u0304o" + "\u0E0C\u0E40": "che\u0304" + "\u0E0C\u0E41\u0E27": "ch\u00E6\u0304o" + "\u0E0C\u0E41\u0E30": "ch\u00E6" + "\u0E0C\u0E41\u0E47": "ch\u00E6" + "\u0E0C\u0E41": "ch\u00E6\u0304" + "\u0E0C\u0E42\u0E22": "cho\u0304i" + "\u0E0C\u0E42\u0E30": "cho" + "\u0E0C\u0E42": "cho\u0304" + "\u0E0C\u0E43": "chai" + "\u0E0C\u0E44\u0E22": "chai" + "\u0E0C\u0E44": "chai" + # FINAL CONSONANT CHO CHOE WITH NO VOWEL + "%\u0E0C": "t" + "\u0E0C": "cho" + + # CONSONANT YO YING WITH VOWELS + "\u0E0D\u0E22\u0E27": "ya\u0304o" + "\u0E0D\u0E24": "yr\u01B0" + "\u0E0D\u0E24": "yri" + "\u0E0D\u0E24": "y\u0153\u0304" + "\u0E0D\u0E24\u0E32": "yr\u01B0\u0304" + "\u0E0D\u0E26\u0032": "yl\u01B0\u0304" + "\u0E0D\u0E26": "yl\u01B0" + "\u0E0D\u0E27\u0E22": "yu\u0304ai" + "\u0E0D\u0E27": "yu\u0304a" + "\u0E0D\u0E2D\u0E22": "yo\u0304\u031Ci" + "\u0E0D\u0E2D": "yo\u0304\u031C" + "\u0E0D\u0E30": "ya" + "\u0E0D\u0E31\u0E22": "yai" + "\u0E0D\u0E31\u0E27\u0E30": "yua" + "\u0E0D\u0E31\u0E27": "yu\u0304a" + "\u0E0D\u0E31": "ya" + "\u0E0D\u0E32\u0E22": "ya\u0304i" + "\u0E0D\u0E32": "ya\u0304" + "\u0E0D\u0E33": "yam" + "\u0E0D\u0E34\u0E27": "yiu" + "\u0E0D\u0E34": "yi" + "\u0E0D\u0E35": "yi\u0304" + "\u0E0D\u0E36": "y\u01B0" + "\u0E0D\u0E37": "y\u01B0\u0304" + "\u0E0D\u0E38\u0E22": "yui" + "\u0E0D\u0E38": "yu" + "\u0E0D\u0E39": "yu\u0304" + "\u0E0D\u0E40\u0E22": "yao" + "\u0E0D\u0E40\u0E30": "ye" + "\u0E0D\u0E40\u0E47": "ye" + "\u0E0D\u0E40\u0E27\u0E30": "yo\u031C" + "\u0E0D\u0E40\u0E2D\u0E30": "y\u0153" + "\u0E0D\u0E40\u0E2D": "y\u0153\u0304" + "\u0E0D\u0E40\u0E34": "y\u0153\u0304" + "\u0E0D\u0E40\u0E22": "y\u0153\u0304i" + "\u0E0D\u0E40\u0E35\u0E22\u0E27": "yi\u0304eo" + "\u0E0D\u0E40\u0E35\u0E22\u0E30": "yia" + "\u0E0D\u0E40\u0E35\u0E22": "yi\u0304a" + "\u0E0D\u0E40\u0E37\u0E2D\u0E22": "y\u01B0\u0304ai" + "\u0E0D\u0E40\u0E37\u0E2D\u0E30": "y\u01B0a" + "\u0E0D\u0E40\u0E37\u0E2D": "y\u01B0\u0304a" + "\u0E0D\u0E40\u0E47\u0E27": "yeo" + "\u0E0D\u0E40\u0E27": "ye\u0304o" + "\u0E0D\u0E40": "ye\u0304" + "\u0E0D\u0E41\u0E27": "y\u00E6\u0304o" + "\u0E0D\u0E41\u0E30": "y\u00E6" + "\u0E0D\u0E41\u0E47": "y\u00E6" + "\u0E0D\u0E41": "y\u00E6\u0304" + "\u0E0D\u0E42\u0E22": "yo\u0304i" + "\u0E0D\u0E42\u0E30": "yo" + "\u0E0D\u0E42": "yo\u0304" + "\u0E0D\u0E43": "yai" + "\u0E0D\u0E44\u0E22": "yai" + "\u0E0D\u0E44": "yai" + # FINAL CONSONANT YO YING WITH NO VOWEL + "%\u0E0D": "n" + "\u0E0D": "yo" + + # CONSONANT DO CHADA WITH VOWELS + "\u0E0E\u0E22\u0E27": "da\u0304o" + "\u0E0E\u0E24": "dr\u01B0" + "\u0E0E\u0E24": "dri" + "\u0E0E\u0E24": "d\u0153\u0304" + "\u0E0E\u0E24\u0E32": "dr\u01B0\u0304" + "\u0E0E\u0E26\u0032": "dl\u01B0\u0304" + "\u0E0E\u0E26": "dl\u01B0" + "\u0E0E\u0E27\u0E22": "du\u0304ai" + "\u0E0E\u0E27": "du\u0304a" + "\u0E0E\u0E2D\u0E22": "do\u0304\u031Ci" + "\u0E0E\u0E2D": "do\u0304\u031C" + "\u0E0E\u0E30": "da" + "\u0E0E\u0E31\u0E22": "dai" + "\u0E0E\u0E31\u0E27\u0E30": "dua" + "\u0E0E\u0E31\u0E27": "du\u0304a" + "\u0E0E\u0E31": "da" + "\u0E0E\u0E32\u0E22": "da\u0304i" + "\u0E0E\u0E32": "da\u0304" + "\u0E0E\u0E33": "dam" + "\u0E0E\u0E34\u0E27": "diu" + "\u0E0E\u0E34": "di" + "\u0E0E\u0E35": "di\u0304" + "\u0E0E\u0E36": "d\u01B0" + "\u0E0E\u0E37": "d\u01B0\u0304" + "\u0E0E\u0E38\u0E22": "dui" + "\u0E0E\u0E38": "du" + "\u0E0E\u0E39": "du\u0304" + "\u0E0E\u0E40\u0E22": "dao" + "\u0E0E\u0E40\u0E30": "de" + "\u0E0E\u0E40\u0E47": "de" + "\u0E0E\u0E40\u0E27\u0E30": "do\u031C" + "\u0E0E\u0E40\u0E2D\u0E30": "d\u0153" + "\u0E0E\u0E40\u0E2D": "d\u0153\u0304" + "\u0E0E\u0E40\u0E34": "d\u0153\u0304" + "\u0E0E\u0E40\u0E22": "d\u0153\u0304i" + "\u0E0E\u0E40\u0E35\u0E22\u0E27": "di\u0304eo" + "\u0E0E\u0E40\u0E35\u0E22\u0E30": "dia" + "\u0E0E\u0E40\u0E35\u0E22": "di\u0304a" + "\u0E0E\u0E40\u0E37\u0E2D\u0E22": "d\u01B0\u0304ai" + "\u0E0E\u0E40\u0E37\u0E2D\u0E30": "d\u01B0a" + "\u0E0E\u0E40\u0E37\u0E2D": "d\u01B0\u0304a" + "\u0E0E\u0E40\u0E47\u0E27": "deo" + "\u0E0E\u0E40\u0E27": "de\u0304o" + "\u0E0E\u0E40": "de\u0304" + "\u0E0E\u0E41\u0E27": "d\u00E6\u0304o" + "\u0E0E\u0E41\u0E30": "d\u00E6" + "\u0E0E\u0E41\u0E47": "d\u00E6" + "\u0E0E\u0E41": "d\u00E6\u0304" + "\u0E0E\u0E42\u0E22": "do\u0304i" + "\u0E0E\u0E42\u0E30": "do" + "\u0E0E\u0E42": "do\u0304" + "\u0E0E\u0E43": "dai" + "\u0E0E\u0E44\u0E22": "dai" + "\u0E0E\u0E44": "dai" + # FINAL CONSONANT DO CHADA WITH NO VOWEL + "%\u0E0E": "t" + "\u0E0E": "do" + + # CONSONANT TO PATAK WITH VOWELS + "\u0E0F\u0E22\u0E27": "ta\u0304o" + "\u0E0F\u0E24": "tr\u01B0" + "\u0E0F\u0E24": "tri" + "\u0E0F\u0E24": "t\u0153\u0304" + "\u0E0F\u0E24\u0E32": "tr\u01B0\u0304" + "\u0E0F\u0E26\u0032": "tl\u01B0\u0304" + "\u0E0F\u0E26": "tl\u01B0" + "\u0E0F\u0E27\u0E22": "tu\u0304ai" + "\u0E0F\u0E27": "tu\u0304a" + "\u0E0F\u0E2D\u0E22": "to\u0304\u031Ci" + "\u0E0F\u0E2D": "to\u0304\u031C" + "\u0E0F\u0E30": "ta" + "\u0E0F\u0E31\u0E22": "tai" + "\u0E0F\u0E31\u0E27\u0E30": "tua" + "\u0E0F\u0E31\u0E27": "tu\u0304a" + "\u0E0F\u0E31": "ta" + "\u0E0F\u0E32\u0E22": "ta\u0304i" + "\u0E0F\u0E32": "ta\u0304" + "\u0E0F\u0E33": "tam" + "\u0E0F\u0E34\u0E27": "tiu" + "\u0E0F\u0E34": "ti" + "\u0E0F\u0E35": "ti\u0304" + "\u0E0F\u0E36": "t\u01B0" + "\u0E0F\u0E37": "t\u01B0\u0304" + "\u0E0F\u0E38\u0E22": "tui" + "\u0E0F\u0E38": "tu" + "\u0E0F\u0E39": "tu\u0304" + "\u0E0F\u0E40\u0E22": "tao" + "\u0E0F\u0E40\u0E30": "te" + "\u0E0F\u0E40\u0E47": "te" + "\u0E0F\u0E40\u0E27\u0E30": "to\u031C" + "\u0E0F\u0E40\u0E2D\u0E30": "t\u0153" + "\u0E0F\u0E40\u0E2D": "t\u0153\u0304" + "\u0E0F\u0E40\u0E34": "t\u0153\u0304" + "\u0E0F\u0E40\u0E22": "t\u0153\u0304i" + "\u0E0F\u0E40\u0E35\u0E22\u0E27": "ti\u0304eo" + "\u0E0F\u0E40\u0E35\u0E22\u0E30": "tia" + "\u0E0F\u0E40\u0E35\u0E22": "ti\u0304a" + "\u0E0F\u0E40\u0E37\u0E2D\u0E22": "t\u01B0\u0304ai" + "\u0E0F\u0E40\u0E37\u0E2D\u0E30": "t\u01B0a" + "\u0E0F\u0E40\u0E37\u0E2D": "t\u01B0\u0304a" + "\u0E0F\u0E40\u0E47\u0E27": "teo" + "\u0E0F\u0E40\u0E27": "te\u0304o" + "\u0E0F\u0E40": "te\u0304" + "\u0E0F\u0E41\u0E27": "t\u00E6\u0304o" + "\u0E0F\u0E41\u0E30": "t\u00E6" + "\u0E0F\u0E41\u0E47": "t\u00E6" + "\u0E0F\u0E41": "t\u00E6\u0304" + "\u0E0F\u0E42\u0E22": "to\u0304i" + "\u0E0F\u0E42\u0E30": "to" + "\u0E0F\u0E42": "to\u0304" + "\u0E0F\u0E43": "tai" + "\u0E0F\u0E44\u0E22": "tai" + "\u0E0F\u0E44": "tai" + # FINAL CONSONANT TO PATAK WITH NO VOWEL + "%\u0E0F": "t" + "\u0E0F": "to" + + # CONSONANT THO THAN WITH VOWELS + "\u0E10\u0E22\u0E27": "tha\u0304o" + "\u0E10\u0E24": "thr\u01B0" + "\u0E10\u0E24": "thri" + "\u0E10\u0E24": "th\u0153\u0304" + "\u0E10\u0E24\u0E32": "thr\u01B0\u0304" + "\u0E10\u0E26\u0032": "thl\u01B0\u0304" + "\u0E10\u0E26": "thl\u01B0" + "\u0E10\u0E27\u0E22": "thu\u0304ai" + "\u0E10\u0E27": "thu\u0304a" + "\u0E10\u0E2D\u0E22": "tho\u0304\u031Ci" + "\u0E10\u0E2D": "tho\u0304\u031C" + "\u0E10\u0E30": "tha" + "\u0E10\u0E31\u0E22": "thai" + "\u0E10\u0E31\u0E27\u0E30": "thua" + "\u0E10\u0E31\u0E27": "thu\u0304a" + "\u0E10\u0E31": "tha" + "\u0E10\u0E32\u0E22": "tha\u0304i" + "\u0E10\u0E32": "tha\u0304" + "\u0E10\u0E33": "tham" + "\u0E10\u0E34\u0E27": "thiu" + "\u0E10\u0E34": "thi" + "\u0E10\u0E35": "thi\u0304" + "\u0E10\u0E36": "th\u01B0" + "\u0E10\u0E37": "th\u01B0\u0304" + "\u0E10\u0E38\u0E22": "thui" + "\u0E10\u0E38": "thu" + "\u0E10\u0E39": "thu\u0304" + "\u0E10\u0E40\u0E22": "thao" + "\u0E10\u0E40\u0E30": "the" + "\u0E10\u0E40\u0E47": "the" + "\u0E10\u0E40\u0E27\u0E30": "tho\u031C" + "\u0E10\u0E40\u0E2D\u0E30": "th\u0153" + "\u0E10\u0E40\u0E2D": "th\u0153\u0304" + "\u0E10\u0E40\u0E34": "th\u0153\u0304" + "\u0E10\u0E40\u0E22": "th\u0153\u0304i" + "\u0E10\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" + "\u0E10\u0E40\u0E35\u0E22\u0E30": "thia" + "\u0E10\u0E40\u0E35\u0E22": "thi\u0304a" + "\u0E10\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" + "\u0E10\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" + "\u0E10\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" + "\u0E10\u0E40\u0E47\u0E27": "theo" + "\u0E10\u0E40\u0E27": "the\u0304o" + "\u0E10\u0E40": "the\u0304" + "\u0E10\u0E41\u0E27": "th\u00E6\u0304o" + "\u0E10\u0E41\u0E30": "th\u00E6" + "\u0E10\u0E41\u0E47": "th\u00E6" + "\u0E10\u0E41": "th\u00E6\u0304" + "\u0E10\u0E42\u0E22": "tho\u0304i" + "\u0E10\u0E42\u0E30": "tho" + "\u0E10\u0E42": "tho\u0304" + "\u0E10\u0E43": "thai" + "\u0E10\u0E44\u0E22": "thai" + "\u0E10\u0E44": "thai" + # FINAL CONSONANT THO THAN WITH NO VOWEL + "%\u0E10": "th" + "\u0E10": "tho" + + # CONSONANT THO NANGMONTHO WITH VOWELS + "\u0E11\u0E22\u0E27": "tha\u0304o" + "\u0E11\u0E24": "thr\u01B0" + "\u0E11\u0E24": "thri" + "\u0E11\u0E24": "th\u0153\u0304" + "\u0E11\u0E24\u0E32": "thr\u01B0\u0304" + "\u0E11\u0E26\u0032": "thl\u01B0\u0304" + "\u0E11\u0E26": "thl\u01B0" + "\u0E11\u0E27\u0E22": "thu\u0304ai" + "\u0E11\u0E27": "thu\u0304a" + "\u0E11\u0E2D\u0E22": "tho\u0304\u031Ci" + "\u0E11\u0E2D": "tho\u0304\u031C" + "\u0E11\u0E30": "tha" + "\u0E11\u0E31\u0E22": "thai" + "\u0E11\u0E31\u0E27\u0E30": "thua" + "\u0E11\u0E31\u0E27": "thu\u0304a" + "\u0E11\u0E31": "tha" + "\u0E11\u0E32\u0E22": "tha\u0304i" + "\u0E11\u0E32": "tha\u0304" + "\u0E11\u0E33": "tham" + "\u0E11\u0E34\u0E27": "thiu" + "\u0E11\u0E34": "thi" + "\u0E11\u0E35": "thi\u0304" + "\u0E11\u0E36": "th\u01B0" + "\u0E11\u0E37": "th\u01B0\u0304" + "\u0E11\u0E38\u0E22": "thui" + "\u0E11\u0E38": "thu" + "\u0E11\u0E39": "thu\u0304" + "\u0E11\u0E40\u0E22": "thao" + "\u0E11\u0E40\u0E30": "the" + "\u0E11\u0E40\u0E47": "the" + "\u0E11\u0E40\u0E27\u0E30": "tho\u031C" + "\u0E11\u0E40\u0E2D\u0E30": "th\u0153" + "\u0E11\u0E40\u0E2D": "th\u0153\u0304" + "\u0E11\u0E40\u0E34": "th\u0153\u0304" + "\u0E11\u0E40\u0E22": "th\u0153\u0304i" + "\u0E11\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" + "\u0E11\u0E40\u0E35\u0E22\u0E30": "thia" + "\u0E11\u0E40\u0E35\u0E22": "thi\u0304a" + "\u0E11\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" + "\u0E11\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" + "\u0E11\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" + "\u0E11\u0E40\u0E47\u0E27": "theo" + "\u0E11\u0E40\u0E27": "the\u0304o" + "\u0E11\u0E40": "the\u0304" + "\u0E11\u0E41\u0E27": "th\u00E6\u0304o" + "\u0E11\u0E41\u0E30": "th\u00E6" + "\u0E11\u0E41\u0E47": "th\u00E6" + "\u0E11\u0E41": "th\u00E6\u0304" + "\u0E11\u0E42\u0E22": "tho\u0304i" + "\u0E11\u0E42\u0E30": "tho" + "\u0E11\u0E42": "tho\u0304" + "\u0E11\u0E43": "thai" + "\u0E11\u0E44\u0E22": "thai" + "\u0E11\u0E44": "thai" + # FINAL CONSONANT THO NANGMONTHO WITH NO VOWEL + "%\u0E11": "t" + "\u0E11": "tho" + + # CONSONANT THO PHUTHAO WITH VOWELS + "\u0E12\u0E22\u0E27": "tha\u0304o" + "\u0E12\u0E24": "thr\u01B0" + "\u0E12\u0E24": "thri" + "\u0E12\u0E24": "th\u0153\u0304" + "\u0E12\u0E24\u0E32": "thr\u01B0\u0304" + "\u0E12\u0E26\u0032": "thl\u01B0\u0304" + "\u0E12\u0E26": "thl\u01B0" + "\u0E12\u0E27\u0E22": "thu\u0304ai" + "\u0E12\u0E27": "thu\u0304a" + "\u0E12\u0E2D\u0E22": "tho\u0304\u031Ci" + "\u0E12\u0E2D": "tho\u0304\u031C" + "\u0E12\u0E30": "tha" + "\u0E12\u0E31\u0E22": "thai" + "\u0E12\u0E31\u0E27\u0E30": "thua" + "\u0E12\u0E31\u0E27": "thu\u0304a" + "\u0E12\u0E31": "tha" + "\u0E12\u0E32\u0E22": "tha\u0304i" + "\u0E12\u0E32": "tha\u0304" + "\u0E12\u0E33": "tham" + "\u0E12\u0E34\u0E27": "thiu" + "\u0E12\u0E34": "thi" + "\u0E12\u0E35": "thi\u0304" + "\u0E12\u0E36": "th\u01B0" + "\u0E12\u0E37": "th\u01B0\u0304" + "\u0E12\u0E38\u0E22": "thui" + "\u0E12\u0E38": "thu" + "\u0E12\u0E39": "thu\u0304" + "\u0E12\u0E40\u0E22": "thao" + "\u0E12\u0E40\u0E30": "the" + "\u0E12\u0E40\u0E47": "the" + "\u0E12\u0E40\u0E27\u0E30": "tho\u031C" + "\u0E12\u0E40\u0E2D\u0E30": "th\u0153" + "\u0E12\u0E40\u0E2D": "th\u0153\u0304" + "\u0E12\u0E40\u0E34": "th\u0153\u0304" + "\u0E12\u0E40\u0E22": "th\u0153\u0304i" + "\u0E12\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" + "\u0E12\u0E40\u0E35\u0E22\u0E30": "thia" + "\u0E12\u0E40\u0E35\u0E22": "thi\u0304a" + "\u0E12\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" + "\u0E12\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" + "\u0E12\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" + "\u0E12\u0E40\u0E47\u0E27": "theo" + "\u0E12\u0E40\u0E27": "the\u0304o" + "\u0E12\u0E40": "the\u0304" + "\u0E12\u0E41\u0E27": "th\u00E6\u0304o" + "\u0E12\u0E41\u0E30": "th\u00E6" + "\u0E12\u0E41\u0E47": "th\u00E6" + "\u0E12\u0E41": "th\u00E6\u0304" + "\u0E12\u0E42\u0E22": "tho\u0304i" + "\u0E12\u0E42\u0E30": "tho" + "\u0E12\u0E42": "tho\u0304" + "\u0E12\u0E43": "thai" + "\u0E12\u0E44\u0E22": "thai" + "\u0E12\u0E44": "thai" + # FINAL CONSONANT THO PHUTHAO WITH NO VOWEL + "%\u0E12": "t" + "\u0E12": "tho" + + # CONSONANT NO NEN WITH VOWELS + "\u0E13\u0E22\u0E27": "na\u0304o" + "\u0E13\u0E24": "nr\u01B0" + "\u0E13\u0E24": "nri" + "\u0E13\u0E24": "n\u0153\u0304" + "\u0E13\u0E24\u0E32": "nr\u01B0\u0304" + "\u0E13\u0E26\u0032": "nl\u01B0\u0304" + "\u0E13\u0E26": "nl\u01B0" + "\u0E13\u0E27\u0E22": "nu\u0304ai" + "\u0E13\u0E27": "nu\u0304a" + "\u0E13\u0E2D\u0E22": "no\u0304\u031Ci" + "\u0E13\u0E2D": "no\u0304\u031C" + "\u0E13\u0E30": "na" + "\u0E13\u0E31\u0E22": "nai" + "\u0E13\u0E31\u0E27\u0E30": "nua" + "\u0E13\u0E31\u0E27": "nu\u0304a" + "\u0E13\u0E31": "na" + "\u0E13\u0E32\u0E22": "na\u0304i" + "\u0E13\u0E32": "na\u0304" + "\u0E13\u0E33": "nam" + "\u0E13\u0E34\u0E27": "niu" + "\u0E13\u0E34": "ni" + "\u0E13\u0E35": "ni\u0304" + "\u0E13\u0E36": "n\u01B0" + "\u0E13\u0E37": "n\u01B0\u0304" + "\u0E13\u0E38\u0E22": "nui" + "\u0E13\u0E38": "nu" + "\u0E13\u0E39": "nu\u0304" + "\u0E13\u0E40\u0E22": "nao" + "\u0E13\u0E40\u0E30": "ne" + "\u0E13\u0E40\u0E47": "ne" + "\u0E13\u0E40\u0E27\u0E30": "no\u031C" + "\u0E13\u0E40\u0E2D\u0E30": "n\u0153" + "\u0E13\u0E40\u0E2D": "n\u0153\u0304" + "\u0E13\u0E40\u0E34": "n\u0153\u0304" + "\u0E13\u0E40\u0E22": "n\u0153\u0304i" + "\u0E13\u0E40\u0E35\u0E22\u0E27": "ni\u0304eo" + "\u0E13\u0E40\u0E35\u0E22\u0E30": "nia" + "\u0E13\u0E40\u0E35\u0E22": "ni\u0304a" + "\u0E13\u0E40\u0E37\u0E2D\u0E22": "n\u01B0\u0304ai" + "\u0E13\u0E40\u0E37\u0E2D\u0E30": "n\u01B0a" + "\u0E13\u0E40\u0E37\u0E2D": "n\u01B0\u0304a" + "\u0E13\u0E40\u0E47\u0E27": "neo" + "\u0E13\u0E40\u0E27": "ne\u0304o" + "\u0E13\u0E40": "ne\u0304" + "\u0E13\u0E41\u0E27": "n\u00E6\u0304o" + "\u0E13\u0E41\u0E30": "n\u00E6" + "\u0E13\u0E41\u0E47": "n\u00E6" + "\u0E13\u0E41": "n\u00E6\u0304" + "\u0E13\u0E42\u0E22": "no\u0304i" + "\u0E13\u0E42\u0E30": "no" + "\u0E13\u0E42": "no\u0304" + "\u0E13\u0E43": "nai" + "\u0E13\u0E44\u0E22": "nai" + "\u0E13\u0E44": "nai" + # FINAL CONSONANT NO NEN WITH NO VOWEL + "%\u0E13": "n" + "\u0E13": "no" + + # CONSONANT DO DEK WITH VOWELS + "\u0E14\u0E22\u0E27": "da\u0304o" + "\u0E14\u0E24": "dr\u01B0" + "\u0E14\u0E24": "dri" + "\u0E14\u0E24": "d\u0153\u0304" + "\u0E14\u0E24\u0E32": "dr\u01B0\u0304" + "\u0E14\u0E26\u0032": "dl\u01B0\u0304" + "\u0E14\u0E26": "dl\u01B0" + "\u0E14\u0E27\u0E22": "du\u0304ai" + "\u0E14\u0E27": "du\u0304a" + "\u0E14\u0E2D\u0E22": "do\u0304\u031Ci" + "\u0E14\u0E2D": "do\u0304\u031C" + "\u0E14\u0E30": "da" + "\u0E14\u0E31\u0E22": "dai" + "\u0E14\u0E31\u0E27\u0E30": "dua" + "\u0E14\u0E31\u0E27": "du\u0304a" + "\u0E14\u0E31": "da" + "\u0E14\u0E32\u0E22": "da\u0304i" + "\u0E14\u0E32": "da\u0304" + "\u0E14\u0E33": "dam" + "\u0E14\u0E34\u0E27": "diu" + "\u0E14\u0E34": "di" + "\u0E14\u0E35": "di\u0304" + "\u0E14\u0E36": "d\u01B0" + "\u0E14\u0E37": "d\u01B0\u0304" + "\u0E14\u0E38\u0E22": "dui" + "\u0E14\u0E38": "du" + "\u0E14\u0E39": "du\u0304" + "\u0E14\u0E40\u0E22": "dao" + "\u0E14\u0E40\u0E30": "de" + "\u0E14\u0E40\u0E47": "de" + "\u0E14\u0E40\u0E27\u0E30": "do\u031C" + "\u0E14\u0E40\u0E2D\u0E30": "d\u0153" + "\u0E14\u0E40\u0E2D": "d\u0153\u0304" + "\u0E14\u0E40\u0E34": "d\u0153\u0304" + "\u0E14\u0E40\u0E22": "d\u0153\u0304i" + "\u0E14\u0E40\u0E35\u0E22\u0E27": "di\u0304eo" + "\u0E14\u0E40\u0E35\u0E22\u0E30": "dia" + "\u0E14\u0E40\u0E35\u0E22": "di\u0304a" + "\u0E14\u0E40\u0E37\u0E2D\u0E22": "d\u01B0\u0304ai" + "\u0E14\u0E40\u0E37\u0E2D\u0E30": "d\u01B0a" + "\u0E14\u0E40\u0E37\u0E2D": "d\u01B0\u0304a" + "\u0E14\u0E40\u0E47\u0E27": "deo" + "\u0E14\u0E40\u0E27": "de\u0304o" + "\u0E14\u0E40": "de\u0304" + "\u0E14\u0E41\u0E27": "d\u00E6\u0304o" + "\u0E14\u0E41\u0E30": "d\u00E6" + "\u0E14\u0E41\u0E47": "d\u00E6" + "\u0E14\u0E41": "d\u00E6\u0304" + "\u0E14\u0E42\u0E22": "do\u0304i" + "\u0E14\u0E42\u0E30": "do" + "\u0E14\u0E42": "do\u0304" + "\u0E14\u0E43": "dai" + "\u0E14\u0E44\u0E22": "dai" + "\u0E14\u0E44": "dai" + # FINAL CONSONANT NO NEN WITH NO VOWEL + "%\u0E14": "t" + "\u0E14": "do" + + # CONSONANT TO TAO WITH VOWELS + "\u0E15\u0E22\u0E27": "ta\u0304o" + "\u0E15\u0E24": "tr\u01B0" + "\u0E15\u0E24": "tri" + "\u0E15\u0E24": "t\u0153\u0304" + "\u0E15\u0E24\u0E32": "tr\u01B0\u0304" + "\u0E15\u0E26\u0032": "tl\u01B0\u0304" + "\u0E15\u0E26": "tl\u01B0" + "\u0E15\u0E27\u0E22": "tu\u0304ai" + "\u0E15\u0E27": "tu\u0304a" + "\u0E15\u0E2D\u0E22": "to\u0304\u031Ci" + "\u0E15\u0E2D": "to\u0304\u031C" + "\u0E15\u0E30": "ta" + "\u0E15\u0E31\u0E22": "tai" + "\u0E15\u0E31\u0E27\u0E30": "tua" + "\u0E15\u0E31\u0E27": "tu\u0304a" + "\u0E15\u0E31": "ta" + "\u0E15\u0E32\u0E22": "ta\u0304i" + "\u0E15\u0E32": "ta\u0304" + "\u0E15\u0E33": "tam" + "\u0E15\u0E34\u0E27": "tiu" + "\u0E15\u0E34": "ti" + "\u0E15\u0E35": "ti\u0304" + "\u0E15\u0E36": "t\u01B0" + "\u0E15\u0E37": "t\u01B0\u0304" + "\u0E15\u0E38\u0E22": "tui" + "\u0E15\u0E38": "tu" + "\u0E15\u0E39": "tu\u0304" + "\u0E15\u0E40\u0E22": "tao" + "\u0E15\u0E40\u0E30": "te" + "\u0E15\u0E40\u0E47": "te" + "\u0E15\u0E40\u0E27\u0E30": "to\u031C" + "\u0E15\u0E40\u0E2D\u0E30": "t\u0153" + "\u0E15\u0E40\u0E2D": "t\u0153\u0304" + "\u0E15\u0E40\u0E34": "t\u0153\u0304" + "\u0E15\u0E40\u0E22": "t\u0153\u0304i" + "\u0E15\u0E40\u0E35\u0E22\u0E27": "ti\u0304eo" + "\u0E15\u0E40\u0E35\u0E22\u0E30": "tia" + "\u0E15\u0E40\u0E35\u0E22": "ti\u0304a" + "\u0E15\u0E40\u0E37\u0E2D\u0E22": "t\u01B0\u0304ai" + "\u0E15\u0E40\u0E37\u0E2D\u0E30": "t\u01B0a" + "\u0E15\u0E40\u0E37\u0E2D": "t\u01B0\u0304a" + "\u0E15\u0E40\u0E47\u0E27": "teo" + "\u0E15\u0E40\u0E27": "te\u0304o" + "\u0E15\u0E40": "te\u0304" + "\u0E15\u0E41\u0E27": "t\u00E6\u0304o" + "\u0E15\u0E41\u0E30": "t\u00E6" + "\u0E15\u0E41\u0E47": "t\u00E6" + "\u0E15\u0E41": "t\u00E6\u0304" + "\u0E15\u0E42\u0E22": "to\u0304i" + "\u0E15\u0E42\u0E30": "to" + "\u0E15\u0E42": "to\u0304" + "\u0E15\u0E43": "tai" + "\u0E15\u0E44\u0E22": "tai" + "\u0E15\u0E44": "tai" + # FINAL CONSONANT TO TAO WITH NO VOWEL + "%\u0E15": "t" + "\u0E15": "to" + + # CONSONANT THO THUNG WITH VOWELS + "\u0E16\u0E22\u0E27": "tha\u0304o" + "\u0E16\u0E24": "thr\u01B0" + "\u0E16\u0E24": "thri" + "\u0E16\u0E24": "th\u0153\u0304" + "\u0E16\u0E24\u0E32": "thr\u01B0\u0304" + "\u0E16\u0E26\u0032": "thl\u01B0\u0304" + "\u0E16\u0E26": "thl\u01B0" + "\u0E16\u0E27\u0E22": "thu\u0304ai" + "\u0E16\u0E27": "thu\u0304a" + "\u0E16\u0E2D\u0E22": "tho\u0304\u031Ci" + "\u0E16\u0E2D": "tho\u0304\u031C" + "\u0E16\u0E30": "tha" + "\u0E16\u0E31\u0E22": "thai" + "\u0E16\u0E31\u0E27\u0E30": "thua" + "\u0E16\u0E31\u0E27": "thu\u0304a" + "\u0E16\u0E31": "tha" + "\u0E16\u0E32\u0E22": "tha\u0304i" + "\u0E16\u0E32": "tha\u0304" + "\u0E16\u0E33": "tham" + "\u0E16\u0E34\u0E27": "thiu" + "\u0E16\u0E34": "thi" + "\u0E16\u0E35": "thi\u0304" + "\u0E16\u0E36": "th\u01B0" + "\u0E16\u0E37": "th\u01B0\u0304" + "\u0E16\u0E38\u0E22": "thui" + "\u0E16\u0E38": "thu" + "\u0E16\u0E39": "thu\u0304" + "\u0E16\u0E40\u0E22": "thao" + "\u0E16\u0E40\u0E30": "the" + "\u0E16\u0E40\u0E47": "the" + "\u0E16\u0E40\u0E27\u0E30": "tho\u031C" + "\u0E16\u0E40\u0E2D\u0E30": "th\u0153" + "\u0E16\u0E40\u0E2D": "th\u0153\u0304" + "\u0E16\u0E40\u0E34": "th\u0153\u0304" + "\u0E16\u0E40\u0E22": "th\u0153\u0304i" + "\u0E16\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" + "\u0E16\u0E40\u0E35\u0E22\u0E30": "thia" + "\u0E16\u0E40\u0E35\u0E22": "thi\u0304a" + "\u0E16\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" + "\u0E16\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" + "\u0E16\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" + "\u0E16\u0E40\u0E47\u0E27": "theo" + "\u0E16\u0E40\u0E27": "the\u0304o" + "\u0E16\u0E40": "the\u0304" + "\u0E16\u0E41\u0E27": "th\u00E6\u0304o" + "\u0E16\u0E41\u0E30": "th\u00E6" + "\u0E16\u0E41\u0E47": "th\u00E6" + "\u0E16\u0E41": "th\u00E6\u0304" + "\u0E16\u0E42\u0E22": "tho\u0304i" + "\u0E16\u0E42\u0E30": "tho" + "\u0E16\u0E42": "tho\u0304" + "\u0E16\u0E43": "thai" + "\u0E16\u0E44\u0E22": "thai" + "\u0E16\u0E44": "thai" + # FINAL CONSONANT THO THUNG WITH NO VOWEL + "%\u0E16": "t" + "\u0E16": "tho" + + # CONSONANT THO THAHAN WITH VOWELS + "\u0E17\u0E22\u0E27": "tha\u0304o" + "\u0E17\u0E24": "thr\u01B0" + "\u0E17\u0E24": "thri" + "\u0E17\u0E24": "th\u0153\u0304" + "\u0E17\u0E24\u0E32": "thr\u01B0\u0304" + "\u0E17\u0E26\u0032": "thl\u01B0\u0304" + "\u0E17\u0E26": "thl\u01B0" + "\u0E17\u0E27\u0E22": "thu\u0304ai" + "\u0E17\u0E27": "thu\u0304a" + "\u0E17\u0E2D\u0E22": "tho\u0304\u031Ci" + "\u0E17\u0E2D": "tho\u0304\u031C" + "\u0E17\u0E30": "tha" + "\u0E17\u0E31\u0E22": "thai" + "\u0E17\u0E31\u0E27\u0E30": "thua" + "\u0E17\u0E31\u0E27": "thu\u0304a" + "\u0E17\u0E31": "tha" + "\u0E17\u0E32\u0E22": "tha\u0304i" + "\u0E17\u0E32": "tha\u0304" + "\u0E17\u0E33": "tham" + "\u0E17\u0E34\u0E27": "thiu" + "\u0E17\u0E34": "thi" + "\u0E17\u0E35": "thi\u0304" + "\u0E17\u0E36": "th\u01B0" + "\u0E17\u0E37": "th\u01B0\u0304" + "\u0E17\u0E38\u0E22": "thui" + "\u0E17\u0E38": "thu" + "\u0E17\u0E39": "thu\u0304" + "\u0E17\u0E40\u0E22": "thao" + "\u0E17\u0E40\u0E30": "the" + "\u0E17\u0E40\u0E47": "the" + "\u0E17\u0E40\u0E27\u0E30": "tho\u031C" + "\u0E17\u0E40\u0E2D\u0E30": "th\u0153" + "\u0E17\u0E40\u0E2D": "th\u0153\u0304" + "\u0E17\u0E40\u0E34": "th\u0153\u0304" + "\u0E17\u0E40\u0E22": "th\u0153\u0304i" + "\u0E17\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" + "\u0E17\u0E40\u0E35\u0E22\u0E30": "thia" + "\u0E17\u0E40\u0E35\u0E22": "thi\u0304a" + "\u0E17\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" + "\u0E17\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" + "\u0E17\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" + "\u0E17\u0E40\u0E47\u0E27": "theo" + "\u0E17\u0E40\u0E27": "the\u0304o" + "\u0E17\u0E40": "the\u0304" + "\u0E17\u0E41\u0E27": "th\u00E6\u0304o" + "\u0E17\u0E41\u0E30": "th\u00E6" + "\u0E17\u0E41\u0E47": "th\u00E6" + "\u0E17\u0E41": "th\u00E6\u0304" + "\u0E17\u0E42\u0E22": "tho\u0304i" + "\u0E17\u0E42\u0E30": "tho" + "\u0E17\u0E42": "tho\u0304" + "\u0E17\u0E43": "thai" + "\u0E17\u0E44\u0E22": "thai" + "\u0E17\u0E44": "thai" + # FINAL CONSONANT THO THAHAN WITH NO VOWEL + "%\u0E17": "t" + "\u0E17": "tho" + + # CONSONANT THO THONG WITH VOWELS + "\u0E18\u0E22\u0E27": "tha\u0304o" + "\u0E18\u0E24": "thr\u01B0" + "\u0E18\u0E24": "thri" + "\u0E18\u0E24": "th\u0153\u0304" + "\u0E18\u0E24\u0E32": "thr\u01B0\u0304" + "\u0E18\u0E26\u0032": "thl\u01B0\u0304" + "\u0E18\u0E26": "thl\u01B0" + "\u0E18\u0E27\u0E22": "thu\u0304ai" + "\u0E18\u0E27": "thu\u0304a" + "\u0E18\u0E2D\u0E22": "tho\u0304\u031Ci" + "\u0E18\u0E2D": "tho\u0304\u031C" + "\u0E18\u0E30": "tha" + "\u0E18\u0E31\u0E22": "thai" + "\u0E18\u0E31\u0E27\u0E30": "thua" + "\u0E18\u0E31\u0E27": "thu\u0304a" + "\u0E18\u0E31": "tha" + "\u0E18\u0E32\u0E22": "tha\u0304i" + "\u0E18\u0E32": "tha\u0304" + "\u0E18\u0E33": "tham" + "\u0E18\u0E34\u0E27": "thiu" + "\u0E18\u0E34": "thi" + "\u0E18\u0E35": "thi\u0304" + "\u0E18\u0E36": "th\u01B0" + "\u0E18\u0E37": "th\u01B0\u0304" + "\u0E18\u0E38\u0E22": "thui" + "\u0E18\u0E38": "thu" + "\u0E18\u0E39": "thu\u0304" + "\u0E18\u0E40\u0E22": "thao" + "\u0E18\u0E40\u0E30": "the" + "\u0E18\u0E40\u0E47": "the" + "\u0E18\u0E40\u0E27\u0E30": "tho\u031C" + "\u0E18\u0E40\u0E2D\u0E30": "th\u0153" + "\u0E18\u0E40\u0E2D": "th\u0153\u0304" + "\u0E18\u0E40\u0E34": "th\u0153\u0304" + "\u0E18\u0E40\u0E22": "th\u0153\u0304i" + "\u0E18\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" + "\u0E18\u0E40\u0E35\u0E22\u0E30": "thia" + "\u0E18\u0E40\u0E35\u0E22": "thi\u0304a" + "\u0E18\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" + "\u0E18\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" + "\u0E18\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" + "\u0E18\u0E40\u0E47\u0E27": "theo" + "\u0E18\u0E40\u0E27": "the\u0304o" + "\u0E18\u0E40": "the\u0304" + "\u0E18\u0E41\u0E27": "th\u00E6\u0304o" + "\u0E18\u0E41\u0E30": "th\u00E6" + "\u0E18\u0E41\u0E47": "th\u00E6" + "\u0E18\u0E41": "th\u00E6\u0304" + "\u0E18\u0E42\u0E22": "tho\u0304i" + "\u0E18\u0E42\u0E30": "tho" + "\u0E18\u0E42": "tho\u0304" + "\u0E18\u0E43": "thai" + "\u0E18\u0E44\u0E22": "thai" + "\u0E18\u0E44": "thai" + # FINAL CONSONANT THO THONG WITH NO VOWEL + "%\u0E18": "t" + "\u0E18": "tho" + + # CONSONANT NO NU WITH VOWELS + "\u0E19\u0E22\u0E27": "na\u0304o" + "\u0E19\u0E24": "nr\u01B0" + "\u0E19\u0E24": "nri" + "\u0E19\u0E24": "n\u0153\u0304" + "\u0E19\u0E24\u0E32": "nr\u01B0\u0304" + "\u0E19\u0E26\u0032": "nl\u01B0\u0304" + "\u0E19\u0E26": "nl\u01B0" + "\u0E19\u0E27\u0E22": "nu\u0304ai" + "\u0E19\u0E27": "nu\u0304a" + "\u0E19\u0E2D\u0E22": "no\u0304\u031Ci" + "\u0E19\u0E2D": "no\u0304\u031C" + "\u0E19\u0E30": "na" + "\u0E19\u0E31\u0E22": "nai" + "\u0E19\u0E31\u0E27\u0E30": "nua" + "\u0E19\u0E31\u0E27": "nu\u0304a" + "\u0E19\u0E31": "na" + "\u0E19\u0E32\u0E22": "na\u0304i" + "\u0E19\u0E32": "na\u0304" + "\u0E19\u0E33": "nam" + "\u0E19\u0E34\u0E27": "niu" + "\u0E19\u0E34": "ni" + "\u0E19\u0E35": "ni\u0304" + "\u0E19\u0E36": "n\u01B0" + "\u0E19\u0E37": "n\u01B0\u0304" + "\u0E19\u0E38\u0E22": "nui" + "\u0E19\u0E38": "nu" + "\u0E19\u0E39": "nu\u0304" + "\u0E19\u0E40\u0E22": "nao" + "\u0E19\u0E40\u0E30": "ne" + "\u0E19\u0E40\u0E47": "ne" + "\u0E19\u0E40\u0E27\u0E30": "no\u031C" + "\u0E19\u0E40\u0E2D\u0E30": "n\u0153" + "\u0E19\u0E40\u0E2D": "n\u0153\u0304" + "\u0E19\u0E40\u0E34": "n\u0153\u0304" + "\u0E19\u0E40\u0E22": "n\u0153\u0304i" + "\u0E19\u0E40\u0E35\u0E22\u0E27": "ni\u0304eo" + "\u0E19\u0E40\u0E35\u0E22\u0E30": "nia" + "\u0E19\u0E40\u0E35\u0E22": "ni\u0304a" + "\u0E19\u0E40\u0E37\u0E2D\u0E22": "n\u01B0\u0304ai" + "\u0E19\u0E40\u0E37\u0E2D\u0E30": "n\u01B0a" + "\u0E19\u0E40\u0E37\u0E2D": "n\u01B0\u0304a" + "\u0E19\u0E40\u0E47\u0E27": "neo" + "\u0E19\u0E40\u0E27": "ne\u0304o" + "\u0E19\u0E40": "ne\u0304" + "\u0E19\u0E41\u0E27": "n\u00E6\u0304o" + "\u0E19\u0E41\u0E30": "n\u00E6" + "\u0E19\u0E41\u0E47": "n\u00E6" + "\u0E19\u0E41": "n\u00E6\u0304" + "\u0E19\u0E42\u0E22": "no\u0304i" + "\u0E19\u0E42\u0E30": "no" + "\u0E19\u0E42": "no\u0304" + "\u0E19\u0E43": "nai" + "\u0E19\u0E44\u0E22": "nai" + "\u0E19\u0E44": "nai" + # FINAL CONSONANT NO NU WITH NO VOWEL + "%\u0E19": "n" + "\u0E19": "no" + + # CONSONANT BO BAIMAI WITH VOWELS + "\u0E1A\u0E22\u0E27": "ba\u0304o" + "\u0E1A\u0E24": "br\u01B0" + "\u0E1A\u0E24": "bri" + "\u0E1A\u0E24": "b\u0153\u0304" + "\u0E1A\u0E24\u0E32": "br\u01B0\u0304" + "\u0E1A\u0E26\u0032": "bl\u01B0\u0304" + "\u0E1A\u0E26": "bl\u01B0" + "\u0E1A\u0E27\u0E22": "bu\u0304ai" + "\u0E1A\u0E27": "bu\u0304a" + "\u0E1A\u0E2D\u0E22": "bo\u0304\u031Ci" + "\u0E1A\u0E2D": "bo\u0304\u031C" + "\u0E1A\u0E30": "ba" + "\u0E1A\u0E31\u0E22": "bai" + "\u0E1A\u0E31\u0E27\u0E30": "bua" + "\u0E1A\u0E31\u0E27": "bu\u0304a" + "\u0E1A\u0E31": "ba" + "\u0E1A\u0E32\u0E22": "ba\u0304i" + "\u0E1A\u0E32": "ba\u0304" + "\u0E1A\u0E33": "bam" + "\u0E1A\u0E34\u0E27": "biu" + "\u0E1A\u0E34": "bi" + "\u0E1A\u0E35": "bi\u0304" + "\u0E1A\u0E36": "b\u01B0" + "\u0E1A\u0E37": "b\u01B0\u0304" + "\u0E1A\u0E38\u0E22": "bui" + "\u0E1A\u0E38": "bu" + "\u0E1A\u0E39": "bu\u0304" + "\u0E1A\u0E40\u0E22": "bao" + "\u0E1A\u0E40\u0E30": "be" + "\u0E1A\u0E40\u0E47": "be" + "\u0E1A\u0E40\u0E27\u0E30": "bo\u031C" + "\u0E1A\u0E40\u0E2D\u0E30": "b\u0153" + "\u0E1A\u0E40\u0E2D": "b\u0153\u0304" + "\u0E1A\u0E40\u0E34": "b\u0153\u0304" + "\u0E1A\u0E40\u0E22": "b\u0153\u0304i" + "\u0E1A\u0E40\u0E35\u0E22\u0E27": "bi\u0304eo" + "\u0E1A\u0E40\u0E35\u0E22\u0E30": "bia" + "\u0E1A\u0E40\u0E35\u0E22": "bi\u0304a" + "\u0E1A\u0E40\u0E37\u0E2D\u0E22": "b\u01B0\u0304ai" + "\u0E1A\u0E40\u0E37\u0E2D\u0E30": "b\u01B0a" + "\u0E1A\u0E40\u0E37\u0E2D": "b\u01B0\u0304a" + "\u0E1A\u0E40\u0E47\u0E27": "beo" + "\u0E1A\u0E40\u0E27": "be\u0304o" + "\u0E1A\u0E40": "be\u0304" + "\u0E1A\u0E41\u0E27": "b\u00E6\u0304o" + "\u0E1A\u0E41\u0E30": "b\u00E6" + "\u0E1A\u0E41\u0E47": "b\u00E6" + "\u0E1A\u0E41": "b\u00E6\u0304" + "\u0E1A\u0E42\u0E22": "bo\u0304i" + "\u0E1A\u0E42\u0E30": "bo" + "\u0E1A\u0E42": "bo\u0304" + "\u0E1A\u0E43": "bai" + "\u0E1A\u0E44\u0E22": "bai" + "\u0E1A\u0E44": "bai" + # FINAL CONSONANT BO BAIMAI WITH NO VOWEL + "%\u0E1A": "p" + "\u0E1A": "bo" + + # CONSONANT PO PLA WITH VOWELS + "\u0E1B\u0E22\u0E27": "pa\u0304o" + "\u0E1B\u0E24": "pr\u01B0" + "\u0E1B\u0E24": "pri" + "\u0E1B\u0E24": "p\u0153\u0304" + "\u0E1B\u0E24\u0E32": "pr\u01B0\u0304" + "\u0E1B\u0E26\u0032": "pl\u01B0\u0304" + "\u0E1B\u0E26": "pl\u01B0" + "\u0E1B\u0E27\u0E22": "pu\u0304ai" + "\u0E1B\u0E27": "pu\u0304a" + "\u0E1B\u0E2D\u0E22": "po\u0304\u031Ci" + "\u0E1B\u0E2D": "po\u0304\u031C" + "\u0E1B\u0E30": "pa" + "\u0E1B\u0E31\u0E22": "pai" + "\u0E1B\u0E31\u0E27\u0E30": "pua" + "\u0E1B\u0E31\u0E27": "pu\u0304a" + "\u0E1B\u0E31": "pa" + "\u0E1B\u0E32\u0E22": "pa\u0304i" + "\u0E1B\u0E32": "pa\u0304" + "\u0E1B\u0E33": "pam" + "\u0E1B\u0E34\u0E27": "piu" + "\u0E1B\u0E34": "pi" + "\u0E1B\u0E35": "pi\u0304" + "\u0E1B\u0E36": "p\u01B0" + "\u0E1B\u0E37": "p\u01B0\u0304" + "\u0E1B\u0E38\u0E22": "pui" + "\u0E1B\u0E38": "pu" + "\u0E1B\u0E39": "pu\u0304" + "\u0E1B\u0E40\u0E22": "pao" + "\u0E1B\u0E40\u0E30": "pe" + "\u0E1B\u0E40\u0E47": "pe" + "\u0E1B\u0E40\u0E27\u0E30": "po\u031C" + "\u0E1B\u0E40\u0E2D\u0E30": "p\u0153" + "\u0E1B\u0E40\u0E2D": "p\u0153\u0304" + "\u0E1B\u0E40\u0E34": "p\u0153\u0304" + "\u0E1B\u0E40\u0E22": "p\u0153\u0304i" + "\u0E1B\u0E40\u0E35\u0E22\u0E27": "pi\u0304eo" + "\u0E1B\u0E40\u0E35\u0E22\u0E30": "pia" + "\u0E1B\u0E40\u0E35\u0E22": "pi\u0304a" + "\u0E1B\u0E40\u0E37\u0E2D\u0E22": "p\u01B0\u0304ai" + "\u0E1B\u0E40\u0E37\u0E2D\u0E30": "p\u01B0a" + "\u0E1B\u0E40\u0E37\u0E2D": "p\u01B0\u0304a" + "\u0E1B\u0E40\u0E47\u0E27": "peo" + "\u0E1B\u0E40\u0E27": "pe\u0304o" + "\u0E1B\u0E40": "pe\u0304" + "\u0E1B\u0E41\u0E27": "p\u00E6\u0304o" + "\u0E1B\u0E41\u0E30": "p\u00E6" + "\u0E1B\u0E41\u0E47": "p\u00E6" + "\u0E1B\u0E41": "p\u00E6\u0304" + "\u0E1B\u0E42\u0E22": "po\u0304i" + "\u0E1B\u0E42\u0E30": "po" + "\u0E1B\u0E42": "po\u0304" + "\u0E1B\u0E43": "pai" + "\u0E1B\u0E44\u0E22": "pai" + "\u0E1B\u0E44": "pai" + # FINAL CONSONANT PO PLA WITH NO VOWEL + "%\u0E1B": "p" + "\u0E1B": "po" + + # CONSONANT PHO PHUNG WITH VOWELS + "\u0E1C\u0E22\u0E27": "pha\u0304o" + "\u0E1C\u0E24": "phr\u01B0" + "\u0E1C\u0E24": "phri" + "\u0E1C\u0E24": "ph\u0153\u0304" + "\u0E1C\u0E24\u0E32": "phr\u01B0\u0304" + "\u0E1C\u0E26\u0032": "phl\u01B0\u0304" + "\u0E1C\u0E26": "phl\u01B0" + "\u0E1C\u0E27\u0E22": "phu\u0304ai" + "\u0E1C\u0E27": "phu\u0304a" + "\u0E1C\u0E2D\u0E22": "pho\u0304\u031Ci" + "\u0E1C\u0E2D": "pho\u0304\u031C" + "\u0E1C\u0E30": "pha" + "\u0E1C\u0E31\u0E22": "phai" + "\u0E1C\u0E31\u0E27\u0E30": "phua" + "\u0E1C\u0E31\u0E27": "phu\u0304a" + "\u0E1C\u0E31": "pha" + "\u0E1C\u0E32\u0E22": "pha\u0304i" + "\u0E1C\u0E32": "pha\u0304" + "\u0E1C\u0E33": "pham" + "\u0E1C\u0E34\u0E27": "phiu" + "\u0E1C\u0E34": "phi" + "\u0E1C\u0E35": "phi\u0304" + "\u0E1C\u0E36": "ph\u01B0" + "\u0E1C\u0E37": "ph\u01B0\u0304" + "\u0E1C\u0E38\u0E22": "phui" + "\u0E1C\u0E38": "phu" + "\u0E1C\u0E39": "phu\u0304" + "\u0E1C\u0E40\u0E22": "phao" + "\u0E1C\u0E40\u0E30": "phe" + "\u0E1C\u0E40\u0E47": "phe" + "\u0E1C\u0E40\u0E27\u0E30": "pho\u031C" + "\u0E1C\u0E40\u0E2D\u0E30": "ph\u0153" + "\u0E1C\u0E40\u0E2D": "ph\u0153\u0304" + "\u0E1C\u0E40\u0E34": "ph\u0153\u0304" + "\u0E1C\u0E40\u0E22": "ph\u0153\u0304i" + "\u0E1C\u0E40\u0E35\u0E22\u0E27": "phi\u0304eo" + "\u0E1C\u0E40\u0E35\u0E22\u0E30": "phia" + "\u0E1C\u0E40\u0E35\u0E22": "phi\u0304a" + "\u0E1C\u0E40\u0E37\u0E2D\u0E22": "ph\u01B0\u0304ai" + "\u0E1C\u0E40\u0E37\u0E2D\u0E30": "ph\u01B0a" + "\u0E1C\u0E40\u0E37\u0E2D": "ph\u01B0\u0304a" + "\u0E1C\u0E40\u0E47\u0E27": "pheo" + "\u0E1C\u0E40\u0E27": "phe\u0304o" + "\u0E1C\u0E40": "phe\u0304" + "\u0E1C\u0E41\u0E27": "ph\u00E6\u0304o" + "\u0E1C\u0E41\u0E30": "ph\u00E6" + "\u0E1C\u0E41\u0E47": "ph\u00E6" + "\u0E1C\u0E41": "ph\u00E6\u0304" + "\u0E1C\u0E42\u0E22": "pho\u0304i" + "\u0E1C\u0E42\u0E30": "pho" + "\u0E1C\u0E42": "pho\u0304" + "\u0E1C\u0E43": "phai" + "\u0E1C\u0E44\u0E22": "phai" + "\u0E1C\u0E44": "phai" + # FINAL CONSONANT PHO PHUNG WITH NO VOWEL + "%\u0E1C": "p" + "\u0E1C": "pho" + + # CONSONANT FO FA WITH VOWELS + "\u0E1D\u0E22\u0E27": "fa\u0304o" + "\u0E1D\u0E24": "fr\u01B0" + "\u0E1D\u0E24": "fri" + "\u0E1D\u0E24": "f\u0153\u0304" + "\u0E1D\u0E24\u0E32": "fr\u01B0\u0304" + "\u0E1D\u0E26\u0032": "fl\u01B0\u0304" + "\u0E1D\u0E26": "fl\u01B0" + "\u0E1D\u0E27\u0E22": "fu\u0304ai" + "\u0E1D\u0E27": "fu\u0304a" + "\u0E1D\u0E2D\u0E22": "fo\u0304\u031Ci" + "\u0E1D\u0E2D": "fo\u0304\u031C" + "\u0E1D\u0E30": "fa" + "\u0E1D\u0E31\u0E22": "fai" + "\u0E1D\u0E31\u0E27\u0E30": "fua" + "\u0E1D\u0E31\u0E27": "fu\u0304a" + "\u0E1D\u0E31": "fa" + "\u0E1D\u0E32\u0E22": "fa\u0304i" + "\u0E1D\u0E32": "fa\u0304" + "\u0E1D\u0E33": "fam" + "\u0E1D\u0E34\u0E27": "fiu" + "\u0E1D\u0E34": "fi" + "\u0E1D\u0E35": "fi\u0304" + "\u0E1D\u0E36": "f\u01B0" + "\u0E1D\u0E37": "f\u01B0\u0304" + "\u0E1D\u0E38\u0E22": "fui" + "\u0E1D\u0E38": "fu" + "\u0E1D\u0E39": "fu\u0304" + "\u0E1D\u0E40\u0E22": "fao" + "\u0E1D\u0E40\u0E30": "fe" + "\u0E1D\u0E40\u0E47": "fe" + "\u0E1D\u0E40\u0E27\u0E30": "fo\u031C" + "\u0E1D\u0E40\u0E2D\u0E30": "f\u0153" + "\u0E1D\u0E40\u0E2D": "f\u0153\u0304" + "\u0E1D\u0E40\u0E34": "f\u0153\u0304" + "\u0E1D\u0E40\u0E22": "f\u0153\u0304i" + "\u0E1D\u0E40\u0E35\u0E22\u0E27": "fi\u0304eo" + "\u0E1D\u0E40\u0E35\u0E22\u0E30": "fia" + "\u0E1D\u0E40\u0E35\u0E22": "fi\u0304a" + "\u0E1D\u0E40\u0E37\u0E2D\u0E22": "f\u01B0\u0304ai" + "\u0E1D\u0E40\u0E37\u0E2D\u0E30": "f\u01B0a" + "\u0E1D\u0E40\u0E37\u0E2D": "f\u01B0\u0304a" + "\u0E1D\u0E40\u0E47\u0E27": "feo" + "\u0E1D\u0E40\u0E27": "fe\u0304o" + "\u0E1D\u0E40": "fe\u0304" + "\u0E1D\u0E41\u0E27": "f\u00E6\u0304o" + "\u0E1D\u0E41\u0E30": "f\u00E6" + "\u0E1D\u0E41\u0E47": "f\u00E6" + "\u0E1D\u0E41": "f\u00E6\u0304" + "\u0E1D\u0E42\u0E22": "fo\u0304i" + "\u0E1D\u0E42\u0E30": "fo" + "\u0E1D\u0E42": "fo\u0304" + "\u0E1D\u0E43": "fai" + "\u0E1D\u0E44\u0E22": "fai" + "\u0E1D\u0E44": "fai" + # FINAL CONSONANT FO FA WITH NO VOWEL + "%\u0E1D": "p" + "\u0E1D": "fo" + + # CONSONANT PHO PHAN WITH VOWELS + "\u0E1E\u0E22\u0E27": "pha\u0304o" + "\u0E1E\u0E24": "phr\u01B0" + "\u0E1E\u0E24": "phri" + "\u0E1E\u0E24": "ph\u0153\u0304" + "\u0E1E\u0E24\u0E32": "phr\u01B0\u0304" + "\u0E1E\u0E26\u0032": "phl\u01B0\u0304" + "\u0E1E\u0E26": "phl\u01B0" + "\u0E1E\u0E27\u0E22": "phu\u0304ai" + "\u0E1E\u0E27": "phu\u0304a" + "\u0E1E\u0E2D\u0E22": "pho\u0304\u031Ci" + "\u0E1E\u0E2D": "pho\u0304\u031C" + "\u0E1E\u0E30": "pha" + "\u0E1E\u0E31\u0E22": "phai" + "\u0E1E\u0E31\u0E27\u0E30": "phua" + "\u0E1E\u0E31\u0E27": "phu\u0304a" + "\u0E1E\u0E31": "pha" + "\u0E1E\u0E32\u0E22": "pha\u0304i" + "\u0E1E\u0E32": "pha\u0304" + "\u0E1E\u0E33": "pham" + "\u0E1E\u0E34\u0E27": "phiu" + "\u0E1E\u0E34": "phi" + "\u0E1E\u0E35": "phi\u0304" + "\u0E1E\u0E36": "ph\u01B0" + "\u0E1E\u0E37": "ph\u01B0\u0304" + "\u0E1E\u0E38\u0E22": "phui" + "\u0E1E\u0E38": "phu" + "\u0E1E\u0E39": "phu\u0304" + "\u0E1E\u0E40\u0E22": "phao" + "\u0E1E\u0E40\u0E30": "phe" + "\u0E1E\u0E40\u0E47": "phe" + "\u0E1E\u0E40\u0E27\u0E30": "pho\u031C" + "\u0E1E\u0E40\u0E2D\u0E30": "ph\u0153" + "\u0E1E\u0E40\u0E2D": "ph\u0153\u0304" + "\u0E1E\u0E40\u0E34": "ph\u0153\u0304" + "\u0E1E\u0E40\u0E22": "ph\u0153\u0304i" + "\u0E1E\u0E40\u0E35\u0E22\u0E27": "phi\u0304eo" + "\u0E1E\u0E40\u0E35\u0E22\u0E30": "phia" + "\u0E1E\u0E40\u0E35\u0E22": "phi\u0304a" + "\u0E1E\u0E40\u0E37\u0E2D\u0E22": "ph\u01B0\u0304ai" + "\u0E1E\u0E40\u0E37\u0E2D\u0E30": "ph\u01B0a" + "\u0E1E\u0E40\u0E37\u0E2D": "ph\u01B0\u0304a" + "\u0E1E\u0E40\u0E47\u0E27": "pheo" + "\u0E1E\u0E40\u0E27": "phe\u0304o" + "\u0E1E\u0E40": "phe\u0304" + "\u0E1E\u0E41\u0E27": "ph\u00E6\u0304o" + "\u0E1E\u0E41\u0E30": "ph\u00E6" + "\u0E1E\u0E41\u0E47": "ph\u00E6" + "\u0E1E\u0E41": "ph\u00E6\u0304" + "\u0E1E\u0E42\u0E22": "pho\u0304i" + "\u0E1E\u0E42\u0E30": "pho" + "\u0E1E\u0E42": "pho\u0304" + "\u0E1E\u0E43": "phai" + "\u0E1E\u0E44\u0E22": "phai" + "\u0E1E\u0E44": "phai" + # FINAL CONSONANT PHO PHAN WITH NO VOWEL + "%\u0E1E": "p" + "\u0E1E": "pho" + + # CONSONANT FO FAN WITH VOWELS + "\u0E1F\u0E22\u0E27": "fa\u0304o" + "\u0E1F\u0E24": "fr\u01B0" + "\u0E1F\u0E24": "fri" + "\u0E1F\u0E24": "f\u0153\u0304" + "\u0E1F\u0E24\u0E32": "fr\u01B0\u0304" + "\u0E1F\u0E26\u0032": "fl\u01B0\u0304" + "\u0E1F\u0E26": "fl\u01B0" + "\u0E1F\u0E27\u0E22": "fu\u0304ai" + "\u0E1F\u0E27": "fu\u0304a" + "\u0E1F\u0E2D\u0E22": "fo\u0304\u031Ci" + "\u0E1F\u0E2D": "fo\u0304\u031C" + "\u0E1F\u0E30": "fa" + "\u0E1F\u0E31\u0E22": "fai" + "\u0E1F\u0E31\u0E27\u0E30": "fua" + "\u0E1F\u0E31\u0E27": "fu\u0304a" + "\u0E1F\u0E31": "fa" + "\u0E1F\u0E32\u0E22": "fa\u0304i" + "\u0E1F\u0E32": "fa\u0304" + "\u0E1F\u0E33": "fam" + "\u0E1F\u0E34\u0E27": "fiu" + "\u0E1F\u0E34": "fi" + "\u0E1F\u0E35": "fi\u0304" + "\u0E1F\u0E36": "f\u01B0" + "\u0E1F\u0E37": "f\u01B0\u0304" + "\u0E1F\u0E38\u0E22": "fui" + "\u0E1F\u0E38": "fu" + "\u0E1F\u0E39": "fu\u0304" + "\u0E1F\u0E40\u0E22": "fao" + "\u0E1F\u0E40\u0E30": "fe" + "\u0E1F\u0E40\u0E47": "fe" + "\u0E1F\u0E40\u0E27\u0E30": "fo\u031C" + "\u0E1F\u0E40\u0E2D\u0E30": "f\u0153" + "\u0E1F\u0E40\u0E2D": "f\u0153\u0304" + "\u0E1F\u0E40\u0E34": "f\u0153\u0304" + "\u0E1F\u0E40\u0E22": "f\u0153\u0304i" + "\u0E1F\u0E40\u0E35\u0E22\u0E27": "fi\u0304eo" + "\u0E1F\u0E40\u0E35\u0E22\u0E30": "fia" + "\u0E1F\u0E40\u0E35\u0E22": "fi\u0304a" + "\u0E1F\u0E40\u0E37\u0E2D\u0E22": "f\u01B0\u0304ai" + "\u0E1F\u0E40\u0E37\u0E2D\u0E30": "f\u01B0a" + "\u0E1F\u0E40\u0E37\u0E2D": "f\u01B0\u0304a" + "\u0E1F\u0E40\u0E47\u0E27": "feo" + "\u0E1F\u0E40\u0E27": "fe\u0304o" + "\u0E1F\u0E40": "fe\u0304" + "\u0E1F\u0E41\u0E27": "f\u00E6\u0304o" + "\u0E1F\u0E41\u0E30": "f\u00E6" + "\u0E1F\u0E41\u0E47": "f\u00E6" + "\u0E1F\u0E41": "f\u00E6\u0304" + "\u0E1F\u0E42\u0E22": "fo\u0304i" + "\u0E1F\u0E42\u0E30": "fo" + "\u0E1F\u0E42": "fo\u0304" + "\u0E1F\u0E43": "fai" + "\u0E1F\u0E44\u0E22": "fai" + "\u0E1F\u0E44": "fai" + # FINAL CONSONANT FO FAN WITH NO VOWEL + "%\u0E1F": "p" + "\u0E1F": "fo" + + # CONSONANT PHO SAMPHAO WITH VOWELS + "\u0E20\u0E22\u0E27": "pha\u0304o" + "\u0E20\u0E24": "phr\u01B0" + "\u0E20\u0E24": "phri" + "\u0E20\u0E24": "ph\u0153\u0304" + "\u0E20\u0E24\u0E32": "phr\u01B0\u0304" + "\u0E20\u0E26\u0032": "phl\u01B0\u0304" + "\u0E20\u0E26": "phl\u01B0" + "\u0E20\u0E27\u0E22": "phu\u0304ai" + "\u0E20\u0E27": "phu\u0304a" + "\u0E20\u0E2D\u0E22": "pho\u0304\u031Ci" + "\u0E20\u0E2D": "pho\u0304\u031C" + "\u0E20\u0E30": "pha" + "\u0E20\u0E31\u0E22": "phai" + "\u0E20\u0E31\u0E27\u0E30": "phua" + "\u0E20\u0E31\u0E27": "phu\u0304a" + "\u0E20\u0E31": "pha" + "\u0E20\u0E32\u0E22": "pha\u0304i" + "\u0E20\u0E32": "pha\u0304" + "\u0E20\u0E33": "pham" + "\u0E20\u0E34\u0E27": "phiu" + "\u0E20\u0E34": "phi" + "\u0E20\u0E35": "phi\u0304" + "\u0E20\u0E36": "ph\u01B0" + "\u0E20\u0E37": "ph\u01B0\u0304" + "\u0E20\u0E38\u0E22": "phui" + "\u0E20\u0E38": "phu" + "\u0E20\u0E39": "phu\u0304" + "\u0E20\u0E40\u0E22": "phao" + "\u0E20\u0E40\u0E30": "phe" + "\u0E20\u0E40\u0E47": "phe" + "\u0E20\u0E40\u0E27\u0E30": "pho\u031C" + "\u0E20\u0E40\u0E2D\u0E30": "ph\u0153" + "\u0E20\u0E40\u0E2D": "ph\u0153\u0304" + "\u0E20\u0E40\u0E34": "ph\u0153\u0304" + "\u0E20\u0E40\u0E22": "ph\u0153\u0304i" + "\u0E20\u0E40\u0E35\u0E22\u0E27": "phi\u0304eo" + "\u0E20\u0E40\u0E35\u0E22\u0E30": "phia" + "\u0E20\u0E40\u0E35\u0E22": "phi\u0304a" + "\u0E20\u0E40\u0E37\u0E2D\u0E22": "ph\u01B0\u0304ai" + "\u0E20\u0E40\u0E37\u0E2D\u0E30": "ph\u01B0a" + "\u0E20\u0E40\u0E37\u0E2D": "ph\u01B0\u0304a" + "\u0E20\u0E40\u0E47\u0E27": "pheo" + "\u0E20\u0E40\u0E27": "phe\u0304o" + "\u0E20\u0E40": "phe\u0304" + "\u0E20\u0E41\u0E27": "ph\u00E6\u0304o" + "\u0E20\u0E41\u0E30": "ph\u00E6" + "\u0E20\u0E41\u0E47": "ph\u00E6" + "\u0E20\u0E41": "ph\u00E6\u0304" + "\u0E20\u0E42\u0E22": "pho\u0304i" + "\u0E20\u0E42\u0E30": "pho" + "\u0E20\u0E42": "pho\u0304" + "\u0E20\u0E43": "phai" + "\u0E20\u0E44\u0E22": "phai" + "\u0E20\u0E44": "phai" + # FINAL CONSONANT PHO SAMPHAO WITH NO VOWEL + "%\u0E20": "p" + "\u0E20": "pho" + + # CONSONANT MO MA WITH VOWELS + "\u0E21\u0E22\u0E27": "ma\u0304o" + "\u0E21\u0E24": "mr\u01B0" + "\u0E21\u0E24": "mri" + "\u0E21\u0E24": "m\u0153\u0304" + "\u0E21\u0E24\u0E32": "mr\u01B0\u0304" + "\u0E21\u0E26\u0032": "ml\u01B0\u0304" + "\u0E21\u0E26": "ml\u01B0" + "\u0E21\u0E27\u0E22": "mu\u0304ai" + "\u0E21\u0E27": "mu\u0304a" + "\u0E21\u0E2D\u0E22": "mo\u0304\u031Ci" + "\u0E21\u0E2D": "mo\u0304\u031C" + "\u0E21\u0E30": "ma" + "\u0E21\u0E31\u0E22": "mai" + "\u0E21\u0E31\u0E27\u0E30": "mua" + "\u0E21\u0E31\u0E27": "mu\u0304a" + "\u0E21\u0E31": "ma" + "\u0E21\u0E32\u0E22": "ma\u0304i" + "\u0E21\u0E32": "ma\u0304" + "\u0E21\u0E33": "mam" + "\u0E21\u0E34\u0E27": "miu" + "\u0E21\u0E34": "mi" + "\u0E21\u0E35": "mi\u0304" + "\u0E21\u0E36": "m\u01B0" + "\u0E21\u0E37": "m\u01B0\u0304" + "\u0E21\u0E38\u0E22": "mui" + "\u0E21\u0E38": "mu" + "\u0E21\u0E39": "mu\u0304" + "\u0E21\u0E40\u0E22": "mao" + "\u0E21\u0E40\u0E30": "me" + "\u0E21\u0E40\u0E47": "me" + "\u0E21\u0E40\u0E27\u0E30": "mo\u031C" + "\u0E21\u0E40\u0E2D\u0E30": "m\u0153" + "\u0E21\u0E40\u0E2D": "m\u0153\u0304" + "\u0E21\u0E40\u0E34": "m\u0153\u0304" + "\u0E21\u0E40\u0E22": "m\u0153\u0304i" + "\u0E21\u0E40\u0E35\u0E22\u0E27": "mi\u0304eo" + "\u0E21\u0E40\u0E35\u0E22\u0E30": "mia" + "\u0E21\u0E40\u0E35\u0E22": "mi\u0304a" + "\u0E21\u0E40\u0E37\u0E2D\u0E22": "m\u01B0\u0304ai" + "\u0E21\u0E40\u0E37\u0E2D\u0E30": "m\u01B0a" + "\u0E21\u0E40\u0E37\u0E2D": "m\u01B0\u0304a" + "\u0E21\u0E40\u0E47\u0E27": "meo" + "\u0E21\u0E40\u0E27": "me\u0304o" + "\u0E21\u0E40": "me\u0304" + "\u0E21\u0E41\u0E27": "m\u00E6\u0304o" + "\u0E21\u0E41\u0E30": "m\u00E6" + "\u0E21\u0E41\u0E47": "m\u00E6" + "\u0E21\u0E41": "m\u00E6\u0304" + "\u0E21\u0E42\u0E22": "mo\u0304i" + "\u0E21\u0E42\u0E30": "mo" + "\u0E21\u0E42": "mo\u0304" + "\u0E21\u0E43": "mai" + "\u0E21\u0E44\u0E22": "mai" + "\u0E21\u0E44": "mai" + # FINAL CONSONANT MO MA WITH NO VOWEL + "%\u0E21": "m" + "\u0E21": "mo" + + # CONSONANT YO YAK WITH VOWELS + "\u0E22\u0E22\u0E27": "ya\u0304o" + "\u0E22\u0E24": "yr\u01B0" + "\u0E22\u0E24": "yri" + "\u0E22\u0E24": "y\u0153\u0304" + "\u0E22\u0E24\u0E32": "yr\u01B0\u0304" + "\u0E22\u0E26\u0032": "yl\u01B0\u0304" + "\u0E22\u0E26": "yl\u01B0" + "\u0E22\u0E27\u0E22": "yu\u0304ai" + "\u0E22\u0E27": "yu\u0304a" + "\u0E22\u0E2D\u0E22": "yo\u0304\u031Ci" + "\u0E22\u0E2D": "yo\u0304\u031C" + "\u0E22\u0E30": "ya" + "\u0E22\u0E31\u0E22": "yai" + "\u0E22\u0E31\u0E27\u0E30": "yua" + "\u0E22\u0E31\u0E27": "yu\u0304a" + "\u0E22\u0E31": "ya" + "\u0E22\u0E32\u0E22": "ya\u0304i" + "\u0E22\u0E32": "ya\u0304" + "\u0E22\u0E33": "yam" + "\u0E22\u0E34\u0E27": "yiu" + "\u0E22\u0E34": "yi" + "\u0E22\u0E35": "yi\u0304" + "\u0E22\u0E36": "y\u01B0" + "\u0E22\u0E37": "y\u01B0\u0304" + "\u0E22\u0E38\u0E22": "yui" + "\u0E22\u0E38": "yu" + "\u0E22\u0E39": "yu\u0304" + "\u0E22\u0E40\u0E22": "yao" + "\u0E22\u0E40\u0E30": "ye" + "\u0E22\u0E40\u0E47": "ye" + "\u0E22\u0E40\u0E27\u0E30": "yo\u031C" + "\u0E22\u0E40\u0E2D\u0E30": "y\u0153" + "\u0E22\u0E40\u0E2D": "y\u0153\u0304" + "\u0E22\u0E40\u0E34": "y\u0153\u0304" + "\u0E22\u0E40\u0E22": "y\u0153\u0304i" + "\u0E22\u0E40\u0E35\u0E22\u0E27": "yi\u0304eo" + "\u0E22\u0E40\u0E35\u0E22\u0E30": "yia" + "\u0E22\u0E40\u0E35\u0E22": "yi\u0304a" + "\u0E22\u0E40\u0E37\u0E2D\u0E22": "y\u01B0\u0304ai" + "\u0E22\u0E40\u0E37\u0E2D\u0E30": "y\u01B0a" + "\u0E22\u0E40\u0E37\u0E2D": "y\u01B0\u0304a" + "\u0E22\u0E40\u0E47\u0E27": "yeo" + "\u0E22\u0E40\u0E27": "ye\u0304o" + "\u0E22\u0E40": "ye\u0304" + "\u0E22\u0E41\u0E27": "y\u00E6\u0304o" + "\u0E22\u0E41\u0E30": "y\u00E6" + "\u0E22\u0E41\u0E47": "y\u00E6" + "\u0E22\u0E41": "y\u00E6\u0304" + "\u0E22\u0E42\u0E22": "yo\u0304i" + "\u0E22\u0E42\u0E30": "yo" + "\u0E22\u0E42": "yo\u0304" + "\u0E22\u0E43": "yai" + "\u0E22\u0E44\u0E22": "yai" + "\u0E22\u0E44": "yai" + # FINAL CONSONANT YO YAK WITH NO VOWEL + "%\u0E22": "" + "\u0E22": "yo" + + # CONSONANT RO RUA WITH VOWELS + "\u0E23\u0E22\u0E27": "ra\u0304o" + "\u0E23\u0E24": "rr\u01B0" + "\u0E23\u0E24": "rri" + "\u0E23\u0E24": "r\u0153\u0304" + "\u0E23\u0E24\u0E32": "rr\u01B0\u0304" + "\u0E23\u0E26\u0032": "rl\u01B0\u0304" + "\u0E23\u0E26": "rl\u01B0" + "\u0E23\u0E27\u0E22": "ru\u0304ai" + "\u0E23\u0E27": "ru\u0304a" + "\u0E23\u0E2D\u0E22": "ro\u0304\u031Ci" + "\u0E23\u0E2D": "ro\u0304\u031C" + "\u0E23\u0E30": "ra" + "\u0E23\u0E31\u0E22": "rai" + "\u0E23\u0E31\u0E27\u0E30": "rua" + "\u0E23\u0E31\u0E27": "ru\u0304a" + "\u0E23\u0E31": "ra" + "\u0E23\u0E32\u0E22": "ra\u0304i" + "\u0E23\u0E32": "ra\u0304" + "\u0E23\u0E33": "ram" + "\u0E23\u0E34\u0E27": "riu" + "\u0E23\u0E34": "ri" + "\u0E23\u0E35": "ri\u0304" + "\u0E23\u0E36": "r\u01B0" + "\u0E23\u0E37": "r\u01B0\u0304" + "\u0E23\u0E38\u0E22": "rui" + "\u0E23\u0E38": "ru" + "\u0E23\u0E39": "ru\u0304" + "\u0E23\u0E40\u0E22": "rao" + "\u0E23\u0E40\u0E30": "re" + "\u0E23\u0E40\u0E47": "re" + "\u0E23\u0E40\u0E27\u0E30": "ro\u031C" + "\u0E23\u0E40\u0E2D\u0E30": "r\u0153" + "\u0E23\u0E40\u0E2D": "r\u0153\u0304" + "\u0E23\u0E40\u0E34": "r\u0153\u0304" + "\u0E23\u0E40\u0E22": "r\u0153\u0304i" + "\u0E23\u0E40\u0E35\u0E22\u0E27": "ri\u0304eo" + "\u0E23\u0E40\u0E35\u0E22\u0E30": "ria" + "\u0E23\u0E40\u0E35\u0E22": "ri\u0304a" + "\u0E23\u0E40\u0E37\u0E2D\u0E22": "r\u01B0\u0304ai" + "\u0E23\u0E40\u0E37\u0E2D\u0E30": "r\u01B0a" + "\u0E23\u0E40\u0E37\u0E2D": "r\u01B0\u0304a" + "\u0E23\u0E40\u0E47\u0E27": "reo" + "\u0E23\u0E40\u0E27": "re\u0304o" + "\u0E23\u0E40": "re\u0304" + "\u0E23\u0E41\u0E27": "r\u00E6\u0304o" + "\u0E23\u0E41\u0E30": "r\u00E6" + "\u0E23\u0E41\u0E47": "r\u00E6" + "\u0E23\u0E41": "r\u00E6\u0304" + "\u0E23\u0E42\u0E22": "ro\u0304i" + "\u0E23\u0E42\u0E30": "ro" + "\u0E23\u0E42": "ro\u0304" + "\u0E23\u0E43": "rai" + "\u0E23\u0E44\u0E22": "rai" + "\u0E23\u0E44": "rai" + # FINAL CONSONANT RO RUA WITH NO VOWEL + "%\u0E23": "n" + "\u0E23": "ro" + + # CONSONANT LO LING WITH VOWELS + "\u0E25\u0E22\u0E27": "la\u0304o" + "\u0E25\u0E24": "lr\u01B0" + "\u0E25\u0E24": "lri" + "\u0E25\u0E24": "l\u0153\u0304" + "\u0E25\u0E24\u0E32": "lr\u01B0\u0304" + "\u0E25\u0E26\u0032": "ll\u01B0\u0304" + "\u0E25\u0E26": "ll\u01B0" + "\u0E25\u0E27\u0E22": "lu\u0304ai" + "\u0E25\u0E27": "lu\u0304a" + "\u0E25\u0E2D\u0E22": "lo\u0304\u031Ci" + "\u0E25\u0E2D": "lo\u0304\u031C" + "\u0E25\u0E30": "la" + "\u0E25\u0E31\u0E22": "lai" + "\u0E25\u0E31\u0E27\u0E30": "lua" + "\u0E25\u0E31\u0E27": "lu\u0304a" + "\u0E25\u0E31": "la" + "\u0E25\u0E32\u0E22": "la\u0304i" + "\u0E25\u0E32": "la\u0304" + "\u0E25\u0E33": "lam" + "\u0E25\u0E34\u0E27": "liu" + "\u0E25\u0E34": "li" + "\u0E25\u0E35": "li\u0304" + "\u0E25\u0E36": "l\u01B0" + "\u0E25\u0E37": "l\u01B0\u0304" + "\u0E25\u0E38\u0E22": "lui" + "\u0E25\u0E38": "lu" + "\u0E25\u0E39": "lu\u0304" + "\u0E25\u0E40\u0E22": "lao" + "\u0E25\u0E40\u0E30": "le" + "\u0E25\u0E40\u0E47": "le" + "\u0E25\u0E40\u0E27\u0E30": "lo\u031C" + "\u0E25\u0E40\u0E2D\u0E30": "l\u0153" + "\u0E25\u0E40\u0E2D": "l\u0153\u0304" + "\u0E25\u0E40\u0E34": "l\u0153\u0304" + "\u0E25\u0E40\u0E22": "l\u0153\u0304i" + "\u0E25\u0E40\u0E35\u0E22\u0E27": "li\u0304eo" + "\u0E25\u0E40\u0E35\u0E22\u0E30": "lia" + "\u0E25\u0E40\u0E35\u0E22": "li\u0304a" + "\u0E25\u0E40\u0E37\u0E2D\u0E22": "l\u01B0\u0304ai" + "\u0E25\u0E40\u0E37\u0E2D\u0E30": "l\u01B0a" + "\u0E25\u0E40\u0E37\u0E2D": "l\u01B0\u0304a" + "\u0E25\u0E40\u0E47\u0E27": "leo" + "\u0E25\u0E40\u0E27": "le\u0304o" + "\u0E25\u0E40": "le\u0304" + "\u0E25\u0E41\u0E27": "l\u00E6\u0304o" + "\u0E25\u0E41\u0E30": "l\u00E6" + "\u0E25\u0E41\u0E47": "l\u00E6" + "\u0E25\u0E41": "l\u00E6\u0304" + "\u0E25\u0E42\u0E22": "lo\u0304i" + "\u0E25\u0E42\u0E30": "lo" + "\u0E25\u0E42": "lo\u0304" + "\u0E25\u0E43": "lai" + "\u0E25\u0E44\u0E22": "lai" + "\u0E25\u0E44": "lai" + # FINAL CONSONANT LO LING WITH NO VOWEL + "%\u0E25": "n" + "\u0E25": "lo" + + # CONSONANT WO WAEN WITH VOWELS + "\u0E27\u0E22\u0E27": "wa\u0304o" + "\u0E27\u0E24": "wr\u01B0" + "\u0E27\u0E24": "wri" + "\u0E27\u0E24": "w\u0153\u0304" + "\u0E27\u0E24\u0E32": "wr\u01B0\u0304" + "\u0E27\u0E26\u0032": "wl\u01B0\u0304" + "\u0E27\u0E26": "wl\u01B0" + "\u0E27\u0E27\u0E22": "wu\u0304ai" + "\u0E27\u0E27": "wu\u0304a" + "\u0E27\u0E2D\u0E22": "wo\u0304\u031Ci" + "\u0E27\u0E2D": "wo\u0304\u031C" + "\u0E27\u0E30": "wa" + "\u0E27\u0E31\u0E22": "wai" + "\u0E27\u0E31\u0E27\u0E30": "wua" + "\u0E27\u0E31\u0E27": "wu\u0304a" + "\u0E27\u0E31": "wa" + "\u0E27\u0E32\u0E22": "wa\u0304i" + "\u0E27\u0E32": "wa\u0304" + "\u0E27\u0E33": "wam" + "\u0E27\u0E34\u0E27": "wiu" + "\u0E27\u0E34": "wi" + "\u0E27\u0E35": "wi\u0304" + "\u0E27\u0E36": "w\u01B0" + "\u0E27\u0E37": "w\u01B0\u0304" + "\u0E27\u0E38\u0E22": "wui" + "\u0E27\u0E38": "wu" + "\u0E27\u0E39": "wu\u0304" + "\u0E27\u0E40\u0E22": "wao" + "\u0E27\u0E40\u0E30": "we" + "\u0E27\u0E40\u0E47": "we" + "\u0E27\u0E40\u0E27\u0E30": "wo\u031C" + "\u0E27\u0E40\u0E2D\u0E30": "w\u0153" + "\u0E27\u0E40\u0E2D": "w\u0153\u0304" + "\u0E27\u0E40\u0E34": "w\u0153\u0304" + "\u0E27\u0E40\u0E22": "w\u0153\u0304i" + "\u0E27\u0E40\u0E35\u0E22\u0E27": "wi\u0304eo" + "\u0E27\u0E40\u0E35\u0E22\u0E30": "wia" + "\u0E27\u0E40\u0E35\u0E22": "wi\u0304a" + "\u0E27\u0E40\u0E37\u0E2D\u0E22": "w\u01B0\u0304ai" + "\u0E27\u0E40\u0E37\u0E2D\u0E30": "w\u01B0a" + "\u0E27\u0E40\u0E37\u0E2D": "w\u01B0\u0304a" + "\u0E27\u0E40\u0E47\u0E27": "weo" + "\u0E27\u0E40\u0E27": "we\u0304o" + "\u0E27\u0E40": "we\u0304" + "\u0E27\u0E41\u0E27": "w\u00E6\u0304o" + "\u0E27\u0E41\u0E30": "w\u00E6" + "\u0E27\u0E41\u0E47": "w\u00E6" + "\u0E27\u0E41": "w\u00E6\u0304" + "\u0E27\u0E42\u0E22": "wo\u0304i" + "\u0E27\u0E42\u0E30": "wo" + "\u0E27\u0E42": "wo\u0304" + "\u0E27\u0E43": "wai" + "\u0E27\u0E44\u0E22": "wai" + "\u0E27\u0E44": "wai" + # FINAL CONSONANT WO WAEN WITH NO VOWEL + "%\u0E27": "" + "\u0E27": "wo" + + # CONSONANT SO SALA WITH VOWELS + "\u0E28\u0E22\u0E27": "sa\u0304o" + "\u0E28\u0E24": "sr\u01B0" + "\u0E28\u0E24": "sri" + "\u0E28\u0E24": "s\u0153\u0304" + "\u0E28\u0E24\u0E32": "sr\u01B0\u0304" + "\u0E28\u0E26\u0032": "sl\u01B0\u0304" + "\u0E28\u0E26": "sl\u01B0" + "\u0E28\u0E27\u0E22": "su\u0304ai" + "\u0E28\u0E27": "su\u0304a" + "\u0E28\u0E2D\u0E22": "so\u0304\u031Ci" + "\u0E28\u0E2D": "so\u0304\u031C" + "\u0E28\u0E30": "sa" + "\u0E28\u0E31\u0E22": "sai" + "\u0E28\u0E31\u0E27\u0E30": "sua" + "\u0E28\u0E31\u0E27": "su\u0304a" + "\u0E28\u0E31": "sa" + "\u0E28\u0E32\u0E22": "sa\u0304i" + "\u0E28\u0E32": "sa\u0304" + "\u0E28\u0E33": "sam" + "\u0E28\u0E34\u0E27": "siu" + "\u0E28\u0E34": "si" + "\u0E28\u0E35": "si\u0304" + "\u0E28\u0E36": "s\u01B0" + "\u0E28\u0E37": "s\u01B0\u0304" + "\u0E28\u0E38\u0E22": "sui" + "\u0E28\u0E38": "su" + "\u0E28\u0E39": "su\u0304" + "\u0E28\u0E40\u0E22": "sao" + "\u0E28\u0E40\u0E30": "se" + "\u0E28\u0E40\u0E47": "se" + "\u0E28\u0E40\u0E27\u0E30": "so\u031C" + "\u0E28\u0E40\u0E2D\u0E30": "s\u0153" + "\u0E28\u0E40\u0E2D": "s\u0153\u0304" + "\u0E28\u0E40\u0E34": "s\u0153\u0304" + "\u0E28\u0E40\u0E22": "s\u0153\u0304i" + "\u0E28\u0E40\u0E35\u0E22\u0E27": "si\u0304eo" + "\u0E28\u0E40\u0E35\u0E22\u0E30": "sia" + "\u0E28\u0E40\u0E35\u0E22": "si\u0304a" + "\u0E28\u0E40\u0E37\u0E2D\u0E22": "s\u01B0\u0304ai" + "\u0E28\u0E40\u0E37\u0E2D\u0E30": "s\u01B0a" + "\u0E28\u0E40\u0E37\u0E2D": "s\u01B0\u0304a" + "\u0E28\u0E40\u0E47\u0E27": "seo" + "\u0E28\u0E40\u0E27": "se\u0304o" + "\u0E28\u0E40": "se\u0304" + "\u0E28\u0E41\u0E27": "s\u00E6\u0304o" + "\u0E28\u0E41\u0E30": "s\u00E6" + "\u0E28\u0E41\u0E47": "s\u00E6" + "\u0E28\u0E41": "s\u00E6\u0304" + "\u0E28\u0E42\u0E22": "so\u0304i" + "\u0E28\u0E42\u0E30": "so" + "\u0E28\u0E42": "so\u0304" + "\u0E28\u0E43": "sai" + "\u0E28\u0E44\u0E22": "sai" + "\u0E28\u0E44": "sai" + # FINAL CONSONANT SO SALA WITH NO VOWEL + "%\u0E28": "t" + "\u0E28": "so" + + # CONSONANT SO RUSI WITH VOWELS + "\u0E29\u0E22\u0E27": "sa\u0304o" + "\u0E29\u0E24": "sr\u01B0" + "\u0E29\u0E24": "sri" + "\u0E29\u0E24": "s\u0153\u0304" + "\u0E29\u0E24\u0E32": "sr\u01B0\u0304" + "\u0E29\u0E26\u0032": "sl\u01B0\u0304" + "\u0E29\u0E26": "sl\u01B0" + "\u0E29\u0E27\u0E22": "su\u0304ai" + "\u0E29\u0E27": "su\u0304a" + "\u0E29\u0E2D\u0E22": "so\u0304\u031Ci" + "\u0E29\u0E2D": "so\u0304\u031C" + "\u0E29\u0E30": "sa" + "\u0E29\u0E31\u0E22": "sai" + "\u0E29\u0E31\u0E27\u0E30": "sua" + "\u0E29\u0E31\u0E27": "su\u0304a" + "\u0E29\u0E31": "sa" + "\u0E29\u0E32\u0E22": "sa\u0304i" + "\u0E29\u0E32": "sa\u0304" + "\u0E29\u0E33": "sam" + "\u0E29\u0E34\u0E27": "siu" + "\u0E29\u0E34": "si" + "\u0E29\u0E35": "si\u0304" + "\u0E29\u0E36": "s\u01B0" + "\u0E29\u0E37": "s\u01B0\u0304" + "\u0E29\u0E38\u0E22": "sui" + "\u0E29\u0E38": "su" + "\u0E29\u0E39": "su\u0304" + "\u0E29\u0E40\u0E22": "sao" + "\u0E29\u0E40\u0E30": "se" + "\u0E29\u0E40\u0E47": "se" + "\u0E29\u0E40\u0E27\u0E30": "so\u031C" + "\u0E29\u0E40\u0E2D\u0E30": "s\u0153" + "\u0E29\u0E40\u0E2D": "s\u0153\u0304" + "\u0E29\u0E40\u0E34": "s\u0153\u0304" + "\u0E29\u0E40\u0E22": "s\u0153\u0304i" + "\u0E29\u0E40\u0E35\u0E22\u0E27": "si\u0304eo" + "\u0E29\u0E40\u0E35\u0E22\u0E30": "sia" + "\u0E29\u0E40\u0E35\u0E22": "si\u0304a" + "\u0E29\u0E40\u0E37\u0E2D\u0E22": "s\u01B0\u0304ai" + "\u0E29\u0E40\u0E37\u0E2D\u0E30": "s\u01B0a" + "\u0E29\u0E40\u0E37\u0E2D": "s\u01B0\u0304a" + "\u0E29\u0E40\u0E47\u0E27": "seo" + "\u0E29\u0E40\u0E27": "se\u0304o" + "\u0E29\u0E40": "se\u0304" + "\u0E29\u0E41\u0E27": "s\u00E6\u0304o" + "\u0E29\u0E41\u0E30": "s\u00E6" + "\u0E29\u0E41\u0E47": "s\u00E6" + "\u0E29\u0E41": "s\u00E6\u0304" + "\u0E29\u0E42\u0E22": "so\u0304i" + "\u0E29\u0E42\u0E30": "so" + "\u0E29\u0E42": "so\u0304" + "\u0E29\u0E43": "sai" + "\u0E29\u0E44\u0E22": "sai" + "\u0E29\u0E44": "sai" + # FINAL CONSONANT SO RUSI WITH NO VOWEL + "%\u0E29": "t" + "\u0E29": "so" + + # CONSONANT SO SUA WITH VOWELS + "\u0E2A\u0E22\u0E27": "sa\u0304o" + "\u0E2A\u0E24": "sr\u01B0" + "\u0E2A\u0E24": "sri" + "\u0E2A\u0E24": "s\u0153\u0304" + "\u0E2A\u0E24\u0E32": "sr\u01B0\u0304" + "\u0E2A\u0E26\u0032": "sl\u01B0\u0304" + "\u0E2A\u0E26": "sl\u01B0" + "\u0E2A\u0E27\u0E22": "su\u0304ai" + "\u0E2A\u0E27": "su\u0304a" + "\u0E2A\u0E2D\u0E22": "so\u0304\u031Ci" + "\u0E2A\u0E2D": "so\u0304\u031C" + "\u0E2A\u0E30": "sa" + "\u0E2A\u0E31\u0E22": "sai" + "\u0E2A\u0E31\u0E27\u0E30": "sua" + "\u0E2A\u0E31\u0E27": "su\u0304a" + "\u0E2A\u0E31": "sa" + "\u0E2A\u0E32\u0E22": "sa\u0304i" + "\u0E2A\u0E32": "sa\u0304" + "\u0E2A\u0E33": "sam" + "\u0E2A\u0E34\u0E27": "siu" + "\u0E2A\u0E34": "si" + "\u0E2A\u0E35": "si\u0304" + "\u0E2A\u0E36": "s\u01B0" + "\u0E2A\u0E37": "s\u01B0\u0304" + "\u0E2A\u0E38\u0E22": "sui" + "\u0E2A\u0E38": "su" + "\u0E2A\u0E39": "su\u0304" + "\u0E2A\u0E40\u0E22": "sao" + "\u0E2A\u0E40\u0E30": "se" + "\u0E2A\u0E40\u0E47": "se" + "\u0E2A\u0E40\u0E27\u0E30": "so\u031C" + "\u0E2A\u0E40\u0E2D\u0E30": "s\u0153" + "\u0E2A\u0E40\u0E2D": "s\u0153\u0304" + "\u0E2A\u0E40\u0E34": "s\u0153\u0304" + "\u0E2A\u0E40\u0E22": "s\u0153\u0304i" + "\u0E2A\u0E40\u0E35\u0E22\u0E27": "si\u0304eo" + "\u0E2A\u0E40\u0E35\u0E22\u0E30": "sia" + "\u0E2A\u0E40\u0E35\u0E22": "si\u0304a" + "\u0E2A\u0E40\u0E37\u0E2D\u0E22": "s\u01B0\u0304ai" + "\u0E2A\u0E40\u0E37\u0E2D\u0E30": "s\u01B0a" + "\u0E2A\u0E40\u0E37\u0E2D": "s\u01B0\u0304a" + "\u0E2A\u0E40\u0E47\u0E27": "seo" + "\u0E2A\u0E40\u0E27": "se\u0304o" + "\u0E2A\u0E40": "se\u0304" + "\u0E2A\u0E41\u0E27": "s\u00E6\u0304o" + "\u0E2A\u0E41\u0E30": "s\u00E6" + "\u0E2A\u0E41\u0E47": "s\u00E6" + "\u0E2A\u0E41": "s\u00E6\u0304" + "\u0E2A\u0E42\u0E22": "so\u0304i" + "\u0E2A\u0E42\u0E30": "so" + "\u0E2A\u0E42": "so\u0304" + "\u0E2A\u0E43": "sai" + "\u0E2A\u0E44\u0E22": "sai" + "\u0E2A\u0E44": "sai" + # FINAL CONSONANT SO SUA WITH NO VOWEL + "%\u0E2A": "t" + "\u0E2A": "so" + + # CONSONANT HO HIP WITH VOWELS + "\u0E2B\u0E22\u0E27": "ha\u0304o" + "\u0E2B\u0E24": "hr\u01B0" + "\u0E2B\u0E24": "hri" + "\u0E2B\u0E24": "h\u0153\u0304" + "\u0E2B\u0E24\u0E32": "hr\u01B0\u0304" + "\u0E2B\u0E26\u0032": "hl\u01B0\u0304" + "\u0E2B\u0E26": "hl\u01B0" + "\u0E2B\u0E27\u0E22": "hu\u0304ai" + "\u0E2B\u0E27": "hu\u0304a" + "\u0E2B\u0E2D\u0E22": "ho\u0304\u031Ci" + "\u0E2B\u0E2D": "ho\u0304\u031C" + "\u0E2B\u0E30": "ha" + "\u0E2B\u0E31\u0E22": "hai" + "\u0E2B\u0E31\u0E27\u0E30": "hua" + "\u0E2B\u0E31\u0E27": "hu\u0304a" + "\u0E2B\u0E31": "ha" + "\u0E2B\u0E32\u0E22": "ha\u0304i" + "\u0E2B\u0E32": "ha\u0304" + "\u0E2B\u0E33": "ham" + "\u0E2B\u0E34\u0E27": "hiu" + "\u0E2B\u0E34": "hi" + "\u0E2B\u0E35": "hi\u0304" + "\u0E2B\u0E36": "h\u01B0" + "\u0E2B\u0E37": "h\u01B0\u0304" + "\u0E2B\u0E38\u0E22": "hui" + "\u0E2B\u0E38": "hu" + "\u0E2B\u0E39": "hu\u0304" + "\u0E2B\u0E40\u0E22": "hao" + "\u0E2B\u0E40\u0E30": "he" + "\u0E2B\u0E40\u0E47": "he" + "\u0E2B\u0E40\u0E27\u0E30": "ho\u031C" + "\u0E2B\u0E40\u0E2D\u0E30": "h\u0153" + "\u0E2B\u0E40\u0E2D": "h\u0153\u0304" + "\u0E2B\u0E40\u0E34": "h\u0153\u0304" + "\u0E2B\u0E40\u0E22": "h\u0153\u0304i" + "\u0E2B\u0E40\u0E35\u0E22\u0E27": "hi\u0304eo" + "\u0E2B\u0E40\u0E35\u0E22\u0E30": "hia" + "\u0E2B\u0E40\u0E35\u0E22": "hi\u0304a" + "\u0E2B\u0E40\u0E37\u0E2D\u0E22": "h\u01B0\u0304ai" + "\u0E2B\u0E40\u0E37\u0E2D\u0E30": "h\u01B0a" + "\u0E2B\u0E40\u0E37\u0E2D": "h\u01B0\u0304a" + "\u0E2B\u0E40\u0E47\u0E27": "heo" + "\u0E2B\u0E40\u0E27": "he\u0304o" + "\u0E2B\u0E40": "he\u0304" + "\u0E2B\u0E41\u0E27": "h\u00E6\u0304o" + "\u0E2B\u0E41\u0E30": "h\u00E6" + "\u0E2B\u0E41\u0E47": "h\u00E6" + "\u0E2B\u0E41": "h\u00E6\u0304" + "\u0E2B\u0E42\u0E22": "ho\u0304i" + "\u0E2B\u0E42\u0E30": "ho" + "\u0E2B\u0E42": "ho\u0304" + "\u0E2B\u0E43": "hai" + "\u0E2B\u0E44\u0E22": "hai" + "\u0E2B\u0E44": "hai" + # FINAL CONSONANT HO HIP WITH NO VOWEL + "%\u0E2B": "" + "\u0E2B": "ho" + + # CONSONANT LO CHULA WITH VOWELS + "\u0E2C\u0E22\u0E27": "la\u0304o" + "\u0E2C\u0E24": "lr\u01B0" + "\u0E2C\u0E24": "lri" + "\u0E2C\u0E24": "l\u0153\u0304" + "\u0E2C\u0E24\u0E32": "lr\u01B0\u0304" + "\u0E2C\u0E26\u0032": "ll\u01B0\u0304" + "\u0E2C\u0E26": "ll\u01B0" + "\u0E2C\u0E27\u0E22": "lu\u0304ai" + "\u0E2C\u0E27": "lu\u0304a" + "\u0E2C\u0E2D\u0E22": "lo\u0304\u031Ci" + "\u0E2C\u0E2D": "lo\u0304\u031C" + "\u0E2C\u0E30": "la" + "\u0E2C\u0E31\u0E22": "lai" + "\u0E2C\u0E31\u0E27\u0E30": "lua" + "\u0E2C\u0E31\u0E27": "lu\u0304a" + "\u0E2C\u0E31": "la" + "\u0E2C\u0E32\u0E22": "la\u0304i" + "\u0E2C\u0E32": "la\u0304" + "\u0E2C\u0E33": "lam" + "\u0E2C\u0E34\u0E27": "liu" + "\u0E2C\u0E34": "li" + "\u0E2C\u0E35": "li\u0304" + "\u0E2C\u0E36": "l\u01B0" + "\u0E2C\u0E37": "l\u01B0\u0304" + "\u0E2C\u0E38\u0E22": "lui" + "\u0E2C\u0E38": "lu" + "\u0E2C\u0E39": "lu\u0304" + "\u0E2C\u0E40\u0E22": "lao" + "\u0E2C\u0E40\u0E30": "le" + "\u0E2C\u0E40\u0E47": "le" + "\u0E2C\u0E40\u0E27\u0E30": "lo\u031C" + "\u0E2C\u0E40\u0E2D\u0E30": "l\u0153" + "\u0E2C\u0E40\u0E2D": "l\u0153\u0304" + "\u0E2C\u0E40\u0E34": "l\u0153\u0304" + "\u0E2C\u0E40\u0E22": "l\u0153\u0304i" + "\u0E2C\u0E40\u0E35\u0E22\u0E27": "li\u0304eo" + "\u0E2C\u0E40\u0E35\u0E22\u0E30": "lia" + "\u0E2C\u0E40\u0E35\u0E22": "li\u0304a" + "\u0E2C\u0E40\u0E37\u0E2D\u0E22": "l\u01B0\u0304ai" + "\u0E2C\u0E40\u0E37\u0E2D\u0E30": "l\u01B0a" + "\u0E2C\u0E40\u0E37\u0E2D": "l\u01B0\u0304a" + "\u0E2C\u0E40\u0E47\u0E27": "leo" + "\u0E2C\u0E40\u0E27": "le\u0304o" + "\u0E2C\u0E40": "le\u0304" + "\u0E2C\u0E41\u0E27": "l\u00E6\u0304o" + "\u0E2C\u0E41\u0E30": "l\u00E6" + "\u0E2C\u0E41\u0E47": "l\u00E6" + "\u0E2C\u0E41": "l\u00E6\u0304" + "\u0E2C\u0E42\u0E22": "lo\u0304i" + "\u0E2C\u0E42\u0E30": "lo" + "\u0E2C\u0E42": "lo\u0304" + "\u0E2C\u0E43": "lai" + "\u0E2C\u0E44\u0E22": "lai" + "\u0E2C\u0E44": "lai" + # FINAL CONSONANT LO CHULA WITH NO VOWEL + "%\u0E2C": "n" + "\u0E2C": "lo" + + # CONSONANT O ANG WITH VOWELS ALONE (NO CONSONANT) + "\u0E2D\u0E22\u0E27": "\u02BBa\u0304o" + "\u0E2D\u0E24": "\u02BBr\u01B0" + "\u0E2D\u0E24": "\u02BBri" + "\u0E2D\u0E24": "\u02BB\u0153\u0304" + "\u0E2D\u0E24\u0E32": "\u02BBr\u01B0\u0304" + "\u0E2D\u0E26\u0032": "\u02BBl\u01B0\u0304" + "\u0E2D\u0E26": "\u02BBl\u01B0" + "\u0E2D\u0E27\u0E22": "\u02BBu\u0304ai" + "\u0E2D\u0E27": "\u02BBu\u0304a" + "\u0E2D\u0E2D\u0E22": "\u02BBo\u0304\u031Ci" + "\u0E2D\u0E2D": "\u02BBo\u0304\u031C" + "\u0E2D\u0E30": "\u02BBa" + "\u0E2D\u0E31\u0E22": "\u02BBai" + "\u0E2D\u0E31\u0E27\u0E30": "\u02BBua" + "\u0E2D\u0E31\u0E27": "\u02BBu\u0304a" + "\u0E2D\u0E31": "\u02BBa" + "\u0E2D\u0E32\u0E22": "\u02BBa\u0304i" + "\u0E2D\u0E32": "\u02BBa\u0304" + "\u0E2D\u0E33": "\u02BBam" + "\u0E2D\u0E34\u0E27": "\u02BBiu" + "\u0E2D\u0E34": "\u02BBi" + "\u0E2D\u0E35": "\u02BBi\u0304" + "\u0E2D\u0E36": "\u02BB\u01B0" + "\u0E2D\u0E37": "\u02BB\u01B0\u0304" + "\u0E2D\u0E38\u0E22": "\u02BBui" + "\u0E2D\u0E38": "\u02BBu" + "\u0E2D\u0E39": "\u02BBu\u0304" + "\u0E2D\u0E40\u0E22": "\u02BBao" + "\u0E2D\u0E40\u0E30": "\u02BBe" + "\u0E2D\u0E40\u0E47": "\u02BBe" + "\u0E2D\u0E40\u0E27\u0E30": "\u02BBo\u031C" + "\u0E2D\u0E40\u0E2D\u0E30": "\u02BB\u0153" + "\u0E2D\u0E40\u0E2D": "\u02BB\u0153\u0304" + "\u0E2D\u0E40\u0E34": "\u02BB\u0153\u0304" + "\u0E2D\u0E40\u0E22": "\u02BB\u0153\u0304i" + "\u0E2D\u0E40\u0E35\u0E22\u0E27": "\u02BBi\u0304eo" + "\u0E2D\u0E40\u0E35\u0E22\u0E30": "\u02BBia" + "\u0E2D\u0E40\u0E35\u0E22": "\u02BBi\u0304a" + "\u0E2D\u0E40\u0E37\u0E2D\u0E22": "\u02BB\u01B0\u0304ai" + "\u0E2D\u0E40\u0E37\u0E2D\u0E30": "\u02BB\u01B0a" + "\u0E2D\u0E40\u0E37\u0E2D": "\u02BB\u01B0\u0304a" + "\u0E2D\u0E40\u0E47\u0E27": "\u02BBeo" + "\u0E2D\u0E40\u0E27": "\u02BBe\u0304o" + "\u0E2D\u0E40": "\u02BBe\u0304" + "\u0E2D\u0E41\u0E27": "\u02BB\u00E6\u0304o" + "\u0E2D\u0E41\u0E30": "\u02BB\u00E6" + "\u0E2D\u0E41\u0E47": "\u02BB\u00E6" + "\u0E2D\u0E41": "\u02BB\u00E6\u0304" + "\u0E2D\u0E42\u0E22": "\u02BBo\u0304i" + "\u0E2D\u0E42\u0E30": "\u02BBo" + "\u0E2D\u0E42": "\u02BBo\u0304" + "\u0E2D\u0E43": "\u02BBai" + "\u0E2D\u0E44\u0E22": "\u02BBai" + "\u0E2D\u0E44": "\u02BBai" + "\u0E2D": "\u02BBo" + + # CONSONANT HO NOKHUK WITH VOWELS + "\u0E2E\u0E22\u0E27": "ha\u0304o" + "\u0E2E\u0E24": "hr\u01B0" + "\u0E2E\u0E24": "hri" + "\u0E2E\u0E24": "h\u0153\u0304" + "\u0E2E\u0E24\u0E32": "hr\u01B0\u0304" + "\u0E2E\u0E26\u0032": "hl\u01B0\u0304" + "\u0E2E\u0E26": "hl\u01B0" + "\u0E2E\u0E27\u0E22": "hu\u0304ai" + "\u0E2E\u0E27": "hu\u0304a" + "\u0E2E\u0E2D\u0E22": "ho\u0304\u031Ci" + "\u0E2E\u0E2D": "ho\u0304\u031C" + "\u0E2E\u0E30": "ha" + "\u0E2E\u0E31\u0E22": "hai" + "\u0E2E\u0E31\u0E27\u0E30": "hua" + "\u0E2E\u0E31\u0E27": "hu\u0304a" + "\u0E2E\u0E31": "ha" + "\u0E2E\u0E32\u0E22": "ha\u0304i" + "\u0E2E\u0E32": "ha\u0304" + "\u0E2E\u0E33": "ham" + "\u0E2E\u0E34\u0E27": "hiu" + "\u0E2E\u0E34": "hi" + "\u0E2E\u0E35": "hi\u0304" + "\u0E2E\u0E36": "h\u01B0" + "\u0E2E\u0E37": "h\u01B0\u0304" + "\u0E2E\u0E38\u0E22": "hui" + "\u0E2E\u0E38": "hu" + "\u0E2E\u0E39": "hu\u0304" + "\u0E2E\u0E40\u0E22": "hao" + "\u0E2E\u0E40\u0E30": "he" + "\u0E2E\u0E40\u0E47": "he" + "\u0E2E\u0E40\u0E27\u0E30": "ho\u031C" + "\u0E2E\u0E40\u0E2D\u0E30": "h\u0153" + "\u0E2E\u0E40\u0E2D": "h\u0153\u0304" + "\u0E2E\u0E40\u0E34": "h\u0153\u0304" + "\u0E2E\u0E40\u0E22": "h\u0153\u0304i" + "\u0E2E\u0E40\u0E35\u0E22\u0E27": "hi\u0304eo" + "\u0E2E\u0E40\u0E35\u0E22\u0E30": "hia" + "\u0E2E\u0E40\u0E35\u0E22": "hi\u0304a" + "\u0E2E\u0E40\u0E37\u0E2D\u0E22": "h\u01B0\u0304ai" + "\u0E2E\u0E40\u0E37\u0E2D\u0E30": "h\u01B0a" + "\u0E2E\u0E40\u0E37\u0E2D": "h\u01B0\u0304a" + "\u0E2E\u0E40\u0E47\u0E27": "heo" + "\u0E2E\u0E40\u0E27": "he\u0304o" + "\u0E2E\u0E40": "he\u0304" + "\u0E2E\u0E41\u0E27": "h\u00E6\u0304o" + "\u0E2E\u0E41\u0E30": "h\u00E6" + "\u0E2E\u0E41\u0E47": "h\u00E6" + "\u0E2E\u0E41": "h\u00E6\u0304" + "\u0E2E\u0E42\u0E22": "ho\u0304i" + "\u0E2E\u0E42\u0E30": "ho" + "\u0E2E\u0E42": "ho\u0304" + "\u0E2E\u0E43": "hai" + "\u0E2E\u0E44\u0E22": "hai" + "\u0E2E\u0E44": "hai" + # FINAL CONSONANT HO NOKHUK WITH NO VOWEL + "%\u0E2E": "" + "\u0E2E": "ho" + + "\u0E2F": "" + "\u0E30": "" + "\u0E31": "" + "\u0E32": "" + "\u0E33": "" + "\u0E34": "" + "\u0E35": "" + "\u0E36": "" + "\u0E37": "" + "\u0E38": "" + "\u0E39": "" + "\u0E3A": "" + "\u0E3F": "" + "\u0E40": "" + "\u0E41": "" + "\u0E42": "" + "\u0E43": "" + "\u0E44": "" + "\u0E45": "" + "\u0E46": "" + "\u0E47": "" + "\u0E48": "" + "\u0E49": "" + "\u0E4A": "" + "\u0E4B": "" + "\u0E4C": "" + "\u0E4D": "" + "\u0E4E": "" + "\u0E4F": "" + "\u0E50": "0" + "\u0E51": "1" + "\u0E52": "2" + "\u0E53": "3" + "\u0E54": "4" + "\u0E55": "5" + "\u0E56": "6" + "\u0E57": "7" + "\u0E58": "8" + "\u0E59": "9" + "\u0E5A": "" + "\u0E5B": "" diff --git a/scriptshifter/tables/data/thai_alt.yml b/scriptshifter/tables/data/thai_alt.yml deleted file mode 100644 index 72ac054..0000000 --- a/scriptshifter/tables/data/thai_alt.yml +++ /dev/null @@ -1,2665 +0,0 @@ ---- -general: - name: Thai (alternative) - case_sensitive: false - -script_to_roman: - map: - # COMMON SPECIAL CHARACTERS - - # Latin capital letter AE \u00C6 - # Latin small letter ae \u00E6 - # Latin capital letter OE \u0152 - # Latin small letter oe \u0153 - # Latin capital letter U-hook \u01AF - # Latin small letter u-hook \u01B0 - # Modifier letter turned comma (ayn) \u02BB - # combining macron \u0304 - # combining caron \u030C - # combining left half ring below (right cedilla) \u031C - - # TONE MARKS - REMOVED AT START OF CONVERSION - # THAI CHARACTER MAI EK (LOW TONE MARK) - "\u0E48": "" - # THAI CHARACTER MAI THO (FALLING TONE MARK) - "\u0E49": "" - # THAI CHARACTER MAI TRI (HIGH TONE MARK) - "\u0E4A": "" - # THAI CHARACTER MAI CHATTAWA (RISING TONE MARK) - "\u0E4B": "" - - # CONSONANT KO KAI WITH VOWELS - "\u0E01\u0E22\u0E27": "ka\u0304o" - "\u0E01\u0E24": "kr\u01B0" - "\u0E01\u0E24": "kri" - "\u0E01\u0E24": "k\u0153\u0304" - "\u0E01\u0E24\u0E32": "kr\u01B0\u0304" - "\u0E01\u0E26\u0032": "kl\u01B0\u0304" - "\u0E01\u0E26": "kl\u01B0" - "\u0E01\u0E27\u0E22": "ku\u0304ai" - "\u0E01\u0E27": "ku\u0304a" - "\u0E01\u0E2D\u0E22": "ko\u0304\u031Ci" - "\u0E01\u0E2D": "ko\u0304\u031C" - "\u0E01\u0E30": "ka" - "\u0E01\u0E31\u0E22": "kai" - "\u0E01\u0E31\u0E27\u0E30": "kua" - "\u0E01\u0E31\u0E27": "ku\u0304a" - "\u0E01\u0E31": "ka" - "\u0E01\u0E32\u0E22": "ka\u0304i" - "\u0E01\u0E32": "ka\u0304" - "\u0E01\u0E33": "kam" - "\u0E01\u0E34\u0E27": "kiu" - "\u0E01\u0E34": "ki" - "\u0E01\u0E35": "ki\u0304" - "\u0E01\u0E36": "k\u01B0" - "\u0E01\u0E37": "k\u01B0\u0304" - "\u0E01\u0E38\u0E22": "kui" - "\u0E01\u0E38": "ku" - "\u0E01\u0E39": "ku\u0304" - "\u0E01\u0E40\u0E22": "kao" - "\u0E01\u0E40\u0E30": "ke" - "\u0E01\u0E40\u0E47": "ke" - "\u0E01\u0E40\u0E27\u0E30": "ko\u031C" - "\u0E01\u0E40\u0E2D\u0E30": "k\u0153" - "\u0E01\u0E40\u0E2D": "k\u0153\u0304" - "\u0E01\u0E40\u0E34": "k\u0153\u0304" - "\u0E01\u0E40\u0E22": "k\u0153\u0304i" - "\u0E01\u0E40\u0E35\u0E22\u0E27": "ki\u0304eo" - "\u0E01\u0E40\u0E35\u0E22\u0E30": "kia" - "\u0E01\u0E40\u0E35\u0E22": "ki\u0304a" - "\u0E01\u0E40\u0E37\u0E2D\u0E22": "k\u01B0\u0304ai" - "\u0E01\u0E40\u0E37\u0E2D\u0E30": "k\u01B0a" - "\u0E01\u0E40\u0E37\u0E2D": "k\u01B0\u0304a" - "\u0E01\u0E40\u0E47\u0E27": "keo" - "\u0E01\u0E40\u0E27": "ke\u0304o" - "\u0E01\u0E40": "ke\u0304" - "\u0E01\u0E41\u0E27": "k\u00E6\u0304o" - "\u0E01\u0E41\u0E30": "k\u00E6" - "\u0E01\u0E41\u0E47": "k\u00E6" - "\u0E01\u0E41": "k\u00E6\u0304" - "\u0E01\u0E42\u0E22": "ko\u0304i" - "\u0E01\u0E42\u0E30": "ko" - "\u0E01\u0E42": "ko\u0304" - "\u0E01\u0E43": "kai" - "\u0E01\u0E44\u0E22": "kai" - "\u0E01\u0E44": "kai" - # FINAL CONSONANT KO KAI WITH NO VOWEL - "%\u0E01": "k" - "\u0E01": "ko" - - # CONSONANT KHO KHAI WITH VOWELS - "\u0E02\u0E22\u0E27": "kha\u0304o" - "\u0E02\u0E24": "khr\u01B0" - "\u0E02\u0E24": "khri" - "\u0E02\u0E24": "kh\u0153\u0304" - "\u0E02\u0E24\u0E32": "khr\u01B0\u0304" - "\u0E02\u0E26\u0032": "khl\u01B0\u0304" - "\u0E02\u0E26": "khl\u01B0" - "\u0E02\u0E27\u0E22": "khu\u0304ai" - "\u0E02\u0E27": "khu\u0304a" - "\u0E02\u0E2D\u0E22": "kho\u0304\u031Ci" - "\u0E02\u0E2D": "kho\u0304\u031C" - "\u0E02\u0E30": "kha" - "\u0E02\u0E31\u0E22": "khai" - "\u0E02\u0E31\u0E27\u0E30": "khua" - "\u0E02\u0E31\u0E27": "khu\u0304a" - "\u0E02\u0E31": "kha" - "\u0E02\u0E32\u0E22": "kha\u0304i" - "\u0E02\u0E32": "kha\u0304" - "\u0E02\u0E33": "kham" - "\u0E02\u0E34\u0E27": "khiu" - "\u0E02\u0E34": "khi" - "\u0E02\u0E35": "khi\u0304" - "\u0E02\u0E36": "kh\u01B0" - "\u0E02\u0E37": "kh\u01B0\u0304" - "\u0E02\u0E38\u0E22": "khui" - "\u0E02\u0E38": "khu" - "\u0E02\u0E39": "khu\u0304" - "\u0E02\u0E40\u0E22": "khao" - "\u0E02\u0E40\u0E30": "khe" - "\u0E02\u0E40\u0E47": "khe" - "\u0E02\u0E40\u0E27\u0E30": "kho\u031C" - "\u0E02\u0E40\u0E2D\u0E30": "kh\u0153" - "\u0E02\u0E40\u0E2D": "kh\u0153\u0304" - "\u0E02\u0E40\u0E34": "kh\u0153\u0304" - "\u0E02\u0E40\u0E22": "kh\u0153\u0304i" - "\u0E02\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" - "\u0E02\u0E40\u0E35\u0E22\u0E30": "khia" - "\u0E02\u0E40\u0E35\u0E22": "khi\u0304a" - "\u0E02\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" - "\u0E02\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" - "\u0E02\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" - "\u0E02\u0E40\u0E47\u0E27": "kheo" - "\u0E02\u0E40\u0E27": "khe\u0304o" - "\u0E02\u0E40": "khe\u0304" - "\u0E02\u0E41\u0E27": "kh\u00E6\u0304o" - "\u0E02\u0E41\u0E30": "kh\u00E6" - "\u0E02\u0E41\u0E47": "kh\u00E6" - "\u0E02\u0E41": "kh\u00E6\u0304" - "\u0E02\u0E42\u0E22": "kho\u0304i" - "\u0E02\u0E42\u0E30": "kho" - "\u0E02\u0E42": "kho\u0304" - "\u0E02\u0E43": "khai" - "\u0E02\u0E44\u0E22": "khai" - "\u0E02\u0E44": "khai" - # FINAL CONSONANT KHO KHAI WITH NO VOWEL - "%\u0E02": "k" - "\u0E02": "kho" - - # CONSONANT KHO KHUAT WITH VOWELS - "\u0E03\u0E22\u0E27": "kha\u0304o" - "\u0E03\u0E24": "khr\u01B0" - "\u0E03\u0E24": "khri" - "\u0E03\u0E24": "kh\u0153\u0304" - "\u0E03\u0E24\u0E32": "khr\u01B0\u0304" - "\u0E03\u0E26\u0032": "khl\u01B0\u0304" - "\u0E03\u0E26": "khl\u01B0" - "\u0E03\u0E27\u0E22": "khu\u0304ai" - "\u0E03\u0E27": "khu\u0304a" - "\u0E03\u0E2D\u0E22": "kho\u0304\u031Ci" - "\u0E03\u0E2D": "kho\u0304\u031C" - "\u0E03\u0E30": "kha" - "\u0E03\u0E31\u0E22": "khai" - "\u0E03\u0E31\u0E27\u0E30": "khua" - "\u0E03\u0E31\u0E27": "khu\u0304a" - "\u0E03\u0E31": "kha" - "\u0E03\u0E32\u0E22": "kha\u0304i" - "\u0E03\u0E32": "kha\u0304" - "\u0E03\u0E33": "kham" - "\u0E03\u0E34\u0E27": "khiu" - "\u0E03\u0E34": "khi" - "\u0E03\u0E35": "khi\u0304" - "\u0E03\u0E36": "kh\u01B0" - "\u0E03\u0E37": "kh\u01B0\u0304" - "\u0E03\u0E38\u0E22": "khui" - "\u0E03\u0E38": "khu" - "\u0E03\u0E39": "khu\u0304" - "\u0E03\u0E40\u0E22": "khao" - "\u0E03\u0E40\u0E30": "khe" - "\u0E03\u0E40\u0E47": "khe" - "\u0E03\u0E40\u0E27\u0E30": "kho\u031C" - "\u0E03\u0E40\u0E2D\u0E30": "kh\u0153" - "\u0E03\u0E40\u0E2D": "kh\u0153\u0304" - "\u0E03\u0E40\u0E34": "kh\u0153\u0304" - "\u0E03\u0E40\u0E22": "kh\u0153\u0304i" - "\u0E03\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" - "\u0E03\u0E40\u0E35\u0E22\u0E30": "khia" - "\u0E03\u0E40\u0E35\u0E22": "khi\u0304a" - "\u0E03\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" - "\u0E03\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" - "\u0E03\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" - "\u0E03\u0E40\u0E47\u0E27": "kheo" - "\u0E03\u0E40\u0E27": "khe\u0304o" - "\u0E03\u0E40": "khe\u0304" - "\u0E03\u0E41\u0E27": "kh\u00E6\u0304o" - "\u0E03\u0E41\u0E30": "kh\u00E6" - "\u0E03\u0E41\u0E47": "kh\u00E6" - "\u0E03\u0E41": "kh\u00E6\u0304" - "\u0E03\u0E42\u0E22": "kho\u0304i" - "\u0E03\u0E42\u0E30": "kho" - "\u0E03\u0E42": "kho\u0304" - "\u0E03\u0E43": "khai" - "\u0E03\u0E44\u0E22": "khai" - "\u0E03\u0E44": "khai" - # FINAL CONSONANT KHO KHUAT WITH NO VOWEL - "%\u0E03": "k" - "\u0E03": "kho" - - # CONSONANT KHO KHWAI WITH VOWELS - "\u0E04\u0E22\u0E27": "kha\u0304o" - "\u0E04\u0E24": "khr\u01B0" - "\u0E04\u0E24": "khri" - "\u0E04\u0E24": "kh\u0153\u0304" - "\u0E04\u0E24\u0E32": "khr\u01B0\u0304" - "\u0E04\u0E26\u0032": "khl\u01B0\u0304" - "\u0E04\u0E26": "khl\u01B0" - "\u0E04\u0E27\u0E22": "khu\u0304ai" - "\u0E04\u0E27": "khu\u0304a" - "\u0E04\u0E2D\u0E22": "kho\u0304\u031Ci" - "\u0E04\u0E2D": "kho\u0304\u031C" - "\u0E04\u0E30": "kha" - "\u0E04\u0E31\u0E22": "khai" - "\u0E04\u0E31\u0E27\u0E30": "khua" - "\u0E04\u0E31\u0E27": "khu\u0304a" - "\u0E04\u0E31": "kha" - "\u0E04\u0E32\u0E22": "kha\u0304i" - "\u0E04\u0E32": "kha\u0304" - "\u0E04\u0E33": "kham" - "\u0E04\u0E34\u0E27": "khiu" - "\u0E04\u0E34": "khi" - "\u0E04\u0E35": "khi\u0304" - "\u0E04\u0E36": "kh\u01B0" - "\u0E04\u0E37": "kh\u01B0\u0304" - "\u0E04\u0E38\u0E22": "khui" - "\u0E04\u0E38": "khu" - "\u0E04\u0E39": "khu\u0304" - "\u0E04\u0E40\u0E22": "khao" - "\u0E04\u0E40\u0E30": "khe" - "\u0E04\u0E40\u0E47": "khe" - "\u0E04\u0E40\u0E27\u0E30": "kho\u031C" - "\u0E04\u0E40\u0E2D\u0E30": "kh\u0153" - "\u0E04\u0E40\u0E2D": "kh\u0153\u0304" - "\u0E04\u0E40\u0E34": "kh\u0153\u0304" - "\u0E04\u0E40\u0E22": "kh\u0153\u0304i" - "\u0E04\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" - "\u0E04\u0E40\u0E35\u0E22\u0E30": "khia" - "\u0E04\u0E40\u0E35\u0E22": "khi\u0304a" - "\u0E04\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" - "\u0E04\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" - "\u0E04\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" - "\u0E04\u0E40\u0E47\u0E27": "kheo" - "\u0E04\u0E40\u0E27": "khe\u0304o" - "\u0E04\u0E40": "khe\u0304" - "\u0E04\u0E41\u0E27": "kh\u00E6\u0304o" - "\u0E04\u0E41\u0E30": "kh\u00E6" - "\u0E04\u0E41\u0E47": "kh\u00E6" - "\u0E04\u0E41": "kh\u00E6\u0304" - "\u0E04\u0E42\u0E22": "kho\u0304i" - "\u0E04\u0E42\u0E30": "kho" - "\u0E04\u0E42": "kho\u0304" - "\u0E04\u0E43": "khai" - "\u0E04\u0E44\u0E22": "khai" - "\u0E04\u0E44": "khai" - # FINAL CONSONANT KHO KHWAI WITH NO VOWEL - "%\u0E04": "k" - "\u0E04": "kho" - - # CONSONANT KHO KHON WITH VOWELS - "\u0E05\u0E22\u0E27": "kha\u0304o" - "\u0E05\u0E24": "khr\u01B0" - "\u0E05\u0E24": "khri" - "\u0E05\u0E24": "kh\u0153\u0304" - "\u0E05\u0E24\u0E32": "khr\u01B0\u0304" - "\u0E05\u0E26\u0032": "khl\u01B0\u0304" - "\u0E05\u0E26": "khl\u01B0" - "\u0E05\u0E27\u0E22": "khu\u0304ai" - "\u0E05\u0E27": "khu\u0304a" - "\u0E05\u0E2D\u0E22": "kho\u0304\u031Ci" - "\u0E05\u0E2D": "kho\u0304\u031C" - "\u0E05\u0E30": "kha" - "\u0E05\u0E31\u0E22": "khai" - "\u0E05\u0E31\u0E27\u0E30": "khua" - "\u0E05\u0E31\u0E27": "khu\u0304a" - "\u0E05\u0E31": "kha" - "\u0E05\u0E32\u0E22": "kha\u0304i" - "\u0E05\u0E32": "kha\u0304" - "\u0E05\u0E33": "kham" - "\u0E05\u0E34\u0E27": "khiu" - "\u0E05\u0E34": "khi" - "\u0E05\u0E35": "khi\u0304" - "\u0E05\u0E36": "kh\u01B0" - "\u0E05\u0E37": "kh\u01B0\u0304" - "\u0E05\u0E38\u0E22": "khui" - "\u0E05\u0E38": "khu" - "\u0E05\u0E39": "khu\u0304" - "\u0E05\u0E40\u0E22": "khao" - "\u0E05\u0E40\u0E30": "khe" - "\u0E05\u0E40\u0E47": "khe" - "\u0E05\u0E40\u0E27\u0E30": "kho\u031C" - "\u0E05\u0E40\u0E2D\u0E30": "kh\u0153" - "\u0E05\u0E40\u0E2D": "kh\u0153\u0304" - "\u0E05\u0E40\u0E34": "kh\u0153\u0304" - "\u0E05\u0E40\u0E22": "kh\u0153\u0304i" - "\u0E05\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" - "\u0E05\u0E40\u0E35\u0E22\u0E30": "khia" - "\u0E05\u0E40\u0E35\u0E22": "khi\u0304a" - "\u0E05\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" - "\u0E05\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" - "\u0E05\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" - "\u0E05\u0E40\u0E47\u0E27": "kheo" - "\u0E05\u0E40\u0E27": "khe\u0304o" - "\u0E05\u0E40": "khe\u0304" - "\u0E05\u0E41\u0E27": "kh\u00E6\u0304o" - "\u0E05\u0E41\u0E30": "kh\u00E6" - "\u0E05\u0E41\u0E47": "kh\u00E6" - "\u0E05\u0E41": "kh\u00E6\u0304" - "\u0E05\u0E42\u0E22": "kho\u0304i" - "\u0E05\u0E42\u0E30": "kho" - "\u0E05\u0E42": "kho\u0304" - "\u0E05\u0E43": "khai" - "\u0E05\u0E44\u0E22": "khai" - "\u0E05\u0E44": "khai" - # FINAL CONSONANT KHO KHON WITH NO VOWEL - "%\u0E05": "k" - "\u0E05": "kho" - - # CONSONANT KHO RAKHANG WITH VOWELS - "\u0E06\u0E22\u0E27": "kha\u0304o" - "\u0E06\u0E24": "khr\u01B0" - "\u0E06\u0E24": "khri" - "\u0E06\u0E24": "kh\u0153\u0304" - "\u0E06\u0E24\u0E32": "khr\u01B0\u0304" - "\u0E06\u0E26\u0032": "khl\u01B0\u0304" - "\u0E06\u0E26": "khl\u01B0" - "\u0E06\u0E27\u0E22": "khu\u0304ai" - "\u0E06\u0E27": "khu\u0304a" - "\u0E06\u0E2D\u0E22": "kho\u0304\u031Ci" - "\u0E06\u0E2D": "kho\u0304\u031C" - "\u0E06\u0E30": "kha" - "\u0E06\u0E31\u0E22": "khai" - "\u0E06\u0E31\u0E27\u0E30": "khua" - "\u0E06\u0E31\u0E27": "khu\u0304a" - "\u0E06\u0E31": "kha" - "\u0E06\u0E32\u0E22": "kha\u0304i" - "\u0E06\u0E32": "kha\u0304" - "\u0E06\u0E33": "kham" - "\u0E06\u0E34\u0E27": "khiu" - "\u0E06\u0E34": "khi" - "\u0E06\u0E35": "khi\u0304" - "\u0E06\u0E36": "kh\u01B0" - "\u0E06\u0E37": "kh\u01B0\u0304" - "\u0E06\u0E38\u0E22": "khui" - "\u0E06\u0E38": "khu" - "\u0E06\u0E39": "khu\u0304" - "\u0E06\u0E40\u0E22": "khao" - "\u0E06\u0E40\u0E30": "khe" - "\u0E06\u0E40\u0E47": "khe" - "\u0E06\u0E40\u0E27\u0E30": "kho\u031C" - "\u0E06\u0E40\u0E2D\u0E30": "kh\u0153" - "\u0E06\u0E40\u0E2D": "kh\u0153\u0304" - "\u0E06\u0E40\u0E34": "kh\u0153\u0304" - "\u0E06\u0E40\u0E22": "kh\u0153\u0304i" - "\u0E06\u0E40\u0E35\u0E22\u0E27": "khi\u0304eo" - "\u0E06\u0E40\u0E35\u0E22\u0E30": "khia" - "\u0E06\u0E40\u0E35\u0E22": "khi\u0304a" - "\u0E06\u0E40\u0E37\u0E2D\u0E22": "kh\u01B0\u0304ai" - "\u0E06\u0E40\u0E37\u0E2D\u0E30": "kh\u01B0a" - "\u0E06\u0E40\u0E37\u0E2D": "kh\u01B0\u0304a" - "\u0E06\u0E40\u0E47\u0E27": "kheo" - "\u0E06\u0E40\u0E27": "khe\u0304o" - "\u0E06\u0E40": "khe\u0304" - "\u0E06\u0E41\u0E27": "kh\u00E6\u0304o" - "\u0E06\u0E41\u0E30": "kh\u00E6" - "\u0E06\u0E41\u0E47": "kh\u00E6" - "\u0E06\u0E41": "kh\u00E6\u0304" - "\u0E06\u0E42\u0E22": "kho\u0304i" - "\u0E06\u0E42\u0E30": "kho" - "\u0E06\u0E42": "kho\u0304" - "\u0E06\u0E43": "khai" - "\u0E06\u0E44\u0E22": "khai" - "\u0E06\u0E44": "khai" - # FINAL CONSONANT KHO RAKHANG WITH NO VOWEL - "%\u0E06": "k" - "\u0E06": "kho" - - # CONSONANT NGO NGU WITH VOWELS - "\u0E07\u0E22\u0E27": "nga\u0304o" - "\u0E07\u0E24": "ngr\u01B0" - "\u0E07\u0E24": "ngri" - "\u0E07\u0E24": "ng\u0153\u0304" - "\u0E07\u0E24\u0E32": "ngr\u01B0\u0304" - "\u0E07\u0E26\u0032": "ngl\u01B0\u0304" - "\u0E07\u0E26": "ngl\u01B0" - "\u0E07\u0E27\u0E22": "ngu\u0304ai" - "\u0E07\u0E27": "ngu\u0304a" - "\u0E07\u0E2D\u0E22": "ngo\u0304\u031Ci" - "\u0E07\u0E2D": "ngo\u0304\u031C" - "\u0E07\u0E30": "nga" - "\u0E07\u0E31\u0E22": "ngai" - "\u0E07\u0E31\u0E27\u0E30": "ngua" - "\u0E07\u0E31\u0E27": "ngu\u0304a" - "\u0E07\u0E31": "nga" - "\u0E07\u0E32\u0E22": "nga\u0304i" - "\u0E07\u0E32": "nga\u0304" - "\u0E07\u0E33": "ngam" - "\u0E07\u0E34\u0E27": "ngiu" - "\u0E07\u0E34": "ngi" - "\u0E07\u0E35": "ngi\u0304" - "\u0E07\u0E36": "ng\u01B0" - "\u0E07\u0E37": "ng\u01B0\u0304" - "\u0E07\u0E38\u0E22": "ngui" - "\u0E07\u0E38": "ngu" - "\u0E07\u0E39": "ngu\u0304" - "\u0E07\u0E40\u0E22": "ngao" - "\u0E07\u0E40\u0E30": "nge" - "\u0E07\u0E40\u0E47": "nge" - "\u0E07\u0E40\u0E27\u0E30": "ngo\u031C" - "\u0E07\u0E40\u0E2D\u0E30": "ng\u0153" - "\u0E07\u0E40\u0E2D": "ng\u0153\u0304" - "\u0E07\u0E40\u0E34": "ng\u0153\u0304" - "\u0E07\u0E40\u0E22": "ng\u0153\u0304i" - "\u0E07\u0E40\u0E35\u0E22\u0E27": "ngi\u0304eo" - "\u0E07\u0E40\u0E35\u0E22\u0E30": "ngia" - "\u0E07\u0E40\u0E35\u0E22": "ngi\u0304a" - "\u0E07\u0E40\u0E37\u0E2D\u0E22": "ng\u01B0\u0304ai" - "\u0E07\u0E40\u0E37\u0E2D\u0E30": "ng\u01B0a" - "\u0E07\u0E40\u0E37\u0E2D": "ng\u01B0\u0304a" - "\u0E07\u0E40\u0E47\u0E27": "ngeo" - "\u0E07\u0E40\u0E27": "nge\u0304o" - "\u0E07\u0E40": "nge\u0304" - "\u0E07\u0E41\u0E27": "ng\u00E6\u0304o" - "\u0E07\u0E41\u0E30": "ng\u00E6" - "\u0E07\u0E41\u0E47": "ng\u00E6" - "\u0E07\u0E41": "ng\u00E6\u0304" - "\u0E07\u0E42\u0E22": "ngo\u0304i" - "\u0E07\u0E42\u0E30": "ngo" - "\u0E07\u0E42": "ngo\u0304" - "\u0E07\u0E43": "ngai" - "\u0E07\u0E44\u0E22": "ngai" - "\u0E07\u0E44": "ngai" - # FINAL CONSONANT NGO NGU WITH NO VOWEL - "%\u0E07": "ng" - "\u0E07": "ngo" - - # CONSONANT CHO CHAN WITH VOWELS - "\u0E08\u0E22\u0E27": "c\u030Cha\u0304o" - "\u0E08\u0E24": "c\u030Chr\u01B0" - "\u0E08\u0E24": "c\u030Chri" - "\u0E08\u0E24": "c\u030Ch\u0153\u0304" - "\u0E08\u0E24\u0E32": "c\u030Chr\u01B0\u0304" - "\u0E08\u0E26\u0032": "c\u030Chl\u01B0\u0304" - "\u0E08\u0E26": "c\u030Chl\u01B0" - "\u0E08\u0E27\u0E22": "c\u030Chu\u0304ai" - "\u0E08\u0E27": "c\u030Chu\u0304a" - "\u0E08\u0E2D\u0E22": "c\u030Cho\u0304\u031Ci" - "\u0E08\u0E2D": "c\u030Cho\u0304\u031C" - "\u0E08\u0E30": "c\u030Cha" - "\u0E08\u0E31\u0E22": "c\u030Chai" - "\u0E08\u0E31\u0E27\u0E30": "c\u030Chua" - "\u0E08\u0E31\u0E27": "c\u030Chu\u0304a" - "\u0E08\u0E31": "c\u030Cha" - "\u0E08\u0E32\u0E22": "c\u030Cha\u0304i" - "\u0E08\u0E32": "c\u030Cha\u0304" - "\u0E08\u0E33": "c\u030Cham" - "\u0E08\u0E34\u0E27": "c\u030Chiu" - "\u0E08\u0E34": "c\u030Chi" - "\u0E08\u0E35": "c\u030Chi\u0304" - "\u0E08\u0E36": "c\u030Ch\u01B0" - "\u0E08\u0E37": "c\u030Ch\u01B0\u0304" - "\u0E08\u0E38\u0E22": "c\u030Chui" - "\u0E08\u0E38": "c\u030Chu" - "\u0E08\u0E39": "c\u030Chu\u0304" - "\u0E08\u0E40\u0E22": "c\u030Chao" - "\u0E08\u0E40\u0E30": "c\u030Che" - "\u0E08\u0E40\u0E47": "c\u030Che" - "\u0E08\u0E40\u0E27\u0E30": "c\u030Cho\u031C" - "\u0E08\u0E40\u0E2D\u0E30": "c\u030Ch\u0153" - "\u0E08\u0E40\u0E2D": "c\u030Ch\u0153\u0304" - "\u0E08\u0E40\u0E34": "c\u030Ch\u0153\u0304" - "\u0E08\u0E40\u0E22": "c\u030Ch\u0153\u0304i" - "\u0E08\u0E40\u0E35\u0E22\u0E27": "c\u030Chi\u0304eo" - "\u0E08\u0E40\u0E35\u0E22\u0E30": "c\u030Chia" - "\u0E08\u0E40\u0E35\u0E22": "c\u030Chi\u0304a" - "\u0E08\u0E40\u0E37\u0E2D\u0E22": "c\u030Ch\u01B0\u0304ai" - "\u0E08\u0E40\u0E37\u0E2D\u0E30": "c\u030Ch\u01B0a" - "\u0E08\u0E40\u0E37\u0E2D": "c\u030Ch\u01B0\u0304a" - "\u0E08\u0E40\u0E47\u0E27": "c\u030Cheo" - "\u0E08\u0E40\u0E27": "c\u030Che\u0304o" - "\u0E08\u0E40": "c\u030Che\u0304" - "\u0E08\u0E41\u0E27": "c\u030Ch\u00E6\u0304o" - "\u0E08\u0E41\u0E30": "c\u030Ch\u00E6" - "\u0E08\u0E41\u0E47": "c\u030Ch\u00E6" - "\u0E08\u0E41": "c\u030Ch\u00E6\u0304" - "\u0E08\u0E42\u0E22": "c\u030Cho\u0304i" - "\u0E08\u0E42\u0E30": "c\u030Cho" - "\u0E08\u0E42": "c\u030Cho\u0304" - "\u0E08\u0E43": "c\u030Chai" - "\u0E08\u0E44\u0E22": "c\u030Chai" - "\u0E08\u0E44": "c\u030Chai" - # FINAL CONSONANT CHO CHAN WITH NO VOWEL - "%\u0E08": "t" - "\u0E08": "c\u030Cho" - - # CONSONANT CHO CHING WITH VOWELS - "\u0E09\u0E22\u0E27": "cha\u0304o" - "\u0E09\u0E24": "chr\u01B0" - "\u0E09\u0E24": "chri" - "\u0E09\u0E24": "ch\u0153\u0304" - "\u0E09\u0E24\u0E32": "chr\u01B0\u0304" - "\u0E09\u0E26\u0032": "chl\u01B0\u0304" - "\u0E09\u0E26": "chl\u01B0" - "\u0E09\u0E27\u0E22": "chu\u0304ai" - "\u0E09\u0E27": "chu\u0304a" - "\u0E09\u0E2D\u0E22": "cho\u0304\u031Ci" - "\u0E09\u0E2D": "cho\u0304\u031C" - "\u0E09\u0E30": "cha" - "\u0E09\u0E31\u0E22": "chai" - "\u0E09\u0E31\u0E27\u0E30": "chua" - "\u0E09\u0E31\u0E27": "chu\u0304a" - "\u0E09\u0E31": "cha" - "\u0E09\u0E32\u0E22": "cha\u0304i" - "\u0E09\u0E32": "cha\u0304" - "\u0E09\u0E33": "cham" - "\u0E09\u0E34\u0E27": "chiu" - "\u0E09\u0E34": "chi" - "\u0E09\u0E35": "chi\u0304" - "\u0E09\u0E36": "ch\u01B0" - "\u0E09\u0E37": "ch\u01B0\u0304" - "\u0E09\u0E38\u0E22": "chui" - "\u0E09\u0E38": "chu" - "\u0E09\u0E39": "chu\u0304" - "\u0E09\u0E40\u0E22": "chao" - "\u0E09\u0E40\u0E30": "che" - "\u0E09\u0E40\u0E47": "che" - "\u0E09\u0E40\u0E27\u0E30": "cho\u031C" - "\u0E09\u0E40\u0E2D\u0E30": "ch\u0153" - "\u0E09\u0E40\u0E2D": "ch\u0153\u0304" - "\u0E09\u0E40\u0E34": "ch\u0153\u0304" - "\u0E09\u0E40\u0E22": "ch\u0153\u0304i" - "\u0E09\u0E40\u0E35\u0E22\u0E27": "chi\u0304eo" - "\u0E09\u0E40\u0E35\u0E22\u0E30": "chia" - "\u0E09\u0E40\u0E35\u0E22": "chi\u0304a" - "\u0E09\u0E40\u0E37\u0E2D\u0E22": "ch\u01B0\u0304ai" - "\u0E09\u0E40\u0E37\u0E2D\u0E30": "ch\u01B0a" - "\u0E09\u0E40\u0E37\u0E2D": "ch\u01B0\u0304a" - "\u0E09\u0E40\u0E47\u0E27": "cheo" - "\u0E09\u0E40\u0E27": "che\u0304o" - "\u0E09\u0E40": "che\u0304" - "\u0E09\u0E41\u0E27": "ch\u00E6\u0304o" - "\u0E09\u0E41\u0E30": "ch\u00E6" - "\u0E09\u0E41\u0E47": "ch\u00E6" - "\u0E09\u0E41": "ch\u00E6\u0304" - "\u0E09\u0E42\u0E22": "cho\u0304i" - "\u0E09\u0E42\u0E30": "cho" - "\u0E09\u0E42": "cho\u0304" - "\u0E09\u0E43": "chai" - "\u0E09\u0E44\u0E22": "chai" - "\u0E09\u0E44": "chai" - # FINAL CONSONANT CHO CHING WITH NO VOWEL - "%\u0E09": "t" - "\u0E09": "cho" - - # CONSONANT CHO CHANG WITH VOWELS - "\u0E0A\u0E22\u0E27": "cha\u0304o" - "\u0E0A\u0E24": "chr\u01B0" - "\u0E0A\u0E24": "chri" - "\u0E0A\u0E24": "ch\u0153\u0304" - "\u0E0A\u0E24\u0E32": "chr\u01B0\u0304" - "\u0E0A\u0E26\u0032": "chl\u01B0\u0304" - "\u0E0A\u0E26": "chl\u01B0" - "\u0E0A\u0E27\u0E22": "chu\u0304ai" - "\u0E0A\u0E27": "chu\u0304a" - "\u0E0A\u0E2D\u0E22": "cho\u0304\u031Ci" - "\u0E0A\u0E2D": "cho\u0304\u031C" - "\u0E0A\u0E30": "cha" - "\u0E0A\u0E31\u0E22": "chai" - "\u0E0A\u0E31\u0E27\u0E30": "chua" - "\u0E0A\u0E31\u0E27": "chu\u0304a" - "\u0E0A\u0E31": "cha" - "\u0E0A\u0E32\u0E22": "cha\u0304i" - "\u0E0A\u0E32": "cha\u0304" - "\u0E0A\u0E33": "cham" - "\u0E0A\u0E34\u0E27": "chiu" - "\u0E0A\u0E34": "chi" - "\u0E0A\u0E35": "chi\u0304" - "\u0E0A\u0E36": "ch\u01B0" - "\u0E0A\u0E37": "ch\u01B0\u0304" - "\u0E0A\u0E38\u0E22": "chui" - "\u0E0A\u0E38": "chu" - "\u0E0A\u0E39": "chu\u0304" - "\u0E0A\u0E40\u0E22": "chao" - "\u0E0A\u0E40\u0E30": "che" - "\u0E0A\u0E40\u0E47": "che" - "\u0E0A\u0E40\u0E27\u0E30": "cho\u031C" - "\u0E0A\u0E40\u0E2D\u0E30": "ch\u0153" - "\u0E0A\u0E40\u0E2D": "ch\u0153\u0304" - "\u0E0A\u0E40\u0E34": "ch\u0153\u0304" - "\u0E0A\u0E40\u0E22": "ch\u0153\u0304i" - "\u0E0A\u0E40\u0E35\u0E22\u0E27": "chi\u0304eo" - "\u0E0A\u0E40\u0E35\u0E22\u0E30": "chia" - "\u0E0A\u0E40\u0E35\u0E22": "chi\u0304a" - "\u0E0A\u0E40\u0E37\u0E2D\u0E22": "ch\u01B0\u0304ai" - "\u0E0A\u0E40\u0E37\u0E2D\u0E30": "ch\u01B0a" - "\u0E0A\u0E40\u0E37\u0E2D": "ch\u01B0\u0304a" - "\u0E0A\u0E40\u0E47\u0E27": "cheo" - "\u0E0A\u0E40\u0E27": "che\u0304o" - "\u0E0A\u0E40": "che\u0304" - "\u0E0A\u0E41\u0E27": "ch\u00E6\u0304o" - "\u0E0A\u0E41\u0E30": "ch\u00E6" - "\u0E0A\u0E41\u0E47": "ch\u00E6" - "\u0E0A\u0E41": "ch\u00E6\u0304" - "\u0E0A\u0E42\u0E22": "cho\u0304i" - "\u0E0A\u0E42\u0E30": "cho" - "\u0E0A\u0E42": "cho\u0304" - "\u0E0A\u0E43": "chai" - "\u0E0A\u0E44\u0E22": "chai" - "\u0E0A\u0E44": "chai" - # FINAL CONSONANT CHO CHANG WITH NO VOWEL - "%\u0E0A": "t" - "\u0E0A": "cho" - - # CONSONANT SO SO WITH VOWELS - "\u0E0B\u0E22\u0E27": "sa\u0304o" - "\u0E0B\u0E24": "sr\u01B0" - "\u0E0B\u0E24": "sri" - "\u0E0B\u0E24": "s\u0153\u0304" - "\u0E0B\u0E24\u0E32": "sr\u01B0\u0304" - "\u0E0B\u0E26\u0032": "sl\u01B0\u0304" - "\u0E0B\u0E26": "sl\u01B0" - "\u0E0B\u0E27\u0E22": "su\u0304ai" - "\u0E0B\u0E27": "su\u0304a" - "\u0E0B\u0E2D\u0E22": "so\u0304\u031Ci" - "\u0E0B\u0E2D": "so\u0304\u031C" - "\u0E0B\u0E30": "sa" - "\u0E0B\u0E31\u0E22": "sai" - "\u0E0B\u0E31\u0E27\u0E30": "sua" - "\u0E0B\u0E31\u0E27": "su\u0304a" - "\u0E0B\u0E31": "sa" - "\u0E0B\u0E32\u0E22": "sa\u0304i" - "\u0E0B\u0E32": "sa\u0304" - "\u0E0B\u0E33": "sam" - "\u0E0B\u0E34\u0E27": "siu" - "\u0E0B\u0E34": "si" - "\u0E0B\u0E35": "si\u0304" - "\u0E0B\u0E36": "s\u01B0" - "\u0E0B\u0E37": "s\u01B0\u0304" - "\u0E0B\u0E38\u0E22": "sui" - "\u0E0B\u0E38": "su" - "\u0E0B\u0E39": "su\u0304" - "\u0E0B\u0E40\u0E22": "sao" - "\u0E0B\u0E40\u0E30": "se" - "\u0E0B\u0E40\u0E47": "se" - "\u0E0B\u0E40\u0E27\u0E30": "so\u031C" - "\u0E0B\u0E40\u0E2D\u0E30": "s\u0153" - "\u0E0B\u0E40\u0E2D": "s\u0153\u0304" - "\u0E0B\u0E40\u0E34": "s\u0153\u0304" - "\u0E0B\u0E40\u0E22": "s\u0153\u0304i" - "\u0E0B\u0E40\u0E35\u0E22\u0E27": "si\u0304eo" - "\u0E0B\u0E40\u0E35\u0E22\u0E30": "sia" - "\u0E0B\u0E40\u0E35\u0E22": "si\u0304a" - "\u0E0B\u0E40\u0E37\u0E2D\u0E22": "s\u01B0\u0304ai" - "\u0E0B\u0E40\u0E37\u0E2D\u0E30": "s\u01B0a" - "\u0E0B\u0E40\u0E37\u0E2D": "s\u01B0\u0304a" - "\u0E0B\u0E40\u0E47\u0E27": "seo" - "\u0E0B\u0E40\u0E27": "se\u0304o" - "\u0E0B\u0E40": "se\u0304" - "\u0E0B\u0E41\u0E27": "s\u00E6\u0304o" - "\u0E0B\u0E41\u0E30": "s\u00E6" - "\u0E0B\u0E41\u0E47": "s\u00E6" - "\u0E0B\u0E41": "s\u00E6\u0304" - "\u0E0B\u0E42\u0E22": "so\u0304i" - "\u0E0B\u0E42\u0E30": "so" - "\u0E0B\u0E42": "so\u0304" - "\u0E0B\u0E43": "sai" - "\u0E0B\u0E44\u0E22": "sai" - "\u0E0B\u0E44": "sai" - # FINAL CONSONANT SO SO WITH NO VOWEL - "%\u0E0B": "t" - "\u0E0B": "so" - - # CONSONANT CHO CHOE WITH VOWELS - "\u0E0C\u0E22\u0E27": "cha\u0304o" - "\u0E0C\u0E24": "chr\u01B0" - "\u0E0C\u0E24": "chri" - "\u0E0C\u0E24": "ch\u0153\u0304" - "\u0E0C\u0E24\u0E32": "chr\u01B0\u0304" - "\u0E0C\u0E26\u0032": "chl\u01B0\u0304" - "\u0E0C\u0E26": "chl\u01B0" - "\u0E0C\u0E27\u0E22": "chu\u0304ai" - "\u0E0C\u0E27": "chu\u0304a" - "\u0E0C\u0E2D\u0E22": "cho\u0304\u031Ci" - "\u0E0C\u0E2D": "cho\u0304\u031C" - "\u0E0C\u0E30": "cha" - "\u0E0C\u0E31\u0E22": "chai" - "\u0E0C\u0E31\u0E27\u0E30": "chua" - "\u0E0C\u0E31\u0E27": "chu\u0304a" - "\u0E0C\u0E31": "cha" - "\u0E0C\u0E32\u0E22": "cha\u0304i" - "\u0E0C\u0E32": "cha\u0304" - "\u0E0C\u0E33": "cham" - "\u0E0C\u0E34\u0E27": "chiu" - "\u0E0C\u0E34": "chi" - "\u0E0C\u0E35": "chi\u0304" - "\u0E0C\u0E36": "ch\u01B0" - "\u0E0C\u0E37": "ch\u01B0\u0304" - "\u0E0C\u0E38\u0E22": "chui" - "\u0E0C\u0E38": "chu" - "\u0E0C\u0E39": "chu\u0304" - "\u0E0C\u0E40\u0E22": "chao" - "\u0E0C\u0E40\u0E30": "che" - "\u0E0C\u0E40\u0E47": "che" - "\u0E0C\u0E40\u0E27\u0E30": "cho\u031C" - "\u0E0C\u0E40\u0E2D\u0E30": "ch\u0153" - "\u0E0C\u0E40\u0E2D": "ch\u0153\u0304" - "\u0E0C\u0E40\u0E34": "ch\u0153\u0304" - "\u0E0C\u0E40\u0E22": "ch\u0153\u0304i" - "\u0E0C\u0E40\u0E35\u0E22\u0E27": "chi\u0304eo" - "\u0E0C\u0E40\u0E35\u0E22\u0E30": "chia" - "\u0E0C\u0E40\u0E35\u0E22": "chi\u0304a" - "\u0E0C\u0E40\u0E37\u0E2D\u0E22": "ch\u01B0\u0304ai" - "\u0E0C\u0E40\u0E37\u0E2D\u0E30": "ch\u01B0a" - "\u0E0C\u0E40\u0E37\u0E2D": "ch\u01B0\u0304a" - "\u0E0C\u0E40\u0E47\u0E27": "cheo" - "\u0E0C\u0E40\u0E27": "che\u0304o" - "\u0E0C\u0E40": "che\u0304" - "\u0E0C\u0E41\u0E27": "ch\u00E6\u0304o" - "\u0E0C\u0E41\u0E30": "ch\u00E6" - "\u0E0C\u0E41\u0E47": "ch\u00E6" - "\u0E0C\u0E41": "ch\u00E6\u0304" - "\u0E0C\u0E42\u0E22": "cho\u0304i" - "\u0E0C\u0E42\u0E30": "cho" - "\u0E0C\u0E42": "cho\u0304" - "\u0E0C\u0E43": "chai" - "\u0E0C\u0E44\u0E22": "chai" - "\u0E0C\u0E44": "chai" - # FINAL CONSONANT CHO CHOE WITH NO VOWEL - "%\u0E0C": "t" - "\u0E0C": "cho" - - # CONSONANT YO YING WITH VOWELS - "\u0E0D\u0E22\u0E27": "ya\u0304o" - "\u0E0D\u0E24": "yr\u01B0" - "\u0E0D\u0E24": "yri" - "\u0E0D\u0E24": "y\u0153\u0304" - "\u0E0D\u0E24\u0E32": "yr\u01B0\u0304" - "\u0E0D\u0E26\u0032": "yl\u01B0\u0304" - "\u0E0D\u0E26": "yl\u01B0" - "\u0E0D\u0E27\u0E22": "yu\u0304ai" - "\u0E0D\u0E27": "yu\u0304a" - "\u0E0D\u0E2D\u0E22": "yo\u0304\u031Ci" - "\u0E0D\u0E2D": "yo\u0304\u031C" - "\u0E0D\u0E30": "ya" - "\u0E0D\u0E31\u0E22": "yai" - "\u0E0D\u0E31\u0E27\u0E30": "yua" - "\u0E0D\u0E31\u0E27": "yu\u0304a" - "\u0E0D\u0E31": "ya" - "\u0E0D\u0E32\u0E22": "ya\u0304i" - "\u0E0D\u0E32": "ya\u0304" - "\u0E0D\u0E33": "yam" - "\u0E0D\u0E34\u0E27": "yiu" - "\u0E0D\u0E34": "yi" - "\u0E0D\u0E35": "yi\u0304" - "\u0E0D\u0E36": "y\u01B0" - "\u0E0D\u0E37": "y\u01B0\u0304" - "\u0E0D\u0E38\u0E22": "yui" - "\u0E0D\u0E38": "yu" - "\u0E0D\u0E39": "yu\u0304" - "\u0E0D\u0E40\u0E22": "yao" - "\u0E0D\u0E40\u0E30": "ye" - "\u0E0D\u0E40\u0E47": "ye" - "\u0E0D\u0E40\u0E27\u0E30": "yo\u031C" - "\u0E0D\u0E40\u0E2D\u0E30": "y\u0153" - "\u0E0D\u0E40\u0E2D": "y\u0153\u0304" - "\u0E0D\u0E40\u0E34": "y\u0153\u0304" - "\u0E0D\u0E40\u0E22": "y\u0153\u0304i" - "\u0E0D\u0E40\u0E35\u0E22\u0E27": "yi\u0304eo" - "\u0E0D\u0E40\u0E35\u0E22\u0E30": "yia" - "\u0E0D\u0E40\u0E35\u0E22": "yi\u0304a" - "\u0E0D\u0E40\u0E37\u0E2D\u0E22": "y\u01B0\u0304ai" - "\u0E0D\u0E40\u0E37\u0E2D\u0E30": "y\u01B0a" - "\u0E0D\u0E40\u0E37\u0E2D": "y\u01B0\u0304a" - "\u0E0D\u0E40\u0E47\u0E27": "yeo" - "\u0E0D\u0E40\u0E27": "ye\u0304o" - "\u0E0D\u0E40": "ye\u0304" - "\u0E0D\u0E41\u0E27": "y\u00E6\u0304o" - "\u0E0D\u0E41\u0E30": "y\u00E6" - "\u0E0D\u0E41\u0E47": "y\u00E6" - "\u0E0D\u0E41": "y\u00E6\u0304" - "\u0E0D\u0E42\u0E22": "yo\u0304i" - "\u0E0D\u0E42\u0E30": "yo" - "\u0E0D\u0E42": "yo\u0304" - "\u0E0D\u0E43": "yai" - "\u0E0D\u0E44\u0E22": "yai" - "\u0E0D\u0E44": "yai" - # FINAL CONSONANT YO YING WITH NO VOWEL - "%\u0E0D": "n" - "\u0E0D": "yo" - - # CONSONANT DO CHADA WITH VOWELS - "\u0E0E\u0E22\u0E27": "da\u0304o" - "\u0E0E\u0E24": "dr\u01B0" - "\u0E0E\u0E24": "dri" - "\u0E0E\u0E24": "d\u0153\u0304" - "\u0E0E\u0E24\u0E32": "dr\u01B0\u0304" - "\u0E0E\u0E26\u0032": "dl\u01B0\u0304" - "\u0E0E\u0E26": "dl\u01B0" - "\u0E0E\u0E27\u0E22": "du\u0304ai" - "\u0E0E\u0E27": "du\u0304a" - "\u0E0E\u0E2D\u0E22": "do\u0304\u031Ci" - "\u0E0E\u0E2D": "do\u0304\u031C" - "\u0E0E\u0E30": "da" - "\u0E0E\u0E31\u0E22": "dai" - "\u0E0E\u0E31\u0E27\u0E30": "dua" - "\u0E0E\u0E31\u0E27": "du\u0304a" - "\u0E0E\u0E31": "da" - "\u0E0E\u0E32\u0E22": "da\u0304i" - "\u0E0E\u0E32": "da\u0304" - "\u0E0E\u0E33": "dam" - "\u0E0E\u0E34\u0E27": "diu" - "\u0E0E\u0E34": "di" - "\u0E0E\u0E35": "di\u0304" - "\u0E0E\u0E36": "d\u01B0" - "\u0E0E\u0E37": "d\u01B0\u0304" - "\u0E0E\u0E38\u0E22": "dui" - "\u0E0E\u0E38": "du" - "\u0E0E\u0E39": "du\u0304" - "\u0E0E\u0E40\u0E22": "dao" - "\u0E0E\u0E40\u0E30": "de" - "\u0E0E\u0E40\u0E47": "de" - "\u0E0E\u0E40\u0E27\u0E30": "do\u031C" - "\u0E0E\u0E40\u0E2D\u0E30": "d\u0153" - "\u0E0E\u0E40\u0E2D": "d\u0153\u0304" - "\u0E0E\u0E40\u0E34": "d\u0153\u0304" - "\u0E0E\u0E40\u0E22": "d\u0153\u0304i" - "\u0E0E\u0E40\u0E35\u0E22\u0E27": "di\u0304eo" - "\u0E0E\u0E40\u0E35\u0E22\u0E30": "dia" - "\u0E0E\u0E40\u0E35\u0E22": "di\u0304a" - "\u0E0E\u0E40\u0E37\u0E2D\u0E22": "d\u01B0\u0304ai" - "\u0E0E\u0E40\u0E37\u0E2D\u0E30": "d\u01B0a" - "\u0E0E\u0E40\u0E37\u0E2D": "d\u01B0\u0304a" - "\u0E0E\u0E40\u0E47\u0E27": "deo" - "\u0E0E\u0E40\u0E27": "de\u0304o" - "\u0E0E\u0E40": "de\u0304" - "\u0E0E\u0E41\u0E27": "d\u00E6\u0304o" - "\u0E0E\u0E41\u0E30": "d\u00E6" - "\u0E0E\u0E41\u0E47": "d\u00E6" - "\u0E0E\u0E41": "d\u00E6\u0304" - "\u0E0E\u0E42\u0E22": "do\u0304i" - "\u0E0E\u0E42\u0E30": "do" - "\u0E0E\u0E42": "do\u0304" - "\u0E0E\u0E43": "dai" - "\u0E0E\u0E44\u0E22": "dai" - "\u0E0E\u0E44": "dai" - # FINAL CONSONANT DO CHADA WITH NO VOWEL - "%\u0E0E": "t" - "\u0E0E": "do" - - # CONSONANT TO PATAK WITH VOWELS - "\u0E0F\u0E22\u0E27": "ta\u0304o" - "\u0E0F\u0E24": "tr\u01B0" - "\u0E0F\u0E24": "tri" - "\u0E0F\u0E24": "t\u0153\u0304" - "\u0E0F\u0E24\u0E32": "tr\u01B0\u0304" - "\u0E0F\u0E26\u0032": "tl\u01B0\u0304" - "\u0E0F\u0E26": "tl\u01B0" - "\u0E0F\u0E27\u0E22": "tu\u0304ai" - "\u0E0F\u0E27": "tu\u0304a" - "\u0E0F\u0E2D\u0E22": "to\u0304\u031Ci" - "\u0E0F\u0E2D": "to\u0304\u031C" - "\u0E0F\u0E30": "ta" - "\u0E0F\u0E31\u0E22": "tai" - "\u0E0F\u0E31\u0E27\u0E30": "tua" - "\u0E0F\u0E31\u0E27": "tu\u0304a" - "\u0E0F\u0E31": "ta" - "\u0E0F\u0E32\u0E22": "ta\u0304i" - "\u0E0F\u0E32": "ta\u0304" - "\u0E0F\u0E33": "tam" - "\u0E0F\u0E34\u0E27": "tiu" - "\u0E0F\u0E34": "ti" - "\u0E0F\u0E35": "ti\u0304" - "\u0E0F\u0E36": "t\u01B0" - "\u0E0F\u0E37": "t\u01B0\u0304" - "\u0E0F\u0E38\u0E22": "tui" - "\u0E0F\u0E38": "tu" - "\u0E0F\u0E39": "tu\u0304" - "\u0E0F\u0E40\u0E22": "tao" - "\u0E0F\u0E40\u0E30": "te" - "\u0E0F\u0E40\u0E47": "te" - "\u0E0F\u0E40\u0E27\u0E30": "to\u031C" - "\u0E0F\u0E40\u0E2D\u0E30": "t\u0153" - "\u0E0F\u0E40\u0E2D": "t\u0153\u0304" - "\u0E0F\u0E40\u0E34": "t\u0153\u0304" - "\u0E0F\u0E40\u0E22": "t\u0153\u0304i" - "\u0E0F\u0E40\u0E35\u0E22\u0E27": "ti\u0304eo" - "\u0E0F\u0E40\u0E35\u0E22\u0E30": "tia" - "\u0E0F\u0E40\u0E35\u0E22": "ti\u0304a" - "\u0E0F\u0E40\u0E37\u0E2D\u0E22": "t\u01B0\u0304ai" - "\u0E0F\u0E40\u0E37\u0E2D\u0E30": "t\u01B0a" - "\u0E0F\u0E40\u0E37\u0E2D": "t\u01B0\u0304a" - "\u0E0F\u0E40\u0E47\u0E27": "teo" - "\u0E0F\u0E40\u0E27": "te\u0304o" - "\u0E0F\u0E40": "te\u0304" - "\u0E0F\u0E41\u0E27": "t\u00E6\u0304o" - "\u0E0F\u0E41\u0E30": "t\u00E6" - "\u0E0F\u0E41\u0E47": "t\u00E6" - "\u0E0F\u0E41": "t\u00E6\u0304" - "\u0E0F\u0E42\u0E22": "to\u0304i" - "\u0E0F\u0E42\u0E30": "to" - "\u0E0F\u0E42": "to\u0304" - "\u0E0F\u0E43": "tai" - "\u0E0F\u0E44\u0E22": "tai" - "\u0E0F\u0E44": "tai" - # FINAL CONSONANT TO PATAK WITH NO VOWEL - "%\u0E0F": "t" - "\u0E0F": "to" - - # CONSONANT THO THAN WITH VOWELS - "\u0E10\u0E22\u0E27": "tha\u0304o" - "\u0E10\u0E24": "thr\u01B0" - "\u0E10\u0E24": "thri" - "\u0E10\u0E24": "th\u0153\u0304" - "\u0E10\u0E24\u0E32": "thr\u01B0\u0304" - "\u0E10\u0E26\u0032": "thl\u01B0\u0304" - "\u0E10\u0E26": "thl\u01B0" - "\u0E10\u0E27\u0E22": "thu\u0304ai" - "\u0E10\u0E27": "thu\u0304a" - "\u0E10\u0E2D\u0E22": "tho\u0304\u031Ci" - "\u0E10\u0E2D": "tho\u0304\u031C" - "\u0E10\u0E30": "tha" - "\u0E10\u0E31\u0E22": "thai" - "\u0E10\u0E31\u0E27\u0E30": "thua" - "\u0E10\u0E31\u0E27": "thu\u0304a" - "\u0E10\u0E31": "tha" - "\u0E10\u0E32\u0E22": "tha\u0304i" - "\u0E10\u0E32": "tha\u0304" - "\u0E10\u0E33": "tham" - "\u0E10\u0E34\u0E27": "thiu" - "\u0E10\u0E34": "thi" - "\u0E10\u0E35": "thi\u0304" - "\u0E10\u0E36": "th\u01B0" - "\u0E10\u0E37": "th\u01B0\u0304" - "\u0E10\u0E38\u0E22": "thui" - "\u0E10\u0E38": "thu" - "\u0E10\u0E39": "thu\u0304" - "\u0E10\u0E40\u0E22": "thao" - "\u0E10\u0E40\u0E30": "the" - "\u0E10\u0E40\u0E47": "the" - "\u0E10\u0E40\u0E27\u0E30": "tho\u031C" - "\u0E10\u0E40\u0E2D\u0E30": "th\u0153" - "\u0E10\u0E40\u0E2D": "th\u0153\u0304" - "\u0E10\u0E40\u0E34": "th\u0153\u0304" - "\u0E10\u0E40\u0E22": "th\u0153\u0304i" - "\u0E10\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" - "\u0E10\u0E40\u0E35\u0E22\u0E30": "thia" - "\u0E10\u0E40\u0E35\u0E22": "thi\u0304a" - "\u0E10\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" - "\u0E10\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" - "\u0E10\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" - "\u0E10\u0E40\u0E47\u0E27": "theo" - "\u0E10\u0E40\u0E27": "the\u0304o" - "\u0E10\u0E40": "the\u0304" - "\u0E10\u0E41\u0E27": "th\u00E6\u0304o" - "\u0E10\u0E41\u0E30": "th\u00E6" - "\u0E10\u0E41\u0E47": "th\u00E6" - "\u0E10\u0E41": "th\u00E6\u0304" - "\u0E10\u0E42\u0E22": "tho\u0304i" - "\u0E10\u0E42\u0E30": "tho" - "\u0E10\u0E42": "tho\u0304" - "\u0E10\u0E43": "thai" - "\u0E10\u0E44\u0E22": "thai" - "\u0E10\u0E44": "thai" - # FINAL CONSONANT THO THAN WITH NO VOWEL - "%\u0E10": "th" - "\u0E10": "tho" - - # CONSONANT THO NANGMONTHO WITH VOWELS - "\u0E11\u0E22\u0E27": "tha\u0304o" - "\u0E11\u0E24": "thr\u01B0" - "\u0E11\u0E24": "thri" - "\u0E11\u0E24": "th\u0153\u0304" - "\u0E11\u0E24\u0E32": "thr\u01B0\u0304" - "\u0E11\u0E26\u0032": "thl\u01B0\u0304" - "\u0E11\u0E26": "thl\u01B0" - "\u0E11\u0E27\u0E22": "thu\u0304ai" - "\u0E11\u0E27": "thu\u0304a" - "\u0E11\u0E2D\u0E22": "tho\u0304\u031Ci" - "\u0E11\u0E2D": "tho\u0304\u031C" - "\u0E11\u0E30": "tha" - "\u0E11\u0E31\u0E22": "thai" - "\u0E11\u0E31\u0E27\u0E30": "thua" - "\u0E11\u0E31\u0E27": "thu\u0304a" - "\u0E11\u0E31": "tha" - "\u0E11\u0E32\u0E22": "tha\u0304i" - "\u0E11\u0E32": "tha\u0304" - "\u0E11\u0E33": "tham" - "\u0E11\u0E34\u0E27": "thiu" - "\u0E11\u0E34": "thi" - "\u0E11\u0E35": "thi\u0304" - "\u0E11\u0E36": "th\u01B0" - "\u0E11\u0E37": "th\u01B0\u0304" - "\u0E11\u0E38\u0E22": "thui" - "\u0E11\u0E38": "thu" - "\u0E11\u0E39": "thu\u0304" - "\u0E11\u0E40\u0E22": "thao" - "\u0E11\u0E40\u0E30": "the" - "\u0E11\u0E40\u0E47": "the" - "\u0E11\u0E40\u0E27\u0E30": "tho\u031C" - "\u0E11\u0E40\u0E2D\u0E30": "th\u0153" - "\u0E11\u0E40\u0E2D": "th\u0153\u0304" - "\u0E11\u0E40\u0E34": "th\u0153\u0304" - "\u0E11\u0E40\u0E22": "th\u0153\u0304i" - "\u0E11\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" - "\u0E11\u0E40\u0E35\u0E22\u0E30": "thia" - "\u0E11\u0E40\u0E35\u0E22": "thi\u0304a" - "\u0E11\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" - "\u0E11\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" - "\u0E11\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" - "\u0E11\u0E40\u0E47\u0E27": "theo" - "\u0E11\u0E40\u0E27": "the\u0304o" - "\u0E11\u0E40": "the\u0304" - "\u0E11\u0E41\u0E27": "th\u00E6\u0304o" - "\u0E11\u0E41\u0E30": "th\u00E6" - "\u0E11\u0E41\u0E47": "th\u00E6" - "\u0E11\u0E41": "th\u00E6\u0304" - "\u0E11\u0E42\u0E22": "tho\u0304i" - "\u0E11\u0E42\u0E30": "tho" - "\u0E11\u0E42": "tho\u0304" - "\u0E11\u0E43": "thai" - "\u0E11\u0E44\u0E22": "thai" - "\u0E11\u0E44": "thai" - # FINAL CONSONANT THO NANGMONTHO WITH NO VOWEL - "%\u0E11": "t" - "\u0E11": "tho" - - # CONSONANT THO PHUTHAO WITH VOWELS - "\u0E12\u0E22\u0E27": "tha\u0304o" - "\u0E12\u0E24": "thr\u01B0" - "\u0E12\u0E24": "thri" - "\u0E12\u0E24": "th\u0153\u0304" - "\u0E12\u0E24\u0E32": "thr\u01B0\u0304" - "\u0E12\u0E26\u0032": "thl\u01B0\u0304" - "\u0E12\u0E26": "thl\u01B0" - "\u0E12\u0E27\u0E22": "thu\u0304ai" - "\u0E12\u0E27": "thu\u0304a" - "\u0E12\u0E2D\u0E22": "tho\u0304\u031Ci" - "\u0E12\u0E2D": "tho\u0304\u031C" - "\u0E12\u0E30": "tha" - "\u0E12\u0E31\u0E22": "thai" - "\u0E12\u0E31\u0E27\u0E30": "thua" - "\u0E12\u0E31\u0E27": "thu\u0304a" - "\u0E12\u0E31": "tha" - "\u0E12\u0E32\u0E22": "tha\u0304i" - "\u0E12\u0E32": "tha\u0304" - "\u0E12\u0E33": "tham" - "\u0E12\u0E34\u0E27": "thiu" - "\u0E12\u0E34": "thi" - "\u0E12\u0E35": "thi\u0304" - "\u0E12\u0E36": "th\u01B0" - "\u0E12\u0E37": "th\u01B0\u0304" - "\u0E12\u0E38\u0E22": "thui" - "\u0E12\u0E38": "thu" - "\u0E12\u0E39": "thu\u0304" - "\u0E12\u0E40\u0E22": "thao" - "\u0E12\u0E40\u0E30": "the" - "\u0E12\u0E40\u0E47": "the" - "\u0E12\u0E40\u0E27\u0E30": "tho\u031C" - "\u0E12\u0E40\u0E2D\u0E30": "th\u0153" - "\u0E12\u0E40\u0E2D": "th\u0153\u0304" - "\u0E12\u0E40\u0E34": "th\u0153\u0304" - "\u0E12\u0E40\u0E22": "th\u0153\u0304i" - "\u0E12\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" - "\u0E12\u0E40\u0E35\u0E22\u0E30": "thia" - "\u0E12\u0E40\u0E35\u0E22": "thi\u0304a" - "\u0E12\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" - "\u0E12\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" - "\u0E12\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" - "\u0E12\u0E40\u0E47\u0E27": "theo" - "\u0E12\u0E40\u0E27": "the\u0304o" - "\u0E12\u0E40": "the\u0304" - "\u0E12\u0E41\u0E27": "th\u00E6\u0304o" - "\u0E12\u0E41\u0E30": "th\u00E6" - "\u0E12\u0E41\u0E47": "th\u00E6" - "\u0E12\u0E41": "th\u00E6\u0304" - "\u0E12\u0E42\u0E22": "tho\u0304i" - "\u0E12\u0E42\u0E30": "tho" - "\u0E12\u0E42": "tho\u0304" - "\u0E12\u0E43": "thai" - "\u0E12\u0E44\u0E22": "thai" - "\u0E12\u0E44": "thai" - # FINAL CONSONANT THO PHUTHAO WITH NO VOWEL - "%\u0E12": "t" - "\u0E12": "tho" - - # CONSONANT NO NEN WITH VOWELS - "\u0E13\u0E22\u0E27": "na\u0304o" - "\u0E13\u0E24": "nr\u01B0" - "\u0E13\u0E24": "nri" - "\u0E13\u0E24": "n\u0153\u0304" - "\u0E13\u0E24\u0E32": "nr\u01B0\u0304" - "\u0E13\u0E26\u0032": "nl\u01B0\u0304" - "\u0E13\u0E26": "nl\u01B0" - "\u0E13\u0E27\u0E22": "nu\u0304ai" - "\u0E13\u0E27": "nu\u0304a" - "\u0E13\u0E2D\u0E22": "no\u0304\u031Ci" - "\u0E13\u0E2D": "no\u0304\u031C" - "\u0E13\u0E30": "na" - "\u0E13\u0E31\u0E22": "nai" - "\u0E13\u0E31\u0E27\u0E30": "nua" - "\u0E13\u0E31\u0E27": "nu\u0304a" - "\u0E13\u0E31": "na" - "\u0E13\u0E32\u0E22": "na\u0304i" - "\u0E13\u0E32": "na\u0304" - "\u0E13\u0E33": "nam" - "\u0E13\u0E34\u0E27": "niu" - "\u0E13\u0E34": "ni" - "\u0E13\u0E35": "ni\u0304" - "\u0E13\u0E36": "n\u01B0" - "\u0E13\u0E37": "n\u01B0\u0304" - "\u0E13\u0E38\u0E22": "nui" - "\u0E13\u0E38": "nu" - "\u0E13\u0E39": "nu\u0304" - "\u0E13\u0E40\u0E22": "nao" - "\u0E13\u0E40\u0E30": "ne" - "\u0E13\u0E40\u0E47": "ne" - "\u0E13\u0E40\u0E27\u0E30": "no\u031C" - "\u0E13\u0E40\u0E2D\u0E30": "n\u0153" - "\u0E13\u0E40\u0E2D": "n\u0153\u0304" - "\u0E13\u0E40\u0E34": "n\u0153\u0304" - "\u0E13\u0E40\u0E22": "n\u0153\u0304i" - "\u0E13\u0E40\u0E35\u0E22\u0E27": "ni\u0304eo" - "\u0E13\u0E40\u0E35\u0E22\u0E30": "nia" - "\u0E13\u0E40\u0E35\u0E22": "ni\u0304a" - "\u0E13\u0E40\u0E37\u0E2D\u0E22": "n\u01B0\u0304ai" - "\u0E13\u0E40\u0E37\u0E2D\u0E30": "n\u01B0a" - "\u0E13\u0E40\u0E37\u0E2D": "n\u01B0\u0304a" - "\u0E13\u0E40\u0E47\u0E27": "neo" - "\u0E13\u0E40\u0E27": "ne\u0304o" - "\u0E13\u0E40": "ne\u0304" - "\u0E13\u0E41\u0E27": "n\u00E6\u0304o" - "\u0E13\u0E41\u0E30": "n\u00E6" - "\u0E13\u0E41\u0E47": "n\u00E6" - "\u0E13\u0E41": "n\u00E6\u0304" - "\u0E13\u0E42\u0E22": "no\u0304i" - "\u0E13\u0E42\u0E30": "no" - "\u0E13\u0E42": "no\u0304" - "\u0E13\u0E43": "nai" - "\u0E13\u0E44\u0E22": "nai" - "\u0E13\u0E44": "nai" - # FINAL CONSONANT NO NEN WITH NO VOWEL - "%\u0E13": "n" - "\u0E13": "no" - - # CONSONANT DO DEK WITH VOWELS - "\u0E14\u0E22\u0E27": "da\u0304o" - "\u0E14\u0E24": "dr\u01B0" - "\u0E14\u0E24": "dri" - "\u0E14\u0E24": "d\u0153\u0304" - "\u0E14\u0E24\u0E32": "dr\u01B0\u0304" - "\u0E14\u0E26\u0032": "dl\u01B0\u0304" - "\u0E14\u0E26": "dl\u01B0" - "\u0E14\u0E27\u0E22": "du\u0304ai" - "\u0E14\u0E27": "du\u0304a" - "\u0E14\u0E2D\u0E22": "do\u0304\u031Ci" - "\u0E14\u0E2D": "do\u0304\u031C" - "\u0E14\u0E30": "da" - "\u0E14\u0E31\u0E22": "dai" - "\u0E14\u0E31\u0E27\u0E30": "dua" - "\u0E14\u0E31\u0E27": "du\u0304a" - "\u0E14\u0E31": "da" - "\u0E14\u0E32\u0E22": "da\u0304i" - "\u0E14\u0E32": "da\u0304" - "\u0E14\u0E33": "dam" - "\u0E14\u0E34\u0E27": "diu" - "\u0E14\u0E34": "di" - "\u0E14\u0E35": "di\u0304" - "\u0E14\u0E36": "d\u01B0" - "\u0E14\u0E37": "d\u01B0\u0304" - "\u0E14\u0E38\u0E22": "dui" - "\u0E14\u0E38": "du" - "\u0E14\u0E39": "du\u0304" - "\u0E14\u0E40\u0E22": "dao" - "\u0E14\u0E40\u0E30": "de" - "\u0E14\u0E40\u0E47": "de" - "\u0E14\u0E40\u0E27\u0E30": "do\u031C" - "\u0E14\u0E40\u0E2D\u0E30": "d\u0153" - "\u0E14\u0E40\u0E2D": "d\u0153\u0304" - "\u0E14\u0E40\u0E34": "d\u0153\u0304" - "\u0E14\u0E40\u0E22": "d\u0153\u0304i" - "\u0E14\u0E40\u0E35\u0E22\u0E27": "di\u0304eo" - "\u0E14\u0E40\u0E35\u0E22\u0E30": "dia" - "\u0E14\u0E40\u0E35\u0E22": "di\u0304a" - "\u0E14\u0E40\u0E37\u0E2D\u0E22": "d\u01B0\u0304ai" - "\u0E14\u0E40\u0E37\u0E2D\u0E30": "d\u01B0a" - "\u0E14\u0E40\u0E37\u0E2D": "d\u01B0\u0304a" - "\u0E14\u0E40\u0E47\u0E27": "deo" - "\u0E14\u0E40\u0E27": "de\u0304o" - "\u0E14\u0E40": "de\u0304" - "\u0E14\u0E41\u0E27": "d\u00E6\u0304o" - "\u0E14\u0E41\u0E30": "d\u00E6" - "\u0E14\u0E41\u0E47": "d\u00E6" - "\u0E14\u0E41": "d\u00E6\u0304" - "\u0E14\u0E42\u0E22": "do\u0304i" - "\u0E14\u0E42\u0E30": "do" - "\u0E14\u0E42": "do\u0304" - "\u0E14\u0E43": "dai" - "\u0E14\u0E44\u0E22": "dai" - "\u0E14\u0E44": "dai" - # FINAL CONSONANT NO NEN WITH NO VOWEL - "%\u0E14": "t" - "\u0E14": "do" - - # CONSONANT TO TAO WITH VOWELS - "\u0E15\u0E22\u0E27": "ta\u0304o" - "\u0E15\u0E24": "tr\u01B0" - "\u0E15\u0E24": "tri" - "\u0E15\u0E24": "t\u0153\u0304" - "\u0E15\u0E24\u0E32": "tr\u01B0\u0304" - "\u0E15\u0E26\u0032": "tl\u01B0\u0304" - "\u0E15\u0E26": "tl\u01B0" - "\u0E15\u0E27\u0E22": "tu\u0304ai" - "\u0E15\u0E27": "tu\u0304a" - "\u0E15\u0E2D\u0E22": "to\u0304\u031Ci" - "\u0E15\u0E2D": "to\u0304\u031C" - "\u0E15\u0E30": "ta" - "\u0E15\u0E31\u0E22": "tai" - "\u0E15\u0E31\u0E27\u0E30": "tua" - "\u0E15\u0E31\u0E27": "tu\u0304a" - "\u0E15\u0E31": "ta" - "\u0E15\u0E32\u0E22": "ta\u0304i" - "\u0E15\u0E32": "ta\u0304" - "\u0E15\u0E33": "tam" - "\u0E15\u0E34\u0E27": "tiu" - "\u0E15\u0E34": "ti" - "\u0E15\u0E35": "ti\u0304" - "\u0E15\u0E36": "t\u01B0" - "\u0E15\u0E37": "t\u01B0\u0304" - "\u0E15\u0E38\u0E22": "tui" - "\u0E15\u0E38": "tu" - "\u0E15\u0E39": "tu\u0304" - "\u0E15\u0E40\u0E22": "tao" - "\u0E15\u0E40\u0E30": "te" - "\u0E15\u0E40\u0E47": "te" - "\u0E15\u0E40\u0E27\u0E30": "to\u031C" - "\u0E15\u0E40\u0E2D\u0E30": "t\u0153" - "\u0E15\u0E40\u0E2D": "t\u0153\u0304" - "\u0E15\u0E40\u0E34": "t\u0153\u0304" - "\u0E15\u0E40\u0E22": "t\u0153\u0304i" - "\u0E15\u0E40\u0E35\u0E22\u0E27": "ti\u0304eo" - "\u0E15\u0E40\u0E35\u0E22\u0E30": "tia" - "\u0E15\u0E40\u0E35\u0E22": "ti\u0304a" - "\u0E15\u0E40\u0E37\u0E2D\u0E22": "t\u01B0\u0304ai" - "\u0E15\u0E40\u0E37\u0E2D\u0E30": "t\u01B0a" - "\u0E15\u0E40\u0E37\u0E2D": "t\u01B0\u0304a" - "\u0E15\u0E40\u0E47\u0E27": "teo" - "\u0E15\u0E40\u0E27": "te\u0304o" - "\u0E15\u0E40": "te\u0304" - "\u0E15\u0E41\u0E27": "t\u00E6\u0304o" - "\u0E15\u0E41\u0E30": "t\u00E6" - "\u0E15\u0E41\u0E47": "t\u00E6" - "\u0E15\u0E41": "t\u00E6\u0304" - "\u0E15\u0E42\u0E22": "to\u0304i" - "\u0E15\u0E42\u0E30": "to" - "\u0E15\u0E42": "to\u0304" - "\u0E15\u0E43": "tai" - "\u0E15\u0E44\u0E22": "tai" - "\u0E15\u0E44": "tai" - # FINAL CONSONANT TO TAO WITH NO VOWEL - "%\u0E15": "t" - "\u0E15": "to" - - # CONSONANT THO THUNG WITH VOWELS - "\u0E16\u0E22\u0E27": "tha\u0304o" - "\u0E16\u0E24": "thr\u01B0" - "\u0E16\u0E24": "thri" - "\u0E16\u0E24": "th\u0153\u0304" - "\u0E16\u0E24\u0E32": "thr\u01B0\u0304" - "\u0E16\u0E26\u0032": "thl\u01B0\u0304" - "\u0E16\u0E26": "thl\u01B0" - "\u0E16\u0E27\u0E22": "thu\u0304ai" - "\u0E16\u0E27": "thu\u0304a" - "\u0E16\u0E2D\u0E22": "tho\u0304\u031Ci" - "\u0E16\u0E2D": "tho\u0304\u031C" - "\u0E16\u0E30": "tha" - "\u0E16\u0E31\u0E22": "thai" - "\u0E16\u0E31\u0E27\u0E30": "thua" - "\u0E16\u0E31\u0E27": "thu\u0304a" - "\u0E16\u0E31": "tha" - "\u0E16\u0E32\u0E22": "tha\u0304i" - "\u0E16\u0E32": "tha\u0304" - "\u0E16\u0E33": "tham" - "\u0E16\u0E34\u0E27": "thiu" - "\u0E16\u0E34": "thi" - "\u0E16\u0E35": "thi\u0304" - "\u0E16\u0E36": "th\u01B0" - "\u0E16\u0E37": "th\u01B0\u0304" - "\u0E16\u0E38\u0E22": "thui" - "\u0E16\u0E38": "thu" - "\u0E16\u0E39": "thu\u0304" - "\u0E16\u0E40\u0E22": "thao" - "\u0E16\u0E40\u0E30": "the" - "\u0E16\u0E40\u0E47": "the" - "\u0E16\u0E40\u0E27\u0E30": "tho\u031C" - "\u0E16\u0E40\u0E2D\u0E30": "th\u0153" - "\u0E16\u0E40\u0E2D": "th\u0153\u0304" - "\u0E16\u0E40\u0E34": "th\u0153\u0304" - "\u0E16\u0E40\u0E22": "th\u0153\u0304i" - "\u0E16\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" - "\u0E16\u0E40\u0E35\u0E22\u0E30": "thia" - "\u0E16\u0E40\u0E35\u0E22": "thi\u0304a" - "\u0E16\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" - "\u0E16\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" - "\u0E16\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" - "\u0E16\u0E40\u0E47\u0E27": "theo" - "\u0E16\u0E40\u0E27": "the\u0304o" - "\u0E16\u0E40": "the\u0304" - "\u0E16\u0E41\u0E27": "th\u00E6\u0304o" - "\u0E16\u0E41\u0E30": "th\u00E6" - "\u0E16\u0E41\u0E47": "th\u00E6" - "\u0E16\u0E41": "th\u00E6\u0304" - "\u0E16\u0E42\u0E22": "tho\u0304i" - "\u0E16\u0E42\u0E30": "tho" - "\u0E16\u0E42": "tho\u0304" - "\u0E16\u0E43": "thai" - "\u0E16\u0E44\u0E22": "thai" - "\u0E16\u0E44": "thai" - # FINAL CONSONANT THO THUNG WITH NO VOWEL - "%\u0E16": "t" - "\u0E16": "tho" - - # CONSONANT THO THAHAN WITH VOWELS - "\u0E17\u0E22\u0E27": "tha\u0304o" - "\u0E17\u0E24": "thr\u01B0" - "\u0E17\u0E24": "thri" - "\u0E17\u0E24": "th\u0153\u0304" - "\u0E17\u0E24\u0E32": "thr\u01B0\u0304" - "\u0E17\u0E26\u0032": "thl\u01B0\u0304" - "\u0E17\u0E26": "thl\u01B0" - "\u0E17\u0E27\u0E22": "thu\u0304ai" - "\u0E17\u0E27": "thu\u0304a" - "\u0E17\u0E2D\u0E22": "tho\u0304\u031Ci" - "\u0E17\u0E2D": "tho\u0304\u031C" - "\u0E17\u0E30": "tha" - "\u0E17\u0E31\u0E22": "thai" - "\u0E17\u0E31\u0E27\u0E30": "thua" - "\u0E17\u0E31\u0E27": "thu\u0304a" - "\u0E17\u0E31": "tha" - "\u0E17\u0E32\u0E22": "tha\u0304i" - "\u0E17\u0E32": "tha\u0304" - "\u0E17\u0E33": "tham" - "\u0E17\u0E34\u0E27": "thiu" - "\u0E17\u0E34": "thi" - "\u0E17\u0E35": "thi\u0304" - "\u0E17\u0E36": "th\u01B0" - "\u0E17\u0E37": "th\u01B0\u0304" - "\u0E17\u0E38\u0E22": "thui" - "\u0E17\u0E38": "thu" - "\u0E17\u0E39": "thu\u0304" - "\u0E17\u0E40\u0E22": "thao" - "\u0E17\u0E40\u0E30": "the" - "\u0E17\u0E40\u0E47": "the" - "\u0E17\u0E40\u0E27\u0E30": "tho\u031C" - "\u0E17\u0E40\u0E2D\u0E30": "th\u0153" - "\u0E17\u0E40\u0E2D": "th\u0153\u0304" - "\u0E17\u0E40\u0E34": "th\u0153\u0304" - "\u0E17\u0E40\u0E22": "th\u0153\u0304i" - "\u0E17\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" - "\u0E17\u0E40\u0E35\u0E22\u0E30": "thia" - "\u0E17\u0E40\u0E35\u0E22": "thi\u0304a" - "\u0E17\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" - "\u0E17\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" - "\u0E17\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" - "\u0E17\u0E40\u0E47\u0E27": "theo" - "\u0E17\u0E40\u0E27": "the\u0304o" - "\u0E17\u0E40": "the\u0304" - "\u0E17\u0E41\u0E27": "th\u00E6\u0304o" - "\u0E17\u0E41\u0E30": "th\u00E6" - "\u0E17\u0E41\u0E47": "th\u00E6" - "\u0E17\u0E41": "th\u00E6\u0304" - "\u0E17\u0E42\u0E22": "tho\u0304i" - "\u0E17\u0E42\u0E30": "tho" - "\u0E17\u0E42": "tho\u0304" - "\u0E17\u0E43": "thai" - "\u0E17\u0E44\u0E22": "thai" - "\u0E17\u0E44": "thai" - # FINAL CONSONANT THO THAHAN WITH NO VOWEL - "%\u0E17": "t" - "\u0E17": "tho" - - # CONSONANT THO THONG WITH VOWELS - "\u0E18\u0E22\u0E27": "tha\u0304o" - "\u0E18\u0E24": "thr\u01B0" - "\u0E18\u0E24": "thri" - "\u0E18\u0E24": "th\u0153\u0304" - "\u0E18\u0E24\u0E32": "thr\u01B0\u0304" - "\u0E18\u0E26\u0032": "thl\u01B0\u0304" - "\u0E18\u0E26": "thl\u01B0" - "\u0E18\u0E27\u0E22": "thu\u0304ai" - "\u0E18\u0E27": "thu\u0304a" - "\u0E18\u0E2D\u0E22": "tho\u0304\u031Ci" - "\u0E18\u0E2D": "tho\u0304\u031C" - "\u0E18\u0E30": "tha" - "\u0E18\u0E31\u0E22": "thai" - "\u0E18\u0E31\u0E27\u0E30": "thua" - "\u0E18\u0E31\u0E27": "thu\u0304a" - "\u0E18\u0E31": "tha" - "\u0E18\u0E32\u0E22": "tha\u0304i" - "\u0E18\u0E32": "tha\u0304" - "\u0E18\u0E33": "tham" - "\u0E18\u0E34\u0E27": "thiu" - "\u0E18\u0E34": "thi" - "\u0E18\u0E35": "thi\u0304" - "\u0E18\u0E36": "th\u01B0" - "\u0E18\u0E37": "th\u01B0\u0304" - "\u0E18\u0E38\u0E22": "thui" - "\u0E18\u0E38": "thu" - "\u0E18\u0E39": "thu\u0304" - "\u0E18\u0E40\u0E22": "thao" - "\u0E18\u0E40\u0E30": "the" - "\u0E18\u0E40\u0E47": "the" - "\u0E18\u0E40\u0E27\u0E30": "tho\u031C" - "\u0E18\u0E40\u0E2D\u0E30": "th\u0153" - "\u0E18\u0E40\u0E2D": "th\u0153\u0304" - "\u0E18\u0E40\u0E34": "th\u0153\u0304" - "\u0E18\u0E40\u0E22": "th\u0153\u0304i" - "\u0E18\u0E40\u0E35\u0E22\u0E27": "thi\u0304eo" - "\u0E18\u0E40\u0E35\u0E22\u0E30": "thia" - "\u0E18\u0E40\u0E35\u0E22": "thi\u0304a" - "\u0E18\u0E40\u0E37\u0E2D\u0E22": "th\u01B0\u0304ai" - "\u0E18\u0E40\u0E37\u0E2D\u0E30": "th\u01B0a" - "\u0E18\u0E40\u0E37\u0E2D": "th\u01B0\u0304a" - "\u0E18\u0E40\u0E47\u0E27": "theo" - "\u0E18\u0E40\u0E27": "the\u0304o" - "\u0E18\u0E40": "the\u0304" - "\u0E18\u0E41\u0E27": "th\u00E6\u0304o" - "\u0E18\u0E41\u0E30": "th\u00E6" - "\u0E18\u0E41\u0E47": "th\u00E6" - "\u0E18\u0E41": "th\u00E6\u0304" - "\u0E18\u0E42\u0E22": "tho\u0304i" - "\u0E18\u0E42\u0E30": "tho" - "\u0E18\u0E42": "tho\u0304" - "\u0E18\u0E43": "thai" - "\u0E18\u0E44\u0E22": "thai" - "\u0E18\u0E44": "thai" - # FINAL CONSONANT THO THONG WITH NO VOWEL - "%\u0E18": "t" - "\u0E18": "tho" - - # CONSONANT NO NU WITH VOWELS - "\u0E19\u0E22\u0E27": "na\u0304o" - "\u0E19\u0E24": "nr\u01B0" - "\u0E19\u0E24": "nri" - "\u0E19\u0E24": "n\u0153\u0304" - "\u0E19\u0E24\u0E32": "nr\u01B0\u0304" - "\u0E19\u0E26\u0032": "nl\u01B0\u0304" - "\u0E19\u0E26": "nl\u01B0" - "\u0E19\u0E27\u0E22": "nu\u0304ai" - "\u0E19\u0E27": "nu\u0304a" - "\u0E19\u0E2D\u0E22": "no\u0304\u031Ci" - "\u0E19\u0E2D": "no\u0304\u031C" - "\u0E19\u0E30": "na" - "\u0E19\u0E31\u0E22": "nai" - "\u0E19\u0E31\u0E27\u0E30": "nua" - "\u0E19\u0E31\u0E27": "nu\u0304a" - "\u0E19\u0E31": "na" - "\u0E19\u0E32\u0E22": "na\u0304i" - "\u0E19\u0E32": "na\u0304" - "\u0E19\u0E33": "nam" - "\u0E19\u0E34\u0E27": "niu" - "\u0E19\u0E34": "ni" - "\u0E19\u0E35": "ni\u0304" - "\u0E19\u0E36": "n\u01B0" - "\u0E19\u0E37": "n\u01B0\u0304" - "\u0E19\u0E38\u0E22": "nui" - "\u0E19\u0E38": "nu" - "\u0E19\u0E39": "nu\u0304" - "\u0E19\u0E40\u0E22": "nao" - "\u0E19\u0E40\u0E30": "ne" - "\u0E19\u0E40\u0E47": "ne" - "\u0E19\u0E40\u0E27\u0E30": "no\u031C" - "\u0E19\u0E40\u0E2D\u0E30": "n\u0153" - "\u0E19\u0E40\u0E2D": "n\u0153\u0304" - "\u0E19\u0E40\u0E34": "n\u0153\u0304" - "\u0E19\u0E40\u0E22": "n\u0153\u0304i" - "\u0E19\u0E40\u0E35\u0E22\u0E27": "ni\u0304eo" - "\u0E19\u0E40\u0E35\u0E22\u0E30": "nia" - "\u0E19\u0E40\u0E35\u0E22": "ni\u0304a" - "\u0E19\u0E40\u0E37\u0E2D\u0E22": "n\u01B0\u0304ai" - "\u0E19\u0E40\u0E37\u0E2D\u0E30": "n\u01B0a" - "\u0E19\u0E40\u0E37\u0E2D": "n\u01B0\u0304a" - "\u0E19\u0E40\u0E47\u0E27": "neo" - "\u0E19\u0E40\u0E27": "ne\u0304o" - "\u0E19\u0E40": "ne\u0304" - "\u0E19\u0E41\u0E27": "n\u00E6\u0304o" - "\u0E19\u0E41\u0E30": "n\u00E6" - "\u0E19\u0E41\u0E47": "n\u00E6" - "\u0E19\u0E41": "n\u00E6\u0304" - "\u0E19\u0E42\u0E22": "no\u0304i" - "\u0E19\u0E42\u0E30": "no" - "\u0E19\u0E42": "no\u0304" - "\u0E19\u0E43": "nai" - "\u0E19\u0E44\u0E22": "nai" - "\u0E19\u0E44": "nai" - # FINAL CONSONANT NO NU WITH NO VOWEL - "%\u0E19": "n" - "\u0E19": "no" - - # CONSONANT BO BAIMAI WITH VOWELS - "\u0E1A\u0E22\u0E27": "ba\u0304o" - "\u0E1A\u0E24": "br\u01B0" - "\u0E1A\u0E24": "bri" - "\u0E1A\u0E24": "b\u0153\u0304" - "\u0E1A\u0E24\u0E32": "br\u01B0\u0304" - "\u0E1A\u0E26\u0032": "bl\u01B0\u0304" - "\u0E1A\u0E26": "bl\u01B0" - "\u0E1A\u0E27\u0E22": "bu\u0304ai" - "\u0E1A\u0E27": "bu\u0304a" - "\u0E1A\u0E2D\u0E22": "bo\u0304\u031Ci" - "\u0E1A\u0E2D": "bo\u0304\u031C" - "\u0E1A\u0E30": "ba" - "\u0E1A\u0E31\u0E22": "bai" - "\u0E1A\u0E31\u0E27\u0E30": "bua" - "\u0E1A\u0E31\u0E27": "bu\u0304a" - "\u0E1A\u0E31": "ba" - "\u0E1A\u0E32\u0E22": "ba\u0304i" - "\u0E1A\u0E32": "ba\u0304" - "\u0E1A\u0E33": "bam" - "\u0E1A\u0E34\u0E27": "biu" - "\u0E1A\u0E34": "bi" - "\u0E1A\u0E35": "bi\u0304" - "\u0E1A\u0E36": "b\u01B0" - "\u0E1A\u0E37": "b\u01B0\u0304" - "\u0E1A\u0E38\u0E22": "bui" - "\u0E1A\u0E38": "bu" - "\u0E1A\u0E39": "bu\u0304" - "\u0E1A\u0E40\u0E22": "bao" - "\u0E1A\u0E40\u0E30": "be" - "\u0E1A\u0E40\u0E47": "be" - "\u0E1A\u0E40\u0E27\u0E30": "bo\u031C" - "\u0E1A\u0E40\u0E2D\u0E30": "b\u0153" - "\u0E1A\u0E40\u0E2D": "b\u0153\u0304" - "\u0E1A\u0E40\u0E34": "b\u0153\u0304" - "\u0E1A\u0E40\u0E22": "b\u0153\u0304i" - "\u0E1A\u0E40\u0E35\u0E22\u0E27": "bi\u0304eo" - "\u0E1A\u0E40\u0E35\u0E22\u0E30": "bia" - "\u0E1A\u0E40\u0E35\u0E22": "bi\u0304a" - "\u0E1A\u0E40\u0E37\u0E2D\u0E22": "b\u01B0\u0304ai" - "\u0E1A\u0E40\u0E37\u0E2D\u0E30": "b\u01B0a" - "\u0E1A\u0E40\u0E37\u0E2D": "b\u01B0\u0304a" - "\u0E1A\u0E40\u0E47\u0E27": "beo" - "\u0E1A\u0E40\u0E27": "be\u0304o" - "\u0E1A\u0E40": "be\u0304" - "\u0E1A\u0E41\u0E27": "b\u00E6\u0304o" - "\u0E1A\u0E41\u0E30": "b\u00E6" - "\u0E1A\u0E41\u0E47": "b\u00E6" - "\u0E1A\u0E41": "b\u00E6\u0304" - "\u0E1A\u0E42\u0E22": "bo\u0304i" - "\u0E1A\u0E42\u0E30": "bo" - "\u0E1A\u0E42": "bo\u0304" - "\u0E1A\u0E43": "bai" - "\u0E1A\u0E44\u0E22": "bai" - "\u0E1A\u0E44": "bai" - # FINAL CONSONANT BO BAIMAI WITH NO VOWEL - "%\u0E1A": "p" - "\u0E1A": "bo" - - # CONSONANT PO PLA WITH VOWELS - "\u0E1B\u0E22\u0E27": "pa\u0304o" - "\u0E1B\u0E24": "pr\u01B0" - "\u0E1B\u0E24": "pri" - "\u0E1B\u0E24": "p\u0153\u0304" - "\u0E1B\u0E24\u0E32": "pr\u01B0\u0304" - "\u0E1B\u0E26\u0032": "pl\u01B0\u0304" - "\u0E1B\u0E26": "pl\u01B0" - "\u0E1B\u0E27\u0E22": "pu\u0304ai" - "\u0E1B\u0E27": "pu\u0304a" - "\u0E1B\u0E2D\u0E22": "po\u0304\u031Ci" - "\u0E1B\u0E2D": "po\u0304\u031C" - "\u0E1B\u0E30": "pa" - "\u0E1B\u0E31\u0E22": "pai" - "\u0E1B\u0E31\u0E27\u0E30": "pua" - "\u0E1B\u0E31\u0E27": "pu\u0304a" - "\u0E1B\u0E31": "pa" - "\u0E1B\u0E32\u0E22": "pa\u0304i" - "\u0E1B\u0E32": "pa\u0304" - "\u0E1B\u0E33": "pam" - "\u0E1B\u0E34\u0E27": "piu" - "\u0E1B\u0E34": "pi" - "\u0E1B\u0E35": "pi\u0304" - "\u0E1B\u0E36": "p\u01B0" - "\u0E1B\u0E37": "p\u01B0\u0304" - "\u0E1B\u0E38\u0E22": "pui" - "\u0E1B\u0E38": "pu" - "\u0E1B\u0E39": "pu\u0304" - "\u0E1B\u0E40\u0E22": "pao" - "\u0E1B\u0E40\u0E30": "pe" - "\u0E1B\u0E40\u0E47": "pe" - "\u0E1B\u0E40\u0E27\u0E30": "po\u031C" - "\u0E1B\u0E40\u0E2D\u0E30": "p\u0153" - "\u0E1B\u0E40\u0E2D": "p\u0153\u0304" - "\u0E1B\u0E40\u0E34": "p\u0153\u0304" - "\u0E1B\u0E40\u0E22": "p\u0153\u0304i" - "\u0E1B\u0E40\u0E35\u0E22\u0E27": "pi\u0304eo" - "\u0E1B\u0E40\u0E35\u0E22\u0E30": "pia" - "\u0E1B\u0E40\u0E35\u0E22": "pi\u0304a" - "\u0E1B\u0E40\u0E37\u0E2D\u0E22": "p\u01B0\u0304ai" - "\u0E1B\u0E40\u0E37\u0E2D\u0E30": "p\u01B0a" - "\u0E1B\u0E40\u0E37\u0E2D": "p\u01B0\u0304a" - "\u0E1B\u0E40\u0E47\u0E27": "peo" - "\u0E1B\u0E40\u0E27": "pe\u0304o" - "\u0E1B\u0E40": "pe\u0304" - "\u0E1B\u0E41\u0E27": "p\u00E6\u0304o" - "\u0E1B\u0E41\u0E30": "p\u00E6" - "\u0E1B\u0E41\u0E47": "p\u00E6" - "\u0E1B\u0E41": "p\u00E6\u0304" - "\u0E1B\u0E42\u0E22": "po\u0304i" - "\u0E1B\u0E42\u0E30": "po" - "\u0E1B\u0E42": "po\u0304" - "\u0E1B\u0E43": "pai" - "\u0E1B\u0E44\u0E22": "pai" - "\u0E1B\u0E44": "pai" - # FINAL CONSONANT PO PLA WITH NO VOWEL - "%\u0E1B": "p" - "\u0E1B": "po" - - # CONSONANT PHO PHUNG WITH VOWELS - "\u0E1C\u0E22\u0E27": "pha\u0304o" - "\u0E1C\u0E24": "phr\u01B0" - "\u0E1C\u0E24": "phri" - "\u0E1C\u0E24": "ph\u0153\u0304" - "\u0E1C\u0E24\u0E32": "phr\u01B0\u0304" - "\u0E1C\u0E26\u0032": "phl\u01B0\u0304" - "\u0E1C\u0E26": "phl\u01B0" - "\u0E1C\u0E27\u0E22": "phu\u0304ai" - "\u0E1C\u0E27": "phu\u0304a" - "\u0E1C\u0E2D\u0E22": "pho\u0304\u031Ci" - "\u0E1C\u0E2D": "pho\u0304\u031C" - "\u0E1C\u0E30": "pha" - "\u0E1C\u0E31\u0E22": "phai" - "\u0E1C\u0E31\u0E27\u0E30": "phua" - "\u0E1C\u0E31\u0E27": "phu\u0304a" - "\u0E1C\u0E31": "pha" - "\u0E1C\u0E32\u0E22": "pha\u0304i" - "\u0E1C\u0E32": "pha\u0304" - "\u0E1C\u0E33": "pham" - "\u0E1C\u0E34\u0E27": "phiu" - "\u0E1C\u0E34": "phi" - "\u0E1C\u0E35": "phi\u0304" - "\u0E1C\u0E36": "ph\u01B0" - "\u0E1C\u0E37": "ph\u01B0\u0304" - "\u0E1C\u0E38\u0E22": "phui" - "\u0E1C\u0E38": "phu" - "\u0E1C\u0E39": "phu\u0304" - "\u0E1C\u0E40\u0E22": "phao" - "\u0E1C\u0E40\u0E30": "phe" - "\u0E1C\u0E40\u0E47": "phe" - "\u0E1C\u0E40\u0E27\u0E30": "pho\u031C" - "\u0E1C\u0E40\u0E2D\u0E30": "ph\u0153" - "\u0E1C\u0E40\u0E2D": "ph\u0153\u0304" - "\u0E1C\u0E40\u0E34": "ph\u0153\u0304" - "\u0E1C\u0E40\u0E22": "ph\u0153\u0304i" - "\u0E1C\u0E40\u0E35\u0E22\u0E27": "phi\u0304eo" - "\u0E1C\u0E40\u0E35\u0E22\u0E30": "phia" - "\u0E1C\u0E40\u0E35\u0E22": "phi\u0304a" - "\u0E1C\u0E40\u0E37\u0E2D\u0E22": "ph\u01B0\u0304ai" - "\u0E1C\u0E40\u0E37\u0E2D\u0E30": "ph\u01B0a" - "\u0E1C\u0E40\u0E37\u0E2D": "ph\u01B0\u0304a" - "\u0E1C\u0E40\u0E47\u0E27": "pheo" - "\u0E1C\u0E40\u0E27": "phe\u0304o" - "\u0E1C\u0E40": "phe\u0304" - "\u0E1C\u0E41\u0E27": "ph\u00E6\u0304o" - "\u0E1C\u0E41\u0E30": "ph\u00E6" - "\u0E1C\u0E41\u0E47": "ph\u00E6" - "\u0E1C\u0E41": "ph\u00E6\u0304" - "\u0E1C\u0E42\u0E22": "pho\u0304i" - "\u0E1C\u0E42\u0E30": "pho" - "\u0E1C\u0E42": "pho\u0304" - "\u0E1C\u0E43": "phai" - "\u0E1C\u0E44\u0E22": "phai" - "\u0E1C\u0E44": "phai" - # FINAL CONSONANT PHO PHUNG WITH NO VOWEL - "%\u0E1C": "p" - "\u0E1C": "pho" - - # CONSONANT FO FA WITH VOWELS - "\u0E1D\u0E22\u0E27": "fa\u0304o" - "\u0E1D\u0E24": "fr\u01B0" - "\u0E1D\u0E24": "fri" - "\u0E1D\u0E24": "f\u0153\u0304" - "\u0E1D\u0E24\u0E32": "fr\u01B0\u0304" - "\u0E1D\u0E26\u0032": "fl\u01B0\u0304" - "\u0E1D\u0E26": "fl\u01B0" - "\u0E1D\u0E27\u0E22": "fu\u0304ai" - "\u0E1D\u0E27": "fu\u0304a" - "\u0E1D\u0E2D\u0E22": "fo\u0304\u031Ci" - "\u0E1D\u0E2D": "fo\u0304\u031C" - "\u0E1D\u0E30": "fa" - "\u0E1D\u0E31\u0E22": "fai" - "\u0E1D\u0E31\u0E27\u0E30": "fua" - "\u0E1D\u0E31\u0E27": "fu\u0304a" - "\u0E1D\u0E31": "fa" - "\u0E1D\u0E32\u0E22": "fa\u0304i" - "\u0E1D\u0E32": "fa\u0304" - "\u0E1D\u0E33": "fam" - "\u0E1D\u0E34\u0E27": "fiu" - "\u0E1D\u0E34": "fi" - "\u0E1D\u0E35": "fi\u0304" - "\u0E1D\u0E36": "f\u01B0" - "\u0E1D\u0E37": "f\u01B0\u0304" - "\u0E1D\u0E38\u0E22": "fui" - "\u0E1D\u0E38": "fu" - "\u0E1D\u0E39": "fu\u0304" - "\u0E1D\u0E40\u0E22": "fao" - "\u0E1D\u0E40\u0E30": "fe" - "\u0E1D\u0E40\u0E47": "fe" - "\u0E1D\u0E40\u0E27\u0E30": "fo\u031C" - "\u0E1D\u0E40\u0E2D\u0E30": "f\u0153" - "\u0E1D\u0E40\u0E2D": "f\u0153\u0304" - "\u0E1D\u0E40\u0E34": "f\u0153\u0304" - "\u0E1D\u0E40\u0E22": "f\u0153\u0304i" - "\u0E1D\u0E40\u0E35\u0E22\u0E27": "fi\u0304eo" - "\u0E1D\u0E40\u0E35\u0E22\u0E30": "fia" - "\u0E1D\u0E40\u0E35\u0E22": "fi\u0304a" - "\u0E1D\u0E40\u0E37\u0E2D\u0E22": "f\u01B0\u0304ai" - "\u0E1D\u0E40\u0E37\u0E2D\u0E30": "f\u01B0a" - "\u0E1D\u0E40\u0E37\u0E2D": "f\u01B0\u0304a" - "\u0E1D\u0E40\u0E47\u0E27": "feo" - "\u0E1D\u0E40\u0E27": "fe\u0304o" - "\u0E1D\u0E40": "fe\u0304" - "\u0E1D\u0E41\u0E27": "f\u00E6\u0304o" - "\u0E1D\u0E41\u0E30": "f\u00E6" - "\u0E1D\u0E41\u0E47": "f\u00E6" - "\u0E1D\u0E41": "f\u00E6\u0304" - "\u0E1D\u0E42\u0E22": "fo\u0304i" - "\u0E1D\u0E42\u0E30": "fo" - "\u0E1D\u0E42": "fo\u0304" - "\u0E1D\u0E43": "fai" - "\u0E1D\u0E44\u0E22": "fai" - "\u0E1D\u0E44": "fai" - # FINAL CONSONANT FO FA WITH NO VOWEL - "%\u0E1D": "p" - "\u0E1D": "fo" - - # CONSONANT PHO PHAN WITH VOWELS - "\u0E1E\u0E22\u0E27": "pha\u0304o" - "\u0E1E\u0E24": "phr\u01B0" - "\u0E1E\u0E24": "phri" - "\u0E1E\u0E24": "ph\u0153\u0304" - "\u0E1E\u0E24\u0E32": "phr\u01B0\u0304" - "\u0E1E\u0E26\u0032": "phl\u01B0\u0304" - "\u0E1E\u0E26": "phl\u01B0" - "\u0E1E\u0E27\u0E22": "phu\u0304ai" - "\u0E1E\u0E27": "phu\u0304a" - "\u0E1E\u0E2D\u0E22": "pho\u0304\u031Ci" - "\u0E1E\u0E2D": "pho\u0304\u031C" - "\u0E1E\u0E30": "pha" - "\u0E1E\u0E31\u0E22": "phai" - "\u0E1E\u0E31\u0E27\u0E30": "phua" - "\u0E1E\u0E31\u0E27": "phu\u0304a" - "\u0E1E\u0E31": "pha" - "\u0E1E\u0E32\u0E22": "pha\u0304i" - "\u0E1E\u0E32": "pha\u0304" - "\u0E1E\u0E33": "pham" - "\u0E1E\u0E34\u0E27": "phiu" - "\u0E1E\u0E34": "phi" - "\u0E1E\u0E35": "phi\u0304" - "\u0E1E\u0E36": "ph\u01B0" - "\u0E1E\u0E37": "ph\u01B0\u0304" - "\u0E1E\u0E38\u0E22": "phui" - "\u0E1E\u0E38": "phu" - "\u0E1E\u0E39": "phu\u0304" - "\u0E1E\u0E40\u0E22": "phao" - "\u0E1E\u0E40\u0E30": "phe" - "\u0E1E\u0E40\u0E47": "phe" - "\u0E1E\u0E40\u0E27\u0E30": "pho\u031C" - "\u0E1E\u0E40\u0E2D\u0E30": "ph\u0153" - "\u0E1E\u0E40\u0E2D": "ph\u0153\u0304" - "\u0E1E\u0E40\u0E34": "ph\u0153\u0304" - "\u0E1E\u0E40\u0E22": "ph\u0153\u0304i" - "\u0E1E\u0E40\u0E35\u0E22\u0E27": "phi\u0304eo" - "\u0E1E\u0E40\u0E35\u0E22\u0E30": "phia" - "\u0E1E\u0E40\u0E35\u0E22": "phi\u0304a" - "\u0E1E\u0E40\u0E37\u0E2D\u0E22": "ph\u01B0\u0304ai" - "\u0E1E\u0E40\u0E37\u0E2D\u0E30": "ph\u01B0a" - "\u0E1E\u0E40\u0E37\u0E2D": "ph\u01B0\u0304a" - "\u0E1E\u0E40\u0E47\u0E27": "pheo" - "\u0E1E\u0E40\u0E27": "phe\u0304o" - "\u0E1E\u0E40": "phe\u0304" - "\u0E1E\u0E41\u0E27": "ph\u00E6\u0304o" - "\u0E1E\u0E41\u0E30": "ph\u00E6" - "\u0E1E\u0E41\u0E47": "ph\u00E6" - "\u0E1E\u0E41": "ph\u00E6\u0304" - "\u0E1E\u0E42\u0E22": "pho\u0304i" - "\u0E1E\u0E42\u0E30": "pho" - "\u0E1E\u0E42": "pho\u0304" - "\u0E1E\u0E43": "phai" - "\u0E1E\u0E44\u0E22": "phai" - "\u0E1E\u0E44": "phai" - # FINAL CONSONANT PHO PHAN WITH NO VOWEL - "%\u0E1E": "p" - "\u0E1E": "pho" - - # CONSONANT FO FAN WITH VOWELS - "\u0E1F\u0E22\u0E27": "fa\u0304o" - "\u0E1F\u0E24": "fr\u01B0" - "\u0E1F\u0E24": "fri" - "\u0E1F\u0E24": "f\u0153\u0304" - "\u0E1F\u0E24\u0E32": "fr\u01B0\u0304" - "\u0E1F\u0E26\u0032": "fl\u01B0\u0304" - "\u0E1F\u0E26": "fl\u01B0" - "\u0E1F\u0E27\u0E22": "fu\u0304ai" - "\u0E1F\u0E27": "fu\u0304a" - "\u0E1F\u0E2D\u0E22": "fo\u0304\u031Ci" - "\u0E1F\u0E2D": "fo\u0304\u031C" - "\u0E1F\u0E30": "fa" - "\u0E1F\u0E31\u0E22": "fai" - "\u0E1F\u0E31\u0E27\u0E30": "fua" - "\u0E1F\u0E31\u0E27": "fu\u0304a" - "\u0E1F\u0E31": "fa" - "\u0E1F\u0E32\u0E22": "fa\u0304i" - "\u0E1F\u0E32": "fa\u0304" - "\u0E1F\u0E33": "fam" - "\u0E1F\u0E34\u0E27": "fiu" - "\u0E1F\u0E34": "fi" - "\u0E1F\u0E35": "fi\u0304" - "\u0E1F\u0E36": "f\u01B0" - "\u0E1F\u0E37": "f\u01B0\u0304" - "\u0E1F\u0E38\u0E22": "fui" - "\u0E1F\u0E38": "fu" - "\u0E1F\u0E39": "fu\u0304" - "\u0E1F\u0E40\u0E22": "fao" - "\u0E1F\u0E40\u0E30": "fe" - "\u0E1F\u0E40\u0E47": "fe" - "\u0E1F\u0E40\u0E27\u0E30": "fo\u031C" - "\u0E1F\u0E40\u0E2D\u0E30": "f\u0153" - "\u0E1F\u0E40\u0E2D": "f\u0153\u0304" - "\u0E1F\u0E40\u0E34": "f\u0153\u0304" - "\u0E1F\u0E40\u0E22": "f\u0153\u0304i" - "\u0E1F\u0E40\u0E35\u0E22\u0E27": "fi\u0304eo" - "\u0E1F\u0E40\u0E35\u0E22\u0E30": "fia" - "\u0E1F\u0E40\u0E35\u0E22": "fi\u0304a" - "\u0E1F\u0E40\u0E37\u0E2D\u0E22": "f\u01B0\u0304ai" - "\u0E1F\u0E40\u0E37\u0E2D\u0E30": "f\u01B0a" - "\u0E1F\u0E40\u0E37\u0E2D": "f\u01B0\u0304a" - "\u0E1F\u0E40\u0E47\u0E27": "feo" - "\u0E1F\u0E40\u0E27": "fe\u0304o" - "\u0E1F\u0E40": "fe\u0304" - "\u0E1F\u0E41\u0E27": "f\u00E6\u0304o" - "\u0E1F\u0E41\u0E30": "f\u00E6" - "\u0E1F\u0E41\u0E47": "f\u00E6" - "\u0E1F\u0E41": "f\u00E6\u0304" - "\u0E1F\u0E42\u0E22": "fo\u0304i" - "\u0E1F\u0E42\u0E30": "fo" - "\u0E1F\u0E42": "fo\u0304" - "\u0E1F\u0E43": "fai" - "\u0E1F\u0E44\u0E22": "fai" - "\u0E1F\u0E44": "fai" - # FINAL CONSONANT FO FAN WITH NO VOWEL - "%\u0E1F": "p" - "\u0E1F": "fo" - - # CONSONANT PHO SAMPHAO WITH VOWELS - "\u0E20\u0E22\u0E27": "pha\u0304o" - "\u0E20\u0E24": "phr\u01B0" - "\u0E20\u0E24": "phri" - "\u0E20\u0E24": "ph\u0153\u0304" - "\u0E20\u0E24\u0E32": "phr\u01B0\u0304" - "\u0E20\u0E26\u0032": "phl\u01B0\u0304" - "\u0E20\u0E26": "phl\u01B0" - "\u0E20\u0E27\u0E22": "phu\u0304ai" - "\u0E20\u0E27": "phu\u0304a" - "\u0E20\u0E2D\u0E22": "pho\u0304\u031Ci" - "\u0E20\u0E2D": "pho\u0304\u031C" - "\u0E20\u0E30": "pha" - "\u0E20\u0E31\u0E22": "phai" - "\u0E20\u0E31\u0E27\u0E30": "phua" - "\u0E20\u0E31\u0E27": "phu\u0304a" - "\u0E20\u0E31": "pha" - "\u0E20\u0E32\u0E22": "pha\u0304i" - "\u0E20\u0E32": "pha\u0304" - "\u0E20\u0E33": "pham" - "\u0E20\u0E34\u0E27": "phiu" - "\u0E20\u0E34": "phi" - "\u0E20\u0E35": "phi\u0304" - "\u0E20\u0E36": "ph\u01B0" - "\u0E20\u0E37": "ph\u01B0\u0304" - "\u0E20\u0E38\u0E22": "phui" - "\u0E20\u0E38": "phu" - "\u0E20\u0E39": "phu\u0304" - "\u0E20\u0E40\u0E22": "phao" - "\u0E20\u0E40\u0E30": "phe" - "\u0E20\u0E40\u0E47": "phe" - "\u0E20\u0E40\u0E27\u0E30": "pho\u031C" - "\u0E20\u0E40\u0E2D\u0E30": "ph\u0153" - "\u0E20\u0E40\u0E2D": "ph\u0153\u0304" - "\u0E20\u0E40\u0E34": "ph\u0153\u0304" - "\u0E20\u0E40\u0E22": "ph\u0153\u0304i" - "\u0E20\u0E40\u0E35\u0E22\u0E27": "phi\u0304eo" - "\u0E20\u0E40\u0E35\u0E22\u0E30": "phia" - "\u0E20\u0E40\u0E35\u0E22": "phi\u0304a" - "\u0E20\u0E40\u0E37\u0E2D\u0E22": "ph\u01B0\u0304ai" - "\u0E20\u0E40\u0E37\u0E2D\u0E30": "ph\u01B0a" - "\u0E20\u0E40\u0E37\u0E2D": "ph\u01B0\u0304a" - "\u0E20\u0E40\u0E47\u0E27": "pheo" - "\u0E20\u0E40\u0E27": "phe\u0304o" - "\u0E20\u0E40": "phe\u0304" - "\u0E20\u0E41\u0E27": "ph\u00E6\u0304o" - "\u0E20\u0E41\u0E30": "ph\u00E6" - "\u0E20\u0E41\u0E47": "ph\u00E6" - "\u0E20\u0E41": "ph\u00E6\u0304" - "\u0E20\u0E42\u0E22": "pho\u0304i" - "\u0E20\u0E42\u0E30": "pho" - "\u0E20\u0E42": "pho\u0304" - "\u0E20\u0E43": "phai" - "\u0E20\u0E44\u0E22": "phai" - "\u0E20\u0E44": "phai" - # FINAL CONSONANT PHO SAMPHAO WITH NO VOWEL - "%\u0E20": "p" - "\u0E20": "pho" - - # CONSONANT MO MA WITH VOWELS - "\u0E21\u0E22\u0E27": "ma\u0304o" - "\u0E21\u0E24": "mr\u01B0" - "\u0E21\u0E24": "mri" - "\u0E21\u0E24": "m\u0153\u0304" - "\u0E21\u0E24\u0E32": "mr\u01B0\u0304" - "\u0E21\u0E26\u0032": "ml\u01B0\u0304" - "\u0E21\u0E26": "ml\u01B0" - "\u0E21\u0E27\u0E22": "mu\u0304ai" - "\u0E21\u0E27": "mu\u0304a" - "\u0E21\u0E2D\u0E22": "mo\u0304\u031Ci" - "\u0E21\u0E2D": "mo\u0304\u031C" - "\u0E21\u0E30": "ma" - "\u0E21\u0E31\u0E22": "mai" - "\u0E21\u0E31\u0E27\u0E30": "mua" - "\u0E21\u0E31\u0E27": "mu\u0304a" - "\u0E21\u0E31": "ma" - "\u0E21\u0E32\u0E22": "ma\u0304i" - "\u0E21\u0E32": "ma\u0304" - "\u0E21\u0E33": "mam" - "\u0E21\u0E34\u0E27": "miu" - "\u0E21\u0E34": "mi" - "\u0E21\u0E35": "mi\u0304" - "\u0E21\u0E36": "m\u01B0" - "\u0E21\u0E37": "m\u01B0\u0304" - "\u0E21\u0E38\u0E22": "mui" - "\u0E21\u0E38": "mu" - "\u0E21\u0E39": "mu\u0304" - "\u0E21\u0E40\u0E22": "mao" - "\u0E21\u0E40\u0E30": "me" - "\u0E21\u0E40\u0E47": "me" - "\u0E21\u0E40\u0E27\u0E30": "mo\u031C" - "\u0E21\u0E40\u0E2D\u0E30": "m\u0153" - "\u0E21\u0E40\u0E2D": "m\u0153\u0304" - "\u0E21\u0E40\u0E34": "m\u0153\u0304" - "\u0E21\u0E40\u0E22": "m\u0153\u0304i" - "\u0E21\u0E40\u0E35\u0E22\u0E27": "mi\u0304eo" - "\u0E21\u0E40\u0E35\u0E22\u0E30": "mia" - "\u0E21\u0E40\u0E35\u0E22": "mi\u0304a" - "\u0E21\u0E40\u0E37\u0E2D\u0E22": "m\u01B0\u0304ai" - "\u0E21\u0E40\u0E37\u0E2D\u0E30": "m\u01B0a" - "\u0E21\u0E40\u0E37\u0E2D": "m\u01B0\u0304a" - "\u0E21\u0E40\u0E47\u0E27": "meo" - "\u0E21\u0E40\u0E27": "me\u0304o" - "\u0E21\u0E40": "me\u0304" - "\u0E21\u0E41\u0E27": "m\u00E6\u0304o" - "\u0E21\u0E41\u0E30": "m\u00E6" - "\u0E21\u0E41\u0E47": "m\u00E6" - "\u0E21\u0E41": "m\u00E6\u0304" - "\u0E21\u0E42\u0E22": "mo\u0304i" - "\u0E21\u0E42\u0E30": "mo" - "\u0E21\u0E42": "mo\u0304" - "\u0E21\u0E43": "mai" - "\u0E21\u0E44\u0E22": "mai" - "\u0E21\u0E44": "mai" - # FINAL CONSONANT MO MA WITH NO VOWEL - "%\u0E21": "m" - "\u0E21": "mo" - - # CONSONANT YO YAK WITH VOWELS - "\u0E22\u0E22\u0E27": "ya\u0304o" - "\u0E22\u0E24": "yr\u01B0" - "\u0E22\u0E24": "yri" - "\u0E22\u0E24": "y\u0153\u0304" - "\u0E22\u0E24\u0E32": "yr\u01B0\u0304" - "\u0E22\u0E26\u0032": "yl\u01B0\u0304" - "\u0E22\u0E26": "yl\u01B0" - "\u0E22\u0E27\u0E22": "yu\u0304ai" - "\u0E22\u0E27": "yu\u0304a" - "\u0E22\u0E2D\u0E22": "yo\u0304\u031Ci" - "\u0E22\u0E2D": "yo\u0304\u031C" - "\u0E22\u0E30": "ya" - "\u0E22\u0E31\u0E22": "yai" - "\u0E22\u0E31\u0E27\u0E30": "yua" - "\u0E22\u0E31\u0E27": "yu\u0304a" - "\u0E22\u0E31": "ya" - "\u0E22\u0E32\u0E22": "ya\u0304i" - "\u0E22\u0E32": "ya\u0304" - "\u0E22\u0E33": "yam" - "\u0E22\u0E34\u0E27": "yiu" - "\u0E22\u0E34": "yi" - "\u0E22\u0E35": "yi\u0304" - "\u0E22\u0E36": "y\u01B0" - "\u0E22\u0E37": "y\u01B0\u0304" - "\u0E22\u0E38\u0E22": "yui" - "\u0E22\u0E38": "yu" - "\u0E22\u0E39": "yu\u0304" - "\u0E22\u0E40\u0E22": "yao" - "\u0E22\u0E40\u0E30": "ye" - "\u0E22\u0E40\u0E47": "ye" - "\u0E22\u0E40\u0E27\u0E30": "yo\u031C" - "\u0E22\u0E40\u0E2D\u0E30": "y\u0153" - "\u0E22\u0E40\u0E2D": "y\u0153\u0304" - "\u0E22\u0E40\u0E34": "y\u0153\u0304" - "\u0E22\u0E40\u0E22": "y\u0153\u0304i" - "\u0E22\u0E40\u0E35\u0E22\u0E27": "yi\u0304eo" - "\u0E22\u0E40\u0E35\u0E22\u0E30": "yia" - "\u0E22\u0E40\u0E35\u0E22": "yi\u0304a" - "\u0E22\u0E40\u0E37\u0E2D\u0E22": "y\u01B0\u0304ai" - "\u0E22\u0E40\u0E37\u0E2D\u0E30": "y\u01B0a" - "\u0E22\u0E40\u0E37\u0E2D": "y\u01B0\u0304a" - "\u0E22\u0E40\u0E47\u0E27": "yeo" - "\u0E22\u0E40\u0E27": "ye\u0304o" - "\u0E22\u0E40": "ye\u0304" - "\u0E22\u0E41\u0E27": "y\u00E6\u0304o" - "\u0E22\u0E41\u0E30": "y\u00E6" - "\u0E22\u0E41\u0E47": "y\u00E6" - "\u0E22\u0E41": "y\u00E6\u0304" - "\u0E22\u0E42\u0E22": "yo\u0304i" - "\u0E22\u0E42\u0E30": "yo" - "\u0E22\u0E42": "yo\u0304" - "\u0E22\u0E43": "yai" - "\u0E22\u0E44\u0E22": "yai" - "\u0E22\u0E44": "yai" - # FINAL CONSONANT YO YAK WITH NO VOWEL - "%\u0E22": "" - "\u0E22": "yo" - - # CONSONANT RO RUA WITH VOWELS - "\u0E23\u0E22\u0E27": "ra\u0304o" - "\u0E23\u0E24": "rr\u01B0" - "\u0E23\u0E24": "rri" - "\u0E23\u0E24": "r\u0153\u0304" - "\u0E23\u0E24\u0E32": "rr\u01B0\u0304" - "\u0E23\u0E26\u0032": "rl\u01B0\u0304" - "\u0E23\u0E26": "rl\u01B0" - "\u0E23\u0E27\u0E22": "ru\u0304ai" - "\u0E23\u0E27": "ru\u0304a" - "\u0E23\u0E2D\u0E22": "ro\u0304\u031Ci" - "\u0E23\u0E2D": "ro\u0304\u031C" - "\u0E23\u0E30": "ra" - "\u0E23\u0E31\u0E22": "rai" - "\u0E23\u0E31\u0E27\u0E30": "rua" - "\u0E23\u0E31\u0E27": "ru\u0304a" - "\u0E23\u0E31": "ra" - "\u0E23\u0E32\u0E22": "ra\u0304i" - "\u0E23\u0E32": "ra\u0304" - "\u0E23\u0E33": "ram" - "\u0E23\u0E34\u0E27": "riu" - "\u0E23\u0E34": "ri" - "\u0E23\u0E35": "ri\u0304" - "\u0E23\u0E36": "r\u01B0" - "\u0E23\u0E37": "r\u01B0\u0304" - "\u0E23\u0E38\u0E22": "rui" - "\u0E23\u0E38": "ru" - "\u0E23\u0E39": "ru\u0304" - "\u0E23\u0E40\u0E22": "rao" - "\u0E23\u0E40\u0E30": "re" - "\u0E23\u0E40\u0E47": "re" - "\u0E23\u0E40\u0E27\u0E30": "ro\u031C" - "\u0E23\u0E40\u0E2D\u0E30": "r\u0153" - "\u0E23\u0E40\u0E2D": "r\u0153\u0304" - "\u0E23\u0E40\u0E34": "r\u0153\u0304" - "\u0E23\u0E40\u0E22": "r\u0153\u0304i" - "\u0E23\u0E40\u0E35\u0E22\u0E27": "ri\u0304eo" - "\u0E23\u0E40\u0E35\u0E22\u0E30": "ria" - "\u0E23\u0E40\u0E35\u0E22": "ri\u0304a" - "\u0E23\u0E40\u0E37\u0E2D\u0E22": "r\u01B0\u0304ai" - "\u0E23\u0E40\u0E37\u0E2D\u0E30": "r\u01B0a" - "\u0E23\u0E40\u0E37\u0E2D": "r\u01B0\u0304a" - "\u0E23\u0E40\u0E47\u0E27": "reo" - "\u0E23\u0E40\u0E27": "re\u0304o" - "\u0E23\u0E40": "re\u0304" - "\u0E23\u0E41\u0E27": "r\u00E6\u0304o" - "\u0E23\u0E41\u0E30": "r\u00E6" - "\u0E23\u0E41\u0E47": "r\u00E6" - "\u0E23\u0E41": "r\u00E6\u0304" - "\u0E23\u0E42\u0E22": "ro\u0304i" - "\u0E23\u0E42\u0E30": "ro" - "\u0E23\u0E42": "ro\u0304" - "\u0E23\u0E43": "rai" - "\u0E23\u0E44\u0E22": "rai" - "\u0E23\u0E44": "rai" - # FINAL CONSONANT RO RUA WITH NO VOWEL - "%\u0E23": "n" - "\u0E23": "ro" - - # CONSONANT LO LING WITH VOWELS - "\u0E25\u0E22\u0E27": "la\u0304o" - "\u0E25\u0E24": "lr\u01B0" - "\u0E25\u0E24": "lri" - "\u0E25\u0E24": "l\u0153\u0304" - "\u0E25\u0E24\u0E32": "lr\u01B0\u0304" - "\u0E25\u0E26\u0032": "ll\u01B0\u0304" - "\u0E25\u0E26": "ll\u01B0" - "\u0E25\u0E27\u0E22": "lu\u0304ai" - "\u0E25\u0E27": "lu\u0304a" - "\u0E25\u0E2D\u0E22": "lo\u0304\u031Ci" - "\u0E25\u0E2D": "lo\u0304\u031C" - "\u0E25\u0E30": "la" - "\u0E25\u0E31\u0E22": "lai" - "\u0E25\u0E31\u0E27\u0E30": "lua" - "\u0E25\u0E31\u0E27": "lu\u0304a" - "\u0E25\u0E31": "la" - "\u0E25\u0E32\u0E22": "la\u0304i" - "\u0E25\u0E32": "la\u0304" - "\u0E25\u0E33": "lam" - "\u0E25\u0E34\u0E27": "liu" - "\u0E25\u0E34": "li" - "\u0E25\u0E35": "li\u0304" - "\u0E25\u0E36": "l\u01B0" - "\u0E25\u0E37": "l\u01B0\u0304" - "\u0E25\u0E38\u0E22": "lui" - "\u0E25\u0E38": "lu" - "\u0E25\u0E39": "lu\u0304" - "\u0E25\u0E40\u0E22": "lao" - "\u0E25\u0E40\u0E30": "le" - "\u0E25\u0E40\u0E47": "le" - "\u0E25\u0E40\u0E27\u0E30": "lo\u031C" - "\u0E25\u0E40\u0E2D\u0E30": "l\u0153" - "\u0E25\u0E40\u0E2D": "l\u0153\u0304" - "\u0E25\u0E40\u0E34": "l\u0153\u0304" - "\u0E25\u0E40\u0E22": "l\u0153\u0304i" - "\u0E25\u0E40\u0E35\u0E22\u0E27": "li\u0304eo" - "\u0E25\u0E40\u0E35\u0E22\u0E30": "lia" - "\u0E25\u0E40\u0E35\u0E22": "li\u0304a" - "\u0E25\u0E40\u0E37\u0E2D\u0E22": "l\u01B0\u0304ai" - "\u0E25\u0E40\u0E37\u0E2D\u0E30": "l\u01B0a" - "\u0E25\u0E40\u0E37\u0E2D": "l\u01B0\u0304a" - "\u0E25\u0E40\u0E47\u0E27": "leo" - "\u0E25\u0E40\u0E27": "le\u0304o" - "\u0E25\u0E40": "le\u0304" - "\u0E25\u0E41\u0E27": "l\u00E6\u0304o" - "\u0E25\u0E41\u0E30": "l\u00E6" - "\u0E25\u0E41\u0E47": "l\u00E6" - "\u0E25\u0E41": "l\u00E6\u0304" - "\u0E25\u0E42\u0E22": "lo\u0304i" - "\u0E25\u0E42\u0E30": "lo" - "\u0E25\u0E42": "lo\u0304" - "\u0E25\u0E43": "lai" - "\u0E25\u0E44\u0E22": "lai" - "\u0E25\u0E44": "lai" - # FINAL CONSONANT LO LING WITH NO VOWEL - "%\u0E25": "n" - "\u0E25": "lo" - - # CONSONANT WO WAEN WITH VOWELS - "\u0E27\u0E22\u0E27": "wa\u0304o" - "\u0E27\u0E24": "wr\u01B0" - "\u0E27\u0E24": "wri" - "\u0E27\u0E24": "w\u0153\u0304" - "\u0E27\u0E24\u0E32": "wr\u01B0\u0304" - "\u0E27\u0E26\u0032": "wl\u01B0\u0304" - "\u0E27\u0E26": "wl\u01B0" - "\u0E27\u0E27\u0E22": "wu\u0304ai" - "\u0E27\u0E27": "wu\u0304a" - "\u0E27\u0E2D\u0E22": "wo\u0304\u031Ci" - "\u0E27\u0E2D": "wo\u0304\u031C" - "\u0E27\u0E30": "wa" - "\u0E27\u0E31\u0E22": "wai" - "\u0E27\u0E31\u0E27\u0E30": "wua" - "\u0E27\u0E31\u0E27": "wu\u0304a" - "\u0E27\u0E31": "wa" - "\u0E27\u0E32\u0E22": "wa\u0304i" - "\u0E27\u0E32": "wa\u0304" - "\u0E27\u0E33": "wam" - "\u0E27\u0E34\u0E27": "wiu" - "\u0E27\u0E34": "wi" - "\u0E27\u0E35": "wi\u0304" - "\u0E27\u0E36": "w\u01B0" - "\u0E27\u0E37": "w\u01B0\u0304" - "\u0E27\u0E38\u0E22": "wui" - "\u0E27\u0E38": "wu" - "\u0E27\u0E39": "wu\u0304" - "\u0E27\u0E40\u0E22": "wao" - "\u0E27\u0E40\u0E30": "we" - "\u0E27\u0E40\u0E47": "we" - "\u0E27\u0E40\u0E27\u0E30": "wo\u031C" - "\u0E27\u0E40\u0E2D\u0E30": "w\u0153" - "\u0E27\u0E40\u0E2D": "w\u0153\u0304" - "\u0E27\u0E40\u0E34": "w\u0153\u0304" - "\u0E27\u0E40\u0E22": "w\u0153\u0304i" - "\u0E27\u0E40\u0E35\u0E22\u0E27": "wi\u0304eo" - "\u0E27\u0E40\u0E35\u0E22\u0E30": "wia" - "\u0E27\u0E40\u0E35\u0E22": "wi\u0304a" - "\u0E27\u0E40\u0E37\u0E2D\u0E22": "w\u01B0\u0304ai" - "\u0E27\u0E40\u0E37\u0E2D\u0E30": "w\u01B0a" - "\u0E27\u0E40\u0E37\u0E2D": "w\u01B0\u0304a" - "\u0E27\u0E40\u0E47\u0E27": "weo" - "\u0E27\u0E40\u0E27": "we\u0304o" - "\u0E27\u0E40": "we\u0304" - "\u0E27\u0E41\u0E27": "w\u00E6\u0304o" - "\u0E27\u0E41\u0E30": "w\u00E6" - "\u0E27\u0E41\u0E47": "w\u00E6" - "\u0E27\u0E41": "w\u00E6\u0304" - "\u0E27\u0E42\u0E22": "wo\u0304i" - "\u0E27\u0E42\u0E30": "wo" - "\u0E27\u0E42": "wo\u0304" - "\u0E27\u0E43": "wai" - "\u0E27\u0E44\u0E22": "wai" - "\u0E27\u0E44": "wai" - # FINAL CONSONANT WO WAEN WITH NO VOWEL - "%\u0E27": "" - "\u0E27": "wo" - - # CONSONANT SO SALA WITH VOWELS - "\u0E28\u0E22\u0E27": "sa\u0304o" - "\u0E28\u0E24": "sr\u01B0" - "\u0E28\u0E24": "sri" - "\u0E28\u0E24": "s\u0153\u0304" - "\u0E28\u0E24\u0E32": "sr\u01B0\u0304" - "\u0E28\u0E26\u0032": "sl\u01B0\u0304" - "\u0E28\u0E26": "sl\u01B0" - "\u0E28\u0E27\u0E22": "su\u0304ai" - "\u0E28\u0E27": "su\u0304a" - "\u0E28\u0E2D\u0E22": "so\u0304\u031Ci" - "\u0E28\u0E2D": "so\u0304\u031C" - "\u0E28\u0E30": "sa" - "\u0E28\u0E31\u0E22": "sai" - "\u0E28\u0E31\u0E27\u0E30": "sua" - "\u0E28\u0E31\u0E27": "su\u0304a" - "\u0E28\u0E31": "sa" - "\u0E28\u0E32\u0E22": "sa\u0304i" - "\u0E28\u0E32": "sa\u0304" - "\u0E28\u0E33": "sam" - "\u0E28\u0E34\u0E27": "siu" - "\u0E28\u0E34": "si" - "\u0E28\u0E35": "si\u0304" - "\u0E28\u0E36": "s\u01B0" - "\u0E28\u0E37": "s\u01B0\u0304" - "\u0E28\u0E38\u0E22": "sui" - "\u0E28\u0E38": "su" - "\u0E28\u0E39": "su\u0304" - "\u0E28\u0E40\u0E22": "sao" - "\u0E28\u0E40\u0E30": "se" - "\u0E28\u0E40\u0E47": "se" - "\u0E28\u0E40\u0E27\u0E30": "so\u031C" - "\u0E28\u0E40\u0E2D\u0E30": "s\u0153" - "\u0E28\u0E40\u0E2D": "s\u0153\u0304" - "\u0E28\u0E40\u0E34": "s\u0153\u0304" - "\u0E28\u0E40\u0E22": "s\u0153\u0304i" - "\u0E28\u0E40\u0E35\u0E22\u0E27": "si\u0304eo" - "\u0E28\u0E40\u0E35\u0E22\u0E30": "sia" - "\u0E28\u0E40\u0E35\u0E22": "si\u0304a" - "\u0E28\u0E40\u0E37\u0E2D\u0E22": "s\u01B0\u0304ai" - "\u0E28\u0E40\u0E37\u0E2D\u0E30": "s\u01B0a" - "\u0E28\u0E40\u0E37\u0E2D": "s\u01B0\u0304a" - "\u0E28\u0E40\u0E47\u0E27": "seo" - "\u0E28\u0E40\u0E27": "se\u0304o" - "\u0E28\u0E40": "se\u0304" - "\u0E28\u0E41\u0E27": "s\u00E6\u0304o" - "\u0E28\u0E41\u0E30": "s\u00E6" - "\u0E28\u0E41\u0E47": "s\u00E6" - "\u0E28\u0E41": "s\u00E6\u0304" - "\u0E28\u0E42\u0E22": "so\u0304i" - "\u0E28\u0E42\u0E30": "so" - "\u0E28\u0E42": "so\u0304" - "\u0E28\u0E43": "sai" - "\u0E28\u0E44\u0E22": "sai" - "\u0E28\u0E44": "sai" - # FINAL CONSONANT SO SALA WITH NO VOWEL - "%\u0E28": "t" - "\u0E28": "so" - - # CONSONANT SO RUSI WITH VOWELS - "\u0E29\u0E22\u0E27": "sa\u0304o" - "\u0E29\u0E24": "sr\u01B0" - "\u0E29\u0E24": "sri" - "\u0E29\u0E24": "s\u0153\u0304" - "\u0E29\u0E24\u0E32": "sr\u01B0\u0304" - "\u0E29\u0E26\u0032": "sl\u01B0\u0304" - "\u0E29\u0E26": "sl\u01B0" - "\u0E29\u0E27\u0E22": "su\u0304ai" - "\u0E29\u0E27": "su\u0304a" - "\u0E29\u0E2D\u0E22": "so\u0304\u031Ci" - "\u0E29\u0E2D": "so\u0304\u031C" - "\u0E29\u0E30": "sa" - "\u0E29\u0E31\u0E22": "sai" - "\u0E29\u0E31\u0E27\u0E30": "sua" - "\u0E29\u0E31\u0E27": "su\u0304a" - "\u0E29\u0E31": "sa" - "\u0E29\u0E32\u0E22": "sa\u0304i" - "\u0E29\u0E32": "sa\u0304" - "\u0E29\u0E33": "sam" - "\u0E29\u0E34\u0E27": "siu" - "\u0E29\u0E34": "si" - "\u0E29\u0E35": "si\u0304" - "\u0E29\u0E36": "s\u01B0" - "\u0E29\u0E37": "s\u01B0\u0304" - "\u0E29\u0E38\u0E22": "sui" - "\u0E29\u0E38": "su" - "\u0E29\u0E39": "su\u0304" - "\u0E29\u0E40\u0E22": "sao" - "\u0E29\u0E40\u0E30": "se" - "\u0E29\u0E40\u0E47": "se" - "\u0E29\u0E40\u0E27\u0E30": "so\u031C" - "\u0E29\u0E40\u0E2D\u0E30": "s\u0153" - "\u0E29\u0E40\u0E2D": "s\u0153\u0304" - "\u0E29\u0E40\u0E34": "s\u0153\u0304" - "\u0E29\u0E40\u0E22": "s\u0153\u0304i" - "\u0E29\u0E40\u0E35\u0E22\u0E27": "si\u0304eo" - "\u0E29\u0E40\u0E35\u0E22\u0E30": "sia" - "\u0E29\u0E40\u0E35\u0E22": "si\u0304a" - "\u0E29\u0E40\u0E37\u0E2D\u0E22": "s\u01B0\u0304ai" - "\u0E29\u0E40\u0E37\u0E2D\u0E30": "s\u01B0a" - "\u0E29\u0E40\u0E37\u0E2D": "s\u01B0\u0304a" - "\u0E29\u0E40\u0E47\u0E27": "seo" - "\u0E29\u0E40\u0E27": "se\u0304o" - "\u0E29\u0E40": "se\u0304" - "\u0E29\u0E41\u0E27": "s\u00E6\u0304o" - "\u0E29\u0E41\u0E30": "s\u00E6" - "\u0E29\u0E41\u0E47": "s\u00E6" - "\u0E29\u0E41": "s\u00E6\u0304" - "\u0E29\u0E42\u0E22": "so\u0304i" - "\u0E29\u0E42\u0E30": "so" - "\u0E29\u0E42": "so\u0304" - "\u0E29\u0E43": "sai" - "\u0E29\u0E44\u0E22": "sai" - "\u0E29\u0E44": "sai" - # FINAL CONSONANT SO RUSI WITH NO VOWEL - "%\u0E29": "t" - "\u0E29": "so" - - # CONSONANT SO SUA WITH VOWELS - "\u0E2A\u0E22\u0E27": "sa\u0304o" - "\u0E2A\u0E24": "sr\u01B0" - "\u0E2A\u0E24": "sri" - "\u0E2A\u0E24": "s\u0153\u0304" - "\u0E2A\u0E24\u0E32": "sr\u01B0\u0304" - "\u0E2A\u0E26\u0032": "sl\u01B0\u0304" - "\u0E2A\u0E26": "sl\u01B0" - "\u0E2A\u0E27\u0E22": "su\u0304ai" - "\u0E2A\u0E27": "su\u0304a" - "\u0E2A\u0E2D\u0E22": "so\u0304\u031Ci" - "\u0E2A\u0E2D": "so\u0304\u031C" - "\u0E2A\u0E30": "sa" - "\u0E2A\u0E31\u0E22": "sai" - "\u0E2A\u0E31\u0E27\u0E30": "sua" - "\u0E2A\u0E31\u0E27": "su\u0304a" - "\u0E2A\u0E31": "sa" - "\u0E2A\u0E32\u0E22": "sa\u0304i" - "\u0E2A\u0E32": "sa\u0304" - "\u0E2A\u0E33": "sam" - "\u0E2A\u0E34\u0E27": "siu" - "\u0E2A\u0E34": "si" - "\u0E2A\u0E35": "si\u0304" - "\u0E2A\u0E36": "s\u01B0" - "\u0E2A\u0E37": "s\u01B0\u0304" - "\u0E2A\u0E38\u0E22": "sui" - "\u0E2A\u0E38": "su" - "\u0E2A\u0E39": "su\u0304" - "\u0E2A\u0E40\u0E22": "sao" - "\u0E2A\u0E40\u0E30": "se" - "\u0E2A\u0E40\u0E47": "se" - "\u0E2A\u0E40\u0E27\u0E30": "so\u031C" - "\u0E2A\u0E40\u0E2D\u0E30": "s\u0153" - "\u0E2A\u0E40\u0E2D": "s\u0153\u0304" - "\u0E2A\u0E40\u0E34": "s\u0153\u0304" - "\u0E2A\u0E40\u0E22": "s\u0153\u0304i" - "\u0E2A\u0E40\u0E35\u0E22\u0E27": "si\u0304eo" - "\u0E2A\u0E40\u0E35\u0E22\u0E30": "sia" - "\u0E2A\u0E40\u0E35\u0E22": "si\u0304a" - "\u0E2A\u0E40\u0E37\u0E2D\u0E22": "s\u01B0\u0304ai" - "\u0E2A\u0E40\u0E37\u0E2D\u0E30": "s\u01B0a" - "\u0E2A\u0E40\u0E37\u0E2D": "s\u01B0\u0304a" - "\u0E2A\u0E40\u0E47\u0E27": "seo" - "\u0E2A\u0E40\u0E27": "se\u0304o" - "\u0E2A\u0E40": "se\u0304" - "\u0E2A\u0E41\u0E27": "s\u00E6\u0304o" - "\u0E2A\u0E41\u0E30": "s\u00E6" - "\u0E2A\u0E41\u0E47": "s\u00E6" - "\u0E2A\u0E41": "s\u00E6\u0304" - "\u0E2A\u0E42\u0E22": "so\u0304i" - "\u0E2A\u0E42\u0E30": "so" - "\u0E2A\u0E42": "so\u0304" - "\u0E2A\u0E43": "sai" - "\u0E2A\u0E44\u0E22": "sai" - "\u0E2A\u0E44": "sai" - # FINAL CONSONANT SO SUA WITH NO VOWEL - "%\u0E2A": "t" - "\u0E2A": "so" - - # CONSONANT HO HIP WITH VOWELS - "\u0E2B\u0E22\u0E27": "ha\u0304o" - "\u0E2B\u0E24": "hr\u01B0" - "\u0E2B\u0E24": "hri" - "\u0E2B\u0E24": "h\u0153\u0304" - "\u0E2B\u0E24\u0E32": "hr\u01B0\u0304" - "\u0E2B\u0E26\u0032": "hl\u01B0\u0304" - "\u0E2B\u0E26": "hl\u01B0" - "\u0E2B\u0E27\u0E22": "hu\u0304ai" - "\u0E2B\u0E27": "hu\u0304a" - "\u0E2B\u0E2D\u0E22": "ho\u0304\u031Ci" - "\u0E2B\u0E2D": "ho\u0304\u031C" - "\u0E2B\u0E30": "ha" - "\u0E2B\u0E31\u0E22": "hai" - "\u0E2B\u0E31\u0E27\u0E30": "hua" - "\u0E2B\u0E31\u0E27": "hu\u0304a" - "\u0E2B\u0E31": "ha" - "\u0E2B\u0E32\u0E22": "ha\u0304i" - "\u0E2B\u0E32": "ha\u0304" - "\u0E2B\u0E33": "ham" - "\u0E2B\u0E34\u0E27": "hiu" - "\u0E2B\u0E34": "hi" - "\u0E2B\u0E35": "hi\u0304" - "\u0E2B\u0E36": "h\u01B0" - "\u0E2B\u0E37": "h\u01B0\u0304" - "\u0E2B\u0E38\u0E22": "hui" - "\u0E2B\u0E38": "hu" - "\u0E2B\u0E39": "hu\u0304" - "\u0E2B\u0E40\u0E22": "hao" - "\u0E2B\u0E40\u0E30": "he" - "\u0E2B\u0E40\u0E47": "he" - "\u0E2B\u0E40\u0E27\u0E30": "ho\u031C" - "\u0E2B\u0E40\u0E2D\u0E30": "h\u0153" - "\u0E2B\u0E40\u0E2D": "h\u0153\u0304" - "\u0E2B\u0E40\u0E34": "h\u0153\u0304" - "\u0E2B\u0E40\u0E22": "h\u0153\u0304i" - "\u0E2B\u0E40\u0E35\u0E22\u0E27": "hi\u0304eo" - "\u0E2B\u0E40\u0E35\u0E22\u0E30": "hia" - "\u0E2B\u0E40\u0E35\u0E22": "hi\u0304a" - "\u0E2B\u0E40\u0E37\u0E2D\u0E22": "h\u01B0\u0304ai" - "\u0E2B\u0E40\u0E37\u0E2D\u0E30": "h\u01B0a" - "\u0E2B\u0E40\u0E37\u0E2D": "h\u01B0\u0304a" - "\u0E2B\u0E40\u0E47\u0E27": "heo" - "\u0E2B\u0E40\u0E27": "he\u0304o" - "\u0E2B\u0E40": "he\u0304" - "\u0E2B\u0E41\u0E27": "h\u00E6\u0304o" - "\u0E2B\u0E41\u0E30": "h\u00E6" - "\u0E2B\u0E41\u0E47": "h\u00E6" - "\u0E2B\u0E41": "h\u00E6\u0304" - "\u0E2B\u0E42\u0E22": "ho\u0304i" - "\u0E2B\u0E42\u0E30": "ho" - "\u0E2B\u0E42": "ho\u0304" - "\u0E2B\u0E43": "hai" - "\u0E2B\u0E44\u0E22": "hai" - "\u0E2B\u0E44": "hai" - # FINAL CONSONANT HO HIP WITH NO VOWEL - "%\u0E2B": "" - "\u0E2B": "ho" - - # CONSONANT LO CHULA WITH VOWELS - "\u0E2C\u0E22\u0E27": "la\u0304o" - "\u0E2C\u0E24": "lr\u01B0" - "\u0E2C\u0E24": "lri" - "\u0E2C\u0E24": "l\u0153\u0304" - "\u0E2C\u0E24\u0E32": "lr\u01B0\u0304" - "\u0E2C\u0E26\u0032": "ll\u01B0\u0304" - "\u0E2C\u0E26": "ll\u01B0" - "\u0E2C\u0E27\u0E22": "lu\u0304ai" - "\u0E2C\u0E27": "lu\u0304a" - "\u0E2C\u0E2D\u0E22": "lo\u0304\u031Ci" - "\u0E2C\u0E2D": "lo\u0304\u031C" - "\u0E2C\u0E30": "la" - "\u0E2C\u0E31\u0E22": "lai" - "\u0E2C\u0E31\u0E27\u0E30": "lua" - "\u0E2C\u0E31\u0E27": "lu\u0304a" - "\u0E2C\u0E31": "la" - "\u0E2C\u0E32\u0E22": "la\u0304i" - "\u0E2C\u0E32": "la\u0304" - "\u0E2C\u0E33": "lam" - "\u0E2C\u0E34\u0E27": "liu" - "\u0E2C\u0E34": "li" - "\u0E2C\u0E35": "li\u0304" - "\u0E2C\u0E36": "l\u01B0" - "\u0E2C\u0E37": "l\u01B0\u0304" - "\u0E2C\u0E38\u0E22": "lui" - "\u0E2C\u0E38": "lu" - "\u0E2C\u0E39": "lu\u0304" - "\u0E2C\u0E40\u0E22": "lao" - "\u0E2C\u0E40\u0E30": "le" - "\u0E2C\u0E40\u0E47": "le" - "\u0E2C\u0E40\u0E27\u0E30": "lo\u031C" - "\u0E2C\u0E40\u0E2D\u0E30": "l\u0153" - "\u0E2C\u0E40\u0E2D": "l\u0153\u0304" - "\u0E2C\u0E40\u0E34": "l\u0153\u0304" - "\u0E2C\u0E40\u0E22": "l\u0153\u0304i" - "\u0E2C\u0E40\u0E35\u0E22\u0E27": "li\u0304eo" - "\u0E2C\u0E40\u0E35\u0E22\u0E30": "lia" - "\u0E2C\u0E40\u0E35\u0E22": "li\u0304a" - "\u0E2C\u0E40\u0E37\u0E2D\u0E22": "l\u01B0\u0304ai" - "\u0E2C\u0E40\u0E37\u0E2D\u0E30": "l\u01B0a" - "\u0E2C\u0E40\u0E37\u0E2D": "l\u01B0\u0304a" - "\u0E2C\u0E40\u0E47\u0E27": "leo" - "\u0E2C\u0E40\u0E27": "le\u0304o" - "\u0E2C\u0E40": "le\u0304" - "\u0E2C\u0E41\u0E27": "l\u00E6\u0304o" - "\u0E2C\u0E41\u0E30": "l\u00E6" - "\u0E2C\u0E41\u0E47": "l\u00E6" - "\u0E2C\u0E41": "l\u00E6\u0304" - "\u0E2C\u0E42\u0E22": "lo\u0304i" - "\u0E2C\u0E42\u0E30": "lo" - "\u0E2C\u0E42": "lo\u0304" - "\u0E2C\u0E43": "lai" - "\u0E2C\u0E44\u0E22": "lai" - "\u0E2C\u0E44": "lai" - # FINAL CONSONANT LO CHULA WITH NO VOWEL - "%\u0E2C": "n" - "\u0E2C": "lo" - - # CONSONANT O ANG WITH VOWELS ALONE (NO CONSONANT) - "\u0E2D\u0E22\u0E27": "\u02BBa\u0304o" - "\u0E2D\u0E24": "\u02BBr\u01B0" - "\u0E2D\u0E24": "\u02BBri" - "\u0E2D\u0E24": "\u02BB\u0153\u0304" - "\u0E2D\u0E24\u0E32": "\u02BBr\u01B0\u0304" - "\u0E2D\u0E26\u0032": "\u02BBl\u01B0\u0304" - "\u0E2D\u0E26": "\u02BBl\u01B0" - "\u0E2D\u0E27\u0E22": "\u02BBu\u0304ai" - "\u0E2D\u0E27": "\u02BBu\u0304a" - "\u0E2D\u0E2D\u0E22": "\u02BBo\u0304\u031Ci" - "\u0E2D\u0E2D": "\u02BBo\u0304\u031C" - "\u0E2D\u0E30": "\u02BBa" - "\u0E2D\u0E31\u0E22": "\u02BBai" - "\u0E2D\u0E31\u0E27\u0E30": "\u02BBua" - "\u0E2D\u0E31\u0E27": "\u02BBu\u0304a" - "\u0E2D\u0E31": "\u02BBa" - "\u0E2D\u0E32\u0E22": "\u02BBa\u0304i" - "\u0E2D\u0E32": "\u02BBa\u0304" - "\u0E2D\u0E33": "\u02BBam" - "\u0E2D\u0E34\u0E27": "\u02BBiu" - "\u0E2D\u0E34": "\u02BBi" - "\u0E2D\u0E35": "\u02BBi\u0304" - "\u0E2D\u0E36": "\u02BB\u01B0" - "\u0E2D\u0E37": "\u02BB\u01B0\u0304" - "\u0E2D\u0E38\u0E22": "\u02BBui" - "\u0E2D\u0E38": "\u02BBu" - "\u0E2D\u0E39": "\u02BBu\u0304" - "\u0E2D\u0E40\u0E22": "\u02BBao" - "\u0E2D\u0E40\u0E30": "\u02BBe" - "\u0E2D\u0E40\u0E47": "\u02BBe" - "\u0E2D\u0E40\u0E27\u0E30": "\u02BBo\u031C" - "\u0E2D\u0E40\u0E2D\u0E30": "\u02BB\u0153" - "\u0E2D\u0E40\u0E2D": "\u02BB\u0153\u0304" - "\u0E2D\u0E40\u0E34": "\u02BB\u0153\u0304" - "\u0E2D\u0E40\u0E22": "\u02BB\u0153\u0304i" - "\u0E2D\u0E40\u0E35\u0E22\u0E27": "\u02BBi\u0304eo" - "\u0E2D\u0E40\u0E35\u0E22\u0E30": "\u02BBia" - "\u0E2D\u0E40\u0E35\u0E22": "\u02BBi\u0304a" - "\u0E2D\u0E40\u0E37\u0E2D\u0E22": "\u02BB\u01B0\u0304ai" - "\u0E2D\u0E40\u0E37\u0E2D\u0E30": "\u02BB\u01B0a" - "\u0E2D\u0E40\u0E37\u0E2D": "\u02BB\u01B0\u0304a" - "\u0E2D\u0E40\u0E47\u0E27": "\u02BBeo" - "\u0E2D\u0E40\u0E27": "\u02BBe\u0304o" - "\u0E2D\u0E40": "\u02BBe\u0304" - "\u0E2D\u0E41\u0E27": "\u02BB\u00E6\u0304o" - "\u0E2D\u0E41\u0E30": "\u02BB\u00E6" - "\u0E2D\u0E41\u0E47": "\u02BB\u00E6" - "\u0E2D\u0E41": "\u02BB\u00E6\u0304" - "\u0E2D\u0E42\u0E22": "\u02BBo\u0304i" - "\u0E2D\u0E42\u0E30": "\u02BBo" - "\u0E2D\u0E42": "\u02BBo\u0304" - "\u0E2D\u0E43": "\u02BBai" - "\u0E2D\u0E44\u0E22": "\u02BBai" - "\u0E2D\u0E44": "\u02BBai" - "\u0E2D": "\u02BBo" - - # CONSONANT HO NOKHUK WITH VOWELS - "\u0E2E\u0E22\u0E27": "ha\u0304o" - "\u0E2E\u0E24": "hr\u01B0" - "\u0E2E\u0E24": "hri" - "\u0E2E\u0E24": "h\u0153\u0304" - "\u0E2E\u0E24\u0E32": "hr\u01B0\u0304" - "\u0E2E\u0E26\u0032": "hl\u01B0\u0304" - "\u0E2E\u0E26": "hl\u01B0" - "\u0E2E\u0E27\u0E22": "hu\u0304ai" - "\u0E2E\u0E27": "hu\u0304a" - "\u0E2E\u0E2D\u0E22": "ho\u0304\u031Ci" - "\u0E2E\u0E2D": "ho\u0304\u031C" - "\u0E2E\u0E30": "ha" - "\u0E2E\u0E31\u0E22": "hai" - "\u0E2E\u0E31\u0E27\u0E30": "hua" - "\u0E2E\u0E31\u0E27": "hu\u0304a" - "\u0E2E\u0E31": "ha" - "\u0E2E\u0E32\u0E22": "ha\u0304i" - "\u0E2E\u0E32": "ha\u0304" - "\u0E2E\u0E33": "ham" - "\u0E2E\u0E34\u0E27": "hiu" - "\u0E2E\u0E34": "hi" - "\u0E2E\u0E35": "hi\u0304" - "\u0E2E\u0E36": "h\u01B0" - "\u0E2E\u0E37": "h\u01B0\u0304" - "\u0E2E\u0E38\u0E22": "hui" - "\u0E2E\u0E38": "hu" - "\u0E2E\u0E39": "hu\u0304" - "\u0E2E\u0E40\u0E22": "hao" - "\u0E2E\u0E40\u0E30": "he" - "\u0E2E\u0E40\u0E47": "he" - "\u0E2E\u0E40\u0E27\u0E30": "ho\u031C" - "\u0E2E\u0E40\u0E2D\u0E30": "h\u0153" - "\u0E2E\u0E40\u0E2D": "h\u0153\u0304" - "\u0E2E\u0E40\u0E34": "h\u0153\u0304" - "\u0E2E\u0E40\u0E22": "h\u0153\u0304i" - "\u0E2E\u0E40\u0E35\u0E22\u0E27": "hi\u0304eo" - "\u0E2E\u0E40\u0E35\u0E22\u0E30": "hia" - "\u0E2E\u0E40\u0E35\u0E22": "hi\u0304a" - "\u0E2E\u0E40\u0E37\u0E2D\u0E22": "h\u01B0\u0304ai" - "\u0E2E\u0E40\u0E37\u0E2D\u0E30": "h\u01B0a" - "\u0E2E\u0E40\u0E37\u0E2D": "h\u01B0\u0304a" - "\u0E2E\u0E40\u0E47\u0E27": "heo" - "\u0E2E\u0E40\u0E27": "he\u0304o" - "\u0E2E\u0E40": "he\u0304" - "\u0E2E\u0E41\u0E27": "h\u00E6\u0304o" - "\u0E2E\u0E41\u0E30": "h\u00E6" - "\u0E2E\u0E41\u0E47": "h\u00E6" - "\u0E2E\u0E41": "h\u00E6\u0304" - "\u0E2E\u0E42\u0E22": "ho\u0304i" - "\u0E2E\u0E42\u0E30": "ho" - "\u0E2E\u0E42": "ho\u0304" - "\u0E2E\u0E43": "hai" - "\u0E2E\u0E44\u0E22": "hai" - "\u0E2E\u0E44": "hai" - # FINAL CONSONANT HO NOKHUK WITH NO VOWEL - "%\u0E2E": "" - "\u0E2E": "ho" - - "\u0E2F": "" - "\u0E30": "" - "\u0E31": "" - "\u0E32": "" - "\u0E33": "" - "\u0E34": "" - "\u0E35": "" - "\u0E36": "" - "\u0E37": "" - "\u0E38": "" - "\u0E39": "" - "\u0E3A": "" - "\u0E3F": "" - "\u0E40": "" - "\u0E41": "" - "\u0E42": "" - "\u0E43": "" - "\u0E44": "" - "\u0E45": "" - "\u0E46": "" - "\u0E47": "" - "\u0E48": "" - "\u0E49": "" - "\u0E4A": "" - "\u0E4B": "" - "\u0E4C": "" - "\u0E4D": "" - "\u0E4E": "" - "\u0E4F": "" - "\u0E50": "0" - "\u0E51": "1" - "\u0E52": "2" - "\u0E53": "3" - "\u0E54": "4" - "\u0E55": "5" - "\u0E56": "6" - "\u0E57": "7" - "\u0E58": "8" - "\u0E59": "9" - "\u0E5A": "" - "\u0E5B": "" diff --git a/scriptshifter/tables/data/uighur_arabic.yml b/scriptshifter/tables/data/uighur_arabic.yml index 9a5ce91..7b2ae34 100644 --- a/scriptshifter/tables/data/uighur_arabic.yml +++ b/scriptshifter/tables/data/uighur_arabic.yml @@ -1,5 +1,7 @@ +--- general: name: Uighur (Arabic) + case_sensitive: false roman_to_script: map: @@ -118,7 +120,7 @@ roman_to_script: "%zh": "\uFB8A" "zh": "\uFB8B" "%zh%": "\uFB8A" - + script_to_roman: map: "\u0626\u0627": "a" @@ -157,9 +159,9 @@ script_to_roman: "\uFEEB": "h" "\uFEEC": "h" "\u0640\u0629": "h" - "\uFEEA": "h" + "%\uFEEA": "h" "\u0629": "h" - "\u0647": "h" + "%\u0647%": "h" "\uFE8C": "i" "\uFBE8": "i" "\uFBE9": "i" diff --git a/scriptshifter/tables/data/index.yml b/scriptshifter/tables/index.yml similarity index 85% rename from scriptshifter/tables/data/index.yml rename to scriptshifter/tables/index.yml index 9b3be81..0472878 100644 --- a/scriptshifter/tables/data/index.yml +++ b/scriptshifter/tables/index.yml @@ -1,3 +1,4 @@ +--- # Map index file. # # Configurations not listed here will not show in the UI drop-down menu or @@ -14,7 +15,8 @@ altai_cyrillic: marc_code: alt name: Altai (Cyrillic) arabic: - description: Arabic-to-Roman transliterator using the ArabicTransliterator external + description: > + Arabic-to-Roman transliterator using the ArabicTransliterator external library. marc_code: ara name: Arabic (S2R) @@ -22,14 +24,17 @@ armenian: marc_code: arm name: Armenian asian_cyrillic: - description: 'Multi-purpose transliteration for non-Slavic Cyrillic scripts: Abaza, - Abkhaz, Adygei, Aisor, Altai, Avar, Azeri, Balkar, Bashkir, Buryat, Chechen, Chukchi, - Chuvash, Dargwa, Dungan, Eskimo, Even, Evenki, Gagauz, Ingush, Inuit, Kabardian, - Kalmyk, Karachay, Karachay-Balkar, Karakalpak, Karelian, Khakass, Khanty, Komi, - Komi-Permyak, Koryak, Kumyk, Lak, Lapp, Lezghian, Lithuanian, Mansi, Mari, Moldovan, - Molodstov, Mordvin, Nanai, Nenets, Nivkh, Nogai, Ossetic, Permyak, Romanian, Romany, - Selkup, Shor, Tabasaran, Tat, Tuva, Udekhe, Udmurt, Yakut.' - marc_code: abk, ady, alt, ava, bak, che, chv, dar, ale, esk, kbd, xal, krc, kaa, + description: > + Multi-purpose transliteration for non-Slavic Cyrillic scripts: Abaza, + Abkhaz, Adygei, Aisor, Altai, Avar, Azeri, Balkar, Bashkir, Buryat, + Chechen, Chukchi, Chuvash, Dargwa, Dungan, Eskimo, Even, Evenki, Gagauz, + Ingush, Inuit, Kabardian, Kalmyk, Karachay, Karachay-Balkar, Karakalpak, + Karelian, Khakass, Khanty, Komi, Komi-Permyak, Koryak, Kumyk, Lak, Lapp, + Lezghian, Lithuanian, Mansi, Mari, Moldovan, Molodstov, Mordvin, Nanai, + Nenets, Nivkh, Nogai, Ossetic, Permyak, Romanian, Romany, Selkup, Shor, + Tabasaran, Tat, Tuva, Udekhe, Udmurt, Yakut. + marc_code: > + abk, ady, alt, ava, bak, che, chv, dar, ale, esk, kbd, xal, krc, kaa, krl, kom, kum, lez, lit, chm, nog, oss, rum, rom, sel, udm, sah name: Asian Cyrillic azerbaijani_cyrillic: @@ -134,8 +139,9 @@ komi_cyrillic: marc_code: kom name: Komi (Cyrillic) korean_names: - description: Korean S2R for strings ONLY containing personal names formatted as - last + first name. Separate multiple names with a comma or a center-dot (U+00B7). + description: > + Korean S2R for strings ONLY containing personal names formatted as last + + first name. Separate multiple names with a comma or a center-dot (U+00B7). marc_code: kor name: Korean (last + first names only) korean_nonames: @@ -255,9 +261,6 @@ telugu: thai: marc_code: tha name: Thai -thai_alt: - marc_code: tha - name: Thai (alternative) tibetan: marc_code: tib name: Tibetan diff --git a/scriptshifter/trans.py b/scriptshifter/trans.py index 7d68601..0c8a74c 100644 --- a/scriptshifter/trans.py +++ b/scriptshifter/trans.py @@ -1,7 +1,7 @@ import logging from importlib import import_module -from re import compile +from re import Pattern, compile from scriptshifter.exceptions import BREAK, CONT from scriptshifter.tables import ( @@ -120,11 +120,12 @@ def transliterate(src, lang, t_dir="s2r", capitalize=False, options={}): if _run_hook("post_config", ctx) == BREAK: return getattr(ctx, "dest", ""), ctx.warnings - _normalize_src(ctx, get_lang_normalize(ctx.conn, ctx.lang_id)) - - if _run_hook("post_normalize", ctx) == BREAK: + # _normalize_src returns the results of the post_normalize hook. + if _normalize_src( + ctx, get_lang_normalize(ctx.conn, ctx.lang_id)) == BREAK: return getattr(ctx, "dest", ""), ctx.warnings + logger.debug(f"Normalized source: {ctx.src}") lang_map = list(get_lang_map(ctx.conn, ctx.lang_id, ctx.t_dir)) # Loop through source characters. The increment of each loop depends on @@ -169,8 +170,21 @@ def transliterate(src, lang, t_dir="s2r", capitalize=False, options={}): if hret == CONT: continue - step = len(ctx.tk) - if ctx.tk == ctx.src[ctx.cur:ctx.cur + step]: + _matching = False + if type(ctx.tk) is Pattern: + # Seach RE pattern beginning at cursor. + if _ptn_match := ctx.tk.match(ctx.src[ctx.cur:]): + ctx.tk = _ptn_match[0] + logger.debug(f"Matched regex: {ctx.tk}") + step = len(ctx.tk) + _matching = True + else: + # Search exact match. + step = len(ctx.tk) + if ctx.tk == ctx.src[ctx.cur:ctx.cur + step]: + _matching = True + + if _matching: # The position matches an ignore token. hret = _run_hook("on_ignore_match", ctx) if hret == BREAK: @@ -181,6 +195,12 @@ def transliterate(src, lang, t_dir="s2r", capitalize=False, options={}): logger.info(f"Ignored token: {ctx.tk}") ctx.dest_ls.append(ctx.tk) ctx.cur += step + if ctx.cur >= len(ctx.src): + # reached end of string. Stop ignoring. + # The outer loop will exit imediately after. + ctx.ignoring = False + break + cur_char = ctx.src[ctx.cur] ctx.ignoring = True break @@ -193,6 +213,9 @@ def transliterate(src, lang, t_dir="s2r", capitalize=False, options={}): delattr(ctx, "tk") delattr(ctx, "ignoring") + if ctx.cur >= len(ctx.src): + break + # Begin transliteration token lookup. ctx.match = False @@ -315,10 +338,14 @@ def transliterate(src, lang, t_dir="s2r", capitalize=False, options={}): def _normalize_src(ctx, norm_rules): """ Normalize source text according to rules. + + NOTE: this manipluates the protected source attribute so it may not + correspond to the originally provided source. """ for nk, nv in norm_rules.items(): ctx._src = ctx.src.replace(nk, nv) - logger.debug(f"Normalized source: {ctx.src}") + + return _run_hook("post_normalize", ctx) def _is_bow(cur, ctx, word_boundary): diff --git a/scriptshifter_base.Dockerfile b/scriptshifter_base.Dockerfile index 9cd06c3..4a66ddb 100644 --- a/scriptshifter_base.Dockerfile +++ b/scriptshifter_base.Dockerfile @@ -10,6 +10,8 @@ RUN addgroup --system www RUN adduser --system www RUN gpasswd -a www www +ENV HF_DATASETS_CACHE /data/hf/datasets + # Copy external dependencies. WORKDIR ${WORKROOT} COPY ext ./ext/ diff --git a/sscli b/sscli index 154aaf2..dca7334 100755 --- a/sscli +++ b/sscli @@ -10,7 +10,7 @@ from os import path from scriptshifter import DB_PATH from scriptshifter.tables import init_db as _init_db -from tests import test_sample +from tests.integration_tests import test_sample @click.group() diff --git a/tests/__init__.py b/tests/__init__.py index e4cde3e..4d43854 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,71 +1,17 @@ -from csv import reader -from difflib import ndiff from importlib import reload -from json import loads as jloads -from logging import getLogger -from os import path +from os import path, environ +from tempfile import gettempdir -import scriptshifter.tables - -from scriptshifter.trans import transliterate +import scriptshifter +from scriptshifter import tables TEST_DIR = path.dirname(path.realpath(__file__)) TEST_DATA_DIR = path.join(TEST_DIR, "data") +TEST_CONFIG_DIR = path.join(TEST_DIR, "tables", "data") -logger = getLogger(__name__) - - -def reload_tables(): - reload(scriptshifter.tables) # Reload new config dir. - from scriptshifter import tables - tables.list_tables.cache_clear() - tables.get_language.cache_clear() - tables.get_lang_map.cache_clear() - - return tables - - -def test_sample(dset): - """ - Test an individual sample set and produce a human-readable report. - - Used outside of automated tests. - - @param dset (str): sample set name (without the .csv extension) found in - the `data/script_samples` directory. - """ - deltas = [] - dset_fpath = path.join(TEST_DATA_DIR, "script_samples", dset + ".csv") - log_fpath = path.join(TEST_DATA_DIR, f"test_{dset}.log") - - with open(dset_fpath, newline="") as fh: - csv = reader(fh) - for row in csv: - lang, script, rom = row[:3] - if not lang: - continue - opts = jloads(row[3]) if len(row) > 3 and row[3] else {} - trans, warnings = transliterate( - script, lang, t_dir="s2r", - capitalize=opts.get("capitalize"), options=opts) - if (trans == rom): - print(".", end="") - else: - print("F", end="") - deltas.append((lang, script, ndiff([trans], [rom]))) - - with open(log_fpath, "w") as fh: - # If no deltas, just truncate the file. - for lang, script, delta in deltas: - fh.write(f"Language: {lang}\n") - fh.write(f"Original: {script}\nDiff (result vs. expected):\n") - for dline in delta: - fh.write(dline.strip() + "\n") - fh.write("\n\n") - - ct = len(deltas) - if ct > 0: - print(f"{ct} failed tests. See report at {log_fpath}") - else: - print("All tests passed.") +# Reload main SS modules after changing environment variables. +environ["TXL_DB_PATH"] = path.join(gettempdir(), "scriptshifter_unittest.db") +reload(scriptshifter) +environ["TXL_CONFIG_TABLE_DIR"] = TEST_CONFIG_DIR +reload(tables) diff --git a/tests/data/index.yml b/tests/data/index.yml deleted file mode 100644 index 489e169..0000000 --- a/tests/data/index.yml +++ /dev/null @@ -1,6 +0,0 @@ -inherited: - name: Test inherited table -ordering: - name: Test ordering -rot3: - name: Test ROT3 hooks diff --git a/tests/data/script_samples/unittest.csv b/tests/data/script_samples/unittest.csv new file mode 100644 index 0000000..fda09ce --- /dev/null +++ b/tests/data/script_samples/unittest.csv @@ -0,0 +1,8 @@ +inherited,abcd,9078,, +inherited,TUVX,tuvx,"{""t_dir"": ""r2s""}", +rot3,defg,abcd,, +rot3,HIJK,KLMN,"{""t_dir"": ""r2s""}", +rot3,st uv,Vw xy,"{""t_dir"": ""r2s"", ""capitalize"": ""first""}", +rot3,st uv,Vw Xy,"{""t_dir"": ""r2s"", ""capitalize"": ""all""}", +regex,Hello abc,Hello 678,"{""t_dir"": ""r2s""}", +regex,Hullo abc,5u22o 678,"{""t_dir"": ""r2s""}", diff --git a/tests/integration_tests.py b/tests/integration_tests.py new file mode 100644 index 0000000..e079664 --- /dev/null +++ b/tests/integration_tests.py @@ -0,0 +1,58 @@ +from csv import reader +from difflib import ndiff +from json import loads as jloads +from logging import getLogger +from os import path + +from scriptshifter.trans import transliterate +from tests import TEST_DATA_DIR + +logger = getLogger(__name__) + + +def test_sample(dset): + """ + Test an individual sample set and produce a human-readable report. + + Used outside of automated tests. + + @param dset (str): sample set name (without the .csv extension) found in + the `data/script_samples` directory. + """ + deltas = [] + dset_fpath = path.join(TEST_DATA_DIR, "script_samples", dset + ".csv") + log_fpath = path.join(TEST_DATA_DIR, f"test_{dset}.log") + + with open(dset_fpath, newline="") as fh: + csv = reader(fh) + i = 1 + for row in csv: + logger.info(f"CSV row #{i}") + i += 1 + lang, script, rom = row[:3] + if not lang: + continue + opts = jloads(row[3]) if len(row) > 3 and row[3] else {} + trans, warnings = transliterate( + script, lang, t_dir="s2r", + capitalize=opts.get("capitalize"), options=opts) + if (trans == rom): + print(".", end="") + else: + print("F", end="") + deltas.append((lang, script, ndiff([trans], [rom]))) + + with open(log_fpath, "w") as fh: + # If no deltas, just truncate the file. + for lang, script, delta in deltas: + fh.write(f"Language: {lang}\n") + fh.write(f"Original: {script}\nDiff (result vs. expected):\n") + for dline in delta: + fh.write(dline.strip() + "\n") + fh.write("\n\n") + + ct = len(deltas) + if ct > 0: + print(f"{ct} failed tests. See report at {log_fpath}") + else: + print("All tests passed.") diff --git a/tests/data/_base1.yml b/tests/tables/data/_base1.yml similarity index 100% rename from tests/data/_base1.yml rename to tests/tables/data/_base1.yml diff --git a/tests/data/_base2.yml b/tests/tables/data/_base2.yml similarity index 100% rename from tests/data/_base2.yml rename to tests/tables/data/_base2.yml diff --git a/tests/data/_base3.yml b/tests/tables/data/_base3.yml similarity index 100% rename from tests/data/_base3.yml rename to tests/tables/data/_base3.yml diff --git a/tests/data/cap_base1.yml b/tests/tables/data/cap_base1.yml similarity index 100% rename from tests/data/cap_base1.yml rename to tests/tables/data/cap_base1.yml diff --git a/tests/data/cap_base2.yml b/tests/tables/data/cap_base2.yml similarity index 100% rename from tests/data/cap_base2.yml rename to tests/tables/data/cap_base2.yml diff --git a/tests/data/cap_inherited.yml b/tests/tables/data/cap_inherited.yml similarity index 100% rename from tests/data/cap_inherited.yml rename to tests/tables/data/cap_inherited.yml diff --git a/tests/data/inherited.yml b/tests/tables/data/inherited.yml similarity index 100% rename from tests/data/inherited.yml rename to tests/tables/data/inherited.yml diff --git a/tests/data/ordering.yml b/tests/tables/data/ordering.yml similarity index 100% rename from tests/data/ordering.yml rename to tests/tables/data/ordering.yml diff --git a/tests/tables/data/regex.yml b/tests/tables/data/regex.yml new file mode 100644 index 0000000..cf18a09 --- /dev/null +++ b/tests/tables/data/regex.yml @@ -0,0 +1,19 @@ +--- +# Test file for regex ignoring. + +general: + name: Test regex ignoring. + parents: + - inherited + +roman_to_script: + ignore_ptn: + - "[hH][ae]llo" + + map: + "h": "1" + "H": "5" + "l": "2" + "a": "6" + "b": "7" + "c": "8" diff --git a/tests/data/rot3.yml b/tests/tables/data/rot3.yml similarity index 100% rename from tests/data/rot3.yml rename to tests/tables/data/rot3.yml diff --git a/tests/tables/index.yml b/tests/tables/index.yml new file mode 100644 index 0000000..3b4aad4 --- /dev/null +++ b/tests/tables/index.yml @@ -0,0 +1,17 @@ +--- +inherited: + name: Test inheritance leaf file + marc_code: inh + description: Test description. +cap_base1: + name: Test capitalization base 1 +cap_base2: + name: Test capitalization base 2 +cap_inherited: + name: Test capitalization +ordering: + name: Test ordering +regex: + name: inherited config + regex ignore. +rot3: + name: Test ROT3 hooks diff --git a/tests/test01_cfg.py b/tests/test01_cfg.py index c861d91..8acd127 100644 --- a/tests/test01_cfg.py +++ b/tests/test01_cfg.py @@ -1,20 +1,21 @@ +from os import environ, unlink from unittest import TestCase -from os import environ +from scriptshifter.tables import get_language, init_db -import scriptshifter -from tests import TEST_DATA_DIR, reload_tables +def setUpModule(): + init_db() + + +def tearDownModule(): + unlink(environ["TXL_DB_PATH"]) class TestConfig(TestCase): """ Test configuration parsing. """ - def setUp(self): - environ["TXL_CONFIG_TABLE_DIR"] = TEST_DATA_DIR - self.tables = reload_tables() - def test_ordering(self): - tbl = self.tables.load_table("ordering") + tbl = get_language("ordering") exp_order = ["ABCD", "AB", "A", "BCDE", "BCD", "BEFGH", "B"] self.assertEqual( @@ -23,19 +24,17 @@ def test_ordering(self): class TestOverride(TestCase): """ Test configuration overrides. """ - def setUp(self): - environ["TXL_CONFIG_TABLE_DIR"] = TEST_DATA_DIR - self.tables = reload_tables() - def test_override_map(self): - tbl = self.tables.load_table("inherited") + tbl = get_language("inherited") - self.assertEqual(tbl["general"]["name"], "Test inheritance leaf file") + self.assertEqual(tbl["label"], "Test inheritance leaf file") + self.assertEqual(tbl["marc_code"], "inh") + self.assertEqual(tbl["description"], "Test description.") # Entries are additive. self.assertEqual( tbl["roman_to_script"]["ignore"], - ["Fritter my wig", "Hi", "Ho", "Thing-um-a-jig"]) + ("Fritter my wig", "Hi", "Ho", "Thing-um-a-jig")) self.assertEqual( tbl["roman_to_script"]["map"], ( @@ -102,34 +101,31 @@ def test_override_map(self): class TestHooks(TestCase): """ Test parsing of hook functions. """ - def setUp(self): - environ["TXL_CONFIG_TABLE_DIR"] = TEST_DATA_DIR - self.tables = reload_tables() - def test_rot3(self): - tbl = self.tables.load_table("rot3") + tbl = get_language("rot3") self.assertEqual( - tbl["script_to_roman"]["hooks"], - { - "begin_input_token": [ - ("test", scriptshifter.hooks.test.rotate, {"n": -3}) - ] - }) + tbl["script_to_roman"]["hooks"], + { + "begin_input_token": [ + { + "module_name": "test", + "fn_name": "rotate", + "kwargs": {"n": -3}, + } + ] + } + ) class TestDoubleCaps(TestCase): """ Test double capitalization configuration. """ - def setUp(self): - environ["TXL_CONFIG_TABLE_DIR"] = TEST_DATA_DIR - self.tables = reload_tables() - def test_dcaps_base1(self): - cap_base1 = self.tables.load_table("cap_base1") + cap_base1 = get_language("cap_base1") assert "z︠h︡" in cap_base1["script_to_roman"]["double_cap"] def test_dcaps_base2(self): - cap_base2 = self.tables.load_table("cap_base2") + cap_base2 = get_language("cap_base2") dcap = cap_base2["script_to_roman"]["double_cap"] assert len(dcap) == 2 @@ -137,7 +133,7 @@ def test_dcaps_base2(self): assert "i︠o︡" in dcap def test_dcaps_inherited(self): - cap_inherited = self.tables.load_table("cap_inherited") + cap_inherited = get_language("cap_inherited") dcap = cap_inherited["script_to_roman"]["double_cap"] assert len(dcap) == 1 diff --git a/tests/test02_transliteration.py b/tests/test02_transliteration.py index 9767ee9..9e3856b 100644 --- a/tests/test02_transliteration.py +++ b/tests/test02_transliteration.py @@ -2,18 +2,25 @@ from unittest import TestCase, TestSuite, TextTestRunner from csv import reader -from glob import glob from json import loads as jloads -from os import environ, path +from os import environ, path, unlink -from tests import TEST_DATA_DIR, reload_tables from scriptshifter.trans import transliterate -import scriptshifter.tables +from scriptshifter.tables import get_language, init_db +from tests import TEST_DATA_DIR logger = logging.getLogger(__name__) +def setUpModule(): + init_db() + + +def tearDownModule(): + unlink(environ["TXL_DB_PATH"]) + + class TestTrans(TestCase): """ Test S2R transliteration. @@ -23,20 +30,21 @@ class TestTrans(TestCase): TODO use a comprehensive sample table and report errors for unsupported languages. """ - - maxDiff = None - - def sample_s2r(self): + def sample(self): """ - Test S2R transliteration for one CSV sample. + Test transliteration for one CSV row. This function name won't start with `test_` otherwise will be automatically run without parameters. """ - config = scriptshifter.tables.load_table(self.tbl) - if "script_to_roman" in config: + config = get_language(self.tbl) + t_dir = self.options.get("t_dir", "s2r") + if ( + t_dir == "s2r" and config["has_s2r"] + or t_dir == "r2s" and config["has_r2s"]): txl = transliterate( self.script, self.tbl, + t_dir=t_dir, capitalize=self.options.get("capitalize", False), options=self.options)[0] self.assertEqual( @@ -44,49 +52,27 @@ def sample_s2r(self): f"S2R transliteration error for {self.tbl}!\n" f"Original: {self.script}") - def sample_r2s(self): - """ - Test R2S transliteration for one CSV sample. - - This function name won't start with `test_` otherwise will be - automatically run without parameters. - """ - config = scriptshifter.tables.load_table(self.tbl) - if "roman_to_script" in config: - txl = transliterate( - self.roman, self.tbl, - t_dir="r2s", - capitalize=self.options.get("capitalize", False), - options=self.options)[0] - self.assertEqual( - txl, self.script, - f"R2S transliteration error for {self.tbl}!\n" - f"Original: {self.roman}") - def make_suite(): """ Build parametrized test cases. """ - if "TXL_CONFIG_TABLE_DIR" in environ: - del environ["TXL_CONFIG_TABLE_DIR"] - reload_tables() - suite = TestSuite() - for fpath in glob(path.join(TEST_DATA_DIR, "script_samples", "*.csv")): - with open(fpath, newline="") as fh: - csv = reader(fh) - for row in csv: - if len(row[0]): - # Inject transliteration info in the test case. - for tname in ("sample_s2r", "sample_r2s"): - tcase = TestTrans(tname) - tcase.tbl = row[0] - tcase.script = row[1].strip() - tcase.roman = row[2].strip() - tcase.options = jloads(row[3]) if len(row[3]) else {} - suite.addTest(tcase) + with open(path.join( + TEST_DATA_DIR, "script_samples", "unittest.csv" + ), newline="") as fh: + csv = reader(fh) + for row in csv: + if len(row[0]): + # Inject transliteration info in the test case. + tcase = TestTrans("sample") + tcase.tbl = row[0] + tcase.script = row[1].strip() + tcase.roman = row[2].strip() + tcase.options = jloads(row[3]) if len(row[3]) else {} + + suite.addTest(tcase) return suite diff --git a/tests/test03_capitalization.py b/tests/test03_capitalization.py index 085cdf4..eaf53b8 100644 --- a/tests/test03_capitalization.py +++ b/tests/test03_capitalization.py @@ -1,19 +1,22 @@ -from os import environ +from os import environ, unlink from unittest import TestCase from scriptshifter.trans import transliterate -from tests import TEST_DATA_DIR, reload_tables +from scriptshifter.tables import init_db + + +def setUpModule(): + init_db() + + +def tearDownModule(): + unlink(environ["TXL_DB_PATH"]) class TestCapitalization(TestCase): """ Test capitalization. """ - - def setUp(self): - environ["TXL_CONFIG_TABLE_DIR"] = TEST_DATA_DIR - self.tables = reload_tables() - def test_cap(self): tbl = "cap_inherited" in_str = "зг іо" diff --git a/tests/test04_rest_api.py b/tests/test04_rest_api.py index 1bccd58..bf065f4 100644 --- a/tests/test04_rest_api.py +++ b/tests/test04_rest_api.py @@ -1,25 +1,28 @@ import json -from os import environ +from os import environ, unlink from unittest import TestCase from scriptshifter.rest_api import app -from tests import TEST_DATA_DIR, reload_tables +from scriptshifter.tables import init_db EP = "http://localhost:8000" +def setUpModule(): + init_db() + + +def tearDownModule(): + unlink(environ["TXL_DB_PATH"]) + + class TestRestAPI(TestCase): """ Test REST API interaction. """ - def setUp(self): - environ["TXL_CONFIG_TABLE_DIR"] = TEST_DATA_DIR - # if "TXL_CONFIG_TABLE_DIR" in environ: - # del environ["TXL_CONFIG_TABLE_DIR"] - reload_tables() - - # Start webapp. - app.testing = True + # def setUp(self): + # # Start webapp. + # app.testing = True def test_health(self): with app.test_client() as c: @@ -35,7 +38,7 @@ def test_language_list(self): data = json.loads(rsp.get_data(as_text=True)) self.assertIn("inherited", data) - self.assertIn("name", data["inherited"]) + self.assertIn("label", data["inherited"]) self.assertNotIn("_base1", data) self.assertNotIn("_base2", data) self.assertNotIn("_base3", data) @@ -47,14 +50,17 @@ def test_lang_table(self): self.assertEqual(rsp.status_code, 200) data = json.loads(rsp.get_data(as_text=True)) - self.assertIn("general", data) + self.assertIn("case_sensitive", data) + self.assertIn("description", data) self.assertIn("roman_to_script", data) self.assertIn("map", data["roman_to_script"]) + self.assertEqual(data["has_r2s"], True) + self.assertEqual(data["has_s2r"], False) self.assertEqual(data["roman_to_script"]["map"][0], ["ABCD", ""]) def test_trans_api_s2r(self): with app.test_client() as c: - rsp = c.post("/trans", data={"lang": "rot3", "text": "defg"}) + rsp = c.post("/trans", json={"lang": "rot3", "text": "defg"}) self.assertEqual(rsp.status_code, 200) data = json.loads(rsp.get_data(as_text=True)) @@ -64,7 +70,7 @@ def test_trans_api_s2r(self): def test_trans_api_r2s(self): with app.test_client() as c: rsp = c.post( - "/trans", data={ + "/trans", json={ "lang": "rot3", "text": "abcd", "t_dir": "r2s" @@ -80,7 +86,7 @@ def test_trans_api_capitalize(self): with app.test_client() as c: rsp = c.post( "/trans", - data={ + json={ "lang": "rot3", "capitalize": "first", "text": "bcde",