From 6e803fa7cef4544f867a248d455268e2fe0dcf8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Mi=C5=9B?= Date: Fri, 27 Sep 2024 04:06:28 +0200 Subject: [PATCH] Update liblouis from v3.26.0 to v3.31.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Patryk Miś --- .../third_party/liblouis/liblouis/Makefile.in | 4 - .../liblouis/commonTranslationFunctions.lo | 12 - .../liblouis/commonTranslationFunctions.o | Bin 9104 -> 0 bytes .../liblouis/compileTranslationTable.c | 384 +- .../liblouis/compileTranslationTable.lo | 12 - .../liblouis/compileTranslationTable.o | Bin 437088 -> 0 bytes .../third_party/liblouis/liblouis/config.h | 8 +- .../third_party/liblouis/liblouis/internal.h | 10 +- .../third_party/liblouis/liblouis/liblouis.la | 41 - .../third_party/liblouis/liblouis/logging.lo | 12 - .../third_party/liblouis/liblouis/logging.o | Bin 18160 -> 0 bytes .../liblouis/lou_backTranslateString.c | 88 +- .../liblouis/lou_backTranslateString.lo | 12 - .../liblouis/lou_backTranslateString.o | Bin 156264 -> 0 bytes .../liblouis/liblouis/lou_translateString.c | 176 +- .../liblouis/liblouis/lou_translateString.lo | 12 - .../liblouis/liblouis/lou_translateString.o | Bin 409608 -> 0 bytes .../liblouis/liblouis/maketable.lo | 12 - .../third_party/liblouis/liblouis/maketable.o | Bin 40016 -> 0 bytes .../third_party/liblouis/liblouis/metadata.c | 65 +- .../third_party/liblouis/liblouis/metadata.lo | 12 - .../third_party/liblouis/liblouis/metadata.o | Bin 89464 -> 0 bytes .../third_party/liblouis/liblouis/pattern.lo | 12 - .../third_party/liblouis/liblouis/pattern.o | Bin 54016 -> 0 bytes .../third_party/liblouis/liblouis/utils.lo | 12 - .../jni/third_party/liblouis/liblouis/utils.o | Bin 26576 -> 0 bytes .../translate/src/phone/tables/Lv-Lv-g1.utb | 6 - .../translate/src/phone/tables/akk-borger.utb | 997 ++ braille/translate/src/phone/tables/akk.utb | 1002 ++ .../src/phone/tables/bel-detailed.utb | 32 + .../phone/tables/cuneiform-transliterated.utb | 159 + .../src/phone/tables/da-dk-6miscChars.cti | 2 +- .../src/phone/tables/da-dk-8miscChars.cti | 2 +- .../translate/src/phone/tables/da-dk-g08.ctb | 2 +- .../translate/src/phone/tables/da-dk-g16.ctb | 8 +- .../translate/src/phone/tables/da-dk-g18.ctb | 5 +- .../translate/src/phone/tables/da-dk-g2.dic | 194 +- .../translate/src/phone/tables/da-dk-g26.ctb | 35 +- .../src/phone/tables/da-dk-octobraille.dis | 2 +- .../translate/src/phone/tables/devanagari.cti | 284 +- braille/translate/src/phone/tables/el.ctb | 104 +- .../src/phone/tables/en-chardefs.cti | 2 +- .../src/phone/tables/en-ueb-chardefs.uti | 141 +- .../translate/src/phone/tables/en-ueb-g1.ctb | 32 +- .../translate/src/phone/tables/en-ueb-g2.ctb | 278 +- braille/translate/src/phone/tables/fi.utb | 125 +- braille/translate/src/phone/tables/fil-g2.ctb | 491 + .../src/phone/tables/fr-bfu-comp8.utb | 2 +- .../phone/tables/grc-international-common.uti | 2 +- .../tables/grc-international-en-composed.utb | 54 + .../src/phone/tables/grc-international-en.utb | 6 +- braille/translate/src/phone/tables/hbo.utb | 213 + .../src/phone/tables/he-IL-comp8.utb | 2 +- braille/translate/src/phone/tables/he-IL.utb | 6 +- .../hu-backtranslate-word-corrections.cti | 772 +- .../src/phone/tables/hu-exceptionwords.cti | 614 +- .../src/phone/tables/hu-hu-comp8.ctb | 9 +- .../translate/src/phone/tables/hu-hu-g1.ctb | 1 - .../phone/tables/hu-hu-g1_braille_input.cti | 20 +- .../translate/src/phone/tables/hu-hu-g2.ctb | 5 +- .../src/phone/tables/ja-kantenji.utb | 11415 +--------------- .../translate/src/phone/tables/kannada.cti | 109 +- braille/translate/src/phone/tables/km-g1.utb | 24 +- .../translate/src/phone/tables/nemethdefs.cti | 10 +- .../translate/src/phone/tables/nl-NL-g0.utb | 1149 +- .../src/phone/tables/nl-chardefs.uti | 617 +- .../translate/src/phone/tables/ru-litbrl.ctb | 89 +- .../translate/src/phone/tables/sr-Cyrl.ctb | 59 + braille/translate/src/phone/tables/sr-g1.ctb | 108 +- braille/translate/src/phone/tables/sv-g0.utb | 374 +- braille/translate/src/phone/tables/sv-g1.ctb | 12 +- braille/translate/src/phone/tables/syc.utb | 195 + braille/translate/src/phone/tables/th-g1.utb | 367 + braille/translate/src/phone/tables/tr-g1.ctb | 205 +- braille/translate/src/phone/tables/tr-g2.ctb | 435 +- braille/translate/src/phone/tables/tr.ctb | 244 +- braille/translate/src/phone/tables/uga.utb | 86 + .../src/phone/tables/uk-detailed.utb | 32 + braille/translate/src/phone/tables/uk.utb | 66 +- .../translate/src/phone/tables/ur-pk-g1.utb | 39 +- .../translate/src/phone/tables/ur-pk-g2.ctb | 20 +- .../src/phone/tables/vi-puncsdef.uti | 2 +- .../src/phone/tables/vi-saigon-g1.ctb | 8 +- braille/translate/src/phone/tables/yi.utb | 236 + braille/translate/src/phone/tables/zh-hk.ctb | 16 +- .../translate/src/phone/tables/zhcn-g1.ctb | 10 + .../translate/src/phone/tables/zhcn-g2.ctb | 10 + 87 files changed, 9256 insertions(+), 13174 deletions(-) delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/commonTranslationFunctions.lo delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/commonTranslationFunctions.o delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.lo delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.o delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/liblouis.la delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/logging.lo delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/logging.o delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.lo delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.o delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.lo delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.o delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/maketable.lo delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/maketable.o delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.lo delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.o delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/pattern.lo delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/pattern.o delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/utils.lo delete mode 100644 braille/translate/src/phone/jni/third_party/liblouis/liblouis/utils.o create mode 100644 braille/translate/src/phone/tables/akk-borger.utb create mode 100644 braille/translate/src/phone/tables/akk.utb create mode 100644 braille/translate/src/phone/tables/bel-detailed.utb create mode 100644 braille/translate/src/phone/tables/cuneiform-transliterated.utb create mode 100644 braille/translate/src/phone/tables/fil-g2.ctb create mode 100644 braille/translate/src/phone/tables/grc-international-en-composed.utb create mode 100644 braille/translate/src/phone/tables/hbo.utb create mode 100644 braille/translate/src/phone/tables/sr-Cyrl.ctb create mode 100644 braille/translate/src/phone/tables/syc.utb create mode 100644 braille/translate/src/phone/tables/th-g1.utb create mode 100644 braille/translate/src/phone/tables/uga.utb create mode 100644 braille/translate/src/phone/tables/uk-detailed.utb create mode 100644 braille/translate/src/phone/tables/yi.utb diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/Makefile.in b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/Makefile.in index 5150315b9..777529397 100644 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/Makefile.in +++ b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/Makefile.in @@ -146,7 +146,6 @@ am__aclocal_m4_deps = $(top_srcdir)/tools/gnulib/m4/close.m4 \ $(top_srcdir)/gnulib/m4/limits-h.m4 \ $(top_srcdir)/gnulib/m4/malloc.m4 \ $(top_srcdir)/gnulib/m4/malloca.m4 \ - $(top_srcdir)/gnulib/m4/manywarnings.m4 \ $(top_srcdir)/gnulib/m4/multiarch.m4 \ $(top_srcdir)/gnulib/m4/off_t.m4 \ $(top_srcdir)/gnulib/m4/realloc.m4 \ @@ -161,7 +160,6 @@ am__aclocal_m4_deps = $(top_srcdir)/tools/gnulib/m4/close.m4 \ $(top_srcdir)/gnulib/m4/sys_types_h.m4 \ $(top_srcdir)/gnulib/m4/unistd_h.m4 \ $(top_srcdir)/gnulib/m4/warn-on-use.m4 \ - $(top_srcdir)/gnulib/m4/warnings.m4 \ $(top_srcdir)/gnulib/m4/wchar_h.m4 \ $(top_srcdir)/gnulib/m4/wchar_t.m4 \ $(top_srcdir)/gnulib/m4/wint_t.m4 \ @@ -339,7 +337,6 @@ ERRNO_H = @ERRNO_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -FILECMD = @FILECMD@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ @@ -1407,7 +1404,6 @@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WIDECHAR_TYPE = @WIDECHAR_TYPE@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/commonTranslationFunctions.lo b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/commonTranslationFunctions.lo deleted file mode 100644 index a83e9cf8f..000000000 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/commonTranslationFunctions.lo +++ /dev/null @@ -1,12 +0,0 @@ -# commonTranslationFunctions.lo - a libtool object file -# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-5 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/commonTranslationFunctions.o' - -# Name of the non-PIC object -non_pic_object='commonTranslationFunctions.o' - diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/commonTranslationFunctions.o b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/commonTranslationFunctions.o deleted file mode 100644 index 4f0be64e61acca43fa3a55d0ae9c1aff63475cab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9104 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 diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.c b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.c index f0d27f30b..89f321517 100644 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.c +++ b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.c @@ -343,18 +343,11 @@ int EXPORT_CALL _lou_getALine(FileInfo *file) { /* Read a line of widechar's from an input file */ int ch; - int pch = 0; file->linelen = 0; while ((ch = getAChar(file)) != EOF) { if (ch == 13) continue; - if (pch == '\\' && ch == 10) { - file->linelen--; - pch = ch; - continue; - } if (ch == 10 || file->linelen >= MAXSTRING - 1) break; file->line[file->linelen++] = (widechar)ch; - pch = ch; } file->line[file->linelen] = 0; file->linepos = 0; @@ -570,7 +563,7 @@ getDots(widechar d, TranslationTableHeader *table) { static TranslationTableCharacter * putChar(const FileInfo *file, widechar c, TranslationTableHeader **table, - TranslationTableOffset *characterOffset) { + TranslationTableOffset *characterOffset, int ruleIndex) { /* See if a character is in the appropriate table. If not, insert it. In either case, * return a pointer to it. */ TranslationTableCharacter *character; @@ -582,6 +575,7 @@ putChar(const FileInfo *file, widechar c, TranslationTableHeader **table, memset(character, 0, sizeof(*character)); character->sourceFile = file->sourceFile; character->sourceLine = file->lineNumber; + character->ruleIndex = ruleIndex; character->value = c; const unsigned long int charHash = _lou_charHash(c); const TranslationTableOffset bucket = (*table)->characters[charHash]; @@ -599,7 +593,7 @@ putChar(const FileInfo *file, widechar c, TranslationTableHeader **table, } static TranslationTableCharacter * -putDots(const FileInfo *file, widechar d, TranslationTableHeader **table) { +putDots(const FileInfo *file, widechar d, TranslationTableHeader **table, int ruleIndex) { /* See if a dot pattern is in the appropriate table. If not, insert it. In either * case, return a pointer to it. */ TranslationTableCharacter *character; @@ -611,6 +605,7 @@ putDots(const FileInfo *file, widechar d, TranslationTableHeader **table) { memset(character, 0, sizeof(*character)); character->sourceFile = file->sourceFile; character->sourceLine = file->lineNumber; + character->ruleIndex = ruleIndex; character->value = d; const unsigned long int charHash = _lou_charHash(d); const TranslationTableOffset bucket = (*table)->dots[charHash]; @@ -630,6 +625,7 @@ putDots(const FileInfo *file, widechar d, TranslationTableHeader **table) { static CharDotsMapping * getDotsForChar(widechar c, const DisplayTableHeader *table) { + if (table == NULL) return NULL; CharDotsMapping *cdPtr; const TranslationTableOffset bucket = table->charToDots[_lou_charHash(c)]; TranslationTableOffset offset = bucket; @@ -643,6 +639,7 @@ getDotsForChar(widechar c, const DisplayTableHeader *table) { static CharDotsMapping * getCharForDots(widechar d, const DisplayTableHeader *table) { + if (table == NULL) return NULL; CharDotsMapping *cdPtr; const TranslationTableOffset bucket = table->dotsToChar[_lou_charHash(d)]; TranslationTableOffset offset = bucket; @@ -802,11 +799,10 @@ passFindCharacters(const FileInfo *file, widechar *instructions, int end, } static const char * -printSource(const FileInfo *currentFile, const char *sourceFile, int sourceLine) { +printSource(const char *currentFile, const char *sourceFile, int sourceLine) { static char scratchBuf[MAXSTRING]; if (sourceFile) { - if (currentFile && currentFile->sourceFile && - strcmp(currentFile->sourceFile, sourceFile) == 0) + if (currentFile && strcmp(currentFile, sourceFile) == 0) snprintf(scratchBuf, MAXSTRING, "line %d", sourceLine); else snprintf(scratchBuf, MAXSTRING, "%s:%d", sourceFile, sourceLine); @@ -825,49 +821,49 @@ addForwardRuleWithSingleChar(const FileInfo *file, TranslationTableOffset ruleOf // get the character from the table, or if the character is not defined yet, define it // (without adding attributes) if (rule->opcode >= CTO_Pass2 && rule->opcode <= CTO_Pass4) { - character = putDots(file, rule->charsdots[0], table); + character = putDots(file, rule->charsdots[0], table, rule->index); // putDots may have moved table, so make sure rule is still valid rule = (TranslationTableRule *)&(*table)->ruleArea[ruleOffset]; } else if (rule->opcode == CTO_CompDots || rule->opcode == CTO_Comp6) { - character = putChar(file, rule->charsdots[0], table, NULL); + character = putChar(file, rule->charsdots[0], table, NULL, rule->index); // putChar may have moved table, so make sure rule is still valid rule = (TranslationTableRule *)&(*table)->ruleArea[ruleOffset]; character->compRule = ruleOffset; return; } else { - character = putChar(file, rule->charsdots[0], table, NULL); + character = putChar(file, rule->charsdots[0], table, NULL, rule->index); // putChar may have moved table, so make sure rule is still valid rule = (TranslationTableRule *)&(*table)->ruleArea[ruleOffset]; // if the new rule is a character definition rule, set the main definition rule of - // this character to it (possibly overwriting previous definition rules) + // this character to it, but don't override existing character definitions rules + // or base rules // adding the attributes to the character has already been done elsewhere if (rule->opcode >= CTO_Space && rule->opcode < CTO_UpLow) { if (character->definitionRule) { TranslationTableRule *prevRule = (TranslationTableRule *)&(*table) ->ruleArea[character->definitionRule]; + char *prevOpcodeName = strdup(_lou_findOpcodeName(prevRule->opcode)); + char *newOpcodeName = strdup(_lou_findOpcodeName(rule->opcode)); _lou_logMessage(LOU_LOG_DEBUG, - "%s:%d: Character already defined (%s). The new definition will " - "take precedence.", - file->fileName, file->lineNumber, - printSource(file, prevRule->sourceFile, prevRule->sourceLine)); - } else if (character->basechar) { - _lou_logMessage(LOU_LOG_DEBUG, - "%s:%d: A base rule already exists for this character (%s). The " - "%s rule will take precedence.", + "%s:%d: Character already defined (%s). The existing %s rule " + "will take precedence over the new %s rule.", file->fileName, file->lineNumber, - printSource(file, character->sourceFile, character->sourceLine), - _lou_findOpcodeName(rule->opcode)); - character->basechar = 0; - character->mode = 0; + printSource(file->sourceFile, prevRule->sourceFile, + prevRule->sourceLine), + prevOpcodeName, newOpcodeName); + free(prevOpcodeName); + free(newOpcodeName); + } else { + character->definitionRule = ruleOffset; } - character->definitionRule = ruleOffset; } } // add the new rule to the list of rules associated with this character // if the new rule is a character definition rule, it is inserted at the end of the - // list - // otherwise it is inserted before the first character definition rule + // list, otherwise it is inserted before the first character definition rule + // in other words, rules are considered in the order in which they are defined in the + // table TranslationTableOffset *otherRule = &character->otherRules; while (*otherRule) { TranslationTableRule *r = (TranslationTableRule *)&(*table)->ruleArea[*otherRule]; @@ -907,7 +903,7 @@ addBackwardRuleWithSingleCell(const FileInfo *file, widechar cell, return; /* too ambiguous */ // get the cell from the table, or if the cell is not defined yet, define it (without // adding attributes) - dots = putDots(file, cell, table); + dots = putDots(file, cell, table, rule->index); // putDots may have moved table, so make sure rule is still valid rule = (TranslationTableRule *)&(*table)->ruleArea[ruleOffset]; if (rule->opcode >= CTO_Space && rule->opcode < CTO_UpLow) @@ -1028,6 +1024,7 @@ addRule(const FileInfo *file, TranslationTableOpcode opcode, CharsString *ruleCh if (ruleOffset) *ruleOffset = offset; r->sourceFile = file->sourceFile; r->sourceLine = file->lineNumber; + r->index = (*table)->ruleCounter++; r->opcode = opcode; r->after = after; r->before = before; @@ -1131,10 +1128,7 @@ addCharacterClass(const FileInfo *file, const widechar *name, int length, for (int i = 0; i < length; i++) { if (!((name[i] >= 'a' && name[i] <= 'z') || (name[i] >= 'A' && name[i] <= 'Z'))) { - // don't abort because in some cases (before/after rules) - // this will work fine, but it will not work in multipass - // expressions - compileWarning(file, + compileError(file, "Invalid attribute name: must be a digit between " "0 and 7 or a word containing only letters"); } @@ -1355,14 +1349,15 @@ parseChars(const FileInfo *file, CharsString *result, CharsString *token) { break; default: compileError(file, "invalid escape sequence '\\%c'", ch); - break; + result->length = lastOutSize; + return 0; } in++; } if (out >= MAXSTRING - 1) { compileError(file, "Token too long"); result->length = MAXSTRING - 1; - return 1; + return 0; } result->chars[out++] = (widechar)ch; continue; @@ -1377,7 +1372,7 @@ parseChars(const FileInfo *file, CharsString *result, CharsString *token) { if (out >= MAXSTRING - 1) { compileError(file, "Token too long"); result->length = lastOutSize; - return 1; + return 0; } if (token->chars[in] < 128 || (token->chars[in] & 0x0040)) { compileWarning(file, "invalid UTF-8. Assuming Latin-1."); @@ -1390,7 +1385,7 @@ parseChars(const FileInfo *file, CharsString *result, CharsString *token) { if (out >= MAXSTRING - 1) { compileError(file, "Token too long"); result->length = lastOutSize; - return 1; + return 0; } if (CHARSIZE == 2 && utf32 > 0xffff) utf32 = 0xffff; result->chars[out++] = (widechar)utf32; @@ -1408,11 +1403,7 @@ _lou_extParseChars(const char *inString, widechar *outString) { for (k = 0; inString[k] && k < MAXSTRING - 1; k++) wideIn.chars[k] = inString[k]; wideIn.chars[k] = 0; wideIn.length = k; - parseChars(NULL, &result, &wideIn); - if (errorCount) { - errorCount = 0; - return 0; - } + if (!parseChars(NULL, &result, &wideIn)) return 0; for (k = 0; k < result.length; k++) outString[k] = result.chars[k]; return result.length; } @@ -2377,13 +2368,15 @@ compileGrouping(FileInfo *file, int noback, int nofor, TranslationTableHeader ** if (table) { TranslationTableOffset ruleOffset; TranslationTableCharacter *charsDotsPtr; - charsDotsPtr = putChar(file, groupChars.chars[0], table, NULL); + charsDotsPtr = + putChar(file, groupChars.chars[0], table, NULL, (*table)->ruleCounter); charsDotsPtr->attributes |= CTC_Math; - charsDotsPtr = putChar(file, groupChars.chars[1], table, NULL); + charsDotsPtr = + putChar(file, groupChars.chars[1], table, NULL, (*table)->ruleCounter); charsDotsPtr->attributes |= CTC_Math; - charsDotsPtr = putDots(file, dotsParsed.chars[0], table); + charsDotsPtr = putDots(file, dotsParsed.chars[0], table, (*table)->ruleCounter); charsDotsPtr->attributes |= CTC_Math; - charsDotsPtr = putDots(file, dotsParsed.chars[1], table); + charsDotsPtr = putDots(file, dotsParsed.chars[1], table, (*table)->ruleCounter); charsDotsPtr->attributes |= CTC_Math; if (!addRule(file, CTO_Grouping, &groupChars, &dotsParsed, 0, 0, &ruleOffset, NULL, noback, nofor, table)) @@ -2665,11 +2658,12 @@ compileCharDef(FileInfo *file, TranslationTableOpcode opcode, TranslationTableCharacter *cell = NULL; int k; if (attributes & (CTC_UpperCase | CTC_LowerCase)) attributes |= CTC_Letter; - character = putChar(file, ruleChars.chars[0], table, NULL); + character = putChar(file, ruleChars.chars[0], table, NULL, (*table)->ruleCounter); character->attributes |= attributes; for (k = ruleDots.length - 1; k >= 0; k -= 1) { cell = getDots(ruleDots.chars[k], *table); - if (!cell) cell = putDots(file, ruleDots.chars[k], table); + if (!cell) + cell = putDots(file, ruleDots.chars[k], table, (*table)->ruleCounter); } if (ruleDots.length == 1) cell->attributes |= attributes; } @@ -3414,8 +3408,7 @@ compileRule(FileInfo *file, TranslationTableHeader **table, s[k++] = '\0'; for (i = 0; i < MAX_EMPH_CLASSES && (*table)->emphClassNames[i]; i++) if (strcmp(s, (*table)->emphClassNames[i]) == 0) { - _lou_logMessage(LOU_LOG_WARN, "Duplicate emphasis class: %s", s); - warningCount++; + _lou_logMessage(LOU_LOG_DEBUG, "Duplicate emphasis class: %s", s); free(s); return 1; } @@ -4035,9 +4028,9 @@ compileRule(FileInfo *file, TranslationTableHeader **table, } } for (int k = 0; k < ruleChars.length; k++) - putChar(file, ruleChars.chars[k], table, NULL); + putChar(file, ruleChars.chars[k], table, NULL, (*table)->ruleCounter); for (int k = 0; k < ruleDots.length; k++) - putChar(file, ruleDots.chars[k], table, NULL); + putChar(file, ruleDots.chars[k], table, NULL, (*table)->ruleCounter); return addRule(file, opcode, &ruleChars, &ruleDots, after, before, NULL, NULL, noback, nofor, table); case CTO_Correct: @@ -4180,8 +4173,8 @@ compileRule(FileInfo *file, TranslationTableHeader **table, for (int i = 0; i < characters.length; i++) { // get the character from the table, or if it is not defined yet, // define it - TranslationTableCharacter *character = - putChar(file, characters.chars[i], table, NULL); + TranslationTableCharacter *character = putChar( + file, characters.chars[i], table, NULL, (*table)->ruleCounter); // set the attribute character->attributes |= attribute; // also set the attribute on the associated dots (if any) @@ -4199,6 +4192,7 @@ compileRule(FileInfo *file, TranslationTableHeader **table, } } } + (*table)->ruleCounter++; return 1; } @@ -4254,26 +4248,15 @@ compileRule(FileInfo *file, TranslationTableHeader **table, return 0; } TranslationTableOffset characterOffset; - TranslationTableCharacter *character = - putChar(file, token.chars[0], table, &characterOffset); + TranslationTableCharacter *character = putChar( + file, token.chars[0], table, &characterOffset, (*table)->ruleCounter); if (!getRuleCharsText(file, &token)) return 0; if (token.length != 1) { compileError(file, "Exactly one base character is required."); return 0; } - if (character->definitionRule) { - TranslationTableRule *prevRule = - (TranslationTableRule *)&(*table) - ->ruleArea[character->definitionRule]; - _lou_logMessage(LOU_LOG_DEBUG, - "%s:%d: Character already defined (%s). The base rule will take " - "precedence.", - file->fileName, file->lineNumber, - printSource(file, prevRule->sourceFile, prevRule->sourceLine)); - character->definitionRule = 0; - } TranslationTableOffset basechar; - putChar(file, token.chars[0], table, &basechar); + putChar(file, token.chars[0], table, &basechar, (*table)->ruleCounter); // putChar may have moved table, so make sure character is still valid character = (TranslationTableCharacter *)&(*table)->ruleArea[characterOffset]; if (character->basechar) { @@ -4284,18 +4267,22 @@ compileRule(FileInfo *file, TranslationTableHeader **table, } else { _lou_logMessage(LOU_LOG_DEBUG, "%s:%d: A different base rule already exists for this " - "character (%s). The new rule will take precedence.", + "character (%s). The existing rule will take precedence " + "over the new one.", file->fileName, file->lineNumber, - printSource( - file, character->sourceFile, character->sourceLine)); + printSource(file->sourceFile, character->sourceFile, + character->sourceLine)); } + } else { + character->basechar = basechar; + character->mode = mode->attribute; + character->sourceFile = file->sourceFile; + character->sourceLine = file->lineNumber; + character->ruleIndex = (*table)->ruleCounter; + /* some other processing is done at the end of the compilation, in + * finalizeTable() */ } - character->basechar = basechar; - character->mode = mode->attribute; - character->sourceFile = file->sourceFile; - character->sourceLine = file->lineNumber; - /* some other processing is done at the end of the compilation, in - * finalizeTable() */ + (*table)->ruleCounter++; return 1; case CTO_EmpMatchBefore: before |= CTC_EmpMatch; @@ -4369,6 +4356,122 @@ lou_readCharFromFile(const char *fileName, int *mode) { return ch; } +static TranslationTableCharacter * +finalizeCharacter(TranslationTableHeader *table, TranslationTableOffset characterOffset, + int detect_loop) { + TranslationTableCharacter *character = + (TranslationTableCharacter *)&table->ruleArea[characterOffset]; + if (character->basechar) { + TranslationTableOffset basecharOffset = 0; + TranslationTableCharacter *basechar = character; + TranslationTableCharacterAttributes mode = 0; + while (basechar->basechar) { + if (basechar->basechar == characterOffset || detect_loop++ > MAX_MODES) { + _lou_logMessage(LOU_LOG_ERROR, + "%s: error: Character can not be (indirectly) based on " + "itself.", + printSource(NULL, character->sourceFile, character->sourceLine)); + errorCount++; + return NULL; + } + // inherit basechar mode + mode |= basechar->mode; + // compute basechar recursively + basecharOffset = basechar->basechar; + basechar = finalizeCharacter(table, basecharOffset, detect_loop); + if (character->mode & (basechar->attributes | basechar->mode)) { + char *attributeName = NULL; + const CharacterClass *class = table->characterClasses; + while (class) { + if (class->attribute == character->mode) { + attributeName = + strdup(_lou_showString(class->name, class->length, 0)); + break; + } + class = class->next; + } + _lou_logMessage(LOU_LOG_ERROR, + "%s: error: Base character %s can not have the %s " + "attribute.", + printSource(NULL, character->sourceFile, character->sourceLine), + _lou_showString(&basechar->value, 1, 0), + attributeName != NULL ? attributeName : "?"); + errorCount++; + free(attributeName); + return NULL; + } + } + // unset character definition rule or base rule (whichever was declared + // last) if the dot patterns are not compatible, meaning if the real parts + // (1-8) of the dot patterns do not match + TranslationTableRule *basecharDefRule = + (TranslationTableRule *)&table->ruleArea[basechar->definitionRule]; + if (character->definitionRule) { + TranslationTableRule *defRule = + (TranslationTableRule *)&table->ruleArea[character->definitionRule]; + if (defRule->dotslen != basecharDefRule->dotslen || + memcmp(&defRule->charsdots[defRule->charslen], + &basecharDefRule->charsdots[basecharDefRule->charslen], + defRule->dotslen * CHARSIZE)) { + char *defOpcodeName = strdup(_lou_findOpcodeName(defRule->opcode)); + if (defRule->index < character->ruleIndex) { + // character definition rule was defined before base rule; ignore base + // rule + _lou_logMessage(LOU_LOG_DEBUG, + "%s:%d: Character already defined (%s). The existing %s rule " + "will take precedence over the new base rule.", + character->sourceFile, character->sourceLine, + printSource(character->sourceFile, defRule->sourceFile, + defRule->sourceLine), + defOpcodeName); + free(defOpcodeName); + character->basechar = 0; + character->mode = 0; + character->sourceFile = defRule->sourceFile; + character->sourceLine = defRule->sourceLine; + character->ruleIndex = defRule->index; + character->finalized = 1; + return character; + } else { + _lou_logMessage(LOU_LOG_DEBUG, + "%s:%d: A base rule already exists for this character (%s). " + "The " + "existing base rule will take precedence over the new %s " + "rule.", + defRule->sourceFile, defRule->sourceLine, + printSource(defRule->sourceFile, character->sourceFile, + character->sourceLine), + defOpcodeName); + free(defOpcodeName); + character->definitionRule = 0; + } + } + } + character->mode = mode; + character->basechar = basecharOffset; + // add mode to attributes + character->attributes |= character->mode; + if (character->attributes & (CTC_UpperCase | CTC_LowerCase)) + character->attributes |= CTC_Letter; + // also set the new attributes on the associated dots of the base + // character + if (basecharDefRule->dotslen == 1) { + TranslationTableCharacter *dots = + getDots(basecharDefRule->charsdots[basecharDefRule->charslen], table); + if (dots) { + dots->attributes |= character->mode; + if (dots->attributes & (CTC_UpperCase | CTC_LowerCase)) + dots->attributes |= CTC_Letter; + } + } + // store all characters that are based on a base character in list + if (basechar->linked) character->linked = basechar->linked; + basechar->linked = characterOffset; + } + character->finalized = 1; + return character; +} + static int finalizeTable(TranslationTableHeader *table) { if (table->finalized) return 1; @@ -4377,76 +4480,8 @@ finalizeTable(TranslationTableHeader *table) { TranslationTableOffset characterOffset = table->characters[i]; while (characterOffset) { TranslationTableCharacter *character = - (TranslationTableCharacter *)&table->ruleArea[characterOffset]; - if (character->basechar) { - TranslationTableOffset basecharOffset = 0; - TranslationTableCharacter *basechar = character; - TranslationTableCharacterAttributes mode = 0; - int detect_loop = 0; - while (basechar->basechar) { - if (basechar->basechar == characterOffset || - detect_loop++ > MAX_MODES) { - _lou_logMessage(LOU_LOG_ERROR, - "%s: error: Character can not be (indirectly) based on " - "itself.", - printSource(NULL, character->sourceFile, - character->sourceLine)); - errorCount++; - return 0; - } - // inherit basechar mode - mode |= basechar->mode; - // compute basechar recursively - basecharOffset = basechar->basechar; - basechar = - (TranslationTableCharacter *)&table->ruleArea[basecharOffset]; - if (character->mode & (basechar->attributes | basechar->mode)) { - char *attributeName = NULL; - const CharacterClass *class = table->characterClasses; - while (class) { - if (class->attribute == character->mode) { - attributeName = strdup( - _lou_showString(class->name, class->length, 0)); - break; - } - class = class->next; - } - _lou_logMessage(LOU_LOG_ERROR, - "%s: error: Base character %s can not have the %s " - "attribute.", - printSource(NULL, character->sourceFile, - character->sourceLine), - _lou_showString(&basechar->value, 1, 0), - attributeName != NULL ? attributeName : "?"); - errorCount++; - free(attributeName); - return 0; - } - } - character->mode = mode; - character->basechar = basecharOffset; - // add mode to attributes - character->attributes |= character->mode; - if (character->attributes & (CTC_UpperCase | CTC_LowerCase)) - character->attributes |= CTC_Letter; - // also set the new attributes on the associated dots of the base - // character - TranslationTableRule *defRule = - (TranslationTableRule *)&table - ->ruleArea[basechar->definitionRule]; - if (defRule->dotslen == 1) { - TranslationTableCharacter *dots = - getDots(defRule->charsdots[defRule->charslen], table); - if (dots) { - dots->attributes |= character->mode; - if (dots->attributes & (CTC_UpperCase | CTC_LowerCase)) - dots->attributes |= CTC_Letter; - } - } - // store all characters that are based on a base character in list - if (basechar->linked) character->linked = basechar->linked; - basechar->linked = characterOffset; - } + finalizeCharacter(table, characterOffset, 0); + if (!character) return 0; characterOffset = character->next; } } @@ -4471,6 +4506,48 @@ finalizeTable(TranslationTableHeader *table) { characterOffset = character->next; } } + // Rearrange rules in `forRules' so that when iterating over candidate rules in + // for_selectRule(), both case-sensitive and case-insensitive rules are contained + // within the same ordered list. We do the rearrangement by iterating over all + // case-sensitive rules and if needed move them to another bucket. This may slow down + // the compilation of tables with a lot of context rules, but the good news is that + // translation speed is not affected. + for (unsigned long int i = 0; i < HASHNUM; i++) { + TranslationTableOffset *p = &table->forRules[i]; + while (*p) { + TranslationTableRule *rule = (TranslationTableRule *)&table->ruleArea[*p]; + // For now only move the rules that we know are case-sensitive, namely + // `context' rules. (Note that there may be other case-sensitive rules that + // we're currently not aware of.) We don't move case insensitive rules because + // the user can/should define them using all lowercases. + if (rule->opcode == CTO_Context) { + unsigned long int hash = _lou_stringHash(&rule->charsdots[0], 1, table); + // no need to do anything if the first two characters are not uppercase + // letters + if (hash != i) { + // compute new position + TranslationTableOffset *insert_at = &table->forRules[hash]; + while (*insert_at) { + TranslationTableRule *r = + (TranslationTableRule *)&table->ruleArea[*insert_at]; + if (rule->charslen > r->charslen) + break; + else if (rule->charslen == r->charslen && r->opcode == CTO_Always) + break; + insert_at = &r->charsnext; + } + // remove rule from current list and insert it at the correct position + // in the new list + TranslationTableOffset next = rule->charsnext; + rule->charsnext = *insert_at; + *insert_at = *p; + *p = next; + continue; + } + } + p = &rule->charsnext; + } + } table->finalized = 1; return 1; } @@ -4488,7 +4565,7 @@ compileString(const char *inString, TranslationTableHeader **table, file.lineNumber = 1; file.status = 0; file.linepos = 0; - for (k = 0; inString[k]; k++) file.line[k] = inString[k]; + for (k = 0; k < MAXSTRING - 1 && inString[k]; k++) file.line[k] = inString[k]; file.line[k] = 0; file.linelen = k; if (table && *table && (*table)->finalized) { @@ -4934,7 +5011,8 @@ compileTable(const char *tableList, const char *displayTableList, /* Clean up after compiling files */ cleanup: free_tablefiles(tableFiles); - if (warningCount) _lou_logMessage(LOU_LOG_WARN, "%d warnings issued", warningCount); + if (warningCount) + _lou_logMessage(LOU_LOG_WARN, "%s: %d warnings issued", tableList, warningCount); if (!errorCount) { if (translationTable) setDefaults(*translationTable); return 1; @@ -4987,7 +5065,7 @@ _lou_getTable(const char *tableList, const char *displayTableList, const TranslationTableHeader **translationTable, const DisplayTableHeader **displayTable) { TranslationTableHeader *newTable; - DisplayTableHeader *newDisplayTable; + DisplayTableHeader *newDisplayTable = NULL; getTable(tableList, displayTableList, &newTable, &newDisplayTable); if (newTable) if (!finalizeTable(newTable)) newTable = NULL; diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.lo b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.lo deleted file mode 100644 index 7563e938d..000000000 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.lo +++ /dev/null @@ -1,12 +0,0 @@ -# compileTranslationTable.lo - a libtool object file -# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-5 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/compileTranslationTable.o' - -# Name of the non-PIC object -non_pic_object='compileTranslationTable.o' - diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.o b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/compileTranslationTable.o deleted file mode 100644 index f2479929753250847fe2f141fed13ad299655bc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437088 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⩔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
A1Vd?!2 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�E zHjWxSL^O^37UPT?BLd}UuR${tx#w<7pQbVSF~~3ub0b7p&mGV6@_CZ5;|0==gAv$q zVxYoulW&~R9TFz@H>O0`?)xwk4WJ3MmD7IHT#p?Sl*gQ3VY>0rW8QKBttKpsT@x-Y z&1fynn*bFS88!%!X)NVDhSC3KzyhB-+T1R?5 z`3&}qb~AixSre9oWWjxKL!gK>G5gHXHi$tJkV|e8d9Rg~8B;|WVa?&?laCEym%C|5 zBNmm;qv0DgpkH`Gr1g*@mXH0pNrHV2+8xWyyF`Q1VI*n|<$T=hw(y+M;AJ2@3XRt@9>Z2( zCtiO#uO}8L`W(_R+zZz83~ZsXnTe%g4B{{`nLG_9W)bHlJg+@mRO1I&2J)klv8ed~ zM0=9o+PVPaML?mY<_vNeXL7lE=Phsv8?76SZyxI}phgT_x;zYYV9gs2KNjW;s!YxC zEaLtm>RJCyq-KV>k~9eGVN3>4wgJ5ES2!8YJs&`ij0>q^56*@5Ldnc%m@?WjHGo9{ zlpFyG_i74n6;MXY04AmzRtPPR6@so-A|@^aU0R2VB8LL3&L}`*MN-UB@C{7kqdQ?w zK2lZ)1%VZU@u~s6SP>)KYwS8giD5;sbO3G0;Ad=6X=WSra_d5Vjj8TQ|MURHJA6Me zX0ExBr(Mafsn7Y9=zOEY0-@uPmqBmF-(D!_W?$-wTw2^jbB~@GgVy%vwb3ZuTFZjL zB4OVMZr)95@oN@2}5LH9ZI9#-m$9*TG&co2EN*gj2fgN*m;9R ztbs~VJvK)~A_)s><5BW5$&bTAHYbT+i`_F!Oa1XtSz5aoL-I-0KcppAJlEqf|1E!< zq!LS812v3242he0n(^$zus6DK9Frj_k(hO89>>4{P&?zUW^O?VI8^YVpC7(c?%Nk& z<0+;IFKEu28aEInq zW0of;$Lq$HPD21X2ye74WKh6scjW%-0UN{HLK=D-^EiUU0s*1*WlRxI6l*Lwo04qm z5fkl+vfLsvu(qN7b_09+UKkRpiaf_Lq8cyEp9P{dB%;FJKPDHn4NRjeMl(IMXdoNk zpgAU{I~U~e21a!>1FZ)n<`$AcZ*Uw7j{)PhCr_jO6H5$hY%%=V7A~|LlLHpIMk5G@ zHe!tX%l{j}41-C9U<&?*Um}rJ^gULUb_y#$p4? zqq%9cj)T}TAvS)C7zMOWZS;R=dlT@us`LJTX0GmdY#G^j2b&-;iwRhkXl^?{?nvo->Z$&HJRY(HM<3aFazIRJDnR zIC`Ndu)hiaLX3aFy0&7!CNwLU)-W`bP}@fug8imw+|twmgG=$GncXQG6v1ULwUD9j zk(lUJ+~FpT#QId)we?O-bCDs58}Y)s!{CbSQ5;_abYeMNRKVxl9ge`5H&MqFo)9!Z z`(?6^gfn?)jb@?1UCIxT>}&Suy!x-&_r||x(5E%QQ&1d1k{wWAg+9pMYZh0Ng!C(b z-{ZmNq`+5?_(pa_aKiZVQ%0=`vzJrVz1A<9B}E=!YQ^9qvK#C*Eu_uGu-t$V4L&61 z%Ld19fbJ6jBPLtIQ$-Nh6fL-%0rb?%!{JzHJs>7R6MrUpF%^PcxLfTfbk2P}oe8A8 zC5y-K9Z_J0I8VMaE@2c%0n1T(5&RqT2=s;;^JONhn73@^>@j-stckej7p51Qp7;?JJO8Uc9DWK<6bqJXI4T@{iEQ1d1akCbtjmrS2@vsC&~+?A z73@6}T@u)}r~My_F0zO4VEn2mTs(Y2S*@c^P;1nF$6&tJ>za(=SkbvXx={5h1I*3n zxxoBF*Vp_2Xvz{yG$M_>%@#j;AxUu04T$vk@w|+sWYQ?rf3MV{UxR^;FV?{JqoG!wifoCZ7>|)NW$yVYP?>8Z!0ZbL8%QM+a&5BEmhr1B>CH6oO zQ(lz>43h`EMSMQkAZr{Z`Vn2ILaH3Rw=)`Vvr?pQcC zz)`~&ru^LCu^So*+;D^H85ev*E9JrK@9N7k!w(MPCCWche1i!t@N_nF-Xv2Za%43L z!K!?%(oM8wQ1GgAmxNR2hr>S05`9xR9lcdgnB9!#mmEb|{uSj!<>lGnXeLvqYOqJk zv!h;0^A3M6efTSDXme*Z-WEQCpSl(W<1hGdO)@m?hQWouCP>IsB46I?dh;PQpcX zIBdl|jsK%jql;@lyy_?5q*%Y-=ZD$hghXMJ@^!Ib>6L%tuw}} zRcDF3vW6%fJ3g#DpPMzxdKeduT4^}zg_BMM-G``_! zCS?2Mx@WKA#bLp3Ca1M}XcR$5i%tKYPSf|#w-Un4jmbR=NrEqv-XN-I&{)S+1VGlD z$?Au1td?P&^_mHq*2N~%xKmaFq@j2;L}9=77u>BMZ%jg2RIuuULnhm3HipyvsOoi1 zGzjl)+CSDpgu?(47RcomOCInL2;aI?pW!GtF?=-+!zyX$&xFG!0Aa~5AhJ7b*>Uy% zr>(C4p!^`62!mHzWh(A6LePnvqr;t3pu-oiIwuo8%J#F?0OnHyY}>HKhX~1?q7i%s zpFujnU$FEuEBMD23>7YWF9L`~4iVoULg=)Sz_hbSZuUw#?ge%8&?Wdr0~Yqo7EEqA(GLW>5y(?QcL^K5~W z?>9R$jqWi8)Wlqir-~C-C|M-H&&}Yc&n2Alhj%Jpz``pd zVLH%`+~)!-xu3}ErTfcSoq)O02g0}JP7lYfp_bfHvHBZWHm6q(m{zPn=bZ#ur2j&$ z)4{vtMvOBm%V0>)RAYdc#9EQybqwq*$FjFzg=0nKBryK2*l#G74i1zfQ;G4x1>|ZV ziwa9%nh4giwtl|iTfxnlLui;FbHP}Xm2CBG?C&t*CU z79d~mweDy|jGkw!Nz2sgLS3g04TR%4V0d7G$_@TzE zL=wdQ0Y+m=@UPeF{cuWCj6%G5KMzIY3i3bXu}%R2>%qY%GGdkk!QGH89V{-xS!~&b zYS{9qT^FiZ%VVvYPow(u`szVmS5NBNd1Jkls_#dw^U9Urmk#bUdW;P>Ycd08Y=)DA z?5|kMq?rrC%@>AK?hiM!uz4}sW^+?c68Bk0k6%C!Ff1>t*AHkPZ7vNcG=mDPrKE$e z4MG1))XRpbmzSuQ4Y6KcoF1zLhc68FHdZTmoZ*^6l2U{~_to6TP#jZpnf;Bj70>;q z5{9W^x7e5<59-ZF2CE^QLf|;~*AxNa;DH-)cerk+z6Z$rsm8=}%ZPIutL|S?MAzJ) z=l1%G&xLcGoZP9Bc#|6BF<^~GhgDgq8ip>2A7(T4V`R^?q(b~ExYZgr!IUEEiI-=% z7g#;Y1oz(91Z2D<2Wo#Ob3>ma}3 zBNms8C?{xyyx|TTx`hbH%5civCLjw5*bKcXL8l^-+3B2|7Etsl(DOqY?}py91IY&O6BH02Sc!RX%?UJ^XQ z08|H$D6A04{MV`Y632T-HTx~;E(z?s;9KxmH5i=&HnMz^SLV4_zBKR^r`GAxW2It$ zc>`9V9CNYQw<(qmK40Es)lIsjSNm4$law>(j1^!4t`ImI{OpnNOKZaIH?b*kY!~>9D=V|5p+cmf)q+1uLyR;A*A9|1l!_}(*$XbL#hS2 zIu4mC$mMYe3q=*dwQ&gAg4D+d!um^asvuk9kaN;mb7WqJn)oi?$9Fk`@A7?omm|u6 zaqRj%@4I|%FyBSf(75knlU@1J(CcHMm3xkq{P%8bid!3soRnYe&%zZydM7e4 zxWn|s2^^+AN%eQVrBt6Wr;-gB z)pFi13dnt~@OMo>9xN|pHOj}KWrSQTvi7_ce4xDGglzCb;8PGoysBY#Q_YPg2;Ljv zXh%;@G6e|ZNY&Cxb^7nj(3RXn;!Z9R|LXLSW4XRu^|7X0BQc&JxaG!lQ&aE^t}LT} zQ~H?varxfEF_}$A#1jLJ3wdI1@Zcfk|9rtH>g+MS8WucG@(TXL^@rrkSto`0802>* z{aXM1oyem9`Smf2ZeD@wAr}1^-f|ZGs0Jf*PMJ+V?5lR;>}|SUK}vChuWrH(Mi-KF zL0BrooF&jQ4^d-nt{BI>jd7LA4E};I1hvqIeF}!xWP5Ej-!dDo#Mf8*UqTb5ga3S& z-Yj-@RB#|59J!kQ{`b2gl}F+IP*b)FNw4LtUnSpqcl6e8<8R$sdh2Sv9z6N3Mo#BG z3>vwcj|+>-r^De=WRoe+MLaB@^4yu2@_f+R5gY-zpYr_EI|fX7?sQrsGtF^&*_`K> zZpxFHN^lu}oJH%T2$#=!ej4lTtl$GAB2@=Jdsj?g@1-ez(sNw>k9hX$-Z}I3<%1MU z2R}A!o~vDn@xkZGt(p>i7ru$)$aL3_7sBn?W`I(=qO0aAyS%5p$>x{vpml z{B~W$K;Jn51AT^K5+aH0AICudL>dZFif`aGSCEsu;BbwpT0s1A2cfAS6i78xy!x!^ zY+eXHh1wV&JYVPo`wXCz`#7L6gq(h_;q2gwfDV-%VVM|sv-2slCQp|Y1^MWJBTwPPe_%3U z#l89Ds8w&$?xTi#>@`29eIwjVSoJ}39&J)vW0P9vv%5(xU6RADCcbR-K3P_8WQF2$ zTI#hf-A{RzhQf(t{VbsGuTcH>%is1EHP%6U^8Vh)?jLMP{l?sS5tgRRgYji&XVIID~0t(2r*h zMZVX>qVGlIDflo!4!L|;i+cU&O}nah9)L)tcb_#xSyfFK?> zP>TWnH2z;QDr<)byQrqz*X(T)7gW{l1FMon z5sQ{v6xuEqULoZv!EGq;GlO4~xsEow#d|Ey@$en_jdkR}KIprqIQ#gr1d@We9j1`7RdJLW2>AYU|I<> zyfLN$h=D?qnf-2Sk6ecX+1!4ZUqOFcC*?a$n(db|^Txau&if_nng1!&6NP$pmhCy@ z0c!Q*&J3)Gucw=;FiWo9`Qhk;hU4^ha~4k56v!nl=sU-I*;SZno0hOdZQuA6`kwD@ zZ}CsHrGdbhHqoR{DsDcu+omvgRXF7`q7`iF$YhsVuB}xoPEN0FvVFt5s})xcEjI>V zoDOP*byTp2m6ti;8CnMsb16^{?ahTUNw7tXXsus89lnZ$G&aC3&IW%Di$aOTP-61J zaPdXr*LF8$<0)&l7X~{TT@DvxsO*k=EO5ttO$osh35x*`w&7_SI*b!$|)U2 z(DNDCaaV_@T!Awpt^Ngb%(SRj%EsOUb+wp|3PtoZUaMWW`$brJjq!o}Xq)%2Rc{OK zMXrwiMSjE8wql!poLoI-5fgaKGVEE;a;_E$e2WMV1s_n3vsQva0s@ziaWdf>;i;An znd_rIaxG``Rl%~$diy3H)4s_V)wg5(3L0p)q)|ajx?qD`8;+hHj!`4N$iL<@M1OahfxEYXu04Zj1%3ynUqW4Mb;A)T67(Net4Un?pYdA9(X>sA?<#{U@0da1EOttOaaG z!#_K@hgY>tOKYg3~~`loBHyvp&qe5Ds4_lwaZgWL|sL-m$2)Bm^jp25suTohAUzv&RC-@JW9%U3z(1l@wvy*Q(C?v zJDU8I{R})kd6AGk_?3<_m0;8?aUxkGN>mI$V)u=1*CLDC0gH{YIudRT5323Qio1@b z*-ZHV1ea$VPO{qlkcC1sY^%`-3?sEq8`ktP_KDPkvDw^fL^<_Pxogw#U>1Z8aMofV z)2RA17Hy`rhhw&fK2;GtP!B5AtW1|;0@(EJ)V2ro=v551mkDdgj0{~ z$1pQ}%;48c*IUA1ZY;+s*zK8=1i`GD@Jy|VzSlR14O{S(j6p>(k#Jqmp_wH+*~SLf z9ttOGE4OyTqMcb@Jsh5%rm?lz*NiB&O$--y{4;JPM2TE#FN^XOP*wrrvq*)}MD**q zhqOcz&S4gEmLgHNT1n*$3Vg9;ZC$(|T*D%}%6}s>$E6<5A${4ua8}R?gTtz4X);Z< z*h5;)KnaB^&%t~X@9H~zRD3~7t=2S83BJp~6CN4Mu3iaK1(K^)+HObHb@zQ*;8ix7 zf{hxciP*wEhUQ3k7JHEZoJH~yHD_#a#8r3EhLgkbFc<1UyagwTw_sHEh8;bYU64H- ztVnb8hBiFsnDc3~;jJJ!CFmDh1#FqrC@UXD-((ke<9{^L$FbBtrYZaE7MGPgT1&0XztPenYyCv>D%Q*2SB`sloqPm;P|WVTMhQaQ;lg z5Ub=g8EhL2#m2vSMR~Y@`u9b5`X`J9Xa*23j zBxx`>fFAew?0Lo=438eJ$OaExhaPn*iSY-phv`f}meh)%e*x8;^9x?S%Wv2w+d#5n z+jo7ckMcPW*aV0uWXRBa)1Wr9vz5|X$bfY09oTmbO4!NcBzAG)ixltvx^$i%*ihfDz`gc8k?9cj6om{Y=G((*`v>qL z^r1~t(wt&~hh*dV%O2Oa5%=oZRW`Q6e}IoiIk^ZQ*X9bB;3NG6!A*fnH~j-1g>;kD zR%qGqw!LisvuehteG7R=1|xl+N^`}dQ;8wIhLORjEr{jdWJqsN=z!_f_`LPa&}uE& zb@MdsW`D(cN^%s{YTO{(YA%?c?&Erkhdu5<+Ikd$^i8R9kfu6Q2p3bzMn%!}fRiQM z5Xp@pozH4HkW(_>{qP?ZpGW#w?!K^cK80l{#%WuX0G}2h8f}qKsK$j8zi$PlvE2*O zpIioiiP!67={f7WZ8|0~m&M>=TbjbEEBK-TEXN<#`iqok@GznkI;K@F+8H1{h4>LE zyQcVphdOAtE=?mc>(aFpqKv#q2H__m6xv=Y-Tgd2OF(FB1S5po)0Evv2Jb{He0G&I z(3)=TfTG}z;E@K*u z93_#X`@+NuW94BB8?i@gIJ2L#0iJg_JS*7AvYoWbuz+I$EaO!B>+XWqW5aVB!?BIw zxGTc5wuEEJP9%LLm(882Nf`5&abzrRuJVKSTN6d7})sii~?=E&w2l958TM-w*f3LseLDPn(jq*#c(5LwP) zznRp?IjC#A5ygsUJ6oW!CY9OB1bYrEdNB1Fwe%3$7K;4>XGVlLgHjdBK~=K*YAooD z;Tfo+B-r=>8!_K;W>=5iNP2!qzLC@e6bf16(#Yq~H8Sk!;MjHxipi@R2^-=Yjzj^_ zISh(U_)6?2JvsRDq(-4UWIdu_wh8w%o83g!>^R_Rqg6H>PlX-?cUh#^#?`hzUgKm~ z4#&r}o~y8b1sN%hBLsGbI~frl4nsmdk|T&8vY*M#b+f!G&PQc#upvE{B|Z-O7)D3Q z#oK{eiO%ndGW4VKd(18`;OwHGlNgevJf4?EFc@uVZHy5?h6zw6Z*%D6Dg z#=mJswAYQ;x|iFjhKuWreqYh3VhxoXoDSA9vC@T|;c&h?;bK@8<4+58(h2*AEynW3@CrwyXc z;6b36n+$6@t`Yn`F17ro;WNVVA2AfhQzCQvfc~+laf!a!t3*od)f3KFAfV2&#}G2^N(ICmY`@{PT#3ZIf(S!o3U1A~wG|MUEW16XghHK&N1>>eTT^y0`U#U~i+_ zeN6(K;O`0j9+W=L zDUCk^PmyU5T7k_z@VJP{88Q}@=J9;pw!5xo?=;H!L%@huua*UL`;g`lh^qc@Ej}9)L-z*c)!Ri0yWRu@aJmtF&EuM_S=puJ>(_6fugRipC>x5NNj)U4aW73MK zl6qE@(W40&Jv69{%Ajy0isF%R`Q%6k$v{j#_YW?g71^CQF1cOh0t!ABm5(wI2Tn8) z|K&weGl*eINc$)vJ}#WV9xT<4RhVPn7$AK|61lHTBK1U`(m309E=zMR=%Q6Ci1)WF zyDy}DV=jWfQ6QeVFFr-viRa>fYqfgV#bNbLymi3s-C7-4xmg%p2_493sKW*ZgwV3F&_^h=R_e}u`Bh9}GP_ah>p%wsu#kZ3vJhlrc=M73_? z;yCzPXx#HOksa;MA;IC2ryM(oBsi+x%L5JY^9ILozQeFgZ-POJA&x;F0jYFgAZ#;> zc4PKuEePw`;)j;637z9w+h_{T92-1btzn#`D0prRdzQ1a%<${1IcJUD=AAtj1Hew& zqxb#Zp#?P=D|g<48m|zRIj zh$9#27B-eawui#$dG79_I&)+Qh>Ed>;}8(%RI)y(k%oalLV~AJvXZmiau-l)mnWxM z`B~%Y;m?IL^W1G0a!weIz0g*A;WaM5W@E@)V4<~xVZGF?Qej|qxFvI=*$+|fGr0-0 zh{x^8$FXNDiYv8Y1iS5WcT$)YH*U%M46_fIl+o#Pi=8%H#q!fj%u87@aoI%)#Fy*Tir`< zExk0cSeqNqSZ!tFnXJy{Zrbym4jw;|KKsid49oL>jA0qv7Jl@9YgiO~8rrZ#_VL*h zb>lCF=*CNfccc86?!mk9{{P!P@{$X5`I ze9fIFrR`TPi{WD68GKW7^I2Q_7@KlYXUyYFswXkC)QpK;_|WR?T(xuRs3Ty}QirM1 zf!b%n5o9-MD(@oyhY5u=>WCoIYwxig`y;;+E|LU2RCK(F6(}HA#Tf(7fcEI|Z0Ycs~^rc&ft3@aj~p$y`kHIF5NPmokZR8tpU@?(5vD zr`7>=DlswKNt{gm*V*UIG%w?48JGngCuDRm`;_?cVTBfnGlh+-l?e^BquTK)3L(LM9J;K3ziS+LJcmED$x_ySCE~U=2&xo>LP}Yt-^s@G5LQnZ{@MeUe@D39q#=yl7YWmYaCG!$cyp zKl>9m^JlEDRFD+8&XEO;&g-$$aiB9RM2;E+%Q>A~YK(Abbexe}`UtX@pi*oxdQ`Ad zsXO~@b#mH8Vb$H?Ie!~YSf?Pulm!+(UMQCo9V&FA7TX$>-^}=14iy=KM<9;c^}wL& z+)fTi2m6??`b88RO7w0#D)Zm0Uq=CedJ6!YTOI%)Fs;e5Hs>oe7UTzy09>@%5~i<{ zJMi8URrq?WLQZNS;&7&~kWj8Fph5*bG&D+rD^73{A%{9wAuFxp@cRF|r*NzD6ehk&pbH5qyy9ze3sabJ^Ib;c>*Dcx@EabUof8Cy6C$g*#8RsE&{XOU#B@Ko^Jf$T}*PN ztGJ$^osLIKu}_3dn_^0#&u`zHm7WJM(7qU#uu`w3)dMsZa z^?LJODsPlN{uMgi)>y$VHz^}HNxp8fd817->FAk)ssZ|rb=1}=Id#?);jm1tHlBP9 zUCxpLCDWu+=`fKr_w@T!W$?&}U?oPBQ(l=w);)f}UaMd~J#@>F{DDPygZw*|$#ulX z9hj-?bmO8zk&ED!u5|ACqE}VL(SF&nHq%(9jqKyG9>aHp<8wO7ZkKQ5G#XKiRx9^7 z>DJm|Kn&4+Cm5oCaYJMsXY~9SDe^CKHyoC5)4mBL_S3}-=F0Jm-N-F)X>gTKgkyfm zc#_7-cv^JjaS?zCeN%WEEbv5l*5&qG%UYzJWbs`^->hFPwB?jTE*PM7``jWpTX_-) zm#oZ45!jup%2eOZ$IpJ)8bNY{p5dq)4$9iSM%M`_dI?$0EVkW5I-E%Lj{JsMpH~Rb zq=TQGKrHWxt-4HLQmJeTc8;Ic&zVAs{hr4?D;wuYTe$G`u-CXeV6A3g_huGKLCA_D zrKD_NhFM1%mYpcA@shHZ<;S1I%7Aet@dy{MO{;fo`?k(mZ+DOn=h2|l#;BWFa+v9r%R6W zw(<=BZjQ);o~-r0+8%d+U~3MQMOw(`M4VExn{)Rp^~8C3*UbWttn!LJvNVMT&RIbIBx zms9BrHV{_C(hu#Zy8Wh&9~-HmdPF7AfJR(1FIGgN7ku4HeCY%@{ubLj!>dcL(`EfD zai;f~DI@|GGPe{h3GhBqY^x$y>{ye6zV6;8W8>nmqK)hV4LG?wq=JM&my{@I2pQx! zW0w{xXCVUlEY^O7PnrAZzs>R=9Y#W|1t|6p7=)LK9b*uFSvamixHB4rUz~t|cNvLa zKfxf}W+i@h0vz|m24Sui^@>(21}^j>dfh zMgzU}W}{((@Hd!Fjw87y$-O1#=t*M2-Z`?=3SEoK?TB9aT0hf}>%><{E3@8yV*%XS zSKg@s*Tm~9QOaSk<5^-LQZ3BO_Gs0PYh#8_vbyiyq~X6F(d1Hn%(b{{mkg8mikCiq zqg!d+E{P#PQ*@ra^K^37|`{ zsfxRB`IzRt!qkQOZX4AktIVYfBm>&Z(u`|2T>8{?YMhkW@L+rs84|4hPp~;DR+KCy zo{;dUH0jIiXD4vUkUq35NQ27Pf_}8FdKBdMXD(pFipU`cF~e?6eGw+pS2k$j6}z&< zbheP{CTD)5E$2K#vb;-=ItS8=Fjx-j(mA(>nUB$~Be*aV2p){y2+`OsrWGvQU`kaH z;RhW@xzE)Xa66L@4X%S#gUAAM&Wmo9Ov=x5X46~TE+(tQw$zc7MFISL^SxwlK5AMm z{W$dd9!pm`!cnIP4Sy%8(0g?@>!=#i;DYz!D@lExL-?{1i?0ZQ=JnC0n^7*$CmglF z8&HCMsKVuzF?Mp8S{~_>Q3%&w%`i`i#62&^Gcpk zC}wzei^R-pVnv>qN9k1k^f&a6#QTr=?vVWsw{Jg^?Q6o%J(U~BsLdAt;q(Pu~*~@siSNRx>Oq+m1{AU%TbDEKHzk}CM$P?dfer1 z-q;jgsIKG9XY}oT4c`aiIs7!jmT*N+IQbrWMHqxAj{Oc8>8~=3cN2tS3(VPC?d1-ku{LGaZU~GXrTG)pcW_fzXm;;yeM71^;F(`(znt>j}!{uDE_GMOw5OQ&=jgQt^?%9G63?1f3>z@&p0-UdKPdb}Fi#*LAOw87zSuMx*Ft7P+z zFGWQhAIs z>*A9fEI|+bMi3>wXf||e_Rn;<%>M>TR-!0<8dz&k?CK&vAY!AggE9IYw8^+RJHpAAtIE&c zu%9in{HT|XA{%zUhkoq_X*sdu0IuMj51pC*M|+G`sbcFE1&1AD_4wX!Cb1K(A`{}P z)>@VO-M-vW?X*(@_#eeff&Hqa_9>NNt{DO|4cglDYo-n8y^LP<%n{=g+WCGIv;1gW zU=p;)(UOzH3pmk^nAipT04+3yM_#RnNp$?mFeKmdx-h&Y95uI{frnHBJQi zw_G(cNjKbOEtD&(0id+ps`Sm_IqxI)BDfUgtnTRtTC7%JjlwvmniB`K;W3!g7+~nlN8`wG=6PbO+i4L z%19CXHg$-fgntjG!IJ!&+P|Nl2fD@8^ImUSS92^1f}08M;HO(xb4~P~YqIfm;~q2( zGNy-*xaFqcR}``+o|xL5DvH!CgGn+(43+5?0gMzxA8F#)T_% z&#yM?YnQuwi@U28s9Jm3PnLf*mMgYb&Ip&HBIRz_YNBlM79x)tvtYq~DeIYBe#8hC z?MSxWNB(E(rKPu+E+HR`qq=ockd%gEKyF6h4!H=jJCexU4A>*n!SvEdZ-#|m&qU!+ zkkwqR|0s(Ly`Wdev870Rj99YaF3ozY+z2v6jvHV!zi(2YUGC>iTof7oc(bLs^Gme+ z1b4jgnorPZuk#L?`le2I{JYip7D}++t*TU~d&p1CSi|_~8T)42nthwz8^f+H!+bBy z&t}7qgrjJ$j_H2L=%yK@`UE-7rrh{;?L||LW<*peCH;V!rW$gRPBcP)G*P!IDW1?)1MZ z;rjECxoK&3qQ1p?CsQ`|bj{>Bj$%BNcB^#UkIUYpkyC+1*#Z{5|GTGquC&DpfKC!c}>zNdY>-Bnn;w=cg@wJ+JUquOuyZuIHucFo<`vArwR3n|y+ySDf3NQusceBaWRzLpIw+_$u~E${B#-O}5p zMqbg;w__s}cjm3iwvJYjb4jyEvX;hKD+?{V^3D0KHaZQ0*6!ZkJfqXyRY>`f+tjkH zGruz5(ng!w8Bn8&4OBM`HPSFX`Q8>sCK^p!#S~G7rEr$lFZR!*Z-Q6$B_2zeVboUpQb@lb`O?7pz$@di)sD^g1Eulo81fum? zjlCLZ1l-iy(pBhe5o#lFvHDa?@Am$k`7VUSUKRf@jvBhLf7|+=R7)r5THu?WmR8t5 ziHboq$uqps&Bom=JtjD?NU^RZopfHJ)F;ka+|qjOAgm*y>F(Q+?-kt(C7v`rAd^24izB*1;K0U>s_z5YdeYS55$Rs&z+8 zM;CRP4BEh@wjr5?%>~q1pBQXSN1@M49n#{OwAi?SCLx2?{1y4W%UgOoRNm{C=GOjR zMzXViXIF7#3u>%Wof_SB5yM!=ymsqtrOT~5dtj$Xf0PL%UFhg?4AB{eR74FuU*#I?k?rz!Z zl`({Jy>Z1&Rkb0eT@q8%=^f&BB+*otX%LA?e5CE##$W0iD&@O&q2#)@S2OgcVwbMp z)Ld7*sxMy6EMCnjUd=9E%_&~ZEndwlUd=D@w`anR?K`}-P?sE|HaBnU?|_}Vns?@R zMgxvu@6Ov;`OZ5-V{)ZeO++2i?p~9foh`lBqDf)6-h#-(upkleU{PwYS@K zIwgaZZ*PGEozh0i%^Jy=^-`HNtG9cnDO%l_TK0pWLXw_@`gAly)ncq8OWd$#4Q(`u z_R?TJ3yL!(!f)ypZtKMw)G2fuQa$8*d%L|RHyYZwiFfmD)vZEeP}J_u77U;FCy>Y; z`8}7nboOH>@DchELD`<=tJW;DcA;B(Ap`=}R#!U!Qa1on?@SjiPjedvUpBJ8qukkw zk;OQ{#&HkyvoRL!G#V)+Id0q|8)2_lS9Wm4^RxA+1awk$OUI;z`RWGa3DOu>X9c^#}8Xs-bDyDGbRP+h@``TyL zV}4*CLtz?0HpLlLhtVku>&O61`RiH=t@Zs~9roDkBvXXm%USIF?^Rv6w=I2)e@q6< zvU!^)(UTVjQT>}&wDfk#%&aue)40U(y7+EwOJC~_tJ6Kk)$ zcr|{oP`-C(VY{E>FpMGrRd+;F6NY00`cyna!=(0_d+>n@dv|W@c8;_oZPA-;#QT9d z)+B5Jo~3-E_MYZ$=YE*5IPaY@OVj~3KajTcPB`KrRqa%%V zGI5NId=UDs#+rVR+b5mp$(rP2#@`$%OrJbX$CLO?F@>Re%4RyaIBJz?4X@ve&4fTb z^7|0ZK_VE|Pkthvwm%-6_e( z%oJnAR59jCI-gm75k8$1L31Rb&3!G~&Eh2+Yt;3Y&g&mE2mX*|1QAC%-9odvN?x_d zA~ofu)yYjXU0NYu*K6oPYp-|~O@=Gc9F0p}jzEEWZ1(GBBY8g|RYlC=-+{8o7uiC@ zbCYd}i4A!>9KDUnfs>9B-%xd`*ZagK6-?fob6*%RSWdAUXF|3}TR2Wl>JX$+t^91SdPkuuK(R&nBQkL2UYDG^mo*qcQ@IY8cwFqPIUw%}z%v@6O_(am#Xfkws( zS@X;onR|!F3|sg}hqbn=yU*AvC0sTrY9nzC*cjI_zuP(Svc={h*A|`Ix{|kCS8|u@ zO8#6X`Brr>sV?{ZV-W}`f|K$O|Z1XAsBG%wAw)KDj!HidF?HdG2) z5-*^yALZBH*|Ht45=7R0qqaO7P3;UP_RMskNL(^7MWt!8P}P0Kj&33zn)@3GrS&uo zBcQOuLP^qrnkV+kLw2Jk$_iu@?(gaGj(n>W5wjEwR=$<^mW$q4V-Vn?&E3$8@3u#E zxLW(WnBTTJ2YDmzMC_ULv6HE;ZuP@zu<0;*u%8-GK2EGm#0t*4DD>b%_t89kZM0yS zHNwk}3u=iE9djE}5pe@{BCB5OO@=J80o#}u0sB@*}Ii6C5((%4R-MUMsCcGsnb97Y(hQf`oG4qaq`i>*+TdAN5&FPR5 zjTE!<0h}WVX&C{<4smK)dpmke4`_(v4m~4P1`uDA0W^Oq1I$VSW+wr2l7P8Mz`P`2 zzVSY;Y|+`X*>rJAZ4s2>)0svBj7o9*BfgZIuv}Az$P+Eo3i1&giBt}`Lu>Al1j#3t z#&QCOTROljGUe>+%rhVzu!$cJb1&tY*$88W7WcZiZF5h|p_c-87RkT1OtUn52dT2? zMHEexws0XoDJ;`P^0(n^{j?tY^^z}10FC!Az$j3X) zI|;Q>v&Nc1VTJ`71ui#4K5BDwPfJ^^8O#CVPcGD6Wdy-MV>8Ad`xhiX-##z>4CF&yGv7D;g%A%i4N-4jit@TP4{AwtWmf| z7NW4bW#vX#eC5U@>YE=SDet=2b$#sGDH*5WXL)v$+E|0GfSbfXtCo};Qm5+?RkxT@ zVksxRUiLNFklWD3-11sYjWxcW;o_qN5&iT8Q?A|^AIK1jyd?`$q+<%dt~>@|9NyKv zmXNB&a0?bqlC~4QO*C+Z&EbkV>%&~dIHI5Qh(@j#rZpKUA9wdwoH0~bM|Jwnibl~KM%M&U zXqXY*oaDAr-qfx_ zvY}ec@{)To1uTn}r3d%;S!;#cGVkm+exi*eR=}*aP zTV~c@JWJ;^KQGNMoY}`#^!GT+FEJD+8A~>^mfPDW8m(Bjxq3<6-0Hgen);gB>ghZC z`n&QAx97Wrj$66^3-`>MGkwmi>gn67r?0QCp5ER<2x9L$^1WPkbx((9c6N6OT-e*y zx}&$di*?oM{aw51|8yH~ktohmzAJkXK+jG+my(}>2@ zew53-@p>GS9?XW~iaySZIuUCc{~)>=1E2ihhMd4u{yOjVLMYbHTKnLFZrR4(Hmqxc zELgW)^0XYQh{+uHnWpy)D_)la%?MkbfM5OUk})t2>+WY&mc^)UyhjQtj;>eNbra>) zg%jIt#F~2dy5$hXD-!W<)8|E6{5*9>KqGy4pj4O-u>X8bgAU|g_ngI`*6OlmaH48$=C{K!1r39nGC@9%R0 zx62qTns?h6;G}6m%?e)@*+1`H6thE=r{Kig7!hhk`m4(lWaR&tRW7;IazKp9hM2q@>9HsP%JA+-jU)W3D4 z7;uAYnAS`G6C86x=rx^VEqmr#D(4GRa+T?b*NU63?7s?zZp*of7V1bX7)%EHW2!DLzB$RcZCB{WgoF6GEeOr4s@ncALI6=3`c#3tdj*fX~7h8nbw4=jD z+XAkljAjPWyjAzBVv7~%Bi6o(Yat4z`BVkJ80A?+-0Iy6r#H)d!=y^~IbY62aG6R{ z+LrEQ9A>ds-0?Ngg!GoBri^0 zo#l1v%KoEe953&z52n*{D_Pman(I#3(_QT5J}Nx0=Eb$qrecT@=%<)kZw!lw!Qj21|1b zf=y7kpe)WJS!bHS^fupX(oht?u5K-`c`-E^wV<9i+wO~~zl``y5ghi~>27DcuQ~2( zuKSwjzUHT9Z13(SpK%7WuNkcK_qWZ!wM25;6jSfoKBK*3dz~*cb4K5ej$W2kQ4o7) zkf2KOjzaMwno=hjsiyV+vXUA7g zn}G$lDMRwji_DP1DKD6+shL4lG~rF&C-dM0B=HJl5MmYj+Tg949hT`?;2UK`vZhT= zH2F428__B*7MNO^-qCe&R7z0-9{4YCb##|d$PRE94IP*Gd916obXu7<9+Y1wW@!+6 zkA_6|x=`CvE0!#|uzK3k{5Ap`ex5SDZq|AJGBqycKIwN{mP+p#ot`|BpV>;MQqurW z@y~MHry8n8AIvmVO*#-XR=s+1=D877lK?eTLp6;;)lw^4M76w_Zsxx(yGy!M@LlU8Y?r)_*z}*+VOE;=8tK|)4uGL`d(Z$`u5Dys!0cf zl3rHQao!%((aN$Skg!bbHWHRei9cp=#QJa7ERk z%qt_RrU8KpVCL1Om8nG(w?6azd;V1C`!Xx4CfyOx_uKXE!Ek9+?Sbs7s;3uazF$=f z1RP*@ICy0NfA3cR`E1ueYxhdEd#T#pSoLsqVT9ES$*uKktE!jV0H^~Rt7HECOZEQp z;#kp!J#_S2kpFMhRjcb)zU&uNwluEPm01aeAPd8~tg@wey|{8`1YW}{vqU34Mr-Tu zGWB;^d4DrBdD@a#PnT4}31xk6s5HL0+2i}J+6BHlMf>*!i>s>ds90Pz?RL@cV0KB> zyaU5lRBZ@OO^>LW2M9t^q)5mmmEystJ+AMmf#AABV{yCac(7un#&I3Q%-rLeRvgHN z$`w`9;E^K0+BGE*l2qzDE^!3c`GYZ7x3CrkE3A_9OB)!80)Hh-~Xb#bkN6r`Q5_5x@z=+OlB+UVOiz! zs+`9BG5`FZ^?XSF@$^`BTM{ZxU5~KZ&o?E-WtpuO0L^@eUWhRxljLw#I;JWb);_v>3b-a^OJ)iXT%$9yD)l<@uC0*1A zp8g@~$-GDfja0Cb3YJm9;;K*b_i)2yyreN3o#P*$4@k!hS&x^c4MFGNy11co2d`i4 zajlpf;VS7oqqDWyaILC(wIO)-P=pSCIHu}%4Qs1zTD-C9-HVr19a;>1_`84cTHZ5R zJLc>9K2>>HLscPb+{(v!**~AE=UBM6!=<&l9)Mxb1Y$1-p0om@%Hs>v13mYnT zRZYUEa;bM_`FCUs-8*PRd#9`T%Hm4=4)==5*$)5Ck`ugxNT!zZ{9a%7eJX2Xu&QV) zRu%1GGzOV%Rr8h%uoaTcfAV;wBT`$Wf7EN*&)@I-v#0f}Eb{0<)%sIO@FSdIy5@73f;F-Lwl)Hl*=o-sy;OOimLlZU(R;} zMKg7k%NZzA#lGigI8!=R&#l=F` zoUq8I%HZ=>(|Xmk*_9RQKh@=00XOMtvFcl+D=TKfIrqSpNNx^lqnx?EN)>00^+0j>9!x+~S+qRS*sqjM6tLnV_H-C4w0 zYJSE@QW_>}QZOe_(Gqm21~2%gF?0#)%3g0hU843U1j=|}o4tCz6>1!+(A$kUeqL;J z0+C6kF%`#KsE~CxQOIg@h@LK%SvC}R2H&#ISc_Jc7mDeDJBo;gtStDBwaDaUtq`p& zS17Bj|8KY2tWcv0EiNzQ`Zf}!Mdyr@2di&$rF`j6N|E#VivDe=db&EZ51X-~aw`^X z5ujuK`EKtYzE5*VKPO#UoP(p<&&d2}gjvh@Bz#4sULScf|M+-U!Thdj5Brwv$6z|x zd_`}Iu@L`0sN=P?GT50N^oeY~=0xxI^{i9_N_G{G{XoTvs@ne86w3UaFZ=Sc<<2(Z zvbR@_UJ5z6HpRVU%xe|Cam#=#GC4!qx#nr(A=|#0g_{NRV!&K@){WISHTX}#v zH2u4&=;17_Twc6hSt);GjepPlBI@j8gf@Uv@r@n+*?!@){^4i&xQxu=2K)pd&TUwY z^Hj~e3nxVJ4f!vh^zYC2eyN|=Gl)Ju0}>8;!ju9kPI8u6yN>&J&4nfu6CSL%J-8!d zepza)8k9bMIPp-6gHNdJZzN^m&VfjNVU7- zV<~^=W?#NW<&ECvgRZKoeY;Tvx6}NlBfeZ+dAT+5a(Xn_N8PJP{ql{$o&_mA9ry{N z;6UP0kn$7G7+fwsXDAdQIe$6LAOp)!2c8Ch#cKCTg@4n0Rq%T@^-%W}M3dDRbRpNO zceJlBip9xgDo$?g+Wk{?D!*0pC_WZ<wT{@G$TS<^9b_}jS=o`=Pce4_sD zw7W2+{>4AN+^D~)M1OCzLg4`XHv<>`M?7IHo(b%B53lwlUFrKFG(pNw5_RK0AF%H* zbua?>?+<(Ujs*OE4>uW(J^KXLYEO@^;`jd97bCbAitQeL%)Z0aNBn*C^<6H6=LKK> zQvcvzJbaO#mwds)f5x}ywzb*={CmH(+c5Qc501Y6;NhQ+0REeEP_5pSp9ehc;iHUi zvNlJEzrxwFe8QB?QDP4!dpu8jJQlO$`E=mv)JdsFJU_hb-*NnyP2Cj3q02^J?+Xd| z1`h{W+2?Y*4^vN+L78I%7d`JE=^lK~Kko-_?eYAx!NcF<@mQ=ZhU-p`=cbb!&|;ok zKH%XSMmhMa{+(|c{)*J^8Xdq7OX@kppG{TUw=c}sKYKijq%`?h?2_-7t(;C-F>vwU zzuSE_^~nU>#jdld=M(V%vimUgViAMCF!{))99>HfvmQP=CO>*Q(!&=e;A1@erbNAy zfQ$ZzWOVsF>b_FvTlui4mpnLC=izTn;F;^;bqV-F;KILkyu;Ao5v}&+=O)TuIz;&v z4}Um;r`O|IoWQfkmrqS_6$o2=4jeXa4!84DOi<*eAVwe9_~- z$>Wds@t-}OR}*~oAHb#0ci6W_&eyL!o~;ud%;L6O=BP(>t3JiS?{QzL)2#k5wK>t> zslNOpzWjr}{2UMOIn@Df@$jV{Pe%ezqrtPOLy2~7@OUBvbCt()jfZdbhUWnfztO`- z%lYN=WA~Lh6yZ6|0Y2^F9|JCZ)stw?r#yUb0{&SKe|G}@MGxPXfPclq-=Bbg)5Gsb zz`t$qZ0gGiI(!GX#^qt(ev1v$@@G8!>9@EJ&Gz{I*~3RyJGjMcxqQjv|6KzA&pmvl zeYfsh&<=G@-Z1hh8&s#kF=>+^NkEiyn4za~gxvcl) zUrm&s=i#;X?Hj|_#daU2{xm^Pt+A+`PkYD0VycwC9Ju7M+M~#L{o3yF{8<7|r@^zS zXr05qmg@C*BK;iU+2`?mFM;P)51*Ex{~aFwr9}CAJbYQA{GS*cI@@>D8sh05o{Jo7 z|L7AQUYmeFXz(!An!x`#U;g=o3;HDwzdr&0n#ZFUWc>3j5C2F4{LUZOoe^6(cDcz){f^e6EAn}`2(0{*(kvm=53KRvuDLC-gUi?4Ft zUyba0CGVR**5Lc(A51X3_&EtYQ+)YFzPwe(tLH`V`Q>=#7@n}WjvG;KfiIsr&q3yS zK40R?|3jj`t33Rf1bn@R|2zTTY;gE6(f+G^`QInXw|Mv)3HWvopOBFEogSV}zzZHe zA_3nE+~_>b_4kk`#7(~Z1&Q(pJ$z;Ye!GV+PQdT>aAyxADyLE(^6;w@HN@VxHf3lez#%fmM%@T85OvZ9uUC zDFGkl%TG(dCwO=i2aE8W=HX3V9wPWz9$uS(pKtIm^?Un{N@J%y{G|kZzTIb2wN<6E zx^nBj_~8lo3XjLuSz@oO^LRd#D8Jdmw96Yy(1{L}>eI=jc- zCGhX@<(DVQ-{|2p67Yj|pG`ena%HVicX;@_6YzUIo~gzcrS^Z=mw#kL38t%$did4^ zo=G!v@G#}{ zK?%{U#Ix;A5OHh+Lxb{z<;iXzgkk2R!NP=^Q8oy*&hDq3AocQ%y$xamU#Rx zB>LOv@!XlfbE${#Pr#czd`|-2?BV$Yyxqf{y(-adr@`^_6LjeF<(@n8wvc!J-pK7BkENu^>dGB zM`FBQ^YB9n_Z?f8`DgG8)nu`+Yw)W zN22@}Jp4cce$?aHlfd&$U;gPtc_-(I!Zi6QU*5^R?<`->diXaIc>dYoCnw37I_}H= zX`;L^22rw634QA4lo#Fhc)Ho^JpZkS_ax{!4E?3@I}+u`did5v`KccMNTPhbhkrRy z{$dY*I#GVPhaXG8FZJ;IJzVR6`fTy=LmnQfmAr?)+ry*&UgzOAd3eM>`#k*l1pF=! zf5F2eJRbqBIM^!*`hOgFCPx40@t1u0OoTwM`%e&???f1fF!1y9zs1joe5!|!UgrSO zI^I0sgSF?9A>hkAo~J#YX+F+(#SrD+?#rh(xO$^`@SY*c-#7&PW{>BE%N?HI`+j|3 zi1H5(0e{5fdG&sWAX0Px>ftW&JC(Bh7K;49!=HZ8m0#(;QZIXW^$`b9o`^o_k&gab zJ^XYBPW{lAzsbWd@$d=0{39Ojt4W>b;XMzzf@^&Fc~N-}-|yj@JbZ&^Sj!9H**4&V zjqi3}{?O+f0?YT{vS*0$?~L&Kh3JTGw|e+i50Bikdp*3z!@c;W{@lYK@$eeo{zpCh zRS&Q8@HgL)<_`U;S+k^;6IY9;G;?349it7ltCzcaI}y(|<#IPG#Xrupb=#Dqb6|nZ z=I0|~8&rYJ(Tj$~&W*7Rqk!iN!#w?)8=D#uv`rIWDTaR%{& z{Ys~I)>!K}t5Gj;IB)EPeL>vQnS!fXwx!t}95ciwa=kRikj=IK)@n|AwEd-==u(b_ z?SrjlXx&b9A(`(FYtr`B=+My!i9Z%5xj%5gc6ut~ydSXD>v*W*K|BIjyXvib^|P&r zwYS~~QExq{H?r3kN6ziTbzA5`F|$^$&8)NkHsZy;6$~~rJ~sCA5q_*x&K;sA1hZ7k z?USzIbfiLGPj7cmO|2b9>cMr1V>h~Ezd(|pNqmoc8M^opQAN7UoE`lbiuflwghJbN zA-mfdT+>nLZJ{}8>Kxm(%OjPJ9(ca?dyG}gC^>VUoh)0ViE&Nzj(Bsx=(&^WVuy3F z_dR*2ywKaQ%(52Evf-L#V=&7GbJk3?be8qY#K#}95plLXwc(vrl%)ZOI{PlE?MpeS zQ3#D+X3Z}iV(ZQ#;K^*Oe6}@Yc5Nh{vAyr2rXq+ZIQ$NeVVGl2=gux3hoa+y zqT`-w+`~C>Zk!jLC$hM|y~Z_bt{p{GW3|n-dgj`T^Q>L-te$z+(s@?%JS#cR+Bdu!|m9N*Q=v5wcxab0n|Qs*3EXv9G};DyHV#*qq6lnc0gbCuA(|u5%$D@t`BHvyYuh4b~>eA z$H~Kn#r4k#SDllJy4k)Do~-Vx)+(CsZk(XiISHwo>uGGS&3EmJSjbgV>l#$+?i@GP zVTwJo+8H1;XTHPWI#KIdQS0#4x{95A)WOL*PsE*Hp?>&wIRtgC4fU?c^{&=>hp*nT zeSNJ}Qt!CG-nFkD$%vm%mOKZl^o+w2^qV)ubIoSj!3eRVr}cP~KRYfueq?v))JLg4 zopoVY{B;R?T>`tikDrMeKaPU#*FzmU-@hB^$^(#*l43AOJ}Uv3$dR< zaK8#>&{p)j9Yq%AyT=VE-rH*c+%X=}oeWxZBuNC5SpjCY&S0@~wcN2E z>W%+-pJV}@sudmlY|qM%9x4M_4Qe+XHD_>n^s6cUH!$4!VfGF!Hv@@BxeG zvICB+kzS+3dSI3?{>*p6;BJERu%G8BzE{Is`oG_BpTF^NrBi556~X`B!&QDpto(Bx zuJQ_*ztQLbzlp&$XN&Og8>{w7;)&+-g4f3Ix5UcF;h*(z)yovOh<~~Oe3E#^`*^+{ zD{2_E=e;p_RSdpW2>9qLPM>}c7aq-TBRnoY%axDQ$K_`!=IQA3drzM~kKs|YGQ#uu zSiNyP(fXGjD>pSNf2m(@5`IN7Blt%=T;=OyyEySG_Z1^;QrU)F%l)X$biEA>hq1_^cTIogN<1`RZz`F7>V$TrrWT zod;uhl;aq|KO8GB)`;*NiNS?BD*w45@O&p$K91-6L%N!a+P-gEei%G(BS z5097c@#WS2c`^JC$MBpR!}ISk__P>&F>xAwl62^b!RN>D-{#?J=Xv}^?R<4Pyq3R+ zo)>y}vOQP(B|?>#eml;eKG8a(;Pw1Pcs>v-KQjjZTnw(5X;l9C7(9+A?U#^*e|D_= zq!@fo4E|yaJ~syc&{%Hx2#;dxQN8VcpMu~@y^P@RkHIgB!G9WqYad@!euRj^M|c+U z7s2x}xMIE${EIR8;ut)TG2kOS8n3AQ$w~Msl_D=Y2A8}<<=bQMIG&e1T;m((pFqZj zkKl3s8R6kkdw${hXJrhorbP8#5yKPb=R0EXxZQkY2>5y#IX-Gny!_{ffZyep2-VIt z{6+2Q^ZOJ8Umt_N7=v$!!5jRNqUv23qv!q@Jgzq$7y^E52>8oGz}NdFOSN-ztUX&| z@XKTHtugo&F?d%D-V}rHjls9X;QM26?Wv3Cc1H{z=d1sZt~-IVv5fuzJ~SBnBr;`b zY}pwhBO{Y!3E4x)*fN$F85)@~WgD`LB?eO_>sZQK_L?#>6&XyS6hejwQIzffp8Nbx z&j0uS-}m#m#{JH@=Q+>wKJRkxy!YOP#(S9fBXC|{ zJ-$>d=i~q5f#vV}(`G%cfXg_`CaCWh{DHiu1jtgs{g8HTo=iFDdW(eh_HH_EN8l1~ z&l_)a%V^{F{B0s!+O_9zGfn&}-tV;CMJC>k&xa;n+STVTd&sq( zeSZ9B@_wOSGH;nKCk@^rb=vdr_l!3&^JKko8~+WQ$LFANJ3c2(9y>mNnfQTTO*%fe zO}rhSJT;~I`|Cx=ryyMVW%o;un)qn%cbdO}iMR7)xrw*yeXSqgMXuv~i5zd&3V5ov zRPXAS?Jh#FyYJ8-etayv`*Y2OQ;JRL(#(B(%I=*n$H)8eHGaHk0%?KacG9;`KO-trTIT~ zzR<+E)~WMk)HDBo{O@p%4{drsPptP}t-pbBnfiJKR2#UAn?0U(qIlhYhm-3#j3(Fk zZ^(7tzV__>I;9@%?n2Y( zxQv@UF7!6>aVGu~z%E$-(RZ;I`AEV+))O5@o2PrrlqR+wl*? z^CzkQZ4+P7_&dhy!lhk%Tz<;LOMd-4i*_d7zTOf=@jbCUzfG>61ESZ3N}ZBl2EuV4?_GH<5RuI=(r^qm+{edCzA&w&n)r~_(HhU)7I4UA;oL`8_2cYt;XLqb$)5` z+wC{o#7{HvCrx}iQ_ocsFa6c+D1STej|X?R*|=;%)s&#*<9D$;M|HUu=A~@fC3H*Ow;V=09xQ=09QF=Ksx4{u1rI zBD_V~eZj1+4#qnek2Y?{Gt0Pr9r(O)yT9t!!Pl&>UF*aA_&T`mKYL<3-DcuDnmWIt z_*lfBH1W3G3LRZNoWCYq#>eJ=isChYZxe6FXOD5)Zk8Ya+vK0?wXNI59TRWoXJDuQ zzy3mSuD>|NYyD4{cw1*K%vfFkhjQunCIPe{2zqNc-sA8h>5rR!!jn`?hor5x9v9eK9F(3TD6YguE#1EmDu&kG){rZr6R`(l7aJD6MCZahrdZ z$z%Jq!jFGt+}0B>FH(Dpv|GZvW#^T90Ri8^x&A+l+rLvh(A_kB-5(a{ec$bRnFyCWsoqWVd>rN7@fPW?JzuTc$H%^Q zZ9NN(f9Qp1o@e^Gc*$d*N4JDayGu-bKjTY{PcgpC_;R@9x9j&ze-FGx+^(04emro1 zFZ}<+zh&Hx!zAN2|0l-n_WJ`|`n%k_>G<@0#kDKG!uS&7D~*3@Jk9v5f!-Z&kvyxs zo90i3%Q)Em%taHw+QeV;6Q3vA3-T7pzs9?1{&L3G8m|fGcH5eGI}Y1SynVg*s)_%| z*;LV<{vd!qTPJ3&vQS9OP2_)7RJ{b?_qp{ z@e#&18lP#rsqq#=y*u6_^=$HP+U^_1HyeNERqu|sNc<<>P2;B;|J3+uxU3huJ#H}Z zOHBM9#aqSFoX6p!iT})djMks~HOb=geD3{J4>fM{kAidl!+zqcjP#}dKkH=@TVTX;RTg-g3%dN=KFcN1^dV_y?**JHGax9f4diMQhx zG)k&*E(#2G(o{FL!y z#v92W6}(0AH1%$pCkZa=%kH=T^%LJt{s`eM9KR7R`G53on*X%%pNubf%e&((5?{i* zrD1znW!#<*v>zwYF8;XpQ}ZVnxAP&(_|GQ3WrBCdTcq7zyqo69Oz`e_i}(rervBjD zqRvlxKh-N6KV`hJ@n4O9Y5cVDSKjgNc#E`q#=B|$v&PRFj~MUW@fL~y&Aa^rp8zJ@y1jB|M)|Gyz*2RFa5RK#d5f``@473dUCycKi;0F z1;Hi$qKPkO{F3nq<95H-)sK%dZpYymoa>)6&DAOO*!ViropXHq8TZ}xt1Ddc{Nden z9Ab=LHvYQtE5^qgziRwL&O_$ice_2# zflI%dcsCuNWD{>+x5+T^w*L3$-_PIKte5S^yBNP`+{X7wzMseLAL5ML{X?>Gn`gHl z&oXZJW5?k#4jaul{AJ?pxRqPr>f~{I94_N;$E~A@x8v4eq01xjw*GF$?YO;f+{Wix zbU%+Bw?~cJaeK zU1j{P$@97Kd&W-~_dYh~zjiywPQ+WJe!G9}2A4W>nfQSw-qx9H;^jSP+OM{YCA-_- z1{$AgT>5pol`kyd09@*^uVbGy@p(<2e@wjn`*OonmrwH8*9lt~w|^h+3YY#$J^FY2 zvBvY6b|=Fnza57qCf?@x$as*+^R4mx#*e@`|Ia4g&WCHp?d$pNKMe3KlE=P2JP5A+ z)%TBlV&d)Va^Lugue0R;&)*!b`Stw;@0oa;Kg~~k>{6Fs^W4Hb8B4C8k2aB9zqey1 zxn6g%#JF5%BI6{>D&r4$_wS$ z8GqGyC*xljxBH(T{P=OWj;D^p1#+GL+vQ1=w*-1OJAb}`YaX3HVJm#$zVoGmrp^es zSo-YFAX$q*UJc#-_|+9xUF-OaXbE>oBVct9W!q0xn$hdbHn7f^^{oS z#)rqD23)oaI}Q=XZM*IKP*7=@^x9u+ToY?KU>~ z?KreGZuc9V{p5L#d^7ToA>Rj2H2H12^Nid6zV9c`T5@f72YCkC-DC3GcE2}n`+M9^ zo(m@4ZjV>}#1~rc)}yYk6x8!D`84ZYr6p(?vH<{*&pVEOS|^?@}Ti36aTPr zyWY!~{IdVqiGEe~6JOttM^GLe=jMLm+fsagwAY`$gTa z|BJt!*FiA3e$QcX^6Q8XA$Q-W6X5%9aQT(CdmQnh6tCYWQIR|Y@m0vT!fTMPg@=)+ z!t0S|V0^;KGvN{B`{0q}S@34$+3=R+?t8)9XJyE*{u>{}x2Jfmzcab}UZ;S7ZsdvR zZ%^`gcocakyg#{)e>C|`)H#&=Havzr0QqCd1L1Mx?)%8R>ubmhAwGdT7(Ri#I6RR& z1U`+tG(3r1$7e2iMZ_nQSAnOH*MO&zhryST*Mp~#hr`#BN5I#UN5VIgH-m2_ZwcQ? z-Ugmd-X5Mo-Wi@r-VMHwyeB-1+*x`1boYF@<6!!ZAca!hakB8?Z$c`xcn`{dN5pG zGqheDF0YAM*Ux(@PF@=EA>^U((&QE4@*KqGuL76X-mTYwS0N9B*C4M449w=bE5Il%H7+#3HI6Rm<1YVrHG(3bn8(x~c zB0QA53cMnD4Y+=yfDVI9(e@f!^wYvN048FN0Lv6HzUsj*UveV zU&}2&ybZ-?Rq%f4E$zuO;GN00!n={j!u501K52JPn>oz81cWd_6pkd^3D4`BwOP@?&*fzc!PnBYrD+27D)ZCOn;dA3TFR3!X`y z4c|w86rM$X9G*>n5`L8Y4E#8G4*VqfMfe%=EASlh>+p-@H{n;vZ^N&Xcc|yq%T4mY zFz2_)gW&Gsr~CW=Lh!%`+~ee7atnqBkr#&-A`gKFlb41UCl7^(kXMA4Ca(eyC9eUm zNbY@+gKw!q?tNQ^Z_)3a*Zz9nF5+9lC_VySk313{PTmY2LEaJ`N!|wDjJ!R(C3$Cf z8}e@O_T)X`oynu%-N^gHdy+@PqsTL`U+qsGgZOCjhp}HBN*;&!81nb9|A{3Zg!vyw zJ^^{+$rIrT zjb{>hAbc*le!gllc_GB7kO#w4$&166k%z$3$d6#0*OG@Kem(gy#BV0Ag7~fEHQ+nR zy|2>pE$QUmm!J8T407+Q<9tgdc?5hPc_ciGycs;3ye0f7c^mj~^7inPW9i|)5$;eq6F@F4Pdcp>tts6Uvz zGQ2o>BJzZgPlJ~xuZcXNs!v3LZ=T4Lpv#1w5Yo5Iljr9ee`0ex7n7xsLxd@*c>OMBW=dm%JZ5 znS3BTgJcImE zcqVxdT!*udd=cu&B3}&8CSM9aO1=_)oO})ZB>6h{8S+i=9P%yji{v}tSI9qyUnke` zze&Cq@wdsph3oYcxxLjSw*zp!o-7}sC*XQLh5Bi@UQeNZ z4zAZzsQ(Vv>nYSP!}WR!^=ojwoYh(>-7}s?_r+n^%UwKAYQMhP%j17>nYS9gX{Ga>J{L6J%xH@xL!}8UL78V z>mAfgm&xh|LUj)x04@drN@(B1*^2sl`dXAIVfS)7}gP$R<2hSl7hhHR*fL|ex zgkL9b2ER$(5`LS!4P3AH)a|!DJP_9_sdt9!^-${F;Dso@Cp?%u3a-~%X`cS@5Q>k6 zmnI(y*Xy}7PYk>w#mB;{kjKGmkjKNr$P?i8$S1({`c|zc5gtMD)8LWhNpQVhO!Lfz zx1{)FcpLH*czg0xcxUou@NVR3@Sfyr;Zfx4;r+=s!=uT!!iSRYgvXGl!(+)a;Bn-c z@Obil@C5QK_yqE7cp~{x_%!n4@Fen+@VVq?;K}4U@D%ck@Ko|E@MYxJ;c4VI;cLln z!`G9C_jLQi&Ey^7TgiiZxcHsqh2ZJr!SD?7;_yuJ5codw5Bs`yv&ggI+2ncqx%i{x zPr;9qzY0G|o(exho(<0-&)46zdy#x8#`6k!x85%PI(Y%~>n3>w{5E+Tj9WmE%a_~x zA-DGMK=RJ;Ao6bTLgYQ+!Q@f!;^h6|A>`5U(&R(oq2w{}isZ5ID&%qS8szctF!BU= zJ@N_gaPmZW1ocfk z6!MGkRPrnEW#rf4Y2>xApIJ*@Jj(4C){{@derz-Oh6yfyD|vhPPV)M1x%hPQhVTsX z#_&w?XW;wDpMz(Sw}NMrw}l@i?*Kne-UWV=ygU31c`tYlc^~*i@&WKG=sbwxUxpVVzcbmz2a}(h>by94b$AGQ*Ed~! zY4VhK=b_}`Bb`?ypYodXD&!xHaIWvO)BYBOhf(~^SQlT9ye>SPyl9Mzk05^t9!Xvj z-i*8yye0W#@HXTX;O)sP!#k5#hj$}?b-1g)CwX1ON0B#x_b1O8=JG_7C&Gu4pLo^9 z$B^fS$C9@k>f+}_c?x_P`5UMwjr=Y6TJm?`>&Yj{D|coz8zcs6-ujN4K2x-;GQA1A*($N5R}hmhwC`5DCLkk>%|i{u&8UH&WNnegl6 z-IHAWP4aWdf15lTc>?gcFS_4*WVXu_NFE3eB0q#Yg~-2}=JEuSe*-U0{vAAo{0j1y zCch33CBF%;NPZh$g*;$}tFs1qAUurx0_v4=$81i)soyU?_O?Dnf z9t4jkpF7aSCy@6T>wE%vCOnb+<{K`48hL(r68XL{E`Ba~mpJFiH!DH+qBx_ zy;^GWQz+28<;QtEe*EVT0)i#jTQoid9^&{vFAonTuL-Y0-Vh!}{v14A?2fs-^0`6NO z-tTlizYPz??!$T9z`Bd z(2Ywpd0u!7c_DZlc`uZD+^ zZ-j@EZ--YQ-vbXL-wzKbKMIc|KM8M1o&#@Beih!0{3bk#{2n}-JZ~YlUBr+Vg~yRU z3{N003r{4k2u~uf1y3dqho_P^hNqK%#>dN6Gbk<|KJP#OIKYfnOol z^QD{Q?;_qeS-qNd-Y$X%$s{(e$M<0Jm52`^-wY2W*YklY5dl0(pVLZrl^e^}ITXT+hRk$@P3Y zom`LandEx>%_7(1{!wy0?w=&r<8=v_UWay?H7!2Vn3ryj5IbRs|wuaD!L zL`Dw7=W{t1do)xuAfTB0;q&UAx5oX4$#FN}QR7v-_zp<$xbdo{-I~Uw-4QqrK0zLh z`;p|o;B&FMk$;ZQOTpz7|Me@alnZ=?;;Z0%<2CZHDm%c-I{)Q)FvR&piVwp1{50|z zW`Pt$Qz96rM6}zAO(W(xPk+&`D;4FDyIS2CH zF|x>T$@)rs%y&0HK7(Brb=`lKB7YHeRwnO(%QBhP>oMF8@p9m9bsFLcRsZ{bA&d^0_>-$tz*Kr;v}u_VOwD zT^uidAU}xvr^#PNoqFD=<9Q16{|?13#5fed@mk~4u-%m;pMp9olJCR%twX*PR>)V;^{a@@RNb^5O6j zYUE3CoT@{-%uFQ~alh*Y`_myuN?tD~kUH@%zbBa6YW>f7CoH;XhIQM)F#4f+#^AVInf$5*cuP(4PS_9EC9jL)OGEON$kT-US)7MF zM}7zOwe*?%HV?RHX{AZl!j3k%OpqEAGwT|aU*nZ!p z_@A)<()YV*{KGg7&Z79r@P*{z@TKIf;5y$m|4Z;sD1He1GxB)&Uh?U1egBu{uZr{J zV-){GB{x35lDEY;|4#k^^6UGsH2-rrF5jW}uJF7#AJOPoJE7wbhHgZ)N7 z@_IOq4e?Mn{wC@lMg9Zsk0n2c{l?qm&sKK%CzHR9=P%RATVNi{A^#EeFCagJ z6P?B6`Eh?ad0Ct{t|6}m-$4E(d<%I~_%8B?G2eERKPeN~TfQdGjrtFeCnC@H z>U9|!{|n|rNs2Fy{XiM=L!qwD3gj~|{#D6cwD%oMYh}P2`$F>KRJD1MB4t^5z(~S>)p@yMdTbegNb3KKTWl*DWQVg88r4p=iItu|2M%_&CgS zy*@?bf5z)AJ1BlR_CI>vipCegeA`R$TO`0+_LDEc`SxM*5Y&H+d?dz4kLTL%4s0)H zDPH#%zmp%s`SVrs23YSm$nWC*9rD_!{{i$*>q$oa`gb$+1$Z7(l;YdMOOU^c@h?UG zH1@aU$V*}WUzxl+&eLj==hyQ$@;CMQ3;8qXZxiw%n1|1iKZX5UYx2c7pXoq;9^RF_ zBj!~v@R4jRdIfj z2al6q%ebAu{-hxJ0z6NDko+#@Pf7CbnCE54pQz&2mtG&F?RLTZsY>zVu-~gq-V5ui zKKXT*KA;i#aQHLir?FmIkO$$o)0X^E>>u=cBCUTu>g-POe_@<^lk55P0CK&ac?kI; z+#f+c1kW#CC*O&AsMi^3oog@-<0(D}<2i+VEsh^E$tUA^=zHYPWBqEq+HMHO;X{fa zg8k=8@}f9ie?-7thpT~LE zL*#c*|0Cq3upS>H{}}t#O5_)DzdHF9?0@Qz|BCw!$d8A*iLTdAX@8GlJoP#$_2D?b zZAE!XVqUc)uZa5fx+=}{C+2?-ia&z$r9R}JVZKF^KaP3z7P&qjnMU3U+x0^7WbFUb z$ZKGG|CD?H`jtVR2jg>yd@tfpk{`kO&mZKKs<}dMlb^yk>vc&wp2e`fLNKq@n`3)y zK(4Phy+p3plMf=lQrXp$Kt2NFHjR88j#D3yj|p^nHk0qicJU>7*W4~Xi~LU zD2ZI_`G8#O*+{PK?kCslEq)@`=hx@S^?CFS^3O4E^J2Z}I5)%mFHK$_@zu!nI<|1~ z(wJ|}$@TLfI+JJNcshanymxLV%VKh^=Oc2hX9u~S7k*8C7|&mhkbi^Y;92q+7{_bm zf5LNN|EJ^m6t=ITqLz76?Tk(bADd<%Itj{AGaW6`g}AA5wn4xTSmCZC1;^~tj^Po5=D#Q9JM^4d6m=uO@gyYbyDIdmL=fg1^e=CtkVY{wQ{wel{b;ygL zKMlyEu^lxg*Y8_=mOLHvN4I0G^ANlp#h-z{NM0QCb~t$f)H8}aH_i{ok~haZe4G49 zybds#d>iuU_vUH+n=s$zQ2bJC*9*u8qW;C?MX*0vN8T3sb$_qz-ot+H2a4~7{q1S; zhj89l^f4%HUBx}4z2)X8|N`4LVp*~#e2}C_lQ+#8bH$G4CdLe!%ijTr^ zA&OkjOJ5~#f$@BU{7;;pOeSBAdKQywyKBgcV1K>^uKm6Fyc_>L6#oY1+aYqT{{*?# zf0114|A$=be-PV~u19UR4EYA^PpZPT{wt`z1;vlTyy;}(D|!#o_md2z_|BEwIK**0 zj+?V6evS(dc%S0I0iRNQQaSgV-6r0b8ug!|_&u0Em&iZH{_9`z-FQ9~gvaT4_Qi3t zG`Z%fO1>Za=O@W^y$>PR_&D;CsBbcPdz{a#CD-^b$@TeH7I{gmuV2XP=XK+Jk^BPA ztN$hc1LGNla&lPP&ei;*GAi3t5O`eSPxEL<;zk>XO z*I|E}P4Nkc|C!>qAiw^dT*osG@z*H6M>#kC`bIL1 zk3oEX?2mPQ{f6Vq!*Gp{M*L$GzaRD2p!g`n*QfY+oCh{0-;DLro;)91K>feFYhvGQZ6X%=i7jYi@I{BMucRsnk zKVm2O9Q5l5`JGTVK7Wvp!SkJ57;mko5c*YsJQQ_4PW~zS+n9VX_RpQkQ>7tq8B9I| zc_xuZVt>Apd=U2M8RY%*xcn!`GclfjlOM+RQV!>>Iu4CongD%$NWBU6C!HuhH}VfA ze-h`(@!V}(^3+2; zd&z6T_ZgQwdLH-_+#_H8g*Uqg1Y%s(AB9(h>v$&Rck#6-J{{xm9L4K6v^OsGcSfC^ z$=k!b8@J=o-?-!%f%s_hA#lAuMeEmbh)2Bk_ea#foctVokI66fJcj+x0g8`7{BIPm z<8alu)ISS#{zX0={;zR64ta21ApMd&A0s|Lc^bTkaXTOMd_>3R8*Gm?5U=Ai3;pUw zo(3O7`5y>%4Ns)_D8wgIdiL&v8W)_ajq_c$H@eeP~RG4gNVC5_AY7sGjMdE>Gke@6V{D+%lN_Dtx$c+pjl_OP)X}*jwHT_5JX@4_e&!0TJGh z$#5ZAFIwj;KmHM1$Ny2}-#{J$|CI8a$2eq=UxyzepSLllKV$Gge0 zntVQdopH&N568vr#wCwl$Nm}lbQx4{*==0%{Ehw0cg7{pDQxeD$o2g2h;bP=J#RT_ zT=I`XoxdBG{2lPT<}!I(xV~T93-!&1iR*pk2js$fP@fAgN8S+gvo>7TyVO|<>o?rE zt@ByqQs)rV(}G;DS8M~e;%&;y|s9r)tTbcKXP>pp?EzH9Bo|Y+u}eM{|5OYxLyyU?S5a>#ZRU9FAzV2 zT;Df7$GFUYJs)0dT(+0X54!w%J+HJYb?W=TKQZy*zX!Vb?QoBL`o`Av^SxFSAA|TPir4k4 zuNUgL)yU)88*bvIUsd37aIHu4zhmO1U#l@bGmJ}~R>(7({8{*X<2FyKamh0n@yp1g z;UAIf-vu_1$02?@oconw;-#M5=vS6;sb?DUWRoYteaL>*D=N# zm+{o=0LPI(oY&=`Hu>>j7%pzjCCV_fRoj^kypamn*6o-Y?C z*Y`<20{23F`}58py7uajZ-aLw|7^L7A7JuJfAxB)VaBCS?e7@lQs-pU`6l@o_&dgJ zf2SLlJbMv8i+l%s9^4D{^|$^KSO3T43*ZM$9_iNeTBry-?ry>|5#T zcn8<#v25xq9It;qF#ac#+4A-N-~3#^OnMa%pzrfgUx4vnM0vt-++0i^246<`Gm+<0@^kQXlSjtk zD%Nk7ap~7v$e&Ff2mhIT1^g8G2k_sF+jjMOA{|ftoZf3DUh4S{d2W;I=i&xbbK|Oc zis26!dEh$Ev$0*2CEo~-ATPVdt!OmfR{tY zCkXqW_l(OpJdJ)WAb$eBgnSZw1^H>uqpYE@LuHkaQ-&XkB^5-{Zh|Nv^$wxKhHDCPoCuz zzYKX+k*B~nQ=ZzG&!746A1O~J^87;n75p^isfYZ3kv|77Rnx6UU0>?qa2+3gUw;Jo z_h|PS%F_k;Umzb0?@#_T*5erC`MuKOFhA!Qm-*it@f*lTz`rA33%^31w!-y4Pp$jo zVB0NiT-x1*_=ex?xndFHQnd8Qb*@u|io zemCN`8n<<37?=1+tgqw7B|Z!Nx(S#0FX!Pai+lg^mfT_Pr*1D%Yu)`v;2N*5r&TmA z`v@M<^Uox2gVzT>AlE#r$u-ZX z&SI` z+(E9}<6iP&xK8LWx&A%x1bKeEj+8^L@8kZP{6~yi-ny=Tx*zx!UW{D7&!#N7?%%4B zYri7NdslYtwISF3jv}9kaY!H^SJdU1My~ZNAYYB~Sw~(Tc|L*bJc+_~^u39fd3X!s zbBz2N{1@Xg53fo>Z@FSz@>E5;*U8Jl|AEWH<+wZv_2jE3+1zC|;xplu;IbYi|0v|C zO8zRm7UfxvJdxxZ;jfUV!^cwot;j!){8RV@%Cir7=97O9-$i~Beu(n#MgAYi_rQOm zJQtDY0=Zs~8&F?H`TqAiq#(WkT-Qs?Vi#AA;`M!JHH^!8IfHt_$g|<~jm!Q==X0cS z$rB#z+HFQ&4c^MQ*vvpC*Oql zM7S5~o9Blyo~h*Trn>%aH7@79?Qy)=ZSqS!&5(beaj9RAQ^!pn*^cTUf8HluJ6ca; zcviy#_^NmaVc*L)S z>wdmqHD7qZMTJXUcQ(MVIF~#p`kNo^hEc`Z-PyG;oj8 z{n!bt#~|af9t+@n_#xwx=N{rqlHY=tHZFPexKr7<r|5_}k?A zJwy}9k0O35T>JH8S6BaP@{aH= z`2=_Z+za*X_nztO>Y3`tS5Tf+$g`S!C44L8X^#BgQ~Y+sA0z)1{tM;lg*?BLzXs3s zlFCXISX-pmhZwlA`_Uq{4dy;<*k0sBBPb1HTaa(Cz=35QSx825Nz6B%x z7vmBdh4Z}};}ZWQ;sYYQJKm!8KLZaTPlVSsF7?z!J#ENy!Fw8)b{8Sf>&9)JZyT5R zF1;LXT)!Fw6E;}dOM`jw4#-zGnUJPXL{V7`57+~!X=F8Oa@eH|s= zg!OX8xE=r7#wE`qs5Af5Zaj2+y1+xphr+|j&!gRrjREeoNpwPu73n@^7Pf zeP3{faoK*~!1kL-J`}#+xXcHw=csYX^CjYslW&EeGA?=a^`eW$B~QR3uKp|J`Z*ML z$(tZPccgoqtY68apC6IWxU{RUFO`H#ld|1Cwb=W|TOuNTKmOa#cZYX2F57QMJfG?f z*Ln4RS@-xsCSLM~Rdb#I*LWSzca2N^qtLIJ9Kfer~x9pGf{qVi7Q}XBF_=a~TCBI{A|Tt$3-^7HT_ z#wCw_j_4!CB~Q6hE^is~67cfIC6B&eu@?DVmnNX0amlZr7u}e=3-UKLF5~$E#)jdpCEn-`3CqJ@&oX7_ zS&09ad;vUPQ};m4uh&IYB@d|S;+``uhq^F~XCLFaJuiy*(d41AfE&8O+FLe-?*)F5M28^1^t?AT)L#& z*Bs-yJztFYHO6JT(C;n&94_N5?assa>^Cmsvk`S3B-ig@|H0&!c9W`k|9Hze6EFKu zJud%gT=Ewx^PuSzuYaFSHZJW>K>if+c=(6LrCmKwSZiGJY(xBd@-^_!$uGlqlV5^o8kctU zJo$ULN51Dl0ae{N|6*L`XFZI=HRBIRDB|xJm-se_FYufM-G5!>1Nh^{1HIoLmIrxD zm~o-65Z}_c#D9&i`n_DeOuU4i?CSmFEwL1@<1o&+jDG;m^T(6l#&{+gm+{o| z{5i%YPZ{KyPyPrz#kl0r=S?e(OP;BSUqk*Re7$kWlN>6&_5OZtT=L8e^>M)Gpqq?~89luHSRfhFrhrq8Iu8$6fwt-06`cASkJl?qESy;*CNg#g` zKGC>uySZp;@=K+ew5-HMLR!5{_;!C|E4^>@OoG77Vh`jui=P)#JKEd zM)`Jf0Ra`^G7sf=q~E(&)3}VMUg!3Vafxq(zuWflW@bKYyJ3kKc4Bw4;q*LE=IfGlP`k*2=_vL^RRjkxBkwNN5UUy z>3*;A9o~2M3&V9i#-U$jj7vRR&~7>MP4LH!%lK%XdT?&{X+QDL8<%zuRB?5_K>jVf zlX2T_Pves3EaIccPs0bmway+GpV!D^;8V#1G0scKJHvMwm-FX%J!(&(-tuGSugs2;6>#6y;1r(wVHo3@_$V6C98TxdCNxf!tgD|WuEBwp`;s^ zI^V=Z1w0S= zJa_@)(r(5>?(rpzOCEi{>m%gnkf*G1$ukFD)wtw&w3^Fble{?m3F9*U4+gvVX2vB? zB;s3=hr`>#y-?qN?-J&DwDJ7j@2Uj3{9}yEyv_H4^Ht+0bal( z>DMoqpLdN*zlK+H?dERneoDOf5O_Z0lII5UlrS#wvk?CX`Am3OxEJahpN&zjy=Tdb z^mg8td@g*vaoG>t!Tg_YT*h-h#y`!t#21o(yk(b%X&Xj!1c4Q zaar&Be&bijZzF#!d86tsPaJt2_$2bN@Tuej;O`rk{eZrnxy`uL`90!ykspA6XNSqlLcV3`iyK3ExWo zA^ZgSUU*?#f24KhS>*CpAukJmmi%e>aPooh56NTU>&OSpbM1Zy*Y#Vtmh(g8`QS&4 z+x_aV#$~&1fcW3YYr=mwZuhIV$aTM3sH3Y(>Xdlhua+U#{c0`pa=8BIdE-)NEb4iI zJPQ6Y`C)ip@&oXJ#_fLfHRICm4aAQo{|i12?uGjHt0`DtQ%t<<-%1vBmYtLd2RSQO4jM1w22lo6~sphx~YLxX#a}sHZOZ)9?uL zp72O={d|NM;9AdN)H&R^-LH-@F8kF>i2uNkr}^;=xb|x}>dYh`1V2bV8~#0c68tn= z`*jO-=EL>f>c!@}c~XshIO3lr*LgUIyb|(EChr2@LH;2;hx{{m0IplqIv>D(zA|}L zco*^k@K?#>;S4efy=Y=eARcnf4pTUoY%`fijPD5Y2#A*r>MVRcVD{y`nwwS zgu*$07{&jC_!h<`br$juH!k(>AMe_m;3xlFiZ3z2#ji0gsm~+-S>uwwGV=fHCx3yL zT)tf14~c&r@#Tz5>Oj0s+se4ar@iC-<1PC4G#;N}6n_Kp6OBv$2a*3HiH5b z`DJ^#SJ3;9w`3ca{Z(V^myVLxh5trA27ZBjIQ%C0M)+;=W$=PMTwPM9)Du$2-7iXh z0rAD*I{rPzy7;Ol-tGsUqWJlU?_gZUa{$Kk4dXJN8Hk?==k=9J@wwt%JzI=R{*lOk z(zxWm@`j85%TNBiJ>BoMzct6Y`(=zve*HY~=5Sr_iwn8zRRizB6v?Ibrfh{+naGf4t>i<5EvF=5t^#->?7M z|3ssnQpTm8nW(3kamoKooO^tCIIrKq6#o|D-!?A!7a{*@lSj6@c=UIZaogVvlSk^w zh5nu}F8#fN{+>53@$(TMfY*a%o=80_P)}93j{gwU^Mr9*&$A|v--#fAp8>L>5n`G`?|+Tf2E!ph%ZY1IJ^Yh3-!(0 z4=20FS2OW;Kl~KM|AhDs#%0{@Vcg=3=k|Q^RF{7`oY%|y6#oU{HyfAy1@pQ*KbbtT z{r-*TUzd!_IJ|)VUL|h{|J%6a$zR0f5A5fD>Ua)Cd=U9y_=9jA&&N@JDL>wT@{C2E zM&x7Q&B)({wk_)NHtb9IdKGV(m{y7hOE{1JGLaoL|lWB-30F6&+DoQHXpxBvg150_9+0rGS3 zqQ)i9D+T>4wEp37T~JU_e|T>JY1_E+`%czeq8DDreB4}te0uLkc!UIjjw{3-Y_ z@^JX;lDkiP^^B!3Y;%eaj5XBg)XjLSH`hWI7q!{BLf9p_FM=UwErF@Lg+ z`;JGLKPOFosi!yU`O~=6GY#$jO+E>J%edqjfjs#K{O@_V8u5k6)8G%owO=#i-Qz?3 zcm(CyhCGqvTi~t8zlOIZ-wS_{{22Tt@+0tmzx$@^m*YdGvDzdy%(5o>$;f zr}Ve-NbetSiSgspD35+FVG{X^$iIL*8vZ`{EASQMaq!jTqv4y#C&RapPlTtFC&M$y z=fd|JmvL@_asJV`jPrWL|3bbNeg>}NTm$3$5BX|%@Ibd7Bwprc4(4ZRxXzz5@LI;D z9{pU!C&)8UPXpu9ufLJ!IpdP&D&kv_Uxs&tOPw-*Vqf$A@s^%`JdW}NJn7=&$?qcn zMDk$7Pa!V?pH2Q4d>(lj_+s)}@TKH6;A_d7z}J&Ef^Rb};~a$f^ObQK=dOtVhP)Fz z3$Eil2IG8|d@knCZR0Y3g3)eJv>R`oKO3;#A2lxZj6}O-$%nuz7?*zSMxHvxB~LQq z>yyueKMmJ@%^l(DYw5@PQy%@?%xLoE$UlO73w#v$C-Aq(zkFwO_bgE6mijLZB9$Naf&T(ST+p!@Sm>IrG!?mtXk3|`u}^s626*D@}7o?GG#Bb)GmsK9}-LLH=a&$?y-!7r>X3&xe0Z zz6!pPd?kDb`BwPnuOaLV%p@+6U;nCbFwCr?G4XH0(IdMW7QFB!M{ zfn3;6Xn!YQTnhT}%5d%1Fw|e2d@#Hoc_KWVd=k7lTiLpts<`7NaIrfdE{wEehS{o zxa4V$JY9`To}y2={5{AE!~4U%P~SKleb>bg^W#$~Pg&%dL0%d@pS%`)5qS;xGV;do zH1bC94diX$pO8Nf|BSpB{7drg@NbRFIQPOhA2lxHJPPs0$w$C{h3h!~jB&m}-g$-_ z|A%nCrt#76YQ|+h(+}rAPr_w>N}crzx;#yc%l7qbS?A9im-^?R&KJn1z&jb2Jo-K8 z{ftYyZP4ye;}Sohv}^ZuderCN z;<6s~eTB;?&v@iXBOeF<$hhR6fc&2tm;86Vc4Ya&xXhD9$g_uhKKvWF7wVfQuV9>i zGVzjM-@o~raml{{c`lHzgI}ZkG01<%#7n>CqF?#(`h<*|XBX5G3>X4jm!2m2=Ud8%l4Rz z?XkXbi64jf_QoYX3h^%)m-q|G-ap`PlNlGyzG*WxZ6# z`0MMhl1IEUe1VCVJo>qv%Zy8WGsLHnH-&G2d!fGdI~1?S?eODAC{HKk`H8#({0w=2 zcn*0K{3`hr_+RAudF%hewfGgx4jn3J*6f+pms89NZ({_VO*pEycLZlhY5lc2^jeasCtW-x!zp zlKEVGwsDCsKG*qQ#wETo;_n%k_@@#7_-OYyt+NljE%`k71oG|h<>YtYb9wiXSD)wn zFY-)0@4n~9OTF$Mr}Lya#{V&L{l0;!aP8NgVeavD{dhad(-ryk`dMwa6TBzIkAO#! z4~GwFXE^jLZ7EgZR(LXW~3K(~s+QzFPk~s3!;U>TkiXlBdA`B3}r9 zAkK}ej`J$iQ_;BXS1sexuf2%xL|z}~VZHqL7`WE|5$bu9d=-2W`Cj-`@;&fmxb~|Z z>e*)8_G`Cs>6f0z=a84c`O2SuyvP_gp4u<{UW#Jm*{HJ=`JeE|$n|?HYQnW&wNcLt z#%;g48JB*wMf{uOnefSed?{S}^}y4vpDW4lq5k#cWe~raycGOPxc2K;)N|Un?bjva z(l0$woCF3vj8buMOZsw{%HeI;2BFy5u5K(jAh5lz^m2NJ=Y>fRrNLB_+~| z0a8k%APoW%`kgiVUH@;*`?$~Zz-4~-owe8A=ggV7!yT>j{(J6nMvs?*>%0o0pR(ln z;MK@$z@y2l!yCi3pQ-5QedBgs!;QCtOekPNjgwG;>2%krOAHD*v^V*1hjvBY~I%!z}2-k6Ip`W(K?Y!PGF7xV& z{ABV2@Yx>U1lM^LMnBug^TYR%>*w(tAg_V^3AoPdBKmn`+|DaB)UB)L|3yA0dDrnS zSIFaUz;#~D(N7)n#_%TOec>(0`@p-xwa=00XS{JcuTPB2{#u0mHu5nO+`PW=xc)zW zo!3X`=L+)b!{N8c7r^h4&xij@<1Ru!Q6K#OezEh)XI$pB8~HlqsVBMXH}!a5xc0xc zg3AveUkM*hegysz`62jpxbCk)=x3vGJFi{FWnOP0e}(+eWY_0yk0%`FzOVDr&uw~% zTtDY2E%~Dg?)n+XAHws(bzYazPfg=?UJZ=PykblV{tC7M!@^(w_y5RZ;rZ+cxb!d2 zm;Zdp<)#^z*9{U?bUuST7JLDDY4~FD67VmK+i^F;b-tO<=PBcMzL$*4d~f3UZ~PB~ z3&Ey!9>P<2ydYfnW4(&utA~n`*MXO%I>Y9;e07hvqdM(Srz3eQcn|Wy@IK@N;UB_d zgxu>Jv(e8Y<96M?GA`@31^Hv-Gw}a#{xB|e%Hnm5`^KftRlE;AgNje691zSaOeP4Ska(zGg0OJXQ>;I87TqZQac+7yNqW)U)Rq&(6rA`ynIcZ$# z==;L&8JBz>He?;b^>LobGSYot z*QXU;cdBSy>aRron#QI62;|=-p9!Bx{u_K9dD`x-kKf2=!v8id{U<~Ju|~P;Y5%K` z&qlr%Ue0*z;Huf=uV8!KxXkM*Uf*bET%!8_xO*Fy{GmRmVpx24Ii+#Q*Tmz=g2tu39uMV>OTGj0O^w@pSL2d@cS7)2uuUYt z0AEdh^kbJlN1k`0^JI7)rnid;@K=mWKU3nmd@1tXv7A>UKL@X4T>5_xkKg(jm--)| z{t)Am?~2Do3&}r+A0gijzh+zxwF^mtzk=y zlcVGx!Ioy6`^uihxIE6BRMF+KlaGZLgzIs&sfo*%GI@DCIU}L-8pgvv|3aNw_LZOi^@UCs5Mki0oOH#~@j9|s=9aa+XX<#<>v1%s`e$EzEcaR;Kl-alwR z`uSURXxtw$ZfElQ@JZyyM!J6V^$hL*@Y~M!Q9ldN&jIq;@Z;oX;6Ic94A=Jw>b(Af zU!?p4_%*op`3L%ZKzn+ z8|3-mb;xtTn~*n#w;-YEyQgj$hX4d;PH|6A3e(TnVozByb1Y6_z3dqSpUW3E8#zq{|diPeifb&kF&JT=kVg> zX|aEsk(YtLPd*#IfLwpS-j{GaKF23@>$ASsz)4;mF4(9||uH*ZsJuxm$!R{3!eh)!B?X8Sp$n`}_f3p8Ptz1$m5?uAhPACE#nx_4g0{M7|jLn{b`iBlLfl z{673|@}xCfKQG9Wz+>WhjL!Ey#(kB171qC*aoJz`eyX>P%l=A@^%-Sc^7{F|lZ;Eg z5Ay5D$D*Gf$aQ`0kawCJ6brT_cwJfNH5~p5`9gSg4TtIx*%2e+AoD#$`XYi67?BCgYONj{Ie~9Jlhm-*>XP{B_D-K%LM`_kGR( zn%-SbWL)l-`{6iGO5P2g4zBzC9_nZFczLQbA9X5|&xOBEb^b;D2ITtt;oFiYm&FUV zcgfSkN04WOPbSyjL%tNQ>sA>3tR>gall_`JZ)VreL8?DFmGkqI*UzEW{|BJwrOjBM z+a@pjYX$s)aXB9J^P1Dma^pxHc|0~!c3iL(^LSa~QvWXMS0ujye*-RM<@mgddG(`w z@@N?~cs+nT5quccS%W$YjmzyT8TwygT*mzk`J<-3tiuubNy^{NE!_ma7liXKIe%hY z)}c81d`_Mp9%Ht6WnAhEMm`65Z+KqgQb#|x zy0~$vvj+K63?~&{0iH{=J&lCT|xZEzjh~@U*eB)AI|G(Q8#-*QRHC=us`AhJ1#-+|S7Z2?; zE_HGuzlS^%{Co0x@Sn(|;pgB%>G19GRvtI-HIK)fGKr&*-L&LeuP{aL-*!O0DEWKvy5udeKI6$}!Iv6O5Y%6e^;u(F#yyDq5#y3Sj{FJZ zl8=!u_$$~Rl4pk}!{e!hK}K$;w{U+EMXvYD`N{Vt4VMpaE7q+A zdHeLPerNK3GdO>bycq7+hLOiXpA*Q(q;YljkSE4^{zAT04vb*COnx+z^SJo=o33ZQ zw9b>0Yn@EwdvdsZUh;QQzaseu$k!+T2=i?L*W-Lx5?8+u<+Y!o#^v^y2e+f)!%+K8Tx;`D? ziO2`Rlalv^r-RF~$azE8Et|F4L5CNQ1}2!^kVZ7m$yDpCHeM+v6qjQt*4^cTnda z@(}XL7r1%rd8YQu?s5jW_Ma@H^P+Ig>+Q6haasSju@05U+raCQ4}mu%9{_JpJ{{hP zd@8&z`C9k@@@4SR z_jl{ao8x|VFS$Oh_>Nqkubm;+=U>;z_3_4ia(#Xje^KQ6#LMO`ry|dt#d#F@U|HB; z%TGQU$4@zO{XDy9@|h`JoyO!p=W^bjykQFGy~z9G@y{T5j35>>_|p^TfvJ?&b)IKj zZtr7pye%aE5Wdv79EbY4$|mySSzVudj7$BssI#AZ1^heXa=&mf_#@jDkKZyb^?yR0 zd*nypPvBBEX7Fbm*5~EVWt9Ja|8p0No5Q%|?;-!1ae2HwS-u%;)!}-(8B(MB{$9w9~qZARgoV@ULHQlxYW_tZDt#nI$e;T zPu>>(x$$s6cs#$#xYU`3{5taS@Xf}hj-Chh8kagdk^h!_Bm9VQsiWtOlg6da@5rAa zKMy}|Tkvuc}7vpySUNSCq$|HY`ybSzL z<97c(GA?zRA^()T5&U1{cK;?^;^raiEOq)J{}Op`cuM0^XC>}8qu>FBVg-Mqf_c&tIi{MbxQ4`S+z*u+=m!eLg}zwaF*K-!d+JW{>CUv@$Mrsx)-oj=U1QlX0oD z3-?pKjZ2;0$oC_!3m-|IvymHj47q+z@C@<+$j>3~0$*TU`g{$ymlejP&nw8UCjSk- z!MN1vj`RO6<5K6n#;*T;jYJU0BCajDZYhs)n0-{m;; z#JJQi-qL;JIr+mD&SNZfU-dk5D9T+J0Gde!B7Q~q6? z{|8WhXi1kJPWjxZKbG<>E4uttlb6R!hhjUQV_fE|k3W|hmvz(6Bm9y)y0xpb9PCNJY&!??$cOZ^t8^8GL1-`NFvLxdHhY z%iR3*JiiK_7#>8!$3v>ZE|W+ zzTC$36HT51UK_6S>W_K#C;uA$p~vS@{Yt36kh~oHOY%1GRphPUo5_2?x082=e?vY3 zevte__>XX1hu<*Ya~^*}b*7@ubMndXILkxfO^>UE@C4+a!Bdd0fu|u~1+nrCj|5CNJY|!?AVGeO@pweGWmLE9Cv*ci=%Zybjq*yLI^6 z=d)xqhB#A@YmJ7b8CnF9nZ*{zstyHsoo_xW2oZISfTxQtr^`FZ4(;fvrp-~O1_5%Rt86Q+)g z`yBJVYFx(cg!-!1cA-{oqU%1Zq8Rq+e$LCO;XQ=ZT z`QPy68F(SM_L;W4t6$pWW!xo*HY0D3e0%b-@J{5T;605?pU2SW0OQi<3gm~7FM*GN2hs5T$RMo4RFjwb zS5beFajAb4b(WHU3tvrsAHJUaHhhb5JMJFiGH&v>-TvB7o&bIruJgKzdEF&1TEW$M zYU;?iPcYwvU%BtgaVX=yiux~+7l)@MuMN*YUJIUsyd^vjd2@IX@?P)~zH`BwOBxX!l`=DXPBW&i5? zcsCfA{j2|fa|`)F)ZasX3BI3PKWFzl@_WetNPY)?mOM@ecl@0vj|IO9*ZH=n?(%U~ zy07Xz;Tes`4k9CBx?FC!o^K1qb6(iEJ>R}&T-GfW`l&#k0$u~I{d`r?)vs^zvR@iv z+;+yLeooZsNS+nmgS-N~5BY2G!Q^e>!^m60#~PPDyQ0sj#-+~@$bU+%pX0j_9z?_E z+Z2`DI;=2xsXrX`w;PxGi&1|U`F!|6^26|>qT*gh@(Oo|`c|v$$@*MEu0|AFg# z_ttR7XXe$B$N5Qk3FC6U-HP*VMYtaSzhHf$jm!B~KToHDaap%V=%)$!4R}lAQm1TY z*I#GjQm1Yw=iSJw!h0E)I{N<1!N#S|c;ttXkA{zh2hs5PVO%*k?lhB^LTCOc&xy)xp-)_amn8);=VBjuIo@bj`M}a zrT=T_a|!t+_$u-^@3=ba$Ya5`lc$02B2NWBNS+UVlspgoBwW`sdr{ZV1(TQkRSWaI zYh3308tObGFA0A^-V7dNts6(yQ|dHVU$J)U2MCnA3ro|L>ZJRSKw zct-LW@LX`6Z{=dHkHRJ|{m(-G6^%>(J5Z-8xqjYieexs7HzGd-Z%uw4-k$tdcz3w= z-v#~mH+kv*3-mwQxb%M)b;gt5gij|=+TE?sO!6e~h2&B2CFGgmtH|~9U)PZrMScfd z=Q|Jc{nq4VzB@4Alg4Gf)llaQc_sK|^0(o?ledH4CGQJ=NZtqjf_yAI#`?(Pe>6N1 zT<06RxXYzBd71C`m~T$wGT+&#lb8Hccv14L@K?z>0P(}^T`v#myu_KuON?tZ-nc7cVfP~ zJbsqy6hWQyVLGTm9Vmxa8fCPX^cdwy)x@|FX%; z@q87>b3Ws8JP$#gg5-nXCCMkiUn3s}uSz}#UW0rVydL>#cti4)@YZmh@3rD?zFkaS z=KCD;9bjDMtDh4+gnS3;e?+dI8#RvnSLCOW--XX0zYSkN9=nI@e=&JX_$s*0w_pjE z-(vDI-=uhcanQKTH#O=UB~K1NL0%kwn!G6d5_vWFHS#L(JLFB_56Ja%onOFpz6&tl zcpKfknu zVEf0o&?e;LZwh}q{P}6cmxjokTL*qjFe%kS-zV!1x)_IO` z>1Q>@{fvACd^!1d@UO^^!Z(tihi@hS6~34J0sLF?d+_6MU7t*NKkylom-&vtd~X<+ z`Nr(+*7G)b2>zHnIs6%UQh4mmuAV;MjDp7}&kRpaUL2m9yeK>iT<2S=q#G}<$E#7D zDyS1pUI|{Gygs}Ud0lvG^0x5y`|% z!xNML2v1FZ8J?c}B0L-UV|Xs|zu<-8I^UU?ZwvCj;T=6boa)EztnD37!FZaud@$%coLM^?&eg&Rj zTjcRv37&+!0z55T=ldh(o7LoHzF9EeBF1IDby24Td2M)k^49Rmd>wNA z{F)}@!;x=6J`COwuJb)t)~#1hlb88!#C(Stm-$XXosr~|;2)EJ0iQy?3_hD&KW~0M z`4;4tk$(qYL4Fjz5w7#q&vV~p@-pB3nD6(-WxnT8=O^;B@N?ve`nvVJKpqc%om@XZ z=oWca^>#|Idf{ktA@hLEp?e?)!+K92kld>Z*V_zdzh z@CD>|;fu*{!&kv|z85gxEhaDX9gq1QG%oY~7j=%3zkr`0PutHOPp8RK!!MENfnOuf z1;0aH7XE;|4EzOL=Q|qjBaOGi^`)<;rIR-)1Y26;GT%2*Cj)sjJO_C%cpmcZ@FL{X z;3dc>!ON4chgT+F4Sxg9^KEGIvVZenzHN=me2<|{2l7MkcggR;dz0US4vfp z1zLETO_}Apk;CsoNz>ko>3;&+H z8~ij}=ewn{o9|_h|4Vf~K%H1S-SzZ5JP4kcd_FuG`CNE<^40K6eMGc4sT9=5#E~oJiIgcU3fS0+wi{RvEO&=K7c$X zd<0zQ8v{R|`q<=UzO69ddB$bFX;Eh(d2;xdC+`j457+(|qW|wb z{wLL$g*tc0KY>3X-vWP5z6l=Z>&WB$5Ih0-0eA}XU*T!U&%&eNI^Xk{Z$6J#r#iP$ zrzZIg_*>*j2Dte&CQk%!L!KG_HhD&Pck-g}UgU-0gWx*frg)usl*boRohqoaguDWL z6?rH4I`a1L?c`(OyU0hu55cwnU(x?hCNHu;h=R32yTmMrYe@JyEpw1KWaqt+sT|IrAuoxbPd=dO5@{RBmuO_b#-$FhbzJvTj__uKFzsT#M@OB)o z&!?uM{|m;Y|JA5-g?uIa7Wo1AJ@WnVr{pK$|B(L-kGCfj-t_pt0Z&B!2Rt=AXg&P@ z9XesYSxjE`*CNcfka3ys->6fJ{4u;NdGf)ozl!8Z;nCz#@Hfdb!yAzohc_cH3V$0O z1M}^M`M&G%aa5-Y>P#fB1fN0P96pD0P#$yKlXEAsE*5t1jcRrqcbP4Bs z$S=chktcrD<>T*jU!_m!|3~zn!g$QUpOkjF0>&j@O}-gyC5;O;eJ#wP`o?9x%jHVJ z*21{tCzK6ysK0T^$B*m$L*tTPh5Tl6ef{||dHRa3PWo@$SKTiy;nm1LuIzGMjmHWo z%5kVax&B_k@y4akN_c#-)VR#+6!!ZX*{I!W%1nQoa9=+2)X`V&~oJElDIn2N!GZzo_ zCf9L?l572On>$scA8{>Agk6g$7o_v2EH|{y|UsF53Nv{1oA=iFlA9UB#{i~mQm5f~b z$w|A=lrld5?Ux+}Q@(Gq~J6$@#ozJkj91e#m{* z{j2Mi$+$e;o`T19S;@!4a~YTOe*v6Vix`(Wn~*O-z6M^#xYW53<@&2;Tx^3{2p>W z-j0#a&h7Fy$&=u5#Ur?m8-8POaFry7-Sv3Cr!y|={2u0;k-RfJt8rNeJ)ZL$mpYq~ zFHF7yUc$K4(c`(IajEkh`Ksi%;nBvWj;>n+<5H*gP&fZ3K{@ir)-E40;kf`HmM4(&58 z=Z6uY7FNyWs zXI%FCAne}*%x~9x3|YN#-+|ouiK6^uu~!+ z=atC+fLAvzb@cOU8yc5!M`PSB#-)DA;qDvV$Bi-h zv=HmCiF_mcm~pA2`|*@0Vdj8C1 zT-IkF)*&DHPIw{Xvi^GhEMq*pACWIlehFU1xYU{8+72}!*Yjt0<5IuK2zP~EH} z;6XIJA2(th=8|84?>2R$pWPW<{lk>k*HJH0UeBL5jZ2>$(9d1+w(!4<%eXq<&~Z1u z-mXU?ADetIJb`hkqxZ9^j7vZ3kWWYcB|JBI?2)dISIAEy{~GyWen$YeHI+${4MhQ@FvEkPCnFm*SORfhJ&)q>U?Tk>XgTcX*PLL_;T_o@UO_n!`B*@agX4*-2x9NeEffb$5;EwE8=37h@yI77 z{{WtjJmXkbHzRo}cuwOoZYQiyLE|#+o5&X>uK+Izm#fDN{tQm##;t2SK|sS$znyW( zk4WzF9~h4vPz>b98khVMJUG!7mxa996-@~}%lgT%OZGds1wJF0Knrd9~ z6_K9@*Za*^=1 zT+U--a=3g~`2YH>PpxVm4a8kag-k^hu@Gkgv_h=y<1 zYp^~W$*;qIGj(L#8d==DZjIU4}v@J^m-vIf6QO$Pd9EQk`n3 zAM1o0N5@SMe}%jlyb?TNa5Y)Ct#UFBwp!%6f18kBO7HR=$n|pu-zVRNgK;=q`#dfU z1lugi>+!$Xxa_ZUScm20r{F7%%e?e;&Mn5J&NJk9kUxO$F)nrV_&I7^>f{~o`ae#d z6@J3F)Y0|4U|i}nM*a$U9r$(QQfE7Erw@%woezj7yzksMFE7)M-1xeWNRRLwFCk3@PV|<9qD|teAK6nrfuk&H_S={5bs7`*=sY{*@-jw_`cuVrq@D6b8 z=Wp~g+_Re^QxTkGFc{tJAyw+L8~)?V_7;nOCOC zF5i>U>7N6292D)JcKoo2!jW zoj;IYPksr$10F=f=iyj5e!ew%>3<6PKWSX*$D0zKR_F|Q9QZBrwD5c6so_t_bHo23 z&k2up#*MG{YuaaGB4W5a-3Otu_S)WB%pJK*k+(yWkB(D#zNd7Lo zDtT9UO?Xf`yuadOe|0ABnbWOHZ&OG5T!%h~8kastqW*C5;qdX~GvJfRr@$AH?}jfW z-vnP_-1fP_xb*o4@>|HS!S|3qhVLi;3;vyP8FwGn=d5uVH~v(&p6AJ9!>_`FXn4Qu z#`?!Q>#nCh4f`uOT#wtIFm6`kGHy21&qAwK_&uv`lv`79G z^49Po@E{sqpV--5e+|he{--o5twgX<1*jr z=%)esRCrV4vTjmIJ>#+t?W5c} zr2Wl()jprVOOWTu>T-49vTpMD^KoA1t;zNA|2yRR_`g57KAs;zUNpI@KbL%RI_F=J z>$qFUb=+^rb=>3R50be0*U8i4dBj6$BXr+{nS_F3*pmq-JyaxQbak-z}8T^s$zHzBvG>h{W z#-;xIs1xIo`@Yd$ES#sSk*NjX3_@BCdZji@>-!X3Y%Twc0rvUQ*kmrWS zy6nc0>BkKI9KiadgX{f;?w9PwrG5j{$xU7xUV!S4Mg8XFo8a$}Pr!L&sHrdeYo#A~9 zakwmt?8hlsw_D^p;Ez3?^op!%@O&fqBl9|m`YFkOhG!(d29F}Y0?$kS7+!$<0sK|+ zBs0S8h02g8f>$BW41b;cWq2*PuG=?hUHwibFSoCXI6iw(zVI6^KgHx_-O8Z;C*(!p zvyDrAy?hvyS`|_;&Jb@Ll8^ z;NKXx;~q0E~N{CD!uEVqCEB!7zhUAV5>1FT!3Ywmh-+{%7A z5YJuCNv`LOBIJ4=C`Yc3-=fL&abqL${&@b?lU&CgOs?aOA=h!Ilk2z($q&iIgKY&| z*Jn*8=X)uy&m)c*m;IX+>;D6JdiZ(rH{h4atHA#-Zf|!FjLW$1A^(`X8~nL(siV(} zM-E?#BworOsL8tB{|7 z*MJAn@cH2rJP&PY@=||HRyY67#-)DD+0MI>KS%w3RR1K7lVK(==Yit#;3(K88<+Zd zP=7jkF8Dn1lJJG(CE!bq+i_PLmvO5jzn;7*dw-O zZwJ2s52E4ybr$RSH+c!{#~gozmo@x$BN=i8yewSLV+~v^RGsq2^?0DX-mW_vm;Q&N z&u-)c;RDH+!-tYDhL12V$Dy9zCK{J<44F%ajCNQ zI#tL&hu0$C0Iy5F4&Ib}AG{^`9(X(Bw$FErOP@a?--G-({C)C^@WJHg;iHVpxNl>9 zrW%)V?<4;y`EB@Icn}Tm-x%1x8_7GsFOaW=KQZ;?c-xuQ9Um!fL>?!4`^`+Q$7eor zy1^?lW>7H{PG_dI^IsvLAKal;k>Y6!|0E9~CCoam$kHde$I6 zn8EeYfL!}*LtYZcTQ~B!xm}(2$xEbgK8k!Ae*QI;{50w>Bp)8j)mZ`8+fm)5&i7JY z*Ws9Pxt%7P>+(O4$AzCXZtpKH8kag%kiSY^8h*pL)X{bR%ed6(jr`x_UE%*2mpZy% z65Mq2kmE<{EJQvD`3!gp<5EZWV z$4NEgQYY0sH_vGDWboSXAR0ceuEFup+T^9a9&cTZOZ_6K^DcQ_cps|&2kMV8d8x0* z?KI<3zaHw$Ag=?TNA(Y){zh^g_Xc@s{CqRsEw@g=kf8*@pD6i9uq8JxcU|R?kAmy@ zXK&(gJd}&_YjC?OM|r({)i5se?TC5RB5wt+XI$1T8O{$aj7y#A$hRS%2=8cI>SW61 z`tL_xCXVxu;6XHeoV<w!j=Z(vHZbJUCaiNOH$G`3Vq3b*q_ZKh0 zwI9SoIVrE}T-dm*&rYmEaq^Au(#GvNS2Zqm{zSe8`Bivr<93}}k?T6Y3)gvVz{KW| zpMY;Rj-?EL=YVlp=eSZZ*v=c5Jnlw9cj3CuRk7cnn!MC$BYy>3@;mOU=5?Jj8khA+ zGvDQ+$P>eJ8khCa-!DcsubHF}vmHvAUVS%dnIO!D63@;BkVsQ%k} zJa~Kt)#-*hbI7~G7gC)l)L&;@&I5QD8~Vo7k>k8^9yhU{$@TVrk-W3)h+w-%uK9n+ z3+HwD`1jmbxw`Da!ZqFHEO0*0w2y?F6)qTK{y`TOdbz@fV>&}2zhn*S@J{h z^W;0>SB%TN^!er;QBJDj+(r* z7!~dEmnpBm|KzrDS?9tFUH(3K4)|l^vcFnnbNN^g+}D6Ya>{5^$z4utT>2@Ae)1TX zc{RbjiW-;vTgbmbz8lAXN4TuN^xtD)@Q+~YO5Oq9hkOydKlx1fF!B@dk>p3J`)`jvi;$0lzhzvey3Vy1>S{b@ zU>lJiV_foIB0tZ#6`hb-p7o?i1tEXGsYJ zTg<=QSIvKdd~WhJ@XB!QzZAx;PF@sVhrAj5E%FBNws7s|r_`>$;l`!^%IJTBaarf9 z$gd?2;c@j(aP5B}#{Gr7AN&IOWcU^GiSS!+?Y}z4eeCh1kKFvUpT($?l6(<7Bl%W% z6!~U&Uh>260^|qbuaf@?FGKzdyc%5RJ1mWxPaDd|SnT|5^1o51J9z=*dy!{{4Z;Pc66z*icV^X)7gpPP)!`F0EP+sN0z_rY~Nyd+%Lq3+8r z-+gmlFxz9gKPiQ@C0=)c_@>c*RND(J?dN} zUk$%O{uBH*`7!uo@<;GzVw z76a#jQpV-{)){rmlD`eFMm`)KO+FZ2pZqg;Bl0=$HgN5~2Kw)6^3s1Q^xx08^uHN( z29mFbk0AdMKAQYH_+;{1@ag2&;q%DjFL(QQA$e^0m*m;utH`s!H^X^-_IUhPs#6wq zE|Qml|4DT^WBva!d0GD)SpPUrBai1dP$vO-G(0I>`~MvEa~qfYsV%5q+_;>dKand2 zTRHNN;f=}1z}t}P{|6jMJ^=X<&fuK-wC+hZ??iZoF;DqzeIKN zpw3N`m-YV<&tIMxm*amJ>O3bO2#@hhx^?fvw{_yeWlGY26^xt7xUBzi?3WV8g^sTX z{tC9broQyE0OK|wp9^nEz8&6{d^5Z&`6>9j<4A*t|6Z6_Z{v3XS zJnAdA4tJ^k%U?KuNS+2Bm8Kvcti5t$oKa6 zRPvt4ulD#c^5ttC{6@YOj+bZt*Z&209GOtC>AbGPGmvY(5c#Kg0jsLMfFzHRgR`;)|Ne!nyqY@EMj+~#x1oyvdY z>l>GRw>9Bds2llQ%yi@}9`o^!PjEbC4h8 z@sG*1{%p9MA94mwEzjxtTkP@Go;o`yKL>Tb_4rSoI!`=a0Ot=~H~sm}T#rBZc(Zts z>#uc2lXqO`avRAt{}*|0+6RDJwBN{-V#@5iN_C-7s9w_$g9C0lDGNF)lca9l0Sj3B+tImjklXT5Bw)`?dLgpn+&c_zNC@;tM?LY_YZ1beHad4_8sK2Q0EHyg+^{Z`UWknqn;yq_}K zSAzdTJ_MdQMPxsry6$pYk1rt4jQnx(Ch+)p;Hc}+4c^M*Q^>V`<5ZD-Za|%~sUuzU zz^fW2QT|_Wc?2CA>@7F ztI1z}#a;it$Ft#lpzEpmX5?k^yE^ZYH-V2QZvmf6z8$`ad^7yG$8V4iDB$|}o4go2 zVaCXHQ_n^ojeIeWzd_y@`S#?Uu+D?X+ry`Od_DPO?8hXTBKw~X&rd!NUY&d^ybJkW z_$cyZwcU8zJbstFIPx(vNA`I^&z~M2@A1h||6S)qwn*>U#9jV4N2F(f>+=9Tp4BVm z{_lLwJdwV+nY-MOJYI9>W61UW{0qo4Bfo`Q^T$1Y&Et>RTe*JH<&EtBJ@^~sf5H2b zXK3xNzl?l6{I16{;5gECzJz=w^84_fOJR!$u)nHeAFbDkBjq})=$^bd1dlgot*b1zcbVMY>)p+UVgUAm&N%>$88L6 zL$3Avljoa-aXr3*ybkjFJ${OO5c1DF{!&3VzV_eYQ+K(P$NQ2mp5gL8lW&DTA=mmz z3q_7Q7vmQ7cop(J$hY)(Px4#HPxJU!o4i+F8@k?w4d|jMI-a-WymY{ce!@t15szT$M=yhM4jv8lgGOHiHb$`^K6W} zT!8#-cpdV1<6OQwc{BK6@?7u<9-r&+739TGXNSjsCNGQpZSq1xT>puSN3O$gcn0#? z@K-$kn#XIBH%Fc39`8f`Hu4{n_Z;l{UO~PWzKwhm{IJK*c>Fr~T-15$@f0N@*K-N- z`N`w=ak-l0jo?kmbHlrMe1ONtkQYatSsq_YUIzJN^Gae$VAvlE=Y$eh_&x_&D+$@Yx>!(&Jmni=fV7k6$7$gZw|_k0-c!JX@(vkh^=gX8MuR7V~8k5(Z>bwW}$akEN z_4rKkbW>dZEAleaoF60a2ERf6<#?A*R>pnR$7u<$zp{|)=f@TDczKV%Nqz<6w(@vC z@>|GHCm+%U^YwU^*COZjLsxgX4Eavfi6-9zZ$dz&QhOZ-E0^dX46aJ&e z|0ExU{Bw_|DjT^DF)aN$@TYE4e|J7^6^bvogL(x;3+D(@9X`SdM%I7CvV=tU4J$Cebm22uJtEX z{_k&Fyl{JwC+aYdwC<yw{? z_anarALa4swN3+G;jWQKh?<(qW=!$$uhd@5B2yb3NJuilBg2J+*`d%oH$`C^Da+pu0SfT=Q2w z-nVgN9nFt09xI4cPUdp6J-*iC2R(k?<6&~N~ z@yi~6>ha`we8=<6M)FOlbCNt2#(nPb3~eI&)O=;~ zuTiItaeI4dYg`^jX}+h&2f-5tS$Utf{y*Q5p8PcO-_Xw@kFO;^jrRk5teUHC@^SE)_hQeF01mVY@T0b@UG`yaei+q16cm0YUZ|Cu$8;==`t@)WA{~XTyep8SX870}NF~{j2$5QP?#X{n{s47W8MpmxH!l5X{;w;Gc3y?x zx}GgoyX))E<=9{Mwj}*Zr=K+h6hI%aUiu z^Qma#wx8z4WqmZ?&Ex&y+|MviehPU9^fTYM?PrZ~=|}T>Jbo0;{haXRuaVC}KM#!C ze&TeC++UhccpCS@+2G*L+rw=ZAAYB|Q1+=n6g+D~LylMV|$Nz-u zI_TrNhn{?_-jValRMK5e;qk2G`u^kma2~gWCtsDk6vlna_I=fjN5*W8kc@F|EtIUfO9|hJo!++$o+Bw{UkDO z`$=b9`q6w|j~9n?Kjl36+T{Aa-sV(CACGnNcyCXg=^o$U@$Wo-7OwNset!4(eNUZK z{Ug_3=UbHg&5ABp&bZw#HI2)D(R_1{cZ6&I`Z%hGCqImQV`bOR$Hr|xpBa~aG{45< z+u_{LH=g`Y(C6C|p_;Waq8|QsDKfV2G{dD9ps<>QExYp6*p@_%JdAz2l{s529 zCSQntmKnGEWvg-7FPcB>@e^>JmmVj-dGdG2&!eB`#%(_@4TxN4&1dm=J~;PN%#*K5 z-n6P4uO8LW{ngUrojrBNd3+K1uNZf&$9H@D2%P8pvnPL*ymmD=-}}bx`o|s^x&E3@ z?eQo$_mkI?FGKzT`gz^B?Wd`6IX*St)#H8P+|N)?{$ui))!qDO8n^u{F)saRev`-d zz`38pp8RR@rRe91aof*5lRP{8Ie9hs%OAMw{jdM{?(&-+A50$g zrptff@dqA%Wmx36QE}Ym<{qEr@oOH>{h_O;^V0ggJ^r=F?~r##pQVOJ*53;MhP-Yq zm%HQfq9Y>fXuczP#bhow%H!)j9%p1^eXVoEqJI!VSw_M@K7 zxcuJQgRx!iRgb?(ejNF?$+gY^a?MXN9y1v768c=_@uTD=lDIy9B|o0f`E!rw8}Gg! zOf~$z6wNpB_;8OeAm5$H)%}M2BK$OYH0B#)LS#SHkWXVgykBCu+$-eA;T6db!rK{_ zb$*ET*-JhEkuoOyR5&5gFTNYUy?i(>QpB$ z0&h%S65hk(qsV{B>H3^W-UGhJSUP~*?;UD?s5t8e^I}x$KN7Pi~4VqXM>LokSEOTd?|UGw9dcxc=k^s`_z0rj}IV!EuFjmIP$mP zOUYZqe;|JZe?rcxJZ=lY0a;<-g`~~v2$sfaG%!=$^JsbI&OfFZ; z<9$6ohdf3bjDezdcBm0~O&r5z1eU|e0>*SY_Z{+b#4GLbaNu-TQiHhT%3F@yeauE_%QN6;7iG$qyLQ_|Hk7#ktad@OCEnfo)Y=wb0gtZ^)#H6UzR2U>lXpb@$K>zBQ_qX+N4+TdPsrCNzXR_?z9yEd`-#WDCU@yj=%&Zh z&X4S~O-y(BEssy}_)+pxsB@EC>pvl%hJ3uwBKw&Sf0=v@JQw*rcv14XShq^#Pm!-r zUIzJA2YTOOKBrpO1OX z_4rnD{Tzq0XBg??SGhkNkh7-F?6W~3^h(u^%Hj!Y-h!D$!?_&oRfeK&VsZ~t;K0eIkC6eGkL2Y^nDdkN7w+l3qcd6@P zj=R6kvn$*TZ^_7YoJT$F;TOnpe)ZqvIKO(ku3N0nzR?nxNxolK5~ zzxDgb*X#CeKKUv2N6FF8%_{N_?vdpRlV{#5UQ2#*iueoUH`H6m15+jbD0%gL;-|>3 zslQK-^QD)_YqO-B>*P59IqEilOPH@>jFPkZGZWs&1~v`^jI|9re#W{0w=o z#{Y{P?;RQ>$9sXsd`6ZJ>!X*pz{-5jQc%RS6k;%)2_s>is|Hi`-_kf2#NIpFv@hi!3pK}p8?sMKu zj{91-ljFX@7s+uyUJLmXOQk(W$#MSw*W|daafTefgFYmW6-fCL(`AhB348&0pT-xH z-};K=kCCI_)t%&c|Mos|yr;T@ynC&bf0Dd!hxl3Y)$7DZjgm2zt4e(;`GPWun@^ro zF1~_%tNI4=6B{KyMm}172l*oPm&nmy!|UWt8h?x&{e5(k<9Y1Al253TcJ`A8)E)hu zf%Vp)o=N`L7Aa>AIr`h;{-$5i_;nPIe!e2)?R8TAR`PS|&yydomw4RAg!T`r|AgYv z@6RdnhRssWpUCkX??rO-fAlGNX;jJ?slU(Ao+kB4mj{8;{$XlP5diRp!e$zJc#aku*SL9{te;`M{br;D?zA5E=N{)Wk(#Ohttj{}l zN%~&$fchMA^i#8xyyx3eP9b@}I`;#P`=Yi}eAXT*=SA{7^%nBiz9aF+$k9(wH#zzV zI`83E$*?_llfVxAM3O6Wl7&pey3iS%_VQp?dl40^p{#rKJjZ(em(gk-xuFa zj`!^!B+oCD_+#Yj)O*M~)juHrU6GVC;Nj!+#1_`iWsQG;9Q~U=NeTn?UkHpuK&uSIlNRIQ9+z)$K zyTtFK_{<-Rzd>HDe#*nolXq!+Kly7 zdgs~&F~dVLa($ut67oXz$H?o{^T}UO*TYA*{8!ZVu+Q}t_4QQFG4*0{oPR7Oe^=up zGsQI2Hjn`K3@HKneF;yb-gXlb)4VS z&9v*YH2w!v4$gb(pRs!$Tf>}%dLGv{+ZKU-3M!wI2zb+5l0Lq3$P>TMK4CdWtJ8M0 zoE+D|wRkr^sO?8PZPNb3eH8CgIk?_ETGuz?@%%*|Ii8o<%|1d3?jc7%CIjTSuAQsx zMZNJ4!W7j=j{D4Uo)+;qe)Z{jNI3e@h>+txnND&%XOWgB%YkyxuSy;{uAA49(mqUycQhyXX1Pv9M^@nQ9Q2C9wJA76W!#vZkwj(i%>qU7i5#;`@Do4 z*IR?+xc{x49QS<G9Iv z$b;(F$Z_12smB#)501ME$Z>oXA;)o4J2{S*t|WNkc0O&qEFbE{ej%H@;HbncArGpr zC9hU*B=1u1An#Xq{5ACzu~4xY$D%SW!&EdJ3Hf8;x|rkN5Q>Eyf3bP%kUv^w6E-}@ zpOc)-HA$OCLNs9u@YhyG$~T20^=k1FOsGFnRT7FYMyp(xx=LzdISWjbo0^xHK&>0X z#kHkH<&{rXnfAt~L&e3>@D>ywCsSdhye4Ls!?sl8qM^#taI!@!OaC`8QeGKG;bsM3 z(sEHeT~bw15w0{Vtg4B^QhY-HEM2shhwZK^;EGI?9grPl=Q2rWnUSqWHKQ-ct%oJbUTZAdRTy@v(ikZTK~R_vPP=ED4}-!+g%{)$NCQ$vu)wef7%6u zX3*WHB+UP4H{b~~k*fYCy-olZH}hsnhJp`e z%ztl4WBi5*OO-#U`EA=02c$9XG&57>FY~A$?Z@~%&7W9@ovzdT1%t_RY+Z@NZ%iW9 z`pcd#E$loeIkHTgT}P-FpWmO2ahZmk?mp3p^abYFe|qHq`(=rI_lPZRXyE)GnOUjY ze`T!vMV*aGUfX_qODwnlrZFzl<~aOa*&+mNB4Oaz>t zfn27|a!Kniqc0}Mjxms`{t?ee{h4;5&0y=FWd3pepYy0c|Bx*I>76$B(7^Ri^{C&s zSL*N84Xdr+?yIXC%)+{TMIy$iIJ;`2QSbs>Dn*6Cg|9-tup-w)A_~$>x zWI}%Y{o3|$-L~xRO|tx5Hj^2qnSXv0%=zs;MIvp~(9pO?^!(@{vs1Rd#KG>KQ{^vf MmWFSk43u>K3;LEe(*OVf diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/config.h b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/config.h index 4c8a504a0..3efce29bb 100644 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/config.h +++ b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/config.h @@ -284,7 +284,7 @@ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the `yaml' library (-lyaml). */ -/* #undef HAVE_LIBYAML */ +#define HAVE_LIBYAML 1 /* Define to 1 if you have the header file. */ #define HAVE_LIMITS_H 1 @@ -474,7 +474,7 @@ /* #undef PACKAGE_PACKAGER_VERSION */ /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "Liblouis 3.26.0" +#define PACKAGE_STRING "Liblouis 3.31.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "liblouis" @@ -483,7 +483,7 @@ #define PACKAGE_URL "http://www.liblouis.io" /* Define to the version of this package. */ -#define PACKAGE_VERSION "3.26.0" +#define PACKAGE_VERSION "3.31.0" /* Define to the type that is the result of default argument promotions of type mode_t. */ @@ -620,7 +620,7 @@ /* Version number of package */ -#define VERSION "3.26.0" +#define VERSION "3.31.0" /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/internal.h b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/internal.h index bf20c6375..1ac4b6c35 100644 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/internal.h +++ b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/internal.h @@ -219,6 +219,8 @@ typedef struct { widechar value; TranslationTableOffset basechar; TranslationTableOffset linked; + int ruleIndex; /** sequence number of rule within table */ + int finalized; } TranslationTableCharacter; typedef enum { /* Op codes */ @@ -359,9 +361,10 @@ typedef enum { /* Op codes */ typedef struct { const char *sourceFile; int sourceLine; - TranslationTableOffset charsnext; /** next chars entry */ - TranslationTableOffset dotsnext; /** next dots entry */ - TranslationTableCharacterAttributes after; /** character types which must follow */ + int index; /** sequence number of rule within table */ + TranslationTableOffset charsnext; /** next chars entry */ + TranslationTableOffset dotsnext; /** next dots entry */ + TranslationTableCharacterAttributes after; /** character types which must follow */ TranslationTableCharacterAttributes before; /** character types which must precede */ TranslationTableOffset patterns; /** before and after patterns */ TranslationTableOpcode opcode; /** rule for testing validity of replacement */ @@ -439,6 +442,7 @@ typedef struct { /* translation table */ faster) */ int usesAttributeOrClass; /* 1 = attribute, 2 = class */ char *sourceFiles[MAX_SOURCE_FILES + 1]; + int ruleCounter; /* needed for translation or other api functions */ int finalized; diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/liblouis.la b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/liblouis.la deleted file mode 100644 index cd17157f9..000000000 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/liblouis.la +++ /dev/null @@ -1,41 +0,0 @@ -# liblouis.la - a libtool library file -# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-5 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='liblouis.so.20' - -# Names of this library. -library_names='liblouis.so.20.0.14 liblouis.so.20 liblouis.so' - -# The name of the static archive. -old_library='liblouis.a' - -# Linker flags that cannot go in dependency_libs. -inherited_linker_flags='' - -# Libraries that this one depends upon. -dependency_libs='' - -# Names of additional weak libraries provided by this library -weak_library_names='' - -# Version information for liblouis. -current=20 -age=0 -revision=14 - -# Is this an already installed library? -installed=no - -# Should we warn about portability when linking against -modules? -shouldnotlink=no - -# Files to dlopen/dlpreopen -dlopen='' -dlpreopen='' - -# Directory that this library needs to be installed in: -libdir='/usr/local/lib' diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/logging.lo b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/logging.lo deleted file mode 100644 index 724ef26f0..000000000 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/logging.lo +++ /dev/null @@ -1,12 +0,0 @@ -# logging.lo - a libtool object file -# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-5 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/logging.o' - -# Name of the non-PIC object -non_pic_object='logging.o' - diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/logging.o b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/logging.o deleted file mode 100644 index bbbf3a36a126d64521a4ab9a8ef7bf8e4ca3e45b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18160 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 vuW&!c`VG{+>r%Jh1p*gF{m2 diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.c b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.c index 4c7c67fb7..f7ebab06a 100644 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.c +++ b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.c @@ -180,7 +180,6 @@ _lou_backTranslate(const char *tableList, const char *displayTableList, int maxAppliedRules; int appliedRulesCount; int k; - int goodTrans = 1; int idx; if (tableList == NULL || inbuf == NULL || inlen == NULL || outbuf == NULL || outlen == NULL) @@ -251,21 +250,26 @@ _lou_backTranslate(const char *tableList, const char *displayTableList, int realInlen; switch (currentPass) { case 1: - goodTrans = backTranslateString(table, mode, currentPass, &input, &output, - spacebuf, passPosMapping, &realInlen, &cursorPosition, &cursorStatus, - appliedRules, &appliedRulesCount, maxAppliedRules); + if (!backTranslateString(table, mode, currentPass, &input, &output, spacebuf, + passPosMapping, &realInlen, &cursorPosition, &cursorStatus, + appliedRules, &appliedRulesCount, maxAppliedRules)) + return 0; break; case 0: - goodTrans = makeCorrections(table, mode, currentPass, &input, &output, - passPosMapping, &realInlen, &cursorPosition, &cursorStatus, - appliedRules, &appliedRulesCount, maxAppliedRules); + if (!makeCorrections(table, mode, currentPass, &input, &output, + passPosMapping, &realInlen, &cursorPosition, &cursorStatus, + appliedRules, &appliedRulesCount, maxAppliedRules)) + return 0; break; default: - goodTrans = translatePass(table, mode, currentPass, &input, &output, - passPosMapping, &realInlen, &cursorPosition, &cursorStatus, - appliedRules, &appliedRulesCount, maxAppliedRules); + if (!translatePass(table, mode, currentPass, &input, &output, passPosMapping, + &realInlen, &cursorPosition, &cursorStatus, appliedRules, + &appliedRulesCount, maxAppliedRules)) + return 0; break; } + + currentPass--; passPosMapping[realInlen] = output.length; if (passPosMapping == posMapping) { passPosMapping = posMapping2; @@ -299,8 +303,7 @@ _lou_backTranslate(const char *tableList, const char *displayTableList, } } } - currentPass--; - if (currentPass >= lastPass && goodTrans) { + if (currentPass >= lastPass) { releaseStringBuffer(input.bufferIndex); input = (InString){ .chars = output.chars, .length = output.length, @@ -314,33 +317,31 @@ _lou_backTranslate(const char *tableList, const char *displayTableList, } break; } - if (goodTrans) { - for (k = 0; k < output.length; k++) outbuf[k] = output.chars[k]; - *outlen = output.length; - if (inputPos != NULL) { - int inpos = -1; - int outpos = -1; - for (k = 0; k < *inlen; k++) - if (posMapping[k] > outpos) { - while (outpos < posMapping[k]) { - if (outpos >= 0 && outpos < *outlen) - inputPos[outpos] = inpos < 0 ? 0 : inpos; - outpos++; - } - inpos = k; + for (k = 0; k < output.length; k++) outbuf[k] = output.chars[k]; + *outlen = output.length; + if (inputPos != NULL) { + int inpos = -1; + int outpos = -1; + for (k = 0; k < *inlen; k++) + if (posMapping[k] > outpos) { + while (outpos < posMapping[k]) { + if (outpos >= 0 && outpos < *outlen) + inputPos[outpos] = inpos < 0 ? 0 : inpos; + outpos++; } - if (outpos < 0) outpos = 0; - while (outpos < *outlen) inputPos[outpos++] = inpos; - } - if (outputPos != NULL) { - for (k = 0; k < *inlen; k++) - if (posMapping[k] < 0) - outputPos[k] = 0; - else if (posMapping[k] > *outlen - 1) - outputPos[k] = *outlen - 1; - else - outputPos[k] = posMapping[k]; - } + inpos = k; + } + if (outpos < 0) outpos = 0; + while (outpos < *outlen) inputPos[outpos++] = inpos; + } + if (outputPos != NULL) { + for (k = 0; k < *inlen; k++) + if (posMapping[k] < 0) + outputPos[k] = 0; + else if (posMapping[k] > *outlen - 1) + outputPos[k] = *outlen - 1; + else + outputPos[k] = posMapping[k]; } if (cursorPos != NULL && *cursorPos != -1) { if (outputPos != NULL) @@ -349,7 +350,7 @@ _lou_backTranslate(const char *tableList, const char *displayTableList, *cursorPos = cursorPosition; } if (rulesLen != NULL) *rulesLen = appliedRulesCount; - return goodTrans; + return 1; } static TranslationTableCharacter * @@ -1321,11 +1322,10 @@ back_swapTest(const TranslationTableHeader *table, const InString *input, int *p for (curTest = 0; curTest < swapRule->charslen; curTest++) { if (input->chars[curSrc] != swapRule->charsdots[curTest]) break; } - if (curTest < swapRule->charslen) - if (curTest < swapRule->charslen) { - *pos = curSrc; - return 1; - } + if (curTest < swapRule->charslen) { + *pos = curSrc; + return 1; + } curSrc++; curLen++; } diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.lo b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.lo deleted file mode 100644 index 3d20f3483..000000000 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.lo +++ /dev/null @@ -1,12 +0,0 @@ -# lou_backTranslateString.lo - a libtool object file -# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-5 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/lou_backTranslateString.o' - -# Name of the non-PIC object -non_pic_object='lou_backTranslateString.o' - diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.o b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_backTranslateString.o deleted file mode 100644 index 15c1d3a40a0ba8e0b8d0de6b7f14628c0192200b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156264 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 GzyAktvqfA0 diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.c b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.c index a2a2da393..2415f01e8 100644 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.c +++ b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.c @@ -478,8 +478,10 @@ swapReplace(int start, int end, const TranslationTableHeader *table, int d = output->length + l; if (d > output->maxlength) return 0; while (--d >= output->length) posMapping[d] = p; - memcpy(&output->chars[output->length], &replacements[k + 1], - l * sizeof(*output->chars)); + // if length is negative fail + int length = l * sizeof(*output->chars); + if (length < 0) return 0; + memcpy(&output->chars[output->length], &replacements[k + 1], length); output->length += l; } } @@ -605,7 +607,7 @@ doPassSearch(const TranslationTableHeader *table, const InString *input, *searchPos = pos; while (*searchIC < transRule->dotslen) { int itsTrue = 1; // whether we have a match or not - if (*searchPos > input->length) return 0; + if (*searchPos >= input->length) return 0; switch (passInstructions[*searchIC]) { case pass_lookback: *searchPos -= passInstructions[*searchIC + 1]; @@ -753,7 +755,9 @@ passDoTest(const TranslationTableHeader *table, int pos, const InString *input, *passCharDots = 1; while (*passIC < transRule->dotslen) { int itsTrue = 1; // whether we have a match or not - if (pos > input->length) return 0; + // check if `pos` is within the input string, + // maybe a unsigned type would be better to omit negative values + if (pos > input->length || pos < 0) return 0; switch ((*passInstructions)[*passIC]) { case pass_first: if (pos != 0) itsTrue = 0; @@ -880,7 +884,8 @@ passDoTest(const TranslationTableHeader *table, int pos, const InString *input, startReplace = startMatch; endReplace = endMatch; } - if (startReplace < startMatch) + // Check whetehr endReplace != -1 while startReplace! = -1 + if (startReplace < startMatch || endReplace == -1) return 0; else { *match = (PassRuleMatch){ .startMatch = startMatch, @@ -2294,9 +2299,6 @@ undefinedCharacter(widechar c, const TranslationTableHeader *table, int pos, for (unsigned int k = 0; k < length; k += 1) { dots[k] = 0; - // looking in otherRules and not definitionRule because definitionRule gives us - // the last occurence of a character definition rule and we are interested in - // the first TranslationTableOffset offset = getChar(text[k], table)->otherRules; while (offset) { const TranslationTableRule *r = @@ -2319,14 +2321,12 @@ putCharacter(widechar character, const TranslationTableHeader *table, int pos, const InString *input, OutString *output, int *posMapping, int *cursorPosition, int *cursorStatus, int mode) { /* Insert the dots equivalent of a character into the output buffer */ - TranslationTableOffset offset; TranslationTableCharacter *chardef = getChar(character, table); - if (chardef->basechar) + if (!chardef->definitionRule && chardef->basechar) chardef = (TranslationTableCharacter *)&table->ruleArea[chardef->basechar]; - offset = chardef->definitionRule; - if (offset) { + if (chardef->definitionRule) { const TranslationTableRule *rule = - (TranslationTableRule *)&table->ruleArea[offset]; + (TranslationTableRule *)&table->ruleArea[chardef->definitionRule]; return for_updatePositions(&rule->charsdots[1], 1, rule->dotslen, 0, pos, input, output, posMapping, cursorPosition, cursorStatus); } @@ -2878,12 +2878,11 @@ convertToPassage(const int pass_start, const int pass_end, const int word_start, const TranslationTableOffset *emphRule = table->emphRules[class->rule]; const TranslationTableRule *indicRule; - for (i = pass_start; i <= pass_end; i++) - if (wordBuffer[i] & WORD_WHOLE) { - buffer[i].symbol &= ~class->value; - buffer[i].word &= ~class->value; - wordBuffer[i] &= ~WORD_WHOLE; - } + for (i = pass_start; i <= pass_end; i++) { + buffer[i].symbol &= ~class->value; + buffer[i].word &= ~class->value; + wordBuffer[i] &= ~WORD_WHOLE; + } buffer[pass_start].begin |= class->value; if (brailleIndicatorDefined(emphRule[endOffset], table, &indicRule) || @@ -2912,68 +2911,95 @@ resolveEmphasisPassages(EmphasisInfo *buffer, const EmphasisClass *class, const TranslationTableHeader *table, const InString *input, unsigned int *wordBuffer) { const TranslationTableOffset *emphRule = table->emphRules[class->rule]; - unsigned int word_cnt = 0; - int pass_start = -1, pass_end = -1, word_start = -1, in_word = 0, in_pass = 0; - int i; + int in_word = 0, last_word_start = -1, last_word_end = -1; + int in_emph_word = 0, last_emph_symbol = -1; + int in_pass = 0, last_pass_word_start = -1, last_pass_word_end = -1, pass_start = -1; + unsigned int pass_word_cnt = 0; + int endphraseafter_defined = emphRule[endPhraseAfterOffset] || emphRule[endOffset]; - for (i = 0; i < input->length; i++) { - /* check if at beginning of word (first character that is not a space) */ - if (!in_word) - if (wordBuffer[i] & WORD_CHAR) { - in_word = 1; - /* only whole emphasized words can be part of a passage (in case of caps, - * this also includes words without letters, but only if the next word - * with letters is a whole word) */ - if (wordBuffer[i] & WORD_WHOLE) { - if (!in_pass) { - in_pass = 1; - pass_start = i; - pass_end = -1; - word_cnt = 1; - } else - word_cnt++; - word_start = i; - continue; - } else if (in_pass) { - /* it is a passage only if the number of words is greater than or - * equal to the minimum length (lencapsphrase / lenemphphrase) */ - if (word_cnt >= emphRule[lenPhraseOffset]) - if (pass_end >= 0) { - convertToPassage(pass_start, pass_end, word_start, buffer, - class, table, wordBuffer); - } - in_pass = 0; - } - } + for (int i = 0; i < input->length; i++) { - /* check if at end of word */ - if (in_word) - if (!(wordBuffer[i] & WORD_CHAR)) { + /* check if at beginning of word (words are determined by isEmphSpace() and + * further refined at the beginning and end of words based on isEmphasizable()) */ + if (!in_word && wordBuffer[i] & WORD_CHAR) { + in_word = 1; + last_word_start = i; + } else { /* check if at end of word */ + if (in_word && !(wordBuffer[i] & WORD_CHAR)) { in_word = 0; - if (in_pass) pass_end = i; + last_word_end = i; } + } - if (in_pass) - if ((buffer[i].begin | buffer[i].end | buffer[i].word | buffer[i].symbol) & - class->value) { - if (word_cnt >= emphRule[lenPhraseOffset]) - if (pass_end >= 0) { - convertToPassage(pass_start, pass_end, word_start, buffer, class, - table, wordBuffer); - } - in_pass = 0; + /* check for symbol or word indicator */ + if (!in_emph_word && + (buffer[i].symbol & class->value || + (buffer[i].word & class->value && + !(buffer[i].end & class->value)))) { + if (buffer[i].symbol & class->value) { + last_emph_symbol = i; + } else { + in_emph_word = 1; } - } + if (in_pass) { + /* only whole capitalized words (words without lowercase letters) can be + * part of a passage (note that this also includes words without letters + * if the next word with letters is a whole word) */ + if (!class->mode || (wordBuffer[i] & WORD_WHOLE)) { + last_pass_word_start = i; + pass_word_cnt++; + } else + goto end_passage; + } + } else { /* check for word end indicator or word end */ + if ((in_emph_word && + (buffer[i].word & class->value && + buffer[i].end & class->value)) || + last_word_end == i) { + in_emph_word = 0; + if (in_pass) { + /* only whole capitalized words can be part of a passage */ + last_pass_word_end = i; + } + } + } - if (in_pass) { - if (word_cnt >= emphRule[lenPhraseOffset]) { - if (pass_end >= 0) { - if (in_word) { - convertToPassage( - pass_start, i, word_start, buffer, class, table, wordBuffer); - } else { - convertToPassage(pass_start, pass_end, word_start, buffer, class, - table, wordBuffer); + /* check if possibly at beginning of passage */ + if (!in_pass && (in_emph_word || last_emph_symbol == i)) { + /* only whole capitalized words can be part of a passage */ + if (!class->mode || (wordBuffer[i] & WORD_WHOLE)) { + in_pass = 1; + pass_start = i; + last_pass_word_start = i; + last_pass_word_end = -1; + pass_word_cnt = 1; + } + } else { /* check if at end of passage */ + if (in_pass) { + if (in_word && !(in_emph_word || last_emph_symbol == i)) { + end_passage: + in_pass = 0; + if (last_pass_word_end < last_pass_word_start) { + last_pass_word_end = i; + } + /* it is a passage only if the number of words is greater than or + * equal to the minimum length (lencapsphrase / lenemphphrase) */ + /* if the phrase closing indicator is placed before the last word and + * it was not a whole word, the minimum phrase length is increased */ + if (!endphraseafter_defined && last_pass_word_end != last_word_end) { + pass_word_cnt--; + } + if (pass_word_cnt >= emphRule[lenPhraseOffset]) + convertToPassage(pass_start, last_pass_word_end, + last_pass_word_start, buffer, class, table, wordBuffer); + } else if (i == input->length - 1) { + if (pass_word_cnt >= emphRule[lenPhraseOffset]) { + if (last_pass_word_end < last_pass_word_start) { + last_pass_word_end = input->length; + } + convertToPassage(pass_start, last_pass_word_end, + last_pass_word_start, buffer, class, table, wordBuffer); + } } } } @@ -3857,7 +3883,7 @@ translateString(const TranslationTableHeader *table, int mode, int currentPass, if (!putCharacter(input->chars[pos], table, pos, input, output, posMapping, cursorPosition, cursorStatus, mode)) goto failure; - pos++; + if (++pos >= input->length) break; } } break; diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.lo b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.lo deleted file mode 100644 index 440dcc0ad..000000000 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.lo +++ /dev/null @@ -1,12 +0,0 @@ -# lou_translateString.lo - a libtool object file -# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-5 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/lou_translateString.o' - -# Name of the non-PIC object -non_pic_object='lou_translateString.o' - diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.o b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/lou_translateString.o deleted file mode 100644 index efc77b402bd881114863a7d5b60466f48e20a1d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409608 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%0DoYIwn9b(zGF`_&)E->O7$`4|_K!iQ9{ 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%0A9UnCON!pLj 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 w!wK?vqJ9qN%ar3RjoDoUML|Nq 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 diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.c b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.c index 441ed3340..ed6866fe5 100644 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.c +++ b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.c @@ -278,10 +278,25 @@ matchFeatureLists(const List *query, const List *tableFeatures, int fuzzy) { int pos = 0; const List *l = l2; while (1) { - if (!pos && - strcasecmp(((Feature *)l1->head)->val, - ((Feature *)l->head)->val) == 0) - pos = 1; + if (!pos) { + char *v = ((Feature *)l->head)->val; + char *v1 = ((Feature *)l1->head)->val; + if (strcasecmp(v1, v) == 0) + pos = 1; + else { + char *k = ((Feature *)l->head)->key; + if (strcasecmp(k, "unicode-range") == 0) { + // special handling of unicode-range: ucs2 in + // table also matches ucs4 in query + if (strcasecmp(v1, "ucs4") == 0 && + strcasecmp(v, "ucs2") == 0) { + pos = 1; + quotient--; // add small penalty to favour ucs4 table + // if it exists + } + } + } + } l = l->tail; if (!l || cmpKeys(l->head, l2->head) != 0) break; } @@ -327,9 +342,10 @@ parseQuery(const char *query) { size_t valSize = 0; const char *c; int pos = 0; + int unicodeRange = 0; while (1) { c = &query[pos++]; - if (isSpace(*c) || (*c == '\n') | (*c == '\0')) { + if (isSpace(*c) || (*c == '\n') || (*c == '\0')) { if (key) { char *v = NULL; if (val) { @@ -361,6 +377,9 @@ parseQuery(const char *query) { features = list_conj(features, memcpy(malloc(sizeof(f)), &f, sizeof(f)), NULL, NULL, (void (*)(void *))feature_free); + if (strcasecmp(k, "unicode-range") == 0) { + unicodeRange = 1; + } } free(k); free(v); @@ -391,19 +410,31 @@ parseQuery(const char *query) { } else goto compile_error; } - + // add defaults + if (!unicodeRange) { + // default value of unicode-range is determined by CHARSIZE + static char value[5] = ""; + if (!*value) sprintf(value, "ucs%d", CHARSIZE); + FeatureWithImportance *f = memcpy(malloc(sizeof(FeatureWithImportance)), + (&(FeatureWithImportance){ feature_new("unicode-range", value), -1 }), + sizeof(FeatureWithImportance)); + _lou_logMessage(LOU_LOG_DEBUG, "Table has feature '%s:%s'", f->feature.key, + f->feature.val); + features = list_conj(features, f, NULL, NULL, (void (*)(void *))feature_free); + } + // attach importance to features { int k = 1; List *l; - for (l = features; l; l = l->tail) { FeatureWithImportance *f = l->head; f->importance = k++; } } + // sort features by key (alphabetical order) return list_sort(features, (int (*)(void *, void *))cmpKeys); compile_error: - _lou_logMessage(LOU_LOG_ERROR, "Unexpected character '%c' at position %d", c, pos); + _lou_logMessage(LOU_LOG_ERROR, "Unexpected character '%c' at position %d", *c, pos); list_free(features); return NULL; } @@ -458,6 +489,7 @@ analyzeTable(const char *table, int activeOnly) { if ((info.in = fopen(info.fileName, "rb"))) { FeatureWithLineNumber *region = NULL; FeatureWithLineNumber *language = NULL; + int unicodeRange = 0; while (_lou_getALine(&info)) { if (info.linelen == 0) ; @@ -553,7 +585,6 @@ analyzeTable(const char *table, int activeOnly) { f2, NULL, NULL, (void (*)(void *))feature_free); if (!language) language = f1; if (!region) region = f2; - } else { FeatureWithLineNumber *f = memcpy( malloc(sizeof(FeatureWithLineNumber)), @@ -567,8 +598,11 @@ analyzeTable(const char *table, int activeOnly) { (void (*)(void *))feature_free); if (strcasecmp(k, "language") == 0) { if (!language) language = f; - } else if (strcasecmp(k, "region") == 0) + } else if (strcasecmp(k, "region") == 0) { if (!region) region = f; + } else if (strcasecmp(k, "unicode-range") == 0) { + unicodeRange = 1; + } } free(k); free(v); @@ -581,6 +615,7 @@ analyzeTable(const char *table, int activeOnly) { break; } fclose(info.in); + // add defaults if (!region && language) { region = memcpy(malloc(sizeof(FeatureWithLineNumber)), (&(FeatureWithLineNumber){ @@ -591,6 +626,16 @@ analyzeTable(const char *table, int activeOnly) { features = list_conj( features, region, NULL, NULL, (void (*)(void *))feature_free); } + if (features && !unicodeRange) { + // by default we assume unicode-range: ucs2 + FeatureWithLineNumber *f = memcpy(malloc(sizeof(FeatureWithLineNumber)), + (&(FeatureWithLineNumber){ + feature_new("unicode-range", "ucs2"), -1 }), + sizeof(FeatureWithLineNumber)); + _lou_logMessage(LOU_LOG_DEBUG, "Table has feature '%s:%s'", f->feature.key, + f->feature.val); + features = list_conj(features, f, NULL, NULL, (void (*)(void *))feature_free); + } } else _lou_logMessage(LOU_LOG_ERROR, "Cannot open table '%s'", info.fileName); return list_sort(features, (int (*)(void *, void *))cmpFeatures); diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.lo b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.lo deleted file mode 100644 index 17b5d7d2a..000000000 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.lo +++ /dev/null @@ -1,12 +0,0 @@ -# metadata.lo - a libtool object file -# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-5 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/metadata.o' - -# Name of the non-PIC object -non_pic_object='metadata.o' - diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.o b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/metadata.o deleted file mode 100644 index 2b9985de5c456d5cb4ec816e2b7d87608c2cff83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89464 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 S==L|B^($|sRQiAL?f(xKmuKSu diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/pattern.lo b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/pattern.lo deleted file mode 100644 index 9c69e4c3c..000000000 --- a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/pattern.lo +++ /dev/null @@ -1,12 +0,0 @@ -# pattern.lo - a libtool object file -# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-5 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/pattern.o' - -# Name of the non-PIC object -non_pic_object='pattern.o' - diff --git a/braille/translate/src/phone/jni/third_party/liblouis/liblouis/pattern.o b/braille/translate/src/phone/jni/third_party/liblouis/liblouis/pattern.o deleted file mode 100644 index 4de1147523ab61ff7949abd33b3906c47a08ae31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54016 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 135 greater-than sign x003E punctuation [ 12356 left square bracket x005B diff --git a/braille/translate/src/phone/tables/akk-borger.utb b/braille/translate/src/phone/tables/akk-borger.utb new file mode 100644 index 000000000..c0db9a6c6 --- /dev/null +++ b/braille/translate/src/phone/tables/akk-borger.utb @@ -0,0 +1,997 @@ +# liblouis: Akkadian according to Borger system +# +#-index-name: Akkadian, Borger +#-display-name: Akkadian braille according to Borger system + +#+language: akk +#+language: akk-Xsux +#+language: xhu +#+language: xhu-Xsux +#+language: peo +#+language: peo-Xsux +#+language: sux +#+language: sux-Xsux +#+language: xeb +#+language: xeb-Xsux +#+language: elx +#+language: elx-Xsux +#+language: hit +#+language: hit-Xsux +#+language: xur +#+language: xur-Xsux +#+language: xlu +#+language: xlu-Xsux +#+type: literary +#+contraction: no +#+system: akk-borger +#+dots: 6 +#+unicode-range: ucs4 + +#-license: lgpl-2.1 + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this file; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# liblouis comes with ABSOLUTELY NO WARRANTY. + +# This is a braille table for the Borger version of Akkadian. The +# braille in this table reflects the names for the Cuneiform signs +# represented in the German/Borgers system. The table for the American +# system utilizes braille that describes what the Cuneiform Sign is +# according to the American System. This table utilizes braille +# according to the Borger/German system. Both of these systems have +# different names for the Cuneiform sign. Thus, both of these systems +# have different braille. If you are looking for the braille that +# represents the American system, please find the other Akkadian table +# that represents the American system. For more information on the +# differences between these systems, please see +# . For more +# information on the Akkadian language, please go to +# . + +# This braille code was developed by a group of both blind and sighted +# scholars in an academic setting.Special thank you to Matthew Yeater, +# Louis Saenz, and Shai Gordon for your help in making this work +# possible. + +#-maintainer: Matityhau Yeshurun + +# Copyright (C) 2024 Matt Yeater and Paul Geoghegan + +# letter op code characters +letter 𒀀 145-136-23 # DU2 +letter 𒀁 15-145-136-1235-136 # EDURU +letter 𒀂 1-1245-1-134 # AGAM +letter 𒀃 1-1346-1245-1-1345-23-2345-15-1345-136 # AxGAN2tenu +letter 𒀄 1356-1-125-25 # ZAH3 +letter 𒀅 24-1235 # IR +letter 𒀆 1-1346-123-1-1245-345-1245-136-1345-136 # AxLAGARgunu +letter 𒀇 1-1346-134-136-146 # AxMUsh +letter 𒀈 1-1346-234-1-1245 # AxSAG +letter 𒀉 15-145 # ED +letter 𒀊 1-12-12-1 # ABBA +letter 𒀋 1-12-1346-1-146-23 # ABxAsh2 +letter 𒀌 1-12-1346-145-136-1345-25-1245-136-1345-136 # ABxDUN3gunu +letter 𒀍 24-1235-24-1245-1-123 # IRIGAL +letter 𒀎 1-12-1346-1245-1-1345-23-2345-15-1345-136 # ABxGAN2tenu +letter 𒀏 1345-24-1345-1 # NINA +letter 𒀐 1-12-1346-24-1245-24-1245-136-1345-136 # ABxIGIgunu +letter 𒀑 1-12-1346-24-134-24-1345 # ABxIMIN +letter 𒀒 1-12-1346-123-1-1245-1-12 # ABxLAGAB +letter 𒀓 1-12-1346-146-15-146 # ABxshEsh +letter 𒀔 136-1345-136-1245 # UNUG +letter 𒀕 1-12-1245-136-1345-136 # ABgunu +letter 𒀖 123-24-145 # LID +letter 𒀗 123-24-123-24-1356 # LILIZ +letter 𒀘 13-24-1235-235 # KIR6 +letter 𒀙 1-12-23-1346-134-15-346-15-1345 # AB2xME+EN +letter 𒀚 123-24-12-24-146 # LIBIsh +letter 𒀛 1-12-23-1346-2345-1-13-256 # AB2xTAK4 +letter 𒀜 1-145-145-1 # ADDA +letter 𒀝 1-1245 # AG +letter 𒀞 134-15-25 # ME3 +letter 𒀟 1-13-1346-146-24-2345-1-346-1245-24-146 # AKxshITA+GIsh +letter 𒀠 1-123 # AL +letter 𒀡 1-123-1346-1-123 # ALxAL +letter 𒀢 1-123-1346-145-24-134-23 # ALxDIM2 +letter 𒀣 1-123-1346-1245-24-146 # ALxGIsh +letter 𒀤 1-123-1346-125-1 # ALxHA +letter 𒀥 1-123-1346-13-1-145-25 # ALxKAD3 +letter 𒀦 1-123-1346-13-24 # ALxKI +letter 𒀧 24-123 # IL +letter 𒀨 1-123-1346-136-146 # ALxUsh +letter 𒀩 1-123-1-1345 # ALAN +letter 𒀫 1356-136-1235 # ZUR +letter 𒀬 234-24-234-13-136-1235 # SISKUR +letter 𒀭 1-1345 # AN +letter 𒀮 1-1345-34-1-1345 # AN/AN +letter 𒀯 134-136-123 # MUL +letter 𒀰 1-1345-346-1345-1-1245-1-135-1234-1234-135-234-24-1345-1245-1-1345-346-1345-1-1245-1 # AN+NAGAopposingAN+NAGA +letter 𒀱 145-1345-1-1245-1 # DNAGA +letter 𒀲 145-135-1345-13-15-13456 # donkey +letter 𒀳 1-12-234-24-1345 # ABSIN +letter 𒀴 345-1-145 # ARAD +letter 𒀵 345-1-145-1346-13-136-1235 # ARADxKUR +letter 𒀶 1345-24-1245-23 # NIG2 +letter 𒀷 1-234-1-123-23 # ASAL2 +letter 𒀸 145-24-123-24 # DILI +letter 𒀹 145-24-146-2345-15-1345-136 # DIshtenu +letter 𒀺 1-146-13-1-12-1-2345-15-1345-136 # AshKABAtenu +letter 𒀻 1-146-2345-136-1245-23-34-2345-136-1245-23 # AshTUG2/TUG2 +letter 𒀼 15-146-2-235 # Esh16 +letter 𒀽 146-136-146-136-1235-23 # shUshUR2 +letter 𒀾 1-146-23 # Ash2 +letter 𒀿 1-146-1245-1-12 # AshGAB +letter 𒁀 1234-135-1235-1235-24-145-1245-15 # porridge +letter 𒁁 12-1-145 # BAD +letter 𒁂 12-1-1245-25 # BAG3 +letter 𒁃 12-1-125-345-23 # BAHAR2 +letter 𒁄 12-1-123 # BAL +letter 𒁅 12-1-123-34-12-1-123 # BAL/BAL +letter 𒁆 145-136-12-23 # DUB2 +letter 𒁇 12-345 # BAR +letter 𒁈 12-345-1-1245 # BARAG +letter 𒁉 12-15-23 # BE2 +letter 𒁊 12-24-1346-1 # BIxA +letter 𒁋 12-24-1346-1245-345 # BIxGAR +letter 𒁌 12-24-1346-24-1245-24-1245-136-1345-136 # BIxIGIgunu +letter 𒁍 1245-24-145-23 # GID2 +letter 𒁎 12-136-34-12-136-1-12 # BU/BUAB +letter 𒁏 12-136-34-12-136-136-1345 # BU/BUUN +letter 𒁐 12-136-14-1235-135-234-234-24-1345-1245-12-136 # BUcrossingBU +letter 𒁑 12-136-123-136-1245 # BULUG +letter 𒁒 12-136-123-136-1245-34-12-136-123-136-1245 # BULUG/BULUG +letter 𒁓 1345-24-1245-23-1245-136-1345-136 # NIG2gunu +letter 𒁔 145-136-35 # DU9 +letter 𒁕 145-136-23-356 # DU20 +letter 𒁖 1234-345-25 # PAR3 +letter 𒁗 145-1-1245-13-24-234-24-134-26-1346-1-346-134-1-146 # DAGKISIM5xA+MAsh +letter 𒁘 145-1-1245-13-24-234-24-134-26-1346-1-134-345 # DAGKISIM5xAMAR +letter 𒁙 145-1-1245-13-24-234-24-134-26-1346-12-1-123-1-1245 # DAGKISIM5xBALAG +letter 𒁚 145-1-1245-13-24-234-24-134-26-1346-12-24 # DAGKISIM5xBI +letter 𒁛 136-12-136-1235 # UBUR +letter 𒁜 145-1-1245-13-24-234-24-134-26-1346-1245-1-346-134-1-146 # DAGKISIM5xGA+MAsh +letter 𒁝 145-1-1245-13-24-234-24-134-26-1346-1245-24 # DAGKISIM5xGI +letter 𒁞 13-24-146-24-236 # KIshI8 +letter 𒁟 136-2345-136-123-26 # UTUL5 +letter 𒁠 145-1-1245-13-24-234-24-134-26-1346-125-1 # DAGKISIM5xHA +letter 𒁡 136-12-136-1235-25 # UBUR3 +letter 𒁢 136-12-136-1235-256 # UBUR4 +letter 𒁣 145-1-1245-13-24-234-24-134-26-1346-13-1-13 # DAGKISIM5xKAK +letter 𒁤 145-1-1245-13-24-234-24-134-26-1346-123-1 # DAGKISIM5xLA +letter 𒁥 136-12-136-1235-23 # UBUR2 +letter 𒁦 1-134-1-146 # AMAsh +letter 𒁧 145-1-1245-13-24-234-24-134-26-1346-123-136-134 # DAGKISIM5xLUM +letter 𒁨 145-1-1245-13-24-234-24-134-26-1346-1345-15 # DAGKISIM5xNE +letter 𒁩 145-1-1245-13-24-234-24-134-26-1346-1234-1-1234-346-1234-1-1234 # DAGKISIM5xPAP+PAP +letter 𒁪 145-1-1245-13-24-234-24-134-26-1346-234-24 # DAGKISIM5xSI +letter 𒁫 145-1-1245-13-24-234-24-134-26-1346-2345-1-13-256 # DAGKISIM5xTAK4 +letter 𒁬 145-1-1245-13-24-234-24-134-26-1346-136-23-346-1245-24-1235-23 # DAGKISIM5xU2+GIR2 +letter 𒁭 145-1-1245-13-24-234-24-134-26-1346-136-146 # DAGKISIM5xUsh +letter 𒁮 145-1-134 # DAM +letter 𒁯 1245-136-1345-25 # GUN3 +letter 𒁰 24-12-15-1346 # ibex +letter 𒁱 145-345-1-256 # DARA4 +letter 𒁲 145-15 # DE +letter 𒁳 145-1-12 # DAB +letter 𒁴 145-24-134 # DIM +letter 𒁵 134-136-1345 # MUN +letter 𒁶 145-15-134-23 # DEM2 +letter 𒁷 145-1-1345-26 # DAN5 +letter 𒁸 145-24-1345-13-1-234-13-1-123-136-1245-136-1345-136-145-24-146 # DINKASKALUgunuDIsh +letter 𒁹 1345-24-1245-24-145-1 # NIGIDA +letter 𒁺 145-136 # du +letter 𒁻 1235-15-2356 # RE7 +letter 𒁼 1245-24-1235-235 # GIR6 +letter 𒁽 1245-24-1235-26 # GIR5 +letter 𒁾 13-24-146-24-12-25 # KIshIB3 +letter 𒁿 145-136-12-1346-15-146-23 # DUBxEsh2 +letter 𒂀 145-136-12-23 # DUB2 +letter 𒂁 12-24-1346-1 # BIxA +letter 𒂂 145-136-1245-136-145 # DUGUD +letter 𒂃 145-136-125 # DUH +letter 𒂄 146-136-123 # shUL +letter 𒂅 145-136-26 # DU5 +letter 𒂆 145-136-1345-25-1245-136-1345-136 # DUN3gunu +letter 𒂇 134-24-1235 # MIR +letter 𒂈 145-136-123-256 # DUL4 +letter 𒂉 145-136-1235-136-23 # DURU2 +letter 𒂊 15 # E +letter 𒂋 15-1346-1234-1-1234 # ExPAP +letter 𒂌 15-34-15-1345-136-1345-34-1345-136-1345 # E/ENUN/NUN +letter 𒂍 15-23 # E2 +letter 𒂎 15-23-1346-1-346-125-1-346-145-1 # E2xA+HA+DA +letter 𒂏 15-23-1346-1245-345 # E2xGAR +letter 𒂐 15-23-1346-134-24 # E2xMI +letter 𒂑 15-23-1346-234-1-123 # E2xSAL +letter 𒂒 15-23-1346-146-15 # E2xshE +letter 𒂓 15-23-1346-136 # E2xU +letter 𒂔 15-145-15-1345 # EDEN +letter 𒂕 15-1245-24-1235 # EGIR +letter 𒂖 234-24-13-24-123 # SIKIL +letter 𒂗 15-1345 # EN +letter 𒂘 12-136-1235-136-2-256 # BURU14 +letter 𒂙 15-1345-1346-1245-1-1345-23-2345-15-1345-136 # ENxGAN2tenu +letter 𒂚 15-1345-1346-134-15 # ENxME +letter 𒂛 15-1345-14-1235-135-234-234-24-1345-1245-15-1345 # ENcrossingEN +letter 𒂜 15-1345-135-1234-1234-135-234-24-1345-1245-15-1345 # ENopposingEN +letter 𒂝 15-1345-234-12345-136-345-15-145 # ENsquared +letter 𒂞 15-1235-15-1345 # EREN +letter 𒂟 15-1235-24-134 # ERIM +letter 𒂠 146-15-25 # shE3 +letter 𒂡 24-1356-24-1345 # IZIN +letter 𒂢 15-1356-15-1345-1346-1 # EZENxA +letter 𒂣 234-24-123-2356 # SIL7 +letter 𒂤 1-234-24-123-1-123-256 # ASILAL4 +letter 𒂥 15-1356-15-1345-1346-1-1345 # EZENxAN +letter 𒂦 136-1245-26 # UG5 +letter 𒂧 15-1356-15-1345-1346-145-136-1345-25-1245-136-1345-136 # EZENxDUN3gunu +letter 𒂨 15-1356-15-1345-1346-145-136-1345-25-1245-136-1345-136-1245-136-1345-136 # EZENxDUN3gunugunu +letter 𒂩 15-1356-15-1345-1346-125-1 # EZENxHA +letter 𒂪 15-1356-15-1345-1346-125-1-1245-136-1345-136 # EZENxHAgunu +letter 𒂫 15-1356-15-1345-1346-24-1245-24-1245-136-1345-136 # EZENxIGIgunu +letter 𒂬 15-1356-15-1345-1346-13-1-234-13-1-123 # EZENxKASKAL +letter 𒂭 15-1356-15-1345-1346-13-1-234-13-1-123-234-12345-136-345-15-145 # EZENxKASKALsquared +letter 𒂮 15-1356-15-1345-1346-13-136-25 # EZENxKU3 +letter 𒂯 15-1356-15-1345-1346-123-1 # EZENxLA +letter 𒂰 15-1356-15-1345-1346-123-1-123-1346-123-1-123 # EZENxLALxLAL +letter 𒂱 15-1356-15-1345-1346-123-24 # EZENxLI +letter 𒂲 15-1356-15-1345-1346-123-136 # EZENxLU +letter 𒂳 15-1356-15-1345-1346-136-23 # EZENxU2 +letter 𒂴 15-1356-15-1345-1346-136-145 # EZENxUD +letter 𒂵 1245-1 # GA +letter 𒂶 1245-1-1245-136-1345-136 # GAgunu +letter 𒂷 1245-1-23 # GA2 +letter 𒂸 1245-1-23-1346-1-346-145-1-346-125-1 # GA2xA+DA+HA +letter 𒂹 1245-1-23-1346-1-346-125-1 # GA2xA+HA +letter 𒂺 1245-1-23-1346-1-346-24-1245-24 # GA2xA+IGI +letter 𒂻 1245-1-23-1346-1-12-23-2345-15-1345-136-346-2345-1-12 # GA2xAB2tenu+TAB +letter 𒂼 1-134-1 # AMA +letter 𒂽 1245-1-23-1346-1-146 # GA2xAsh +letter 𒂾 1245-1-23-1346-1-146-23-346-1245-1-123 # GA2xAsh2+GAL +letter 𒂿 1245-1-23-1346-12-1-145 # GA2xBAD +letter 𒃀 1245-1-23-1346-12-345-346-1235-1 # GA2xBAR+RA +letter 𒃁 1245-1-23-1346-12-136-1235 # GA2xBUR +letter 𒃂 1245-1-23-1346-12-136-1235-346-1235-1 # GA2xBUR+RA +letter 𒃃 1245-1-23-1346-145-1 # GA2xDA +letter 𒃄 1245-1-23-1346-145-24 # GA2xDI +letter 𒃅 1245-1-23-1346-145-24-134-1346-146-15 # GA2xDIMxshE +letter 𒃆 1245-1-23-1346-145-136-12 # GA2xDUB +letter 𒃇 1245-1-23-1346-15-123 # GA2xEL +letter 𒃈 1245-1-23-1346-15-123-346-123-1 # GA2xEL+LA +letter 𒃉 1245-1-23-1346-15-1345 # GA2xEN +letter 𒃊 1245-1-23-1346-12-136-1235-136-2-256 # GA2xBURU14 +letter 𒃋 1245-1-23-1346-1245-1-1345-23-2345-15-1345-136 # GA2xGAN2tenu +letter 𒃌 1245-1-123-1245-1 # GALGA +letter 𒃍 1245-1-23-1346-1245-24 # GA2xGI +letter 𒃎 1245-1-23-1346-1245-24-256 # GA2xGI4 +letter 𒃏 1245-1-23-1346-1245-24-256-346-1 # GA2xGI4+A +letter 𒃐 1245-1-23-1346-1245-24-1235-23-346-234-136 # GA2xGIR2+SU +letter 𒃑 1245-1-23-1346-125-1-346-123-136-346-15-146-23 # GA2xHA+LU+Esh2 +letter 𒃒 1245-1-23-1346-125-1-123 # GA2xHAL +letter 𒃓 1245-1-23-1346-125-1-123-346-123-1 # GA2xHAL+LA +letter 𒃔 1245-1-23-1346-125-24-346-123-24 # GA2xHI+LI +letter 𒃕 1245-1-23-1346-125-136-12-23 # GA2xHUB2 +letter 𒃖 1245-1-23-1346-24-1245-24-1245-136-1345-136 # GA2xIGIgunu +letter 𒃗 1245-1-23-1346-24-146-346-125-136-346-1-146 # GA2xIsh+HU+Ash +letter 𒃘 1245-1-23-1346-13-1-13 # GA2xKAK +letter 𒃙 1245-1-23-1346-13-1-234-13-1-123 # GA2xKASKAL +letter 𒃚 1245-1-23-1346-13-24-145 # GA2xKID +letter 𒃛 1245-1-23-1346-13-24-145-346-123-1-123 # GA2xKID+LAL +letter 𒃜 1245-1-23-1346-13-136-25-346-1-1345 # GA2xKU3+AN +letter 𒃝 1245-1-23-1346-123-1 # GA2xLA +letter 𒃞 134-15-1345 # MEN +letter 𒃟 24-2345-24-134-1 # ITIMA +letter 𒃠 1245-1-1345-136-1345 # GANUN +letter 𒃡 136-1235-25 # UR3 +letter 𒃢 1245-1-1356-24 # GAZI +letter 𒃣 345-125-136-146 # ARHUsh +letter 𒃤 1245-1-23-1346-234-345 # GA2xSAR +letter 𒃥 15-234-1-1245-23 # ESAG2 +letter 𒃦 1245-1-23-1346-146-15-346-2345-136-1235 # GA2xshE+TUR +letter 𒃧 1245-1-23-1346-146-24-145 # GA2xshID +letter 𒃨 1245-1-23-1346-234-136-134 # GA2xSUM +letter 𒃩 1245-1-23-1346-2345-1-13-256 # GA2xTAK4 +letter 𒃪 1245-1-23-1346-136 # GA2xU +letter 𒃫 1245-1-23-1346-136-145 # GA2xUD +letter 𒃬 1245-1-23-1346-136-145-346-145-136 # GA2xUD+DU +letter 𒃭 1245-1-23-34-1245-1-23 # GA2/GA2 +letter 𒃮 1245-1-12-1 # GABA +letter 𒃯 1245-1-12-1-14-1235-135-234-234-24-1345-1245-1245-1-12-1 # GABAcrossingGABA +letter 𒃰 1245-1-145 # GAD +letter 𒃱 1245-1-145-34-1245-1-145-1245-345-34-1245-345 # GAD/GADGAR/GAR +letter 𒃲 1245-1-123 # GAL +letter 𒃳 1245-1-123-1245-1-145-34-1245-1-145-1245-345-34-1245-345 # GALGAD/GADGAR/GAR +letter 𒃴 234-136-13-136-145 # SUKUD +letter 𒃵 1245-1-134 # GAM +letter 𒃶 13-1-1345 # KAN +letter 𒃷 1245-1-1345-23 # GAN2 +letter 𒃸 13-345-23 # KAR2 +letter 𒃹 1245-1-1345-23-34-1245-1-1345-23 # GAN2/GAN2 +letter 𒃺 1245-1-1345-23-14-1235-135-234-234-24-1345-1245-1245-1-1345-23 # GAN2crossingGAN2 +letter 𒃻 1345-24-1345-145-1 # NINDA +letter 𒃼 1245-345-25 # GAR3 +letter 𒃽 136-1245-136-1345-136 # Ugunu +letter 𒃾 1245-15-146-2345-24-1345 # GEshTIN +letter 𒃿 1245-15-146-2345-24-1345-1346-13-136-1235 # GEshTINxKUR +letter 𒄀 1245-15 # GE +letter 𒄁 1245-24-1346-15 # GIxE +letter 𒄂 1245-24-1346-136 # GIxU +letter 𒄃 1245-24-2-235 # GI16 +letter 𒄄 1245-15-256 # GE4 +letter 𒄅 1245-24-1245-24 # GIGI +letter 𒄆 1245-24-1245-24 # GIGI +letter 𒄇 1245-24-145-24-134 # GIDIM +letter 𒄈 1245-24-1235-24-23 # GIRI2 +letter 𒄉 1245-24-1235-23-1245-136-1345-136 # GIR2gunu +letter 𒄊 1234-24-1235-24-1245 # PIRIG +letter 𒄋 1245-24-1235-25-1346-1-346-24-1245-24 # GIR3xA+IGI +letter 𒄌 1245-24-1235-24-2-235 # GIRI16 +letter 𒄍 1245-24-1235-25-1346-24-1245-24 # GIR3xIGI +letter 𒄎 1245-24-1235-25-1346-123-136-346-24-1245-24 # GIR3xLU+IGI +letter 𒄏 1245-24-1235-25-1346-1234-1 # GIR3xPA +letter 𒄐 1245-24-234-1-123 # GISAL +letter 𒄑 1245-15-146 # GEsh +letter 𒄒 1245-24-146-14-1235-135-234-234-24-1345-1245-1245-24-146 # GIshcrossingGIsh +letter 𒄓 1245-24-146-1346-12-1-145 # GIshxBAD +letter 𒄔 1245-24-146-1346-2345-1-13-256 # GIshxTAK4 +letter 𒄕 1245-136-1235-2-2356 # GUR17 +letter 𒄖 1245-136 # GU +letter 𒄗 234-136-125 # SUH +letter 𒄘 1245-136-23 # GU2 +letter 𒄙 145-136-1235 # DUR +letter 𒄚 1245-136-23-1346-13-1-13-1346-24-1245-24-1245-136-1345-136 # GU2xKAKxIGIgunu +letter 𒄛 1245-136-23-1346-1345-136-1345 # GU2xNUN +letter 𒄜 1245-136-23-1346-234-1-123-346-2345-136-1245-23 # GU2xSAL+TUG2 +letter 𒄝 136-234-1-1345-23 # USAN2 +letter 𒄞 1245-136-256 # GU4 +letter 𒄟 1245-136-145-1346-1-346-13-136-1235 # GUDxA+KUR +letter 𒄠 1-145-345-23 # ADAR2 +letter 𒄡 12-24-146-15-12-1-25 # BIshEBA3 +letter 𒄢 234-136-1345-23 # SUN2 +letter 𒄣 13-136-134 # KUM +letter 𒄤 1245-1-1356 # GAZ +letter 𒄥 1245-136-1235 # GUR +letter 𒄦 1245-136-1235-2356 # GUR7 +letter 𒄧 1245-136-1235-136-1345 # GURUN +letter 𒄨 1245-136-1235-136-146 # GURUsh +letter 𒄩 13-136-235 # KU6 +letter 𒄪 1356-136-12-136-145 # ZUBUD +letter 𒄫 125-1-1245-136-1345-136 # HAgunu +letter 𒄬 1-146 # Ash +letter 𒄭 145-136-2-356 # DU10 +letter 𒄮 234-136-1235-25 # SUR3 +letter 𒄯 125-345 # HAR +letter 𒄰 145-136-2-26 # DU15 +letter 𒄱 146-345-1346-145-24-146 # shARxDIsh +letter 𒄲 146-345-1346-1245-1-145 # shARxGAD +letter 𒄳 125-24-1346-13-24-1345 # HIxKIN +letter 𒄴 1-125 # AH +letter 𒄵 12-24-1235 # BIR +letter 𒄶 145-136-12-136-1235 # DUBUR +letter 𒄷 125-136 # HU +letter 𒄸 2345-136-2-2 # TU11 +letter 𒄹 125-136-12-23-1346-1-1345 # HUB2xAN +letter 𒄺 125-136-12-23-1346-125-1-123 # HUB2xHAL +letter 𒄻 125-136-12-23-1346-13-1-234-13-1-123 # HUB2xKASKAL +letter 𒄼 125-136-12-23-1346-123-24-146 # HUB2xLIsh +letter 𒄽 125-136-12-23-1346-136-145 # HUB2xUD +letter 𒄾 125-136-123-23 # HUL2 +letter 𒄿 24 # I +letter 𒅀 24-1 # IA +letter 𒅁 24-12 # IB +letter 𒅂 24-145-24-134 # IDIM +letter 𒅃 24-145-24-134-34-24-145-24-134-12-136-1235 # IDIM/IDIMBUR +letter 𒅄 24-145-24-134-34-24-145-24-134-234-12345-136-345-15-145 # IDIM/IDIMsquared +letter 𒅅 24-13 # IK +letter 𒅆 146-24 # shI +letter 𒅇 136-25 # U3 +letter 𒅈 345 # AR +letter 𒅉 24-1245-24-34-24-1245-24-146-24-1235-34-146-24-1235-136-145-34-136-145 # IGI/IGIshIR/shIRUD/UD +letter 𒅊 234-24-1245-2356 # SIG7 +letter 𒅋 24-123 # IL +letter 𒅌 24-123-1346-1245-1-1345-23-2345-15-1345-136 # ILxGAN2tenu +letter 𒅍 24-123-23 # IL2 +letter 𒅎 15-134 # EM +letter 𒅏 24-134-1346-2345-1-13-256 # IMxTAK4 +letter 𒅐 145-1-123-125-1-134-136-1345-235 # DALHAMUN6 +letter 𒅑 24-134-135-1234-1234-135-234-24-1345-1245-24-134 # IMopposingIM +letter 𒅒 24-134-234-12345-136-345-15-145 # IMsquared +letter 𒅓 24-134-24-1345 # IMIN +letter 𒅔 24-1345 # IN +letter 𒅕 1245-1-1245-1245-136-1345-136 # GAGgunu +letter 𒅖 24-146 # Ish +letter 𒅗 24-1345-24-134 # INIM +letter 𒅘 1345-1-1245 # NAG +letter 𒅙 13-1-1346-1-145 # KAxAD +letter 𒅚 13-1-1346-1-145-346-13-136-25 # KAxAD+KU3 +letter 𒅛 13-1-1346-1-146-23 # KAxAsh2 +letter 𒅜 136-146-2-2 # Ush11 +letter 𒅝 13-1-1346-12-1-123-1-1245 # KAxBALAG +letter 𒅞 13-1-1346-12-345 # KAxBAR +letter 𒅟 13-1-1346-12-24 # KAxBI +letter 𒅠 13-1-1346-15-1235-24-1345-23 # KAxERIN2 +letter 𒅡 13-1-1346-15-146-23 # KAxEsh2 +letter 𒅢 13-1-1346-1245-1 # KAxGA +letter 𒅣 13-1-1346-1245-1-123 # KAxGAL +letter 𒅤 1234-136-25 # PU3 +letter 𒅥 1245-136-2356 # GU7 +letter 𒅦 13-1-1346-1245-345-346-146-1-25-346-1 # KAxGAR+shA3+A +letter 𒅧 13-1-1346-1245-24 # KAxGI +letter 𒅨 13-1-1346-1245-24-1235-23 # KAxGIR2 +letter 𒅩 13-1-1346-1245-24-146-346-234-345 # KAxGIsh+SAR +letter 𒅪 13-1-1346-1245-24-146-14-1235-135-234-234-24-1345-1245-1245-24-146 # KAxGIshcrossingGIsh +letter 𒅫 13-1-1346-1245-136 # KAxGU +letter 𒅬 13-1-1346-1245-136-1235-2356 # KAxGUR7 +letter 𒅭 13-1-1346-24-1245-24 # KAxIGI +letter 𒅮 12-136-1345-23 # BUN2 +letter 𒅯 13-1-1346-13-1-13 # KAxKAK +letter 𒅰 13-1-1346-13-24 # KAxKI +letter 𒅱 13-1-1346-13-24-145 # KAxKID +letter 𒅲 13-1-1346-123-24 # KAxLI +letter 𒅳 13-1-1346-123-136 # KAxLU +letter 𒅴 15-134-15 # EME +letter 𒅵 13-1-1346-134-15-346-145-136 # KAxME+DU +letter 𒅶 13-1-1346-134-15-346-1245-24 # KAxME+GI +letter 𒅷 13-1-1346-134-15-346-2345-15 # KAxME+TE +letter 𒅸 13-1-1346-134-24 # KAxMI +letter 𒅹 13-1-1346-134-24-346-1345-136-1345-136-1356 # KAxMI+NUNUZ +letter 𒅺 13-1-1346-1345-15 # KAxNE +letter 𒅻 1345-136-1345-145-136-134 # NUNDUM +letter 𒅼 13-1-1346-1234-24 # KAxPI +letter 𒅽 13-1-1346-1235-136 # KAxRU +letter 𒅾 234-136-235 # SU6 +letter 𒅿 134-136-2-2 # MU11 +letter 𒆀 13-1-1346-146-1 # KAxshA +letter 𒆁 13-1-1346-146-15 # KAxshE +letter 𒆂 13-1-1346-146-24-145 # KAxshID +letter 𒆃 146-136-145-136 # shUDU +letter 𒆄 13-1-1346-234-24-1245 # KAxSIG +letter 𒆅 13-1-1346-234-136-125-136-1235 # KAxSUHUR +letter 𒆆 13-1-1346-2345-345 # KAxTAR +letter 𒆇 13-1-1346-136 # KAxU +letter 𒆈 13-1-1346-136-23 # KAxU2 +letter 𒆉 13-1-1346-136-145 # KAxUD +letter 𒆊 13-1-1346-136-134-136-134-1346-1234-1 # KAxUMUMxPA +letter 𒆋 13-1-1346-136-146 # KAxUsh +letter 𒆌 13-1-1346-1356-24 # KAxZI +letter 𒆍 13-1-23 # KA2 +letter 𒆎 13-1-23-14-1235-135-234-234-24-1345-1245-13-1-23 # KA2crossingKA2 +letter 𒆏 1245-1-12-23 # GAB2 +letter 𒆐 13-1-145-23 # KAD2 +letter 𒆑 13-1-145-25 # KAD3 +letter 𒆒 13-1-145-256 # KAD4 +letter 𒆓 13-1-145-26 # KAD5 +letter 𒆔 13-1-145-26-34-13-1-145-26 # KAD5/KAD5 +letter 𒆕 1245-1-1245 # GAG +letter 𒆖 13-1-13-1346-24-1245-24-1245-136-1345-136 # KAKxIGIgunu +letter 𒆗 1-123-1-145-23 # ALAD2 +letter 𒆘 1-123-1-145 # ALAD +letter 𒆙 13-1-123-14-1235-135-234-234-24-1345-1245-13-1-123 # KALcrossingKAL +letter 𒆚 13-1-134-23 # KAM2 +letter 𒆛 13-1-134-256 # KAM4 +letter 𒆜 13-1-234-13-1-123 # KASKAL +letter 𒆝 146-136-12-2345-136-235 # shUBTU6 +letter 𒆞 146-136-12-2345-136-2356 # shUBTU7 +letter 𒆟 13-15-146-23 # KEsh2 +letter 𒆠 1245-1-1345-34-1245-1-1345-12-1 # GAN/GANBA +letter 𒆡 13-24-1346-12-1-145 # KIxBAD +letter 𒆢 13-24-1346-136 # KIxU +letter 𒆣 13-24-1346-136-145 # KIxUD +letter 𒆤 123-24-123-23 # LIL2 +letter 𒆥 234-1-1245-1-2-2 # SAGA11 +letter 𒆦 13-24-234-1-123 # KISAL +letter 𒆧 13-24-146 # KIsh +letter 𒆨 13-24-234-24-134-26 # KISIM5 +letter 𒆩 13-24-234-24-134-26-34-13-24-234-24-134-26 # KISIM5/KISIM5 +letter 𒆪 145-136-1235 # DUR +letter 𒆫 13-136-34-125-24-1346-1-146-23-13-136-34-125-24-1346-1-146 # KU/HIxAsh2KU/HIxAsh +letter 𒆬 13-136-1245 # KUG +letter 𒆭 13-136-1235-35 # KUR9 +letter 𒆮 13-136-256-1236-345-24-1-1345-2345-124-135-1235-134 # KU4variantform +letter 𒆯 13-136-2356 # KU7 +letter 𒆰 1345-136-134-136-1345-23-25-236 # NUMUN238 +letter 𒆱 13-136-123-1245-136-1345-136 # KULgunu +letter 𒆲 13-136-1345 # KUN +letter 𒆳 1245-24-1345-25 # GIN3 +letter 𒆴 123-1-125-134-136 # LAHMU +letter 𒆵 13-136-146-136-23 # KUshU2 +letter 𒆶 13-2456-136-25-2-236 # KWU318 +letter 𒆷 123-1 # LA +letter 𒆸 1345-24-1245-24-1345-23 # NIGIN2 +letter 𒆹 1-134-12-345 # AMBAR +letter 𒆺 123-1-1245-1-12-1346-1-346-145-1-346-125-1 # LAGABxA+DA+HA +letter 𒆻 123-1-1245-1-12-1346-1-346-1245-345 # LAGABxA+GAR +letter 𒆼 123-1-1245-1-12-1346-1-346-123-1-123 # LAGABxA+LAL +letter 𒆽 123-1-1245-1-12-1346-1-123 # LAGABxAL +letter 𒆾 123-1-1245-1-12-1346-1-1345 # LAGABxAN +letter 𒆿 123-1-1245-1-12-1346-1-146-1356-24-145-1-2345-15-1345-136 # LAGABxAshZIDAtenu +letter 𒇀 1245-24-1245-24-1235 # GIGIR +letter 𒇁 123-1-1245-1-12-1346-12-24 # LAGABxBI +letter 𒇂 123-1-1245-1-12-1346-145-345 # LAGABxDAR +letter 𒇃 123-1-1245-1-12-1346-15-1345 # LAGABxEN +letter 𒇄 123-1-1245-1-12-1346-1245-1 # LAGABxGA +letter 𒇅 123-1-1245-1-12-1346-1245-345 # LAGABxGAR +letter 𒇆 123-1-1245-1-12-1346-1245-136-145 # LAGABxGUD +letter 𒇇 123-1-1245-1-12-1346-1245-136-145-346-1245-136-145 # LAGABxGUD+GUD +letter 𒇈 123-1-1245-1-12-1346-125-1 # LAGABxHA +letter 𒇉 15-1345-1245-136-1235 # ENGUR +letter 𒇊 123-1-1245-1-12-1346-125-24-1346-1345-136-1345 # LAGABxHIxNUN +letter 𒇋 123-1-1245-1-12-1346-24-1245-24-1245-136-1345-136 # LAGABxIGIgunu +letter 𒇌 123-1-1245-1-12-1346-24-134 # LAGABxIM +letter 𒇍 123-1-1245-1-12-1346-24-134-346-125-1 # LAGABxIM+HA +letter 𒇎 123-1-1245-1-12-1346-24-134-346-123-136 # LAGABxIM+LU +letter 𒇏 123-1-1245-1-12-1346-13-24 # LAGABxKI +letter 𒇐 123-1-1245-1-12-1346-13-24-1345 # LAGABxKIN +letter 𒇑 1245-345-24-134 # GARIM +letter 𒇒 123-1-1245-1-12-1346-13-136-123 # LAGABxKUL +letter 𒇓 123-1-1245-1-12-1346-13-136-123-346-125-24-346-1 # LAGABxKUL+HI+A +letter 𒇔 1345-24-1245-24-1345 # NIGIN +letter 𒇕 123-1-1245-1-12-1346-123-24-146 # LAGABxLIsh +letter 𒇖 123-1-1245-1-12-1346-123-136 # LAGABxLU +letter 𒇗 123-1-1245-1-12-1346-123-136-123 # LAGABxLUL +letter 𒇘 123-1-1245-1-12-1346-134-15 # LAGABxME +letter 𒇙 123-1-1245-1-12-1346-134-15-346-15-1345 # LAGABxME+EN +letter 𒇚 123-1-1245-1-12-1346-134-136-146 # LAGABxMUsh +letter 𒇛 136-145-136-12 # UDUB +letter 𒇜 123-1-1245-1-12-1346-146-15-346-234-136-134 # LAGABxshE+SUM +letter 𒇝 123-1-1245-1-12-1346-146-24-2345-1-346-1245-24-146-346-15-1235-24-1345-23 # LAGABxshITA+GIsh+ERIN2 +letter 𒇞 123-1-1245-1-12-1346-146-24-2345-1-346-1245-24-146-2345-15-1345-136 # LAGABxshITA+GIshtenu +letter 𒇟 123-1-1245-1-12-1346-146-136-23 # LAGABxshU2 +letter 𒇠 123-1-1245-1-12-1346-146-136-23-346-146-136-23 # LAGABxshU2+shU2 +letter 𒇡 1356-345 # ZAR +letter 𒇢 123-1-1245-1-12-1346-2345-1-1245 # LAGABxTAG +letter 𒇣 123-1-1245-1-12-1346-2345-1-13-256 # LAGABxTAK4 +letter 𒇤 123-1-1245-1-12-1346-2345-15-346-1-346-234-136-346-1345-1 # LAGABxTE+A+SU+NA +letter 𒇥 1245-24-1245-24-1235 # GIGIR +letter 𒇦 123-1-1245-1-12-1346-136-346-1 # LAGABxU+A +letter 𒇧 12-136-123 # BUL +letter 𒇨 123-1-1245-1-12-1346-136-23-346-1-146 # LAGABxU2+Ash +letter 𒇪 123-1-1245-1-12-1346-136-145 # LAGABxUD +letter 𒇫 123-1-1245-1-12-1346-136-146 # LAGABxUsh +letter 𒇬 123-1-1245-1-12-234-12345-136-345-15-145 # LAGABsquared +letter 𒇭 123-1-1245-345 # LAGAR +letter 𒇮 234-136-2356 # SU7 +letter 𒇯 123-1-1245-345-1346-146-15-346-234-136-134 # LAGARxshE+SUM +letter 𒇰 145-136-235 # DU6 +letter 𒇱 123-1-1245-345-1245-136-1345-136-34-123-1-1245-345-1245-136-1345-136-146-15 # LAGARgunu/LAGARgunushE +letter 𒇲 123-1-125-146-136 # LAHshU +letter 𒇳 123-1-23 # LA2 +letter 𒇴 123-1-123-23 # LAL2 +letter 𒇵 12-1-124-1235-135-134-1245-1-1345-12-1 # BAfromGANBA +letter 𒇶 15-146-23-23 # Esh22 +letter 𒇷 123-1-134-1346-13-136-1235-346-1235-136 # LAMxKUR+RU +letter 𒇸 123-24 # LI +letter 𒇹 123-24-123 # LIL +letter 𒇺 123-24-134-134-136-23 # LIMMU2 +letter 𒇻 145-24-123-24-134 # DILIM +letter 𒇼 136-145-136 # UDU +letter 𒇽 1-145 # AD +letter 𒇾 1234-15-1235-234-135-1345 # Person +letter 𒇿 123-136-23-1346-1-123 # LU2xAL +letter 𒈀 123-136-23-1346-12-1-145 # LU2xBAD +letter 𒈁 123-136-23-1346-15-146-23 # LU2xEsh2 +letter 𒈂 123-136-23-1346-15-146-23-2345-15-1345-136 # LU2xEsh2tenu +letter 𒈃 123-136-23-1346-1245-1-1345-23-2345-15-1345-136 # LU2xGAN2tenu +letter 𒈄 123-136-23-1346-125-24-1346-12-1-145 # LU2xHIxBAD +letter 𒈅 123-136-23-1346-24-134 # LU2xIM +letter 𒈆 123-136-23-1346-13-1-145-23 # LU2xKAD2 +letter 𒈇 123-136-23-1346-13-1-145-25 # LU2xKAD3 +letter 𒈈 123-136-23-1346-13-1-145-25-346-1-146 # LU2xKAD3+Ash +letter 𒈉 123-136-23-1346-13-24 # LU2xKI +letter 𒈊 123-136-23-1346-123-1-346-1-146 # LU2xLA+Ash +letter 𒈋 123-136-23-1346-123-1-1245-1-12 # LU2xLAGAB +letter 𒈌 123-136-23-1346-134-15-346-15-1345 # LU2xME+EN +letter 𒈍 145-136-2-256 # DU14 +letter 𒈎 123-136-23-1346-1345-136 # LU2xNU +letter 𒈏 123-136-23-1346-234-24-346-1-146 # LU2xSI+Ash +letter 𒈐 123-136-23-1346-234-24-13-23-346-12-136 # LU2xSIK2+BU +letter 𒈑 1-1356-123-1-1245-2356 # AZLAG7 +letter 𒈒 123-136-23-2345-15-1345-136 # LU2tenu +letter 𒈓 123-136-23-14-1235-135-234-234-24-1345-1245-123-136-23 # LU2crossingLU2 +letter 𒈔 123-136-23-135-1234-1234-135-234-24-1345-1245-123-136-23 # LU2opposingLU2 +letter 𒈕 123-136-23-234-12345-136-345-15-145 # LU2squared +letter 𒈖 145-24-134-25 # DIM3 +letter 𒈗 1245-136-1245 # GUG +letter 𒈘 123-136-1245-1-123 # LUGAL +letter 𒈙 145-1-145-1235-136-134 # DADRUM +letter 𒈚 123-136-1245-1-123-135-1234-1234-135-234-24-1345-1245-123-136-1245-1-123 # LUGALopposingLUGAL +letter 𒈛 123-136-1245-1-123-146-15-146-24-1245 # LUGALsheshig +letter 𒈜 123-136-125 # LUH +letter 𒈝 1345-345 # NAR +letter 𒈞 125-136-134 # HUM +letter 𒈟 123-136-134-34-123-136-134 # LUM/LUM +letter 𒈠 123-136-1245-136-145 # LUGUD +letter 𒈡 134-1 # MA +letter 𒈢 134-1-1346-2345-1-13-256 # MAxTAK4 +letter 𒈣 125-1-146-136-1235 # HASHUR +letter 𒈤 134-1-23 # MA2 +letter 𒈥 134-1-125 # MAH +letter 𒈦 134-345 # MAR +letter 𒈧 134-1-146 # MAsh +letter 𒈨 134-1-146-23 # MAsh2 +letter 𒈩 134-15 # ME +letter 𒈪 1235-24-145 # RID +letter 𒈫 1245-24-235 # GI6 +letter 𒈬 134-24-1345 # MIN +letter 𒈭 1245-136-2-356 # GU10 +letter 𒈮 2345-1-125 # TAH +letter 𒈯 135-1-13-136-134 # oakum +letter 𒈰 1356-1-145-24-134 # ZADIM +letter 𒈱 134-136-1345-146-136-12 # MUNshUB +letter 𒈲 134-136-1235-1245-136-23 # MURGU2 +letter 𒈳 134-136-146 # MUsh +letter 𒈴 134-136-146-1346-1 # MUshxA +letter 𒈵 134-136-146-1346-13-136-1235 # MUshxKUR +letter 𒈶 134-136-146-1346-1356-1 # MUshxZA +letter 𒈷 1235-24-236 # RI8 +letter 𒈸 134-136-146-34-134-136-146-1346-1-346-1345-1 # MUsh/MUshxA+NA +letter 𒈹 134-136-146-14-1235-135-234-234-24-1345-1245-134-136-146 # MUshcrossingMUsh +letter 𒈺 24-1345-1-1345-1345-1 # INANNA +letter 𒈻 134-136-146-25-1346-1 # MUsh3xA +letter 𒈼 134-136-146-25-1346-1-346-145-24 # MUsh3xA+DI +letter 𒈽 134-136-146-25-1346-145-24 # MUsh3xDI +letter 𒈾 234-136-125 # SUH +letter 𒈿 1345-1 # Na +letter 𒉀 1345-136-23 # NU2 +letter 𒉁 1345-24-234-1-12-1 # NISABA +letter 𒉂 125-1-13456-1-23-25-236 # HAYA238 +letter 𒉃 1345-1-1245-1-1346-146-136-2345-15-1345-136 # NAGAxshUtenu +letter 𒉄 1345-1-1245-1-135-1234-1234-135-234-24-1345-1245-1345-1-1245-1 # NAGAopposingNAGA +letter 𒉅 1-123-123-1 # ALLA +letter 𒉆 1345-1-134-1345-136-2345-24-123-123-136 # NAMNUTILLU +letter 𒉇 1345-1-134 # NAM +letter 𒉈 1345-1-134-23 # NAM2 +letter 𒉉 12-24-23 # BI2 +letter 𒉊 1345-15-1346-1 # NExA +letter 𒉋 1345-15-1346-136-145 # NExUD +letter 𒉌 12-24-123 # BIL +letter 𒉍 24-25 # I3 +letter 𒉎 1345-24-1346-15 # NIxE +letter 𒉏 1345-24-23 # NI2 +letter 𒉐 1345-136-134 # NUM +letter 𒉑 1345-24-134-1346-1245-1-1345-23-2345-15-1345-136 # NIMxGAN2tenu +letter 𒉒 1345-24-134-1346-1245-345-346-1245-1-1345-23-2345-15-1345-136 # NIMxGAR+GAN2tenu +letter 𒉓 1345-24-1345-145-1-23 # NINDA2 +letter 𒉔 1345-24-1345-145-1-23-1346-1-1345 # NINDA2xAN +letter 𒉕 1345-24-1345-145-1-23-1346-1-146 # NINDA2xAsh +letter 𒉖 1345-24-1345-145-1-23-1346-1-146-346-1-146 # NINDA2xAsh+Ash +letter 𒉗 1345-24-1345-145-1-23-1346-1245-136-145 # NINDA2xGUD +letter 𒉘 1345-24-1345-145-1-23-1346-134-15-346-1245-1-1345-23-2345-15-1345-136 # NINDA2xME+GAN2tenu +letter 𒉙 1-1245 # AG +letter 𒉚 1-1356-136 # AZU +letter 𒉛 1345-24-1345-145-1-23-1346-146-15 # NINDA2xshE +letter 𒉜 146-1-134-23 # shAM2 +letter 𒉝 1345-24-1345-145-1-23-1346-146-15-346-1-146 # NINDA2xshE+Ash +letter 𒉞 1345-24-1345-145-1-23-1346-146-15-346-1-146-346-1-146 # NINDA2xshE+Ash+Ash +letter 𒉟 1345-24-1345-145-1-23-1346-136-23-346-1-146 # NINDA2xU2+Ash +letter 𒉠 1345-24-1345-145-1-23-1346-136-146 # NINDA2xUsh +letter 𒉡 134-136-1235-136-23 # MURU2 +letter 𒉢 1345-136 # NU +letter 𒉣 146-24-1235 # shIR +letter 𒉤 15-1235-24-145-136 # eridu +letter 𒉥 1345-136-1345-123-1-1245-345-1346-1245-345 # NUNLAGARxGAR +letter 𒉦 1345-136-1345-123-1-1245-345-1346-134-1-146 # NUNLAGARxMAsh +letter 𒉧 1345-136-1345-123-1-1245-345-1346-234-1-123 # NUNLAGARxSAL +letter 𒉨 1345-136-1345-123-1-1245-345-1346-234-1-123-34-1345-136-1345-123-1-1245-345-1346-234-1-123 # NUNLAGARxSAL/NUNLAGARxSAL +letter 𒉩 1345-136-1345-123-1-1245-345-1346-136-146 # NUNLAGARxUsh +letter 𒉪 1345-136-1345-2345-15-1345-136 # NUNtenu +letter 𒉫 1345-24-1235 # NIR +letter 𒉬 1345-136-1345-14-1235-135-234-234-24-1345-1245-1345-136-1345 # NUNcrossingNUN +letter 𒉭 1345-136-1345-14-1235-135-234-234-24-1345-1245-1345-136-1345-123-1-1245-345-34-123-1-1245-345 # NUNcrossingNUNLAGAR/LAGAR +letter 𒉮 1345-136-1345-136-1356 # NUNUZ +letter 𒉯 136-234-1-1345-25 # USAN3 +letter 𒉰 134-136-145-25 # MUD3 +letter 𒉱 1345-136-1345-136-1356-1-12-23-1346-145-136-1245 # NUNUZAB2xDUG +letter 𒉲 1345-136-1345-136-1356-1-12-23-1346-1245-136-145 # NUNUZAB2xGUD +letter 𒉳 1345-136-1345-136-1356-1-12-23-1346-24-1245-24-1245-136-1345-136 # NUNUZAB2xIGIgunu +letter 𒉴 1345-136-1345-136-1356-1-12-23-1346-13-1-145-25 # NUNUZAB2xKAD3 +letter 𒉵 123-1-125-2345-1-1345 # LAHTAN +letter 𒉶 1345-136-1345-136-1356-1-12-23-1346-1345-15 # NUNUZAB2xNE +letter 𒉷 123-1-125-2345-1-1345-23 # LAHTAN2 +letter 𒉸 1345-136-1345-136-1356-1-12-23-1346-136-23 # NUNUZAB2xU2 +letter 𒉹 134-136-145-25 # MUD3 +letter 𒉺 134-136-145-25 # MUD3 +letter 𒉻 1245-24-145-1235-136 # GIDRU +letter 𒉼 146-136-13 # shUK +letter 𒉽 1234-1-1345 # PAN +letter 𒉾 1234-1-12 # PAB +letter 𒉿 1234-15-146-23 # PEsh2 +letter 𒊀 2345-1-123-23 # TAL2 +letter 𒊁 1234-24-1346-1 # PIxA +letter 𒊂 1234-24-1346-1-12 # PIxAB +letter 𒊃 1234-24-1346-12-24 # PIxBI +letter 𒊄 1234-24-1346-12-136 # PIxBU +letter 𒊅 1234-24-1346-12-136 # PIxBU +letter 𒊆 1234-24-1346-24 # PIxI +letter 𒊇 1234-24-1346-24-12 # PIxIB +letter 𒊈 1234-24-1346-136 # PIxU +letter 𒊉 1234-24-1346-136-23 # PIxU2 +letter 𒊊 1234-24-14-1235-135-234-234-24-1345-1245-1234-24 # PIcrossingPI +letter 𒊋 1234-24-1235-24-1245 # PIRIG +letter 𒊌 1234-24-1235-24-1245-1346-13-1-123 # PIRIGxKAL +letter 𒊍 136-1245 # UG +letter 𒊎 1-1356 # AZ +letter 𒊏 1234-24-1235-24-1245-135-1234-1234-135-234-24-1345-1245-1234-24-1235-24-1245 # PIRIGopposingPIRIG +letter 𒊐 1235-1 # RA +letter 𒊑 1235-1-12 # RAB +letter 𒊒 145-1-123 # DAL +letter 𒊓 1235-136 # RU +letter 𒊔 234-1 # SA +letter 𒊕 234-1-1245-1345-136-2345-24-123-123-136 # SAGNUTILLU +letter 𒊖 234-1-1245 # SAG +letter 𒊗 234-1-1245-1346-1 # SAGxA +letter 𒊘 234-1-1245-1346-145-136 # SAGxDU +letter 𒊙 234-1-1245-1346-145-136-12 # SAGxDUB +letter 𒊚 234-1-1245-1346-125-1 # SAGxHA +letter 𒊛 234-1-1245-1346-13-1-13 # SAGxKAK +letter 𒊜 234-1-1245-1346-13-136-1235 # SAGxKUR +letter 𒊝 234-1-1245-1346-123-136-134 # SAGxLUM +letter 𒊞 234-1-1245-1346-134-24 # SAGxMI +letter 𒊟 234-1-1245-1346-1345-136-1345 # SAGxNUN +letter 𒊠 234-1-1245-1346-234-1-123 # SAGxSAL +letter 𒊡 234-1-1245-1346-146-24-145 # SAGxshID +letter 𒊢 234-1-1245-1346-2345-1-12 # SAGxTAB +letter 𒊣 234-1-1245-1346-136-23 # SAGxU2 +letter 𒊤 234-1-1245-1346-136-12 # SAGxUB +letter 𒊥 234-1-1245-1346-136-134 # SAGxUM +letter 𒊦 234-1-1245-1346-136-1235 # SAGxUR +letter 𒊧 234-1-1245-1346-136-146 # SAGxUsh +letter 𒊨 234-1-1245-34-234-1-1245 # SAG/SAG +letter 𒊩 145-136-123-25 # DUL3 +letter 𒊪 134-24-23 # MI2 +letter 𒊫 234-1-123-123-1-1245-1-12-1346-1-146-23 # SALLAGABxAsh2 +letter 𒊬 234-1-1345-1245-1-23 # SANGA2 +letter 𒊭 134-136-23 # MU2 +letter 𒊮 146-1 # shA +letter 𒊯 146-1-1245-256 # shAG4 +letter 𒊰 1234-15-146-256 # PEsh4 +letter 𒊱 146-1-25-1346-12-1-145 # shA3xBAD +letter 𒊲 146-1-25-1346-1245-24-146 # shA3xGIsh +letter 𒊳 146-1-25-1346-1345-15 # shA3xNE +letter 𒊴 146-1-25-1346-146-136-23 # shA3xshU2 +letter 𒊵 146-1-25-1346-2345-136-1235 # shA3xTUR +letter 𒊶 146-1-25-1346-136 # shA3xU +letter 𒊷 12-24-1235-235 # BIR6 +letter 𒊸 234-1-1245-35 # SAG9 +letter 𒊹 146-1-12-235 # shAB6 +letter 𒊺 2345-24-23 # TI2 +letter 𒊻 146-15 # shE +letter 𒊼 146-15-125-136 # shEHU +letter 𒊽 146-15-34-146-15-1245-1-145-34-1245-1-145-1245-345-34-1245-345 # shE/shEGAD/GADGAR/GAR +letter 𒊾 146-15-34-146-15-2345-1-12-34-2345-1-12-1245-345-34-1245-345 # shE/shETAB/TABGAR/GAR +letter 𒊿 146-15-1245-35 # shEG9 +letter 𒋀 234-136-1346-1 # SUxA +letter 𒋁 136-1235-24-25 # URI3 +letter 𒋂 146-15-146-23 # shEsh2 +letter 𒋃 146-15-146-123-1-134 # shEshLAM +letter 𒋄 123-1-1245 # LAG +letter 𒋅 136-134-12-24-234-1-1245-23 # UMBISAG2 +letter 𒋆 146-24-145-1346-24-134 # shIDxIM +letter 𒋇 146-24-134 # shIM +letter 𒋈 146-24-134-1346-1 # shIMxA +letter 𒋉 146-24-134-1346-12-1-123 # shIMxBAL +letter 𒋊 146-24-134-1346-12-136-123-136-1245 # shIMxBULUG +letter 𒋋 146-24-134-1346-145-24-1345 # shIMxDIN +letter 𒋌 146-24-134-1346-1245-345 # shIMxGAR +letter 𒋍 146-24-134-1346-24-1245-24 # shIMxIGI +letter 𒋎 146-24-134-1346-24-1245-24-1245-136-1345-136 # shIMxIGIgunu +letter 𒋏 146-24-134-1346-13-136-146-136-23 # shIMxKUshU2 +letter 𒋐 146-24-134-1346-123-136-123 # shIMxLUL +letter 𒋑 146-24-134-1346-134-136-1245 # shIMxMUG +letter 𒋒 146-24-134-1346-234-1-123 # shIMxSAL +letter 𒋓 146-24-1345-24-1245 # shINIG +letter 𒋔 146-24-1235 # shIR +letter 𒋕 146-24-1235-2345-15-1345-136 # shIRtenu +letter 𒋖 146-24-1235-34-146-24-1235-12-136-1235-34-12-136-1235 # shIR/shIRBUR/BUR +letter 𒋗 1245-1-23 # GA2 +letter 𒋘 146-136 # shU +letter 𒋙 146-136-34-146-136 # shU/shU +letter 𒋚 146-136-23 # shU2 +letter 𒋛 146-136-12-136-1235 # shUBUR +letter 𒋜 134-1 # MA +letter 𒋝 234-136-256 # SU4 +letter 𒋞 234-24-1245 # SIG +letter 𒋟 134-136-1235-1245-136 # MURGU +letter 𒋠 234-24-1245-256-34-234-24-1245-256-146-136-23 # SIG4/SIG4shU2 +letter 𒋡 234-24-1245-23 # SIG2 +letter 𒋢 234-24-123-1-25 # SILA3 +letter 𒋣 13-136-146 # KUsh +letter 𒋤 234-136-34-234-136 # SU/SU +letter 𒋥 12-136-1245-136-1345-136 # BUgunu +letter 𒋦 234-136-145-23 # SUD2 +letter 𒋧 234-136-125-136-1235 # SUHUR +letter 𒋨 146-136-134-23 # shUM2 +letter 𒋩 234-136-134-1-146 # SUMAsh +letter 𒋪 234-136-1235 # SUR +letter 𒋫 234-136-1235-35 # SUR9 +letter 𒋬 2345-1 # TA +letter 𒋭 2345-1 # TA +letter 𒋮 123-1-123-25 # LAL3 +letter 𒋯 2345-1-1346-134-24 # TAxMI +letter 𒋰 2345-1-1245-136-1345-136 # TAgunu +letter 𒋱 2345-1-12 # TAB +letter 𒋲 2345-1-12-34-2345-1-12-1345-24-34-1345-24-145-24-146-34-145-24-146 # TAB/TABNI/NIDIsh/DIsh +letter 𒋳 2345-1-12-234-12345-136-345-15-145 # TABSquared +letter 𒋴 2345-1-1245 # TAG +letter 𒋵 2345-1-1245-1346-12-24 # TAGxBI +letter 𒋶 2345-1-1245-1346-1245-136-145 # TAGxGUD +letter 𒋷 2345-1-1245-1346-146-15 # TAGxshE +letter 𒋸 2345-1-1245-1346-146-136 # TAGxshU +letter 𒋹 2345-1-1245-1346-2345-136-1245-23 # TAGxTUG2 +letter 𒋺 2345-1-1245-1346-136-145 # TAGxUD +letter 𒋻 13-24-145-23 # KID2 +letter 𒋼 2345-345 # TAR +letter 𒋽 1245-1-123-26 # GAL5 +letter 𒋾 136-1235-136-26 # URU5 +letter 𒋿 145-24 # DI +letter 𒌀 2345-24-2345-15-1345-136 # TItenu +letter 𒌁 2345-24-123 # TIL +letter 𒌂 2345-24-1235 # TIR +letter 𒌃 2345-24-1235-1346-2345-1-13-256 # TIRxTAK4 +letter 𒌄 1345-24-1345-1345-24-26 # NINNI5 +letter 𒌅 2345-24-1235-34-2345-24-1235-1245-1-145-34-1245-1-145-1245-345-34-1245-345 # TIR/TIRGAD/GADGAR/GAR +letter 𒌆 145-136-23 # DU2 +letter 𒌇 1345-1-134-23 # NAM2 +letter 𒌈 145-136-2-23 # DU12 +letter 𒌉 145-136-256 # DU4 +letter 𒌊 145-136-2-25 # DU13 +letter 𒌋 2345-136-1235-34-2345-136-1235-1356-1-34-1356-1 # TUR/TURZA/ZA +letter 𒌌 12-136-1235-25 # BUR3 +letter 𒌍 136-123 # UL +letter 𒌎 15-146 # Esh +letter 𒌏 136-34-136-1234-1-34-1234-1-1245-345-34-1245-345 # U/UPA/PAGAR/GAR +letter 𒌐 136-34-136-234-136-1235-34-234-136-1235 # U/USUR/SUR +letter 𒌑 134-1-146-1245-24 # MAshGI +letter 𒌒 136-23 # U2 +letter 𒌓 345-23 # AR2 +letter 𒌔 12-1-12-12-345 # BABBAR +letter 𒌕 136-125-23 # UH2 +letter 𒌖 136-145-1346-12-1-145 # UDxBAD +letter 𒌗 24-2345-24-134-1-23 # ITIMA2 +letter 𒌘 145-136-2-235 # DU16 +letter 𒌙 136-145-1346-136-346-136-346-136-1245-136-1345-136 # UDxU+U+Ugunu +letter 𒌚 136-145-1245-136-1345-136 # UDgunu +letter 𒌛 24-2345-24 # ITI +letter 𒌜 136-145-146-15-146-24-1245-1346-12-1-145 # UDsheshigxBAD +letter 𒌝 136-145-136-1245 # UDUG +letter 𒌞 136-134 # UM +letter 𒌟 136-134-1346-123-1-1245-1-12 # UMxLAGAB +letter 𒌠 136-134-1346-134-15-346-145-1 # UMxME+DA +letter 𒌡 136-134-1346-146-1-25 # UMxshA3 +letter 𒌢 136-134-1346-136 # UMxU +letter 𒌣 136-134-12-24-1345 # UMBIN +letter 𒌤 145-136-2-35 # DU19 +letter 𒌥 145-15-23 # DE2 +letter 𒌦 136-134-136-134-1346-1234-1 # UMUMxPA +letter 𒌧 13-1-123-1-134 # KALAM +letter 𒌨 136-1345-1245-136-1345-136 # UNgunu +letter 𒌩 125-136-123 # HUL +letter 𒌪 136-1235-14-1235-135-234-234-24-1345-1245-136-1235 # URcrossingUR +letter 𒌫 136-1235-146-15-146-24-1245 # URsheshig +letter 𒌬 136-1235-23 # UR2 +letter 𒌭 136-1235-23-1346-1-346-125-1 # UR2xA+HA +letter 𒌮 136-1235-23-1346-1-346-1345-1 # UR2xA+NA +letter 𒌯 136-1235-23-1346-1-123 # UR2xAL +letter 𒌰 136-1235-23-1346-125-1 # UR2xHA +letter 𒌱 136-1235-23-1346-1345-136-1345 # UR2xNUN +letter 𒌲 136-1235-23-1346-136-23 # UR2xU2 +letter 𒌳 136-1235-23-1346-136-23-346-1-146 # UR2xU2+Ash +letter 𒌴 136-1235-23-1346-136-23-346-12-24 # UR2xU2+BI +letter 𒌵 136-1235-256 # UR4 +letter 𒌶 12-136-1235-34-12-136-1235 # BUR/BUR +letter 𒌷 136-1235-24-25 # URI3 +letter 𒌸 1235-24-23 # RI2 +letter 𒌹 136-1235-136-1346-1 # URUxA +letter 𒌺 136-1235-136-1346-1-146-1245-1-12 # URUxAshGAB +letter 𒌻 136-13-13-24-1345 # UKKIN +letter 𒌼 136-1235-136-1346-145-136-1345 # URUxDUN +letter 𒌽 136-1235-136-1346-1245-1 # URUxGA +letter 𒌾 136-1235-136-1346-1245-1-123 # URUxGAL +letter 𒌿 136-1235-136-1346-1245-1-1345-23-2345-15-1345-136 # URUxGAN2tenu +letter 𒍀 136-1235-136-1346-1245-345 # URUxGAR +letter 𒍁 136-1235-136-1346-1245-136 # URUxGU +letter 𒍂 136-1235-136-1346-125-1 # URUxHA +letter 𒍃 136-1235-136-1346-24-1245-24 # URUxIGI +letter 𒍄 136-1235-136-1346-24-134 # URUxIM +letter 𒍅 136-1235-136-1346-24-146 # URUxIsh +letter 𒍆 136-1235-136-1346-13-24 # URUxKI +letter 𒍇 136-1235-136-1346-123-136-134 # URUxLUM +letter 𒍈 136-123-136-25 # ULU3 +letter 𒍉 136-1235-136-1346-1234-1 # URUxPA +letter 𒍊 136-1235-136-1346-146-15 # URUxshE +letter 𒍋 136-1235-136-1346-234-24-1245-256 # URUxSIG4 +letter 𒍌 136-1235-136-1346-2345-136 # URUxTU +letter 𒍍 136-1235-136-1346-136-346-1245-136-145 # URUxU+GUD +letter 𒍎 136-1235-136-1346-136-145 # URUxUD +letter 𒍏 12-1-1345-146-136-1235 # BANshUR +letter 𒍐 136-1235-136-145-136 # URUDU +letter 𒍑 136-1235-136-145-1-1346-136 # URUDAxU +letter 𒍒 1345-24-2345-1 # NITA +letter 𒍓 136-146-1346-1 # UshxA +letter 𒍔 136-146-1346-13-136 # UshxKU +letter 𒍕 136-146-1346-13-136-1235 # UshxKUR +letter 𒍖 136-146-1346-2345-1-13-256 # UshxTAK4 +letter 𒍗 1356 # Z +letter 𒍘 134-136-2345-136 # MuTU +letter 𒍙 136-146-136-134-1346 # UshUMX +letter 𒍚 136-2345-136-13-24 # UTUKI +letter 𒍛 136-1356-25 # UZ3 +letter 𒍜 136-1356-25-1346-13-1-234-13-1-123 # UZ3xKASKAL +letter 𒍝 136-1356-136 # UZU +letter 𒍞 1356-1 # ZA +letter 𒍟 1-234-256 # AS4 +letter 𒍠 1356-1-234-12345-136-345-15-145-1346-13-136-1235 # ZAsquaredxKUR +letter 𒍡 1356-1-25 # ZA3 +letter 𒍢 1356-1-134-1346 # ZAMX +letter 𒍣 1356-24-23 # ZI2 +letter 𒍤 1356-15-2 # ZE1 +letter 𒍥 1356-24-34-1356-24 # ZI/ZI +letter 𒍦 1356-24-25 # ZI3 +letter 𒍧 1356-24-12 # ZIB +letter 𒍨 1356-24-12-13-1-12-1-2345-15-1345-136 # ZIBKABAtenu +letter 𒍩 1356-24-13 # ZIK +letter 𒍪 1356-24-1356-23 # ZIZ2 +letter 𒍫 234-136 # SU +letter 𒍬 1356-136-26 # ZU5 +letter 𒍭 1356-136-26-1346-1 # ZU5xA +letter 𒍮 1356-136-12-136-1235 # ZUBUR +letter 𒍯 1356-136-134 # ZUM +letter 𒍰 13-1-1234-15-123-1-134-24-2345-15 # KAPELAMITE +letter 𒍱 1-12-1346-1345-136-1345 # ABxNUN +letter 𒍲 1-12-23-1346-1 # AB2xA +letter 𒍳 1-134-345-1346-13-136-1245 # AMARxKUG +letter 𒍴 145-1-1245-13-24-234-24-134-26-1346-136-23-346-134-1-146 # DAGKISIM5xU2+MAsh +letter 𒍵 145-1-1245-25 # DAG3 +letter 𒍶 145-24-146-346-146-136 # DIsh+shU +letter 𒍷 145-136-12-1346-146-15 # DUBxshE +letter 𒍸 15-1356-15-1345-1346-1245-136-145 # EZENxGUD +letter 𒍹 15-1356-15-1345-1346-146-15 # EZENxshE +letter 𒍺 1245-1-23-1346-1-1345-346-13-1-13-346-1 # GA2xAN+KAK+A +letter 𒍻 1245-1-23-1346-1-146-23 # GA2xAsh2 +letter 𒍼 1245-15-23-23 # GE22 +letter 𒍽 1245-24-1245 # GIG +letter 𒍾 125-136-146 # HUsh +letter 𒍿 13-1-1346-1-1345-146-15 # KAxANshE +letter 𒎀 13-1-1346-1-146-25 # KAxAsh3 +letter 𒎁 13-1-1346-1245-24-146 # KAxGIsh +letter 𒎂 13-1-1346-1245-136-145 # KAxGUD +letter 𒎃 13-1-1346-125-24-1346-1-146-23 # KAxHIxAsh2 +letter 𒎄 13-1-1346-123-136-134 # KAxLUM +letter 𒎅 13-1-1346-1234-1 # KAxPA +letter 𒎆 13-1-1346-146-136-123 # KAxshUL +letter 𒎇 13-1-1346-2345-136 # KAxTU +letter 𒎈 13-1-1346-136-1235-23 # KAxUR2 +letter 𒎉 123-1-1245-1-12-1346-1245-24 # LAGABxGI +letter 𒎊 123-136-23-146-15-146-24-1245-1346-12-1-145 # LU2shEshIGxBAD +letter 𒎋 123-136-23-1346-15-146-23-346-123-1-123 # LU2xEsh2+LAL +letter 𒎌 123-136-23-1346-146-136 # LU2xshU +letter 𒎍 134-15-146 # MEsh +letter 𒎎 134-136-146-25-1346-1356-1 # MUsh3xZA +letter 𒎏 1345-1-256 # NA4 +letter 𒎐 1345-24-1345 # NIN +letter 𒎑 1345-24-1345-35 # NIN9 +letter 𒎒 1345-24-1345-145-1-23-1346-12-1-123 # NINDA2xBAL +letter 𒎓 1345-24-1345-145-1-23-1346-1245-24 # NINDA2xGI +letter 𒎔 1345-136-2-2-1235-135-2345-1-2345-15-145-35-356-45 # NU11rotated90^ +letter 𒎕 1234-15-146-23 # PEsh2 +letter 𒎖 1234-24-1235-23 # PIR2 +letter 𒎗 234-1-1245-1346-24-1245-24-1245-136-1345-136 # SAGxIGIgunu +letter 𒎘 2345-24-23 # TI2 +letter 𒎙 136-134-1346-134-15 # UMxME + +# Include additional braille tables +include spaces.uti +include litdigits6Dots.uti +include latinLetterDef6Dots.uti +include en-ueb-chardefs.uti diff --git a/braille/translate/src/phone/tables/akk.utb b/braille/translate/src/phone/tables/akk.utb new file mode 100644 index 000000000..db42c319f --- /dev/null +++ b/braille/translate/src/phone/tables/akk.utb @@ -0,0 +1,1002 @@ +# liblouis: Akkadian + +#-index-name: Akkadian, U.S. +#-display-name: Akkadian braille according to U.S. system + +#+language: akk +#+language: akk-Xsux +#+language: xhu +#+language: xhu-Xsux +#+language: peo +#+language: peo-Xsux +#+language: sux +#+language: sux-Xsux +#+language: xeb +#+language: xeb-Xsux +#+language: elx +#+language: elx-Xsux +#+language: hit +#+language: hit-Xsux +#+language: xur +#+language: xur-Xsux +#+language: xlu +#+language: xlu-Xsux +#+type: literary +#+contraction: no +#+dots: 6 +#+unicode-range: ucs4 + +#-license: lgpl-2.1 + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this file; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# liblouis comes with ABSOLUTELY NO WARRANTY. + +# Cuneiform, generally known as Akkadian, is a writing system that was +# used through several stages of development, from the 31st century BC +# down to the second century AD, and preserves documents in several +# languages which span from Sumerian to Greek. +# +# There is no braille standard set for these languages or this writing +# system. Thus, this table is innovative, but does provide access to +# all of the Cuneiform signs that are currently represented by +# Unicode. This table provides support for the American system and is +# different than the German (Borger) system. If you are desireing +# access to the German system, please see the other Liblouis table for +# the full list of Borger names and corresponding braille. For more +# information on the different systems, please see: +# . For more +# information on the Akkadian language, please go to +# . +# +# This braille code was developed by a group of both blind and sighted +# scholars in an academic setting. Special thank you to Louis +# Saenz,Inbal Baum, and Shai Gordon for helping Matthew Yeater develop +# the braille code. Thank you to Ray McAllister, Sarah LaRose and Eric +# Harvey for their helpful contributions. + +#-maintainer: Paul Geoghegan +#-maintainer: Matityhau Yeshurun + +# Copyright (C) 2024 Matt Yeater and Paul Geoghegan + +# letter op code characters +letter 𒀀 1 # A +letter 𒀁 1-16-1 # A TIMES A +letter 𒀂 1-16-12-1-145 # A TIMES BAD +letter 𒀃 1-16-1245-1-1345-0-2345-15-1345-136 # A TIMES GAN2 TENU +letter 𒀄 1-16-125-1 # A TIMES HA +letter 𒀅 1-16-24-1245-24 # A TIMES IGI +letter 𒀆 1-16-123-1-1245-345-0-1245-136-1345-136 # A TIMES LAGAR GUNU +letter 𒀇 1-16-134-136-146 # A TIMES MUSH +letter 𒀈 1-16-234-1-1245 # A TIMES SAG +letter 𒀉 1 # A2 +letter 𒀊 1-12 # AB +letter 𒀋 1-12-16-1-146 # AB TIMES ASH2 +letter 𒀌 1-12-16-145-136-1345-25-0-1245-136-1345-136 # AB TIMES DUN3 GUNU +letter 𒀍 1-12-16-1245-1-123 # AB TIMES GAL +letter 𒀎 1-12-16-1245-1-1345-0-2345-15-1345-136 # AB TIMES GAN2 TENU +letter 𒀏 1-12-16-125-1 # AB TIMES HA +letter 𒀐 1-12-16-24-1245-24-0-1245-136-1345-136 # AB TIMES IGI GUNU +letter 𒀑 1-12-16-24-134-24-1345 # AB TIMES IMIN +letter 𒀒 1-12-16-123-1-1245-1-12 # AB TIMES LAGAB +letter 𒀓 1-12-16-146-15-146 # AB TIMES SHESH +letter 𒀔 1-12-16-136-346-136-346-136 # AB TIMES U PLUS U PLUS U +letter 𒀕 1-12-0-1245-136-1345-136 # AB GUNU +letter 𒀖 1-12 # AB2 +letter 𒀗 1-12-16-12-1-123-1-1245 # AB2 TIMES BALAG +letter 𒀘 1-12-16-1245-1-1345-0-2345-15-1345-136 # AB2 TIMES GAN2 TENU +letter 𒀙 1-12-16-134-15-346-15-1345 # AB2 TIMES ME PLUS EN +letter 𒀚 1-12-16-146-1-25 # AB2 TIMES SHA3 +letter 𒀛 1-12-16-2345-1-13-256 # AB2 TIMES TAK4 +letter 𒀜 1-145 # AD +letter 𒀝 1-13 # AK +letter 𒀞 1-13-16-15-1235-24-1345 # AK TIMES ERIN2 +letter 𒀟 1-13-16-146-24-2345-1-346-1245-24-146 # AK TIMES SHITA PLUS GISH +letter 𒀠 1-123 # AL +letter 𒀡 1-123-16-1-123 # AL TIMES AL +letter 𒀢 1-123-16-145-24-134 # AL TIMES DIM2 +letter 𒀣 1-123-16-1245-24-146 # AL TIMES GISH +letter 𒀤 1-123-16-125-1 # AL TIMES HA +letter 𒀥 1-123-16-13-1-145-25 # AL TIMES KAD3 +letter 𒀦 1-123-16-13-24 # AL TIMES KI +letter 𒀧 1-123-16-146-15 # AL TIMES SHE +letter 𒀨 1-123-16-136-146 # AL TIMES USH +letter 𒀩 1-123-1-1345 # ALAN +letter 𒀪 1-123-15-1234-125 # ALEPH +letter 𒀫 1-134-345 # AMAR +letter 𒀬 1-134-345-16-146-15 # AMAR TIMES SHE +letter 𒀭 1-1345 # AN +letter 𒀮 1-1345-34-1-1345 # AN OVER AN +letter 𒀯 1-1345-45-456-25 # AN THREE TIMES +letter 𒀰 1-1345-346-1345-1-1245-1-1246-1-1345-346-1345-1-1245-1 # AN PLUS NAGA OPPOSING AN PLUS NAGA +letter 𒀱 1-1345-346-1345-1-1245-1-45-456 # AN PLUS NAGA SQUARED +letter 𒀲 1-1345-146-15 # ANSHE +letter 𒀳 1-1234-24-1345 # APIN +letter 𒀴 345-1-145 # ARAD +letter 𒀵 345-1-145-16-13-136-1235 # ARAD TIMES KUR +letter 𒀶 345-13-1-12 # ARKAB +letter 𒀷 1-234-1-123 # ASAL2 +letter 𒀸 1-146 # ASH +letter 𒀹 1-146-0-1356-24-145-1-0-2345-15-1345-136 # ASH ZIDA TENU +letter 𒀺 1-146-0-13-1-12-1-0-2345-15-1345-136 # ASH KABA TENU +letter 𒀻 1-146-34-1-146-0-2345-136-1245-34-2345-136-1245-0-2345-136-1245-34-2345-136-1245-0-1234-1-1234 # ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP +letter 𒀼 1-146-34-1-146-34-1-146 # ASH OVER ASH OVER ASH +letter 𒀽 1-146-34-1-146-34-1-146-12346-1-146-34-1-146-34-1-146 # ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH +letter 𒀾 1-146 # ASH2 +letter 𒀿 1-146-1245-1-12 # ASHGAB +letter 𒁀 12-1 # BA +letter 𒁁 12-1-145 # BAD +letter 𒁂 12-1-1245-25 # BAG3 +letter 𒁃 12-1-125-345 # BAHAR2 +letter 𒁄 12-1-123 # BAL +letter 𒁅 12-1-123-34-12-1-123 # BAL OVER BAL +letter 𒁆 12-1-123-1-1245 # BALAG +letter 𒁇 12-345 # BAR +letter 𒁈 12-345-1 # BARA2 +letter 𒁉 12-24 # BI +letter 𒁊 12-24-16-1 # BI TIMES A +letter 𒁋 12-24-16-1245-345 # BI TIMES GAR +letter 𒁌 12-24-16-24-1245-24-0-1245-136-1345-136 # BI TIMES IGI GUNU +letter 𒁍 12-136 # BU +letter 𒁎 12-136-34-12-136-0-1-12 # BU OVER BU AB +letter 𒁏 12-136-34-12-136-0-136-1345 # BU OVER BU UN +letter 𒁐 12-136-12346-12-136 # BU CROSSING BU +letter 𒁑 12-136-123-136-1245 # BULUG +letter 𒁒 12-136-123-136-1245-34-12-136-123-136-1245 # BULUG OVER BULUG +letter 𒁓 12-136-1235 # BUR +letter 𒁔 12-136-1235 # BUR2 +letter 𒁕 145-1 # DA +letter 𒁖 145-1-1245 # DAG +letter 𒁗 145-1-1245-0-13-24-234-24-134-26-16-1-346-134-1-146 # DAG KISIM5 TIMES A PLUS MASH +letter 𒁘 145-1-1245-0-13-24-234-24-134-26-16-1-134-345 # DAG KISIM5 TIMES AMAR +letter 𒁙 145-1-1245-0-13-24-234-24-134-26-16-12-1-123-1-1245 # DAG KISIM5 TIMES BALAG +letter 𒁚 145-1-1245-0-13-24-234-24-134-26-16-12-24 # DAG KISIM5 TIMES BI +letter 𒁛 145-1-1245-0-13-24-234-24-134-26-16-1245-1 # DAG KISIM5 TIMES GA +letter 𒁜 145-1-1245-0-13-24-234-24-134-26-16-1245-1-346-134-1-146 # DAG KISIM5 TIMES GA PLUS MASH +letter 𒁝 145-1-1245-0-13-24-234-24-134-26-16-1245-24 # DAG KISIM5 TIMES GI +letter 𒁞 145-1-1245-0-13-24-234-24-134-26-16-1245-24-1235 # DAG KISIM5 TIMES GIR2 +letter 𒁟 145-1-1245-0-13-24-234-24-134-26-16-1245-136-145 # DAG KISIM5 TIMES GUD +letter 𒁠 145-1-1245-0-13-24-234-24-134-26-16-125-1 # DAG KISIM5 TIMES HA +letter 𒁡 145-1-1245-0-13-24-234-24-134-26-16-24-1235 # DAG KISIM5 TIMES IR +letter 𒁢 145-1-1245-0-13-24-234-24-134-26-16-24-1235-346-123-136 # DAG KISIM5 TIMES IR PLUS LU +letter 𒁣 145-1-1245-0-13-24-234-24-134-26-16-13-1-13 # DAG KISIM5 TIMES KAK +letter 𒁤 145-1-1245-0-13-24-234-24-134-26-16-123-1 # DAG KISIM5 TIMES LA +letter 𒁥 145-1-1245-0-13-24-234-24-134-26-16-123-136 # DAG KISIM5 TIMES LU +letter 𒁦 145-1-1245-0-13-24-234-24-134-26-16-123-136-346-134-1-146 # DAG KISIM5 TIMES LU PLUS MASH2 +letter 𒁧 145-1-1245-0-13-24-234-24-134-26-16-123-136-134 # DAG KISIM5 TIMES LUM +letter 𒁨 145-1-1245-0-13-24-234-24-134-26-16-1345-15 # DAG KISIM5 TIMES NE +letter 𒁩 145-1-1245-0-13-24-234-24-134-26-16-1234-1-1234-346-1234-1-1234 # DAG KISIM5 TIMES PAP PLUS PAP +letter 𒁪 145-1-1245-0-13-24-234-24-134-26-16-234-24 # DAG KISIM5 TIMES SI +letter 𒁫 145-1-1245-0-13-24-234-24-134-26-16-2345-1-13-256 # DAG KISIM5 TIMES TAK4 +letter 𒁬 145-1-1245-0-13-24-234-24-134-26-16-136-346-1245-24-1235 # DAG KISIM5 TIMES U2 PLUS GIR2 +letter 𒁭 145-1-1245-0-13-24-234-24-134-26-16-136-146 # DAG KISIM5 TIMES USH +letter 𒁮 145-1-134 # DAM +letter 𒁯 145-345 # DAR +letter 𒁰 145-345-1-25 # DARA3 +letter 𒁱 145-345-1-256 # DARA4 +letter 𒁲 145-24 # DI +letter 𒁳 145-24-12 # DIB +letter 𒁴 145-24-134 # DIM +letter 𒁵 145-24-134-16-146-15 # DIM TIMES SHE +letter 𒁶 145-24-134 # DIM2 +letter 𒁷 145-24-1345 # DIN +letter 𒁸 145-24-1345-0-13-1-234-13-1-123-0-136-0-1245-136-1345-136-0-145-24-146 # DIN KASKAL U GUNU DISH +letter 𒁹 145-24-146 # DISH +letter 𒁺 145-136 # DU +letter 𒁻 145-136-34-145-136 # DU OVER DU +letter 𒁼 145-136-0-1245-136-1345-136 # DU GUNU +letter 𒁽 145-136-0-146-15-146-24-1245 # DU SHESHIG +letter 𒁾 145-136-12 # DUB +letter 𒁿 145-136-12-16-15-146 # DUB TIMES ESH2 +letter 𒂀 145-136-12 # DUB2 +letter 𒂁 145-136-1245 # DUG +letter 𒂂 145-136-1245-136-145 # DUGUD +letter 𒂃 145-136-125 # DUH +letter 𒂄 145-136-1345 # DUN +letter 𒂅 145-136-1345-25 # DUN3 +letter 𒂆 145-136-1345-25-0-1245-136-1345-136 # DUN3 GUNU +letter 𒂇 145-136-1345-25-0-1245-136-1345-136-0-1245-136-1345-136 # DUN3 GUNU GUNU +letter 𒂈 145-136-1345-256 # DUN4 +letter 𒂉 145-136-1235 # DUR2 +letter 𒂊 15 # E +letter 𒂋 15-16-1234-1-1234 # E TIMES PAP +letter 𒂌 15-34-15-0-1345-136-1345-34-1345-136-1345 # E OVER E NUN OVER NUN +letter 𒂍 15 # E2 +letter 𒂎 15-16-1-346-125-1-346-145-1 # E2 TIMES A PLUS HA PLUS DA +letter 𒂏 15-16-1245-345 # E2 TIMES GAR +letter 𒂐 15-16-134-24 # E2 TIMES MI +letter 𒂑 15-16-234-1-123 # E2 TIMES SAL +letter 𒂒 15-16-146-15 # E2 TIMES SHE +letter 𒂓 15-16-136 # E2 TIMES U +letter 𒂔 15-145-24-1345 # EDIN +letter 𒂕 15-1245-24-1235 # EGIR +letter 𒂖 15-123 # EL +letter 𒂗 15-1345 # EN +letter 𒂘 15-1345-16-1245-1-1345 # EN TIMES GAN2 +letter 𒂙 15-1345-16-1245-1-1345-0-2345-15-1345-136 # EN TIMES GAN2 TENU +letter 𒂚 15-1345-16-134-15 # EN TIMES ME +letter 𒂛 15-1345-12346-15-1345 # EN CROSSING EN +letter 𒂜 15-1345-1246-15-1345 # EN OPPOSING EN +letter 𒂝 15-1345-45-456 # EN SQUARED +letter 𒂞 15-1235-15-1345 # EREN +letter 𒂟 15-1235-24-1345 # ERIN2 +letter 𒂠 15-146 # ESH2 +letter 𒂡 15-1356-15-1345 # EZEN +letter 𒂢 15-1356-15-1345-16-1 # EZEN TIMES A +letter 𒂣 15-1356-15-1345-16-1-346-123-1-123 # EZEN TIMES A PLUS LAL +letter 𒂤 15-1356-15-1345-16-1-346-123-1-123-16-123-1-123 # EZEN TIMES A PLUS LAL TIMES LAL +letter 𒂥 15-1356-15-1345-16-1-1345 # EZEN TIMES AN +letter 𒂦 15-1356-15-1345-16-12-1-145 # EZEN TIMES BAD +letter 𒂧 15-1356-15-1345-16-145-136-1345-25-0-1245-136-1345-136 # EZEN TIMES DUN3 GUNU +letter 𒂨 15-1356-15-1345-16-145-136-1345-25-0-1245-136-1345-136-0-1245-136-1345-136 # EZEN TIMES DUN3 GUNU GUNU +letter 𒂩 15-1356-15-1345-16-125-1 # EZEN TIMES HA +letter 𒂪 15-1356-15-1345-16-125-1-0-1245-136-1345-136 # EZEN TIMES HA GUNU +letter 𒂫 15-1356-15-1345-16-24-1245-24-0-1245-136-1345-136 # EZEN TIMES IGI GUNU +letter 𒂬 15-1356-15-1345-16-13-1-234-13-1-123 # EZEN TIMES KASKAL +letter 𒂭 15-1356-15-1345-16-13-1-234-13-1-123-45-456 # EZEN TIMES KASKAL SQUARED +letter 𒂮 15-1356-15-1345-16-13-136-25 # EZEN TIMES KU3 +letter 𒂯 15-1356-15-1345-16-123-1 # EZEN TIMES LA +letter 𒂰 15-1356-15-1345-16-123-1-123-16-123-1-123 # EZEN TIMES LAL TIMES LAL +letter 𒂱 15-1356-15-1345-16-123-24 # EZEN TIMES LI +letter 𒂲 15-1356-15-1345-16-123-136 # EZEN TIMES LU +letter 𒂳 15-1356-15-1345-16-136 # EZEN TIMES U2 +letter 𒂴 15-1356-15-1345-16-136-145 # EZEN TIMES UD +letter 𒂵 1245-1 # GA +letter 𒂶 1245-1-0-1245-136-1345-136 # GA GUNU +letter 𒂷 1245-1 # GA2 +letter 𒂸 1245-1-16-1-346-145-1-346-125-1 # GA2 TIMES A PLUS DA PLUS HA +letter 𒂹 1245-1-16-1-346-125-1 # GA2 TIMES A PLUS HA +letter 𒂺 1245-1-16-1-346-24-1245-24 # GA2 TIMES A PLUS IGI +letter 𒂻 1245-1-16-1-12-0-2345-15-1345-136-346-2345-1-12 # GA2 TIMES AB2 TENU PLUS TAB +letter 𒂼 1245-1-16-1-1345 # GA2 TIMES AN +letter 𒂽 1245-1-16-1-146 # GA2 TIMES ASH +letter 𒂾 1245-1-16-1-146-346-1245-1-123 # GA2 TIMES ASH2 PLUS GAL +letter 𒂿 1245-1-16-12-1-145 # GA2 TIMES BAD +letter 𒃀 1245-1-16-12-345-346-1235-1 # GA2 TIMES BAR PLUS RA +letter 𒃁 1245-1-16-12-136-1235 # GA2 TIMES BUR +letter 𒃂 1245-1-16-12-136-1235-346-1235-1 # GA2 TIMES BUR PLUS RA +letter 𒃃 1245-1-16-145-1 # GA2 TIMES DA +letter 𒃄 1245-1-16-145-24 # GA2 TIMES DI +letter 𒃅 1245-1-16-145-24-134-16-146-15 # GA2 TIMES DIM TIMES SHE +letter 𒃆 1245-1-16-145-136-12 # GA2 TIMES DUB +letter 𒃇 1245-1-16-15-123 # GA2 TIMES EL +letter 𒃈 1245-1-16-15-123-346-123-1 # GA2 TIMES EL PLUS LA +letter 𒃉 1245-1-16-15-1345 # GA2 TIMES EN +letter 𒃊 1245-1-16-15-1345-16-1245-1-1345-0-2345-15-1345-136 # GA2 TIMES EN TIMES GAN2 TENU +letter 𒃋 1245-1-16-1245-1-1345-0-2345-15-1345-136 # GA2 TIMES GAN2 TENU +letter 𒃌 1245-1-16-1245-345 # GA2 TIMES GAR +letter 𒃍 1245-1-16-1245-24 # GA2 TIMES GI +letter 𒃎 1245-1-16-1245-24-256 # GA2 TIMES GI4 +letter 𒃏 1245-1-16-1245-24-256-346-1 # GA2 TIMES GI4 PLUS A +letter 𒃐 1245-1-16-1245-24-1235-346-234-136 # GA2 TIMES GIR2 PLUS SU +letter 𒃑 1245-1-16-125-1-346-123-136-346-15-146 # GA2 TIMES HA PLUS LU PLUS ESH2 +letter 𒃒 1245-1-16-125-1-123 # GA2 TIMES HAL +letter 𒃓 1245-1-16-125-1-123-346-123-1 # GA2 TIMES HAL PLUS LA +letter 𒃔 1245-1-16-125-24-346-123-24 # GA2 TIMES HI PLUS LI +letter 𒃕 1245-1-16-125-136-12 # GA2 TIMES HUB2 +letter 𒃖 1245-1-16-24-1245-24-0-1245-136-1345-136 # GA2 TIMES IGI GUNU +letter 𒃗 1245-1-16-24-146-346-125-136-346-1-146 # GA2 TIMES ISH PLUS HU PLUS ASH +letter 𒃘 1245-1-16-13-1-13 # GA2 TIMES KAK +letter 𒃙 1245-1-16-13-1-234-13-1-123 # GA2 TIMES KASKAL +letter 𒃚 1245-1-16-13-24-145 # GA2 TIMES KID +letter 𒃛 1245-1-16-13-24-145-346-123-1-123 # GA2 TIMES KID PLUS LAL +letter 𒃜 1245-1-16-13-136-25-346-1-1345 # GA2 TIMES KU3 PLUS AN +letter 𒃝 1245-1-16-123-1 # GA2 TIMES LA +letter 𒃞 1245-1-16-134-15-346-15-1345 # GA2 TIMES ME PLUS EN +letter 𒃟 1245-1-16-134-24 # GA2 TIMES MI +letter 𒃠 1245-1-16-1345-136-1345 # GA2 TIMES NUN +letter 𒃡 1245-1-16-1345-136-1345-34-1345-136-1345 # GA2 TIMES NUN OVER NUN +letter 𒃢 1245-1-16-1234-1 # GA2 TIMES PA +letter 𒃣 1245-1-16-234-1-123 # GA2 TIMES SAL +letter 𒃤 1245-1-16-234-345 # GA2 TIMES SAR +letter 𒃥 1245-1-16-146-15 # GA2 TIMES SHE +letter 𒃦 1245-1-16-146-15-346-2345-136-1235 # GA2 TIMES SHE PLUS TUR +letter 𒃧 1245-1-16-146-24-145 # GA2 TIMES SHID +letter 𒃨 1245-1-16-234-136-134 # GA2 TIMES SUM +letter 𒃩 1245-1-16-2345-1-13-256 # GA2 TIMES TAK4 +letter 𒃪 1245-1-16-136 # GA2 TIMES U +letter 𒃫 1245-1-16-136-145 # GA2 TIMES UD +letter 𒃬 1245-1-16-136-145-346-145-136 # GA2 TIMES UD PLUS DU +letter 𒃭 1245-1-34-1245-1 # GA2 OVER GA2 +letter 𒃮 1245-1-12-1 # GABA +letter 𒃯 1245-1-12-1-12346-1245-1-12-1 # GABA CROSSING GABA +letter 𒃰 1245-1-145 # GAD +letter 𒃱 1245-1-145-34-1245-1-145-0-1245-345-34-1245-345 # GAD OVER GAD GAR OVER GAR +letter 𒃲 1245-1-123 # GAL +letter 𒃳 1245-1-123-0-1245-1-145-34-1245-1-145-0-1245-345-34-1245-345 # GAL GAD OVER GAD GAR OVER GAR +letter 𒃴 1245-1-123-1-134 # GALAM +letter 𒃵 1245-1-134 # GAM +letter 𒃶 1245-1-1345 # GAN +letter 𒃷 1245-1-1345 # GAN2 +letter 𒃸 1245-1-1345-0-2345-15-1345-136 # GAN2 TENU +letter 𒃹 1245-1-1345-34-1245-1-1345 # GAN2 OVER GAN2 +letter 𒃺 1245-1-1345-12346-1245-1-1345 # GAN2 CROSSING GAN2 +letter 𒃻 1245-345 # GAR +letter 𒃼 1245-345-25 # GAR3 +letter 𒃽 1245-1-146-1-1345 # GASHAN +letter 𒃾 1245-15-146-2345-24-1345 # GESHTIN +letter 𒃿 1245-15-146-2345-24-1345-16-13-136-1235 # GESHTIN TIMES KUR +letter 𒄀 1245-24 # GI +letter 𒄁 1245-24-16-15 # GI TIMES E +letter 𒄂 1245-24-16-136 # GI TIMES U +letter 𒄃 1245-24-12346-1245-24 # GI CROSSING GI +letter 𒄄 1245-24-256 # GI4 +letter 𒄅 1245-24-256-34-1245-24-256 # GI4 OVER GI4 +letter 𒄆 1245-24-256-12346-1245-24-256 # GI4 CROSSING GI4 +letter 𒄇 1245-24-145-24-134 # GIDIM +letter 𒄈 1245-24-1235 # GIR2 +letter 𒄉 1245-24-1235-0-1245-136-1345-136 # GIR2 GUNU +letter 𒄊 1245-24-1235-25 # GIR3 +letter 𒄋 1245-24-1235-25-16-1-346-24-1245-24 # GIR3 TIMES A PLUS IGI +letter 𒄌 1245-24-1235-25-16-1245-1-1345-0-2345-15-1345-136 # GIR3 TIMES GAN2 TENU +letter 𒄍 1245-24-1235-25-16-24-1245-24 # GIR3 TIMES IGI +letter 𒄎 1245-24-1235-25-16-123-136-346-24-1245-24 # GIR3 TIMES LU PLUS IGI +letter 𒄏 1245-24-1235-25-16-1234-1 # GIR3 TIMES PA +letter 𒄐 1245-24-234-1-123 # GISAL +letter 𒄑 1245-24-146 # GISH +letter 𒄒 1245-24-146-12346-1245-24-146 # GISH CROSSING GISH +letter 𒄓 1245-24-146-16-12-1-145 # GISH TIMES BAD +letter 𒄔 1245-24-146-16-2345-1-13-256 # GISH TIMES TAK4 +letter 𒄕 1245-24-146-0-2345-15-1345-136 # GISH TENU +letter 𒄖 1245-136 # GU +letter 𒄗 1245-136-12346-1245-136 # GU CROSSING GU +letter 𒄘 1245-136 # GU2 +letter 𒄙 1245-136-16-13-1-13 # GU2 TIMES KAK +letter 𒄚 1245-136-16-13-1-13-16-24-1245-24-0-1245-136-1345-136 # GU2 TIMES KAK TIMES IGI GUNU +letter 𒄛 1245-136-16-1345-136-1345 # GU2 TIMES NUN +letter 𒄜 1245-136-16-234-1-123-346-2345-136-1245 # GU2 TIMES SAL PLUS TUG2 +letter 𒄝 1245-136-0-1245-136-1345-136 # GU2 GUNU +letter 𒄞 1245-136-145 # GUD +letter 𒄟 1245-136-145-16-1-346-13-136-1235 # GUD TIMES A PLUS KUR +letter 𒄠 1245-136-145-16-13-136-1235 # GUD TIMES KUR +letter 𒄡 1245-136-145-34-1245-136-145-0-123-136-1245-1-123 # GUD OVER GUD LUGAL +letter 𒄢 1245-136-123 # GUL +letter 𒄣 1245-136-134 # GUM +letter 𒄤 1245-136-134-16-146-15 # GUM TIMES SHE +letter 𒄥 1245-136-1235 # GUR +letter 𒄦 1245-136-1235-2356 # GUR7 +letter 𒄧 1245-136-1235-136-1345 # GURUN +letter 𒄨 1245-136-1235-136-146 # GURUSH +letter 𒄩 125-1 # HA +letter 𒄪 125-1-0-2345-15-1345-136 # HA TENU +letter 𒄫 125-1-0-1245-136-1345-136 # HA GUNU +letter 𒄬 125-1-123 # HAL +letter 𒄭 125-24 # HI +letter 𒄮 125-24-16-1-146 # HI TIMES ASH +letter 𒄯 125-24-16-1-146 # HI TIMES ASH2 +letter 𒄰 125-24-16-12-1-145 # HI TIMES BAD +letter 𒄱 125-24-16-145-24-146 # HI TIMES DISH +letter 𒄲 125-24-16-1245-1-145 # HI TIMES GAD +letter 𒄳 125-24-16-13-24-1345 # HI TIMES KIN +letter 𒄴 125-24-16-1345-136-1345 # HI TIMES NUN +letter 𒄵 125-24-16-146-15 # HI TIMES SHE +letter 𒄶 125-24-16-136 # HI TIMES U +letter 𒄷 125-136 # HU +letter 𒄸 125-136-12 # HUB2 +letter 𒄹 125-136-12-16-1-1345 # HUB2 TIMES AN +letter 𒄺 125-136-12-16-125-1-123 # HUB2 TIMES HAL +letter 𒄻 125-136-12-16-13-1-234-13-1-123 # HUB2 TIMES KASKAL +letter 𒄼 125-136-12-16-123-24-146 # HUB2 TIMES LISH +letter 𒄽 125-136-12-16-136-145 # HUB2 TIMES UD +letter 𒄾 125-136-123 # HUL2 +letter 𒄿 24 # I +letter 𒅀 24-0-1 # I A +letter 𒅁 24-12 # IB +letter 𒅂 24-145-24-134 # IDIM +letter 𒅃 24-145-24-134-34-24-145-24-134-0-12-136-1235 # IDIM OVER IDIM BUR +letter 𒅄 24-145-24-134-34-24-145-24-134-45-456 # IDIM OVER IDIM SQUARED +letter 𒅅 24-1245 # IG +letter 𒅆 24-1245-24 # IGI +letter 𒅇 24-1245-24-0-145-24-12 # IGI DIB +letter 𒅈 24-1245-24-0-1235-24 # IGI RI +letter 𒅉 24-1245-24-34-24-1245-24-0-146-24-1235-34-146-24-1235-0-136-145-34-136-145 # IGI OVER IGI SHIR OVER SHIR UD OVER UD +letter 𒅊 24-1245-24-0-1245-136-1345-136 # IGI GUNU +letter 𒅋 24-123 # IL +letter 𒅌 24-123-16-1245-1-1345-0-2345-15-1345-136 # IL TIMES GAN2 TENU +letter 𒅍 24-123 # IL2 +letter 𒅎 24-134 # IM +letter 𒅏 24-134-16-2345-1-13-256 # IM TIMES TAK4 +letter 𒅐 24-134-12346-24-134 # IM CROSSING IM +letter 𒅑 24-134-1246-24-134 # IM OPPOSING IM +letter 𒅒 24-134-45-456 # IM SQUARED +letter 𒅓 24-134-24-1345 # IMIN +letter 𒅔 24-1345 # IN +letter 𒅕 24-1235 # IR +letter 𒅖 24-146 # ISH +letter 𒅗 13-1 # KA +letter 𒅘 13-1-16-1 # KA TIMES A +letter 𒅙 13-1-16-1-145 # KA TIMES AD +letter 𒅚 13-1-16-1-145-346-13-136-25 # KA TIMES AD PLUS KU3 +letter 𒅛 13-1-16-1-146 # KA TIMES ASH2 +letter 𒅜 13-1-16-12-1-145 # KA TIMES BAD +letter 𒅝 13-1-16-12-1-123-1-1245 # KA TIMES BALAG +letter 𒅞 13-1-16-12-345 # KA TIMES BAR +letter 𒅟 13-1-16-12-24 # KA TIMES BI +letter 𒅠 13-1-16-15-1235-24-1345 # KA TIMES ERIN2 +letter 𒅡 13-1-16-15-146 # KA TIMES ESH2 +letter 𒅢 13-1-16-1245-1 # KA TIMES GA +letter 𒅣 13-1-16-1245-1-123 # KA TIMES GAL +letter 𒅤 13-1-16-1245-1-1345-0-2345-15-1345-136 # KA TIMES GAN2 TENU +letter 𒅥 13-1-16-1245-345 # KA TIMES GAR +letter 𒅦 13-1-16-1245-345-346-146-1-25-346-1 # KA TIMES GAR PLUS SHA3 PLUS A +letter 𒅧 13-1-16-1245-24 # KA TIMES GI +letter 𒅨 13-1-16-1245-24-1235 # KA TIMES GIR2 +letter 𒅩 13-1-16-1245-24-146-346-234-345 # KA TIMES GISH PLUS SAR +letter 𒅪 13-1-16-1245-24-146-12346-1245-24-146 # KA TIMES GISH CROSSING GISH +letter 𒅫 13-1-16-1245-136 # KA TIMES GU +letter 𒅬 13-1-16-1245-136-1235-2356 # KA TIMES GUR7 +letter 𒅭 13-1-16-24-1245-24 # KA TIMES IGI +letter 𒅮 13-1-16-24-134 # KA TIMES IM +letter 𒅯 13-1-16-13-1-13 # KA TIMES KAK +letter 𒅰 13-1-16-13-24 # KA TIMES KI +letter 𒅱 13-1-16-13-24-145 # KA TIMES KID +letter 𒅲 13-1-16-123-24 # KA TIMES LI +letter 𒅳 13-1-16-123-136 # KA TIMES LU +letter 𒅴 13-1-16-134-15 # KA TIMES ME +letter 𒅵 13-1-16-134-15-346-145-136 # KA TIMES ME PLUS DU +letter 𒅶 13-1-16-134-15-346-1245-24 # KA TIMES ME PLUS GI +letter 𒅷 13-1-16-134-15-346-2345-15 # KA TIMES ME PLUS TE +letter 𒅸 13-1-16-134-24 # KA TIMES MI +letter 𒅹 13-1-16-134-24-346-1345-136-1345-136 # KA TIMES MI PLUS NUNUZ +letter 𒅺 13-1-16-1345-15 # KA TIMES NE +letter 𒅻 13-1-16-1345-136-1345 # KA TIMES NUN +letter 𒅼 13-1-16-1234-24 # KA TIMES PI +letter 𒅽 13-1-16-1235-136 # KA TIMES RU +letter 𒅾 13-1-16-234-1 # KA TIMES SA +letter 𒅿 13-1-16-234-345 # KA TIMES SAR +letter 𒆀 13-1-16-146-1 # KA TIMES SHA +letter 𒆁 13-1-16-146-15 # KA TIMES SHE +letter 𒆂 13-1-16-146-24-145 # KA TIMES SHID +letter 𒆃 13-1-16-146-136 # KA TIMES SHU +letter 𒆄 13-1-16-234-24-1245 # KA TIMES SIG +letter 𒆅 13-1-16-234-136-125-136-1235 # KA TIMES SUHUR +letter 𒆆 13-1-16-2345-345 # KA TIMES TAR +letter 𒆇 13-1-16-136 # KA TIMES U +letter 𒆈 13-1-16-136 # KA TIMES U2 +letter 𒆉 13-1-16-136-145 # KA TIMES UD +letter 𒆊 13-1-16-136-134-136-134-16-1234-1 # KA TIMES UMUM TIMES PA +letter 𒆋 13-1-16-136-146 # KA TIMES USH +letter 𒆌 13-1-16-1356-24 # KA TIMES ZI +letter 𒆍 13-1 # KA2 +letter 𒆎 13-1-12346-13-1 # KA2 CROSSING KA2 +letter 𒆏 13-1-12 # KAB +letter 𒆐 13-1-145 # KAD2 +letter 𒆑 13-1-145-25 # KAD3 +letter 𒆒 13-1-145-256 # KAD4 +letter 𒆓 13-1-145-26 # KAD5 +letter 𒆔 13-1-145-26-34-13-1-145-26 # KAD5 OVER KAD5 +letter 𒆕 13-1-13 # KAK +letter 𒆖 13-1-13-16-24-1245-24-0-1245-136-1345-136 # KAK TIMES IGI GUNU +letter 𒆗 13-1-123 # KAL +letter 𒆘 13-1-123-16-12-1-145 # KAL TIMES BAD +letter 𒆙 13-1-123-12346-13-1-123 # KAL CROSSING KAL +letter 𒆚 13-1-134 # KAM2 +letter 𒆛 13-1-134-256 # KAM4 +letter 𒆜 13-1-234-13-1-123 # KASKAL +letter 𒆝 13-1-234-13-1-123-0-123-1-1245-1-12-16-136-34-123-1-1245-1-12-16-136 # KASKAL LAGAB TIMES U OVER LAGAB TIMES U +letter 𒆞 13-1-234-13-1-123-34-13-1-234-13-1-123-0-123-1-1245-1-12-16-136-34-123-1-1245-1-12-16-136 # KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U +letter 𒆟 13-15-146 # KESH2 +letter 𒆠 13-24 # KI +letter 𒆡 13-24-16-12-1-145 # KI TIMES BAD +letter 𒆢 13-24-16-136 # KI TIMES U +letter 𒆣 13-24-16-136-145 # KI TIMES UD +letter 𒆤 13-24-145 # KID +letter 𒆥 13-24-1345 # KIN +letter 𒆦 13-24-234-1-123 # KISAL +letter 𒆧 13-24-146 # KISH +letter 𒆨 13-24-234-24-134-26 # KISIM5 +letter 𒆩 13-24-234-24-134-26-34-13-24-234-24-134-26 # KISIM5 OVER KISIM5 +letter 𒆪 13-136 # KU +letter 𒆫 13-136-34-125-24-16-1-146-0-13-136-34-125-24-16-1-146 # KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2 +letter 𒆬 13-136-25 # KU3 +letter 𒆭 13-136-256 # KU4 +letter 𒆮 13-136-256-0-1236-345-24-1-1345-2345-0-124-135-1235-134 # KU4 VARIANT FORM +letter 𒆯 13-136-2356 # KU7 +letter 𒆰 13-136-123 # KUL +letter 𒆱 13-136-123-0-1245-136-1345-136 # KUL GUNU +letter 𒆲 13-136-1345 # KUN +letter 𒆳 13-136-1235 # KUR +letter 𒆴 13-136-1235-1246-13-136-1235 # KUR OPPOSING KUR +letter 𒆵 13-136-146-136 # KUSHU2 +letter 𒆶 13-2456-136-25-2-236 # KWU318 +letter 𒆷 123-1 # LA +letter 𒆸 123-1-1245-1-12 # LAGAB +letter 𒆹 123-1-1245-1-12-16-1 # LAGAB TIMES A +letter 𒆺 123-1-1245-1-12-16-1-346-145-1-346-125-1 # LAGAB TIMES A PLUS DA PLUS HA +letter 𒆻 123-1-1245-1-12-16-1-346-1245-345 # LAGAB TIMES A PLUS GAR +letter 𒆼 123-1-1245-1-12-16-1-346-123-1-123 # LAGAB TIMES A PLUS LAL +letter 𒆽 123-1-1245-1-12-16-1-123 # LAGAB TIMES AL +letter 𒆾 123-1-1245-1-12-16-1-1345 # LAGAB TIMES AN +letter 𒆿 123-1-1245-1-12-16-1-146-0-1356-24-145-1-0-2345-15-1345-136 # LAGAB TIMES ASH ZIDA TENU +letter 𒇀 123-1-1245-1-12-16-12-1-145 # LAGAB TIMES BAD +letter 𒇁 123-1-1245-1-12-16-12-24 # LAGAB TIMES BI +letter 𒇂 123-1-1245-1-12-16-145-345 # LAGAB TIMES DAR +letter 𒇃 123-1-1245-1-12-16-15-1345 # LAGAB TIMES EN +letter 𒇄 123-1-1245-1-12-16-1245-1 # LAGAB TIMES GA +letter 𒇅 123-1-1245-1-12-16-1245-345 # LAGAB TIMES GAR +letter 𒇆 123-1-1245-1-12-16-1245-136-145 # LAGAB TIMES GUD +letter 𒇇 123-1-1245-1-12-16-1245-136-145-346-1245-136-145 # LAGAB TIMES GUD PLUS GUD +letter 𒇈 123-1-1245-1-12-16-125-1 # LAGAB TIMES HA +letter 𒇉 123-1-1245-1-12-16-125-1-123 # LAGAB TIMES HAL +letter 𒇊 123-1-1245-1-12-16-125-24-16-1345-136-1345 # LAGAB TIMES HI TIMES NUN +letter 𒇋 123-1-1245-1-12-16-24-1245-24-0-1245-136-1345-136 # LAGAB TIMES IGI GUNU +letter 𒇌 123-1-1245-1-12-16-24-134 # LAGAB TIMES IM +letter 𒇍 123-1-1245-1-12-16-24-134-346-125-1 # LAGAB TIMES IM PLUS HA +letter 𒇎 123-1-1245-1-12-16-24-134-346-123-136 # LAGAB TIMES IM PLUS LU +letter 𒇏 123-1-1245-1-12-16-13-24 # LAGAB TIMES KI +letter 𒇐 123-1-1245-1-12-16-13-24-1345 # LAGAB TIMES KIN +letter 𒇑 123-1-1245-1-12-16-13-136-25 # LAGAB TIMES KU3 +letter 𒇒 123-1-1245-1-12-16-13-136-123 # LAGAB TIMES KUL +letter 𒇓 123-1-1245-1-12-16-13-136-123-346-125-24-346-1 # LAGAB TIMES KUL PLUS HI PLUS A +letter 𒇔 123-1-1245-1-12-16-123-1-1245-1-12 # LAGAB TIMES LAGAB +letter 𒇕 123-1-1245-1-12-16-123-24-146 # LAGAB TIMES LISH +letter 𒇖 123-1-1245-1-12-16-123-136 # LAGAB TIMES LU +letter 𒇗 123-1-1245-1-12-16-123-136-123 # LAGAB TIMES LUL +letter 𒇘 123-1-1245-1-12-16-134-15 # LAGAB TIMES ME +letter 𒇙 123-1-1245-1-12-16-134-15-346-15-1345 # LAGAB TIMES ME PLUS EN +letter 𒇚 123-1-1245-1-12-16-134-136-146 # LAGAB TIMES MUSH +letter 𒇛 123-1-1245-1-12-16-1345-15 # LAGAB TIMES NE +letter 𒇜 123-1-1245-1-12-16-146-15-346-234-136-134 # LAGAB TIMES SHE PLUS SUM +letter 𒇝 123-1-1245-1-12-16-146-24-2345-1-346-1245-24-146-346-15-1235-24-1345 # LAGAB TIMES SHITA PLUS GISH PLUS ERIN2 +letter 𒇞 123-1-1245-1-12-16-146-24-2345-1-346-1245-24-146-0-2345-15-1345-136 # LAGAB TIMES SHITA PLUS GISH TENU +letter 𒇟 123-1-1245-1-12-16-146-136 # LAGAB TIMES SHU2 +letter 𒇠 123-1-1245-1-12-16-146-136-346-146-136 # LAGAB TIMES SHU2 PLUS SHU2 +letter 𒇡 123-1-1245-1-12-16-234-136-134 # LAGAB TIMES SUM +letter 𒇢 123-1-1245-1-12-16-2345-1-1245 # LAGAB TIMES TAG +letter 𒇣 123-1-1245-1-12-16-2345-1-13-256 # LAGAB TIMES TAK4 +letter 𒇤 123-1-1245-1-12-16-2345-15-346-1-346-234-136-346-1345-1 # LAGAB TIMES TE PLUS A PLUS SU PLUS NA +letter 𒇥 123-1-1245-1-12-16-136 # LAGAB TIMES U +letter 𒇦 123-1-1245-1-12-16-136-346-1 # LAGAB TIMES U PLUS A +letter 𒇧 123-1-1245-1-12-16-136-346-136-346-136 # LAGAB TIMES U PLUS U PLUS U +letter 𒇨 123-1-1245-1-12-16-136-346-1-146 # LAGAB TIMES U2 PLUS ASH +letter 𒇩 123-1-1245-1-12-16-136-145 # LAGAB TIMES UD +letter 𒇪 123-1-1245-1-12-16-136-146 # LAGAB TIMES USH +letter 𒇫 123-1-1245-1-12-45-456 # LAGAB SQUARED +letter 𒇬 123-1-1245-345 # LAGAR +letter 𒇭 123-1-1245-345-16-146-15 # LAGAR TIMES SHE +letter 𒇮 123-1-1245-345-16-146-15-346-234-136-134 # LAGAR TIMES SHE PLUS SUM +letter 𒇯 123-1-1245-345-0-1245-136-1345-136 # LAGAR GUNU +letter 𒇰 123-1-1245-345-0-1245-136-1345-136-34-123-1-1245-345-0-1245-136-1345-136-0-146-15 # LAGAR GUNU OVER LAGAR GUNU SHE +letter 𒇱 123-1-125-146-136 # LAHSHU +letter 𒇲 123-1-123 # LAL +letter 𒇳 123-1-123-16-123-1-123 # LAL TIMES LAL +letter 𒇴 123-1-134 # LAM +letter 𒇵 123-1-134-16-13-136-1235 # LAM TIMES KUR +letter 𒇶 123-1-134-16-13-136-1235-346-1235-136 # LAM TIMES KUR PLUS RU +letter 𒇷 123-24 # LI +letter 𒇸 123-24-123 # LIL +letter 𒇹 123-24-134-134-136 # LIMMU2 +letter 𒇺 123-24-146 # LISH +letter 𒇻 123-136 # LU +letter 𒇼 123-136-16-12-1-145 # LU TIMES BAD +letter 𒇽 123-136 # LU2 +letter 𒇾 123-136-16-1-123 # LU2 TIMES AL +letter 𒇿 123-136-16-12-1-145 # LU2 TIMES BAD +letter 𒈀 123-136-16-15-146 # LU2 TIMES ESH2 +letter 𒈁 123-136-16-15-146-0-2345-15-1345-136 # LU2 TIMES ESH2 TENU +letter 𒈂 123-136-16-1245-1-1345-0-2345-15-1345-136 # LU2 TIMES GAN2 TENU +letter 𒈃 123-136-16-125-24-16-12-1-145 # LU2 TIMES HI TIMES BAD +letter 𒈄 123-136-16-24-134 # LU2 TIMES IM +letter 𒈅 123-136-16-13-1-145 # LU2 TIMES KAD2 +letter 𒈆 123-136-16-13-1-145-25 # LU2 TIMES KAD3 +letter 𒈇 123-136-16-13-1-145-25-346-1-146 # LU2 TIMES KAD3 PLUS ASH +letter 𒈈 123-136-16-13-24 # LU2 TIMES KI +letter 𒈉 123-136-16-123-1-346-1-146 # LU2 TIMES LA PLUS ASH +letter 𒈊 123-136-16-123-1-1245-1-12 # LU2 TIMES LAGAB +letter 𒈋 123-136-16-134-15-346-15-1345 # LU2 TIMES ME PLUS EN +letter 𒈌 123-136-16-1345-15 # LU2 TIMES NE +letter 𒈍 123-136-16-1345-136 # LU2 TIMES NU +letter 𒈎 123-136-16-234-24-346-1-146 # LU2 TIMES SI PLUS ASH +letter 𒈏 123-136-16-234-24-13-346-12-136 # LU2 TIMES SIK2 PLUS BU +letter 𒈐 123-136-16-2345-136-1245 # LU2 TIMES TUG2 +letter 𒈑 123-136-0-2345-15-1345-136 # LU2 TENU +letter 𒈒 123-136-12346-123-136 # LU2 CROSSING LU2 +letter 𒈓 123-136-1246-123-136 # LU2 OPPOSING LU2 +letter 𒈔 123-136-45-456 # LU2 SQUARED +letter 𒈕 123-136-0-146-15-146-24-1245 # LU2 SHESHIG +letter 𒈖 123-136-25 # LU3 +letter 𒈗 123-136-1245-1-123 # LUGAL +letter 𒈘 123-136-1245-1-123-34-123-136-1245-1-123 # LUGAL OVER LUGAL +letter 𒈙 123-136-1245-1-123-1246-123-136-1245-1-123 # LUGAL OPPOSING LUGAL +letter 𒈚 123-136-1245-1-123-0-146-15-146-24-1245 # LUGAL SHESHIG +letter 𒈛 123-136-125 # LUH +letter 𒈜 123-136-123 # LUL +letter 𒈝 123-136-134 # LUM +letter 𒈞 123-136-134-34-123-136-134 # LUM OVER LUM +letter 𒈟 123-136-134-34-123-136-134-0-1245-345-34-1245-345 # LUM OVER LUM GAR OVER GAR +letter 𒈠 134-1 # MA +letter 𒈡 134-1-16-2345-1-13-256 # MA TIMES TAK4 +letter 𒈢 134-1-0-1245-136-1345-136 # MA GUNU +letter 𒈣 134-1 # MA2 +letter 𒈤 134-1-125 # MAH +letter 𒈥 134-345 # MAR +letter 𒈦 134-1-146 # MASH +letter 𒈧 134-1-146 # MASH2 +letter 𒈨 134-15 # ME +letter 𒈩 134-15-234 # MES +letter 𒈪 134-24 # MI +letter 𒈫 134-24-1345 # MIN +letter 𒈬 134-136 # MU +letter 𒈭 134-136-34-134-136 # MU OVER MU +letter 𒈮 134-136-1245 # MUG +letter 𒈯 134-136-1245-0-1245-136-1345-136 # MUG GUNU +letter 𒈰 134-136-1345-234-136-12 # MUNSUB +letter 𒈱 134-136-1235-1245-136 # MURGU2 +letter 𒈲 134-136-146 # MUSH +letter 𒈳 134-136-146-16-1 # MUSH TIMES A +letter 𒈴 134-136-146-16-13-136-1235 # MUSH TIMES KUR +letter 𒈵 134-136-146-16-1356-1 # MUSH TIMES ZA +letter 𒈶 134-136-146-34-134-136-146 # MUSH OVER MUSH +letter 𒈷 134-136-146-34-134-136-146-16-1-346-1345-1 # MUSH OVER MUSH TIMES A PLUS NA +letter 𒈸 134-136-146-12346-134-136-146 # MUSH CROSSING MUSH +letter 𒈹 134-136-146-25 # MUSH3 +letter 𒈺 134-136-146-25-16-1 # MUSH3 TIMES A +letter 𒈻 134-136-146-25-16-1-346-145-24 # MUSH3 TIMES A PLUS DI +letter 𒈼 134-136-146-25-16-145-24 # MUSH3 TIMES DI +letter 𒈽 134-136-146-25-0-1245-136-1345-136 # MUSH3 GUNU +letter 𒈾 1345-1 # nan +letter 𒈿 1345-1 # NA2 +letter 𒉀 1345-1-1245-1 # NAGA +letter 𒉁 1345-1-1245-1-0-24-1345-1236-15-1235-2345-15-145 # NAGA INVERTED +letter 𒉂 1345-1-1245-1-16-146-136-0-2345-15-1345-136 # NAGA TIMES SHU TENU +letter 𒉃 1345-1-1245-1-1246-1345-1-1245-1 # NAGA OPPOSING NAGA +letter 𒉄 1345-1-1245-345 # NAGAR +letter 𒉅 1345-1-134-0-1345-136-2345-24-123-123-136 # NAM NUTILLU +letter 𒉆 1345-1-134 # NAM +letter 𒉇 1345-1-134 # NAM2 +letter 𒉈 1345-15 # NE +letter 𒉉 1345-15-16-1 # NE TIMES A +letter 𒉊 1345-15-16-136-145 # NE TIMES UD +letter 𒉋 1345-15-0-146-15-146-24-1245 # NE SHESHIG +letter 𒉌 1345-24 # NI +letter 𒉍 1345-24-16-15 # NI TIMES E +letter 𒉎 1345-24 # NI2 +letter 𒉏 1345-24-134 # NIM +letter 𒉐 1345-24-134-16-1245-1-1345-0-2345-15-1345-136 # NIM TIMES GAN2 TENU +letter 𒉑 1345-24-134-16-1245-345-346-1245-1-1345-0-2345-15-1345-136 # NIM TIMES GAR PLUS GAN2 TENU +letter 𒉒 1345-24-1345-145-1 # NINDA2 +letter 𒉓 1345-24-1345-145-1-16-1-1345 # NINDA2 TIMES AN +letter 𒉔 1345-24-1345-145-1-16-1-146 # NINDA2 TIMES ASH +letter 𒉕 1345-24-1345-145-1-16-1-146-346-1-146 # NINDA2 TIMES ASH PLUS ASH +letter 𒉖 1345-24-1345-145-1-16-1245-136-145 # NINDA2 TIMES GUD +letter 𒉗 1345-24-1345-145-1-16-134-15-346-1245-1-1345-0-2345-15-1345-136 # NINDA2 TIMES ME PLUS GAN2 TENU +letter 𒉘 1345-24-1345-145-1-16-1345-15 # NINDA2 TIMES NE +letter 𒉙 1345-24-1345-145-1-16-1345-136-1345 # NINDA2 TIMES NUN +letter 𒉚 1345-24-1345-145-1-16-146-15 # NINDA2 TIMES SHE +letter 𒉛 1345-24-1345-145-1-16-146-15-346-1-0-1-1345 # NINDA2 TIMES SHE PLUS A AN +letter 𒉜 1345-24-1345-145-1-16-146-15-346-1-146 # NINDA2 TIMES SHE PLUS ASH +letter 𒉝 1345-24-1345-145-1-16-146-15-346-1-146-346-1-146 # NINDA2 TIMES SHE PLUS ASH PLUS ASH +letter 𒉞 1345-24-1345-145-1-16-136-346-1-146 # NINDA2 TIMES U2 PLUS ASH +letter 𒉟 1345-24-1345-145-1-16-136-146 # NINDA2 TIMES USH +letter 𒉠 1345-24-234-1-1245 # NISAG +letter 𒉡 1345-136 # NU +letter 𒉢 1345-136-2-2 # NU11 +letter 𒉣 1345-136-1345 # NUN +letter 𒉤 1345-136-1345-0-123-1-1245-345-16-1245-345 # NUN LAGAR TIMES GAR +letter 𒉥 1345-136-1345-0-123-1-1245-345-16-134-1-146 # NUN LAGAR TIMES MASH +letter 𒉦 1345-136-1345-0-123-1-1245-345-16-234-1-123 # NUN LAGAR TIMES SAL +letter 𒉧 1345-136-1345-0-123-1-1245-345-16-234-1-123-34-1345-136-1345-0-123-1-1245-345-16-234-1-123 # NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL +letter 𒉨 1345-136-1345-0-123-1-1245-345-16-136-146 # NUN LAGAR TIMES USH +letter 𒉩 1345-136-1345-0-2345-15-1345-136 # NUN TENU +letter 𒉪 1345-136-1345-34-1345-136-1345 # NUN OVER NUN +letter 𒉫 1345-136-1345-12346-1345-136-1345 # NUN CROSSING NUN +letter 𒉬 1345-136-1345-12346-1345-136-1345-0-123-1-1245-345-34-123-1-1245-345 # NUN CROSSING NUN LAGAR OVER LAGAR +letter 𒉭 1345-136-1345-136 # NUNUZ +letter 𒉮 1345-136-1345-136-1356-0-1-12-16-1-146-1245-1-12 # NUNUZ AB2 TIMES ASHGAB +letter 𒉯 1345-136-1345-136-1356-0-1-12-16-12-24 # NUNUZ AB2 TIMES BI +letter 𒉰 1345-136-1345-136-1356-0-1-12-16-145-136-1245 # NUNUZ AB2 TIMES DUG +letter 𒉱 1345-136-1345-136-1356-0-1-12-16-1245-136-145 # NUNUZ AB2 TIMES GUD +letter 𒉲 1345-136-1345-136-1356-0-1-12-16-24-1245-24-0-1245-136-1345-136 # NUNUZ AB2 TIMES IGI GUNU +letter 𒉳 1345-136-1345-136-1356-0-1-12-16-13-1-145-25 # NUNUZ AB2 TIMES KAD3 +letter 𒉴 1345-136-1345-136-1356-0-1-12-16-123-1 # NUNUZ AB2 TIMES LA +letter 𒉵 1345-136-1345-136-1356-0-1-12-16-1345-15 # NUNUZ AB2 TIMES NE +letter 𒉶 1345-136-1345-136-1356-0-1-12-16-234-24-123-1-25 # NUNUZ AB2 TIMES SILA3 +letter 𒉷 1345-136-1345-136-1356-0-1-12-16-136 # NUNUZ AB2 TIMES U2 +letter 𒉸 1345-136-1345-136-1356-0-13-24-234-24-134-26-16-12-24 # NUNUZ KISIM5 TIMES BI +letter 𒉹 1345-136-1345-136-1356-0-13-24-234-24-134-26-16-12-24-0-136 # NUNUZ KISIM5 TIMES BI U +letter 𒉺 1234-1 # PA +letter 𒉻 1234-1-145 # PAD +letter 𒉼 1234-1-1345 # PAN +letter 𒉽 1234-1-1234 # PAP +letter 𒉾 1234-15-146 # PESH2 +letter 𒉿 1234-24 # PI +letter 𒊀 1234-24-16-1 # PI TIMES A +letter 𒊁 1234-24-16-1-12 # PI TIMES AB +letter 𒊂 1234-24-16-12-24 # PI TIMES BI +letter 𒊃 1234-24-16-12-136 # PI TIMES BU +letter 𒊄 1234-24-16-15 # PI TIMES E +letter 𒊅 1234-24-16-24 # PI TIMES I +letter 𒊆 1234-24-16-24-12 # PI TIMES IB +letter 𒊇 1234-24-16-136 # PI TIMES U +letter 𒊈 1234-24-16-136 # PI TIMES U2 +letter 𒊉 1234-24-12346-1234-24 # PI CROSSING PI +letter 𒊊 1234-24-1235-24-1245 # PIRIG +letter 𒊋 1234-24-1235-24-1245-16-13-1-123 # PIRIG TIMES KAL +letter 𒊌 1234-24-1235-24-1245-16-136-145 # PIRIG TIMES UD +letter 𒊍 1234-24-1235-24-1245-16-1356-1 # PIRIG TIMES ZA +letter 𒊎 1234-24-1235-24-1245-1246-1234-24-1235-24-1245 # PIRIG OPPOSING PIRIG +letter 𒊏 1235-1 # RA +letter 𒊐 1235-1-12 # RAB +letter 𒊑 1235-24 # RI +letter 𒊒 1235-136 # RU +letter 𒊓 234-1 # SA +letter 𒊔 234-1-1245-0-1345-136-2345-24-123-123-136 # SAG NUTILLU +letter 𒊕 234-1-1245 # SAG +letter 𒊖 234-1-1245-16-1 # SAG TIMES A +letter 𒊗 234-1-1245-16-145-136 # SAG TIMES DU +letter 𒊘 234-1-1245-16-145-136-12 # SAG TIMES DUB +letter 𒊙 234-1-1245-16-125-1 # SAG TIMES HA +letter 𒊚 234-1-1245-16-13-1-13 # SAG TIMES KAK +letter 𒊛 234-1-1245-16-13-136-1235 # SAG TIMES KUR +letter 𒊜 234-1-1245-16-123-136-134 # SAG TIMES LUM +letter 𒊝 234-1-1245-16-134-24 # SAG TIMES MI +letter 𒊞 234-1-1245-16-1345-136-1345 # SAG TIMES NUN +letter 𒊟 234-1-1245-16-234-1-123 # SAG TIMES SAL +letter 𒊠 234-1-1245-16-146-24-145 # SAG TIMES SHID +letter 𒊡 234-1-1245-16-2345-1-12 # SAG TIMES TAB +letter 𒊢 234-1-1245-16-136 # SAG TIMES U2 +letter 𒊣 234-1-1245-16-136-12 # SAG TIMES UB +letter 𒊤 234-1-1245-16-136-134 # SAG TIMES UM +letter 𒊥 234-1-1245-16-136-1235 # SAG TIMES UR +letter 𒊦 234-1-1245-16-136-146 # SAG TIMES USH +letter 𒊧 234-1-1245-34-234-1-1245 # SAG OVER SAG +letter 𒊨 234-1-1245-0-1245-136-1345-136 # SAG GUNU +letter 𒊩 234-1-123 # SAL +letter 𒊪 234-1-123-0-123-1-1245-1-12-16-1-146 # SAL LAGAB TIMES ASH2 +letter 𒊫 234-1-1345-1245-1 # SANGA2 +letter 𒊬 234-345 # SAR +letter 𒊭 146-1 # SHA +letter 𒊮 146-1-25 # SHA3 +letter 𒊯 146-1-25-16-1 # SHA3 TIMES A +letter 𒊰 146-1-25-16-12-1-145 # SHA3 TIMES BAD +letter 𒊱 146-1-25-16-1245-24-146 # SHA3 TIMES GISH +letter 𒊲 146-1-25-16-1345-15 # SHA3 TIMES NE +letter 𒊳 146-1-25-16-146-136 # SHA3 TIMES SHU2 +letter 𒊴 146-1-25-16-2345-136-1235 # SHA3 TIMES TUR +letter 𒊵 146-1-25-16-136 # SHA3 TIMES U +letter 𒊶 146-1-25-16-136-346-1 # SHA3 TIMES U PLUS A +letter 𒊷 146-1-235 # SHA6 +letter 𒊸 146-1-12-235 # SHAB6 +letter 𒊹 146-345 # SHAR2 +letter 𒊺 146-15 # SHE +letter 𒊻 146-15-0-125-136 # SHE HU +letter 𒊼 146-15-34-146-15-0-1245-1-145-34-1245-1-145-0-1245-345-34-1245-345 # SHE OVER SHE GAD OVER GAD GAR OVER GAR +letter 𒊽 146-15-34-146-15-0-2345-1-12-34-2345-1-12-0-1245-345-34-1245-345 # SHE OVER SHE TAB OVER TAB GAR OVER GAR +letter 𒊾 146-15-1245-35 # SHEG9 +letter 𒊿 146-15-1345 # SHEN +letter 𒋀 146-15-146 # SHESH +letter 𒋁 146-15-146 # SHESH2 +letter 𒋂 146-15-146-123-1-134 # SHESHLAM +letter 𒋃 146-24-145 # SHID +letter 𒋄 146-24-145-16-1 # SHID TIMES A +letter 𒋅 146-24-145-16-24-134 # SHID TIMES IM +letter 𒋆 146-24-134 # SHIM +letter 𒋇 146-24-134-16-1 # SHIM TIMES A +letter 𒋈 146-24-134-16-12-1-123 # SHIM TIMES BAL +letter 𒋉 146-24-134-16-12-136-123-136-1245 # SHIM TIMES BULUG +letter 𒋊 146-24-134-16-145-24-1345 # SHIM TIMES DIN +letter 𒋋 146-24-134-16-1245-345 # SHIM TIMES GAR +letter 𒋌 146-24-134-16-24-1245-24 # SHIM TIMES IGI +letter 𒋍 146-24-134-16-24-1245-24-0-1245-136-1345-136 # SHIM TIMES IGI GUNU +letter 𒋎 146-24-134-16-13-136-146-136 # SHIM TIMES KUSHU2 +letter 𒋏 146-24-134-16-123-136-123 # SHIM TIMES LUL +letter 𒋐 146-24-134-16-134-136-1245 # SHIM TIMES MUG +letter 𒋑 146-24-134-16-234-1-123 # SHIM TIMES SAL +letter 𒋒 146-24-1345-24-1245 # SHINIG +letter 𒋓 146-24-1235 # SHIR +letter 𒋔 146-24-1235-0-2345-15-1345-136 # SHIR TENU +letter 𒋕 146-24-1235-34-146-24-1235-0-12-136-1235-34-12-136-1235 # SHIR OVER SHIR BUR OVER BUR +letter 𒋖 146-24-2345-1 # SHITA +letter 𒋗 146-136 # SHU +letter 𒋘 146-136-34-24-1345-1236-15-1235-2345-15-145-0-146-136 # SHU OVER INVERTED SHU +letter 𒋙 146-136 # SHU2 +letter 𒋚 146-136-12-136-1235 # SHUBUR +letter 𒋛 234-24 # SI +letter 𒋜 234-24-0-1245-136-1345-136 # SI GUNU +letter 𒋝 234-24-1245 # SIG +letter 𒋞 234-24-1245-256 # SIG4 +letter 𒋟 234-24-1245-256-34-234-24-1245-256-0-146-136 # SIG4 OVER SIG4 SHU2 +letter 𒋠 234-24-13 # SIK2 +letter 𒋡 234-24-123-1-25 # SILA3 +letter 𒋢 234-136 # SU +letter 𒋣 234-136-34-234-136 # SU OVER SU +letter 𒋤 234-136-145 # SUD +letter 𒋥 234-136-145 # SUD2 +letter 𒋦 234-136-125-136-1235 # SUHUR +letter 𒋧 234-136-134 # SUM +letter 𒋨 234-136-134-1-146 # SUMASH +letter 𒋩 234-136-1235 # SUR +letter 𒋪 234-136-1235-35 # SUR9 +letter 𒋫 2345-1 # TA +letter 𒋬 2345-1-16 # TA ASTERISK +letter 𒋭 2345-1-16-125-24 # TA TIMES HI +letter 𒋮 2345-1-16-134-24 # TA TIMES MI +letter 𒋯 2345-1-0-1245-136-1345-136 # TA GUNU +letter 𒋰 2345-1-12 # TAB +letter 𒋱 2345-1-12-34-2345-1-12-0-1345-24-34-1345-24-0-145-24-146-34-145-24-146 # TAB OVER TAB NI OVER NI DISH OVER DISH +letter 𒋲 2345-1-12-45-456 # TAB SQUARED +letter 𒋳 2345-1-1245 # TAG +letter 𒋴 2345-1-1245-16-12-24 # TAG TIMES BI +letter 𒋵 2345-1-1245-16-1245-136-145 # TAG TIMES GUD +letter 𒋶 2345-1-1245-16-146-15 # TAG TIMES SHE +letter 𒋷 2345-1-1245-16-146-136 # TAG TIMES SHU +letter 𒋸 2345-1-1245-16-2345-136-1245 # TAG TIMES TUG2 +letter 𒋹 2345-1-1245-16-136-145 # TAG TIMES UD +letter 𒋺 2345-1-13-256 # TAK4 +letter 𒋻 2345-345 # TAR +letter 𒋼 2345-15 # TE +letter 𒋽 2345-15-0-1245-136-1345-136 # TE GUNU +letter 𒋾 2345-24 # TI +letter 𒋿 2345-24-0-2345-15-1345-136 # TI TENU +letter 𒌀 2345-24-123 # TIL +letter 𒌁 2345-24-1235 # TIR +letter 𒌂 2345-24-1235-16-2345-1-13-256 # TIR TIMES TAK4 +letter 𒌃 2345-24-1235-34-2345-24-1235 # TIR OVER TIR +letter 𒌄 2345-24-1235-34-2345-24-1235-0-1245-1-145-34-1245-1-145-0-1245-345-34-1245-345 # TIR OVER TIR GAD OVER GAD GAR OVER GAR +letter 𒌅 2345-136 # TU +letter 𒌆 2345-136-1245 # TUG2 +letter 𒌇 2345-136-13 # TUK +letter 𒌈 2345-136-134 # TUM +letter 𒌉 2345-136-1235 # TUR +letter 𒌊 2345-136-1235-34-2345-136-1235-0-1356-1-34-1356-1 # TUR OVER TUR ZA OVER ZA +letter 𒌋 136 # U +letter 𒌌 136-0-1245-136-145 # U GUD +letter 𒌍 136-0-136-0-136 # U U U +letter 𒌎 136-34-136-0-1234-1-34-1234-1-0-1245-345-34-1245-345 # U OVER U PA OVER PA GAR OVER GAR +letter 𒌏 136-34-136-0-234-136-1235-34-234-136-1235 # U OVER U SUR OVER SUR +letter 𒌐 136-34-136-0-136-12346-123-2345-56-34-136-12346-123-2345-56 # U OVER U U REVERSED OVER U REVERSED +letter 𒌑 136 # U2 +letter 𒌒 136-12 # UB +letter 𒌓 136-145 # UD +letter 𒌔 136-145-0-13-136-146-136 # UD KUSHU2 +letter 𒌕 136-145-16-12-1-145 # UD TIMES BAD +letter 𒌖 136-145-16-134-24 # UD TIMES MI +letter 𒌗 136-145-16-136-346-136-346-136 # UD TIMES U PLUS U PLUS U +letter 𒌘 136-145-16-136-346-136-346-136-0-1245-136-1345-136 # UD TIMES U PLUS U PLUS U GUNU +letter 𒌙 136-145-0-1245-136-1345-136 # UD GUNU +letter 𒌚 136-145-0-146-15-146-24-1245 # UD SHESHIG +letter 𒌛 136-145-0-146-15-146-24-1245-16-12-1-145 # UD SHESHIG TIMES BAD +letter 𒌜 136-145-136-1245 # UDUG +letter 𒌝 136-134 # UM +letter 𒌞 136-134-16-123-1-1245-1-12 # UM TIMES LAGAB +letter 𒌟 136-134-16-134-15-346-145-1 # UM TIMES ME PLUS DA +letter 𒌠 136-134-16-146-1-25 # UM TIMES SHA3 +letter 𒌡 136-134-16-136 # UM TIMES U +letter 𒌢 136-134-12-24-1345 # UMBIN +letter 𒌣 136-134-136-134 # UMUM +letter 𒌤 136-134-136-134-16-13-1-234-13-1-123 # UMUM TIMES KASKAL +letter 𒌥 136-134-136-134-16-1234-1 # UMUM TIMES PA +letter 𒌦 136-1345 # UN +letter 𒌧 136-1345-0-1245-136-1345-136 # UN GUNU +letter 𒌨 136-1235 # UR +letter 𒌩 136-1235-12346-136-1235 # UR CROSSING UR +letter 𒌪 136-1235-0-146-15-146-24-1245 # UR SHESHIG +letter 𒌫 136-1235 # UR2 +letter 𒌬 136-1235-16-1-346-125-1 # UR2 TIMES A PLUS HA +letter 𒌭 136-1235-16-1-346-1345-1 # UR2 TIMES A PLUS NA +letter 𒌮 136-1235-16-1-123 # UR2 TIMES AL +letter 𒌯 136-1235-16-125-1 # UR2 TIMES HA +letter 𒌰 136-1235-16-1345-136-1345 # UR2 TIMES NUN +letter 𒌱 136-1235-16-136 # UR2 TIMES U2 +letter 𒌲 136-1235-16-136-346-1-146 # UR2 TIMES U2 PLUS ASH +letter 𒌳 136-1235-16-136-346-12-24 # UR2 TIMES U2 PLUS BI +letter 𒌴 136-1235-256 # UR4 +letter 𒌵 136-1235-24 # URI +letter 𒌶 136-1235-24-25 # URI3 +letter 𒌷 136-1235-136 # URU +letter 𒌸 136-1235-136-16-1 # URU TIMES A +letter 𒌹 136-1235-136-16-1-146-1245-1-12 # URU TIMES ASHGAB +letter 𒌺 136-1235-136-16-12-345 # URU TIMES BAR +letter 𒌻 136-1235-136-16-145-136-1345 # URU TIMES DUN +letter 𒌼 136-1235-136-16-1245-1 # URU TIMES GA +letter 𒌽 136-1235-136-16-1245-1-123 # URU TIMES GAL +letter 𒌾 136-1235-136-16-1245-1-1345-0-2345-15-1345-136 # URU TIMES GAN2 TENU +letter 𒌿 136-1235-136-16-1245-345 # URU TIMES GAR +letter 𒍀 136-1235-136-16-1245-136 # URU TIMES GU +letter 𒍁 136-1235-136-16-125-1 # URU TIMES HA +letter 𒍂 136-1235-136-16-24-1245-24 # URU TIMES IGI +letter 𒍃 136-1235-136-16-24-134 # URU TIMES IM +letter 𒍄 136-1235-136-16-24-146 # URU TIMES ISH +letter 𒍅 136-1235-136-16-13-24 # URU TIMES KI +letter 𒍆 136-1235-136-16-123-136-134 # URU TIMES LUM +letter 𒍇 136-1235-136-16-134-24-1345 # URU TIMES MIN +letter 𒍈 136-1235-136-16-1234-1 # URU TIMES PA +letter 𒍉 136-1235-136-16-146-15 # URU TIMES SHE +letter 𒍊 136-1235-136-16-234-24-1245-256 # URU TIMES SIG4 +letter 𒍋 136-1235-136-16-2345-136 # URU TIMES TU +letter 𒍌 136-1235-136-16-136-346-1245-136-145 # URU TIMES U PLUS GUD +letter 𒍍 136-1235-136-16-136-145 # URU TIMES UD +letter 𒍎 136-1235-136-16-136-1235-136-145-1 # URU TIMES URUDA +letter 𒍏 136-1235-136-145-1 # URUDA +letter 𒍐 136-1235-136-145-1-16-136 # URUDA TIMES U +letter 𒍑 136-146 # USH +letter 𒍒 136-146-16-1 # USH TIMES A +letter 𒍓 136-146-16-13-136 # USH TIMES KU +letter 𒍔 136-146-16-13-136-1235 # USH TIMES KUR +letter 𒍕 136-146-16-2345-1-13-256 # USH TIMES TAK4 +letter 𒍖 136-146-1346 # USHX +letter 𒍗 136-146 # USH2 +letter 𒍘 136-146-136-134-1346 # USHUMX +letter 𒍙 136-2345-136-13-24 # UTUKI +letter 𒍚 136-1356-25 # UZ3 +letter 𒍛 136-1356-25-16-13-1-234-13-1-123 # UZ3 TIMES KASKAL +letter 𒍜 136-1356-136 # UZU +letter 𒍝 1356-1 # ZA +letter 𒍞 1356-1-0-2345-15-1345-136 # ZA TENU +letter 𒍟 1356-1-45-456-16-13-136-1235 # ZA SQUARED TIMES KUR +letter 𒍠 1356-1-1245 # ZAG +letter 𒍡 1356-1-134-1346 # ZAMX +letter 𒍢 1356-15 # ZE2 +letter 𒍣 1356-24 # ZI +letter 𒍤 1356-24-34-1356-24 # ZI OVER ZI +letter 𒍥 1356-24-25 # ZI3 +letter 𒍦 1356-24-12 # ZIB +letter 𒍧 1356-24-12-0-13-1-12-1-0-2345-15-1345-136 # ZIB KABA TENU +letter 𒍨 1356-24-1245 # ZIG +letter 𒍩 1356-24-1356 # ZIZ2 +letter 𒍪 1356-136 # ZU +letter 𒍫 1356-136-26 # ZU5 +letter 𒍬 1356-136-26-16-1 # ZU5 TIMES A +letter 𒍭 1356-136-12-136-1235 # ZUBUR +letter 𒍮 1356-136-134 # ZUM +letter 𒍯 13-1-1234-0-15-123-1-134-24-2345-15 # KAP ELAMITE +letter 𒍰 1-12-16-1345-136-1345 # AB TIMES NUN +letter 𒍱 1-12-16-1 # AB2 TIMES A +letter 𒍲 1-134-345-16-13-136-1245 # AMAR TIMES KUG +letter 𒍳 145-1-1245-0-13-24-234-24-134-26-16-136-346-134-1-146 # DAG KISIM5 TIMES U2 PLUS MASH +letter 𒍴 145-1-1245-25 # DAG3 +letter 𒍵 145-24-146-346-146-136 # DISH PLUS SHU +letter 𒍶 145-136-12-16-146-15 # DUB TIMES SHE +letter 𒍷 15-1356-15-1345-16-1245-136-145 # EZEN TIMES GUD +letter 𒍸 15-1356-15-1345-16-146-15 # EZEN TIMES SHE +letter 𒍹 1245-1-16-1-1345-346-13-1-13-346-1 # GA2 TIMES AN PLUS KAK PLUS A +letter 𒍺 1245-1-16-1-146 # GA2 TIMES ASH2 +letter 𒍻 1245-15 # GE22 +letter 𒍼 1245-24-1245 # GIG +letter 𒍽 125-136-146 # HUSH +letter 𒍾 13-1-16-1-1345-146-15 # KA TIMES ANSHE +letter 𒍿 13-1-16-1-146-25 # KA TIMES ASH3 +letter 𒎀 13-1-16-1245-24-146 # KA TIMES GISH +letter 𒎁 13-1-16-1245-136-145 # KA TIMES GUD +letter 𒎂 13-1-16-125-24-16-1-146 # KA TIMES HI TIMES ASH2 +letter 𒎃 13-1-16-123-136-134 # KA TIMES LUM +letter 𒎄 13-1-16-1234-1 # KA TIMES PA +letter 𒎅 13-1-16-146-136-123 # KA TIMES SHUL +letter 𒎆 13-1-16-2345-136 # KA TIMES TU +letter 𒎇 13-1-16-136-1235 # KA TIMES UR2 +letter 𒎈 123-1-1245-1-12-16-1245-24 # LAGAB TIMES GI +letter 𒎉 123-136-0-146-15-146-24-1245-16-12-1-145 # LU2 SHESHIG TIMES BAD +letter 𒎊 123-136-16-15-146-346-123-1-123 # LU2 TIMES ESH2 PLUS LAL +letter 𒎋 123-136-16-146-136 # LU2 TIMES SHU +letter 𒎌 134-15-146 # MESH +letter 𒎍 134-136-146-25-16-1356-1 # MUSH3 TIMES ZA +letter 𒎎 1345-1-256 # NA4 +letter 𒎏 1345-24-1345 # NIN +letter 𒎐 1345-24-1345-35 # NIN9 +letter 𒎑 1345-24-1345-145-1-16-12-1-123 # NINDA2 TIMES BAL +letter 𒎒 1345-24-1345-145-1-16-1245-24 # NINDA2 TIMES GI +letter 𒎓 1345-136-2-2-146 # NU11 ROTATED NINETY DEGREES +letter 𒎔 1234-15-146-16 # PESH2 ASTERISK +letter 𒎕 1234-24-1235 # PIR2 +letter 𒎖 234-1-1245-16-24-1245-24-0-1245-136-1345-136 # SAG TIMES IGI GUNU +letter 𒎗 2345-24 # TI2 +letter 𒎘 136-134-16-134-15 # UM TIMES ME +letter 𒎙 136-136 # UU + +# Include additional braille tables +include spaces.uti +include litdigits6Dots.uti +include latinLetterDef6Dots.uti +include en-ueb-chardefs.uti diff --git a/braille/translate/src/phone/tables/bel-detailed.utb b/braille/translate/src/phone/tables/bel-detailed.utb new file mode 100644 index 000000000..d1bd07a8f --- /dev/null +++ b/braille/translate/src/phone/tables/bel-detailed.utb @@ -0,0 +1,32 @@ +#-index-name: Belarusian, with capitals +#-display-name: Belarusian braille with indication of capitals + +#+language: be +#+type: literary +#+dots: 6 +#+contraction: no +#+direction: both +#+variant: detailed + +# Copyright (C) 2024 Andrey Yakuboy +# +# This file is part of liblouis. +# +# liblouis is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 2.1 of the +# License, or (at your option) any later version. +# +# liblouis is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with liblouis. If not, see +# . + +#-maintainer: Andrey Yakuboy + +include bel.utb +include ru-litbrl-detailed.utb diff --git a/braille/translate/src/phone/tables/cuneiform-transliterated.utb b/braille/translate/src/phone/tables/cuneiform-transliterated.utb new file mode 100644 index 000000000..ab2cc66b1 --- /dev/null +++ b/braille/translate/src/phone/tables/cuneiform-transliterated.utb @@ -0,0 +1,159 @@ +# liblouis: Transliterated Cuneiform +# +#-index-name: Cuneiform, transliterated +#-display-name: Transliterated Cuneiform braille +# +#+language: akk-Latn +#+language: xhu-Latn +#+language: uga-Latn +#+language: peo-Latn +#+language: sux-Latn +#+language: xeb-Latn +#+language: elx-Latn +#+language: hit-Latn +#+language: xur-Latn +#+language: xlu-Latn +#+type: literary +#+contraction: no +#+dots: 6 + +#-license: lgpl-2.1 + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with this file; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# liblouis comes with ABSOLUTELY NO WARRANTY. + +# Documents written in a writing system known as Cuneiform or +# Akkadian, are commonly preserved in clay, stone, or even metal +# tablets. When these tables are engaged academically, they are +# “transliterated” from their original Cuneiform, into Latin +# letters. Some of these letters have accents, dots, and lines +# associated with them. These are used to indicate specific sounds +# that are commonly made in Ancient Near Eastern languages. This table +# provides braille support for the above mentioned languages that have +# been already transliterated into the latin characters mentioned +# above. + +# This table is intended to provide support for the languages +# represented in the Cuneiform / Akkadian Writing system. This +# includes Sumerian, Hittite, Babylonian Assyrian, Ugaritic and many +# others. Thus, the braille in this table reflects braille patterns +# commonly utilized in other Semitic languages such as Hebrew, +# Aramaic, and Syriac. For more information please see +# + +# This braille code was developed by a group of both blind and sighted +# scholars in an academic setting. Special thank you to Inbal Baum for +# helping Matthew Yeater and Ray McAllister develop this braille +# code. Special thank you to Sarah LaRose and Eric Harvey for their +# helpful suggestions. + +#-maintainer: Paul Geoghegan +#-maintainer: Matityhau Yeshurun + +# Copyright (C) 2024 Matt Yeater and Paul Geoghegan + +# digit op code characters +digit ₁ 26-3456-1 # SUBSCRIPT ONE +digit ₂ 26-3456-12 # SUBSCRIPT TWO +digit ₃ 26-3456-14 # SUBSCRIPT THREE +digit ₄ 26-3456-145 # SUBSCRIPT FOUR +digit ₅ 26-3456-15 # SUBSCRIPT FIVE +digit ₆ 26-3456-124 # SUBSCRIPT SIX +digit ₇ 26-3456-1245 # SUBSCRIPT SEVEN +digit ₈ 26-3456-125 # SUBSCRIPT EIGHT +digit ₉ 26-3456-24 # SUBSCRIPT NINE + +# letter op code characters +letter ʾ 1246 # RIGHT HALF RING +letter ʿ 5-1246 # LEFT HALF RING +letter ẓ 5-1356 # Z with Dot Below +letter ₓ 26-1346 # SUBSCRIPT SMALL X + +# lowercase op code characters +lowercase à 45-16-1 # A WITH GRAVE +lowercase á 45-34-1 # A WITH ACUTE +lowercase â 45-146-1 # A WITH CIRCUMFLEX +lowercase è 45-16-15 # E WITH GRAVE +lowercase é 45-34-15 # E WITH ACUTE +lowercase ê 45-146-15 # E WITH CIRCUMFLEX +lowercase ì 45-16-24 # I WITH GRAVE +lowercase í 45-34-24 # I WITH ACUTE +lowercase î 45-146-24 # I WITH CIRCUMFLEX +lowercase ù 45-16-136 # U WITH GRAVE +lowercase ú 45-34-136 # U WITH ACUTE +lowercase û 45-146-136 # U WITH CIRCUMFLEX +lowercase ā 4-36-1 # A WITH MACRON +lowercase ē 4-36-15 # E WITH MACRON +lowercase ī 4-36-24 # I WITH MACRON +lowercase ŋ 5-245 # ENG +lowercase ś 45-34-234 # S WITH ACUTE +lowercase š 146 # S WITH CARON +lowercase ū 4-36-136 # U WITH MACRON +lowercase ǵ 45-34-1245 # G with Acute +lowercase ʳ 1235 # SMALL R +lowercase ᵈ 46-145 # subscript D +lowercase ᶠ 46-124 # Subscript f +lowercase ḏ 56-145 # D with line below +lowercase ḫ 16 # H WITH BREVE BELOW +lowercase ṣ 5-234 # S WITH DOT BELOW +lowercase ṭ 5-2345 # T WITH DOT BELOW +lowercase ṯ 1456 # T with Line Below +lowercase ₘ 46-134 # Subscript m + +# math op code characters +math × 5-236 # MULTIPLICATION SIGN + +# punctuation op code characters +punctuation ⸢ 46-126 # TOP LEFT HALF BRACKET +punctuation ⸣ 46-345 # TOP RIGHT HALF BRACKET +punctuation ⸤ 46-126 # BOTTOM LEFT HALF BRACKET +punctuation ⸥ 46-345 # BOTTOM RIGHT HALF BRACKET + +# uppercase op code characters +uppercase À 6-45-16-1 # CAPITAL A WITH GRAVE +uppercase Á 6-45-34-1 # CAPITAL A WITH ACUTE +uppercase  6-45-146-1 # CAPITAL A WITH CIRCUMFLEX +uppercase È 6-45-16-15 # CAPITAL E WITH GRAVE +uppercase É 6-45-34-15 # CAPITAL E WITH ACUTE +uppercase Ê 6-45-146-15 # CAPITAL E WITH CIRCUMFLEX +uppercase Ì 6-45-16-24 # CAPITAL I WITH GRAVE +uppercase Í 6-45-34-24 # CAPITAL I WITH ACUTE +uppercase Î 6-45-146-24 # CAPITAL I WITH CIRCUMFLEX +uppercase Ù 6-45-16-136 # CAPITAL U WITH GRAVE +uppercase Ú 6-45-34-136 # CAPITAL U WITH ACUTE +uppercase Û 6-45-146-136 # CAPITAL U WITH CIRCUMFLEX +uppercase Ā 6-4-36-1 # CAPITAL A WITH MACRON +uppercase Ē 6-4-36-15 # CAPITAL E WITH MACRON +uppercase Ī 6-4-36-24 # CAPITAL I WITH MACRON +uppercase Ŋ 6-5-245 # CAPITAL ENG +uppercase Ś 6-45-34-234 # CAPITAL S WITH ACUTE +uppercase Š 6-146 # CAPITAL S WITH CARON +uppercase Ū 6-4-36-136 # CAPITAL U WITH MACRON +uppercase Ǵ 6-45-34-1245 # Capitol G with ACUTE +uppercase ᴹ 46-6-134 # Subscript Capitol m +uppercase Ḏ 6-56-145 # Capitol D with line below +uppercase Ḫ 6-16 # CAPITAL H WITH BREVE BELOW +uppercase Ṣ 6-5-234 # CAPITAL S WITH DOT BELOW +uppercase Ṭ 6-5-2345 # CAPITAL T WITH DOT BELOW +uppercase Ṯ 6-1456 # Capital T with Line Below +uppercase Ẓ 6-5-1356 # Capital Z with Dot Below +uppercase ꟳ 46-6-124 # Subscript Capitol f +uppercase 󑴰 46 # Subscript Capitol d + +# Include additional braille tables +include spaces.uti +include litdigits6Dots.uti +include latinLetterDef6Dots.uti +include en-ueb-chardefs.uti diff --git a/braille/translate/src/phone/tables/da-dk-6miscChars.cti b/braille/translate/src/phone/tables/da-dk-6miscChars.cti index 5103381df..f4c121b43 100644 --- a/braille/translate/src/phone/tables/da-dk-6miscChars.cti +++ b/braille/translate/src/phone/tables/da-dk-6miscChars.cti @@ -1,6 +1,6 @@ # Liblouis: Misc character definitions for Danish 6 dots (all grades, 2022) # -# Copyright (C) 2014, 2016-2022, Bue Vester-Andersen +# Copyright (C) 2014, 2016-2024, Bue Vester-Andersen # # This file is part of liblouis. # diff --git a/braille/translate/src/phone/tables/da-dk-8miscChars.cti b/braille/translate/src/phone/tables/da-dk-8miscChars.cti index 9d4d9f100..662d177f7 100644 --- a/braille/translate/src/phone/tables/da-dk-8miscChars.cti +++ b/braille/translate/src/phone/tables/da-dk-8miscChars.cti @@ -1,6 +1,6 @@ # Liblouis: Misc character definitions for Danish 8 dots (all grades, 2022) # -# Copyright (C) 2014, 2016-2022, Bue Vester-Andersen +# Copyright (C) 2014, 2016-2024, Bue Vester-Andersen # # This file is part of liblouis. # diff --git a/braille/translate/src/phone/tables/da-dk-g08.ctb b/braille/translate/src/phone/tables/da-dk-g08.ctb index bb4400e21..32d832f0b 100644 --- a/braille/translate/src/phone/tables/da-dk-g08.ctb +++ b/braille/translate/src/phone/tables/da-dk-g08.ctb @@ -1,6 +1,6 @@ # Liblouis: Danish table for 8 dots computer Braille (G0) 2022 # -# Copyright (C) 2014, 2016-2022, Bue Vester-Andersen +# Copyright (C) 2014, 2016-2024, Bue Vester-Andersen # # This file is part of liblouis. # diff --git a/braille/translate/src/phone/tables/da-dk-g16.ctb b/braille/translate/src/phone/tables/da-dk-g16.ctb index 85e8c75e4..d0c561141 100644 --- a/braille/translate/src/phone/tables/da-dk-g16.ctb +++ b/braille/translate/src/phone/tables/da-dk-g16.ctb @@ -1,6 +1,6 @@ # Liblouis: Danish table for 6 dots grade 1 forward and backward translation 2022 # -# Copyright (C) 2014, 2016-2022, Bue Vester-Andersen +# Copyright (C) 2014, 2016-2024, Bue Vester-Andersen # # This file is part of liblouis. # @@ -211,6 +211,12 @@ endnum - 36 midnum ^ 45-346 midnum \x00d7 45-35 +# Remove space between § and numbers. +noback begnum § 346 +begnum §\s 346 +begnum §§\s 346-346 +always §§ 346-346 + # Punctuation prepunc " 2356 postpunc " 2356 diff --git a/braille/translate/src/phone/tables/da-dk-g18.ctb b/braille/translate/src/phone/tables/da-dk-g18.ctb index 6b8223345..cb04a7cf5 100644 --- a/braille/translate/src/phone/tables/da-dk-g18.ctb +++ b/braille/translate/src/phone/tables/da-dk-g18.ctb @@ -1,6 +1,6 @@ # Liblouis: Danish table for 8 dots grade 1 2022 # -# Copyright (C) 2014, 2016-2022, Bue Vester-Andersen +# Copyright (C) 2014, 2016-2024, Bue Vester-Andersen # # This file is part of liblouis. # @@ -534,13 +534,12 @@ endemphphrase bold after 46 begemphphrase underline 46 endemphphrase underline after 46 -# Remove space between and numbers. +# Remove space between  and numbers. noback begnum § 578 begnum §\s 578 begnum §§\s 578-578 always §§ 578-578 - # Ensure there is only one emphasis sign noback pass2 @46-46 @46 noback pass2 @46-46-46 @46 diff --git a/braille/translate/src/phone/tables/da-dk-g2.dic b/braille/translate/src/phone/tables/da-dk-g2.dic index dc117ecd9..3523af004 100644 --- a/braille/translate/src/phone/tables/da-dk-g2.dic +++ b/braille/translate/src/phone/tables/da-dk-g2.dic @@ -32,7 +32,6 @@ RIGHTHYPHENMIN 1 .b4 .b4e3ne .ben2 -.be2n2s2 .b2e5r4o .bre2ds2 .br2ed @@ -50,7 +49,6 @@ RIGHTHYPHENMIN 1 .de4rib4 .d4e4rig .di3g4r -.dis2t4 .do7ri .1eft5 .ef6 @@ -76,8 +74,8 @@ RIGHTHYPHENMIN 1 .e4ra6r .2e5ri .2e3ru -.2es2 -.e2s3s +.es2k6 +.2es .2e2tå4 .ev4e3ni .2ev @@ -129,6 +127,9 @@ RIGHTHYPHENMIN 1 .li3g1e .li2g4ej4 .lus2 +.lyd1enh +.l4y4 +.lyden2 .lære5r1en2 .lære4 .lær1e2r @@ -256,8 +257,8 @@ RIGHTHYPHENMIN 1 .ve4n3e2r. .ven3er .ve2ner4n -.v2e3r4a -.v1er +.v4e3ni. +.v3e2ni .vi2ds2 .vid4 .xe1 @@ -392,6 +393,8 @@ alsta4t alsta2tov am2e2n2d. am1en2 +amens1t2 +ame2n2s 4am4e3r4a am1e2r am4e5r1et @@ -427,8 +430,7 @@ an4døs an3dø4 an2e3ru an1er -an3eu6r -an2eu +an1eu6r ang2e4g6 an2g ang1e @@ -609,7 +611,7 @@ a4y4 än1n äpo3 ä2p4 -äst1e2r4 +äste4 äst2 â1 b4 @@ -645,6 +647,7 @@ be4rast2 b4e3r4e. b2e1re be3r2e2c2 +be5r1en2 be2r3e2p4 ber3ev berne4 @@ -717,6 +720,7 @@ bæg3 bæv3 bør4n4 bø4 +bør2n2s1 børs1k6 bø2rs børs1t6r @@ -821,6 +825,7 @@ da2n4t dan2ts2 4darb4 da6r +dard1e4g 2d4ar4e4a 4darr 2dar4t @@ -891,8 +896,6 @@ de3ra2p4 de3rej4 d2e1re de3r2el4 -de2ren2g -de3r1en2 de2r3ev4n der2ev 4derfa6r @@ -975,10 +978,9 @@ di4n di2s2kl4 disk6 dis3kul4 -dis1til4 -dist4 +dis2t4 +dis3til4 dist4i -dis2tu 1dj2el4 dj4 1dji @@ -1188,7 +1190,7 @@ dt3e3r4o dte3rø4 dt5et dt6e1t4a -dt3eu +dt1eu dts2t4i d2ts dtst2 @@ -1264,8 +1266,7 @@ ed1erhv 4ed2es edes1tæ edest4 -ed3eu6r -ed2eu +ed1eu6r edfor6 edf6 edi3g4r @@ -1385,7 +1386,7 @@ em1en2 1emes4e em2es em1et -em3eu +em1eu 3emne emors1k6 emo2rs @@ -1454,6 +1455,8 @@ ene2rab4 e2n4e1r4a en2e7r1en2 en4e2re +e2n4erf4a +enerf6 en2e5ri 6en4e7ris 6en4eros @@ -1491,11 +1494,15 @@ eni4n 4e3ni2p4 4e3ni4r 4e3nis +5e4nis2l4 4e3ni2t 4e3niu 4eniv 1enke en2k6 +ennis1 +en1n +en3ni e3no. 4e3no4a 2e3nob4 @@ -1515,8 +1522,10 @@ e2n2s ensk6 ensk4a en2s1ken2 -ens1tæ +ens2tr4o enst2 +enst6r +ens1tæ en2t1eg1e e2n4t ente4g @@ -1559,6 +1568,7 @@ ep4a era4a 5e2ra2c2c2 era2c2 +4erace 4erado e5ra2ds 3e4radv @@ -1583,6 +1593,7 @@ e3rani 4e3ra2r. e2ra6r e3rari +e3ra2s. 4e5rass4e e2ra2s1s e2rav @@ -1750,13 +1761,13 @@ e1sk4eski 2es2k2es eskesk6 4eski +es1kis es3kjæ eskj4 4es2ko. es1k6o2k6 4eskr2 es2ku -es4kuf6 es3ku2n es2sku e2s1s @@ -1867,16 +1878,15 @@ e2t1øl4 e3tåb4 e3tål4 e3tår4n -2eu eum2s1 eumsken3 eumsk6 eun1d eu2n -4eu2r. +2eu2r. eu6r -4eure -4eus +2eure +2eus eut1e eu4t eut3e4r4a @@ -2446,8 +2456,9 @@ h2enu he3ra4n h2e1r4a he3ra6r -he3r1e4r +he5r1en2 h2e1re +he3r1e4r he4rib4 h2e3ri h4e4rig @@ -2726,6 +2737,7 @@ ions3tol4 ionst4o io3r2e4k6 io1re +io2reu io3rom io1r4o io1rå4 @@ -2750,7 +2762,6 @@ ist4 is1ta2g ist4a is1ta2p4 -is2ta4t is1tje istj4 is2tom @@ -3001,7 +3012,6 @@ ke3nav ke2n2el4 ke3nel4l4 ke1no -ke2n2s2 ke1num k2enu 2k2e2p4 @@ -3263,7 +3273,6 @@ ktst2 ktst6r 4kud 4kue -2kuf6 1kug kuke3 k6u2k6 @@ -3392,8 +3401,7 @@ ld3erob4 ld2e1r4o l4de3rul4 ld2e1ru -ld3eu6r -ld2eu +ld1eu6r lds1ker l2ds ldsk6 @@ -3442,8 +3450,10 @@ lesov3 les2o les3sk6 le2s1s -les1te4k6 +l4es3tal4 lest4 +les2t4a +les1te4k6 les1træk6 lest6r l4e3tal4 @@ -3527,7 +3537,7 @@ lm3els l4m2el4 lm1e2n2 lm4e3ne -lm5e4n2eu +lm5e4neu lm3e1ni lm4e2rud lm1e2r @@ -3629,8 +3639,6 @@ lts3tu ltst2 lun5di lu2n -lups1t2 -lu2p4 lus1t4i lust2 l4v3el4l4 @@ -3666,6 +3674,7 @@ læ2n2s1 løs1te4k6 lø4 løst4 +løve4 mad3els m4a mad2el4 @@ -3696,11 +3705,7 @@ m4e4na4t m5e2n3ed m4e1ne men3eu6r -men2eu m2eno -mens1te -me2n2s -menst2 m2e1nu men3ve2d. menve2 @@ -3737,6 +3742,8 @@ m4e3rob4 m2e1r4o m6e3rol4 m4e3ro2n +me5ro1r4a +me4ror m3er2ö m3e1ru m4e2rul4 @@ -3794,7 +3801,7 @@ m2k6 mm3e1n4a mm1en2 mm3eno -mm5eren2g +mm5e4ren2g mm1e2r mm4e4re mme3r1en2 @@ -3915,8 +3922,9 @@ nanas1t2 2na2n2s 2narb4 na6r -2narki +2n4ark4a nar4k6 +2narki 2narm. 2nar4t nas3ku @@ -3927,8 +3935,8 @@ nat1e na4t 4natom nat4o -2na2t2t 4natt6r +na2t2t nave2 n1d4a n3dah @@ -4060,6 +4068,8 @@ n5e2r3ele n5e2r3els n4e3r1et n5er3ev +2nerf4a +nerf6 3ner2g n4e7ri. n2e3ri @@ -4120,7 +4130,6 @@ n4e3tæ ne4tæ2p4 n4e1tø4 5n4euv -n2eu ném1 3nè1 2nf6 @@ -4190,10 +4199,10 @@ nin2g nin4gs 2ni2n4t 2ninve2 -4nis1ken2 +4nisken2 nisk6 +4nis2l4 nist6 -nis2te 4nist6r nits1t2 ni2t @@ -4224,7 +4233,6 @@ n4n4e1r4a nn3e1r4o n4ne1rø4 n3ni -nnis1t6 n3no nns1th n2n2s @@ -4329,11 +4337,9 @@ nst6r nstr4a ns1t2ra2p4 ns1tri -ns1tro. -nstr4o +ns1tr4o ns4tru2p4 ns1tr4y4 -ns1træ ns1tu ns3tu2d. ns2tud @@ -4354,7 +4360,7 @@ nt4e5ra2p4 nt3erej4 nt2e1re nter3e4k6 -nt3er2eu +nt3er1eu nt4e4ris nt2e3ri n2t3e1ru @@ -4501,9 +4507,6 @@ om1e4g om4el4 om3end om1en2 -ome5ror -om1e2r -om2e1r4o om3esk6 om2es om2e2t4a @@ -4594,6 +4597,7 @@ o3re2n2s o2r3epi or2e2p4 o3r2es +or1eu6r o3r4evis or2ev o1ré @@ -4605,10 +4609,9 @@ o6rind2 ori4n o3rini o5ri2n4t -orns1t4o +orns1t2 or4n or2n2s -ornst2 o1r4o o2roli orol4 @@ -4701,6 +4704,7 @@ ovst2 öls1 öl4 ö1ni +ön4n ö1re ö2r3en2 ö1ri @@ -4950,8 +4954,7 @@ rden2 rde2no rde3rom rd2e1r4o -rd3eu6r -rd2eu +rd1eu6r rdse6r1i4n r2ds rds4e @@ -5014,10 +5017,7 @@ r6e3n3e2n2 r4e4n4e1ne 4re3n3er re3n3et -4ren4g. -ren2g -4reng1e -2reng2el4 +4ren2g 4renh 2r2e1ni r4e4nid4 @@ -5121,8 +5121,6 @@ r3etz re2tæs r2e3tæ r2e3tå4 -4r3eu6r -r2eu 2rev4n r2ev rfa2t2t3 @@ -5174,7 +5172,7 @@ ri2ds rids4e 5ridyr rid4y4 -5ri2eu +5rieu ri4e 4rigesk6 ri1g1e @@ -5326,7 +5324,6 @@ r1ö. rpi3g1e4 r2p4 rr2e4k6 -rr4eu rris1k6 rrive2 rrot3t4e. @@ -5363,7 +5360,6 @@ rst6r rstr4a rs1tri4n rs1tru -rs1træt rs1tu2n rs1tus r4t @@ -5495,7 +5491,6 @@ sa6r sar4a 2sate sa4t -3sa4y4 2sb4 2s2c2 sch2 @@ -5526,6 +5521,8 @@ s4e5nas 2sen2ed s4e1ne se2n3el4 +sen4erf6 +sen3er se5nil4 s2e1ni 2seno @@ -5540,7 +5537,7 @@ se5raf6 2se3ral4 2se2ra2p4 s2e3re -2seren2g +2se4ren2g se3r1en2 se4r2enh se4resk4a @@ -5556,6 +5553,7 @@ s4es1kr2 s2es sesk6 ses3ku +ses4kuf6 sesov3 ses2o sesov1er2 @@ -5583,7 +5581,7 @@ si3gu sin4gs2 si4n sin2g -sit1e +sit1e4k6 si2t s1ka2g sk6 @@ -5627,6 +5625,7 @@ sklære4 sklær1e2r sklær4e1re s1kn4a +s1kni2p4 s1kniv s1kno s1knu @@ -5639,7 +5638,7 @@ s1kom s3komi s3komm s3ko2n -s1kor4n +s3kor4n s1kr4a skr2 s3k4raf6 @@ -5651,6 +5650,7 @@ s3krus s2kru s3kræf6 s1k6ræn2k6 +s2kuf6 s3kug s3kult skul4 @@ -5693,6 +5693,9 @@ sn1et s2o sols2 sol4 +sons2t2 +so2n +so2n2s so3r4a so5ra4t so5r3en2 @@ -5720,7 +5723,7 @@ s3sa. ss4a ss2e3r4a ss4e -s2ser2en2g +s2se4r2en2g ss2e3re sse3r1en2 s3s2es @@ -5734,6 +5737,7 @@ s2ta. st4a s2tald stal4 +s1tale stal2es1 s2tali stand2 @@ -5841,7 +5845,10 @@ s1trus s2try. str4y4 s1tryk6 +s3træ. +s3træe s1træn +s1træt s3t2røj4 strø4 s2ts2 @@ -5951,6 +5958,7 @@ tan2g 1tan2k6 2ta2nm 2tan1n +ta2n2s2 taos2 1tap. ta2p4 @@ -6050,8 +6058,8 @@ tenst2 tenst6r tens1tru t2e1nu +t2e2nø4 t3e2nøv -t2e1nø4 1teor t4eo 2teorm @@ -6208,8 +6216,7 @@ til4l4 2timu 4tind2 ti4n -tin3eu6r -tin2eu +tin1eu6r 4ti2nf6 tings2t2 tin2g @@ -6247,8 +6254,6 @@ tn2e3ri tn3e1r4o tn3e1ru t4o -1toast2 -to4a 2tock6 to2c2 toe2th @@ -6362,8 +6367,9 @@ tri4n 1triol4 tris2 2tri2t -2trofe +2trob4 tr4o +2trofe trof6 1trold trol4 @@ -6424,6 +6430,8 @@ ts1kre tskr2 ts1kr4o ts1kræ +ts1kyn +tsk4y4 ts1kød tskø4 ts1kør @@ -6646,6 +6654,7 @@ uke2 uld3end ul4 ulden2 +ul2e5re ul2e5r4o ulme4 uls2kr2 @@ -6773,6 +6782,7 @@ us2tru us1træ us1tu us2tv +us1tø4 us1tå4 u4t ut2e4r4a @@ -6848,7 +6858,8 @@ v5e2n4t v2e1nu v1er v2e2r4a -v4era2c2 +v3erach +vera2c2 ve3rad v3e4rad4r veradr2es2 @@ -6866,8 +6877,9 @@ ve2rej4 v3e2r1eje ver2e4k6 v3er2em -v3e4renh +v3e4r2en2g ve3r1en2 +v3e4renh v4er1e2r v3e4ril4 v2e3ri @@ -6986,9 +6998,6 @@ v2t vt3e2r3 væks2 væk6 -våle4 -vå4 -vål4 wal2es1 w4a wal4 @@ -7030,11 +7039,12 @@ yd1en2g yde2ral4 yd2e1r4a yd2es2 -yd3eu6r -yd2eu +yd1eu6r yds3t4o y2ds ydst2 +yfus1 +yf6 yg3e2r4a yg1e y4gs2 @@ -7127,8 +7137,7 @@ z2e5r4a ze3ru2n z2e1ru z2es2 -z4eus1 -z2eu +z2eus1 zg2 zin3ev zi4n @@ -7168,8 +7177,14 @@ zü1 æks2t4i æk6 ækst2 -æls1t2 +ælles3ku æl4 +æl4l4 +æll2es +ællesk6 +ælles1t4i +ællest4 +æls1t2 ælts3k6 æl2ts2 ælts3t2 @@ -7220,6 +7235,7 @@ zü1 ær2e5t4a ær1et ær2e5t6r +ær1eu6r ærk6s3k6 ær4k6 ærm1et1 @@ -7318,8 +7334,6 @@ zü1 ør4n ørn1et ørn1n2 -ørns1t2 -ør2n2s ø2rov3 ør4o ørov1er2 @@ -7344,6 +7358,10 @@ zü1 ø2t2t øv3e2r4a øv1er +øve5re2n2s +øv2e1re +øve3r1en2 +øv4e5r1et øv4e5ri4e øv2e3ri øv2e3ru diff --git a/braille/translate/src/phone/tables/da-dk-g26.ctb b/braille/translate/src/phone/tables/da-dk-g26.ctb index 49ceaa58c..3f7a62bf6 100644 --- a/braille/translate/src/phone/tables/da-dk-g26.ctb +++ b/braille/translate/src/phone/tables/da-dk-g26.ctb @@ -1,6 +1,6 @@ # Liblouis: Danish table for 6 dots grade 2 forward and backward translation (2022) # -# Copyright (C) 2014, 2016-2022, Bue Vester-Andersen +# Copyright (C) 2014, 2016-2024, Bue Vester-Andersen # # This file is part of liblouis. # @@ -148,7 +148,7 @@ include braille-patterns.cti # Characters with two or more cells punctuation # 45-3456 NUMBER SIGN -sign $ 45-256 DOLLAR SIGN +sign $ 45-145 DOLLAR SIGN math % 245-356 PERCENT SIGN sign & 56-12346 AMPERSAND punctuation * 56-35 ASTERISK @@ -264,6 +264,12 @@ noback correct $dy$Spm.[]$l "\xf800\xf801" ### Pass 1 - Forward and backward +# Remove space between § and numbers. +noback begnum § 346 +begnum §\s 346 +begnum §§\s 346-346 +always §§ 346-346 + # Punctuations, math and numbers #midnum , 2 #midnum . 3 @@ -284,6 +290,7 @@ nofor endnum \x2030 0-245-356-356 nofor midnum \x00d7 45-35 # Punctuation +postpunc ! 235 prepunc " 2356 postpunc " 2356 always /\s 56-34-0 @@ -487,10 +494,13 @@ contraction gg word gange 1245-12456 word gge = word ganske 1245-123456 +word gsk = word gennem 12456 word gik 1245-13 begnum gk 56-1245-13 contraction gk +word gjorde 1245-1456 +word gde = word gør 1245 word ham 236 @@ -522,6 +532,7 @@ word hjælpe 125-1234-15 begnum hpe 56-125-1234-15 contraction hpe word hjælpende 125-1234-15-1345-1456 # *** temporary patch +word hjælpendes 125-1234-15-1345-1456-234 # *** temporary patch word hjælper 125-1234-156 word hper = word hun 136 @@ -535,28 +546,28 @@ word hvket = word hvis 2456-234 word hvs = word hvordan 34-1 -word hvora 34-6-1 +word hvora 34-56-1 word hvorefter 34-1356 word hvorst 34-234-2345 word hvorfor 34-124 -word hvorf 34-6-124 +word hvorf 34-56-124 word hvorigennem 34-24-12456 word hvorledes 34-15 -word hvore 34-6-15 +word hvore 34-56-15 word hvormed 34-134 -word hvorm 34-6-134 +word hvorm 34-56-134 word hvornår 34-1345 -word hvorn 34-6-1345 +word hvorn 34-56-1345 word hvorover 34-1346 word hvoror 34-135-1235 word hvorpå 34-1234 -word hvorp 34-6-1234 +word hvorp 34-56-1234 word hvortil 34-2345 -word hvort 34-6-2345 +word hvort 34-56-2345 word hvorunder 34-12345 word hvornd 34-1345-145 word hvorved 34-1236 -word hvorv 34-6-1236 +word hvorv 34-56-1236 word hvor 34 word igennem 24-12456 @@ -573,7 +584,7 @@ begnum ii 56-24-24 contraction ii word jeg 245 -word jeg) 245-6-356 +word jeg) 245-56-356 word kan 13 word kommer 13-156 @@ -1099,7 +1110,7 @@ nofor sufword antonín 1-1345-2345-135-1345-5-24-1345 nofor sufword château 14-125-5-1-1256-1-136 nofor sufword citroën 14-24-2345-1235-135-5-15-1345 nofor sufword dvořák 145-1236-135-5-1235-5-1-13 -nofor sufword márquez 134-5-1-1235-6-12345-136-15-6-1356 +nofor sufword márquez 134-5-1-1235-56-12345-136-15-56-1356 nofor sufword miró 134-24-1235-5-135 nofor sufword tórshavn 2345-5-135-1235-234-125-1-1236-1345 nofor sufword václav 1236-5-1-14-123-1-1236 diff --git a/braille/translate/src/phone/tables/da-dk-octobraille.dis b/braille/translate/src/phone/tables/da-dk-octobraille.dis index 8380c05af..6cf9690e7 100644 --- a/braille/translate/src/phone/tables/da-dk-octobraille.dis +++ b/braille/translate/src/phone/tables/da-dk-octobraille.dis @@ -1,6 +1,6 @@ # Liblouis: Display table for Danish CP1252 Octo Braille (2022) # -# Copyright (C) 2014, 2016-2022, Bue Vester-Andersen +# Copyright (C) 2014, 2016-2023, Bue Vester-Andersen # # This file is part of liblouis. # diff --git a/braille/translate/src/phone/tables/devanagari.cti b/braille/translate/src/phone/tables/devanagari.cti index 3624962e5..c46897ecf 100644 --- a/braille/translate/src/phone/tables/devanagari.cti +++ b/braille/translate/src/phone/tables/devanagari.cti @@ -25,9 +25,9 @@ include braille-patterns.cti -letter \x0901 3 # davanagari chandra bindu -letter \x0902 56 # davanagari anuswar -letter \x0903 6 # davanagari visarg +letter \x0901 3 # devanagari chandra bindu +letter \x0902 56 # devanagari anuswar +letter \x0903 6 # devanagari visarg letter \x0904 1 #chhoTa aa" letter \x0905 1 #chhoTa aa" letter \x0906 345 #baraa aa" @@ -48,51 +48,51 @@ letter \x0914 246 #"au" replace \x200D -letter \x0915 13 # davanagari ka -letter \x0916 46 # davanagari kha -letter \x0917 1245 # davanagari ga -letter \x0918 126 # davanagari gha -letter \x0919 346 #davanagari aNgaa - -letter \x091A 14 # davanagari cha -letter \x091B 16 # davanagari cha -letter \x091C 245 # davanagari ja -letter \x091D 356 # davanagari jha -letter \x091E 25 #davanagari yangaa - -letter \x091F 23456 # davanagari ta -letter \x0920 2456 # davanagari tha -letter \x0921 1246 # davanagari da -letter \x0922 123456 # davanagari dha -letter \x0923 3456 #davanagari nna - -letter \x0924 2345 # davanagari ta -letter \x0925 1456 # davanagari tha -letter \x0926 145 # davanagari da -letter \x0927 2346 # davanagari dha -letter \x0928 1345 #davanagari na - -letter \x0929 56 #davanagari na nukta - -letter \x092A 1234 # davanagari pa -letter \x092B 235 # davanagari tha -letter \x092C 12 # davanagari ba -letter \x092D 45 # davanagari bha -letter \x092E 134 #davanagari ma - -letter \x092F 13456 # davanagari yaa -letter \x0930 1235 # davanagari ra -letter \x0931 12456 # davanagari rra -letter \x0932 123 # davanagari la -letter \x0933 456 #davanagari la -letter \x0934 123 #davanagari la -letter \x0935 1236 #davanagari va -letter \x0936 146 #davanagari sha -letter \x0937 12346 #davanagari ssha -letter \x0938 234 #davanagari sa -letter \x0939 125 #davanagari ha - -letter \x093d 2 #davanagari avagrah +letter \x0915 13 # devanagari ka +letter \x0916 46 # devanagari kha +letter \x0917 1245 # devanagari ga +letter \x0918 126 # devanagari gha +letter \x0919 346 #devanagari aNgaa + +letter \x091A 14 # devanagari cha +letter \x091B 16 # devanagari cha +letter \x091C 245 # devanagari ja +letter \x091D 356 # devanagari jha +letter \x091E 25 #devanagari yangaa + +letter \x091F 23456 # devanagari ta +letter \x0920 2456 # devanagari tha +letter \x0921 1246 # devanagari da +letter \x0922 123456 # devanagari dha +letter \x0923 3456 #devanagari nna + +letter \x0924 2345 # devanagari ta +letter \x0925 1456 # devanagari tha +letter \x0926 145 # devanagari da +letter \x0927 2346 # devanagari dha +letter \x0928 1345 #devanagari na + +letter \x0929 56 #devanagari na nukta + +letter \x092A 1234 # devanagari pa +letter \x092B 235 # devanagari pha +letter \x092C 12 # devanagari ba +letter \x092D 45 # devanagari bha +letter \x092E 134 #devanagari ma + +letter \x092F 13456 # devanagari yaa +letter \x0930 1235 # devanagari ra +letter \x0931 12456 # devanagari rra +letter \x0932 123 # devanagari la +letter \x0933 456 #devanagari la +letter \x0934 123 #devanagari la +letter \x0935 1236 #devanagari va +letter \x0936 146 #devanagari sha +letter \x0937 12346 #devanagari ssha +letter \x0938 234 #devanagari sa +letter \x0939 125 #devanagari ha + +letter \x093d 2 #devanagari avagrah #-------- # matras @@ -114,7 +114,7 @@ letter \x094B 135 #"o matra" letter \x094C 246 #"au matra" letter \x094D 4 # Halant -letter \x0950 135-4-134 #"Devnagari sign for om" +letter \x0950 135-4-134 #"devanagari sign for om" letter \x0958 13 #"Ka qith Nukhta" letter \x0959 46 #"kha with nukhta" letter \x095A 1245 #"ga with nukhta" @@ -144,16 +144,16 @@ punctuation \x0970 256 # "abbreviation sign" #-------- # digits -litdigit \x0966 245 # davanagari 0 -litdigit \x0967 1 # davanagari 1 -litdigit \x0968 12 # davanagari 2 -litdigit \x0969 14 # davanagari 3 -litdigit \x096A 145 # davanagari 4 -litdigit \x096B 15 # davanagari 5 -litdigit \x096C 124 # davanagari 6 -litdigit \x096D 1245 # davanagari 7 -litdigit \x096E 125 # davanagari 8 -litdigit \x096F 24 # davanagari 9 +litdigit \x0966 245 # devanagari 0 +litdigit \x0967 1 # devanagari 1 +litdigit \x0968 12 # devanagari 2 +litdigit \x0969 14 # devanagari 3 +litdigit \x096A 145 # devanagari 4 +litdigit \x096B 15 # devanagari 5 +litdigit \x096C 124 # devanagari 6 +litdigit \x096D 1245 # devanagari 7 +litdigit \x096E 125 # devanagari 8 +litdigit \x096F 24 # devanagari 9 # ksha and gya @@ -165,48 +165,48 @@ always \x0915\x094D\x0937 12345 #"ksha" #-------- # half characters -always \x0915\x094D 4-13 # davanagari ka -always \x0916\x094D 4-46 # davanagari kha -always \x0917\x094D 4-1245 # davanagari ga -always \x0918\x094D 4-126 # davanagari gha -always \x0919\x094D 4-346 #davanagari aNgaa - -always \x091A\x094D 4-14 # davanagari ca -always \x091B\x094D 4-16 # davanagari cha -always \x091C\x094D 4-245 # davanagari ja -always \x091D\x094D 4-356 # davanagari jha -always \x091E\x094D 4-25 #davanagari yangaa - -always \x091F\x094d 4-23456 # davanagari ta -always \x0920\x094D 4-2456 # davanagari tha -always \x0921\x094D 4-1246 # davanagari da -always \x0922\x094D 4-123456 # davanagari dha -always \x0923\x094D 4-3456 #davanagari nna - -always \x0924\x094D 4-2345 # davanagari ta -always \x0925\x094D 4-1456 # davanagari tha -always \x0926\x094D 4-145 # davanagari da -always \x0927\x094D 4-2346 # davanagari dha -always \x0928\x094D 4-1345 #davanagari na -always \x0929\x094D 4-56 #davanagari na nukta - -always \x092A\x094D 4-1234 # davanagari pa -always \x092B\x094D 4-235 # davanagari tha -always \x092C\x094D 4-12 # davanagari ba -always \x092D\x094D 4-45 # davanagari bha -always \x092E\x094D 4-134 #davanagari ma - -always \x092F\x094D 4-13456 # davanagari yaa -always \x0930\x094D 4-1235 # davanagari ra -always \x0931\x094D 4-12456 # davanagari rra -always \x0932\x094D 4-123 # davanagari la -always \x0933\x094D 4-456 #davanagari la -always \x0934\x094D 4-123 #davanagari la -always \x0935\x094D 4-1236 #davanagari va -always \x0936\x094D 4-146 #davanagari sha -always \x0937\x094D 4-12346 #davanagari ssha -always \x0938\x094D 4-234 #davanagari sa -always \x0939\x094D 4-125 #davanagari ha +always \x0915\x094D 4-13 # devanagari ka +always \x0916\x094D 4-46 # devanagari kha +always \x0917\x094D 4-1245 # devanagari ga +always \x0918\x094D 4-126 # devanagari gha +always \x0919\x094D 4-346 #devanagari aNgaa + +always \x091A\x094D 4-14 # devanagari ca +always \x091B\x094D 4-16 # devanagari cha +always \x091C\x094D 4-245 # devanagari ja +always \x091D\x094D 4-356 # devanagari jha +always \x091E\x094D 4-25 #devanagari yangaa + +always \x091F\x094d 4-23456 # devanagari ta +always \x0920\x094D 4-2456 # devanagari tha +always \x0921\x094D 4-1246 # devanagari da +always \x0922\x094D 4-123456 # devanagari dha +always \x0923\x094D 4-3456 #devanagari nna + +always \x0924\x094D 4-2345 # devanagari ta +always \x0925\x094D 4-1456 # devanagari tha +always \x0926\x094D 4-145 # devanagari da +always \x0927\x094D 4-2346 # devanagari dha +always \x0928\x094D 4-1345 #devanagari na +always \x0929\x094D 4-56 #devanagari na nukta + +always \x092A\x094D 4-1234 # devanagari pa +always \x092B\x094D 4-235 # devanagari pha +always \x092C\x094D 4-12 # devanagari ba +always \x092D\x094D 4-45 # devanagari bha +always \x092E\x094D 4-134 #devanagari ma + +always \x092F\x094D 4-13456 # devanagari yaa +always \x0930\x094D 4-1235 # devanagari ra +always \x0931\x094D 4-12456 # devanagari rra +always \x0932\x094D 4-123 # devanagari la +always \x0933\x094D 4-456 #devanagari la +always \x0934\x094D 4-123 #devanagari la +always \x0935\x094D 4-1236 #devanagari va +always \x0936\x094D 4-146 #devanagari sha +always \x0937\x094D 4-12346 #devanagari ssha +always \x0938\x094D 4-234 #devanagari sa +always \x0939\x094D 4-125 #devanagari ha always \x0958\x094D 4-13 #"Ka qith Nukhta" always \x0959\x094D 4-46 #"kha with nukhta" @@ -234,45 +234,45 @@ attribute HindiVowel \x0907\x0908\x0909\x090A\x090D\x090E\x090F\x0910\x0911\x091 attribute HALANT \x094D -before HindiVowel always \x0915 13-1 # davanagari ka -before HindiVowel always \x0916 46-1 # davanagari kha -before HindiVowel always \x0917 1245-1 # davanagari ga -before HindiVowel always \x0918 126-1 # davanagari gha - -#before HALANT always \x0915 4-13 # davanagari ka - -before HindiVowel always \x091A 14-1 # davanagari ca -before HindiVowel always \x091B 16-1 # davanagari cha -before HindiVowel always \x091C 245-1 # davanagari ja -before HindiVowel always \x091D 356-1 # davanagari jha - -before HindiVowel always \x091F 23456-1 # davanagari ta -before HindiVowel always \x0920 2456-1 # davanagari tha -before HindiVowel always \x0921 1246-1 # davanagari da -before HindiVowel always \x0922 123456-1 # davanagari dha -before HindiVowel always \x0923 3456-1 #davanagari nna - -before HindiVowel always \x0924 2345-1 # davanagari ta -before HindiVowel always \x0925 1456-1 # davanagari tha -before HindiVowel always \x0926 145-1 # davanagari da -before HindiVowel always \x0927 2346-1 # davanagari dha -before HindiVowel always \x0928 1345-1 #davanagari na - -before HindiVowel always \x092A 1234-1 # davanagari pa -before HindiVowel always \x092B 235-1 # davanagari tha -before HindiVowel always \x092C 12-1 # davanagari ba -before HindiVowel always \x092D 45-1 # davanagari bha -before HindiVowel always \x092E 134-1 #davanagari ma - -before HindiVowel always \x092F 13456-1 # davanagari yaa -before HindiVowel always \x0930 1235-1 # davanagari ra -before HindiVowel always \x0931 12456-1 # davanagari rra -before HindiVowel always \x0932 123-1 # davanagari la -before HindiVowel always \x0933 456-1 #davanagari la -before HindiVowel always \x0934 123-1 #davanagari la -before HindiVowel always \x0935 1236-1 #davanagari va -before HindiVowel always \x0936 146-1 #davanagari sha -before HindiVowel always \x0937 12346-1 #davanagari ssha -before HindiVowel always \x0938 234-1 #davanagari sa -before HindiVowel always \x0939 125-1 #davanagari ha +before HindiVowel always \x0915 13-1 # devanagari ka +before HindiVowel always \x0916 46-1 # devanagari kha +before HindiVowel always \x0917 1245-1 # devanagari ga +before HindiVowel always \x0918 126-1 # devanagari gha + +#before HALANT always \x0915 4-13 # devanagari ka + +before HindiVowel always \x091A 14-1 # devanagari ca +before HindiVowel always \x091B 16-1 # devanagari cha +before HindiVowel always \x091C 245-1 # devanagari ja +before HindiVowel always \x091D 356-1 # devanagari jha + +before HindiVowel always \x091F 23456-1 # devanagari ta +before HindiVowel always \x0920 2456-1 # devanagari tha +before HindiVowel always \x0921 1246-1 # devanagari da +before HindiVowel always \x0922 123456-1 # devanagari dha +before HindiVowel always \x0923 3456-1 #devanagari nna + +before HindiVowel always \x0924 2345-1 # devanagari ta +before HindiVowel always \x0925 1456-1 # devanagari tha +before HindiVowel always \x0926 145-1 # devanagari da +before HindiVowel always \x0927 2346-1 # devanagari dha +before HindiVowel always \x0928 1345-1 #devanagari na + +before HindiVowel always \x092A 1234-1 # devanagari pa +before HindiVowel always \x092B 235-1 # devanagari pha +before HindiVowel always \x092C 12-1 # devanagari ba +before HindiVowel always \x092D 45-1 # devanagari bha +before HindiVowel always \x092E 134-1 #devanagari ma + +before HindiVowel always \x092F 13456-1 # devanagari yaa +before HindiVowel always \x0930 1235-1 # devanagari ra +before HindiVowel always \x0931 12456-1 # devanagari rra +before HindiVowel always \x0932 123-1 # devanagari la +before HindiVowel always \x0933 456-1 #devanagari la +before HindiVowel always \x0934 123-1 #devanagari la +before HindiVowel always \x0935 1236-1 #devanagari va +before HindiVowel always \x0936 146-1 #devanagari sha +before HindiVowel always \x0937 12346-1 #devanagari ssha +before HindiVowel always \x0938 234-1 #devanagari sa +before HindiVowel always \x0939 125-1 #devanagari ha diff --git a/braille/translate/src/phone/tables/el.ctb b/braille/translate/src/phone/tables/el.ctb index f62e8190c..49fc11b74 100644 --- a/braille/translate/src/phone/tables/el.ctb +++ b/braille/translate/src/phone/tables/el.ctb @@ -654,60 +654,60 @@ attribute englishUpper ABCDEFGHIJKLMNOPQRSTUVWXYZ noback pass3 %englishUpper @6* # Remove virtual dot F from the lowercase English letters. -noback pass4 [@1F] @1 # a -noback pass4 [@12F] @12 # b -noback pass4 [@14F] @14 # c -noback pass4 [@145F] @145 # d -noback pass4 [@15F] @15 # e -noback pass4 [@124F] @124 # f -noback pass4 [@1245F] @1245 # g -noback pass4 [@125F] @125 # h -noback pass4 [@24F] @24 # i -noback pass4 [@245F] @245 # j -noback pass4 [@13F] @13 # k -noback pass4 [@123F] @123 # l -noback pass4 [@134F] @134 # m -noback pass4 [@1345F] @1345 # n -noback pass4 [@135F] @135 # o -noback pass4 [@1234F] @1234 # p -noback pass4 [@12345F] @12345 # q -noback pass4 [@1235F] @1235 # r -noback pass4 [@234F] @234 # s -noback pass4 [@2345F] @2345 # t -noback pass4 [@136F] @136 # u -noback pass4 [@1236F] @1236 # v -noback pass4 [@2456F] @2456 # w -noback pass4 [@1346F] @1346 # x -noback pass4 [@13456F] @13456 # y -noback pass4 [@1356F] @1356 # z +noback pass4 [@1f] @1 # a +noback pass4 [@12f] @12 # b +noback pass4 [@14f] @14 # c +noback pass4 [@145f] @145 # d +noback pass4 [@15f] @15 # e +noback pass4 [@124f] @124 # f +noback pass4 [@1245f] @1245 # g +noback pass4 [@125f] @125 # h +noback pass4 [@24f] @24 # i +noback pass4 [@245f] @245 # j +noback pass4 [@13f] @13 # k +noback pass4 [@123f] @123 # l +noback pass4 [@134f] @134 # m +noback pass4 [@1345f] @1345 # n +noback pass4 [@135f] @135 # o +noback pass4 [@1234f] @1234 # p +noback pass4 [@12345f] @12345 # q +noback pass4 [@1235f] @1235 # r +noback pass4 [@234f] @234 # s +noback pass4 [@2345f] @2345 # t +noback pass4 [@136f] @136 # u +noback pass4 [@1236f] @1236 # v +noback pass4 [@2456f] @2456 # w +noback pass4 [@1346f] @1346 # x +noback pass4 [@13456f] @13456 # y +noback pass4 [@1356f] @1356 # z # Remove virtual dot E from the uppercase English letters. -noback pass4 [@1E] @1 # A -noback pass4 [@12E] @12 # B -noback pass4 [@14E] @14 # C -noback pass4 [@145E] @145 # D -noback pass4 [@15E] @15 # E -noback pass4 [@124E] @124 # F -noback pass4 [@1245E] @1245 # G -noback pass4 [@125E] @125 # H -noback pass4 [@24E] @24 # I -noback pass4 [@245E] @245 # J -noback pass4 [@13E] @13 # K -noback pass4 [@123E] @123 # L -noback pass4 [@134E] @134 # M -noback pass4 [@1345E] @1345 # N -noback pass4 [@135E] @135 # O -noback pass4 [@1234E] @1234 # P -noback pass4 [@12345E] @12345 # Q -noback pass4 [@1235E] @1235 # R -noback pass4 [@234E] @234 # S -noback pass4 [@2345E] @2345 # T -noback pass4 [@136E] @136 # U -noback pass4 [@1236E] @1236 # V -noback pass4 [@2456E] @2456 # W -noback pass4 [@1346E] @1346 # X -noback pass4 [@13456E] @13456 # Y -noback pass4 [@1356E] @1356 # Z +noback pass4 [@1e] @1 # A +noback pass4 [@12e] @12 # B +noback pass4 [@14e] @14 # C +noback pass4 [@145e] @145 # D +noback pass4 [@15e] @15 # E +noback pass4 [@124e] @124 # F +noback pass4 [@1245e] @1245 # G +noback pass4 [@125e] @125 # H +noback pass4 [@24e] @24 # I +noback pass4 [@245e] @245 # J +noback pass4 [@13e] @13 # K +noback pass4 [@123e] @123 # L +noback pass4 [@134e] @134 # M +noback pass4 [@1345e] @1345 # N +noback pass4 [@135e] @135 # O +noback pass4 [@1234e] @1234 # P +noback pass4 [@12345e] @12345 # Q +noback pass4 [@1235e] @1235 # R +noback pass4 [@234e] @234 # S +noback pass4 [@2345e] @2345 # T +noback pass4 [@136e] @136 # U +noback pass4 [@1236e] @1236 # V +noback pass4 [@2456e] @2456 # W +noback pass4 [@1346e] @1346 # X +noback pass4 [@13456e] @13456 # Y +noback pass4 [@1356e] @1356 # Z ########################################### # Backward Translation of English Letters # diff --git a/braille/translate/src/phone/tables/en-chardefs.cti b/braille/translate/src/phone/tables/en-chardefs.cti index b88414263..516913723 100644 --- a/braille/translate/src/phone/tables/en-chardefs.cti +++ b/braille/translate/src/phone/tables/en-chardefs.cti @@ -155,7 +155,7 @@ noback punctuation \x2019 356-3 punctuation \x201c 236 punctuation \x201d 356 sign \x2022 456-256 Bullet -noback punctuation \x2026 3 +noback punctuation \x2026 3-3-3 sign \x2122 45-2345 trademark sign sign \x00A2 4-14 CENT SIGN sign \x00A3 3456 POUND SIGN diff --git a/braille/translate/src/phone/tables/en-ueb-chardefs.uti b/braille/translate/src/phone/tables/en-ueb-chardefs.uti index 2532f7290..38ff241df 100644 --- a/braille/translate/src/phone/tables/en-ueb-chardefs.uti +++ b/braille/translate/src/phone/tables/en-ueb-chardefs.uti @@ -24,56 +24,21 @@ # License along with liblouis. If not, see # . -# Maintained by Mike Gray +#-maintainer: James Bowden space \t 9 tab space \x001b 1b escape character for html back-translation space \x00A0 a NO-BREAK SPACE 0020 NON-BREAKING SPACE noback correct "\x200b" "\s" + +include text_nabcc.dis include spaces.uti include latinLetterDef6Dots.uti include latinUppercaseComp6.uti -# Numeric Symbols - -display 0 356 -display 1 2 -display 2 23 -display 3 25 -display 4 256 -display 5 26 -display 6 235 -display 7 2356 -display 8 236 -display 9 35 - -digit 0 245 -digit 1 1 -digit 2 12 -digit 3 14 -digit 4 145 -digit 5 15 -digit 6 124 -digit 7 1245 -digit 8 125 -digit 9 24 - -# this is a bad work-around for doing numeric mode backwards -litdigit 0 245 -litdigit 1 1 -litdigit 2 12 -litdigit 3 14 -litdigit 4 145 -litdigit 5 15 -litdigit 6 124 -litdigit 7 1245 -litdigit 8 125 -litdigit 9 24 - - # Modifiers # acute accent @@ -82,7 +47,6 @@ sign \x0301 45-34 ́ noback correct [$l]"́" "́"* # circumflex/carot -display \x005e 457 ^ sign \x005e 4-26 ^ sign \x0302 45-146 ̂ noback correct [$l]"̂" "̂"* @@ -94,7 +58,6 @@ sign \x0300 45-16 ̀̀ noback correct [$l]"̀" "̀"* # tilde -display \x007e 45 ~ math \x007e 4-35 ~ sign \x0303 45-12456 ̃ noback correct [$l]"̃" "̃"* @@ -136,16 +99,13 @@ noback correct [$l]"̊" "̊"* # Unicode: Basic Latin -display ! 2346 punctuation ! 235 nofor postpunc ! 235 match %a ! %a 56-235 -display " 5 punctuation " 6-2356 # The "?" symbol is mostly handled below, # but the pattern needs to be defined before prepunc and postpunc can be used. -display ? 1456 nofor punctuation ? 236 nofor punctuation " 356 nofor prepunc " 236 @@ -153,73 +113,54 @@ nofor postpunc " 356 match %[^_~]%<* " %[_.$]*%[a#] 236 match %[a#]%[_.$]* " %>*%[^_~] 356 -display # 3456 sign # 456-1456 -display $ 1246 sign $ 4-234 -display % 146 sign % 46-356 -display & 12346 sign & 4-12346 -display ' 3 punctuation ' 3 -display ( 12356 punctuation ( 5-126 -display ) 23456 +nofor prepunc ( 5-126 punctuation ) 5-345 -display * 16 +postpunc ) 5-345 sign * 5-35 -display + 346 math + 5-235 -display , 6 punctuation , 2 +nofor postpunc , 2 match %a , %a 56-2 -display - 36 punctuation - 36 hyphen - 36 -display . 46 punctuation . 256 -display / 34 +nofor postpunc . 256 math / 456-34 # 0-9 see Numeric Symbols -display : 156 punctuation : 25 postpunc : 25 match %a : %a 56-25 -#TODO: this is unnecessarily necessary -display ; 56 punctuation ; 23 -noback punctuation ; 56 +postpunc ; 23 match %a ; %a 56-23 -display < 126 math < 4-126 -display = 123456 math = 5-2356 -display > 345 punctuation > 4-345 # requires grade one indicator when by itself punctuation ? 56-236 postpunc ? 236 -display @ 47 sign @ 4-1 # A-Z see latinLetterDef8Dots.uti -display [ 2467 punctuation [ 46-126 -display \\ 12567 +nofor prepunc [ 46-126 sign \\ 456-16 -display ] 124567 punctuation ] 46-345 +nofor postpunc ] 46-345 # \x005e ^ see Modifiers -display _ 456 sign _ 46-36 # /x0060 ` see Modifiers # a-z see latinLetterDef8Dots.uti -display { 246 punctuation { 456-126 -display | 1256 +nofor prepunc { 456-126 sign | 456-1256 -display } 12456 punctuation } 456-345 +nofor postpunc } 456-345 # \x007e ~ see Modifiers @@ -548,8 +489,10 @@ sign \x21b5 56-1256-256-146 ↵ Rules of UEB, page 21 sign \x21c0 56-1256-4-1235 ⇀ sign \x21c1 56-1256-6-1235 ⇁ sign \x21cc 45-456-2356 ⇌ equilibrium arrow (harpoons) -sign \x21d2 56-1256-2356-2356 ⇒ - +sign \x21d0 56-1256-2356-246 ⇐ +sign \x21d1 56-1256-2356-346 ⇑ +sign \x21d2 56-1256-2356-135 ⇒ +sign \x21d3 56-1256-2356-146 ⇓ # Unicode: Mathematical Operators @@ -929,16 +872,52 @@ base uppercase \x04d8 \x04d9 Әә base uppercase \x04ee \x04ef Ӯӯ base uppercase \x04f0 \x04f1 Ӱӱ + +# Numeric Symbols + +digit 0 356 +digit 1 2 +digit 2 23 +digit 3 25 +digit 4 256 +digit 5 26 +digit 6 235 +digit 7 2356 +digit 8 236 +digit 9 35 + +litdigit 0 245 +litdigit 1 1 +litdigit 2 12 +litdigit 3 14 +litdigit 4 145 +litdigit 5 15 +litdigit 6 124 +litdigit 7 1245 +litdigit 8 125 +litdigit 9 24 + + # Unicode prefers \x2019 for apostrophe instead of \x0027 -endword \x2019d 3-145 -endword \x2019m 3-134 -endword \x2019re 3-1235-15 -endword \x2019ve 3-1236-15 -endword \x2019ll 3-123-123 -endword \x2019s 3-234 -endword s\x2019 234-3 -endword \x2019t 3-2345 +endword 'd 3-145 +noback endword \x2019d 3-145 +endword 'll 3-123-123 +noback endword \x2019ll 3-123-123 +endword 'm 3-134 +noback endword \x2019m 3-134 +endword 'n 3-1345 +noback endword \x2019n 3-1345 +endword 're 3-1235-15 +noback endword \x2019re 3-1235-15 +endword 's 3-234 +noback endword \x2019s 3-234 +endword s' 234-3 +noback endword s\x2019 234-3 +endword 't 3-2345 +noback endword \x2019t 3-2345 +endword 've 3-1236-15 +noback endword \x2019ve 3-1236-15 # Remove dot 6 from ligatures (æ, œ and ij) when they are lowercase or part of an uppercase word diff --git a/braille/translate/src/phone/tables/en-ueb-g1.ctb b/braille/translate/src/phone/tables/en-ueb-g1.ctb index 60560b0bf..c95a10278 100644 --- a/braille/translate/src/phone/tables/en-ueb-g1.ctb +++ b/braille/translate/src/phone/tables/en-ueb-g1.ctb @@ -11,11 +11,6 @@ #+grade:1 #+system:ueb # -# TODO: Please correct the metadata above. It is not meant to be -# accurate nor complete. It hasn't been verified by the table -# author yet. It is merely an attempt by the liblouis maintainers -# to get some sensible initial values in place. -# # TODO: Please add a reference to official documentation about # the implemented braille code. Preferably submit the documents # to https://github.com/liblouis/braille-specs. @@ -43,10 +38,10 @@ # License along with liblouis. If not, see # . # -# Maintained by John J. Boyer john.boyer@jjb-software.com -# Mike Gray -# Modified by Mike Gray -# Joseph Lee +#-maintainer: James Bowden +#-author: John J. Boyer +#-author: Mike Gray +#-author: Joseph Lee include en-ueb-chardefs.uti UEB specific char defs. # some dots are undefined now @@ -56,7 +51,14 @@ numsign 3456 number sign, just a dots operand numericmodechars ., nocontractsign 56 nonumsign 56 -numericnocontchars abcdefghij +numericnocontchars abcdefghijABCDEFGHIJ + +# A capital ends numeric mode, so clean up extraneous letter indicators between a number +# and a subsequent capital letter +noback pass2 _$D[@6-56]$U @6 # handle "1234Card" +noback pass2 _$D[@6-6-56]$U @6-6 # handle "1234CARD" +noback pass2 _$D[@256-6-6-56]$U @256-6-6 # handle "1234.CARD" +noback pass2 _$D[@256-6-56]$U @256-6 # handle "1234.Card" # Correct order of comma and numeric indicator match %a , %# 2-34569 force correct position of numeric indicator @@ -67,13 +69,13 @@ match %a . %# 256-34569 force correct position of numeric indicator noback pass2 @3456-256-34569 @256-3456 Clear up extra indicator after the match line # numeric space -noback correct _$d["\s"]$d "\xE020" # change space to custom symbol representing numeric space -nofor correct _$d["\xE020"]$d "\s" +noback correct _$d["\x00a0"]$d "\xE020" # change space to custom symbol representing numeric space +nofor correct _$d["\xE020"]$d "\x00a0" litdigit \xE020 5a # add virtual dot to make distinction with other uses of dot 5 noback pass2 @5a @5 -nofor pass2 [@3456]$d @3456#1=1 # enter numeric mode when number sign followed by digit is encountered -nofor pass2 $d * -nofor pass2 #1=1[@5]$d @5a # when in numeric mode interpret dot 5 as numeric space +nofor pass2 [@3456]$D @3456#1=1 # enter numeric mode when number sign followed by digit is encountered +nofor pass2 $D * +nofor pass2 #1=1[@5]$D @5a # when in numeric mode interpret dot 5 as numeric space nofor pass2 $a *#1=0 # exit numeric mode when other character than digit or numeric space is encountered capsletter 6 diff --git a/braille/translate/src/phone/tables/en-ueb-g2.ctb b/braille/translate/src/phone/tables/en-ueb-g2.ctb index 9193ff3f3..9ba57df1a 100644 --- a/braille/translate/src/phone/tables/en-ueb-g2.ctb +++ b/braille/translate/src/phone/tables/en-ueb-g2.ctb @@ -11,11 +11,6 @@ #+grade:2 #+system:ueb # -# TODO: Please correct the metadata above. It is not meant to be -# accurate nor complete. It hasn't been verified by the table -# author yet. It is merely an attempt by the liblouis maintainers -# to get some sensible initial values in place. -# # TODO: Please add a reference to official documentation about # the implemented braille code. Preferably submit the documents # to https://github.com/liblouis/braille-specs. @@ -43,11 +38,11 @@ # License along with liblouis. If not, see # . # -# Maintained by John J. Boyer john.boyer@jjb-software.com -# Mike Gray -# Modified by Mike Gray -# Joseph Lee -# Krzysztof Drewniak +#-maintainer: James Bowden +#-author: John J. Boyer +#-author: Mike Gray +#-author: Joseph Lee +#-author: Krzysztof Drewniak include en-ueb-g1.ctb @@ -511,9 +506,8 @@ sufword vainglory 1236-1-35-1245-123-135-1235-13456 # ou always ou 1256 -#match (%[^_~]%<*) ou (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?(%>*%[^_~]) = - -sufword prounion 1234-1235-135-136-1345-24-135-1345 +match (%[^_~]%<*) ou (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?(%>*%[^_~]) = +match (%[^_~]%<*) proun [Ii] = prounion etc # ow always ow 246 @@ -606,7 +600,6 @@ match %a thors [Ee] = match %a thound - 2345-125-46-145 match %a thous [EIei] 2345-125-1256-234 -sufword beethoven 12-15-15-2345-125-135-1236-26 sufword bolthole = match - coat [Hh][Aa][Nn][Gg] = match - coat [Hh][Oo][Ll][Ee] = @@ -667,6 +660,7 @@ match %[^_]|%[^_~]%<*[([{] be %[^_]|[)}\\]]%>*%[^_~] 23 word enough's 26-3-234 word enough’s 26-3-234 match %[^_~]([\\([{]*|[\\([{]+%<*) enough (%>*[\\)\\]}]+|[\\)\\]}]*)%[^_~] 26 +nofor lowword enough 26 always enough 26-1256-126 # his @@ -706,32 +700,123 @@ sufword subbasement 234-136-12-12-1-234-15-56-2345 sufword subbing 234-136-12-12-346 # be 10.6.1 10.6.2 10.6.3 10.6.4 +empmatchafter match %[^_~]%<* be [Aa][Pp][Rr][Oo][Nn] 23 +word beata 23-1-2345-1 +word beatae 23-1-2345-1-15 +word beati 23-1-2345-24 empmatchafter match %[^_~]%<* be [Aa][Tt][Ii]![Nn] 23 beati* empmatchafter match %[^_~]%<* be [Aa][Tt][Rr] 23 bea* -empmatchafter match %[^_~]%<* be [Cc]![HKQhkq] 23 bec* +word beatus 23-1-2345-136-234 +word beche 12-15-16-15 +word beches 12-15-16-15-234 +empmatchafter match %[^_~]%<* bech [DTdt] 12-15-16 +empmatchafter match %[^_~]%<* beclome [Tt][Hh] = beclomethasone +empmatchafter match %[^_~]%<* beconas [AEIOUYaeiouy] = +empmatchafter match %[^_~]%<* be [Cc]![CKQTckqt] 23 bec* +word bede 12-1246-15 +word beden 12-1246-26 +word bedes 12-1246-15-234 +empmatchafter match %[^_~]%<* be [Dd][AIOUaiou] 23 bed* +empmatchafter match %[^_~]%<* bede [Gg]([Uu]?)[Aa][Rr] 12-1246-15 +empmatchafter match %[^_~]%<* bede [Hh][Oo][Uu][Ss] 12-1246-15 +empmatchafter match %[^_~]%<* bede ([Ss]?)(([Ww][Oo])?)[Mm]([Aa]|[Ee])[Nn] 12-1246-15 +empmatchafter match %[^_~]%<* be [Dd][Ee] 23 bede* +empmatchafter match %[^_~]%<* bediver [Ee] 12-1246-24-1236-12456 +empmatchafter match %[^_~]%<* bedou [Ii][Nn] 12-1246-1256 +empmatchafter match %[^_~]%<* bed ([Ee]?)[Rr][AEae]([Ii]?)[Ll] 12-1246 empmatchafter match %[^_~]%<* be [Dd][Rr][Aa] 23 bedr* -empmatchafter match %[^_~]%<* be [Dd][Ee]!(%>*%[_~^]) 23 bede* -empmatchafter match %[^_~]%<* be [Dd][Aa] 23 bed* +empmatchafter match %[^_~]%<* be [Dd][Rr][Ee][Nn][Cc][Hh] 23 +empmatchafter match %[^_~]%<* be [Dd][Rr][Ee][Ss][Ss] 23 +empmatchafter match %[^_~]%<* bed [Rr][Ii][Dd] 12-1246 +empmatchafter match %[^_~]%<* be [Dd][Rr][Ii] 23 +empmatchafter match %[^_~]%<* be [Dd][Rr][Oo][Pp] 23 +empmatchafter match %[^_~]%<* be [Dd][Rr][Oo][Ww] 23 +empmatchafter match %[^_~]%<* be [Dd][Rr][Uu] 23 +empmatchafter match %[^_~]%<* bedu [Ii][Nn] 12-1246-136 +empmatchafter match %[^_~]%<* be [Dd][Ww][Aa][Rr][Ff] 23 +empmatchafter match %[^_~]%<* be [Dd][Ww][Ee][Ll][LTlt] 23 empmatchafter match %[^_~]%<* be [Ee][Ll][Zz] 23 bee* -empmatchafter match %[^_~]%<* be [Gg]![GSgs] 23 beg* +sufword beghard 12-15-1245-125-345-145 H is sometimes aspirate +match %[^_~]%<* begler [Bb][Ee][GYgy] 12-15-1245-123-12456 +empmatchafter match %[^_~]%<* be [Gg]![BDFGMPQSTVbdfgmpqstv] 23 beg* +empmatchafter match %[^_~]%<* beh [BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz] = +empmatchafter match %[^_~]%<* bein ['’] 23-24-1345 +word bein 12-15-35 +word beins 12-15-35-234 empmatchafter match %[^_~]%<* be [Ii][Nn] 23 bei* +sufword bekesy = +empmatchafter match %[^_~]%<* bek [HKRThkrt][AIai] = +sufword belafon = -te +sufword belamour 12-15-123-1-134-1256-1235 +empmatchafter match %[^_~]%<* belemn ([AEIOUYaeiouy]*)[DTdt] = e.g. -nid, -nite, -noid +empmatchafter match %[^_~]%<* belom [Aa][Nn][Cc] = +empmatchafter match %[^_~]%<* belomy [Ss] = +empmatchafter match %[^_~]%<* belone ([Ss]|['’][Ss])?%>*%[_~^] = +empmatchafter match %[^_~]%<* belon [EOeo][Pp][Hh][Oo] = +empmatchafter match %[^_~]%<* belon ([AEIOUYaeiouy]*)[DTdt] = e.g. -nid, -nite, -noid empmatchafter match %[^_~]%<* be [Ll][AEIOUWYaeiouwy] 23 bel* +sufword benadryl 12-26-1-145-1235-13456-123 +word benammi 12-26-1-134-134-24 Normally written hyphenated +word benefic 23-1345-15-124-24-14 Different from below empmatchafter match %[^_~]%<* be [Nn][Ee][Ff][Ii][Cc][Ee][Nn] 23 beneficen* empmatchafter match %[^_~]%<* be [Nn][Ee][Tt](['’]s)?%>*%[_~^] 23 benet -empmatchafter match %[^_~]%<* be [Nn][Ee]![DFTdft] 23 bene* -empmatchafter match %[^_~]%<* be [Nn][AIUaiu] 23 ben* -empmatchafter match %[^_~]%<* be [Rr][Aa] 23 bere* -empmatchafter match %[^_~]%<* be [Rr][Ee]![Nn] 23 ber* -empmatchafter match %[^_~]%<* be [Ss][Tt][Ii][Rr] 23 besti* -empmatchafter match %[^_~]%<* be [Ss][Tt][ORor] 23 best* -empmatchafter match %[^_~]%<* be [Ss]![STst] 23 bes* -empmatchafter match %[^_~]%<* be [Tt]![CHSTchst'’] 23 bet* -empmatchafter match %[^_~]%<* be [BFHJMOPQWXZbfhjmopqwxz] 23 +empmatchafter match %[^_~]%<* beneven [Tt] 12-26-15-1236-26 +empmatchafter match %[^_~]%<* be [Nn][Ee]![DFLTdflt] 23 bene* +empmatchafter match %[^_~]%<* ben [Ii][AENOSUaenosu] 12-26 +sufword benomyl 12-26-135-134-13456-123 +empmatchafter match %[^_~]%<* be [Nn][AIOUaiou] 23 ben* +sufword beresford 12-12456-15-234-123456-145 +empmatchafter match %[^_~]%<* beresit [Ee] 12-12456-15-234-24-2345 +sufword berewick 12-12456-15-2456-24-14-13 +empmatchafter match %[^_~]%<* be [Rr][Hh][Yy][Mm] 23 +empmatchafter match %[^_~]%<* beribb [Oo][Nn] 23-1235-24-23 +empmatchafter match %[^_~]%<* berim [AEIOUYaeiouy] 23-1235-24-134 +empmatchafter match %[^_~]%<* bering [Ee][Dd] 23-1235-346 +empmatchafter match %[^_~]%<* bering [Ll][Ee][Tt] 23-1235-346 +empmatchafter match %[^_~]%<* be [Rr][AOUaou] 23 bere* +empmatchafter match %[^_~]%<* be [Rr][Ee]![NTZntz] 23 ber* +word best 12-15-34 +word bested 12-15-34-1246 +word bester 12-15-34-12456 +word bestest 12-15-34-15-34 +empmatchafter match %[^_~]%<* best [Ii][AEae] 12-15-34 +empmatchafter match %[^_~]%<* best [Ii][Cc][Uu] 12-15-34 +word besting 12-15-34-346 +word bestness 12-15-34-56-234 +empmatchafter match %[^_~]%<* best [Ss] 12-15-34 bests and bestsell* +word besty 12-15-34-13456 +empmatchafter match %[^_~]%<* be [Ss]![Ss] 23 bes* +empmatchafter match %[^_~]%<* betafi [Tt][AEIOUaeiou] = +word bete = +word betes = +sufword bethabar 23-1456-1-12-345 +sufword bethank 23-1456-1-1345-13 +sufword bethesda 23-2346-234-145-1 +sufword bethroot 12-15-1456-1235-135-135-2345 +sufword bethuel 12-15-1456-136-15-123 +sufword bethune 12-15-1456-136-1345-15 +empmatchafter match %[^_~]%<* bethylid [Aa][Ee] 23-1456-13456-123-24-145 +empmatchafter match %[^_~]%<* be [Tt][Hh][IORUWioruw]%a 23 +word betonies = +word betony = +match - betula [Cc] = +match - betul [Ii][Nn] = +empmatchafter match %[^_~]%<* be [Tt]![CHJKSTZchjkstz'’] 23 bet* +empmatchafter match %[^_~]%<* beun [Ii] 23-136-1345 +empmatchafter match %[^_~]%<* be [Vv][Uu][Ee] 23 +sufword bewick = +word bewit = +word bewits = +empmatchafter match %[^_~]%<* bew [BCDFGJKLMNPQSTVWXZbcdfgjklmnpqstvwxz] = +empmatchafter match %[^_~]%<* bex [BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz] = +empmatchafter match %[^_~]%<* bey [AOao][Nn]([Ss]?)[Tt] 23-13456 + +empmatchafter match %[^_~]%<* be [BCEFGHIJKLMPQSTUVWXYZbcefghijklmpqstuvwxyz]([Ss]|['’][Ss])?%>*%[_~^] = 3 letter words +empmatchafter match %[^_~]%<* be [BFJKMPQVWXZbfjkmpqvwxz][BFJKMPQVWXZbfjkmpqvwxz] = "be" is not the first syllable +empmatchafter match %[^_~]%<* be [BFHJKMOPQWXZbfhjkmopqwxz] 23 nofor sufword be 23 -sufword bethesda 23-2346-234-145-1 - # be[cfhlnsty] are handled in 10.9.5 word beg = @@ -756,7 +841,7 @@ sufword arccosine 345-14-14-135-234-35-15 # con 10.6.1 10.6.2 10.6.3 10.6.4 empmatchafter match %[^_~]%<* con [Cc]![Hh] 25 empmatchafter match %[^_~]%<* con [Ee][Ss][Tt] 25 -empmatchafter match %[^_~]%<* con s%a 25 [Cc][Oo][Nn][Ss] "mod cons" 10.6.4 +empmatchafter match %[^_~]%<* con [Ss]%a 25 [Cc][Oo][Nn][Ss] "mod cons" 10.6.4 empmatchafter match %[^_~]%<* con [ABDFGHIJLMNOPQRTUVWXYZabdfghijlmnopqrtuvwxyz] 25 sufword conakry 14-135-1345-1-13-1235-13456 sufword conan 14-135-1345-1-1345 @@ -765,16 +850,16 @@ sufword conned 14-135-1345-1345-1246 nofor begword con 25 # dis 10.6.1 10.6.2 10.6.3 10.6.4 -word disc 145-24-234-14 + word dish 145-24-146 word disher 145-24-146-12456 word dishers 145-24-146-12456-234 match ^|!%a dishi ([Ee]([Rr]|([Ss][Tt]))) 145-24-146-24 word dishy 145-24-146-13456 word diss 145-24-234-234 -empmatchafter match %[^_~]%<* dis [Cc]![Ss'’] 256 +empmatchafter match %[^_~]%<* dis [Cc]([HLRhlr]?)[AEIOUYaeiouy] 256 empmatchafter match %[^_~]%<* dis [Hh][Ee]![DSVdsv] 256 -empmatchafter match %[^_~]%<* dis [Hh]![BCCEFGHIKLMNPRTWbcdefghiklmnprtw'’] 256 +empmatchafter match %[^_~]%<* dis [Hh]![BCDEFGHIKLMNPRTWbcdefghiklmnprtw'’] 256 empmatchafter match %[^_~]%<* dis [Pp]![Ii] 256 empmatchafter match %[^_~]%<* dis [ABDEFGIJLMNOQRSTUVWXYZabdefgijlmnoqrstuvwxyz] 256 @@ -1099,6 +1184,7 @@ always nament 1345-1-56-2345 in nament, MENT has priority match - ename ([DSds]|(['’][Ss]))?%>*%[^_~] 15-5-1345 filename tradename endword namese = endword namesian = +match - name [Ee] = match - name [Tt][Ee][Rr] 1345-1-134-15 match - name [Tt][Rr][AEIOUYaeiouy] 1345-1-134-15 @@ -1306,6 +1392,7 @@ match - some [Tt][Ee][Rr] 234-135-134-15 match - some [Tt][Rr][AaEeIiOoUuYy] 234-135-134-15 always somever 234-135-134-5-15 +sufword besomer 23-234-135-134-12456 sufword blossomed 12-123-135-234-234-135-134-1246 always isomer 24-234-135-134-12456 sufword ransomed 1235-1-1345-234-135-134-1246 @@ -1339,10 +1426,8 @@ sufword theses 2346-234-15-234 sufword theseus 2346-234-15-136-234 # those 10.7.2 -always those 45-1456 - -sufword spathose 234-1234-1-1456-135-234-15 -sufword thoseby 1456-135-234-15-12-13456 +nofor always those 45-1456 +match ^|!%a those ^|!%a 45-1456 In practice, only the word "those" uses the sign # through always through 5-1456 @@ -1400,29 +1485,49 @@ always young 5-13456 # 10.8 Final-Letter Groupsigns -# ance -match %a ance - 46-15 +# ance (1-1345-14-15 -> 46-15) nofor midendword ance 46-15 +match %a ance - 46-15b + +noback pass2 [@6-46-15b] @6-1-1345-14-15 +noback pass2 [@6-3-46-15b] @6-3-1-1345-14-15 +noback pass2 [@46-15b] @46-15 + sufword fiance 124-24-1-1345-14-15 should be fiancé -# ence -match %a ence - 56-15 +# ence (15-1345-14-15 -> 56-15) nofor midendword ence 56-15 +match %a ence - 56-15b + +noback pass2 [@6-56-15b] @6-26-14-15 # (en)ce +noback pass2 [@6-3-56-15b] @6-3-26-14-15 # (en)ce +noback pass2 [@56-15b] @56-15 + #midendword oence 135-26-14-15 electroencephalogram always encephal 26-14-15-1234-125-1-123 -# ful -match %a ful - 56-123 +# ful (124-136-123 -> 56-123) nofor midendword ful 56-123 +match %a ful - 56-123b + +noback pass2 [@6-56-123b] @6-124-136-123 +noback pass2 [@6-3-56-123b] @6-3-124-136-123 +noback pass2 [@56-123b] @56-123 + sufword overfull 135-1236-12456-124-136-123-123 #TODO: check -# ity 10.8.3 -match %a ity - 56-13456 +# ity (24-2345-13456 -> 56-13456) 10.8.3 nofor midendword ity 56-13456 +match %a ity - 56-13456b + +noback pass2 [@6-56-13456b] @6-24-2345-13456 +noback pass2 [@6-3-56-13456b] @6-3-24-2345-13456 +noback pass2 [@56-13456b] @56-13456 + word biscuity 12-24-234-14-136-24-2345-13456 word dacoity 145-1-14-135-24-2345-13456 word fruity 124-1235-136-24-2345-13456 @@ -1433,26 +1538,46 @@ word pityard 1234-24-2345-13456-345-145 sufword antitype 1-1345-2345-24-2345-13456-1234-15 sufword captainess 14-1-1234-2345-1-24-35-15-234-234 -# less -match %a less - 46-234 +# less (123-15-234-234 -> 46-234) nofor midendword less 46-234 -# ment -match %a ment - 56-2345 +match %a less - 46-234b + +noback pass2 [@6-46-234b] @6-123-15-234-234 +noback pass2 [@6-3-46-234b] @6-3-123-15-234-234 +noback pass2 [@46-234b] @46-234 + +# ment (134-15-1345-2345 -> 56-2345) nofor midendword ment 56-2345 -# ness 10.8.4 -match %a ness - 56-234 +match %a ment - 56-2345b + +noback pass2 [@6-56-2345b] @6-134-26-2345 # m(en)t +noback pass2 [@6-3-56-2345b] @6-3-134-26-2345 # m(en)t +noback pass2 [@56-2345b] @56-2345 + +# ness (1345-15-234-234 -> 56-234) 10.8.4 nofor midendword ness 56-234 +match %a ness - 56-234b + +noback pass2 [@6-56-234b] @6-1345-15-234-234 +noback pass2 [@6-3-56-234b] @6-3-1345-15-234-234 +noback pass2 [@56-234b] @56-234 + sufword chieftainess 16-24-15-124-2345-1-35-15-234-234 sufword citizeness 14-24-2345-24-1356-26-15-234-234 sufword heatheness 125-2-2346-1345-15-234-234 -# ong -match %a ong - 56-1245 +# ong (135-1345-1245 -> 56-1245) nofor midendword ong 56-1245 +match %a ong - 56-1245b + +noback pass2 [@6-56-1245b] @6-135-1345-1245 +noback pass2 [@6-3-56-1245b] @6-3-135-1345-1245 +noback pass2 [@56-1245b] @56-1245 + match - cannon [Gg][Aa][Tt][Ee] = match - lemon [Gg][Rr][Aa][Ss][Ss] = match - longhi ^|!%a 123-135-1345-126-24 @@ -1462,22 +1587,42 @@ begword nong = nongraphical nongaseous nongovernmental match - schon [Gg][Aa][Uu][Ee][Rr] 234-16-135-1345 sufword songhai 234-135-1345-126-1-24 -# ound -match %a ound - 46-145 +# ound (135-136-1345-145 -> 46-145) nofor midendword ound 46-145 -# ount -match %a ount - 46-2345 +match %a ound - 46-145b + +noback pass2 [@6-46-145b] @6-1256-1345-145 # (ou)nd +noback pass2 [@6-3-46-145b] @6-3-1256-1345-145 # (ou)nd +noback pass2 [@46-145b] @46-145 + +# ount (135-136-1345-2345 -> 46-2345) nofor midendword ount 46-2345 -# sion -match %a sion - 46-1345 +match %a ount - 46-2345b + +noback pass2 [@6-46-2345b] @6-1256-1345-2345 # (ou)nt +noback pass2 [@6-3-46-2345b] @6-3-1256-1345-2345 # (ou)nt +noback pass2 [@46-2345b] @46-2345 + +# sion (234-24-135-1345 -> 46-1345) nofor midendword sion 46-1345 -# tion -match %a tion - 56-1345 +match %a sion - 46-1345b + +noback pass2 [@6-46-1345b] @6-234-24-135-1345 +noback pass2 [@6-3-46-1345b] @6-3-234-24-135-1345 +noback pass2 [@46-1345b] @46-1345 + +# tion (2345-24-135-1345 -> 56-1345) nofor midendword tion 56-1345 +match %a tion - 56-1345b + +noback pass2 [@6-56-1345b] @6-2345-24-135-1345 +noback pass2 [@6-3-56-1345b] @6-3-2345-24-135-1345 +noback pass2 [@56-1345b] @56-1345 + sufword cation 14-1-2345-24-135-1345 always mention 134-26-56-1345 TION has priority @@ -4167,6 +4312,7 @@ sufword rafter 1235-1-124-2345-12456 sufword preadmit 1234-1235-15-1-145-134-24-2345 word rared 1235-1-1235-1246 +contraction blc contraction bldg contraction blt contraction blvd @@ -4197,3 +4343,13 @@ contraction \x25cb ○ circle contraction \x25cd ◍ shaded circle + +# Punctuation in strange places require grade 1 indicator +# note, forward direction handled with match elsewhere + +nofor always , 56-2 +nofor always ; 56-23 +nofor always : 56-25 +nofor always . 56-256 +nofor always ! 56-235 +nofor always ? 56-236 diff --git a/braille/translate/src/phone/tables/fi.utb b/braille/translate/src/phone/tables/fi.utb index fb686803f..01ebdfd71 100644 --- a/braille/translate/src/phone/tables/fi.utb +++ b/braille/translate/src/phone/tables/fi.utb @@ -3,27 +3,32 @@ # ----------- #-index-name: Finnish #-display-name: Finnish braille +#-name: Suomenkielinen 6-pisteen pistekirjoitustaulukko # -#+language:fi -#+type:literary -#+contraction:no -#+dots:6 -# Marked as "direction:forward" by Bue Vester-Andersen -# as tests only run forward. -#+direction:forward +#+language: fi +#+type: literary +#+contraction: no +#+dots: 6 +#+direction: forward # -# TODO: Please correct the metadata above. It is not meant to be -# accurate nor complete. It hasn't been verified by the table -# author yet. It is merely an attempt by the liblouis maintainers -# to get some sensible initial values in place. +#-authority: Finnish delegation for braille +#-maintainer: Sami Määttä +#-maintainer: Finnish delegation for braille +#-author: Sami Määttä +#-author: Kirsi Ylänne +#-author: Jukka Eerikäinen (created by) +#-copyright: 2014, 2015, 2024, Accessibility Library Celia, +#-updated: 2024-06-17 +# +# Based on the official documentation "Pistekirjoituksen perusteet" on the website (in Finnish) https://www.pistekirjoitus.fi/julkaisut/pistekirjoituksen-perusteet/. +# Also based on the mathematical braille on the website "Matematiikan, fysiikan ja kemian pistemerkinnät" and "Matematiikan, fysiikan ja kemian merkinnät elektronisissa oppikirjoissa" (in Finnish) https://www.pistekirjoitus.fi/julkaisut/matematiikka-ja-tietotekniikka/. +# On GitHub: https://github.com/liblouis/braille-specs/tree/master/finnish. # # TODO: Please add a reference to official documentation about # the implemented braille code. Preferably submit the documents # to https://github.com/liblouis/braille-specs. # ----------- # -# Copyright (C) 2014,2015 Celia Library https://www.celia.fi -# # This file is part of liblouis. # # liblouis is free software: you can redistribute it and/or modify it @@ -40,11 +45,6 @@ # License along with liblouis. If not, see # . -# Created by Jukka Eerikäinen - -# Based on official specification document available on -# https://github.com/liblouis/liblouis/tree/formal_braille_spec#pistekirjoituksen-perusteet - # Includes space \x00a0 a include spaces.uti @@ -93,6 +93,7 @@ lowercase \x00FB 45-136 û lowercase \x00FD 45-13456 ý lowercase \x00FE 45-145 þ lowercase \x00FF 45-13456 ÿ +lowercase \x0161 45-234 š # Uppercase letters base uppercase \x00C0 \x00E0 Àà @@ -127,6 +128,7 @@ base uppercase \x00DD \x00FD Ýý base uppercase \x00DE \x00FE Þþ base uppercase \x0152 \x0153 Œœ base uppercase \x1E9E \x00DF ẞß +base uppercase \x0160 \x0161 Šš # Punctuation # For purposes of this table intended for general literary texts, some mathematical symbols and operators, such as < and > are considered as general punctuation. For reasoning, see section "General symbols" below. @@ -135,13 +137,9 @@ punctuation , 2 punctuation : 25 punctuation ; 23 punctuation ! 256 -punctuation ? 26 -punctuation ' 5 -punctuation " 56 punctuation ! 256 punctuation ? 26 -punctuation \x0027 5 ' -punctuation \x0022 56 " +punctuation ? 26 punctuation ( 236 punctuation ) 356 punctuation [ 12356 @@ -151,6 +149,12 @@ punctuation } 12456 punctuation < 126 punctuation > 156 punctuation / 34 +punctuation ' 5 +punctuation \x0027 5 ' +punctuation " 56 +punctuation \x0022 56 " +punctuation \x201D 56 ” # left-pointing bould angle quotation +punctuation \x00BB 56 # right-pointing double angle quotation # General symbols # For purposes of this table intended for general literary texts, some mathematical symbols and operators, such as + and % are considered as general symbols. @@ -170,14 +174,33 @@ sign \x20AC 4-15 € sign \x00A2 4-14 ¢ sign * 35 sign \x00A7 3456 § -sign _ 346 sign # 3456 +sign _ 346 sign ^ 346 sign \x2022 3 • Bullet sign sign \x00B7 3 · Interpunct sign - 36 Hyphen, not a dash. Hyphens are spaced as in print text. sign \x2013 36 – En-dash, not a hyphen. sign \x2014 36 – Em-dash, not a hyphen. +sign ← 126-36 # left arrow +sign → 36-156 # right arrow +sign ↑ 34-156 # up arrow +sign ↓ 16-156 # down arrow +sign ↖ 126-26 # north west arrow (not strictly in the standards) +sign ↗ 35-156 # north east arrow +sign ↘ 26-156 # south east arrow +sign ↙ 126-35 # south west arrow (not strictly in the standards) +sign ↔ 126-36-156 # left right arrow +sign ⇐ 126-36-36 # leftwards double arrow +sign ⇒ 36-36-156 # rightwards double arrow +sign ⇑ 34-34-156 # upwards double arrow (not in the standards) +sign ⇓ 16-16-156 # downwards double arrow (not in the standards) +sign ⇖ 126-26-26 # North West Double Arrow (not in the standards) +sign ⇗ 35-35-156 # North East Double Arrow (not in the standards) +sign ⇘ 26-26-156 # South East Double Arrow (not in the standards) +sign ⇙ 126-35-35 # South West Double Arrow (not in the standards) +sign ↦ 456-36-156 # right arrow from bar +sign ↤ 126-36-456 # left arrow from bar # Additional general symbols # These are not covered by the specification document, but reflect the conventions. @@ -201,6 +224,8 @@ math \x2219 3 ∙ Bullet operator math \x22C5 3 ⋅ Dot operator math \x00D7 3 × Multiplication sign math \x00F7 25 ÷ Division sign; Obelus +math ± 235-36 # plus minus sign +math ∓ 36-235 # minus plus sign decpoint , 2 Decimal comma # Vulgar fractions @@ -274,3 +299,55 @@ noback context $d[]$m @0 # Dashes, not a hyphen. Dashes always have spaces around them. noback context !$s["\x2013"]!$s @0-36-0 noback context !$s["\x2014"]!$s @0-36-0 + +# Lowercase Greek alphabet +lowercase α 46-1 # alpha +lowercase β 46-12 # beta +lowercase γ 46-1245 # gamma +lowercase δ 46-145 # delta +lowercase ε 46-15 # epsilon +lowercase ζ 46-1356 # zeta +lowercase η 46-345 # eta +lowercase θ 46-1456 # theta +lowercase ι 46-24 # iota +lowercase κ 46-13 # kappa +lowercase λ 46-123 # lambda +lowercase μ 46-134 # mu +lowercase ν 46-1345 # nu +lowercase ξ 46-1346 # xi +lowercase ο 46-135 # omicron +lowercase π 46-1234 # pi +lowercase ρ 46-1235 # rho +lowercase ς 46-234 # sigma +lowercase τ 46-2345 # tau +lowercase υ 46-13456 # upsilon +lowercase φ 46-124 # fii +lowercase χ 46-125 # chi +lowercase ψ 46-12346 # psi +lowercase ω 46-245 # omega + +# Uppercase Greek letter alphabet +letter \x0391 456-1 # Α Capital Alpha +letter \x0392 456-12 # Β Capital Beta +letter \x0393 456-1245 # Γ Capital Gamma +letter \x0394 456-145 # Δ Capital Delta +letter \x0395 456-15 # Ε Capital Epsilon +letter \x0396 456-1356 # Ζ Capital Zeta +letter \x0397 456-345 # Η Capital Eta +letter \x0398 456-1456 # Θ Capital Theta +letter \x0399 456-24 # Ι Capital Iota +letter \x039A 456-13 # Κ Capital Kappa +letter \x039B 456-123 # Λ Capital Lambda +letter \x039C 456-134 # Μ Capital Mu +letter \x039D 456-1345 # Ν Capital Nu +letter \x039E 456-1346 # Ξ Capital Xi +letter \x039F 456-135 # Ο Capital Omicron +letter \x03A0 456-1234 # Π Capital Pi +letter \x03A1 456-1235 # Ρ Capital Rho +letter \x03A3 456-234 # Σ Capital Sigma +letter \x03A4 456-2345 # Τ Capital Tau +letter \x03A5 456-13456 # Υ Capital Upsilon +letter \x03A6 456-124 # Φ Capital Phi +letter \x03A7 456-125 # Χ Capital Chi +letter \x03A8 456-13456 # Ψ Capital Psi +letter \x03A9 456-245 # Ω Capital Omega diff --git a/braille/translate/src/phone/tables/fil-g2.ctb b/braille/translate/src/phone/tables/fil-g2.ctb new file mode 100644 index 000000000..fbe6b318f --- /dev/null +++ b/braille/translate/src/phone/tables/fil-g2.ctb @@ -0,0 +1,491 @@ +# liblouis: Filipino Braille Code (Grade 2) +# +# ----------- +#-name: Filipino braille, grado 2 +#-index-name: Filipino, contracted +#-display-name: Filipino contracted braille +# +#+language: fil +#+language: tlg +#+type: literary +#+contraction: full +#+grade: 2 +#+direction: forward +#+system: fbc +#+version: 2014 +# +# Referenced documentation of Filipino Braille code at: http://liblouis.io/braille-specs/filipino/ +# +# Copyright (C) 2023 Allan Mesoga allan.mesoga@deped.gov.ph +# +# This file is part of liblouis. +# +# liblouis is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 2.1 of the +# License, or (at your option) any later version. +# +# liblouis is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with liblouis. If not, see +# . +# +# Maintained by Allan R. Mesoga allan.mesoga@deped.gov.ph +# Reviewed by Joyce C. Lopez lopezjoyce883@gmail.com + +include en-ueb-g1.ctb + +# Delimiters + +multind 56-6 nocontractsign capsletter + +seqdelimiter -— +seqdelimiter ‐ \x2010 +seqdelimiter ‑ \x2011 +seqdelimiter – \x2013 +seqdelimiter — \x2014 +seqdelimiter ― \x2015 + +seqbeforechars ([{"“'‘ +seqafterchars )]}"”'’.,;:.!?… +seqafterpattern 'd +seqafterpattern 'll +seqafterpattern 're +seqafterpattern 's +seqafterpattern 't +seqafterpattern 've +seqafterpattern ’d +seqafterpattern ’ll +seqafterpattern ’re +seqafterpattern ’s +seqafterpattern ’t +seqafterpattern ’ve +#TODO: all caps words (see lou_translateString.c:inSequence() +seqafterpattern 'D +seqafterpattern 'LL +seqafterpattern 'RE +seqafterpattern 'S +seqafterpattern 'T +seqafterpattern 'VE +seqafterexpression '([DSTdst]|ll|[rv]e|LL|[RV]E) +seqafterpattern ’D +seqafterpattern ’LL +seqafterpattern ’RE +seqafterpattern ’S +seqafterpattern ’T +seqafterpattern ’VE +seqafterexpression ’([DSTdst]|ll|[rv]e|LL|[RV]E) + +# 7 Punctuation +# - 7.1.3 could be read as contraction +match %[^_]|%[^_~]%<*[([{] ; %[^_]|[)}\\]]%>*%[^_~] 56-23 +# or a word-initial groupsign +match %[^_~]%<* . %a 56-256 +match %[^_~]%<* : %a 56-25 +match %[^_~]%<* ; %a 56-23 + +# 10.1 Alphabetic Wordsigns +# - 10.1.1 standing alone +# - 10.1.2 followed by 'd, 'll, 're, 's, 't, 've and standing alone +# - 2.6.4 + +# must be before contractions? +match %[^_~]%<* sa (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1356 +match %[^_~]%<* bakit (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 12 +match %[^_~]%<* kanya (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 14 +match %[^_~]%<* dahil (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 145 +match %[^_~]%<* paano (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 124 +match %[^_~]%<* gaano (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1245 +match %[^_~]%<* hindi (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 125 +match %[^_~]%<* ito (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1346 +match %[^_~]%<* ikaw (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 24 +match %[^_~]%<* hakbang (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 245 +match %[^_~]%<* kaya (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13 +match %[^_~]%<* lamang (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 123 +match %[^_~]%<* mga (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 134 +match %[^_~]%<* ngayon (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1345 +match %[^_~]%<* para (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1234 +match %[^_~]%<* kailan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 12345 +match %[^_~]%<* rin (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1235 +match %[^_~]%<* sang-ayon (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 234 +match %[^_~]%<* tayo (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2345 +match %[^_~]%<* upang (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 136 +match %[^_~]%<* bagaman (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1236 +match %[^_~]%<* wala (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2456 +match %[^_~]%<* yaman (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13456 + +contraction b +contraction c +contraction d +contraction f +contraction g +contraction h +contraction i +contraction j +contraction k +contraction l +contraction m +contraction n +contraction p +contraction q +contraction r +contraction s +contraction t +contraction u +contraction v +contraction w +contraction x +contraction y +contraction z + +contraction B +contraction C +contraction D +contraction F +contraction G +contraction H +contraction I +contraction J +contraction K +contraction L +contraction M +contraction N +contraction P +contraction Q +contraction R +contraction S +contraction T +contraction U +contraction V +contraction W +contraction X +contraction Y +contraction Z + +# Strong Wordsign + +match %[^_~]%<* ako (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 246 +match %[^_~]%<* anak (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 156 +match %[^_~]%<* araw (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 345 +match %[^_~]%<* at (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 3456 +match %[^_~]%<* ay (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 12346 +match %[^_~]%<* hanggang (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 12356 +match %[^_~]%<* ibig (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 34 +match %[^_~]%<* kanila (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 16 +match %[^_~]%<* maging (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 146 +match %[^_~]%<* na (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 23456 +match %[^_~]%<* naging (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1246 +match %[^_~]%<* tunay (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1256 + + +# Strong Groupsign + +always an 156 +always ang 2346 +always ar 345 +always aw 246 +always en 26 +always er 12456 +always han 12356 +always in 35 +always mahal 123456 +always mag 146 +always nag 1246 +always ng 126 +always pag 1456 +always tu 1256 + +# Beginning and Middle + +begmidword ba 23 +begmidword ka 25 +begmidword da 256 +begmidword pa 235 + +# Lower Word + +lowword ba 23 +lowword ka 25 +lowword pa 235 + +# Middle of Word + +midword ha 236 +midword ga 2356 +midword umi 356 + +# Beginning of Word + +begword kina 36 +begword napaka 4-1345 +begword pinaka 4-1234 + +# Miscellaneous +# Word or End of Word + +prfword ban 12-156 +prfword baw 12-246 +prfword gan 1245-156 + +# Miscellaneous +# Part Word + +partword kara 25-1235-1 + +# Miscellaneous +# Always + +always bang 12-2346 +always batang 23-2345-2346 +always bar 12-345 +always dang 145-2346 +always dar 145-345 +always gang 1245-2346 +always inin 35-24-1345 +always kar 13-345 +always karan 25-1235-156 +always manana 134-1-45-1345 +always manganga 134-1-45-126 +always mangungu 134-1-46-126 +always nanganga 1345-1-45-126 +always nangungu 1345-1-46-126 +always par 1234-345 +always wawasto 2456-1-5-2456 + +# Miscellaneous +# End of Word + +endword bat 12-3456 +endword hat 125-3456 +endword gat 1245-3456 +endword pat 1234-3456 + +# Miscellaneous +# Stand Alone + +match %[^_~]%<* bat (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 12-1-2345 +match %[^_~]%<* hat (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 125-1-2345 +match %[^_~]%<* gat (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1245-1-2345 +match %[^_~]%<* gata (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1245-1-2345-1 +match %[^_~]%<* kara (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 25-1235-1 +match %[^_~]%<* kanyang (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 14-126 +match %[^_~]%<* tata (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2345-1-2345-1 +match %[^_~]%<* tatae (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2345-1-2345-1-15 +match %[^_~]%<* kanilang (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 16-126 +match %[^_~]%<* paa (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1234-1-1 +match %[^_~]%<* pat (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1234-1-2345 +match %[^_~]%<* tayong (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2345-126 +match %[^_~]%<* ugaling (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 5-136-126 + +# Dot ffive Words + +always alam 5-12346 +always binata 5-12 +always dalaga 5-145 +always ewan 5-15 +always hapon 5-125 +always isip 5-24 +always halaman 5-245 +always kailangan 5-13 +always larawan 5-123 +always mabuti 5-134 +always noon 5-1345 +always opo 5-135 +always patuloy 5-1234 +always kislap 5-12345 +always roon 5-1235 +always sabi 5-156 +always sinta 5-34 +always subalit 5-234 +always talaga 5-2345 +always ugali 5-136 +always buhay 5-1236 +always wasto 5-2456 +always eksamin 5-1346 +always ayaw 5-13456 +always salita 5-1356 + +# Middle and End of Word + +midendword at 3456 +midendword ing 346 +midendword syon 4-234 +midendword siyon 4-1356 + +# Short Form Words +# LetterB + +match %[^_~]%<* babae (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 12-12 +match %[^_~]%<* bulag (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 12-123 +match %[^_~]%<* braille (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 12-1235-123 + +# Letter D + +match %[^_~]%<* damdamin (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 145-145 +match %[^_~]%<* datapwat (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 145-2456-2345 +match %[^_~]%<* dapat (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 256-1234 + +# Letter H + +match %[^_~]%<* halimbawa (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 125-1-123 +match %[^_~]%<* halos (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 125-123 +match %[^_~]%<* oras (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 125-1235 + +# Letter I + +match %[^_~]%<* isang (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 24-234 +match %[^_~]%<* inaasahan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 35-234 + +# Letter K + +match %[^_~]%<* kalayaan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13-123 +match %[^_~]%<* kasalukuyan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13-234 +match %[^_~]%<* kasaysayan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13-234-13456 +match %[^_~]%<* karanasan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13-1235 +match %[^_~]%<* karapatan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13-1234 +match %[^_~]%<* kundi (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13-145 +match %[^_~]%<* kung (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13-1245 +contraction kg +contraction KG +match %[^_~]%<* kultura (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13-2345-1235 +match %[^_~]%<* kuwento (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 13-2456 + +# Letter L + +match %[^_~]%<* lalaki (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 123-123 +match %[^_~]%<* lipunan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 123-1234-1345 + +# Letter M + +match %[^_~]%<* magiging (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 146-1245 +match %[^_~]%<* marahil (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 134-345 +match %[^_~]%<* marami (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 134-1235 +contraction mr +contraction MR +match %[^_~]%<* mamamayan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 134-134 +contraction mm +contraction MM + +# Letter N + +match %[^_~]%<* nagiging (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1246-1245 + +# Letter P + +match %[^_~]%<* pagiging (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1456-1245 +match %[^_~]%<* palaisipan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1234-123 +match %[^_~]%<* palibhasa (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1234-125 +contraction ph +contraction PH +match %[^_~]%<* pamahalaan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1234-134 +contraction pm +contraction PM +match %[^_~]%<* pangungusap (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1234-234-1234 +contraction psp +contraction PSP +match %[^_~]%<* panitikan (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 1234-1345 + +# Letter S + +match %[^_~]%<* sangguni (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 234-1245 +contraction sg +contraction SG +match %[^_~]%<* suliranin (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 234-123 +match %[^_~]%<* samantala (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 234-134 +contraction sm +contraction SM +match %[^_~]%<* salawikain (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 234-2456 + +# Letter T + +match %[^_~]%<* tayog (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2345-1245 +match %[^_~]%<* talakay (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2345-13 +match %[^_~]%<* talata (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2345-123 +match %[^_~]%<* tagumpay (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2345-1234 +match %[^_~]%<* trabaho (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2345-1235 + +# Letter W + +match %[^_~]%<* watawat (['’]([DSTdst]|ll|[rv]e|LL|[RV]E))?%>*%[^_~] 2456-2456 + +# Repeatition A + +begmidword mama 45-134 +begmidword nana 45-1345 +begmidword nganga 45-126 +begmidword rara 45-1235 +begmidword sasa 45-234 +begmidword tata 45-2345 +begmidword wawa 45-2456 +begmidword yaya 45-13456 + +midword bababa 456-12 +midword dadada 456-145 +midword gagaga 456-1245 +midword hahaha 456-125 +midword kakaka 456-13 +midword lalala 456-123 +begword mamama 456-134 +begmidword nanana 456-1345 +midword nganganga 456-126 +midword papapa 456-1234 +midword rarara 456-1235 +midword sasasa 456-234 +midword tatata 456-2345 +midword wawawa 456-2456 +midword yayaya 456-13456 + +# Repeatition I + +always bibi 16-12 +always didi 16-145 +always gigi 16-1245 +always hihi 16-125 +always kiki 16-13 +always lili 16-123 +always mimi 16-134 +always nini 16-1345 +midendword ngingi 16-126 +partword pipi 16-1234 +always riri 16-1235 +always sisi 16-234 +always titi 16-2345 +always wiwi 16-2456 +always yiyi 16-13456 + +# Repeatition U + +midword bubu 46-12 +midword dudu 46-145 +midword gugu 46-1245 +midword huhu 46-125 +midword kuku 46-13 +midword lulu 46-123 +midword mumu 46-134 +midword nunu 46-1345 +midword ngungu 46-126 +midword pupu 46-1234 +midword ruru 46-1235 +midword susu 46-234 +midword wuwu 46-2456 +midword yuyu 46-13456 + +midword bububu 56-12 +midword dududu 56-145 +midword gugugu 56-1245 +midword huhuhu 56-125 +midword kukuku 56-13 +midword lululu 56-123 +midword mumumu 56-134 +midword nununu 56-1345 +midword ngungungu 56-126 +midword pupupu 56-1234 +midword rururu 56-1235 +midword sususu 56-234 +midword tututu 56-2345 +midword wuwuwu 56-2456 +midword yuyuyu 56-13456 diff --git a/braille/translate/src/phone/tables/fr-bfu-comp8.utb b/braille/translate/src/phone/tables/fr-bfu-comp8.utb index d41808ec9..16a382f0c 100644 --- a/braille/translate/src/phone/tables/fr-bfu-comp8.utb +++ b/braille/translate/src/phone/tables/fr-bfu-comp8.utb @@ -121,7 +121,7 @@ punctuation \x007B 2378 123 ⣆ { LEFT CURLY BRACKET sign \x007C 4568 124 ⢸ | VERTICAL LINE punctuation \x007D 5678 125 ⣰ } RIGHT CURLY BRACKET sign \x007E 38 126 ⢄ ~ TILDE -sign \x007F 1238 127 ⢇ DELETE +sign \x007F 1238 127 ⢇  DELETE sign \x20AC 1578 128 ⣑ € EURO SIGN sign \x201A 67 130 ⡠ ‚ SINGLE LOW-9 QUOTATION MARK lowercase \x0192 1248 131 ⢋ ƒ LATIN SMALL LETTER F WITH HOOK diff --git a/braille/translate/src/phone/tables/grc-international-common.uti b/braille/translate/src/phone/tables/grc-international-common.uti index 087c0e458..848192257 100644 --- a/braille/translate/src/phone/tables/grc-international-common.uti +++ b/braille/translate/src/phone/tables/grc-international-common.uti @@ -63,7 +63,7 @@ letter \x03BE 1346 # ξ Small Xi letter \x03BF 135 # ο Small Omicron letter \x03C0 1234 # π Small Pi letter \x03C1 1235 # ρ Small Rho -letter \x03C2 234 # ς Small Final Sigma +noback letter \x03C2 234 # ς Small Final Sigma letter \x03C3 234 # σ Small Sigma letter \x03C4 2345 # τ Small Tau letter \x03C5 136 # υ Small Upsilon diff --git a/braille/translate/src/phone/tables/grc-international-en-composed.utb b/braille/translate/src/phone/tables/grc-international-en-composed.utb new file mode 100644 index 000000000..22677c848 --- /dev/null +++ b/braille/translate/src/phone/tables/grc-international-en-composed.utb @@ -0,0 +1,54 @@ +# liblouis: Unofficial table used by some for studying classical and biblical Greek. +# +# ----------- +#-index-name: Greek, international, English, composed +#-display-name: Greek internationalized braille with single-cell accented letters as used by English speakers +# +#+language: grc +#+type: literary +#+dots: 6 +#+contraction: no +#+direction: forward +#+region: en +#+system: grc-international-en-ueb +#+variant: composed +# ------------ +# +# Copyright (C) 2024 Sarah LaRose +# Copyright (C) 2024 Leonard de Ruijter +# +# This file is part of liblouis. +# +# liblouis is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 2.1 of the +# License, or (at your option) any later version. +# +# liblouis is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with liblouis. If not, see +# . + +# This table allows polytonic Greek to be displayed along with UEB grade 1. +# The table uses composed Unicode characters and displays vowels with polytonic accents +# as single-cell characters. +# This braille code differs from that used in Greece. It is based +# on a braille code developed by scholars to facilitate their study +# of biblical and classical Greek. Most of the data for this table came +# from Professor Sarah LaRose, who began using the code in 2008 at +# Anderson University and is acquainted with others who studied Greek +# in the 1970s. The table also corresponds with the chapter "Greek +# (International)" on page 185 of +# http://liblouis.io/braille-specs/#world-braille-usage-3rd-edition. +# It uses the single accented letters (composed) system. + +punctuation ; 56 +punctuation · 56 +punctuation ’ 3 + +include grc-international-composed.uti +include en-ueb-g1.ctb diff --git a/braille/translate/src/phone/tables/grc-international-en.utb b/braille/translate/src/phone/tables/grc-international-en.utb index a6dfcbda2..8f23955a2 100644 --- a/braille/translate/src/phone/tables/grc-international-en.utb +++ b/braille/translate/src/phone/tables/grc-international-en.utb @@ -1,8 +1,8 @@ # liblouis: Unofficial table used by some for studying classical and biblical Greek. # # ----------- -#-index-name: Greek, international, English -#-display-name: Greek internationalized braille as used by English speakers +#-index-name: Greek, international, English, decomposed +#-display-name: Greek internationalized braille with 2-cell accented letters as used by English speakers # #+language: grc #+type: literary @@ -11,6 +11,7 @@ #+direction: forward #+region: en #+system: grc-international-en +#+variant: decomposed # ------------ # # Copyright (C) 2004-2008 ViewPlus Technologies, Inc. www.viewplus.com @@ -43,6 +44,7 @@ # Oxford back around 1980. The table also corresponds with the chapter "Greek # (International)" on page 185 of # http://liblouis.io/braille-specs/#world-braille-usage-3rd-edition. +# It uses the 2-cell accented letters (decomposed) system. space \t 7 tab space \x00a0 9 unbreakable space diff --git a/braille/translate/src/phone/tables/hbo.utb b/braille/translate/src/phone/tables/hbo.utb new file mode 100644 index 000000000..3aea2ca24 --- /dev/null +++ b/braille/translate/src/phone/tables/hbo.utb @@ -0,0 +1,213 @@ +# liblouis: Biblical Hebrew +# +#-index-name: Hebrew, Biblical +#-display-name: Biblical Hebrew braille +# +#+language: hbo +#+type: literary +#+contraction: no +#+system: ihbc-McAllister +#+dots: 6 + +#-license: lgpl-2.1 + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this file; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# liblouis comes with ABSOLUTELY NO WARRANTY. + +# The first Hebrew Braille table hosted on Lib Louis was developed by +# the Library for the Blind and the Ministry of Education in +# Israel. That table is based on the IHBC which was developed in the +# mid-1930’s. Please see World Braille usage 3rd edition, p. 74. +# +# However, Classical or Biblical Hebrew, which is used in the Hebrew +# Bible and other liturgical literature, contains cantillation marks +# that are not supported by the Hebrew table mentioned above. This +# table seeks to provide access to these accents. This table is also +# based upon the tables mentioned above. This table only departs from +# it where the accents are concerned. With this table, the user will +# have access to the accents and Masorah in BHS and BHS Quinta. For +# more information about the IHBC and how it was developed: +# +# also see: +# + +# Special thank you to Ray McAllister and Matthew Yeater for +# developing the braille for the cantillation. Also to Abby Howell for +# the suggestions to include support for Yiddish. Extra gratitude to +# Sarah LaRose, Eric Harvey, and Leonard de Ruijder for the helpful +# suggestions. + +#-maintainer: Paul Geoghegan +#-maintainer: Matityhau Yeshurun + +# Copyright (C) 2024 Matt Yeater and Paul Geoghegan + +# always op code characters +always ִי 35 # hiriq-yod +always ֵי 3456 # tsere-yod +always ּו 136 # shuruq +always ּוְ 136-3 # Shuriq sheva +always בְּ 12-3 # bet with dagesh sheva +always בּ 12 # bet with dagesh +always בֿ 1236 # bet with rafe +always דּ 5-145 # dalet with dagesh +always דְּ 5-145-3 # dalet with dagesh sheva +always הּ 125 # hey with dagesh +always וֹ 246 # holam-vav +always וּ 136 # shuruq +always יּ 5-245 # Yod with dagesh +always יְּ 5-245-3 # Yod with dagesh sheva +always כּ 13 # kaf with dagesh +always כְּ 13-3 # kaf with dagesh sheva +always לּ 5-123 # lamed with dagesh +always לְּ 5-123-3 # lamed with dagesh sheva +always מּ 5-134 # mem with dagesh +always מְּ 5-134-3 # mem with dagesh sheva +always נּ 5-1345 # nun with dagesh +always נְּ 5-1345-3 # nun with dagesh sheva +always פּ 1234 # pe with dagesh +always פְּ 1234-3 # pe with dagesh sheva +always פֿ 124 # Pe with rafe +always קּ 5-12345 # qof with dagesh +always קְּ 5-12345-3 # qof with dagesh sheva +always שְׁ 146-3 # Shin with dot and sheva +always שְׂ 156-3 # Sin sheva +always שׁ 146 # shin with dot +always שׂ 156 # sin +always ת 1456 # tav +always תּ 1256 # tav with dagesh +always תְּ 1256-3 # tav with dagesh sheva +always בּ 12 # Bet with dagesh +always בְּ 12-3 # Bet with dagesh sheva +always כּ 13 # KAF with dagesh +always כְּ 13-3 # KAF with dagesh sheva +always תּ 1256 # tav with daggesh +always תְּ 1256-3 # tav with daggesh sheva + +# letter op code characters +letter ֒ 46-234 # segol - isolated +letter ֓ 46-146 # shalshelet +letter ֔ 2 # zaqef qatan +letter ֕ 46-1245 # zaqef gadol +letter ֖ 46-2345 # tipeha +letter ֗ 46-1235 # revia +letter ֘ 46-145 # zarqa +letter ֙ 46-34 # pashta +letter ֚ 46-245 # yetiv +letter ֛ 46-1236 # tevir +letter ֜ 46-1 # geresh +letter ֝ 46-16 # geresh muqdam +letter ֞ 46-12 # gershayim +letter ֟ 46-1345 # qarney para +letter ֠ 46-2356 # telisha gedola +letter ֡ 46-236 # pazer +letter ֢ 46-23 # atnah hafukh +letter ֣ 46-136 # munah +letter ֤ 46-125 # mahapakh +letter ֥ 46-134 # merkha +letter ֦ 46-13 # merkha kefula +letter ֧ 46-145 # darga +letter ֨ 46-1234 # qadma +letter ֩ 46-12345 # telisha qetana +letter ֪ 46-13456 # yerah ben yomo +letter ֫ 46-135 # ole +letter ֬ 46-24 # iluy +letter ֭ 46-24 # dehi +letter ֮ 46-1356 # zinor +letter ֯ 456-134 # masora circle +letter ְ 3 # sheva +letter ֱ 26 # hataf segol +letter ֲ 25 # hataf patah +letter ֳ 345 # hataf qamats +letter ִ 24 # hiriq +letter ֵ 34 # tsere +letter ֶ 15 # segol +letter ַ 14 # patah +letter ָ 126 # qamats +letter ֹ 456-246 # holam Malay +letter ֺ 135 # holam haser +letter ֻ 346 # qubuts +letter ּ 5 # dagesh +letter ֽ 4 # meteg +letter ֿ 45 # rafe +letter ׁ 456-4 # shin dot +letter ׂ 456-45 # sin dot +letter ׄ 456-5 # upper dot +letter ׅ 456-56 # lower dot +letter ׆ 456-1345 # nun hafukha +letter ׇ 126 # qamats qatan +letter א 1 # alef +letter ב 1236 # bet +letter ג 1245 # gimel +letter ד 145 # dalet +letter ה 125 # hey +letter ו 2456 # vav +letter ז 1356 # zayin +letter ח 1346 # het +letter ט 2345 # tet +letter י 245 # yod +letter ך 16 # final kaf +letter כ 16 # kaf +letter ל 123 # lamed +letter ם 134 # final mem +letter מ 134 # mem +letter ן 1345 # final nun +letter נ 1345 # nun +letter ס 234 # samekh +letter ע 1246 # ayin +letter ף 124 # final pe +letter פ 124 # Pe +letter ץ 2346 # final tsadi +letter צ 2346 # tsadi +letter ק 12345 # qof +letter ר 1235 # resh +letter ש 146 # Shin +letter װ 2456-2456 # double vav +letter ױ 2456-245 # vav yod +letter ײ 245-245 # double yod +letter ׳ 3 # geresh +letter ײַ 245-245-14 # Double Yod with patah + +# punctuation op code characters +punctuation ֑ 23 # atnokta +punctuation ־ 36 # maqaf +punctuation ׀ 456 # paseq +punctuation ׃ 256 # sof pasuq +punctuation ״ 356 # gershayim + +# sign op code characters +sign ✔ 12356 # Check Mark Distinguishes Same kind of Varient +sign ✕ 1235 # Mark beginning of Replacement +sign ✖ 2456 # Mark Ends of Replacement +sign ✗ 24 # Mark for Insertion +sign ✘ 35 # Marks Varients with in Apparatus +sign ✙ 23456 # Marks end of Replaced text +sign ❁ 123-1346-1346 # Reference to LXX +sign ❍ 135 # Marks Omitted Word +sign ❏ 135-3 # Marks End of Omited word +sign ❐ 1235 # Marks Replaced Word +sign ❑ 12345 # Mark that Distinguishes between Varient +sign ❘ 1256 # Mark that separates variations +sign ❙ 2345 # Mark that indicates Alternative readings +sign ❚ 14 # Mark indicates varrnt +sign ❥ 345 # Marks distinguishes between varient +sign ❦ 126 # Marks beginning of transposition +sign ❧ 156 # Check Marks end of transposition + +# Include additional braille tables +include spaces.uti +include litdigits6Dots.uti +include latinLetterDef6Dots.uti +include en-ueb-chardefs.uti diff --git a/braille/translate/src/phone/tables/he-IL-comp8.utb b/braille/translate/src/phone/tables/he-IL-comp8.utb index 1cef0ad10..5610bcc57 100644 --- a/braille/translate/src/phone/tables/he-IL-comp8.utb +++ b/braille/translate/src/phone/tables/he-IL-comp8.utb @@ -1,6 +1,6 @@ # liblouis: computer braille table for Hebrew (Israel). # -#-index-name: Hebrew, computer +#-index-name: Hebrew, modern, computer #-display-name: Hebrew computer braille #+language: he #+type: computer diff --git a/braille/translate/src/phone/tables/he-IL.utb b/braille/translate/src/phone/tables/he-IL.utb index 4b116fb2e..54da853d6 100644 --- a/braille/translate/src/phone/tables/he-IL.utb +++ b/braille/translate/src/phone/tables/he-IL.utb @@ -19,7 +19,7 @@ # License along with liblouis. If not, see # . -#-index-name: Hebrew, Israel +#-index-name: Hebrew, modern #-display-name: Israeli braille #+language: he @@ -110,8 +110,8 @@ word 'twas = # Additional fixes for hebrew letters with dagesh # if the dagesh dot is typed as a separate element. -word כּ 13 # Hebrew letter PE with dagesh as a separate dot. -word פּ 1234 # Hebrew letter KAF with dagesh as a separate dot. +word כּ 13 # Hebrew letter KAF with dagesh as a separate dot. +word פּ 1234 # Hebrew letter PE with dagesh as a separate dot. word בּ 12 # Hebrew letter BET with dagesh as a separate dot. word שׂ 156 # Hebrew letter SHIN with SIN as a separate dot. diff --git a/braille/translate/src/phone/tables/hu-backtranslate-word-corrections.cti b/braille/translate/src/phone/tables/hu-backtranslate-word-corrections.cti index bec2f5480..fbaca47c8 100644 --- a/braille/translate/src/phone/tables/hu-backtranslate-word-corrections.cti +++ b/braille/translate/src/phone/tables/hu-backtranslate-word-corrections.cti @@ -178,6 +178,56 @@ nofor correct "úccsoma" "úcscsoma" For example csúcscsomagja word nofor correct "ÚCCSOMA" "ÚCSCSOMA" For example CSÚCSCSOMAGJA word nofor correct "ekerccser" "ekercscser" For example tekercscsere word nofor correct "EKERCCSER" "EKERCSCSER" For example TEKERCSCSERE word +nofor correct "ipaccso" "ipacscso" For example pipacscsokor word +nofor correct "IPACCSO" "IPACSCSO" For example PIPACSCSOKOR word +nofor correct "ekerccsom" "ekercscsom" For example tekercscsomag word +nofor correct "EKERCCSOM" "EKERCSCSOM" For example TEKERCSCSOMAG word +nofor correct "ümölccsok" "ümölcscsok" For example gyümölcscsokor word +nofor correct "ÜMÖLCCSOK" "ÜMÖLCSCSOK" For example GYÜMÖLCSCSOKOR word +nofor correct "akopánccsalá" "akopáncscsalá" For example fakopáncscsaládig word +nofor correct "AKOPÁNCCSALÁ" "AKOPÁNCSCSALÁ" For example FAKOPÁNCSCSALÁDIG word +nofor correct "olmáccsapa" "olmácscsapa" For example tolmácscsapat word +nofor correct "OLMÁCCSAPA" "OLMÁCSCSAPA" For example TOLMÁCSCSAPAT WORD +nofor correct "akanccsatt" "akancscsatt" For example bakancscsattogtatók word +nofor correct "AKANCCSATT" "AKANCSCSATT" For example BAKANCSCSATTOGTATÓK word +nofor correct "ullanccsú" "ullancscsú" For example kullancscsúcs word +nofor correct "ULLANCCSÚ" "ULLANCSCSÚ" For example KULLANCSCSÚCS word +nofor correct "ümölccsem" "ümölcscsem" For example gyümölcscsemete word +nofor correct "ÜMÖLCCSEM" "ÜMÖLCSCSEM" For example GYÜMÖLCSCSEMETE word +nofor correct "úccsi" "úcscsi" For example csúcscsip word +nofor correct "ÚCCSI" "ÚCSCSI" For example CSÚCSCSIP word +nofor correct "ilinccser" "ilincscser" For example kilincscserével word +nofor correct "ILINCCSER" "ILINCSCSER" For example KILINCSCSERÉVEL word +nofor correct "úccsuk" "úcscsuk" For example csúcscsukáról word +nofor correct "ÚCCSUK" "ÚCSCSUK" For example CSÚCSCSUKÁRÓL word +nofor correct "ronccsopo" "roncscsopo" For example gumiabroncscsoport word +nofor correct "Roncscsopo" "Roncscsopo" For example Roncscsoport word +nofor correct "RONCCSOPO" "RONCSCSOPO" For example GUMIABRONCSCSOPORT word +nofor correct "irgáccso" "irgácscso" For example virgácscsokorral word +nofor correct "IRGÁCCSO" "IRGÁCSCSO" For example VIRGÁCSCSOKORRAL word +nofor correct "apuccsosz" "apucscsosz" For example papucscsoszogás word +nofor correct "APUCCSOSZ" "APUCSCSOSZ" For example PAPUCSCSOSZOGÁS word +nofor correct "ulccsin" "ulcscsin" For example kulcscsináló word +nofor correct "ULCCSIN" "ULCSCSIN" For example KULCSCSINÁLÓ word +nofor correct "ganccsill" "gancscsill" For example agancscsillár word +nofor correct "GANCCSILL" "GANCSCSILL" for example AGANCSCSILLÁR word +nofor correct "aranccsop" "arancscsop" For example parancscsoportosítás word +nofor correct "ARANCCSOP" "ARANCSCSOP" For example PARANCSCSOPORTOSÍTÁS word +nofor correct "ulccsav" "ulcscsav" For example kulcscsavar word +nofor correct "ULCCSAV" "ULCSCSAV" For example KULCSCSAVAR word +nofor correct "ullanccsalo" "ullancscsalo" For example kullancscsalogató word +nofor correct "ULLANCCSALO" "ULLANCSCSALO" For example KULLANCSCSALOGATÓ word +nofor correct "úccsaj" "úcscsaj" For example csúcscsajok word +nofor correct "ÚCCSAJ" "ÚCSCSAJ" +nofor correct "gyásszoc" "gyászszoc" For example gyászszocializációnk word +nofor correct "Gyásszoc" "Gyászszoc" For example Gyászszocializációnk word +nofor correct "GYÁSSZOC" "GYÁSZSZOC" For example GYÁSZSZOCIALIZÁCIÓK word +nofor correct "ümölccsú" "ümölcscsú" For example gyümölcscsúcsok word +nofor correct "ÜMÖLCCSÚ" "ÜMÖLCSCSÚ" For example GYÜMÖLCSCSÚCSOK word +nofor correct "endviccsér" "endvicscsér" For example szendvicscsér word +nofor correct "ENDVICCSÉR" "ENDVICSCSÉR" For example SZENDVICSCSÉR word +nofor correct "ümölccso" "ümölcscso" For example gyümölcscsoda word +nofor correct "ÜMÖLCCSO" "ÜMÖLCSCSO" For example GYÜMÖLCSCSODA word #ggy, gygy backtranslation rule corrections nofor correct "szalaggyak" * @@ -353,6 +403,64 @@ nofor correct "Aggyűjtemé" "Agygyűjtemé" For example Agygyűjtemény word nofor correct "AGGYŰJTEMÉ" "AGYGYŰJTEMÉ" For example AGYGYŰJTEMÉNY word nofor correct "ezzeggyere" * For example bezzeggyerek word nofor correct "EZZEGGYERE" * For example BEZZEGGYEREK word +nofor correct "ölggyűjt" "ölgygyűjt" for example tölgygyűjtemény word +nofor correct "ÖLGGYŰJT" "ÖLGYGYŰJT" For example TÖLGYGYŰJTEMÉNY word +nofor correct "üggyó" "ügygyó" For example ügygyógyászati word +nofor correct "Üggyó" "Ügygyó" For example ügygyógyászati word +nofor correct "ÜGGYÓ" "ÜGYGYÓ" For example ÜGYGYÓGYÁSZATI word +nofor correct "gészséggyere" * For example egészséggyerekkori word +nofor correct "GÉSZSÉGGYERE" * For example EGÉSZSÉGGYEREKKORI word +nofor correct "endéggyőz" * For example vendéggyőzelem word +nofor correct "ENDÉGGYŐZ" * For example VENDÉGGYŐZELEM word +nofor correct "ággyárakba" "ágygyárakba" For example ágygyárakba word +nofor correct "Ággyárakba" "Ágygyárakba" For example Ágygyárakba word +nofor correct "ÁGGYÁRAKBA" "ÁGYGYÁRAKBA" For example ÁGYGYÁRAKBA word +nofor correct "léggyöke" * For example léggyökerű word +nofor correct "Léggyöke" * For example Léggyökerű word +nofor correct "LÉGGYÖKE" * For example LÉGGYÖKERŰ word +nofor correct "önggyűj" "öngygyűj" For example gyöngygyűjtésre word +nofor correct "ÖNGGYŰJ" "ÖNGYGYŰJ" For example GYÖNGYGYŰJTÉSRE word +nofor correct "veggyerme" * For example üveggyermek word +nofor correct "VEGGYERME" * For example ÜVEGGYERMEK word +nofor correct "eggyomrú" "egygyomrú" For example egygyomrú word +nofor correct "Eggyomrú" "Egygyomrú" For example Egygyomrú word +nofor correct "EGGYOMRÚ" "EGYGYOMRÚ" For example EGYGYOMRÚ word +nofor correct "irággyá" * For example művirággyártó word +nofor correct "IRÁGGYÁ" * For example MŰVIRÁGGYÁRTÓ word +nofor correct "anyaggyan" * For example anyaggyanú word +nofor correct "Anyaggyan" * For example Anyaggyanú word +nofor correct "ANYAGGYAN" * For example ANYAGGYANÚ word +nofor correct "néggyertyá" "négygyertyá" For example négygyertyás word +nofor correct "Néggyertyá" "Négygyertyá" For example Négygyertyás word +nofor correct "NÉGGYERTYÁ" "NÉGYGYERTYÁ" For example NÉGYGYERTYÁS word +nofor correct "léggyűjt" "légygyűjt" For example légygyűjtemény word +nofor correct "Léggyűjt" "Légygyűjt" For example Légygyűjtemény word +nofor correct "LÉGGYŰJT" "LÉGYGYŰJT" For example LÉGYGYŰJTEMÉNY word +nofor correct "nyaggyűj" * For example anyaggyűjtögetést word +nofor correct "NYAGGYŰJ" * For example ANYAGGYŰJTÉS word +nofor correct "veggyer" * For example üveggyerek word +nofor correct "VEGGYER" * For example ÜVEGGYEREK word +nofor correct "eggyőztese" "egygyőztese" For example egygyőzteses word +nofor correct "Eggyőztese" "Egygyőztese" For example Egygyőzteses word +nofor correct "EGGYŐZTESE" "EGYGYŐZTESE" For example EGYGYŐZTESES word +nofor correct "heggyomro" "hegygyomro" For example hegygyomrokban word +nofor correct "Heggyomro" "Hegygyomro" For example Hegygyomrokban word +nofor correct "HEGGYOMRO" "HEGYGYOMRO" For example HEGYGYOMROKBAN word +nofor correct "gyaggyűj" * For example agyaggyűjtemény word +nofor correct "GYAGGYŰJ" * For example AGYAGGYŰJTEMÉNY word +nofor correct "önggyár" "öngygyár" For example gyöngygyártó word +nofor correct "ÖNGGYÁR" "ÖNGYGYÁR" For example GYÖNGYGYÁRTÓ word +nofor correct "faggyűr" "fagygyűr" For example fagygyűrű word +nofor correct "Faggyűr" "Fagygyűr" For example Fagygyűrű word +nofor correct "FAGGYŰR" "FAGYGYŰR" For example FAGYGYŰRŰ word +nofor correct "heggyo" "hegygyo" For example hegygyomorban word +nofor correct "Heggyo" "Hegygyo" For example Hegygyomorban word +nofor correct "HEGGYO" "HEGYGYO" For example HEGYGYOMORBAN word +nofor correct "gyönggya" "gyöngygya" For example gyöngygyanta word +nofor correct "Gyönggya" "Gyöngygya" For example Gyöngygyanta word +nofor correct "GYÖNGGYA" "GYÖNGYGYA" For example GYÖNGYGYANTA word +nofor correct "onggyerm" "ongygyerm" For example rongygyermek word +nofor correct "ONGGYERM" "ONGYGYERM" For example RONGYGYERMEK word #nyny, nyny letters related backtranslate corrections nofor correct "rannyak" "ranynyak" For example aranynyakláncának word @@ -529,8 +637,92 @@ nofor correct "aggyőr" "agygyőr" For example nagygyőr word nofor correct "AGGYŐR" "AGYGYŐR" For example NAGYGYŐR word nofor correct "oronnyitó" "oronynyitó" For example toronynyitó word nofor correct "ORONNYITÓ" "ORONYNYITÓ" For example TORONYNYITÓ word -nofor correct "oronnyitá" "oronynyitá" For example toronynyitás word -nofor correct "ORONNYITÁ" "ORONYNYITÁ" For example TORONYNYITÁS word +nofor correct "oronnyitá" "oronynyitá" For example toronynyitás word +nofor correct "ORONNYITÁ" "ORONYNYITÁ" For example TORONYNYITÁS word +nofor correct "özlönnyil" "özlönynyil" For example közlönynyilatkozat word +nofor correct "ÖZLÖNNYIL" "ÖZLÖNYNYIL" For example KÖZLÖNYNYILATKOZAT word +nofor correct "edőnnyo" "edőnynyo" For example redőnynyomógomb word +nofor correct "EDŐNNYO" "EDŐNYNYO" For example REDŐNYNYOMÓGOMB word +nofor correct "ormánnyel" "ormánynyel" For example kormánynyelvben word +nofor correct "ORMÁNNYEL" "ORMÁNYNYEL" For example KORMÁNYNYELVBEN word +nofor correct "gazolvánnyo" "gazolványnyo" For example igazolványnyomtatója word +nofor correct "GAZOLVÁNNYO" "GAZOLVÁNYNYO" For example IGAZOLVÁNYNYOMTATÓJA word +nofor correct "akománnyo" "akománynyo" For example rakománynyomok word +nofor correct "AKOMÁNNYO" "AKOMÁNYNYO" For example RAKOMÁNYNYOMOK word +nofor correct "redménnyer" "redménynyer" For example eredménynyereséggel word +nofor correct "REDMÉNNYER" "REDMÉNYNYER" For example EREDMÉNYNYERESÉGGEL word +nofor correct "ársonnye" "ársonynye" For example bársonynyerges word +nofor correct "ÁRSONNYE" "ÁRSONYNYE" For example BÁRSONYNYERGES word +nofor correct "ágánnyomtá" "ágánynyomtá" For example vágánynyomtáv word +nofor correct "ÁGÁNNYOMTÁ" "ÁGÁNYNYOMTÁ" For example VÁGÁNYNYOMTÁV word +nofor correct "izonyítvánnyomta" "izonyítványnyomta" For example bizonyítványnyomtatvány word +nofor correct "IZONYÍTVÁNNYOMTA" "IZONYÍTVÁNYNYOMTA" For example BIZONYÍTVÁNYNYOMTATVÁNY word +nofor correct "illannyo" "illanynyo" For example villanynyomaték word +nofor correct "ILLANNYO" "ILLANYNYO" For example VILLANYNYOMATÉK word +nofor correct "illannyú" "illanynyú" For example villanynyúl word +nofor correct "ILLANNYÚ" "ILLANYNYÚ" For example VILLANYNYÚL word +nofor correct "árnnyír" "árnynyír" For example szárnynyíráson word +nofor correct "ÁRNNYÍR" "ÁRNYNYÍR" For example SZÁRNYNYÍRÁSON word +nofor correct "ersennyelv" "ersenynyelv" For example versenynyelvben word +nofor correct "ERSENNYELV" "ERSENYNYELV" For example VERSENYNYELVBEN word +nofor correct "árkánnyel" "árkánynyel" For example sárkánynyelven word +nofor correct "ÁRKÁNNYEL" "ÁRKÁNYNYEL" For example SÁRKÁNYNYELVEN word +nofor correct "sszonnyár" "sszonynyár" For example asszonynyár word +nofor correct "SSZONNYÁR" "SSZONYNYÁR" For example ASSZONYNYÁR word +nofor correct "áránnyár" "áránynyár" For example báránynyárs word +nofor correct "ÁRÁNNYÁR" "ÁRÁNYNYÁR" For example BÁRÁNYNYÁRS word +nofor correct "énnyomvo" "énynyomvo" For example fénynyomvonal word +nofor correct "ÉNNYOMVO" "ÉNYNYOMVO" For example FÉNYNYOMVONAL word +nofor correct "amlénnya" * For example pamlénnyal word +nofor correct "AMLÉNNYA" * For example PAMLÉNNYAL word +nofor correct "lménnyelv" "lménynyelv" For example élménnynyelv word +nofor correct "LMÉNNYELV" "LMÉNYNYELV" For example ÉLMÉNYNYELV word +nofor correct "igannyo" "iganynyo" For example higanynyomokat word +nofor correct "IGANNYO" "IGANYNYO" For example HIGANYNYOMOKAT word +nofor correct "idénnyaral" "idénynyaral" For example idénynyaralók word +nofor correct "Idénnyaral" "Idénynyaral" For example Idénynyaralók word +nofor correct "IDÉNNYARAL" "IDÉNYNYARAL" For example IDÉNYNYARALÓK word +nofor correct "lőnnyú" "lőnynyú" For example előnynyújtás word +nofor correct "LŐNNYÚ" "LŐNYNYÚ" For example ELŐNYNYÚJTÁS word +nofor correct "ínnyugt" "ínynyugt" For example fogínynyugtató word +nofor correct "Ínnyugt" "Ínynyugt" For example Ínynyugtató word +nofor correct "ÍNNYUGT" "ÍNYNYUGT" For example FOGÍNYNYUGTATÓ word +nofor correct "svánnyo" "sványnyo" For example ásványnyomokban word +nofor correct "SVÁNNYO" "SVÁNYNYO" For example ÁSVÁNYNYOMOKBAN word +nofor correct "génnyil" "génynyil" For example igénynyilatkozatának word +nofor correct "GÉNNYIL" "GÉNYNYIL" For example IGÉNYNYILATKOZATÁNAK word +nofor correct "otránnyo" "otránynyo" For example botránynyomozás word +nofor correct "OTRÁNNYO" "OTRÁNYNYO" For example BOTRÁNYNYOMOZÁS word +nofor correct "lacsonnyo" "lacsonynyo" For example alacsonynyomású word +nofor correct "LACSONNYO" "LACSONYNYO" For example alacsonynyomású word +nofor correct "üteménnyo" "üteménynyo" For example süteménynyomda word +nofor correct "ÜTEMÉNNYO" "ÜTEMÉNYNYO" For example SÜTEMÉNYNYOMDA word +nofor correct "órvánnye" "órványnye" For example szórványnyelvemlék word +nofor correct "ÓRVÁNNYE" "ÓRVÁNYNYE" For example SZÓRVÁNYNYELVEMLÉK word +nofor correct "étánnyo" "étánynyo" For example sétánynyomozás word +nofor correct "ÉTÁNNYOM" "ÉTÁNYNYOM" For example SÉTÁNYNYOMOZÁS word +nofor correct "estménnyo" "estménynyo" For example festménynyomozás word +nofor correct "ESTMÉNNYO" "ESTMÉNYNYO" For example FESTMÉNYNYOMOZÁSBA word +nofor correct "lménnyer" "lménynyer" For example élménynyeremények word +nofor correct "LMÉNNYER" "LMÉNYNYER" For example ÉLMÉNYNYEREMÉNYEK word +nofor correct "svánnyak" "sványnyak" For example ásványnyaklánc word +nofor correct "SVÁNNYAK" "SVÁNYNYAK" For example ÁSVÁNYNYAKLÁNC word +nofor correct "árnnyo" "árnynyo" For example szárnynyomás word +nofor correct "ÁRNNYO" "ÁRNYNYO" For example SZÁRNYNYOMÁS word +nofor correct "igánnyel" "igánynyel" For example cigánynyelv-tanulás word +nofor correct "IGÁNNYEL" "IGÁNYNYEL" F or example CIGÁNYNYELV-TANULÁS word +nofor correct "akonnyál" "akonynyál" For example takonynyál word +nofor correct "AKONNYÁL" "AKONYNYÁL" For example TAKONYNYÁLAS word +nofor correct "övénnyar" "övénynyar" For example növénynyaraltatás word +nofor correct "ÖVÉNNYAR" "ÖVÉNYNYAR" For example NÖVÉNYNYARALTATÁS word +nofor correct "dománnyar" "dománynyar" For example adománynyaralás word +nofor correct "DOMÁNNYAR" "DOMÁNYNYAR" For example ADOMÁNYNYARALÁS word +nofor correct "rannyíl" "ranynyíl" For example aranynyílvessző word +nofor correct "RANNYÍ" "RANYNYÍ" For example ARANYNYÍLVESSZŐ word +nofor correct "atkánnyel" "atkánynyel" For example patkánynyelven word +nofor correct "ATKÁNNYEL" "ATKÁNYNYEL" For example PATKÁNYNYELVEN word +nofor correct "eljesítménnyer" "eljesítménynyer" For example teljesítménynyereséget word +nofor correct "ELJESÍTMÉNNYER" "ELJESÍTMÉNYNYER" For example TELJESÍTMÉNYNYERESÉGET word #lyly letters related backtranslate corrections nofor correct "amelylyel" * @@ -704,8 +896,8 @@ nofor correct "itnesszala" "itneszszala" For example fitneszszalag word backtran nofor correct "ITNESSZALA" "ITNESZSZALA" For example FITNESZSZALAG word nofor correct "itnessztá" "itneszsztá" For example fitneszsztár word nofor correct "ITNESSZTÁ" "ITNESZSZTÁ" For example FITNESZSZTÁR word -nofor correct "itnesszolg" "itneszszolg" For example fitneszszolgáltatás word backtranslation correction -nofor correct "ITNESSZOLG" "ITNESZSZOLG" For example FITNESZSZOLGÁLTATÁS word +nofor correct "itnesszo" "itneszszo" For example fitneszszobát, fitneszszolgáltatás word backtranslation correction +nofor correct "ITNESSZO" "ITNESZSZO" For example FITNESZSZOBÁT, FITNESZSZOLGÁLTATÁS word nofor correct "itnesszö" "itneszszö" For example fitneszszövetség word nofor correct "ITNESSZÖ" "ITNESZSZÖ" For example FITNESZSZÖVETSÉG word nofor correct "itnesszüne" "itneszszüne" For example fitneszszünet word backtranslation correction @@ -774,8 +966,8 @@ nofor correct "ússzemé" "úszszemé" For example húszszemélyes word backtran nofor correct "ÚSSZEMÉ" "ÚSZSZEMÉ" For example HÚSZSZEMÉLYES word nofor correct "jásszak" "jászszak" For example íjászszakkör word backtranslation correction nofor correct "JÁSSZAK" "JÁSZSZAK" For example ÍJÁSZSZAKKÖR word -nofor correct "jásszá" "jászszá" For example íjászszázad word backtranslation correction -nofor correct "JÁSSZÁ" "JÁSZSZÁ" For example ÍJÁSZSZÁZAD word +nofor correct "jásszáz" "jászszáz" For example íjászszázad word backtranslation correction +nofor correct "JÁSSZÁZ" "JÁSZSZÁZ" For example ÍJÁSZSZÁZAD word nofor correct "jásszöv" "jászszöv" for example íjászszövetség word backtranslation correction nofor correct "JÁSSZÖV" "JÁSZSZÖV" For example ÍJÁSZSZÖVETSÉG word nofor correct "risszken" "riszszken" For example íriszszkenner word backtranslation correction @@ -1277,6 +1469,10 @@ nofor correct "allosszimbólu" "alloszszimbólu" For example falloszszimbólum w nofor correct "ALLOSSZIMBÓLU" "ALLOSZSZIMBÓLU" For example FALLOSZSZIMBÓLUM word nofor correct "ússzobr" * For example hússzobrokból word not need apply the szsz backtranslation rule nofor correct "ÚSSZOBR" * For example HÚSSZOBROKBÓL word +nofor correct "ússzoba" * For example hússzoba word +nofor correct "ÚSSZOBA" * For example HÚSSZOBA word +nofor correct "ússzobáb" * For example hússzobában word +nofor correct "ÚSSZOBÁB" * For example HÚSSZOBÁBAN word nofor correct "ússzob" "úszszob" For example húszszobás word nofor correct "ÚSSZOB" "ÚSZSZOB" For example HÚSZSZOBÁS word nofor correct "amasszag" "amaszszag" For example kamaszszaga word @@ -1480,8 +1676,8 @@ nofor correct "oggyássző" "oggyászsző" For example poggyászszőnyegként wo nofor correct "OGGYÁSSZŐ" "OGGYÁSZSZŐ" For example POGGYÁSZSZŐNYEGKÉNT word nofor correct "adásszim" "adászszim" For example vadászszimulátor word nofor correct "ADÁSSZIM" "ADÁSZSZIM" For example VADÁSZSZIMULÁTOR word -nofor correct "áosszaké" "áoszszaké" For example káoszszakértője word -nofor correct "ÁOSSZAKÉ" "ÁOSZSZAKÉ" For example KÁOSZSZAKÉRTŐJE word +nofor correct "áosszak" "áoszszak" For example káoszszakértője word +nofor correct "ÁOSSZAK" "ÁOSZSZAK" For example KÁOSZSZAKÉRTŐJE word nofor correct "mésszemcs" "mészszemcs" For example mészszemcse word nofor correct "Mésszemcs" "Mészszemcs" For example mészszemcse word nofor correct "MÉSSZEMCS" "MÉSZSZEMCS" for example MÉSZSZEMCSE word @@ -1558,8 +1754,10 @@ nofor correct "ÖSSZÍN" "ÖSZSZÍN" For example LÖSZSZÍN word nofor correct "tússzer" "túszszer" For example túszszerű word nofor correct "Tússzer" "Túszszer" For example Túszszerű word nofor correct "TÚSSZER" "TÚSZSZER" For example TÚSZSZERŰ word -nofor correct "itnesszek" "itneszszek" For example fitneszszektor word -nofor correct "ITNESSZEK" "ITNESZSZEK" For example FITNESZSZEKTOR word +nofor correct "itnesszel" * For example fitnesszel word +nofor correct "ITNESSZEL" * For example FITNESSZEL word +nofor correct "itnessze" "itneszsze" For example fitneszszektor, fitneszszemmel words +nofor correct "ITNESSZE" "ITNESZSZE" For example FITNESZSZEKTOR, FITNESZSZEMMEL words nofor correct "idásszakm" "idászszakm" For example hidászszakma word nofor correct "IDÁSSZAKM" "IDÁSZSZAKM" For example HIDÁSZSZAKMA WORD nofor correct "oksszáll" "okszszáll" For example kokszszállítás word @@ -1694,8 +1892,8 @@ nofor correct "ésszemecs" "észszemecs" For example mészszemecskéket word nofor correct "ÉSSZEMECS" "ÉSZSZEMECS" For example MÉSZSZEMECSKÉKET word nofor correct "énisszöve" "éniszszöve" For example péniszszövethez word nofor correct "ÉNISSZÖVE" "ÉNISZSZÖVE" For example PÉNISZSZÖVETHEZ word -nofor correct "irkusszer" "irkuszszer" For example cirkuszszerű word -nofor correct "IRKUSSZER" "IRKUSZSZER" For example CIRKUSZSZERŰ word +nofor correct "irkussze" "irkuszsze" For example cirkuszszekcióban, cirkuszszerű word +nofor correct "IRKUSSZE" "IRKUSZSZE" For example CIRKUSZSZEKCIÓBAN, CIRKUSZSZERŰ word nofor correct "vénnyilvá" "vénynyilvá" For example vénynyilvántartás word nofor correct "Vénnyilvá" "Vénynyilvá" For example Vénynyilvántartás word nofor correct "VÉNNYILVÁ" "VÉNYNYILVÁ" For example VÉNYNYILVÁNTARTÁS word @@ -1964,6 +2162,556 @@ nofor correct "épésszelle" "épészszelle" For example gépészszellem word nofor correct "ÉPÉSSZELLE" "ÉPÉSZSZELLE" For example GÉPÉSZSZELLEM word nofor correct "ipsszá" "ipszszá" For example gipszszálakból word nofor correct "IPSSZÁ" "IPSZSZÁ" For example GIPSZSZÁLAKBÓL word +nofor correct "aránusszű" "aránuszszű" For example varánuszszűznemzés word +nofor correct "ARÁNUSSZŰ" "ARÁNUSZSZŰ" For example VARÁNUSZSZŰZNEMZÉS word +nofor correct "alásszé" "alászszé" For example halászszékeket word +nofor correct "ALÁSSZÉ" "ALÁSZSZÉ" For example HALÁSZSZÉKEKET word +nofor correct "tátusszöv" "tátuszszöv" For example státuszszövésben word +nofor correct "TÁTUSSZÖV" "TÁTUSZSZÖV" For example STÁTUSZSZÖVÉSBEN word +nofor correct "ambusszil" "ambuszszil" For example bambuszszilánk word +nofor correct "AMBUSSZIL" "AMBUSZSZIL" For example BAMBUSZSZILÁNK word +nofor correct "pluszössze" * For example pluszösszegért word +nofor correct "Pluszössze" * For example Pluszösszegért word +nofor correct "PLUSZÖSSZE" * For example PLUSZÖSSZEGÉRT word +nofor correct "ámasszé" "ámaszszé" For example támaszszélességű word +nofor correct "ÁMASSZÉ" "ÁMASZSZÉ" For example TÁMASZSZÉLESSÉGŰ word +nofor correct "orgásszakí" "orgászszakí" For example horgászszakíró word +nofor correct "ORGÁSSZAKÍ" "ORGÁSZSZAKÍ" For example HORGÁSZSZAKÍRÓ word +nofor correct "adásszí" "adászszí" For example vadásszívvel word +nofor correct "ADÁSSZÍ" "ADÁSZSZÍ" For example VADÁSZSZÍVVEL word +nofor correct "olbásszag" "olbászszag" For example kolbászszag word +nofor correct "OLBÁSSZAG" "OLBÁSZSZAG" For example KOLBÁSZSZAG word +nofor correct "illenéssza" * For example billenésszabályozás word +nofor correct "ILLENÉSSZA" * For example BILLENÉSSZABÁLYOZÁS word +nofor correct "kókusszó" "kókuszszó" For example kókuszszószban word +nofor correct "Kókusszó" "Kókuszszó" For example Kókuszszószban word +nofor correct "KÓKUSSZÓ" "KÓKUSZSZÓ" For example KÓKUSZSZÓSZBAN word +nofor correct "utásszemp" "utászszemp" For example utászszempontból word +nofor correct "Utásszemp" "Utászszemp" For example Utászszempontból word +nofor correct "UTÁSSZEMP" "UTÁSZSZEMP" For example UTÁSZSZEMPONTBÓL word +nofor correct "gyásszállod" "gyászszállod" For example gyászszálloda word +nofor correct "Gyásszállod" "Gyászszállod" For example Gyászszálloda word +nofor correct "GYÁSSZÁLLOD" "GYÁSZSZÁLLOD" For example GYÁSZSZÁLLODA word +nofor correct "enisszex" "eniszszex" For example teniszszexszimbólum word +nofor correct "ENISSZEX" "ENISZSZEX" For example TENISZSZEXSZIMBÓLUM word +nofor correct "eksszak" "ekszszak" For example kekszszakértő word +nofor correct "EKSSZAK" "EKSZSZAK" For example KEKSZSZAKÉRTŐ word +nofor correct "ajusszakért" "ajuszszakért" For example bajuszszakértő word +nofor correct "AJUSSZAKÉRT" "AJUSZSZAKÉRT" For example BAJUSZSZAKÉRTŐ word +nofor correct "iklusszerv" * For example ciklusszervezésnek word +nofor correct "IKLUSSZERV" * For example CIKLUSSZERVEZÉSNEK word +nofor correct "erkésszelle" "erkészszelle" For example cserkészszellem word +nofor correct "ERKÉSSZELLE" "ERKÉSZSZELLE" For example CSERKÉSZSZELLEM word +nofor correct "ínéssztráj" "ínészsztráj" For example színészsztrájk word +nofor correct "ÍNÉSSZTRÁJ" "ÍNÉSZSZTRÁJ" For example SZÍNÉSZSZTRÁJK word +nofor correct "érésszá" * For example érésszámú word +nofor correct "Érésszá" * For example Érésszámú word +nofor correct "ÉRÉSSZÁ" * For example ÉRÉSSZÁMÚ word +nofor correct "itnessza" "itneszsza" For example fitneszszalonba word +nofor correct "ITNESSZA" "ITNESZSZA" For example FITNESZSZALONBA word +nofor correct "empésszolg" "empészszolg" For example csempészszolgáltatások word +nofor correct "EMPÉSSZOLG" "EMPÉSZSZOLG" For example CSEMPÉSZSZOLGÁLTATÁSOK word +nofor correct "erkésszül" "erkészszül" For example cserkészszülő word +nofor correct "ERKÉSSZÜL" "ERKÉSZSZÜL" For example CSERKÉSZSZÜLŐ word +nofor correct "penésszí" "penészszí" For example penészszínek word +nofor correct "Penésszí" "Penészszí" For example Penészszín word +nofor correct "PENÉSSZÍ" "PENÉSZSZÍ" For example PENÉSZSZÍN word +nofor correct "régésszöv" "régészszöv" For example régészszövetség word +nofor correct "Régésszöv" "Régészszöv" For example Régészszövetség word +nofor correct "RÉGÉSSZÖV" "RÉGÉSZSZÖV" For example RÉGÉSZSZÖVETSÉG word +nofor correct "résszemfed" * For example résszemfedők word +nofor correct "Résszemfed" * For example Résszemfedő word +nofor correct "RÉSSZEMFED" * For example RÉSSZEMFEDŐK word +nofor correct "enésszínté" "enészszínté" For example zenészszíntéren word +nofor correct "ENÉSSZÍNTÉ" "ENÉSZSZÍNTÉ" For example ZENÉSZSZÍNTÉREN word +nofor correct "empéssziva" "empészsziva" For example csempészszivar word +nofor correct "EMPÉSSZIVA" "EMPÉSZSZIVA" For example CSEMPÉSZSZIVAR word +nofor correct "enisszék" "eniszszék" For example teniszszék word +nofor correct "ENISSZÉK" "ENISZSZÉK" For example TENISZSZÉK word +nofor correct "elasszi" "elaszszi" For example melaszszirup word +nofor correct "ELASSZI" "ELASZSZI" For example MELASZSZIRUP word +nofor correct "énisszá" "éniszszá" For example péniszszár word +nofor correct "ÉNISSZÁ" "ÉNISZSZÁ" For example PÉNISZSZÁR word +nofor correct "épésszí" "épészszí" For example gégészszív word +nofor correct "ÉPÉSSZÍ" "ÉPÉSZSZÍ" For example GÉGÉSZSZÍV word +nofor correct "busszeg" "buszszeg" For example buszszegmensben word +nofor correct "Busszeg" "Buszszeg" For example Buszszegmensben word +nofor correct "BUSSZEG" "BUSZSZEG" For example BUSZSZEGMENSBEN word +nofor correct "oklásszez" "oklászszez" For example toklászszezon word +nofor correct "OKLÁSSZEZ" "OKLÁSZSZEZ" For example TOKLÁSZSZEZON word +nofor correct "ambusszig" "ambuszszig" For example bambuszsziget word +nofor correct "AMBUSSZIG" "AMBUSZSZIG" For example BAMBUSZSZIGET word +nofor correct "eresszéle" "ereszszéle" For example ereszszélesítés word +nofor correct "Eresszéle" "Ereszszéle" For example Ereszszélesítés word +nofor correct "ERESSZÉLE" "ERESZSZÉLE" For example ERESZSZÉLESÍTÉS word +nofor correct "odrásszim" "odrászszim" For example fodrászszimulátor word +nofor correct "ODRÁSSZIM" "ODRÁSZSZIM" For example FODRÁSZSZIMULÁTOR word +nofor correct "tlasszer" "tlaszszer" For example atlaszszerű word +nofor correct "TLASSZER" "TLASZSZER" For example ATLASZSZERŰ word +nofor correct "irkusszó" "irkuszszó" For example cirkuszszórakozás word +nofor correct "IRKUSSZÓ" "IRKUSZSZÓ" For example CIRKUSZSZÓRAKOZÁS word +nofor correct "ovasíjásszá" * For example lovasíjásszá word +nofor correct "OVASÍJÁSSZÁ" * For example LOVASÍJÁSSZÁ word +nofor correct "ertésszok" "ertészszok" For example kertészszokás word +nofor correct "ERTÉSSZOK" "ERTÉSZSZOK" For example KERTÉSZSZOKÁS word +nofor correct "ozmosszelle" "ozmoszszelle" For example kozmoszszellem word +nofor correct "OZMOSSZELLE" "OZMOSZSZELLE" For example KOZMOSZSZELLEM word +nofor correct "igassze" "igaszsze" For example vigaszszexnek word +nofor correct "IGASSZE" "IGASZSZE" For example VIGASZSZEXNEK word +nofor correct "ásszóza" "ászszóza" For example gyászszózat word +nofor correct "ÁSSZÓZA" "ÁSZSZÓZA" For example GYÁSZSZÓZAT word +nofor correct "orlasszer" "orlaszszer" For example torlaszszerűen word +nofor correct "ORLASSZER" "ORLASZSZER" For example TORLASZSZERŰEN word +nofor correct "tílusszédel" * For example stílusszédelgők word +nofor correct "TÍLUSSZÉDEL" * For example STÍLUSSZÉDELGŐK word +nofor correct "gyásszöve" "gyászszöve" For example gyászszöveget word +nofor correct "Gyásszöve" "Gyászszöve" For example Gyászszöveget word +nofor correct "GYÁSSZÖVE" "GYÁSZSZÖVE" For example GYÁSZSZÖVEGET word +nofor correct "ezgésszegé" * For example rezgésszegény word +nofor correct "EZGÉSSZEGÉ" * For example REZGÉSSZEGÉNY word +nofor correct "ányásszí" "ányászszí" For example bányászszívekben word +nofor correct "ÁNYÁSSZÍ" "ÁNYÁSZSZÍ" For example BÁNYÁSZSZÍVEKBEN word +nofor correct "űrésszin" * For example tűrésszintjét word +nofor correct "ŰRÉSSZIN" * For example TŰRÉSSZINTJÉT word +nofor correct "amasszin" "amaszszin" For example kamaszszintű word +nofor correct "AMASSZIN" "AMASZSZIN" For example KAMASZSZINTŰ word +nofor correct "mókusszob" * For example mókusszobrokat word +nofor correct "Mókusszob" * For example Mókusszobrokat word +nofor correct "MÓKUSSZOB" * For example MÓKUSSZOBROKAT word +nofor correct "ovásszerel" "ovászszerel" For example kovászszerelmes word +nofor correct "OVÁSSZEREL" "OVÁSZSZEREL" For example KOVÁSZSZERELMES word +nofor correct "obrásszimp" "obrászszimp" For example szobrászszimpózium word +nofor correct "OBRÁSSZIMP" "OBRÁSZSZIMP" For example SZOBRÁSZSZIMPÓZIUMRÓL word +nofor correct "tavasszagú" "tavaszszagú" For example tavaszszagú word +nofor correct "Tavasszagú" "Tavaszszagú" For example Tavaszszagú word +nofor correct "TAVASSZAGÚ" "TAVASZSZAGÚ" For example TAVASZSZAGÚ word +nofor correct "ihegéssz" * For example lihegésszámmal word +nofor correct "IHEGÉSSZ" * For example LIHEGÉSSZÁMMAL word +nofor correct "itnesszin" "itneszszin" For example fitneszszintet word +nofor correct "ITNESSZIN" "ITNESZSZIN" For example FITNESZSZINTET word +nofor correct "ransszóvi" "ranszszóvi" For example transzszóvivője word +nofor correct "RANSSZÓVI" "RANSZSZÓVI" For example TRANSZSZÓVIVŐJE word +nofor correct "ísszín" "íszszín" For example díszszín word +nofor correct "ÍSSZÍN" "ÍSZSZÍN" For example DÍSZSZÍN word +nofor correct "lusszos" * For example slusszos word +nofor correct "LUSSZOS" * For example SLUSSZOS word +nofor correct "ozmosszak" "ozmoszszak" For example kozmoszszakasz word +nofor correct "OZMOSSZAK" "OZMOSZSZAK" For example KOZMOSZSZAKASZ word +nofor correct "umusszemcs" "umuszszemcs" For example humuszszemcsék word +nofor correct "UMUSSZEMCS" "UMUSZSZEMCS" For example HUMUSZSZEMCSÉKET word +nofor correct "éhésszék" "éhészszék" For example méhészszékház word +nofor correct "ÉHÉSSZÉK" "ÉHÉSZSZÉK" For example MÉHÉSZSZÉKHÁZ word +nofor correct "ókusszom" * For example mókusszomszéd word +nofor correct "ÓKUSSZOM" * For example MÓKUSSZOMSZÉD word +nofor correct "ítésszék" "ítészszék" For example ítészszékbe word +nofor correct "Ítésszék" "Ítészszék" For example Ítészszékbe word +nofor correct "ÍTÉSSZÉK" "ÍTÉSZSZÉK" For example ÍTÉSZSZÉKBE word +nofor correct "endésszolg" "endészszolg" For example rendészszolgálat word +nofor correct "ENDÉSSZOLG" "ENDÉSZSZOLG" For example RENDÉSZSZOLGÁLAT word +nofor correct "ínéssza" "ínészsza" For example színészszamár word +nofor correct "ÍNÉSSZA" "ÍNÉSZSZA" For example SZÍNÉSZSZAMÁR word +nofor correct "ílusszav" * For example stílusszavazáson word +nofor correct "ÍLUSSZAV" * For example STÍLUSSZAVAZÁSON word +nofor correct "odrásszenv" "odrászszenv" For example fodrászszenvedély word +nofor correct "ODRÁSSZENV" "ODRÁSZSZENV" For example FODRÁSZSZENVEDÉLY word +nofor correct "ányásszöv" "ányászszöv" For example bányászszövetség word +nofor correct "ÁNYÁSSZÖV" "ÁNYÁSZSZÖV" For example BÁNYÁSZSZÖVETSÉG word +nofor correct "vadássztráj" "vadászsztráj" For example vadászsztrájk word +nofor correct "Vadássztráj" "Vadászsztráj" For example Vadászsztrájk word +nofor correct "VADÁSSZTRÁJ" "VADÁSZSZTRÁJ" For example VADÁSZSZTRÁJK word +nofor correct "aránusszer" "aránuszszer" For example varánuszszerű word +nofor correct "ARÁNUSSZER" "ARÁNUSZSZER" For example VARÁNUSZSZERŰ word +nofor correct "ipogásszez" * For example szipogásszezonban word +nofor correct "IPOGÁSSZEZ" * For example SZIPOGÁSSZEZONBAN word +nofor correct "ínésszül" "ínészszül" For example színészszülők word +nofor correct "ÍNÉSSZÜL" "ÍNÉSZSZÜL" For example SZÍNÉSZSZÜLŐK word +nofor correct "ellépésszóló" * For example fellépésszóló word +nofor correct "ELLÉPÉSSZÓLÓ" * For example FELLÉPÉSSZÓLÓ word +nofor correct "iakónusszolg" * For example diakónuszszolgálat word +nofor correct "IAKÓNUSSZOLG" * For example DIAKÓNUSSZOLGÁLAT word +nofor correct "ókusszedé" "ókuszszedé" For example kókuszszedés word +nofor correct "ÓKUSSZEDÉ" "ÓKUSZSZEDÉ" For example KÓKUSZSZEDÉS word +nofor correct "ínésszínhá" "ínészszínhá" For example színészszínház word +nofor correct "ÍNÉSSZÍNHÁ" "ÍNÉSZSZÍNHÁ" For example SZÍNÉSZSZÍNHÁZ word +nofor correct "ősszínű" "őszszínű" For example őszszínű word +nofor correct "Ősszínű" "Őszszínű" For example Hőszszínű word +nofor correct "ŐSSZÍNŰ" "ŐSZSZÍNŰ" For example ŐSZSZÍNŰ word +nofor correct "itnesszer" "itneszszer" For example fitneszszerető word +nofor correct "ITNESSZER" "ITNESZSZER" For example FITNESZSZERETŐ word +nofor correct "álasszindr" "álaszszindr" For example válaszszindrómának word +nofor correct "ÁLASSZINDR" "ÁLASZSZINDR" For example VÁLASZSZINDRÓMÁNAK word +nofor correct "iasszál" "iaszszál" For example viaszszálból word +nofor correct "IASSZÁL" "IASZSZÁL" For example VIASZSZÁLBAN word +nofor correct "fasszépsé" "faszszépsé" +nofor correct "Fasszépsé" "Faszszépsé" +nofor correct "FASSZÉPSÉ" "FASZSZÉPSÉ" +nofor correct "ijjogásszer" * For example vijjogásszerű word +nofor correct "IJJOGÁSSZER" * For example VIJJOGÁSSZERŰ word +nofor correct "pítésszó" * For example leépítésszóval word +nofor correct "PÍTÉSSZÓ" * For example LEÉPÍTÉSSZÓVAL word +nofor correct "arvasszel" * For example szarvasszelet word +nofor correct "ARVASSZEL" * For example SZARVASSZELET word +nofor correct "álasszám" "álaszszám" For example válaszszám word +nofor correct "ÁLASSZÁM" "ÁLASZSZÁM" For example VÁLASZSZÁM word +nofor correct "lkusszekto" "lkuszszekto" For example alkuszszektor word +nofor correct "LKUSSZEKTO" "LKUSZSZEKTO" For example ALKUSZSZEKTOR word +nofor correct "ázadásszí" * For example lázadásszítás word +nofor correct "ÁZADÁSSZÍ" * For example LÁZADÁSSZÍTÁS word +nofor correct "encegésszer" * For example hencegésszerű word +nofor correct "ENCEGÉSSZER" * For example HENCEGÉSSZERŰ word +nofor correct "gyásszent" "gyászszent" For example gyászszentmise word +nofor correct "Gyásszent" "Gyászszent" For example Gyászszentmise word +nofor correct "GYÁSSZENT" "GYÁSZSZENT" For example GYÁSZSZENTMISE word +nofor correct "ereplésszer" * For example kereplésszerű word +nofor correct "EREPLÉSSZER" * For example KEREPLÉSSZERŰ word +nofor correct "orásszöv" "orászszöv" For example borászszövetség word +nofor correct "ORÁSSZÖV" "ORÁSZSZÖV" For example BORÁSZSZÖVETSÉG word +nofor correct "szövésszak" * For example szövésszakkör word +nofor correct "Szövéssza" * For example Szövésszakkör word +nofor correct "SZÖVÉSSZA" * For example SZÖVÉSSZAKKÖR word +nofor correct "iabétesszö" "iabéteszszö" For example diabéteszszövetség word +nofor correct "IABÉTESSZÖ" "IABÉTESZSZÖ" For example DIABÉTESZSZÖVETSÉG word +nofor correct "oksszün" "okszszün" For example bokszszünet word +nofor correct "OKSSZÜN" "OKSZSZÜN" For example BOKSZSZÜNET word +nofor correct "obrásszer" "obrászszer" For example szobrászszerszám word +nofor correct "OBRÁSSZER" "OBRÁSZSZER" For example SZOBRÁSZSZERSZÁM word +nofor correct "fókusszám" "fókuszszám" For example fókuszszámítással word +nofor correct "Fókusszám" "Fókuszszám" For example Fókuszszámítással word +nofor correct "FÓKUSSZÁM" "FÓKUSZSZÁM" For example FÓKUSZSZÁMÍTÁSSAL word +nofor correct "szesszak" "szeszszak" For example szeszszakértő word +nofor correct "Szesszak" "Szeszszak" For example Szeszszakértő word +nofor correct "SZESSZAK" "SZESZSZAK" For example SZESZSZAKÉRTŐ word +nofor correct "örésszer" * For example csőtörésszerűen word +nofor correct "ÖRÉSSZER" * For example CSŐTÖRÉSSZERŰEN word +nofor correct "eknősszí" * For example teknősszínű word +nofor correct "EKNŐSSZÍ" * For example TEKNŐSSZÍNŰ word +nofor correct "ultussze" "ultuszsze" For example kultuszszemély word +nofor correct "ULTUSSZE" "ULTUSZSZE" For example KULTUSZSZEMÉLY word +nofor correct "ányásszok" "ányászszok" For example bányászszokások word +nofor correct "ÁNYÁSSZOK" "ÁNYÁSZSZOK" For example BÁNYÁSZSZOKÁSOK word +nofor correct "űvésszül" "űvészszül" For example művészszülők word +nofor correct "ŰVÉSSZÜL" "ŰVÉSZSZÜL" For example MŰVÉSZSZÜLŐK word +nofor correct "kertésszez" "kertészszez" For example kertészszezon word +nofor correct "Kertésszez" "Kertészszez" For example Kertészszezon word +nofor correct "KERTÉSSZEZ" "KERTÉSZSZEZ" For example KERTÉSZSZEZON word +nofor correct "ísszóró" "íszszóró" For example díszszórókút word +nofor correct "ÍSSZÓRÓ" "ÍSZSZÓRÓ" For example DÍSZSZÓRÓKÚTJÁNÁL word +nofor correct "résszivárog" "részszivárog" For example résszivárogtatásokkal word +nofor correct "Résszivárog" "Részszivárog" For example Részszivárogtatás word +nofor correct "RÉSSZIVÁROG" "RÉSZSZIVÁROG" For example RÉSZSZIVÁROGTATÁS word +nofor correct "ússzüne" "úszszüne" For example túszszünet word +nofor correct "ÚSSZÜNE" "ÚSZSZÜNE" For example TÚSZSZÜNET word +nofor correct "iszkossze" "iszkoszsze" For example diszkoszszerű word +nofor correct "ISZKOSSZE" "ISZKOSZSZE" For example DISZKOSZSZERŰ word +nofor correct "ányásszül" "ányászszül" For example bányászszülők word +nofor correct "ÁNYÁSSZÜL" "ÁNYÁSZSZÜL" For example BÁNYÁSZSZÜLŐK word +nofor correct "álasszlo" "álaszszlo" For example válaszszlogennel word +nofor correct "ÁLASSZLO" "ÁLASZSZLO" For example VÁLASZSZLOGENNEL word +nofor correct "isiásszer" "isiászszer" For example isiászszerű word +nofor correct "Isiásszer" "Isiászszer" For example Isiászszerű word +nofor correct "ISIÁSSZER" "ISIÁSZSZER" For example ISIÁSZSZERŰ word +nofor correct "lusszenv" "luszszenv" For example pluszszenvedést word +nofor correct "LUSSZENV" "LUSZSZENV" For example PLUSZSZENVEDÉST word +nofor correct "lfogássz" * For example felfogásszemlélet word +nofor correct "LFOGÁSSZ" * For example FELFOGÁSSZEMLÉLET word +nofor correct "égésszenv" "égészszenv" For example régészszenvedéllyel word +nofor correct "ÉGÉSSZENV" "ÉGÉSZSZENV" For example RÉGÉSZSZENVEDÉLLYEL word +nofor correct "mésszállí" "mészszállí" For example mészszállítmánnyal word +nofor correct "Mésszállí" "Mészszállí" For example mészszállítmány word +nofor correct "MÉSSZÁLLÍ" "MÉSZSZÁLLÍ" For example MÉSZSZÁLLÍTMÁNY word +nofor correct "epesszer" "epeszszer" For example repeszszerű word +nofor correct "EPESSZER" "EPESZSZER" For example REPESZSZERŰ word +nofor correct "erasszig" "eraszszig" For example teraszszigetelés word +nofor correct "ERASSZIG" "ERASZSZIG" For example TERASZSZIGETELÉS word +nofor correct "úcsdísszet" "úcsdíszszet" For example csúcsdíszszettet word +nofor correct "ÚCSDÍSSZET" "ÚCSDÍSZSZET" For example CSÚCSDÍSZSZETTET word +nofor correct "aritásszen" "aritászszen" For example karitászszentmise word +nofor correct "ARITÁSSZE" "ARITÁSZSZE" For example KARITÁSSZENTMISE word +nofor correct "lusszala" "luszszala" For example pluszszalag word +nofor correct "LUSSZALA" "LUSZSZALA" For example PLUSZSZALAG word +nofor correct "akasszig" "akaszszig" For example szakaszszigetelés word +nofor correct "AKASSZIG" "AKASZSZIG" For example SZAKASZSZIGETELÉS word +nofor correct "ússzeké" "úszszeké" For example húszszekérnyi word +nofor correct "ÚSSZEKÉ" "ÚSZSZEKÉ" For example HÚSZSZEKÉRNYI word +nofor correct "itelezéssze" * For example hitelezésszegény word +nofor correct "ITELEZÉSSZE" * For example HITELEZÉSSZEGÉNY word +nofor correct "gyásszegélyű" "gyászszegélyű" For example gyászszegélyű word +nofor correct "Gyásszegélyű" "Gyászszegélyű" For example Gyászszegélyű word +nofor correct "GYÁSSZEGÉLYŰ" "GYÁSZSZEGÉLYŰ" For example GYÁSZSZEGÉLYŰ word +nofor correct "bortusszö" "bortuszszö" For example abortuszszökevény word +nofor correct "BORTUSSZÖ" "BORTUSZSZÖ" For example ABORTUSZSZÖKEVÉNY word +nofor correct "adogásszer" * For example dadogásszerű word +nofor correct "ADOGÁSSZER" * For example DADOGÁSSZERŰ word +nofor correct "itnessző" "itneszsző" For example fitneszszőnyeg word +nofor correct "ITNESSZŐ" "ITNESZSZŐ" For example FITNESZSZŐNYEG word +nofor correct "oksszák" "okszszák" For example bokszszákot word +nofor correct "OKSSZÁK" "OKSZSZÁK" For example BOKSZSZÁKOT word +nofor correct "orgásszto" "orgászszto" For example horgászsztori word +nofor correct "ORGÁSSZTO" "ORGÁSZSZTO" For example HORGÁSZSZTORI word +nofor correct "edésszer" * For example átfedésszerűen word +nofor correct "EDÉSSZER" * For example ÁTFEDÉSSZERŰEN word +nofor correct "össztye" "öszsztye" For example löszsztyepp word +nofor correct "ÖSSZTYE" "ÖSZSZTYE" For example LÖSZSZTYEPP word +nofor correct "ítosszé" "ítoszszé" For example mítoszszédelgés word +nofor correct "ÍTOSSZÉ" "ÍTOSZSZÉ" For example MÍTOSZSZÉDELGÉS word +nofor correct "ipogássze" * For example csipogásszerű word +nofor correct "IPOGÁSSZE" * For example CSIPOGÁSSZERŰ word +nofor correct "ísszu" "íszszu" For example díszszurkolója word +nofor correct "ÍSSZU" "ÍSZSZU" For example DÍSZSZURKOLÓJA word +nofor correct "tónussza" * For example tónusszabályozás word +nofor correct "Tónussza" * For example Tónusszabályozás word +nofor correct "TÓNUSSZA" * For example TÓNUSSZABÁLYOZÁS word +nofor correct "eresszell" "ereszszell" For example ereszszellőző word +nofor correct "Eresszell" "Ereszszell" For example Ereszszellőző word +nofor correct "ERESSZELL" "ERESZSZELL" For example ERESZSZELLŐZŐ word +nofor correct "enésszleng" "enészszleng" For example zenészszlengben word +nofor correct "ENÉSSZLENG" "ENÉSZSZLENG" For example ZENÉSZSZLENGBEN word +nofor correct "enisszem" "eniszszem" For example teniszszempontból word +nofor correct "ENISSZEM" "ENISZSZEM" For example TENISZSZEMPONTBÓL word +nofor correct "eniszkusszö" "eniszkuszszö" For example meniszkuszszövet word +nofor correct "ENISZKUSSZÖ" "ENISZKUSZSZÖ" For example MENISZKUSZSZÖVET word +nofor correct "apassze" "apaszsze" For example ragtapaszszerű word +nofor correct "APASSZE" "APASZSZE" For example RAGTAPASZSZERŰ word +nofor correct "imnusszto" "imnuszszto" For example himnuszsztori word +nofor correct "IMNUSSZTO" "IMNUSZSZTO" For example HIMNUSZSZTORI word +nofor correct "adásszékk" "adászszékk" For example vadásszékkel word +nofor correct "ADÁSSZÉKK" "ADÁSZSZÉKK" For example VADÁSZSZÉKKEL word +nofor correct "munkássz" * For example munkásszázad word +nofor correct "Munkássz" * For example Munkásszázad word +nofor correct "MUNKÁSSZ" * For example MUNKÁSSZÁZAD word +nofor correct "idásszáz" * For example dzsidásszázad word +nofor correct "IDÁSSZÁZ" * For example DZSIDÁSSZÁZAD word +nofor correct "uskásszáz" * For example puskásszázad word +nofor correct "USKÁSSZÁZ" * For example PUSKÁSSZÁZAD word +nofor correct "ásszáza" "ászszáza" For example ászszázad word +nofor correct "Ásszáza" "Ászszáza" For example Ászszázad word +nofor correct "ÁSSZÁZA" "ÁSZSZÁZA" For example ÁSZSZÁZAD word +nofor correct "átosszag" "átoszszag" For example pátoszszagú word +nofor correct "ÁTOSSZAG" "ÁTOSZSZAG" For example PÁTOSZSZAGÚ word +nofor correct "tússzáll" "túszszáll" For example túszszállítás word +nofor correct "Tússzáll" "Túszszáll" For example Túszszállítás word +nofor correct "TÚSSZÁLL" "TÚSZSZÁLL" For example TÚSZSZÁLLÍTÁS word +nofor correct "busszob" "buszszob" For example buszszoba word +nofor correct "Busszob" "Buszszob" For example Buszszoba word +nofor correct "BUSSZOB" "BUSZSZOB" For example BUSZSZOBA word +nofor correct "dásszárny" "dászszárny" For example vadászszárnya word +nofor correct "DÁSSZÁRNY" "DÁSZSZÁRNY" For example VADÁSZSZÁRNYA word +nofor correct "avasszer" "avaszszer" For example tavaszszerű word +nofor correct "AVASSZER" "AVASZSZER" For example TAVASZSZERŰ word +nofor correct "ányásszi" "ányászszi" For example bányászszimulátor word +nofor correct "ÁNYÁSSZI" "ÁNYÁSZSZI" For example BÁNYÁSZSZIMULÁTOR word +nofor correct "ússzava" "úszszava" For example húszszavas word +nofor correct "ÚSSZAVA" "ÚSZSZAVA" For example HÚSZSZAVAS word +nofor correct "ákássze" "ákászsze" For example rákászszezon word +nofor correct "ÁKÁSSZE" "ÁKÁSZSZE" For example RÁKÁSZSZEZON word +nofor correct "erítéssze" * For example kerítésszegély word +nofor correct "ERÍTÉSSZE" * For example KERÍTÉSSZEGÉLY word +nofor correct "resszök" "reszszök" For example ereszszökevény word +nofor correct "RESSZÖK" "RESZSZÖK" For example ERESZSZÖKEVÉNY word +nofor correct "lusszú" "luszszú" For example pluszszúrás word +nofor correct "LUSSZÚ" "LUSZSZÚ" For example PLUSZSZÚRÁS word +nofor correct "hányásszer" * For example hányásszerű word +nofor correct "Hányásszer" * For example Hányásszerű word +nofor correct "HÁNYÁSSZER" * For example HÁNYÁSSZERŰ word +nofor correct "ütyöréssze" * For example fütyörésszen word +nofor correct "ÜTYÖRÉSSZE" * For example FÜTYÖRÉSSZEN word +nofor correct "lusszilár" "luszszilár" For example pluszszilárdsága word +nofor correct "LUSSZILÁR" "LUSZSZILÁR" For example PLUSZSZILÁRDSÁGGAL word +nofor correct "ajusszárn" "ajuszszárn" For example harcsabajuszszárnya word +nofor correct "AJUSSZÁRN" "AJUSZSZÁRN" For example HARCSABAJUSZSZÁRNYA word +nofor correct "ertésszó" * For example sertésszósz word +nofor correct "ERTÉSSZÓ" * For example SERTÉSSZÓSZ word +nofor correct "oksszokny" "okszszokny" For example bokszszoknyát word +nofor correct "OKSSZOKNY" "OKSZSZOKNY" For example BOKSZSZOKNYÁT word +nofor correct "elkéssza" "elkészsza" For example lelkészszakon word +nofor correct "ELKÉSSZA" "ELKÉSZSZA" For example LELKÉSZSZAKON word +nofor correct "ertésszim" "ertészszim" For example kertészszimulátor word +nofor correct "ERTÉSSZIM" "ERTÉSZSZIM" For example KERTÉSZSZIMULÁTOR word +nofor correct "ányásszé" "ányászszé" For example bányászszéket word +nofor correct "ÁNYÁSSZÉ" "ÁNYÁSZSZÉ" For example BÁNYÁSZSZÉKET word +nofor correct "epossze" "eposzsze" For example eposzszerzője, hőseposzszerzője words +nofor correct "Epossze" "Eposzsze" For example Eposzszerzője word +nofor correct "EPOSSZE" "EPOSZSZE" For example EPOSZSZERZŐJE word +nofor correct "dásszele" "dászszele" For example vadászszelet word +nofor correct "DÁSSZELE" "DÁSZSZELE" For example vadászszelet word +nofor correct "ányásszakm" "ányászszakm" For example bányászszakma word +nofor correct "ÁNYÁSSZAKM" "ÁNYÁSZSZAKM" For example BÁNYÁSZSZAKMA word +nofor correct "ovásszak" "ovászszak" For example kovászszakértők word +nofor correct "OVÁSSZAK" "OVÁSZSZAK" For example KOVÁSZSZAKÉRTŐK word +nofor correct "ambusszí" "ambuszszí" For example bambuszszívószál word +nofor correct "AMBUSSZÍ" "AMBUSZSZÍ" For example BAMBUSZSZÍVÓSZÁLLAL word +nofor correct "eccsenéssze" * For example reccsenésszerű word +nofor correct "ECCSENÉSSZE" * For example RECCSENÉSSZERŰ word +nofor correct "anassze" "anaszsze" For example panaszszerkesztési word +nofor correct "ANASSZE" "ANASZSZE" For example PANASZSZERKESZTÉSI word +nofor correct "plusszak" "pluszszak" For example pluszszakember word +nofor correct "Plusszak" "Pluszszak" For example Pluszszakember word +nofor correct "PLUSSZAK" "PLUSZSZAK" For example PLUSZSZAKEMBER word +nofor correct "ihalásszin" * For example kihalásszintű word +nofor correct "IHALÁSSZIN" * For example KIHALÁSSZINTŰ word +nofor correct "iznisszer" "izniszszer" For example bizniszszerű word +nofor correct "IZNISSZER" "IZNISZSZER" For example BIZNISZSZERŰ word +nofor correct "omdásszob" "omdászszob" For example nyomdászszobor word +nofor correct "OMDÁSSZOB" "OMDÁSZSZOB" For example NYOMDÁSZSZOBOR word +nofor correct "övésszekt" "övészszekt" For example lövészszektor word +nofor correct "ÖVÉSSZEKT" "ÖVÉSZSZEKT" For example LÖVÉSZSZEKTOR word +nofor correct "AKASSZÁM" "AKASZSZÁM" For example SZAKASZSZÁMNÖVELÉS word +nofor correct "ibiszkusszi" "ibiszkuszszi" For example hibiszkuszszirup word +nofor correct "IBISZKUSSZI" "IBISZKUSZSZI" For example HIBISZKUSZSZIRUP word +nofor correct "odrásszo" "odrászszo" For example fodrászszobából word +nofor correct "ODRÁSSZO" "ODRÁSZSZO" For example FODRÁSZSZOBÁBÓL word +nofor correct "uszkussze" "uszkuszsze" For example kuszkuszszemeket word +nofor correct "USZKUSSZE" "USZKUSZSZE" For example KUSZKUSZSZEMEKET word +nofor correct "ámassze" "ámaszsze" For example fekvőtámaszszerű word +nofor correct "ÁMASSZE" "ÁMASZSZE" For example FEKVŐTÁMASZSZERŰ word +nofor correct "inoszaurusszak" "inoszauruszszak" For example dinoszauruszszakadék word +nofor correct "INOSZAURUSSZAK" "INOSZAURUSZSZAK" For example INOSZAURUSZSZAKADÉK word +nofor correct "ornásszob" "ornászszob" For example tornászszobrokat word +nofor correct "ORNÁSSZOB" "ORNÁSZSZOB" For example TORNÁSZSZOBROKAT word +nofor correct "enésszíné" "enészszíné" For example zenészszínésznek word +nofor correct "ENÉSSZÍNÉ" "ENÉSZSZÍNÉ" For example ZENÉSZSZÍNÉSZNEK word +nofor correct "résszépí" "részszépí" * For example részszépítés word +nofor correct "Résszépí" "Részszépí" For example Részszépítés word +nofor correct "RÉSSZÉPÍ" "RÉSZSZÉPÍ" For example RÉSZSZÉPÍTÉS word +nofor correct "vésszav" "vészszav" For example vészszavakat word +nofor correct "Vésszav" "Vészszav" For example Vésszavakat word +nofor correct "VÉSSZAV" "VÉSZSZAV" For example VÉSZSZAVAKAT word +nofor correct "ússzeletes" "úszszeletes" For example húszszeletes word +nofor correct "ÚSSZELETES" "ÚSZSZELETES" For example HÚSZSZELETES word +nofor correct "lusszál" "luszszál" For example pluszszálak word +nofor correct "LUSSZÁL" "LUSZSZÁL" For example PLUSZSZÁLAK word +nofor correct "ultusszap" "ultuszszap" For example kultuszszappanopera word +nofor correct "ULTUSSZAP" "ULTUSZSZAP" For example KULTUSZSZAPPANOPERA word +nofor correct "ekesszál" "ekeszszál" For example rekeszszállító word +nofor correct "EKESSZÁL" "EKESZSZÁL" For example REKESZSZÁLLÍTÓ word +nofor correct "iasszé" "iaszszé" For example viaszszépség word +nofor correct "IASSZÉ" "IASZSZÉ" For example VIASZSZÉPSÉG word +nofor correct "ebbenccso" "ebbencscso" For example lebbencscsoki word +nofor correct "EBBENCCSO" "EBBENCSCSO" For example LEBBENCSCSOKI word +nofor correct "eneszánsszak" "eneszánszszak" For example reneszánszszakértő word +nofor correct "ENESZÁNSSZAK" "ENESZÁNSZSZAK" For example RENESZÁNSZSZAKÉRTŐ word +nofor correct "űrésszele" "űrészszele" For example körfűrészszeletes word +nofor correct "ŰRÉSSZELE" "ŰRÉSZSZELE" For example KÖRFŰRÉSZSZELETES word +nofor correct "tátusszek" "tátuszszek" For example státuszszektor word +nofor correct "TÁTUSSZEK" "TÁTUSZSZEK" For example STÁTUSZSZEKTORBAN word +nofor correct "özlésszer" * For example távközlésszerelő word +nofor correct "ÖZLÉSSZER" * For example TÁVKÖZLÉSSZERELŐ word +nofor correct "ávogássz" * For example nyávogásszerű word +nofor correct "ÁVOGÁSSZ" * For example NYÁVOGÁSSZERŰ word +nofor correct "eheréssze" * For example heherésszenek word +nofor correct "EHERÉSSZE" * For example HEHERÉSSZENEK word +nofor correct "ambussző" "ambuszsző" For example bambuszszőnyeg word +nofor correct "AMBUSSZŐ" "AMBUSZSZŐ" For example BAMBUSZSZŐNYEG word +nofor correct "fasszer" "faszszer" +nofor correct "Fasszer" "Faszszer" +nofor correct "FASSZER" "FASZSZER" +nofor correct "amasszü" "amaszszü" For example kamaszszületőben word +nofor correct "AMASSZÜ" "AMASZSZÜ" For example KAMASZSZÜLETŐBEN word +nofor correct "üttyentéssz" * For example füttyentésszónyi word +nofor correct "ÜTTYENTÉSSZ" * For example FÜTTYENTÉSSZÓNYI word +nofor correct "orássző" "orászsző" For example borászszőlő word +nofor correct "ORÁSSZŐ" "ORÁSZSZŐ" For example BORÁSZSZŐLŐ word +nofor correct "eksszer" "ekszszer" For example kekszszerű word +nofor correct "EKSSZER" "EKSZSZER" For example KEKSZSZERŰ word +nofor correct "anasszit" "anaszszit" For example panaszszituáció word +nofor correct "ANASSZIT" "ANASZSZIT" For example PANASZSZITUÁCIÓ word +nofor correct "ovásszere" "ovászszere" For example kovászszerető word +nofor correct "OVÁSSZERE" "OVÁSZSZERE" For example KOVÁSZSZERETŐ word +nofor correct "plusszű" "pluszszű" For example pluszszűrő word +nofor correct "Plusszű" "Pluszszű" For example Pluszszűrő word +nofor correct "PLUSSZŰ" "PLUSZSZŰ" For example PLUSZSZŰRŐ word +nofor correct "fogásszak" * For example fogásszakmai word +nofor correct "Fogásszak" * For example Fogásszak word +nofor correct "FOGÁSSZAK" * For example FOGÁSSZAKMAI word +nofor correct "mumussze" * For example mumusszerűen word +nofor correct "Mumussze" * For example Mumusszerűen word +nofor correct "MUMUSSZE" * For example MUMUSSZERŰEN word +nofor correct "orgásszake" "orgászszake" For example horgászszakemberek word +nofor correct "ORGÁSSZAKE" "ORGÁSZSZAKE" For example HORGÁSZSZAKEMBEREK word +nofor correct "evéssza" * For example kevésszavú word +nofor correct "EVÉSSZA" * For example KEVÉSSZAVÚ word +nofor correct "fasszőr" "faszszőr" +nofor correct "Fasszőr" "Faszszőr" +nofor correct "FASSZŐR" "FASZSZŐR" +nofor correct "fodrássze" "fodrászsze" For example fodrászszerű word +nofor correct "Fodrássze" "Fodrászsze" For example Fodrászszerrel word +nofor correct "FODRÁSSZE" "FODRÁSZSZE" For example FODRÁSZSZERREL word +nofor correct "ölcsésszt" "ölcsészszt" For example bölcsészsztrájk word +nofor correct "ÖLCSÉSSZT" "ÖLCSÉSZSZT" For example BÖLCSÉSZSZTRÁJK word +nofor correct "ólussze" * For example pólusszervezés word +nofor correct "ÓLUSSZE" * For example PÓLUSSZERVEZÉS word +nofor correct "erzetessze" * For example szerzetesszerű word +nofor correct "ERZETESSZE" * For example SZERZETESSZERŰ word +nofor correct "elepüléssz" * For example településszerű, településszótár words +nofor correct "ELEPÜLÉSSZ" * For example TELEPÜLÉSSZERŰ, TELEPÜLÉSSZÓTÁR words +nofor correct "ertésszend" * For example sertésszendvicsekkel word +nofor correct "ERTÉSSZEND" * For example SERTÉSSZENDVICSEKKEL word +nofor correct "lusszero" "luszszero" For example pluszszerotoninnal word +nofor correct "LUSSZERO" "LUSZSZERO" For example PLUSZSZEROTONINNAL word +nofor correct "aktusszo" "aktuszszo" For example kaktuszszobor word +nofor correct "AKTUSSZO" "AKTUSZSZO" For example KAKTUSZSZOBOR word +nofor correct "ikorgásszer" * For exampole csikorgásszerű, nyikorgásszerű words +nofor correct "IKORGÁSSZER" * For example CSIKORGÁSSZERŰ, NYIKORGÁSSZERŰ words +nofor correct "ohásszag" "ohászszag" For example kohászszaga word +nofor correct "OHÁSSZAG" "OHÁSZSZAG" For example KOHÁSZSZAGA word +nofor correct "ajongássz" * For example rajongásszerű, rajongássztorira words +nofor correct "AJONGÁSSZ" * For example RAJONGÁSSZERŰ, RAJONGÁSSZTORIRA words +nofor correct "ótusszel" "ótuszszel" For example lótuszszelet word +nofor correct "ÓTUSSZEL" "ÓTUSZSZEL" For example LÓTUSZSZELET word +nofor correct "amasszáj" "amaszszáj" For example kamaszszájakkal word +nofor correct "AMASSZÁJ" "AMASZSZÁJ" For example KAMASZSZÁJAKKAL word +nofor correct "oggyásszk" "oggyászszk" For example poggyászszkennerek word +nofor correct "OGGYÁSSZK" "OGGYÁSZSZK" For example POGGYÁSZSZKENNEREK word +nofor correct "anavássza" "anavászsza" For example kanavászszagot word +nofor correct "ANAVÁSSZA" "ANAVÁSZSZA" For example KANAVÁSZSZAGOT word +nofor correct "ozmosszám" "ozmoszszám" For example kozmoszszámok word +nofor correct "OZMOSSZÁM" "OZMOSZSZÁM" For example KOZMOSZSZÁMOK word +nofor correct "álasszer" "álaszszer" For example válaszszerűséget word +nofor correct "ÁLASSZER" "ÁLASZSZER" For example VÁLASZSZERŰSÉGET word +nofor correct "okogássz" * For example zokogásszerű word +nofor correct "OKOGÁSSZ" * For example ZOKOGÁSSZERŰ word +nofor correct "ísszilv" "íszszilv" For example díszszilvának word +nofor correct "ÍSSZILV" "ÍSZSZILV" For example DÍSZSZILVÁNAK word +nofor correct "öcsöréssz" * +nofor correct "ÖCSÖRÉSSZ" * +nofor correct "ősszimbóluma" * For example ősszimbóluma word backtranslation not need apply szsz correction +nofor correct "Ősszimbóluma" * For example ősszimbóluma word backtranslation not need apply szsz correction +nofor correct "ŐSSZIMBÓLUMA" * Same the situation with ŐSSZIMBÓLUMA word +nofor correct "iasszű" "iaszszű" For example viaszszűrő word +nofor correct "IASSZŰ" "IASZSZŰ" For example VIASZSZŰRŐ word +nofor correct "evezéssz" * For example elnevezésszóval word +nofor correct "EVEZÉSSZ" * For example ELNEVEZÉSSZÓVAL word +nofor correct "erasszé" "eraszszé" For example teraszszék word +nofor correct "ERASSZÉ" "ERASZSZÉ" For example TERASZSZÉK word +nofor correct "verésszab" * For example verésszabadság word +nofor correct "Verésszab" * For example Verésszabadság word +nofor correct "VERÉSSZAB" * For example VERÉSSZABADSÁG word +nofor correct "lusszenz" "luszszenz" For example pluszszenzorok word +nofor correct "LUSSZENZ" "LUSZSZENZ" For example PLUSZSZENZOROK word +nofor correct "tílussz" * For example stílusszabadság, stílusszenzáció, stílusszünet words +nofor correct "TÍLUSSZ" * For example STÍLUSSZABADSÁG, STÍLUSSZENZÁCIÓ, STÍLUSSZÜNET words +nofor correct "itnesszál" "itneszszál" For example fitneszszálloda word +nofor correct "ITNESSZÁL" "ITNESZSZÁL" For example FITNESZSZÁLLODA word +nofor correct "ukrásszerv" "ukrászszerv" For example cukrászszervezet word +nofor correct "UKRÁSSZERV" "UKRÁSZSZERV" For example CUKRÁSZSZERVEZET word +nofor correct "kaliptusszá" "kaliptuszszá" For example eukaliptuszszálat word +nofor correct "KALIPTUSSZÁ" "KALIPTUSZSZÁ" For example EUKALIPTUSZSZÁLAT word +nofor correct "lelmezésszu" * For example élelmezésszuverenitás word +nofor correct "LELMEZÉSSZU" * For example ÉLELMEZÉSSZUVERENITÁS word +nofor correct "ulimássze" "ulimászsze" For example kulimásszerű word +nofor correct "ULIMÁSSZE" "ULIMÁSZSZE" For example KULIMÁSZSZERŰ word +nofor correct "násszobá" "nászszobá" For example nászszobához word +nofor correct "Násszobá" "Nászszobá" For example Nászszobához word +nofor correct "NÁSSZOBÁ" "NÁSZSZOBÁ" For example NÁSZSZOBÁHOZ word +nofor correct "fasszobo" "faszszobo" +nofor correct "Fasszobo" "Faszszobo" +nofor correct "FASSZOBO" "FASZSZOBO" +nofor correct "empésszesz" "empészszesz" For example csempészszeszből word +nofor correct "EMPÉSSZESZ" "EMPÉSZSZESZ" For example CSEMPÉSZSZESZBŐL word +nofor correct "ortikusszer" "ortikuszszer" For example portikuszszerű word +nofor correct "ORTIKUSSZER" "ORTIKUSZSZER" For example PORTIKUSZSZERŰ word +nofor correct "ínésszt" "ínészszt" For example színészsztori word +nofor correct "ÍNÉSSZT" "ÍNÉSZSZT" For example SZÍNÉSZSZTORI word #zszs backtranslated word corrections nofor correct "törzszsel" "törzzsel" diff --git a/braille/translate/src/phone/tables/hu-exceptionwords.cti b/braille/translate/src/phone/tables/hu-exceptionwords.cti index aacc2a87e..95c5abea4 100644 --- a/braille/translate/src/phone/tables/hu-exceptionwords.cti +++ b/braille/translate/src/phone/tables/hu-exceptionwords.cti @@ -26,7 +26,6 @@ #This file containing exception words with different need appliing general hungarian combined braille letters, for example cs, ccs, ty, tty rules #cs, ccs related exceptions -endnum -csúcs 36-146-346-146 noback pass2 @36-146-346-146-6 @36-146-346-146 partword arccs 1-1235-14-146 For example arccsont, harccsoport, harccselekmény words partword arcsérül = For example arcsérülés word @@ -156,6 +155,35 @@ always lánccsopo 123-4-1345-14-146-135-1234-135 For example lánccsoport word always bíbiccs 12-34-12-24-14-146 For example bíbiccsapat word always lánccser 123-4-1345-14-146-15-1235 For example lánccsere word always bérencsé 12-16-1235-15-1345-14-234-16 For example bérencséggel word +always arcsmink 1-1235-14-234-134-24-1345-13 For example arcsminkünk word +always lánccsom 123-4-1345-14-146-135-134 For example lánccsomag word +always porcsej 1234-135-1235-14-234-15-245 For example fülporcsejt, porcsejtjeit words +always percskál 1234-15-1235-14-234-13-4-123 For example percskáláján word +always boncseg 12-135-1345-14-234-15-1245 For example boncsegédet word +always láncstr 123-4-1345-14-234-2345-1235 For example blokláncstruktúrából, láncstruktúra words +always piacsemp 1234-24-1-146-15-134-1234 For example piacsempészésen word +always perccsász 1234-15-1235-14-146-4-156 For example perccsászárok word +always arcsimo 1-1235-14-234-24-134-135 For example arcsimogató word +always arcsimí 1-1235-14-234-24-134-34 For example arcsimító word +always arcstru 1-1235-14-234-2345-1235-136 For example arcstruktúra word +always arcsál 1-1235-14-234-4-123 For example arcsál word +always élcsor 16-123-14-234-135-1235 For example élcsor word +always perccse 1234-15-1235-14-146-15 For example perccsepp word +always hóláncspra 125-246-123-4-1345-14-234-1234-1235-1 For example hóláncspray word +always kedvencsé 13-15-145-1236-15-1345-14-234-16 For example kedvencség word +always orbánccs 135-1235-12-4-1345-14-146 For example orbánccsalád word +always arcstí 1-1235-14-234-2345-34 For example arcstílusok word +always porccs 1234-135-1235-14-146 For example porccserje, porccsontja word +always kredencsz 13-1235-15-145-15-1345-14-156 For example kredencszindrómának word +always kredencs 13-1235-15-145-15-14-234 For example kredencsarok word +always tengeliccs 2345-15-1345-1245-15-123-24-14-146 For example tengeliccsapatból word +begword arcsa 1-1235-14-234-1 For example arcsav word +always arcsép 1-1235-14-234-4-1234 For example arcsápadtsággal word +always ránccs 1235-4-1345-14-146 For example ránccsökkentő word +always lécst 123-16-14-234-2345 For example lécstruktúra word +always románcso 1235-135-134-4-1345-14-234-135 For example románcsorozata word +always percstíl 1234-15-1235-14-234-2345-34-123 For example percstílus word +always percstop 1234-15-1235-14-234-2345-135-1234 For example percstoppos word #csz letters related exceptions always pöcszong 1234-12345-146-126-135-1345-1245 For example pöcszongorás word @@ -173,6 +201,17 @@ always kulcszón 13-136-123-146-126-246-1345 For example kulcszóna word always tekercsz 2345-15-13-15-1235-146-126 For example tekercszaja word always ferenccsá 124-15-1235-15-1345-14-146-4 For example ferenccsákja word always csúcszöl 146-346-146-126-12345-123 For example csúcszöld word +always pöcszen 1234-12345-146-126-15-1345 For example pöcszenész word +always csúcszuh 146-346-146-126-136-125 For example csúcszuhanás word +always cellazacs 14-15-123-123-1-126-1-146 +always harcsik 125-1-1235-14-234-24-13 For example harcsiker, párharcsikerét words +always perccs 1234-15-1235-14-146 For example perccsillagok word +always ilincsz 24-123-24-1345-146-126 For example kilincszárat word +always szultáncs 156-136-123-2345-4-1345-146 For example szultáncsináló word +always percsej 1234-15-1235-14-234-15-245 For example percsejtek word +always percsorai 1234-15-1235-14-234-135-1235-1-24 For example percsorai word +always percsoránál 1234-15-1235-14-234-135-1235-4-1345-4-123 For example percsoránál word +always arcspor 1-1235-14-234-1234-135-1235 For example arcsport word #gy, ggy related exceptions #This exception section containing word parts and full words with need marking ggy letter pairs with single g and gy braille dot combination @@ -284,7 +323,7 @@ partword hűség = For example hűséggyűrűsök word related need this general partword maggyűj 134-1-1245-1456-23456-245 For example maggyűjtemény word partword népesség = For example népességgyarapodás word related need this exception partword örökség = For example örökséggyűjteményben word related need this exception -begword szeggyá 156-15-1245-1456-4 For example szeggyár word +always szeggyá 156-15-1245-1456-4 For example szeggyár word partword tisztséggy 2345-24-156-2345-234-16-1245-1456 For example tisztséggyűjtemény word begword szalaggyakor 156-1-123-1-1245-1456-1-13-135-1235 For example szalaggyakorlatát word partword szalaggyűj 156-1-123-1-1245-1456-23456-245 For example szalaggyűjteménye, hangszalaggyűjtemény, lyukszalaggyűjtemény words related need this general exception @@ -435,6 +474,94 @@ always magyarsággy 134-1-1456-1-1235-234-4-1245-1456 For example magyarsággyű always taggyárt 2345-1-1245-1456-4-1235-2345 For example taggyártó word always éggyön 16-1245-1456-12345-1345 For example jéggyöngy word word meggyi 134-15-1456-1456-24 For example single meggyi word need writing different output +always képességgy 13-16-1234-15-234-234-16-1245-1456 For example képességgyorsítás word +always meggygé 134-15-1456-1456-1245-16 For example meggygél word +always izzadtsággy 24-126-126-1-145-2345-234-4-1245-1456 For example izzadtsággyűjtő word +always minőséggy 134-24-1345-12456-234-16-1245-1456 For example minőséggyengítés word +always személyiséggy 156-15-134-16-456-24-234-16-1245-1456 For example személyiséggyurmázást word +always egészséggy 15-1245-16-156-234-16-1245-1456 For example egészséggyerekkori word +always emberiséggy 15-134-12-15-1235-24-234-16-1245-1456 For example emberiséggyűlölő word +always dalszöveggy 145-1-123-156-12345-1236-15-1245-1456 For example dalszöveggyűjtemény word +always zuggyógy 126-136-1245-1456-246-1456 For example zuggyógyszerfüggők word +always gyurgyalaggy 1456-136-1235-1456-1-123-1-1245-1456 For example gyurgyalaggyűrűzés word +always nadrággy 1345-1-145-1235-4-1245-1456 For example nadrággyár word +always műveltséggy 134-23456-1236-15-123-2345-234-16-1245-1456 For example műveltséggyanús word +always tevékenységgy 2345-15-1236-16-13-15-1246-234-16-1245-1456 For example tevékenységgyűrű word +always igazgatósággy 24-1245-1-126-1245-1-2345-246-234-4-1245-1456 For example igazgatósággyilkos word +always meggyelő 134-15-1456-1456-15-123-12456 For example meggyelőállítás word +always ócskasággy 246-146-13-1-234-4-1245-1456 For example ócskasággyűjtemény word +always igazságossággy 24-1245-1-126-234-4-1245-135-234-234-4-1245-1456 For example igazságossággyár word +always analóggy 1-1345-1-123-246-1245-1456 For example analóggyűjtemény word +always parlaggy 1234-1-1235-123-1-1245-1456 For example parlaggyújtogató word +always zuggyárt 126-136-1245-1456-4-1235-2345 For example zuggyártásban word +always taggyűjt 2345-1-1245-1456-23456-245-2345 For example taggyűjtési word +always veszettséggy 1236-15-156-15-2345-2345-234-16-1245-1456 For example veszettséggyanús word +always meggyd 134-15-1456-1456-145 For example meggydarabokkal, meggydrazsé words +always foggyó 124-135-1245-1456-246 For example foggyógyászat, foggyógyítás word +always nemzetiséggy 1345-15-134-126-15-2345-24-234-16-1245-1456 For example nemzetiséggyűlölő word +always nézettséggy 1345-16-126-15-2345-2345-234-16-1245-1456 For example nézettséggyár word +always bátorsággy 12-4-2345-135-1235-234-4-1245-1456 For example bátorsággyűjtés word +always legénységgy 123-15-1245-16-1246-234-16-1245-1456 For example legénységgyilkos word +always honvédséggy 125-135-1345-1236-16-145-234-16-1245-1456 For example honvédséggyakorlat word +always legesleggyor 123-15-1245-15-234-123-15-1245-1456-135-1235 For example legesleggyorsabb word +always göngyöleggy 1245-12345-1345-1456-12345-123-15-1245-1456 For example göngyöleggyártás word +always löveggy 123-12345-1236-15-1245-1456 For example löveggyilkos word +always hanggyer 125-1-1345-1245-1456-15-1235 For example hanggyertya word +always döggyűj 145-12345-1245-1456-23456-245 For example döggyűjtemény word +always joggyar 245-135-1245-1456-1-1235 For example joggyarapító, joggyarmatosító words +always joggyőz 245-135-1245-1456-12456-126 For example joggyőzelem word +always céggy 14-16-1245-1456 For example céggyártás, céggyűjtemény word +always egyéniséggy 15-1456-16-1345-24-234-16-1245-1456 For example egyéniséggyilkos word +always nedvességgy 1345-15-145-1236-15-234-234-16-1245-1456 For example nedvességgyöngy, nedvességgyűjtő words +always pékséggy 1234-16-13-234-16-1245-1456 For example pékséggyógyulás word +always kiborggy 13-24-12-135-1235-1245-1456 For example kiborggyártó, kiborggyár words +always általánossággy 4-123-2345-1-123-4-1345-135-234-234-4-1245-1456 For example általánossággyűjtemény word +always barátsággy 12-1-1235-4-2345-234-4-1245-1456 For example barátsággyűrűt word +always bloggy 12-123-135-1245-1456 For example bloggyilkos, bloggyűjtemény, bloggyűjtő words +always csomaggy 146-135-134-1-1245-1456 For example csomaggyár, csomaggyorsítótár, csomaggyűjtés words +always döggyűj 145-12345-1245-1456-23456-245 For example döggyűjtemény word +always gazdasággy 1245-1-126-145-1-234-4-1245-1456 For example gazdasággyilkos word +always geggyű 1245-15-1245-1456-23456 For example geggyűjtemény word +always haraggy 125-1-1235-1-1245-1456 For example haraggyűjtögetés word +always ifjúsággy 24-124-245-346-234-4-1245-1456 For example ifjúsággyógyászati word +always ággyil 4-1245-1456-24-123 For example ággyilkos, ifjúsággyilkos, szabadsággyilkos words +always ggyár 1245-1456-4-1235 For example igassággyártás word +always reggyűr 1235-15-1245-1456-23456-1235 For example kéreggyűrődés, méreggyűrű words +always kisebbséggy 13-24-234-15-12-12-234-16-1245-1456 For example kisebséggyűlöletét word +always ggyönyör 1245-1456-12345-1246-12345-1235 For example legesleggyönyörűbb word +always lózunggy 123-246-126-136-1345-1245-1456 For example lózunggyűjtemény word +always meddőséggy 134-15-145-145-12456-234-16-1245-1456 For example meddőséggyanús word +always meggyözön 134-15-1456-1456-12345-126-12345-1345 For example meggyözön word +always léggyőz 123-16-1245-1456-12456-126 For example léggyőzelmet word +always nyereséggy 1246-15-1235-15-234-16-1245-1456 For example nyereséggyakorlatát word +always pudinggy 1234-136-145-24-1345-1245-1456 For example pudinggyümölcs word +always ággyógy 4-1245-1456-246-1456 For example sárgasággyógyítók, világgyógyszer words +always segítséggy 234-15-1245-34-2345-234-16-1245-1456 For example segítséggyújtás word +always serleggy 234-15-1235-123-15-1245-1456 For example serleggyűjtés word +always zuggy 126-136-1245-1456 For example szájzuggyulladás, zuggyógyszer words +always szalaggy 156-1-123-1-1245-1456 For example szalaggyulladás, szalaggyengeség words +always taggyű 2345-1-1245-1456-2345 For example taggyűlési word +always ügyészséggy 12356-1456-16-156-234-16-1245-1456 For example ügyészséggyújtogató word +always hatékonysággy 125-1-2345-16-13-135-1246-234-4-1245-1456 For example hatékonysággyilkos word +always maggyú 134-1-1245-1456-346 For example vasmaggyújtó word +always barátsággy 12-1-1235-4-2345-234-4-1245-1456 For example barátsággyűrű, barátsággyilkos word +always orvossággy 135-1235-1236-135-234-234-4-1245-1456 For example orvossággyűjtő word +always szmoggy 156-134-135-1245-1456 For example szmoggyűrű word +always meggyalj 134-15-1456-1456-1-123-245 For example meggyalja word +always prológgy 1234-1235-135-123-246-1245-1456 For example prológgyőzelmével word +always jéggy 245-16-1245-1456 For example jéggyűjtő word +always bajnoksággy 12-1-245-1345-135-13-234-4-1245-1456 For example bajnoksággyőztes word +always meggyala 134-15-1456-1456-1-123-1 For example meggyalap word +always meggyire 134-15-1456-1456-24-1235-15 For example meggyire word +always hézaggy 125-16-126-1-1245-1456 For example farkashézaggyökér word +always társasággy 2345-4-1235-234-1-234-4-1245-1456 For example társasággyakoriság word +always mesterséggy 134-15-234-2345-15-1235-234-16-1245-1456 For example mesterséggyűjtemény word +always függőséggy 124-12356-1245-1245-12456-234-16-1245-1456 For example függőséggyanús word +always ringgy 1235-24-1345-1245-1456 For example ringgyőzelem word +always bőséggy 12-12456-234-16-1245-1456 For example bőséggyakorlat word +always taggyó 2345-1-1245-1456-246 For example taggyógyszertár word +always termelékenységgy 2345-15-1235-134-15-123-16-13-15-1246-234-16-1245-1456 For example termelékenységgyilkos word +always szüzességgy 156-12356-126-15-234-234-16-1245-1456 For example szüzességgyilkos word #ny, nny related exceptions #Following exception parts need marking nny letter pairs with single n and nny braille dot combinations @@ -584,6 +711,31 @@ begword kannyul 13-1-1345-1246-136-123 For example kannyulakat word always pánnyuga 1234-4-1345-1246-136-1245-1 For example pánnyugat word always önnyak 12345-1345-1246-1-13 For example önnyakába word always önnyal 12345-1345-1246-1-123 For example önnyalással word +always génnyom 1245-16-1345-1246-135-134 For example génnyom word +always magánnyilv 134-1-1245-4-1345-1246-24-123-1236 For example magánnyilvántartás word +always planktonny 1234-123-1-1345-13-2345-135-1345-1246 For example planktonnyi word +always pavilonny 1234-1-1236-24-123-135-1345-1246 For example pavilonnyi word +always katlanny 13-1-2345-123-1-1345-1246 For example katlannyitány word +always édennyal 16-145-15-1345-1246-1-123 For example édennyalábokra word +always szalonnyil 156-1-123-135-1345-1246-24-123 For example szalonnyilas word +endword alonnyi 1-123-135-1345-1246-24 For example fodrásszalonnyi word +always szégyenny 156-16-1456-15-1345-1246 For example szégyennyakörv word +always londonny 123-135-1345-145-135-1345-1246 For example londonnyi word +always fotonny 124-135-2345-135-1345-1246 Fotonnyaláb word +always fűtésszezonny 124-23456-2345-16-234-156-15-126-135-1345-1246 For example fűtésszezonnyi word +always patronny 1234-1-2345-1235-135-1345-1246 For example patronnyi word +always banánny 12-1-1345-4-1345-1246 For example banánnyi, banánnyársak word +always nikotinny 1345-24-13-135-2345-24-1345-1246 For example nikotinnyalókák word +always kanonny 13-1-1345-135-1345-1246 For example kanonnyi word +always ikonny 24-13-135-1345-1246 For example ikonnyomkodás word +always nejlonny 1345-15-245-123-135-1345-1246 For example nejlonnyilas word +always démonny 145-16-134-135-1345-1246 For example démonnyírás word +always otthonny 135-2345-2345-125-135-1345-1246 For example otthonnyaralás, otthonnyit, otthonnyújtó words +always mokaszinny 134-135-13-1-156-24-1345-1246 For example mokaszinnyomok word +always klónnyul 13-123-246-1345-1246-136-123 For example klónnyulaim word +always zsetonnyí 345-15-2345-135-1345-1246-34 For example zsetonnyílás word +always önnyálá 12345-1345-1246-4-123-4 For example önnyálától word +always feromonny 124-15-1235-135-134-135-1345-1246 For example feromonnyom word #ly related exceptions #This exception parts need marking ly letters with two single l and y letter combination @@ -597,6 +749,7 @@ partword grizzly = For example grizzlymedvék beginning word exception, or apagr word grizly = For example grizly single word word grizzly = For example grizzly single word exception begword lyukaszász 456-136-13-1-234-126-4-156 For example lyukaszászló-adományozással word +always iparoszá 24-1234-1-1235-135-234-126-4 For example iparoszászló word #sz letter pair related exceptions #This exception list containing words or word parts need using single s and z letter dot combinations @@ -663,6 +816,13 @@ always légzés 123-16-1245-126-16-234 For example légzésszám, légzésszerű partword szavar 234-126-1-1236-1-1235 General exception with handles more szavar style words always meglepetés = For example meglepetésszoftver word need this exception always vaszy 1236-1-156-13456 +always üvegnyílászár 12356-1236-15-1245-1246-34-123-4-234-126-4-1235 For example üvegnyílászárókra word +always földrengész 124-12345-123-145-1235-15-1345-1245-16-234-126 For example földrengészónák word +always számítógépeszen 156-4-134-34-2345-246-1245-16-1234-15-234-126-15-1345 For example számítógépeszene word +always gyömöszöld 1456-12345-134-12345-156-12345-123-145 For example belegyömöszöld word +always tudászón 2345-136-145-4-234-126-246-1345 For example tudászóna word +always verszárl 1236-15-1235-234-126-4-1235-123 For example verszárlat word +always pillantászuh 1234-24-123-123-1-1345-2345-4-234-126-136-1235 For example pillantászuhatag word #szs related exceptions #This exception list containing some words with need using single s and zs braille dots @@ -685,7 +845,6 @@ partword bukás = For example bukásszámba word partword település = For example települészónájára word partword utasítás = For example törzsutasításszavakkal, utasításszavakkal related words need this exception partword turizmussz 2345-136-1235-24-126-134-136-234-156 For example turizmusszektor, turizmusszerű words -begword adászár 1-145-4-234-126-4-1235 For example adászárásig word begword enyves 15-1246-1236-15-234 For example enyveszsinór word related need this exception partword kortárs = For example kortárszenei word related need this general exception always tervezészs 2345-15-1235-1236-15-126-16-234-345 For example tervezészsebpénz word @@ -728,6 +887,79 @@ always villamoszseb 1236-24-123-123-1-134-135-234-345-15-12 For example villamos always nyerszsí 1246-15-1235-234-345-34 For example nyerszsír word always fogyasztássz 124-135-1456-1-156-2345-4-234-156 For example fogyasztásszerű word always fogyasztász 124-135-1456-1-156-2345-4-234-126 For example fogyasztászuhanás word +always matematikuszs 134-1-2345-15-134-1-2345-24-13-136-234-345 For example matematikuszseni word +always fizetőszón 124-24-126-15-2345-12456-234-126-246-1345 For example fizetőszóna word +always ílászár 34-123-4-234-126-4-1235 For example ablaknyílászárókra word +always részáró 1235-16-234-126-4-1235-246 For example részáró word +always dobozsár 145-135-12-135-126-234-4-1235 For example dobozsárkány word +always riasztásziv 1235-24-1-156-2345-4-234-126-24-1236 For example riasztászivatar word +begword prószavari 1234-1235-246-156-1-1236-1-1235-24 For example prószavariáció word +always luxuszong 123-136-1346-136-234-126-135-1345-1245 For example luxuszongora word +always nyomászó 1246-135-134-4-234-126-246 For example nyomászónáinak word +always táltoszen 2345-4-123-2345-135-234-126-15-1345 For example táltoszenei word +always prímászen 1234-1235-34-134-4-234-126-15-1345 For example prímászene, prímászenével word +always fétiszen 124-16-2345-24-234-126-15-1345 For example fétiszenekar word +always kolbászoszt 13-135-123-12-4-156-135-156-2345 For example kolbászosztogató word +always tőkésszi 2345-12456-13-16-234-156-24 For example Tőkéssziget, tőkésszigeti, Tőkésszigetről words +always mókusza 134-246-13-136-234-126-1 For example mókuszaj word +always stíluszen 234-2345-34-123-136-234-126-15-1345 For example stíluszenésznek word +always fejlesztészá 124-15-245-123-15-156-2345-16-234-126-4 For example fejlesztészáró word +always húszabál 125-346-234-126-1-12-4-123 For example húszabálók word +always verszene 1236-15-1235-234-126-15-1345-15 For example verszene word +always pulzusz 1234-136-123-126-136-234-126 For example pulzuszónában word +always verszará 1236-15-1235-234-126-1-1235-4 For example verszarándoklat word +always töltész 2345-12345-123-2345-16-234-126 For example töltészápor word +always adászárá 1-145-4-234-126-4-1235-4 For example adászárás word +always kiadászá 13-24-1-145-4-234-126-4 For example kiadászárolás word +always döntészuh 145-12345-1345-2345-16-234-126-136-125 For example döntészuhatag word +always csapászó 146-1-1234-4-234-126-246 For example csapászónának word +always páncéloszt 1234-4-1345-14-16-123-135-156-2345 For example páncélosztály, +always dartszsen 145-1-1235-2345-234-345-15-1345 For example dartszseni word +always szaklat 234-126-1-13-123-1-2345 For example kortárszaklatás, víruszaklatás words +always szsen 234-345-15-1345 For example kortárszseni, orvoszseni words +always járász 245-4-1235-4-234-126 For example járászavar word +always ízspek 34-126-234-1234-15-13 For example ízspektrum word +always frízsá 124-1235-34-126-234-4 For example frízsáv word +always sztriptízsh 156-2345-1235-24-1234-2345-34-126-234-125 For example sztriptízshow word +always vaszk 1236-1-156-13 For example Vaszkóné word +begword adászón 1-145-4-234-126-246-1345 For example adászóna word +always rágász 1235-4-1245-4-234-126 For example rágászaj word +always luxusz 123-136-1346-136-234-126 For example luxuszárkájáról, luxuszöldség words +always bázisz 12-4-126-24-234-126 For example báziszenekarként word +always verszaj 1236-15-1235-234-126-1-245 For example verszajlásait word +always ministránssz 134-24-1345-24-234-2345-1235-4-1345-234-156 For example ministránsszövetség word +always ministránsz 134-24-1345-24-234-2345-1235-4-1345-234-126 For example ministránszarándoklat word +always üstökösz 12356-234-2345-12345-13-12345-234-126 For example üstököszónára word +always luxusz 12-136-1346-136-234-126 For example luxuszárvány word +always szekuszs 156-15-13-136-234-345 For example szekuszsiráf word +always váltász 1236-4-123-2345-4-234-126 For example váltászuhatag word +always előadász 15-123-12456-1-145-4-234-126 For example előadászárás, előadászenei words +always hivatász 125-24-1236-1-2345-4-234-126 For example hivatászarándoklat word +always kiállítász 13-24-4-123-123-34-2345-4-234-126 For example kiállítászáró word +always ütközész 12356-2345-13-12345-126-16-234-126 For example ütközészóna word +always edzész 15-145-126-16-234-126 For example edzészárás word +always főzész 124-12456-126-16-234-126 For example főzészenéhez word +always alkalmazászá 1-123-13-1-123-134-1-126-4-234-126-4 For example alkalmazászár word +always tudószs 2345-136-145-246-234-345 For example tudószsenik word +always tudósz 2345-136-145-246-234-126 For example tudószenekar word +always dobozsa 145-135-12-135-126-234-1 For example dobozsablon word +always dobozsé 145-135-12-135-126-234-16 For example dobozsérülés word +always dobozso 145-135-12-135-126-234-135 For example dobozsorolás word +always dobozsp 145-135-12-135-126-234-1234 For example dobozspórolás word +always honfoglalász 125-135-1345-124-135-1245-123-1-123-4-234-126 For example honfoglalászáró word +always érzészá 16-1235-126-16-234-126-4 For example érzészárvány word +always haszu 125-1-234-126-136 For example haszug word +always gyalogoszl 1456-1-123-135-1245-135-156-123 For example gyalogoszlopok word +always őszsu 12456-234-345-136 For example őszsurló word +always perverzs 1234-15-1235-1236-15-1235-126-234 For example perverzség word +always oviszs 135-1236-24-234-345 For example oviszsúrja word +always őszebr 12456-234-126-15-12-1235 For example őszebrák word +always tűrészó 2345-23456-1235-16-234-126-246 For example tűrészóna word +always alvászat 1-123-1236-4-156-1-2345 For example alvászat word +always hajtászs 125-1-245-2345-4-234-345 For example hajtászsugorító word +always hajtász 125-1-245-2345-4-234-126 For example hajtászaj word +always kerékpároszt 13-15-1235-16-13-1234-4-1235-135-156-2345 For example kerékpárosztály word +always kongresszusz 13-135-1345-1245-1235-15-156-156-136-234-126 For example kongresszuszene word #ssz related exceptions #Following exception words and word parts need writing one s and one sz braille letter @@ -987,7 +1219,7 @@ begword lőréssz 123-12456-1235-16-234-156 For example lőrésszerű word partword hadásszag 125-1-145-4-234-156-1-1245 For example rothadásszag word partword omlásszag 135-134-123-4-234-156-1-1245 for example bomlásszag word begword szaglássz 156-1-1245-123-4-156-156 For example szaglásszék word -word résszerű 1235-16-234-156-15-1235-23456 résszerű is a special exception word +always résszerű 1235-16-234-156-15-1235-23456 résszerű is a special exception word word résszerűen 1235-16-234-156-15-1235-23456-15-1345 For example résszerűen word begword körössz 13-12345-1235-12345-234-156 For example körösszakál, körösszakáli words partword csattanásszer 146-1-2345-2345-1-1345-4-234-156-15-1235 For example csattanásszerű word @@ -1916,6 +2148,328 @@ always hívásza 125-34-1236-4-234-126-1 For example hívászaj exception always lovaszar 123-135-1236-1-234-126-1-1235 For example lovaszarándok word always rasszizmussz 1235-1-156-156-24-126-134-136-234-156 For example rasszizmusszakértő word always ütőszen 12356-2345-12456-234-126-15-1345 For example ütőszenei word +always ritkulássz 1235-24-2345-13-136-123-4-234-156 For example csontritkulásszűrés word +begword sorsszikl 234-135-1235-234-156-24-13-123 For example sorssziklák word +begword sorsszob 234-135-1235-234-156-135-12 For example sorsszobrok word +begword sorsszim 234-135-1235-234-156-24-134 For example sorsszimbólum word +begword sorsszur 234-135-1235-234-156-136-1235 For example sorsszurdok word +always borulássz 12-135-1235-136-123-4-234-156 For example borulásszimulátor word +always elektronikuszen 15-123-15-13-2345-1235-135-1345-24-13-136-234-126-15-1345 For example elektronikuszene word +always intézkedéssz 24-1345-2345-16-126-13-15-145-16-234-156 For example intészkedésszabvány +always kivégezéssz 13-24-1236-16-1245-15-126-16-234-156 For example kivégezésszerű word +always melegedéssz 134-15-123-15-1245-15-145-16-234-156 For example bemelegedésszabályzóval word +always szivárványoszá 156-24-1236-4-1235-1236-4-1246-135-234-126-4 For example szivárványoszászló word +always fogyássz 124-135-1456-4-234-156 For example fogyásszakértő word +begword társzent 2345-4-1235-156-15-1345-2345 For example társzentelők word +begword társzen 2345-4-1235-234-126-15-1345 For example társzenekar word +always hősszin 125-12456-234-156-24-1345 For example szuperhősszindróma word +always hősszto 125-12456-234-156-2345-135 For example szuperhősszindróma word +always vonószá 1236-135-1345-246-156-4 For example vonószárára word +always húzássz 125-346-126-4-234-156 For example lehúzásszagú word +always jelentész 245-15-123-15-1345-2345-16-234-126 For example jelentészaj, jelentészavarás word +always billenéssz 12-24-123-123-15-1345-16-234-156 For example billenésszabályozás word +always keléssz 13-15-123-16-234-156 For example kelésszám word +always ősszén 12456-234-156-16-1345 For example ősszél word +always ősszél 12456-234-156-16-123 For example ősszén word +always sebzéssz 234-15-12-126-16-234-156 For example sebzésszorzók word +always keveredéssz 13-15-1236-15-1235-15-145-16-234-156 For example keveredésszerű word +always étkezéssz 16-2345-13-15-126-16-234-156 For example étkezésszám word +always kapuszicc 13-1-1234-136-234-126-24-14-14 For example kapusziccer word +always fagyossz 124-1-1456-135-234-156 For example fagyosszeder word +always fejéssz 124-15-245-16-234-156 For example fejésszám word +always fényűzéssz 124-16-1246-23456-126-16-234-156 For example fényűzésszámba word +always rongálássz 1235-135-1345-1245-4-123-4-234-156 For example rongálásszerű word +always ékelődéssz 16-13-15-123-12456-145-16-234-156 For example ékelődésszerű word +always szopássz 156-135-1234-4-234-156 For example szopásszerű word +always entitássz 15-1345-2345-24-2345-4-234-156 For example entitásszintű word +always érésszá 16-1235-16-234-156-4 For example érésszámú word +always kölcsönzéssz 13-12345-123-146-12345-1345-126-16-234-156 For example kölcsönzésszám word +always hasszé 125-1-234-156-16 For example sertéshasszél word +always ízléssz 34-126-123-16-234-156 For example ízlésszerű, ízlésszintje words +always ötössz 12345-2345-12345-234-156 For example ötösszaltó, ötösszámú word +always megállapodássz 134-15-1245-4-123-123-1-1234-135-145-4-234-156 For example megállapodásszegésére words +always meggyőződéssz 134-15-1245-1456-12456-126-12456-145-16-234-156 For example meggyőződésszabadság word +always zenésszín 126-15-1345-16-234-156-34-1345 For example zenésszínházi word +always egressze 15-1245-1235-15-234-156-15 For example egresszem word +always egresszó 15-1245-1235-15-234-156-246 For example egresszósz word +begword egresszí 15-1245-1235-15-234-156-34 For example egresszív beginning words +always egresszö 15-1245-1235-15-234-156-12345 For example egresszörp word +always uborkássz 136-12-135-1235-13-4-234-156 For example uborkásszendvics word +always sorsszöv 234-135-1235-234-156-12345-1236 For example sorsszövő word +always ivássz 24-1236-4-234-156 For example ivásszünetet word +always nyersszenny 1246-15-1235-234-156-15-1246-1246 For example nyersszennyvíz word +always ivarzássz 24-1236-1-1235-126-4-234-156 For example ivarzásszinkronizálás word +always festékessz 124-15-234-2345-16-13-15-234-156 For example festékesszőnyeg word +always készítéssz 13-16-156-34-2345-16-234-156 For example filmkészítéssztrájk word +always hússziv 125-346-234-156-24-1236 For example hússzivacs word +always bádogossz 12-4-145-135-1245-135-234-156 For example bádogosszerkezetek word +always jelzéssz 245-15-123-126-16-234-156 For example jelzésszámú word +always együttessz 15-1456-12356-2345-2345-15-234-156 For example együttesszínművész word +always praxissz 1234-1235-1-1346-24-234-156 For example praxisszám, praxisszerződés, praxisszoftverben words +always hússzirm 125-346-234-156-24-1235-134 For example hússzirmain word +always fenyvessz 124-15-1246-1236-15-234-156 For example fenyvesszálló, fenyvesszéli words +always gyorsulássz 1456-135-1235-234-136-123-4-234-156 For example gyorsulásszenzor word +always nyákossz 1246-4-13-135-234-156 For example nyákosszerű word +always nyálkássz 1246-4-123-13-4-234-156 For example nyálkásszerű word +always bontássz 12-135-145-2345-4-234-156 For example bontásszakmák, bontásszerű word +always milliárdossz 134-24-123-123-24-4-1235-145-135-234-156 For example milliárdosszál word +always ócskavassz 246-146-13-1-1236-1-234-156 For example ócskavassziget word +always szellentéssz 156-15-123-123-15-1345-2345-16-234-156 For example szellentésszagú word +always hasszobr 125-1-234-156-135-12-1235 For example hasszobrászat word +always kanálissz 13-1-1345-4-123-24-234-156 For example kanálisszájú word +always drogossz 145-1235-135-1245-135-234-156 For example drogosszemüveg word +always terheléssz 2345-15-1235-125-15-123-16-234-156 For example terhelésszint word +always inhalációssz 14-1345-125-1-123-4-14-24-246-234-156 For example inhalációsszteroid word +always büntetéssz 12-12356-1345-2345-15-2345-16-234-156 For example büntetésszabásának word +always fotográfussz 124-135-2345-135-1245-1235-4-124-136-234-156 For example fotográfusszakma word +always navigációssz 1345-1-1236-24-1245-4-14-24-246-234-156 For example navigációsszoftver word +always borsszür 12-135-1235-234-156-12356-1235 For example borsszüret word +always szexuálissz 156-15-1346-136-4-123-24-234-156 +always évesszal 16-1236-15-234-156-1-123 For example évesszaldó word +always óvodássz 246-1236-135-145-4-234-156 For example óvodásszökése word +always tárgyalássz 2345-4-1235-1456-1-123-4-234-156 For example tárgyalásszimulációk word +always melóssz 134-15-123-246-234-156 For example melósszállító word +always melegítéssz 134-15-123-15-1245-34-2345-16-234-156 For example bemelegítésszagúan word +always statikussz 234-2345-1-2345-24-13-136-234-156 For example statikusszakértő word +always tömörítéssz 2345-12345-134-12345-1235-34-2345-16-234-156 For example tömörítésszabályozás word +always elkeseredéssz 15-123-13-15-234-15-1235-15-145-16-234-156 For example elkeseredésszagot word +always gyermektársszak 1456-15-1235-134-15-13-2345-4-1235-234-156-1-13 For example gyermektársszakmák word +always optikussz 135-1234-2345-24-13-136-234-156 For example optikusszaküzletben word +always elmélkedéssz 15-123-134-16-123-13-15-145-16-234-156 For example elmélkedésszerű word +always aromássz 1-1235-135-134-4-234-156 For example aromásszénhidrogén word +always füstölgéssz 124-12356-234-2345-12345-123-1245-16-234-156 For example füstölgésszerű word +always elkövetéssz 15-123-13-12345-1236-15-2345-16-234-156 For example elkövetésszerű, elkövetésszemle word +always tömítéssz 2345-12345-134-34-2345-16-234-156 For example tömítésszettek word +always megadássz 134-15-1245-1-145-4-234-156 For example megadásszakértő word +always digitálisszöv 145-24-1245-24-2345-4-123-24-234-156-12345-1236 For example digitálisszöveg word +always hasszűkít 125-1-234-156-23456-13-34-2345 For example hasszűkítés word +always csillapítássz 146-24-123-123-1-1234-34-2345-4-234-156 For example csillapításszabályozás word +always értelmesszer 16-1235-2345-15-123-134-15-234-156-15-1235 For example értelmesszerű word +always szipogássz 156-24-1234-135-1245-4-234-156 For example szipogásszezon word +always keramikussz 13-15-1235-1-134-24-13-136-234-156 For example keramikusszakma word +always kritikussz 13-1235-24-2345-24-13-136-234-156 For example kritikusszövetség word +always vajákossz 1236-1-245-4-13-135-234-156 For example vajákosszer word +always származássz 156-4-1235-134-1-126-4-234-156 For example származásszórás word +always leépítéssz 123-15-16-1234-34-2345-16-234-156 For example leépítésszóval word +always kvalitásszin 13-1236-1-123-24-2345-4-234-156-24-1345 For example kvalitásszintű word +always humanitáriussz 125-136-134-1-1345-24-2345-4-1235-24-136-234-156 For example humanitáriusszervezet word +always átveréssz 4-2345-1236-15-1235-16-234-156 For example átveréssztorit word +always filmessztr 124-24-123-134-15-234-156-2345-1235 For example filmessztrájk word +always kopássz 13-135-1234-4-234-156 For example kopásszint word +always szennyezéssz 156-15-1246-1246-15-126-16-234-156 For example szennyezésszint word +always lázadássz 123-4-126-1-145-4-234-156 For example lázadásszítás word +always hencegéssz 125-15-1345-14-15-1245-16-234-156 For example hencegésszerű word +always kerepléssz 13-15-1235-15-1234-123-16-234-156 For example kereplésszerű word +always teológussz 2345-15-135-123-246-1245-136-234-156 For example teológusszakának word +always támogatássz 2345-4-134-135-1245-1-2345-4-234-156 For example támogatásszűkítésről word +always tudományossz 2345-136-145-135-134-4-1246-135-234-156 For example tudományosszakember word +always zeneszerzéssz 126-15-1345-15-156-15-1235-126-16-234-156 For example zeneszerzésszakon word +always lesszám 123-15-234-156-4-134 For example lesszám, lesszámhoz words +always lábassz 123-4-12-1-234-156 For example lábasszínház word +always tejessz 2345-15-245-15-234-156 For example tejesszék word +always törlesztéssz 2345-12345-1235-123-15-156-2345-16-234-156 For example törlesztésszüneteltetés word +always üvegessz 12356-1236-15-1245-15-234-156 For example üvegesszakma word +always helyettessz 125-15-456-15-2345-2345-15-234-156 For example helyettesszent word +always megbízássz 134-15-1245-12-34-126-4-234-156 For example megbízásszám word +always szimfonikuszen 156-24-134-124-135-1345-24-13-136-234-126-15-1345 For example szimfonikuszene word +always törésszer 2345-12345-1235-16-234-156-15-1235 For example törésszerű word +always fogamzássz 124-135-1245-1-134-126-4-234-156 For example fogamzásszabályozási word +always hússzilár 125-346-234-156-24-123-4-1235 For example hússzilárdsága word +always kockászá 13-135-14-13-4-234-126-4 For example kockászászló word +always elvtárssz 15-123-1236-2345-4-1235-234-156 For example elvtársszemély word +always rigmussz 1235-24-1245-134-136-234-156 For example rigmusszöveg word +always cipőssz 14-24-1234-12456-234-156 For example cipősszekrény word +always hússzenny 125-346-234-156-15-1246-1246 For example hússzennyezés word +always uszítássz 136-156-34-2345-4-234-156 For example uszításszerű, uszításszabadság word +always bőgéssz 12-12456-1245-16-234-156 For example bőgésszezon word +always hajlítássz 125-1-245-123-34-2345-4-234-156 For example hajlításszámot word +always válogatássz 1236-4-123-135-1245-1-2345-4-234-156 For example válogatásszámban word +always felfogássz 124-15-123-124-135-1245-4-234-156 For example felfogásszemlélet word +always affektussz 1-124-124-15-13-2345-136-234-156 For example affektusszabályozás word +always szerepléssz 156-15-1235-15-1234-123-16-234-156 For example szereplésszámot word +always díszítéssz 145-34-156-34-2345-16-234-156 For example díszítésszavazás word +always asszisztenssz 1-156-156-24-156-2345-15-1345-234-156 For example asszisztensszámot word +always gyűjtéssz 1456-23456-245-2345-16-234-156 For example gyűjtésszerű, gyűjtésszemét words +always pelussz 1234-15-123-136-234-156 For example pelussztrájk word +always sodrássz 234-135-145-1235-4-234-156 For example sodrásszerű word +always szőrössző 156-12456-1235-12345-234-156-12456 For example szőrösszőnyeg word +always koefficienssz 13-135-15-124-124-24-14-24-15-1345-234-156 For example koefficiensszámítás word +always hitelezéssz 125-24-2345-15-123-15-126-16-234-156 For example hitelezésszegény word +always búcsúzássz 12-346-1246-346-126-4-234-156 For example búcsúzásszaga word +always felszólalássz 124-15-123-156-246-123-1-123-4-234-156 For example felszólalásszámmal word +always reagálássz 1235-15-1-1245-4-123-4-234-156 For example reagálásszint word +always klasszissz 13-123-1-156-156-24-234-156 For example klasszisszint word +always aszkézissz 1-156-13-16-126-24-234-156 For example aszkézisszintű word +always megszűnéssz 134-15-1245-156-23456-1345-16-234-156 For example megszűnésszám word +always árkussz 4-1235-13-136-234-156 For example árkusszám word +always fizetéssz 124-24-126-15-2345-16-234-156 For example fizetésszám, fizetésszerű words +always értesítéssz 16-1235-2345-15-234-34-2345-16-234-156 For example értesítésszöveg word +always elektromossz 15-123-15-13-2345-1235-135-134-135-234-156 For example elektromosszemét word +always cigizéssz 14-24-1245-24-126-16-234-156 For example cigizésszámláló word +always társzene 2345-4-1235-234-126-15-1345-15 For example kortárszene word +always fedéssz 124-15-145-16-234-156 For example átfedésszerűen word +always totalitássz 2345-135-2345-1-123-24-2345-4-234-156 For example totalitásszemlélet word +always mulasztássz 134-136-123-1-156-2345-4-234-156 For example mulasztásszagú word +always riogatássz 1235-24-135-1245-1-2345-4-234-156 For example riogatásszámba word +always tekintéssz 2345-15-13-24-1345-2345-16-234-156 For example megtekintésszintű word +always tónussz 2345-246-1345-136-234-156 For example féltónusszintje, izomtónusszintje, tónusszabályozás words +always fűszeressz 124-23456-156-15-1235-15-234-156 For example fűszeresszelence word +always kémikussz 13-16-134-24-13-136-234-156 For example kémikusszett word +always cenzussz 14-15-1345-126-136-234-156 For example cenzusszerkezet word +always várássz 1236-4-1235-4-234-156 For example elvárásszerű, elvárásszintnek word +always foglalkozássz 124-135-1245-123-1-123-13-135-126-4-234-156 For example foglalkozásszerkezet, foglalkozásszám word +always alakítássz 1-123-1-13-34-2345-4-234-156 For example alakításszámba word +always követeléssz 13-12345-1236-15-2345-15-123-16-234-156 For example követelésszám word +always ragyogássz 1235-1-1456-135-1245-4-234-156 For example ragyogásszerű word +always pusztítássz 1234-136-156-2345-34-2345-4-234-156 For example pusztításszekvenciákkal word +always vonulássz 1236-135-1345-136-123-4-234-156 For example vonulásszabályok word +always dartssz 145-1-1235-2345-234-156 For example dartsszakosztály, dartsszövetség word +always marássz 134-1-1235-4-234-156 For example marásszünet word +always pillangóssz 1234-24-123-123-1-1345-1245-246-234-156 For example pillangósszéna word +always lakossz 123-1-13-135-234-156 For example lakosszám word +always mozgatássz 134-135-126-1245-1-2345-4-234-156 For example mozgatásszáma word +always törőkossz 2345-12345-1235-12456-13-135-234-156 For example faltörőkosszerű word +always vánkossz 1236-4-1345-13-135-234-156 For example vánkosszerű word +always pörgéssz 1234-12345-1235-1245-16-234-156 For example pörgésszinten word +always látomássz 123-4-2345-135-134-4-234-156 For example látomásszekvencia, látomásszerű words +always klasszikussz 13-123-1-156-156-24-13-136-234-156 For example klasszikusszezon word +always rágássz 1235-4-1245-4-234-156 For example rágásszerű word +always folytatássz 124-135-456-2345-1-2345-4-234-156 For example folytatásszerű word +always reccsenéssz 1235-15-146-146-15-1345-16-234-156 For example reccsenésszerű word +always meneteléssz 134-15-1345-15-2345-15-123-16-234-156 For example menetelésszerű word +always kérdezéssz 13-16-1235-145-15-126-16-234-156 For example lekérdezésszámot word +always nukleárissz 1345-136-13-123-15-4-1235-24-234-156 For example nukleárisszakember word +always nyitássz 1246-24-2345-4-234-156 For example nyitásszenzorral word +always látóssz 123-4-2345-246-234-156 For example vendéglátósszektor word +always narancsossz 1345-1-1235-1-1345-146-135-234-156 For example narancsosszilva word +always ürítéssz 12356-1235-34-2345-16-234-156 For example kiürítésszimuláció word +always kihalásszin 13-24-125-1-123-4-234-156-24-1345 For example kihalásszintű word +always gondoskodássz 1245-135-1345-145-135-234-13-135-145-4-234-156 For example gondoskodásszükséglet word +always élhetéssz 16-123-125-15-2345-16-234-156 For example megélhetésszinten word +always pusztulássz 1234-136-156-2345-136-123-4-234-156 For example pusztulásszaga word +always ismeréssz 24-234-134-15-1235-16-234-156 For example fölismerésszerű word +always hasszag 125-1-234-156-1-1245 For example hasszaggató word +always hasszú 125-1-234-156-346 For example hasszúrás word +always inzultussz 24-1345-126-136-123-2345-136-234-156 For example inzultusszámba word +always anabolikussz 1-1345-1-12-135-123-24-13-136-234-156 For example anabolikusszteroid word +always prospektussz 1234-1235-135-234-1234-15-13-2345-136-234-156 For example prospektusszín, prospektusszövegek word +always dilettánssz 145-24-123-15-2345-2345-4-1345-234-156 For example dilettánsszerű word +always vezérléssz 1236-15-126-16-1235-123-16-234-156 For example vezérlésszint word +always kapillárissz 13-1-1234-24-123-123-4-1235-24-234-156 For example kapillárisszivárgás word +always ismeréssz 24-234-134-15-1235-16-234-156 For example fölismerésszerű word +always meneteléssz 134-15-1345-15-2345-15-123-16-234-156 For example menetelésszerű word +always mensessz 134-15-1345-234-15-234-156 For example mensesszerű word +always fialássz 124-24-1-123-4-234-156 For example fialásszinkronizálás word +always fejlesztéssz 124-15-245-123-15-156-2345-16-234-156 For example fejlesztésszimulátor word +begword adássz 1-145-4-234-156 For example adásszint, adásszórásra words +always lesszak 123-15-234-156-1-13 For example lesszakadás word +always ezressz 15-126-1235-15-234-156 For example ezresszeparátor, ezresszórás words +always gátlássz 1245-4-2345-123-4-234-156 For example gátlásszerű word +begword őszeneka 12456-234-126-15-1345-15-13-1 For example őszenekar word +always fröcsögéssz 124-1235-12345-146-12345-1245-16-234-156 For example fröcsögésszakértő word +always társsz 2345-4-1235-234-156 For example társszínházak word +always köszöntéssz 13-12345-156-12345-1345-2345-16-234-156 For example köszöntésszabadság word +always közléssz 13-12345-126-123-16-234-156 For example közlésszerű word +always intimitássz 24-1345-2345-14-134-24-2345-4-234-156 For example intimitásszegény word +always tartalékossz 2345-1-1235-2345-1-123-16-13-135-234-156 For example tartalékosszakasz word +always szabássze 156-1-12-4-234-156-15 For example szabásszerű word +always látássz 123-4-2345-4-234-156 For example látásszerű word +always gyógyulássz 1456-246-1456-136-123-4-234-156 For example gyógyulássztori word +always henteszs 125-15-1345-2345-15-234-345 For example henteszsargont word +always haladássz 125-1-123-1-145-4-234-156 For example haladásszurkoló word +always megszakítássz 134-15-1245-156-1-13-34-2345-4-234-156 For example megszakításszűrő word +always cselekvéssz 146-15-123-15-13-1236-16-234-156 For example cselekvésszabadság, pótcselekvésszerű word +always neurózissz 1345-15-136-1235-246-126-24-234-156 For example neurózisszag word +always hatalmaskodássz 125-1-2345-1-123-134-1-234-13-135-145-4-234-156 For example hatalmaskodásszag word +always kenussz 13-15-1345-136-234-156 For example kenusszobrát word +always mézessz 134-16-126-15-234-156 For example mézesszív word +always vasszerel 1236-1-234-156-15-1235-15-123 For example vasszerelvény, betonvasszerelő word +always hamvasszőké 125-1-134-1236-1-234-156-12456-13-16 For example hamvasszőkével word +always füttyentéssz 124-12356-1256-1256-15-1345-2345-16-234-156 For example füttyentésszóra word +always hasszet 125-15-234-156-15-2345 For example hasszett word +always pedellussz 1234-15-145-15-123-123-136-234-156 For example pedellusszerű word +always titulussz 2345-24-2345-136-123-136-234-156 For example titulusszerű word +always fizikussz 124-24-126-24-13-136-234-156 For example fizikusszak word +always hívász 125-34-1236-4-234-126 For example hívászóna word +always mumussz 134-136-134-136-234-156 For example mumusszekrény, mumusszó words +always keményedéssz 13-15-134-16-1246-15-145-16-234-156 For example bőrkeményedésszerű word +always hősszü 125-12456-234-156-12356 For example szuperhősszületés, szuperhősszünet word +always időssz 24-145-12456-234-156 For example idősszemély word +always kettőssz 13-15-2345-2345-12456-234-156 For example kettősszál, kettősszigetelt word +always ősszele 12456-234-156-15-123-15 For example ősszele word +always lovaszen 123-135-1236-1-234-126-15-1345 For example lovaszene word +always késszél 13-16-234-156-16-123 For example késszél word +always mindenessz 134-24-1345-145-15-1345-15-234-156 For example mindenesszerű word +always metabolikussz 134-15-2345-1-12-135-123-24-13-136-234-156 For example metabolikusszindróma word +always miliomossz 134-24-123-24-135-134-135-234-156 For example miliomosszelet word +always denzitássz 145-15-1345-126-24-2345-4-234-156 For example denzitásszűrő word +always sorsszilá 234-135-1235-234-156-24-123-4 For example sorsszilánk word +always fájássz 124-4-245-4-234-156 For example fájásszünetekben word +always védéssz 1236-16-145-16-234-156 For example védésszám word +always fogadássz 124-135-1245-1-145-4-234-156 For example elfogadásszintje word +always paritássz 1234-1-1235-24-2345-4-234-156 For example paritásszót word +always műtőssz 134-23456-2345-12456-234-156 For example műtősszék word +always precedenssz 1234-1235-15-14-15-145-15-1345-234-156 For example precedensszerű word +always fűrészeléssz 124-23456-1235-16-156-15-123-16-234-156 For example fűrészelésszerű word +always abúzussz 1-12-346-126-136-234-156 For example abúzusszöveg word +always rajongássz 1235-1-245-135-1345-1245-4-234-156 For example rajongásszerű, rajongássztorira words +always menekvéssz 134-15-1345-15-13-1236-16-234-156 For example menekvésszerű, menekvésszorzónak words +always áldássz 4-123-145-4-234-156 For example áldásszórás, áldásszövegeket word +always gyűlölködéssz 1456-23456-123-12345-123-13-12345-145-16-234-156 For example gyűlölködésszünetet word +always hömpölygéssz 125-12345-134-1234-12345-456-1245-16-234-156 For example hömpölygésszerű word +always lovaglássz 123-135-1236-1-1245-123-4-234-156 For example lovaglásszám word +always elektromosz 15-123-15-13-2345-1235-135-134-135-234-126 For example elektromoszongora word +always hárssz 125-4-1235-234-156 For example hársszezon word +always összegezéssz 12345-156-156-15-1245-15-126-16-234-156 For example összegezésszerű word +always matematikussz 134-1-2345-15-134-1-2345-24-13-136-234-156 For example matematikusszerű word +always sajtoszs 234-1-245-2345-135-234-345 For example sajtoszsemle word +always intellektussz 24-1345-2345-15-123-123-2345-136-234-156 For example intellektusszintet wrd +always orálissz 135-1235-4-123-24-234-156 +always zokogássz 126-135-13-135-1245-4-234-156 For example zokogásszerű, zokogásszünet word +always evésszab 15-1236-16-234-156-1-12 For example evésszabályozás word +always hússzeme 125-346-234-156-15-134-15 For example hússzemek word +always hússzú 125-346-234-156-346 For example hússzúró word +always győztessz 1456-12456-126-2345-15-234-156 For example győztessztárban word +always sasszív 234-1-234-156-34-1236 For example sasszív word +always tompítássz 2345-135-134-1234-34-2345-4-234-156 For example zajtompításszinted word +always balossz 12-1-123-135-234-156 For example balosszavazó word +always foltossz 124-135-123-2345-135-234-156 For example foltosszalamandra word +always fászu 124-4-234-126-136 For example fűsfászugi-holtág word +always öltözködéssz 12345-123-2345-12345-126-13-12345-145-16-234-156 For example öltözködésszabadság word +always frázissz 124-1235-4-126-24-234-156 For example parafrázisszatíra word +always rámpássz 1235-4-134-1234-4-234-156 For example rámpásszállítógép word +always taknyosz 2345-1-13-1246-135-234-126 For example taknyoszabpehely-piac word +always titkossz 2345-24-2345-13-135-234-156 For example titkosszavazás word +always virtuálissz 1236-24-1235-2345-136-4-123-24-234-156 For example virtuálisszolgáltatás word +always térdeléssz 2345-16-1235-145-15-123-16-234-156 For example térdelésszimbólum word +always hozássz 125-135-126-4-234-156 For example behozásszám word +always összegezéssz 12345-156-156-15-1245-15-126-16-234-156 For example összegezésszerű word +always digitálisszü 145-24-1245-24-2345-4-123-24-234-156-12356 For example digitálisszülőség word +always digitálisszak 145-24-1245-24-2345-4-123-24-234-156 For example digitálisszakmunkás word +always szőttessz 156-12456-2345-2345-15-234-156 For example szőttesszövő word +always fűréssz 124-23456-1235-16-156-156 For example fűrésszerű word +always végesszó 1236-16-1245-15-234-156-246 For example végesszórás word +always forgatássz 124-135-1235-1245-1-2345-4-234-156 For example forgatásszám word +always diverzitássz 145-24-1236-15-1235-126-24-2345-4-234-156 For example diverzitásszerű word +always háborússz 125-4-12-135-1235-346-234-156 For example háborússzörny word +always kapcsosz 13-1-1234-146-135-234-126 For example kapcsoszárójel word +always konföderációsz 13-135-1345-124-12345-145-15-1235-4-14-24-246-234-126 For example konföderációszászló word +always higiénéssz 125-24-1245-24-16-1345-16-234-156 For example higiénésszakember word +always molekulárissz 134-135-123-15-13-136-123-4-1235-24-234-156 For example molekulárisszekvencia word +always pszichedelikusz 1234-156-24-14-125-15-145-15-123-24-13-136-234-126 For example pszichedelikuszene word +always élelmezéssz 16-123-15-123-134-15-126-16-234-156 For example élelmezésszuverenitás word +always érleléssz 16-1235-123-15-123-16-234-156 For example érlelésszimuláció word +always ismerkedéssz 24-234-134-15-1235-13-15-145-16-234-156 For example ismerkedéssztori word +always hősszín 125-12456-234-156-34-1345 For example szuperhősszínész word +always utaszó 136-2345-1-234-126-246 For example utaszóna word +always gradienssz 1245-1235-1-145-24-15-1345-234-156 For example gradiensszerű word +always fosszór 124-135-234-156-246-1235 +always gazdálkodássz 1245-1-126-145-4-123-13-135-145-4-234-156 For example gazdálkodásszimulátor word +always frigiditássz 124-1235-24-1245-24-145-24-2345-4-234-156 For example frigiditásszerű word +always beszélgetéssz 12-15-156-16-123-1245-15-2345-16-234-156 For example beszélgetésszituáció word +always billentyűssz 12-24-123-123-15-1345-1256-23456-234-156 For example billentyűsszonáták word +always asztrológussz 1-156-2345-1235-135-123-246-1245-136-234-156 For example asztrológusszemmel word +always párologtatássz 1234-4-1235-135-123-135-1245-2345-1-2345-4-234-156 For example párologtatásszabályozó word #ty, tty related exceptions #This exception part containing english words with need presenting original english braille rules @@ -2068,6 +2622,58 @@ always bukkáliszs 12-136-13-13-4-123-24-234-345 For example bukkáliszsír word always szárazsam 156-4-1235-1-126-234-1-134 For example szárazsampon word always fürdészuh 124-12356-1235-145-16-234-126-136-125 For example fürdészuhanyzás word always imázszen 24-134-4-345-126-15-1345 For example imázszenét word +always köntöszs 13-12345-1345-2345-12345-234-345 For example köntöszsinór word +always ízskál 34-126-234-13-4-123 For example ízskála word +always gézzsá 1245-16-126-345-4 For example gézsák word +always ötöszs 12345-2345-12345-234-345 For example ötöszsűri word +always gázzse 1245-4-126-345-15 For example gázzseb word +always gőzzsem 1245-12456-126-345-15-134 For example gőzzsemle word +always reformátuszs 1235-15-124-135-1235-134-4-2345-136-234-345 For example reformátuszsinat word +always kerítészs 13-15-1235-34-2345-16-234-345 For example kerítészsonglőrt word +always biológuszs 12-24-135-123-246-1245-136-234-345 For example biológuszseni word +always mézsűr 134-16-126-234-23456-1235 For example mézsűrűségen word +always informatikuszs 24-1345-124-135-1235-134-1-2345-24-13-136-234-345 For example informatikuszseninek word +always vitézser 1236-24-2345-16-126-234-15-1235 For example vitézsereg word +always közzsarg 13-12345-126-345-1-1235-1245 For example közzsargon word +always imázszón 24-134-4-345-126-246-1345 For example imázszóna word +always komikuszs 13-135-134-24-13-136-234-345 For example komikuszseni word +always gázsort 1245-4-126-234-135-1235-2345 For example könnygázsortűz word +begword gázsáv 1245-4-126-234-4-1236 For example gázsávokkal word +always előadászen 15-123-12456-1-145-4-234-126-15-1345 For example előadászenei word +always mellkaszúz 134-15-123-123-13-1-234-126-346-126 For example mellkaszúzódás word +always társzsű 2345-4-1235-234-345-23456 For example társzsűri word +always vágászó 1236-4-1245-4-234-126-246 For example vágászónával word +always nyomászuh 1246-135-134-4-234-126-136-125 For example vérnyomászuhanás word +always verszeng 1236-15-1235-234-126-15-1345-1245 For example verszengő word +always szarvaszu 156-1-1235-1236-1-234-126-136 For example rénszarvaszuzmó word +always populáriszen 1234-135-1234-136-123-4-1235-24-234-126-15-1345 For example populáriszene word +always asszázsz 1-156-156-4-345-126 For example passzázszavar word +always laktóz 123-1-13-2345-246-126 For example laktózsav word +always borzst 12-135-1235-126-234-2345 For example borzstratégia word +always verszené 1236-15-1235-234-126-15-1345-16 For example verszenével word +always jelmezst 245-15-123-134-15-126-234-2345 For example jelmezstúdióban word +always hajtászs 125-1-245-2345-4-234-345 For example hajtászsugorító word +always őzsonk 12456-126-234-135-1345-13 For example őzsonka word +always pózso 1234-246-126-234-135 For example pózsor word +always mézsz 134-16-126-156 For example mézszármazék word +always mézs 134-16-126-234 Fore xample mézspecifikus, mézsöre word +begword gázst 1245-4-126-234-2345 For example gázstratégiáról word +always gázsto 1245-4-126-234-2345-135 For example gázstop word +always gázstu 1245-4-126-234-2345-136 For example gázstukker word +always ízspe 34-126-234-1234-15 For example ízspecifikus word +always gázse 1245-4-126-234-15 For example földgázsegély, gázsejtek words +always gázsap 1245-4-126-234-1-1234 For example gázsapka, gázsapkát words +always gázsérü 1245-4-126-234-16-1235-12356 For example gázsérülés, gázsérülésveszély words +always frízso 124-1235-34-126-234-135 For example frízsor word +always briószs 12-1235-24-246-234-345 For example briószsemle word +always magoszs 134-1-1245-135-234-345 For example tökmagoszsemle word +always tempózso 2345-15-134-1234-246-345-135 +always varázszu 1236-1-1235-4-345-126-136 For example varázszugai word +always ádázsá 4-145-4-126-234-4 For example ádázság word +always betűzs 12-15-2345-23456-345 For example betűzseton word +always fűzsz 124-23456-126-156 For example fűzsereket word +always fűzs 124-23456-126-234 For example fűzsátor, fűzsuhángok word +always dobozst 145-135-12-135-126-234-2345 For example dobozstílus word #Historical person names related exceptions always táncsics 2345-4-1345-146-24-146 Táncsics Mihály is a historical person for 1848. march 15 hungarian revolution diff --git a/braille/translate/src/phone/tables/hu-hu-comp8.ctb b/braille/translate/src/phone/tables/hu-hu-comp8.ctb index 9dfb7a378..d590ed6c0 100644 --- a/braille/translate/src/phone/tables/hu-hu-comp8.ctb +++ b/braille/translate/src/phone/tables/hu-hu-comp8.ctb @@ -11,14 +11,7 @@ # as it is a computer Braille table. #+direction:both # -# TODO: Please correct the metadata above. It is not meant to be -# accurate nor complete. It hasn't been verified by the table -# author yet. It is merely an attempt by the liblouis maintainers -# to get some sensible initial values in place. -# -# TODO: Please add a reference to official documentation about -# the implemented braille code. Preferably submit the documents -# to https://github.com/liblouis/braille-specs. +# Braille-specs documentation link: https://liblouis.io/braille-specs/hungarian # ----------- # # Based on the Linux screenreader BRLTTY, copyright (C) 1999-2011 by the BRLTTY Team diff --git a/braille/translate/src/phone/tables/hu-hu-g1.ctb b/braille/translate/src/phone/tables/hu-hu-g1.ctb index 349c68f03..32cf8e762 100644 --- a/braille/translate/src/phone/tables/hu-hu-g1.ctb +++ b/braille/translate/src/phone/tables/hu-hu-g1.ctb @@ -113,5 +113,4 @@ always lysz 456-156 always ä 5-1 uppercase Ä 5-1 noback always \\_ 6 letter sign before Roman page numbers -noback pass2 @3456-356 @356-3456 undefined 26 diff --git a/braille/translate/src/phone/tables/hu-hu-g1_braille_input.cti b/braille/translate/src/phone/tables/hu-hu-g1_braille_input.cti index ec583d520..7caadc558 100644 --- a/braille/translate/src/phone/tables/hu-hu-g1_braille_input.cti +++ b/braille/translate/src/phone/tables/hu-hu-g1_braille_input.cti @@ -99,32 +99,25 @@ noback pass2 @5-235 @235 #for [ and ] character input related old dot combinations related rules, need keeping this rules with compatibility purposes nofor always [ 5-12356 -noback always [ 5-12356 -noback pass2 @5-12356 @46-2346 nofor always ] 5-23456 -noback always ] 5-23456 -noback pass2 @5-23456 @46-1356 +nofor pass2 @5-12356 @46-2346 +nofor pass2 @5-23456 @46-1356 #for ` related exception rules #Compatibility purposes handle older braille 5-4 dot combination when the user trying typing the 5-4 dot combination, and not known yet the new changed 5-14 dot combination nofor always ` 5-4 -noback always ` 5-4 -noback context $a1-30["`"] @5-4 -noback pass2 @5-4 @5-14 +nofor pass2 @5-4 @5-14 nofor context @5-4 "`" Handle the backtranslation too #for { and } related old rules, need keeping this rules with compatibility purposes: nofor always { 5-12345 -noback always { 5-12345 -noback pass2 @5-12345 @5-2346 nofor always } 5-12456 -noback always } 5-12456 -noback pass2 @5-12456 @5-1356 +nofor pass2 @5-12345 @5-2346 +nofor pass2 @5-12456 @5-1356 #Compatibility purposes handle older braille 5-45 dot combination when the user trying typing this dot combination he's braille display, and not known the new 5-1245 dot combination nofor always | 5-45 -noback always | 5-45 -noback pass2 @5-45 @5-1245 +nofor pass2 @5-45 @5-1245 nofor context @5-45 "|" Handle the back translation too #Hessmark backtranslation handling related special rule @@ -318,7 +311,6 @@ always ssz 156-156 noback pass3 $D.@6%notaccentedletters1-30[@234-234-126] @156-156 noback pass3 $D.[@36-156-6]%notaccentedletters. @36-156-156 noback pass3 $l.[@156-6]$a @156 - endnum zsz 126-156 endnum -zsz 36-126-156 prepunc zsz 126-156 diff --git a/braille/translate/src/phone/tables/hu-hu-g2.ctb b/braille/translate/src/phone/tables/hu-hu-g2.ctb index 406f475bc..0433aaec1 100644 --- a/braille/translate/src/phone/tables/hu-hu-g2.ctb +++ b/braille/translate/src/phone/tables/hu-hu-g2.ctb @@ -12,9 +12,7 @@ # as tests only run forward. #+direction:both # -# TODO: Please add a reference to official documentation about -# the implemented braille code. Preferably submit the documents -# to https://github.com/liblouis/braille-specs. +# Braille-specs documentation link: https://liblouis.io/braille-specs/hungarian # ----------- # # Copyright (C) 2017-2022 Attila Hammer from IT Foundation for the Visually Impaired - Hungary. www.infoalap.hu @@ -268,5 +266,4 @@ uppercase Ä 5-1 noback context $l$p["–"] @36-36 noback context $l["–"] @36-36 noback always \\_ 6 letter sign before Roman page numbers -noback pass2 @3456-356 @356-3456 undefined 26 diff --git a/braille/translate/src/phone/tables/ja-kantenji.utb b/braille/translate/src/phone/tables/ja-kantenji.utb index d36c4b179..3a9880fa7 100644 --- a/braille/translate/src/phone/tables/ja-kantenji.utb +++ b/braille/translate/src/phone/tables/ja-kantenji.utb @@ -9,6 +9,7 @@ #+grade:1 #+dots: 8 #+direction:forward +#+unicode-range: ucs4 #-copyright: 2021, Kensaku Y. #-license: LGPLv2.1 @@ -34,11425 +35,19 @@ # License along with liblouis. If not, see # . -# This table mainly conforms to the rules of "Kawakami Kantenji", and -# partly to the Braille Authority of Japan's standard Japanese -# braille. The description of the printed and braille book of -# "Kawakami Kantenji" is on the webpage of Japan Kantenji Association -# (in Japanese): http://www.kantenji.jp/. The association has -# dissolved in 2020, so these books are not available currently. -# Japanese standard braille is the braille script of the Japanese -# language, but not necessarily to Japanese "written" language. -# Japanese written language consists of hiragana, katakana, Roman -# alphabet, and kanji. It transcribes Japanese more or less as it -# would be written in the hiragana or katakana syllabaries, without -# any provision for writing kanji. Japanese standard braille is -# maintained by the Braille Authority of Japan: http://braille.jp/. -# -# Kantenji, or braille kanji, was devised by Taiichi Kawakami in -# 1969. In Kantenji braille system, there are corresponding braille -# symbols for each kanji character. With Kantenji braille system, you -# can transcribe hiragana, katakana, Roman alphabet, and kanji -# directly into braille. For an English description of Kantenji, refer -# to Wikipedia: https://en.wikipedia.org/wiki/Braille_kanji -# -# The following description is from the Wikipedia article: -# -# > [...] (Kantenji) uses an 8-dot braille cell, with the lower six -# > dots corresponding to the cells of standard Japanese braille, and -# > the upper two dots indicating the constituent parts of the kanji. -# > The upper dots are numbered 0 (upper left) and 7 (upper right), -# > the opposite convention of 8-dot braille in Western countries, -# > where the extra dots are added to the bottom of the cell. -# -# Because Kantenji uses lower part 6 dots of 8 dots as the main 6 dots -# for 6-dot braille, the dots numberings are shifted (one row -# lowered). For example, dots for alphabet "a" is dot 1 and dots for -# "z" is dots 1356 in other 8 dot braille definitions. In Kantenji -# system, "a" is dot 2 and "z" is dots 2678 and so on. - -# The translation rules are grouped as follows and written in this order: -# space -# numbers -# alphabet -# Hankaku(half width) punctuations and symbols -# Zenkaku(full width) punctuations and symbols -# Hiragana -# Katakana -# Kanji -# character class rules - -# Start translation rules - -#begin space -space \x3000 0 zenkaku(full width) space -space \x0020 0 blank -space \x0009 9 tab -space \x000a 0 newline -space \x000c 0 -space \x000d 0 carriage return -space \x001b 1b escape character for html back-translation -space \x00A0 a NO-BREAK SPACE 0020 NON-BREAKING SPACE -space \x2000 0 -space \x2001 0 -space \x2002 0 -space \x2003 0 -space \x2004 0 -space \x2005 0 -space \x2006 0 -space \x2007 0 -space \x2008 0 -space \x2009 0 -space \x200a 0 -space \x200b 0 -#end space - -#begin numbers -numsign 5678 - -# Hankaku numbers -digit 0 356 -digit 1 2 -digit 2 23 -digit 3 25 -digit 4 256 -digit 5 26 -digit 6 235 -digit 7 2356 -digit 8 236 -digit 9 35 -litdigit 0 356 -litdigit 1 2 -litdigit 2 23 -litdigit 3 25 -litdigit 4 256 -litdigit 5 26 -litdigit 6 235 -litdigit 7 2356 -litdigit 8 236 -litdigit 9 35 - -# Zenkaku numbers -digit 0 356 -digit 1 2 -digit 2 23 -digit 3 25 -digit 4 256 -digit 5 26 -digit 6 235 -digit 7 2356 -digit 8 236 -digit 9 35 -litdigit 0 356 -litdigit 1 2 -litdigit 2 23 -litdigit 3 25 -litdigit 4 256 -litdigit 5 26 -litdigit 6 235 -litdigit 7 2356 -litdigit 8 236 -litdigit 9 35 - -# numbers related -after digit always あ 0-2 -after digit always い 0-23 -after digit always う 0-25 -after digit always る 0-256 -after digit always ら 0-26 -after digit always え 0-235 -after digit always れ 0-2356 -after digit always り 0-236 -after digit always お 0-35 -after digit always ろ 0-356 -after digit always ア 0-367-2 -after digit always イ 0-367-23 -after digit always ウ 0-367-25 -after digit always ル 0-367-256 -after digit always ラ 0-367-26 -after digit always エ 0-367-235 -after digit always レ 0-367-2356 -after digit always リ 0-367-236 -after digit always オ 0-367-35 -after digit always ロ 0-367-356 -#end numbers - -#begin alphabet -capsletter 68-8 -begcapsword 68-8-8 -endcapsword 8-7 - -# Hankaku(half-width) (ASCII) alphabet -lowercase a 2 -lowercase b 23 -lowercase c 25 -lowercase d 256 -lowercase e 26 -lowercase f 235 -lowercase g 2356 -lowercase h 236 -lowercase i 35 -lowercase j 356 -lowercase k 27 -lowercase l 237 -lowercase m 257 -lowercase n 2567 -lowercase o 267 -lowercase p 2357 -lowercase q 23567 -lowercase r 2367 -lowercase s 357 -lowercase t 3567 -lowercase u 278 -lowercase v 2378 -lowercase w 3568 -lowercase x 2578 -lowercase y 25678 -lowercase z 2678 - -# Zenkaku(full-width) alphabet -lowercase a 2 -lowercase b 23 -lowercase c 25 -lowercase d 256 -lowercase e 26 -lowercase f 235 -lowercase g 2356 -lowercase h 236 -lowercase i 35 -lowercase j 356 -lowercase k 27 -lowercase l 237 -lowercase m 257 -lowercase n 2567 -lowercase o 267 -lowercase p 2357 -lowercase q 23567 -lowercase r 2367 -lowercase s 357 -lowercase t 3567 -lowercase u 278 -lowercase v 2378 -lowercase w 3568 -lowercase x 2578 -lowercase y 25678 -lowercase z 2678 - -lowercase \x03b1 58-2 α Alpha -lowercase \x03b2 58-23 β Beta -lowercase \x03b3 58-2356 γ Gamma -lowercase \x03b4 58-256 δ Delta -lowercase \x03b5 58-26 ε Epsilon -lowercase \x03b6 58-2768 ζ Zeta -lowercase \x03b7 58-268 η Eta -lowercase \x03b8 58-2568 θ Theta -lowercase \x03b9 58-35 ι Iota -lowercase \x03ba 58-27 κ Kappa -lowercase \x03bb 58-237 λ Lamda -lowercase \x03bc 58-275 μ Mu -lowercase \x03bd 58-2756 ν Nu -lowercase \x03be 58-2758 ξ Xi -lowercase \x03bf 58-276 ο Omicron -lowercase \x03c0 58-2375 π Pi -lowercase \x03c1 58-2376 ρ Rho -lowercase \x03c3 58-375 σ Sigma -lowercase \x03c4 58-3756 τ Tau -lowercase \x03c5 58-278 υ Upsilon -lowercase \x03c6 58-235 φ Phi -lowercase \x03c7 58-23758 χ Chi -lowercase \x03c8 58-27568 ψ Psi -lowercase \x03c9 58-3568 ω Omega -#end alphabet - -#begin Hankaku(half width) punctuations and symbols -punctuation ! 367-0 -sign " 68-37 -sign # 68-258 -sign $ 68-2568 -sign % 68-2357-0 -sign & 68-23758 -sign ' 7 -punctuation ( 6-3678 -punctuation ) 3678-3 -sign * 68-28 -sign + 0-38-0 -punctuation , 3 -midnum , 7 -punctuation - 78 -punctuation . 368 -midnum . 3 -always ... 0-3-3-3 -sign / 57 -sign : 36 -midnum : 36 -punctuation ; 37 -sign < 67-67 -sign = 36-36 -sign > 38-38 -punctuation ? 38-0 -sign @ 358 -sign [ 68-23678 -sign \\ 68-2358 -sign ] 68-35678 -sign ^ 68-56 -punctuation _ 6-78 -sign ` 5 grave accent -sign } 68-567 -sign | 68-2368 -sign { 68-238 -punctuation ~ 6-25 - -lowercase \x00e0 56-28-2 à -lowercase \x00e1 56-75-2 á -lowercase \x00e2 56-258-2 â -lowercase \x00e3 56-23568-2 ã -lowercase \x00e4 56-36-2 ä -lowercase \x00e5 56-2358-2 å -lowercase \x00e7 56-23758-25 ç -lowercase \x00e8 56-28-26 è -lowercase \x00e9 56-75-26 é -lowercase \x00ea 56-258-26 ê -lowercase \x00eb 56-36-26 ë -lowercase \x00ec 56-28-35 ì -lowercase \x00ed 56-75-35 í -lowercase \x00ee 56-258-35 î -lowercase \x00ef 56-36-35 ï -lowercase \x00f0 7568-2358 ð -lowercase \x00f1 56-23568-2756 ñ -lowercase \x00f2 56-28-276 ò -lowercase \x00f3 56-75-276 ó -lowercase \x00f4 56-258-276 ô -lowercase \x00f5 56-23568-276 õ -lowercase \x00f6 56-36-276 ö -lowercase \x00f8 5-28-276 ø -lowercase \x00f9 56-28-278 ù -lowercase \x00fa 56-75-278 ú -lowercase \x00fb 56-258-278 û -lowercase \x00fc 56-36-278 ü -lowercase \x00fe 7568-3758 þ -lowercase \x00fd 56-75-27568 ý -lowercase \x0101 5-78-2 ā -lowercase \x0103 5-758-2 ă -lowercase \x0107 56-75-25 ć -lowercase \x0109 56-258-25 ĉ -lowercase \x010d 56-758-25 č -lowercase \x0113 5-78-26 ē -lowercase \x0115 5-758-26 ĕ -lowercase \x011b 56-758-26 ě -lowercase \x011d 56-258-2356 ĝ -lowercase \x011f 5-758-2356 ğ -lowercase \x0125 56-258-236 ĥ -lowercase \x012b 5-78-35 ī -lowercase \x012d 5-758-35 ĭ -lowercase \x014d 5-78-276 ō -lowercase \x014f 5-758-276 ŏ -lowercase \x0167 5-36-3756 ŧ -lowercase \x016b 5-78-278 ū -lowercase \x016d 5-758-278 ŭ -lowercase \x00ff 56-36-27568 ÿ -lowercase \x021d 7568-27568 ȝ yogh -lowercase \x00fe 7568-3758 þ thorn -lowercase \x00f0 7568-2358 ð eth -lowercase \x01bf 7568-3568 ƿ wynn -sign \x0300 56-28 ̀̀ -sign \x0301 56-75 ́ -sign \x0302 56-258 ̂ -sign \x0303 56-23568 ̃ -sign \x0304 56-5-78 ̄ -sign \x0306 5-758 ̆ -sign \x0308 56-36 ̈ -sign \x030a 56-2358 ̊ -sign \x030c 56-758 ̌ -sign \x0327 56-23758 ̧ -sign \x0092 7 -sign \x0097 78-78 -sign \x0093 378 -sign \x0094 768 -sign \x0096 78 -sign \x0097 78-78 -sign \x00a1 56-68-376 ¡ -sign \x00a1 376 ¡ -sign \x00a2 5-25 ¢ cent -sign \x00a3 5-237 £ pound -sign \x00a4 2358 ¤ curency -sign \x00a5 5-27568 ¥ yen -sign \x00a6 58-2368 ¦ broken -sign \x00a6 568-2368 ¦ broken -sign \x00a7 56-375 § section -sign \x00a8 56-36 ¨ -sign \x00a9 56-25 © copyright -sign \x00ab 568-378 « -sign \x00ac 5-2568 ¬ -sign \x00ad 78 - soft -sign \x00ae 56-2376 ® registered -sign \x00af 5-78 ¯ -sign \x00b4 56-68-23 ´ acute -sign \x00b6 56-2375 ¶ pilcrow -sign \x00b8 56-23758 ¸ cedilla -sign \x00bb 568-768 » -sign \x00bf 56-68-378 ¿ -uppercase \x00c6 2-8-56-376-26 Æ capital -lowercase \x00e6 2-56-376-26 æ lowercase -uppercase \x0152 276-8-56-376-26 Œ capital -lowercase \x0153 276-56-376-26 œ ligature -lowercase \x014b 56-2756 ŋ -lowercase \x0259 568-38 ə -sign \x02d8 5-758 ˘ uncombining -sign \x02e6 56-58-25 ˦ high -sign \x02e7 56-58-36 ˧ mid -sign \x02e8 56-58-78 ˨ low -sign \x2010 78 ‐ -sign \x2011 78 ‑ -sign \x2013 8-78 – -sign — 8-78-7 -sign ― 8-78-7 -sign “ 68-37 -sign ” 68-37 -sign \x2020 5-8-2568 † dagger -sign \x2021 5-8-23568 ‡ double -sign • 6-0 bullet -sign \x20a3 5-235 ₣ franc -sign \x20a6 5-2756 ₦ naira -sign \x20ac 5-26 € euro -sign \x2122 56-3756 ™ -sign ← 0-358-36-36-0 -sign ↑ 0-358-36-36-0 -sign → 0-36-36-267-0 -sign ↓ 0-36-36-267-0 -sign \x21b5 68-2368-368-258 ↵ -sign \x21cc 56-568-3768 ⇌ equilibrium -sign \x25aa 568-368 ▪ -sign \x2640 56-2758 ♀ -sign \x2642 56-27568 ♂ -sign \x266D 7568-238 ♭ -sign \x266E 7568-28 ♮ -sign \x266F 7568-258 ♯ -sign \x3003 6-3 〃 ditto -sign \x00b0 68-256 ° -sign \x00b1 0-38-67-0 ± -sign \x00b2 68-76-7568-23 ² -sign \x00b3 68-76-7568-25 ³ -sign \x00b4 56-75 ´ -sign \x00b5 58-275 µ -sign \x00b7 5-28 · -sign \x00bc 7568-2-75-7568-256 ¼ -sign \x00bd 7568-2-75-7568-23 ½ -sign \x00be 7568-25-75-7568-256 ¾ -sign \x00d7 68-28 × -sign \x00f7 68-57 ÷ -sign \x2150 7568-2-75-7568-2356 ⅐ -sign \x2151 7568-2-75-7568-35 ⅑ -sign \x2152 7568-2-75-7568-2-356 ⅒ -sign \x2153 7568-2-75-7568-25 ⅓ -sign \x2154 7568-23-75-7568-25 ⅔ -sign \x2155 7568-2-75-7568-26 ⅕ -sign \x2156 7568-23-75-7568-26 ⅖ -sign \x2157 7568-25-75-7568-26 ⅗ -sign \x2158 7568-256-75-7568-26 ⅘ -sign \x2159 7568-2-75-7568-235 ⅙ -sign \x215a 7568-26-75-7568-235 ⅚ -sign \x215b 7568-2-75-7568-236 ⅛ -sign \x215c 7568-25-75-7568-236 ⅜ -sign \x215d 7568-26-75-7568-236 ⅝ -sign \x215e 7568-2356-75-7568-236 ⅞ -sign \x2032 3768 ′ prime -sign \x2033 3768-3768 ″ double -sign \x2200 56-2 ∀ for -sign \x2202 5-256 ∂ partial -sign \x2203 56-38 ∃ there -sign \x2205 5-356 ∅ empty -sign \x2207 56-256 ∇ nabla -sign \x2208 56-26 ∈ element -sign \x220b 5-56-26 ∋ contains -sign − 78 -sign \x2213 568-78 ∓ minus -sign \x2218 6-768 ∘ hollow -sign \x221a 6-258 √ square -sign \x221d 568-6-3768 ∝ proportional -sign \x221e 7568-237568 ∞ infinity -sign \x2220 568-358 ∠ angle -sign \x2221 58-568-358 ∡ measured -sign \x2225 7568-237 ∥ parallel -sign \x2227 5-378 ∧ logical -sign \x2228 5-376 ∨ logical -sign \x2229 58-378 ∩ set -sign \x222a 58-376 ∪ set -sign \x222b 3758 ∫ integral -sign \x222e 5-3758 contour integral -sign \x2235 5-75 ∵ because -sign \x2237 36-36 ∷ proportion -sign \x2243 568-76 ≃ asymptotically -sign \x2245 6-568-76 ≅ approximately -sign \x2248 56-76 ≈ almost -sign \x224f 56-6-3768 ≏ difference -sign \x2251 58-6-3768 ≑ geometrically -sign \x2260 6-3768-5-268 ≠ not -sign \x2261 568-237568 ≡ identical -sign \x2264 568-5-238 ≤ less -sign \x2265 568-5-756 ≥ greater -sign \x226a 58-5-238 ≪ much -sign \x226b 58-5-756 ≫ much -sign \x2282 56-238 ⊂ subset -sign \x2283 56-756 ⊃ superset -sign \x2286 568-56-238 ⊆ subset -sign \x2287 568-56-756 ⊇ superset -sign \x228a 58-56-238 ⊊ proper -sign \x228b 58-56-756 ⊋ proper -sign \x22a3 5-568-36 ⊣ left -sign \x22a5 7568-78 ⊥ up -sign \x22a6 568-36 ⊦ assertion -sign \x22a8 56-568-36 ⊨ valid -sign \x22b2 5-568-238 ⊲ normal -sign \x22b3 5-568-756 ⊳ contains -sign \x22b4 568-568-238 ⊴ normal -sign \x22b5 568-568-756 ⊵ contains -sign \x22be 7568-568-358 ⊾ right -sign \x22c5 6-368 ⋅ dot -sign \x2ae4 58-568-36 ⫤ reverse -sign \x2329 5-238 〈 -sign \x232A 5-756 〉 -sign \x3008 68-3678 〈 -sign \x3009 3678-37 〉 -sign \x0093 378 -sign \x0094 768 -sign \x0096 78 -sign \x25a0 568-2578-237 ■ filled -sign \x25a1 568-2578-237 □ square -sign \x25a7 58-2358-7568-256 ▧ shaded -sign \x25b2 568-2358-7568-25 ▲ filled -sign \x25b3 2358-7568-25 △ regular -sign \x25cb 568-2578-237 ○ circle -sign \x25cd 58-2358-237568 ◍ shaded -sign \x29b5 58-356 ⦵ 'normal' -always !? 367-38-0 - -# Uppercase letters -base uppercase A a -base uppercase B b -base uppercase C c -base uppercase D d -base uppercase E e -base uppercase F f -base uppercase G g -base uppercase H h -base uppercase I i -base uppercase J j -base uppercase K k -base uppercase L l -base uppercase M m -base uppercase N n -base uppercase O o -base uppercase P p -base uppercase Q q -base uppercase R r -base uppercase S s -base uppercase T t -base uppercase U u -base uppercase V v -base uppercase W w -base uppercase X x -base uppercase Y y -base uppercase Z z -base uppercase A a -base uppercase B b -base uppercase C c -base uppercase D d -base uppercase E e -base uppercase F f -base uppercase G g -base uppercase H h -base uppercase I i -base uppercase J j -base uppercase K k -base uppercase L l -base uppercase M m -base uppercase N n -base uppercase O o -base uppercase P p -base uppercase Q q -base uppercase R r -base uppercase S s -base uppercase T t -base uppercase U u -base uppercase V v -base uppercase W w -base uppercase X x -base uppercase Y y -base uppercase Z z -base uppercase \x0391 \x03b1 Αα Alpha -base uppercase \x0392 \x03b2 Ββ Beta -base uppercase \x0393 \x03b3 Γγ Gamma -base uppercase \x0394 \x03b4 Δδ Delta -base uppercase \x0395 \x03b5 Εε Epsilon -base uppercase \x0396 \x03b6 Ζζ Zeta -base uppercase \x0397 \x03b7 Ηη Eta -base uppercase \x0398 \x03b8 Θθ Theta -base uppercase \x0399 \x03b9 Ιι Iota -base uppercase \x039a \x03ba Κκ Kappa -base uppercase \x039b \x03bb Λλ Lamda -base uppercase \x039c \x03bc Μμ Mu -base uppercase \x039d \x03bd Νν Nu -base uppercase \x039e \x03be Ξξ Xi -base uppercase \x039f \x03bf Οο Omicron -base uppercase \x03a0 \x03c0 Ππ Pi -base uppercase \x03a1 \x03c1 Ρρ Rho -base uppercase \x03a3 \x03c3 Σσ Sigma -base uppercase \x03a4 \x03c4 Ττ Tau -base uppercase \x03a5 \x03c5 Υυ Upsilon -base uppercase \x03a6 \x03c6 Φφ Phi -base uppercase \x03a7 \x03c7 Χχ Chi -base uppercase \x03a8 \x03c8 Ψψ Psi -base uppercase \x03a9 \x03c9 Ωω Omega -base uppercase \x00c0 \x00e0 Àà -base uppercase \x00c1 \x00e1 Áá -base uppercase \x00c2 \x00e2 Ââ -base uppercase \x00c3 \x00e3 Ãã -base uppercase \x00c4 \x00e4 Ää -base uppercase \x00c5 \x00e5 Åå -base uppercase \x00c7 \x00e7 Çç -base uppercase \x00c8 \x00e8 Èè -base uppercase \x00c9 \x00e9 Éé -base uppercase \x00ca \x00ea Êê -base uppercase \x00cb \x00eb Ëë -base uppercase \x00cc \x00ec Ìì -base uppercase \x00cd \x00ed Íí -base uppercase \x00ce \x00ee Îî -base uppercase \x00cf \x00ef Ïï -base uppercase \x00d0 \x00f0 Ðð -base uppercase \x00d1 \x00f1 Ññ -base uppercase \x00d2 \x00f2 Òò -base uppercase \x00d3 \x00f3 Óó -base uppercase \x00d4 \x00f4 Ôô -base uppercase \x00d5 \x00f5 Õõ -base uppercase \x00d6 \x00f6 Öö -base uppercase \x00d8 \x00f8 Øø -base uppercase \x00d9 \x00f9 Ùù -base uppercase \x00da \x00fa Úú -base uppercase \x00db \x00fb Ûû -base uppercase \x00dc \x00fc Üü -base uppercase \x00de \x00fe Þþ -base uppercase \x00dd \x00fd Ýý -base uppercase \x0100 \x0101 Āā -base uppercase \x0102 \x0103 Ăă -base uppercase \x0106 \x0107 Ćć -base uppercase \x0108 \x0109 Ĉĉ -base uppercase \x010c \x010d Čč -base uppercase \x0112 \x0113 Ēē -base uppercase \x0114 \x0115 Ĕĕ -base uppercase \x011a \x011b Ěě -base uppercase \x011c \x011d Ĝĝ -base uppercase \x011e \x011f Ğğ -base uppercase \x0124 \x0125 Ĥĥ -base uppercase \x012a \x012b Īī -base uppercase \x012c \x012d Ĭĭ -base uppercase \x014c \x014d Ōō -base uppercase \x014e \x014f Ŏŏ -base uppercase \x0166 \x0167 Ŧŧ -base uppercase \x016a \x016b Ūū -base uppercase \x016c \x016d Ŭŭ -base uppercase \x0178 \x00ff Ÿÿ -base uppercase \x021c \x021d Ȝȝ yogh -base uppercase \x00de \x00fe Þþ thorn -base uppercase \x00d0 \x00f0 Ðð eth -base uppercase \x01f7 \x01bf Ƿƿ wynn -base uppercase \x014a \x014b Ŋŋ -base uppercase \x018f \x0259 Əə +# This table contains only the character definitions which do not fit +# in the Unicode Basic Multilingual Plane (BMP), i.e. need liblouis to +# be compiled with ucs4 -#end Hankaku(half width) punctuations and symbols +include ja-kantenji-ucs2.utb -#begin Zenkaku(full width) punctuations and symbols -punctuation 、 68-0 -punctuation 。 368-0 -punctuation … 0-3-3-3-0 -punctuation . 368 -punctuation ・ 6-0 -punctuation ! 376-0 -punctuation ? 38-0 -sign ( 6-3768 -punctuation ) 3768-3 -sign 「 6-78 -punctuation 」 78-3 -sign 『 68-78 -punctuation 』 78-37 -sign 【 68-3768 -punctuation 】 3768-37 -sign ★ 568-2578-237 -sign \x24b8 8-25-368 -sign \xfe16 38-0 vertical question mark -sign \x301c 8-78-7 -sign 〝 68-3678 -sign 〟 3678-37 -sign ⋯ 0-3-3-3-0 -sign ♡ 6-3678-278-36-3567-3678-3 -sign & 68-23578 -sign @ 68-358 -sign ‼ 367-367-0 -sign ️ 568-2578-237 -sign # 68-258 -sign  ̄ 6-25 -sign 〃 568-35-27-6-2368-258-237 〃 DITTO MARK -sign \x3006 568-2368-237568-237 〆 IDEOGRAPHIC CLOSING MARK -sign \x3007 7568-356 漢数字の0 IDEOGRAPHIC NUMBER ZERO -sign \x3008 6-3768 〈 LEFT ANGLE BRACKET -sign \x3009 3768-3 〉 RIGHT ANGLE BRACKET -sign \x300a 6-3768 《 LEFT DOUBLE ANGLE BRACKET -sign \x300B 3768-3 》 RIGHT DOUBLE ANGLE BRACKET -sign 〒 68-3678-758-36-6-2378-768-3678-37 -sign \x3013 568-6-2358-276-237 〓 GETA MARK -sign \x3014 5-5-23768 〔 -sign \x3015 5-5-37568 〕 -sign \x3031 568-258-375-6-2368-237 〱 VERTICAL KANA REPEAT MARK -sign \x3032 568-258-375-6-2368-237 〲 VERTICAL KANA REPEAT WITH VOICED SOUND MARK -sign \x3033 568-258-375-6-2368-237 〳 VERTICAL KANA REPEAT MARK UPPER HALF -sign \x3034 568-258-375-6-2368-237 〴 VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF -sign \x3035 568-258-375-6-2368-237 〵 VERTICAL KANA REPEAT MARK LOWER HALF - -sign [ 68-3678 -sign ] 3678-37 -sign ▶ 0-36-36-276-0 -sign + 0-38-0 -sign ▼ 0-36-36-267-0 -sign : 6-3 -sign ~ 78-78 -sign = 0-36-36-0 -sign / 68-75-0 -sign … 0-3-3-3-0 -sign % 68-2375-0 -sign < 76-76 -sign > 38-38 -sign ヽ 378 -sign ゝ 378 -sign ゞ 6-378 -sign ヾ 6-378 -sign “ 68-37 -sign ” 68-37 -sign - 8-78 -sign ℃ 68-256-8-25-0 -sign 々 378 -sign ■ 568-2758-237 -sign □ 568-2758-237 -sign ◇ 568-2758-237 -sign ◆ 568-2758-237 -sign ● 568-2758-237 -sign ─ 78-78 -repeated ─── 78-78-78-78 -sign Ⅰ 68-8-35 -sign Ⅱ 68-8-8-35-35 -sign Ⅲ 68-8-8-35-35-35 -sign Ⅳ 68-8-8-35-2378 -sign Ⅴ 68-8-2378 -sign Ⅵ 68-8-8-2378-35 -sign Ⅶ 68-8-8-2378-35-35 -sign Ⅷ 68-8-8-2378-35-35-35 -sign Ⅸ 68-8-8-35-2758 -sign Ⅹ 68-8-2758 -sign Ⅺ 68-8-8-2758-35 -sign Ⅻ 68-8-8-2758-35-35 -sign Ⅼ 68-8-237 -sign Ⅽ 68-8-25 -sign Ⅾ 68-8-256 -sign Ⅿ 68-8-275 -sign ⅰ 68-8-35 -sign ⅱ 68-8-8-35-35 -sign ⅲ 68-8-8-35-35-35 -sign ⅳ 68-8-8-35-2378 -sign ⅴ 68-8-2378 -sign ⅵ 68-8-8-2378-35 -sign ⅶ 68-8-8-2378-35-35 -sign ⅷ 68-8-8-2378-35-35-35 -sign ⅸ 68-8-8-35-2758 -sign ⅹ 68-8-2758 -sign ⅺ 68-8-8-2758-35 -sign ⅻ 68-8-8-2758-35-35 -sign ⅼ 68-8-237 -sign ⅽ 68-8-25 -sign ⅾ 68-8-256 -sign ⅿ 68-8-275 - -sign ① 7568-2-368-0 -sign ② 7568-23-368-0 -sign ③ 7568-25-368-0 -sign ④ 7568-256-368-0 -sign ⑤ 7568-26-368-0 -sign ⑥ 7568-235-368-0 -sign ⑦ 7568-2356-368-0 -sign ⑧ 7568-236-368-0 -sign ⑨ 7568-35-368-0 -sign ⑩ 7568-2-356-368-0 -sign ⑪ 7568-2-2-368 -sign ⑫ 7568-2-23-368-0 -sign ⑬ 7568-2-25-368-0 -sign ⑭ 7568-2-256-368-0 -sign ⑮ 7568-2-26-368-0 -sign ⑯ 7568-2-235-368-0 -sign ⑰ 7568-2-2356-368-0 -sign ⑱ 7568-2-236-368-0 -sign ⑲ 7568-2-35-368-0 -sign ⑳ 7568-23-356-368-0 -sign ⑴ 7568-2-0 -sign ⑵ 7568-23-0 -sign ⑶ 7568-25-0 -sign ⑷ 7568-256-0 -sign ⑸ 7568-26-0 -sign ⑹ 7568-235-0 -sign ⑺ 7568-2356-0 -sign ⑻ 7568-236-0 -sign ⑼ 7568-35-0 -sign ⑽ 7568-2-356-0 -sign ⑾ 7568-2-2-0 -sign ⑿ 7568-2-23-0 -sign ⒀ 7568-2-25-0 -sign ⒁ 7568-2-256-0 -sign ⒂ 7568-2-26-0 -sign ⒃ 7568-2-235-0 -sign ⒄ 7568-2-2356-0 -sign ⒅ 7568-2-236-0 -sign ⒆ 7568-2-35-0 -sign ⒇ 7568-23-356-0 -sign ⒈ 7568-2-0 -sign ⒉ 7568-23-0 -sign ⒊ 7568-25-0 -sign ⒋ 7568-256-0 -sign ⒌ 7568-26-0 -sign ⒍ 7568-235-0 -sign ⒎ 7568-2356-0 -sign ⒏ 7568-236-0 -sign ⒐ 7568-35-0 -sign ⒑ 7568-2-356-0 -sign ⒒ 7568-2-2-0 -sign ⒓ 7568-2-23-0 -sign ⒔ 7568-2-25-0 -sign ⒕ 7568-2-256-0 -sign ⒖ 7568-2-26-0 -sign ⒗ 7568-2-235-0 -sign ⒘ 7568-2-2356-0 -sign ⒙ 7568-2-236-0 -sign ⒚ 7568-2-35-0 -sign ⒛ 7568-23-356-0 -sign ━ 78-78 -repeated ━━ 78-78-78-78 -sign │ 68-2368 -sign ┌ 8-78-7 -sign ┏ 8-78-7 -sign ┐ 8-78-7 -sign ┓ 8-78-7 -sign └ 8-78-7 -sign ┗ 8-78-7 -sign ┘ 8-78-7 -sign ┠ 8-78-7 -sign ┣ 8-78-7 -sign ┤ 8-78-7 -sign ┥ 8-78-7 -sign ◦ 568-2758-237-0 -sign * 68-28 -sign , 3-0 -sign { 68-3678 -sign | 68-2368 -sign } 3678-37 -sign 。 368-0 -sign 「 6-78 -sign 」 78-3 -sign 、 68-0 -sign ・ 6-0 -sign ‘ 7 -sign ’ 7 -sign ※ 76-76-0 -sign ♪ 6-3678-35-678-8-2578-3678-3 -#end Zenkaku(full width) punctuations and symbols - -#begin Hiragana -# SeiOn and DakuOn (basic characters) -sign あ 2 a -sign い 23 i -sign う 25 u -sign え 235 e -sign お 35 o -sign か 28 ka -sign き 238 ki -sign く 258 ku -sign け 2358 ke -sign こ 358 ko -sign が 6-28 ga -sign ぎ 6-238 gi -sign ぐ 6-258 gu -sign げ 6-2358 ge -sign ご 6-358 go -sign さ 268 sa -sign し 2368 shi -sign す 2568 su -sign せ 23568 se -sign そ 3568 so -sign ざ 6-268 za -sign じ 6-2368 ji -sign ず 6-2568 zu -sign ぜ 6-23568 ze -sign ぞ 6-3568 zo -sign た 267 ta -sign ち 2367 chi -sign つ 2567 tsu -sign て 23567 te -sign と 3567 to -sign だ 6-267 da -sign ぢ 6-2367 ji -sign づ 6-2567 zu -sign で 6-23567 de -sign ど 6-3567 do -sign な 27 na -sign に 237 ni -sign ぬ 257 nu -sign ね 2357 ne -sign の 357 no -sign は 278 ha -sign ひ 2378 hi -sign ふ 2578 fu -sign へ 23578 he -sign ほ 3578 ho -sign ば 6-278 ba -sign び 6-2378 bi -sign ぶ 6-2578 bu -sign べ 6-23578 be -sign ぼ 6-3578 bo -sign ぱ 8-278 pa -sign ぴ 8-2378 pi -sign ぷ 8-2578 pu -sign ぺ 8-23578 pe -sign ぽ 8-3578 po -sign ま 2678 ma -sign み 23678 mi -sign む 25678 mu -sign め 235678 me -sign も 35678 mo -sign や 57 ya -sign ゆ 578 yu -sign よ 567 yo -sign ら 26 ra -sign り 236 ri -sign る 256 ru -sign れ 2356 re -sign ろ 356 ro -sign わ 7 wa -sign ゐ 58-23 -sign ゑ 58-235 -sign を 67 wo -sign ん 678 n - -# small Hiragana characters -sign ぁ 56-2 small a -sign ぃ 56-23 small i -sign ぅ 56-25 small u -sign ぇ 56-235 small e -sign ぉ 56-35 small o -sign っ 3 small tsu -sign ゃ 56-57 small ya -sign ゅ 56-578 small yu -sign ょ 56-567 small yo - -# Yoon (contracted sound) -always きゃ 5-28 kya -always きゅ 5-258 kyu -always きょ 5-358 kyo -always ぎゃ 56-28 gya -always ぎゅ 56-258 gyu -always ぎょ 56-358 gyo -always しゃ 5-268 sha -always しゅ 5-2568 shu -always しょ 5-3568 sho -always じゃ 56-268 ja -always じゅ 56-2568 ju -always じょ 56-3568 jo -always ちゃ 5-267 cha -always ちゅ 5-2567 chu -always ちょ 5-3567 cho -always ぢゃ 56-267 ja -always ぢゅ 56-2567 ju -always ぢょ 56-3567 jo -always てぃ 5-2367 (tea) -always とぅ 38-2567 (too) -always でぃ 56-2367 (dee) -always どぅ 368-2567 (do) -always にゃ 5-27 nya -always にゅ 5-257 nyu -always にょ 5-357 nyo -always ひゃ 5-278 hya -always ひゅ 5-2578 hyu -always ひょ 5-3578 hyo -always びゃ 56-278 bya -always びゅ 56-2578 byu -always びょ 56-3578 byo -always ぴゃ 58-278 pya -always ぴゅ 58-2578 pyu -always ぴょ 58-3578 pyo -always みゃ 5-2678 mya -always みゅ 5-25678 myu -always みょ 5-35678 myo -always りゃ 5-26 rya -always りゅ 5-256 ryu -always りょ 5-356 ryo -#end Hiragana - -#begin Katakana -# SeiOn and DakuOn (basic characters) -sign ア 2 a -sign イ 23 i -sign ウ 25 u -sign エ 235 e -sign オ 35 o -sign ー 36 (prolong sound) -sign ヴ 6-25 vu -sign カ 28 ka -sign キ 238 ki -sign ク 258 ku -sign ケ 2358 ke -sign コ 358 ko -sign ガ 6-28 ga -sign ギ 6-238 gi -sign グ 6-258 gu -sign ゲ 6-2358 ge -sign ゴ 6-358 go -sign サ 268 sa -sign シ 2368 shi -sign ス 2568 su -sign セ 23568 se -sign ソ 3568 so -sign ザ 6-268 za -sign ジ 6-2368 ji -sign ズ 6-2568 zu -sign ゼ 6-23568 ze -sign ゾ 6-3568 zo -sign タ 267 ta -sign チ 2367 chi -sign ツ 2567 tsu -sign テ 23567 te -sign ト 3567 to -sign ダ 6-267 da -sign ヂ 6-2367 ji -sign ヅ 6-2567 zu -sign デ 6-23567 de -sign ド 6-3567 do -sign ナ 27 na -sign ニ 237 ni -sign ヌ 257 nu -sign ネ 2357 ne -sign ノ 357 no -sign ハ 278 ha -sign ヒ 2378 hi -sign フ 2578 hu -sign ヘ 23578 he -sign ホ 3578 ho -sign バ 6-278 ba -sign ビ 6-2378 bi -sign ブ 6-2578 bu -sign ベ 6-23578 be -sign ボ 6-3578 bo -sign パ 8-278 pa -sign ピ 8-2378 pi -sign プ 8-2578 pu -sign ペ 8-23578 pe -sign ポ 8-3578 po -sign マ 2678 ma -sign ミ 23678 mi -sign ム 25678 mu -sign メ 235678 me -sign モ 35678 mo -sign ヤ 57 ya -sign ユ 578 yu -sign ヨ 567 yo -sign ラ 26 ra -sign リ 236 ri -sign ル 256 ru -sign レ 2356 re -sign ロ 356 ro -sign ワ 7 wa -sign ヲ 67 wo -sign ン 678 n - -# small Katakana characters -sign ァ 56-2 small a -sign ィ 56-23 small i -sign ゥ 56-25 small u -sign ェ 56-235 small e -sign ォ 56-35 small o -sign ヵ 58-28 small ka -sign ヶ 58-2358 small ke -sign ッ 3 small tsu -sign ャ 56-57 small ya -sign ュ 56-578 small yu -sign ョ 56-567 small yo - -# Yoon (contracted sound) -always ウィ 38-23 -always ウェ 38-235 -always ウォ 38-35 -always ヴァ 368-278 -always ヴィ 368-2378 -always ヴェ 368-23578 -always ヴォ 368-3578 -always キャ 5-28 -always キュ 5-258 -always キョ 5-358 -always ギャ 56-28 -always ギュ 56-258 -always ギョ 56-358 -always シャ 5-268 -always シュ 5-2568 -always ショ 5-3568 -always スィ 5-2368 -always シェ 5-23568 -always ジャ 56-268 -always ジュ 56-2568 -always ジョ 56-3568 -always ズィ 56-2368 -always ジェ 56-23568 -always チャ 5-267 -always チュ 5-2567 -always チョ 5-3567 -always チェ 5-23567 -always ツァ 38-267 -always ツィ 38-2367 -always ツェ 38-23567 -always ツォ 38-3567 -always ティ 5-2367 -always テュ 58-2567 -always トゥ 38-2567 -always ディ 56-2367 -always デュ 568-2567 -always ドゥ 368-2567 -always ニャ 5-27 -always ニュ 5-257 -always ニョ 5-357 -always ヒャ 5-278 -always ヒュ 5-2578 -always ヒョ 5-3578 -always ビャ 56-278 -always ビュ 56-2578 -always ビョ 56-3578 -always ピャ 58-278 -always ピュ 58-2578 -always ピョ 58-3578 -always ファ 38-278 -always フィ 38-2378 -always フェ 38-23578 -always フォ 38-3578 -always ミャ 5-2678 -always ミュ 5-25678 -always ミョ 5-35678 -always リャ 5-26 -always リュ 5-256 -always リョ 5-356 -#end Katakana - -#begin Kanji -# JIS level1 -sign 亜 12-24 -sign 唖 12356-24 -sign 娃 12758-36-27456 -sign 阿 1268-248 -sign 哀 178-23745 -sign 愛 178-24 -sign 挨 127568-745 -sign 姶 12758-236-37468 -sign 逢 12378-37458 -sign 葵 1368-24568 -sign 茜 1368-4568 -sign 穐 1375-56-2374568 -sign 悪 12-3468 -sign 握 123756-7458 -sign 渥 1237-3756-7458 -sign 旭 1378-68-345 -sign 葦 1368-234 -sign 芦 1368-36-37456 -sign 鯵 123568-25-245 -sign 梓 1368-3456 -sign 圧 1756-27456 -sign 斡 1356-37456 -sign 扱 123756-374 -sign 宛 18-245 -sign 姐 12758-6-34568 -sign 虻 127568-6-37458 -sign 飴 123568-274 -sign 絢 123-378-24568 -sign 綾 123-36-24568 -sign 鮎 123568-2356-37456 -sign 或 13768-45 -sign 粟 1368-74 -sign 袷 12375-236-37468 -sign 安 125-27458 -sign 庵 1756-2456 -sign 按 123756-27458 -sign 暗 1378-27468 -sign 案 12758-2348 -sign 闇 137568-27468 -sign 鞍 13756-27458 -sign 杏 1368-23456 -sign 以 15-374568 -sign 伊 123-274 -sign 位 127-27468 -sign 依 12375-274 -sign 偉 127-234 -sign 囲 137468 -sign 夷 1758-274 -sign 委 1375-27458 -sign 威 12378-27458 -sign 尉 13756-23745 -sign 惟 1256-234 -sign 意 12-274 -sign 慰 13756-3468 -sign 易 1378-468 -sign 椅 1368-23458 -sign 為 178-74568 -sign 畏 1276-23745 -sign 異 1276-3458 -sign 移 1375-37458 -sign 維 123-234 -sign 緯 137-234 -sign 胃 1276-348 -sign 萎 1258-27458 -sign 衣 12375-24 -sign 謂 1235-348 -sign 違 12378-234 -sign 遺 12378-2348 -sign 医 137568-745 -sign 井 16-234 -sign 亥 16-374 -sign 域 12756-45 -sign 育 178-246 -sign 郁 1356-2468 -sign 磯 12768-37468 -sign 一 168-24 -sign 壱 1256-24 -sign 溢 1568-2346 -sign 逸 1278-346 -sign 稲 1375-45 -sign 茨 1368-7468 -sign 芋 1368-248 -sign 鰯 123568-758-7458 -sign 允 127568-36-748 -sign 印 15-2468 -sign 咽 12356-3768-23458 -sign 員 176-23456 -sign 因 13768-23458 -sign 姻 12758-23458 -sign 引 1758-45 -sign 飲 1768-234568 -sign 淫 1568-2374 -sign 胤 138-234 -sign 蔭 1258-268-3746 -sign 院 1268-346 -sign 陰 1268-3746 -sign 隠 1268-2456 -sign 韻 12768-23456 -sign 吋 12356-56-23468 -sign 右 156-468 -sign 宇 136-248 -sign 烏 123568-245 -sign 羽 127568-34 -sign 迂 1278-36-248 -sign 雨 12376-24 -sign 卯 1268-245 -sign 鵜 1758-36-234568 -sign 窺 1237568-2346 -sign 丑 18-34568 -sign 碓 12768-36-234 -sign 臼 18-2745 -sign 渦 1237-36-248 -sign 嘘 17568-23456 -sign 唄 12356-36-7468 -sign 欝 12568-23468 -sign 蔚 1258-3756-23745 -sign 鰻 123568-36-27468 -sign 姥 12758-37456 -sign 厩 1756-36-458 -sign 浦 1237-37458 -sign 瓜 1368-27456 -sign 閏 137568-237458 -sign 噂 13768-23468 -sign 云 17-2345 -sign 運 1278-274568 -sign 雲 12376-2345 -sign 荏 1368-58-2374 -sign 餌 123568-2345 -sign 叡 1237568-3746 -sign 営 178-237468 -sign 嬰 12758-746 -sign 影 1378-245 -sign 映 1378-345 -sign 曳 18-23468 -sign 栄 178-2348 -sign 永 1568-45 -sign 泳 1237-45 -sign 洩 1237-23468 -sign 瑛 123758-258-345 -sign 盈 137-36-348 -sign 穎 1375-36-345 -sign 頴 12375-36-345 -sign 英 1258-345 -sign 衛 1758-2345 -sign 詠 1376-45 -sign 鋭 128-346 -sign 液 1237-274 -sign 疫 175-3745 -sign 益 1236-348 -sign 駅 13568-2746 -sign 悦 1256-346 -sign 謁 1235-4568 -sign 越 1278-23748 -sign 閲 137568-346 -sign 榎 1368-345 -sign 厭 1756-246 -sign 円 1235-7468 -sign 園 13768-2345 -sign 堰 12756-36-374568 -sign 奄 18-3468 -sign 宴 136-3748 -sign 延 1278-24 -sign 怨 1268-3468 -sign 掩 123756-3468 -sign 援 123756-458 -sign 沿 1237-2345 -sign 演 1568-2345 -sign 炎 17568-74568 -sign 焔 17568-36-2745 -sign 煙 17568-2374 -sign 燕 12756-36-234568 -sign 猿 12358-2345 -sign 縁 137-34568 -sign 艶 1276-23468 -sign 苑 1258-36-245 -sign 薗 1258-3768-2345 -sign 遠 12378-2345 -sign 鉛 128-2345 -sign 鴛 1268-36-234568 -sign 塩 12756-348 -sign 於 13758-748 -sign 汚 1568-374568 -sign 甥 123568-276-2745 -sign 凹 156-37468 -sign 央 12358-345 -sign 奥 13768-3745 -sign 往 1758-237458 -sign 応 1756-3468 -sign 押 1358-237456 -sign 旺 1378-23758-24 -sign 横 1238-3458 -sign 欧 137568-7468 -sign 殴 137568-3745 -sign 王 123758-24 -sign 翁 1358-274568 -sign 襖 12375-3768-3745 -sign 鴬 17568-36-234568 -sign 鴎 137568-234568 -sign 黄 12368-3458 -sign 岡 13768-7458 -sign 沖 1237-346 -sign 荻 1368-36-74568 -sign 億 168-274 -sign 屋 13756-7458 -sign 憶 1256-274 -sign 臆 126-274 -sign 桶 1238-36-27456 -sign 牡 13568-36-345 -sign 乙 168-746 -sign 俺 158-3468 -sign 卸 1768-2468 -sign 恩 12358-3468 -sign 温 1237-348 -sign 穏 1375-2456 -sign 音 12768-3748 -sign 下 156-748 -sign 化 158-456 -sign 仮 127-7468 -sign 何 127-248 -sign 伽 158-23456 -sign 価 127-2374 -sign 佳 158-27456 -sign 加 1275-23456 -sign 可 156-248 -sign 嘉 12756-2745 -sign 夏 135-24568 -sign 嫁 12758-245 -sign 家 1245 -sign 寡 125-2745 -sign 科 1375-37456 -sign 暇 1378-3745 -sign 果 1276-2348 -sign 架 12356-2348 -sign 歌 128-7468 -sign 河 1237-248 -sign 火 174568 -sign 珂 123758-56-248 -sign 禍 12375-248 -sign 禾 1375-74 -sign 稼 136-3745 -sign 箇 12376-23456 -sign 花 1258-456 -sign 苛 1258-56-248 -sign 茄 1368-275-23456 -sign 荷 1258-274 -sign 華 1258-248 -sign 菓 1258-2348 -sign 蝦 127568-36-3745 -sign 課 1235-2746 -sign 嘩 12356-258-248 -sign 貨 176-456 -sign 迦 12378-275-23456 -sign 過 12378-248 -sign 霞 12376-36-3745 -sign 蚊 127568-748 -sign 俄 127-3768-24 -sign 峨 175-3768-24 -sign 我 13768-24 -sign 牙 15-2374568 -sign 画 12758-2746 -sign 臥 12568-274 -sign 芽 1258-2374568 -sign 蛾 127568-37468 -sign 賀 1275-746 -sign 雅 1237568-234 -sign 餓 123568-37468 -sign 駕 13568-275-23456 -sign 介 158-346 -sign 会 1236-2345 -sign 解 13768-34568 -sign 回 13768-23456 -sign 塊 12756-2374 -sign 壊 12756-2456 -sign 廻 1278-23456 -sign 快 1256-237456 -sign 怪 1256-23458 -sign 悔 1256-2748 -sign 恢 1256-756-74568 -sign 懐 1256-2456 -sign 戒 13756-37468 -sign 拐 123756-36-2745 -sign 改 15-4568 -sign 魁 135-36-37456 -sign 晦 1378-2748 -sign 械 1238-37456 -sign 海 1237-2748 -sign 灰 1756-74568 -sign 界 1276-346 -sign 皆 156-3748 -sign 絵 123-2345 -sign 芥 1368-458 -sign 蟹 127568-3768-34568 -sign 開 137568-37456 -sign 階 1268-3748 -sign 貝 1746 -sign 凱 175-748 -sign 劾 137-2745 -sign 外 13758-37456 -sign 咳 12356-36-374 -sign 害 136-237458 -sign 崖 175-25-27456 -sign 慨 1256-458 -sign 概 1238-458 -sign 涯 1568-27456 -sign 碍 12768-7456 -sign 蓋 13568-246 -sign 街 1758-27456 -sign 該 1376-374 -sign 鎧 128-36-745 -sign 骸 128-374 -sign 浬 1237-56-2346 -sign 馨 123768-375-3748 -sign 蛙 127568-27456 -sign 垣 12756-3748 -sign 柿 1368-23468 -sign 蛎 127568-36-7456 -sign 鈎 128-46 -sign 劃 1275-2758-2746 -sign 嚇 12356-248 -sign 各 12568-23456 -sign 廓 1756-268-3458 -sign 拡 123756-3458 -sign 撹 123756-36-2374568 -sign 格 1238-23456 -sign 核 1238-374 -sign 殻 12756-3746 -sign 獲 12358-2458 -sign 確 12768-234 -sign 穫 1375-2458 -sign 覚 178-2374568 -sign 角 13768-48 -sign 赫 128-248 -sign 較 127568-23746 -sign 郭 1268-3458 -sign 閣 137568-24568 -sign 隔 1268-23456 -sign 革 13756-3456 -sign 学 1748 -sign 岳 1258-745 -sign 楽 1378-374 -sign 額 12356-345 -sign 顎 135-23456 -sign 掛 123756-27456 -sign 笠 12376-27468 -sign 樫 1368-2756-24568 -sign 橿 1368-36-2746 -sign 梶 1238-3756-234568 -sign 鰍 123568-375-74568 -sign 潟 1568-74568 -sign 割 136-2745 -sign 喝 12356-36-4568 -sign 恰 1256-236-37468 -sign 括 12356-237456 -sign 活 1237-234568 -sign 渇 1568-4568 -sign 滑 1568-246 -sign 葛 1368-36-4568 -sign 褐 12375-4568 -sign 轄 127568-237458 -sign 且 16-34568 -sign 鰹 123568-2756-24568 -sign 叶 12356-36-3456 -sign 椛 1238-258-456 -sign 樺 1368-258-248 -sign 鞄 13756-37568-34 -sign 株 1238-248 -sign 兜 1236-36-346 -sign 竃 17568-36-2346 -sign 蒲 1368-237-37458 -sign 釜 128-23746 -sign 鎌 128-27468 -sign 噛 12356-768-3745 -sign 鴨 1358-234568 -sign 栢 1368-68-2374568 -sign 茅 1368-7456 -sign 萱 1368-25-3748 -sign 粥 1758-36-3745 -sign 刈 1237568-2745 -sign 苅 1258-237568-2745 -sign 瓦 18-248 -sign 乾 1356-746 -sign 侃 127-2356-245 -sign 冠 136-23468 -sign 寒 125-4568 -sign 刊 128-2745 -sign 勘 137568-2745 -sign 勧 12358-23745 -sign 巻 12358-2468 -sign 喚 12356-348 -sign 堪 12756-2348 -sign 姦 12758-2758-27458 -sign 完 125-346 -sign 官 125-246 -sign 寛 136-2374568 -sign 干 15-248 -sign 幹 1356-248 -sign 患 12356-3468 -sign 感 12378-3468 -sign 慣 1256-27456 -sign 憾 1256-23748 -sign 換 123756-348 -sign 敢 123768-4568 -sign 柑 1368-5-2456 -sign 桓 1238-6-3748 -sign 棺 1238-246 -sign 款 1768-23745 -sign 歓 12358-7468 -sign 汗 1568-248 -sign 漢 1568-2458 -sign 澗 1237-36-246 -sign 潅 1568-78-23458 -sign 環 123758-2456 -sign 甘 15-2456 -sign 監 12568-348 -sign 看 1237568-248 -sign 竿 12376-248 -sign 管 12376-246 -sign 簡 12376-3748 -sign 緩 123-458 -sign 缶 15-7468 -sign 翰 1356-274568 -sign 肝 138-248 -sign 艦 12758-348 -sign 莞 1368-25-346 -sign 観 12358-2374568 -sign 諌 1376-56-23748 -sign 貫 156-27456 -sign 還 12378-2456 -sign 鑑 128-348 -sign 間 137568-3748 -sign 閑 137568-2348 -sign 関 137568-23458 -sign 陥 1268-2745 -sign 韓 1356-36-234 -sign 館 123568-246 -sign 舘 123568-36-246 -sign 丸 12-345 -sign 含 1236-23456 -sign 岸 175-248 -sign 巌 175-4568 -sign 玩 123758-346 -sign 癌 175-37468 -sign 眼 1237568-745 -sign 岩 12768-745 -sign 翫 127568-2-346 -sign 贋 1756-746 -sign 雁 127-36-234568 -sign 頑 136-345 -sign 顔 135-245 -sign 願 1756-345 -sign 企 158-7468 -sign 伎 127-36-2748 -sign 危 1258-2468 -sign 喜 12756-37468 -sign 器 12358-23456 -sign 基 1238-27456 -sign 奇 12358-248 -sign 嬉 12758-27456 -sign 寄 125-248 -sign 岐 175-2748 -sign 希 1237568-23468 -sign 幾 137-37468 -sign 忌 1238-2456 -sign 揮 123756-274568 -sign 机 1238-748 -sign 旗 13758-2348 -sign 既 175-458 -sign 期 126-2348 -sign 棋 1238-36-2348 -sign 棄 178-7456 -sign 機 1238-37468 -sign 帰 1768-2346 -sign 毅 12768-36-34568 -sign 気 137568-24 -sign 汽 1237-374568 -sign 畿 13768-374 -sign 祈 12375-746 -sign 季 1375-3458 -sign 稀 1375-237568-23468 -sign 紀 123-2348 -sign 徽 1758-36-374 -sign 規 12358-346 -sign 記 1235-2348 -sign 貴 176-2348 -sign 起 1278-2348 -sign 軌 127568-345 -sign 輝 178-274568 -sign 飢 123568-748 -sign 騎 13568-248 -sign 鬼 135-2374 -sign 亀 156-2374568 -sign 偽 158-74568 -sign 儀 13568-274 -sign 妓 12758-2748 -sign 宜 125-34568 -sign 戯 12568-37468 -sign 技 123756-2748 -sign 擬 123756-745 -sign 欺 1768-2348 -sign 犠 13568-34568 -sign 疑 175-7456 -sign 祇 12375-2-7468 -sign 義 13568-37468 -sign 蟻 127568-34568 -sign 誼 1235-25-34568 -sign 議 1235-37468 -sign 掬 123756-368-34 -sign 菊 1368-34 -sign 鞠 13756-368-34 -sign 吉 12756-23456 -sign 吃 12356-78-345 -sign 喫 13768-2745 -sign 桔 1238-2756-23456 -sign 橘 1368-36-7456 -sign 詰 1376-23456 -sign 砧 12768-2356-37456 -sign 杵 1238-3568-45 -sign 黍 1368-48 -sign 却 12756-2468 -sign 客 136-23456 -sign 脚 138-2468 -sign 虐 12568-248 -sign 逆 12378-2748 -sign 丘 1258-45 -sign 久 12568-45 -sign 仇 135-458 -sign 休 127-2348 -sign 及 15-374 -sign 吸 12356-374 -sign 宮 125-237468 -sign 弓 1758-24 -sign 急 1258-245 -sign 救 1356-4568 -sign 朽 1238-374568 -sign 求 1356-2374 -sign 汲 1237-5-374 -sign 泣 1237-27468 -sign 灸 17568-24568 -sign 球 123758-2374 -sign 究 125-345 -sign 窮 136-237468 -sign 笈 12376-5-374 -sign 級 123-374 -sign 糾 123-2468 -sign 給 123-37468 -sign 旧 1378-45 -sign 牛 13568-24 -sign 去 12756-3458 -sign 居 13756-24 -sign 巨 12-24568 -sign 拒 12568-237456 -sign 拠 12568-34568 -sign 挙 125-237456 -sign 渠 12568-2374 -sign 虚 12568-74568 -sign 許 1235-34568 -sign 距 123768-24568 -sign 鋸 128-3756-24 -sign 漁 123568-4568 -sign 禦 12375-758-2468 -sign 魚 123568-34 -sign 亨 178-27468 -sign 享 178-3458 -sign 京 178-23456 -sign 供 127-3458 -sign 侠 127-36-274 -sign 僑 158-3745 -sign 兇 136-37568-48 -sign 競 12768-346 -sign 共 15-3458 -sign 凶 137568-48 -sign 協 1356-2745 -sign 匡 137568-23758-24 -sign 卿 1268-36-2468 -sign 叫 12356-2468 -sign 喬 12-3745 -sign 境 12756-274 -sign 峡 175-274 -sign 強 1758-274568 -sign 彊 1758-36-2746 -sign 怯 1256-3458 -sign 恐 178-3468 -sign 恭 1358-2456 -sign 挟 123756-36-274 -sign 教 13756-4568 -sign 橋 1238-3745 -sign 況 1568-346 -sign 狂 12358-237458 -sign 狭 12358-274 -sign 矯 175-36-3745 -sign 胸 138-374568 -sign 脅 1275-246 -sign 興 13768-2346 -sign 蕎 1368-36-3745 -sign 郷 137-745 -sign 鏡 128-274 -sign 響 137-27468 -sign 饗 123568-374 -sign 驚 137568-34568 -sign 仰 127-2468 -sign 凝 1568-745 -sign 尭 18-8-27456 -sign 暁 1378-27456 -sign 業 13568-2348 -sign 局 13756-374568 -sign 曲 1276-46 -sign 極 1238-27468 -sign 玉 1237458 -sign 桐 1368-37456 -sign 粁 1375-345 -sign 僅 158-2348 -sign 勤 1275-2348 -sign 均 12756-374568 -sign 巾 12368-74 -sign 錦 128-36-2374568 -sign 斤 156-746 -sign 欣 1768-746 -sign 欽 1768-248 -sign 琴 123758-237458 -sign 禁 1238-23745 -sign 禽 1236-36-2348 -sign 筋 12376-348 -sign 緊 137-24568 -sign 芹 1368-746 -sign 菌 1258-37468 -sign 衿 12375-3748 -sign 襟 12375-238-23745 -sign 謹 1376-2348 -sign 近 12378-746 -sign 金 1248 -sign 吟 12356-2346 -sign 銀 128-745 -sign 九 168-345 -sign 倶 127-76-46 -sign 句 137568-46 -sign 区 137568-74 -sign 狗 12358-374568 -sign 玖 123758-2568-45 -sign 矩 175-24568 -sign 苦 1258-3456 -sign 躯 123768-37568-74 -sign 駆 13568-374568 -sign 駈 13568-258-45 -sign 駒 13568-46 -sign 具 176-46 -sign 愚 1258-3468 -sign 虞 12568-3458 -sign 喰 12356-23568-234568 -sign 空 125-2348 -sign 偶 127-2458 -sign 寓 125-2458 -sign 遇 12378-2458 -sign 隅 1268-2458 -sign 串 12356-36-37468 -sign 櫛 1238-2376-2468 -sign 釧 128-28-24 -sign 屑 13568-37456 -sign 屈 13756-237458 -sign 掘 123756-37456 -sign 窟 125-3756-237458 -sign 沓 1237-378-48 -sign 靴 13756-58-456 -sign 轡 127568-36-23456 -sign 窪 125-2374 -sign 熊 126-74568 -sign 隈 1268-2746 -sign 粂 12568-375-24 -sign 栗 1368-2374 -sign 繰 123-245 -sign 桑 1368-3746 -sign 鍬 128-375-74568 -sign 勲 1275-74568 -sign 君 135-24 -sign 薫 1258-74568 -sign 訓 1376-248 -sign 群 135-34568 -sign 軍 136-274568 -sign 郡 135-2468 -sign 卦 12756-36-37456 -sign 袈 12375-275-23456 -sign 祁 12375-78-2468 -sign 係 127-374 -sign 傾 127-345 -sign 刑 12375-23745 -sign 兄 12356-346 -sign 啓 13756-23456 -sign 圭 12756-36-27456 -sign 珪 123758-36-27456 -sign 型 1275-27456 -sign 契 1275-23458 -sign 形 12375-245 -sign 径 1758-23458 -sign 恵 127568-3468 -sign 慶 13568-3468 -sign 慧 12358-36-3468 -sign 憩 123568-3468 -sign 掲 123756-4568 -sign 携 137-237456 -sign 敬 137568-4568 -sign 景 1378-23456 -sign 桂 1368-36-27456 -sign 渓 137-2374 -sign 畦 12756-2746 -sign 稽 1375-458 -sign 系 1374 -sign 経 123-23458 -sign 継 123-3745 -sign 繋 127568-374 -sign 罫 12568-36-27456 -sign 茎 1258-23458 -sign 荊 1368-2375-23745 -sign 蛍 17568-346 -sign 計 1235-3456 -sign 詣 1376-2374 -sign 警 137568-3746 -sign 軽 127568-23458 -sign 頚 135-78-23458 -sign 鶏 137-234568 -sign 芸 1258-2345 -sign 迎 12378-2468 -sign 鯨 123568-23456 -sign 劇 13568-23745 -sign 戟 1356-5-37468 -sign 撃 127568-3745 -sign 激 1237-4568 -sign 隙 1268-56-34568 -sign 桁 1758-2348 -sign 傑 158-23458 -sign 欠 1768-24 -sign 決 1237-237456 -sign 潔 1568-374 -sign 穴 125-2346 -sign 結 137-23456 -sign 血 12-348 -sign 訣 1376-237456 -sign 月 1246 -sign 件 127-34568 -sign 倹 158-2346 -sign 倦 127-2358-2468 -sign 健 127-27458 -sign 兼 1236-23458 -sign 券 12358-2745 -sign 剣 15-23745 -sign 喧 12356-25-3748 -sign 圏 13768-2468 -sign 堅 12756-24568 -sign 嫌 12358-27458 -sign 建 1278-27458 -sign 憲 125-3468 -sign 懸 1237568-2456 -sign 拳 12358-237456 -sign 捲 123756-2358-2468 -sign 検 1238-2346 -sign 権 1238-23458 -sign 牽 1356-34568 -sign 犬 123458 -sign 献 123768-23458 -sign 研 12768-23745 -sign 硯 12768-237568-346 -sign 絹 123-246 -sign 県 1237568-374 -sign 肩 13756-348 -sign 見 1237568-346 -sign 謙 1376-23458 -sign 賢 176-24568 -sign 軒 127568-248 -sign 遣 1278-246 -sign 鍵 128-2748 -sign 険 1268-2346 -sign 顕 135-374 -sign 験 13568-2346 -sign 鹸 1768-36-2346 -sign 元 12-346 -sign 原 1756-24 -sign 厳 1756-4568 -sign 幻 137-45 -sign 弦 1758-748 -sign 減 12378-2374 -sign 源 1568-7456 -sign 玄 178-374 -sign 現 123758-2374568 -sign 絃 123-78-374 -sign 舷 12758-78-374 -sign 言 12345 -sign 諺 1235-245 -sign 限 1268-745 -sign 乎 15-745 -sign 個 127-37468 -sign 古 12356-3456 -sign 呼 12356-745 -sign 固 13768-3456 -sign 姑 12758-2356-3456 -sign 孤 1358-3458 -sign 己 168-2348 -sign 庫 1756-274568 -sign 弧 1758-3458 -sign 戸 137456 -sign 故 12356-4568 -sign 枯 1238-3456 -sign 湖 1237-246 -sign 狐 12358-3458 -sign 糊 1375-36-246 -sign 袴 12375-36-23458 -sign 股 138-3745 -sign 胡 18-246 -sign 菰 1368-358-3458 -sign 虎 12568-74 -sign 誇 1235-23458 -sign 跨 123768-36-23458 -sign 鈷 128-2356-3456 -sign 雇 13756-234 -sign 顧 13756-345 -sign 鼓 13756-2748 -sign 五 168-246 -sign 互 156-348 -sign 伍 127-68-246 -sign 午 13568-45 -sign 呉 16-3458 -sign 吾 126-23456 -sign 娯 12758-3458 -sign 後 1758-374 -sign 御 1758-2468 -sign 悟 1256-23456 -sign 梧 1368-26-23456 -sign 檎 1368-36-2346 -sign 瑚 123758-36-246 -sign 碁 1238-36-27468 -sign 語 13746 -sign 誤 1235-3458 -sign 護 1235-2458 -sign 醐 123568-2356-3456 -sign 乞 178-345 -sign 鯉 123568-2346 -sign 交 178-23746 -sign 佼 127-78-23746 -sign 侯 158-745 -sign 候 127-745 -sign 倖 127-2756-248 -sign 光 178-34 -sign 公 18-3458 -sign 功 1358-2745 -sign 効 12376-2745 -sign 勾 137568-274568 -sign 厚 1756-3748 -sign 口 123456 -sign 向 13768-3458 -sign 后 1756-23456 -sign 喉 12356-3458 -sign 坑 12756-346 -sign 垢 12756-36-23456 -sign 好 1358-27458 -sign 孔 1358-746 -sign 孝 13756-3458 -sign 宏 136-3456 -sign 工 1358-24 -sign 巧 1358-374568 -sign 巷 16-2468 -sign 幸 12756-248 -sign 広 1756-3458 -sign 庚 168-3745 -sign 康 1756-7458 -sign 弘 1758-36-274568 -sign 恒 1256-3748 -sign 慌 1256-2458 -sign 抗 123756-346 -sign 拘 123756-46 -sign 控 123756-2348 -sign 攻 1358-4568 -sign 昂 1378-36-2468 -sign 晃 1378-78-34 -sign 更 1378-274 -sign 杭 1238-346 -sign 校 1238-23746 -sign 梗 1368-378-274 -sign 構 1238-274568 -sign 江 1568-3458 -sign 洪 1237-5-3458 -sign 浩 1358-2374 -sign 港 1237-2468 -sign 溝 1237-274568 -sign 甲 168-3458 -sign 皇 1378-237458 -sign 硬 12768-274 -sign 稿 1375-2345 -sign 糠 1375-756-7458 -sign 紅 137-3458 -sign 紘 123-3456 -sign 絞 123-23746 -sign 綱 123-7458 -sign 耕 1358-234 -sign 考 13756-46 -sign 肯 1768-246 -sign 肱 138-36-3456 -sign 腔 138-25-2348 -sign 膏 138-2345 -sign 航 12758-346 -sign 荒 1258-2458 -sign 行 17458 -sign 衡 1758-234568 -sign 講 1376-274568 -sign 貢 176-3458 -sign 購 176-274568 -sign 郊 1268-23746 -sign 酵 123568-3458 -sign 鉱 128-3458 -sign 砿 12768-756-3458 -sign 鋼 128-7458 -sign 閤 137568-236-37468 -sign 降 1268-234 -sign 項 1358-345 -sign 香 1375-3748 -sign 高 156-2345 -sign 鴻 1237-36-234568 -sign 剛 13768-23745 -sign 劫 1275-2756-3458 -sign 号 12356-24568 -sign 合 1236-37468 -sign 壕 12756-78-34568 -sign 拷 13756-237456 -sign 濠 1237-78-34568 -sign 豪 178-34568 -sign 轟 127568-245 -sign 麹 137568-23758-24568 -sign 克 1356-346 -sign 刻 137-23745 -sign 告 1358-2458 -sign 国 13768-237458 -sign 穀 12756-3745 -sign 酷 123568-2458 -sign 鵠 1258-36-234568 -sign 黒 12368-2458 -sign 獄 12358-3746 -sign 漉 1237-3568-456 -sign 腰 138-27458 -sign 甑 13568-8-248 -sign 忽 168-3468 -sign 惚 1256-3468 -sign 骨 128-246 -sign 狛 12358-378-24 -sign 込 12378-274 -sign 此 156-45 -sign 頃 1378-746 -sign 今 1236-24 -sign 困 13768-2348 -sign 坤 12756-6-23468 -sign 墾 175-23746 -sign 婚 1768-27458 -sign 恨 1256-745 -sign 懇 175-3468 -sign 昏 1378-7468 -sign 昆 1378-456 -sign 根 1238-745 -sign 梱 1238-3768-2348 -sign 混 1237-456 -sign 痕 175-36-745 -sign 紺 137-2456 -sign 艮 17-745 -sign 魂 1235-2374 -sign 些 156-456 -sign 佐 158-374 -sign 叉 12-3746 -sign 唆 12356-3745 -sign 嵯 175-3568-3458 -sign 左 156-374 -sign 差 13568-3458 -sign 査 1238-3748 -sign 沙 1568-37458 -sign 瑳 123758-3568-3458 -sign 砂 12768-34568 -sign 詐 1235-2468 -sign 鎖 128-746 -sign 裟 12375-568-37458 -sign 坐 1756-458 -sign 座 1756-274 -sign 挫 123756-756-458 -sign 債 127-746 -sign 催 158-234 -sign 再 1356-37468 -sign 最 1378-3746 -sign 哉 15-237468 -sign 塞 125-27456 -sign 妻 12758-2468 -sign 宰 125-27468 -sign 彩 12376-245 -sign 才 1356-45 -sign 採 123756-23746 -sign 栽 123768-2348 -sign 歳 1768-23748 -sign 済 1568-2468 -sign 災 128-74568 -sign 采 18-23746 -sign 犀 13568-36-37456 -sign 砕 12768-345 -sign 砦 12768-456 -sign 祭 12375-2468 -sign 斎 178-2468 -sign 細 123-2746 -sign 菜 1258-23746 -sign 裁 123768-23745 -sign 載 123768-274568 -sign 際 1268-2468 -sign 剤 1268-23745 -sign 在 1356-27456 -sign 材 1356-2348 -sign 罪 12568-34 -sign 財 176-3456 -sign 冴 1568-36-2374568 -sign 坂 12756-7468 -sign 阪 1268-7468 -sign 堺 12756-276-346 -sign 榊 1368-2375-23468 -sign 肴 1237568-348 -sign 咲 12356-23458 -sign 崎 175-23458 -sign 埼 12756-23458 -sign 碕 12768-36-23458 -sign 鷺 123768-234568 -sign 作 158-2468 -sign 削 138-2745 -sign 咋 12356-36-2468 -sign 搾 136-2468 -sign 昨 1378-2468 -sign 朔 126-2748 -sign 柵 1238-36-237458 -sign 窄 125-36-2468 -sign 策 12376-468 -sign 索 1356-374 -sign 錯 128-23745 -sign 桜 1368-24 -sign 鮭 123568-27456 -sign 笹 1368-356-7456 -sign 匙 1378-36-23748 -sign 冊 15-237458 -sign 刷 12368-2745 -sign 察 125-2468 -sign 拶 128-2746 -sign 撮 123768-237456 -sign 擦 12375-237456 -sign 札 1238-746 -sign 殺 1237568-3745 -sign 薩 1268-7456 -sign 雑 178-234 -sign 皐 1378-36-3456 -sign 鯖 123568-2368-234568 -sign 捌 123756-2356-23745 -sign 錆 128-234568 -sign 鮫 123568-78-23746 -sign 皿 15-348 -sign 晒 1378-2374 -sign 三 168-245 -sign 傘 1236-274 -sign 参 12-245 -sign 山 175-24 -sign 惨 1256-245 -sign 撒 123756-26-4568 -sign 散 126-4568 -sign 桟 1238-36-37468 -sign 燦 17568-2468 -sign 珊 123758-36-237458 -sign 産 1756-234 -sign 算 1237568-37456 -sign 纂 12376-374 -sign 蚕 127568-274568 -sign 讃 1235-76-23458 -sign 賛 176-23458 -sign 酸 123568-45 -sign 餐 123568-3746 -sign 斬 127568-746 -sign 暫 1378-274568 -sign 残 13758-37468 -sign 仕 127-27456 -sign 仔 158-3458 -sign 伺 127-458 -sign 使 158-458 -sign 刺 1238-2745 -sign 司 15-458 -sign 史 12356-274 -sign 嗣 123758-458 -sign 四 168-2456 -sign 士 12756-24 -sign 始 12758-274 -sign 姉 12758-23468 -sign 姿 12758-7468 -sign 子 13458 -sign 屍 13756-23468 -sign 市 123468 -sign 師 12368-246 -sign 志 12756-3468 -sign 思 1276-3468 -sign 指 123756-2374 -sign 支 1278-34 -sign 孜 1358-78-4568 -sign 斯 1238-36-746 -sign 施 13758-23746 -sign 旨 15-2374 -sign 枝 1238-2748 -sign 止 17468 -sign 死 13758-34 -sign 氏 12-7468 -sign 獅 12358-246 -sign 祉 12375-7468 -sign 私 13745 -sign 糸 1234 -sign 紙 123-7468 -sign 紫 12368-274568 -sign 肢 138-2748 -sign 脂 138-2374 -sign 至 15-7458 -sign 視 12375-2374568 -sign 詞 1235-458 -sign 詩 1376-23468 -sign 試 1376-37468 -sign 誌 1376-3468 -sign 諮 1376-7468 -sign 資 1568-746 -sign 賜 176-468 -sign 雌 156-234 -sign 飼 123568-458 -sign 歯 1768-3745 -sign 事 1358-37456 -sign 似 127-374568 -sign 侍 12368-274 -sign 児 1358-346 -sign 字 125-3458 -sign 寺 12756-23468 -sign 慈 137-3468 -sign 持 123756-23468 -sign 時 1378-23468 -sign 次 1568-7468 -sign 滋 1237-374 -sign 治 1568-274 -sign 爾 13768-2374568 -sign 璽 1237568-237458 -sign 痔 175-23468 -sign 磁 12768-374 -sign 示 123745 -sign 而 18-3745 -sign 耳 1237468 -sign 自 1237568-24 -sign 蒔 1258-378-23468 -sign 辞 123568-27468 -sign 汐 1237-3758-24 -sign 鹿 13568-456 -sign 式 13768-34 -sign 識 1235-3748 -sign 鴫 1276-36-234568 -sign 竺 12376-36-234 -sign 軸 127568-2746 -sign 宍 125-68-2345 -sign 雫 12376-56-748 -sign 七 168-23456 -sign 叱 12356-23748 -sign 執 12756-345 -sign 失 18-23458 -sign 嫉 12758-75-46 -sign 室 125-7458 -sign 悉 12376-36-3468 -sign 湿 1237-234 -sign 漆 1237-2348 -sign 疾 175-46 -sign 質 176-746 -sign 実 125-2748 -sign 蔀 1258-2768-2468 -sign 篠 1368-2568-2348 -sign 偲 158-2456 -sign 柴 1238-456 -sign 芝 1368-3745 -sign 屡 13756-2456 -sign 蕊 1258-368-3468 -sign 縞 137-2345 -sign 舎 1236-234568 -sign 写 136-24 -sign 射 123768-23468 -sign 捨 123756-234568 -sign 赦 128-4568 -sign 斜 1236-37456 -sign 煮 17568-3748 -sign 社 12375-27456 -sign 紗 123-3758-34568 -sign 者 13756-3748 -sign 謝 1235-237468 -sign 車 1274568 -sign 遮 12378-7456 -sign 蛇 127568-23748 -sign 邪 1237568-2468 -sign 借 127-23745 -sign 勺 156-374568 -sign 尺 156-2746 -sign 杓 1238-56-374568 -sign 灼 17568-56-374568 -sign 爵 178-745 -sign 酌 123568-56-374568 -sign 釈 1276-3745 -sign 錫 128-468 -sign 若 1258-468 -sign 寂 125-245 -sign 弱 1758-7458 -sign 惹 1256-258-468 -sign 主 123758-74 -sign 取 123768-3746 -sign 守 125-23468 -sign 手 1237456 -sign 朱 16-248 -sign 殊 13758-248 -sign 狩 12358-23468 -sign 珠 123758-248 -sign 種 1375-2346 -sign 腫 138-78-2346 -sign 趣 1278-3746 -sign 酒 123568-2374 -sign 首 135-45 -sign 儒 127-3745 -sign 受 178-3746 -sign 呪 13768-346 -sign 寿 123758-23468 -sign 授 123756-748 -sign 樹 1238-7458 -sign 綬 137-78-3746 -sign 需 12376-3745 -sign 囚 13768-274 -sign 収 123758-3746 -sign 周 13768-27456 -sign 宗 125-23745 -sign 就 178-458 -sign 州 128-45 -sign 修 127-245 -sign 愁 1375-3468 -sign 拾 123756-37468 -sign 洲 1237-28-45 -sign 秀 1375-374 -sign 秋 1375-74568 -sign 終 123-24568 -sign 繍 123-275-7458 -sign 習 127568-3748 -sign 臭 1237568-23458 -sign 舟 12758-24 -sign 蒐 1258-35-2374 -sign 衆 138-34568 -sign 襲 12375-3468 -sign 讐 1376-468 -sign 蹴 123768-458 -sign 輯 127568-237468 -sign 週 12378-27456 -sign 酋 123568-48 -sign 酬 123568-248 -sign 集 1238-234 -sign 醜 123568-345 -sign 什 127-36-3456 -sign 住 127-237458 -sign 充 178-748 -sign 十 13456 -sign 従 1758-7456 -sign 戎 13-37468 -sign 柔 1238-7456 -sign 汁 1237-36-3456 -sign 渋 1237-7468 -sign 獣 12358-748 -sign 縦 123-7456 -sign 重 178-2346 -sign 銃 128-748 -sign 叔 125-3746 -sign 夙 136-37458 -sign 宿 1346 -sign 淑 1237-245 -sign 祝 12375-346 -sign 縮 123-346 -sign 粛 1275-7458 -sign 塾 135-27456 -sign 熟 135-74568 -sign 出 156-237458 -sign 術 1758-2374 -sign 述 1278-2374 -sign 俊 127-274568 -sign 峻 175-25-274568 -sign 春 12358-3748 -sign 瞬 1237568-748 -sign 竣 12768-36-274568 -sign 舜 16-748 -sign 駿 13568-36-274568 -sign 准 1568-234 -sign 循 1758-2374568 -sign 旬 1378-24568 -sign 楯 1238-756-2374568 -sign 殉 13758-24568 -sign 淳 1568-37468 -sign 準 1568-3456 -sign 潤 1568-237458 -sign 盾 1756-2374568 -sign 純 123-27458 -sign 巡 1278-248 -sign 遵 12378-234568 -sign 醇 123568-78-3458 -sign 順 135-248 -sign 処 12568-748 -sign 初 12375-2745 -sign 所 13756-746 -sign 暑 1378-3748 -sign 曙 1378-37458 -sign 渚 1237-3756-3748 -sign 庶 1756-37456 -sign 緒 137-3748 -sign 署 12568-3748 -sign 書 1378-27458 -sign 薯 1368-2568-3748 -sign 藷 1368-376-3748 -sign 諸 1376-3748 -sign 助 1275-34568 -sign 叙 1236-3746 -sign 女 127458 -sign 序 1756-7456 -sign 徐 1758-374568 -sign 恕 12758-36-3468 -sign 鋤 128-275-34568 -sign 除 1268-374568 -sign 傷 158-468 -sign 償 158-746 -sign 勝 126-248 -sign 匠 137568-746 -sign 升 156-2458 -sign 召 1275-37468 -sign 哨 12356-34568 -sign 商 12768-2345 -sign 唱 12356-3748 -sign 嘗 178-36-2374 -sign 奨 123758-456 -sign 妾 12758-27468 -sign 娼 12758-236-3748 -sign 宵 136-34568 -sign 将 123758-34 -sign 小 156-34568 -sign 少 13758-34568 -sign 尚 18-2748 -sign 庄 15-27456 -sign 床 1756-2348 -sign 廠 1756-8-2748 -sign 彰 12768-245 -sign 承 12768-4568 -sign 抄 123756-34568 -sign 招 123756-2745 -sign 掌 178-237456 -sign 捷 123756-26-248 -sign 昇 1378-2458 -sign 昌 1236-3748 -sign 昭 1378-2745 -sign 晶 1378-748 -sign 松 1368-3458 -sign 梢 1238-3568-348 -sign 樟 1368-2768-3456 -sign 樵 1238-23-74568 -sign 沼 1237-2745 -sign 消 1237-34568 -sign 渉 1768-2374 -sign 湘 1237-238-2374568 -sign 焼 17568-27456 -sign 焦 123-74568 -sign 照 1378-74568 -sign 症 175-234 -sign 省 13568-2374568 -sign 硝 12768-348 -sign 礁 12768-74568 -sign 祥 12375-7456 -sign 称 1375-748 -sign 章 12768-3456 -sign 笑 12376-23458 -sign 粧 1375-27456 -sign 紹 123-2745 -sign 肖 13568-348 -sign 菖 1368-236-3748 -sign 蒋 1368-23758-34 -sign 蕉 1368-23-74568 -sign 衝 1758-2346 -sign 裳 12375-8-2748 -sign 訟 1376-3458 -sign 証 1376-234 -sign 詔 1235-2745 -sign 詳 1376-34568 -sign 象 13568-48 -sign 賞 178-746 -sign 醤 123568-23758-34 -sign 鉦 128-768-234 -sign 鍾 128-78-2346 -sign 鐘 128-2346 -sign 障 1268-3456 -sign 鞘 13756-3568-348 -sign 上 156-245 -sign 丈 156-74568 -sign 丞 18-2374 -sign 乗 1375-2348 -sign 冗 136-748 -sign 剰 1375-23745 -sign 城 12756-23748 -sign 場 12756-468 -sign 壌 12756-237468 -sign 嬢 12758-237468 -sign 常 178-23468 -sign 情 1256-234568 -sign 擾 123756-2-7458 -sign 条 12568-2348 -sign 杖 1238-74568 -sign 浄 1568-34568 -sign 状 123758-23458 -sign 畳 1276-34568 -sign 穣 1375-237468 -sign 蒸 1258-2374 -sign 譲 1376-237468 -sign 醸 123568-237468 -sign 錠 128-7456 -sign 嘱 12356-237468 -sign 埴 12756-356-2374568 -sign 飾 123568-27458 -sign 拭 123756-36-37468 -sign 植 1237568-2348 -sign 殖 13758-2374568 -sign 燭 17568-36-274568 -sign 織 123-3748 -sign 職 123768-3748 -sign 色 12368-24 -sign 触 13768-274568 -sign 食 1234568 -sign 蝕 123568-274568 -sign 辱 12368-3456 -sign 尻 13756-468 -sign 伸 158-23468 -sign 信 127-2345 -sign 侵 158-3746 -sign 唇 1356-23456 -sign 娠 12758-3456 -sign 寝 136-3746 -sign 審 125-3745 -sign 心 13468 -sign 慎 1256-2374568 -sign 振 123756-3456 -sign 新 12768-746 -sign 晋 1378-23748 -sign 森 1238-245 -sign 榛 1368-2358-3745 -sign 浸 1568-3746 -sign 深 1237-24568 -sign 申 16-23468 -sign 疹 175-36-245 -sign 真 12-2374568 -sign 神 12375-23468 -sign 秦 12358-3745 -sign 紳 123-23468 -sign 臣 15-24568 -sign 芯 1258-36-3468 -sign 薪 1258-27468 -sign 親 12768-2374568 -sign 診 1376-245 -sign 身 123768-24 -sign 辛 1356-27468 -sign 進 123748 -sign 針 128-3456 -sign 震 12376-3456 -sign 人 1274 -sign 仁 1458 -sign 刃 12-2745 -sign 塵 12756-3568-456 -sign 壬 168-2374 -sign 尋 12356-23468 -sign 甚 12-2348 -sign 尽 12758-74568 -sign 腎 138-3746 -sign 訊 1376-3456 -sign 迅 1278-3456 -sign 陣 1268-274568 -sign 靭 13756-2745 -sign 笥 12376-5-458 -sign 諏 1235-23768-3746 -sign 須 125-24568 -sign 酢 123568-2468 -sign 図 13768-748 -sign 厨 1756-6-37456 -sign 逗 12378-6-37456 -sign 吹 12356-7468 -sign 垂 136-2374 -sign 帥 12368-348 -sign 推 123756-234 -sign 水 12374 -sign 炊 17568-7468 -sign 睡 1237568-2374 -sign 粋 1375-3456 -sign 翠 127568-35-3456 -sign 衰 136-23745 -sign 遂 13-34568 -sign 酔 123568-3456 -sign 錐 128-234 -sign 錘 128-2374 -sign 随 1268-246 -sign 瑞 123758-3745 -sign 髄 138-246 -sign 崇 175-23745 -sign 嵩 175-56-2345 -sign 数 1468 -sign 枢 1238-24568 -sign 趨 1278-24568 -sign 雛 137568-234 -sign 据 123756-3756-24 -sign 杉 1368-245 -sign 椙 1238-236-3748 -sign 菅 1368-246 -sign 頗 135-23748 -sign 雀 13758-234 -sign 裾 12375-3756-24 -sign 澄 1237-37456 -sign 摺 123756-27568-3748 -sign 寸 156-23468 -sign 世 1356-7456 -sign 瀬 1568-468 -sign 畝 1276-24568 -sign 是 1378-7456 -sign 凄 1268-4568 -sign 制 123568-2745 -sign 勢 17568-2745 -sign 姓 12758-234 -sign 征 1758-234 -sign 性 12456 -sign 成 123568-23748 -sign 政 1768-4568 -sign 整 1768-468 -sign 星 1378-234 -sign 晴 1378-234568 -sign 棲 1238-2468 -sign 栖 1238-56-2374 -sign 正 1768-234 -sign 清 1568-234568 -sign 牲 13568-234 -sign 生 123568-234 -sign 盛 123568-348 -sign 精 1375-234568 -sign 聖 123768-237458 -sign 声 123768-3745 -sign 製 123568-23745 -sign 西 156-2374 -sign 誠 1235-23748 -sign 誓 1235-746 -sign 請 1376-234568 -sign 逝 12378-237456 -sign 醒 123568-378-234 -sign 青 12368-234568 -sign 静 123568-346 -sign 斉 1268-748 -sign 税 1375-346 -sign 脆 138-258-2468 -sign 隻 123-3746 -sign 席 1756-234568 -sign 惜 1256-23745 -sign 戚 12378-245 -sign 斥 12-746 -sign 昔 1378-23745 -sign 析 1238-345 -sign 石 127468 -sign 積 1375-746 -sign 籍 12376-23745 -sign 績 123-746 -sign 脊 138-458 -sign 責 123758-746 -sign 赤 12368-248 -sign 跡 123768-2345 -sign 蹟 123768-23758-746 -sign 碩 135-27468 -sign 切 12356-2745 -sign 拙 123756-237458 -sign 接 123756-27468 -sign 摂 123756-237468 -sign 折 123756-746 -sign 設 1235-3745 -sign 窃 125-23456 -sign 節 12376-2468 -sign 説 1235-346 -sign 雪 12376-234568 -sign 絶 137-23468 -sign 舌 12356-234568 -sign 蝉 127568-23456 -sign 仙 158-75-24 -sign 先 12756-748 -sign 千 168-234568 -sign 占 12356-37456 -sign 宣 125-3748 -sign 専 15-237456 -sign 尖 13568-56-23458 -sign 川 128-24 -sign 戦 12356-37468 -sign 扇 13756-274568 -sign 撰 123756-36-3458 -sign 栓 1238-236-237458 -sign 栴 1368-2758-45 -sign 泉 1378-4568 -sign 浅 1237-37468 -sign 洗 1237-748 -sign 染 1568-2348 -sign 潜 1568-23458 -sign 煎 17568-246 -sign 煽 17568-3756-274568 -sign 旋 13758-7456 -sign 穿 1236-2374568 -sign 箭 12376-26-2745 -sign 線 123-4568 -sign 繊 123-237468 -sign 羨 13568-7468 -sign 腺 138-378-4568 -sign 舛 13758-6-234 -sign 船 12758-2345 -sign 薦 1258-34568 -sign 詮 1376-2346 -sign 賎 176-36-37468 -sign 践 123768-37468 -sign 選 12378-3458 -sign 遷 1278-2468 -sign 銭 128-37468 -sign 銑 128-27456 -sign 閃 137568-274 -sign 鮮 123568-34568 -sign 前 126-2745 -sign 善 13568-23456 -sign 漸 1237-746 -sign 然 12358-74568 -sign 全 1236-237458 -sign 禅 12375-23456 -sign 繕 123-234568 -sign 膳 138-23456 -sign 糎 1375-245 -sign 噌 12356-36-34568 -sign 塑 12756-2748 -sign 岨 175-6-34568 -sign 措 123756-23745 -sign 曾 17-34568 -sign 曽 15-34568 -sign 楚 1368-238-2348 -sign 狙 12358-245 -sign 疏 1756-2458 -sign 疎 1756-468 -sign 礎 12768-2348 -sign 祖 12375-34568 -sign 租 1375-34568 -sign 粗 13568-3745 -sign 素 123758-374 -sign 組 123-34568 -sign 蘇 1368-34568 -sign 訴 1376-746 -sign 阻 1268-34568 -sign 遡 12378-26-2748 -sign 鼠 12358-2358-46 -sign 僧 158-34568 -sign 創 135-2745 -sign 双 1376-3746 -sign 叢 1238-3746 -sign 倉 1236-345 -sign 喪 1356-23745 -sign 壮 123758-27456 -sign 奏 12358-23458 -sign 爽 127-36-2374568 -sign 宋 136-2348 -sign 層 13756-34568 -sign 匝 137568-36-23468 -sign 惣 13568-2456 -sign 想 1238-3468 -sign 捜 123756-2345 -sign 掃 123756-2346 -sign 挿 13568-237456 -sign 掻 123756-36-274568 -sign 操 123756-245 -sign 早 1378-3456 -sign 曹 12-34568 -sign 巣 128-2348 -sign 槍 1238-236-345 -sign 槽 1238-2-34568 -sign 漕 1237-36-34568 -sign 燥 17568-245 -sign 争 13568-346 -sign 痩 175-2345 -sign 相 1238-2374568 -sign 窓 136-3458 -sign 糟 1375-2-34568 -sign 総 123-3458 -sign 綜 123-25-23745 -sign 聡 123768-3458 -sign 草 12458 -sign 荘 1258-237458 -sign 葬 1258-37456 -sign 蒼 1258-236-345 -sign 藻 1368-36-2374 -sign 装 12756-23745 -sign 走 12748 -sign 送 12378-23458 -sign 遭 12378-34568 -sign 鎗 128-236-345 -sign 霜 12376-2348 -sign 騒 13568-274568 -sign 像 158-48 -sign 増 12756-34568 -sign 憎 1256-34568 -sign 臓 126-24568 -sign 蔵 1258-24568 -sign 贈 176-34568 -sign 造 1278-2458 -sign 促 127-237468 -sign 側 158-2745 -sign 則 176-2745 -sign 即 12568-2468 -sign 息 1237568-3468 -sign 捉 123756-23768-34 -sign 束 1238-468 -sign 測 1568-2745 -sign 足 123768-34 -sign 速 12378-468 -sign 俗 127-2746 -sign 属 13756-237468 -sign 賊 176-237468 -sign 族 13758-745 -sign 続 123-27456 -sign 卒 135-3456 -sign 袖 12375-45 -sign 其 15-2348 -sign 揃 1275-237456 -sign 存 1356-3458 -sign 孫 1358-374 -sign 尊 123568-23468 -sign 損 123756-23456 -sign 村 1238-23468 -sign 遜 12378-358-374 -sign 他 127-23746 -sign 多 13758-37458 -sign 太 13-23458 -sign 汰 1568-34 -sign 詑 1235-36-23748 -sign 唾 12356-36-2374 -sign 堕 12756-246 -sign 妥 12758-748 -sign 惰 1256-246 -sign 打 123756-237456 -sign 柁 1238-36-23748 -sign 舵 12758-36-23748 -sign 楕 1238-36-246 -sign 陀 1268-36-23748 -sign 駄 12358-34568 -sign 騨 13568-2356-23456 -sign 体 127-48 -sign 堆 12756-234 -sign 対 1276-234 -sign 耐 1375-23468 -sign 岱 175-58-37468 -sign 帯 12368-7456 -sign 待 1758-23468 -sign 怠 127-3468 -sign 態 126-3468 -sign 戴 123768-2746 -sign 替 1378-23458 -sign 泰 12358-2374 -sign 滞 1237-7456 -sign 胎 138-274 -sign 腿 138-2378-745 -sign 苔 1368-274 -sign 袋 12375-37468 -sign 貸 176-37468 -sign 退 12378-745 -sign 逮 12378-7458 -sign 隊 13568-2468 -sign 黛 12368-58-37468 -sign 鯛 123568-2746 -sign 代 158-37468 -sign 台 15-274 -sign 大 156-23458 -sign 第 12376-7458 -sign 醍 123568-378-7456 -sign 題 135-3748 -sign 鷹 1756-36-234568 -sign 滝 1237-3468 -sign 瀧 1237-237-3468 -sign 卓 1378-37456 -sign 啄 12356-3568-74 -sign 宅 125-274 -sign 托 123756-36-458 -sign 択 123756-2746 -sign 拓 12768-237456 -sign 沢 1276-2374 -sign 濯 175-2374 -sign 琢 123758-3568-74 -sign 託 1235-274 -sign 鐸 128-36-2746 -sign 濁 1568-274568 -sign 諾 1235-468 -sign 茸 1368-237468 -sign 凧 127568-23468 -sign 蛸 127568-348 -sign 只 12356-2748 -sign 叩 1268-37468 -sign 但 127-3748 -sign 達 12378-2746 -sign 辰 15-3456 -sign 奪 12358-234 -sign 脱 138-346 -sign 巽 17-3458 -sign 竪 12568-2768-24 -sign 辿 1278-745 -sign 棚 1238-348 -sign 谷 1276-24 -sign 狸 12358-56-2346 -sign 鱈 123568-2376-234568 -sign 樽 1238-36-2746 -sign 誰 1235-234 -sign 丹 12758-45 -sign 単 12356-23456 -sign 嘆 12356-2458 -sign 坦 12756-5-3748 -sign 担 123756-3748 -sign 探 123756-24568 -sign 旦 15-3748 -sign 歎 1258-7468 -sign 淡 1237-74568 -sign 湛 1237-2-2348 -sign 炭 175-74568 -sign 短 13756-745 -sign 端 12768-3745 -sign 箪 12376-2356-23456 -sign 綻 123-25-7456 -sign 耽 123768-748 -sign 胆 138-3748 -sign 蛋 1756-2746 -sign 誕 1235-2748 -sign 鍛 128-3745 -sign 団 13768-237456 -sign 壇 178-37468 -sign 弾 1758-23456 -sign 断 176-3745 -sign 暖 1378-458 -sign 檀 1368-78-37468 -sign 段 15-3745 -sign 男 1276-2745 -sign 談 1235-74568 -sign 値 127-2374568 -sign 知 175-23456 -sign 地 12756-23746 -sign 弛 1758-23746 -sign 恥 123768-3468 -sign 智 175-3748 -sign 池 1237-23746 -sign 痴 175-745 -sign 稚 1375-234 -sign 置 12568-2374568 -sign 致 1568-7458 -sign 蜘 127568-75-23456 -sign 遅 12378-37456 -sign 馳 13568-23746 -sign 築 12376-748 -sign 畜 178-2746 -sign 竹 123746 -sign 筑 12376-2458 -sign 蓄 1258-2746 -sign 逐 1278-34568 -sign 秩 1375-23458 -sign 窒 136-7458 -sign 茶 1368-2348 -sign 嫡 12758-345 -sign 着 1237568-34568 -sign 中 156-346 -sign 仲 127-346 -sign 宙 125-45 -sign 忠 136-3468 -sign 抽 123756-45 -sign 昼 1276-3748 -sign 柱 1238-237458 -sign 注 1237-237458 -sign 虫 127568-24 -sign 衷 12-23745 -sign 註 1235-237458 -sign 酎 123568-56-23468 -sign 鋳 128-23468 -sign 駐 13568-237458 -sign 樗 1368-2376-24 -sign 瀦 1568-3756-3748 -sign 猪 12358-2346 -sign 苧 1368-68-237456 -sign 著 13756-2458 -sign 貯 176-237456 -sign 丁 168-237456 -sign 兆 168-346 -sign 凋 1568-3768-27456 -sign 喋 12356-7456 -sign 寵 136-27468 -sign 帖 12368-36-37456 -sign 帳 12368-37456 -sign 庁 1756-3456 -sign 弔 1758-46 -sign 張 1758-37456 -sign 彫 13768-245 -sign 徴 1758-745 -sign 懲 1758-3468 -sign 挑 123756-68-346 -sign 暢 12368-468 -sign 朝 1356-348 -sign 潮 1237-3748 -sign 牒 123758-36-7456 -sign 町 1276-237456 -sign 眺 1237568-245 -sign 聴 123768-3456 -sign 脹 126-37456 -sign 腸 138-468 -sign 蝶 127568-7456 -sign 調 1376-27456 -sign 諜 1235-7456 -sign 超 1278-2745 -sign 跳 123768-346 -sign 銚 128-68-346 -sign 長 15-37456 -sign 頂 135-237456 -sign 鳥 123568-24 -sign 勅 1275-468 -sign 捗 1768-237456 -sign 直 1356-2374568 -sign 朕 126-23458 -sign 沈 1568-748 -sign 珍 123758-245 -sign 賃 176-2374 -sign 鎮 128-2374568 -sign 陳 1268-23748 -sign 津 1568-27458 -sign 墜 13568-27456 -sign 椎 1368-36-234 -sign 槌 1238-23748 -sign 追 12378-246 -sign 鎚 128-2378-246 -sign 痛 175-27456 -sign 通 1278-27456 -sign 塚 12756-245 -sign 栂 1368-56-2748 -sign 掴 123756-3768-237458 -sign 槻 1368-2358-346 -sign 佃 1276-274 -sign 漬 1568-345 -sign 柘 1368-25-27468 -sign 辻 12378-3456 -sign 蔦 1368-234568 -sign 綴 137-3746 -sign 鍔 128-36-23458 -sign 椿 1368-2358-3748 -sign 潰 1237-36-746 -sign 坪 1236-27456 -sign 壷 12756-78-24 -sign 嬬 12758-2376-3745 -sign 紬 123-276-45 -sign 爪 138-27456 -sign 吊 12368-37468 -sign 釣 128-374568 -sign 鶴 156-234568 -sign 亭 18-237456 -sign 低 156-7468 -sign 停 158-237456 -sign 偵 158-37456 -sign 剃 1275-758-346 -sign 貞 176-37456 -sign 呈 12356-237458 -sign 堤 12756-7456 -sign 定 125-7456 -sign 帝 12768-23468 -sign 底 1756-7468 -sign 庭 1756-237458 -sign 廷 1278-237458 -sign 弟 1758-346 -sign 悌 1256-758-346 -sign 抵 123756-7468 -sign 挺 123756-278-237458 -sign 提 123756-7456 -sign 梯 1238-758-346 -sign 汀 1237-68-237456 -sign 碇 12768-25-7456 -sign 禎 12375-76-37456 -sign 程 1375-237458 -sign 締 123-27468 -sign 艇 12758-237458 -sign 訂 1235-237456 -sign 諦 1235-27468 -sign 蹄 123768-27468 -sign 逓 12378-24568 -sign 邸 137568-2468 -sign 鄭 1268-36-237456 -sign 釘 128-237456 -sign 鼎 125-237568-245 -sign 泥 1237-458 -sign 摘 123756-345 -sign 擢 123756-36-745 -sign 敵 135-4568 -sign 滴 1237-345 -sign 的 1378-374568 -sign 笛 1276-23746 -sign 適 12378-345 -sign 鏑 128-36-345 -sign 溺 1237-758-7458 -sign 哲 12356-746 -sign 徹 1758-246 -sign 撤 123756-246 -sign 轍 127568-246 -sign 迭 1278-23458 -sign 鉄 128-23458 -sign 典 1276-2346 -sign 填 12756-2-2374568 -sign 天 12-23458 -sign 展 13756-37456 -sign 店 17456 -sign 添 1568-2456 -sign 纏 137-7456 -sign 甜 123568-2456 -sign 貼 176-2748 -sign 転 127568-237456 -sign 顛 1237568-345 -sign 点 12356-74568 -sign 伝 127-237456 -sign 殿 1358-3745 -sign 澱 1237-358-3745 -sign 田 12746 -sign 電 12376-3468 -sign 兎 13568-245 -sign 吐 12356-27456 -sign 堵 12756-36-3748 -sign 塗 1237-27456 -sign 妬 12758-36-27468 -sign 屠 13758-3748 -sign 徒 1758-2748 -sign 斗 156-37456 -sign 杜 1368-238-245 -sign 渡 1237-3746 -sign 登 12568-37456 -sign 菟 1368-275-346 -sign 賭 176-3748 -sign 途 12378-374568 -sign 都 12468 -sign 鍍 128-756-3746 -sign 砥 12768-2-7468 -sign 砺 12768-78-27468 -sign 努 1275-3746 -sign 度 1756-3746 -sign 土 127456 -sign 奴 12758-3746 -sign 怒 12758-3468 -sign 倒 127-7458 -sign 党 178-346 -sign 冬 12568-24 -sign 凍 1568-23748 -sign 刀 15-2745 -sign 唐 1756-374568 -sign 塔 12756-2458 -sign 塘 12756-756-374568 -sign 套 12358-36-37456 -sign 宕 125-36-27468 -sign 島 123568-745 -sign 嶋 175-23568-24 -sign 悼 1256-37456 -sign 投 123756-3745 -sign 搭 123756-3756-346 -sign 東 156-23748 -sign 桃 1368-346 -sign 梼 1238-78-237458 -sign 棟 1238-56-23748 -sign 盗 1768-348 -sign 淘 1237-36-37456 -sign 湯 1237-468 -sign 涛 1568-23758-23468 -sign 灯 17568-237456 -sign 燈 17568-37456 -sign 当 178-27458 -sign 痘 175-37456 -sign 祷 12375-237458 -sign 等 12376-23468 -sign 答 12376-37468 -sign 筒 12376-37456 -sign 糖 1375-374568 -sign 統 123-748 -sign 到 1758-2745 -sign 董 1258-78-2346 -sign 蕩 1258-237-468 -sign 藤 1368-27458 -sign 討 1235-23468 -sign 謄 126-2345 -sign 豆 16-37456 -sign 踏 123768-2374 -sign 逃 12378-346 -sign 透 12378-374 -sign 鐙 128-2568-37456 -sign 陶 1268-37456 -sign 頭 135-37456 -sign 騰 126-34568 -sign 闘 137568-23468 -sign 働 127-2346 -sign 動 1236-2745 -sign 同 13768-37456 -sign 堂 178-27456 -sign 導 12378-23468 -sign 憧 1256-2346 -sign 撞 123756-2768-2346 -sign 洞 1237-3768-37456 -sign 瞳 1237568-27468 -sign 童 12768-2346 -sign 胴 138-37456 -sign 萄 1368-78-37456 -sign 道 12378-45 -sign 銅 128-37456 -sign 峠 175-245 -sign 鴇 1356-78-234568 -sign 匿 137568-468 -sign 得 1758-3748 -sign 徳 1758-3456 -sign 涜 1237-2756-746 -sign 特 13568-23468 -sign 督 125-2374568 -sign 禿 1375-36-748 -sign 篤 12376-34568 -sign 毒 123758-2748 -sign 独 12358-274568 -sign 読 1235-27456 -sign 栃 1368-68-27468 -sign 橡 1368-3568-48 -sign 凸 156-23456 -sign 突 125-23458 -sign 椴 1238-5-3745 -sign 届 13756-2746 -sign 鳶 13756-36-234568 -sign 苫 1258-2356-37456 -sign 寅 125-2345 -sign 酉 123568-74 -sign 瀞 1237-23568-346 -sign 噸 12356-35-27458 -sign 屯 156-27458 -sign 惇 1256-78-3458 -sign 敦 1358-36-4568 -sign 沌 1237-56-27458 -sign 豚 13568-74 -sign 遁 12378-2374568 -sign 頓 135-27458 -sign 呑 12358-37468 -sign 曇 1378-23746 -sign 鈍 128-27458 -sign 奈 12358-458 -sign 那 127-36-2468 -sign 内 13768-458 -sign 乍 18-2468 -sign 凪 1768-274568 -sign 薙 1258-75-34 -sign 謎 1235-2378-3745 -sign 灘 1237-258-234 -sign 捺 123756-2358-458 -sign 鍋 128-36-248 -sign 楢 1368-23568-48 -sign 馴 13568-2458 -sign 縄 123-2374568 -sign 畷 1276-3746 -sign 南 156-237468 -sign 楠 1368-56-237468 -sign 軟 127568-7468 -sign 難 1258-234 -sign 汝 12758-4568 -sign 二 168-234 -sign 尼 13756-458 -sign 弐 13768-234 -sign 迩 12378-36-37468 -sign 匂 137568-2374 -sign 賑 1356-345 -sign 肉 1348 -sign 虹 1358-245 -sign 廿 168-37456 -sign 日 13748 -sign 乳 12376-746 -sign 入 156-274 -sign 如 12758-23456 -sign 尿 13756-2374 -sign 韮 1368-25-74568 -sign 任 158-2374 -sign 妊 12758-2374 -sign 忍 1275-3468 -sign 認 1376-2745 -sign 濡 1568-3745 -sign 禰 12375-3768-2374568 -sign 祢 12375-748 -sign 寧 136-237456 -sign 葱 1368-3468 -sign 猫 12358-48 -sign 熱 17568-24 -sign 年 1378-248 -sign 念 1236-3468 -sign 捻 123756-2456 -sign 撚 123756-2358-74568 -sign 燃 17568-23458 -sign 粘 1375-37468 -sign 乃 12-374 -sign 廼 1278-56-2374 -sign 之 16-3745 -sign 埜 12756-238-2348 -sign 嚢 12375-3456 -sign 悩 1256-23746 -sign 濃 1237-3456 -sign 納 137-458 -sign 能 126-3745 -sign 脳 138-23746 -sign 膿 138-276-3456 -sign 農 1276-3456 -sign 覗 1237568-458 -sign 蚤 127568-3746 -sign 巴 16-23748 -sign 把 123756-36-23748 -sign 播 123756-375-2746 -sign 覇 13756-246 -sign 杷 1368-78-23748 -sign 波 1237-23748 -sign 派 1568-237468 -sign 琶 123758-36-23748 -sign 破 12768-23748 -sign 婆 12758-23748 -sign 罵 13568-24568 -sign 芭 1368-36-23748 -sign 馬 134568 -sign 俳 127-74568 -sign 廃 1756-24568 -sign 拝 1278-234 -sign 排 123756-74568 -sign 敗 176-4568 -sign 杯 1238-27458 -sign 盃 12758-5-348 -sign 牌 123758-2746 -sign 背 138-2348 -sign 肺 138-23468 -sign 輩 17568-274568 -sign 配 123568-2348 -sign 倍 158-27468 -sign 培 12756-27468 -sign 媒 12758-2456 -sign 梅 1368-2748 -sign 楳 1368-256-2348 -sign 煤 17568-2456 -sign 狽 12358-36-746 -sign 買 12568-746 -sign 売 12756-746 -sign 賠 176-27468 -sign 陪 1268-27468 -sign 這 12378-3746 -sign 蝿 127568-36-2374568 -sign 秤 1375-236-248 -sign 矧 175-758-45 -sign 萩 1368-74568 -sign 伯 158-3748 -sign 剥 123768-2745 -sign 博 1356-237456 -sign 拍 1378-237456 -sign 柏 1368-3748 -sign 泊 1568-3748 -sign 白 1378-24 -sign 箔 12376-568-3748 -sign 粕 1375-378-24 -sign 舶 12758-3748 -sign 薄 1258-237456 -sign 迫 12378-3748 -sign 曝 1378-378-3458 -sign 漠 1237-36-2458 -sign 爆 17568-3458 -sign 縛 123-237456 -sign 莫 18-2458 -sign 駁 13568-3746 -sign 麦 123758-24568 -sign 函 13768-27468 -sign 箱 12376-2374568 -sign 硲 12768-276-24 -sign 箸 13756-23746 -sign 肇 12758-3756-23456 -sign 筈 12356-23746 -sign 櫨 1368-78-2746 -sign 幡 12368-375-2746 -sign 肌 138-748 -sign 畑 17568-2746 -sign 畠 1378-2746 -sign 八 168-2346 -sign 鉢 128-48 -sign 溌 1237-36-24568 -sign 発 124568 -sign 醗 123568-36-24568 -sign 髪 13756-245 -sign 伐 12-37468 -sign 罰 12568-23745 -sign 抜 123756-3746 -sign 筏 12376-36-37468 -sign 閥 137568-37468 -sign 鳩 135-234568 -sign 噺 12356-27468 -sign 塙 12756-56-2345 -sign 蛤 127568-236-37468 -sign 隼 123-36-3456 -sign 伴 158-2748 -sign 判 1278-23745 -sign 半 1356-2748 -sign 反 1278-7468 -sign 叛 1356-7468 -sign 帆 12368-748 -sign 搬 12758-237456 -sign 斑 123758-748 -sign 板 1238-7468 -sign 氾 1237-36-2468 -sign 汎 1237-5-748 -sign 版 123758-7468 -sign 犯 12358-2748 -sign 班 123758-2745 -sign 畔 1276-2748 -sign 繁 1278-374 -sign 般 12758-3745 -sign 藩 1258-4568 -sign 販 176-7468 -sign 範 12376-274568 -sign 釆 18-8-23746 -sign 煩 17568-345 -sign 頒 135-2346 -sign 飯 123568-7468 -sign 挽 123756-36-346 -sign 晩 1378-346 -sign 番 1375-2746 -sign 盤 1375-348 -sign 磐 12768-36-3745 -sign 蕃 1258-375-2746 -sign 蛮 1235-274568 -sign 匪 137568-5-74568 -sign 卑 1276-2468 -sign 否 12758-37468 -sign 妃 123758-2348 -sign 庇 1756-456 -sign 彼 1758-23748 -sign 悲 17568-3468 -sign 扉 13756-5-74568 -sign 批 123756-456 -sign 披 123756-5-23748 -sign 斐 17568-748 -sign 比 1456 -sign 泌 1568-3468 -sign 疲 175-23748 -sign 皮 15-23748 -sign 碑 12768-2746 -sign 秘 1375-46 -sign 緋 137-74568 -sign 罷 12568-246 -sign 肥 138-23748 -sign 被 12375-23748 -sign 誹 1376-74568 -sign 費 1237568-746 -sign 避 12378-27468 -sign 非 15-74568 -sign 飛 1356-23748 -sign 樋 1238-278-27456 -sign 簸 12376-5-23748 -sign 備 127-23748 -sign 尾 13756-234568 -sign 微 1758-4568 -sign 枇 1368-78-456 -sign 毘 1276-456 -sign 琵 123758-36-456 -sign 眉 1237568-234568 -sign 美 13568-23458 -sign 鼻 1237568-2746 -sign 柊 1368-2568-24 -sign 稗 1368-276-2468 -sign 匹 137568-748 -sign 疋 18-7456 -sign 髭 13756-36-23456 -sign 彦 1756-245 -sign 膝 138-4568 -sign 菱 1368-2458 -sign 肘 138-456 -sign 弼 1758-68-2374568 -sign 必 1368-46 -sign 畢 1276-248 -sign 筆 12376-27458 -sign 逼 12378-36-27458 -sign 桧 1368-368-2346 -sign 姫 12758-24568 -sign 媛 12758-458 -sign 紐 137-23748 -sign 百 168-2374568 -sign 謬 1235-27568-34 -sign 俵 158-23745 -sign 彪 125-2568-74 -sign 標 1238-2374 -sign 氷 14568 -sign 漂 1237-2374 -sign 瓢 1368-237-23745 -sign 票 1237-23745 -sign 表 123758-23745 -sign 評 1235-2346 -sign 豹 13568-23748 -sign 廟 1756-356-348 -sign 描 123756-2458 -sign 病 1745 -sign 秒 1378-34568 -sign 苗 1276-2458 -sign 錨 128-2458 -sign 鋲 128-258-2346 -sign 蒜 1368-36-23745 -sign 蛭 127568-5-7458 -sign 鰭 123568-36-37456 -sign 品 12356-245 -sign 彬 1238-368-245 -sign 斌 178-3768-7468 -sign 浜 1237-2346 -sign 瀕 1237-768-345 -sign 貧 1236-746 -sign 賓 125-746 -sign 頻 1768-345 -sign 敏 178-4568 -sign 瓶 13756-248 -sign 不 15-27458 -sign 付 127-23468 -sign 埠 12756-268-27458 -sign 夫 17-23458 -sign 婦 12758-2346 -sign 富 136-27458 -sign 冨 12-36-27458 -sign 布 1356-23468 -sign 府 1756-23468 -sign 怖 1256-23468 -sign 扶 123756-23458 -sign 敷 127568-4568 -sign 斧 12376-345 -sign 普 12768-27458 -sign 浮 1568-245 -sign 父 156-23746 -sign 符 12376-274 -sign 腐 1756-348 -sign 膚 12568-2746 -sign 芙 1368-7-23458 -sign 譜 1235-27458 -sign 負 1275-345 -sign 賦 135-7468 -sign 赴 1278-37456 -sign 阜 1268-27458 -sign 附 1268-23468 -sign 侮 127-2748 -sign 撫 123756-27568-74568 -sign 武 13768-7468 -sign 舞 127568-37458 -sign 葡 1368-78-37458 -sign 蕪 1368-27568-74568 -sign 部 12768-2468 -sign 封 12756-27456 -sign 楓 1368-274568 -sign 風 127568-346 -sign 葺 1258-237468 -sign 蕗 1368-23768-23456 -sign 伏 127-23458 -sign 副 12758-2745 -sign 復 1758-24568 -sign 幅 12368-27458 -sign 服 126-374 -sign 福 12375-27458 -sign 腹 138-24568 -sign 複 12375-24568 -sign 覆 1568-24568 -sign 淵 1237-36-2745 -sign 弗 18-2374568 -sign 払 123756-2374568 -sign 沸 1568-2374568 -sign 仏 158-2374568 -sign 物 13568-468 -sign 鮒 123568-27-23468 -sign 分 12346 -sign 吻 12356-468 -sign 噴 12356-27458 -sign 墳 12756-27458 -sign 憤 1256-27458 -sign 扮 123756-36-2346 -sign 焚 17568-2348 -sign 奮 12358-2746 -sign 粉 1236-3745 -sign 糞 1375-276-3458 -sign 紛 123-2346 -sign 雰 12376-2346 -sign 文 178-74 -sign 聞 137568-237468 -sign 丙 168-237458 -sign 併 127-37456 -sign 兵 1258-2346 -sign 塀 12756-36-237458 -sign 幣 1568-23468 -sign 平 1236-248 -sign 弊 1568-37456 -sign 柄 1238-2345 -sign 並 12768-27468 -sign 蔽 1258-36-4568 -sign 閉 137568-3456 -sign 陛 1268-27456 -sign 米 1375-24 -sign 頁 1345 -sign 僻 127-36-27468 -sign 壁 12768-27456 -sign 癖 175-27468 -sign 碧 123758-27468 -sign 別 12356-23745 -sign 瞥 1237568-4568 -sign 蔑 12568-23748 -sign 箆 12376-36-456 -sign 偏 158-237458 -sign 変 1235-24568 -sign 片 123758-46 -sign 篇 12376-36-237458 -sign 編 123-237458 -sign 辺 12378-2745 -sign 返 12378-7468 -sign 遍 12378-237458 -sign 便 158-274 -sign 勉 1275-2745 -sign 娩 12758-275-346 -sign 弁 127568-37456 -sign 鞭 13756-58-274 -sign 保 127-23456 -sign 舗 1236-37458 -sign 鋪 128-36-37458 -sign 圃 13768-36-37458 -sign 捕 123756-37458 -sign 歩 1768-34568 -sign 甫 18-37458 -sign 補 12375-37458 -sign 輔 127568-36-37458 -sign 穂 1375-274568 -sign 募 1258-2745 -sign 墓 1258-27456 -sign 慕 1258-2456 -sign 戊 168-23748 -sign 暮 1258-3748 -sign 母 156-2748 -sign 簿 12376-237456 -sign 菩 1368-36-27468 -sign 倣 158-37458 -sign 俸 127-2358-37458 -sign 包 137568-34 -sign 呆 12356-36-2348 -sign 報 12756-374 -sign 奉 12358-37458 -sign 宝 125-237458 -sign 峰 175-37458 -sign 峯 175-36-37458 -sign 崩 175-246 -sign 庖 1756-37568-34 -sign 抱 123756-374568 -sign 捧 123756-2358-37458 -sign 放 13758-4568 -sign 方 137458 -sign 朋 126-246 -sign 法 1237-3458 -sign 泡 1237-74 -sign 烹 17568-78-27468 -sign 砲 12768-374568 -sign 縫 137-37458 -sign 胞 126-374568 -sign 芳 1258-37458 -sign 萌 1258-378-246 -sign 蓬 1368-37458 -sign 蜂 13758-274568 -sign 褒 136-274 -sign 訪 1235-37458 -sign 豊 1276-37456 -sign 邦 123758-2468 -sign 鋒 128-37458 -sign 飽 123568-374568 -sign 鳳 127568-36-234568 -sign 鵬 126-234568 -sign 乏 13-3745 -sign 亡 16-37458 -sign 傍 127-37458 -sign 剖 12768-2745 -sign 坊 12756-37458 -sign 妨 12758-37458 -sign 帽 12368-2374568 -sign 忘 13758-3468 -sign 忙 1256-37458 -sign 房 13756-37458 -sign 暴 1378-3458 -sign 望 13758-246 -sign 某 1256-2348 -sign 棒 1238-37458 -sign 冒 1378-2374568 -sign 紡 123-37458 -sign 肪 138-37458 -sign 膨 126-245 -sign 謀 1376-2456 -sign 貌 13568-3748 -sign 貿 126-746 -sign 鉾 128-274568 -sign 防 1268-37458 -sign 吠 12358-36-23456 -sign 頬 135-274 -sign 北 156-2348 -sign 僕 127-274 -sign 卜 13-37456 -sign 墨 12368-27456 -sign 撲 123756-274 -sign 朴 1238-36-37456 -sign 牧 13568-4568 -sign 睦 1237568-274568 -sign 穆 1375-3758-34568 -sign 釦 128-36-23456 -sign 勃 1275-3456 -sign 没 1237-3745 -sign 殆 13758-274 -sign 堀 12756-37456 -sign 幌 12368-2346 -sign 奔 12358-37456 -sign 本 1238-48 -sign 翻 1276-274568 -sign 凡 15-748 -sign 盆 1275-348 -sign 摩 1756-237456 -sign 磨 1756-27468 -sign 魔 1756-2374 -sign 麻 1368-27468 -sign 埋 12756-2346 -sign 妹 12758-46 -sign 昧 1378-238-45 -sign 枚 1238-4568 -sign 毎 178-2748 -sign 哩 12356-56-2346 -sign 槙 1238-2-2374568 -sign 幕 1258-23468 -sign 膜 138-2458 -sign 枕 1238-237468 -sign 鮪 123568-356-246 -sign 柾 1368-768-234 -sign 鱒 123568-23568-23468 -sign 桝 1238-6-234 -sign 亦 15-2345 -sign 俣 127-2-23458 -sign 又 15-3746 -sign 抹 123756-238-46 -sign 末 1238-46 -sign 沫 1237-238-46 -sign 迄 12378-748 -sign 侭 158-2758-74568 -sign 繭 123-274568 -sign 麿 12768-237468 -sign 万 168-27468 -sign 慢 1256-27468 -sign 満 1237-2374568 -sign 漫 1568-27468 -sign 蔓 1258-36-27468 -sign 味 12356-45 -sign 未 1238-45 -sign 魅 135-2348 -sign 巳 13-2348 -sign 箕 12376-5-2348 -sign 岬 175-3458 -sign 密 125-745 -sign 蜜 125-274568 -sign 湊 1237-2358-23458 -sign 蓑 1258-36-23745 -sign 稔 1375-236-3468 -sign 脈 138-237468 -sign 妙 12758-34568 -sign 粍 1375-2374 -sign 民 123768-7468 -sign 眠 1237568-7468 -sign 務 1756-2745 -sign 夢 178-37458 -sign 無 127568-74568 -sign 牟 16-274568 -sign 矛 12-7456 -sign 霧 12376-7456 -sign 鵡 13768-78-234568 -sign 椋 1368-78-23456 -sign 婿 12758-7456 -sign 娘 12758-745 -sign 冥 178-3748 -sign 名 13758-23456 -sign 命 1236-2468 -sign 明 1378-246 -sign 盟 1378-348 -sign 迷 12378-3745 -sign 銘 128-23456 -sign 鳴 13768-234568 -sign 姪 12758-5-7458 -sign 牝 13568-36-2374568 -sign 滅 12378-74568 -sign 免 1275-346 -sign 棉 1368-36-2374568 -sign 綿 137-2374568 -sign 緬 123-237568-45 -sign 面 1237568-45 -sign 麺 12568-237568-45 -sign 摸 123756-36-2458 -sign 模 1238-2458 -sign 茂 1258-23748 -sign 妄 13758-27458 -sign 孟 18-348 -sign 毛 15-234568 -sign 猛 12358-348 -sign 盲 1237568-37458 -sign 網 137-7458 -sign 耗 1238-234568 -sign 蒙 1258-36-34568 -sign 儲 158-2345 -sign 木 12348 -sign 黙 12368-23458 -sign 目 12374568 -sign 杢 1238-358-24 -sign 勿 15-468 -sign 餅 123568-37456 -sign 尤 18-458 -sign 戻 13756-23458 -sign 籾 1375-2-2745 -sign 貰 176-7456 -sign 問 137568-23456 -sign 悶 137568-3468 -sign 紋 137-748 -sign 門 1374568 -sign 匁 156-2745 -sign 也 15-23746 -sign 冶 1568-458 -sign 夜 178-274 -sign 爺 12376-745 -sign 耶 123768-2468 -sign 野 1236-7456 -sign 弥 1758-36-748 -sign 矢 175-34 -sign 厄 1756-2468 -sign 役 1758-3745 -sign 約 123-374568 -sign 薬 1258-374 -sign 訳 1376-2746 -sign 躍 123768-745 -sign 靖 12768-234568 -sign 柳 1368-2468 -sign 薮 1258-78-468 -sign 鑓 128-278-246 -sign 愉 1256-7458 -sign 愈 1758-36-3468 -sign 油 1276-4568 -sign 癒 175-7458 -sign 諭 1235-7458 -sign 輸 127568-7458 -sign 唯 12356-234 -sign 佑 127-56-468 -sign 優 156-7458 -sign 勇 1275-2746 -sign 友 1356-3746 -sign 宥 125-356-246 -sign 幽 137-374 -sign 悠 158-7458 -sign 憂 12-7458 -sign 揖 123756-36-23456 -sign 有 1356-246 -sign 柚 1368-276-45 -sign 湧 1237-275-2746 -sign 涌 1237-78-27456 -sign 猶 12358-234568 -sign 猷 123568-36-23458 -sign 由 1276-45 -sign 祐 12375-468 -sign 裕 12375-2746 -sign 誘 1235-374 -sign 遊 1278-74 -sign 邑 13768-23748 -sign 郵 1268-2374 -sign 雄 1356-234 -sign 融 12356-274568 -sign 夕 13758-24 -sign 予 15-7456 -sign 余 1236-374568 -sign 与 136-45 -sign 誉 178-2345 -sign 輿 127568-36-37468 -sign 預 135-7456 -sign 傭 127-756-37468 -sign 幼 137-24 -sign 妖 12758-36-23458 -sign 容 125-2746 -sign 庸 1756-37468 -sign 揚 123756-468 -sign 揺 123756-248 -sign 擁 123756-23748 -sign 曜 1378-745 -sign 楊 1368-36-468 -sign 様 1238-34568 -sign 洋 13568-2374 -sign 溶 1237-2746 -sign 熔 17568-25-2746 -sign 用 13768-74 -sign 窯 125-74568 -sign 羊 13568-34 -sign 耀 178-36-745 -sign 葉 1258-7456 -sign 蓉 1368-25-2746 -sign 要 1237-27458 -sign 謡 1235-248 -sign 踊 123768-27456 -sign 遥 12378-36-248 -sign 陽 1268-468 -sign 養 13568-745 -sign 慾 1256-276-7468 -sign 抑 123756-2468 -sign 欲 1276-7468 -sign 沃 1237-36-23458 -sign 浴 1568-2746 -sign 翌 127568-27468 -sign 翼 127568-3458 -sign 淀 1237-25-7456 -sign 羅 12568-234 -sign 螺 127568-276-374 -sign 裸 12375-2348 -sign 来 1238-274 -sign 莱 1368-238-274 -sign 頼 135-468 -sign 雷 12376-2746 -sign 洛 1237-23456 -sign 絡 123-23456 -sign 落 1258-23456 -sign 酪 123568-24568 -sign 乱 123568-746 -sign 卵 13-2468 -sign 嵐 175-274568 -sign 欄 137568-23748 -sign 濫 1568-348 -sign 藍 1368-348 -sign 蘭 1368-374568 -sign 覧 1237568-24568 -sign 利 1375-2745 -sign 吏 12356-458 -sign 履 13756-24568 -sign 李 1368-36-3458 -sign 梨 1368-375-2745 -sign 理 123758-2346 -sign 璃 123758-5-234 -sign 痢 175-2745 -sign 裏 1236-23745 -sign 裡 12375-56-2346 -sign 里 156-2346 -sign 離 15-234 -sign 陸 1268-24 -sign 律 1758-27458 -sign 率 178-3456 -sign 立 12768-24 -sign 葎 1368-758-27458 -sign 掠 123756-78-23456 -sign 略 1276-23456 -sign 劉 128-36-2745 -sign 流 1237-2458 -sign 溜 1237-26-2746 -sign 琉 123758-2458 -sign 留 126-2746 -sign 硫 12768-2458 -sign 粒 1375-27468 -sign 隆 1268-234568 -sign 竜 12768-3468 -sign 龍 12768-2768-3468 -sign 侶 158-237468 -sign 慮 12568-3468 -sign 旅 13758-7458 -sign 虜 12568-2745 -sign 了 15-27468 -sign 亮 125-37468 -sign 僚 127-3456 -sign 両 12376-45 -sign 凌 1568-36-24568 -sign 寮 125-3456 -sign 料 13756-3745 -sign 梁 1238-36-2374 -sign 涼 1568-23456 -sign 猟 12358-3456 -sign 療 175-3456 -sign 瞭 1237568-3456 -sign 稜 1375-24568 -sign 糧 1375-248 -sign 良 156-745 -sign 諒 1235-23456 -sign 遼 12378-36-3456 -sign 量 1378-2346 -sign 陵 1268-24568 -sign 領 158-345 -sign 力 12745 -sign 緑 12368-237468 -sign 倫 127-2456 -sign 厘 1756-2346 -sign 林 1238-2348 -sign 淋 1237-238-2348 -sign 燐 17568-3745 -sign 琳 123758-238-2348 -sign 臨 12568-245 -sign 輪 127568-2456 -sign 隣 1268-3745 -sign 鱗 123568-3745 -sign 麟 1375-36-34568 -sign 瑠 123758-26-2746 -sign 塁 1276-27456 -sign 涙 1237-23458 -sign 累 1276-374 -sign 類 135-3745 -sign 令 158-3456 -sign 伶 127-58-3456 -sign 例 127-2745 -sign 冷 1568-24 -sign 励 1275-27468 -sign 嶺 175-345 -sign 怜 1256-58-3456 -sign 玲 123758-3456 -sign 礼 12375-37456 -sign 苓 1368-58-3456 -sign 鈴 128-3748 -sign 隷 12375-7458 -sign 零 12376-7468 -sign 霊 12376-458 -sign 麗 13768-456 -sign 齢 1768-3456 -sign 暦 1358-3748 -sign 歴 1358-7468 -sign 列 13758-2745 -sign 劣 13568-2745 -sign 烈 13758-74568 -sign 裂 13758-23745 -sign 廉 1756-23458 -sign 恋 1235-3468 -sign 憐 1256-3745 -sign 漣 1237-2378-274568 -sign 煉 17568-23748 -sign 簾 12376-756-23458 -sign 練 123-23748 -sign 聯 123768-36-374 -sign 蓮 1368-23748 -sign 連 12378-274568 -sign 錬 128-23748 -sign 呂 18-237468 -sign 魯 123568-3748 -sign 櫓 1238-36-3748 -sign 炉 13756-74568 -sign 賂 176-2568-23456 -sign 路 123768-23456 -sign 露 12376-237468 -sign 労 178-2745 -sign 婁 18-2456 -sign 廊 1756-745 -sign 弄 123758-37456 -sign 朗 126-745 -sign 楼 1238-2746 -sign 榔 1368-75-2468 -sign 浪 1237-745 -sign 漏 1568-23746 -sign 牢 125-3568-24 -sign 狼 12358-745 -sign 篭 12376-2768-3468 -sign 老 13756-34 -sign 聾 123768-37458 -sign 蝋 127568-3456 -sign 郎 175-2468 -sign 六 168-2345 -sign 麓 1238-3568-456 -sign 禄 12375-237468 -sign 肋 138-3456 -sign 録 128-237468 -sign 論 1235-2456 -sign 倭 127-375-27458 -sign 和 1375-23456 -sign 話 1235-234568 -sign 歪 12758-768-234 -sign 賄 176-246 -sign 脇 138-23745 -sign 惑 13768-3468 -sign 枠 1238-36-3456 -sign 鷲 158-234568 -sign 亙 156-246 -sign 亘 16-3748 -sign 鰐 123568-23458 -sign 詫 1376-274 -sign 藁 1258-36-2348 -sign 蕨 1368-748 -sign 椀 1238-36-245 -sign 湾 1237-7458 -sign 碗 12768-36-245 -sign 腕 138-245 - -# JIS level2 -sign 弌 12-256-24 -sign 丐 1768-36-374568 -sign 丕 12758-68-24 -sign 个 1236-58-346 -sign 丱 13756-36-458 -sign 丶 134 -sign 丼 123-34 -sign 丿 13-36-346 -sign 乂 17-2374568 -sign 乖 12-375-2348 -sign 乘 1375-375-2348 -sign 亂 123568-23568-746 -sign 亅 136-36-748 -sign 豫 15-5-7456 -sign 亊 1358-358-37456 -sign 舒 1236-5-7456 -sign 弍 12-3768-234 -sign 于 12-248 -sign 亞 12-2-24 -sign 亟 12-27468 -sign 亠 12-748 -sign 亢 16-346 -sign 亰 12-78-23456 -sign 亳 178-25-274 -sign 亶 18-37468 -sign 从 127-36-458 -sign 仍 127-2-374 -sign 仄 158-7456 -sign 仆 127-36-37456 -sign 仂 127-36-2745 -sign 仗 127-56-74568 -sign 仞 127-2-2745 -sign 仭 158-2-2745 -sign 仟 127-68-234568 -sign 价 127-58-346 -sign 伉 127-36-346 -sign 佚 127-8-23458 -sign 估 127-2356-3456 -sign 佛 158-58-2374568 -sign 佝 127-37568-46 -sign 佗 158-23748 -sign 佇 158-36-237456 -sign 佶 127-2756-23456 -sign 侈 127-3758-37458 -sign 侏 127-6-248 -sign 侘 127-25-274 -sign 佻 127-68-346 -sign 佩 127-27568-23468 -sign 佰 127-68-2374568 -sign 侑 127-356-246 -sign 佯 127-3568-34 -sign 來 1238-238-274 -sign 侖 16-2456 -sign 儘 127-2758-74568 -sign 俔 127-237568-346 -sign 俟 127-8-274568 -sign 俎 127-6-34568 -sign 俘 127-36-245 -sign 俛 127-275-346 -sign 俑 158-36-27456 -sign 俚 127-56-2346 -sign 俐 127-375-2745 -sign 俤 127-758-346 -sign 俥 127-36-274568 -sign 倚 127-2358-248 -sign 倨 127-3756-24 -sign 倔 127-3756-237458 -sign 倪 127-358-346 -sign 倥 127-25-2348 -sign 倅 127-35-3456 -sign 伜 158-35-3456 -sign 俶 127-25-3746 -sign 倡 127-236-3748 -sign 倩 127-2368-234568 -sign 倬 127-378-37456 -sign 俾 127-276-2468 -sign 俯 127-7456 -sign 們 127-36-374568 -sign 倆 127-2376-45 -sign 偃 127-78-374568 -sign 假 127-27-7468 -sign 會 1236-236-2345 -sign 偕 127-56-3748 -sign 偐 127-756-245 -sign 偈 127-36-4568 -sign 做 127-2356-4568 -sign 偖 127-3756-3748 -sign 偬 127-36-3458 -sign 偸 127-36-7458 -sign 傀 127-35-2374 -sign 傚 158-36-4568 -sign 傅 127-36-237456 -sign 傴 158-37568-74 -sign 傲 127-36-37458 -sign 僉 18-2346 -sign 僊 158-36-2468 -sign 傳 127-27-237456 -sign 僂 127-36-2456 -sign 僖 127-2756-37468 -sign 僞 158-58-74568 -sign 僥 127-36-27456 -sign 僭 158-378-23458 -sign 僣 127-378-23458 -sign 僮 127-2768-2346 -sign 價 127-27-2374 -sign 僵 127-36-2746 -sign 儉 158-58-2346 -sign 儁 127-36-234 -sign 儂 127-276-3456 -sign 儖 127-2568-348 -sign 儕 127-268-748 -sign 儔 127-23758-23468 -sign 儚 127-78-37458 -sign 儡 127-276-2746 -sign 儺 127-258-234 -sign 儷 127-3768-456 -sign 儼 127-756-4568 -sign 儻 127-78-346 -sign 儿 15-346 -sign 兀 12-2-346 -sign 兒 1358-358-346 -sign 兌 18-346 -sign 兔 13568-3568-245 -sign 兢 1356-2356-346 -sign 竸 12768-2768-346 -sign 兩 12376-2376-45 -sign 兪 16-7458 -sign 兮 1236-36-374568 -sign 冀 1238-276-3458 -sign 冂 16-37468 -sign 囘 13768-3768-23456 -sign 册 15-5-237458 -sign 冉 12-356-37468 -sign 冏 13768-36-2345 -sign 冑 1276-37468 -sign 冓 17-274568 -sign 冕 1378-275-346 -sign 冖 136-74 -sign 冤 136-346 -sign 冦 136-2-346 -sign 冢 17-245 -sign 冩 136-36-24 -sign 冪 136-258-23468 -sign 冫 1568-74 -sign 决 1237-237-237456 -sign 冱 1568-56-348 -sign 冲 1237-237-346 -sign 冰 1568-36-2374 -sign 况 1568-568-346 -sign 冽 1568-3758-2745 -sign 凅 1568-3768-3456 -sign 凉 1568-568-23456 -sign 凛 1568-25-23456 -sign 几 18-748 -sign 處 12568-2568-748 -sign 凩 1238-27568-346 -sign 凭 158-78-748 -sign 凰 127568-378-237458 -sign 凵 137568-8-48 -sign 凾 13768-3768-27468 -sign 刄 12-2-2745 -sign 刋 1275-68-234568 -sign 刔 1275-36-237456 -sign 刎 1275-5-468 -sign 刧 1275-36-3458 -sign 刪 1275-36-237458 -sign 刮 1275-2356-234568 -sign 刳 1275-36-23458 -sign 刹 1237568-23745 -sign 剏 13756-25-2745 -sign 剄 12358-36-23745 -sign 剋 1356-36-2745 -sign 剌 12-238-2745 -sign 剞 1275-2358-248 -sign 剔 1275-378-468 -sign 剪 1275-26-2745 -sign 剴 1275-36-745 -sign 剩 1375-375-23745 -sign 剳 1275-3756-346 -sign 剿 12375-28-2348 -sign 剽 1275-237-23745 -sign 劍 15-5-23745 -sign 劔 16-5-23745 -sign 劒 18-5-23745 -sign 剱 12-5-23745 -sign 劈 1275-36-27468 -sign 劑 1268-268-23745 -sign 辨 127568-27568-37456 -sign 辧 15-27568-37456 -sign 劬 1275-37568-46 -sign 劭 1275-275-37468 -sign 劼 1275-2756-23456 -sign 劵 12358-2358-2745 -sign 勁 12358-36-2745 -sign 勍 1275-78-23456 -sign 勗 1378-275-34568 -sign 勞 178-78-2745 -sign 勣 1275-23758-746 -sign 勦 1275-28-2348 -sign 飭 1275-36-234568 -sign 勠 1275-27568-34 -sign 勳 1275-275-74568 -sign 勵 1275-275-27468 -sign 勸 12358-2358-23745 -sign 勹 137568-3-34 -sign 匆 12-56-2745 -sign 匈 137568-37568-48 -sign 甸 137568-36-2746 -sign 匍 137568-37458 -sign 匐 137568-27458 -sign 匏 12358-37568-34 -sign 匕 13-23748 -sign 匚 137568-7-74 -sign 匣 137568-68-3458 -sign 匯 137568-568-234 -sign 匱 137568-76-2348 -sign 匳 137568-36-2346 -sign 匸 137568-36-74 -sign 區 137568-37568-74 -sign 卆 135-35-3456 -sign 卅 168-68-7456 -sign 丗 168-7456 -sign 卉 1258-48 -sign 卍 156-25-748 -sign 凖 1568-568-3456 -sign 卞 12-56-748 -sign 卩 12-2468 -sign 卮 1756-36-2468 -sign 夘 1268-3758-24 -sign 卻 1268-36-2746 -sign 卷 12358-2358-2468 -sign 厂 1756-2-24 -sign 厖 1756-36-245 -sign 厠 1756-76-2745 -sign 厦 1756-35-24568 -sign 厥 1756-768-24 -sign 厮 1756-36-2348 -sign 厰 1756-36-4568 -sign 厶 13-274568 -sign 參 12-2-245 -sign 簒 12376-3-274568 -sign 雙 1376-376-3746 -sign 叟 16-2345 -sign 曼 16-27468 -sign 燮 17568-5-3746 -sign 叮 12356-68-237456 -sign 叨 12356-5-2745 -sign 叭 12356-68-2346 -sign 叺 12356-56-274 -sign 吁 12356-2-248 -sign 吽 12356-3568-24 -sign 呀 12356-5-2374568 -sign 听 12356-56-746 -sign 吭 12356-6-346 -sign 吼 12356-358-746 -sign 吮 12356-36-274568 -sign 吶 12356-3768-458 -sign 吩 12356-36-2346 -sign 吝 12356-78-74 -sign 呎 12356-56-2746 -sign 咏 12356-568-45 -sign 呵 13768-248 -sign 咎 12356-36-24568 -sign 呟 13768-37468 -sign 呱 12356-368-27456 -sign 呷 12356-68-3458 -sign 呰 12356-56-45 -sign 咒 12356-8-748 -sign 呻 12368-23456 -sign 咀 12356-6-34568 -sign 呶 12356-2758-3746 -sign 咄 12356-56-237458 -sign 咐 12356-27-23468 -sign 咆 12356-37568-34 -sign 哇 12356-2756-27456 -sign 咢 16-23458 -sign 咸 12378-74 -sign 咥 12356-5-7458 -sign 咬 12356-78-23746 -sign 哄 12356-5-3458 -sign 哈 12356-236-37468 -sign 咨 12356-568-7468 -sign 咫 1276-2356-2748 -sign 哂 12356-56-2374 -sign 咤 12356-25-274 -sign 咾 12356-3756-34 -sign 咼 17-248 -sign 哘 12356-36-7458 -sign 哥 128-56-248 -sign 哦 12356-3768-24 -sign 唏 12356-237568-23468 -sign 唔 12356-26-23456 -sign 哽 12356-378-274 -sign 哮 12356-3756-3458 -sign 哭 12356-36-23458 -sign 哺 12356-37458 -sign 哢 12356-23758-37456 -sign 唹 12356-3758-748 -sign 啀 12356-36-27456 -sign 啣 12356-768-2468 -sign 啌 12356-25-2348 -sign 售 12356-36-234 -sign 啜 12356-3746 -sign 啅 12356-378-37456 -sign 啖 12356-7568-74568 -sign 啗 12356-36-2745 -sign 唸 12356-2456 -sign 唳 12356-3756-23458 -sign 啝 12356-375-23456 -sign 喙 12356-78-34568 -sign 喀 12356-36-23456 -sign 咯 12356-2568-23456 -sign 喊 12356-2378-74 -sign 喟 12356-276-348 -sign 啻 13768-2768-23468 -sign 啾 12356-375-74568 -sign 喘 12356-36-3745 -sign 喞 12356-2568-2468 -sign 單 12356-2356-23456 -sign 啼 12356-2768-23468 -sign 喃 12356-56-237468 -sign 喩 12356-7458 -sign 喇 12356-238-2745 -sign 喨 12356-25-37468 -sign 嗚 12356-23568-245 -sign 嗅 12356-2374568 -sign 嗟 12356-3568-3458 -sign 嗄 12356-35-24568 -sign 嗜 12356-2374 -sign 嗤 12356-27568-24 -sign 嗔 12356-2-2374568 -sign 嘔 12356-374568 -sign 嗷 12356-36-37458 -sign 嘖 12356-23758-746 -sign 嗾 12356-3758-745 -sign 嗽 13768-36-7468 -sign 嘛 12356-368-27468 -sign 嗹 12356-2378-274568 -sign 噎 12356-256-24 -sign 噐 12358-2358-23456 -sign 營 178-78-237468 -sign 嘴 12356-3768-48 -sign 嘶 12356-36-746 -sign 嘲 13768-348 -sign 嘸 12356-27568-74568 -sign 噫 12356-2-274 -sign 噤 12356-238-23745 -sign 嘯 12356-275-7458 -sign 噬 12356-58-27458 -sign 噪 12356-36-245 -sign 嚆 12356-56-2345 -sign 嚀 12356-36-237456 -sign 嚊 12356-237568-2746 -sign 嚠 12356-36-248 -sign 嚔 12356-25-2374568 -sign 嚏 12356-36-2374568 -sign 嚥 12356-36-234568 -sign 嚮 13768-37-745 -sign 嚶 12356-2758-746 -sign 嚴 1756-756-4568 -sign 囂 12356-36-345 -sign 嚼 12356-78-745 -sign 囁 13768-237468 -sign 囃 12356-748 -sign 囀 12356-27568-237456 -sign 囈 12356-258-2345 -sign 囎 12356-76-34568 -sign 囑 12356-2356-237468 -sign 囓 123568-768-3745 -sign 囗 12-3768-237458 -sign 囮 13768-37458 -sign 囹 13768-58-3456 -sign 圀 13768-78-37458 -sign 囿 13768-356-246 -sign 圄 13768-26-23456 -sign 圉 13768-2756-248 -sign 圈 13768-3768-2468 -sign 國 13768-3768-237458 -sign 圍 13768-36-234 -sign 圓 1235-235-7468 -sign 團 13768-3768-237456 -sign 圖 13768-3768-748 -sign 嗇 127-3768-23456 -sign 圜 13768-36-2456 -sign 圦 12756-56-274 -sign 圷 12756-56-748 -sign 圸 12756-75-24 -sign 坎 12756-768-24 -sign 圻 12756-56-746 -sign 址 1768-27456 -sign 坏 12756-5-27458 -sign 坩 12756-5-2456 -sign 埀 136-36-2374 -sign 垈 12756-58-37468 -sign 坡 12756-5-23748 -sign 坿 12756-27-23468 -sign 垉 12756-37568-34 -sign 垓 12756-6-374 -sign 垠 12756-36-745 -sign 垳 12756-36-7458 -sign 垤 12756-5-7458 -sign 垪 12756-78-37456 -sign 垰 12756-56-245 -sign 埃 12756-274568 -sign 埆 12756-3768-48 -sign 埔 12756-36-37458 -sign 埒 12756-237458 -sign 埓 12756-2756-237458 -sign 堊 12-27456 -sign 埖 12756-258-456 -sign 埣 12756-35-3456 -sign 堋 12756-26-246 -sign 堙 12756-56-2374 -sign 堝 12756-36-248 -sign 塲 12756-2756-468 -sign 堡 12756-27-23456 -sign 塢 12756-23568-245 -sign 塋 17568-36-27456 -sign 塰 12756-237-2748 -sign 毀 1275-3745 -sign 塒 12756-378-23468 -sign 堽 13768-3768-7458 -sign 塹 12756-27568-746 -sign 墅 12756-236-7456 -sign 墹 12756-37568-3748 -sign 墟 12756-2568-74568 -sign 墫 12756-23568-23468 -sign 墺 12756-3768-3745 -sign 壞 12756-2756-2456 -sign 墻 12756-3768-23456 -sign 墸 12756-3756-2458 -sign 墮 12756-2756-246 -sign 壅 12756-36-23748 -sign 壓 1756-756-27456 -sign 壑 12756-276-24 -sign 壗 12756-2758-74568 -sign 壙 12756-756-3458 -sign 壘 1276-276-27456 -sign 壥 12756-36-7456 -sign 壜 12756-378-23746 -sign 壤 12756-2756-237468 -sign 壟 12756-2768-3468 -sign 壯 123758-23758-27456 -sign 壺 12756-36-24 -sign 壹 1256-256-24 -sign 壻 12758-2758-7456 -sign 壼 12756-2-24 -sign 壽 123758-23758-23468 -sign 夂 12568-5-45 -sign 夊 12568-2-24 -sign 夐 12-35-24568 -sign 夛 12-3758-37458 -sign 梦 13758-238-2348 -sign 夥 1276-37458 -sign 夬 16-237456 -sign 夭 15-23458 -sign 夲 12358-36-3456 -sign 夸 18-8-23458 -sign 夾 16-274 -sign 竒 12-2358-248 -sign 奕 1235-56-23458 -sign 奐 16-348 -sign 奎 12358-36-27456 -sign 奚 17-2374 -sign 奘 12358-23758-27456 -sign 奢 12358-3756-3748 -sign 奠 123568-56-23458 -sign 奧 13768-3768-3745 -sign 奬 123758-23758-456 -sign 奩 12358-37568-74 -sign 奸 12758-248 -sign 妁 12758-56-374568 -sign 妝 123758-36-27458 -sign 佞 158-36-27458 -sign 侫 158-3758-27458 -sign 妣 12758-456 -sign 妲 12758-5-3748 -sign 姆 12758-56-2748 -sign 姨 12758-758-274 -sign 姜 13568-36-27458 -sign 妍 12758-23745 -sign 姙 12758-58-2374 -sign 姚 12758-36-346 -sign 娥 12758-3768-24 -sign 娟 12758-36-246 -sign 娑 12758-568-37458 -sign 娜 12758-36-2468 -sign 娉 12758-36-374568 -sign 娚 12758-25-2745 -sign 婀 12758-268-248 -sign 婬 12758-68-2374 -sign 婉 12758-36-245 -sign 娵 12758-78-3746 -sign 娶 12758-23768-3746 -sign 婢 12758-276-2468 -sign 婪 12758-238-2348 -sign 媚 12758-2374568 -sign 媼 12758-246 -sign 媾 12758-36-274568 -sign 嫋 12758-758-7458 -sign 嫂 12758-6-2345 -sign 媽 12758-36-34568 -sign 嫣 12758-8-7468 -sign 嫗 12758-37568-74 -sign 嫦 12758-78-23468 -sign 嫩 12758-36-7468 -sign 嫖 12758-237-23745 -sign 嫺 12758-37568-246 -sign 嫻 12758-37568-2348 -sign 嬌 12758-36-3745 -sign 嬋 12758-2356-23456 -sign 嬖 12758-8-27468 -sign 嬲 1276-36-27458 -sign 嫐 12758-276-2745 -sign 嬪 12758-25-746 -sign 嬶 12758-237568-2746 -sign 嬾 12758-35-468 -sign 孃 12758-2758-237468 -sign 孅 12758-36-237468 -sign 孀 12758-2376-2348 -sign 孑 12-3458 -sign 孕 1358-2-374 -sign 孚 13-245 -sign 孛 1358-36-3456 -sign 孥 1358-2758-3746 -sign 孩 1358-6-374 -sign 孰 1358-36-345 -sign 孳 1358-36-374 -sign 孵 125-3-2468 -sign 學 178-78-3458 -sign 斈 1358-78-74 -sign 孺 1358-2376-3745 -sign 宀 125-2-24 -sign 它 125-36-23748 -sign 宦 125-5-24568 -sign 宸 125-5-3456 -sign 寃 125-275-346 -sign 寇 125-2-346 -sign 寉 125-5-234 -sign 寔 125-378-7456 -sign 寐 125-238-45 -sign 寤 125-26-23456 -sign 實 125-25-2748 -sign 寢 136-36-3746 -sign 寞 125-36-2458 -sign 寥 125-36-245 -sign 寫 125-36-24 -sign 寰 125-36-2456 -sign 寶 125-25-237458 -sign 寳 12-25-237458 -sign 尅 1356-56-23468 -sign 將 123758-23758-34 -sign 專 15-5-237456 -sign 對 1276-276-234 -sign 尓 13568-68-2346 -sign 尠 137568-3758-34568 -sign 尢 17-458 -sign 尨 12358-36-245 -sign 尸 13756-48 -sign 尹 18-234 -sign 屁 13756-456 -sign 屆 13756-3756-2746 -sign 屎 13756-375-24 -sign 屓 13756-36-746 -sign 屐 13756-36-2748 -sign 屏 13756-36-37456 -sign 孱 13756-36-3458 -sign 屬 13756-3756-237468 -sign 屮 18-8-2458 -sign 乢 175-68-746 -sign 屶 175-5-2745 -sign 屹 175-78-345 -sign 岌 175-5-374 -sign 岑 175-236-24 -sign 岔 175-25-2346 -sign 妛 175-25-27458 -sign 岫 175-276-45 -sign 岻 175-2-7468 -sign 岶 175-25-3748 -sign 岼 175-236-248 -sign 岷 175-23768-7468 -sign 峅 175-27568-37456 -sign 岾 175-2356-37456 -sign 峇 175-236-37468 -sign 峙 175-2756-23468 -sign 峩 175-36-37468 -sign 峽 175-75-274 -sign 峺 175-378-274 -sign 峭 175-3568-348 -sign 嶌 175-25-234568 -sign 峪 175-276-24 -sign 崋 175-25-248 -sign 崕 175-78-27456 -sign 崗 175-3768-7458 -sign 嵜 175-25-23458 -sign 崟 175-36-248 -sign 崛 175-3756-237458 -sign 崑 175-25-456 -sign 崔 175-25-234 -sign 崢 175-3568-346 -sign 崚 175-25-24568 -sign 崙 175-25-2456 -sign 崘 175-78-2456 -sign 嵌 175-7468 -sign 嵒 175-2356-245 -sign 嵎 175-25-2458 -sign 嵋 175-237568-234568 -sign 嵬 175-35-2374 -sign 嵳 175-25-34568 -sign 嵶 175-758-7458 -sign 嶇 175-37568-74 -sign 嶄 175-27568-746 -sign 嶂 175-25-27468 -sign 嶢 175-36-27456 -sign 嶝 175-2568-37456 -sign 嶬 175-3568-37468 -sign 嶮 175-2346 -sign 嶽 175-3746 -sign 嶐 175-268-234568 -sign 嶷 175-75-7456 -sign 嶼 175-36-45 -sign 巉 175-275-346 -sign 巍 175-25-345 -sign 巓 175-35-237456 -sign 巒 175-25-2345 -sign 巖 175-75-4568 -sign 巛 128-36-24 -sign 巫 158-27458 -sign 已 17-2348 -sign 巵 1756-36-23748 -sign 帋 12368-2-7468 -sign 帚 16-2346 -sign 帙 12368-8-23458 -sign 帑 12368-2758-3746 -sign 帛 12368-378-24 -sign 帶 12368-2368-7456 -sign 帷 12368-234 -sign 幄 12368-3756-7458 -sign 幃 12368-36-234 -sign 幀 12368-76-37456 -sign 幎 12368-78-3748 -sign 幗 12368-3768-237458 -sign 幔 12368-27468 -sign 幟 12368-3748 -sign 幢 12368-2768-2346 -sign 幤 1568-568-23468 -sign 幇 12368-2756-27456 -sign 幵 17-23745 -sign 并 17-37456 -sign 幺 137-74 -sign 麼 137-368-27468 -sign 广 1756-74 -sign 庠 1756-36-34568 -sign 廁 1756-36-2745 -sign 廂 1756-238-2374568 -sign 廈 1756-36-24568 -sign 廐 1756-75-458 -sign 廏 1756-36-3745 -sign 廖 1756-27568-34 -sign 廣 1756-756-3458 -sign 廝 1756-78-2348 -sign 廚 1756-36-37456 -sign 廛 1756-2368-2458 -sign 廢 1756-756-24568 -sign 廡 1756-27568-74568 -sign 廨 1756-3768-34568 -sign 廩 1756-3768-23456 -sign 廬 1756-36-2746 -sign 廱 1756-3768-23748 -sign 廳 1756-756-3456 -sign 廰 12-756-3456 -sign 廴 1278-2-24 -sign 廸 1278-276-45 -sign 廾 18-37456 -sign 弃 178-78-7456 -sign 弉 13756-23758-27456 -sign 彝 13756-78-3745 -sign 彜 13756-236-3745 -sign 弋 17-37468 -sign 弑 13768-237568-3745 -sign 弖 12-758-24 -sign 弩 1758-2758-3746 -sign 弭 1758-36-237468 -sign 弸 1758-26-246 -sign 彁 1758-56-248 -sign 彈 1758-758-23456 -sign 彌 1758-3768-2374568 -sign 彎 18-8-7458 -sign 弯 18-7458 -sign 彑 18-8-245 -sign 彖 15-5-34568 -sign 彗 12358-36-24568 -sign 彙 125-234 -sign 彡 15-5-245 -sign 彭 16-245 -sign 彳 1758-74 -sign 彷 1758-36-37458 -sign 徃 1758-23568-234 -sign 徂 1758-6-34568 -sign 彿 1758-36-2374568 -sign 徊 1758-3768-23456 -sign 很 1758-36-745 -sign 徑 1758-758-23458 -sign 徇 1758-378-24568 -sign 從 1758-758-7456 -sign 徙 1758-36-7468 -sign 徘 1758-74568 -sign 徠 1758-238-274 -sign 徨 1758-378-237458 -sign 徭 1758-78-248 -sign 徼 1758-36-4568 -sign 忖 1256-56-23468 -sign 忻 1256-56-746 -sign 忤 1256-3568-45 -sign 忸 1256-8-34568 -sign 忱 1256-36-748 -sign 忝 12358-2456 -sign 悳 1256-356-2374568 -sign 忿 1236-36-3468 -sign 怡 1256-5-274 -sign 恠 1256-356-27456 -sign 怙 1256-2356-3456 -sign 怐 1256-37568-46 -sign 怩 1256-3756-458 -sign 怎 1256-8-2468 -sign 怱 1358-3468 -sign 怛 1256-5-3748 -sign 怕 1256-378-24 -sign 怫 1256-36-2374568 -sign 怦 1256-236-248 -sign 怏 1256-345 -sign 怺 1256-568-45 -sign 恚 12756-36-3468 -sign 恁 1256-58-2374 -sign 恪 1256-2568-23456 -sign 恷 1256-27-2348 -sign 恟 1256-36-374568 -sign 恊 1256-36-2745 -sign 恆 1256-256-3748 -sign 恍 1256-78-34 -sign 恣 1256-568-7468 -sign 恃 1256-2756-23468 -sign 恤 1256-348 -sign 恂 1256-378-24568 -sign 恬 1256-2356-234568 -sign 恫 1256-3768-37456 -sign 恙 127568-3568-34 -sign 悁 1256-36-246 -sign 悍 1256-248 -sign 惧 1256-76-46 -sign 悃 1256-3768-2348 -sign 悚 1256-238-468 -sign 悄 1256-3568-348 -sign 悛 1256-274568 -sign 悖 1256-36-3456 -sign 悗 1256-275-346 -sign 悒 1256-3768-23748 -sign 悧 1256-375-2745 -sign 悋 1256-748 -sign 惡 12-2-3468 -sign 悸 1256-375-3458 -sign 惠 127568-27568-3468 -sign 惓 1256-2358-2468 -sign 悴 1256-35-3456 -sign 忰 1256-36-345 -sign 悽 1256-2758-2468 -sign 惆 1256-3768-27456 -sign 悵 1256-5-37456 -sign 惘 1256-6-37458 -sign 慍 1256-36-348 -sign 愕 1256-36-23458 -sign 愆 1256-36-7458 -sign 惶 1256-378-237458 -sign 惷 1256-2358-3748 -sign 愀 1256-375-74568 -sign 惴 1256-36-3745 -sign 惺 1256-378-234 -sign 愃 1256-25-3748 -sign 愡 1256-36-3458 -sign 惻 1256-2745 -sign 惱 1256-256-23746 -sign 愍 1256-23768-7468 -sign 愎 1256-36-24568 -sign 慇 123768-36-3468 -sign 愾 1256-37568-24 -sign 愨 1256-2756-3746 -sign 愧 1256-35-2374 -sign 慊 1256-236-23458 -sign 愿 1256-756-24 -sign 愼 1256-256-2374568 -sign 愬 1256-26-2748 -sign 愴 1256-236-345 -sign 愽 12-356-237456 -sign 慂 1256-36-27456 -sign 慄 1256-2374 -sign 慳 1256-2756-24568 -sign 慷 1256-756-7458 -sign 慘 1256-256-245 -sign 慙 1256-27568-746 -sign 慚 1256-78-274568 -sign 慫 1256-758-7456 -sign 慴 1256-27568-3748 -sign 慯 1256-36-468 -sign 慥 1256-278-2458 -sign 慱 1256-36-237456 -sign 慟 1256-236-2745 -sign 慝 1256-37568-468 -sign 慓 1256-237-23745 -sign 慵 1256-756-37468 -sign 憙 1256-2756-37468 -sign 憖 1256-238-274 -sign 憇 123568-23568-3468 -sign 憬 1256-378-23456 -sign 憔 1256-23-74568 -sign 憚 1256-2356-23456 -sign 憊 1256-27-23748 -sign 憑 13568-36-3468 -sign 憫 1256-374568 -sign 憮 1256-27568-74568 -sign 懌 1256-36-2746 -sign 懊 1256-37468 -sign 應 1756-756-3468 -sign 懷 1256-256-2456 -sign 懈 1256-3768-34568 -sign 懃 1275-36-3468 -sign 懆 1256-2356-245 -sign 憺 1256-36-3748 -sign 懋 1256-2-7456 -sign 罹 12568-2346 -sign 懍 1256-3768-23456 -sign 懦 1256-2376-3745 -sign 懣 1256-237-2374568 -sign 懶 1256-35-468 -sign 懺 1256-237468 -sign 懴 12-256-237468 -sign 懿 1256-36-7468 -sign 懽 1256-78-23458 -sign 懼 1256-36-234 -sign 懾 1256-23768-237468 -sign 戀 1235-235-3468 -sign 戈 15-37468 -sign 戉 178-23748 -sign 戍 18-23748 -sign 戌 17-23748 -sign 戔 13768-46 -sign 戛 135-36-37468 -sign 戞 135-78-37468 -sign 戡 137568-36-37468 -sign 截 123768-234 -sign 戮 127568-5-37468 -sign 戰 12356-2356-37468 -sign 戲 12568-2568-37468 -sign 戳 175-5-37468 -sign 扁 13756-36-237458 -sign 扎 123756-68-746 -sign 扞 123756-36-248 -sign 扣 123756-36-2746 -sign 扛 123756-358-24 -sign 扠 123756-2-3746 -sign 扨 123756-2-2745 -sign 扼 123756-756-2468 -sign 抂 123756-23758-24 -sign 抉 123756-36-237456 -sign 找 123756-5-37468 -sign 抒 123756-5-7456 -sign 抓 123756-38-27456 -sign 抖 123756-56-37456 -sign 拔 123756-23756-3746 -sign 抃 123756-56-748 -sign 抔 123756-5-27458 -sign 拗 123756-37-24 -sign 拑 123756-5-2456 -sign 抻 123756-6-23468 -sign 拏 123756-2758-3746 -sign 拿 123756-236-37468 -sign 拆 123756-2-746 -sign 擔 123756-23756-3748 -sign 拈 123756-2356-37456 -sign 拜 1278-278-234 -sign 拌 123756-356-2748 -sign 拊 123756-27-23468 -sign 拂 123756-23756-2374568 -sign 拇 123756-56-2748 -sign 抛 123756-25-2745 -sign 拉 123756-2768-24 -sign 挌 123756-2568-23456 -sign 拮 123756-2756-23456 -sign 拱 123756-5-3458 -sign 挧 123756-27568-34 -sign 挂 123756-36-27456 -sign 挈 123756-5-2745 -sign 拯 123756-8-2374 -sign 拵 123756-356-3458 -sign 捐 123756-36-246 -sign 挾 123756-6-274 -sign 捍 123756-5-248 -sign 搜 123756-23756-2345 -sign 捏 12756-237456 -sign 掖 123756-78-274 -sign 掎 123756-2358-248 -sign 掀 123756-768-746 -sign 掫 123756-23768-3746 -sign 捶 123756-36-2374 -sign 掣 123568-237456 -sign 掏 123756-36-37456 -sign 掉 123756-378-37456 -sign 掟 123756-25-7456 -sign 掵 123756-236-2468 -sign 捫 123756-36-374568 -sign 捩 123756-3756-23458 -sign 掾 123756-36-34568 -sign 揩 123756-56-3748 -sign 揀 123756-56-23748 -sign 揆 123756-68-24568 -sign 揣 123756-36-3745 -sign 揉 123756-238-7456 -sign 插 13568-3568-237456 -sign 揶 123756-23768-2468 -sign 揄 123756-36-7458 -sign 搖 123756-23756-248 -sign 搴 123756-78-245 -sign 搆 123756-78-274568 -sign 搓 123756-3568-3458 -sign 搦 123756-758-7458 -sign 搶 123756-236-345 -sign 攝 123756-23756-237468 -sign 搗 123756-23568-745 -sign 搨 123756-36-3748 -sign 搏 123756-36-2748 -sign 摧 123756-36-234 -sign 摯 123756-2756-345 -sign 摶 123756-5-237456 -sign 摎 123756-25-245 -sign 攪 123756-78-2374568 -sign 撕 123756-36-746 -sign 撓 123756-36-748 -sign 撥 123756-36-24568 -sign 撩 123756-36-3456 -sign 撈 123756-78-2745 -sign 撼 123756-2378-3468 -sign 據 12568-2568-34568 -sign 擒 123756-36-2348 -sign 擅 123756-3768-23456 -sign 擇 123756-23756-2746 -sign 撻 123756-2378-2746 -sign 擘 123756-36-27468 -sign 擂 123756-2376-2746 -sign 擱 123756-37568-24568 -sign 擧 125-25-237456 -sign 舉 12-25-237456 -sign 擠 123756-268-748 -sign 擡 123756-5-274 -sign 抬 123756-25-274 -sign 擣 123756-23758-23468 -sign 擯 123756-25-746 -sign 攬 123756-237568-24568 -sign 擶 123756-36-23746 -sign 擴 123756-23756-3458 -sign 擲 123756-36-2468 -sign 擺 123756-2568-246 -sign 攀 123756-238-2348 -sign 擽 123756-378-374 -sign 攘 123756-36-237468 -sign 攜 123756-75-24 -sign 攅 123756-76-23458 -sign 攤 123756-258-234 -sign 攣 1235-36-237456 -sign 攫 1237568-237456 -sign 攴 125-5-3746 -sign 攵 15-5-4568 -sign 攷 137568-36-4568 -sign 收 123758-23758-3746 -sign 攸 158-4568 -sign 畋 1276-36-4568 -sign 效 12376-2376-2745 -sign 敖 17-37458 -sign 敕 1275-275-468 -sign 敍 12-236-3746 -sign 敘 1236-236-3746 -sign 敞 1568-8-2748 -sign 敝 1568-7-2748 -sign 敲 1278-56-2345 -sign 數 168-68-468 -sign 斂 1236-4568 -sign 斃 1568-3758-34 -sign 變 1235-235-24568 -sign 斛 13768-56-37456 -sign 斟 137568-56-37456 -sign 斫 12768-36-746 -sign 斷 176-76-3745 -sign 旃 13758-2758-45 -sign 旆 13758-23468 -sign 旁 15-37458 -sign 旄 13758-5-234568 -sign 旌 13758-23568-234 -sign 旒 13758-36-2458 -sign 旛 13758-375-2746 -sign 旙 13758-36-3745 -sign 无 18-8-458 -sign 旡 15-5-458 -sign 旱 1378-5-248 -sign 杲 1378-36-2348 -sign 昊 1378-2-23458 -sign 昃 1378-58-7456 -sign 旻 1378-78-74 -sign 杳 1238-78-3748 -sign 昵 1378-3756-458 -sign 昶 1378-568-45 -sign 昴 1378-268-245 -sign 昜 1378-5-468 -sign 晏 1378-25-27458 -sign 晄 1378-36-748 -sign 晉 1378-378-23748 -sign 晁 1378-68-346 -sign 晞 1378-237568-23468 -sign 晝 1276-276-3748 -sign 晤 1378-26-23456 -sign 晧 1378-358-2458 -sign 晨 1378-5-3456 -sign 晟 1378-23568-23748 -sign 晢 1378-23756-746 -sign 晰 1378-36-345 -sign 暃 1378-5-74568 -sign 暈 1378-36-274568 -sign 暎 1378-258-345 -sign 暉 1378-78-274568 -sign 暄 1378-25-3748 -sign 暘 1378-36-468 -sign 暝 1378-78-3748 -sign 曁 1378-75-458 -sign 暹 1378-2378-23748 -sign 曉 1378-378-27456 -sign 暾 1378-36-4568 -sign 暼 1378-7-2748 -sign 曄 1378-258-248 -sign 暸 1378-78-3456 -sign 曖 1378-78-24 -sign 曚 1378-36-34568 -sign 曠 1378-756-3458 -sign 昿 1378-36-7456 -sign 曦 1378-3568-37468 -sign 曩 1378-36-237468 -sign 曰 1378-48 -sign 曵 18-8-23468 -sign 曷 18-4568 -sign 朏 126-56-237458 -sign 朖 126-56-745 -sign 朞 126-36-2348 -sign 朦 126-36-34568 -sign 朧 126-27468 -sign 霸 12376-36-246 -sign 朮 12-2374 -sign 朿 12-238-468 -sign 朶 1238-2-374 -sign 杁 1238-56-274 -sign 朸 1238-25-2745 -sign 朷 1238-5-2745 -sign 杆 1238-36-248 -sign 杞 1368-68-2348 -sign 杠 1238-36-3458 -sign 杙 1238-78-37468 -sign 杣 1238-75-24 -sign 杤 1368-78-468 -sign 枉 1238-23758-24 -sign 杰 1238-7568-24 -sign 枩 1368-8-3458 -sign 杼 1238-5-7456 -sign 杪 1238-3758-34568 -sign 枌 1368-78-2346 -sign 枋 1368-36-37458 -sign 枦 1238-78-37456 -sign 枡 1238-56-2458 -sign 枅 1238-7-23745 -sign 枷 1238-275-23456 -sign 柯 1238-56-248 -sign 枴 1238-78-2745 -sign 柬 18-8-23748 -sign 枳 1368-2356-2748 -sign 柩 1238-2568-45 -sign 枸 1368-37568-46 -sign 柤 1238-6-34568 -sign 柞 1368-36-2468 -sign 柝 1238-78-746 -sign 柢 1238-756-7468 -sign 柮 1238-56-237458 -sign 枹 1238-37568-34 -sign 柎 1238-27-23468 -sign 柆 1238-78-27468 -sign 柧 1238-368-27456 -sign 檜 1368-2346 -sign 栞 1238-5-248 -sign 框 1238-36-374568 -sign 栩 1368-78-274568 -sign 桀 1238-36-23458 -sign 桍 1238-78-23458 -sign 栲 1238-3756-46 -sign 桎 1238-5-7458 -sign 梳 1238-36-2458 -sign 栫 1238-356-3458 -sign 桙 1238-6-274568 -sign 档 1238-78-27458 -sign 桷 1238-3768-48 -sign 桿 1238-25-248 -sign 梟 1238-36-234568 -sign 梏 1238-358-2458 -sign 梭 1238-36-274568 -sign 梔 1368-36-23456 -sign 條 12568-2568-2348 -sign 梛 1368-36-274 -sign 梃 1238-278-237458 -sign 檮 1238-23758-23468 -sign 梹 1238-258-2346 -sign 桴 1238-3-245 -sign 梵 1238-5-748 -sign 梠 1238-8-237468 -sign 梺 1238-56-748 -sign 椏 1368-2-24 -sign 梍 1238-78-745 -sign 桾 1368-35-24 -sign 椁 1238-78-3458 -sign 棊 1238-78-2348 -sign 椈 1368-368-34 -sign 棘 1368-238-468 -sign 椢 1238-3768-237458 -sign 椦 1238-2358-2745 -sign 棡 1238-3768-7458 -sign 椌 1238-25-2348 -sign 棍 1238-378-456 -sign 棔 1238-378-7468 -sign 棧 1238-5-37468 -sign 棕 1368-25-23745 -sign 椶 1368-37568-48 -sign 椒 1368-25-3746 -sign 椄 1238-2758-27468 -sign 棗 1238-238-468 -sign 棣 1368-78-7458 -sign 椥 1238-75-23456 -sign 棹 1238-378-37456 -sign 棠 1368-8-2748 -sign 棯 1238-236-3468 -sign 椨 1238-756-23468 -sign 椪 1238-2768-27468 -sign 椚 1368-78-374568 -sign 椣 1238-276-2346 -sign 椡 1238-758-2745 -sign 棆 1238-36-2456 -sign 楹 1238-36-348 -sign 楷 1238-56-3748 -sign 楜 1368-8-246 -sign 楸 1368-375-74568 -sign 楫 1238-2356-237468 -sign 楔 1238-275-23458 -sign 楾 1238-378-4568 -sign 楮 1368-3756-3748 -sign 椹 1368-2-2348 -sign 楴 1368-2768-23468 -sign 椽 1238-78-34568 -sign 楙 1368-2-7456 -sign 椰 1368-23768-2468 -sign 楡 1368-6-7458 -sign 楞 1238-68-2456 -sign 楝 1368-56-23748 -sign 榁 1368-25-7458 -sign 楪 1238-36-7456 -sign 榲 1368-36-348 -sign 榮 178-78-2348 -sign 槐 1368-35-2374 -sign 榿 1368-6-745 -sign 槁 1238-56-2345 -sign 槓 1238-76-3458 -sign 榾 1368-28-246 -sign 槎 1238-3568-3458 -sign 寨 125-36-2348 -sign 槊 1238-26-2748 -sign 槝 1238-23568-745 -sign 榻 1238-27568-34 -sign 槃 1238-2758-3745 -sign 榧 1368-36-374568 -sign 樮 1238-36-74568 -sign 榑 1368-5-237456 -sign 榠 1368-78-3748 -sign 榜 1238-36-37458 -sign 榕 1238-25-2746 -sign 榴 1368-26-2746 -sign 槞 1238-2768-3468 -sign 槨 1238-268-3458 -sign 樂 1378-378-374 -sign 樛 1238-78-274568 -sign 槿 1368-36-2348 -sign 權 1238-238-23458 -sign 槹 1238-378-24 -sign 槲 1368-3768-48 -sign 槧 1238-27568-746 -sign 樅 1368-758-7456 -sign 榱 1238-36-23745 -sign 樞 1238-238-24568 -sign 槭 1368-2378-245 -sign 樔 1238-28-2348 -sign 槫 1238-5-237456 -sign 樊 12358-238-2348 -sign 樒 1368-25-745 -sign 櫁 1368-25-274568 -sign 樣 1238-238-34568 -sign 樓 1238-238-2746 -sign 橄 1368-23768-4568 -sign 樌 1238-56-27456 -sign 橲 1238-2756-37468 -sign 樶 1238-378-3746 -sign 橸 1238-378-748 -sign 橇 1238-78-748 -sign 橢 1238-268-246 -sign 橙 1368-2568-37456 -sign 橦 1238-2768-2346 -sign 橈 1238-36-748 -sign 樸 1238-36-274 -sign 樢 1238-23568-24 -sign 檐 1238-25-3748 -sign 檍 1368-2-274 -sign 檠 1238-37568-4568 -sign 檄 1238-36-4568 -sign 檢 1238-238-2346 -sign 檣 1238-3768-23456 -sign 檗 1368-78-27468 -sign 蘗 1368-8-27468 -sign 檻 1238-2568-348 -sign 櫃 1238-76-2348 -sign 櫂 1238-36-745 -sign 檸 1368-36-237456 -sign 檳 1368-25-746 -sign 檬 1368-36-34568 -sign 櫞 1368-37-34568 -sign 櫑 1238-276-2746 -sign 櫟 1368-36-3748 -sign 檪 1368-378-374 -sign 櫚 1368-8-237468 -sign 櫪 1238-358-7468 -sign 櫻 1368-368-24 -sign 欅 1368-237456 -sign 蘖 1238-2768-24 -sign 櫺 1238-2376-24 -sign 欒 1235-36-2348 -sign 欖 1368-237568-24568 -sign 鬱 12568-2568-23468 -sign 欟 1368-2358-2374568 -sign 欸 1768-8-274568 -sign 欷 1768-237568-23468 -sign 盜 1768-768-348 -sign 欹 1768-2358-248 -sign 飮 1768-768-234568 -sign 歇 1568-768-24 -sign 歃 13568-768-24 -sign 歉 1768-236-23458 -sign 歐 137568-37568-7468 -sign 歙 1768-236-37468 -sign 歔 1768-2568-74568 -sign 歛 1768-8-2346 -sign 歟 1768-36-45 -sign 歡 12358-2358-7468 -sign 歸 1768-768-2346 -sign 歹 13758-3-34 -sign 歿 13758-237-3745 -sign 殀 13758-36-23458 -sign 殄 13758-36-245 -sign 殃 13758-2358-345 -sign 殍 13758-78-245 -sign 殘 13758-3758-37468 -sign 殕 13758-36-27468 -sign 殞 13758-76-23456 -sign 殤 13758-36-468 -sign 殪 13758-256-24 -sign 殫 13758-2356-23456 -sign 殯 13758-25-746 -sign 殲 13758-3758-237468 -sign 殱 13758-237468 -sign 殳 15-5-3745 -sign 殷 123768-36-3745 -sign 殼 12756-2756-3746 -sign 毆 137568-37568-3745 -sign 毋 12-56-2748 -sign 毓 178-5-2458 -sign 毟 13758-234568 -sign 毬 15-23758-2374 -sign 毫 178-234568 -sign 毳 123568-5-234568 -sign 毯 123568-7568-74568 -sign 麾 12768-5-234568 -sign 氈 13768-5-234568 -sign 氓 13758-23768-7468 -sign 气 137568-2-24 -sign 氛 1236-37568-24 -sign 氤 137568-3768-23458 -sign 氣 137568-37568-24 -sign 汞 1237-358-24 -sign 汕 1237-75-24 -sign 汢 1568-36-27456 -sign 汪 1237-23758-24 -sign 沂 1237-56-746 -sign 沍 1237-56-348 -sign 沚 1237-78-7468 -sign 沁 1237-36-3468 -sign 沛 1237-36-23468 -sign 汾 1237-36-2346 -sign 汨 1568-36-3748 -sign 汳 1237-278-7468 -sign 沒 1237-237-3745 -sign 沐 1237-36-2348 -sign 泄 1237-356-7456 -sign 泱 1237-2358-345 -sign 泓 1237-758-24 -sign 沽 1237-2356-3456 -sign 泗 1237-68-2456 -sign 泅 1237-3768-274 -sign 泝 1237-2-746 -sign 沮 1237-6-34568 -sign 沱 1237-36-23748 -sign 沾 1237-2356-37456 -sign 沺 1237-36-2746 -sign 泛 1237-3-3745 -sign 泯 1237-23768-7468 -sign 泙 1237-236-248 -sign 泪 1237-36-2374568 -sign 洟 1237-758-274 -sign 衍 1758-36-7458 -sign 洶 1237-37568-48 -sign 洫 1237-2-348 -sign 洽 1237-236-37468 -sign 洸 1237-78-34 -sign 洙 1237-6-248 -sign 洵 1237-378-24568 -sign 洳 1237-2758-23456 -sign 洒 1237-36-2374 -sign 洌 1237-3758-2745 -sign 浣 1237-25-346 -sign 涓 1237-78-246 -sign 浤 1568-36-3456 -sign 浚 1237-78-274568 -sign 浹 1237-36-274 -sign 浙 1237-23756-746 -sign 涎 1237-278-24 -sign 涕 1237-758-346 -sign 濤 1237-23758-23468 -sign 涅 1237-36-27456 -sign 淹 1237-8-3468 -sign 渕 1237-78-2745 -sign 渊 1237-25-2745 -sign 涵 1237-3768-27468 -sign 淇 1237-5-2348 -sign 淦 1568-36-248 -sign 涸 1237-3768-3456 -sign 淆 1237-237568-348 -sign 淬 1237-35-3456 -sign 淞 1237-368-3458 -sign 淌 1237-8-2748 -sign 淨 1568-568-34568 -sign 淒 1237-2758-2468 -sign 淅 1237-238-345 -sign 淺 1237-237-37468 -sign 淙 1237-25-23745 -sign 淤 1237-3758-748 -sign 淕 1237-25-274568 -sign 淪 1237-36-2456 -sign 淮 1237-36-234 -sign 渭 1237-276-348 -sign 湮 1237-56-2374 -sign 渮 1237-56-248 -sign 渙 1237-78-348 -sign 湲 1237-36-458 -sign 湟 1237-378-237458 -sign 渾 1237-36-274568 -sign 渣 1237-238-3748 -sign 湫 1237-375-74568 -sign 渫 1237-36-7456 -sign 湶 1237-378-4568 -sign 湍 1237-36-3745 -sign 渟 1237-8-237456 -sign 湃 1237-278-234 -sign 渺 1237-3758-34568 -sign 湎 1237-237568-45 -sign 渤 1237-275-3456 -sign 滿 1237-237-2374568 -sign 渝 1237-78-7458 -sign 游 1237-278-74 -sign 溂 1237-238-2745 -sign 溪 137-37-2374 -sign 溘 1237-2756-3458 -sign 滉 1568-78-34 -sign 溷 1237-36-37468 -sign 滓 1237-25-27468 -sign 溽 1237-2368-3456 -sign 溯 1237-26-2748 -sign 滄 1237-236-345 -sign 溲 1237-36-2345 -sign 滔 1568-36-2745 -sign 滕 126-2358-2374 -sign 溏 1237-756-374568 -sign 溥 1237-5-237456 -sign 滂 1237-36-37458 -sign 溟 1237-78-3748 -sign 潁 1237-378-746 -sign 漑 1568-36-458 -sign 灌 1568-36-23458 -sign 滬 1237-3768-23748 -sign 滸 1237-235-34568 -sign 滾 1237-36-748 -sign 漿 1237-23758-34 -sign 滲 1237-2-245 -sign 漱 1237-36-7468 -sign 滯 1237-237-7456 -sign 漲 1237-758-37456 -sign 滌 1237-2568-2348 -sign 漾 1568-78-34568 -sign 漓 1237-5-234 -sign 滷 1237-768-34 -sign 澆 1237-8-27456 -sign 潺 1237-36-3458 -sign 潸 1237-26-4568 -sign 澁 1237-237-7468 -sign 澀 1237-25-7468 -sign 潯 1237-2356-23468 -sign 潛 1568-568-23458 -sign 濳 12-568-23458 -sign 潭 1237-378-3456 -sign 澂 1237-36-745 -sign 潼 1237-2768-2346 -sign 潘 1237-375-2746 -sign 澎 1237-36-245 -sign 澑 1568-26-2746 -sign 濂 1237-756-23458 -sign 潦 1237-78-3456 -sign 澳 1237-3768-3745 -sign 澣 1237-356-248 -sign 澡 1237-2356-245 -sign 澤 1276-276-2374 -sign 澹 1237-36-3748 -sign 濆 1237-36-27458 -sign 澪 1237-2376-7468 -sign 濟 1568-568-2468 -sign 濕 1237-237-234 -sign 濬 1237-78-2374568 -sign 濔 1237-3768-2374568 -sign 濘 1237-36-237456 -sign 濱 1237-237-2346 -sign 濮 1237-27-274 -sign 濛 1568-36-2458 -sign 瀉 1237-36-24 -sign 瀋 1237-25-3745 -sign 濺 1237-35-37468 -sign 瀑 1237-378-3458 -sign 瀁 1237-3568-745 -sign 瀏 1237-78-248 -sign 濾 1237-2568-3468 -sign 瀛 1237-6-37458 -sign 瀚 1237-356-274568 -sign 潴 1237-2358-2346 -sign 瀝 1237-358-7468 -sign 瀘 1237-78-2746 -sign 瀟 1237-275-7458 -sign 瀰 1568-3768-2374568 -sign 瀾 1237-37568-23748 -sign 瀲 1237-236-4568 -sign 灑 1237-3768-456 -sign 灣 1237-237-7458 -sign 炙 17568-37458 -sign 炒 17568-34568 -sign 炯 17568-36-37468 -sign 烱 17568-3768-23456 -sign 炬 17568-2-24568 -sign 炸 17568-36-2468 -sign 炳 17568-68-237458 -sign 炮 17568-37568-34 -sign 烟 17568-3768-23458 -sign 烋 17568-27-2348 -sign 烝 17568-4568 -sign 烙 17568-2568-23456 -sign 焉 18-7468 -sign 烽 17568-36-37458 -sign 焜 17568-378-456 -sign 焙 17568-27468 -sign 煥 17568-348 -sign 煕 17568-25-2348 -sign 熈 17568-36-2348 -sign 煦 17568-37568-46 -sign 煢 17568-78-3456 -sign 煌 17568-378-237458 -sign 煖 17568-36-458 -sign 煬 17568-36-468 -sign 熏 1258-36-74568 -sign 燻 17568-2458 -sign 熄 17568-237568-3468 -sign 熕 17568-76-3458 -sign 熨 17568-3756-23745 -sign 熬 17568-7-37458 -sign 燗 17568-37568-246 -sign 熹 17568-2756-37468 -sign 熾 17568-36-3748 -sign 燒 17568-7568-27456 -sign 燉 17568-36-4568 -sign 燔 17568-375-2746 -sign 燎 17568-3456 -sign 燠 17568-3768-3745 -sign 燬 17568-275-3745 -sign 燧 17568-3-34568 -sign 燵 17568-2378-2746 -sign 燼 17568-27458 -sign 燹 17568-36-34568 -sign 燿 17568-36-745 -sign 爍 17568-378-374 -sign 爐 13756-3756-74568 -sign 爛 17568-37568-23748 -sign 爨 17568-3768-2346 -sign 爭 13568-3568-346 -sign 爬 12378-38-27456 -sign 爰 16-458 -sign 爲 178-78-74568 -sign 爻 1237568-78-23746 -sign 爼 1237568-6-34568 -sign 爿 123758-3-34 -sign 牀 1756-756-2348 -sign 牆 123758-37468 -sign 牋 123758-36-37468 -sign 牘 123758-2756-746 -sign 牴 13568-2-7468 -sign 牾 13568-26-23456 -sign 犂 13568-375-24 -sign 犁 13568-375-2745 -sign 犇 13568-3568-34568 -sign 犒 13568-56-2345 -sign 犖 13568-7568-74568 -sign 犢 13568-2756-746 -sign 犧 13568-78-34568 -sign 犹 12358-36-458 -sign 犲 12358-356-45 -sign 狃 12358-8-34568 -sign 狆 12358-56-346 -sign 狄 12358-36-74568 -sign 狎 12358-68-3458 -sign 狒 12358-36-2374568 -sign 狢 12358-24568 -sign 狠 12358-7-745 -sign 狡 12358-78-23746 -sign 狹 12358-2358-274 -sign 狷 12358-36-246 -sign 倏 127-78-23458 -sign 猗 12358-2358-248 -sign 猊 12358-36-346 -sign 猜 12358-2368-234568 -sign 猖 12358-236-3748 -sign 猝 12358-35-3456 -sign 猴 12358-58-745 -sign 猯 12358-36-3745 -sign 猩 12358-378-234 -sign 猥 1276-23458 -sign 猾 12358-28-246 -sign 獎 15-23758-456 -sign 獏 12358-36-2458 -sign 默 12368-2368-23458 -sign 獗 12358-768-24 -sign 獪 12358-236-2345 -sign 獨 12358-2358-274568 -sign 獰 12358-36-237456 -sign 獸 12358-2358-748 -sign 獵 12358-2358-3456 -sign 獻 123768-23768-23458 -sign 獺 12358-35-468 -sign 珈 123758-275-23456 -sign 玳 123758-58-37468 -sign 珎 123758-36-748 -sign 玻 123758-5-23748 -sign 珀 123758-378-24 -sign 珥 123758-36-237468 -sign 珮 123758-27568-23468 -sign 珞 123758-2568-23456 -sign 璢 123758-36-2746 -sign 琅 123758-56-745 -sign 瑯 123758-75-2468 -sign 琥 123758-2568-74 -sign 珸 123758-26-23456 -sign 琲 123758-5-74568 -sign 琺 123758-237-3458 -sign 瑕 123758-36-3745 -sign 琿 123758-36-274568 -sign 瑟 123758-3468 -sign 瑙 123758-36-23746 -sign 瑁 123758-378-2374568 -sign 瑜 123758-6-7458 -sign 瑩 17568-25-237458 -sign 瑰 123758-35-2374 -sign 瑣 123758-36-746 -sign 瑪 123758-36-34568 -sign 瑶 123758-25-248 -sign 瑾 123758-36-2348 -sign 璋 123758-2768-3456 -sign 璞 123758-36-274 -sign 璧 12768-237458 -sign 瓊 123758-35-24568 -sign 瓏 123758-2768-3468 -sign 瓔 123758-2758-746 -sign 珱 123758-25-27458 -sign 瓠 12358-368-27456 -sign 瓣 127568-368-27456 -sign 瓧 128-25-3456 -sign 瓩 128-345 -sign 瓮 128-8-3458 -sign 瓲 128-56-27458 -sign 瓰 128-25-3748 -sign 瓱 128-5-234568 -sign 瓸 128-68-2374568 -sign 瓷 128-568-7468 -sign 甄 128-56-2374 -sign 甃 1375-8-248 -sign 甅 128-756-2346 -sign 甌 137568-8-248 -sign 甎 128-5-237456 -sign 甍 125-8-248 -sign 甕 12378-8-248 -sign 甓 12768-8-248 -sign 甞 178-5-2456 -sign 甦 127-23568-234 -sign 甬 15-5-27456 -sign 甼 1276-68-237456 -sign 畄 126-26-2746 -sign 畍 1276-58-346 -sign 畊 1276-6-234 -sign 畉 1276-7-23458 -sign 畛 1276-36-245 -sign 畆 1276-36-24568 -sign 畚 12358-36-2746 -sign 畩 1276-2375-24 -sign 畤 1276-2756-23468 -sign 畧 1276-276-23456 -sign 畫 12758-2758-2746 -sign 畭 1276-236-374568 -sign 畸 1276-2358-248 -sign 當 178-78-27458 -sign 疆 1758-78-2746 -sign 疇 1276-23758-23468 -sign 畴 1276-36-237458 -sign 疊 1276-276-34568 -sign 疉 1276-56-348 -sign 疂 1276-36-34568 -sign 疔 175-68-237456 -sign 疚 175-2568-45 -sign 疝 175-75-24 -sign 疥 175-58-346 -sign 疣 175-36-458 -sign 痂 175-275-23456 -sign 疳 175-5-2456 -sign 痃 175-78-374 -sign 疵 175-56-45 -sign 疽 175-36-34568 -sign 疸 175-5-3748 -sign 疼 175-2568-24 -sign 疱 175-37568-34 -sign 痍 175-758-274 -sign 痊 175-236-237458 -sign 痒 175-34568 -sign 痙 175-36-23458 -sign 痣 175-2756-3468 -sign 痞 175-2758-37468 -sign 痾 175-268-248 -sign 痿 175-36-27458 -sign 痼 175-3768-3456 -sign 瘁 175-35-3456 -sign 痰 175-7568-74568 -sign 痺 175-276-2468 -sign 痲 175-368-27468 -sign 痳 175-238-2348 -sign 瘋 175-27568-346 -sign 瘍 175-468 -sign 瘉 175-75-7458 -sign 瘟 175-36-348 -sign 瘧 175-2568-248 -sign 瘠 175-38-458 -sign 瘡 175-236-345 -sign 瘢 175-2758-3745 -sign 瘤 175-26-2746 -sign 瘴 175-2768-3456 -sign 瘰 175-276-374 -sign 瘻 175-36-2456 -sign 癇 175-37568-246 -sign 癈 175-36-24568 -sign 癆 175-78-2745 -sign 癜 175-358-3745 -sign 癘 175-68-27468 -sign 癡 175-36-7456 -sign 癢 175-3568-745 -sign 癨 175-2376-24 -sign 癩 175-35-468 -sign 癪 175-375-746 -sign 癧 175-358-7468 -sign 癬 175-23568-34568 -sign 癰 175-3768-23748 -sign 癲 175-2-2374568 -sign 癶 12568-36-24 -sign 癸 168-24568 -sign 發 12568-24568 -sign 皀 12378-378-24 -sign 皃 136-378-24 -sign 皈 1378-278-7468 -sign 皋 1378-238-48 -sign 皎 1378-78-23746 -sign 皖 1378-25-346 -sign 皓 1378-36-3458 -sign 皙 1378-238-345 -sign 皚 175-378-24 -sign 皰 12378-37568-34 -sign 皴 127568-5-23748 -sign 皸 136-5-23748 -sign 皹 12378-36-274568 -sign 皺 137568-5-23748 -sign 盂 128-36-348 -sign 盍 12756-36-348 -sign 盖 13568-36-246 -sign 盒 138-236-37468 -sign 盞 13768-36-348 -sign 盡 12758-2758-74568 -sign 盥 1237-36-348 -sign 盧 12568-36-2746 -sign 盪 138-237-468 -sign 蘯 1258-36-2374 -sign 盻 1237568-36-374568 -sign 眈 1237568-36-748 -sign 眇 1237568-3758-34568 -sign 眄 1237568-36-245 -sign 眩 1237568-78-374 -sign 眤 1237568-3756-458 -sign 眞 12-2-2374568 -sign 眥 1237568-36-456 -sign 眦 1237568-56-45 -sign 眛 1237568-238-45 -sign 眷 1237568-36-23458 -sign 眸 1237568-6-274568 -sign 睇 1237568-758-346 -sign 睚 1237568-36-27456 -sign 睨 1237568-3458 -sign 睫 1237568-36-27468 -sign 睛 1237568-2368-234568 -sign 睥 1237568-276-2468 -sign 睿 1237568-7-74 -sign 睾 12568-2756-248 -sign 睹 1237568-3756-3748 -sign 瞎 1237568-36-237458 -sign 瞋 1237568-2-2374568 -sign 瞑 1237568-78-3748 -sign 瞠 1237568-78-27456 -sign 瞞 1237568-36-2374568 -sign 瞰 1237568-23768-4568 -sign 瞶 1237568-76-2348 -sign 瞹 1237568-78-24 -sign 瞿 1237568-36-2458 -sign 瞼 1237568-3748 -sign 瞽 1237568-2748 -sign 瞻 1237568-36-3748 -sign 矇 1237568-36-34568 -sign 矍 1237568-23-3746 -sign 矗 1237568-356-2374568 -sign 矚 1237568-3756-237468 -sign 矜 1756-236-24 -sign 矣 18-274568 -sign 矮 175-375-27458 -sign 矼 12768-358-24 -sign 砌 12768-2356-2745 -sign 砒 12768-36-456 -sign 礦 12768-3458 -sign 砠 12768-6-34568 -sign 礪 12768-68-27468 -sign 硅 12768-36-27456 -sign 碎 12768-2768-345 -sign 硴 12768-258-456 -sign 碆 12768-237-23748 -sign 硼 12768-26-246 -sign 碚 12768-36-27468 -sign 碌 12768-36-237468 -sign 碣 12768-36-4568 -sign 碵 12768-76-37456 -sign 碪 12768-2-2348 -sign 碯 12768-36-23746 -sign 磑 12768-6-745 -sign 磆 12768-28-246 -sign 磋 12768-3568-3458 -sign 磔 12768-36-2348 -sign 碾 12768-3756-37456 -sign 碼 12768-78-34568 -sign 磅 12768-36-37458 -sign 磊 12768-2768-27468 -sign 磬 12768-23768-3745 -sign 磧 12768-23758-746 -sign 磚 12768-5-237456 -sign 磽 12768-78-27456 -sign 磴 12768-2568-37456 -sign 礇 12768-3768-3745 -sign 礒 12768-3568-37468 -sign 礑 12768-78-27458 -sign 礙 12768-75-7456 -sign 礬 12768-238-2348 -sign 礫 12768-378-374 -sign 祀 12375-36-2348 -sign 祠 12375-458 -sign 祗 12375-36-7468 -sign 祟 12375-56-237458 -sign 祚 12375-36-2468 -sign 祕 1375-375-46 -sign 祓 12375-3746 -sign 祺 12375-5-2348 -sign 祿 12375-2375-237468 -sign 禊 12375-275-23458 -sign 禝 12375-78-2746 -sign 禧 12375-2756-37468 -sign 齋 178-78-2468 -sign 禪 12375-2375-23456 -sign 禮 12375-2375-37456 -sign 禳 12375-36-237468 -sign 禹 16-237468 -sign 禺 16-2458 -sign 秉 123756-375-45 -sign 秕 1375-36-456 -sign 秧 1375-2358-345 -sign 秬 1375-2-24568 -sign 秡 1375-356-3746 -sign 秣 1375-238-46 -sign 稈 1375-5-248 -sign 稍 1375-3568-348 -sign 稘 1375-5-2348 -sign 稙 1375-356-2374568 -sign 稠 1375-3768-27456 -sign 稟 1375-3768-23456 -sign 禀 12375-3768-23456 -sign 稱 1375-375-748 -sign 稻 1375-375-45 -sign 稾 1375-56-2345 -sign 稷 1368-36-24568 -sign 穃 1375-25-2746 -sign 穗 1375-375-274568 -sign 穉 1375-36-37456 -sign 穡 1375-36-37468 -sign 穢 1375-7468 -sign 穩 1375-375-2456 -sign 龝 1375-36-2374568 -sign 穰 1375-375-237468 -sign 穹 125-758-24 -sign 穽 123-25-2346 -sign 窈 125-37-24 -sign 窗 136-36-3458 -sign 窕 125-68-346 -sign 窘 125-35-24 -sign 窖 1358-25-2346 -sign 窩 128-25-2346 -sign 竈 17568-25-2346 -sign 窰 125-36-74568 -sign 窶 125-36-468 -sign 竅 1568-25-2346 -sign 竄 125-2358-46 -sign 窿 125-268-234568 -sign 邃 12378-25-2346 -sign 竇 12756-25-2346 -sign 竊 125-25-23456 -sign 竍 12768-36-3456 -sign 竏 12768-68-234568 -sign 竕 12768-36-2346 -sign 竓 12768-36-234568 -sign 站 12768-36-37456 -sign 竚 12768-68-237456 -sign 竝 12768-2768-24 -sign 竡 12768-68-2374568 -sign 竢 12768-8-274568 -sign 竦 12768-238-468 -sign 竭 12768-78-4568 -sign 竰 12768-756-2346 -sign 笂 12376-2-345 -sign 笏 12376-5-468 -sign 笊 12376-38-27456 -sign 笆 12376-6-23748 -sign 笳 12376-275-23456 -sign 笘 12376-2356-37456 -sign 笙 12376-23568-234 -sign 笞 12376-5-274 -sign 笵 12376-36-2468 -sign 笨 12376-238-48 -sign 笶 12376-75-34 -sign 筐 12376-23758-24 -sign 筺 12376-78-237458 -sign 笄 12376-36-37456 -sign 筍 12376-3458 -sign 笋 12376-8-234 -sign 筌 12376-236-237458 -sign 筅 12376-2756-748 -sign 筵 12376-278-24 -sign 筥 12376-8-237468 -sign 筴 12376-6-274 -sign 筧 12376-237568-346 -sign 筰 12376-58-2468 -sign 筱 12376-58-7458 -sign 筬 12376-23568-23748 -sign 筮 12376-58-27458 -sign 箝 12376-5-2456 -sign 箘 12376-78-37468 -sign 箟 12376-378-456 -sign 箍 12376-36-237456 -sign 箜 12376-25-2348 -sign 箚 12376-236-37468 -sign 箋 12376-5-37468 -sign 箒 12376-36-2346 -sign 箏 12376-3568-346 -sign 筝 12376-78-34568 -sign 箙 12376-26-374 -sign 篋 12376-36-274 -sign 篁 12376-378-237458 -sign 篌 12376-58-745 -sign 篏 12376-768-24 -sign 箴 12376-2378-74 -sign 篆 12376-36-34568 -sign 篝 12376-36-274568 -sign 篩 12376-2368-246 -sign 簑 12376-36-23745 -sign 簔 12376-78-23745 -sign 篦 12376-78-456 -sign 篥 12376-368-2374 -sign 籠 12768-23746 -sign 簀 12376-23758-746 -sign 簇 12376-3758-745 -sign 簓 12376-3768-245 -sign 篳 12376-36-2746 -sign 篷 12376-2378-37458 -sign 簗 12376-36-2348 -sign 簍 12376-36-2456 -sign 篶 12376-36-7468 -sign 簣 12376-76-2348 -sign 簧 12376-2368-3458 -sign 簪 12376-36-3748 -sign 簟 12376-378-3456 -sign 簷 12376-78-3748 -sign 簫 12376-275-7458 -sign 簽 12376-8-2346 -sign 籌 12376-23758-23468 -sign 籃 12376-2568-348 -sign 籔 12376-36-468 -sign 籏 12376-3758-2348 -sign 籀 12376-78-246 -sign 籐 1368-368-27458 -sign 籘 12376-36-27458 -sign 籟 12376-35-468 -sign 籤 12376-36-237468 -sign 籖 12376-78-237468 -sign 籥 12376-276-23746 -sign 籬 12376-25-234 -sign 籵 1375-36-3456 -sign 粃 1375-25-456 -sign 粐 1375-78-37456 -sign 粤 137568-3768-3745 -sign 粭 1375-236-37468 -sign 粢 1375-568-7468 -sign 粫 1375-8-3745 -sign 粡 1375-3768-37456 -sign 粨 1375-68-2374568 -sign 粳 1375-378-274 -sign 粲 1375-36-2468 -sign 粱 1375-36-2374 -sign 粮 1375-56-745 -sign 粹 1375-375-3456 -sign 粽 1375-25-23745 -sign 糀 1375-258-456 -sign 糅 1375-238-7456 -sign 糂 1375-2-2348 -sign 糘 1375-36-245 -sign 糒 1375-36-23748 -sign 糜 1375-368-27468 -sign 糢 1375-8-2458 -sign 鬻 1758-36-23456 -sign 糯 1375-2376-3745 -sign 糲 1375-68-27468 -sign 糴 1375-56-274 -sign 糶 1375-56-237458 -sign 糺 123-36-746 -sign 紆 123-248 -sign 紂 123-56-23468 -sign 紜 123-36-2345 -sign 紕 123-36-456 -sign 紊 123-78-74 -sign 絅 123-3768-23456 -sign 絋 123-756-3458 -sign 紮 123-238-746 -sign 紲 123-356-7456 -sign 紿 123-5-274 -sign 紵 123-68-237456 -sign 絆 123-2748 -sign 絳 137-36-3458 -sign 絖 123-78-34 -sign 絎 123-36-7458 -sign 絲 123-23-234 -sign 絨 123-36-37468 -sign 絮 123-2758-23456 -sign 絏 123-8-23468 -sign 絣 123-37456 -sign 經 123-23-23458 -sign 綉 123-375-374 -sign 絛 123-58-7458 -sign 綏 123-2758-748 -sign 絽 123-8-237468 -sign 綛 123-275-3468 -sign 綺 123-2358-248 -sign 綮 123-3756-23456 -sign 綣 123-2358-2468 -sign 綵 123-36-23746 -sign 緇 123-26-2746 -sign 綽 123-378-37456 -sign 綫 123-78-37468 -sign 總 123-23-3458 -sign 綢 123-3768-27456 -sign 綯 123-36-37456 -sign 緜 137-36-2374568 -sign 綸 123-36-2456 -sign 綟 123-3756-23458 -sign 綰 123-25-246 -sign 緘 123-2378-74 -sign 緝 123-36-237468 -sign 緤 123-36-7456 -sign 緞 123-5-3745 -sign 緻 123-568-7458 -sign 緲 137-3758-34568 -sign 緡 123-23768-7468 -sign 縅 123-2378-27458 -sign 縊 123-348 -sign 縣 1237568-237568-374 -sign 縡 123-25-27468 -sign 縒 123-3568-3458 -sign 縱 123-23-7456 -sign 縟 123-2368-3456 -sign 縉 123-378-23748 -sign 縋 137-246 -sign 縢 126-2358-374 -sign 繆 123-27568-34 -sign 繦 123-758-274568 -sign 縻 123-368-27468 -sign 縵 123-36-27468 -sign 縹 123-237-23745 -sign 繃 123-745 -sign 縷 123-2456 -sign 縲 123-276-374 -sign 縺 123-2378-274568 -sign 繧 123-2376-2345 -sign 繝 123-37568-246 -sign 繖 123-26-4568 -sign 繞 123-36-27456 -sign 繙 123-375-2746 -sign 繚 137-36-3456 -sign 繹 137-2746 -sign 繪 123-23-2345 -sign 繩 123-23-2374568 -sign 繼 123-23-3745 -sign 繻 123-2376-3745 -sign 纃 123-36-2468 -sign 緕 123-268-748 -sign 繽 123-25-746 -sign 辮 127568-36-374 -sign 繿 123-2568-348 -sign 纈 123-2756-23456 -sign 纉 123-76-23458 -sign 續 123-23-27456 -sign 纒 137-37-7456 -sign 纐 123-78-23746 -sign 纓 123-2758-746 -sign 纔 123-275-346 -sign 纖 123-23-237468 -sign 纎 123-78-237468 -sign 纛 137-23758-2748 -sign 纜 123-237568-24568 -sign 缸 1768-358-24 -sign 缺 1768-768-24 -sign 罅 1768-36-24568 -sign 罌 1768-76-746 -sign 罍 1768-276-2746 -sign 罎 1768-378-23746 -sign 罐 1768-23458 -sign 网 12568-3-34 -sign 罕 12568-5-248 -sign 罔 13-7458 -sign 罘 12568-5-27458 -sign 罟 12568-2356-3456 -sign 罠 12568-7468 -sign 罨 12568-2456 -sign 罩 12568-378-37456 -sign 罧 12568-238-2348 -sign 罸 12568-235-23468 -sign 羂 12568-23-246 -sign 羆 12568-26-74568 -sign 羃 12568-258-23468 -sign 羈 12568-3456 -sign 羇 12568-2358-248 -sign 羌 13568-36-346 -sign 羔 13568-36-3458 -sign 羞 13568-36-34568 -sign 羝 13568-36-7468 -sign 羚 13568-58-3456 -sign 羣 13568-35-24 -sign 羯 13568-36-4568 -sign 羲 13568-375-374 -sign 羹 13568-78-74568 -sign 羮 13568-36-74568 -sign 羶 13568-78-37468 -sign 羸 138-36-34568 -sign 譱 13568-3568-23456 -sign 翅 1278-27568-34 -sign 翆 127568-36-345 -sign 翊 12768-27568-34 -sign 翕 1236-27568-34 -sign 翔 13568-27568-34 -sign 翡 17568-27568-34 -sign 翦 127568-26-2745 -sign 翩 123758-27568-34 -sign 翳 137568-27568-34 -sign 翹 12756-27568-34 -sign 飜 1276-276-274568 -sign 耆 13756-5-2374 -sign 耄 13756-5-234568 -sign 耋 13756-5-7458 -sign 耒 1358-74 -sign 耘 1358-2345 -sign 耙 1358-36-23748 -sign 耜 1358-36-246 -sign 耡 1358-275-34568 -sign 耨 1358-2368-3456 -sign 耿 123768-74568 -sign 耻 123768-36-7468 -sign 聊 123768-36-2468 -sign 聆 123768-58-3456 -sign 聒 123768-2356-234568 -sign 聘 123768-36-2746 -sign 聚 1376-36-34568 -sign 聟 123768-75-23456 -sign 聢 123768-25-7456 -sign 聨 123768-78-374 -sign 聳 1758-237468 -sign 聲 123768-23768-3745 -sign 聰 123768-23768-3458 -sign 聶 123768-23768-237468 -sign 聹 123768-36-237456 -sign 聽 123768-23768-3456 -sign 聿 17-27458 -sign 肄 175-7-27458 -sign 肆 13756-36-27458 -sign 肅 1275-275-7458 -sign 肛 138-358-24 -sign 肓 138-6-37458 -sign 肚 138-36-27456 -sign 肭 138-3768-458 -sign 冐 1378-36-2374568 -sign 肬 138-8-458 -sign 胛 138-68-3458 -sign 胥 138-36-7456 -sign 胙 138-36-2468 -sign 胝 138-2-7468 -sign 胄 1276-246 -sign 胚 138-5-27458 -sign 胖 138-356-2748 -sign 脉 138-568-45 -sign 胯 138-36-23458 -sign 胱 138-78-34 -sign 脛 138-23458 -sign 脩 138-58-7458 -sign 脣 138-5-3456 -sign 脯 138-8-37458 -sign 腋 138-78-274 -sign 隋 1268-36-246 -sign 腆 138-276-2346 -sign 脾 138-2746 -sign 腓 138-5-74568 -sign 腑 126-23468 -sign 胼 138-36-37456 -sign 腱 138-278-27458 -sign 腮 138-276-3468 -sign 腥 138-378-234 -sign 腦 138-38-23746 -sign 腴 138-7-7458 -sign 膃 138-36-348 -sign 膈 138-37468 -sign 膊 138-36-237456 -sign 膀 138-36-37458 -sign 膂 138-3758-7458 -sign 膠 138-274568 -sign 膕 138-3768-237458 -sign 膤 138-2376-234568 -sign 膣 138-36-7458 -sign 腟 138-25-7458 -sign 膓 138-38-468 -sign 膩 138-3768-234 -sign 膰 138-375-2746 -sign 膵 138-345 -sign 膾 138-236-2345 -sign 膸 138-38-246 -sign 膽 138-38-3748 -sign 臀 138-3458 -sign 臂 138-27468 -sign 膺 138-7456 -sign 臉 138-36-2346 -sign 臍 138-34 -sign 臑 138-2376-3745 -sign 臙 138-3768-23458 -sign 臘 126-3456 -sign 臈 1258-36-246 -sign 臚 138-36-2746 -sign 臟 126-26-24568 -sign 臠 1235-36-348 -sign 臧 123758-36-24568 -sign 臺 15-5-274 -sign 臻 1758-2358-3745 -sign 臾 17-7458 -sign 舁 1275-36-37456 -sign 舂 12358-8-2745 -sign 舅 1275-276-2745 -sign 與 136-36-45 -sign 舊 1378-378-45 -sign 舍 1236-236-234568 -sign 舐 1768-2356-234568 -sign 舖 1236-236-37458 -sign 舩 12758-8-3458 -sign 舫 12758-36-37458 -sign 舸 12758-56-248 -sign 舳 12758-276-45 -sign 艀 12758-568-245 -sign 艙 12758-236-345 -sign 艘 12758-36-2345 -sign 艝 12758-2376-234568 -sign 艚 12758-2-34568 -sign 艟 12758-2768-2346 -sign 艤 12758-3568-37468 -sign 艢 12758-3768-23456 -sign 艨 12758-36-2458 -sign 艪 12758-36-3748 -sign 艫 12758-36-2746 -sign 舮 12758-36-37456 -sign 艱 1258-36-745 -sign 艷 1276-276-23468 -sign 艸 17-2458 -sign 艾 1368-2374568 -sign 芍 1368-56-374568 -sign 芒 1368-6-37458 -sign 芫 1368-2-346 -sign 芟 1258-78-3745 -sign 芻 18-374568 -sign 芬 1258-36-2346 -sign 苡 1368-5-374568 -sign 苣 1258-2-24568 -sign 苟 1258-37568-46 -sign 苒 1258-356-37468 -sign 苴 1258-6-34568 -sign 苳 1258-2568-24 -sign 苺 1368-456 -sign 莓 1368-78-2748 -sign 范 1258-36-2468 -sign 苻 1258-27-23468 -sign 苹 1368-236-248 -sign 苞 1258-37568-34 -sign 茆 1368-268-245 -sign 苜 1368-78-2374568 -sign 茉 1368-238-46 -sign 苙 1368-2768-24 -sign 茵 1258-3768-23458 -sign 茴 1258-3768-23456 -sign 茖 1258-2568-23456 -sign 茲 1258-37-374 -sign 茱 1368-6-248 -sign 荀 1368-378-24568 -sign 茹 1258-2758-23456 -sign 荐 1258-356-3458 -sign 荅 1368-236-37468 -sign 茯 1368-27-23458 -sign 茫 1258-6-37458 -sign 茗 1368-3758-23456 -sign 茘 1368-5-2745 -sign 莅 1258-27-27468 -sign 莚 1258-278-24 -sign 莪 1368-3768-24 -sign 莟 1258-236-23456 -sign 莢 1258-36-274 -sign 莖 1258-258-23458 -sign 茣 1258-6-3458 -sign 莎 1368-568-37458 -sign 莇 1258-275-34568 -sign 莊 1258-258-237458 -sign 荼 1368-236-374568 -sign 莵 1368-3568-245 -sign 荳 1368-6-37456 -sign 荵 1368-275-3468 -sign 莠 1368-375-374 -sign 莉 1368-36-2745 -sign 莨 1368-56-745 -sign 菴 1258-8-3468 -sign 萓 1368-25-34568 -sign 菫 1368-78-2348 -sign 菎 1368-378-456 -sign 菽 1368-36-3746 -sign 萃 1258-35-3456 -sign 菘 1368-368-3458 -sign 萋 1258-2758-2468 -sign 菁 1368-2368-234568 -sign 菷 1258-6-2346 -sign 萇 1368-5-37456 -sign 菠 1368-237-23748 -sign 菲 1368-5-74568 -sign 萍 1258-236-248 -sign 萢 1258-237-74 -sign 萠 1258-26-246 -sign 莽 1258-2358-37456 -sign 萸 1368-36-7458 -sign 蔆 1368-78-24568 -sign 菻 1368-25-2348 -sign 葭 1368-78-3745 -sign 萪 1368-375-37456 -sign 萼 1258-36-23458 -sign 蕚 1258-78-23458 -sign 蒄 1258-36-23468 -sign 葷 1258-36-274568 -sign 葫 1368-2356-3456 -sign 蒭 1258-8-374568 -sign 葮 1368-5-3745 -sign 蒂 1258-2768-23468 -sign 葩 1258-378-24 -sign 葆 1258-27-23456 -sign 萬 168-68-27468 -sign 葯 1258-23-374568 -sign 葹 1368-3758-23746 -sign 萵 1368-36-248 -sign 蓊 1258-358-274568 -sign 葢 13568-78-246 -sign 蒹 1368-236-23458 -sign 蒿 1368-56-2345 -sign 蒟 1368-25-374568 -sign 蓙 1258-756-274 -sign 蓍 1368-3756-34 -sign 蒻 1368-758-7458 -sign 蓚 1258-27-245 -sign 蓐 1258-2368-3456 -sign 蓁 1258-2358-3745 -sign 蓆 1258-756-234568 -sign 蓖 1368-36-456 -sign 蒡 1368-5-37458 -sign 蔡 1258-2375-2468 -sign 蓿 1368-36-346 -sign 蓴 1368-25-237456 -sign 蔗 1368-756-37456 -sign 蔘 1258-2-245 -sign 蔬 1368-756-2458 -sign 蔟 1258-3758-745 -sign 蔕 1258-2368-7456 -sign 蔔 1368-36-27458 -sign 蓼 1368-27568-34 -sign 蕀 1368-68-468 -sign 蕣 1368-6-748 -sign 蕘 1258-8-27456 -sign 蕈 1368-378-3456 -sign 蕁 1368-2356-23468 -sign 蘂 1238-368-3468 -sign 蕋 1258-768-7468 -sign 蕕 1368-2358-234568 -sign 薀 1368-237-348 -sign 薤 1368-78-74568 -sign 薈 1258-236-2345 -sign 薑 1368-36-2748 -sign 薊 1368-2745 -sign 薨 1258-3758-34 -sign 蕭 1368-275-7458 -sign 薔 1368-3768-23456 -sign 薛 1368-356-27468 -sign 藪 1258-36-468 -sign 薇 1368-758-4568 -sign 薜 1258-8-27468 -sign 蕷 1368-35-7456 -sign 蕾 1258-2376-2746 -sign 薐 1368-375-24568 -sign 藉 1258-378-23745 -sign 薺 1368-268-748 -sign 藏 1258-258-24568 -sign 薹 1258-5-274 -sign 藐 1258-3568-3748 -sign 藕 1258-6-2458 -sign 藝 1258-258-2345 -sign 藥 1258-258-374 -sign 藜 1368-25-3745 -sign 藹 1258-235-4568 -sign 蘊 1258-348 -sign 蘓 1368-78-34568 -sign 蘋 1368-768-345 -sign 藾 1368-35-468 -sign 藺 1368-25-234 -sign 蘆 1368-2746 -sign 蘢 1368-2768-3468 -sign 蘚 1368-23568-34568 -sign 蘰 1258-78-27468 -sign 蘿 1368-2568-234 -sign 虍 12568-7-74 -sign 乕 18-8-24568 -sign 虔 12568-78-74 -sign 號 12356-2356-24568 -sign 虧 12568-36-374568 -sign 虱 127568-46 -sign 蚓 127568-758-45 -sign 蚣 127568-8-3458 -sign 蚩 127568-36-745 -sign 蚪 127568-56-37456 -sign 蚋 127568-3768-458 -sign 蚌 127568-2358-37458 -sign 蚶 127568-5-2456 -sign 蚯 127568-258-45 -sign 蛄 127568-2356-3456 -sign 蛆 127568-6-34568 -sign 蚰 127568-276-45 -sign 蛉 127568-58-3456 -sign 蠣 127568-68-27468 -sign 蚫 127568-37568-34 -sign 蛔 127568-3768-23456 -sign 蛞 127568-2356-234568 -sign 蛩 127568-78-748 -sign 蛬 127568-5-3458 -sign 蛟 127568-78-23746 -sign 蛛 127568-6-248 -sign 蛯 127568-3756-34 -sign 蜒 127568-278-24 -sign 蜆 127568-237568-346 -sign 蜈 127568-6-3458 -sign 蜀 15-274568 -sign 蜃 127568-36-3456 -sign 蛻 127568-78-346 -sign 蜑 1278-27568-24 -sign 蜉 127568-568-245 -sign 蜍 127568-236-374568 -sign 蛹 127568-3768-74 -sign 蜊 127568-375-2745 -sign 蜴 127568-378-468 -sign 蜿 127568-36-245 -sign 蜷 127568-2358-2468 -sign 蜻 127568-2368-234568 -sign 蜥 127568-238-345 -sign 蜩 127568-3768-27456 -sign 蜚 127568-5-74568 -sign 蝠 127568-36-27458 -sign 蝟 127568-276-348 -sign 蝸 127568-36-248 -sign 蝌 127568-375-37456 -sign 蝎 127568-36-4568 -sign 蝴 127568-8-246 -sign 蝗 127568-78-237458 -sign 蝨 127568-8-3456 -sign 蝮 127568-36-24568 -sign 蝙 127568-36-237458 -sign 蝓 127568-6-7458 -sign 蝣 127568-278-74 -sign 蝪 127568-36-468 -sign 蠅 127568-2374568 -sign 螢 17568-7568-346 -sign 螟 127568-78-3748 -sign 螂 127568-75-2468 -sign 螯 127568-7-37458 -sign 蟋 127568-36-3468 -sign 螽 127568-2568-24 -sign 蟀 127568-78-3456 -sign 蟐 127568-78-23468 -sign 雖 127568-234 -sign 螫 127568-28-4568 -sign 蟄 127568-2756-345 -sign 螳 127568-78-27456 -sign 蟇 127568-36-2458 -sign 蟆 127568-8-2458 -sign 螻 127568-36-2456 -sign 蟯 127568-36-27456 -sign 蟲 127568-27568-274568 -sign 蟠 127568-375-2746 -sign 蠏 127568-78-37468 -sign 蠍 127568-768-24 -sign 蟾 127568-36-3748 -sign 蟶 127568-23768-237458 -sign 蟷 127568-78-27458 -sign 蠎 127568-2358-37456 -sign 蟒 127568-36-37456 -sign 蠑 127568-78-2348 -sign 蠖 127568-78-2458 -sign 蠕 127568-2376-3745 -sign 蠢 127568-2745 -sign 蠡 127568-36-34568 -sign 蠱 127568-36-348 -sign 蠶 127568-36-274568 -sign 蠹 127568-78-27468 -sign 蠧 127568-36-27468 -sign 蠻 1235-235-274568 -sign 衄 13568-2-348 -sign 衂 1275-2-348 -sign 衒 1758-78-374 -sign 衙 1758-26-23456 -sign 衞 1758-758-2345 -sign 衢 1758-36-234 -sign 衫 12375-36-245 -sign 袁 18-2345 -sign 衾 12375-236-24 -sign 袞 136-2375-24 -sign 衵 12375-36-3748 -sign 衽 12375-68-2374 -sign 袵 12375-58-2374 -sign 衲 12375-3768-458 -sign 袂 12375-36-237456 -sign 袗 12375-25-245 -sign 袒 12375-5-3748 -sign 袮 12375-2375-748 -sign 袙 12375-378-24 -sign 袢 12375-356-2748 -sign 袍 12375-37568-34 -sign 袤 12375-2-7456 -sign 袰 12375-56-2748 -sign 袿 12375-36-27456 -sign 袱 12375-27-23458 -sign 裃 12375-25-748 -sign 裄 12375-36-7458 -sign 裔 12375-2345 -sign 裘 12375-356-2374 -sign 裙 12375-35-24 -sign 裝 12756-2756-23745 -sign 裹 12375-276-2348 -sign 褂 12375-2756-27456 -sign 裼 12375-378-468 -sign 裴 12375-5-74568 -sign 裨 12375-276-2468 -sign 裲 12375-2376-45 -sign 褄 12375-2758-2468 -sign 褌 12375-274568 -sign 褊 12375-36-237458 -sign 褓 12375-27-23456 -sign 襃 178-27-23456 -sign 褞 12375-36-348 -sign 褥 12375-2368-3456 -sign 褪 12375-2378-745 -sign 褫 12375-2568-74 -sign 襁 12375-758-274568 -sign 襄 17-237468 -sign 褻 178-2375-24 -sign 褶 12375-27568-3748 -sign 褸 12375-36-2456 -sign 襌 12375-2356-23456 -sign 褝 12375-36-23456 -sign 襠 12375-78-27458 -sign 襞 12375-36-27468 -sign 襦 12375-2376-3745 -sign 襤 12375-2568-348 -sign 襭 12375-2756-23456 -sign 襪 12375-2568-23748 -sign 襯 12375-2768-2374568 -sign 襴 12375-37568-23748 -sign 襷 12375-25-237456 -sign 襾 12-56-2374 -sign 覃 1568-378-3456 -sign 覈 1237-36-4568 -sign 覊 1237-25-34568 -sign 覓 178-237568-346 -sign 覘 12356-237568-346 -sign 覡 158-237568-346 -sign 覩 13756-237568-346 -sign 覦 1758-237568-346 -sign 覬 175-237568-346 -sign 覯 1237568-36-274568 -sign 覲 1238-237568-346 -sign 覺 178-78-2374568 -sign 覽 1237568-237568-24568 -sign 覿 1237568-2756-746 -sign 觀 12358-2358-2374568 -sign 觚 13768-36-3458 -sign 觜 13768-56-45 -sign 觝 13768-2-7468 -sign 觧 13768-3568-34 -sign 觴 13768-468 -sign 觸 13768-3768-274568 -sign 訃 1235-37456 -sign 訖 1235-78-345 -sign 訐 1235-36-248 -sign 訌 1235-358-24 -sign 訛 1235-58-456 -sign 訝 1235-2374568 -sign 訥 1235-3768-458 -sign 訶 1235-56-248 -sign 詁 1235-2356-3456 -sign 詛 1235-6-34568 -sign 詒 1235-5-274 -sign 詆 1235-2-7468 -sign 詈 12568-2345 -sign 詼 1235-756-74568 -sign 詭 1235-258-2468 -sign 詬 1235-756-23456 -sign 詢 1235-378-24568 -sign 誅 1235-6-248 -sign 誂 1376-346 -sign 誄 1235-238-274 -sign 誨 1376-2748 -sign 誡 1235-3756-37468 -sign 誑 1235-2358-237458 -sign 誥 1235-358-2458 -sign 誦 1235-36-27456 -sign 誚 1235-3568-348 -sign 誣 1235-58-27458 -sign 諄 1235-78-3458 -sign 諍 1235-3568-346 -sign 諂 1235-36-2745 -sign 諚 1235-25-7456 -sign 諫 1376-23748 -sign 諳 1376-27468 -sign 諧 1235-56-3748 -sign 諤 1235-36-23458 -sign 諱 1235-36-234 -sign 謔 1235-2568-248 -sign 諠 1235-25-3748 -sign 諢 1235-36-274568 -sign 諷 1235-27568-346 -sign 諞 1235-36-237458 -sign 諛 1376-7458 -sign 謌 1235-28-7468 -sign 謇 125-36-3746 -sign 謚 1235-236-348 -sign 諡 1235-36-374568 -sign 謖 1235-36-2746 -sign 謐 1235-368-46 -sign 謗 1376-37458 -sign 謠 1235-235-248 -sign 謳 1235-374568 -sign 鞫 1235-3756-3456 -sign 謦 1235-23768-3745 -sign 謫 1235-36-345 -sign 謾 1235-78-27468 -sign 謨 1235-36-2458 -sign 譁 1235-258-248 -sign 譌 1235-78-74568 -sign 譏 1235-37-37468 -sign 譎 1235-2-7456 -sign 證 1376-376-234 -sign 譖 1235-78-3748 -sign 譛 1235-378-23458 -sign 譚 1235-378-3456 -sign 譫 1235-36-3748 -sign 譟 1235-2356-245 -sign 譬 1235-36-27468 -sign 譯 1376-376-2746 -sign 譴 1235-278-246 -sign 譽 178-78-2345 -sign 讀 1235-235-27456 -sign 讌 1235-78-27456 -sign 讎 1376-36-468 -sign 讒 1235-275-346 -sign 讓 1376-376-237468 -sign 讖 1235-36-237468 -sign 讙 1235-78-23458 -sign 讚 1235-36-746 -sign 谺 1237568-276-24 -sign 豁 136-2746 -sign 谿 137-276-24 -sign 豈 16-745 -sign 豌 125-6-37456 -sign 豎 13756-36-24568 -sign 豐 1276-276-37456 -sign 豕 18-8-34568 -sign 豢 12358-36-34568 -sign 豬 12358-25-2346 -sign 豸 13568-8-48 -sign 豺 13568-3456 -sign 貂 13568-275-37468 -sign 貉 12358-2568-23456 -sign 貅 13568-27-2348 -sign 貊 13568-68-2374568 -sign 貍 13568-56-2346 -sign 貎 13568-358-346 -sign 貔 13568-78-456 -sign 豼 13568-36-456 -sign 貘 13568-8-2458 -sign 戝 176-5-37468 -sign 貭 176-76-746 -sign 貪 176-2346 -sign 貽 176-5-274 -sign 貲 176-56-45 -sign 貳 13768-3768-234 -sign 貮 15-3768-234 -sign 貶 176-3-3745 -sign 賈 16-2374 -sign 賁 16-27458 -sign 賤 135-37468 -sign 賣 12756-2756-746 -sign 賚 176-238-274 -sign 賽 176-245 -sign 賺 176-236-23458 -sign 賻 176-5-237456 -sign 贄 176-345 -sign 贅 176-37458 -sign 贊 176-76-23458 -sign 贇 176-3768-7468 -sign 贏 138-36-746 -sign 贍 176-36-3748 -sign 贐 176-2758-74568 -sign 齎 176-78-2468 -sign 贓 176-36-24568 -sign 賍 176-5-27456 -sign 贔 176-36-746 -sign 贖 176-27456 -sign 赧 135-2368-248 -sign 赭 128-3756-3748 -sign 赱 1278-45 -sign 赳 1278-36-2468 -sign 趁 1278-36-245 -sign 趙 1278-3568-348 -sign 跂 123768-278-34 -sign 趾 123768-78-7468 -sign 趺 123768-7-23458 -sign 跏 123768-275-23456 -sign 跚 123768-36-237458 -sign 跖 123768-36-27468 -sign 跌 123768-8-23458 -sign 跛 123768-23748 -sign 跋 123768-356-3746 -sign 跪 123768-258-2468 -sign 跫 123768-36-748 -sign 跟 123768-7-745 -sign 跣 123768-2756-748 -sign 跼 123768-3756-374568 -sign 踈 123768-238-468 -sign 踉 123768-56-745 -sign 跿 123768-36-2748 -sign 踝 123768-276-2348 -sign 踞 123768-3756-24 -sign 踐 123768-23768-37468 -sign 踟 123768-36-745 -sign 蹂 123768-238-7456 -sign 踵 123768-78-2346 -sign 踰 123768-36-7458 -sign 踴 123768-275-2746 -sign 蹊 123768-374 -sign 蹇 125-23768-34 -sign 蹉 123768-3568-3458 -sign 蹌 123768-236-345 -sign 蹐 123768-38-458 -sign 蹈 123768-36-2745 -sign 蹙 12378-237468 -sign 蹤 123768-758-7456 -sign 蹠 123768-756-37456 -sign 踪 123768-25-23745 -sign 蹣 123768-36-2374568 -sign 蹕 123768-276-248 -sign 蹶 123768-768-24 -sign 蹲 123768-23568-23468 -sign 蹼 123768-36-274 -sign 躁 123768-245 -sign 躇 123768-3756-2458 -sign 躅 123768-5-274568 -sign 躄 123768-8-27468 -sign 躋 123768-268-748 -sign 躊 123768-23758-23468 -sign 躓 123768-746 -sign 躑 123768-36-234568 -sign 躔 123768-36-7456 -sign 躙 123768-36-374568 -sign 躪 123768-78-374568 -sign 躡 123768-36-237468 -sign 躬 123768-758-24 -sign 躰 123768-238-48 -sign 軆 123768-276-37456 -sign 躱 123768-2-374 -sign 躾 123768-34568 -sign 軅 123768-78-7456 -sign 軈 123768-756-3468 -sign 軋 127568-36-746 -sign 軛 127568-756-2468 -sign 軣 15-27568-245 -sign 軼 127568-8-23458 -sign 軻 127568-56-248 -sign 軫 127568-78-245 -sign 軾 127568-3768-34 -sign 輊 127568-36-7458 -sign 輅 127568-2568-23456 -sign 輕 127568-27568-23458 -sign 輒 127568-36-237468 -sign 輙 127568-23768-3746 -sign 輓 127568-36-346 -sign 輜 127568-26-2746 -sign 輟 127568-36-3746 -sign 輛 127568-25-23746 -sign 輌 127568-2376-45 -sign 輦 127568-7-23458 -sign 輳 127568-2358-23458 -sign 輻 127568-27458 -sign 輹 127568-24568 -sign 轅 127568-36-2345 -sign 轂 127568-78-3745 -sign 輾 127568-3756-37456 -sign 轌 127568-2376-234568 -sign 轉 127568-27568-237456 -sign 轆 127568-3568-456 -sign 轎 127568-25-3745 -sign 轗 127568-2378-3468 -sign 轜 127568-36-23746 -sign 轢 127568-378-374 -sign 轣 127568-358-7468 -sign 轤 127568-36-2746 -sign 辜 1356-2356-3456 -sign 辟 18-27468 -sign 辣 12768-468 -sign 辭 123568-23568-27468 -sign 辯 127568-78-37456 -sign 辷 12378-36-346 -sign 迚 12378-56-346 -sign 迥 12378-3768-3458 -sign 迢 12378-275-37468 -sign 迪 12378-276-45 -sign 迯 12378-3758-37456 -sign 邇 12378-3768-2374568 -sign 迴 12378-3768-23456 -sign 逅 12378-756-23456 -sign 迹 12378-36-2345 -sign 迺 12378-56-2374 -sign 逑 12378-356-2374 -sign 逕 12378-36-23458 -sign 逡 12378-25-274568 -sign 逍 12378-3568-348 -sign 逞 12378-2356-237458 -sign 逖 12378-36-74568 -sign 逋 12378-8-37458 -sign 逧 12378-276-24 -sign 逶 12378-375-27458 -sign 逵 12378-78-274568 -sign 逹 12378-36-2746 -sign 迸 12378-36-37456 -sign 遏 12378-36-4568 -sign 遐 12378-36-3745 -sign 遑 12378-378-237458 -sign 遒 12378-23568-48 -sign 逎 12378-23568-74 -sign 遉 12378-76-37456 -sign 逾 12378-36-7458 -sign 遖 12378-56-237468 -sign 遘 12378-7-274568 -sign 遞 12378-2378-24568 -sign 遨 12378-7-37458 -sign 遯 12378-3568-74 -sign 遶 12378-36-27456 -sign 隨 1268-268-246 -sign 遲 12378-2378-37456 -sign 邂 12378-3768-34568 -sign 遽 12378-2568-34568 -sign 邁 1278-27468 -sign 邀 12378-4568 -sign 邊 12378-2378-2745 -sign 邉 12378-36-2745 -sign 邏 12378-2568-234 -sign 邨 1268-56-27458 -sign 邯 1268-5-2456 -sign 邱 1268-258-45 -sign 邵 1268-275-37468 -sign 郢 1268-2356-237458 -sign 郤 1268-276-24 -sign 扈 13756-3768-23748 -sign 郛 1268-568-245 -sign 鄂 1268-36-23458 -sign 鄒 1268-36-374568 -sign 鄙 1268-36-37468 -sign 鄲 1268-2356-23456 -sign 鄰 1268-268-3745 -sign 酊 123568-68-237456 -sign 酖 123568-568-748 -sign 酘 123568-36-3745 -sign 酣 123568-5-2456 -sign 酥 123568-78-3745 -sign 酩 123568-3758-23456 -sign 酳 123568-36-374 -sign 酲 123568-2356-237458 -sign 醋 123568-378-23745 -sign 醉 123568-23568-3456 -sign 醂 123568-238-2348 -sign 醢 123568-56-468 -sign 醫 137568-37568-745 -sign 醯 123568-36-2458 -sign 醪 123568-27568-34 -sign 醵 123568-2568-34568 -sign 醴 123568-78-2746 -sign 醺 123568-258-74568 -sign 釀 123568-23568-237468 -sign 釁 123568-3768-2346 -sign 釉 1375-276-45 -sign 釋 1276-276-3745 -sign 釐 1238-756-2346 -sign 釖 128-5-2745 -sign 釟 128-68-2346 -sign 釡 128-36-23746 -sign 釛 128-78-2745 -sign 釼 128-2-2745 -sign 釵 128-2-3746 -sign 釶 128-5-23746 -sign 鈞 128-36-374568 -sign 釿 128-56-746 -sign 鈔 128-3758-34568 -sign 鈬 128-56-2746 -sign 鈕 128-8-34568 -sign 鈑 128-278-7468 -sign 鉞 128-78-23748 -sign 鉗 128-5-2456 -sign 鉅 128-2-24568 -sign 鉉 128-78-374 -sign 鉤 128-37568-46 -sign 鉈 128-36-23748 -sign 銕 128-758-274 -sign 鈿 128-78-2746 -sign 鉋 128-37568-34 -sign 鉐 128-78-27468 -sign 銜 128-78-7458 -sign 銖 128-6-248 -sign 銓 128-236-237458 -sign 銛 128-2356-234568 -sign 鉚 128-36-2468 -sign 鋏 128-36-274 -sign 銹 128-375-374 -sign 銷 128-3568-348 -sign 鋩 128-6-37458 -sign 錏 128-2-24 -sign 鋺 128-36-245 -sign 鍄 128-78-23456 -sign 錮 128-3768-3456 -sign 錙 128-26-2746 -sign 錢 128-28-37468 -sign 錚 128-3568-346 -sign 錣 128-36-3746 -sign 錺 128-258-37458 -sign 錵 128-258-456 -sign 錻 128-3768-7468 -sign 鍜 128-78-3745 -sign 鍠 128-378-237458 -sign 鍼 128-2378-74 -sign 鍮 128-36-7458 -sign 鍖 128-2-2348 -sign 鎰 128-236-348 -sign 鎬 128-56-2345 -sign 鎭 128-28-2374568 -sign 鎔 128-25-2746 -sign 鎹 128-2378-23458 -sign 鏖 128-3568-456 -sign 鏗 128-2756-24568 -sign 鏨 128-27568-746 -sign 鏥 128-36-346 -sign 鏘 128-23758-34 -sign 鏃 128-3758-745 -sign 鏝 128-36-27468 -sign 鏐 128-27568-34 -sign 鏈 128-2378-274568 -sign 鏤 128-36-2456 -sign 鐚 128-2-3468 -sign 鐔 128-378-3456 -sign 鐓 128-36-4568 -sign 鐃 128-36-27456 -sign 鐇 128-375-2746 -sign 鐐 128-36-3456 -sign 鐶 128-78-2456 -sign 鐫 128-36-234 -sign 鐵 128-28-23458 -sign 鐡 128-25-23458 -sign 鐺 128-78-27458 -sign 鑁 128-2568-45 -sign 鑒 128-28-348 -sign 鑄 128-28-23468 -sign 鑛 128-28-3458 -sign 鑠 128-378-374 -sign 鑢 128-2568-3468 -sign 鑞 128-78-3456 -sign 鑪 128-36-24568 -sign 鈩 128-36-37456 -sign 鑰 128-36-2346 -sign 鑵 128-78-23458 -sign 鑷 128-36-237468 -sign 鑽 128-36-746 -sign 鑚 128-76-23458 -sign 鑼 128-2568-234 -sign 鑾 128-36-2345 -sign 钁 128-237568-2374568 -sign 鑿 128-36-3745 -sign 閂 137568-36-346 -sign 閇 137568-56-748 -sign 閊 137568-75-24 -sign 閔 137568-78-74 -sign 閖 137568-36-2374 -sign 閘 137568-36-3458 -sign 閙 137568-78-23468 -sign 閠 137568-25-237458 -sign 閨 137568-27456 -sign 閧 137568-3458 -sign 閭 137568-8-237468 -sign 閼 137568-3758-748 -sign 閻 137568-36-2745 -sign 閹 137568-8-3468 -sign 閾 137568-3768-45 -sign 闊 137568-2356-234568 -sign 濶 137568-237-234568 -sign 闃 137568-237568-23458 -sign 闍 137568-3756-3748 -sign 闌 137568-36-23748 -sign 闕 137568-768-24 -sign 闔 137568-2756-3458 -sign 闖 137568-36-34568 -sign 關 137568-37568-23458 -sign 闡 137568-2356-23456 -sign 闥 137568-2378-2746 -sign 闢 137568-36-27468 -sign 阡 1268-68-234568 -sign 阨 1268-756-2468 -sign 阮 1268-2-346 -sign 阯 1268-36-7468 -sign 陂 1268-5-23748 -sign 陌 1268-68-2374568 -sign 陏 1268-356-246 -sign 陋 1268-68-237458 -sign 陷 1268-268-2745 -sign 陜 1268-36-274 -sign 陞 1268-378-2458 -sign 陝 1268-78-274 -sign 陟 1268-768-34568 -sign 陦 1268-23758-23468 -sign 陲 1268-36-2374 -sign 陬 1268-23768-3746 -sign 隍 1268-378-237458 -sign 隘 1268-348 -sign 隕 1268-76-23456 -sign 隗 1268-35-2374 -sign 險 1268-268-2346 -sign 隧 1268-3-34568 -sign 隱 1268-268-2456 -sign 隲 1268-36-34568 -sign 隰 1268-36-234 -sign 隴 1268-2768-3468 -sign 隶 15-5-7458 -sign 隸 12375-2375-7458 -sign 隹 15-5-234 -sign 雎 1237568-36-234 -sign 雋 123-56-37468 -sign 雉 175-36-234568 -sign 雍 12-23748 -sign 襍 12375-238-234 -sign 雜 178-78-234 -sign 霍 12376-5-234 -sign 雕 13768-5-234 -sign 雹 12376-374568 -sign 霄 12376-3568-348 -sign 霆 12376-278-237458 -sign 霈 12376-36-23468 -sign 霓 12376-358-346 -sign 霎 12376-2758-27468 -sign 霑 12376-36-2374 -sign 霏 12376-5-74568 -sign 霖 12376-238-2348 -sign 霙 12376-258-345 -sign 霤 12376-26-2746 -sign 霪 12376-568-2374 -sign 霰 12376-4568 -sign 霹 12376-36-27468 -sign 霽 12376-268-748 -sign 霾 12376-56-2346 -sign 靄 12376-36-4568 -sign 靆 12376-2378-7458 -sign 靈 12376-2376-458 -sign 靂 12376-358-7468 -sign 靉 12376-78-24 -sign 靜 123568-23568-346 -sign 靠 17568-358-2458 -sign 靤 1237568-37568-34 -sign 靦 1237568-237568-346 -sign 靨 1756-237568-45 -sign 勒 13756-36-2745 -sign 靫 13756-2-3746 -sign 靱 13756-2-2745 -sign 靹 13756-3768-458 -sign 鞅 13756-2358-345 -sign 靼 13756-5-3748 -sign 鞁 13756-5-23748 -sign 靺 13756-238-46 -sign 鞆 13756-68-237458 -sign 鞋 13756-36-27456 -sign 鞏 178-3756-3456 -sign 鞐 13756-25-748 -sign 鞜 13756-23768-2374 -sign 鞨 13756-36-4568 -sign 鞦 13756-375-74568 -sign 鞣 13756-238-7456 -sign 鞳 13756-236-37468 -sign 鞴 13756-36-23748 -sign 韃 13756-2378-2746 -sign 韆 13756-278-2468 -sign 韈 13756-2568-23748 -sign 韋 13-234 -sign 韜 123-36-2745 -sign 韭 178-5-74568 -sign 齏 1268-5-74568 -sign 韲 1268-78-74568 -sign 竟 18-274 -sign 韶 12768-275-37468 -sign 韵 12768-36-374568 -sign 頏 135-36-346 -sign 頌 135-8-3458 -sign 頸 135-23458 -sign 頤 135-36-24568 -sign 頡 135-2756-23456 -sign 頷 13768-345 -sign 頽 135-748 -sign 顆 135-276-2348 -sign 顏 135-35-245 -sign 顋 135-276-3468 -sign 顫 135-3768-23456 -sign 顯 135-35-374 -sign 顰 135-2746 -sign 顱 135-35-37456 -sign 顴 135-36-23458 -sign 顳 135-36-237468 -sign 颪 178-27568-346 -sign 颯 12768-27568-346 -sign 颱 127568-274 -sign 颶 127568-76-46 -sign 飄 127568-237-23745 -sign 飃 127568-36-2374 -sign 飆 127568-36-23458 -sign 飩 123568-56-27458 -sign 飫 123568-78-23458 -sign 餃 123568-36-23746 -sign 餉 123568-3768-3458 -sign 餒 123568-2758-748 -sign 餔 123568-78-37458 -sign 餘 1236-236-374568 -sign 餡 123568-36-2745 -sign 餝 123568-258-37458 -sign 餞 123568-36-37468 -sign 餤 123568-36-74568 -sign 餠 123568-23568-37456 -sign 餬 123568-8-246 -sign 餮 123568-36-245 -sign 餽 123568-35-2374 -sign 餾 123568-78-246 -sign 饂 123568-36-348 -sign 饉 123568-36-2348 -sign 饅 123568-78-27468 -sign 饐 123568-256-24 -sign 饋 123568-76-2348 -sign 饑 123568-37-37468 -sign 饒 123568-36-27456 -sign 饌 123568-36-3458 -sign 饕 123568-2356-24568 -sign 馗 12378-68-345 -sign 馘 13768-35-45 -sign 馥 12568-375-3748 -sign 馭 13568-36-3746 -sign 馮 1568-25-34568 -sign 馼 13568-78-74 -sign 駟 13568-68-2456 -sign 駛 13568-2356-274 -sign 駝 13568-36-23748 -sign 駘 13568-5-274 -sign 駑 13568-2758-3746 -sign 駭 13568-6-374 -sign 駮 13568-78-23746 -sign 駱 13568-2568-23456 -sign 駲 13568-28-45 -sign 駻 13568-36-248 -sign 駸 13568-2345 -sign 騁 13568-276-45 -sign 騏 13568-5-2348 -sign 騅 13568-36-234 -sign 駢 13568-78-37456 -sign 騙 13568-36-237458 -sign 騫 125-36-34568 -sign 騷 13568-3568-274568 -sign 驅 13568-3568-374568 -sign 驂 13568-2-245 -sign 驀 13568-36-2458 -sign 驃 13568-237-23745 -sign 騾 13568-276-374 -sign 驕 13568-36-3745 -sign 驍 13568-36-27456 -sign 驛 13568-3568-2746 -sign 驗 13568-3568-2346 -sign 驟 13568-23768-3746 -sign 驢 13568-36-2746 -sign 驥 13568-36-2348 -sign 驤 13568-36-237468 -sign 驩 13568-36-23458 -sign 驫 13568-25-34568 -sign 驪 13568-3768-456 -sign 骭 128-28-246 -sign 骰 1375-28-246 -sign 骼 128-2568-23456 -sign 髀 128-276-2468 -sign 髏 168-28-246 -sign 髑 127568-28-246 -sign 髓 138-36-246 -sign 體 127-27-48 -sign 髞 125-56-2345 -sign 髟 12-37456 -sign 髢 13756-5-23746 -sign 髣 13756-36-37458 -sign 髦 123568-3756-245 -sign 髯 13756-346 -sign 髫 13756-275-37468 -sign 髮 13756-3756-245 -sign 髴 13756-8-2374568 -sign 髱 137568-3756-245 -sign 髷 13756-276-46 -sign 髻 13756-2756-23456 -sign 鬆 13756-368-3458 -sign 鬘 13756-25-27468 -sign 鬚 13756-25-24568 -sign 鬟 13756-25-2456 -sign 鬢 13756-748 -sign 鬣 13756-2358-46 -sign 鬥 16-374568 -sign 鬧 137568-25-23468 -sign 鬨 137568-37568-3458 -sign 鬩 137568-358-346 -sign 鬪 137568-37568-23468 -sign 鬮 137568-56-2374568 -sign 鬯 18-8-745 -sign 鬲 18-23456 -sign 魄 1378-35-2374 -sign 魃 135-3746 -sign 魏 1375-35-2374 -sign 魍 135-36-7458 -sign 魎 135-2376-45 -sign 魑 135-5-234 -sign 魘 1756-35-2374 -sign 魴 123568-36-37458 -sign 鮓 123568-36-2468 -sign 鮃 123568-236-248 -sign 鮑 123568-37568-34 -sign 鮖 123568-25-27468 -sign 鮗 123568-2568-24 -sign 鮟 123568-25-27458 -sign 鮠 123568-258-2468 -sign 鮨 123568-36-2374 -sign 鮴 123568-27-2348 -sign 鯀 123568-78-374 -sign 鯊 123568-568-37458 -sign 鮹 123568-3568-348 -sign 鯆 123568-8-37458 -sign 鯏 123568-375-2745 -sign 鯑 123568-237568-23468 -sign 鯒 123568-78-27456 -sign 鯣 123568-378-468 -sign 鯢 123568-358-346 -sign 鯤 123568-378-456 -sign 鯔 123568-26-2746 -sign 鯡 123568-5-74568 -sign 鰺 123568-2-245 -sign 鯲 123568-3758-748 -sign 鯱 123568-2568-74 -sign 鯰 123568-236-3468 -sign 鰕 123568-25-3745 -sign 鰔 123568-2378-74 -sign 鰉 123568-378-237458 -sign 鰓 123568-276-3468 -sign 鰌 123568-23568-48 -sign 鰆 123568-2358-3748 -sign 鰈 123568-36-7456 -sign 鰒 123568-78-24568 -sign 鰊 123568-56-23748 -sign 鰄 123568-2378-27458 -sign 鰮 123568-25-348 -sign 鰛 123568-78-348 -sign 鰥 123568-38-34568 -sign 鰤 123568-2368-246 -sign 鰡 123568-25-246 -sign 鰰 123568-2375-23468 -sign 鱇 123568-756-7458 -sign 鰲 123568-7-37458 -sign 鱆 123568-2768-3456 -sign 鰾 123568-237-23745 -sign 鱚 123568-2756-37468 -sign 鱠 123568-236-2345 -sign 鱧 123568-276-37456 -sign 鱶 123568-3568-745 -sign 鱸 123568-36-2746 -sign 鳧 178-25-234568 -sign 鳬 136-23568-24 -sign 鳰 127-78-234568 -sign 鴉 1237568-36-234568 -sign 鴈 1756-78-234568 -sign 鳫 15-23568-24 -sign 鴃 123756-36-234568 -sign 鴆 1568-36-234568 -sign 鴪 125-36-234568 -sign 鴦 135-36-234568 -sign 鶯 17568-234568 -sign 鴣 12356-78-234568 -sign 鴟 1768-36-234568 -sign 鵄 1758-78-234568 -sign 鴕 12378-78-234568 -sign 鴒 1356-36-234568 -sign 鵁 12376-36-234568 -sign 鴿 1236-78-234568 -sign 鴾 127568-78-234568 -sign 鵆 1758-25-234568 -sign 鵈 123768-78-234568 -sign 鵝 13768-2-234568 -sign 鵞 13768-36-234568 -sign 鵤 13768-25-234568 -sign 鵑 126-36-234568 -sign 鵐 12758-36-234568 -sign 鵙 176-78-234568 -sign 鵲 12375-36-234568 -sign 鶉 178-36-234568 -sign 鶇 12378-25-234568 -sign 鶫 12378-23568-24 -sign 鵯 1276-234568 -sign 鵺 178-78-234568 -sign 鶚 12358-78-234568 -sign 鶤 136-36-234568 -sign 鶩 1756-25-234568 -sign 鶲 1358-36-234568 -sign 鷄 137-37-234568 -sign 鷁 1236-36-234568 -sign 鶻 128-36-234568 -sign 鶸 12378-36-234568 -sign 鶺 158-36-234568 -sign 鷆 1237568-23568-24 -sign 鷏 1237568-78-234568 -sign 鷂 128-78-234568 -sign 鷙 12756-78-234568 -sign 鷓 13756-78-234568 -sign 鷸 1756-23568-24 -sign 鷦 123-36-234568 -sign 鷭 1375-36-234568 -sign 鷯 1356-25-234568 -sign 鷽 178-23568-24 -sign 鸚 176-36-234568 -sign 鸛 12358-36-234568 -sign 鸞 1235-36-234568 -sign 鹵 1768-34 -sign 鹹 1768-2378-74 -sign 鹽 12756-2756-348 -sign 麁 1258-3568-456 -sign 麈 123758-3568-456 -sign 麋 1375-3568-456 -sign 麌 1358-3568-456 -sign 麒 1238-36-34568 -sign 麕 13768-3568-456 -sign 麑 1358-36-34568 -sign 麝 13568-23768-23468 -sign 麥 123758-23758-24568 -sign 麩 12568-36-23458 -sign 麸 12568-7-23458 -sign 麪 12568-36-7468 -sign 麭 12568-37568-34 -sign 靡 12768-36-74568 -sign 黌 178-2368-3458 -sign 黎 1375-468 -sign 黏 1375-2356-37456 -sign 黐 1375-5-234 -sign 黔 12368-236-24 -sign 黜 12368-56-237458 -sign 點 12356-2356-74568 -sign 黝 12368-37-24 -sign 黠 12368-2756-23456 -sign 黥 12368-78-23456 -sign 黨 178-78-346 -sign 黯 12368-2768-3748 -sign 黴 1758-2368-2458 -sign 黶 138-2368-2458 -sign 黷 12368-2756-746 -sign 黹 12368-7-74 -sign 黻 12368-356-3746 -sign 黼 12368-36-37458 -sign 黽 16-2374568 -sign 鼇 13758-56-2374568 -sign 鼈 1568-56-2374568 -sign 皷 13756-3756-2748 -sign 鼕 13756-2568-24 -sign 鼡 12358-46 -sign 鼬 12358-45 -sign 鼾 128-237568-2746 -sign 齊 1268-268-748 -sign 齒 1768-768-3745 -sign 齔 12378-768-3745 -sign 齣 1768-374568 -sign 齟 13568-768-3745 -sign 齠 13768-768-3745 -sign 齡 1768-768-3456 -sign 齦 175-768-3745 -sign 齧 1275-768-3745 -sign 齬 1768-26-23456 -sign 齪 1768-23768-34 -sign 齷 1768-3756-7458 -sign 齲 123768-768-3745 -sign 齶 12358-768-3745 -sign 龕 12768-236-37468 -sign 龜 156-56-2374568 -sign 龠 1236-2356-23456 -sign 堯 18-27456 -sign 槇 1368-2-2374568 -sign 遙 12378-25-248 -sign 瑤 123758-36-248 -sign 凜 1568-36-23456 -sign 熙 17568-3-2348 - -# JIS level3 -sign 㐂 12-2756-37468 -sign 丨 12-238-37458 -sign 丯 123758-78-748 -sign 丰 123758-36-346 -sign 亍 12-68-237456 -sign 仡 127-78-345 -sign 份 127-36-2346 -sign 仿 158-36-37458 -sign 伃 127-5-7456 -sign 伋 127-5-374 -sign 你 158-36-748 -sign 佈 127-356-23468 -sign 佉 127-2756-3458 -sign 佖 127-368-46 -sign 佟 127-2568-24 -sign 佪 158-3768-23456 -sign 佬 127-3756-34 -sign 佾 127-36-348 -sign 侊 127-78-34 -sign 侔 127-6-274568 -sign 侗 127-3768-37456 -sign 俉 127-26-23456 -sign 俠 127-78-274 -sign 倁 127-75-23456 -sign 倎 127-276-2346 -sign 倘 158-8-2748 -sign 倧 127-25-23745 -sign 倮 127-276-2348 -sign 偀 127-258-345 -sign 倻 127-23768-2468 -sign 偁 127-36-748 -sign 傔 127-236-23458 -sign 僌 127-78-274568 -sign 僲 158-36-2374 -sign 僐 127-3568-23456 -sign 僦 127-78-458 -sign 儆 127-37568-4568 -sign 儃 127-78-37468 -sign 儋 127-8-3748 -sign 儞 158-3768-2374568 -sign 儵 127-2368-2458 -sign 兊 178-8-3458 -sign 兕 136-56-37468 -sign 兗 178-8-346 -sign 冝 136-6-34568 -sign 凞 1568-36-2348 -sign 凢 15-5-748 -sign 凮 127568-68-2374568 -sign 刁 1275-74 -sign 㓛 1358-5-2745 -sign 刓 1275-2-346 -sign 刕 1275-5-2745 -sign 剉 1275-756-458 -sign 剗 1275-3768-46 -sign 剡 1275-7568-74568 -sign 劓 1275-237568-2746 -sign 勈 1275-25-27456 -sign 勌 1275-2358-2468 -sign 勖 1275-378-2374568 -sign 勛 1275-76-23456 -sign 勰 1275-276-3468 -sign 匀 12-374568 -sign 匇 137568-3758-24 -sign 匜 137568-5-23746 -sign 卡 156-78-245 -sign 卣 1768-45 -sign 卽 12568-2568-2468 -sign 厓 1756-36-27456 -sign 厝 1756-378-23745 -sign 厲 1756-68-27468 -sign 吧 12356-6-23748 -sign 呍 12356-7-2345 -sign 咜 12356-36-23748 -sign 呫 12356-2356-37456 -sign 呴 12356-37568-46 -sign 呿 12356-2756-3458 -sign 咈 12356-8-2374568 -sign 咖 12356-275-23456 -sign 咡 12356-36-237468 -sign 咩 12356-3568-34 -sign 哆 12356-3758-37458 -sign 哿 128-275-23456 -sign 唎 12356-375-2745 -sign 唫 12356-78-248 -sign 唵 12356-8-3468 -sign 啐 12356-35-3456 -sign 啞 12356-2356-24 -sign 喁 12356-6-2458 -sign 喆 12756-2756-23456 -sign 喎 12356-7-248 -sign 喝 12356-8-4568 -sign 喭 12356-756-245 -sign 嗎 12356-25-34568 -sign 嘈 12356-2-34568 -sign 嘎 12356-5-37468 -sign 嘻 12356-2756-37468 -sign 噉 12356-23768-4568 -sign 噶 12356-25-4568 -sign 噦 12356-768-23748 -sign 噯 12356-78-24 -sign 噱 12356-2568-34568 -sign 噲 12356-236-2345 -sign 嚙 12356-25-3745 -sign 嚞 12-2356-746 -sign 嚩 12356-23-237456 -sign 嚬 12356-768-345 -sign 嚳 178-358-2458 -sign 囉 12356-2568-234 -sign 囊 12375-2375-3456 -sign 圊 13768-2368-234568 -sign 圯 12756-3-2348 -sign 圳 12756-28-24 -sign 圴 12756-56-374568 -sign 坰 12756-6-37468 -sign 坷 12756-56-248 -sign 坼 12756-2-746 -sign 垜 12756-2-374 -sign 﨏 12756-36-2746 sign 𡌛 12756-36-3746 -sign 垸 12756-25-346 -sign 埇 12756-3768-74 -sign 埈 12756-36-274568 -sign 埏 12756-278-24 -sign 埤 12756-276-2468 -sign 埭 12756-78-7458 -sign 埵 12756-36-2374 -sign 埶 12756-2-345 -sign 埿 12756-237-458 -sign 堉 12756-78-246 -sign 塚 12756-2756-245 -sign 塡 12756-36-2374568 -sign 塤 12756-76-23456 -sign 塼 12756-5-237456 -sign 墉 12756-756-37468 -sign 增 12756-2756-34568 -sign 墩 12756-36-3458 -sign 壒 12756-3568-246 -sign 壎 12756-36-74568 -sign 壔 12756-23758-23468 -sign 壚 12756-25-2746 -sign 壩 12756-3756-246 -sign 夌 18-24568 -sign 虁 1258-237568-24 -sign 奝 12358-3768-27456 -sign 奭 12358-68-2374568 -sign 妋 12758-7-23458 -sign 妒 12758-25-37456 -sign 妤 12758-5-7456 -sign 姃 12758-36-234 -sign 姒 12758-5-374568 -sign 姝 12758-6-248 -sign 娓 12758-3756-234568 -sign 娣 12758-758-346 -sign 婧 12758-2368-234568 -sign 婭 12758-2-24 -sign 婷 12758-8-237456 -sign 婾 12758-36-7458 -sign 媞 12758-378-7456 -sign 媧 12758-7-248 -sign 嫄 12758-756-24 -sign 嬙 12758-36-37468 -sign 嬥 12758-3-745 -sign 孁 12758-36-23746 -sign 孖 1358-36-3458 -sign 孽 1358-36-27468 -sign 宓 125-368-46 -sign 寘 125-2-2374568 -sign 寬 136-36-2374568 -sign 尞 16-3456 -sign 尣 1278-5-346 -sign 尫 136-36-237458 -sign 屢 13756-3756-2456 -sign 屺 175-68-2348 -sign 岏 175-2-346 -sign 岟 175-2358-345 -sign 岣 175-36-374568 -sign 岪 175-36-2374568 -sign 岺 175-58-3456 -sign 峋 175-378-24568 -sign 峒 175-25-37456 -sign 峴 175-78-2374568 -sign 㟢 175-78-23458 -sign 崍 175-238-274 -sign 崧 175-368-3458 -sign 﨑 12-75-23458 -sign 嵆 175-8-458 -sign 嵓 175-36-23456 -sign 嵊 175-375-2348 -sign 嵭 175-5-37458 -sign 嶁 175-8-2456 -sign 嶠 175-25-3745 -sign 嶧 175-25-2746 -sign 嶸 175-78-2348 -sign 巋 175-768-2346 -sign 帔 12368-5-23748 -sign 帘 12368-25-2346 -sign 幘 12368-23758-746 -sign 幞 12368-36-274 -sign 庾 1756-7-7458 -sign 廋 1756-6-2345 -sign 弇 13756-25-37468 -sign 弝 1758-6-23748 -sign 弣 1758-27-23468 -sign 弴 1758-78-3458 -sign 弶 1758-78-23456 -sign 弽 1758-6-7456 -sign 彀 1758-78-3745 -sign 彅 1758-26-2745 -sign 彔 13-237468 -sign 彘 125-75-34 -sign 彤 125-2758-45 -sign 彧 13768-36-245 -sign 彽 1758-2-7468 -sign 徉 1758-3568-34 -sign 徜 1758-8-2748 -sign 徧 1758-36-237458 -sign 徯 1758-7-2374 -sign 德 1758-758-3456 -sign 忉 1256-5-2745 -sign 忞 1256-78-74 -sign 忡 1256-56-346 -sign 忩 1256-8-3458 -sign 怍 1256-36-2468 -sign 怔 1256-768-234 -sign 怘 1256-78-3456 -sign 怳 1256-2356-346 -sign 怵 1256-2-2374 -sign 恇 1256-78-374568 -sign 悝 1256-56-2346 -sign 悞 1256-6-3458 -sign 惋 1256-8-245 -sign 惔 1256-7568-74568 -sign 惕 1256-378-468 -sign 惝 1256-8-2748 -sign 惸 1256-78-24568 -sign 愜 1256-25-374568 -sign 愫 1256-23758-374 -sign 愰 1256-78-3748 -sign 愷 1256-6-745 -sign 憍 1256-25-3745 -sign 憼 1256-37568-4568 -sign 憹 1256-276-3456 -sign 戢 123768-5-37468 -sign 扃 13756-36-37468 -sign 扖 123756-56-274 -sign 扚 123756-56-374568 -sign 扯 123756-36-7468 -sign 拄 123756-23758-74 -sign 拖 123756-5-23746 -sign 拼 123756-7-37456 -sign 挊 123756-25-748 -sign 挘 123756-3568-2745 -sign 挹 123756-3768-23748 -sign 捃 123756-35-24 -sign 捥 123756-8-245 -sign 捼 123756-375-27458 -sign 揥 123756-2768-23468 -sign 揵 123756-278-27458 -sign 搐 123756-78-2746 -sign 搔 123756-25-274568 -sign 搢 123756-378-23748 -sign 摑 123756-78-37468 -sign 摠 123756-78-3458 -sign 摭 123756-756-37456 -sign 擎 123756-37568-4568 -sign 撾 123756-2378-248 -sign 撿 123756-8-2346 -sign 擄 123756-2568-2745 -sign 擊 127568-27568-3745 -sign 擐 123756-36-2456 -sign 擷 123756-36-345 -sign 擻 123756-36-468 -sign 攢 123756-36-23458 -sign 攩 123756-78-346 -sign 敧 1376-2358-248 -sign 斝 12356-56-37456 -sign 昀 1378-2-374568 -sign 昉 1378-36-37458 -sign 昕 1378-36-746 -sign 昞 1378-68-237458 -sign 昢 1378-56-237458 -sign 昤 1378-58-3456 -sign 昫 1378-37568-46 -sign 昰 1378-378-7456 -sign 昱 1378-2768-24 -sign 昳 1378-8-23458 -sign 曻 1378-6-234 -sign 晌 1378-3768-3458 -sign 晙 1378-2-274568 -sign 晡 1378-8-37458 -sign 晥 1378-2-346 -sign 晳 1378-78-345 -sign 晷 1378-36-24568 -sign 晸 1378-768-4568 -sign 暍 1378-8-4568 -sign 暠 1378-36-2345 -sign 暲 1378-2768-3456 -sign 暻 1378-378-23456 -sign 曆 1358-358-3748 -sign 曈 1378-2768-2346 -sign 曛 1378-78-2458 -sign 曨 1378-2768-3468 -sign 曺 16-2-34568 -sign 朓 126-346 -sign 朗 126-26-745 -sign 朳 1238-68-2346 -sign 杦 1368-2568-45 -sign 杇 1238-3-374568 -sign 杈 1238-2-3746 -sign 杻 1238-8-34568 -sign 极 1238-5-374 -sign 枓 1238-56-37456 -sign 枘 1238-3768-458 -sign 枛 1238-38-27456 -sign 枻 1238-356-7456 -sign 柹 1368-78-23468 -sign 柀 1238-5-23748 -sign 柗 1238-3-2345 -sign 栁 1368-78-2468 -sign 桒 1238-78-3456 -sign 栝 1238-2356-234568 -sign 栬 1238-2368-24 -sign 栱 1238-5-3458 -sign 桛 1238-25-748 -sign 桲 1238-25-3456 -sign 桵 1238-2758-748 -sign 梣 1238-236-24 -sign 梥 12-368-3458 -sign 梲 1238-8-346 -sign 棈 1238-2368-234568 -sign 棐 1238-78-74568 -sign 棨 13756-2348 -sign 棭 1238-78-274 -sign 棰 1238-25-2374 -sign 棱 1238-36-24568 -sign 棼 1236-238-2348 -sign 椊 1238-35-3456 -sign 楉 1238-258-468 -sign 椵 1368-7-3745 -sign 楂 1238-238-3748 -sign 楗 1238-278-27458 -sign 楣 1238-237568-234568 -sign 楤 1368-358-3468 -sign 楨 1368-76-37456 -sign 榀 1238-2356-245 -sign 﨔 1368-368-237456 -sign 榥 1368-78-34 -sign 榭 1238-23768-23468 -sign 槢 1238-27568-3748 -sign 槵 1368-2356-3468 -sign 樏 1238-276-374 -sign 樕 1238-36-7468 -sign 樻 1368-76-2348 -sign 樾 1238-278-23748 -sign 橅 1368-36-274568 -sign 橐 12-2375-3456 -sign 橖 1238-8-2748 -sign 橛 1238-36-2748 -sign 橫 1238-238-3458 -sign 橳 1238-26-248 -sign 檉 1368-23768-237458 -sign 檝 1238-78-237468 -sign 檞 1368-3768-34568 -sign 檥 1238-3568-37468 -sign 櫤 1238-26-2745 -sign 櫧 1238-376-3748 -sign 欛 1238-3756-246 -sign 欞 1238-2376-458 -sign 欬 1768-36-374 -sign 欵 1768-745 -sign 歆 1768-27468 -sign 歖 1768-2756-37468 -sign 歠 1768-8-3746 -sign 歧 1768-2748 -sign 歷 1358-358-7468 -sign 殂 13758-6-34568 -sign 殩 13758-3745 -sign 殭 13758-36-2746 -sign 毖 156-368-46 -sign 毗 1276-36-456 -sign 毿 125-5-234568 -sign 氅 123568-8-2748 -sign 氐 12-2-7468 -sign 氳 137568-3-348 -sign 汙 1237-2-248 -sign 汜 1237-3-2348 -sign 汴 1237-56-748 -sign 汶 1237-78-74 -sign 沅 1237-2-346 -sign 沆 1237-6-346 -sign 沘 1237-36-456 -sign 沜 1237-23758-46 -sign 泆 1237-8-23458 -sign 泔 1237-5-2456 -sign 泠 1237-58-3456 -sign 泫 1237-78-374 -sign 泮 1237-356-2748 -sign 洄 1237-3768-23456 -sign 洎 1237-237568-24 -sign 洮 1237-68-346 -sign 洱 1568-36-237468 -sign 洹 1237-6-3748 -sign 洿 1237-25-23458 -sign 浥 1568-3768-23748 -sign 涂 1237-236-374568 -sign 涇 1237-78-23458 -sign 涔 1237-236-24 -sign 涪 1237-7-27468 -sign 涬 1237-2756-248 -sign 涿 1237-3568-74 -sign 淄 1237-25-2746 -sign 淖 1237-378-37456 -sign 淛 1237-23568-2745 -sign 淝 1237-38-23748 -sign 淼 1237-237-2374 -sign 渴 1568-568-4568 -sign 湄 1237-237568-234568 -sign 湜 1237-378-7456 -sign 湞 1237-76-37456 -sign 溱 1237-2358-3745 -sign 滁 1237-268-374568 -sign 滇 1237-2-2374568 -sign 滎 17568-36-2374 -sign 漚 1237-37568-74 -sign 漪 1237-2358-248 -sign 漯 1237-276-374 -sign 漳 1237-2768-3456 -sign 潑 1237-2568-24568 -sign 潙 1237-78-74568 -sign 潞 1237-23768-23456 -sign 潡 1237-78-3458 -sign 潢 1237-2368-3458 -sign 潾 1237-375-34 -sign 澈 1237-78-4568 -sign 澌 1237-78-746 -sign 澍 1237-36-7458 -sign 澔 1237-358-2458 -sign 澠 1237-6-2374568 -sign 澧 1237-276-37456 -sign 澶 1237-8-37468 -sign 澼 1237-8-27468 -sign 濇 1237-256-23745 -sign 濊 1237-768-23748 -sign 濹 1237-2368-27456 -sign 濰 1237-23-234 -sign 濵 12-237-2346 -sign 瀅 1237-25-237458 -sign 瀆 1568-2756-746 -sign 瀨 1568-568-468 -sign 灊 1237-8-23456 -sign 灝 1237-378-23456 -sign 灞 1237-3756-246 -sign 灎 1568-276-37456 -sign 灤 1568-78-2348 -sign 灵 12-2376-458 -sign 炅 1378-36-74568 -sign 炤 17568-275-37468 -sign 炫 17568-78-374 -sign 炷 17568-23758-74 -sign 烔 17568-3768-37456 -sign 烘 17568-5-3458 -sign 烤 17568-3756-46 -sign 焏 17568-2-27468 -sign 焫 17568-3768-458 -sign 焞 17568-78-3458 -sign 焠 17568-35-3456 -sign 焰 17568-3-2745 -sign 煆 17568-7-3745 -sign 煇 17568-78-274568 -sign 煒 17568-36-234 -sign 煜 17568-2768-24 -sign 煠 17568-36-7456 -sign 煨 17568-276-23745 -sign 熅 17568-36-348 -sign 熇 17568-56-2345 -sign 熒 17568-78-74568 -sign 燁 17568-258-248 -sign 熺 17568-78-37468 -sign 燄 17568-78-2745 -sign 燾 17568-23758-23468 -sign 爀 17568-28-248 -sign 牕 123758-36-3458 -sign 牖 123758-36-37458 -sign 犍 13568-278-27458 -sign 犛 13568-238-45 -sign 犾 12358-36-23458 -sign 狻 12358-2-274568 -sign 猧 12358-7-248 -sign 猨 12358-6-458 -sign 猪 1238-2358-2346 -sign 獐 12358-2768-3456 -sign 獦 12358-36-4568 -sign 獼 12358-25-2374568 -sign 玕 123758-5-248 -sign 玟 123758-78-74 -sign 玠 123758-58-346 -sign 玢 123758-36-2346 -sign 玦 123758-6-237456 -sign 玫 123758-4568 -sign 珉 123758-23768-7468 -sign 珏 123758-23758-24 -sign 珖 123758-78-34 -sign 珙 123758-3458 -sign 珣 123758-378-24568 -sign 珩 123758-7458 -sign 琇 123758-375-374 -sign 琊 123758-237568-2468 -sign 琚 123758-3756-24 -sign 琛 123758-78-24568 -sign 琦 123758-2358-248 -sign 琨 123758-378-456 -sign 琪 123758-5-2348 -sign 琫 123758-2358-37458 -sign 琬 123758-8-245 -sign 琮 123758-25-23745 -sign 琯 123758-25-246 -sign 琰 123758-7568-74568 -sign 瑄 123758-25-3748 -sign 瑆 123758-378-234 -sign 瑇 123758-23758-2748 -sign 瑋 123758-3-234 -sign 瑗 123758-6-458 -sign 瑢 123758-25-2746 -sign 瑫 123758-36-2745 -sign 瑭 123758-374568 -sign 璆 123758-27568-74 -sign 璇 123758-3758-7456 -sign 璉 123758-2378-274568 -sign 璘 123758-375-34 -sign 璜 123758-2368-3458 -sign 璟 123758-23456 -sign 璣 123758-37-37468 -sign 璐 123758-23768-23456 -sign 璦 123758-78-24 -sign 璨 123758-36-2468 -sign 璩 123758-2568-34568 -sign 璵 123758-36-45 -sign 璿 123758-237568-74 -sign 瓈 123758-375-468 -sign 瓉 123758-76-23458 -sign 瓚 123758-78-746 -sign 瓿 128-7-27468 -sign 甁 13756-3756-248 -sign 甗 128-78-24568 -sign 甯 125-3768-74 -sign 畯 1276-2-274568 -sign 畹 1276-8-245 -sign 疒 175-74 -sign 㽲 175-3-374568 -sign 痎 175-6-374 -sign 痤 175-756-458 -sign 瘀 175-3758-748 -sign 瘂 175-2-24 -sign 瘈 175-275-23458 -sign 瘕 175-78-3745 -sign 瘖 175-2768-3748 -sign 瘙 175-27568-3746 -sign 瘞 175-36-2348 -sign 瘭 175-237-23745 -sign 瘵 175-2375-2468 -sign 癃 175-78-234568 -sign 癋 175-2-3468 -sign 癤 175-2376-2468 -sign 癥 175-758-745 -sign 癭 175-2758-746 -sign 癯 175-237568-2374568 -sign 癱 175-258-234 -sign 皁 1378-25-3456 -sign 皛 1378-378-24 -sign 皝 1378-34 -sign 皞 1378-78-2348 -sign 皦 1378-2-4568 -sign 皪 1378-36-374 -sign 皶 12378-238-3748 -sign 盅 138-56-346 -sign 盌 138-8-245 -sign 盎 138-78-23458 -sign 盔 138-756-74568 -sign 盦 138-236-24 -sign 盱 1237568-2-248 -sign 盼 1237568-36-2346 -sign 眊 1237568-25-234568 -sign 眙 1237568-5-274 -sign 眴 1237568-378-24568 -sign 眶 1237568-374568 -sign 睆 1237568-25-346 -sign 睍 1237568-25-2374568 -sign 睎 1237568-237568-23468 -sign 睜 1237568-3568-346 -sign 睟 1237568-35-3456 -sign 睢 1237568-25-234 -sign 睺 1237568-58-745 -sign 瞀 1237568-2-7456 -sign 瞔 1237568-23758-746 -sign 瞪 1237568-2568-37456 -sign 矠 1756-36-23745 -sign 砭 12768-3-3745 -sign 硃 12768-6-248 -sign 硎 12768-2375-23745 -sign 硨 12768-78-274568 -sign 确 12768-3768-48 -sign 碰 12768-25-27468 -sign 碭 12768-36-468 -sign 磤 12768-78-3745 -sign 磲 12768-2568-2374 -sign 礀 12768-37568-246 -sign 磷 12768-375-34 -sign 礜 12768-36-45 -sign 礱 12768-36-3468 -sign 礴 12768-258-237456 -sign 祅 12375-5-23458 -sign 祆 12375-2-23458 -sign 祜 12375-2356-3456 -sign 神 12375-2375-23468 -sign 祥 12375-2375-7456 -sign 祹 12375-36-37456 -sign 福 12375-2375-27458 -sign 禘 12375-2768-23468 -sign 禱 12375-2375-237458 -sign 禸 17-234 -sign 秈 1375-78-745 -sign 秊 1375-68-234568 sign 𥝱 1375-5-7456 -sign 秔 1375-6-346 -sign 秞 1375-36-2746 -sign 秫 1375-2-2374 -sign 秭 1375-36-7458 -sign 稃 1375-3-245 -sign 稹 1375-2-2374568 -sign 穝 1375-23768-3746 -sign 穭 1375-23568-3748 -sign 窅 1237568-25-2346 -sign 窠 125-276-2348 -sign 窳 125-78-27456 -sign 窻 125-358-3468 -sign 竎 12768-37456 -sign 竫 12768-3568-346 -sign 竽 12376-2-248 -sign 笭 12376-58-3456 -sign 筇 12376-78-2468 -sign 筎 12376-2758-23456 -sign 筠 12376-2756-374568 -sign 筭 12376-23758-37456 -sign 筯 12376-275-34568 -sign 筲 12376-36-348 -sign 箞 12376-2358-2468 -sign 篗 12376-23-3746 -sign 篙 12376-56-2345 -sign 簁 12376-78-7468 -sign 簱 12376-36-37458 -sign 簠 12376-8-37458 -sign 簳 12376-356-248 -sign 簶 12376-2375-237468 -sign 籙 12376-28-237468 -sign 籭 12376-3768-456 -sign 籹 1375-36-27458 -sign 粏 1375-3-23458 -sign 粔 1375-36-24568 -sign 粠 1375-5-3458 -sign 粼 1258-375-34 -sign 糕 1375-25-34568 -sign 糙 1375-278-2458 -sign 糝 1375-2-245 -sign 紇 123-78-345 -sign 紈 123-2-345 -sign 紓 123-5-7456 -sign 紝 123-2374 -sign 紣 123-345 -sign 紱 123-356-3746 -sign 絁 137-36-23746 -sign 絈 123-378-24 -sign 絓 137-36-27456 -sign 絜 137-5-2745 -sign 絺 123-237568-23468 -sign 綃 123-3568-348 -sign 綋 123-78-3456 -sign 綠 12368-2368-237468 -sign 綦 123-5-2348 -sign 緂 123-7568-74568 -sign 緌 123-375-27458 -sign 緖 137-37-3748 -sign 緣 137-37-34568 -sign 縨 123-36-3748 -sign 縈 17568-25-234 -sign 縑 123-236-23458 -sign 縕 123-36-348 -sign 繇 128-36-374 -sign 繒 123-7-34568 -sign 繡 137-275-7458 -sign 纊 137-756-3458 -sign 纍 123-276-2746 -sign 罇 1768-23568-23468 -sign 羑 13568-2568-45 -sign 羗 13568-78-748 -sign 羿 13756-27568-34 -sign 翎 1356-27568-34 -sign 翛 127568-58-7458 -sign 翟 13-745 -sign 翬 127568-36-34 -sign 翮 127568-8-23456 -sign 翺 127568-237568-24 -sign 耔 1358-78-3458 -sign 耦 1358-6-2458 -sign 耵 123768-68-237456 -sign 耷 123768-56-23458 -sign 耼 123768-78-37468 -sign 胗 138-5-245 -sign 胠 138-2756-3458 -sign 胳 138-2568-23456 -sign 脘 138-25-346 -sign 腊 138-378-23745 -sign 腠 138-2358-23458 -sign 腧 138-78-7458 -sign 腨 138-36-3745 -sign 腭 138-6-23458 -sign 膻 138-78-37468 -sign 臊 138-36-245 -sign 臏 138-25-746 -sign 臗 138-36-2374568 -sign 艠 12758-2568-37456 -sign 艴 1237568-2368-24 -sign 芎 1368-758-24 -sign 芡 1258-768-24 -sign 芣 1258-5-27458 -sign 芤 1258-358-746 -sign 芩 1368-236-24 -sign 芮 1258-3768-458 -sign 芷 1258-36-7468 -sign 芾 1368-36-23468 -sign 芿 1258-2-374 -sign 苆 1258-2356-2745 -sign 苕 1258-275-37468 -sign 苽 1368-368-27456 -sign 苾 1258-368-46 -sign 茀 1258-8-2374568 -sign 茁 1258-56-237458 -sign 荢 1258-36-248 -sign 茢 1258-3758-2745 -sign 茭 1258-78-23746 -sign 茺 1258-748 -sign 荃 1258-236-237458 -sign 荇 1258-36-7458 -sign 荑 1258-758-274 -sign 荕 1258-38-3456 -sign 荽 1258-2758-748 -sign 莆 1258-8-37458 -sign 莒 1258-8-237468 -sign 莘 1258-356-27468 -sign 莧 1368-237568-346 -sign 莩 1258-3-245 -sign 莿 1258-238-2745 -sign 菀 1258-8-245 -sign 菇 1258-2356-3456 -sign 菏 1258-237-248 -sign 菑 1258-26-2746 -sign 菪 1258-25-27468 -sign 萁 1258-5-2348 -sign 萆 1258-36-2746 -sign 萊 1258-238-274 -sign 葈 1258-78-2348 -sign 葰 1258-27-274568 -sign 葳 1258-2378-27458 -sign 蒅 1258-568-2348 -sign 蒞 1258-78-2374 -sign 蒯 1258-36-2745 -sign 蒴 1258-26-2748 -sign 蒺 1368-75-46 -sign 蓀 1258-358-374 -sign 蓂 1258-78-3748 -sign 蔲 1258-2-346 -sign 蔞 1368-36-2456 -sign 蔣 1258-23758-34 -sign 蔯 1368-268-23748 -sign 蕙 1368-27568-3468 -sign 蕤 1258-3568-74 -sign 薭 1258-276-2468 -sign 蕺 1368-78-237468 -sign 薌 1258-37-745 -sign 薏 1258-2-274 -sign 薢 1258-3768-34568 -sign 薰 1258-258-74568 -sign 藋 1258-3-745 -sign 藎 1258-2758-74568 -sign 藭 1368-36-237468 -sign 蘒 1258-56-2374568 -sign 藿 1258-36-234 -sign 蘄 1258-2356-23456 -sign 蘅 1258-758-234568 -sign 蘐 1258-6-458 -sign 蘘 1368-7-237468 -sign 蘩 1368-278-374 -sign 蘸 1258-23-74568 -sign 虗 12568-258-45 -sign 虢 12568-3-237458 -sign 虬 127568-68-746 -sign 虵 127568-5-23746 -sign 蚘 127568-8-458 -sign 蚸 127568-2-746 -sign 蛺 127568-6-274 -sign 蛼 127568-25-274568 -sign 蛽 127568-78-746 -sign 蜋 127568-56-745 -sign 蝱 127568-25-37458 -sign 螇 127568-7-2374 -sign 螈 127568-756-24 -sign 螬 127568-2-34568 -sign 螭 127568-5-234 -sign 螵 127568-36-23745 -sign 䗪 127568-756-37456 -sign 蟖 127568-36-2348 -sign 蠆 127568-25-27468 -sign 蠊 127568-756-23458 -sign 蠐 127568-268-748 -sign 蠔 127568-2-748 -sign 蠟 127568-27568-3456 -sign 袘 12375-23746 -sign 袪 12375-36-3458 -sign 裊 12375-234568 -sign 裎 12375-2356-237458 -sign 裵 12375-36-74568 -sign 褜 12375-26-374568 -sign 褐 12375-2375-4568 -sign 褘 12375-234 -sign 褙 12375-38-2348 -sign 褚 12375-3756-3748 -sign 褧 12375-78-237468 -sign 褰 12375-25-4568 -sign 褲 12375-756-274568 -sign 褹 12375-2756-74 -sign 襀 12375-23758-746 -sign 覔 12758-237568-346 -sign 視 12375-2375-27458 -sign 觔 1275-3768-48 -sign 觥 13768-78-34 -sign 觶 13768-2356-23456 -sign 訒 1235-2-2745 -sign 訕 1235-75-24 -sign 訢 1235-56-746 -sign 訷 1235-6-23468 -sign 詇 1376-345 -sign 詎 1235-2-24568 -sign 詝 1376-36-237456 -sign 詡 1376-27568-34 -sign 詵 1376-2756-748 -sign 詹 18-3748 -sign 誧 1376-8-37458 -sign 諟 1235-378-7456 -sign 諴 1235-2378-74 -sign 諶 1235-2-2348 -sign 諸 1376-376-3748 -sign 譆 1235-2756-37468 -sign 譔 1235-7-3458 -sign 譙 1235-23-74568 -sign 譩 1235-2-274 -sign 豉 13756-278-34 -sign 豨 13568-237568-23468 -sign 賡 176-68-3745 -sign 賴 135-35-468 -sign 賸 176-26-23458 -sign 賾 12568-23758-746 -sign 贒 176-5-24568 -sign 贛 176-2768-3456 -sign 趯 1278-3-745 -sign 跎 123768-36-23748 -sign 跑 123768-37568-34 -sign 跗 123768-27-23468 -sign 踠 123768-36-245 -sign 踣 123768-7-27468 -sign 踽 123768-6-237468 -sign 蹰 123768-6-37456 -sign 蹻 123768-25-3745 -sign 軀 123768-25-374568 -sign 軺 127568-78-2745 -sign 輞 127568-3-7458 -sign 輭 127568-27568-7468 -sign 輶 127568-25-234568 -sign 轔 127568-375-34 -sign 辦 1356-78-2745 -sign 辵 1278-46 -sign 迤 12378-5-23746 -sign 迨 12378-5-274 -sign 迮 12378-8-2468 -sign 逈 1278-3768-3458 -sign 逭 12378-25-246 -sign 邈 12378-3568-3748 -sign 邕 128-3768-23748 -sign 邗 1268-5-248 -sign 邙 1268-6-37458 -sign 邛 1268-358-24 -sign 邢 1268-25-23745 -sign 邳 1268-5-27458 -sign 邾 1268-6-248 -sign 郄 1268-36-3456 -sign 郅 1268-5-7458 -sign 郇 1268-378-24568 -sign 郗 1268-237568-23468 -sign 郝 1268-2368-248 -sign 郞 175-75-2468 -sign 郯 1268-7568-74568 -sign 郴 1268-238-2348 -sign 都 1268-268-2468 -sign 鄔 1268-23568-245 -sign 鄕 137-36-745 -sign 鄖 1268-36-23456 -sign 鄢 1268-768-234 -sign 鄣 1268-2768-3456 -sign 鄧 1268-2568-37456 -sign 鄯 1268-3568-23456 -sign 鄱 1268-375-2746 -sign 鄴 1268-3568-2348 -sign 鄽 1268-36-7456 -sign 酈 1268-3768-456 -sign 酛 123568-2-346 -sign 醃 123568-8-3468 -sign 醞 123568-3-348 -sign 醬 123568-78-237458 -sign 醱 123568-2568-24568 -sign 醼 123568-25-27456 -sign 釗 128-25-2745 -sign 釻 128-2-345 -sign 釤 128-78-245 -sign 釥 128-78-34568 -sign 釭 128-358-24 -sign 釱 128-6-2746 -sign 鈇 128-7-23458 -sign 鈐 128-236-24 -sign 鈸 128-356-3746 -sign 鈹 128-5-23748 -sign 鈺 128-237458 -sign 鈼 128-8-2468 -sign 鉀 128-68-3458 -sign 鉃 128-75-34 -sign 鉏 128-6-34568 -sign 鉸 128-78-23746 -sign 銈 128-2756-27456 -sign 鋂 128-78-2748 -sign 鋋 128-278-24 -sign 鋌 128-278-237458 -sign 鋓 128-375-2745 -sign 鋠 128-5-3456 -sign 鋿 128-8-2748 -sign 錟 128-7568-74568 -sign 錡 128-2358-248 -sign 錥 128-78-246 -sign 鍈 128-258-345 -sign 鍉 128-378-7456 -sign 鍤 128-36-34568 -sign 鍥 128-275-23458 -sign 鍪 128-2-7456 -sign 鍰 128-6-458 -sign 鎛 128-78-237456 -sign 鎣 17568-78-248 -sign 鎺 128-2375-34568 -sign 鏆 128-56-27456 -sign 鏞 128-756-37468 -sign 鏟 128-756-234 -sign 鐄 128-2368-3458 -sign 鏽 128-275-7458 -sign 鐳 128-2376-2746 -sign 鑊 128-36-2458 -sign 鑣 128-78-74568 -sign 鑫 128-28-248 -sign 鑱 128-275-346 -sign 鑲 128-7-237468 -sign 閎 137568-3-3456 -sign 閟 137568-368-46 -sign 閦 137568-36-274 -sign 閩 137568-36-274568 -sign 閬 137568-56-745 -sign 閶 137568-236-3748 -sign 閽 137568-378-7468 -sign 闋 137568-68-24568 -sign 闐 137568-2-2374568 -sign 闓 137568-6-745 -sign 闚 137568-2358-346 -sign 闞 137568-23768-4568 -sign 陘 1268-2358-74 -sign 隄 1268-378-7456 -sign 隆 1268-268-234568 -sign 隝 1268-78-234568 -sign 隤 1268-76-2348 -sign 隥 1268-78-37456 -sign 雒 12568-36-234 -sign 雞 12-37-234568 -sign 雩 12376-34 -sign 雯 12376-78-74 -sign 霳 12376-268-234568 -sign 霻 12376-276-37456 -sign 靍 12376-78-234568 -sign 靎 12376-25-234568 -sign 靏 12376-56-234568 -sign 靚 123568-237568-346 -sign 靮 13756-56-374568 -sign 靳 13756-56-746 -sign 鞕 13756-378-274 -sign 鞮 13756-378-7456 -sign 鞺 13756-78-27456 -sign 韁 13756-2-2746 -sign 韉 13756-258-34568 -sign 韞 123-78-348 -sign 韛 123-36-23748 -sign 韴 12768-2368-48 -sign 頊 135-237458 -sign 頞 135-25-27458 -sign 頫 135-346 -sign 頰 135-35-274 -sign 顒 135-36-2458 -sign 顓 135-375-745 -sign 顖 135-768-74 -sign 顗 135-6-745 -sign 顙 135-368-3746 -sign 顚 1237568-237568-345 -sign 顥 135-378-23456 -sign 顬 135-2376-3745 -sign 颺 1378-27568-346 -sign 飈 127568-36-74568 -sign 飧 123568-3758-24 -sign 饘 123568-25-37468 -sign 馞 1375-78-3456 -sign 騂 13568-356-27468 -sign 騃 13568-8-274568 -sign 騤 13568-68-24568 -sign 騭 13568-768-34568 -sign 騮 13568-26-2746 -sign 騸 13568-3756-274568 -sign 驊 13568-258-248 -sign 驎 13568-375-34 -sign 骶 1768-28-246 -sign 髁 128-276-2348 -sign 髃 1258-28-246 -sign 髎 125-28-246 -sign 髖 138-2374568 -sign 髹 13756-27-2348 -sign 鬂 13756-258-2346 -sign 鬈 13756-2358-2468 -sign 鬠 13756-236-2345 -sign 鬭 137568-56-746 -sign 魞 123568-56-274 -sign 魹 123568-78-234568 -sign 魦 123568-3758-34568 -sign 魲 123568-25-37456 -sign 魵 123568-36-2346 -sign 鮄 123568-8-2374568 -sign 鮊 123568-378-24 -sign 鮏 123568-36-234 -sign 鮞 123568-8-3745 -sign 鮧 123568-758-274 -sign 鯁 123568-378-274 -sign 鯎 123568-23568-23748 -sign 鯥 123568-36-274568 -sign 鯸 123568-36-745 -sign 鯽 123568-2568-2468 -sign 鰀 123568-6-458 -sign 鰣 123568-378-23468 -sign 鱁 123568-278-34568 -sign 鱏 123568-378-3456 -sign 鱐 123568-275-7458 -sign 鱓 123568-2356-23456 -sign 鱣 123568-8-37468 -sign 鱷 123568-25-23456 -sign 鴝 137568-25-234568 -sign 鴞 12356-25-234568 -sign 鵃 12758-23568-24 -sign 鵇 1378-23568-24 -sign 鵣 1238-25-234568 -sign 鵰 12756-25-234568 -sign 鵼 125-234568 -sign 鶊 1375-25-234568 -sign 鶖 17568-78-234568 -sign 鷀 137-78-234568 -sign 鶬 135-78-234568 -sign 鶼 12358-25-234568 -sign 鷗 137568-37568-234568 -sign 鷧 1256-36-234568 -sign 鸇 1378-78-234568 -sign 鸕 1276-78-234568 -sign 鹼 1768-78-2346 -sign 麞 13568-2768-3456 -sign 麤 13568-3568-456 -sign 麬 12568-5-23748 -sign 麯 12568-276-46 -sign 麴 12568-368-34 -sign 麵 12568-36-2374568 -sign 黑 12368-2368-2458 -sign 鼐 137-237568-245 -sign 鼹 12358-25-27458 -sign 齗 1768-56-746 -sign 龐 1756-2768-3468 -sign 龔 12768-5-3458 -sign 龗 12376-78-3468 -sign 龢 1236-375-74 -sign 瘦 175-75-2345 -sign 繫 127568-27568-374 - -# JIS level4 -sign 丂 13-374568 -sign 丒 12-8-34568 -sign 丩 17-2468 -sign 丫 12-36-45 -sign 丮 123756-238-37458 -sign 乀 13-25-245 -sign 乇 13-274 -sign 乑 12-3568-74 -sign 乚 12-68-746 -sign 乩 12-2356-37456 -sign 亝 12-268-748 -sign 㐬 15-2458 -sign 㐮 12-237468 -sign 亹 178-36-34568 -sign 仃 127-68-237456 -sign 仐 12-236-274 -sign 仚 1236-75-24 -sign 仱 127-236-24 -sign 仵 127-3568-45 -sign 伀 127-8-3458 -sign 伖 127-356-3746 -sign 伷 127-276-45 -sign 伾 127-36-27458 -sign 佔 127-2356-37456 -sign 佘 1236-36-23745 -sign 佷 127-7-745 -sign 佸 127-2356-234568 -sign 佺 127-236-237458 -sign 佽 127-568-7468 -sign 侂 158-3-274 -sign 侅 127-6-374 -sign 侒 127-25-27458 -sign 侚 127-378-24568 -sign 侲 127-5-3456 -sign 侾 127-3756-3458 -sign 俅 127-356-2374 -sign 俋 127-3768-23748 -sign 俏 127-3568-348 -sign 俒 127-25-346 -sign 俲 127-2376-2745 -sign 倀 127-5-37456 -sign 倐 127-78-74568 -sign 倓 127-7568-74568 -sign 倜 127-3768-27456 -sign 倞 127-78-23456 -sign 倢 127-78-2748 -sign 偂 127-26-2745 -sign 偆 127-2358-3748 -sign 偎 127-276-23745 -sign 偓 127-3756-7458 -sign 偗 127-3568-2374568 -sign 偣 127-2768-3748 -sign 偦 127-36-7456 -sign 偪 127-8-27458 -sign 偰 127-275-23458 -sign 傒 127-7-2374 -sign 傓 127-3756-274568 -sign 傖 127-236-345 -sign 傜 127-36-248 -sign 傪 127-2-245 -sign 傺 127-2375-2468 -sign 僄 127-237-23745 -sign 僇 127-27568-34 -sign 僎 127-7-3458 -sign 僔 127-23568-23468 -sign 僩 127-37568-246 -sign 儈 127-236-2345 -sign 儗 127-75-7456 -sign 儛 127-27568-37458 -sign 冃 13768-68-234 -sign 冋 16-6-37468 -sign 㒼 18-8-2374568 -sign 冘 178-45 -sign 冣 136-23768-3746 -sign 冭 12358-4568 -sign 冼 1568-2756-748 -sign 凳 178-2568-37456 -sign 凴 1568-78-748 -sign 刂 1275-48 -sign 划 1275-5-37468 -sign 刖 1275-36-246 -sign 剕 1275-5-74568 -sign 剜 1275-8-245 -sign 剷 1275-756-234 -sign 劂 1275-768-24 -sign 劘 1275-36-74568 -sign 劤 1275-56-746 -sign 劦 1275-275-2745 -sign 劯 1275-78-27468 -sign 劺 1275-6-274568 -sign 劻 1275-36-374568 -sign 勑 1275-238-274 -sign 勷 1275-7-237468 -sign 匊 137568-375-24 -sign 匋 137568-5-7468 -sign 匤 137568-36-237458 -sign 匵 137568-2756-746 -sign 匾 137568-25-37456 -sign 卂 18-3456 -sign 卬 1268-34 -sign 厤 1756-78-3745 -sign 厴 1756-756-246 -sign 厷 13-3456 -sign 叀 12-3-274568 -sign 叕 18-3746 -sign 叚 17-3745 -sign 㕣 13-2345 -sign 叵 12356-36-374568 -sign 吤 12356-58-346 -sign 吨 12356-56-27458 -sign 呃 12356-756-2468 -sign 呢 12356-3756-458 -sign 呦 12356-37-24 -sign 呬 12356-68-2456 -sign 咊 12356-375-74 -sign 咍 12356-5-274 -sign 咕 12356-2356-3456 -sign 咦 12356-758-274 -sign 咭 12356-2756-23456 -sign 咮 12356-6-248 -sign 咷 12356-68-346 -sign 咺 12356-6-3748 -sign 咿 12356-23-274 -sign 哬 12356-27-248 -sign 哯 12356-78-2374568 -sign 唀 12356-375-374 -sign 唁 12356-2345 -sign 唉 12356-8-274568 -sign 唼 12356-2758-27468 -sign 啁 12356-3768-27456 -sign 啇 18-345 -sign 啊 12356-268-248 -sign 啠 12356-76-746 -sign 啡 12356-5-74568 -sign 啤 12356-276-2468 -sign 喂 12356-276-23745 -sign 喈 12356-56-3748 -sign 喑 12356-2768-3748 -sign 嗒 12356-3756-346 -sign 喿 125-74 -sign 嗉 12356-23758-374 -sign 嗌 12356-236-348 -sign 嗑 12356-36-348 -sign 嗢 12356-3-348 -sign 嗩 12356-78-746 -sign 嘇 12356-2-245 -sign 嘐 12356-27568-34 -sign 嘰 12356-37-37468 -sign 嘷 12356-78-3456 -sign 嘽 12356-78-23456 -sign 嘿 12356-2368-2458 -sign 噀 12356-7-3458 -sign 噞 12356-8-2346 -sign 噠 12356-2378-2746 -sign 噭 12356-78-4568 -sign 嚈 12356-756-246 -sign 嚌 12356-268-748 -sign 嚕 12356-23568-3748 -sign 嚚 12356-5-24568 -sign 嚝 12356-756-3458 -sign 嚨 12356-2768-3468 -sign 嚭 12356-2758-37468 -sign 囅 12356-3756-37456 -sign 囍 12756-2756-37468 -sign 囟 1768-74 -sign 囨 13768-5-27458 -sign 囶 13768-36-27456 -sign 囷 13768-375-74 -sign 圕 13768-378-27458 -sign 圣 12756-5-3746 -sign 圩 12756-2-248 -sign 坅 12756-236-24 -sign 坆 12756-78-4568 -sign 坌 12756-36-2346 -sign 坍 12756-2758-45 -sign 坨 12756-78-23748 -sign 坯 12756-36-27458 -sign 坳 12756-37-24 -sign 坴 12756-74 -sign 坵 12756-258-45 -sign 坻 12756-36-7468 -sign 垬 12756-5-3458 -sign 垚 12756-2756-27456 -sign 垝 12756-258-2468 -sign 垞 12756-25-274 -sign 垨 12756-25-23468 -sign 埌 12756-56-745 -sign 埞 12756-25-7456 -sign 埦 12756-8-245 -sign 埰 12756-8-23746 -sign 埸 12756-378-468 -sign 埽 12756-6-2346 -sign 堄 12756-358-346 -sign 堞 12756-78-7456 -sign 堠 12756-58-745 -sign 堧 12756-8-3745 -sign 堲 12756-2568-2468 -sign 堹 12756-78-2346 -sign 塉 12756-38-458 -sign 塌 12756-25-274568 -sign 塧 12756-236-348 -sign 墊 12756-2756-345 -sign 墍 12756-75-458 -sign 墏 12756-23758-34 -sign 墐 12756-8-2348 -sign 墔 12756-78-745 -sign 墝 12756-8-27456 -sign 墱 12756-2568-37456 -sign 壍 12756-78-274568 -sign 壢 12756-358-7468 -sign 壳 12756-8-748 -sign 壴 12-6-37456 -sign 夅 12-234 -sign 夆 12-37458 -sign 夋 12-274568 -sign 夔 12568-35-45 -sign 夤 13758-25-2345 -sign 奆 12358-2-24568 -sign 奛 12358-378-246 -sign 奟 12358-26-246 -sign 奵 12758-68-237456 -sign 奶 12758-2-374 -sign 奼 12758-3-274 -sign 妟 12758-78-3748 -sign 妮 12758-3756-458 -sign 妼 12758-368-46 -sign 姈 12758-36-3456 -sign 姍 12758-5-237458 -sign 姞 12758-2756-23456 -sign 姣 12758-78-23746 -sign 姤 12758-756-23456 -sign 姧 12758-5-248 -sign 姮 12758-6-3748 -sign 娌 12758-56-2346 -sign 娍 12758-23568-23748 -sign 娧 12758-8-346 -sign 娭 12758-8-274568 -sign 婕 12758-36-2748 -sign 婥 12758-378-37456 -sign 婺 12758-2-7456 -sign 媋 12758-2358-3748 -sign 媜 12758-76-37456 -sign 媟 12758-36-7456 -sign 媠 12758-78-246 -sign 媢 12758-378-2374568 -sign 媱 12758-78-248 -sign 媳 12758-237568-3468 -sign 媵 12758-25-246 -sign 媺 12758-36-4568 -sign 媿 12758-35-2374 -sign 嫚 12758-6-27468 -sign 嫜 12758-2768-3456 -sign 嫠 12758-78-7456 -sign 嫥 12758-5-237456 -sign 嫮 12758-78-374568 -sign 嫵 12758-27568-74568 -sign 嬀 12758-78-74568 -sign 嬈 12758-8-27456 -sign 嬗 12758-8-37468 -sign 嬴 138-36-27458 -sign 嬭 12758-3768-2374568 -sign 孌 12758-78-2345 -sign 孒 13-3458 -sign 孨 1358-358-3458 -sign 孯 1358-24568 -sign 孼 1358-356-27468 -sign 孿 1358-36-2345 -sign 宁 125-68-237456 -sign 宄 125-68-345 -sign 宖 125-3-274568 -sign 宬 125-23568-23748 -sign 寀 125-8-23746 -sign 寖 125-568-3746 -sign 寱 125-237568-24 -sign 寽 13-237458 -sign 尩 136-23758-24 -sign 尰 158-78-2346 -sign 屣 13756-78-2748 -sign 屧 13756-36-7456 -sign 屨 13756-36-2456 -sign 屩 13756-2-3745 -sign 屰 12-2748 -sign 屼 175-36-346 -sign 岈 175-5-2374568 -sign 岊 175-36-23748 -sign 岠 175-2-24568 -sign 岢 175-78-248 -sign 岦 175-2768-24 -sign 岵 175-2356-3456 -sign 峉 175-2568-23456 -sign 崆 175-25-2348 -sign 崐 175-78-456 -sign 崫 175-36-237458 -sign 崤 175-237568-348 -sign 崦 175-8-3468 -sign 崱 175-76-2745 -sign 崹 175-2768-23468 -sign 嵂 175-758-27458 -sign 嵡 175-358-274568 -sign 嵪 175-36-2345 -sign 嵰 175-236-23458 -sign 嶈 175-23758-34 -sign 㠀 123568-23568-745 -sign 嶒 175-7-34568 -sign 嶔 175-768-248 -sign 嶙 175-375-34 -sign 嶰 175-3768-34568 -sign 嶲 175-56-37468 -sign 嶴 175-3768-3745 -sign 嶹 175-23758-23468 -sign 巘 175-23768-23458 -sign 巠 12358-74 -sign 巤 12-3456 -sign 巩 1358-8-3456 -sign 帀 12368-48 -sign 帒 12368-36-37468 -sign 帕 12368-36-3748 -sign 帟 12368-5-2345 -sign 帮 12368-23758-2468 -sign 帾 12368-3756-3748 -sign 幉 12368-36-7456 -sign 幖 12368-237-23745 -sign 幫 12368-36-27456 -sign 幬 12368-23758-23468 -sign 幭 12368-2568-23748 -sign 幮 12368-78-37456 -sign 庥 1756-27-2348 -sign 庪 1756-23756-2748 -sign 庬 1756-78-245 -sign 庿 1756-276-2458 -sign 廆 1756-36-345 -sign 廒 1756-7-37458 -sign 弈 13756-5-2345 -sign 弎 168-68-245 -sign 弜 1758-78-7458 -sign 彇 1758-275-7458 -sign 彣 125-78-74 -sign 彲 125-3768-456 -sign 彾 1758-58-3456 -sign 徏 1758-768-34568 -sign 徢 1758-36-7456 -sign 徤 1758-278-27458 -sign 徸 1758-2768-2346 -sign 忄 1256-74 -sign 忇 1256-356-2458 -sign 忋 1256-68-2348 -sign 忒 1256-7-37468 -sign 忓 1256-5-248 -sign 忔 1256-78-345 -sign 忢 1256-68-246 -sign 忮 1256-278-34 -sign 忯 1256-2-7468 -sign 忳 1256-56-27458 -sign 忼 1256-6-346 -sign 怗 1256-2356-37456 -sign 怤 1256-27-23468 -sign 恌 1256-68-346 -sign 恿 1256-78-27456 -sign 悊 1256-23756-746 -sign 悕 1256-237568-23468 -sign 您 1256-25-748 -sign 悰 1256-25-23745 -sign 悱 1256-5-74568 -sign 悾 1256-25-2348 -sign 惈 1256-276-2348 -sign 惙 1256-8-3746 -sign 惛 1256-378-7468 -sign 惲 1256-36-274568 -sign 惵 1256-36-7456 -sign 愐 1256-237568-45 -sign 愒 1256-8-4568 -sign 愓 1256-25-468 -sign 愙 1256-36-23456 -sign 愞 1256-78-3745 -sign 慁 1256-36-34568 -sign 慆 1256-7-2745 -sign 慠 1256-7-37458 -sign 慼 1256-2378-245 -sign 憒 1256-76-2348 -sign 憓 1256-27568-3468 -sign 憗 1256-36-2348 -sign 憘 1256-36-37468 -sign 憥 1256-78-2745 -sign 憨 1256-23768-4568 -sign 憭 1256-6-3456 -sign 懕 1256-756-246 -sign 懝 1256-75-7456 -sign 懟 1256-276-234 -sign 懵 1256-25-37458 -sign 戕 123758-5-37468 -sign 戣 12568-5-37468 -sign 戩 1378-36-37468 -sign 扆 13756-2375-24 -sign 扌 123756-74 -sign 扑 123756-3-37456 -sign 扒 123756-68-2346 -sign 扤 123756-5-346 -sign 扭 123756-8-34568 -sign 扳 123756-278-7468 -sign 抦 123756-68-237458 -sign 拕 123756-3-23748 -sign 拽 123756-8-23468 -sign 挃 123756-5-7458 -sign 挍 123756-78-23746 -sign 挐 123756-2758-23456 -sign 挵 123756-23758-37456 -sign 挼 123756-2758-748 -sign 捁 123756-358-2458 -sign 捄 123756-356-2374 -sign 捎 123756-3568-348 -sign 捬 123756-756-23468 -sign 掄 123756-6-2456 -sign 掙 123756-3568-346 -sign 掔 123756-5-3746 -sign 掽 123756-2768-27468 -sign 揔 123756-36-3468 -sign 揕 123756-2-2348 -sign 揜 123756-8-37456 -sign 揠 123756-25-374568 -sign 揬 123756-25-23458 -sign 揲 123756-36-7456 -sign 搉 123756-78-234 -sign 搞 123756-56-2345 -sign 搥 123756-2378-246 -sign 搩 123756-58-23458 -sign 搯 123756-3756-245 -sign 摚 123756-78-27456 -sign 摛 123756-5-234 -sign 摝 123756-3568-456 -sign 摳 123756-37568-74 -sign 摽 123756-237-23745 -sign 撇 123756-36-4568 -sign 撑 123756-78-237456 -sign 撝 123756-78-74568 -sign 撟 123756-2-3745 -sign 擋 123756-78-27458 -sign 擌 123756-25-23746 -sign 擕 123756-25-234 -sign 擗 123756-8-27468 -sign 擤 123756-237568-2746 -sign 擥 123756-25-24568 -sign 擿 123756-2378-345 -sign 攄 123756-2568-3468 -sign 攏 123756-2768-3468 -sign 攔 123756-37568-23748 -sign 攖 123756-2758-746 -sign 攞 123756-2568-234 -sign 敔 126-36-4568 -sign 敫 12-4568 -sign 敺 1376-37568-74 -sign 斁 1276-25-4568 -sign 斅 1376-748 -sign 斊 123768-78-74 -sign 斲 12-27568-746 -sign 斿 13758-3458 -sign 旂 13758-746 -sign 旉 13758-74 -sign 旔 13758-2748 -sign 旲 1378-56-23458 -sign 旹 1378-378-23468 -sign 昄 1378-36-2748 -sign 昈 1378-36-37456 -sign 昡 1378-78-374 -sign 昪 1378-27568-37456 -sign 晅 1378-6-3748 -sign 晑 1378-78-3458 -sign 晎 1378-5-3458 -sign 晗 1378-236-23456 -sign 晛 1378-237568-346 -sign 晪 1378-276-2346 -sign 晫 1378-378-37456 -sign 晬 1378-35-3456 -sign 晻 1378-8-3468 -sign 暀 1378-758-237458 -sign 暐 1378-3-234 -sign 暒 1378-378-234 -sign 暙 1378-2358-3748 -sign 暭 1378-378-2348 -sign 暱 1378-37568-468 -sign 暵 1378-36-2458 -sign 暿 1378-2756-37468 -sign 曬 1378-3768-456 -sign 朅 12756-8-4568 -sign 朙 1378-378-246 -sign 杌 1238-36-346 -sign 杔 1238-3-274 -sign 杝 1238-5-23746 sign 𣏕 1238-2-2374 -sign 杴 1238-768-24 -sign 杶 1238-56-27458 -sign 枰 1238-236-248 -sign 枲 1238-25-274 -sign 柃 1238-58-3456 -sign 柈 1238-356-2748 -sign 柒 12-237-2348 -sign 柙 1238-68-3458 -sign 柰 1238-78-23745 -sign 柷 1238-2356-346 -sign 栟 1238-7-37456 -sign 栭 1238-8-3745 -sign 栳 1238-3756-34 -sign 栻 1238-3768-34 -sign 桄 1238-78-34 -sign 桅 1238-258-2468 -sign 桌 1238-25-37456 -sign 桕 1238-8-2745 -sign 桗 1238-36-374 -sign 桫 1238-568-37458 -sign 桮 1238-2758-37468 -sign 桺 1368-23568-74 -sign 桼 1237-237-2348 -sign 梂 1238-356-2374 -sign 梖 1238-25-746 -sign 梘 1238-36-2374568 -sign 梚 1238-275-346 -sign 梜 1238-6-274 -sign 梪 1238-6-37456 -sign 梻 1368-58-2374568 -sign 棻 1236-2348 -sign 﨓 1238-56-23468 -sign 棅 1238-36-237456 -sign 棌 1238-8-23746 -sign 棏 1238-758-3748 -sign 棖 1238-5-37456 -sign 棙 1238-3756-23458 -sign 棥 1238-237568-2374568 -sign 棬 1238-2358-2468 -sign 㮈 1238-2358-458 -sign 椻 1238-78-374568 -sign 楩 1368-58-274 -sign 楬 1238-8-4568 -sign 楲 1238-2378-27458 -sign 楺 1238-238-7456 -sign 楿 1368-375-3748 -sign 榒 1238-758-7458 -sign 榖 12756-36-3745 -sign 榘 1238-75-24568 -sign 榦 1356-356-248 -sign 榷 1238-78-234 -sign 榺 126-2358-2348 -sign 榼 1238-78-348 -sign 槑 1368-368-2748 -sign 槖 1238-25-27468 -sign 樰 1368-2376-234568 -sign 槮 1238-2-245 -sign 槯 1238-25-745 -sign 槳 1238-23758-34 -sign 槾 1238-6-27468 -sign 樑 1238-78-2374 -sign 樚 1238-25-34568 -sign 樝 1368-2568-74 -sign 樲 1368-3768-234 -sign 樴 1238-25-237468 -sign 樿 1238-2356-23456 -sign 橆 127568-238-2348 -sign 橉 1368-375-34 -sign 橎 1368-375-2746 -sign 橒 1368-2376-2345 -sign 橤 1238-36-3468 -sign 橾 1238-25-74 -sign 檃 1238-25-2456 -sign 檋 1238-25-3458 -sign 檑 1368-2376-2746 -sign 檟 1368-6-2374 -sign 檫 1368-25-2468 -sign 檽 1368-2376-3745 -sign 櫆 1238-35-2374 -sign 櫔 1238-68-27468 -sign 櫐 1368-276-2746 -sign 櫜 1356-36-2348 -sign 櫝 1368-2756-746 -sign 櫬 1238-2768-2374568 -sign 櫱 1238-356-27468 -sign 櫲 1368-78-7456 -sign 櫽 1238-268-2456 -sign 欏 1238-2568-234 -sign 欐 1238-3768-456 -sign 欑 1238-78-2468 -sign 欗 137568-37568-23748 -sign 㰦 1768-2756-3458 -sign 欯 1768-2756-23456 -sign 歊 1768-2345 -sign 歘 1768-36-74568 -sign 歵 1768-23758-746 -sign 殛 13758-2-27468 -sign 殮 13758-2346 -sign 殽 1237568-36-3745 -sign 殾 13756-25-3745 -sign 毉 137568-58-27458 -sign 毚 12-275-346 -sign 毦 123768-5-234568 -sign 毧 123568-3-37468 -sign 毮 123756-3758-234568 -sign 毱 123568-368-34 -sign 氂 1756-5-234568 -sign 氎 1276-5-234568 -sign 氵 1237-34 -sign 氶 18-8-2374 -sign 氺 1237-48 -sign 氿 1237-68-345 -sign 汍 1237-2-345 -sign 汛 1237-8-3456 -sign 汭 1237-3768-458 -sign 沉 1237-78-748 -sign 沔 1237-25-374568 -sign 沕 1237-5-468 -sign 沗 12358-36-2374 -sign 泂 1237-78-37468 -sign 泐 1237-78-2468 -sign 泖 1237-268-245 -sign 泚 1237-56-45 -sign 泜 1237-2-7468 -sign 泩 1237-23568-234 -sign 泬 1237-25-2346 -sign 洊 1237-356-3458 -sign 洦 1237-68-2374568 -sign 洧 1237-356-246 -sign 汧 1237-7-23745 -sign 洯 1237-5-2745 -sign 洼 1237-25-27456 -sign 浞 1237-23768-34 -sign 浰 1237-375-2745 -sign 涑 1237-238-468 -sign 涘 1237-8-274568 -sign 涴 1237-8-245 -sign 淈 1237-3756-237458 -sign 淎 1237-2358-37458 -sign 淏 1237-2-23458 -sign 淟 1237-276-2346 -sign 淩 1237-8-24568 -sign 淶 1237-238-274 -sign 渶 1237-258-345 -sign 渞 1237-35-45 -sign 渢 1237-27568-346 -sign 渧 1237-2768-23468 -sign 渲 1237-25-3748 -sign 渼 1237-3568-23458 -sign 湈 1237-256-2348 -sign 湉 1237-2356-234568 -sign 湋 1237-3-234 -sign 湏 1237-36-345 -sign 湑 1237-8-7456 -sign 湓 1237-275-348 -sign 湔 1237-26-2745 -sign 湗 1237-2756-27456 -sign 湣 1568-36-7468 -sign 溓 1237-236-23458 -sign 溧 1237-368-2374 -sign 溿 1237-276-2748 -sign 滃 1237-358-274568 -sign 滊 1237-37568-24 -sign 滫 1237-58-7458 -sign 滹 1237-2568-745 -sign 滻 1237-756-234 -sign 漊 1237-8-2456 -sign 漌 1237-8-2348 -sign 漘 1237-5-3456 -sign 漶 1237-2356-3468 -sign 漼 1237-78-234 -sign 潒 1237-3568-48 -sign 潗 1237-238-234 -sign 潚 1568-275-7458 -sign 潨 1237-38-34568 -sign 潽 1237-2768-27458 -sign 澐 1237-2376-2345 -sign 澖 1237-37568-2348 -sign 澟 1568-3768-23456 -sign 澥 1237-3768-34568 -sign 澯 1237-78-3745 -sign 澵 1237-2768-746 -sign 濈 1237-36-237468 -sign 濚 1237-78-2348 -sign 濞 1237-237568-2746 -sign 濩 1237-3-2458 -sign 濼 1237-378-374 -sign 瀀 1237-2-7458 -sign 瀇 1237-756-3458 -sign 瀣 1237-36-74568 -sign 瀹 1237-78-2346 -sign 瀼 1237-7-237468 -sign 灃 1237-78-37456 -sign 灋 1568-2756-3458 -sign 灔 1237-276-23468 -sign 灥 1378-378-4568 -sign 灬 17568-74 -sign 灮 17568-5-346 -sign 灶 17568-25-27456 -sign 灾 125-78-74568 -sign 炁 17568-7-458 -sign 炆 17568-78-74 -sign 炕 17568-6-346 -sign 炗 17568-68-37456 -sign 炻 17568-36-27468 -sign 炱 17568-274 -sign 烊 17568-3568-34 -sign 烑 17568-68-346 -sign 烓 17568-78-27456 -sign 烜 17568-6-3748 -sign 焃 17568-248 -sign 焄 17568-35-24 -sign 焆 17568-36-246 -sign 焇 17568-3568-348 -sign 焌 17568-2-274568 -sign 焯 17568-378-37456 -sign 焱 17568-7568-74568 -sign 煐 17568-258-345 -sign 煊 17568-25-3748 -sign 煞 17568-78-4568 -sign 熀 17568-78-34 -sign 熛 17568-237-23745 -sign 熠 17568-27568-3748 -sign 熢 17568-2378-37458 -sign 熯 17568-36-2458 -sign 熳 17568-6-27468 sign 𤎼 17568-78-458 -sign 燋 17568-23-74568 -sign 燓 17568-238-2348 -sign 燙 17568-237-468 -sign 燜 17568-37568-3468 -sign 爇 1258-7568-24 -sign 爫 178-48 -sign 爴 13768-38-27456 -sign 爸 12376-36-23748 -sign 爹 12376-3758-37458 -sign 牂 123758-3568-34 -sign 牓 123758-5-37458 -sign 牣 13568-2-2745 -sign 牮 13568-58-37468 -sign 牯 13568-2356-3456 -sign 牸 13568-358-3458 -sign 牿 13568-358-2458 -sign 犎 13568-2756-27456 -sign 犭 12358-34 -sign 犮 1356-356-3746 -sign 犱 12358-2-345 -sign 狁 12358-3-274568 -sign 狌 12358-23568-234 -sign 狳 12358-236-374568 -sign 狺 12358-36-2345 -sign 猇 12358-2568-74 -sign 猒 126-36-23458 -sign 猘 12358-23568-2745 -sign 猙 12358-3568-346 -sign 猹 12358-238-3748 -sign 猬 12358-276-348 -sign 猱 12358-238-7456 -sign 猳 12358-78-3745 -sign 猽 12358-78-3748 -sign 獒 12358-7-37458 -sign 獫 12358-8-2346 -sign 獬 12358-3768-34568 sign 𤢖 1238-78-245 -sign 獮 12358-3768-2374568 -sign 獯 12358-78-2458 -sign 獱 12358-25-746 -sign 獷 12358-756-3458 -sign 玁 12358-756-4568 -sign 玅 178-3758-34568 -sign 玊 123758-45 -sign 玘 123758-68-2348 -sign 玜 123758-8-3458 -sign 玞 123758-7-23458 -sign 玥 123758-246 -sign 玵 123758-5-2456 -sign 玷 123758-2356-37456 -sign 玹 123758-78-374 -sign 玼 123758-56-45 -sign 玿 123758-275-37468 -sign 珅 123758-6-23468 -sign 珋 123758-268-245 -sign 珡 123758-78-2346 -sign 珧 123758-68-346 -sign 珹 123758-23568-23748 -sign 珺 123758-345 -sign 琁 123758-7456 -sign 琤 123758-3568-346 -sign 琱 123758-3768-27456 -sign 琹 123758-78-2348 -sign 瑀 123758-6-237468 -sign 瑃 123758-2358-3748 -sign 瑍 123758-6-348 -sign 瑒 123758-468 -sign 瑝 123758-378-237458 -sign 瑱 123758-2-2374568 -sign 璁 123758-78-3458 -sign 璅 123758-28-2348 -sign 璒 123758-2568-37456 -sign 璙 123758-6-3456 -sign 璠 123758-375-2746 -sign 璡 123758-23748 -sign 璪 123758-25-74 -sign 璫 123758-27458 -sign 璹 123758-36-23468 -sign 璻 123758-78-274568 -sign 瓘 123758-36-23458 -sign 瓞 12756-8-23458 -sign 瓯 137568-248 -sign 瓫 1236-8-248 -sign 瓺 13756-8-248 -sign 甠 1378-23568-234 -sign 甤 13568-23568-234 -sign 甪 13768-8-48 -sign 甽 1276-28-24 -sign 甾 1276-48 -sign 畀 1276-748 -sign 畈 1276-278-7468 -sign 畎 1276-36-23458 -sign 畐 18-27458 -sign 畒 1276-36-274 -sign 畱 126-36-2746 -sign 畺 12-2746 -sign 畽 1276-78-2346 -sign 畾 1276-276-2746 -sign 疁 1276-27568-74 -sign 疢 175-36-74568 -sign 疿 175-8-2374568 -sign 痀 175-37568-46 -sign 痆 175-3756-458 -sign 痏 175-356-246 -sign 痓 175-5-7458 -sign 痟 175-78-348 -sign 痠 175-2-274568 -sign 痧 175-568-37458 -sign 痬 175-378-468 -sign 痮 175-5-37456 -sign 痱 175-5-74568 -sign 痹 175-276-748 -sign 瘃 175-3568-74 -sign 瘇 175-78-2346 -sign 瘏 175-3756-3748 -sign 瘓 175-6-348 -sign 瘛 175-36-3468 -sign 瘜 175-237568-3468 -sign 瘥 175-36-3458 -sign 瘼 175-8-2458 -sign 瘳 175-27568-74 -sign 㿉 175-76-2348 -sign 癁 175-758-24568 -sign 癉 175-2356-23456 -sign 癕 175-2-23748 -sign 㿗 175-36-345 -sign 癮 175-268-2456 -sign 皕 168-68-2374568 -sign 皜 1378-56-2345 -sign 皠 1378-36-745 -sign 皧 1378-78-748 -sign 皨 1378-36-27456 -sign 盉 138-375-74 -sign 盨 138-25-24568 -sign 盬 138-2356-3456 -sign 眗 1237568-37568-46 -sign 眚 1237568-23568-234 -sign 眭 1237568-27456 -sign 眵 1237568-3758-37458 -sign 睠 1237568-2358-2468 -sign 睪 13-2746 -sign 睲 1237568-378-234 -sign 睽 1237568-68-24568 -sign 瞚 1237568-25-2345 -sign 瞟 1237568-237-23745 -sign 瞢 1258-36-2374568 -sign 瞤 1237568-37568-237458 -sign 矞 17-7456 -sign 矟 1756-3568-348 -sign 矤 1758-75-34 -sign 矦 175-2458 -sign 矪 175-2758-24 -sign 矬 175-78-458 -sign 矰 175-5-34568 -sign 矴 12768-36-237456 -sign 矻 12768-78-345 -sign 砅 12768-2374 -sign 砆 12768-23458 -sign 砉 12768-36-346 -sign 砍 12768-7468 -sign 砡 12768-36-237458 -sign 砬 12768-78-24 -sign 硇 12768-768-74 -sign 硤 12768-6-274 -sign 硪 12768-3768-24 -sign 碊 12768-3768-46 -sign 碔 12768-3768-7468 -sign 碤 12768-258-345 -sign 碝 12768-8-3745 -sign 碞 12768-2356-245 -sign 碟 12768-6-7456 -sign 碻 12768-56-2345 -sign 磈 12768-35-2374 -sign 磌 12768-2-2374568 -sign 磎 12768-7-2374 -sign 磕 12768-36-348 -sign 磠 12768-768-34 -sign 磡 12768-37568-2745 -sign 磦 12768-237-23745 -sign 磺 12768-2368-3458 -sign 磻 12768-375-2746 -sign 礐 178-36-27468 -sign 礰 12768-358-7468 -sign 礥 12768-76-24568 -sign 礻 12375-74 -sign 祊 12375-36-37458 -sign 祘 12375-36-23745 -sign 祛 12375-2756-3458 -sign 祧 12375-68-346 -sign 祲 2375-36-3746 -sign 禔 12375-378-7456 -sign 禕 12375-3-234 -sign 禖 12375-256-2348 -sign 禛 12375-2-2374568 -sign 禡 12375-36-34568 -sign 禩 12375-276-3458 -sign 禴 12375-78-2456 -sign 离 17-7-234 -sign 秂 1375-36-274 -sign 秇 1375-2-345 -sign 秖 1375-2-7468 -sign 稊 1375-758-346 -sign 稑 1375-2756-74 -sign 稕 1375-78-3458 -sign 稛 1375-78-37468 -sign 稞 1375-276-2348 -sign 稭 1375-56-3748 -sign 稸 1375-78-2746 -sign 穇 1375-78-245 -sign 穌 1375-23568-34 -sign 穖 1375-37-37468 -sign 穙 1375-25-274 -sign 穜 1375-2768-2346 -sign 穟 1375-3-34568 -sign 穠 1375-276-3456 -sign 穧 1375-268-748 -sign 穪 1375-3768-2374568 -sign 穵 125-68-746 -sign 穸 125-37458 -sign 窂 136-3568-24 -sign 窊 125-36-27456 -sign 窐 136-27456 -sign 窣 125-35-3456 -sign 窬 125-6-7458 -sign 窹 136-26-23456 -sign 窼 125-28-2348 -sign 竌 12768-748 -sign 竑 12768-3-3456 -sign 竧 12768-23768-24 -sign 竨 12768-378-37456 -sign 竴 12768-23568-23468 -sign 笇 12376-36-748 -sign 笽 12376-5-348 -sign 笧 12376-237458 -sign 笪 12376-5-3748 -sign 笮 12376-8-2468 -sign 笯 12376-3746 -sign 笱 12376-37568-46 -sign 筁 12376-276-46 -sign 筕 12376-78-7458 -sign 筤 12376-36-745 -sign 筦 12376-25-346 -sign 筩 12376-36-27456 -sign 筳 12376-36-2748 -sign 箐 12376-2368-234568 -sign 箑 12376-36-7456 -sign 箛 12376-358-3458 -sign 箯 12376-58-274 -sign 箵 12376-3568-2374568 -sign 箼 12376-3756-7458 -sign 篅 12376-8-3745 -sign 篊 12376-36-3458 -sign 篔 12376-76-23456 -sign 篖 12376-756-374568 -sign 篚 12376-36-374568 -sign 篪 12376-36-24568 -sign 簃 12376-375-37458 -sign 簋 12376-7-745 -sign 簎 12376-23756-23745 -sign 簏 12376-3568-456 -sign 簦 12376-2568-37456 -sign 籊 12376-3-745 -sign 籑 12376-56-745 -sign 籞 12376-758-2468 -sign 籡 12376-25-2346 -sign 籩 12376-2378-2745 -sign 籮 12376-2568-234 -sign 籯 12376-78-746 -sign 籰 12376-237568-2374568 -sign 粦 1375-34 -sign 粶 1375-3-237468 -sign 粷 1375-368-34 -sign 粿 1375-78-2348 -sign 糄 1375-36-237458 -sign 糈 1375-36-7456 -sign 糍 1375-36-374 -sign 糗 1375-237568-23458 -sign 糦 1375-2756-37468 -sign 糫 1375-36-2456 -sign 糵 1375-25-27468 -sign 紃 123-28-24 -sign 紉 123-2-2745 -sign 紒 123-58-346 -sign 紞 123-36-748 -sign 紽 123-3-23748 -sign 紾 123-5-245 -sign 絀 123-56-237458 -sign 絇 123-37568-46 -sign 絙 123-6-3748 -sign 絚 123-56-246 -sign 絪 123-3768-23458 -sign 絰 123-5-7458 -sign 絿 123-356-2374 -sign 綆 123-378-274 -sign 綈 123-758-346 -sign 綌 123-276-24 -sign 綗 123-25-37468 -sign 綝 123-238-2348 -sign 綧 123-78-3458 -sign 綪 123-2368-234568 -sign 綶 123-276-2348 -sign 綷 123-35-3456 -sign 緗 123-238-2374568 -sign 緙 123-3756-3456 -sign 緦 123-276-3468 -sign 緱 123-58-745 -sign 緹 123-378-7456 -sign 縐 123-8-374568 -sign 縗 123-36-23745 -sign 縝 123-2-2374568 -sign 縠 137-3745 -sign 縧 123-2568-2348 -sign 縬 123-2378-245 -sign 繅 123-28-2348 -sign 繳 123-36-4568 -sign 繾 123-278-246 -sign 纆 123-2368-27456 -sign 纇 135-234 -sign 纑 123-36-2746 -sign 纘 137-76-23458 -sign 纚 123-3768-456 -sign 缼 1768-36-7468 -sign 缻 1768-8-248 -sign 缾 1768-7-37456 -sign 罃 1768-78-74568 -sign 罄 1768-23768-3745 -sign 罏 1768-78-2746 -sign 罒 13-24568 -sign 罡 12568-768-234 -sign 罣 12568-25-27456 -sign 罤 12568-758-346 -sign 罭 12568-3768-45 -sign 罽 12568-36-7456 -sign 罾 12568-7-34568 -sign 羐 13568-36-24568 -sign 羖 13568-25-3745 -sign 羜 13568-25-237456 -sign 羭 13568-6-7458 -sign 翃 127568-3-3456 -sign 翏 127568-74 -sign 翣 127568-2758-27468 -sign 翥 127568-3756-3748 -sign 翯 127568-56-2345 -sign 翲 12375-27568-34 -sign 耊 13756-36-7458 -sign 耈 13756-36-374568 -sign 耎 12358-8-3745 -sign 耑 1375-745 -sign 耖 1358-3758-34568 -sign 耤 1358-378-23745 -sign 耬 1358-8-2456 -sign 耰 1358-2-7458 -sign 聦 123768-358-3468 -sign 聱 123768-7-37458 -sign 聵 123768-76-2348 -sign 肜 138-78-245 -sign 肧 138-78-27458 -sign 肸 138-68-2346 -sign 胕 138-27-23468 -sign 胘 138-78-374 -sign 胦 138-2358-345 -sign 胻 138-7458 -sign 脵 138-2-23458 -sign 脖 138-78-3456 -sign 脞 138-756-458 -sign 脤 126-5-3456 -sign 脧 138-2-274568 -sign 脬 138-3-245 -sign 腩 138-56-237468 -sign 膁 138-236-23458 -sign 䐜 138-2-2374568 -sign 膄 138-6-2345 -sign 膅 138-756-374568 -sign 䐢 138-8-374568 -sign 膘 138-237-23745 -sign 膲 138-23-74568 -sign 臃 138-2-23748 -sign 臛 138-2376-24 -sign 臤 12568-5-3746 -sign 臬 1237568-36-2348 -sign 臽 13-2745 -sign 臿 12-2-34568 -sign 舙 12356-2356-234568 -sign 舡 12758-358-24 -sign 舢 12758-75-24 -sign 舲 12758-58-3456 -sign 舴 12758-8-2468 -sign 艆 12758-56-745 -sign 艅 12758-236-374568 -sign 艋 12758-8-348 -sign 艏 12758-35-45 -sign 艜 12758-2368-7456 -sign 艣 12758-2568-2745 -sign 艽 1258-68-345 -sign 艿 1258-36-374 -sign 芃 1258-5-748 -sign 芊 1258-68-234568 -sign 芧 1368-5-7456 -sign 芨 1258-5-374 -sign 芲 1258-3-23748 -sign 芴 1258-5-468 -sign 芺 1258-5-23458 -sign 芼 1258-234568 -sign 苢 1258-25-246 -sign 苨 1258-3756-458 -sign 苷 1258-5-2456 -sign 茇 1258-356-3746 -sign 茈 1258-56-45 -sign 荔 1258-25-2745 -sign 茛 1258-78-745 -sign 茝 1258-36-24568 -sign 茰 1258-78-274 -sign 茼 1258-3768-37456 -sign 荄 1258-6-374 -sign 荗 1258-8-23748 -sign 荿 1258-23568-23748 -sign 莍 1258-356-2374 -sign 莔 1258-36-37468 -sign 莕 1258-36-23456 -sign 莛 1258-278-237458 -sign 莝 1258-756-458 -sign 菉 1258-3-237468 -sign 菐 17-274 -sign 菔 1258-26-374 -sign 菝 1258-23756-3746 -sign 菹 1258-78-34568 -sign 萏 1258-3-2745 -sign 萑 1258-78-234 -sign 萕 1258-268-748 -sign 萹 1258-36-237458 -sign 葊 1258-236-37468 -sign 葏 1258-568-27458 -sign 葑 1258-2756-27456 -sign 葒 1258-37-3458 -sign 葙 1258-238-2374568 -sign 葚 1258-2-2348 -sign 葜 1258-275-23458 -sign 葥 1258-26-2745 -sign 葶 1258-8-237456 -sign 葸 1258-276-3468 -sign 葼 1258-37568-48 -sign 蒁 1258-278-2374 -sign 蓜 1368-23568-2348 -sign 蒦 1258-23-3746 -sign 蒾 1258-2378-3745 -sign 蓏 1258-368-27456 -sign 蓓 1258-58-27468 -sign 蓧 1258-2568-2348 -sign 蓪 1258-278-27456 -sign 蓯 1258-758-7456 -sign 蓰 1258-78-7468 -sign 蓱 1258-78-37456 -sign 蓺 1258-2756-74 -sign 蓽 1258-276-248 -sign 蔌 1258-238-468 -sign 蔤 1258-25-745 -sign 蔥 1258-358-3468 -sign 蔫 1258-8-7468 -sign 蔴 1258-368-27468 -sign 蕏 1258-2358-2346 -sign 蕯 1258-268-234568 -sign 蔾 1258-25-3745 -sign 蕑 1258-37568-246 -sign 蕓 1258-2376-2345 -sign 蕞 1258-378-3746 -sign 蕡 1258-6-27458 -sign 蕢 1258-76-2348 -sign 蕻 1258-5-37456 -sign 蕽 1258-276-3456 -sign 蕿 1368-6-458 -sign 薁 1258-3768-3745 -sign 薆 1258-78-24 -sign 薓 1258-568-3746 -sign 薝 1258-8-3748 -sign 薟 1258-8-2346 -sign 薷 1258-2376-3745 -sign 薼 1258-36-27456 -sign 藇 1258-36-45 -sign 藊 1258-78-237458 -sign 藘 1258-2568-3468 -sign 藟 1258-276-2746 -sign 藦 1258-756-237456 -sign 藶 1258-358-7468 -sign 蘀 1258-23756-2746 -sign 蘑 1258-756-27468 -sign 蘞 1258-236-4568 -sign 蘡 1258-2758-746 -sign 蘧 1258-2568-34568 -sign 蘼 1258-5-74568 -sign 虀 1258-36-748 -sign 虓 12568-68-345 -sign 虖 12568-745 -sign 虯 127568-7-2468 -sign 虷 127568-5-248 -sign 虺 136-78-274568 -sign 蚍 127568-456 -sign 蚑 127568-2748 -sign 蚜 127568-5-2374568 -sign 蚨 127568-25-23458 -sign 﨡 127568-23568-234 -sign 蚱 127568-8-2468 -sign 蚳 127568-2-7468 -sign 蛁 127568-275-37468 -sign 蛃 127568-68-237458 -sign 蛑 127568-6-274568 -sign 蛕 127568-356-246 -sign 蛗 127568-25-246 -sign 蛣 127568-2756-23456 -sign 蜅 127568-8-37458 -sign 蜇 127568-23756-746 -sign 蜎 127568-25-23456 -sign 蜐 127568-2756-3458 -sign 蜓 127568-278-237458 -sign 蜙 127568-368-3458 -sign 蜟 127568-78-246 -sign 蜡 127568-378-23745 -sign 蜣 136-27568-24 -sign 蜱 127568-276-2468 -sign 蜺 127568-358-346 -sign 蜾 127568-276-2348 -sign 蝀 127568-56-23748 -sign 蝃 127568-8-3746 -sign 蝘 127568-36-374568 -sign 蝤 127568-23568-48 -sign 蝥 127568-2-7456 -sign 蝲 127568-238-2745 sign 𧏛 127568-235-23468 -sign 螧 127568-25-37456 -sign 螉 127568-358-274568 -sign 螋 127568-6-2345 -sign 螓 127568-2358-3745 -sign 螠 127568-236-348 -sign 螾 127568-25-2345 -sign 蟁 127568-23768-7468 -sign 蟎 127568-78-2374568 -sign 蟵 127568-6-37456 -sign 蟟 127568-6-3456 -sign 蟣 127568-37-37468 -sign 蟪 127568-78-274568 -sign 蟫 127568-378-3456 -sign 蟭 127568-23-74568 -sign 蠁 127568-37-745 -sign 蠃 138-36-274568 -sign 蠋 127568-5-274568 -sign 蠓 127568-78-34568 -sign 蠨 127568-275-7458 -sign 蠮 127568-37568-745 -sign 蠲 1236-5-274568 -sign 蠼 127568-23-3746 -sign 衊 138-2568-23748 -sign 衘 1758-7468 -sign 衟 1758-237568-24 -sign 衤 12375-34 -sign 衩 12375-2-3746 -sign 袠 12375-25-23458 -sign 袽 12375-2758-23456 -sign 袾 12375-36-248 -sign 裀 12375-3768-23458 -sign 裒 12375-8-2745 -sign 裑 12375-23768-24 -sign 裓 12375-3756-37468 -sign 裛 12375-3768-23748 -sign 裰 12375-8-3746 -sign 裱 12375-23758-23745 -sign 褁 12375-78-2348 -sign 襂 12375-2-245 -sign 襅 12375-276-248 -sign 襉 12375-37568-246 -sign 襢 12375-8-37468 -sign 覉 1568-2358-248 -sign 覐 1237568-78-3746 -sign 覟 1237568-2756-3468 -sign 覰 12568-237568-346 -sign 覷 1237568-2568-74568 -sign 觖 13768-6-237456 -sign 觘 13768-3758-34568 -sign 觫 13768-238-468 -sign 觱 13768-2378-74 -sign 觳 13768-36-3745 -sign 觽 13768-36-745 -sign 觿 13768-78-745 -sign 訑 1235-23746 -sign 訔 1235-745 -sign 訵 1235-68-2456 -sign 訾 1376-456 -sign 詅 1376-458 -sign 詍 1376-356-7456 -sign 詘 1376-237458 -sign 誮 1376-258-456 -sign 誐 1376-3768-24 -sign 誷 1376-3-7458 -sign 誾 137568-36-2345 -sign 諗 1235-236-3468 -sign 諼 1235-6-458 -sign 謊 1235-258-2458 -sign 謅 1235-8-374568 -sign 謜 1235-756-24 -sign 謟 1235-7-2745 -sign 謭 1235-26-2745 -sign 譃 1235-2568-74568 -sign 譞 1376-36-2456 -sign 譶 1235-235-2345 -sign 譿 1235-25-23458 -sign 讁 1235-2378-345 -sign 讋 1376-2768-3468 -sign 讔 1235-268-2456 -sign 讕 1235-37568-23748 -sign 讜 1235-78-346 -sign 讞 1376-23768-23458 -sign 谹 1276-3-3456 -sign 谽 1276-236-23456 -sign 豅 1276-2768-3468 -sign 豇 13756-358-24 -sign 豏 13756-236-23458 -sign 豔 12-276-23468 -sign 豗 13568-2-346 -sign 豩 13568-3568-74 -sign 豭 13568-7-3745 -sign 豳 13568-75-24 -sign 貓 12358-2358-74 -sign 貒 13568-375-745 -sign 貙 13568-37568-74 -sign 貛 13568-2358-24 -sign 貤 176-5-23746 -sign 賖 176-236-374568 -sign 賕 176-356-2374 -sign 賙 176-3768-27456 -sign 賰 176-2358-3748 sign 𧸐 176-234 -sign 贉 176-378-3456 -sign 赬 12368-25-37456 -sign 趄 1278-6-34568 -sign 趕 1278-78-248 -sign 趦 1278-36-7468 -sign 跆 123768-5-274 -sign 跈 123768-5-245 -sign 跙 123768-6-34568 -sign 跬 123768-36-27456 -sign 跽 123768-238-2456 -sign 踆 123768-2-274568 -sign 踔 123768-378-37456 -sign 踖 123768-378-23745 -sign 踡 123768-2358-2468 -sign 踢 123768-468 -sign 踧 123768-25-3746 -sign 踶 123768-378-7456 -sign 踹 123768-78-3745 -sign 蹋 123768-27568-34 -sign 蹔 123768-27568-746 -sign 蹢 123768-8-345 -sign 蹬 123768-2568-37456 -sign 蹭 123768-7-34568 -sign 蹯 123768-375-2746 -sign 躞 123768-5-3746 -sign 躮 123768-36-2346 -sign 躳 123768-8-237468 -sign 躵 123768-275-3468 -sign 躻 123768-25-2348 -sign 軑 12358-78-274568 -sign 軔 127568-2-2745 -sign 軹 127568-2356-2748 -sign 輀 1375-78-274568 -sign 輈 127568-2758-24 -sign 輗 127568-78-3458 -sign 轀 127568-3-348 -sign 轘 127568-2375-24 -sign 辤 1356-78-3746 -sign 辶 12378-46 -sign 迁 12378-68-234568 -sign 迆 12378-36-23746 -sign 﨤 12378-5-374 -sign 迊 12378-2368-48 -sign 迍 12378-56-27458 -sign 迓 12378-5-2374568 -sign 迕 12378-3568-45 -sign 迠 12378-2356-37456 -sign 迱 12378-36-23748 -sign 迵 12378-3768-37456 -sign 迻 12378-3758-37458 -sign 适 12378-2356-234568 -sign 逌 12378-768-45 -sign 逷 12378-378-468 -sign 遃 12378-756-245 -sign 遄 12378-375-745 -sign 遝 12378-38-34568 -sign 邅 12378-37468 -sign 邌 12378-375-468 -sign 邐 12378-3768-456 -sign 阝 1268-46 -sign 邡 1268-36-37458 -sign 邰 1268-5-274 -sign 邶 1268-56-2348 -sign 郃 1268-236-37468 -sign 郈 1268-756-23456 -sign 郜 1268-358-2458 -sign 郟 1268-6-274 -sign 郶 12768-3768-23748 -sign 鄀 1268-258-468 -sign 郫 1268-276-2468 -sign 郾 1268-78-374568 -sign 郿 1268-237568-234568 -sign 鄄 1268-56-2374 -sign 鄆 1268-36-274568 -sign 鄘 1268-756-37468 -sign 鄜 1268-3568-456 -sign 鄞 1268-8-2348 -sign 鄷 1268-276-37456 -sign 鄹 1268-78-237468 -sign 鄺 1268-756-3458 -sign 酇 1268-36-746 -sign 酗 123568-37568-48 -sign 酙 123568-56-37456 -sign 酡 123568-3-23748 -sign 酤 123568-36-3456 -sign 酴 123568-236-374568 -sign 酹 123568-3-237458 -sign 醅 123568-7-27468 -sign 醎 123568-28-7468 -sign 醨 123568-5-234 -sign 醮 123568-23-74568 -sign 醳 123568-3-2746 -sign 醶 123568-8-2346 -sign 釃 123568-78-456 -sign 釚 128-68-345 -sign 釬 128-5-248 -sign 釮 128-356-45 -sign 鈁 128-78-37458 -sign 鈊 128-3468 -sign 鈖 1236-78-248 -sign 鈳 128-237-248 -sign 鉂 128-2356-274 -sign 鉇 128-25-23746 -sign 鉊 128-275-37468 -sign 鉎 128-23568-234 -sign 鉑 128-378-24 -sign 鉙 128-2356-2748 -sign 鉠 128-2358-345 -sign 鉡 128-356-2748 -sign 鉥 128-2-2374 -sign 鉧 128-56-2748 -sign 鉨 128-36-748 -sign 鉼 128-78-37456 -sign 鉽 128-3768-34 -sign 鉿 128-236-37468 -sign 銉 128-7-27458 -sign 銍 128-5-7458 -sign 銗 128-756-23456 -sign 銙 128-56-23458 -sign 銟 128-2368-74 -sign 銧 128-78-34 -sign 銫 128-2368-24 -sign 銲 128-78-248 -sign 銿 128-3768-74 -sign 鋀 128-6-37456 -sign 鋆 128-2756-374568 -sign 鋎 128-25-346 -sign 鋐 128-36-274568 -sign 鋗 126-36-248 -sign 鋙 128-26-23456 -sign 鋥 128-2356-237458 -sign 鋧 128-237568-346 -sign 錑 128-3756-23458 -sign 鋹 128-5-37456 -sign 鋻 128-5-3746 -sign 錂 128-8-24568 -sign 錍 128-78-2468 -sign 錕 128-378-456 -sign 錝 128-25-23745 -sign 錞 128-78-3458 -sign 錧 128-25-246 -sign 錩 128-236-3748 -sign 鍇 128-56-3748 -sign 鍑 128-24568 -sign 鍗 128-2768-23468 -sign 鍚 128-78-468 -sign 鍱 128-6-7456 -sign 鍳 128-5-24568 -sign 鎡 128-25-374 -sign 鎈 128-3568-3458 -sign 鎋 128-36-237458 -sign 鎏 128-237-2458 -sign 鎞 128-456 -sign 鏱 128-2768-3456 -sign 鏁 128-28-2348 -sign 鏇 128-3758-7456 -sign 鏜 128-78-27456 -sign 鏢 128-237-23745 -sign 鏧 128-23768-3745 -sign 鐉 128-7-3458 -sign 鐏 128-23568-23468 -sign 鐖 128-37-37468 -sign 鐗 128-37568-246 -sign 鏻 128-375-34 -sign 鐲 128-5-274568 -sign 鐴 128-8-27468 -sign 鐻 128-2568-34568 -sign 鑅 128-78-2348 -sign 鑭 128-37568-23748 -sign 鑯 128-25-237468 -sign 镸 15-5-37456 -sign 镹 13756-2568-45 -sign 閌 137568-78-346 -sign 閍 137568-36-37458 -sign 閫 137568-3768-2348 -sign 閴 137568-36-746 -sign 闈 137568-3-234 -sign 阬 1268-6-346 -sign 阳 1268-36-3748 -sign 阼 1268-8-2468 -sign 陁 1268-36-23746 -sign 陡 1268-2748 -sign 隂 1268-36-3746 -sign 隚 1268-78-27456 -sign 隩 1268-3768-3745 -sign 隯 1268-78-237458 -sign 隳 1268-36-3468 -sign 隺 136-234 -sign 雘 12758-78-2458 -sign 雚 12358-24 -sign 雝 12378-36-234 -sign 霣 12376-78-23456 -sign 靁 12376-276-2746 -sign 靕 1768-2368-234568 -sign 靗 123568-78-34 -sign 靛 123568-25-7456 -sign 靪 13756-68-237456 -sign 鞖 13756-2758-748 -sign 鞚 13756-25-2348 -sign 鞞 13756-276-2468 -sign 鞢 13756-7456 -sign 鞱 13756-78-2745 -sign 鞲 13756-7-274568 -sign 鞾 13756-258-248 -sign 韌 123-78-2745 -sign 韑 137-78-34 -sign 韔 123-5-37456 -sign 韘 123-6-7456 -sign 韙 137-378-7456 -sign 韡 123-258-248 -sign 韱 123768-23768-45 -sign 頄 135-68-345 -sign 頍 135-2748 -sign 頎 135-746 -sign 頔 135-276-45 -sign 頖 135-356-2748 -sign 頣 135-5-24568 -sign 頲 135-278-237458 -sign 頳 135-36-248 -sign 頥 135-78-24568 -sign 顇 135-36-3456 -sign 顦 135-23-74568 -sign 颫 12358-27568-346 -sign 颭 12356-27568-346 -sign 颰 1356-27568-346 -sign 颷 17568-27568-346 -sign 颸 1276-27568-346 -sign 颻 128-27568-346 -sign 颿 13568-27568-346 -sign 飂 127568-27568-346 -sign 飇 127568-78-23458 -sign 飡 123568-23568-3746 -sign 飣 123568-78-237456 -sign 飥 123568-3-274 -sign 飪 123568-68-2374 -sign 飰 123568-56-748 -sign 飳 123568-237458 -sign 餈 123568-568-7468 -sign 餖 123568-6-37456 -sign 餗 123568-238-468 -sign 餚 123568-237568-348 -sign 餛 123568-36-456 -sign 餜 123568-276-2348 -sign 餱 123568-58-745 -sign 餲 123568-8-4568 -sign 餳 123568-468 -sign 餺 123568-36-237456 -sign 餻 123568-358-245 -sign 餼 123568-37568-24 -sign 饀 123568-7-2745 -sign 饁 123568-5-348 -sign 饆 123568-276-248 -sign 饍 123568-3568-23456 -sign 饎 123568-78-37468 -sign 饜 123568-756-246 -sign 饟 123568-36-237468 -sign 饠 123568-2568-234 -sign 馦 1375-36-23458 -sign 馹 13568-36-3748 -sign 馽 13568-56-346 -sign 馿 13568-25-37456 -sign 駃 13568-6-237456 -sign 駉 13568-6-37468 -sign 駔 13568-6-34568 -sign 駙 13568-27-23468 -sign 駞 13568-36-23746 -sign 駰 13568-3768-23458 -sign 駹 13568-36-245 -sign 騑 13568-5-74568 -sign 騖 13568-36-7456 -sign 騠 13568-378-7456 -sign 騶 13568-36-374568 -sign 驄 13568-358-3468 -sign 驌 13568-275-7458 -sign 骯 126-6-346 -sign 䯒 126-7458 -sign 骹 126-78-23746 sign 𩩲 1568-28-246 -sign 髆 138-5-237456 -sign 髐 126-8-27456 -sign 髒 126-258-37456 -sign 髕 138-78-746 -sign 髜 1235-378-2458 -sign 髠 13756-36-748 -sign 髥 13756-6-37468 -sign 髩 13756-25-374568 -sign 鬃 13756-25-23745 -sign 鬌 13756-78-246 -sign 鬐 13756-36-2374 -sign 鬒 13756-2-2374568 -sign 鬖 13756-2-245 -sign 鬜 13756-37568-246 -sign 鬫 137568-78-4568 -sign 鬳 12568-8-23456 -sign 鬽 135-5-245 -sign 魋 135-36-234 -sign 魣 123568-7456 -sign 魥 123568-5-374 -sign 魫 123568-78-45 -sign 魬 123568-278-7468 -sign 魳 123568-36-23468 -sign 魷 123568-8-458 -sign 鮦 123568-3756-346 -sign 鮬 123568-25-23458 -sign 鮱 123568-3756-34 sign 𩸽 123568-258-456 -sign 鮲 123568-27-23458 -sign 鮸 123568-275-346 -sign 鮾 123568-36-748 -sign 鯇 123568-25-346 -sign 鯳 123568-756-7468 -sign 鯘 123568-375-74 -sign 鯝 123568-3768-3456 -sign 鯧 123568-236-3748 -sign 鯪 123568-8-24568 -sign 鯫 123568-23768-3746 -sign 鯯 123568-23568-2745 -sign 鯺 123568-3756-3748 sign 𩺊 123568-258-2458 -sign 鯷 123568-23756-234 -sign 鰖 123568-56-374 -sign 鰘 123568-25-7458 -sign 鰙 123568-258-468 -sign 鰚 123568-25-3748 -sign 鰢 123568-25-34568 -sign 鰧 126-23568-34 -sign 鰩 123568-36-248 -sign 鰪 123568-25-3458 -sign 鰱 123568-2378-274568 -sign 鰶 123568-2375-2468 -sign 鰷 123568-2568-2348 -sign 鱅 123568-756-37468 -sign 鱜 123568-37-745 -sign 鱉 123568-36-4568 -sign 鱊 123568-78-7456 -sign 鱔 123568-78-23456 -sign 鱘 123568-2356-23468 -sign 鱛 123568-7-34568 -sign 鱝 123568-6-27458 -sign 鱟 178-23568-34 -sign 鱩 123568-2376-2746 -sign 鱪 123568-378-3748 -sign 鱫 123568-78-24 -sign 鱮 123568-36-45 -sign 鱰 123568-2568-3748 -sign 鱲 123568-2-3456 -sign 鱵 123568-36-23748 -sign 鱺 123568-3768-456 -sign 鳦 176-25-234568 -sign 鳲 13756-25-234568 -sign 鴋 13758-25-234568 -sign 鴂 123756-78-234568 -sign 鴑 12758-78-234568 -sign 鴗 12768-78-234568 -sign 鴘 127568-23568-24 -sign 鴲 1237-78-234568 -sign 鵂 1238-78-234568 -sign 鵊 127-23568-24 -sign 鵟 123758-36-234568 -sign 鵢 123768-25-234568 -sign 鵩 126-78-234568 -sign 鵫 1378-36-234568 -sign 鵶 12-36-234568 -sign 鵷 125-78-234568 -sign 鵾 156-78-234568 -sign 鶄 12368-36-234568 -sign 鶍 1378-25-234568 -sign 鶙 12368-25-234568 -sign 鶡 1568-78-234568 -sign 鶿 137-36-234568 -sign 鶵 137568-78-234568 -sign 鶹 1276-23568-24 -sign 鷃 12-23568-24 -sign 鷇 1375-23568-24 -sign 鷉 12568-78-234568 -sign 鷖 137568-23568-24 -sign 鷚 17-36-234568 -sign 鷟 175-234568 -sign 鷠 123568-234568 -sign 鷴 137568-36-234568 -sign 鸊 12768-23568-24 -sign 鸂 1237-25-234568 -sign 鸙 1256-78-234568 -sign 鸜 1258-78-234568 -sign 鸝 156-25-234568 -sign 鹻 1768-36-23458 -sign 麀 13568-3-23748 -sign 麅 13568-37568-34 -sign 麛 13568-36-7458 -sign 麨 12568-3758-34568 -sign 黟 12368-3758-37458 -sign 黧 12368-375-74 -sign 黮 12368-2-2348 -sign 黿 136-6-2374568 -sign 鼂 1378-6-2374568 -sign 鼃 12756-6-2374568 -sign 鼗 13756-36-346 -sign 鼙 13756-36-2746 -sign 鼯 12358-26-23456 -sign 鼷 12358-7-2374 -sign 鼺 12358-276-2746 -sign 鼽 1237568-68-345 -sign 齁 1276-37568-46 -sign 齅 1237568-237568-23458 -sign 齆 1237568-3768-23748 -sign 齓 1768-36-746 -sign 齕 1768-78-345 -sign 齘 1768-58-346 -sign 齝 1768-5-274 -sign 齩 1768-23746 -sign 齭 1768-3756-746 -sign 齰 1768-378-23745 -sign 齵 1768-6-2458 - -# IBM extended(NEC SJIS) kanji -sign 纊 137-756-3458 -sign 褜 12375-26-374568 -sign 鍈 128-258-345 -sign 銈 128-2756-27456 -sign 蓜 1368-23568-2348 -sign 俉 127-26-23456 -sign 炻 17568-36-27468 -sign 昱 1378-2768-24 -sign 棈 1238-2368-234568 -sign 鋹 128-5-37456 -sign 曻 1378-6-234 -sign 彅 1758-26-2745 -sign 丨 12-238-37458 -sign 仡 127-78-345 -sign 仼 127-23758-24 -sign 伀 127-8-3458 -sign 伃 127-5-7456 -sign 伹 158-6-34568 -sign 佖 127-368-46 -sign 侒 127-25-27458 -sign 侊 127-78-34 -sign 侚 127-378-24568 -sign 侔 127-6-274568 -sign 俍 127-56-745 -sign 偀 127-258-345 -sign 倢 127-78-2748 -sign 俿 127-2568-74 -sign 倞 127-78-23456 -sign 偆 127-2358-3748 -sign 偰 127-275-23458 -sign 偂 127-26-2745 -sign 傔 127-236-23458 -sign 僴 127-37568-3748 -sign 僘 127-8-2748 -sign 兊 178-8-3458 -sign 兤 178-756-3458 -sign 冝 136-6-34568 -sign 冾 1568-236-37468 -sign 凬 127568-68-24 -sign 刕 1275-5-2745 -sign 劜 1275-68-746 -sign 劦 1275-275-2745 -sign 勀 1275-356-346 -sign 勛 1275-76-23456 -sign 匀 12-374568 -sign 匇 137568-3758-24 -sign 匤 137568-36-237458 -sign 卲 1268-36-2745 -sign 厓 1756-36-27456 -sign 厲 1756-68-27468 -sign 叝 168-2756-3458 -sign 﨎 1376-78-74 -sign 咜 12356-36-23748 -sign 咊 12356-375-74 -sign 咩 12356-3568-34 -sign 哿 128-275-23456 -sign 喆 12756-2756-23456 -sign 坙 12756-78-248 -sign 坥 12756-6-34568 -sign 垬 12756-5-3458 -sign 埈 12756-36-274568 -sign 埇 12756-3768-74 -sign 﨏 12756-36-2746 -sign 塚 12756-2756-245 -sign 增 12756-2756-34568 -sign 墲 12756-27568-74568 -sign 夋 12-274568 -sign 奓 12358-3758-37458 -sign 奛 12358-378-246 -sign 奝 12358-3768-27456 -sign 奣 12-378-246 -sign 妤 12758-5-7456 -sign 妺 12758-238-46 -sign 孖 1358-36-3458 -sign 寀 125-8-23746 -sign 甯 125-3768-74 -sign 寘 125-2-2374568 -sign 寬 136-36-2374568 -sign 尞 16-3456 -sign 岦 175-2768-24 -sign 岺 175-58-3456 -sign 峵 175-36-3456 -sign 崧 175-368-3458 -sign 嵓 175-36-23456 -sign 﨑 12-75-23458 -sign 嵂 175-758-27458 -sign 嵭 175-5-37458 -sign 嶸 175-78-2348 -sign 嶹 175-23758-23468 -sign 巐 175-378-2458 -sign 弡 1758-2-24568 -sign 弴 1758-78-3458 -sign 彧 13768-36-245 -sign 德 1758-758-3456 -sign 忞 1256-78-74 -sign 恝 1256-25-2745 -sign 悅 1256-256-346 -sign 悊 1256-23756-746 -sign 惞 1256-768-746 -sign 惕 1256-378-468 -sign 愠 1256-3-348 -sign 惲 1256-36-274568 -sign 愑 1256-275-2746 -sign 愷 1256-6-745 -sign 愰 1256-78-3748 -sign 憘 1256-36-37468 -sign 戓 12-3768-45 -sign 抦 123756-68-237458 -sign 揵 123756-278-27458 -sign 摠 123756-78-3458 -sign 撝 123756-78-74568 -sign 擎 123756-37568-4568 -sign 敎 13756-3756-4568 -sign 昀 1378-2-374568 -sign 昕 1378-36-746 -sign 昉 1378-36-37458 -sign 昮 1378-358-2745 -sign 昞 1378-68-237458 -sign 昤 1378-58-3456 -sign 晥 1378-2-346 -sign 晗 1378-236-23456 -sign 晙 1378-2-274568 -sign 晴 1378-378-234568 -sign 晳 1378-78-345 -sign 暙 1378-2358-3748 -sign 暠 1378-36-2345 -sign 暲 1378-2768-3456 -sign 暿 1378-2756-37468 -sign 曺 16-2-34568 -sign 朎 126-458 -sign 朗 126-26-745 -sign 杦 1368-2568-45 -sign 枻 1238-356-7456 -sign 桒 1238-78-3456 -sign 柀 1238-5-23748 -sign 栁 1368-78-2468 -sign 桄 1238-78-34 -sign 棏 1238-758-3748 -sign 﨓 1238-56-23468 -sign 楨 1368-76-37456 -sign 﨔 1368-368-237456 -sign 榘 1238-75-24568 -sign 槢 1238-27568-3748 -sign 樰 1368-2376-234568 -sign 橫 1238-238-3458 -sign 橆 127568-238-2348 -sign 橳 1238-26-248 -sign 橾 1238-25-74 -sign 櫢 1238-36-468 -sign 櫤 1238-26-2745 -sign 毖 156-368-46 -sign 氿 1237-68-345 -sign 汜 1237-3-2348 -sign 沆 1237-6-346 -sign 汯 1237-3-3456 -sign 泚 1237-56-45 -sign 洄 1237-3768-23456 -sign 涇 1237-78-23458 -sign 浯 1237-26-23456 -sign 涖 1237-27-27468 -sign 涬 1237-2756-248 -sign 淏 1237-2-23458 -sign 淸 1568-568-234568 -sign 淲 1237-2568-74 -sign 淼 1237-237-2374 -sign 渹 1237-78-2345 -sign 湜 1237-378-7456 -sign 渧 1237-2768-23468 -sign 渼 1237-3568-23458 -sign 溿 1237-276-2748 -sign 澈 1237-78-4568 -sign 澵 1237-2768-746 -sign 濵 12-237-2346 -sign 瀅 1237-25-237458 -sign 瀇 1237-756-3458 -sign 瀨 1568-568-468 -sign 炅 1378-36-74568 -sign 炫 17568-78-374 -sign 焏 17568-2-27468 -sign 焄 17568-35-24 -sign 煜 17568-2768-24 -sign 煆 17568-7-3745 -sign 煇 17568-78-274568 -sign 燁 17568-258-248 -sign 燾 17568-23758-23468 -sign 犱 12358-2-345 -sign 犾 12358-36-23458 -sign 猤 12358-68-24568 -sign 猪 1238-2358-2346 -sign 獷 12358-756-3458 -sign 玽 123758-37568-46 -sign 珉 123758-23768-7468 -sign 珖 123758-78-34 -sign 珣 123758-378-24568 -sign 珒 123758-78-27458 -sign 琇 123758-375-374 -sign 珵 123758-2356-237458 -sign 琦 123758-2358-248 -sign 琪 123758-5-2348 -sign 琩 123758-236-3748 -sign 琮 123758-25-23745 -sign 瑢 123758-25-2746 -sign 璉 123758-2378-274568 -sign 璟 123758-23456 -sign 甁 13756-3756-248 -sign 畯 1276-2-274568 -sign 皂 1378-3-23748 -sign 皜 1378-56-2345 -sign 皞 1378-78-2348 -sign 皛 1378-378-24 -sign 皦 1378-2-4568 -sign 益 1236-236-348 -sign 睆 1237568-25-346 -sign 劯 1275-78-27468 -sign 砡 12768-36-237458 -sign 硎 12768-2375-23745 -sign 硤 12768-6-274 -sign 硺 12768-3568-74 -sign 礰 12768-358-7468 -sign 礼 12375-36-746 -sign 神 12375-2375-23468 -sign 祥 12375-2375-7456 -sign 禔 12375-378-7456 -sign 福 12375-2375-27458 -sign 禛 12375-2-2374568 -sign 竑 12768-3-3456 -sign 竧 12768-23768-24 -sign 靖 12768-2768-234568 -sign 竫 12768-3568-346 -sign 箞 12376-2358-2468 -sign 精 1375-375-234568 -sign 絈 123-378-24 -sign 絜 137-5-2745 -sign 綷 123-35-3456 -sign 綠 12368-2368-237468 -sign 緖 137-37-3748 -sign 繒 123-7-34568 -sign 罇 1768-23568-23468 -sign 羡 13568-568-7468 -sign 羽 127568-27568-34 -sign 茁 1258-56-237458 -sign 荢 1258-36-248 -sign 荿 1258-23568-23748 -sign 菇 1258-2356-3456 -sign 菶 1258-2358-37458 -sign 葈 1258-78-2348 -sign 蒴 1258-26-2748 -sign 蕓 1258-2376-2345 -sign 蕙 1368-27568-3468 -sign 蕫 1258-2768-2346 -sign 薰 1258-258-74568 -sign 﨡 127568-23568-234 -sign 蠇 127568-468 -sign 裵 12375-36-74568 -sign 訒 1235-2-2745 -sign 訷 1235-6-23468 -sign 詹 18-3748 -sign 誧 1376-8-37458 -sign 誾 137568-36-2345 -sign 諟 1235-378-7456 -sign 諸 1376-376-3748 -sign 諶 1235-2-2348 -sign 譓 1235-27568-3468 -sign 譿 1235-25-23458 -sign 賰 176-2358-3748 -sign 賴 135-35-468 -sign 贒 176-5-24568 -sign 赶 1278-5-248 -sign 﨣 1278-56-37456 -sign 軏 136-36-274568 -sign 﨤 12378-5-374 -sign 逸 1278-278-346 -sign 遧 12378-2768-3456 -sign 郞 175-75-2468 -sign 都 1268-268-2468 -sign 鄕 137-36-745 -sign 鄧 1268-2568-37456 -sign 釚 128-68-345 -sign 釗 128-25-2745 -sign 釞 128-56-274 -sign 釭 128-358-24 -sign 釮 128-356-45 -sign 釤 128-78-245 -sign 釥 128-78-34568 -sign 鈆 128-25-3458 -sign 鈐 128-236-24 -sign 鈊 128-3468 -sign 鈺 128-237458 -sign 鉀 128-68-3458 -sign 鈼 128-8-2468 -sign 鉎 128-23568-234 -sign 鉙 128-2356-2748 -sign 鉑 128-378-24 -sign 鈹 128-5-23748 -sign 鉧 128-56-2748 -sign 銧 128-78-34 -sign 鉷 128-5-3458 -sign 鉸 128-78-23746 -sign 鋧 128-237568-346 -sign 鋗 126-36-248 -sign 鋙 128-26-23456 -sign 鋐 128-36-274568 -sign 鋕 128-2756-3468 -sign 鋠 128-5-3456 -sign 鋓 128-375-2745 -sign 錥 128-78-246 -sign 錡 128-2358-248 -sign 鋻 128-5-3746 -sign 﨨 128-2756-248 -sign 錞 128-78-3458 -sign 鋿 128-8-2748 -sign 錝 128-25-23745 -sign 錂 128-8-24568 -sign 鍰 128-6-458 -sign 鍗 128-2768-23468 -sign 鎤 128-78-3748 -sign 鏆 128-56-27456 -sign 鏞 128-756-37468 -sign 鏸 128-27568-3468 -sign 鐱 128-8-2346 -sign 鑅 128-78-2348 -sign 鑈 128-3768-2374568 -sign 閒 137568-246 -sign 隆 1268-268-234568 -sign 﨩 1268-23568-745 -sign 隝 1268-78-234568 -sign 隯 1268-78-237458 -sign 霳 12376-268-234568 -sign 霻 12376-276-37456 -sign 靃 12376-234 -sign 靍 12376-78-234568 -sign 靏 12376-56-234568 -sign 靑 12368-2368-234568 -sign 靕 1768-2368-234568 -sign 顗 135-6-745 -sign 顥 135-378-23456 -sign 飯 123568-23568-7468 -sign 飼 123568-23568-458 -sign 餧 123568-375-27458 -sign 館 123568-23568-246 -sign 馞 1375-78-3456 -sign 驎 13568-375-34 -sign 髙 12-56-2345 -sign 髜 1235-378-2458 -sign 魵 123568-36-2346 -sign 魲 123568-25-37456 -sign 鮏 123568-36-234 -sign 鮱 123568-3756-34 -sign 鮻 123568-3-274568 -sign 鰀 123568-6-458 -sign 鵰 12756-25-234568 -sign 鵫 1378-36-234568 -sign 鶴 156-56-234568 -sign 鸙 1256-78-234568 -sign 黑 12368-2368-2458 -sign 纊 137-756-3458 -sign 褜 12375-26-374568 -sign 鍈 128-258-345 -sign 銈 128-2756-27456 -sign 蓜 1368-23568-2348 -sign 俉 127-26-23456 -sign 炻 17568-36-27468 -sign 昱 1378-2768-24 -sign 棈 1238-2368-234568 -sign 鋹 128-5-37456 -sign 曻 1378-6-234 -sign 彅 1758-26-2745 -sign 丨 12-238-37458 -sign 仡 127-78-345 -sign 仼 127-23758-24 -sign 伀 127-8-3458 -sign 伃 127-5-7456 -sign 伹 158-6-34568 -sign 佖 127-368-46 -sign 侒 127-25-27458 -sign 侊 127-78-34 -sign 侚 127-378-24568 -sign 侔 127-6-274568 -sign 俍 127-56-745 -sign 偀 127-258-345 -sign 倢 127-78-2748 -sign 俿 127-2568-74 -sign 倞 127-78-23456 -sign 偆 127-2358-3748 -sign 偰 127-275-23458 -sign 偂 127-26-2745 -sign 傔 127-236-23458 -sign 僴 127-37568-3748 -sign 僘 127-8-2748 -sign 兊 178-8-3458 -sign 兤 178-756-3458 -sign 冝 136-6-34568 -sign 冾 1568-236-37468 -sign 凬 127568-68-24 -sign 刕 1275-5-2745 -sign 劜 1275-68-746 -sign 劦 1275-275-2745 -sign 勀 1275-356-346 -sign 勛 1275-76-23456 -sign 匀 12-374568 -sign 匇 137568-3758-24 -sign 匤 137568-36-237458 -sign 卲 1268-36-2745 -sign 厓 1756-36-27456 -sign 厲 1756-68-27468 -sign 叝 168-2756-3458 -sign 﨎 1376-78-74 -sign 咜 12356-36-23748 -sign 咊 12356-375-74 -sign 咩 12356-3568-34 -sign 哿 128-275-23456 -sign 喆 12756-2756-23456 -sign 坙 12756-78-248 -sign 坥 12756-6-34568 -sign 垬 12756-5-3458 -sign 埈 12756-36-274568 -sign 埇 12756-3768-74 -sign 﨏 12756-36-2746 -sign 塚 12756-2756-245 -sign 增 12756-2756-34568 -sign 墲 12756-27568-74568 -sign 夋 12-274568 -sign 奓 12358-3758-37458 -sign 奛 12358-378-246 -sign 奝 12358-3768-27456 -sign 奣 12-378-246 -sign 妤 12758-5-7456 -sign 妺 12758-238-46 -sign 孖 1358-36-3458 -sign 寀 125-8-23746 -sign 甯 125-3768-74 -sign 寘 125-2-2374568 -sign 寬 136-36-2374568 -sign 尞 16-3456 -sign 岦 175-2768-24 -sign 岺 175-58-3456 -sign 峵 175-36-3456 -sign 崧 175-368-3458 -sign 嵓 175-36-23456 -sign 﨑 12-75-23458 -sign 嵂 175-758-27458 -sign 嵭 175-5-37458 -sign 嶸 175-78-2348 -sign 嶹 175-23758-23468 -sign 巐 175-378-2458 -sign 弡 1758-2-24568 -sign 弴 1758-78-3458 -sign 彧 13768-36-245 -sign 德 1758-758-3456 -sign 忞 1256-78-74 -sign 忞 1256-78-74 -sign 恝 1256-25-2745 -sign 悅 1256-256-346 -sign 悊 1256-23756-746 -sign 惞 1256-768-746 -sign 惕 1256-378-468 -sign 愠 1256-3-348 -sign 惲 1256-36-274568 -sign 愑 1256-275-2746 -sign 愷 1256-6-745 -sign 愰 1256-78-3748 -sign 憘 1256-36-37468 -sign 戓 12-3768-45 -sign 抦 123756-68-237458 -sign 揵 123756-278-27458 -sign 摠 123756-78-3458 -sign 撝 123756-78-74568 -sign 擎 123756-37568-4568 -sign 敎 13756-3756-4568 -sign 昀 1378-2-374568 -sign 昕 1378-36-746 -sign 昉 1378-36-37458 -sign 昮 1378-358-2745 -sign 昞 1378-68-237458 -sign 昤 1378-58-3456 -sign 晥 1378-2-346 -sign 晗 1378-236-23456 -sign 晙 1378-2-274568 -sign 晴 1378-378-234568 -sign 晳 1378-78-345 -sign 暙 1378-2358-3748 -sign 暠 1378-36-2345 -sign 暲 1378-2768-3456 -sign 暿 1378-2756-37468 -sign 曺 16-2-34568 -sign 朎 126-458 -sign 朗 126-26-745 -sign 杦 1368-2568-45 -sign 枻 1238-356-7456 -sign 桒 1238-78-3456 -sign 柀 1238-5-23748 -sign 栁 1368-78-2468 -sign 桄 1238-78-34 -sign 棏 1238-758-3748 -sign 﨓 1238-56-23468 -sign 楨 1368-76-37456 -sign 﨔 1368-368-237456 -sign 榘 1238-75-24568 -sign 槢 1238-27568-3748 -sign 樰 1368-2376-234568 -sign 橫 1238-238-3458 -sign 橆 127568-238-2348 -sign 橳 1238-26-248 -sign 橾 1238-25-74 -sign 櫢 1238-36-468 -sign 櫤 1238-26-2745 -sign 毖 156-368-46 -sign 氿 1237-68-345 -sign 汜 1237-3-2348 -sign 沆 1237-6-346 -sign 汯 1237-3-3456 -sign 泚 1237-56-45 -sign 洄 1237-3768-23456 -sign 涇 1237-78-23458 -sign 浯 1237-26-23456 -sign 涖 1237-27-27468 -sign 涬 1237-2756-248 -sign 淏 1237-2-23458 -sign 淸 1568-568-234568 -sign 淲 1237-2568-74 -sign 淼 1237-237-2374 -sign 渹 1237-78-2345 -sign 湜 1237-378-7456 -sign 渧 1237-2768-23468 -sign 渼 1237-3568-23458 -sign 溿 1237-276-2748 -sign 澈 1237-78-4568 -sign 澵 1237-2768-746 -sign 濵 12-237-2346 -sign 瀅 1237-25-237458 -sign 瀇 1237-756-3458 -sign 瀨 1568-568-468 -sign 炅 1378-36-74568 -sign 炫 17568-78-374 -sign 焏 17568-2-27468 -sign 焄 17568-35-24 -sign 煜 17568-2768-24 -sign 煆 17568-7-3745 -sign 煇 17568-78-274568 -sign 燁 17568-258-248 -sign 燾 17568-23758-23468 -sign 犱 12358-2-345 -sign 犾 12358-36-23458 -sign 猤 12358-68-24568 -sign 猪 1238-2358-2346 -sign 獷 12358-756-3458 -sign 玽 123758-37568-46 -sign 珉 123758-23768-7468 -sign 珖 123758-78-34 -sign 珣 123758-378-24568 -sign 珒 123758-78-27458 -sign 琇 123758-375-374 -sign 珵 123758-2356-237458 -sign 琦 123758-2358-248 -sign 琪 123758-5-2348 -sign 琩 123758-236-3748 -sign 琮 123758-25-23745 -sign 瑢 123758-25-2746 -sign 璉 123758-2378-274568 -sign 璟 123758-23456 -sign 甁 13756-3756-248 -sign 畯 1276-2-274568 -sign 皂 1378-3-23748 -sign 皜 1378-56-2345 -sign 皞 1378-78-2348 -sign 皛 1378-378-24 -sign 皦 1378-2-4568 -sign 益 1236-236-348 -sign 睆 1237568-25-346 -sign 劯 1275-78-27468 -sign 砡 12768-36-237458 -sign 硎 12768-2375-23745 -sign 硤 12768-6-274 -sign 硺 12768-3568-74 -sign 礰 12768-358-7468 -sign 礼 12375-36-746 -sign 神 12375-2375-23468 -sign 祥 12375-2375-7456 -sign 禔 12375-378-7456 -sign 福 12375-2375-27458 -sign 禛 12375-2-2374568 -sign 竑 12768-3-3456 -sign 竧 12768-23768-24 -sign 靖 12768-2768-234568 -sign 竫 12768-3568-346 -sign 箞 12376-2358-2468 -sign 精 1375-375-234568 -sign 絈 123-378-24 -sign 絜 137-5-2745 -sign 綷 123-35-3456 -sign 綠 12368-2368-237468 -sign 緖 137-37-3748 -sign 繒 123-7-34568 -sign 罇 1768-23568-23468 -sign 羡 13568-568-7468 -sign 羽 127568-27568-34 -sign 茁 1258-56-237458 -sign 荢 1258-36-248 -sign 荿 1258-23568-23748 -sign 菇 1258-2356-3456 -sign 菶 1258-2358-37458 -sign 葈 1258-78-2348 -sign 蒴 1258-26-2748 -sign 蕓 1258-2376-2345 -sign 蕙 1368-27568-3468 -sign 蕫 1258-2768-2346 -sign 薰 1258-258-74568 -sign 﨡 127568-23568-234 -sign 蠇 127568-468 -sign 裵 12375-36-74568 -sign 訒 1235-2-2745 -sign 訷 1235-6-23468 -sign 詹 18-3748 -sign 誧 1376-8-37458 -sign 誾 137568-36-2345 -sign 諟 1235-378-7456 -sign 諸 1376-376-3748 -sign 諶 1235-2-2348 -sign 譓 1235-27568-3468 -sign 譿 1235-25-23458 -sign 賰 176-2358-3748 -sign 賴 135-35-468 -sign 贒 176-5-24568 -sign 赶 1278-5-248 -sign 﨣 1278-56-37456 -sign 軏 136-36-274568 -sign 﨤 12378-5-374 -sign 逸 1278-278-346 -sign 遧 12378-2768-3456 -sign 郞 175-75-2468 -sign 都 1268-268-2468 -sign 鄕 137-36-745 -sign 鄧 1268-2568-37456 -sign 釚 128-68-345 -sign 釗 128-25-2745 -sign 釗 128-25-2745 -sign 釞 128-56-274 -sign 釭 128-358-24 -sign 釮 128-356-45 -sign 釤 128-78-245 -sign 釥 128-78-34568 -sign 鈆 128-25-3458 -sign 鈐 128-236-24 -sign 鈊 128-3468 -sign 鈺 128-237458 -sign 鉀 128-68-3458 -sign 鈼 128-8-2468 -sign 鉎 128-23568-234 -sign 鉙 128-2356-2748 -sign 鉑 128-378-24 -sign 鈹 128-5-23748 -sign 鉧 128-56-2748 -sign 銧 128-78-34 -sign 鉷 128-5-3458 -sign 鉸 128-78-23746 -sign 鋧 128-237568-346 -sign 鋗 126-36-248 -sign 鋙 128-26-23456 -sign 鋐 128-36-274568 -sign 鋕 128-2756-3468 -sign 鋠 128-5-3456 -sign 鋓 128-375-2745 -sign 錥 128-78-246 -sign 錡 128-2358-248 -sign 鋻 128-5-3746 -sign 﨨 128-2756-248 -sign 錞 128-78-3458 -sign 鋿 128-8-2748 -sign 錝 128-25-23745 -sign 錂 128-8-24568 -sign 鍰 128-6-458 -sign 鍗 128-2768-23468 -sign 鎤 128-78-3748 -sign 鏆 128-56-27456 -sign 鏞 128-756-37468 -sign 鏸 128-27568-3468 -sign 鐱 128-8-2346 -sign 鑅 128-78-2348 -sign 鑈 128-3768-2374568 -sign 閒 137568-246 -sign 隆 1268-268-234568 -sign 﨩 1268-23568-745 -sign 隝 1268-78-234568 -sign 隯 1268-78-237458 -sign 霳 12376-268-234568 -sign 霻 12376-276-37456 -sign 靃 12376-234 -sign 靍 12376-78-234568 -sign 靏 12376-56-234568 -sign 靑 12368-2368-234568 -sign 靕 1768-2368-234568 -sign 顗 135-6-745 -sign 顥 135-378-23456 -sign 飯 123568-23568-7468 -sign 飼 123568-23568-458 -sign 餧 123568-375-27458 -sign 館 123568-23568-246 -sign 馞 1375-78-3456 -sign 驎 13568-375-34 -sign 髙 12-56-2345 -sign 髜 1235-378-2458 -sign 魵 123568-36-2346 -sign 魲 123568-25-37456 -sign 鮏 123568-36-234 -sign 鮱 123568-3756-34 -sign 鮻 123568-3-274568 -sign 鰀 123568-6-458 -sign 鵰 12756-25-234568 -sign 鵫 1378-36-234568 -sign 鶴 156-56-234568 -sign 鸙 1256-78-234568 -sign 黑 12368-2368-2458 -sign 褱 12-2456 -sign 嗃 12356-36-2345 -sign 吡 12356-36-456 -sign 婞 12578-2567-248 -sign 鋮 128-23568-23478 -sign \x525d 235678-235678-235678 # I'm not sure this kanji is assigned -#end Kanji - -#begin character class rules -attribute katakana アイウエオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモヤユヨラリルレロヮワヰヱヲンヴーヵヶァィゥェォャュョ -attribute hiragana あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらいるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽっ -attribute alphabet abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ -attribute loweralphabet abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz -attribute alphanum 12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ -attribute upperkantenji 糸家言頁月分性口十比宿亜参丸褱巤元維繰絵紣絹縮今倉会含唖唯品唁額吟唸単古兄味雄賑有唇才克韓售噪囂嗃叶吡寥褱与写上中高首甘宙離計君絡官卒顔誰憧寮論雌説彙頒頑惰寂惨紛悟悦窃客壱完究里丼凸穴膨 - -#begin Katakana rules -# Katakana characters are indicated with Katakana opening dots367 and closing dots37. -# Some Katakana combinations cannot be properly indicated. -# For example, after small Katakana "ァィゥェオャュョ" -# because they are defined with "always". -noback context `["ー"]%space @367-36-37 -noback context `["ー"]%hiragana @367-36-37 - -noback context `["ア"]%space @367-2-37 -noback context `["イ"]%space @367-23-37 -noback context `["ウ"]%space @367-25-37 -noback context `["エ"]%space @367-235-37 -noback context `["オ"]%space @367-35-37 -noback context `["カ"]%space @367-28-37 -noback context `["キ"]%space @367-238-37 -noback context `["ク"]%space @367-258-37 -noback context `["ケ"]%space @367-2358-37 -noback context `["コ"]%space @367-358-37 -noback context `["ガ"]%space @367-6-28-37 -noback context `["ギ"]%space @367-6-238-37 -noback context `["グ"]%space @367-6-258-37 -noback context `["ゲ"]%space @367-6-2358-37 -noback context `["ゴ"]%space @367-6-358-37 - -noback context `["サ"]%space @367-268-37 -noback context `["シ"]%space @367-2368-37 -noback context `["ス"]%space @367-2568-37 -noback context `["セ"]%space @367-23568-37 -noback context `["ソ"]%space @367-3568-37 -noback context `["ザ"]%space @367-6-268-37 -noback context `["ジ"]%space @367-6-2368-37 -noback context `["ズ"]%space @367-6-2568-37 -noback context `["ゼ"]%space @367-6-23568-37 -noback context `["ゾ"]%space @367-6-3568-37 - -noback context `["タ"]%space @367-267-37 -noback context `["チ"]%space @367-2367-37 -noback context `["ツ"]%space @367-2567-37 -noback context `["テ"]%space @367-23567-37 -noback context `["ト"]%space @367-3567-37 -noback context `["ダ"]%space @367-6-267-37 -noback context `["ヂ"]%space @367-6-2367-37 -noback context `["ヅ"]%space @367-6-2567-37 -noback context `["デ"]%space @367-6-23567-37 -noback context `["ド"]%space @367-6-3567-37 - -noback context `["ナ"]%space @367-27-37 -noback context `["ニ"]%space @367-237-37 -noback context `["ヌ"]%space @367-257-37 -noback context `["ネ"]%space @367-2357-37 -noback context `["ノ"]%space @367-357-37 - -noback context `["ハ"]%space @367-278-37 -noback context `["ヒ"]%space @367-2378-37 -noback context `["フ"]%space @367-2578-37 -noback context `["ヘ"]%space @367-23578-37 -noback context `["ホ"]%space @367-3578-37 -noback context `["バ"]%space @367-6-278-37 -noback context `["ビ"]%space @367-6-2378-37 -noback context `["ブ"]%space @367-6-2578-37 -noback context `["ベ"]%space @367-6-23578-37 -noback context `["ボ"]%space @367-6-3578-37 -noback context `["パ"]%space @367-8-278-37 -noback context `["ピ"]%space @367-8-2378-37 -noback context `["プ"]%space @367-8-2578-37 -noback context `["ペ"]%space @367-8-23578-37 -noback context `["ポ"]%space @367-8-3578-37 - -noback context `["マ"]%space @367-2678-37 -noback context `["ミ"]%space @367-23678-37 -noback context `["ム"]%space @367-25678-37 -noback context `["メ"]%space @367-235678-37 -noback context `["モ"]%space @367-35678-37 - -noback context `["ヤ"]%space @367-57-37 -noback context `["ユ"]%space @367-578-37 -noback context `["ヨ"]%space @367-567-37 - -noback context `["ラ"]%space @367-26-37 -noback context `["リ"]%space @367-236-37 -noback context `["ル"]%space @367-256-37 -noback context `["レ"]%space @367-2356-37 -noback context `["ロ"]%space @367-356-37 - -noback context `["ワ"]%space @367-7-37 -noback context `["ヲ"]%space @367-67-37 -noback context `["ン"]%space @367-678-37 - -noback context `["ア"]%hiragana @367-2-37 -noback context `["イ"]%hiragana @367-23-37 -noback context `["ウ"]%hiragana @367-25-37 -noback context `["エ"]%hiragana @367-235-37 -noback context `["オ"]%hiragana @367-35-37 -noback context `["カ"]%hiragana @367-28-37 -noback context `["キ"]%hiragana @367-238-37 -noback context `["ク"]%hiragana @367-258-37 -noback context `["ケ"]%hiragana @367-2358-37 -noback context `["コ"]%hiragana @367-358-37 -noback context `["ガ"]%hiragana @367-6-28-37 -noback context `["ギ"]%hiragana @367-6-238-37 -noback context `["グ"]%hiragana @367-6-258-37 -noback context `["ゲ"]%hiragana @367-6-2358-37 -noback context `["ゴ"]%hiragana @367-6-358-37 - -noback context `["サ"]%hiragana @367-268-37 -noback context `["シ"]%hiragana @367-2368-37 -noback context `["ス"]%hiragana @367-2568-37 -noback context `["セ"]%hiragana @367-23568-37 -noback context `["ソ"]%hiragana @367-3568-37 -noback context `["ザ"]%hiragana @367-6-268-37 -noback context `["ジ"]%hiragana @367-6-2368-37 -noback context `["ズ"]%hiragana @367-6-2568-37 -noback context `["ゼ"]%hiragana @367-6-23568-37 -noback context `["ゾ"]%hiragana @367-6-3568-37 - -noback context `["タ"]%hiragana @367-267-37 -noback context `["チ"]%hiragana @367-2367-37 -noback context `["ツ"]%hiragana @367-2567-37 -noback context `["テ"]%hiragana @367-23567-37 -noback context `["ト"]%hiragana @367-3567-37 -noback context `["ダ"]%hiragana @367-6-267-37 -noback context `["ヂ"]%hiragana @367-6-2367-37 -noback context `["ヅ"]%hiragana @367-6-2567-37 -noback context `["デ"]%hiragana @367-6-23567-37 -noback context `["ド"]%hiragana @367-6-3567-37 - -noback context `["ナ"]%hiragana @367-27-37 -noback context `["ニ"]%hiragana @367-237-37 -noback context `["ヌ"]%hiragana @367-257-37 -noback context `["ネ"]%hiragana @367-2357-37 -noback context `["ノ"]%hiragana @367-357-37 - -noback context `["ハ"]%hiragana @367-278-37 -noback context `["ヒ"]%hiragana @367-2378-37 -noback context `["フ"]%hiragana @367-2578-37 -noback context `["ヘ"]%hiragana @367-23578-37 -noback context `["ホ"]%hiragana @367-3578-37 -noback context `["バ"]%hiragana @367-6-278-37 -noback context `["ビ"]%hiragana @367-6-2378-37 -noback context `["ブ"]%hiragana @367-6-2578-37 -noback context `["ベ"]%hiragana @367-6-23578-37 -noback context `["ボ"]%hiragana @367-6-3578-37 -noback context `["パ"]%hiragana @367-8-278-37 -noback context `["ピ"]%hiragana @367-8-2378-37 -noback context `["プ"]%hiragana @367-8-2578-37 -noback context `["ペ"]%hiragana @367-8-23578-37 -noback context `["ポ"]%hiragana @367-8-3578-37 - -noback context `["マ"]%hiragana @367-2678-37 -noback context `["ミ"]%hiragana @367-23678-37 -noback context `["ム"]%hiragana @367-25678-37 -noback context `["メ"]%hiragana @367-235678-37 -noback context `["モ"]%hiragana @367-35678-37 - -noback context `["ヤ"]%hiragana @367-57-37 -noback context `["ユ"]%hiragana @367-578-37 -noback context `["ヨ"]%hiragana @367-567-37 - -noback context `["ラ"]%hiragana @367-26-37 -noback context `["リ"]%hiragana @367-236-37 -noback context `["ル"]%hiragana @367-256-37 -noback context `["レ"]%hiragana @367-2356-37 -noback context `["ロ"]%hiragana @367-356-37 - -noback context `["ワ"]%hiragana @367-7-37 -noback context `["ヲ"]%hiragana @367-67-37 -noback context `["ン"]%hiragana @367-678-37 - -noback context ["ウィ"]%hiragana @38-23-37 -noback context ["ウェ"]%hiragana @38-235-37 -noback context ["ウォ"]%hiragana @38-35-37 -noback context ["キャ"]%hiragana @5-28-37 -noback context ["キュ"]%hiragana @5-258-37 -noback context ["キョ"]%hiragana @5-358-37 -noback context ["ギャ"]%hiragana @56-28-37 -noback context ["ギュ"]%hiragana @56-258-37 -noback context ["ギョ"]%hiragana @56-358-37 -noback context ["シャ"]%hiragana @5-268-37 -noback context ["シュ"]%hiragana @5-2568-37 -noback context ["ショ"]%hiragana @5-3568-37 -noback context ["ジャ"]%hiragana @56-268-37 -noback context ["ジュ"]%hiragana @56-2568-37 -noback context ["ジョ"]%hiragana @56-3568-37 -noback context ["シェ"]%hiragana @5-23568-37 -noback context ["ジェ"]%hiragana @56-23568-37 -noback context ["シャ"]~ @5-268-37 -noback context ["シュ"]~ @5-2568-37 -noback context ["ショ"]~ @5-3568-37 -noback context ["ジャ"]~ @56-268-37 -noback context ["ジュ"]~ @56-2568-37 -noback context ["ジョ"]~ @56-3568-37 -noback context ["シェ"]~ @5-23568-37 -noback context ["ジェ"]~ @56-23568-37 - -noback context ["チャ"]%hiragana @5-267-37 -noback context ["チュ"]%hiragana @5-2567-37 -noback context ["チョ"]%hiragana @5-3567-37 -noback context ["チェ"]%hiragana @5-23567-37 -noback context ["ティ"]%hiragana @5-2367-37 -noback context ["ディ"]%hiragana @56-2367-37 -noback context ["トゥ"]%hiragana @38-2567-37 -noback context ["ドゥ"]%hiragana @368-2567-37 -noback context ["チャ"]~ @5-267-37 -noback context ["チュ"]~ @5-2567-37 -noback context ["チョ"]~ @5-3567-37 -noback context ["チェ"]~ @5-23567-37 -noback context ["ティ"]~ @5-2367-37 -noback context ["ディ"]~ @56-2367-37 -noback context ["トゥ"]~ @38-2567-37 -noback context ["ドゥ"]~ @368-2567-37 - -noback context ["ニャ"]%hiragana @5-27-37 -noback context ["ニュ"]%hiragana @5-257-37 -noback context ["ニョ"]%hiragana @5-357-37 -noback context ["ニャ"]~ @5-27-37 -noback context ["ニュ"]~ @5-257-37 -noback context ["ニョ"]~ @5-357-37 - -noback context ["ヒャ"]%hiragana @5-278-37 -noback context ["ヒュ"]%hiragana @5-2578-37 -noback context ["ヒョ"]%hiragana @5-3578-37 -noback context ["ヒャ"]~ @5-278-37 -noback context ["ヒュ"]~ @5-2578-37 -noback context ["ヒョ"]~ @5-3578-37 - -noback context `["ファ"]~ @38-278-37 -noback context ["ファ"]%hiragana @38-278-37 -noback context `["フィ"]~ @38-2378-37 -noback context ["フィ"]%hiragana @38-2378-37 - -noback context `["フォ"]~ @38-3578-37 -noback context ["フォ"]%hiragana @38-3578-37 - -noback context `[]%katakana @367 -noback context %katakana[]~ @37 -noback context %katakana[]!%katakana @37 -noback context !%katakana[]%katakana @367 -#end Katakana rules - -#begin alphabet rules -noback context %loweralphabet[]%katakana @0 -noback context %space[]%lowercase @68 -noback context `[]%lowercase @68 -noback context %alphabet[]%sign @0 - -noback context "a"[]%katakana @0-367 -noback context "b"[]%katakana @0-367 -noback context "c"[]%katakana @0-367 -noback context "d"[]%katakana @0-367 -noback context "e"[]%katakana @0-367 -noback context "f"[]%katakana @0-367 -noback context "g"[]%katakana @0-367 -noback context "h"[]%katakana @0-367 -noback context "i"[]%katakana @0-367 -noback context "j"[]%katakana @0-367 -noback context "k"[]%katakana @0-367 -noback context "l"[]%katakana @0-367 -noback context "m"[]%katakana @0-367 -noback context "n"[]%katakana @0-367 -noback context "o"[]%katakana @0-367 -noback context "p"[]%katakana @0-367 -noback context "q"[]%katakana @0-367 -noback context "r"[]%katakana @0-367 -noback context "s"[]%katakana @0-367 -noback context "t"[]%katakana @0-367 -noback context "u"[]%katakana @0-367 -noback context "v"[]%katakana @0-367 -noback context "w"[]%katakana @0-367 -noback context "x"[]%katakana @0-367 -noback context "y"[]%katakana @0-367 -noback context "z"[]%katakana @0-367 - -noback context "A"[]%katakana @0-367 -noback context "B"[]%katakana @0-367 -noback context "C"[]%katakana @0-367 -noback context "D"[]%katakana @0-367 -noback context "E"[]%katakana @0-367 -noback context "F"[]%katakana @0-367 -noback context "G"[]%katakana @0-367 -noback context "H"[]%katakana @0-367 -noback context "I"[]%katakana @0-367 -noback context "J"[]%katakana @0-367 -noback context "K"[]%katakana @0-367 -noback context "L"[]%katakana @0-367 -noback context "M"[]%katakana @0-367 -noback context "N"[]%katakana @0-367 -noback context "O"[]%katakana @0-367 -noback context "P"[]%katakana @0-367 -noback context "Q"[]%katakana @0-367 -noback context "R"[]%katakana @0-367 -noback context "S"[]%katakana @0-367 -noback context "T"[]%katakana @0-367 -noback context "U"[]%katakana @0-367 -noback context "V"[]%katakana @0-367 -noback context "W"[]%katakana @0-367 -noback context "X"[]%katakana @0-367 -noback context "Y"[]%katakana @0-367 -noback context "Z"[]%katakana @0-367 - -noback context "a"[]%katakana @0-367 -noback context "b"[]%katakana @0-367 -noback context "c"[]%katakana @0-367 -noback context "d"[]%katakana @0-367 -noback context "e"[]%katakana @0-367 -noback context "f"[]%katakana @0-367 -noback context "g"[]%katakana @0-367 -noback context "h"[]%katakana @0-367 -noback context "i"[]%katakana @0-367 -noback context "j"[]%katakana @0-367 -noback context "k"[]%katakana @0-367 -noback context "l"[]%katakana @0-367 -noback context "m"[]%katakana @0-367 -noback context "n"[]%katakana @0-367 -noback context "o"[]%katakana @0-367 -noback context "p"[]%katakana @0-367 -noback context "q"[]%katakana @0-367 -noback context "r"[]%katakana @0-367 -noback context "s"[]%katakana @0-367 -noback context "t"[]%katakana @0-367 -noback context "u"[]%katakana @0-367 -noback context "v"[]%katakana @0-367 -noback context "w"[]%katakana @0-367 -noback context "x"[]%katakana @0-367 -noback context "y"[]%katakana @0-367 -noback context "z"[]%katakana @0-367 -noback context "A"[]%katakana @0-367 -noback context "B"[]%katakana @0-367 -noback context "C"[]%katakana @0-367 -noback context "D"[]%katakana @0-367 -noback context "E"[]%katakana @0-367 -noback context "F"[]%katakana @0-367 -noback context "G"[]%katakana @0-367 -noback context "H"[]%katakana @0-367 -noback context "I"[]%katakana @0-367 -noback context "J"[]%katakana @0-367 -noback context "K"[]%katakana @0-367 -noback context "L"[]%katakana @0-367 -noback context "M"[]%katakana @0-367 -noback context "N"[]%katakana @0-367 -noback context "O"[]%katakana @0-367 -noback context "P"[]%katakana @0-367 -noback context "Q"[]%katakana @0-367 -noback context "R"[]%katakana @0-367 -noback context "S"[]%katakana @0-367 -noback context "T"[]%katakana @0-367 -noback context "U"[]%katakana @0-367 -noback context "V"[]%katakana @0-367 -noback context "W"[]%katakana @0-367 -noback context "X"[]%katakana @0-367 -noback context "Y"[]%katakana @0-367 -noback context "Z"[]%katakana @0-367 - -noback context %sign[]%loweralphabet @68 -noback context %punctuation[]%loweralphabet @68 - -noback context !%alphabet["@"] @68-358 -noback context ["@"]!%alphabet @68-358 -noback context !%alphanum["/"] @568-57 -noback context !%alphanum[":"] @6-3 -#end alphabet rules - -#begin numbers rules -noback context %digit[]%alphabet @68 -#end numbers rules - -#begin Kanji rules -# upper dots Kantenji, with no dots7-8, are preceded with dot8 when they are at the beginning of the line or after a space. -# If with no preceding dot8, it's confusing telling dots123456 ⠿ from dots235678 ⣶. -noback context `[]%upperkantenji @8 -noback context %space[]%upperkantenji @8 -#end Kanji rules - -#end character class rules diff --git a/braille/translate/src/phone/tables/kannada.cti b/braille/translate/src/phone/tables/kannada.cti index 6edd0c765..6ce001d87 100644 --- a/braille/translate/src/phone/tables/kannada.cti +++ b/braille/translate/src/phone/tables/kannada.cti @@ -1,6 +1,7 @@ # This table contains braille codes and rules for Kannada script. # # Copyright (C) 2014 National Institute for Visually Handicapped, 116, Rajpur Road, Dehradun, Uttrakhand, India +# Copyright (C) 2024 Compass Braille, UK. # # This file is part of liblouis. # @@ -19,28 +20,36 @@ # . # This table is built and maintained under an activity of Braille Council of India -# Contributors: Dipendra Manocha, Sreeja, Dinesh Kaushal, Mesar Hameed -# Last updated on May 5, 2014 -# To report any bugs or any suggestion, please write to d@saksham.org and sreeja.param@gmail.com +# Contributors: Dipendra Manocha, Sreeja, Dinesh Kaushal, Mesar Hameed, Jake Kyle +# Updated 4th March 2024 by Jake Kyle of Compass Braille, UK, at the request of +# Dipendra Manocha in accordance with new rules published by the Braille Council +# of India in document entitled: +# "Revised Bharati Braille Kannada Alphabet Chart With Unicode" +# (see ) +# To report any bugs or any suggestion, please write to d@saksham.org, sreeja.param@gmail.com +# or jake@compassbraille.org include braille-patterns.cti -# generated by ttbtest -# vowels - +# signs letter \x0C82 56 # KANNADA SIGN ANUSVARA letter \x0C83 6 # KANNADA SIGN VISARGA +letter \x0CBC 5 # KANNADA SIGN NUKTA +noback letter \x0CBD 2 # KANNADA SIGN AVAGRAHA - not in common use, dot 2 more likely comma in backtranslation + +# vowels letter \x0C85 1 # KANNADA LETTER A letter \x0C86 345 # KANNADA LETTER AA letter \x0C87 24 # KANNADA LETTER I letter \x0C88 35 # KANNADA LETTER II letter \x0C89 136 # KANNADA LETTER U -letter \x0C8A 14 # KANNADA LEETER UU +letter \x0C8A 1256 # KANNADA LEETER UU letter \x0C8B 5-1235 # KANNADA LETTER VOCALIC R +letter \x0CE0 6-1235 # KANNADA LETTER VOCALIC RR letter \x0C8E 26 # KANNADA LETTER E letter \x0C8F 15 # KANNADA LETTER EE letter \x0C90 34 # KANNADA LETTER AI -letter \x0C92 346 # KANNADA LETTER O +letter \x0C92 1346 # KANNADA LETTER O letter \x0C93 135 # KANNADA LETTER OO letter \x0C94 246 # KANNADA LETTER AU @@ -64,7 +73,7 @@ letter \x0C9F 23456 # KANNADA LETTER TTA letter \x0CA0 2456 # KANNADA LETTER TTHA letter \x0CA1 1246 # KANNADA LETTER DDA letter \x0CA2 123456 # KANNADA LETTER DDHA -letter \x0CA3 3456 # KANNADA LETTER NNA +noback letter \x0CA3 3456 # KANNADA LETTER NNA - same dots as number sign so extra passes needed for backtranslation - see below letter \x0CA4 2345 # KANNADA LETTER TA letter \x0CA5 1456 # KANNADA LETTER THA @@ -76,10 +85,11 @@ letter \x0CAA 1234 # KANNADA LETTER PA letter \x0CAB 235 # KANNADA LETTER PHA letter \x0CAC 12 # KANNADA LETTER BA letter \x0CAD 45 # KANNADA LETTER BHA -letter \x0CAE 135 # KANNADA LETTER MA +letter \x0CAE 134 # KANNADA LETTER MA letter \x0CAF 13456 # KANNADA LETTER YA letter \x0CB0 1235 # KANNADA LETTER RA +letter \x0CB1 12456 # KANNADA LETTER RRA - not in common use letter \x0CB2 123 # KANNADA LETTER LA letter \x0CB3 456 # KANNADA LETTER LLA letter \x0CB5 1236 # KANNADA LETTER VA @@ -88,6 +98,7 @@ letter \x0CB7 12346 # KANNADA LETTER SSA letter \x0CB8 234 # KANNADA LETTER SA letter \x0CB9 125 # KANNADA LETTER HA +# vowel signs letter \x0CBE 345 # KANNADA VOWEL SIGN AA letter \x0CBF 24 # KANNADA VOWEL SIGN I letter \x0CC0 35 # KANNADA VOWEL SIGN II = OCBF ? 0CD5 ? @@ -101,10 +112,34 @@ letter \x0CC8 34 # KANNADA VOWEL SIGN AI = 0CC6 ? 0CD6 ? letter \x0CCA 1346 # KANNADA VOWEL SIGN O = 0CC6 ? 0CD6 ? letter \x0CCB 135 # KANNADA VOWEL SIGN OO = 0CCA ? 0CD5 ? letter \x0CCC 246 # KANNADA VOWEL SIGN AU -letter \x0CCD 4 # KANNADA SIGN VIRAMA (PREFERRED NAME IS HALANT -#digits +letter \x0CCD 4 # KANNADA SIGN VIRAMA (PREFERRED NAME IS HALANT) +noback letter \x0CDE 5-456 # KANNADA LETTER FA (OBSOLETE HISTORIC LETTER) AND (NAME IS A MISTAKE FOR LLLA) + +letter \x20B9 4-1235-136 # INDIAN RUPEE SIGN +# Use custom characters and virtual dots to help with back translation. + +# 3456 is letter 'NNA' and the number sign. +letter \xE020 9a # custom character set to virtual dot pattern to use in pass2 of backtranslation +nofor pass2 $l[@3456] @9a # if 3456 in middle of word, change to virtual dot otherwise it will be number sign. +nofor correct "\xE020" "\x0CA3" # correct custom character to 'NNA' after backtranslation + +# 124 can be digit 6 if part of a number or the contraction for sound FA. +letter \xE021 124 # custom character set to 124. Where 124 cannot be number 6, 124 will backtranslate to this character. +nofor correct "\xE021" "\x0CAB\x0CBC" # correct custom character to 'FA' after backtranslation + +#digits +digit \x0CE6 245 # KANNADA DIGIT ZERO +digit \x0CE7 1 # KANNADA DIGIT ONE +digit \x0CE8 12 # KANNADA DIGIT TWO +digit \x0CE9 14 # KANNADA DIGIT THREE +digit \x0CEA 145 # KANNADA DIGIT FOUR +digit \x0CEB 15 # KANNADA DIGIT FIVE +digit \x0CEC 124 # KANNADA DIGIT SIX +digit \x0CED 1245 # KANNADA DIGIT SEVEN +digit \x0CEE 125 # KANNADA DIGIT EIGHT +digit \x0CEF 24 # KANNADA DIGIT NINE litdigit \x0CE6 245 # KANNADA DIGIT ZERO litdigit \x0CE7 1 # KANNADA DIGIT ONE litdigit \x0CE8 12 # KANNADA DIGIT TWO @@ -146,7 +181,7 @@ always \x0CAA\x0CCD 4-1234 # KANNADA LETTER PA always \x0CAB\x0CCD 4-235 # KANNADA LETTER PHA always \x0CAC\x0CCD 4-12 # KANNADA LETTER BA always \x0CAD\x0CCD 4-45 # KANNADA LETTER BHA -always \x0CAE\x0CCD 4-135 # KANNADA LETTER MA +always \x0CAE\x0CCD 4-134 # KANNADA LETTER MA always \x0CAF\x0CCD 4-13456 # KANNADA LETTER YA always \x0CB0\x0CCD 4-1235 # KANNADA LETTER RA @@ -160,11 +195,47 @@ always \x0CB9\x0CCD 4-125 # KANNADA LETTER HA always \x0CC4\x0CCD 4-6-1235 # KANNADA VOWEL SIGN VOCALIC RR #ksha and gya - - -always \x0C95\x0CCD\x0CB7\x0CCD 4-12345 #ksha -always \x0C9C\x0CCD\x0C9E 156 #gya -always \x0C95\x0CCD\x0CB7 12345 #ksha +always \x0C95\x0CCD\x0CB7\x0CCD 4-12345 #ksha +always \x0C95\x0CCD\x0CB7 12345 #ksha +always \x0C9C\x0CCD\x0C9E\x0CCD 4-156 #gya +always \x0C9C\x0CCD\x0C9E 156 #gya + +# za +always \x0C9C\x0CBC 1356 + +# fa +noback always \x0CAB\x0CBC 124 # needs special treatment to backtranslate, see above. + +# To ensure correct form of vowel (letter or sign) in backtranslation +# if beginning of word: letters +sufword \x0C85 1 # KANNADA LETTER A +sufword \x0C86 345 # KANNADA LETTER AA +sufword \x0C87 24 # KANNADA LETTER I +sufword \x0C88 35 # KANNADA LETTER II +sufword \x0C89 136 # KANNADA LETTER U +sufword \x0C8A 1256 # KANNADA LEETER UU +sufword \x0C8B 5-1235 # KANNADA LETTER VOCALIC R +sufword \x0CE0 6-1235 # KANNADA LETTER VOCALIC RR +sufword \x0C8E 26 # KANNADA LETTER E +sufword \x0C8F 15 # KANNADA LETTER EE +sufword \x0C90 34 # KANNADA LETTER AI +sufword \x0C92 1346 # KANNADA LETTER O +sufword \x0C93 135 # KANNADA LETTER OO +sufword \x0C94 246 # KANNADA LETTER AU +# otherwise: signs +always \x0CBE 345 # KANNADA VOWEL SIGN AA +always \x0CBF 24 # KANNADA VOWEL SIGN I +always \x0CC0 35 # KANNADA VOWEL SIGN II = OCBF ? 0CD5 ? +always \x0CC1 136 # KANNADA VOWEL SIGN U +always \x0CC2 1256 # KANNADA VOWEL SIGN UU +always \x0CC3 5-1235 # KANNADA VOWEL SIGN VOCALIC R +always \x0CC4 6-1235 # KANNADA VOWEL SIGN VOCALIC RR +always \x0CC6 26 # KANNADA VOWEL SIGN E +always \x0CC7 15 # KANNADA VOWEL SIGN EE = 0CC6 ? 0CD5 ? +always \x0CC8 34 # KANNADA VOWEL SIGN AI = 0CC6 ? 0CD6 ? +always \x0CCA 1346 # KANNADA VOWEL SIGN O = 0CC6 ? 0CD6 ? +always \x0CCB 135 # KANNADA VOWEL SIGN OO = 0CCA ? 0CD5 ? +always \x0CCC 246 # KANNADA VOWEL SIGN AU # consonant followed by vowel attribute KannadaVowel \x0C87\x0C88\x0C89\x0C8A\x0C8B\x0C8E\x0C8F\x0C90\x0C92\x0C93\x0C94 @@ -195,7 +266,7 @@ before KannadaVowel always \x0CAA 1234-1 # KANNADA LETTER PA before KannadaVowel always \x0CAB 235-1 # KANNADA LETTER PHA before KannadaVowel always \x0CAC 12-1 # KANNADA LETTER BA before KannadaVowel always \x0CAD 45-1 # KANNADA LETTER BHA -before KannadaVowel always \x0CAE 135-1 # KANNADA LETTER MA +before KannadaVowel always \x0CAE 134-1 # KANNADA LETTER MA before KannadaVowel always \x0CAF 13456-1 # KANNADA LETTER YA before KannadaVowel always \x0CB0 1235-1 # KANNADA LETTER RA diff --git a/braille/translate/src/phone/tables/km-g1.utb b/braille/translate/src/phone/tables/km-g1.utb index 3d62ed565..b0a74802c 100755 --- a/braille/translate/src/phone/tables/km-g1.utb +++ b/braille/translate/src/phone/tables/km-g1.utb @@ -243,22 +243,22 @@ include braille-patterns.cti # two special cases, not put v infront of subscript consonants -#match - \x17D2\x178B - 36-23456 -#match - \x17D2\x178D - 356-23456 +#always \x17D2\x178B 36-23456 +#always \x17D2\x178D 356-23456 # letters with two character codes for each, all are from dependent vowels -match - \x17BB\x17C6 - 1246 -match - \x17B6\x17C6 - 1356 -match - \x17BB\x17C7 - 1346 -match - \x17C1\x17C7 - 136 -match - \x17C4\x17C7 - 2346 +always \x17BB\x17C6 1246 +always \x17B6\x17C6 1356 +always \x17BB\x17C7 1346 +always \x17C1\x17C7 136 +always \x17C4\x17C7 2346 # add v subscript for consonants letter \x17D2 1236 # if o in print before 4 vowels below, should be placed after these 4 vowels -match - \x17A2\x17BE - 146-135 -#match - \x17A2\x17C1 - 124-135 +always \x17A2\x17BE 146-135 +#always \x17A2\x17C1 124-135 noback pass2 @135-124 @124-135 -match - \x17A2\x17C2 - 126-135 -match - \x17A2\x17C3 - 24-135 +always \x17A2\x17C2 126-135 +always \x17A2\x17C3 24-135 # regular consonants Dot pattern for regular consonants letter \x1780 1245 letter \x1781 13 @@ -386,7 +386,7 @@ noback pass2 @125-56 @125-0 noback pass2 @24-56 @24-0 # moving vowels and subscript consonants to before dependent consonants -class consonant \x1780\x1781\x1782\x1783\x1784\x1785\x1786\x1787\x1788\x1789\x178A\x178B\x178C\x178D\x178E\x178F\x1790\x1791\x1792\x1793\x1794\x1795\x1796\x1797\x1798\x1799\x179A\x179B\x179C\x179F\x17A0\x17A1\x17A2 +attribute consonant \x1780\x1781\x1782\x1783\x1784\x1785\x1786\x1787\x1788\x1789\x178A\x178B\x178C\x178D\x178E\x178F\x1790\x1791\x1792\x1793\x1794\x1795\x1796\x1797\x1798\x1799\x179A\x179B\x179C\x179F\x17A0\x17A1\x17A2 # place vowels before subscripted and dependent consonants noback correct [%consonant]"\x17D2\x179A\x17BE" "\x17BE\x17D2\x179A"* noback correct [%consonant]"\x17D2\x179A\x17C1" "\x17C1\x17D2\x179A"* diff --git a/braille/translate/src/phone/tables/nemethdefs.cti b/braille/translate/src/phone/tables/nemethdefs.cti index bb8870053..761939ddc 100644 --- a/braille/translate/src/phone/tables/nemethdefs.cti +++ b/braille/translate/src/phone/tables/nemethdefs.cti @@ -32,7 +32,6 @@ math \x200B a math \x205F a math \x2062 a math \x2063 a -replace \x00af replace \x0001 replace \x0002 replace \x0003 @@ -50,9 +49,11 @@ sign \x001B a sign \x009A a SINGLE CHARACTER INTRODUCER sign \x00A2 4-14 CENT SIGN sign \x00A7 4-6-234 SECTION SIGN +sign \x00a8 16-16 DIAERESIS (double dots) in math expressions sign \x00A9 12356-6-14-23456 COPYRIGHT SIGN sign ^ 456-126 CARET math \x00AC 4-1456 NOT SIGN +sign \x00AF 156 MACRON (horizontal bar in math expressions) math \x00B1 346-36 PLUS-MINUS SIGN PLUS-OR-MINUS SIGN sign \x00B7 16 MIDDLE DOT sign \x02D9 16 DOT ABOVE @@ -147,10 +148,11 @@ math \x2308 4-45-12356 LEFT CEILING math \x2309 4-45-23456 RIGHT CEILING math \x230A 4-56-12356 LEFT FLOOR math \x230B 4-56-23456 RIGHT FLOOR -math \x2322 a-1246-1-a arc +math \x2322 1246-1 FROWN (CONCAVE UPWARD ARC) +math \x2323 1246-3 SMILE (CONCAVE DOWNWARD ARC) math \x2217 4-3456 ASTERISK OPERATOR sign * 4-3456 ASTERISK OPERATOR -math \x2218 45-46-16 degrees sign +math \x2218 45-46-16-5 degrees sign (a hollow dot in superscript position) math \x212B a-4-6-1 ANGSTROM SIGN math \x2295 1246-14-456-1246-346-12456 CIRCLED PLUS math \x2296 1246-14-456-1246-36-12456 CIRCLED MINUS @@ -174,7 +176,7 @@ math \x23DF 46-23456 BOTTOM CURLY BRACKET # Arrows math \x2190 a-1246-246-25-25-a LEFTWARDS ARROW math \x2191 a-1246-126-25-25-135-a UPWARDS ARROW -math \x2192 a-1246-135-a RIGHTWARDS ARROW +math \x2192 a-1246-135-a RIGHTWARDS ARROW (contracted Braille form) math \x2193 a-1246-146-25-25-135-a DOWNWARDS ARROW math \x2194 a-1246-246-25-25-135-a LEFT RIGHT ARROW math \x2195 a-1246-126-146-246-25-25-135-a UP DOWN ARROW diff --git a/braille/translate/src/phone/tables/nl-NL-g0.utb b/braille/translate/src/phone/tables/nl-NL-g0.utb index 7d3364fca..798201d81 100644 --- a/braille/translate/src/phone/tables/nl-NL-g0.utb +++ b/braille/translate/src/phone/tables/nl-NL-g0.utb @@ -1,9 +1,7 @@ -# -# Copyright (C) 2010, 2011 by DocArch -# Copyright (C) 2014-2015, 2019 by Bert Frees -# Copyright (C) 2014 by CBB -# Copyright (C) 2015, 2016, 2018 by Dedicon -# +# --------------------------------------------------------------------------- +# Beware! This file is automatically generated from nl-NL-g0.utb.in. Don't +# make changes to this file directly. +# --------------------------------------------------------------------------- # This file is part of liblouis. # # liblouis is free software: you can redistribute it and/or modify it @@ -20,6 +18,31 @@ # License along with liblouis. If not, see # . # +# +#-index-name: Dutch +#-display-name: Dutch braille +# +#+language: nl +#+type: literary +#+contraction: no +#+grade: 0 +#+version: 2017.1 +#+direction: forward +# +#-maintainer: Bert Frees +#-license: LGPLv2.1 +#-copyright: 2010, 2011, DocArch +#-copyright: 2014-2015, 2024, 2019, Bert Frees +#-copyright: 2014, CBB +#-copyright: 2015, 2016, 2018, Dedicon +#-copyright: 2024, Davy Kager +# +# Copyright (C) 2010, 2011 by DocArch +# Copyright (C) 2014-2015, 2019, 2024 by Bert Frees +# Copyright (C) 2014 by CBB +# Copyright (C) 2015, 2016, 2018 by Dedicon +# Copyright (C) 2024 by Davy Kager +# # ------------------------------------------------------------------------------- # # Dutch Braille as used in the Netherlands @@ -37,8 +60,10 @@ # # ---------------------------------------------------------------------------------------------- +# include a display table by default to avoid errors if the user would not include a display table +include nl-print.dis + include nl-chardefs.uti -include braille-patterns.cti hyphen \x002D 36 @@ -66,8 +91,8 @@ midword \x003D 0-2356-0 endword \x003D 0-2356 # plusteken + -begword \x002B 235-0 -endnum \x002B 5-235 +begword \x002B 235a-0 +endnum \x002B 5-235a # deelteken ÷ begword \x00F7 256-0 @@ -101,16 +126,16 @@ noback correct ["¥"]~ "yen" # Geplaatst vóór het getal wordt de munteenheid door haar beginletter weergegeven, zonder spatie tussen letter en cijfer # §1.5 euroteken € (zonder spatie vóór het getal) [1] -noback joinnum \x20AC 15 +noback joinnum \x20AC 15a # §1.4 dollarteken $ (zonder spatie vóór het getal) [1] -noback joinnum \x0024 145 +noback joinnum \x0024 145a # §1.16 pondteken £ (zonder spatie vóór het getal) [1] -noback joinnum \x00A3 1234 +noback joinnum \x00A3 1234a # §1.24 yenteken ¥ (zonder spatie vóór het getal) [1] -noback joinnum \x00A5 13456 +noback joinnum \x00A5 13456a # §1.34 verticale streep | (spatie voor en na) [1] @@ -119,8 +144,8 @@ midword \x007C 0-1456-0 endword \x007C 0-1456 # §3.6 Graad-, minuut- en secondeteken [1] -noback context $d["''"] @4-35-35 -noback context $d["'"] @4-35 +noback context $d["''"] @4-35a-35a +noback context $d["'"] @4-35a # Roman page numbers replace \\_ @@ -135,16 +160,23 @@ replace \\_ # numericnocontchars abcdefghij attribute digitletter abcdefghijABCDEFGHIJ # 1st class = $w -noback context $d[]%digitletter @6 -noback context $d","[]%digitletter @6 -noback context $d"."[]%digitletter @6 -noback context $d":"[]%digitletter @6 +noback context $d[]%digitletter @6a +noback context $d","[]%digitletter @6a +noback context $d"."[]%digitletter @6a +noback context $d":"[]%digitletter @6a # Multiple dots 6 are collapsed into a single dot 6. -noback pass2 [@6]@6 ? -# A dot 6 is not needed when the number is already cancelled by a capital or emphasis sign -noback pass3 $d[@6]@45 ? -noback pass3 $d[@6]@46 ? -noback pass3 $d[@6]@456 ? +noback pass2 [@6a]@6a ? +# A dot 6 is not needed when the number is already cancelled by a capital, emphasis or foreign language sign +noback pass3 $d[@6a]@45 ? +noback pass3 $d[@6a]@46 ? +noback pass3 $d[@6a]@456 ? +noback pass3 $d[@6a]@56 ? +# backward translation +nofor pass2 _$d[@6]%digitletter @6a +nofor pass2 __$d@2[@6]%digitletter @6a +nofor pass2 __$d@25[@6]%digitletter @6a +nofor pass2 __$d@256[@6]%digitletter @6a +endcapsword 6a # hack to not back-translate @6a to "\6A" # §2.20 Sleutelteken tweede betekenis [1] @@ -161,12 +193,13 @@ attribute plusamp +& # 2nd class = $x attribute noplusamp .'‘’ # 3rd class = $y noback pass4 %noplusamp[]%plusamp @5 noback pass4 $l[]%plusamp @5 -noback pass4 [@235a]%plusamp @235-5 -noback pass4 [@12346a]%plusamp @12346-5 -noback pass4 [@235a] @235 -noback pass4 [@12346a] @12346 +noback pass4 [@235a]%plusamp @235a-5 +noback pass4 [@12346]%plusamp @12346-5 +noback pass4 [@12346] @12346 numsign 3456 +# backward translation of unicode braille pattern ⠼ +noback pass2 [@3456]!$d @3456e # §1.58 Drukwijzigingsteken [1] emphclass italic @@ -202,9 +235,9 @@ emphletter underline 456 # and ’ (RIGHT SINGLE QUOTATION MARK). capsmodechars +&.'‘’ # The same goes for the emphasis "state". -emphmodechars italic +&.' -emphmodechars bold +&.' -emphmodechars underline +&.' +emphmodechars italic +&.'‘’ +emphmodechars bold +&.'‘’ +emphmodechars underline +&.'‘’ # These are the characters for which emphasis is not indicated noemphchars italic \s'() @@ -224,8 +257,10 @@ capsletter 46 # Left and right curly brackets -punctuation \x007B 12356 { LEFT CURLY BRACKET -punctuation \x007D 23456 } RIGHT CURLY BRACKET +noback punctuation \x007B 12356c { LEFT CURLY BRACKET +nofor punctuation \x007B 12356 { LEFT CURLY BRACKET +noback punctuation \x007D 23456c } RIGHT CURLY BRACKET +nofor punctuation \x007D 23456 } RIGHT CURLY BRACKET # 2.2. Alfabetwisselingsteken @@ -240,90 +275,990 @@ lenmodephrase foreign 4 # Foreign letters Ã, Õ (Portuguese), Å, Æ, Ø (Norwegian/Danish/Finnish), Ì (Italian) -lowercase \x00E3 1 ã LATIN SMALL LETTER A WITH TILDE -lowercase \x00E5 1 å LATIN SMALL LETTER A WITH RING ABOVE -lowercase \x00E6 1-15-15 æ LATIN SMALL LETTER AE -lowercase \x00EC 24 ì LATIN SMALL LETTER I WITH GRAVE -lowercase \x00F5 135 õ LATIN SMALL LETTER O WITH TILDE -lowercase \x00F8 246 ø LATIN SMALL LETTER O WITH STROKE -base uppercase \x00C3 \x00E3 Ãã LATIN CAPITAL LETTER A WITH TILDE - LATIN SMALL LETTER A WITH TILDE -base uppercase \x00C5 \x00E5 Åå LATIN CAPITAL LETTER A WITH RING ABOVE - LATIN SMALL LETTER A WITH RING ABOVE -base uppercase \x00C6 \x00E6 Ææ LATIN CAPITAL LETTER AE - LATIN SMALL LETTER AE -base uppercase \x00CC \x00EC Ìì LATIN CAPITAL LETTER I WITH GRAVE - LATIN SMALL LETTER I WITH GRAVE -base uppercase \x00D5 \x00F5 Õõ LATIN CAPITAL LETTER O WITH TILDE - LATIN SMALL LETTER O WITH TILDE -base uppercase \x00D8 \x00F8 Øø LATIN CAPITAL LETTER O WITH STROKE - LATIN SMALL LETTER O WITH STROKE +noback lowercase \x00E3 1a +noback uppercase \x00C3 1af +nofor lowercase \x00E3 1 +base uppercase \x00C3 \x00E3 +attribute foreign \x00C3\x00E3 Ãã LATIN CAPITAL LETTER A WITH TILDE - LATIN SMALL LETTER A WITH TILDE + +noback lowercase \x00E5 1b +noback uppercase \x00C5 1bf +nofor lowercase \x00E5 1 +base uppercase \x00C5 \x00E5 +attribute foreign \x00C5\x00E5 Åå LATIN CAPITAL LETTER A WITH RING ABOVE - LATIN SMALL LETTER A WITH RING ABOVE + +noback lowercase \x00EC 24a +noback uppercase \x00CC 24af +nofor lowercase \x00EC 24 +base uppercase \x00CC \x00EC +attribute foreign \x00CC\x00EC Ìì LATIN CAPITAL LETTER I WITH GRAVE - LATIN SMALL LETTER I WITH GRAVE + +noback lowercase \x00F5 135b +noback uppercase \x00D5 135bf +nofor lowercase \x00F5 135 +base uppercase \x00D5 \x00F5 +attribute foreign \x00D5\x00F5 Õõ LATIN CAPITAL LETTER O WITH TILDE - LATIN SMALL LETTER O WITH TILDE + +noback lowercase \x00F8 246b +noback uppercase \x00D8 246bf +nofor lowercase \x00F8 246 +base uppercase \x00D8 \x00F8 +attribute foreign \x00D8\x00F8 Øø LATIN CAPITAL LETTER O WITH STROKE - LATIN SMALL LETTER O WITH STROKE + +lowercase \x00E6 1-15-15 æ LATIN SMALL LETTER AE +uppercase \x00C6 1f-15f-15f Æ LATIN CAPITAL LETTER AE +base uppercase \x00C6 \x00E6 Ææ LATIN CAPITAL LETTER AE - LATIN SMALL LETTER AE -attribute foreign ÃãÅåÆæÌìÕõØø +attribute foreign Ææ # Greek letters -lowercase α 1 GREEK LETTER ALPHA -lowercase ά 1 GREEK LETTER ALPHA WITH TONOS -lowercase β 12 GREEK LETTER BETA -lowercase γ 1245 GREEK LETTER GAMMA -lowercase δ 145 GREEK LETTER DELTA -lowercase ε 15 GREEK LETTER EPSILON -lowercase ζ 1356 GREEK LETTER ZETA -lowercase ι 24 GREEK LETTER IOTA -lowercase ί 24 GREEK LETTER IOTA WITH TONOS -lowercase κ 13 GREEK LETTER KAPPA -lowercase λ 123 GREEK LETTER LAMDA -lowercase μ 134 GREEK LETTER MU -lowercase ν 1345 GREEK LETTER NU -lowercase ξ 1346 GREEK LETTER XI -lowercase ο 135 GREEK LETTER OMICRON -lowercase π 1234 GREEK LETTER PI -lowercase ρ 1235 GREEK LETTER RHO -lowercase σ 234 GREEK LETTER SIGMA -lowercase ς 234 GREEK LETTER FINAL SIGMA -lowercase τ 2345 GREEK LETTER TAU -lowercase υ 136 GREEK LETTER UPSILON -lowercase φ 124 GREEK LETTER PHI -lowercase ϕ 124 GREEK PHI SYMBOL -lowercase ψ 13456 GREEK LETTER PSI -lowercase ω 2456 GREEK LETTER OMEGA -lowercase η 156 GREEK LETTER ETA -lowercase θ 1456 GREEK LETTER THETA -lowercase χ 12346 GREEK LETTER CHI - -base uppercase Α α -base uppercase Ά ά -base uppercase Β β -base uppercase Γ γ -base uppercase Δ δ -base uppercase Ε ε -base uppercase Ζ ζ -base uppercase Ι ι -base uppercase Ί ί -base uppercase Κ κ -base uppercase Λ λ -base uppercase Μ μ -base uppercase Ν ν -base uppercase Ξ ξ -base uppercase Ο ο -base uppercase Π π -base uppercase Ρ ρ -base uppercase Σ σ -base uppercase Τ τ -base uppercase Υ υ -base uppercase Φ φ -base uppercase Ψ ψ -base uppercase Ω ω -base uppercase Η η -base uppercase Θ θ -base uppercase Χ χ - -attribute foreign ΑαΆάΒβΓγΔδΕεΖζΙιΊίΚκΛλΜμΝνΞξΟοΠπΡρΣσςΤτΥυΦφϕΨψΩωΗηΘθΧχ + +noback lowercase α 1d +noback uppercase Α 1df +nofor lowercase α 1 +base uppercase Α α +attribute foreign Αα GREEK LETTER ALPHA + +noback lowercase ά 1ad +noback uppercase Ά 1adf +nofor lowercase ά 1 +base uppercase Ά ά +attribute foreign Άά GREEK LETTER ALPHA WITH TONOS + +noback lowercase β 12d +noback uppercase Β 12df +nofor lowercase β 12 +base uppercase Β β +attribute foreign Ββ GREEK LETTER BETA + +noback lowercase γ 1245d +noback uppercase Γ 1245df +nofor lowercase γ 1245 +base uppercase Γ γ +attribute foreign Γγ GREEK LETTER GAMMA + +noback lowercase δ 145d +noback uppercase Δ 145df +nofor lowercase δ 145 +base uppercase Δ δ +attribute foreign Δδ GREEK LETTER DELTA + +noback lowercase ε 15d +noback uppercase Ε 15df +nofor lowercase ε 15 +base uppercase Ε ε +attribute foreign Εε GREEK LETTER EPSILON + +noback lowercase ζ 1356d +noback uppercase Ζ 1356df +nofor lowercase ζ 1356 +base uppercase Ζ ζ +attribute foreign Ζζ GREEK LETTER ZETA + +noback lowercase ι 24d +noback uppercase Ι 24df +nofor lowercase ι 24 +base uppercase Ι ι +attribute foreign Ιι GREEK LETTER IOTA + +noback lowercase ί 24ad +noback uppercase Ί 24adf +nofor lowercase ί 24 +base uppercase Ί ί +attribute foreign Ίί GREEK LETTER IOTA WITH TONOS + +noback lowercase κ 13d +noback uppercase Κ 13df +nofor lowercase κ 13 +base uppercase Κ κ +attribute foreign Κκ GREEK LETTER KAPPA + +noback lowercase λ 123d +noback uppercase Λ 123df +nofor lowercase λ 123 +base uppercase Λ λ +attribute foreign Λλ GREEK LETTER LAMDA + +noback lowercase μ 134d +noback uppercase Μ 134df +nofor lowercase μ 134 +base uppercase Μ μ +attribute foreign Μμ GREEK LETTER MU + +noback lowercase ν 1345d +noback uppercase Ν 1345df +nofor lowercase ν 1345 +base uppercase Ν ν +attribute foreign Νν GREEK LETTER NU + +noback lowercase ξ 1346d +noback uppercase Ξ 1346df +nofor lowercase ξ 1346 +base uppercase Ξ ξ +attribute foreign Ξξ GREEK LETTER XI + +noback lowercase ο 135d +noback uppercase Ο 135df +nofor lowercase ο 135 +base uppercase Ο ο +attribute foreign Οο GREEK LETTER OMICRON + +noback lowercase π 1234d +noback uppercase Π 1234df +nofor lowercase π 1234 +base uppercase Π π +attribute foreign Ππ GREEK LETTER PI + +noback lowercase ρ 1235d +noback uppercase Ρ 1235df +nofor lowercase ρ 1235 +base uppercase Ρ ρ +attribute foreign Ρρ GREEK LETTER RHO + +noback lowercase σ 234d +noback uppercase Σ 234df +nofor lowercase σ 234 +base uppercase Σ σ +attribute foreign Σσ GREEK LETTER SIGMA + +noback lowercase ς 234ad +nofor lowercase ς 234 +attribute foreign ς GREEK LETTER FINAL SIGMA + +noback lowercase τ 2345d +noback uppercase Τ 2345df +nofor lowercase τ 2345 +base uppercase Τ τ +attribute foreign Ττ GREEK LETTER TAU + +noback lowercase υ 136d +noback uppercase Υ 136df +nofor lowercase υ 136 +base uppercase Υ υ +attribute foreign Υυ GREEK LETTER UPSILON + +noback lowercase φ 124d +noback uppercase Φ 124df +nofor lowercase φ 124 +base uppercase Φ φ +attribute foreign Φφ GREEK LETTER PHI + +noback lowercase ϕ 124ad +nofor lowercase ϕ 124 +attribute foreign ϕ GREEK PHI SYMBOL + +noback lowercase ψ 13456d +noback uppercase Ψ 13456df +nofor lowercase ψ 13456 +base uppercase Ψ ψ +attribute foreign Ψψ GREEK LETTER PSI + +noback lowercase ω 2456d +noback uppercase Ω 2456df +nofor lowercase ω 2456 +base uppercase Ω ω +attribute foreign Ωω GREEK LETTER OMEGA + +noback lowercase η 156d +noback uppercase Η 156df +nofor lowercase η 156 +base uppercase Η η +attribute foreign Ηη GREEK LETTER ETA + +noback lowercase θ 1456d +noback uppercase Θ 1456df +nofor lowercase θ 1456 +base uppercase Θ θ +attribute foreign Θθ GREEK LETTER THETA + +noback lowercase χ 12346d +noback uppercase Χ 12346df +nofor lowercase χ 12346 +base uppercase Χ χ +attribute foreign Χχ GREEK LETTER CHI # Other alphabets attribute foreign Ññ # ñ defined in nl-chardefs.uti -lowercase ł 126 -base uppercase Ł ł + +noback lowercase ł 126b +noback uppercase Ł 126bf +nofor lowercase ł 126 +base uppercase Ł ł attribute foreign Łł -lowercase ź 2346 -base uppercase Ź ź +noback lowercase ź 2346b +noback uppercase Ź 2346bf +nofor lowercase ź 2346 +base uppercase Ź ź attribute foreign Źź + +# Unicode braille patterns + +noback sign \x2800 e ⠀ + +noback sign \x2801 1e +nofor sign \x2801 1 ⠁ + +noback sign \x2802 2e +nofor sign \x2802 2 ⠂ + +noback sign \x2803 12e +nofor sign \x2803 12 ⠃ + +noback sign \x2804 3e +nofor sign \x2804 3 ⠄ + +noback sign \x2805 13e +nofor sign \x2805 13 ⠅ + +noback sign \x2806 23e +nofor sign \x2806 23 ⠆ + +noback sign \x2807 123e +nofor sign \x2807 123 ⠇ + +noback sign \x2808 4e +nofor sign \x2808 4 ⠈ + +noback sign \x2809 14e +nofor sign \x2809 14 ⠉ + +noback sign \x280A 24e +nofor sign \x280A 24 ⠊ + +noback sign \x280B 124e +nofor sign \x280B 124 ⠋ + +noback sign \x280C 34e +nofor sign \x280C 34 ⠌ + +noback sign \x280D 134e +nofor sign \x280D 134 ⠍ + +noback sign \x280E 234e +nofor sign \x280E 234 ⠎ + +noback sign \x280F 1234e +nofor sign \x280F 1234 ⠏ + +noback sign \x2810 5e +nofor sign \x2810 5 ⠐ + +noback sign \x2811 15e +nofor sign \x2811 15 ⠑ + +noback sign \x2812 25e +nofor sign \x2812 25 ⠒ + +noback sign \x2813 125e +nofor sign \x2813 125 ⠓ + +noback sign \x2814 35e +nofor sign \x2814 35 ⠔ + +noback sign \x2815 135e +nofor sign \x2815 135 ⠕ + +noback sign \x2816 235e +nofor sign \x2816 235 ⠖ + +noback sign \x2817 1235e +nofor sign \x2817 1235 ⠗ + +noback sign \x2818 45e +nofor sign \x2818 45 ⠘ + +noback sign \x2819 145e +nofor sign \x2819 145 ⠙ + +noback sign \x281A 245e +nofor sign \x281A 245 ⠚ + +noback sign \x281B 1245e +nofor sign \x281B 1245 ⠛ + +noback sign \x281C 345e +nofor sign \x281C 345 ⠜ + +noback sign \x281D 1345e +nofor sign \x281D 1345 ⠝ + +noback sign \x281E 2345e +nofor sign \x281E 2345 ⠞ + +noback sign \x281F 12345e +nofor sign \x281F 12345 ⠟ + +noback sign \x2820 6e +nofor sign \x2820 6 ⠠ + +noback sign \x2821 16e +nofor sign \x2821 16 ⠡ + +noback sign \x2822 26e +nofor sign \x2822 26 ⠢ + +noback sign \x2823 126e +nofor sign \x2823 126 ⠣ + +noback sign \x2824 36e +nofor sign \x2824 36 ⠤ + +noback sign \x2825 136e +nofor sign \x2825 136 ⠥ + +noback sign \x2826 236e +nofor sign \x2826 236 ⠦ + +noback sign \x2827 1236e +nofor sign \x2827 1236 ⠧ + +noback sign \x2828 46e +nofor sign \x2828 46 ⠨ + +noback sign \x2829 146e +nofor sign \x2829 146 ⠩ + +noback sign \x282A 246e +nofor sign \x282A 246 ⠪ + +noback sign \x282B 1246e +nofor sign \x282B 1246 ⠫ + +noback sign \x282C 346e +nofor sign \x282C 346 ⠬ + +noback sign \x282D 1346e +nofor sign \x282D 1346 ⠭ + +noback sign \x282E 2346e +nofor sign \x282E 2346 ⠮ + +noback sign \x282F 12346e +nofor sign \x282F 12346 ⠯ + +noback sign \x2830 56e +nofor sign \x2830 56 ⠰ + +noback sign \x2831 156e +nofor sign \x2831 156 ⠱ + +noback sign \x2832 256e +nofor sign \x2832 256 ⠲ + +noback sign \x2833 1256e +nofor sign \x2833 1256 ⠳ + +noback sign \x2834 356e +nofor sign \x2834 356 ⠴ + +noback sign \x2835 1356e +nofor sign \x2835 1356 ⠵ + +noback sign \x2836 2356e +nofor sign \x2836 2356 ⠶ + +noback sign \x2837 12356e +nofor sign \x2837 12356 ⠷ + +noback sign \x2838 456e +nofor sign \x2838 456 ⠸ + +noback sign \x2839 1456e +nofor sign \x2839 1456 ⠹ + +noback sign \x283A 2456e +nofor sign \x283A 2456 ⠺ + +noback sign \x283B 12456e +nofor sign \x283B 12456 ⠻ +sign \x283C 3456e ⠼ + +noback sign \x283D 13456e +nofor sign \x283D 13456 ⠽ + +noback sign \x283E 23456e +nofor sign \x283E 23456 ⠾ + +noback sign \x283F 123456e +nofor sign \x283F 123456 ⠿ + +noback sign \x2840 7e +nofor sign \x2840 7 ⡀ + +noback sign \x2841 17e +nofor sign \x2841 17 ⡁ + +noback sign \x2842 27e +nofor sign \x2842 27 ⡂ + +noback sign \x2843 127e +nofor sign \x2843 127 ⡃ + +noback sign \x2844 37e +nofor sign \x2844 37 ⡄ + +noback sign \x2845 137e +nofor sign \x2845 137 ⡅ + +noback sign \x2846 237e +nofor sign \x2846 237 ⡆ + +noback sign \x2847 1237e +nofor sign \x2847 1237 ⡇ + +noback sign \x2848 47e +nofor sign \x2848 47 ⡈ + +noback sign \x2849 147e +nofor sign \x2849 147 ⡉ + +noback sign \x284A 247e +nofor sign \x284A 247 ⡊ + +noback sign \x284B 1247e +nofor sign \x284B 1247 ⡋ + +noback sign \x284C 347e +nofor sign \x284C 347 ⡌ + +noback sign \x284D 1347e +nofor sign \x284D 1347 ⡍ + +noback sign \x284E 2347e +nofor sign \x284E 2347 ⡎ + +noback sign \x284F 12347e +nofor sign \x284F 12347 ⡏ + +noback sign \x2850 57e +nofor sign \x2850 57 ⡐ + +noback sign \x2851 157e +nofor sign \x2851 157 ⡑ + +noback sign \x2852 257e +nofor sign \x2852 257 ⡒ + +noback sign \x2853 1257e +nofor sign \x2853 1257 ⡓ + +noback sign \x2854 357e +nofor sign \x2854 357 ⡔ + +noback sign \x2855 1357e +nofor sign \x2855 1357 ⡕ + +noback sign \x2856 2357e +nofor sign \x2856 2357 ⡖ + +noback sign \x2857 12357e +nofor sign \x2857 12357 ⡗ + +noback sign \x2858 457e +nofor sign \x2858 457 ⡘ + +noback sign \x2859 1457e +nofor sign \x2859 1457 ⡙ + +noback sign \x285A 2457e +nofor sign \x285A 2457 ⡚ + +noback sign \x285B 12457e +nofor sign \x285B 12457 ⡛ + +noback sign \x285C 3457e +nofor sign \x285C 3457 ⡜ + +noback sign \x285D 13457e +nofor sign \x285D 13457 ⡝ + +noback sign \x285E 23457e +nofor sign \x285E 23457 ⡞ + +noback sign \x285F 123457e +nofor sign \x285F 123457 ⡟ + +noback sign \x2860 67e +nofor sign \x2860 67 ⡠ + +noback sign \x2861 167e +nofor sign \x2861 167 ⡡ + +noback sign \x2862 267e +nofor sign \x2862 267 ⡢ + +noback sign \x2863 1267e +nofor sign \x2863 1267 ⡣ + +noback sign \x2864 367e +nofor sign \x2864 367 ⡤ + +noback sign \x2865 1367e +nofor sign \x2865 1367 ⡥ + +noback sign \x2866 2367e +nofor sign \x2866 2367 ⡦ + +noback sign \x2867 12367e +nofor sign \x2867 12367 ⡧ + +noback sign \x2868 467e +nofor sign \x2868 467 ⡨ + +noback sign \x2869 1467e +nofor sign \x2869 1467 ⡩ + +noback sign \x286A 2467e +nofor sign \x286A 2467 ⡪ + +noback sign \x286B 12467e +nofor sign \x286B 12467 ⡫ + +noback sign \x286C 3467e +nofor sign \x286C 3467 ⡬ + +noback sign \x286D 13467e +nofor sign \x286D 13467 ⡭ + +noback sign \x286E 23467e +nofor sign \x286E 23467 ⡮ + +noback sign \x286F 123467e +nofor sign \x286F 123467 ⡯ + +noback sign \x2870 567e +nofor sign \x2870 567 ⡰ + +noback sign \x2871 1567e +nofor sign \x2871 1567 ⡱ + +noback sign \x2872 2567e +nofor sign \x2872 2567 ⡲ + +noback sign \x2873 12567e +nofor sign \x2873 12567 ⡳ + +noback sign \x2874 3567e +nofor sign \x2874 3567 ⡴ + +noback sign \x2875 13567e +nofor sign \x2875 13567 ⡵ + +noback sign \x2876 23567e +nofor sign \x2876 23567 ⡶ + +noback sign \x2877 123567e +nofor sign \x2877 123567 ⡷ + +noback sign \x2878 4567e +nofor sign \x2878 4567 ⡸ + +noback sign \x2879 14567e +nofor sign \x2879 14567 ⡹ + +noback sign \x287A 24567e +nofor sign \x287A 24567 ⡺ + +noback sign \x287B 124567e +nofor sign \x287B 124567 ⡻ + +noback sign \x287C 34567e +nofor sign \x287C 34567 ⡼ + +noback sign \x287D 134567e +nofor sign \x287D 134567 ⡽ + +noback sign \x287E 234567e +nofor sign \x287E 234567 ⡾ + +noback sign \x287F 1234567e +nofor sign \x287F 1234567 ⡿ + +noback sign \x2880 8e +nofor sign \x2880 8 ⢀ + +noback sign \x2881 18e +nofor sign \x2881 18 ⢁ + +noback sign \x2882 28e +nofor sign \x2882 28 ⢂ + +noback sign \x2883 128e +nofor sign \x2883 128 ⢃ + +noback sign \x2884 38e +nofor sign \x2884 38 ⢄ + +noback sign \x2885 138e +nofor sign \x2885 138 ⢅ + +noback sign \x2886 238e +nofor sign \x2886 238 ⢆ + +noback sign \x2887 1238e +nofor sign \x2887 1238 ⢇ + +noback sign \x2888 48e +nofor sign \x2888 48 ⢈ + +noback sign \x2889 148e +nofor sign \x2889 148 ⢉ + +noback sign \x288A 248e +nofor sign \x288A 248 ⢊ + +noback sign \x288B 1248e +nofor sign \x288B 1248 ⢋ + +noback sign \x288C 348e +nofor sign \x288C 348 ⢌ + +noback sign \x288D 1348e +nofor sign \x288D 1348 ⢍ + +noback sign \x288E 2348e +nofor sign \x288E 2348 ⢎ + +noback sign \x288F 12348e +nofor sign \x288F 12348 ⢏ + +noback sign \x2890 58e +nofor sign \x2890 58 ⢐ + +noback sign \x2891 158e +nofor sign \x2891 158 ⢑ + +noback sign \x2892 258e +nofor sign \x2892 258 ⢒ + +noback sign \x2893 1258e +nofor sign \x2893 1258 ⢓ + +noback sign \x2894 358e +nofor sign \x2894 358 ⢔ + +noback sign \x2895 1358e +nofor sign \x2895 1358 ⢕ + +noback sign \x2896 2358e +nofor sign \x2896 2358 ⢖ + +noback sign \x2897 12358e +nofor sign \x2897 12358 ⢗ + +noback sign \x2898 458e +nofor sign \x2898 458 ⢘ + +noback sign \x2899 1458e +nofor sign \x2899 1458 ⢙ + +noback sign \x289A 2458e +nofor sign \x289A 2458 ⢚ + +noback sign \x289B 12458e +nofor sign \x289B 12458 ⢛ + +noback sign \x289C 3458e +nofor sign \x289C 3458 ⢜ + +noback sign \x289D 13458e +nofor sign \x289D 13458 ⢝ + +noback sign \x289E 23458e +nofor sign \x289E 23458 ⢞ + +noback sign \x289F 123458e +nofor sign \x289F 123458 ⢟ + +noback sign \x28A0 68e +nofor sign \x28A0 68 ⢠ + +noback sign \x28A1 168e +nofor sign \x28A1 168 ⢡ + +noback sign \x28A2 268e +nofor sign \x28A2 268 ⢢ + +noback sign \x28A3 1268e +nofor sign \x28A3 1268 ⢣ + +noback sign \x28A4 368e +nofor sign \x28A4 368 ⢤ + +noback sign \x28A5 1368e +nofor sign \x28A5 1368 ⢥ + +noback sign \x28A6 2368e +nofor sign \x28A6 2368 ⢦ + +noback sign \x28A7 12368e +nofor sign \x28A7 12368 ⢧ + +noback sign \x28A8 468e +nofor sign \x28A8 468 ⢨ + +noback sign \x28A9 1468e +nofor sign \x28A9 1468 ⢩ + +noback sign \x28AA 2468e +nofor sign \x28AA 2468 ⢪ + +noback sign \x28AB 12468e +nofor sign \x28AB 12468 ⢫ + +noback sign \x28AC 3468e +nofor sign \x28AC 3468 ⢬ + +noback sign \x28AD 13468e +nofor sign \x28AD 13468 ⢭ + +noback sign \x28AE 23468e +nofor sign \x28AE 23468 ⢮ + +noback sign \x28AF 123468e +nofor sign \x28AF 123468 ⢯ + +noback sign \x28B0 568e +nofor sign \x28B0 568 ⢰ + +noback sign \x28B1 1568e +nofor sign \x28B1 1568 ⢱ + +noback sign \x28B2 2568e +nofor sign \x28B2 2568 ⢲ + +noback sign \x28B3 12568e +nofor sign \x28B3 12568 ⢳ + +noback sign \x28B4 3568e +nofor sign \x28B4 3568 ⢴ + +noback sign \x28B5 13568e +nofor sign \x28B5 13568 ⢵ + +noback sign \x28B6 23568e +nofor sign \x28B6 23568 ⢶ + +noback sign \x28B7 123568e +nofor sign \x28B7 123568 ⢷ + +noback sign \x28B8 4568e +nofor sign \x28B8 4568 ⢸ + +noback sign \x28B9 14568e +nofor sign \x28B9 14568 ⢹ + +noback sign \x28BA 24568e +nofor sign \x28BA 24568 ⢺ + +noback sign \x28BB 124568e +nofor sign \x28BB 124568 ⢻ + +noback sign \x28BC 34568e +nofor sign \x28BC 34568 ⢼ + +noback sign \x28BD 134568e +nofor sign \x28BD 134568 ⢽ + +noback sign \x28BE 234568e +nofor sign \x28BE 234568 ⢾ + +noback sign \x28BF 1234568e +nofor sign \x28BF 1234568 ⢿ + +noback sign \x28C0 78e +nofor sign \x28C0 78 ⣀ + +noback sign \x28C1 178e +nofor sign \x28C1 178 ⣁ + +noback sign \x28C2 278e +nofor sign \x28C2 278 ⣂ + +noback sign \x28C3 1278e +nofor sign \x28C3 1278 ⣃ + +noback sign \x28C4 378e +nofor sign \x28C4 378 ⣄ + +noback sign \x28C5 1378e +nofor sign \x28C5 1378 ⣅ + +noback sign \x28C6 2378e +nofor sign \x28C6 2378 ⣆ + +noback sign \x28C7 12378e +nofor sign \x28C7 12378 ⣇ + +noback sign \x28C8 478e +nofor sign \x28C8 478 ⣈ + +noback sign \x28C9 1478e +nofor sign \x28C9 1478 ⣉ + +noback sign \x28CA 2478e +nofor sign \x28CA 2478 ⣊ + +noback sign \x28CB 12478e +nofor sign \x28CB 12478 ⣋ + +noback sign \x28CC 3478e +nofor sign \x28CC 3478 ⣌ + +noback sign \x28CD 13478e +nofor sign \x28CD 13478 ⣍ + +noback sign \x28CE 23478e +nofor sign \x28CE 23478 ⣎ + +noback sign \x28CF 123478e +nofor sign \x28CF 123478 ⣏ + +noback sign \x28D0 578e +nofor sign \x28D0 578 ⣐ + +noback sign \x28D1 1578e +nofor sign \x28D1 1578 ⣑ + +noback sign \x28D2 2578e +nofor sign \x28D2 2578 ⣒ + +noback sign \x28D3 12578e +nofor sign \x28D3 12578 ⣓ + +noback sign \x28D4 3578e +nofor sign \x28D4 3578 ⣔ + +noback sign \x28D5 13578e +nofor sign \x28D5 13578 ⣕ + +noback sign \x28D6 23578e +nofor sign \x28D6 23578 ⣖ + +noback sign \x28D7 123578e +nofor sign \x28D7 123578 ⣗ + +noback sign \x28D8 4578e +nofor sign \x28D8 4578 ⣘ + +noback sign \x28D9 14578e +nofor sign \x28D9 14578 ⣙ + +noback sign \x28DA 24578e +nofor sign \x28DA 24578 ⣚ + +noback sign \x28DB 124578e +nofor sign \x28DB 124578 ⣛ + +noback sign \x28DC 34578e +nofor sign \x28DC 34578 ⣜ + +noback sign \x28DD 134578e +nofor sign \x28DD 134578 ⣝ + +noback sign \x28DE 234578e +nofor sign \x28DE 234578 ⣞ + +noback sign \x28DF 1234578e +nofor sign \x28DF 1234578 ⣟ + +noback sign \x28E0 678e +nofor sign \x28E0 678 ⣠ + +noback sign \x28E1 1678e +nofor sign \x28E1 1678 ⣡ + +noback sign \x28E2 2678e +nofor sign \x28E2 2678 ⣢ + +noback sign \x28E3 12678e +nofor sign \x28E3 12678 ⣣ + +noback sign \x28E4 3678e +nofor sign \x28E4 3678 ⣤ + +noback sign \x28E5 13678e +nofor sign \x28E5 13678 ⣥ + +noback sign \x28E6 23678e +nofor sign \x28E6 23678 ⣦ + +noback sign \x28E7 123678e +nofor sign \x28E7 123678 ⣧ + +noback sign \x28E8 4678e +nofor sign \x28E8 4678 ⣨ + +noback sign \x28E9 14678e +nofor sign \x28E9 14678 ⣩ + +noback sign \x28EA 24678e +nofor sign \x28EA 24678 ⣪ + +noback sign \x28EB 124678e +nofor sign \x28EB 124678 ⣫ + +noback sign \x28EC 34678e +nofor sign \x28EC 34678 ⣬ + +noback sign \x28ED 134678e +nofor sign \x28ED 134678 ⣭ + +noback sign \x28EE 234678e +nofor sign \x28EE 234678 ⣮ + +noback sign \x28EF 1234678e +nofor sign \x28EF 1234678 ⣯ + +noback sign \x28F0 5678e +nofor sign \x28F0 5678 ⣰ + +noback sign \x28F1 15678e +nofor sign \x28F1 15678 ⣱ + +noback sign \x28F2 25678e +nofor sign \x28F2 25678 ⣲ + +noback sign \x28F3 125678e +nofor sign \x28F3 125678 ⣳ + +noback sign \x28F4 35678e +nofor sign \x28F4 35678 ⣴ + +noback sign \x28F5 135678e +nofor sign \x28F5 135678 ⣵ + +noback sign \x28F6 235678e +nofor sign \x28F6 235678 ⣶ + +noback sign \x28F7 1235678e +nofor sign \x28F7 1235678 ⣷ + +noback sign \x28F8 45678e +nofor sign \x28F8 45678 ⣸ + +noback sign \x28F9 145678e +nofor sign \x28F9 145678 ⣹ + +noback sign \x28FA 245678e +nofor sign \x28FA 245678 ⣺ + +noback sign \x28FB 1245678e +nofor sign \x28FB 1245678 ⣻ + +noback sign \x28FC 345678e +nofor sign \x28FC 345678 ⣼ + +noback sign \x28FD 1345678e +nofor sign \x28FD 1345678 ⣽ + +noback sign \x28FE 2345678e +nofor sign \x28FE 2345678 ⣾ + +noback sign \x28FF 12345678e +nofor sign \x28FF 12345678 ⣿ diff --git a/braille/translate/src/phone/tables/nl-chardefs.uti b/braille/translate/src/phone/tables/nl-chardefs.uti index c3a3e53eb..0dfd7fb3f 100644 --- a/braille/translate/src/phone/tables/nl-chardefs.uti +++ b/braille/translate/src/phone/tables/nl-chardefs.uti @@ -1,9 +1,7 @@ -# -# Copyright (C) 2010, 2011 by DocArch -# Copyright (C) 2014, 2019 by Bert Frees -# Copyright (C) 2014 by CBB -# Copyright (C) 2015, 2016, 2018-2019 by Dedicon -# +# --------------------------------------------------------------------------- +# Beware! This file is automatically generated from nl-chardefs.uti.in. Don't +# make changes to this file directly. +# --------------------------------------------------------------------------- # This file is part of liblouis. # # liblouis is free software: you can redistribute it and/or modify it @@ -20,6 +18,12 @@ # License along with liblouis. If not, see # . # +# +# Copyright (C) 2010, 2011 by DocArch +# Copyright (C) 2014, 2019, 2024 by Bert Frees +# Copyright (C) 2014 by CBB +# Copyright (C) 2015, 2016, 2018-2019 by Dedicon +# #------------------------------------------------------------------------------- # # Dutch Braille based on the braille standard of 2017 @@ -47,147 +51,306 @@ include spaces.uti include latinLetterDef6Dots.uti -lowercase \x00E0 12356 à LATIN SMALL LETTER A WITH GRAVE -lowercase \x00E1 12356 á LATIN SMALL LETTER A WITH ACUTE -lowercase \x00E2 16 â LATIN SMALL LETTER A WITH CIRCUMFLEX -lowercase \x00E4 345 ä LATIN SMALL LETTER A WITH DIAERESIS -lowercase \x00E7 12346 ç LATIN SMALL LETTER C WITH CEDILLA -lowercase \x00E8 2346 è LATIN SMALL LETTER E WITH GRAVE -lowercase \x00E9 123456 é LATIN SMALL LETTER E WITH ACUTE -lowercase \x00EA 126 ê LATIN SMALL LETTER E WITH CIRCUMFLEX -lowercase \x00EB 1246 ë LATIN SMALL LETTER E WITH DIAERESIS -lowercase \x00ED 34 í LATIN SMALL LETTER I WITH ACUTE -lowercase \x00EE 146 î LATIN SMALL LETTER I WITH CIRCUMFLEX -lowercase \x00EF 12456 ï LATIN SMALL LETTER I WITH DIAERESIS -lowercase \x00F1 12456 ñ LATIN SMALL LETTER N WITH TILDE -lowercase \x00F2 346 ò LATIN SMALL LETTER O WITH GRAVE -lowercase \x00F3 346 ó LATIN SMALL LETTER O WITH ACUTE -lowercase \x00F4 1456 ô LATIN SMALL LETTER O WITH CIRCUMFLEX -lowercase \x00F6 246 ö LATIN SMALL LETTER O WITH DIAERESIS -lowercase \x00F9 23456 ù LATIN SMALL LETTER U WITH GRAVE -lowercase \x00FA 23456 ú LATIN SMALL LETTER U WITH ACUTE -lowercase \x00FB 156 û LATIN SMALL LETTER U WITH CIRCUMFLEX -lowercase \x00FC 1256 ü LATIN SMALL LETTER U WITH DIAERESIS -lowercase \x00DF 2346 ß LATIN SMALL LETTER SHARP S - -base uppercase \x00C0 \x00E0 Àà LATIN CAPITAL LETTER A WITH GRAVE - LATIN SMALL LETTER A WITH GRAVE -base uppercase \x00C1 \x00E1 Áá LATIN CAPITAL LETTER A WITH ACUTE - LATIN SMALL LETTER A WITH ACUTE -base uppercase \x00C2 \x00E2 Ââ LATIN CAPITAL LETTER A WITH CIRCUMFLEX - LATIN SMALL LETTER A WITH CIRCUMFLEX -base uppercase \x00C4 \x00E4 Ää LATIN CAPITAL LETTER A WITH DIAERESIS - LATIN SMALL LETTER A WITH DIAERESIS -base uppercase \x00C7 \x00E7 Çç LATIN CAPITAL LETTER C WITH CEDILLA - LATIN SMALL LETTER C WITH CEDILLA -base uppercase \x00C8 \x00E8 Èè LATIN CAPITAL LETTER E WITH GRAVE - LATIN SMALL LETTER E WITH GRAVE -base uppercase \x00C9 \x00E9 Éé LATIN CAPITAL LETTER E WITH ACUTE - LATIN SMALL LETTER E WITH ACUTE -base uppercase \x00CA \x00EA Êê LATIN CAPITAL LETTER E WITH CIRCUMFLEX - LATIN SMALL LETTER E WITH CIRCUMFLEX -base uppercase \x00CB \x00EB Ëë LATIN CAPITAL LETTER E WITH DIAERESIS - LATIN SMALL LETTER E WITH DIAERESIS -base uppercase \x00CD \x00ED Íí LATIN CAPITAL LETTER I WITH ACUTE - LATIN SMALL LETTER I WITH ACUTE -base uppercase \x00CE \x00EE Îî LATIN CAPITAL LETTER I WITH CIRCUMFLEX - LATIN SMALL LETTER I WITH CIRCUMFLEX -base uppercase \x00CF \x00EF Ïï LATIN CAPITAL LETTER I WITH DIAERESIS - LATIN SMALL LETTER I WITH DIAERESIS -base uppercase \x00D1 \x00F1 Ññ LATIN CAPITAL LETTER N WITH TILDE - LATIN SMALL LETTER N WITH TILDE -base uppercase \x00D2 \x00F2 Òò LATIN CAPITAL LETTER O WITH GRAVE - LATIN SMALL LETTER O WITH GRAVE -base uppercase \x00D3 \x00F3 Óó LATIN CAPITAL LETTER O WITH ACUTE - LATIN SMALL LETTER O WITH ACUTE -base uppercase \x00D4 \x00F4 Ôô LATIN CAPITAL LETTER O WITH CIRCUMFLEX - LATIN SMALL LETTER O WITH CIRCUMFLEX -base uppercase \x00D6 \x00F6 Öö LATIN CAPITAL LETTER O WITH DIAERESIS - LATIN SMALL LETTER O WITH DIAERESIS -base uppercase \x00D9 \x00F9 Ùù LATIN CAPITAL LETTER U WITH GRAVE - LATIN SMALL LETTER U WITH GRAVE -base uppercase \x00DA \x00FA Úú LATIN CAPITAL LETTER U WITH ACUTE - LATIN SMALL LETTER U WITH ACUTE -base uppercase \x00DB \x00FB Ûû LATIN CAPITAL LETTER U WITH CIRCUMFLEX - LATIN SMALL LETTER U WITH CIRCUMFLEX -base uppercase \x00DC \x00FC Üü LATIN CAPITAL LETTER U WITH DIAERESIS - LATIN SMALL LETTER U WITH DIAERESIS -base uppercase \x1E9E \x00DF ẞß LATIN CAPITAL LETTER SHARP S - LATIN SMALL LETTER SHARP S - -punctuation \x0021 235 ! EXCLAMATION MARK -punctuation \x0022 2356 " QUOTATION MARK -sign \x0023 5-3456 # NUMBER SIGN -sign \x0024 145 $ DOLLAR SIGN -sign \x0025 123456 % PERCENT SIGN -sign \x0026 12346a & AMPERSAND -punctuation \x0027 3 ' APOSTROPHE -punctuation \x0028 236 ( LEFT PARENTHESIS -punctuation \x0029 356 ) RIGHT PARENTHESIS -sign \x002A 35 * ASTERISK -math \x002B 235a + PLUS SIGN -punctuation \x002C 2 , COMMA -punctuation \x002D 36 - HYPHEN-MINUS -punctuation \x002E 256 . FULL STOP -math \x002F 34 / SOLIDUS - -include digits6Dots.uti -include litdigits6Dots.uti - -punctuation \x003A 25 : COLON -punctuation \x003B 23 ; SEMICOLON -math \x003C 5-246 < LESS-THAN SIGN -math \x003D 2356 = EQUALS SIGN -math \x003E 5-135 > GREATER-THAN SIGN -punctuation \x003F 26 ? QUESTION MARK -sign \x0040 345 @ COMMERCIAL AT -punctuation \x005B 12356 [ LEFT SQUARE BRACKET -sign \x005C 5-16 \ REVERSE SOLIDUS -punctuation \x005D 23456 ] RIGHT SQUARE BRACKET -sign \x005E 346 ^ CIRCUMFLEX ACCENT -sign \x005F 456 _ LOW LINE -punctuation \x0060 3 ` GRAVE ACCENT -sign \x007C 1456 | VERTICAL LINE -sign \x007B 5-12356 { LEFT CURLY BRACKET -sign \x007D 5-23456 } RIGHT CURLY BRACKET -math \x007E 5-26 ~ TILDE +noback letter A 1f +noback letter B 12f +noback letter C 14f +noback letter D 145f +noback letter E 15f +noback letter F 124f +noback letter G 1245f +noback letter H 125f +noback letter I 24f +noback letter J 245f +noback letter K 13f +noback letter L 123f +noback letter M 134f +noback letter N 1345f +noback letter O 135f +noback letter P 1234f +noback letter Q 12345f +noback letter R 1235f +noback letter S 234f +noback letter T 2345f +noback letter U 136f +noback letter V 1236f +noback letter W 2456f +noback letter X 1346f +noback letter Y 13456f +noback letter Z 1356f + + +noback lowercase \x00E0 12356a +noback uppercase \x00C0 12356af +nofor lowercase \x00E0 12356 +base uppercase \x00C0 \x00E0 Àà LATIN CAPITAL LETTER A WITH GRAVE - LATIN SMALL LETTER A WITH GRAVE + +noback lowercase \x00E1 12356b +noback uppercase \x00C1 12356bf +nofor lowercase \x00E1 12356 +base uppercase \x00C1 \x00E1 Áá LATIN CAPITAL LETTER A WITH ACUTE - LATIN SMALL LETTER A WITH ACUTE + +noback lowercase \x00E2 16a +noback uppercase \x00C2 16af +nofor lowercase \x00E2 16 +base uppercase \x00C2 \x00E2 Ââ LATIN CAPITAL LETTER A WITH CIRCUMFLEX - LATIN SMALL LETTER A WITH CIRCUMFLEX + +noback lowercase \x00E4 345a +noback uppercase \x00C4 345af +nofor lowercase \x00E4 345 +base uppercase \x00C4 \x00E4 Ää LATIN CAPITAL LETTER A WITH DIAERESIS - LATIN SMALL LETTER A WITH DIAERESIS + +noback lowercase \x00E7 12346a +noback uppercase \x00C7 12346af +nofor lowercase \x00E7 12346 +base uppercase \x00C7 \x00E7 Çç LATIN CAPITAL LETTER C WITH CEDILLA - LATIN SMALL LETTER C WITH CEDILLA + +lowercase \x00E8 2346 +uppercase \x00C8 2346f +base uppercase \x00C8 \x00E8 Èè LATIN CAPITAL LETTER E WITH GRAVE - LATIN SMALL LETTER E WITH GRAVE + +noback lowercase \x00E9 123456a +noback uppercase \x00C9 123456af +nofor lowercase \x00E9 123456 +base uppercase \x00C9 \x00E9 Éé LATIN CAPITAL LETTER E WITH ACUTE - LATIN SMALL LETTER E WITH ACUTE + +lowercase \x00EA 126 +uppercase \x00CA 126f +base uppercase \x00CA \x00EA Êê LATIN CAPITAL LETTER E WITH CIRCUMFLEX - LATIN SMALL LETTER E WITH CIRCUMFLEX + +lowercase \x00EB 1246 +uppercase \x00CB 1246f +base uppercase \x00CB \x00EB Ëë LATIN CAPITAL LETTER E WITH DIAERESIS - LATIN SMALL LETTER E WITH DIAERESIS + +noback lowercase \x00ED 34a +noback uppercase \x00CD 34af +nofor lowercase \x00ED 34 +base uppercase \x00CD \x00ED Íí LATIN CAPITAL LETTER I WITH ACUTE - LATIN SMALL LETTER I WITH ACUTE + +lowercase \x00EE 146 +uppercase \x00CE 146f +base uppercase \x00CE \x00EE Îî LATIN CAPITAL LETTER I WITH CIRCUMFLEX - LATIN SMALL LETTER I WITH CIRCUMFLEX + +lowercase \x00EF 12456 +uppercase \x00CF 12456f +base uppercase \x00CF \x00EF Ïï LATIN CAPITAL LETTER I WITH DIAERESIS - LATIN SMALL LETTER I WITH DIAERESIS + +noback lowercase \x00F1 12456a +noback uppercase \x00D1 12456af +nofor lowercase \x00F1 12456 +base uppercase \x00D1 \x00F1 Ññ LATIN CAPITAL LETTER N WITH TILDE - LATIN SMALL LETTER N WITH TILDE + +noback lowercase \x00F2 346b +noback uppercase \x00D2 346bf +nofor lowercase \x00F2 346 +base uppercase \x00D2 \x00F2 Òò LATIN CAPITAL LETTER O WITH GRAVE - LATIN SMALL LETTER O WITH GRAVE + +noback lowercase \x00F3 346c +noback uppercase \x00D3 346cf +nofor lowercase \x00F3 346 +base uppercase \x00D3 \x00F3 Óó LATIN CAPITAL LETTER O WITH ACUTE - LATIN SMALL LETTER O WITH ACUTE + +noback lowercase \x00F4 1456a +noback uppercase \x00D4 1456af +nofor lowercase \x00F4 1456 +base uppercase \x00D4 \x00F4 Ôô LATIN CAPITAL LETTER O WITH CIRCUMFLEX - LATIN SMALL LETTER O WITH CIRCUMFLEX + +noback lowercase \x00F6 246a +noback uppercase \x00D6 246af +nofor lowercase \x00F6 246 +base uppercase \x00D6 \x00F6 Öö LATIN CAPITAL LETTER O WITH DIAERESIS - LATIN SMALL LETTER O WITH DIAERESIS + +noback lowercase \x00F9 23456a +noback uppercase \x00D9 23456af +nofor lowercase \x00F9 23456 +base uppercase \x00D9 \x00F9 Ùù LATIN CAPITAL LETTER U WITH GRAVE - LATIN SMALL LETTER U WITH GRAVE + +noback lowercase \x00FA 23456b +noback uppercase \x00DA 23456bf +nofor lowercase \x00FA 23456 +base uppercase \x00DA \x00FA Úú LATIN CAPITAL LETTER U WITH ACUTE - LATIN SMALL LETTER U WITH ACUTE + +lowercase \x00FB 156 +uppercase \x00DB 156f +base uppercase \x00DB \x00FB Ûû LATIN CAPITAL LETTER U WITH CIRCUMFLEX - LATIN SMALL LETTER U WITH CIRCUMFLEX + +lowercase \x00FC 1256 +uppercase \x00DC 1256f +base uppercase \x00DC \x00FC Üü LATIN CAPITAL LETTER U WITH DIAERESIS - LATIN SMALL LETTER U WITH DIAERESIS + +noback lowercase \x00DF 2346a +noback uppercase \x1E9E 2346af +nofor lowercase \x00DF 2346 +base uppercase \x1E9E \x00DF ẞß LATIN CAPITAL LETTER SHARP S - LATIN SMALL LETTER SHARP S + + punctuation \x0021 235 ! EXCLAMATION MARK + punctuation \x0022 2356 " QUOTATION MARK +noback sign \x0023 5-3456a # NUMBER SIGN +nofor sign \x0023 5-3456 # NUMBER SIGN +noback sign \x0024 145a $ DOLLAR SIGN +nofor sign \x0024 145 $ DOLLAR SIGN + sign \x0025 123456 % PERCENT SIGN + sign \x0026 12346 & AMPERSAND + punctuation \x0027 3 ' APOSTROPHE + punctuation \x0028 236 ( LEFT PARENTHESIS + punctuation \x0029 356 ) RIGHT PARENTHESIS + sign \x002A 35 * ASTERISK + math \x002B 235a + PLUS SIGN + punctuation \x002C 2 , COMMA + punctuation \x002D 36 - HYPHEN-MINUS + punctuation \x002E 256 . FULL STOP + math \x002F 34 / SOLIDUS + +noback digit 0 2459 +noback digit 1 19 +noback digit 2 129 +noback digit 3 149 +noback digit 4 1459 +noback digit 5 159 +noback digit 6 1249 +noback digit 7 12459 +noback digit 8 1259 +noback digit 9 249 + +nofor digit 0 245 +nofor digit 1 1 +nofor digit 2 12 +nofor digit 3 14 +nofor digit 4 145 +nofor digit 5 15 +nofor digit 6 124 +nofor digit 7 1245 +nofor digit 8 125 +nofor digit 9 24 + +nofor litdigit 0 2459 +nofor litdigit 1 19 +nofor litdigit 2 129 +nofor litdigit 3 149 +nofor litdigit 4 1459 +nofor litdigit 5 159 +nofor litdigit 6 1249 +nofor litdigit 7 12459 +nofor litdigit 8 1259 +nofor litdigit 9 249 + +nofor litdigit 0 245 +nofor litdigit 1 1 +nofor litdigit 2 12 +nofor litdigit 3 14 +nofor litdigit 4 145 +nofor litdigit 5 15 +nofor litdigit 6 124 +nofor litdigit 7 1245 +nofor litdigit 8 125 +nofor litdigit 9 24 + + punctuation \x003A 25 : COLON + punctuation \x003B 23 ; SEMICOLON + math \x003C 5-246 < LESS-THAN SIGN +noback math \x003D 2356a = EQUALS SIGN +nofor math \x003D 2356 = EQUALS SIGN +noback math \x003E 5-135a > GREATER-THAN SIGN +nofor math \x003E 5-135 > GREATER-THAN SIGN + punctuation \x003F 26 ? QUESTION MARK + sign \x0040 345 @ COMMERCIAL AT + punctuation \x005B 12356 [ LEFT SQUARE BRACKET + sign \x005C 5-16 \ REVERSE SOLIDUS + punctuation \x005D 23456 ] RIGHT SQUARE BRACKET + sign \x005E 346 ^ CIRCUMFLEX ACCENT +noback sign \x005F 456a _ LOW LINE +nofor sign \x005F 456 _ LOW LINE + punctuation \x0060 3 ` GRAVE ACCENT + sign \x007C 1456 | VERTICAL LINE +noback sign \x007B 5-12356c { LEFT CURLY BRACKET +nofor sign \x007B 5-12356 { LEFT CURLY BRACKET +noback sign \x007D 5-23456c } RIGHT CURLY BRACKET +nofor sign \x007D 5-23456 } RIGHT CURLY BRACKET +noback math \x007E 5-26a ~ TILDE +nofor math \x007E 5-26 ~ TILDE # ---------------------------------------------------------------------------------------------- # Unicode 0080..00FF C1 Controls and Latin-1 Supplement # ---------------------------------------------------------------------------------------------- -sign \x0080 15 € - ANSI: EURO-CURRENCY SIGN - MACROMAN: A DIAERESIS -punctuation \x0082 3 ‚ BREAK PERMITTED HERE - ANSI: SINGLE LOW-9 QUOTATION MARK - MACROMAN: C CEDILLA -punctuation \x0084 2356 „ - ANSI: DOUBLE LOW-9 QUOTATION MARK - MACROMAN: N TILDE -punctuation \x0085 256-256-256 … NEXT LINE (NEL) - ANSI: HORIZONTAL ELLIPSIS - MACROMAN: O DIAERESIS -sign \x0086 235 † START OF SELECTED AREA - ANSI: DAGGER - MACROMAN: U DIAERESIS -punctuation \x0088 34 ˆ CHARACTER TABULATION SET - ANSI: MODIFIER LETTER CIRCUMFLEX ACCENT - MACROMAN: A GRAVE -sign \x0089 123456-123456 ‰ CHARACTER TABULATION WITH JUSTIFICATION - ANSI: PER MILLE SIGN - MACROMAN: A CIRCUMFLEX -punctuation \x008B 3 ‹ PARTIAL LINE FORWARD - ANSI: SINGLE LEFT-POINTING ANGLE QUOTATION MARK - MACROMAN: A TILDE -punctuation \x0091 3 ‘ PRIVATE USE ONE - ANSI: LEFT SINGLE QUOTATION MARK - MACROMAN: E DIAERESIS -punctuation \x0092 3 ’ PRIVATE USE TWO - ANSI: RIGHT SINGLE QUOTATION MARK - MACROMAN: I ACUTE -punctuation \x0093 2356 “ SET TRANSMIT STATE - ANSI: LEFT DOUBLE QUOTATION MARK - MACROMAN: I GRAVE -punctuation \x0094 2356 ” CANCEL CHARACTER - ANSI: RIGHT DOUBLE QUOTATION MARK - MACROMAN: I CIRCUMFLEX -sign \x0095 5-256 • MESSAGE WAITING - ANSI: BULLET - MACROMAN: I DIAERESIS -punctuation \x0096 36 – START OF GUARDED AREA - ANSI: EN DASH - MACROMAN: N TILDE -punctuation \x0097 36 — END OF GUARDED AREA - ANSI: EM DASH - MACROMAN: O ACUTE -sign \x0098 5-26 ˜ START OF STRING - ANSI: SMALL TILDE - MACROMAN: O GRAVE -sign \x0099 5-2345-134 ™ - ANSI: TRADE MARK SIGN - MACROMAN: O CIRCUMFLEX -punctuation \x009B 3 › CONTROL SEQUENCE INTRODUCER - ANSI: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - MACROMAN: O TILDE - -punctuation \x00A1 235 ¡ INVERTED EXCLAMATION MARK -sign \x00A2 14 ¢ CENT SIGN -sign \x00A3 1234 £ POUND SIGN -sign \x00A5 13456 ¥ YEN SIGN -sign \x00A7 346 § SECTION SIGN -sign \x00A9 5-14 © COPYRIGHT SIGN -punctuation \x00AB 2356 « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -punctuation \x00AD 36 ­ SOFT HYPHEN -sign \x00AE 5-1235 ® REGISTERED SIGN -sign \x00B0 4-356 ° DEGREE SIGN -sign \x00B1 235-36 ± PLUS-MINUS SIGN -math \x00B2 346-3456-12 ² SUPERSCRIPT TWO -math \x00B3 346-3456-14 ³ SUPERSCRIPT THREE -sign \x00B4 3 ´ ACUTE ACCENT -sign \x00B5 56-134 µ MICRO SIGN -math \x00B7 236 · MIDDLE DOT -sign \x00B8 45 ¸ CEDILLA -sign \x00B9 346-3456-1 ¹ SUPERSCRIPT ONE -sign \x00BA 4-356 º MASCULINE ORDINAL INDICATOR -punctuation \x00BB 2356 » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -math \x00BC 3456-1-34-3456-145 ¼ VULGAR FRACTION ONE QUARTER -math \x00BD 3456-1-34-3456-12 ½ VULGAR FRACTION ONE HALF -math \x00BE 3456-14-34-3456-145 ¾ VULGAR FRACTION THREE QUARTERS -punctuation \x00BF 26 ¿ INVERTED QUESTION MARK -math \x00D7 236 × MULTIPLICATION SIGN -math \x00F7 256 ÷ DIVISION SIGN - +noback sign \x0080 15a € - ANSI: EURO-CURRENCY SIGN - MACROMAN: A DIAERESIS +nofor sign \x0080 15 € - ANSI: EURO-CURRENCY SIGN - MACROMAN: A DIAERESIS + punctuation \x0082 3 ‚ BREAK PERMITTED HERE - ANSI: SINGLE LOW-9 QUOTATION MARK - MACROMAN: C CEDILLA + punctuation \x0084 2356 „ - ANSI: DOUBLE LOW-9 QUOTATION MARK - MACROMAN: N TILDE + punctuation \x0085 256-256-256 … NEXT LINE (NEL) - ANSI: HORIZONTAL ELLIPSIS - MACROMAN: O DIAERESIS + sign \x0086 235 † START OF SELECTED AREA - ANSI: DAGGER - MACROMAN: U DIAERESIS + punctuation \x0088 34 ˆ CHARACTER TABULATION SET - ANSI: MODIFIER LETTER CIRCUMFLEX ACCENT - MACROMAN: A GRAVE + sign \x0089 123456-123456 ‰ CHARACTER TABULATION WITH JUSTIFICATION - ANSI: PER MILLE SIGN - MACROMAN: A CIRCUMFLEX + punctuation \x008B 3 ‹ PARTIAL LINE FORWARD - ANSI: SINGLE LEFT-POINTING ANGLE QUOTATION MARK - MACROMAN: A TILDE + punctuation \x0091 3 ‘ PRIVATE USE ONE - ANSI: LEFT SINGLE QUOTATION MARK - MACROMAN: E DIAERESIS + punctuation \x0092 3 ’ PRIVATE USE TWO - ANSI: RIGHT SINGLE QUOTATION MARK - MACROMAN: I ACUTE + punctuation \x0093 2356 “ SET TRANSMIT STATE - ANSI: LEFT DOUBLE QUOTATION MARK - MACROMAN: I GRAVE + punctuation \x0094 2356 ” CANCEL CHARACTER - ANSI: RIGHT DOUBLE QUOTATION MARK - MACROMAN: I CIRCUMFLEX + sign \x0095 5-256 • MESSAGE WAITING - ANSI: BULLET - MACROMAN: I DIAERESIS + punctuation \x0096 36 – START OF GUARDED AREA - ANSI: EN DASH - MACROMAN: N TILDE + punctuation \x0097 36 — END OF GUARDED AREA - ANSI: EM DASH - MACROMAN: O ACUTE + sign \x0098 5-26 ˜ START OF STRING - ANSI: SMALL TILDE - MACROMAN: O GRAVE + sign \x0099 5-2345-134 ™ - ANSI: TRADE MARK SIGN - MACROMAN: O CIRCUMFLEX + punctuation \x009B 3 › CONTROL SEQUENCE INTRODUCER - ANSI: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - MACROMAN: O TILDE + + punctuation \x00A1 235 ¡ INVERTED EXCLAMATION MARK + sign \x00A2 14 ¢ CENT SIGN +noback sign \x00A3 1234a £ POUND SIGN +nofor sign \x00A3 1234 £ POUND SIGN +noback sign \x00A5 13456a ¥ YEN SIGN +nofor sign \x00A5 13456 ¥ YEN SIGN +noback sign \x00A7 346a § SECTION SIGN +nofor sign \x00A7 346 § SECTION SIGN +noback sign \x00A9 5-14a © COPYRIGHT SIGN +nofor sign \x00A9 5-14 © COPYRIGHT SIGN + punctuation \x00AB 2356 « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + punctuation \x00AD 36 ­ SOFT HYPHEN +noback sign \x00AE 5-1235a ® REGISTERED SIGN +nofor sign \x00AE 5-1235 ® REGISTERED SIGN +noback sign \x00B0 4-356a ° DEGREE SIGN +nofor sign \x00B0 4-356 ° DEGREE SIGN +noback sign \x00B1 235a-36 ± PLUS-MINUS SIGN +nofor sign \x00B1 235-36 ± PLUS-MINUS SIGN + sign \x00B4 3 ´ ACUTE ACCENT + sign \x00B5 56-134 µ MICRO SIGN +noback math \x00B7 236a · MIDDLE DOT +nofor math \x00B7 236 · MIDDLE DOT + sign \x00B8 45 ¸ CEDILLA +noback sign \x00BA 4-356a º MASCULINE ORDINAL INDICATOR +nofor sign \x00BA 4-356 º MASCULINE ORDINAL INDICATOR + punctuation \x00BB 2356 » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +noback math \x00BC 3456-19-34-3456-1459 ¼ VULGAR FRACTION ONE QUARTER +nofor math \x00BC 3456-1-34-3456-145 ¼ VULGAR FRACTION ONE QUARTER +noback math \x00BD 3456-19-34-3456-129 ½ VULGAR FRACTION ONE HALF +nofor math \x00BD 3456-1-34-3456-12 ½ VULGAR FRACTION ONE HALF +noback math \x00BE 3456-149-34-3456-1459 ¾ VULGAR FRACTION THREE QUARTERS +nofor math \x00BE 3456-14-34-3456-145 ¾ VULGAR FRACTION THREE QUARTERS + punctuation \x00BF 26 ¿ INVERTED QUESTION MARK +noback math \x00D7 236a × MULTIPLICATION SIGN +nofor math \x00D7 236 × MULTIPLICATION SIGN +noback math \x00F7 256a ÷ DIVISION SIGN +nofor math \x00F7 256 ÷ DIVISION SIGN + + +noback math \x00B9 346ab-3456-19a +nofor math \x00B9 346-3456-1 ¹ SUPERSCRIPT ONE + + +noback math \x00B2 346ab-3456-129a +nofor math \x00B2 346-3456-12 ² SUPERSCRIPT TWO + + +noback math \x00B3 346ab-3456-149a +nofor math \x00B3 346-3456-14 ³ SUPERSCRIPT THREE # ---------------------------------------------------------------------------------------------- # Unicode 0100..017F Latin Extended-A # ---------------------------------------------------------------------------------------------- -lowercase \x0192 124 ƒ LATIN SMALL LETTER F WITH HOOK -base uppercase \x0191 \x0192 Ƒƒ LATIN CAPITAL LETTER F WITH HOOK - LATIN SMALL LETTER F WITH HOOK + +lowercase \x0192 124 +uppercase \x0191 124f +base uppercase \x0191 \x0192 Ƒƒ LATIN CAPITAL LETTER F WITH HOOK - LATIN SMALL LETTER F WITH HOOK # ---------------------------------------------------------------------------------------------- @@ -213,35 +376,97 @@ sign \x2030 123456-123456 ‰ PER MILLE SI # Unicode 2070..209F Superscripts and Subscripts # ---------------------------------------------------------------------------------------------- -math \x2070 346-3456-245 ⁰ SUPERSCRIPT ZERO -math \x2074 346-3456-145 ⁴ SUPERSCRIPT FOUR -math \x2075 346-3456-15 ⁵ SUPERSCRIPT FIVE -math \x2076 346-3456-124 ⁶ SUPERSCRIPT SIX -math \x2077 346-3456-1245 ⁷ SUPERSCRIPT SEVEN -math \x2078 346-3456-125 ⁸ SUPERSCRIPT EIGHT -math \x2079 346-3456-24 ⁹ SUPERSCRIPT NINE -math \x207F 346-1345 ⁿ SUPERSCRIPT LATIN SMALL LETTER N -math \x2080 16-356 ₀ SUBSCRIPT ZERO -math \x2081 16-2 ₁ SUBSCRIPT ONE -math \x2082 16-23 ₂ SUBSCRIPT TWO -math \x2083 16-25 ₃ SUBSCRIPT THREE -math \x2084 16-256 ₄ SUBSCRIPT FOUR -math \x2085 16-26 ₅ SUBSCRIPT FIVE -math \x2086 16-235 ₆ SUBSCRIPT SIX -math \x2087 16-2356 ₇ SUBSCRIPT SEVEN -math \x2088 16-236 ₈ SUBSCRIPT EIGHT -math \x2089 16-35 ₉ SUBSCRIPT NINE -math \x2090 16-1 ₐ LATIN SUBSCRIPT SMALL LETTER A -math \x2091 16-15 ₑ LATIN SUBSCRIPT SMALL LETTER E -math \x2092 16-135 ₒ LATIN SUBSCRIPT SMALL LETTER O -math \x2093 16-1346 ₓ LATIN SUBSCRIPT SMALL LETTER X + + +noback math \x2070 346ab-3456-2459a +nofor math \x2070 346-3456-245 ⁰ SUPERSCRIPT ZERO + + +noback math \x2074 346ab-3456-1459a +nofor math \x2074 346-3456-145 ⁴ SUPERSCRIPT FOUR + + +noback math \x2075 346ab-3456-159a +nofor math \x2075 346-3456-15 ⁵ SUPERSCRIPT FIVE + + +noback math \x2076 346ab-3456-1249a +nofor math \x2076 346-3456-124 ⁶ SUPERSCRIPT SIX + + +noback math \x2077 346ab-3456-12459a +nofor math \x2077 346-3456-1245 ⁷ SUPERSCRIPT SEVEN + + +noback math \x2078 346ab-3456-1259a +nofor math \x2078 346-3456-125 ⁸ SUPERSCRIPT EIGHT + + +noback math \x2079 346ab-3456-249a +nofor math \x2079 346-3456-24 ⁹ SUPERSCRIPT NINE + +noback math \x207F 346ab-1345a +nofor math \x207F 346-1345 ⁿ SUPERSCRIPT LATIN SMALL LETTER N + + +noback math \x2080 16b-3569 +nofor math \x2080 16-356 ₀ SUBSCRIPT ZERO + + +noback math \x2081 16b-29 +nofor math \x2081 16-2 ₁ SUBSCRIPT ONE + + +noback math \x2082 16b-239 +nofor math \x2082 16-23 ₂ SUBSCRIPT TWO + + +noback math \x2083 16b-259 +nofor math \x2083 16-25 ₃ SUBSCRIPT THREE + + +noback math \x2084 16b-2569 +nofor math \x2084 16-256 ₄ SUBSCRIPT FOUR + + +noback math \x2085 16b-269 +nofor math \x2085 16-26 ₅ SUBSCRIPT FIVE + + +noback math \x2086 16b-2359 +nofor math \x2086 16-235 ₆ SUBSCRIPT SIX + + +noback math \x2087 16b-23569 +nofor math \x2087 16-2356 ₇ SUBSCRIPT SEVEN + + +noback math \x2088 16b-2369 +nofor math \x2088 16-236 ₈ SUBSCRIPT EIGHT + + +noback math \x2089 16b-359 +nofor math \x2089 16-35 ₉ SUBSCRIPT NINE + +noback math \x2090 16b-1c +nofor math \x2090 16-1 ₐ LATIN SUBSCRIPT SMALL LETTER A + +noback math \x2091 16b-15b +nofor math \x2091 16-15 ₑ LATIN SUBSCRIPT SMALL LETTER E + +noback math \x2092 16b-135c +nofor math \x2092 16-135 ₒ LATIN SUBSCRIPT SMALL LETTER O + +noback math \x2093 16b-1346a +nofor math \x2093 16-1346 ₓ LATIN SUBSCRIPT SMALL LETTER X # ---------------------------------------------------------------------------------------------- # Unicode 20A0..20CF Currency Symbols # ---------------------------------------------------------------------------------------------- -sign \x20AC 15 € EURO SIGN +noback sign \x20AC 15a € EURO SIGN +nofor sign \x20AC 15 € EURO SIGN # ---------------------------------------------------------------------------------------------- @@ -255,33 +480,65 @@ sign \x2122 5-2345-134 ™ TRADE MARK S # Unicode 2150..218F Number Forms # ---------------------------------------------------------------------------------------------- -math \x2150 3456-1-34-3456-1245 ⅐ VULGAR FRACTION ONE SEVENTH -math \x2151 3456-1-34-3456-24 ⅑ VULGAR FRACTION ONE NINTH -math \x2152 3456-1-34-3456-1-256 ⅒ VULGAR FRACTION ONE TENTH -math \x2153 3456-1-34-3456-14 ⅓ VULGAR FRACTION ONE THIRD -math \x2154 3456-12-34-3456-14 ⅔ VULGAR FRACTION TWO THIRDS -math \x2155 3456-1-34-3456-15 ⅕ VULGAR FRACTION ONE FIFTH -math \x2156 3456-12-34-3456-15 ⅖ VULGAR FRACTION TWO FIFTHS -math \x2157 3456-14-34-3456-15 ⅗ VULGAR FRACTION THREE FIFTHS -math \x2158 3456-145-34-3456-15 ⅘ VULGAR FRACTION FOUR FIFTHS -math \x2159 3456-1-34-3456-124 ⅙ VULGAR FRACTION ONE SIXTH -math \x215A 3456-15-34-3456-124 ⅚ VULGAR FRACTION FIVE SIXTHS -math \x215B 3456-1-34-3456-125 ⅛ VULGAR FRACTION ONE EIGHTH -math \x215C 3456-14-34-3456-125 ⅜ VULGAR FRACTION THREE EIGHTHS -math \x215D 3456-15-34-3456-125 ⅝ VULGAR FRACTION FIVE EIGHTHS -math \x215E 3456-1245-34-3456-125 ⅞ VULGAR FRACTION SEVEN EIGHTHS + +noback math \x2150 3456-19-34-3456-12459 +nofor math \x2150 3456-1-34-3456-1245 ⅐ VULGAR FRACTION ONE SEVENTH + +noback math \x2151 3456-19-34-3456-249 +nofor math \x2151 3456-1-34-3456-24 ⅑ VULGAR FRACTION ONE NINTH + +noback math \x2152 3456-19-34-3456-1-2569 +nofor math \x2152 3456-1-34-3456-1-256 ⅒ VULGAR FRACTION ONE TENTH + +noback math \x2153 3456-19-34-3456-149 +nofor math \x2153 3456-1-34-3456-14 ⅓ VULGAR FRACTION ONE THIRD + +noback math \x2154 3456-129-34-3456-149 +nofor math \x2154 3456-12-34-3456-14 ⅔ VULGAR FRACTION TWO THIRDS + +noback math \x2155 3456-19-34-3456-159 +nofor math \x2155 3456-1-34-3456-15 ⅕ VULGAR FRACTION ONE FIFTH + +noback math \x2156 3456-129-34-3456-159 +nofor math \x2156 3456-12-34-3456-15 ⅖ VULGAR FRACTION TWO FIFTHS + +noback math \x2157 3456-149-34-3456-159 +nofor math \x2157 3456-14-34-3456-15 ⅗ VULGAR FRACTION THREE FIFTHS + +noback math \x2158 3456-1459-34-3456-159 +nofor math \x2158 3456-145-34-3456-15 ⅘ VULGAR FRACTION FOUR FIFTHS + +noback math \x2159 3456-19-34-3456-1249 +nofor math \x2159 3456-1-34-3456-124 ⅙ VULGAR FRACTION ONE SIXTH + +noback math \x215A 3456-159-34-3456-1249 +nofor math \x215A 3456-15-34-3456-124 ⅚ VULGAR FRACTION FIVE SIXTHS + +noback math \x215B 3456-19-34-3456-1259 +nofor math \x215B 3456-1-34-3456-125 ⅛ VULGAR FRACTION ONE EIGHTH + +noback math \x215C 3456-149-34-3456-1259 +nofor math \x215C 3456-14-34-3456-125 ⅜ VULGAR FRACTION THREE EIGHTHS + +noback math \x215D 3456-159-34-3456-1259 +nofor math \x215D 3456-15-34-3456-125 ⅝ VULGAR FRACTION FIVE EIGHTHS + +noback math \x215E 3456-12459-34-3456-1259 +nofor math \x215E 3456-1245-34-3456-125 ⅞ VULGAR FRACTION SEVEN EIGHTHS # ---------------------------------------------------------------------------------------------- # Unicode 2200..22FF Mathematical Operators # ---------------------------------------------------------------------------------------------- -math \x2212 36 − MINUS SIGN -math \x2215 34 ∕ DIVISION SLASH -math \x2216 5-16 ∖ SET MINUS -math \x2217 35 ∗ ASTERISK OPERATOR -math \x2219 236 ∙ BULLET OPERATOR -math \x22C5 236 ⋅ DOT OPERATOR + math \x2212 36 − MINUS SIGN + math \x2215 34 ∕ DIVISION SLASH + math \x2216 5-16 ∖ SET MINUS + math \x2217 35 ∗ ASTERISK OPERATOR +noback math \x2219 236a ∙ BULLET OPERATOR +nofor math \x2219 236 ∙ BULLET OPERATOR +noback math \x22C5 236a ⋅ DOT OPERATOR +nofor math \x22C5 236 ⋅ DOT OPERATOR # ---------------------------------------------------------------------------------------------- diff --git a/braille/translate/src/phone/tables/ru-litbrl.ctb b/braille/translate/src/phone/tables/ru-litbrl.ctb index cf41891e9..388d13055 100644 --- a/braille/translate/src/phone/tables/ru-litbrl.ctb +++ b/braille/translate/src/phone/tables/ru-litbrl.ctb @@ -82,46 +82,7 @@ punctuation ; 23 # 59 punctuation ? 26 # 63 sign @ 146 # 64 -# the alphabet -noback lowercase \x0430 19 -noback lowercase \x0431 129 -noback lowercase \x0432 24569 -noback lowercase \x0433 12459 -noback lowercase \x0434 1459 -noback lowercase \x0435 159 -noback lowercase \x0436 2459 -noback lowercase \x0437 13569 -noback lowercase \x0438 249 -noback lowercase \x0439 123469 -noback lowercase \x043a 139 -noback lowercase \x043b 1239 -noback lowercase \x043c 1349 -noback lowercase \x043d 13459 -noback lowercase \x043e 1359 -noback lowercase \x043f 12349 -noback lowercase \x0440 12359 -noback lowercase \x0441 2349 -noback lowercase \x0442 23459 -noback lowercase \x0443 1369 -noback lowercase \x0444 1249 -noback lowercase \x0445 1259 -noback lowercase \x0446 149 -noback lowercase \x0447 123459 -noback lowercase \x0448 1569 -noback lowercase \x0449 13469 -noback lowercase \x044a 123569 -noback lowercase \x044b 23469 -noback lowercase \x044c 234569 -noback lowercase \x044d 2469 -noback lowercase \x044e 12569 -noback lowercase \x044f 12469 -noback lowercase \x0451 169 - -# For back translation - -# Note that for the "nofor context !#4=0[!%uppercyrillic] *#4=0" -# (back-translation) rule to work these need to come after the "noback -# lowercase" rules above. +# The alphabet lowercase \x0430 1 lowercase \x0431 12 @@ -160,12 +121,6 @@ lowercase \x0451 16 # We're using "base uppercase" rather than "uppercase" because # ru-litbrl.ctb is also included in ru-ru-g1.ctb which defines capital # signs. - -# The "noback always" rules were added because Cyrillic characters are -# expected to get a dot 9. Without these rules, the uppercase letters -# would not get a dot 9 because the "lowercase" rules (included for -# back-translation, see above) would have precedence. - base uppercase \x0410 \x0430 base uppercase \x0411 \x0431 base uppercase \x0412 \x0432 @@ -200,7 +155,41 @@ base uppercase \x042e \x044e base uppercase \x042f \x044f base uppercase \x0401 \x0451 -noback always \x0401 169 +# Add dot 9 to Cyrillic characters +noback always \x0430 19 +noback always \x0431 129 +noback always \x0432 24569 +noback always \x0433 12459 +noback always \x0434 1459 +noback always \x0435 159 +noback always \x0436 2459 +noback always \x0437 13569 +noback always \x0438 249 +noback always \x0439 123469 +noback always \x043a 139 +noback always \x043b 1239 +noback always \x043c 1349 +noback always \x043d 13459 +noback always \x043e 1359 +noback always \x043f 12349 +noback always \x0440 12359 +noback always \x0441 2349 +noback always \x0442 23459 +noback always \x0443 1369 +noback always \x0444 1249 +noback always \x0445 1259 +noback always \x0446 149 +noback always \x0447 123459 +noback always \x0448 1569 +noback always \x0449 13469 +noback always \x044a 123569 +noback always \x044b 23469 +noback always \x044c 234569 +noback always \x044d 2469 +noback always \x044e 12569 +noback always \x044f 12469 +noback always \x0451 169 + noback always \x0410 19 noback always \x0411 129 noback always \x0412 24569 @@ -233,6 +222,7 @@ noback always \x042c 234569 noback always \x042d 2469 noback always \x042e 12569 noback always \x042f 12469 +noback always \x0401 169 # Fix the problem with double code points for 'Ё' and 'Й' noback always \x0415\x0308 169 @@ -327,7 +317,8 @@ sign \x00a5 4-13456 # 165 yen sign sign \x00a7 346 # 167 section sign \x00a7 sign \x00a9 126-46-14-345 # 169 © copyright sign sign \x00ae 126-46-1235-345 # registered -math = 2356 +noback math = 2356 +nofor math = 56-2356 replace \x00ad - # 173 soft hyphen noback sign \x00b4 4 # acute accent sign noback sign \x00b5 56-134 # micro sign, (mu) @@ -460,7 +451,7 @@ noback math \x2217 35 # asterisk operator math \x00b0 46-356 noback math \x2103 46-356-46-14 noback math \x2109 46-356-46-124 -math \x221e 12456 # infinity +noback math \x221e 12456 # infinity noback math \x222b 2346 # integral noback math \x222c 2346-2346 # double integral noback math \x222d 2346-2346-2346 # triple integral diff --git a/braille/translate/src/phone/tables/sr-Cyrl.ctb b/braille/translate/src/phone/tables/sr-Cyrl.ctb new file mode 100644 index 000000000..32871a6e7 --- /dev/null +++ b/braille/translate/src/phone/tables/sr-Cyrl.ctb @@ -0,0 +1,59 @@ +#-index-name: Serbian, Cyrillic +#-display-name: Serbian braille for Cyrillic script +# +# This table is identical to sr.tbl when doing forward translation +# When backtranslating it prefers using Cyrillic characters over latin ones. +# +#+language: sr-Cyrl +#+direction: both +#+type: literary +#+contraction: no +# +# TODO: Please add a reference to official documentation about +# the implemented braille code. Preferably submit the documents +# to https://github.com/liblouis/braille-specs. +# +# Copyright (C) 2011 by Peter Engström +# Copyright (C) 2011 by Monk Jeremiah, Manastir Decani +# +# This file is part of liblouis. +# +# liblouis is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# liblouis is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with liblouis. If not, see +# . +# +# ----------------------------------------------------------------------------- +# +# SERBIAN +# ======= +# Authors: Peter Engström, Index Braille +# Monk Jeremiah, Manastir Decani +# Aleksandar Sredojevic +# +# Date: Note: +# 2011-03-28 Initial release +# 2015-08-28 Additions and fixes by Zvonimir Stanecic +# 2024-03-20 Add cyrillic backtranslation by Aleksandar Sredojevic +# 2024-05-21 subsequant reorganization by Aleksandar Sredojevic +# +# --------------------------------------------------------------------------------------- + +space \x00a0 a +include spaces.uti +include sr-cyrletters.cti +include sr-latletters.cti +noback always lj 126 +noback always nj 1246 +noback always dž 12456 +include sr-common.cti +include braille-patterns.cti diff --git a/braille/translate/src/phone/tables/sr-g1.ctb b/braille/translate/src/phone/tables/sr-g1.ctb index 4eec9c95f..1821468da 100644 --- a/braille/translate/src/phone/tables/sr-g1.ctb +++ b/braille/translate/src/phone/tables/sr-g1.ctb @@ -1,6 +1,19 @@ +#-index-name: Serbian +#-display-name: Serbian braille +# +#+language: sr +#+language: sr-Latn +#+direction: both +#+type: literary +#+contraction: no +# +# TODO: Please add a reference to official documentation about +# the implemented braille code. Preferably submit the documents +# to https://github.com/liblouis/braille-specs. # # Copyright (C) 2011 by Peter Engström # Copyright (C) 2011 by Monk Jeremiah, Manastir Decani +# Copyright (C) 2024 Aleksandar Sredojevic # # This file is part of liblouis. # @@ -24,94 +37,21 @@ # ======= # Authors: Peter Engström, Index Braille # Monk Jeremiah, Manastir Decani +# Aleksandar Sredojevic # # Date: Note: # 2011-03-28 Initial release # 2015-08-28 Additions and fixes by Zvonimir Stanecic +# 2024-05-21 Reorganization by Aleksandar Sredojevic # # --------------------------------------------------------------------------------------- -include sr-chardefs.cti -include braille-patterns.cti - -numsign 3456 # number sign -capsletter 46 -begcapsword 45 - -prepunc `` 236 -# --- Emphasis opcodes --------------------------------------------------------- -emphclass italic -emphclass underline -emphclass bold - -endemphphrase italic after 6-3 -lenemphphrase italic 1 -begemphword italic 6-456 -endemphword italic 6-3 -emphletter italic 456 - -endemphphrase bold after 6-3 -lenemphphrase bold 1 -begemphword bold 6-456 -endemphword bold 6-3 -emphletter bold 456 - -endemphphrase underline after 6-3 -lenemphphrase underline 1 -begemphword underline 6-456 -endemphword underline 6-3 -emphletter underline 456 - -#----------- SPECIAL SYLLABLES ------------------------------------------------ -always \x0044\x017D 12456 # LATIN CAPITAL LETTER D + LATIN CAPITAL LETTER Z WITH CARON -always \x0044\x017E 12456 # LATIN CAPITAL LETTER D + LATIN SMALL LETTER Z WITH CARON -always \x0064\x017E 12456 # LATIN SMALL LETTER D + LATIN SMALL LETTER Z WITH CARON -always LJ 126 # LJ -always Lj 126 # Lj -always lj 126 # lj -always NJ 1246 # NJ -always Nj 1246 # Nj -always nj 1246 # nj -#----------------------------------------------------------------------------- - -#----------- SPECIAL WORDS --------------------------------------------------- -word injekc 24-1345-245-15-13-14 -word injekt 24-1345-245-15-13-2345 -word konjunk 13-135-1345-245-136-1345-13 -word konjug 13-135-1345-245-136-1245 -word nadživ 1345-1-145-2346-24-1236 -word odživ 135-145-2346-24-1236 -word predživot 1234-1235-15-145-2346-24-1236-135-2345 -word tanjug 2345-1-1345-245-136-1245 -#----------------------------------------------------------------------------- - -# mathematical symbols -midnum ­ 36 -midnum - 36 -endnum % 3456-245-356 #46 - - -# special character sequences -literal :// URLs -literal www. - -literal .com -literal .edu -literal .gov -literal .mil -literal .net -literal .org - -literal .doc -literal .htm -literal .html -literal .tex -literal .txt - -literal .gif -literal .jpg -literal .png -literal .wav - -literal .tar -literal .zip +space \x00a0 a +include spaces.uti +include sr-latletters.cti +always lj 126 +always nj 1246 +always dž 12456 +include sr-cyrletters.cti +include sr-common.cti +include braille-patterns.cti \ No newline at end of file diff --git a/braille/translate/src/phone/tables/sv-g0.utb b/braille/translate/src/phone/tables/sv-g0.utb index 81db89aa0..5f54e3c62 100644 --- a/braille/translate/src/phone/tables/sv-g0.utb +++ b/braille/translate/src/phone/tables/sv-g0.utb @@ -4,7 +4,7 @@ #-index-name: Swedish, uncontracted #-display-name: Swedish uncontracted braille # -# Copyright (C) 2022 Insyn Scandinavia AB +# Copyright (C) 2022-2023 Insyn Scandinavia AB # Copyright (C) 2012 Mesar Hameed # Copyright (C) 2004-2008 ViewPlus Technologies, Inc. www.viewplus.com # Copyright (C) 2004-2006 JJB Software, Inc. www.jjb-software.com @@ -28,9 +28,9 @@ #-maintainer: Insyn Scandinavia AB # # This braille table is based on the following documentation: -# Svenska skrivregler för punktskrift: +# Svenska skrivregler för punktskrift (2009): # https://www.mtm.se/skrivregler/dtb-bm-l1.html -# Kortskrift nivå 1 och 2: +# Kortskrift nivå 1 och 2 (1997): # https://www.mtm.se/contentassets/08089b067f61495da1b035390d7a120e/kortskrift-niva-1-och-2---1997---nytt-manuskript-2016-09-26_v4.pdf # # This file is part of liblouis. @@ -56,10 +56,16 @@ #+contraction: no #+grade: 0 #+dots: 6 -#+direction: forward +#+direction: both + +# Characters not to backtranslate (must be included for braille input to work) +include braille-patterns.cti + +# Character class used for phonetics +attribute Phoneticchars  # Spaces -space \x00a0 a +noback space \x00a0 0 include spaces.uti # Punctuation @@ -70,6 +76,7 @@ punctuation ( 236 punctuation ) 356 punctuation , 2 hyphen - 36 +noback punctuation ­ 36 punctuation . 3 punctuation : 25 punctuation ; 23 @@ -78,18 +85,16 @@ punctuation [ 12356 punctuation ] 23456 punctuation { 6-12356 punctuation } 6-23456 -punctuation « 45-2356 -punctuation » 2356-12 -noback punctuation \x2010 46 -noback punctuation \x2011 46 -punctuation \x2013 36-36 -punctuation \x2018 5 -sign \x2019 5 -punctuation \x201C 56 -punctuation \x201D 56 -punctuation \x201E 56 -punctuation \x201F 56 -punctuation \x2026 3-3-3 +noback punctuation ‐ 36 +noback punctuation ‑ 36 +punctuation – 36-36 +noback punctuation ‘ 5 +noback sign ’ 5 +noback punctuation “ 56 +noback punctuation ” 56 +noback punctuation „ 56 +noback punctuation ‟ 56 +noback punctuation … 3-3-3 # Special signs sign # 45-3456 @@ -99,7 +104,7 @@ sign % 1456 sign ‰ 1456-1456 sign & 12346 sign * 35 -noback sign \x2606 35 +noback sign ☆ 35 sign _ 45-36 sign @ 45-12356 sign ^ 4 @@ -107,47 +112,50 @@ sign \\ 45-34 sign | 456 sign ¢ 45-14 sign £ 45-123 -sign ¤ 45-15 sign ¥ 45-13456 -sign ○ 12456-1245 -sign ∙ 12456-3 +noback sign ○ 12456-1245 sign § 346 sign © 236-14-356 sign ® 236-1235-356 sign ™ 236-2345-134-356 -sign ° 4-356 -sign ² 4-6-126 -sign ³ 4-6-146 -sign ¹ 4-6-16 -sign \x20AC 15-136-1235-135 -noback sign \x25CF 35 +sign ° 12456-1245 noback sign † 45-256 # Math math + 256 +noback math − 36 math / 34 -math < 246-3 +math < 3456-246 math = 2356 -math > 135-2 +math > 3456-135 math ~ 45-25 -math ¼ 3456-1-34-3456-145 -math ½ 3456-1-34-3456-12 -math ¾ 3456-14-34-3456-145 +noback math ¼ 3456-1-34-3456-145 +noback math ½ 3456-1-34-3456-12 +noback math ¾ 3456-14-34-3456-145 math × 12456-1346 -math ÷ 34 +noback math ÷ 1256 +math √ 146 +noback math 〈 6-236 +noback math 〉 6-356 +math 〈 6-236 +math 〉 6-356 +math ∙ 12456-3 +noback math ¹ 346-3456-1 +noback math ² 346-3456-12 +noback math ³ 346-3456-14 # Letters include latinLetterDef6Dots.uti include digits6Dots.uti include litdigits6Dots.uti -base uppercase \x00C0 \x00E0 -lowercase \x00E0 12356 +base uppercase À à +lowercase à 12356 base uppercase Ä ä lowercase ä 345 base uppercase Å å lowercase å 16 -base uppercase \x00C8 \x00E8 -lowercase \x00E8 2346 +base uppercase È è +lowercase è 2346 base uppercase É é lowercase é 123456 base uppercase Ö ö @@ -171,27 +179,26 @@ repeated ___ 45-36-45-36-45-36 always \s--\s 36-36 numericnocontchars abcdefghij midendnumericmodechars .,\x00a0 -midnum \x00a0 3 +noback midnum \x00a0 3 nonumsign 156 undefined 3678 # Bullets -noback always \x2043 123456 -noback always \xf0b7 123456 -noback always \x2022 123456 -noback always \x25a0 123456 -noback always \x25e6 4-123456 -noback always ▪ 45-123456 +noback sign ● 4-123456 +noback sign ⁃ 4-123456 +noback sign  4-123456 +noback sign • 4-123456 +noback sign ■ 4-123456 +noback sign ◦ 4-123456 +noback sign ▪ 45-123456 # Emojis -noback always \x221a 0 -noback always \xDE0A 25-356 -noback always \xF04A 25-356 -noback always \x263A 25-356 -noback always \xde1d 25-1234 -noback always \x2190 246-25 -noback always \x2192 25-135 -noback always \x2014 36-36 +noback always � 25-356 +noback always ☺ 25-356 +noback always � 25-1234 +noback always ← 246-25 +noback always → 25-135 +noback always — 36-36 # Characters to ignore replace \x0192 @@ -231,8 +238,6 @@ replace \xea98 replace \xeb03 replace \xeb06 replace \xee92 -replace \xf054 -replace \xf059 replace \xf108 replace \xf123 replace \xfffd @@ -242,15 +247,11 @@ replace \xf015 replace \xf105 replace \xf002 replace \xf00a -replace \xf03a -replace \xf067 -replace \xf07a replace \xf15d replace \xf099 replace \xf0d2 replace \xf09a replace \xf1d8 -replace \xf040 replace \xf00c replace \xf058 replace \x200e @@ -259,26 +260,28 @@ replace \x200f replace \xD83D # Diacritic A +base uppercase Æ æ +lowercase æ 4-345 base uppercase Á á -lowercase á 346-35-1 +noback lowercase á 12356 base uppercase Ȁ ȁ -lowercase ȁ 4-1 346-26-26-1 +noback lowercase ȁ 4-1 346-26-26-1 base uppercase Ǟ ǟ lowercase ǟ 346-23-1 base uppercase Ǻ ǻ -lowercase ǻ 4-1 +noback lowercase ǻ 4-1 base uppercase Ǻ ǻ -lowercase ǻ 4-1 +noback lowercase ǻ 4-1 base uppercase Ḁ ḁ -lowercase ḁ 4-1 +noback lowercase ḁ 4-1 base uppercase  â lowercase â 346-235-1 base uppercase Ấ ấ -lowercase ấ 4-1 +noback lowercase ấ 4-1 base uppercase Ầ ầ -lowercase ầ 4-1 +noback lowercase ầ 4-1 base uppercase Ẩ ẩ -lowercase ẩ 4-1 +noback lowercase ẩ 4-1 base uppercase à ã lowercase ã 346-25-1 base uppercase Ǎ ǎ @@ -288,80 +291,88 @@ lowercase ȧ 346-3-1 base uppercase Ạ ạ lowercase ạ 236-3-1 base uppercase Ǡ ǡ -lowercase ǡ 4-1 +noback lowercase ǡ 4-1 base uppercase Ā ā lowercase ā 346-36-1 base uppercase Ă ă -lowercase ă 4-1 +noback lowercase ă 4-1 base uppercase Ȃ ȃ -lowercase ȃ 4-1 +noback lowercase ȃ 4-1 base uppercase Ặ ặ -lowercase ặ 4-1 +noback lowercase ặ 4-1 base uppercase Ả ả -lowercase ả 4-1 -lowercase ẚ 4-1 +noback lowercase ả 4-1 +noback lowercase ẚ 4-1 base uppercase Ą ą -lowercase ą 4-1 +noback lowercase ą 4-1 # Diacritic B -lowercase ᵬ 4-12 +noback lowercase ᵬ 4-12 base uppercase Ḃ ḃ lowercase ḃ 346-3-12 base uppercase Ḅ ḅ lowercase ḅ 126-3-12 base uppercase Ḇ ḇ -lowercase ḇ 4-12 +noback lowercase ḇ 4-12 base uppercase Ƀ ƀ -lowercase ƀ 4-12 +noback lowercase ƀ 4-12 base uppercase Ɓ ɓ -lowercase ɓ 4-12 -lowercase ᶀ 4-12 +noback lowercase ɓ 4-12 +noback lowercase ᶀ 4-12 base uppercase Ƃ ƃ -lowercase ƃ 4-12 +noback lowercase ƃ 4-12 # Diacritic C base uppercase Ć ć lowercase ć 346-35-14 base uppercase Ç ç lowercase ç 126-2-14 base uppercase Ḉ ḉ -lowercase ḉ 4-14 +noback lowercase ḉ 4-14 base uppercase Ĉ ĉ lowercase ĉ 346-235-14 base uppercase Č č -lowercase č 346-2356-14 +lowercase č 146 base uppercase Ċ ċ lowercase ċ 346-3-14 base uppercase Ȼ ȼ -lowercase ȼ 4-14 +noback lowercase ȼ 4-14 base uppercase Ꞓ ꞓ -lowercase ꞓ 4-14 +noback lowercase ꞓ 4-14 # Diacritic D +base uppercase Ḑ ḑ lowercase ḑ 126-2-145 +base uppercase Ḓ ḓ lowercase ḓ 126-235-145 base uppercase Ď ď lowercase ď 346-2356-145 base uppercase Ḋ ḋ lowercase ḋ 346-3-145 lowercase ḍ 126-3-145 -lowercase ḏ 4-145 +noback lowercase ḏ 4-145 base uppercase Đ đ -lowercase đ 4-145 -lowercase ƌ 4-145 -lowercase ȡ 4-145 +noback lowercase đ 1456 +base uppercase Ƌ ƌ +noback lowercase ƌ 4-145 +noback lowercase ȡ 4-145 base uppercase Ɖ ɖ -lowercase ɖ 4-145 +noback lowercase ɖ 4-145 base uppercase ɗ Ɗ -lowercase Ɗ 4-145 +noback lowercase Ɗ 4-145 # Diacritic E +base uppercase Ȅ ȅ lowercase ȅ 346-26-26-15 +base uppercase Ȩ ȩ lowercase ȩ 126-2-15 -lowercase ḝ 4-15 +base uppercase Ḝ ḝ +noback lowercase ḝ 4-15 base uppercase Ë ë lowercase ë 346-23-15 base uppercase Ê ê lowercase ê 346-235-15 +base uppercase Ḙ ḙ lowercase ḙ 126-235-15 base uppercase Ẽ ẽ lowercase ẽ 346-25-15 +base uppercase Ḛ ḛ lowercase ḛ 126-25-15 base uppercase Ě ě lowercase ě 346-2356-15 @@ -372,19 +383,21 @@ lowercase ẹ 126-3-15 base uppercase Ē ē lowercase ē 346-36-15 base uppercase Ḗ ḗ -lowercase ḗ 4-15 +noback lowercase ḗ 4-15 lowercase ḕ 4-15 -lowercase ĕ 4-15 -lowercase ȇ 4-15 +base uppercase Ĕ ĕ +noback lowercase ĕ 4-15 +base uppercase Ȇ ȇ +noback lowercase ȇ 4-15 base uppercase Ę ę -lowercase ę 4-15 +noback lowercase ę 4-15 # Diacritic I base uppercase Í í lowercase í 346-35-24 base uppercase Ì ì lowercase ì 346-26-24 base uppercase Ï ï -lowercase ï 346-23-24 +noback lowercase ï 34 base uppercase Î î lowercase î 346-235-24 base uppercase Ī ī @@ -395,28 +408,39 @@ lowercase ĺ 346-35-123 base uppercase Ḷ ḷ lowercase ḷ 126-3-123 base uppercase Ḹ ḹ -lowercase ḹ 4-123 +noback lowercase ḹ 4-123 # Diacritic M base uppercase ṁ ḿ lowercase ḿ 346-3-134 +base uppercase Ṃ ṃ lowercase ṃ 126-3-134 # Diacritic N +base uppercase Ń ń lowercase ń 346-35-1345 +base uppercase Ǹ ǹ lowercase ǹ 346-26-1345 base uppercase ņ ń lowercase ń 126-2-1345 +base uppercase Ṋ ṋ lowercase ṋ 126-235-1345 base uppercase Ñ ñ lowercase ñ 346-25-1345 +base uppercase Ň ň lowercase ň 346-2356-1345 +base uppercase Ṅ ṅ lowercase ṅ 346-3-1345 +base uppercase Ṇ ṇ lowercase ṇ 126-3-1345 -lowercase ṉ 4-1345 -lowercase ȵ 4-1345 -lowercase ƞ 4-1345 -lowercase ɲ 4-1345 -lowercase ŋ 4-1345 -lowercase ɳ 4-1345 +base uppercase Ṉ ṉ +noback lowercase ṉ 4-1345 +noback lowercase ȵ 4-1345 +base uppercase Ƞ ƞ +noback lowercase ƞ 4-1345 +base uppercase Ɲ ɲ +noback lowercase ɲ 4-1345 +base uppercase Ŋ ŋ +lowercase ŋ 1246 +noback lowercase ɳ 4-1345 # Diacritic O base uppercase Ó ó lowercase ó 346-35-135 @@ -427,29 +451,40 @@ lowercase ô 346-235-135 base uppercase Õ õ lowercase õ 346-25-135 # Diacritic P +base uppercase Ṕ ṕ lowercase ṕ 346-35-1234 +base uppercase Ṗ ṗ lowercase ṗ 346-3-1234 -lowercase ƥ 4-1234 +base uppercase Ƥ ƥ +noback lowercase ƥ 4-1234 # Diacritic Q -lowercase ʠ 4-12345 +noback lowercase ʠ 4-12345 base uppercase Ɋ ɋ -lowercase ɋ 4-12345 +noback lowercase ɋ 4-12345 # Diacritic R +base uppercase Ŕ ŕ lowercase ŕ 346-35-1235 +base uppercase Ȑ ȑ lowercase ȑ 346-26-26-1235 +base uppercase Ṙ ṙ lowercase ṙ 346-3-1235 +base uppercase Ṛ ṛ lowercase ṛ 126-3-1235 -lowercase ṝ 4-1235 -lowercase ṟ 4-1235 +base uppercase Ṝ ṝ +noback lowercase ṝ 4-1235 +base uppercase Ṟ ṟ +noback lowercase ṟ 4-1235 base uppercase Ř ř -lowercase ř 4-1235 -lowercase ȓ 4-1235 -lowercase ɼ 4-1235 -lowercase ɽ 4-1235 -lowercase ɾ 4-1235 +noback lowercase ř 4-1235 +base uppercase Ȓ ȓ +noback lowercase ȓ 4-1235 +noback lowercase ɼ 4-1235 +base uppercase Ɽ ɽ +noback lowercase ɽ 4-1235 +noback lowercase ɾ 4-1235 # Diacritic S base uppercase Š š -lowercase š 156 +noback lowercase š 156 # Diacritic T base uppercase Ţ ţ lowercase ţ 126-2-2345 @@ -461,14 +496,14 @@ lowercase ṫ 346-3-2345 base uppercase Ṭ ṭ lowercase ṭ 126-3-2345 base uppercase Ț ț -lowercase ț 4-2345 +noback lowercase ț 4-2345 base uppercase Ṯ ṯ -lowercase ṯ 4-2345 +noback lowercase ṯ 4-2345 base uppercase Ŧ ŧ -lowercase ŧ 4-2345 +noback lowercase ŧ 1256 base uppercase Ʈ ʈ -lowercase ʈ 4-2345 -lowercase ƫ 4-2345 +noback lowercase ʈ 4-2345 +noback lowercase ƫ 4-2345 # Diacritic U base uppercase Ú ú lowercase ú 346-35-136 @@ -479,8 +514,11 @@ lowercase û 346-235-136 base uppercase Ū ū lowercase ū 346-36-136 # Diacritic W +base uppercase Ẃ ẃ lowercase ẃ 346-35-2456 +base uppercase Ẁ ẁ lowercase ẁ 346-26-2456 +base uppercase Ẅ ẅ lowercase ẅ 346-23-2456 # Diacritic Y base uppercase Ý ý @@ -491,24 +529,104 @@ base uppercase Ÿ ÿ lowercase ÿ 346-23-13456 # Diacritic Ž base uppercase Ž ž -lowercase ž 346-2356-2346 +lowercase ž 2346 # Sami # Other diacritic letters -lowercase ø 4-135 -lowercase œ 4-246 -lowercase ß 4-234 +base uppercase Ø ø +noback lowercase ø 4-135 +base uppercase Œ œ +noback lowercase œ 4-246 +base uppercase ẞ ß +noback lowercase ß 4-234 base uppercase Ð ð -lowercase ð 4-145 -lowercase þ 4-2345 +noback lowercase ð 4-145 +base uppercase Þ þ +noback lowercase þ 4-2345 # Diacritical marks sign ´ 45-35 sign ` 45-26 sign ¸ 45-2 -sign ˆ 45-235 +noback sign ˆ 45-235 +sign ^ 45-235 sign ˇ 45-2356 sign ¨ 45-23 -sign æ 4-345 sign ḝ 45 sign ḝ 45 -# Characters not to backtranslate (must be included for braille input to work) -include braille-patterns.cti +# Phonetics +noback always  256-16 +noback sign  1 +noback sign  235-1 +noback sign  16 +noback sign  235-16 +noback sign  146 +noback sign  346 +noback sign  235-12 +noback sign  14 +noback sign  235-234 +noback sign  256-145 +noback always  145-2346 +noback sign  12456 +noback sign  15 +noback sign  26 +noback sign  345 +noback sign  235-345 +noback always  256-345 +noback sign  1245 +noback sign  235-1245 +noback sign  125 +noback sign  236-125 +noback sign  1346-156 +noback sign  23456 +noback sign  24 +noback sign  34 +noback sign  13 +noback sign  123 +noback sign  256-123 +noback sign  123456 +noback sign  1246 +noback sign  256-1345 +noback sign  135 +noback sign  356-135 +noback sign  1456 +noback sign  1256 +noback sign  246 +noback sign  35-246 +noback always  256-246 +noback sign  126 +noback always  256-126 +noback sign  1234 +noback sign  235-1235 +noback sign  3456 +noback sign  35-1235 +noback sign  234 +noback sign  256-234 +noback sign  156 +noback sign  2345 +noback sign  256-2345 +noback sign  136 +noback sign  356-136 +noback sign  12356 +noback sign  1236 +noback sign  2456 +noback sign  1346 +noback sign  13456 +noback sign  12346 +noback sign  235-13456 +noback sign  1356 +noback sign  2346 +noback sign  134 +noback sign  25 +noback sign  1235 +noback sign  45 +noback sign  12 +noback sign  145 +noback sign  26 +noback sign  1345 +noback sign  124 +noback sign  245 +noback sign  4 +noback punctuation  56-2356 +noback punctuation  56-2356 +noback context [$w]"" @256* # Swap places for these characters +noback context $w[]"(" @6 # Insert dot 6 before parenthesis +noback context $w[]")" @6 # Insert dot 6 before parenthesis diff --git a/braille/translate/src/phone/tables/sv-g1.ctb b/braille/translate/src/phone/tables/sv-g1.ctb index b8af284ea..af92aa431 100644 --- a/braille/translate/src/phone/tables/sv-g1.ctb +++ b/braille/translate/src/phone/tables/sv-g1.ctb @@ -4,9 +4,9 @@ #-index-name: Swedish, partially contracted #-display-name: Swedish partially contracted braille # -# Copyright (C) 2022 Insyn Scandinavia AB +# Copyright (C) 2022-2023 Insyn Scandinavia AB # -#-copyright: 2022, Insyn Scandinavia AB +#-copyright: 2022-2023, Insyn Scandinavia AB # # This braille table is a heavily updated version of the former # Swedish braille table called Se-Se-G1.utb which was quite outdated and @@ -22,9 +22,9 @@ #-maintainer: Insyn Scandinavia AB # # This braille table is based on the following documentation: -# Svenska skrivregler för punktskrift: +# Svenska skrivregler för punktskrift (2009): # https://www.mtm.se/skrivregler/dtb-bm-l1.html -# Kortskrift nivå 1 och 2: +# Kortskrift nivå 1 och 2 (1997): # https://www.mtm.se/contentassets/08089b067f61495da1b035390d7a120e/kortskrift-niva-1-och-2---1997---nytt-manuskript-2016-09-26_v4.pdf # # This file is part of liblouis. @@ -50,12 +50,12 @@ #+contraction: partial #+grade: 1 #+dots: 6 -#+direction: forward +#+direction: both # Load basic Swedish braille table include sv-g0.utb -nocontractsign 56 +nocontractsign 25 # One letter whole-word contractions word att 1 diff --git a/braille/translate/src/phone/tables/syc.utb b/braille/translate/src/phone/tables/syc.utb new file mode 100644 index 000000000..c0da41b27 --- /dev/null +++ b/braille/translate/src/phone/tables/syc.utb @@ -0,0 +1,195 @@ +# liblouis: Syriac +# +#-index-name: Syriac +#-display-name: Syriac braille + +#+language: syc +#+language: syr-Syrc +#+language: syr-Syre +#+language: syr-Syrj +#+language: syr-Syrn +#+type: literary +#+contraction: no +#+dots: 6 + +#-license: lgpl-2.1 + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this file; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# liblouis comes with ABSOLUTELY NO WARRANTY. + +# This table provides support for ʾEsṭrangēlā, Maḏnḥāyā and Serṭā +# Syriac also known as Old, Eastern and Western Syriac. For more +# information, please see +# + +# This braille code was developed by a group of both blind and sighted +# scholars in an academic setting. Special thank you to Paul Keim, Ray +# McAllister, and Matthew Yeater for development of the braille code +# for this language. Also thanks to Sarah LaRose for the suggestions +# while serving on the committee. + +#-maintainer: Paul Geoghegan +#-maintainer: Matityhau Yeshurun + +# Copyright (C) 2024 Matt Yeater and Paul Geoghegan + +# always op code characters +always ܐ 1 # ALAPH +always ܐ݁ 1-2 # ALAPH and QUSHSHAYA +always ܐ݂ 1-3 # ALAPH and RUKKAKHA +always ܑ݁ 26-1-2 # SUPERSCRIPT ALAPH and QUSHSHAYA +always ܑ݂ 26-1-3 # SUPERSCRIPT ALAPH and RUKKAKHA +always ܒ݁ 12-2 # BETH and QUSHSHAYA +always ܒ݂ 12-3 # BETH and RUKKAKHA +always ܓ݁ 1245-2 # GAMAL and QUSHSHAYA +always ܓ݂ 1245-3 # GAMAL and RUKKAKHA +always ܔ݁ 26-1245-2 # GAMAL GARSHUNI and QUSHSHAYA +always ܔ݂ 26-1245-3 # GAMAL GARSHUNI and RUKKAKHA +always ܕ݁ 145-2 # DALATH and QUSHSHAYA +always ܕ݂ 145-3 # DALATH and RUKKAKHA +always ܖ݁ 26-145-2 # DOTLESS DALATH RISH and QUSHSHAYA +always ܖ݂ 26-145-3 # DOTLESS DALATH RISH and RUKKAKHA +always ܗ݁ 125-2 # HE and QUSHSHAYA +always ܗ݂ 125-3 # HE and RUKKAKHA +always ܘ݁ 2456-2 # WAW and QUSHSHAYA +always ܘ݂ 2456-3 # WAW and RUKKAKHA +always ܙ݁ 1356-2 # ZAIN and QUSHSHAYA +always ܙ݂ 1356-3 # ZAIN and RUKKAKHA +always ܚ݁ 1346-2 # HETH and QUSHSHAYA +always ܚ݂ 1346-3 # HETH and RUKKAKHA +always ܛ݁ 2345-2 # TETH and QUSHSHAYA +always ܛ݂ 2345-3 # TETH and RUKKAKHA +always ܜ݁ 26-2345-2 # TETH GARSHUNI and QUSHSHAYA +always ܜ݂ 26-2345-3 # TETH GARSHUNI and RUKKAKHA +always ܝ݁ 245-2 # YUDH and QUSHSHAYA +always ܝ݂ 245-3 # YUDH and RUKKAKHA +always ܞ݁ 245-125-2 # YUDH HE and QUSHSHAYA +always ܞ݂ 245-125-3 # YUDH HE and RUKKAKHA +always ܟ݁ 13-2 # KAPH and QUSHSHAYA +always ܟ݂ 13-3-3 # KAPH and RUKKAKHA +always ܠ݁ 123-2 # LAMADH and QUSHSHAYA +always ܠ݂ 123-3 # LAMADH and RUKKAKHA +always ܡ݁ 134-2 # MIM and QUSHSHAYA +always ܡ݂ 134-3 # MIM and RUKKAKHA +always ܢ݁ 1345-2 # NUN and QUSHSHAYA +always ܢ݂ 1345-3 # NUN and RUKKAKHA +always ܣ݁ 234-2 # SEMKATH and QUSHSHAYA +always ܣ݂ 234-3 # SEMKATH and RUKKAKHA +always ܤ݁ 26-234-2 # FINAL SEMKATH and QUSHSHAYA +always ܤ݂ 26-234-3 # FINAL SEMKATH and RUKKAKHA +always ܥ݁ 1246-2 # E and QUSHSHAYA +always ܥ݂ 1246-3 # E and RUKKAKHA +always ܦ݁ 1234-2 # PE and QUSHSHAYA +always ܦ݂ 1234-3 # PE and RUKKAKHA +always ܧ݁ 26-1234-2 # REVERSED PE and QUSHSHAYA +always ܧ݂ 26-1234-3 # REVERSED PE and RUKKAKHA +always ܨ݁ 2346-2 # SADHE and QUSHSHAYA +always ܨ݂ 2346-3 # SADHE and RUKKAKHA +always ܩ݁ 12345-2 # QAPH and QUSHSHAYA +always ܩ݂ 12345-3 # QAPH and RUKKAKHA +always ܪ݁ 1235-2 # RISH and QUSHSHAYA +always ܪ݂ 1235-3 # RISH and RUKKAKHA +always ܫ݂ 146-3 # SHIN and RUKKAKHA +always ܬ݁ 1256-2 # TAW and QUSHSHAYA +always ܬ݂ 1256-3 # TAW and RUKKAKHA + +# letter op code characters +letter ܑ 26-1 # SUPERSCRIPT ALAPH +letter ܒ 12 # BETH +letter ܓ 1245 # GAMAL +letter ܔ 26-1245 # GAMAL GARSHUNI +letter ܕ 145 # DALATH +letter ܖ 26-145 # DOTLESS DALATH RISH +letter ܗ 125 # HE +letter ܘ 2456 # WAW +letter ܙ 1356 # ZAIN +letter ܚ 1346 # HETH +letter ܛ 2345 # TETH +letter ܜ 26-2345 # TETH GARSHUNI +letter ܝ 245 # YUDH +letter ܞ 245-125 # YUDH HE +letter ܟ 13 # KAPH +letter ܠ 123 # LAMADH +letter ܡ 134 # MIM +letter ܢ 1345 # NUN +letter ܣ 234 # SEMKATH +letter ܤ 26-234 # FINAL SEMKATH +letter ܥ 1246 # E +letter ܦ 1234 # PE +letter ܧ 26-1234 # REVERSED PE +letter ܨ 2346 # SADHE +letter ܩ 12345 # QAPH +letter ܪ 1235 # RISH +letter ܫ 146 # SHIN +letter ܬ 1256 # TAW +letter ܭ 26 # PERSIAN BHETH +letter ܮ 26-2356 # PERSIAN GHAMAL +letter ܯ 26-256 # PERSIAN DHALATH +letter ܰ 12356 # Pthaha ABOVE +letter ܱ 16 # Pthaha BELOW +letter ܲ 14 # Pthaha DOTTED +letter ܳ 345 # Zqapha ABOVE +letter ܴ 156 # Zqapha BELOW +letter ܵ 126 # Zqapha DOTTED +letter ܶ 15 # Rbasa ABOVE +letter ܷ 26 # Rbasa BELOW +letter ܸ 34 # DOTTED ZLAMA HORIZONTAL +letter ܹ 456 # DOTTED ZLAMA ANGULAR +letter ܺ 24 # Hbasa ABOVE +letter ܻ 35 # Hbasa BELOW +letter ܼ 26 # Hbasa-Esasa DOTTED +letter ܽ 136 # ESASA ABOVE +letter ܾ 1236 # ESASA BELOW +letter ܿ 135 # Rwaha +letter ݀ 5-124 # FEMININE DOT +letter ݁ 2 # QUSHSHAYA +letter ݂ 3 # RUKKAKHA +letter ݃ 256-12 # TWO VERTICAL DOTS ABOVE +letter ݄ 356-256 # TWO VERTICAL DOTS BELOW +letter ݅ 256-125 # THREE DOTS ABOVE +letter ݆ 356 # THREE DOTS BELOW +letter ݇ 256-45 # OBLIQUE LINE ABOVE +letter ݈ 256 # OBLIQUE LINE BELOW +letter ݉ 256-146 # MUSIC +letter ݊ 256-1236 # BARREKH +letter ݍ 26-1356 # SOGDIAN ZHAIN +letter ݎ 26-13 # SOGDIAN KHAPH +letter ݏ 26-124 # SOGDIAN FE + +# punctuation op code characters +punctuation ̄ 45-4-36 # macron above +punctuation ̈ 45-25 # Combining Diaeresis. +punctuation ̱ 45-4-36 # Macron Below +punctuation ܀ 256-1234 # END OF PARAGRAPH +punctuation ܁ 235 # SUPRALINEAR FULL STOP +punctuation ܂ 256 # SUBLINEAR FULL STOP +punctuation ܃ 256-14 # SUPRALINEAR COLON +punctuation ܄ 256-36 # SUBLINEAR COLON +punctuation ܅ 356-256-25 # HORIZONTAL COLON +punctuation ܆ 236 # COLON SKEWED LEFT +punctuation ܇ 356 # COLON SKEWED RIGHT +punctuation ܈ 256-156 # SUPRALINEAR COLON SKEWED LEFT +punctuation ܉ 256-234 # SUBLINEAR COLON SKEWED RIGHT +punctuation ܊ 256-3 # CONTRACTION +punctuation ܋ 256-135 # HARKLEAN OBELUS +punctuation ܌ 256-134 # HARKLEAN METOBELUS +punctuation ܍ 356-256-35 # HARKLEAN ASTERISCUS +punctuation ܏ 256-1 # ABBREVIATION MARK + +# Include additional braille tables +include spaces.uti +include litdigits6Dots.uti +include latinLetterDef6Dots.uti +include en-ueb-chardefs.uti diff --git a/braille/translate/src/phone/tables/th-g1.utb b/braille/translate/src/phone/tables/th-g1.utb new file mode 100644 index 000000000..9fb5c3162 --- /dev/null +++ b/braille/translate/src/phone/tables/th-g1.utb @@ -0,0 +1,367 @@ +# liblouis: Thai Current Braille System. +# +#-index-name: Thai, partially contracted +#-display-name: Thai partially contracted braille +# +#+language: th +#+type: literary +#+system: thai +#+contraction: partial +#+grade: 1 +#+dots: 6 +# +#+direction: forward +# +#-copyright: 2024, Thai braille fund and FOUNDATION FOR THE BLIND IN THAILAND UNDER THE ROYAL PATRONAGE OF H.M. THE QUEEN. +# +# Copyright (C) 2024 by Thai braille fund and FOUNDATION FOR THE BLIND IN THAILAND UNDER THE ROYAL PATRONAGE OF H.M. THE QUEEN. +# +# Version 2024-07-01 +# +# This file is part of liblouis. +# +# liblouis is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 2.1 of the +# License, or (at your option) any later version. +# +# liblouis is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with liblouis. If not, see +# . +# +# Created and maintained by: Chatupol Nootatong +# - Dr.Wiraman Niyomphol +# - Itsawat Banlawanich +# Based on +# +#-maintainer: Chatupol Nootatong +#-author: Chatupol Nootatong +#-author: Dr. Wiraman Niyomphol +#-author: Itsawat Banlawanich + +include en-ueb-g1.ctb + +include spaces.uti + +# Thai Consinants +letter \x0e01 1245 # ก +letter \x0e02 13 # ข +letter \x0e03 13b # ฃ +letter \x0e04 136 # ค +letter \x0e05 136a # ฅ +letter \x0e06 1369 # ฆ +letter \x0e07 12456 # ง +letter \x0e08 245 # จ +letter \x0e09 34 # ฉ +letter \x0e0a 346 # ช +letter \x0e0b 2346 # ซ +letter \x0e0c 3469 # ฌ +letter \x0e0d 134569 # ญ +letter \x0e0e 1459 # ฎ +letter \x0e0f 12569 # ฏ +letter \x0e10 23459 # ฐ +letter \x0e11 234569 # ฑ +letter \x0e12 23456a # ฒ +letter \x0e13 13459 # ณ +letter \x0e14 145 # ด +letter \x0e15 1256 # ต +letter \x0e16 2345 # ถ +letter \x0e17 23456 # ท +letter \x0e18 23456b # ธ +letter \x0e19 1345 # น +letter \x0e1a 1236 # บ +letter \x0e1b 12346 # ป +letter \x0e1c 1234 # ผ +letter \x0e1d 1346 # ฝ +letter \x0e1e 1456 # พ +letter \x0e1f 1246 # ฟ +letter \x0e20 14569 # ภ +letter \x0e21 134 # ม +letter \x0e22 13456 # ย +letter \x0e23 1235 # ร +letter \x0e25 123 # ล +letter \x0e27 2456 # ว +letter \x0e28 2349 # ศ +letter \x0e29 234a # ษ +letter \x0e2a 234 # ส +letter \x0e2b 125 # ห +letter \x0e2c 1239 # ฬ +letter \x0e2d 135 # อ +letter \x0e2e 123456 # ฮ + +# Thai vowel +letter \x0e30 1 # ะ +letter \x0e31 345 # ั +letter \x0e47 3 # ็ +letter \x0e32 16 # า +letter \x0e34 12 # ิ +letter \x0e35 23 # ี +letter \x0e38 14 # ุ +letter \x0e39 25 # ู +letter \x0e36 246 # ึ +letter \x0e37 26 # ื +letter \x0e40 124 # เ +letter \x0e41 126 # แ +letter \x0e42 24 # โ +letter \x0e33 1356 # ำ +letter \x0e44 156 # ไ +letter \x0e43 156-2 # ใ +letter \x0e24 1235-2 # ฤ +letter \x0e26 123-2 # ฦ +letter \x0e48 35 # ่ +letter \x0e49 256 # ้ +letter \x0e4a 2356 # ๊ +letter \x0e4b 236 # ๋ +sign \x0e46 2 # ๆ +sign \x0e4c 356 # ์ +sign \x0e4d 5 # ํ +sign \x0e3a 3 # ฺ +sign \x0e2f 56-23 # ฯ +sign \x0e3f 4-12 # ฿ +sign \x0e45 5-16 # ๅ +sign \x0e4e 4-15 # ๎ +sign \x0e4f 4-14 # ๏ +sign \x0e5a 4-256 # ๚ +sign \x0e5b 4-23 # ๛ + +# make phayan yai +noback pass2 @56-23-123-56-23 @56-123 + +# Thai digit +digit \x0e50 245b # ๐ +digit \x0e51 1b # ๑ +digit \x0e52 12b # ๒ +digit \x0e53 14b # ๓ +digit \x0e54 145b # ๔ +digit \x0e55 15b # ๕ +digit \x0e56 124b # ๖ +digit \x0e57 1245b # ๗ +digit \x0e58 125b # ๘ +digit \x0e59 24b # ๙ + +#attribute Thai Consinants +attribute thaiconsinants \x0e01\x0e02\x0e03\x0e04\x0e05\x0e06\x0e07\x0e08\x0e09\x0e0a\x0e0b\x0e0c\x0e0d\x0e0e\x0e0f\x0e10\x0e11\x0e12\x0e13\x0e14\x0e15\x0e16\x0e17\x0e18\x0e19\x0e1a\x0e1b\x0e1c\x0e1d\x0e1e\x0e1f\x0e20\x0e21\x0e22\x0e23\x0e25\x0e27\x0e28\x0e29\x0e2a\x0e2b\x0e2c\x0e2d\x0e2e + +#attribute tone marks +attribute tonemarks \x0e48\x0e49\x0e4a\x0e4b + +# thai sign +attribute thaiSign \x0e46\x0e4c\x0e4d\x0e3a\x0e2f\x0e3f\x0e45\x0e4e\x0e4f\x0e5a\x0e5b + +#attribute Thai Consinants for punctuation +attribute forpunc \x0e01\x0e02\x0e03\x0e04\x0e05\x0e06\x0e07\x0e08\x0e09\x0e0a\x0e0b\x0e0c\x0e0d\x0e0e\x0e0f\x0e10\x0e11\x0e12\x0e13\x0e14\x0e15\x0e16\x0e17\x0e18\x0e19\x0e1a\x0e1b\x0e1c\x0e1d\x0e1e\x0e1f\x0e20\x0e21\x0e22\x0e23\x0e25\x0e27\x0e28\x0e29\x0e2a\x0e2b\x0e2c\x0e2d\x0e2e\x0e30\x0e47\x0e32\x0e34\x0e35\x0e38\x0e39\x0e36\x0e37\x0e33\x0e48\x0e49\x0e4a\x0e4b\x0e46\x0e4c\x0e2f + +# swap for context +swapcd thaiconsinantsCD \x0e01\x0e02\x0e03\x0e04\x0e05\x0e06\x0e07\x0e08\x0e09\x0e0a\x0e0b\x0e0c\x0e0d\x0e0e\x0e0f\x0e10\x0e11\x0e12\x0e13\x0e14\x0e15\x0e16\x0e17\x0e18\x0e19\x0e1a\x0e1b\x0e1c\x0e1d\x0e1e\x0e1f\x0e20\x0e21\x0e22\x0e23\x0e25\x0e27\x0e28\x0e29\x0e2a\x0e2b\x0e2c\x0e2d\x0e2e 1245,13,356-13,136,36-136,6-136,12456,245,34,346,2346,6-346,6-13456,6-145,6-1256,6-2345,6-23456,36-23456,6-1345,145,1256,2345,23456,356-23456,1345,1236,12346,1234,1346,1456,1246,6-1456,134,13456,1235,123,2456,6-234,36-234,234,125,6-123,135,123456 +swapcd tonemarksContext \x0e48\x0e49\x0e4a\x0e4b 359,2569,23569,2369 + +# swap for multipass +swapdd tonemarksPass 359,2569,23569,2369 35,256,2356,236 + +#attribute Thai Consinants for match +attribute 1 \x0e01\x0e02\x0e03\x0e04\x0e05\x0e06\x0e07\x0e08\x0e09\x0e0a\x0e0b\x0e0c\x0e0d\x0e0e\x0e0f\x0e10\x0e11\x0e12\x0e13\x0e14\x0e15\x0e16\x0e17\x0e18\x0e19\x0e1a\x0e1b\x0e1c\x0e1d\x0e1e\x0e1f\x0e20\x0e21\x0e22\x0e23\x0e25\x0e27\x0e28\x0e29\x0e2a\x0e2b\x0e2c\x0e2d\x0e2e\x0e30\x0e31\x0e47\x0e32\x0e34\x0e35\x0e38\x0e39\x0e36\x0e37\x0e40\x0e41\x0e42\x0e33\x0e44\x0e43\x0e24\x0e26\x0e48\x0e49\x0e4a\x0e4b\x0e46\x0e4c\x0e4d\x0e3a\x0e2f\x0e3f\x0e45\x0e4e\x0e4f\x0e5a\x0e5b + +#english character +attribute englishcharacter abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ + +#Move the tone to the back of the vowel. +noback correct [$x]"\x0e30" "\x0e30"* +noback correct [$x]"\x0e33" "\x0e33"* + +#ลดรูปสระเออไม่มีตัวสะกด +attribute leadcharacterSaraEr \x0E01\x0E02\x0E1B\x0E1A\x0E1C\x0E2A\x0E2B +attribute diphthongSaraEr \x0E23\x0E25\x0E22\x0E19\x0E21 +noback context "\x0e40"[%thaiconsinants]"\x0e2d\x0e2d\x0E01" @124*@135-135-1245 +noback context "\x0e40"[%thaiconsinants]"\x0E2D\x0E22\x0E48" @124*@135-13456-35 +noback context "\x0e40"[%thaiconsinants]"\x0E2D\x0E22\x0E39\x0E48" @124*@135-13456-25-35 +noback context "\x0e40"[%leadcharacterSaraEr%diphthongSaraEr]"\x0e2d\x0e2d\x0E01" @124*@135-135-1245 +noback context "\x0e40"[%leadcharacterSaraEr%diphthongSaraEr]"\x0E2D\x0E22\x0E48" @124*@135-13456-35 +noback context "\x0e40"[%leadcharacterSaraEr%diphthongSaraEr]"\x0E2D\x0E22\x0E39\x0E48" @124*@135-13456-25-35 + +noback context "\x0e40"[%thaiconsinants]"\x0e2d" *@146 +noback context "\x0e40"[%thaiconsinants]"\x0e48\x0e2d" *@146-359 +noback context "\x0e40"[%thaiconsinants]"\x0e49\x0e2d" *@146-2569 +noback context "\x0e40"[%thaiconsinants]"\x0e4A\x0e2d" *@146-23569 +noback context "\x0e40"[%thaiconsinants]"\x0e4B\x0e2d" *@146-2369 +noback context "\x0e40"[%leadcharacterSaraEr%diphthongSaraEr]"\x0e2d" *@146 +noback context "\x0e40"[%leadcharacterSaraEr%diphthongSaraEr]"\x0e48\x0e2d" *@146-359 +noback context "\x0e40"[%leadcharacterSaraEr%diphthongSaraEr]"\x0e49\x0e2d" *@146-2569 +noback context "\x0e40"[%leadcharacterSaraEr%diphthongSaraEr]"\x0e4A\x0e2d" *@146-23569 +noback context "\x0e40"[%leadcharacterSaraEr%diphthongSaraEr]"\x0e4B\x0e2d" *@146-2369 +noback pass2 @146%tonemarksPass@1 @146-1%tonemarksPass +noback always \x0E17\x0E30\x0E40\x0E25\x0E2D\x0E30\x0E44\x0E23 23456-1-124-123-135-1-156-1235 +noback always \x0E40\x0E17\x0E2D\x0E21 124-23456-135-134 +noback always \x0E40\x0E17\x0E2D\x0E0D 124-23456-135-6-13456 +noback always \x0E40\x0E04\x0E2D\x0E22 124-136-135-13456 +noback always \x0E40\x0E2A\x0E21\x0E2D\x0E07 124-234-134-135-12456 + +#ลดรูปสระเออมีตัวสะกด +attribute leadcharacterSaraErSp \x0E01\x0E02\x0E04\x0E08\x0E17\x0E09\x0E16\x0E15\x0E1C\x0E1E\x0E2A\x0E2B +attribute diphthongSaraErSp \x0E23\x0E25\x0E0A\x0E2D\x0E22 +noback context "\x0e40"[%thaiconsinants]"\x0e34" *@146 +noback context "\x0e40"[%leadcharacterSaraErSp%diphthongSaraErSp]"\x0e34" *@146 +noback always \x0E40\x0E1C\x0E2D\x0e34\x0E0D 1234-135-146-6-13456 +noback always \x0E40\x0E15\x0E0A\x0E34\x0E19 124-1256-346-12-1345 + +# ลดรูปสระเอีย +attribute leadcharacterSaraIa \x0E01\x0E04\x0E08\x0E09\x0E15\x0E1B\x0E1E\x0E2A\x0E2B +attribute diphthongSaraIa \x0E27\x0E23\x0E25\x0E28\x0E29\x0E1A\x0E07\x0E19\x0E21\x0E22 +noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E22" *@12356 +noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E48\x0E22" *@12356-359 +noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E49\x0E22" *@12356-2569 +noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E4A\x0E22" *@12356-23569 +noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E4B\x0E22" *@12356-2369 +noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E22"!"\x0E4C"_ *@12356 +noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E48\x0E22" *@12356-359 +noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E49\x0E22" *@12356-2569 +noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E4A\x0E22" *@12356-23569 +noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E4B\x0E22" *@12356-2369 +noback pass2 @12356%tonemarksPass@1 @12356-1%tonemarksPass +noback always \x0E40\x0E15\x0E21\x0E35\x0E22 124-1256-134-23-13456 +noback always \x0E40\x0E2A\x0E23\x0E35\x0E22 124-234-1235-23-13456 + +# ลดรูปสระเอือ +#อักษรนำและตามสำหรับสระเอือ +attribute leadcharacterSaraYea \x0E01\x0E02\x0E04\x0E21\x0E1B\x0E1E\x0E2A\x0E2B +attribute diphthongSaraYea \x0E07\x0E23\x0E25\x0E21\x0E22\x0E19 +noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E2D" *@12345 +noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E48\x0E2D" *@12345-35 +noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E49\x0E2D" *@12345-256 +noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E4A\x0E2D" *@12345-2356 +noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E4B\x0E2D" *@12345-236 +noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E2D" *@12345 +noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E48\x0E2D" *@12345-35 +noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E49\x0E2D" *@12345-256 +noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E4A\x0E2D" *@12345-2356 +noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E4B\x0E2D" *@12345-236 + +# สลับตำแหน่งสระเอาะ +# อักษรนำและตามสำหรับสระเอาะ +attribute leadcharacterSaraOha \x0E01\x0E04\x0E09\x0E17\x0E1B\x0E1E\x0E2A\x0E2B +attribute diphthongSaraOha \x0E23\x0E25\x0E22\x0E21\x0E1E\x0E19 +noback context "\x0e40"[%thaiconsinants]"\x0e32\x0e30" *@135-1 +noback context "\x0e40"[%thaiconsinants]"\x0E48\x0e32\x0e30" *@135-1-35 +noback context "\x0e40"[%thaiconsinants]"\x0E49\x0e32\x0e30" *@135-1-256 +noback context "\x0e40"[%thaiconsinants]"\x0E4A\x0e32\x0e30" *@135-1-2356 +noback context "\x0e40"[%thaiconsinants]"\x0E4B\x0e32\x0e30" *@135-1-236 +noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0e32\x0e30" *@135-1 +noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0E48\x0e32\x0e30" *@135-1-35 +noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0E49\x0e32\x0e30" *@135-1-256 +noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0E4A\x0e32\x0e30" *@135-1-2356 +noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0E4B\x0e32\x0e30" *@135-1-236 + +# ลดรูปสระเอา +# อักษรนำและตามสำหรับสระเอา +attribute leadcharacterSaraOuh \x0E01\x0E02\x0E04\x0E28\x0E09\x0E1B\x0E1E\x0E2B +attribute diphthongSaraOuh \x0E23\x0E25\x0E22\x0E21\x0E07\x0E19\x0E27 +noback context "\x0e40"[%thaiconsinants]"\x0e32" *@235 +noback context "\x0e40"[%thaiconsinants]"\x0E48\x0e32" *@235-35 +noback context "\x0e40"[%thaiconsinants]"\x0E49\x0e32" *@235-256 +noback context "\x0e40"[%thaiconsinants]"\x0E4A\x0e32" *@235-2356 +noback context "\x0e40"[%thaiconsinants]"\x0E4B\x0e32" *@235-236 +noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0e32" *@235 +noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0E48\x0e32" *@235-35 +noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0E49\x0e32" *@235-256 +noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0E4A\x0e32" *@235-2356 +noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0E4B\x0e32" *@235-236 +noback always \x0E40\x0E17\x0E23\x0E32 23456-1235-235 +noback always \x0E40\x0E2B\x0E23\x0E32 124-125-1235-16 +noback always \x0E40\x0E1E\x0E25\x0E32\x0E04\x0E33\x0E48 124-1456-123-16-136-1356-35 +noback always \x0E40\x0E1E\x0E25\x0E32\x0E19\x0E35\x0E49 124-1456-123-16-1345-23-256 + + +# ลดรูปสระอัว +noback context "\x0e31\x0e27" @15 +noback context "\x0e31"[%tonemarks]"\x0e27" @15* + +# สลับตำแหน่งสระแอะ +#อักษรนำและตามสำหรับสระแอะ +attribute leadcharacterSaraAe \x0E01\x0E02\x0E04\x0E1C\x0E2B +attribute diphthongSaraAe \x0E23\x0E25\x0E27\x0E21\x0E22 +noback context "\x0e41"[%thaiconsinants]"\x0e30" *@126-1 +noback context "\x0e41"[%leadcharacterSaraAe%diphthongSaraAe]"\x0e30" *@126-1 +noback always \x0E41\x0E01\x0E27\x0E30 126-1245-2456-1 +noback always \x0E41\x0E2A\x0E22\x0E30 234-13456-126-1 + +# สลับตำแหน่งสระโอะ +#อักษรนำและตามสำหรับสระโอะ +attribute leadcharacterSaraOh \x0E1A\x0E1C\x0E1E +attribute diphthongSaraOh \x0E23\x0E25\x0E22 +noback context "\x0e42"[%thaiconsinants]"\x0e30" *@24-1 +noback context "\x0e42"[%thaiconsinants%tonemarks]"\x0e30" *@24-1 +noback context "\x0e42"[%leadcharacterSaraOh%diphthongSaraOh]"\x0e30" *@24-1 + +# สลับตำแหน่งสระเอะ +#อักษรนำและตามสำหรับสระเอะ +attribute leadcharacterSaraEh \x0E02\x0E1C\x0E1E\x0E2B +attribute diphthongSaraEh \x0E25 +noback context "\x0e40"[%thaiconsinants]"\x0e30" *@124-1 +noback context "\x0e40"[%thaiconsinants]"\x0E48\x0e30" *@124-1-35 +noback context "\x0e40"[%thaiconsinants]"\x0E49\x0e30" *@124-1-256 +noback context "\x0e40"[%thaiconsinants]"\x0E4A\x0e30" *@124-1-2356 +noback context "\x0e40"[%thaiconsinants]"\x0E4B\x0e30" *@124-1-236 +noback context "\x0e40"[%leadcharacterSaraEh%diphthongSaraEh]"\x0e30" *@124-1 + +#Move Narukahit to the front of the letter +noback correct [%thaiconsinants]"\x0E4D" "\x0E4D"* + +#Add 456 points in front of the mark +noback context [$z]"," *@456-2 +noback context [$z]":" *@456-25 +noback match %1 ; - 456-23 +noback match %1%1%1%1%1 . %[_^] 456-256 +noback match %1 ! - 456-235 +noback context [$z]"?" *@456-236 + +# Delete a space in front of maiyamok +noback correct $s"\x0E46" "\x0E46" + +#attribute ThaiDigit +attribute thaidigit \x0e50\x0e51\x0e52\x0e53\x0e54\x0e55\x0e56\x0e57\x0e58\x0e59 + +# Add a dot 6 before the number sign. When detecting a character as a Thai number +noback pass2 @3456%thaidigit @6* + +# If 3 or more consecutive . marks are found, change to dot 6. +noback context "..." @6-6-6#1=1 +noback context #1=1"." @6 +noback context #1=1 #1=0 + +# Remove the virtual dots from the Thai Digit. +noback pass3 @245b @245 +noback pass3 @1b @1 +noback pass3 @12b @12 +noback pass3 @14b @14 +noback pass3 @145b @145 +noback pass3 @15b @15 +noback pass3 @124b @124 +noback pass3 @1245b @1245 +noback pass3 @125b @125 +noback pass3 @24b @24 + +# Remove the virtual dots from the Thai Consinants. +noback pass3 @13b @356-13 +noback pass3 @136a @36-136 +noback pass3 @1369 @6-136 +noback pass3 @3469 @6-346 +noback pass3 @134569 @6-13456 +noback pass3 @1459 @6-145 +noback pass3 @12569 @6-1256 +noback pass3 @23459 @6-2345 +noback pass3 @234569 @6-23456 +noback pass3 @23456a @36-23456 +noback pass3 @13459 @6-1345 +noback pass3 @23456b @356-23456 +noback pass3 @14569 @6-1456 +noback pass3 @2349 @6-234 +noback pass3 @234a @36-234 +noback pass3 @1239 @6-123 +noback pass3 @359 @35 +noback pass3 @2569 @256 +noback pass3 @23569 @2356 +noback pass3 @2369 @236 diff --git a/braille/translate/src/phone/tables/tr-g1.ctb b/braille/translate/src/phone/tables/tr-g1.ctb index 9da44028b..c1ccbc9dd 100644 --- a/braille/translate/src/phone/tables/tr-g1.ctb +++ b/braille/translate/src/phone/tables/tr-g1.ctb @@ -4,6 +4,8 @@ # # Copyright (C) 2014, Greg Kearney, gkearney@gmail.com # Copyright (C) 2014-2016 Arend Arends +# Copyright (C) 2023-2024 Oğuz Uğur +# Copyright (C) 2024 Attila Hammer from IT Foundation for the Visually Impaired - Hungary # # This file is part of liblouis. # @@ -26,23 +28,187 @@ # unchanged after the LibLouis upgrade to version 3.0.0 (with only the # include file en-ueb-g1.ctb changed) -# Based on English UEB Grade 1 +#-index-name: Turkish, uncontracted +#-display-name: Turkish uncontracted braille +# +#+language: tr +#+type: literary +#+contraction: no +#+grade: 1 +#+dots: 6 -# Used to display symbols, Unicode chars and other symbols used -# throughout UEB code. +# Based on English UEB Grade 1 (included below) -include en-ueb-g1.ctb +# Latin characters defined differently than in UEB table -# Turkish characters (added by Arend Arends) +lowercase q 4-12345 +lowercase w 4-2456 +lowercase x 4-1346 -lowercase \x00e2 345 LATIN LETTER A WITH CIRCUMFLEX +# Turkish characters + +lowercase \x00e2 4-1 LATIN LETTER A WITH CIRCUMFLEX lowercase \x00e7 16 LATIN LETTER C WITH CEDILLA -lowercase \x00ee 34 LATIN LETTER I WITH CIRCUMFLEX +lowercase \x00ee 4-24 LATIN LETTER I WITH CIRCUMFLEX lowercase \x00f6 246 LATIN LETTER O WITH DIAERESIS -lowercase \x00fb 156 LATIN LETTER U WITH CIRCUMFLEX +lowercase \x00fb 4-136 LATIN LETTER U WITH CIRCUMFLEX lowercase \x00fc 1256 LATIN LETTER U WITH DIAERESIS lowercase \x011f 126 LATIN LETTER G WITH BREVE lowercase \x015f 146 LATIN LETTER S WITH CEDILLA +lowercase \x00e0 4-1 +lowercase \x00e1 4-1 +lowercase \x00e3 4-1 +lowercase \x00e4 4-1 +lowercase \x00e5 4-1 +lowercase \x00e6 1-15 +lowercase \x00e8 4-15 +lowercase \x00e9 4-15 +lowercase \x00ea 4-15 +lowercase \x00eb 4-15 +lowercase \x00ec 4-24 +lowercase \x00ed 4-24 +lowercase \x00ef 4-24 +lowercase \x00f0 4-145 +lowercase \x00f1 4-1345 +lowercase \x00f2 4-135 +lowercase \x00f3 4-135 +lowercase \x00f4 4-135 +lowercase \x00f5 4-135 +lowercase \x00f8 4-135 +lowercase \x00f9 4-136 +lowercase \x00fa 4-136 +lowercase \x00fd 4-13456 +lowercase \x00ff 4-13456 +lowercase \x0111 4-145 +lowercase \x0113 4-15 +lowercase \x0117 4-15 +lowercase \x0119 4-15 +lowercase \x011b 4-15 +lowercase \x0123 4-1245 +lowercase \x0125 4-125 +lowercase \x0127 4-125 +lowercase \x0119 4-15 +lowercase \x0129 4-24 +lowercase \x012b 4-24 +lowercase \x012f 4-24 +lowercase \x0133 24-245 +lowercase \x0135 4-245 +lowercase \x0137 4-13 +lowercase \x013a 4-123 +lowercase \x013c 4-123 +lowercase \x013e 4-123 +lowercase \x0140 4-123 +lowercase \x0142 4-123 +lowercase \x0144 4-1345 +lowercase \x0146 4-1345 +lowercase \x0148 4-1345 +lowercase \x014b 4-1345 +lowercase \x014d 4-135 +lowercase \x014f 4-135 +lowercase \x0151 4-135 +lowercase \x0153 135-15 +lowercase \x0155 4-1235 +lowercase \x0157 4-1235 +lowercase \x0159 4-1235 +lowercase \x015b 4-234 +lowercase \x015d 4-234 +lowercase \x0161 4-234 +lowercase \x0219 4-234 +lowercase \x00df 4-234 +lowercase \x0163 4-2345 +lowercase \x0165 4-2345 +lowercase \x0167 4-2345 +lowercase \x016b 4-136 +lowercase \x016d 4-136 +lowercase \x016f 4-136 +lowercase \x0169 4-136 +lowercase \x0192 4-124 +lowercase \x021b 4-2345 +lowercase \x0171 4-136 +lowercase \x0173 4-136 +lowercase \x0103 4-1 +lowercase \x0105 4-1 +lowercase \x0107 4-14 +lowercase \x0109 4-14 +lowercase \x010b 4-14 +lowercase \x010d 4-14 +lowercase \x010f 4-145 +lowercase \x0175 4-2456 +lowercase \x0177 4-13456 +lowercase \x017a 4-1356 +lowercase \x017c 4-1356 +lowercase \x017e 4-1356 +lowercase \x01ce 4-1 +lowercase \x1e81 4-2456 +lowercase \x1e83 4-2456 +lowercase \x1e85 4-2456 +lowercase \x1ef3 4-13456 +lowercase \x00fe 4-2345 + +uppercase IJ 24-6-245 # capsign included in definition +uppercase Þ 4-2345 +uppercase Ā 4-1 +uppercase Æ 6-1-15 # capsign included in definition +uppercase Œ 6-135-15 # capsign included in definition + +base uppercase \x0112 \x0113 +base uppercase \x0116 \x0117 +base uppercase \x0118 \x0119 +base uppercase \x0122 \x0123 +base uppercase \x0124 \x0125 +base uppercase \x0126 \x0127 +base uppercase \x0128 \x0129 +base uppercase \x012a \x012b +base uppercase \x012e \x012f +base uppercase \x0134 \x0135 +base uppercase \x0136 \x0137 +base uppercase \x0139 \x013a +base uppercase \x013b \x013c +base uppercase \x013d \x013e +base uppercase \x013f \x0140 +base uppercase \x0143 \x0144 +base uppercase \x0145 \x0146 +base uppercase \x0147 \x0148 +base uppercase \x014a \x014b +base uppercase \x014c \x014d +base uppercase \x014e \x014f +base uppercase \x0150 \x0151 +base uppercase \x0154 \x0155 +base uppercase \x0156 \x0157 +base uppercase \x0158 \x0159 +base uppercase \x015a \x015b +base uppercase \x015c \x015d +base uppercase \x0160 \x0161 +base uppercase \x0162 \x0163 +base uppercase \x0164 \x0165 +base uppercase \x0166 \x0167 +base uppercase \x016a \x016b +base uppercase \x016c \x016d +base uppercase \x016e \x016f +base uppercase \x0168 \x0169 +base uppercase \x0170 \x0171 +base uppercase \x0172 \x0173 +base uppercase \x0174 \x0175 +base uppercase \x0176 \x0177 +base uppercase \x0179 \x017a +base uppercase \x017b \x017c +base uppercase \x01cd \x01ce +base uppercase \x1e80 \x1e81 +base uppercase \x1e82 \x1e83 +base uppercase \x1e84 \x1e85 +base uppercase \x1ef2 \x1ef3 +base uppercase \x017d \x017e +base uppercase \x0102 \x0103 +base uppercase \x0104 \x0105 +base uppercase \x0106 \x0107 +base uppercase \x0108 \x0109 +base uppercase \x010a \x010b +base uppercase \x010c \x010d +base uppercase \x010e \x010f +base uppercase \x0218 \x0219 +base uppercase \x0191 \x0192 +base uppercase \x021a \x021b +base uppercase \x1e9e \x00df base uppercase \x00c2 \x00e2 LATIN LETTER A WITH CIRCUMFLEX base uppercase \x00c7 \x00e7 LATIN LETTER C WITH CEDILLA @@ -56,8 +222,27 @@ base uppercase \x015e \x015f LATIN LETTER S WITH CEDILLA # special case, in basic latin capital i is dotless, in Turkish there # is a character i lower/upper case both with a dot and a character i # lower/upper case both without dot - -# this definition overwrites the previous definition lowercase \x0131 35 LATIN SMALL LETTER DOTLESS I base uppercase I \x0131 LATIN CAPITAL LETTER I/SMALL LETTER DOTLESS I base uppercase \x0130 i LATIN CAPITAL LETTER I WITH DOT/SMALL LETTER i + +# Punctuation symbols + +punctuation " 56 +punctuation “ 236 LEFT DOUBLE QUOTATION MARK +punctuation ” 356 RIGHT DOUBLE QUOTATION MARK +punctuation ‘ 3 LEFT SINGLE QUOTATION MARK +punctuation ’ 3 RIGHT SINGLE QUOTATİON MARK +noback always \x25cc 6 +punctuation ' 3 +punctuation ; 23 +punctuation : 25 +prepunc ( 2356 +punctuation ( 2356 +postpunc ) 2356 +punctuation ) 2356 +punctuation − 36 + +# Used to display symbols, Unicode chars and other symbols used +# throughout UEB code. +include en-ueb-g1.ctb diff --git a/braille/translate/src/phone/tables/tr-g2.ctb b/braille/translate/src/phone/tables/tr-g2.ctb index ee77ead80..fc2e35f5e 100644 --- a/braille/translate/src/phone/tables/tr-g2.ctb +++ b/braille/translate/src/phone/tables/tr-g2.ctb @@ -1,6 +1,8 @@ # liblouis: Türkçe Tam Kısaltmalı Braille # # Copyright (C) 2015 Braille Teknik Ltd. www.brailleteknik.com +# Copyright (C) 2023-2024 Oğuz Uğur +# Copyright (C) 2024 Attila Hammer from IT Foundation for the Visually Impaired - Hungary # # This file is part of liblouis. # @@ -25,12 +27,25 @@ # ugur.gurbuz@brailleteknik.com # Son Değiştirilme Tarihi 23.10.2015 +# With corrections and additions by Oğuz Uğur +# +# Definitions of punctuation symbols are based on the Turkish Braille +# Writing Guideline released by Turkish Education Ministery in +# 1991. For an unaccessible PDF version see +# . +# +# Definitions of accented letters do not follow the guideline, but +# were taken from de-accents.cti instead. This was done to prevent +# mixing accented letters with contractions. For example, some +# accented e letters should normally be represented by dot 26 or 1246, +# but these patterns are also used for contractions. +# +# Copyright (C) 2018 SBS Schweizerische Bibliothek für Blinde, Seh- und Lesebehinderte + include litdigits6Dots.uti include braille-patterns.cti -# include tr-chardefs.cti - # Aralık Ayarlamaları space \s 0 SPACE space \x00a0 0 NO-BREAK SPACE @@ -58,15 +73,88 @@ punctuation " 56 punctuation \x0027 3 ' punctuation \x0022 56 " punctuation ( 2356 -punctuation ) 356 +punctuation ) 2356 punctuation [ 12356 punctuation ] 23456 +punctuation \x2026 256-256-256 ELLIPSIS +punctuation “ 236 LEFT DOUBLE QUOTATION MARK +punctuation ” 356 RIGHT DOUBLE QUOTATION MARK +punctuation ‘ 3 LEFT SINGLE QUOTATION MARK +punctuation ’ 3 RIGHT SINGLE QUOTATİON MARK punctuation { 2467 punctuation } 1357 punctuation < 3-246 punctuation > 3-135 punctuation / 34 +# Latin Harfleri + +lowercase a 1 +lowercase b 12 +lowercase c 14 +lowercase d 145 +lowercase e 15 +lowercase f 124 +lowercase g 1245 +lowercase h 125 +lowercase i 24 +lowercase j 245 +lowercase k 13 +lowercase l 123 +lowercase m 134 +lowercase n 1345 +lowercase o 135 +lowercase p 1234 +lowercase q 4-12345 +lowercase r 1235 +lowercase s 234 +lowercase t 2345 +lowercase u 136 +lowercase v 1236 +lowercase w 4-2456 +lowercase x 4-1346 +lowercase y 13456 +lowercase z 1356 +lowercase ç 16 +lowercase ğ 126 +lowercase ı 35 +lowercase ö 246 +lowercase ş 146 +lowercase ü 1256 + +base uppercase A a +base uppercase B b +base uppercase C c +base uppercase D d +base uppercase E e +base uppercase F f +base uppercase G g +base uppercase H h +base uppercase İ i +base uppercase J j +base uppercase K k +base uppercase L l +base uppercase M m +base uppercase N n +base uppercase O o +base uppercase P p +base uppercase Q q +base uppercase R r +base uppercase S s +base uppercase T t +base uppercase U u +base uppercase V v +base uppercase W w +base uppercase X x +base uppercase Y y +base uppercase Z z +base uppercase Ç ç +base uppercase Ğ ğ +base uppercase I ı +base uppercase Ö ö +base uppercase Ş ş +base uppercase Ü ü + # Genel Semboller sign . 4-256 sign ¦ 123456 @@ -75,18 +163,14 @@ sign ¿ 1346 sign ¨ 2456 sign ° 12345 sign · 156 -sign ê 26 -sign ò 346 -sign ï 12456 -sign ë 1246 sign ~ 45 sign # 3456 sign \\ 4-34 -# sign \\ 4 +sign \\ 4 sign | 6 sign / 34 sign + 56-26 -sign % 1456 +sign % 13456 sign = 56-2356 sign ^ 5 sign @ 4 @@ -156,74 +240,200 @@ digit 9 247 # multind 56-6 letsign capsign -# Latin Harfleri +# Accented Letters +lowercase \x00E2 4-1 â â LATIN LETTER A WITH CIRCUMFLEX +lowercase \x00E0 4-1 à à LATIN LETTER A WITH GRAVE +lowercase \x00E1 4-1 á á LATIN LETTER A WITH ACUTE +lowercase \x00E3 4-1 ã ã LATIN LETTER A WITH TILDE +lowercase \x00E4 4-1 ä LATIN LETTER A WITH DIAERESIS +lowercase \x00E5 4-1 å å LATIN LETTER A WITH RING ABOVE +noback lowercase \x00E6 1-15 æ æ LATIN LETTER AE +lowercase \x00E8 4-15 è è LATIN LETTER E WITH GRAVE +lowercase \x00E9 4-15 é é LATIN LETTER E WITH ACUTE +lowercase \x00EA 4-15 ê ê LATIN LETTER E WITH CIRCUMFLEX +lowercase \x00EB 4-15 ë ë LATIN LETTER E WITH DIAERESIS +lowercase \x00EE 4-24 î î LATIN LETTER I WITH CIRCUMFLEX +lowercase \x00EC 4-24 ì ì LATIN LETTER I WITH GRAVE +lowercase \x00ED 4-24 í í LATIN LETTER I WITH ACUTE +lowercase \x00EF 4-24 ï ï LATIN LETTER I WITH DIAERESIS +lowercase \x00F0 4-145 ð ð LATIN LETTER ETH +lowercase \x00F1 4-1345 ñ ñ LATIN LETTER N WITH TILDE +lowercase \x00F2 4-135 ò ò LATIN LETTER O WITH GRAVE +lowercase \x00F3 4-135 ó ó LATIN LETTER O WITH ACUTE +lowercase \x00F4 4-135 ô ô LATIN LETTER O WITH CIRCUMFLEX +lowercase \x00F5 4-135 õ õ LATIN LETTER O WITH TILDE +lowercase \x00F8 4-135 ø ø LATIN LETTER O WITH STROKE +lowercase \x00FB 4-136 û û LATIN LETTER U WITH CIRCUMFLEX +lowercase \x00F9 4-136 ù ù LATIN LETTER U WITH GRAVE +lowercase \x00FA 4-136 ú ú LATIN LETTER U WITH ACUTE +lowercase \x00FD 4-13456 ý ý LATIN LETTER Y WITH ACUTE +lowercase \x00FE 4-2345 þ þ LATIN LETTER THORN +lowercase \x00FF 4-13456 ÿ Ÿ LATIN LETTER Y WITH DIAERESIS +noback lowercase \x0153 135-15 œ œ LATIN LIGATURE OE +lowercase \x0101 4-1 ā ā LATIN LETTER A WITH MACRON +lowercase \x0103 4-1 ă ă LATIN LETTER A WITH BREVE +lowercase \x0105 4-1 ą ą LATIN LETTER A WITH OGONEK +lowercase \x0107 4-14 ć ć LATIN LETTER C WITH ACUTE +lowercase \x0109 4-14 ĉ ĉ LATIN LETTER C WITH CIRCUMFLEX +lowercase \x010B 4-14 ċ ċ LATIN LETTER C WITH DOT ABOVE +lowercase \x010D 4-14 č č LATIN LETTER C WITH CARON +lowercase \x010F 4-145 ď ď LATIN LETTER D WITH CARON +lowercase \x0111 4-145 đ đ LATIN LETTER D WITH STROKE +lowercase \x0113 4-15 ē ē LATIN LETTER E WITH MACRON +lowercase \x0117 4-15 ė ė LATIN LETTER E WITH DOT ABOVE +lowercase \x0119 4-15 ę ę LATIN LETTER E WITH OGONEK +lowercase \x011B 4-15 ě ě LATIN LETTER E WITH CARON +lowercase \x0123 4-1245 ģ ģ LATIN LETTER G WITH CEDILLA +lowercase \x0125 4-125 ĥ ĥ LATIN LETTER H WITH CIRCUMFLEX +lowercase \x0127 4-125 ħ ħ LATIN LETTER H WITH STROKE +lowercase \x0129 4-24 ĩ ĩ LATIN LETTER I WITH TILDE +lowercase \x012B 4-24 ī ī LATIN LETTER I WITH MACRON +lowercase \x012F 4-24 į į LATIN LETTER I WITH OGONEK +lowercase \x0133 4-245 ij ij LATIN LIGATURE IJ +lowercase \x0135 4-245 ĵ ĵ LATIN LETTER J WITH CIRCUMFLEX +lowercase \x0137 4-13 ķ ķ LATIN LETTER K WITH CEDILLA +lowercase \x013A 4-123 ĺ ĺ LATIN LETTER L WITH ACUTE +lowercase \x013C 4-123 ļ ļ LATIN LETTER L WITH CEDILLA +lowercase \x013E 4-123 ľ ľ LATIN LETTER L WITH CARON +lowercase \x0140 4-123 ŀ ŀ LATIN LETTER L WITH MIDDLE DOT +lowercase \x0142 4-123 ł ł LATIN LETTER L WITH STROKE +lowercase \x0144 4-1345 ń ń LATIN LETTER N WITH ACUTE +lowercase \x0146 4-1345 ņ ņ LATIN LETTER N WITH CEDILLA +lowercase \x0148 4-1345 ň ň LATIN LETTER N WITH CARON +lowercase \x014B 4-1345 ŋ ŋ LATIN LETTER ENG +lowercase \x014D 4-135 ō ō LATIN LETTER O WITH MACRON +lowercase \x014F 4-135 ŏ ŏ LATIN LETTER O WITH BREVE +lowercase \x0151 4-135 ő ő LATIN LETTER O WITH DOUBLE ACUTE +lowercase \x0155 4-1235 ŕ ŕ LATIN LETTER R WITH ACUTE +lowercase \x0157 4-1235 ŗ ŗ LATIN LETTER R WITH CEDILLA +lowercase \x0159 4-1235 ř ř LATIN LETTER R WITH CARON +lowercase \x015B 4-234 ś ś LATIN LETTER S WITH ACUTE +lowercase \x015D 4-234 ŝ ŝ LATIN LETTER S WITH CIRCUMFLEX +lowercase \x0161 4-234 š š LATIN LETTER S WITH CARON +lowercase \x0219 4-234 ș LATIN LETTER S WITH COMMA BELOW +lowercase \x00DF 4-234 ß LATIN SMALL LETTER SHARP S +lowercase \x0163 4-2345 ţ ţ LATIN LETTER T WITH CEDILLA +lowercase \x0165 4-2345 ť ť LATIN LETTER T WITH CARON +lowercase \x0167 4-2345 ŧ ŧ LATIN LETTER T WITH STROKE +lowercase \x0192 4-124 ƒ ƒ LATIN LETTER F WITH HOOK +lowercase \x021B 4-2345 ț LATIN LETTER T WITH COMMA BELOW +lowercase \x0169 4-136 ũ ũ LATIN LETTER U WITH TILDE +lowercase \x016B 4-136 ū ū LATIN LETTER U WITH MACRON +lowercase \x016D 4-136 ŭ ŭ LATIN LETTER U WITH BREVE +lowercase \x016F 4-136 ů ů LATIN LETTER U WITH RING ABOVE +lowercase \x0171 4-136 ű ű LATIN LETTER U WITH DOUBLE ACUTE +lowercase \x0173 4-136 ų ų LATIN LETTER U WITH OGONEK +lowercase \x0175 4-2456 ŵ ŵ LATIN LETTER W WITH CIRCUMFLEX +lowercase \x0177 4-13456 ŷ ŷ LATIN LETTER Y WITH CIRCUMFLEX +lowercase \x017A 4-1356 ź ź LATIN LETTER Z WITH ACUTE +lowercase \x017C 4-1356 ż ż LATIN LETTER Z WITH DOT ABOVE +lowercase \x017E 4-1356 ž ž LATIN LETTER Z WITH CARON +lowercase \x01CE 4-1 ǎ ǎ LATIN LETTER A WITH CARON +lowercase \x1E81 4-2456 ẁ ẁ LATIN LETTER W WITH GRAVE +lowercase \x1E83 4-2456 ẃ ẃ LATIN LETTER W WITH ACUTE +lowercase \x1E85 4-2456 ẅ ẅ LATIN LETTER W WITH DIAERESIS +lowercase \x1EF3 4-13456 ỳ ỳ LATIN LETTER Y WITH GRAVE -lowercase a 1 -lowercase b 12 -lowercase c 14 -lowercase d 145 -lowercase e 15 -lowercase f 124 -lowercase g 1245 -lowercase h 125 -lowercase i 24 -lowercase j 245 -lowercase k 13 -lowercase l 123 -lowercase m 134 -lowercase n 1345 -lowercase o 135 -lowercase p 1234 -lowercase q 4-12345 -lowercase r 1235 -lowercase s 234 -lowercase t 2345 -lowercase u 136 -lowercase v 1236 -lowercase w 4-2456 -lowercase x 4-1346 -lowercase y 13456 -lowercase z 1356 -lowercase ç 16 -lowercase ğ 126 -lowercase ı 35 -lowercase ö 246 -lowercase ş 146 -lowercase ü 1256 +base uppercase \x00C2 \x00E2 Ââ Ââ LATIN LETTER A WITH CIRCUMFLEX +base uppercase \x00C0 \x00E0 Àà Àà LATIN LETTER A WITH GRAVE +base uppercase \x00C1 \x00E1 Áá Áá LATIN LETTER A WITH ACUTE +base uppercase \x00C3 \x00E3 Ãã Ãã LATIN LETTER A WITH TILDE +base uppercase \x00C4 \x00E4 Ää LATIN CAPITAL LETTER A WITH DIAERESIS +base uppercase \x00C5 \x00E5 Åå Åå LATIN LETTER A WITH RING ABOVE +base uppercase \x00C6 \x00E6 Ææ Ææ LATIN LETTER AE +base uppercase \x00C8 \x00E8 Èè Èè LATIN LETTER E WITH GRAVE +base uppercase \x00C9 \x00E9 Éé Éé LATIN LETTER E WITH ACUTE +base uppercase \x00CA \x00EA Êê Êê LATIN LETTER E WITH CIRCUMFLEX +base uppercase \x00CB \x00EB Ëë Ëë LATIN LETTER E WITH DIAERESIS +base uppercase \x00CE \x00EE Îî Îî LATIN LETTER I WITH CIRCUMFLEX +base uppercase \x00CC \x00EC Ìì Ìì LATIN LETTER I WITH GRAVE +base uppercase \x00CD \x00ED Íí Íí LATIN LETTER I WITH ACUTE +base uppercase \x00CF \x00EF Ïï Ïï LATIN LETTER I WITH DIAERESIS +base uppercase \x00D0 \x00F0 Ðð Ðð LATIN LETTER ETH +base uppercase \x00D1 \x00F1 Ññ Ññ LATIN LETTER N WITH TILDE +base uppercase \x00D2 \x00F2 Òò Òò LATIN LETTER O WITH GRAVE +base uppercase \x00D3 \x00F3 Óó Óó LATIN LETTER O WITH ACUTE +base uppercase \x00D4 \x00F4 Ôô Ôô LATIN LETTER O WITH CIRCUMFLEX +base uppercase \x00D5 \x00F5 Õõ Õõ LATIN LETTER O WITH TILDE +base uppercase \x00D8 \x00F8 Øø Øø LATIN LETTER O WITH STROKE +base uppercase \x00DB \x00FB Ûû Ûû LATIN LETTER U WITH CIRCUMFLEX +base uppercase \x00D9 \x00F9 Ùù Ùù LATIN LETTER U WITH GRAVE +base uppercase \x00DA \x00FA Úú Úú LATIN LETTER U WITH ACUTE +base uppercase \x00DD \x00FD Ýý Ýý LATIN LETTER Y WITH ACUTE +base uppercase \x00DE \x00FE Þþ Þþ LATIN LETTER THORN +base uppercase \x0178 \x00FF Ÿÿ ÿŸ LATIN LETTER Y WITH DIAERESIS +base uppercase \x0152 \x0153 Œœ Œœ LATIN LIGATURE OE +base uppercase \x0100 \x0101 Āā Āā LATIN LETTER A WITH MACRON +base uppercase \x0102 \x0103 Ăă Ăă LATIN LETTER A WITH BREVE +base uppercase \x0104 \x0105 Ąą Ąą LATIN LETTER A WITH OGONEK +base uppercase \x0106 \x0107 Ćć Ćć LATIN LETTER C WITH ACUTE +base uppercase \x0108 \x0109 Ĉĉ Ĉĉ LATIN LETTER C WITH CIRCUMFLEX +base uppercase \x010A \x010B Ċċ Ċċ LATIN LETTER C WITH DOT ABOVE +base uppercase \x010C \x010D Čč Čč LATIN LETTER C WITH CARON +base uppercase \x010E \x010F Ďď Ďď LATIN LETTER D WITH CARON +base uppercase \x0110 \x0111 Đđ Đđ LATIN LETTER D WITH STROKE +base uppercase \x0112 \x0113 Ēē Ēē LATIN LETTER E WITH MACRON +base uppercase \x0116 \x0117 Ėė Ėė LATIN LETTER E WITH DOT ABOVE +base uppercase \x0118 \x0119 Ęę Ęę LATIN LETTER E WITH OGONEK +base uppercase \x011A \x011B Ěě Ěě LATIN LETTER E WITH CARON +base uppercase \x0122 \x0123 Ģģ Ģģ LATIN LETTER G WITH CEDILLA +base uppercase \x0124 \x0125 Ĥĥ Ĥĥ LATIN LETTER H WITH CIRCUMFLEX +base uppercase \x0126 \x0127 Ħħ Ħħ LATIN LETTER H WITH STROKE +base uppercase \x0128 \x0129 Ĩĩ Ĩĩ LATIN LETTER I WITH TILDE +base uppercase \x012A \x012B Īī Īī LATIN LETTER I WITH MACRON +base uppercase \x012E \x012F Įį Įį LATIN LETTER I WITH OGONEK +base uppercase \x0132 \x0133 IJij IJij LATIN LIGATURE IJ +base uppercase \x0134 \x0135 Ĵĵ Ĵĵ LATIN LETTER J WITH CIRCUMFLEX +base uppercase \x0136 \x0137 Ķķ Ķķ LATIN LETTER K WITH CEDILLA +base uppercase \x0139 \x013A Ĺĺ Ĺĺ LATIN LETTER L WITH ACUTE +base uppercase \x013B \x013C Ļļ Ļļ LATIN LETTER L WITH CEDILLA +base uppercase \x013D \x013E Ľľ Ľľ LATIN LETTER L WITH CARON +base uppercase \x013F \x0140 Ŀŀ Ŀŀ LATIN LETTER L WITH MIDDLE DOT +base uppercase \x0141 \x0142 Łł Łł LATIN LETTER L WITH STROKE +base uppercase \x0143 \x0144 Ńń Ńń LATIN LETTER N WITH ACUTE +base uppercase \x0145 \x0146 Ņņ Ņņ LATIN LETTER N WITH CEDILLA +base uppercase \x0147 \x0148 Ňň Ňň LATIN LETTER N WITH CARON +base uppercase \x014A \x014B Ŋŋ Ŋŋ LATIN LETTER ENG +base uppercase \x014C \x014D Ōō Ōō LATIN LETTER O WITH MACRON +base uppercase \x014E \x014F Ŏŏ Ŏŏ LATIN LETTER O WITH BREVE +base uppercase \x0150 \x0151 Őő Őő LATIN LETTER O WITH DOUBLE ACUTE +base uppercase \x0154 \x0155 Ŕŕ Ŕŕ LATIN LETTER R WITH ACUTE +base uppercase \x0156 \x0157 Ŗŗ Ŗŗ LATIN LETTER R WITH CEDILLA +base uppercase \x0158 \x0159 Řř Řř LATIN LETTER R WITH CARON +base uppercase \x015A \x015B Śś Śś LATIN LETTER S WITH ACUTE +base uppercase \x015C \x015D Ŝŝ Ŝŝ LATIN LETTER S WITH CIRCUMFLEX +base uppercase \x0160 \x0161 Šš Šš LATIN LETTER S WITH CARON +base uppercase \x0218 \x0219 Șș LATIN LETTER S WITH COMMA BELOW +base uppercase \x1e9e \x00DF ß LATIN SMALL LETTER SHARP S +base uppercase \x0162 \x0163 Ţţ Ţţ LATIN LETTER T WITH CEDILLA +base uppercase \x0164 \x0165 Ťť Ťť LATIN LETTER T WITH CARON +base uppercase \x0166 \x0167 Ŧŧ Ŧŧ LATIN LETTER T WITH STROKE +base uppercase \x0191 \x0192 Ƒƒ Ƒƒ LATIN LETTER F WITH HOOK +base uppercase \x021A \x021B Țț LATIN LETTER T WITH COMMA BELOW +base uppercase \x0168 \x0169 Ũũ Ũũ LATIN LETTER U WITH TILDE +base uppercase \x016A \x016B Ūū Ūū LATIN LETTER U WITH MACRON +base uppercase \x016C \x016D Ŭŭ Ŭŭ LATIN LETTER U WITH BREVE +base uppercase \x016E \x016F Ůů Ůů LATIN LETTER U WITH RING ABOVE +base uppercase \x0170 \x0171 Űű Űű LATIN LETTER U WITH DOUBLE ACUTE +base uppercase \x0172 \x0173 Ųų Ųų LATIN LETTER U WITH OGONEK +base uppercase \x0174 \x0175 Ŵŵ Ŵŵ LATIN LETTER W WITH CIRCUMFLEX +base uppercase \x0176 \x0177 Ŷŷ Ŷŷ LATIN LETTER Y WITH CIRCUMFLEX +base uppercase \x0179 \x017A Źź Źź LATIN LETTER Z WITH ACUTE +base uppercase \x017B \x017C Żż Żż LATIN LETTER Z WITH DOT ABOVE +base uppercase \x017D \x017E Žž Žž LATIN LETTER Z WITH CARON +base uppercase \x01CD \x01CE Ǎǎ Ǎǎ LATIN LETTER A WITH CARON +base uppercase \x1E80 \x1E81 Ẁẁ Ẁẁ LATIN LETTER W WITH GRAVE +base uppercase \x1E82 \x1E83 Ẃẃ Ẃẃ LATIN LETTER W WITH ACUTE +base uppercase \x1E84 \x1E85 Ẅẅ Ẅẅ LATIN LETTER W WITH DIAERESIS +base uppercase \x1EF2 \x1EF3 Ỳỳ Ỳỳ LATIN LETTER Y WITH GRAVE -base uppercase A a -base uppercase B b -base uppercase C c -base uppercase D d -base uppercase E e -base uppercase F f -base uppercase G g -base uppercase H h -base uppercase İ i -base uppercase J j -base uppercase K k -base uppercase L l -base uppercase M m -base uppercase N n -base uppercase O o -base uppercase P p -base uppercase Q q -#uppercase Q 123457 -base uppercase R r -base uppercase S s -base uppercase T t -base uppercase U u -base uppercase V v -base uppercase W w -base uppercase X x -base uppercase Y y -base uppercase Z z -base uppercase Ç ç -base uppercase Ğ ğ -base uppercase I ı -base uppercase Ö ö -base uppercase Ş ş -base uppercase Ü ü +# Correct order of comma and numeric indicator +match %. , %# 2-3456 +noback pass2 @3456-2-3456 @2-3456 + +# Correct order of dot and numeric indicator +match %. . %# 256-3456 +noback pass2 @3456-256-3456 @256-3456 # özel karakter düzeltmeleri word o 135 @@ -281,7 +491,9 @@ begmidword ha' 25-3 begmidword ka 256 begmidword ka' 256-3 endword ki 3456 -# word ki 3456 +always ki 3456 +noback begword ki 3456 +word ki 3456 always la 123456 always le 346 always ma 34 @@ -413,34 +625,34 @@ word dünya 1256 word var 1236 word yok 13456 word zaman 1356 -begmidword aynı 1-3 -begmidword büyük 12-3 -begmidword can 14-3 -begmidword çok 16-3 -begmidword daha 145-3 -begmidword ekonomi 15-3 -begmidword fakat 124-3 -begmidword göre 1245-3 -begmidword eğer 126-3 -begmidword her 125-3 -begmidword kısa 35-3 -begmidword için 24-3 -begmidword gün 245-3 -begmidword kadar 13-3 -begmidword ilgi 123-3 -begmidword meydan 134-3 -begmidword neden 1345-3 -begmidword öyle 246-3 -begmidword para 1234-3 -begmidword artık 1235-3 -begmidword sonra 234-3 -begmidword şey 146-3 -begmidword taraf 2345-3 -begmidword uygun 136-3 -begmidword dünya 1256-3 -begmidword var 1236-3 -begmidword yok 13456-3 -begmidword zaman 1356-3 +begword aynı 1-3 +begword büyük 12-3 +begword can 14-3 +begword çok 16-3 +begword daha 145-3 +begword ekonomi 15-3 +begword fakat 124-3 +begword göre 1245-3 +begword eğer 126-3 +begword her 125-3 +begword kısa 35-3 +begword için 24-3 +begword gün 245-3 +begword kadar 13-3 +begword ilgi 123-3 +begword meydan 134-3 +begword neden 1345-3 +begword öyle 246-3 +begword para 1234-3 +begword artık 1235-3 +begword sonra 234-3 +begword şey 146-3 +begword taraf 2345-3 +begword uygun 136-3 +begword dünya 1256-3 +begword var 1236-3 +begword yok 13456-3 +begword zaman 1356-3 # Kelime Kökü fiil Kısaltmaları always bil 5-12 @@ -467,14 +679,15 @@ sufword başla 5-146 always tut 5-2345 sufword uğra 5-136 sufword yürü 5-1256 -always vur 5-1236 +begword vur 5-1236 sufword yetiş 5-13456 sufword gözle 5-1356 begmidword bekle 5-356 sufword yüksel 5-1456 +sufword düşün 5-12346 sufword koy 5-3456 sufword öğret 5-346 -always oku 5-1346 +begword oku 5-1346 sufword yerleş 5-156 sufword getir 5-23456 sufword yaşa 5-1246 @@ -483,7 +696,7 @@ always koş 5-2346 always geç 5-2456 begmidword kalk 5-256-3 sufword konuş 5-123456 -sufword oyna 5-3456 +sufword oyna 5-34 sufword göster 5-12345 always yara 5-345 sufword götür 5-12456 @@ -506,10 +719,10 @@ midendword tıkça 45-16 midendword tikçe 45-16 midendword tukça 45-16 midendword tükçe 45-16 -midendword dıkça 56-2345 -midendword dikçe 56-2345 -midendword dukça 56-2345 -midendword dükçe 56-2345 +midendword dıkça 56-16 +midendword dikçe 56-16 +midendword dukça 56-16 +midendword dükçe 56-16 midendword dıkları 56-145 midendword dikleri 56-145 midendword dukları 56-145 diff --git a/braille/translate/src/phone/tables/tr.ctb b/braille/translate/src/phone/tables/tr.ctb index c92919d2c..0ff04f434 100644 --- a/braille/translate/src/phone/tables/tr.ctb +++ b/braille/translate/src/phone/tables/tr.ctb @@ -1,5 +1,7 @@ # # Copyright (C) 1995-2008 by The BRLTTY Developers. +# Copyright (C) 2023-2024 Oğuz Uğur +# Copyright (C) 2024 Attila Hammer from IT Foundation for the Visually Impaired - Hungary # # This file is part of liblouis. # @@ -20,26 +22,52 @@ # BRLTTY Text Table - Turkish # # Samuel Thibault -# +# # This table is based on the Unesco report on the progress of unification of # braille writing « L'ÉCRITURE BRAILLE DANS LE MONDE », by Sir Clutha # MACKENZIE: http://unesdoc.unesco.org/images/0013/001352/135251fo.pdf # The document is dated 1954, so this table may be quite outdated. -# generated by ttbtest +# With corrections and additions by Oğuz Uğur +# +# Definitions of punctuation symbols are based on the Turkish Braille +# Writing Guideline released by Turkish Education Ministery in +# 1991. For an unaccessible PDF version see +# . +# +# Definitions of accented letters do not follow the guideline, but +# were taken from de-accents.cti instead. This was done to prevent +# mixing accented letters with contractions. For example, some +# accented e letters should normally be represented by dot 26 or 1246, +# but these patterns are also used for contractions. +# +# Copyright (C) 2018 SBS Schweizerische Bibliothek für Blinde, Seh- und Lesebehinderte +# +# Note from maintainer: in computer braille there are no contractions, +# so what could be mixed up? Was this done to create consistency with +# the grade 2 table (tr-g2.ctb)? It is funny because there is more +# consistency between the computer braille and grade 2 tables, then +# between each of these with the grade 1 table, which is based on UEB. + space \s 0 SPACE punctuation ! 235 EXCLAMATION MARK punctuation " 2356 QUOTATION MARK punctuation ' 3 APOSTROPHE -punctuation ( 236 LEFT PARENTHESIS -punctuation ) 356 RIGHT PARENTHESIS +punctuation ( 2356 LEFT PARENTHESIS +punctuation ) 2356 RIGHT PARENTHESIS punctuation , 2 COMMA punctuation - 36 HYPHEN-MINUS punctuation . 256 FULL STOP include digits8Dots.uti punctuation : 25 COLON punctuation ; 23 SEMICOLON -punctuation ? 26 QUESTION MARK +punctuation \x2026 256-256-256 ELLIPSIS +punctuation “ 236 LEFT DOUBLE QUOTATION MARK +punctuation ” 356 RIGHT DOUBLE QUOTATION MARK +punctuation ‘ 3 LEFT SINGLE QUOTATION MARK +punctuation ’ 3 RIGHT SINGLE QUOTATİON MARK +punctuation ? 236 QUESTION MARK + uppercase A 17 LATIN CAPITAL LETTER A uppercase B 127 LATIN CAPITAL LETTER B uppercase C 147 LATIN CAPITAL LETTER C @@ -56,14 +84,14 @@ uppercase M 1347 LATIN CAPITAL LETTER M uppercase N 13457 LATIN CAPITAL LETTER N uppercase O 1357 LATIN CAPITAL LETTER O uppercase P 12347 LATIN CAPITAL LETTER P -uppercase Q 123457 LATIN CAPITAL LETTER Q +uppercase Q 4-123457 LATIN CAPITAL LETTER Q uppercase R 12357 LATIN CAPITAL LETTER R uppercase S 2347 LATIN CAPITAL LETTER S uppercase T 23457 LATIN CAPITAL LETTER T uppercase U 1367 LATIN CAPITAL LETTER U uppercase V 12367 LATIN CAPITAL LETTER V -uppercase W 24567 LATIN CAPITAL LETTER W -uppercase X 13467 LATIN CAPITAL LETTER X +uppercase W 4-24567 LATIN CAPITAL LETTER W +uppercase X 4-13467 LATIN CAPITAL LETTER X uppercase Y 134567 LATIN CAPITAL LETTER Y uppercase Z 13567 LATIN CAPITAL LETTER Z lowercase a 1 LATIN SMALL LETTER A @@ -82,28 +110,22 @@ lowercase m 134 LATIN SMALL LETTER M lowercase n 1345 LATIN SMALL LETTER N lowercase o 135 LATIN SMALL LETTER O lowercase p 1234 LATIN SMALL LETTER P -lowercase q 12345 LATIN SMALL LETTER Q +lowercase q 4-12345 LATIN SMALL LETTER Q lowercase r 1235 LATIN SMALL LETTER R lowercase s 234 LATIN SMALL LETTER S lowercase t 2345 LATIN SMALL LETTER T lowercase u 136 LATIN SMALL LETTER U lowercase v 1236 LATIN SMALL LETTER V -lowercase w 2456 LATIN SMALL LETTER W -lowercase x 1346 LATIN SMALL LETTER X +lowercase w 4-2456 LATIN SMALL LETTER W +lowercase x 4-1346 LATIN SMALL LETTER X lowercase y 13456 LATIN SMALL LETTER Y lowercase z 1356 LATIN SMALL LETTER Z punctuation \x00a0 0 NO-BREAK SPACE -uppercase \x00c2 3457 LATIN CAPITAL LETTER A WITH CIRCUMFLEX uppercase \x00c7 167 LATIN CAPITAL LETTER C WITH CEDILLA -uppercase \x00ce 347 LATIN CAPITAL LETTER I WITH CIRCUMFLEX uppercase \x00d6 2467 LATIN CAPITAL LETTER O WITH DIAERESIS -uppercase \x00db 1567 LATIN CAPITAL LETTER U WITH CIRCUMFLEX uppercase \x00dc 12567 LATIN CAPITAL LETTER U WITH DIAERESIS -lowercase \x00e2 345 LATIN SMALL LETTER A WITH CIRCUMFLEX lowercase \x00e7 16 LATIN SMALL LETTER C WITH CEDILLA -lowercase \x00ee 34 LATIN SMALL LETTER I WITH CIRCUMFLEX lowercase \x00f6 246 LATIN SMALL LETTER O WITH DIAERESIS -lowercase \x00fb 156 LATIN SMALL LETTER U WITH CIRCUMFLEX lowercase \x00fc 1256 LATIN SMALL LETTER U WITH DIAERESIS uppercase \x011e 1267 LATIN CAPITAL LETTER G WITH BREVE lowercase \x011f 126 LATIN SMALL LETTER G WITH BREVE @@ -111,3 +133,191 @@ uppercase \x0130 247 LATIN CAPITAL LETTER I WITH DOT ABOVE lowercase \x0131 35 LATIN SMALL LETTER DOTLESS I uppercase \x015e 1467 LATIN CAPITAL LETTER S WITH CEDILLA lowercase \x015f 146 LATIN SMALL LETTER S WITH CEDILLA + +# Accented letters + +lowercase \x00E2 4-1 â â LATIN LETTER A WITH CIRCUMFLEX +lowercase \x00E0 4-1 à à LATIN LETTER A WITH GRAVE +lowercase \x00E1 4-1 á á LATIN LETTER A WITH ACUTE +lowercase \x00E3 4-1 ã ã LATIN LETTER A WITH TILDE +lowercase \x00E4 4-1 ä LATIN LETTER A WITH DIAERESIS +lowercase \x00E5 4-1 å å LATIN LETTER A WITH RING ABOVE +noback lowercase \x00E6 1-15 æ æ LATIN LETTER AE +lowercase \x00E8 4-15 è è LATIN LETTER E WITH GRAVE +lowercase \x00E9 4-15 é é LATIN LETTER E WITH ACUTE +lowercase \x00EA 4-15 ê ê LATIN LETTER E WITH CIRCUMFLEX +lowercase \x00EB 4-15 ë ë LATIN LETTER E WITH DIAERESIS +lowercase \x00EE 4-24 î î LATIN LETTER I WITH CIRCUMFLEX +lowercase \x00EC 4-24 ì ì LATIN LETTER I WITH GRAVE +lowercase \x00ED 4-24 í í LATIN LETTER I WITH ACUTE +lowercase \x00EF 4-24 ï ï LATIN LETTER I WITH DIAERESIS +lowercase \x00F0 4-145 ð ð LATIN LETTER ETH +lowercase \x00F1 4-1345 ñ ñ LATIN LETTER N WITH TILDE +lowercase \x00F2 4-135 ò ò LATIN LETTER O WITH GRAVE +lowercase \x00F3 4-135 ó ó LATIN LETTER O WITH ACUTE +lowercase \x00F4 4-135 ô ô LATIN LETTER O WITH CIRCUMFLEX +lowercase \x00F5 4-135 õ õ LATIN LETTER O WITH TILDE +lowercase \x00F8 4-135 ø ø LATIN LETTER O WITH STROKE +lowercase \x00FB 4-136 û û LATIN LETTER U WITH CIRCUMFLEX +lowercase \x00F9 4-136 ù ù LATIN LETTER U WITH GRAVE +lowercase \x00FA 4-136 ú ú LATIN LETTER U WITH ACUTE +lowercase \x00FD 4-13456 ý ý LATIN LETTER Y WITH ACUTE +lowercase \x00FE 4-2345 þ þ LATIN LETTER THORN +lowercase \x00FF 4-13456 ÿ Ÿ LATIN LETTER Y WITH DIAERESIS +noback lowercase \x0153 135-15 œ œ LATIN LIGATURE OE +lowercase \x0101 4-1 ā ā LATIN LETTER A WITH MACRON +lowercase \x0103 4-1 ă ă LATIN LETTER A WITH BREVE +lowercase \x0105 4-1 ą ą LATIN LETTER A WITH OGONEK +lowercase \x0107 4-14 ć ć LATIN LETTER C WITH ACUTE +lowercase \x0109 4-14 ĉ ĉ LATIN LETTER C WITH CIRCUMFLEX +lowercase \x010B 4-14 ċ ċ LATIN LETTER C WITH DOT ABOVE +lowercase \x010D 4-14 č č LATIN LETTER C WITH CARON +lowercase \x010F 4-145 ď ď LATIN LETTER D WITH CARON +lowercase \x0111 4-145 đ đ LATIN LETTER D WITH STROKE +lowercase \x0113 4-15 ē ē LATIN LETTER E WITH MACRON +lowercase \x0117 4-15 ė ė LATIN LETTER E WITH DOT ABOVE +lowercase \x0119 4-15 ę ę LATIN LETTER E WITH OGONEK +lowercase \x011B 4-15 ě ě LATIN LETTER E WITH CARON +lowercase \x0123 4-1245 ģ ģ LATIN LETTER G WITH CEDILLA +lowercase \x0125 4-125 ĥ ĥ LATIN LETTER H WITH CIRCUMFLEX +lowercase \x0127 4-125 ħ ħ LATIN LETTER H WITH STROKE +lowercase \x0129 4-24 ĩ ĩ LATIN LETTER I WITH TILDE +lowercase \x012B 4-24 ī ī LATIN LETTER I WITH MACRON +lowercase \x012F 4-24 į į LATIN LETTER I WITH OGONEK +lowercase \x0133 4-245 ij ij LATIN LIGATURE IJ +lowercase \x0135 4-245 ĵ ĵ LATIN LETTER J WITH CIRCUMFLEX +lowercase \x0137 4-13 ķ ķ LATIN LETTER K WITH CEDILLA +lowercase \x013A 4-123 ĺ ĺ LATIN LETTER L WITH ACUTE +lowercase \x013C 4-123 ļ ļ LATIN LETTER L WITH CEDILLA +lowercase \x013E 4-123 ľ ľ LATIN LETTER L WITH CARON +lowercase \x0140 4-123 ŀ ŀ LATIN LETTER L WITH MIDDLE DOT +lowercase \x0142 4-123 ł ł LATIN LETTER L WITH STROKE +lowercase \x0144 4-1345 ń ń LATIN LETTER N WITH ACUTE +lowercase \x0146 4-1345 ņ ņ LATIN LETTER N WITH CEDILLA +lowercase \x0148 4-1345 ň ň LATIN LETTER N WITH CARON +lowercase \x014B 4-1345 ŋ ŋ LATIN LETTER ENG +lowercase \x014D 4-135 ō ō LATIN LETTER O WITH MACRON +lowercase \x014F 4-135 ŏ ŏ LATIN LETTER O WITH BREVE +lowercase \x0151 4-135 ő ő LATIN LETTER O WITH DOUBLE ACUTE +lowercase \x0155 4-1235 ŕ ŕ LATIN LETTER R WITH ACUTE +lowercase \x0157 4-1235 ŗ ŗ LATIN LETTER R WITH CEDILLA +lowercase \x0159 4-1235 ř ř LATIN LETTER R WITH CARON +lowercase \x015B 4-234 ś ś LATIN LETTER S WITH ACUTE +lowercase \x015D 4-234 ŝ ŝ LATIN LETTER S WITH CIRCUMFLEX +lowercase \x0161 4-234 š š LATIN LETTER S WITH CARON +lowercase \x0219 4-234 ș LATIN LETTER S WITH COMMA BELOW +lowercase \x00DF 4-234 ß LATIN SMALL LETTER SHARP S +lowercase \x0163 4-2345 ţ ţ LATIN LETTER T WITH CEDILLA +lowercase \x0165 4-2345 ť ť LATIN LETTER T WITH CARON +lowercase \x0167 4-2345 ŧ ŧ LATIN LETTER T WITH STROKE +lowercase \x0192 4-124 ƒ ƒ LATIN LETTER F WITH HOOK +lowercase \x021B 4-2345 ț LATIN LETTER T WITH COMMA BELOW +lowercase \x0169 4-136 ũ ũ LATIN LETTER U WITH TILDE +lowercase \x016B 4-136 ū ū LATIN LETTER U WITH MACRON +lowercase \x016D 4-136 ŭ ŭ LATIN LETTER U WITH BREVE +lowercase \x016F 4-136 ů ů LATIN LETTER U WITH RING ABOVE +lowercase \x0171 4-136 ű ű LATIN LETTER U WITH DOUBLE ACUTE +lowercase \x0173 4-136 ų ų LATIN LETTER U WITH OGONEK +lowercase \x0175 4-2456 ŵ ŵ LATIN LETTER W WITH CIRCUMFLEX +lowercase \x0177 4-13456 ŷ ŷ LATIN LETTER Y WITH CIRCUMFLEX +lowercase \x017A 4-1356 ź ź LATIN LETTER Z WITH ACUTE +lowercase \x017C 4-1356 ż ż LATIN LETTER Z WITH DOT ABOVE +lowercase \x017E 4-1356 ž ž LATIN LETTER Z WITH CARON +lowercase \x01CE 4-1 ǎ ǎ LATIN LETTER A WITH CARON +lowercase \x1E81 4-2456 ẁ ẁ LATIN LETTER W WITH GRAVE +lowercase \x1E83 4-2456 ẃ ẃ LATIN LETTER W WITH ACUTE +lowercase \x1E85 4-2456 ẅ ẅ LATIN LETTER W WITH DIAERESIS +lowercase \x1EF3 4-13456 ỳ ỳ LATIN LETTER Y WITH GRAVE + +base uppercase \x00C2 \x00E2 Ââ Ââ LATIN LETTER A WITH CIRCUMFLEX +base uppercase \x00C0 \x00E0 Àà Àà LATIN LETTER A WITH GRAVE +base uppercase \x00C1 \x00E1 Áá Áá LATIN LETTER A WITH ACUTE +base uppercase \x00C3 \x00E3 Ãã Ãã LATIN LETTER A WITH TILDE +base uppercase \x00C4 \x00E4 Ää LATIN CAPITAL LETTER A WITH DIAERESIS +base uppercase \x00C5 \x00E5 Åå Åå LATIN LETTER A WITH RING ABOVE +base uppercase \x00C6 \x00E6 Ææ Ææ LATIN LETTER AE +base uppercase \x00C8 \x00E8 Èè Èè LATIN LETTER E WITH GRAVE +base uppercase \x00C9 \x00E9 Éé Éé LATIN LETTER E WITH ACUTE +base uppercase \x00CA \x00EA Êê Êê LATIN LETTER E WITH CIRCUMFLEX +base uppercase \x00CB \x00EB Ëë Ëë LATIN LETTER E WITH DIAERESIS +base uppercase \x00CE \x00EE Îî Îî LATIN LETTER I WITH CIRCUMFLEX +base uppercase \x00CC \x00EC Ìì Ìì LATIN LETTER I WITH GRAVE +base uppercase \x00CD \x00ED Íí Íí LATIN LETTER I WITH ACUTE +base uppercase \x00CF \x00EF Ïï Ïï LATIN LETTER I WITH DIAERESIS +base uppercase \x00D0 \x00F0 Ðð Ðð LATIN LETTER ETH +base uppercase \x00D1 \x00F1 Ññ Ññ LATIN LETTER N WITH TILDE +base uppercase \x00D2 \x00F2 Òò Òò LATIN LETTER O WITH GRAVE +base uppercase \x00D3 \x00F3 Óó Óó LATIN LETTER O WITH ACUTE +base uppercase \x00D4 \x00F4 Ôô Ôô LATIN LETTER O WITH CIRCUMFLEX +base uppercase \x00D5 \x00F5 Õõ Õõ LATIN LETTER O WITH TILDE +base uppercase \x00D8 \x00F8 Øø Øø LATIN LETTER O WITH STROKE +base uppercase \x00DB \x00FB Ûû Ûû LATIN LETTER U WITH CIRCUMFLEX +base uppercase \x00D9 \x00F9 Ùù Ùù LATIN LETTER U WITH GRAVE +base uppercase \x00DA \x00FA Úú Úú LATIN LETTER U WITH ACUTE +base uppercase \x00DD \x00FD Ýý Ýý LATIN LETTER Y WITH ACUTE +base uppercase \x00DE \x00FE Þþ Þþ LATIN LETTER THORN +base uppercase \x0178 \x00FF Ÿÿ ÿŸ LATIN LETTER Y WITH DIAERESIS +base uppercase \x0152 \x0153 Œœ Œœ LATIN LIGATURE OE +base uppercase \x0100 \x0101 Āā Āā LATIN LETTER A WITH MACRON +base uppercase \x0102 \x0103 Ăă Ăă LATIN LETTER A WITH BREVE +base uppercase \x0104 \x0105 Ąą Ąą LATIN LETTER A WITH OGONEK +base uppercase \x0106 \x0107 Ćć Ćć LATIN LETTER C WITH ACUTE +base uppercase \x0108 \x0109 Ĉĉ Ĉĉ LATIN LETTER C WITH CIRCUMFLEX +base uppercase \x010A \x010B Ċċ Ċċ LATIN LETTER C WITH DOT ABOVE +base uppercase \x010C \x010D Čč Čč LATIN LETTER C WITH CARON +base uppercase \x010E \x010F Ďď Ďď LATIN LETTER D WITH CARON +base uppercase \x0110 \x0111 Đđ Đđ LATIN LETTER D WITH STROKE +base uppercase \x0112 \x0113 Ēē Ēē LATIN LETTER E WITH MACRON +base uppercase \x0116 \x0117 Ėė Ėė LATIN LETTER E WITH DOT ABOVE +base uppercase \x0118 \x0119 Ęę Ęę LATIN LETTER E WITH OGONEK +base uppercase \x011A \x011B Ěě Ěě LATIN LETTER E WITH CARON +base uppercase \x0122 \x0123 Ģģ Ģģ LATIN LETTER G WITH CEDILLA +base uppercase \x0124 \x0125 Ĥĥ Ĥĥ LATIN LETTER H WITH CIRCUMFLEX +base uppercase \x0126 \x0127 Ħħ Ħħ LATIN LETTER H WITH STROKE +base uppercase \x0128 \x0129 Ĩĩ Ĩĩ LATIN LETTER I WITH TILDE +base uppercase \x012A \x012B Īī Īī LATIN LETTER I WITH MACRON +base uppercase \x012E \x012F Įį Įį LATIN LETTER I WITH OGONEK +base uppercase \x0132 \x0133 IJij IJij LATIN LIGATURE IJ +base uppercase \x0134 \x0135 Ĵĵ Ĵĵ LATIN LETTER J WITH CIRCUMFLEX +base uppercase \x0136 \x0137 Ķķ Ķķ LATIN LETTER K WITH CEDILLA +base uppercase \x0139 \x013A Ĺĺ Ĺĺ LATIN LETTER L WITH ACUTE +base uppercase \x013B \x013C Ļļ Ļļ LATIN LETTER L WITH CEDILLA +base uppercase \x013D \x013E Ľľ Ľľ LATIN LETTER L WITH CARON +base uppercase \x013F \x0140 Ŀŀ Ŀŀ LATIN LETTER L WITH MIDDLE DOT +base uppercase \x0141 \x0142 Łł Łł LATIN LETTER L WITH STROKE +base uppercase \x0143 \x0144 Ńń Ńń LATIN LETTER N WITH ACUTE +base uppercase \x0145 \x0146 Ņņ Ņņ LATIN LETTER N WITH CEDILLA +base uppercase \x0147 \x0148 Ňň Ňň LATIN LETTER N WITH CARON +base uppercase \x014A \x014B Ŋŋ Ŋŋ LATIN LETTER ENG +base uppercase \x014C \x014D Ōō Ōō LATIN LETTER O WITH MACRON +base uppercase \x014E \x014F Ŏŏ Ŏŏ LATIN LETTER O WITH BREVE +base uppercase \x0150 \x0151 Őő Őő LATIN LETTER O WITH DOUBLE ACUTE +base uppercase \x0154 \x0155 Ŕŕ Ŕŕ LATIN LETTER R WITH ACUTE +base uppercase \x0156 \x0157 Ŗŗ Ŗŗ LATIN LETTER R WITH CEDILLA +base uppercase \x0158 \x0159 Řř Řř LATIN LETTER R WITH CARON +base uppercase \x015A \x015B Śś Śś LATIN LETTER S WITH ACUTE +base uppercase \x015C \x015D Ŝŝ Ŝŝ LATIN LETTER S WITH CIRCUMFLEX +base uppercase \x0160 \x0161 Šš Šš LATIN LETTER S WITH CARON +base uppercase \x0218 \x0219 Șș LATIN LETTER S WITH COMMA BELOW +base uppercase \x1e9e \x00DF ß LATIN SMALL LETTER SHARP S +base uppercase \x0162 \x0163 Ţţ Ţţ LATIN LETTER T WITH CEDILLA +base uppercase \x0164 \x0165 Ťť Ťť LATIN LETTER T WITH CARON +base uppercase \x0166 \x0167 Ŧŧ Ŧŧ LATIN LETTER T WITH STROKE +base uppercase \x0191 \x0192 Ƒƒ Ƒƒ LATIN LETTER F WITH HOOK +base uppercase \x021A \x021B Țț LATIN LETTER T WITH COMMA BELOW +base uppercase \x0168 \x0169 Ũũ Ũũ LATIN LETTER U WITH TILDE +base uppercase \x016A \x016B Ūū Ūū LATIN LETTER U WITH MACRON +base uppercase \x016C \x016D Ŭŭ Ŭŭ LATIN LETTER U WITH BREVE +base uppercase \x016E \x016F Ůů Ůů LATIN LETTER U WITH RING ABOVE +base uppercase \x0170 \x0171 Űű Űű LATIN LETTER U WITH DOUBLE ACUTE +base uppercase \x0172 \x0173 Ųų Ųų LATIN LETTER U WITH OGONEK +base uppercase \x0174 \x0175 Ŵŵ Ŵŵ LATIN LETTER W WITH CIRCUMFLEX +base uppercase \x0176 \x0177 Ŷŷ Ŷŷ LATIN LETTER Y WITH CIRCUMFLEX +base uppercase \x0179 \x017A Źź Źź LATIN LETTER Z WITH ACUTE +base uppercase \x017B \x017C Żż Żż LATIN LETTER Z WITH DOT ABOVE +base uppercase \x017D \x017E Žž Žž LATIN LETTER Z WITH CARON +base uppercase \x01CD \x01CE Ǎǎ Ǎǎ LATIN LETTER A WITH CARON +base uppercase \x1E80 \x1E81 Ẁẁ Ẁẁ LATIN LETTER W WITH GRAVE +base uppercase \x1E82 \x1E83 Ẃẃ Ẃẃ LATIN LETTER W WITH ACUTE +base uppercase \x1E84 \x1E85 Ẅẅ Ẅẅ LATIN LETTER W WITH DIAERESIS +base uppercase \x1EF2 \x1EF3 Ỳỳ Ỳỳ LATIN LETTER Y WITH GRAVE diff --git a/braille/translate/src/phone/tables/uga.utb b/braille/translate/src/phone/tables/uga.utb new file mode 100644 index 000000000..654de03dc --- /dev/null +++ b/braille/translate/src/phone/tables/uga.utb @@ -0,0 +1,86 @@ +# liblouis: Ugaritic +# +#-index-name: Ugaritic +#-display-name: Ugaritic braille +# +#+language: uga +#+type: literary +#+contraction: no +#+dots: 6 +#+unicode-range: ucs4 + +#-license: lgpl-2.1 + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this file; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# liblouis comes with ABSOLUTELY NO WARRANTY. + +# The braille code for Ugaritic is innovative, but accurately +# represents the Cuneiform. The braille code for Ugaritic is +# represented in braille as the name for the sign in Ugaritic. Thus, +# if the Ugaritic sign is a "Alepha," then the braille code for this +# sign would be a dot 1. for more information on the Ugaritic +# language, please go to +# . Also see: +# + +# This braille code was developed by a group of both blind and sighted +# scholars in an academic setting. Special thank you to Ray McAllister +# and Matthew Yeater for your help in developing this braille code. + +#-maintainer: Paul Geoghegan +#-maintainer: Matityhau Yeshurun + +# Copyright (C) 2024 Matt Yeater and Paul Geoghegan + +# letter op code characters +letter 𐎀 1 # ALPA +letter 𐎁 12 # BETA +letter 𐎂 1245 # GAMLA +letter 𐎃 16 # KHA +letter 𐎄 145 # DELTA +letter 𐎅 125 # HO +letter 𐎆 2456 # WO +letter 𐎇 1356 # ZETA +letter 𐎈 1346 # HOTA +letter 𐎉 5-2345 # TET +letter 𐎊 13456 # YOD +letter 𐎋 13 # KAF +letter 𐎌 146 # SHIN +letter 𐎍 123 # LAMDA +letter 𐎎 134 # MEM +letter 𐎏 56-145 # DHAL +letter 𐎐 1345 # NUN +letter 𐎑 5-1356 # ZU +letter 𐎒 12346 # SAMKA +letter 𐎓 1246 # AIN +letter 𐎔 1234 # PU +letter 𐎕 5-234 # SADE +letter 𐎖 12345 # QOPA +letter 𐎗 1235 # RASHA +letter 𐎘 1456 # THANNA +letter 𐎙 45-34-1245 # GHAIN +letter 𐎚 2345 # TO +letter 𐎛 24 # I +letter 𐎜 136 # U +letter 𐎝 234-1256 # SSU + +# punctuation op code characters +punctuation 𐎟 36 # WORD DIVIDER + +# Include additional braille tables +include spaces.uti +include litdigits6Dots.uti +include latinLetterDef6Dots.uti +include en-ueb-chardefs.uti diff --git a/braille/translate/src/phone/tables/uk-detailed.utb b/braille/translate/src/phone/tables/uk-detailed.utb new file mode 100644 index 000000000..46207d5ff --- /dev/null +++ b/braille/translate/src/phone/tables/uk-detailed.utb @@ -0,0 +1,32 @@ +#-index-name: Ukrainian, with capitals +#-display-name: Ukrainian braille with indication of capitals + +#+language: uk +#+type: literary +#+dots: 6 +#+contraction: no +#+direction: both +#+variant: detailed +# +# Copyright (C) 2024 Andrey Yakuboy +# +# This file is part of liblouis. +# +# liblouis is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 2.1 of the +# License, or (at your option) any later version. +# +# liblouis is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with liblouis. If not, see +# . + +#-maintainer: Andrey Yakuboy + +include uk.utb +include ru-litbrl-detailed.utb diff --git a/braille/translate/src/phone/tables/uk.utb b/braille/translate/src/phone/tables/uk.utb index 12e63a27b..2cc6762e7 100644 --- a/braille/translate/src/phone/tables/uk.utb +++ b/braille/translate/src/phone/tables/uk.utb @@ -3,7 +3,7 @@ #+language: uk #+type: literary -#+direction: forward +#+direction: both # ----------------- # TODO: Please add a reference to official documentation about @@ -13,10 +13,12 @@ #-copyright: Bert Frees #-copyright: EAC "Lemur" +#-copyright: Andrey Yakuboy #-license: LGPLv2.1 # Copyright (C) 2017 EAC "Lemur" # Copyright (C) 2018 Bert Frees +# Copyright (C) 2024 Andrey Yakuboy # # This file is part of liblouis. # @@ -41,31 +43,59 @@ # ----------------- # The Ukrainian alphabet has 4 letters that are not in the Russian -# alphabet, namely Є, І, Ї and Ґ. Like in ru-litbrl.ctb, the -# following definitions have dot 9 set to make them distinguishable -# from the Latin letters. -# -# The first three definitions conflict with definitions in -# ru-litbrl.ctb and need to be placed before AND after the -# "ru-litbrl.ctb" include in order for both the lower- and uppercase -# part to take precedence (see -# https://github.com/liblouis/liblouis/issues/384). +# alphabet, namely Є, І, Ї and Ґ. -lowercase \x0454 3459 CYRILLIC LETTER IE є -lowercase \x0456 134569 CYRILLIC LETTER I і -lowercase \x0457 14569 CYRILLIC LETTER II ї -lowercase \x0491 124569 CYRILLIC LETTER GE ґ +lowercase \x0454 345 CYRILLIC LETTER IE є # conflicts with definition in# ru-litbrl.ctb +lowercase \x0456 13456 CYRILLIC LETTER I і # conflicts with definition in# ru-litbrl.ctb +lowercase \x0457 1456 CYRILLIC LETTER II ї # conflicts with definition in# ru-litbrl.ctb +lowercase \x0491 12456 CYRILLIC LETTER GE ґ # base rule for Ґ (the base rules for Є, І and Ї are already in ru-litbrl.ctb) base uppercase \x0490 \x0491 CYRILLIC LETTER GE Ґґ +# Add dot 9 to additional Cyrillic characters, as in ru-litbrl.ctb + +noback always \x0454 3459 +noback always \x0456 134569 +noback always \x0457 14569 +noback always \x0491 124569 + +noback always \x0404 3459 +noback always \x0406 134569 +noback always \x0407 14569 +noback always \x0490 124569 + +# As the definition of the Ukrainian letter 'є' conflicts with parentheses, the definitions of parentheses should be changed +prepunc ( 2356 +postpunc ) 2356 + # Ukrainian braille is largely the same as Russian braille include ru-litbrl.ctb -lowercase \x0454 3459 CYRILLIC LETTER IE є -lowercase \x0456 134569 CYRILLIC LETTER I і -lowercase \x0457 14569 CYRILLIC LETTER II ї - # Extend classes defined in ru-litbrl.ctb attribute uppercyrillic \x0490 attribute lowercyrillic \x0491 + +# In spite of conflicts of letters and parentheses, in math text parentheses should be marked like in the Russian braille +# The correct opcode is used to avoid conflicts with rules in ru-litbrl.ctb +noback correct $m["("] "\x2823"#4=1 # \x2823 is the dots 126 +noback correct ["("]$m "\x2823"#4=1 +noback correct $d["("] "\x2823"#4=1 +noback correct ["("]$d "\x2823"#4=1 +noback correct #4=1[")"] "\x281c"#4=0 # \x281c is the dots 345 +noback correct $m[")"] "\x281c"#4=0 +noback correct [")"]$m "\x281c"#4=0 +noback correct $d[")"] "\x281c"#4=0 +noback correct [")"]$d "\x281c"#4=0 + +# Back translation of additional letters + +nofor context #4=1@345 "\x0404"#4=0 +nofor context #4=1@13456 "\x0406"#4=0 +nofor context #4=1@1456 "\x0407"#4=0 +nofor context #4=1@12456 "\x0490"#4=0 + +nofor context #4=2@345 "\x0404" +nofor context #4=2@13456 "\x0406" +nofor context #4=2@1456 "\x0407" +nofor context #4=2@12456 "\x0490" diff --git a/braille/translate/src/phone/tables/ur-pk-g1.utb b/braille/translate/src/phone/tables/ur-pk-g1.utb index 042634051..e117f6586 100644 --- a/braille/translate/src/phone/tables/ur-pk-g1.utb +++ b/braille/translate/src/phone/tables/ur-pk-g1.utb @@ -2,13 +2,14 @@ # #-index-name: Urdu, uncontracted #-display-name: Urdu uncontracted braille +#-updated: 2023 # #+language:ur #+type:literary #+contraction:no #+grade:1 # -# Copyright (C) 2018, 2020, 2021 by Compass Braille +# Copyright (C) 2018, 2020, 2021, 2023 by Compass Braille # # This file is part of liblouis. # @@ -29,7 +30,6 @@ # Prepared by Jake Kyle, Compass Braille, UK in consultation with Buta Masih # Contact: jake@compassbraille.org # www.compassbraille.org -# Last updated 23rd August 2021 # NB. If including an English table the letter sign must be disabled. @@ -182,26 +182,27 @@ always \x0648\x064F\x0654 3-136-2456 WU' 'UW #------------------------------------------------------------------------------------------------------- # Dealing with aspirated digraphs followed by Fatha (1), Kasra (E) or Damma (U). -# In the text file these vowel signs sometimes come before Heh Doachashmee whereas in Braille they must come after. +# In the text file these vowel signs usually come before Heh Doachashmee whereas in Braille they must come after. #------------------------------------------------------------------------------------------------------- # ASCII as in text ASCII in Braille -noback always \x0628\x064F\x06BE 12-236-136 BU8 B8U -noback always \x0628\x0650\x06BE 12-236-15 BE8 B8E -noback always \x067E\x0650\x06BE 1234-236-15 PE8 P8E -noback always \x067E\x064E\x06BE 1234-236-2 P18 P81 -noback always \x067E\x064F\x06BE 1234-236-136 PU8 P8U -noback always \x062A\x0650\x06BE 2345-236-15 TE8 T8E -noback always \x0679\x0650\x06BE 246-236-15 [E8 [8E -noback always \x0686\x0650\x06BE 14-236-15 CE8 C8E -noback always \x0686\x064F\x06BE 14-236-136 CU8 C8U -noback always \x06A9\x0650\x06BE 13-236-15 KE8 K8E -noback always \x06A9\x064F\x06BE 13-236-136 KU8 K8U -noback always \x06AF\x064F\x06BE 1245-236-136 GU8 G8U -noback always \x062F\x064F\x06BE 145-236-136 DU8 D8U -noback always \x062C\x064F\x06BE 245-236-136 JU8 J8U -noback always \x0688\x064E\x06BE 346-236-2 +18 +81 -noback always \x0688\x064F\x06BE 346-236-136 +U8 +8U +always \x0628\x064F\x06BE 12-236-136 BU8 B8U +always \x0628\x0650\x06BE 12-236-15 BE8 B8E +always \x067E\x0650\x06BE 1234-236-15 PE8 P8E +always \x067E\x064E\x06BE 1234-236-2 P18 P81 +always \x067E\x064F\x06BE 1234-236-136 PU8 P8U +always \x062A\x0650\x06BE 2345-236-15 TE8 T8E +always \x0679\x0650\x06BE 246-236-15 [E8 [8E +always \x0686\x0650\x06BE 14-236-15 CE8 C8E +always \x0686\x064F\x06BE 14-236-136 CU8 C8U +always \x06A9\x0650\x06BE 13-236-15 KE8 K8E +always \x06A9\x064F\x06BE 13-236-136 KU8 K8U +always \x06AF\x064F\x06BE 1245-236-136 GU8 G8U +always \x062F\x064F\x06BE 145-236-136 DU8 D8U +always \x062C\x064F\x06BE 245-236-136 JU8 J8U +always \x062C\x0650\x06BE 245-236-15 JE8 J8E +always \x0688\x064E\x06BE 346-236-2 +18 +81 +always \x0688\x064F\x06BE 346-236-136 +U8 +8U #------------------------------------------------------------------------------------------- # Shadda (\x0651) goes after consonant in text file but must go before it in Braille diff --git a/braille/translate/src/phone/tables/ur-pk-g2.ctb b/braille/translate/src/phone/tables/ur-pk-g2.ctb index 88d85a19c..d40cf49ef 100644 --- a/braille/translate/src/phone/tables/ur-pk-g2.ctb +++ b/braille/translate/src/phone/tables/ur-pk-g2.ctb @@ -2,13 +2,14 @@ # #-index-name: Urdu, contracted #-display-name: Urdu contracted braille +#-updated: 2023 # #+language:ur #+type:literary #+contraction:full #+grade:2 # -# Copyright (C) 2018, 2020, 2021 Compass Braille +# Copyright (C) 2018, 2020, 2021,2023 Compass Braille # # This file is part of liblouis. # @@ -29,11 +30,9 @@ # Prepared by Jake Kyle, Compass Braille in consultation with Buta Masih # Contact: jake@compassbraille.org # www.compassbraille.org -# Last updated 23rd August 2021 include ur-pk-g1.utb - # ASCII in full ASCII contraction Remarks # in order found # in text file @@ -143,7 +142,6 @@ always \x0686\x0651\x06BE\x0645 6-16-134 C,8M ,*M always \x0686\x06BE\x0651\x0648 6-16-2456 C8,W ,*W always \x062A\x0651\x06BE 6-1256 T,8 ,[backslash] always \x062A\x06BE\x0651 6-1256 T8, ,[backslash] -begmidword \x062A\x0651\x0627 6-256 T,A ,4 begmidword \x0628\x0651\x0627 6-25 B,A ,3 always \x0628\x0651\x0627\x0646 6-12-35 B,AN ,B9 always \x0644\x0627\x0651 6-1236 LA, ,V @@ -285,6 +283,7 @@ always \x0686\x0627\x0631 5-14 CAR always \x062D\x0627\x0644 5-156 :AL ": sufword \x062E\x064F\x0648\x0634 5-1346 XUW% "X always \x062F\x0627\x0631 5-145 DAR "D +noback always \s\x062F\x0627\x0631 5-145 spaceDAR "D remove space always \x0688\x0627\x0644 5-346 +AL "+ always \x0630\x0631\x06CC\x0630 5-2346 !RI( "! always \x0631\x0648\x0632 5-1235 RWZ "R @@ -301,7 +300,7 @@ always \x063A\x064E\x06CC\x0631 5-126 <2IR always \x0641\x0631\x0642 5-124 FRQ "F always \x0642\x0631\x0650\x06CC\x0628 5-12345 QREIB "Q always \x0642\x0631\x06CC\x0628 5-12345 QRIB "Q -always \x06A9\x0627\x0631 5-13 KAR "K +midendword \x06A9\x0627\x0631 5-13 KAR "K always \x06AF\x064F\x0632\x0631 5-1245 GUZR "G word \x0644\x0650\x0626\x06D2 5-123 LE'/ "L noback word \x0644\x0650\x064A\x0654\x06D2 5-123 LE'/ "L @@ -578,8 +577,8 @@ noback word \x06AF\x0688\x0631\x0626\x06D2 1245-346-1235-24-34 G+R' word \x0628\x06D2\s\x062E\x0645\x0650\x06CC\x0631\x06CC 36-1346-134-24-1235-24 B/ XMEIRI -XMIRI 'unleavened' word \x0627\x0628\x062F\x064F\x0627\x0644\x0622\x0628\x0627\x062F 1-12-145-136-123-345-12-1-145 ABDUAL>BAD ABDUL>BAD 'forever' noback word \x0627\x0628\x062F\x064F\x0627\x0644\x0627\x0653\x0628\x0627\x062F 1-12-145-136-123-345-12-1-145 ABDUAL>BAD ABDUL>BAD 'forever' - as above but with ALEF plus MADDA ABOVE -word \x0631\x064F\x0648\x0628\x0631\x064F\x0648 1235-136-2456-0-12-0-1235-136-2456 RUWBRUW RUW B RUW 'face to face' -noback word \x0631\x064F\x0648\x0628\x0631\x0648 1235-136-2456-0-12-0-1235-136-2456 RUWBRW RUW B RUW 'face to face' +word \x0631\x064F\x0648\x0628\x0631\x064F\x0648 1235-136-2456-0-12-1235-136-2456 RUWBRUW RUW BRUW 'face to face' +noback word \x0631\x064F\x0648\x0628\x0631\x0648 1235-136-2456-0-12-1235-136-2456 RUWBRW RUW BRUW 'face to face' word \x0631\x064F\x0648\x062D\x064F\s\xFDF2 1235-136-2456-156-1-6-123-4-125 RUW:U A,L@H RUW:A,L@H 'Spirit of God' noback word \x0631\x064F\x0648\x062D\x064F\xFDF2 1235-136-2456-156-1-6-123-4-125 RUW:UA,L@H RUW:A,L@H 'Spirit of God' noback word \x0631\x064F\x0648\x062D\x064F\s\x0627\xFDF2 1235-136-2456-156-1-6-123-4-125 RUW:U AA,L@H RUW:A,L@H 'Spirit of God' @@ -590,6 +589,10 @@ word \x06AF\x0650\x0631\x062F\x0627\x06AF\x0650\x0631\x062F 1245-15-1235-145-1-0 noback word \x062E\x0631\x064F\x0648\x062C 1346-136-1235-136-2456-245 XRUWJ XURUWJ 'Exodus' word \x0628\x064F\x0648\x0679\x06D2\s\x062F\x0627\x0631 12-136-2456-246-34-5-145 BUW[/ "D BUW[/"D 'embroidered' +# Names ending in AIL often have a space separating these letters from beginning - remove space +noback endword \s\x0627\x06CC\x0644\x0614 1-24-123 # with takhallus +endword \s\x0627\x06CC\x0644 1-24-123 # without takhallus +endword \s\x0627\x06CC\x0644\x0650\x06CC\x0648\x06BA 1-24-123-15-5-34 # AILE"/ as above but with Urdu for "ites" on the end # Ignoring vowel diacritics in braille @@ -627,7 +630,8 @@ word \x0633\x0627\x062A\x06BE\s\x0633\x0627\x062A\x06BE 3456-234-3-3 word \x0628\x0627\x063A\s\x0628\x0627\x063A 12-1-126-3-3 BA< BA< BA<'' word \x062F\x06CC\x06A9\x06BE\x062A\x06D2\s\x062F\x06CC\x06A9\x06BE\x062A\x06D2 145-24-13-236-2345-34-3-3 DIK8T/ DIK8T/ DIK8T/'' word \x0686\x0650\x0644\x0651\x0627\s\x0686\x0650\x0644\x0651\x0627 14-15-6-1236-3-3 CEL,A CEL,A CE,V'' - +word \x0639\x064F\x0636\x0648\x0639\x064F\x0636\x0648 12356-136-1246-2456-3-3 (U$W(U$W (U$W'' +word \x0688\x0628\x0648\x0688\x0628\x0648 346-12-2456-3-3 +BW+BW +BW'' # Corrections # Takhallus diff --git a/braille/translate/src/phone/tables/vi-puncsdef.uti b/braille/translate/src/phone/tables/vi-puncsdef.uti index e9bdb99d1..b70b18a60 100755 --- a/braille/translate/src/phone/tables/vi-puncsdef.uti +++ b/braille/translate/src/phone/tables/vi-puncsdef.uti @@ -99,7 +99,7 @@ display { 246 punctuation { 456-126 display ~ 45 math ~ 4-35 -match - ... - 3-3-3 +always ... 3-3-3 # Most of Vietnamese unicode signs have same UEB char definitions # Modifiers diff --git a/braille/translate/src/phone/tables/vi-saigon-g1.ctb b/braille/translate/src/phone/tables/vi-saigon-g1.ctb index 9834c1eda..67e61db03 100755 --- a/braille/translate/src/phone/tables/vi-saigon-g1.ctb +++ b/braille/translate/src/phone/tables/vi-saigon-g1.ctb @@ -43,19 +43,13 @@ # This table uses old letter d dots 1356 and đ dots 145. -# These definitions need to be placed before AND after the -# "vi-charsdef.uti" include in order for both the lower- and uppercase -# part to take precedence (see issue https://github.com/liblouis/liblouis/issues/384). +# definitions that conflict with definitions in vi-charsdef.uti lowercase d 1356 lowercase đ 145 lowercase \x00f0 145 ð include vi-charsdef.uti -lowercase d 1356 -lowercase đ 145 -lowercase \x00f0 145 ð - # number indicator definitions numsign 3456 number sign, just a dots operand numericmodechars ., diff --git a/braille/translate/src/phone/tables/yi.utb b/braille/translate/src/phone/tables/yi.utb new file mode 100644 index 000000000..18c115e05 --- /dev/null +++ b/braille/translate/src/phone/tables/yi.utb @@ -0,0 +1,236 @@ +# liblouis: Uncontracted braille table for Yiddish. +# +# +# This file is part of liblouis. +# +# liblouis is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 2.1 of the +# License, or (at your option) any later version. +# +# liblouis is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with liblouis. If not, see +# . + +#-license: LGPLv2.1 + +# Copyright (C) 2024 by Abby Howell + +#-copyright: 2024, Abby Howell + +#-index-name: Yiddish +#-display-name: Yiddish braille + +#+language: yi +#+type: literary +#+dots: 6 +#+contraction: no +#+grade: 1 +#+direction:forward + +# This table was created by Abby Howell, Matthew Shifrin, and Harris Mowbray + +#-author: Abby Howell +#-author: Matthew Shifrin + +# Yiddish is a Jewish language written in the Hebrew alphabet, which has +# been spoken by Ashkenazic Jewish communities in Eastern Europe and their +# descendants for over 1000 years. Although Yiddish is written using the +# same alphabet as Hebrew, not all of Unicode characters used in Yiddish +# are represented in the Hebrew Braille tables. Additionally, in Hebrew, +# the letters are only used to represent consonants, and the vowels are +# written with diacritic accent characters and often omitted entirely. In +# Yiddish, by contrast, all vowel sounds are represented by letters or +# combinations of letters. Because of this, even though the two languages +# share an alphabet, they need to use separate Braille tables. + +# Background: +# +# This braille table is being proposed by a sighted teacher and a blind student +# of Yiddish at the Boston Worker's Circle, who have been working together, along +# with a consortium of advisors, to make the language accessible through braille. +# +# Yiddish was incorporated into unicode two decades ago with a few special characters +# and combinations of letters which have unique unicode characters, which are not +# represented by the Hebrew Braille table. The result is that, when a blind reader +# tries to read a Yiddish text file, many of the characters are not represented, filling +# the output with "mystery characters". +# This table is needed so that braille reader software will be able to recognize +# the unicode characters that represent Yiddish and display them in readable Braille. + +# This table is informed by and inspired by the Hebrew Braille table, but with Braille +# characters assigned to the letters based on the way they are pronounced in Yiddish. + +# Notable differences with the Hebrew Braille table are as follows: +# The letter ayin is used in Yiddish as a vowel "e". We have assigned it dots 15, +# overriding the Hebrew's 1246. +# The letter vov is used in Yiddish as the vowel "u", and two vovs are the consonant "v". +# We assigned the single vov dots 346, overriding Hebrew's 2456, and we assigned +# the double-vov dots 1236. +# The second letter of the Hebrew alphabet, beys, can be pronounced like a "b" or like a "v". +# In Hebrew Braille, the letter is assigned dots 1236, and when it has a dagesh (a dot +# in the middle of the letter representing that it's pronounced as a stop), it gets dots 12. +# In Yiddish, this letter is used to represent the sound "b" in most cases, and when it +# is used to represent the sound "v" it is written with a "rafe" which is a line +# above the letter (the rafe is not generally used in Hebrew). So we have assigned the +# unmarked beys the dots 12, and the beys with rafe (called "veys" in Yiddish) the dots 2456. +# There are a handful of special letter combinations that are used in Yiddish to represent +# dipthongs (combination vowels). The letters vov-yud are used to represent the sound "oy" and +# we've assigned that combo dots 246. The letters yud-yud are used to represent the sound "ey" +# and we've assigned them dots 26. The letters yud-yud-pasekh represent the sound "ay" and +# we've assigned them dots 356. +# For the letter alef with pasekh, used in Yiddish to represent the vowel "a", we've assigned +# dots 12346. For the letter alef with komets, used in Yiddish to represent the sound "o", we've +# selected dots 12356. + +# In the process, we've relied on a consortium of experts for advice, including: +# - Mark David, a board member of the League for Yiddish, who was involved in the +# effort to incorporate Yiddish into Unicode over 20 years ago. He is the force behind +# UYIP.org, a website and listserve for Understanding Yiddish Information Processing. +# - Harry Bochner, a linguist and software engineer who co-authored the +# Comprehensive Yiddish-English Dictionary +# - Caryn Navy, a braille expert who works at Duxbury Systems +# - Harris Mowbray, a software engineer with experience creating Braille tables +# for other languages +# - Daniel Carkner, a (sighted) Yiddish speaker who also reads UEB Braille + +# The final mapping of Yiddish letters to Braille characters was decided by +# Matthew Shifrin after a semester of learning to read Yiddish with various +# draft Braille tables. The final map is as follows: +# +# shtumer alef א 1 ⠁ +# pasekh alef אַ 12346 ⠯ +# komets alef אָ 12356 ⠷ +# beys ב 12 ⠃ +# veys בֿ 2456 ⠺ +# giml ג 1245 ⠛ +# daled ד 145 ⠙ +# hey ה 125 ⠓ +# vov ו 346 ⠬ +# tsvey vovn װ 1236 ⠧ +# vov yud ױ 246 ⠪ +# zayin ז 1356⠵ +# khes ח 1346 ⠭ +# tes ט 2345 ⠞ +# yud י 245 ⠚ +# tsvey yudn ײ 26 ⠢ +# pasekh tsvey yudn ײַ 356 ⠴ +# kof כּ 13 ⠅ +# khof כ 16 ⠡ +# lamed ל 123 ⠇ +# mem מ 134 ⠍ +# nun נ 1345 ⠝ +# samekh ס 234 ⠎ +# ayin ע 15 ⠑ +# pey פּ 1234 ⠏ +# fey פֿ 124 ⠋ +# tsadik צ 2346 ⠮ +# kuf ק 12345 ⠟ +# reysh ר 1235 ⠗ +# shin ש 146 ⠩ +# sin שׂ 156 ⠱ +# tof תּ 1256 ⠳ +# sof ת 1456 ⠹ + +# Braille indicators +numsign 3456 number sign, just a dots operand + +capsletter 6 +begcapsword 6-6 +endcapsword 6-3 + +# literary forms of the decimal digits +include litdigits6Dots.uti + +# display/passthrough for unicode braille +include braille-patterns.cti + +# include the hebrew braille table +include he-IL.utb + +include en-chardefs.cti All character definition opcodes + + +# YIDDISH + +punctuation \x05BF 36 # HEBREW POINT RAFE +letter \x05D0 1 # YIDDISH LETTER SHTUMER ALEF (silent letter) +letter \xFB2E 12346 # YIDDISH LETTER PASEKH ALEF (a) +letter \xFB2F 12356 # YIDDISH LETTER KOMETS ALEF (o) +letter \xfb31 12 # YIDDISH LETTER BEYS WITH DAGESH (b) +letter \xFB4C 2456 # YIDDISH LETTER VEYS WITH RAFE (v) +letter \x05d1 12 # YIDDISH LETTER BEYS (b) +letter \x05D2 1245 # YIDDISH LETTER GIML (g) +letter \x05D3 145 # YIDDISH LETTER DALED (d) +letter \x05D4 125 # YIDDISH LETTER HEY (h) +letter \x05D5 346 # YIDDISH LETTER VOV (u) +letter \xfb35 346 # YIDDISH LETTER MELUPM VOV (u) +letter \x05F0 1236 # YIDDISH LIGATURE TSVEY VOVN (v) +letter \x05F1 246 # YIDDISH LIGATURE VOV YUD (oy) +letter \x05D6 1356 # YIDDISH LETTER ZAYIN (z) +letter \x05D7 1346 # YIDDISH LETTER KHES (kh) +letter \x05D8 2345 # YIDDISH LETTER TES (t) +letter \x05D9 245 # YIDDISH LETTER YUD (i) +letter \xfb1d 245 # YIDDISH LETTER KHIRIK YUD (i) +letter \x05F2 26 # YIDDISH LIGATURE TSVEY YUDN (ey) +letter \xFB1F 356 # YIDDISH LIGATURE PASEKH TSVEY YUDN (ay) +letter \xFB3B 13 # YIDDISH LETTER KOF (k) +letter \x05DB 16 # YIDDISH LETTER KHOF (kh) +letter \x05DA 16 # YIDDISH LETTER LANGER KHOF (kh) +letter \x05DC 123 # YIDDISH LETTER LAMED (l) +letter \x05DE 134 # YIDDISH LETTER MEM (m) +letter \x05DD 134 # YIDDISH LETTER SHLOS MEM (m) +letter \x05E0 1345 # YIDDISH LETTER NUN (n) +letter \x05DF 1345 # YIDDISH LETTER LANGER NUN (n) +letter \x05E2 15 # YIDDISH LETTER AYIN (e) +letter \xFB44 1234 # YIDDISH LETTER PEY WITH DAGESH (p) +letter \xFB4E 124 # YIDDISH LETTER FEY WITH RAFE (f) +letter \x05E4 124 # YIDDISH LETTER FEY (f) +letter \x05E3 124 # YIDDISH LETTER LANGER FEY (f) +letter \x05E6 2346 # YIDDISH LETTER TSADIK (ts) +letter \x05E5 2346 # YIDDISH LETTER LANGER TSADIK (ts) +letter \x05E7 12345 # YIDDISH LETTER KUF (k) +letter \x05E8 1235 # YIDDISH LETTER REYSH (r) +letter \x05E9 146 # YIDDISH LETTER SHIN (sh) +letter \xFB2B 156 # YIDDISH LETTER SIN (s) +letter \xFB4A 1256 # YIDDISH LETTER TOF (t) +letter \x05EA 1456 # YIDDISH LETTER SOF (s) + +always \x05D5\x05D9 246 # YIDDISH LETTER VOV YUD (oy) +always \x05D5\x05D5 1236 # YIDDISH LETTER VOV VOV (v) +always \x05D9\x05D9 26 # YIDDISH LETTER YUD YUD +always \x05F2\x05B7 356 # YIDDISH LETTER PASEKH TSVEY YUDN WITH SEPARATE PASEKH +always \xFB1F 356 # YIDDISH LETTER PASEKH TSVEY YUDN +always \x05D1\x05BF 2456 # YIDDISH LETTER VEYS WITH SEPARATE RAFE +always \xFB4C 2456 # YIDDISH LETTER VEYS WITH SEPARATE RAFE +always \x05DB\x05BC 13 # YIDDISH LETTER KAF WITH SEPARATE DAGESH +always \xFB3B 13 # YIDDISH LETTER KAF WITH DAGESH כּ +always כּ 13 # YIDDISH LETTER KAF WITH SEPARATE DAGESH כּ +always פּ 1234 # YIDDISH LETTER PEY WITH SEPARATE DAGESH פּ +always פּ 1234 # YIDDISH LETTER PEY WITH DAGESH פּ +always \x05E4\x05BC 1234 # YIDDISH LETTER PEY WITH SEPARATE DAGESH פּ +always פֿ 124 # YIDDISH LETTER FEY WITH RAFE פֿ +always \x05E4\x05BF 124 # YIDDISH LETTER FEY WITH SEPARATE RAFE פֿ +always \x05E9\x05C2 156 # YIDDISH LETTER SIN WITH SEPARATE DOT +always שׂ 156 # YIDDISH LETTER SIN WITH DOT שׂ +always שׂ 156 # YIDDISH LETTER SIN WITH SEPARATE DOT שׂ +always \x05EA\x05BC 1256 # YIDDISH LETTER TOF WITH SEPARATE DAGESH תּ +always תּ 1256 # YIDDISH LETTER TOF WITH SEPARATE DAGESH תּ +always \x05D0\x05B7 12346 # YIDDISH LETTER PASEKH ALEF WITH SEPARATE PASEKH +always אַ 12346 # YIDDISH LETTER PASEKH ALEF WITH SEPARATE PASEKH +always \x05D0\x05B8 12356 # YIDDISH LETTER KOMETS ALEF WITH SEPARATE KOMETS +always אָ 12356 # YIDDISH LETTER KOMETS ALEF WITH SEPARATE KOMETS +always \x05D5\x05BC 346 # YIDDISH LETTER MELUPM VOV WITH SEPARATE DAGESH +always וּ 346 # YIDDISH LETTER MELUPM VOV WITH SEPARATE DAGESH +always \x05D9\x05B4 245 # YIDDISH LETTER KHIREK YUD WITH SEPARATE KHIREK +always יִ 245 # YIDDISH LETTER KHIREK YUD WITH SEPARATE KHIREK +always ב 12 # YIDDISH LETTER BEYS ב +always בּ 12 # YIDDISH LETTER BEYS WITH DAGESH בּ +always \x05E2 15 # YIDDISH LETTER AYIN (e) +always \x05D5 346 # YIDDISH LETTER VOV (u) + diff --git a/braille/translate/src/phone/tables/zh-hk.ctb b/braille/translate/src/phone/tables/zh-hk.ctb index 928064682..961aadc48 100644 --- a/braille/translate/src/phone/tables/zh-hk.ctb +++ b/braille/translate/src/phone/tables/zh-hk.ctb @@ -19,8 +19,20 @@ # # Created by KM Yuen, Keny Yuen, Alex Ho and Eric Yip (16 July 2009) # -# include: + +#-index-name: Cantonese +#-display-name: Cantonese braille + +#+language: yue +#+region: yue-HK +#+type: literary + +# TODO: Please add a reference to official documentation about +# the implemented braille code. Preferably submit the documents +# to https://github.com/liblouis/braille-specs. + include en-us-comp8.ctb + # The following table has 4 columns, # the first column is Opcode, # the second one is "\x" follow by Hexadecimal Value of the Chinese word, @@ -10445,3 +10457,5 @@ sign \xFF5E 36 sign \xFFE0 56-14-15-1345-2345 sign \xFFE1 56-1234-135-136-1345-145 sign \xFFE5 56-13456-15-1345 + +include braille-patterns.cti diff --git a/braille/translate/src/phone/tables/zhcn-g1.ctb b/braille/translate/src/phone/tables/zhcn-g1.ctb index b2d7f5c94..b746feb97 100644 --- a/braille/translate/src/phone/tables/zhcn-g1.ctb +++ b/braille/translate/src/phone/tables/zhcn-g1.ctb @@ -26414,6 +26414,16 @@ noback correct $w[$s] ? # Stop # # Quoted the en-ueb-g1.ctb +digit 0 245 +digit 1 1 +digit 2 12 +digit 3 14 +digit 4 145 +digit 5 15 +digit 6 124 +digit 7 1245 +digit 8 125 +digit 9 24 include en-ueb-chardefs.uti include en-ueb-math.ctb space \x3000 0 diff --git a/braille/translate/src/phone/tables/zhcn-g2.ctb b/braille/translate/src/phone/tables/zhcn-g2.ctb index cb6ae620b..d5d902eec 100644 --- a/braille/translate/src/phone/tables/zhcn-g2.ctb +++ b/braille/translate/src/phone/tables/zhcn-g2.ctb @@ -26411,6 +26411,16 @@ noback correct $w[$s] ? # Stop # # Quoted the en-ueb-g1.ctb +digit 0 245 +digit 1 1 +digit 2 12 +digit 3 14 +digit 4 145 +digit 5 15 +digit 6 124 +digit 7 1245 +digit 8 125 +digit 9 24 include en-ueb-chardefs.uti include en-ueb-math.ctb #