diff options
65 files changed, 13637 insertions, 1323 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index be6dc11..c042b09 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,10 +23,10 @@ enable_testing() ######## Package information set (PACKAGE_URL https://github.com/libpinyin/libpinyin) set (PACKAGE_BUGREPORT https://github.com/libpinyin/libpinyin/issues) -set (LIBPINYIN_VERSION_MAJOR 0) -set (LIBPINYIN_VERSION_MINOR 7) +set (LIBPINYIN_VERSION_MAJOR 2) +set (LIBPINYIN_VERSION_MINOR 1) set (LIBPINYIN_VERSION_REVISION 0) -set (LIBPINYIN_BINARY_VERSION 2.0) +set (LIBPINYIN_BINARY_VERSION 13.0) if (CMAKE_BUILD_TYPE MATCHES Debug) set (version_suffix .Debug) @@ -43,7 +43,6 @@ set (VERSION ${LIBPINYIN_VERSION}) include(CheckIncludeFileCXX) check_include_file_cxx(locale.h HAVE_LOCALE_H) -check_include_file_cxx(libintl.h HAVE_LIBINTL_H) check_include_file_cxx(stdlib.h HAVE_STDLIB_H) check_include_file_cxx(string.h HAVE_STRING_H) check_include_file_cxx(sys/time.h HAVE_SYS_TIME_H) @@ -163,6 +162,7 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) endif (CMAKE_BUILD_TYPE MATCHES Debug) include_directories( + ${CMAKE_BINARY_DIR} ${GLIB2_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}/ ${PROJECT_SOURCE_DIR}/src @@ -1,123 +0,0 @@ -version 2.0.0 -* the first official release of 2.0.x; -* fixes autoconf; - -version 1.9.92 -* fixes crash in double pinyin; - -version 1.9.91 -* multiple sentence candidates; - -version 1.7.0 -* fixes build on FreeBSD; -* update cmake files; - -version 1.6.91 -* change license to GPLv3+; -* import open-gram dictionary and remove pinyin tones; -* add some checks when load data from file; - -version 1.6.0 -* bug fixes. - -version 1.5.91 -* change pinyin/phrase tables to use dbm. -* enhance pinyin key representation and pinyin parsers. - -version 1.2.0 -* bug fixes. - -version 1.1.91 -* support Kyoto Cabinet as alternative to Berkeley DB. -* improve multiple dictionaries support feature. - -version 1.1.0 -* support to export user phrases. - -version 1.0.0 -* the first official release of 1.0.x. - -version 0.9.94 -* bug fixes. - -version 0.9.93 -* fixes libpinyin issues from coverity scan report. - -version 0.9.92 -* bug fixes. - -version 0.9.91 -* code re-factor. - -version 0.9.0 -* the first official release of 0.9.x. -* fixes import dictionary. - -version 0.8.93 -* add back pinyin_clear_constraint. - -version 0.8.92 -* fixes model data. - -version 0.8.91 -* multiple dictioniares and user dictionary support. - -version 0.8.1 -* bug fixes. - -version 0.8.0 -* the first official release of 0.8.x. - -version 0.7.92 -* re-factor PhraseLookup class. -* all tests passed simple valgrind memory check. - -version 0.7.91 -* simplify PinyinLookup class. - -version 0.7.1 -* add API to lookup pinyin for characters. - -version 0.7.0 -* the first official release of 0.7.x. - -version 0.6.92 -* draft support for multiple professional phrase libraries. - -version 0.6.91 -* support ucs4 characters. -* support guess sentence with prefix. -* initially support fuzzy pinyin segment. - -version 0.6.0 -* the first official release of 0.6.x. - -version 0.5.92 -* fixes new parsers and chewing large table. -* improves pinyin_save. - -version 0.5.91 -* some code re-factor and simplify. -* fixes the self-learning work around. - -version 0.5.0 -* the first official release of 0.5.x. - -version 0.4.93 -* fixes some bugs in new parsers. - -version 0.4.92 -* enable parallel make. - -version 0.4.91 -* New parsers for full pinyin/double pinyin/chewing. - * libpinyin now fully supports all pinyin auto corrections of -ibus-pinyin. - * libpinyin now better supports an/ang, en/eng, in/ing fuzzy -pinyin match. - -version 0.3.0 -* the first official release of 0.3.x. - -version 0.2.99 -* import from pinyin. diff --git a/Makefile.am b/Makefile.am index 6266b2d..fbaefed 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,3 +31,8 @@ pkgconfig_DATA = libpinyin.pc if ENABLE_LIBZHUYIN pkgconfig_DATA += libzhuyin.pc endif + +dist-hook: + if test -d .git ; then \ + git log --name-status --date=iso > $(distdir)/ChangeLog ; \ + fi @@ -0,0 +1,147 @@ +version 2.3.0 +* update pinyin data + +version 2.2.2 +* minor fixes + +version 2.2.1 +* fixes predicted candidates + +version 2.2.0 +* bug fixes + +version 2.1.91 +* fixes zhuyin parsers; + +version 2.1.0 +* support sort option in pinyin_guess_candidates function; + +version 2.0.92 +* reduce memory consumption after imported user dictionary; + +version 2.0.91 +* merge libzhuyin code; + +version 2.0.0 +* the first official release of 2.0.x; +* fixes autoconf; + +version 1.9.92 +* fixes crash in double pinyin; + +version 1.9.91 +* multiple sentence candidates; + +version 1.7.0 +* fixes build on FreeBSD; +* update cmake files; + +version 1.6.91 +* change license to GPLv3+; +* import open-gram dictionary and remove pinyin tones; +* add some checks when load data from file; + +version 1.6.0 +* bug fixes. + +version 1.5.91 +* change pinyin/phrase tables to use dbm. +* enhance pinyin key representation and pinyin parsers. + +version 1.2.0 +* bug fixes. + +version 1.1.91 +* support Kyoto Cabinet as alternative to Berkeley DB. +* improve multiple dictionaries support feature. + +version 1.1.0 +* support to export user phrases. + +version 1.0.0 +* the first official release of 1.0.x. + +version 0.9.94 +* bug fixes. + +version 0.9.93 +* fixes libpinyin issues from coverity scan report. + +version 0.9.92 +* bug fixes. + +version 0.9.91 +* code re-factor. + +version 0.9.0 +* the first official release of 0.9.x. +* fixes import dictionary. + +version 0.8.93 +* add back pinyin_clear_constraint. + +version 0.8.92 +* fixes model data. + +version 0.8.91 +* multiple dictioniares and user dictionary support. + +version 0.8.1 +* bug fixes. + +version 0.8.0 +* the first official release of 0.8.x. + +version 0.7.92 +* re-factor PhraseLookup class. +* all tests passed simple valgrind memory check. + +version 0.7.91 +* simplify PinyinLookup class. + +version 0.7.1 +* add API to lookup pinyin for characters. + +version 0.7.0 +* the first official release of 0.7.x. + +version 0.6.92 +* draft support for multiple professional phrase libraries. + +version 0.6.91 +* support ucs4 characters. +* support guess sentence with prefix. +* initially support fuzzy pinyin segment. + +version 0.6.0 +* the first official release of 0.6.x. + +version 0.5.92 +* fixes new parsers and chewing large table. +* improves pinyin_save. + +version 0.5.91 +* some code re-factor and simplify. +* fixes the self-learning work around. + +version 0.5.0 +* the first official release of 0.5.x. + +version 0.4.93 +* fixes some bugs in new parsers. + +version 0.4.92 +* enable parallel make. + +version 0.4.91 +* New parsers for full pinyin/double pinyin/chewing. + * libpinyin now fully supports all pinyin auto corrections of +ibus-pinyin. + * libpinyin now better supports an/ang, en/eng, in/ing fuzzy +pinyin match. + +version 0.3.0 +* the first official release of 0.3.x. + +version 0.2.99 +* import from pinyin. @@ -1,30 +1,50 @@ #!/bin/sh # Run this to generate all the initial makefiles, etc. -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. +test -n "$srcdir" || srcdir=$(dirname "$0") +test -n "$srcdir" || srcdir=. + +olddir=$(pwd) + +cd "$srcdir" PKG_NAME="libpinyin" -(test -f $srcdir/configure.ac \ - && test -f $srcdir/README ) || { +(test -f configure.ac && test -f README ) || { echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" echo " top-level $PKG_NAME directory" exit 1 } -which gnome-autogen.sh || { - echo "You need to install gnome-common from the GNOME CVS" - exit 1 -} +if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then + echo "*** WARNING: I am going to run 'configure' with no arguments." >&2 + echo "*** If you wish to pass any to it, please specify them on the" >&2 + echo "*** '$0' command line." >&2 + echo "" >&2 +fi + +autoreconf --verbose --force --install || exit 1 -(test -f $srcdir/ChangeLog) || { - touch $srcdir/ChangeLog +(test -f ChangeLog) || { + touch ChangeLog } +cd "$olddir" + CFLAGS=${CFLAGS-"-Wall -Werror"} ACLOCAL_FLAGS="$ACLOCAL_FLAGS" REQUIRED_AUTOMAKE_VERSION=1.8 -. gnome-autogen.sh "$@" +cd "$olddir" +if [ "$NOCONFIGURE" = "" ]; then + $srcdir/configure "$@" || exit 1 + + if [ "$1" = "--help" ]; then + exit 0 + else + echo "Now type 'make' to compile $PKG_NAME" || exit 1 + fi +else + echo "Skipping configure process." +fi diff --git a/configure.ac b/configure.ac index 5805301..cb39888 100644 --- a/configure.ac +++ b/configure.ac @@ -5,12 +5,12 @@ # if not 1, append datestamp to the version number. m4_define([libpinyin_released], [1]) m4_define([libpinyin_major_version], [2]) -m4_define([libpinyin_minor_version], [0]) -m4_define([libpinyin_micro_version], [91]) +m4_define([libpinyin_minor_version], [3]) +m4_define([libpinyin_micro_version], [0]) m4_define(libpinyin_maybe_datestamp, m4_esyscmd([if test x]libpinyin_released[ != x1; then date +.%Y%m%d | tr -d '\n\r'; fi])) -m4_define([libpinyin_abi_current], [12]) +m4_define([libpinyin_abi_current], [13]) m4_define([libpinyin_abi_revision], [0]) m4_define([libpinyin_version], @@ -80,7 +80,7 @@ AC_FUNC_STAT AC_FUNC_MMAP AC_CHECK_FUNCS([gettimeofday memmove memset setlocale]) -AC_CHECK_HEADERS([libintl.h string.h]) +AC_CHECK_HEADERS([string.h], , AC_MSG_ERROR([Cannot find string.h])) # Check Berkeley DB or Kyoto Cabinet DBM="BerkeleyDB" diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index d6d232b..ff3fd26 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -45,12 +45,13 @@ add_custom_command( ${CMAKE_SOURCE_DIR}/data/gb_char.table ${CMAKE_SOURCE_DIR}/data/gbk_char.table ${CMAKE_SOURCE_DIR}/data/interpolation2.text + ${CMAKE_SOURCE_DIR}/data/table.conf COMMENT "Downloading textual model data..." COMMAND - wget http://downloads.sourceforge.net/libpinyin/models/model14.text.tar.gz + wget http://downloads.sourceforge.net/libpinyin/models/model17.text.tar.gz COMMAND - tar xvf model14.text.tar.gz -C ${CMAKE_SOURCE_DIR}/data + tar xvf model17.text.tar.gz -C ${CMAKE_SOURCE_DIR}/data ) add_custom_command( diff --git a/data/Makefile.am b/data/Makefile.am index 6f563fe..2e1d40d 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -48,8 +48,8 @@ libpinyin_dbdir = $(libdir)/libpinyin/data CLEANFILES = $(binary_model_data) interpolation2.text: - wget http://downloads.sourceforge.net/libpinyin/models/model14.text.tar.gz - tar xvf model14.text.tar.gz -C $(top_srcdir)/data + wget http://downloads.sourceforge.net/libpinyin/models/model17.text.tar.gz + tar xvf model17.text.tar.gz -C $(top_srcdir)/data $(tablefiles) table.conf: interpolation2.text diff --git a/scripts2/chewing.py b/scripts2/chewing.py index c3eab03..b92319d 100644 --- a/scripts2/chewing.py +++ b/scripts2/chewing.py @@ -99,6 +99,9 @@ ASCII_CHEWING_TONE_LIST = [ ("CHEWING_5" , "˙"), ] +ASCII_CHEWING_TONE_MAP = dict([(k, v) for k, v in ASCII_CHEWING_TONE_LIST if v]) + +CHEWING_ASCII_TONE_MAP = dict([(v, k) for k, v in ASCII_CHEWING_TONE_LIST if v]) CHEWING_INITIAL_LIST = [k for k, v in ASCII_CHEWING_INITIAL_LIST] diff --git a/scripts2/fullpinyintable.py b/scripts2/fullpinyintable.py index ef0a6a2..4af94a9 100644 --- a/scripts2/fullpinyintable.py +++ b/scripts2/fullpinyintable.py @@ -100,6 +100,7 @@ def gen_pinyin_list(): def gen_pinyins(): #generate all pinyins + distance = 0 for pinyin in pinyin_list: flags = [] if pinyin in PINYIN_ZHUYIN_MAP.keys(): @@ -113,7 +114,7 @@ def gen_pinyins(): if zhuyin in chewing.CHEWING_ASCII_INITIAL_MAP and \ pinyin not in ZHUYIN_SPECIAL_INITIAL_SET_IN_PINYIN_FORM: flags.append("ZHUYIN_INCOMPLETE") - yield pinyin, pinyin, zhuyin, flags, get_chewing(pinyin) + yield pinyin, pinyin, zhuyin, flags, get_chewing(pinyin), distance def get_shengmu_chewing(shengmu): @@ -127,6 +128,7 @@ def get_shengmu_chewing(shengmu): def gen_shengmu(): #generate all shengmu + distance = 0 for shengmu in shengmu_list: if shengmu in pinyin_list: continue @@ -135,12 +137,12 @@ def gen_shengmu(): chewing_initial = chewing_key[0] if chewing_initial in chewing.ASCII_CHEWING_INITIAL_MAP: chewing_initial = chewing.ASCII_CHEWING_INITIAL_MAP[chewing_initial] - yield shengmu, shengmu, chewing_initial, flags, chewing_key + yield shengmu, shengmu, chewing_initial, flags, chewing_key, distance def gen_corrects(): #generate corrections - for correct, wrong in auto_correct: + for correct, wrong, distance in auto_correct: flags = ['IS_PINYIN', 'PINYIN_CORRECT_{0}_{1}'.format(wrong.upper(), correct.upper())] for pinyin in pinyin_list: @@ -149,17 +151,17 @@ def gen_corrects(): zhuyin = PINYIN_ZHUYIN_MAP[pinyin] wrong_pinyin = pinyin.replace(correct, wrong) yield pinyin, wrong_pinyin, zhuyin,\ - flags, get_chewing(pinyin) + flags, get_chewing(pinyin), distance def gen_u_to_v(): #generate U to V - for correct, wrong, flags in auto_correct_ext: + for correct, wrong, flags, distance in auto_correct_ext: #over-ride flags flags = ['IS_PINYIN', 'PINYIN_CORRECT_V_U'] pinyin = correct zhuyin = PINYIN_ZHUYIN_MAP[pinyin] - yield correct, wrong, zhuyin, flags, get_chewing(pinyin) + yield correct, wrong, zhuyin, flags, get_chewing(pinyin), distance #pinyin table @@ -174,7 +176,8 @@ eten26_zhuyin_index = [] def filter_pinyin_list(): - for (correct, wrong, zhuyin, flags, chewing_key) in gen_pinyin_list(): + for (correct, wrong, zhuyin, flags, chewing_key, distance) in \ + gen_pinyin_list(): (luoma, secondary) = (None, None) if zhuyin in ZHUYIN_LUOMA_PINYIN_MAP: @@ -190,7 +193,7 @@ def filter_pinyin_list(): content_table.append((correct, zhuyin, luoma, secondary, chewing_key)) if "IS_PINYIN" in flags: - pinyin_index.append((wrong, flags, correct)) + pinyin_index.append((wrong, flags, correct, distance)) #skip pinyin correct options if correct != wrong: continue @@ -292,9 +295,9 @@ def gen_content_table(): def gen_pinyin_index(): entries = [] - for (wrong, flags, correct) in pinyin_index: + for (wrong, flags, correct, distance) in pinyin_index: index = [x[0] for x in content_table].index(correct) - entry = '{{"{0}", {1}, {2}}}'.format(wrong, flags, index) + entry = '{{"{0}", {1}, {2}, {3}}}'.format(wrong, flags, index, distance) entries.append(entry) return ',\n'.join(entries) @@ -387,17 +390,16 @@ def handle_special_rules(zhuyin, corrects): def gen_table_index_for_chewing_key(): + chewings = [x[4] for x in content_table] + entries = [] - for i in range(0, len(chewing.CHEWING_INITIAL_LIST)): - initial = chewing.CHEWING_INITIAL_LIST[i] - for m in range(0, len(chewing.CHEWING_MIDDLE_LIST)): - middle = chewing.CHEWING_MIDDLE_LIST[m] - for f in range(0, len(chewing.CHEWING_FINAL_LIST)): - final = chewing.CHEWING_FINAL_LIST[f] + for initial in chewing.CHEWING_INITIAL_LIST: + for middle in chewing.CHEWING_MIDDLE_LIST: + for final in chewing.CHEWING_FINAL_LIST: chewingkey = 'ChewingKey({0}, {1}, {2})'.format(initial, middle, final) index = -1 try: - index = [x[4] for x in content_table].index(chewingkey) + index = chewings.index(chewingkey) except ValueError: pass diff --git a/scripts2/generateheader.py b/scripts2/generateheader.py index f91b843..59e7633 100644 --- a/scripts2/generateheader.py +++ b/scripts2/generateheader.py @@ -27,6 +27,7 @@ from fullpinyintable import gen_content_table, gen_pinyin_index, gen_luoma_pinyi from specialtable import gen_divided_table, gen_resplit_table from doublepinyintable import gen_shengmu_table, gen_yunmu_table, gen_fallback_table2, gen_fallback_table3 from bopomofotable import gen_chewing_symbols, gen_chewing_initials, gen_chewing_middles, gen_chewing_finals, gen_chewing_tones +from zhuyin import gen_zhuyin_table header = '''/* This file is generated by python scripts. Don't edit this file directly. @@ -66,6 +67,8 @@ def get_table_content(tablename): return gen_resplit_table() if tablename == 'TABLE_INDEX': return gen_table_index_for_chewing_key() + if tablename == 'VALID_ZHUYIN_TABLE': + return gen_zhuyin_table() #double pinyin table (scheme, part) = tablename.split('_', 1) diff --git a/scripts2/options.py b/scripts2/options.py index fcfb9fd..e4bd01f 100644 --- a/scripts2/options.py +++ b/scripts2/options.py @@ -22,47 +22,47 @@ auto_correct = [ # "correct", "wrong" - ("ng", "gn"), - ("ng", "mg"), - ("iu", "iou"), - ("ui", "uei"), - ("un", "uen"), + ("ng", "gn", 1), + ("ng", "mg", 1), + ("iu", "iou", 1), + ("ui", "uei", 1), + ("un", "uen", 1), # ("ue", "ve"), - ("ve", "ue"), - ("ong", "on"), + ("ve", "ue", 1), + ("ong", "on", 1), ] auto_correct_ext = [ # "correct", "wrong", flag - ("ju", "jv", "PINYIN_CORRECT_V_U"), - ("qu", "qv", "PINYIN_CORRECT_V_U"), - ("xu", "xv", "PINYIN_CORRECT_V_U"), - ("yu", "yv", "PINYIN_CORRECT_V_U"), - - ("jue", "jve", "PINYIN_CORRECT_V_U"), - ("que", "qve", "PINYIN_CORRECT_V_U"), - ("xue", "xve", "PINYIN_CORRECT_V_U"), - ("yue", "yve", "PINYIN_CORRECT_V_U"), - - ("juan", "jvan", "PINYIN_CORRECT_V_U"), - ("quan", "qvan", "PINYIN_CORRECT_V_U"), - ("xuan", "xvan", "PINYIN_CORRECT_V_U"), - ("yuan", "yvan", "PINYIN_CORRECT_V_U"), - - ("jun", "jvn", "PINYIN_CORRECT_V_U"), - ("qun", "qvn", "PINYIN_CORRECT_V_U"), - ("xun", "xvn", "PINYIN_CORRECT_V_U"), - ("yun", "yvn", "PINYIN_CORRECT_V_U"), - -# ("juang", "jvang", "PINYIN_CORRECT_V_U"), -# ("quang", "qvang", "PINYIN_CORRECT_V_U"), -# ("xuang", "xvang", "PINYIN_CORRECT_V_U"), -# ("yuang", "yvang", "PINYIN_CORRECT_V_U"), - -# ("jun", "jven", "PINYIN_CORRECT_UEN_UN | PINYIN_CORRECT_V_U"), -# ("qun", "qven", "PINYIN_CORRECT_UEN_UN | PINYIN_CORRECT_V_U"), -# ("xun", "xven", "PINYIN_CORRECT_UEN_UN | PINYIN_CORRECT_V_U"), -# ("yun", "yven", "PINYIN_CORRECT_UEN_UN | PINYIN_CORRECT_V_U"), + ("ju", "jv", "PINYIN_CORRECT_V_U", 1), + ("qu", "qv", "PINYIN_CORRECT_V_U", 1), + ("xu", "xv", "PINYIN_CORRECT_V_U", 1), + ("yu", "yv", "PINYIN_CORRECT_V_U", 1), + + ("jue", "jve", "PINYIN_CORRECT_V_U", 1), + ("que", "qve", "PINYIN_CORRECT_V_U", 1), + ("xue", "xve", "PINYIN_CORRECT_V_U", 1), + ("yue", "yve", "PINYIN_CORRECT_V_U", 1), + + ("juan", "jvan", "PINYIN_CORRECT_V_U", 1), + ("quan", "qvan", "PINYIN_CORRECT_V_U", 1), + ("xuan", "xvan", "PINYIN_CORRECT_V_U", 1), + ("yuan", "yvan", "PINYIN_CORRECT_V_U", 1), + + ("jun", "jvn", "PINYIN_CORRECT_V_U", 1), + ("qun", "qvn", "PINYIN_CORRECT_V_U", 1), + ("xun", "xvn", "PINYIN_CORRECT_V_U", 1), + ("yun", "yvn", "PINYIN_CORRECT_V_U", 1), + +# ("juang", "jvang", "PINYIN_CORRECT_V_U", 1), +# ("quang", "qvang", "PINYIN_CORRECT_V_U", 1), +# ("xuang", "xvang", "PINYIN_CORRECT_V_U", 1), +# ("yuang", "yvang", "PINYIN_CORRECT_V_U", 1), + +# ("jun", "jven", "PINYIN_CORRECT_UEN_UN | PINYIN_CORRECT_V_U", 1), +# ("qun", "qven", "PINYIN_CORRECT_UEN_UN | PINYIN_CORRECT_V_U", 1), +# ("xun", "xven", "PINYIN_CORRECT_UEN_UN | PINYIN_CORRECT_V_U", 1), +# ("yun", "yven", "PINYIN_CORRECT_UEN_UN | PINYIN_CORRECT_V_U", 1), ] diff --git a/scripts2/templates/zhuyin_table.h.in b/scripts2/templates/zhuyin_table.h.in index 9760d4f..4c1eec8 100644 --- a/scripts2/templates/zhuyin_table.h.in +++ b/scripts2/templates/zhuyin_table.h.in @@ -107,6 +107,13 @@ const zhuyin_tone_item_t chewing_dachen_cp26_tones[] = { @DACHEN-CP26_TONES@ }; +const bool valid_zhuyin_table[CHEWING_NUMBER_OF_INITIALS * + CHEWING_NUMBER_OF_MIDDLES * + CHEWING_NUMBER_OF_FINALS * + CHEWING_NUMBER_OF_TONES] = { +@VALID_ZHUYIN_TABLE@ +}; + static const char * chewing_tone_table[CHEWING_NUMBER_OF_TONES] = { "", " ", diff --git a/scripts2/zhuyin.py b/scripts2/zhuyin.py new file mode 100644 index 0000000..fa5dbd9 --- /dev/null +++ b/scripts2/zhuyin.py @@ -0,0 +1,168 @@ +# -*- coding: utf-8 -*- +# vim:set et sts=4 sw=4: +# +# libpinyin - Library to deal with pinyin. +# +# Copyright (C) 2017 Peng Wu <alexepico@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +import os +from chewing import * +from pyzymap import ZHUYIN_PINYIN_MAP, PINYIN_ZHUYIN_MAP +from fullpinyintable import get_chewing, content_table + +# recursive maps for ChewingKey +zhuyin_maps = {} + + +# insert into zhuyin_maps +def add_valid_zhuyin(key): + global zhuyin_maps + (initial, middle, final, tone) = key + + maps = None + + # handle initial + if initial not in zhuyin_maps: + zhuyin_maps[initial] = {} + maps = zhuyin_maps[initial] + + # handle middle + if middle not in maps: + maps[middle] = {} + maps = maps[middle] + + # handle final + if final not in maps: + maps[final] = {} + maps = maps[final] + + # handle tone + if tone not in maps: + maps[tone] = True + + +# compute zero tone from other tones +def compute_zero_tone(): + global zhuyin_maps + + for initial in zhuyin_maps.keys(): + middle_maps = zhuyin_maps[initial] + for middle in middle_maps.keys(): + final_maps = middle_maps[middle] + for final in final_maps.keys(): + tone_maps = final_maps[final] + # assume all valid zero tones have sub tones + if len(tone_maps) > 0: + tone_maps["CHEWING_ZERO_TONE"] = True + + +# check whether the zhuyin is valid +def is_valid_zhuyin(key): + global zhuyin_maps + (initial, middle, final, tone) = key + + maps = None + + # handle initial + if initial not in zhuyin_maps: + return False + maps = zhuyin_maps[initial] + + # handle middle + if middle not in maps: + return False + maps = maps[middle] + + # handle final + if final not in maps: + return False + maps = maps[final] + + # handle tone + if tone not in maps: + return False + + return True + + +# generate valid_zhuyin_table +def gen_zhuyin_table(): + global zhuyin_maps + chewings = [x[4] for x in content_table] + + entries = [] + for initial in CHEWING_INITIAL_LIST: + for middle in CHEWING_MIDDLE_LIST: + for final in CHEWING_FINAL_LIST: + zhuyin = "" + chewingkey = 'ChewingKey({0}, {1}, {2})'.format(initial, middle, final) + try: + index = chewings.index(chewingkey) + zhuyin = content_table[index][1] + except ValueError: + zhuyin = chewingkey + + for tone in CHEWING_TONE_LIST: + line = "" + if tone == "CHEWING_ZERO_TONE": + line = "/* {0} */".format(zhuyin) + os.linesep + + key = (initial, middle, final, tone) + if is_valid_zhuyin(key): + line += "TRUE" + else: + line += "FALSE" + entries.append(line) + return ",\n".join(entries) + + +# get zhuyin key +def get_zhuyin_key(zhuyin): + # when bopomofo without tone, it means the first tone + tone = "CHEWING_1" + last_char = zhuyin[-1] + if last_char in CHEWING_ASCII_TONE_MAP: + tone = CHEWING_ASCII_TONE_MAP[last_char] + zhuyin = zhuyin[:-1] + pinyin = ZHUYIN_PINYIN_MAP[zhuyin] + (initial, middle, final) = get_chewing(pinyin) + return initial, middle, final, tone + + +def load_table(filename): + table_file = open(filename, "r") + for line in table_file.readlines(): + line = line.rstrip(os.linesep) + (zhuyins, rest) = line.split(None, 1) + assert " " not in zhuyins + + for zhuyin in zhuyins.split("'"): + #print(zhuyin) + key = get_zhuyin_key(zhuyin) + #print(key) + add_valid_zhuyin(key) + + table_file.close() + +# load zhuyin table +load_table("tsi.table") +compute_zero_tone() +#print(zhuyin_maps) + +### main function ### +if __name__ == "__main__": + print(gen_zhuyin_table()) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 070218d..fe16a66 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,31 +9,31 @@ set( ) add_library( - libpinyin + pinyin SHARED ${LIBPINYIN_SOURCES} ) target_link_libraries( - libpinyin + pinyin storage lookup ) set_target_properties( - libpinyin + pinyin PROPERTIES OUTPUT_NAME - libpinyin + pinyin VERSION - 10.0.0 + 13.0.0 SOVERSION - 10 + 13 ) install( TARGETS - libpinyin + pinyin LIBRARY DESTINATION ${DIR_LIBRARY} ) diff --git a/src/Makefile.am b/src/Makefile.am index c821d04..f2b8f75 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -14,19 +14,18 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. -AUTOMAKE_OPTIONS = gnu -SUBDIRS = include storage lookup +AUTOMAKE_OPTIONS = gnu subdir-objects +SUBDIRS = include storage lookup -EXTRA_DIST = libpinyin.ver \ - libzhuyin.ver +EXTRA_DIST = libpinyin.ver libzhuyin.ver -MAINTAINERCLEANFILES = Makefile.in +MAINTAINERCLEANFILES = Makefile.in -CLEANFILES = *.bak +CLEANFILES = *.bak -ACLOCAL = aclocal -I $(ac_aux_dir) +ACLOCAL = aclocal -I $(ac_aux_dir) -INCLUDES = -I$(top_srcdir)/src \ +AM_CPPFLAGS = -I$(top_srcdir)/src \ -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/storage \ -I$(top_srcdir)/src/lookup \ @@ -40,33 +39,65 @@ if ENABLE_LIBZHUYIN libpinyininclude_HEADERS += zhuyin.h endif +pinyin_SOURCES = \ + storage/phrase_index.cpp \ + storage/phrase_large_table2.cpp \ + storage/phrase_large_table3.cpp \ + storage/ngram.cpp \ + storage/tag_utility.cpp \ + storage/chewing_key.cpp \ + storage/pinyin_parser2.cpp \ + storage/zhuyin_parser2.cpp \ + storage/phonetic_key_matrix.cpp \ + storage/chewing_large_table.cpp \ + storage/chewing_large_table2.cpp \ + storage/table_info.cpp \ + lookup/pinyin_lookup2.cpp \ + lookup/phrase_lookup.cpp \ + lookup/lookup.cpp \ + lookup/phonetic_lookup.cpp \ + $(NULL) + +if BERKELEYDB +pinyin_SOURCES += storage/ngram_bdb.cpp \ + storage/phrase_large_table3_bdb.cpp \ + storage/chewing_large_table2_bdb.cpp +endif + +if KYOTOCABINET +pinyin_SOURCES += storage/ngram_kyotodb.cpp \ + storage/phrase_large_table3_kyotodb.cpp \ + storage/chewing_large_table2_kyotodb.cpp +endif + + noinst_HEADERS = pinyin_internal.h -lib_LTLIBRARIES = libpinyin.la +lib_LTLIBRARIES = libpinyin.la -noinst_LTLIBRARIES = libpinyin_internal.la +noinst_LIBRARIES = libpinyin_internal.a -libpinyin_la_SOURCES = pinyin.cpp +libpinyin_la_SOURCES = $(pinyin_SOURCES) pinyin.cpp -libpinyin_la_LIBADD = storage/libstorage.la lookup/liblookup.la @GLIB2_LIBS@ +libpinyin_la_LIBADD = @GLIB2_LIBS@ -libpinyin_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libpinyin.ver \ +libpinyin_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libpinyin.ver \ -version-info @LT_VERSION_INFO@ if ENABLE_LIBZHUYIN lib_LTLIBRARIES += libzhuyin.la -libzhuyin_la_SOURCES = zhuyin.cpp +libzhuyin_la_SOURCES = $(pinyin_SOURCES) zhuyin.cpp -libzhuyin_la_LIBADD = storage/libstorage.la lookup/liblookup.la @GLIB2_LIBS@ +libzhuyin_la_LIBADD = @GLIB2_LIBS@ -libzhuyin_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libzhuyin.ver \ +libzhuyin_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libzhuyin.ver \ -version-info @LT_VERSION_INFO@ endif -libpinyin_internal_la_SOURCES = pinyin_internal.cpp +libpinyin_internal_a_SOURCES = pinyin_internal.cpp -libpinyin_internal_la_LIBADD = storage/libstorage.la lookup/liblookup.la +libpinyin_internal_a_LIBADD = storage/libstorage.a lookup/liblookup.a ## Note: ## As libpinyin internal interface will change, only provides static library diff --git a/src/include/Makefile.am b/src/include/Makefile.am index 8f9b417..f6c6de3 100644 --- a/src/include/Makefile.am +++ b/src/include/Makefile.am @@ -14,11 +14,11 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. -MAINTAINERCLEANFILES = Makefile.in +MAINTAINERCLEANFILES = Makefile.in libpinyinincludedir = $(includedir)/libpinyin-@VERSION@ libpinyininclude_HEADERS= novel_types.h -noinst_HEADERS = memory_chunk.h \ - stl_lite.h +noinst_HEADERS = memory_chunk.h \ + stl_lite.h diff --git a/src/lookup/CMakeLists.txt b/src/lookup/CMakeLists.txt index 937b2cb..767748c 100644 --- a/src/lookup/CMakeLists.txt +++ b/src/lookup/CMakeLists.txt @@ -5,6 +5,7 @@ set( set( LIBLOOKUP_SOURCES pinyin_lookup2.cpp + phonetic_lookup.cpp phrase_lookup.cpp lookup.cpp ) diff --git a/src/lookup/Makefile.am b/src/lookup/Makefile.am index 55c1881..75a7ae5 100644 --- a/src/lookup/Makefile.am +++ b/src/lookup/Makefile.am @@ -14,27 +14,23 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. -MAINTAINERCLEANFILES = Makefile.in +MAINTAINERCLEANFILES = Makefile.in -INCLUDES = -I$(top_srcdir)/src/include \ - -I$(top_srcdir)/src/storage \ - @GLIB2_CFLAGS@ +AM_CPPFLAGS = -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/storage \ + @GLIB2_CFLAGS@ -noinst_HEADERS = lookup.h \ - pinyin_lookup2.h \ - phrase_lookup.h \ - phonetic_lookup.h \ - phonetic_lookup_linear.h \ - phonetic_lookup_heap.h +noinst_HEADERS = lookup.h \ + pinyin_lookup2.h \ + phrase_lookup.h \ + phonetic_lookup.h \ + phonetic_lookup_linear.h \ + phonetic_lookup_heap.h -noinst_LTLIBRARIES = liblookup.la +noinst_LIBRARIES = liblookup.a -liblookup_la_CXXFLAGS = "-fPIC" - -liblookup_la_LDFLAGS = -static - -liblookup_la_SOURCES = pinyin_lookup2.cpp \ - phrase_lookup.cpp \ - lookup.cpp \ - phonetic_lookup.cpp +liblookup_a_SOURCES = pinyin_lookup2.cpp \ + phrase_lookup.cpp \ + lookup.cpp \ + phonetic_lookup.cpp diff --git a/src/lookup/phonetic_lookup.h b/src/lookup/phonetic_lookup.h index 845bf90..78fac1b 100644 --- a/src/lookup/phonetic_lookup.h +++ b/src/lookup/phonetic_lookup.h @@ -61,11 +61,11 @@ struct trellis_value_t { } }; -template <gint32 nbest> +template <gint32 nstore> static bool inline trellis_value_less_than(const trellis_value_t * item_lhs, const trellis_value_t * item_rhs) { #if 1 - if (nbest > 1) { + if (nstore > 1) { /* allow longer sentence */ if (item_lhs->m_sentence_length + 1 == item_rhs->m_sentence_length && item_lhs->m_poss + LONG_SENTENCE_PENALTY < item_rhs->m_poss) @@ -138,7 +138,7 @@ struct trellis_constraint_t { /* use maximum heap to get the topest results. */ -template<gint32 nbest> +template<gint32 nstore> bool get_top_results(size_t num, /* out */ GPtrArray * topresults, /* in */ GPtrArray * candidates) { @@ -152,13 +152,13 @@ bool get_top_results(size_t num, trellis_value_t ** end = (trellis_value_t **) &g_ptr_array_index(candidates, candidates->len); - std_lite::make_heap(begin, end, trellis_value_less_than<nbest>); + std_lite::make_heap(begin, end, trellis_value_less_than<nstore>); while (end != begin) { trellis_value_t * one = *begin; g_ptr_array_add(topresults, one); - std_lite::pop_heap(begin, end, trellis_value_less_than<nbest>); + std_lite::pop_heap(begin, end, trellis_value_less_than<nstore>); --end; if (topresults->len >= num) @@ -176,7 +176,7 @@ static gint trellis_value_compare(const trellis_value_t ** lhs, return -((*lhs)->m_poss - (*rhs)->m_poss); } -template <gint32 nbest> +template <gint32 nstore, gint32 nbest> class ForwardPhoneticTrellis { private: /* Array of LookupStepIndex */ @@ -233,7 +233,7 @@ public: /* initialize m_steps_index */ g_ptr_array_index(m_steps_index, i) = g_hash_table_new(g_direct_hash, g_direct_equal); /* initialize m_steps_content */ - g_ptr_array_index(m_steps_content, i) = g_array_new(FALSE, FALSE, sizeof(trellis_node<nbest>)); + g_ptr_array_index(m_steps_content, i) = g_array_new(FALSE, FALSE, sizeof(trellis_node<nstore>)); } return true; @@ -249,7 +249,7 @@ public: trellis_value_t initial_value(log(1.f)); initial_value.m_handles[1] = token; - trellis_node<nbest> initial_node; + trellis_node<nstore> initial_node; assert(initial_node.eval_item(&initial_value)); LookupStepContent initial_step_content = (LookupStepContent) @@ -267,7 +267,7 @@ public: return true; } - /* Array of trellis_value_t */ + /* PtrArray of trellis_value_t pointer */ bool get_candidates(/* in */ gint32 index, /* out */ GPtrArray * candidates) const { LookupStepContent step = (LookupStepContent) @@ -279,14 +279,14 @@ public: return false; for (size_t i = 0; i < step->len; ++i) { - trellis_node<nbest> * node = &g_array_index - (step, trellis_node<nbest>, i); + trellis_node<nstore> * node = &g_array_index + (step, trellis_node<nstore>, i); // only initialized in the get_candidates method. node->number(); const trellis_value_t * value = node->begin(); - for (gint32 j = 0; j < node->length(); ++j) { + for (; value < node->end(); ++value) { g_ptr_array_add(candidates, (trellis_value_t *)value); } } @@ -307,7 +307,7 @@ public: (step_index, GUINT_TO_POINTER(token), &key, &value); if (!lookup_result) { - trellis_node<nbest> node; + trellis_node<nstore> node; assert(node.eval_item(candidate)); g_array_append_val(step_content, node); @@ -315,8 +315,8 @@ public: return true; } else { size_t node_index = GPOINTER_TO_UINT(value); - trellis_node<nbest> * node = &g_array_index - (step_content, trellis_node<nbest>, node_index); + trellis_node<nstore> * node = &g_array_index + (step_content, trellis_node<nstore>, node_index); return node->eval_item(candidate); } @@ -331,7 +331,7 @@ public: GPtrArray * candidates = g_ptr_array_new(); get_candidates(tail_index, candidates); - get_top_results<nbest>(nbest, tails, candidates); + get_top_results<nstore>(nbest, tails, candidates); g_ptr_array_sort(tails, (GCompareFunc)trellis_value_compare); @@ -353,8 +353,8 @@ public: return false; size_t node_index = GPOINTER_TO_UINT(value); - trellis_node<nbest> * node = &g_array_index - (step_content, trellis_node<nbest>, node_index); + trellis_node<nstore> * node = &g_array_index + (step_content, trellis_node<nstore>, node_index); if (sub_index >= node->length()) return false; @@ -365,8 +365,8 @@ public: } }; -template <gint32 nbest> -bool extract_result(const ForwardPhoneticTrellis<nbest> * trellis, +template <gint32 nstore, gint32 nbest> +bool extract_result(const ForwardPhoneticTrellis<nstore, nbest> * trellis, const trellis_value_t * tail, /* out */ MatchResult & result) { /* reset result */ @@ -396,7 +396,7 @@ bool extract_result(const ForwardPhoneticTrellis<nbest> * trellis, } #if 0 -template <gint32 nbest> +template <gint32 nstore> class BackwardPhoneticMatrix { private: /* Array of matrix_step */ @@ -404,7 +404,7 @@ private: public: /* set tail node */ - bool set_tail(const matrix_step<nbest> * tail); + bool set_tail(const matrix_step<nstore> * tail); /* back trace */ /* always assume/assert matrix_step.eval_item(...) return true? */ bool back_trace(const ForwardPhoneticTrellis * trellis); @@ -511,7 +511,7 @@ public: } }; -template <gint32 nbest> +template <gint32 nstore, gint32 nbest> class PhoneticLookup { private: const gfloat bigram_lambda; @@ -523,7 +523,7 @@ private: SingleGram m_merged_single_gram; protected: - ForwardPhoneticTrellis<nbest> m_trellis; + ForwardPhoneticTrellis<nstore, nbest> m_trellis; protected: /* saved varibles */ @@ -711,6 +711,8 @@ public: : bigram_lambda(lambda), unigram_lambda(1. - lambda) { + assert(nstore <= nbest); + /* store the pointer. */ m_pinyin_table = pinyin_table; m_phrase_index = phrase_index; @@ -765,7 +767,7 @@ public: continue; m_trellis.get_candidates(i, candidates); - get_top_results<nbest>(nbeam, topresults, candidates); + get_top_results<nstore>(nbeam, topresults, candidates); if (0 == topresults->len) continue; @@ -828,7 +830,7 @@ public: const trellis_value_t * tail = (const trellis_value_t *) g_ptr_array_index(tails, i); - assert(extract_result<nbest>(&m_trellis, tail, result)); + assert(extract_result<nstore>(&m_trellis, tail, result)); results->add_result(result); } diff --git a/src/lookup/phonetic_lookup_heap.h b/src/lookup/phonetic_lookup_heap.h index 73eac28..310f2b4 100644 --- a/src/lookup/phonetic_lookup_heap.h +++ b/src/lookup/phonetic_lookup_heap.h @@ -21,19 +21,19 @@ #ifndef PHONETIC_LOOKUP_HEAP_H #define PHONETIC_LOOKUP_HEAP_H -template <gint32 nbest> +template <gint32 nstore> static inline bool trellis_value_comp(const trellis_value_t &lhs, const trellis_value_t &rhs) { /* min heap here */ - return trellis_value_less_than<nbest>(&lhs, &rhs); + return trellis_value_less_than<nstore>(&lhs, &rhs); } -template <gint32 nbest> +template <gint32 nstore> struct trellis_node { private: gint32 m_nelem; /* invariant: min heap */ - trellis_value_t m_elements[nbest]; + trellis_value_t m_elements[nstore]; public: trellis_node(){ @@ -58,11 +58,11 @@ public: /* min heap here. */ /* still have space */ - if (m_nelem < nbest) { + if (m_nelem < nstore) { m_elements[m_nelem] = *item; m_nelem ++; /* always push heap. */ - std_lite::push_heap(m_elements, m_elements + m_nelem, trellis_value_comp<nbest>); + std_lite::push_heap(m_elements, m_elements + m_nelem, trellis_value_comp<nstore>); return true; } @@ -70,10 +70,10 @@ public: trellis_value_t * min = m_elements; /* compare new item */ - if (trellis_value_less_than<nbest>(min, item)) { - std_lite::pop_heap(m_elements, m_elements + m_nelem, trellis_value_comp<nbest>); + if (trellis_value_less_than<nstore>(min, item)) { + std_lite::pop_heap(m_elements, m_elements + m_nelem, trellis_value_comp<nstore>); m_elements[m_nelem - 1] = *item; - std_lite::push_heap(m_elements, m_elements + m_nelem, trellis_value_comp<nbest>); + std_lite::push_heap(m_elements, m_elements + m_nelem, trellis_value_comp<nstore>); return true; } diff --git a/src/lookup/phonetic_lookup_linear.h b/src/lookup/phonetic_lookup_linear.h index 5a9f07b..82cbc56 100644 --- a/src/lookup/phonetic_lookup_linear.h +++ b/src/lookup/phonetic_lookup_linear.h @@ -21,11 +21,11 @@ #ifndef PHONETIC_LOOKUP_LINEAR_H #define PHONETIC_LOOKUP_LINEAR_H -template <gint32 nbest> +template <gint32 nstore> struct trellis_node { private: gint32 m_nelem; - trellis_value_t m_elements[nbest]; + trellis_value_t m_elements[nstore]; public: trellis_node(){ @@ -48,7 +48,7 @@ public: bool eval_item(const trellis_value_t * item) { /* still have space */ - if (m_nelem < nbest) { + if (m_nelem < nstore) { m_elements[m_nelem] = *item; m_nelem ++; return true; @@ -57,12 +57,12 @@ public: /* find minium item */ trellis_value_t * min = m_elements; for (gint32 i = 1; i < m_nelem; ++i) { - if (trellis_value_less_than<nbest>(m_elements + i, min)) + if (trellis_value_less_than<nstore>(m_elements + i, min)) min = m_elements + i; } /* compare new item */ - if (trellis_value_less_than<nbest>(min, item)) { + if (trellis_value_less_than<nstore>(min, item)) { *min = *item; return true; } diff --git a/src/pinyin.cpp b/src/pinyin.cpp index 71acecc..5381fdf 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -29,6 +29,9 @@ using namespace pinyin; +/* reduce bigram frequency affects on candidates sorting */ +#define BIGRAM_FREQUENCY_DISCOUNT 0.1f + /* a glue layer for input method integration. */ typedef GArray * CandidateVector; /* GArray of lookup_candidate_t */ @@ -49,7 +52,7 @@ struct _pinyin_context_t{ Bigram * m_user_bigram; /* lookups. */ - PhoneticLookup<3> * m_pinyin_lookup; + PhoneticLookup<2, 3> * m_pinyin_lookup; PhraseLookup * m_phrase_lookup; /* addon tables. */ @@ -367,7 +370,7 @@ pinyin_context_t * pinyin_init(const char * systemdir, const char * userdir){ gfloat lambda = context->m_system_table_info.get_lambda(); - context->m_pinyin_lookup = new PhoneticLookup<3> + context->m_pinyin_lookup = new PhoneticLookup<2, 3> (lambda, context->m_pinyin_table, context->m_phrase_index, context->m_system_bigram, context->m_user_bigram); @@ -1205,9 +1208,10 @@ bool pinyin_parse_full_pinyin(pinyin_instance_t * instance, pinyin_context_t * & context = instance->m_context; pinyin_option_t options = context->m_options; + gint16 distance = 0; int pinyin_len = strlen(onepinyin); bool retval = context->m_full_pinyin_parser->parse_one_key - (options, *onekey, onepinyin, pinyin_len); + (options, *onekey, distance, onepinyin, pinyin_len); return retval; } @@ -1246,9 +1250,10 @@ bool pinyin_parse_double_pinyin(pinyin_instance_t * instance, pinyin_context_t * & context = instance->m_context; pinyin_option_t options = context->m_options; + gint16 distance = 0; int pinyin_len = strlen(onepinyin); bool retval = context->m_double_pinyin_parser->parse_one_key - (options, *onekey, onepinyin, pinyin_len); + (options, *onekey, distance, onepinyin, pinyin_len); return retval; } @@ -1286,9 +1291,10 @@ bool pinyin_parse_chewing(pinyin_instance_t * instance, /* disable the zhuyin correction options. */ options &= ~ZHUYIN_CORRECT_ALL; + gint16 distance = 0; int chewing_len = strlen(onechewing); bool retval = context->m_chewing_parser->parse_one_key - (options, *onekey, onechewing, chewing_len ); + (options, *onekey, distance, onechewing, chewing_len ); return retval; } @@ -1369,8 +1375,8 @@ static gint compare_item_with_token(gconstpointer lhs, } #endif -static gint compare_item_with_length_and_frequency(gconstpointer lhs, - gconstpointer rhs) { +static gint compare_item_with_phrase_length_and_frequency(gconstpointer lhs, + gconstpointer rhs) { lookup_candidate_t * item_lhs = (lookup_candidate_t *)lhs; lookup_candidate_t * item_rhs = (lookup_candidate_t *)rhs; @@ -1386,6 +1392,29 @@ static gint compare_item_with_length_and_frequency(gconstpointer lhs, return -(freq_lhs - freq_rhs); /* in descendant order */ } +static gint compare_item_with_phrase_length_and_pinyin_length_and_frequency +(gconstpointer lhs, gconstpointer rhs) { + lookup_candidate_t * item_lhs = (lookup_candidate_t *)lhs; + lookup_candidate_t * item_rhs = (lookup_candidate_t *)rhs; + + guint8 len_lhs = item_lhs->m_phrase_length; + guint8 len_rhs = item_rhs->m_phrase_length; + + if (len_lhs != len_rhs) + return -(len_lhs - len_rhs); /* in descendant order */ + + len_lhs = item_lhs->m_end - item_lhs->m_begin; + len_rhs = item_rhs->m_end - item_rhs->m_begin; + + if (len_lhs != len_rhs) + return -(len_lhs - len_rhs); /* in descendant order */ + + guint32 freq_lhs = item_lhs->m_freq; + guint32 freq_rhs = item_rhs->m_freq; + + return -(freq_lhs - freq_rhs); /* in descendant order */ +} + static phrase_token_t _get_previous_token(pinyin_instance_t * instance, size_t offset) { pinyin_context_t * context = instance->m_context; @@ -1521,7 +1550,7 @@ static void _compute_frequency_of_items(pinyin_context_t * context, assert (0 < total_freq); /* Note: possibility value <= 1.0. */ - guint32 freq = (lambda * bigram_poss + + guint32 freq = (lambda * bigram_poss * BIGRAM_FREQUENCY_DISCOUNT + (1 - lambda) * cached_item.get_unigram_frequency() / (gfloat) total_freq) * 256 * 256 * 256; @@ -1745,7 +1774,8 @@ static bool _check_offset(PhoneticKeyMatrix & matrix, size_t offset) { } bool pinyin_guess_candidates(pinyin_instance_t * instance, - size_t offset) { + size_t offset, + sort_option_t sort_option) { pinyin_context_t * & context = instance->m_context; pinyin_option_t & options = context->m_options; @@ -1835,10 +1865,6 @@ bool pinyin_guess_candidates(pinyin_instance_t * instance, } context->m_phrase_index->destroy_ranges(ranges); - if (system_gram) - delete system_gram; - if (user_gram) - delete user_gram; /* post process to sort the candidates */ @@ -1846,8 +1872,17 @@ bool pinyin_guess_candidates(pinyin_instance_t * instance, _compute_frequency_of_items(context, prev_token, &merged_gram, candidates); - /* sort the candidates by length and frequency. */ - g_array_sort(candidates, compare_item_with_length_and_frequency); + /* sort the candidates. */ + switch (sort_option) { + case SORT_BY_PHRASE_LENGTH_AND_FREQUENCY: + g_array_sort(candidates, + compare_item_with_phrase_length_and_frequency); + break; + case SORT_BY_PHRASE_LENGTH_AND_PINYIN_LENGTH_AND_FREQUENCY: + g_array_sort(candidates, + compare_item_with_phrase_length_and_pinyin_length_and_frequency); + break; + } /* post process to remove duplicated candidates */ @@ -1857,31 +1892,48 @@ bool pinyin_guess_candidates(pinyin_instance_t * instance, _remove_duplicated_items_by_phrase_string(instance, instance->m_candidates); + if (system_gram) + delete system_gram; + if (user_gram) + delete user_gram; + return true; } bool pinyin_guess_predicted_candidates(pinyin_instance_t * instance, const char * prefix) { - const guint32 filter = 256; + const guint32 length = 2; + const guint32 filter = 10; pinyin_context_t * context = instance->m_context; FacadePhraseIndex * phrase_index = context->m_phrase_index; CandidateVector candidates = instance->m_candidates; + TokenVector prefixes = instance->m_prefixes; + phrase_token_t prev_token = null_token; _free_candidates(candidates); + g_array_set_size(instance->m_prefixes, 0); _compute_prefixes(instance, prefix); - phrase_token_t prev_token = _get_previous_token(instance, 0); - if (null_token == prev_token) + if (0 == prefixes->len) return false; /* merge single gram. */ SingleGram merged_gram; - SingleGram * system_gram = NULL, * user_gram = NULL; - context->m_system_bigram->load(prev_token, system_gram); - context->m_user_bigram->load(prev_token, user_gram); - merge_single_gram(&merged_gram, system_gram, user_gram); + SingleGram * user_gram = NULL; + for (gint i = prefixes->len - 1; i >= 0; --i) { + prev_token = g_array_index(prefixes, phrase_token_t, i); + + context->m_user_bigram->load(prev_token, user_gram); + merge_single_gram(&merged_gram, NULL, user_gram); + + if (merged_gram.get_length()) + break; + } + + if (0 == merged_gram.get_length()) + return false; /* retrieve all items. */ BigramPhraseWithCountArray tokens = g_array_new @@ -1890,7 +1942,7 @@ bool pinyin_guess_predicted_candidates(pinyin_instance_t * instance, /* sort the longer word first. */ PhraseItem cached_item; - for (size_t len = MAX_PHRASE_LENGTH; len > 0; --len) { + for (ssize_t len = length; len > 0; --len) { /* append items. */ for (size_t k = 0; k < tokens->len; ++k){ BigramPhraseItemWithCount * phrase_item = &g_array_index @@ -1915,19 +1967,14 @@ bool pinyin_guess_predicted_candidates(pinyin_instance_t * instance, } - if (system_gram) - delete system_gram; - if (user_gram) - delete user_gram; - /* post process to sort the candidates */ _compute_phrase_length(context, candidates); _compute_frequency_of_items(context, prev_token, &merged_gram, candidates); - /* sort the candidates by length and frequency. */ - g_array_sort(candidates, compare_item_with_length_and_frequency); + /* sort the candidates by phrase length and frequency. */ + g_array_sort(candidates, compare_item_with_phrase_length_and_frequency); /* post process to remove duplicated candidates */ @@ -1935,6 +1982,9 @@ bool pinyin_guess_predicted_candidates(pinyin_instance_t * instance, _remove_duplicated_items_by_phrase_string(instance, instance->m_candidates); + if (user_gram) + delete user_gram; + return true; } diff --git a/src/pinyin.h b/src/pinyin.h index 7ebb82f..7cab515 100644 --- a/src/pinyin.h +++ b/src/pinyin.h @@ -47,6 +47,11 @@ typedef enum _lookup_candidate_type_t{ ADDON_CANDIDATE, } lookup_candidate_type_t; +typedef enum _sort_option_t{ + SORT_BY_PHRASE_LENGTH_AND_FREQUENCY = 1, + SORT_BY_PHRASE_LENGTH_AND_PINYIN_LENGTH_AND_FREQUENCY, +} sort_option_t; + /** * pinyin_init: * @systemdir: the system wide language model data directory. @@ -470,27 +475,15 @@ bool pinyin_in_chewing_keyboard(pinyin_instance_t * instance, * pinyin_guess_candidates: * @instance: the pinyin instance. * @offset: the lookup offset. + * @sort_option: the sort option. * @returns: whether a list of tokens are gotten. * * Guess the candidates at the offset. * */ bool pinyin_guess_candidates(pinyin_instance_t * instance, - size_t offset); - -#if 0 -/** - * pinyin_guess_full_pinyin_candidates: - * @instance: the pinyin instance. - * @offset: the offset in the pinyin keys. - * @returns: whether a list of lookup_candidate_t candidates are gotten. - * - * Guess the full pinyin candidates at the offset. - * - */ -bool pinyin_guess_full_pinyin_candidates(pinyin_instance_t * instance, - size_t offset); -#endif + size_t offset, + sort_option_t sort_option); /** * pinyin_choose_candidate: @@ -607,20 +600,6 @@ bool pinyin_get_luoma_pinyin_string(pinyin_instance_t * instance, gchar ** utf8_str); /** - * pinyin_get_luoma_pinyin_string: - * @instance: the pinyin instance. - * @key: the pinyin key. - * @utf8_str: the luoma pinyin string. - * @returns: whether the get operation is successful. - * - * Get the luoma pinyin string of the key. - * - */ -bool pinyin_get_luoma_pinyin_string(pinyin_instance_t * instance, - ChewingKey * key, - gchar ** utf8_str); - -/** * pinyin_get_secondary_zhuyin_string: * @instance: the pinyin instance. * @key: the pinyin key. diff --git a/src/storage/Makefile.am b/src/storage/Makefile.am index ba9d4f4..b64b9ea 100644 --- a/src/storage/Makefile.am +++ b/src/storage/Makefile.am @@ -14,7 +14,7 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. -INCLUDES = -I$(top_srcdir)/src/include \ +AM_CPPFLAGS = -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/storage \ @GLIB2_CFLAGS@ @@ -26,7 +26,7 @@ if ENABLE_LIBZHUYIN libpinyininclude_HEADERS += zhuyin_custom2.h endif -noinst_HEADERS = chewing_enum.h \ +noinst_HEADERS = chewing_enum.h \ chewing_key.h \ pinyin_parser2.h \ zhuyin_parser2.h \ @@ -64,13 +64,9 @@ noinst_HEADERS = chewing_enum.h \ kyotodb_utils.h -noinst_LTLIBRARIES = libstorage.la +noinst_LIBRARIES = libstorage.a -libstorage_la_CXXFLAGS = "-fPIC" - -libstorage_la_LDFLAGS = -static - -libstorage_la_SOURCES = phrase_index.cpp \ +libstorage_a_SOURCES = phrase_index.cpp \ phrase_large_table2.cpp \ phrase_large_table3.cpp \ ngram.cpp \ @@ -84,13 +80,13 @@ libstorage_la_SOURCES = phrase_index.cpp \ table_info.cpp if BERKELEYDB -libstorage_la_SOURCES += ngram_bdb.cpp \ +libstorage_a_SOURCES += ngram_bdb.cpp \ phrase_large_table3_bdb.cpp \ chewing_large_table2_bdb.cpp endif if KYOTOCABINET -libstorage_la_SOURCES += ngram_kyotodb.cpp \ +libstorage_a_SOURCES += ngram_kyotodb.cpp \ phrase_large_table3_kyotodb.cpp \ chewing_large_table2_kyotodb.cpp endif diff --git a/src/storage/chewing_key.cpp b/src/storage/chewing_key.cpp index 953b369..102cce5 100644 --- a/src/storage/chewing_key.cpp +++ b/src/storage/chewing_key.cpp @@ -35,6 +35,15 @@ gint _ChewingKey::get_table_index() { return index == -1 ? 0 : index; } +bool _ChewingKey::is_valid_zhuyin() { + assert(m_initial < CHEWING_NUMBER_OF_INITIALS); + assert(m_middle < CHEWING_NUMBER_OF_MIDDLES); + assert(m_final < CHEWING_NUMBER_OF_FINALS); + assert(m_tone < CHEWING_NUMBER_OF_TONES); + + return valid_zhuyin_table[((m_initial * CHEWING_NUMBER_OF_MIDDLES + m_middle) * CHEWING_NUMBER_OF_FINALS + m_final) * CHEWING_NUMBER_OF_TONES + m_tone]; +} + gchar * _ChewingKey::get_pinyin_string() { assert(m_tone < CHEWING_NUMBER_OF_TONES); gint index = get_table_index(); diff --git a/src/storage/chewing_key.h b/src/storage/chewing_key.h index 7faf144..7ec4dfb 100644 --- a/src/storage/chewing_key.h +++ b/src/storage/chewing_key.h @@ -65,6 +65,7 @@ struct _ChewingKey public: gint get_table_index(); + bool is_valid_zhuyin(); /* Note: the return value should be freed by g_free. */ gchar * get_pinyin_string(); diff --git a/src/storage/chewing_large_table.cpp b/src/storage/chewing_large_table.cpp index 8521588..5716c5c 100644 --- a/src/storage/chewing_large_table.cpp +++ b/src/storage/chewing_large_table.cpp @@ -669,7 +669,7 @@ bool ChewingLargeTable::load_text(FILE * infile, TABLE_PHONETIC_TYPE type) { size_t freq; while (!feof(infile)) { - int num = fscanf(infile, "%256s %256s %u %ld", + int num = fscanf(infile, "%255s %255s %u %ld", pinyin, phrase, &token, &freq); if (4 != num) diff --git a/src/storage/chewing_large_table2.cpp b/src/storage/chewing_large_table2.cpp index aa34399..194173b 100644 --- a/src/storage/chewing_large_table2.cpp +++ b/src/storage/chewing_large_table2.cpp @@ -115,7 +115,7 @@ bool ChewingLargeTable2::load_text(FILE * infile, TABLE_PHONETIC_TYPE type) { size_t freq; while (!feof(infile)) { - int num = fscanf(infile, "%256s %256s %u %ld", + int num = fscanf(infile, "%255s %255s %u %ld", pinyin, phrase, &token, &freq); if (4 != num) @@ -149,7 +149,7 @@ bool ChewingLargeTable2::load_text(FILE * infile, TABLE_PHONETIC_TYPE type) { }; if (len != keys->len) { - fprintf(stderr, "ChewingLargeTable::load_text:%s\t%s\t%u\t%ld\n", + fprintf(stderr, "ChewingLargeTable2::load_text:%s\t%s\t%u\t%ld\n", pinyin, phrase, token, freq); continue; } diff --git a/src/storage/phrase_index.cpp b/src/storage/phrase_index.cpp index c4a7286..06b613f 100644 --- a/src/storage/phrase_index.cpp +++ b/src/storage/phrase_index.cpp @@ -527,7 +527,7 @@ bool FacadePhraseIndex::load_text(guint8 phrase_index, FILE * infile, phrase_token_t cur_token = 0; while (!feof(infile)){ - int num = fscanf(infile, "%256s %256s %u %ld", + int num = fscanf(infile, "%255s %255s %u %ld", pinyin, phrase, &token, &freq); if (4 != num) diff --git a/src/storage/phrase_large_table2.cpp b/src/storage/phrase_large_table2.cpp index 0aa6b95..38dafb3 100644 --- a/src/storage/phrase_large_table2.cpp +++ b/src/storage/phrase_large_table2.cpp @@ -472,7 +472,7 @@ bool PhraseLargeTable2::load_text(FILE * infile){ size_t freq; while (!feof(infile)) { - int num = fscanf(infile, "%256s %256s %u %ld", + int num = fscanf(infile, "%255s %255s %u %ld", pinyin, phrase, &token, &freq); if (4 != num) diff --git a/src/storage/phrase_large_table3.cpp b/src/storage/phrase_large_table3.cpp index 37e338b..696c612 100644 --- a/src/storage/phrase_large_table3.cpp +++ b/src/storage/phrase_large_table3.cpp @@ -128,7 +128,7 @@ bool PhraseLargeTable3::load_text(FILE * infile){ size_t freq; while (!feof(infile)) { - int num = fscanf(infile, "%256s %256s %u %ld", + int num = fscanf(infile, "%255s %255s %u %ld", pinyin, phrase, &token, &freq); if (4 != num) diff --git a/src/storage/pinyin_custom2.h b/src/storage/pinyin_custom2.h index fe2e3bd..320e846 100644 --- a/src/storage/pinyin_custom2.h +++ b/src/storage/pinyin_custom2.h @@ -28,7 +28,7 @@ G_BEGIN_DECLS /** * PinyinTableFlag: */ -enum PinyinTableFlag{ +typedef enum{ IS_PINYIN = 1U << 1, IS_ZHUYIN = 1U << 2, PINYIN_INCOMPLETE = 1U << 3, @@ -38,7 +38,7 @@ enum PinyinTableFlag{ USE_DIVIDED_TABLE = 1U << 7, USE_RESPLIT_TABLE = 1U << 8, DYNAMIC_ADJUST = 1U << 9 -}; +} PinyinTableFlag; /** * PinyinAmbiguity2: @@ -46,7 +46,7 @@ enum PinyinTableFlag{ * The enums of pinyin ambiguities. * */ -enum PinyinAmbiguity2{ +typedef enum{ PINYIN_AMB_C_CH = 1U << 10, PINYIN_AMB_S_SH = 1U << 11, PINYIN_AMB_Z_ZH = 1U << 12, @@ -58,7 +58,7 @@ enum PinyinAmbiguity2{ PINYIN_AMB_EN_ENG = 1U << 18, PINYIN_AMB_IN_ING = 1U << 19, PINYIN_AMB_ALL = 0x3FFU << 10 -}; +} PinyinAmbiguity2; /** * PinyinCorrection2: @@ -67,7 +67,7 @@ enum PinyinAmbiguity2{ * */ -enum PinyinCorrection2{ +typedef enum{ PINYIN_CORRECT_GN_NG = 1U << 21, PINYIN_CORRECT_MG_NG = 1U << 22, PINYIN_CORRECT_IOU_IU = 1U << 23, @@ -77,37 +77,35 @@ enum PinyinCorrection2{ PINYIN_CORRECT_V_U = 1U << 27, PINYIN_CORRECT_ON_ONG = 1U << 28, PINYIN_CORRECT_ALL = 0xFFU << 21 -}; +} PinyinCorrection2; /** - * PinyinCorrection2: + * ZhuyinCorrection2: * - * The enums of pinyin corrections. + * The enums of zhuyin corrections. * */ -enum ZhuyinCorrection2{ +typedef enum{ ZHUYIN_CORRECT_HSU = 1U << 29, ZHUYIN_CORRECT_ETEN26 = 1U << 30, ZHUYIN_CORRECT_SHUFFLE = 1U << 31, ZHUYIN_CORRECT_ALL = 0x7U << 29 -}; +} ZhuyinCorrection2; /** * @brief enums of Full Pinyin Schemes. */ -enum FullPinyinScheme -{ +typedef enum{ FULL_PINYIN_HANYU = 1, FULL_PINYIN_LUOMA = 2, FULL_PINYIN_SECONDARY_ZHUYIN = 3, FULL_PINYIN_DEFAULT = FULL_PINYIN_HANYU -}; +} FullPinyinScheme; /** * @brief enums of Double Pinyin Schemes. */ -enum DoublePinyinScheme -{ +typedef enum{ DOUBLE_PINYIN_ZRM = 1, DOUBLE_PINYIN_MS = 2, DOUBLE_PINYIN_ZIGUANG = 3, @@ -116,13 +114,12 @@ enum DoublePinyinScheme DOUBLE_PINYIN_XHE = 6, DOUBLE_PINYIN_CUSTOMIZED = 30, /* for user's keyboard */ DOUBLE_PINYIN_DEFAULT = DOUBLE_PINYIN_MS -}; +} DoublePinyinScheme; /** * @brief enums of Zhuyin Schemes. */ -enum ZhuyinScheme -{ +typedef enum{ ZHUYIN_STANDARD = 1, ZHUYIN_HSU = 2, ZHUYIN_IBM = 3, @@ -133,7 +130,7 @@ enum ZhuyinScheme ZHUYIN_HSU_DVORAK = 8, ZHUYIN_DACHEN_CP26 = 9, ZHUYIN_DEFAULT = ZHUYIN_STANDARD -}; +} ZhuyinScheme; G_END_DECLS diff --git a/src/storage/pinyin_custom3.h b/src/storage/pinyin_custom3.h deleted file mode 100644 index 37e89bb..0000000 --- a/src/storage/pinyin_custom3.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * libpinyin - * Library to deal with pinyin. - * - * Copyright (C) 2016 Peng Wu <alexepico@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - - -#include <glib.h> - - -G_BEGIN_DECLS - - -/** - * PinyinStandardOption: type pinyin_option_t. - * - * The enums of pinyin standard option. - * - */ -enum PinyinStandardOption{ - IS_PINYIN = 1U << 1, - IS_ZHUYIN = 1U << 2, - PINYIN_INCOMPLETE = 1U << 3, - ZHUYIN_INCOMPLETE = 1U << 4, - USE_TONE = 1U << 5, - FORCE_TONE = 1U << 6, - USE_DIVIDED_TABLE = 1U << 7, - USE_RESPLIT_TABLE = 1U << 8, - DYNAMIC_ADJUST = 1U << 9, - FULL_PINYIN_SUPPORT_QUOTATION = 1U << 10, -}; - -/** - * PinyinFuzzyOption: type pinyin_option_t. - * - * The enums of pinyin fuzzy option. - * - */ -enum PinyinFuzzyOption{ - PINYIN_FUZZY_C_CH = 1U << 10, - PINYIN_FUZZY_S_SH = 1U << 11, - PINYIN_FUZZY_Z_ZH = 1U << 12, - PINYIN_FUZZY_F_H = 1U << 13, - PINYIN_FUZZY_G_K = 1U << 14, - PINYIN_FUZZY_L_N = 1U << 15, - PINYIN_FUZZY_L_R = 1U << 16, - PINYIN_FUZZY_AN_ANG = 1U << 17, - PINYIN_FUZZY_EN_ENG = 1U << 18, - PINYIN_FUZZY_IN_ING = 1U << 19, - PINYIN_FUZZY_ALL = 0x3FFU << 10 -}; - -/** - * PinyinCorrectOption: type pinyin_option_t. - * - * The enums of pinyin correct option. - * - */ -enum PinyinCorrectOption{ - PINYIN_CORRECT_GN_NG = 1U << 21, - PINYIN_CORRECT_MG_NG = 1U << 22, - PINYIN_CORRECT_IOU_IU = 1U << 23, - PINYIN_CORRECT_UEI_UI = 1U << 24, - PINYIN_CORRECT_UEN_UN = 1U << 25, - PINYIN_CORRECT_UE_VE = 1U << 26, - PINYIN_CORRECT_V_U = 1U << 27, - PINYIN_CORRECT_ON_ONG = 1U << 28, - PINYIN_CORRECT_ALL = 0xFFU << 21, -}; - -/** - * ZhuyinCorrectOption: type pinyin_option_t. - * - * The enums of zhuyin correct option. - * - */ -enum ZhuyinCorrectOption{ - ZHUYIN_CORRECT_HSU = 1U << 29, - ZHUYIN_CORRECT_ETEN26 = 1U << 30, - ZHUYIN_CORRECT_SHUFFLE = 1U << 31, - ZHUYIN_CORRECT_ALL = 0x7U << 29 -}; - -/** - * @brief enums of Full Pinyin Schemes. - */ -enum FullPinyinScheme -{ - FULL_PINYIN_HANYU = 1, - FULL_PINYIN_LUOMA = 2, - FULL_PINYIN_SECONDARY_BOPOMOFO = 3, - FULL_PINYIN_DEFAULT = FULL_PINYIN_HANYU -}; - -/** - * @brief enums of Double Pinyin Schemes. - */ -enum DoublePinyinScheme -{ - DOUBLE_PINYIN_ZRM = 1, - DOUBLE_PINYIN_MS = 2, - DOUBLE_PINYIN_ZIGUANG = 3, - DOUBLE_PINYIN_ABC = 4, - DOUBLE_PINYIN_PYJJ = 5, - DOUBLE_PINYIN_XHE = 6, - DOUBLE_PINYIN_CUSTOMIZED = 30, /* for user's keyboard */ - DOUBLE_PINYIN_DEFAULT = DOUBLE_PINYIN_MS -}; - -/** - * @brief enums of Zhuyin Schemes. - */ -enum ZhuyinScheme -{ - ZHUYIN_STANDARD = 1, - ZHUYIN_HSU = 2, - ZHUYIN_IBM = 3, - ZHUYIN_GINYIEH = 4, - ZHUYIN_ETEN = 5, - ZHUYIN_ETEN26 = 6, - ZHUYIN_STANDARD_DVORAK = 7, - ZHUYIN_HSU_DVORAK = 8, - ZHUYIN_DACHEN_CP26 = 9, - ZHUYIN_DEFAULT = ZHUYIN_STANDARD -}; - - -G_END_DECLS diff --git a/src/storage/pinyin_parser2.cpp b/src/storage/pinyin_parser2.cpp index da32455..9e8d2f9 100644 --- a/src/storage/pinyin_parser2.cpp +++ b/src/storage/pinyin_parser2.cpp @@ -66,6 +66,7 @@ struct parse_value_t{ ChewingKeyRest m_key_rest; gint16 m_num_keys; gint16 m_parsed_len; + gint16 m_distance; gint16 m_last_step; /* constructor */ @@ -73,6 +74,7 @@ public: parse_value_t(){ m_num_keys = 0; m_parsed_len = 0; + m_distance = 0; m_last_step = -1; } }; @@ -121,7 +123,8 @@ static inline bool search_pinyin_index2(pinyin_option_t options, const pinyin_index_item_t * index, size_t len, const char * pinyin, - ChewingKey & key){ + ChewingKey & key, + gint16 & distance){ pinyin_index_item_t item; memset(&item, 0, sizeof(item)); item.m_pinyin_input = pinyin; @@ -141,6 +144,7 @@ static inline bool search_pinyin_index2(pinyin_option_t options, return false; key = content_table[index->m_table_index].m_chewing_key; + distance = index->m_distance; assert(key.get_table_index() == index->m_table_index); return true; } @@ -159,6 +163,7 @@ FullPinyinParser2::FullPinyinParser2 (){ bool FullPinyinParser2::parse_one_key (pinyin_option_t options, ChewingKey & key, + gint16 & distance, const char * pinyin, int len) const { /* "'" are not accepted in parse_one_key. */ gchar * input = g_strndup(pinyin, len); @@ -189,7 +194,7 @@ bool FullPinyinParser2::parse_one_key (pinyin_option_t options, /* Note: optimize here? */ input[parsed_len] = '\0'; if (!search_pinyin_index2(options, m_pinyin_index, m_pinyin_index_len, - input, key)) { + input, key, distance)) { g_free(input); return false; } @@ -239,6 +244,7 @@ int FullPinyinParser2::parse (pinyin_option_t options, ChewingKeyVector & keys, nextstep->m_key_rest = ChewingKeyRest(); nextstep->m_num_keys = curstep->m_num_keys; nextstep->m_parsed_len = curstep->m_parsed_len + 1; + nextstep->m_distance = curstep->m_distance; nextstep->m_last_step = i; next_sep = 0; continue; @@ -265,13 +271,14 @@ int FullPinyinParser2::parse (pinyin_option_t options, ChewingKeyVector & keys, nextstep = &g_array_index(m_parse_steps, parse_value_t, n); /* gen next step */ + gint16 distance = 0; const char * onepinyin = input + m; gint16 onepinyinlen = n - m; value = parse_value_t(); ChewingKey key; ChewingKeyRest rest; bool parsed = parse_one_key - (options, key, onepinyin, onepinyinlen); + (options, key, distance, onepinyin, onepinyinlen); rest.m_raw_begin = m; rest.m_raw_end = n; if (!parsed) continue; @@ -281,6 +288,7 @@ int FullPinyinParser2::parse (pinyin_option_t options, ChewingKeyVector & keys, value.m_key = key; value.m_key_rest = rest; value.m_num_keys = curstep->m_num_keys + 1; value.m_parsed_len = curstep->m_parsed_len + onepinyinlen; + value.m_distance = curstep->m_distance + distance; value.m_last_step = m; /* save next step */ @@ -297,7 +305,9 @@ int FullPinyinParser2::parse (pinyin_option_t options, ChewingKeyVector & keys, /* handle with the same pinyin length and the number of keys */ if (value.m_parsed_len == nextstep->m_parsed_len && - value.m_num_keys == nextstep->m_num_keys) { + value.m_num_keys == nextstep->m_num_keys && + value.m_distance < nextstep->m_distance) { + *nextstep = value; #if 0 /* prefer the 'a' at the end of clause, @@ -391,6 +401,7 @@ bool FullPinyinParser2::set_scheme(FullPinyinScheme scheme){ bool DoublePinyinParser2::parse_one_key(pinyin_option_t options, ChewingKey & key, + gint16 & distance, const char *str, int len) const { options &= ~(PINYIN_CORRECT_ALL|PINYIN_AMB_ALL); @@ -537,9 +548,10 @@ int DoublePinyinParser2::parse(pinyin_option_t options, ChewingKeyVector & keys, i = std_lite::min(maximum_len - parsed_len, (int)max_double_pinyin_length); + gint16 distance = 0; ChewingKey key; ChewingKeyRest key_rest; for (; i > 0; --i) { - bool success = parse_one_key(options, key, cur_str, i); + bool success = parse_one_key(options, key, distance, cur_str, i); if (success) break; } @@ -607,6 +619,7 @@ PinyinDirectParser2::PinyinDirectParser2 (){ bool PinyinDirectParser2::parse_one_key(pinyin_option_t options, ChewingKey & key, + gint16 & distance, const char *str, int len) const { /* "'" are not accepted in parse_one_key. */ gchar * input = g_strndup(str, len); @@ -637,7 +650,7 @@ bool PinyinDirectParser2::parse_one_key(pinyin_option_t options, /* Note: optimize here? */ input[parsed_len] = '\0'; if (!search_pinyin_index2(options, m_pinyin_index, m_pinyin_index_len, - input, key)) { + input, key, distance)) { g_free(input); return false; } @@ -663,8 +676,6 @@ int PinyinDirectParser2::parse(pinyin_option_t options, g_array_set_size(keys, 0); g_array_set_size(key_rests, 0); - ChewingKey key; ChewingKeyRest key_rest; - int parsed_len = 0; int i = 0, cur = 0, next = 0; while (cur < len) { @@ -675,7 +686,9 @@ int PinyinDirectParser2::parse(pinyin_option_t options, } next = i; - if (parse_one_key(options, key, str + cur, next - cur)) { + gint16 distance = 0; + ChewingKey key; ChewingKeyRest key_rest; + if (parse_one_key(options, key, distance, str + cur, next - cur)) { key_rest.m_raw_begin = cur; key_rest.m_raw_end = next; /* save the pinyin. */ diff --git a/src/storage/pinyin_parser2.h b/src/storage/pinyin_parser2.h index 4a2f0f2..790c0cb 100644 --- a/src/storage/pinyin_parser2.h +++ b/src/storage/pinyin_parser2.h @@ -42,6 +42,7 @@ typedef struct { const char * m_pinyin_input; guint32 m_flags; guint16 m_table_index; + guint16 m_distance; } pinyin_index_item_t; typedef struct { @@ -114,7 +115,7 @@ public: * Parse only one struct ChewingKey from a string. * */ - virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, const char *str, int len) const = 0; + virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, gint16 & distance, const char *str, int len) const = 0; /** * PhoneticParser2::parse: @@ -156,7 +157,7 @@ public: g_array_free(m_parse_steps, TRUE); } - virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, const char *str, int len) const; + virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, gint16 & distance, const char *str, int len) const; /* Note: * the parse method will use dynamic programming to drive parse_one_key. @@ -195,7 +196,7 @@ public: virtual ~DoublePinyinParser2() {} - virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, const char *str, int len) const; + virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, gint16 & distance, const char *str, int len) const; virtual int parse(pinyin_option_t options, ChewingKeyVector & keys, ChewingKeyRestVector & key_rests, const char *str, int len) const; @@ -215,7 +216,7 @@ public: virtual ~PinyinDirectParser2() {} - virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, const char *str, int len) const; + virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, gint16 & distance, const char *str, int len) const; virtual int parse(pinyin_option_t options, ChewingKeyVector & keys, ChewingKeyRestVector & key_rests, const char *str, int len) const; }; diff --git a/src/storage/pinyin_parser_table.h b/src/storage/pinyin_parser_table.h index ad8bf7c..031a629 100644 --- a/src/storage/pinyin_parser_table.h +++ b/src/storage/pinyin_parser_table.h @@ -7,666 +7,666 @@ namespace pinyin{ const pinyin_index_item_t pinyin_index[] = { -{"a", IS_ZHUYIN|IS_PINYIN, 1}, -{"agn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 4}, -{"ai", IS_ZHUYIN|IS_PINYIN, 2}, -{"amg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 4}, -{"an", IS_ZHUYIN|IS_PINYIN, 3}, -{"ang", IS_ZHUYIN|IS_PINYIN, 4}, -{"ao", IS_ZHUYIN|IS_PINYIN, 5}, -{"b", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 6}, -{"ba", IS_ZHUYIN|IS_PINYIN, 7}, -{"bagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 10}, -{"bai", IS_ZHUYIN|IS_PINYIN, 8}, -{"bamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 10}, -{"ban", IS_ZHUYIN|IS_PINYIN, 9}, -{"bang", IS_ZHUYIN|IS_PINYIN, 10}, -{"bao", IS_ZHUYIN|IS_PINYIN, 11}, -{"begn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 14}, -{"bei", IS_ZHUYIN|IS_PINYIN, 12}, -{"bemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 14}, -{"ben", IS_ZHUYIN|IS_PINYIN, 13}, -{"beng", IS_ZHUYIN|IS_PINYIN, 14}, -{"bi", IS_ZHUYIN|IS_PINYIN, 15}, -{"bian", IS_ZHUYIN|IS_PINYIN, 16}, -{"biao", IS_ZHUYIN|IS_PINYIN, 17}, -{"bie", IS_ZHUYIN|IS_PINYIN, 18}, -{"bign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 20}, -{"bimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 20}, -{"bin", IS_ZHUYIN|IS_PINYIN, 19}, -{"bing", IS_ZHUYIN|IS_PINYIN, 20}, -{"bo", IS_ZHUYIN|IS_PINYIN, 21}, -{"bu", IS_ZHUYIN|IS_PINYIN, 22}, -{"c", IS_PINYIN|PINYIN_INCOMPLETE, 23}, -{"ca", IS_ZHUYIN|IS_PINYIN, 24}, -{"cagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 27}, -{"cai", IS_ZHUYIN|IS_PINYIN, 25}, -{"camg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 27}, -{"can", IS_ZHUYIN|IS_PINYIN, 26}, -{"cang", IS_ZHUYIN|IS_PINYIN, 27}, -{"cao", IS_ZHUYIN|IS_PINYIN, 28}, -{"ce", IS_ZHUYIN|IS_PINYIN, 29}, -{"cegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 31}, -{"cemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 31}, -{"cen", IS_ZHUYIN|IS_PINYIN, 30}, -{"ceng", IS_ZHUYIN|IS_PINYIN, 31}, -{"ch", IS_PINYIN|PINYIN_INCOMPLETE, 32}, -{"cha", IS_ZHUYIN|IS_PINYIN, 33}, -{"chagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 36}, -{"chai", IS_ZHUYIN|IS_PINYIN, 34}, -{"chamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 36}, -{"chan", IS_ZHUYIN|IS_PINYIN, 35}, -{"chang", IS_ZHUYIN|IS_PINYIN, 36}, -{"chao", IS_ZHUYIN|IS_PINYIN, 37}, -{"che", IS_ZHUYIN|IS_PINYIN, 38}, -{"chegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 40}, -{"chemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 40}, -{"chen", IS_ZHUYIN|IS_PINYIN, 39}, -{"cheng", IS_ZHUYIN|IS_PINYIN, 40}, -{"chi", IS_ZHUYIN|IS_PINYIN, 41}, -{"chogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 42}, -{"chomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 42}, -{"chon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 42}, -{"chong", IS_ZHUYIN|IS_PINYIN, 42}, -{"chou", IS_ZHUYIN|IS_PINYIN, 43}, -{"chu", IS_ZHUYIN|IS_PINYIN, 44}, -{"chuagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 48}, -{"chuai", IS_ZHUYIN|IS_PINYIN, 46}, -{"chuamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 48}, -{"chuan", IS_ZHUYIN|IS_PINYIN, 47}, -{"chuang", IS_ZHUYIN|IS_PINYIN, 48}, -{"chuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 49}, -{"chuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 50}, -{"chui", IS_ZHUYIN|IS_PINYIN, 49}, -{"chun", IS_ZHUYIN|IS_PINYIN, 50}, -{"chuo", IS_ZHUYIN|IS_PINYIN, 51}, -{"ci", IS_ZHUYIN|IS_PINYIN, 52}, -{"cogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 53}, -{"comg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 53}, -{"con", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 53}, -{"cong", IS_ZHUYIN|IS_PINYIN, 53}, -{"cou", IS_ZHUYIN|IS_PINYIN, 54}, -{"cu", IS_ZHUYIN|IS_PINYIN, 55}, -{"cuan", IS_ZHUYIN|IS_PINYIN, 56}, -{"cuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 57}, -{"cuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 58}, -{"cui", IS_ZHUYIN|IS_PINYIN, 57}, -{"cun", IS_ZHUYIN|IS_PINYIN, 58}, -{"cuo", IS_ZHUYIN|IS_PINYIN, 59}, -{"d", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 60}, -{"da", IS_ZHUYIN|IS_PINYIN, 61}, -{"dagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 64}, -{"dai", IS_ZHUYIN|IS_PINYIN, 62}, -{"damg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 64}, -{"dan", IS_ZHUYIN|IS_PINYIN, 63}, -{"dang", IS_ZHUYIN|IS_PINYIN, 64}, -{"dao", IS_ZHUYIN|IS_PINYIN, 65}, -{"de", IS_ZHUYIN|IS_PINYIN, 66}, -{"degn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 69}, -{"dei", IS_ZHUYIN|IS_PINYIN, 67}, -{"demg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 69}, -{"deng", IS_ZHUYIN|IS_PINYIN, 69}, -{"di", IS_ZHUYIN|IS_PINYIN, 70}, -{"dia", IS_ZHUYIN|IS_PINYIN, 71}, -{"dian", IS_ZHUYIN|IS_PINYIN, 72}, -{"diao", IS_ZHUYIN|IS_PINYIN, 73}, -{"die", IS_ZHUYIN|IS_PINYIN, 74}, -{"dign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 76}, -{"dimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 76}, -{"ding", IS_ZHUYIN|IS_PINYIN, 76}, -{"diou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 77}, -{"diu", IS_ZHUYIN|IS_PINYIN, 77}, -{"dogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 78}, -{"domg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 78}, -{"don", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 78}, -{"dong", IS_ZHUYIN|IS_PINYIN, 78}, -{"dou", IS_ZHUYIN|IS_PINYIN, 79}, -{"du", IS_ZHUYIN|IS_PINYIN, 80}, -{"duan", IS_ZHUYIN|IS_PINYIN, 81}, -{"duei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 82}, -{"duen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 83}, -{"dui", IS_ZHUYIN|IS_PINYIN, 82}, -{"dun", IS_ZHUYIN|IS_PINYIN, 83}, -{"duo", IS_ZHUYIN|IS_PINYIN, 84}, -{"e", IS_ZHUYIN|IS_PINYIN, 85}, -{"egn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 88}, -{"ei", IS_ZHUYIN|IS_PINYIN, 86}, -{"emg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 88}, -{"en", IS_ZHUYIN|IS_PINYIN, 87}, -{"er", IS_ZHUYIN|IS_PINYIN, 89}, -{"f", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 90}, -{"fa", IS_ZHUYIN|IS_PINYIN, 91}, -{"fagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 93}, -{"famg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 93}, -{"fan", IS_ZHUYIN|IS_PINYIN, 92}, -{"fang", IS_ZHUYIN|IS_PINYIN, 93}, -{"fegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 97}, -{"fei", IS_ZHUYIN|IS_PINYIN, 95}, -{"femg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 97}, -{"fen", IS_ZHUYIN|IS_PINYIN, 96}, -{"feng", IS_ZHUYIN|IS_PINYIN, 97}, -{"fo", IS_ZHUYIN|IS_PINYIN, 98}, -{"fou", IS_ZHUYIN|IS_PINYIN, 99}, -{"fu", IS_ZHUYIN|IS_PINYIN, 100}, -{"g", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 101}, -{"ga", IS_ZHUYIN|IS_PINYIN, 102}, -{"gagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 105}, -{"gai", IS_ZHUYIN|IS_PINYIN, 103}, -{"gamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 105}, -{"gan", IS_ZHUYIN|IS_PINYIN, 104}, -{"gang", IS_ZHUYIN|IS_PINYIN, 105}, -{"gao", IS_ZHUYIN|IS_PINYIN, 106}, -{"ge", IS_ZHUYIN|IS_PINYIN, 107}, -{"gegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 110}, -{"gei", IS_ZHUYIN|IS_PINYIN, 108}, -{"gemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 110}, -{"gen", IS_ZHUYIN|IS_PINYIN, 109}, -{"geng", IS_ZHUYIN|IS_PINYIN, 110}, -{"gogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 111}, -{"gomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 111}, -{"gon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 111}, -{"gong", IS_ZHUYIN|IS_PINYIN, 111}, -{"gou", IS_ZHUYIN|IS_PINYIN, 112}, -{"gu", IS_ZHUYIN|IS_PINYIN, 113}, -{"gua", IS_ZHUYIN|IS_PINYIN, 114}, -{"guagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 117}, -{"guai", IS_ZHUYIN|IS_PINYIN, 115}, -{"guamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 117}, -{"guan", IS_ZHUYIN|IS_PINYIN, 116}, -{"guang", IS_ZHUYIN|IS_PINYIN, 117}, -{"guei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 118}, -{"guen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 119}, -{"gui", IS_ZHUYIN|IS_PINYIN, 118}, -{"gun", IS_ZHUYIN|IS_PINYIN, 119}, -{"guo", IS_ZHUYIN|IS_PINYIN, 120}, -{"h", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 121}, -{"ha", IS_ZHUYIN|IS_PINYIN, 122}, -{"hagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 125}, -{"hai", IS_ZHUYIN|IS_PINYIN, 123}, -{"hamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 125}, -{"han", IS_ZHUYIN|IS_PINYIN, 124}, -{"hang", IS_ZHUYIN|IS_PINYIN, 125}, -{"hao", IS_ZHUYIN|IS_PINYIN, 126}, -{"he", IS_ZHUYIN|IS_PINYIN, 127}, -{"hegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 130}, -{"hei", IS_ZHUYIN|IS_PINYIN, 128}, -{"hemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 130}, -{"hen", IS_ZHUYIN|IS_PINYIN, 129}, -{"heng", IS_ZHUYIN|IS_PINYIN, 130}, -{"hogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 131}, -{"homg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 131}, -{"hon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 131}, -{"hong", IS_ZHUYIN|IS_PINYIN, 131}, -{"hou", IS_ZHUYIN|IS_PINYIN, 132}, -{"hu", IS_ZHUYIN|IS_PINYIN, 133}, -{"hua", IS_ZHUYIN|IS_PINYIN, 134}, -{"huagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 137}, -{"huai", IS_ZHUYIN|IS_PINYIN, 135}, -{"huamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 137}, -{"huan", IS_ZHUYIN|IS_PINYIN, 136}, -{"huang", IS_ZHUYIN|IS_PINYIN, 137}, -{"huei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 138}, -{"huen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 139}, -{"hui", IS_ZHUYIN|IS_PINYIN, 138}, -{"hun", IS_ZHUYIN|IS_PINYIN, 139}, -{"huo", IS_ZHUYIN|IS_PINYIN, 140}, -{"j", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 141}, -{"ji", IS_ZHUYIN|IS_PINYIN, 142}, -{"jia", IS_ZHUYIN|IS_PINYIN, 143}, -{"jiagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 145}, -{"jiamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 145}, -{"jian", IS_ZHUYIN|IS_PINYIN, 144}, -{"jiang", IS_ZHUYIN|IS_PINYIN, 145}, -{"jiao", IS_ZHUYIN|IS_PINYIN, 146}, -{"jie", IS_ZHUYIN|IS_PINYIN, 147}, -{"jign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 149}, -{"jimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 149}, -{"jin", IS_ZHUYIN|IS_PINYIN, 148}, -{"jing", IS_ZHUYIN|IS_PINYIN, 149}, -{"jiogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 150}, -{"jiomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 150}, -{"jion", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 150}, -{"jiong", IS_ZHUYIN|IS_PINYIN, 150}, -{"jiou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 151}, -{"jiu", IS_ZHUYIN|IS_PINYIN, 151}, -{"ju", IS_ZHUYIN|IS_PINYIN, 152}, -{"juan", IS_ZHUYIN|IS_PINYIN, 153}, -{"jue", IS_ZHUYIN|IS_PINYIN, 154}, -{"juen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 155}, -{"jun", IS_ZHUYIN|IS_PINYIN, 155}, -{"jv", IS_PINYIN|PINYIN_CORRECT_V_U, 152}, -{"jvan", IS_PINYIN|PINYIN_CORRECT_V_U, 153}, -{"jve", IS_PINYIN|PINYIN_CORRECT_V_U, 154}, -{"jvn", IS_PINYIN|PINYIN_CORRECT_V_U, 155}, -{"k", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 156}, -{"ka", IS_ZHUYIN|IS_PINYIN, 157}, -{"kagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 160}, -{"kai", IS_ZHUYIN|IS_PINYIN, 158}, -{"kamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 160}, -{"kan", IS_ZHUYIN|IS_PINYIN, 159}, -{"kang", IS_ZHUYIN|IS_PINYIN, 160}, -{"kao", IS_ZHUYIN|IS_PINYIN, 161}, -{"ke", IS_ZHUYIN|IS_PINYIN, 162}, -{"kegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 165}, -{"kemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 165}, -{"ken", IS_ZHUYIN|IS_PINYIN, 164}, -{"keng", IS_ZHUYIN|IS_PINYIN, 165}, -{"kogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 166}, -{"komg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 166}, -{"kon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 166}, -{"kong", IS_ZHUYIN|IS_PINYIN, 166}, -{"kou", IS_ZHUYIN|IS_PINYIN, 167}, -{"ku", IS_ZHUYIN|IS_PINYIN, 168}, -{"kua", IS_ZHUYIN|IS_PINYIN, 169}, -{"kuagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 172}, -{"kuai", IS_ZHUYIN|IS_PINYIN, 170}, -{"kuamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 172}, -{"kuan", IS_ZHUYIN|IS_PINYIN, 171}, -{"kuang", IS_ZHUYIN|IS_PINYIN, 172}, -{"kuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 173}, -{"kuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 174}, -{"kui", IS_ZHUYIN|IS_PINYIN, 173}, -{"kun", IS_ZHUYIN|IS_PINYIN, 174}, -{"kuo", IS_ZHUYIN|IS_PINYIN, 175}, -{"l", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 176}, -{"la", IS_ZHUYIN|IS_PINYIN, 177}, -{"lagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 180}, -{"lai", IS_ZHUYIN|IS_PINYIN, 178}, -{"lamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 180}, -{"lan", IS_ZHUYIN|IS_PINYIN, 179}, -{"lang", IS_ZHUYIN|IS_PINYIN, 180}, -{"lao", IS_ZHUYIN|IS_PINYIN, 181}, -{"le", IS_ZHUYIN|IS_PINYIN, 182}, -{"legn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 185}, -{"lei", IS_ZHUYIN|IS_PINYIN, 183}, -{"lemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 185}, -{"leng", IS_ZHUYIN|IS_PINYIN, 185}, -{"li", IS_ZHUYIN|IS_PINYIN, 186}, -{"lia", IS_ZHUYIN|IS_PINYIN, 187}, -{"liagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 189}, -{"liamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 189}, -{"lian", IS_ZHUYIN|IS_PINYIN, 188}, -{"liang", IS_ZHUYIN|IS_PINYIN, 189}, -{"liao", IS_ZHUYIN|IS_PINYIN, 190}, -{"lie", IS_ZHUYIN|IS_PINYIN, 191}, -{"lign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 193}, -{"limg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 193}, -{"lin", IS_ZHUYIN|IS_PINYIN, 192}, -{"ling", IS_ZHUYIN|IS_PINYIN, 193}, -{"liou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 194}, -{"liu", IS_ZHUYIN|IS_PINYIN, 194}, -{"lo", IS_ZHUYIN|IS_PINYIN, 195}, -{"logn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 196}, -{"lomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 196}, -{"lon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 196}, -{"long", IS_ZHUYIN|IS_PINYIN, 196}, -{"lou", IS_ZHUYIN|IS_PINYIN, 197}, -{"lu", IS_ZHUYIN|IS_PINYIN, 198}, -{"luan", IS_ZHUYIN|IS_PINYIN, 199}, -{"lue", IS_PINYIN|PINYIN_CORRECT_UE_VE, 203}, -{"luen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 200}, -{"lun", IS_ZHUYIN|IS_PINYIN, 200}, -{"luo", IS_ZHUYIN|IS_PINYIN, 201}, -{"lv", IS_ZHUYIN|IS_PINYIN, 202}, -{"lve", IS_ZHUYIN|IS_PINYIN, 203}, -{"m", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 204}, -{"ma", IS_ZHUYIN|IS_PINYIN, 205}, -{"magn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 208}, -{"mai", IS_ZHUYIN|IS_PINYIN, 206}, -{"mamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 208}, -{"man", IS_ZHUYIN|IS_PINYIN, 207}, -{"mang", IS_ZHUYIN|IS_PINYIN, 208}, -{"mao", IS_ZHUYIN|IS_PINYIN, 209}, -{"me", IS_ZHUYIN|IS_PINYIN, 210}, -{"megn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 213}, -{"mei", IS_ZHUYIN|IS_PINYIN, 211}, -{"memg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 213}, -{"men", IS_ZHUYIN|IS_PINYIN, 212}, -{"meng", IS_ZHUYIN|IS_PINYIN, 213}, -{"mi", IS_ZHUYIN|IS_PINYIN, 214}, -{"mian", IS_ZHUYIN|IS_PINYIN, 215}, -{"miao", IS_ZHUYIN|IS_PINYIN, 216}, -{"mie", IS_ZHUYIN|IS_PINYIN, 217}, -{"mign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 219}, -{"mimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 219}, -{"min", IS_ZHUYIN|IS_PINYIN, 218}, -{"ming", IS_ZHUYIN|IS_PINYIN, 219}, -{"miou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 220}, -{"miu", IS_ZHUYIN|IS_PINYIN, 220}, -{"mo", IS_ZHUYIN|IS_PINYIN, 221}, -{"mou", IS_ZHUYIN|IS_PINYIN, 222}, -{"mu", IS_ZHUYIN|IS_PINYIN, 223}, -{"n", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 224}, -{"na", IS_ZHUYIN|IS_PINYIN, 225}, -{"nagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 228}, -{"nai", IS_ZHUYIN|IS_PINYIN, 226}, -{"namg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 228}, -{"nan", IS_ZHUYIN|IS_PINYIN, 227}, -{"nang", IS_ZHUYIN|IS_PINYIN, 228}, -{"nao", IS_ZHUYIN|IS_PINYIN, 229}, -{"ne", IS_ZHUYIN|IS_PINYIN, 230}, -{"negn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 233}, -{"nei", IS_ZHUYIN|IS_PINYIN, 231}, -{"nemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 233}, -{"nen", IS_ZHUYIN|IS_PINYIN, 232}, -{"neng", IS_ZHUYIN|IS_PINYIN, 233}, -{"ng", IS_ZHUYIN|IS_PINYIN, 234}, -{"ni", IS_ZHUYIN|IS_PINYIN, 235}, -{"niagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 238}, -{"niamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 238}, -{"nian", IS_ZHUYIN|IS_PINYIN, 237}, -{"niang", IS_ZHUYIN|IS_PINYIN, 238}, -{"niao", IS_ZHUYIN|IS_PINYIN, 239}, -{"nie", IS_ZHUYIN|IS_PINYIN, 240}, -{"nign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 242}, -{"nimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 242}, -{"nin", IS_ZHUYIN|IS_PINYIN, 241}, -{"ning", IS_ZHUYIN|IS_PINYIN, 242}, -{"niou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 243}, -{"niu", IS_ZHUYIN|IS_PINYIN, 243}, -{"nogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 244}, -{"nomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 244}, -{"non", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 244}, -{"nong", IS_ZHUYIN|IS_PINYIN, 244}, -{"nou", IS_ZHUYIN|IS_PINYIN, 245}, -{"nu", IS_ZHUYIN|IS_PINYIN, 246}, -{"nuan", IS_ZHUYIN|IS_PINYIN, 247}, -{"nue", IS_PINYIN|PINYIN_CORRECT_UE_VE, 251}, -{"nuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 248}, -{"nuo", IS_ZHUYIN|IS_PINYIN, 249}, -{"nv", IS_ZHUYIN|IS_PINYIN, 250}, -{"nve", IS_ZHUYIN|IS_PINYIN, 251}, -{"o", IS_ZHUYIN|IS_PINYIN, 252}, -{"ou", IS_ZHUYIN|IS_PINYIN, 253}, -{"p", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 254}, -{"pa", IS_ZHUYIN|IS_PINYIN, 255}, -{"pagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 258}, -{"pai", IS_ZHUYIN|IS_PINYIN, 256}, -{"pamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 258}, -{"pan", IS_ZHUYIN|IS_PINYIN, 257}, -{"pang", IS_ZHUYIN|IS_PINYIN, 258}, -{"pao", IS_ZHUYIN|IS_PINYIN, 259}, -{"pegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 262}, -{"pei", IS_ZHUYIN|IS_PINYIN, 260}, -{"pemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 262}, -{"pen", IS_ZHUYIN|IS_PINYIN, 261}, -{"peng", IS_ZHUYIN|IS_PINYIN, 262}, -{"pi", IS_ZHUYIN|IS_PINYIN, 263}, -{"pian", IS_ZHUYIN|IS_PINYIN, 264}, -{"piao", IS_ZHUYIN|IS_PINYIN, 265}, -{"pie", IS_ZHUYIN|IS_PINYIN, 266}, -{"pign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 268}, -{"pimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 268}, -{"pin", IS_ZHUYIN|IS_PINYIN, 267}, -{"ping", IS_ZHUYIN|IS_PINYIN, 268}, -{"po", IS_ZHUYIN|IS_PINYIN, 269}, -{"pou", IS_ZHUYIN|IS_PINYIN, 270}, -{"pu", IS_ZHUYIN|IS_PINYIN, 271}, -{"q", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 272}, -{"qi", IS_ZHUYIN|IS_PINYIN, 273}, -{"qia", IS_ZHUYIN|IS_PINYIN, 274}, -{"qiagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 276}, -{"qiamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 276}, -{"qian", IS_ZHUYIN|IS_PINYIN, 275}, -{"qiang", IS_ZHUYIN|IS_PINYIN, 276}, -{"qiao", IS_ZHUYIN|IS_PINYIN, 277}, -{"qie", IS_ZHUYIN|IS_PINYIN, 278}, -{"qign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 280}, -{"qimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 280}, -{"qin", IS_ZHUYIN|IS_PINYIN, 279}, -{"qing", IS_ZHUYIN|IS_PINYIN, 280}, -{"qiogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 281}, -{"qiomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 281}, -{"qion", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 281}, -{"qiong", IS_ZHUYIN|IS_PINYIN, 281}, -{"qiou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 282}, -{"qiu", IS_ZHUYIN|IS_PINYIN, 282}, -{"qu", IS_ZHUYIN|IS_PINYIN, 283}, -{"quan", IS_ZHUYIN|IS_PINYIN, 284}, -{"que", IS_ZHUYIN|IS_PINYIN, 285}, -{"quen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 286}, -{"qun", IS_ZHUYIN|IS_PINYIN, 286}, -{"qv", IS_PINYIN|PINYIN_CORRECT_V_U, 283}, -{"qvan", IS_PINYIN|PINYIN_CORRECT_V_U, 284}, -{"qve", IS_PINYIN|PINYIN_CORRECT_V_U, 285}, -{"qvn", IS_PINYIN|PINYIN_CORRECT_V_U, 286}, -{"r", IS_PINYIN|PINYIN_INCOMPLETE, 287}, -{"ragn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 289}, -{"ramg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 289}, -{"ran", IS_ZHUYIN|IS_PINYIN, 288}, -{"rang", IS_ZHUYIN|IS_PINYIN, 289}, -{"rao", IS_ZHUYIN|IS_PINYIN, 290}, -{"re", IS_ZHUYIN|IS_PINYIN, 291}, -{"regn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 293}, -{"remg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 293}, -{"ren", IS_ZHUYIN|IS_PINYIN, 292}, -{"reng", IS_ZHUYIN|IS_PINYIN, 293}, -{"ri", IS_ZHUYIN|IS_PINYIN, 294}, -{"rogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 295}, -{"romg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 295}, -{"ron", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 295}, -{"rong", IS_ZHUYIN|IS_PINYIN, 295}, -{"rou", IS_ZHUYIN|IS_PINYIN, 296}, -{"ru", IS_ZHUYIN|IS_PINYIN, 297}, -{"ruan", IS_ZHUYIN|IS_PINYIN, 299}, -{"ruei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 300}, -{"ruen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 301}, -{"rui", IS_ZHUYIN|IS_PINYIN, 300}, -{"run", IS_ZHUYIN|IS_PINYIN, 301}, -{"ruo", IS_ZHUYIN|IS_PINYIN, 302}, -{"s", IS_PINYIN|PINYIN_INCOMPLETE, 303}, -{"sa", IS_ZHUYIN|IS_PINYIN, 304}, -{"sagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 307}, -{"sai", IS_ZHUYIN|IS_PINYIN, 305}, -{"samg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 307}, -{"san", IS_ZHUYIN|IS_PINYIN, 306}, -{"sang", IS_ZHUYIN|IS_PINYIN, 307}, -{"sao", IS_ZHUYIN|IS_PINYIN, 308}, -{"se", IS_ZHUYIN|IS_PINYIN, 309}, -{"segn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 311}, -{"semg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 311}, -{"sen", IS_ZHUYIN|IS_PINYIN, 310}, -{"seng", IS_ZHUYIN|IS_PINYIN, 311}, -{"sh", IS_PINYIN|PINYIN_INCOMPLETE, 312}, -{"sha", IS_ZHUYIN|IS_PINYIN, 313}, -{"shagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 316}, -{"shai", IS_ZHUYIN|IS_PINYIN, 314}, -{"shamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 316}, -{"shan", IS_ZHUYIN|IS_PINYIN, 315}, -{"shang", IS_ZHUYIN|IS_PINYIN, 316}, -{"shao", IS_ZHUYIN|IS_PINYIN, 317}, -{"she", IS_ZHUYIN|IS_PINYIN, 318}, -{"shegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 321}, -{"shei", IS_ZHUYIN|IS_PINYIN, 319}, -{"shemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 321}, -{"shen", IS_ZHUYIN|IS_PINYIN, 320}, -{"sheng", IS_ZHUYIN|IS_PINYIN, 321}, -{"shi", IS_ZHUYIN|IS_PINYIN, 322}, -{"shou", IS_ZHUYIN|IS_PINYIN, 323}, -{"shu", IS_ZHUYIN|IS_PINYIN, 324}, -{"shua", IS_ZHUYIN|IS_PINYIN, 325}, -{"shuagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 328}, -{"shuai", IS_ZHUYIN|IS_PINYIN, 326}, -{"shuamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 328}, -{"shuan", IS_ZHUYIN|IS_PINYIN, 327}, -{"shuang", IS_ZHUYIN|IS_PINYIN, 328}, -{"shuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 329}, -{"shuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 330}, -{"shui", IS_ZHUYIN|IS_PINYIN, 329}, -{"shun", IS_ZHUYIN|IS_PINYIN, 330}, -{"shuo", IS_ZHUYIN|IS_PINYIN, 331}, -{"si", IS_ZHUYIN|IS_PINYIN, 332}, -{"sogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 333}, -{"somg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 333}, -{"son", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 333}, -{"song", IS_ZHUYIN|IS_PINYIN, 333}, -{"sou", IS_ZHUYIN|IS_PINYIN, 334}, -{"su", IS_ZHUYIN|IS_PINYIN, 335}, -{"suan", IS_ZHUYIN|IS_PINYIN, 336}, -{"suei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 337}, -{"suen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 338}, -{"sui", IS_ZHUYIN|IS_PINYIN, 337}, -{"sun", IS_ZHUYIN|IS_PINYIN, 338}, -{"suo", IS_ZHUYIN|IS_PINYIN, 339}, -{"t", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 340}, -{"ta", IS_ZHUYIN|IS_PINYIN, 341}, -{"tagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 344}, -{"tai", IS_ZHUYIN|IS_PINYIN, 342}, -{"tamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 344}, -{"tan", IS_ZHUYIN|IS_PINYIN, 343}, -{"tang", IS_ZHUYIN|IS_PINYIN, 344}, -{"tao", IS_ZHUYIN|IS_PINYIN, 345}, -{"te", IS_ZHUYIN|IS_PINYIN, 346}, -{"tegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 347}, -{"temg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 347}, -{"teng", IS_ZHUYIN|IS_PINYIN, 347}, -{"ti", IS_ZHUYIN|IS_PINYIN, 348}, -{"tian", IS_ZHUYIN|IS_PINYIN, 349}, -{"tiao", IS_ZHUYIN|IS_PINYIN, 350}, -{"tie", IS_ZHUYIN|IS_PINYIN, 351}, -{"tign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 352}, -{"timg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 352}, -{"ting", IS_ZHUYIN|IS_PINYIN, 352}, -{"togn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 353}, -{"tomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 353}, -{"ton", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 353}, -{"tong", IS_ZHUYIN|IS_PINYIN, 353}, -{"tou", IS_ZHUYIN|IS_PINYIN, 354}, -{"tu", IS_ZHUYIN|IS_PINYIN, 355}, -{"tuan", IS_ZHUYIN|IS_PINYIN, 356}, -{"tuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 357}, -{"tuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 358}, -{"tui", IS_ZHUYIN|IS_PINYIN, 357}, -{"tun", IS_ZHUYIN|IS_PINYIN, 358}, -{"tuo", IS_ZHUYIN|IS_PINYIN, 359}, -{"w", IS_PINYIN|PINYIN_INCOMPLETE, 360}, -{"wa", IS_ZHUYIN|IS_PINYIN, 361}, -{"wagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 364}, -{"wai", IS_ZHUYIN|IS_PINYIN, 362}, -{"wamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 364}, -{"wan", IS_ZHUYIN|IS_PINYIN, 363}, -{"wang", IS_ZHUYIN|IS_PINYIN, 364}, -{"wegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 367}, -{"wei", IS_ZHUYIN|IS_PINYIN, 365}, -{"wemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 367}, -{"wen", IS_ZHUYIN|IS_PINYIN, 366}, -{"weng", IS_ZHUYIN|IS_PINYIN, 367}, -{"wo", IS_ZHUYIN|IS_PINYIN, 368}, -{"wu", IS_ZHUYIN|IS_PINYIN, 369}, -{"x", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 370}, -{"xi", IS_ZHUYIN|IS_PINYIN, 371}, -{"xia", IS_ZHUYIN|IS_PINYIN, 372}, -{"xiagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 374}, -{"xiamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 374}, -{"xian", IS_ZHUYIN|IS_PINYIN, 373}, -{"xiang", IS_ZHUYIN|IS_PINYIN, 374}, -{"xiao", IS_ZHUYIN|IS_PINYIN, 375}, -{"xie", IS_ZHUYIN|IS_PINYIN, 376}, -{"xign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 378}, -{"ximg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 378}, -{"xin", IS_ZHUYIN|IS_PINYIN, 377}, -{"xing", IS_ZHUYIN|IS_PINYIN, 378}, -{"xiogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 379}, -{"xiomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 379}, -{"xion", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 379}, -{"xiong", IS_ZHUYIN|IS_PINYIN, 379}, -{"xiou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 380}, -{"xiu", IS_ZHUYIN|IS_PINYIN, 380}, -{"xu", IS_ZHUYIN|IS_PINYIN, 381}, -{"xuan", IS_ZHUYIN|IS_PINYIN, 382}, -{"xue", IS_ZHUYIN|IS_PINYIN, 383}, -{"xuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 384}, -{"xun", IS_ZHUYIN|IS_PINYIN, 384}, -{"xv", IS_PINYIN|PINYIN_CORRECT_V_U, 381}, -{"xvan", IS_PINYIN|PINYIN_CORRECT_V_U, 382}, -{"xve", IS_PINYIN|PINYIN_CORRECT_V_U, 383}, -{"xvn", IS_PINYIN|PINYIN_CORRECT_V_U, 384}, -{"y", IS_PINYIN|PINYIN_INCOMPLETE, 385}, -{"ya", IS_ZHUYIN|IS_PINYIN, 386}, -{"yagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 389}, -{"yamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 389}, -{"yan", IS_ZHUYIN|IS_PINYIN, 388}, -{"yang", IS_ZHUYIN|IS_PINYIN, 389}, -{"yao", IS_ZHUYIN|IS_PINYIN, 390}, -{"ye", IS_ZHUYIN|IS_PINYIN, 391}, -{"yi", IS_ZHUYIN|IS_PINYIN, 392}, -{"yign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 394}, -{"yimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 394}, -{"yin", IS_ZHUYIN|IS_PINYIN, 393}, -{"ying", IS_ZHUYIN|IS_PINYIN, 394}, -{"yo", IS_ZHUYIN|IS_PINYIN, 395}, -{"yogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 396}, -{"yomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 396}, -{"yon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 396}, -{"yong", IS_ZHUYIN|IS_PINYIN, 396}, -{"you", IS_ZHUYIN|IS_PINYIN, 397}, -{"yu", IS_ZHUYIN|IS_PINYIN, 398}, -{"yuan", IS_ZHUYIN|IS_PINYIN, 399}, -{"yue", IS_ZHUYIN|IS_PINYIN, 400}, -{"yuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 401}, -{"yun", IS_ZHUYIN|IS_PINYIN, 401}, -{"yv", IS_PINYIN|PINYIN_CORRECT_V_U, 398}, -{"yvan", IS_PINYIN|PINYIN_CORRECT_V_U, 399}, -{"yve", IS_PINYIN|PINYIN_CORRECT_V_U, 400}, -{"yvn", IS_PINYIN|PINYIN_CORRECT_V_U, 401}, -{"z", IS_PINYIN|PINYIN_INCOMPLETE, 402}, -{"za", IS_ZHUYIN|IS_PINYIN, 403}, -{"zagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 406}, -{"zai", IS_ZHUYIN|IS_PINYIN, 404}, -{"zamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 406}, -{"zan", IS_ZHUYIN|IS_PINYIN, 405}, -{"zang", IS_ZHUYIN|IS_PINYIN, 406}, -{"zao", IS_ZHUYIN|IS_PINYIN, 407}, -{"ze", IS_ZHUYIN|IS_PINYIN, 408}, -{"zegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 411}, -{"zei", IS_ZHUYIN|IS_PINYIN, 409}, -{"zemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 411}, -{"zen", IS_ZHUYIN|IS_PINYIN, 410}, -{"zeng", IS_ZHUYIN|IS_PINYIN, 411}, -{"zh", IS_PINYIN|PINYIN_INCOMPLETE, 412}, -{"zha", IS_ZHUYIN|IS_PINYIN, 413}, -{"zhagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 416}, -{"zhai", IS_ZHUYIN|IS_PINYIN, 414}, -{"zhamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 416}, -{"zhan", IS_ZHUYIN|IS_PINYIN, 415}, -{"zhang", IS_ZHUYIN|IS_PINYIN, 416}, -{"zhao", IS_ZHUYIN|IS_PINYIN, 417}, -{"zhe", IS_ZHUYIN|IS_PINYIN, 418}, -{"zhegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 421}, -{"zhemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 421}, -{"zhen", IS_ZHUYIN|IS_PINYIN, 420}, -{"zheng", IS_ZHUYIN|IS_PINYIN, 421}, -{"zhi", IS_ZHUYIN|IS_PINYIN, 422}, -{"zhogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 423}, -{"zhomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 423}, -{"zhon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 423}, -{"zhong", IS_ZHUYIN|IS_PINYIN, 423}, -{"zhou", IS_ZHUYIN|IS_PINYIN, 424}, -{"zhu", IS_ZHUYIN|IS_PINYIN, 425}, -{"zhua", IS_ZHUYIN|IS_PINYIN, 426}, -{"zhuagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 429}, -{"zhuai", IS_ZHUYIN|IS_PINYIN, 427}, -{"zhuamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 429}, -{"zhuan", IS_ZHUYIN|IS_PINYIN, 428}, -{"zhuang", IS_ZHUYIN|IS_PINYIN, 429}, -{"zhuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 430}, -{"zhuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 431}, -{"zhui", IS_ZHUYIN|IS_PINYIN, 430}, -{"zhun", IS_ZHUYIN|IS_PINYIN, 431}, -{"zhuo", IS_ZHUYIN|IS_PINYIN, 432}, -{"zi", IS_ZHUYIN|IS_PINYIN, 433}, -{"zogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 434}, -{"zomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 434}, -{"zon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 434}, -{"zong", IS_ZHUYIN|IS_PINYIN, 434}, -{"zou", IS_ZHUYIN|IS_PINYIN, 435}, -{"zu", IS_ZHUYIN|IS_PINYIN, 436}, -{"zuan", IS_ZHUYIN|IS_PINYIN, 437}, -{"zuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 438}, -{"zuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 439}, -{"zui", IS_ZHUYIN|IS_PINYIN, 438}, -{"zun", IS_ZHUYIN|IS_PINYIN, 439}, -{"zuo", IS_ZHUYIN|IS_PINYIN, 440} +{"a", IS_ZHUYIN|IS_PINYIN, 1, 0}, +{"agn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 4, 1}, +{"ai", IS_ZHUYIN|IS_PINYIN, 2, 0}, +{"amg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 4, 1}, +{"an", IS_ZHUYIN|IS_PINYIN, 3, 0}, +{"ang", IS_ZHUYIN|IS_PINYIN, 4, 0}, +{"ao", IS_ZHUYIN|IS_PINYIN, 5, 0}, +{"b", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 6, 0}, +{"ba", IS_ZHUYIN|IS_PINYIN, 7, 0}, +{"bagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 10, 1}, +{"bai", IS_ZHUYIN|IS_PINYIN, 8, 0}, +{"bamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 10, 1}, +{"ban", IS_ZHUYIN|IS_PINYIN, 9, 0}, +{"bang", IS_ZHUYIN|IS_PINYIN, 10, 0}, +{"bao", IS_ZHUYIN|IS_PINYIN, 11, 0}, +{"begn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 14, 1}, +{"bei", IS_ZHUYIN|IS_PINYIN, 12, 0}, +{"bemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 14, 1}, +{"ben", IS_ZHUYIN|IS_PINYIN, 13, 0}, +{"beng", IS_ZHUYIN|IS_PINYIN, 14, 0}, +{"bi", IS_ZHUYIN|IS_PINYIN, 15, 0}, +{"bian", IS_ZHUYIN|IS_PINYIN, 16, 0}, +{"biao", IS_ZHUYIN|IS_PINYIN, 17, 0}, +{"bie", IS_ZHUYIN|IS_PINYIN, 18, 0}, +{"bign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 20, 1}, +{"bimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 20, 1}, +{"bin", IS_ZHUYIN|IS_PINYIN, 19, 0}, +{"bing", IS_ZHUYIN|IS_PINYIN, 20, 0}, +{"bo", IS_ZHUYIN|IS_PINYIN, 21, 0}, +{"bu", IS_ZHUYIN|IS_PINYIN, 22, 0}, +{"c", IS_PINYIN|PINYIN_INCOMPLETE, 23, 0}, +{"ca", IS_ZHUYIN|IS_PINYIN, 24, 0}, +{"cagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 27, 1}, +{"cai", IS_ZHUYIN|IS_PINYIN, 25, 0}, +{"camg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 27, 1}, +{"can", IS_ZHUYIN|IS_PINYIN, 26, 0}, +{"cang", IS_ZHUYIN|IS_PINYIN, 27, 0}, +{"cao", IS_ZHUYIN|IS_PINYIN, 28, 0}, +{"ce", IS_ZHUYIN|IS_PINYIN, 29, 0}, +{"cegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 31, 1}, +{"cemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 31, 1}, +{"cen", IS_ZHUYIN|IS_PINYIN, 30, 0}, +{"ceng", IS_ZHUYIN|IS_PINYIN, 31, 0}, +{"ch", IS_PINYIN|PINYIN_INCOMPLETE, 32, 0}, +{"cha", IS_ZHUYIN|IS_PINYIN, 33, 0}, +{"chagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 36, 1}, +{"chai", IS_ZHUYIN|IS_PINYIN, 34, 0}, +{"chamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 36, 1}, +{"chan", IS_ZHUYIN|IS_PINYIN, 35, 0}, +{"chang", IS_ZHUYIN|IS_PINYIN, 36, 0}, +{"chao", IS_ZHUYIN|IS_PINYIN, 37, 0}, +{"che", IS_ZHUYIN|IS_PINYIN, 38, 0}, +{"chegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 40, 1}, +{"chemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 40, 1}, +{"chen", IS_ZHUYIN|IS_PINYIN, 39, 0}, +{"cheng", IS_ZHUYIN|IS_PINYIN, 40, 0}, +{"chi", IS_ZHUYIN|IS_PINYIN, 41, 0}, +{"chogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 42, 1}, +{"chomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 42, 1}, +{"chon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 42, 1}, +{"chong", IS_ZHUYIN|IS_PINYIN, 42, 0}, +{"chou", IS_ZHUYIN|IS_PINYIN, 43, 0}, +{"chu", IS_ZHUYIN|IS_PINYIN, 44, 0}, +{"chuagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 48, 1}, +{"chuai", IS_ZHUYIN|IS_PINYIN, 46, 0}, +{"chuamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 48, 1}, +{"chuan", IS_ZHUYIN|IS_PINYIN, 47, 0}, +{"chuang", IS_ZHUYIN|IS_PINYIN, 48, 0}, +{"chuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 49, 1}, +{"chuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 50, 1}, +{"chui", IS_ZHUYIN|IS_PINYIN, 49, 0}, +{"chun", IS_ZHUYIN|IS_PINYIN, 50, 0}, +{"chuo", IS_ZHUYIN|IS_PINYIN, 51, 0}, +{"ci", IS_ZHUYIN|IS_PINYIN, 52, 0}, +{"cogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 53, 1}, +{"comg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 53, 1}, +{"con", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 53, 1}, +{"cong", IS_ZHUYIN|IS_PINYIN, 53, 0}, +{"cou", IS_ZHUYIN|IS_PINYIN, 54, 0}, +{"cu", IS_ZHUYIN|IS_PINYIN, 55, 0}, +{"cuan", IS_ZHUYIN|IS_PINYIN, 56, 0}, +{"cuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 57, 1}, +{"cuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 58, 1}, +{"cui", IS_ZHUYIN|IS_PINYIN, 57, 0}, +{"cun", IS_ZHUYIN|IS_PINYIN, 58, 0}, +{"cuo", IS_ZHUYIN|IS_PINYIN, 59, 0}, +{"d", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 60, 0}, +{"da", IS_ZHUYIN|IS_PINYIN, 61, 0}, +{"dagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 64, 1}, +{"dai", IS_ZHUYIN|IS_PINYIN, 62, 0}, +{"damg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 64, 1}, +{"dan", IS_ZHUYIN|IS_PINYIN, 63, 0}, +{"dang", IS_ZHUYIN|IS_PINYIN, 64, 0}, +{"dao", IS_ZHUYIN|IS_PINYIN, 65, 0}, +{"de", IS_ZHUYIN|IS_PINYIN, 66, 0}, +{"degn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 69, 1}, +{"dei", IS_ZHUYIN|IS_PINYIN, 67, 0}, +{"demg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 69, 1}, +{"deng", IS_ZHUYIN|IS_PINYIN, 69, 0}, +{"di", IS_ZHUYIN|IS_PINYIN, 70, 0}, +{"dia", IS_ZHUYIN|IS_PINYIN, 71, 0}, +{"dian", IS_ZHUYIN|IS_PINYIN, 72, 0}, +{"diao", IS_ZHUYIN|IS_PINYIN, 73, 0}, +{"die", IS_ZHUYIN|IS_PINYIN, 74, 0}, +{"dign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 76, 1}, +{"dimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 76, 1}, +{"ding", IS_ZHUYIN|IS_PINYIN, 76, 0}, +{"diou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 77, 1}, +{"diu", IS_ZHUYIN|IS_PINYIN, 77, 0}, +{"dogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 78, 1}, +{"domg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 78, 1}, +{"don", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 78, 1}, +{"dong", IS_ZHUYIN|IS_PINYIN, 78, 0}, +{"dou", IS_ZHUYIN|IS_PINYIN, 79, 0}, +{"du", IS_ZHUYIN|IS_PINYIN, 80, 0}, +{"duan", IS_ZHUYIN|IS_PINYIN, 81, 0}, +{"duei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 82, 1}, +{"duen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 83, 1}, +{"dui", IS_ZHUYIN|IS_PINYIN, 82, 0}, +{"dun", IS_ZHUYIN|IS_PINYIN, 83, 0}, +{"duo", IS_ZHUYIN|IS_PINYIN, 84, 0}, +{"e", IS_ZHUYIN|IS_PINYIN, 85, 0}, +{"egn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 88, 1}, +{"ei", IS_ZHUYIN|IS_PINYIN, 86, 0}, +{"emg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 88, 1}, +{"en", IS_ZHUYIN|IS_PINYIN, 87, 0}, +{"er", IS_ZHUYIN|IS_PINYIN, 89, 0}, +{"f", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 90, 0}, +{"fa", IS_ZHUYIN|IS_PINYIN, 91, 0}, +{"fagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 93, 1}, +{"famg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 93, 1}, +{"fan", IS_ZHUYIN|IS_PINYIN, 92, 0}, +{"fang", IS_ZHUYIN|IS_PINYIN, 93, 0}, +{"fegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 97, 1}, +{"fei", IS_ZHUYIN|IS_PINYIN, 95, 0}, +{"femg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 97, 1}, +{"fen", IS_ZHUYIN|IS_PINYIN, 96, 0}, +{"feng", IS_ZHUYIN|IS_PINYIN, 97, 0}, +{"fo", IS_ZHUYIN|IS_PINYIN, 98, 0}, +{"fou", IS_ZHUYIN|IS_PINYIN, 99, 0}, +{"fu", IS_ZHUYIN|IS_PINYIN, 100, 0}, +{"g", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 101, 0}, +{"ga", IS_ZHUYIN|IS_PINYIN, 102, 0}, +{"gagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 105, 1}, +{"gai", IS_ZHUYIN|IS_PINYIN, 103, 0}, +{"gamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 105, 1}, +{"gan", IS_ZHUYIN|IS_PINYIN, 104, 0}, +{"gang", IS_ZHUYIN|IS_PINYIN, 105, 0}, +{"gao", IS_ZHUYIN|IS_PINYIN, 106, 0}, +{"ge", IS_ZHUYIN|IS_PINYIN, 107, 0}, +{"gegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 110, 1}, +{"gei", IS_ZHUYIN|IS_PINYIN, 108, 0}, +{"gemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 110, 1}, +{"gen", IS_ZHUYIN|IS_PINYIN, 109, 0}, +{"geng", IS_ZHUYIN|IS_PINYIN, 110, 0}, +{"gogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 111, 1}, +{"gomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 111, 1}, +{"gon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 111, 1}, +{"gong", IS_ZHUYIN|IS_PINYIN, 111, 0}, +{"gou", IS_ZHUYIN|IS_PINYIN, 112, 0}, +{"gu", IS_ZHUYIN|IS_PINYIN, 113, 0}, +{"gua", IS_ZHUYIN|IS_PINYIN, 114, 0}, +{"guagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 117, 1}, +{"guai", IS_ZHUYIN|IS_PINYIN, 115, 0}, +{"guamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 117, 1}, +{"guan", IS_ZHUYIN|IS_PINYIN, 116, 0}, +{"guang", IS_ZHUYIN|IS_PINYIN, 117, 0}, +{"guei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 118, 1}, +{"guen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 119, 1}, +{"gui", IS_ZHUYIN|IS_PINYIN, 118, 0}, +{"gun", IS_ZHUYIN|IS_PINYIN, 119, 0}, +{"guo", IS_ZHUYIN|IS_PINYIN, 120, 0}, +{"h", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 121, 0}, +{"ha", IS_ZHUYIN|IS_PINYIN, 122, 0}, +{"hagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 125, 1}, +{"hai", IS_ZHUYIN|IS_PINYIN, 123, 0}, +{"hamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 125, 1}, +{"han", IS_ZHUYIN|IS_PINYIN, 124, 0}, +{"hang", IS_ZHUYIN|IS_PINYIN, 125, 0}, +{"hao", IS_ZHUYIN|IS_PINYIN, 126, 0}, +{"he", IS_ZHUYIN|IS_PINYIN, 127, 0}, +{"hegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 130, 1}, +{"hei", IS_ZHUYIN|IS_PINYIN, 128, 0}, +{"hemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 130, 1}, +{"hen", IS_ZHUYIN|IS_PINYIN, 129, 0}, +{"heng", IS_ZHUYIN|IS_PINYIN, 130, 0}, +{"hogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 131, 1}, +{"homg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 131, 1}, +{"hon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 131, 1}, +{"hong", IS_ZHUYIN|IS_PINYIN, 131, 0}, +{"hou", IS_ZHUYIN|IS_PINYIN, 132, 0}, +{"hu", IS_ZHUYIN|IS_PINYIN, 133, 0}, +{"hua", IS_ZHUYIN|IS_PINYIN, 134, 0}, +{"huagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 137, 1}, +{"huai", IS_ZHUYIN|IS_PINYIN, 135, 0}, +{"huamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 137, 1}, +{"huan", IS_ZHUYIN|IS_PINYIN, 136, 0}, +{"huang", IS_ZHUYIN|IS_PINYIN, 137, 0}, +{"huei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 138, 1}, +{"huen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 139, 1}, +{"hui", IS_ZHUYIN|IS_PINYIN, 138, 0}, +{"hun", IS_ZHUYIN|IS_PINYIN, 139, 0}, +{"huo", IS_ZHUYIN|IS_PINYIN, 140, 0}, +{"j", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 141, 0}, +{"ji", IS_ZHUYIN|IS_PINYIN, 142, 0}, +{"jia", IS_ZHUYIN|IS_PINYIN, 143, 0}, +{"jiagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 145, 1}, +{"jiamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 145, 1}, +{"jian", IS_ZHUYIN|IS_PINYIN, 144, 0}, +{"jiang", IS_ZHUYIN|IS_PINYIN, 145, 0}, +{"jiao", IS_ZHUYIN|IS_PINYIN, 146, 0}, +{"jie", IS_ZHUYIN|IS_PINYIN, 147, 0}, +{"jign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 149, 1}, +{"jimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 149, 1}, +{"jin", IS_ZHUYIN|IS_PINYIN, 148, 0}, +{"jing", IS_ZHUYIN|IS_PINYIN, 149, 0}, +{"jiogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 150, 1}, +{"jiomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 150, 1}, +{"jion", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 150, 1}, +{"jiong", IS_ZHUYIN|IS_PINYIN, 150, 0}, +{"jiou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 151, 1}, +{"jiu", IS_ZHUYIN|IS_PINYIN, 151, 0}, +{"ju", IS_ZHUYIN|IS_PINYIN, 152, 0}, +{"juan", IS_ZHUYIN|IS_PINYIN, 153, 0}, +{"jue", IS_ZHUYIN|IS_PINYIN, 154, 0}, +{"juen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 155, 1}, +{"jun", IS_ZHUYIN|IS_PINYIN, 155, 0}, +{"jv", IS_PINYIN|PINYIN_CORRECT_V_U, 152, 1}, +{"jvan", IS_PINYIN|PINYIN_CORRECT_V_U, 153, 1}, +{"jve", IS_PINYIN|PINYIN_CORRECT_V_U, 154, 1}, +{"jvn", IS_PINYIN|PINYIN_CORRECT_V_U, 155, 1}, +{"k", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 156, 0}, +{"ka", IS_ZHUYIN|IS_PINYIN, 157, 0}, +{"kagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 160, 1}, +{"kai", IS_ZHUYIN|IS_PINYIN, 158, 0}, +{"kamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 160, 1}, +{"kan", IS_ZHUYIN|IS_PINYIN, 159, 0}, +{"kang", IS_ZHUYIN|IS_PINYIN, 160, 0}, +{"kao", IS_ZHUYIN|IS_PINYIN, 161, 0}, +{"ke", IS_ZHUYIN|IS_PINYIN, 162, 0}, +{"kegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 165, 1}, +{"kemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 165, 1}, +{"ken", IS_ZHUYIN|IS_PINYIN, 164, 0}, +{"keng", IS_ZHUYIN|IS_PINYIN, 165, 0}, +{"kogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 166, 1}, +{"komg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 166, 1}, +{"kon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 166, 1}, +{"kong", IS_ZHUYIN|IS_PINYIN, 166, 0}, +{"kou", IS_ZHUYIN|IS_PINYIN, 167, 0}, +{"ku", IS_ZHUYIN|IS_PINYIN, 168, 0}, +{"kua", IS_ZHUYIN|IS_PINYIN, 169, 0}, +{"kuagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 172, 1}, +{"kuai", IS_ZHUYIN|IS_PINYIN, 170, 0}, +{"kuamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 172, 1}, +{"kuan", IS_ZHUYIN|IS_PINYIN, 171, 0}, +{"kuang", IS_ZHUYIN|IS_PINYIN, 172, 0}, +{"kuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 173, 1}, +{"kuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 174, 1}, +{"kui", IS_ZHUYIN|IS_PINYIN, 173, 0}, +{"kun", IS_ZHUYIN|IS_PINYIN, 174, 0}, +{"kuo", IS_ZHUYIN|IS_PINYIN, 175, 0}, +{"l", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 176, 0}, +{"la", IS_ZHUYIN|IS_PINYIN, 177, 0}, +{"lagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 180, 1}, +{"lai", IS_ZHUYIN|IS_PINYIN, 178, 0}, +{"lamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 180, 1}, +{"lan", IS_ZHUYIN|IS_PINYIN, 179, 0}, +{"lang", IS_ZHUYIN|IS_PINYIN, 180, 0}, +{"lao", IS_ZHUYIN|IS_PINYIN, 181, 0}, +{"le", IS_ZHUYIN|IS_PINYIN, 182, 0}, +{"legn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 185, 1}, +{"lei", IS_ZHUYIN|IS_PINYIN, 183, 0}, +{"lemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 185, 1}, +{"leng", IS_ZHUYIN|IS_PINYIN, 185, 0}, +{"li", IS_ZHUYIN|IS_PINYIN, 186, 0}, +{"lia", IS_ZHUYIN|IS_PINYIN, 187, 0}, +{"liagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 189, 1}, +{"liamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 189, 1}, +{"lian", IS_ZHUYIN|IS_PINYIN, 188, 0}, +{"liang", IS_ZHUYIN|IS_PINYIN, 189, 0}, +{"liao", IS_ZHUYIN|IS_PINYIN, 190, 0}, +{"lie", IS_ZHUYIN|IS_PINYIN, 191, 0}, +{"lign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 193, 1}, +{"limg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 193, 1}, +{"lin", IS_ZHUYIN|IS_PINYIN, 192, 0}, +{"ling", IS_ZHUYIN|IS_PINYIN, 193, 0}, +{"liou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 194, 1}, +{"liu", IS_ZHUYIN|IS_PINYIN, 194, 0}, +{"lo", IS_ZHUYIN|IS_PINYIN, 195, 0}, +{"logn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 196, 1}, +{"lomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 196, 1}, +{"lon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 196, 1}, +{"long", IS_ZHUYIN|IS_PINYIN, 196, 0}, +{"lou", IS_ZHUYIN|IS_PINYIN, 197, 0}, +{"lu", IS_ZHUYIN|IS_PINYIN, 198, 0}, +{"luan", IS_ZHUYIN|IS_PINYIN, 199, 0}, +{"lue", IS_PINYIN|PINYIN_CORRECT_UE_VE, 203, 1}, +{"luen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 200, 1}, +{"lun", IS_ZHUYIN|IS_PINYIN, 200, 0}, +{"luo", IS_ZHUYIN|IS_PINYIN, 201, 0}, +{"lv", IS_ZHUYIN|IS_PINYIN, 202, 0}, +{"lve", IS_ZHUYIN|IS_PINYIN, 203, 0}, +{"m", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 204, 0}, +{"ma", IS_ZHUYIN|IS_PINYIN, 205, 0}, +{"magn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 208, 1}, +{"mai", IS_ZHUYIN|IS_PINYIN, 206, 0}, +{"mamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 208, 1}, +{"man", IS_ZHUYIN|IS_PINYIN, 207, 0}, +{"mang", IS_ZHUYIN|IS_PINYIN, 208, 0}, +{"mao", IS_ZHUYIN|IS_PINYIN, 209, 0}, +{"me", IS_ZHUYIN|IS_PINYIN, 210, 0}, +{"megn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 213, 1}, +{"mei", IS_ZHUYIN|IS_PINYIN, 211, 0}, +{"memg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 213, 1}, +{"men", IS_ZHUYIN|IS_PINYIN, 212, 0}, +{"meng", IS_ZHUYIN|IS_PINYIN, 213, 0}, +{"mi", IS_ZHUYIN|IS_PINYIN, 214, 0}, +{"mian", IS_ZHUYIN|IS_PINYIN, 215, 0}, +{"miao", IS_ZHUYIN|IS_PINYIN, 216, 0}, +{"mie", IS_ZHUYIN|IS_PINYIN, 217, 0}, +{"mign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 219, 1}, +{"mimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 219, 1}, +{"min", IS_ZHUYIN|IS_PINYIN, 218, 0}, +{"ming", IS_ZHUYIN|IS_PINYIN, 219, 0}, +{"miou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 220, 1}, +{"miu", IS_ZHUYIN|IS_PINYIN, 220, 0}, +{"mo", IS_ZHUYIN|IS_PINYIN, 221, 0}, +{"mou", IS_ZHUYIN|IS_PINYIN, 222, 0}, +{"mu", IS_ZHUYIN|IS_PINYIN, 223, 0}, +{"n", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 224, 0}, +{"na", IS_ZHUYIN|IS_PINYIN, 225, 0}, +{"nagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 228, 1}, +{"nai", IS_ZHUYIN|IS_PINYIN, 226, 0}, +{"namg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 228, 1}, +{"nan", IS_ZHUYIN|IS_PINYIN, 227, 0}, +{"nang", IS_ZHUYIN|IS_PINYIN, 228, 0}, +{"nao", IS_ZHUYIN|IS_PINYIN, 229, 0}, +{"ne", IS_ZHUYIN|IS_PINYIN, 230, 0}, +{"negn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 233, 1}, +{"nei", IS_ZHUYIN|IS_PINYIN, 231, 0}, +{"nemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 233, 1}, +{"nen", IS_ZHUYIN|IS_PINYIN, 232, 0}, +{"neng", IS_ZHUYIN|IS_PINYIN, 233, 0}, +{"ng", IS_ZHUYIN|IS_PINYIN, 234, 0}, +{"ni", IS_ZHUYIN|IS_PINYIN, 235, 0}, +{"niagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 238, 1}, +{"niamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 238, 1}, +{"nian", IS_ZHUYIN|IS_PINYIN, 237, 0}, +{"niang", IS_ZHUYIN|IS_PINYIN, 238, 0}, +{"niao", IS_ZHUYIN|IS_PINYIN, 239, 0}, +{"nie", IS_ZHUYIN|IS_PINYIN, 240, 0}, +{"nign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 242, 1}, +{"nimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 242, 1}, +{"nin", IS_ZHUYIN|IS_PINYIN, 241, 0}, +{"ning", IS_ZHUYIN|IS_PINYIN, 242, 0}, +{"niou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 243, 1}, +{"niu", IS_ZHUYIN|IS_PINYIN, 243, 0}, +{"nogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 244, 1}, +{"nomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 244, 1}, +{"non", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 244, 1}, +{"nong", IS_ZHUYIN|IS_PINYIN, 244, 0}, +{"nou", IS_ZHUYIN|IS_PINYIN, 245, 0}, +{"nu", IS_ZHUYIN|IS_PINYIN, 246, 0}, +{"nuan", IS_ZHUYIN|IS_PINYIN, 247, 0}, +{"nue", IS_PINYIN|PINYIN_CORRECT_UE_VE, 251, 1}, +{"nuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 248, 1}, +{"nuo", IS_ZHUYIN|IS_PINYIN, 249, 0}, +{"nv", IS_ZHUYIN|IS_PINYIN, 250, 0}, +{"nve", IS_ZHUYIN|IS_PINYIN, 251, 0}, +{"o", IS_ZHUYIN|IS_PINYIN, 252, 0}, +{"ou", IS_ZHUYIN|IS_PINYIN, 253, 0}, +{"p", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 254, 0}, +{"pa", IS_ZHUYIN|IS_PINYIN, 255, 0}, +{"pagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 258, 1}, +{"pai", IS_ZHUYIN|IS_PINYIN, 256, 0}, +{"pamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 258, 1}, +{"pan", IS_ZHUYIN|IS_PINYIN, 257, 0}, +{"pang", IS_ZHUYIN|IS_PINYIN, 258, 0}, +{"pao", IS_ZHUYIN|IS_PINYIN, 259, 0}, +{"pegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 262, 1}, +{"pei", IS_ZHUYIN|IS_PINYIN, 260, 0}, +{"pemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 262, 1}, +{"pen", IS_ZHUYIN|IS_PINYIN, 261, 0}, +{"peng", IS_ZHUYIN|IS_PINYIN, 262, 0}, +{"pi", IS_ZHUYIN|IS_PINYIN, 263, 0}, +{"pian", IS_ZHUYIN|IS_PINYIN, 264, 0}, +{"piao", IS_ZHUYIN|IS_PINYIN, 265, 0}, +{"pie", IS_ZHUYIN|IS_PINYIN, 266, 0}, +{"pign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 268, 1}, +{"pimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 268, 1}, +{"pin", IS_ZHUYIN|IS_PINYIN, 267, 0}, +{"ping", IS_ZHUYIN|IS_PINYIN, 268, 0}, +{"po", IS_ZHUYIN|IS_PINYIN, 269, 0}, +{"pou", IS_ZHUYIN|IS_PINYIN, 270, 0}, +{"pu", IS_ZHUYIN|IS_PINYIN, 271, 0}, +{"q", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 272, 0}, +{"qi", IS_ZHUYIN|IS_PINYIN, 273, 0}, +{"qia", IS_ZHUYIN|IS_PINYIN, 274, 0}, +{"qiagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 276, 1}, +{"qiamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 276, 1}, +{"qian", IS_ZHUYIN|IS_PINYIN, 275, 0}, +{"qiang", IS_ZHUYIN|IS_PINYIN, 276, 0}, +{"qiao", IS_ZHUYIN|IS_PINYIN, 277, 0}, +{"qie", IS_ZHUYIN|IS_PINYIN, 278, 0}, +{"qign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 280, 1}, +{"qimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 280, 1}, +{"qin", IS_ZHUYIN|IS_PINYIN, 279, 0}, +{"qing", IS_ZHUYIN|IS_PINYIN, 280, 0}, +{"qiogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 281, 1}, +{"qiomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 281, 1}, +{"qion", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 281, 1}, +{"qiong", IS_ZHUYIN|IS_PINYIN, 281, 0}, +{"qiou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 282, 1}, +{"qiu", IS_ZHUYIN|IS_PINYIN, 282, 0}, +{"qu", IS_ZHUYIN|IS_PINYIN, 283, 0}, +{"quan", IS_ZHUYIN|IS_PINYIN, 284, 0}, +{"que", IS_ZHUYIN|IS_PINYIN, 285, 0}, +{"quen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 286, 1}, +{"qun", IS_ZHUYIN|IS_PINYIN, 286, 0}, +{"qv", IS_PINYIN|PINYIN_CORRECT_V_U, 283, 1}, +{"qvan", IS_PINYIN|PINYIN_CORRECT_V_U, 284, 1}, +{"qve", IS_PINYIN|PINYIN_CORRECT_V_U, 285, 1}, +{"qvn", IS_PINYIN|PINYIN_CORRECT_V_U, 286, 1}, +{"r", IS_PINYIN|PINYIN_INCOMPLETE, 287, 0}, +{"ragn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 289, 1}, +{"ramg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 289, 1}, +{"ran", IS_ZHUYIN|IS_PINYIN, 288, 0}, +{"rang", IS_ZHUYIN|IS_PINYIN, 289, 0}, +{"rao", IS_ZHUYIN|IS_PINYIN, 290, 0}, +{"re", IS_ZHUYIN|IS_PINYIN, 291, 0}, +{"regn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 293, 1}, +{"remg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 293, 1}, +{"ren", IS_ZHUYIN|IS_PINYIN, 292, 0}, +{"reng", IS_ZHUYIN|IS_PINYIN, 293, 0}, +{"ri", IS_ZHUYIN|IS_PINYIN, 294, 0}, +{"rogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 295, 1}, +{"romg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 295, 1}, +{"ron", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 295, 1}, +{"rong", IS_ZHUYIN|IS_PINYIN, 295, 0}, +{"rou", IS_ZHUYIN|IS_PINYIN, 296, 0}, +{"ru", IS_ZHUYIN|IS_PINYIN, 297, 0}, +{"ruan", IS_ZHUYIN|IS_PINYIN, 299, 0}, +{"ruei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 300, 1}, +{"ruen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 301, 1}, +{"rui", IS_ZHUYIN|IS_PINYIN, 300, 0}, +{"run", IS_ZHUYIN|IS_PINYIN, 301, 0}, +{"ruo", IS_ZHUYIN|IS_PINYIN, 302, 0}, +{"s", IS_PINYIN|PINYIN_INCOMPLETE, 303, 0}, +{"sa", IS_ZHUYIN|IS_PINYIN, 304, 0}, +{"sagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 307, 1}, +{"sai", IS_ZHUYIN|IS_PINYIN, 305, 0}, +{"samg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 307, 1}, +{"san", IS_ZHUYIN|IS_PINYIN, 306, 0}, +{"sang", IS_ZHUYIN|IS_PINYIN, 307, 0}, +{"sao", IS_ZHUYIN|IS_PINYIN, 308, 0}, +{"se", IS_ZHUYIN|IS_PINYIN, 309, 0}, +{"segn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 311, 1}, +{"semg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 311, 1}, +{"sen", IS_ZHUYIN|IS_PINYIN, 310, 0}, +{"seng", IS_ZHUYIN|IS_PINYIN, 311, 0}, +{"sh", IS_PINYIN|PINYIN_INCOMPLETE, 312, 0}, +{"sha", IS_ZHUYIN|IS_PINYIN, 313, 0}, +{"shagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 316, 1}, +{"shai", IS_ZHUYIN|IS_PINYIN, 314, 0}, +{"shamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 316, 1}, +{"shan", IS_ZHUYIN|IS_PINYIN, 315, 0}, +{"shang", IS_ZHUYIN|IS_PINYIN, 316, 0}, +{"shao", IS_ZHUYIN|IS_PINYIN, 317, 0}, +{"she", IS_ZHUYIN|IS_PINYIN, 318, 0}, +{"shegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 321, 1}, +{"shei", IS_ZHUYIN|IS_PINYIN, 319, 0}, +{"shemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 321, 1}, +{"shen", IS_ZHUYIN|IS_PINYIN, 320, 0}, +{"sheng", IS_ZHUYIN|IS_PINYIN, 321, 0}, +{"shi", IS_ZHUYIN|IS_PINYIN, 322, 0}, +{"shou", IS_ZHUYIN|IS_PINYIN, 323, 0}, +{"shu", IS_ZHUYIN|IS_PINYIN, 324, 0}, +{"shua", IS_ZHUYIN|IS_PINYIN, 325, 0}, +{"shuagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 328, 1}, +{"shuai", IS_ZHUYIN|IS_PINYIN, 326, 0}, +{"shuamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 328, 1}, +{"shuan", IS_ZHUYIN|IS_PINYIN, 327, 0}, +{"shuang", IS_ZHUYIN|IS_PINYIN, 328, 0}, +{"shuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 329, 1}, +{"shuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 330, 1}, +{"shui", IS_ZHUYIN|IS_PINYIN, 329, 0}, +{"shun", IS_ZHUYIN|IS_PINYIN, 330, 0}, +{"shuo", IS_ZHUYIN|IS_PINYIN, 331, 0}, +{"si", IS_ZHUYIN|IS_PINYIN, 332, 0}, +{"sogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 333, 1}, +{"somg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 333, 1}, +{"son", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 333, 1}, +{"song", IS_ZHUYIN|IS_PINYIN, 333, 0}, +{"sou", IS_ZHUYIN|IS_PINYIN, 334, 0}, +{"su", IS_ZHUYIN|IS_PINYIN, 335, 0}, +{"suan", IS_ZHUYIN|IS_PINYIN, 336, 0}, +{"suei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 337, 1}, +{"suen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 338, 1}, +{"sui", IS_ZHUYIN|IS_PINYIN, 337, 0}, +{"sun", IS_ZHUYIN|IS_PINYIN, 338, 0}, +{"suo", IS_ZHUYIN|IS_PINYIN, 339, 0}, +{"t", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 340, 0}, +{"ta", IS_ZHUYIN|IS_PINYIN, 341, 0}, +{"tagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 344, 1}, +{"tai", IS_ZHUYIN|IS_PINYIN, 342, 0}, +{"tamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 344, 1}, +{"tan", IS_ZHUYIN|IS_PINYIN, 343, 0}, +{"tang", IS_ZHUYIN|IS_PINYIN, 344, 0}, +{"tao", IS_ZHUYIN|IS_PINYIN, 345, 0}, +{"te", IS_ZHUYIN|IS_PINYIN, 346, 0}, +{"tegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 347, 1}, +{"temg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 347, 1}, +{"teng", IS_ZHUYIN|IS_PINYIN, 347, 0}, +{"ti", IS_ZHUYIN|IS_PINYIN, 348, 0}, +{"tian", IS_ZHUYIN|IS_PINYIN, 349, 0}, +{"tiao", IS_ZHUYIN|IS_PINYIN, 350, 0}, +{"tie", IS_ZHUYIN|IS_PINYIN, 351, 0}, +{"tign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 352, 1}, +{"timg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 352, 1}, +{"ting", IS_ZHUYIN|IS_PINYIN, 352, 0}, +{"togn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 353, 1}, +{"tomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 353, 1}, +{"ton", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 353, 1}, +{"tong", IS_ZHUYIN|IS_PINYIN, 353, 0}, +{"tou", IS_ZHUYIN|IS_PINYIN, 354, 0}, +{"tu", IS_ZHUYIN|IS_PINYIN, 355, 0}, +{"tuan", IS_ZHUYIN|IS_PINYIN, 356, 0}, +{"tuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 357, 1}, +{"tuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 358, 1}, +{"tui", IS_ZHUYIN|IS_PINYIN, 357, 0}, +{"tun", IS_ZHUYIN|IS_PINYIN, 358, 0}, +{"tuo", IS_ZHUYIN|IS_PINYIN, 359, 0}, +{"w", IS_PINYIN|PINYIN_INCOMPLETE, 360, 0}, +{"wa", IS_ZHUYIN|IS_PINYIN, 361, 0}, +{"wagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 364, 1}, +{"wai", IS_ZHUYIN|IS_PINYIN, 362, 0}, +{"wamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 364, 1}, +{"wan", IS_ZHUYIN|IS_PINYIN, 363, 0}, +{"wang", IS_ZHUYIN|IS_PINYIN, 364, 0}, +{"wegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 367, 1}, +{"wei", IS_ZHUYIN|IS_PINYIN, 365, 0}, +{"wemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 367, 1}, +{"wen", IS_ZHUYIN|IS_PINYIN, 366, 0}, +{"weng", IS_ZHUYIN|IS_PINYIN, 367, 0}, +{"wo", IS_ZHUYIN|IS_PINYIN, 368, 0}, +{"wu", IS_ZHUYIN|IS_PINYIN, 369, 0}, +{"x", IS_ZHUYIN|IS_PINYIN|PINYIN_INCOMPLETE|ZHUYIN_INCOMPLETE, 370, 0}, +{"xi", IS_ZHUYIN|IS_PINYIN, 371, 0}, +{"xia", IS_ZHUYIN|IS_PINYIN, 372, 0}, +{"xiagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 374, 1}, +{"xiamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 374, 1}, +{"xian", IS_ZHUYIN|IS_PINYIN, 373, 0}, +{"xiang", IS_ZHUYIN|IS_PINYIN, 374, 0}, +{"xiao", IS_ZHUYIN|IS_PINYIN, 375, 0}, +{"xie", IS_ZHUYIN|IS_PINYIN, 376, 0}, +{"xign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 378, 1}, +{"ximg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 378, 1}, +{"xin", IS_ZHUYIN|IS_PINYIN, 377, 0}, +{"xing", IS_ZHUYIN|IS_PINYIN, 378, 0}, +{"xiogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 379, 1}, +{"xiomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 379, 1}, +{"xion", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 379, 1}, +{"xiong", IS_ZHUYIN|IS_PINYIN, 379, 0}, +{"xiou", IS_PINYIN|PINYIN_CORRECT_IOU_IU, 380, 1}, +{"xiu", IS_ZHUYIN|IS_PINYIN, 380, 0}, +{"xu", IS_ZHUYIN|IS_PINYIN, 381, 0}, +{"xuan", IS_ZHUYIN|IS_PINYIN, 382, 0}, +{"xue", IS_ZHUYIN|IS_PINYIN, 383, 0}, +{"xuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 384, 1}, +{"xun", IS_ZHUYIN|IS_PINYIN, 384, 0}, +{"xv", IS_PINYIN|PINYIN_CORRECT_V_U, 381, 1}, +{"xvan", IS_PINYIN|PINYIN_CORRECT_V_U, 382, 1}, +{"xve", IS_PINYIN|PINYIN_CORRECT_V_U, 383, 1}, +{"xvn", IS_PINYIN|PINYIN_CORRECT_V_U, 384, 1}, +{"y", IS_PINYIN|PINYIN_INCOMPLETE, 385, 0}, +{"ya", IS_ZHUYIN|IS_PINYIN, 386, 0}, +{"yagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 389, 1}, +{"yamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 389, 1}, +{"yan", IS_ZHUYIN|IS_PINYIN, 388, 0}, +{"yang", IS_ZHUYIN|IS_PINYIN, 389, 0}, +{"yao", IS_ZHUYIN|IS_PINYIN, 390, 0}, +{"ye", IS_ZHUYIN|IS_PINYIN, 391, 0}, +{"yi", IS_ZHUYIN|IS_PINYIN, 392, 0}, +{"yign", IS_PINYIN|PINYIN_CORRECT_GN_NG, 394, 1}, +{"yimg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 394, 1}, +{"yin", IS_ZHUYIN|IS_PINYIN, 393, 0}, +{"ying", IS_ZHUYIN|IS_PINYIN, 394, 0}, +{"yo", IS_ZHUYIN|IS_PINYIN, 395, 0}, +{"yogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 396, 1}, +{"yomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 396, 1}, +{"yon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 396, 1}, +{"yong", IS_ZHUYIN|IS_PINYIN, 396, 0}, +{"you", IS_ZHUYIN|IS_PINYIN, 397, 0}, +{"yu", IS_ZHUYIN|IS_PINYIN, 398, 0}, +{"yuan", IS_ZHUYIN|IS_PINYIN, 399, 0}, +{"yue", IS_ZHUYIN|IS_PINYIN, 400, 0}, +{"yuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 401, 1}, +{"yun", IS_ZHUYIN|IS_PINYIN, 401, 0}, +{"yv", IS_PINYIN|PINYIN_CORRECT_V_U, 398, 1}, +{"yvan", IS_PINYIN|PINYIN_CORRECT_V_U, 399, 1}, +{"yve", IS_PINYIN|PINYIN_CORRECT_V_U, 400, 1}, +{"yvn", IS_PINYIN|PINYIN_CORRECT_V_U, 401, 1}, +{"z", IS_PINYIN|PINYIN_INCOMPLETE, 402, 0}, +{"za", IS_ZHUYIN|IS_PINYIN, 403, 0}, +{"zagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 406, 1}, +{"zai", IS_ZHUYIN|IS_PINYIN, 404, 0}, +{"zamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 406, 1}, +{"zan", IS_ZHUYIN|IS_PINYIN, 405, 0}, +{"zang", IS_ZHUYIN|IS_PINYIN, 406, 0}, +{"zao", IS_ZHUYIN|IS_PINYIN, 407, 0}, +{"ze", IS_ZHUYIN|IS_PINYIN, 408, 0}, +{"zegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 411, 1}, +{"zei", IS_ZHUYIN|IS_PINYIN, 409, 0}, +{"zemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 411, 1}, +{"zen", IS_ZHUYIN|IS_PINYIN, 410, 0}, +{"zeng", IS_ZHUYIN|IS_PINYIN, 411, 0}, +{"zh", IS_PINYIN|PINYIN_INCOMPLETE, 412, 0}, +{"zha", IS_ZHUYIN|IS_PINYIN, 413, 0}, +{"zhagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 416, 1}, +{"zhai", IS_ZHUYIN|IS_PINYIN, 414, 0}, +{"zhamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 416, 1}, +{"zhan", IS_ZHUYIN|IS_PINYIN, 415, 0}, +{"zhang", IS_ZHUYIN|IS_PINYIN, 416, 0}, +{"zhao", IS_ZHUYIN|IS_PINYIN, 417, 0}, +{"zhe", IS_ZHUYIN|IS_PINYIN, 418, 0}, +{"zhegn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 421, 1}, +{"zhemg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 421, 1}, +{"zhen", IS_ZHUYIN|IS_PINYIN, 420, 0}, +{"zheng", IS_ZHUYIN|IS_PINYIN, 421, 0}, +{"zhi", IS_ZHUYIN|IS_PINYIN, 422, 0}, +{"zhogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 423, 1}, +{"zhomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 423, 1}, +{"zhon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 423, 1}, +{"zhong", IS_ZHUYIN|IS_PINYIN, 423, 0}, +{"zhou", IS_ZHUYIN|IS_PINYIN, 424, 0}, +{"zhu", IS_ZHUYIN|IS_PINYIN, 425, 0}, +{"zhua", IS_ZHUYIN|IS_PINYIN, 426, 0}, +{"zhuagn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 429, 1}, +{"zhuai", IS_ZHUYIN|IS_PINYIN, 427, 0}, +{"zhuamg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 429, 1}, +{"zhuan", IS_ZHUYIN|IS_PINYIN, 428, 0}, +{"zhuang", IS_ZHUYIN|IS_PINYIN, 429, 0}, +{"zhuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 430, 1}, +{"zhuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 431, 1}, +{"zhui", IS_ZHUYIN|IS_PINYIN, 430, 0}, +{"zhun", IS_ZHUYIN|IS_PINYIN, 431, 0}, +{"zhuo", IS_ZHUYIN|IS_PINYIN, 432, 0}, +{"zi", IS_ZHUYIN|IS_PINYIN, 433, 0}, +{"zogn", IS_PINYIN|PINYIN_CORRECT_GN_NG, 434, 1}, +{"zomg", IS_PINYIN|PINYIN_CORRECT_MG_NG, 434, 1}, +{"zon", IS_PINYIN|PINYIN_CORRECT_ON_ONG, 434, 1}, +{"zong", IS_ZHUYIN|IS_PINYIN, 434, 0}, +{"zou", IS_ZHUYIN|IS_PINYIN, 435, 0}, +{"zu", IS_ZHUYIN|IS_PINYIN, 436, 0}, +{"zuan", IS_ZHUYIN|IS_PINYIN, 437, 0}, +{"zuei", IS_PINYIN|PINYIN_CORRECT_UEI_UI, 438, 1}, +{"zuen", IS_PINYIN|PINYIN_CORRECT_UEN_UN, 439, 1}, +{"zui", IS_ZHUYIN|IS_PINYIN, 438, 0}, +{"zun", IS_ZHUYIN|IS_PINYIN, 439, 0}, +{"zuo", IS_ZHUYIN|IS_PINYIN, 440, 0} }; const pinyin_index_item_t luoma_pinyin_index[] = { diff --git a/src/storage/special_table.h b/src/storage/special_table.h index e2cb2ab..7916a65 100644 --- a/src/storage/special_table.h +++ b/src/storage/special_table.h @@ -7,26 +7,26 @@ namespace pinyin{ const divided_table_item_t divided_table[] = { -{"bian", ChewingKey(CHEWING_B, CHEWING_I, CHEWING_AN), 182478, {"bi", "an"}, {ChewingKey(CHEWING_B, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, -{"bie", ChewingKey(CHEWING_B, CHEWING_I, CHEWING_E), 63919, {"bi", "e"}, {ChewingKey(CHEWING_B, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_E)}, 100}, -{"dian", ChewingKey(CHEWING_D, CHEWING_I, CHEWING_AN), 179799, {"di", "an"}, {ChewingKey(CHEWING_D, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, -{"jian", ChewingKey(CHEWING_J, CHEWING_I, CHEWING_AN), 435752, {"ji", "an"}, {ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 200}, -{"jiang", ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ANG), 139834, {"ji", "ang"}, {ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_ANG)}, 100}, -{"jie", ChewingKey(CHEWING_J, CHEWING_I, CHEWING_E), 294175, {"ji", "e"}, {ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_E)}, 100}, -{"jue", ChewingKey(CHEWING_J, CHEWING_V, CHEWING_E), 119987, {"ju", "e"}, {ChewingKey(CHEWING_J, CHEWING_V, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_E)}, 100}, -{"kuai", ChewingKey(CHEWING_K, CHEWING_U, CHEWING_AI), 63367, {"ku", "ai"}, {ChewingKey(CHEWING_K, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AI)}, 100}, -{"lian", ChewingKey(CHEWING_L, CHEWING_I, CHEWING_AN), 130021, {"li", "an"}, {ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, -{"liang", ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ANG), 185438, {"li", "ang"}, {ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_ANG)}, 100}, -{"liao", ChewingKey(CHEWING_L, CHEWING_I, CHEWING_AO), 39355, {"li", "ao"}, {ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AO)}, 100}, -{"luan", ChewingKey(CHEWING_L, CHEWING_U, CHEWING_AN), 17609, {"lu", "an"}, {ChewingKey(CHEWING_L, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, -{"qian", ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_AN), 195129, {"qi", "an"}, {ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, -{"qie", ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_E), 70219, {"qi", "e"}, {ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_E)}, 100}, -{"shuan", ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_AN), 1114, {"shu", "an"}, {ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, -{"tian", ChewingKey(CHEWING_T, CHEWING_I, CHEWING_AN), 185905, {"ti", "an"}, {ChewingKey(CHEWING_T, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, -{"tuan", ChewingKey(CHEWING_T, CHEWING_U, CHEWING_AN), 17287, {"tu", "an"}, {ChewingKey(CHEWING_T, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, -{"xian", ChewingKey(CHEWING_X, CHEWING_I, CHEWING_AN), 280991, {"xi", "an"}, {ChewingKey(CHEWING_X, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 300}, -{"yuan", ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_AN), 280423, {"yu", "an"}, {ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, -{"zuan", ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_AN), 4016, {"zu", "an"}, {ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100} +{"bian", ChewingKey(CHEWING_B, CHEWING_I, CHEWING_AN), 186355, {"bi", "an"}, {ChewingKey(CHEWING_B, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, +{"bie", ChewingKey(CHEWING_B, CHEWING_I, CHEWING_E), 64222, {"bi", "e"}, {ChewingKey(CHEWING_B, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_E)}, 100}, +{"dian", ChewingKey(CHEWING_D, CHEWING_I, CHEWING_AN), 188221, {"di", "an"}, {ChewingKey(CHEWING_D, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, +{"jian", ChewingKey(CHEWING_J, CHEWING_I, CHEWING_AN), 437479, {"ji", "an"}, {ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 200}, +{"jiang", ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ANG), 143291, {"ji", "ang"}, {ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_ANG)}, 100}, +{"jie", ChewingKey(CHEWING_J, CHEWING_I, CHEWING_E), 296581, {"ji", "e"}, {ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_E)}, 100}, +{"jue", ChewingKey(CHEWING_J, CHEWING_V, CHEWING_E), 121283, {"ju", "e"}, {ChewingKey(CHEWING_J, CHEWING_V, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_E)}, 100}, +{"kuai", ChewingKey(CHEWING_K, CHEWING_U, CHEWING_AI), 63850, {"ku", "ai"}, {ChewingKey(CHEWING_K, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AI)}, 100}, +{"lian", ChewingKey(CHEWING_L, CHEWING_I, CHEWING_AN), 130229, {"li", "an"}, {ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, +{"liang", ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ANG), 185582, {"li", "ang"}, {ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_ANG)}, 100}, +{"liao", ChewingKey(CHEWING_L, CHEWING_I, CHEWING_AO), 39576, {"li", "ao"}, {ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AO)}, 100}, +{"luan", ChewingKey(CHEWING_L, CHEWING_U, CHEWING_AN), 17886, {"lu", "an"}, {ChewingKey(CHEWING_L, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, +{"qian", ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_AN), 197450, {"qi", "an"}, {ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, +{"qie", ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_E), 70968, {"qi", "e"}, {ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_E)}, 100}, +{"shuan", ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_AN), 1147, {"shu", "an"}, {ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, +{"tian", ChewingKey(CHEWING_T, CHEWING_I, CHEWING_AN), 187548, {"ti", "an"}, {ChewingKey(CHEWING_T, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, +{"tuan", ChewingKey(CHEWING_T, CHEWING_U, CHEWING_AN), 17753, {"tu", "an"}, {ChewingKey(CHEWING_T, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, +{"xian", ChewingKey(CHEWING_X, CHEWING_I, CHEWING_AN), 293766, {"xi", "an"}, {ChewingKey(CHEWING_X, CHEWING_I, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 300}, +{"yuan", ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_AN), 281173, {"yu", "an"}, {ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100}, +{"zuan", ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_AN), 4795, {"zu", "an"}, {ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_ZERO_FINAL), ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_AN)}, 100} }; const resplit_table_item_t resplit_table[] = { diff --git a/src/storage/table_info.cpp b/src/storage/table_info.cpp index bd9b03f..9fe3865 100644 --- a/src/storage/table_info.cpp +++ b/src/storage/table_info.cpp @@ -196,7 +196,7 @@ bool SystemTableInfo2::load(const char * filename) { TABLE_PHONETIC_TYPE type = PINYIN_TABLE; char str[256]; - num = fscanf(input, "source table format:%256s", str); + num = fscanf(input, "source table format:%255s", str); type = to_table_phonetic_type(str); #if 0 @@ -216,7 +216,7 @@ bool SystemTableInfo2::load(const char * filename) { char tableinfo[256], dictstr[256]; char tablefile[256], sysfile[256], userfile[256], filetype[256]; while (!feof(input)) { - num = fscanf(input, "%256s %256s %256s %256s %256s %256s\n", + num = fscanf(input, "%255s %255s %255s %255s %255s %255s\n", tableinfo, dictstr, tablefile, sysfile, userfile, filetype); diff --git a/src/storage/tag_utility.h b/src/storage/tag_utility.h index 2e726cd..dd37030 100644 --- a/src/storage/tag_utility.h +++ b/src/storage/tag_utility.h @@ -143,7 +143,7 @@ bool taglib_validate_token_with_string(FacadePhraseIndex * phrase_index, /* Note: the following function is only available when the optional tag exists. bool taglib_report_status(int line_type); */ -/* Note: taglib_write is omited, as printf is more suitable for this. */ +/* Note: taglib_write is omitted, as printf is more suitable for this. */ }; diff --git a/src/storage/zhuyin_parser2.cpp b/src/storage/zhuyin_parser2.cpp index 9ae7fbd..e711b76 100644 --- a/src/storage/zhuyin_parser2.cpp +++ b/src/storage/zhuyin_parser2.cpp @@ -160,6 +160,7 @@ static int search_chewing_symbols2(const zhuyin_symbol_item_t * symbol_table, bool ZhuyinSimpleParser2::parse_one_key(pinyin_option_t options, ChewingKey & key, + gint16 & distance, const char * str, int len) const { options &= ~PINYIN_AMB_ALL; unsigned char tone = CHEWING_ZERO_TONE; @@ -240,9 +241,10 @@ int ZhuyinSimpleParser2::parse(pinyin_option_t options, i = std_lite::min(maximum_len - parsed_len, (int)max_chewing_length); + gint16 distance = 0; ChewingKey key; ChewingKeyRest key_rest; for (; i > 0; --i) { - bool success = parse_one_key(options, key, cur_str, i); + bool success = parse_one_key(options, key, distance, cur_str, i); if (success) break; } @@ -250,6 +252,9 @@ int ZhuyinSimpleParser2::parse(pinyin_option_t options, if (0 == i) /* no more possible chewings. */ break; + if (!key.is_valid_zhuyin()) + break; + key_rest.m_raw_begin = parsed_len; key_rest.m_raw_end = parsed_len + i; parsed_len += i; @@ -328,6 +333,7 @@ bool ZhuyinSimpleParser2::in_chewing_scheme(pinyin_option_t options, bool ZhuyinDiscreteParser2::parse_one_key(pinyin_option_t options, ChewingKey & key, + gint16 & distance, const char * str, int len) const { if (0 == len) return false; @@ -427,9 +433,10 @@ int ZhuyinDiscreteParser2::parse(pinyin_option_t options, i = std_lite::min(maximum_len - parsed_len, (int)max_chewing_length); + gint16 distance = 0; ChewingKey key; ChewingKeyRest key_rest; for (; i > 0; --i) { - bool success = parse_one_key(options, key, cur_str, i); + bool success = parse_one_key(options, key, distance, cur_str, i); if (success) break; } @@ -437,6 +444,9 @@ int ZhuyinDiscreteParser2::parse(pinyin_option_t options, if (0 == i) /* no more possible chewings. */ break; + if (!key.is_valid_zhuyin()) + break; + key_rest.m_raw_begin = parsed_len; key_rest.m_raw_end = parsed_len + i; parsed_len += i; @@ -561,6 +571,7 @@ static int count_same_chars(const char * str, int len) { bool ZhuyinDaChenCP26Parser2::parse_one_key(pinyin_option_t options, ChewingKey & key, + gint16 & distance, const char *str, int len) const { if (0 == len) return false; @@ -725,15 +736,16 @@ int ZhuyinDaChenCP26Parser2::parse(pinyin_option_t options, /* maximum forward match for chewing. */ int parsed_len = 0; const char * cur_str = NULL; - ChewingKey key; ChewingKeyRest key_rest; while (parsed_len < maximum_len) { cur_str = str + parsed_len; i = std_lite::min(maximum_len - parsed_len, (int)max_chewing_dachen26_length); + gint16 distance = 0; + ChewingKey key; ChewingKeyRest key_rest; for (; i > 0; --i) { - bool success = parse_one_key(options, key, cur_str, i); + bool success = parse_one_key(options, key, distance, cur_str, i); if (success) break; } @@ -741,6 +753,9 @@ int ZhuyinDaChenCP26Parser2::parse(pinyin_option_t options, if (0 == i) /* no more possible chewings. */ break; + if (!key.is_valid_zhuyin()) + break; + key_rest.m_raw_begin = parsed_len; key_rest.m_raw_end = parsed_len + i; parsed_len += i; @@ -762,6 +777,9 @@ int ZhuyinDaChenCP26Parser2::parse(pinyin_option_t options, break; } + if (!key.is_valid_zhuyin()) + return parsed_len; + if (i > 0) { /* found one */ key_rest.m_raw_begin = parsed_len; key_rest.m_raw_end = parsed_len + i; parsed_len += i; @@ -839,6 +857,7 @@ ZhuyinDirectParser2::ZhuyinDirectParser2 (){ bool ZhuyinDirectParser2::parse_one_key(pinyin_option_t options, ChewingKey & key, + gint16 & distance, const char *str, int len) const { options &= ~PINYIN_AMB_ALL; /* by default, chewing will use the first tone. */ @@ -898,8 +917,6 @@ int ZhuyinDirectParser2::parse(pinyin_option_t options, g_array_set_size(keys, 0); g_array_set_size(key_rests, 0); - ChewingKey key; ChewingKeyRest key_rest; - int parsed_len = 0; int i = 0, cur = 0, next = 0; while (cur < len) { @@ -910,7 +927,16 @@ int ZhuyinDirectParser2::parse(pinyin_option_t options, } next = i; - if (parse_one_key(options, key, str + cur, next - cur)) { + gint16 distance = 0; + ChewingKey key; ChewingKeyRest key_rest; + if (parse_one_key(options, key, distance, str + cur, next - cur)) { +#if 0 + /* as direct parser handles data source, + assume the data is correct when loading. */ + if (!key.is_valid_zhuyin()) + return parsed_len; +#endif + key_rest.m_raw_begin = cur; key_rest.m_raw_end = next; /* save the pinyin. */ diff --git a/src/storage/zhuyin_parser2.h b/src/storage/zhuyin_parser2.h index 45af804..8a9c550 100644 --- a/src/storage/zhuyin_parser2.h +++ b/src/storage/zhuyin_parser2.h @@ -98,7 +98,7 @@ public: virtual ~ZhuyinSimpleParser2() {} - virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, const char *str, int len) const; + virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, gint16 & distance, const char *str, int len) const; virtual int parse(pinyin_option_t options, ChewingKeyVector & keys, ChewingKeyRestVector & key_rests, const char *str, int len) const; @@ -142,7 +142,7 @@ public: virtual ~ZhuyinDiscreteParser2() {} - virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, const char *str, int len) const; + virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, gint16 & distance, const char *str, int len) const; virtual int parse(pinyin_option_t options, ChewingKeyVector & keys, ChewingKeyRestVector & key_rests, const char *str, int len) const; @@ -167,7 +167,7 @@ public: virtual ~ZhuyinDaChenCP26Parser2() {} - virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, const char *str, int len) const; + virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, gint16 & distance, const char *str, int len) const; virtual int parse(pinyin_option_t options, ChewingKeyVector & keys, ChewingKeyRestVector & key_rests, const char *str, int len) const; @@ -187,7 +187,7 @@ public: virtual ~ZhuyinDirectParser2() {} - virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, const char *str, int len) const; + virtual bool parse_one_key(pinyin_option_t options, ChewingKey & key, gint16 & distance, const char *str, int len) const; virtual int parse(pinyin_option_t options, ChewingKeyVector & keys, ChewingKeyRestVector & key_rests, const char *str, int len) const; }; diff --git a/src/storage/zhuyin_table.h b/src/storage/zhuyin_table.h index cde77bf..d096901 100644 --- a/src/storage/zhuyin_table.h +++ b/src/storage/zhuyin_table.h @@ -488,6 +488,12108 @@ const zhuyin_tone_item_t chewing_dachen_cp26_tones[] = { {'\0', 0} }; +const bool valid_zhuyin_table[CHEWING_NUMBER_OF_INITIALS * + CHEWING_NUMBER_OF_MIDDLES * + CHEWING_NUMBER_OF_FINALS * + CHEWING_NUMBER_OF_TONES] = { +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄞ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄜ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄟ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄥ */ +TRUE, +TRUE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄦ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄫ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZERO_INITIAL, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄅ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄅㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄅㄞ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄅㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄅㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄅㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_ZERO_MIDDLE, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄅㄟ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +/* ㄅㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄅㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄅㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_B, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_ZERO_MIDDLE, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄅㄧㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄅㄧㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄅㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄅㄧㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄅㄧㄠ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄅㄧㄝ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄅㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_B, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄘ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄘㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄘㄞ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄘㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄘㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄘㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄘㄜ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄘㄣ */ +TRUE, +TRUE, +TRUE, +FALSE, +FALSE, +FALSE, +/* ㄘㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄘㄨㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄘㄡ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄘ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄘㄨ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄘㄨㄢ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄘㄨㄟ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄘㄨㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄘㄨㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_C, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄔ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄔㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄔㄞ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄔㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄔㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄔㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄔㄜ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄔㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄔㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄔㄨㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄔㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄔ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄔㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄔㄨㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +/* ㄔㄨㄞ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄔㄨㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄔㄨㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄔㄨㄟ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ㄔㄨㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄔㄨㄛ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_CH, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄉㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄉㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄉㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +/* ㄉㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄉㄜ */ +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +TRUE, +/* ChewingKey(CHEWING_D, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄟ */ +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +FALSE, +/* ㄉㄣ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ㄉㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄨㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄉㄡ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄉㄧㄣ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄧㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄉㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄉㄧㄚ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄧㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄧㄠ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄉㄧㄝ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_D, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄧㄡ */ +TRUE, +TRUE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_D, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄨㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄨㄟ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄉㄨㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄉㄨㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_D, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_D, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄈ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄈㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_ZERO_MIDDLE, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄈㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄈㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_F, CHEWING_ZERO_MIDDLE, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄈㄜ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄈㄟ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄈㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄈㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄈㄛ */ +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄈㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄈㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_F, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄏ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄏㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ㄏㄞ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄏㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄏㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄏㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄏㄜ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄏㄟ */ +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +/* ㄏㄣ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄏㄥ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_H, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄏㄨㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄏㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_H, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄏㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄏㄨㄚ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ㄏㄨㄞ */ +TRUE, +FALSE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ㄏㄨㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄏㄨㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_H, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄏㄨㄟ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄏㄨㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄏㄨㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_H, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_H, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄍ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄍㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄍㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄍㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄍㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄍㄠ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄍㄜ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_G, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄍㄟ */ +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +FALSE, +/* ㄍㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄍㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄍㄨㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +/* ㄍㄡ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄍㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄍㄨㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄍㄨㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄍㄨㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄍㄨㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄍㄨㄟ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄍㄨㄣ */ +TRUE, +FALSE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄍㄨㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_G, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_G, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄎ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄎㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄎㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄎㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄎㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄎㄠ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄎㄜ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄎㄟ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄎㄣ */ +TRUE, +FALSE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄎㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄎㄨㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄎㄡ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄎㄨ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄎㄨㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄎㄨㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄎㄨㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +/* ㄎㄨㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄎㄨㄟ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄎㄨㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄎㄨㄛ */ +TRUE, +FALSE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_K, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄐ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_ZERO_MIDDLE, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄐㄧㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄐㄧㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄐㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄐㄧㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_J, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄐㄧㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄐㄧㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄐㄧㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄐㄧㄝ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_J, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄐㄩㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄐㄧㄡ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_J, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄐㄩ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄐㄩㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄐㄩㄝ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄐㄩㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_J, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄇ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄇㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄇㄞ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄇㄢ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄇㄤ */ +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ㄇㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄇㄜ */ +TRUE, +FALSE, +FALSE, +FALSE, +FALSE, +TRUE, +/* ChewingKey(CHEWING_M, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄇㄟ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄇㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄇㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄇㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_M, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄇㄡ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄇㄧㄣ */ +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ㄇㄧㄥ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄇㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄇㄧㄢ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄇㄧㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄇㄧㄝ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄇㄧㄡ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄇㄨ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_M, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄚ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄋㄞ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄋㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄋㄤ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄋㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄋㄜ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_N, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄟ */ +TRUE, +FALSE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄋㄣ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ㄋㄥ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄨㄥ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄋㄡ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄋㄧㄣ */ +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ㄋㄧㄥ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄋㄧ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄋㄧㄚ */ +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄧㄢ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄋㄧㄤ */ +TRUE, +FALSE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ㄋㄧㄠ */ +TRUE, +FALSE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄋㄧㄝ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄧㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄨ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄨㄢ */ +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄨㄣ */ +TRUE, +FALSE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄨㄛ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄩ */ +TRUE, +FALSE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄋㄩㄝ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_N, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄌㄞ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄢ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄌㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄜ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_L, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄟ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄣ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄥ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄛ */ +TRUE, +FALSE, +FALSE, +FALSE, +FALSE, +TRUE, +/* ㄌㄨㄥ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄌㄧㄣ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄧㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄌㄧㄚ */ +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄧㄢ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄧㄤ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄧㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄌㄧㄝ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄧㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_L, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄨㄢ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄨㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄨㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄩ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄌㄩㄝ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_L, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄖ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_ZERO_MIDDLE, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_ZERO_MIDDLE, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄖㄢ */ +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ㄖㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄖㄠ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄖㄜ */ +TRUE, +FALSE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄖㄣ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄖㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄖㄨㄥ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄖㄡ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄖ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄖㄨ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄖㄨㄚ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄖㄨㄢ */ +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄖㄨㄟ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄖㄨㄣ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄖㄨㄛ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_R, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄆ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄆㄚ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +/* ㄆㄞ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄆㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄆㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄆㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_ZERO_MIDDLE, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄆㄟ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄆㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄆㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄆㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄆㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ㄆㄧㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄆㄧㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄆㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄆㄧㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄆㄧㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄆㄧㄝ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄆㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_P, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄑ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_ZERO_MIDDLE, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄑㄧㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄑㄧㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄑㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄑㄧㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄑㄧㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄑㄧㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄑㄧㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄑㄧㄝ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄑㄩㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ㄑㄧㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄑㄩ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄑㄩㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄑㄩㄝ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄑㄩㄣ */ +TRUE, +TRUE, +TRUE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Q, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +/* ㄙㄞ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ㄙㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄙㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄙㄠ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄙㄜ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙㄣ */ +TRUE, +TRUE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙㄥ */ +TRUE, +TRUE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙㄨㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄙㄡ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙㄨ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙㄨㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙㄨㄟ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄙㄨㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄙㄨㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_S, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_S, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄕ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄕㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄕㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄕㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄕㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +/* ㄕㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄕㄜ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄕㄟ */ +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +FALSE, +/* ㄕㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄕㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄕㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄕ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄕㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄕㄨㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄕㄨㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄕㄨㄢ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ㄕㄨㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄕㄨㄟ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄕㄨㄣ */ +TRUE, +FALSE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄕㄨㄛ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_SH, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +/* ㄊㄞ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ㄊㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄊㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄊㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄊㄜ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_ZERO_MIDDLE, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄥ */ +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄨㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄊㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_T, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄧㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄊㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄧㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄧㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄊㄧㄝ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄨㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄨㄟ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄊㄨㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄊㄨㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_T, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* PINYIN_W */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄨㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄨㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄨㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄨㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄨㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄨㄟ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄨㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄨㄛ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_W, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄒ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_ZERO_MIDDLE, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄒㄧㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄒㄧㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄒㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄒㄧㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄒㄧㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄒㄧㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄒㄧㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄒㄧㄝ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_X, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄒㄩㄥ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ㄒㄧㄡ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄒㄩ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄒㄩㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄒㄩㄝ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄒㄩㄣ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_X, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* PINYIN_Y */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_ZERO_MIDDLE, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄧㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄧㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄧ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄧㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄧㄞ */ +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +FALSE, +/* ㄧㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄧㄤ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄧㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄧㄝ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(PINYIN_Y, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄧㄛ */ +TRUE, +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +/* ㄩㄥ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄧㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄩ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄩㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄩㄝ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄩㄣ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(PINYIN_Y, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄗ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄗㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +FALSE, +/* ㄗㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +/* ㄗㄢ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄗㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄗㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄗㄜ */ +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄗㄟ */ +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +FALSE, +/* ㄗㄣ */ +TRUE, +FALSE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄗㄥ */ +TRUE, +TRUE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄗㄨㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄗㄡ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄗ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄗㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄗㄨㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄗㄨㄟ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄗㄨㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄗㄨㄛ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_Z, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄓ */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄓㄚ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ㄓㄞ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄓㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄓㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄓㄠ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄓㄜ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +/* ChewingKey(CHEWING_ZH, CHEWING_ZERO_MIDDLE, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄓㄟ */ +TRUE, +FALSE, +FALSE, +FALSE, +TRUE, +FALSE, +/* ㄓㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄓㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_ZERO_MIDDLE, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_ZERO_MIDDLE, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_ZERO_MIDDLE, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄓㄨㄥ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄓㄡ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_ZERO_MIDDLE, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_ZERO_MIDDLE, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄓ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_I, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄓㄨ */ +TRUE, +TRUE, +TRUE, +TRUE, +TRUE, +FALSE, +/* ㄓㄨㄚ */ +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +FALSE, +/* ㄓㄨㄞ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄓㄨㄢ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄓㄨㄤ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄓㄨㄟ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ㄓㄨㄣ */ +TRUE, +TRUE, +FALSE, +TRUE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ㄓㄨㄛ */ +TRUE, +TRUE, +TRUE, +FALSE, +TRUE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_U, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_ZERO_FINAL) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_A) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_AI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_AN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_ANG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_AO) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_E) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, INVALID_EA) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_EI) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_EN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_ENG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_ER) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_NG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_O) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, PINYIN_ONG) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, CHEWING_OU) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, PINYIN_IN) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +/* ChewingKey(CHEWING_ZH, CHEWING_V, PINYIN_ING) */ +FALSE, +FALSE, +FALSE, +FALSE, +FALSE, +FALSE +}; + static const char * chewing_tone_table[CHEWING_NUMBER_OF_TONES] = { "", " ", diff --git a/src/zhuyin.cpp b/src/zhuyin.cpp index f4e28d8..1b9cda5 100644 --- a/src/zhuyin.cpp +++ b/src/zhuyin.cpp @@ -47,7 +47,7 @@ struct _zhuyin_context_t{ Bigram * m_user_bigram; /* lookups. */ - PhoneticLookup<1> * m_pinyin_lookup; + PhoneticLookup<1, 1> * m_pinyin_lookup; PhraseLookup * m_phrase_lookup; char * m_system_dir; @@ -345,7 +345,7 @@ zhuyin_context_t * zhuyin_init(const char * systemdir, const char * userdir){ gfloat lambda = context->m_system_table_info.get_lambda(); - context->m_pinyin_lookup = new PhoneticLookup<1> + context->m_pinyin_lookup = new PhoneticLookup<1, 1> ( lambda, context->m_pinyin_table, context->m_phrase_index, context->m_system_bigram, context->m_user_bigram); @@ -1007,9 +1007,10 @@ bool zhuyin_parse_full_pinyin(zhuyin_instance_t * instance, /* disable the pinyin correction options. */ options &= ~PINYIN_CORRECT_ALL; + gint16 distance = 0; int pinyin_len = strlen(onepinyin); bool retval = context->m_full_pinyin_parser->parse_one_key - (options, *onekey, onepinyin, pinyin_len); + (options, *onekey, distance, onepinyin, pinyin_len); return retval; } @@ -1047,9 +1048,10 @@ bool zhuyin_parse_chewing(zhuyin_instance_t * instance, zhuyin_context_t * & context = instance->m_context; zhuyin_option_t options = context->m_options; + gint16 distance = 0; int chewing_len = strlen(onechewing); bool retval = context->m_chewing_parser->parse_one_key - (options, *onekey, onechewing, chewing_len ); + (options, *onekey, distance, onechewing, chewing_len); return retval; } diff --git a/src/zhuyin.h b/src/zhuyin.h index 50a3287..e627001 100644 --- a/src/zhuyin.h +++ b/src/zhuyin.h @@ -308,19 +308,6 @@ bool zhuyin_parse_chewing(zhuyin_instance_t * instance, size_t zhuyin_parse_more_chewings(zhuyin_instance_t * instance, const char * chewings); -#if 0 -/** - * zhuyin_valid_zhuyin_keys: - * @instance: the zhuyin instance. - * @returns: whether all zhuyin keys are valid. - * - * Valid parsed zhuyin keys, if all valid, return true; - * if not, modify raw user input and return false. - * - */ -bool zhuyin_valid_zhuyin_keys(zhuyin_instance_t * instance); -#endif - /** * zhuyin_get_parsed_input_length: * @instance: the zhuyin instance. diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 5783407..4dfaed1 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -9,7 +9,7 @@ add_executable( target_link_libraries( test_pinyin - libpinyin + pinyin ) add_executable( @@ -19,7 +19,7 @@ add_executable( target_link_libraries( test_phrase - libpinyin + pinyin ) add_executable( @@ -29,5 +29,5 @@ add_executable( target_link_libraries( test_chewing - libpinyin + pinyin ) diff --git a/tests/Makefile.am b/tests/Makefile.am index 34da2d0..de08cef 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -23,7 +23,7 @@ CLEANFILES = *.bak ACLOCAL = aclocal -I $(ac_aux_dir) -INCLUDES = -I$(top_srcdir)/src \ +AM_CPPFLAGS = -I$(top_srcdir)/src \ -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/storage \ -I$(top_srcdir)/src/lookup \ diff --git a/tests/include/CMakeLists.txt b/tests/include/CMakeLists.txt index f51c87e..3ad956c 100644 --- a/tests/include/CMakeLists.txt +++ b/tests/include/CMakeLists.txt @@ -5,5 +5,5 @@ add_executable( target_link_libraries( test_memory_chunk - libpinyin -)
\ No newline at end of file + pinyin +) diff --git a/tests/include/Makefile.am b/tests/include/Makefile.am index 4a22aea..a140ff0 100644 --- a/tests/include/Makefile.am +++ b/tests/include/Makefile.am @@ -14,7 +14,7 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. -INCLUDES = -I$(top_srcdir)/src \ +AM_CPPFLAGS = -I$(top_srcdir)/src \ -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/storage \ -I$(top_srcdir)/src/lookup \ diff --git a/tests/lookup/CMakeLists.txt b/tests/lookup/CMakeLists.txt index 3304c47..38d45de 100644 --- a/tests/lookup/CMakeLists.txt +++ b/tests/lookup/CMakeLists.txt @@ -7,7 +7,7 @@ add_executable( target_link_libraries( test_pinyin_lookup - libpinyin + pinyin ) add_executable( @@ -17,5 +17,5 @@ add_executable( target_link_libraries( test_phrase_lookup - libpinyin + pinyin ) diff --git a/tests/lookup/Makefile.am b/tests/lookup/Makefile.am index 10c5301..027298b 100644 --- a/tests/lookup/Makefile.am +++ b/tests/lookup/Makefile.am @@ -14,14 +14,19 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. -INCLUDES = -I$(top_srcdir)/src \ +AM_CPPFLAGS = -I$(top_srcdir)/src \ -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/storage \ -I$(top_srcdir)/src/lookup \ -I$(top_srcdir)/tests \ @GLIB2_CFLAGS@ -LDADD = ../../src/libpinyin_internal.la @GLIB2_LIBS@ +LDADD = \ + ../../src/libpinyin_internal.a \ + ../../src/storage/libstorage.a \ + ../../src/lookup/liblookup.a \ + @GLIB2_LIBS@ \ + $(NULL) noinst_PROGRAMS = test_pinyin_lookup \ test_phrase_lookup diff --git a/tests/lookup/test_pinyin_lookup.cpp b/tests/lookup/test_pinyin_lookup.cpp index 6178b85..c1552b4 100644 --- a/tests/lookup/test_pinyin_lookup.cpp +++ b/tests/lookup/test_pinyin_lookup.cpp @@ -59,8 +59,8 @@ int main( int argc, char * argv[]){ gfloat lambda = system_table_info.get_lambda(); - PhoneticLookup<3> pinyin_lookup(lambda, &largetable, &phrase_index, - &system_bigram, &user_bigram); + PhoneticLookup<2, 3> pinyin_lookup(lambda, &largetable, &phrase_index, + &system_bigram, &user_bigram); /* prepare the prefixes for get_nbest_match. */ TokenVector prefixes = g_array_new diff --git a/tests/storage/CMakeLists.txt b/tests/storage/CMakeLists.txt index 96b12fc..378e134 100644 --- a/tests/storage/CMakeLists.txt +++ b/tests/storage/CMakeLists.txt @@ -7,7 +7,7 @@ add_executable( target_link_libraries( test_parser2 - libpinyin + pinyin ) add_executable( @@ -17,7 +17,7 @@ add_executable( target_link_libraries( test_chewing_table - libpinyin + pinyin ) add_executable( @@ -27,7 +27,7 @@ add_executable( target_link_libraries( test_phrase_index - libpinyin + pinyin ) add_executable( @@ -37,7 +37,7 @@ add_executable( target_link_libraries( test_phrase_index_logger - libpinyin + pinyin ) add_executable( @@ -47,7 +47,7 @@ add_executable( target_link_libraries( test_phrase_table - libpinyin + pinyin ) add_executable( @@ -57,7 +57,7 @@ add_executable( target_link_libraries( test_ngram - libpinyin + pinyin ) add_executable( @@ -67,5 +67,5 @@ add_executable( target_link_libraries( test_flexible_ngram - libpinyin + pinyin ) diff --git a/tests/storage/Makefile.am b/tests/storage/Makefile.am index 6f75534..6b05918 100644 --- a/tests/storage/Makefile.am +++ b/tests/storage/Makefile.am @@ -14,14 +14,19 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. -INCLUDES = -I$(top_srcdir)/src \ +AM_CPPFLAGS = -I$(top_srcdir)/src \ -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/storage \ -I$(top_srcdir)/src/lookup \ -I$(top_srcdir)/tests \ @GLIB2_CFLAGS@ -LDADD = ../../src/libpinyin_internal.la @GLIB2_LIBS@ +LDADD = \ + ../../src/libpinyin_internal.a \ + ../../src/storage/libstorage.a \ + ../../src/lookup/liblookup.a \ + @GLIB2_LIBS@ \ + $(NULL) TESTS = test_phrase_index_logger \ test_ngram \ diff --git a/tests/test_pinyin.cpp b/tests/test_pinyin.cpp index 1f8c5fc..8eadf89 100644 --- a/tests/test_pinyin.cpp +++ b/tests/test_pinyin.cpp @@ -69,7 +69,8 @@ int main(int argc, char * argv[]){ size_t len = pinyin_parse_more_full_pinyins(instance, linebuf); pinyin_guess_sentence_with_prefix(instance, prefixbuf); - pinyin_guess_candidates(instance, 0); + pinyin_guess_candidates(instance, 0, + SORT_BY_PHRASE_LENGTH_AND_FREQUENCY); size_t i = 0; for (i = 0; i <= len; ++i) { diff --git a/tests/test_zhuyin.cpp b/tests/test_zhuyin.cpp index 0fe840d..442bdb3 100644 --- a/tests/test_zhuyin.cpp +++ b/tests/test_zhuyin.cpp @@ -19,6 +19,10 @@ */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "zhuyin.h" #include <stdio.h> #include <stdlib.h> diff --git a/utils/segment/CMakeLists.txt b/utils/segment/CMakeLists.txt index 82e4deb..c0f0a9a 100644 --- a/utils/segment/CMakeLists.txt +++ b/utils/segment/CMakeLists.txt @@ -5,7 +5,7 @@ add_executable( target_link_libraries( spseg - libpinyin + pinyin ) add_executable( @@ -15,5 +15,5 @@ add_executable( target_link_libraries( ngseg - libpinyin -)
\ No newline at end of file + pinyin +) diff --git a/utils/segment/Makefile.am b/utils/segment/Makefile.am index 4354107..72e6743 100644 --- a/utils/segment/Makefile.am +++ b/utils/segment/Makefile.am @@ -16,14 +16,17 @@ MAINTAINERCLEANFILES = Makefile.in -INCLUDES = -I$(top_srcdir)/src \ - -I$(top_srcdir)/src/include \ - -I$(top_srcdir)/src/storage \ - -I$(top_srcdir)/src/lookup \ - -I$(top_srcdir)/utils \ - @GLIB2_CFLAGS@ +AM_CPPFLAGS = -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/storage \ + -I$(top_srcdir)/src/lookup \ + -I$(top_srcdir)/utils \ + @GLIB2_CFLAGS@ -LDADD = ../../src/libpinyin_internal.la @GLIB2_LIBS@ +LDADD = ../../src/libpinyin_internal.a \ + ../../src/storage/libstorage.a \ + ../../src/lookup/liblookup.a \ + @GLIB2_LIBS@ noinst_PROGRAMS = spseg ngseg mergeseq diff --git a/utils/storage/CMakeLists.txt b/utils/storage/CMakeLists.txt index 63cabcd..648f430 100644 --- a/utils/storage/CMakeLists.txt +++ b/utils/storage/CMakeLists.txt @@ -5,7 +5,7 @@ add_executable( target_link_libraries( gen_binary_files - libpinyin + pinyin ) add_executable( @@ -15,7 +15,7 @@ add_executable( target_link_libraries( import_interpolation - libpinyin + pinyin ) add_executable( @@ -25,5 +25,5 @@ add_executable( target_link_libraries( export_interpolation - libpinyin + pinyin ) diff --git a/utils/storage/Makefile.am b/utils/storage/Makefile.am index f5326a1..256386b 100644 --- a/utils/storage/Makefile.am +++ b/utils/storage/Makefile.am @@ -14,14 +14,19 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. -INCLUDES = -I$(top_srcdir)/src \ +AM_CPPFLAGS = -I$(top_srcdir)/src \ -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/storage \ -I$(top_srcdir)/src/lookup \ -I$(top_srcdir)/utils \ @GLIB2_CFLAGS@ -LDADD = ../../src/libpinyin_internal.la @GLIB2_LIBS@ +LDADD = \ + ../../src/libpinyin_internal.a \ + ../../src/storage/libstorage.a \ + ../../src/lookup/liblookup.a \ + @GLIB2_LIBS@ \ + $(NULL) bin_PROGRAMS = gen_binary_files \ import_interpolation diff --git a/utils/storage/gen_pinyin_table.cpp b/utils/storage/gen_pinyin_table.cpp index bf0c73b..fccc8c3 100644 --- a/utils/storage/gen_pinyin_table.cpp +++ b/utils/storage/gen_pinyin_table.cpp @@ -37,11 +37,11 @@ static gint phrase_index = 0; static const gchar * outputfile = "temp.out"; static GOptionEntry entries[] = -{ - {"phraseindex", 't', 0, G_OPTION_ARG_INT, &phrase_index, "phrase index", NULL}, - {"outputfile", 'o', 0, G_OPTION_ARG_FILENAME, &outputfile, "output filename", NULL}, - {NULL} -}; + { + {"phraseindex", 't', 0, G_OPTION_ARG_INT, &phrase_index, "phrase index", NULL}, + {"outputfile", 'o', 0, G_OPTION_ARG_FILENAME, &outputfile, "output filename", NULL}, + {NULL} + }; using namespace pinyin; @@ -85,10 +85,10 @@ gint phrase_item_compare(gconstpointer a, gconstpointer b){ phrase_item * itema = (phrase_item *) a; phrase_item * itemb = (phrase_item *) b; if ( itema->length != itemb->length ) - return itema->length - itemb->length; + return itema->length - itemb->length; else - return memcmp(itema->uniphrase, itemb->uniphrase, - sizeof(gunichar) * itema->length); + return memcmp(itema->uniphrase, itemb->uniphrase, + sizeof(gunichar) * itema->length); } @@ -116,14 +116,14 @@ int main(int argc, char * argv[]){ /* store in item array */ g_item_array[0] = NULL; for (i = 1; i < MAX_PHRASE_LENGTH + 1; ++i){ - g_item_array[i] = g_array_new + g_item_array[i] = g_array_new (FALSE, TRUE, sizeof(phrase_and_array_item)); } g_tree_foreach(g_chewing_tree, store_one_item, NULL); /* sort item array */ for ( int i = 1; i < MAX_PHRASE_LENGTH + 1; ++i){ - g_array_sort_with_data(g_item_array[i], phrase_array_compare , &i); + g_array_sort_with_data(g_item_array[i], phrase_array_compare , &i); } gen_phrase_file(outputfile, phrase_index); @@ -142,16 +142,16 @@ void feed_file ( const char * filename){ } while ( !feof(infile)){ - int num = fscanf(infile, "%1024s %1024s %u", + int num = fscanf(infile, "%1023s %1023s %u", phrase, pinyin, &freq); if (3 != num) continue; - if (feof(infile)) + if (feof(infile)) break; - feed_line(phrase, pinyin, freq); + feed_line(phrase, pinyin, freq); } fclose(infile); @@ -162,7 +162,7 @@ void feed_line(const char * phrase, const char * pinyin, const guint32 freq) { item->length = g_utf8_strlen(phrase, -1); /* FIXME: modify ">" to ">=" according to pinyin_large_table.cpp - * where is the code which I don't want to touch. :-) + * where is the code which I don't want to touch. :-) */ if (item->length >= MAX_PHRASE_LENGTH) { diff --git a/utils/storage/gen_zhuyin_table.cpp b/utils/storage/gen_zhuyin_table.cpp index 2cb6a0a..71a4e7b 100644 --- a/utils/storage/gen_zhuyin_table.cpp +++ b/utils/storage/gen_zhuyin_table.cpp @@ -19,6 +19,10 @@ */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include <stdio.h> #include <glib.h> #include "pinyin_internal.h" diff --git a/utils/training/CMakeLists.txt b/utils/training/CMakeLists.txt index ee59bcd..27620fb 100644 --- a/utils/training/CMakeLists.txt +++ b/utils/training/CMakeLists.txt @@ -5,7 +5,7 @@ add_executable( target_link_libraries( gen_ngram - libpinyin + pinyin ) add_executable( @@ -15,7 +15,7 @@ add_executable( target_link_libraries( gen_deleted_ngram - libpinyin + pinyin ) add_executable( @@ -25,7 +25,7 @@ add_executable( target_link_libraries( gen_unigram - libpinyin + pinyin ) add_executable( @@ -35,7 +35,7 @@ add_executable( target_link_libraries( gen_k_mixture_model - libpinyin + pinyin ) add_executable( @@ -45,7 +45,7 @@ add_executable( target_link_libraries( estimate_interpolation - libpinyin + pinyin ) add_executable( @@ -55,7 +55,7 @@ add_executable( target_link_libraries( estimate_k_mixture_model - libpinyin + pinyin ) add_executable( @@ -65,7 +65,7 @@ add_executable( target_link_libraries( merge_k_mixture_model - libpinyin + pinyin ) add_executable( @@ -75,7 +75,7 @@ add_executable( target_link_libraries( prune_k_mixture_model - libpinyin + pinyin ) add_executable( @@ -85,7 +85,7 @@ add_executable( target_link_libraries( import_k_mixture_model - libpinyin + pinyin ) add_executable( @@ -95,7 +95,7 @@ add_executable( target_link_libraries( export_k_mixture_model - libpinyin + pinyin ) add_executable( @@ -105,7 +105,7 @@ add_executable( target_link_libraries( k_mixture_model_to_interpolation - libpinyin + pinyin ) add_executable( @@ -115,7 +115,7 @@ add_executable( target_link_libraries( validate_k_mixture_model - libpinyin + pinyin ) add_executable( @@ -125,5 +125,5 @@ add_executable( target_link_libraries( eval_correction_rate - libpinyin -)
\ No newline at end of file + pinyin +) diff --git a/utils/training/Makefile.am b/utils/training/Makefile.am index a70945a..d82cacf 100644 --- a/utils/training/Makefile.am +++ b/utils/training/Makefile.am @@ -16,14 +16,17 @@ MAINTAINERCLEANFILES = Makefile.in -INCLUDES = -I$(top_srcdir)/src \ - -I$(top_srcdir)/src/include \ - -I$(top_srcdir)/src/storage \ - -I$(top_srcdir)/src/lookup \ - -I$(top_srcdir)/utils \ - @GLIB2_CFLAGS@ - -LDADD = ../../src/libpinyin_internal.la @GLIB2_LIBS@ +AM_CPPFLAGS = -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/include \ + -I$(top_srcdir)/src/storage \ + -I$(top_srcdir)/src/lookup \ + -I$(top_srcdir)/utils \ + @GLIB2_CFLAGS@ + +LDADD = ../../src/libpinyin_internal.a \ + ../../src/storage/libstorage.a \ + ../../src/lookup/liblookup.a \ + @GLIB2_LIBS@ noinst_HEADERS = k_mixture_model.h diff --git a/utils/training/eval_correction_rate.cpp b/utils/training/eval_correction_rate.cpp index 5983cca..aa33e6b 100644 --- a/utils/training/eval_correction_rate.cpp +++ b/utils/training/eval_correction_rate.cpp @@ -61,7 +61,7 @@ bool get_possible_pinyin(FacadePhraseIndex * phrase_index, } bool get_best_match(FacadePhraseIndex * phrase_index, - PhoneticLookup<1> * pinyin_lookup, + PhoneticLookup<1, 1> * pinyin_lookup, PhoneticKeyMatrix * matrix, NBestMatchResults * results) { /* prepare the prefixes for get_nbest_match. */ @@ -79,7 +79,7 @@ bool get_best_match(FacadePhraseIndex * phrase_index, return retval; } -bool do_one_test(PhoneticLookup<1> * pinyin_lookup, +bool do_one_test(PhoneticLookup<1, 1> * pinyin_lookup, FacadePhraseIndex * phrase_index, TokenVector tokens){ bool retval = false; @@ -156,7 +156,7 @@ int main(int argc, char * argv[]){ gfloat lambda = system_table_info.get_lambda(); - PhoneticLookup<1> pinyin_lookup(lambda, + PhoneticLookup<1, 1> pinyin_lookup(lambda, &largetable, &phrase_index, &system_bigram, &user_bigram); |