diff options
65 files changed, 15217 insertions, 10994 deletions
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..8212ed1 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,41 @@ +name: "CodeQL" + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + schedule: + - cron: "16 9 * * 0" + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ cpp, python ] + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + queries: +security-and-quality + + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{ matrix.language }}" @@ -18,6 +18,7 @@ Makefile.in *.la *.pc *.log +*.trs *.dll *.lib *.exe @@ -34,6 +35,7 @@ m4/*.m4 /coverage /coverage.info /fuzzers +/.vscode # src/ /src/unicode_fold?_key.gperf diff --git a/CMakeLists.txt b/CMakeLists.txt index db6b0a7..da09d8e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.1...3.5) project(oniguruma - VERSION 6.9.8 + VERSION 6.9.10 LANGUAGES C) set(PACKAGE onig) @@ -9,8 +9,10 @@ set(PACKAGE_VERSION ${PROJECT_VERSION}) option(BUILD_SHARED_LIBS "Build shared libraries" ON) option(ENABLE_POSIX_API "Include POSIX API" OFF) option(ENABLE_BINARY_COMPATIBLE_POSIX_API "Include Binary compatible POSIX API" OFF) +option(ENABLE_STATISTICS "Include statistics API" OFF) option(INSTALL_DOCUMENTATION "Install documentation" ON) option(INSTALL_EXAMPLES "Install examples" OFF) +option(BUILD_TEST "Build tests" ON) if(MSVC) option(MSVC_STATIC_RUNTIME "Build with static runtime" OFF) endif() @@ -72,6 +74,10 @@ if(ENABLE_BINARY_COMPATIBLE_POSIX_API) add_definitions("-DUSE_BINARY_COMPATIBLE_POSIX_API") endif() +if(ENABLE_STATISTICS) + add_definitions("-DONIG_DEBUG_STATISTICS") +endif() + add_library(onig ${_SRCS}) target_include_directories(onig PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> @@ -160,6 +166,12 @@ configure_package_config_file( INSTALL_DESTINATION "${config_install_dir}" ) +if(CMAKE_INSTALL_LIBDIR MATCHES "^/") + set(onig_pkgconfig_libdir "${CMAKE_INSTALL_LIBDIR}") +else() + set(onig_pkgconfig_libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") +endif() + # Targets: # * <prefix>/lib*/libonig.a # * header location after install: <prefix>/include/ @@ -212,8 +224,8 @@ endif() # Examples if(INSTALL_EXAMPLES) install(FILES sample/bug_fix.c sample/callback_each_match.c - sample/callout.c sample/count.c sample/crnl.c - sample/echo.c sample/encode.c sample/listcap.c + sample/callout.c sample/count.c sample/echo.c + sample/encode.c sample/listcap.c sample/names.c sample/posix.c sample/regset.c sample/scan.c sample/simple.c sample/sql.c sample/syntax.c sample/user_property.c @@ -231,3 +243,11 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/oniguruma.pc install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/onig-config DESTINATION "${CMAKE_INSTALL_BINDIR}") + +# Test +if(BUILD_TEST) + add_subdirectory(test) + if(CMAKE_COMPILER_IS_GNUCC) + add_subdirectory(windows) + endif() +endif(BUILD_TEST) @@ -1,6 +1,37 @@ History -2022/04/2X: Version 6.9.8 +2024/XX/XX: Version 6.9.10 + +2024/11/18: fix #312: Build failure with GCC 15 (C23) +2024/09/11: Update to Unicode 16.0 +2024/06/20: fix #290: retry limit in match == 0 means unlimited +2024/06/15: add new callout (*SKIP) #299 +2024/06/05: add new behavior ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC (#298) +2024/05/28: fix #296: ONIG_SYNTAX_EMACS doesn't support 'shy groups' +2024/05/24: fix #295: Invalid result for empty match with anchors +2024/04/03: fix #293: Literal escaped braces +2024/04/02: fix total call with whole options +2024/04/01: fix #292: ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS not working for ^* pattern + +2023/10/14: Version 6.9.9 + +2023/09/17: Update to Unicode 15.1.0 +2023/07/11: Make sure oniguruma.pc is removed on distclean +2023/05/20: fix #284: .{0,99} and .* behave differently on short input +2023/03/27: fix call by number (?n), (?+n), (?-n) of ONIG_SYNTAX_PERL_NG +2023/03/27: fix #282: Dynamic library generated failed to support '(?-i)' +2022/12/30: add a new behavior ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP +2022/11/16: Changed the behavior of the FIND_LONGEST option to follow all alternatives +2022/09/16: Update to Unicode 15.0.0 +2022/08/30: add ONIG_OPTION_MATCH_WHOLE_STRING +2022/08/28: fix ctype punct in Unicode encodings +2022/08/28: fix #268: [[:punct:]] isn't matching all expected symbols. [[:punct:]] = \p{PosixPunct} = \p{P} + \p{S} +2022/06/25: Make the behavior of \p{Word} exactly the same as \w for ignorecase +2022/06/24: (?I) invalid results for charcter classes (Issue #264) +2022/06/15: fix negative POSIX bracket bug +2022/06/03: Build tests with cmake+msvc + +2022/04/29: Version 6.9.8 2022/04/11: implement whole option: (?C) 2022/04/07: implement whole option: (?L) @@ -717,7 +748,7 @@ History Any, Assigned, C, Cc, L, Lm, Arabic, Greek etc... 2006/09/21: [impl] add USE_UNICODE_PROPERTIES into regenc.h. 2006/09/21: [impl] remove USE_UNICODE_FULL_RANGE_CTYPE. -2006/09/20: [impl] change ONIGENC_CTYPE_XXXX to sequencial values. +2006/09/20: [impl] change ONIGENC_CTYPE_XXXX to sequential values. add BIT_CTYPE_XXXX bit flags to regenc.h. update XXXX_CtypeTable[] for BIT_CTYPE_ALNUM. 2006/09/19: [memo] move from CVS to Subversion (1.3.2). @@ -1179,7 +1210,7 @@ History 2004/12/16: [test] success in ruby 1.9.0 (2004-12-16) [i686-linux]. 2004/12/16: [dist] update hash.c.patch. 2004/12/15: [bug] (thanks matz) - char > 127 should be casted to unsigned char. (utf8.c) + char > 127 should be cast to unsigned char. (utf8.c) 2004/12/13: [impl] add HAVE_PROTOTYPES and HAVE_STDARG_PROTOTYPES definition to oniguruma.h in the case __cplusplus. 2004/12/06: [dist] update doc/RE and doc/RE.ja. @@ -2086,7 +2117,7 @@ History 2003/03/08: [impl] remove check_backref_number(). 2003/03/08: [bug] called group in 0-repeat should not be eliminated from compile code. ex. /(?*n)(?<n>){0}/ (thanks akr) - add is_refered member to QualifierNode. + add is_referred member to QualifierNode. 2003/03/07: [impl] use hash table(st.[ch]) for implementation of name table. (enable on Ruby in default) 2003/03/07: [new] add regex_foreach_names(). @@ -2139,7 +2170,7 @@ History if it is set, then error /(\1)/, /\1(..)/ etc... 2003/02/26: [spec] if backref number is greater than max group number, then return compile error. (REGERR_INVALID_BACKREF_NUMBER) -2003/02/26: [tune] bad implemented N_ALT case in get_min_match_length(). +2003/02/26: [tune] badly implemented N_ALT case in get_min_match_length(). 2003/02/26: [dist] auto update testc.c and win32/testc.c in dist target. 2003/02/26: [impl] add -win option to testconv.rb. 2003/02/25: [spec] allow to assign same name to different group. @@ -2259,7 +2290,7 @@ History 2003/01/18: [impl] change REGION_NOTPOS to REG_REGION_NOTPOS in regex.h. 2003/01/17: [dist] add sample/simple.c. 2003/01/17: [inst] add configure option --with-rubydir. -2003/01/17: [bug] bad implemeted POSIX API options. +2003/01/17: [bug] badly implemented POSIX API options. default: /./ not match "\n", anchor not match "\n" REG_NEWLINE: /./ not match "\n", anchor match "\n" 2003/01/16: [impl] rewrite POSIX API regexec() for speed up. @@ -2453,10 +2484,17 @@ cvs history -T cvs rtag "VERSION_X_X_X" oniguruma +<Homebrew install autotools> +> brew install autoconf +> brew install automake +> brew install libtool + + <GNU Autotools: bootstrap> * write Makefile.am and configure.in. +> libtoolize or glibtoolize > aclocal -> libtoolize or glibtoolize +> autoheader > automake --foreign --add-missing > autoconf > configure --with-rubydir=... CFLAGS="-O2 -Wall" diff --git a/Makefile.am b/Makefile.am index 0baab85..896b505 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,10 +11,11 @@ EXTRA_DIST = oniguruma.pc.in HISTORY README_japanese README.md \ doc/API doc/API.ja doc/RE doc/RE.ja doc/FAQ doc/FAQ.ja \ doc/CALLOUTS.BUILTIN doc/CALLOUTS.BUILTIN.ja \ doc/CALLOUTS.API doc/CALLOUTS.API.ja \ - doc/SYNTAX.md doc/UNICODE_PROPERTIES \ + doc/SYNTAX.md doc/onig_syn_md.c doc/UNICODE_PROPERTIES \ src/Makefile.windows src/config.h.windows.in \ src/config.h.win32 src/config.h.win64 \ - windows/testc.c + test/test.sh test/CMakeLists.txt \ + windows/testc.c windows/CMakeLists.txt bin_SCRIPTS = onig-config @@ -34,7 +35,7 @@ oniguruma.pc: $(srcdir)/oniguruma.pc.in Makefile pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = oniguruma.pc - +DISTCLEANFILES = oniguruma.pc all-test: cd test; make test @@ -1,13 +1,9 @@ -[](https://travis-ci.org/kkos/oniguruma) -[](https://lgtm.com/projects/g/kkos/oniguruma/context:cpp) -[](https://lgtm.com/projects/g/kkos/oniguruma/alerts) [](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#oniguruma) -[](https://ci.trust-in-soft.com/projects/kkos/oniguruma) Oniguruma ========= -## **For a long time, Oniguruma has been under attack on Google search in Japan.** [(Issue #234)](https://github.com/kkos/oniguruma/issues/234) +## **The only open source software attacked on Google search in Japan.** [(Issue #234)](https://github.com/kkos/oniguruma/issues/234) https://github.com/kkos/oniguruma @@ -37,7 +33,24 @@ Notice (from 6.9.6) When using configure script, if you have the POSIX API enabled in an earlier version (disabled by default in 6.9.5) and you need application binary compatibility with the POSIX API, specify "--enable-binary-compatible-posix-api=yes" instead of "--enable-posix-api=yes". Starting in 6.9.6, "--enable-posix-api=yes" only supports source-level compatibility for 6.9.5 and earlier about POSIX API. (Issue #210) -Version 6.9.8 (== Master branch / unreleased) +Version 6.9.10 +-------------- +* Update Unicode version 16.0 +* Add new operator (*SKIP) +* Fixed: ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS not working for ^* pattern (Issue #292) + + +Version 6.9.9 +------------- +* Update Unicode version 15.1.0 +* NEW API: ONIG_OPTION_MATCH_WHOLE_STRING +* Fixed: (?I) option was not enabled for character classes (Issue #264). +* Changed specification to check for incorrect POSIX bracket (Issue #253). +* Changed [[:punct:]] in Unicode encodings to be compatible with POSIX definition. (Issue #268) +* Fixed: ONIG_OPTION_FIND_LONGEST behavior + + +Version 6.9.8 ------------- * Update Unicode version 14.0.0 * Whole options @@ -67,53 +80,6 @@ Version 6.9.6 * Under cygwin and mingw, generate and install the libonig.def file (Issue #220) -Version 6.9.5 revised 1 ------------------------ - -* Fixed Issue #192 - - -Version 6.9.5 -------------- - -* POSIX API disabled by default for Unix (* Enabled by: configure --enable-posix-api=yes) -* Update Unicode version 13.0.0 -* NEW: Code point sequence notation \x{HHHH HHHH ...}, \o{OOOO OOOO ...} -* NEW API: retry limit in search functions -* NEW API: maximum nesting level of subexp call -* Fixed behavior of isolated options in Perl and Java syntaxes. /...(?i).../ - - -Version 6.9.4 -------------- - -* NEW API: RegSet (set of regexes) -* Fixed CVE-2019-19012 -* Fixed CVE-2019-19203 (Does not affect UTF-8, UTF-16 and UTF-32 encodings) -* Fixed CVE-2019-19204 (Affects only PosixBasic, Emacs and Grep syntaxes) -* Fixed CVE-2019-19246 -* Fixed some problems (found by libFuzzer test) - - -Version 6.9.3 (security fix release) ------------------------------------- - -* Fixed CVE-2019-13224 -* Fixed CVE-2019-13225 -* Fixed CVE-2019-16163 -* Fixed many problems (found by libFuzzer test) - - -Version 6.9.2 (Reiwa) ---------------------- - -* add doc/SYNTAX.md -* Direct threaded code (for GCC and Clang) -* Update Unicode version 12.1.0 -* NEW: Unicode Text Segment mode option (?y{g}) (?y{w}) (*original) - - - License ------- diff --git a/configure.ac b/configure.ac index 079fef9..55c9ea2 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(onig, 6.9.8) +AC_INIT(onig, 6.9.10) AC_CONFIG_MACRO_DIR([m4]) @@ -7,13 +7,10 @@ AM_INIT_AUTOMAKE([-Wno-portability]) AC_CONFIG_HEADERS([src/config.h]) -dnl default value for STATISTICS -STATISTICS="" AC_ARG_WITH([statistics], [AS_HELP_STRING([--with-statistics], [take matching time statistical data])], - [STATISTICS=-DONIG_DEBUG_STATISTICS]) -AC_SUBST(STATISTICS) + AS_VAR_APPEND([CFLAGS], [" -DONIG_DEBUG_STATISTICS"])) dnl check for POSIX API @@ -57,7 +54,7 @@ fi dnl Checks for programs. AC_PROG_CC LT_INIT -LTVERSION="8:0:3" +LTVERSION="10:0:5" AC_SUBST(LTVERSION) AC_PROG_INSTALL @@ -1,4 +1,4 @@ -Oniguruma API Version 6.9.7 2021/03/03 +Oniguruma API Version 6.9.10 2024/06/26 #include <oniguruma.h> @@ -277,6 +277,7 @@ Oniguruma API Version 6.9.7 2021/03/03 # int onig_set_retry_limit_in_match_of_match_param(OnigMatchParam* mp, unsigned long limit) Set a retry limit count of a match process. + 0 means unlimited. arguments 1 mp: match-param pointer @@ -366,6 +367,8 @@ Oniguruma API Version 6.9.7 2021/03/03 The user_data specified by onig_set_callout_user_data_of_match_param() will be shared with callout. + ONIG_OPTION_MATCH_WHOLE_STRING Try to match the whole of (str), rather than returning after the first match is found. + # int onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end, const UChar* start, const UChar* range, OnigRegion* region, @@ -407,7 +410,7 @@ Oniguruma API Version 6.9.7 2021/03/03 ONIG_OPTION_NOT_END_STRING Do not regard the (end) as a string endpoint (* fail \z, \Z) ONIG_OPTION_NOT_BEGIN_POSITION Do not regard the (start) as start position of search (* fail \G) ONIG_OPTION_CALLBACK_EACH_MATCH Call back for all successful matches. - + ONIG_OPTION_MATCH_WHOLE_STRING Try to match the whole of (str), rather than returning after the first match is found. # int onig_match_with_param(regex_t* reg, const UChar* str, const UChar* end, const UChar* at, OnigRegion* region, @@ -641,7 +644,7 @@ Oniguruma API Version 6.9.7 2021/03/03 return value normal: number of groups for the name. (ex. /(?<x>..)(?<x>..)/ ==> 2) - name not found: -1 + name not found: ONIGERR_UNDEFINED_NAME_REFERENCE arguments 1 reg: regex object. @@ -983,6 +986,7 @@ Oniguruma API Version 6.9.7 2021/03/03 # int onig_set_retry_limit_in_match(unsigned long limit) Set the limit of retry counts in matching process. + 0 means unlimited. normal return: ONIG_NORMAL @@ -1,4 +1,4 @@ -鬼車インターフェース Version 6.9.7 2022/02/04 +鬼車インターフェース Version 6.9.10 2024/05/26 #include <oniguruma.h> @@ -275,6 +275,7 @@ # int onig_set_retry_limit_in_match_of_match_param(OnigMatchParam* mp, unsigned long limit) 一回のマッチでのリトライ数の制限値をセットする。 + 0は無制限を意味する。 引数 1 mp: マッチパラメタオブジェクトアドレス @@ -361,6 +362,8 @@ onig_set_callout_user_data_of_match_param()で指定するuser_dataは、 calloutで使用されるuser_dataと共用される。 + ONIG_OPTION_MATCH_WHOLE_STRING マッチした終端の位置がendになることを要求 + # int onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end, const UChar* start, const UChar* range, OnigRegion* region, @@ -400,6 +403,7 @@ ONIG_OPTION_NOT_END_STRING endを文字列終端と看做さない (\z, \Z 失敗) ONIG_OPTION_NOT_BEGIN_POSITION startを検索開始位置と看做さない (\G 失敗) ONIG_OPTION_CALLBACK_EACH_MATCH 全てのマッチ成功に対してコールバック関数が呼び出される。 + ONIG_OPTION_MATCH_WHOLE_STRING マッチした終端の位置がendになることを要求 # int onig_match_with_param(regex_t* reg, const UChar* str, const UChar* end, @@ -445,7 +449,7 @@ 引数 1 rset: regsetオブジェクトを返すためのアドレス - 2 n: 正規表現オブジェクトの個数 + 2 n: 正規表現の個数 3 regs: 正規表現オブジェクトの配列 戻り値 @@ -476,7 +480,7 @@ 引数 1 set: regsetオブジェクト 2 at: 変更する場所のインデックス - 2 reg: 正規表現オブジェクト + 3 reg: 正規表現オブジェクト 戻り値 正常終了: ONIG_NORMAL == 0 @@ -635,7 +639,7 @@ 戻り値 正常終了: 指定された名前に対するグループ数 (例 /(?<x>..)(?<x>..)/ ==> 2) - 名前に対するグループが存在しない: -1 + 名前に対するグループが存在しない: ONIGERR_UNDEFINED_NAME_REFERENCE 引数 1 reg: 正規表現オブジェクト @@ -984,6 +988,7 @@ # int onig_set_retry_limit_in_match(unsigned long limit) 一回のマッチング内でのリトライ数の制限値を指定する。 + 0は無制限を意味する。 正常終了戻り値: ONIG_NORMAL diff --git a/doc/CALLOUTS.BUILTIN b/doc/CALLOUTS.BUILTIN index 26840e7..3c3c40b 100644 --- a/doc/CALLOUTS.BUILTIN +++ b/doc/CALLOUTS.BUILTIN @@ -1,4 +1,4 @@ -CALLOUTS.BUILTIN 2018/03/26 +CALLOUTS.BUILTIN 2024/07/04 * FAIL (progress) @@ -92,4 +92,13 @@ CALLOUTS.BUILTIN 2018/03/26 [callout data] slot 0: op value (enum OP_CMP in src/regexec.c) + +* SKIP (progress) + + (*SKIP) + + Advance the position where the current matching fails and the next search + begins to the current position. + It has no effect on the current matching. + //END diff --git a/doc/CALLOUTS.BUILTIN.ja b/doc/CALLOUTS.BUILTIN.ja index d371beb..dabadcd 100644 --- a/doc/CALLOUTS.BUILTIN.ja +++ b/doc/CALLOUTS.BUILTIN.ja @@ -1,4 +1,4 @@ -CALLOUTS.BUILTIN.ja 2018/03/26 +CALLOUTS.BUILTIN.ja 2024/07/04 * FAIL (前進) @@ -90,4 +90,12 @@ CALLOUTS.BUILTIN.ja 2018/03/26 [callout data] slot 0: op値 (src/regexec.c の中の enum OP_CMP) + +* SKIP (前進) + + (*SKIP) + + 現在のマッチングが失敗して次の検索を開始する位置を、現在位置まで前進させる + 現在のマッチングには何の影響も与えない + //END @@ -1,4 +1,4 @@ -Oniguruma Regular Expressions Version 6.9.8 2022/04/11 +Oniguruma Regular Expressions Version 6.9.9 2024/06/10 syntax: ONIG_SYNTAX_ONIGURUMA (default syntax) @@ -237,24 +237,21 @@ syntax: ONIG_SYNTAX_ONIGURUMA (default syntax) Unicode Case: - alnum Letter | Mark | Decimal_Number - alpha Letter | Mark - ascii 0000 - 007F - blank Space_Separator | 0009 - cntrl Control | Format | Unassigned | Private_Use | Surrogate + alnum Alphabetic | Decimal_Number + alpha Alphabetic + ascii U+0000 - U+007F + blank Space_Separator | U+0009 + cntrl U+0000 - U+001F, U+007F - U+009F digit Decimal_Number - graph [[:^space:]] && ^Control && ^Unassigned && ^Surrogate - lower Lowercase_Letter - print [[:graph:]] | [[:space:]] - punct Connector_Punctuation | Dash_Punctuation | Close_Punctuation | - Final_Punctuation | Initial_Punctuation | Other_Punctuation | - Open_Punctuation - space Space_Separator | Line_Separator | Paragraph_Separator | - U+0009 | U+000A | U+000B | U+000C | U+000D | U+0085 - upper Uppercase_Letter + graph ^White_Space && ^[[:cntrl:]] && ^Unassigned && ^Surrogate + lower Lowercase + print [[:graph:]] | Space_Separator + punct Punctuation | Symbol + space White_Space + upper Uppercase xdigit U+0030 - U+0039 | U+0041 - U+0046 | U+0061 - U+0066 (0-9, a-f, A-F) - word Letter | Mark | Decimal_Number | Connector_Punctuation + word Alphabetic | Mark | Decimal_Number | Connector_Punctuation @@ -288,7 +285,10 @@ syntax: ONIG_SYNTAX_ONIGURUMA (default syntax) * It makes a group to the next ')' or end of the pattern. /ab(?i)c|def|gh/ == /ab(?i:c|def|gh)/ - /(?CIL).../, /(?CIL:...)/ whole opiton + * (?i) option has no effect on word types (\w, \p{Word}). However, if the word types are used within a character class, it is valid. But, this would only be a concern when word types are used with the (?W) option. + + + /(?CIL).../, /(?CIL:...)/ whole option This option must be placed in a position that affects the entire regular expression. @@ -1,4 +1,4 @@ -鬼車 正規表現 Version 6.9.8 2022/04/11 +鬼車 正規表現 Version 6.9.9 2024/06/10 使用文法: ONIG_SYNTAX_ONIGURUMA (既定値) @@ -234,24 +234,21 @@ Unicodeの場合: - alnum Letter | Mark | Decimal_Number - alpha Letter | Mark - ascii 0000 - 007F - blank Space_Separator | 0009 - cntrl Control | Format | Unassigned | Private_Use | Surrogate + alnum Alphabetic | Decimal_Number + alpha Alphabetic + ascii U+0000 - U+007F + blank Space_Separator | U+0009 + cntrl U+0000 - U+001F, U+007F - U+009F digit Decimal_Number - graph [[:^space:]] && ^Control && ^Unassigned && ^Surrogate - lower Lowercase_Letter - print [[:graph:]] | [[:space:]] - punct Connector_Punctuation | Dash_Punctuation | Close_Punctuation | - Final_Punctuation | Initial_Punctuation | Other_Punctuation | - Open_Punctuation - space Space_Separator | Line_Separator | Paragraph_Separator | - U+0009 | U+000A | U+000B | U+000C | U+000D | U+0085 - upper Uppercase_Letter + graph ^White_Space && ^[[:cntrl:]] && ^Unassigned && ^Surrogate + lower Lowercase + print [[:graph:]] | Space_Separator + punct Punctuation | Symbol + space White_Space + upper Uppercase xdigit U+0030 - U+0039 | U+0041 - U+0046 | U+0061 - U+0066 (0-9, a-f, A-F) - word Letter | Mark | Decimal_Number | Connector_Punctuation + word Alphabetic | Mark | Decimal_Number | Connector_Punctuation @@ -284,6 +281,9 @@ * これは次の')'またはパターンの終わりまでのグループを形成する /ab(?i)c|def|gh/ == /ab(?i:c|def|gh)/ + * (?i)オプションは、wordタイプ(\w, \p{Word})には有効ではない。但しwordタイプが文字クラスの中で使用された場合は有効になる。しかし、このことはwordタイプを(?W)オプションと共に使用した時にしか気にする必要はないであろう。 + + /(?CIL).../, /(?CIL:...)/ 全体オプション このオプションは、正規表現全体に影響を及ぼす位置 diff --git a/doc/SYNTAX.md b/doc/SYNTAX.md index c38e5c8..5ec7e87 100644 --- a/doc/SYNTAX.md +++ b/doc/SYNTAX.md @@ -1,7 +1,7 @@ # Oniguruma syntax (operator) configuration -_Documented for Oniguruma 6.9.5 (2020/01/23)_ +_Documented for Oniguruma 6.9.10 (2024/12/21)_ ---------- @@ -38,7 +38,7 @@ follow. The `options` field describes the default compile options to use if the caller does not specify any options when invoking `onig_new()`. -The `meta_char_table` field is used exclusively by the ONIG_SYN_OP_VARIABLE_META_CHARACTERS +The `meta_char_table` field is used exclusively by the `ONIG_SYN_OP_VARIABLE_META_CHARACTERS` option, which allows the various regex metacharacters, like `*` and `?`, to be replaced with alternates (for example, SQL typically uses `%` instead of `.*` and `_` instead of `?`). @@ -75,7 +75,7 @@ data set by `onig_set_meta_char()` will be ignored. ### 1. ONIG_SYN_OP_DOT_ANYCHAR (enable `.`) -_Set in: Oniguruma, PosixBasic, PosixExtended, Emacs, Grep, GnuRegex, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, Grep, Emacs, PosixExtended, PosixBasic_ Enables support for the standard `.` metacharacter, meaning "any one character." You usually want this flag on unless you have turned on `ONIG_SYN_OP_VARIABLE_META_CHARACTERS` @@ -84,7 +84,7 @@ so that you can use a metacharacter other than `.` instead. ### 2. ONIG_SYN_OP_ASTERISK_ZERO_INF (enable `r*`) -_Set in: Oniguruma, PosixBasic, PosixExtended, Emacs, Grep, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, Grep, Emacs, PosixExtended, PosixBasic_ Enables support for the standard `r*` metacharacter, meaning "zero or more r's." You usually want this flag set unless you have turned on `ONIG_SYN_OP_VARIABLE_META_CHARACTERS` @@ -103,7 +103,7 @@ behavior. ### 4. ONIG_SYN_OP_PLUS_ONE_INF (enable `r+`) -_Set in: Oniguruma, PosixExtended, Emacs, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, Emacs, PosixExtended_ Enables support for the standard `r+` metacharacter, meaning "one or more r's." You usually want this flag set unless you have turned on `ONIG_SYN_OP_VARIABLE_META_CHARACTERS` @@ -122,7 +122,7 @@ behavior. ### 6. ONIG_SYN_OP_QMARK_ZERO_ONE (enable `r?`) -_Set in: Oniguruma, PosixExtended, Emacs, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, Emacs, PosixExtended_ Enables support for the standard `r?` metacharacter, meaning "zero or one r" or "an optional r." You usually want this flag set unless you have turned on `ONIG_SYN_OP_VARIABLE_META_CHARACTERS` @@ -141,7 +141,7 @@ you want `?` to simply match a literal `?` character, but you still want some wa ### 8. ONIG_SYN_OP_BRACE_INTERVAL (enable `r{l,u}`) -_Set in: Oniguruma, PosixExtended, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, PosixExtended_ Enables support for the `r{lower,upper}` range form, common to more advanced regex engines, which lets you specify precisely a minimum and maximum range on how many r's @@ -158,7 +158,7 @@ this form also allows `r{,upper}` to be equivalent to `r{0,upper}`; otherwise, ### 9. ONIG_SYN_OP_ESC_BRACE_INTERVAL (enable `\{` and `\}`) -_Set in: PosixBasic, Emacs, Grep_ +_Set in: Grep, Emacs, PosixBasic_ Enables support for an escaped `r\{lower,upper\}` range form. This is useful if you have disabled support for the normal `r{...}` range form and want curly braces to simply @@ -168,7 +168,7 @@ match literal curly brace characters, but you still want some way of activating ### 10. ONIG_SYN_OP_VBAR_ALT (enable `r|s`) -_Set in: Oniguruma, PosixExtended, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, PosixExtended_ Enables support for the common `r|s` alternation operator. You usually want this flag set. @@ -176,7 +176,7 @@ flag set. ### 11. ONIG_SYN_OP_ESC_VBAR_ALT (enable `\|`) -_Set in: Emacs, Grep_ +_Set in: Grep, Emacs_ Enables support for an escaped `r\|s` alternation form. This is useful if you have disabled support for the normal `r|s` alternation form and want `|` to simply @@ -185,7 +185,7 @@ match a literal `|` character, but you still want some way of activating "altern ### 12. ONIG_SYN_OP_LPAREN_SUBEXP (enable `(r)`) -_Set in: Oniguruma, PosixExtended, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, PosixExtended_ Enables support for the common `(...)` grouping-and-capturing operators. You usually want this flag set. @@ -193,7 +193,7 @@ want this flag set. ### 13. ONIG_SYN_OP_ESC_LPAREN_SUBEXP (enable `\(` and `\)`) -_Set in: PosixBasic, Emacs, Grep_ +_Set in: Grep, Emacs, PosixBasic_ Enables support for escaped `\(...\)` grouping-and-capturing operators. This is useful if you have disabled support for the normal `(...)` grouping-and-capturing operators and want @@ -203,7 +203,7 @@ activating "grouping" or "capturing" behavior. ### 14. ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR (enable `\A` and `\Z` and `\z`) -_Set in: Oniguruma, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex_ Enables support for the anchors `\A` (start-of-string), `\Z` (end-of-string or newline-at-end-of-string), and `\z` (end-of-string) escapes. @@ -214,7 +214,7 @@ option will recognize that metacharacter instead.) ### 15. ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR (enable `\G`) -_Set in: Oniguruma, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex_ Enables support for the special anchor `\G` (start-of-previous-match). @@ -231,7 +231,7 @@ exactly the same as `\A`. ### 16. ONIG_SYN_OP_DECIMAL_BACKREF (enable `\num`) -_Set in: Oniguruma, PosixBasic, PosixExtended, Emacs, Grep, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, Grep, Emacs, PosixExtended, PosixBasic_ Enables support for subsequent matches to back references to prior capture groups `(...)` using the common `\num` syntax (like `\3`). @@ -244,7 +244,7 @@ You usually want this enabled, and it is enabled by default in every built-in sy ### 17. ONIG_SYN_OP_BRACKET_CC (enable `[...]`) -_Set in: Oniguruma, PosixBasic, PosixExtended, Emacs, Grep, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, Grep, Emacs, PosixExtended, PosixBasic_ Enables support for recognizing character classes, like `[a-z]`. If this flag is not set, `[` and `]` will be treated as ordinary literal characters instead of as metacharacters. @@ -254,7 +254,7 @@ You usually want this enabled, and it is enabled by default in every built-in sy ### 18. ONIG_SYN_OP_ESC_W_WORD (enable `\w` and `\W`) -_Set in: Oniguruma, Grep, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, Grep_ Enables support for the common `\w` and `\W` shorthand forms. These match "word characters," whose meaning varies depending on the encoding being used. @@ -272,7 +272,7 @@ considered "word characters.") ### 19. ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END (enable `\<` and `\>`) -_Set in: Grep, GnuRegex_ +_Set in: GnuRegex, Grep_ Enables support for the GNU-specific `\<` and `\>` word-boundary metacharacters. These work like the `\b` word-boundary metacharacter, but only match at one end of the word or the other: `\<` @@ -285,7 +285,7 @@ Most regex syntaxes do _not_ support these metacharacters. ### 20. ONIG_SYN_OP_ESC_B_WORD_BOUND (enable `\b` and `\B`) -_Set in: Oniguruma, Grep, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, Grep_ Enables support for the common `\b` and `\B` word-boundary metacharacters. The `\b` metacharacter matches a zero-width position at a transition from word-characters to non-word-characters, or vice @@ -297,7 +297,7 @@ are considered "word characters." ### 21. ONIG_SYN_OP_ESC_S_WHITE_SPACE (enable `\s` and `\S`) -_Set in: Oniguruma, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex_ Enables support for the common `\s` and `\S` whitespace-matching metacharacters. @@ -319,7 +319,7 @@ Unicode-equivalent code points, and then matching according to Unicode rules. ### 22. ONIG_SYN_OP_ESC_D_DIGIT (enable `\d` and `\D`) -_Set in: Oniguruma, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex_ Enables support for the common `\d` and `\D` digit-matching metacharacters. @@ -337,7 +337,7 @@ Unicode-equivalent code points, and then matching according to Unicode rules. ### 23. ONIG_SYN_OP_LINE_ANCHOR (enable `^r` and `r$`) -_Set in: Oniguruma, Emacs, Grep, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, Grep, Emacs, PosixExtended, PosixBasic_ Enables support for the common `^` and `$` line-anchor metacharacters. @@ -352,7 +352,7 @@ and not any other form.) ### 24. ONIG_SYN_OP_POSIX_BRACKET (enable POSIX `[:xxxx:]`) -_Set in: Oniguruma, PosixBasic, PosixExtended, Grep, GnuRegex, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG, Perl, GnuRegex, Grep, PosixExtended, PosixBasic_ Enables support for the POSIX `[:xxxx:]` character classes, like `[:alpha:]` and `[:digit:]`. The supported POSIX character classes are `alnum`, `alpha`, `blank`, `cntrl`, `digit`, @@ -361,7 +361,7 @@ The supported POSIX character classes are `alnum`, `alpha`, `blank`, `cntrl`, `d ### 25. ONIG_SYN_OP_QMARK_NON_GREEDY (enable `r??`, `r*?`, `r+?`, and `r{n,m}?`) -_Set in: Oniguruma, Perl, Java, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java_ Enables support for lazy (non-greedy) quantifiers: That is, if you append a `?` after another quantifier such as `?`, `*`, `+`, or `{n,m}`, Oniguruma will try to match @@ -370,17 +370,17 @@ as _little_ as possible instead of as _much_ as possible. ### 26. ONIG_SYN_OP_ESC_CONTROL_CHARS (enable `\n`, `\r`, `\t`, etc.) -_Set in: Oniguruma, PosixBasic, PosixExtended, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, Emacs, PosixExtended, PosixBasic_ Enables support for C-style control-code escapes, like `\n` and `\r`. Specifically, this recognizes `\a` (7), `\b` (8), `\t` (9), `\n` (10), `\f` (12), `\r` (13), and -`\e` (27). If ONIG_SYN_OP2_ESC_V_VTAB is enabled (see below), this also enables +`\e` (27). If `ONIG_SYN_OP2_ESC_V_VTAB` is enabled (see below), this also enables support for recognizing `\v` as code point 11. ### 27. ONIG_SYN_OP_ESC_C_CONTROL (enable `\cx` control codes) -_Set in: Oniguruma, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java_ Enables support for named control-code escapes, like `\cm` or `\cM` for code-point 13. In this shorthand form, control codes may be specified by `\c` (for "Control") @@ -390,7 +390,7 @@ followed by an alphabetic letter, a-z or A-Z, indicating which code point to rep ### 28. ONIG_SYN_OP_ESC_OCTAL3 (enable `\OOO` octal codes) -_Set in: Oniguruma, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java_ Enables support for octal-style escapes of up to three digits, like `\1` for code point 1, and `\177` for code point 127. Octal values greater than 255 will result @@ -399,7 +399,7 @@ in an error message. ### 29. ONIG_SYN_OP_ESC_X_HEX2 (enable `\xHH` hex codes) -_Set in: Oniguruma, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java_ Enables support for hexadecimal-style escapes of up to two digits, like `\x1` for code point 1, and `\x7F` for code point 127. @@ -407,7 +407,7 @@ point 1, and `\x7F` for code point 127. ### 30. ONIG_SYN_OP_ESC_X_BRACE_HEX8 (enable `\x{7HHHHHHH}` hex codes) -_Set in: Oniguruma, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG, Perl_ Enables support for brace-wrapped hexadecimal-style escapes of up to eight digits, like `\x{1}` for code point 1, and `\x{FFFE}` for code point 65534. @@ -415,7 +415,7 @@ like `\x{1}` for code point 1, and `\x{FFFE}` for code point 65534. ### 31. ONIG_SYN_OP_ESC_O_BRACE_OCTAL (enable `\o{1OOOOOOOOOO}` octal codes) -_Set in: Oniguruma, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG, Perl_ Enables support for brace-wrapped octal-style escapes of up to eleven digits, like `\o{1}` for code point 1, and `\o{177776}` for code point 65534. @@ -434,7 +434,7 @@ This group contains support for lesser-known regex syntax constructs. ### 0. ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (enable `\Q...\E`) -_Set in: Java, Perl, Perl_NG_ +_Set in: Perl_NG, Perl, Java_ Enables support for "quoted" parts of a pattern: Between `\Q` and `\E`, all syntax parsing is turned off, so that metacharacters like `*` and `+` will no @@ -444,7 +444,7 @@ longer be treated as metacharacters, and instead will be matched as literal ### 1. ONIG_SYN_OP2_QMARK_GROUP_EFFECT (enable `(?...)`) -_Set in: Oniguruma, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, Emacs_ Enables support for the fairly-common `(?...)` grouping operator, which controls precedence but which does _not_ capture its contents. @@ -452,7 +452,7 @@ controls precedence but which does _not_ capture its contents. ### 2. ONIG_SYN_OP2_OPTION_PERL (enable options `(?imsx)` and `(?-imsx)`) -_Set in: Java, Perl, Perl_NG_ +_Set in: Python, Perl_NG, Perl, Java_ Enables support of regex options. (i,m,s,x) The supported toggle-able options for this flag are: @@ -465,7 +465,7 @@ The supported toggle-able options for this flag are: ### 3. ONIG_SYN_OP2_OPTION_RUBY (enable options `(?imx)` and `(?-imx)`) -_Set in: Oniguruma, Ruby_ +_Set in: Ruby_ Enables support of regex options. (i,m,x) The supported toggle-able options for this flag are: @@ -477,7 +477,7 @@ The supported toggle-able options for this flag are: ### 4. ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (enable `r?+`, `r*+`, and `r++`) -_Set in: Oniguruma, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG, Perl, Java_ Enables support for the _possessive_ quantifiers `?+`, `*+`, and `++`, which work similarly to `?` and `*` and `+`, respectively, but which do not backtrack @@ -488,7 +488,7 @@ extent if subsequent parts of the pattern fail to match. ### 5. ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (enable `r{n,m}+`) -_Set in: Java_ +_Set in: Perl_NG, Perl, Java_ Enables support for the _possessive_ quantifier `{n,m}+`, which works similarly to `{n,m}`, but which does not backtrack @@ -499,7 +499,7 @@ extent if subsequent parts of the pattern fail to match. ### 6. ONIG_SYN_OP2_CCLASS_SET_OP (enable `&&` within `[...]`) -_Set in: Oniguruma, Java, Ruby_ +_Set in: Oniguruma, Ruby, Java_ Enables support for character-class _intersection_. For example, with this feature enabled, you can write `[a-z&&[^aeiou]]` to produce a character class @@ -509,7 +509,7 @@ all control codes _except_ newlines. ### 7. ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP (enable named captures `(?<name>...)`) -_Set in: Oniguruma, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG_ Enables support for _naming_ capture groups, so that instead of having to refer to captures by position (like `\3` or `$3`), you can refer to them by names @@ -519,7 +519,7 @@ and `(?'name'...)`, but not the Python `(?P<name>...)` syntax. ### 8. ONIG_SYN_OP2_ESC_K_NAMED_BACKREF (enable named backreferences `\k<name>`) -_Set in: Oniguruma, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG_ Enables support for substituted backreferences by name, not just by position. This supports using `\k'name'` in addition to supporting `\k<name>`. This also @@ -530,7 +530,7 @@ the match, if the capture matched multiple times, by writing `\k<name+n>` or ### 9. ONIG_SYN_OP2_ESC_G_SUBEXP_CALL (enable backreferences `\g<name>` and `\g<n>`) -_Set in: Oniguruma, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG_ Enables support for substituted backreferences by both name and position using the same syntax. This supports using `\g'name'` and `\g'1'` in addition to @@ -562,7 +562,7 @@ followed by a single character (or equivalent), indicating which code point to r based on that character's lowest five bits. So, like `\c`, you can represent code-point 10 with `\C-j`, but you can also represent it with `\C-*` as well. -See also ONIG_SYN_OP_ESC_C_CONTROL, which enables the more-common `\cx` syntax. +See also `ONIG_SYN_OP_ESC_C_CONTROL`, which enables the more-common `\cx` syntax. ### 12. ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META (enable `\M-x`) @@ -577,7 +577,7 @@ with `0x80`). So, for example, you can match `\x81` using `\x81`, or you can wr ### 13. ONIG_SYN_OP2_ESC_V_VTAB (enable `\v` as vertical tab) -_Set in: Oniguruma, Java, Ruby_ +_Set in: Oniguruma, Python, Ruby, Java_ Enables support for a C-style `\v` escape code, meaning "vertical tab." If enabled, `\v` will be equivalent to ASCII code point 11. @@ -585,7 +585,7 @@ Enables support for a C-style `\v` escape code, meaning "vertical tab." If enab ### 14. ONIG_SYN_OP2_ESC_U_HEX4 (enable `\uHHHH` for Unicode) -_Set in: Oniguruma, Java, Ruby_ +_Set in: Oniguruma, Python, Ruby, Java_ Enables support for a Java-style `\uHHHH` escape code for representing Unicode code-points by number, using up to four hexadecimal digits (up to `\uFFFF`). So, @@ -593,8 +593,8 @@ for example, `\u221E` will match an infinity symbol, `∞`. For code points larger than four digits, like the emoji `🚡` (aerial tramway, or code point U+1F6A1), you must either represent the character directly using an encoding like -UTF-8, or you must enable support for ONIG_SYN_OP_ESC_X_BRACE_HEX8 or -ONIG_SYN_OP_ESC_O_BRACE_OCTAL, which support more than four digits. +UTF-8, or you must enable support for `ONIG_SYN_OP_ESC_X_BRACE_HEX8` or +`ONIG_SYN_OP_ESC_O_BRACE_OCTAL`, which support more than four digits. (New feature as of Oniguruma 6.7.) @@ -604,29 +604,29 @@ ONIG_SYN_OP_ESC_O_BRACE_OCTAL, which support more than four digits. _Set in: Emacs_ This flag makes the ``\` `` and `\'` escapes function identically to -`\A` and `\z`, respectively (when ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR is enabled). +`\A` and `\z`, respectively (when `ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR` is enabled). These anchor forms are very obscure, and rarely supported by other regex libraries. ### 16. ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY (enable `\p{...}` and `\P{...}`) -_Set in: Oniguruma, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java_ Enables support for an alternate syntax for POSIX character classes; instead of writing `[:alpha:]` when this is enabled, you can instead write `\p{alpha}`. -See also ONIG_SYN_OP_POSIX_BRACKET for the classic POSIX form. +See also `ONIG_SYN_OP_POSIX_BRACKET` for the classic POSIX form. ### 17. ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (enable `\p{^...}` and `\P{^...}`) -_Set in: Oniguruma, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl_ Enables support for an alternate syntax for POSIX character classes; instead of writing `[:^alpha:]` when this is enabled, you can instead write `\p{^alpha}`. -See also ONIG_SYN_OP_POSIX_BRACKET for the classic POSIX form. +See also `ONIG_SYN_OP_POSIX_BRACKET` for the classic POSIX form. ### 18. ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS @@ -647,7 +647,7 @@ characters in `[0-9a-fA-F]`. ### 20. ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (disable `\`) -_Set in: As-is_ +_Set in: ASIS_ If set, this disables all escape codes, shorthands, and metacharacters that start with `\` (or whatever the configured escape character is), allowing `\` to be treated @@ -658,7 +658,7 @@ You usually do not want this flag to be enabled. ### 21. ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE (enable `(?(...)then|else)`) -_Set in: Oniguruma, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl_ Enables support for conditional inclusion of subsequent regex patterns based on whether a prior named or numbered capture matched, or based on whether a pattern will @@ -676,7 +676,7 @@ match. This supports many different forms, including: ### 22. ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (enable `\K`) -_Set in: Oniguruma, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl_ Enables support for `\K`, which excludes all content before it from the overall regex match (i.e., capture #0). So, for example, pattern `foo\Kbar` would match @@ -687,7 +687,7 @@ regex match (i.e., capture #0). So, for example, pattern `foo\Kbar` would match ### 23. ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE (enable `\R`) -_Set in: Oniguruma, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG, Perl_ Enables support for `\R`, the "general newline" shorthand, which matches `(\r\n|[\n\v\f\r\u0085\u2028\u2029])` (obviously, the Unicode values are cannot be @@ -698,7 +698,7 @@ matched in ASCII encodings). ### 24. ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT (enable `\N` and `\O`) -_Set in: Oniguruma, Perl, Perl_NG_ +_Set in: Oniguruma, Perl_NG, Perl_ Enables support for `\N` and `\O`. `\N` is "not a line break," which is much like the standard `.` metacharacter, except that while `.` can be affected by @@ -713,7 +713,7 @@ multi-line mode are enabled or disabled. ### 25. ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP (enable `(?~...)`) -_Set in: Oniguruma, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG, Perl_ Enables support for the `(?~r)` "absent operator" syntax, which matches as much as possible as long as the result _doesn't_ match pattern `r`. This is @@ -731,7 +731,7 @@ excellent article about it is [available on Medium](https://medium.com/rubyinsid ### 26. ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT (enable `\X` and `\Y` and `\y`) -_Set in: Oniguruma, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG, Perl_ `\X` is another variation on `.`, designed to support Unicode, in that it matches a full _grapheme cluster_. In Unicode, `à` can be encoded as one code point, @@ -764,7 +764,7 @@ backreferences. ### 28. ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS (enable `(?{...})`) -_Set in: Oniguruma, Perl, Perl_NG_ +_Set in: Oniguruma, Perl_NG, Perl_ Enables support for Perl-style "callouts" — pattern substitutions that result from invoking a callback method. When `(?{foo})` is reached in a pattern, the callback @@ -779,7 +779,7 @@ Full documentation for this advanced feature can be found in the Oniguruma ### 29. ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME (enable `(*name)`) -_Set in: Oniguruma, Perl, Perl_NG_ +_Set in: Oniguruma, Python, Perl_NG, Perl_ Enables support for Perl-style "callouts" — pattern substitutions that result from invoking a callback method. When `(*foo)` is reached in a pattern, the callback @@ -809,6 +809,13 @@ Enables support of regex options. (i,m,x,W,S,D,P,y) - `S` - ASCII only space. - `P` - ASCII only POSIX properties. (includes W,D,S) + +### 31. ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME (enable `(?P<name>...)` and `(?P=name)`) + +_Set in: Python_ + +(New feature as of Oniguruma 6.9.7) + ---------- @@ -820,19 +827,19 @@ some syntaxes but not in others. ### 0. ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS (independent `?`, `*`, `+`, `{n,m}`) -_Set in: Oniguruma, PosixExtended, GnuRegex, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, PosixExtended_ This flag specifies how to handle operators like `?` and `*` when they aren't directly attached to an operand, as in `^*` or `(*)`: Are they an error, are they discarded, or are they taken as literals? If this flag is clear, they -are taken as literals; otherwise, the ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS flag +are taken as literals; otherwise, the `ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS` flag determines if they are errors or if they are discarded. ### 1. ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS (error or ignore independent operators) -_Set in: Oniguruma, PosixExtended, GnuRegex, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, PosixExtended_ -If ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS is set, this flag controls what happens when +If `ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS` is set, this flag controls what happens when independent operators appear in a pattern: If this flag is set, then independent operators produce an error message; if this flag is clear, then independent operators are silently discarded. @@ -847,7 +854,7 @@ character will produce an error message. ### 3. ONIG_SYN_ALLOW_INVALID_INTERVAL (allow `{???`) -_Set in: Oniguruma, GnuRegex, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex_ This flag, if set, causes an invalid range, like `foo{bar}` or `foo{}`, to be silently discarded, as if `foo` had been written instead. If clear, an invalid @@ -855,13 +862,13 @@ range will produce an error message. ### 4. ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV (allow `{,n}` to mean `{0,n}`) -_Set in: Oniguruma, Ruby_ +_Set in: Oniguruma, Python, Ruby_ If this flag is set, then `r{,n}` will be treated as equivalent to writing `{0,n}`. If this flag is clear, then `r{,n}` will produce an error message. Note that regardless of whether this flag is set or clear, if -ONIG_SYN_OP_BRACE_INTERVAL is enabled, then `r{n,}` will always be legal: This +`ONIG_SYN_OP_BRACE_INTERVAL` is enabled, then `r{n,}` will always be legal: This flag *only* controls the behavior of the opposite form, `r{,n}`. ### 5. ONIG_SYN_STRICT_CHECK_BACKREF (error on invalid backrefs) @@ -876,7 +883,7 @@ No built-in syntax has this flag enabled. ### 6. ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (allow `(?<=a|bc)`) -_Set in: Oniguruma, Java, Ruby_ +_Set in: Oniguruma, Ruby, Java_ If this flag is set, lookbehind patterns with alternate options may have differing lengths among those options. If this flag is clear, lookbehind patterns with options @@ -888,15 +895,15 @@ depend on this rule. ### 7. ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (prefer `\k<name>` over `\3`) -_Set in: Oniguruma, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG_ -If this flag is set on the syntax *and* ONIG_OPTION_CAPTURE_GROUP is set when calling +If this flag is set on the syntax *and* `ONIG_OPTION_CAPTURE_GROUP` is set when calling Oniguruma, then if a name is used on any capture, all captures must also use names: A single use of a named capture prohibits the use of numbered captures. ### 8. ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (allow `(?<x>)...(?<x>)`) -_Set in: Oniguruma, Perl_NG, Ruby_ +_Set in: Oniguruma, Ruby, Perl_NG_ If this flag is set, multiple capture groups may use the same name. If this flag is clear, then reuse of a name will produce an error message. @@ -912,10 +919,10 @@ then `r{n}?` will mean the same as `r{n}`, and the useless `?` will be discarded ### 10. ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH (`..(?i)..`) -_Set in: Perl, Perl_NG, Java_ +_Set in: Python, Perl_NG, Perl, Java_ If this flag is set, then an isolated option doesn't break the branch and affects until the end of the group (or end of the pattern). -If this flag is not set, then an isolated option is interpreted as the starting point of a new branch. /a(?i)b|c/ ==> /a(?i:b|c)/ +If this flag is not set, then an isolated option is interpreted as the starting point of a new branch. `/a(?i)b|c/` ==> `/a(?i:b|c)/` ### 11. ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND (`(?<=...a+...)`) @@ -923,6 +930,24 @@ _Set in: Oniguruma, Java_ If this flag is set, then a variable length expressions are allowed in look-behind. +### 12. ONIG_SYN_PYTHON (enable `\UHHHHHHHH` for Unicode) + +_Set in: Python_ + +(New feature as of Oniguruma 6.9.7) + +### 13. ONIG_SYN_WHOLE_OPTIONS (enable options `(?CLI)`) + +_Set in: Oniguruma_ + +(New feature as of Oniguruma 6.9.8) + +### 14. ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP (enable `\(^abc$\)`) + +_Set in: Grep, PosixBasic_ + +(New feature as of Oniguruma 6.9.9) + ### 20. ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (add `\n` to `[^...]`) _Set in: Grep_ @@ -934,7 +959,7 @@ only exclude those characters and ranges written in them. ### 21. ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (allow `[...\w...]`) -_Set in: Oniguruma, GnuRegex, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex_ If this flag is set, shorthands like `\w` are allowed to describe characters in character classes. If this flag is clear, shorthands like `\w` are treated as a redundantly-escaped @@ -942,7 +967,7 @@ literal `w`. ### 22. ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (silently discard `[z-a]`) -_Set in: Emacs, Grep_ +_Set in: Grep, Emacs_ If this flag is set, then character ranges like `[z-a]` that are broken or contain no characters will be silently ignored. If this flag is clear, then broken or empty @@ -950,7 +975,7 @@ character ranges will produce an error message. ### 23. ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (treat `[0-9-a]` as `[0-9\-a]`) -_Set in: Oniguruma, PosixExtended, GnuRegex, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, PosixExtended_ If this flag is set, then a trailing `-` after a character range will be taken as a literal `-`, as if it had been escaped as `\-`. If this flag is clear, then a trailing @@ -973,15 +998,21 @@ _Set in: Oniguruma, Ruby_ If this flag is set, Oniguruma will warn about nested repeat operators those have no meaning, like `(?:a*)+`. If this flag is clear, Oniguruma will allow the nested repeat operators without warning about them. -### 26. ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC (allow [a-\x{7fffffff}]) +### 26. ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC (allow `[a-\x{7fffffff}]`) _Set in: Oniguruma_ If this flag is set, then invalid code points at the end of range in character class are allowed. +### 27. ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC (allow `[\w-%]` to mean `[\w\-%]`) + +_Set in: Perl_NG, Perl, Java_ + +(New feature as of Oniguruma 6.9.10) + ### 31. ONIG_SYN_CONTEXT_INDEP_ANCHORS -_Set in: Oniguruma, PosixExtended, GnuRegex, Java, Perl, Perl_NG, Ruby_ +_Set in: Oniguruma, Python, Ruby, Perl_NG, Perl, Java, GnuRegex, PosixExtended_ Not currently used, and does nothing. (But still set in several syntaxes for some reason.) @@ -994,98 +1025,102 @@ These tables show which of the built-in syntaxes use which flags and options, fo ### Group One Flags (op) -| ID | Option | PosB | PosEx | Emacs | Grep | Gnu | Java | Perl | PeNG | Ruby | Onig | -| ----- | --------------------------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | -| 0 | `ONIG_SYN_OP_VARIABLE_META_CHARACTERS` | - | - | - | - | - | - | - | - | - | - | -| 1 | `ONIG_SYN_OP_DOT_ANYCHAR` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | -| 2 | `ONIG_SYN_OP_ASTERISK_ZERO_INF` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | -| 3 | `ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF` | - | - | - | - | - | - | - | - | - | - | -| 4 | `ONIG_SYN_OP_PLUS_ONE_INF` | - | Yes | Yes | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 5 | `ONIG_SYN_OP_ESC_PLUS_ONE_INF` | - | - | - | Yes | - | - | - | - | - | - | -| 6 | `ONIG_SYN_OP_QMARK_ZERO_ONE` | - | Yes | Yes | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 7 | `ONIG_SYN_OP_ESC_QMARK_ZERO_ONE` | - | - | - | Yes | - | - | - | - | - | - | -| 8 | `ONIG_SYN_OP_BRACE_INTERVAL` | - | Yes | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 9 | `ONIG_SYN_OP_ESC_BRACE_INTERVAL` | Yes | - | Yes | Yes | - | - | - | - | - | - | -| 10 | `ONIG_SYN_OP_VBAR_ALT` | - | Yes | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 11 | `ONIG_SYN_OP_ESC_VBAR_ALT` | - | - | Yes | Yes | - | - | - | - | - | - | -| 12 | `ONIG_SYN_OP_LPAREN_SUBEXP` | - | Yes | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 13 | `ONIG_SYN_OP_ESC_LPAREN_SUBEXP` | Yes | - | Yes | Yes | - | - | - | - | - | - | -| 14 | `ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR` | - | - | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 15 | `ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR` | - | - | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 16 | `ONIG_SYN_OP_DECIMAL_BACKREF` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | -| 17 | `ONIG_SYN_OP_BRACKET_CC` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | -| 18 | `ONIG_SYN_OP_ESC_W_WORD` | - | - | - | Yes | Yes | Yes | Yes | Yes | Yes | Yes | -| 19 | `ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END` | - | - | - | Yes | Yes | - | - | - | - | - | -| 20 | `ONIG_SYN_OP_ESC_B_WORD_BOUND` | - | - | - | Yes | Yes | Yes | Yes | Yes | Yes | Yes | -| 21 | `ONIG_SYN_OP_ESC_S_WHITE_SPACE` | - | - | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 22 | `ONIG_SYN_OP_ESC_D_DIGIT` | - | - | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 23 | `ONIG_SYN_OP_LINE_ANCHOR` | - | - | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | -| 24 | `ONIG_SYN_OP_POSIX_BRACKET` | Yes | Yes | Yes | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 25 | `ONIG_SYN_OP_QMARK_NON_GREEDY` | - | - | - | - | - | Yes | Yes | Yes | Yes | Yes | -| 26 | `ONIG_SYN_OP_ESC_CONTROL_CHARS` | Yes | Yes | - | - | - | Yes | Yes | Yes | Yes | Yes | -| 27 | `ONIG_SYN_OP_ESC_C_CONTROL` | - | - | - | - | - | Yes | Yes | Yes | Yes | Yes | -| 28 | `ONIG_SYN_OP_ESC_OCTAL3` | - | - | - | - | - | Yes | Yes | Yes | Yes | Yes | -| 29 | `ONIG_SYN_OP_ESC_X_HEX2` | - | - | - | - | - | Yes | Yes | Yes | Yes | Yes | -| 30 | `ONIG_SYN_OP_ESC_X_BRACE_HEX8` | - | - | - | - | - | - | Yes | Yes | Yes | Yes | -| 31 | `ONIG_SYN_OP_ESC_O_BRACE_OCTAL` | - | - | - | - | - | - | Yes | Yes | Yes | Yes | +| ID | Option | Onig | Pythn | Ruby | PeNG | Perl | Java | Gnu | Grep | Emacs | PosEx | PosB | ASIS | +| ----- | ------------------------------------------ | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | +| 0 | `ONIG_SYN_OP_VARIABLE_META_CHARACTERS` | - | - | - | - | - | - | - | - | - | - | - | - | +| 1 | `ONIG_SYN_OP_DOT_ANYCHAR` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | +| 2 | `ONIG_SYN_OP_ASTERISK_ZERO_INF` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | +| 3 | `ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF` | - | - | - | - | - | - | - | - | - | - | - | - | +| 4 | `ONIG_SYN_OP_PLUS_ONE_INF` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | Yes | Yes | - | - | +| 5 | `ONIG_SYN_OP_ESC_PLUS_ONE_INF` | - | - | - | - | - | - | - | Yes | - | - | - | - | +| 6 | `ONIG_SYN_OP_QMARK_ZERO_ONE` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | Yes | Yes | - | - | +| 7 | `ONIG_SYN_OP_ESC_QMARK_ZERO_ONE` | - | - | - | - | - | - | - | Yes | - | - | - | - | +| 8 | `ONIG_SYN_OP_BRACE_INTERVAL` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | Yes | - | - | +| 9 | `ONIG_SYN_OP_ESC_BRACE_INTERVAL` | - | - | - | - | - | - | - | Yes | Yes | - | Yes | - | +| 10 | `ONIG_SYN_OP_VBAR_ALT` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | Yes | - | - | +| 11 | `ONIG_SYN_OP_ESC_VBAR_ALT` | - | - | - | - | - | - | - | Yes | Yes | - | - | - | +| 12 | `ONIG_SYN_OP_LPAREN_SUBEXP` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | Yes | - | - | +| 13 | `ONIG_SYN_OP_ESC_LPAREN_SUBEXP` | - | - | - | - | - | - | - | Yes | Yes | - | Yes | - | +| 14 | `ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | +| 15 | `ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | +| 16 | `ONIG_SYN_OP_DECIMAL_BACKREF` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | +| 17 | `ONIG_SYN_OP_BRACKET_CC` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | +| 18 | `ONIG_SYN_OP_ESC_W_WORD` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | +| 19 | `ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END` | - | - | - | - | - | - | Yes | Yes | - | - | - | - | +| 20 | `ONIG_SYN_OP_ESC_B_WORD_BOUND` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | +| 21 | `ONIG_SYN_OP_ESC_S_WHITE_SPACE` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | +| 22 | `ONIG_SYN_OP_ESC_D_DIGIT` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | +| 23 | `ONIG_SYN_OP_LINE_ANCHOR` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | +| 24 | `ONIG_SYN_OP_POSIX_BRACKET` | Yes | - | Yes | Yes | Yes | - | Yes | Yes | - | Yes | Yes | - | +| 25 | `ONIG_SYN_OP_QMARK_NON_GREEDY` | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | - | +| 26 | `ONIG_SYN_OP_ESC_CONTROL_CHARS` | Yes | Yes | Yes | Yes | Yes | Yes | - | - | Yes | Yes | Yes | - | +| 27 | `ONIG_SYN_OP_ESC_C_CONTROL` | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | - | +| 28 | `ONIG_SYN_OP_ESC_OCTAL3` | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | - | +| 29 | `ONIG_SYN_OP_ESC_X_HEX2` | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | - | +| 30 | `ONIG_SYN_OP_ESC_X_BRACE_HEX8` | Yes | - | Yes | Yes | Yes | - | - | - | - | - | - | - | +| 31 | `ONIG_SYN_OP_ESC_O_BRACE_OCTAL` | Yes | - | Yes | Yes | Yes | - | - | - | - | - | - | - | ### Group Two Flags (op2) -| ID | Option | PosB | PosEx | Emacs | Grep | Gnu | Java | Perl | PeNG | Ruby | Onig | -| ----- | --------------------------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | -| 0 | `ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE` | - | - | - | - | - | Yes | Yes | Yes | - | - | -| 1 | `ONIG_SYN_OP2_QMARK_GROUP_EFFECT` | - | - | - | - | - | Yes | Yes | Yes | Yes | Yes | -| 2 | `ONIG_SYN_OP2_OPTION_PERL` | - | - | - | - | - | Yes | Yes | Yes | - | - | -| 3 | `ONIG_SYN_OP2_OPTION_RUBY` | - | - | - | - | - | - | - | - | Yes | - | -| 4 | `ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT` | - | - | - | - | - | - | - | - | Yes | Yes | -| 5 | `ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL` | - | - | - | - | - | Yes | - | - | - | - | -| 6 | `ONIG_SYN_OP2_CCLASS_SET_OP` | - | - | - | - | - | - | - | Yes | Yes | Yes | -| 7 | `ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP` | - | - | - | - | - | - | - | Yes | Yes | Yes | -| 8 | `ONIG_SYN_OP2_ESC_K_NAMED_BACKREF` | - | - | - | - | - | - | - | Yes | Yes | Yes | -| 9 | `ONIG_SYN_OP2_ESC_G_SUBEXP_CALL` | - | - | - | - | - | - | - | Yes | Yes | Yes | -| 10 | `ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY` | - | - | - | - | - | - | - | - | - | - | -| 11 | `ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL` | - | - | - | - | - | - | - | - | Yes | Yes | -| 12 | `ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META` | - | - | - | - | - | - | - | - | Yes | Yes | -| 13 | `ONIG_SYN_OP2_ESC_V_VTAB` | - | - | - | - | - | Yes | - | - | Yes | Yes | -| 14 | `ONIG_SYN_OP2_ESC_U_HEX4` | - | - | - | - | - | Yes | - | - | Yes | Yes | -| 15 | `ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR` | - | - | Yes | - | - | - | - | - | - | - | -| 16 | `ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY` | - | - | - | - | - | Yes | Yes | Yes | Yes | Yes | -| 17 | `ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT` | - | - | - | - | - | - | Yes | Yes | Yes | Yes | -| 18 | `ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS` | - | - | - | - | - | - | - | - | - | - | -| 19 | `ONIG_SYN_OP2_ESC_H_XDIGIT` | - | - | - | - | - | - | - | - | Yes | Yes | -| 20 | `ONIG_SYN_OP2_INEFFECTIVE_ESCAPE` | - | - | - | - | - | - | - | - | - | - | -| 21 | `ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE` | - | - | - | - | - | - | Yes | Yes | Yes | Yes | -| 22 | `ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP` | - | - | - | - | - | - | Yes | Yes | Yes | Yes | -| 23 | `ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE` | - | - | - | - | - | - | Yes | Yes | Yes | Yes | -| 24 | `ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT` | - | - | - | - | - | - | Yes | Yes | - | Yes | -| 25 | `ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP` | - | - | - | - | - | - | - | - | Yes | Yes | -| 26 | `ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT` | - | - | - | - | - | - | Yes | Yes | Yes | Yes | -| 27 | `ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL` | - | - | - | - | - | - | - | Yes | - | - | -| 28 | `ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS` | - | - | - | - | - | - | Yes | Yes | Yes | - | -| 29 | `ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME` | - | - | - | - | - | - | Yes | Yes | Yes | - | -| 30 | `ONIG_SYN_OP2_OPTION_ONIGURUMA` | - | - | - | - | - | - | - | - | - | Yes | +| ID | Option | Onig | Pythn | Ruby | PeNG | Perl | Java | Gnu | Grep | Emacs | PosEx | PosB | ASIS | +| ----- | ---------------------------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | +| 0 | `ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE` | - | - | - | Yes | Yes | Yes | - | - | - | - | - | - | +| 1 | `ONIG_SYN_OP2_QMARK_GROUP_EFFECT` | Yes | Yes | Yes | Yes | Yes | Yes | - | - | Yes | - | - | - | +| 2 | `ONIG_SYN_OP2_OPTION_PERL` | - | Yes | - | Yes | Yes | Yes | - | - | - | - | - | - | +| 3 | `ONIG_SYN_OP2_OPTION_RUBY` | - | - | Yes | - | - | - | - | - | - | - | - | - | +| 4 | `ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT` | Yes | - | Yes | Yes | Yes | Yes | - | - | - | - | - | - | +| 5 | `ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL` | - | - | - | Yes | Yes | Yes | - | - | - | - | - | - | +| 6 | `ONIG_SYN_OP2_CCLASS_SET_OP` | Yes | - | Yes | - | - | Yes | - | - | - | - | - | - | +| 7 | `ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP` | Yes | - | Yes | Yes | - | - | - | - | - | - | - | - | +| 8 | `ONIG_SYN_OP2_ESC_K_NAMED_BACKREF` | Yes | - | Yes | Yes | - | - | - | - | - | - | - | - | +| 9 | `ONIG_SYN_OP2_ESC_G_SUBEXP_CALL` | Yes | - | Yes | Yes | - | - | - | - | - | - | - | - | +| 10 | `ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY` | - | - | - | - | - | - | - | - | - | - | - | - | +| 11 | `ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL` | Yes | - | Yes | - | - | - | - | - | - | - | - | - | +| 12 | `ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META` | Yes | - | Yes | - | - | - | - | - | - | - | - | - | +| 13 | `ONIG_SYN_OP2_ESC_V_VTAB` | Yes | Yes | Yes | - | - | Yes | - | - | - | - | - | - | +| 14 | `ONIG_SYN_OP2_ESC_U_HEX4` | Yes | Yes | Yes | - | - | Yes | - | - | - | - | - | - | +| 15 | `ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR` | - | - | - | - | - | - | - | - | Yes | - | - | - | +| 16 | `ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY` | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | - | +| 17 | `ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT` | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | - | - | +| 19 | `ONIG_SYN_OP2_ESC_H_XDIGIT` | Yes | - | Yes | - | - | - | - | - | - | - | - | - | +| 20 | `ONIG_SYN_OP2_INEFFECTIVE_ESCAPE` | - | - | - | - | - | - | - | - | - | - | - | Yes | +| 21 | `ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE` | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | - | - | +| 22 | `ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP` | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | - | - | +| 23 | `ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE` | Yes | - | Yes | Yes | Yes | - | - | - | - | - | - | - | +| 24 | `ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT` | Yes | - | - | Yes | Yes | - | - | - | - | - | - | - | +| 25 | `ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP` | Yes | - | Yes | Yes | Yes | - | - | - | - | - | - | - | +| 26 | `ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT` | Yes | - | Yes | Yes | Yes | - | - | - | - | - | - | - | +| 27 | `ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL` | - | - | - | Yes | - | - | - | - | - | - | - | - | +| 28 | `ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS` | Yes | - | - | Yes | Yes | - | - | - | - | - | - | - | +| 29 | `ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME` | Yes | Yes | - | Yes | Yes | - | - | - | - | - | - | - | +| 30 | `ONIG_SYN_OP2_OPTION_ONIGURUMA` | Yes | - | - | - | - | - | - | - | - | - | - | - | +| 31 | `ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME` | - | Yes | - | - | - | - | - | - | - | - | - | - | ### Syntax Flags (syn) -| ID | Option | PosB | PosEx | Emacs | Grep | Gnu | Java | Perl | PeNG | Ruby | Onig | -| ----- | --------------------------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | -| 0 | `ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS` | - | Yes | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 1 | `ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS` | - | - | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 2 | `ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP` | - | Yes | - | - | - | - | - | - | - | - | -| 3 | `ONIG_SYN_ALLOW_INVALID_INTERVAL` | - | - | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 4 | `ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV` | - | - | - | - | - | - | - | - | Yes | Yes | -| 5 | `ONIG_SYN_STRICT_CHECK_BACKREF` | - | - | - | - | - | - | - | - | - | - | -| 6 | `ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND` | - | - | - | - | - | Yes | - | - | Yes | Yes | -| 7 | `ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP` | - | - | - | - | - | - | - | Yes | Yes | Yes | -| 8 | `ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME` | - | - | - | - | - | - | - | Yes | Yes | Yes | -| 9 | `ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY` | - | - | - | - | - | - | - | - | Yes | Yes | -| 10 | `ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH` | - | - | - | - | - | Yes | Yes | Yes | - | - | -| 11 | `ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND` | - | - | - | - | - | Yes | - | - | - | Yes | -| 20 | `ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC` | - | - | - | Yes | - | - | - | - | - | - | -| 21 | `ONIG_SYN_BACKSLASH_ESCAPE_IN_CC` | - | - | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 22 | `ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC` | - | - | Yes | Yes | - | - | - | - | - | - | -| 23 | `ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC` | - | Yes | - | - | Yes | Yes | Yes | Yes | Yes | Yes | -| 24 | `ONIG_SYN_WARN_CC_OP_NOT_ESCAPED` | - | - | - | - | - | - | - | - | Yes | Yes | -| 25 | `ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT` | - | - | - | - | - | - | - | - | Yes | Yes | -| 26 | `ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC` | - | - | - | - | - | - | - | - | - | Yes | -| 31 | `ONIG_SYN_CONTEXT_INDEP_ANCHORS` | - | Yes | - | - | Yes | Yes | Yes | Yes | Yes | Yes | +| ID | Option | Onig | Pythn | Ruby | PeNG | Perl | Java | Gnu | Grep | Emacs | PosEx | PosB | ASIS | +| ----- | ---------------------------------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | +| 0 | `ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | Yes | - | - | +| 1 | `ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | Yes | - | - | +| 2 | `ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP` | - | - | - | - | - | - | - | - | - | Yes | - | - | +| 3 | `ONIG_SYN_ALLOW_INVALID_INTERVAL` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | +| 4 | `ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV` | Yes | Yes | Yes | - | - | - | - | - | - | - | - | - | +| 5 | `ONIG_SYN_STRICT_CHECK_BACKREF` | - | - | - | - | - | - | - | - | - | - | - | - | +| 6 | `ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND` | Yes | - | Yes | - | - | Yes | - | - | - | - | - | - | +| 7 | `ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP` | Yes | - | Yes | Yes | - | - | - | - | - | - | - | - | +| 8 | `ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME` | Yes | - | Yes | Yes | - | - | - | - | - | - | - | - | +| 9 | `ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY` | Yes | - | Yes | - | - | - | - | - | - | - | - | - | +| 10 | `ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH` | - | Yes | - | Yes | Yes | Yes | - | - | - | - | - | - | +| 11 | `ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND` | Yes | - | - | - | - | Yes | - | - | - | - | - | - | +| 12 | `ONIG_SYN_PYTHON` | - | Yes | - | - | - | - | - | - | - | - | - | - | +| 13 | `ONIG_SYN_WHOLE_OPTIONS` | Yes | - | - | - | - | - | - | - | - | - | - | - | +| 14 | `ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP` | - | - | - | - | - | - | - | Yes | - | - | Yes | - | +| 20 | `ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC` | - | - | - | - | - | - | - | Yes | - | - | - | - | +| 21 | `ONIG_SYN_BACKSLASH_ESCAPE_IN_CC` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | - | - | - | +| 22 | `ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC` | - | - | - | - | - | - | - | Yes | Yes | - | - | - | +| 23 | `ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | Yes | - | - | +| 24 | `ONIG_SYN_WARN_CC_OP_NOT_ESCAPED` | Yes | - | Yes | - | - | - | - | - | - | - | - | - | +| 25 | `ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT` | Yes | - | Yes | - | - | - | - | - | - | - | - | - | +| 26 | `ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC` | Yes | - | - | - | - | - | - | - | - | - | - | - | +| 27 | `ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC` | - | - | - | Yes | Yes | Yes | - | - | - | - | - | - | +| 31 | `ONIG_SYN_CONTEXT_INDEP_ANCHORS` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | Yes | - | - | diff --git a/doc/UNICODE_PROPERTIES b/doc/UNICODE_PROPERTIES index 879f559..7ab6d78 100644 --- a/doc/UNICODE_PROPERTIES +++ b/doc/UNICODE_PROPERTIES @@ -1,4 +1,4 @@ -Unicode Properties (Unicode Version: 14.0.0, Emoji: 14.0) +Unicode Properties (Unicode Version: 16.0.0, Emoji: 16.0) ASCII_Hex_Digit Adlam @@ -68,6 +68,7 @@ Emoji_Presentation Ethiopic Extended_Pictographic Extender +Garay Georgian Glagolitic Gothic @@ -79,6 +80,7 @@ Greek Gujarati Gunjala_Gondi Gurmukhi +Gurung_Khema Han Hangul Hanifi_Rohingya @@ -90,10 +92,14 @@ Hiragana Hyphen IDS_Binary_Operator IDS_Trinary_Operator +IDS_Unary_Operator +ID_Compat_Math_Continue +ID_Compat_Math_Start ID_Continue ID_Start Ideographic Imperial_Aramaic +InCB Inherited Inscriptional_Pahlavi Inscriptional_Parthian @@ -102,12 +108,14 @@ Join_Control Kaithi Kannada Katakana +Kawi Kayah_Li Kharoshthi Khitan_Small_Script Khmer Khojki Khudawadi +Kirat_Rai L LC Lao @@ -145,12 +153,14 @@ Meroitic_Hieroglyphs Miao Mn Modi +Modifier_Combining_Mark Mongolian Mro Multani Myanmar N Nabataean +Nag_Mundari Nandinagari Nd New_Tai_Lue @@ -163,6 +173,7 @@ Nushu Nyiakeng_Puachue_Hmong Ogham Ol_Chiki +Ol_Onal Old_Hungarian Old_Italic Old_North_Arabian @@ -223,6 +234,7 @@ Sogdian Sora_Sompeng Soyombo Sundanese +Sunuwar Syloti_Nagri Syriac Tagalog @@ -241,7 +253,9 @@ Thai Tibetan Tifinagh Tirhuta +Todhri Toto +Tulu_Tigalari Ugaritic Unified_Ideograph Unknown @@ -324,6 +338,7 @@ Ext ExtPict Final_Punctuation Format +Gara Geor Glag Gong @@ -335,6 +350,7 @@ Grek Gr_Ext Gr_Link Gujr +Gukh Guru Hang Hani @@ -352,6 +368,7 @@ Ideo IDS IDSB IDST +IDSU Initial_Punctuation Ital Java @@ -363,6 +380,7 @@ Khmr Khoj Kits Knda +Krai Kthi Lana Laoo @@ -385,6 +403,7 @@ Mani Marc Mark Math_Symbol +MCM Medf Mend Merc @@ -397,6 +416,7 @@ Mroo Mtei Mult Mymr +Nagm Nand Narb Nbat @@ -414,6 +434,7 @@ OIDS Olck OLower OMath +Onao Open_Punctuation Orkh Orya @@ -440,6 +461,7 @@ Phnx Plrd Private_Use Prti +punct Punctuation Qaac Qaai @@ -467,6 +489,7 @@ Space_Separator Spacing_Mark STerm Sund +Sunu Surrogate Sylo Symbol @@ -487,6 +510,8 @@ Tibt Tirh Titlecase_Letter Tnsa +Todr +Tutg Ugar UIdeo Unassigned @@ -692,6 +717,7 @@ In_Osage In_Elbasan In_Caucasian_Albanian In_Vithkuqi +In_Todhri In_Linear_A In_Latin_Extended_F In_Cypriot_Syllabary @@ -714,8 +740,10 @@ In_Psalter_Pahlavi In_Old_Turkic In_Old_Hungarian In_Hanifi_Rohingya +In_Garay In_Rumi_Numeral_Symbols In_Yezidi +In_Arabic_Extended_C In_Old_Sogdian In_Sogdian In_Old_Uyghur @@ -732,12 +760,14 @@ In_Khojki In_Multani In_Khudawadi In_Grantha +In_Tulu_Tigalari In_Newa In_Tirhuta In_Siddham In_Modi In_Mongolian_Supplement In_Takri +In_Myanmar_Extended_C In_Ahom In_Dogra In_Warang_Citi @@ -747,11 +777,14 @@ In_Zanabazar_Square In_Soyombo In_Unified_Canadian_Aboriginal_Syllabics_Extended_A In_Pau_Cin_Hau +In_Devanagari_Extended_A +In_Sunuwar In_Bhaiksuki In_Marchen In_Masaram_Gondi In_Gunjala_Gondi In_Makasar +In_Kawi In_Lisu_Supplement In_Tamil_Supplement In_Cuneiform @@ -760,12 +793,15 @@ In_Early_Dynastic_Cuneiform In_Cypro_Minoan In_Egyptian_Hieroglyphs In_Egyptian_Hieroglyph_Format_Controls +In_Egyptian_Hieroglyphs_Extended_A In_Anatolian_Hieroglyphs +In_Gurung_Khema In_Bamum_Supplement In_Mro In_Tangsa In_Bassa_Vah In_Pahawh_Hmong +In_Kirat_Rai In_Medefaidrin In_Miao In_Ideographic_Symbols_and_Punctuation @@ -780,10 +816,12 @@ In_Small_Kana_Extension In_Nushu In_Duployan In_Shorthand_Format_Controls +In_Symbols_for_Legacy_Computing_Supplement In_Znamenny_Musical_Notation In_Byzantine_Musical_Symbols In_Musical_Symbols In_Ancient_Greek_Musical_Notation +In_Kaktovik_Numerals In_Mayan_Numerals In_Tai_Xuan_Jing_Symbols In_Counting_Rod_Numerals @@ -791,9 +829,12 @@ In_Mathematical_Alphanumeric_Symbols In_Sutton_SignWriting In_Latin_Extended_G In_Glagolitic_Supplement +In_Cyrillic_Extended_D In_Nyiakeng_Puachue_Hmong In_Toto In_Wancho +In_Nag_Mundari +In_Ol_Onal In_Ethiopic_Extended_B In_Mende_Kikakui In_Adlam @@ -821,8 +862,10 @@ In_CJK_Unified_Ideographs_Extension_C In_CJK_Unified_Ideographs_Extension_D In_CJK_Unified_Ideographs_Extension_E In_CJK_Unified_Ideographs_Extension_F +In_CJK_Unified_Ideographs_Extension_I In_CJK_Compatibility_Ideographs_Supplement In_CJK_Unified_Ideographs_Extension_G +In_CJK_Unified_Ideographs_Extension_H In_Tags In_Variation_Selectors_Supplement In_Supplementary_Private_Use_Area_A diff --git a/doc/onig_syn_md.c b/doc/onig_syn_md.c new file mode 100644 index 0000000..6e29e5a --- /dev/null +++ b/doc/onig_syn_md.c @@ -0,0 +1,667 @@ +/* + * onig_syn_md.c + * Copyright (c) 2024 K.Kosako + * + * Oniguruma OWner: K.Kosako https://github.com/kkos/oniguruma + * SYNTAX.md : seanofw https://github.com/seanofw + * onig_syn_md.c : tonco-miyazawa https://github.com/tonco-miyazawa + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include "oniguruma.h" + +#define ONIG_SYN_MD_VERSION_INT (00002) +#define TOTAL_NUM_OF_BITS (32) + +#define PRINT_SEPARATOR (printf("===================================================\n")) + +#define INPUT_SYNTAX(syn, abb, set_in) { (syn), (#syn), (abb), (set_in) } +#define INPUT_FLAG(arg) { (arg), (#arg) } + + + +/************************************* Settings *********************************************/ +/* NOW_MODE +1: (OP) +2: (OP2) +3: (BEHAVIOR) */ +#define NOW_MODE (1) + +/* #define PRINT_UNDEFINED_FLAG */ + +/* #define PRINT_SYNTAX_FORWARD_ORDER */ + +/* #define USE_YOUR_OWN_SYNTAX */ + +/* #define PRINT_DEBUG_INFO */ + +#define PRINT_VERSION_INFO +#define PRINT_SET_IN_INFO +#define PRINT_TABLE_INFO +#define WARN_UNDEFINED_FLAG_USED +/************************************* Settings *********************************************/ + + +/************************ Switch between OP, OP2, BEHAVIOR **********************************/ +#if NOW_MODE == 1 + +#define SYNTAX_MEMBER_NAME ("op") +#define TITLE_STRING ("Group One Flags (op)") +#define SYNTAX_MEMBER(syn) ((syn)->op) +#define IS_SYNTAX_MEMBER(syn, opm) (((syn)->op & (opm)) != 0) + +#elif NOW_MODE == 2 + +#define SYNTAX_MEMBER_NAME ("op2") +#define TITLE_STRING ("Group Two Flags (op2)") +#define SYNTAX_MEMBER(syn) ((syn)->op2) +#define IS_SYNTAX_MEMBER(syn, opm) (((syn)->op2 & (opm)) != 0) + +#elif NOW_MODE == 3 + +#define SYNTAX_MEMBER_NAME ("behavior") +#define TITLE_STRING ("Syntax Flags (syn)") +#define SYNTAX_MEMBER(syn) ((syn)->behavior) +#define IS_SYNTAX_MEMBER(syn, opm) (((syn)->behavior & (opm)) != 0) + +#else +#error "Check 'NOW_MODE' value." +#endif +/************************ Switch between OP, OP2, BEHAVIOR **********************************/ + + +/*********************************** Your own syntax ****************************************/ +#ifdef USE_YOUR_OWN_SYNTAX +static OnigSyntaxType OnigSyntaxYourOwn; +#define ONIG_SYNTAX_YOUROWN (&OnigSyntaxYourOwn) + +static OnigSyntaxType OnigSyntaxYourOwn = { + 0xf0f0f0f0 /* Group One Flags (op) */ + , 0xffff0000 /* Group Two Flags (op2) */ + , 0x00ff00ff /* Syntax Flags (syn) */ + , ONIG_OPTION_NONE + , + { + (OnigCodePoint )'\\' /* esc */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ + } +}; +#endif +/*********************************** Your own syntax ****************************************/ + + +/************************************** syntax data *****************************************/ +typedef struct { + OnigSyntaxType* syn; + char *name; + char *abb; + char *set_in; +} syn_data; + + +static syn_data syn_data_list[] = +{ + /* INPUT_SYNTAX(syn, abb, set_in) ===> { (syn), (#syn), (abb), (set_in) } */ + + INPUT_SYNTAX( ONIG_SYNTAX_ASIS , "ASIS" , "ASIS" ) + , INPUT_SYNTAX( ONIG_SYNTAX_POSIX_BASIC , "PosB" , "PosixBasic" ) + , INPUT_SYNTAX( ONIG_SYNTAX_POSIX_EXTENDED , "PosEx", "PosixExtended") + , INPUT_SYNTAX( ONIG_SYNTAX_EMACS , "Emacs", "Emacs") + , INPUT_SYNTAX( ONIG_SYNTAX_GREP , "Grep" , "Grep" ) + , INPUT_SYNTAX( ONIG_SYNTAX_GNU_REGEX , "Gnu" , "GnuRegex" ) + , INPUT_SYNTAX( ONIG_SYNTAX_JAVA , "Java" , "Java" ) + , INPUT_SYNTAX( ONIG_SYNTAX_PERL , "Perl" , "Perl" ) + , INPUT_SYNTAX( ONIG_SYNTAX_PERL_NG , "PeNG" , "Perl_NG" ) + , INPUT_SYNTAX( ONIG_SYNTAX_RUBY , "Ruby" , "Ruby" ) + , INPUT_SYNTAX( ONIG_SYNTAX_PYTHON , "Pythn", "Python") + , INPUT_SYNTAX( ONIG_SYNTAX_ONIGURUMA , "Onig" , "Oniguruma" ) + +#ifdef USE_YOUR_OWN_SYNTAX + , INPUT_SYNTAX( ONIG_SYNTAX_YOUROWN , "Your" , "YourOwn" ) +#endif +}; + +static const int num_of_syntax_types = (sizeof syn_data_list /sizeof syn_data_list[0]); + + +static void print_syn_data_list() +{ + int y; + PRINT_SEPARATOR; + for (y = 0; y < num_of_syntax_types; y++) + { + printf( "\nsyn_data_list[%d]\n", y); + printf( "name='%s'\n" , syn_data_list[y].name); + + printf( "syn->"); + printf( SYNTAX_MEMBER_NAME ); + printf( "= 0x%08x\n", SYNTAX_MEMBER(syn_data_list[y].syn) ); + + printf( "abb='%s'\n" , syn_data_list[y].abb); + printf( "set_in='%s'\n" , syn_data_list[y].set_in); + }; + return ; +} +/************************************** syntax data *****************************************/ + + +/************************************** flag data *******************************************/ +typedef struct { + unsigned int num; + char *name; +} flag_data; + + +/* OP */ +#if NOW_MODE == 1 +static flag_data flag_data_list[] = +{ + +/* The following are no need to sort them in bit order. */ + +/* INPUT_FLAG(arg) ===> { (arg), (#arg) } */ + + INPUT_FLAG( ONIG_SYN_OP_VARIABLE_META_CHARACTERS ) + , INPUT_FLAG( ONIG_SYN_OP_DOT_ANYCHAR ) + , INPUT_FLAG( ONIG_SYN_OP_ASTERISK_ZERO_INF ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF ) + , INPUT_FLAG( ONIG_SYN_OP_PLUS_ONE_INF ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_PLUS_ONE_INF ) + , INPUT_FLAG( ONIG_SYN_OP_QMARK_ZERO_ONE ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_QMARK_ZERO_ONE ) + , INPUT_FLAG( ONIG_SYN_OP_BRACE_INTERVAL ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_BRACE_INTERVAL ) + , INPUT_FLAG( ONIG_SYN_OP_VBAR_ALT ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_VBAR_ALT ) + , INPUT_FLAG( ONIG_SYN_OP_LPAREN_SUBEXP ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_LPAREN_SUBEXP ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR ) + , INPUT_FLAG( ONIG_SYN_OP_DECIMAL_BACKREF ) + , INPUT_FLAG( ONIG_SYN_OP_BRACKET_CC ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_W_WORD ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_B_WORD_BOUND ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_S_WHITE_SPACE ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_D_DIGIT ) + , INPUT_FLAG( ONIG_SYN_OP_LINE_ANCHOR ) + , INPUT_FLAG( ONIG_SYN_OP_POSIX_BRACKET ) + , INPUT_FLAG( ONIG_SYN_OP_QMARK_NON_GREEDY ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_CONTROL_CHARS ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_C_CONTROL ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_OCTAL3 ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_X_HEX2 ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_X_BRACE_HEX8 ) + , INPUT_FLAG( ONIG_SYN_OP_ESC_O_BRACE_OCTAL ) +}; +#endif + + +/* OP2 */ +#if NOW_MODE == 2 +static flag_data flag_data_list[] = +{ + INPUT_FLAG( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE ) + , INPUT_FLAG( ONIG_SYN_OP2_QMARK_GROUP_EFFECT ) + , INPUT_FLAG( ONIG_SYN_OP2_OPTION_PERL ) + , INPUT_FLAG( ONIG_SYN_OP2_OPTION_RUBY ) + , INPUT_FLAG( ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT ) + , INPUT_FLAG( ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL ) + , INPUT_FLAG( ONIG_SYN_OP2_CCLASS_SET_OP ) + , INPUT_FLAG( ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_K_NAMED_BACKREF ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_G_SUBEXP_CALL ) + , INPUT_FLAG( ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_V_VTAB ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_U_HEX4 ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT ) + /* , INPUT_FLAG( ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS ) */ + , INPUT_FLAG( ONIG_SYN_OP2_ESC_H_XDIGIT ) + , INPUT_FLAG( ONIG_SYN_OP2_INEFFECTIVE_ESCAPE ) + , INPUT_FLAG( ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE ) + , INPUT_FLAG( ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT ) + , INPUT_FLAG( ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP ) + /* , INPUT_FLAG( ONIG_SYN_OP2_ESC_X_Y_GRAPHEME_CLUSTER ) */ /* obsoleted: use next */ + , INPUT_FLAG( ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT ) + , INPUT_FLAG( ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL ) + , INPUT_FLAG( ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS ) + , INPUT_FLAG( ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME ) + , INPUT_FLAG( ONIG_SYN_OP2_OPTION_ONIGURUMA ) + , INPUT_FLAG( ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME ) +}; +#endif + + +/* BEHAVIOR */ +#if NOW_MODE == 3 +static flag_data flag_data_list[] = +{ + INPUT_FLAG( ONIG_SYN_CONTEXT_INDEP_ANCHORS ) + , INPUT_FLAG( ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS ) + , INPUT_FLAG( ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS ) + , INPUT_FLAG( ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP ) + , INPUT_FLAG( ONIG_SYN_ALLOW_INVALID_INTERVAL ) + , INPUT_FLAG( ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV ) + , INPUT_FLAG( ONIG_SYN_STRICT_CHECK_BACKREF ) + , INPUT_FLAG( ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND ) + , INPUT_FLAG( ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP ) + , INPUT_FLAG( ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME ) + , INPUT_FLAG( ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY ) + , INPUT_FLAG( ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH ) + , INPUT_FLAG( ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND ) + , INPUT_FLAG( ONIG_SYN_PYTHON ) + , INPUT_FLAG( ONIG_SYN_WHOLE_OPTIONS ) + , INPUT_FLAG( ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP ) + + /* syntax (behavior) in char class [...] */ + , INPUT_FLAG( ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC ) + , INPUT_FLAG( ONIG_SYN_BACKSLASH_ESCAPE_IN_CC ) + , INPUT_FLAG( ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC ) + , INPUT_FLAG( ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC ) + , INPUT_FLAG( ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC ) + , INPUT_FLAG( ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC ) + + /* syntax (behavior) warning */ + , INPUT_FLAG( ONIG_SYN_WARN_CC_OP_NOT_ESCAPED ) + , INPUT_FLAG( ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT ) +}; +#endif + + +static const int num_of_flags = (sizeof flag_data_list /sizeof flag_data_list[0]); + +static int flag_name_max_len = 0; + + +static int flag_name_max_len_int() +{ + int i, n, max_len; + max_len = 0; + + for (i = 0; i < num_of_flags; i++) + { + n = strlen(flag_data_list[i].name); + if ( max_len < n ) + { + max_len = n; + } + } + + /* Debug: printf("max_len=%d\n", max_len); */ + return max_len; +} + + +static int convert_bit_shift_num_to_flag_data_list_element( int bit_shift_num ) +{ + int i; + for (i = 0; i < num_of_flags; i++) + { + if ( flag_data_list[i].num == (1U << bit_shift_num) ){ + +#ifdef PRINT_DEBUG_INFO + printf("(1U << %d) ===> flag_data_list[%d]\n", bit_shift_num, i ); +#endif + return i; + } + } + +#ifdef PRINT_DEBUG_INFO + printf("(1U << %d) ===> ( none )\n", bit_shift_num ); +#endif + + /* If not found, returns "-1". This is not Error. */ + return -1; +} + + +static int convert_num_to_bit_shift_num(unsigned int arg_num){ + int x; + for (x = 0; x < TOTAL_NUM_OF_BITS; x++) + { + if ( arg_num == (1U << x) ) + { + return x; + } + } + + /* Error */ + printf("<Error:line%d> '0x%08x' is not bit flag.\n", __LINE__, arg_num ); + exit(-1); + return -1; +} + + +static int check_flag_data_duplication() +{ + int i, shift_num; + unsigned int used_bits = 0; + + for (i = 0; i < num_of_flags; i++) + { + if ( (used_bits & flag_data_list[i].num) != 0 ){ + + shift_num = convert_num_to_bit_shift_num(flag_data_list[i].num); + + PRINT_SEPARATOR; + fprintf(stderr, "\n<Error:line%d> The following bit has already been used.\n", __LINE__ ); + fprintf(stderr, "flag_data_list[%d] : '%s' ", i, flag_data_list[i].name); + fprintf(stderr, "(1U << %d)\n", shift_num); + +#ifndef PRINT_DEBUG_INFO + fprintf(stderr, "\nPlease use '#define PRINT_DEBUG_INFO'.\n"); +#endif + exit(-1); + return -1; + } + used_bits |= flag_data_list[i].num; + } + return 0; +} + + +static void print_flag_data_list() +{ + int i, shift_num; + + PRINT_SEPARATOR; + for (i = 0; i < num_of_flags; i++) + { + shift_num = convert_num_to_bit_shift_num( flag_data_list[i].num ); + + printf( "\nflag_data_list[%d]\n", i); + printf( "name='%s' " , flag_data_list[i].name); + printf( "(1U << %d)\n" , shift_num); + printf( "num=0x%08x\n" , flag_data_list[i].num); + } + return ; +} +/************************************** flag data *******************************************/ + + +/************************************** print table *****************************************/ +static void print_table_head() +{ + int i, y; + + printf("\n### "); + printf( TITLE_STRING ); + printf("\n\n| ID | Option"); + for (i = 0; i < (flag_name_max_len - 1); i++) + { + printf(" "); + } + printf("|"); + + /* ex. print "PeNG " */ +#ifdef PRINT_SYNTAX_FORWARD_ORDER + for (y = 0; y < num_of_syntax_types; y++) +#else + for (y = num_of_syntax_types -1; y > -1; y--) +#endif + { + printf(" %-5.5s |", syn_data_list[y].abb ); + } + + printf("\n| ----- | "); + for (i = 0; i < (flag_name_max_len + 4); i++) + { + printf("-"); + } + printf(" |"); + + for (y = 0; y < num_of_syntax_types; y++) + { + printf(" ----- |"); + } + printf("\n"); + return ; +} + + +static void print_table_body_one_line( int shift_num ) +{ + int i, y, elem, name_chars; + + elem = convert_bit_shift_num_to_flag_data_list_element(shift_num); + + printf("| %2d | ", shift_num); + + if (elem < 0){ + name_chars = printf(" `( Undefined )`"); /* elem == -1 */ + } else { + name_chars = printf("`%s`", flag_data_list[elem].name); + } + + for ( i=0; i < (flag_name_max_len - name_chars + 5); i++){ printf(" "); } + printf("|"); + + /* ex. print ' Yes |' */ +#ifdef PRINT_SYNTAX_FORWARD_ORDER + for (y = 0; y < num_of_syntax_types; y++) +#else + for (y = num_of_syntax_types -1; y > -1; y--) +#endif + { + if ( IS_SYNTAX_MEMBER(syn_data_list[y].syn, (1U << shift_num)) ) + { + printf(" Yes |"); + } else { + printf(" - |"); + } + } + printf("\n"); + return ; +} + + +static void print_table_body() +{ + int x, elem; + for (x = 0; x < TOTAL_NUM_OF_BITS; x++) + { + elem = convert_bit_shift_num_to_flag_data_list_element( x ); + + if (elem < 0) + { +#if !(defined( PRINT_UNDEFINED_FLAG )) + continue; +#endif + } + print_table_body_one_line(x); + } + return ; +} + +/************************************** print table *****************************************/ + + +/************************************* print Set_in *****************************************/ +static void print_set_in_one_line(int shift_num) +{ + int y, elem, count; + + elem = convert_bit_shift_num_to_flag_data_list_element(shift_num); + + if (elem < 0) + { + printf("### %d. ( Undefined )\n", shift_num ); /* elem == -1 */ + } else { + printf("### %d. %s\n", shift_num, flag_data_list[elem].name ); + } + + count = 0; + printf("_Set in: "); +#ifdef PRINT_SYNTAX_FORWARD_ORDER + for (y = 0; y < num_of_syntax_types; y++) +#else + for (y = num_of_syntax_types -1; y > -1; y--) +#endif + { + if ( IS_SYNTAX_MEMBER(syn_data_list[y].syn, (1U << shift_num)) ) + { + if (count > 0){ printf(", "); }; + printf("%s", syn_data_list[y].set_in); + count++; + } + } /* for y */ + + if (count==0){ printf("none"); }; + + printf("_\n\n"); + return ; +} + + +static void print_set_in() +{ + int x, elem; + + PRINT_SEPARATOR; + printf("The following are 'Set in' for oniguruma/doc/SYNTAX.md\n\n## "); + printf( TITLE_STRING ); + printf("\n\n"); + for (x = 0; x < TOTAL_NUM_OF_BITS; x++) + { + elem = convert_bit_shift_num_to_flag_data_list_element( x ); + + if (elem < 0) + { +#if !(defined( PRINT_UNDEFINED_FLAG )) + continue; +#endif + } + + print_set_in_one_line(x); + } + return ; +} + +/************************************* print Set_in *****************************************/ + + +/************************************** main() *****************************************/ + +static void print_version() +{ + printf( "[ onig_syn_md.c ver.%05d ] ", ONIG_SYN_MD_VERSION_INT ); + printf("The loaded oniguruma is '%d.%d.%d'.\n" + , ONIGURUMA_VERSION_MAJOR + , ONIGURUMA_VERSION_MINOR + , ONIGURUMA_VERSION_TEENY ); + return ; +} + + +static void print_debug() +{ + int x; + + print_version(); + print_syn_data_list(); + print_flag_data_list(); + check_flag_data_duplication(); + + /* print: (1U << x) ===> flag_data_list[elem] */ + PRINT_SEPARATOR; + printf("\nThe following are the array elements that correspond to each bit.\n\n"); + for (x = 0; x < TOTAL_NUM_OF_BITS; x++) + { + convert_bit_shift_num_to_flag_data_list_element(x); + } + return ; +} + + +static void warn_undefined_flag_used() +{ + int x, y, elem; + + for (x = 0; x < TOTAL_NUM_OF_BITS; x++) + { + elem = convert_bit_shift_num_to_flag_data_list_element(x); + + if (elem < 0){ + for (y = 0; y < num_of_syntax_types; y++) + { + if ( IS_SYNTAX_MEMBER( syn_data_list[y].syn, (1U << x) ) ) + { + PRINT_SEPARATOR; + printf("warning: An undefined bit flag is used."); + printf(" (1U << %d)\n\n", x); + print_set_in_one_line( x ); + +#ifndef PRINT_UNDEFINED_FLAG + printf("Please use '#define PRINT_UNDEFINED_FLAG'.\n"); +#endif + return ; + } + } /* for y */ + } /* if elem */ + } /* for x */ + return ; +} + + +extern int main(int argc, char* argv[]) +{ +#ifdef PRINT_DEBUG_INFO + print_debug(); + return 0; +#endif + +#ifdef PRINT_VERSION_INFO + print_version(); +#endif + + flag_name_max_len = flag_name_max_len_int(); + check_flag_data_duplication(); + +#ifdef PRINT_SET_IN_INFO + print_set_in(); +#endif + +#ifdef PRINT_TABLE_INFO + print_table_head(); + print_table_body(); +#endif + +#ifdef WARN_UNDEFINED_FLAG_USED + warn_undefined_flag_used(); +#endif + + /* test */ + /* + printf("\n------ test -------\n"); + + int test_x = 17; + print_set_in_one_line( test_x ); + print_table_body_one_line( test_x ); + printf("--------------------\n"); + */ + + /* To avoid 'gcc -Wall' warnings. */ + if (0) + { + print_debug(); + print_version(); + print_set_in(); + print_table_head(); + print_table_body(); + warn_undefined_flag_used(); + } + + return 0; +} diff --git a/harnesses/base.c b/harnesses/base.c index 78a157a..6be5a8f 100644 --- a/harnesses/base.c +++ b/harnesses/base.c @@ -1,6 +1,6 @@ /* * base.c contributed by Mark Griffin - * Copyright (c) 2019-2021 K.Kosako + * Copyright (c) 2019-2022 K.Kosako */ #include <stdio.h> #include <unistd.h> @@ -20,7 +20,7 @@ #define MATCH_STACK_LIMIT 10000000 #define MAX_REM_SIZE 1048576 #define MAX_SLOW_REM_SIZE 1024 -#define MAX_SLOW_REM_SIZE2 100 +#define MAX_SLOW_REM_SIZE2 80 #define SLOW_RETRY_LIMIT 2000 #define SLOW_SUBEXP_CALL_LIMIT 100 #define MAX_SLOW_BACKWARD_REM_SIZE 200 @@ -201,7 +201,7 @@ each_match_callback_func(const UChar* str, const UChar* end, return ONIG_NORMAL; } -static unsigned int calc_retry_limit(sl, len) +static unsigned int calc_retry_limit(int sl, int len) { unsigned int r; unsigned int upper; @@ -247,10 +247,6 @@ search(regex_t* reg, unsigned char* str, unsigned char* end, OnigOptionType opti len = (size_t )(end - str); retry_limit = calc_retry_limit(sl, len); -#ifdef STANDALONE - fprintf(stdout, "retry limit: %u\n", retry_limit); -#endif - onig_set_retry_limit_in_search(retry_limit); onig_set_match_stack_limit_size(MATCH_STACK_LIMIT); if (sl >= 2) @@ -258,6 +254,11 @@ search(regex_t* reg, unsigned char* str, unsigned char* end, OnigOptionType opti else onig_set_subexp_call_limit_in_search(SUBEXP_CALL_LIMIT); +#ifdef STANDALONE + fprintf(stdout, "retry limit: %u\n", retry_limit); + fprintf(stdout, "end - str: %td\n", end - str); +#endif + if (backward != 0) { start = end; range = str; @@ -315,15 +316,18 @@ static long VALID_STRING_COUNT; static int exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, - char* apattern, char* apattern_end, char* astr, UChar* end, int backward, - int sl) + char* apattern, char* apattern_end, + char* adata_pattern, char* adata_pattern_end, + char* astr, UChar* end, int backward, int sl) { int r; regex_t* reg; OnigErrorInfo einfo; - UChar* pattern = (UChar* )apattern; UChar* str = (UChar* )astr; + UChar* pattern = (UChar* )apattern; UChar* pattern_end = (UChar* )apattern_end; + UChar* data_pattern = (UChar* )adata_pattern; + UChar* data_pattern_end = (UChar* )adata_pattern_end; EXEC_COUNT++; EXEC_COUNT_INTERVAL++; @@ -357,8 +361,11 @@ exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, } REGEX_SUCCESS_COUNT++; - r = search(reg, pattern, pattern_end, options, backward, sl); - if (r == -2) return -2; + if (data_pattern == pattern || + onigenc_is_valid_mbc_string(enc, data_pattern, data_pattern_end) != 0) { + r = search(reg, data_pattern, data_pattern_end, options, backward, sl); + if (r == -2) return -2; + } if (onigenc_is_valid_mbc_string(enc, str, end) != 0) { VALID_STRING_COUNT++; @@ -371,6 +378,28 @@ exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, return 0; } +static size_t +fix_size(size_t x, OnigEncoding enc, int sl, int backward) +{ + if (x > MAX_REM_SIZE) x = MAX_REM_SIZE; + + if (sl > 0) { + if (sl >= 256) { // 256: exists heavy element + if (x > MAX_SLOW_REM_SIZE2) x = MAX_SLOW_REM_SIZE2; + } + else { + if (x > MAX_SLOW_REM_SIZE) x = MAX_SLOW_REM_SIZE; + } + } + if (backward != 0 && enc == ONIG_ENCODING_GB18030) { + if (x > MAX_SLOW_BACKWARD_REM_SIZE) + x = MAX_SLOW_BACKWARD_REM_SIZE; + } + + ADJUST_LEN(enc, x); + return x; +} + static int alloc_exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, int backward, int pattern_size, size_t rem_size, unsigned char *data) @@ -379,8 +408,11 @@ alloc_exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, int r; int sl; + int data_pattern_size; unsigned char *pattern; unsigned char *pattern_end; + unsigned char *data_pattern; + unsigned char *data_pattern_end; unsigned char *str_null_end; #ifdef TEST_PATTERN @@ -389,35 +421,35 @@ alloc_exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, pattern_end = pattern + sizeof(TestPattern); #else pattern = (unsigned char *)malloc(pattern_size != 0 ? pattern_size : 1); - memcpy(pattern, data, pattern_size); pattern_end = pattern + pattern_size; + memcpy(pattern, data, pattern_size); #endif - data += pattern_size; - rem_size -= pattern_size; - - if (rem_size > MAX_REM_SIZE) rem_size = MAX_REM_SIZE; - sl = onig_detect_can_be_slow_pattern(pattern, pattern_end, options, enc, syntax); #ifdef STANDALONE fprintf(stdout, "sl: %d\n", sl); #endif - if (sl > 0) { - if (sl >= 256) { // 256: exists heavy element - if (rem_size > MAX_SLOW_REM_SIZE2) - rem_size = MAX_SLOW_REM_SIZE2; - } - else { - if (rem_size > MAX_SLOW_REM_SIZE) - rem_size = MAX_SLOW_REM_SIZE; - } + + data_pattern_size = fix_size(pattern_size, enc, sl, backward); + + if ( +#ifdef TEST_PATTERN + 1 || +#endif + data_pattern_size != pattern_size) { + data_pattern = (unsigned char *)malloc(data_pattern_size != 0 + ? data_pattern_size : 1); + data_pattern_end = data_pattern + data_pattern_size; + memcpy(data_pattern, data, data_pattern_size); } - if (backward != 0 && enc == ONIG_ENCODING_GB18030) { - if (rem_size > MAX_SLOW_BACKWARD_REM_SIZE) - rem_size = MAX_SLOW_BACKWARD_REM_SIZE; + else { + data_pattern = pattern; + data_pattern_end = pattern_end; } - ADJUST_LEN(enc, rem_size); + data += pattern_size; + rem_size -= pattern_size; + rem_size = fix_size(rem_size, enc, sl, backward); #ifdef STANDALONE fprintf(stdout, "rem_size: %ld\n", rem_size); #endif @@ -427,8 +459,12 @@ alloc_exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, str_null_end = str + rem_size; r = exec(enc, options, syntax, - (char *)pattern, (char *)pattern_end, - (char *)str, str_null_end, backward, sl); + (char* )pattern, (char* )pattern_end, + (char* )data_pattern, (char* )data_pattern_end, + (char* )str, str_null_end, backward, sl); + + if (data_pattern != pattern) + free(data_pattern); free(pattern); free(str); diff --git a/onig-config.cmake.in b/onig-config.cmake.in index 108194e..0a8a702 100644 --- a/onig-config.cmake.in +++ b/onig-config.cmake.in @@ -29,7 +29,7 @@ fi prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +libdir=@onig_pkgconfig_libdir@ includedir=${prefix}/include is_set_exec_prefix=no diff --git a/oniguruma.pc.cmake.in b/oniguruma.pc.cmake.in index fca6772..cb5b959 100644 --- a/oniguruma.pc.cmake.in +++ b/oniguruma.pc.cmake.in @@ -1,6 +1,6 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +libdir=@onig_pkgconfig_libdir@ includedir=${prefix}/include datarootdir=${prefix}/share datadir=${prefix}/share diff --git a/sample/callback_each_match.c b/sample/callback_each_match.c index 10ed56d..15c39dd 100644 --- a/sample/callback_each_match.c +++ b/sample/callback_each_match.c @@ -93,7 +93,7 @@ static int match(UChar* pattern, UChar* str, UChar* at, OnigOptionType options, OnigOptionType runtime_options) { int r; - unsigned char *start, *range, *end; + unsigned char *end; regex_t* reg; OnigErrorInfo einfo; OnigRegion *region; @@ -112,8 +112,6 @@ match(UChar* pattern, UChar* str, UChar* at, OnigOptionType options, OnigOptionT region = onig_region_new(); end = str + strlen((char* )str); - start = str; - range = end; mp = onig_new_match_param(); if (mp == 0) return -2; diff --git a/sbom.cdx.json b/sbom.cdx.json new file mode 100644 index 0000000..4f2ed97 --- /dev/null +++ b/sbom.cdx.json @@ -0,0 +1,44 @@ +{ + "bomFormat": "CycloneDX", + "specVersion": "1.6", + "version": 1, + "metadata": { + "authors": [ + { + "name": "@VCS_SBOM_AUTHORS@" + } + ] + }, + "components": [ + { + "type": "library", + "bom-ref": "pkg:github/kkos/oniguruma@@VCS_TAG@", + "cpe": "cpe:2.3:a:kkos:oniguruma:@VCS_TAG@:*:*:*:*:*:*:*", + "name": "oniguruma", + "version": "@VCS_VERSION@", + "description": "A modern and flexible regular expressions library", + "authors": [ + { + "name": "@VCS_AUTHORS@", + "url": "https://raw.githubusercontent.com/kkos/oniguruma/refs/heads/master/AUTHORS" + } + ], + "supplier": { + "name": "oniguruma developers" + }, + "licenses": [ + { + "license": { + "id": "BSD-2-Clause" + } + } + ], + "externalReferences": [ + { + "type": "vcs", + "url": "https://github.com/kkos/oniguruma" + } + ] + } + ] +} diff --git a/src/ascii.c b/src/ascii.c index f2dc0d3..4d59092 100644 --- a/src/ascii.c +++ b/src/ascii.c @@ -2,7 +2,7 @@ ascii.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2019 K.Kosako + * Copyright (c) 2002-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -44,6 +44,9 @@ init(void) name = "FAIL"; BC0_P(name, fail); name = "MISMATCH"; BC0_P(name, mismatch); +#ifdef USE_SKIP_SEARCH + name = "SKIP"; BC0_P(name, skip); +#endif name = "MAX"; args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; diff --git a/src/gb18030.c b/src/gb18030.c index 1da19b4..3dcfca6 100644 --- a/src/gb18030.c +++ b/src/gb18030.c @@ -2,7 +2,7 @@ gb18030.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2005-2020 KUBO Takehiro <kubo AT jiubao DOT org> + * Copyright (c) 2005-2023 KUBO Takehiro <kubo AT jiubao DOT org> * K.Kosako * All rights reserved. * @@ -180,7 +180,7 @@ gb18030_is_code_ctype(OnigCodePoint code, unsigned int ctype) enum state { S_START = 0, - S_one_C2 = 1, + S_one_C2, S_one_C4, S_one_CM, diff --git a/src/gperf_fold_key_conv.py b/src/gperf_fold_key_conv.py index c633100..d943c3e 100755 --- a/src/gperf_fold_key_conv.py +++ b/src/gperf_fold_key_conv.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # gperf_fold_key_conv.py -# Copyright (c) 2016-2018 K.Kosako +# Copyright (c) 2016-2023 K.Kosako import sys import re @@ -52,7 +52,7 @@ def parse_line(s, key_len): return s def parse_file(f, key_len): - print "/* This file was converted by gperf_fold_key_conv.py\n from gperf output file. */" + print("/* This file was converted by gperf_fold_key_conv.py\n from gperf output file. */") while True: line = f.readline() @@ -60,7 +60,7 @@ def parse_file(f, key_len): break s = parse_line(line, key_len) - print s + print(s) # main diff --git a/src/gperf_unfold_key_conv.py b/src/gperf_unfold_key_conv.py index d999d4e..deda85d 100755 --- a/src/gperf_unfold_key_conv.py +++ b/src/gperf_unfold_key_conv.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # gperf_unfold_key_conv.py -# Copyright (c) 2016-2018 K.Kosako +# Copyright (c) 2016-2023 K.Kosako import sys import re @@ -44,12 +44,12 @@ def parse_line(s): return s def parse_file(f): - print "/* This file was converted by gperf_unfold_key_conv.py\n from gperf output file. */" + print("/* This file was converted by gperf_unfold_key_conv.py\n from gperf output file. */") line = f.readline() while line: s = parse_line(line) - print s + print(s) line = f.readline() diff --git a/src/make_unicode_egcb.sh b/src/make_unicode_egcb.sh index 89cfa18..be60d36 100755 --- a/src/make_unicode_egcb.sh +++ b/src/make_unicode_egcb.sh @@ -2,6 +2,6 @@ NAME=unicode_egcb_data -./make_unicode_egcb_data.py > ${NAME}.c +python3 make_unicode_egcb_data.py > ${NAME}.c exit 0 diff --git a/src/make_unicode_egcb_data.py b/src/make_unicode_egcb_data.py index b6ded62..f74403e 100755 --- a/src/make_unicode_egcb_data.py +++ b/src/make_unicode_egcb_data.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # make_unicode_egcb_data.py -# Copyright (c) 2017-2021 K.Kosako +# Copyright (c) 2017-2024 K.Kosako import sys import re @@ -29,10 +29,10 @@ def check_version_info(s): def print_ranges(ranges): for (start, end) in ranges: - print "0x%06x, 0x%06x" % (start, end) + print("0x%06x, 0x%06x" % (start, end)) def print_prop_and_index(prop, i): - print "%-35s %3d" % (prop + ',', i) + print("%-35s %3d" % (prop + ',', i)) PropIndex[prop] = i def dic_find_by_value(dic, v): @@ -52,7 +52,7 @@ def normalize_ranges(in_ranges, sort=False): r = [] prev = None for (start, end) in ranges: - if prev >= start - 1: + if prev is not None and prev >= start - 1: (pstart, pend) = r.pop() end = max(pend, end) start = pstart @@ -192,10 +192,11 @@ merge_props(PROPS, props) PROPS = sorted(PROPS) -print '/* unicode_egcb_data.c: Generated by make_unicode_egcb_data.py. */' +print('/* unicode_egcb_data.c: Generated by make_unicode_egcb_data.py. */') + COPYRIGHT = ''' /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -221,13 +222,13 @@ COPYRIGHT = ''' */ '''.strip() -print COPYRIGHT -print '' +print(COPYRIGHT) +print('') if VERSION_INFO[0] < 0: raise RuntimeError("Version is not found") -print "#define GRAPHEME_BREAK_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]) -print '' +print("#define GRAPHEME_BREAK_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])) +print('') ranges = [] for prop in PROPS: @@ -243,16 +244,16 @@ for (start, end, prop) in ranges: raise ValueError("{2}:{0} - {1} range overlap prev value {3}".format(start, end, prop, prev)) -print '/*' +print('/*') for prop in PROPS: - print "%s" % prop -print '*/' -print '' + print("%s" % prop) +print('*/') +print('') num_ranges = len(ranges) -print "static int EGCB_RANGE_NUM = %d;" % num_ranges +print("static int EGCB_RANGE_NUM = %d;" % num_ranges) -print 'static EGCB_RANGE_TYPE EGCB_RANGES[] = {' +print('static EGCB_RANGE_TYPE EGCB_RANGES[] = {') for i, (start, end, prop) in enumerate(ranges): if i == num_ranges - 1: comma = '' @@ -260,8 +261,8 @@ for i, (start, end, prop) in enumerate(ranges): comma = ',' type_name = 'EGCB_' + prop - print " {0x%06x, 0x%06x, %s }%s" % (start, end, type_name, comma) + print(" {0x%06x, 0x%06x, %s }%s" % (start, end, type_name, comma)) -print '};' +print('};') sys.exit(0) diff --git a/src/make_unicode_fold.sh b/src/make_unicode_fold.sh index 1d5cc1e..625b3df 100755 --- a/src/make_unicode_fold.sh +++ b/src/make_unicode_fold.sh @@ -9,19 +9,19 @@ TMP3=gperf3.tmp GPERF_OPT='-n -C -T -c -t -j1 -L ANSI-C ' -./make_unicode_fold_data.py > unicode_fold_data.c +python3 make_unicode_fold_data.py > unicode_fold_data.c ${GPERF} ${GPERF_OPT} -F,-1,0 -N onigenc_unicode_unfold_key unicode_unfold_key.gperf > ${TMP0} -./gperf_unfold_key_conv.py < ${TMP0} > unicode_unfold_key.c +python3 gperf_unfold_key_conv.py < ${TMP0} > unicode_unfold_key.c ${GPERF} ${GPERF_OPT} -F,-1 -N onigenc_unicode_fold1_key unicode_fold1_key.gperf > ${TMP1} -./gperf_fold_key_conv.py 1 < ${TMP1} > unicode_fold1_key.c +python3 gperf_fold_key_conv.py 1 < ${TMP1} > unicode_fold1_key.c ${GPERF} ${GPERF_OPT} -F,-1 -N onigenc_unicode_fold2_key unicode_fold2_key.gperf > ${TMP2} -./gperf_fold_key_conv.py 2 < ${TMP2} > unicode_fold2_key.c +python3 gperf_fold_key_conv.py 2 < ${TMP2} > unicode_fold2_key.c ${GPERF} ${GPERF_OPT} -F,-1 -N onigenc_unicode_fold3_key unicode_fold3_key.gperf > ${TMP3} -./gperf_fold_key_conv.py 3 < ${TMP3} > unicode_fold3_key.c +python3 gperf_fold_key_conv.py 3 < ${TMP3} > unicode_fold3_key.c # remove redundant EOLs before EOF perl -i -pe 'BEGIN{undef $/}s/\n\n*\z/\n/;' unicode_fold_data.c diff --git a/src/make_unicode_fold_data.py b/src/make_unicode_fold_data.py index a73a8a4..81565b3 100755 --- a/src/make_unicode_fold_data.py +++ b/src/make_unicode_fold_data.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # make_unicode_fold_data.py -# Copyright (c) 2016-2021 K.Kosako +# Copyright (c) 2016-2024 K.Kosako import sys import re @@ -30,7 +30,7 @@ LOCALE_UNFOLDS = {} COPYRIGHT = ''' /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -182,12 +182,12 @@ typedef unsigned long OnigCodePoint; def divide_by_fold_len(d): l = d.items() - l1 = filter(lambda (k,e):e.fold_len == 1, l) - l2 = filter(lambda (k,e):e.fold_len == 2, l) - l3 = filter(lambda (k,e):e.fold_len == 3, l) - sl1 = sorted(l1, key=lambda (k,e):k) - sl2 = sorted(l2, key=lambda (k,e):k) - sl3 = sorted(l3, key=lambda (k,e):k) + l1 = filter(lambda x:x[1].fold_len == 1, l) + l2 = filter(lambda x:x[1].fold_len == 2, l) + l3 = filter(lambda x:x[1].fold_len == 3, l) + sl1 = sorted(l1, key=lambda x:x[0]) + sl2 = sorted(l2, key=lambda x:x[0]) + sl3 = sorted(l3, key=lambda x:x[0]) return (sl1, sl2, sl3) def output_comment(f, s): @@ -198,7 +198,7 @@ def output_data_n1(f, n, fn, c, out_comment): e.index = c if out_comment and n > 1 and e.comment is not None: output_comment(f, e.comment) - print >> f, '' + print('', file=f) f.write(' ') f.write("/*%4d*/ " % c) @@ -226,25 +226,25 @@ def output_data_n1(f, n, fn, c, out_comment): return c def output_data_n(f, name, n, fn, lfn, out_comment): - print >> f, "OnigCodePoint %s%d[] = {" % (name, n) + print("OnigCodePoint %s%d[] = {" % (name, n), file=f) c = 0 c = output_data_n1(f, n, fn, c, out_comment) - print >> f, "#define FOLDS%d_NORMAL_END_INDEX %d" % (n, c) - print >> f, " /* ----- LOCALE ----- */" + print("#define FOLDS%d_NORMAL_END_INDEX %d" % (n, c), file=f) + print(" /* ----- LOCALE ----- */", file=f) c = output_data_n1(f, n, lfn, c, out_comment) - print >> f, "#define FOLDS%d_END_INDEX %d" % (n, c) - print >> f, "};" + print("#define FOLDS%d_END_INDEX %d" % (n, c), file=f) + print("};", file=f) def output_fold_data(f, name, out_comment): f1, f2, f3 = divide_by_fold_len(FOLDS) lf1, lf2, lf3 = divide_by_fold_len(LOCALE_FOLDS) output_data_n(f, name, 1, f1, lf1, out_comment) - print >> f, '' + print('', file=f) output_data_n(f, name, 2, f2, lf2, out_comment) - print >> f, '' + print('', file=f) output_data_n(f, name, 3, f3, lf3, out_comment) - print >> f, '' + print('', file=f) def output_macros(f, name): print >> f, "#define FOLDS1_FOLD(i) (%s1 + (i))" % name @@ -264,18 +264,18 @@ def output_macros(f, name): print >> f, "#define FOLDS3_NEXT_INDEX(i) ((i) + 4 + %s1[(i)+3])" % name def output_fold_source(f, out_comment): - print >> f, "/* This file was generated by make_unicode_fold_data.py. */" - print >> f, COPYRIGHT - print >> f, "\n" - print >> f, '#include "regenc.h"' - print >> f, '' + print("/* This file was generated by make_unicode_fold_data.py. */", file=f) + print(COPYRIGHT, file=f) + print("\n", file=f) + print('#include "regenc.h"', file=f) + print('', file=f) if VERSION_INFO[0] < 0: raise RuntimeError("Version is not found") - print "#define UNICODE_CASEFOLD_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]) - print '' + print("#define UNICODE_CASEFOLD_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])) + print('') #output_macros(f, DataName) - print >> f, '' + print('', file=f) #output_typedef(f) output_fold_data(f, DataName, out_comment) @@ -296,12 +296,12 @@ struct ByUnfoldKey { f.write(head) UNFOLDS.update(LOCALE_UNFOLDS) l = UNFOLDS.items() - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) for k, e in sl: f.write('"%s", /*0x%04x*/ %4d, %d\n' % (form3bytes(k), k, e.index, e.fold_len)) - print >> f, '%%' + print('%%', file=f) def output_gperf_fold_key(f, key_len): head = "%{\n/* This gperf source file was generated by make_unicode_fold_data.py */\n\n" + COPYRIGHT + """\ @@ -314,13 +314,13 @@ short int """ f.write(head) l = FOLDS.items() - l = filter(lambda (k,e):e.fold_len == key_len, l) - sl = sorted(l, key=lambda (k,e):e.index) + l = filter(lambda x:x[1].fold_len == key_len, l) + sl = sorted(l, key=lambda x:x[1].index) for k, e in sl: skey = ''.join(map(lambda i: form3bytes(i), e.fold)) f.write('"%s", %4d\n' % (skey, e.index)) - print >> f, '%%' + print('%%', file=f) def output_gperf_source(): with open(GPERF_UNFOLD_KEY_FILE, 'w') as f: @@ -334,7 +334,7 @@ def output_gperf_source(): def unfolds_byte_length_check(encode): l = UNFOLDS.items() - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) for unfold, e in sl: key_len = enc_len(unfold, encode) fold_len = sum(map(lambda c: enc_len(c, encode), e.fold)) @@ -345,7 +345,7 @@ def unfolds_byte_length_check(encode): def double_fold_check(): l = UNFOLDS.items() - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) for unfold, e in sl: for f in e.fold: #print >> sys.stderr, ("check 0x%06x" % f) @@ -356,9 +356,9 @@ def double_fold_check(): def unfold_is_multi_code_folds_head_check(): l = UNFOLDS.items() - l2 = filter(lambda (k,e):e.fold_len == 2, l) - l3 = filter(lambda (k,e):e.fold_len == 3, l) - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + l2 = filter(lambda x:x[1].fold_len == 2, l) + l3 = filter(lambda x:x[1].fold_len == 3, l) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) for unfold, _ in sl: for k, e in l2: if e.fold[0] == unfold: @@ -454,7 +454,7 @@ def get_all_folds_expansion_max_num(): one_folds = make_one_folds(l) fold2_heads = make_foldn_heads(l, 2, one_folds) fold3_heads = make_foldn_heads(l, 3, one_folds) - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) nmax = 0 max_unfold = None for unfold, e in sl: diff --git a/src/make_unicode_property.sh b/src/make_unicode_property.sh index 1b299a5..d36484a 100755 --- a/src/make_unicode_property.sh +++ b/src/make_unicode_property.sh @@ -13,8 +13,8 @@ POOL_CAST='s/\(int *\)\(size_t *\)&\(\(struct +unicode_prop_name_pool_t *\* *\) ADD_STATIC='s/(const +struct +PoolPropertyNameCtype +\*)/static \1/' ADD_CAST='s/unsigned +int +hval *= *len/unsigned int hval = (unsigned int )len/' -./make_unicode_property_data.py > ${NAME}.gperf -./make_unicode_property_data.py -posix > ${NAME}_posix.gperf +python3 make_unicode_property_data.py > ${NAME}.gperf +python3 make_unicode_property_data.py -posix > ${NAME}_posix.gperf ${GPERF} ${GPERF_OPT} -N unicode_lookup_property_name --output-file ${TMP1} ${NAME}.gperf cat ${TMP1} | ${SED} -e 's/^#line.*$//g' | ${SED} -E "${POOL_CAST}" | ${SED} -E "${ADD_STATIC}" | ${SED} -E "${ADD_CAST}" > ${NAME}.c diff --git a/src/make_unicode_property_data.py b/src/make_unicode_property_data.py index 78ccb29..06392d0 100755 --- a/src/make_unicode_property_data.py +++ b/src/make_unicode_property_data.py @@ -1,14 +1,15 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # make_unicode_property_data.py -# Copyright (c) 2016-2021 K.Kosako +# Copyright (c) 2016-2024 K.Kosako import sys import re POSIX_LIST = [ - 'NEWLINE', 'Alpha', 'Blank', 'Cntrl', 'Digit', 'Graph', 'Lower', - 'Print', 'Punct', 'Space', 'Upper', 'XDigit', 'Word', 'Alnum', 'ASCII' + 'NEWLINE', 'Alpha', 'Blank', 'Cntrl', 'Digit', 'Graph', 'Lower', + 'Print', 'PosixPunct', 'Space', 'Upper', 'XDigit', 'Word', 'Alnum', + 'ASCII' ] MAX_CODE_POINT = 0x10ffff @@ -45,31 +46,31 @@ def fix_block_name(name): def print_ranges(ranges): for (start, end) in ranges: - print "0x%06x, 0x%06x" % (start, end) + print("0x%06x, 0x%06x" % (start, end)) - print len(ranges) + print(len(ranges)) def print_prop_and_index(prop, i): - print "%-35s %3d" % (prop + ',', i) + print("%-35s %3d" % (prop + ',', i)) PropIndex[prop] = i PRINT_CACHE = { } def print_property(prop, data, desc): - print '' - print "/* PROPERTY: '%s': %s */" % (prop, desc) + print('') + print("/* PROPERTY: '%s': %s */" % (prop, desc)) prev_prop = dic_find_by_value(PRINT_CACHE, data) if prev_prop is not None: - print "#define CR_%s CR_%s" % (prop, prev_prop) + print("#define CR_%s CR_%s" % (prop, prev_prop)) else: PRINT_CACHE[prop] = data - print "static const OnigCodePoint" - print "CR_%s[] = { %d," % (prop, len(data)) + print("static const OnigCodePoint") + print("CR_%s[] = { %d," % (prop, len(data))) for (start, end) in data: - print "0x%04x, 0x%04x," % (start, end) + print("0x%04x, 0x%04x," % (start, end)) - print "}; /* END of CR_%s */" % prop + print("}; /* END of CR_%s */" % prop) def dic_find_by_value(dic, v): @@ -99,7 +100,7 @@ def normalize_ranges(in_ranges, sort=False): r = [] prev = None for (start, end) in ranges: - if prev >= start - 1: + if prev is not None and prev >= start - 1: (pstart, pend) = r.pop() end = max(pend, end) start = pstart @@ -174,16 +175,19 @@ def merge_dic(to_dic, from_dic): from_keys = from_dic.keys() common = list(set(to_keys) & set(from_keys)) if len(common) != 0: - print >> sys.stderr, "merge_dic: collision: %s" % sorted(common) + print("merge_dic: collision: %s" % sorted(common), file=sys.stderr) to_dic.update(from_dic) -def merge_props(to_props, from_props): - common = list(set(to_props) & set(from_props)) +def merge_props(to_dic, from_dic): + to_keys = to_dic.keys() + from_keys = from_dic.keys() + common = list(set(to_keys) & set(from_keys)) if len(common) != 0: - print >> sys.stderr, "merge_props: collision: %s" % sorted(common) + print("merge_props: collision: %s" % sorted(common), file=sys.stderr) - to_props.extend(from_props) + for k in from_keys: + to_dic[k] = True def add_range_into_dic(dic, name, start, end): d = dic.get(name, None) @@ -234,7 +238,6 @@ def parse_properties(path, klass, prop_prefix = None, version_reg = None): with open(path, 'r') as f: dic = { } prop = None - props = [] for line in f: s = line.strip() if len(s) == 0: @@ -261,10 +264,9 @@ def parse_properties(path, klass, prop_prefix = None, version_reg = None): elif PR_TOTAL_REG.match(s) is not None: KDIC[prop] = klass - props.append(prop) normalize_ranges_in_dic(dic) - return (dic, props, version_match) + return (dic, version_match) def parse_property_aliases(path): a = { } @@ -384,7 +386,7 @@ def add_posix_props(dic): dic['Alpha'] = dic['Alphabetic'] dic['Upper'] = dic['Uppercase'] dic['Lower'] = dic['Lowercase'] - dic['Punct'] = dic['P'] # P == Punctuation + dic['PosixPunct'] = add_ranges(dic['P'], dic['S']) # P == Punctuation dic['Digit'] = dic['Nd'] dic['XDigit'] = [(0x0030, 0x0039), (0x0041, 0x0046), (0x0061, 0x0066)] dic['Alnum'] = alnum @@ -405,7 +407,7 @@ def set_max_prop_name(name): def entry_prop_name(name, index): set_max_prop_name(name) if OUTPUT_LIST_MODE and index >= len(POSIX_LIST): - print >> UPF, "%s" % (name) + print("%s" % (name), file=UPF) def entry_and_print_prop_and_index(name, index): entry_prop_name(name, index) @@ -413,10 +415,10 @@ def entry_and_print_prop_and_index(name, index): print_prop_and_index(nname, index) def parse_and_merge_properties(path, klass, prop_prefix = None, version_reg = None): - dic, props, ver_m = parse_properties(path, klass, prop_prefix, version_reg) + dic, ver_m = parse_properties(path, klass, prop_prefix, version_reg) merge_dic(DIC, dic) - merge_props(PROPS, props) - return dic, props, ver_m + merge_props(PROPS, dic) + return dic, ver_m ### main ### @@ -425,7 +427,7 @@ argc = len(argv) COPYRIGHT = ''' /*- - * Copyright (c) 2016-2021 K.Kosako + * Copyright (c) 2016-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -461,7 +463,7 @@ for i in range(1, argc): elif arg == '-gc': INCLUDE_GRAPHEME_CLUSTER_DATA = True else: - print >> sys.stderr, "Invalid argument: %s" % arg + print("Invalid argument: %s" % arg, file=sys.stderr) OUTPUT_LIST_MODE = not(POSIX_ONLY) @@ -471,26 +473,26 @@ with open('UnicodeData.txt', 'r') as f: DIC = dic add_primitive_props(assigned) -PROPS = DIC.keys() -PROPS = list_sub(PROPS, POSIX_LIST) +PROPS = DIC.fromkeys(DIC, True) +PROPS = {k: v for k, v in PROPS.items() if k not in POSIX_LIST} -_, _, ver_m = parse_and_merge_properties('DerivedCoreProperties.txt', 'Derived Property', None, UNICODE_VERSION_REG) +_, ver_m = parse_and_merge_properties('DerivedCoreProperties.txt', 'Derived Property', None, UNICODE_VERSION_REG) if ver_m is not None: VERSION_INFO[0] = int(ver_m.group(1)) VERSION_INFO[1] = int(ver_m.group(2)) VERSION_INFO[2] = int(ver_m.group(3)) -dic, props, _ = parse_and_merge_properties('Scripts.txt', 'Script') +dic, _ = parse_and_merge_properties('Scripts.txt', 'Script') DIC['Unknown'] = inverse_ranges(add_ranges_in_dic(dic)) parse_and_merge_properties('PropList.txt', 'Binary Property') -_, _, ver_m = parse_and_merge_properties('emoji-data.txt', 'Emoji Property', None, EMOJI_VERSION_REG) +_, ver_m = parse_and_merge_properties('emoji-data.txt', 'Emoji Property', None, EMOJI_VERSION_REG) if ver_m is not None: EMOJI_VERSION_INFO[0] = int(ver_m.group(1)) EMOJI_VERSION_INFO[1] = int(ver_m.group(2)) -PROPS.append('Unknown') +PROPS['Unknown'] = True KDIC['Unknown'] = 'Script' ALIASES = parse_property_aliases('PropertyAliases.txt') @@ -501,34 +503,39 @@ dic, BLOCKS = parse_blocks('Blocks.txt') merge_dic(DIC, dic) if INCLUDE_GRAPHEME_CLUSTER_DATA: - dic, props, _ = parse_properties('GraphemeBreakProperty.txt', - 'GraphemeBreak Property', - GRAPHEME_CLUSTER_BREAK_NAME_PREFIX) + dic, _ = parse_properties('GraphemeBreakProperty.txt', + 'GraphemeBreak Property', + GRAPHEME_CLUSTER_BREAK_NAME_PREFIX) merge_dic(DIC, dic) - merge_props(PROPS, props) + merge_props(PROPS, dic) #prop = GRAPHEME_CLUSTER_BREAK_NAME_PREFIX + 'Other' #DIC[prop] = inverse_ranges(add_ranges_in_dic(dic)) - #PROPS.append(prop) + #PROPS[prop] = True #KDIC[prop] = 'GrapemeBreak Property' add_posix_props(DIC) -PROPS = sorted(PROPS) +PROP_LIST = sorted(PROPS.keys()) s = '''%{ /* Generated by make_unicode_property_data.py. */ ''' -print s -print COPYRIGHT -print '' +print(s) +print(COPYRIGHT) +print('') for prop in POSIX_LIST: - print_property(prop, DIC[prop], "POSIX [[:%s:]]" % prop) + if prop == 'PosixPunct': + desc = "POSIX [[:punct:]]" + else: + desc = "POSIX [[:%s:]]" % prop + + print_property(prop, DIC[prop], desc) -print '' +print('') if not(POSIX_ONLY): - for prop in PROPS: + for prop in PROP_LIST: klass = KDIC.get(prop, None) if klass is None: n = len(prop) @@ -545,18 +552,18 @@ if not(POSIX_ONLY): print_property(block, DIC[block], 'Block') -print '' -print "static const OnigCodePoint*\nconst CodeRanges[] = {" +print('') +print("static const OnigCodePoint*\nconst CodeRanges[] = {") for prop in POSIX_LIST: - print " CR_%s," % prop + print(" CR_%s," % prop) if not(POSIX_ONLY): - for prop in PROPS: - print " CR_%s," % prop + for prop in PROP_LIST: + print(" CR_%s," % prop) for prop in BLOCKS: - print " CR_%s," % prop + print(" CR_%s," % prop) s = '''}; @@ -579,8 +586,8 @@ if OUTPUT_LIST_MODE: if EMOJI_VERSION_INFO[0] < 0: raise RuntimeError("Emoji Version is not found") - print >> UPF, "Unicode Properties (Unicode Version: %d.%d.%d, Emoji: %d.%d)" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2], EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1]) - print >> UPF, '' + print("Unicode Properties (Unicode Version: %d.%d.%d, Emoji: %d.%d)" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2], EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1]), file=UPF) + print('', file=UPF) index = -1 for prop in POSIX_LIST: @@ -588,20 +595,20 @@ for prop in POSIX_LIST: entry_and_print_prop_and_index(prop, index) if not(POSIX_ONLY): - for prop in PROPS: + for prop in PROP_LIST: index += 1 entry_and_print_prop_and_index(prop, index) - NALIASES = map(lambda (k,v):(normalize_prop_name(k), k, v), ALIASES.items()) + NALIASES = map(lambda x:(normalize_prop_name(x[0]), x[0], x[1]), ALIASES.items()) NALIASES = sorted(NALIASES) for (nk, k, v) in NALIASES: nv = normalize_prop_name(v) if PropIndex.get(nk, None) is not None: - print >> sys.stderr, "ALIASES: already exists: %s => %s" % (k, v) + print("ALIASES: already exists: %s => %s" % (k, v), file=sys.stderr) continue aindex = PropIndex.get(nv, None) if aindex is None: - #print >> sys.stderr, "ALIASES: value is not exist: %s => %s" % (k, v) + #print("ALIASES: value is not exist: %s => %s" % (k, v), file=sys.stderr) continue entry_prop_name(k, aindex) @@ -611,26 +618,26 @@ if not(POSIX_ONLY): index += 1 entry_and_print_prop_and_index(name, index) -print '%%' -print '' +print('%%') +print('') if not(POSIX_ONLY): if VERSION_INFO[0] < 0: raise RuntimeError("Unicode Version is not found") if EMOJI_VERSION_INFO[0] < 0: raise RuntimeError("Emoji Version is not found") - print "#define UNICODE_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]) - print "#define UNICODE_EMOJI_VERSION %02d%02d" % (EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1]) - print '' + print("#define UNICODE_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])) + print("#define UNICODE_EMOJI_VERSION %02d%02d" % (EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1])) + print('') -print "#define PROPERTY_NAME_MAX_SIZE %d" % (PROPERTY_NAME_MAX_LEN + 10) -print "#define CODE_RANGES_NUM %d" % (index + 1) +print("#define PROPERTY_NAME_MAX_SIZE %d" % (PROPERTY_NAME_MAX_LEN + 10)) +print("#define CODE_RANGES_NUM %d" % (index + 1)) index_props = make_reverse_dic(PropIndex) -print '' +print('') for i in range(index + 1): for p in index_props[i]: - print "#define PROP_INDEX_%s %d" % (p.upper(), i) + print("#define PROP_INDEX_%s %d" % (p.upper(), i)) if OUTPUT_LIST_MODE: UPF.close() diff --git a/src/make_unicode_wb.sh b/src/make_unicode_wb.sh index e2e98fa..61fafe5 100755 --- a/src/make_unicode_wb.sh +++ b/src/make_unicode_wb.sh @@ -2,6 +2,6 @@ NAME=unicode_wb_data -./make_unicode_wb_data.py > ${NAME}.c +python3 make_unicode_wb_data.py > ${NAME}.c exit 0 diff --git a/src/make_unicode_wb_data.py b/src/make_unicode_wb_data.py index dfa8f1e..c154d2a 100755 --- a/src/make_unicode_wb_data.py +++ b/src/make_unicode_wb_data.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # make_unicode_wb_data.py -# Copyright (c) 2019-2021 K.Kosako +# Copyright (c) 2019-2024 K.Kosako import sys import re @@ -29,10 +29,10 @@ def check_version_info(s): def print_ranges(ranges): for (start, end) in ranges: - print "0x%06x, 0x%06x" % (start, end) + print("0x%06x, 0x%06x" % (start, end)) def print_prop_and_index(prop, i): - print "%-35s %3d" % (prop + ',', i) + print("%-35s %3d" % (prop + ',', i)) PropIndex[prop] = i def dic_find_by_value(dic, v): @@ -52,7 +52,7 @@ def normalize_ranges(in_ranges, sort=False): r = [] prev = None for (start, end) in ranges: - if prev >= start - 1: + if prev is not None and prev >= start - 1: (pstart, pend) = r.pop() end = max(pend, end) start = pstart @@ -192,10 +192,11 @@ merge_props(PROPS, props) PROPS = sorted(PROPS) -print '/* unicode_wb_data.c: Generated by make_unicode_wb_data.py. */' +print('/* unicode_wb_data.c: Generated by make_unicode_wb_data.py. */') + COPYRIGHT = ''' /*- - * Copyright (c) 2019-2021 K.Kosako + * Copyright (c) 2019-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -221,13 +222,13 @@ COPYRIGHT = ''' */ '''.strip() -print COPYRIGHT -print '' +print(COPYRIGHT) +print('') if VERSION_INFO[0] < 0: raise RuntimeError("Version is not found.") -print "#define WORD_BREAK_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]) -print '' +print("#define WORD_BREAK_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])) +print('') ranges = [] for prop in PROPS: @@ -243,16 +244,16 @@ for (start, end, prop) in ranges: raise ValueError("{2}:{0} - {1} range overlap prev value {3}".format(start, end, prop, prev)) -print '/*' +print('/*') for prop in PROPS: - print "%s" % prop -print '*/' -print '' + print("%s" % prop) +print('*/') +print('') num_ranges = len(ranges) -print "static int WB_RANGE_NUM = %d;" % num_ranges +print("static int WB_RANGE_NUM = %d;" % num_ranges) -print 'static WB_RANGE_TYPE WB_RANGES[] = {' +print('static WB_RANGE_TYPE WB_RANGES[] = {') for i, (start, end, prop) in enumerate(ranges): if i == num_ranges - 1: comma = '' @@ -260,8 +261,8 @@ for i, (start, end, prop) in enumerate(ranges): comma = ',' type_name = 'WB_' + prop - print " {0x%06x, 0x%06x, %s }%s" % (start, end, type_name, comma) + print(" {0x%06x, 0x%06x, %s }%s" % (start, end, type_name, comma)) -print '};' +print('};') sys.exit(0) diff --git a/src/mktable.c b/src/mktable.c index 5f36ee3..1a624e7 100644 --- a/src/mktable.c +++ b/src/mktable.c @@ -2,7 +2,7 @@ mktable.c **********************************************************************/ /*- - * Copyright (c) 2002-2019 K.Kosako + * Copyright (c) 2002-2022 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -638,24 +638,28 @@ static int IsPunct(int enc, int c) if (enc == ASCII) return ispunct(c); - if (enc == UNICODE_ISO_8859_1) { - if (c == 0x24 || c == 0x2b || c == 0x5e || c == 0x60 || - c == 0x7c || c == 0x7e) return 1; - if (c >= 0x3c && c <= 0x3e) return 1; - } - if (c >= 0x21 && c <= 0x2f) return 1; if (c >= 0x3a && c <= 0x40) return 1; if (c >= 0x5b && c <= 0x60) return 1; if (c >= 0x7b && c <= 0x7e) return 1; + if (enc == UNICODE_ISO_8859_1) { + if (c < 0x80) return 0; + + if (c >= 0xa1 && c <= 0xa9) return 1; + if (c >= 0xab && c <= 0xac) return 1; + if (c >= 0xae && c <= 0xb1) return 1; + if (c == 0xb4) return 1; + if (c >= 0xb6 && c <= 0xb8) return 1; + if (c == 0xbb || c == 0xbf || c == 0xd7 || c == 0xf7) return 1; + return 0; + } + switch (enc) { case ISO_8859_1: case ISO_8859_9: case ISO_8859_15: if (c == 0xad) return 1; - /* fall */ - case UNICODE_ISO_8859_1: if (c == 0xa1) return 1; if (c == 0xab) return 1; if (c == 0xb7) return 1; diff --git a/src/oniguruma.h b/src/oniguruma.h index 096ba7d..2ab10e8 100644 --- a/src/oniguruma.h +++ b/src/oniguruma.h @@ -4,7 +4,7 @@ oniguruma.h - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2022 K.Kosako + * Copyright (c) 2002-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -36,9 +36,9 @@ extern "C" { #define ONIGURUMA #define ONIGURUMA_VERSION_MAJOR 6 #define ONIGURUMA_VERSION_MINOR 9 -#define ONIGURUMA_VERSION_TEENY 8 +#define ONIGURUMA_VERSION_TEENY 10 -#define ONIGURUMA_VERSION_INT 60908 +#define ONIGURUMA_VERSION_INT 60910 #ifndef P_ #if defined(__STDC__) || defined(_WIN32) @@ -401,8 +401,9 @@ typedef unsigned int OnigOptionType; #define ONIG_OPTION_NOT_END_STRING (ONIG_OPTION_NOT_BEGIN_STRING << 1) #define ONIG_OPTION_NOT_BEGIN_POSITION (ONIG_OPTION_NOT_END_STRING << 1) #define ONIG_OPTION_CALLBACK_EACH_MATCH (ONIG_OPTION_NOT_BEGIN_POSITION << 1) +#define ONIG_OPTION_MATCH_WHOLE_STRING (ONIG_OPTION_CALLBACK_EACH_MATCH << 1) -#define ONIG_OPTION_MAXBIT ONIG_OPTION_CALLBACK_EACH_MATCH +#define ONIG_OPTION_MAXBIT ONIG_OPTION_MATCH_WHOLE_STRING #define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt)) #define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt)) @@ -532,6 +533,7 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; #define ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND (1U<<11) /* (?<=a+|..) */ #define ONIG_SYN_PYTHON (1U<<12) /* \UHHHHHHHH */ #define ONIG_SYN_WHOLE_OPTIONS (1U<<13) /* (?Ie) */ +#define ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP (1U<<14) /* \(^abc$\) */ /* syntax (behavior) in char class [...] */ #define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */ @@ -539,6 +541,7 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; #define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22) #define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (1U<<23) /* [0-9-a]=[0-9\-a] */ #define ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC (1U<<26) +#define ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC (1U<<27) /* [\w-%]=[\w\-%] */ /* syntax (behavior) warning */ #define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED (1U<<24) /* [,-,] */ #define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT (1U<<25) /* (?:a*)+ */ @@ -1071,6 +1074,8 @@ int onig_builtin_mismatch P_((OnigCalloutArgs* args, void* user_data)); ONIG_EXTERN int onig_builtin_error P_((OnigCalloutArgs* args, void* user_data)); ONIG_EXTERN +int onig_builtin_skip P_((OnigCalloutArgs* args, void* user_data)); +ONIG_EXTERN int onig_builtin_count P_((OnigCalloutArgs* args, void* user_data)); ONIG_EXTERN int onig_builtin_total_count P_((OnigCalloutArgs* args, void* user_data)); diff --git a/src/regcomp.c b/src/regcomp.c index d341c38..9f2d5aa 100644 --- a/src/regcomp.c +++ b/src/regcomp.c @@ -2,7 +2,7 @@ regcomp.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2022 K.Kosako + * Copyright (c) 2002-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,8 +31,8 @@ #define OPS_INIT_SIZE 8 -#define NODE_IS_REAL_IGNORECASE(node) \ - (NODE_IS_IGNORECASE(node) && !NODE_STRING_IS_CRUDE(node)) +#define ND_IS_REAL_IGNORECASE(node) \ + (ND_IS_IGNORECASE(node) && !ND_STRING_IS_CRUDE(node)) typedef struct { OnigLen min; @@ -360,7 +360,7 @@ node_swap(Node* a, Node* b) c = *a; *a = *b; *b = c; - if (NODE_TYPE(a) == NODE_STRING) { + if (ND_TYPE(a) == ND_STRING) { StrNode* sn = STR_(a); if (sn->capacity == 0) { int len = (int )(sn->end - sn->s); @@ -369,7 +369,7 @@ node_swap(Node* a, Node* b) } } - if (NODE_TYPE(b) == NODE_STRING) { + if (ND_TYPE(b) == ND_STRING) { StrNode* sn = STR_(b); if (sn->capacity == 0) { int len = (int )(sn->end - sn->s); @@ -385,8 +385,8 @@ node_list_len(Node* list) int len; len = 1; - while (IS_NOT_NULL(NODE_CDR(list))) { - list = NODE_CDR(list); + while (IS_NOT_NULL(ND_CDR(list))) { + list = ND_CDR(list); len++; } @@ -402,10 +402,10 @@ node_list_add(Node* list, Node* x) if (IS_NULL(n)) return NULL_NODE; if (IS_NOT_NULL(list)) { - while (IS_NOT_NULL(NODE_CDR(list))) - list = NODE_CDR(list); + while (IS_NOT_NULL(ND_CDR(list))) + list = ND_CDR(list); - NODE_CDR(list) = n; + ND_CDR(list) = n; } return n; @@ -416,7 +416,7 @@ node_str_node_cat(Node* node, Node* add) { int r; - if (NODE_STATUS(node) != NODE_STATUS(add)) + if (ND_STATUS(node) != ND_STATUS(add)) return ONIGERR_TYPE_BUG; if (STR_(node)->flag != STR_(add)->flag) @@ -432,8 +432,8 @@ static void node_conv_to_str_node(Node* node, Node* ref_node) { xmemset(node, 0, sizeof(*node)); - NODE_SET_TYPE(node, NODE_STRING); - NODE_STATUS(node) = NODE_STATUS(ref_node); + ND_SET_TYPE(node, ND_STRING); + ND_STATUS(node) = ND_STATUS(ref_node); STR_(node)->flag = STR_(ref_node)->flag; STR_(node)->s = STR_(node)->buf; @@ -639,12 +639,12 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, level++; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { int first = TRUE; do { - r = node_char_len1(NODE_CAR(node), reg, &tci, env, level); + r = node_char_len1(ND_CAR(node), reg, &tci, env, level); if (r < 0) break; if (first == TRUE) { *ci = tci; @@ -652,20 +652,20 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, } else mmcl_add(ci, &tci); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); } break; - case NODE_ALT: + case ND_ALT: { int fixed; - r = node_char_len1(NODE_CAR(node), reg, ci, env, level); + r = node_char_len1(ND_CAR(node), reg, ci, env, level); if (r < 0) break; fixed = TRUE; - while (IS_NOT_NULL(node = NODE_CDR(node))) { - r = node_char_len1(NODE_CAR(node), reg, &tci, env, level); + while (IS_NOT_NULL(node = ND_CDR(node))) { + r = node_char_len1(ND_CAR(node), reg, &tci, env, level); if (r < 0) break; if (! mmcl_fixed(&tci)) fixed = FALSE; @@ -682,13 +682,13 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, } break; - case NODE_STRING: + case ND_STRING: { OnigLen clen; StrNode* sn = STR_(node); UChar *s = sn->s; - if (NODE_IS_REAL_IGNORECASE(node) && + if (ND_IS_REAL_IGNORECASE(node) && CASE_FOLD_IS_NOT_ASCII_ONLY(env->case_fold_flag)) { /* Such a case is possible. ex. /(?i)(?<=\1)(a)/ @@ -707,7 +707,7 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); @@ -716,13 +716,13 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, mmcl_set(ci, 0); } else { - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); if (r < 0) break; mmcl_multiply(ci, qn->lower); } } else { - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); if (r < 0) break; mmcl_repeat_range_multiply(ci, qn->lower, qn->upper); } @@ -730,44 +730,44 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, break; #ifdef USE_CALL - case NODE_CALL: - if (NODE_IS_RECURSION(node)) + case ND_CALL: + if (ND_IS_RECURSION(node)) mmcl_set_min_max(ci, 0, INFINITE_LEN, FALSE); else - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); break; #endif - case NODE_CTYPE: - case NODE_CCLASS: + case ND_CTYPE: + case ND_CCLASS: mmcl_set(ci, 1); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_MEMORY: - if (NODE_IS_FIXED_CLEN(node)) { + if (ND_IS_FIXED_CLEN(node)) { mmcl_set_min_max(ci, en->min_char_len, en->max_char_len, - NODE_IS_FIXED_CLEN_MIN_SURE(node)); + ND_IS_FIXED_CLEN_MIN_SURE(node)); } else { - if (NODE_IS_MARK1(node)) { + if (ND_IS_MARK1(node)) { mmcl_set_min_max(ci, 0, INFINITE_LEN, FALSE); } else { - NODE_STATUS_ADD(node, MARK1); - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); + ND_STATUS_REMOVE(node, MARK1); if (r < 0) break; en->min_char_len = ci->min; en->max_char_len = ci->max; - NODE_STATUS_ADD(node, FIXED_CLEN); + ND_STATUS_ADD(node, FIXED_CLEN); if (ci->min_is_sure != FALSE) - NODE_STATUS_ADD(node, FIXED_CLEN_MIN_SURE); + ND_STATUS_ADD(node, FIXED_CLEN_MIN_SURE); } } /* can't optimize look-behind if capture exists. */ @@ -775,13 +775,13 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, break; case BAG_OPTION: case BAG_STOP_BACKTRACK: - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); break; case BAG_IF_ELSE: { MinMaxCharLen eci; - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); if (r < 0) break; if (IS_NOT_NULL(en->te.Then)) { @@ -808,24 +808,24 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, } break; - case NODE_GIMMICK: + case ND_GIMMICK: mmcl_set(ci, 0); break; - case NODE_ANCHOR: + case ND_ANCHOR: zero: mmcl_set(ci, 0); /* can't optimize look-behind if anchor exists. */ ci->min_is_sure = FALSE; break; - case NODE_BACKREF: - if (NODE_IS_CHECKER(node)) + case ND_BACKREF: + if (ND_IS_CHECKER(node)) goto zero; - if (NODE_IS_RECURSION(node)) { + if (ND_IS_RECURSION(node)) { #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { mmcl_set_min_max(ci, 0, INFINITE_LEN, FALSE); break; } @@ -887,7 +887,7 @@ add_op(regex_t* reg, int opcode) return 0; } -static int compile_length_tree(Node* node, regex_t* reg); +static int compile_length_tree(Node* node, regex_t* reg, ParseEnv* env); static int compile_tree(Node* node, regex_t* reg, ParseEnv* env); @@ -936,16 +936,16 @@ select_str_opcode(int mb_len, int str_len) static int is_strict_real_node(Node* node) { - switch (NODE_TYPE(node)) { - case NODE_STRING: + switch (ND_TYPE(node)) { + case ND_STRING: { StrNode* sn = STR_(node); return (sn->end != sn->s); } break; - case NODE_CCLASS: - case NODE_CTYPE: + case ND_CCLASS: + case ND_CTYPE: return 1; break; @@ -963,7 +963,7 @@ compile_quant_body_with_empty_check(QuantNode* qn, regex_t* reg, ParseEnv* env) int emptiness; Node* body; - body = NODE_BODY((Node* )qn); + body = ND_BODY((Node* )qn); emptiness = qn->emptiness; saved_num_empty_check = reg->num_empty_check; @@ -981,7 +981,7 @@ compile_quant_body_with_empty_check(QuantNode* qn, regex_t* reg, ParseEnv* env) if (emptiness == BODY_MAY_BE_EMPTY) r = add_op(reg, OP_EMPTY_CHECK_END); else if (emptiness == BODY_MAY_BE_EMPTY_MEM) { - if (NODE_IS_EMPTY_STATUS_CHECK(qn) != 0 && qn->empty_status_mem != 0) { + if (ND_IS_EMPTY_STATUS_CHECK(qn) != 0 && qn->empty_status_mem != 0) { r = add_op(reg, OP_EMPTY_CHECK_END_MEMST); if (r != 0) return r; COP(reg)->empty_check_end.empty_status_mem = qn->empty_status_mem; @@ -1019,7 +1019,7 @@ compile_call(CallNode* node, regex_t* reg, ParseEnv* env) #endif offset = COP_CURR_OFFSET_BYTES(reg, call.addr); - r = unset_addr_list_add(env->unset_addr_list, offset, NODE_CALL_BODY(node)); + r = unset_addr_list_add(env->unset_addr_list, offset, ND_CALL_BODY(node)); return r; } #endif @@ -1312,7 +1312,7 @@ static int is_anychar_infinite_greedy(QuantNode* qn) { if (qn->greedy && IS_INFINITE_REPEAT(qn->upper) && - NODE_IS_ANYCHAR(NODE_QUANT_BODY(qn))) + ND_IS_ANYCHAR(ND_QUANT_BODY(qn))) return 1; else return 0; @@ -1322,12 +1322,12 @@ is_anychar_infinite_greedy(QuantNode* qn) #define CKN_ON (ckn > 0) static int -compile_length_quantifier_node(QuantNode* qn, regex_t* reg) +compile_length_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) { int len, mod_tlen; int infinite = IS_INFINITE_REPEAT(qn->upper); enum BodyEmptyType emptiness = qn->emptiness; - int tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg); + int tlen = compile_length_tree(ND_QUANT_BODY(qn), reg, env); if (tlen < 0) return tlen; if (tlen == 0) return 0; @@ -1401,7 +1401,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) int i, r, mod_tlen; int infinite = IS_INFINITE_REPEAT(qn->upper); enum BodyEmptyType emptiness = qn->emptiness; - int tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg); + int tlen = compile_length_tree(ND_QUANT_BODY(qn), reg, env); if (tlen < 0) return tlen; if (tlen == 0) return 0; @@ -1410,10 +1410,10 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) (qn->lower <= 1 || len_multiply_cmp((OnigLen )tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); if (r != 0) return r; if (IS_NOT_NULL(qn->next_head_exact)) { - r = add_op(reg, NODE_IS_MULTILINE(NODE_QUANT_BODY(qn)) ? + r = add_op(reg, ND_IS_MULTILINE(ND_QUANT_BODY(qn)) ? OP_ANYCHAR_ML_STAR_PEEK_NEXT : OP_ANYCHAR_STAR_PEEK_NEXT); if (r != 0) return r; @@ -1421,7 +1421,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) return 0; } else { - r = add_op(reg, NODE_IS_MULTILINE(NODE_QUANT_BODY(qn)) ? + r = add_op(reg, ND_IS_MULTILINE(ND_QUANT_BODY(qn)) ? OP_ANYCHAR_ML_STAR : OP_ANYCHAR_STAR); return r; } @@ -1456,7 +1456,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) } } else { - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); if (r != 0) return r; } @@ -1520,7 +1520,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) if (r != 0) return r; COP(reg)->jump.addr = tlen + SIZE_INC; - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); + r = compile_tree(ND_QUANT_BODY(qn), reg, env); } else { /* Nothing output */ @@ -1533,7 +1533,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { int n = qn->upper - qn->lower; - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); if (r != 0) return r; for (i = 0; i < n; i++) { @@ -1544,7 +1544,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) if (r != 0) return r; COP(reg)->push.addr = v; - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); + r = compile_tree(ND_QUANT_BODY(qn), reg, env); if (r != 0) return r; } } @@ -1557,7 +1557,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) if (r != 0) return r; COP(reg)->jump.addr = tlen + SIZE_INC; - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); + r = compile_tree(ND_QUANT_BODY(qn), reg, env); } else { r = compile_range_repeat_node(qn, mod_tlen, emptiness, reg, env); @@ -1566,11 +1566,11 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) } static int -compile_length_option_node(BagNode* node, regex_t* reg) +compile_length_option_node(BagNode* node, regex_t* reg, ParseEnv* env) { int tlen; - tlen = compile_length_tree(NODE_BAG_BODY(node), reg); + tlen = compile_length_tree(ND_BAG_BODY(node), reg, env); return tlen; } @@ -1580,22 +1580,22 @@ compile_option_node(BagNode* node, regex_t* reg, ParseEnv* env) { int r; - r = compile_tree(NODE_BAG_BODY(node), reg, env); + r = compile_tree(ND_BAG_BODY(node), reg, env); return r; } static int -compile_length_bag_node(BagNode* node, regex_t* reg) +compile_length_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) { int len; int tlen; if (node->type == BAG_OPTION) - return compile_length_option_node(node, reg); + return compile_length_option_node(node, reg, env); - if (NODE_BAG_BODY(node)) { - tlen = compile_length_tree(NODE_BAG_BODY(node), reg); + if (ND_BAG_BODY(node)) { + tlen = compile_length_tree(ND_BAG_BODY(node), reg, env); if (tlen < 0) return tlen; } else @@ -1605,22 +1605,22 @@ compile_length_bag_node(BagNode* node, regex_t* reg) case BAG_MEMORY: #ifdef USE_CALL - if (node->m.regnum == 0 && NODE_IS_CALLED(node)) { + if (node->m.regnum == 0 && ND_IS_CALLED(node)) { len = tlen + OPSIZE_CALL + OPSIZE_JUMP + OPSIZE_RETURN; return len; } - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { len = OPSIZE_MEM_START_PUSH + tlen + OPSIZE_CALL + OPSIZE_JUMP + OPSIZE_RETURN; if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) - len += (NODE_IS_RECURSION(node) + len += (ND_IS_RECURSION(node) ? OPSIZE_MEM_END_PUSH_REC : OPSIZE_MEM_END_PUSH); else - len += (NODE_IS_RECURSION(node) + len += (ND_IS_RECURSION(node) ? OPSIZE_MEM_END_REC : OPSIZE_MEM_END); } - else if (NODE_IS_RECURSION(node)) { + else if (ND_IS_RECURSION(node)) { len = OPSIZE_MEM_START_PUSH; len += tlen + (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum) ? OPSIZE_MEM_END_PUSH_REC : OPSIZE_MEM_END_REC); @@ -1639,12 +1639,12 @@ compile_length_bag_node(BagNode* node, regex_t* reg) break; case BAG_STOP_BACKTRACK: - if (NODE_IS_STRICT_REAL_REPEAT(node)) { + if (ND_IS_STRICT_REAL_REPEAT(node)) { int v; QuantNode* qn; - qn = QUANT_(NODE_BAG_BODY(node)); - tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg); + qn = QUANT_(ND_BAG_BODY(node)); + tlen = compile_length_tree(ND_QUANT_BODY(qn), reg, env); if (tlen < 0) return tlen; v = onig_positive_int_multiply(qn->lower, tlen); @@ -1658,16 +1658,16 @@ compile_length_bag_node(BagNode* node, regex_t* reg) case BAG_IF_ELSE: { - Node* cond = NODE_BAG_BODY(node); + Node* cond = ND_BAG_BODY(node); Node* Then = node->te.Then; Node* Else = node->te.Else; - len = compile_length_tree(cond, reg); + len = compile_length_tree(cond, reg, env); if (len < 0) return len; len += OPSIZE_PUSH + OPSIZE_MARK + OPSIZE_CUT_TO_MARK; if (IS_NOT_NULL(Then)) { - tlen = compile_length_tree(Then, reg); + tlen = compile_length_tree(Then, reg, env); if (tlen < 0) return tlen; len += tlen; } @@ -1675,7 +1675,7 @@ compile_length_bag_node(BagNode* node, regex_t* reg) len += OPSIZE_JUMP + OPSIZE_CUT_TO_MARK; if (IS_NOT_NULL(Else)) { - tlen = compile_length_tree(Else, reg); + tlen = compile_length_tree(Else, reg, env); if (tlen < 0) return tlen; len += tlen; } @@ -1686,6 +1686,10 @@ compile_length_bag_node(BagNode* node, regex_t* reg) /* never come here, but set for escape warning */ len = 0; break; + + default: + return ONIGERR_TYPE_BUG; + break; } return len; @@ -1697,38 +1701,38 @@ compile_bag_memory_node(BagNode* node, regex_t* reg, ParseEnv* env) int r; #ifdef USE_CALL - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { int len; r = add_op(reg, OP_CALL); if (r != 0) return r; node->m.called_addr = COP_CURR_OFFSET(reg) + 1 + OPSIZE_JUMP; - NODE_STATUS_ADD(node, FIXED_ADDR); + ND_STATUS_ADD(node, FIXED_ADDR); COP(reg)->call.addr = (int )node->m.called_addr; if (node->m.regnum == 0) { - len = compile_length_tree(NODE_BAG_BODY(node), reg); + len = compile_length_tree(ND_BAG_BODY(node), reg, env); len += OPSIZE_RETURN; r = add_op(reg, OP_JUMP); if (r != 0) return r; COP(reg)->jump.addr = len + SIZE_INC; - r = compile_tree(NODE_BAG_BODY(node), reg, env); + r = compile_tree(ND_BAG_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_RETURN); return r; } else { - len = compile_length_tree(NODE_BAG_BODY(node), reg); + len = compile_length_tree(ND_BAG_BODY(node), reg, env); len += (OPSIZE_MEM_START_PUSH + OPSIZE_RETURN); if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) - len += (NODE_IS_RECURSION(node) + len += (ND_IS_RECURSION(node) ? OPSIZE_MEM_END_PUSH_REC : OPSIZE_MEM_END_PUSH); else - len += (NODE_IS_RECURSION(node) ? OPSIZE_MEM_END_REC : OPSIZE_MEM_END); + len += (ND_IS_RECURSION(node) ? OPSIZE_MEM_END_REC : OPSIZE_MEM_END); r = add_op(reg, OP_JUMP); if (r != 0) return r; @@ -1744,19 +1748,19 @@ compile_bag_memory_node(BagNode* node, regex_t* reg, ParseEnv* env) if (r != 0) return r; COP(reg)->memory_start.num = node->m.regnum; - r = compile_tree(NODE_BAG_BODY(node), reg, env); + r = compile_tree(ND_BAG_BODY(node), reg, env); if (r != 0) return r; #ifdef USE_CALL if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) - r = add_op(reg, (NODE_IS_RECURSION(node) + r = add_op(reg, (ND_IS_RECURSION(node) ? OP_MEM_END_PUSH_REC : OP_MEM_END_PUSH)); else - r = add_op(reg, (NODE_IS_RECURSION(node) ? OP_MEM_END_REC : OP_MEM_END)); + r = add_op(reg, (ND_IS_RECURSION(node) ? OP_MEM_END_REC : OP_MEM_END)); if (r != 0) return r; COP(reg)->memory_end.num = node->m.regnum; - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { r = add_op(reg, OP_RETURN); } #else @@ -1786,19 +1790,19 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) break; case BAG_STOP_BACKTRACK: - if (NODE_IS_STRICT_REAL_REPEAT(node)) { - QuantNode* qn = QUANT_(NODE_BAG_BODY(node)); - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); + if (ND_IS_STRICT_REAL_REPEAT(node)) { + QuantNode* qn = QUANT_(ND_BAG_BODY(node)); + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); if (r != 0) return r; - len = compile_length_tree(NODE_QUANT_BODY(qn), reg); + len = compile_length_tree(ND_QUANT_BODY(qn), reg, env); if (len < 0) return len; r = add_op(reg, OP_PUSH); if (r != 0) return r; COP(reg)->push.addr = SIZE_INC + len + OPSIZE_POP + OPSIZE_JUMP; - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); + r = compile_tree(ND_QUANT_BODY(qn), reg, env); if (r != 0) return r; r = add_op(reg, OP_POP); if (r != 0) return r; @@ -1816,7 +1820,7 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) COP(reg)->mark.id = mid; COP(reg)->mark.save_pos = 0; - r = compile_tree(NODE_BAG_BODY(node), reg, env); + r = compile_tree(ND_BAG_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_CUT_TO_MARK); if (r != 0) return r; @@ -1829,7 +1833,7 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) { int cond_len, then_len, else_len, jump_len; MemNumType mid; - Node* cond = NODE_BAG_BODY(node); + Node* cond = ND_BAG_BODY(node); Node* Then = node->te.Then; Node* Else = node->te.Else; @@ -1840,10 +1844,10 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) COP(reg)->mark.id = mid; COP(reg)->mark.save_pos = 0; - cond_len = compile_length_tree(cond, reg); + cond_len = compile_length_tree(cond, reg, env); if (cond_len < 0) return cond_len; if (IS_NOT_NULL(Then)) { - then_len = compile_length_tree(Then, reg); + then_len = compile_length_tree(Then, reg, env); if (then_len < 0) return then_len; } else @@ -1868,7 +1872,7 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) } if (IS_NOT_NULL(Else)) { - else_len = compile_length_tree(Else, reg); + else_len = compile_length_tree(Else, reg, env); if (else_len < 0) return else_len; } else @@ -1888,19 +1892,23 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) } } break; + + default: + return ONIGERR_TYPE_BUG; + break; } return r; } static int -compile_length_anchor_node(AnchorNode* node, regex_t* reg) +compile_length_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) { int len; int tlen = 0; - if (IS_NOT_NULL(NODE_ANCHOR_BODY(node))) { - tlen = compile_length_tree(NODE_ANCHOR_BODY(node), reg); + if (IS_NOT_NULL(ND_ANCHOR_BODY(node))) { + tlen = compile_length_tree(ND_ANCHOR_BODY(node), reg, env); if (tlen < 0) return tlen; } @@ -1918,11 +1926,14 @@ compile_length_anchor_node(AnchorNode* node, regex_t* reg) len = OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR + OPSIZE_MARK + OPSIZE_PUSH + OPSIZE_UPDATE_VAR + OPSIZE_FAIL + OPSIZE_JUMP + OPSIZE_STEP_BACK_START + OPSIZE_STEP_BACK_NEXT + tlen + OPSIZE_CHECK_POSITION + OPSIZE_CUT_TO_MARK + OPSIZE_UPDATE_VAR; if (IS_NOT_NULL(node->lead_node)) { - int llen = compile_length_tree(node->lead_node, reg); + int llen = compile_length_tree(node->lead_node, reg, env); if (llen < 0) return llen; len += OPSIZE_MOVE + llen; } + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) + len += OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR; } break; case ANCR_LOOK_BEHIND_NOT: @@ -1932,11 +1943,14 @@ compile_length_anchor_node(AnchorNode* node, regex_t* reg) len = OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR + OPSIZE_MARK + OPSIZE_PUSH + OPSIZE_STEP_BACK_START + OPSIZE_STEP_BACK_NEXT + tlen + OPSIZE_CHECK_POSITION + OPSIZE_POP_TO_MARK + OPSIZE_UPDATE_VAR + OPSIZE_POP + OPSIZE_FAIL + OPSIZE_UPDATE_VAR + OPSIZE_POP + OPSIZE_POP; if (IS_NOT_NULL(node->lead_node)) { - int llen = compile_length_tree(node->lead_node, reg); + int llen = compile_length_tree(node->lead_node, reg, env); if (llen < 0) return llen; len += OPSIZE_MOVE + llen; } + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) + len += OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR; } break; @@ -1982,7 +1996,7 @@ compile_anchor_look_behind_node(AnchorNode* node, regex_t* reg, ParseEnv* env) COP(reg)->step_back_start.remaining = 0; COP(reg)->step_back_start.addr = 1; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_CUT_TO_MARK); @@ -1991,8 +2005,9 @@ compile_anchor_look_behind_node(AnchorNode* node, regex_t* reg, ParseEnv* env) COP(reg)->cut_to_mark.restore_pos = FALSE; } else { - MemNumType mid1, mid2; OnigLen diff; + MemNumType mid1, mid2; + MemNumType mid3 = 0; /* ignore uninitialized warning */ if (IS_NOT_NULL(node->lead_node)) { MinMaxCharLen ci; @@ -2038,6 +2053,14 @@ compile_anchor_look_behind_node(AnchorNode* node, regex_t* reg, ParseEnv* env) r = add_op(reg, OP_FAIL); if (r != 0) return r; + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + ID_ENTRY(env, mid3); + r = add_op(reg, OP_SAVE_VAL); + if (r != 0) return r; + COP(reg)->save_val.type = SAVE_RIGHT_RANGE; + COP(reg)->save_val.id = mid3; + } + r = add_op(reg, OP_STEP_BACK_START); if (r != 0) return r; @@ -2053,9 +2076,17 @@ compile_anchor_look_behind_node(AnchorNode* node, regex_t* reg, ParseEnv* env) r = add_op(reg, OP_STEP_BACK_NEXT); if (r != 0) return r; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid3; + COP(reg)->update_var.clear = FALSE; + } + r = add_op(reg, OP_CHECK_POSITION); if (r != 0) return r; COP(reg)->check_position.type = CHECK_POSITION_CURRENT_RIGHT_RANGE; @@ -2082,7 +2113,7 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, int r; int len; - len = compile_length_tree(NODE_ANCHOR_BODY(node), reg); + len = compile_length_tree(ND_ANCHOR_BODY(node), reg, env); if (node->char_min_len == node->char_max_len) { MemNumType mid; @@ -2103,7 +2134,7 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, COP(reg)->step_back_start.remaining = 0; COP(reg)->step_back_start.addr = 1; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_POP_TO_MARK); @@ -2114,8 +2145,9 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, r = add_op(reg, OP_POP); } else { - MemNumType mid1, mid2; OnigLen diff; + MemNumType mid1, mid2; + MemNumType mid3 = 0; /* ignore uninitialized warning */ ID_ENTRY(env, mid1); r = add_op(reg, OP_SAVE_VAL); @@ -2135,13 +2167,16 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, r = add_op(reg, OP_PUSH); if (r != 0) return r; + COP(reg)->push.addr = SIZE_INC + OPSIZE_STEP_BACK_START + OPSIZE_STEP_BACK_NEXT + len + OPSIZE_CHECK_POSITION + OPSIZE_POP_TO_MARK + OPSIZE_UPDATE_VAR + OPSIZE_POP + OPSIZE_FAIL; + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) + COP(reg)->push.addr += OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR; if (IS_NOT_NULL(node->lead_node)) { int clen; MinMaxCharLen ci; - clen = compile_length_tree(node->lead_node, reg); + clen = compile_length_tree(node->lead_node, reg, env); COP(reg)->push.addr += OPSIZE_MOVE + clen; r = node_char_len(node->lead_node, reg, &ci, env); @@ -2154,6 +2189,14 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, if (r != 0) return r; } + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + ID_ENTRY(env, mid3); + r = add_op(reg, OP_SAVE_VAL); + if (r != 0) return r; + COP(reg)->save_val.type = SAVE_RIGHT_RANGE; + COP(reg)->save_val.id = mid3; + } + r = add_op(reg, OP_STEP_BACK_START); if (r != 0) return r; @@ -2169,9 +2212,17 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, r = add_op(reg, OP_STEP_BACK_NEXT); if (r != 0) return r; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid3; + COP(reg)->update_var.clear = FALSE; + } + r = add_op(reg, OP_CHECK_POSITION); if (r != 0) return r; COP(reg)->check_position.type = CHECK_POSITION_CURRENT_RIGHT_RANGE; @@ -2254,7 +2305,7 @@ compile_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) type = EXTENDED_GRAPHEME_CLUSTER_BOUNDARY; #ifdef USE_UNICODE_WORD_BREAK - if (NODE_IS_TEXT_SEGMENT_WORD(node)) + if (ND_IS_TEXT_SEGMENT_WORD(node)) type = WORD_BOUNDARY; #endif @@ -2272,7 +2323,7 @@ compile_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) COP(reg)->mark.id = mid; COP(reg)->mark.save_pos = TRUE; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_CUT_TO_MARK); @@ -2284,7 +2335,7 @@ compile_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) case ANCR_PREC_READ_NOT: { - len = compile_length_tree(NODE_ANCHOR_BODY(node), reg); + len = compile_length_tree(ND_ANCHOR_BODY(node), reg, env); if (len < 0) return len; ID_ENTRY(env, mid); @@ -2298,7 +2349,7 @@ compile_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) COP(reg)->mark.id = mid; COP(reg)->mark.save_pos = FALSE; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_POP_TO_MARK); @@ -2416,78 +2467,82 @@ compile_length_gimmick_node(GimmickNode* node, regex_t* reg) } break; #endif + + default: + return ONIGERR_TYPE_BUG; + break; } return len; } static int -compile_length_tree(Node* node, regex_t* reg) +compile_length_tree(Node* node, regex_t* reg, ParseEnv* env) { int len, r; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: len = 0; do { - r = compile_length_tree(NODE_CAR(node), reg); + r = compile_length_tree(ND_CAR(node), reg, env); if (r < 0) return r; len += r; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); r = len; break; - case NODE_ALT: + case ND_ALT: { int n; n = r = 0; do { - r += compile_length_tree(NODE_CAR(node), reg); + r += compile_length_tree(ND_CAR(node), reg, env); n++; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); r += (OPSIZE_PUSH + OPSIZE_JUMP) * (n - 1); } break; - case NODE_STRING: - if (NODE_STRING_IS_CRUDE(node)) + case ND_STRING: + if (ND_STRING_IS_CRUDE(node)) r = compile_length_string_crude_node(STR_(node), reg); else r = compile_length_string_node(node, reg); break; - case NODE_CCLASS: + case ND_CCLASS: r = compile_length_cclass_node(CCLASS_(node), reg); break; - case NODE_CTYPE: + case ND_CTYPE: r = SIZE_OPCODE; break; - case NODE_BACKREF: + case ND_BACKREF: r = OPSIZE_BACKREF; break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: r = OPSIZE_CALL; break; #endif - case NODE_QUANT: - r = compile_length_quantifier_node(QUANT_(node), reg); + case ND_QUANT: + r = compile_length_quantifier_node(QUANT_(node), reg, env); break; - case NODE_BAG: - r = compile_length_bag_node(BAG_(node), reg); + case ND_BAG: + r = compile_length_bag_node(BAG_(node), reg, env); break; - case NODE_ANCHOR: - r = compile_length_anchor_node(ANCHOR_(node), reg); + case ND_ANCHOR: + r = compile_length_anchor_node(ANCHOR_(node), reg, env); break; - case NODE_GIMMICK: + case ND_GIMMICK: r = compile_length_gimmick_node(GIMMICK_(node), reg); break; @@ -2504,63 +2559,63 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) { int n, len, pos, r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: do { - r = compile_tree(NODE_CAR(node), reg, env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = compile_tree(ND_CAR(node), reg, env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ALT: + case ND_ALT: { Node* x = node; len = 0; do { - len += compile_length_tree(NODE_CAR(x), reg); - if (IS_NOT_NULL(NODE_CDR(x))) { + len += compile_length_tree(ND_CAR(x), reg, env); + if (IS_NOT_NULL(ND_CDR(x))) { len += OPSIZE_PUSH + OPSIZE_JUMP; } - } while (IS_NOT_NULL(x = NODE_CDR(x))); + } while (IS_NOT_NULL(x = ND_CDR(x))); pos = COP_CURR_OFFSET(reg) + 1 + len; /* goal position */ do { - len = compile_length_tree(NODE_CAR(node), reg); - if (IS_NOT_NULL(NODE_CDR(node))) { - enum OpCode push = NODE_IS_SUPER(node) ? OP_PUSH_SUPER : OP_PUSH; + len = compile_length_tree(ND_CAR(node), reg, env); + if (IS_NOT_NULL(ND_CDR(node))) { + enum OpCode push = ND_IS_SUPER(node) ? OP_PUSH_SUPER : OP_PUSH; r = add_op(reg, push); if (r != 0) break; COP(reg)->push.addr = SIZE_INC + len + OPSIZE_JUMP; } - r = compile_tree(NODE_CAR(node), reg, env); + r = compile_tree(ND_CAR(node), reg, env); if (r != 0) break; - if (IS_NOT_NULL(NODE_CDR(node))) { + if (IS_NOT_NULL(ND_CDR(node))) { len = pos - (COP_CURR_OFFSET(reg) + 1); r = add_op(reg, OP_JUMP); if (r != 0) break; COP(reg)->jump.addr = len; } - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); } break; - case NODE_STRING: - if (NODE_STRING_IS_CRUDE(node)) + case ND_STRING: + if (ND_STRING_IS_CRUDE(node)) r = compile_string_crude_node(STR_(node), reg); else r = compile_string_node(node, reg); break; - case NODE_CCLASS: + case ND_CCLASS: r = compile_cclass_node(CCLASS_(node), reg); break; - case NODE_CTYPE: + case ND_CTYPE: { int op; switch (CTYPE_(node)->ctype) { case CTYPE_ANYCHAR: - r = add_op(reg, NODE_IS_MULTILINE(node) ? OP_ANYCHAR_ML : OP_ANYCHAR); + r = add_op(reg, ND_IS_MULTILINE(node) ? OP_ANYCHAR_ML : OP_ANYCHAR); break; case ONIGENC_CTYPE_WORD: @@ -2580,13 +2635,13 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) } break; - case NODE_BACKREF: + case ND_BACKREF: { BackRefNode* br = BACKREF_(node); - if (NODE_IS_CHECKER(node)) { + if (ND_IS_CHECKER(node)) { #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { r = add_op(reg, OP_BACKREF_CHECK_WITH_LEVEL); if (r != 0) return r; COP(reg)->backref_general.nest_level = br->nest_level; @@ -2601,8 +2656,8 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) } else { #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { - if (NODE_IS_IGNORECASE(node)) + if (ND_IS_NEST_LEVEL(node)) { + if (ND_IS_IGNORECASE(node)) r = add_op(reg, OP_BACKREF_WITH_LEVEL_IC); else r = add_op(reg, OP_BACKREF_WITH_LEVEL); @@ -2615,7 +2670,7 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) #endif if (br->back_num == 1) { n = br->back_static[0]; - if (NODE_IS_IGNORECASE(node)) { + if (ND_IS_IGNORECASE(node)) { r = add_op(reg, OP_BACKREF_N_IC); if (r != 0) return r; COP(reg)->backref_n.n1 = n; @@ -2636,7 +2691,7 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) int num; int* p; - r = add_op(reg, NODE_IS_IGNORECASE(node) ? + r = add_op(reg, ND_IS_IGNORECASE(node) ? OP_BACKREF_MULTI_IC : OP_BACKREF_MULTI); if (r != 0) return r; @@ -2664,30 +2719,30 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: r = compile_call(CALL_(node), reg, env); break; #endif - case NODE_QUANT: + case ND_QUANT: r = compile_quantifier_node(QUANT_(node), reg, env); break; - case NODE_BAG: + case ND_BAG: r = compile_bag_node(BAG_(node), reg, env); break; - case NODE_ANCHOR: + case ND_ANCHOR: r = compile_anchor_node(ANCHOR_(node), reg, env); break; - case NODE_GIMMICK: + case ND_GIMMICK: r = compile_gimmick_node(GIMMICK_(node), reg); break; default: #ifdef ONIG_DEBUG - fprintf(DBGFP, "compile_tree: undefined node type %d\n", NODE_TYPE(node)); + fprintf(DBGFP, "compile_tree: undefined node type %d\n", ND_TYPE(node)); #endif break; } @@ -2701,40 +2756,40 @@ make_named_capture_number_map(Node** plink, GroupNumMap* map, int* counter) int r; Node* node = *plink; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = make_named_capture_number_map(&(NODE_CAR(node)), map, counter); - } while (r >= 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = make_named_capture_number_map(&(ND_CAR(node)), map, counter); + } while (r >= 0 && IS_NOT_NULL(node = ND_CDR(node))); if (r < 0) return r; break; - case NODE_QUANT: + case ND_QUANT: { - Node** ptarget = &(NODE_BODY(node)); + Node** ptarget = &(ND_BODY(node)); r = make_named_capture_number_map(ptarget, map, counter); if (r < 0) return r; - if (r == 1 && NODE_TYPE(*ptarget) == NODE_QUANT) { + if (r == 1 && ND_TYPE(*ptarget) == ND_QUANT) { return onig_reduce_nested_quantifier(node); } } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_NAMED_GROUP(node)) { + if (ND_IS_NAMED_GROUP(node)) { (*counter)++; map[en->m.regnum].new_val = *counter; en->m.regnum = *counter; - r = make_named_capture_number_map(&(NODE_BODY(node)), map, counter); + r = make_named_capture_number_map(&(ND_BODY(node)), map, counter); if (r < 0) return r; } else { - *plink = NODE_BODY(node); - NODE_BODY(node) = NULL_NODE; + *plink = ND_BODY(node); + ND_BODY(node) = NULL_NODE; onig_node_free(node); r = make_named_capture_number_map(plink, map, counter); if (r < 0) return r; @@ -2742,7 +2797,7 @@ make_named_capture_number_map(Node** plink, GroupNumMap* map, int* counter) } } else if (en->type == BAG_IF_ELSE) { - r = make_named_capture_number_map(&(NODE_BAG_BODY(en)), map, counter); + r = make_named_capture_number_map(&(ND_BAG_BODY(en)), map, counter); if (r < 0) return r; if (IS_NOT_NULL(en->te.Then)) { r = make_named_capture_number_map(&(en->te.Then), map, counter); @@ -2754,15 +2809,15 @@ make_named_capture_number_map(Node** plink, GroupNumMap* map, int* counter) } } else { - r = make_named_capture_number_map(&(NODE_BODY(node)), map, counter); + r = make_named_capture_number_map(&(ND_BODY(node)), map, counter); if (r < 0) return r; } } break; - case NODE_ANCHOR: - if (IS_NOT_NULL(NODE_BODY(node))) { - r = make_named_capture_number_map(&(NODE_BODY(node)), map, counter); + case ND_ANCHOR: + if (IS_NOT_NULL(ND_BODY(node))) { + r = make_named_capture_number_map(&(ND_BODY(node)), map, counter); if (r < 0) return r; } break; @@ -2781,7 +2836,7 @@ renumber_backref_node(Node* node, GroupNumMap* map) int *backs; BackRefNode* bn = BACKREF_(node); - if (! NODE_IS_BY_NAME(node)) + if (! ND_IS_BY_NAME(node)) return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; old_num = bn->back_num; @@ -2807,23 +2862,23 @@ renumber_backref_traverse(Node* node, GroupNumMap* map) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = renumber_backref_traverse(NODE_CAR(node), map); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = renumber_backref_traverse(ND_CAR(node), map); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: - r = renumber_backref_traverse(NODE_BODY(node), map); + case ND_QUANT: + r = renumber_backref_traverse(ND_BODY(node), map); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); - r = renumber_backref_traverse(NODE_BODY(node), map); + r = renumber_backref_traverse(ND_BODY(node), map); if (r != 0) return r; if (en->type == BAG_IF_ELSE) { @@ -2839,13 +2894,13 @@ renumber_backref_traverse(Node* node, GroupNumMap* map) } break; - case NODE_BACKREF: + case ND_BACKREF: r = renumber_backref_node(node, map); break; - case NODE_ANCHOR: - if (IS_NOT_NULL(NODE_BODY(node))) - r = renumber_backref_traverse(NODE_BODY(node), map); + case ND_ANCHOR: + if (IS_NOT_NULL(ND_BODY(node))) + r = renumber_backref_traverse(ND_BODY(node), map); break; default: @@ -2860,27 +2915,27 @@ numbered_ref_check(Node* node) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = numbered_ref_check(NODE_CAR(node)); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = numbered_ref_check(ND_CAR(node)); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: - if (IS_NULL(NODE_BODY(node))) + case ND_ANCHOR: + if (IS_NULL(ND_BODY(node))) break; /* fall */ - case NODE_QUANT: - r = numbered_ref_check(NODE_BODY(node)); + case ND_QUANT: + r = numbered_ref_check(ND_BODY(node)); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); - r = numbered_ref_check(NODE_BODY(node)); + r = numbered_ref_check(ND_BODY(node)); if (r != 0) return r; if (en->type == BAG_IF_ELSE) { @@ -2897,8 +2952,8 @@ numbered_ref_check(Node* node) break; - case NODE_BACKREF: - if (! NODE_IS_BY_NAME(node)) + case ND_BACKREF: + if (! ND_IS_BY_NAME(node)) return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; break; @@ -2959,8 +3014,8 @@ fix_unset_addr_list(UnsetAddrList* uslist, regex_t* reg) AbsAddrType* paddr; for (i = 0; i < uslist->num; i++) { - if (! NODE_IS_FIXED_ADDR(uslist->us[i].target)) { - if (NODE_IS_CALLED(uslist->us[i].target)) + if (! ND_IS_FIXED_ADDR(uslist->us[i].target)) { + if (ND_IS_CALLED(uslist->us[i].target)) return ONIGERR_PARSER_BUG; else { /* CASE: called node doesn't have called address. @@ -2993,16 +3048,16 @@ is_exclusive(Node* x, Node* y, regex_t* reg) NodeType ytype; retry: - ytype = NODE_TYPE(y); - switch (NODE_TYPE(x)) { - case NODE_CTYPE: + ytype = ND_TYPE(y); + switch (ND_TYPE(x)) { + case ND_CTYPE: { if (CTYPE_(x)->ctype == CTYPE_ANYCHAR || CTYPE_(y)->ctype == CTYPE_ANYCHAR) break; switch (ytype) { - case NODE_CTYPE: + case ND_CTYPE: if (CTYPE_(y)->ctype == CTYPE_(x)->ctype && CTYPE_(y)->not != CTYPE_(x)->not && CTYPE_(y)->ascii_mode == CTYPE_(x)->ascii_mode) @@ -3011,7 +3066,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) return 0; break; - case NODE_CCLASS: + case ND_CCLASS: swap: { Node* tmp; @@ -3020,7 +3075,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_STRING: + case ND_STRING: goto swap; break; @@ -3030,13 +3085,13 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_CCLASS: + case ND_CCLASS: { int range; CClassNode* xc = CCLASS_(x); switch (ytype) { - case NODE_CTYPE: + case ND_CTYPE: switch (CTYPE_(y)->ctype) { case CTYPE_ANYCHAR: return 0; @@ -3078,7 +3133,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_CCLASS: + case ND_CCLASS: { int v; CClassNode* yc = CCLASS_(y); @@ -3099,7 +3154,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_STRING: + case ND_STRING: goto swap; break; @@ -3109,15 +3164,15 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_STRING: + case ND_STRING: { StrNode* xs = STR_(x); - if (NODE_STRING_LEN(x) == 0) + if (ND_STRING_LEN(x) == 0) break; switch (ytype) { - case NODE_CTYPE: + case ND_CTYPE: switch (CTYPE_(y)->ctype) { case CTYPE_ANYCHAR: break; @@ -3141,7 +3196,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_CCLASS: + case ND_CCLASS: { CClassNode* cc = CCLASS_(y); @@ -3151,13 +3206,13 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_STRING: + case ND_STRING: { UChar *q; StrNode* ys = STR_(y); - len = NODE_STRING_LEN(x); - if (len > NODE_STRING_LEN(y)) len = NODE_STRING_LEN(y); + len = ND_STRING_LEN(x); + if (len > ND_STRING_LEN(y)) len = ND_STRING_LEN(y); for (i = 0, p = ys->s, q = xs->s; i < len; i++, p++, q++) { if (*p != *q) return 1; @@ -3183,73 +3238,74 @@ get_tree_head_literal(Node* node, int exact, regex_t* reg) { Node* n = NULL_NODE; - switch (NODE_TYPE(node)) { - case NODE_BACKREF: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_BACKREF: + case ND_ALT: #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: #endif break; - case NODE_CTYPE: + case ND_CTYPE: if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) break; /* fall */ - case NODE_CCLASS: + case ND_CCLASS: if (exact == 0) { n = node; } break; - case NODE_LIST: - n = get_tree_head_literal(NODE_CAR(node), exact, reg); + case ND_LIST: + n = get_tree_head_literal(ND_CAR(node), exact, reg); break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); if (sn->end <= sn->s) break; - if (exact == 0 || !NODE_IS_REAL_IGNORECASE(node)) { + if (exact == 0 || !ND_IS_REAL_IGNORECASE(node)) { n = node; } } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->lower > 0) { if (IS_NOT_NULL(qn->head_exact)) n = qn->head_exact; else - n = get_tree_head_literal(NODE_BODY(node), exact, reg); + n = get_tree_head_literal(ND_BODY(node), exact, reg); } } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_OPTION: case BAG_MEMORY: case BAG_STOP_BACKTRACK: - case BAG_IF_ELSE: - n = get_tree_head_literal(NODE_BODY(node), exact, reg); + n = get_tree_head_literal(ND_BODY(node), exact, reg); + break; + default: break; } } break; - case NODE_ANCHOR: + case ND_ANCHOR: if (ANCHOR_(node)->type == ANCR_PREC_READ) - n = get_tree_head_literal(NODE_BODY(node), exact, reg); + n = get_tree_head_literal(ND_BODY(node), exact, reg); break; - case NODE_GIMMICK: + case ND_GIMMICK: default: break; } @@ -3275,37 +3331,37 @@ get_tree_tail_literal(Node* node, Node** rnode, regex_t* reg, int nest_level) return GET_VALUE_NONE; } - switch (NODE_TYPE(node)) { - case NODE_LIST: - if (IS_NULL(NODE_CDR(node))) { - r = get_tree_tail_literal(NODE_CAR(node), rnode, reg, nest_level); + switch (ND_TYPE(node)) { + case ND_LIST: + if (IS_NULL(ND_CDR(node))) { + r = get_tree_tail_literal(ND_CAR(node), rnode, reg, nest_level); } else { - r = get_tree_tail_literal(NODE_CDR(node), rnode, reg, nest_level); + r = get_tree_tail_literal(ND_CDR(node), rnode, reg, nest_level); if (r == GET_VALUE_IGNORE) { - r = get_tree_tail_literal(NODE_CAR(node), rnode, reg, nest_level); + r = get_tree_tail_literal(ND_CAR(node), rnode, reg, nest_level); } } break; #ifdef USE_CALL - case NODE_CALL: - r = get_tree_tail_literal(NODE_BODY(node), rnode, reg, nest_level); + case ND_CALL: + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); break; #endif - case NODE_CTYPE: + case ND_CTYPE: if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) { r = GET_VALUE_NONE; break; } /* fall */ - case NODE_CCLASS: + case ND_CCLASS: *rnode = node; r = GET_VALUE_FOUND; break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); @@ -3314,7 +3370,7 @@ get_tree_tail_literal(Node* node, Node** rnode, regex_t* reg, int nest_level) break; } - if (NODE_IS_REAL_IGNORECASE(node)) { + if (ND_IS_REAL_IGNORECASE(node)) { r = GET_VALUE_NONE; break; } @@ -3324,43 +3380,43 @@ get_tree_tail_literal(Node* node, Node** rnode, regex_t* reg, int nest_level) } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->lower != 0) { - r = get_tree_tail_literal(NODE_BODY(node), rnode, reg, nest_level); + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); } else r = GET_VALUE_NONE; } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK1(node)) + if (ND_IS_MARK1(node)) r = GET_VALUE_NONE; else { - NODE_STATUS_ADD(node, MARK1); - r = get_tree_tail_literal(NODE_BODY(node), rnode, reg, nest_level); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); + ND_STATUS_REMOVE(node, MARK1); } } else { - r = get_tree_tail_literal(NODE_BODY(node), rnode, reg, nest_level); + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); } } break; - case NODE_ANCHOR: - case NODE_GIMMICK: + case ND_ANCHOR: + case ND_GIMMICK: r = GET_VALUE_IGNORE; break; - case NODE_ALT: - case NODE_BACKREF: + case ND_ALT: + case ND_BACKREF: default: r = GET_VALUE_NONE; break; @@ -3376,33 +3432,33 @@ check_called_node_in_look_behind(Node* node, int not) r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = check_called_node_in_look_behind(NODE_CAR(node), not); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = check_called_node_in_look_behind(ND_CAR(node), not); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: - r = check_called_node_in_look_behind(NODE_BODY(node), not); + case ND_QUANT: + r = check_called_node_in_look_behind(ND_BODY(node), not); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK1(node)) + if (ND_IS_MARK1(node)) return 0; else { - NODE_STATUS_ADD(node, MARK1); - r = check_called_node_in_look_behind(NODE_BODY(node), not); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + r = check_called_node_in_look_behind(ND_BODY(node), not); + ND_STATUS_REMOVE(node, MARK1); } } else { - r = check_called_node_in_look_behind(NODE_BODY(node), not); + r = check_called_node_in_look_behind(ND_BODY(node), not); if (r == 0 && en->type == BAG_IF_ELSE) { if (IS_NOT_NULL(en->te.Then)) { r = check_called_node_in_look_behind(en->te.Then, not); @@ -3416,13 +3472,13 @@ check_called_node_in_look_behind(Node* node, int not) } break; - case NODE_ANCHOR: - if (IS_NOT_NULL(NODE_BODY(node))) - r = check_called_node_in_look_behind(NODE_BODY(node), not); + case ND_ANCHOR: + if (IS_NOT_NULL(ND_BODY(node))) + r = check_called_node_in_look_behind(ND_BODY(node), not); break; - case NODE_GIMMICK: - if (NODE_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) + case ND_GIMMICK: + if (ND_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) return 1; break; @@ -3435,9 +3491,9 @@ check_called_node_in_look_behind(Node* node, int not) /* allowed node types in look-behind */ #define ALLOWED_TYPE_IN_LB \ - ( NODE_BIT_LIST | NODE_BIT_ALT | NODE_BIT_STRING | NODE_BIT_CCLASS \ - | NODE_BIT_CTYPE | NODE_BIT_ANCHOR | NODE_BIT_BAG | NODE_BIT_QUANT \ - | NODE_BIT_CALL | NODE_BIT_BACKREF | NODE_BIT_GIMMICK) + ( ND_BIT_LIST | ND_BIT_ALT | ND_BIT_STRING | ND_BIT_CCLASS \ + | ND_BIT_CTYPE | ND_BIT_ANCHOR | ND_BIT_BAG | ND_BIT_QUANT \ + | ND_BIT_CALL | ND_BIT_BACKREF | ND_BIT_GIMMICK) #define ALLOWED_BAG_IN_LB ( 1<<BAG_MEMORY | 1<<BAG_OPTION | 1<<BAG_STOP_BACKTRACK | 1<<BAG_IF_ELSE ) #define ALLOWED_BAG_IN_LB_NOT ( 1<<BAG_OPTION | 1<<BAG_STOP_BACKTRACK | 1<<BAG_IF_ELSE ) @@ -3467,34 +3523,34 @@ check_node_in_look_behind(Node* node, int not, int* used) NodeType type; int r = 0; - type = NODE_TYPE(node); - if ((NODE_TYPE2BIT(type) & ALLOWED_TYPE_IN_LB) == 0) + type = ND_TYPE(node); + if ((ND_TYPE2BIT(type) & ALLOWED_TYPE_IN_LB) == 0) return 1; switch (type) { - case NODE_LIST: - case NODE_ALT: + case ND_LIST: + case ND_ALT: do { - r = check_node_in_look_behind(NODE_CAR(node), not, used); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = check_node_in_look_behind(ND_CAR(node), not, used); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: - r = check_node_in_look_behind(NODE_BODY(node), not, used); + case ND_QUANT: + r = check_node_in_look_behind(ND_BODY(node), not, used); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (((1<<en->type) & bag_mask[not]) == 0) return 1; - r = check_node_in_look_behind(NODE_BODY(node), not, used); + r = check_node_in_look_behind(ND_BODY(node), not, used); if (r != 0) break; if (en->type == BAG_MEMORY) { - if (NODE_IS_BACKREF(node) || NODE_IS_CALLED(node) - || NODE_IS_REFERENCED(node)) + if (ND_IS_BACKREF(node) || ND_IS_CALLED(node) + || ND_IS_REFERENCED(node)) *used = TRUE; } else if (en->type == BAG_IF_ELSE) { @@ -3509,17 +3565,17 @@ check_node_in_look_behind(Node* node, int not, int* used) } break; - case NODE_ANCHOR: + case ND_ANCHOR: type = ANCHOR_(node)->type; if ((type & anchor_mask[not]) == 0) return 1; - if (IS_NOT_NULL(NODE_BODY(node))) - r = check_node_in_look_behind(NODE_BODY(node), not, used); + if (IS_NOT_NULL(ND_BODY(node))) + r = check_node_in_look_behind(ND_BODY(node), not, used); break; - case NODE_GIMMICK: - if (NODE_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) + case ND_GIMMICK: + if (ND_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) return 1; { @@ -3529,14 +3585,14 @@ check_node_in_look_behind(Node* node, int not, int* used) } break; - case NODE_CALL: - if (NODE_IS_RECURSION(node)) { + case ND_CALL: + if (ND_IS_RECURSION(node)) { /* fix: Issue 38040 in oss-fuzz */ /* This node should be removed before recursive call check. */ *used = TRUE; } else - r = check_called_node_in_look_behind(NODE_BODY(node), not); + r = check_called_node_in_look_behind(ND_BODY(node), not); break; default: @@ -3552,14 +3608,14 @@ node_min_byte_len(Node* node, ParseEnv* env) OnigLen tmin; len = 0; - switch (NODE_TYPE(node)) { - case NODE_BACKREF: - if (! NODE_IS_CHECKER(node)) { + switch (ND_TYPE(node)) { + case ND_BACKREF: + if (! ND_IS_CHECKER(node)) { int i; int* backs; MemEnv* mem_env = PARSEENV_MEMENV(env); BackRefNode* br = BACKREF_(node); - if (NODE_IS_RECURSION(node)) break; + if (ND_IS_RECURSION(node)) break; backs = BACKREFS_P(br); len = node_min_byte_len(mem_env[backs[0]].mem_node, env); @@ -3571,10 +3627,10 @@ node_min_byte_len(Node* node, ParseEnv* env) break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: { - Node* t = NODE_BODY(node); - if (NODE_IS_FIXED_MIN(t)) + Node* t = ND_BODY(node); + if (ND_IS_FIXED_MIN(t)) len = BAG_(t)->min_len; else len = node_min_byte_len(t, env); @@ -3582,79 +3638,79 @@ node_min_byte_len(Node* node, ParseEnv* env) break; #endif - case NODE_LIST: + case ND_LIST: do { - tmin = node_min_byte_len(NODE_CAR(node), env); + tmin = node_min_byte_len(ND_CAR(node), env); len = distance_add(len, tmin); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ALT: + case ND_ALT: { Node *x, *y; y = node; do { - x = NODE_CAR(y); + x = ND_CAR(y); tmin = node_min_byte_len(x, env); if (y == node) len = tmin; else if (len > tmin) len = tmin; - } while (IS_NOT_NULL(y = NODE_CDR(y))); + } while (IS_NOT_NULL(y = ND_CDR(y))); } break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); len = (int )(sn->end - sn->s); } break; - case NODE_CTYPE: - case NODE_CCLASS: + case ND_CTYPE: + case ND_CCLASS: len = ONIGENC_MBC_MINLEN(env->enc); break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->lower > 0) { - len = node_min_byte_len(NODE_BODY(node), env); + len = node_min_byte_len(ND_BODY(node), env); len = distance_multiply(len, qn->lower); } } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_MEMORY: - if (NODE_IS_FIXED_MIN(node)) + if (ND_IS_FIXED_MIN(node)) len = en->min_len; else { - if (NODE_IS_MARK1(node)) + if (ND_IS_MARK1(node)) len = 0; /* recursive */ else { - NODE_STATUS_ADD(node, MARK1); - len = node_min_byte_len(NODE_BODY(node), env); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + len = node_min_byte_len(ND_BODY(node), env); + ND_STATUS_REMOVE(node, MARK1); en->min_len = len; - NODE_STATUS_ADD(node, FIXED_MIN); + ND_STATUS_ADD(node, FIXED_MIN); } } break; case BAG_OPTION: case BAG_STOP_BACKTRACK: - len = node_min_byte_len(NODE_BODY(node), env); + len = node_min_byte_len(ND_BODY(node), env); break; case BAG_IF_ELSE: { OnigLen elen; - len = node_min_byte_len(NODE_BODY(node), env); + len = node_min_byte_len(ND_BODY(node), env); if (IS_NOT_NULL(en->te.Then)) len += node_min_byte_len(en->te.Then, env); if (IS_NOT_NULL(en->te.Else)) @@ -3668,7 +3724,7 @@ node_min_byte_len(Node* node, ParseEnv* env) } break; - case NODE_GIMMICK: + case ND_GIMMICK: { GimmickNode* g = GIMMICK_(node); if (g->type == GIMMICK_FAIL) { @@ -3677,7 +3733,7 @@ node_min_byte_len(Node* node, ParseEnv* env) } } /* fall */ - case NODE_ANCHOR: + case ND_ANCHOR: default: break; } @@ -3690,26 +3746,26 @@ check_backrefs(Node* node, ParseEnv* env) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = check_backrefs(NODE_CAR(node), env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = check_backrefs(ND_CAR(node), env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { r = 0; break; } /* fall */ - case NODE_QUANT: - r = check_backrefs(NODE_BODY(node), env); + case ND_QUANT: + r = check_backrefs(ND_BODY(node), env); break; - case NODE_BAG: - r = check_backrefs(NODE_BODY(node), env); + case ND_BAG: + r = check_backrefs(ND_BODY(node), env); { BagNode* en = BAG_(node); @@ -3726,7 +3782,7 @@ check_backrefs(Node* node, ParseEnv* env) } break; - case NODE_BACKREF: + case ND_BACKREF: { int i; BackRefNode* br = BACKREF_(node); @@ -3737,7 +3793,7 @@ check_backrefs(Node* node, ParseEnv* env) if (backs[i] > env->num_mem) return ONIGERR_INVALID_BACKREF; - NODE_STATUS_ADD(mem_env[backs[i]].mem_node, BACKREF); + ND_STATUS_ADD(mem_env[backs[i]].mem_node, BACKREF); } r = 0; } @@ -3756,15 +3812,15 @@ set_empty_repeat_node_trav(Node* node, Node* empty, ParseEnv* env) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = set_empty_repeat_node_trav(NODE_CAR(node), empty, env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = set_empty_repeat_node_trav(ND_CAR(node), empty, env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); @@ -3781,22 +3837,22 @@ set_empty_repeat_node_trav(Node* node, Node* empty, ParseEnv* env) default: break; } - r = set_empty_repeat_node_trav(NODE_BODY(node), empty, env); + r = set_empty_repeat_node_trav(ND_BODY(node), empty, env); } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->emptiness != BODY_IS_NOT_EMPTY) empty = node; - r = set_empty_repeat_node_trav(NODE_BODY(node), empty, env); + r = set_empty_repeat_node_trav(ND_BODY(node), empty, env); } break; - case NODE_BAG: - if (IS_NOT_NULL(NODE_BODY(node))) { - r = set_empty_repeat_node_trav(NODE_BODY(node), empty, env); + case ND_BAG: + if (IS_NOT_NULL(ND_BODY(node))) { + r = set_empty_repeat_node_trav(ND_BODY(node), empty, env); if (r != 0) return r; } { @@ -3804,7 +3860,7 @@ set_empty_repeat_node_trav(Node* node, Node* empty, ParseEnv* env) r = 0; if (en->type == BAG_MEMORY) { - if (NODE_IS_BACKREF(node)) { + if (ND_IS_BACKREF(node)) { if (IS_NOT_NULL(empty)) PARSEENV_MEMENV(env)[en->m.regnum].empty_repeat_node = empty; } @@ -3834,7 +3890,7 @@ is_ancestor_node(Node* node, Node* me) { Node* parent; - while ((parent = NODE_PARENT(me)) != NULL_NODE) { + while ((parent = ND_PARENT(me)) != NULL_NODE) { if (parent == node) return 1; me = parent; } @@ -3844,30 +3900,30 @@ is_ancestor_node(Node* node, Node* me) static void set_empty_status_check_trav(Node* node, ParseEnv* env) { - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - set_empty_status_check_trav(NODE_CAR(node), env); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + set_empty_status_check_trav(ND_CAR(node), env); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); if (! ANCHOR_HAS_BODY(an)) break; - set_empty_status_check_trav(NODE_BODY(node), env); + set_empty_status_check_trav(ND_BODY(node), env); } break; - case NODE_QUANT: - set_empty_status_check_trav(NODE_BODY(node), env); + case ND_QUANT: + set_empty_status_check_trav(ND_BODY(node), env); break; - case NODE_BAG: - if (IS_NOT_NULL(NODE_BODY(node))) - set_empty_status_check_trav(NODE_BODY(node), env); + case ND_BAG: + if (IS_NOT_NULL(ND_BODY(node))) + set_empty_status_check_trav(ND_BODY(node), env); { BagNode* en = BAG_(node); @@ -3882,7 +3938,7 @@ set_empty_status_check_trav(Node* node, ParseEnv* env) } break; - case NODE_BACKREF: + case ND_BACKREF: { int i; int* backs; @@ -3894,8 +3950,8 @@ set_empty_status_check_trav(Node* node, ParseEnv* env) if (IS_NOT_NULL(ernode)) { if (! is_ancestor_node(ernode, node)) { MEM_STATUS_LIMIT_ON(QUANT_(ernode)->empty_status_mem, backs[i]); - NODE_STATUS_ADD(ernode, EMPTY_STATUS_CHECK); - NODE_STATUS_ADD(mem_env[backs[i]].mem_node, EMPTY_STATUS_CHECK); + ND_STATUS_ADD(ernode, EMPTY_STATUS_CHECK); + ND_STATUS_ADD(mem_env[backs[i]].mem_node, EMPTY_STATUS_CHECK); } } } @@ -3910,28 +3966,28 @@ set_empty_status_check_trav(Node* node, ParseEnv* env) static void set_parent_node_trav(Node* node, Node* parent) { - NODE_PARENT(node) = parent; + ND_PARENT(node) = parent; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - set_parent_node_trav(NODE_CAR(node), node); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + set_parent_node_trav(ND_CAR(node), node); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) break; - set_parent_node_trav(NODE_BODY(node), node); + set_parent_node_trav(ND_BODY(node), node); break; - case NODE_QUANT: - set_parent_node_trav(NODE_BODY(node), node); + case ND_QUANT: + set_parent_node_trav(ND_BODY(node), node); break; - case NODE_BAG: - if (IS_NOT_NULL(NODE_BODY(node))) - set_parent_node_trav(NODE_BODY(node), node); + case ND_BAG: + if (IS_NOT_NULL(ND_BODY(node))) + set_parent_node_trav(ND_BODY(node), node); { BagNode* en = BAG_(node); @@ -3963,45 +4019,45 @@ infinite_recursive_call_check(Node* node, ParseEnv* env, int head) int ret; int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { Node *x; OnigLen min; x = node; do { - ret = infinite_recursive_call_check(NODE_CAR(x), env, head); + ret = infinite_recursive_call_check(ND_CAR(x), env, head); if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; r |= ret; if (head != 0) { - min = node_min_byte_len(NODE_CAR(x), env); + min = node_min_byte_len(ND_CAR(x), env); if (min != 0) head = 0; } - } while (IS_NOT_NULL(x = NODE_CDR(x))); + } while (IS_NOT_NULL(x = ND_CDR(x))); } break; - case NODE_ALT: + case ND_ALT: { int must; must = RECURSION_MUST; do { - ret = infinite_recursive_call_check(NODE_CAR(node), env, head); + ret = infinite_recursive_call_check(ND_CAR(node), env, head); if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; r |= (ret & RECURSION_EXIST); must &= ret; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); r |= must; } break; - case NODE_QUANT: + case ND_QUANT: if (QUANT_(node)->upper == 0) break; - r = infinite_recursive_call_check(NODE_BODY(node), env, head); + r = infinite_recursive_call_check(ND_BODY(node), env, head); if (r < 0) return r; if ((r & RECURSION_MUST) != 0) { if (QUANT_(node)->lower == 0) @@ -4009,40 +4065,40 @@ infinite_recursive_call_check(Node* node, ParseEnv* env, int head) } break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) break; /* fall */ - case NODE_CALL: - r = infinite_recursive_call_check(NODE_BODY(node), env, head); + case ND_CALL: + r = infinite_recursive_call_check(ND_BODY(node), env, head); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK2(node)) + if (ND_IS_MARK2(node)) return 0; - else if (NODE_IS_MARK1(node)) + else if (ND_IS_MARK1(node)) return (head == 0 ? RECURSION_EXIST | RECURSION_MUST : RECURSION_EXIST | RECURSION_MUST | RECURSION_INFINITE); else { - NODE_STATUS_ADD(node, MARK2); - r = infinite_recursive_call_check(NODE_BODY(node), env, head); - NODE_STATUS_REMOVE(node, MARK2); + ND_STATUS_ADD(node, MARK2); + r = infinite_recursive_call_check(ND_BODY(node), env, head); + ND_STATUS_REMOVE(node, MARK2); } } else if (en->type == BAG_IF_ELSE) { int eret; - ret = infinite_recursive_call_check(NODE_BODY(node), env, head); + ret = infinite_recursive_call_check(ND_BODY(node), env, head); if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; r |= ret; if (IS_NOT_NULL(en->te.Then)) { OnigLen min; if (head != 0) { - min = node_min_byte_len(NODE_BODY(node), env); + min = node_min_byte_len(ND_BODY(node), env); } else min = 0; @@ -4062,7 +4118,7 @@ infinite_recursive_call_check(Node* node, ParseEnv* env, int head) } } else { - r = infinite_recursive_call_check(NODE_BODY(node), env, head); + r = infinite_recursive_call_check(ND_BODY(node), env, head); } } break; @@ -4079,40 +4135,40 @@ infinite_recursive_call_check_trav(Node* node, ParseEnv* env) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = infinite_recursive_call_check_trav(NODE_CAR(node), env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = infinite_recursive_call_check_trav(ND_CAR(node), env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { r = 0; break; } /* fall */ - case NODE_QUANT: - r = infinite_recursive_call_check_trav(NODE_BODY(node), env); + case ND_QUANT: + r = infinite_recursive_call_check_trav(ND_BODY(node), env); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_RECURSION(node) && NODE_IS_CALLED(node)) { + if (ND_IS_RECURSION(node) && ND_IS_CALLED(node)) { int ret; - NODE_STATUS_ADD(node, MARK1); + ND_STATUS_ADD(node, MARK1); - ret = infinite_recursive_call_check(NODE_BODY(node), env, 1); + ret = infinite_recursive_call_check(ND_BODY(node), env, 1); if (ret < 0) return ret; else if ((ret & (RECURSION_MUST | RECURSION_INFINITE)) != 0) return ONIGERR_NEVER_ENDING_RECURSION; - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_REMOVE(node, MARK1); } } else if (en->type == BAG_IF_ELSE) { @@ -4127,7 +4183,7 @@ infinite_recursive_call_check_trav(Node* node, ParseEnv* env) } } - r = infinite_recursive_call_check_trav(NODE_BODY(node), env); + r = infinite_recursive_call_check_trav(ND_BODY(node), env); break; default: @@ -4143,46 +4199,46 @@ recursive_call_check(Node* node) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: r = 0; do { - r |= recursive_call_check(NODE_CAR(node)); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + r |= recursive_call_check(ND_CAR(node)); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { r = 0; break; } /* fall */ - case NODE_QUANT: - r = recursive_call_check(NODE_BODY(node)); + case ND_QUANT: + r = recursive_call_check(ND_BODY(node)); break; - case NODE_CALL: - r = recursive_call_check(NODE_BODY(node)); + case ND_CALL: + r = recursive_call_check(ND_BODY(node)); if (r != 0) { - if (NODE_IS_MARK1(NODE_BODY(node))) - NODE_STATUS_ADD(node, RECURSION); + if (ND_IS_MARK1(ND_BODY(node))) + ND_STATUS_ADD(node, RECURSION); } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK2(node)) + if (ND_IS_MARK2(node)) return 0; - else if (NODE_IS_MARK1(node)) + else if (ND_IS_MARK1(node)) return 1; /* recursion */ else { - NODE_STATUS_ADD(node, MARK2); - r = recursive_call_check(NODE_BODY(node)); - NODE_STATUS_REMOVE(node, MARK2); + ND_STATUS_ADD(node, MARK2); + r = recursive_call_check(ND_BODY(node)); + ND_STATUS_REMOVE(node, MARK2); } } else if (en->type == BAG_IF_ELSE) { @@ -4193,10 +4249,10 @@ recursive_call_check(Node* node) if (IS_NOT_NULL(en->te.Else)) { r |= recursive_call_check(en->te.Else); } - r |= recursive_call_check(NODE_BODY(node)); + r |= recursive_call_check(ND_BODY(node)); } else { - r = recursive_call_check(NODE_BODY(node)); + r = recursive_call_check(ND_BODY(node)); } } break; @@ -4217,65 +4273,65 @@ recursive_call_check_trav(Node* node, ParseEnv* env, int state) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: { int ret; do { - ret = recursive_call_check_trav(NODE_CAR(node), env, state); + ret = recursive_call_check_trav(ND_CAR(node), env, state); if (ret == FOUND_CALLED_NODE) r = FOUND_CALLED_NODE; else if (ret < 0) return ret; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); } break; - case NODE_QUANT: - r = recursive_call_check_trav(NODE_BODY(node), env, state); + case ND_QUANT: + r = recursive_call_check_trav(ND_BODY(node), env, state); if (QUANT_(node)->upper == 0) { if (r == FOUND_CALLED_NODE) QUANT_(node)->include_referred = 1; } break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); if (ANCHOR_HAS_BODY(an)) - r = recursive_call_check_trav(NODE_ANCHOR_BODY(an), env, state); + r = recursive_call_check_trav(ND_ANCHOR_BODY(an), env, state); } break; - case NODE_BAG: + case ND_BAG: { int ret; int state1; BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { r = FOUND_CALLED_NODE; goto check_recursion; } else if ((state & IN_RECURSION) != 0) { check_recursion: - if (! NODE_IS_RECURSION(node)) { - NODE_STATUS_ADD(node, MARK1); - ret = recursive_call_check(NODE_BODY(node)); + if (! ND_IS_RECURSION(node)) { + ND_STATUS_ADD(node, MARK1); + ret = recursive_call_check(ND_BODY(node)); if (ret != 0) { - NODE_STATUS_ADD(node, RECURSION); + ND_STATUS_ADD(node, RECURSION); MEM_STATUS_ON(env->backtrack_mem, en->m.regnum); } - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_REMOVE(node, MARK1); } } } state1 = state; - if (NODE_IS_RECURSION(node)) + if (ND_IS_RECURSION(node)) state1 |= IN_RECURSION; - ret = recursive_call_check_trav(NODE_BODY(node), env, state1); + ret = recursive_call_check_trav(ND_BODY(node), env, state1); if (ret == FOUND_CALLED_NODE) r = FOUND_CALLED_NODE; @@ -4306,10 +4362,10 @@ recursive_call_check_trav(Node* node, ParseEnv* env, int state) static void remove_from_list(Node* prev, Node* a) { - if (NODE_CDR(prev) != a) return ; + if (ND_CDR(prev) != a) return ; - NODE_CDR(prev) = NODE_CDR(a); - NODE_CDR(a) = NULL_NODE; + ND_CDR(prev) = ND_CDR(a); + ND_CDR(a) = NULL_NODE; } static int @@ -4317,8 +4373,8 @@ reduce_string_list(Node* node, OnigEncoding enc) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { Node* prev; Node* curr; @@ -4327,12 +4383,12 @@ reduce_string_list(Node* node, OnigEncoding enc) prev = NULL_NODE; do { - next_node = NODE_CDR(node); - curr = NODE_CAR(node); - if (NODE_TYPE(curr) == NODE_STRING) { + next_node = ND_CDR(node); + curr = ND_CAR(node); + if (ND_TYPE(curr) == ND_STRING) { if (IS_NULL(prev) || STR_(curr)->flag != STR_(prev)->flag - || NODE_STATUS(curr) != NODE_STATUS(prev)) { + || ND_STATUS(curr) != ND_STATUS(prev)) { prev = curr; prev_node = node; } @@ -4370,14 +4426,14 @@ reduce_string_list(Node* node, OnigEncoding enc) } break; - case NODE_ALT: + case ND_ALT: do { - r = reduce_string_list(NODE_CAR(node), enc); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = reduce_string_list(ND_CAR(node), enc); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; #ifdef USE_CHECK_VALIDITY_OF_STRING_IN_TREE - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); if (! ONIGENC_IS_VALID_MBC_STRING(enc, sn->s, sn->end)) @@ -4386,19 +4442,19 @@ reduce_string_list(Node* node, OnigEncoding enc) break; #endif - case NODE_ANCHOR: - if (IS_NULL(NODE_BODY(node))) + case ND_ANCHOR: + if (IS_NULL(ND_BODY(node))) break; /* fall */ - case NODE_QUANT: - r = reduce_string_list(NODE_BODY(node), enc); + case ND_QUANT: + r = reduce_string_list(ND_BODY(node), enc); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); - r = reduce_string_list(NODE_BODY(node), enc); + r = reduce_string_list(ND_BODY(node), enc); if (r != 0) return r; if (en->type == BAG_IF_ELSE) { @@ -4447,26 +4503,26 @@ divide_look_behind_alternatives(Node* node) an = ANCHOR_(node); anc_type = an->type; - head = NODE_ANCHOR_BODY(an); - np = NODE_CAR(head); + head = ND_ANCHOR_BODY(an); + np = ND_CAR(head); node_swap(node, head); - NODE_CAR(node) = head; - NODE_BODY(head) = np; + ND_CAR(node) = head; + ND_BODY(head) = np; np = node; - while (IS_NOT_NULL(np = NODE_CDR(np))) { + while (IS_NOT_NULL(np = ND_CDR(np))) { r = onig_node_copy(&insert_node, head); if (r != 0) return r; CHECK_NULL_RETURN_MEMERR(insert_node); - NODE_BODY(insert_node) = NODE_CAR(np); - NODE_CAR(np) = insert_node; + ND_BODY(insert_node) = ND_CAR(np); + ND_CAR(np) = insert_node; } if (anc_type == ANCR_LOOK_BEHIND_NOT) { np = node; do { - NODE_SET_TYPE(np, NODE_LIST); /* alt -> list */ - } while (IS_NOT_NULL(np = NODE_CDR(np))); + ND_SET_TYPE(np, ND_LIST); /* alt -> list */ + } while (IS_NOT_NULL(np = ND_CDR(np))); } return 0; } @@ -4477,12 +4533,12 @@ node_reduce_in_look_behind(Node* node) NodeType type; Node* body; - if (NODE_TYPE(node) != NODE_QUANT) return 0; + if (ND_TYPE(node) != ND_QUANT) return 0; - body = NODE_BODY(node); - type = NODE_TYPE(body); - if (type == NODE_STRING || type == NODE_CTYPE || - type == NODE_CCLASS || type == NODE_BACKREF) { + body = ND_BODY(node); + type = ND_TYPE(body); + if (type == ND_STRING || type == ND_CTYPE || + type == ND_CCLASS || type == ND_BACKREF) { QuantNode* qn = QUANT_(node); qn->upper = qn->lower; if (qn->upper == 0) @@ -4497,17 +4553,17 @@ list_reduce_in_look_behind(Node* node) { int r; - switch (NODE_TYPE(node)) { - case NODE_QUANT: + switch (ND_TYPE(node)) { + case ND_QUANT: r = node_reduce_in_look_behind(node); if (r > 0) r = 0; break; - case NODE_LIST: + case ND_LIST: do { - r = node_reduce_in_look_behind(NODE_CAR(node)); + r = node_reduce_in_look_behind(ND_CAR(node)); if (r <= 0) break; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; default: @@ -4523,11 +4579,11 @@ alt_reduce_in_look_behind(Node* node, regex_t* reg, ParseEnv* env) { int r; - switch (NODE_TYPE(node)) { - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_ALT: do { - r = list_reduce_in_look_behind(NODE_CAR(node)); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = list_reduce_in_look_behind(ND_CAR(node)); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; default: @@ -4551,7 +4607,7 @@ tune_look_behind(Node* node, regex_t* reg, int state, ParseEnv* env) AnchorNode* an = ANCHOR_(node); used = FALSE; - r = check_node_in_look_behind(NODE_ANCHOR_BODY(an), + r = check_node_in_look_behind(ND_ANCHOR_BODY(an), an->type == ANCR_LOOK_BEHIND_NOT ? 1 : 0, &used); if (r < 0) return r; @@ -4562,7 +4618,7 @@ tune_look_behind(Node* node, regex_t* reg, int state, ParseEnv* env) else state1 = state | IN_LOOK_BEHIND; - body = NODE_ANCHOR_BODY(an); + body = ND_ANCHOR_BODY(an); /* Execute tune_tree(body) before call node_char_len(). Because case-fold expansion must be done before node_char_len(). */ @@ -4642,8 +4698,8 @@ tune_next(Node* node, Node* next_node, regex_t* reg) called = FALSE; retry: - type = NODE_TYPE(node); - if (type == NODE_QUANT) { + type = ND_TYPE(node); + if (type == ND_QUANT) { QuantNode* qn = QUANT_(node); if (qn->greedy && IS_INFINITE_REPEAT(qn->upper)) { #ifdef USE_QUANT_PEEK_NEXT @@ -4657,29 +4713,29 @@ tune_next(Node* node, Node* next_node, regex_t* reg) #endif /* automatic posseivation a*b ==> (?>a*)b */ if (qn->lower <= 1) { - if (is_strict_real_node(NODE_BODY(node))) { + if (is_strict_real_node(ND_BODY(node))) { Node *x, *y; - x = get_tree_head_literal(NODE_BODY(node), 0, reg); + x = get_tree_head_literal(ND_BODY(node), 0, reg); if (IS_NOT_NULL(x)) { y = get_tree_head_literal(next_node, 0, reg); if (IS_NOT_NULL(y) && is_exclusive(x, y, reg)) { Node* en = onig_node_new_bag(BAG_STOP_BACKTRACK); CHECK_NULL_RETURN_MEMERR(en); - NODE_STATUS_ADD(en, STRICT_REAL_REPEAT); + ND_STATUS_ADD(en, STRICT_REAL_REPEAT); node_swap(node, en); - NODE_BODY(node) = en; + ND_BODY(node) = en; } } } } } } - else if (type == NODE_BAG) { + else if (type == ND_BAG) { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_CALLED(node)) + if (ND_IS_CALLED(node)) called = TRUE; - node = NODE_BODY(node); + node = ND_BODY(node); goto retry; } } @@ -4846,7 +4902,7 @@ unravel_cf_string_alt_or_cc_add(Node** rlist, int n, return ONIGERR_MEMORY; } - NODE_CDR(curr) = alt; + ND_CDR(curr) = alt; curr = alt; } } @@ -4914,9 +4970,9 @@ unravel_case_fold_string(Node* node, regex_t* reg, int state) OnigEncoding enc; OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM]; - if (NODE_STRING_IS_CASE_EXPANDED(node)) return 0; + if (ND_STRING_IS_CASE_EXPANDED(node)) return 0; - NODE_STATUS_REMOVE(node, IGNORECASE); + ND_STATUS_REMOVE(node, IGNORECASE); snode = STR_(node); start = snode->s; end = snode->end; @@ -4974,7 +5030,7 @@ unravel_case_fold_string(Node* node, regex_t* reg, int state) if (IS_NOT_NULL(list)) { if (node_list_len(list) == 1) { - node_swap(node, NODE_CAR(list)); + node_swap(node, ND_CAR(list)); } else { node_swap(node, list); @@ -5002,43 +5058,43 @@ quantifiers_memory_node_info(Node* node) { int r = BODY_MAY_BE_EMPTY; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: { int v; do { - v = quantifiers_memory_node_info(NODE_CAR(node)); + v = quantifiers_memory_node_info(ND_CAR(node)); if (v > r) r = v; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); } break; #ifdef USE_CALL - case NODE_CALL: - if (NODE_IS_RECURSION(node)) { + case ND_CALL: + if (ND_IS_RECURSION(node)) { return BODY_MAY_BE_EMPTY_REC; /* tiny version */ } else - r = quantifiers_memory_node_info(NODE_BODY(node)); + r = quantifiers_memory_node_info(ND_BODY(node)); break; #endif - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->upper != 0) { - r = quantifiers_memory_node_info(NODE_BODY(node)); + r = quantifiers_memory_node_info(ND_BODY(node)); } } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_MEMORY: - if (NODE_IS_RECURSION(node)) { + if (ND_IS_RECURSION(node)) { return BODY_MAY_BE_EMPTY_REC; } return BODY_MAY_BE_EMPTY_MEM; @@ -5046,12 +5102,12 @@ quantifiers_memory_node_info(Node* node) case BAG_OPTION: case BAG_STOP_BACKTRACK: - r = quantifiers_memory_node_info(NODE_BODY(node)); + r = quantifiers_memory_node_info(ND_BODY(node)); break; case BAG_IF_ELSE: { int v; - r = quantifiers_memory_node_info(NODE_BODY(node)); + r = quantifiers_memory_node_info(ND_BODY(node)); if (IS_NOT_NULL(en->te.Then)) { v = quantifiers_memory_node_info(en->te.Then); if (v > r) r = v; @@ -5066,12 +5122,12 @@ quantifiers_memory_node_info(Node* node) } break; - case NODE_BACKREF: - case NODE_STRING: - case NODE_CTYPE: - case NODE_CCLASS: - case NODE_ANCHOR: - case NODE_GIMMICK: + case ND_BACKREF: + case ND_STRING: + case ND_CTYPE: + case ND_CCLASS: + case ND_ANCHOR: + case ND_GIMMICK: default: break; } @@ -5107,14 +5163,14 @@ check_call_reference(CallNode* cn, ParseEnv* env, int state) } set_call_attr: - NODE_CALL_BODY(cn) = mem_env[cn->called_gnum].mem_node; - if (IS_NULL(NODE_CALL_BODY(cn))) { + ND_CALL_BODY(cn) = mem_env[cn->called_gnum].mem_node; + if (IS_NULL(ND_CALL_BODY(cn))) { onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, cn->name, cn->name_end); return ONIGERR_UNDEFINED_NAME_REFERENCE; } - NODE_STATUS_ADD(NODE_CALL_BODY(cn), REFERENCED); + ND_STATUS_ADD(ND_CALL_BODY(cn), REFERENCED); } else { int *refs; @@ -5141,29 +5197,35 @@ check_call_reference(CallNode* cn, ParseEnv* env, int state) #ifdef USE_WHOLE_OPTIONS static int -check_whole_options_position(Node* node /* root */) +check_whole_options_position(Node* node /* root */, ParseEnv* env) { int is_list; is_list = FALSE; +#ifdef USE_CALL + if ((env->flags & PE_FLAG_HAS_CALL_ZERO) != 0) { + node = ND_BODY(node); + } +#endif + start: - switch (NODE_TYPE(node)) { - case NODE_LIST: - if (IS_NOT_NULL(NODE_CDR(node))) + switch (ND_TYPE(node)) { + case ND_LIST: + if (IS_NOT_NULL(ND_CDR(node))) is_list = TRUE; - node = NODE_CAR(node); + node = ND_CAR(node); goto start; break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_OPTION) { - if (NODE_IS_WHOLE_OPTIONS(node)) { - if (is_list == TRUE && IS_NOT_NULL(NODE_BODY(node))) + if (ND_IS_WHOLE_OPTIONS(node)) { + if (is_list == TRUE && IS_NOT_NULL(ND_BODY(node))) break; return 0; @@ -5183,61 +5245,61 @@ check_whole_options_position(Node* node /* root */) static void tune_call2_call(Node* node) { - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - tune_call2_call(NODE_CAR(node)); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + tune_call2_call(ND_CAR(node)); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: - tune_call2_call(NODE_BODY(node)); + case ND_QUANT: + tune_call2_call(ND_BODY(node)); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (ANCHOR_HAS_BODY(ANCHOR_(node))) - tune_call2_call(NODE_BODY(node)); + tune_call2_call(ND_BODY(node)); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (! NODE_IS_MARK1(node)) { - NODE_STATUS_ADD(node, MARK1); - tune_call2_call(NODE_BODY(node)); - NODE_STATUS_REMOVE(node, MARK1); + if (! ND_IS_MARK1(node)) { + ND_STATUS_ADD(node, MARK1); + tune_call2_call(ND_BODY(node)); + ND_STATUS_REMOVE(node, MARK1); } } else if (en->type == BAG_IF_ELSE) { - tune_call2_call(NODE_BODY(node)); + tune_call2_call(ND_BODY(node)); if (IS_NOT_NULL(en->te.Then)) tune_call2_call(en->te.Then); if (IS_NOT_NULL(en->te.Else)) tune_call2_call(en->te.Else); } else { - tune_call2_call(NODE_BODY(node)); + tune_call2_call(ND_BODY(node)); } } break; - case NODE_CALL: - if (! NODE_IS_MARK1(node)) { - NODE_STATUS_ADD(node, MARK1); + case ND_CALL: + if (! ND_IS_MARK1(node)) { + ND_STATUS_ADD(node, MARK1); { CallNode* cn = CALL_(node); - Node* called = NODE_CALL_BODY(cn); + Node* called = ND_CALL_BODY(cn); cn->entry_count++; - NODE_STATUS_ADD(called, CALLED); + ND_STATUS_ADD(called, CALLED); BAG_(called)->m.entry_count++; tune_call2_call(called); } - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_REMOVE(node, MARK1); } break; @@ -5251,41 +5313,41 @@ tune_call(Node* node, ParseEnv* env, int state) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = tune_call(NODE_CAR(node), env, state); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = tune_call(ND_CAR(node), env, state); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: if (QUANT_(node)->upper == 0) state |= IN_ZERO_REPEAT; - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (ANCHOR_HAS_BODY(ANCHOR_(node))) - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); else r = 0; break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { if ((state & IN_ZERO_REPEAT) != 0) { - NODE_STATUS_ADD(node, IN_ZERO_REPEAT); + ND_STATUS_ADD(node, IN_ZERO_REPEAT); BAG_(node)->m.entry_count--; } - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); } else if (en->type == BAG_IF_ELSE) { - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); if (r != 0) return r; if (IS_NOT_NULL(en->te.Then)) { r = tune_call(en->te.Then, env, state); @@ -5295,13 +5357,13 @@ tune_call(Node* node, ParseEnv* env, int state) r = tune_call(en->te.Else, env, state); } else - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); } break; - case NODE_CALL: + case ND_CALL: if ((state & IN_ZERO_REPEAT) != 0) { - NODE_STATUS_ADD(node, IN_ZERO_REPEAT); + ND_STATUS_ADD(node, IN_ZERO_REPEAT); CALL_(node)->entry_count--; } @@ -5321,27 +5383,27 @@ tune_call2(Node* node) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = tune_call2(NODE_CAR(node)); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = tune_call2(ND_CAR(node)); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: if (QUANT_(node)->upper != 0) - r = tune_call2(NODE_BODY(node)); + r = tune_call2(ND_BODY(node)); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (ANCHOR_HAS_BODY(ANCHOR_(node))) - r = tune_call2(NODE_BODY(node)); + r = tune_call2(ND_BODY(node)); break; - case NODE_BAG: - if (! NODE_IS_IN_ZERO_REPEAT(node)) - r = tune_call2(NODE_BODY(node)); + case ND_BAG: + if (! ND_IS_IN_ZERO_REPEAT(node)) + r = tune_call2(ND_BODY(node)); { BagNode* en = BAG_(node); @@ -5358,8 +5420,8 @@ tune_call2(Node* node) } break; - case NODE_CALL: - if (! NODE_IS_IN_ZERO_REPEAT(node)) { + case ND_CALL: + if (! ND_IS_IN_ZERO_REPEAT(node)) { tune_call2_call(node); } break; @@ -5375,17 +5437,17 @@ tune_call2(Node* node) static void tune_called_state_call(Node* node, int state) { - switch (NODE_TYPE(node)) { - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_ALT: state |= IN_ALT; /* fall */ - case NODE_LIST: + case ND_LIST: do { - tune_called_state_call(NODE_CAR(node), state); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + tune_called_state_call(ND_CAR(node), state); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); @@ -5394,13 +5456,13 @@ tune_called_state_call(Node* node, int state) if (qn->lower != qn->upper) state |= IN_VAR_REPEAT; if ((state & IN_PEEK) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); - tune_called_state_call(NODE_QUANT_BODY(qn), state); + tune_called_state_call(ND_QUANT_BODY(qn), state); } break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); @@ -5408,12 +5470,12 @@ tune_called_state_call(Node* node, int state) case ANCR_PREC_READ_NOT: case ANCR_LOOK_BEHIND_NOT: state |= (IN_NOT | IN_PEEK); - tune_called_state_call(NODE_ANCHOR_BODY(an), state); + tune_called_state_call(ND_ANCHOR_BODY(an), state); break; case ANCR_PREC_READ: case ANCR_LOOK_BEHIND: state |= IN_PEEK; - tune_called_state_call(NODE_ANCHOR_BODY(an), state); + tune_called_state_call(ND_ANCHOR_BODY(an), state); break; default: break; @@ -5421,27 +5483,27 @@ tune_called_state_call(Node* node, int state) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK1(node)) { + if (ND_IS_MARK1(node)) { if ((~en->m.called_state & state) != 0) { en->m.called_state |= state; - tune_called_state_call(NODE_BODY(node), state); + tune_called_state_call(ND_BODY(node), state); } } else { - NODE_STATUS_ADD(node, MARK1); + ND_STATUS_ADD(node, MARK1); en->m.called_state |= state; - tune_called_state_call(NODE_BODY(node), state); - NODE_STATUS_REMOVE(node, MARK1); + tune_called_state_call(ND_BODY(node), state); + ND_STATUS_REMOVE(node, MARK1); } } else if (en->type == BAG_IF_ELSE) { state |= IN_ALT; - tune_called_state_call(NODE_BODY(node), state); + tune_called_state_call(ND_BODY(node), state); if (IS_NOT_NULL(en->te.Then)) { tune_called_state_call(en->te.Then, state); } @@ -5449,18 +5511,18 @@ tune_called_state_call(Node* node, int state) tune_called_state_call(en->te.Else, state); } else { - tune_called_state_call(NODE_BODY(node), state); + tune_called_state_call(ND_BODY(node), state); } } break; - case NODE_CALL: + case ND_CALL: if ((state & IN_PEEK) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); if ((state & IN_REAL_REPEAT) != 0) - NODE_STATUS_ADD(node, IN_REAL_REPEAT); + ND_STATUS_ADD(node, IN_REAL_REPEAT); - tune_called_state_call(NODE_BODY(node), state); + tune_called_state_call(ND_BODY(node), state); break; default: @@ -5471,28 +5533,28 @@ tune_called_state_call(Node* node, int state) static void tune_called_state(Node* node, int state) { - switch (NODE_TYPE(node)) { - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_ALT: state |= IN_ALT; /* fall */ - case NODE_LIST: + case ND_LIST: do { - tune_called_state(NODE_CAR(node), state); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + tune_called_state(ND_CAR(node), state); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: if ((state & IN_PEEK) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); if ((state & IN_REAL_REPEAT) != 0) - NODE_STATUS_ADD(node, IN_REAL_REPEAT); + ND_STATUS_ADD(node, IN_REAL_REPEAT); tune_called_state_call(node, state); break; #endif - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); @@ -5505,11 +5567,11 @@ tune_called_state(Node* node, int state) /* fall */ case BAG_OPTION: case BAG_STOP_BACKTRACK: - tune_called_state(NODE_BODY(node), state); + tune_called_state(ND_BODY(node), state); break; case BAG_IF_ELSE: state |= IN_ALT; - tune_called_state(NODE_BODY(node), state); + tune_called_state(ND_BODY(node), state); if (IS_NOT_NULL(en->te.Then)) tune_called_state(en->te.Then, state); if (IS_NOT_NULL(en->te.Else)) @@ -5519,7 +5581,7 @@ tune_called_state(Node* node, int state) } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); @@ -5528,13 +5590,13 @@ tune_called_state(Node* node, int state) if (qn->lower != qn->upper) state |= IN_VAR_REPEAT; if ((state & IN_PEEK) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); - tune_called_state(NODE_QUANT_BODY(qn), state); + tune_called_state(ND_QUANT_BODY(qn), state); } break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); @@ -5542,12 +5604,12 @@ tune_called_state(Node* node, int state) case ANCR_PREC_READ_NOT: case ANCR_LOOK_BEHIND_NOT: state |= (IN_NOT | IN_PEEK); - tune_called_state(NODE_ANCHOR_BODY(an), state); + tune_called_state(ND_ANCHOR_BODY(an), state); break; case ANCR_PREC_READ: case ANCR_LOOK_BEHIND: state |= IN_PEEK; - tune_called_state(NODE_ANCHOR_BODY(an), state); + tune_called_state(ND_ANCHOR_BODY(an), state); break; default: break; @@ -5555,11 +5617,11 @@ tune_called_state(Node* node, int state) } break; - case NODE_BACKREF: - case NODE_STRING: - case NODE_CTYPE: - case NODE_CCLASS: - case NODE_GIMMICK: + case ND_BACKREF: + case ND_STRING: + case ND_CTYPE: + case ND_CCLASS: + case ND_GIMMICK: default: break; } @@ -5579,10 +5641,10 @@ tune_anchor(Node* node, regex_t* reg, int state, ParseEnv* env) switch (an->type) { case ANCR_PREC_READ: - r = tune_tree(NODE_ANCHOR_BODY(an), reg, (state | IN_PREC_READ), env); + r = tune_tree(ND_ANCHOR_BODY(an), reg, (state | IN_PREC_READ), env); break; case ANCR_PREC_READ_NOT: - r = tune_tree(NODE_ANCHOR_BODY(an), reg, (state | IN_PREC_READ | IN_NOT), + r = tune_tree(ND_ANCHOR_BODY(an), reg, (state | IN_PREC_READ | IN_NOT), env); break; @@ -5607,13 +5669,13 @@ tune_quant(Node* node, regex_t* reg, int state, ParseEnv* env) { int r; QuantNode* qn = QUANT_(node); - Node* body = NODE_BODY(node); + Node* body = ND_BODY(node); if ((state & IN_REAL_REPEAT) != 0) { - NODE_STATUS_ADD(node, IN_REAL_REPEAT); + ND_STATUS_ADD(node, IN_REAL_REPEAT); } if ((state & IN_MULTI_ENTRY) != 0) { - NODE_STATUS_ADD(node, IN_MULTI_ENTRY); + ND_STATUS_ADD(node, IN_MULTI_ENTRY); } if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 1) { @@ -5637,10 +5699,10 @@ tune_quant(Node* node, regex_t* reg, int state, ParseEnv* env) /* expand string */ #define EXPAND_STRING_MAX_LENGTH 100 - if (NODE_TYPE(body) == NODE_STRING) { + if (ND_TYPE(body) == ND_STRING) { if (!IS_INFINITE_REPEAT(qn->lower) && qn->lower == qn->upper && qn->lower > 1 && qn->lower <= EXPAND_STRING_MAX_LENGTH) { - int len = NODE_STRING_LEN(body); + int len = ND_STRING_LEN(body); if (len * qn->lower <= EXPAND_STRING_MAX_LENGTH) { int i, n = qn->lower; @@ -5656,7 +5718,7 @@ tune_quant(Node* node, regex_t* reg, int state, ParseEnv* env) } if (qn->greedy && (qn->emptiness == BODY_IS_NOT_EMPTY)) { - if (NODE_TYPE(body) == NODE_QUANT) { + if (ND_TYPE(body) == ND_QUANT) { QuantNode* tqn = QUANT_(body); if (IS_NOT_NULL(tqn->head_exact)) { qn->head_exact = tqn->head_exact; @@ -5664,7 +5726,7 @@ tune_quant(Node* node, regex_t* reg, int state, ParseEnv* env) } } else { - qn->head_exact = get_tree_head_literal(NODE_BODY(node), 1, reg); + qn->head_exact = get_tree_head_literal(ND_BODY(node), 1, reg); } } @@ -5684,33 +5746,33 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { Node* prev = NULL_NODE; do { - r = tune_tree(NODE_CAR(node), reg, state, env); + r = tune_tree(ND_CAR(node), reg, state, env); if (IS_NOT_NULL(prev) && r == 0) { - r = tune_next(prev, NODE_CAR(node), reg); + r = tune_next(prev, ND_CAR(node), reg); } - prev = NODE_CAR(node); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + prev = ND_CAR(node); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); } break; - case NODE_ALT: + case ND_ALT: do { - r = tune_tree(NODE_CAR(node), reg, (state | IN_ALT), env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = tune_tree(ND_CAR(node), reg, (state | IN_ALT), env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_STRING: - if (NODE_IS_REAL_IGNORECASE(node)) { + case ND_STRING: + if (ND_IS_REAL_IGNORECASE(node)) { r = unravel_case_fold_string(node, reg, state); } break; - case NODE_BACKREF: + case ND_BACKREF: { int i; int* p; @@ -5721,7 +5783,7 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) MEM_STATUS_ON(env->backrefed_mem, p[i]); #if 0 #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { MEM_STATUS_ON(env->backtrack_mem, p[i]); } #endif @@ -5735,7 +5797,7 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); @@ -5744,7 +5806,7 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) { OnigOptionType options = reg->options; reg->options = BAG_(node)->o.options; - r = tune_tree(NODE_BODY(node), reg, state, env); + r = tune_tree(ND_BODY(node), reg, state, env); reg->options = options; } break; @@ -5755,29 +5817,29 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) #endif if ((state & (IN_ALT | IN_NOT | IN_VAR_REPEAT | IN_MULTI_ENTRY)) != 0 - || NODE_IS_RECURSION(node)) { + || ND_IS_RECURSION(node)) { MEM_STATUS_ON(env->backtrack_mem, en->m.regnum); } - r = tune_tree(NODE_BODY(node), reg, state, env); + r = tune_tree(ND_BODY(node), reg, state, env); break; case BAG_STOP_BACKTRACK: { - Node* target = NODE_BODY(node); + Node* target = ND_BODY(node); r = tune_tree(target, reg, state, env); - if (NODE_TYPE(target) == NODE_QUANT) { + if (ND_TYPE(target) == ND_QUANT) { QuantNode* tqn = QUANT_(target); if (IS_INFINITE_REPEAT(tqn->upper) && tqn->lower <= 1 && tqn->greedy != 0) { /* (?>a*), a*+ etc... */ - if (is_strict_real_node(NODE_BODY(target))) - NODE_STATUS_ADD(node, STRICT_REAL_REPEAT); + if (is_strict_real_node(ND_BODY(target))) + ND_STATUS_ADD(node, STRICT_REAL_REPEAT); } } } break; case BAG_IF_ELSE: - r = tune_tree(NODE_BODY(node), reg, (state | IN_ALT), env); + r = tune_tree(ND_BODY(node), reg, (state | IN_ALT), env); if (r != 0) return r; if (IS_NOT_NULL(en->te.Then)) { r = tune_tree(en->te.Then, reg, (state | IN_ALT), env); @@ -5790,23 +5852,23 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) } break; - case NODE_QUANT: + case ND_QUANT: if ((state & (IN_PREC_READ | IN_LOOK_BEHIND)) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); r = tune_quant(node, reg, state, env); break; - case NODE_ANCHOR: + case ND_ANCHOR: r = tune_anchor(node, reg, state, env); break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: #endif - case NODE_CTYPE: - case NODE_CCLASS: - case NODE_GIMMICK: + case ND_CTYPE: + case ND_CCLASS: + case ND_GIMMICK: default: break; } @@ -6427,42 +6489,42 @@ node_max_byte_len(Node* node, ParseEnv* env) OnigLen tmax; len = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: do { - tmax = node_max_byte_len(NODE_CAR(node), env); + tmax = node_max_byte_len(ND_CAR(node), env); len = distance_add(len, tmax); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ALT: + case ND_ALT: do { - tmax = node_max_byte_len(NODE_CAR(node), env); + tmax = node_max_byte_len(ND_CAR(node), env); if (len < tmax) len = tmax; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); len = (OnigLen )(sn->end - sn->s); } break; - case NODE_CTYPE: - case NODE_CCLASS: + case ND_CTYPE: + case ND_CCLASS: len = ONIGENC_MBC_MAXLEN_DIST(env->enc); break; - case NODE_BACKREF: - if (! NODE_IS_CHECKER(node)) { + case ND_BACKREF: + if (! ND_IS_CHECKER(node)) { int i; int* backs; MemEnv* mem_env = PARSEENV_MEMENV(env); BackRefNode* br = BACKREF_(node); - if (NODE_IS_RECURSION(node)) { + if (ND_IS_RECURSION(node)) { #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { len = INFINITE_LEN; } #endif @@ -6477,20 +6539,20 @@ node_max_byte_len(Node* node, ParseEnv* env) break; #ifdef USE_CALL - case NODE_CALL: - if (! NODE_IS_RECURSION(node)) - len = node_max_byte_len(NODE_BODY(node), env); + case ND_CALL: + if (! ND_IS_RECURSION(node)) + len = node_max_byte_len(ND_BODY(node), env); else len = INFINITE_LEN; break; #endif - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->upper != 0) { - len = node_max_byte_len(NODE_BODY(node), env); + len = node_max_byte_len(ND_BODY(node), env); if (len != 0) { if (! IS_INFINITE_REPEAT(qn->upper)) len = distance_multiply(len, qn->upper); @@ -6501,36 +6563,36 @@ node_max_byte_len(Node* node, ParseEnv* env) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_MEMORY: - if (NODE_IS_FIXED_MAX(node)) + if (ND_IS_FIXED_MAX(node)) len = en->max_len; else { - if (NODE_IS_MARK1(node)) + if (ND_IS_MARK1(node)) len = INFINITE_LEN; else { - NODE_STATUS_ADD(node, MARK1); - len = node_max_byte_len(NODE_BODY(node), env); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + len = node_max_byte_len(ND_BODY(node), env); + ND_STATUS_REMOVE(node, MARK1); en->max_len = len; - NODE_STATUS_ADD(node, FIXED_MAX); + ND_STATUS_ADD(node, FIXED_MAX); } } break; case BAG_OPTION: case BAG_STOP_BACKTRACK: - len = node_max_byte_len(NODE_BODY(node), env); + len = node_max_byte_len(ND_BODY(node), env); break; case BAG_IF_ELSE: { OnigLen tlen, elen; - len = node_max_byte_len(NODE_BODY(node), env); + len = node_max_byte_len(ND_BODY(node), env); if (IS_NOT_NULL(en->te.Then)) { tlen = node_max_byte_len(en->te.Then, env); len = distance_add(len, tlen); @@ -6546,8 +6608,8 @@ node_max_byte_len(Node* node, ParseEnv* env) } break; - case NODE_ANCHOR: - case NODE_GIMMICK: + case ND_ANCHOR: + case ND_GIMMICK: default: break; } @@ -6555,7 +6617,7 @@ node_max_byte_len(Node* node, ParseEnv* env) return len; } -#define MAX_NODE_OPT_INFO_REF_COUNT 5 +#define MAX_ND_OPT_INFO_REF_COUNT 5 static int optimize_nodes(Node* node, OptNode* opt, OptEnv* env) @@ -6570,38 +6632,38 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) clear_node_opt_info(opt); set_bound_node_opt_info(opt, &env->mm); - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { OptEnv nenv; Node* nd = node; copy_opt_env(&nenv, env); do { - r = optimize_nodes(NODE_CAR(nd), &xo, &nenv); + r = optimize_nodes(ND_CAR(nd), &xo, &nenv); if (r == 0) { mml_add(&nenv.mm, &xo.len); concat_left_node_opt_info(enc, opt, &xo); } - } while (r == 0 && IS_NOT_NULL(nd = NODE_CDR(nd))); + } while (r == 0 && IS_NOT_NULL(nd = ND_CDR(nd))); } break; - case NODE_ALT: + case ND_ALT: { Node* nd = node; do { - r = optimize_nodes(NODE_CAR(nd), &xo, env); + r = optimize_nodes(ND_CAR(nd), &xo, env); if (r == 0) { if (nd == node) copy_node_opt_info(opt, &xo); else alt_merge_node_opt_info(opt, &xo, env); } - } while ((r == 0) && IS_NOT_NULL(nd = NODE_CDR(nd))); + } while ((r == 0) && IS_NOT_NULL(nd = ND_CDR(nd))); } break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); int slen = (int )(sn->end - sn->s); @@ -6614,7 +6676,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_CCLASS: + case ND_CCLASS: { int z; CClassNode* cc = CCLASS_(node); @@ -6639,7 +6701,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_CTYPE: + case ND_CTYPE: { int min, max; int range; @@ -6682,7 +6744,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_ANCHOR: + case ND_ANCHOR: switch (ANCHOR_(node)->type) { case ANCR_BEGIN_BUF: case ANCR_BEGIN_POSITION: @@ -6697,7 +6759,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) case ANCR_PREC_READ: { - r = optimize_nodes(NODE_BODY(node), &xo, env); + r = optimize_nodes(ND_BODY(node), &xo, env); if (r == 0) { if (xo.sb.len > 0) copy_opt_exact(&opt->spr, &xo.sb); @@ -6717,8 +6779,8 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_BACKREF: - if (! NODE_IS_CHECKER(node)) { + case ND_BACKREF: + if (! ND_IS_CHECKER(node)) { OnigLen min, max; min = node_min_byte_len(node, env->scan_env); @@ -6728,16 +6790,16 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) break; #ifdef USE_CALL - case NODE_CALL: - if (NODE_IS_RECURSION(node)) + case ND_CALL: + if (ND_IS_RECURSION(node)) mml_set_min_max(&opt->len, 0, INFINITE_LEN); else { - r = optimize_nodes(NODE_BODY(node), opt, env); + r = optimize_nodes(ND_BODY(node), opt, env); } break; #endif - case NODE_QUANT: + case ND_QUANT: { OnigLen min, max; QuantNode* qn = QUANT_(node); @@ -6756,7 +6818,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) break; } - r = optimize_nodes(NODE_BODY(node), &xo, env); + r = optimize_nodes(ND_BODY(node), &xo, env); if (r != 0) break; if (qn->lower > 0) { @@ -6781,8 +6843,8 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) if (IS_INFINITE_REPEAT(qn->upper)) { if (env->mm.max == 0 && - NODE_IS_ANYCHAR(NODE_BODY(node)) && qn->greedy != 0) { - if (NODE_IS_MULTILINE(NODE_QUANT_BODY(qn))) + ND_IS_ANYCHAR(ND_BODY(node)) && qn->greedy != 0) { + if (ND_IS_MULTILINE(ND_QUANT_BODY(qn))) add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_ML); else add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF); @@ -6799,32 +6861,32 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_STOP_BACKTRACK: case BAG_OPTION: - r = optimize_nodes(NODE_BODY(node), opt, env); + r = optimize_nodes(ND_BODY(node), opt, env); break; case BAG_MEMORY: #ifdef USE_CALL en->opt_count++; - if (en->opt_count > MAX_NODE_OPT_INFO_REF_COUNT) { + if (en->opt_count > MAX_ND_OPT_INFO_REF_COUNT) { OnigLen min, max; min = 0; max = INFINITE_LEN; - if (NODE_IS_FIXED_MIN(node)) min = en->min_len; - if (NODE_IS_FIXED_MAX(node)) max = en->max_len; + if (ND_IS_FIXED_MIN(node)) min = en->min_len; + if (ND_IS_FIXED_MAX(node)) max = en->max_len; mml_set_min_max(&opt->len, min, max); } else #endif { - r = optimize_nodes(NODE_BODY(node), opt, env); + r = optimize_nodes(ND_BODY(node), opt, env); if (is_set_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK)) { if (MEM_STATUS_AT0(env->scan_env->backrefed_mem, en->m.regnum)) remove_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK); @@ -6838,7 +6900,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) if (IS_NOT_NULL(en->te.Else)) { copy_opt_env(&nenv, env); - r = optimize_nodes(NODE_BAG_BODY(en), &xo, &nenv); + r = optimize_nodes(ND_BAG_BODY(en), &xo, &nenv); if (r == 0) { mml_add(&nenv.mm, &xo.len); concat_left_node_opt_info(enc, opt, &xo); @@ -6860,12 +6922,12 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_GIMMICK: + case ND_GIMMICK: break; default: #ifdef ONIG_DEBUG - fprintf(DBGFP, "optimize_nodes: undefined node type %d\n", NODE_TYPE(node)); + fprintf(DBGFP, "optimize_nodes: undefined node type %d\n", ND_TYPE(node)); #endif r = ONIGERR_TYPE_BUG; break; @@ -7018,10 +7080,12 @@ clear_optimize_info(regex_t* reg) } } -#ifdef ONIG_DEBUG +#if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \ + defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) -static void print_enc_string(FILE* fp, OnigEncoding enc, - const UChar *s, const UChar *end) +static void +print_enc_string(FILE* fp, OnigEncoding enc, + const UChar *s, const UChar *end) { if (ONIGENC_MBC_MINLEN(enc) > 1) { const UChar *p; @@ -7042,7 +7106,17 @@ static void print_enc_string(FILE* fp, OnigEncoding enc, } else { while (s < end) { - fputc((int )*s, fp); + if (ONIGENC_MBC_MAXLEN(enc) == 1) { + if (*s >= 0x80) { + fprintf(fp, "\\x%02x", (unsigned int )*s); + } + else { + fputc((int )*s, fp); + } + } + else { /* for UTF-8 */ + fputc((int )*s, fp); + } s++; } } @@ -7077,7 +7151,7 @@ print_options(FILE* fp, OnigOptionType o) if ((o & ONIG_OPTION_CALLBACK_EACH_MATCH) != 0) fprintf(fp, " CALLBACK_EACH_MATCH"); } -#endif /* ONIG_DEBUG */ +#endif #if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) @@ -7326,7 +7400,7 @@ static int parse_and_tune(regex_t* reg, const UChar* pattern, #ifdef USE_WHOLE_OPTIONS if ((scan_env->flags & PE_FLAG_HAS_WHOLE_OPTIONS) != 0) { - r = check_whole_options_position(root); + r = check_whole_options_position(root, scan_env); if (r != 0) goto err; } #endif @@ -7426,7 +7500,8 @@ onig_compile(regex_t* reg, const UChar* pattern, const UChar* pattern_end, UnsetAddrList uslist = {0}; #endif -#ifdef ONIG_DEBUG +#if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \ + defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) fprintf(DBGFP, "\nPATTERN: /"); print_enc_string(DBGFP, reg->enc, pattern, pattern_end); fprintf(DBGFP, "/\n"); @@ -7836,30 +7911,30 @@ mostly_just_anychar(Node* node, int in_reluctant) MJ_RESULT r; r = MJ_NO; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { int found = FALSE; do { - r = mostly_just_anychar(NODE_CAR(node), in_reluctant); + r = mostly_just_anychar(ND_CAR(node), in_reluctant); if (r == MJ_NO) break; if (r == MJ_YES) found = TRUE; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); if (r == MJ_IGNORE) { if (found == TRUE) r = MJ_YES; } } break; - case NODE_ALT: + case ND_ALT: r = MJ_IGNORE; do { - r = mostly_just_anychar(NODE_CAR(node), in_reluctant); + r = mostly_just_anychar(ND_CAR(node), in_reluctant); if (r == MJ_YES) break; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); @@ -7873,12 +7948,12 @@ mostly_just_anychar(Node* node, int in_reluctant) in_reluctant = TRUE; } } - r = mostly_just_anychar(NODE_BODY(node), in_reluctant); + r = mostly_just_anychar(ND_BODY(node), in_reluctant); } } break; - case NODE_ANCHOR: + case ND_ANCHOR: switch (ANCHOR_(node)->type) { case ANCR_PREC_READ: case ANCR_PREC_READ_NOT: @@ -7892,7 +7967,7 @@ mostly_just_anychar(Node* node, int in_reluctant) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); @@ -7906,34 +7981,34 @@ mostly_just_anychar(Node* node, int in_reluctant) } } else { - r = mostly_just_anychar(NODE_BODY(node), in_reluctant); + r = mostly_just_anychar(ND_BODY(node), in_reluctant); } } break; - case NODE_CTYPE: + case ND_CTYPE: if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) r = MJ_YES; else r = MJ_NO; break; - case NODE_STRING: - if (NODE_STRING_LEN(node) == 0) { + case ND_STRING: + if (ND_STRING_LEN(node) == 0) { r = MJ_IGNORE; break; } /* fall */ - case NODE_CCLASS: + case ND_CCLASS: r = MJ_NO; break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: /* ignore call */ #endif - case NODE_BACKREF: - case NODE_GIMMICK: + case ND_BACKREF: + case ND_GIMMICK: r = MJ_IGNORE; break; @@ -7965,23 +8040,23 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) int r; r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = detect_can_be_slow(NODE_CAR(node), ct, ncall, calls); + r = detect_can_be_slow(ND_CAR(node), ct, ncall, calls); if (r != 0) return r; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: { - int prev_heavy_element; QuantNode* qn; Node* body; + int prev_heavy_element = 0; qn = QUANT_(node); - body = NODE_BODY(node); + body = ND_BODY(node); if (qn->emptiness != BODY_IS_NOT_EMPTY) { prev_heavy_element = ct->heavy_element; @@ -7989,8 +8064,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) if (ct->empty_check_nest_level > ct->max_empty_check_nest_level) ct->max_empty_check_nest_level = ct->empty_check_nest_level; } - else if (IS_INFINITE_REPEAT(qn->upper) || - qn->upper > MANY_REPEAT_OF_ANYCHAR) { + else if (IS_INFINITE_REPEAT(qn->upper) || qn->upper > 0) { MJ_RESULT mr = mostly_just_anychar(body, (qn->greedy == 0)); if (mr == MJ_YES) ct->anychar_reluctant_many++; @@ -7999,7 +8073,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) r = detect_can_be_slow(body, ct, ncall, calls); if (qn->emptiness != BODY_IS_NOT_EMPTY) { - if (NODE_IS_INPEEK(node)) { + if (ND_IS_INPEEK(node)) { if (ct->empty_check_nest_level > 2) { if (prev_heavy_element == ct->heavy_element) ct->heavy_element++; @@ -8010,7 +8084,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) } break; - case NODE_ANCHOR: + case ND_ANCHOR: switch (ANCHOR_(node)->type) { case ANCR_PREC_READ: case ANCR_PREC_READ_NOT: @@ -8025,14 +8099,14 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) } if (ANCHOR_HAS_BODY(ANCHOR_(node))) - r = detect_can_be_slow(NODE_BODY(node), ct, ncall, calls); + r = detect_can_be_slow(ND_BODY(node), ct, ncall, calls); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); - r = detect_can_be_slow(NODE_BODY(node), ct, ncall, calls); + r = detect_can_be_slow(ND_BODY(node), ct, ncall, calls); if (r != 0) return r; if (en->type == BAG_IF_ELSE) { @@ -8049,8 +8123,8 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) break; #ifdef USE_BACKREF_WITH_LEVEL - case NODE_BACKREF: - if (NODE_IS_NEST_LEVEL(node)) + case ND_BACKREF: + if (ND_IS_NEST_LEVEL(node)) ct->heavy_element++; else ct->backref++; @@ -8058,7 +8132,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) #endif #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: { int i; int found; @@ -8067,8 +8141,8 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) gnum = CALL_(node)->called_gnum; ct->call++; - if (NODE_IS_RECURSION(node) && NODE_IS_INPEEK(node) && - NODE_IS_IN_REAL_REPEAT(node)) { + if (ND_IS_RECURSION(node) && ND_IS_INPEEK(node) && + ND_IS_IN_REAL_REPEAT(node)) { ct->heavy_element += 10; } @@ -8083,7 +8157,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) if (! found) { if (ncall + 1 < MAX_CALLS_IN_DETECT) { calls[ncall] = gnum; - r = detect_can_be_slow(NODE_BODY(node), ct, ncall + 1, calls); + r = detect_can_be_slow(ND_BODY(node), ct, ncall + 1, calls); } else { ct->heavy_element++; @@ -8092,7 +8166,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) } break; #endif - case NODE_GIMMICK: + case ND_GIMMICK: { GimmickNode* g = GIMMICK_(node); if (g->type == GIMMICK_SAVE && g->detail_type == SAVE_KEEP) @@ -8236,33 +8310,33 @@ print_indent_tree(FILE* f, Node* node, int indent) exit(0); } - type = NODE_TYPE(node); + type = ND_TYPE(node); switch (type) { - case NODE_LIST: - case NODE_ALT: - if (type == NODE_LIST) + case ND_LIST: + case ND_ALT: + if (type == ND_LIST) fprintf(f, "<list:%p>\n", node); else fprintf(f, "<alt:%p>\n", node); - print_indent_tree(f, NODE_CAR(node), indent + add); - while (IS_NOT_NULL(node = NODE_CDR(node))) { - if (NODE_TYPE(node) != type) { - fprintf(f, "ERROR: list/alt right is not a cons. %d\n", NODE_TYPE(node)); + print_indent_tree(f, ND_CAR(node), indent + add); + while (IS_NOT_NULL(node = ND_CDR(node))) { + if (ND_TYPE(node) != type) { + fprintf(f, "ERROR: list/alt right is not a cons. %d\n", ND_TYPE(node)); exit(0); } - print_indent_tree(f, NODE_CAR(node), indent + add); + print_indent_tree(f, ND_CAR(node), indent + add); } break; - case NODE_STRING: + case ND_STRING: { char* str; char* mode; - if (NODE_STRING_IS_CRUDE(node)) + if (ND_STRING_IS_CRUDE(node)) mode = "-crude"; - else if (NODE_IS_IGNORECASE(node)) + else if (ND_IS_IGNORECASE(node)) mode = "-ignorecase"; else mode = ""; @@ -8283,7 +8357,7 @@ print_indent_tree(FILE* f, Node* node, int indent) } break; - case NODE_CCLASS: + case ND_CCLASS: #define CCLASS_MBUF_MAX_OUTPUT_NUM 10 fprintf(f, "<cclass:%p>", node); @@ -8299,7 +8373,7 @@ print_indent_tree(FILE* f, Node* node, int indent) } break; - case NODE_CTYPE: + case ND_CTYPE: fprintf(f, "<ctype:%p> ", node); switch (CTYPE_(node)->ctype) { case CTYPE_ANYCHAR: @@ -8323,7 +8397,7 @@ print_indent_tree(FILE* f, Node* node, int indent) } break; - case NODE_ANCHOR: + case ND_ANCHOR: fprintf(f, "<anchor:%p> ", node); switch (ANCHOR_(node)->type) { case ANCR_BEGIN_BUF: fputs("begin buf", f); break; @@ -8345,19 +8419,19 @@ print_indent_tree(FILE* f, Node* node, int indent) fputs("no text-segment boundary", f); break; case ANCR_PREC_READ: fprintf(f, "prec read\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); break; case ANCR_PREC_READ_NOT: fprintf(f, "prec read not\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); break; case ANCR_LOOK_BEHIND: fprintf(f, "look behind\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); break; case ANCR_LOOK_BEHIND_NOT: fprintf(f, "look behind not\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); break; default: @@ -8366,18 +8440,18 @@ print_indent_tree(FILE* f, Node* node, int indent) } break; - case NODE_BACKREF: + case ND_BACKREF: { int* p; BackRefNode* br = BACKREF_(node); p = BACKREFS_P(br); - fprintf(f, "<backref%s:%p>", NODE_IS_CHECKER(node) ? "-checker" : "", node); + fprintf(f, "<backref%s:%p>", ND_IS_CHECKER(node) ? "-checker" : "", node); for (i = 0; i < br->back_num; i++) { if (i > 0) fputs(", ", f); fprintf(f, "%d", p[i]); } #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { fprintf(f, ", level: %d", br->nest_level); } #endif @@ -8385,33 +8459,33 @@ print_indent_tree(FILE* f, Node* node, int indent) break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: { CallNode* cn = CALL_(node); fprintf(f, "<call:%p>", node); fprintf(f, " num: %d, name", cn->called_gnum); p_string(f, cn->name_end - cn->name, cn->name); - if (NODE_IS_RECURSION(node)) fprintf(f, ", recursion"); - if (NODE_IS_INPEEK(node)) fprintf(f, ", in-peek"); - if (NODE_IS_IN_REAL_REPEAT(node)) fprintf(f, ", in-real-repeat"); + if (ND_IS_RECURSION(node)) fprintf(f, ", recursion"); + if (ND_IS_INPEEK(node)) fprintf(f, ", in-peek"); + if (ND_IS_IN_REAL_REPEAT(node)) fprintf(f, ", in-real-repeat"); } break; #endif - case NODE_QUANT: + case ND_QUANT: { fprintf(f, "<quantifier:%p>{%d,%d}%s%s%s", node, QUANT_(node)->lower, QUANT_(node)->upper, (QUANT_(node)->greedy ? "" : "?"), QUANT_(node)->include_referred == 0 ? "" : " referred", emptiness_name[QUANT_(node)->emptiness]); - if (NODE_IS_INPEEK(node)) fprintf(f, ", in-peek"); + if (ND_IS_INPEEK(node)) fprintf(f, ", in-peek"); fprintf(f, "\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); } break; - case NODE_BAG: + case ND_BAG: { BagNode* bn = BAG_(node); fprintf(f, "<bag:%p> ", node); @@ -8420,7 +8494,7 @@ print_indent_tree(FILE* f, Node* node, int indent) Node* Else; fprintf(f, "if-else\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); Then = bn->te.Then; Else = bn->te.Else; @@ -8445,15 +8519,15 @@ print_indent_tree(FILE* f, Node* node, int indent) break; case BAG_MEMORY: fprintf(f, "memory:%d", bn->m.regnum); - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { fprintf(f, ", called"); - if (NODE_IS_RECURSION(node)) + if (ND_IS_RECURSION(node)) fprintf(f, ", recursion"); } - else if (NODE_IS_REFERENCED(node)) + else if (ND_IS_REFERENCED(node)) fprintf(f, ", referenced"); - if (NODE_IS_FIXED_ADDR(node)) + if (ND_IS_FIXED_ADDR(node)) fprintf(f, ", fixed-addr"); if ((bn->m.called_state & IN_PEEK) != 0) fprintf(f, ", in-peek"); @@ -8465,12 +8539,12 @@ print_indent_tree(FILE* f, Node* node, int indent) break; } fprintf(f, "\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); } } break; - case NODE_GIMMICK: + case ND_GIMMICK: fprintf(f, "<gimmick:%p> ", node); switch (GIMMICK_(node)->type) { case GIMMICK_FAIL: @@ -8497,12 +8571,12 @@ print_indent_tree(FILE* f, Node* node, int indent) break; default: - fprintf(f, "print_indent_tree: undefined node type %d\n", NODE_TYPE(node)); + fprintf(f, "print_indent_tree: undefined node type %d\n", ND_TYPE(node)); break; } - if (type != NODE_LIST && type != NODE_ALT && type != NODE_QUANT && - type != NODE_BAG) + if (type != ND_LIST && type != ND_ALT && type != ND_QUANT && + type != ND_BAG) fprintf(f, "\n"); fflush(f); } diff --git a/src/regerror.c b/src/regerror.c index 6d9abe2..72b0e3f 100644 --- a/src/regerror.c +++ b/src/regerror.c @@ -352,7 +352,7 @@ onig_error_code_to_str(UChar* s, int code, ...) void ONIG_VARIADIC_FUNC_ATTR onig_snprintf_with_pattern(UChar buf[], int bufsize, OnigEncoding enc, - UChar* pat, UChar* pat_end, const UChar *fmt, ...) + UChar* pat, UChar* pat_end, const char *fmt, ...) { int n, need, len; UChar *p, *s, *bp; @@ -360,7 +360,7 @@ onig_snprintf_with_pattern(UChar buf[], int bufsize, OnigEncoding enc, va_list args; va_start(args, fmt); - n = xvsnprintf((char* )buf, bufsize, (const char* )fmt, args); + n = xvsnprintf((char* )buf, bufsize, fmt, args); va_end(args); need = (int )(pat_end - pat) * 4 + 4; diff --git a/src/regexec.c b/src/regexec.c index cb8e620..ddec265 100644 --- a/src/regexec.c +++ b/src/regexec.c @@ -2,7 +2,7 @@ regexec.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2022 K.Kosako + * Copyright (c) 2002-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -177,22 +177,13 @@ typedef struct { #ifdef USE_CALL unsigned long subexp_call_in_search_counter; #endif +#ifdef USE_SKIP_SEARCH + UChar* skip_search; +#endif } MatchArg; -#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) - -/* arguments type */ -typedef enum { - ARG_SPECIAL = -1, - ARG_NON = 0, - ARG_RELADDR = 1, - ARG_ABSADDR = 2, - ARG_LENGTH = 3, - ARG_MEMNUM = 4, - ARG_OPTION = 5, - ARG_MODE = 6 -} OpArgType; +#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) || defined(ONIG_DEBUG_STATISTICS) typedef struct { short int opcode; @@ -299,6 +290,22 @@ static OpInfoType OpInfo[] = { { -1, ""} }; +#endif + +#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) + +/* arguments type */ +typedef enum { + ARG_SPECIAL = -1, + ARG_NON = 0, + ARG_RELADDR = 1, + ARG_ABSADDR = 2, + ARG_LENGTH = 3, + ARG_MEMNUM = 4, + ARG_OPTION = 5, + ARG_MODE = 6 +} OpArgType; + static char* op2name(int opcode) { @@ -1257,6 +1264,7 @@ struct OnigCalloutArgsStruct { #endif #ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE +#ifdef USE_SKIP_SEARCH #define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mpv) do { \ (msa).stack_p = (void* )0;\ (msa).options = (arg_option)|(reg)->options;\ @@ -1268,6 +1276,7 @@ struct OnigCalloutArgsStruct { (msa).mp = mpv;\ (msa).best_len = ONIG_MISMATCH;\ (msa).ptr_num = PTR_NUM_SIZE(reg);\ + (msa).skip_search = (UChar* )(arg_start);\ } while(0) #else #define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mpv) do { \ @@ -1279,9 +1288,38 @@ struct OnigCalloutArgsStruct { RETRY_IN_MATCH_ARG_INIT(msa,mpv)\ SUBEXP_CALL_IN_MATCH_ARG_INIT(msa,mpv)\ (msa).mp = mpv;\ + (msa).best_len = ONIG_MISMATCH;\ (msa).ptr_num = PTR_NUM_SIZE(reg);\ } while(0) #endif +#else +#ifdef USE_SKIP_SEARCH +#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mpv) do { \ + (msa).stack_p = (void* )0;\ + (msa).options = (arg_option)|(reg)->options;\ + (msa).region = (arg_region);\ + (msa).start = (arg_start);\ + (msa).match_stack_limit = (mpv)->match_stack_limit;\ + RETRY_IN_MATCH_ARG_INIT(msa,mpv)\ + SUBEXP_CALL_IN_MATCH_ARG_INIT(msa,mpv)\ + (msa).mp = mpv;\ + (msa).ptr_num = PTR_NUM_SIZE(reg);\ + (msa).skip_search = (UChar* )(arg_start);\ +} while(0) +#else +#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mpv) do { \ + (msa).stack_p = (void* )0;\ + (msa).options = (arg_option)|(reg)->options;\ + (msa).region = (arg_region);\ + (msa).start = (arg_start);\ + (msa).match_stack_limit = (mpv)->match_stack_limit;\ + RETRY_IN_MATCH_ARG_INIT(msa,mpv)\ + SUBEXP_CALL_IN_MATCH_ARG_INIT(msa,mpv)\ + (msa).mp = mpv;\ + (msa).ptr_num = PTR_NUM_SIZE(reg);\ +} while(0) +#endif +#endif #define MATCH_ARG_FREE(msa) if ((msa).stack_p) xfree((msa).stack_p) @@ -1355,8 +1393,9 @@ static unsigned long RetryLimitInMatch = DEFAULT_RETRY_LIMIT_IN_MATCH; static unsigned long RetryLimitInSearch = DEFAULT_RETRY_LIMIT_IN_SEARCH; #define CHECK_RETRY_LIMIT_IN_MATCH do {\ - if (++retry_in_match_counter > retry_limit_in_match) {\ - MATCH_AT_ERROR_RETURN(retry_in_match_counter > msa->retry_limit_in_match ? ONIGERR_RETRY_LIMIT_IN_MATCH_OVER : ONIGERR_RETRY_LIMIT_IN_SEARCH_OVER); \ + if (++retry_in_match_counter >= retry_limit_in_match && \ + retry_limit_in_match != 0) {\ + MATCH_AT_ERROR_RETURN((retry_in_match_counter >= msa->retry_limit_in_match && msa->retry_limit_in_match != 0) ? ONIGERR_RETRY_LIMIT_IN_MATCH_OVER : ONIGERR_RETRY_LIMIT_IN_SEARCH_OVER); \ }\ } while (0) @@ -2808,7 +2847,7 @@ typedef struct { #define MATCH_COUNTER_OUT(title) do {\ int i;\ - fprintf(DBGFP, "%s (%ld): retry limit: %8lu, subexp_call: %8lu\n", (title), (sstart - str), retry_in_match_counter, msa->subexp_call_in_search_counter); \ + fprintf(DBGFP, "%s (%ld): retry limit: %8lu/%8lu, subexp_call: %8lu\n", (title), (sstart - str), retry_in_match_counter, retry_limit_in_match, msa->subexp_call_in_search_counter); \ fprintf(DBGFP, " ");\ for (i = 0; i < MAX_SUBEXP_CALL_COUNTERS; i++) {\ fprintf(DBGFP, " %6lu", subexp_call_counters[i]);\ @@ -3008,7 +3047,7 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, if (msa->retry_limit_in_search != 0) { unsigned long rem = msa->retry_limit_in_search - msa->retry_limit_in_search_counter; - if (rem < retry_limit_in_match) + if (rem < retry_limit_in_match || retry_limit_in_match == 0) retry_limit_in_match = rem; } #endif @@ -3038,39 +3077,43 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, BYTECODE_INTERPRETER_START { CASE_OP(END) + if (OPTON_MATCH_WHOLE_STRING(options)) { + if (! ON_STR_END(s)) goto fail; + } + n = (int )(s - sstart); if (n == 0 && OPTON_FIND_NOT_EMPTY(options)) { best_len = ONIG_MISMATCH; goto fail; /* for retry */ } - if (n > best_len) { #ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE - if (OPTON_FIND_LONGEST(options)) { + if (OPTON_FIND_LONGEST(options)) { + if (n > best_len) { if (n > msa->best_len) { + best_len = n; msa->best_len = n; msa->best_s = (UChar* )sstart; - if (s >= in_right_range) { - best_len = msa->best_len; /* end of find */ - } } else { if (s >= in_right_range && msa->best_s == sstart) { - best_len = msa->best_len; /* end of find */ + goto op_end_out; } else { - SOP_OUT; goto fail; /* for retry */ } } } else { - best_len = n; + goto fail; /* for retry */ } -#else + } + else { best_len = n; -#endif } +#else + best_len = n; +#endif /* set region */ region = msa->region; @@ -3135,14 +3178,14 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, #endif } /* if (region) */ - SOP_OUT; - if (OPTON_CALLBACK_EACH_MATCH(options) && IS_NOT_NULL(CallbackEachMatch)) { i = CallbackEachMatch(str, end, sstart, region, msa->mp->callout_user_data); - if (i < 0) MATCH_AT_ERROR_RETURN(i); - + if (i < 0) { + SOP_OUT; + MATCH_AT_ERROR_RETURN(i); + } #ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE if (! OPTON_FIND_LONGEST(options)) #endif @@ -3151,7 +3194,13 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, goto fail; } +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(options)) goto fail; +#endif + + op_end_out: /* default behavior: return first-matching result. */ + SOP_OUT; goto match_at_end; CASE_OP(STR_1) @@ -4398,6 +4447,11 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, #endif CASE_OP(FINISH) +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(options)) { + best_len = ONIG_MISMATCH; + } +#endif goto match_at_end; #ifdef ONIG_DEBUG_STATISTICS @@ -4424,6 +4478,13 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, match_at_end: if (msa->retry_limit_in_search != 0) { +#ifdef ONIG_DEBUG + if (retry_in_match_counter > + ULONG_MAX - msa->retry_limit_in_search_counter) { + fprintf(DBGFP, "retry limit counter overflow: %8lu/%8lu\n", + retry_in_match_counter, msa->retry_limit_in_search_counter); + } +#endif msa->retry_limit_in_search_counter += retry_in_match_counter; } @@ -5408,6 +5469,7 @@ search_in_range(regex_t* reg, const UChar* str, const UChar* end, OnigOptionType option, OnigMatchParam* mp) { int r; + int forward; UChar *s; MatchArg msa; const UChar *orig_start = start; @@ -5455,6 +5517,7 @@ search_in_range(regex_t* reg, const UChar* str, const UChar* end, else goto finish; /* error */ \ } + forward = (range > start); /* anchor optimize: resume search range */ if (reg->anchor != 0 && str < end) { @@ -5577,7 +5640,7 @@ search_in_range(regex_t* reg, const UChar* str, const UChar* end, MATCH_ARG_INIT(msa, reg, option, region, orig_start, mp); s = (UChar* )start; - if (range > start) { /* forward search */ + if (forward != 0) { /* forward search */ if (reg->optimize != OPTIMIZE_NONE) { UChar *sch_range, *low, *high; @@ -5608,6 +5671,9 @@ search_in_range(regex_t* reg, const UChar* str, const UChar* end, while (s <= high) { MATCH_AND_RETURN_CHECK(data_range); s += enclen(reg->enc, s); +#ifdef USE_SKIP_SEARCH + if (s < msa.skip_search) s = msa.skip_search; +#endif } } while (s < range); goto mismatch; @@ -5618,30 +5684,42 @@ search_in_range(regex_t* reg, const UChar* str, const UChar* end, if ((reg->anchor & ANCR_ANYCHAR_INF) != 0 && (reg->anchor & (ANCR_LOOK_BEHIND | ANCR_PREC_READ_NOT)) == 0) { - do { + while (s < range) { UChar* prev; MATCH_AND_RETURN_CHECK(data_range); prev = s; s += enclen(reg->enc, s); - while (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end) && s < range) { - prev = s; - s += enclen(reg->enc, s); +#ifdef USE_SKIP_SEARCH + if (s < msa.skip_search) s = msa.skip_search; + else { +#endif + while (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end) && + s < range) { + prev = s; + s += enclen(reg->enc, s); + } +#ifdef USE_SKIP_SEARCH } - } while (s < range); +#endif + } goto mismatch; } } } - do { + while (1 == 1) { MATCH_AND_RETURN_CHECK(data_range); + if (s >= range) break; s += enclen(reg->enc, s); - } while (s < range); - if (s == range) { /* because empty match with /$/. */ - MATCH_AND_RETURN_CHECK(data_range); +#ifdef USE_SKIP_SEARCH + if (s < msa.skip_search) { + s = msa.skip_search; + if (s > range) break; + } +#endif } } else { /* backward search */ @@ -6350,6 +6428,17 @@ onig_builtin_error(OnigCalloutArgs* args, void* user_data ARG_UNUSED) return n; } +#ifdef USE_SKIP_SEARCH +extern int +onig_builtin_skip(OnigCalloutArgs* args, void* user_data ARG_UNUSED) +{ + if (args->current > args->msa->skip_search) + args->msa->skip_search = (UChar* )args->current; + + return ONIG_NORMAL; +} +#endif + extern int onig_builtin_count(OnigCalloutArgs* args, void* user_data) { diff --git a/src/regint.h b/src/regint.h index ee6b02b..fe872b9 100644 --- a/src/regint.h +++ b/src/regint.h @@ -4,7 +4,7 @@ regint.h - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2021 K.Kosako + * Copyright (c) 2002-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,6 +37,7 @@ /* #define ONIG_DEBUG_MATCH_COUNTER */ /* #define ONIG_DEBUG_CALL */ /* #define ONIG_DONT_OPTIMIZE */ +/* #define ONIG_DEBUG */ /* for byte-code statistical data. */ /* #define ONIG_DEBUG_STATISTICS */ @@ -47,21 +48,33 @@ defined(ONIG_DEBUG_STATISTICS) #ifndef ONIG_DEBUG #define ONIG_DEBUG -#define DBGFP stderr #endif #endif +#ifdef ONIG_DEBUG +#define DBGFP stderr +#endif + #ifndef ONIG_DISABLE_DIRECT_THREADING #ifdef __GNUC__ #define USE_GOTO_LABELS_AS_VALUES #endif #endif +#ifndef ONIG_PRINTFLIKE +#if defined(__clang__) || defined(__GNUC__) +#define ONIG_PRINTFLIKE(x, y) __attribute__((format(printf, x, y))) +#else +#define ONIG_PRINTFLIKE(x, y) +#endif +#endif + /* config */ /* spec. config */ #define USE_REGSET #define USE_CALL #define USE_CALLOUT +#define USE_SKIP_SEARCH #define USE_BACKREF_WITH_LEVEL /* \k<name+n>, \k<name-n> */ #define USE_WHOLE_OPTIONS #define USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT /* /(?:()|())*\2/ */ @@ -115,7 +128,7 @@ #include <stdint.h> #endif -#if defined(HAVE_ALLOCA_H) && !defined(__GNUC__) +#if defined(HAVE_ALLOCA_H) #include <alloca.h> #endif @@ -408,6 +421,7 @@ typedef unsigned int MemStatusType; #define OPTON_NOT_BEGIN_STRING(option) ((option) & ONIG_OPTION_NOT_BEGIN_STRING) #define OPTON_NOT_END_STRING(option) ((option) & ONIG_OPTION_NOT_END_STRING) #define OPTON_NOT_BEGIN_POSITION(option) ((option) & ONIG_OPTION_NOT_BEGIN_POSITION) +#define OPTON_MATCH_WHOLE_STRING(option) ((option) & ONIG_OPTION_MATCH_WHOLE_STRING) #define INFINITE_REPEAT -1 @@ -469,8 +483,8 @@ typedef Bits* BitSetRef; /* operation code */ enum OpCode { OP_FINISH = 0, /* matching process terminator (no more alternative) */ - OP_END = 1, /* pattern code terminator (success end) */ - OP_STR_1 = 2, /* single byte, N = 1 */ + OP_END, /* pattern code terminator (success end) */ + OP_STR_1, /* single byte, N = 1 */ OP_STR_2, /* single byte, N = 2 */ OP_STR_3, /* single byte, N = 3 */ OP_STR_4, /* single byte, N = 4 */ @@ -939,7 +953,7 @@ struct re_pattern_buffer { extern void onig_add_end_call(void (*func)(void)); extern void onig_warning(const char* s); extern UChar* onig_error_code_to_format P_((int code)); -extern void ONIG_VARIADIC_FUNC_ATTR onig_snprintf_with_pattern PV_((UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const UChar *fmt, ...)); +extern void ONIG_VARIADIC_FUNC_ATTR ONIG_PRINTFLIKE(6, 7) onig_snprintf_with_pattern PV_((UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const char *fmt, ...)); extern int onig_compile P_((regex_t* reg, const UChar* pattern, const UChar* pattern_end, OnigErrorInfo* einfo)); extern int onig_is_code_in_cc_len P_((int enclen, OnigCodePoint code, void* /* CClassNode* */ cc)); extern RegexExt* onig_get_regex_ext(regex_t* reg); diff --git a/src/regparse.c b/src/regparse.c index b8f08ab..1d00b82 100644 --- a/src/regparse.c +++ b/src/regparse.c @@ -2,7 +2,7 @@ regparse.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2022 K.Kosako + * Copyright (c) 2002-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,7 +27,7 @@ * SUCH DAMAGE. */ -#ifdef DEBUG_NODE_FREE +#ifdef DEBUG_ND_FREE #ifndef NEED_TO_INCLUDE_STDIO #define NEED_TO_INCLUDE_STDIO #endif @@ -486,6 +486,7 @@ onig_strcpy(UChar* dest, const UChar* src, const UChar* end) #define PFETCH_READY UChar* pfetch_prev #define PEND (p < end ? 0 : 1) #define PUNFETCH p = pfetch_prev +#define PPREV pfetch_prev #define PINC do { \ pfetch_prev = p; \ p += ONIGENC_MBC_ENC_LEN(enc, p); \ @@ -547,8 +548,10 @@ typedef struct { } st_str_end_key; static int -str_end_cmp(st_str_end_key* x, st_str_end_key* y) +str_end_cmp(st_data_t ax, st_data_t ay) { + st_str_end_key* x = (st_str_end_key* )ax; + st_str_end_key* y = (st_str_end_key* )ay; UChar *p, *q; int c; @@ -568,8 +571,9 @@ str_end_cmp(st_str_end_key* x, st_str_end_key* y) } static int -str_end_hash(st_str_end_key* x) +str_end_hash(st_data_t ax) { + st_str_end_key* x = (st_str_end_key* )ax; UChar *p; unsigned val = 0; @@ -634,8 +638,10 @@ typedef struct { } st_callout_name_key; static int -callout_name_table_cmp(st_callout_name_key* x, st_callout_name_key* y) +callout_name_table_cmp(st_data_t ax, st_data_t ay) { + st_callout_name_key* x = (st_callout_name_key* )ax; + st_callout_name_key* y = (st_callout_name_key* )ay; UChar *p, *q; int c; @@ -657,8 +663,9 @@ callout_name_table_cmp(st_callout_name_key* x, st_callout_name_key* y) } static int -callout_name_table_hash(st_callout_name_key* x) +callout_name_table_hash(st_data_t ax) { + st_callout_name_key* x = (st_callout_name_key* )ax; UChar *p; unsigned int val = 0; @@ -751,10 +758,14 @@ typedef st_data_t HashDataType; /* 1.6 st.h doesn't define st_data_t type */ #ifdef ONIG_DEBUG static int -i_print_name_entry(UChar* key, NameEntry* e, void* arg) +i_print_name_entry(st_data_t akey, st_data_t ae, st_data_t arg) { int i; - FILE* fp = (FILE* )arg; + FILE* fp; + NameEntry* e; + + e = (NameEntry* )ae; + fp = (FILE* )arg; fprintf(fp, "%s: ", e->name); if (e->back_num == 0) @@ -786,8 +797,13 @@ onig_print_names(FILE* fp, regex_t* reg) #endif /* ONIG_DEBUG */ static int -i_free_name_entry(UChar* key, NameEntry* e, void* arg ARG_UNUSED) +i_free_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED) { + UChar* key; + NameEntry* e; + + key = (UChar* )akey; + e = (NameEntry* )ae; xfree(e->name); if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs); xfree(key); @@ -843,8 +859,14 @@ typedef struct { } INamesArg; static int -i_names(UChar* key ARG_UNUSED, NameEntry* e, INamesArg* arg) +i_names(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t aarg) { + NameEntry* e; + INamesArg* arg; + + e = (NameEntry* )ae; + arg = (INamesArg* )aarg; + int r = (*(arg->func))(e->name, e->name + e->name_len, e->back_num, @@ -876,9 +898,14 @@ onig_foreach_name(regex_t* reg, } static int -i_renumber_name(UChar* key ARG_UNUSED, NameEntry* e, GroupNumMap* map) +i_renumber_name(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t amap) { int i; + NameEntry* e; + GroupNumMap* map; + + e = (NameEntry* )ae; + map = (GroupNumMap* )amap; if (e->back_num > 1) { for (i = 0; i < e->back_num; i++) { @@ -1367,9 +1394,14 @@ static int CalloutNameIDCounter; #ifdef USE_ST_LIBRARY static int -i_free_callout_name_entry(st_callout_name_key* key, CalloutNameEntry* e, - void* arg ARG_UNUSED) +i_free_callout_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED) { + st_callout_name_key* key; + CalloutNameEntry* e; + + key = (st_callout_name_key* )akey; + e = (CalloutNameEntry* )ae; + if (IS_NOT_NULL(e)) { xfree(e->name); } @@ -1863,10 +1895,14 @@ typedef intptr_t CalloutTagVal; #define CALLOUT_TAG_LIST_FLAG_TAG_EXIST (1<<0) static int -i_callout_callout_list_set(UChar* key, CalloutTagVal e, void* arg) +i_callout_callout_list_set(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t arg) { int num; - RegexExt* ext = (RegexExt* )arg; + CalloutTagVal e; + RegexExt* ext; + + e = (CalloutTagVal )ae; + ext = (RegexExt* )arg; num = (int )e - 1; ext->callout_list[num].flag |= CALLOUT_TAG_LIST_FLAG_TAG_EXIST; @@ -1919,8 +1955,11 @@ onig_callout_tag_is_exist_at_callout_num(regex_t* reg, int callout_num) } static int -i_free_callout_tag_entry(UChar* key, CalloutTagVal e, void* arg ARG_UNUSED) +i_free_callout_tag_entry(st_data_t akey, st_data_t e ARG_UNUSED, st_data_t arg ARG_UNUSED) { + UChar* key; + + key = (UChar* )akey; xfree(key); return ST_DELETE; } @@ -2149,27 +2188,27 @@ node_free_body(Node* node) { if (IS_NULL(node)) return ; - switch (NODE_TYPE(node)) { - case NODE_STRING: + switch (ND_TYPE(node)) { + case ND_STRING: if (STR_(node)->capacity != 0 && IS_NOT_NULL(STR_(node)->s) && STR_(node)->s != STR_(node)->buf) { xfree(STR_(node)->s); } break; - case NODE_LIST: - case NODE_ALT: - onig_node_free(NODE_CAR(node)); - node = NODE_CDR(node); + case ND_LIST: + case ND_ALT: + onig_node_free(ND_CAR(node)); + node = ND_CDR(node); while (IS_NOT_NULL(node)) { - Node* next = NODE_CDR(node); - onig_node_free(NODE_CAR(node)); + Node* next = ND_CDR(node); + onig_node_free(ND_CAR(node)); xfree(node); node = next; } break; - case NODE_CCLASS: + case ND_CCLASS: { CClassNode* cc = CCLASS_(node); @@ -2178,14 +2217,14 @@ node_free_body(Node* node) } break; - case NODE_BACKREF: + case ND_BACKREF: if (IS_NOT_NULL(BACKREF_(node)->back_dynamic)) xfree(BACKREF_(node)->back_dynamic); break; - case NODE_BAG: - if (NODE_BODY(node)) - onig_node_free(NODE_BODY(node)); + case ND_BAG: + if (ND_BODY(node)) + onig_node_free(ND_BODY(node)); { BagNode* en = BAG_(node); @@ -2196,21 +2235,21 @@ node_free_body(Node* node) } break; - case NODE_QUANT: - if (NODE_BODY(node)) - onig_node_free(NODE_BODY(node)); + case ND_QUANT: + if (ND_BODY(node)) + onig_node_free(ND_BODY(node)); break; - case NODE_ANCHOR: - if (NODE_BODY(node)) - onig_node_free(NODE_BODY(node)); + case ND_ANCHOR: + if (ND_BODY(node)) + onig_node_free(ND_BODY(node)); if (IS_NOT_NULL(ANCHOR_(node)->lead_node)) onig_node_free(ANCHOR_(node)->lead_node); break; - case NODE_CTYPE: - case NODE_CALL: - case NODE_GIMMICK: + case ND_CTYPE: + case ND_CALL: + case ND_GIMMICK: break; } } @@ -2220,7 +2259,7 @@ onig_node_free(Node* node) { if (IS_NULL(node)) return ; -#ifdef DEBUG_NODE_FREE +#ifdef DEBUG_ND_FREE fprintf(stderr, "onig_node_free: %p\n", node); #endif @@ -2231,8 +2270,8 @@ onig_node_free(Node* node) static void cons_node_free_alone(Node* node) { - NODE_CAR(node) = 0; - NODE_CDR(node) = 0; + ND_CAR(node) = 0; + ND_CDR(node) = 0; onig_node_free(node); } @@ -2245,7 +2284,7 @@ node_new(void) CHECK_NULL_RETURN(node); xmemset(node, 0, sizeof(*node)); -#ifdef DEBUG_NODE_FREE +#ifdef DEBUG_ND_FREE fprintf(stderr, "node_new: %p\n", node); #endif return node; @@ -2259,15 +2298,15 @@ onig_node_copy(Node** rcopy, Node* from) *rcopy = NULL_NODE; - switch (NODE_TYPE(from)) { - case NODE_LIST: - case NODE_ALT: - case NODE_ANCHOR: + switch (ND_TYPE(from)) { + case ND_LIST: + case ND_ALT: + case ND_ANCHOR: /* These node's link to other nodes are processed by caller. */ break; - case NODE_STRING: - case NODE_CCLASS: - case NODE_CTYPE: + case ND_STRING: + case ND_CCLASS: + case ND_CTYPE: /* Fixed contents after copy. */ break; default: @@ -2280,8 +2319,8 @@ onig_node_copy(Node** rcopy, Node* from) CHECK_NULL_RETURN_MEMERR(copy); xmemcpy(copy, from, sizeof(*copy)); - switch (NODE_TYPE(copy)) { - case NODE_STRING: + switch (ND_TYPE(copy)) { + case ND_STRING: r = onig_node_str_set(copy, STR_(from)->s, STR_(from)->end, FALSE); if (r != 0) { err: @@ -2290,7 +2329,7 @@ onig_node_copy(Node** rcopy, Node* from) } break; - case NODE_CCLASS: + case ND_CCLASS: { CClassNode *fcc, *tcc; @@ -2326,7 +2365,7 @@ node_new_cclass(void) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_CCLASS); + ND_SET_TYPE(node, ND_CCLASS); initialize_cclass(CCLASS_(node)); return node; } @@ -2337,7 +2376,7 @@ node_new_ctype(int type, int not, OnigOptionType options) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_CTYPE); + ND_SET_TYPE(node, ND_CTYPE); CTYPE_(node)->ctype = type; CTYPE_(node)->not = not; CTYPE_(node)->ascii_mode = OPTON_IS_ASCII_MODE_CTYPE(type, options); @@ -2353,7 +2392,7 @@ node_new_anychar(OnigOptionType options) CHECK_NULL_RETURN(node); if (OPTON_MULTILINE(options)) - NODE_STATUS_ADD(node, MULTILINE); + ND_STATUS_ADD(node, MULTILINE); return node; } @@ -2385,9 +2424,9 @@ node_new_list(Node* left, Node* right) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_LIST); - NODE_CAR(node) = left; - NODE_CDR(node) = right; + ND_SET_TYPE(node, ND_LIST); + ND_CAR(node) = left; + ND_CDR(node) = right; return node; } @@ -2403,9 +2442,9 @@ onig_node_new_alt(Node* left, Node* right) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_ALT); - NODE_CAR(node) = left; - NODE_CDR(node) = right; + ND_SET_TYPE(node, ND_ALT); + ND_CAR(node) = left; + ND_CDR(node) = right; return node; } @@ -2419,9 +2458,9 @@ make_list_or_alt(NodeType type, int n, Node* ns[]) if (n == 1) { r = node_new(); CHECK_NULL_RETURN(r); - NODE_SET_TYPE(r, type); - NODE_CAR(r) = ns[0]; - NODE_CDR(r) = NULL_NODE; + ND_SET_TYPE(r, type); + ND_CAR(r) = ns[0]; + ND_CDR(r) = NULL_NODE; } else { Node* right; @@ -2435,9 +2474,9 @@ make_list_or_alt(NodeType type, int n, Node* ns[]) return NULL_NODE; } - NODE_SET_TYPE(r, type); - NODE_CAR(r) = ns[0]; - NODE_CDR(r) = right; + ND_SET_TYPE(r, type); + ND_CAR(r) = ns[0]; + ND_CDR(r) = right; } return r; @@ -2446,13 +2485,13 @@ make_list_or_alt(NodeType type, int n, Node* ns[]) static Node* make_list(int n, Node* ns[]) { - return make_list_or_alt(NODE_LIST, n, ns); + return make_list_or_alt(ND_LIST, n, ns); } static Node* make_alt(int n, Node* ns[]) { - return make_list_or_alt(NODE_ALT, n, ns); + return make_list_or_alt(ND_ALT, n, ns); } static Node* @@ -2463,7 +2502,7 @@ node_new_anchor(int type) node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_ANCHOR); + ND_SET_TYPE(node, ND_ANCHOR); ANCHOR_(node)->type = type; ANCHOR_(node)->char_min_len = 0; ANCHOR_(node)->char_max_len = INFINITE_LEN; @@ -2487,7 +2526,7 @@ node_new_anchor_with_options(int type, OnigOptionType options) if (type == ANCR_TEXT_SEGMENT_BOUNDARY || type == ANCR_NO_TEXT_SEGMENT_BOUNDARY) { if (OPTON_TEXT_SEGMENT_WORD(options)) - NODE_STATUS_ADD(node, TEXT_SEGMENT_WORD); + ND_STATUS_ADD(node, TEXT_SEGMENT_WORD); } return node; @@ -2506,18 +2545,18 @@ node_new_backref(int back_num, int* backrefs, int by_name, node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_BACKREF); + ND_SET_TYPE(node, ND_BACKREF); BACKREF_(node)->back_num = back_num; BACKREF_(node)->back_dynamic = (int* )NULL; if (by_name != 0) - NODE_STATUS_ADD(node, BY_NAME); + ND_STATUS_ADD(node, BY_NAME); if (OPTON_IGNORECASE(env->options)) - NODE_STATUS_ADD(node, IGNORECASE); + ND_STATUS_ADD(node, IGNORECASE); #ifdef USE_BACKREF_WITH_LEVEL if (exist_level != 0) { - NODE_STATUS_ADD(node, NEST_LEVEL); + ND_STATUS_ADD(node, NEST_LEVEL); BACKREF_(node)->nest_level = nest_level; } #endif @@ -2525,12 +2564,12 @@ node_new_backref(int back_num, int* backrefs, int by_name, for (i = 0; i < back_num; i++) { if (backrefs[i] <= env->num_mem && IS_NULL(PARSEENV_MEMENV(env)[backrefs[i]].mem_node)) { - NODE_STATUS_ADD(node, RECURSION); /* /...(\1).../ */ + ND_STATUS_ADD(node, RECURSION); /* /...(\1).../ */ break; } } - if (back_num <= NODE_BACKREFS_SIZE) { + if (back_num <= ND_BACKREFS_SIZE) { for (i = 0; i < back_num; i++) BACKREF_(node)->back_static[i] = backrefs[i]; } @@ -2565,7 +2604,7 @@ node_new_backref_checker(int back_num, int* backrefs, int by_name, env); CHECK_NULL_RETURN(node); - NODE_STATUS_ADD(node, CHECKER); + ND_STATUS_ADD(node, CHECKER); return node; } @@ -2576,7 +2615,7 @@ node_new_call(UChar* name, UChar* name_end, int gnum, int by_number) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_CALL); + ND_SET_TYPE(node, ND_CALL); CALL_(node)->by_number = by_number; CALL_(node)->name = name; CALL_(node)->name_end = name_end; @@ -2592,7 +2631,7 @@ node_new_quantifier(int lower, int upper, int by_number) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_QUANT); + ND_SET_TYPE(node, ND_QUANT); QUANT_(node)->lower = lower; QUANT_(node)->upper = upper; QUANT_(node)->greedy = 1; @@ -2602,7 +2641,7 @@ node_new_quantifier(int lower, int upper, int by_number) QUANT_(node)->include_referred = 0; QUANT_(node)->empty_status_mem = 0; if (by_number != 0) - NODE_STATUS_ADD(node, BY_NUMBER); + ND_STATUS_ADD(node, BY_NUMBER); return node; } @@ -2613,7 +2652,7 @@ node_new_bag(enum BagType type) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_BAG); + ND_SET_TYPE(node, ND_BAG); BAG_(node)->type = type; switch (type) { @@ -2654,7 +2693,7 @@ node_new_bag_if_else(Node* cond, Node* Then, Node* Else) n = node_new_bag(BAG_IF_ELSE); CHECK_NULL_RETURN(n); - NODE_BODY(n) = cond; + ND_BODY(n) = cond; BAG_(n)->te.Then = Then; BAG_(n)->te.Else = Else; return n; @@ -2666,7 +2705,7 @@ node_new_memory(int is_named) Node* node = node_new_bag(BAG_MEMORY); CHECK_NULL_RETURN(node); if (is_named != 0) - NODE_STATUS_ADD(node, NAMED_GROUP); + ND_STATUS_ADD(node, NAMED_GROUP); return node; } @@ -2687,9 +2726,9 @@ node_new_group(Node* content) node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_LIST); - NODE_CAR(node) = content; - NODE_CDR(node) = NULL_NODE; + ND_SET_TYPE(node, ND_LIST); + ND_CAR(node) = content; + ND_CDR(node) = NULL_NODE; return node; } @@ -2699,8 +2738,8 @@ node_drop_group(Node* group) { Node* content; - content = NODE_CAR(group); - NODE_CAR(group) = NULL_NODE; + content = ND_CAR(group); + ND_CAR(group) = NULL_NODE; onig_node_free(group); return content; } @@ -2708,7 +2747,7 @@ node_drop_group(Node* group) static int node_set_fail(Node* node) { - NODE_SET_TYPE(node, NODE_GIMMICK); + ND_SET_TYPE(node, ND_GIMMICK); GIMMICK_(node)->type = GIMMICK_FAIL; return ONIG_NORMAL; } @@ -2739,7 +2778,7 @@ node_new_save_gimmick(Node** node, enum SaveType save_type, ParseEnv* env) *node = node_new(); CHECK_NULL_RETURN_MEMERR(*node); - NODE_SET_TYPE(*node, NODE_GIMMICK); + ND_SET_TYPE(*node, ND_GIMMICK); GIMMICK_(*node)->id = id; GIMMICK_(*node)->type = GIMMICK_SAVE; GIMMICK_(*node)->detail_type = (int )save_type; @@ -2754,7 +2793,7 @@ node_new_update_var_gimmick(Node** node, enum UpdateVarType update_var_type, *node = node_new(); CHECK_NULL_RETURN_MEMERR(*node); - NODE_SET_TYPE(*node, NODE_GIMMICK); + ND_SET_TYPE(*node, ND_GIMMICK); GIMMICK_(*node)->id = id; GIMMICK_(*node)->type = GIMMICK_UPDATE_VAR; GIMMICK_(*node)->detail_type = (int )update_var_type; @@ -2874,7 +2913,7 @@ node_new_callout(Node** node, OnigCalloutOf callout_of, int num, int id, *node = node_new(); CHECK_NULL_RETURN_MEMERR(*node); - NODE_SET_TYPE(*node, NODE_GIMMICK); + ND_SET_TYPE(*node, ND_GIMMICK); GIMMICK_(*node)->id = id; GIMMICK_(*node)->num = num; GIMMICK_(*node)->type = GIMMICK_CALLOUT; @@ -2911,7 +2950,7 @@ make_text_segment(Node** node, ParseEnv* env) x = node_new_quantifier(0, INFINITE_REPEAT, TRUE); if (IS_NULL(x)) goto err; - NODE_BODY(x) = ns[0]; + ND_BODY(x) = ns[0]; ns[0] = NULL_NODE; ns[1] = x; @@ -2927,7 +2966,7 @@ make_text_segment(Node** node, ParseEnv* env) x = node_new_bag(BAG_STOP_BACKTRACK); if (IS_NULL(x)) goto err; - NODE_BODY(x) = ns[0]; + ND_BODY(x) = ns[0]; *node = x; return ONIG_NORMAL; @@ -2963,7 +3002,7 @@ make_absent_engine(Node** node, int pre_save_right_id, Node* absent, if (r != 0) goto err; if (is_range_cutter != 0) - NODE_STATUS_ADD(ns[2], ABSENT_WITH_SIDE_EFFECTS); + ND_STATUS_ADD(ns[2], ABSENT_WITH_SIDE_EFFECTS); r = node_new_fail(&ns[3], env); if (r != 0) goto err; @@ -2983,14 +3022,14 @@ make_absent_engine(Node** node, int pre_save_right_id, Node* absent, x = node_new_quantifier(lower, upper, FALSE); if (IS_NULL(x)) goto err0; - NODE_BODY(x) = ns[0]; + ND_BODY(x) = ns[0]; ns[0] = x; if (possessive != 0) { x = node_new_bag(BAG_STOP_BACKTRACK); if (IS_NULL(x)) goto err0; - NODE_BODY(x) = ns[0]; + ND_BODY(x) = ns[0]; ns[0] = x; } @@ -3010,7 +3049,7 @@ make_absent_engine(Node** node, int pre_save_right_id, Node* absent, if (IS_NULL(x)) goto err0; if (is_range_cutter != FALSE) - NODE_STATUS_ADD(x, SUPER); + ND_STATUS_ADD(x, SUPER); *node = x; return ONIG_NORMAL; @@ -3104,12 +3143,12 @@ make_range_clear(Node** node, ParseEnv* env) r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_INIT, ID_NOT_USED_DONT_CARE_ME, env); if (r != 0) goto err; - NODE_STATUS_ADD(ns[0], ABSENT_WITH_SIDE_EFFECTS); + ND_STATUS_ADD(ns[0], ABSENT_WITH_SIDE_EFFECTS); x = make_alt(2, ns); if (IS_NULL(x)) goto err0; - NODE_STATUS_ADD(x, SUPER); + ND_STATUS_ADD(x, SUPER); ns[0] = save; ns[1] = x; @@ -3139,16 +3178,16 @@ is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, *rquant = *rbody = 0; *is_possessive = 0; - if (NODE_TYPE(node) == NODE_QUANT) { + if (ND_TYPE(node) == ND_QUANT) { quant = node; } else { - if (NODE_TYPE(node) == NODE_BAG) { + if (ND_TYPE(node) == ND_BAG) { BagNode* en = BAG_(node); if (en->type == BAG_STOP_BACKTRACK) { *is_possessive = 1; - quant = NODE_BAG_BODY(en); - if (NODE_TYPE(quant) != NODE_QUANT) + quant = ND_BAG_BODY(en); + if (ND_TYPE(quant) != ND_QUANT) return 0; } else @@ -3161,9 +3200,9 @@ is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, if (QUANT_(quant)->greedy == 0) return 0; - body = NODE_BODY(quant); - switch (NODE_TYPE(body)) { - case NODE_STRING: + body = ND_BODY(quant); + switch (ND_TYPE(body)) { + case ND_STRING: { int len; StrNode* sn = STR_(body); @@ -3178,7 +3217,7 @@ is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, return 0; } - case NODE_CCLASS: + case ND_CCLASS: break; default: @@ -3187,10 +3226,10 @@ is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, } if (node != quant) { - NODE_BODY(node) = 0; + ND_BODY(node) = 0; onig_node_free(node); } - NODE_BODY(quant) = NULL_NODE; + ND_BODY(quant) = NULL_NODE; *rquant = quant; *rbody = body; return 1; @@ -3346,9 +3385,9 @@ onig_node_str_cat(Node* node, const UChar* s, const UChar* end) if (addlen > 0) { int len = (int )(STR_(node)->end - STR_(node)->s); - if (STR_(node)->capacity > 0 || (len + addlen > NODE_STRING_BUF_SIZE - 1)) { + if (STR_(node)->capacity > 0 || (len + addlen > ND_STRING_BUF_SIZE - 1)) { UChar* p; - int capa = len + addlen + NODE_STRING_MARGIN; + int capa = len + addlen + ND_STRING_MARGIN; if (capa <= STR_(node)->capacity) { onig_strcpy(STR_(node)->s + len, s, end); @@ -3382,6 +3421,34 @@ onig_node_str_set(Node* node, const UChar* s, const UChar* end, int need_free) } static int +node_str_remove_char(Node* node, UChar c) +{ + UChar* p; + int n; + + n = 0; + p = STR_(node)->s; + while (p < STR_(node)->end) { + if (*p == c) { + UChar *q, *q1; + q = q1 = p; + q1++; + while (q1 < STR_(node)->end) { + *q = *q1; + q++; q1++; + } + n++; + STR_(node)->end--; + } + else { + p++; + } + } + + return n; +} + +static int node_str_cat_char(Node* node, UChar c) { UChar s[1]; @@ -3410,7 +3477,7 @@ node_set_str(Node* node, const UChar* s, const UChar* end) { int r; - NODE_SET_TYPE(node, NODE_STRING); + ND_SET_TYPE(node, ND_STRING); STR_(node)->flag = 0; STR_(node)->s = STR_(node)->buf; STR_(node)->end = STR_(node)->buf; @@ -3463,7 +3530,7 @@ node_new_str_with_options(const UChar* s, const UChar* end, node = node_new_str(s, end); if (OPTON_IGNORECASE(options)) - NODE_STATUS_ADD(node, IGNORECASE); + ND_STATUS_ADD(node, IGNORECASE); return node; } @@ -3473,7 +3540,7 @@ node_new_str_crude(UChar* s, UChar* end, OnigOptionType options) { Node* node = node_new_str_with_options(s, end, options); CHECK_NULL_RETURN(node); - NODE_STRING_SET_CRUDE(node); + ND_STRING_SET_CRUDE(node); return node; } @@ -3492,9 +3559,10 @@ node_new_str_crude_char(UChar c, OnigOptionType options) p[0] = c; node = node_new_str_crude(p, p + 1, options); + CHECK_NULL_RETURN(node); /* clear buf tail */ - for (i = 1; i < NODE_STRING_BUF_SIZE; i++) + for (i = 1; i < ND_STRING_BUF_SIZE; i++) STR_(node)->buf[i] = '\0'; return node; @@ -3517,7 +3585,7 @@ str_node_split_last_char(Node* node, OnigEncoding enc) sn->end = (UChar* )p; STR_(rn)->flag = sn->flag; - NODE_STATUS(rn) = NODE_STATUS(node); + ND_STATUS(rn) = ND_STATUS(node); } } @@ -4276,28 +4344,28 @@ conv_backslash_value(OnigCodePoint c, ParseEnv* env) static int is_invalid_quantifier_target(Node* node) { - switch (NODE_TYPE(node)) { - case NODE_ANCHOR: - case NODE_GIMMICK: + switch (ND_TYPE(node)) { + case ND_ANCHOR: + case ND_GIMMICK: return 1; break; - case NODE_BAG: + case ND_BAG: /* allow enclosed elements */ - /* return is_invalid_quantifier_target(NODE_BODY(node)); */ + /* return is_invalid_quantifier_target(ND_BODY(node)); */ break; - case NODE_LIST: + case ND_LIST: do { - if (! is_invalid_quantifier_target(NODE_CAR(node))) return 0; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + if (! is_invalid_quantifier_target(ND_CAR(node))) return 0; + } while (IS_NOT_NULL(node = ND_CDR(node))); return 0; break; - case NODE_ALT: + case ND_ALT: do { - if (is_invalid_quantifier_target(NODE_CAR(node))) return 1; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + if (is_invalid_quantifier_target(ND_CAR(node))) return 1; + } while (IS_NOT_NULL(node = ND_CDR(node))); break; default: @@ -4334,7 +4402,7 @@ quantifier_type_num(QuantNode* q) enum ReduceType { RQ_ASIS = 0, /* as is */ - RQ_DEL = 1, /* delete parent */ + RQ_DEL, /* delete parent */ RQ_A, /* to '*' */ RQ_P, /* to '+' */ RQ_AQ, /* to '*?' */ @@ -4358,7 +4426,7 @@ onig_reduce_nested_quantifier(Node* pnode) QuantNode *p, *c; Node* cnode; - cnode = NODE_BODY(pnode); + cnode = ND_BODY(pnode); p = QUANT_(pnode); c = QUANT_(cnode); @@ -4370,7 +4438,7 @@ onig_reduce_nested_quantifier(Node* pnode) if (n < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; p->lower = p->upper = n; - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); goto remove_cnode; } @@ -4383,22 +4451,22 @@ onig_reduce_nested_quantifier(Node* pnode) goto remove_cnode; break; case RQ_A: - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 1; goto remove_cnode; break; case RQ_P: - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); p->lower = 1; p->upper = INFINITE_REPEAT; p->greedy = 1; goto remove_cnode; break; case RQ_AQ: - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 0; goto remove_cnode; break; case RQ_QQ: - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); p->lower = 0; p->upper = 1; p->greedy = 0; goto remove_cnode; break; @@ -4413,7 +4481,7 @@ onig_reduce_nested_quantifier(Node* pnode) return 0; remove_cnode: - NODE_BODY(cnode) = NULL_NODE; + ND_BODY(cnode) = NULL_NODE; onig_node_free(cnode); return 0; } @@ -4471,7 +4539,7 @@ node_new_general_newline(Node** node, ParseEnv* env) enum TokenSyms { TK_EOT = 0, /* end of token */ - TK_CRUDE_BYTE = 1, + TK_CRUDE_BYTE, TK_CHAR, TK_STRING, TK_CODE_POINT, @@ -4799,6 +4867,7 @@ fetch_name_with_level(OnigCodePoint start_code, UChar** src, UChar* end, end_code = get_name_end_code_point(start_code); + *rlevel = 0; digit_count = 0; name_end = end; r = 0; @@ -5053,7 +5122,7 @@ CC_ESC_WARN(ParseEnv* env, UChar *c) UChar buf[WARN_BUFSIZE]; onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, env->pattern, env->pattern_end, - (UChar* )"character class has '%s' without escape", + "character class has '%s' without escape", c); (*onig_warn)((char* )buf); } @@ -5068,7 +5137,7 @@ CLOSE_BRACKET_WITHOUT_ESC_WARN(ParseEnv* env, UChar* c) UChar buf[WARN_BUFSIZE]; onig_snprintf_with_pattern(buf, WARN_BUFSIZE, (env)->enc, (env)->pattern, (env)->pattern_end, - (UChar* )"regular expression has '%s' without escape", c); + "regular expression has '%s' without escape", c); (*onig_warn)((char* )buf); } } @@ -5103,41 +5172,96 @@ find_str_position(OnigCodePoint s[], int n, UChar* from, UChar* to, } static int -str_exist_check_with_esc(OnigCodePoint s[], int n, UChar* from, UChar* to, - OnigCodePoint bad, OnigEncoding enc, OnigSyntaxType* syn) +is_head_of_bre_subexp(UChar* p, UChar* end, OnigEncoding enc, ParseEnv* env) { - int i, in_esc; - OnigCodePoint x; - UChar *q; - UChar *p = from; + UChar* start; + OnigCodePoint code; - in_esc = 0; - while (p < to) { - if (in_esc) { - in_esc = 0; - p += enclen(enc, p); - } - else { - x = ONIGENC_MBC_TO_CODE(enc, p, to); - q = p + enclen(enc, p); - if (x == s[0]) { - for (i = 1; i < n && q < to; i++) { - x = ONIGENC_MBC_TO_CODE(enc, q, to); - if (x != s[i]) break; - q += enclen(enc, q); + start = env->pattern; + if (p > start) { + p = onigenc_get_prev_char_head(enc, start, p); + if (p > start) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code == '(' || + (code == '|' && + IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_VBAR_ALT))) { + p = onigenc_get_prev_char_head(enc, start, p); + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (IS_MC_ESC_CODE(code, env->syntax)) { + int count = 0; + while (p > start) { + p = onigenc_get_prev_char_head(enc, start, p); + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (! IS_MC_ESC_CODE(code, env->syntax)) break; + count++; + } + return (count % 2 == 0); } - if (i >= n) return 1; - p += enclen(enc, p); } - else { + } + return FALSE; + } + else { + return TRUE; + } +} + +static int +is_end_of_bre_subexp(UChar* p, UChar* end, OnigEncoding enc, ParseEnv* env) +{ + OnigCodePoint code; + + if (p == end) return TRUE; + + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (IS_MC_ESC_CODE(code, env->syntax)) { + p += ONIGENC_MBC_ENC_LEN(enc, p); + if (p < end) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code == ')' || + (code == '|' && + IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_VBAR_ALT))) + return TRUE; + } + } + + return FALSE; +} + +static int +is_posix_bracket_start(UChar* from, UChar* to, OnigEncoding enc) +{ + int n; + OnigCodePoint x; + UChar *p; + + n = 0; + p = from; + while (p < to) { + x = ONIGENC_MBC_TO_CODE(enc, p, to); + p += enclen(enc, p); + if (x == ':') { + if (p < to) { x = ONIGENC_MBC_TO_CODE(enc, p, to); - if (x == bad) return 0; - else if (x == MC_ESC(syn)) in_esc = 1; - p = q; + if (x == ']') { + if (n == 0) return FALSE; + else return TRUE; + } } + + return FALSE; } + else if (x == '^' && n == 0) { + ; + } + else if (! ONIGENC_IS_CODE_ALPHA(enc, x)) { + break; + } + + n += 1; } - return 0; + + return FALSE; } static int @@ -5392,11 +5516,9 @@ fetch_token_cc(PToken* tok, UChar** src, UChar* end, ParseEnv* env, int state) } else if (c == '[') { if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_POSIX_BRACKET) && (PPEEK_IS(':'))) { - OnigCodePoint send[] = { (OnigCodePoint )':', (OnigCodePoint )']' }; tok->backp = p; /* point at '[' is read */ PINC; - if (str_exist_check_with_esc(send, 2, p, end, - (OnigCodePoint )']', enc, syn)) { + if (is_posix_bracket_start(p, end, enc)) { tok->type = TK_CC_POSIX_BRACKET_OPEN; } else { @@ -5829,6 +5951,7 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) tok->u.backref.by_name = 0; #ifdef USE_BACKREF_WITH_LEVEL tok->u.backref.exist_level = 0; + tok->u.backref.level = 0; #endif break; } @@ -6163,8 +6286,20 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) case '-': case '+': - goto lparen_qmark_num; + if (! PEND) { + PINC; + if (! PEND) { + c = PPEEK; + if (ONIGENC_IS_CODE_DIGIT(enc, c)) { + PUNFETCH; + goto lparen_qmark_num; + } + } + } + p = prev; + goto lparen_qmark_end2; break; + default: if (! ONIGENC_IS_CODE_DIGIT(enc, c)) goto lparen_qmark_end; @@ -6197,6 +6332,7 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) } break; } + break; } else if (c == 'P' && IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME)) { @@ -6238,6 +6374,9 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) case '^': if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break; + if (IS_SYNTAX_BV(syn, ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP)) { + if (! is_head_of_bre_subexp(PPREV, end, enc, env)) break; + } tok->type = TK_ANCHOR; tok->u.subtype = (OPTON_SINGLELINE(env->options) ? ANCR_BEGIN_BUF : ANCR_BEGIN_LINE); @@ -6245,6 +6384,9 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) case '$': if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break; + if (IS_SYNTAX_BV(syn, ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP)) { + if (! is_end_of_bre_subexp(p, end, enc, env)) break; + } tok->type = TK_ANCHOR; tok->u.subtype = (OPTON_SINGLELINE(env->options) ? ANCR_SEMI_END_BUF : ANCR_END_LINE); @@ -6560,9 +6702,6 @@ add_ctype_to_cc(CClassNode* cc, int ctype, int not, ParseEnv* env) static int prs_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ParseEnv* env) { -#define POSIX_BRACKET_CHECK_LIMIT_LENGTH 20 -#define POSIX_BRACKET_NAME_MIN_LEN 4 - static PosixBracketEntryType PBS[] = { { (UChar* )"alnum", ONIGENC_CTYPE_ALNUM, 5 }, { (UChar* )"alpha", ONIGENC_CTYPE_ALPHA, 5 }, @@ -6582,8 +6721,7 @@ prs_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ParseEnv* env) }; PosixBracketEntryType *pb; - int not, i, r; - OnigCodePoint c; + int not, r; OnigEncoding enc = env->enc; UChar *p = *src; @@ -6594,14 +6732,11 @@ prs_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ParseEnv* env) else not = 0; - if (onigenc_strlen(enc, p, end) < POSIX_BRACKET_NAME_MIN_LEN + 3) - goto not_posix_bracket; - for (pb = PBS; IS_NOT_NULL(pb->name); pb++) { if (onigenc_with_ascii_strncmp(enc, p, end, pb->name, pb->len) == 0) { p = (UChar* )onigenc_step(enc, p, end, pb->len); if (onigenc_with_ascii_strncmp(enc, p, end, (UChar* )":]", 2) != 0) - return ONIGERR_INVALID_POSIX_BRACKET_TYPE; + break; r = add_ctype_to_cc(cc, pb->ctype, not, env); if (r != 0) return r; @@ -6612,23 +6747,7 @@ prs_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ParseEnv* env) } } - not_posix_bracket: - c = 0; - i = 0; - while (!PEND && ((c = PPEEK) != ':') && c != ']') { - PINC_S; - if (++i > POSIX_BRACKET_CHECK_LIMIT_LENGTH) break; - } - if (c == ':' && ! PEND) { - PINC_S; - if (! PEND) { - PFETCH_S(c); - if (c == ']') - return ONIGERR_INVALID_POSIX_BRACKET_TYPE; - } - } - - return 1; /* 1: is not POSIX bracket, but no error. */ + return ONIGERR_INVALID_POSIX_BRACKET_TYPE; } static int @@ -6676,6 +6795,12 @@ prs_char_property(Node** np, PToken* tok, UChar** src, UChar* end, ctype = fetch_char_property_to_ctype(src, end, env); if (ctype < 0) return ctype; + if (ctype == ONIGENC_CTYPE_WORD) { + *np = node_new_ctype(ctype, tok->u.prop.not, env->options); + CHECK_NULL_RETURN_MEMERR(*np); + return 0; + } + *np = node_new_cclass(); CHECK_NULL_RETURN_MEMERR(*np); cc = CCLASS_(*np); @@ -6912,6 +7037,11 @@ prs_cc(Node** np, PToken* tok, UChar** src, UChar* end, ParseEnv* env) goto crude_single; } else { + if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, buf, buf + len)) { + r = ONIGERR_INVALID_WIDE_CHAR_VALUE; + goto err; + } + in_code = ONIGENC_MBC_TO_CODE(env->enc, buf, bufe); in_type = CV_MB; } @@ -6994,11 +7124,16 @@ prs_cc(Node** np, PToken* tok, UChar** src, UChar* end, ParseEnv* env) goto val_entry; } else if (r == TK_CC_AND) { + range_end_val_with_warning: CC_ESC_WARN(env, (UChar* )"-"); goto range_end_val; } if (curr_type == CV_CPROP) { + if (IS_SYNTAX_BV(env->syntax, + ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC)) { + goto range_end_val_with_warning; + } r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS; goto err; } @@ -7029,16 +7164,16 @@ prs_cc(Node** np, PToken* tok, UChar** src, UChar* end, ParseEnv* env) if (r < 0) goto err; fetched = 1; - if (r == TK_CC_CLOSE) + if (r == TK_CC_CLOSE) { goto range_end_val; /* allow [a-b-] */ + } else if (r == TK_CC_AND) { - CC_ESC_WARN(env, (UChar* )"-"); - goto range_end_val; + goto range_end_val_with_warning; } if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC)) { - CC_ESC_WARN(env, (UChar* )"-"); - goto range_end_val; /* [0-9-a] is allowed as [0-9\-a] */ + /* [0-9-a] is allowed as [0-9\-a] */ + goto range_end_val_with_warning; } r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS; goto err; @@ -7675,6 +7810,37 @@ prs_callout_of_name(Node** np, int cterm, UChar** src, UChar* end, } #endif +#ifdef USE_WHOLE_OPTIONS +static int +set_whole_options(OnigOptionType option, ParseEnv* env) +{ + if ((env->flags & PE_FLAG_HAS_WHOLE_OPTIONS) != 0) + return ONIGERR_INVALID_GROUP_OPTION; + + env->flags |= PE_FLAG_HAS_WHOLE_OPTIONS; + + if (OPTON_DONT_CAPTURE_GROUP(option)) { + env->reg->options |= ONIG_OPTION_DONT_CAPTURE_GROUP; + if ((option & (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) == (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) + return ONIGERR_INVALID_COMBINATION_OF_OPTIONS; + } + + if ((option & ONIG_OPTION_IGNORECASE_IS_ASCII) != 0) { + env->reg->case_fold_flag &= + ~(INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR | + ONIGENC_CASE_FOLD_TURKISH_AZERI); + env->reg->case_fold_flag |= ONIGENC_CASE_FOLD_ASCII_ONLY; + env->reg->options |= ONIG_OPTION_IGNORECASE_IS_ASCII; + } + + if (OPTON_FIND_LONGEST(option)) { + env->reg->options |= ONIG_OPTION_FIND_LONGEST; + } + + return 0; +} +#endif + static int prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, ParseEnv* env) @@ -7794,6 +7960,7 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, PINC; r = make_range_clear(np, env); if (r != 0) return r; + env->flags |= PE_FLAG_HAS_ABSENT_STOPPER; goto end; } } @@ -7812,21 +7979,21 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, is_range_cutter = 0; if (head_bar != 0) { Node* top = absent; - if (NODE_TYPE(top) != NODE_ALT || IS_NULL(NODE_CDR(top))) { + if (ND_TYPE(top) != ND_ALT || IS_NULL(ND_CDR(top))) { expr = NULL_NODE; is_range_cutter = 1; - /* return ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN; */ + env->flags |= PE_FLAG_HAS_ABSENT_STOPPER; } else { - absent = NODE_CAR(top); - expr = NODE_CDR(top); - NODE_CAR(top) = NULL_NODE; - NODE_CDR(top) = NULL_NODE; + absent = ND_CAR(top); + expr = ND_CDR(top); + ND_CAR(top) = NULL_NODE; + ND_CDR(top) = NULL_NODE; onig_node_free(top); - if (IS_NULL(NODE_CDR(expr))) { + if (IS_NULL(ND_CDR(expr))) { top = expr; - expr = NODE_CAR(top); - NODE_CAR(top) = NULL_NODE; + expr = ND_CAR(top); + ND_CAR(top) = NULL_NODE; onig_node_free(top); } } @@ -8034,14 +8201,14 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, Else = target; } else { - if (NODE_TYPE(target) == NODE_ALT) { - Then = NODE_CAR(target); - if (NODE_CDR(NODE_CDR(target)) == NULL_NODE) { - Else = NODE_CAR(NODE_CDR(target)); - cons_node_free_alone(NODE_CDR(target)); + if (ND_TYPE(target) == ND_ALT) { + Then = ND_CAR(target); + if (ND_CDR(ND_CDR(target)) == NULL_NODE) { + Else = ND_CAR(ND_CDR(target)); + cons_node_free_alone(ND_CDR(target)); } else { - Else = NODE_CDR(target); + Else = ND_CDR(target); } cons_node_free_alone(target); } @@ -8274,43 +8441,27 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, if (c == ')') { *np = node_new_option(option); CHECK_NULL_RETURN_MEMERR(*np); - r = 2; /* option only */ #ifdef USE_WHOLE_OPTIONS - set_whole_options: if (whole_options == TRUE) { - if ((env->flags & PE_FLAG_HAS_WHOLE_OPTIONS) != 0) - return ONIGERR_INVALID_GROUP_OPTION; - - env->flags |= PE_FLAG_HAS_WHOLE_OPTIONS; - NODE_STATUS_ADD(*np, WHOLE_OPTIONS); - - if (OPTON_DONT_CAPTURE_GROUP(option)) { - env->reg->options |= ONIG_OPTION_DONT_CAPTURE_GROUP; - if ((option & (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) == (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) - return ONIGERR_INVALID_COMBINATION_OF_OPTIONS; - } - - if ((option & ONIG_OPTION_IGNORECASE_IS_ASCII) != 0) { - env->reg->case_fold_flag &= - ~(INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR | - ONIGENC_CASE_FOLD_TURKISH_AZERI); - env->reg->case_fold_flag |= ONIGENC_CASE_FOLD_ASCII_ONLY; - env->reg->options |= ONIG_OPTION_IGNORECASE_IS_ASCII; - } - - if (OPTON_FIND_LONGEST(option)) { - env->reg->options |= ONIG_OPTION_FIND_LONGEST; - } + r = set_whole_options(option, env); + if (r != 0) return r; + ND_STATUS_ADD(*np, WHOLE_OPTIONS); } #endif *src = p; - return r; + return 2; /* option only */ } else if (c == ':') { OnigOptionType prev = env->options; env->options = option; +#ifdef USE_WHOLE_OPTIONS + if (whole_options == TRUE) { + r = set_whole_options(option, env); + if (r != 0) return r; + } +#endif r = fetch_token(tok, &p, end, env); if (r < 0) return r; r = prs_alts(&target, tok, term, &p, end, env, FALSE); @@ -8319,16 +8470,12 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, onig_node_free(target); return r; } + *np = node_new_option(option); CHECK_NULL_RETURN_MEMERR(*np); - NODE_BODY(*np) = target; + ND_BODY(*np) = target; + ND_STATUS_ADD(*np, WHOLE_OPTIONS); -#ifdef USE_WHOLE_OPTIONS - if (whole_options == TRUE) { - r = 0; - goto set_whole_options; - } -#endif *src = p; return 0; } @@ -8373,9 +8520,9 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, return r; } - NODE_BODY(*np) = target; + ND_BODY(*np) = target; - if (NODE_TYPE(*np) == NODE_BAG) { + if (ND_TYPE(*np) == ND_BAG) { if (BAG_(*np)->type == BAG_MEMORY) { /* Don't move this to previous of prs_alts() */ r = scan_env_set_mem_node(env, BAG_(*np)->m.regnum, *np); @@ -8405,20 +8552,20 @@ assign_quantifier_body(Node* qnode, Node* target, int group, ParseEnv* env) if (qn->lower == 1 && qn->upper == 1) return 1; - switch (NODE_TYPE(target)) { - case NODE_STRING: + switch (ND_TYPE(target)) { + case ND_STRING: if (group == 0) { if (str_node_can_be_split(target, env->enc)) { Node* n = str_node_split_last_char(target, env->enc); if (IS_NOT_NULL(n)) { - NODE_BODY(qnode) = n; + ND_BODY(qnode) = n; return 2; } } } break; - case NODE_QUANT: + case ND_QUANT: { /* check redundant double repeat. */ /* verbose warn (?:.?)? etc... but not warn (.?)? etc... */ QuantNode* qnt = QUANT_(target); @@ -8438,7 +8585,7 @@ assign_quantifier_body(Node* qnode, Node* target, int group, ParseEnv* env) if (onig_verb_warn != onig_null_warn) { onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, env->pattern, env->pattern_end, - (UChar* )"redundant nested repeat operator"); + "redundant nested repeat operator"); (*onig_verb_warn)((char* )buf); } goto warn_exit; @@ -8448,7 +8595,7 @@ assign_quantifier_body(Node* qnode, Node* target, int group, ParseEnv* env) if (onig_verb_warn != onig_null_warn) { onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, env->pattern, env->pattern_end, - (UChar* )"nested repeat operator %s and %s was replaced with '%s'", + "nested repeat operator %s and %s was replaced with '%s'", PopularQStr[targetq_num], PopularQStr[nestq_num], ReduceQStr[ReduceTypeTable[targetq_num][nestq_num]]); (*onig_verb_warn)((char* )buf); @@ -8471,7 +8618,7 @@ assign_quantifier_body(Node* qnode, Node* target, int group, ParseEnv* env) else { int r; - NODE_BODY(qnode) = target; + ND_BODY(qnode) = target; r = onig_reduce_nested_quantifier(qnode); return r; } @@ -8482,7 +8629,7 @@ assign_quantifier_body(Node* qnode, Node* target, int group, ParseEnv* env) break; } - NODE_BODY(qnode) = target; + ND_BODY(qnode) = target; return 0; } @@ -8628,14 +8775,14 @@ i_apply_case_fold(OnigCodePoint from, OnigCodePoint to[], int to_len, } else { len = ONIGENC_CODE_TO_MBC(enc, to[i], buf); - if (n == 0 || NODE_TYPE(ns[n-1]) != NODE_STRING) { + if (n == 0 || ND_TYPE(ns[n-1]) != ND_STRING) { csnode = node_new_str(buf, buf + len); if (IS_NULL(csnode)) goto err_free_ns; if (index == 0) - NODE_STATUS_ADD(csnode, IGNORECASE); + ND_STATUS_ADD(csnode, IGNORECASE); else - NODE_STRING_SET_CASE_EXPANDED(csnode); + ND_STRING_SET_CASE_EXPANDED(csnode); ns[n++] = csnode; } @@ -8656,7 +8803,7 @@ i_apply_case_fold(OnigCodePoint from, OnigCodePoint to[], int to_len, onig_node_free(list_node); return ONIGERR_MEMORY; } - iarg->ptail = &(NODE_CDR((*(iarg->ptail)))); + iarg->ptail = &(ND_CDR((*(iarg->ptail)))); } } @@ -8726,7 +8873,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, onig_node_free(target); return r; } - NODE_BODY(*np) = target; + ND_BODY(*np) = target; } return tok->type; } @@ -8744,6 +8891,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, tk_byte: { *np = node_new_str_with_options(tok->backp, *src, env->options); + tk_byte2: CHECK_NULL_RETURN_MEMERR(*np); while (1) { @@ -8790,7 +8938,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, STR_(*np)->s, STR_(*np)->end)) return ONIGERR_INVALID_WIDE_CHAR_VALUE; - NODE_STRING_CLEAR_CRUDE(*np); + ND_STRING_CLEAR_CRUDE(*np); goto string_end; } break; @@ -8883,7 +9031,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, iarg.alt_root = NULL_NODE; iarg.ptail = &(iarg.alt_root); - r = ONIGENC_APPLY_ALL_CASE_FOLD(env->enc, env->case_fold_flag, + r = ONIGENC_APPLY_ALL_CASE_FOLD(env->enc, env->reg->case_fold_flag, i_apply_case_fold, &iarg); if (r != 0) { onig_node_free(iarg.alt_root); @@ -8911,7 +9059,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, CHECK_NULL_RETURN_MEMERR(*np); qn = node_new_quantifier(0, INFINITE_REPEAT, FALSE); CHECK_NULL_RETURN_MEMERR(qn); - NODE_BODY(qn) = *np; + ND_BODY(qn) = *np; *np = qn; break; @@ -8960,7 +9108,15 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, } } else { - goto tk_byte; + if (tok->type == TK_INTERVAL && + IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_BRACE_INTERVAL)) { + *np = node_new_str_with_options(tok->backp, *src, env->options); + node_str_remove_char(*np, (UChar )'\\'); + goto tk_byte2; + } + else { + goto tk_byte; + } } break; @@ -9005,8 +9161,14 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, if (r == TK_REPEAT || r == TK_INTERVAL) { Node* target; - if (is_invalid_quantifier_target(*tp)) - return ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID; + if (is_invalid_quantifier_target(*tp)) { + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS)) { + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS)) + return ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID; + } + + return r; + } INC_PARSE_DEPTH(parse_depth); @@ -9035,7 +9197,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, onig_node_free(qn); return ONIGERR_MEMORY; } - NODE_BODY(en) = qn; + ND_BODY(en) = qn; qn = en; } @@ -9054,12 +9216,12 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, onig_node_free(qn); return ONIGERR_MEMORY; } - tmp = NODE_CDR(*tp) = node_new_list(qn, NULL); + tmp = ND_CDR(*tp) = node_new_list(qn, NULL); if (IS_NULL(tmp)) { onig_node_free(qn); return ONIGERR_MEMORY; } - tp = &(NODE_CAR(tmp)); + tp = &(ND_CAR(tmp)); } group = 0; goto re_entry; @@ -9096,7 +9258,7 @@ prs_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end, return ONIGERR_MEMORY; } - headp = &(NODE_CDR(*top)); + headp = &(ND_CDR(*top)); while (r != TK_EOT && r != term && r != TK_ALT) { r = prs_exp(&node, tok, term, src, end, env, FALSE); if (r < 0) { @@ -9104,15 +9266,15 @@ prs_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end, return r; } - if (NODE_TYPE(node) == NODE_LIST) { + if (ND_TYPE(node) == ND_LIST) { *headp = node; - while (IS_NOT_NULL(NODE_CDR(node))) node = NODE_CDR(node); - headp = &(NODE_CDR(node)); + while (IS_NOT_NULL(ND_CDR(node))) node = ND_CDR(node); + headp = &(ND_CDR(node)); } else { *headp = node_new_list(node, NULL); if (IS_NULL(*headp)) goto mem_err; - headp = &(NODE_CDR(*headp)); + headp = &(ND_CDR(*headp)); } } } @@ -9150,7 +9312,7 @@ prs_alts(Node** top, PToken* tok, int term, UChar** src, UChar* end, return ONIGERR_MEMORY; } - headp = &(NODE_CDR(*top)); + headp = &(ND_CDR(*top)); while (r == TK_ALT) { r = fetch_token(tok, src, end, env); if (r < 0) return r; @@ -9163,10 +9325,11 @@ prs_alts(Node** top, PToken* tok, int term, UChar** src, UChar* end, if (IS_NULL(*headp)) { onig_node_free(node); onig_node_free(*top); + *top = NULL_NODE; return ONIGERR_MEMORY; } - headp = &(NODE_CDR(*headp)); + headp = &(ND_CDR(*headp)); } if (tok->type != (enum TokenSyms )term) @@ -9210,7 +9373,7 @@ make_call_zero_body(Node* node, ParseEnv* env, Node** rnode) Node* x = node_new_memory(0 /* 0: is not named */); CHECK_NULL_RETURN_MEMERR(x); - NODE_BODY(x) = node; + ND_BODY(x) = node; BAG_(x)->m.regnum = 0; r = scan_env_set_mem_node(env, 0, x); if (r != 0) { diff --git a/src/regparse.h b/src/regparse.h index 5421252..adcf00e 100644 --- a/src/regparse.h +++ b/src/regparse.h @@ -31,23 +31,23 @@ #include "regint.h" -#define NODE_STRING_MARGIN 16 -#define NODE_STRING_BUF_SIZE 24 /* sizeof(CClassNode) - sizeof(int)*4 */ -#define NODE_BACKREFS_SIZE 6 +#define ND_STRING_MARGIN 16 +#define ND_STRING_BUF_SIZE 24 /* sizeof(CClassNode) - sizeof(int)*4 */ +#define ND_BACKREFS_SIZE 6 /* node type */ typedef enum { - NODE_STRING = 0, - NODE_CCLASS = 1, - NODE_CTYPE = 2, - NODE_BACKREF = 3, - NODE_QUANT = 4, - NODE_BAG = 5, - NODE_ANCHOR = 6, - NODE_LIST = 7, - NODE_ALT = 8, - NODE_CALL = 9, - NODE_GIMMICK = 10 + ND_STRING = 0, + ND_CCLASS = 1, + ND_CTYPE = 2, + ND_BACKREF = 3, + ND_QUANT = 4, + ND_BAG = 5, + ND_ANCHOR = 6, + ND_LIST = 7, + ND_ALT = 8, + ND_CALL = 9, + ND_GIMMICK = 10 } NodeType; enum BagType { @@ -91,7 +91,7 @@ typedef struct { UChar* s; UChar* end; unsigned int flag; - UChar buf[NODE_STRING_BUF_SIZE]; + UChar buf[ND_STRING_BUF_SIZE]; int capacity; /* (allocated size - 1) or 0: use buf[] */ } StrNode; @@ -186,7 +186,7 @@ typedef struct { struct _Node* parent; int back_num; - int back_static[NODE_BACKREFS_SIZE]; + int back_static[ND_BACKREFS_SIZE]; int* back_dynamic; int nest_level; } BackRefNode; @@ -267,22 +267,22 @@ typedef struct { /* node type bit */ -#define NODE_TYPE2BIT(type) (1<<(type)) - -#define NODE_BIT_STRING NODE_TYPE2BIT(NODE_STRING) -#define NODE_BIT_CCLASS NODE_TYPE2BIT(NODE_CCLASS) -#define NODE_BIT_CTYPE NODE_TYPE2BIT(NODE_CTYPE) -#define NODE_BIT_BACKREF NODE_TYPE2BIT(NODE_BACKREF) -#define NODE_BIT_QUANT NODE_TYPE2BIT(NODE_QUANT) -#define NODE_BIT_BAG NODE_TYPE2BIT(NODE_BAG) -#define NODE_BIT_ANCHOR NODE_TYPE2BIT(NODE_ANCHOR) -#define NODE_BIT_LIST NODE_TYPE2BIT(NODE_LIST) -#define NODE_BIT_ALT NODE_TYPE2BIT(NODE_ALT) -#define NODE_BIT_CALL NODE_TYPE2BIT(NODE_CALL) -#define NODE_BIT_GIMMICK NODE_TYPE2BIT(NODE_GIMMICK) - -#define NODE_TYPE(node) ((node)->u.base.node_type) -#define NODE_SET_TYPE(node, ntype) (node)->u.base.node_type = (ntype) +#define ND_TYPE2BIT(type) (1<<(type)) + +#define ND_BIT_STRING ND_TYPE2BIT(ND_STRING) +#define ND_BIT_CCLASS ND_TYPE2BIT(ND_CCLASS) +#define ND_BIT_CTYPE ND_TYPE2BIT(ND_CTYPE) +#define ND_BIT_BACKREF ND_TYPE2BIT(ND_BACKREF) +#define ND_BIT_QUANT ND_TYPE2BIT(ND_QUANT) +#define ND_BIT_BAG ND_TYPE2BIT(ND_BAG) +#define ND_BIT_ANCHOR ND_TYPE2BIT(ND_ANCHOR) +#define ND_BIT_LIST ND_TYPE2BIT(ND_LIST) +#define ND_BIT_ALT ND_TYPE2BIT(ND_ALT) +#define ND_BIT_CALL ND_TYPE2BIT(ND_CALL) +#define ND_BIT_GIMMICK ND_TYPE2BIT(ND_GIMMICK) + +#define ND_TYPE(node) ((node)->u.base.node_type) +#define ND_SET_TYPE(node, ntype) (node)->u.base.node_type = (ntype) #define STR_(node) (&((node)->u.str)) #define CCLASS_(node) (&((node)->u.cclass)) @@ -295,107 +295,107 @@ typedef struct { #define CALL_(node) (&((node)->u.call)) #define GIMMICK_(node) (&((node)->u.gimmick)) -#define NODE_CAR(node) (CONS_(node)->car) -#define NODE_CDR(node) (CONS_(node)->cdr) +#define ND_CAR(node) (CONS_(node)->car) +#define ND_CDR(node) (CONS_(node)->cdr) #define CTYPE_ANYCHAR -1 -#define NODE_IS_ANYCHAR(node) \ - (NODE_TYPE(node) == NODE_CTYPE && CTYPE_(node)->ctype == CTYPE_ANYCHAR) +#define ND_IS_ANYCHAR(node) \ + (ND_TYPE(node) == ND_CTYPE && CTYPE_(node)->ctype == CTYPE_ANYCHAR) #define ANCR_ANYCHAR_INF_MASK (ANCR_ANYCHAR_INF | ANCR_ANYCHAR_INF_ML) #define ANCR_END_BUF_MASK (ANCR_END_BUF | ANCR_SEMI_END_BUF) -#define NODE_STRING_CRUDE (1<<0) -#define NODE_STRING_CASE_EXPANDED (1<<1) +#define ND_STRING_CRUDE (1<<0) +#define ND_STRING_CASE_EXPANDED (1<<1) -#define NODE_STRING_LEN(node) (int )((node)->u.str.end - (node)->u.str.s) -#define NODE_STRING_SET_CRUDE(node) (node)->u.str.flag |= NODE_STRING_CRUDE -#define NODE_STRING_CLEAR_CRUDE(node) (node)->u.str.flag &= ~NODE_STRING_CRUDE -#define NODE_STRING_SET_CASE_EXPANDED(node) (node)->u.str.flag |= NODE_STRING_CASE_EXPANDED -#define NODE_STRING_IS_CRUDE(node) \ - (((node)->u.str.flag & NODE_STRING_CRUDE) != 0) -#define NODE_STRING_IS_CASE_EXPANDED(node) \ - (((node)->u.str.flag & NODE_STRING_CASE_EXPANDED) != 0) +#define ND_STRING_LEN(node) (int )((node)->u.str.end - (node)->u.str.s) +#define ND_STRING_SET_CRUDE(node) (node)->u.str.flag |= ND_STRING_CRUDE +#define ND_STRING_CLEAR_CRUDE(node) (node)->u.str.flag &= ~ND_STRING_CRUDE +#define ND_STRING_SET_CASE_EXPANDED(node) (node)->u.str.flag |= ND_STRING_CASE_EXPANDED +#define ND_STRING_IS_CRUDE(node) \ + (((node)->u.str.flag & ND_STRING_CRUDE) != 0) +#define ND_STRING_IS_CASE_EXPANDED(node) \ + (((node)->u.str.flag & ND_STRING_CASE_EXPANDED) != 0) #define BACKREFS_P(br) \ (IS_NOT_NULL((br)->back_dynamic) ? (br)->back_dynamic : (br)->back_static) /* node status bits */ -#define NODE_ST_FIXED_MIN (1<<0) -#define NODE_ST_FIXED_MAX (1<<1) -#define NODE_ST_FIXED_CLEN (1<<2) -#define NODE_ST_MARK1 (1<<3) -#define NODE_ST_MARK2 (1<<4) -#define NODE_ST_STRICT_REAL_REPEAT (1<<5) -#define NODE_ST_RECURSION (1<<6) -#define NODE_ST_CALLED (1<<7) -#define NODE_ST_FIXED_ADDR (1<<8) -#define NODE_ST_NAMED_GROUP (1<<9) -#define NODE_ST_IN_REAL_REPEAT (1<<10) /* STK_REPEAT is nested in stack. */ -#define NODE_ST_IN_ZERO_REPEAT (1<<11) /* (....){0} */ -#define NODE_ST_IN_MULTI_ENTRY (1<<12) -#define NODE_ST_NEST_LEVEL (1<<13) -#define NODE_ST_BY_NUMBER (1<<14) /* {n,m} */ -#define NODE_ST_BY_NAME (1<<15) /* backref by name */ -#define NODE_ST_BACKREF (1<<16) -#define NODE_ST_CHECKER (1<<17) -#define NODE_ST_PROHIBIT_RECURSION (1<<18) -#define NODE_ST_SUPER (1<<19) -#define NODE_ST_EMPTY_STATUS_CHECK (1<<20) -#define NODE_ST_IGNORECASE (1<<21) -#define NODE_ST_MULTILINE (1<<22) -#define NODE_ST_TEXT_SEGMENT_WORD (1<<23) -#define NODE_ST_ABSENT_WITH_SIDE_EFFECTS (1<<24) /* stopper or clear */ -#define NODE_ST_FIXED_CLEN_MIN_SURE (1<<25) -#define NODE_ST_REFERENCED (1<<26) -#define NODE_ST_INPEEK (1<<27) -#define NODE_ST_WHOLE_OPTIONS (1<<28) - - -#define NODE_STATUS(node) (((Node* )node)->u.base.status) -#define NODE_STATUS_ADD(node,f) (NODE_STATUS(node) |= (NODE_ST_ ## f)) -#define NODE_STATUS_REMOVE(node,f) (NODE_STATUS(node) &= ~(NODE_ST_ ## f)) - -#define NODE_IS_BY_NUMBER(node) ((NODE_STATUS(node) & NODE_ST_BY_NUMBER) != 0) -#define NODE_IS_IN_REAL_REPEAT(node) ((NODE_STATUS(node) & NODE_ST_IN_REAL_REPEAT) != 0) -#define NODE_IS_CALLED(node) ((NODE_STATUS(node) & NODE_ST_CALLED) != 0) -#define NODE_IS_IN_MULTI_ENTRY(node) ((NODE_STATUS(node) & NODE_ST_IN_MULTI_ENTRY) != 0) -#define NODE_IS_RECURSION(node) ((NODE_STATUS(node) & NODE_ST_RECURSION) != 0) -#define NODE_IS_IN_ZERO_REPEAT(node) ((NODE_STATUS(node) & NODE_ST_IN_ZERO_REPEAT) != 0) -#define NODE_IS_NAMED_GROUP(node) ((NODE_STATUS(node) & NODE_ST_NAMED_GROUP) != 0) -#define NODE_IS_FIXED_ADDR(node) ((NODE_STATUS(node) & NODE_ST_FIXED_ADDR) != 0) -#define NODE_IS_FIXED_CLEN(node) ((NODE_STATUS(node) & NODE_ST_FIXED_CLEN) != 0) -#define NODE_IS_FIXED_MIN(node) ((NODE_STATUS(node) & NODE_ST_FIXED_MIN) != 0) -#define NODE_IS_FIXED_MAX(node) ((NODE_STATUS(node) & NODE_ST_FIXED_MAX) != 0) -#define NODE_IS_MARK1(node) ((NODE_STATUS(node) & NODE_ST_MARK1) != 0) -#define NODE_IS_MARK2(node) ((NODE_STATUS(node) & NODE_ST_MARK2) != 0) -#define NODE_IS_NEST_LEVEL(node) ((NODE_STATUS(node) & NODE_ST_NEST_LEVEL) != 0) -#define NODE_IS_BY_NAME(node) ((NODE_STATUS(node) & NODE_ST_BY_NAME) != 0) -#define NODE_IS_BACKREF(node) ((NODE_STATUS(node) & NODE_ST_BACKREF) != 0) -#define NODE_IS_CHECKER(node) ((NODE_STATUS(node) & NODE_ST_CHECKER) != 0) -#define NODE_IS_SUPER(node) ((NODE_STATUS(node) & NODE_ST_SUPER) != 0) -#define NODE_IS_PROHIBIT_RECURSION(node) \ - ((NODE_STATUS(node) & NODE_ST_PROHIBIT_RECURSION) != 0) -#define NODE_IS_STRICT_REAL_REPEAT(node) \ - ((NODE_STATUS(node) & NODE_ST_STRICT_REAL_REPEAT) != 0) -#define NODE_IS_EMPTY_STATUS_CHECK(node) \ - ((NODE_STATUS(node) & NODE_ST_EMPTY_STATUS_CHECK) != 0) -#define NODE_IS_IGNORECASE(node) ((NODE_STATUS(node) & NODE_ST_IGNORECASE) != 0) -#define NODE_IS_MULTILINE(node) ((NODE_STATUS(node) & NODE_ST_MULTILINE) != 0) -#define NODE_IS_TEXT_SEGMENT_WORD(node) ((NODE_STATUS(node) & NODE_ST_TEXT_SEGMENT_WORD) != 0) -#define NODE_IS_ABSENT_WITH_SIDE_EFFECTS(node) ((NODE_STATUS(node) & NODE_ST_ABSENT_WITH_SIDE_EFFECTS) != 0) -#define NODE_IS_FIXED_CLEN_MIN_SURE(node) ((NODE_STATUS(node) & NODE_ST_FIXED_CLEN_MIN_SURE) != 0) -#define NODE_IS_REFERENCED(node) ((NODE_STATUS(node) & NODE_ST_REFERENCED) != 0) -#define NODE_IS_INPEEK(node) ((NODE_STATUS(node) & NODE_ST_INPEEK) != 0) -#define NODE_IS_WHOLE_OPTIONS(node) ((NODE_STATUS(node) & NODE_ST_WHOLE_OPTIONS) != 0) - -#define NODE_PARENT(node) ((node)->u.base.parent) -#define NODE_BODY(node) ((node)->u.base.body) -#define NODE_QUANT_BODY(node) ((node)->body) -#define NODE_BAG_BODY(node) ((node)->body) -#define NODE_CALL_BODY(node) ((node)->body) -#define NODE_ANCHOR_BODY(node) ((node)->body) +#define ND_ST_FIXED_MIN (1<<0) +#define ND_ST_FIXED_MAX (1<<1) +#define ND_ST_FIXED_CLEN (1<<2) +#define ND_ST_MARK1 (1<<3) +#define ND_ST_MARK2 (1<<4) +#define ND_ST_STRICT_REAL_REPEAT (1<<5) +#define ND_ST_RECURSION (1<<6) +#define ND_ST_CALLED (1<<7) +#define ND_ST_FIXED_ADDR (1<<8) +#define ND_ST_NAMED_GROUP (1<<9) +#define ND_ST_IN_REAL_REPEAT (1<<10) /* STK_REPEAT is nested in stack. */ +#define ND_ST_IN_ZERO_REPEAT (1<<11) /* (....){0} */ +#define ND_ST_IN_MULTI_ENTRY (1<<12) +#define ND_ST_NEST_LEVEL (1<<13) +#define ND_ST_BY_NUMBER (1<<14) /* {n,m} */ +#define ND_ST_BY_NAME (1<<15) /* backref by name */ +#define ND_ST_BACKREF (1<<16) +#define ND_ST_CHECKER (1<<17) +#define ND_ST_PROHIBIT_RECURSION (1<<18) +#define ND_ST_SUPER (1<<19) +#define ND_ST_EMPTY_STATUS_CHECK (1<<20) +#define ND_ST_IGNORECASE (1<<21) +#define ND_ST_MULTILINE (1<<22) +#define ND_ST_TEXT_SEGMENT_WORD (1<<23) +#define ND_ST_ABSENT_WITH_SIDE_EFFECTS (1<<24) /* stopper or clear */ +#define ND_ST_FIXED_CLEN_MIN_SURE (1<<25) +#define ND_ST_REFERENCED (1<<26) +#define ND_ST_INPEEK (1<<27) +#define ND_ST_WHOLE_OPTIONS (1<<28) + + +#define ND_STATUS(node) (((Node* )node)->u.base.status) +#define ND_STATUS_ADD(node,f) (ND_STATUS(node) |= (ND_ST_ ## f)) +#define ND_STATUS_REMOVE(node,f) (ND_STATUS(node) &= ~(ND_ST_ ## f)) + +#define ND_IS_BY_NUMBER(node) ((ND_STATUS(node) & ND_ST_BY_NUMBER) != 0) +#define ND_IS_IN_REAL_REPEAT(node) ((ND_STATUS(node) & ND_ST_IN_REAL_REPEAT) != 0) +#define ND_IS_CALLED(node) ((ND_STATUS(node) & ND_ST_CALLED) != 0) +#define ND_IS_IN_MULTI_ENTRY(node) ((ND_STATUS(node) & ND_ST_IN_MULTI_ENTRY) != 0) +#define ND_IS_RECURSION(node) ((ND_STATUS(node) & ND_ST_RECURSION) != 0) +#define ND_IS_IN_ZERO_REPEAT(node) ((ND_STATUS(node) & ND_ST_IN_ZERO_REPEAT) != 0) +#define ND_IS_NAMED_GROUP(node) ((ND_STATUS(node) & ND_ST_NAMED_GROUP) != 0) +#define ND_IS_FIXED_ADDR(node) ((ND_STATUS(node) & ND_ST_FIXED_ADDR) != 0) +#define ND_IS_FIXED_CLEN(node) ((ND_STATUS(node) & ND_ST_FIXED_CLEN) != 0) +#define ND_IS_FIXED_MIN(node) ((ND_STATUS(node) & ND_ST_FIXED_MIN) != 0) +#define ND_IS_FIXED_MAX(node) ((ND_STATUS(node) & ND_ST_FIXED_MAX) != 0) +#define ND_IS_MARK1(node) ((ND_STATUS(node) & ND_ST_MARK1) != 0) +#define ND_IS_MARK2(node) ((ND_STATUS(node) & ND_ST_MARK2) != 0) +#define ND_IS_NEST_LEVEL(node) ((ND_STATUS(node) & ND_ST_NEST_LEVEL) != 0) +#define ND_IS_BY_NAME(node) ((ND_STATUS(node) & ND_ST_BY_NAME) != 0) +#define ND_IS_BACKREF(node) ((ND_STATUS(node) & ND_ST_BACKREF) != 0) +#define ND_IS_CHECKER(node) ((ND_STATUS(node) & ND_ST_CHECKER) != 0) +#define ND_IS_SUPER(node) ((ND_STATUS(node) & ND_ST_SUPER) != 0) +#define ND_IS_PROHIBIT_RECURSION(node) \ + ((ND_STATUS(node) & ND_ST_PROHIBIT_RECURSION) != 0) +#define ND_IS_STRICT_REAL_REPEAT(node) \ + ((ND_STATUS(node) & ND_ST_STRICT_REAL_REPEAT) != 0) +#define ND_IS_EMPTY_STATUS_CHECK(node) \ + ((ND_STATUS(node) & ND_ST_EMPTY_STATUS_CHECK) != 0) +#define ND_IS_IGNORECASE(node) ((ND_STATUS(node) & ND_ST_IGNORECASE) != 0) +#define ND_IS_MULTILINE(node) ((ND_STATUS(node) & ND_ST_MULTILINE) != 0) +#define ND_IS_TEXT_SEGMENT_WORD(node) ((ND_STATUS(node) & ND_ST_TEXT_SEGMENT_WORD) != 0) +#define ND_IS_ABSENT_WITH_SIDE_EFFECTS(node) ((ND_STATUS(node) & ND_ST_ABSENT_WITH_SIDE_EFFECTS) != 0) +#define ND_IS_FIXED_CLEN_MIN_SURE(node) ((ND_STATUS(node) & ND_ST_FIXED_CLEN_MIN_SURE) != 0) +#define ND_IS_REFERENCED(node) ((ND_STATUS(node) & ND_ST_REFERENCED) != 0) +#define ND_IS_INPEEK(node) ((ND_STATUS(node) & ND_ST_INPEEK) != 0) +#define ND_IS_WHOLE_OPTIONS(node) ((ND_STATUS(node) & ND_ST_WHOLE_OPTIONS) != 0) + +#define ND_PARENT(node) ((node)->u.base.parent) +#define ND_BODY(node) ((node)->u.base.body) +#define ND_QUANT_BODY(node) ((node)->body) +#define ND_BAG_BODY(node) ((node)->body) +#define ND_CALL_BODY(node) ((node)->body) +#define ND_ANCHOR_BODY(node) ((node)->body) #define PARSEENV_MEMENV_SIZE 8 #define PARSEENV_MEMENV(senv) \ @@ -456,6 +456,7 @@ typedef struct { #define PE_FLAG_HAS_CALL_ZERO (1<<0) #define PE_FLAG_HAS_WHOLE_OPTIONS (1<<1) +#define PE_FLAG_HAS_ABSENT_STOPPER (1<<2) extern int onig_renumber_name_table P_((regex_t* reg, GroupNumMap* map)); diff --git a/src/regsyntax.c b/src/regsyntax.c index 8e1c313..96799d8 100644 --- a/src/regsyntax.c +++ b/src/regsyntax.c @@ -2,7 +2,7 @@ regsyntax.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2021 K.Kosako + * Copyright (c) 2002-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -49,7 +49,7 @@ OnigSyntaxType OnigSyntaxPosixBasic = { ( SYN_POSIX_COMMON_OP | ONIG_SYN_OP_ESC_LPAREN_SUBEXP | ONIG_SYN_OP_ESC_BRACE_INTERVAL ) , 0 - , 0 + , ( ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP ) , ( ONIG_OPTION_SINGLELINE | ONIG_OPTION_MULTILINE ) , { @@ -90,7 +90,7 @@ OnigSyntaxType OnigSyntaxEmacs = { ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_PLUS_ONE_INF | ONIG_SYN_OP_QMARK_ZERO_ONE | ONIG_SYN_OP_DECIMAL_BACKREF | ONIG_SYN_OP_LINE_ANCHOR | ONIG_SYN_OP_ESC_CONTROL_CHARS ) - , ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR + , ( ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR | ONIG_SYN_OP2_QMARK_GROUP_EFFECT ) , ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC , ONIG_OPTION_NONE , @@ -113,7 +113,8 @@ OnigSyntaxType OnigSyntaxGrep = { ONIG_SYN_OP_ESC_W_WORD | ONIG_SYN_OP_ESC_B_WORD_BOUND | ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | ONIG_SYN_OP_DECIMAL_BACKREF ) , 0 - , ( ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC | ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC ) + , ( ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC | ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC | + ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP ) , ONIG_OPTION_NONE , { @@ -146,7 +147,7 @@ OnigSyntaxType OnigSyntaxJava = { (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY | ONIG_SYN_OP_ESC_CONTROL_CHARS | ONIG_SYN_OP_ESC_C_CONTROL | ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 ) - & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) + & ~(ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | ONIG_SYN_OP_POSIX_BRACKET) ) , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE | ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL | ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL | ONIG_SYN_OP2_CCLASS_SET_OP | @@ -154,7 +155,8 @@ OnigSyntaxType OnigSyntaxJava = { ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY ) , ( SYN_GNU_REGEX_BV | ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH | ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND | - ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND ) + ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND | + ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC ) , ONIG_OPTION_SINGLELINE , { @@ -187,7 +189,8 @@ OnigSyntaxType OnigSyntaxPerl = { ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP | ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE | ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT ) - , SYN_GNU_REGEX_BV | ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH + , (SYN_GNU_REGEX_BV | ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH | + ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC ) , ONIG_OPTION_SINGLELINE , { @@ -227,7 +230,8 @@ OnigSyntaxType OnigSyntaxPerl_NG = { ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL ) , ( SYN_GNU_REGEX_BV | ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH | ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP | - ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME ) + ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME | + ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC ) , ONIG_OPTION_SINGLELINE , { @@ -246,7 +250,7 @@ OnigSyntaxType OnigSyntaxPython = { ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 | ONIG_SYN_OP_ESC_CONTROL_CHARS | ONIG_SYN_OP_ESC_C_CONTROL ) - & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) + & ~(ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | ONIG_SYN_OP_POSIX_BRACKET) ) , ( ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL | ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE | ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME | @@ -32,18 +32,18 @@ struct st_table_entry { * */ -static int numcmp(long, long); -static int numhash(long); +static int numcmp(st_data_t, st_data_t); +static int numhash(st_data_t); static struct st_hash_type type_numhash = { numcmp, numhash, }; -/* extern int strcmp(const char *, const char *); */ -static int strhash(const char *); +static int str_cmp(st_data_t, st_data_t); +static int str_hash(st_data_t); static struct st_hash_type type_strhash = { - strcmp, - strhash, + str_cmp, + str_hash, }; static void rehash(st_table *); @@ -97,9 +97,7 @@ static const long primes[] = { 0 }; -static int -new_size(size) - int size; +static int new_size(int size) { int i; @@ -136,10 +134,8 @@ stat_col(void) } #endif -st_table* -st_init_table_with_size(type, size) - struct st_hash_type *type; - int size; +extern st_table* +st_init_table_with_size(struct st_hash_type* type, int size) { st_table *tbl; @@ -168,42 +164,38 @@ st_init_table_with_size(type, size) return tbl; } -st_table* -st_init_table(type) - struct st_hash_type *type; +extern st_table* +st_init_table(struct st_hash_type* type) { return st_init_table_with_size(type, 0); } -st_table* +extern st_table* st_init_numtable(void) { return st_init_table(&type_numhash); } -st_table* -st_init_numtable_with_size(size) - int size; +extern st_table* +st_init_numtable_with_size(int size) { return st_init_table_with_size(&type_numhash, size); } -st_table* +extern st_table* st_init_strtable(void) { return st_init_table(&type_strhash); } -st_table* -st_init_strtable_with_size(size) - int size; +extern st_table* +st_init_strtable_with_size(int size) { return st_init_table_with_size(&type_strhash, size); } -void -st_free_table(table) - st_table *table; +extern void +st_free_table(st_table* table) { register st_table_entry *ptr, *next; int i; @@ -241,11 +233,8 @@ st_free_table(table) }\ } while (0) -int -st_lookup(table, key, value) - st_table *table; - register st_data_t key; - st_data_t *value; +extern int +st_lookup(st_table* table, register st_data_t key, st_data_t* value) { unsigned int hash_val, bin_pos; register st_table_entry *ptr; @@ -279,11 +268,8 @@ do {\ table->num_entries++;\ } while (0) -int -st_insert(table, key, value) - register st_table *table; - register st_data_t key; - st_data_t value; +extern int +st_insert(register st_table* table, register st_data_t key, st_data_t value) { unsigned int hash_val, bin_pos; register st_table_entry *ptr; @@ -301,11 +287,8 @@ st_insert(table, key, value) } } -void -st_add_direct(table, key, value) - st_table *table; - st_data_t key; - st_data_t value; +extern void +st_add_direct(st_table* table, st_data_t key, st_data_t value) { unsigned int hash_val, bin_pos; @@ -315,8 +298,7 @@ st_add_direct(table, key, value) } static void -rehash(table) - register st_table *table; +rehash(register st_table* table) { register st_table_entry *ptr, *next, **new_bins; int i, new_num_bins, old_num_bins; @@ -346,9 +328,8 @@ rehash(table) table->bins = new_bins; } -st_table* -st_copy(old_table) - st_table *old_table; +extern st_table* +st_copy(st_table* old_table) { st_table *new_table; st_table_entry *ptr, *entry; @@ -387,11 +368,8 @@ st_copy(old_table) return new_table; } -int -st_delete(table, key, value) - register st_table *table; - register st_data_t *key; - st_data_t *value; +extern int +st_delete(register st_table* table, register st_data_t* key, st_data_t* value) { unsigned int hash_val; st_table_entry *tmp; @@ -429,12 +407,8 @@ st_delete(table, key, value) return 0; } -int -st_delete_safe(table, key, value, never) - register st_table *table; - register st_data_t *key; - st_data_t *value; - st_data_t never; +extern int +st_delete_safe(register st_table* table, register st_data_t* key, st_data_t* value, st_data_t never) { unsigned int hash_val; register st_table_entry *ptr; @@ -465,18 +439,15 @@ static int delete_never(st_data_t key __attribute__ ((unused)), st_data_t value, st_data_t never) #else -delete_never(key, value, never) - st_data_t key, value, never; +delete_never(st_data_t key, st_data_t value, st_data_t never) #endif { if (value == never) return ST_DELETE; return ST_CONTINUE; } -void -st_cleanup_safe(table, never) - st_table *table; - st_data_t never; +extern void +st_cleanup_safe(st_table* table, st_data_t never) { int num_entries = table->num_entries; @@ -484,11 +455,8 @@ st_cleanup_safe(table, never) table->num_entries = num_entries; } -int -st_foreach(table, func, arg) - st_table *table; - int (*func)(); - st_data_t arg; +extern int +st_foreach(st_table* table, int (*func)(st_data_t, st_data_t, st_data_t), st_data_t arg) { st_table_entry *ptr, *last, *tmp; enum st_retval retval; @@ -535,9 +503,17 @@ st_foreach(table, func, arg) } static int -strhash(string) - register const char *string; +str_cmp(st_data_t a1, st_data_t a2) +{ + const char* s1 = (const char* )a1; + const char* s2 = (const char* )a2; + return strcmp(s1, s2); +} + +static int +str_hash(st_data_t astring) { + const char* string = (const char* )astring; register int c; #ifdef HASH_ELFHASH @@ -574,15 +550,13 @@ strhash(string) } static int -numcmp(x, y) - long x, y; +numcmp(st_data_t x, st_data_t y) { return x != y; } static int -numhash(n) - long n; +numhash(st_data_t n) { return n; } @@ -16,8 +16,8 @@ typedef unsigned long long st_data_t; typedef struct st_table st_table; struct st_hash_type { - int (*compare)(); - int (*hash)(); + int (*compare)(st_data_t, st_data_t); + int (*hash)(st_data_t); }; struct st_table { @@ -34,13 +34,6 @@ enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK}; #ifndef _ # define _(args) args #endif -#ifndef ANYARGS -# ifdef __cplusplus -# define ANYARGS ... -# else -# define ANYARGS -# endif -#endif st_table *st_init_table _((struct st_hash_type *)); st_table *st_init_table_with_size _((struct st_hash_type *, int)); @@ -52,7 +45,7 @@ int st_delete _((st_table *, st_data_t *, st_data_t *)); int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t)); int st_insert _((st_table *, st_data_t, st_data_t)); int st_lookup _((st_table *, st_data_t, st_data_t *)); -int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t)); +int st_foreach _((st_table *, int (*)(st_data_t, st_data_t, st_data_t), st_data_t)); void st_add_direct _((st_table *, st_data_t, st_data_t)); void st_free_table _((st_table *)); void st_cleanup_safe _((st_table *, st_data_t)); diff --git a/src/unicode.c b/src/unicode.c index efe5f73..11ce874 100644 --- a/src/unicode.c +++ b/src/unicode.c @@ -58,17 +58,17 @@ static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = { 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, - 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0, - 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, - 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, + 0x0284, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x30e2, 0x01a0, 0x01a0, 0x00a8, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x10a0, 0x10a0, 0x01a0, 0x30e2, 0x01a0, 0x01a0, + 0x01a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, - 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, - 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 }; diff --git a/src/unicode_egcb_data.c b/src/unicode_egcb_data.c index fc17c65..ca0ab45 100644 --- a/src/unicode_egcb_data.c +++ b/src/unicode_egcb_data.c @@ -1,6 +1,6 @@ /* unicode_egcb_data.c: Generated by make_unicode_egcb_data.py. */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ * SUCH DAMAGE. */ -#define GRAPHEME_BREAK_PROPERTY_VERSION 140000 +#define GRAPHEME_BREAK_PROPERTY_VERSION 160000 /* CR @@ -43,7 +43,7 @@ V ZWJ */ -static int EGCB_RANGE_NUM = 1355; +static int EGCB_RANGE_NUM = 1376; static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x000000, 0x000009, EGCB_Control }, {0x00000a, 0x00000a, EGCB_LF }, @@ -81,7 +81,7 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x000829, 0x00082d, EGCB_Extend }, {0x000859, 0x00085b, EGCB_Extend }, {0x000890, 0x000891, EGCB_Prepend }, - {0x000898, 0x00089f, EGCB_Extend }, + {0x000897, 0x00089f, EGCB_Extend }, {0x0008ca, 0x0008e1, EGCB_Extend }, {0x0008e2, 0x0008e2, EGCB_Prepend }, {0x0008e3, 0x000902, EGCB_Extend }, @@ -163,16 +163,15 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x000c82, 0x000c83, EGCB_SpacingMark }, {0x000cbc, 0x000cbc, EGCB_Extend }, {0x000cbe, 0x000cbe, EGCB_SpacingMark }, - {0x000cbf, 0x000cbf, EGCB_Extend }, - {0x000cc0, 0x000cc1, EGCB_SpacingMark }, + {0x000cbf, 0x000cc0, EGCB_Extend }, + {0x000cc1, 0x000cc1, EGCB_SpacingMark }, {0x000cc2, 0x000cc2, EGCB_Extend }, {0x000cc3, 0x000cc4, EGCB_SpacingMark }, - {0x000cc6, 0x000cc6, EGCB_Extend }, - {0x000cc7, 0x000cc8, EGCB_SpacingMark }, - {0x000cca, 0x000ccb, EGCB_SpacingMark }, - {0x000ccc, 0x000ccd, EGCB_Extend }, + {0x000cc6, 0x000cc8, EGCB_Extend }, + {0x000cca, 0x000ccd, EGCB_Extend }, {0x000cd5, 0x000cd6, EGCB_Extend }, {0x000ce2, 0x000ce3, EGCB_Extend }, + {0x000cf3, 0x000cf3, EGCB_SpacingMark }, {0x000d00, 0x000d01, EGCB_Extend }, {0x000d02, 0x000d03, EGCB_SpacingMark }, {0x000d3b, 0x000d3c, EGCB_Extend }, @@ -202,7 +201,7 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x000eb1, 0x000eb1, EGCB_Extend }, {0x000eb3, 0x000eb3, EGCB_SpacingMark }, {0x000eb4, 0x000ebc, EGCB_Extend }, - {0x000ec8, 0x000ecd, EGCB_Extend }, + {0x000ec8, 0x000ece, EGCB_Extend }, {0x000f18, 0x000f19, EGCB_Extend }, {0x000f35, 0x000f35, EGCB_Extend }, {0x000f37, 0x000f37, EGCB_Extend }, @@ -234,10 +233,8 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x001160, 0x0011a7, EGCB_V }, {0x0011a8, 0x0011ff, EGCB_T }, {0x00135d, 0x00135f, EGCB_Extend }, - {0x001712, 0x001714, EGCB_Extend }, - {0x001715, 0x001715, EGCB_SpacingMark }, - {0x001732, 0x001733, EGCB_Extend }, - {0x001734, 0x001734, EGCB_SpacingMark }, + {0x001712, 0x001715, EGCB_Extend }, + {0x001732, 0x001734, EGCB_Extend }, {0x001752, 0x001753, EGCB_Extend }, {0x001772, 0x001773, EGCB_Extend }, {0x0017b4, 0x0017b5, EGCB_Extend }, @@ -277,29 +274,23 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x001ab0, 0x001ace, EGCB_Extend }, {0x001b00, 0x001b03, EGCB_Extend }, {0x001b04, 0x001b04, EGCB_SpacingMark }, - {0x001b34, 0x001b3a, EGCB_Extend }, - {0x001b3b, 0x001b3b, EGCB_SpacingMark }, - {0x001b3c, 0x001b3c, EGCB_Extend }, - {0x001b3d, 0x001b41, EGCB_SpacingMark }, - {0x001b42, 0x001b42, EGCB_Extend }, - {0x001b43, 0x001b44, EGCB_SpacingMark }, + {0x001b34, 0x001b3d, EGCB_Extend }, + {0x001b3e, 0x001b41, EGCB_SpacingMark }, + {0x001b42, 0x001b44, EGCB_Extend }, {0x001b6b, 0x001b73, EGCB_Extend }, {0x001b80, 0x001b81, EGCB_Extend }, {0x001b82, 0x001b82, EGCB_SpacingMark }, {0x001ba1, 0x001ba1, EGCB_SpacingMark }, {0x001ba2, 0x001ba5, EGCB_Extend }, {0x001ba6, 0x001ba7, EGCB_SpacingMark }, - {0x001ba8, 0x001ba9, EGCB_Extend }, - {0x001baa, 0x001baa, EGCB_SpacingMark }, - {0x001bab, 0x001bad, EGCB_Extend }, + {0x001ba8, 0x001bad, EGCB_Extend }, {0x001be6, 0x001be6, EGCB_Extend }, {0x001be7, 0x001be7, EGCB_SpacingMark }, {0x001be8, 0x001be9, EGCB_Extend }, {0x001bea, 0x001bec, EGCB_SpacingMark }, {0x001bed, 0x001bed, EGCB_Extend }, {0x001bee, 0x001bee, EGCB_SpacingMark }, - {0x001bef, 0x001bf1, EGCB_Extend }, - {0x001bf2, 0x001bf3, EGCB_SpacingMark }, + {0x001bef, 0x001bf3, EGCB_Extend }, {0x001c24, 0x001c2b, EGCB_SpacingMark }, {0x001c2c, 0x001c33, EGCB_Extend }, {0x001c34, 0x001c35, EGCB_SpacingMark }, @@ -343,7 +334,8 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x00a8ff, 0x00a8ff, EGCB_Extend }, {0x00a926, 0x00a92d, EGCB_Extend }, {0x00a947, 0x00a951, EGCB_Extend }, - {0x00a952, 0x00a953, EGCB_SpacingMark }, + {0x00a952, 0x00a952, EGCB_SpacingMark }, + {0x00a953, 0x00a953, EGCB_Extend }, {0x00a960, 0x00a97c, EGCB_L }, {0x00a980, 0x00a982, EGCB_Extend }, {0x00a983, 0x00a983, EGCB_SpacingMark }, @@ -352,7 +344,8 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x00a9b6, 0x00a9b9, EGCB_Extend }, {0x00a9ba, 0x00a9bb, EGCB_SpacingMark }, {0x00a9bc, 0x00a9bd, EGCB_Extend }, - {0x00a9be, 0x00a9c0, EGCB_SpacingMark }, + {0x00a9be, 0x00a9bf, EGCB_SpacingMark }, + {0x00a9c0, 0x00a9c0, EGCB_Extend }, {0x00a9e5, 0x00a9e5, EGCB_Extend }, {0x00aa29, 0x00aa2e, EGCB_Extend }, {0x00aa2f, 0x00aa30, EGCB_SpacingMark }, @@ -1196,7 +1189,9 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x010a3f, 0x010a3f, EGCB_Extend }, {0x010ae5, 0x010ae6, EGCB_Extend }, {0x010d24, 0x010d27, EGCB_Extend }, + {0x010d69, 0x010d6d, EGCB_Extend }, {0x010eab, 0x010eac, EGCB_Extend }, + {0x010efc, 0x010eff, EGCB_Extend }, {0x010f46, 0x010f50, EGCB_Extend }, {0x010f82, 0x010f85, EGCB_Extend }, {0x011000, 0x011000, EGCB_SpacingMark }, @@ -1224,7 +1219,8 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x011182, 0x011182, EGCB_SpacingMark }, {0x0111b3, 0x0111b5, EGCB_SpacingMark }, {0x0111b6, 0x0111be, EGCB_Extend }, - {0x0111bf, 0x0111c0, EGCB_SpacingMark }, + {0x0111bf, 0x0111bf, EGCB_SpacingMark }, + {0x0111c0, 0x0111c0, EGCB_Extend }, {0x0111c2, 0x0111c3, EGCB_Prepend }, {0x0111c9, 0x0111cc, EGCB_Extend }, {0x0111ce, 0x0111ce, EGCB_SpacingMark }, @@ -1232,10 +1228,9 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x01122c, 0x01122e, EGCB_SpacingMark }, {0x01122f, 0x011231, EGCB_Extend }, {0x011232, 0x011233, EGCB_SpacingMark }, - {0x011234, 0x011234, EGCB_Extend }, - {0x011235, 0x011235, EGCB_SpacingMark }, - {0x011236, 0x011237, EGCB_Extend }, + {0x011234, 0x011237, EGCB_Extend }, {0x01123e, 0x01123e, EGCB_Extend }, + {0x011241, 0x011241, EGCB_Extend }, {0x0112df, 0x0112df, EGCB_Extend }, {0x0112e0, 0x0112e2, EGCB_SpacingMark }, {0x0112e3, 0x0112ea, EGCB_Extend }, @@ -1247,11 +1242,24 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x011340, 0x011340, EGCB_Extend }, {0x011341, 0x011344, EGCB_SpacingMark }, {0x011347, 0x011348, EGCB_SpacingMark }, - {0x01134b, 0x01134d, EGCB_SpacingMark }, + {0x01134b, 0x01134c, EGCB_SpacingMark }, + {0x01134d, 0x01134d, EGCB_Extend }, {0x011357, 0x011357, EGCB_Extend }, {0x011362, 0x011363, EGCB_SpacingMark }, {0x011366, 0x01136c, EGCB_Extend }, {0x011370, 0x011374, EGCB_Extend }, + {0x0113b8, 0x0113b8, EGCB_Extend }, + {0x0113b9, 0x0113ba, EGCB_SpacingMark }, + {0x0113bb, 0x0113c0, EGCB_Extend }, + {0x0113c2, 0x0113c2, EGCB_Extend }, + {0x0113c5, 0x0113c5, EGCB_Extend }, + {0x0113c7, 0x0113c9, EGCB_Extend }, + {0x0113ca, 0x0113ca, EGCB_SpacingMark }, + {0x0113cc, 0x0113cd, EGCB_SpacingMark }, + {0x0113ce, 0x0113d0, EGCB_Extend }, + {0x0113d1, 0x0113d1, EGCB_Prepend }, + {0x0113d2, 0x0113d2, EGCB_Extend }, + {0x0113e1, 0x0113e2, EGCB_Extend }, {0x011435, 0x011437, EGCB_SpacingMark }, {0x011438, 0x01143f, EGCB_Extend }, {0x011440, 0x011441, EGCB_SpacingMark }, @@ -1288,10 +1296,10 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x0116ac, 0x0116ac, EGCB_SpacingMark }, {0x0116ad, 0x0116ad, EGCB_Extend }, {0x0116ae, 0x0116af, EGCB_SpacingMark }, - {0x0116b0, 0x0116b5, EGCB_Extend }, - {0x0116b6, 0x0116b6, EGCB_SpacingMark }, - {0x0116b7, 0x0116b7, EGCB_Extend }, - {0x01171d, 0x01171f, EGCB_Extend }, + {0x0116b0, 0x0116b7, EGCB_Extend }, + {0x01171d, 0x01171d, EGCB_Extend }, + {0x01171e, 0x01171e, EGCB_SpacingMark }, + {0x01171f, 0x01171f, EGCB_Extend }, {0x011722, 0x011725, EGCB_Extend }, {0x011726, 0x011726, EGCB_SpacingMark }, {0x011727, 0x01172b, EGCB_Extend }, @@ -1302,9 +1310,7 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x011930, 0x011930, EGCB_Extend }, {0x011931, 0x011935, EGCB_SpacingMark }, {0x011937, 0x011938, EGCB_SpacingMark }, - {0x01193b, 0x01193c, EGCB_Extend }, - {0x01193d, 0x01193d, EGCB_SpacingMark }, - {0x01193e, 0x01193e, EGCB_Extend }, + {0x01193b, 0x01193e, EGCB_Extend }, {0x01193f, 0x01193f, EGCB_Prepend }, {0x011940, 0x011940, EGCB_SpacingMark }, {0x011941, 0x011941, EGCB_Prepend }, @@ -1355,23 +1361,35 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x011d97, 0x011d97, EGCB_Extend }, {0x011ef3, 0x011ef4, EGCB_Extend }, {0x011ef5, 0x011ef6, EGCB_SpacingMark }, - {0x013430, 0x013438, EGCB_Control }, + {0x011f00, 0x011f01, EGCB_Extend }, + {0x011f02, 0x011f02, EGCB_Prepend }, + {0x011f03, 0x011f03, EGCB_SpacingMark }, + {0x011f34, 0x011f35, EGCB_SpacingMark }, + {0x011f36, 0x011f3a, EGCB_Extend }, + {0x011f3e, 0x011f3f, EGCB_SpacingMark }, + {0x011f40, 0x011f42, EGCB_Extend }, + {0x011f5a, 0x011f5a, EGCB_Extend }, + {0x013430, 0x01343f, EGCB_Control }, + {0x013440, 0x013440, EGCB_Extend }, + {0x013447, 0x013455, EGCB_Extend }, + {0x01611e, 0x016129, EGCB_Extend }, + {0x01612a, 0x01612c, EGCB_SpacingMark }, + {0x01612d, 0x01612f, EGCB_Extend }, {0x016af0, 0x016af4, EGCB_Extend }, {0x016b30, 0x016b36, EGCB_Extend }, + {0x016d63, 0x016d63, EGCB_V }, + {0x016d67, 0x016d6a, EGCB_V }, {0x016f4f, 0x016f4f, EGCB_Extend }, {0x016f51, 0x016f87, EGCB_SpacingMark }, {0x016f8f, 0x016f92, EGCB_Extend }, {0x016fe4, 0x016fe4, EGCB_Extend }, - {0x016ff0, 0x016ff1, EGCB_SpacingMark }, + {0x016ff0, 0x016ff1, EGCB_Extend }, {0x01bc9d, 0x01bc9e, EGCB_Extend }, {0x01bca0, 0x01bca3, EGCB_Control }, {0x01cf00, 0x01cf2d, EGCB_Extend }, {0x01cf30, 0x01cf46, EGCB_Extend }, - {0x01d165, 0x01d165, EGCB_Extend }, - {0x01d166, 0x01d166, EGCB_SpacingMark }, - {0x01d167, 0x01d169, EGCB_Extend }, - {0x01d16d, 0x01d16d, EGCB_SpacingMark }, - {0x01d16e, 0x01d172, EGCB_Extend }, + {0x01d165, 0x01d169, EGCB_Extend }, + {0x01d16d, 0x01d172, EGCB_Extend }, {0x01d173, 0x01d17a, EGCB_Control }, {0x01d17b, 0x01d182, EGCB_Extend }, {0x01d185, 0x01d18b, EGCB_Extend }, @@ -1388,9 +1406,12 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x01e01b, 0x01e021, EGCB_Extend }, {0x01e023, 0x01e024, EGCB_Extend }, {0x01e026, 0x01e02a, EGCB_Extend }, + {0x01e08f, 0x01e08f, EGCB_Extend }, {0x01e130, 0x01e136, EGCB_Extend }, {0x01e2ae, 0x01e2ae, EGCB_Extend }, {0x01e2ec, 0x01e2ef, EGCB_Extend }, + {0x01e4ec, 0x01e4ef, EGCB_Extend }, + {0x01e5ee, 0x01e5ef, EGCB_Extend }, {0x01e8d0, 0x01e8d6, EGCB_Extend }, {0x01e944, 0x01e94a, EGCB_Extend }, {0x01f1e6, 0x01f1ff, EGCB_Regional_Indicator }, diff --git a/src/unicode_fold1_key.c b/src/unicode_fold1_key.c index 58ff13e..51edf13 100644 --- a/src/unicode_fold1_key.c +++ b/src/unicode_fold1_key.c @@ -9,7 +9,7 @@ /* This gperf source file was generated by make_unicode_fold_data.py */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,12 +35,12 @@ */ #include "regint.h" -#define TOTAL_KEYWORDS 1396 +#define TOTAL_KEYWORDS 1423 #define MIN_WORD_LENGTH 3 #define MAX_WORD_LENGTH 3 #define MIN_HASH_VALUE 4 -#define MAX_HASH_VALUE 1868 -/* maximum key range = 1865, duplicates = 0 */ +#define MAX_HASH_VALUE 1846 +/* maximum key range = 1843, duplicates = 0 */ #ifdef __GNUC__ __inline @@ -55,32 +55,32 @@ hash(OnigCodePoint codes[]) { static const unsigned short asso_values[] = { - 4, 2, 15, 124, 1, 9, 1317, 928, 1309, 908, - 1306, 248, 91, 245, 1477, 216, 99, 171, 1474, 26, - 1301, 885, 1269, 827, 144, 167, 1473, 122, 1469, 745, - 0, 27, 1457, 32, 1447, 451, 131, 411, 779, 3, - 768, 207, 669, 463, 5, 95, 1030, 198, 763, 149, - 1019, 1443, 1011, 1440, 575, 1375, 755, 36, 744, 1079, - 1299, 1432, 1288, 1098, 1172, 1423, 909, 1000, 556, 724, - 289, 194, 713, 1415, 700, 1364, 687, 1497, 536, 1459, - 528, 626, 509, 915, 486, 867, 431, 706, 662, 104, - 454, 818, 642, 78, 992, 207, 1280, 102, 1262, 693, - 65, 229, 298, 143, 45, 1250, 412, 1404, 402, 1383, - 25, 1120, 632, 555, 614, 1368, 337, 29, 327, 1358, - 585, 1243, 475, 1352, 242, 871, 958, 218, 775, 556, - 1221, 803, 1109, 167, 969, 240, 1233, 174, 1353, 130, - 1438, 119, 1198, 6, 1490, 7, 1480, 1869, 1340, 95, - 317, 0, 1337, 1869, 955, 66, 162, 178, 275, 57, - 645, 268, 675, 371, 947, 29, 17, 6, 937, 346, - 1219, 1168, 1211, 123, 1322, 1110, 864, 963, 1159, 740, - 810, 613, 1127, 1461, 900, 408, 855, 600, 604, 211, - 844, 184, 841, 185, 833, 442, 822, 1404, 803, 1294, - 1107, 1104, 1068, 1090, 799, 267, 1066, 1063, 358, 471, - 1062, 493, 258, 1055, 596, 1049, 567, 980, 172, 798, - 155, 794, 231, 790, 136, 1032, 76, 787, 85, 1057, - 124, 1051, 116, 423, 202, 1050, 188, 1308, 394, 1048, - 381, 1009, 375, 1203, 732, 996, 366, 424, 441, 345, - 58, 306, 1042, 892, 548, 35, 1256, 249, 386 + 4, 2, 15, 124, 1, 9, 1398, 671, 1395, 664, + 1384, 84, 91, 75, 1529, 74, 99, 54, 1525, 26, + 1379, 552, 1374, 431, 144, 50, 1517, 24, 250, 557, + 0, 27, 1506, 262, 1505, 197, 131, 1310, 782, 350, + 781, 32, 771, 588, 5, 95, 1079, 463, 770, 455, + 1074, 1496, 824, 1495, 584, 1484, 762, 1465, 751, 1559, + 1372, 1339, 1350, 1365, 1347, 732, 1062, 951, 551, 701, + 543, 1334, 657, 1479, 743, 108, 724, 1549, 530, 7, + 522, 252, 503, 1541, 484, 1540, 425, 1532, 709, 1232, + 466, 1147, 666, 1138, 1041, 845, 1325, 36, 1317, 465, + 65, 1526, 301, 690, 45, 1301, 401, 1450, 381, 1437, + 25, 994, 636, 603, 591, 1281, 176, 997, 339, 1215, + 446, 1009, 571, 1175, 616, 473, 623, 386, 414, 1394, + 921, 1489, 1022, 612, 613, 173, 1002, 74, 308, 327, + 1471, 291, 1434, 202, 908, 1, 147, 1847, 1426, 226, + 1222, 73, 56, 1847, 1423, 48, 1294, 292, 1267, 14, + 275, 315, 205, 410, 990, 4, 17, 6, 974, 382, + 1255, 675, 1225, 26, 360, 1437, 886, 1268, 1189, 37, + 863, 267, 1167, 1190, 963, 1178, 936, 1133, 603, 137, + 933, 393, 897, 71, 853, 1427, 843, 1161, 831, 1111, + 1165, 1128, 1156, 1140, 830, 686, 1155, 1125, 507, 1116, + 1123, 818, 237, 1064, 576, 1046, 562, 1033, 196, 816, + 167, 815, 155, 793, 136, 131, 76, 795, 85, 1112, + 124, 1110, 116, 285, 232, 1026, 188, 1383, 371, 1087, + 350, 1045, 333, 1359, 812, 354, 270, 407, 801, 99, + 565, 555, 1104, 128, 1097, 31, 1419, 130, 1414 }; return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+3] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)]; } @@ -92,2912 +92,2991 @@ onigenc_unicode_fold1_key(OnigCodePoint codes[]) { -1, -1, -1, -1, - 1906, + 1915, - 1867, + 1876, 210, 171, - 3438, + 3453, - 1927, + 1936, - 3279, + 3558, 231, - 366, + 993, - 1315, + 1321, - 1276, + 1282, - 3144, + 3153, - 3270, + 2669, - 3699, + 3714, - 1336, + 1342, - 541, + 544, - 502, + 505, - 2096, + 2105, - 1135, + 1141, - 387, + 390, - 559, + 562, - 703, + 3693, - 2795, + 2804, - 3300, + 3309, - 3696, + 3711, - 2027, + 2036, - 1063, + 1069, 324, - 2240, + 2249, 27, - 2291, + 1612, - 3240, + 3249, - 1612, + 1618, - 49, + 3732, - 1378, + 1384, - 3477, + 159, - 2243, + 2252, - 916, + 1047, - 1399, + 3405, - 159, + 402, - 658, + 664, - 2594, + 2723, - 3087, + 3096, - 1609, + 1615, - 670, + 3750, - 2018, + 2027, - 1054, + 1060, 315, - 4050, + 4131, 12, - 2723, + 2732, - 3231, + 3240, - 4071, + 1636, - 2261, + 2270, - 1360, + 1366, - 1606, + 3681, - 2387, + 2099, - 3648, + 1120, - 2222, + 372, - 1261, + 2306, - 643, + 649, - 2453, + 2783, - 3078, + 3087, - 2321, + 1654, - 3678, + 2432, - 2011, + 2020, - 1047, + 1053, 309, - 4032, + 4113, 0, - 2720, + 2729, - 3225, + 3234, - 2372, + 2381, - 3666, + 3132, - 1348, + 1354, - 3576, + 3591, - 2186, + 2195, - 1225, + 1231, - 456, + 459, - 1029, + 3288, - 637, + 640, - 2885, + 2894, - 3072, + 3081, - 2702, + 1465, - 3582, + 3597, - 2189, + 2198, - 1228, + 1234, - 459, + 462, - 4020, + 4101, 80, - 2888, + 2897, - 1879, + 1888, - 2360, + 2369, 183, - 3441, + 3456, - 2984, + 2993, - 2906, + 2915, - 369, + 1696, - 3011, + 3660, - 1885, + 1894, - 1288, + 1294, 189, - 1789, + 1795, - 1041, + 144, - 2909, + 2918, - 1017, + 3366, - 514, + 517, - 2714, + 3546, - 1294, + 1300, - 2690, + 980, - 706, + 273, - 1795, + 1801, - 2438, + 2447, - 3432, + 2657, - 520, + 523, - 3594, + 3609, - 2195, + 2204, - 1234, + 1240, - 465, + 468, - 619, + 2984, 92, - 2951, + 2960, - 2987, + 2996, - 3588, + 3603, - 2192, + 2201, - 1231, + 1237, - 462, + 465, - 2993, + 3672, 86, - 2891, + 2900, - 3717, + 3588, - 1915, + 1924, - 363, + 153, 219, - 697, + 165, - 3570, + 3585, - 2183, + 2192, - 1222, + 1228, - 453, + 456, - 3420, + 3393, - 1324, + 1330, - 2882, + 2891, - 1807, + 1813, - 2441, + 2450, - 1897, + 1906, - 691, + 2978, 201, - 9, - - 3453, + 2090, - 1630, + 1111, - 1801, + 2954, - 2237, + 1807, - 1357, + 2246, - 1306, + 2774, - 3558, + 1312, - 2177, + 3579, - 1216, + 2189, - 1579, + 1225, - 2282, + 1792, - 532, + 2291, - 2876, + 535, - 3348, + 2888, - 1783, + 3363, - 1120, + 1789, - 375, + 1684, - 3861, + 3123, - 4029, + 3876, - 2780, + 3573, - 3285, + 2186, - 3669, + 1222, - 2369, + 2948, - 2276, + 2942, - 2174, + 2285, - 1213, + 2885, - 3867, + 3360, - 1507, + 3882, - 1447, + 1513, - 2873, + 2045, - 3345, + 1078, - 3129, + 333, - 378, + 2936, - 1771, + 46, - 682, + 1783, 1459, + -1, - 1513, + 1519, - 3672, + 1402, - 2930, + 2939, - 3606, + 3621, - 2201, + 2210, - 1240, + 1246, - 471, + 474, - 3765, + 673, 105, - 3519, + 1777, - 2942, + 2951, - 962, + 798, - 267, + 2183, - 3447, + 1219, - 1765, + 1582, - 2636, + 4149, - 857, + 863, - 3600, + 2882, - 2198, + 3357, - 1237, + 2393, - 468, + 366, - 3879, + 3894, - 99, + 1135, - 2543, + 2552, - 1035, + 3279, - 860, + 866, - 1684, + 2798, - 1690, + 3303, - 2708, + 3702, - 3873, + 3888, - 1819, + 1825, - 1525, + 1531, - 2549, + 2558, - 2975, + 709, - 4014, + 4095, - 2903, + 2912, - 348, + 3873, + -1, - 2339, + 1771, - 631, + 1525, - 1519, + 2288, - 3252, + 3870, - 3855, + 3011, - 3002, + 1594, - 1429, + 369, - 1813, + 1600, - 3366, + 1510, - 3564, + 3615, - 2180, + 2207, - 1219, + 1243, - 3, + 471, - 2297, + 1507, - 1501, + 99, - 2879, + 2174, - 1678, + 1210, - 1351, + 2975, - 2966, + 872, - 866, + 712, - 4101, + 2873, - 2048, + 3354, - 1084, + 3864, + -1, - 3843, + 3996, - 2417, + 2570, - 71, + 869, - 2561, + 3939, - 863, + 1912, - 1453, + 3564, - 2483, + 207, - 1420, + 999, - 4023, + 1501, - 165, + 2564, - 1489, + 3858, - 2555, + 2675, - 2363, + 1819, - 1777, + 1318, - 2165, + 860, - 1204, + 784, - 854, + 2549, - 3837, + 1753, - 2969, + 2441, - 2864, + 541, - 3342, + 1495, - 4092, + 2546, + -1, - 2945, + 3651, - 2537, + 2225, - 1192, + 1261, - 2408, + 486, - 381, + 4092, - 1483, + 135, - 2495, + 2909, - 3339, + 1132, - 2474, + 3906, - 3684, + 4089, - 1123, + 857, - 3891, + 2795, - 4008, + 3300, - 848, + 3696, - 2783, + 3411, - 3288, + 3612, - 3675, + 3852, - 712, + 2540, - 1747, + 1543, - 2432, + 4215, - 2525, + 96, - 1537, + 715, - 3516, + 854, - 1966, + 3008, - 959, + 1660, - 3885, + 378, - 3132, + 1489, - 1726, + 1855, - 2633, + 4083, - 3180, + 2534, - 845, + 3687, - 3996, + 721, - 2015, + 2024, - 1050, + 1056, 312, - - 1531, + -1, 6, - 2519, + 703, - 3228, + 3237, - 3651, + 2078, - 3026, + 4077, - 1354, + 1360, - 785, + 1816, - 792, + 878, - 147, + 2762, - 2939, + 3276, - 872, + 4206, - 640, + 643, - 3990, + 384, - 3075, + 3084, - 2336, + 2582, - 2087, + 851, - 1111, + 3900, - 2573, + 3699, - 3849, + 694, - 4026, + 4107, - 2771, + 3111, - 3276, + 3834, - 3363, + 2528, - 2366, + 2375, - 869, + 363, - 2039, + 718, - 1075, + 1537, - 336, + 3639, - 1495, + 2219, - 52, + 1255, - 2738, + 483, - 2567, + 1471, - 3120, + 123, - 778, + 4071, - 1402, + 2048, - 2036, + 1081, - 1072, + 336, - 333, + 697, - 2933, + 52, - 46, + 2747, - 727, + 2987, + -1, -1, - 2927, + 1408, - 3645, - -1, + 3633, - 1396, + 2216, - 3819, + 1252, - 1594, + 480, - 144, + 3648, - 4074, + 117, + -1, - 3351, + 875, - 667, + 3002, - 3705, + 132, - 2390, + 1843, - 851, + 2117, - 3798, + 1153, - 1465, + 4155, - 2159, + 2576, + -1, - 2456, + 2816, - 4068, - -1, + 2399, - 2531, + 3735, - 2858, + 2510, - 2384, + 1573, - 3636, + 3627, - 2216, + 2213, - 1255, + 1249, - 483, + 477, - 2450, + 3897, - 135, + 111, - 2900, + 1837, - 1618, + 2300, - 4002, + 4218, - 3624, + 4053, - 2210, + 1852, - 1249, + 2033, - 480, + 1066, - 3690, + 321, - 123, + 1534, - 3618, + 4296, - 2207, + 1639, - 1246, + 3246, - 477, + 348, - 1735, + 3720, - 117, + 1378, - 2234, + 754, - 1273, + 3261, + -1, - 499, + 893, - 2501, + 1435, - 168, + 658, - 830, + 1831, - 1849, + 3093, + -1, - 3612, + 3780, - 2204, + 2030, - 1243, + 1063, - 474, + 318, - 1600, + 4125, - 111, - -1, + 18, - 3972, + 3654, - 1837, + 3243, - 2024, + 1624, - 1060, + 4182, - 321, + 1372, - 1582, + 138, - 4215, + 3945, - 1831, + 2426, - 3237, + 2063, - 3951, + 1096, - 405, + 2573, - 1372, + 3705, - 2021, + 3090, - 1057, + 1690, + -1, -1, - 318, + 3924, - 3750, + 1438, - 18, + 4119, - 652, + 1999, - 3234, + 1014, - 3084, + 288, - 1825, + 2387, - 1366, + 682, - 3597, + 2690, - 3639, + 3213, - 4119, + 1561, - 4044, + 1858, + -1, - 4134, + 2504, - 96, + 1606, - 138, + 4185, - 3081, + 2459, - 890, + 3918, - 1990, + 616, - 1008, + 2429, - 288, + 3060, - 1666, + 3933, + -1, - 4038, + 3020, - 2681, + 2051, - 3204, + 1084, - 2285, + 339, - 2378, + 1555, - 3642, + 59, + -1, - 2219, + 2357, - 1258, + 1570, - 487, + 3468, - 1576, + 1414, - 141, + 3426, - 613, + 887, - 3807, + 2282, - 3051, + 3972, - 1810, + 3912, - 1852, + 679, - 718, + 3462, + + 724, -1, -1, - 1996, + 2005, - 1020, + 1026, 294, - 4173, - - 2348, + 4161, - 2693, + 1549, - 3210, + 2702, - 715, + 3219, - 3435, - -1, + 2405, - 3909, + 884, - 1567, + 345, + -1, - 3411, + 74, - 1855, + 890, - 1696, + 3258, - 622, + 637, - 3903, + 625, - 3057, + 1429, - 1198, + 3066, - 429, + 1996, - 1555, + 1008, - 2045, + 285, - 1081, + 3975, - 342, + 4098, - 2279, + 2684, - 65, + 3210, + -1, - 1549, + 2366, - 2354, + 2363, + -1, - 839, + 881, - 3897, + 4176, - 1414, + 3438, + -1, - 1597, + 610, - 1987, + 2420, - 1002, + 3057, - 285, + 3567, - 3423, + 1993, - 887, + 1002, - 2675, + 282, - 3201, + 1576, - 1543, - -1, + 2168, - 432, - -1, + 2678, - 1738, + 3207, - 4086, + 733, - 881, + 2354, - 3960, + 2867, - 607, + 3351, - 2402, + 2453, - 3048, + 3420, -1, - 878, + 791, - 3005, + 604, - 2468, + 3951, - 3552, + 3054, - 1984, + 3561, + + 1990, 996, - 282, + 279, + -1, - 3882, + 2972, - 2345, + 2672, - 2669, + 3204, - 3198, + 3555, - 4137, - -1, + 1987, - 875, + 990, - 1744, + 276, - 2429, + 1741, - 3405, + 3414, - 1528, + 2666, - 1570, + 3201, 601, - -1, - - 3045, - - 3546, - 1981, - - 990, - - 279, + 736, - 3768, + 3051, + -1, - 762, + 1864, - 2663, + 3531, - 3195, + 1975, - 3540, + 965, - 1978, + 598, - 984, + 3966, - 276, - -1, + 3047, - 1573, + 2642, - 2657, + 3189, - 3192, + 3525, - 598, + 1972, - 3399, + 956, - 3042, + 3408, - 2999, + 3666, + -1, - 3660, + 2636, - 2228, + 3186, - 1267, + 1873, - 493, + 147, - 595, + 3035, - 156, + 3402, - 3038, + 2180, - 2564, + 1216, - 3510, + 3663, - 1963, + 2231, - 950, + 1267, - 351, + 2879, - 37, + 3032, + -1, - 3810, + 2345, - 2627, + 2054, - 3177, + 1087, - 3393, + 342, - 1387, + 3378, - 1435, + 65, - 798, + 2177, - 2171, + 1213, - 1210, - -1, + 2339, - 4149, + 2276, - 3387, + 1420, - 2870, + 2876, - 3023, + 3372, - 3468, + 3483, - 1942, + 1951, - 906, + 912, 243, - 4059, + 3450, - 4107, + 1765, - 2585, + 2594, - 3156, + 3165, - 3816, + 2042, - 2330, + 1075, - 3921, + 330, - 2042, + 4167, - 1078, + 40, - 339, + 3822, - 2489, + 3255, - 59, + 2411, - 574, + 577, - 3357, + 1396, - 1462, + 2465, 1759, - 1408, - - 842, + 2138, - 2168, + 1174, - 1207, - -1, + 411, - 721, + 670, - 673, + 37, - 2867, + 2837, - 2312, - -1, + 3327, - 2129, + 3774, - 1168, + 2321, - 408, + 1393, - 3756, + 2072, - 4080, + 4143, - 2828, + 357, - 3318, + 2057, - 3759, + 1090, - 2396, + 2756, - 3963, + 3270, - 2033, + 71, - 1069, + 1453, - 330, + 1456, - 2462, + 2060, - 40, + 1093, - 4143, + 1426, - 3246, - -1, + 4140, - 1753, + 688, - 1390, + 691, - 2498, + 1681, - 3549, + 3105, - 1672, + 845, - 993, + 1432, - 4125, + 4200, + -1, -1, - 664, + 2039, - 1675, + 1072, - 2666, + 327, - 2030, + 4173, - 1066, + 34, + -1, - 327, + 3252, - 3969, + 2417, - 34, + 3957, - 4062, + 1390, - 3243, + 4179, - 1654, - -1, + 2966, - 1384, + 2492, - 1999, + 4041, - 1026, + 2423, - 297, - -1, + 3846, - 1126, + 2990, - 2699, + 3099, - 3213, + 1588, + -1, - 3090, + 3537, - 2786, + 1978, - 3291, + 971, - 3681, - -1, -1, + 4137, + -1, - 4056, + 1483, - 3831, + 2648, - 625, + 3192, - 2444, + 1585, - 3060, + 3840, - 709, + 2008, - 3396, + 1032, - 1993, + 297, + -1, -1, - 1014, + 2708, - 291, + 3222, -1, - 1477, + 3038, - 2687, + 1477, - 3207, + 2495, - 1924, + 396, -1, - 228, + 896, + -1, - 893, - -1, -1, + 628, - 3141, + 3726, - 1129, + 3069, - 3429, + 2351, - 1333, + 3990, - 3054, + 3993, - 2789, + 1198, - 3294, + 3384, - 3687, + 3963, -1, - 556, + 2264, - 3825, + 3348, - 3534, + 2522, - 1975, + 9, - 977, + 727, - 2351, - -1, -1, + 3969, - 2651, + 3444, - 3189, - -1, + 2258, - 1471, + 1363, - 2300, + 3528, - 3417, + 1630, - 2513, + 960, - 3528, + 264, - 1972, + 4065, - 971, + 646, - 592, - -1, + 2639, - 3035, + 2516, - 2645, + 2471, - 3186, + 2002, - 1011, + 1020, - 634, + 291, - 3984, + 1732, - 4212, + 4110, - 2684, + 2696, - 3522, + 3216, - 1969, + 589, - 965, + 2378, - 589, + 4059, + -1, -1, -1, -1, - 4017, + 3549, - 3032, + 1984, - 2639, + 983, - 3183, + 3063, - 2357, + 779, - 616, + 2342, - 3381, + 2660, - 3513, + 3198, - 768, + 3516, - 954, + 3375, - 264, + 946, - 2507, + 258, - 773, + 2486, - 2630, + 2360, - 3029, + 2627, - 3630, + 4230, - 2213, + 595, - 1252, - -1, + 3432, - 3375, + 3044, - 129, + 3543, - 748, + 1981, - 3978, + 977, + -1, - 586, + 4224, - 2342, + 730, - 3414, + 2654, - 399, + 3195, - 3480, + 3495, - 1948, + 1957, - 919, + 925, 249, + -1, - 3735, + 3396, - 3369, + 2606, - 2597, + 3171, - 3162, + 592, - 2333, + 2930, - 1864, - -1, + 3041, - 3474, + 3489, - 1945, + 1954, - 913, + 919, 246, + -1, - 1843, + 2924, - 3360, + 2600, - 2591, + 3168, - 3159, + 3465, - 3450, + 1942, 1933, - 3017, - 237, - 1648, + 228, - 2423, + 3390, - 1921, + 3813, + + 3159, 3150, - 225, + 2333, - 2324, + 1348, - 1342, - -1, + 1339, - 3138, + 1930, - 2054, + 1927, - 1090, + 225, - 1330, + 222, - 565, + 568, - 1918, - -1, + 559, - 222, + 3147, - 2318, + 3144, - 553, + 2327, - 1432, + 1336, - 3135, + 1333, - 3579, + 3582, -1, - 1327, + 3594, - 3567, + 453, - 676, + 556, + + 553, + + 2309, 77, - 450, + 3657, - 3561, + 2228, - 550, + 1264, - 2294, + 490, + -1, - 447, + 141, + -1, -1, - 3555, + 2303, - 4104, + 2297, - 2153, + 836, - 444, + 3645, - 421, + 2222, - 2420, + 1258, - 2144, + 3576, - 2852, + 3570, - 354, + 129, - 2288, + 450, - 2486, + 447, - 2843, + 1786, - 3333, + 435, - 2117, + 1798, - 1156, + 2444, - 1441, + 3477, - 1792, + 1948, - 2435, + 905, - 2816, + 4293, - 1780, + 1861, - 3738, + 4032, - 679, + 2588, - 1023, + 2162, - 1774, + 2153, - 3915, + 424, - 2141, + 2477, - 2696, + 4287, - 1768, + 2861, - 1723, - -1, + 2852, - 2840, + 3342, - 3330, + 1849, - 1705, + 574, -1, - 1561, + 1780, - 4113, + 1774, - 2138, + 2150, - 1177, + 1750, - 414, + 2438, - 1651, + 1041, + -1, - 2426, + 2849, - 2837, + 3339, - 3327, + 2717, - 2981, + 2315, + -1, - 2135, + 2147, - 1174, + 1183, - 411, + 417, - 2132, + 1729, - 1171, + 1711, - 2834, + 2846, - 3324, + 3336, - 1699, + 634, + -1, -1, - 2831, + 2126, - 3321, + 1162, - 3762, - -1, + 3029, - 3426, + 3026, - 2273, + 4245, - 2126, + 2825, - 1165, - -1, + 1705, - 3020, + 3753, - 1693, + 4212, + -1, -1, -1, -1, - 2825, + 3023, - 3315, + 3017, - 3753, + 2483, - 3014, + 1699, + -1, -1, - 2111, + 3867, + -1, - 1150, + 3879, - 396, + 2489, - 1687, + 2120, - 1005, + 1156, - 2810, + 399, - 1681, + 1657, - 3726, + 2435, - 2678, + 2819, - 345, + 1504, - 3008, + 3741, - 74, + 1516, + -1, -1, - 3864, + 2144, - 3249, - -1, + 1180, - 3852, + 414, - 1423, + 1579, - 1669, + 3930, - 610, + 2843, - 3846, + 3333, - 4131, + 3861, + + 3855, -1, - 1510, + 3831, - 3840, + 2087, - 3795, + 1108, + -1, - 1498, + 1567, - 1639, + 1645, - 3657, + 2771, - 3777, + 1498, 1492, + -1, - 4095, + 1468, -1, - 153, + 3810, - 1486, + 3792, - 2411, + 2066, - 730, + 1099, - 2123, + 1693, - 1162, + 2543, - 3408, + 3120, - 2477, + 2555, + + 3264, + -1, -1, + + 1444, -1, - 2822, + 3786, - 3312, + 2141, - 3747, + 1177, - 3504, + 4086, - 1960, + 2135, - 944, + 1171, - 3771, + 2840, - 2267, - -1, + 3330, - 2621, + 3777, - 3174, + 2834, - 999, + 3324, + + 3768, + + 4191, -1, - 2546, + 2537, + + 2531, -1, - 2672, + 2507, - 2534, + 3522, + -1, - 2963, + 953, - 826, + 261, - 580, + 832, - 2528, + 812, - 1663, + 2633, - 806, - -1, + 4080, - 2522, + 4074, - 604, + 1687, + + 4050, -1, - 4005, + 1675, + + 2132, + + 1168, -1, - 745, + 586, - 2255, + 808, - 3999, + 2831, - 2099, + 3321, - 1138, + 3762, - 390, + 1870, - 3993, + 4029, - 3948, + 4011, - 2798, + 2108, - 3303, + 1144, - 3702, + 393, - 3930, + 801, - 802, + 2336, - 2093, + 2807, - 1132, + 3312, - 384, + 3717, + -1, -1, - 3402, + 4290, + + 4005, -1, - 2792, + 751, + -1, - 3297, + 1669, - 3693, + 2102, - 2249, + 1138, - 1117, + 387, + -1, - 795, + 3981, - 2051, + 2801, - 1087, + 3306, - 2777, + 3708, - 3282, + 31, - 3663, + 2744, - 1615, + 1621, - 3924, + 49, - 789, + 2075, + + 1387, + + 360, -1, - 1426, + 1405, - 782, + 2759, - 2063, + 3273, - 3729, + 667, - 357, + 742, - 3126, + 1462, - 1603, + 676, - 2747, + 62, - 3261, - -1, + 2750, - 4206, + 4278, - 1450, + 1609, - 765, + 4134, - 2957, + 1417, - 4098, + 3108, - 441, + 4152, + + 795, + + 2069, + + 1102, + + 2396, + + 3618, -1, - 685, + 2753, - 2414, + 3267, + -1, - 3096, + 102, - 1858, + 1450, - 736, + 4164, + -1, - 1642, + 4257, - 2480, + 444, - 1588, + 2408, + -1, -1, - 2002, + 3102, + -1, - 1032, + 2011, + + 1038, 300, - 3633, + 3636, - 4164, + 4251, - 2705, + 2714, - 3216, + 3225, - 3507, + 441, - 132, + 120, - 947, + 2906, + -1, - 261, + 1822, - 2921, + 4227, + + 4209, -1, - 2624, + 631, - 1762, + 788, - 628, + 3072, - 3621, + 1768, - 3063, + 771, - 3462, + 3519, - 1939, + 1969, - 899, + 950, - 120, + 4203, - 2897, + 4197, - 583, + 438, - 2579, + 2630, + + 3183, -1, - 3456, + 3942, - 1936, - -1, + 1840, + + 1762, + + 3471, + + 1945, + + 3999, 240, - 1846, + 583, - 2915, + 3459, - 758, + 1939, - 3153, + 3162, - 571, + 234, - 2327, + 3954, + + 1351, + -1, + + 3156, + + 3630, + + 764, 1345, - 3444, + 571, - 1930, + 1756, - 3573, + 114, - 234, + 2903, -1, - 568, + 565, - 1834, + 3987, - 3147, - -1, + 3675, - 2306, + 2237, - 1339, + 1273, + + 496, + + 3369, + + 156, -1, - 3654, + 3669, - 2225, + 2234, - 1264, + 1270, - 490, + 493, - 562, + 4239, 150, - 3615, + 3606, -1, - 3603, + 3600, - 3591, + 1189, - 438, + 1834, - 114, + 89, - 2894, + 3903, - 102, + 83, - 89, + 1204, - 3585, + 432, + -1, -1, -1, - 435, + 3849, - 1786, - -1, -1, + 2171, - 83, + 1207, - 2162, + 1540, 1201, - 1195, - - 425, + 428, - 2156, - - 2861, + 2870, - 2150, + 1192, - 3834, + 420, -1, - 2855, + 1486, -1, - 2849, + 3921, - 1828, + 3843, - 1756, + 1810, - 1816, + 1714, 1804, - 3483, + 1035, - 1480, + 3771, - 922, + 1195, - 1750, + 1744, - 724, + 2711, - 1798, + 1558, - 2600, + 1480, - 3918, + 3345, -1, - 739, + 1029, - 1741, + 1747, + -1, - 1732, + 1738, - 4128, + 2705, - 1189, + 3837, - 1729, - -1, + 1720, - 1717, + 2165, - 1564, + 2159, - 3336, + 2579, + -1, - 3495, + 1678, - 3906, + 2864, - 934, + 2858, - 255, - -1, -1, + 1186, - 2612, - -1, + 1474, - 1186, + 2525, - 417, + 2156, - 2147, + 1726, - 1552, + 2129, - 2060, + 1165, - 1096, + 3447, - 2516, + 2855, + -1, - 2846, + 2828, - 577, + 1867, - 2744, + 3756, - 3258, + 4068, - 1720, + 3915, - 3723, + 2519, - 1444, - -1, + 3441, - 884, + 68, - 3858, + 408, - 3987, - -1, + 1735, - 31, + 1723, - 2735, + 2501, - 3093, + 1423, - 2120, + 3765, - 1159, + 1552, - 1381, + 1708, - 1714, + 4062, - 1504, + 2123, - 2819, + 1159, - 1711, + 1717, - 3741, + 405, - 661, + 1663, - 1636, + 2822, - 3900, + 2513, - 3828, + 3747, - 3888, + 3759, - 3876, + 4170, - 1585, - -1, + 3891, - 4053, + 3795, - 3822, + 3885, - 4209, + 2414, - 3870, + 1591, - 1546, + 1672, - 1474, + 3825, - 1534, + 4056, + -1, -1, + + 1528, + -1, 1522, - 3813, + 3828, + -1, - 3804, + 3819, - 1657, + 1651, - 1468, + 1666, 3801, + -1, - 1516, - - 3789, + 56, -1, - 2114, + 899, - 1153, - -1, -1, + 2096, - 2540, + 1117, - 2813, + 1411, - 4176, + 2114, - 3732, - -1, -1, -1, + 1150, - 393, + 2780, - 3498, + 3285, - 1957, + 3807, - 937, + 2813, - 4011, + 3318, - 3711, + 3729, - 4170, + 1023, - 2615, + 4284, - 3171, + 816, + -1, - 3792, + 2699, - 2510, + 4158, - 2570, + 3129, - 2558, - -1, + 848, - 4146, + 2567, - 1645, + 2402, - 2504, + 2561, - 836, + 3816, - 2552, + 3804, + -1, - 4122, + 622, - 833, + 3960, - 3981, + 842, - 820, + 3789, - 3786, + 1633, - 1624, - -1, + 822, - 3783, + 4014, - 3975, + 3798, - 2075, + 2111, - 1099, + 1147, - 4116, - -1, + 774, - 3627, + 4044, - 2759, + 2462, - 3966, + 2810, - 3957, - -1, + 3315, - 126, + 3723, - 3954, + 3435, + + 829, + + 4047, -1, - 3942, + 4038, - 2105, + 1129, - 1144, + 381, - 700, + 4020, - 823, + 2474, - 3108, + 2792, - 2804, + 3297, - 3309, + 3690, - 3714, + 3744, + -1, -1, -1, - 2102, + 839, - 1141, + 826, - 2057, + 1627, - 1093, + 4026, -1, - 2801, + 3141, - 3306, + 43, + -1, -1, - 3708, + 3948, - 3255, + 819, - 816, + 1399, - 1840, + 758, + -1, -1, - 1438, + 1648, - 813, + 1126, - 3945, + 375, - 2066, + 4035, - 733, + 4023, - 360, - -1, + 2789, - 1627, + 3294, - 2750, + 3684, - 3264, - -1, -1, + 768, - 1456, - -1, + 4008, - 4110, + 4146, - 1621, + 15, - 3939, + 2735, - 62, + 4017, - 2741, + 2390, + -1, - 3936, + 1369, - 3099, + 3138, + -1, - 752, + 748, - 1411, + 761, + -1, - 2492, + 652, - 15, + 2017, + + 1050, + + 306, + -1, -1, 2726, - 2231, + 3231, - 1270, + 4116, - 496, + 2014, - 1363, + 1044, - 162, + 303, + + 2384, -1, - 2008, + 2720, - 1044, + 3228, + -1, - 306, + 3534, - 646, + 3078, - 4083, + 968, - 2717, + 267, - 3222, + 2294, - 1894, + 3504, - 2399, + 2645, - 198, - -1, + 934, - 4035, - -1, + 252, - 2465, + 3075, -1, - 2375, + 2615, - 1303, + 4281, - 3069, - - 2005, + 3513, - 1038, + 1966, - 303, + 943, - 742, + 3507, - 529, + 1963, - 2711, + 937, - 3219, + 2624, - 3492, + 3180, - 1954, + 3936, - 931, - -1, -1, + 2618, - 3912, + 3177, - 2609, + 4233, - 3168, + 3642, + -1, -1, - 1183, + 2348, - 2270, + 4221, - 3066, + 126, - 3486, + 3510, - 1951, + 3381, - 925, + 940, - 1891, + 255, + -1, -1, - 1558, + 2621, - 195, + 3501, - 2603, + 1960, - 3165, + 931, - 1876, + 1903, + -1, - 3609, + 198, - 180, + 2612, - 1873, + 3174, - 1300, + 1900, - 177, + 580, - 108, - -1, -1, + 195, - 1285, + 3624, - 526, + 1309, - 1870, + 1885, - 1282, + 1846, - 174, + 180, - 1708, + 108, - 511, + 1306, - 2108, + 532, + -1, -1, - 1147, + 745, - 508, - -1, + 1291, - 1279, + 529, - 2807, + 1882, - 2264, + 351, - 3720, + 177, - 4200, - -1, + 1879, - 505, + 514, - 2258, + 174, - 1822, + 2279, -1, - 2252, - - 2090, - - 1114, + 1441, - 372, + 1288, - 2084, + 3014, - 1108, + 2273, - 2774, + 1285, -1, - 2246, + 1828, - 2768, + 511, - 3273, + 2267, -1, - 1633, - -1, -1, -1, -1, + 508, - 2069, + 2243, - 3123, + 1279, - 1591, + 502, - 68, + 4188, - 3117, + 168, - 2753, + 2240, - 3267, - -1, + 1276, - 1417, + 499, - 56, + 2261, - 3531, + 162, - 2960, + 1123, - 974, + 2255, - 273, + 2093, - 1405, + 1114, - 688, + 2786, - 2648, + 3291, - 3102, + 3678, + + 2777, + + 3282, -1, - 43, + 2084, + + 1105, -1, - 3471, + 2480, + -1, - 4089, + 2768, - 909, + 3135, - 1393, - -1, + 24, - 2405, + 2741, - 2588, + 3126, - 4077, + 3738, -1, - 3780, + 1381, + -1, - 2471, + 3927, - 2393, + 706, -1, - 24, + 3117, - 2732, - -1, + 661, - 2459, + 1702, - 4065, + 21, - 1375, + 2738, -1, -1, - 2381, + 1564, - 2954, + 1375, - 3894, + 4128, + -1, -1, - 655, + 1642, - 3378, + 3492, - 2447, + 655, - 2924, + 922, - 2315, + 3978, -1, - 2918, - - 1180, - - 4047, - - 1540, + 2969, - 21, + 2603, - 2729, - -1, -1, + 2081, - 2912, + 3909, - 1369, + 4122, - 3525, + 2963, -1, - 968, + 2765, - 270, + 2468, - 810, + 3540, - 649, + 2933, - 2642, + 974, - 4203, + 270, - 3501, - -1, + 1546, - 940, + 3486, - 258, - -1, + 2651, - 4041, + 915, - 2618, + 700, -1, - 1702, - - 3489, + 3114, - 4158, + 2597, - 928, + 2927, - 252, - -1, + 354, - 3933, + 2330, - 2606, + 2921, - 2072, + 3480, - 3465, + 3474, - 4152, + 908, 902, - 3459, + 1447, + -1, - 2756, + 2591, - 896, + 2585, + -1, -1, - 2582, - -1, + 685, - 1912, + 1921, - 2576, + 1918, 216, - 3372, - - 4140, + 213, -1, - 694, + 3387, + + 2324, -1, - 3105, + 1603, - 1321, + 1327, + + 1324, + + 3783, 1909, - 3543, + 1597, - 213, + 204, - 987, - -1, + 550, 547, - 402, + 2318, - 2660, + 2312, -1, - 1318, + 1897, - 2309, + 1315, - 3744, + 192, + -1, - 1903, + 1891, - 2303, + 3, - 207, + 186, - 544, + 538, - 1900, + 1017, - 1888, + 1303, - 204, + 1357, + -1, - 192, + 2693, - 1882, + 1297, + -1, - 1312, + 526, - 186, + 1011, - 2081, + 1005, - 1105, + 2456, - 1309, + 520, - 1297, + 2687, - 538, + 2681, - 2765, + 619, - 1291, + 3552, - 1660, + 4104, - 535, + 986, - 523, + 804, + -1, - 2078, + 2372, - 1102, + 2663, - 517, + 613, - 3774, + 607, + -1, - 3390, + 3498, + -1, - 2762, + 928, - 3537, + 739, - 3114, + 3984, - 980, - -1, + 3429, - 4179, + 2609, + -1, -1, -1, -1, + + 4002, -1, - 2654, - -1, -1, -1, -1, + 3423, - 3111, + 3417, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, - - 4191, + -1, - 1861, + 3399, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, - 3384, + 4194, -1, -1, -1, -1, -1, -1, - -1, -1, -1, - 2996, - -1, -1, -1, + 3005, - 3927, - -1, -1, -1, -1, -1, + 2999, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, - 2990, + 2981, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, + -1, - 2978, - -1, -1, -1, + 2957, + -1, - 2972, + 4266, + -1, - 2948, + 2945, + -1, -1, -1, -1, -1, + + 4275, -1, -1, - 2936, + 4269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, - 755, + 4272, -1, -1, -1, -1, -1, -1, - -1, - 4194, - -1, -1, -1, -1, -1, + 4263, - 3354, + 2498, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3013,31 +3092,21 @@ onigenc_unicode_fold1_key(OnigCodePoint codes[]) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, + + 4254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, - 4188, + 4248, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4182, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, + 4242, - 4167, + 4236, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3045,20 +3114,11 @@ onigenc_unicode_fold1_key(OnigCodePoint codes[]) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, - - 4197, -1, -1, -1, -1, -1, -1, - -1, -1, - - 4185, -1, -1, -1, -1, -1, -1, - -1, - - 4161, -1, -1, - 4155 + 4260 }; diff --git a/src/unicode_fold2_key.c b/src/unicode_fold2_key.c index 225335f..929b3b5 100644 --- a/src/unicode_fold2_key.c +++ b/src/unicode_fold2_key.c @@ -9,7 +9,7 @@ /* This gperf source file was generated by make_unicode_fold_data.py */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/unicode_fold3_key.c b/src/unicode_fold3_key.c index 932308a..e6d3cf3 100644 --- a/src/unicode_fold3_key.c +++ b/src/unicode_fold3_key.c @@ -9,7 +9,7 @@ /* This gperf source file was generated by make_unicode_fold_data.py */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/unicode_fold_data.c b/src/unicode_fold_data.c index 2629570..2ffa43f 100644 --- a/src/unicode_fold_data.c +++ b/src/unicode_fold_data.c @@ -1,6 +1,6 @@ /* This file was generated by make_unicode_fold_data.py. */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -28,7 +28,7 @@ #include "regenc.h" -#define UNICODE_CASEFOLD_VERSION 140000 +#define UNICODE_CASEFOLD_VERSION 160000 OnigCodePoint OnigUnicodeFolds1[] = { @@ -158,1279 +158,1306 @@ OnigCodePoint OnigUnicodeFolds1[] = { /* 372*/ 0x0195, 1, 0x01f6, /* LATIN CAPITAL LETTER HWAIR */ /* 375*/ 0x0199, 1, 0x0198, /* LATIN CAPITAL LETTER K WITH HOOK */ /* 378*/ 0x019a, 1, 0x023d, /* LATIN CAPITAL LETTER L WITH BAR */ - /* 381*/ 0x019e, 1, 0x0220, /* LATIN CAPITAL LETTER N WITH LONG .. */ - /* 384*/ 0x01a1, 1, 0x01a0, /* LATIN CAPITAL LETTER O WITH HORN */ - /* 387*/ 0x01a3, 1, 0x01a2, /* LATIN CAPITAL LETTER OI */ - /* 390*/ 0x01a5, 1, 0x01a4, /* LATIN CAPITAL LETTER P WITH HOOK */ - /* 393*/ 0x01a8, 1, 0x01a7, /* LATIN CAPITAL LETTER TONE TWO */ - /* 396*/ 0x01ad, 1, 0x01ac, /* LATIN CAPITAL LETTER T WITH HOOK */ - /* 399*/ 0x01b0, 1, 0x01af, /* LATIN CAPITAL LETTER U WITH HORN */ - /* 402*/ 0x01b4, 1, 0x01b3, /* LATIN CAPITAL LETTER Y WITH HOOK */ - /* 405*/ 0x01b6, 1, 0x01b5, /* LATIN CAPITAL LETTER Z WITH STROKE */ - /* 408*/ 0x01b9, 1, 0x01b8, /* LATIN CAPITAL LETTER EZH REVERSED */ - /* 411*/ 0x01bd, 1, 0x01bc, /* LATIN CAPITAL LETTER TONE FIVE */ - /* 414*/ 0x01bf, 1, 0x01f7, /* LATIN CAPITAL LETTER WYNN */ - /* 417*/ 0x01c6, 2, 0x01c4, 0x01c5, /* LATIN CAPITAL LETTER DZ WITH CARON */ - /* 421*/ 0x01c9, 2, 0x01c7, 0x01c8, /* LATIN CAPITAL LETTER LJ */ - /* 425*/ 0x01cc, 2, 0x01ca, 0x01cb, /* LATIN CAPITAL LETTER NJ */ - /* 429*/ 0x01ce, 1, 0x01cd, /* LATIN CAPITAL LETTER A WITH CARON */ - /* 432*/ 0x01d0, 1, 0x01cf, /* LATIN CAPITAL LETTER I WITH CARON */ - /* 435*/ 0x01d2, 1, 0x01d1, /* LATIN CAPITAL LETTER O WITH CARON */ - /* 438*/ 0x01d4, 1, 0x01d3, /* LATIN CAPITAL LETTER U WITH CARON */ - /* 441*/ 0x01d6, 1, 0x01d5, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /* 444*/ 0x01d8, 1, 0x01d7, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /* 447*/ 0x01da, 1, 0x01d9, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /* 450*/ 0x01dc, 1, 0x01db, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /* 453*/ 0x01dd, 1, 0x018e, /* LATIN CAPITAL LETTER REVERSED E */ - /* 456*/ 0x01df, 1, 0x01de, /* LATIN CAPITAL LETTER A WITH DIAER.. */ - /* 459*/ 0x01e1, 1, 0x01e0, /* LATIN CAPITAL LETTER A WITH DOT A.. */ - /* 462*/ 0x01e3, 1, 0x01e2, /* LATIN CAPITAL LETTER AE WITH MACR.. */ - /* 465*/ 0x01e5, 1, 0x01e4, /* LATIN CAPITAL LETTER G WITH STROKE */ - /* 468*/ 0x01e7, 1, 0x01e6, /* LATIN CAPITAL LETTER G WITH CARON */ - /* 471*/ 0x01e9, 1, 0x01e8, /* LATIN CAPITAL LETTER K WITH CARON */ - /* 474*/ 0x01eb, 1, 0x01ea, /* LATIN CAPITAL LETTER O WITH OGONEK */ - /* 477*/ 0x01ed, 1, 0x01ec, /* LATIN CAPITAL LETTER O WITH OGONE.. */ - /* 480*/ 0x01ef, 1, 0x01ee, /* LATIN CAPITAL LETTER EZH WITH CAR.. */ - /* 483*/ 0x01f3, 2, 0x01f1, 0x01f2, /* LATIN CAPITAL LETTER DZ */ - /* 487*/ 0x01f5, 1, 0x01f4, /* LATIN CAPITAL LETTER G WITH ACUTE */ - /* 490*/ 0x01f9, 1, 0x01f8, /* LATIN CAPITAL LETTER N WITH GRAVE */ - /* 493*/ 0x01fb, 1, 0x01fa, /* LATIN CAPITAL LETTER A WITH RING .. */ - /* 496*/ 0x01fd, 1, 0x01fc, /* LATIN CAPITAL LETTER AE WITH ACUTE */ - /* 499*/ 0x01ff, 1, 0x01fe, /* LATIN CAPITAL LETTER O WITH STROK.. */ - /* 502*/ 0x0201, 1, 0x0200, /* LATIN CAPITAL LETTER A WITH DOUBL.. */ - /* 505*/ 0x0203, 1, 0x0202, /* LATIN CAPITAL LETTER A WITH INVER.. */ - /* 508*/ 0x0205, 1, 0x0204, /* LATIN CAPITAL LETTER E WITH DOUBL.. */ - /* 511*/ 0x0207, 1, 0x0206, /* LATIN CAPITAL LETTER E WITH INVER.. */ - /* 514*/ 0x0209, 1, 0x0208, /* LATIN CAPITAL LETTER I WITH DOUBL.. */ - /* 517*/ 0x020b, 1, 0x020a, /* LATIN CAPITAL LETTER I WITH INVER.. */ - /* 520*/ 0x020d, 1, 0x020c, /* LATIN CAPITAL LETTER O WITH DOUBL.. */ - /* 523*/ 0x020f, 1, 0x020e, /* LATIN CAPITAL LETTER O WITH INVER.. */ - /* 526*/ 0x0211, 1, 0x0210, /* LATIN CAPITAL LETTER R WITH DOUBL.. */ - /* 529*/ 0x0213, 1, 0x0212, /* LATIN CAPITAL LETTER R WITH INVER.. */ - /* 532*/ 0x0215, 1, 0x0214, /* LATIN CAPITAL LETTER U WITH DOUBL.. */ - /* 535*/ 0x0217, 1, 0x0216, /* LATIN CAPITAL LETTER U WITH INVER.. */ - /* 538*/ 0x0219, 1, 0x0218, /* LATIN CAPITAL LETTER S WITH COMMA.. */ - /* 541*/ 0x021b, 1, 0x021a, /* LATIN CAPITAL LETTER T WITH COMMA.. */ - /* 544*/ 0x021d, 1, 0x021c, /* LATIN CAPITAL LETTER YOGH */ - /* 547*/ 0x021f, 1, 0x021e, /* LATIN CAPITAL LETTER H WITH CARON */ - /* 550*/ 0x0223, 1, 0x0222, /* LATIN CAPITAL LETTER OU */ - /* 553*/ 0x0225, 1, 0x0224, /* LATIN CAPITAL LETTER Z WITH HOOK */ - /* 556*/ 0x0227, 1, 0x0226, /* LATIN CAPITAL LETTER A WITH DOT A.. */ - /* 559*/ 0x0229, 1, 0x0228, /* LATIN CAPITAL LETTER E WITH CEDIL.. */ - /* 562*/ 0x022b, 1, 0x022a, /* LATIN CAPITAL LETTER O WITH DIAER.. */ - /* 565*/ 0x022d, 1, 0x022c, /* LATIN CAPITAL LETTER O WITH TILDE.. */ - /* 568*/ 0x022f, 1, 0x022e, /* LATIN CAPITAL LETTER O WITH DOT A.. */ - /* 571*/ 0x0231, 1, 0x0230, /* LATIN CAPITAL LETTER O WITH DOT A.. */ - /* 574*/ 0x0233, 1, 0x0232, /* LATIN CAPITAL LETTER Y WITH MACRON */ - /* 577*/ 0x023c, 1, 0x023b, /* LATIN CAPITAL LETTER C WITH STROKE */ - /* 580*/ 0x023f, 1, 0x2c7e, /* LATIN CAPITAL LETTER S WITH SWASH.. */ - /* 583*/ 0x0240, 1, 0x2c7f, /* LATIN CAPITAL LETTER Z WITH SWASH.. */ - /* 586*/ 0x0242, 1, 0x0241, /* LATIN CAPITAL LETTER GLOTTAL STOP */ - /* 589*/ 0x0247, 1, 0x0246, /* LATIN CAPITAL LETTER E WITH STROKE */ - /* 592*/ 0x0249, 1, 0x0248, /* LATIN CAPITAL LETTER J WITH STROKE */ - /* 595*/ 0x024b, 1, 0x024a, /* LATIN CAPITAL LETTER SMALL Q WITH.. */ - /* 598*/ 0x024d, 1, 0x024c, /* LATIN CAPITAL LETTER R WITH STROKE */ - /* 601*/ 0x024f, 1, 0x024e, /* LATIN CAPITAL LETTER Y WITH STROKE */ - /* 604*/ 0x0250, 1, 0x2c6f, /* LATIN CAPITAL LETTER TURNED A */ - /* 607*/ 0x0251, 1, 0x2c6d, /* LATIN CAPITAL LETTER ALPHA */ - /* 610*/ 0x0252, 1, 0x2c70, /* LATIN CAPITAL LETTER TURNED ALPHA */ - /* 613*/ 0x0253, 1, 0x0181, /* LATIN CAPITAL LETTER B WITH HOOK */ - /* 616*/ 0x0254, 1, 0x0186, /* LATIN CAPITAL LETTER OPEN O */ - /* 619*/ 0x0256, 1, 0x0189, /* LATIN CAPITAL LETTER AFRICAN D */ - /* 622*/ 0x0257, 1, 0x018a, /* LATIN CAPITAL LETTER D WITH HOOK */ - /* 625*/ 0x0259, 1, 0x018f, /* LATIN CAPITAL LETTER SCHWA */ - /* 628*/ 0x025b, 1, 0x0190, /* LATIN CAPITAL LETTER OPEN E */ - /* 631*/ 0x025c, 1, 0xa7ab, /* LATIN CAPITAL LETTER REVERSED OPE.. */ - /* 634*/ 0x0260, 1, 0x0193, /* LATIN CAPITAL LETTER G WITH HOOK */ - /* 637*/ 0x0261, 1, 0xa7ac, /* LATIN CAPITAL LETTER SCRIPT G */ - /* 640*/ 0x0263, 1, 0x0194, /* LATIN CAPITAL LETTER GAMMA */ - /* 643*/ 0x0265, 1, 0xa78d, /* LATIN CAPITAL LETTER TURNED H */ - /* 646*/ 0x0266, 1, 0xa7aa, /* LATIN CAPITAL LETTER H WITH HOOK */ - /* 649*/ 0x0268, 1, 0x0197, /* LATIN CAPITAL LETTER I WITH STROKE */ - /* 652*/ 0x0269, 1, 0x0196, /* LATIN CAPITAL LETTER IOTA */ - /* 655*/ 0x026a, 1, 0xa7ae, /* LATIN CAPITAL LETTER SMALL CAPITA.. */ - /* 658*/ 0x026b, 1, 0x2c62, /* LATIN CAPITAL LETTER L WITH MIDDL.. */ - /* 661*/ 0x026c, 1, 0xa7ad, /* LATIN CAPITAL LETTER L WITH BELT */ - /* 664*/ 0x026f, 1, 0x019c, /* LATIN CAPITAL LETTER TURNED M */ - /* 667*/ 0x0271, 1, 0x2c6e, /* LATIN CAPITAL LETTER M WITH HOOK */ - /* 670*/ 0x0272, 1, 0x019d, /* LATIN CAPITAL LETTER N WITH LEFT .. */ - /* 673*/ 0x0275, 1, 0x019f, /* LATIN CAPITAL LETTER O WITH MIDDL.. */ - /* 676*/ 0x027d, 1, 0x2c64, /* LATIN CAPITAL LETTER R WITH TAIL */ - /* 679*/ 0x0280, 1, 0x01a6, /* LATIN LETTER YR */ - /* 682*/ 0x0282, 1, 0xa7c5, /* LATIN CAPITAL LETTER S WITH HOOK */ - /* 685*/ 0x0283, 1, 0x01a9, /* LATIN CAPITAL LETTER ESH */ - /* 688*/ 0x0287, 1, 0xa7b1, /* LATIN CAPITAL LETTER TURNED T */ - /* 691*/ 0x0288, 1, 0x01ae, /* LATIN CAPITAL LETTER T WITH RETRO.. */ - /* 694*/ 0x0289, 1, 0x0244, /* LATIN CAPITAL LETTER U BAR */ - /* 697*/ 0x028a, 1, 0x01b1, /* LATIN CAPITAL LETTER UPSILON */ - /* 700*/ 0x028b, 1, 0x01b2, /* LATIN CAPITAL LETTER V WITH HOOK */ - /* 703*/ 0x028c, 1, 0x0245, /* LATIN CAPITAL LETTER TURNED V */ - /* 706*/ 0x0292, 1, 0x01b7, /* LATIN CAPITAL LETTER EZH */ - /* 709*/ 0x029d, 1, 0xa7b2, /* LATIN CAPITAL LETTER J WITH CROSS.. */ - /* 712*/ 0x029e, 1, 0xa7b0, /* LATIN CAPITAL LETTER TURNED K */ - /* 715*/ 0x0371, 1, 0x0370, /* GREEK CAPITAL LETTER HETA */ - /* 718*/ 0x0373, 1, 0x0372, /* GREEK CAPITAL LETTER ARCHAIC SAMPI */ - /* 721*/ 0x0377, 1, 0x0376, /* GREEK CAPITAL LETTER PAMPHYLIAN D.. */ - /* 724*/ 0x037b, 1, 0x03fd, /* GREEK CAPITAL REVERSED LUNATE SIG.. */ - /* 727*/ 0x037c, 1, 0x03fe, /* GREEK CAPITAL DOTTED LUNATE SIGMA.. */ - /* 730*/ 0x037d, 1, 0x03ff, /* GREEK CAPITAL REVERSED DOTTED LUN.. */ - /* 733*/ 0x03ac, 1, 0x0386, /* GREEK CAPITAL LETTER ALPHA WITH T.. */ - /* 736*/ 0x03ad, 1, 0x0388, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /* 739*/ 0x03ae, 1, 0x0389, /* GREEK CAPITAL LETTER ETA WITH TON.. */ - /* 742*/ 0x03af, 1, 0x038a, /* GREEK CAPITAL LETTER IOTA WITH TO.. */ - /* 745*/ 0x03b1, 1, 0x0391, /* GREEK CAPITAL LETTER ALPHA */ - /* 748*/ 0x03b2, 2, 0x0392, 0x03d0, /* GREEK CAPITAL LETTER BETA */ - /* 752*/ 0x03b3, 1, 0x0393, /* GREEK CAPITAL LETTER GAMMA */ - /* 755*/ 0x03b4, 1, 0x0394, /* GREEK CAPITAL LETTER DELTA */ - /* 758*/ 0x03b5, 2, 0x0395, 0x03f5, /* GREEK CAPITAL LETTER EPSILON */ - /* 762*/ 0x03b6, 1, 0x0396, /* GREEK CAPITAL LETTER ZETA */ - /* 765*/ 0x03b7, 1, 0x0397, /* GREEK CAPITAL LETTER ETA */ - /* 768*/ 0x03b8, 3, 0x0398, 0x03d1, 0x03f4, /* GREEK CAPITAL LETTER THETA */ - /* 773*/ 0x03b9, 3, 0x0345, 0x0399, 0x1fbe, /* COMBINING GREEK YPOGEGRAMMENI */ - /* 778*/ 0x03ba, 2, 0x039a, 0x03f0, /* GREEK CAPITAL LETTER KAPPA */ - /* 782*/ 0x03bb, 1, 0x039b, /* GREEK CAPITAL LETTER LAMDA */ - /* 785*/ 0x03bc, 2, 0x00b5, 0x039c, /* MICRO SIGN */ - /* 789*/ 0x03bd, 1, 0x039d, /* GREEK CAPITAL LETTER NU */ - /* 792*/ 0x03be, 1, 0x039e, /* GREEK CAPITAL LETTER XI */ - /* 795*/ 0x03bf, 1, 0x039f, /* GREEK CAPITAL LETTER OMICRON */ - /* 798*/ 0x03c0, 2, 0x03a0, 0x03d6, /* GREEK CAPITAL LETTER PI */ - /* 802*/ 0x03c1, 2, 0x03a1, 0x03f1, /* GREEK CAPITAL LETTER RHO */ - /* 806*/ 0x03c3, 2, 0x03a3, 0x03c2, /* GREEK CAPITAL LETTER SIGMA */ - /* 810*/ 0x03c4, 1, 0x03a4, /* GREEK CAPITAL LETTER TAU */ - /* 813*/ 0x03c5, 1, 0x03a5, /* GREEK CAPITAL LETTER UPSILON */ - /* 816*/ 0x03c6, 2, 0x03a6, 0x03d5, /* GREEK CAPITAL LETTER PHI */ - /* 820*/ 0x03c7, 1, 0x03a7, /* GREEK CAPITAL LETTER CHI */ - /* 823*/ 0x03c8, 1, 0x03a8, /* GREEK CAPITAL LETTER PSI */ - /* 826*/ 0x03c9, 2, 0x03a9, 0x2126, /* GREEK CAPITAL LETTER OMEGA */ - /* 830*/ 0x03ca, 1, 0x03aa, /* GREEK CAPITAL LETTER IOTA WITH DI.. */ - /* 833*/ 0x03cb, 1, 0x03ab, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /* 836*/ 0x03cc, 1, 0x038c, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /* 839*/ 0x03cd, 1, 0x038e, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /* 842*/ 0x03ce, 1, 0x038f, /* GREEK CAPITAL LETTER OMEGA WITH T.. */ - /* 845*/ 0x03d7, 1, 0x03cf, /* GREEK CAPITAL KAI SYMBOL */ - /* 848*/ 0x03d9, 1, 0x03d8, /* GREEK LETTER ARCHAIC KOPPA */ - /* 851*/ 0x03db, 1, 0x03da, /* GREEK LETTER STIGMA */ - /* 854*/ 0x03dd, 1, 0x03dc, /* GREEK LETTER DIGAMMA */ - /* 857*/ 0x03df, 1, 0x03de, /* GREEK LETTER KOPPA */ - /* 860*/ 0x03e1, 1, 0x03e0, /* GREEK LETTER SAMPI */ - /* 863*/ 0x03e3, 1, 0x03e2, /* COPTIC CAPITAL LETTER SHEI */ - /* 866*/ 0x03e5, 1, 0x03e4, /* COPTIC CAPITAL LETTER FEI */ - /* 869*/ 0x03e7, 1, 0x03e6, /* COPTIC CAPITAL LETTER KHEI */ - /* 872*/ 0x03e9, 1, 0x03e8, /* COPTIC CAPITAL LETTER HORI */ - /* 875*/ 0x03eb, 1, 0x03ea, /* COPTIC CAPITAL LETTER GANGIA */ - /* 878*/ 0x03ed, 1, 0x03ec, /* COPTIC CAPITAL LETTER SHIMA */ - /* 881*/ 0x03ef, 1, 0x03ee, /* COPTIC CAPITAL LETTER DEI */ - /* 884*/ 0x03f2, 1, 0x03f9, /* GREEK CAPITAL LUNATE SIGMA SYMBOL */ - /* 887*/ 0x03f3, 1, 0x037f, /* GREEK CAPITAL LETTER YOT */ - /* 890*/ 0x03f8, 1, 0x03f7, /* GREEK CAPITAL LETTER SHO */ - /* 893*/ 0x03fb, 1, 0x03fa, /* GREEK CAPITAL LETTER SAN */ - /* 896*/ 0x0430, 1, 0x0410, /* CYRILLIC CAPITAL LETTER A */ - /* 899*/ 0x0431, 1, 0x0411, /* CYRILLIC CAPITAL LETTER BE */ - /* 902*/ 0x0432, 2, 0x0412, 0x1c80, /* CYRILLIC CAPITAL LETTER VE */ - /* 906*/ 0x0433, 1, 0x0413, /* CYRILLIC CAPITAL LETTER GHE */ - /* 909*/ 0x0434, 2, 0x0414, 0x1c81, /* CYRILLIC CAPITAL LETTER DE */ - /* 913*/ 0x0435, 1, 0x0415, /* CYRILLIC CAPITAL LETTER IE */ - /* 916*/ 0x0436, 1, 0x0416, /* CYRILLIC CAPITAL LETTER ZHE */ - /* 919*/ 0x0437, 1, 0x0417, /* CYRILLIC CAPITAL LETTER ZE */ - /* 922*/ 0x0438, 1, 0x0418, /* CYRILLIC CAPITAL LETTER I */ - /* 925*/ 0x0439, 1, 0x0419, /* CYRILLIC CAPITAL LETTER SHORT I */ - /* 928*/ 0x043a, 1, 0x041a, /* CYRILLIC CAPITAL LETTER KA */ - /* 931*/ 0x043b, 1, 0x041b, /* CYRILLIC CAPITAL LETTER EL */ - /* 934*/ 0x043c, 1, 0x041c, /* CYRILLIC CAPITAL LETTER EM */ - /* 937*/ 0x043d, 1, 0x041d, /* CYRILLIC CAPITAL LETTER EN */ - /* 940*/ 0x043e, 2, 0x041e, 0x1c82, /* CYRILLIC CAPITAL LETTER O */ - /* 944*/ 0x043f, 1, 0x041f, /* CYRILLIC CAPITAL LETTER PE */ - /* 947*/ 0x0440, 1, 0x0420, /* CYRILLIC CAPITAL LETTER ER */ - /* 950*/ 0x0441, 2, 0x0421, 0x1c83, /* CYRILLIC CAPITAL LETTER ES */ - /* 954*/ 0x0442, 3, 0x0422, 0x1c84, 0x1c85, /* CYRILLIC CAPITAL LETTER TE */ - /* 959*/ 0x0443, 1, 0x0423, /* CYRILLIC CAPITAL LETTER U */ - /* 962*/ 0x0444, 1, 0x0424, /* CYRILLIC CAPITAL LETTER EF */ - /* 965*/ 0x0445, 1, 0x0425, /* CYRILLIC CAPITAL LETTER HA */ - /* 968*/ 0x0446, 1, 0x0426, /* CYRILLIC CAPITAL LETTER TSE */ - /* 971*/ 0x0447, 1, 0x0427, /* CYRILLIC CAPITAL LETTER CHE */ - /* 974*/ 0x0448, 1, 0x0428, /* CYRILLIC CAPITAL LETTER SHA */ - /* 977*/ 0x0449, 1, 0x0429, /* CYRILLIC CAPITAL LETTER SHCHA */ - /* 980*/ 0x044a, 2, 0x042a, 0x1c86, /* CYRILLIC CAPITAL LETTER HARD SIGN */ - /* 984*/ 0x044b, 1, 0x042b, /* CYRILLIC CAPITAL LETTER YERU */ - /* 987*/ 0x044c, 1, 0x042c, /* CYRILLIC CAPITAL LETTER SOFT SIGN */ - /* 990*/ 0x044d, 1, 0x042d, /* CYRILLIC CAPITAL LETTER E */ - /* 993*/ 0x044e, 1, 0x042e, /* CYRILLIC CAPITAL LETTER YU */ - /* 996*/ 0x044f, 1, 0x042f, /* CYRILLIC CAPITAL LETTER YA */ - /* 999*/ 0x0450, 1, 0x0400, /* CYRILLIC CAPITAL LETTER IE WITH G.. */ - /*1002*/ 0x0451, 1, 0x0401, /* CYRILLIC CAPITAL LETTER IO */ - /*1005*/ 0x0452, 1, 0x0402, /* CYRILLIC CAPITAL LETTER DJE */ - /*1008*/ 0x0453, 1, 0x0403, /* CYRILLIC CAPITAL LETTER GJE */ - /*1011*/ 0x0454, 1, 0x0404, /* CYRILLIC CAPITAL LETTER UKRAINIAN.. */ - /*1014*/ 0x0455, 1, 0x0405, /* CYRILLIC CAPITAL LETTER DZE */ - /*1017*/ 0x0456, 1, 0x0406, /* CYRILLIC CAPITAL LETTER BYELORUSS.. */ - /*1020*/ 0x0457, 1, 0x0407, /* CYRILLIC CAPITAL LETTER YI */ - /*1023*/ 0x0458, 1, 0x0408, /* CYRILLIC CAPITAL LETTER JE */ - /*1026*/ 0x0459, 1, 0x0409, /* CYRILLIC CAPITAL LETTER LJE */ - /*1029*/ 0x045a, 1, 0x040a, /* CYRILLIC CAPITAL LETTER NJE */ - /*1032*/ 0x045b, 1, 0x040b, /* CYRILLIC CAPITAL LETTER TSHE */ - /*1035*/ 0x045c, 1, 0x040c, /* CYRILLIC CAPITAL LETTER KJE */ - /*1038*/ 0x045d, 1, 0x040d, /* CYRILLIC CAPITAL LETTER I WITH GR.. */ - /*1041*/ 0x045e, 1, 0x040e, /* CYRILLIC CAPITAL LETTER SHORT U */ - /*1044*/ 0x045f, 1, 0x040f, /* CYRILLIC CAPITAL LETTER DZHE */ - /*1047*/ 0x0461, 1, 0x0460, /* CYRILLIC CAPITAL LETTER OMEGA */ - /*1050*/ 0x0463, 2, 0x0462, 0x1c87, /* CYRILLIC CAPITAL LETTER YAT */ - /*1054*/ 0x0465, 1, 0x0464, /* CYRILLIC CAPITAL LETTER IOTIFIED E */ - /*1057*/ 0x0467, 1, 0x0466, /* CYRILLIC CAPITAL LETTER LITTLE YUS */ - /*1060*/ 0x0469, 1, 0x0468, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ - /*1063*/ 0x046b, 1, 0x046a, /* CYRILLIC CAPITAL LETTER BIG YUS */ - /*1066*/ 0x046d, 1, 0x046c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ - /*1069*/ 0x046f, 1, 0x046e, /* CYRILLIC CAPITAL LETTER KSI */ - /*1072*/ 0x0471, 1, 0x0470, /* CYRILLIC CAPITAL LETTER PSI */ - /*1075*/ 0x0473, 1, 0x0472, /* CYRILLIC CAPITAL LETTER FITA */ - /*1078*/ 0x0475, 1, 0x0474, /* CYRILLIC CAPITAL LETTER IZHITSA */ - /*1081*/ 0x0477, 1, 0x0476, /* CYRILLIC CAPITAL LETTER IZHITSA W.. */ - /*1084*/ 0x0479, 1, 0x0478, /* CYRILLIC CAPITAL LETTER UK */ - /*1087*/ 0x047b, 1, 0x047a, /* CYRILLIC CAPITAL LETTER ROUND OME.. */ - /*1090*/ 0x047d, 1, 0x047c, /* CYRILLIC CAPITAL LETTER OMEGA WIT.. */ - /*1093*/ 0x047f, 1, 0x047e, /* CYRILLIC CAPITAL LETTER OT */ - /*1096*/ 0x0481, 1, 0x0480, /* CYRILLIC CAPITAL LETTER KOPPA */ - /*1099*/ 0x048b, 1, 0x048a, /* CYRILLIC CAPITAL LETTER SHORT I W.. */ - /*1102*/ 0x048d, 1, 0x048c, /* CYRILLIC CAPITAL LETTER SEMISOFT .. */ - /*1105*/ 0x048f, 1, 0x048e, /* CYRILLIC CAPITAL LETTER ER WITH T.. */ - /*1108*/ 0x0491, 1, 0x0490, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1111*/ 0x0493, 1, 0x0492, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1114*/ 0x0495, 1, 0x0494, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1117*/ 0x0497, 1, 0x0496, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ - /*1120*/ 0x0499, 1, 0x0498, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */ - /*1123*/ 0x049b, 1, 0x049a, /* CYRILLIC CAPITAL LETTER KA WITH D.. */ - /*1126*/ 0x049d, 1, 0x049c, /* CYRILLIC CAPITAL LETTER KA WITH V.. */ - /*1129*/ 0x049f, 1, 0x049e, /* CYRILLIC CAPITAL LETTER KA WITH S.. */ - /*1132*/ 0x04a1, 1, 0x04a0, /* CYRILLIC CAPITAL LETTER BASHKIR KA */ - /*1135*/ 0x04a3, 1, 0x04a2, /* CYRILLIC CAPITAL LETTER EN WITH D.. */ - /*1138*/ 0x04a5, 1, 0x04a4, /* CYRILLIC CAPITAL LIGATURE EN GHE */ - /*1141*/ 0x04a7, 1, 0x04a6, /* CYRILLIC CAPITAL LETTER PE WITH M.. */ - /*1144*/ 0x04a9, 1, 0x04a8, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ - /*1147*/ 0x04ab, 1, 0x04aa, /* CYRILLIC CAPITAL LETTER ES WITH D.. */ - /*1150*/ 0x04ad, 1, 0x04ac, /* CYRILLIC CAPITAL LETTER TE WITH D.. */ - /*1153*/ 0x04af, 1, 0x04ae, /* CYRILLIC CAPITAL LETTER STRAIGHT U */ - /*1156*/ 0x04b1, 1, 0x04b0, /* CYRILLIC CAPITAL LETTER STRAIGHT .. */ - /*1159*/ 0x04b3, 1, 0x04b2, /* CYRILLIC CAPITAL LETTER HA WITH D.. */ - /*1162*/ 0x04b5, 1, 0x04b4, /* CYRILLIC CAPITAL LIGATURE TE TSE */ - /*1165*/ 0x04b7, 1, 0x04b6, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ - /*1168*/ 0x04b9, 1, 0x04b8, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ - /*1171*/ 0x04bb, 1, 0x04ba, /* CYRILLIC CAPITAL LETTER SHHA */ - /*1174*/ 0x04bd, 1, 0x04bc, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ - /*1177*/ 0x04bf, 1, 0x04be, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ - /*1180*/ 0x04c2, 1, 0x04c1, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ - /*1183*/ 0x04c4, 1, 0x04c3, /* CYRILLIC CAPITAL LETTER KA WITH H.. */ - /*1186*/ 0x04c6, 1, 0x04c5, /* CYRILLIC CAPITAL LETTER EL WITH T.. */ - /*1189*/ 0x04c8, 1, 0x04c7, /* CYRILLIC CAPITAL LETTER EN WITH H.. */ - /*1192*/ 0x04ca, 1, 0x04c9, /* CYRILLIC CAPITAL LETTER EN WITH T.. */ - /*1195*/ 0x04cc, 1, 0x04cb, /* CYRILLIC CAPITAL LETTER KHAKASSIA.. */ - /*1198*/ 0x04ce, 1, 0x04cd, /* CYRILLIC CAPITAL LETTER EM WITH T.. */ - /*1201*/ 0x04cf, 1, 0x04c0, /* CYRILLIC LETTER PALOCHKA */ - /*1204*/ 0x04d1, 1, 0x04d0, /* CYRILLIC CAPITAL LETTER A WITH BR.. */ - /*1207*/ 0x04d3, 1, 0x04d2, /* CYRILLIC CAPITAL LETTER A WITH DI.. */ - /*1210*/ 0x04d5, 1, 0x04d4, /* CYRILLIC CAPITAL LIGATURE A IE */ - /*1213*/ 0x04d7, 1, 0x04d6, /* CYRILLIC CAPITAL LETTER IE WITH B.. */ - /*1216*/ 0x04d9, 1, 0x04d8, /* CYRILLIC CAPITAL LETTER SCHWA */ - /*1219*/ 0x04db, 1, 0x04da, /* CYRILLIC CAPITAL LETTER SCHWA WIT.. */ - /*1222*/ 0x04dd, 1, 0x04dc, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ - /*1225*/ 0x04df, 1, 0x04de, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */ - /*1228*/ 0x04e1, 1, 0x04e0, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ - /*1231*/ 0x04e3, 1, 0x04e2, /* CYRILLIC CAPITAL LETTER I WITH MA.. */ - /*1234*/ 0x04e5, 1, 0x04e4, /* CYRILLIC CAPITAL LETTER I WITH DI.. */ - /*1237*/ 0x04e7, 1, 0x04e6, /* CYRILLIC CAPITAL LETTER O WITH DI.. */ - /*1240*/ 0x04e9, 1, 0x04e8, /* CYRILLIC CAPITAL LETTER BARRED O */ - /*1243*/ 0x04eb, 1, 0x04ea, /* CYRILLIC CAPITAL LETTER BARRED O .. */ - /*1246*/ 0x04ed, 1, 0x04ec, /* CYRILLIC CAPITAL LETTER E WITH DI.. */ - /*1249*/ 0x04ef, 1, 0x04ee, /* CYRILLIC CAPITAL LETTER U WITH MA.. */ - /*1252*/ 0x04f1, 1, 0x04f0, /* CYRILLIC CAPITAL LETTER U WITH DI.. */ - /*1255*/ 0x04f3, 1, 0x04f2, /* CYRILLIC CAPITAL LETTER U WITH DO.. */ - /*1258*/ 0x04f5, 1, 0x04f4, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ - /*1261*/ 0x04f7, 1, 0x04f6, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1264*/ 0x04f9, 1, 0x04f8, /* CYRILLIC CAPITAL LETTER YERU WITH.. */ - /*1267*/ 0x04fb, 1, 0x04fa, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1270*/ 0x04fd, 1, 0x04fc, /* CYRILLIC CAPITAL LETTER HA WITH H.. */ - /*1273*/ 0x04ff, 1, 0x04fe, /* CYRILLIC CAPITAL LETTER HA WITH S.. */ - /*1276*/ 0x0501, 1, 0x0500, /* CYRILLIC CAPITAL LETTER KOMI DE */ - /*1279*/ 0x0503, 1, 0x0502, /* CYRILLIC CAPITAL LETTER KOMI DJE */ - /*1282*/ 0x0505, 1, 0x0504, /* CYRILLIC CAPITAL LETTER KOMI ZJE */ - /*1285*/ 0x0507, 1, 0x0506, /* CYRILLIC CAPITAL LETTER KOMI DZJE */ - /*1288*/ 0x0509, 1, 0x0508, /* CYRILLIC CAPITAL LETTER KOMI LJE */ - /*1291*/ 0x050b, 1, 0x050a, /* CYRILLIC CAPITAL LETTER KOMI NJE */ - /*1294*/ 0x050d, 1, 0x050c, /* CYRILLIC CAPITAL LETTER KOMI SJE */ - /*1297*/ 0x050f, 1, 0x050e, /* CYRILLIC CAPITAL LETTER KOMI TJE */ - /*1300*/ 0x0511, 1, 0x0510, /* CYRILLIC CAPITAL LETTER REVERSED .. */ - /*1303*/ 0x0513, 1, 0x0512, /* CYRILLIC CAPITAL LETTER EL WITH H.. */ - /*1306*/ 0x0515, 1, 0x0514, /* CYRILLIC CAPITAL LETTER LHA */ - /*1309*/ 0x0517, 1, 0x0516, /* CYRILLIC CAPITAL LETTER RHA */ - /*1312*/ 0x0519, 1, 0x0518, /* CYRILLIC CAPITAL LETTER YAE */ - /*1315*/ 0x051b, 1, 0x051a, /* CYRILLIC CAPITAL LETTER QA */ - /*1318*/ 0x051d, 1, 0x051c, /* CYRILLIC CAPITAL LETTER WE */ - /*1321*/ 0x051f, 1, 0x051e, /* CYRILLIC CAPITAL LETTER ALEUT KA */ - /*1324*/ 0x0521, 1, 0x0520, /* CYRILLIC CAPITAL LETTER EL WITH M.. */ - /*1327*/ 0x0523, 1, 0x0522, /* CYRILLIC CAPITAL LETTER EN WITH M.. */ - /*1330*/ 0x0525, 1, 0x0524, /* CYRILLIC CAPITAL LETTER PE WITH D.. */ - /*1333*/ 0x0527, 1, 0x0526, /* CYRILLIC CAPITAL LETTER SHHA WITH.. */ - /*1336*/ 0x0529, 1, 0x0528, /* CYRILLIC CAPITAL LETTER EN WITH L.. */ - /*1339*/ 0x052b, 1, 0x052a, /* CYRILLIC CAPITAL LETTER DZZHE */ - /*1342*/ 0x052d, 1, 0x052c, /* CYRILLIC CAPITAL LETTER DCHE */ - /*1345*/ 0x052f, 1, 0x052e, /* CYRILLIC CAPITAL LETTER EL WITH D.. */ - /*1348*/ 0x0561, 1, 0x0531, /* ARMENIAN CAPITAL LETTER AYB */ - /*1351*/ 0x0562, 1, 0x0532, /* ARMENIAN CAPITAL LETTER BEN */ - /*1354*/ 0x0563, 1, 0x0533, /* ARMENIAN CAPITAL LETTER GIM */ - /*1357*/ 0x0564, 1, 0x0534, /* ARMENIAN CAPITAL LETTER DA */ - /*1360*/ 0x0565, 1, 0x0535, /* ARMENIAN CAPITAL LETTER ECH */ - /*1363*/ 0x0566, 1, 0x0536, /* ARMENIAN CAPITAL LETTER ZA */ - /*1366*/ 0x0567, 1, 0x0537, /* ARMENIAN CAPITAL LETTER EH */ - /*1369*/ 0x0568, 1, 0x0538, /* ARMENIAN CAPITAL LETTER ET */ - /*1372*/ 0x0569, 1, 0x0539, /* ARMENIAN CAPITAL LETTER TO */ - /*1375*/ 0x056a, 1, 0x053a, /* ARMENIAN CAPITAL LETTER ZHE */ - /*1378*/ 0x056b, 1, 0x053b, /* ARMENIAN CAPITAL LETTER INI */ - /*1381*/ 0x056c, 1, 0x053c, /* ARMENIAN CAPITAL LETTER LIWN */ - /*1384*/ 0x056d, 1, 0x053d, /* ARMENIAN CAPITAL LETTER XEH */ - /*1387*/ 0x056e, 1, 0x053e, /* ARMENIAN CAPITAL LETTER CA */ - /*1390*/ 0x056f, 1, 0x053f, /* ARMENIAN CAPITAL LETTER KEN */ - /*1393*/ 0x0570, 1, 0x0540, /* ARMENIAN CAPITAL LETTER HO */ - /*1396*/ 0x0571, 1, 0x0541, /* ARMENIAN CAPITAL LETTER JA */ - /*1399*/ 0x0572, 1, 0x0542, /* ARMENIAN CAPITAL LETTER GHAD */ - /*1402*/ 0x0573, 1, 0x0543, /* ARMENIAN CAPITAL LETTER CHEH */ - /*1405*/ 0x0574, 1, 0x0544, /* ARMENIAN CAPITAL LETTER MEN */ - /*1408*/ 0x0575, 1, 0x0545, /* ARMENIAN CAPITAL LETTER YI */ - /*1411*/ 0x0576, 1, 0x0546, /* ARMENIAN CAPITAL LETTER NOW */ - /*1414*/ 0x0577, 1, 0x0547, /* ARMENIAN CAPITAL LETTER SHA */ - /*1417*/ 0x0578, 1, 0x0548, /* ARMENIAN CAPITAL LETTER VO */ - /*1420*/ 0x0579, 1, 0x0549, /* ARMENIAN CAPITAL LETTER CHA */ - /*1423*/ 0x057a, 1, 0x054a, /* ARMENIAN CAPITAL LETTER PEH */ - /*1426*/ 0x057b, 1, 0x054b, /* ARMENIAN CAPITAL LETTER JHEH */ - /*1429*/ 0x057c, 1, 0x054c, /* ARMENIAN CAPITAL LETTER RA */ - /*1432*/ 0x057d, 1, 0x054d, /* ARMENIAN CAPITAL LETTER SEH */ - /*1435*/ 0x057e, 1, 0x054e, /* ARMENIAN CAPITAL LETTER VEW */ - /*1438*/ 0x057f, 1, 0x054f, /* ARMENIAN CAPITAL LETTER TIWN */ - /*1441*/ 0x0580, 1, 0x0550, /* ARMENIAN CAPITAL LETTER REH */ - /*1444*/ 0x0581, 1, 0x0551, /* ARMENIAN CAPITAL LETTER CO */ - /*1447*/ 0x0582, 1, 0x0552, /* ARMENIAN CAPITAL LETTER YIWN */ - /*1450*/ 0x0583, 1, 0x0553, /* ARMENIAN CAPITAL LETTER PIWR */ - /*1453*/ 0x0584, 1, 0x0554, /* ARMENIAN CAPITAL LETTER KEH */ - /*1456*/ 0x0585, 1, 0x0555, /* ARMENIAN CAPITAL LETTER OH */ - /*1459*/ 0x0586, 1, 0x0556, /* ARMENIAN CAPITAL LETTER FEH */ - /*1462*/ 0x10d0, 1, 0x1c90, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1465*/ 0x10d1, 1, 0x1c91, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1468*/ 0x10d2, 1, 0x1c92, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1471*/ 0x10d3, 1, 0x1c93, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1474*/ 0x10d4, 1, 0x1c94, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1477*/ 0x10d5, 1, 0x1c95, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1480*/ 0x10d6, 1, 0x1c96, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1483*/ 0x10d7, 1, 0x1c97, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1486*/ 0x10d8, 1, 0x1c98, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1489*/ 0x10d9, 1, 0x1c99, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1492*/ 0x10da, 1, 0x1c9a, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1495*/ 0x10db, 1, 0x1c9b, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1498*/ 0x10dc, 1, 0x1c9c, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1501*/ 0x10dd, 1, 0x1c9d, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1504*/ 0x10de, 1, 0x1c9e, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1507*/ 0x10df, 1, 0x1c9f, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1510*/ 0x10e0, 1, 0x1ca0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1513*/ 0x10e1, 1, 0x1ca1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1516*/ 0x10e2, 1, 0x1ca2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1519*/ 0x10e3, 1, 0x1ca3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1522*/ 0x10e4, 1, 0x1ca4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1525*/ 0x10e5, 1, 0x1ca5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1528*/ 0x10e6, 1, 0x1ca6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1531*/ 0x10e7, 1, 0x1ca7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1534*/ 0x10e8, 1, 0x1ca8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1537*/ 0x10e9, 1, 0x1ca9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1540*/ 0x10ea, 1, 0x1caa, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1543*/ 0x10eb, 1, 0x1cab, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1546*/ 0x10ec, 1, 0x1cac, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1549*/ 0x10ed, 1, 0x1cad, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1552*/ 0x10ee, 1, 0x1cae, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1555*/ 0x10ef, 1, 0x1caf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1558*/ 0x10f0, 1, 0x1cb0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1561*/ 0x10f1, 1, 0x1cb1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1564*/ 0x10f2, 1, 0x1cb2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1567*/ 0x10f3, 1, 0x1cb3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1570*/ 0x10f4, 1, 0x1cb4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1573*/ 0x10f5, 1, 0x1cb5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1576*/ 0x10f6, 1, 0x1cb6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1579*/ 0x10f7, 1, 0x1cb7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1582*/ 0x10f8, 1, 0x1cb8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1585*/ 0x10f9, 1, 0x1cb9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1588*/ 0x10fa, 1, 0x1cba, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1591*/ 0x10fd, 1, 0x1cbd, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1594*/ 0x10fe, 1, 0x1cbe, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1597*/ 0x10ff, 1, 0x1cbf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1600*/ 0x13a0, 1, 0xab70, /* CHEROKEE SMALL LETTER A */ - /*1603*/ 0x13a1, 1, 0xab71, /* CHEROKEE SMALL LETTER E */ - /*1606*/ 0x13a2, 1, 0xab72, /* CHEROKEE SMALL LETTER I */ - /*1609*/ 0x13a3, 1, 0xab73, /* CHEROKEE SMALL LETTER O */ - /*1612*/ 0x13a4, 1, 0xab74, /* CHEROKEE SMALL LETTER U */ - /*1615*/ 0x13a5, 1, 0xab75, /* CHEROKEE SMALL LETTER V */ - /*1618*/ 0x13a6, 1, 0xab76, /* CHEROKEE SMALL LETTER GA */ - /*1621*/ 0x13a7, 1, 0xab77, /* CHEROKEE SMALL LETTER KA */ - /*1624*/ 0x13a8, 1, 0xab78, /* CHEROKEE SMALL LETTER GE */ - /*1627*/ 0x13a9, 1, 0xab79, /* CHEROKEE SMALL LETTER GI */ - /*1630*/ 0x13aa, 1, 0xab7a, /* CHEROKEE SMALL LETTER GO */ - /*1633*/ 0x13ab, 1, 0xab7b, /* CHEROKEE SMALL LETTER GU */ - /*1636*/ 0x13ac, 1, 0xab7c, /* CHEROKEE SMALL LETTER GV */ - /*1639*/ 0x13ad, 1, 0xab7d, /* CHEROKEE SMALL LETTER HA */ - /*1642*/ 0x13ae, 1, 0xab7e, /* CHEROKEE SMALL LETTER HE */ - /*1645*/ 0x13af, 1, 0xab7f, /* CHEROKEE SMALL LETTER HI */ - /*1648*/ 0x13b0, 1, 0xab80, /* CHEROKEE SMALL LETTER HO */ - /*1651*/ 0x13b1, 1, 0xab81, /* CHEROKEE SMALL LETTER HU */ - /*1654*/ 0x13b2, 1, 0xab82, /* CHEROKEE SMALL LETTER HV */ - /*1657*/ 0x13b3, 1, 0xab83, /* CHEROKEE SMALL LETTER LA */ - /*1660*/ 0x13b4, 1, 0xab84, /* CHEROKEE SMALL LETTER LE */ - /*1663*/ 0x13b5, 1, 0xab85, /* CHEROKEE SMALL LETTER LI */ - /*1666*/ 0x13b6, 1, 0xab86, /* CHEROKEE SMALL LETTER LO */ - /*1669*/ 0x13b7, 1, 0xab87, /* CHEROKEE SMALL LETTER LU */ - /*1672*/ 0x13b8, 1, 0xab88, /* CHEROKEE SMALL LETTER LV */ - /*1675*/ 0x13b9, 1, 0xab89, /* CHEROKEE SMALL LETTER MA */ - /*1678*/ 0x13ba, 1, 0xab8a, /* CHEROKEE SMALL LETTER ME */ - /*1681*/ 0x13bb, 1, 0xab8b, /* CHEROKEE SMALL LETTER MI */ - /*1684*/ 0x13bc, 1, 0xab8c, /* CHEROKEE SMALL LETTER MO */ - /*1687*/ 0x13bd, 1, 0xab8d, /* CHEROKEE SMALL LETTER MU */ - /*1690*/ 0x13be, 1, 0xab8e, /* CHEROKEE SMALL LETTER NA */ - /*1693*/ 0x13bf, 1, 0xab8f, /* CHEROKEE SMALL LETTER HNA */ - /*1696*/ 0x13c0, 1, 0xab90, /* CHEROKEE SMALL LETTER NAH */ - /*1699*/ 0x13c1, 1, 0xab91, /* CHEROKEE SMALL LETTER NE */ - /*1702*/ 0x13c2, 1, 0xab92, /* CHEROKEE SMALL LETTER NI */ - /*1705*/ 0x13c3, 1, 0xab93, /* CHEROKEE SMALL LETTER NO */ - /*1708*/ 0x13c4, 1, 0xab94, /* CHEROKEE SMALL LETTER NU */ - /*1711*/ 0x13c5, 1, 0xab95, /* CHEROKEE SMALL LETTER NV */ - /*1714*/ 0x13c6, 1, 0xab96, /* CHEROKEE SMALL LETTER QUA */ - /*1717*/ 0x13c7, 1, 0xab97, /* CHEROKEE SMALL LETTER QUE */ - /*1720*/ 0x13c8, 1, 0xab98, /* CHEROKEE SMALL LETTER QUI */ - /*1723*/ 0x13c9, 1, 0xab99, /* CHEROKEE SMALL LETTER QUO */ - /*1726*/ 0x13ca, 1, 0xab9a, /* CHEROKEE SMALL LETTER QUU */ - /*1729*/ 0x13cb, 1, 0xab9b, /* CHEROKEE SMALL LETTER QUV */ - /*1732*/ 0x13cc, 1, 0xab9c, /* CHEROKEE SMALL LETTER SA */ - /*1735*/ 0x13cd, 1, 0xab9d, /* CHEROKEE SMALL LETTER S */ - /*1738*/ 0x13ce, 1, 0xab9e, /* CHEROKEE SMALL LETTER SE */ - /*1741*/ 0x13cf, 1, 0xab9f, /* CHEROKEE SMALL LETTER SI */ - /*1744*/ 0x13d0, 1, 0xaba0, /* CHEROKEE SMALL LETTER SO */ - /*1747*/ 0x13d1, 1, 0xaba1, /* CHEROKEE SMALL LETTER SU */ - /*1750*/ 0x13d2, 1, 0xaba2, /* CHEROKEE SMALL LETTER SV */ - /*1753*/ 0x13d3, 1, 0xaba3, /* CHEROKEE SMALL LETTER DA */ - /*1756*/ 0x13d4, 1, 0xaba4, /* CHEROKEE SMALL LETTER TA */ - /*1759*/ 0x13d5, 1, 0xaba5, /* CHEROKEE SMALL LETTER DE */ - /*1762*/ 0x13d6, 1, 0xaba6, /* CHEROKEE SMALL LETTER TE */ - /*1765*/ 0x13d7, 1, 0xaba7, /* CHEROKEE SMALL LETTER DI */ - /*1768*/ 0x13d8, 1, 0xaba8, /* CHEROKEE SMALL LETTER TI */ - /*1771*/ 0x13d9, 1, 0xaba9, /* CHEROKEE SMALL LETTER DO */ - /*1774*/ 0x13da, 1, 0xabaa, /* CHEROKEE SMALL LETTER DU */ - /*1777*/ 0x13db, 1, 0xabab, /* CHEROKEE SMALL LETTER DV */ - /*1780*/ 0x13dc, 1, 0xabac, /* CHEROKEE SMALL LETTER DLA */ - /*1783*/ 0x13dd, 1, 0xabad, /* CHEROKEE SMALL LETTER TLA */ - /*1786*/ 0x13de, 1, 0xabae, /* CHEROKEE SMALL LETTER TLE */ - /*1789*/ 0x13df, 1, 0xabaf, /* CHEROKEE SMALL LETTER TLI */ - /*1792*/ 0x13e0, 1, 0xabb0, /* CHEROKEE SMALL LETTER TLO */ - /*1795*/ 0x13e1, 1, 0xabb1, /* CHEROKEE SMALL LETTER TLU */ - /*1798*/ 0x13e2, 1, 0xabb2, /* CHEROKEE SMALL LETTER TLV */ - /*1801*/ 0x13e3, 1, 0xabb3, /* CHEROKEE SMALL LETTER TSA */ - /*1804*/ 0x13e4, 1, 0xabb4, /* CHEROKEE SMALL LETTER TSE */ - /*1807*/ 0x13e5, 1, 0xabb5, /* CHEROKEE SMALL LETTER TSI */ - /*1810*/ 0x13e6, 1, 0xabb6, /* CHEROKEE SMALL LETTER TSO */ - /*1813*/ 0x13e7, 1, 0xabb7, /* CHEROKEE SMALL LETTER TSU */ - /*1816*/ 0x13e8, 1, 0xabb8, /* CHEROKEE SMALL LETTER TSV */ - /*1819*/ 0x13e9, 1, 0xabb9, /* CHEROKEE SMALL LETTER WA */ - /*1822*/ 0x13ea, 1, 0xabba, /* CHEROKEE SMALL LETTER WE */ - /*1825*/ 0x13eb, 1, 0xabbb, /* CHEROKEE SMALL LETTER WI */ - /*1828*/ 0x13ec, 1, 0xabbc, /* CHEROKEE SMALL LETTER WO */ - /*1831*/ 0x13ed, 1, 0xabbd, /* CHEROKEE SMALL LETTER WU */ - /*1834*/ 0x13ee, 1, 0xabbe, /* CHEROKEE SMALL LETTER WV */ - /*1837*/ 0x13ef, 1, 0xabbf, /* CHEROKEE SMALL LETTER YA */ - /*1840*/ 0x13f0, 1, 0x13f8, /* CHEROKEE SMALL LETTER YE */ - /*1843*/ 0x13f1, 1, 0x13f9, /* CHEROKEE SMALL LETTER YI */ - /*1846*/ 0x13f2, 1, 0x13fa, /* CHEROKEE SMALL LETTER YO */ - /*1849*/ 0x13f3, 1, 0x13fb, /* CHEROKEE SMALL LETTER YU */ - /*1852*/ 0x13f4, 1, 0x13fc, /* CHEROKEE SMALL LETTER YV */ - /*1855*/ 0x13f5, 1, 0x13fd, /* CHEROKEE SMALL LETTER MV */ - /*1858*/ 0x1d79, 1, 0xa77d, /* LATIN CAPITAL LETTER INSULAR G */ - /*1861*/ 0x1d7d, 1, 0x2c63, /* LATIN CAPITAL LETTER P WITH STROKE */ - /*1864*/ 0x1d8e, 1, 0xa7c6, /* LATIN CAPITAL LETTER Z WITH PALAT.. */ - /*1867*/ 0x1e01, 1, 0x1e00, /* LATIN CAPITAL LETTER A WITH RING .. */ - /*1870*/ 0x1e03, 1, 0x1e02, /* LATIN CAPITAL LETTER B WITH DOT A.. */ - /*1873*/ 0x1e05, 1, 0x1e04, /* LATIN CAPITAL LETTER B WITH DOT B.. */ - /*1876*/ 0x1e07, 1, 0x1e06, /* LATIN CAPITAL LETTER B WITH LINE .. */ - /*1879*/ 0x1e09, 1, 0x1e08, /* LATIN CAPITAL LETTER C WITH CEDIL.. */ - /*1882*/ 0x1e0b, 1, 0x1e0a, /* LATIN CAPITAL LETTER D WITH DOT A.. */ - /*1885*/ 0x1e0d, 1, 0x1e0c, /* LATIN CAPITAL LETTER D WITH DOT B.. */ - /*1888*/ 0x1e0f, 1, 0x1e0e, /* LATIN CAPITAL LETTER D WITH LINE .. */ - /*1891*/ 0x1e11, 1, 0x1e10, /* LATIN CAPITAL LETTER D WITH CEDIL.. */ - /*1894*/ 0x1e13, 1, 0x1e12, /* LATIN CAPITAL LETTER D WITH CIRCU.. */ - /*1897*/ 0x1e15, 1, 0x1e14, /* LATIN CAPITAL LETTER E WITH MACRO.. */ - /*1900*/ 0x1e17, 1, 0x1e16, /* LATIN CAPITAL LETTER E WITH MACRO.. */ - /*1903*/ 0x1e19, 1, 0x1e18, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*1906*/ 0x1e1b, 1, 0x1e1a, /* LATIN CAPITAL LETTER E WITH TILDE.. */ - /*1909*/ 0x1e1d, 1, 0x1e1c, /* LATIN CAPITAL LETTER E WITH CEDIL.. */ - /*1912*/ 0x1e1f, 1, 0x1e1e, /* LATIN CAPITAL LETTER F WITH DOT A.. */ - /*1915*/ 0x1e21, 1, 0x1e20, /* LATIN CAPITAL LETTER G WITH MACRON */ - /*1918*/ 0x1e23, 1, 0x1e22, /* LATIN CAPITAL LETTER H WITH DOT A.. */ - /*1921*/ 0x1e25, 1, 0x1e24, /* LATIN CAPITAL LETTER H WITH DOT B.. */ - /*1924*/ 0x1e27, 1, 0x1e26, /* LATIN CAPITAL LETTER H WITH DIAER.. */ - /*1927*/ 0x1e29, 1, 0x1e28, /* LATIN CAPITAL LETTER H WITH CEDIL.. */ - /*1930*/ 0x1e2b, 1, 0x1e2a, /* LATIN CAPITAL LETTER H WITH BREVE.. */ - /*1933*/ 0x1e2d, 1, 0x1e2c, /* LATIN CAPITAL LETTER I WITH TILDE.. */ - /*1936*/ 0x1e2f, 1, 0x1e2e, /* LATIN CAPITAL LETTER I WITH DIAER.. */ - /*1939*/ 0x1e31, 1, 0x1e30, /* LATIN CAPITAL LETTER K WITH ACUTE */ - /*1942*/ 0x1e33, 1, 0x1e32, /* LATIN CAPITAL LETTER K WITH DOT B.. */ - /*1945*/ 0x1e35, 1, 0x1e34, /* LATIN CAPITAL LETTER K WITH LINE .. */ - /*1948*/ 0x1e37, 1, 0x1e36, /* LATIN CAPITAL LETTER L WITH DOT B.. */ - /*1951*/ 0x1e39, 1, 0x1e38, /* LATIN CAPITAL LETTER L WITH DOT B.. */ - /*1954*/ 0x1e3b, 1, 0x1e3a, /* LATIN CAPITAL LETTER L WITH LINE .. */ - /*1957*/ 0x1e3d, 1, 0x1e3c, /* LATIN CAPITAL LETTER L WITH CIRCU.. */ - /*1960*/ 0x1e3f, 1, 0x1e3e, /* LATIN CAPITAL LETTER M WITH ACUTE */ - /*1963*/ 0x1e41, 1, 0x1e40, /* LATIN CAPITAL LETTER M WITH DOT A.. */ - /*1966*/ 0x1e43, 1, 0x1e42, /* LATIN CAPITAL LETTER M WITH DOT B.. */ - /*1969*/ 0x1e45, 1, 0x1e44, /* LATIN CAPITAL LETTER N WITH DOT A.. */ - /*1972*/ 0x1e47, 1, 0x1e46, /* LATIN CAPITAL LETTER N WITH DOT B.. */ - /*1975*/ 0x1e49, 1, 0x1e48, /* LATIN CAPITAL LETTER N WITH LINE .. */ - /*1978*/ 0x1e4b, 1, 0x1e4a, /* LATIN CAPITAL LETTER N WITH CIRCU.. */ - /*1981*/ 0x1e4d, 1, 0x1e4c, /* LATIN CAPITAL LETTER O WITH TILDE.. */ - /*1984*/ 0x1e4f, 1, 0x1e4e, /* LATIN CAPITAL LETTER O WITH TILDE.. */ - /*1987*/ 0x1e51, 1, 0x1e50, /* LATIN CAPITAL LETTER O WITH MACRO.. */ - /*1990*/ 0x1e53, 1, 0x1e52, /* LATIN CAPITAL LETTER O WITH MACRO.. */ - /*1993*/ 0x1e55, 1, 0x1e54, /* LATIN CAPITAL LETTER P WITH ACUTE */ - /*1996*/ 0x1e57, 1, 0x1e56, /* LATIN CAPITAL LETTER P WITH DOT A.. */ - /*1999*/ 0x1e59, 1, 0x1e58, /* LATIN CAPITAL LETTER R WITH DOT A.. */ - /*2002*/ 0x1e5b, 1, 0x1e5a, /* LATIN CAPITAL LETTER R WITH DOT B.. */ - /*2005*/ 0x1e5d, 1, 0x1e5c, /* LATIN CAPITAL LETTER R WITH DOT B.. */ - /*2008*/ 0x1e5f, 1, 0x1e5e, /* LATIN CAPITAL LETTER R WITH LINE .. */ - /*2011*/ 0x1e61, 2, 0x1e60, 0x1e9b, /* LATIN CAPITAL LETTER S WITH DOT A.. */ - /*2015*/ 0x1e63, 1, 0x1e62, /* LATIN CAPITAL LETTER S WITH DOT B.. */ - /*2018*/ 0x1e65, 1, 0x1e64, /* LATIN CAPITAL LETTER S WITH ACUTE.. */ - /*2021*/ 0x1e67, 1, 0x1e66, /* LATIN CAPITAL LETTER S WITH CARON.. */ - /*2024*/ 0x1e69, 1, 0x1e68, /* LATIN CAPITAL LETTER S WITH DOT B.. */ - /*2027*/ 0x1e6b, 1, 0x1e6a, /* LATIN CAPITAL LETTER T WITH DOT A.. */ - /*2030*/ 0x1e6d, 1, 0x1e6c, /* LATIN CAPITAL LETTER T WITH DOT B.. */ - /*2033*/ 0x1e6f, 1, 0x1e6e, /* LATIN CAPITAL LETTER T WITH LINE .. */ - /*2036*/ 0x1e71, 1, 0x1e70, /* LATIN CAPITAL LETTER T WITH CIRCU.. */ - /*2039*/ 0x1e73, 1, 0x1e72, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /*2042*/ 0x1e75, 1, 0x1e74, /* LATIN CAPITAL LETTER U WITH TILDE.. */ - /*2045*/ 0x1e77, 1, 0x1e76, /* LATIN CAPITAL LETTER U WITH CIRCU.. */ - /*2048*/ 0x1e79, 1, 0x1e78, /* LATIN CAPITAL LETTER U WITH TILDE.. */ - /*2051*/ 0x1e7b, 1, 0x1e7a, /* LATIN CAPITAL LETTER U WITH MACRO.. */ - /*2054*/ 0x1e7d, 1, 0x1e7c, /* LATIN CAPITAL LETTER V WITH TILDE */ - /*2057*/ 0x1e7f, 1, 0x1e7e, /* LATIN CAPITAL LETTER V WITH DOT B.. */ - /*2060*/ 0x1e81, 1, 0x1e80, /* LATIN CAPITAL LETTER W WITH GRAVE */ - /*2063*/ 0x1e83, 1, 0x1e82, /* LATIN CAPITAL LETTER W WITH ACUTE */ - /*2066*/ 0x1e85, 1, 0x1e84, /* LATIN CAPITAL LETTER W WITH DIAER.. */ - /*2069*/ 0x1e87, 1, 0x1e86, /* LATIN CAPITAL LETTER W WITH DOT A.. */ - /*2072*/ 0x1e89, 1, 0x1e88, /* LATIN CAPITAL LETTER W WITH DOT B.. */ - /*2075*/ 0x1e8b, 1, 0x1e8a, /* LATIN CAPITAL LETTER X WITH DOT A.. */ - /*2078*/ 0x1e8d, 1, 0x1e8c, /* LATIN CAPITAL LETTER X WITH DIAER.. */ - /*2081*/ 0x1e8f, 1, 0x1e8e, /* LATIN CAPITAL LETTER Y WITH DOT A.. */ - /*2084*/ 0x1e91, 1, 0x1e90, /* LATIN CAPITAL LETTER Z WITH CIRCU.. */ - /*2087*/ 0x1e93, 1, 0x1e92, /* LATIN CAPITAL LETTER Z WITH DOT B.. */ - /*2090*/ 0x1e95, 1, 0x1e94, /* LATIN CAPITAL LETTER Z WITH LINE .. */ - /*2093*/ 0x1ea1, 1, 0x1ea0, /* LATIN CAPITAL LETTER A WITH DOT B.. */ - /*2096*/ 0x1ea3, 1, 0x1ea2, /* LATIN CAPITAL LETTER A WITH HOOK .. */ - /*2099*/ 0x1ea5, 1, 0x1ea4, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2102*/ 0x1ea7, 1, 0x1ea6, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2105*/ 0x1ea9, 1, 0x1ea8, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2108*/ 0x1eab, 1, 0x1eaa, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2111*/ 0x1ead, 1, 0x1eac, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2114*/ 0x1eaf, 1, 0x1eae, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2117*/ 0x1eb1, 1, 0x1eb0, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2120*/ 0x1eb3, 1, 0x1eb2, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2123*/ 0x1eb5, 1, 0x1eb4, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2126*/ 0x1eb7, 1, 0x1eb6, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2129*/ 0x1eb9, 1, 0x1eb8, /* LATIN CAPITAL LETTER E WITH DOT B.. */ - /*2132*/ 0x1ebb, 1, 0x1eba, /* LATIN CAPITAL LETTER E WITH HOOK .. */ - /*2135*/ 0x1ebd, 1, 0x1ebc, /* LATIN CAPITAL LETTER E WITH TILDE */ - /*2138*/ 0x1ebf, 1, 0x1ebe, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2141*/ 0x1ec1, 1, 0x1ec0, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2144*/ 0x1ec3, 1, 0x1ec2, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2147*/ 0x1ec5, 1, 0x1ec4, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2150*/ 0x1ec7, 1, 0x1ec6, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2153*/ 0x1ec9, 1, 0x1ec8, /* LATIN CAPITAL LETTER I WITH HOOK .. */ - /*2156*/ 0x1ecb, 1, 0x1eca, /* LATIN CAPITAL LETTER I WITH DOT B.. */ - /*2159*/ 0x1ecd, 1, 0x1ecc, /* LATIN CAPITAL LETTER O WITH DOT B.. */ - /*2162*/ 0x1ecf, 1, 0x1ece, /* LATIN CAPITAL LETTER O WITH HOOK .. */ - /*2165*/ 0x1ed1, 1, 0x1ed0, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2168*/ 0x1ed3, 1, 0x1ed2, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2171*/ 0x1ed5, 1, 0x1ed4, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2174*/ 0x1ed7, 1, 0x1ed6, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2177*/ 0x1ed9, 1, 0x1ed8, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2180*/ 0x1edb, 1, 0x1eda, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2183*/ 0x1edd, 1, 0x1edc, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2186*/ 0x1edf, 1, 0x1ede, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2189*/ 0x1ee1, 1, 0x1ee0, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2192*/ 0x1ee3, 1, 0x1ee2, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2195*/ 0x1ee5, 1, 0x1ee4, /* LATIN CAPITAL LETTER U WITH DOT B.. */ - /*2198*/ 0x1ee7, 1, 0x1ee6, /* LATIN CAPITAL LETTER U WITH HOOK .. */ - /*2201*/ 0x1ee9, 1, 0x1ee8, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2204*/ 0x1eeb, 1, 0x1eea, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2207*/ 0x1eed, 1, 0x1eec, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2210*/ 0x1eef, 1, 0x1eee, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2213*/ 0x1ef1, 1, 0x1ef0, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2216*/ 0x1ef3, 1, 0x1ef2, /* LATIN CAPITAL LETTER Y WITH GRAVE */ - /*2219*/ 0x1ef5, 1, 0x1ef4, /* LATIN CAPITAL LETTER Y WITH DOT B.. */ - /*2222*/ 0x1ef7, 1, 0x1ef6, /* LATIN CAPITAL LETTER Y WITH HOOK .. */ - /*2225*/ 0x1ef9, 1, 0x1ef8, /* LATIN CAPITAL LETTER Y WITH TILDE */ - /*2228*/ 0x1efb, 1, 0x1efa, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */ - /*2231*/ 0x1efd, 1, 0x1efc, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */ - /*2234*/ 0x1eff, 1, 0x1efe, /* LATIN CAPITAL LETTER Y WITH LOOP */ - /*2237*/ 0x1f00, 1, 0x1f08, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ - /*2240*/ 0x1f01, 1, 0x1f09, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ - /*2243*/ 0x1f02, 1, 0x1f0a, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ - /*2246*/ 0x1f03, 1, 0x1f0b, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ - /*2249*/ 0x1f04, 1, 0x1f0c, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ - /*2252*/ 0x1f05, 1, 0x1f0d, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ - /*2255*/ 0x1f06, 1, 0x1f0e, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ - /*2258*/ 0x1f07, 1, 0x1f0f, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ - /*2261*/ 0x1f10, 1, 0x1f18, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2264*/ 0x1f11, 1, 0x1f19, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2267*/ 0x1f12, 1, 0x1f1a, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2270*/ 0x1f13, 1, 0x1f1b, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2273*/ 0x1f14, 1, 0x1f1c, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2276*/ 0x1f15, 1, 0x1f1d, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2279*/ 0x1f20, 1, 0x1f28, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ - /*2282*/ 0x1f21, 1, 0x1f29, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ - /*2285*/ 0x1f22, 1, 0x1f2a, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ - /*2288*/ 0x1f23, 1, 0x1f2b, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ - /*2291*/ 0x1f24, 1, 0x1f2c, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ - /*2294*/ 0x1f25, 1, 0x1f2d, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ - /*2297*/ 0x1f26, 1, 0x1f2e, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ - /*2300*/ 0x1f27, 1, 0x1f2f, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ - /*2303*/ 0x1f30, 1, 0x1f38, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ - /*2306*/ 0x1f31, 1, 0x1f39, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ - /*2309*/ 0x1f32, 1, 0x1f3a, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ - /*2312*/ 0x1f33, 1, 0x1f3b, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ - /*2315*/ 0x1f34, 1, 0x1f3c, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ - /*2318*/ 0x1f35, 1, 0x1f3d, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ - /*2321*/ 0x1f36, 1, 0x1f3e, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ - /*2324*/ 0x1f37, 1, 0x1f3f, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ - /*2327*/ 0x1f40, 1, 0x1f48, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2330*/ 0x1f41, 1, 0x1f49, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2333*/ 0x1f42, 1, 0x1f4a, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2336*/ 0x1f43, 1, 0x1f4b, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2339*/ 0x1f44, 1, 0x1f4c, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2342*/ 0x1f45, 1, 0x1f4d, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2345*/ 0x1f51, 1, 0x1f59, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2348*/ 0x1f53, 1, 0x1f5b, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2351*/ 0x1f55, 1, 0x1f5d, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2354*/ 0x1f57, 1, 0x1f5f, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2357*/ 0x1f60, 1, 0x1f68, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ - /*2360*/ 0x1f61, 1, 0x1f69, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ - /*2363*/ 0x1f62, 1, 0x1f6a, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ - /*2366*/ 0x1f63, 1, 0x1f6b, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ - /*2369*/ 0x1f64, 1, 0x1f6c, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ - /*2372*/ 0x1f65, 1, 0x1f6d, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ - /*2375*/ 0x1f66, 1, 0x1f6e, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ - /*2378*/ 0x1f67, 1, 0x1f6f, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ - /*2381*/ 0x1f70, 1, 0x1fba, /* GREEK CAPITAL LETTER ALPHA WITH V.. */ - /*2384*/ 0x1f71, 1, 0x1fbb, /* GREEK CAPITAL LETTER ALPHA WITH O.. */ - /*2387*/ 0x1f72, 1, 0x1fc8, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2390*/ 0x1f73, 1, 0x1fc9, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2393*/ 0x1f74, 1, 0x1fca, /* GREEK CAPITAL LETTER ETA WITH VAR.. */ - /*2396*/ 0x1f75, 1, 0x1fcb, /* GREEK CAPITAL LETTER ETA WITH OXIA */ - /*2399*/ 0x1f76, 1, 0x1fda, /* GREEK CAPITAL LETTER IOTA WITH VA.. */ - /*2402*/ 0x1f77, 1, 0x1fdb, /* GREEK CAPITAL LETTER IOTA WITH OX.. */ - /*2405*/ 0x1f78, 1, 0x1ff8, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2408*/ 0x1f79, 1, 0x1ff9, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2411*/ 0x1f7a, 1, 0x1fea, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2414*/ 0x1f7b, 1, 0x1feb, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2417*/ 0x1f7c, 1, 0x1ffa, /* GREEK CAPITAL LETTER OMEGA WITH V.. */ - /*2420*/ 0x1f7d, 1, 0x1ffb, /* GREEK CAPITAL LETTER OMEGA WITH O.. */ - /*2423*/ 0x1fb0, 1, 0x1fb8, /* GREEK CAPITAL LETTER ALPHA WITH V.. */ - /*2426*/ 0x1fb1, 1, 0x1fb9, /* GREEK CAPITAL LETTER ALPHA WITH M.. */ - /*2429*/ 0x1fd0, 1, 0x1fd8, /* GREEK CAPITAL LETTER IOTA WITH VR.. */ - /*2432*/ 0x1fd1, 1, 0x1fd9, /* GREEK CAPITAL LETTER IOTA WITH MA.. */ - /*2435*/ 0x1fe0, 1, 0x1fe8, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2438*/ 0x1fe1, 1, 0x1fe9, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2441*/ 0x1fe5, 1, 0x1fec, /* GREEK CAPITAL LETTER RHO WITH DAS.. */ - /*2444*/ 0x214e, 1, 0x2132, /* TURNED CAPITAL F */ - /*2447*/ 0x2170, 1, 0x2160, /* ROMAN NUMERAL ONE */ - /*2450*/ 0x2171, 1, 0x2161, /* ROMAN NUMERAL TWO */ - /*2453*/ 0x2172, 1, 0x2162, /* ROMAN NUMERAL THREE */ - /*2456*/ 0x2173, 1, 0x2163, /* ROMAN NUMERAL FOUR */ - /*2459*/ 0x2174, 1, 0x2164, /* ROMAN NUMERAL FIVE */ - /*2462*/ 0x2175, 1, 0x2165, /* ROMAN NUMERAL SIX */ - /*2465*/ 0x2176, 1, 0x2166, /* ROMAN NUMERAL SEVEN */ - /*2468*/ 0x2177, 1, 0x2167, /* ROMAN NUMERAL EIGHT */ - /*2471*/ 0x2178, 1, 0x2168, /* ROMAN NUMERAL NINE */ - /*2474*/ 0x2179, 1, 0x2169, /* ROMAN NUMERAL TEN */ - /*2477*/ 0x217a, 1, 0x216a, /* ROMAN NUMERAL ELEVEN */ - /*2480*/ 0x217b, 1, 0x216b, /* ROMAN NUMERAL TWELVE */ - /*2483*/ 0x217c, 1, 0x216c, /* ROMAN NUMERAL FIFTY */ - /*2486*/ 0x217d, 1, 0x216d, /* ROMAN NUMERAL ONE HUNDRED */ - /*2489*/ 0x217e, 1, 0x216e, /* ROMAN NUMERAL FIVE HUNDRED */ - /*2492*/ 0x217f, 1, 0x216f, /* ROMAN NUMERAL ONE THOUSAND */ - /*2495*/ 0x2184, 1, 0x2183, /* ROMAN NUMERAL REVERSED ONE HUNDRED */ - /*2498*/ 0x24d0, 1, 0x24b6, /* CIRCLED LATIN CAPITAL LETTER A */ - /*2501*/ 0x24d1, 1, 0x24b7, /* CIRCLED LATIN CAPITAL LETTER B */ - /*2504*/ 0x24d2, 1, 0x24b8, /* CIRCLED LATIN CAPITAL LETTER C */ - /*2507*/ 0x24d3, 1, 0x24b9, /* CIRCLED LATIN CAPITAL LETTER D */ - /*2510*/ 0x24d4, 1, 0x24ba, /* CIRCLED LATIN CAPITAL LETTER E */ - /*2513*/ 0x24d5, 1, 0x24bb, /* CIRCLED LATIN CAPITAL LETTER F */ - /*2516*/ 0x24d6, 1, 0x24bc, /* CIRCLED LATIN CAPITAL LETTER G */ - /*2519*/ 0x24d7, 1, 0x24bd, /* CIRCLED LATIN CAPITAL LETTER H */ - /*2522*/ 0x24d8, 1, 0x24be, /* CIRCLED LATIN CAPITAL LETTER I */ - /*2525*/ 0x24d9, 1, 0x24bf, /* CIRCLED LATIN CAPITAL LETTER J */ - /*2528*/ 0x24da, 1, 0x24c0, /* CIRCLED LATIN CAPITAL LETTER K */ - /*2531*/ 0x24db, 1, 0x24c1, /* CIRCLED LATIN CAPITAL LETTER L */ - /*2534*/ 0x24dc, 1, 0x24c2, /* CIRCLED LATIN CAPITAL LETTER M */ - /*2537*/ 0x24dd, 1, 0x24c3, /* CIRCLED LATIN CAPITAL LETTER N */ - /*2540*/ 0x24de, 1, 0x24c4, /* CIRCLED LATIN CAPITAL LETTER O */ - /*2543*/ 0x24df, 1, 0x24c5, /* CIRCLED LATIN CAPITAL LETTER P */ - /*2546*/ 0x24e0, 1, 0x24c6, /* CIRCLED LATIN CAPITAL LETTER Q */ - /*2549*/ 0x24e1, 1, 0x24c7, /* CIRCLED LATIN CAPITAL LETTER R */ - /*2552*/ 0x24e2, 1, 0x24c8, /* CIRCLED LATIN CAPITAL LETTER S */ - /*2555*/ 0x24e3, 1, 0x24c9, /* CIRCLED LATIN CAPITAL LETTER T */ - /*2558*/ 0x24e4, 1, 0x24ca, /* CIRCLED LATIN CAPITAL LETTER U */ - /*2561*/ 0x24e5, 1, 0x24cb, /* CIRCLED LATIN CAPITAL LETTER V */ - /*2564*/ 0x24e6, 1, 0x24cc, /* CIRCLED LATIN CAPITAL LETTER W */ - /*2567*/ 0x24e7, 1, 0x24cd, /* CIRCLED LATIN CAPITAL LETTER X */ - /*2570*/ 0x24e8, 1, 0x24ce, /* CIRCLED LATIN CAPITAL LETTER Y */ - /*2573*/ 0x24e9, 1, 0x24cf, /* CIRCLED LATIN CAPITAL LETTER Z */ - /*2576*/ 0x2c30, 1, 0x2c00, /* GLAGOLITIC CAPITAL LETTER AZU */ - /*2579*/ 0x2c31, 1, 0x2c01, /* GLAGOLITIC CAPITAL LETTER BUKY */ - /*2582*/ 0x2c32, 1, 0x2c02, /* GLAGOLITIC CAPITAL LETTER VEDE */ - /*2585*/ 0x2c33, 1, 0x2c03, /* GLAGOLITIC CAPITAL LETTER GLAGOLI */ - /*2588*/ 0x2c34, 1, 0x2c04, /* GLAGOLITIC CAPITAL LETTER DOBRO */ - /*2591*/ 0x2c35, 1, 0x2c05, /* GLAGOLITIC CAPITAL LETTER YESTU */ - /*2594*/ 0x2c36, 1, 0x2c06, /* GLAGOLITIC CAPITAL LETTER ZHIVETE */ - /*2597*/ 0x2c37, 1, 0x2c07, /* GLAGOLITIC CAPITAL LETTER DZELO */ - /*2600*/ 0x2c38, 1, 0x2c08, /* GLAGOLITIC CAPITAL LETTER ZEMLJA */ - /*2603*/ 0x2c39, 1, 0x2c09, /* GLAGOLITIC CAPITAL LETTER IZHE */ - /*2606*/ 0x2c3a, 1, 0x2c0a, /* GLAGOLITIC CAPITAL LETTER INITIAL.. */ - /*2609*/ 0x2c3b, 1, 0x2c0b, /* GLAGOLITIC CAPITAL LETTER I */ - /*2612*/ 0x2c3c, 1, 0x2c0c, /* GLAGOLITIC CAPITAL LETTER DJERVI */ - /*2615*/ 0x2c3d, 1, 0x2c0d, /* GLAGOLITIC CAPITAL LETTER KAKO */ - /*2618*/ 0x2c3e, 1, 0x2c0e, /* GLAGOLITIC CAPITAL LETTER LJUDIJE */ - /*2621*/ 0x2c3f, 1, 0x2c0f, /* GLAGOLITIC CAPITAL LETTER MYSLITE */ - /*2624*/ 0x2c40, 1, 0x2c10, /* GLAGOLITIC CAPITAL LETTER NASHI */ - /*2627*/ 0x2c41, 1, 0x2c11, /* GLAGOLITIC CAPITAL LETTER ONU */ - /*2630*/ 0x2c42, 1, 0x2c12, /* GLAGOLITIC CAPITAL LETTER POKOJI */ - /*2633*/ 0x2c43, 1, 0x2c13, /* GLAGOLITIC CAPITAL LETTER RITSI */ - /*2636*/ 0x2c44, 1, 0x2c14, /* GLAGOLITIC CAPITAL LETTER SLOVO */ - /*2639*/ 0x2c45, 1, 0x2c15, /* GLAGOLITIC CAPITAL LETTER TVRIDO */ - /*2642*/ 0x2c46, 1, 0x2c16, /* GLAGOLITIC CAPITAL LETTER UKU */ - /*2645*/ 0x2c47, 1, 0x2c17, /* GLAGOLITIC CAPITAL LETTER FRITU */ - /*2648*/ 0x2c48, 1, 0x2c18, /* GLAGOLITIC CAPITAL LETTER HERU */ - /*2651*/ 0x2c49, 1, 0x2c19, /* GLAGOLITIC CAPITAL LETTER OTU */ - /*2654*/ 0x2c4a, 1, 0x2c1a, /* GLAGOLITIC CAPITAL LETTER PE */ - /*2657*/ 0x2c4b, 1, 0x2c1b, /* GLAGOLITIC CAPITAL LETTER SHTA */ - /*2660*/ 0x2c4c, 1, 0x2c1c, /* GLAGOLITIC CAPITAL LETTER TSI */ - /*2663*/ 0x2c4d, 1, 0x2c1d, /* GLAGOLITIC CAPITAL LETTER CHRIVI */ - /*2666*/ 0x2c4e, 1, 0x2c1e, /* GLAGOLITIC CAPITAL LETTER SHA */ - /*2669*/ 0x2c4f, 1, 0x2c1f, /* GLAGOLITIC CAPITAL LETTER YERU */ - /*2672*/ 0x2c50, 1, 0x2c20, /* GLAGOLITIC CAPITAL LETTER YERI */ - /*2675*/ 0x2c51, 1, 0x2c21, /* GLAGOLITIC CAPITAL LETTER YATI */ - /*2678*/ 0x2c52, 1, 0x2c22, /* GLAGOLITIC CAPITAL LETTER SPIDERY.. */ - /*2681*/ 0x2c53, 1, 0x2c23, /* GLAGOLITIC CAPITAL LETTER YU */ - /*2684*/ 0x2c54, 1, 0x2c24, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */ - /*2687*/ 0x2c55, 1, 0x2c25, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */ - /*2690*/ 0x2c56, 1, 0x2c26, /* GLAGOLITIC CAPITAL LETTER YO */ - /*2693*/ 0x2c57, 1, 0x2c27, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */ - /*2696*/ 0x2c58, 1, 0x2c28, /* GLAGOLITIC CAPITAL LETTER BIG YUS */ - /*2699*/ 0x2c59, 1, 0x2c29, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */ - /*2702*/ 0x2c5a, 1, 0x2c2a, /* GLAGOLITIC CAPITAL LETTER FITA */ - /*2705*/ 0x2c5b, 1, 0x2c2b, /* GLAGOLITIC CAPITAL LETTER IZHITSA */ - /*2708*/ 0x2c5c, 1, 0x2c2c, /* GLAGOLITIC CAPITAL LETTER SHTAPIC */ - /*2711*/ 0x2c5d, 1, 0x2c2d, /* GLAGOLITIC CAPITAL LETTER TROKUTA.. */ - /*2714*/ 0x2c5e, 1, 0x2c2e, /* GLAGOLITIC CAPITAL LETTER LATINAT.. */ - /*2717*/ 0x2c5f, 1, 0x2c2f, /* GLAGOLITIC CAPITAL LETTER CAUDATE.. */ - /*2720*/ 0x2c61, 1, 0x2c60, /* LATIN CAPITAL LETTER L WITH DOUBL.. */ - /*2723*/ 0x2c65, 1, 0x023a, /* LATIN CAPITAL LETTER A WITH STROKE */ - /*2726*/ 0x2c66, 1, 0x023e, /* LATIN CAPITAL LETTER T WITH DIAGO.. */ - /*2729*/ 0x2c68, 1, 0x2c67, /* LATIN CAPITAL LETTER H WITH DESCE.. */ - /*2732*/ 0x2c6a, 1, 0x2c69, /* LATIN CAPITAL LETTER K WITH DESCE.. */ - /*2735*/ 0x2c6c, 1, 0x2c6b, /* LATIN CAPITAL LETTER Z WITH DESCE.. */ - /*2738*/ 0x2c73, 1, 0x2c72, /* LATIN CAPITAL LETTER W WITH HOOK */ - /*2741*/ 0x2c76, 1, 0x2c75, /* LATIN CAPITAL LETTER HALF H */ - /*2744*/ 0x2c81, 1, 0x2c80, /* COPTIC CAPITAL LETTER ALFA */ - /*2747*/ 0x2c83, 1, 0x2c82, /* COPTIC CAPITAL LETTER VIDA */ - /*2750*/ 0x2c85, 1, 0x2c84, /* COPTIC CAPITAL LETTER GAMMA */ - /*2753*/ 0x2c87, 1, 0x2c86, /* COPTIC CAPITAL LETTER DALDA */ - /*2756*/ 0x2c89, 1, 0x2c88, /* COPTIC CAPITAL LETTER EIE */ - /*2759*/ 0x2c8b, 1, 0x2c8a, /* COPTIC CAPITAL LETTER SOU */ - /*2762*/ 0x2c8d, 1, 0x2c8c, /* COPTIC CAPITAL LETTER ZATA */ - /*2765*/ 0x2c8f, 1, 0x2c8e, /* COPTIC CAPITAL LETTER HATE */ - /*2768*/ 0x2c91, 1, 0x2c90, /* COPTIC CAPITAL LETTER THETHE */ - /*2771*/ 0x2c93, 1, 0x2c92, /* COPTIC CAPITAL LETTER IAUDA */ - /*2774*/ 0x2c95, 1, 0x2c94, /* COPTIC CAPITAL LETTER KAPA */ - /*2777*/ 0x2c97, 1, 0x2c96, /* COPTIC CAPITAL LETTER LAULA */ - /*2780*/ 0x2c99, 1, 0x2c98, /* COPTIC CAPITAL LETTER MI */ - /*2783*/ 0x2c9b, 1, 0x2c9a, /* COPTIC CAPITAL LETTER NI */ - /*2786*/ 0x2c9d, 1, 0x2c9c, /* COPTIC CAPITAL LETTER KSI */ - /*2789*/ 0x2c9f, 1, 0x2c9e, /* COPTIC CAPITAL LETTER O */ - /*2792*/ 0x2ca1, 1, 0x2ca0, /* COPTIC CAPITAL LETTER PI */ - /*2795*/ 0x2ca3, 1, 0x2ca2, /* COPTIC CAPITAL LETTER RO */ - /*2798*/ 0x2ca5, 1, 0x2ca4, /* COPTIC CAPITAL LETTER SIMA */ - /*2801*/ 0x2ca7, 1, 0x2ca6, /* COPTIC CAPITAL LETTER TAU */ - /*2804*/ 0x2ca9, 1, 0x2ca8, /* COPTIC CAPITAL LETTER UA */ - /*2807*/ 0x2cab, 1, 0x2caa, /* COPTIC CAPITAL LETTER FI */ - /*2810*/ 0x2cad, 1, 0x2cac, /* COPTIC CAPITAL LETTER KHI */ - /*2813*/ 0x2caf, 1, 0x2cae, /* COPTIC CAPITAL LETTER PSI */ - /*2816*/ 0x2cb1, 1, 0x2cb0, /* COPTIC CAPITAL LETTER OOU */ - /*2819*/ 0x2cb3, 1, 0x2cb2, /* COPTIC CAPITAL LETTER DIALECT-P A.. */ - /*2822*/ 0x2cb5, 1, 0x2cb4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2825*/ 0x2cb7, 1, 0x2cb6, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ - /*2828*/ 0x2cb9, 1, 0x2cb8, /* COPTIC CAPITAL LETTER DIALECT-P K.. */ - /*2831*/ 0x2cbb, 1, 0x2cba, /* COPTIC CAPITAL LETTER DIALECT-P NI */ - /*2834*/ 0x2cbd, 1, 0x2cbc, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ - /*2837*/ 0x2cbf, 1, 0x2cbe, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2840*/ 0x2cc1, 1, 0x2cc0, /* COPTIC CAPITAL LETTER SAMPI */ - /*2843*/ 0x2cc3, 1, 0x2cc2, /* COPTIC CAPITAL LETTER CROSSED SHEI */ - /*2846*/ 0x2cc5, 1, 0x2cc4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2849*/ 0x2cc7, 1, 0x2cc6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2852*/ 0x2cc9, 1, 0x2cc8, /* COPTIC CAPITAL LETTER AKHMIMIC KH.. */ - /*2855*/ 0x2ccb, 1, 0x2cca, /* COPTIC CAPITAL LETTER DIALECT-P H.. */ - /*2858*/ 0x2ccd, 1, 0x2ccc, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2861*/ 0x2ccf, 1, 0x2cce, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2864*/ 0x2cd1, 1, 0x2cd0, /* COPTIC CAPITAL LETTER L-SHAPED HA */ - /*2867*/ 0x2cd3, 1, 0x2cd2, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2870*/ 0x2cd5, 1, 0x2cd4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2873*/ 0x2cd7, 1, 0x2cd6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2876*/ 0x2cd9, 1, 0x2cd8, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2879*/ 0x2cdb, 1, 0x2cda, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2882*/ 0x2cdd, 1, 0x2cdc, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ - /*2885*/ 0x2cdf, 1, 0x2cde, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ - /*2888*/ 0x2ce1, 1, 0x2ce0, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ - /*2891*/ 0x2ce3, 1, 0x2ce2, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ - /*2894*/ 0x2cec, 1, 0x2ceb, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ - /*2897*/ 0x2cee, 1, 0x2ced, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ - /*2900*/ 0x2cf3, 1, 0x2cf2, /* COPTIC CAPITAL LETTER BOHAIRIC KH.. */ - /*2903*/ 0x2d00, 1, 0x10a0, /* GEORGIAN CAPITAL LETTER AN */ - /*2906*/ 0x2d01, 1, 0x10a1, /* GEORGIAN CAPITAL LETTER BAN */ - /*2909*/ 0x2d02, 1, 0x10a2, /* GEORGIAN CAPITAL LETTER GAN */ - /*2912*/ 0x2d03, 1, 0x10a3, /* GEORGIAN CAPITAL LETTER DON */ - /*2915*/ 0x2d04, 1, 0x10a4, /* GEORGIAN CAPITAL LETTER EN */ - /*2918*/ 0x2d05, 1, 0x10a5, /* GEORGIAN CAPITAL LETTER VIN */ - /*2921*/ 0x2d06, 1, 0x10a6, /* GEORGIAN CAPITAL LETTER ZEN */ - /*2924*/ 0x2d07, 1, 0x10a7, /* GEORGIAN CAPITAL LETTER TAN */ - /*2927*/ 0x2d08, 1, 0x10a8, /* GEORGIAN CAPITAL LETTER IN */ - /*2930*/ 0x2d09, 1, 0x10a9, /* GEORGIAN CAPITAL LETTER KAN */ - /*2933*/ 0x2d0a, 1, 0x10aa, /* GEORGIAN CAPITAL LETTER LAS */ - /*2936*/ 0x2d0b, 1, 0x10ab, /* GEORGIAN CAPITAL LETTER MAN */ - /*2939*/ 0x2d0c, 1, 0x10ac, /* GEORGIAN CAPITAL LETTER NAR */ - /*2942*/ 0x2d0d, 1, 0x10ad, /* GEORGIAN CAPITAL LETTER ON */ - /*2945*/ 0x2d0e, 1, 0x10ae, /* GEORGIAN CAPITAL LETTER PAR */ - /*2948*/ 0x2d0f, 1, 0x10af, /* GEORGIAN CAPITAL LETTER ZHAR */ - /*2951*/ 0x2d10, 1, 0x10b0, /* GEORGIAN CAPITAL LETTER RAE */ - /*2954*/ 0x2d11, 1, 0x10b1, /* GEORGIAN CAPITAL LETTER SAN */ - /*2957*/ 0x2d12, 1, 0x10b2, /* GEORGIAN CAPITAL LETTER TAR */ - /*2960*/ 0x2d13, 1, 0x10b3, /* GEORGIAN CAPITAL LETTER UN */ - /*2963*/ 0x2d14, 1, 0x10b4, /* GEORGIAN CAPITAL LETTER PHAR */ - /*2966*/ 0x2d15, 1, 0x10b5, /* GEORGIAN CAPITAL LETTER KHAR */ - /*2969*/ 0x2d16, 1, 0x10b6, /* GEORGIAN CAPITAL LETTER GHAN */ - /*2972*/ 0x2d17, 1, 0x10b7, /* GEORGIAN CAPITAL LETTER QAR */ - /*2975*/ 0x2d18, 1, 0x10b8, /* GEORGIAN CAPITAL LETTER SHIN */ - /*2978*/ 0x2d19, 1, 0x10b9, /* GEORGIAN CAPITAL LETTER CHIN */ - /*2981*/ 0x2d1a, 1, 0x10ba, /* GEORGIAN CAPITAL LETTER CAN */ - /*2984*/ 0x2d1b, 1, 0x10bb, /* GEORGIAN CAPITAL LETTER JIL */ - /*2987*/ 0x2d1c, 1, 0x10bc, /* GEORGIAN CAPITAL LETTER CIL */ - /*2990*/ 0x2d1d, 1, 0x10bd, /* GEORGIAN CAPITAL LETTER CHAR */ - /*2993*/ 0x2d1e, 1, 0x10be, /* GEORGIAN CAPITAL LETTER XAN */ - /*2996*/ 0x2d1f, 1, 0x10bf, /* GEORGIAN CAPITAL LETTER JHAN */ - /*2999*/ 0x2d20, 1, 0x10c0, /* GEORGIAN CAPITAL LETTER HAE */ - /*3002*/ 0x2d21, 1, 0x10c1, /* GEORGIAN CAPITAL LETTER HE */ - /*3005*/ 0x2d22, 1, 0x10c2, /* GEORGIAN CAPITAL LETTER HIE */ - /*3008*/ 0x2d23, 1, 0x10c3, /* GEORGIAN CAPITAL LETTER WE */ - /*3011*/ 0x2d24, 1, 0x10c4, /* GEORGIAN CAPITAL LETTER HAR */ - /*3014*/ 0x2d25, 1, 0x10c5, /* GEORGIAN CAPITAL LETTER HOE */ - /*3017*/ 0x2d27, 1, 0x10c7, /* GEORGIAN CAPITAL LETTER YN */ - /*3020*/ 0x2d2d, 1, 0x10cd, /* GEORGIAN CAPITAL LETTER AEN */ - /*3023*/ 0xa641, 1, 0xa640, /* CYRILLIC CAPITAL LETTER ZEMLYA */ - /*3026*/ 0xa643, 1, 0xa642, /* CYRILLIC CAPITAL LETTER DZELO */ - /*3029*/ 0xa645, 1, 0xa644, /* CYRILLIC CAPITAL LETTER REVERSED .. */ - /*3032*/ 0xa647, 1, 0xa646, /* CYRILLIC CAPITAL LETTER IOTA */ - /*3035*/ 0xa649, 1, 0xa648, /* CYRILLIC CAPITAL LETTER DJERV */ - /*3038*/ 0xa64b, 2, 0x1c88, 0xa64a, /* CYRILLIC SMALL LETTER UNBLENDED UK */ - /*3042*/ 0xa64d, 1, 0xa64c, /* CYRILLIC CAPITAL LETTER BROAD OME.. */ - /*3045*/ 0xa64f, 1, 0xa64e, /* CYRILLIC CAPITAL LETTER NEUTRAL Y.. */ - /*3048*/ 0xa651, 1, 0xa650, /* CYRILLIC CAPITAL LETTER YERU WITH.. */ - /*3051*/ 0xa653, 1, 0xa652, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ - /*3054*/ 0xa655, 1, 0xa654, /* CYRILLIC CAPITAL LETTER REVERSED .. */ - /*3057*/ 0xa657, 1, 0xa656, /* CYRILLIC CAPITAL LETTER IOTIFIED A */ - /*3060*/ 0xa659, 1, 0xa658, /* CYRILLIC CAPITAL LETTER CLOSED LI.. */ - /*3063*/ 0xa65b, 1, 0xa65a, /* CYRILLIC CAPITAL LETTER BLENDED Y.. */ - /*3066*/ 0xa65d, 1, 0xa65c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ - /*3069*/ 0xa65f, 1, 0xa65e, /* CYRILLIC CAPITAL LETTER YN */ - /*3072*/ 0xa661, 1, 0xa660, /* CYRILLIC CAPITAL LETTER REVERSED .. */ - /*3075*/ 0xa663, 1, 0xa662, /* CYRILLIC CAPITAL LETTER SOFT DE */ - /*3078*/ 0xa665, 1, 0xa664, /* CYRILLIC CAPITAL LETTER SOFT EL */ - /*3081*/ 0xa667, 1, 0xa666, /* CYRILLIC CAPITAL LETTER SOFT EM */ - /*3084*/ 0xa669, 1, 0xa668, /* CYRILLIC CAPITAL LETTER MONOCULAR.. */ - /*3087*/ 0xa66b, 1, 0xa66a, /* CYRILLIC CAPITAL LETTER BINOCULAR.. */ - /*3090*/ 0xa66d, 1, 0xa66c, /* CYRILLIC CAPITAL LETTER DOUBLE MO.. */ - /*3093*/ 0xa681, 1, 0xa680, /* CYRILLIC CAPITAL LETTER DWE */ - /*3096*/ 0xa683, 1, 0xa682, /* CYRILLIC CAPITAL LETTER DZWE */ - /*3099*/ 0xa685, 1, 0xa684, /* CYRILLIC CAPITAL LETTER ZHWE */ - /*3102*/ 0xa687, 1, 0xa686, /* CYRILLIC CAPITAL LETTER CCHE */ - /*3105*/ 0xa689, 1, 0xa688, /* CYRILLIC CAPITAL LETTER DZZE */ - /*3108*/ 0xa68b, 1, 0xa68a, /* CYRILLIC CAPITAL LETTER TE WITH M.. */ - /*3111*/ 0xa68d, 1, 0xa68c, /* CYRILLIC CAPITAL LETTER TWE */ - /*3114*/ 0xa68f, 1, 0xa68e, /* CYRILLIC CAPITAL LETTER TSWE */ - /*3117*/ 0xa691, 1, 0xa690, /* CYRILLIC CAPITAL LETTER TSSE */ - /*3120*/ 0xa693, 1, 0xa692, /* CYRILLIC CAPITAL LETTER TCHE */ - /*3123*/ 0xa695, 1, 0xa694, /* CYRILLIC CAPITAL LETTER HWE */ - /*3126*/ 0xa697, 1, 0xa696, /* CYRILLIC CAPITAL LETTER SHWE */ - /*3129*/ 0xa699, 1, 0xa698, /* CYRILLIC CAPITAL LETTER DOUBLE O */ - /*3132*/ 0xa69b, 1, 0xa69a, /* CYRILLIC CAPITAL LETTER CROSSED O */ - /*3135*/ 0xa723, 1, 0xa722, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */ - /*3138*/ 0xa725, 1, 0xa724, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */ - /*3141*/ 0xa727, 1, 0xa726, /* LATIN CAPITAL LETTER HENG */ - /*3144*/ 0xa729, 1, 0xa728, /* LATIN CAPITAL LETTER TZ */ - /*3147*/ 0xa72b, 1, 0xa72a, /* LATIN CAPITAL LETTER TRESILLO */ - /*3150*/ 0xa72d, 1, 0xa72c, /* LATIN CAPITAL LETTER CUATRILLO */ - /*3153*/ 0xa72f, 1, 0xa72e, /* LATIN CAPITAL LETTER CUATRILLO WI.. */ - /*3156*/ 0xa733, 1, 0xa732, /* LATIN CAPITAL LETTER AA */ - /*3159*/ 0xa735, 1, 0xa734, /* LATIN CAPITAL LETTER AO */ - /*3162*/ 0xa737, 1, 0xa736, /* LATIN CAPITAL LETTER AU */ - /*3165*/ 0xa739, 1, 0xa738, /* LATIN CAPITAL LETTER AV */ - /*3168*/ 0xa73b, 1, 0xa73a, /* LATIN CAPITAL LETTER AV WITH HORI.. */ - /*3171*/ 0xa73d, 1, 0xa73c, /* LATIN CAPITAL LETTER AY */ - /*3174*/ 0xa73f, 1, 0xa73e, /* LATIN CAPITAL LETTER REVERSED C W.. */ - /*3177*/ 0xa741, 1, 0xa740, /* LATIN CAPITAL LETTER K WITH STROKE */ - /*3180*/ 0xa743, 1, 0xa742, /* LATIN CAPITAL LETTER K WITH DIAGO.. */ - /*3183*/ 0xa745, 1, 0xa744, /* LATIN CAPITAL LETTER K WITH STROK.. */ - /*3186*/ 0xa747, 1, 0xa746, /* LATIN CAPITAL LETTER BROKEN L */ - /*3189*/ 0xa749, 1, 0xa748, /* LATIN CAPITAL LETTER L WITH HIGH .. */ - /*3192*/ 0xa74b, 1, 0xa74a, /* LATIN CAPITAL LETTER O WITH LONG .. */ - /*3195*/ 0xa74d, 1, 0xa74c, /* LATIN CAPITAL LETTER O WITH LOOP */ - /*3198*/ 0xa74f, 1, 0xa74e, /* LATIN CAPITAL LETTER OO */ - /*3201*/ 0xa751, 1, 0xa750, /* LATIN CAPITAL LETTER P WITH STROK.. */ - /*3204*/ 0xa753, 1, 0xa752, /* LATIN CAPITAL LETTER P WITH FLOUR.. */ - /*3207*/ 0xa755, 1, 0xa754, /* LATIN CAPITAL LETTER P WITH SQUIR.. */ - /*3210*/ 0xa757, 1, 0xa756, /* LATIN CAPITAL LETTER Q WITH STROK.. */ - /*3213*/ 0xa759, 1, 0xa758, /* LATIN CAPITAL LETTER Q WITH DIAGO.. */ - /*3216*/ 0xa75b, 1, 0xa75a, /* LATIN CAPITAL LETTER R ROTUNDA */ - /*3219*/ 0xa75d, 1, 0xa75c, /* LATIN CAPITAL LETTER RUM ROTUNDA */ - /*3222*/ 0xa75f, 1, 0xa75e, /* LATIN CAPITAL LETTER V WITH DIAGO.. */ - /*3225*/ 0xa761, 1, 0xa760, /* LATIN CAPITAL LETTER VY */ - /*3228*/ 0xa763, 1, 0xa762, /* LATIN CAPITAL LETTER VISIGOTHIC Z */ - /*3231*/ 0xa765, 1, 0xa764, /* LATIN CAPITAL LETTER THORN WITH S.. */ - /*3234*/ 0xa767, 1, 0xa766, /* LATIN CAPITAL LETTER THORN WITH S.. */ - /*3237*/ 0xa769, 1, 0xa768, /* LATIN CAPITAL LETTER VEND */ - /*3240*/ 0xa76b, 1, 0xa76a, /* LATIN CAPITAL LETTER ET */ - /*3243*/ 0xa76d, 1, 0xa76c, /* LATIN CAPITAL LETTER IS */ - /*3246*/ 0xa76f, 1, 0xa76e, /* LATIN CAPITAL LETTER CON */ - /*3249*/ 0xa77a, 1, 0xa779, /* LATIN CAPITAL LETTER INSULAR D */ - /*3252*/ 0xa77c, 1, 0xa77b, /* LATIN CAPITAL LETTER INSULAR F */ - /*3255*/ 0xa77f, 1, 0xa77e, /* LATIN CAPITAL LETTER TURNED INSUL.. */ - /*3258*/ 0xa781, 1, 0xa780, /* LATIN CAPITAL LETTER TURNED L */ - /*3261*/ 0xa783, 1, 0xa782, /* LATIN CAPITAL LETTER INSULAR R */ - /*3264*/ 0xa785, 1, 0xa784, /* LATIN CAPITAL LETTER INSULAR S */ - /*3267*/ 0xa787, 1, 0xa786, /* LATIN CAPITAL LETTER INSULAR T */ - /*3270*/ 0xa78c, 1, 0xa78b, /* LATIN CAPITAL LETTER SALTILLO */ - /*3273*/ 0xa791, 1, 0xa790, /* LATIN CAPITAL LETTER N WITH DESCE.. */ - /*3276*/ 0xa793, 1, 0xa792, /* LATIN CAPITAL LETTER C WITH BAR */ - /*3279*/ 0xa794, 1, 0xa7c4, /* LATIN CAPITAL LETTER C WITH PALAT.. */ - /*3282*/ 0xa797, 1, 0xa796, /* LATIN CAPITAL LETTER B WITH FLOUR.. */ - /*3285*/ 0xa799, 1, 0xa798, /* LATIN CAPITAL LETTER F WITH STROKE */ - /*3288*/ 0xa79b, 1, 0xa79a, /* LATIN CAPITAL LETTER VOLAPUK AE */ - /*3291*/ 0xa79d, 1, 0xa79c, /* LATIN CAPITAL LETTER VOLAPUK OE */ - /*3294*/ 0xa79f, 1, 0xa79e, /* LATIN CAPITAL LETTER VOLAPUK UE */ - /*3297*/ 0xa7a1, 1, 0xa7a0, /* LATIN CAPITAL LETTER G WITH OBLIQ.. */ - /*3300*/ 0xa7a3, 1, 0xa7a2, /* LATIN CAPITAL LETTER K WITH OBLIQ.. */ - /*3303*/ 0xa7a5, 1, 0xa7a4, /* LATIN CAPITAL LETTER N WITH OBLIQ.. */ - /*3306*/ 0xa7a7, 1, 0xa7a6, /* LATIN CAPITAL LETTER R WITH OBLIQ.. */ - /*3309*/ 0xa7a9, 1, 0xa7a8, /* LATIN CAPITAL LETTER S WITH OBLIQ.. */ - /*3312*/ 0xa7b5, 1, 0xa7b4, /* LATIN CAPITAL LETTER BETA */ - /*3315*/ 0xa7b7, 1, 0xa7b6, /* LATIN CAPITAL LETTER OMEGA */ - /*3318*/ 0xa7b9, 1, 0xa7b8, /* LATIN CAPITAL LETTER U WITH STROKE */ - /*3321*/ 0xa7bb, 1, 0xa7ba, /* LATIN CAPITAL LETTER GLOTTAL A */ - /*3324*/ 0xa7bd, 1, 0xa7bc, /* LATIN CAPITAL LETTER GLOTTAL I */ - /*3327*/ 0xa7bf, 1, 0xa7be, /* LATIN CAPITAL LETTER GLOTTAL U */ - /*3330*/ 0xa7c1, 1, 0xa7c0, /* LATIN CAPITAL LETTER OLD POLISH O */ - /*3333*/ 0xa7c3, 1, 0xa7c2, /* LATIN CAPITAL LETTER ANGLICANA W */ - /*3336*/ 0xa7c8, 1, 0xa7c7, /* LATIN CAPITAL LETTER D WITH SHORT.. */ - /*3339*/ 0xa7ca, 1, 0xa7c9, /* LATIN CAPITAL LETTER S WITH SHORT.. */ - /*3342*/ 0xa7d1, 1, 0xa7d0, /* LATIN CAPITAL LETTER CLOSED INSUL.. */ - /*3345*/ 0xa7d7, 1, 0xa7d6, /* LATIN CAPITAL LETTER MIDDLE SCOTS.. */ - /*3348*/ 0xa7d9, 1, 0xa7d8, /* LATIN CAPITAL LETTER SIGMOID S */ - /*3351*/ 0xa7f6, 1, 0xa7f5, /* LATIN CAPITAL LETTER REVERSED HAL.. */ - /*3354*/ 0xab53, 1, 0xa7b3, /* LATIN CAPITAL LETTER CHI */ - /*3357*/ 0xff41, 1, 0xff21, /* FULLWIDTH LATIN CAPITAL LETTER A */ - /*3360*/ 0xff42, 1, 0xff22, /* FULLWIDTH LATIN CAPITAL LETTER B */ - /*3363*/ 0xff43, 1, 0xff23, /* FULLWIDTH LATIN CAPITAL LETTER C */ - /*3366*/ 0xff44, 1, 0xff24, /* FULLWIDTH LATIN CAPITAL LETTER D */ - /*3369*/ 0xff45, 1, 0xff25, /* FULLWIDTH LATIN CAPITAL LETTER E */ - /*3372*/ 0xff46, 1, 0xff26, /* FULLWIDTH LATIN CAPITAL LETTER F */ - /*3375*/ 0xff47, 1, 0xff27, /* FULLWIDTH LATIN CAPITAL LETTER G */ - /*3378*/ 0xff48, 1, 0xff28, /* FULLWIDTH LATIN CAPITAL LETTER H */ - /*3381*/ 0xff49, 1, 0xff29, /* FULLWIDTH LATIN CAPITAL LETTER I */ - /*3384*/ 0xff4a, 1, 0xff2a, /* FULLWIDTH LATIN CAPITAL LETTER J */ - /*3387*/ 0xff4b, 1, 0xff2b, /* FULLWIDTH LATIN CAPITAL LETTER K */ - /*3390*/ 0xff4c, 1, 0xff2c, /* FULLWIDTH LATIN CAPITAL LETTER L */ - /*3393*/ 0xff4d, 1, 0xff2d, /* FULLWIDTH LATIN CAPITAL LETTER M */ - /*3396*/ 0xff4e, 1, 0xff2e, /* FULLWIDTH LATIN CAPITAL LETTER N */ - /*3399*/ 0xff4f, 1, 0xff2f, /* FULLWIDTH LATIN CAPITAL LETTER O */ - /*3402*/ 0xff50, 1, 0xff30, /* FULLWIDTH LATIN CAPITAL LETTER P */ - /*3405*/ 0xff51, 1, 0xff31, /* FULLWIDTH LATIN CAPITAL LETTER Q */ - /*3408*/ 0xff52, 1, 0xff32, /* FULLWIDTH LATIN CAPITAL LETTER R */ - /*3411*/ 0xff53, 1, 0xff33, /* FULLWIDTH LATIN CAPITAL LETTER S */ - /*3414*/ 0xff54, 1, 0xff34, /* FULLWIDTH LATIN CAPITAL LETTER T */ - /*3417*/ 0xff55, 1, 0xff35, /* FULLWIDTH LATIN CAPITAL LETTER U */ - /*3420*/ 0xff56, 1, 0xff36, /* FULLWIDTH LATIN CAPITAL LETTER V */ - /*3423*/ 0xff57, 1, 0xff37, /* FULLWIDTH LATIN CAPITAL LETTER W */ - /*3426*/ 0xff58, 1, 0xff38, /* FULLWIDTH LATIN CAPITAL LETTER X */ - /*3429*/ 0xff59, 1, 0xff39, /* FULLWIDTH LATIN CAPITAL LETTER Y */ - /*3432*/ 0xff5a, 1, 0xff3a, /* FULLWIDTH LATIN CAPITAL LETTER Z */ - /*3435*/ 0x010428, 1, 0x010400, /* DESERET CAPITAL LETTER LONG I */ - /*3438*/ 0x010429, 1, 0x010401, /* DESERET CAPITAL LETTER LONG E */ - /*3441*/ 0x01042a, 1, 0x010402, /* DESERET CAPITAL LETTER LONG A */ - /*3444*/ 0x01042b, 1, 0x010403, /* DESERET CAPITAL LETTER LONG AH */ - /*3447*/ 0x01042c, 1, 0x010404, /* DESERET CAPITAL LETTER LONG O */ - /*3450*/ 0x01042d, 1, 0x010405, /* DESERET CAPITAL LETTER LONG OO */ - /*3453*/ 0x01042e, 1, 0x010406, /* DESERET CAPITAL LETTER SHORT I */ - /*3456*/ 0x01042f, 1, 0x010407, /* DESERET CAPITAL LETTER SHORT E */ - /*3459*/ 0x010430, 1, 0x010408, /* DESERET CAPITAL LETTER SHORT A */ - /*3462*/ 0x010431, 1, 0x010409, /* DESERET CAPITAL LETTER SHORT AH */ - /*3465*/ 0x010432, 1, 0x01040a, /* DESERET CAPITAL LETTER SHORT O */ - /*3468*/ 0x010433, 1, 0x01040b, /* DESERET CAPITAL LETTER SHORT OO */ - /*3471*/ 0x010434, 1, 0x01040c, /* DESERET CAPITAL LETTER AY */ - /*3474*/ 0x010435, 1, 0x01040d, /* DESERET CAPITAL LETTER OW */ - /*3477*/ 0x010436, 1, 0x01040e, /* DESERET CAPITAL LETTER WU */ - /*3480*/ 0x010437, 1, 0x01040f, /* DESERET CAPITAL LETTER YEE */ - /*3483*/ 0x010438, 1, 0x010410, /* DESERET CAPITAL LETTER H */ - /*3486*/ 0x010439, 1, 0x010411, /* DESERET CAPITAL LETTER PEE */ - /*3489*/ 0x01043a, 1, 0x010412, /* DESERET CAPITAL LETTER BEE */ - /*3492*/ 0x01043b, 1, 0x010413, /* DESERET CAPITAL LETTER TEE */ - /*3495*/ 0x01043c, 1, 0x010414, /* DESERET CAPITAL LETTER DEE */ - /*3498*/ 0x01043d, 1, 0x010415, /* DESERET CAPITAL LETTER CHEE */ - /*3501*/ 0x01043e, 1, 0x010416, /* DESERET CAPITAL LETTER JEE */ - /*3504*/ 0x01043f, 1, 0x010417, /* DESERET CAPITAL LETTER KAY */ - /*3507*/ 0x010440, 1, 0x010418, /* DESERET CAPITAL LETTER GAY */ - /*3510*/ 0x010441, 1, 0x010419, /* DESERET CAPITAL LETTER EF */ - /*3513*/ 0x010442, 1, 0x01041a, /* DESERET CAPITAL LETTER VEE */ - /*3516*/ 0x010443, 1, 0x01041b, /* DESERET CAPITAL LETTER ETH */ - /*3519*/ 0x010444, 1, 0x01041c, /* DESERET CAPITAL LETTER THEE */ - /*3522*/ 0x010445, 1, 0x01041d, /* DESERET CAPITAL LETTER ES */ - /*3525*/ 0x010446, 1, 0x01041e, /* DESERET CAPITAL LETTER ZEE */ - /*3528*/ 0x010447, 1, 0x01041f, /* DESERET CAPITAL LETTER ESH */ - /*3531*/ 0x010448, 1, 0x010420, /* DESERET CAPITAL LETTER ZHEE */ - /*3534*/ 0x010449, 1, 0x010421, /* DESERET CAPITAL LETTER ER */ - /*3537*/ 0x01044a, 1, 0x010422, /* DESERET CAPITAL LETTER EL */ - /*3540*/ 0x01044b, 1, 0x010423, /* DESERET CAPITAL LETTER EM */ - /*3543*/ 0x01044c, 1, 0x010424, /* DESERET CAPITAL LETTER EN */ - /*3546*/ 0x01044d, 1, 0x010425, /* DESERET CAPITAL LETTER ENG */ - /*3549*/ 0x01044e, 1, 0x010426, /* DESERET CAPITAL LETTER OI */ - /*3552*/ 0x01044f, 1, 0x010427, /* DESERET CAPITAL LETTER EW */ - /*3555*/ 0x0104d8, 1, 0x0104b0, /* OSAGE CAPITAL LETTER A */ - /*3558*/ 0x0104d9, 1, 0x0104b1, /* OSAGE CAPITAL LETTER AI */ - /*3561*/ 0x0104da, 1, 0x0104b2, /* OSAGE CAPITAL LETTER AIN */ - /*3564*/ 0x0104db, 1, 0x0104b3, /* OSAGE CAPITAL LETTER AH */ - /*3567*/ 0x0104dc, 1, 0x0104b4, /* OSAGE CAPITAL LETTER BRA */ - /*3570*/ 0x0104dd, 1, 0x0104b5, /* OSAGE CAPITAL LETTER CHA */ - /*3573*/ 0x0104de, 1, 0x0104b6, /* OSAGE CAPITAL LETTER EHCHA */ - /*3576*/ 0x0104df, 1, 0x0104b7, /* OSAGE CAPITAL LETTER E */ - /*3579*/ 0x0104e0, 1, 0x0104b8, /* OSAGE CAPITAL LETTER EIN */ - /*3582*/ 0x0104e1, 1, 0x0104b9, /* OSAGE CAPITAL LETTER HA */ - /*3585*/ 0x0104e2, 1, 0x0104ba, /* OSAGE CAPITAL LETTER HYA */ - /*3588*/ 0x0104e3, 1, 0x0104bb, /* OSAGE CAPITAL LETTER I */ - /*3591*/ 0x0104e4, 1, 0x0104bc, /* OSAGE CAPITAL LETTER KA */ - /*3594*/ 0x0104e5, 1, 0x0104bd, /* OSAGE CAPITAL LETTER EHKA */ - /*3597*/ 0x0104e6, 1, 0x0104be, /* OSAGE CAPITAL LETTER KYA */ - /*3600*/ 0x0104e7, 1, 0x0104bf, /* OSAGE CAPITAL LETTER LA */ - /*3603*/ 0x0104e8, 1, 0x0104c0, /* OSAGE CAPITAL LETTER MA */ - /*3606*/ 0x0104e9, 1, 0x0104c1, /* OSAGE CAPITAL LETTER NA */ - /*3609*/ 0x0104ea, 1, 0x0104c2, /* OSAGE CAPITAL LETTER O */ - /*3612*/ 0x0104eb, 1, 0x0104c3, /* OSAGE CAPITAL LETTER OIN */ - /*3615*/ 0x0104ec, 1, 0x0104c4, /* OSAGE CAPITAL LETTER PA */ - /*3618*/ 0x0104ed, 1, 0x0104c5, /* OSAGE CAPITAL LETTER EHPA */ - /*3621*/ 0x0104ee, 1, 0x0104c6, /* OSAGE CAPITAL LETTER SA */ - /*3624*/ 0x0104ef, 1, 0x0104c7, /* OSAGE CAPITAL LETTER SHA */ - /*3627*/ 0x0104f0, 1, 0x0104c8, /* OSAGE CAPITAL LETTER TA */ - /*3630*/ 0x0104f1, 1, 0x0104c9, /* OSAGE CAPITAL LETTER EHTA */ - /*3633*/ 0x0104f2, 1, 0x0104ca, /* OSAGE CAPITAL LETTER TSA */ - /*3636*/ 0x0104f3, 1, 0x0104cb, /* OSAGE CAPITAL LETTER EHTSA */ - /*3639*/ 0x0104f4, 1, 0x0104cc, /* OSAGE CAPITAL LETTER TSHA */ - /*3642*/ 0x0104f5, 1, 0x0104cd, /* OSAGE CAPITAL LETTER DHA */ - /*3645*/ 0x0104f6, 1, 0x0104ce, /* OSAGE CAPITAL LETTER U */ - /*3648*/ 0x0104f7, 1, 0x0104cf, /* OSAGE CAPITAL LETTER WA */ - /*3651*/ 0x0104f8, 1, 0x0104d0, /* OSAGE CAPITAL LETTER KHA */ - /*3654*/ 0x0104f9, 1, 0x0104d1, /* OSAGE CAPITAL LETTER GHA */ - /*3657*/ 0x0104fa, 1, 0x0104d2, /* OSAGE CAPITAL LETTER ZA */ - /*3660*/ 0x0104fb, 1, 0x0104d3, /* OSAGE CAPITAL LETTER ZHA */ - /*3663*/ 0x010597, 1, 0x010570, /* VITHKUQI CAPITAL LETTER A */ - /*3666*/ 0x010598, 1, 0x010571, /* VITHKUQI CAPITAL LETTER BBE */ - /*3669*/ 0x010599, 1, 0x010572, /* VITHKUQI CAPITAL LETTER BE */ - /*3672*/ 0x01059a, 1, 0x010573, /* VITHKUQI CAPITAL LETTER CE */ - /*3675*/ 0x01059b, 1, 0x010574, /* VITHKUQI CAPITAL LETTER CHE */ - /*3678*/ 0x01059c, 1, 0x010575, /* VITHKUQI CAPITAL LETTER DE */ - /*3681*/ 0x01059d, 1, 0x010576, /* VITHKUQI CAPITAL LETTER DHE */ - /*3684*/ 0x01059e, 1, 0x010577, /* VITHKUQI CAPITAL LETTER EI */ - /*3687*/ 0x01059f, 1, 0x010578, /* VITHKUQI CAPITAL LETTER E */ - /*3690*/ 0x0105a0, 1, 0x010579, /* VITHKUQI CAPITAL LETTER FE */ - /*3693*/ 0x0105a1, 1, 0x01057a, /* VITHKUQI CAPITAL LETTER GA */ - /*3696*/ 0x0105a3, 1, 0x01057c, /* VITHKUQI CAPITAL LETTER HA */ - /*3699*/ 0x0105a4, 1, 0x01057d, /* VITHKUQI CAPITAL LETTER HHA */ - /*3702*/ 0x0105a5, 1, 0x01057e, /* VITHKUQI CAPITAL LETTER I */ - /*3705*/ 0x0105a6, 1, 0x01057f, /* VITHKUQI CAPITAL LETTER IJE */ - /*3708*/ 0x0105a7, 1, 0x010580, /* VITHKUQI CAPITAL LETTER JE */ - /*3711*/ 0x0105a8, 1, 0x010581, /* VITHKUQI CAPITAL LETTER KA */ - /*3714*/ 0x0105a9, 1, 0x010582, /* VITHKUQI CAPITAL LETTER LA */ - /*3717*/ 0x0105aa, 1, 0x010583, /* VITHKUQI CAPITAL LETTER LLA */ - /*3720*/ 0x0105ab, 1, 0x010584, /* VITHKUQI CAPITAL LETTER ME */ - /*3723*/ 0x0105ac, 1, 0x010585, /* VITHKUQI CAPITAL LETTER NE */ - /*3726*/ 0x0105ad, 1, 0x010586, /* VITHKUQI CAPITAL LETTER NJE */ - /*3729*/ 0x0105ae, 1, 0x010587, /* VITHKUQI CAPITAL LETTER O */ - /*3732*/ 0x0105af, 1, 0x010588, /* VITHKUQI CAPITAL LETTER PE */ - /*3735*/ 0x0105b0, 1, 0x010589, /* VITHKUQI CAPITAL LETTER QA */ - /*3738*/ 0x0105b1, 1, 0x01058a, /* VITHKUQI CAPITAL LETTER RE */ - /*3741*/ 0x0105b3, 1, 0x01058c, /* VITHKUQI CAPITAL LETTER SE */ - /*3744*/ 0x0105b4, 1, 0x01058d, /* VITHKUQI CAPITAL LETTER SHE */ - /*3747*/ 0x0105b5, 1, 0x01058e, /* VITHKUQI CAPITAL LETTER TE */ - /*3750*/ 0x0105b6, 1, 0x01058f, /* VITHKUQI CAPITAL LETTER THE */ - /*3753*/ 0x0105b7, 1, 0x010590, /* VITHKUQI CAPITAL LETTER U */ - /*3756*/ 0x0105b8, 1, 0x010591, /* VITHKUQI CAPITAL LETTER VE */ - /*3759*/ 0x0105b9, 1, 0x010592, /* VITHKUQI CAPITAL LETTER XE */ - /*3762*/ 0x0105bb, 1, 0x010594, /* VITHKUQI CAPITAL LETTER Y */ - /*3765*/ 0x0105bc, 1, 0x010595, /* VITHKUQI CAPITAL LETTER ZE */ - /*3768*/ 0x010cc0, 1, 0x010c80, /* OLD HUNGARIAN CAPITAL LETTER A */ - /*3771*/ 0x010cc1, 1, 0x010c81, /* OLD HUNGARIAN CAPITAL LETTER AA */ - /*3774*/ 0x010cc2, 1, 0x010c82, /* OLD HUNGARIAN CAPITAL LETTER EB */ - /*3777*/ 0x010cc3, 1, 0x010c83, /* OLD HUNGARIAN CAPITAL LETTER AMB */ - /*3780*/ 0x010cc4, 1, 0x010c84, /* OLD HUNGARIAN CAPITAL LETTER EC */ - /*3783*/ 0x010cc5, 1, 0x010c85, /* OLD HUNGARIAN CAPITAL LETTER ENC */ - /*3786*/ 0x010cc6, 1, 0x010c86, /* OLD HUNGARIAN CAPITAL LETTER ECS */ - /*3789*/ 0x010cc7, 1, 0x010c87, /* OLD HUNGARIAN CAPITAL LETTER ED */ - /*3792*/ 0x010cc8, 1, 0x010c88, /* OLD HUNGARIAN CAPITAL LETTER AND */ - /*3795*/ 0x010cc9, 1, 0x010c89, /* OLD HUNGARIAN CAPITAL LETTER E */ - /*3798*/ 0x010cca, 1, 0x010c8a, /* OLD HUNGARIAN CAPITAL LETTER CLOS.. */ - /*3801*/ 0x010ccb, 1, 0x010c8b, /* OLD HUNGARIAN CAPITAL LETTER EE */ - /*3804*/ 0x010ccc, 1, 0x010c8c, /* OLD HUNGARIAN CAPITAL LETTER EF */ - /*3807*/ 0x010ccd, 1, 0x010c8d, /* OLD HUNGARIAN CAPITAL LETTER EG */ - /*3810*/ 0x010cce, 1, 0x010c8e, /* OLD HUNGARIAN CAPITAL LETTER EGY */ - /*3813*/ 0x010ccf, 1, 0x010c8f, /* OLD HUNGARIAN CAPITAL LETTER EH */ - /*3816*/ 0x010cd0, 1, 0x010c90, /* OLD HUNGARIAN CAPITAL LETTER I */ - /*3819*/ 0x010cd1, 1, 0x010c91, /* OLD HUNGARIAN CAPITAL LETTER II */ - /*3822*/ 0x010cd2, 1, 0x010c92, /* OLD HUNGARIAN CAPITAL LETTER EJ */ - /*3825*/ 0x010cd3, 1, 0x010c93, /* OLD HUNGARIAN CAPITAL LETTER EK */ - /*3828*/ 0x010cd4, 1, 0x010c94, /* OLD HUNGARIAN CAPITAL LETTER AK */ - /*3831*/ 0x010cd5, 1, 0x010c95, /* OLD HUNGARIAN CAPITAL LETTER UNK */ - /*3834*/ 0x010cd6, 1, 0x010c96, /* OLD HUNGARIAN CAPITAL LETTER EL */ - /*3837*/ 0x010cd7, 1, 0x010c97, /* OLD HUNGARIAN CAPITAL LETTER ELY */ - /*3840*/ 0x010cd8, 1, 0x010c98, /* OLD HUNGARIAN CAPITAL LETTER EM */ - /*3843*/ 0x010cd9, 1, 0x010c99, /* OLD HUNGARIAN CAPITAL LETTER EN */ - /*3846*/ 0x010cda, 1, 0x010c9a, /* OLD HUNGARIAN CAPITAL LETTER ENY */ - /*3849*/ 0x010cdb, 1, 0x010c9b, /* OLD HUNGARIAN CAPITAL LETTER O */ - /*3852*/ 0x010cdc, 1, 0x010c9c, /* OLD HUNGARIAN CAPITAL LETTER OO */ - /*3855*/ 0x010cdd, 1, 0x010c9d, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */ - /*3858*/ 0x010cde, 1, 0x010c9e, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */ - /*3861*/ 0x010cdf, 1, 0x010c9f, /* OLD HUNGARIAN CAPITAL LETTER OEE */ - /*3864*/ 0x010ce0, 1, 0x010ca0, /* OLD HUNGARIAN CAPITAL LETTER EP */ - /*3867*/ 0x010ce1, 1, 0x010ca1, /* OLD HUNGARIAN CAPITAL LETTER EMP */ - /*3870*/ 0x010ce2, 1, 0x010ca2, /* OLD HUNGARIAN CAPITAL LETTER ER */ - /*3873*/ 0x010ce3, 1, 0x010ca3, /* OLD HUNGARIAN CAPITAL LETTER SHOR.. */ - /*3876*/ 0x010ce4, 1, 0x010ca4, /* OLD HUNGARIAN CAPITAL LETTER ES */ - /*3879*/ 0x010ce5, 1, 0x010ca5, /* OLD HUNGARIAN CAPITAL LETTER ESZ */ - /*3882*/ 0x010ce6, 1, 0x010ca6, /* OLD HUNGARIAN CAPITAL LETTER ET */ - /*3885*/ 0x010ce7, 1, 0x010ca7, /* OLD HUNGARIAN CAPITAL LETTER ENT */ - /*3888*/ 0x010ce8, 1, 0x010ca8, /* OLD HUNGARIAN CAPITAL LETTER ETY */ - /*3891*/ 0x010ce9, 1, 0x010ca9, /* OLD HUNGARIAN CAPITAL LETTER ECH */ - /*3894*/ 0x010cea, 1, 0x010caa, /* OLD HUNGARIAN CAPITAL LETTER U */ - /*3897*/ 0x010ceb, 1, 0x010cab, /* OLD HUNGARIAN CAPITAL LETTER UU */ - /*3900*/ 0x010cec, 1, 0x010cac, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */ - /*3903*/ 0x010ced, 1, 0x010cad, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */ - /*3906*/ 0x010cee, 1, 0x010cae, /* OLD HUNGARIAN CAPITAL LETTER EV */ - /*3909*/ 0x010cef, 1, 0x010caf, /* OLD HUNGARIAN CAPITAL LETTER EZ */ - /*3912*/ 0x010cf0, 1, 0x010cb0, /* OLD HUNGARIAN CAPITAL LETTER EZS */ - /*3915*/ 0x010cf1, 1, 0x010cb1, /* OLD HUNGARIAN CAPITAL LETTER ENT-.. */ - /*3918*/ 0x010cf2, 1, 0x010cb2, /* OLD HUNGARIAN CAPITAL LETTER US */ - /*3921*/ 0x0118c0, 1, 0x0118a0, /* WARANG CITI CAPITAL LETTER NGAA */ - /*3924*/ 0x0118c1, 1, 0x0118a1, /* WARANG CITI CAPITAL LETTER A */ - /*3927*/ 0x0118c2, 1, 0x0118a2, /* WARANG CITI CAPITAL LETTER WI */ - /*3930*/ 0x0118c3, 1, 0x0118a3, /* WARANG CITI CAPITAL LETTER YU */ - /*3933*/ 0x0118c4, 1, 0x0118a4, /* WARANG CITI CAPITAL LETTER YA */ - /*3936*/ 0x0118c5, 1, 0x0118a5, /* WARANG CITI CAPITAL LETTER YO */ - /*3939*/ 0x0118c6, 1, 0x0118a6, /* WARANG CITI CAPITAL LETTER II */ - /*3942*/ 0x0118c7, 1, 0x0118a7, /* WARANG CITI CAPITAL LETTER UU */ - /*3945*/ 0x0118c8, 1, 0x0118a8, /* WARANG CITI CAPITAL LETTER E */ - /*3948*/ 0x0118c9, 1, 0x0118a9, /* WARANG CITI CAPITAL LETTER O */ - /*3951*/ 0x0118ca, 1, 0x0118aa, /* WARANG CITI CAPITAL LETTER ANG */ - /*3954*/ 0x0118cb, 1, 0x0118ab, /* WARANG CITI CAPITAL LETTER GA */ - /*3957*/ 0x0118cc, 1, 0x0118ac, /* WARANG CITI CAPITAL LETTER KO */ - /*3960*/ 0x0118cd, 1, 0x0118ad, /* WARANG CITI CAPITAL LETTER ENY */ - /*3963*/ 0x0118ce, 1, 0x0118ae, /* WARANG CITI CAPITAL LETTER YUJ */ - /*3966*/ 0x0118cf, 1, 0x0118af, /* WARANG CITI CAPITAL LETTER UC */ - /*3969*/ 0x0118d0, 1, 0x0118b0, /* WARANG CITI CAPITAL LETTER ENN */ - /*3972*/ 0x0118d1, 1, 0x0118b1, /* WARANG CITI CAPITAL LETTER ODD */ - /*3975*/ 0x0118d2, 1, 0x0118b2, /* WARANG CITI CAPITAL LETTER TTE */ - /*3978*/ 0x0118d3, 1, 0x0118b3, /* WARANG CITI CAPITAL LETTER NUNG */ - /*3981*/ 0x0118d4, 1, 0x0118b4, /* WARANG CITI CAPITAL LETTER DA */ - /*3984*/ 0x0118d5, 1, 0x0118b5, /* WARANG CITI CAPITAL LETTER AT */ - /*3987*/ 0x0118d6, 1, 0x0118b6, /* WARANG CITI CAPITAL LETTER AM */ - /*3990*/ 0x0118d7, 1, 0x0118b7, /* WARANG CITI CAPITAL LETTER BU */ - /*3993*/ 0x0118d8, 1, 0x0118b8, /* WARANG CITI CAPITAL LETTER PU */ - /*3996*/ 0x0118d9, 1, 0x0118b9, /* WARANG CITI CAPITAL LETTER HIYO */ - /*3999*/ 0x0118da, 1, 0x0118ba, /* WARANG CITI CAPITAL LETTER HOLO */ - /*4002*/ 0x0118db, 1, 0x0118bb, /* WARANG CITI CAPITAL LETTER HORR */ - /*4005*/ 0x0118dc, 1, 0x0118bc, /* WARANG CITI CAPITAL LETTER HAR */ - /*4008*/ 0x0118dd, 1, 0x0118bd, /* WARANG CITI CAPITAL LETTER SSUU */ - /*4011*/ 0x0118de, 1, 0x0118be, /* WARANG CITI CAPITAL LETTER SII */ - /*4014*/ 0x0118df, 1, 0x0118bf, /* WARANG CITI CAPITAL LETTER VIYO */ - /*4017*/ 0x016e60, 1, 0x016e40, /* MEDEFAIDRIN CAPITAL LETTER M */ - /*4020*/ 0x016e61, 1, 0x016e41, /* MEDEFAIDRIN CAPITAL LETTER S */ - /*4023*/ 0x016e62, 1, 0x016e42, /* MEDEFAIDRIN CAPITAL LETTER V */ - /*4026*/ 0x016e63, 1, 0x016e43, /* MEDEFAIDRIN CAPITAL LETTER W */ - /*4029*/ 0x016e64, 1, 0x016e44, /* MEDEFAIDRIN CAPITAL LETTER ATIU */ - /*4032*/ 0x016e65, 1, 0x016e45, /* MEDEFAIDRIN CAPITAL LETTER Z */ - /*4035*/ 0x016e66, 1, 0x016e46, /* MEDEFAIDRIN CAPITAL LETTER KP */ - /*4038*/ 0x016e67, 1, 0x016e47, /* MEDEFAIDRIN CAPITAL LETTER P */ - /*4041*/ 0x016e68, 1, 0x016e48, /* MEDEFAIDRIN CAPITAL LETTER T */ - /*4044*/ 0x016e69, 1, 0x016e49, /* MEDEFAIDRIN CAPITAL LETTER G */ - /*4047*/ 0x016e6a, 1, 0x016e4a, /* MEDEFAIDRIN CAPITAL LETTER F */ - /*4050*/ 0x016e6b, 1, 0x016e4b, /* MEDEFAIDRIN CAPITAL LETTER I */ - /*4053*/ 0x016e6c, 1, 0x016e4c, /* MEDEFAIDRIN CAPITAL LETTER K */ - /*4056*/ 0x016e6d, 1, 0x016e4d, /* MEDEFAIDRIN CAPITAL LETTER A */ - /*4059*/ 0x016e6e, 1, 0x016e4e, /* MEDEFAIDRIN CAPITAL LETTER J */ - /*4062*/ 0x016e6f, 1, 0x016e4f, /* MEDEFAIDRIN CAPITAL LETTER E */ - /*4065*/ 0x016e70, 1, 0x016e50, /* MEDEFAIDRIN CAPITAL LETTER B */ - /*4068*/ 0x016e71, 1, 0x016e51, /* MEDEFAIDRIN CAPITAL LETTER C */ - /*4071*/ 0x016e72, 1, 0x016e52, /* MEDEFAIDRIN CAPITAL LETTER U */ - /*4074*/ 0x016e73, 1, 0x016e53, /* MEDEFAIDRIN CAPITAL LETTER YU */ - /*4077*/ 0x016e74, 1, 0x016e54, /* MEDEFAIDRIN CAPITAL LETTER L */ - /*4080*/ 0x016e75, 1, 0x016e55, /* MEDEFAIDRIN CAPITAL LETTER Q */ - /*4083*/ 0x016e76, 1, 0x016e56, /* MEDEFAIDRIN CAPITAL LETTER HP */ - /*4086*/ 0x016e77, 1, 0x016e57, /* MEDEFAIDRIN CAPITAL LETTER NY */ - /*4089*/ 0x016e78, 1, 0x016e58, /* MEDEFAIDRIN CAPITAL LETTER X */ - /*4092*/ 0x016e79, 1, 0x016e59, /* MEDEFAIDRIN CAPITAL LETTER D */ - /*4095*/ 0x016e7a, 1, 0x016e5a, /* MEDEFAIDRIN CAPITAL LETTER OE */ - /*4098*/ 0x016e7b, 1, 0x016e5b, /* MEDEFAIDRIN CAPITAL LETTER N */ - /*4101*/ 0x016e7c, 1, 0x016e5c, /* MEDEFAIDRIN CAPITAL LETTER R */ - /*4104*/ 0x016e7d, 1, 0x016e5d, /* MEDEFAIDRIN CAPITAL LETTER O */ - /*4107*/ 0x016e7e, 1, 0x016e5e, /* MEDEFAIDRIN CAPITAL LETTER AI */ - /*4110*/ 0x016e7f, 1, 0x016e5f, /* MEDEFAIDRIN CAPITAL LETTER Y */ - /*4113*/ 0x01e922, 1, 0x01e900, /* ADLAM CAPITAL LETTER ALIF */ - /*4116*/ 0x01e923, 1, 0x01e901, /* ADLAM CAPITAL LETTER DAALI */ - /*4119*/ 0x01e924, 1, 0x01e902, /* ADLAM CAPITAL LETTER LAAM */ - /*4122*/ 0x01e925, 1, 0x01e903, /* ADLAM CAPITAL LETTER MIIM */ - /*4125*/ 0x01e926, 1, 0x01e904, /* ADLAM CAPITAL LETTER BA */ - /*4128*/ 0x01e927, 1, 0x01e905, /* ADLAM CAPITAL LETTER SINNYIIYHE */ - /*4131*/ 0x01e928, 1, 0x01e906, /* ADLAM CAPITAL LETTER PE */ - /*4134*/ 0x01e929, 1, 0x01e907, /* ADLAM CAPITAL LETTER BHE */ - /*4137*/ 0x01e92a, 1, 0x01e908, /* ADLAM CAPITAL LETTER RA */ - /*4140*/ 0x01e92b, 1, 0x01e909, /* ADLAM CAPITAL LETTER E */ - /*4143*/ 0x01e92c, 1, 0x01e90a, /* ADLAM CAPITAL LETTER FA */ - /*4146*/ 0x01e92d, 1, 0x01e90b, /* ADLAM CAPITAL LETTER I */ - /*4149*/ 0x01e92e, 1, 0x01e90c, /* ADLAM CAPITAL LETTER O */ - /*4152*/ 0x01e92f, 1, 0x01e90d, /* ADLAM CAPITAL LETTER DHA */ - /*4155*/ 0x01e930, 1, 0x01e90e, /* ADLAM CAPITAL LETTER YHE */ - /*4158*/ 0x01e931, 1, 0x01e90f, /* ADLAM CAPITAL LETTER WAW */ - /*4161*/ 0x01e932, 1, 0x01e910, /* ADLAM CAPITAL LETTER NUN */ - /*4164*/ 0x01e933, 1, 0x01e911, /* ADLAM CAPITAL LETTER KAF */ - /*4167*/ 0x01e934, 1, 0x01e912, /* ADLAM CAPITAL LETTER YA */ - /*4170*/ 0x01e935, 1, 0x01e913, /* ADLAM CAPITAL LETTER U */ - /*4173*/ 0x01e936, 1, 0x01e914, /* ADLAM CAPITAL LETTER JIIM */ - /*4176*/ 0x01e937, 1, 0x01e915, /* ADLAM CAPITAL LETTER CHI */ - /*4179*/ 0x01e938, 1, 0x01e916, /* ADLAM CAPITAL LETTER HA */ - /*4182*/ 0x01e939, 1, 0x01e917, /* ADLAM CAPITAL LETTER QAAF */ - /*4185*/ 0x01e93a, 1, 0x01e918, /* ADLAM CAPITAL LETTER GA */ - /*4188*/ 0x01e93b, 1, 0x01e919, /* ADLAM CAPITAL LETTER NYA */ - /*4191*/ 0x01e93c, 1, 0x01e91a, /* ADLAM CAPITAL LETTER TU */ - /*4194*/ 0x01e93d, 1, 0x01e91b, /* ADLAM CAPITAL LETTER NHA */ - /*4197*/ 0x01e93e, 1, 0x01e91c, /* ADLAM CAPITAL LETTER VA */ - /*4200*/ 0x01e93f, 1, 0x01e91d, /* ADLAM CAPITAL LETTER KHA */ - /*4203*/ 0x01e940, 1, 0x01e91e, /* ADLAM CAPITAL LETTER GBE */ - /*4206*/ 0x01e941, 1, 0x01e91f, /* ADLAM CAPITAL LETTER ZAL */ - /*4209*/ 0x01e942, 1, 0x01e920, /* ADLAM CAPITAL LETTER KPO */ - /*4212*/ 0x01e943, 1, 0x01e921, /* ADLAM CAPITAL LETTER SHA */ -#define FOLDS1_NORMAL_END_INDEX 4215 + /* 381*/ 0x019b, 1, 0xa7dc, /* LATIN CAPITAL LETTER LAMBDA WITH .. */ + /* 384*/ 0x019e, 1, 0x0220, /* LATIN CAPITAL LETTER N WITH LONG .. */ + /* 387*/ 0x01a1, 1, 0x01a0, /* LATIN CAPITAL LETTER O WITH HORN */ + /* 390*/ 0x01a3, 1, 0x01a2, /* LATIN CAPITAL LETTER OI */ + /* 393*/ 0x01a5, 1, 0x01a4, /* LATIN CAPITAL LETTER P WITH HOOK */ + /* 396*/ 0x01a8, 1, 0x01a7, /* LATIN CAPITAL LETTER TONE TWO */ + /* 399*/ 0x01ad, 1, 0x01ac, /* LATIN CAPITAL LETTER T WITH HOOK */ + /* 402*/ 0x01b0, 1, 0x01af, /* LATIN CAPITAL LETTER U WITH HORN */ + /* 405*/ 0x01b4, 1, 0x01b3, /* LATIN CAPITAL LETTER Y WITH HOOK */ + /* 408*/ 0x01b6, 1, 0x01b5, /* LATIN CAPITAL LETTER Z WITH STROKE */ + /* 411*/ 0x01b9, 1, 0x01b8, /* LATIN CAPITAL LETTER EZH REVERSED */ + /* 414*/ 0x01bd, 1, 0x01bc, /* LATIN CAPITAL LETTER TONE FIVE */ + /* 417*/ 0x01bf, 1, 0x01f7, /* LATIN CAPITAL LETTER WYNN */ + /* 420*/ 0x01c6, 2, 0x01c4, 0x01c5, /* LATIN CAPITAL LETTER DZ WITH CARON */ + /* 424*/ 0x01c9, 2, 0x01c7, 0x01c8, /* LATIN CAPITAL LETTER LJ */ + /* 428*/ 0x01cc, 2, 0x01ca, 0x01cb, /* LATIN CAPITAL LETTER NJ */ + /* 432*/ 0x01ce, 1, 0x01cd, /* LATIN CAPITAL LETTER A WITH CARON */ + /* 435*/ 0x01d0, 1, 0x01cf, /* LATIN CAPITAL LETTER I WITH CARON */ + /* 438*/ 0x01d2, 1, 0x01d1, /* LATIN CAPITAL LETTER O WITH CARON */ + /* 441*/ 0x01d4, 1, 0x01d3, /* LATIN CAPITAL LETTER U WITH CARON */ + /* 444*/ 0x01d6, 1, 0x01d5, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /* 447*/ 0x01d8, 1, 0x01d7, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /* 450*/ 0x01da, 1, 0x01d9, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /* 453*/ 0x01dc, 1, 0x01db, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /* 456*/ 0x01dd, 1, 0x018e, /* LATIN CAPITAL LETTER REVERSED E */ + /* 459*/ 0x01df, 1, 0x01de, /* LATIN CAPITAL LETTER A WITH DIAER.. */ + /* 462*/ 0x01e1, 1, 0x01e0, /* LATIN CAPITAL LETTER A WITH DOT A.. */ + /* 465*/ 0x01e3, 1, 0x01e2, /* LATIN CAPITAL LETTER AE WITH MACR.. */ + /* 468*/ 0x01e5, 1, 0x01e4, /* LATIN CAPITAL LETTER G WITH STROKE */ + /* 471*/ 0x01e7, 1, 0x01e6, /* LATIN CAPITAL LETTER G WITH CARON */ + /* 474*/ 0x01e9, 1, 0x01e8, /* LATIN CAPITAL LETTER K WITH CARON */ + /* 477*/ 0x01eb, 1, 0x01ea, /* LATIN CAPITAL LETTER O WITH OGONEK */ + /* 480*/ 0x01ed, 1, 0x01ec, /* LATIN CAPITAL LETTER O WITH OGONE.. */ + /* 483*/ 0x01ef, 1, 0x01ee, /* LATIN CAPITAL LETTER EZH WITH CAR.. */ + /* 486*/ 0x01f3, 2, 0x01f1, 0x01f2, /* LATIN CAPITAL LETTER DZ */ + /* 490*/ 0x01f5, 1, 0x01f4, /* LATIN CAPITAL LETTER G WITH ACUTE */ + /* 493*/ 0x01f9, 1, 0x01f8, /* LATIN CAPITAL LETTER N WITH GRAVE */ + /* 496*/ 0x01fb, 1, 0x01fa, /* LATIN CAPITAL LETTER A WITH RING .. */ + /* 499*/ 0x01fd, 1, 0x01fc, /* LATIN CAPITAL LETTER AE WITH ACUTE */ + /* 502*/ 0x01ff, 1, 0x01fe, /* LATIN CAPITAL LETTER O WITH STROK.. */ + /* 505*/ 0x0201, 1, 0x0200, /* LATIN CAPITAL LETTER A WITH DOUBL.. */ + /* 508*/ 0x0203, 1, 0x0202, /* LATIN CAPITAL LETTER A WITH INVER.. */ + /* 511*/ 0x0205, 1, 0x0204, /* LATIN CAPITAL LETTER E WITH DOUBL.. */ + /* 514*/ 0x0207, 1, 0x0206, /* LATIN CAPITAL LETTER E WITH INVER.. */ + /* 517*/ 0x0209, 1, 0x0208, /* LATIN CAPITAL LETTER I WITH DOUBL.. */ + /* 520*/ 0x020b, 1, 0x020a, /* LATIN CAPITAL LETTER I WITH INVER.. */ + /* 523*/ 0x020d, 1, 0x020c, /* LATIN CAPITAL LETTER O WITH DOUBL.. */ + /* 526*/ 0x020f, 1, 0x020e, /* LATIN CAPITAL LETTER O WITH INVER.. */ + /* 529*/ 0x0211, 1, 0x0210, /* LATIN CAPITAL LETTER R WITH DOUBL.. */ + /* 532*/ 0x0213, 1, 0x0212, /* LATIN CAPITAL LETTER R WITH INVER.. */ + /* 535*/ 0x0215, 1, 0x0214, /* LATIN CAPITAL LETTER U WITH DOUBL.. */ + /* 538*/ 0x0217, 1, 0x0216, /* LATIN CAPITAL LETTER U WITH INVER.. */ + /* 541*/ 0x0219, 1, 0x0218, /* LATIN CAPITAL LETTER S WITH COMMA.. */ + /* 544*/ 0x021b, 1, 0x021a, /* LATIN CAPITAL LETTER T WITH COMMA.. */ + /* 547*/ 0x021d, 1, 0x021c, /* LATIN CAPITAL LETTER YOGH */ + /* 550*/ 0x021f, 1, 0x021e, /* LATIN CAPITAL LETTER H WITH CARON */ + /* 553*/ 0x0223, 1, 0x0222, /* LATIN CAPITAL LETTER OU */ + /* 556*/ 0x0225, 1, 0x0224, /* LATIN CAPITAL LETTER Z WITH HOOK */ + /* 559*/ 0x0227, 1, 0x0226, /* LATIN CAPITAL LETTER A WITH DOT A.. */ + /* 562*/ 0x0229, 1, 0x0228, /* LATIN CAPITAL LETTER E WITH CEDIL.. */ + /* 565*/ 0x022b, 1, 0x022a, /* LATIN CAPITAL LETTER O WITH DIAER.. */ + /* 568*/ 0x022d, 1, 0x022c, /* LATIN CAPITAL LETTER O WITH TILDE.. */ + /* 571*/ 0x022f, 1, 0x022e, /* LATIN CAPITAL LETTER O WITH DOT A.. */ + /* 574*/ 0x0231, 1, 0x0230, /* LATIN CAPITAL LETTER O WITH DOT A.. */ + /* 577*/ 0x0233, 1, 0x0232, /* LATIN CAPITAL LETTER Y WITH MACRON */ + /* 580*/ 0x023c, 1, 0x023b, /* LATIN CAPITAL LETTER C WITH STROKE */ + /* 583*/ 0x023f, 1, 0x2c7e, /* LATIN CAPITAL LETTER S WITH SWASH.. */ + /* 586*/ 0x0240, 1, 0x2c7f, /* LATIN CAPITAL LETTER Z WITH SWASH.. */ + /* 589*/ 0x0242, 1, 0x0241, /* LATIN CAPITAL LETTER GLOTTAL STOP */ + /* 592*/ 0x0247, 1, 0x0246, /* LATIN CAPITAL LETTER E WITH STROKE */ + /* 595*/ 0x0249, 1, 0x0248, /* LATIN CAPITAL LETTER J WITH STROKE */ + /* 598*/ 0x024b, 1, 0x024a, /* LATIN CAPITAL LETTER SMALL Q WITH.. */ + /* 601*/ 0x024d, 1, 0x024c, /* LATIN CAPITAL LETTER R WITH STROKE */ + /* 604*/ 0x024f, 1, 0x024e, /* LATIN CAPITAL LETTER Y WITH STROKE */ + /* 607*/ 0x0250, 1, 0x2c6f, /* LATIN CAPITAL LETTER TURNED A */ + /* 610*/ 0x0251, 1, 0x2c6d, /* LATIN CAPITAL LETTER ALPHA */ + /* 613*/ 0x0252, 1, 0x2c70, /* LATIN CAPITAL LETTER TURNED ALPHA */ + /* 616*/ 0x0253, 1, 0x0181, /* LATIN CAPITAL LETTER B WITH HOOK */ + /* 619*/ 0x0254, 1, 0x0186, /* LATIN CAPITAL LETTER OPEN O */ + /* 622*/ 0x0256, 1, 0x0189, /* LATIN CAPITAL LETTER AFRICAN D */ + /* 625*/ 0x0257, 1, 0x018a, /* LATIN CAPITAL LETTER D WITH HOOK */ + /* 628*/ 0x0259, 1, 0x018f, /* LATIN CAPITAL LETTER SCHWA */ + /* 631*/ 0x025b, 1, 0x0190, /* LATIN CAPITAL LETTER OPEN E */ + /* 634*/ 0x025c, 1, 0xa7ab, /* LATIN CAPITAL LETTER REVERSED OPE.. */ + /* 637*/ 0x0260, 1, 0x0193, /* LATIN CAPITAL LETTER G WITH HOOK */ + /* 640*/ 0x0261, 1, 0xa7ac, /* LATIN CAPITAL LETTER SCRIPT G */ + /* 643*/ 0x0263, 1, 0x0194, /* LATIN CAPITAL LETTER GAMMA */ + /* 646*/ 0x0264, 1, 0xa7cb, /* LATIN CAPITAL LETTER RAMS HORN */ + /* 649*/ 0x0265, 1, 0xa78d, /* LATIN CAPITAL LETTER TURNED H */ + /* 652*/ 0x0266, 1, 0xa7aa, /* LATIN CAPITAL LETTER H WITH HOOK */ + /* 655*/ 0x0268, 1, 0x0197, /* LATIN CAPITAL LETTER I WITH STROKE */ + /* 658*/ 0x0269, 1, 0x0196, /* LATIN CAPITAL LETTER IOTA */ + /* 661*/ 0x026a, 1, 0xa7ae, /* LATIN CAPITAL LETTER SMALL CAPITA.. */ + /* 664*/ 0x026b, 1, 0x2c62, /* LATIN CAPITAL LETTER L WITH MIDDL.. */ + /* 667*/ 0x026c, 1, 0xa7ad, /* LATIN CAPITAL LETTER L WITH BELT */ + /* 670*/ 0x026f, 1, 0x019c, /* LATIN CAPITAL LETTER TURNED M */ + /* 673*/ 0x0271, 1, 0x2c6e, /* LATIN CAPITAL LETTER M WITH HOOK */ + /* 676*/ 0x0272, 1, 0x019d, /* LATIN CAPITAL LETTER N WITH LEFT .. */ + /* 679*/ 0x0275, 1, 0x019f, /* LATIN CAPITAL LETTER O WITH MIDDL.. */ + /* 682*/ 0x027d, 1, 0x2c64, /* LATIN CAPITAL LETTER R WITH TAIL */ + /* 685*/ 0x0280, 1, 0x01a6, /* LATIN LETTER YR */ + /* 688*/ 0x0282, 1, 0xa7c5, /* LATIN CAPITAL LETTER S WITH HOOK */ + /* 691*/ 0x0283, 1, 0x01a9, /* LATIN CAPITAL LETTER ESH */ + /* 694*/ 0x0287, 1, 0xa7b1, /* LATIN CAPITAL LETTER TURNED T */ + /* 697*/ 0x0288, 1, 0x01ae, /* LATIN CAPITAL LETTER T WITH RETRO.. */ + /* 700*/ 0x0289, 1, 0x0244, /* LATIN CAPITAL LETTER U BAR */ + /* 703*/ 0x028a, 1, 0x01b1, /* LATIN CAPITAL LETTER UPSILON */ + /* 706*/ 0x028b, 1, 0x01b2, /* LATIN CAPITAL LETTER V WITH HOOK */ + /* 709*/ 0x028c, 1, 0x0245, /* LATIN CAPITAL LETTER TURNED V */ + /* 712*/ 0x0292, 1, 0x01b7, /* LATIN CAPITAL LETTER EZH */ + /* 715*/ 0x029d, 1, 0xa7b2, /* LATIN CAPITAL LETTER J WITH CROSS.. */ + /* 718*/ 0x029e, 1, 0xa7b0, /* LATIN CAPITAL LETTER TURNED K */ + /* 721*/ 0x0371, 1, 0x0370, /* GREEK CAPITAL LETTER HETA */ + /* 724*/ 0x0373, 1, 0x0372, /* GREEK CAPITAL LETTER ARCHAIC SAMPI */ + /* 727*/ 0x0377, 1, 0x0376, /* GREEK CAPITAL LETTER PAMPHYLIAN D.. */ + /* 730*/ 0x037b, 1, 0x03fd, /* GREEK CAPITAL REVERSED LUNATE SIG.. */ + /* 733*/ 0x037c, 1, 0x03fe, /* GREEK CAPITAL DOTTED LUNATE SIGMA.. */ + /* 736*/ 0x037d, 1, 0x03ff, /* GREEK CAPITAL REVERSED DOTTED LUN.. */ + /* 739*/ 0x03ac, 1, 0x0386, /* GREEK CAPITAL LETTER ALPHA WITH T.. */ + /* 742*/ 0x03ad, 1, 0x0388, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /* 745*/ 0x03ae, 1, 0x0389, /* GREEK CAPITAL LETTER ETA WITH TON.. */ + /* 748*/ 0x03af, 1, 0x038a, /* GREEK CAPITAL LETTER IOTA WITH TO.. */ + /* 751*/ 0x03b1, 1, 0x0391, /* GREEK CAPITAL LETTER ALPHA */ + /* 754*/ 0x03b2, 2, 0x0392, 0x03d0, /* GREEK CAPITAL LETTER BETA */ + /* 758*/ 0x03b3, 1, 0x0393, /* GREEK CAPITAL LETTER GAMMA */ + /* 761*/ 0x03b4, 1, 0x0394, /* GREEK CAPITAL LETTER DELTA */ + /* 764*/ 0x03b5, 2, 0x0395, 0x03f5, /* GREEK CAPITAL LETTER EPSILON */ + /* 768*/ 0x03b6, 1, 0x0396, /* GREEK CAPITAL LETTER ZETA */ + /* 771*/ 0x03b7, 1, 0x0397, /* GREEK CAPITAL LETTER ETA */ + /* 774*/ 0x03b8, 3, 0x0398, 0x03d1, 0x03f4, /* GREEK CAPITAL LETTER THETA */ + /* 779*/ 0x03b9, 3, 0x0345, 0x0399, 0x1fbe, /* COMBINING GREEK YPOGEGRAMMENI */ + /* 784*/ 0x03ba, 2, 0x039a, 0x03f0, /* GREEK CAPITAL LETTER KAPPA */ + /* 788*/ 0x03bb, 1, 0x039b, /* GREEK CAPITAL LETTER LAMDA */ + /* 791*/ 0x03bc, 2, 0x00b5, 0x039c, /* MICRO SIGN */ + /* 795*/ 0x03bd, 1, 0x039d, /* GREEK CAPITAL LETTER NU */ + /* 798*/ 0x03be, 1, 0x039e, /* GREEK CAPITAL LETTER XI */ + /* 801*/ 0x03bf, 1, 0x039f, /* GREEK CAPITAL LETTER OMICRON */ + /* 804*/ 0x03c0, 2, 0x03a0, 0x03d6, /* GREEK CAPITAL LETTER PI */ + /* 808*/ 0x03c1, 2, 0x03a1, 0x03f1, /* GREEK CAPITAL LETTER RHO */ + /* 812*/ 0x03c3, 2, 0x03a3, 0x03c2, /* GREEK CAPITAL LETTER SIGMA */ + /* 816*/ 0x03c4, 1, 0x03a4, /* GREEK CAPITAL LETTER TAU */ + /* 819*/ 0x03c5, 1, 0x03a5, /* GREEK CAPITAL LETTER UPSILON */ + /* 822*/ 0x03c6, 2, 0x03a6, 0x03d5, /* GREEK CAPITAL LETTER PHI */ + /* 826*/ 0x03c7, 1, 0x03a7, /* GREEK CAPITAL LETTER CHI */ + /* 829*/ 0x03c8, 1, 0x03a8, /* GREEK CAPITAL LETTER PSI */ + /* 832*/ 0x03c9, 2, 0x03a9, 0x2126, /* GREEK CAPITAL LETTER OMEGA */ + /* 836*/ 0x03ca, 1, 0x03aa, /* GREEK CAPITAL LETTER IOTA WITH DI.. */ + /* 839*/ 0x03cb, 1, 0x03ab, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /* 842*/ 0x03cc, 1, 0x038c, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /* 845*/ 0x03cd, 1, 0x038e, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /* 848*/ 0x03ce, 1, 0x038f, /* GREEK CAPITAL LETTER OMEGA WITH T.. */ + /* 851*/ 0x03d7, 1, 0x03cf, /* GREEK CAPITAL KAI SYMBOL */ + /* 854*/ 0x03d9, 1, 0x03d8, /* GREEK LETTER ARCHAIC KOPPA */ + /* 857*/ 0x03db, 1, 0x03da, /* GREEK LETTER STIGMA */ + /* 860*/ 0x03dd, 1, 0x03dc, /* GREEK LETTER DIGAMMA */ + /* 863*/ 0x03df, 1, 0x03de, /* GREEK LETTER KOPPA */ + /* 866*/ 0x03e1, 1, 0x03e0, /* GREEK LETTER SAMPI */ + /* 869*/ 0x03e3, 1, 0x03e2, /* COPTIC CAPITAL LETTER SHEI */ + /* 872*/ 0x03e5, 1, 0x03e4, /* COPTIC CAPITAL LETTER FEI */ + /* 875*/ 0x03e7, 1, 0x03e6, /* COPTIC CAPITAL LETTER KHEI */ + /* 878*/ 0x03e9, 1, 0x03e8, /* COPTIC CAPITAL LETTER HORI */ + /* 881*/ 0x03eb, 1, 0x03ea, /* COPTIC CAPITAL LETTER GANGIA */ + /* 884*/ 0x03ed, 1, 0x03ec, /* COPTIC CAPITAL LETTER SHIMA */ + /* 887*/ 0x03ef, 1, 0x03ee, /* COPTIC CAPITAL LETTER DEI */ + /* 890*/ 0x03f2, 1, 0x03f9, /* GREEK CAPITAL LUNATE SIGMA SYMBOL */ + /* 893*/ 0x03f3, 1, 0x037f, /* GREEK CAPITAL LETTER YOT */ + /* 896*/ 0x03f8, 1, 0x03f7, /* GREEK CAPITAL LETTER SHO */ + /* 899*/ 0x03fb, 1, 0x03fa, /* GREEK CAPITAL LETTER SAN */ + /* 902*/ 0x0430, 1, 0x0410, /* CYRILLIC CAPITAL LETTER A */ + /* 905*/ 0x0431, 1, 0x0411, /* CYRILLIC CAPITAL LETTER BE */ + /* 908*/ 0x0432, 2, 0x0412, 0x1c80, /* CYRILLIC CAPITAL LETTER VE */ + /* 912*/ 0x0433, 1, 0x0413, /* CYRILLIC CAPITAL LETTER GHE */ + /* 915*/ 0x0434, 2, 0x0414, 0x1c81, /* CYRILLIC CAPITAL LETTER DE */ + /* 919*/ 0x0435, 1, 0x0415, /* CYRILLIC CAPITAL LETTER IE */ + /* 922*/ 0x0436, 1, 0x0416, /* CYRILLIC CAPITAL LETTER ZHE */ + /* 925*/ 0x0437, 1, 0x0417, /* CYRILLIC CAPITAL LETTER ZE */ + /* 928*/ 0x0438, 1, 0x0418, /* CYRILLIC CAPITAL LETTER I */ + /* 931*/ 0x0439, 1, 0x0419, /* CYRILLIC CAPITAL LETTER SHORT I */ + /* 934*/ 0x043a, 1, 0x041a, /* CYRILLIC CAPITAL LETTER KA */ + /* 937*/ 0x043b, 1, 0x041b, /* CYRILLIC CAPITAL LETTER EL */ + /* 940*/ 0x043c, 1, 0x041c, /* CYRILLIC CAPITAL LETTER EM */ + /* 943*/ 0x043d, 1, 0x041d, /* CYRILLIC CAPITAL LETTER EN */ + /* 946*/ 0x043e, 2, 0x041e, 0x1c82, /* CYRILLIC CAPITAL LETTER O */ + /* 950*/ 0x043f, 1, 0x041f, /* CYRILLIC CAPITAL LETTER PE */ + /* 953*/ 0x0440, 1, 0x0420, /* CYRILLIC CAPITAL LETTER ER */ + /* 956*/ 0x0441, 2, 0x0421, 0x1c83, /* CYRILLIC CAPITAL LETTER ES */ + /* 960*/ 0x0442, 3, 0x0422, 0x1c84, 0x1c85, /* CYRILLIC CAPITAL LETTER TE */ + /* 965*/ 0x0443, 1, 0x0423, /* CYRILLIC CAPITAL LETTER U */ + /* 968*/ 0x0444, 1, 0x0424, /* CYRILLIC CAPITAL LETTER EF */ + /* 971*/ 0x0445, 1, 0x0425, /* CYRILLIC CAPITAL LETTER HA */ + /* 974*/ 0x0446, 1, 0x0426, /* CYRILLIC CAPITAL LETTER TSE */ + /* 977*/ 0x0447, 1, 0x0427, /* CYRILLIC CAPITAL LETTER CHE */ + /* 980*/ 0x0448, 1, 0x0428, /* CYRILLIC CAPITAL LETTER SHA */ + /* 983*/ 0x0449, 1, 0x0429, /* CYRILLIC CAPITAL LETTER SHCHA */ + /* 986*/ 0x044a, 2, 0x042a, 0x1c86, /* CYRILLIC CAPITAL LETTER HARD SIGN */ + /* 990*/ 0x044b, 1, 0x042b, /* CYRILLIC CAPITAL LETTER YERU */ + /* 993*/ 0x044c, 1, 0x042c, /* CYRILLIC CAPITAL LETTER SOFT SIGN */ + /* 996*/ 0x044d, 1, 0x042d, /* CYRILLIC CAPITAL LETTER E */ + /* 999*/ 0x044e, 1, 0x042e, /* CYRILLIC CAPITAL LETTER YU */ + /*1002*/ 0x044f, 1, 0x042f, /* CYRILLIC CAPITAL LETTER YA */ + /*1005*/ 0x0450, 1, 0x0400, /* CYRILLIC CAPITAL LETTER IE WITH G.. */ + /*1008*/ 0x0451, 1, 0x0401, /* CYRILLIC CAPITAL LETTER IO */ + /*1011*/ 0x0452, 1, 0x0402, /* CYRILLIC CAPITAL LETTER DJE */ + /*1014*/ 0x0453, 1, 0x0403, /* CYRILLIC CAPITAL LETTER GJE */ + /*1017*/ 0x0454, 1, 0x0404, /* CYRILLIC CAPITAL LETTER UKRAINIAN.. */ + /*1020*/ 0x0455, 1, 0x0405, /* CYRILLIC CAPITAL LETTER DZE */ + /*1023*/ 0x0456, 1, 0x0406, /* CYRILLIC CAPITAL LETTER BYELORUSS.. */ + /*1026*/ 0x0457, 1, 0x0407, /* CYRILLIC CAPITAL LETTER YI */ + /*1029*/ 0x0458, 1, 0x0408, /* CYRILLIC CAPITAL LETTER JE */ + /*1032*/ 0x0459, 1, 0x0409, /* CYRILLIC CAPITAL LETTER LJE */ + /*1035*/ 0x045a, 1, 0x040a, /* CYRILLIC CAPITAL LETTER NJE */ + /*1038*/ 0x045b, 1, 0x040b, /* CYRILLIC CAPITAL LETTER TSHE */ + /*1041*/ 0x045c, 1, 0x040c, /* CYRILLIC CAPITAL LETTER KJE */ + /*1044*/ 0x045d, 1, 0x040d, /* CYRILLIC CAPITAL LETTER I WITH GR.. */ + /*1047*/ 0x045e, 1, 0x040e, /* CYRILLIC CAPITAL LETTER SHORT U */ + /*1050*/ 0x045f, 1, 0x040f, /* CYRILLIC CAPITAL LETTER DZHE */ + /*1053*/ 0x0461, 1, 0x0460, /* CYRILLIC CAPITAL LETTER OMEGA */ + /*1056*/ 0x0463, 2, 0x0462, 0x1c87, /* CYRILLIC CAPITAL LETTER YAT */ + /*1060*/ 0x0465, 1, 0x0464, /* CYRILLIC CAPITAL LETTER IOTIFIED E */ + /*1063*/ 0x0467, 1, 0x0466, /* CYRILLIC CAPITAL LETTER LITTLE YUS */ + /*1066*/ 0x0469, 1, 0x0468, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ + /*1069*/ 0x046b, 1, 0x046a, /* CYRILLIC CAPITAL LETTER BIG YUS */ + /*1072*/ 0x046d, 1, 0x046c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ + /*1075*/ 0x046f, 1, 0x046e, /* CYRILLIC CAPITAL LETTER KSI */ + /*1078*/ 0x0471, 1, 0x0470, /* CYRILLIC CAPITAL LETTER PSI */ + /*1081*/ 0x0473, 1, 0x0472, /* CYRILLIC CAPITAL LETTER FITA */ + /*1084*/ 0x0475, 1, 0x0474, /* CYRILLIC CAPITAL LETTER IZHITSA */ + /*1087*/ 0x0477, 1, 0x0476, /* CYRILLIC CAPITAL LETTER IZHITSA W.. */ + /*1090*/ 0x0479, 1, 0x0478, /* CYRILLIC CAPITAL LETTER UK */ + /*1093*/ 0x047b, 1, 0x047a, /* CYRILLIC CAPITAL LETTER ROUND OME.. */ + /*1096*/ 0x047d, 1, 0x047c, /* CYRILLIC CAPITAL LETTER OMEGA WIT.. */ + /*1099*/ 0x047f, 1, 0x047e, /* CYRILLIC CAPITAL LETTER OT */ + /*1102*/ 0x0481, 1, 0x0480, /* CYRILLIC CAPITAL LETTER KOPPA */ + /*1105*/ 0x048b, 1, 0x048a, /* CYRILLIC CAPITAL LETTER SHORT I W.. */ + /*1108*/ 0x048d, 1, 0x048c, /* CYRILLIC CAPITAL LETTER SEMISOFT .. */ + /*1111*/ 0x048f, 1, 0x048e, /* CYRILLIC CAPITAL LETTER ER WITH T.. */ + /*1114*/ 0x0491, 1, 0x0490, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1117*/ 0x0493, 1, 0x0492, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1120*/ 0x0495, 1, 0x0494, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1123*/ 0x0497, 1, 0x0496, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ + /*1126*/ 0x0499, 1, 0x0498, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */ + /*1129*/ 0x049b, 1, 0x049a, /* CYRILLIC CAPITAL LETTER KA WITH D.. */ + /*1132*/ 0x049d, 1, 0x049c, /* CYRILLIC CAPITAL LETTER KA WITH V.. */ + /*1135*/ 0x049f, 1, 0x049e, /* CYRILLIC CAPITAL LETTER KA WITH S.. */ + /*1138*/ 0x04a1, 1, 0x04a0, /* CYRILLIC CAPITAL LETTER BASHKIR KA */ + /*1141*/ 0x04a3, 1, 0x04a2, /* CYRILLIC CAPITAL LETTER EN WITH D.. */ + /*1144*/ 0x04a5, 1, 0x04a4, /* CYRILLIC CAPITAL LIGATURE EN GHE */ + /*1147*/ 0x04a7, 1, 0x04a6, /* CYRILLIC CAPITAL LETTER PE WITH M.. */ + /*1150*/ 0x04a9, 1, 0x04a8, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ + /*1153*/ 0x04ab, 1, 0x04aa, /* CYRILLIC CAPITAL LETTER ES WITH D.. */ + /*1156*/ 0x04ad, 1, 0x04ac, /* CYRILLIC CAPITAL LETTER TE WITH D.. */ + /*1159*/ 0x04af, 1, 0x04ae, /* CYRILLIC CAPITAL LETTER STRAIGHT U */ + /*1162*/ 0x04b1, 1, 0x04b0, /* CYRILLIC CAPITAL LETTER STRAIGHT .. */ + /*1165*/ 0x04b3, 1, 0x04b2, /* CYRILLIC CAPITAL LETTER HA WITH D.. */ + /*1168*/ 0x04b5, 1, 0x04b4, /* CYRILLIC CAPITAL LIGATURE TE TSE */ + /*1171*/ 0x04b7, 1, 0x04b6, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ + /*1174*/ 0x04b9, 1, 0x04b8, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ + /*1177*/ 0x04bb, 1, 0x04ba, /* CYRILLIC CAPITAL LETTER SHHA */ + /*1180*/ 0x04bd, 1, 0x04bc, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ + /*1183*/ 0x04bf, 1, 0x04be, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ + /*1186*/ 0x04c2, 1, 0x04c1, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ + /*1189*/ 0x04c4, 1, 0x04c3, /* CYRILLIC CAPITAL LETTER KA WITH H.. */ + /*1192*/ 0x04c6, 1, 0x04c5, /* CYRILLIC CAPITAL LETTER EL WITH T.. */ + /*1195*/ 0x04c8, 1, 0x04c7, /* CYRILLIC CAPITAL LETTER EN WITH H.. */ + /*1198*/ 0x04ca, 1, 0x04c9, /* CYRILLIC CAPITAL LETTER EN WITH T.. */ + /*1201*/ 0x04cc, 1, 0x04cb, /* CYRILLIC CAPITAL LETTER KHAKASSIA.. */ + /*1204*/ 0x04ce, 1, 0x04cd, /* CYRILLIC CAPITAL LETTER EM WITH T.. */ + /*1207*/ 0x04cf, 1, 0x04c0, /* CYRILLIC LETTER PALOCHKA */ + /*1210*/ 0x04d1, 1, 0x04d0, /* CYRILLIC CAPITAL LETTER A WITH BR.. */ + /*1213*/ 0x04d3, 1, 0x04d2, /* CYRILLIC CAPITAL LETTER A WITH DI.. */ + /*1216*/ 0x04d5, 1, 0x04d4, /* CYRILLIC CAPITAL LIGATURE A IE */ + /*1219*/ 0x04d7, 1, 0x04d6, /* CYRILLIC CAPITAL LETTER IE WITH B.. */ + /*1222*/ 0x04d9, 1, 0x04d8, /* CYRILLIC CAPITAL LETTER SCHWA */ + /*1225*/ 0x04db, 1, 0x04da, /* CYRILLIC CAPITAL LETTER SCHWA WIT.. */ + /*1228*/ 0x04dd, 1, 0x04dc, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ + /*1231*/ 0x04df, 1, 0x04de, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */ + /*1234*/ 0x04e1, 1, 0x04e0, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ + /*1237*/ 0x04e3, 1, 0x04e2, /* CYRILLIC CAPITAL LETTER I WITH MA.. */ + /*1240*/ 0x04e5, 1, 0x04e4, /* CYRILLIC CAPITAL LETTER I WITH DI.. */ + /*1243*/ 0x04e7, 1, 0x04e6, /* CYRILLIC CAPITAL LETTER O WITH DI.. */ + /*1246*/ 0x04e9, 1, 0x04e8, /* CYRILLIC CAPITAL LETTER BARRED O */ + /*1249*/ 0x04eb, 1, 0x04ea, /* CYRILLIC CAPITAL LETTER BARRED O .. */ + /*1252*/ 0x04ed, 1, 0x04ec, /* CYRILLIC CAPITAL LETTER E WITH DI.. */ + /*1255*/ 0x04ef, 1, 0x04ee, /* CYRILLIC CAPITAL LETTER U WITH MA.. */ + /*1258*/ 0x04f1, 1, 0x04f0, /* CYRILLIC CAPITAL LETTER U WITH DI.. */ + /*1261*/ 0x04f3, 1, 0x04f2, /* CYRILLIC CAPITAL LETTER U WITH DO.. */ + /*1264*/ 0x04f5, 1, 0x04f4, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ + /*1267*/ 0x04f7, 1, 0x04f6, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1270*/ 0x04f9, 1, 0x04f8, /* CYRILLIC CAPITAL LETTER YERU WITH.. */ + /*1273*/ 0x04fb, 1, 0x04fa, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1276*/ 0x04fd, 1, 0x04fc, /* CYRILLIC CAPITAL LETTER HA WITH H.. */ + /*1279*/ 0x04ff, 1, 0x04fe, /* CYRILLIC CAPITAL LETTER HA WITH S.. */ + /*1282*/ 0x0501, 1, 0x0500, /* CYRILLIC CAPITAL LETTER KOMI DE */ + /*1285*/ 0x0503, 1, 0x0502, /* CYRILLIC CAPITAL LETTER KOMI DJE */ + /*1288*/ 0x0505, 1, 0x0504, /* CYRILLIC CAPITAL LETTER KOMI ZJE */ + /*1291*/ 0x0507, 1, 0x0506, /* CYRILLIC CAPITAL LETTER KOMI DZJE */ + /*1294*/ 0x0509, 1, 0x0508, /* CYRILLIC CAPITAL LETTER KOMI LJE */ + /*1297*/ 0x050b, 1, 0x050a, /* CYRILLIC CAPITAL LETTER KOMI NJE */ + /*1300*/ 0x050d, 1, 0x050c, /* CYRILLIC CAPITAL LETTER KOMI SJE */ + /*1303*/ 0x050f, 1, 0x050e, /* CYRILLIC CAPITAL LETTER KOMI TJE */ + /*1306*/ 0x0511, 1, 0x0510, /* CYRILLIC CAPITAL LETTER REVERSED .. */ + /*1309*/ 0x0513, 1, 0x0512, /* CYRILLIC CAPITAL LETTER EL WITH H.. */ + /*1312*/ 0x0515, 1, 0x0514, /* CYRILLIC CAPITAL LETTER LHA */ + /*1315*/ 0x0517, 1, 0x0516, /* CYRILLIC CAPITAL LETTER RHA */ + /*1318*/ 0x0519, 1, 0x0518, /* CYRILLIC CAPITAL LETTER YAE */ + /*1321*/ 0x051b, 1, 0x051a, /* CYRILLIC CAPITAL LETTER QA */ + /*1324*/ 0x051d, 1, 0x051c, /* CYRILLIC CAPITAL LETTER WE */ + /*1327*/ 0x051f, 1, 0x051e, /* CYRILLIC CAPITAL LETTER ALEUT KA */ + /*1330*/ 0x0521, 1, 0x0520, /* CYRILLIC CAPITAL LETTER EL WITH M.. */ + /*1333*/ 0x0523, 1, 0x0522, /* CYRILLIC CAPITAL LETTER EN WITH M.. */ + /*1336*/ 0x0525, 1, 0x0524, /* CYRILLIC CAPITAL LETTER PE WITH D.. */ + /*1339*/ 0x0527, 1, 0x0526, /* CYRILLIC CAPITAL LETTER SHHA WITH.. */ + /*1342*/ 0x0529, 1, 0x0528, /* CYRILLIC CAPITAL LETTER EN WITH L.. */ + /*1345*/ 0x052b, 1, 0x052a, /* CYRILLIC CAPITAL LETTER DZZHE */ + /*1348*/ 0x052d, 1, 0x052c, /* CYRILLIC CAPITAL LETTER DCHE */ + /*1351*/ 0x052f, 1, 0x052e, /* CYRILLIC CAPITAL LETTER EL WITH D.. */ + /*1354*/ 0x0561, 1, 0x0531, /* ARMENIAN CAPITAL LETTER AYB */ + /*1357*/ 0x0562, 1, 0x0532, /* ARMENIAN CAPITAL LETTER BEN */ + /*1360*/ 0x0563, 1, 0x0533, /* ARMENIAN CAPITAL LETTER GIM */ + /*1363*/ 0x0564, 1, 0x0534, /* ARMENIAN CAPITAL LETTER DA */ + /*1366*/ 0x0565, 1, 0x0535, /* ARMENIAN CAPITAL LETTER ECH */ + /*1369*/ 0x0566, 1, 0x0536, /* ARMENIAN CAPITAL LETTER ZA */ + /*1372*/ 0x0567, 1, 0x0537, /* ARMENIAN CAPITAL LETTER EH */ + /*1375*/ 0x0568, 1, 0x0538, /* ARMENIAN CAPITAL LETTER ET */ + /*1378*/ 0x0569, 1, 0x0539, /* ARMENIAN CAPITAL LETTER TO */ + /*1381*/ 0x056a, 1, 0x053a, /* ARMENIAN CAPITAL LETTER ZHE */ + /*1384*/ 0x056b, 1, 0x053b, /* ARMENIAN CAPITAL LETTER INI */ + /*1387*/ 0x056c, 1, 0x053c, /* ARMENIAN CAPITAL LETTER LIWN */ + /*1390*/ 0x056d, 1, 0x053d, /* ARMENIAN CAPITAL LETTER XEH */ + /*1393*/ 0x056e, 1, 0x053e, /* ARMENIAN CAPITAL LETTER CA */ + /*1396*/ 0x056f, 1, 0x053f, /* ARMENIAN CAPITAL LETTER KEN */ + /*1399*/ 0x0570, 1, 0x0540, /* ARMENIAN CAPITAL LETTER HO */ + /*1402*/ 0x0571, 1, 0x0541, /* ARMENIAN CAPITAL LETTER JA */ + /*1405*/ 0x0572, 1, 0x0542, /* ARMENIAN CAPITAL LETTER GHAD */ + /*1408*/ 0x0573, 1, 0x0543, /* ARMENIAN CAPITAL LETTER CHEH */ + /*1411*/ 0x0574, 1, 0x0544, /* ARMENIAN CAPITAL LETTER MEN */ + /*1414*/ 0x0575, 1, 0x0545, /* ARMENIAN CAPITAL LETTER YI */ + /*1417*/ 0x0576, 1, 0x0546, /* ARMENIAN CAPITAL LETTER NOW */ + /*1420*/ 0x0577, 1, 0x0547, /* ARMENIAN CAPITAL LETTER SHA */ + /*1423*/ 0x0578, 1, 0x0548, /* ARMENIAN CAPITAL LETTER VO */ + /*1426*/ 0x0579, 1, 0x0549, /* ARMENIAN CAPITAL LETTER CHA */ + /*1429*/ 0x057a, 1, 0x054a, /* ARMENIAN CAPITAL LETTER PEH */ + /*1432*/ 0x057b, 1, 0x054b, /* ARMENIAN CAPITAL LETTER JHEH */ + /*1435*/ 0x057c, 1, 0x054c, /* ARMENIAN CAPITAL LETTER RA */ + /*1438*/ 0x057d, 1, 0x054d, /* ARMENIAN CAPITAL LETTER SEH */ + /*1441*/ 0x057e, 1, 0x054e, /* ARMENIAN CAPITAL LETTER VEW */ + /*1444*/ 0x057f, 1, 0x054f, /* ARMENIAN CAPITAL LETTER TIWN */ + /*1447*/ 0x0580, 1, 0x0550, /* ARMENIAN CAPITAL LETTER REH */ + /*1450*/ 0x0581, 1, 0x0551, /* ARMENIAN CAPITAL LETTER CO */ + /*1453*/ 0x0582, 1, 0x0552, /* ARMENIAN CAPITAL LETTER YIWN */ + /*1456*/ 0x0583, 1, 0x0553, /* ARMENIAN CAPITAL LETTER PIWR */ + /*1459*/ 0x0584, 1, 0x0554, /* ARMENIAN CAPITAL LETTER KEH */ + /*1462*/ 0x0585, 1, 0x0555, /* ARMENIAN CAPITAL LETTER OH */ + /*1465*/ 0x0586, 1, 0x0556, /* ARMENIAN CAPITAL LETTER FEH */ + /*1468*/ 0x10d0, 1, 0x1c90, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1471*/ 0x10d1, 1, 0x1c91, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1474*/ 0x10d2, 1, 0x1c92, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1477*/ 0x10d3, 1, 0x1c93, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1480*/ 0x10d4, 1, 0x1c94, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1483*/ 0x10d5, 1, 0x1c95, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1486*/ 0x10d6, 1, 0x1c96, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1489*/ 0x10d7, 1, 0x1c97, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1492*/ 0x10d8, 1, 0x1c98, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1495*/ 0x10d9, 1, 0x1c99, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1498*/ 0x10da, 1, 0x1c9a, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1501*/ 0x10db, 1, 0x1c9b, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1504*/ 0x10dc, 1, 0x1c9c, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1507*/ 0x10dd, 1, 0x1c9d, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1510*/ 0x10de, 1, 0x1c9e, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1513*/ 0x10df, 1, 0x1c9f, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1516*/ 0x10e0, 1, 0x1ca0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1519*/ 0x10e1, 1, 0x1ca1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1522*/ 0x10e2, 1, 0x1ca2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1525*/ 0x10e3, 1, 0x1ca3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1528*/ 0x10e4, 1, 0x1ca4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1531*/ 0x10e5, 1, 0x1ca5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1534*/ 0x10e6, 1, 0x1ca6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1537*/ 0x10e7, 1, 0x1ca7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1540*/ 0x10e8, 1, 0x1ca8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1543*/ 0x10e9, 1, 0x1ca9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1546*/ 0x10ea, 1, 0x1caa, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1549*/ 0x10eb, 1, 0x1cab, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1552*/ 0x10ec, 1, 0x1cac, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1555*/ 0x10ed, 1, 0x1cad, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1558*/ 0x10ee, 1, 0x1cae, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1561*/ 0x10ef, 1, 0x1caf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1564*/ 0x10f0, 1, 0x1cb0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1567*/ 0x10f1, 1, 0x1cb1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1570*/ 0x10f2, 1, 0x1cb2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1573*/ 0x10f3, 1, 0x1cb3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1576*/ 0x10f4, 1, 0x1cb4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1579*/ 0x10f5, 1, 0x1cb5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1582*/ 0x10f6, 1, 0x1cb6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1585*/ 0x10f7, 1, 0x1cb7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1588*/ 0x10f8, 1, 0x1cb8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1591*/ 0x10f9, 1, 0x1cb9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1594*/ 0x10fa, 1, 0x1cba, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1597*/ 0x10fd, 1, 0x1cbd, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1600*/ 0x10fe, 1, 0x1cbe, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1603*/ 0x10ff, 1, 0x1cbf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1606*/ 0x13a0, 1, 0xab70, /* CHEROKEE SMALL LETTER A */ + /*1609*/ 0x13a1, 1, 0xab71, /* CHEROKEE SMALL LETTER E */ + /*1612*/ 0x13a2, 1, 0xab72, /* CHEROKEE SMALL LETTER I */ + /*1615*/ 0x13a3, 1, 0xab73, /* CHEROKEE SMALL LETTER O */ + /*1618*/ 0x13a4, 1, 0xab74, /* CHEROKEE SMALL LETTER U */ + /*1621*/ 0x13a5, 1, 0xab75, /* CHEROKEE SMALL LETTER V */ + /*1624*/ 0x13a6, 1, 0xab76, /* CHEROKEE SMALL LETTER GA */ + /*1627*/ 0x13a7, 1, 0xab77, /* CHEROKEE SMALL LETTER KA */ + /*1630*/ 0x13a8, 1, 0xab78, /* CHEROKEE SMALL LETTER GE */ + /*1633*/ 0x13a9, 1, 0xab79, /* CHEROKEE SMALL LETTER GI */ + /*1636*/ 0x13aa, 1, 0xab7a, /* CHEROKEE SMALL LETTER GO */ + /*1639*/ 0x13ab, 1, 0xab7b, /* CHEROKEE SMALL LETTER GU */ + /*1642*/ 0x13ac, 1, 0xab7c, /* CHEROKEE SMALL LETTER GV */ + /*1645*/ 0x13ad, 1, 0xab7d, /* CHEROKEE SMALL LETTER HA */ + /*1648*/ 0x13ae, 1, 0xab7e, /* CHEROKEE SMALL LETTER HE */ + /*1651*/ 0x13af, 1, 0xab7f, /* CHEROKEE SMALL LETTER HI */ + /*1654*/ 0x13b0, 1, 0xab80, /* CHEROKEE SMALL LETTER HO */ + /*1657*/ 0x13b1, 1, 0xab81, /* CHEROKEE SMALL LETTER HU */ + /*1660*/ 0x13b2, 1, 0xab82, /* CHEROKEE SMALL LETTER HV */ + /*1663*/ 0x13b3, 1, 0xab83, /* CHEROKEE SMALL LETTER LA */ + /*1666*/ 0x13b4, 1, 0xab84, /* CHEROKEE SMALL LETTER LE */ + /*1669*/ 0x13b5, 1, 0xab85, /* CHEROKEE SMALL LETTER LI */ + /*1672*/ 0x13b6, 1, 0xab86, /* CHEROKEE SMALL LETTER LO */ + /*1675*/ 0x13b7, 1, 0xab87, /* CHEROKEE SMALL LETTER LU */ + /*1678*/ 0x13b8, 1, 0xab88, /* CHEROKEE SMALL LETTER LV */ + /*1681*/ 0x13b9, 1, 0xab89, /* CHEROKEE SMALL LETTER MA */ + /*1684*/ 0x13ba, 1, 0xab8a, /* CHEROKEE SMALL LETTER ME */ + /*1687*/ 0x13bb, 1, 0xab8b, /* CHEROKEE SMALL LETTER MI */ + /*1690*/ 0x13bc, 1, 0xab8c, /* CHEROKEE SMALL LETTER MO */ + /*1693*/ 0x13bd, 1, 0xab8d, /* CHEROKEE SMALL LETTER MU */ + /*1696*/ 0x13be, 1, 0xab8e, /* CHEROKEE SMALL LETTER NA */ + /*1699*/ 0x13bf, 1, 0xab8f, /* CHEROKEE SMALL LETTER HNA */ + /*1702*/ 0x13c0, 1, 0xab90, /* CHEROKEE SMALL LETTER NAH */ + /*1705*/ 0x13c1, 1, 0xab91, /* CHEROKEE SMALL LETTER NE */ + /*1708*/ 0x13c2, 1, 0xab92, /* CHEROKEE SMALL LETTER NI */ + /*1711*/ 0x13c3, 1, 0xab93, /* CHEROKEE SMALL LETTER NO */ + /*1714*/ 0x13c4, 1, 0xab94, /* CHEROKEE SMALL LETTER NU */ + /*1717*/ 0x13c5, 1, 0xab95, /* CHEROKEE SMALL LETTER NV */ + /*1720*/ 0x13c6, 1, 0xab96, /* CHEROKEE SMALL LETTER QUA */ + /*1723*/ 0x13c7, 1, 0xab97, /* CHEROKEE SMALL LETTER QUE */ + /*1726*/ 0x13c8, 1, 0xab98, /* CHEROKEE SMALL LETTER QUI */ + /*1729*/ 0x13c9, 1, 0xab99, /* CHEROKEE SMALL LETTER QUO */ + /*1732*/ 0x13ca, 1, 0xab9a, /* CHEROKEE SMALL LETTER QUU */ + /*1735*/ 0x13cb, 1, 0xab9b, /* CHEROKEE SMALL LETTER QUV */ + /*1738*/ 0x13cc, 1, 0xab9c, /* CHEROKEE SMALL LETTER SA */ + /*1741*/ 0x13cd, 1, 0xab9d, /* CHEROKEE SMALL LETTER S */ + /*1744*/ 0x13ce, 1, 0xab9e, /* CHEROKEE SMALL LETTER SE */ + /*1747*/ 0x13cf, 1, 0xab9f, /* CHEROKEE SMALL LETTER SI */ + /*1750*/ 0x13d0, 1, 0xaba0, /* CHEROKEE SMALL LETTER SO */ + /*1753*/ 0x13d1, 1, 0xaba1, /* CHEROKEE SMALL LETTER SU */ + /*1756*/ 0x13d2, 1, 0xaba2, /* CHEROKEE SMALL LETTER SV */ + /*1759*/ 0x13d3, 1, 0xaba3, /* CHEROKEE SMALL LETTER DA */ + /*1762*/ 0x13d4, 1, 0xaba4, /* CHEROKEE SMALL LETTER TA */ + /*1765*/ 0x13d5, 1, 0xaba5, /* CHEROKEE SMALL LETTER DE */ + /*1768*/ 0x13d6, 1, 0xaba6, /* CHEROKEE SMALL LETTER TE */ + /*1771*/ 0x13d7, 1, 0xaba7, /* CHEROKEE SMALL LETTER DI */ + /*1774*/ 0x13d8, 1, 0xaba8, /* CHEROKEE SMALL LETTER TI */ + /*1777*/ 0x13d9, 1, 0xaba9, /* CHEROKEE SMALL LETTER DO */ + /*1780*/ 0x13da, 1, 0xabaa, /* CHEROKEE SMALL LETTER DU */ + /*1783*/ 0x13db, 1, 0xabab, /* CHEROKEE SMALL LETTER DV */ + /*1786*/ 0x13dc, 1, 0xabac, /* CHEROKEE SMALL LETTER DLA */ + /*1789*/ 0x13dd, 1, 0xabad, /* CHEROKEE SMALL LETTER TLA */ + /*1792*/ 0x13de, 1, 0xabae, /* CHEROKEE SMALL LETTER TLE */ + /*1795*/ 0x13df, 1, 0xabaf, /* CHEROKEE SMALL LETTER TLI */ + /*1798*/ 0x13e0, 1, 0xabb0, /* CHEROKEE SMALL LETTER TLO */ + /*1801*/ 0x13e1, 1, 0xabb1, /* CHEROKEE SMALL LETTER TLU */ + /*1804*/ 0x13e2, 1, 0xabb2, /* CHEROKEE SMALL LETTER TLV */ + /*1807*/ 0x13e3, 1, 0xabb3, /* CHEROKEE SMALL LETTER TSA */ + /*1810*/ 0x13e4, 1, 0xabb4, /* CHEROKEE SMALL LETTER TSE */ + /*1813*/ 0x13e5, 1, 0xabb5, /* CHEROKEE SMALL LETTER TSI */ + /*1816*/ 0x13e6, 1, 0xabb6, /* CHEROKEE SMALL LETTER TSO */ + /*1819*/ 0x13e7, 1, 0xabb7, /* CHEROKEE SMALL LETTER TSU */ + /*1822*/ 0x13e8, 1, 0xabb8, /* CHEROKEE SMALL LETTER TSV */ + /*1825*/ 0x13e9, 1, 0xabb9, /* CHEROKEE SMALL LETTER WA */ + /*1828*/ 0x13ea, 1, 0xabba, /* CHEROKEE SMALL LETTER WE */ + /*1831*/ 0x13eb, 1, 0xabbb, /* CHEROKEE SMALL LETTER WI */ + /*1834*/ 0x13ec, 1, 0xabbc, /* CHEROKEE SMALL LETTER WO */ + /*1837*/ 0x13ed, 1, 0xabbd, /* CHEROKEE SMALL LETTER WU */ + /*1840*/ 0x13ee, 1, 0xabbe, /* CHEROKEE SMALL LETTER WV */ + /*1843*/ 0x13ef, 1, 0xabbf, /* CHEROKEE SMALL LETTER YA */ + /*1846*/ 0x13f0, 1, 0x13f8, /* CHEROKEE SMALL LETTER YE */ + /*1849*/ 0x13f1, 1, 0x13f9, /* CHEROKEE SMALL LETTER YI */ + /*1852*/ 0x13f2, 1, 0x13fa, /* CHEROKEE SMALL LETTER YO */ + /*1855*/ 0x13f3, 1, 0x13fb, /* CHEROKEE SMALL LETTER YU */ + /*1858*/ 0x13f4, 1, 0x13fc, /* CHEROKEE SMALL LETTER YV */ + /*1861*/ 0x13f5, 1, 0x13fd, /* CHEROKEE SMALL LETTER MV */ + /*1864*/ 0x1c8a, 1, 0x1c89, /* CYRILLIC CAPITAL LETTER TJE */ + /*1867*/ 0x1d79, 1, 0xa77d, /* LATIN CAPITAL LETTER INSULAR G */ + /*1870*/ 0x1d7d, 1, 0x2c63, /* LATIN CAPITAL LETTER P WITH STROKE */ + /*1873*/ 0x1d8e, 1, 0xa7c6, /* LATIN CAPITAL LETTER Z WITH PALAT.. */ + /*1876*/ 0x1e01, 1, 0x1e00, /* LATIN CAPITAL LETTER A WITH RING .. */ + /*1879*/ 0x1e03, 1, 0x1e02, /* LATIN CAPITAL LETTER B WITH DOT A.. */ + /*1882*/ 0x1e05, 1, 0x1e04, /* LATIN CAPITAL LETTER B WITH DOT B.. */ + /*1885*/ 0x1e07, 1, 0x1e06, /* LATIN CAPITAL LETTER B WITH LINE .. */ + /*1888*/ 0x1e09, 1, 0x1e08, /* LATIN CAPITAL LETTER C WITH CEDIL.. */ + /*1891*/ 0x1e0b, 1, 0x1e0a, /* LATIN CAPITAL LETTER D WITH DOT A.. */ + /*1894*/ 0x1e0d, 1, 0x1e0c, /* LATIN CAPITAL LETTER D WITH DOT B.. */ + /*1897*/ 0x1e0f, 1, 0x1e0e, /* LATIN CAPITAL LETTER D WITH LINE .. */ + /*1900*/ 0x1e11, 1, 0x1e10, /* LATIN CAPITAL LETTER D WITH CEDIL.. */ + /*1903*/ 0x1e13, 1, 0x1e12, /* LATIN CAPITAL LETTER D WITH CIRCU.. */ + /*1906*/ 0x1e15, 1, 0x1e14, /* LATIN CAPITAL LETTER E WITH MACRO.. */ + /*1909*/ 0x1e17, 1, 0x1e16, /* LATIN CAPITAL LETTER E WITH MACRO.. */ + /*1912*/ 0x1e19, 1, 0x1e18, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*1915*/ 0x1e1b, 1, 0x1e1a, /* LATIN CAPITAL LETTER E WITH TILDE.. */ + /*1918*/ 0x1e1d, 1, 0x1e1c, /* LATIN CAPITAL LETTER E WITH CEDIL.. */ + /*1921*/ 0x1e1f, 1, 0x1e1e, /* LATIN CAPITAL LETTER F WITH DOT A.. */ + /*1924*/ 0x1e21, 1, 0x1e20, /* LATIN CAPITAL LETTER G WITH MACRON */ + /*1927*/ 0x1e23, 1, 0x1e22, /* LATIN CAPITAL LETTER H WITH DOT A.. */ + /*1930*/ 0x1e25, 1, 0x1e24, /* LATIN CAPITAL LETTER H WITH DOT B.. */ + /*1933*/ 0x1e27, 1, 0x1e26, /* LATIN CAPITAL LETTER H WITH DIAER.. */ + /*1936*/ 0x1e29, 1, 0x1e28, /* LATIN CAPITAL LETTER H WITH CEDIL.. */ + /*1939*/ 0x1e2b, 1, 0x1e2a, /* LATIN CAPITAL LETTER H WITH BREVE.. */ + /*1942*/ 0x1e2d, 1, 0x1e2c, /* LATIN CAPITAL LETTER I WITH TILDE.. */ + /*1945*/ 0x1e2f, 1, 0x1e2e, /* LATIN CAPITAL LETTER I WITH DIAER.. */ + /*1948*/ 0x1e31, 1, 0x1e30, /* LATIN CAPITAL LETTER K WITH ACUTE */ + /*1951*/ 0x1e33, 1, 0x1e32, /* LATIN CAPITAL LETTER K WITH DOT B.. */ + /*1954*/ 0x1e35, 1, 0x1e34, /* LATIN CAPITAL LETTER K WITH LINE .. */ + /*1957*/ 0x1e37, 1, 0x1e36, /* LATIN CAPITAL LETTER L WITH DOT B.. */ + /*1960*/ 0x1e39, 1, 0x1e38, /* LATIN CAPITAL LETTER L WITH DOT B.. */ + /*1963*/ 0x1e3b, 1, 0x1e3a, /* LATIN CAPITAL LETTER L WITH LINE .. */ + /*1966*/ 0x1e3d, 1, 0x1e3c, /* LATIN CAPITAL LETTER L WITH CIRCU.. */ + /*1969*/ 0x1e3f, 1, 0x1e3e, /* LATIN CAPITAL LETTER M WITH ACUTE */ + /*1972*/ 0x1e41, 1, 0x1e40, /* LATIN CAPITAL LETTER M WITH DOT A.. */ + /*1975*/ 0x1e43, 1, 0x1e42, /* LATIN CAPITAL LETTER M WITH DOT B.. */ + /*1978*/ 0x1e45, 1, 0x1e44, /* LATIN CAPITAL LETTER N WITH DOT A.. */ + /*1981*/ 0x1e47, 1, 0x1e46, /* LATIN CAPITAL LETTER N WITH DOT B.. */ + /*1984*/ 0x1e49, 1, 0x1e48, /* LATIN CAPITAL LETTER N WITH LINE .. */ + /*1987*/ 0x1e4b, 1, 0x1e4a, /* LATIN CAPITAL LETTER N WITH CIRCU.. */ + /*1990*/ 0x1e4d, 1, 0x1e4c, /* LATIN CAPITAL LETTER O WITH TILDE.. */ + /*1993*/ 0x1e4f, 1, 0x1e4e, /* LATIN CAPITAL LETTER O WITH TILDE.. */ + /*1996*/ 0x1e51, 1, 0x1e50, /* LATIN CAPITAL LETTER O WITH MACRO.. */ + /*1999*/ 0x1e53, 1, 0x1e52, /* LATIN CAPITAL LETTER O WITH MACRO.. */ + /*2002*/ 0x1e55, 1, 0x1e54, /* LATIN CAPITAL LETTER P WITH ACUTE */ + /*2005*/ 0x1e57, 1, 0x1e56, /* LATIN CAPITAL LETTER P WITH DOT A.. */ + /*2008*/ 0x1e59, 1, 0x1e58, /* LATIN CAPITAL LETTER R WITH DOT A.. */ + /*2011*/ 0x1e5b, 1, 0x1e5a, /* LATIN CAPITAL LETTER R WITH DOT B.. */ + /*2014*/ 0x1e5d, 1, 0x1e5c, /* LATIN CAPITAL LETTER R WITH DOT B.. */ + /*2017*/ 0x1e5f, 1, 0x1e5e, /* LATIN CAPITAL LETTER R WITH LINE .. */ + /*2020*/ 0x1e61, 2, 0x1e60, 0x1e9b, /* LATIN CAPITAL LETTER S WITH DOT A.. */ + /*2024*/ 0x1e63, 1, 0x1e62, /* LATIN CAPITAL LETTER S WITH DOT B.. */ + /*2027*/ 0x1e65, 1, 0x1e64, /* LATIN CAPITAL LETTER S WITH ACUTE.. */ + /*2030*/ 0x1e67, 1, 0x1e66, /* LATIN CAPITAL LETTER S WITH CARON.. */ + /*2033*/ 0x1e69, 1, 0x1e68, /* LATIN CAPITAL LETTER S WITH DOT B.. */ + /*2036*/ 0x1e6b, 1, 0x1e6a, /* LATIN CAPITAL LETTER T WITH DOT A.. */ + /*2039*/ 0x1e6d, 1, 0x1e6c, /* LATIN CAPITAL LETTER T WITH DOT B.. */ + /*2042*/ 0x1e6f, 1, 0x1e6e, /* LATIN CAPITAL LETTER T WITH LINE .. */ + /*2045*/ 0x1e71, 1, 0x1e70, /* LATIN CAPITAL LETTER T WITH CIRCU.. */ + /*2048*/ 0x1e73, 1, 0x1e72, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /*2051*/ 0x1e75, 1, 0x1e74, /* LATIN CAPITAL LETTER U WITH TILDE.. */ + /*2054*/ 0x1e77, 1, 0x1e76, /* LATIN CAPITAL LETTER U WITH CIRCU.. */ + /*2057*/ 0x1e79, 1, 0x1e78, /* LATIN CAPITAL LETTER U WITH TILDE.. */ + /*2060*/ 0x1e7b, 1, 0x1e7a, /* LATIN CAPITAL LETTER U WITH MACRO.. */ + /*2063*/ 0x1e7d, 1, 0x1e7c, /* LATIN CAPITAL LETTER V WITH TILDE */ + /*2066*/ 0x1e7f, 1, 0x1e7e, /* LATIN CAPITAL LETTER V WITH DOT B.. */ + /*2069*/ 0x1e81, 1, 0x1e80, /* LATIN CAPITAL LETTER W WITH GRAVE */ + /*2072*/ 0x1e83, 1, 0x1e82, /* LATIN CAPITAL LETTER W WITH ACUTE */ + /*2075*/ 0x1e85, 1, 0x1e84, /* LATIN CAPITAL LETTER W WITH DIAER.. */ + /*2078*/ 0x1e87, 1, 0x1e86, /* LATIN CAPITAL LETTER W WITH DOT A.. */ + /*2081*/ 0x1e89, 1, 0x1e88, /* LATIN CAPITAL LETTER W WITH DOT B.. */ + /*2084*/ 0x1e8b, 1, 0x1e8a, /* LATIN CAPITAL LETTER X WITH DOT A.. */ + /*2087*/ 0x1e8d, 1, 0x1e8c, /* LATIN CAPITAL LETTER X WITH DIAER.. */ + /*2090*/ 0x1e8f, 1, 0x1e8e, /* LATIN CAPITAL LETTER Y WITH DOT A.. */ + /*2093*/ 0x1e91, 1, 0x1e90, /* LATIN CAPITAL LETTER Z WITH CIRCU.. */ + /*2096*/ 0x1e93, 1, 0x1e92, /* LATIN CAPITAL LETTER Z WITH DOT B.. */ + /*2099*/ 0x1e95, 1, 0x1e94, /* LATIN CAPITAL LETTER Z WITH LINE .. */ + /*2102*/ 0x1ea1, 1, 0x1ea0, /* LATIN CAPITAL LETTER A WITH DOT B.. */ + /*2105*/ 0x1ea3, 1, 0x1ea2, /* LATIN CAPITAL LETTER A WITH HOOK .. */ + /*2108*/ 0x1ea5, 1, 0x1ea4, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2111*/ 0x1ea7, 1, 0x1ea6, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2114*/ 0x1ea9, 1, 0x1ea8, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2117*/ 0x1eab, 1, 0x1eaa, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2120*/ 0x1ead, 1, 0x1eac, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2123*/ 0x1eaf, 1, 0x1eae, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2126*/ 0x1eb1, 1, 0x1eb0, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2129*/ 0x1eb3, 1, 0x1eb2, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2132*/ 0x1eb5, 1, 0x1eb4, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2135*/ 0x1eb7, 1, 0x1eb6, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2138*/ 0x1eb9, 1, 0x1eb8, /* LATIN CAPITAL LETTER E WITH DOT B.. */ + /*2141*/ 0x1ebb, 1, 0x1eba, /* LATIN CAPITAL LETTER E WITH HOOK .. */ + /*2144*/ 0x1ebd, 1, 0x1ebc, /* LATIN CAPITAL LETTER E WITH TILDE */ + /*2147*/ 0x1ebf, 1, 0x1ebe, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2150*/ 0x1ec1, 1, 0x1ec0, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2153*/ 0x1ec3, 1, 0x1ec2, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2156*/ 0x1ec5, 1, 0x1ec4, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2159*/ 0x1ec7, 1, 0x1ec6, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2162*/ 0x1ec9, 1, 0x1ec8, /* LATIN CAPITAL LETTER I WITH HOOK .. */ + /*2165*/ 0x1ecb, 1, 0x1eca, /* LATIN CAPITAL LETTER I WITH DOT B.. */ + /*2168*/ 0x1ecd, 1, 0x1ecc, /* LATIN CAPITAL LETTER O WITH DOT B.. */ + /*2171*/ 0x1ecf, 1, 0x1ece, /* LATIN CAPITAL LETTER O WITH HOOK .. */ + /*2174*/ 0x1ed1, 1, 0x1ed0, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2177*/ 0x1ed3, 1, 0x1ed2, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2180*/ 0x1ed5, 1, 0x1ed4, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2183*/ 0x1ed7, 1, 0x1ed6, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2186*/ 0x1ed9, 1, 0x1ed8, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2189*/ 0x1edb, 1, 0x1eda, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2192*/ 0x1edd, 1, 0x1edc, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2195*/ 0x1edf, 1, 0x1ede, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2198*/ 0x1ee1, 1, 0x1ee0, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2201*/ 0x1ee3, 1, 0x1ee2, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2204*/ 0x1ee5, 1, 0x1ee4, /* LATIN CAPITAL LETTER U WITH DOT B.. */ + /*2207*/ 0x1ee7, 1, 0x1ee6, /* LATIN CAPITAL LETTER U WITH HOOK .. */ + /*2210*/ 0x1ee9, 1, 0x1ee8, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2213*/ 0x1eeb, 1, 0x1eea, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2216*/ 0x1eed, 1, 0x1eec, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2219*/ 0x1eef, 1, 0x1eee, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2222*/ 0x1ef1, 1, 0x1ef0, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2225*/ 0x1ef3, 1, 0x1ef2, /* LATIN CAPITAL LETTER Y WITH GRAVE */ + /*2228*/ 0x1ef5, 1, 0x1ef4, /* LATIN CAPITAL LETTER Y WITH DOT B.. */ + /*2231*/ 0x1ef7, 1, 0x1ef6, /* LATIN CAPITAL LETTER Y WITH HOOK .. */ + /*2234*/ 0x1ef9, 1, 0x1ef8, /* LATIN CAPITAL LETTER Y WITH TILDE */ + /*2237*/ 0x1efb, 1, 0x1efa, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */ + /*2240*/ 0x1efd, 1, 0x1efc, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */ + /*2243*/ 0x1eff, 1, 0x1efe, /* LATIN CAPITAL LETTER Y WITH LOOP */ + /*2246*/ 0x1f00, 1, 0x1f08, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ + /*2249*/ 0x1f01, 1, 0x1f09, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ + /*2252*/ 0x1f02, 1, 0x1f0a, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ + /*2255*/ 0x1f03, 1, 0x1f0b, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ + /*2258*/ 0x1f04, 1, 0x1f0c, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ + /*2261*/ 0x1f05, 1, 0x1f0d, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ + /*2264*/ 0x1f06, 1, 0x1f0e, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ + /*2267*/ 0x1f07, 1, 0x1f0f, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ + /*2270*/ 0x1f10, 1, 0x1f18, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2273*/ 0x1f11, 1, 0x1f19, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2276*/ 0x1f12, 1, 0x1f1a, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2279*/ 0x1f13, 1, 0x1f1b, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2282*/ 0x1f14, 1, 0x1f1c, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2285*/ 0x1f15, 1, 0x1f1d, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2288*/ 0x1f20, 1, 0x1f28, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ + /*2291*/ 0x1f21, 1, 0x1f29, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ + /*2294*/ 0x1f22, 1, 0x1f2a, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ + /*2297*/ 0x1f23, 1, 0x1f2b, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ + /*2300*/ 0x1f24, 1, 0x1f2c, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ + /*2303*/ 0x1f25, 1, 0x1f2d, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ + /*2306*/ 0x1f26, 1, 0x1f2e, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ + /*2309*/ 0x1f27, 1, 0x1f2f, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ + /*2312*/ 0x1f30, 1, 0x1f38, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ + /*2315*/ 0x1f31, 1, 0x1f39, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ + /*2318*/ 0x1f32, 1, 0x1f3a, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ + /*2321*/ 0x1f33, 1, 0x1f3b, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ + /*2324*/ 0x1f34, 1, 0x1f3c, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ + /*2327*/ 0x1f35, 1, 0x1f3d, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ + /*2330*/ 0x1f36, 1, 0x1f3e, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ + /*2333*/ 0x1f37, 1, 0x1f3f, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ + /*2336*/ 0x1f40, 1, 0x1f48, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2339*/ 0x1f41, 1, 0x1f49, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2342*/ 0x1f42, 1, 0x1f4a, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2345*/ 0x1f43, 1, 0x1f4b, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2348*/ 0x1f44, 1, 0x1f4c, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2351*/ 0x1f45, 1, 0x1f4d, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2354*/ 0x1f51, 1, 0x1f59, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2357*/ 0x1f53, 1, 0x1f5b, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2360*/ 0x1f55, 1, 0x1f5d, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2363*/ 0x1f57, 1, 0x1f5f, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2366*/ 0x1f60, 1, 0x1f68, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ + /*2369*/ 0x1f61, 1, 0x1f69, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ + /*2372*/ 0x1f62, 1, 0x1f6a, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ + /*2375*/ 0x1f63, 1, 0x1f6b, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ + /*2378*/ 0x1f64, 1, 0x1f6c, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ + /*2381*/ 0x1f65, 1, 0x1f6d, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ + /*2384*/ 0x1f66, 1, 0x1f6e, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ + /*2387*/ 0x1f67, 1, 0x1f6f, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ + /*2390*/ 0x1f70, 1, 0x1fba, /* GREEK CAPITAL LETTER ALPHA WITH V.. */ + /*2393*/ 0x1f71, 1, 0x1fbb, /* GREEK CAPITAL LETTER ALPHA WITH O.. */ + /*2396*/ 0x1f72, 1, 0x1fc8, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2399*/ 0x1f73, 1, 0x1fc9, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2402*/ 0x1f74, 1, 0x1fca, /* GREEK CAPITAL LETTER ETA WITH VAR.. */ + /*2405*/ 0x1f75, 1, 0x1fcb, /* GREEK CAPITAL LETTER ETA WITH OXIA */ + /*2408*/ 0x1f76, 1, 0x1fda, /* GREEK CAPITAL LETTER IOTA WITH VA.. */ + /*2411*/ 0x1f77, 1, 0x1fdb, /* GREEK CAPITAL LETTER IOTA WITH OX.. */ + /*2414*/ 0x1f78, 1, 0x1ff8, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2417*/ 0x1f79, 1, 0x1ff9, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2420*/ 0x1f7a, 1, 0x1fea, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2423*/ 0x1f7b, 1, 0x1feb, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2426*/ 0x1f7c, 1, 0x1ffa, /* GREEK CAPITAL LETTER OMEGA WITH V.. */ + /*2429*/ 0x1f7d, 1, 0x1ffb, /* GREEK CAPITAL LETTER OMEGA WITH O.. */ + /*2432*/ 0x1fb0, 1, 0x1fb8, /* GREEK CAPITAL LETTER ALPHA WITH V.. */ + /*2435*/ 0x1fb1, 1, 0x1fb9, /* GREEK CAPITAL LETTER ALPHA WITH M.. */ + /*2438*/ 0x1fd0, 1, 0x1fd8, /* GREEK CAPITAL LETTER IOTA WITH VR.. */ + /*2441*/ 0x1fd1, 1, 0x1fd9, /* GREEK CAPITAL LETTER IOTA WITH MA.. */ + /*2444*/ 0x1fe0, 1, 0x1fe8, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2447*/ 0x1fe1, 1, 0x1fe9, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2450*/ 0x1fe5, 1, 0x1fec, /* GREEK CAPITAL LETTER RHO WITH DAS.. */ + /*2453*/ 0x214e, 1, 0x2132, /* TURNED CAPITAL F */ + /*2456*/ 0x2170, 1, 0x2160, /* ROMAN NUMERAL ONE */ + /*2459*/ 0x2171, 1, 0x2161, /* ROMAN NUMERAL TWO */ + /*2462*/ 0x2172, 1, 0x2162, /* ROMAN NUMERAL THREE */ + /*2465*/ 0x2173, 1, 0x2163, /* ROMAN NUMERAL FOUR */ + /*2468*/ 0x2174, 1, 0x2164, /* ROMAN NUMERAL FIVE */ + /*2471*/ 0x2175, 1, 0x2165, /* ROMAN NUMERAL SIX */ + /*2474*/ 0x2176, 1, 0x2166, /* ROMAN NUMERAL SEVEN */ + /*2477*/ 0x2177, 1, 0x2167, /* ROMAN NUMERAL EIGHT */ + /*2480*/ 0x2178, 1, 0x2168, /* ROMAN NUMERAL NINE */ + /*2483*/ 0x2179, 1, 0x2169, /* ROMAN NUMERAL TEN */ + /*2486*/ 0x217a, 1, 0x216a, /* ROMAN NUMERAL ELEVEN */ + /*2489*/ 0x217b, 1, 0x216b, /* ROMAN NUMERAL TWELVE */ + /*2492*/ 0x217c, 1, 0x216c, /* ROMAN NUMERAL FIFTY */ + /*2495*/ 0x217d, 1, 0x216d, /* ROMAN NUMERAL ONE HUNDRED */ + /*2498*/ 0x217e, 1, 0x216e, /* ROMAN NUMERAL FIVE HUNDRED */ + /*2501*/ 0x217f, 1, 0x216f, /* ROMAN NUMERAL ONE THOUSAND */ + /*2504*/ 0x2184, 1, 0x2183, /* ROMAN NUMERAL REVERSED ONE HUNDRED */ + /*2507*/ 0x24d0, 1, 0x24b6, /* CIRCLED LATIN CAPITAL LETTER A */ + /*2510*/ 0x24d1, 1, 0x24b7, /* CIRCLED LATIN CAPITAL LETTER B */ + /*2513*/ 0x24d2, 1, 0x24b8, /* CIRCLED LATIN CAPITAL LETTER C */ + /*2516*/ 0x24d3, 1, 0x24b9, /* CIRCLED LATIN CAPITAL LETTER D */ + /*2519*/ 0x24d4, 1, 0x24ba, /* CIRCLED LATIN CAPITAL LETTER E */ + /*2522*/ 0x24d5, 1, 0x24bb, /* CIRCLED LATIN CAPITAL LETTER F */ + /*2525*/ 0x24d6, 1, 0x24bc, /* CIRCLED LATIN CAPITAL LETTER G */ + /*2528*/ 0x24d7, 1, 0x24bd, /* CIRCLED LATIN CAPITAL LETTER H */ + /*2531*/ 0x24d8, 1, 0x24be, /* CIRCLED LATIN CAPITAL LETTER I */ + /*2534*/ 0x24d9, 1, 0x24bf, /* CIRCLED LATIN CAPITAL LETTER J */ + /*2537*/ 0x24da, 1, 0x24c0, /* CIRCLED LATIN CAPITAL LETTER K */ + /*2540*/ 0x24db, 1, 0x24c1, /* CIRCLED LATIN CAPITAL LETTER L */ + /*2543*/ 0x24dc, 1, 0x24c2, /* CIRCLED LATIN CAPITAL LETTER M */ + /*2546*/ 0x24dd, 1, 0x24c3, /* CIRCLED LATIN CAPITAL LETTER N */ + /*2549*/ 0x24de, 1, 0x24c4, /* CIRCLED LATIN CAPITAL LETTER O */ + /*2552*/ 0x24df, 1, 0x24c5, /* CIRCLED LATIN CAPITAL LETTER P */ + /*2555*/ 0x24e0, 1, 0x24c6, /* CIRCLED LATIN CAPITAL LETTER Q */ + /*2558*/ 0x24e1, 1, 0x24c7, /* CIRCLED LATIN CAPITAL LETTER R */ + /*2561*/ 0x24e2, 1, 0x24c8, /* CIRCLED LATIN CAPITAL LETTER S */ + /*2564*/ 0x24e3, 1, 0x24c9, /* CIRCLED LATIN CAPITAL LETTER T */ + /*2567*/ 0x24e4, 1, 0x24ca, /* CIRCLED LATIN CAPITAL LETTER U */ + /*2570*/ 0x24e5, 1, 0x24cb, /* CIRCLED LATIN CAPITAL LETTER V */ + /*2573*/ 0x24e6, 1, 0x24cc, /* CIRCLED LATIN CAPITAL LETTER W */ + /*2576*/ 0x24e7, 1, 0x24cd, /* CIRCLED LATIN CAPITAL LETTER X */ + /*2579*/ 0x24e8, 1, 0x24ce, /* CIRCLED LATIN CAPITAL LETTER Y */ + /*2582*/ 0x24e9, 1, 0x24cf, /* CIRCLED LATIN CAPITAL LETTER Z */ + /*2585*/ 0x2c30, 1, 0x2c00, /* GLAGOLITIC CAPITAL LETTER AZU */ + /*2588*/ 0x2c31, 1, 0x2c01, /* GLAGOLITIC CAPITAL LETTER BUKY */ + /*2591*/ 0x2c32, 1, 0x2c02, /* GLAGOLITIC CAPITAL LETTER VEDE */ + /*2594*/ 0x2c33, 1, 0x2c03, /* GLAGOLITIC CAPITAL LETTER GLAGOLI */ + /*2597*/ 0x2c34, 1, 0x2c04, /* GLAGOLITIC CAPITAL LETTER DOBRO */ + /*2600*/ 0x2c35, 1, 0x2c05, /* GLAGOLITIC CAPITAL LETTER YESTU */ + /*2603*/ 0x2c36, 1, 0x2c06, /* GLAGOLITIC CAPITAL LETTER ZHIVETE */ + /*2606*/ 0x2c37, 1, 0x2c07, /* GLAGOLITIC CAPITAL LETTER DZELO */ + /*2609*/ 0x2c38, 1, 0x2c08, /* GLAGOLITIC CAPITAL LETTER ZEMLJA */ + /*2612*/ 0x2c39, 1, 0x2c09, /* GLAGOLITIC CAPITAL LETTER IZHE */ + /*2615*/ 0x2c3a, 1, 0x2c0a, /* GLAGOLITIC CAPITAL LETTER INITIAL.. */ + /*2618*/ 0x2c3b, 1, 0x2c0b, /* GLAGOLITIC CAPITAL LETTER I */ + /*2621*/ 0x2c3c, 1, 0x2c0c, /* GLAGOLITIC CAPITAL LETTER DJERVI */ + /*2624*/ 0x2c3d, 1, 0x2c0d, /* GLAGOLITIC CAPITAL LETTER KAKO */ + /*2627*/ 0x2c3e, 1, 0x2c0e, /* GLAGOLITIC CAPITAL LETTER LJUDIJE */ + /*2630*/ 0x2c3f, 1, 0x2c0f, /* GLAGOLITIC CAPITAL LETTER MYSLITE */ + /*2633*/ 0x2c40, 1, 0x2c10, /* GLAGOLITIC CAPITAL LETTER NASHI */ + /*2636*/ 0x2c41, 1, 0x2c11, /* GLAGOLITIC CAPITAL LETTER ONU */ + /*2639*/ 0x2c42, 1, 0x2c12, /* GLAGOLITIC CAPITAL LETTER POKOJI */ + /*2642*/ 0x2c43, 1, 0x2c13, /* GLAGOLITIC CAPITAL LETTER RITSI */ + /*2645*/ 0x2c44, 1, 0x2c14, /* GLAGOLITIC CAPITAL LETTER SLOVO */ + /*2648*/ 0x2c45, 1, 0x2c15, /* GLAGOLITIC CAPITAL LETTER TVRIDO */ + /*2651*/ 0x2c46, 1, 0x2c16, /* GLAGOLITIC CAPITAL LETTER UKU */ + /*2654*/ 0x2c47, 1, 0x2c17, /* GLAGOLITIC CAPITAL LETTER FRITU */ + /*2657*/ 0x2c48, 1, 0x2c18, /* GLAGOLITIC CAPITAL LETTER HERU */ + /*2660*/ 0x2c49, 1, 0x2c19, /* GLAGOLITIC CAPITAL LETTER OTU */ + /*2663*/ 0x2c4a, 1, 0x2c1a, /* GLAGOLITIC CAPITAL LETTER PE */ + /*2666*/ 0x2c4b, 1, 0x2c1b, /* GLAGOLITIC CAPITAL LETTER SHTA */ + /*2669*/ 0x2c4c, 1, 0x2c1c, /* GLAGOLITIC CAPITAL LETTER TSI */ + /*2672*/ 0x2c4d, 1, 0x2c1d, /* GLAGOLITIC CAPITAL LETTER CHRIVI */ + /*2675*/ 0x2c4e, 1, 0x2c1e, /* GLAGOLITIC CAPITAL LETTER SHA */ + /*2678*/ 0x2c4f, 1, 0x2c1f, /* GLAGOLITIC CAPITAL LETTER YERU */ + /*2681*/ 0x2c50, 1, 0x2c20, /* GLAGOLITIC CAPITAL LETTER YERI */ + /*2684*/ 0x2c51, 1, 0x2c21, /* GLAGOLITIC CAPITAL LETTER YATI */ + /*2687*/ 0x2c52, 1, 0x2c22, /* GLAGOLITIC CAPITAL LETTER SPIDERY.. */ + /*2690*/ 0x2c53, 1, 0x2c23, /* GLAGOLITIC CAPITAL LETTER YU */ + /*2693*/ 0x2c54, 1, 0x2c24, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */ + /*2696*/ 0x2c55, 1, 0x2c25, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */ + /*2699*/ 0x2c56, 1, 0x2c26, /* GLAGOLITIC CAPITAL LETTER YO */ + /*2702*/ 0x2c57, 1, 0x2c27, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */ + /*2705*/ 0x2c58, 1, 0x2c28, /* GLAGOLITIC CAPITAL LETTER BIG YUS */ + /*2708*/ 0x2c59, 1, 0x2c29, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */ + /*2711*/ 0x2c5a, 1, 0x2c2a, /* GLAGOLITIC CAPITAL LETTER FITA */ + /*2714*/ 0x2c5b, 1, 0x2c2b, /* GLAGOLITIC CAPITAL LETTER IZHITSA */ + /*2717*/ 0x2c5c, 1, 0x2c2c, /* GLAGOLITIC CAPITAL LETTER SHTAPIC */ + /*2720*/ 0x2c5d, 1, 0x2c2d, /* GLAGOLITIC CAPITAL LETTER TROKUTA.. */ + /*2723*/ 0x2c5e, 1, 0x2c2e, /* GLAGOLITIC CAPITAL LETTER LATINAT.. */ + /*2726*/ 0x2c5f, 1, 0x2c2f, /* GLAGOLITIC CAPITAL LETTER CAUDATE.. */ + /*2729*/ 0x2c61, 1, 0x2c60, /* LATIN CAPITAL LETTER L WITH DOUBL.. */ + /*2732*/ 0x2c65, 1, 0x023a, /* LATIN CAPITAL LETTER A WITH STROKE */ + /*2735*/ 0x2c66, 1, 0x023e, /* LATIN CAPITAL LETTER T WITH DIAGO.. */ + /*2738*/ 0x2c68, 1, 0x2c67, /* LATIN CAPITAL LETTER H WITH DESCE.. */ + /*2741*/ 0x2c6a, 1, 0x2c69, /* LATIN CAPITAL LETTER K WITH DESCE.. */ + /*2744*/ 0x2c6c, 1, 0x2c6b, /* LATIN CAPITAL LETTER Z WITH DESCE.. */ + /*2747*/ 0x2c73, 1, 0x2c72, /* LATIN CAPITAL LETTER W WITH HOOK */ + /*2750*/ 0x2c76, 1, 0x2c75, /* LATIN CAPITAL LETTER HALF H */ + /*2753*/ 0x2c81, 1, 0x2c80, /* COPTIC CAPITAL LETTER ALFA */ + /*2756*/ 0x2c83, 1, 0x2c82, /* COPTIC CAPITAL LETTER VIDA */ + /*2759*/ 0x2c85, 1, 0x2c84, /* COPTIC CAPITAL LETTER GAMMA */ + /*2762*/ 0x2c87, 1, 0x2c86, /* COPTIC CAPITAL LETTER DALDA */ + /*2765*/ 0x2c89, 1, 0x2c88, /* COPTIC CAPITAL LETTER EIE */ + /*2768*/ 0x2c8b, 1, 0x2c8a, /* COPTIC CAPITAL LETTER SOU */ + /*2771*/ 0x2c8d, 1, 0x2c8c, /* COPTIC CAPITAL LETTER ZATA */ + /*2774*/ 0x2c8f, 1, 0x2c8e, /* COPTIC CAPITAL LETTER HATE */ + /*2777*/ 0x2c91, 1, 0x2c90, /* COPTIC CAPITAL LETTER THETHE */ + /*2780*/ 0x2c93, 1, 0x2c92, /* COPTIC CAPITAL LETTER IAUDA */ + /*2783*/ 0x2c95, 1, 0x2c94, /* COPTIC CAPITAL LETTER KAPA */ + /*2786*/ 0x2c97, 1, 0x2c96, /* COPTIC CAPITAL LETTER LAULA */ + /*2789*/ 0x2c99, 1, 0x2c98, /* COPTIC CAPITAL LETTER MI */ + /*2792*/ 0x2c9b, 1, 0x2c9a, /* COPTIC CAPITAL LETTER NI */ + /*2795*/ 0x2c9d, 1, 0x2c9c, /* COPTIC CAPITAL LETTER KSI */ + /*2798*/ 0x2c9f, 1, 0x2c9e, /* COPTIC CAPITAL LETTER O */ + /*2801*/ 0x2ca1, 1, 0x2ca0, /* COPTIC CAPITAL LETTER PI */ + /*2804*/ 0x2ca3, 1, 0x2ca2, /* COPTIC CAPITAL LETTER RO */ + /*2807*/ 0x2ca5, 1, 0x2ca4, /* COPTIC CAPITAL LETTER SIMA */ + /*2810*/ 0x2ca7, 1, 0x2ca6, /* COPTIC CAPITAL LETTER TAU */ + /*2813*/ 0x2ca9, 1, 0x2ca8, /* COPTIC CAPITAL LETTER UA */ + /*2816*/ 0x2cab, 1, 0x2caa, /* COPTIC CAPITAL LETTER FI */ + /*2819*/ 0x2cad, 1, 0x2cac, /* COPTIC CAPITAL LETTER KHI */ + /*2822*/ 0x2caf, 1, 0x2cae, /* COPTIC CAPITAL LETTER PSI */ + /*2825*/ 0x2cb1, 1, 0x2cb0, /* COPTIC CAPITAL LETTER OOU */ + /*2828*/ 0x2cb3, 1, 0x2cb2, /* COPTIC CAPITAL LETTER DIALECT-P A.. */ + /*2831*/ 0x2cb5, 1, 0x2cb4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2834*/ 0x2cb7, 1, 0x2cb6, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ + /*2837*/ 0x2cb9, 1, 0x2cb8, /* COPTIC CAPITAL LETTER DIALECT-P K.. */ + /*2840*/ 0x2cbb, 1, 0x2cba, /* COPTIC CAPITAL LETTER DIALECT-P NI */ + /*2843*/ 0x2cbd, 1, 0x2cbc, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ + /*2846*/ 0x2cbf, 1, 0x2cbe, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2849*/ 0x2cc1, 1, 0x2cc0, /* COPTIC CAPITAL LETTER SAMPI */ + /*2852*/ 0x2cc3, 1, 0x2cc2, /* COPTIC CAPITAL LETTER CROSSED SHEI */ + /*2855*/ 0x2cc5, 1, 0x2cc4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2858*/ 0x2cc7, 1, 0x2cc6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2861*/ 0x2cc9, 1, 0x2cc8, /* COPTIC CAPITAL LETTER AKHMIMIC KH.. */ + /*2864*/ 0x2ccb, 1, 0x2cca, /* COPTIC CAPITAL LETTER DIALECT-P H.. */ + /*2867*/ 0x2ccd, 1, 0x2ccc, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2870*/ 0x2ccf, 1, 0x2cce, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2873*/ 0x2cd1, 1, 0x2cd0, /* COPTIC CAPITAL LETTER L-SHAPED HA */ + /*2876*/ 0x2cd3, 1, 0x2cd2, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2879*/ 0x2cd5, 1, 0x2cd4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2882*/ 0x2cd7, 1, 0x2cd6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2885*/ 0x2cd9, 1, 0x2cd8, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2888*/ 0x2cdb, 1, 0x2cda, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2891*/ 0x2cdd, 1, 0x2cdc, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ + /*2894*/ 0x2cdf, 1, 0x2cde, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ + /*2897*/ 0x2ce1, 1, 0x2ce0, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ + /*2900*/ 0x2ce3, 1, 0x2ce2, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ + /*2903*/ 0x2cec, 1, 0x2ceb, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ + /*2906*/ 0x2cee, 1, 0x2ced, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ + /*2909*/ 0x2cf3, 1, 0x2cf2, /* COPTIC CAPITAL LETTER BOHAIRIC KH.. */ + /*2912*/ 0x2d00, 1, 0x10a0, /* GEORGIAN CAPITAL LETTER AN */ + /*2915*/ 0x2d01, 1, 0x10a1, /* GEORGIAN CAPITAL LETTER BAN */ + /*2918*/ 0x2d02, 1, 0x10a2, /* GEORGIAN CAPITAL LETTER GAN */ + /*2921*/ 0x2d03, 1, 0x10a3, /* GEORGIAN CAPITAL LETTER DON */ + /*2924*/ 0x2d04, 1, 0x10a4, /* GEORGIAN CAPITAL LETTER EN */ + /*2927*/ 0x2d05, 1, 0x10a5, /* GEORGIAN CAPITAL LETTER VIN */ + /*2930*/ 0x2d06, 1, 0x10a6, /* GEORGIAN CAPITAL LETTER ZEN */ + /*2933*/ 0x2d07, 1, 0x10a7, /* GEORGIAN CAPITAL LETTER TAN */ + /*2936*/ 0x2d08, 1, 0x10a8, /* GEORGIAN CAPITAL LETTER IN */ + /*2939*/ 0x2d09, 1, 0x10a9, /* GEORGIAN CAPITAL LETTER KAN */ + /*2942*/ 0x2d0a, 1, 0x10aa, /* GEORGIAN CAPITAL LETTER LAS */ + /*2945*/ 0x2d0b, 1, 0x10ab, /* GEORGIAN CAPITAL LETTER MAN */ + /*2948*/ 0x2d0c, 1, 0x10ac, /* GEORGIAN CAPITAL LETTER NAR */ + /*2951*/ 0x2d0d, 1, 0x10ad, /* GEORGIAN CAPITAL LETTER ON */ + /*2954*/ 0x2d0e, 1, 0x10ae, /* GEORGIAN CAPITAL LETTER PAR */ + /*2957*/ 0x2d0f, 1, 0x10af, /* GEORGIAN CAPITAL LETTER ZHAR */ + /*2960*/ 0x2d10, 1, 0x10b0, /* GEORGIAN CAPITAL LETTER RAE */ + /*2963*/ 0x2d11, 1, 0x10b1, /* GEORGIAN CAPITAL LETTER SAN */ + /*2966*/ 0x2d12, 1, 0x10b2, /* GEORGIAN CAPITAL LETTER TAR */ + /*2969*/ 0x2d13, 1, 0x10b3, /* GEORGIAN CAPITAL LETTER UN */ + /*2972*/ 0x2d14, 1, 0x10b4, /* GEORGIAN CAPITAL LETTER PHAR */ + /*2975*/ 0x2d15, 1, 0x10b5, /* GEORGIAN CAPITAL LETTER KHAR */ + /*2978*/ 0x2d16, 1, 0x10b6, /* GEORGIAN CAPITAL LETTER GHAN */ + /*2981*/ 0x2d17, 1, 0x10b7, /* GEORGIAN CAPITAL LETTER QAR */ + /*2984*/ 0x2d18, 1, 0x10b8, /* GEORGIAN CAPITAL LETTER SHIN */ + /*2987*/ 0x2d19, 1, 0x10b9, /* GEORGIAN CAPITAL LETTER CHIN */ + /*2990*/ 0x2d1a, 1, 0x10ba, /* GEORGIAN CAPITAL LETTER CAN */ + /*2993*/ 0x2d1b, 1, 0x10bb, /* GEORGIAN CAPITAL LETTER JIL */ + /*2996*/ 0x2d1c, 1, 0x10bc, /* GEORGIAN CAPITAL LETTER CIL */ + /*2999*/ 0x2d1d, 1, 0x10bd, /* GEORGIAN CAPITAL LETTER CHAR */ + /*3002*/ 0x2d1e, 1, 0x10be, /* GEORGIAN CAPITAL LETTER XAN */ + /*3005*/ 0x2d1f, 1, 0x10bf, /* GEORGIAN CAPITAL LETTER JHAN */ + /*3008*/ 0x2d20, 1, 0x10c0, /* GEORGIAN CAPITAL LETTER HAE */ + /*3011*/ 0x2d21, 1, 0x10c1, /* GEORGIAN CAPITAL LETTER HE */ + /*3014*/ 0x2d22, 1, 0x10c2, /* GEORGIAN CAPITAL LETTER HIE */ + /*3017*/ 0x2d23, 1, 0x10c3, /* GEORGIAN CAPITAL LETTER WE */ + /*3020*/ 0x2d24, 1, 0x10c4, /* GEORGIAN CAPITAL LETTER HAR */ + /*3023*/ 0x2d25, 1, 0x10c5, /* GEORGIAN CAPITAL LETTER HOE */ + /*3026*/ 0x2d27, 1, 0x10c7, /* GEORGIAN CAPITAL LETTER YN */ + /*3029*/ 0x2d2d, 1, 0x10cd, /* GEORGIAN CAPITAL LETTER AEN */ + /*3032*/ 0xa641, 1, 0xa640, /* CYRILLIC CAPITAL LETTER ZEMLYA */ + /*3035*/ 0xa643, 1, 0xa642, /* CYRILLIC CAPITAL LETTER DZELO */ + /*3038*/ 0xa645, 1, 0xa644, /* CYRILLIC CAPITAL LETTER REVERSED .. */ + /*3041*/ 0xa647, 1, 0xa646, /* CYRILLIC CAPITAL LETTER IOTA */ + /*3044*/ 0xa649, 1, 0xa648, /* CYRILLIC CAPITAL LETTER DJERV */ + /*3047*/ 0xa64b, 2, 0x1c88, 0xa64a, /* CYRILLIC SMALL LETTER UNBLENDED UK */ + /*3051*/ 0xa64d, 1, 0xa64c, /* CYRILLIC CAPITAL LETTER BROAD OME.. */ + /*3054*/ 0xa64f, 1, 0xa64e, /* CYRILLIC CAPITAL LETTER NEUTRAL Y.. */ + /*3057*/ 0xa651, 1, 0xa650, /* CYRILLIC CAPITAL LETTER YERU WITH.. */ + /*3060*/ 0xa653, 1, 0xa652, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ + /*3063*/ 0xa655, 1, 0xa654, /* CYRILLIC CAPITAL LETTER REVERSED .. */ + /*3066*/ 0xa657, 1, 0xa656, /* CYRILLIC CAPITAL LETTER IOTIFIED A */ + /*3069*/ 0xa659, 1, 0xa658, /* CYRILLIC CAPITAL LETTER CLOSED LI.. */ + /*3072*/ 0xa65b, 1, 0xa65a, /* CYRILLIC CAPITAL LETTER BLENDED Y.. */ + /*3075*/ 0xa65d, 1, 0xa65c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ + /*3078*/ 0xa65f, 1, 0xa65e, /* CYRILLIC CAPITAL LETTER YN */ + /*3081*/ 0xa661, 1, 0xa660, /* CYRILLIC CAPITAL LETTER REVERSED .. */ + /*3084*/ 0xa663, 1, 0xa662, /* CYRILLIC CAPITAL LETTER SOFT DE */ + /*3087*/ 0xa665, 1, 0xa664, /* CYRILLIC CAPITAL LETTER SOFT EL */ + /*3090*/ 0xa667, 1, 0xa666, /* CYRILLIC CAPITAL LETTER SOFT EM */ + /*3093*/ 0xa669, 1, 0xa668, /* CYRILLIC CAPITAL LETTER MONOCULAR.. */ + /*3096*/ 0xa66b, 1, 0xa66a, /* CYRILLIC CAPITAL LETTER BINOCULAR.. */ + /*3099*/ 0xa66d, 1, 0xa66c, /* CYRILLIC CAPITAL LETTER DOUBLE MO.. */ + /*3102*/ 0xa681, 1, 0xa680, /* CYRILLIC CAPITAL LETTER DWE */ + /*3105*/ 0xa683, 1, 0xa682, /* CYRILLIC CAPITAL LETTER DZWE */ + /*3108*/ 0xa685, 1, 0xa684, /* CYRILLIC CAPITAL LETTER ZHWE */ + /*3111*/ 0xa687, 1, 0xa686, /* CYRILLIC CAPITAL LETTER CCHE */ + /*3114*/ 0xa689, 1, 0xa688, /* CYRILLIC CAPITAL LETTER DZZE */ + /*3117*/ 0xa68b, 1, 0xa68a, /* CYRILLIC CAPITAL LETTER TE WITH M.. */ + /*3120*/ 0xa68d, 1, 0xa68c, /* CYRILLIC CAPITAL LETTER TWE */ + /*3123*/ 0xa68f, 1, 0xa68e, /* CYRILLIC CAPITAL LETTER TSWE */ + /*3126*/ 0xa691, 1, 0xa690, /* CYRILLIC CAPITAL LETTER TSSE */ + /*3129*/ 0xa693, 1, 0xa692, /* CYRILLIC CAPITAL LETTER TCHE */ + /*3132*/ 0xa695, 1, 0xa694, /* CYRILLIC CAPITAL LETTER HWE */ + /*3135*/ 0xa697, 1, 0xa696, /* CYRILLIC CAPITAL LETTER SHWE */ + /*3138*/ 0xa699, 1, 0xa698, /* CYRILLIC CAPITAL LETTER DOUBLE O */ + /*3141*/ 0xa69b, 1, 0xa69a, /* CYRILLIC CAPITAL LETTER CROSSED O */ + /*3144*/ 0xa723, 1, 0xa722, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */ + /*3147*/ 0xa725, 1, 0xa724, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */ + /*3150*/ 0xa727, 1, 0xa726, /* LATIN CAPITAL LETTER HENG */ + /*3153*/ 0xa729, 1, 0xa728, /* LATIN CAPITAL LETTER TZ */ + /*3156*/ 0xa72b, 1, 0xa72a, /* LATIN CAPITAL LETTER TRESILLO */ + /*3159*/ 0xa72d, 1, 0xa72c, /* LATIN CAPITAL LETTER CUATRILLO */ + /*3162*/ 0xa72f, 1, 0xa72e, /* LATIN CAPITAL LETTER CUATRILLO WI.. */ + /*3165*/ 0xa733, 1, 0xa732, /* LATIN CAPITAL LETTER AA */ + /*3168*/ 0xa735, 1, 0xa734, /* LATIN CAPITAL LETTER AO */ + /*3171*/ 0xa737, 1, 0xa736, /* LATIN CAPITAL LETTER AU */ + /*3174*/ 0xa739, 1, 0xa738, /* LATIN CAPITAL LETTER AV */ + /*3177*/ 0xa73b, 1, 0xa73a, /* LATIN CAPITAL LETTER AV WITH HORI.. */ + /*3180*/ 0xa73d, 1, 0xa73c, /* LATIN CAPITAL LETTER AY */ + /*3183*/ 0xa73f, 1, 0xa73e, /* LATIN CAPITAL LETTER REVERSED C W.. */ + /*3186*/ 0xa741, 1, 0xa740, /* LATIN CAPITAL LETTER K WITH STROKE */ + /*3189*/ 0xa743, 1, 0xa742, /* LATIN CAPITAL LETTER K WITH DIAGO.. */ + /*3192*/ 0xa745, 1, 0xa744, /* LATIN CAPITAL LETTER K WITH STROK.. */ + /*3195*/ 0xa747, 1, 0xa746, /* LATIN CAPITAL LETTER BROKEN L */ + /*3198*/ 0xa749, 1, 0xa748, /* LATIN CAPITAL LETTER L WITH HIGH .. */ + /*3201*/ 0xa74b, 1, 0xa74a, /* LATIN CAPITAL LETTER O WITH LONG .. */ + /*3204*/ 0xa74d, 1, 0xa74c, /* LATIN CAPITAL LETTER O WITH LOOP */ + /*3207*/ 0xa74f, 1, 0xa74e, /* LATIN CAPITAL LETTER OO */ + /*3210*/ 0xa751, 1, 0xa750, /* LATIN CAPITAL LETTER P WITH STROK.. */ + /*3213*/ 0xa753, 1, 0xa752, /* LATIN CAPITAL LETTER P WITH FLOUR.. */ + /*3216*/ 0xa755, 1, 0xa754, /* LATIN CAPITAL LETTER P WITH SQUIR.. */ + /*3219*/ 0xa757, 1, 0xa756, /* LATIN CAPITAL LETTER Q WITH STROK.. */ + /*3222*/ 0xa759, 1, 0xa758, /* LATIN CAPITAL LETTER Q WITH DIAGO.. */ + /*3225*/ 0xa75b, 1, 0xa75a, /* LATIN CAPITAL LETTER R ROTUNDA */ + /*3228*/ 0xa75d, 1, 0xa75c, /* LATIN CAPITAL LETTER RUM ROTUNDA */ + /*3231*/ 0xa75f, 1, 0xa75e, /* LATIN CAPITAL LETTER V WITH DIAGO.. */ + /*3234*/ 0xa761, 1, 0xa760, /* LATIN CAPITAL LETTER VY */ + /*3237*/ 0xa763, 1, 0xa762, /* LATIN CAPITAL LETTER VISIGOTHIC Z */ + /*3240*/ 0xa765, 1, 0xa764, /* LATIN CAPITAL LETTER THORN WITH S.. */ + /*3243*/ 0xa767, 1, 0xa766, /* LATIN CAPITAL LETTER THORN WITH S.. */ + /*3246*/ 0xa769, 1, 0xa768, /* LATIN CAPITAL LETTER VEND */ + /*3249*/ 0xa76b, 1, 0xa76a, /* LATIN CAPITAL LETTER ET */ + /*3252*/ 0xa76d, 1, 0xa76c, /* LATIN CAPITAL LETTER IS */ + /*3255*/ 0xa76f, 1, 0xa76e, /* LATIN CAPITAL LETTER CON */ + /*3258*/ 0xa77a, 1, 0xa779, /* LATIN CAPITAL LETTER INSULAR D */ + /*3261*/ 0xa77c, 1, 0xa77b, /* LATIN CAPITAL LETTER INSULAR F */ + /*3264*/ 0xa77f, 1, 0xa77e, /* LATIN CAPITAL LETTER TURNED INSUL.. */ + /*3267*/ 0xa781, 1, 0xa780, /* LATIN CAPITAL LETTER TURNED L */ + /*3270*/ 0xa783, 1, 0xa782, /* LATIN CAPITAL LETTER INSULAR R */ + /*3273*/ 0xa785, 1, 0xa784, /* LATIN CAPITAL LETTER INSULAR S */ + /*3276*/ 0xa787, 1, 0xa786, /* LATIN CAPITAL LETTER INSULAR T */ + /*3279*/ 0xa78c, 1, 0xa78b, /* LATIN CAPITAL LETTER SALTILLO */ + /*3282*/ 0xa791, 1, 0xa790, /* LATIN CAPITAL LETTER N WITH DESCE.. */ + /*3285*/ 0xa793, 1, 0xa792, /* LATIN CAPITAL LETTER C WITH BAR */ + /*3288*/ 0xa794, 1, 0xa7c4, /* LATIN CAPITAL LETTER C WITH PALAT.. */ + /*3291*/ 0xa797, 1, 0xa796, /* LATIN CAPITAL LETTER B WITH FLOUR.. */ + /*3294*/ 0xa799, 1, 0xa798, /* LATIN CAPITAL LETTER F WITH STROKE */ + /*3297*/ 0xa79b, 1, 0xa79a, /* LATIN CAPITAL LETTER VOLAPUK AE */ + /*3300*/ 0xa79d, 1, 0xa79c, /* LATIN CAPITAL LETTER VOLAPUK OE */ + /*3303*/ 0xa79f, 1, 0xa79e, /* LATIN CAPITAL LETTER VOLAPUK UE */ + /*3306*/ 0xa7a1, 1, 0xa7a0, /* LATIN CAPITAL LETTER G WITH OBLIQ.. */ + /*3309*/ 0xa7a3, 1, 0xa7a2, /* LATIN CAPITAL LETTER K WITH OBLIQ.. */ + /*3312*/ 0xa7a5, 1, 0xa7a4, /* LATIN CAPITAL LETTER N WITH OBLIQ.. */ + /*3315*/ 0xa7a7, 1, 0xa7a6, /* LATIN CAPITAL LETTER R WITH OBLIQ.. */ + /*3318*/ 0xa7a9, 1, 0xa7a8, /* LATIN CAPITAL LETTER S WITH OBLIQ.. */ + /*3321*/ 0xa7b5, 1, 0xa7b4, /* LATIN CAPITAL LETTER BETA */ + /*3324*/ 0xa7b7, 1, 0xa7b6, /* LATIN CAPITAL LETTER OMEGA */ + /*3327*/ 0xa7b9, 1, 0xa7b8, /* LATIN CAPITAL LETTER U WITH STROKE */ + /*3330*/ 0xa7bb, 1, 0xa7ba, /* LATIN CAPITAL LETTER GLOTTAL A */ + /*3333*/ 0xa7bd, 1, 0xa7bc, /* LATIN CAPITAL LETTER GLOTTAL I */ + /*3336*/ 0xa7bf, 1, 0xa7be, /* LATIN CAPITAL LETTER GLOTTAL U */ + /*3339*/ 0xa7c1, 1, 0xa7c0, /* LATIN CAPITAL LETTER OLD POLISH O */ + /*3342*/ 0xa7c3, 1, 0xa7c2, /* LATIN CAPITAL LETTER ANGLICANA W */ + /*3345*/ 0xa7c8, 1, 0xa7c7, /* LATIN CAPITAL LETTER D WITH SHORT.. */ + /*3348*/ 0xa7ca, 1, 0xa7c9, /* LATIN CAPITAL LETTER S WITH SHORT.. */ + /*3351*/ 0xa7cd, 1, 0xa7cc, /* LATIN CAPITAL LETTER S WITH DIAGO.. */ + /*3354*/ 0xa7d1, 1, 0xa7d0, /* LATIN CAPITAL LETTER CLOSED INSUL.. */ + /*3357*/ 0xa7d7, 1, 0xa7d6, /* LATIN CAPITAL LETTER MIDDLE SCOTS.. */ + /*3360*/ 0xa7d9, 1, 0xa7d8, /* LATIN CAPITAL LETTER SIGMOID S */ + /*3363*/ 0xa7db, 1, 0xa7da, /* LATIN CAPITAL LETTER LAMBDA */ + /*3366*/ 0xa7f6, 1, 0xa7f5, /* LATIN CAPITAL LETTER REVERSED HAL.. */ + /*3369*/ 0xab53, 1, 0xa7b3, /* LATIN CAPITAL LETTER CHI */ + /*3372*/ 0xff41, 1, 0xff21, /* FULLWIDTH LATIN CAPITAL LETTER A */ + /*3375*/ 0xff42, 1, 0xff22, /* FULLWIDTH LATIN CAPITAL LETTER B */ + /*3378*/ 0xff43, 1, 0xff23, /* FULLWIDTH LATIN CAPITAL LETTER C */ + /*3381*/ 0xff44, 1, 0xff24, /* FULLWIDTH LATIN CAPITAL LETTER D */ + /*3384*/ 0xff45, 1, 0xff25, /* FULLWIDTH LATIN CAPITAL LETTER E */ + /*3387*/ 0xff46, 1, 0xff26, /* FULLWIDTH LATIN CAPITAL LETTER F */ + /*3390*/ 0xff47, 1, 0xff27, /* FULLWIDTH LATIN CAPITAL LETTER G */ + /*3393*/ 0xff48, 1, 0xff28, /* FULLWIDTH LATIN CAPITAL LETTER H */ + /*3396*/ 0xff49, 1, 0xff29, /* FULLWIDTH LATIN CAPITAL LETTER I */ + /*3399*/ 0xff4a, 1, 0xff2a, /* FULLWIDTH LATIN CAPITAL LETTER J */ + /*3402*/ 0xff4b, 1, 0xff2b, /* FULLWIDTH LATIN CAPITAL LETTER K */ + /*3405*/ 0xff4c, 1, 0xff2c, /* FULLWIDTH LATIN CAPITAL LETTER L */ + /*3408*/ 0xff4d, 1, 0xff2d, /* FULLWIDTH LATIN CAPITAL LETTER M */ + /*3411*/ 0xff4e, 1, 0xff2e, /* FULLWIDTH LATIN CAPITAL LETTER N */ + /*3414*/ 0xff4f, 1, 0xff2f, /* FULLWIDTH LATIN CAPITAL LETTER O */ + /*3417*/ 0xff50, 1, 0xff30, /* FULLWIDTH LATIN CAPITAL LETTER P */ + /*3420*/ 0xff51, 1, 0xff31, /* FULLWIDTH LATIN CAPITAL LETTER Q */ + /*3423*/ 0xff52, 1, 0xff32, /* FULLWIDTH LATIN CAPITAL LETTER R */ + /*3426*/ 0xff53, 1, 0xff33, /* FULLWIDTH LATIN CAPITAL LETTER S */ + /*3429*/ 0xff54, 1, 0xff34, /* FULLWIDTH LATIN CAPITAL LETTER T */ + /*3432*/ 0xff55, 1, 0xff35, /* FULLWIDTH LATIN CAPITAL LETTER U */ + /*3435*/ 0xff56, 1, 0xff36, /* FULLWIDTH LATIN CAPITAL LETTER V */ + /*3438*/ 0xff57, 1, 0xff37, /* FULLWIDTH LATIN CAPITAL LETTER W */ + /*3441*/ 0xff58, 1, 0xff38, /* FULLWIDTH LATIN CAPITAL LETTER X */ + /*3444*/ 0xff59, 1, 0xff39, /* FULLWIDTH LATIN CAPITAL LETTER Y */ + /*3447*/ 0xff5a, 1, 0xff3a, /* FULLWIDTH LATIN CAPITAL LETTER Z */ + /*3450*/ 0x010428, 1, 0x010400, /* DESERET CAPITAL LETTER LONG I */ + /*3453*/ 0x010429, 1, 0x010401, /* DESERET CAPITAL LETTER LONG E */ + /*3456*/ 0x01042a, 1, 0x010402, /* DESERET CAPITAL LETTER LONG A */ + /*3459*/ 0x01042b, 1, 0x010403, /* DESERET CAPITAL LETTER LONG AH */ + /*3462*/ 0x01042c, 1, 0x010404, /* DESERET CAPITAL LETTER LONG O */ + /*3465*/ 0x01042d, 1, 0x010405, /* DESERET CAPITAL LETTER LONG OO */ + /*3468*/ 0x01042e, 1, 0x010406, /* DESERET CAPITAL LETTER SHORT I */ + /*3471*/ 0x01042f, 1, 0x010407, /* DESERET CAPITAL LETTER SHORT E */ + /*3474*/ 0x010430, 1, 0x010408, /* DESERET CAPITAL LETTER SHORT A */ + /*3477*/ 0x010431, 1, 0x010409, /* DESERET CAPITAL LETTER SHORT AH */ + /*3480*/ 0x010432, 1, 0x01040a, /* DESERET CAPITAL LETTER SHORT O */ + /*3483*/ 0x010433, 1, 0x01040b, /* DESERET CAPITAL LETTER SHORT OO */ + /*3486*/ 0x010434, 1, 0x01040c, /* DESERET CAPITAL LETTER AY */ + /*3489*/ 0x010435, 1, 0x01040d, /* DESERET CAPITAL LETTER OW */ + /*3492*/ 0x010436, 1, 0x01040e, /* DESERET CAPITAL LETTER WU */ + /*3495*/ 0x010437, 1, 0x01040f, /* DESERET CAPITAL LETTER YEE */ + /*3498*/ 0x010438, 1, 0x010410, /* DESERET CAPITAL LETTER H */ + /*3501*/ 0x010439, 1, 0x010411, /* DESERET CAPITAL LETTER PEE */ + /*3504*/ 0x01043a, 1, 0x010412, /* DESERET CAPITAL LETTER BEE */ + /*3507*/ 0x01043b, 1, 0x010413, /* DESERET CAPITAL LETTER TEE */ + /*3510*/ 0x01043c, 1, 0x010414, /* DESERET CAPITAL LETTER DEE */ + /*3513*/ 0x01043d, 1, 0x010415, /* DESERET CAPITAL LETTER CHEE */ + /*3516*/ 0x01043e, 1, 0x010416, /* DESERET CAPITAL LETTER JEE */ + /*3519*/ 0x01043f, 1, 0x010417, /* DESERET CAPITAL LETTER KAY */ + /*3522*/ 0x010440, 1, 0x010418, /* DESERET CAPITAL LETTER GAY */ + /*3525*/ 0x010441, 1, 0x010419, /* DESERET CAPITAL LETTER EF */ + /*3528*/ 0x010442, 1, 0x01041a, /* DESERET CAPITAL LETTER VEE */ + /*3531*/ 0x010443, 1, 0x01041b, /* DESERET CAPITAL LETTER ETH */ + /*3534*/ 0x010444, 1, 0x01041c, /* DESERET CAPITAL LETTER THEE */ + /*3537*/ 0x010445, 1, 0x01041d, /* DESERET CAPITAL LETTER ES */ + /*3540*/ 0x010446, 1, 0x01041e, /* DESERET CAPITAL LETTER ZEE */ + /*3543*/ 0x010447, 1, 0x01041f, /* DESERET CAPITAL LETTER ESH */ + /*3546*/ 0x010448, 1, 0x010420, /* DESERET CAPITAL LETTER ZHEE */ + /*3549*/ 0x010449, 1, 0x010421, /* DESERET CAPITAL LETTER ER */ + /*3552*/ 0x01044a, 1, 0x010422, /* DESERET CAPITAL LETTER EL */ + /*3555*/ 0x01044b, 1, 0x010423, /* DESERET CAPITAL LETTER EM */ + /*3558*/ 0x01044c, 1, 0x010424, /* DESERET CAPITAL LETTER EN */ + /*3561*/ 0x01044d, 1, 0x010425, /* DESERET CAPITAL LETTER ENG */ + /*3564*/ 0x01044e, 1, 0x010426, /* DESERET CAPITAL LETTER OI */ + /*3567*/ 0x01044f, 1, 0x010427, /* DESERET CAPITAL LETTER EW */ + /*3570*/ 0x0104d8, 1, 0x0104b0, /* OSAGE CAPITAL LETTER A */ + /*3573*/ 0x0104d9, 1, 0x0104b1, /* OSAGE CAPITAL LETTER AI */ + /*3576*/ 0x0104da, 1, 0x0104b2, /* OSAGE CAPITAL LETTER AIN */ + /*3579*/ 0x0104db, 1, 0x0104b3, /* OSAGE CAPITAL LETTER AH */ + /*3582*/ 0x0104dc, 1, 0x0104b4, /* OSAGE CAPITAL LETTER BRA */ + /*3585*/ 0x0104dd, 1, 0x0104b5, /* OSAGE CAPITAL LETTER CHA */ + /*3588*/ 0x0104de, 1, 0x0104b6, /* OSAGE CAPITAL LETTER EHCHA */ + /*3591*/ 0x0104df, 1, 0x0104b7, /* OSAGE CAPITAL LETTER E */ + /*3594*/ 0x0104e0, 1, 0x0104b8, /* OSAGE CAPITAL LETTER EIN */ + /*3597*/ 0x0104e1, 1, 0x0104b9, /* OSAGE CAPITAL LETTER HA */ + /*3600*/ 0x0104e2, 1, 0x0104ba, /* OSAGE CAPITAL LETTER HYA */ + /*3603*/ 0x0104e3, 1, 0x0104bb, /* OSAGE CAPITAL LETTER I */ + /*3606*/ 0x0104e4, 1, 0x0104bc, /* OSAGE CAPITAL LETTER KA */ + /*3609*/ 0x0104e5, 1, 0x0104bd, /* OSAGE CAPITAL LETTER EHKA */ + /*3612*/ 0x0104e6, 1, 0x0104be, /* OSAGE CAPITAL LETTER KYA */ + /*3615*/ 0x0104e7, 1, 0x0104bf, /* OSAGE CAPITAL LETTER LA */ + /*3618*/ 0x0104e8, 1, 0x0104c0, /* OSAGE CAPITAL LETTER MA */ + /*3621*/ 0x0104e9, 1, 0x0104c1, /* OSAGE CAPITAL LETTER NA */ + /*3624*/ 0x0104ea, 1, 0x0104c2, /* OSAGE CAPITAL LETTER O */ + /*3627*/ 0x0104eb, 1, 0x0104c3, /* OSAGE CAPITAL LETTER OIN */ + /*3630*/ 0x0104ec, 1, 0x0104c4, /* OSAGE CAPITAL LETTER PA */ + /*3633*/ 0x0104ed, 1, 0x0104c5, /* OSAGE CAPITAL LETTER EHPA */ + /*3636*/ 0x0104ee, 1, 0x0104c6, /* OSAGE CAPITAL LETTER SA */ + /*3639*/ 0x0104ef, 1, 0x0104c7, /* OSAGE CAPITAL LETTER SHA */ + /*3642*/ 0x0104f0, 1, 0x0104c8, /* OSAGE CAPITAL LETTER TA */ + /*3645*/ 0x0104f1, 1, 0x0104c9, /* OSAGE CAPITAL LETTER EHTA */ + /*3648*/ 0x0104f2, 1, 0x0104ca, /* OSAGE CAPITAL LETTER TSA */ + /*3651*/ 0x0104f3, 1, 0x0104cb, /* OSAGE CAPITAL LETTER EHTSA */ + /*3654*/ 0x0104f4, 1, 0x0104cc, /* OSAGE CAPITAL LETTER TSHA */ + /*3657*/ 0x0104f5, 1, 0x0104cd, /* OSAGE CAPITAL LETTER DHA */ + /*3660*/ 0x0104f6, 1, 0x0104ce, /* OSAGE CAPITAL LETTER U */ + /*3663*/ 0x0104f7, 1, 0x0104cf, /* OSAGE CAPITAL LETTER WA */ + /*3666*/ 0x0104f8, 1, 0x0104d0, /* OSAGE CAPITAL LETTER KHA */ + /*3669*/ 0x0104f9, 1, 0x0104d1, /* OSAGE CAPITAL LETTER GHA */ + /*3672*/ 0x0104fa, 1, 0x0104d2, /* OSAGE CAPITAL LETTER ZA */ + /*3675*/ 0x0104fb, 1, 0x0104d3, /* OSAGE CAPITAL LETTER ZHA */ + /*3678*/ 0x010597, 1, 0x010570, /* VITHKUQI CAPITAL LETTER A */ + /*3681*/ 0x010598, 1, 0x010571, /* VITHKUQI CAPITAL LETTER BBE */ + /*3684*/ 0x010599, 1, 0x010572, /* VITHKUQI CAPITAL LETTER BE */ + /*3687*/ 0x01059a, 1, 0x010573, /* VITHKUQI CAPITAL LETTER CE */ + /*3690*/ 0x01059b, 1, 0x010574, /* VITHKUQI CAPITAL LETTER CHE */ + /*3693*/ 0x01059c, 1, 0x010575, /* VITHKUQI CAPITAL LETTER DE */ + /*3696*/ 0x01059d, 1, 0x010576, /* VITHKUQI CAPITAL LETTER DHE */ + /*3699*/ 0x01059e, 1, 0x010577, /* VITHKUQI CAPITAL LETTER EI */ + /*3702*/ 0x01059f, 1, 0x010578, /* VITHKUQI CAPITAL LETTER E */ + /*3705*/ 0x0105a0, 1, 0x010579, /* VITHKUQI CAPITAL LETTER FE */ + /*3708*/ 0x0105a1, 1, 0x01057a, /* VITHKUQI CAPITAL LETTER GA */ + /*3711*/ 0x0105a3, 1, 0x01057c, /* VITHKUQI CAPITAL LETTER HA */ + /*3714*/ 0x0105a4, 1, 0x01057d, /* VITHKUQI CAPITAL LETTER HHA */ + /*3717*/ 0x0105a5, 1, 0x01057e, /* VITHKUQI CAPITAL LETTER I */ + /*3720*/ 0x0105a6, 1, 0x01057f, /* VITHKUQI CAPITAL LETTER IJE */ + /*3723*/ 0x0105a7, 1, 0x010580, /* VITHKUQI CAPITAL LETTER JE */ + /*3726*/ 0x0105a8, 1, 0x010581, /* VITHKUQI CAPITAL LETTER KA */ + /*3729*/ 0x0105a9, 1, 0x010582, /* VITHKUQI CAPITAL LETTER LA */ + /*3732*/ 0x0105aa, 1, 0x010583, /* VITHKUQI CAPITAL LETTER LLA */ + /*3735*/ 0x0105ab, 1, 0x010584, /* VITHKUQI CAPITAL LETTER ME */ + /*3738*/ 0x0105ac, 1, 0x010585, /* VITHKUQI CAPITAL LETTER NE */ + /*3741*/ 0x0105ad, 1, 0x010586, /* VITHKUQI CAPITAL LETTER NJE */ + /*3744*/ 0x0105ae, 1, 0x010587, /* VITHKUQI CAPITAL LETTER O */ + /*3747*/ 0x0105af, 1, 0x010588, /* VITHKUQI CAPITAL LETTER PE */ + /*3750*/ 0x0105b0, 1, 0x010589, /* VITHKUQI CAPITAL LETTER QA */ + /*3753*/ 0x0105b1, 1, 0x01058a, /* VITHKUQI CAPITAL LETTER RE */ + /*3756*/ 0x0105b3, 1, 0x01058c, /* VITHKUQI CAPITAL LETTER SE */ + /*3759*/ 0x0105b4, 1, 0x01058d, /* VITHKUQI CAPITAL LETTER SHE */ + /*3762*/ 0x0105b5, 1, 0x01058e, /* VITHKUQI CAPITAL LETTER TE */ + /*3765*/ 0x0105b6, 1, 0x01058f, /* VITHKUQI CAPITAL LETTER THE */ + /*3768*/ 0x0105b7, 1, 0x010590, /* VITHKUQI CAPITAL LETTER U */ + /*3771*/ 0x0105b8, 1, 0x010591, /* VITHKUQI CAPITAL LETTER VE */ + /*3774*/ 0x0105b9, 1, 0x010592, /* VITHKUQI CAPITAL LETTER XE */ + /*3777*/ 0x0105bb, 1, 0x010594, /* VITHKUQI CAPITAL LETTER Y */ + /*3780*/ 0x0105bc, 1, 0x010595, /* VITHKUQI CAPITAL LETTER ZE */ + /*3783*/ 0x010cc0, 1, 0x010c80, /* OLD HUNGARIAN CAPITAL LETTER A */ + /*3786*/ 0x010cc1, 1, 0x010c81, /* OLD HUNGARIAN CAPITAL LETTER AA */ + /*3789*/ 0x010cc2, 1, 0x010c82, /* OLD HUNGARIAN CAPITAL LETTER EB */ + /*3792*/ 0x010cc3, 1, 0x010c83, /* OLD HUNGARIAN CAPITAL LETTER AMB */ + /*3795*/ 0x010cc4, 1, 0x010c84, /* OLD HUNGARIAN CAPITAL LETTER EC */ + /*3798*/ 0x010cc5, 1, 0x010c85, /* OLD HUNGARIAN CAPITAL LETTER ENC */ + /*3801*/ 0x010cc6, 1, 0x010c86, /* OLD HUNGARIAN CAPITAL LETTER ECS */ + /*3804*/ 0x010cc7, 1, 0x010c87, /* OLD HUNGARIAN CAPITAL LETTER ED */ + /*3807*/ 0x010cc8, 1, 0x010c88, /* OLD HUNGARIAN CAPITAL LETTER AND */ + /*3810*/ 0x010cc9, 1, 0x010c89, /* OLD HUNGARIAN CAPITAL LETTER E */ + /*3813*/ 0x010cca, 1, 0x010c8a, /* OLD HUNGARIAN CAPITAL LETTER CLOS.. */ + /*3816*/ 0x010ccb, 1, 0x010c8b, /* OLD HUNGARIAN CAPITAL LETTER EE */ + /*3819*/ 0x010ccc, 1, 0x010c8c, /* OLD HUNGARIAN CAPITAL LETTER EF */ + /*3822*/ 0x010ccd, 1, 0x010c8d, /* OLD HUNGARIAN CAPITAL LETTER EG */ + /*3825*/ 0x010cce, 1, 0x010c8e, /* OLD HUNGARIAN CAPITAL LETTER EGY */ + /*3828*/ 0x010ccf, 1, 0x010c8f, /* OLD HUNGARIAN CAPITAL LETTER EH */ + /*3831*/ 0x010cd0, 1, 0x010c90, /* OLD HUNGARIAN CAPITAL LETTER I */ + /*3834*/ 0x010cd1, 1, 0x010c91, /* OLD HUNGARIAN CAPITAL LETTER II */ + /*3837*/ 0x010cd2, 1, 0x010c92, /* OLD HUNGARIAN CAPITAL LETTER EJ */ + /*3840*/ 0x010cd3, 1, 0x010c93, /* OLD HUNGARIAN CAPITAL LETTER EK */ + /*3843*/ 0x010cd4, 1, 0x010c94, /* OLD HUNGARIAN CAPITAL LETTER AK */ + /*3846*/ 0x010cd5, 1, 0x010c95, /* OLD HUNGARIAN CAPITAL LETTER UNK */ + /*3849*/ 0x010cd6, 1, 0x010c96, /* OLD HUNGARIAN CAPITAL LETTER EL */ + /*3852*/ 0x010cd7, 1, 0x010c97, /* OLD HUNGARIAN CAPITAL LETTER ELY */ + /*3855*/ 0x010cd8, 1, 0x010c98, /* OLD HUNGARIAN CAPITAL LETTER EM */ + /*3858*/ 0x010cd9, 1, 0x010c99, /* OLD HUNGARIAN CAPITAL LETTER EN */ + /*3861*/ 0x010cda, 1, 0x010c9a, /* OLD HUNGARIAN CAPITAL LETTER ENY */ + /*3864*/ 0x010cdb, 1, 0x010c9b, /* OLD HUNGARIAN CAPITAL LETTER O */ + /*3867*/ 0x010cdc, 1, 0x010c9c, /* OLD HUNGARIAN CAPITAL LETTER OO */ + /*3870*/ 0x010cdd, 1, 0x010c9d, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */ + /*3873*/ 0x010cde, 1, 0x010c9e, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */ + /*3876*/ 0x010cdf, 1, 0x010c9f, /* OLD HUNGARIAN CAPITAL LETTER OEE */ + /*3879*/ 0x010ce0, 1, 0x010ca0, /* OLD HUNGARIAN CAPITAL LETTER EP */ + /*3882*/ 0x010ce1, 1, 0x010ca1, /* OLD HUNGARIAN CAPITAL LETTER EMP */ + /*3885*/ 0x010ce2, 1, 0x010ca2, /* OLD HUNGARIAN CAPITAL LETTER ER */ + /*3888*/ 0x010ce3, 1, 0x010ca3, /* OLD HUNGARIAN CAPITAL LETTER SHOR.. */ + /*3891*/ 0x010ce4, 1, 0x010ca4, /* OLD HUNGARIAN CAPITAL LETTER ES */ + /*3894*/ 0x010ce5, 1, 0x010ca5, /* OLD HUNGARIAN CAPITAL LETTER ESZ */ + /*3897*/ 0x010ce6, 1, 0x010ca6, /* OLD HUNGARIAN CAPITAL LETTER ET */ + /*3900*/ 0x010ce7, 1, 0x010ca7, /* OLD HUNGARIAN CAPITAL LETTER ENT */ + /*3903*/ 0x010ce8, 1, 0x010ca8, /* OLD HUNGARIAN CAPITAL LETTER ETY */ + /*3906*/ 0x010ce9, 1, 0x010ca9, /* OLD HUNGARIAN CAPITAL LETTER ECH */ + /*3909*/ 0x010cea, 1, 0x010caa, /* OLD HUNGARIAN CAPITAL LETTER U */ + /*3912*/ 0x010ceb, 1, 0x010cab, /* OLD HUNGARIAN CAPITAL LETTER UU */ + /*3915*/ 0x010cec, 1, 0x010cac, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */ + /*3918*/ 0x010ced, 1, 0x010cad, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */ + /*3921*/ 0x010cee, 1, 0x010cae, /* OLD HUNGARIAN CAPITAL LETTER EV */ + /*3924*/ 0x010cef, 1, 0x010caf, /* OLD HUNGARIAN CAPITAL LETTER EZ */ + /*3927*/ 0x010cf0, 1, 0x010cb0, /* OLD HUNGARIAN CAPITAL LETTER EZS */ + /*3930*/ 0x010cf1, 1, 0x010cb1, /* OLD HUNGARIAN CAPITAL LETTER ENT-.. */ + /*3933*/ 0x010cf2, 1, 0x010cb2, /* OLD HUNGARIAN CAPITAL LETTER US */ + /*3936*/ 0x010d70, 1, 0x010d50, /* GARAY CAPITAL LETTER A */ + /*3939*/ 0x010d71, 1, 0x010d51, /* GARAY CAPITAL LETTER CA */ + /*3942*/ 0x010d72, 1, 0x010d52, /* GARAY CAPITAL LETTER MA */ + /*3945*/ 0x010d73, 1, 0x010d53, /* GARAY CAPITAL LETTER KA */ + /*3948*/ 0x010d74, 1, 0x010d54, /* GARAY CAPITAL LETTER BA */ + /*3951*/ 0x010d75, 1, 0x010d55, /* GARAY CAPITAL LETTER JA */ + /*3954*/ 0x010d76, 1, 0x010d56, /* GARAY CAPITAL LETTER SA */ + /*3957*/ 0x010d77, 1, 0x010d57, /* GARAY CAPITAL LETTER WA */ + /*3960*/ 0x010d78, 1, 0x010d58, /* GARAY CAPITAL LETTER LA */ + /*3963*/ 0x010d79, 1, 0x010d59, /* GARAY CAPITAL LETTER GA */ + /*3966*/ 0x010d7a, 1, 0x010d5a, /* GARAY CAPITAL LETTER DA */ + /*3969*/ 0x010d7b, 1, 0x010d5b, /* GARAY CAPITAL LETTER XA */ + /*3972*/ 0x010d7c, 1, 0x010d5c, /* GARAY CAPITAL LETTER YA */ + /*3975*/ 0x010d7d, 1, 0x010d5d, /* GARAY CAPITAL LETTER TA */ + /*3978*/ 0x010d7e, 1, 0x010d5e, /* GARAY CAPITAL LETTER RA */ + /*3981*/ 0x010d7f, 1, 0x010d5f, /* GARAY CAPITAL LETTER NYA */ + /*3984*/ 0x010d80, 1, 0x010d60, /* GARAY CAPITAL LETTER FA */ + /*3987*/ 0x010d81, 1, 0x010d61, /* GARAY CAPITAL LETTER NA */ + /*3990*/ 0x010d82, 1, 0x010d62, /* GARAY CAPITAL LETTER PA */ + /*3993*/ 0x010d83, 1, 0x010d63, /* GARAY CAPITAL LETTER HA */ + /*3996*/ 0x010d84, 1, 0x010d64, /* GARAY CAPITAL LETTER OLD KA */ + /*3999*/ 0x010d85, 1, 0x010d65, /* GARAY CAPITAL LETTER OLD NA */ + /*4002*/ 0x0118c0, 1, 0x0118a0, /* WARANG CITI CAPITAL LETTER NGAA */ + /*4005*/ 0x0118c1, 1, 0x0118a1, /* WARANG CITI CAPITAL LETTER A */ + /*4008*/ 0x0118c2, 1, 0x0118a2, /* WARANG CITI CAPITAL LETTER WI */ + /*4011*/ 0x0118c3, 1, 0x0118a3, /* WARANG CITI CAPITAL LETTER YU */ + /*4014*/ 0x0118c4, 1, 0x0118a4, /* WARANG CITI CAPITAL LETTER YA */ + /*4017*/ 0x0118c5, 1, 0x0118a5, /* WARANG CITI CAPITAL LETTER YO */ + /*4020*/ 0x0118c6, 1, 0x0118a6, /* WARANG CITI CAPITAL LETTER II */ + /*4023*/ 0x0118c7, 1, 0x0118a7, /* WARANG CITI CAPITAL LETTER UU */ + /*4026*/ 0x0118c8, 1, 0x0118a8, /* WARANG CITI CAPITAL LETTER E */ + /*4029*/ 0x0118c9, 1, 0x0118a9, /* WARANG CITI CAPITAL LETTER O */ + /*4032*/ 0x0118ca, 1, 0x0118aa, /* WARANG CITI CAPITAL LETTER ANG */ + /*4035*/ 0x0118cb, 1, 0x0118ab, /* WARANG CITI CAPITAL LETTER GA */ + /*4038*/ 0x0118cc, 1, 0x0118ac, /* WARANG CITI CAPITAL LETTER KO */ + /*4041*/ 0x0118cd, 1, 0x0118ad, /* WARANG CITI CAPITAL LETTER ENY */ + /*4044*/ 0x0118ce, 1, 0x0118ae, /* WARANG CITI CAPITAL LETTER YUJ */ + /*4047*/ 0x0118cf, 1, 0x0118af, /* WARANG CITI CAPITAL LETTER UC */ + /*4050*/ 0x0118d0, 1, 0x0118b0, /* WARANG CITI CAPITAL LETTER ENN */ + /*4053*/ 0x0118d1, 1, 0x0118b1, /* WARANG CITI CAPITAL LETTER ODD */ + /*4056*/ 0x0118d2, 1, 0x0118b2, /* WARANG CITI CAPITAL LETTER TTE */ + /*4059*/ 0x0118d3, 1, 0x0118b3, /* WARANG CITI CAPITAL LETTER NUNG */ + /*4062*/ 0x0118d4, 1, 0x0118b4, /* WARANG CITI CAPITAL LETTER DA */ + /*4065*/ 0x0118d5, 1, 0x0118b5, /* WARANG CITI CAPITAL LETTER AT */ + /*4068*/ 0x0118d6, 1, 0x0118b6, /* WARANG CITI CAPITAL LETTER AM */ + /*4071*/ 0x0118d7, 1, 0x0118b7, /* WARANG CITI CAPITAL LETTER BU */ + /*4074*/ 0x0118d8, 1, 0x0118b8, /* WARANG CITI CAPITAL LETTER PU */ + /*4077*/ 0x0118d9, 1, 0x0118b9, /* WARANG CITI CAPITAL LETTER HIYO */ + /*4080*/ 0x0118da, 1, 0x0118ba, /* WARANG CITI CAPITAL LETTER HOLO */ + /*4083*/ 0x0118db, 1, 0x0118bb, /* WARANG CITI CAPITAL LETTER HORR */ + /*4086*/ 0x0118dc, 1, 0x0118bc, /* WARANG CITI CAPITAL LETTER HAR */ + /*4089*/ 0x0118dd, 1, 0x0118bd, /* WARANG CITI CAPITAL LETTER SSUU */ + /*4092*/ 0x0118de, 1, 0x0118be, /* WARANG CITI CAPITAL LETTER SII */ + /*4095*/ 0x0118df, 1, 0x0118bf, /* WARANG CITI CAPITAL LETTER VIYO */ + /*4098*/ 0x016e60, 1, 0x016e40, /* MEDEFAIDRIN CAPITAL LETTER M */ + /*4101*/ 0x016e61, 1, 0x016e41, /* MEDEFAIDRIN CAPITAL LETTER S */ + /*4104*/ 0x016e62, 1, 0x016e42, /* MEDEFAIDRIN CAPITAL LETTER V */ + /*4107*/ 0x016e63, 1, 0x016e43, /* MEDEFAIDRIN CAPITAL LETTER W */ + /*4110*/ 0x016e64, 1, 0x016e44, /* MEDEFAIDRIN CAPITAL LETTER ATIU */ + /*4113*/ 0x016e65, 1, 0x016e45, /* MEDEFAIDRIN CAPITAL LETTER Z */ + /*4116*/ 0x016e66, 1, 0x016e46, /* MEDEFAIDRIN CAPITAL LETTER KP */ + /*4119*/ 0x016e67, 1, 0x016e47, /* MEDEFAIDRIN CAPITAL LETTER P */ + /*4122*/ 0x016e68, 1, 0x016e48, /* MEDEFAIDRIN CAPITAL LETTER T */ + /*4125*/ 0x016e69, 1, 0x016e49, /* MEDEFAIDRIN CAPITAL LETTER G */ + /*4128*/ 0x016e6a, 1, 0x016e4a, /* MEDEFAIDRIN CAPITAL LETTER F */ + /*4131*/ 0x016e6b, 1, 0x016e4b, /* MEDEFAIDRIN CAPITAL LETTER I */ + /*4134*/ 0x016e6c, 1, 0x016e4c, /* MEDEFAIDRIN CAPITAL LETTER K */ + /*4137*/ 0x016e6d, 1, 0x016e4d, /* MEDEFAIDRIN CAPITAL LETTER A */ + /*4140*/ 0x016e6e, 1, 0x016e4e, /* MEDEFAIDRIN CAPITAL LETTER J */ + /*4143*/ 0x016e6f, 1, 0x016e4f, /* MEDEFAIDRIN CAPITAL LETTER E */ + /*4146*/ 0x016e70, 1, 0x016e50, /* MEDEFAIDRIN CAPITAL LETTER B */ + /*4149*/ 0x016e71, 1, 0x016e51, /* MEDEFAIDRIN CAPITAL LETTER C */ + /*4152*/ 0x016e72, 1, 0x016e52, /* MEDEFAIDRIN CAPITAL LETTER U */ + /*4155*/ 0x016e73, 1, 0x016e53, /* MEDEFAIDRIN CAPITAL LETTER YU */ + /*4158*/ 0x016e74, 1, 0x016e54, /* MEDEFAIDRIN CAPITAL LETTER L */ + /*4161*/ 0x016e75, 1, 0x016e55, /* MEDEFAIDRIN CAPITAL LETTER Q */ + /*4164*/ 0x016e76, 1, 0x016e56, /* MEDEFAIDRIN CAPITAL LETTER HP */ + /*4167*/ 0x016e77, 1, 0x016e57, /* MEDEFAIDRIN CAPITAL LETTER NY */ + /*4170*/ 0x016e78, 1, 0x016e58, /* MEDEFAIDRIN CAPITAL LETTER X */ + /*4173*/ 0x016e79, 1, 0x016e59, /* MEDEFAIDRIN CAPITAL LETTER D */ + /*4176*/ 0x016e7a, 1, 0x016e5a, /* MEDEFAIDRIN CAPITAL LETTER OE */ + /*4179*/ 0x016e7b, 1, 0x016e5b, /* MEDEFAIDRIN CAPITAL LETTER N */ + /*4182*/ 0x016e7c, 1, 0x016e5c, /* MEDEFAIDRIN CAPITAL LETTER R */ + /*4185*/ 0x016e7d, 1, 0x016e5d, /* MEDEFAIDRIN CAPITAL LETTER O */ + /*4188*/ 0x016e7e, 1, 0x016e5e, /* MEDEFAIDRIN CAPITAL LETTER AI */ + /*4191*/ 0x016e7f, 1, 0x016e5f, /* MEDEFAIDRIN CAPITAL LETTER Y */ + /*4194*/ 0x01e922, 1, 0x01e900, /* ADLAM CAPITAL LETTER ALIF */ + /*4197*/ 0x01e923, 1, 0x01e901, /* ADLAM CAPITAL LETTER DAALI */ + /*4200*/ 0x01e924, 1, 0x01e902, /* ADLAM CAPITAL LETTER LAAM */ + /*4203*/ 0x01e925, 1, 0x01e903, /* ADLAM CAPITAL LETTER MIIM */ + /*4206*/ 0x01e926, 1, 0x01e904, /* ADLAM CAPITAL LETTER BA */ + /*4209*/ 0x01e927, 1, 0x01e905, /* ADLAM CAPITAL LETTER SINNYIIYHE */ + /*4212*/ 0x01e928, 1, 0x01e906, /* ADLAM CAPITAL LETTER PE */ + /*4215*/ 0x01e929, 1, 0x01e907, /* ADLAM CAPITAL LETTER BHE */ + /*4218*/ 0x01e92a, 1, 0x01e908, /* ADLAM CAPITAL LETTER RA */ + /*4221*/ 0x01e92b, 1, 0x01e909, /* ADLAM CAPITAL LETTER E */ + /*4224*/ 0x01e92c, 1, 0x01e90a, /* ADLAM CAPITAL LETTER FA */ + /*4227*/ 0x01e92d, 1, 0x01e90b, /* ADLAM CAPITAL LETTER I */ + /*4230*/ 0x01e92e, 1, 0x01e90c, /* ADLAM CAPITAL LETTER O */ + /*4233*/ 0x01e92f, 1, 0x01e90d, /* ADLAM CAPITAL LETTER DHA */ + /*4236*/ 0x01e930, 1, 0x01e90e, /* ADLAM CAPITAL LETTER YHE */ + /*4239*/ 0x01e931, 1, 0x01e90f, /* ADLAM CAPITAL LETTER WAW */ + /*4242*/ 0x01e932, 1, 0x01e910, /* ADLAM CAPITAL LETTER NUN */ + /*4245*/ 0x01e933, 1, 0x01e911, /* ADLAM CAPITAL LETTER KAF */ + /*4248*/ 0x01e934, 1, 0x01e912, /* ADLAM CAPITAL LETTER YA */ + /*4251*/ 0x01e935, 1, 0x01e913, /* ADLAM CAPITAL LETTER U */ + /*4254*/ 0x01e936, 1, 0x01e914, /* ADLAM CAPITAL LETTER JIIM */ + /*4257*/ 0x01e937, 1, 0x01e915, /* ADLAM CAPITAL LETTER CHI */ + /*4260*/ 0x01e938, 1, 0x01e916, /* ADLAM CAPITAL LETTER HA */ + /*4263*/ 0x01e939, 1, 0x01e917, /* ADLAM CAPITAL LETTER QAAF */ + /*4266*/ 0x01e93a, 1, 0x01e918, /* ADLAM CAPITAL LETTER GA */ + /*4269*/ 0x01e93b, 1, 0x01e919, /* ADLAM CAPITAL LETTER NYA */ + /*4272*/ 0x01e93c, 1, 0x01e91a, /* ADLAM CAPITAL LETTER TU */ + /*4275*/ 0x01e93d, 1, 0x01e91b, /* ADLAM CAPITAL LETTER NHA */ + /*4278*/ 0x01e93e, 1, 0x01e91c, /* ADLAM CAPITAL LETTER VA */ + /*4281*/ 0x01e93f, 1, 0x01e91d, /* ADLAM CAPITAL LETTER KHA */ + /*4284*/ 0x01e940, 1, 0x01e91e, /* ADLAM CAPITAL LETTER GBE */ + /*4287*/ 0x01e941, 1, 0x01e91f, /* ADLAM CAPITAL LETTER ZAL */ + /*4290*/ 0x01e942, 1, 0x01e920, /* ADLAM CAPITAL LETTER KPO */ + /*4293*/ 0x01e943, 1, 0x01e921, /* ADLAM CAPITAL LETTER SHA */ +#define FOLDS1_NORMAL_END_INDEX 4296 /* ----- LOCALE ----- */ - /*4215*/ 0x0069, 1, 0x0049, /* LATIN CAPITAL LETTER I */ -#define FOLDS1_END_INDEX 4218 + /*4296*/ 0x0069, 1, 0x0049, /* LATIN CAPITAL LETTER I */ +#define FOLDS1_END_INDEX 4299 }; OnigCodePoint OnigUnicodeFolds2[] = { diff --git a/src/unicode_property_data.c b/src/unicode_property_data.c index ddca083..2329f07 100644 --- a/src/unicode_property_data.c +++ b/src/unicode_property_data.c @@ -34,7 +34,7 @@ /* Generated by make_unicode_property_data.py. */ /*- - * Copyright (c) 2016-2021 K.Kosako + * Copyright (c) 2016-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -68,7 +68,7 @@ CR_NEWLINE[] = { 1, /* PROPERTY: 'Alpha': POSIX [[:Alpha:]] */ static const OnigCodePoint -CR_Alpha[] = { 722, +CR_Alpha[] = { 757, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -82,7 +82,7 @@ CR_Alpha[] = { 722, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0345, 0x0345, -0x0370, 0x0374, +0x0363, 0x0374, 0x0376, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, @@ -123,6 +123,7 @@ CR_Alpha[] = { 722, 0x0860, 0x086a, 0x0870, 0x0887, 0x0889, 0x088e, +0x0897, 0x0897, 0x08a0, 0x08c9, 0x08d4, 0x08df, 0x08e3, 0x08e9, @@ -203,8 +204,7 @@ CR_Alpha[] = { 722, 0x0bca, 0x0bcc, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, +0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, @@ -227,7 +227,7 @@ CR_Alpha[] = { 722, 0x0cd5, 0x0cd6, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -265,7 +265,7 @@ CR_Alpha[] = { 722, 0x0f00, 0x0f00, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f88, 0x0f97, 0x0f99, 0x0fbc, 0x1000, 0x1036, @@ -337,7 +337,7 @@ CR_Alpha[] = { 722, 0x1c00, 0x1c36, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, @@ -345,7 +345,7 @@ CR_Alpha[] = { 722, 0x1cf5, 0x1cf6, 0x1cfa, 0x1cfa, 0x1d00, 0x1dbf, -0x1de7, 0x1df4, +0x1dd3, 0x1df4, 0x1e00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, @@ -425,10 +425,10 @@ CR_Alpha[] = { 722, 0xa67f, 0xa6ef, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa805, 0xa807, 0xa827, 0xa840, 0xa873, @@ -519,6 +519,7 @@ CR_Alpha[] = { 722, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -556,9 +557,14 @@ CR_Alpha[] = { 722, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, +0x10d4a, 0x10d65, +0x10d69, 0x10d69, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10efc, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, @@ -567,7 +573,7 @@ CR_Alpha[] = { 722, 0x10fe0, 0x10ff6, 0x11000, 0x11045, 0x11071, 0x11075, -0x11082, 0x110b8, +0x11080, 0x110b8, 0x110c2, 0x110c2, 0x110d0, 0x110e8, 0x11100, 0x11132, @@ -582,7 +588,7 @@ CR_Alpha[] = { 722, 0x11200, 0x11211, 0x11213, 0x11234, 0x11237, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -602,6 +608,17 @@ CR_Alpha[] = { 722, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d, 0x11363, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, +0x113d1, 0x113d1, +0x113d3, 0x113d3, 0x11400, 0x11441, 0x11443, 0x11445, 0x11447, 0x1144a, @@ -640,6 +657,7 @@ CR_Alpha[] = { 722, 0x11a50, 0x11a97, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c3e, @@ -662,13 +680,19 @@ CR_Alpha[] = { 722, 0x11d93, 0x11d96, 0x11d98, 0x11d98, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x1612e, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a70, 0x16abe, @@ -677,6 +701,7 @@ CR_Alpha[] = { 722, 0x16b40, 0x16b43, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -686,12 +711,14 @@ CR_Alpha[] = { 722, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -730,16 +757,22 @@ CR_Alpha[] = { 722, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -785,12 +818,14 @@ CR_Alpha[] = { 722, 0x1f150, 0x1f169, 0x1f170, 0x1f189, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Alpha */ /* PROPERTY: 'Blank': POSIX [[:Blank:]] */ @@ -815,7 +850,7 @@ CR_Cntrl[] = { 2, /* PROPERTY: 'Digit': POSIX [[:Digit:]] */ static const OnigCodePoint -CR_Digit[] = { 62, +CR_Digit[] = { 71, 0x0030, 0x0039, 0x0660, 0x0669, 0x06f0, 0x06f9, @@ -855,6 +890,7 @@ CR_Digit[] = { 62, 0xff10, 0xff19, 0x104a0, 0x104a9, 0x10d30, 0x10d39, +0x10d40, 0x10d49, 0x11066, 0x1106f, 0x110f0, 0x110f9, 0x11136, 0x1113f, @@ -864,25 +900,33 @@ CR_Digit[] = { 62, 0x114d0, 0x114d9, 0x11650, 0x11659, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11730, 0x11739, 0x118e0, 0x118e9, 0x11950, 0x11959, +0x11bf0, 0x11bf9, 0x11c50, 0x11c59, 0x11d50, 0x11d59, 0x11da0, 0x11da9, +0x11f50, 0x11f59, +0x16130, 0x16139, 0x16a60, 0x16a69, 0x16ac0, 0x16ac9, 0x16b50, 0x16b59, +0x16d70, 0x16d79, +0x1ccf0, 0x1ccf9, 0x1d7ce, 0x1d7ff, 0x1e140, 0x1e149, 0x1e2f0, 0x1e2f9, +0x1e4f0, 0x1e4f9, +0x1e5f1, 0x1e5fa, 0x1e950, 0x1e959, 0x1fbf0, 0x1fbf9, }; /* END of CR_Digit */ /* PROPERTY: 'Graph': POSIX [[:Graph:]] */ static const OnigCodePoint -CR_Graph[] = { 703, +CR_Graph[] = { 737, 0x0021, 0x007e, 0x00a1, 0x0377, 0x037a, 0x037f, @@ -907,7 +951,7 @@ CR_Graph[] = { 703, 0x0860, 0x086a, 0x0870, 0x088e, 0x0890, 0x0891, -0x0898, 0x0983, +0x0897, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, @@ -1005,7 +1049,7 @@ CR_Graph[] = { 703, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -1035,7 +1079,7 @@ CR_Graph[] = { 703, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -1100,11 +1144,10 @@ CR_Graph[] = { 703, 0x1aa0, 0x1aad, 0x1ab0, 0x1ace, 0x1b00, 0x1b4c, -0x1b50, 0x1b7e, -0x1b80, 0x1bf3, +0x1b4e, 0x1bf3, 0x1bfc, 0x1c37, 0x1c3b, 0x1c49, -0x1c4d, 0x1c88, +0x1c4d, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cc7, 0x1cd0, 0x1cfa, @@ -1134,7 +1177,7 @@ CR_Graph[] = { 703, 0x20a0, 0x20c0, 0x20d0, 0x20f0, 0x2100, 0x218b, -0x2190, 0x2426, +0x2190, 0x2429, 0x2440, 0x244a, 0x2460, 0x2b73, 0x2b76, 0x2b95, @@ -1157,22 +1200,22 @@ CR_Graph[] = { 703, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, +0x2ff0, 0x2fff, 0x3001, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, -0x3190, 0x31e3, -0x31f0, 0x321e, +0x3190, 0x31e5, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, 0xa640, 0xa6f7, -0xa700, 0xa7ca, +0xa700, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa82c, 0xa830, 0xa839, 0xa840, 0xa877, @@ -1263,6 +1306,7 @@ CR_Graph[] = { 703, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -1306,11 +1350,15 @@ CR_Graph[] = { 703, 0x10cc0, 0x10cf2, 0x10cfa, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, 0x10e60, 0x10e7e, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10ec2, 0x10ec4, +0x10efc, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -1327,7 +1375,7 @@ CR_Graph[] = { 703, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -1350,6 +1398,17 @@ CR_Graph[] = { 703, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, 0x11400, 0x1145b, 0x1145d, 0x11461, 0x11480, 0x114c7, @@ -1361,6 +1420,7 @@ CR_Graph[] = { 703, 0x11660, 0x1166c, 0x11680, 0x116b9, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11746, @@ -1380,6 +1440,9 @@ CR_Graph[] = { 703, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -1401,6 +1464,9 @@ CR_Graph[] = { 703, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -1408,9 +1474,10 @@ CR_Graph[] = { 703, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -1423,6 +1490,7 @@ CR_Graph[] = { 703, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d79, 0x16e40, 0x16e9a, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -1431,12 +1499,14 @@ CR_Graph[] = { 703, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -1444,6 +1514,8 @@ CR_Graph[] = { 703, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, 0x1cf50, 0x1cfc3, @@ -1451,6 +1523,7 @@ CR_Graph[] = { 703, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -1478,11 +1551,14 @@ CR_Graph[] = { 703, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -1490,6 +1566,9 @@ CR_Graph[] = { 703, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -1548,10 +1627,10 @@ CR_Graph[] = { 703, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -1559,28 +1638,27 @@ CR_Graph[] = { 703, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, -0x1f8b0, 0x1f8b1, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, -0x1fb94, 0x1fbca, -0x1fbf0, 0x1fbf9, +0x1fb94, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -1590,7 +1668,7 @@ CR_Graph[] = { 703, /* PROPERTY: 'Lower': POSIX [[:Lower:]] */ static const OnigCodePoint -CR_Lower[] = { 668, +CR_Lower[] = { 675, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, @@ -1867,9 +1945,10 @@ CR_Lower[] = { 668, 0x052f, 0x052f, 0x0560, 0x0588, 0x10d0, 0x10fa, -0x10fd, 0x10ff, +0x10fc, 0x10ff, 0x13f8, 0x13fd, 0x1c80, 0x1c88, +0x1c8a, 0x1c8a, 0x1d00, 0x1dbf, 0x1e01, 0x1e01, 0x1e03, 0x1e03, @@ -2202,15 +2281,18 @@ CR_Lower[] = { 668, 0xa7c3, 0xa7c3, 0xa7c8, 0xa7c8, 0xa7ca, 0xa7ca, +0xa7cd, 0xa7cd, 0xa7d1, 0xa7d1, 0xa7d3, 0xa7d3, 0xa7d5, 0xa7d5, 0xa7d7, 0xa7d7, 0xa7d9, 0xa7d9, +0xa7db, 0xa7db, +0xa7f2, 0xa7f4, 0xa7f6, 0xa7f6, 0xa7f8, 0xa7fa, 0xab30, 0xab5a, -0xab5c, 0xab68, +0xab5c, 0xab69, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, @@ -2226,6 +2308,7 @@ CR_Lower[] = { 668, 0x10787, 0x107b0, 0x107b2, 0x107ba, 0x10cc0, 0x10cf2, +0x10d70, 0x10d85, 0x118c0, 0x118df, 0x16e60, 0x16e7f, 0x1d41a, 0x1d433, @@ -2258,12 +2341,14 @@ CR_Lower[] = { 668, 0x1d7cb, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e922, 0x1e943, }; /* END of CR_Lower */ /* PROPERTY: 'Print': POSIX [[:Print:]] */ static const OnigCodePoint -CR_Print[] = { 700, +CR_Print[] = { 733, 0x0020, 0x007e, 0x00a0, 0x0377, 0x037a, 0x037f, @@ -2288,7 +2373,7 @@ CR_Print[] = { 700, 0x0860, 0x086a, 0x0870, 0x088e, 0x0890, 0x0891, -0x0898, 0x0983, +0x0897, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, @@ -2386,7 +2471,7 @@ CR_Print[] = { 700, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -2416,7 +2501,7 @@ CR_Print[] = { 700, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -2480,11 +2565,10 @@ CR_Print[] = { 700, 0x1aa0, 0x1aad, 0x1ab0, 0x1ace, 0x1b00, 0x1b4c, -0x1b50, 0x1b7e, -0x1b80, 0x1bf3, +0x1b4e, 0x1bf3, 0x1bfc, 0x1c37, 0x1c3b, 0x1c49, -0x1c4d, 0x1c88, +0x1c4d, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cc7, 0x1cd0, 0x1cfa, @@ -2512,7 +2596,7 @@ CR_Print[] = { 700, 0x20a0, 0x20c0, 0x20d0, 0x20f0, 0x2100, 0x218b, -0x2190, 0x2426, +0x2190, 0x2429, 0x2440, 0x244a, 0x2460, 0x2b73, 0x2b76, 0x2b95, @@ -2535,22 +2619,21 @@ CR_Print[] = { 700, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x303f, +0x2ff0, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, -0x3190, 0x31e3, -0x31f0, 0x321e, +0x3190, 0x31e5, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, 0xa640, 0xa6f7, -0xa700, 0xa7ca, +0xa700, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa82c, 0xa830, 0xa839, 0xa840, 0xa877, @@ -2641,6 +2724,7 @@ CR_Print[] = { 700, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -2684,11 +2768,15 @@ CR_Print[] = { 700, 0x10cc0, 0x10cf2, 0x10cfa, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, 0x10e60, 0x10e7e, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10ec2, 0x10ec4, +0x10efc, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -2705,7 +2793,7 @@ CR_Print[] = { 700, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -2728,6 +2816,17 @@ CR_Print[] = { 700, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, 0x11400, 0x1145b, 0x1145d, 0x11461, 0x11480, 0x114c7, @@ -2739,6 +2838,7 @@ CR_Print[] = { 700, 0x11660, 0x1166c, 0x11680, 0x116b9, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11746, @@ -2758,6 +2858,9 @@ CR_Print[] = { 700, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -2779,6 +2882,9 @@ CR_Print[] = { 700, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -2786,9 +2892,10 @@ CR_Print[] = { 700, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -2801,6 +2908,7 @@ CR_Print[] = { 700, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d79, 0x16e40, 0x16e9a, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -2809,12 +2917,14 @@ CR_Print[] = { 700, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -2822,6 +2932,8 @@ CR_Print[] = { 700, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, 0x1cf50, 0x1cfc3, @@ -2829,6 +2941,7 @@ CR_Print[] = { 700, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -2856,11 +2969,14 @@ CR_Print[] = { 700, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -2868,6 +2984,9 @@ CR_Print[] = { 700, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -2926,10 +3045,10 @@ CR_Print[] = { 700, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -2937,28 +3056,27 @@ CR_Print[] = { 700, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, -0x1f8b0, 0x1f8b1, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, -0x1fb94, 0x1fbca, -0x1fbf0, 0x1fbf9, +0x1fb94, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -2966,113 +3084,183 @@ CR_Print[] = { 700, 0x100000, 0x10fffd, }; /* END of CR_Print */ -/* PROPERTY: 'Punct': POSIX [[:Punct:]] */ +/* PROPERTY: 'PosixPunct': POSIX [[:punct:]] */ static const OnigCodePoint -CR_Punct[] = { 189, -0x0021, 0x0023, -0x0025, 0x002a, -0x002c, 0x002f, -0x003a, 0x003b, -0x003f, 0x0040, -0x005b, 0x005d, -0x005f, 0x005f, -0x007b, 0x007b, -0x007d, 0x007d, -0x00a1, 0x00a1, -0x00a7, 0x00a7, -0x00ab, 0x00ab, -0x00b6, 0x00b7, +CR_PosixPunct[] = { 349, +0x0021, 0x002f, +0x003a, 0x0040, +0x005b, 0x0060, +0x007b, 0x007e, +0x00a1, 0x00a9, +0x00ab, 0x00ac, +0x00ae, 0x00b1, +0x00b4, 0x00b4, +0x00b6, 0x00b8, 0x00bb, 0x00bb, 0x00bf, 0x00bf, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x02c2, 0x02c5, +0x02d2, 0x02df, +0x02e5, 0x02eb, +0x02ed, 0x02ed, +0x02ef, 0x02ff, +0x0375, 0x0375, 0x037e, 0x037e, +0x0384, 0x0385, 0x0387, 0x0387, +0x03f6, 0x03f6, +0x0482, 0x0482, 0x055a, 0x055f, 0x0589, 0x058a, +0x058d, 0x058f, 0x05be, 0x05be, 0x05c0, 0x05c0, 0x05c3, 0x05c3, 0x05c6, 0x05c6, 0x05f3, 0x05f4, -0x0609, 0x060a, -0x060c, 0x060d, +0x0606, 0x060f, 0x061b, 0x061b, 0x061d, 0x061f, 0x066a, 0x066d, 0x06d4, 0x06d4, +0x06de, 0x06de, +0x06e9, 0x06e9, +0x06fd, 0x06fe, 0x0700, 0x070d, -0x07f7, 0x07f9, +0x07f6, 0x07f9, +0x07fe, 0x07ff, 0x0830, 0x083e, 0x085e, 0x085e, +0x0888, 0x0888, 0x0964, 0x0965, 0x0970, 0x0970, +0x09f2, 0x09f3, +0x09fa, 0x09fb, 0x09fd, 0x09fd, 0x0a76, 0x0a76, -0x0af0, 0x0af0, +0x0af0, 0x0af1, +0x0b70, 0x0b70, +0x0bf3, 0x0bfa, 0x0c77, 0x0c77, +0x0c7f, 0x0c7f, 0x0c84, 0x0c84, +0x0d4f, 0x0d4f, +0x0d79, 0x0d79, 0x0df4, 0x0df4, +0x0e3f, 0x0e3f, 0x0e4f, 0x0e4f, 0x0e5a, 0x0e5b, -0x0f04, 0x0f12, -0x0f14, 0x0f14, +0x0f01, 0x0f17, +0x0f1a, 0x0f1f, +0x0f34, 0x0f34, +0x0f36, 0x0f36, +0x0f38, 0x0f38, 0x0f3a, 0x0f3d, 0x0f85, 0x0f85, -0x0fd0, 0x0fd4, -0x0fd9, 0x0fda, +0x0fbe, 0x0fc5, +0x0fc7, 0x0fcc, +0x0fce, 0x0fda, 0x104a, 0x104f, +0x109e, 0x109f, 0x10fb, 0x10fb, 0x1360, 0x1368, +0x1390, 0x1399, 0x1400, 0x1400, -0x166e, 0x166e, +0x166d, 0x166e, 0x169b, 0x169c, 0x16eb, 0x16ed, 0x1735, 0x1736, 0x17d4, 0x17d6, -0x17d8, 0x17da, +0x17d8, 0x17db, 0x1800, 0x180a, +0x1940, 0x1940, 0x1944, 0x1945, +0x19de, 0x19ff, 0x1a1e, 0x1a1f, 0x1aa0, 0x1aa6, 0x1aa8, 0x1aad, -0x1b5a, 0x1b60, -0x1b7d, 0x1b7e, +0x1b4e, 0x1b4f, +0x1b5a, 0x1b6a, +0x1b74, 0x1b7f, 0x1bfc, 0x1bff, 0x1c3b, 0x1c3f, 0x1c7e, 0x1c7f, 0x1cc0, 0x1cc7, 0x1cd3, 0x1cd3, +0x1fbd, 0x1fbd, +0x1fbf, 0x1fc1, +0x1fcd, 0x1fcf, +0x1fdd, 0x1fdf, +0x1fed, 0x1fef, +0x1ffd, 0x1ffe, 0x2010, 0x2027, -0x2030, 0x2043, -0x2045, 0x2051, -0x2053, 0x205e, -0x207d, 0x207e, -0x208d, 0x208e, -0x2308, 0x230b, -0x2329, 0x232a, -0x2768, 0x2775, -0x27c5, 0x27c6, -0x27e6, 0x27ef, -0x2983, 0x2998, -0x29d8, 0x29db, -0x29fc, 0x29fd, +0x2030, 0x205e, +0x207a, 0x207e, +0x208a, 0x208e, +0x20a0, 0x20c0, +0x2100, 0x2101, +0x2103, 0x2106, +0x2108, 0x2109, +0x2114, 0x2114, +0x2116, 0x2118, +0x211e, 0x2123, +0x2125, 0x2125, +0x2127, 0x2127, +0x2129, 0x2129, +0x212e, 0x212e, +0x213a, 0x213b, +0x2140, 0x2144, +0x214a, 0x214d, +0x214f, 0x214f, +0x218a, 0x218b, +0x2190, 0x2429, +0x2440, 0x244a, +0x249c, 0x24e9, +0x2500, 0x2775, +0x2794, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2bff, +0x2ce5, 0x2cea, 0x2cf9, 0x2cfc, 0x2cfe, 0x2cff, 0x2d70, 0x2d70, 0x2e00, 0x2e2e, -0x2e30, 0x2e4f, -0x2e52, 0x2e5d, -0x3001, 0x3003, -0x3008, 0x3011, -0x3014, 0x301f, +0x2e30, 0x2e5d, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x2fff, +0x3001, 0x3004, +0x3008, 0x3020, 0x3030, 0x3030, -0x303d, 0x303d, +0x3036, 0x3037, +0x303d, 0x303f, +0x309b, 0x309c, 0x30a0, 0x30a0, 0x30fb, 0x30fb, +0x3190, 0x3191, +0x3196, 0x319f, +0x31c0, 0x31e5, +0x31ef, 0x31ef, +0x3200, 0x321e, +0x322a, 0x3247, +0x3250, 0x3250, +0x3260, 0x327f, +0x328a, 0x32b0, +0x32c0, 0x33ff, +0x4dc0, 0x4dff, +0xa490, 0xa4c6, 0xa4fe, 0xa4ff, 0xa60d, 0xa60f, 0xa673, 0xa673, 0xa67e, 0xa67e, 0xa6f2, 0xa6f7, +0xa700, 0xa716, +0xa720, 0xa721, +0xa789, 0xa78a, +0xa828, 0xa82b, +0xa836, 0xa839, 0xa874, 0xa877, 0xa8ce, 0xa8cf, 0xa8f8, 0xa8fa, @@ -3082,38 +3270,50 @@ CR_Punct[] = { 189, 0xa9c1, 0xa9cd, 0xa9de, 0xa9df, 0xaa5c, 0xaa5f, +0xaa77, 0xaa79, 0xaade, 0xaadf, 0xaaf0, 0xaaf1, +0xab5b, 0xab5b, +0xab6a, 0xab6b, 0xabeb, 0xabeb, -0xfd3e, 0xfd3f, +0xfb29, 0xfb29, +0xfbb2, 0xfbc2, +0xfd3e, 0xfd4f, +0xfdcf, 0xfdcf, +0xfdfc, 0xfdff, 0xfe10, 0xfe19, 0xfe30, 0xfe52, -0xfe54, 0xfe61, -0xfe63, 0xfe63, -0xfe68, 0xfe68, -0xfe6a, 0xfe6b, -0xff01, 0xff03, -0xff05, 0xff0a, -0xff0c, 0xff0f, -0xff1a, 0xff1b, -0xff1f, 0xff20, -0xff3b, 0xff3d, -0xff3f, 0xff3f, -0xff5b, 0xff5b, -0xff5d, 0xff5d, -0xff5f, 0xff65, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xff01, 0xff0f, +0xff1a, 0xff20, +0xff3b, 0xff40, +0xff5b, 0xff65, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfffc, 0xfffd, 0x10100, 0x10102, +0x10137, 0x1013f, +0x10179, 0x10189, +0x1018c, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fc, 0x1039f, 0x1039f, 0x103d0, 0x103d0, 0x1056f, 0x1056f, 0x10857, 0x10857, +0x10877, 0x10878, 0x1091f, 0x1091f, 0x1093f, 0x1093f, 0x10a50, 0x10a58, 0x10a7f, 0x10a7f, +0x10ac8, 0x10ac8, 0x10af0, 0x10af6, 0x10b39, 0x10b3f, 0x10b99, 0x10b9c, +0x10d6e, 0x10d6e, +0x10d8e, 0x10d8f, 0x10ead, 0x10ead, 0x10f55, 0x10f59, 0x10f86, 0x10f89, @@ -3128,6 +3328,8 @@ CR_Punct[] = { 189, 0x111dd, 0x111df, 0x11238, 0x1123d, 0x112a9, 0x112a9, +0x113d4, 0x113d5, +0x113d7, 0x113d8, 0x1144b, 0x1144f, 0x1145a, 0x1145b, 0x1145d, 0x1145d, @@ -3136,29 +3338,105 @@ CR_Punct[] = { 189, 0x11641, 0x11643, 0x11660, 0x1166c, 0x116b9, 0x116b9, -0x1173c, 0x1173e, +0x1173c, 0x1173f, 0x1183b, 0x1183b, 0x11944, 0x11946, 0x119e2, 0x119e2, 0x11a3f, 0x11a46, 0x11a9a, 0x11a9c, 0x11a9e, 0x11aa2, +0x11b00, 0x11b09, +0x11be1, 0x11be1, 0x11c41, 0x11c45, 0x11c70, 0x11c71, 0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, +0x11fd5, 0x11ff1, 0x11fff, 0x11fff, 0x12470, 0x12474, 0x12ff1, 0x12ff2, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, -0x16b37, 0x16b3b, -0x16b44, 0x16b44, +0x16b37, 0x16b3f, +0x16b44, 0x16b45, +0x16d6d, 0x16d6f, 0x16e97, 0x16e9a, 0x16fe2, 0x16fe2, +0x1bc9c, 0x1bc9c, 0x1bc9f, 0x1bc9f, -0x1da87, 0x1da8b, +0x1cc00, 0x1ccef, +0x1cd00, 0x1ceb3, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d164, +0x1d16a, 0x1d16c, +0x1d183, 0x1d184, +0x1d18c, 0x1d1a9, +0x1d1ae, 0x1d1ea, +0x1d200, 0x1d241, +0x1d245, 0x1d245, +0x1d300, 0x1d356, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +0x1d800, 0x1d9ff, +0x1da37, 0x1da3a, +0x1da6d, 0x1da74, +0x1da76, 0x1da83, +0x1da85, 0x1da8b, +0x1e14f, 0x1e14f, +0x1e2ff, 0x1e2ff, +0x1e5ff, 0x1e5ff, 0x1e95e, 0x1e95f, -}; /* END of CR_Punct */ +0x1ecac, 0x1ecac, +0x1ecb0, 0x1ecb0, +0x1ed2e, 0x1ed2e, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f10d, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbef, +}; /* END of CR_PosixPunct */ /* PROPERTY: 'Space': POSIX [[:Space:]] */ static const OnigCodePoint @@ -3177,7 +3455,7 @@ CR_Space[] = { 10, /* PROPERTY: 'Upper': POSIX [[:Upper:]] */ static const OnigCodePoint -CR_Upper[] = { 651, +CR_Upper[] = { 656, 0x0041, 0x005a, 0x00c0, 0x00d6, 0x00d8, 0x00de, @@ -3454,6 +3732,7 @@ CR_Upper[] = { 651, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x13a0, 0x13f5, +0x1c89, 0x1c89, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1e00, 0x1e00, @@ -3780,9 +4059,12 @@ CR_Upper[] = { 651, 0xa7c2, 0xa7c2, 0xa7c4, 0xa7c7, 0xa7c9, 0xa7c9, +0xa7cb, 0xa7cc, 0xa7d0, 0xa7d0, 0xa7d6, 0xa7d6, 0xa7d8, 0xa7d8, +0xa7da, 0xa7da, +0xa7dc, 0xa7dc, 0xa7f5, 0xa7f5, 0xff21, 0xff3a, 0x10400, 0x10427, @@ -3792,6 +4074,7 @@ CR_Upper[] = { 651, 0x1058c, 0x10592, 0x10594, 0x10595, 0x10c80, 0x10cb2, +0x10d50, 0x10d65, 0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1d400, 0x1d419, @@ -3841,7 +4124,7 @@ CR_XDigit[] = { 3, /* PROPERTY: 'Word': POSIX [[:Word:]] */ static const OnigCodePoint -CR_Word[] = { 758, +CR_Word[] = { 795, 0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, @@ -3894,7 +4177,7 @@ CR_Word[] = { 758, 0x0860, 0x086a, 0x0870, 0x0887, 0x0889, 0x088e, -0x0898, 0x08e1, +0x0897, 0x08e1, 0x08e3, 0x0963, 0x0966, 0x096f, 0x0971, 0x0983, @@ -3999,7 +4282,7 @@ CR_Word[] = { 758, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -4032,7 +4315,7 @@ CR_Word[] = { 758, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, @@ -4115,7 +4398,7 @@ CR_Word[] = { 758, 0x1c00, 0x1c37, 0x1c40, 0x1c49, 0x1c4d, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1cd0, 0x1cd2, @@ -4201,10 +4484,10 @@ CR_Word[] = { 758, 0xa67f, 0xa6f1, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa827, 0xa82c, 0xa82c, 0xa840, 0xa873, @@ -4302,6 +4585,7 @@ CR_Word[] = { 758, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -4342,10 +4626,14 @@ CR_Word[] = { 758, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d6d, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, -0x10f00, 0x10f1c, +0x10ec2, 0x10ec4, +0x10efc, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10f70, 0x10f85, @@ -4368,7 +4656,7 @@ CR_Word[] = { 758, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -4391,6 +4679,16 @@ CR_Word[] = { 758, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d3, +0x113e1, 0x113e2, 0x11400, 0x1144a, 0x11450, 0x11459, 0x1145e, 0x11461, @@ -4405,6 +4703,7 @@ CR_Word[] = { 758, 0x11650, 0x11659, 0x11680, 0x116b8, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11739, @@ -4428,6 +4727,8 @@ CR_Word[] = { 758, 0x11a50, 0x11a99, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c40, @@ -4449,13 +4750,20 @@ CR_Word[] = { 758, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f5a, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13440, 0x13455, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -4468,6 +4776,8 @@ CR_Word[] = { 758, 0x16b50, 0x16b59, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -4477,12 +4787,14 @@ CR_Word[] = { 758, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -4490,6 +4802,7 @@ CR_Word[] = { 758, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9d, 0x1bc9e, +0x1ccf0, 0x1ccf9, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, 0x1d165, 0x1d169, @@ -4536,17 +4849,22 @@ CR_Word[] = { 758, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -4593,18 +4911,20 @@ CR_Word[] = { 758, 0x1f170, 0x1f189, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0100, 0xe01ef, }; /* END of CR_Word */ /* PROPERTY: 'Alnum': POSIX [[:Alnum:]] */ static const OnigCodePoint -CR_Alnum[] = { 760, +CR_Alnum[] = { 802, 0x0030, 0x0039, 0x0041, 0x005a, 0x0061, 0x007a, @@ -4619,7 +4939,7 @@ CR_Alnum[] = { 760, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0345, 0x0345, -0x0370, 0x0374, +0x0363, 0x0374, 0x0376, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, @@ -4659,6 +4979,7 @@ CR_Alnum[] = { 760, 0x0860, 0x086a, 0x0870, 0x0887, 0x0889, 0x088e, +0x0897, 0x0897, 0x08a0, 0x08c9, 0x08d4, 0x08df, 0x08e3, 0x08e9, @@ -4743,8 +5064,7 @@ CR_Alnum[] = { 760, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, 0x0be6, 0x0bef, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, +0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, @@ -4769,7 +5089,7 @@ CR_Alnum[] = { 760, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -4812,7 +5132,7 @@ CR_Alnum[] = { 760, 0x0f20, 0x0f29, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f88, 0x0f97, 0x0f99, 0x0fbc, 0x1000, 0x1036, @@ -4888,7 +5208,7 @@ CR_Alnum[] = { 760, 0x1c00, 0x1c36, 0x1c40, 0x1c49, 0x1c4d, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, @@ -4896,7 +5216,7 @@ CR_Alnum[] = { 760, 0x1cf5, 0x1cf6, 0x1cfa, 0x1cfa, 0x1d00, 0x1dbf, -0x1de7, 0x1df4, +0x1dd3, 0x1df4, 0x1e00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, @@ -4975,10 +5295,10 @@ CR_Alnum[] = { 760, 0xa67f, 0xa6ef, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa805, 0xa807, 0xa827, 0xa840, 0xa873, @@ -5072,6 +5392,7 @@ CR_Alnum[] = { 760, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -5110,9 +5431,14 @@ CR_Alnum[] = { 760, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d69, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10efc, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, @@ -5122,7 +5448,7 @@ CR_Alnum[] = { 760, 0x11000, 0x11045, 0x11066, 0x1106f, 0x11071, 0x11075, -0x11082, 0x110b8, +0x11080, 0x110b8, 0x110c2, 0x110c2, 0x110d0, 0x110e8, 0x110f0, 0x110f9, @@ -5138,7 +5464,7 @@ CR_Alnum[] = { 760, 0x11200, 0x11211, 0x11213, 0x11234, 0x11237, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -5159,6 +5485,17 @@ CR_Alnum[] = { 760, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d, 0x11363, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, +0x113d1, 0x113d1, +0x113d3, 0x113d3, 0x11400, 0x11441, 0x11443, 0x11445, 0x11447, 0x1144a, @@ -5178,6 +5515,7 @@ CR_Alnum[] = { 760, 0x11680, 0x116b5, 0x116b8, 0x116b8, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172a, 0x11730, 0x11739, @@ -5203,6 +5541,8 @@ CR_Alnum[] = { 760, 0x11a50, 0x11a97, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c3e, @@ -5228,13 +5568,21 @@ CR_Alnum[] = { 760, 0x11d98, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, +0x11f50, 0x11f59, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x1612e, +0x16130, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -5246,6 +5594,8 @@ CR_Alnum[] = { 760, 0x16b50, 0x16b59, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -5255,12 +5605,14 @@ CR_Alnum[] = { 760, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -5268,6 +5620,7 @@ CR_Alnum[] = { 760, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9e, 0x1bc9e, +0x1ccf0, 0x1ccf9, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, @@ -5300,11 +5653,14 @@ CR_Alnum[] = { 760, 0x1d7c4, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e140, 0x1e149, @@ -5312,6 +5668,10 @@ CR_Alnum[] = { 760, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, 0x1e2f0, 0x1e2f9, +0x1e4d0, 0x1e4eb, +0x1e4f0, 0x1e4f9, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5fa, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -5359,12 +5719,14 @@ CR_Alnum[] = { 760, 0x1f170, 0x1f189, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Alnum */ /* PROPERTY: 'ASCII': POSIX [[:ASCII:]] */ @@ -5410,7 +5772,7 @@ CR_Any[] = { 1, /* PROPERTY: 'Arabic': Script */ static const OnigCodePoint -CR_Arabic[] = { 57, +CR_Arabic[] = { 59, 0x0600, 0x0604, 0x0606, 0x060b, 0x060d, 0x061a, @@ -5423,7 +5785,7 @@ CR_Arabic[] = { 57, 0x0750, 0x077f, 0x0870, 0x088e, 0x0890, 0x0891, -0x0898, 0x08e1, +0x0897, 0x08e1, 0x08e3, 0x08ff, 0xfb50, 0xfbc2, 0xfbd3, 0xfd3d, @@ -5434,6 +5796,8 @@ CR_Arabic[] = { 57, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0x10e60, 0x10e7e, +0x10ec2, 0x10ec4, +0x10efc, 0x10eff, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, @@ -5481,7 +5845,7 @@ CR_Armenian[] = { 4, /* PROPERTY: 'Assigned': - */ static const OnigCodePoint -CR_Assigned[] = { 698, +CR_Assigned[] = { 731, 0x0000, 0x0377, 0x037a, 0x037f, 0x0384, 0x038a, @@ -5505,7 +5869,7 @@ CR_Assigned[] = { 698, 0x0860, 0x086a, 0x0870, 0x088e, 0x0890, 0x0891, -0x0898, 0x0983, +0x0897, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, @@ -5603,7 +5967,7 @@ CR_Assigned[] = { 698, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -5633,7 +5997,7 @@ CR_Assigned[] = { 698, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -5697,11 +6061,10 @@ CR_Assigned[] = { 698, 0x1aa0, 0x1aad, 0x1ab0, 0x1ace, 0x1b00, 0x1b4c, -0x1b50, 0x1b7e, -0x1b80, 0x1bf3, +0x1b4e, 0x1bf3, 0x1bfc, 0x1c37, 0x1c3b, 0x1c49, -0x1c4d, 0x1c88, +0x1c4d, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cc7, 0x1cd0, 0x1cfa, @@ -5728,7 +6091,7 @@ CR_Assigned[] = { 698, 0x20a0, 0x20c0, 0x20d0, 0x20f0, 0x2100, 0x218b, -0x2190, 0x2426, +0x2190, 0x2429, 0x2440, 0x244a, 0x2460, 0x2b73, 0x2b76, 0x2b95, @@ -5751,22 +6114,21 @@ CR_Assigned[] = { 698, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x303f, +0x2ff0, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, -0x3190, 0x31e3, -0x31f0, 0x321e, +0x3190, 0x31e5, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, 0xa640, 0xa6f7, -0xa700, 0xa7ca, +0xa700, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa82c, 0xa830, 0xa839, 0xa840, 0xa877, @@ -5857,6 +6219,7 @@ CR_Assigned[] = { 698, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -5900,11 +6263,15 @@ CR_Assigned[] = { 698, 0x10cc0, 0x10cf2, 0x10cfa, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, 0x10e60, 0x10e7e, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10ec2, 0x10ec4, +0x10efc, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -5921,7 +6288,7 @@ CR_Assigned[] = { 698, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -5944,6 +6311,17 @@ CR_Assigned[] = { 698, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, 0x11400, 0x1145b, 0x1145d, 0x11461, 0x11480, 0x114c7, @@ -5955,6 +6333,7 @@ CR_Assigned[] = { 698, 0x11660, 0x1166c, 0x11680, 0x116b9, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11746, @@ -5974,6 +6353,9 @@ CR_Assigned[] = { 698, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -5995,6 +6377,9 @@ CR_Assigned[] = { 698, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -6002,9 +6387,10 @@ CR_Assigned[] = { 698, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -6017,6 +6403,7 @@ CR_Assigned[] = { 698, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d79, 0x16e40, 0x16e9a, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -6025,12 +6412,14 @@ CR_Assigned[] = { 698, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -6038,6 +6427,8 @@ CR_Assigned[] = { 698, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, 0x1cf50, 0x1cfc3, @@ -6045,6 +6436,7 @@ CR_Assigned[] = { 698, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -6072,11 +6464,14 @@ CR_Assigned[] = { 698, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -6084,6 +6479,9 @@ CR_Assigned[] = { 698, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -6142,10 +6540,10 @@ CR_Assigned[] = { 698, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -6153,28 +6551,27 @@ CR_Assigned[] = { 698, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, -0x1f8b0, 0x1f8b1, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, -0x1fb94, 0x1fbca, -0x1fbf0, 0x1fbf9, +0x1fb94, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -6193,7 +6590,7 @@ CR_Avestan[] = { 2, static const OnigCodePoint CR_Balinese[] = { 2, 0x1b00, 0x1b4c, -0x1b50, 0x1b7e, +0x1b4e, 0x1b7f, }; /* END of CR_Balinese */ /* PROPERTY: 'Bamum': Script */ @@ -6291,7 +6688,7 @@ CR_Buhid[] = { 1, /* PROPERTY: 'C': Major Category */ static const OnigCodePoint -CR_C[] = { 701, +CR_C[] = { 736, 0x0000, 0x001f, 0x007f, 0x009f, 0x00ad, 0x00ad, @@ -6318,7 +6715,7 @@ CR_C[] = { 701, 0x085c, 0x085d, 0x085f, 0x085f, 0x086b, 0x086f, -0x088f, 0x0897, +0x088f, 0x0896, 0x08e2, 0x08e2, 0x0984, 0x0984, 0x098d, 0x098e, @@ -6418,7 +6815,7 @@ CR_C[] = { 701, 0x0cdf, 0x0cdf, 0x0ce4, 0x0ce5, 0x0cf0, 0x0cf0, -0x0cf3, 0x0cff, +0x0cf4, 0x0cff, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d45, 0x0d45, @@ -6448,7 +6845,7 @@ CR_C[] = { 701, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7, 0x0ec7, -0x0ece, 0x0ecf, +0x0ecf, 0x0ecf, 0x0eda, 0x0edb, 0x0ee0, 0x0eff, 0x0f48, 0x0f48, @@ -6512,12 +6909,11 @@ CR_C[] = { 701, 0x1a9a, 0x1a9f, 0x1aae, 0x1aaf, 0x1acf, 0x1aff, -0x1b4d, 0x1b4f, -0x1b7f, 0x1b7f, +0x1b4d, 0x1b4d, 0x1bf4, 0x1bfb, 0x1c38, 0x1c3a, 0x1c4a, 0x1c4c, -0x1c89, 0x1c8f, +0x1c8b, 0x1c8f, 0x1cbb, 0x1cbc, 0x1cc8, 0x1ccf, 0x1cfb, 0x1cff, @@ -6546,7 +6942,7 @@ CR_C[] = { 701, 0x20c1, 0x20cf, 0x20f1, 0x20ff, 0x218c, 0x218f, -0x2427, 0x243f, +0x242a, 0x243f, 0x244b, 0x245f, 0x2b74, 0x2b75, 0x2b96, 0x2b96, @@ -6569,22 +6965,21 @@ CR_C[] = { 701, 0x2e9a, 0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, -0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x3130, 0x3130, 0x318f, 0x318f, -0x31e4, 0x31ef, +0x31e6, 0x31ee, 0x321f, 0x321f, 0xa48d, 0xa48f, 0xa4c7, 0xa4cf, 0xa62c, 0xa63f, 0xa6f8, 0xa6ff, -0xa7cb, 0xa7cf, +0xa7ce, 0xa7cf, 0xa7d2, 0xa7d2, 0xa7d4, 0xa7d4, -0xa7da, 0xa7f1, +0xa7dd, 0xa7f1, 0xa82d, 0xa82f, 0xa83a, 0xa83f, 0xa878, 0xa87f, @@ -6673,7 +7068,8 @@ CR_C[] = { 701, 0x105a2, 0x105a2, 0x105b2, 0x105b2, 0x105ba, 0x105ba, -0x105bd, 0x105ff, +0x105bd, 0x105bf, +0x105f4, 0x105ff, 0x10737, 0x1073f, 0x10756, 0x1075f, 0x10768, 0x1077f, @@ -6716,11 +7112,15 @@ CR_C[] = { 701, 0x10cb3, 0x10cbf, 0x10cf3, 0x10cf9, 0x10d28, 0x10d2f, -0x10d3a, 0x10e5f, +0x10d3a, 0x10d3f, +0x10d66, 0x10d68, +0x10d86, 0x10d8d, +0x10d90, 0x10e5f, 0x10e7f, 0x10e7f, 0x10eaa, 0x10eaa, 0x10eae, 0x10eaf, -0x10eb2, 0x10eff, +0x10eb2, 0x10ec1, +0x10ec5, 0x10efb, 0x10f28, 0x10f2f, 0x10f5a, 0x10f6f, 0x10f8a, 0x10faf, @@ -6738,7 +7138,7 @@ CR_C[] = { 701, 0x111e0, 0x111e0, 0x111f5, 0x111ff, 0x11212, 0x11212, -0x1123f, 0x1127f, +0x11242, 0x1127f, 0x11287, 0x11287, 0x11289, 0x11289, 0x1128e, 0x1128e, @@ -6760,7 +7160,18 @@ CR_C[] = { 701, 0x11358, 0x1135c, 0x11364, 0x11365, 0x1136d, 0x1136f, -0x11375, 0x113ff, +0x11375, 0x1137f, +0x1138a, 0x1138a, +0x1138c, 0x1138d, +0x1138f, 0x1138f, +0x113b6, 0x113b6, +0x113c1, 0x113c1, +0x113c3, 0x113c4, +0x113c6, 0x113c6, +0x113cb, 0x113cb, +0x113d6, 0x113d6, +0x113d9, 0x113e0, +0x113e3, 0x113ff, 0x1145c, 0x1145c, 0x11462, 0x1147f, 0x114c8, 0x114cf, @@ -6771,7 +7182,8 @@ CR_C[] = { 701, 0x1165a, 0x1165f, 0x1166d, 0x1167f, 0x116ba, 0x116bf, -0x116ca, 0x116ff, +0x116ca, 0x116cf, +0x116e4, 0x116ff, 0x1171b, 0x1171c, 0x1172c, 0x1172f, 0x11747, 0x117ff, @@ -6790,7 +7202,10 @@ CR_C[] = { 701, 0x119e5, 0x119ff, 0x11a48, 0x11a4f, 0x11aa3, 0x11aaf, -0x11af9, 0x11bff, +0x11af9, 0x11aff, +0x11b0a, 0x11bbf, +0x11be2, 0x11bef, +0x11bfa, 0x11bff, 0x11c09, 0x11c09, 0x11c37, 0x11c37, 0x11c46, 0x11c4f, @@ -6811,7 +7226,10 @@ CR_C[] = { 701, 0x11d92, 0x11d92, 0x11d99, 0x11d9f, 0x11daa, 0x11edf, -0x11ef9, 0x11faf, +0x11ef9, 0x11eff, +0x11f11, 0x11f11, +0x11f3b, 0x11f3d, +0x11f5b, 0x11faf, 0x11fb1, 0x11fbf, 0x11ff2, 0x11ffe, 0x1239a, 0x123ff, @@ -6819,8 +7237,11 @@ CR_C[] = { 701, 0x12475, 0x1247f, 0x12544, 0x12f8f, 0x12ff3, 0x12fff, -0x1342f, 0x143ff, -0x14647, 0x167ff, +0x13430, 0x1343f, +0x13456, 0x1345f, +0x143fb, 0x143ff, +0x14647, 0x160ff, +0x1613a, 0x167ff, 0x16a39, 0x16a3f, 0x16a5f, 0x16a5f, 0x16a6a, 0x16a6d, @@ -6832,7 +7253,8 @@ CR_C[] = { 701, 0x16b5a, 0x16b5a, 0x16b62, 0x16b62, 0x16b78, 0x16b7c, -0x16b90, 0x16e3f, +0x16b90, 0x16d3f, +0x16d7a, 0x16e3f, 0x16e9b, 0x16eff, 0x16f4b, 0x16f4e, 0x16f88, 0x16f8e, @@ -6840,20 +7262,24 @@ CR_C[] = { 701, 0x16fe5, 0x16fef, 0x16ff2, 0x16fff, 0x187f8, 0x187ff, -0x18cd6, 0x18cff, +0x18cd6, 0x18cfe, 0x18d09, 0x1afef, 0x1aff4, 0x1aff4, 0x1affc, 0x1affc, 0x1afff, 0x1afff, -0x1b123, 0x1b14f, -0x1b153, 0x1b163, +0x1b123, 0x1b131, +0x1b133, 0x1b14f, +0x1b153, 0x1b154, +0x1b156, 0x1b163, 0x1b168, 0x1b16f, 0x1b2fc, 0x1bbff, 0x1bc6b, 0x1bc6f, 0x1bc7d, 0x1bc7f, 0x1bc89, 0x1bc8f, 0x1bc9a, 0x1bc9b, -0x1bca0, 0x1ceff, +0x1bca0, 0x1cbff, +0x1ccfa, 0x1ccff, +0x1ceb4, 0x1ceff, 0x1cf2e, 0x1cf2f, 0x1cf47, 0x1cf4f, 0x1cfc4, 0x1cfff, @@ -6861,7 +7287,8 @@ CR_C[] = { 701, 0x1d127, 0x1d128, 0x1d173, 0x1d17a, 0x1d1eb, 0x1d1ff, -0x1d246, 0x1d2df, +0x1d246, 0x1d2bf, +0x1d2d4, 0x1d2df, 0x1d2f4, 0x1d2ff, 0x1d357, 0x1d35f, 0x1d379, 0x1d3ff, @@ -6888,19 +7315,25 @@ CR_C[] = { 701, 0x1da8c, 0x1da9a, 0x1daa0, 0x1daa0, 0x1dab0, 0x1deff, -0x1df1f, 0x1dfff, +0x1df1f, 0x1df24, +0x1df2b, 0x1dfff, 0x1e007, 0x1e007, 0x1e019, 0x1e01a, 0x1e022, 0x1e022, 0x1e025, 0x1e025, -0x1e02b, 0x1e0ff, +0x1e02b, 0x1e02f, +0x1e06e, 0x1e08e, +0x1e090, 0x1e0ff, 0x1e12d, 0x1e12f, 0x1e13e, 0x1e13f, 0x1e14a, 0x1e14d, 0x1e150, 0x1e28f, 0x1e2af, 0x1e2bf, 0x1e2fa, 0x1e2fe, -0x1e300, 0x1e7df, +0x1e300, 0x1e4cf, +0x1e4fa, 0x1e5cf, +0x1e5fb, 0x1e5fe, +0x1e600, 0x1e7df, 0x1e7e7, 0x1e7e7, 0x1e7ec, 0x1e7ec, 0x1e7ef, 0x1e7ef, @@ -6958,11 +7391,11 @@ CR_C[] = { 701, 0x1f249, 0x1f24f, 0x1f252, 0x1f25f, 0x1f266, 0x1f2ff, -0x1f6d8, 0x1f6dc, +0x1f6d8, 0x1f6db, 0x1f6ed, 0x1f6ef, 0x1f6fd, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d9, 0x1f7df, +0x1f777, 0x1f77a, +0x1f7da, 0x1f7df, 0x1f7ec, 0x1f7ef, 0x1f7f1, 0x1f7ff, 0x1f80c, 0x1f80f, @@ -6970,28 +7403,27 @@ CR_C[] = { 701, 0x1f85a, 0x1f85f, 0x1f888, 0x1f88f, 0x1f8ae, 0x1f8af, -0x1f8b2, 0x1f8ff, +0x1f8bc, 0x1f8bf, +0x1f8c2, 0x1f8ff, 0x1fa54, 0x1fa5f, 0x1fa6e, 0x1fa6f, -0x1fa75, 0x1fa77, 0x1fa7d, 0x1fa7f, -0x1fa87, 0x1fa8f, -0x1faad, 0x1faaf, -0x1fabb, 0x1fabf, -0x1fac6, 0x1facf, -0x1fada, 0x1fadf, -0x1fae8, 0x1faef, -0x1faf7, 0x1faff, +0x1fa8a, 0x1fa8e, +0x1fac7, 0x1facd, +0x1fadd, 0x1fade, +0x1faea, 0x1faef, +0x1faf9, 0x1faff, 0x1fb93, 0x1fb93, -0x1fbcb, 0x1fbef, 0x1fbfa, 0x1ffff, 0x2a6e0, 0x2a6ff, -0x2b739, 0x2b73f, +0x2b73a, 0x2b73f, 0x2b81e, 0x2b81f, 0x2cea2, 0x2ceaf, -0x2ebe1, 0x2f7ff, +0x2ebe1, 0x2ebef, +0x2ee5e, 0x2f7ff, 0x2fa1e, 0x2ffff, -0x3134b, 0xe00ff, +0x3134b, 0x3134f, +0x323b0, 0xe00ff, 0xe01f0, 0x10ffff, }; /* END of CR_C */ @@ -7011,7 +7443,7 @@ CR_Carian[] = { 1, /* PROPERTY: 'Case_Ignorable': Derived Property */ static const OnigCodePoint -CR_Case_Ignorable[] = { 427, +CR_Case_Ignorable[] = { 452, 0x0027, 0x0027, 0x002e, 0x002e, 0x003a, 0x003a, @@ -7056,7 +7488,7 @@ CR_Case_Ignorable[] = { 427, 0x0859, 0x085b, 0x0888, 0x0888, 0x0890, 0x0891, -0x0898, 0x089f, +0x0897, 0x089f, 0x08c9, 0x0902, 0x093a, 0x093a, 0x093c, 0x093c, @@ -7125,7 +7557,7 @@ CR_Case_Ignorable[] = { 427, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, @@ -7313,7 +7745,11 @@ CR_Case_Ignorable[] = { 427, 0x10a3f, 0x10a3f, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, +0x10d4e, 0x10d4e, +0x10d69, 0x10d6d, +0x10d6f, 0x10d6f, 0x10eab, 0x10eac, +0x10efc, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11001, 0x11001, @@ -7338,6 +7774,7 @@ CR_Case_Ignorable[] = { 427, 0x11234, 0x11234, 0x11236, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112df, 0x112e3, 0x112ea, 0x11300, 0x11301, @@ -7345,6 +7782,11 @@ CR_Case_Ignorable[] = { 427, 0x11340, 0x11340, 0x11366, 0x1136c, 0x11370, 0x11374, +0x113bb, 0x113c0, +0x113ce, 0x113ce, +0x113d0, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, 0x11438, 0x1143f, 0x11442, 0x11444, 0x11446, 0x11446, @@ -7364,7 +7806,8 @@ CR_Case_Ignorable[] = { 427, 0x116ad, 0x116ad, 0x116b0, 0x116b5, 0x116b7, 0x116b7, -0x1171d, 0x1171f, +0x1171d, 0x1171d, +0x1171f, 0x1171f, 0x11722, 0x11725, 0x11727, 0x1172b, 0x1182f, 0x11837, @@ -7399,10 +7842,20 @@ CR_Case_Ignorable[] = { 427, 0x11d95, 0x11d95, 0x11d97, 0x11d97, 0x11ef3, 0x11ef4, -0x13430, 0x13438, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f40, +0x11f42, 0x11f42, +0x11f5a, 0x11f5a, +0x13430, 0x13440, +0x13447, 0x13455, +0x1611e, 0x16129, +0x1612d, 0x1612f, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16b40, 0x16b43, +0x16d40, 0x16d42, +0x16d6b, 0x16d6c, 0x16f4f, 0x16f4f, 0x16f8f, 0x16f9f, 0x16fe0, 0x16fe1, @@ -7430,9 +7883,13 @@ CR_Case_Ignorable[] = { 427, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e130, 0x1e13d, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, +0x1e4eb, 0x1e4ef, +0x1e5ee, 0x1e5ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94b, 0x1f3fb, 0x1f3ff, @@ -7443,7 +7900,7 @@ CR_Case_Ignorable[] = { 427, /* PROPERTY: 'Cased': Derived Property */ static const OnigCodePoint -CR_Cased[] = { 155, +CR_Cased[] = { 159, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -7475,10 +7932,10 @@ CR_Cased[] = { 155, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10fa, -0x10fd, 0x10ff, +0x10fc, 0x10ff, 0x13a0, 0x13f5, 0x13f8, 0x13fd, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1d00, 0x1dbf, @@ -7531,14 +7988,14 @@ CR_Cased[] = { 155, 0xa680, 0xa69d, 0xa722, 0xa787, 0xa78b, 0xa78e, -0xa790, 0xa7ca, +0xa790, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, -0xa7f5, 0xa7f6, +0xa7d5, 0xa7dc, +0xa7f2, 0xa7f6, 0xa7f8, 0xa7fa, 0xab30, 0xab5a, -0xab5c, 0xab68, +0xab5c, 0xab69, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, @@ -7561,6 +8018,8 @@ CR_Cased[] = { 155, 0x107b2, 0x107ba, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, +0x10d50, 0x10d65, +0x10d70, 0x10d85, 0x118a0, 0x118df, 0x16e40, 0x16e7f, 0x1d400, 0x1d454, @@ -7595,6 +8054,8 @@ CR_Cased[] = { 155, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e900, 0x1e943, 0x1f130, 0x1f149, 0x1f150, 0x1f169, @@ -7630,7 +8091,7 @@ CR_Cf[] = { 21, 0xfff9, 0xfffb, 0x110bd, 0x110bd, 0x110cd, 0x110cd, -0x13430, 0x13438, +0x13430, 0x1343f, 0x1bca0, 0x1bca3, 0x1d173, 0x1d17a, 0xe0001, 0xe0001, @@ -7655,7 +8116,7 @@ CR_Cham[] = { 4, /* PROPERTY: 'Changes_When_Casefolded': Derived Property */ static const OnigCodePoint -CR_Changes_When_Casefolded[] = { 622, +CR_Changes_When_Casefolded[] = { 626, 0x0041, 0x005a, 0x00b5, 0x00b5, 0x00c0, 0x00d6, @@ -7938,7 +8399,7 @@ CR_Changes_When_Casefolded[] = { 622, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x13f8, 0x13fd, -0x1c80, 0x1c88, +0x1c80, 0x1c89, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1e00, 0x1e00, @@ -8260,9 +8721,12 @@ CR_Changes_When_Casefolded[] = { 622, 0xa7c2, 0xa7c2, 0xa7c4, 0xa7c7, 0xa7c9, 0xa7c9, +0xa7cb, 0xa7cc, 0xa7d0, 0xa7d0, 0xa7d6, 0xa7d6, 0xa7d8, 0xa7d8, +0xa7da, 0xa7da, +0xa7dc, 0xa7dc, 0xa7f5, 0xa7f5, 0xab70, 0xabbf, 0xfb00, 0xfb06, @@ -8275,6 +8739,7 @@ CR_Changes_When_Casefolded[] = { 622, 0x1058c, 0x10592, 0x10594, 0x10595, 0x10c80, 0x10cb2, +0x10d50, 0x10d65, 0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1e900, 0x1e921, @@ -8290,8 +8755,7 @@ CR_Changes_When_Casemapped[] = { 131, 0x00d8, 0x00f6, 0x00f8, 0x0137, 0x0139, 0x018c, -0x018e, 0x019a, -0x019c, 0x01a9, +0x018e, 0x01a9, 0x01ac, 0x01b9, 0x01bc, 0x01bd, 0x01bf, 0x01bf, @@ -8302,8 +8766,7 @@ CR_Changes_When_Casemapped[] = { 131, 0x0259, 0x0259, 0x025b, 0x025c, 0x0260, 0x0261, -0x0263, 0x0263, -0x0265, 0x0266, +0x0263, 0x0266, 0x0268, 0x026c, 0x026f, 0x026f, 0x0271, 0x0272, @@ -8337,7 +8800,7 @@ CR_Changes_When_Casemapped[] = { 131, 0x10fd, 0x10ff, 0x13a0, 0x13f5, 0x13f8, 0x13fd, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1d79, 0x1d79, @@ -8388,9 +8851,9 @@ CR_Changes_When_Casemapped[] = { 131, 0xa78b, 0xa78d, 0xa790, 0xa794, 0xa796, 0xa7ae, -0xa7b0, 0xa7ca, +0xa7b0, 0xa7cd, 0xa7d0, 0xa7d1, -0xa7d6, 0xa7d9, +0xa7d6, 0xa7dc, 0xa7f5, 0xa7f6, 0xab53, 0xab53, 0xab70, 0xabbf, @@ -8411,6 +8874,8 @@ CR_Changes_When_Casemapped[] = { 131, 0x105bb, 0x105bc, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, +0x10d50, 0x10d65, +0x10d70, 0x10d85, 0x118a0, 0x118df, 0x16e40, 0x16e7f, 0x1e900, 0x1e943, @@ -8418,7 +8883,7 @@ CR_Changes_When_Casemapped[] = { 131, /* PROPERTY: 'Changes_When_Lowercased': Derived Property */ static const OnigCodePoint -CR_Changes_When_Lowercased[] = { 609, +CR_Changes_When_Lowercased[] = { 614, 0x0041, 0x005a, 0x00c0, 0x00d6, 0x00d8, 0x00de, @@ -8694,6 +9159,7 @@ CR_Changes_When_Lowercased[] = { 609, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x13a0, 0x13f5, +0x1c89, 0x1c89, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1e00, 0x1e00, @@ -9013,9 +9479,12 @@ CR_Changes_When_Lowercased[] = { 609, 0xa7c2, 0xa7c2, 0xa7c4, 0xa7c7, 0xa7c9, 0xa7c9, +0xa7cb, 0xa7cc, 0xa7d0, 0xa7d0, 0xa7d6, 0xa7d6, 0xa7d8, 0xa7d8, +0xa7da, 0xa7da, +0xa7dc, 0xa7dc, 0xa7f5, 0xa7f5, 0xff21, 0xff3a, 0x10400, 0x10427, @@ -9025,6 +9494,7 @@ CR_Changes_When_Lowercased[] = { 609, 0x1058c, 0x10592, 0x10594, 0x10595, 0x10c80, 0x10cb2, +0x10d50, 0x10d65, 0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1e900, 0x1e921, @@ -9032,7 +9502,7 @@ CR_Changes_When_Lowercased[] = { 609, /* PROPERTY: 'Changes_When_Titlecased': Derived Property */ static const OnigCodePoint -CR_Changes_When_Titlecased[] = { 626, +CR_Changes_When_Titlecased[] = { 629, 0x0061, 0x007a, 0x00b5, 0x00b5, 0x00df, 0x00f6, @@ -9105,7 +9575,7 @@ CR_Changes_When_Titlecased[] = { 626, 0x018c, 0x018c, 0x0192, 0x0192, 0x0195, 0x0195, -0x0199, 0x019a, +0x0199, 0x019b, 0x019e, 0x019e, 0x01a1, 0x01a1, 0x01a3, 0x01a3, @@ -9182,8 +9652,7 @@ CR_Changes_When_Titlecased[] = { 626, 0x0259, 0x0259, 0x025b, 0x025c, 0x0260, 0x0261, -0x0263, 0x0263, -0x0265, 0x0266, +0x0263, 0x0266, 0x0268, 0x026c, 0x026f, 0x026f, 0x0271, 0x0272, @@ -9321,6 +9790,7 @@ CR_Changes_When_Titlecased[] = { 626, 0x0561, 0x0587, 0x13f8, 0x13fd, 0x1c80, 0x1c88, +0x1c8a, 0x1c8a, 0x1d79, 0x1d79, 0x1d7d, 0x1d7d, 0x1d8e, 0x1d8e, @@ -9640,9 +10110,11 @@ CR_Changes_When_Titlecased[] = { 626, 0xa7c3, 0xa7c3, 0xa7c8, 0xa7c8, 0xa7ca, 0xa7ca, +0xa7cd, 0xa7cd, 0xa7d1, 0xa7d1, 0xa7d7, 0xa7d7, 0xa7d9, 0xa7d9, +0xa7db, 0xa7db, 0xa7f6, 0xa7f6, 0xab53, 0xab53, 0xab70, 0xabbf, @@ -9656,6 +10128,7 @@ CR_Changes_When_Titlecased[] = { 626, 0x105b3, 0x105b9, 0x105bb, 0x105bc, 0x10cc0, 0x10cf2, +0x10d70, 0x10d85, 0x118c0, 0x118df, 0x16e60, 0x16e7f, 0x1e922, 0x1e943, @@ -9663,7 +10136,7 @@ CR_Changes_When_Titlecased[] = { 626, /* PROPERTY: 'Changes_When_Uppercased': Derived Property */ static const OnigCodePoint -CR_Changes_When_Uppercased[] = { 627, +CR_Changes_When_Uppercased[] = { 630, 0x0061, 0x007a, 0x00b5, 0x00b5, 0x00df, 0x00f6, @@ -9736,7 +10209,7 @@ CR_Changes_When_Uppercased[] = { 627, 0x018c, 0x018c, 0x0192, 0x0192, 0x0195, 0x0195, -0x0199, 0x019a, +0x0199, 0x019b, 0x019e, 0x019e, 0x01a1, 0x01a1, 0x01a3, 0x01a3, @@ -9812,8 +10285,7 @@ CR_Changes_When_Uppercased[] = { 627, 0x0259, 0x0259, 0x025b, 0x025c, 0x0260, 0x0261, -0x0263, 0x0263, -0x0265, 0x0266, +0x0263, 0x0266, 0x0268, 0x026c, 0x026f, 0x026f, 0x0271, 0x0272, @@ -9953,6 +10425,7 @@ CR_Changes_When_Uppercased[] = { 627, 0x10fd, 0x10ff, 0x13f8, 0x13fd, 0x1c80, 0x1c88, +0x1c8a, 0x1c8a, 0x1d79, 0x1d79, 0x1d7d, 0x1d7d, 0x1d8e, 0x1d8e, @@ -10272,9 +10745,11 @@ CR_Changes_When_Uppercased[] = { 627, 0xa7c3, 0xa7c3, 0xa7c8, 0xa7c8, 0xa7ca, 0xa7ca, +0xa7cd, 0xa7cd, 0xa7d1, 0xa7d1, 0xa7d7, 0xa7d7, 0xa7d9, 0xa7d9, +0xa7db, 0xa7db, 0xa7f6, 0xa7f6, 0xab53, 0xab53, 0xab70, 0xabbf, @@ -10288,6 +10763,7 @@ CR_Changes_When_Uppercased[] = { 627, 0x105b3, 0x105b9, 0x105bb, 0x105bc, 0x10cc0, 0x10cf2, +0x10d70, 0x10d85, 0x118c0, 0x118df, 0x16e60, 0x16e7f, 0x1e922, 0x1e943, @@ -10309,7 +10785,7 @@ CR_Chorasmian[] = { 1, /* PROPERTY: 'Cn': General Category */ static const OnigCodePoint -CR_Cn[] = { 698, +CR_Cn[] = { 731, 0x0378, 0x0379, 0x0380, 0x0383, 0x038b, 0x038b, @@ -10332,7 +10808,7 @@ CR_Cn[] = { 698, 0x085f, 0x085f, 0x086b, 0x086f, 0x088f, 0x088f, -0x0892, 0x0897, +0x0892, 0x0896, 0x0984, 0x0984, 0x098d, 0x098e, 0x0991, 0x0992, @@ -10431,7 +10907,7 @@ CR_Cn[] = { 698, 0x0cdf, 0x0cdf, 0x0ce4, 0x0ce5, 0x0cf0, 0x0cf0, -0x0cf3, 0x0cff, +0x0cf4, 0x0cff, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d45, 0x0d45, @@ -10461,7 +10937,7 @@ CR_Cn[] = { 698, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7, 0x0ec7, -0x0ece, 0x0ecf, +0x0ecf, 0x0ecf, 0x0eda, 0x0edb, 0x0ee0, 0x0eff, 0x0f48, 0x0f48, @@ -10524,12 +11000,11 @@ CR_Cn[] = { 698, 0x1a9a, 0x1a9f, 0x1aae, 0x1aaf, 0x1acf, 0x1aff, -0x1b4d, 0x1b4f, -0x1b7f, 0x1b7f, +0x1b4d, 0x1b4d, 0x1bf4, 0x1bfb, 0x1c38, 0x1c3a, 0x1c4a, 0x1c4c, -0x1c89, 0x1c8f, +0x1c8b, 0x1c8f, 0x1cbb, 0x1cbc, 0x1cc8, 0x1ccf, 0x1cfb, 0x1cff, @@ -10556,7 +11031,7 @@ CR_Cn[] = { 698, 0x20c1, 0x20cf, 0x20f1, 0x20ff, 0x218c, 0x218f, -0x2427, 0x243f, +0x242a, 0x243f, 0x244b, 0x245f, 0x2b74, 0x2b75, 0x2b96, 0x2b96, @@ -10579,22 +11054,21 @@ CR_Cn[] = { 698, 0x2e9a, 0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, -0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x3130, 0x3130, 0x318f, 0x318f, -0x31e4, 0x31ef, +0x31e6, 0x31ee, 0x321f, 0x321f, 0xa48d, 0xa48f, 0xa4c7, 0xa4cf, 0xa62c, 0xa63f, 0xa6f8, 0xa6ff, -0xa7cb, 0xa7cf, +0xa7ce, 0xa7cf, 0xa7d2, 0xa7d2, 0xa7d4, 0xa7d4, -0xa7da, 0xa7f1, +0xa7dd, 0xa7f1, 0xa82d, 0xa82f, 0xa83a, 0xa83f, 0xa878, 0xa87f, @@ -10684,7 +11158,8 @@ CR_Cn[] = { 698, 0x105a2, 0x105a2, 0x105b2, 0x105b2, 0x105ba, 0x105ba, -0x105bd, 0x105ff, +0x105bd, 0x105bf, +0x105f4, 0x105ff, 0x10737, 0x1073f, 0x10756, 0x1075f, 0x10768, 0x1077f, @@ -10727,11 +11202,15 @@ CR_Cn[] = { 698, 0x10cb3, 0x10cbf, 0x10cf3, 0x10cf9, 0x10d28, 0x10d2f, -0x10d3a, 0x10e5f, +0x10d3a, 0x10d3f, +0x10d66, 0x10d68, +0x10d86, 0x10d8d, +0x10d90, 0x10e5f, 0x10e7f, 0x10e7f, 0x10eaa, 0x10eaa, 0x10eae, 0x10eaf, -0x10eb2, 0x10eff, +0x10eb2, 0x10ec1, +0x10ec5, 0x10efb, 0x10f28, 0x10f2f, 0x10f5a, 0x10f6f, 0x10f8a, 0x10faf, @@ -10749,7 +11228,7 @@ CR_Cn[] = { 698, 0x111e0, 0x111e0, 0x111f5, 0x111ff, 0x11212, 0x11212, -0x1123f, 0x1127f, +0x11242, 0x1127f, 0x11287, 0x11287, 0x11289, 0x11289, 0x1128e, 0x1128e, @@ -10771,7 +11250,18 @@ CR_Cn[] = { 698, 0x11358, 0x1135c, 0x11364, 0x11365, 0x1136d, 0x1136f, -0x11375, 0x113ff, +0x11375, 0x1137f, +0x1138a, 0x1138a, +0x1138c, 0x1138d, +0x1138f, 0x1138f, +0x113b6, 0x113b6, +0x113c1, 0x113c1, +0x113c3, 0x113c4, +0x113c6, 0x113c6, +0x113cb, 0x113cb, +0x113d6, 0x113d6, +0x113d9, 0x113e0, +0x113e3, 0x113ff, 0x1145c, 0x1145c, 0x11462, 0x1147f, 0x114c8, 0x114cf, @@ -10782,7 +11272,8 @@ CR_Cn[] = { 698, 0x1165a, 0x1165f, 0x1166d, 0x1167f, 0x116ba, 0x116bf, -0x116ca, 0x116ff, +0x116ca, 0x116cf, +0x116e4, 0x116ff, 0x1171b, 0x1171c, 0x1172c, 0x1172f, 0x11747, 0x117ff, @@ -10801,7 +11292,10 @@ CR_Cn[] = { 698, 0x119e5, 0x119ff, 0x11a48, 0x11a4f, 0x11aa3, 0x11aaf, -0x11af9, 0x11bff, +0x11af9, 0x11aff, +0x11b0a, 0x11bbf, +0x11be2, 0x11bef, +0x11bfa, 0x11bff, 0x11c09, 0x11c09, 0x11c37, 0x11c37, 0x11c46, 0x11c4f, @@ -10822,7 +11316,10 @@ CR_Cn[] = { 698, 0x11d92, 0x11d92, 0x11d99, 0x11d9f, 0x11daa, 0x11edf, -0x11ef9, 0x11faf, +0x11ef9, 0x11eff, +0x11f11, 0x11f11, +0x11f3b, 0x11f3d, +0x11f5b, 0x11faf, 0x11fb1, 0x11fbf, 0x11ff2, 0x11ffe, 0x1239a, 0x123ff, @@ -10830,9 +11327,10 @@ CR_Cn[] = { 698, 0x12475, 0x1247f, 0x12544, 0x12f8f, 0x12ff3, 0x12fff, -0x1342f, 0x1342f, -0x13439, 0x143ff, -0x14647, 0x167ff, +0x13456, 0x1345f, +0x143fb, 0x143ff, +0x14647, 0x160ff, +0x1613a, 0x167ff, 0x16a39, 0x16a3f, 0x16a5f, 0x16a5f, 0x16a6a, 0x16a6d, @@ -10844,7 +11342,8 @@ CR_Cn[] = { 698, 0x16b5a, 0x16b5a, 0x16b62, 0x16b62, 0x16b78, 0x16b7c, -0x16b90, 0x16e3f, +0x16b90, 0x16d3f, +0x16d7a, 0x16e3f, 0x16e9b, 0x16eff, 0x16f4b, 0x16f4e, 0x16f88, 0x16f8e, @@ -10852,27 +11351,32 @@ CR_Cn[] = { 698, 0x16fe5, 0x16fef, 0x16ff2, 0x16fff, 0x187f8, 0x187ff, -0x18cd6, 0x18cff, +0x18cd6, 0x18cfe, 0x18d09, 0x1afef, 0x1aff4, 0x1aff4, 0x1affc, 0x1affc, 0x1afff, 0x1afff, -0x1b123, 0x1b14f, -0x1b153, 0x1b163, +0x1b123, 0x1b131, +0x1b133, 0x1b14f, +0x1b153, 0x1b154, +0x1b156, 0x1b163, 0x1b168, 0x1b16f, 0x1b2fc, 0x1bbff, 0x1bc6b, 0x1bc6f, 0x1bc7d, 0x1bc7f, 0x1bc89, 0x1bc8f, 0x1bc9a, 0x1bc9b, -0x1bca4, 0x1ceff, +0x1bca4, 0x1cbff, +0x1ccfa, 0x1ccff, +0x1ceb4, 0x1ceff, 0x1cf2e, 0x1cf2f, 0x1cf47, 0x1cf4f, 0x1cfc4, 0x1cfff, 0x1d0f6, 0x1d0ff, 0x1d127, 0x1d128, 0x1d1eb, 0x1d1ff, -0x1d246, 0x1d2df, +0x1d246, 0x1d2bf, +0x1d2d4, 0x1d2df, 0x1d2f4, 0x1d2ff, 0x1d357, 0x1d35f, 0x1d379, 0x1d3ff, @@ -10899,19 +11403,25 @@ CR_Cn[] = { 698, 0x1da8c, 0x1da9a, 0x1daa0, 0x1daa0, 0x1dab0, 0x1deff, -0x1df1f, 0x1dfff, +0x1df1f, 0x1df24, +0x1df2b, 0x1dfff, 0x1e007, 0x1e007, 0x1e019, 0x1e01a, 0x1e022, 0x1e022, 0x1e025, 0x1e025, -0x1e02b, 0x1e0ff, +0x1e02b, 0x1e02f, +0x1e06e, 0x1e08e, +0x1e090, 0x1e0ff, 0x1e12d, 0x1e12f, 0x1e13e, 0x1e13f, 0x1e14a, 0x1e14d, 0x1e150, 0x1e28f, 0x1e2af, 0x1e2bf, 0x1e2fa, 0x1e2fe, -0x1e300, 0x1e7df, +0x1e300, 0x1e4cf, +0x1e4fa, 0x1e5cf, +0x1e5fb, 0x1e5fe, +0x1e600, 0x1e7df, 0x1e7e7, 0x1e7e7, 0x1e7ec, 0x1e7ec, 0x1e7ef, 0x1e7ef, @@ -10969,11 +11479,11 @@ CR_Cn[] = { 698, 0x1f249, 0x1f24f, 0x1f252, 0x1f25f, 0x1f266, 0x1f2ff, -0x1f6d8, 0x1f6dc, +0x1f6d8, 0x1f6db, 0x1f6ed, 0x1f6ef, 0x1f6fd, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d9, 0x1f7df, +0x1f777, 0x1f77a, +0x1f7da, 0x1f7df, 0x1f7ec, 0x1f7ef, 0x1f7f1, 0x1f7ff, 0x1f80c, 0x1f80f, @@ -10981,28 +11491,27 @@ CR_Cn[] = { 698, 0x1f85a, 0x1f85f, 0x1f888, 0x1f88f, 0x1f8ae, 0x1f8af, -0x1f8b2, 0x1f8ff, +0x1f8bc, 0x1f8bf, +0x1f8c2, 0x1f8ff, 0x1fa54, 0x1fa5f, 0x1fa6e, 0x1fa6f, -0x1fa75, 0x1fa77, 0x1fa7d, 0x1fa7f, -0x1fa87, 0x1fa8f, -0x1faad, 0x1faaf, -0x1fabb, 0x1fabf, -0x1fac6, 0x1facf, -0x1fada, 0x1fadf, -0x1fae8, 0x1faef, -0x1faf7, 0x1faff, +0x1fa8a, 0x1fa8e, +0x1fac7, 0x1facd, +0x1fadd, 0x1fade, +0x1faea, 0x1faef, +0x1faf9, 0x1faff, 0x1fb93, 0x1fb93, -0x1fbcb, 0x1fbef, 0x1fbfa, 0x1ffff, 0x2a6e0, 0x2a6ff, -0x2b739, 0x2b73f, +0x2b73a, 0x2b73f, 0x2b81e, 0x2b81f, 0x2cea2, 0x2ceaf, -0x2ebe1, 0x2f7ff, +0x2ebe1, 0x2ebef, +0x2ee5e, 0x2f7ff, 0x2fa1e, 0x2ffff, -0x3134b, 0xe0000, +0x3134b, 0x3134f, +0x323b0, 0xe0000, 0xe0002, 0xe001f, 0xe0080, 0xe00ff, 0xe01f0, 0xeffff, @@ -11068,15 +11577,14 @@ CR_Common[] = { 174, 0x2133, 0x214d, 0x214f, 0x215f, 0x2189, 0x218b, -0x2190, 0x2426, +0x2190, 0x2429, 0x2440, 0x244a, 0x2460, 0x27ff, 0x2900, 0x2b73, 0x2b76, 0x2b95, 0x2b97, 0x2bff, 0x2e00, 0x2e5d, -0x2ff0, 0x2ffb, -0x3000, 0x3004, +0x2ff0, 0x3004, 0x3006, 0x3006, 0x3008, 0x3020, 0x3030, 0x3037, @@ -11085,7 +11593,8 @@ CR_Common[] = { 174, 0x30a0, 0x30a0, 0x30fb, 0x30fc, 0x3190, 0x319f, -0x31c0, 0x31e3, +0x31c0, 0x31e5, +0x31ef, 0x31ef, 0x3220, 0x325f, 0x327f, 0x32cf, 0x32ff, 0x32ff, @@ -11119,6 +11628,8 @@ CR_Common[] = { 174, 0x101d0, 0x101fc, 0x102e1, 0x102fb, 0x1bca0, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, 0x1cf50, 0x1cfc3, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, @@ -11127,6 +11638,7 @@ CR_Common[] = { 174, 0x1d183, 0x1d184, 0x1d18c, 0x1d1a9, 0x1d1ae, 0x1d1ea, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -11167,10 +11679,10 @@ CR_Common[] = { 174, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -11178,21 +11690,18 @@ CR_Common[] = { 174, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, -0x1f8b0, 0x1f8b1, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, -0x1fb94, 0x1fbca, -0x1fbf0, 0x1fbf9, +0x1fb94, 0x1fbf9, 0xe0001, 0xe0001, 0xe0020, 0xe007f, }; /* END of CR_Common */ @@ -11239,20 +11748,22 @@ CR_Cypro_Minoan[] = { 1, /* PROPERTY: 'Cyrillic': Script */ static const OnigCodePoint -CR_Cyrillic[] = { 8, +CR_Cyrillic[] = { 10, 0x0400, 0x0484, 0x0487, 0x052f, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1d2b, 0x1d2b, 0x1d78, 0x1d78, 0x2de0, 0x2dff, 0xa640, 0xa69f, 0xfe2e, 0xfe2f, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, }; /* END of CR_Cyrillic */ /* PROPERTY: 'Dash': Binary Property */ static const OnigCodePoint -CR_Dash[] = { 23, +CR_Dash[] = { 24, 0x002d, 0x002d, 0x058a, 0x058a, 0x05be, 0x05be, @@ -11275,6 +11786,7 @@ CR_Dash[] = { 23, 0xfe58, 0xfe58, 0xfe63, 0xfe63, 0xff0d, 0xff0d, +0x10d6e, 0x10d6e, 0x10ead, 0x10ead, }; /* END of CR_Dash */ @@ -11321,16 +11833,17 @@ CR_Deseret[] = { 1, /* PROPERTY: 'Devanagari': Script */ static const OnigCodePoint -CR_Devanagari[] = { 4, +CR_Devanagari[] = { 5, 0x0900, 0x0950, 0x0955, 0x0963, 0x0966, 0x097f, 0xa8e0, 0xa8ff, +0x11b00, 0x11b09, }; /* END of CR_Devanagari */ /* PROPERTY: 'Diacritic': Binary Property */ static const OnigCodePoint -CR_Diacritic[] = { 192, +CR_Diacritic[] = { 214, 0x005e, 0x005e, 0x0060, 0x0060, 0x00a8, 0x00a8, @@ -11384,6 +11897,7 @@ CR_Diacritic[] = { 192, 0x0d3b, 0x0d3c, 0x0d4d, 0x0d4d, 0x0dca, 0x0dca, +0x0e3a, 0x0e3a, 0x0e47, 0x0e4c, 0x0e4e, 0x0e4e, 0x0eba, 0x0eba, @@ -11405,9 +11919,11 @@ CR_Diacritic[] = { 192, 0x109a, 0x109b, 0x135d, 0x135f, 0x1714, 0x1715, +0x1734, 0x1734, 0x17c9, 0x17d3, 0x17dd, 0x17dd, 0x1939, 0x193b, +0x1a60, 0x1a60, 0x1a75, 0x1a7c, 0x1a7f, 0x1a7f, 0x1ab0, 0x1abe, @@ -11416,6 +11932,8 @@ CR_Diacritic[] = { 192, 0x1b44, 0x1b44, 0x1b6b, 0x1b73, 0x1baa, 0x1bab, +0x1be6, 0x1be6, +0x1bf2, 0x1bf3, 0x1c36, 0x1c37, 0x1c78, 0x1c7d, 0x1cd0, 0x1ce8, @@ -11444,6 +11962,8 @@ CR_Diacritic[] = { 192, 0xa700, 0xa721, 0xa788, 0xa78a, 0xa7f8, 0xa7f9, +0xa806, 0xa806, +0xa82c, 0xa82c, 0xa8c4, 0xa8c4, 0xa8e0, 0xa8f1, 0xa92b, 0xa92e, @@ -11468,8 +11988,13 @@ CR_Diacritic[] = { 192, 0x10780, 0x10785, 0x10787, 0x107b0, 0x107b2, 0x107ba, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, 0x10ae5, 0x10ae6, 0x10d22, 0x10d27, +0x10d4e, 0x10d4e, +0x10d69, 0x10d6d, +0x10efd, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11046, 0x11046, @@ -11481,10 +12006,13 @@ CR_Diacritic[] = { 192, 0x111ca, 0x111cc, 0x11235, 0x11236, 0x112e9, 0x112ea, -0x1133c, 0x1133c, +0x1133b, 0x1133c, 0x1134d, 0x1134d, 0x11366, 0x1136c, 0x11370, 0x11374, +0x113ce, 0x113d0, +0x113d2, 0x113d3, +0x113e1, 0x113e2, 0x11442, 0x11442, 0x11446, 0x11446, 0x114c2, 0x114c3, @@ -11503,8 +12031,13 @@ CR_Diacritic[] = { 192, 0x11d42, 0x11d42, 0x11d44, 0x11d45, 0x11d97, 0x11d97, +0x11f41, 0x11f42, +0x11f5a, 0x11f5a, +0x13447, 0x13455, +0x1612f, 0x1612f, 0x16af0, 0x16af4, 0x16b30, 0x16b36, +0x16d6b, 0x16d6c, 0x16f8f, 0x16f9f, 0x16ff0, 0x16ff1, 0x1aff0, 0x1aff3, @@ -11517,9 +12050,11 @@ CR_Diacritic[] = { 192, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, +0x1e030, 0x1e06d, 0x1e130, 0x1e136, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, +0x1e5ee, 0x1e5ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e946, 0x1e948, 0x1e94a, @@ -11557,8 +12092,8 @@ CR_Duployan[] = { 5, /* PROPERTY: 'Egyptian_Hieroglyphs': Script */ static const OnigCodePoint CR_Egyptian_Hieroglyphs[] = { 2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, +0x13460, 0x143fa, }; /* END of CR_Egyptian_Hieroglyphs */ /* PROPERTY: 'Elbasan': Script */ @@ -11575,7 +12110,7 @@ CR_Elymaic[] = { 1, /* PROPERTY: 'Emoji': Emoji Property */ static const OnigCodePoint -CR_Emoji[] = { 153, +CR_Emoji[] = { 150, 0x0023, 0x0023, 0x002a, 0x002a, 0x0030, 0x0039, @@ -11710,7 +12245,7 @@ CR_Emoji[] = { 153, 0x1f680, 0x1f6c5, 0x1f6cb, 0x1f6d2, 0x1f6d5, 0x1f6d7, -0x1f6dd, 0x1f6e5, +0x1f6dc, 0x1f6e5, 0x1f6e9, 0x1f6e9, 0x1f6eb, 0x1f6ec, 0x1f6f0, 0x1f6f0, @@ -11720,15 +12255,12 @@ CR_Emoji[] = { 153, 0x1f90c, 0x1f93a, 0x1f93c, 0x1f945, 0x1f947, 0x1f9ff, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, }; /* END of CR_Emoji */ /* PROPERTY: 'Emoji_Component': Emoji Property */ @@ -11794,12 +12326,12 @@ CR_Emoji_Modifier_Base[] = { 40, 0x1f9cd, 0x1f9cf, 0x1f9d1, 0x1f9dd, 0x1fac3, 0x1fac5, -0x1faf0, 0x1faf6, +0x1faf0, 0x1faf8, }; /* END of CR_Emoji_Modifier_Base */ /* PROPERTY: 'Emoji_Presentation': Emoji Property */ static const OnigCodePoint -CR_Emoji_Presentation[] = { 83, +CR_Emoji_Presentation[] = { 80, 0x231a, 0x231b, 0x23e9, 0x23ec, 0x23f0, 0x23f0, @@ -11866,7 +12398,7 @@ CR_Emoji_Presentation[] = { 83, 0x1f6cc, 0x1f6cc, 0x1f6d0, 0x1f6d2, 0x1f6d5, 0x1f6d7, -0x1f6dd, 0x1f6df, +0x1f6dc, 0x1f6df, 0x1f6eb, 0x1f6ec, 0x1f6f4, 0x1f6fc, 0x1f7e0, 0x1f7eb, @@ -11874,15 +12406,12 @@ CR_Emoji_Presentation[] = { 83, 0x1f90c, 0x1f93a, 0x1f93c, 0x1f945, 0x1f947, 0x1f9ff, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, }; /* END of CR_Emoji_Presentation */ /* PROPERTY: 'Ethiopic': Script */ @@ -12011,11 +12540,13 @@ CR_Extended_Pictographic[] = { 78, /* PROPERTY: 'Extender': Binary Property */ static const OnigCodePoint -CR_Extender[] = { 33, +CR_Extender[] = { 41, 0x00b7, 0x00b7, 0x02d0, 0x02d1, 0x0640, 0x0640, 0x07fa, 0x07fa, +0x0a71, 0x0a71, +0x0afb, 0x0afb, 0x0b55, 0x0b55, 0x0e46, 0x0e46, 0x0ec6, 0x0ec6, @@ -12037,16 +12568,30 @@ CR_Extender[] = { 33, 0xaaf3, 0xaaf4, 0xff70, 0xff70, 0x10781, 0x10782, +0x10d4e, 0x10d4e, +0x10d6a, 0x10d6a, +0x10d6f, 0x10d6f, +0x11237, 0x11237, 0x1135d, 0x1135d, +0x113d2, 0x113d3, 0x115c6, 0x115c8, 0x11a98, 0x11a98, 0x16b42, 0x16b43, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x1e13c, 0x1e13d, +0x1e5ef, 0x1e5ef, 0x1e944, 0x1e946, }; /* END of CR_Extender */ +/* PROPERTY: 'Garay': Script */ +static const OnigCodePoint +CR_Garay[] = { 3, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, +}; /* END of CR_Garay */ + /* PROPERTY: 'Georgian': Script */ static const OnigCodePoint CR_Georgian[] = { 10, @@ -12101,7 +12646,7 @@ CR_Grantha[] = { 15, /* PROPERTY: 'Grapheme_Base': Derived Property */ static const OnigCodePoint -CR_Grapheme_Base[] = { 861, +CR_Grapheme_Base[] = { 894, 0x0020, 0x007e, 0x00a0, 0x00ac, 0x00ae, 0x02ff, @@ -12244,14 +12789,12 @@ CR_Grapheme_Base[] = { 861, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbd, 0x0cbe, -0x0cc0, 0x0cc1, +0x0cc1, 0x0cc1, 0x0cc3, 0x0cc4, -0x0cc7, 0x0cc8, -0x0cca, 0x0ccb, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce1, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d02, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -12338,9 +12881,8 @@ CR_Grapheme_Base[] = { 861, 0x1400, 0x169c, 0x16a0, 0x16f8, 0x1700, 0x1711, -0x1715, 0x1715, 0x171f, 0x1731, -0x1734, 0x1736, +0x1735, 0x1736, 0x1740, 0x1751, 0x1760, 0x176c, 0x176e, 0x1770, @@ -12380,23 +12922,20 @@ CR_Grapheme_Base[] = { 861, 0x1a90, 0x1a99, 0x1aa0, 0x1aad, 0x1b04, 0x1b33, -0x1b3b, 0x1b3b, -0x1b3d, 0x1b41, -0x1b43, 0x1b4c, -0x1b50, 0x1b6a, -0x1b74, 0x1b7e, +0x1b3e, 0x1b41, +0x1b45, 0x1b4c, +0x1b4e, 0x1b6a, +0x1b74, 0x1b7f, 0x1b82, 0x1ba1, 0x1ba6, 0x1ba7, -0x1baa, 0x1baa, 0x1bae, 0x1be5, 0x1be7, 0x1be7, 0x1bea, 0x1bec, 0x1bee, 0x1bee, -0x1bf2, 0x1bf3, 0x1bfc, 0x1c2b, 0x1c34, 0x1c35, 0x1c3b, 0x1c49, -0x1c4d, 0x1c88, +0x1c4d, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cc7, 0x1cd3, 0x1cd3, @@ -12430,7 +12969,7 @@ CR_Grapheme_Base[] = { 861, 0x2090, 0x209c, 0x20a0, 0x20c0, 0x2100, 0x218b, -0x2190, 0x2426, +0x2190, 0x2429, 0x2440, 0x244a, 0x2460, 0x2b73, 0x2b76, 0x2b95, @@ -12454,15 +12993,14 @@ CR_Grapheme_Base[] = { 861, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x3029, +0x2ff0, 0x3029, 0x3030, 0x303f, 0x3041, 0x3096, 0x309b, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, -0x3190, 0x31e3, -0x31f0, 0x321e, +0x3190, 0x31e5, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, @@ -12471,10 +13009,10 @@ CR_Grapheme_Base[] = { 861, 0xa67e, 0xa69d, 0xa6a0, 0xa6ef, 0xa6f2, 0xa6f7, -0xa700, 0xa7ca, +0xa700, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa801, 0xa803, 0xa805, 0xa807, 0xa80a, @@ -12487,12 +13025,13 @@ CR_Grapheme_Base[] = { 861, 0xa8f2, 0xa8fe, 0xa900, 0xa925, 0xa92e, 0xa946, -0xa952, 0xa953, +0xa952, 0xa952, 0xa95f, 0xa97c, 0xa983, 0xa9b2, 0xa9b4, 0xa9b5, 0xa9ba, 0xa9bb, -0xa9be, 0xa9cd, +0xa9be, 0xa9bf, +0xa9c1, 0xa9cd, 0xa9cf, 0xa9d9, 0xa9de, 0xa9e4, 0xa9e6, 0xa9fe, @@ -12591,6 +13130,7 @@ CR_Grapheme_Base[] = { 861, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -12632,10 +13172,14 @@ CR_Grapheme_Base[] = { 861, 0x10cc0, 0x10cf2, 0x10cfa, 0x10d23, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d6e, 0x10d85, +0x10d8e, 0x10d8f, 0x10e60, 0x10e7e, 0x10e80, 0x10ea9, 0x10ead, 0x10ead, 0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, 0x10f00, 0x10f27, 0x10f30, 0x10f45, 0x10f51, 0x10f59, @@ -12661,15 +13205,16 @@ CR_Grapheme_Base[] = { 861, 0x11150, 0x11172, 0x11174, 0x11176, 0x11182, 0x111b5, -0x111bf, 0x111c8, +0x111bf, 0x111bf, +0x111c1, 0x111c8, 0x111cd, 0x111ce, 0x111d0, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, 0x11213, 0x1122e, 0x11232, 0x11233, -0x11235, 0x11235, 0x11238, 0x1123d, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -12689,9 +13234,20 @@ CR_Grapheme_Base[] = { 861, 0x1133f, 0x1133f, 0x11341, 0x11344, 0x11347, 0x11348, -0x1134b, 0x1134d, +0x1134b, 0x1134c, 0x11350, 0x11350, 0x1135d, 0x11363, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113b9, 0x113ba, +0x113ca, 0x113ca, +0x113cc, 0x113cd, +0x113d1, 0x113d1, +0x113d3, 0x113d5, +0x113d7, 0x113d8, 0x11400, 0x11437, 0x11440, 0x11441, 0x11445, 0x11445, @@ -12720,10 +13276,11 @@ CR_Grapheme_Base[] = { 861, 0x11680, 0x116aa, 0x116ac, 0x116ac, 0x116ae, 0x116af, -0x116b6, 0x116b6, 0x116b8, 0x116b9, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, +0x1171e, 0x1171e, 0x11720, 0x11721, 0x11726, 0x11726, 0x11730, 0x11746, @@ -12738,7 +13295,6 @@ CR_Grapheme_Base[] = { 861, 0x11918, 0x1192f, 0x11931, 0x11935, 0x11937, 0x11938, -0x1193d, 0x1193d, 0x1193f, 0x11942, 0x11944, 0x11946, 0x11950, 0x11959, @@ -12756,6 +13312,9 @@ CR_Grapheme_Base[] = { 861, 0x11a97, 0x11a97, 0x11a9a, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c2f, 0x11c3e, 0x11c3e, @@ -12779,6 +13338,10 @@ CR_Grapheme_Base[] = { 861, 0x11da0, 0x11da9, 0x11ee0, 0x11ef2, 0x11ef5, 0x11ef8, +0x11f02, 0x11f10, +0x11f12, 0x11f35, +0x11f3e, 0x11f3f, +0x11f43, 0x11f59, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -12786,8 +13349,13 @@ CR_Grapheme_Base[] = { 861, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x1611d, +0x1612a, 0x1612c, +0x16130, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -12801,20 +13369,22 @@ CR_Grapheme_Base[] = { 861, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d79, 0x16e40, 0x16e9a, 0x16f00, 0x16f4a, 0x16f50, 0x16f87, 0x16f93, 0x16f9f, 0x16fe0, 0x16fe3, -0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -12823,17 +13393,19 @@ CR_Grapheme_Base[] = { 861, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bc9c, 0x1bc9f, 0x1bc9f, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, 0x1cf50, 0x1cfc3, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, 0x1d129, 0x1d164, -0x1d166, 0x1d166, -0x1d16a, 0x1d16d, +0x1d16a, 0x1d16c, 0x1d183, 0x1d184, 0x1d18c, 0x1d1a9, 0x1d1ae, 0x1d1ea, 0x1d200, 0x1d241, 0x1d245, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -12863,6 +13435,8 @@ CR_Grapheme_Base[] = { 861, 0x1da76, 0x1da83, 0x1da85, 0x1da8b, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e140, 0x1e149, @@ -12871,6 +13445,11 @@ CR_Grapheme_Base[] = { 861, 0x1e2c0, 0x1e2eb, 0x1e2f0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4eb, +0x1e4f0, 0x1e4f9, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5fa, +0x1e5ff, 0x1e5ff, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -12930,10 +13509,10 @@ CR_Grapheme_Base[] = { 861, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -12941,33 +13520,32 @@ CR_Grapheme_Base[] = { 861, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, -0x1f8b0, 0x1f8b1, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, -0x1fb94, 0x1fbca, -0x1fbf0, 0x1fbf9, +0x1fb94, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Grapheme_Base */ /* PROPERTY: 'Grapheme_Extend': Derived Property */ static const OnigCodePoint -CR_Grapheme_Extend[] = { 353, +CR_Grapheme_Extend[] = { 375, 0x0300, 0x036f, 0x0483, 0x0489, 0x0591, 0x05bd, @@ -12992,7 +13570,7 @@ CR_Grapheme_Extend[] = { 353, 0x0825, 0x0827, 0x0829, 0x082d, 0x0859, 0x085b, -0x0898, 0x089f, +0x0897, 0x089f, 0x08ca, 0x08e1, 0x08e3, 0x0902, 0x093a, 0x093a, @@ -13046,10 +13624,10 @@ CR_Grapheme_Extend[] = { 353, 0x0c62, 0x0c63, 0x0c81, 0x0c81, 0x0cbc, 0x0cbc, -0x0cbf, 0x0cbf, +0x0cbf, 0x0cc0, 0x0cc2, 0x0cc2, -0x0cc6, 0x0cc6, -0x0ccc, 0x0ccd, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, 0x0cd5, 0x0cd6, 0x0ce2, 0x0ce3, 0x0d00, 0x0d01, @@ -13070,7 +13648,7 @@ CR_Grapheme_Extend[] = { 353, 0x0e47, 0x0e4e, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, @@ -13093,8 +13671,8 @@ CR_Grapheme_Extend[] = { 353, 0x108d, 0x108d, 0x109d, 0x109d, 0x135d, 0x135f, -0x1712, 0x1714, -0x1732, 0x1733, +0x1712, 0x1715, +0x1732, 0x1734, 0x1752, 0x1753, 0x1772, 0x1773, 0x17b4, 0x17b5, @@ -13121,18 +13699,16 @@ CR_Grapheme_Extend[] = { 353, 0x1a7f, 0x1a7f, 0x1ab0, 0x1ace, 0x1b00, 0x1b03, -0x1b34, 0x1b3a, -0x1b3c, 0x1b3c, -0x1b42, 0x1b42, +0x1b34, 0x1b3d, +0x1b42, 0x1b44, 0x1b6b, 0x1b73, 0x1b80, 0x1b81, 0x1ba2, 0x1ba5, -0x1ba8, 0x1ba9, -0x1bab, 0x1bad, +0x1ba8, 0x1bad, 0x1be6, 0x1be6, 0x1be8, 0x1be9, 0x1bed, 0x1bed, -0x1bef, 0x1bf1, +0x1bef, 0x1bf3, 0x1c2c, 0x1c33, 0x1c36, 0x1c37, 0x1cd0, 0x1cd2, @@ -13163,10 +13739,12 @@ CR_Grapheme_Extend[] = { 353, 0xa8ff, 0xa8ff, 0xa926, 0xa92d, 0xa947, 0xa951, +0xa953, 0xa953, 0xa980, 0xa982, 0xa9b3, 0xa9b3, 0xa9b6, 0xa9b9, 0xa9bc, 0xa9bd, +0xa9c0, 0xa9c0, 0xa9e5, 0xa9e5, 0xaa29, 0xaa2e, 0xaa31, 0xaa32, @@ -13198,7 +13776,9 @@ CR_Grapheme_Extend[] = { 353, 0x10a3f, 0x10a3f, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, +0x10d69, 0x10d6d, 0x10eab, 0x10eac, +0x10efc, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11001, 0x11001, @@ -13215,21 +13795,31 @@ CR_Grapheme_Extend[] = { 353, 0x11173, 0x11173, 0x11180, 0x11181, 0x111b6, 0x111be, +0x111c0, 0x111c0, 0x111c9, 0x111cc, 0x111cf, 0x111cf, 0x1122f, 0x11231, -0x11234, 0x11234, -0x11236, 0x11237, +0x11234, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112df, 0x112e3, 0x112ea, 0x11300, 0x11301, 0x1133b, 0x1133c, 0x1133e, 0x1133e, 0x11340, 0x11340, +0x1134d, 0x1134d, 0x11357, 0x11357, 0x11366, 0x1136c, 0x11370, 0x11374, +0x113b8, 0x113b8, +0x113bb, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113c9, +0x113ce, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, 0x11438, 0x1143f, 0x11442, 0x11444, 0x11446, 0x11446, @@ -13250,16 +13840,15 @@ CR_Grapheme_Extend[] = { 353, 0x1163f, 0x11640, 0x116ab, 0x116ab, 0x116ad, 0x116ad, -0x116b0, 0x116b5, -0x116b7, 0x116b7, -0x1171d, 0x1171f, +0x116b0, 0x116b7, +0x1171d, 0x1171d, +0x1171f, 0x1171f, 0x11722, 0x11725, 0x11727, 0x1172b, 0x1182f, 0x11837, 0x11839, 0x1183a, 0x11930, 0x11930, -0x1193b, 0x1193c, -0x1193e, 0x1193e, +0x1193b, 0x1193e, 0x11943, 0x11943, 0x119d4, 0x119d7, 0x119da, 0x119db, @@ -13288,17 +13877,25 @@ CR_Grapheme_Extend[] = { 353, 0x11d95, 0x11d95, 0x11d97, 0x11d97, 0x11ef3, 0x11ef4, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f42, +0x11f5a, 0x11f5a, +0x13440, 0x13440, +0x13447, 0x13455, +0x1611e, 0x16129, +0x1612d, 0x1612f, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f4f, 0x16f4f, 0x16f8f, 0x16f92, 0x16fe4, 0x16fe4, +0x16ff0, 0x16ff1, 0x1bc9d, 0x1bc9e, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, -0x1d165, 0x1d165, -0x1d167, 0x1d169, -0x1d16e, 0x1d172, +0x1d165, 0x1d169, +0x1d16d, 0x1d172, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, @@ -13314,9 +13911,12 @@ CR_Grapheme_Extend[] = { 353, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, 0x1e130, 0x1e136, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, +0x1e5ee, 0x1e5ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94a, 0xe0020, 0xe007f, @@ -13325,7 +13925,7 @@ CR_Grapheme_Extend[] = { 353, /* PROPERTY: 'Grapheme_Link': Derived Property */ static const OnigCodePoint -CR_Grapheme_Link[] = { 55, +CR_Grapheme_Link[] = { 58, 0x094d, 0x094d, 0x09cd, 0x09cd, 0x0a4d, 0x0a4d, @@ -13366,6 +13966,7 @@ CR_Grapheme_Link[] = { 55, 0x11235, 0x11235, 0x112ea, 0x112ea, 0x1134d, 0x1134d, +0x113ce, 0x113d0, 0x11442, 0x11442, 0x114c2, 0x114c2, 0x115bf, 0x115bf, @@ -13381,6 +13982,8 @@ CR_Grapheme_Link[] = { 55, 0x11c3f, 0x11c3f, 0x11d44, 0x11d45, 0x11d97, 0x11d97, +0x11f41, 0x11f42, +0x1612f, 0x1612f, }; /* END of CR_Grapheme_Link */ /* PROPERTY: 'Greek': Script */ @@ -13475,9 +14078,15 @@ CR_Gurmukhi[] = { 16, 0x0a66, 0x0a76, }; /* END of CR_Gurmukhi */ +/* PROPERTY: 'Gurung_Khema': Script */ +static const OnigCodePoint +CR_Gurung_Khema[] = { 1, +0x16100, 0x16139, +}; /* END of CR_Gurung_Khema */ + /* PROPERTY: 'Han': Script */ static const OnigCodePoint -CR_Han[] = { 20, +CR_Han[] = { 22, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, @@ -13492,12 +14101,14 @@ CR_Han[] = { 20, 0x16fe2, 0x16fe3, 0x16ff0, 0x16ff1, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Han */ /* PROPERTY: 'Hangul': Script */ @@ -13567,10 +14178,11 @@ CR_Hex_Digit[] = { 6, /* PROPERTY: 'Hiragana': Script */ static const OnigCodePoint -CR_Hiragana[] = { 5, +CR_Hiragana[] = { 6, 0x3041, 0x3096, 0x309d, 0x309f, 0x1b001, 0x1b11f, +0x1b132, 0x1b132, 0x1b150, 0x1b152, 0x1f200, 0x1f200, }; /* END of CR_Hiragana */ @@ -13592,9 +14204,10 @@ CR_Hyphen[] = { 10, /* PROPERTY: 'IDS_Binary_Operator': Binary Property */ static const OnigCodePoint -CR_IDS_Binary_Operator[] = { 2, +CR_IDS_Binary_Operator[] = { 3, 0x2ff0, 0x2ff1, -0x2ff4, 0x2ffb, +0x2ff4, 0x2ffd, +0x31ef, 0x31ef, }; /* END of CR_IDS_Binary_Operator */ /* PROPERTY: 'IDS_Trinary_Operator': Binary Property */ @@ -13603,9 +14216,56 @@ CR_IDS_Trinary_Operator[] = { 1, 0x2ff2, 0x2ff3, }; /* END of CR_IDS_Trinary_Operator */ +/* PROPERTY: 'IDS_Unary_Operator': Binary Property */ +static const OnigCodePoint +CR_IDS_Unary_Operator[] = { 1, +0x2ffe, 0x2fff, +}; /* END of CR_IDS_Unary_Operator */ + +/* PROPERTY: 'ID_Compat_Math_Continue': Binary Property */ +static const OnigCodePoint +CR_ID_Compat_Math_Continue[] = { 18, +0x00b2, 0x00b3, +0x00b9, 0x00b9, +0x2070, 0x2070, +0x2074, 0x207e, +0x2080, 0x208e, +0x2202, 0x2202, +0x2207, 0x2207, +0x221e, 0x221e, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +}; /* END of CR_ID_Compat_Math_Continue */ + +/* PROPERTY: 'ID_Compat_Math_Start': Binary Property */ +static const OnigCodePoint +CR_ID_Compat_Math_Start[] = { 13, +0x2202, 0x2202, +0x2207, 0x2207, +0x221e, 0x221e, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +}; /* END of CR_ID_Compat_Math_Start */ + /* PROPERTY: 'ID_Continue': Derived Property */ static const OnigCodePoint -CR_ID_Continue[] = { 756, +CR_ID_Continue[] = { 793, 0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, @@ -13659,7 +14319,7 @@ CR_ID_Continue[] = { 756, 0x0860, 0x086a, 0x0870, 0x0887, 0x0889, 0x088e, -0x0898, 0x08e1, +0x0897, 0x08e1, 0x08e3, 0x0963, 0x0966, 0x096f, 0x0971, 0x0983, @@ -13764,7 +14424,7 @@ CR_ID_Continue[] = { 756, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -13797,7 +14457,7 @@ CR_ID_Continue[] = { 756, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, @@ -13882,7 +14542,7 @@ CR_ID_Continue[] = { 756, 0x1c00, 0x1c37, 0x1c40, 0x1c49, 0x1c4d, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1cd0, 0x1cd2, @@ -13906,6 +14566,7 @@ CR_ID_Continue[] = { 756, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, +0x200c, 0x200d, 0x203f, 0x2040, 0x2054, 0x2054, 0x2071, 0x2071, @@ -13950,8 +14611,7 @@ CR_ID_Continue[] = { 756, 0x3038, 0x303c, 0x3041, 0x3096, 0x3099, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, +0x30a1, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x31a0, 0x31bf, @@ -13966,10 +14626,10 @@ CR_ID_Continue[] = { 756, 0xa67f, 0xa6f1, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa827, 0xa82c, 0xa82c, 0xa840, 0xa873, @@ -14029,7 +14689,7 @@ CR_ID_Continue[] = { 756, 0xff21, 0xff3a, 0xff3f, 0xff3f, 0xff41, 0xff5a, -0xff66, 0xffbe, +0xff65, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, @@ -14067,6 +14727,7 @@ CR_ID_Continue[] = { 756, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -14107,10 +14768,14 @@ CR_ID_Continue[] = { 756, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d6d, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, -0x10f00, 0x10f1c, +0x10ec2, 0x10ec4, +0x10efc, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10f70, 0x10f85, @@ -14133,7 +14798,7 @@ CR_ID_Continue[] = { 756, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -14156,6 +14821,16 @@ CR_ID_Continue[] = { 756, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d3, +0x113e1, 0x113e2, 0x11400, 0x1144a, 0x11450, 0x11459, 0x1145e, 0x11461, @@ -14170,6 +14845,7 @@ CR_ID_Continue[] = { 756, 0x11650, 0x11659, 0x11680, 0x116b8, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11739, @@ -14193,6 +14869,8 @@ CR_ID_Continue[] = { 756, 0x11a50, 0x11a99, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c40, @@ -14214,13 +14892,20 @@ CR_ID_Continue[] = { 756, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f5a, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13440, 0x13455, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -14233,6 +14918,8 @@ CR_ID_Continue[] = { 756, 0x16b50, 0x16b59, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -14242,12 +14929,14 @@ CR_ID_Continue[] = { 756, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -14255,6 +14944,7 @@ CR_ID_Continue[] = { 756, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9d, 0x1bc9e, +0x1ccf0, 0x1ccf9, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, 0x1d165, 0x1d169, @@ -14301,17 +14991,22 @@ CR_ID_Continue[] = { 756, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -14355,18 +15050,20 @@ CR_ID_Continue[] = { 756, 0x1eeab, 0x1eebb, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0100, 0xe01ef, }; /* END of CR_ID_Continue */ /* PROPERTY: 'ID_Start': Derived Property */ static const OnigCodePoint -CR_ID_Start[] = { 648, +CR_ID_Start[] = { 677, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -14591,7 +15288,7 @@ CR_ID_Start[] = { 648, 0x1c00, 0x1c23, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, @@ -14674,10 +15371,10 @@ CR_ID_Start[] = { 648, 0xa6a0, 0xa6ef, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa801, 0xa803, 0xa805, 0xa807, 0xa80a, @@ -14775,6 +15472,7 @@ CR_ID_Start[] = { 648, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -14811,8 +15509,11 @@ CR_ID_Start[] = { 648, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d23, +0x10d4a, 0x10d65, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, @@ -14835,6 +15536,7 @@ CR_ID_Start[] = { 648, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -14850,6 +15552,13 @@ CR_ID_Start[] = { 648, 0x1133d, 0x1133d, 0x11350, 0x11350, 0x1135d, 0x11361, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113d1, 0x113d1, +0x113d3, 0x113d3, 0x11400, 0x11434, 0x11447, 0x1144a, 0x1145f, 0x11461, @@ -14884,6 +15593,7 @@ CR_ID_Start[] = { 648, 0x11a5c, 0x11a89, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, 0x11c00, 0x11c08, 0x11c0a, 0x11c2e, 0x11c40, 0x11c40, @@ -14897,13 +15607,19 @@ CR_ID_Start[] = { 648, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x1611d, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a70, 0x16abe, @@ -14912,6 +15628,7 @@ CR_ID_Start[] = { 648, 0x16b40, 0x16b43, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f50, 0x16f50, @@ -14920,12 +15637,14 @@ CR_ID_Start[] = { 648, 0x16fe3, 0x16fe3, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -14963,11 +15682,16 @@ CR_ID_Start[] = { 648, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -15009,17 +15733,19 @@ CR_ID_Start[] = { 648, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_ID_Start */ /* PROPERTY: 'Ideographic': Binary Property */ static const OnigCodePoint -CR_Ideographic[] = { 19, +CR_Ideographic[] = { 21, 0x3006, 0x3007, 0x3021, 0x3029, 0x3038, 0x303a, @@ -15030,15 +15756,17 @@ CR_Ideographic[] = { 19, 0x16fe4, 0x16fe4, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1b170, 0x1b2fb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Ideographic */ /* PROPERTY: 'Imperial_Aramaic': Script */ @@ -15048,6 +15776,304 @@ CR_Imperial_Aramaic[] = { 2, 0x10857, 0x1085f, }; /* END of CR_Imperial_Aramaic */ +/* PROPERTY: 'InCB': Derived Property */ +static const OnigCodePoint +CR_InCB[] = { 293, +0x094d, 0x094d, +0x09cd, 0x09cd, +0x0acd, 0x0acd, +0x0b4d, 0x0b4d, +0x0c4d, 0x0c4d, +0x0d4d, 0x0d4d, +0x0d57, 0x0d57, +0x0d62, 0x0d63, +0x0d81, 0x0d81, +0x0dca, 0x0dca, +0x0dcf, 0x0dcf, +0x0dd2, 0x0dd4, +0x0dd6, 0x0dd6, +0x0ddf, 0x0ddf, +0x0e31, 0x0e31, +0x0e34, 0x0e3a, +0x0e47, 0x0e4e, +0x0eb1, 0x0eb1, +0x0eb4, 0x0ebc, +0x0ec8, 0x0ece, +0x0f18, 0x0f19, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f71, 0x0f7e, +0x0f80, 0x0f84, +0x0f86, 0x0f87, +0x0f8d, 0x0f97, +0x0f99, 0x0fbc, +0x0fc6, 0x0fc6, +0x102d, 0x1030, +0x1032, 0x1037, +0x1039, 0x103a, +0x103d, 0x103e, +0x1058, 0x1059, +0x105e, 0x1060, +0x1071, 0x1074, +0x1082, 0x1082, +0x1085, 0x1086, +0x108d, 0x108d, +0x109d, 0x109d, +0x135d, 0x135f, +0x1712, 0x1715, +0x1732, 0x1734, +0x1752, 0x1753, +0x1772, 0x1773, +0x17b4, 0x17b5, +0x17b7, 0x17bd, +0x17c6, 0x17c6, +0x17c9, 0x17d3, +0x17dd, 0x17dd, +0x180b, 0x180d, +0x180f, 0x180f, +0x1885, 0x1886, +0x18a9, 0x18a9, +0x1920, 0x1922, +0x1927, 0x1928, +0x1932, 0x1932, +0x1939, 0x193b, +0x1a17, 0x1a18, +0x1a1b, 0x1a1b, +0x1a56, 0x1a56, +0x1a58, 0x1a5e, +0x1a60, 0x1a60, +0x1a62, 0x1a62, +0x1a65, 0x1a6c, +0x1a73, 0x1a7c, +0x1a7f, 0x1a7f, +0x1ab0, 0x1ace, +0x1b00, 0x1b03, +0x1b34, 0x1b3d, +0x1b42, 0x1b44, +0x1b6b, 0x1b73, +0x1b80, 0x1b81, +0x1ba2, 0x1ba5, +0x1ba8, 0x1bad, +0x1be6, 0x1be6, +0x1be8, 0x1be9, +0x1bed, 0x1bed, +0x1bef, 0x1bf3, +0x1c2c, 0x1c33, +0x1c36, 0x1c37, +0x1cd0, 0x1cd2, +0x1cd4, 0x1ce0, +0x1ce2, 0x1ce8, +0x1ced, 0x1ced, +0x1cf4, 0x1cf4, +0x1cf8, 0x1cf9, +0x1dc0, 0x1dff, +0x200d, 0x200d, +0x20d0, 0x20f0, +0x2cef, 0x2cf1, +0x2d7f, 0x2d7f, +0x2de0, 0x2dff, +0x302a, 0x302f, +0x3099, 0x309a, +0xa66f, 0xa672, +0xa674, 0xa67d, +0xa69e, 0xa69f, +0xa6f0, 0xa6f1, +0xa802, 0xa802, +0xa806, 0xa806, +0xa80b, 0xa80b, +0xa825, 0xa826, +0xa82c, 0xa82c, +0xa8c4, 0xa8c5, +0xa8e0, 0xa8f1, +0xa8ff, 0xa8ff, +0xa926, 0xa92d, +0xa947, 0xa951, +0xa953, 0xa953, +0xa980, 0xa982, +0xa9b3, 0xa9b3, +0xa9b6, 0xa9b9, +0xa9bc, 0xa9bd, +0xa9c0, 0xa9c0, +0xa9e5, 0xa9e5, +0xaa29, 0xaa2e, +0xaa31, 0xaa32, +0xaa35, 0xaa36, +0xaa43, 0xaa43, +0xaa4c, 0xaa4c, +0xaa7c, 0xaa7c, +0xaab0, 0xaab0, +0xaab2, 0xaab4, +0xaab7, 0xaab8, +0xaabe, 0xaabf, +0xaac1, 0xaac1, +0xaaec, 0xaaed, +0xaaf6, 0xaaf6, +0xabe5, 0xabe5, +0xabe8, 0xabe8, +0xabed, 0xabed, +0xfb1e, 0xfb1e, +0xfe00, 0xfe0f, +0xfe20, 0xfe2f, +0xff9e, 0xff9f, +0x101fd, 0x101fd, +0x102e0, 0x102e0, +0x10376, 0x1037a, +0x10a01, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a0f, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10ae5, 0x10ae6, +0x10d24, 0x10d27, +0x10d69, 0x10d6d, +0x10eab, 0x10eac, +0x10efc, 0x10eff, +0x10f46, 0x10f50, +0x10f82, 0x10f85, +0x11001, 0x11001, +0x11038, 0x11046, +0x11070, 0x11070, +0x11073, 0x11074, +0x1107f, 0x11081, +0x110b3, 0x110b6, +0x110b9, 0x110ba, +0x110c2, 0x110c2, +0x11100, 0x11102, +0x11127, 0x1112b, +0x1112d, 0x11134, +0x11173, 0x11173, +0x11180, 0x11181, +0x111b6, 0x111be, +0x111c0, 0x111c0, +0x111c9, 0x111cc, +0x111cf, 0x111cf, +0x1122f, 0x11231, +0x11234, 0x11237, +0x1123e, 0x1123e, +0x11241, 0x11241, +0x112df, 0x112df, +0x112e3, 0x112ea, +0x11300, 0x11301, +0x1133b, 0x1133c, +0x1133e, 0x1133e, +0x11340, 0x11340, +0x1134d, 0x1134d, +0x11357, 0x11357, +0x11366, 0x1136c, +0x11370, 0x11374, +0x113b8, 0x113b8, +0x113bb, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113c9, +0x113ce, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, +0x11438, 0x1143f, +0x11442, 0x11444, +0x11446, 0x11446, +0x1145e, 0x1145e, +0x114b0, 0x114b0, +0x114b3, 0x114b8, +0x114ba, 0x114ba, +0x114bd, 0x114bd, +0x114bf, 0x114c0, +0x114c2, 0x114c3, +0x115af, 0x115af, +0x115b2, 0x115b5, +0x115bc, 0x115bd, +0x115bf, 0x115c0, +0x115dc, 0x115dd, +0x11633, 0x1163a, +0x1163d, 0x1163d, +0x1163f, 0x11640, +0x116ab, 0x116ab, +0x116ad, 0x116ad, +0x116b0, 0x116b7, +0x1171d, 0x1171d, +0x1171f, 0x1171f, +0x11722, 0x11725, +0x11727, 0x1172b, +0x1182f, 0x11837, +0x11839, 0x1183a, +0x11930, 0x11930, +0x1193b, 0x1193e, +0x11943, 0x11943, +0x119d4, 0x119d7, +0x119da, 0x119db, +0x119e0, 0x119e0, +0x11a01, 0x11a0a, +0x11a33, 0x11a38, +0x11a3b, 0x11a3e, +0x11a47, 0x11a47, +0x11a51, 0x11a56, +0x11a59, 0x11a5b, +0x11a8a, 0x11a96, +0x11a98, 0x11a99, +0x11c30, 0x11c36, +0x11c38, 0x11c3d, +0x11c3f, 0x11c3f, +0x11c92, 0x11ca7, +0x11caa, 0x11cb0, +0x11cb2, 0x11cb3, +0x11cb5, 0x11cb6, +0x11d31, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d45, +0x11d47, 0x11d47, +0x11d90, 0x11d91, +0x11d95, 0x11d95, +0x11d97, 0x11d97, +0x11ef3, 0x11ef4, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f42, +0x11f5a, 0x11f5a, +0x13440, 0x13440, +0x13447, 0x13455, +0x1611e, 0x16129, +0x1612d, 0x1612f, +0x16af0, 0x16af4, +0x16b30, 0x16b36, +0x16f4f, 0x16f4f, +0x16f8f, 0x16f92, +0x16fe4, 0x16fe4, +0x16ff0, 0x16ff1, +0x1bc9d, 0x1bc9e, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d165, 0x1d169, +0x1d16d, 0x1d172, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1da00, 0x1da36, +0x1da3b, 0x1da6c, +0x1da75, 0x1da75, +0x1da84, 0x1da84, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, +0x1e130, 0x1e136, +0x1e2ae, 0x1e2ae, +0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, +0x1e5ee, 0x1e5ef, +0x1e8d0, 0x1e8d6, +0x1e944, 0x1e94a, +0x1f3fb, 0x1f3ff, +0xe0020, 0xe007f, +0xe0100, 0xe01ef, +}; /* END of CR_InCB */ + /* PROPERTY: 'Inherited': Script */ static const OnigCodePoint CR_Inherited[] = { 29, @@ -15132,12 +16158,12 @@ CR_Kannada[] = { 13, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, }; /* END of CR_Kannada */ /* PROPERTY: 'Katakana': Script */ static const OnigCodePoint -CR_Katakana[] = { 13, +CR_Katakana[] = { 14, 0x30a1, 0x30fa, 0x30fd, 0x30ff, 0x31f0, 0x31ff, @@ -15150,9 +16176,18 @@ CR_Katakana[] = { 13, 0x1affd, 0x1affe, 0x1b000, 0x1b000, 0x1b120, 0x1b122, +0x1b155, 0x1b155, 0x1b164, 0x1b167, }; /* END of CR_Katakana */ +/* PROPERTY: 'Kawi': Script */ +static const OnigCodePoint +CR_Kawi[] = { 3, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, +}; /* END of CR_Kawi */ + /* PROPERTY: 'Kayah_Li': Script */ static const OnigCodePoint CR_Kayah_Li[] = { 2, @@ -15175,9 +16210,10 @@ CR_Kharoshthi[] = { 8, /* PROPERTY: 'Khitan_Small_Script': Script */ static const OnigCodePoint -CR_Khitan_Small_Script[] = { 2, +CR_Khitan_Small_Script[] = { 3, 0x16fe4, 0x16fe4, 0x18b00, 0x18cd5, +0x18cff, 0x18cff, }; /* END of CR_Khitan_Small_Script */ /* PROPERTY: 'Khmer': Script */ @@ -15193,7 +16229,7 @@ CR_Khmer[] = { 4, static const OnigCodePoint CR_Khojki[] = { 2, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, }; /* END of CR_Khojki */ /* PROPERTY: 'Khudawadi': Script */ @@ -15203,9 +16239,15 @@ CR_Khudawadi[] = { 2, 0x112f0, 0x112f9, }; /* END of CR_Khudawadi */ +/* PROPERTY: 'Kirat_Rai': Script */ +static const OnigCodePoint +CR_Kirat_Rai[] = { 1, +0x16d40, 0x16d79, +}; /* END of CR_Kirat_Rai */ + /* PROPERTY: 'L': Major Category */ static const OnigCodePoint -CR_L[] = { 648, +CR_L[] = { 677, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -15431,7 +16473,7 @@ CR_L[] = { 648, 0x1c00, 0x1c23, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, @@ -15515,10 +16557,10 @@ CR_L[] = { 648, 0xa6a0, 0xa6e5, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa801, 0xa803, 0xa805, 0xa807, 0xa80a, @@ -15615,6 +16657,7 @@ CR_L[] = { 648, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -15651,8 +16694,11 @@ CR_L[] = { 648, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d23, +0x10d4a, 0x10d65, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, @@ -15675,6 +16721,7 @@ CR_L[] = { 648, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -15690,6 +16737,13 @@ CR_L[] = { 648, 0x1133d, 0x1133d, 0x11350, 0x11350, 0x1135d, 0x11361, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113d1, 0x113d1, +0x113d3, 0x113d3, 0x11400, 0x11434, 0x11447, 0x1144a, 0x1145f, 0x11461, @@ -15724,6 +16778,7 @@ CR_L[] = { 648, 0x11a5c, 0x11a89, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, 0x11c00, 0x11c08, 0x11c0a, 0x11c2e, 0x11c40, 0x11c40, @@ -15737,12 +16792,18 @@ CR_L[] = { 648, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x1611d, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a70, 0x16abe, @@ -15751,6 +16812,7 @@ CR_L[] = { 648, 0x16b40, 0x16b43, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f50, 0x16f50, @@ -15759,12 +16821,14 @@ CR_L[] = { 648, 0x16fe3, 0x16fe3, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -15802,11 +16866,16 @@ CR_L[] = { 648, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -15848,17 +16917,19 @@ CR_L[] = { 648, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_L */ /* PROPERTY: 'LC': General Category */ static const OnigCodePoint -CR_LC[] = { 142, +CR_LC[] = { 145, 0x0041, 0x005a, 0x0061, 0x007a, 0x00b5, 0x00b5, @@ -15888,7 +16959,7 @@ CR_LC[] = { 142, 0x10fd, 0x10ff, 0x13a0, 0x13f5, 0x13f8, 0x13fd, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1d00, 0x1d2b, @@ -15940,10 +17011,10 @@ CR_LC[] = { 142, 0xa722, 0xa76f, 0xa771, 0xa787, 0xa78b, 0xa78e, -0xa790, 0xa7ca, +0xa790, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f5, 0xa7f6, 0xa7fa, 0xa7fa, 0xab30, 0xab5a, @@ -15966,6 +17037,8 @@ CR_LC[] = { 142, 0x105bb, 0x105bc, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, +0x10d50, 0x10d65, +0x10d70, 0x10d85, 0x118a0, 0x118df, 0x16e40, 0x16e7f, 0x1d400, 0x1d454, @@ -16000,6 +17073,7 @@ CR_LC[] = { 142, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, 0x1e900, 0x1e943, }; /* END of CR_LC */ @@ -16014,14 +17088,14 @@ CR_Lao[] = { 11, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, }; /* END of CR_Lao */ /* PROPERTY: 'Latin': Script */ static const OnigCodePoint -CR_Latin[] = { 38, +CR_Latin[] = { 39, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -16045,10 +17119,10 @@ CR_Latin[] = { 38, 0x2160, 0x2188, 0x2c60, 0x2c7f, 0xa722, 0xa787, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa7ff, 0xab30, 0xab5a, 0xab5c, 0xab64, @@ -16060,6 +17134,7 @@ CR_Latin[] = { 38, 0x10787, 0x107b0, 0x107b2, 0x107ba, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, }; /* END of CR_Latin */ /* PROPERTY: 'Lepcha': Script */ @@ -16109,7 +17184,7 @@ CR_Lisu[] = { 2, /* PROPERTY: 'Ll': General Category */ static const OnigCodePoint -CR_Ll[] = { 657, +CR_Ll[] = { 662, 0x0061, 0x007a, 0x00b5, 0x00b5, 0x00df, 0x00f6, @@ -16384,6 +17459,7 @@ CR_Ll[] = { 657, 0x10fd, 0x10ff, 0x13f8, 0x13fd, 0x1c80, 0x1c88, +0x1c8a, 0x1c8a, 0x1d00, 0x1d2b, 0x1d6b, 0x1d77, 0x1d79, 0x1d9a, @@ -16714,11 +17790,13 @@ CR_Ll[] = { 657, 0xa7c3, 0xa7c3, 0xa7c8, 0xa7c8, 0xa7ca, 0xa7ca, +0xa7cd, 0xa7cd, 0xa7d1, 0xa7d1, 0xa7d3, 0xa7d3, 0xa7d5, 0xa7d5, 0xa7d7, 0xa7d7, 0xa7d9, 0xa7d9, +0xa7db, 0xa7db, 0xa7f6, 0xa7f6, 0xa7fa, 0xa7fa, 0xab30, 0xab5a, @@ -16734,6 +17812,7 @@ CR_Ll[] = { 657, 0x105b3, 0x105b9, 0x105bb, 0x105bc, 0x10cc0, 0x10cf2, +0x10d70, 0x10d85, 0x118c0, 0x118df, 0x16e60, 0x16e7f, 0x1d41a, 0x1d433, @@ -16766,12 +17845,13 @@ CR_Ll[] = { 657, 0x1d7cb, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, 0x1e922, 0x1e943, }; /* END of CR_Ll */ /* PROPERTY: 'Lm': General Category */ static const OnigCodePoint -CR_Lm[] = { 69, +CR_Lm[] = { 75, 0x02b0, 0x02c1, 0x02c6, 0x02d1, 0x02e0, 0x02e4, @@ -16832,20 +17912,26 @@ CR_Lm[] = { 69, 0x10780, 0x10785, 0x10787, 0x107b0, 0x107b2, 0x107ba, +0x10d4e, 0x10d4e, +0x10d6f, 0x10d6f, 0x16b40, 0x16b43, +0x16d40, 0x16d42, +0x16d6b, 0x16d6c, 0x16f93, 0x16f9f, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, +0x1e030, 0x1e06d, 0x1e137, 0x1e13d, +0x1e4eb, 0x1e4eb, 0x1e94b, 0x1e94b, }; /* END of CR_Lm */ /* PROPERTY: 'Lo': General Category */ static const OnigCodePoint -CR_Lo[] = { 501, +CR_Lo[] = { 528, 0x00aa, 0x00aa, 0x00ba, 0x00ba, 0x01bb, 0x01bb, @@ -17155,6 +18241,7 @@ CR_Lo[] = { 501, 0x10450, 0x1049d, 0x10500, 0x10527, 0x10530, 0x10563, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -17186,8 +18273,11 @@ CR_Lo[] = { 501, 0x10b80, 0x10b91, 0x10c00, 0x10c48, 0x10d00, 0x10d23, +0x10d4a, 0x10d4d, +0x10d4f, 0x10d4f, 0x10e80, 0x10ea9, 0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, @@ -17210,6 +18300,7 @@ CR_Lo[] = { 501, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -17225,6 +18316,13 @@ CR_Lo[] = { 501, 0x1133d, 0x1133d, 0x11350, 0x11350, 0x1135d, 0x11361, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113d1, 0x113d1, +0x113d3, 0x113d3, 0x11400, 0x11434, 0x11447, 0x1144a, 0x1145f, 0x11461, @@ -17258,6 +18356,7 @@ CR_Lo[] = { 501, 0x11a5c, 0x11a89, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, 0x11c00, 0x11c08, 0x11c0a, 0x11c2e, 0x11c40, 0x11c40, @@ -17271,12 +18370,18 @@ CR_Lo[] = { 501, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x1611d, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a70, 0x16abe, @@ -17284,13 +18389,16 @@ CR_Lo[] = { 501, 0x16b00, 0x16b2f, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d43, 0x16d6a, 0x16f00, 0x16f4a, 0x16f50, 0x16f50, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -17302,6 +18410,9 @@ CR_Lo[] = { 501, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4ea, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -17341,12 +18452,14 @@ CR_Lo[] = { 501, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Lo */ /* PROPERTY: 'Logical_Order_Exception': Binary Property */ @@ -17381,7 +18494,7 @@ CR_Lt[] = { 10, /* PROPERTY: 'Lu': General Category */ static const OnigCodePoint -CR_Lu[] = { 646, +CR_Lu[] = { 651, 0x0041, 0x005a, 0x00c0, 0x00d6, 0x00d8, 0x00de, @@ -17658,6 +18771,7 @@ CR_Lu[] = { 646, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x13a0, 0x13f5, +0x1c89, 0x1c89, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1e00, 0x1e00, @@ -17982,9 +19096,12 @@ CR_Lu[] = { 646, 0xa7c2, 0xa7c2, 0xa7c4, 0xa7c7, 0xa7c9, 0xa7c9, +0xa7cb, 0xa7cc, 0xa7d0, 0xa7d0, 0xa7d6, 0xa7d6, 0xa7d8, 0xa7d8, +0xa7da, 0xa7da, +0xa7dc, 0xa7dc, 0xa7f5, 0xa7f5, 0xff21, 0xff3a, 0x10400, 0x10427, @@ -17994,6 +19111,7 @@ CR_Lu[] = { 646, 0x1058c, 0x10592, 0x10594, 0x10595, 0x10c80, 0x10cb2, +0x10d50, 0x10d65, 0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1d400, 0x1d419, @@ -18045,7 +19163,7 @@ CR_Lydian[] = { 2, /* PROPERTY: 'M': Major Category */ static const OnigCodePoint -CR_M[] = { 299, +CR_M[] = { 321, 0x0300, 0x036f, 0x0483, 0x0489, 0x0591, 0x05bd, @@ -18070,7 +19188,7 @@ CR_M[] = { 299, 0x0825, 0x0827, 0x0829, 0x082d, 0x0859, 0x085b, -0x0898, 0x089f, +0x0897, 0x089f, 0x08ca, 0x08e1, 0x08e3, 0x0903, 0x093a, 0x093c, @@ -18126,6 +19244,7 @@ CR_M[] = { 299, 0x0cca, 0x0ccd, 0x0cd5, 0x0cd6, 0x0ce2, 0x0ce3, +0x0cf3, 0x0cf3, 0x0d00, 0x0d03, 0x0d3b, 0x0d3c, 0x0d3e, 0x0d44, @@ -18144,7 +19263,7 @@ CR_M[] = { 299, 0x0e47, 0x0e4e, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, @@ -18245,7 +19364,9 @@ CR_M[] = { 299, 0x10a3f, 0x10a3f, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, +0x10d69, 0x10d6d, 0x10eab, 0x10eac, +0x10efc, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11000, 0x11002, @@ -18265,6 +19386,7 @@ CR_M[] = { 299, 0x111ce, 0x111cf, 0x1122c, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112ea, 0x11300, 0x11303, 0x1133b, 0x1133c, @@ -18275,6 +19397,13 @@ CR_M[] = { 299, 0x11362, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x113b8, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, 0x11435, 0x11446, 0x1145e, 0x1145e, 0x114b0, 0x114c3, @@ -18312,6 +19441,14 @@ CR_M[] = { 299, 0x11d90, 0x11d91, 0x11d93, 0x11d97, 0x11ef3, 0x11ef6, +0x11f00, 0x11f01, +0x11f03, 0x11f03, +0x11f34, 0x11f3a, +0x11f3e, 0x11f42, +0x11f5a, 0x11f5a, +0x13440, 0x13440, +0x13447, 0x13455, +0x1611e, 0x1612f, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f4f, 0x16f4f, @@ -18339,9 +19476,12 @@ CR_M[] = { 299, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, 0x1e130, 0x1e136, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, +0x1e5ee, 0x1e5ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94a, 0xe0100, 0xe01ef, @@ -18407,7 +19547,7 @@ CR_Masaram_Gondi[] = { 7, /* PROPERTY: 'Math': Derived Property */ static const OnigCodePoint -CR_Math[] = { 138, +CR_Math[] = { 139, 0x002b, 0x002b, 0x003c, 0x003e, 0x005e, 0x005e, @@ -18491,6 +19631,7 @@ CR_Math[] = { 138, 0xff5e, 0xff5e, 0xffe2, 0xffe2, 0xffe9, 0xffec, +0x10d8e, 0x10d8f, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, @@ -18550,7 +19691,7 @@ CR_Math[] = { 138, /* PROPERTY: 'Mc': General Category */ static const OnigCodePoint -CR_Mc[] = { 177, +CR_Mc[] = { 190, 0x0903, 0x0903, 0x093b, 0x093b, 0x093e, 0x0940, @@ -18586,6 +19727,7 @@ CR_Mc[] = { 177, 0x0cc7, 0x0cc8, 0x0cca, 0x0ccb, 0x0cd5, 0x0cd6, +0x0cf3, 0x0cf3, 0x0d02, 0x0d03, 0x0d3e, 0x0d40, 0x0d46, 0x0d48, @@ -18684,6 +19826,12 @@ CR_Mc[] = { 177, 0x1134b, 0x1134d, 0x11357, 0x11357, 0x11362, 0x11363, +0x113b8, 0x113ba, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, +0x113cf, 0x113cf, 0x11435, 0x11437, 0x11440, 0x11441, 0x11445, 0x11445, @@ -18700,6 +19848,7 @@ CR_Mc[] = { 177, 0x116ac, 0x116ac, 0x116ae, 0x116af, 0x116b6, 0x116b6, +0x1171e, 0x1171e, 0x11720, 0x11721, 0x11726, 0x11726, 0x1182c, 0x1182e, @@ -18724,6 +19873,11 @@ CR_Mc[] = { 177, 0x11d93, 0x11d94, 0x11d96, 0x11d96, 0x11ef5, 0x11ef6, +0x11f03, 0x11f03, +0x11f34, 0x11f35, +0x11f3e, 0x11f3f, +0x11f41, 0x11f41, +0x1612a, 0x1612c, 0x16f51, 0x16f87, 0x16ff0, 0x16ff1, 0x1d165, 0x1d166, @@ -18785,7 +19939,7 @@ CR_Miao[] = { 3, /* PROPERTY: 'Mn': General Category */ static const OnigCodePoint -CR_Mn[] = { 336, +CR_Mn[] = { 357, 0x0300, 0x036f, 0x0483, 0x0487, 0x0591, 0x05bd, @@ -18810,7 +19964,7 @@ CR_Mn[] = { 336, 0x0825, 0x0827, 0x0829, 0x082d, 0x0859, 0x085b, -0x0898, 0x089f, +0x0897, 0x089f, 0x08ca, 0x08e1, 0x08e3, 0x0902, 0x093a, 0x093a, @@ -18878,7 +20032,7 @@ CR_Mn[] = { 336, 0x0e47, 0x0e4e, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, @@ -19008,7 +20162,9 @@ CR_Mn[] = { 336, 0x10a3f, 0x10a3f, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, +0x10d69, 0x10d6d, 0x10eab, 0x10eac, +0x10efc, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11001, 0x11001, @@ -19031,6 +20187,7 @@ CR_Mn[] = { 336, 0x11234, 0x11234, 0x11236, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112df, 0x112e3, 0x112ea, 0x11300, 0x11301, @@ -19038,6 +20195,11 @@ CR_Mn[] = { 336, 0x11340, 0x11340, 0x11366, 0x1136c, 0x11370, 0x11374, +0x113bb, 0x113c0, +0x113ce, 0x113ce, +0x113d0, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, 0x11438, 0x1143f, 0x11442, 0x11444, 0x11446, 0x11446, @@ -19057,7 +20219,8 @@ CR_Mn[] = { 336, 0x116ad, 0x116ad, 0x116b0, 0x116b5, 0x116b7, 0x116b7, -0x1171d, 0x1171f, +0x1171d, 0x1171d, +0x1171f, 0x1171f, 0x11722, 0x11725, 0x11727, 0x1172b, 0x1182f, 0x11837, @@ -19092,6 +20255,15 @@ CR_Mn[] = { 336, 0x11d95, 0x11d95, 0x11d97, 0x11d97, 0x11ef3, 0x11ef4, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f40, +0x11f42, 0x11f42, +0x11f5a, 0x11f5a, +0x13440, 0x13440, +0x13447, 0x13455, +0x1611e, 0x16129, +0x1612d, 0x1612f, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f4f, 0x16f4f, @@ -19116,9 +20288,12 @@ CR_Mn[] = { 336, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, 0x1e130, 0x1e136, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, +0x1e5ee, 0x1e5ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94a, 0xe0100, 0xe01ef, @@ -19131,6 +20306,20 @@ CR_Modi[] = { 2, 0x11650, 0x11659, }; /* END of CR_Modi */ +/* PROPERTY: 'Modifier_Combining_Mark': Binary Property */ +static const OnigCodePoint +CR_Modifier_Combining_Mark[] = { 9, +0x0654, 0x0655, +0x0658, 0x0658, +0x06dc, 0x06dc, +0x06e3, 0x06e3, +0x06e7, 0x06e8, +0x08ca, 0x08cb, +0x08cd, 0x08cf, +0x08d3, 0x08d3, +0x08f3, 0x08f3, +}; /* END of CR_Modifier_Combining_Mark */ + /* PROPERTY: 'Mongolian': Script */ static const OnigCodePoint CR_Mongolian[] = { 6, @@ -19162,15 +20351,16 @@ CR_Multani[] = { 5, /* PROPERTY: 'Myanmar': Script */ static const OnigCodePoint -CR_Myanmar[] = { 3, +CR_Myanmar[] = { 4, 0x1000, 0x109f, 0xa9e0, 0xa9fe, 0xaa60, 0xaa7f, +0x116d0, 0x116e3, }; /* END of CR_Myanmar */ /* PROPERTY: 'N': Major Category */ static const OnigCodePoint -CR_N[] = { 134, +CR_N[] = { 144, 0x0030, 0x0039, 0x00b2, 0x00b3, 0x00b9, 0x00b9, @@ -19264,6 +20454,7 @@ CR_N[] = { 134, 0x10ba9, 0x10baf, 0x10cfa, 0x10cff, 0x10d30, 0x10d39, +0x10d40, 0x10d49, 0x10e60, 0x10e7e, 0x10f1d, 0x10f26, 0x10f51, 0x10f54, @@ -19278,24 +20469,33 @@ CR_N[] = { 134, 0x114d0, 0x114d9, 0x11650, 0x11659, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11730, 0x1173b, 0x118e0, 0x118f2, 0x11950, 0x11959, +0x11bf0, 0x11bf9, 0x11c50, 0x11c6c, 0x11d50, 0x11d59, 0x11da0, 0x11da9, +0x11f50, 0x11f59, 0x11fc0, 0x11fd4, 0x12400, 0x1246e, +0x16130, 0x16139, 0x16a60, 0x16a69, 0x16ac0, 0x16ac9, 0x16b50, 0x16b59, 0x16b5b, 0x16b61, +0x16d70, 0x16d79, 0x16e80, 0x16e96, +0x1ccf0, 0x1ccf9, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d360, 0x1d378, 0x1d7ce, 0x1d7ff, 0x1e140, 0x1e149, 0x1e2f0, 0x1e2f9, +0x1e4f0, 0x1e4f9, +0x1e5f1, 0x1e5fa, 0x1e8c7, 0x1e8cf, 0x1e950, 0x1e959, 0x1ec71, 0x1ecab, @@ -19314,6 +20514,12 @@ CR_Nabataean[] = { 2, 0x108a7, 0x108af, }; /* END of CR_Nabataean */ +/* PROPERTY: 'Nag_Mundari': Script */ +static const OnigCodePoint +CR_Nag_Mundari[] = { 1, +0x1e4d0, 0x1e4f9, +}; /* END of CR_Nag_Mundari */ + /* PROPERTY: 'Nandinagari': Script */ static const OnigCodePoint CR_Nandinagari[] = { 3, @@ -19367,7 +20573,7 @@ CR_Nl[] = { 12, /* PROPERTY: 'No': General Category */ static const OnigCodePoint -CR_No[] = { 71, +CR_No[] = { 72, 0x00b2, 0x00b3, 0x00b9, 0x00b9, 0x00bc, 0x00be, @@ -19430,6 +20636,7 @@ CR_No[] = { 71, 0x11fc0, 0x11fd4, 0x16b5b, 0x16b61, 0x16e80, 0x16e96, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d360, 0x1d378, 0x1e8c7, 0x1e8cf, @@ -19492,6 +20699,13 @@ CR_Ol_Chiki[] = { 1, 0x1c50, 0x1c7f, }; /* END of CR_Ol_Chiki */ +/* PROPERTY: 'Ol_Onal': Script */ +static const OnigCodePoint +CR_Ol_Onal[] = { 2, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, +}; /* END of CR_Ol_Onal */ + /* PROPERTY: 'Old_Hungarian': Script */ static const OnigCodePoint CR_Old_Hungarian[] = { 3, @@ -19585,8 +20799,9 @@ CR_Osmanya[] = { 2, /* PROPERTY: 'Other_Alphabetic': Binary Property */ static const OnigCodePoint -CR_Other_Alphabetic[] = { 233, +CR_Other_Alphabetic[] = { 250, 0x0345, 0x0345, +0x0363, 0x036f, 0x05b0, 0x05bd, 0x05bf, 0x05bf, 0x05c1, 0x05c2, @@ -19607,6 +20822,7 @@ CR_Other_Alphabetic[] = { 233, 0x081b, 0x0823, 0x0825, 0x0827, 0x0829, 0x082c, +0x0897, 0x0897, 0x08d4, 0x08df, 0x08e3, 0x08e9, 0x08f0, 0x0903, @@ -19645,7 +20861,7 @@ CR_Other_Alphabetic[] = { 233, 0x0bc6, 0x0bc8, 0x0bca, 0x0bcc, 0x0bd7, 0x0bd7, -0x0c00, 0x0c03, +0x0c00, 0x0c04, 0x0c3e, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4c, @@ -19657,6 +20873,7 @@ CR_Other_Alphabetic[] = { 233, 0x0cca, 0x0ccc, 0x0cd5, 0x0cd6, 0x0ce2, 0x0ce3, +0x0cf3, 0x0cf3, 0x0d00, 0x0d03, 0x0d3e, 0x0d44, 0x0d46, 0x0d48, @@ -19675,7 +20892,7 @@ CR_Other_Alphabetic[] = { 233, 0x0eb4, 0x0eb9, 0x0ebb, 0x0ebc, 0x0ecd, 0x0ecd, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f8d, 0x0f97, 0x0f99, 0x0fbc, 0x102b, 0x1036, @@ -19710,7 +20927,7 @@ CR_Other_Alphabetic[] = { 233, 0x1bac, 0x1bad, 0x1be7, 0x1bf1, 0x1c24, 0x1c36, -0x1de7, 0x1df4, +0x1dd3, 0x1df4, 0x24b6, 0x24e9, 0x2de0, 0x2dff, 0xa674, 0xa67b, @@ -19744,11 +20961,13 @@ CR_Other_Alphabetic[] = { 233, 0x10a05, 0x10a06, 0x10a0c, 0x10a0f, 0x10d24, 0x10d27, +0x10d69, 0x10d69, 0x10eab, 0x10eac, +0x10efc, 0x10efc, 0x11000, 0x11002, 0x11038, 0x11045, 0x11073, 0x11074, -0x11082, 0x11082, +0x11080, 0x11082, 0x110b0, 0x110b8, 0x110c2, 0x110c2, 0x11100, 0x11102, @@ -19760,6 +20979,7 @@ CR_Other_Alphabetic[] = { 233, 0x1122c, 0x11234, 0x11237, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112e8, 0x11300, 0x11303, 0x1133e, 0x11344, @@ -19767,6 +20987,11 @@ CR_Other_Alphabetic[] = { 233, 0x1134b, 0x1134c, 0x11357, 0x11357, 0x11362, 0x11363, +0x113b8, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, 0x11435, 0x11441, 0x11443, 0x11445, 0x114b0, 0x114c1, @@ -19805,6 +21030,11 @@ CR_Other_Alphabetic[] = { 233, 0x11d90, 0x11d91, 0x11d93, 0x11d96, 0x11ef3, 0x11ef6, +0x11f00, 0x11f01, +0x11f03, 0x11f03, +0x11f34, 0x11f3a, +0x11f3e, 0x11f40, +0x1611e, 0x1612e, 0x16f4f, 0x16f4f, 0x16f51, 0x16f87, 0x16f8f, 0x16f92, @@ -19815,6 +21045,7 @@ CR_Other_Alphabetic[] = { 233, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, 0x1e947, 0x1e947, 0x1f130, 0x1f149, 0x1f150, 0x1f169, @@ -19839,41 +21070,68 @@ CR_Other_Default_Ignorable_Code_Point[] = { 11, /* PROPERTY: 'Other_Grapheme_Extend': Binary Property */ static const OnigCodePoint -CR_Other_Grapheme_Extend[] = { 25, +CR_Other_Grapheme_Extend[] = { 49, 0x09be, 0x09be, 0x09d7, 0x09d7, 0x0b3e, 0x0b3e, 0x0b57, 0x0b57, 0x0bbe, 0x0bbe, 0x0bd7, 0x0bd7, +0x0cc0, 0x0cc0, 0x0cc2, 0x0cc2, +0x0cc7, 0x0cc8, +0x0cca, 0x0ccb, 0x0cd5, 0x0cd6, 0x0d3e, 0x0d3e, 0x0d57, 0x0d57, 0x0dcf, 0x0dcf, 0x0ddf, 0x0ddf, +0x1715, 0x1715, +0x1734, 0x1734, 0x1b35, 0x1b35, +0x1b3b, 0x1b3b, +0x1b3d, 0x1b3d, +0x1b43, 0x1b44, +0x1baa, 0x1baa, +0x1bf2, 0x1bf3, 0x200c, 0x200c, 0x302e, 0x302f, +0xa953, 0xa953, +0xa9c0, 0xa9c0, 0xff9e, 0xff9f, +0x111c0, 0x111c0, +0x11235, 0x11235, 0x1133e, 0x1133e, +0x1134d, 0x1134d, 0x11357, 0x11357, +0x113b8, 0x113b8, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113c9, +0x113cf, 0x113cf, 0x114b0, 0x114b0, 0x114bd, 0x114bd, 0x115af, 0x115af, +0x116b6, 0x116b6, 0x11930, 0x11930, -0x1d165, 0x1d165, -0x1d16e, 0x1d172, +0x1193d, 0x1193d, +0x11f41, 0x11f41, +0x16ff0, 0x16ff1, +0x1d165, 0x1d166, +0x1d16d, 0x1d172, 0xe0020, 0xe007f, }; /* END of CR_Other_Grapheme_Extend */ /* PROPERTY: 'Other_ID_Continue': Binary Property */ static const OnigCodePoint -CR_Other_ID_Continue[] = { 4, +CR_Other_ID_Continue[] = { 7, 0x00b7, 0x00b7, 0x0387, 0x0387, 0x1369, 0x1371, 0x19da, 0x19da, +0x200c, 0x200d, +0x30fb, 0x30fb, +0xff65, 0xff65, }; /* END of CR_Other_ID_Continue */ /* PROPERTY: 'Other_ID_Start': Binary Property */ @@ -19887,7 +21145,7 @@ CR_Other_ID_Start[] = { 4, /* PROPERTY: 'Other_Lowercase': Binary Property */ static const OnigCodePoint -CR_Other_Lowercase[] = { 24, +CR_Other_Lowercase[] = { 28, 0x00aa, 0x00aa, 0x00ba, 0x00ba, 0x02b0, 0x02b8, @@ -19895,6 +21153,7 @@ CR_Other_Lowercase[] = { 24, 0x02e0, 0x02e4, 0x0345, 0x0345, 0x037a, 0x037a, +0x10fc, 0x10fc, 0x1d2c, 0x1d6a, 0x1d78, 0x1d78, 0x1d9b, 0x1dbf, @@ -19906,12 +21165,15 @@ CR_Other_Lowercase[] = { 24, 0x2c7c, 0x2c7d, 0xa69c, 0xa69d, 0xa770, 0xa770, +0xa7f2, 0xa7f4, 0xa7f8, 0xa7f9, 0xab5c, 0xab5f, +0xab69, 0xab69, 0x10780, 0x10780, 0x10783, 0x10785, 0x10787, 0x107b0, 0x107b2, 0x107ba, +0x1e030, 0x1e06d, }; /* END of CR_Other_Lowercase */ /* PROPERTY: 'Other_Math': Binary Property */ @@ -20064,7 +21326,207 @@ CR_Other_Uppercase[] = { 5, }; /* END of CR_Other_Uppercase */ /* PROPERTY: 'P': Major Category */ -#define CR_P CR_Punct +static const OnigCodePoint +CR_P[] = { 198, +0x0021, 0x0023, +0x0025, 0x002a, +0x002c, 0x002f, +0x003a, 0x003b, +0x003f, 0x0040, +0x005b, 0x005d, +0x005f, 0x005f, +0x007b, 0x007b, +0x007d, 0x007d, +0x00a1, 0x00a1, +0x00a7, 0x00a7, +0x00ab, 0x00ab, +0x00b6, 0x00b7, +0x00bb, 0x00bb, +0x00bf, 0x00bf, +0x037e, 0x037e, +0x0387, 0x0387, +0x055a, 0x055f, +0x0589, 0x058a, +0x05be, 0x05be, +0x05c0, 0x05c0, +0x05c3, 0x05c3, +0x05c6, 0x05c6, +0x05f3, 0x05f4, +0x0609, 0x060a, +0x060c, 0x060d, +0x061b, 0x061b, +0x061d, 0x061f, +0x066a, 0x066d, +0x06d4, 0x06d4, +0x0700, 0x070d, +0x07f7, 0x07f9, +0x0830, 0x083e, +0x085e, 0x085e, +0x0964, 0x0965, +0x0970, 0x0970, +0x09fd, 0x09fd, +0x0a76, 0x0a76, +0x0af0, 0x0af0, +0x0c77, 0x0c77, +0x0c84, 0x0c84, +0x0df4, 0x0df4, +0x0e4f, 0x0e4f, +0x0e5a, 0x0e5b, +0x0f04, 0x0f12, +0x0f14, 0x0f14, +0x0f3a, 0x0f3d, +0x0f85, 0x0f85, +0x0fd0, 0x0fd4, +0x0fd9, 0x0fda, +0x104a, 0x104f, +0x10fb, 0x10fb, +0x1360, 0x1368, +0x1400, 0x1400, +0x166e, 0x166e, +0x169b, 0x169c, +0x16eb, 0x16ed, +0x1735, 0x1736, +0x17d4, 0x17d6, +0x17d8, 0x17da, +0x1800, 0x180a, +0x1944, 0x1945, +0x1a1e, 0x1a1f, +0x1aa0, 0x1aa6, +0x1aa8, 0x1aad, +0x1b4e, 0x1b4f, +0x1b5a, 0x1b60, +0x1b7d, 0x1b7f, +0x1bfc, 0x1bff, +0x1c3b, 0x1c3f, +0x1c7e, 0x1c7f, +0x1cc0, 0x1cc7, +0x1cd3, 0x1cd3, +0x2010, 0x2027, +0x2030, 0x2043, +0x2045, 0x2051, +0x2053, 0x205e, +0x207d, 0x207e, +0x208d, 0x208e, +0x2308, 0x230b, +0x2329, 0x232a, +0x2768, 0x2775, +0x27c5, 0x27c6, +0x27e6, 0x27ef, +0x2983, 0x2998, +0x29d8, 0x29db, +0x29fc, 0x29fd, +0x2cf9, 0x2cfc, +0x2cfe, 0x2cff, +0x2d70, 0x2d70, +0x2e00, 0x2e2e, +0x2e30, 0x2e4f, +0x2e52, 0x2e5d, +0x3001, 0x3003, +0x3008, 0x3011, +0x3014, 0x301f, +0x3030, 0x3030, +0x303d, 0x303d, +0x30a0, 0x30a0, +0x30fb, 0x30fb, +0xa4fe, 0xa4ff, +0xa60d, 0xa60f, +0xa673, 0xa673, +0xa67e, 0xa67e, +0xa6f2, 0xa6f7, +0xa874, 0xa877, +0xa8ce, 0xa8cf, +0xa8f8, 0xa8fa, +0xa8fc, 0xa8fc, +0xa92e, 0xa92f, +0xa95f, 0xa95f, +0xa9c1, 0xa9cd, +0xa9de, 0xa9df, +0xaa5c, 0xaa5f, +0xaade, 0xaadf, +0xaaf0, 0xaaf1, +0xabeb, 0xabeb, +0xfd3e, 0xfd3f, +0xfe10, 0xfe19, +0xfe30, 0xfe52, +0xfe54, 0xfe61, +0xfe63, 0xfe63, +0xfe68, 0xfe68, +0xfe6a, 0xfe6b, +0xff01, 0xff03, +0xff05, 0xff0a, +0xff0c, 0xff0f, +0xff1a, 0xff1b, +0xff1f, 0xff20, +0xff3b, 0xff3d, +0xff3f, 0xff3f, +0xff5b, 0xff5b, +0xff5d, 0xff5d, +0xff5f, 0xff65, +0x10100, 0x10102, +0x1039f, 0x1039f, +0x103d0, 0x103d0, +0x1056f, 0x1056f, +0x10857, 0x10857, +0x1091f, 0x1091f, +0x1093f, 0x1093f, +0x10a50, 0x10a58, +0x10a7f, 0x10a7f, +0x10af0, 0x10af6, +0x10b39, 0x10b3f, +0x10b99, 0x10b9c, +0x10d6e, 0x10d6e, +0x10ead, 0x10ead, +0x10f55, 0x10f59, +0x10f86, 0x10f89, +0x11047, 0x1104d, +0x110bb, 0x110bc, +0x110be, 0x110c1, +0x11140, 0x11143, +0x11174, 0x11175, +0x111c5, 0x111c8, +0x111cd, 0x111cd, +0x111db, 0x111db, +0x111dd, 0x111df, +0x11238, 0x1123d, +0x112a9, 0x112a9, +0x113d4, 0x113d5, +0x113d7, 0x113d8, +0x1144b, 0x1144f, +0x1145a, 0x1145b, +0x1145d, 0x1145d, +0x114c6, 0x114c6, +0x115c1, 0x115d7, +0x11641, 0x11643, +0x11660, 0x1166c, +0x116b9, 0x116b9, +0x1173c, 0x1173e, +0x1183b, 0x1183b, +0x11944, 0x11946, +0x119e2, 0x119e2, +0x11a3f, 0x11a46, +0x11a9a, 0x11a9c, +0x11a9e, 0x11aa2, +0x11b00, 0x11b09, +0x11be1, 0x11be1, +0x11c41, 0x11c45, +0x11c70, 0x11c71, +0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, +0x11fff, 0x11fff, +0x12470, 0x12474, +0x12ff1, 0x12ff2, +0x16a6e, 0x16a6f, +0x16af5, 0x16af5, +0x16b37, 0x16b3b, +0x16b44, 0x16b44, +0x16d6d, 0x16d6f, +0x16e97, 0x16e9a, +0x16fe2, 0x16fe2, +0x1bc9f, 0x1bc9f, +0x1da87, 0x1da8b, +0x1e5ff, 0x1e5ff, +0x1e95e, 0x1e95f, +}; /* END of CR_P */ /* PROPERTY: 'Pahawh_Hmong': Script */ static const OnigCodePoint @@ -20144,7 +21606,7 @@ CR_Pc[] = { 6, /* PROPERTY: 'Pd': General Category */ static const OnigCodePoint -CR_Pd[] = { 19, +CR_Pd[] = { 20, 0x002d, 0x002d, 0x058a, 0x058a, 0x05be, 0x05be, @@ -20163,6 +21625,7 @@ CR_Pd[] = { 19, 0xfe58, 0xfe58, 0xfe63, 0xfe63, 0xff0d, 0xff0d, +0x10d6e, 0x10d6e, 0x10ead, 0x10ead, }; /* END of CR_Pd */ @@ -20293,7 +21756,7 @@ CR_Pi[] = { 11, /* PROPERTY: 'Po': General Category */ static const OnigCodePoint -CR_Po[] = { 185, +CR_Po[] = { 193, 0x0021, 0x0023, 0x0025, 0x0027, 0x002a, 0x002a, @@ -20353,8 +21816,9 @@ CR_Po[] = { 185, 0x1a1e, 0x1a1f, 0x1aa0, 0x1aa6, 0x1aa8, 0x1aad, +0x1b4e, 0x1b4f, 0x1b5a, 0x1b60, -0x1b7d, 0x1b7e, +0x1b7d, 0x1b7f, 0x1bfc, 0x1bff, 0x1c3b, 0x1c3f, 0x1c7e, 0x1c7f, @@ -20449,6 +21913,8 @@ CR_Po[] = { 185, 0x111dd, 0x111df, 0x11238, 0x1123d, 0x112a9, 0x112a9, +0x113d4, 0x113d5, +0x113d7, 0x113d8, 0x1144b, 0x1144f, 0x1145a, 0x1145b, 0x1145d, 0x1145d, @@ -20464,9 +21930,12 @@ CR_Po[] = { 185, 0x11a3f, 0x11a46, 0x11a9a, 0x11a9c, 0x11a9e, 0x11aa2, +0x11b00, 0x11b09, +0x11be1, 0x11be1, 0x11c41, 0x11c45, 0x11c70, 0x11c71, 0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, 0x11fff, 0x11fff, 0x12470, 0x12474, 0x12ff1, 0x12ff2, @@ -20474,10 +21943,12 @@ CR_Po[] = { 185, 0x16af5, 0x16af5, 0x16b37, 0x16b3b, 0x16b44, 0x16b44, +0x16d6d, 0x16d6f, 0x16e97, 0x16e9a, 0x16fe2, 0x16fe2, 0x1bc9f, 0x1bc9f, 0x1da87, 0x1da8b, +0x1e5ff, 0x1e5ff, 0x1e95e, 0x1e95f, }; /* END of CR_Po */ @@ -20633,7 +22104,7 @@ CR_Runic[] = { 2, /* PROPERTY: 'S': Major Category */ static const OnigCodePoint -CR_S[] = { 234, +CR_S[] = { 236, 0x0024, 0x0024, 0x002b, 0x002b, 0x003c, 0x003e, @@ -20724,7 +22195,7 @@ CR_S[] = { 234, 0x218a, 0x218b, 0x2190, 0x2307, 0x230c, 0x2328, -0x232b, 0x2426, +0x232b, 0x2429, 0x2440, 0x244a, 0x249c, 0x24e9, 0x2500, 0x2767, @@ -20741,7 +22212,7 @@ CR_S[] = { 234, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, +0x2ff0, 0x2fff, 0x3004, 0x3004, 0x3012, 0x3013, 0x3020, 0x3020, @@ -20750,7 +22221,8 @@ CR_S[] = { 234, 0x309b, 0x309c, 0x3190, 0x3191, 0x3196, 0x319f, -0x31c0, 0x31e3, +0x31c0, 0x31e5, +0x31ef, 0x31ef, 0x3200, 0x321e, 0x322a, 0x3247, 0x3250, 0x3250, @@ -20793,11 +22265,14 @@ CR_S[] = { 234, 0x101d0, 0x101fc, 0x10877, 0x10878, 0x10ac8, 0x10ac8, +0x10d8e, 0x10d8f, 0x1173f, 0x1173f, 0x11fd5, 0x11ff1, 0x16b3c, 0x16b3f, 0x16b45, 0x16b45, 0x1bc9c, 0x1bc9c, +0x1cc00, 0x1ccef, +0x1cd00, 0x1ceb3, 0x1cf50, 0x1cfc3, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, @@ -20843,10 +22318,10 @@ CR_S[] = { 234, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -20854,20 +22329,18 @@ CR_S[] = { 234, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, -0x1f8b0, 0x1f8b1, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, -0x1fb94, 0x1fbca, +0x1fb94, 0x1fbef, }; /* END of CR_S */ /* PROPERTY: 'Samaritan': Script */ @@ -20912,7 +22385,7 @@ CR_Sc[] = { 21, /* PROPERTY: 'Sentence_Terminal': Binary Property */ static const OnigCodePoint -CR_Sentence_Terminal[] = { 79, +CR_Sentence_Terminal[] = { 88, 0x0021, 0x0021, 0x002e, 0x002e, 0x003f, 0x003f, @@ -20930,17 +22403,21 @@ CR_Sentence_Terminal[] = { 79, 0x1367, 0x1368, 0x166e, 0x166e, 0x1735, 0x1736, +0x17d4, 0x17d5, 0x1803, 0x1803, 0x1809, 0x1809, 0x1944, 0x1945, 0x1aa8, 0x1aab, +0x1b4e, 0x1b4f, 0x1b5a, 0x1b5b, 0x1b5e, 0x1b5f, -0x1b7d, 0x1b7e, +0x1b7d, 0x1b7f, 0x1c3b, 0x1c3c, 0x1c7e, 0x1c7f, +0x2024, 0x2024, 0x203c, 0x203d, 0x2047, 0x2049, +0x2cf9, 0x2cfb, 0x2e2e, 0x2e2e, 0x2e3c, 0x2e3c, 0x2e53, 0x2e54, @@ -20956,6 +22433,8 @@ CR_Sentence_Terminal[] = { 79, 0xaa5d, 0xaa5f, 0xaaf0, 0xaaf1, 0xabeb, 0xabeb, +0xfe12, 0xfe12, +0xfe15, 0xfe16, 0xfe52, 0xfe52, 0xfe56, 0xfe57, 0xff01, 0xff01, @@ -20974,6 +22453,7 @@ CR_Sentence_Terminal[] = { 79, 0x11238, 0x11239, 0x1123b, 0x1123c, 0x112a9, 0x112a9, +0x113d4, 0x113d5, 0x1144b, 0x1144c, 0x115c2, 0x115c3, 0x115c9, 0x115d7, @@ -20985,10 +22465,12 @@ CR_Sentence_Terminal[] = { 79, 0x11a9b, 0x11a9c, 0x11c41, 0x11c42, 0x11ef7, 0x11ef8, +0x11f43, 0x11f44, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, 0x16b37, 0x16b38, 0x16b44, 0x16b44, +0x16d6e, 0x16d6f, 0x16e98, 0x16e98, 0x1bc9f, 0x1bc9f, 0x1da88, 0x1da88, @@ -21077,7 +22559,7 @@ CR_Sk[] = { 31, /* PROPERTY: 'Sm': General Category */ static const OnigCodePoint -CR_Sm[] = { 64, +CR_Sm[] = { 65, 0x002b, 0x002b, 0x003c, 0x003e, 0x007c, 0x007c, @@ -21131,6 +22613,7 @@ CR_Sm[] = { 64, 0xff5e, 0xff5e, 0xffe2, 0xffe2, 0xffe9, 0xffec, +0x10d8e, 0x10d8f, 0x1d6c1, 0x1d6c1, 0x1d6db, 0x1d6db, 0x1d6fb, 0x1d6fb, @@ -21146,7 +22629,7 @@ CR_Sm[] = { 64, /* PROPERTY: 'So': General Category */ static const OnigCodePoint -CR_So[] = { 186, +CR_So[] = { 187, 0x00a6, 0x00a6, 0x00a9, 0x00a9, 0x00ae, 0x00ae, @@ -21213,7 +22696,7 @@ CR_So[] = { 186, 0x232b, 0x237b, 0x237d, 0x239a, 0x23b4, 0x23db, -0x23e2, 0x2426, +0x23e2, 0x2429, 0x2440, 0x244a, 0x249c, 0x24e9, 0x2500, 0x25b6, @@ -21233,7 +22716,7 @@ CR_So[] = { 186, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, +0x2ff0, 0x2fff, 0x3004, 0x3004, 0x3012, 0x3013, 0x3020, 0x3020, @@ -21241,7 +22724,8 @@ CR_So[] = { 186, 0x303e, 0x303f, 0x3190, 0x3191, 0x3196, 0x319f, -0x31c0, 0x31e3, +0x31c0, 0x31e5, +0x31ef, 0x31ef, 0x3200, 0x321e, 0x322a, 0x3247, 0x3250, 0x3250, @@ -21275,6 +22759,8 @@ CR_So[] = { 186, 0x16b3c, 0x16b3f, 0x16b45, 0x16b45, 0x1bc9c, 0x1bc9c, +0x1cc00, 0x1ccef, +0x1cd00, 0x1ceb3, 0x1cf50, 0x1cfc3, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, @@ -21308,10 +22794,10 @@ CR_So[] = { 186, 0x1f260, 0x1f265, 0x1f300, 0x1f3fa, 0x1f400, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -21319,25 +22805,23 @@ CR_So[] = { 186, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, -0x1f8b0, 0x1f8b1, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, -0x1fb94, 0x1fbca, +0x1fb94, 0x1fbef, }; /* END of CR_So */ /* PROPERTY: 'Soft_Dotted': Binary Property */ static const OnigCodePoint -CR_Soft_Dotted[] = { 32, +CR_Soft_Dotted[] = { 34, 0x0069, 0x006a, 0x012f, 0x012f, 0x0249, 0x0249, @@ -21370,6 +22854,8 @@ CR_Soft_Dotted[] = { 32, 0x1d65e, 0x1d65f, 0x1d692, 0x1d693, 0x1df1a, 0x1df1a, +0x1e04c, 0x1e04d, +0x1e068, 0x1e068, }; /* END of CR_Soft_Dotted */ /* PROPERTY: 'Sogdian': Script */ @@ -21398,6 +22884,13 @@ CR_Sundanese[] = { 2, 0x1cc0, 0x1cc7, }; /* END of CR_Sundanese */ +/* PROPERTY: 'Sunuwar': Script */ +static const OnigCodePoint +CR_Sunuwar[] = { 2, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, +}; /* END of CR_Sunuwar */ + /* PROPERTY: 'Syloti_Nagri': Script */ static const OnigCodePoint CR_Syloti_Nagri[] = { 1, @@ -21518,7 +23011,7 @@ CR_Telugu[] = { 13, /* PROPERTY: 'Terminal_Punctuation': Binary Property */ static const OnigCodePoint -CR_Terminal_Punctuation[] = { 107, +CR_Terminal_Punctuation[] = { 116, 0x0021, 0x0021, 0x002c, 0x002c, 0x002e, 0x002e, @@ -21535,7 +23028,8 @@ CR_Terminal_Punctuation[] = { 107, 0x0700, 0x070a, 0x070c, 0x070c, 0x07f8, 0x07f9, -0x0830, 0x083e, +0x0830, 0x0835, +0x0837, 0x083e, 0x085e, 0x085e, 0x0964, 0x0965, 0x0e5a, 0x0e5b, @@ -21552,13 +23046,16 @@ CR_Terminal_Punctuation[] = { 107, 0x1808, 0x1809, 0x1944, 0x1945, 0x1aa8, 0x1aab, +0x1b4e, 0x1b4f, 0x1b5a, 0x1b5b, 0x1b5d, 0x1b5f, -0x1b7d, 0x1b7e, +0x1b7d, 0x1b7f, 0x1c3b, 0x1c3f, 0x1c7e, 0x1c7f, +0x2024, 0x2024, 0x203c, 0x203d, 0x2047, 0x2049, +0x2cf9, 0x2cfb, 0x2e2e, 0x2e2e, 0x2e3c, 0x2e3c, 0x2e41, 0x2e41, @@ -21577,6 +23074,8 @@ CR_Terminal_Punctuation[] = { 107, 0xaadf, 0xaadf, 0xaaf0, 0xaaf1, 0xabeb, 0xabeb, +0xfe12, 0xfe12, +0xfe15, 0xfe16, 0xfe50, 0xfe52, 0xfe54, 0xfe57, 0xff01, 0xff01, @@ -21604,6 +23103,7 @@ CR_Terminal_Punctuation[] = { 107, 0x111de, 0x111df, 0x11238, 0x1123c, 0x112a9, 0x112a9, +0x113d4, 0x113d5, 0x1144b, 0x1144d, 0x1145a, 0x1145b, 0x115c2, 0x115c5, @@ -21618,11 +23118,13 @@ CR_Terminal_Punctuation[] = { 107, 0x11c41, 0x11c43, 0x11c71, 0x11c71, 0x11ef7, 0x11ef8, +0x11f43, 0x11f44, 0x12470, 0x12474, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, 0x16b37, 0x16b39, 0x16b44, 0x16b44, +0x16d6e, 0x16d6f, 0x16e97, 0x16e98, 0x1bc9f, 0x1bc9f, 0x1da87, 0x1da8a, @@ -21668,12 +23170,34 @@ CR_Tirhuta[] = { 2, 0x114d0, 0x114d9, }; /* END of CR_Tirhuta */ +/* PROPERTY: 'Todhri': Script */ +static const OnigCodePoint +CR_Todhri[] = { 1, +0x105c0, 0x105f3, +}; /* END of CR_Todhri */ + /* PROPERTY: 'Toto': Script */ static const OnigCodePoint CR_Toto[] = { 1, 0x1e290, 0x1e2ae, }; /* END of CR_Toto */ +/* PROPERTY: 'Tulu_Tigalari': Script */ +static const OnigCodePoint +CR_Tulu_Tigalari[] = { 11, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, +}; /* END of CR_Tulu_Tigalari */ + /* PROPERTY: 'Ugaritic': Script */ static const OnigCodePoint CR_Ugaritic[] = { 2, @@ -21683,7 +23207,7 @@ CR_Ugaritic[] = { 2, /* PROPERTY: 'Unified_Ideograph': Binary Property */ static const OnigCodePoint -CR_Unified_Ideograph[] = { 15, +CR_Unified_Ideograph[] = { 17, 0x3400, 0x4dbf, 0x4e00, 0x9fff, 0xfa0e, 0xfa0f, @@ -21694,16 +23218,18 @@ CR_Unified_Ideograph[] = { 15, 0xfa23, 0xfa24, 0xfa27, 0xfa29, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Unified_Ideograph */ /* PROPERTY: 'Unknown': Script */ static const OnigCodePoint -CR_Unknown[] = { 696, +CR_Unknown[] = { 729, 0x0378, 0x0379, 0x0380, 0x0383, 0x038b, 0x038b, @@ -21726,7 +23252,7 @@ CR_Unknown[] = { 696, 0x085f, 0x085f, 0x086b, 0x086f, 0x088f, 0x088f, -0x0892, 0x0897, +0x0892, 0x0896, 0x0984, 0x0984, 0x098d, 0x098e, 0x0991, 0x0992, @@ -21825,7 +23351,7 @@ CR_Unknown[] = { 696, 0x0cdf, 0x0cdf, 0x0ce4, 0x0ce5, 0x0cf0, 0x0cf0, -0x0cf3, 0x0cff, +0x0cf4, 0x0cff, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d45, 0x0d45, @@ -21855,7 +23381,7 @@ CR_Unknown[] = { 696, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7, 0x0ec7, -0x0ece, 0x0ecf, +0x0ecf, 0x0ecf, 0x0eda, 0x0edb, 0x0ee0, 0x0eff, 0x0f48, 0x0f48, @@ -21918,12 +23444,11 @@ CR_Unknown[] = { 696, 0x1a9a, 0x1a9f, 0x1aae, 0x1aaf, 0x1acf, 0x1aff, -0x1b4d, 0x1b4f, -0x1b7f, 0x1b7f, +0x1b4d, 0x1b4d, 0x1bf4, 0x1bfb, 0x1c38, 0x1c3a, 0x1c4a, 0x1c4c, -0x1c89, 0x1c8f, +0x1c8b, 0x1c8f, 0x1cbb, 0x1cbc, 0x1cc8, 0x1ccf, 0x1cfb, 0x1cff, @@ -21950,7 +23475,7 @@ CR_Unknown[] = { 696, 0x20c1, 0x20cf, 0x20f1, 0x20ff, 0x218c, 0x218f, -0x2427, 0x243f, +0x242a, 0x243f, 0x244b, 0x245f, 0x2b74, 0x2b75, 0x2b96, 0x2b96, @@ -21973,22 +23498,21 @@ CR_Unknown[] = { 696, 0x2e9a, 0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, -0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x3130, 0x3130, 0x318f, 0x318f, -0x31e4, 0x31ef, +0x31e6, 0x31ee, 0x321f, 0x321f, 0xa48d, 0xa48f, 0xa4c7, 0xa4cf, 0xa62c, 0xa63f, 0xa6f8, 0xa6ff, -0xa7cb, 0xa7cf, +0xa7ce, 0xa7cf, 0xa7d2, 0xa7d2, 0xa7d4, 0xa7d4, -0xa7da, 0xa7f1, +0xa7dd, 0xa7f1, 0xa82d, 0xa82f, 0xa83a, 0xa83f, 0xa878, 0xa87f, @@ -22078,7 +23602,8 @@ CR_Unknown[] = { 696, 0x105a2, 0x105a2, 0x105b2, 0x105b2, 0x105ba, 0x105ba, -0x105bd, 0x105ff, +0x105bd, 0x105bf, +0x105f4, 0x105ff, 0x10737, 0x1073f, 0x10756, 0x1075f, 0x10768, 0x1077f, @@ -22121,11 +23646,15 @@ CR_Unknown[] = { 696, 0x10cb3, 0x10cbf, 0x10cf3, 0x10cf9, 0x10d28, 0x10d2f, -0x10d3a, 0x10e5f, +0x10d3a, 0x10d3f, +0x10d66, 0x10d68, +0x10d86, 0x10d8d, +0x10d90, 0x10e5f, 0x10e7f, 0x10e7f, 0x10eaa, 0x10eaa, 0x10eae, 0x10eaf, -0x10eb2, 0x10eff, +0x10eb2, 0x10ec1, +0x10ec5, 0x10efb, 0x10f28, 0x10f2f, 0x10f5a, 0x10f6f, 0x10f8a, 0x10faf, @@ -22143,7 +23672,7 @@ CR_Unknown[] = { 696, 0x111e0, 0x111e0, 0x111f5, 0x111ff, 0x11212, 0x11212, -0x1123f, 0x1127f, +0x11242, 0x1127f, 0x11287, 0x11287, 0x11289, 0x11289, 0x1128e, 0x1128e, @@ -22165,7 +23694,18 @@ CR_Unknown[] = { 696, 0x11358, 0x1135c, 0x11364, 0x11365, 0x1136d, 0x1136f, -0x11375, 0x113ff, +0x11375, 0x1137f, +0x1138a, 0x1138a, +0x1138c, 0x1138d, +0x1138f, 0x1138f, +0x113b6, 0x113b6, +0x113c1, 0x113c1, +0x113c3, 0x113c4, +0x113c6, 0x113c6, +0x113cb, 0x113cb, +0x113d6, 0x113d6, +0x113d9, 0x113e0, +0x113e3, 0x113ff, 0x1145c, 0x1145c, 0x11462, 0x1147f, 0x114c8, 0x114cf, @@ -22176,7 +23716,8 @@ CR_Unknown[] = { 696, 0x1165a, 0x1165f, 0x1166d, 0x1167f, 0x116ba, 0x116bf, -0x116ca, 0x116ff, +0x116ca, 0x116cf, +0x116e4, 0x116ff, 0x1171b, 0x1171c, 0x1172c, 0x1172f, 0x11747, 0x117ff, @@ -22195,7 +23736,10 @@ CR_Unknown[] = { 696, 0x119e5, 0x119ff, 0x11a48, 0x11a4f, 0x11aa3, 0x11aaf, -0x11af9, 0x11bff, +0x11af9, 0x11aff, +0x11b0a, 0x11bbf, +0x11be2, 0x11bef, +0x11bfa, 0x11bff, 0x11c09, 0x11c09, 0x11c37, 0x11c37, 0x11c46, 0x11c4f, @@ -22216,7 +23760,10 @@ CR_Unknown[] = { 696, 0x11d92, 0x11d92, 0x11d99, 0x11d9f, 0x11daa, 0x11edf, -0x11ef9, 0x11faf, +0x11ef9, 0x11eff, +0x11f11, 0x11f11, +0x11f3b, 0x11f3d, +0x11f5b, 0x11faf, 0x11fb1, 0x11fbf, 0x11ff2, 0x11ffe, 0x1239a, 0x123ff, @@ -22224,9 +23771,10 @@ CR_Unknown[] = { 696, 0x12475, 0x1247f, 0x12544, 0x12f8f, 0x12ff3, 0x12fff, -0x1342f, 0x1342f, -0x13439, 0x143ff, -0x14647, 0x167ff, +0x13456, 0x1345f, +0x143fb, 0x143ff, +0x14647, 0x160ff, +0x1613a, 0x167ff, 0x16a39, 0x16a3f, 0x16a5f, 0x16a5f, 0x16a6a, 0x16a6d, @@ -22238,7 +23786,8 @@ CR_Unknown[] = { 696, 0x16b5a, 0x16b5a, 0x16b62, 0x16b62, 0x16b78, 0x16b7c, -0x16b90, 0x16e3f, +0x16b90, 0x16d3f, +0x16d7a, 0x16e3f, 0x16e9b, 0x16eff, 0x16f4b, 0x16f4e, 0x16f88, 0x16f8e, @@ -22246,27 +23795,32 @@ CR_Unknown[] = { 696, 0x16fe5, 0x16fef, 0x16ff2, 0x16fff, 0x187f8, 0x187ff, -0x18cd6, 0x18cff, +0x18cd6, 0x18cfe, 0x18d09, 0x1afef, 0x1aff4, 0x1aff4, 0x1affc, 0x1affc, 0x1afff, 0x1afff, -0x1b123, 0x1b14f, -0x1b153, 0x1b163, +0x1b123, 0x1b131, +0x1b133, 0x1b14f, +0x1b153, 0x1b154, +0x1b156, 0x1b163, 0x1b168, 0x1b16f, 0x1b2fc, 0x1bbff, 0x1bc6b, 0x1bc6f, 0x1bc7d, 0x1bc7f, 0x1bc89, 0x1bc8f, 0x1bc9a, 0x1bc9b, -0x1bca4, 0x1ceff, +0x1bca4, 0x1cbff, +0x1ccfa, 0x1ccff, +0x1ceb4, 0x1ceff, 0x1cf2e, 0x1cf2f, 0x1cf47, 0x1cf4f, 0x1cfc4, 0x1cfff, 0x1d0f6, 0x1d0ff, 0x1d127, 0x1d128, 0x1d1eb, 0x1d1ff, -0x1d246, 0x1d2df, +0x1d246, 0x1d2bf, +0x1d2d4, 0x1d2df, 0x1d2f4, 0x1d2ff, 0x1d357, 0x1d35f, 0x1d379, 0x1d3ff, @@ -22293,19 +23847,25 @@ CR_Unknown[] = { 696, 0x1da8c, 0x1da9a, 0x1daa0, 0x1daa0, 0x1dab0, 0x1deff, -0x1df1f, 0x1dfff, +0x1df1f, 0x1df24, +0x1df2b, 0x1dfff, 0x1e007, 0x1e007, 0x1e019, 0x1e01a, 0x1e022, 0x1e022, 0x1e025, 0x1e025, -0x1e02b, 0x1e0ff, +0x1e02b, 0x1e02f, +0x1e06e, 0x1e08e, +0x1e090, 0x1e0ff, 0x1e12d, 0x1e12f, 0x1e13e, 0x1e13f, 0x1e14a, 0x1e14d, 0x1e150, 0x1e28f, 0x1e2af, 0x1e2bf, 0x1e2fa, 0x1e2fe, -0x1e300, 0x1e7df, +0x1e300, 0x1e4cf, +0x1e4fa, 0x1e5cf, +0x1e5fb, 0x1e5fe, +0x1e600, 0x1e7df, 0x1e7e7, 0x1e7e7, 0x1e7ec, 0x1e7ec, 0x1e7ef, 0x1e7ef, @@ -22363,11 +23923,11 @@ CR_Unknown[] = { 696, 0x1f249, 0x1f24f, 0x1f252, 0x1f25f, 0x1f266, 0x1f2ff, -0x1f6d8, 0x1f6dc, +0x1f6d8, 0x1f6db, 0x1f6ed, 0x1f6ef, 0x1f6fd, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d9, 0x1f7df, +0x1f777, 0x1f77a, +0x1f7da, 0x1f7df, 0x1f7ec, 0x1f7ef, 0x1f7f1, 0x1f7ff, 0x1f80c, 0x1f80f, @@ -22375,28 +23935,27 @@ CR_Unknown[] = { 696, 0x1f85a, 0x1f85f, 0x1f888, 0x1f88f, 0x1f8ae, 0x1f8af, -0x1f8b2, 0x1f8ff, +0x1f8bc, 0x1f8bf, +0x1f8c2, 0x1f8ff, 0x1fa54, 0x1fa5f, 0x1fa6e, 0x1fa6f, -0x1fa75, 0x1fa77, 0x1fa7d, 0x1fa7f, -0x1fa87, 0x1fa8f, -0x1faad, 0x1faaf, -0x1fabb, 0x1fabf, -0x1fac6, 0x1facf, -0x1fada, 0x1fadf, -0x1fae8, 0x1faef, -0x1faf7, 0x1faff, +0x1fa8a, 0x1fa8e, +0x1fac7, 0x1facd, +0x1fadd, 0x1fade, +0x1faea, 0x1faef, +0x1faf9, 0x1faff, 0x1fb93, 0x1fb93, -0x1fbcb, 0x1fbef, 0x1fbfa, 0x1ffff, 0x2a6e0, 0x2a6ff, -0x2b739, 0x2b73f, +0x2b73a, 0x2b73f, 0x2b81e, 0x2b81f, 0x2cea2, 0x2ceaf, -0x2ebe1, 0x2f7ff, +0x2ebe1, 0x2ebef, +0x2ee5e, 0x2f7ff, 0x2fa1e, 0x2ffff, -0x3134b, 0xe0000, +0x3134b, 0x3134f, +0x323b0, 0xe0000, 0xe0002, 0xe001f, 0xe0080, 0xe00ff, 0xe01f0, 0x10ffff, @@ -22452,7 +24011,7 @@ CR_Warang_Citi[] = { 2, /* PROPERTY: 'XID_Continue': Derived Property */ static const OnigCodePoint -CR_XID_Continue[] = { 763, +CR_XID_Continue[] = { 800, 0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, @@ -22506,7 +24065,7 @@ CR_XID_Continue[] = { 763, 0x0860, 0x086a, 0x0870, 0x0887, 0x0889, 0x088e, -0x0898, 0x08e1, +0x0897, 0x08e1, 0x08e3, 0x0963, 0x0966, 0x096f, 0x0971, 0x0983, @@ -22611,7 +24170,7 @@ CR_XID_Continue[] = { 763, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -22644,7 +24203,7 @@ CR_XID_Continue[] = { 763, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, @@ -22729,7 +24288,7 @@ CR_XID_Continue[] = { 763, 0x1c00, 0x1c37, 0x1c40, 0x1c49, 0x1c4d, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1cd0, 0x1cd2, @@ -22753,6 +24312,7 @@ CR_XID_Continue[] = { 763, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, +0x200c, 0x200d, 0x203f, 0x2040, 0x2054, 0x2054, 0x2071, 0x2071, @@ -22798,8 +24358,7 @@ CR_XID_Continue[] = { 763, 0x3041, 0x3096, 0x3099, 0x309a, 0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, +0x30a1, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x31a0, 0x31bf, @@ -22814,10 +24373,10 @@ CR_XID_Continue[] = { 763, 0xa67f, 0xa6f1, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa827, 0xa82c, 0xa82c, 0xa840, 0xa873, @@ -22883,7 +24442,7 @@ CR_XID_Continue[] = { 763, 0xff21, 0xff3a, 0xff3f, 0xff3f, 0xff41, 0xff5a, -0xff66, 0xffbe, +0xff65, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, @@ -22921,6 +24480,7 @@ CR_XID_Continue[] = { 763, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -22961,10 +24521,14 @@ CR_XID_Continue[] = { 763, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d6d, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, -0x10f00, 0x10f1c, +0x10ec2, 0x10ec4, +0x10efc, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10f70, 0x10f85, @@ -22987,7 +24551,7 @@ CR_XID_Continue[] = { 763, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -23010,6 +24574,16 @@ CR_XID_Continue[] = { 763, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d3, +0x113e1, 0x113e2, 0x11400, 0x1144a, 0x11450, 0x11459, 0x1145e, 0x11461, @@ -23024,6 +24598,7 @@ CR_XID_Continue[] = { 763, 0x11650, 0x11659, 0x11680, 0x116b8, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11739, @@ -23047,6 +24622,8 @@ CR_XID_Continue[] = { 763, 0x11a50, 0x11a99, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c40, @@ -23068,13 +24645,20 @@ CR_XID_Continue[] = { 763, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f5a, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13440, 0x13455, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -23087,6 +24671,8 @@ CR_XID_Continue[] = { 763, 0x16b50, 0x16b59, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -23096,12 +24682,14 @@ CR_XID_Continue[] = { 763, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -23109,6 +24697,7 @@ CR_XID_Continue[] = { 763, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9d, 0x1bc9e, +0x1ccf0, 0x1ccf9, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, 0x1d165, 0x1d169, @@ -23155,17 +24744,22 @@ CR_XID_Continue[] = { 763, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -23209,18 +24803,20 @@ CR_XID_Continue[] = { 763, 0x1eeab, 0x1eebb, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0100, 0xe01ef, }; /* END of CR_XID_Continue */ /* PROPERTY: 'XID_Start': Derived Property */ static const OnigCodePoint -CR_XID_Start[] = { 655, +CR_XID_Start[] = { 684, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -23445,7 +25041,7 @@ CR_XID_Start[] = { 655, 0x1c00, 0x1c23, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, @@ -23528,10 +25124,10 @@ CR_XID_Start[] = { 655, 0xa6a0, 0xa6ef, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa801, 0xa803, 0xa805, 0xa807, 0xa80a, @@ -23636,6 +25232,7 @@ CR_XID_Start[] = { 655, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -23672,8 +25269,11 @@ CR_XID_Start[] = { 655, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d23, +0x10d4a, 0x10d65, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, @@ -23696,6 +25296,7 @@ CR_XID_Start[] = { 655, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -23711,6 +25312,13 @@ CR_XID_Start[] = { 655, 0x1133d, 0x1133d, 0x11350, 0x11350, 0x1135d, 0x11361, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113d1, 0x113d1, +0x113d3, 0x113d3, 0x11400, 0x11434, 0x11447, 0x1144a, 0x1145f, 0x11461, @@ -23745,6 +25353,7 @@ CR_XID_Start[] = { 655, 0x11a5c, 0x11a89, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, 0x11c00, 0x11c08, 0x11c0a, 0x11c2e, 0x11c40, 0x11c40, @@ -23758,13 +25367,19 @@ CR_XID_Start[] = { 655, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x1611d, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a70, 0x16abe, @@ -23773,6 +25388,7 @@ CR_XID_Start[] = { 655, 0x16b40, 0x16b43, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f50, 0x16f50, @@ -23781,12 +25397,14 @@ CR_XID_Start[] = { 655, 0x16fe3, 0x16fe3, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -23824,11 +25442,16 @@ CR_XID_Start[] = { 655, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -23870,12 +25493,14 @@ CR_XID_Start[] = { 655, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_XID_Start */ /* PROPERTY: 'Yezidi': Script */ @@ -25031,6 +26656,12 @@ CR_In_Vithkuqi[] = { 1, 0x10570, 0x105bf, }; /* END of CR_In_Vithkuqi */ +/* PROPERTY: 'In_Todhri': Block */ +static const OnigCodePoint +CR_In_Todhri[] = { 1, +0x105c0, 0x105ff, +}; /* END of CR_In_Todhri */ + /* PROPERTY: 'In_Linear_A': Block */ static const OnigCodePoint CR_In_Linear_A[] = { 1, @@ -25151,6 +26782,12 @@ CR_In_Hanifi_Rohingya[] = { 1, 0x10d00, 0x10d3f, }; /* END of CR_In_Hanifi_Rohingya */ +/* PROPERTY: 'In_Garay': Block */ +static const OnigCodePoint +CR_In_Garay[] = { 1, +0x10d40, 0x10d8f, +}; /* END of CR_In_Garay */ + /* PROPERTY: 'In_Rumi_Numeral_Symbols': Block */ static const OnigCodePoint CR_In_Rumi_Numeral_Symbols[] = { 1, @@ -25163,6 +26800,12 @@ CR_In_Yezidi[] = { 1, 0x10e80, 0x10ebf, }; /* END of CR_In_Yezidi */ +/* PROPERTY: 'In_Arabic_Extended_C': Block */ +static const OnigCodePoint +CR_In_Arabic_Extended_C[] = { 1, +0x10ec0, 0x10eff, +}; /* END of CR_In_Arabic_Extended_C */ + /* PROPERTY: 'In_Old_Sogdian': Block */ static const OnigCodePoint CR_In_Old_Sogdian[] = { 1, @@ -25256,6 +26899,12 @@ CR_In_Grantha[] = { 1, 0x11300, 0x1137f, }; /* END of CR_In_Grantha */ +/* PROPERTY: 'In_Tulu_Tigalari': Block */ +static const OnigCodePoint +CR_In_Tulu_Tigalari[] = { 1, +0x11380, 0x113ff, +}; /* END of CR_In_Tulu_Tigalari */ + /* PROPERTY: 'In_Newa': Block */ static const OnigCodePoint CR_In_Newa[] = { 1, @@ -25292,6 +26941,12 @@ CR_In_Takri[] = { 1, 0x11680, 0x116cf, }; /* END of CR_In_Takri */ +/* PROPERTY: 'In_Myanmar_Extended_C': Block */ +static const OnigCodePoint +CR_In_Myanmar_Extended_C[] = { 1, +0x116d0, 0x116ff, +}; /* END of CR_In_Myanmar_Extended_C */ + /* PROPERTY: 'In_Ahom': Block */ static const OnigCodePoint CR_In_Ahom[] = { 1, @@ -25346,6 +27001,18 @@ CR_In_Pau_Cin_Hau[] = { 1, 0x11ac0, 0x11aff, }; /* END of CR_In_Pau_Cin_Hau */ +/* PROPERTY: 'In_Devanagari_Extended_A': Block */ +static const OnigCodePoint +CR_In_Devanagari_Extended_A[] = { 1, +0x11b00, 0x11b5f, +}; /* END of CR_In_Devanagari_Extended_A */ + +/* PROPERTY: 'In_Sunuwar': Block */ +static const OnigCodePoint +CR_In_Sunuwar[] = { 1, +0x11bc0, 0x11bff, +}; /* END of CR_In_Sunuwar */ + /* PROPERTY: 'In_Bhaiksuki': Block */ static const OnigCodePoint CR_In_Bhaiksuki[] = { 1, @@ -25376,6 +27043,12 @@ CR_In_Makasar[] = { 1, 0x11ee0, 0x11eff, }; /* END of CR_In_Makasar */ +/* PROPERTY: 'In_Kawi': Block */ +static const OnigCodePoint +CR_In_Kawi[] = { 1, +0x11f00, 0x11f5f, +}; /* END of CR_In_Kawi */ + /* PROPERTY: 'In_Lisu_Supplement': Block */ static const OnigCodePoint CR_In_Lisu_Supplement[] = { 1, @@ -25421,15 +27094,27 @@ CR_In_Egyptian_Hieroglyphs[] = { 1, /* PROPERTY: 'In_Egyptian_Hieroglyph_Format_Controls': Block */ static const OnigCodePoint CR_In_Egyptian_Hieroglyph_Format_Controls[] = { 1, -0x13430, 0x1343f, +0x13430, 0x1345f, }; /* END of CR_In_Egyptian_Hieroglyph_Format_Controls */ +/* PROPERTY: 'In_Egyptian_Hieroglyphs_Extended_A': Block */ +static const OnigCodePoint +CR_In_Egyptian_Hieroglyphs_Extended_A[] = { 1, +0x13460, 0x143ff, +}; /* END of CR_In_Egyptian_Hieroglyphs_Extended_A */ + /* PROPERTY: 'In_Anatolian_Hieroglyphs': Block */ static const OnigCodePoint CR_In_Anatolian_Hieroglyphs[] = { 1, 0x14400, 0x1467f, }; /* END of CR_In_Anatolian_Hieroglyphs */ +/* PROPERTY: 'In_Gurung_Khema': Block */ +static const OnigCodePoint +CR_In_Gurung_Khema[] = { 1, +0x16100, 0x1613f, +}; /* END of CR_In_Gurung_Khema */ + /* PROPERTY: 'In_Bamum_Supplement': Block */ static const OnigCodePoint CR_In_Bamum_Supplement[] = { 1, @@ -25460,6 +27145,12 @@ CR_In_Pahawh_Hmong[] = { 1, 0x16b00, 0x16b8f, }; /* END of CR_In_Pahawh_Hmong */ +/* PROPERTY: 'In_Kirat_Rai': Block */ +static const OnigCodePoint +CR_In_Kirat_Rai[] = { 1, +0x16d40, 0x16d7f, +}; /* END of CR_In_Kirat_Rai */ + /* PROPERTY: 'In_Medefaidrin': Block */ static const OnigCodePoint CR_In_Medefaidrin[] = { 1, @@ -25544,6 +27235,12 @@ CR_In_Shorthand_Format_Controls[] = { 1, 0x1bca0, 0x1bcaf, }; /* END of CR_In_Shorthand_Format_Controls */ +/* PROPERTY: 'In_Symbols_for_Legacy_Computing_Supplement': Block */ +static const OnigCodePoint +CR_In_Symbols_for_Legacy_Computing_Supplement[] = { 1, +0x1cc00, 0x1cebf, +}; /* END of CR_In_Symbols_for_Legacy_Computing_Supplement */ + /* PROPERTY: 'In_Znamenny_Musical_Notation': Block */ static const OnigCodePoint CR_In_Znamenny_Musical_Notation[] = { 1, @@ -25568,6 +27265,12 @@ CR_In_Ancient_Greek_Musical_Notation[] = { 1, 0x1d200, 0x1d24f, }; /* END of CR_In_Ancient_Greek_Musical_Notation */ +/* PROPERTY: 'In_Kaktovik_Numerals': Block */ +static const OnigCodePoint +CR_In_Kaktovik_Numerals[] = { 1, +0x1d2c0, 0x1d2df, +}; /* END of CR_In_Kaktovik_Numerals */ + /* PROPERTY: 'In_Mayan_Numerals': Block */ static const OnigCodePoint CR_In_Mayan_Numerals[] = { 1, @@ -25610,6 +27313,12 @@ CR_In_Glagolitic_Supplement[] = { 1, 0x1e000, 0x1e02f, }; /* END of CR_In_Glagolitic_Supplement */ +/* PROPERTY: 'In_Cyrillic_Extended_D': Block */ +static const OnigCodePoint +CR_In_Cyrillic_Extended_D[] = { 1, +0x1e030, 0x1e08f, +}; /* END of CR_In_Cyrillic_Extended_D */ + /* PROPERTY: 'In_Nyiakeng_Puachue_Hmong': Block */ static const OnigCodePoint CR_In_Nyiakeng_Puachue_Hmong[] = { 1, @@ -25628,6 +27337,18 @@ CR_In_Wancho[] = { 1, 0x1e2c0, 0x1e2ff, }; /* END of CR_In_Wancho */ +/* PROPERTY: 'In_Nag_Mundari': Block */ +static const OnigCodePoint +CR_In_Nag_Mundari[] = { 1, +0x1e4d0, 0x1e4ff, +}; /* END of CR_In_Nag_Mundari */ + +/* PROPERTY: 'In_Ol_Onal': Block */ +static const OnigCodePoint +CR_In_Ol_Onal[] = { 1, +0x1e5d0, 0x1e5ff, +}; /* END of CR_In_Ol_Onal */ + /* PROPERTY: 'In_Ethiopic_Extended_B': Block */ static const OnigCodePoint CR_In_Ethiopic_Extended_B[] = { 1, @@ -25790,6 +27511,12 @@ CR_In_CJK_Unified_Ideographs_Extension_F[] = { 1, 0x2ceb0, 0x2ebef, }; /* END of CR_In_CJK_Unified_Ideographs_Extension_F */ +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_I': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_I[] = { 1, +0x2ebf0, 0x2ee5f, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_I */ + /* PROPERTY: 'In_CJK_Compatibility_Ideographs_Supplement': Block */ static const OnigCodePoint CR_In_CJK_Compatibility_Ideographs_Supplement[] = { 1, @@ -25802,6 +27529,12 @@ CR_In_CJK_Unified_Ideographs_Extension_G[] = { 1, 0x30000, 0x3134f, }; /* END of CR_In_CJK_Unified_Ideographs_Extension_G */ +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_H': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_H[] = { 1, +0x31350, 0x323af, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_H */ + /* PROPERTY: 'In_Tags': Block */ static const OnigCodePoint CR_In_Tags[] = { 1, @@ -25832,42 +27565,42 @@ CR_In_No_Block[] = { 51, 0x2fe0, 0x2fef, 0x10200, 0x1027f, 0x103e0, 0x103ff, -0x105c0, 0x105ff, 0x107c0, 0x107ff, 0x108b0, 0x108df, 0x10940, 0x1097f, 0x10aa0, 0x10abf, 0x10bb0, 0x10bff, 0x10c50, 0x10c7f, -0x10d40, 0x10e5f, -0x10ec0, 0x10eff, +0x10d90, 0x10e5f, 0x11250, 0x1127f, -0x11380, 0x113ff, 0x114e0, 0x1157f, -0x116d0, 0x116ff, 0x11750, 0x117ff, 0x11850, 0x1189f, 0x11960, 0x1199f, -0x11b00, 0x11bff, +0x11b60, 0x11bbf, 0x11cc0, 0x11cff, 0x11db0, 0x11edf, -0x11f00, 0x11faf, +0x11f60, 0x11faf, 0x12550, 0x12f8f, -0x13440, 0x143ff, -0x14680, 0x167ff, -0x16b90, 0x16e3f, +0x14680, 0x160ff, +0x16140, 0x167ff, +0x16b90, 0x16d3f, +0x16d80, 0x16e3f, 0x16ea0, 0x16eff, 0x16fa0, 0x16fdf, 0x18d80, 0x1afef, 0x1b300, 0x1bbff, -0x1bcb0, 0x1ceff, +0x1bcb0, 0x1cbff, +0x1cec0, 0x1ceff, 0x1cfd0, 0x1cfff, -0x1d250, 0x1d2df, +0x1d250, 0x1d2bf, 0x1d380, 0x1d3ff, 0x1dab0, 0x1deff, -0x1e030, 0x1e0ff, +0x1e090, 0x1e0ff, 0x1e150, 0x1e28f, -0x1e300, 0x1e7df, +0x1e300, 0x1e4cf, +0x1e500, 0x1e5cf, +0x1e600, 0x1e7df, 0x1e8e0, 0x1e8ff, 0x1e960, 0x1ec6f, 0x1ecc0, 0x1ecff, @@ -25875,9 +27608,9 @@ CR_In_No_Block[] = { 51, 0x1ef00, 0x1efff, 0x1fc00, 0x1ffff, 0x2a6e0, 0x2a6ff, -0x2ebf0, 0x2f7ff, +0x2ee60, 0x2f7ff, 0x2fa20, 0x2ffff, -0x31350, 0xdffff, +0x323b0, 0xdffff, 0xe0080, 0xe00ff, 0xe01f0, 0xeffff, }; /* END of CR_In_No_Block */ @@ -25892,7 +27625,7 @@ const CodeRanges[] = { CR_Graph, CR_Lower, CR_Print, - CR_Punct, + CR_PosixPunct, CR_Space, CR_Upper, CR_XDigit, @@ -25967,6 +27700,7 @@ const CodeRanges[] = { CR_Ethiopic, CR_Extended_Pictographic, CR_Extender, + CR_Garay, CR_Georgian, CR_Glagolitic, CR_Gothic, @@ -25978,6 +27712,7 @@ const CodeRanges[] = { CR_Gujarati, CR_Gunjala_Gondi, CR_Gurmukhi, + CR_Gurung_Khema, CR_Han, CR_Hangul, CR_Hanifi_Rohingya, @@ -25989,10 +27724,14 @@ const CodeRanges[] = { CR_Hyphen, CR_IDS_Binary_Operator, CR_IDS_Trinary_Operator, + CR_IDS_Unary_Operator, + CR_ID_Compat_Math_Continue, + CR_ID_Compat_Math_Start, CR_ID_Continue, CR_ID_Start, CR_Ideographic, CR_Imperial_Aramaic, + CR_InCB, CR_Inherited, CR_Inscriptional_Pahlavi, CR_Inscriptional_Parthian, @@ -26001,12 +27740,14 @@ const CodeRanges[] = { CR_Kaithi, CR_Kannada, CR_Katakana, + CR_Kawi, CR_Kayah_Li, CR_Kharoshthi, CR_Khitan_Small_Script, CR_Khmer, CR_Khojki, CR_Khudawadi, + CR_Kirat_Rai, CR_L, CR_LC, CR_Lao, @@ -26044,12 +27785,14 @@ const CodeRanges[] = { CR_Miao, CR_Mn, CR_Modi, + CR_Modifier_Combining_Mark, CR_Mongolian, CR_Mro, CR_Multani, CR_Myanmar, CR_N, CR_Nabataean, + CR_Nag_Mundari, CR_Nandinagari, CR_Nd, CR_New_Tai_Lue, @@ -26062,6 +27805,7 @@ const CodeRanges[] = { CR_Nyiakeng_Puachue_Hmong, CR_Ogham, CR_Ol_Chiki, + CR_Ol_Onal, CR_Old_Hungarian, CR_Old_Italic, CR_Old_North_Arabian, @@ -26122,6 +27866,7 @@ const CodeRanges[] = { CR_Sora_Sompeng, CR_Soyombo, CR_Sundanese, + CR_Sunuwar, CR_Syloti_Nagri, CR_Syriac, CR_Tagalog, @@ -26140,7 +27885,9 @@ const CodeRanges[] = { CR_Tibetan, CR_Tifinagh, CR_Tirhuta, + CR_Todhri, CR_Toto, + CR_Tulu_Tigalari, CR_Ugaritic, CR_Unified_Ideograph, CR_Unknown, @@ -26345,6 +28092,7 @@ const CodeRanges[] = { CR_In_Elbasan, CR_In_Caucasian_Albanian, CR_In_Vithkuqi, + CR_In_Todhri, CR_In_Linear_A, CR_In_Latin_Extended_F, CR_In_Cypriot_Syllabary, @@ -26367,8 +28115,10 @@ const CodeRanges[] = { CR_In_Old_Turkic, CR_In_Old_Hungarian, CR_In_Hanifi_Rohingya, + CR_In_Garay, CR_In_Rumi_Numeral_Symbols, CR_In_Yezidi, + CR_In_Arabic_Extended_C, CR_In_Old_Sogdian, CR_In_Sogdian, CR_In_Old_Uyghur, @@ -26385,12 +28135,14 @@ const CodeRanges[] = { CR_In_Multani, CR_In_Khudawadi, CR_In_Grantha, + CR_In_Tulu_Tigalari, CR_In_Newa, CR_In_Tirhuta, CR_In_Siddham, CR_In_Modi, CR_In_Mongolian_Supplement, CR_In_Takri, + CR_In_Myanmar_Extended_C, CR_In_Ahom, CR_In_Dogra, CR_In_Warang_Citi, @@ -26400,11 +28152,14 @@ const CodeRanges[] = { CR_In_Soyombo, CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A, CR_In_Pau_Cin_Hau, + CR_In_Devanagari_Extended_A, + CR_In_Sunuwar, CR_In_Bhaiksuki, CR_In_Marchen, CR_In_Masaram_Gondi, CR_In_Gunjala_Gondi, CR_In_Makasar, + CR_In_Kawi, CR_In_Lisu_Supplement, CR_In_Tamil_Supplement, CR_In_Cuneiform, @@ -26413,12 +28168,15 @@ const CodeRanges[] = { CR_In_Cypro_Minoan, CR_In_Egyptian_Hieroglyphs, CR_In_Egyptian_Hieroglyph_Format_Controls, + CR_In_Egyptian_Hieroglyphs_Extended_A, CR_In_Anatolian_Hieroglyphs, + CR_In_Gurung_Khema, CR_In_Bamum_Supplement, CR_In_Mro, CR_In_Tangsa, CR_In_Bassa_Vah, CR_In_Pahawh_Hmong, + CR_In_Kirat_Rai, CR_In_Medefaidrin, CR_In_Miao, CR_In_Ideographic_Symbols_and_Punctuation, @@ -26433,10 +28191,12 @@ const CodeRanges[] = { CR_In_Nushu, CR_In_Duployan, CR_In_Shorthand_Format_Controls, + CR_In_Symbols_for_Legacy_Computing_Supplement, CR_In_Znamenny_Musical_Notation, CR_In_Byzantine_Musical_Symbols, CR_In_Musical_Symbols, CR_In_Ancient_Greek_Musical_Notation, + CR_In_Kaktovik_Numerals, CR_In_Mayan_Numerals, CR_In_Tai_Xuan_Jing_Symbols, CR_In_Counting_Rod_Numerals, @@ -26444,9 +28204,12 @@ const CodeRanges[] = { CR_In_Sutton_SignWriting, CR_In_Latin_Extended_G, CR_In_Glagolitic_Supplement, + CR_In_Cyrillic_Extended_D, CR_In_Nyiakeng_Puachue_Hmong, CR_In_Toto, CR_In_Wancho, + CR_In_Nag_Mundari, + CR_In_Ol_Onal, CR_In_Ethiopic_Extended_B, CR_In_Mende_Kikakui, CR_In_Adlam, @@ -26474,8 +28237,10 @@ const CodeRanges[] = { CR_In_CJK_Unified_Ideographs_Extension_D, CR_In_CJK_Unified_Ideographs_Extension_E, CR_In_CJK_Unified_Ideographs_Extension_F, + CR_In_CJK_Unified_Ideographs_Extension_I, CR_In_CJK_Compatibility_Ideographs_Supplement, CR_In_CJK_Unified_Ideographs_Extension_G, + CR_In_CJK_Unified_Ideographs_Extension_H, CR_In_Tags, CR_In_Variation_Selectors_Supplement, CR_In_Supplementary_Private_Use_Area_A, @@ -26486,12 +28251,12 @@ const CodeRanges[] = { #define pool_offset(s) offsetof(struct unicode_prop_name_pool_t, unicode_prop_name_pool_str##s) -#define TOTAL_KEYWORDS 843 +#define TOTAL_KEYWORDS 886 #define MIN_WORD_LENGTH 1 #define MAX_WORD_LENGTH 45 -#define MIN_HASH_VALUE 10 -#define MAX_HASH_VALUE 6176 -/* maximum key range = 6167, duplicates = 0 */ +#define MIN_HASH_VALUE 12 +#define MAX_HASH_VALUE 6900 +/* maximum key range = 6889, duplicates = 0 */ #ifndef GPERF_DOWNCASE #define GPERF_DOWNCASE 1 @@ -26550,32 +28315,32 @@ hash (register const char *str, register size_t len) { static const unsigned short asso_values[] = { - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 0, 1338, 136, 400, 19, - 1593, 1119, 864, 7, 1377, 8, 528, 103, 3, 16, - 1430, 1254, 56, 181, 326, 637, 1293, 794, 1313, 1449, - 10, 4, 7, 6177, 6177, 6177, 6177, 0, 1338, 136, - 400, 19, 1593, 1119, 864, 7, 1377, 8, 528, 103, - 3, 16, 1430, 1254, 56, 181, 326, 637, 1293, 794, - 1313, 1449, 10, 4, 7, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177 + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 0, 1564, 118, 343, 36, + 1531, 1146, 1071, 7, 1812, 8, 684, 99, 4, 16, + 1399, 824, 47, 173, 241, 486, 2191, 1723, 940, 1648, + 9, 0, 24, 6901, 6901, 6901, 6901, 0, 1564, 118, + 343, 36, 1531, 1146, 1071, 7, 1812, 8, 684, 99, + 4, 16, 1399, 824, 47, 173, 241, 486, 2191, 1723, + 940, 1648, 9, 0, 24, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901 }; register unsigned int hval = (unsigned int )len; @@ -26617,1695 +28382,1781 @@ hash (register const char *str, register size_t len) struct unicode_prop_name_pool_t { - char unicode_prop_name_pool_str10[sizeof("lana")]; - char unicode_prop_name_pool_str17[sizeof("lina")]; - char unicode_prop_name_pool_str18[sizeof("z")]; - char unicode_prop_name_pool_str20[sizeof("yi")]; - char unicode_prop_name_pool_str24[sizeof("mn")]; - char unicode_prop_name_pool_str27[sizeof("cn")]; + char unicode_prop_name_pool_str12[sizeof("lana")]; + char unicode_prop_name_pool_str16[sizeof("yi")]; + char unicode_prop_name_pool_str19[sizeof("lina")]; + char unicode_prop_name_pool_str25[sizeof("yiii")]; + char unicode_prop_name_pool_str26[sizeof("mn")]; char unicode_prop_name_pool_str28[sizeof("maka")]; - char unicode_prop_name_pool_str29[sizeof("yiii")]; - char unicode_prop_name_pool_str30[sizeof("mani")]; - char unicode_prop_name_pool_str34[sizeof("inkannada")]; - char unicode_prop_name_pool_str35[sizeof("ci")]; - char unicode_prop_name_pool_str37[sizeof("lo")]; - char unicode_prop_name_pool_str38[sizeof("lao")]; - char unicode_prop_name_pool_str39[sizeof("laoo")]; - char unicode_prop_name_pool_str41[sizeof("zzzz")]; + char unicode_prop_name_pool_str31[sizeof("mani")]; + char unicode_prop_name_pool_str34[sizeof("z")]; + char unicode_prop_name_pool_str37[sizeof("inkannada")]; + char unicode_prop_name_pool_str38[sizeof("lo")]; + char unicode_prop_name_pool_str39[sizeof("lao")]; + char unicode_prop_name_pool_str40[sizeof("laoo")]; char unicode_prop_name_pool_str43[sizeof("miao")]; - char unicode_prop_name_pool_str44[sizeof("yezi")]; - char unicode_prop_name_pool_str51[sizeof("innko")]; - char unicode_prop_name_pool_str53[sizeof("co")]; - char unicode_prop_name_pool_str56[sizeof("me")]; - char unicode_prop_name_pool_str60[sizeof("loe")]; - char unicode_prop_name_pool_str70[sizeof("gran")]; - char unicode_prop_name_pool_str72[sizeof("pi")]; - char unicode_prop_name_pool_str76[sizeof("lineara")]; - char unicode_prop_name_pool_str84[sizeof("mark")]; - char unicode_prop_name_pool_str86[sizeof("cari")]; - char unicode_prop_name_pool_str87[sizeof("carian")]; - char unicode_prop_name_pool_str90[sizeof("po")]; - char unicode_prop_name_pool_str91[sizeof("mendekikakui")]; - char unicode_prop_name_pool_str94[sizeof("grek")]; - char unicode_prop_name_pool_str96[sizeof("pe")]; - char unicode_prop_name_pool_str99[sizeof("meeteimayek")]; - char unicode_prop_name_pool_str101[sizeof("inkharoshthi")]; - char unicode_prop_name_pool_str102[sizeof("geor")]; - char unicode_prop_name_pool_str103[sizeof("greek")]; - char unicode_prop_name_pool_str107[sizeof("mro")]; - char unicode_prop_name_pool_str108[sizeof("mroo")]; - char unicode_prop_name_pool_str110[sizeof("kana")]; - char unicode_prop_name_pool_str111[sizeof("mero")]; - char unicode_prop_name_pool_str120[sizeof("m")]; - char unicode_prop_name_pool_str133[sizeof("gonm")]; - char unicode_prop_name_pool_str134[sizeof("cakm")]; - char unicode_prop_name_pool_str139[sizeof("inosmanya")]; + char unicode_prop_name_pool_str46[sizeof("cn")]; + char unicode_prop_name_pool_str52[sizeof("ci")]; + char unicode_prop_name_pool_str53[sizeof("innko")]; + char unicode_prop_name_pool_str55[sizeof("zzzz")]; + char unicode_prop_name_pool_str56[sizeof("yezi")]; + char unicode_prop_name_pool_str58[sizeof("gara")]; + char unicode_prop_name_pool_str62[sizeof("gran")]; + char unicode_prop_name_pool_str63[sizeof("pi")]; + char unicode_prop_name_pool_str69[sizeof("lineara")]; + char unicode_prop_name_pool_str70[sizeof("co")]; + char unicode_prop_name_pool_str75[sizeof("mark")]; + char unicode_prop_name_pool_str81[sizeof("po")]; + char unicode_prop_name_pool_str84[sizeof("inkiratrai")]; + char unicode_prop_name_pool_str90[sizeof("me")]; + char unicode_prop_name_pool_str93[sizeof("inkharoshthi")]; + char unicode_prop_name_pool_str94[sizeof("cari")]; + char unicode_prop_name_pool_str95[sizeof("loe")]; + char unicode_prop_name_pool_str97[sizeof("carian")]; + char unicode_prop_name_pool_str98[sizeof("mro")]; + char unicode_prop_name_pool_str99[sizeof("mroo")]; + char unicode_prop_name_pool_str102[sizeof("grek")]; + char unicode_prop_name_pool_str107[sizeof("kana")]; + char unicode_prop_name_pool_str110[sizeof("geor")]; + char unicode_prop_name_pool_str111[sizeof("greek")]; + char unicode_prop_name_pool_str116[sizeof("m")]; + char unicode_prop_name_pool_str119[sizeof("mero")]; + char unicode_prop_name_pool_str121[sizeof("pe")]; + char unicode_prop_name_pool_str126[sizeof("mendekikakui")]; + char unicode_prop_name_pool_str130[sizeof("gonm")]; + char unicode_prop_name_pool_str136[sizeof("inosmanya")]; char unicode_prop_name_pool_str142[sizeof("inmanichaean")]; - char unicode_prop_name_pool_str146[sizeof("inarmenian")]; - char unicode_prop_name_pool_str151[sizeof("inmro")]; - char unicode_prop_name_pool_str152[sizeof("inmiao")]; - char unicode_prop_name_pool_str156[sizeof("c")]; - char unicode_prop_name_pool_str163[sizeof("inchakma")]; - char unicode_prop_name_pool_str166[sizeof("common")]; - char unicode_prop_name_pool_str169[sizeof("mandaic")]; - char unicode_prop_name_pool_str182[sizeof("inmyanmar")]; - char unicode_prop_name_pool_str187[sizeof("inmakasar")]; - char unicode_prop_name_pool_str192[sizeof("qaai")]; - char unicode_prop_name_pool_str200[sizeof("inideographicsymbolsandpunctuation")]; - char unicode_prop_name_pool_str204[sizeof("inkhmer")]; - char unicode_prop_name_pool_str207[sizeof("cans")]; - char unicode_prop_name_pool_str209[sizeof("prependedconcatenationmark")]; - char unicode_prop_name_pool_str211[sizeof("lm")]; - char unicode_prop_name_pool_str212[sizeof("marc")]; - char unicode_prop_name_pool_str219[sizeof("connectorpunctuation")]; - char unicode_prop_name_pool_str220[sizeof("inrunic")]; - char unicode_prop_name_pool_str221[sizeof("incarian")]; - char unicode_prop_name_pool_str223[sizeof("inavestan")]; - char unicode_prop_name_pool_str225[sizeof("combiningmark")]; - char unicode_prop_name_pool_str226[sizeof("incuneiformnumbersandpunctuation")]; - char unicode_prop_name_pool_str231[sizeof("merc")]; - char unicode_prop_name_pool_str237[sizeof("inchorasmian")]; - char unicode_prop_name_pool_str238[sizeof("perm")]; - char unicode_prop_name_pool_str239[sizeof("inahom")]; - char unicode_prop_name_pool_str240[sizeof("inipaextensions")]; - char unicode_prop_name_pool_str251[sizeof("incherokee")]; - char unicode_prop_name_pool_str257[sizeof("insharada")]; - char unicode_prop_name_pool_str268[sizeof("makasar")]; - char unicode_prop_name_pool_str272[sizeof("inarrows")]; - char unicode_prop_name_pool_str277[sizeof("lc")]; - char unicode_prop_name_pool_str279[sizeof("masaramgondi")]; - char unicode_prop_name_pool_str283[sizeof("incuneiform")]; - char unicode_prop_name_pool_str290[sizeof("mc")]; - char unicode_prop_name_pool_str293[sizeof("cc")]; - char unicode_prop_name_pool_str297[sizeof("inzanabazarsquare")]; - char unicode_prop_name_pool_str298[sizeof("lineseparator")]; - char unicode_prop_name_pool_str302[sizeof("armn")]; - char unicode_prop_name_pool_str305[sizeof("qmark")]; - char unicode_prop_name_pool_str306[sizeof("armi")]; - char unicode_prop_name_pool_str309[sizeof("insamaritan")]; - char unicode_prop_name_pool_str316[sizeof("armenian")]; - char unicode_prop_name_pool_str318[sizeof("inmarchen")]; - char unicode_prop_name_pool_str319[sizeof("inmasaramgondi")]; - char unicode_prop_name_pool_str321[sizeof("qaac")]; - char unicode_prop_name_pool_str330[sizeof("pc")]; - char unicode_prop_name_pool_str335[sizeof("inscriptionalparthian")]; - char unicode_prop_name_pool_str336[sizeof("latn")]; - char unicode_prop_name_pool_str340[sizeof("latin")]; - char unicode_prop_name_pool_str342[sizeof("ri")]; - char unicode_prop_name_pool_str345[sizeof("inthaana")]; - char unicode_prop_name_pool_str352[sizeof("inkhmersymbols")]; - char unicode_prop_name_pool_str355[sizeof("inkatakana")]; - char unicode_prop_name_pool_str356[sizeof("incyrillic")]; - char unicode_prop_name_pool_str357[sizeof("inthai")]; - char unicode_prop_name_pool_str359[sizeof("incham")]; - char unicode_prop_name_pool_str367[sizeof("inkaithi")]; - char unicode_prop_name_pool_str371[sizeof("zs")]; - char unicode_prop_name_pool_str372[sizeof("mtei")]; - char unicode_prop_name_pool_str379[sizeof("initialpunctuation")]; - char unicode_prop_name_pool_str383[sizeof("cs")]; - char unicode_prop_name_pool_str399[sizeof("insyriac")]; - char unicode_prop_name_pool_str401[sizeof("pcm")]; - char unicode_prop_name_pool_str415[sizeof("intakri")]; - char unicode_prop_name_pool_str420[sizeof("ps")]; - char unicode_prop_name_pool_str423[sizeof("mand")]; - char unicode_prop_name_pool_str437[sizeof("inkanaextendeda")]; - char unicode_prop_name_pool_str442[sizeof("mend")]; - char unicode_prop_name_pool_str443[sizeof("modi")]; - char unicode_prop_name_pool_str445[sizeof("katakana")]; - char unicode_prop_name_pool_str447[sizeof("ideo")]; - char unicode_prop_name_pool_str449[sizeof("prti")]; - char unicode_prop_name_pool_str453[sizeof("yezidi")]; - char unicode_prop_name_pool_str456[sizeof("inideographicdescriptioncharacters")]; - char unicode_prop_name_pool_str466[sizeof("xidcontinue")]; - char unicode_prop_name_pool_str467[sizeof("brai")]; - char unicode_prop_name_pool_str472[sizeof("ascii")]; - char unicode_prop_name_pool_str474[sizeof("privateuse")]; - char unicode_prop_name_pool_str477[sizeof("arabic")]; - char unicode_prop_name_pool_str480[sizeof("inmyanmarextendeda")]; - char unicode_prop_name_pool_str481[sizeof("inruminumeralsymbols")]; - char unicode_prop_name_pool_str485[sizeof("letter")]; - char unicode_prop_name_pool_str493[sizeof("innandinagari")]; - char unicode_prop_name_pool_str499[sizeof("inmeeteimayek")]; - char unicode_prop_name_pool_str506[sizeof("inoldnortharabian")]; - char unicode_prop_name_pool_str509[sizeof("incjkcompatibilityforms")]; - char unicode_prop_name_pool_str510[sizeof("knda")]; - char unicode_prop_name_pool_str513[sizeof("kannada")]; - char unicode_prop_name_pool_str514[sizeof("incjkcompatibilityideographs")]; - char unicode_prop_name_pool_str532[sizeof("l")]; - char unicode_prop_name_pool_str534[sizeof("inmodi")]; - char unicode_prop_name_pool_str538[sizeof("inspecials")]; - char unicode_prop_name_pool_str545[sizeof("intransportandmapsymbols")]; - char unicode_prop_name_pool_str546[sizeof("inmendekikakui")]; - char unicode_prop_name_pool_str547[sizeof("letternumber")]; - char unicode_prop_name_pool_str556[sizeof("inmedefaidrin")]; - char unicode_prop_name_pool_str557[sizeof("xidc")]; - char unicode_prop_name_pool_str558[sizeof("inchesssymbols")]; - char unicode_prop_name_pool_str564[sizeof("inemoticons")]; - char unicode_prop_name_pool_str570[sizeof("inlineara")]; - char unicode_prop_name_pool_str576[sizeof("inlao")]; - char unicode_prop_name_pool_str579[sizeof("brahmi")]; - char unicode_prop_name_pool_str581[sizeof("inolditalic")]; - char unicode_prop_name_pool_str588[sizeof("inmiscellaneousmathematicalsymbolsa")]; - char unicode_prop_name_pool_str591[sizeof("mongolian")]; - char unicode_prop_name_pool_str602[sizeof("xids")]; - char unicode_prop_name_pool_str603[sizeof("psalterpahlavi")]; - char unicode_prop_name_pool_str616[sizeof("grlink")]; - char unicode_prop_name_pool_str621[sizeof("kits")]; - char unicode_prop_name_pool_str625[sizeof("insundanese")]; - char unicode_prop_name_pool_str626[sizeof("inoldsogdian")]; - char unicode_prop_name_pool_str634[sizeof("gothic")]; - char unicode_prop_name_pool_str635[sizeof("inancientsymbols")]; - char unicode_prop_name_pool_str639[sizeof("meroiticcursive")]; - char unicode_prop_name_pool_str642[sizeof("kali")]; - char unicode_prop_name_pool_str645[sizeof("control")]; - char unicode_prop_name_pool_str648[sizeof("patternwhitespace")]; - char unicode_prop_name_pool_str649[sizeof("inadlam")]; - char unicode_prop_name_pool_str655[sizeof("sk")]; - char unicode_prop_name_pool_str657[sizeof("lt")]; - char unicode_prop_name_pool_str662[sizeof("inmandaic")]; - char unicode_prop_name_pool_str668[sizeof("incommonindicnumberforms")]; - char unicode_prop_name_pool_str669[sizeof("incjkcompatibilityideographssupplement")]; - char unicode_prop_name_pool_str671[sizeof("so")]; - char unicode_prop_name_pool_str683[sizeof("idc")]; - char unicode_prop_name_pool_str684[sizeof("inoldsoutharabian")]; - char unicode_prop_name_pool_str691[sizeof("palm")]; - char unicode_prop_name_pool_str693[sizeof("inlycian")]; - char unicode_prop_name_pool_str701[sizeof("intoto")]; - char unicode_prop_name_pool_str707[sizeof("idsbinaryoperator")]; - char unicode_prop_name_pool_str709[sizeof("inkanasupplement")]; - char unicode_prop_name_pool_str710[sizeof("incjkstrokes")]; - char unicode_prop_name_pool_str713[sizeof("sora")]; - char unicode_prop_name_pool_str714[sizeof("bamum")]; - char unicode_prop_name_pool_str718[sizeof("inopticalcharacterrecognition")]; - char unicode_prop_name_pool_str734[sizeof("indominotiles")]; - char unicode_prop_name_pool_str738[sizeof("batk")]; - char unicode_prop_name_pool_str739[sizeof("grext")]; - char unicode_prop_name_pool_str747[sizeof("batak")]; - char unicode_prop_name_pool_str749[sizeof("patws")]; - char unicode_prop_name_pool_str756[sizeof("inmalayalam")]; - char unicode_prop_name_pool_str758[sizeof("inmodifiertoneletters")]; - char unicode_prop_name_pool_str765[sizeof("insmallkanaextension")]; - char unicode_prop_name_pool_str766[sizeof("bass")]; - char unicode_prop_name_pool_str773[sizeof("ids")]; - char unicode_prop_name_pool_str776[sizeof("print")]; - char unicode_prop_name_pool_str779[sizeof("inlinearbideograms")]; - char unicode_prop_name_pool_str782[sizeof("intaitham")]; - char unicode_prop_name_pool_str783[sizeof("inmusicalsymbols")]; - char unicode_prop_name_pool_str789[sizeof("inznamennymusicalnotation")]; - char unicode_prop_name_pool_str800[sizeof("samr")]; - char unicode_prop_name_pool_str812[sizeof("insylotinagri")]; - char unicode_prop_name_pool_str814[sizeof("innewa")]; - char unicode_prop_name_pool_str815[sizeof("samaritan")]; - char unicode_prop_name_pool_str819[sizeof("s")]; - char unicode_prop_name_pool_str828[sizeof("joinc")]; - char unicode_prop_name_pool_str829[sizeof("incontrolpictures")]; - char unicode_prop_name_pool_str832[sizeof("lisu")]; - char unicode_prop_name_pool_str833[sizeof("pauc")]; - char unicode_prop_name_pool_str834[sizeof("inmiscellaneoussymbols")]; - char unicode_prop_name_pool_str842[sizeof("inancientgreekmusicalnotation")]; - char unicode_prop_name_pool_str843[sizeof("inmiscellaneoussymbolsandarrows")]; - char unicode_prop_name_pool_str845[sizeof("sm")]; - char unicode_prop_name_pool_str848[sizeof("inmiscellaneoussymbolsandpictographs")]; - char unicode_prop_name_pool_str850[sizeof("inugaritic")]; - char unicode_prop_name_pool_str858[sizeof("pd")]; - char unicode_prop_name_pool_str866[sizeof("ital")]; - char unicode_prop_name_pool_str878[sizeof("alnum")]; - char unicode_prop_name_pool_str885[sizeof("zinh")]; - char unicode_prop_name_pool_str887[sizeof("inwarangciti")]; - char unicode_prop_name_pool_str891[sizeof("inlatinextendeda")]; - char unicode_prop_name_pool_str897[sizeof("insaurashtra")]; - char unicode_prop_name_pool_str898[sizeof("intaile")]; - char unicode_prop_name_pool_str900[sizeof("inoldturkic")]; - char unicode_prop_name_pool_str902[sizeof("idcontinue")]; - char unicode_prop_name_pool_str908[sizeof("inhanifirohingya")]; - char unicode_prop_name_pool_str911[sizeof("sc")]; - char unicode_prop_name_pool_str919[sizeof("idst")]; - char unicode_prop_name_pool_str929[sizeof("inlatinextendede")]; - char unicode_prop_name_pool_str930[sizeof("lower")]; - char unicode_prop_name_pool_str939[sizeof("bali")]; - char unicode_prop_name_pool_str941[sizeof("inhiragana")]; - char unicode_prop_name_pool_str945[sizeof("incaucasianalbanian")]; - char unicode_prop_name_pool_str946[sizeof("indeseret")]; - char unicode_prop_name_pool_str949[sizeof("blank")]; - char unicode_prop_name_pool_str952[sizeof("inspacingmodifierletters")]; - char unicode_prop_name_pool_str953[sizeof("cherokee")]; - char unicode_prop_name_pool_str957[sizeof("inlydian")]; - char unicode_prop_name_pool_str959[sizeof("phoenician")]; - char unicode_prop_name_pool_str962[sizeof("cher")]; - char unicode_prop_name_pool_str964[sizeof("bengali")]; - char unicode_prop_name_pool_str965[sizeof("marchen")]; - char unicode_prop_name_pool_str968[sizeof("inwancho")]; - char unicode_prop_name_pool_str974[sizeof("graphemelink")]; - char unicode_prop_name_pool_str977[sizeof("balinese")]; - char unicode_prop_name_pool_str978[sizeof("idstart")]; - char unicode_prop_name_pool_str982[sizeof("intamil")]; - char unicode_prop_name_pool_str984[sizeof("inmultani")]; - char unicode_prop_name_pool_str990[sizeof("cham")]; - char unicode_prop_name_pool_str992[sizeof("chakma")]; - char unicode_prop_name_pool_str994[sizeof("kaithi")]; - char unicode_prop_name_pool_str995[sizeof("inmahajani")]; - char unicode_prop_name_pool_str996[sizeof("graphemebase")]; - char unicode_prop_name_pool_str1001[sizeof("inogham")]; - char unicode_prop_name_pool_str1005[sizeof("cased")]; - char unicode_prop_name_pool_str1008[sizeof("inmeeteimayekextensions")]; - char unicode_prop_name_pool_str1011[sizeof("khojki")]; - char unicode_prop_name_pool_str1012[sizeof("inancientgreeknumbers")]; - char unicode_prop_name_pool_str1026[sizeof("runr")]; - char unicode_prop_name_pool_str1027[sizeof("khar")]; - char unicode_prop_name_pool_str1032[sizeof("manichaean")]; - char unicode_prop_name_pool_str1033[sizeof("lowercase")]; - char unicode_prop_name_pool_str1034[sizeof("canadianaboriginal")]; - char unicode_prop_name_pool_str1043[sizeof("inolchiki")]; - char unicode_prop_name_pool_str1044[sizeof("plrd")]; - char unicode_prop_name_pool_str1047[sizeof("inethiopic")]; - char unicode_prop_name_pool_str1051[sizeof("sind")]; - char unicode_prop_name_pool_str1056[sizeof("cwcm")]; - char unicode_prop_name_pool_str1058[sizeof("inearlydynasticcuneiform")]; - char unicode_prop_name_pool_str1061[sizeof("ll")]; - char unicode_prop_name_pool_str1065[sizeof("zl")]; - char unicode_prop_name_pool_str1068[sizeof("insinhala")]; - char unicode_prop_name_pool_str1074[sizeof("inkhudawadi")]; - char unicode_prop_name_pool_str1077[sizeof("xidstart")]; - char unicode_prop_name_pool_str1082[sizeof("xdigit")]; - char unicode_prop_name_pool_str1084[sizeof("bidic")]; - char unicode_prop_name_pool_str1093[sizeof("chorasmian")]; - char unicode_prop_name_pool_str1104[sizeof("insiddham")]; - char unicode_prop_name_pool_str1108[sizeof("incountingrodnumerals")]; - char unicode_prop_name_pool_str1123[sizeof("ahom")]; - char unicode_prop_name_pool_str1124[sizeof("chrs")]; - char unicode_prop_name_pool_str1130[sizeof("khmr")]; - char unicode_prop_name_pool_str1131[sizeof("inolduyghur")]; - char unicode_prop_name_pool_str1142[sizeof("ingrantha")]; - char unicode_prop_name_pool_str1144[sizeof("bamu")]; - char unicode_prop_name_pool_str1146[sizeof("inscriptionalpahlavi")]; - char unicode_prop_name_pool_str1149[sizeof("gong")]; - char unicode_prop_name_pool_str1158[sizeof("mong")]; - char unicode_prop_name_pool_str1163[sizeof("inlatinextendedc")]; - char unicode_prop_name_pool_str1164[sizeof("innewtailue")]; - char unicode_prop_name_pool_str1171[sizeof("adlm")]; - char unicode_prop_name_pool_str1172[sizeof("inosage")]; - char unicode_prop_name_pool_str1178[sizeof("ingeneralpunctuation")]; - char unicode_prop_name_pool_str1179[sizeof("georgian")]; - char unicode_prop_name_pool_str1181[sizeof("kharoshthi")]; - char unicode_prop_name_pool_str1182[sizeof("sinhala")]; - char unicode_prop_name_pool_str1187[sizeof("khmer")]; - char unicode_prop_name_pool_str1193[sizeof("sterm")]; - char unicode_prop_name_pool_str1195[sizeof("casedletter")]; - char unicode_prop_name_pool_str1198[sizeof("multani")]; - char unicode_prop_name_pool_str1201[sizeof("gunjalagondi")]; - char unicode_prop_name_pool_str1210[sizeof("math")]; - char unicode_prop_name_pool_str1212[sizeof("incyrillicsupplement")]; - char unicode_prop_name_pool_str1215[sizeof("ingeorgian")]; - char unicode_prop_name_pool_str1217[sizeof("goth")]; - char unicode_prop_name_pool_str1224[sizeof("incherokeesupplement")]; - char unicode_prop_name_pool_str1225[sizeof("glagolitic")]; - char unicode_prop_name_pool_str1237[sizeof("quotationmark")]; - char unicode_prop_name_pool_str1238[sizeof("uideo")]; - char unicode_prop_name_pool_str1240[sizeof("incjkunifiedideographsextensiona")]; - char unicode_prop_name_pool_str1242[sizeof("joincontrol")]; - char unicode_prop_name_pool_str1243[sizeof("runic")]; - char unicode_prop_name_pool_str1250[sizeof("inmongolian")]; - char unicode_prop_name_pool_str1257[sizeof("emoji")]; - char unicode_prop_name_pool_str1259[sizeof("incjkunifiedideographsextensione")]; - char unicode_prop_name_pool_str1260[sizeof("grantha")]; - char unicode_prop_name_pool_str1266[sizeof("intirhuta")]; - char unicode_prop_name_pool_str1268[sizeof("inhatran")]; - char unicode_prop_name_pool_str1275[sizeof("adlam")]; - char unicode_prop_name_pool_str1279[sizeof("lu")]; - char unicode_prop_name_pool_str1281[sizeof("inkhitansmallscript")]; - char unicode_prop_name_pool_str1304[sizeof("kthi")]; - char unicode_prop_name_pool_str1306[sizeof("ingurmukhi")]; - char unicode_prop_name_pool_str1308[sizeof("sundanese")]; - char unicode_prop_name_pool_str1315[sizeof("inoldhungarian")]; - char unicode_prop_name_pool_str1320[sizeof("takri")]; - char unicode_prop_name_pool_str1321[sizeof("intamilsupplement")]; - char unicode_prop_name_pool_str1322[sizeof("oriya")]; - char unicode_prop_name_pool_str1323[sizeof("invai")]; - char unicode_prop_name_pool_str1324[sizeof("brah")]; - char unicode_prop_name_pool_str1328[sizeof("inmiscellaneoustechnical")]; - char unicode_prop_name_pool_str1330[sizeof("vai")]; - char unicode_prop_name_pool_str1331[sizeof("vaii")]; - char unicode_prop_name_pool_str1334[sizeof("saur")]; - char unicode_prop_name_pool_str1341[sizeof("guru")]; - char unicode_prop_name_pool_str1343[sizeof("taile")]; - char unicode_prop_name_pool_str1347[sizeof("inherited")]; - char unicode_prop_name_pool_str1349[sizeof("paucinhau")]; - char unicode_prop_name_pool_str1352[sizeof("zanb")]; - char unicode_prop_name_pool_str1353[sizeof("punct")]; - char unicode_prop_name_pool_str1355[sizeof("linb")]; - char unicode_prop_name_pool_str1360[sizeof("gurmukhi")]; - char unicode_prop_name_pool_str1361[sizeof("takr")]; - char unicode_prop_name_pool_str1366[sizeof("innabataean")]; - char unicode_prop_name_pool_str1371[sizeof("inkanbun")]; - char unicode_prop_name_pool_str1373[sizeof("logicalorderexception")]; - char unicode_prop_name_pool_str1374[sizeof("inbhaiksuki")]; - char unicode_prop_name_pool_str1376[sizeof("incjkunifiedideographsextensionc")]; - char unicode_prop_name_pool_str1379[sizeof("graphemeextend")]; - char unicode_prop_name_pool_str1380[sizeof("inelbasan")]; - char unicode_prop_name_pool_str1383[sizeof("insorasompeng")]; - char unicode_prop_name_pool_str1386[sizeof("han")]; - char unicode_prop_name_pool_str1391[sizeof("hani")]; - char unicode_prop_name_pool_str1392[sizeof("limbu")]; - char unicode_prop_name_pool_str1395[sizeof("unassigned")]; - char unicode_prop_name_pool_str1397[sizeof("radical")]; - char unicode_prop_name_pool_str1400[sizeof("hano")]; - char unicode_prop_name_pool_str1402[sizeof("lowercaseletter")]; - char unicode_prop_name_pool_str1409[sizeof("cntrl")]; - char unicode_prop_name_pool_str1411[sizeof("incjkunifiedideographs")]; - char unicode_prop_name_pool_str1414[sizeof("linearb")]; - char unicode_prop_name_pool_str1420[sizeof("inanatolianhieroglyphs")]; - char unicode_prop_name_pool_str1422[sizeof("hanunoo")]; - char unicode_prop_name_pool_str1427[sizeof("inkhojki")]; - char unicode_prop_name_pool_str1428[sizeof("inlatinextendedadditional")]; - char unicode_prop_name_pool_str1429[sizeof("inenclosedalphanumerics")]; - char unicode_prop_name_pool_str1431[sizeof("anatolianhieroglyphs")]; - char unicode_prop_name_pool_str1434[sizeof("n")]; - char unicode_prop_name_pool_str1436[sizeof("emojimodifier")]; - char unicode_prop_name_pool_str1439[sizeof("sd")]; - char unicode_prop_name_pool_str1444[sizeof("hira")]; - char unicode_prop_name_pool_str1448[sizeof("sidd")]; - char unicode_prop_name_pool_str1455[sizeof("limb")]; - char unicode_prop_name_pool_str1457[sizeof("bhks")]; - char unicode_prop_name_pool_str1459[sizeof("phli")]; - char unicode_prop_name_pool_str1461[sizeof("nandinagari")]; - char unicode_prop_name_pool_str1464[sizeof("no")]; - char unicode_prop_name_pool_str1465[sizeof("saurashtra")]; - char unicode_prop_name_pool_str1467[sizeof("intangsa")]; - char unicode_prop_name_pool_str1468[sizeof("cwt")]; - char unicode_prop_name_pool_str1469[sizeof("bhaiksuki")]; - char unicode_prop_name_pool_str1472[sizeof("ingreekandcoptic")]; - char unicode_prop_name_pool_str1473[sizeof("nko")]; - char unicode_prop_name_pool_str1474[sizeof("nkoo")]; - char unicode_prop_name_pool_str1475[sizeof("term")]; - char unicode_prop_name_pool_str1478[sizeof("osage")]; - char unicode_prop_name_pool_str1479[sizeof("xpeo")]; - char unicode_prop_name_pool_str1481[sizeof("tnsa")]; - char unicode_prop_name_pool_str1483[sizeof("tangsa")]; - char unicode_prop_name_pool_str1484[sizeof("inkayahli")]; - char unicode_prop_name_pool_str1487[sizeof("p")]; - char unicode_prop_name_pool_str1490[sizeof("inoriya")]; - char unicode_prop_name_pool_str1492[sizeof("inyezidi")]; - char unicode_prop_name_pool_str1493[sizeof("inarabic")]; - char unicode_prop_name_pool_str1494[sizeof("inphoenician")]; - char unicode_prop_name_pool_str1497[sizeof("inshavian")]; - char unicode_prop_name_pool_str1498[sizeof("bidicontrol")]; - char unicode_prop_name_pool_str1507[sizeof("inenclosedideographicsupplement")]; - char unicode_prop_name_pool_str1509[sizeof("wara")]; - char unicode_prop_name_pool_str1511[sizeof("mult")]; - char unicode_prop_name_pool_str1514[sizeof("inmeroitichieroglyphs")]; - char unicode_prop_name_pool_str1515[sizeof("sinh")]; - char unicode_prop_name_pool_str1518[sizeof("shavian")]; - char unicode_prop_name_pool_str1526[sizeof("inkangxiradicals")]; - char unicode_prop_name_pool_str1532[sizeof("enclosingmark")]; - char unicode_prop_name_pool_str1534[sizeof("arab")]; - char unicode_prop_name_pool_str1535[sizeof("insinhalaarchaicnumbers")]; - char unicode_prop_name_pool_str1538[sizeof("braille")]; - char unicode_prop_name_pool_str1540[sizeof("inhanunoo")]; - char unicode_prop_name_pool_str1542[sizeof("osma")]; - char unicode_prop_name_pool_str1545[sizeof("beng")]; - char unicode_prop_name_pool_str1555[sizeof("inbasiclatin")]; - char unicode_prop_name_pool_str1556[sizeof("inarabicpresentationformsa")]; - char unicode_prop_name_pool_str1559[sizeof("cpmn")]; - char unicode_prop_name_pool_str1579[sizeof("regionalindicator")]; - char unicode_prop_name_pool_str1583[sizeof("inenclosedalphanumericsupplement")]; - char unicode_prop_name_pool_str1584[sizeof("emojimodifierbase")]; - char unicode_prop_name_pool_str1586[sizeof("ingreekextended")]; - char unicode_prop_name_pool_str1592[sizeof("lepc")]; - char unicode_prop_name_pool_str1593[sizeof("indogra")]; - char unicode_prop_name_pool_str1594[sizeof("format")]; - char unicode_prop_name_pool_str1599[sizeof("lyci")]; - char unicode_prop_name_pool_str1600[sizeof("lycian")]; - char unicode_prop_name_pool_str1603[sizeof("dia")]; - char unicode_prop_name_pool_str1605[sizeof("inphaistosdisc")]; - char unicode_prop_name_pool_str1609[sizeof("di")]; - char unicode_prop_name_pool_str1612[sizeof("diak")]; - char unicode_prop_name_pool_str1625[sizeof("unknown")]; - char unicode_prop_name_pool_str1626[sizeof("grbase")]; - char unicode_prop_name_pool_str1628[sizeof("mymr")]; - char unicode_prop_name_pool_str1631[sizeof("myanmar")]; - char unicode_prop_name_pool_str1640[sizeof("incjkunifiedideographsextensiond")]; - char unicode_prop_name_pool_str1642[sizeof("emod")]; - char unicode_prop_name_pool_str1647[sizeof("ingeometricshapes")]; - char unicode_prop_name_pool_str1649[sizeof("incyprominoan")]; + char unicode_prop_name_pool_str146[sizeof("inchakma")]; + char unicode_prop_name_pool_str147[sizeof("cakm")]; + char unicode_prop_name_pool_str148[sizeof("inmro")]; + char unicode_prop_name_pool_str149[sizeof("inmiao")]; + char unicode_prop_name_pool_str150[sizeof("meeteimayek")]; + char unicode_prop_name_pool_str152[sizeof("mandaic")]; + char unicode_prop_name_pool_str155[sizeof("c")]; + char unicode_prop_name_pool_str157[sizeof("krai")]; + char unicode_prop_name_pool_str161[sizeof("inarmenian")]; + char unicode_prop_name_pool_str171[sizeof("inmyanmar")]; + char unicode_prop_name_pool_str175[sizeof("inmakasar")]; + char unicode_prop_name_pool_str181[sizeof("common")]; + char unicode_prop_name_pool_str184[sizeof("qaai")]; + char unicode_prop_name_pool_str185[sizeof("marc")]; + char unicode_prop_name_pool_str195[sizeof("inrunic")]; + char unicode_prop_name_pool_str196[sizeof("incarian")]; + char unicode_prop_name_pool_str204[sizeof("lm")]; + char unicode_prop_name_pool_str209[sizeof("inkhmer")]; + char unicode_prop_name_pool_str213[sizeof("inchorasmian")]; + char unicode_prop_name_pool_str215[sizeof("inideographicsymbolsandpunctuation")]; + char unicode_prop_name_pool_str217[sizeof("cans")]; + char unicode_prop_name_pool_str221[sizeof("merc")]; + char unicode_prop_name_pool_str230[sizeof("combiningmark")]; + char unicode_prop_name_pool_str232[sizeof("inahom")]; + char unicode_prop_name_pool_str233[sizeof("perm")]; + char unicode_prop_name_pool_str234[sizeof("inavestan")]; + char unicode_prop_name_pool_str238[sizeof("connectorpunctuation")]; + char unicode_prop_name_pool_str241[sizeof("insharada")]; + char unicode_prop_name_pool_str242[sizeof("lc")]; + char unicode_prop_name_pool_str244[sizeof("prependedconcatenationmark")]; + char unicode_prop_name_pool_str246[sizeof("incuneiformnumbersandpunctuation")]; + char unicode_prop_name_pool_str250[sizeof("inipaextensions")]; + char unicode_prop_name_pool_str251[sizeof("makasar")]; + char unicode_prop_name_pool_str253[sizeof("latn")]; + char unicode_prop_name_pool_str254[sizeof("mc")]; + char unicode_prop_name_pool_str256[sizeof("inarrows")]; + char unicode_prop_name_pool_str257[sizeof("ri")]; + char unicode_prop_name_pool_str258[sizeof("latin")]; + char unicode_prop_name_pool_str259[sizeof("incherokee")]; + char unicode_prop_name_pool_str261[sizeof("inthaana")]; + char unicode_prop_name_pool_str262[sizeof("masaramgondi")]; + char unicode_prop_name_pool_str271[sizeof("inkatakana")]; + char unicode_prop_name_pool_str272[sizeof("armn")]; + char unicode_prop_name_pool_str273[sizeof("inthai")]; + char unicode_prop_name_pool_str274[sizeof("cc")]; + char unicode_prop_name_pool_str275[sizeof("armi")]; + char unicode_prop_name_pool_str280[sizeof("incuneiform")]; + char unicode_prop_name_pool_str283[sizeof("inkaithi")]; + char unicode_prop_name_pool_str285[sizeof("pc")]; + char unicode_prop_name_pool_str287[sizeof("armenian")]; + char unicode_prop_name_pool_str289[sizeof("inmarchen")]; + char unicode_prop_name_pool_str293[sizeof("qmark")]; + char unicode_prop_name_pool_str295[sizeof("qaac")]; + char unicode_prop_name_pool_str296[sizeof("initialpunctuation")]; + char unicode_prop_name_pool_str298[sizeof("inzanabazarsquare")]; + char unicode_prop_name_pool_str299[sizeof("insamaritan")]; + char unicode_prop_name_pool_str300[sizeof("lineseparator")]; + char unicode_prop_name_pool_str304[sizeof("mtei")]; + char unicode_prop_name_pool_str309[sizeof("inmasaramgondi")]; + char unicode_prop_name_pool_str311[sizeof("inscriptionalparthian")]; + char unicode_prop_name_pool_str312[sizeof("incyrillic")]; + char unicode_prop_name_pool_str322[sizeof("intakri")]; + char unicode_prop_name_pool_str334[sizeof("incham")]; + char unicode_prop_name_pool_str335[sizeof("mcm")]; + char unicode_prop_name_pool_str346[sizeof("prti")]; + char unicode_prop_name_pool_str356[sizeof("katakana")]; + char unicode_prop_name_pool_str358[sizeof("inkhmersymbols")]; + char unicode_prop_name_pool_str365[sizeof("insyriac")]; + char unicode_prop_name_pool_str366[sizeof("pcm")]; + char unicode_prop_name_pool_str367[sizeof("mand")]; + char unicode_prop_name_pool_str372[sizeof("zs")]; + char unicode_prop_name_pool_str382[sizeof("inkanaextendeda")]; + char unicode_prop_name_pool_str384[sizeof("cs")]; + char unicode_prop_name_pool_str386[sizeof("modi")]; + char unicode_prop_name_pool_str388[sizeof("privateuse")]; + char unicode_prop_name_pool_str395[sizeof("ps")]; + char unicode_prop_name_pool_str401[sizeof("brai")]; + char unicode_prop_name_pool_str403[sizeof("mend")]; + char unicode_prop_name_pool_str407[sizeof("ideo")]; + char unicode_prop_name_pool_str408[sizeof("yezidi")]; + char unicode_prop_name_pool_str410[sizeof("inmyanmarextendeda")]; + char unicode_prop_name_pool_str414[sizeof("arabic")]; + char unicode_prop_name_pool_str417[sizeof("letter")]; + char unicode_prop_name_pool_str426[sizeof("xidcontinue")]; + char unicode_prop_name_pool_str428[sizeof("ascii")]; + char unicode_prop_name_pool_str430[sizeof("innandinagari")]; + char unicode_prop_name_pool_str443[sizeof("inoldnortharabian")]; + char unicode_prop_name_pool_str445[sizeof("inmeeteimayek")]; + char unicode_prop_name_pool_str450[sizeof("knda")]; + char unicode_prop_name_pool_str453[sizeof("kannada")]; + char unicode_prop_name_pool_str454[sizeof("intransportandmapsymbols")]; + char unicode_prop_name_pool_str456[sizeof("kiratrai")]; + char unicode_prop_name_pool_str457[sizeof("inruminumeralsymbols")]; + char unicode_prop_name_pool_str458[sizeof("inideographicdescriptioncharacters")]; + char unicode_prop_name_pool_str466[sizeof("incjkcompatibilityforms")]; + char unicode_prop_name_pool_str470[sizeof("letternumber")]; + char unicode_prop_name_pool_str471[sizeof("incjkcompatibilityideographs")]; + char unicode_prop_name_pool_str474[sizeof("inmodi")]; + char unicode_prop_name_pool_str481[sizeof("xidc")]; + char unicode_prop_name_pool_str487[sizeof("inmendekikakui")]; + char unicode_prop_name_pool_str488[sizeof("lt")]; + char unicode_prop_name_pool_str489[sizeof("inemoticons")]; + char unicode_prop_name_pool_str504[sizeof("sk")]; + char unicode_prop_name_pool_str507[sizeof("inolditalic")]; + char unicode_prop_name_pool_str509[sizeof("brahmi")]; + char unicode_prop_name_pool_str513[sizeof("gothic")]; + char unicode_prop_name_pool_str514[sizeof("inmedefaidrin")]; + char unicode_prop_name_pool_str518[sizeof("psalterpahlavi")]; + char unicode_prop_name_pool_str520[sizeof("so")]; + char unicode_prop_name_pool_str522[sizeof("inspecials")]; + char unicode_prop_name_pool_str524[sizeof("kits")]; + char unicode_prop_name_pool_str528[sizeof("inmyanmarextendedc")]; + char unicode_prop_name_pool_str532[sizeof("intoto")]; + char unicode_prop_name_pool_str536[sizeof("xids")]; + char unicode_prop_name_pool_str542[sizeof("inchesssymbols")]; + char unicode_prop_name_pool_str549[sizeof("incjkcompatibilityideographssupplement")]; + char unicode_prop_name_pool_str550[sizeof("inopticalcharacterrecognition")]; + char unicode_prop_name_pool_str553[sizeof("sora")]; + char unicode_prop_name_pool_str558[sizeof("inkanasupplement")]; + char unicode_prop_name_pool_str564[sizeof("inoldsogdian")]; + char unicode_prop_name_pool_str571[sizeof("meroiticcursive")]; + char unicode_prop_name_pool_str572[sizeof("inmiscellaneousmathematicalsymbolsa")]; + char unicode_prop_name_pool_str577[sizeof("grext")]; + char unicode_prop_name_pool_str578[sizeof("patternwhitespace")]; + char unicode_prop_name_pool_str579[sizeof("insundanese")]; + char unicode_prop_name_pool_str585[sizeof("inmandaic")]; + char unicode_prop_name_pool_str588[sizeof("print")]; + char unicode_prop_name_pool_str590[sizeof("idc")]; + char unicode_prop_name_pool_str596[sizeof("batk")]; + char unicode_prop_name_pool_str598[sizeof("inancientsymbols")]; + char unicode_prop_name_pool_str605[sizeof("batak")]; + char unicode_prop_name_pool_str609[sizeof("intaitham")]; + char unicode_prop_name_pool_str612[sizeof("inoldsoutharabian")]; + char unicode_prop_name_pool_str631[sizeof("incommonindicnumberforms")]; + char unicode_prop_name_pool_str635[sizeof("inznamennymusicalnotation")]; + char unicode_prop_name_pool_str636[sizeof("samr")]; + char unicode_prop_name_pool_str639[sizeof("patws")]; + char unicode_prop_name_pool_str645[sizeof("bamum")]; + char unicode_prop_name_pool_str651[sizeof("idsbinaryoperator")]; + char unicode_prop_name_pool_str652[sizeof("samaritan")]; + char unicode_prop_name_pool_str655[sizeof("pauc")]; + char unicode_prop_name_pool_str660[sizeof("s")]; + char unicode_prop_name_pool_str669[sizeof("incjkstrokes")]; + char unicode_prop_name_pool_str673[sizeof("inugaritic")]; + char unicode_prop_name_pool_str674[sizeof("lisu")]; + char unicode_prop_name_pool_str683[sizeof("indominotiles")]; + char unicode_prop_name_pool_str685[sizeof("idsunaryoperator")]; + char unicode_prop_name_pool_str686[sizeof("sm")]; + char unicode_prop_name_pool_str689[sizeof("l")]; + char unicode_prop_name_pool_str692[sizeof("inancientgreekmusicalnotation")]; + char unicode_prop_name_pool_str693[sizeof("bass")]; + char unicode_prop_name_pool_str700[sizeof("ids")]; + char unicode_prop_name_pool_str707[sizeof("inmodifiertoneletters")]; + char unicode_prop_name_pool_str719[sizeof("incontrolpictures")]; + char unicode_prop_name_pool_str724[sizeof("sc")]; + char unicode_prop_name_pool_str730[sizeof("insaurashtra")]; + char unicode_prop_name_pool_str731[sizeof("insunuwar")]; + char unicode_prop_name_pool_str733[sizeof("inlao")]; + char unicode_prop_name_pool_str735[sizeof("pd")]; + char unicode_prop_name_pool_str740[sizeof("inolonal")]; + char unicode_prop_name_pool_str741[sizeof("inoldturkic")]; + char unicode_prop_name_pool_str745[sizeof("inlineara")]; + char unicode_prop_name_pool_str749[sizeof("mongolian")]; + char unicode_prop_name_pool_str752[sizeof("inmusicalsymbols")]; + char unicode_prop_name_pool_str760[sizeof("idcontinue")]; + char unicode_prop_name_pool_str761[sizeof("incaucasianalbanian")]; + char unicode_prop_name_pool_str764[sizeof("grlink")]; + char unicode_prop_name_pool_str769[sizeof("idst")]; + char unicode_prop_name_pool_str782[sizeof("runr")]; + char unicode_prop_name_pool_str794[sizeof("kali")]; + char unicode_prop_name_pool_str802[sizeof("inadlam")]; + char unicode_prop_name_pool_str806[sizeof("inmiscellaneoussymbols")]; + char unicode_prop_name_pool_str810[sizeof("control")]; + char unicode_prop_name_pool_str814[sizeof("indeseret")]; + char unicode_prop_name_pool_str815[sizeof("inmiscellaneoussymbolsandarrows")]; + char unicode_prop_name_pool_str819[sizeof("idstart")]; + char unicode_prop_name_pool_str820[sizeof("inmiscellaneoussymbolsandpictographs")]; + char unicode_prop_name_pool_str833[sizeof("inlycian")]; + char unicode_prop_name_pool_str834[sizeof("palm")]; + char unicode_prop_name_pool_str844[sizeof("sind")]; + char unicode_prop_name_pool_str848[sizeof("onao")]; + char unicode_prop_name_pool_str849[sizeof("xidstart")]; + char unicode_prop_name_pool_str853[sizeof("inancientgreeknumbers")]; + char unicode_prop_name_pool_str854[sizeof("xdigit")]; + char unicode_prop_name_pool_str861[sizeof("inmeeteimayekextensions")]; + char unicode_prop_name_pool_str867[sizeof("inkhudawadi")]; + char unicode_prop_name_pool_str879[sizeof("inspacingmodifierletters")]; + char unicode_prop_name_pool_str883[sizeof("oriya")]; + char unicode_prop_name_pool_str900[sizeof("cased")]; + char unicode_prop_name_pool_str905[sizeof("inmalayalam")]; + char unicode_prop_name_pool_str915[sizeof("inolduyghur")]; + char unicode_prop_name_pool_str929[sizeof("incountingrodnumerals")]; + char unicode_prop_name_pool_str932[sizeof("bamu")]; + char unicode_prop_name_pool_str933[sizeof("insmallkanaextension")]; + char unicode_prop_name_pool_str934[sizeof("bidic")]; + char unicode_prop_name_pool_str937[sizeof("ital")]; + char unicode_prop_name_pool_str946[sizeof("inkaktoviknumerals")]; + char unicode_prop_name_pool_str948[sizeof("joinc")]; + char unicode_prop_name_pool_str952[sizeof("insylotinagri")]; + char unicode_prop_name_pool_str957[sizeof("vai")]; + char unicode_prop_name_pool_str958[sizeof("vaii")]; + char unicode_prop_name_pool_str963[sizeof("inlinearbideograms")]; + char unicode_prop_name_pool_str964[sizeof("inlatinextendeda")]; + char unicode_prop_name_pool_str966[sizeof("sterm")]; + char unicode_prop_name_pool_str967[sizeof("incyrillicsupplement")]; + char unicode_prop_name_pool_str972[sizeof("runic")]; + char unicode_prop_name_pool_str978[sizeof("lu")]; + char unicode_prop_name_pool_str979[sizeof("insiddham")]; + char unicode_prop_name_pool_str984[sizeof("quotationmark")]; + char unicode_prop_name_pool_str987[sizeof("intaile")]; + char unicode_prop_name_pool_str996[sizeof("incherokeesupplement")]; + char unicode_prop_name_pool_str1009[sizeof("alnum")]; + char unicode_prop_name_pool_str1014[sizeof("idsu")]; + char unicode_prop_name_pool_str1015[sizeof("incjkunifiedideographsextensiona")]; + char unicode_prop_name_pool_str1022[sizeof("incjkunifiedideographsextensioni")]; + char unicode_prop_name_pool_str1023[sizeof("saur")]; + char unicode_prop_name_pool_str1024[sizeof("punct")]; + char unicode_prop_name_pool_str1025[sizeof("sundanese")]; + char unicode_prop_name_pool_str1030[sizeof("guru")]; + char unicode_prop_name_pool_str1036[sizeof("inlatinextendede")]; + char unicode_prop_name_pool_str1038[sizeof("bali")]; + char unicode_prop_name_pool_str1039[sizeof("paucinhau")]; + char unicode_prop_name_pool_str1048[sizeof("blank")]; + char unicode_prop_name_pool_str1049[sizeof("gurmukhi")]; + char unicode_prop_name_pool_str1050[sizeof("intamil")]; + char unicode_prop_name_pool_str1051[sizeof("incjkunifiedideographsextensione")]; + char unicode_prop_name_pool_str1052[sizeof("inmultani")]; + char unicode_prop_name_pool_str1058[sizeof("inlydian")]; + char unicode_prop_name_pool_str1074[sizeof("osage")]; + char unicode_prop_name_pool_str1081[sizeof("bengali")]; + char unicode_prop_name_pool_str1087[sizeof("limbu")]; + char unicode_prop_name_pool_str1100[sizeof("osma")]; + char unicode_prop_name_pool_str1110[sizeof("zinh")]; + char unicode_prop_name_pool_str1111[sizeof("balinese")]; + char unicode_prop_name_pool_str1117[sizeof("inhanifirohingya")]; + char unicode_prop_name_pool_str1125[sizeof("plrd")]; + char unicode_prop_name_pool_str1133[sizeof("incjkunifiedideographsextensionc")]; + char unicode_prop_name_pool_str1140[sizeof("inhiragana")]; + char unicode_prop_name_pool_str1143[sizeof("canadianaboriginal")]; + char unicode_prop_name_pool_str1155[sizeof("saurashtra")]; + char unicode_prop_name_pool_str1159[sizeof("phoenician")]; + char unicode_prop_name_pool_str1171[sizeof("ingrantha")]; + char unicode_prop_name_pool_str1174[sizeof("sd")]; + char unicode_prop_name_pool_str1177[sizeof("gong")]; + char unicode_prop_name_pool_str1178[sizeof("incjkunifiedideographs")]; + char unicode_prop_name_pool_str1181[sizeof("marchen")]; + char unicode_prop_name_pool_str1183[sizeof("sidd")]; + char unicode_prop_name_pool_str1184[sizeof("odi")]; + char unicode_prop_name_pool_str1186[sizeof("mong")]; + char unicode_prop_name_pool_str1188[sizeof("sinhala")]; + char unicode_prop_name_pool_str1189[sizeof("graphemelink")]; + char unicode_prop_name_pool_str1193[sizeof("inearlydynasticcuneiform")]; + char unicode_prop_name_pool_str1194[sizeof("cher")]; + char unicode_prop_name_pool_str1197[sizeof("kaithi")]; + char unicode_prop_name_pool_str1199[sizeof("inmahajani")]; + char unicode_prop_name_pool_str1200[sizeof("inlatinextendedc")]; + char unicode_prop_name_pool_str1204[sizeof("multani")]; + char unicode_prop_name_pool_str1205[sizeof("inogham")]; + char unicode_prop_name_pool_str1207[sizeof("gunjalagondi")]; + char unicode_prop_name_pool_str1210[sizeof("cham")]; + char unicode_prop_name_pool_str1211[sizeof("cherokee")]; + char unicode_prop_name_pool_str1212[sizeof("chakma")]; + char unicode_prop_name_pool_str1214[sizeof("khojki")]; + char unicode_prop_name_pool_str1217[sizeof("inosage")]; + char unicode_prop_name_pool_str1221[sizeof("khar")]; + char unicode_prop_name_pool_str1223[sizeof("manichaean")]; + char unicode_prop_name_pool_str1224[sizeof("georgian")]; + char unicode_prop_name_pool_str1226[sizeof("ingeneralpunctuation")]; + char unicode_prop_name_pool_str1233[sizeof("inolchiki")]; + char unicode_prop_name_pool_str1235[sizeof("ingeorgian")]; + char unicode_prop_name_pool_str1245[sizeof("graphemebase")]; + char unicode_prop_name_pool_str1248[sizeof("adlm")]; + char unicode_prop_name_pool_str1254[sizeof("inethiopic")]; + char unicode_prop_name_pool_str1259[sizeof("inkhitansmallscript")]; + char unicode_prop_name_pool_str1269[sizeof("insinhala")]; + char unicode_prop_name_pool_str1276[sizeof("inmongolian")]; + char unicode_prop_name_pool_str1279[sizeof("punctuation")]; + char unicode_prop_name_pool_str1280[sizeof("emoji")]; + char unicode_prop_name_pool_str1287[sizeof("innagmundari")]; + char unicode_prop_name_pool_str1288[sizeof("vs")]; + char unicode_prop_name_pool_str1294[sizeof("casedletter")]; + char unicode_prop_name_pool_str1296[sizeof("oidc")]; + char unicode_prop_name_pool_str1305[sizeof("intamilsupplement")]; + char unicode_prop_name_pool_str1308[sizeof("ahom")]; + char unicode_prop_name_pool_str1310[sizeof("chorasmian")]; + char unicode_prop_name_pool_str1320[sizeof("khmr")]; + char unicode_prop_name_pool_str1321[sizeof("ingurmukhi")]; + char unicode_prop_name_pool_str1323[sizeof("sund")]; + char unicode_prop_name_pool_str1324[sizeof("patternsyntax")]; + char unicode_prop_name_pool_str1331[sizeof("chrs")]; + char unicode_prop_name_pool_str1332[sizeof("math")]; + char unicode_prop_name_pool_str1337[sizeof("inscriptionalpahlavi")]; + char unicode_prop_name_pool_str1339[sizeof("goth")]; + char unicode_prop_name_pool_str1348[sizeof("adlam")]; + char unicode_prop_name_pool_str1351[sizeof("oids")]; + char unicode_prop_name_pool_str1358[sizeof("incjkunifiedideographsextensiond")]; + char unicode_prop_name_pool_str1368[sizeof("khmer")]; + char unicode_prop_name_pool_str1373[sizeof("grantha")]; + char unicode_prop_name_pool_str1374[sizeof("ll")]; + char unicode_prop_name_pool_str1376[sizeof("kharoshthi")]; + char unicode_prop_name_pool_str1380[sizeof("intirhuta")]; + char unicode_prop_name_pool_str1383[sizeof("inhatran")]; + char unicode_prop_name_pool_str1387[sizeof("inmiscellaneoustechnical")]; + char unicode_prop_name_pool_str1392[sizeof("logicalorderexception")]; + char unicode_prop_name_pool_str1393[sizeof("radical")]; + char unicode_prop_name_pool_str1394[sizeof("zl")]; + char unicode_prop_name_pool_str1395[sizeof("insorasompeng")]; + char unicode_prop_name_pool_str1404[sizeof("n")]; + char unicode_prop_name_pool_str1411[sizeof("intangsa")]; + char unicode_prop_name_pool_str1422[sizeof("kthi")]; + char unicode_prop_name_pool_str1431[sizeof("mult")]; + char unicode_prop_name_pool_str1432[sizeof("nandinagari")]; + char unicode_prop_name_pool_str1433[sizeof("no")]; + char unicode_prop_name_pool_str1442[sizeof("nko")]; + char unicode_prop_name_pool_str1443[sizeof("nkoo")]; + char unicode_prop_name_pool_str1444[sizeof("intulutigalari")]; + char unicode_prop_name_pool_str1447[sizeof("p")]; + char unicode_prop_name_pool_str1463[sizeof("emojimodifier")]; + char unicode_prop_name_pool_str1464[sizeof("xpeo")]; + char unicode_prop_name_pool_str1465[sizeof("brah")]; + char unicode_prop_name_pool_str1466[sizeof("sunu")]; + char unicode_prop_name_pool_str1467[sizeof("inoldhungarian")]; + char unicode_prop_name_pool_str1483[sizeof("inphoenician")]; + char unicode_prop_name_pool_str1486[sizeof("incyrillicextendeda")]; + char unicode_prop_name_pool_str1489[sizeof("inherited")]; + char unicode_prop_name_pool_str1496[sizeof("intaixuanjingsymbols")]; + char unicode_prop_name_pool_str1498[sizeof("ingreekandcoptic")]; + char unicode_prop_name_pool_str1512[sizeof("inenclosedideographicsupplement")]; + char unicode_prop_name_pool_str1519[sizeof("glagolitic")]; + char unicode_prop_name_pool_str1521[sizeof("inmeroitichieroglyphs")]; + char unicode_prop_name_pool_str1522[sizeof("bidicontrol")]; + char unicode_prop_name_pool_str1525[sizeof("enclosingmark")]; + char unicode_prop_name_pool_str1530[sizeof("regionalindicator")]; + char unicode_prop_name_pool_str1533[sizeof("beng")]; + char unicode_prop_name_pool_str1535[sizeof("inanatolianhieroglyphs")]; + char unicode_prop_name_pool_str1536[sizeof("joincontrol")]; + char unicode_prop_name_pool_str1539[sizeof("inkangxiradicals")]; + char unicode_prop_name_pool_str1541[sizeof("dia")]; + char unicode_prop_name_pool_str1542[sizeof("cpmn")]; + char unicode_prop_name_pool_str1547[sizeof("di")]; + char unicode_prop_name_pool_str1550[sizeof("diak")]; + char unicode_prop_name_pool_str1554[sizeof("graphemeextend")]; + char unicode_prop_name_pool_str1555[sizeof("indogra")]; + char unicode_prop_name_pool_str1557[sizeof("inphaistosdisc")]; + char unicode_prop_name_pool_str1561[sizeof("lepc")]; + char unicode_prop_name_pool_str1572[sizeof("sinh")]; + char unicode_prop_name_pool_str1575[sizeof("shavian")]; + char unicode_prop_name_pool_str1576[sizeof("gukh")]; + char unicode_prop_name_pool_str1583[sizeof("linb")]; + char unicode_prop_name_pool_str1592[sizeof("ingreekextended")]; + char unicode_prop_name_pool_str1593[sizeof("incyprominoan")]; + char unicode_prop_name_pool_str1595[sizeof("innabataean")]; + char unicode_prop_name_pool_str1596[sizeof("zanb")]; + char unicode_prop_name_pool_str1598[sizeof("inhanunoo")]; + char unicode_prop_name_pool_str1599[sizeof("bhks")]; + char unicode_prop_name_pool_str1600[sizeof("inkanbun")]; + char unicode_prop_name_pool_str1601[sizeof("inbhaiksuki")]; + char unicode_prop_name_pool_str1604[sizeof("incyrillicextendedc")]; + char unicode_prop_name_pool_str1608[sizeof("emod")]; + char unicode_prop_name_pool_str1611[sizeof("bhaiksuki")]; + char unicode_prop_name_pool_str1612[sizeof("xsux")]; + char unicode_prop_name_pool_str1622[sizeof("format")]; + char unicode_prop_name_pool_str1625[sizeof("inelbasan")]; + char unicode_prop_name_pool_str1629[sizeof("emojimodifierbase")]; + char unicode_prop_name_pool_str1633[sizeof("linearb")]; + char unicode_prop_name_pool_str1638[sizeof("olck")]; + char unicode_prop_name_pool_str1643[sizeof("inimperialaramaic")]; + char unicode_prop_name_pool_str1650[sizeof("inlatinextendedd")]; char unicode_prop_name_pool_str1651[sizeof("insundanesesupplement")]; - char unicode_prop_name_pool_str1655[sizeof("toto")]; - char unicode_prop_name_pool_str1658[sizeof("glag")]; - char unicode_prop_name_pool_str1659[sizeof("taiviet")]; - char unicode_prop_name_pool_str1670[sizeof("asciihexdigit")]; - char unicode_prop_name_pool_str1671[sizeof("odi")]; - char unicode_prop_name_pool_str1673[sizeof("punctuation")]; - char unicode_prop_name_pool_str1677[sizeof("vs")]; - char unicode_prop_name_pool_str1681[sizeof("sund")]; - char unicode_prop_name_pool_str1682[sizeof("insoyombo")]; - char unicode_prop_name_pool_str1683[sizeof("inimperialaramaic")]; - char unicode_prop_name_pool_str1690[sizeof("inbatak")]; - char unicode_prop_name_pool_str1691[sizeof("inlatinextendedd")]; - char unicode_prop_name_pool_str1703[sizeof("innushu")]; - char unicode_prop_name_pool_str1706[sizeof("intibetan")]; - char unicode_prop_name_pool_str1710[sizeof("inlowsurrogates")]; - char unicode_prop_name_pool_str1715[sizeof("hatran")]; - char unicode_prop_name_pool_str1716[sizeof("inblockelements")]; - char unicode_prop_name_pool_str1723[sizeof("insogdian")]; - char unicode_prop_name_pool_str1724[sizeof("indingbats")]; - char unicode_prop_name_pool_str1727[sizeof("inelymaic")]; - char unicode_prop_name_pool_str1730[sizeof("indevanagari")]; - char unicode_prop_name_pool_str1740[sizeof("emojicomponent")]; - char unicode_prop_name_pool_str1744[sizeof("inkatakanaphoneticextensions")]; - char unicode_prop_name_pool_str1749[sizeof("ideographic")]; - char unicode_prop_name_pool_str1750[sizeof("coptic")]; - char unicode_prop_name_pool_str1752[sizeof("innumberforms")]; - char unicode_prop_name_pool_str1763[sizeof("hatr")]; - char unicode_prop_name_pool_str1772[sizeof("incjkcompatibility")]; - char unicode_prop_name_pool_str1775[sizeof("inkanaextendedb")]; - char unicode_prop_name_pool_str1783[sizeof("patternsyntax")]; - char unicode_prop_name_pool_str1784[sizeof("avestan")]; - char unicode_prop_name_pool_str1785[sizeof("inarabicextendeda")]; - char unicode_prop_name_pool_str1789[sizeof("sogdian")]; - char unicode_prop_name_pool_str1792[sizeof("sogo")]; - char unicode_prop_name_pool_str1793[sizeof("intangut")]; - char unicode_prop_name_pool_str1795[sizeof("copt")]; - char unicode_prop_name_pool_str1796[sizeof("graph")]; - char unicode_prop_name_pool_str1801[sizeof("oidc")]; - char unicode_prop_name_pool_str1804[sizeof("inbyzantinemusicalsymbols")]; - char unicode_prop_name_pool_str1807[sizeof("ininscriptionalparthian")]; - char unicode_prop_name_pool_str1808[sizeof("diacritic")]; - char unicode_prop_name_pool_str1810[sizeof("ininscriptionalpahlavi")]; - char unicode_prop_name_pool_str1815[sizeof("inmayannumerals")]; - char unicode_prop_name_pool_str1818[sizeof("inmyanmarextendedb")]; - char unicode_prop_name_pool_str1824[sizeof("intags")]; - char unicode_prop_name_pool_str1825[sizeof("java")]; - char unicode_prop_name_pool_str1835[sizeof("cprt")]; - char unicode_prop_name_pool_str1837[sizeof("nand")]; - char unicode_prop_name_pool_str1843[sizeof("patsyn")]; - char unicode_prop_name_pool_str1844[sizeof("tale")]; - char unicode_prop_name_pool_str1846[sizeof("oids")]; - char unicode_prop_name_pool_str1856[sizeof("sentenceterminal")]; - char unicode_prop_name_pool_str1858[sizeof("imperialaramaic")]; - char unicode_prop_name_pool_str1862[sizeof("terminalpunctuation")]; - char unicode_prop_name_pool_str1863[sizeof("lydi")]; - char unicode_prop_name_pool_str1864[sizeof("lydian")]; - char unicode_prop_name_pool_str1866[sizeof("bopo")]; - char unicode_prop_name_pool_str1870[sizeof("javanese")]; - char unicode_prop_name_pool_str1872[sizeof("cwl")]; - char unicode_prop_name_pool_str1874[sizeof("ingeometricshapesextended")]; - char unicode_prop_name_pool_str1875[sizeof("inoldpersian")]; - char unicode_prop_name_pool_str1878[sizeof("inornamentaldingbats")]; - char unicode_prop_name_pool_str1883[sizeof("inbraillepatterns")]; - char unicode_prop_name_pool_str1885[sizeof("invariationselectors")]; - char unicode_prop_name_pool_str1886[sizeof("caseignorable")]; - char unicode_prop_name_pool_str1890[sizeof("inyiradicals")]; - char unicode_prop_name_pool_str1897[sizeof("innoblock")]; - char unicode_prop_name_pool_str1898[sizeof("inverticalforms")]; - char unicode_prop_name_pool_str1903[sizeof("inethiopicsupplement")]; - char unicode_prop_name_pool_str1908[sizeof("sharada")]; - char unicode_prop_name_pool_str1913[sizeof("inbalinese")]; - char unicode_prop_name_pool_str1915[sizeof("invedicextensions")]; - char unicode_prop_name_pool_str1925[sizeof("word")]; - char unicode_prop_name_pool_str1926[sizeof("inmiscellaneousmathematicalsymbolsb")]; - char unicode_prop_name_pool_str1928[sizeof("taml")]; - char unicode_prop_name_pool_str1930[sizeof("olck")]; - char unicode_prop_name_pool_str1931[sizeof("idsb")]; - char unicode_prop_name_pool_str1935[sizeof("olower")]; - char unicode_prop_name_pool_str1939[sizeof("decimalnumber")]; - char unicode_prop_name_pool_str1940[sizeof("avst")]; - char unicode_prop_name_pool_str1942[sizeof("incyrillicextendeda")]; - char unicode_prop_name_pool_str1947[sizeof("olchiki")]; - char unicode_prop_name_pool_str1961[sizeof("shrd")]; - char unicode_prop_name_pool_str1964[sizeof("intaixuanjingsymbols")]; - char unicode_prop_name_pool_str1972[sizeof("intaiviet")]; - char unicode_prop_name_pool_str1973[sizeof("ugar")]; - char unicode_prop_name_pool_str1976[sizeof("incjksymbolsandpunctuation")]; - char unicode_prop_name_pool_str1989[sizeof("bopomofo")]; - char unicode_prop_name_pool_str2000[sizeof("inlisu")]; - char unicode_prop_name_pool_str2004[sizeof("inoldpermic")]; - char unicode_prop_name_pool_str2018[sizeof("siddham")]; - char unicode_prop_name_pool_str2019[sizeof("zanabazarsquare")]; - char unicode_prop_name_pool_str2028[sizeof("assigned")]; - char unicode_prop_name_pool_str2032[sizeof("medf")]; - char unicode_prop_name_pool_str2034[sizeof("closepunctuation")]; - char unicode_prop_name_pool_str2035[sizeof("sarb")]; - char unicode_prop_name_pool_str2036[sizeof("sorasompeng")]; - char unicode_prop_name_pool_str2040[sizeof("invariationselectorssupplement")]; - char unicode_prop_name_pool_str2041[sizeof("inhanguljamo")]; - char unicode_prop_name_pool_str2042[sizeof("medefaidrin")]; - char unicode_prop_name_pool_str2043[sizeof("phag")]; - char unicode_prop_name_pool_str2044[sizeof("inlisusupplement")]; - char unicode_prop_name_pool_str2047[sizeof("incoptic")]; - char unicode_prop_name_pool_str2048[sizeof("insyriacsupplement")]; - char unicode_prop_name_pool_str2053[sizeof("inhanguljamoextendeda")]; - char unicode_prop_name_pool_str2056[sizeof("cyrl")]; - char unicode_prop_name_pool_str2063[sizeof("inshorthandformatcontrols")]; - char unicode_prop_name_pool_str2078[sizeof("incyrillicextendedc")]; - char unicode_prop_name_pool_str2081[sizeof("gujr")]; - char unicode_prop_name_pool_str2090[sizeof("cwu")]; - char unicode_prop_name_pool_str2092[sizeof("gujarati")]; - char unicode_prop_name_pool_str2096[sizeof("spacingmark")]; - char unicode_prop_name_pool_str2099[sizeof("alpha")]; - char unicode_prop_name_pool_str2100[sizeof("mlym")]; - char unicode_prop_name_pool_str2102[sizeof("inpalmyrene")]; - char unicode_prop_name_pool_str2105[sizeof("malayalam")]; - char unicode_prop_name_pool_str2110[sizeof("space")]; - char unicode_prop_name_pool_str2113[sizeof("inlepcha")]; - char unicode_prop_name_pool_str2117[sizeof("palmyrene")]; - char unicode_prop_name_pool_str2122[sizeof("soyo")]; - char unicode_prop_name_pool_str2129[sizeof("meroitichieroglyphs")]; - char unicode_prop_name_pool_str2145[sizeof("xsux")]; - char unicode_prop_name_pool_str2147[sizeof("intelugu")]; - char unicode_prop_name_pool_str2150[sizeof("indevanagariextended")]; - char unicode_prop_name_pool_str2152[sizeof("inmeroiticcursive")]; - char unicode_prop_name_pool_str2160[sizeof("dsrt")]; - char unicode_prop_name_pool_str2161[sizeof("thaa")]; - char unicode_prop_name_pool_str2166[sizeof("thaana")]; - char unicode_prop_name_pool_str2167[sizeof("bugi")]; - char unicode_prop_name_pool_str2168[sizeof("thai")]; - char unicode_prop_name_pool_str2176[sizeof("sogd")]; - char unicode_prop_name_pool_str2178[sizeof("titlecaseletter")]; - char unicode_prop_name_pool_str2182[sizeof("inmathematicalalphanumericsymbols")]; - char unicode_prop_name_pool_str2186[sizeof("orkh")]; - char unicode_prop_name_pool_str2195[sizeof("caucasianalbanian")]; - char unicode_prop_name_pool_str2199[sizeof("inbamum")]; - char unicode_prop_name_pool_str2201[sizeof("deseret")]; - char unicode_prop_name_pool_str2204[sizeof("ingeorgiansupplement")]; - char unicode_prop_name_pool_str2205[sizeof("buginese")]; - char unicode_prop_name_pool_str2207[sizeof("separator")]; - char unicode_prop_name_pool_str2213[sizeof("insmallformvariants")]; - char unicode_prop_name_pool_str2224[sizeof("tirh")]; - char unicode_prop_name_pool_str2228[sizeof("inbrahmi")]; - char unicode_prop_name_pool_str2232[sizeof("nd")]; - char unicode_prop_name_pool_str2240[sizeof("phnx")]; - char unicode_prop_name_pool_str2247[sizeof("newa")]; - char unicode_prop_name_pool_str2252[sizeof("incombiningdiacriticalmarks")]; - char unicode_prop_name_pool_str2261[sizeof("mahj")]; - char unicode_prop_name_pool_str2262[sizeof("incombiningdiacriticalmarksforsymbols")]; - char unicode_prop_name_pool_str2270[sizeof("oldpersian")]; - char unicode_prop_name_pool_str2272[sizeof("mahajani")]; - char unicode_prop_name_pool_str2274[sizeof("taitham")]; - char unicode_prop_name_pool_str2278[sizeof("newtailue")]; - char unicode_prop_name_pool_str2279[sizeof("newline")]; - char unicode_prop_name_pool_str2282[sizeof("syrc")]; - char unicode_prop_name_pool_str2292[sizeof("inmongoliansupplement")]; - char unicode_prop_name_pool_str2296[sizeof("inunifiedcanadianaboriginalsyllabicsextendeda")]; - char unicode_prop_name_pool_str2299[sizeof("shaw")]; - char unicode_prop_name_pool_str2305[sizeof("buhd")]; - char unicode_prop_name_pool_str2306[sizeof("vithkuqi")]; - char unicode_prop_name_pool_str2307[sizeof("number")]; - char unicode_prop_name_pool_str2311[sizeof("insuttonsignwriting")]; - char unicode_prop_name_pool_str2312[sizeof("variationselector")]; - char unicode_prop_name_pool_str2320[sizeof("ethi")]; - char unicode_prop_name_pool_str2322[sizeof("lepcha")]; - char unicode_prop_name_pool_str2326[sizeof("tirhuta")]; - char unicode_prop_name_pool_str2329[sizeof("rohg")]; - char unicode_prop_name_pool_str2336[sizeof("ahex")]; - char unicode_prop_name_pool_str2343[sizeof("incopticepactnumbers")]; - char unicode_prop_name_pool_str2354[sizeof("wancho")]; - char unicode_prop_name_pool_str2359[sizeof("incjkunifiedideographsextensiong")]; - char unicode_prop_name_pool_str2364[sizeof("khoj")]; - char unicode_prop_name_pool_str2371[sizeof("cuneiform")]; - char unicode_prop_name_pool_str2382[sizeof("induployan")]; - char unicode_prop_name_pool_str2390[sizeof("ugaritic")]; - char unicode_prop_name_pool_str2391[sizeof("insymbolsandpictographsextendeda")]; - char unicode_prop_name_pool_str2402[sizeof("oldpermic")]; - char unicode_prop_name_pool_str2407[sizeof("incombiningdiacriticalmarkssupplement")]; - char unicode_prop_name_pool_str2414[sizeof("khudawadi")]; - char unicode_prop_name_pool_str2419[sizeof("tang")]; - char unicode_prop_name_pool_str2420[sizeof("syriac")]; - char unicode_prop_name_pool_str2423[sizeof("tagbanwa")]; - char unicode_prop_name_pool_str2428[sizeof("modifierletter")]; - char unicode_prop_name_pool_str2434[sizeof("incurrencysymbols")]; - char unicode_prop_name_pool_str2436[sizeof("innyiakengpuachuehmong")]; - char unicode_prop_name_pool_str2457[sizeof("tamil")]; - char unicode_prop_name_pool_str2462[sizeof("talu")]; - char unicode_prop_name_pool_str2464[sizeof("ingothic")]; - char unicode_prop_name_pool_str2468[sizeof("inunifiedcanadianaboriginalsyllabics")]; - char unicode_prop_name_pool_str2469[sizeof("wcho")]; - char unicode_prop_name_pool_str2479[sizeof("incombiningdiacriticalmarksextended")]; - char unicode_prop_name_pool_str2480[sizeof("ogam")]; - char unicode_prop_name_pool_str2481[sizeof("telu")]; - char unicode_prop_name_pool_str2482[sizeof("idstrinaryoperator")]; - char unicode_prop_name_pool_str2487[sizeof("inbengali")]; - char unicode_prop_name_pool_str2488[sizeof("nl")]; - char unicode_prop_name_pool_str2493[sizeof("surrogate")]; - char unicode_prop_name_pool_str2500[sizeof("ebase")]; - char unicode_prop_name_pool_str2503[sizeof("hang")]; - char unicode_prop_name_pool_str2504[sizeof("inbuginese")]; - char unicode_prop_name_pool_str2510[sizeof("mathsymbol")]; - char unicode_prop_name_pool_str2511[sizeof("invithkuqi")]; - char unicode_prop_name_pool_str2514[sizeof("vith")]; - char unicode_prop_name_pool_str2518[sizeof("incjkradicalssupplement")]; - char unicode_prop_name_pool_str2524[sizeof("ingujarati")]; - char unicode_prop_name_pool_str2533[sizeof("inglagolitic")]; - char unicode_prop_name_pool_str2534[sizeof("ingunjalagondi")]; - char unicode_prop_name_pool_str2538[sizeof("phagspa")]; - char unicode_prop_name_pool_str2546[sizeof("cwcf")]; - char unicode_prop_name_pool_str2547[sizeof("nchar")]; - char unicode_prop_name_pool_str2548[sizeof("otheridcontinue")]; - char unicode_prop_name_pool_str2549[sizeof("whitespace")]; - char unicode_prop_name_pool_str2556[sizeof("inlinearbsyllabary")]; - char unicode_prop_name_pool_str2557[sizeof("sgnw")]; - char unicode_prop_name_pool_str2561[sizeof("other")]; - char unicode_prop_name_pool_str2567[sizeof("hiragana")]; - char unicode_prop_name_pool_str2569[sizeof("inphagspa")]; - char unicode_prop_name_pool_str2570[sizeof("othernumber")]; - char unicode_prop_name_pool_str2571[sizeof("inrejang")]; - char unicode_prop_name_pool_str2577[sizeof("osge")]; - char unicode_prop_name_pool_str2578[sizeof("incjkunifiedideographsextensionb")]; - char unicode_prop_name_pool_str2584[sizeof("intagalog")]; - char unicode_prop_name_pool_str2585[sizeof("inbassavah")]; - char unicode_prop_name_pool_str2591[sizeof("tangut")]; - char unicode_prop_name_pool_str2606[sizeof("hmng")]; - char unicode_prop_name_pool_str2607[sizeof("inenclosedcjklettersandmonths")]; - char unicode_prop_name_pool_str2614[sizeof("currencysymbol")]; - char unicode_prop_name_pool_str2624[sizeof("inlimbu")]; - char unicode_prop_name_pool_str2627[sizeof("inbuhid")]; - char unicode_prop_name_pool_str2633[sizeof("inethiopicextendeda")]; - char unicode_prop_name_pool_str2634[sizeof("sylo")]; - char unicode_prop_name_pool_str2642[sizeof("dash")]; - char unicode_prop_name_pool_str2644[sizeof("warangciti")]; - char unicode_prop_name_pool_str2652[sizeof("oalpha")]; - char unicode_prop_name_pool_str2653[sizeof("olditalic")]; - char unicode_prop_name_pool_str2657[sizeof("inottomansiyaqnumbers")]; - char unicode_prop_name_pool_str2663[sizeof("spaceseparator")]; - char unicode_prop_name_pool_str2665[sizeof("inlatin1supplement")]; - char unicode_prop_name_pool_str2670[sizeof("otheralphabetic")]; - char unicode_prop_name_pool_str2681[sizeof("changeswhencasemapped")]; - char unicode_prop_name_pool_str2683[sizeof("inaegeannumbers")]; - char unicode_prop_name_pool_str2695[sizeof("inunifiedcanadianaboriginalsyllabicsextended")]; - char unicode_prop_name_pool_str2706[sizeof("buhid")]; - char unicode_prop_name_pool_str2710[sizeof("injavanese")]; - char unicode_prop_name_pool_str2724[sizeof("cyrillic")]; - char unicode_prop_name_pool_str2733[sizeof("dogra")]; - char unicode_prop_name_pool_str2735[sizeof("noncharactercodepoint")]; - char unicode_prop_name_pool_str2742[sizeof("inhangulsyllables")]; - char unicode_prop_name_pool_str2746[sizeof("bassavah")]; - char unicode_prop_name_pool_str2748[sizeof("inletterlikesymbols")]; - char unicode_prop_name_pool_str2756[sizeof("incombininghalfmarks")]; - char unicode_prop_name_pool_str2757[sizeof("inarabicmathematicalalphabeticsymbols")]; - char unicode_prop_name_pool_str2763[sizeof("orya")]; - char unicode_prop_name_pool_str2776[sizeof("inprivateusearea")]; - char unicode_prop_name_pool_str2787[sizeof("changeswhentitlecased")]; - char unicode_prop_name_pool_str2788[sizeof("dogr")]; - char unicode_prop_name_pool_str2794[sizeof("hebr")]; - char unicode_prop_name_pool_str2804[sizeof("intagbanwa")]; - char unicode_prop_name_pool_str2811[sizeof("intifinagh")]; - char unicode_prop_name_pool_str2821[sizeof("inbopomofo")]; - char unicode_prop_name_pool_str2828[sizeof("narb")]; - char unicode_prop_name_pool_str2829[sizeof("rjng")]; - char unicode_prop_name_pool_str2832[sizeof("inalphabeticpresentationforms")]; - char unicode_prop_name_pool_str2833[sizeof("incjkunifiedideographsextensionf")]; - char unicode_prop_name_pool_str2835[sizeof("insymbolsforlegacycomputing")]; - char unicode_prop_name_pool_str2840[sizeof("oldhungarian")]; - char unicode_prop_name_pool_str2854[sizeof("finalpunctuation")]; - char unicode_prop_name_pool_str2862[sizeof("inpaucinhau")]; - char unicode_prop_name_pool_str2863[sizeof("inpsalterpahlavi")]; - char unicode_prop_name_pool_str2869[sizeof("zp")]; - char unicode_prop_name_pool_str2882[sizeof("phlp")]; - char unicode_prop_name_pool_str2894[sizeof("inarabicpresentationformsb")]; - char unicode_prop_name_pool_str2901[sizeof("nonspacingmark")]; - char unicode_prop_name_pool_str2909[sizeof("deva")]; - char unicode_prop_name_pool_str2916[sizeof("tavt")]; - char unicode_prop_name_pool_str2917[sizeof("hmnp")]; - char unicode_prop_name_pool_str2925[sizeof("devanagari")]; - char unicode_prop_name_pool_str2931[sizeof("khitansmallscript")]; - char unicode_prop_name_pool_str2958[sizeof("kayahli")]; - char unicode_prop_name_pool_str2963[sizeof("inbamumsupplement")]; - char unicode_prop_name_pool_str2965[sizeof("sylotinagri")]; - char unicode_prop_name_pool_str2968[sizeof("tibt")]; - char unicode_prop_name_pool_str2972[sizeof("epres")]; - char unicode_prop_name_pool_str2974[sizeof("tibetan")]; - char unicode_prop_name_pool_str2989[sizeof("elba")]; - char unicode_prop_name_pool_str2997[sizeof("osmanya")]; - char unicode_prop_name_pool_str3009[sizeof("indivesakuru")]; - char unicode_prop_name_pool_str3020[sizeof("oldturkic")]; - char unicode_prop_name_pool_str3026[sizeof("changeswhenlowercased")]; - char unicode_prop_name_pool_str3031[sizeof("cyprominoan")]; - char unicode_prop_name_pool_str3032[sizeof("inethiopicextended")]; - char unicode_prop_name_pool_str3037[sizeof("emojipresentation")]; - char unicode_prop_name_pool_str3040[sizeof("any")]; - char unicode_prop_name_pool_str3061[sizeof("otherlowercase")]; - char unicode_prop_name_pool_str3070[sizeof("ougr")]; - char unicode_prop_name_pool_str3071[sizeof("inhebrew")]; - char unicode_prop_name_pool_str3072[sizeof("softdotted")]; - char unicode_prop_name_pool_str3074[sizeof("inmathematicaloperators")]; - char unicode_prop_name_pool_str3077[sizeof("inalchemicalsymbols")]; - char unicode_prop_name_pool_str3078[sizeof("inmahjongtiles")]; - char unicode_prop_name_pool_str3079[sizeof("hangul")]; - char unicode_prop_name_pool_str3087[sizeof("ext")]; - char unicode_prop_name_pool_str3090[sizeof("omath")]; - char unicode_prop_name_pool_str3091[sizeof("intangutcomponents")]; - char unicode_prop_name_pool_str3095[sizeof("otherletter")]; - char unicode_prop_name_pool_str3098[sizeof("nbat")]; - char unicode_prop_name_pool_str3106[sizeof("nabataean")]; - char unicode_prop_name_pool_str3116[sizeof("nshu")]; - char unicode_prop_name_pool_str3117[sizeof("paragraphseparator")]; - char unicode_prop_name_pool_str3123[sizeof("inarabicextendedb")]; - char unicode_prop_name_pool_str3129[sizeof("inlatinextendedg")]; - char unicode_prop_name_pool_str3135[sizeof("changeswhenuppercased")]; - char unicode_prop_name_pool_str3140[sizeof("hung")]; - char unicode_prop_name_pool_str3141[sizeof("inplayingcards")]; - char unicode_prop_name_pool_str3142[sizeof("inarabicsupplement")]; - char unicode_prop_name_pool_str3151[sizeof("inyijinghexagramsymbols")]; - char unicode_prop_name_pool_str3155[sizeof("inphoneticextensions")]; - char unicode_prop_name_pool_str3170[sizeof("otheruppercase")]; - char unicode_prop_name_pool_str3171[sizeof("otheridstart")]; - char unicode_prop_name_pool_str3176[sizeof("elbasan")]; - char unicode_prop_name_pool_str3203[sizeof("elym")]; - char unicode_prop_name_pool_str3207[sizeof("cf")]; - char unicode_prop_name_pool_str3217[sizeof("inindicsiyaqnumbers")]; - char unicode_prop_name_pool_str3220[sizeof("othersymbol")]; - char unicode_prop_name_pool_str3225[sizeof("extender")]; - char unicode_prop_name_pool_str3234[sizeof("extpict")]; - char unicode_prop_name_pool_str3240[sizeof("wspace")]; - char unicode_prop_name_pool_str3244[sizeof("pf")]; - char unicode_prop_name_pool_str3246[sizeof("elymaic")]; - char unicode_prop_name_pool_str3252[sizeof("intangutsupplement")]; - char unicode_prop_name_pool_str3254[sizeof("cypriot")]; - char unicode_prop_name_pool_str3267[sizeof("symbol")]; - char unicode_prop_name_pool_str3280[sizeof("incyrillicextendedb")]; - char unicode_prop_name_pool_str3282[sizeof("insuperscriptsandsubscripts")]; - char unicode_prop_name_pool_str3303[sizeof("inyisyllables")]; - char unicode_prop_name_pool_str3310[sizeof("inphoneticextensionssupplement")]; - char unicode_prop_name_pool_str3330[sizeof("oldsogdian")]; - char unicode_prop_name_pool_str3333[sizeof("ingeorgianextended")]; - char unicode_prop_name_pool_str3340[sizeof("hluw")]; - char unicode_prop_name_pool_str3376[sizeof("digit")]; - char unicode_prop_name_pool_str3391[sizeof("inhanguljamoextendedb")]; - char unicode_prop_name_pool_str3410[sizeof("inhighprivateusesurrogates")]; - char unicode_prop_name_pool_str3440[sizeof("inpahawhhmong")]; - char unicode_prop_name_pool_str3448[sizeof("ogham")]; - char unicode_prop_name_pool_str3455[sizeof("insupplementalarrowsa")]; - char unicode_prop_name_pool_str3458[sizeof("oupper")]; - char unicode_prop_name_pool_str3461[sizeof("aghb")]; - char unicode_prop_name_pool_str3476[sizeof("othermath")]; - char unicode_prop_name_pool_str3527[sizeof("nushu")]; - char unicode_prop_name_pool_str3566[sizeof("soyombo")]; - char unicode_prop_name_pool_str3567[sizeof("inlatinextendedb")]; - char unicode_prop_name_pool_str3578[sizeof("alphabetic")]; - char unicode_prop_name_pool_str3591[sizeof("insupplementalarrowsc")]; - char unicode_prop_name_pool_str3594[sizeof("insupplementalmathematicaloperators")]; - char unicode_prop_name_pool_str3598[sizeof("otherdefaultignorablecodepoint")]; - char unicode_prop_name_pool_str3607[sizeof("deprecated")]; - char unicode_prop_name_pool_str3610[sizeof("oldnortharabian")]; - char unicode_prop_name_pool_str3628[sizeof("incypriotsyllabary")]; - char unicode_prop_name_pool_str3643[sizeof("extendedpictographic")]; - char unicode_prop_name_pool_str3693[sizeof("unifiedideograph")]; - char unicode_prop_name_pool_str3708[sizeof("pahawhhmong")]; - char unicode_prop_name_pool_str3721[sizeof("divesakuru")]; - char unicode_prop_name_pool_str3743[sizeof("signwriting")]; - char unicode_prop_name_pool_str3754[sizeof("tagb")]; - char unicode_prop_name_pool_str3768[sizeof("tifinagh")]; - char unicode_prop_name_pool_str3771[sizeof("upper")]; - char unicode_prop_name_pool_str3842[sizeof("inhalfwidthandfullwidthforms")]; - char unicode_prop_name_pool_str3874[sizeof("uppercase")]; - char unicode_prop_name_pool_str3899[sizeof("ethiopic")]; - char unicode_prop_name_pool_str3912[sizeof("modifiersymbol")]; - char unicode_prop_name_pool_str3952[sizeof("otherpunctuation")]; - char unicode_prop_name_pool_str3969[sizeof("rejang")]; - char unicode_prop_name_pool_str3971[sizeof("inethiopicextendedb")]; - char unicode_prop_name_pool_str4012[sizeof("tfng")]; - char unicode_prop_name_pool_str4025[sizeof("hex")]; - char unicode_prop_name_pool_str4043[sizeof("insupplementalpunctuation")]; - char unicode_prop_name_pool_str4063[sizeof("tglg")]; - char unicode_prop_name_pool_str4077[sizeof("inlatinextendedf")]; - char unicode_prop_name_pool_str4082[sizeof("tagalog")]; - char unicode_prop_name_pool_str4113[sizeof("hanifirohingya")]; - char unicode_prop_name_pool_str4136[sizeof("ecomp")]; - char unicode_prop_name_pool_str4163[sizeof("inglagoliticsupplement")]; - char unicode_prop_name_pool_str4169[sizeof("hexdigit")]; - char unicode_prop_name_pool_str4171[sizeof("changeswhencasefolded")]; - char unicode_prop_name_pool_str4185[sizeof("dashpunctuation")]; - char unicode_prop_name_pool_str4191[sizeof("oldsoutharabian")]; - char unicode_prop_name_pool_str4192[sizeof("dupl")]; - char unicode_prop_name_pool_str4237[sizeof("inegyptianhieroglyphs")]; - char unicode_prop_name_pool_str4239[sizeof("telugu")]; - char unicode_prop_name_pool_str4243[sizeof("uppercaseletter")]; - char unicode_prop_name_pool_str4250[sizeof("inegyptianhieroglyphformatcontrols")]; - char unicode_prop_name_pool_str4287[sizeof("hyphen")]; - char unicode_prop_name_pool_str4347[sizeof("hebrew")]; - char unicode_prop_name_pool_str4355[sizeof("inhighsurrogates")]; - char unicode_prop_name_pool_str4358[sizeof("zyyy")]; - char unicode_prop_name_pool_str4400[sizeof("ogrext")]; - char unicode_prop_name_pool_str4467[sizeof("othergraphemeextend")]; - char unicode_prop_name_pool_str4475[sizeof("dep")]; - char unicode_prop_name_pool_str4793[sizeof("insupplementalarrowsb")]; - char unicode_prop_name_pool_str4796[sizeof("defaultignorablecodepoint")]; - char unicode_prop_name_pool_str4806[sizeof("inhangulcompatibilityjamo")]; - char unicode_prop_name_pool_str4815[sizeof("olduyghur")]; - char unicode_prop_name_pool_str4838[sizeof("insupplementaryprivateuseareaa")]; - char unicode_prop_name_pool_str4926[sizeof("inbopomofoextended")]; - char unicode_prop_name_pool_str5043[sizeof("insupplementalsymbolsandpictographs")]; - char unicode_prop_name_pool_str5052[sizeof("nyiakengpuachuehmong")]; - char unicode_prop_name_pool_str5114[sizeof("openpunctuation")]; - char unicode_prop_name_pool_str5121[sizeof("egyp")]; - char unicode_prop_name_pool_str5136[sizeof("duployan")]; - char unicode_prop_name_pool_str5312[sizeof("inboxdrawing")]; - char unicode_prop_name_pool_str5725[sizeof("egyptianhieroglyphs")]; - char unicode_prop_name_pool_str6176[sizeof("insupplementaryprivateuseareab")]; + char unicode_prop_name_pool_str1652[sizeof("intangut")]; + char unicode_prop_name_pool_str1654[sizeof("cntrl")]; + char unicode_prop_name_pool_str1655[sizeof("olchiki")]; + char unicode_prop_name_pool_str1657[sizeof("inlatinextendedadditional")]; + char unicode_prop_name_pool_str1660[sizeof("olower")]; + char unicode_prop_name_pool_str1666[sizeof("sogdian")]; + char unicode_prop_name_pool_str1668[sizeof("sogo")]; + char unicode_prop_name_pool_str1672[sizeof("ingeometricshapes")]; + char unicode_prop_name_pool_str1677[sizeof("emojicomponent")]; + char unicode_prop_name_pool_str1678[sizeof("limb")]; + char unicode_prop_name_pool_str1682[sizeof("intodhri")]; + char unicode_prop_name_pool_str1684[sizeof("inkayahli")]; + char unicode_prop_name_pool_str1687[sizeof("insogdian")]; + char unicode_prop_name_pool_str1688[sizeof("indingbats")]; + char unicode_prop_name_pool_str1690[sizeof("inoriya")]; + char unicode_prop_name_pool_str1691[sizeof("inyezidi")]; + char unicode_prop_name_pool_str1692[sizeof("insinhalaarchaicnumbers")]; + char unicode_prop_name_pool_str1696[sizeof("copt")]; + char unicode_prop_name_pool_str1697[sizeof("vithkuqi")]; + char unicode_prop_name_pool_str1698[sizeof("incb")]; + char unicode_prop_name_pool_str1699[sizeof("wara")]; + char unicode_prop_name_pool_str1700[sizeof("coptic")]; + char unicode_prop_name_pool_str1701[sizeof("gurungkhema")]; + char unicode_prop_name_pool_str1702[sizeof("inarabic")]; + char unicode_prop_name_pool_str1709[sizeof("ideographic")]; + char unicode_prop_name_pool_str1719[sizeof("diacritic")]; + char unicode_prop_name_pool_str1727[sizeof("cprt")]; + char unicode_prop_name_pool_str1733[sizeof("arab")]; + char unicode_prop_name_pool_str1734[sizeof("inenclosedalphanumerics")]; + char unicode_prop_name_pool_str1735[sizeof("anatolianhieroglyphs")]; + char unicode_prop_name_pool_str1745[sizeof("innewa")]; + char unicode_prop_name_pool_str1748[sizeof("asciihexdigit")]; + char unicode_prop_name_pool_str1750[sizeof("nand")]; + char unicode_prop_name_pool_str1751[sizeof("intags")]; + char unicode_prop_name_pool_str1752[sizeof("ininscriptionalparthian")]; + char unicode_prop_name_pool_str1753[sizeof("innushu")]; + char unicode_prop_name_pool_str1754[sizeof("ininscriptionalpahlavi")]; + char unicode_prop_name_pool_str1763[sizeof("inkawi")]; + char unicode_prop_name_pool_str1774[sizeof("inkatakanaphoneticextensions")]; + char unicode_prop_name_pool_str1775[sizeof("inarabicpresentationformsa")]; + char unicode_prop_name_pool_str1776[sizeof("inbasiclatin")]; + char unicode_prop_name_pool_str1778[sizeof("bopo")]; + char unicode_prop_name_pool_str1781[sizeof("lyci")]; + char unicode_prop_name_pool_str1784[sizeof("lycian")]; + char unicode_prop_name_pool_str1790[sizeof("inoldpersian")]; + char unicode_prop_name_pool_str1792[sizeof("imperialaramaic")]; + char unicode_prop_name_pool_str1801[sizeof("braille")]; + char unicode_prop_name_pool_str1803[sizeof("ingurungkhema")]; + char unicode_prop_name_pool_str1808[sizeof("inwarangciti")]; + char unicode_prop_name_pool_str1811[sizeof("inenclosedalphanumericsupplement")]; + char unicode_prop_name_pool_str1813[sizeof("phli")]; + char unicode_prop_name_pool_str1814[sizeof("mymr")]; + char unicode_prop_name_pool_str1817[sizeof("myanmar")]; + char unicode_prop_name_pool_str1823[sizeof("han")]; + char unicode_prop_name_pool_str1827[sizeof("hani")]; + char unicode_prop_name_pool_str1829[sizeof("incyrillicextendedd")]; + char unicode_prop_name_pool_str1832[sizeof("inbatak")]; + char unicode_prop_name_pool_str1833[sizeof("kawi")]; + char unicode_prop_name_pool_str1836[sizeof("hano")]; + char unicode_prop_name_pool_str1841[sizeof("glag")]; + char unicode_prop_name_pool_str1842[sizeof("lower")]; + char unicode_prop_name_pool_str1847[sizeof("inlisu")]; + char unicode_prop_name_pool_str1850[sizeof("ingeometricshapesextended")]; + char unicode_prop_name_pool_str1859[sizeof("hanunoo")]; + char unicode_prop_name_pool_str1863[sizeof("inkhojki")]; + char unicode_prop_name_pool_str1866[sizeof("intibetan")]; + char unicode_prop_name_pool_str1869[sizeof("grbase")]; + char unicode_prop_name_pool_str1870[sizeof("hira")]; + char unicode_prop_name_pool_str1874[sizeof("insoyombo")]; + char unicode_prop_name_pool_str1880[sizeof("decimalnumber")]; + char unicode_prop_name_pool_str1881[sizeof("inwancho")]; + char unicode_prop_name_pool_str1889[sizeof("inlisusupplement")]; + char unicode_prop_name_pool_str1895[sizeof("sorasompeng")]; + char unicode_prop_name_pool_str1896[sizeof("incoptic")]; + char unicode_prop_name_pool_str1897[sizeof("bopomofo")]; + char unicode_prop_name_pool_str1899[sizeof("inoldpermic")]; + char unicode_prop_name_pool_str1907[sizeof("sharada")]; + char unicode_prop_name_pool_str1909[sizeof("inethiopicsupplement")]; + char unicode_prop_name_pool_str1913[sizeof("incjksymbolsandpunctuation")]; + char unicode_prop_name_pool_str1915[sizeof("spacingmark")]; + char unicode_prop_name_pool_str1917[sizeof("intelugu")]; + char unicode_prop_name_pool_str1922[sizeof("inelymaic")]; + char unicode_prop_name_pool_str1930[sizeof("medf")]; + char unicode_prop_name_pool_str1933[sizeof("insyriacsupplement")]; + char unicode_prop_name_pool_str1934[sizeof("inblockelements")]; + char unicode_prop_name_pool_str1936[sizeof("incjkcompatibility")]; + char unicode_prop_name_pool_str1941[sizeof("medefaidrin")]; + char unicode_prop_name_pool_str1946[sizeof("inkanaextendedb")]; + char unicode_prop_name_pool_str1948[sizeof("oldpersian")]; + char unicode_prop_name_pool_str1950[sizeof("patsyn")]; + char unicode_prop_name_pool_str1951[sizeof("shrd")]; + char unicode_prop_name_pool_str1953[sizeof("lowercase")]; + char unicode_prop_name_pool_str1954[sizeof("orkh")]; + char unicode_prop_name_pool_str1962[sizeof("space")]; + char unicode_prop_name_pool_str1964[sizeof("innumberforms")]; + char unicode_prop_name_pool_str1965[sizeof("assigned")]; + char unicode_prop_name_pool_str1972[sizeof("inarabicextendeda")]; + char unicode_prop_name_pool_str1974[sizeof("inmyanmarextendedb")]; + char unicode_prop_name_pool_str1977[sizeof("inshorthandformatcontrols")]; + char unicode_prop_name_pool_str1980[sizeof("cwcm")]; + char unicode_prop_name_pool_str1986[sizeof("bugi")]; + char unicode_prop_name_pool_str1992[sizeof("variationselector")]; + char unicode_prop_name_pool_str1994[sizeof("inmayannumerals")]; + char unicode_prop_name_pool_str1995[sizeof("sogd")]; + char unicode_prop_name_pool_str1996[sizeof("dsrt")]; + char unicode_prop_name_pool_str2000[sizeof("inbyzantinemusicalsymbols")]; + char unicode_prop_name_pool_str2004[sizeof("ingeorgiansupplement")]; + char unicode_prop_name_pool_str2006[sizeof("lydi")]; + char unicode_prop_name_pool_str2009[sizeof("lydian")]; + char unicode_prop_name_pool_str2013[sizeof("siddham")]; + char unicode_prop_name_pool_str2018[sizeof("inbraillepatterns")]; + char unicode_prop_name_pool_str2024[sizeof("separator")]; + char unicode_prop_name_pool_str2027[sizeof("innewtailue")]; + char unicode_prop_name_pool_str2049[sizeof("sentenceterminal")]; + char unicode_prop_name_pool_str2055[sizeof("inornamentaldingbats")]; + char unicode_prop_name_pool_str2058[sizeof("word")]; + char unicode_prop_name_pool_str2059[sizeof("buginese")]; + char unicode_prop_name_pool_str2061[sizeof("oldpermic")]; + char unicode_prop_name_pool_str2065[sizeof("inyiradicals")]; + char unicode_prop_name_pool_str2066[sizeof("phnx")]; + char unicode_prop_name_pool_str2067[sizeof("hatran")]; + char unicode_prop_name_pool_str2071[sizeof("deseret")]; + char unicode_prop_name_pool_str2073[sizeof("ogam")]; + char unicode_prop_name_pool_str2077[sizeof("insuttonsignwriting")]; + char unicode_prop_name_pool_str2085[sizeof("inunifiedcanadianaboriginalsyllabicsextendeda")]; + char unicode_prop_name_pool_str2086[sizeof("incjkunifiedideographsextensionh")]; + char unicode_prop_name_pool_str2087[sizeof("nd")]; + char unicode_prop_name_pool_str2090[sizeof("inarabicextendedc")]; + char unicode_prop_name_pool_str2092[sizeof("idsb")]; + char unicode_prop_name_pool_str2095[sizeof("caseignorable")]; + char unicode_prop_name_pool_str2101[sizeof("sarb")]; + char unicode_prop_name_pool_str2104[sizeof("hatr")]; + char unicode_prop_name_pool_str2110[sizeof("uideo")]; + char unicode_prop_name_pool_str2120[sizeof("number")]; + char unicode_prop_name_pool_str2129[sizeof("zanabazarsquare")]; + char unicode_prop_name_pool_str2136[sizeof("inmiscellaneousmathematicalsymbolsb")]; + char unicode_prop_name_pool_str2161[sizeof("incjkunifiedideographsextensiong")]; + char unicode_prop_name_pool_str2163[sizeof("innyiakengpuachuehmong")]; + char unicode_prop_name_pool_str2169[sizeof("ahex")]; + char unicode_prop_name_pool_str2170[sizeof("soyo")]; + char unicode_prop_name_pool_str2172[sizeof("cuneiform")]; + char unicode_prop_name_pool_str2173[sizeof("insymbolsforlegacycomputingsupplement")]; + char unicode_prop_name_pool_str2180[sizeof("incopticepactnumbers")]; + char unicode_prop_name_pool_str2183[sizeof("osge")]; + char unicode_prop_name_pool_str2195[sizeof("closepunctuation")]; + char unicode_prop_name_pool_str2201[sizeof("graph")]; + char unicode_prop_name_pool_str2206[sizeof("alpha")]; + char unicode_prop_name_pool_str2211[sizeof("lowercaseletter")]; + char unicode_prop_name_pool_str2215[sizeof("modifierletter")]; + char unicode_prop_name_pool_str2218[sizeof("takri")]; + char unicode_prop_name_pool_str2219[sizeof("olditalic")]; + char unicode_prop_name_pool_str2221[sizeof("inlepcha")]; + char unicode_prop_name_pool_str2222[sizeof("invai")]; + char unicode_prop_name_pool_str2226[sizeof("surrogate")]; + char unicode_prop_name_pool_str2234[sizeof("meroitichieroglyphs")]; + char unicode_prop_name_pool_str2235[sizeof("other")]; + char unicode_prop_name_pool_str2241[sizeof("inpalmyrene")]; + char unicode_prop_name_pool_str2244[sizeof("cwt")]; + char unicode_prop_name_pool_str2245[sizeof("othernumber")]; + char unicode_prop_name_pool_str2247[sizeof("buhd")]; + char unicode_prop_name_pool_str2248[sizeof("otheridcontinue")]; + char unicode_prop_name_pool_str2249[sizeof("inunifiedcanadianaboriginalsyllabics")]; + char unicode_prop_name_pool_str2250[sizeof("takr")]; + char unicode_prop_name_pool_str2260[sizeof("unassigned")]; + char unicode_prop_name_pool_str2263[sizeof("vith")]; + char unicode_prop_name_pool_str2267[sizeof("inbamum")]; + char unicode_prop_name_pool_str2268[sizeof("phag")]; + char unicode_prop_name_pool_str2275[sizeof("taile")]; + char unicode_prop_name_pool_str2277[sizeof("inhanguljamo")]; + char unicode_prop_name_pool_str2280[sizeof("caucasianalbanian")]; + char unicode_prop_name_pool_str2281[sizeof("innoblock")]; + char unicode_prop_name_pool_str2283[sizeof("idstrinaryoperator")]; + char unicode_prop_name_pool_str2303[sizeof("syrc")]; + char unicode_prop_name_pool_str2306[sizeof("inhanguljamoextendeda")]; + char unicode_prop_name_pool_str2313[sizeof("inbalinese")]; + char unicode_prop_name_pool_str2352[sizeof("otheralphabetic")]; + char unicode_prop_name_pool_str2356[sizeof("gujr")]; + char unicode_prop_name_pool_str2361[sizeof("oldhungarian")]; + char unicode_prop_name_pool_str2367[sizeof("gujarati")]; + char unicode_prop_name_pool_str2372[sizeof("tnsa")]; + char unicode_prop_name_pool_str2374[sizeof("tangsa")]; + char unicode_prop_name_pool_str2377[sizeof("term")]; + char unicode_prop_name_pool_str2380[sizeof("inmongoliansupplement")]; + char unicode_prop_name_pool_str2383[sizeof("incombiningdiacriticalmarks")]; + char unicode_prop_name_pool_str2389[sizeof("inshavian")]; + char unicode_prop_name_pool_str2393[sizeof("incombiningdiacriticalmarksforsymbols")]; + char unicode_prop_name_pool_str2396[sizeof("spaceseparator")]; + char unicode_prop_name_pool_str2419[sizeof("cyrl")]; + char unicode_prop_name_pool_str2423[sizeof("syriac")]; + char unicode_prop_name_pool_str2427[sizeof("inunifiedcanadianaboriginalsyllabicsextended")]; + char unicode_prop_name_pool_str2428[sizeof("inethiopicextendeda")]; + char unicode_prop_name_pool_str2431[sizeof("inmathematicalalphanumericsymbols")]; + char unicode_prop_name_pool_str2451[sizeof("mlym")]; + char unicode_prop_name_pool_str2452[sizeof("induployan")]; + char unicode_prop_name_pool_str2456[sizeof("malayalam")]; + char unicode_prop_name_pool_str2461[sizeof("incombiningdiacriticalmarkssupplement")]; + char unicode_prop_name_pool_str2464[sizeof("insymbolsandpictographsextendeda")]; + char unicode_prop_name_pool_str2468[sizeof("toto")]; + char unicode_prop_name_pool_str2469[sizeof("ethi")]; + char unicode_prop_name_pool_str2471[sizeof("palmyrene")]; + char unicode_prop_name_pool_str2478[sizeof("rohg")]; + char unicode_prop_name_pool_str2489[sizeof("taiviet")]; + char unicode_prop_name_pool_str2507[sizeof("ougr")]; + char unicode_prop_name_pool_str2511[sizeof("oldturkic")]; + char unicode_prop_name_pool_str2512[sizeof("inpaucinhau")]; + char unicode_prop_name_pool_str2516[sizeof("lepcha")]; + char unicode_prop_name_pool_str2523[sizeof("orya")]; + char unicode_prop_name_pool_str2532[sizeof("incjkradicalssupplement")]; + char unicode_prop_name_pool_str2546[sizeof("incjkunifiedideographsextensionf")]; + char unicode_prop_name_pool_str2552[sizeof("inglagolitic")]; + char unicode_prop_name_pool_str2554[sizeof("intagalog")]; + char unicode_prop_name_pool_str2561[sizeof("incombiningdiacriticalmarksextended")]; + char unicode_prop_name_pool_str2566[sizeof("inphagspa")]; + char unicode_prop_name_pool_str2571[sizeof("ext")]; + char unicode_prop_name_pool_str2572[sizeof("indevanagari")]; + char unicode_prop_name_pool_str2579[sizeof("incjkunifiedideographsextensionb")]; + char unicode_prop_name_pool_str2585[sizeof("oalpha")]; + char unicode_prop_name_pool_str2591[sizeof("buhid")]; + char unicode_prop_name_pool_str2596[sizeof("ingothic")]; + char unicode_prop_name_pool_str2597[sizeof("avestan")]; + char unicode_prop_name_pool_str2601[sizeof("todr")]; + char unicode_prop_name_pool_str2610[sizeof("indevanagariextendeda")]; + char unicode_prop_name_pool_str2613[sizeof("inottomansiyaqnumbers")]; + char unicode_prop_name_pool_str2617[sizeof("todhri")]; + char unicode_prop_name_pool_str2638[sizeof("inlatin1supplement")]; + char unicode_prop_name_pool_str2648[sizeof("nagm")]; + char unicode_prop_name_pool_str2662[sizeof("inbrahmi")]; + char unicode_prop_name_pool_str2667[sizeof("terminalpunctuation")]; + char unicode_prop_name_pool_str2684[sizeof("otheridstart")]; + char unicode_prop_name_pool_str2687[sizeof("nchar")]; + char unicode_prop_name_pool_str2695[sizeof("inverticalforms")]; + char unicode_prop_name_pool_str2697[sizeof("phagspa")]; + char unicode_prop_name_pool_str2698[sizeof("dogra")]; + char unicode_prop_name_pool_str2700[sizeof("extpict")]; + char unicode_prop_name_pool_str2701[sizeof("intaiviet")]; + char unicode_prop_name_pool_str2719[sizeof("otheruppercase")]; + char unicode_prop_name_pool_str2727[sizeof("avst")]; + char unicode_prop_name_pool_str2729[sizeof("extender")]; + char unicode_prop_name_pool_str2734[sizeof("cwu")]; + char unicode_prop_name_pool_str2737[sizeof("inphoneticextensions")]; + char unicode_prop_name_pool_str2741[sizeof("invariationselectors")]; + char unicode_prop_name_pool_str2742[sizeof("inbengali")]; + char unicode_prop_name_pool_str2744[sizeof("dogr")]; + char unicode_prop_name_pool_str2745[sizeof("softdotted")]; + char unicode_prop_name_pool_str2746[sizeof("incurrencysymbols")]; + char unicode_prop_name_pool_str2751[sizeof("invedicextensions")]; + char unicode_prop_name_pool_str2753[sizeof("sunuwar")]; + char unicode_prop_name_pool_str2755[sizeof("osmanya")]; + char unicode_prop_name_pool_str2761[sizeof("wancho")]; + char unicode_prop_name_pool_str2769[sizeof("nl")]; + char unicode_prop_name_pool_str2770[sizeof("inethiopicextended")]; + char unicode_prop_name_pool_str2772[sizeof("mathsymbol")]; + char unicode_prop_name_pool_str2775[sizeof("inbuginese")]; + char unicode_prop_name_pool_str2779[sizeof("dash")]; + char unicode_prop_name_pool_str2780[sizeof("inlowsurrogates")]; + char unicode_prop_name_pool_str2787[sizeof("ebase")]; + char unicode_prop_name_pool_str2815[sizeof("inphoneticextensionssupplement")]; + char unicode_prop_name_pool_str2819[sizeof("invariationselectorssupplement")]; + char unicode_prop_name_pool_str2824[sizeof("zp")]; + char unicode_prop_name_pool_str2826[sizeof("posixpunct")]; + char unicode_prop_name_pool_str2835[sizeof("noncharactercodepoint")]; + char unicode_prop_name_pool_str2838[sizeof("sylo")]; + char unicode_prop_name_pool_str2840[sizeof("nonspacingmark")]; + char unicode_prop_name_pool_str2845[sizeof("oupper")]; + char unicode_prop_name_pool_str2852[sizeof("inlimbu")]; + char unicode_prop_name_pool_str2857[sizeof("wcho")]; + char unicode_prop_name_pool_str2860[sizeof("ingaray")]; + char unicode_prop_name_pool_str2862[sizeof("warangciti")]; + char unicode_prop_name_pool_str2865[sizeof("ingeorgianextended")]; + char unicode_prop_name_pool_str2870[sizeof("changeswhencasemapped")]; + char unicode_prop_name_pool_str2871[sizeof("currencysymbol")]; + char unicode_prop_name_pool_str2872[sizeof("intifinagh")]; + char unicode_prop_name_pool_str2879[sizeof("java")]; + char unicode_prop_name_pool_str2896[sizeof("titlecaseletter")]; + char unicode_prop_name_pool_str2898[sizeof("olonal")]; + char unicode_prop_name_pool_str2903[sizeof("mahj")]; + char unicode_prop_name_pool_str2904[sizeof("inmeroiticcursive")]; + char unicode_prop_name_pool_str2914[sizeof("mahajani")]; + char unicode_prop_name_pool_str2915[sizeof("tale")]; + char unicode_prop_name_pool_str2917[sizeof("otherlowercase")]; + char unicode_prop_name_pool_str2920[sizeof("ugar")]; + char unicode_prop_name_pool_str2925[sizeof("otherletter")]; + char unicode_prop_name_pool_str2930[sizeof("changeswhentitlecased")]; + char unicode_prop_name_pool_str2943[sizeof("epres")]; + char unicode_prop_name_pool_str2945[sizeof("emojipresentation")]; + char unicode_prop_name_pool_str2946[sizeof("inaegeannumbers")]; + char unicode_prop_name_pool_str2949[sizeof("inindicsiyaqnumbers")]; + char unicode_prop_name_pool_str2952[sizeof("indevanagariextended")]; + char unicode_prop_name_pool_str2959[sizeof("javanese")]; + char unicode_prop_name_pool_str2966[sizeof("hang")]; + char unicode_prop_name_pool_str2970[sizeof("inletterlikesymbols")]; + char unicode_prop_name_pool_str2973[sizeof("intagbanwa")]; + char unicode_prop_name_pool_str2975[sizeof("inalphabeticpresentationforms")]; + char unicode_prop_name_pool_str2978[sizeof("taml")]; + char unicode_prop_name_pool_str2979[sizeof("tirhuta")]; + char unicode_prop_name_pool_str2981[sizeof("whitespace")]; + char unicode_prop_name_pool_str2987[sizeof("ingujarati")]; + char unicode_prop_name_pool_str2992[sizeof("paragraphseparator")]; + char unicode_prop_name_pool_str2997[sizeof("intangutcomponents")]; + char unicode_prop_name_pool_str2999[sizeof("ingunjalagondi")]; + char unicode_prop_name_pool_str3002[sizeof("khoj")]; + char unicode_prop_name_pool_str3003[sizeof("inbassavah")]; + char unicode_prop_name_pool_str3004[sizeof("inbuhid")]; + char unicode_prop_name_pool_str3011[sizeof("khitansmallscript")]; + char unicode_prop_name_pool_str3014[sizeof("narb")]; + char unicode_prop_name_pool_str3017[sizeof("inbopomofo")]; + char unicode_prop_name_pool_str3020[sizeof("hiragana")]; + char unicode_prop_name_pool_str3025[sizeof("inrejang")]; + char unicode_prop_name_pool_str3027[sizeof("oldsogdian")]; + char unicode_prop_name_pool_str3035[sizeof("nushu")]; + char unicode_prop_name_pool_str3050[sizeof("incyrillicextendedb")]; + char unicode_prop_name_pool_str3051[sizeof("othersymbol")]; + char unicode_prop_name_pool_str3052[sizeof("nagmundari")]; + char unicode_prop_name_pool_str3053[sizeof("extendedpictographic")]; + char unicode_prop_name_pool_str3054[sizeof("otherdefaultignorablecodepoint")]; + char unicode_prop_name_pool_str3065[sizeof("hmng")]; + char unicode_prop_name_pool_str3068[sizeof("insymbolsforlegacycomputing")]; + char unicode_prop_name_pool_str3070[sizeof("omath")]; + char unicode_prop_name_pool_str3084[sizeof("sylotinagri")]; + char unicode_prop_name_pool_str3086[sizeof("inlinearbsyllabary")]; + char unicode_prop_name_pool_str3097[sizeof("intangutsupplement")]; + char unicode_prop_name_pool_str3098[sizeof("inarabicmathematicalalphabeticsymbols")]; + char unicode_prop_name_pool_str3100[sizeof("cf")]; + char unicode_prop_name_pool_str3105[sizeof("inenclosedcjklettersandmonths")]; + char unicode_prop_name_pool_str3107[sizeof("inbamumsupplement")]; + char unicode_prop_name_pool_str3111[sizeof("pf")]; + char unicode_prop_name_pool_str3130[sizeof("cwl")]; + char unicode_prop_name_pool_str3133[sizeof("nshu")]; + char unicode_prop_name_pool_str3136[sizeof("inmathematicaloperators")]; + char unicode_prop_name_pool_str3143[sizeof("inhangulsyllables")]; + char unicode_prop_name_pool_str3156[sizeof("incombininghalfmarks")]; + char unicode_prop_name_pool_str3162[sizeof("newa")]; + char unicode_prop_name_pool_str3169[sizeof("tangut")]; + char unicode_prop_name_pool_str3171[sizeof("digit")]; + char unicode_prop_name_pool_str3186[sizeof("changeswhenuppercased")]; + char unicode_prop_name_pool_str3189[sizeof("finalpunctuation")]; + char unicode_prop_name_pool_str3196[sizeof("inpsalterpahlavi")]; + char unicode_prop_name_pool_str3205[sizeof("phlp")]; + char unicode_prop_name_pool_str3207[sizeof("rjng")]; + char unicode_prop_name_pool_str3208[sizeof("nbat")]; + char unicode_prop_name_pool_str3210[sizeof("newtailue")]; + char unicode_prop_name_pool_str3212[sizeof("newline")]; + char unicode_prop_name_pool_str3213[sizeof("cyprominoan")]; + char unicode_prop_name_pool_str3217[sizeof("nabataean")]; + char unicode_prop_name_pool_str3223[sizeof("insuperscriptsandsubscripts")]; + char unicode_prop_name_pool_str3225[sizeof("cyrillic")]; + char unicode_prop_name_pool_str3243[sizeof("ugaritic")]; + char unicode_prop_name_pool_str3244[sizeof("ogham")]; + char unicode_prop_name_pool_str3252[sizeof("insmallformvariants")]; + char unicode_prop_name_pool_str3256[sizeof("inlatinextendedg")]; + char unicode_prop_name_pool_str3266[sizeof("thaa")]; + char unicode_prop_name_pool_str3270[sizeof("inarabicsupplement")]; + char unicode_prop_name_pool_str3272[sizeof("thaana")]; + char unicode_prop_name_pool_str3273[sizeof("thai")]; + char unicode_prop_name_pool_str3284[sizeof("shaw")]; + char unicode_prop_name_pool_str3292[sizeof("insupplementalarrowsa")]; + char unicode_prop_name_pool_str3293[sizeof("inplayingcards")]; + char unicode_prop_name_pool_str3318[sizeof("hmnp")]; + char unicode_prop_name_pool_str3320[sizeof("tirh")]; + char unicode_prop_name_pool_str3335[sizeof("idcompatmathcontinue")]; + char unicode_prop_name_pool_str3339[sizeof("inarabicpresentationformsb")]; + char unicode_prop_name_pool_str3343[sizeof("idcompatmathstart")]; + char unicode_prop_name_pool_str3345[sizeof("tang")]; + char unicode_prop_name_pool_str3349[sizeof("tagbanwa")]; + char unicode_prop_name_pool_str3354[sizeof("cypriot")]; + char unicode_prop_name_pool_str3355[sizeof("garay")]; + char unicode_prop_name_pool_str3362[sizeof("othermath")]; + char unicode_prop_name_pool_str3363[sizeof("sgnw")]; + char unicode_prop_name_pool_str3365[sizeof("talu")]; + char unicode_prop_name_pool_str3375[sizeof("taitham")]; + char unicode_prop_name_pool_str3384[sizeof("changeswhenlowercased")]; + char unicode_prop_name_pool_str3395[sizeof("khudawadi")]; + char unicode_prop_name_pool_str3398[sizeof("elba")]; + char unicode_prop_name_pool_str3401[sizeof("telu")]; + char unicode_prop_name_pool_str3410[sizeof("insupplementalarrowsc")]; + char unicode_prop_name_pool_str3412[sizeof("cwcf")]; + char unicode_prop_name_pool_str3416[sizeof("wspace")]; + char unicode_prop_name_pool_str3421[sizeof("any")]; + char unicode_prop_name_pool_str3432[sizeof("insupplementalmathematicaloperators")]; + char unicode_prop_name_pool_str3445[sizeof("ogrext")]; + char unicode_prop_name_pool_str3452[sizeof("hung")]; + char unicode_prop_name_pool_str3463[sizeof("hebr")]; + char unicode_prop_name_pool_str3473[sizeof("deprecated")]; + char unicode_prop_name_pool_str3485[sizeof("unknown")]; + char unicode_prop_name_pool_str3497[sizeof("oldnortharabian")]; + char unicode_prop_name_pool_str3510[sizeof("modifiercombiningmark")]; + char unicode_prop_name_pool_str3516[sizeof("kayahli")]; + char unicode_prop_name_pool_str3532[sizeof("invithkuqi")]; + char unicode_prop_name_pool_str3536[sizeof("inarabicextendedb")]; + char unicode_prop_name_pool_str3566[sizeof("indivesakuru")]; + char unicode_prop_name_pool_str3578[sizeof("elbasan")]; + char unicode_prop_name_pool_str3581[sizeof("elym")]; + char unicode_prop_name_pool_str3606[sizeof("otherpunctuation")]; + char unicode_prop_name_pool_str3610[sizeof("elymaic")]; + char unicode_prop_name_pool_str3623[sizeof("symbol")]; + char unicode_prop_name_pool_str3635[sizeof("tulutigalari")]; + char unicode_prop_name_pool_str3641[sizeof("inalchemicalsymbols")]; + char unicode_prop_name_pool_str3645[sizeof("inpahawhhmong")]; + char unicode_prop_name_pool_str3661[sizeof("inprivateusearea")]; + char unicode_prop_name_pool_str3663[sizeof("tamil")]; + char unicode_prop_name_pool_str3676[sizeof("hangul")]; + char unicode_prop_name_pool_str3703[sizeof("inyisyllables")]; + char unicode_prop_name_pool_str3731[sizeof("hex")]; + char unicode_prop_name_pool_str3739[sizeof("insupplementalpunctuation")]; + char unicode_prop_name_pool_str3762[sizeof("deva")]; + char unicode_prop_name_pool_str3774[sizeof("inyijinghexagramsymbols")]; + char unicode_prop_name_pool_str3776[sizeof("inhighprivateusesurrogates")]; + char unicode_prop_name_pool_str3779[sizeof("devanagari")]; + char unicode_prop_name_pool_str3786[sizeof("bassavah")]; + char unicode_prop_name_pool_str3836[sizeof("soyombo")]; + char unicode_prop_name_pool_str3849[sizeof("dashpunctuation")]; + char unicode_prop_name_pool_str3865[sizeof("inmahjongtiles")]; + char unicode_prop_name_pool_str3870[sizeof("inhanguljamoextendedb")]; + char unicode_prop_name_pool_str3893[sizeof("alphabetic")]; + char unicode_prop_name_pool_str3903[sizeof("aghb")]; + char unicode_prop_name_pool_str3926[sizeof("incypriotsyllabary")]; + char unicode_prop_name_pool_str3936[sizeof("oldsoutharabian")]; + char unicode_prop_name_pool_str3985[sizeof("inhalfwidthandfullwidthforms")]; + char unicode_prop_name_pool_str3992[sizeof("inethiopicextendedb")]; + char unicode_prop_name_pool_str3999[sizeof("ethiopic")]; + char unicode_prop_name_pool_str4007[sizeof("tibt")]; + char unicode_prop_name_pool_str4014[sizeof("tibetan")]; + char unicode_prop_name_pool_str4026[sizeof("inlatinextendedf")]; + char unicode_prop_name_pool_str4031[sizeof("othergraphemeextend")]; + char unicode_prop_name_pool_str4061[sizeof("injavanese")]; + char unicode_prop_name_pool_str4068[sizeof("tutg")]; + char unicode_prop_name_pool_str4083[sizeof("ecomp")]; + char unicode_prop_name_pool_str4084[sizeof("inglagoliticsupplement")]; + char unicode_prop_name_pool_str4092[sizeof("inlatinextendedb")]; + char unicode_prop_name_pool_str4104[sizeof("dupl")]; + char unicode_prop_name_pool_str4175[sizeof("modifiersymbol")]; + char unicode_prop_name_pool_str4190[sizeof("hexdigit")]; + char unicode_prop_name_pool_str4278[sizeof("inegyptianhieroglyphsextendeda")]; + char unicode_prop_name_pool_str4302[sizeof("changeswhencasefolded")]; + char unicode_prop_name_pool_str4368[sizeof("dep")]; + char unicode_prop_name_pool_str4391[sizeof("rejang")]; + char unicode_prop_name_pool_str4398[sizeof("divesakuru")]; + char unicode_prop_name_pool_str4404[sizeof("openpunctuation")]; + char unicode_prop_name_pool_str4425[sizeof("inhebrew")]; + char unicode_prop_name_pool_str4442[sizeof("inegyptianhieroglyphs")]; + char unicode_prop_name_pool_str4455[sizeof("inegyptianhieroglyphformatcontrols")]; + char unicode_prop_name_pool_str4514[sizeof("hanifirohingya")]; + char unicode_prop_name_pool_str4566[sizeof("signwriting")]; + char unicode_prop_name_pool_str4617[sizeof("defaultignorablecodepoint")]; + char unicode_prop_name_pool_str4620[sizeof("upper")]; + char unicode_prop_name_pool_str4627[sizeof("tavt")]; + char unicode_prop_name_pool_str4635[sizeof("inbopomofoextended")]; + char unicode_prop_name_pool_str4653[sizeof("insupplementaryprivateuseareaa")]; + char unicode_prop_name_pool_str4701[sizeof("olduyghur")]; + char unicode_prop_name_pool_str4709[sizeof("hluw")]; + char unicode_prop_name_pool_str4731[sizeof("uppercase")]; + char unicode_prop_name_pool_str4808[sizeof("inhighsurrogates")]; + char unicode_prop_name_pool_str4812[sizeof("tifinagh")]; + char unicode_prop_name_pool_str4856[sizeof("insupplementalarrowsb")]; + char unicode_prop_name_pool_str4876[sizeof("tfng")]; + char unicode_prop_name_pool_str4905[sizeof("tagb")]; + char unicode_prop_name_pool_str4909[sizeof("hyphen")]; + char unicode_prop_name_pool_str4972[sizeof("zyyy")]; + char unicode_prop_name_pool_str4989[sizeof("uppercaseletter")]; + char unicode_prop_name_pool_str5035[sizeof("telugu")]; + char unicode_prop_name_pool_str5069[sizeof("pahawhhmong")]; + char unicode_prop_name_pool_str5080[sizeof("insupplementalsymbolsandpictographs")]; + char unicode_prop_name_pool_str5081[sizeof("unifiedideograph")]; + char unicode_prop_name_pool_str5092[sizeof("duployan")]; + char unicode_prop_name_pool_str5163[sizeof("inboxdrawing")]; + char unicode_prop_name_pool_str5171[sizeof("tglg")]; + char unicode_prop_name_pool_str5190[sizeof("tagalog")]; + char unicode_prop_name_pool_str5237[sizeof("inhangulcompatibilityjamo")]; + char unicode_prop_name_pool_str5343[sizeof("egyp")]; + char unicode_prop_name_pool_str5453[sizeof("nyiakengpuachuehmong")]; + char unicode_prop_name_pool_str6075[sizeof("egyptianhieroglyphs")]; + char unicode_prop_name_pool_str6217[sizeof("insupplementaryprivateuseareab")]; + char unicode_prop_name_pool_str6900[sizeof("hebrew")]; }; static const struct unicode_prop_name_pool_t unicode_prop_name_pool_contents = { "lana", - "lina", - "z", "yi", + "lina", + "yiii", "mn", - "cn", "maka", - "yiii", "mani", + "z", "inkannada", - "ci", "lo", "lao", "laoo", - "zzzz", "miao", - "yezi", + "cn", + "ci", "innko", - "co", - "me", - "loe", + "zzzz", + "yezi", + "gara", "gran", "pi", "lineara", + "co", "mark", - "cari", - "carian", "po", - "mendekikakui", - "grek", - "pe", - "meeteimayek", + "inkiratrai", + "me", "inkharoshthi", - "geor", - "greek", + "cari", + "loe", + "carian", "mro", "mroo", + "grek", "kana", - "mero", + "geor", + "greek", "m", + "mero", + "pe", + "mendekikakui", "gonm", - "cakm", "inosmanya", "inmanichaean", - "inarmenian", + "inchakma", + "cakm", "inmro", "inmiao", - "c", - "inchakma", - "common", + "meeteimayek", "mandaic", + "c", + "krai", + "inarmenian", "inmyanmar", "inmakasar", + "common", "qaai", - "inideographicsymbolsandpunctuation", - "inkhmer", - "cans", - "prependedconcatenationmark", - "lm", "marc", - "connectorpunctuation", "inrunic", "incarian", - "inavestan", - "combiningmark", - "incuneiformnumbersandpunctuation", - "merc", + "lm", + "inkhmer", "inchorasmian", - "perm", + "inideographicsymbolsandpunctuation", + "cans", + "merc", + "combiningmark", "inahom", - "inipaextensions", - "incherokee", + "perm", + "inavestan", + "connectorpunctuation", "insharada", + "lc", + "prependedconcatenationmark", + "incuneiformnumbersandpunctuation", + "inipaextensions", "makasar", + "latn", + "mc", "inarrows", - "lc", + "ri", + "latin", + "incherokee", + "inthaana", "masaramgondi", - "incuneiform", - "mc", - "cc", - "inzanabazarsquare", - "lineseparator", + "inkatakana", "armn", - "qmark", + "inthai", + "cc", "armi", - "insamaritan", + "incuneiform", + "inkaithi", + "pc", "armenian", "inmarchen", - "inmasaramgondi", + "qmark", "qaac", - "pc", + "initialpunctuation", + "inzanabazarsquare", + "insamaritan", + "lineseparator", + "mtei", + "inmasaramgondi", "inscriptionalparthian", - "latn", - "latin", - "ri", - "inthaana", - "inkhmersymbols", - "inkatakana", "incyrillic", - "inthai", + "intakri", "incham", - "inkaithi", - "zs", - "mtei", - "initialpunctuation", - "cs", + "mcm", + "prti", + "katakana", + "inkhmersymbols", "insyriac", "pcm", - "intakri", - "ps", "mand", + "zs", "inkanaextendeda", - "mend", + "cs", "modi", - "katakana", + "privateuse", + "ps", + "brai", + "mend", "ideo", - "prti", "yezidi", - "inideographicdescriptioncharacters", - "xidcontinue", - "brai", - "ascii", - "privateuse", - "arabic", "inmyanmarextendeda", - "inruminumeralsymbols", + "arabic", "letter", + "xidcontinue", + "ascii", "innandinagari", - "inmeeteimayek", "inoldnortharabian", - "incjkcompatibilityforms", + "inmeeteimayek", "knda", "kannada", - "incjkcompatibilityideographs", - "l", - "inmodi", - "inspecials", "intransportandmapsymbols", - "inmendekikakui", + "kiratrai", + "inruminumeralsymbols", + "inideographicdescriptioncharacters", + "incjkcompatibilityforms", "letternumber", - "inmedefaidrin", + "incjkcompatibilityideographs", + "inmodi", "xidc", - "inchesssymbols", + "inmendekikakui", + "lt", "inemoticons", - "inlineara", - "inlao", - "brahmi", + "sk", "inolditalic", - "inmiscellaneousmathematicalsymbolsa", - "mongolian", - "xids", + "brahmi", + "gothic", + "inmedefaidrin", "psalterpahlavi", - "grlink", + "so", + "inspecials", "kits", - "insundanese", + "inmyanmarextendedc", + "intoto", + "xids", + "inchesssymbols", + "incjkcompatibilityideographssupplement", + "inopticalcharacterrecognition", + "sora", + "inkanasupplement", "inoldsogdian", - "gothic", - "inancientsymbols", "meroiticcursive", - "kali", - "control", + "inmiscellaneousmathematicalsymbolsa", + "grext", "patternwhitespace", - "inadlam", - "sk", - "lt", + "insundanese", "inmandaic", - "incommonindicnumberforms", - "incjkcompatibilityideographssupplement", - "so", + "print", "idc", - "inoldsoutharabian", - "palm", - "inlycian", - "intoto", - "idsbinaryoperator", - "inkanasupplement", - "incjkstrokes", - "sora", - "bamum", - "inopticalcharacterrecognition", - "indominotiles", "batk", - "grext", + "inancientsymbols", "batak", - "patws", - "inmalayalam", - "inmodifiertoneletters", - "insmallkanaextension", - "bass", - "ids", - "print", - "inlinearbideograms", "intaitham", - "inmusicalsymbols", + "inoldsoutharabian", + "incommonindicnumberforms", "inznamennymusicalnotation", "samr", - "insylotinagri", - "innewa", + "patws", + "bamum", + "idsbinaryoperator", "samaritan", + "pauc", "s", - "joinc", - "incontrolpictures", + "incjkstrokes", + "inugaritic", "lisu", - "pauc", - "inmiscellaneoussymbols", + "indominotiles", + "idsunaryoperator", + "sm", + "l", "inancientgreekmusicalnotation", + "bass", + "ids", + "inmodifiertoneletters", + "incontrolpictures", + "sc", + "insaurashtra", + "insunuwar", + "inlao", + "pd", + "inolonal", + "inoldturkic", + "inlineara", + "mongolian", + "inmusicalsymbols", + "idcontinue", + "incaucasianalbanian", + "grlink", + "idst", + "runr", + "kali", + "inadlam", + "inmiscellaneoussymbols", + "control", + "indeseret", "inmiscellaneoussymbolsandarrows", - "sm", + "idstart", "inmiscellaneoussymbolsandpictographs", - "inugaritic", - "pd", + "inlycian", + "palm", + "sind", + "onao", + "xidstart", + "inancientgreeknumbers", + "xdigit", + "inmeeteimayekextensions", + "inkhudawadi", + "inspacingmodifierletters", + "oriya", + "cased", + "inmalayalam", + "inolduyghur", + "incountingrodnumerals", + "bamu", + "insmallkanaextension", + "bidic", "ital", - "alnum", - "zinh", - "inwarangciti", + "inkaktoviknumerals", + "joinc", + "insylotinagri", + "vai", + "vaii", + "inlinearbideograms", "inlatinextendeda", - "insaurashtra", + "sterm", + "incyrillicsupplement", + "runic", + "lu", + "insiddham", + "quotationmark", "intaile", - "inoldturkic", - "idcontinue", - "inhanifirohingya", - "sc", - "idst", + "incherokeesupplement", + "alnum", + "idsu", + "incjkunifiedideographsextensiona", + "incjkunifiedideographsextensioni", + "saur", + "punct", + "sundanese", + "guru", "inlatinextendede", - "lower", "bali", - "inhiragana", - "incaucasianalbanian", - "indeseret", + "paucinhau", "blank", - "inspacingmodifierletters", - "cherokee", + "gurmukhi", + "intamil", + "incjkunifiedideographsextensione", + "inmultani", "inlydian", - "phoenician", - "cher", + "osage", "bengali", + "limbu", + "osma", + "zinh", + "balinese", + "inhanifirohingya", + "plrd", + "incjkunifiedideographsextensionc", + "inhiragana", + "canadianaboriginal", + "saurashtra", + "phoenician", + "ingrantha", + "sd", + "gong", + "incjkunifiedideographs", "marchen", - "inwancho", + "sidd", + "odi", + "mong", + "sinhala", "graphemelink", - "balinese", - "idstart", - "intamil", - "inmultani", - "cham", - "chakma", + "inearlydynasticcuneiform", + "cher", "kaithi", "inmahajani", - "graphemebase", + "inlatinextendedc", + "multani", "inogham", - "cased", - "inmeeteimayekextensions", + "gunjalagondi", + "cham", + "cherokee", + "chakma", "khojki", - "inancientgreeknumbers", - "runr", + "inosage", "khar", "manichaean", - "lowercase", - "canadianaboriginal", + "georgian", + "ingeneralpunctuation", "inolchiki", - "plrd", + "ingeorgian", + "graphemebase", + "adlm", "inethiopic", - "sind", - "cwcm", - "inearlydynasticcuneiform", - "ll", - "zl", + "inkhitansmallscript", "insinhala", - "inkhudawadi", - "xidstart", - "xdigit", - "bidic", - "chorasmian", - "insiddham", - "incountingrodnumerals", + "inmongolian", + "punctuation", + "emoji", + "innagmundari", + "vs", + "casedletter", + "oidc", + "intamilsupplement", "ahom", - "chrs", + "chorasmian", "khmr", - "inolduyghur", - "ingrantha", - "bamu", - "inscriptionalpahlavi", - "gong", - "mong", - "inlatinextendedc", - "innewtailue", - "adlm", - "inosage", - "ingeneralpunctuation", - "georgian", - "kharoshthi", - "sinhala", - "khmer", - "sterm", - "casedletter", - "multani", - "gunjalagondi", + "ingurmukhi", + "sund", + "patternsyntax", + "chrs", "math", - "incyrillicsupplement", - "ingeorgian", + "inscriptionalpahlavi", "goth", - "incherokeesupplement", - "glagolitic", - "quotationmark", - "uideo", - "incjkunifiedideographsextensiona", - "joincontrol", - "runic", - "inmongolian", - "emoji", - "incjkunifiedideographsextensione", + "adlam", + "oids", + "incjkunifiedideographsextensiond", + "khmer", "grantha", + "ll", + "kharoshthi", "intirhuta", "inhatran", - "adlam", - "lu", - "inkhitansmallscript", - "kthi", - "ingurmukhi", - "sundanese", - "inoldhungarian", - "takri", - "intamilsupplement", - "oriya", - "invai", - "brah", "inmiscellaneoustechnical", - "vai", - "vaii", - "saur", - "guru", - "taile", - "inherited", - "paucinhau", - "zanb", - "punct", - "linb", - "gurmukhi", - "takr", - "innabataean", - "inkanbun", "logicalorderexception", - "inbhaiksuki", - "incjkunifiedideographsextensionc", - "graphemeextend", - "inelbasan", - "insorasompeng", - "han", - "hani", - "limbu", - "unassigned", "radical", - "hano", - "lowercaseletter", - "cntrl", - "incjkunifiedideographs", - "linearb", - "inanatolianhieroglyphs", - "hanunoo", - "inkhojki", - "inlatinextendedadditional", - "inenclosedalphanumerics", - "anatolianhieroglyphs", + "zl", + "insorasompeng", "n", - "emojimodifier", - "sd", - "hira", - "sidd", - "limb", - "bhks", - "phli", + "intangsa", + "kthi", + "mult", "nandinagari", "no", - "saurashtra", - "intangsa", - "cwt", - "bhaiksuki", - "ingreekandcoptic", "nko", "nkoo", - "term", - "osage", - "xpeo", - "tnsa", - "tangsa", - "inkayahli", + "intulutigalari", "p", - "inoriya", - "inyezidi", - "inarabic", + "emojimodifier", + "xpeo", + "brah", + "sunu", + "inoldhungarian", "inphoenician", - "inshavian", - "bidicontrol", + "incyrillicextendeda", + "inherited", + "intaixuanjingsymbols", + "ingreekandcoptic", "inenclosedideographicsupplement", - "wara", - "mult", + "glagolitic", "inmeroitichieroglyphs", - "sinh", - "shavian", - "inkangxiradicals", + "bidicontrol", "enclosingmark", - "arab", - "insinhalaarchaicnumbers", - "braille", - "inhanunoo", - "osma", - "beng", - "inbasiclatin", - "inarabicpresentationformsa", - "cpmn", "regionalindicator", - "inenclosedalphanumericsupplement", - "emojimodifierbase", - "ingreekextended", - "lepc", - "indogra", - "format", - "lyci", - "lycian", + "beng", + "inanatolianhieroglyphs", + "joincontrol", + "inkangxiradicals", "dia", - "inphaistosdisc", + "cpmn", "di", "diak", - "unknown", - "grbase", - "mymr", - "myanmar", - "incjkunifiedideographsextensiond", - "emod", - "ingeometricshapes", + "graphemeextend", + "indogra", + "inphaistosdisc", + "lepc", + "sinh", + "shavian", + "gukh", + "linb", + "ingreekextended", "incyprominoan", - "insundanesesupplement", - "toto", - "glag", - "taiviet", - "asciihexdigit", - "odi", - "punctuation", - "vs", - "sund", - "insoyombo", + "innabataean", + "zanb", + "inhanunoo", + "bhks", + "inkanbun", + "inbhaiksuki", + "incyrillicextendedc", + "emod", + "bhaiksuki", + "xsux", + "format", + "inelbasan", + "emojimodifierbase", + "linearb", + "olck", "inimperialaramaic", - "inbatak", "inlatinextendedd", - "innushu", - "intibetan", - "inlowsurrogates", - "hatran", - "inblockelements", - "insogdian", - "indingbats", - "inelymaic", - "indevanagari", - "emojicomponent", - "inkatakanaphoneticextensions", - "ideographic", - "coptic", - "innumberforms", - "hatr", - "incjkcompatibility", - "inkanaextendedb", - "patternsyntax", - "avestan", - "inarabicextendeda", + "insundanesesupplement", + "intangut", + "cntrl", + "olchiki", + "inlatinextendedadditional", + "olower", "sogdian", "sogo", - "intangut", + "ingeometricshapes", + "emojicomponent", + "limb", + "intodhri", + "inkayahli", + "insogdian", + "indingbats", + "inoriya", + "inyezidi", + "insinhalaarchaicnumbers", "copt", - "graph", - "oidc", - "inbyzantinemusicalsymbols", - "ininscriptionalparthian", + "vithkuqi", + "incb", + "wara", + "coptic", + "gurungkhema", + "inarabic", + "ideographic", "diacritic", - "ininscriptionalpahlavi", - "inmayannumerals", - "inmyanmarextendedb", - "intags", - "java", "cprt", + "arab", + "inenclosedalphanumerics", + "anatolianhieroglyphs", + "innewa", + "asciihexdigit", "nand", - "patsyn", - "tale", - "oids", - "sentenceterminal", - "imperialaramaic", - "terminalpunctuation", - "lydi", - "lydian", + "intags", + "ininscriptionalparthian", + "innushu", + "ininscriptionalpahlavi", + "inkawi", + "inkatakanaphoneticextensions", + "inarabicpresentationformsa", + "inbasiclatin", "bopo", - "javanese", - "cwl", - "ingeometricshapesextended", + "lyci", + "lycian", "inoldpersian", - "inornamentaldingbats", - "inbraillepatterns", - "invariationselectors", - "caseignorable", - "inyiradicals", - "innoblock", - "inverticalforms", - "inethiopicsupplement", - "sharada", - "inbalinese", - "invedicextensions", - "word", - "inmiscellaneousmathematicalsymbolsb", - "taml", - "olck", - "idsb", - "olower", + "imperialaramaic", + "braille", + "ingurungkhema", + "inwarangciti", + "inenclosedalphanumericsupplement", + "phli", + "mymr", + "myanmar", + "han", + "hani", + "incyrillicextendedd", + "inbatak", + "kawi", + "hano", + "glag", + "lower", + "inlisu", + "ingeometricshapesextended", + "hanunoo", + "inkhojki", + "intibetan", + "grbase", + "hira", + "insoyombo", "decimalnumber", - "avst", - "incyrillicextendeda", - "olchiki", - "shrd", - "intaixuanjingsymbols", - "intaiviet", - "ugar", - "incjksymbolsandpunctuation", + "inwancho", + "inlisusupplement", + "sorasompeng", + "incoptic", "bopomofo", - "inlisu", "inoldpermic", - "siddham", - "zanabazarsquare", - "assigned", + "sharada", + "inethiopicsupplement", + "incjksymbolsandpunctuation", + "spacingmark", + "intelugu", + "inelymaic", "medf", - "closepunctuation", - "sarb", - "sorasompeng", - "invariationselectorssupplement", - "inhanguljamo", - "medefaidrin", - "phag", - "inlisusupplement", - "incoptic", "insyriacsupplement", - "inhanguljamoextendeda", - "cyrl", - "inshorthandformatcontrols", - "incyrillicextendedc", - "gujr", - "cwu", - "gujarati", - "spacingmark", - "alpha", - "mlym", - "inpalmyrene", - "malayalam", + "inblockelements", + "incjkcompatibility", + "medefaidrin", + "inkanaextendedb", + "oldpersian", + "patsyn", + "shrd", + "lowercase", + "orkh", "space", - "inlepcha", - "palmyrene", - "soyo", - "meroitichieroglyphs", - "xsux", - "intelugu", - "indevanagariextended", - "inmeroiticcursive", - "dsrt", - "thaa", - "thaana", + "innumberforms", + "assigned", + "inarabicextendeda", + "inmyanmarextendedb", + "inshorthandformatcontrols", + "cwcm", "bugi", - "thai", + "variationselector", + "inmayannumerals", "sogd", - "titlecaseletter", - "inmathematicalalphanumericsymbols", - "orkh", - "caucasianalbanian", - "inbamum", - "deseret", + "dsrt", + "inbyzantinemusicalsymbols", "ingeorgiansupplement", - "buginese", + "lydi", + "lydian", + "siddham", + "inbraillepatterns", "separator", - "insmallformvariants", - "tirh", - "inbrahmi", - "nd", + "innewtailue", + "sentenceterminal", + "inornamentaldingbats", + "word", + "buginese", + "oldpermic", + "inyiradicals", "phnx", - "newa", - "incombiningdiacriticalmarks", - "mahj", - "incombiningdiacriticalmarksforsymbols", - "oldpersian", - "mahajani", - "taitham", - "newtailue", - "newline", - "syrc", - "inmongoliansupplement", + "hatran", + "deseret", + "ogam", + "insuttonsignwriting", "inunifiedcanadianaboriginalsyllabicsextendeda", - "shaw", - "buhd", - "vithkuqi", + "incjkunifiedideographsextensionh", + "nd", + "inarabicextendedc", + "idsb", + "caseignorable", + "sarb", + "hatr", + "uideo", "number", - "insuttonsignwriting", - "variationselector", - "ethi", - "lepcha", - "tirhuta", - "rohg", - "ahex", - "incopticepactnumbers", - "wancho", + "zanabazarsquare", + "inmiscellaneousmathematicalsymbolsb", "incjkunifiedideographsextensiong", - "khoj", + "innyiakengpuachuehmong", + "ahex", + "soyo", "cuneiform", - "induployan", - "ugaritic", - "insymbolsandpictographsextendeda", - "oldpermic", - "incombiningdiacriticalmarkssupplement", - "khudawadi", - "tang", - "syriac", - "tagbanwa", + "insymbolsforlegacycomputingsupplement", + "incopticepactnumbers", + "osge", + "closepunctuation", + "graph", + "alpha", + "lowercaseletter", "modifierletter", - "incurrencysymbols", - "innyiakengpuachuehmong", - "tamil", - "talu", - "ingothic", - "inunifiedcanadianaboriginalsyllabics", - "wcho", - "incombiningdiacriticalmarksextended", - "ogam", - "telu", - "idstrinaryoperator", - "inbengali", - "nl", + "takri", + "olditalic", + "inlepcha", + "invai", "surrogate", - "ebase", - "hang", - "inbuginese", - "mathsymbol", - "invithkuqi", + "meroitichieroglyphs", + "other", + "inpalmyrene", + "cwt", + "othernumber", + "buhd", + "otheridcontinue", + "inunifiedcanadianaboriginalsyllabics", + "takr", + "unassigned", "vith", + "inbamum", + "phag", + "taile", + "inhanguljamo", + "caucasianalbanian", + "innoblock", + "idstrinaryoperator", + "syrc", + "inhanguljamoextendeda", + "inbalinese", + "otheralphabetic", + "gujr", + "oldhungarian", + "gujarati", + "tnsa", + "tangsa", + "term", + "inmongoliansupplement", + "incombiningdiacriticalmarks", + "inshavian", + "incombiningdiacriticalmarksforsymbols", + "spaceseparator", + "cyrl", + "syriac", + "inunifiedcanadianaboriginalsyllabicsextended", + "inethiopicextendeda", + "inmathematicalalphanumericsymbols", + "mlym", + "induployan", + "malayalam", + "incombiningdiacriticalmarkssupplement", + "insymbolsandpictographsextendeda", + "toto", + "ethi", + "palmyrene", + "rohg", + "taiviet", + "ougr", + "oldturkic", + "inpaucinhau", + "lepcha", + "orya", "incjkradicalssupplement", - "ingujarati", + "incjkunifiedideographsextensionf", "inglagolitic", - "ingunjalagondi", - "phagspa", - "cwcf", - "nchar", - "otheridcontinue", - "whitespace", - "inlinearbsyllabary", - "sgnw", - "other", - "hiragana", + "intagalog", + "incombiningdiacriticalmarksextended", "inphagspa", - "othernumber", - "inrejang", - "osge", + "ext", + "indevanagari", "incjkunifiedideographsextensionb", - "intagalog", - "inbassavah", - "tangut", - "hmng", - "inenclosedcjklettersandmonths", - "currencysymbol", - "inlimbu", - "inbuhid", - "inethiopicextendeda", - "sylo", - "dash", - "warangciti", "oalpha", - "olditalic", + "buhid", + "ingothic", + "avestan", + "todr", + "indevanagariextendeda", "inottomansiyaqnumbers", - "spaceseparator", + "todhri", "inlatin1supplement", - "otheralphabetic", - "changeswhencasemapped", - "inaegeannumbers", - "inunifiedcanadianaboriginalsyllabicsextended", - "buhid", - "injavanese", - "cyrillic", + "nagm", + "inbrahmi", + "terminalpunctuation", + "otheridstart", + "nchar", + "inverticalforms", + "phagspa", "dogra", + "extpict", + "intaiviet", + "otheruppercase", + "avst", + "extender", + "cwu", + "inphoneticextensions", + "invariationselectors", + "inbengali", + "dogr", + "softdotted", + "incurrencysymbols", + "invedicextensions", + "sunuwar", + "osmanya", + "wancho", + "nl", + "inethiopicextended", + "mathsymbol", + "inbuginese", + "dash", + "inlowsurrogates", + "ebase", + "inphoneticextensionssupplement", + "invariationselectorssupplement", + "zp", + "posixpunct", "noncharactercodepoint", - "inhangulsyllables", - "bassavah", - "inletterlikesymbols", - "incombininghalfmarks", - "inarabicmathematicalalphabeticsymbols", - "orya", - "inprivateusearea", + "sylo", + "nonspacingmark", + "oupper", + "inlimbu", + "wcho", + "ingaray", + "warangciti", + "ingeorgianextended", + "changeswhencasemapped", + "currencysymbol", + "intifinagh", + "java", + "titlecaseletter", + "olonal", + "mahj", + "inmeroiticcursive", + "mahajani", + "tale", + "otherlowercase", + "ugar", + "otherletter", "changeswhentitlecased", - "dogr", - "hebr", + "epres", + "emojipresentation", + "inaegeannumbers", + "inindicsiyaqnumbers", + "indevanagariextended", + "javanese", + "hang", + "inletterlikesymbols", "intagbanwa", - "intifinagh", - "inbopomofo", - "narb", - "rjng", "inalphabeticpresentationforms", - "incjkunifiedideographsextensionf", + "taml", + "tirhuta", + "whitespace", + "ingujarati", + "paragraphseparator", + "intangutcomponents", + "ingunjalagondi", + "khoj", + "inbassavah", + "inbuhid", + "khitansmallscript", + "narb", + "inbopomofo", + "hiragana", + "inrejang", + "oldsogdian", + "nushu", + "incyrillicextendedb", + "othersymbol", + "nagmundari", + "extendedpictographic", + "otherdefaultignorablecodepoint", + "hmng", "insymbolsforlegacycomputing", - "oldhungarian", + "omath", + "sylotinagri", + "inlinearbsyllabary", + "intangutsupplement", + "inarabicmathematicalalphabeticsymbols", + "cf", + "inenclosedcjklettersandmonths", + "inbamumsupplement", + "pf", + "cwl", + "nshu", + "inmathematicaloperators", + "inhangulsyllables", + "incombininghalfmarks", + "newa", + "tangut", + "digit", + "changeswhenuppercased", "finalpunctuation", - "inpaucinhau", "inpsalterpahlavi", - "zp", "phlp", - "inarabicpresentationformsb", - "nonspacingmark", - "deva", - "tavt", - "hmnp", - "devanagari", - "khitansmallscript", - "kayahli", - "inbamumsupplement", - "sylotinagri", - "tibt", - "epres", - "tibetan", - "elba", - "osmanya", - "indivesakuru", - "oldturkic", - "changeswhenlowercased", - "cyprominoan", - "inethiopicextended", - "emojipresentation", - "any", - "otherlowercase", - "ougr", - "inhebrew", - "softdotted", - "inmathematicaloperators", - "inalchemicalsymbols", - "inmahjongtiles", - "hangul", - "ext", - "omath", - "intangutcomponents", - "otherletter", + "rjng", "nbat", + "newtailue", + "newline", + "cyprominoan", "nabataean", - "nshu", - "paragraphseparator", - "inarabicextendedb", + "insuperscriptsandsubscripts", + "cyrillic", + "ugaritic", + "ogham", + "insmallformvariants", "inlatinextendedg", - "changeswhenuppercased", - "hung", - "inplayingcards", + "thaa", "inarabicsupplement", - "inyijinghexagramsymbols", - "inphoneticextensions", - "otheruppercase", - "otheridstart", + "thaana", + "thai", + "shaw", + "insupplementalarrowsa", + "inplayingcards", + "hmnp", + "tirh", + "idcompatmathcontinue", + "inarabicpresentationformsb", + "idcompatmathstart", + "tang", + "tagbanwa", + "cypriot", + "garay", + "othermath", + "sgnw", + "talu", + "taitham", + "changeswhenlowercased", + "khudawadi", + "elba", + "telu", + "insupplementalarrowsc", + "cwcf", + "wspace", + "any", + "insupplementalmathematicaloperators", + "ogrext", + "hung", + "hebr", + "deprecated", + "unknown", + "oldnortharabian", + "modifiercombiningmark", + "kayahli", + "invithkuqi", + "inarabicextendedb", + "indivesakuru", "elbasan", "elym", - "cf", - "inindicsiyaqnumbers", - "othersymbol", - "extender", - "extpict", - "wspace", - "pf", + "otherpunctuation", "elymaic", - "intangutsupplement", - "cypriot", "symbol", - "incyrillicextendedb", - "insuperscriptsandsubscripts", + "tulutigalari", + "inalchemicalsymbols", + "inpahawhhmong", + "inprivateusearea", + "tamil", + "hangul", "inyisyllables", - "inphoneticextensionssupplement", - "oldsogdian", - "ingeorgianextended", - "hluw", - "digit", - "inhanguljamoextendedb", + "hex", + "insupplementalpunctuation", + "deva", + "inyijinghexagramsymbols", "inhighprivateusesurrogates", - "inpahawhhmong", - "ogham", - "insupplementalarrowsa", - "oupper", - "aghb", - "othermath", - "nushu", + "devanagari", + "bassavah", "soyombo", - "inlatinextendedb", + "dashpunctuation", + "inmahjongtiles", + "inhanguljamoextendedb", "alphabetic", - "insupplementalarrowsc", - "insupplementalmathematicaloperators", - "otherdefaultignorablecodepoint", - "deprecated", - "oldnortharabian", + "aghb", "incypriotsyllabary", - "extendedpictographic", - "unifiedideograph", - "pahawhhmong", - "divesakuru", - "signwriting", - "tagb", - "tifinagh", - "upper", + "oldsoutharabian", "inhalfwidthandfullwidthforms", - "uppercase", - "ethiopic", - "modifiersymbol", - "otherpunctuation", - "rejang", "inethiopicextendedb", - "tfng", - "hex", - "insupplementalpunctuation", - "tglg", + "ethiopic", + "tibt", + "tibetan", "inlatinextendedf", - "tagalog", - "hanifirohingya", + "othergraphemeextend", + "injavanese", + "tutg", "ecomp", "inglagoliticsupplement", + "inlatinextendedb", + "dupl", + "modifiersymbol", "hexdigit", + "inegyptianhieroglyphsextendeda", "changeswhencasefolded", - "dashpunctuation", - "oldsoutharabian", - "dupl", + "dep", + "rejang", + "divesakuru", + "openpunctuation", + "inhebrew", "inegyptianhieroglyphs", - "telugu", - "uppercaseletter", "inegyptianhieroglyphformatcontrols", - "hyphen", - "hebrew", - "inhighsurrogates", - "zyyy", - "ogrext", - "othergraphemeextend", - "dep", - "insupplementalarrowsb", + "hanifirohingya", + "signwriting", "defaultignorablecodepoint", - "inhangulcompatibilityjamo", - "olduyghur", - "insupplementaryprivateuseareaa", + "upper", + "tavt", "inbopomofoextended", + "insupplementaryprivateuseareaa", + "olduyghur", + "hluw", + "uppercase", + "inhighsurrogates", + "tifinagh", + "insupplementalarrowsb", + "tfng", + "tagb", + "hyphen", + "zyyy", + "uppercaseletter", + "telugu", + "pahawhhmong", "insupplementalsymbolsandpictographs", - "nyiakengpuachuehmong", - "openpunctuation", - "egyp", + "unifiedideograph", "duployan", "inboxdrawing", + "tglg", + "tagalog", + "inhangulcompatibilityjamo", + "egyp", + "nyiakengpuachuehmong", "egyptianhieroglyphs", - "insupplementaryprivateuseareab" + "insupplementaryprivateuseareab", + "hebrew" }; #define unicode_prop_name_pool ((const char *) &unicode_prop_name_pool_contents) static const struct PoolPropertyNameCtype * @@ -28314,2461 +30165,2658 @@ unicode_lookup_property_name (register const char *str, register size_t len) static const struct PoolPropertyNameCtype wordlist[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {-1}, {-1}, {-1}, - {pool_offset(10), 243}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(12), 255}, + {-1}, {-1}, {-1}, - {pool_offset(17), 129}, + {pool_offset(16), 284}, + {-1}, {-1}, - {pool_offset(18), 271}, + {pool_offset(19), 137}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(25), 284}, + + {pool_offset(26), 166}, {-1}, - {pool_offset(20), 270}, - {-1}, {-1}, {-1}, + {pool_offset(28), 151}, + {-1}, {-1}, - {pool_offset(24), 158}, + {pool_offset(31), 154}, {-1}, {-1}, - {pool_offset(27), 54}, + {pool_offset(34), 285}, + {-1}, {-1}, - {pool_offset(28), 143}, + {pool_offset(37), 319}, - {pool_offset(29), 270}, + {pool_offset(38), 142}, - {pool_offset(30), 146}, - {-1}, {-1}, {-1}, + {pool_offset(39), 133}, - {pool_offset(34), 305}, + {pool_offset(40), 133}, + {-1}, {-1}, - {pool_offset(35), 40}, - {-1}, + {pool_offset(43), 165}, + {-1}, {-1}, - {pool_offset(37), 134}, + {pool_offset(46), 54}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(38), 125}, + {pool_offset(52), 40}, - {pool_offset(39), 125}, + {pool_offset(53), 306}, {-1}, - {pool_offset(41), 259}, + {pool_offset(55), 273}, + + {pool_offset(56), 283}, {-1}, - {pool_offset(43), 157}, + {pool_offset(58), 83}, + {-1}, {-1}, {-1}, - {pool_offset(44), 269}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(62), 87}, - {pool_offset(51), 292}, - {-1}, + {pool_offset(63), 221}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(53), 55}, - {-1}, {-1}, + {pool_offset(69), 137}, - {pool_offset(56), 151}, - {-1}, {-1}, {-1}, + {pool_offset(70), 55}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(60), 135}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(75), 149}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(70), 86}, - {-1}, + {pool_offset(81), 222}, + {-1}, {-1}, - {pool_offset(72), 210}, - {-1}, {-1}, {-1}, + {pool_offset(84), 559}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(76), 129}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(90), 159}, + {-1}, {-1}, + + {pool_offset(93), 487}, + + {pool_offset(94), 39}, - {pool_offset(84), 141}, + {pool_offset(95), 143}, {-1}, - {pool_offset(86), 39}, + {pool_offset(97), 39}, - {pool_offset(87), 39}, + {pool_offset(98), 170}, + + {pool_offset(99), 170}, {-1}, {-1}, - {pool_offset(90), 211}, + {pool_offset(102), 91}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(91), 154}, + {pool_offset(107), 122}, {-1}, {-1}, - {pool_offset(94), 90}, - {-1}, + {pool_offset(110), 84}, - {pool_offset(96), 206}, + {pool_offset(111), 91}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(116), 149}, {-1}, {-1}, - {pool_offset(99), 153}, + {pool_offset(119), 164}, {-1}, - {pool_offset(101), 472}, - - {pool_offset(102), 83}, + {pool_offset(121), 217}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(103), 90}, + {pool_offset(126), 162}, {-1}, {-1}, {-1}, - {pool_offset(107), 161}, + {pool_offset(130), 156}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(108), 161}, - {-1}, + {pool_offset(136), 470}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(110), 116}, + {pool_offset(142), 490}, + {-1}, {-1}, {-1}, - {pool_offset(111), 156}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(146), 510}, - {pool_offset(120), 141}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {pool_offset(147), 45}, - {pool_offset(133), 148}, + {pool_offset(148), 555}, - {pool_offset(134), 45}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(149), 561}, + + {pool_offset(150), 161}, + {-1}, - {pool_offset(139), 456}, + {pool_offset(152), 153}, {-1}, {-1}, - {pool_offset(142), 475}, - {-1}, {-1}, {-1}, + {pool_offset(155), 37}, + {-1}, - {pool_offset(146), 286}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(157), 130}, + {-1}, {-1}, {-1}, - {pool_offset(151), 531}, + {pool_offset(161), 300}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(152), 536}, + {pool_offset(171), 325}, {-1}, {-1}, {-1}, - {pool_offset(156), 37}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(175), 541}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(163), 493}, + {pool_offset(181), 56}, {-1}, {-1}, - {pool_offset(166), 56}, - {-1}, {-1}, + {pool_offset(184), 115}, - {pool_offset(169), 145}, + {pool_offset(185), 155}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - {pool_offset(182), 311}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(195), 333}, - {pool_offset(187), 520}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(192), 109}, + {pool_offset(196), 461}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(200), 537}, - {-1}, {-1}, {-1}, + {pool_offset(204), 141}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(204), 324}, - {-1}, {-1}, + {pool_offset(209), 338}, + {-1}, {-1}, {-1}, - {pool_offset(207), 38}, + {pool_offset(213), 505}, {-1}, - {pool_offset(209), 212}, + {pool_offset(215), 562}, {-1}, - {pool_offset(211), 133}, + {pool_offset(217), 38}, + {-1}, {-1}, {-1}, - {pool_offset(212), 147}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(221), 163}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(219), 204}, + {pool_offset(230), 149}, + {-1}, - {pool_offset(220), 319}, + {pool_offset(232), 526}, - {pool_offset(221), 447}, - {-1}, + {pool_offset(233), 192}, - {pool_offset(223), 476}, - {-1}, + {pool_offset(234), 491}, + {-1}, {-1}, {-1}, - {pool_offset(225), 141}, + {pool_offset(238), 215}, + {-1}, {-1}, - {pool_offset(226), 524}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(241), 512}, - {pool_offset(231), 155}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(242), 132}, + {-1}, - {pool_offset(237), 488}, + {pool_offset(244), 223}, + {-1}, - {pool_offset(238), 181}, + {pool_offset(246), 546}, + {-1}, {-1}, {-1}, - {pool_offset(239), 507}, + {pool_offset(250), 294}, - {pool_offset(240), 280}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(251), 151}, {-1}, - {pool_offset(251), 316}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(253), 134}, - {pool_offset(257), 495}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(254), 158}, {-1}, - {pool_offset(268), 143}, - {-1}, {-1}, {-1}, + {pool_offset(256), 368}, - {pool_offset(272), 354}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(257), 228}, - {pool_offset(277), 124}, + {pool_offset(258), 134}, + + {pool_offset(259), 330}, {-1}, - {pool_offset(279), 148}, - {-1}, {-1}, {-1}, + {pool_offset(261), 305}, - {pool_offset(283), 523}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(262), 156}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(290), 150}, - {-1}, {-1}, + {pool_offset(271), 399}, - {pool_offset(293), 43}, - {-1}, {-1}, {-1}, + {pool_offset(272), 22}, - {pool_offset(297), 512}, + {pool_offset(273), 322}, - {pool_offset(298), 273}, - {-1}, {-1}, {-1}, + {pool_offset(274), 43}, - {pool_offset(302), 22}, - {-1}, {-1}, - - {pool_offset(305), 215}, + {pool_offset(275), 113}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(306), 108}, + {pool_offset(280), 545}, {-1}, {-1}, - {pool_offset(309), 293}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(283), 508}, + {-1}, - {pool_offset(316), 22}, + {pool_offset(285), 215}, {-1}, - {pool_offset(318), 517}, + {pool_offset(287), 22}, + {-1}, - {pool_offset(319), 518}, + {pool_offset(289), 538}, + {-1}, {-1}, {-1}, + + {pool_offset(293), 226}, {-1}, - {pool_offset(321), 57}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(295), 57}, - {pool_offset(330), 204}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(296), 221}, + {-1}, + + {pool_offset(298), 531}, - {pool_offset(335), 111}, + {pool_offset(299), 307}, - {pool_offset(336), 126}, + {pool_offset(300), 287}, {-1}, {-1}, {-1}, - {pool_offset(340), 126}, + {pool_offset(304), 161}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(309), 539}, {-1}, - {pool_offset(342), 217}, - {-1}, {-1}, + {pool_offset(311), 117}, - {pool_offset(345), 291}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(312), 298}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(352), 330}, + {pool_offset(322), 524}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(355), 385}, - - {pool_offset(356), 284}, + {pool_offset(334), 429}, - {pool_offset(357), 308}, + {pool_offset(335), 168}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(359), 415}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(367), 491}, - {-1}, {-1}, {-1}, + {pool_offset(346), 117}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(371), 275}, + {pool_offset(356), 122}, + {-1}, - {pool_offset(372), 153}, + {pool_offset(358), 344}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(379), 210}, - {-1}, {-1}, {-1}, + {pool_offset(365), 303}, - {pool_offset(383), 58}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(366), 223}, - {pool_offset(399), 289}, - {-1}, + {pool_offset(367), 153}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(401), 212}, + {pool_offset(372), 289}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - {pool_offset(415), 506}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(382), 569}, + {-1}, - {pool_offset(420), 213}, - {-1}, {-1}, + {pool_offset(384), 58}, + {-1}, - {pool_offset(423), 145}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(386), 167}, + {-1}, - {pool_offset(437), 544}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(388), 55}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(442), 154}, + {pool_offset(395), 224}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(443), 159}, + {pool_offset(401), 34}, {-1}, - {pool_offset(445), 116}, - {-1}, + {pool_offset(403), 162}, + {-1}, {-1}, {-1}, - {pool_offset(447), 107}, + {pool_offset(407), 112}, + + {pool_offset(408), 283}, {-1}, - {pool_offset(449), 111}, + {pool_offset(410), 430}, {-1}, {-1}, {-1}, - {pool_offset(453), 269}, + {pool_offset(414), 21}, {-1}, {-1}, - {pool_offset(456), 382}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(417), 131}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(466), 267}, + {pool_offset(426), 281}, + {-1}, - {pool_offset(467), 34}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(428), 14}, + {-1}, + + {pool_offset(430), 530}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(472), 14}, + {pool_offset(443), 489}, {-1}, - {pool_offset(474), 55}, - {-1}, {-1}, + {pool_offset(445), 436}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(477), 21}, + {pool_offset(450), 121}, {-1}, {-1}, - {pool_offset(480), 416}, + {pool_offset(453), 121}, - {pool_offset(481), 483}, - {-1}, {-1}, {-1}, + {pool_offset(454), 607}, + {-1}, + + {pool_offset(456), 130}, - {pool_offset(485), 123}, + {pool_offset(457), 499}, + + {pool_offset(458), 396}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(493), 511}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(466), 449}, + {-1}, {-1}, {-1}, - {pool_offset(499), 422}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(470), 181}, - {pool_offset(506), 474}, + {pool_offset(471), 443}, {-1}, {-1}, - {pool_offset(509), 435}, + {pool_offset(474), 522}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(510), 115}, - {-1}, {-1}, + {pool_offset(481), 281}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(487), 594}, - {pool_offset(513), 115}, + {pool_offset(488), 145}, - {pool_offset(514), 429}, + {pool_offset(489), 605}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(504), 241}, + {-1}, {-1}, - {pool_offset(532), 123}, + {pool_offset(507), 463}, {-1}, - {pool_offset(534), 504}, + {pool_offset(509), 33}, {-1}, {-1}, {-1}, - {pool_offset(538), 439}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(513), 86}, - {pool_offset(545), 577}, + {pool_offset(514), 560}, + {-1}, {-1}, {-1}, - {pool_offset(546), 564}, + {pool_offset(518), 225}, + {-1}, - {pool_offset(547), 171}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(520), 243}, + {-1}, + + {pool_offset(522), 453}, + {-1}, - {pool_offset(556), 535}, + {pool_offset(524), 126}, + {-1}, {-1}, {-1}, - {pool_offset(557), 267}, + {pool_offset(528), 525}, + {-1}, {-1}, {-1}, - {pool_offset(558), 582}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(532), 589}, + {-1}, {-1}, {-1}, - {pool_offset(564), 575}, + {pool_offset(536), 282}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(570), 461}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(542), 612}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(576), 309}, + {pool_offset(549), 621}, + + {pool_offset(550), 372}, {-1}, {-1}, - {pool_offset(579), 33}, - {-1}, + {pool_offset(553), 246}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(581), 449}, + {pool_offset(558), 568}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(564), 502}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(588), 365}, - {-1}, {-1}, + {pool_offset(571), 163}, - {pool_offset(591), 160}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {pool_offset(572), 379}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(602), 268}, + {pool_offset(577), 89}, - {pool_offset(603), 214}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {pool_offset(578), 213}, - {pool_offset(616), 89}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(579), 349}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(621), 119}, - {-1}, {-1}, {-1}, + {pool_offset(585), 308}, + {-1}, {-1}, - {pool_offset(625), 335}, + {pool_offset(588), 7}, + {-1}, - {pool_offset(626), 485}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(590), 110}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(634), 85}, + {pool_offset(596), 28}, + {-1}, + + {pool_offset(598), 458}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(635), 444}, + {pool_offset(605), 28}, {-1}, {-1}, {-1}, - {pool_offset(639), 155}, + {pool_offset(609), 346}, {-1}, {-1}, - {pool_offset(642), 117}, - {-1}, {-1}, + {pool_offset(612), 488}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(645), 43}, + {pool_offset(631), 420}, + {-1}, {-1}, {-1}, + + {pool_offset(635), 575}, + + {pool_offset(636), 232}, {-1}, {-1}, - {pool_offset(648), 202}, + {pool_offset(639), 213}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(649), 565}, + {pool_offset(645), 26}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(655), 230}, - {-1}, + {pool_offset(651), 105}, + + {pool_offset(652), 232}, + {-1}, {-1}, - {pool_offset(657), 137}, + {pool_offset(655), 214}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(662), 294}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(660), 231}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(669), 404}, + {-1}, {-1}, {-1}, - {pool_offset(668), 406}, + {pool_offset(673), 466}, - {pool_offset(669), 590}, + {pool_offset(674), 139}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(683), 600}, {-1}, - {pool_offset(671), 232}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(685), 107}, + + {pool_offset(686), 242}, + {-1}, {-1}, + + {pool_offset(689), 131}, {-1}, {-1}, - {pool_offset(683), 105}, + {pool_offset(692), 578}, - {pool_offset(684), 473}, + {pool_offset(693), 27}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(691), 200}, - {-1}, + {pool_offset(700), 111}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(693), 446}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(707), 417}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(719), 371}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(701), 561}, + {pool_offset(724), 234}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(707), 103}, + {pool_offset(730), 422}, + + {pool_offset(731), 536}, {-1}, - {pool_offset(709), 543}, + {pool_offset(733), 323}, + {-1}, - {pool_offset(710), 390}, - {-1}, {-1}, + {pool_offset(735), 216}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(713), 235}, + {pool_offset(740), 592}, - {pool_offset(714), 26}, + {pool_offset(741), 495}, {-1}, {-1}, {-1}, - {pool_offset(718), 358}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(734), 570}, + {pool_offset(745), 476}, {-1}, {-1}, {-1}, - {pool_offset(738), 28}, + {pool_offset(749), 169}, + {-1}, {-1}, - {pool_offset(739), 88}, + {pool_offset(752), 577}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(747), 28}, - {-1}, + {pool_offset(760), 110}, - {pool_offset(749), 202}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(761), 473}, + {-1}, {-1}, - {pool_offset(756), 306}, - {-1}, + {pool_offset(764), 90}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(758), 403}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(769), 106}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(765), 545}, + {pool_offset(782), 230}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(766), 27}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(794), 124}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(773), 106}, - {-1}, {-1}, + {pool_offset(802), 595}, + {-1}, {-1}, {-1}, - {pool_offset(776), 7}, - {-1}, {-1}, + {pool_offset(806), 377}, + {-1}, {-1}, {-1}, - {pool_offset(779), 441}, - {-1}, {-1}, + {pool_offset(810), 43}, + {-1}, {-1}, {-1}, - {pool_offset(782), 332}, + {pool_offset(814), 468}, - {pool_offset(783), 551}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(815), 385}, + {-1}, {-1}, {-1}, - {pool_offset(789), 549}, + {pool_offset(819), 111}, + + {pool_offset(820), 604}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(833), 460}, - {pool_offset(800), 221}, + {pool_offset(834), 211}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - {pool_offset(812), 405}, - {-1}, + {pool_offset(844), 129}, + {-1}, {-1}, {-1}, - {pool_offset(814), 501}, + {pool_offset(848), 188}, - {pool_offset(815), 221}, + {pool_offset(849), 282}, {-1}, {-1}, {-1}, - {pool_offset(819), 220}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(853), 457}, - {pool_offset(828), 113}, + {pool_offset(854), 11}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(829), 357}, - {-1}, {-1}, + {pool_offset(861), 432}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(832), 131}, + {pool_offset(867), 516}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(833), 203}, + {pool_offset(879), 295}, + {-1}, {-1}, {-1}, - {pool_offset(834), 363}, + {pool_offset(883), 198}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(842), 552}, + {pool_offset(900), 41}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(843), 371}, - {-1}, + {pool_offset(905), 320}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(845), 231}, - {-1}, {-1}, + {pool_offset(915), 504}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(848), 574}, - {-1}, + {pool_offset(929), 582}, + {-1}, {-1}, - {pool_offset(850), 452}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(932), 26}, - {pool_offset(858), 205}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(933), 570}, - {pool_offset(866), 179}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(934), 31}, {-1}, {-1}, - {pool_offset(878), 13}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(937), 190}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(885), 109}, + {pool_offset(946), 579}, {-1}, - {pool_offset(887), 509}, + {pool_offset(948), 119}, {-1}, {-1}, {-1}, - {pool_offset(891), 278}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(952), 419}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(897), 408}, + {pool_offset(957), 275}, - {pool_offset(898), 328}, - {-1}, + {pool_offset(958), 275}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(963), 455}, - {pool_offset(900), 480}, + {pool_offset(964), 292}, {-1}, - {pool_offset(902), 105}, + {pool_offset(966), 235}, + + {pool_offset(967), 299}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(972), 230}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(908), 482}, + {pool_offset(978), 146}, + + {pool_offset(979), 521}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(984), 226}, {-1}, {-1}, - {pool_offset(911), 223}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(987), 342}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(919), 104}, + {pool_offset(996), 435}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(929), 420}, + {pool_offset(1009), 13}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(930), 6}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1014), 107}, - {pool_offset(939), 25}, - {-1}, + {pool_offset(1015), 408}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(941), 384}, - {-1}, {-1}, {-1}, + {pool_offset(1022), 620}, - {pool_offset(945), 459}, + {pool_offset(1023), 233}, - {pool_offset(946), 454}, - {-1}, {-1}, + {pool_offset(1024), 209}, - {pool_offset(949), 2}, - {-1}, {-1}, - - {pool_offset(952), 281}, + {pool_offset(1025), 248}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(953), 52}, - {-1}, {-1}, {-1}, + {pool_offset(1030), 94}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(957), 469}, + {pool_offset(1036), 434}, {-1}, - {pool_offset(959), 209}, - {-1}, {-1}, + {pool_offset(1038), 25}, - {pool_offset(962), 52}, - {-1}, + {pool_offset(1039), 214}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(964), 29}, + {pool_offset(1048), 2}, - {pool_offset(965), 147}, - {-1}, {-1}, + {pool_offset(1049), 94}, + + {pool_offset(1050), 317}, + + {pool_offset(1051), 618}, - {pool_offset(968), 562}, + {pool_offset(1052), 515}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(974), 89}, - {-1}, {-1}, + {pool_offset(1058), 484}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(977), 25}, + {pool_offset(1074), 199}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1081), 29}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(978), 106}, + {pool_offset(1087), 136}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(982), 303}, - {-1}, + {pool_offset(1100), 200}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1110), 115}, - {pool_offset(984), 498}, + {pool_offset(1111), 25}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(990), 46}, - {-1}, + {pool_offset(1117), 497}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(992), 45}, - {-1}, + {pool_offset(1125), 165}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(994), 114}, + {pool_offset(1133), 616}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(995), 494}, + {pool_offset(1140), 398}, + {-1}, {-1}, - {pool_offset(996), 87}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1143), 38}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(1001), 318}, + {pool_offset(1155), 233}, {-1}, {-1}, {-1}, - {pool_offset(1005), 41}, + {pool_offset(1159), 220}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1008), 418}, + {pool_offset(1171), 517}, {-1}, {-1}, - {pool_offset(1011), 121}, + {pool_offset(1174), 244}, + {-1}, {-1}, - {pool_offset(1012), 443}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1177), 93}, - {pool_offset(1026), 219}, + {pool_offset(1178), 410}, + {-1}, {-1}, - {pool_offset(1027), 118}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1181), 155}, + {-1}, - {pool_offset(1032), 146}, + {pool_offset(1183), 238}, - {pool_offset(1033), 136}, + {pool_offset(1184), 202}, + {-1}, - {pool_offset(1034), 38}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1186), 169}, + {-1}, + + {pool_offset(1188), 240}, - {pool_offset(1043), 338}, + {pool_offset(1189), 90}, + {-1}, {-1}, {-1}, + + {pool_offset(1193), 547}, - {pool_offset(1044), 157}, + {pool_offset(1194), 52}, {-1}, {-1}, - {pool_offset(1047), 314}, + {pool_offset(1197), 120}, + {-1}, + + {pool_offset(1199), 511}, + + {pool_offset(1200), 387}, {-1}, {-1}, {-1}, - {pool_offset(1051), 122}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1204), 171}, - {pool_offset(1056), 48}, + {pool_offset(1205), 332}, {-1}, - {pool_offset(1058), 525}, + {pool_offset(1207), 93}, {-1}, {-1}, - {pool_offset(1061), 132}, - {-1}, {-1}, {-1}, + {pool_offset(1210), 46}, - {pool_offset(1065), 273}, - {-1}, {-1}, + {pool_offset(1211), 52}, - {pool_offset(1068), 307}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1212), 45}, + {-1}, - {pool_offset(1074), 499}, + {pool_offset(1214), 128}, {-1}, {-1}, - {pool_offset(1077), 268}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1217), 471}, + {-1}, {-1}, {-1}, - {pool_offset(1082), 11}, + {pool_offset(1221), 125}, {-1}, - {pool_offset(1084), 31}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1223), 154}, - {pool_offset(1093), 53}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1224), 84}, {-1}, - {pool_offset(1104), 503}, - {-1}, {-1}, {-1}, + {pool_offset(1226), 362}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1233), 352}, + {-1}, - {pool_offset(1108), 555}, + {pool_offset(1235), 326}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1123), 17}, + {pool_offset(1245), 88}, + {-1}, {-1}, - {pool_offset(1124), 53}, + {pool_offset(1248), 16}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1130), 120}, + {pool_offset(1254), 328}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1131), 487}, + {pool_offset(1259), 565}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - {pool_offset(1142), 500}, - {-1}, + {pool_offset(1269), 321}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1144), 26}, + {pool_offset(1276), 339}, + {-1}, {-1}, + + {pool_offset(1279), 209}, + + {pool_offset(1280), 75}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1287), 591}, + + {pool_offset(1288), 276}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1294), 132}, {-1}, - {pool_offset(1146), 110}, + {pool_offset(1296), 204}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1305), 544}, {-1}, {-1}, - {pool_offset(1149), 92}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1308), 17}, + {-1}, - {pool_offset(1158), 160}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1310), 53}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1163), 373}, + {pool_offset(1320), 127}, - {pool_offset(1164), 329}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1321), 314}, + {-1}, - {pool_offset(1171), 16}, + {pool_offset(1323), 248}, - {pool_offset(1172), 457}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1324), 212}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1331), 53}, - {pool_offset(1178), 348}, + {pool_offset(1332), 157}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1179), 83}, + {pool_offset(1337), 116}, {-1}, - {pool_offset(1181), 118}, + {pool_offset(1339), 86}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1348), 16}, + {-1}, {-1}, + + {pool_offset(1351), 205}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1358), 617}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1182), 229}, + {pool_offset(1368), 127}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1187), 120}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1373), 87}, - {pool_offset(1193), 224}, + {pool_offset(1374), 140}, {-1}, - {pool_offset(1195), 124}, - {-1}, {-1}, + {pool_offset(1376), 125}, + {-1}, {-1}, {-1}, - {pool_offset(1198), 162}, + {pool_offset(1380), 520}, {-1}, {-1}, - {pool_offset(1201), 92}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1383), 482}, + {-1}, {-1}, {-1}, - {pool_offset(1210), 149}, - {-1}, + {pool_offset(1387), 370}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1212), 285}, - {-1}, {-1}, + {pool_offset(1392), 143}, - {pool_offset(1215), 312}, - {-1}, + {pool_offset(1393), 227}, - {pool_offset(1217), 85}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1394), 287}, + + {pool_offset(1395), 509}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1224), 421}, + {pool_offset(1404), 173}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1225), 84}, + {pool_offset(1411), 556}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, + {-1}, - {pool_offset(1237), 215}, + {pool_offset(1422), 120}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1238), 258}, - {-1}, + {pool_offset(1431), 171}, - {pool_offset(1240), 394}, - {-1}, + {pool_offset(1432), 176}, - {pool_offset(1242), 113}, + {pool_offset(1433), 182}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1243), 219}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1442), 180}, - {pool_offset(1250), 325}, + {pool_offset(1443), 180}, + + {pool_offset(1444), 518}, + {-1}, {-1}, + + {pool_offset(1447), 209}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1257), 75}, - {-1}, + {pool_offset(1463), 77}, - {pool_offset(1259), 588}, + {pool_offset(1464), 193}, - {pool_offset(1260), 86}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1465), 33}, - {pool_offset(1266), 502}, - {-1}, + {pool_offset(1466), 249}, - {pool_offset(1268), 467}, + {pool_offset(1467), 496}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1275), 16}, - {-1}, {-1}, {-1}, + {pool_offset(1483), 483}, + {-1}, {-1}, + + {pool_offset(1486), 392}, + {-1}, {-1}, - {pool_offset(1279), 138}, + {pool_offset(1489), 115}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1496), 581}, {-1}, - {pool_offset(1281), 540}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1498), 297}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1304), 114}, - {-1}, + {pool_offset(1512), 603}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1306), 300}, + {pool_offset(1519), 85}, {-1}, - {pool_offset(1308), 237}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1521), 485}, - {pool_offset(1315), 481}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1522), 31}, + {-1}, {-1}, - {pool_offset(1320), 245}, + {pool_offset(1525), 159}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1321), 522}, + {pool_offset(1530), 228}, + {-1}, {-1}, - {pool_offset(1322), 187}, + {pool_offset(1533), 29}, + {-1}, - {pool_offset(1323), 400}, + {pool_offset(1535), 552}, - {pool_offset(1324), 33}, - {-1}, {-1}, {-1}, + {pool_offset(1536), 119}, + {-1}, {-1}, - {pool_offset(1328), 356}, + {pool_offset(1539), 395}, {-1}, - {pool_offset(1330), 261}, + {pool_offset(1541), 68}, - {pool_offset(1331), 261}, + {pool_offset(1542), 61}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1547), 64}, {-1}, {-1}, - {pool_offset(1334), 222}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1550), 69}, + {-1}, {-1}, {-1}, - {pool_offset(1341), 93}, + {pool_offset(1554), 89}, + + {pool_offset(1555), 527}, {-1}, - {pool_offset(1343), 242}, + {pool_offset(1557), 459}, {-1}, {-1}, {-1}, - {pool_offset(1347), 109}, + {pool_offset(1561), 135}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1349), 203}, + {pool_offset(1572), 240}, {-1}, {-1}, - {pool_offset(1352), 272}, + {pool_offset(1575), 237}, - {pool_offset(1353), 8}, - {-1}, + {pool_offset(1576), 95}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1355), 130}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1583), 138}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1360), 93}, + {pool_offset(1592), 361}, - {pool_offset(1361), 245}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1593), 548}, + {-1}, - {pool_offset(1366), 466}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1595), 481}, - {pool_offset(1371), 388}, + {pool_offset(1596), 286}, {-1}, - {pool_offset(1373), 135}, + {pool_offset(1598), 335}, - {pool_offset(1374), 516}, - {-1}, + {pool_offset(1599), 30}, - {pool_offset(1376), 586}, + {pool_offset(1600), 402}, + + {pool_offset(1601), 537}, {-1}, {-1}, - {pool_offset(1379), 88}, + {pool_offset(1604), 353}, + {-1}, {-1}, {-1}, - {pool_offset(1380), 458}, + {pool_offset(1608), 77}, {-1}, {-1}, - {pool_offset(1383), 492}, + {pool_offset(1611), 30}, + + {pool_offset(1612), 59}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1622), 44}, {-1}, {-1}, - {pool_offset(1386), 94}, + {pool_offset(1625), 472}, + {-1}, {-1}, {-1}, + + {pool_offset(1629), 78}, + {-1}, {-1}, {-1}, + + {pool_offset(1633), 138}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1391), 94}, + {pool_offset(1638), 187}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1392), 128}, - {-1}, {-1}, + {pool_offset(1643), 479}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1395), 54}, - {-1}, + {pool_offset(1650), 418}, - {pool_offset(1397), 216}, - {-1}, {-1}, + {pool_offset(1651), 355}, - {pool_offset(1400), 97}, + {pool_offset(1652), 563}, {-1}, - {pool_offset(1402), 132}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1654), 3}, - {pool_offset(1409), 3}, + {pool_offset(1655), 187}, {-1}, - {pool_offset(1411), 396}, + {pool_offset(1657), 360}, {-1}, {-1}, - {pool_offset(1414), 130}, + {pool_offset(1660), 206}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1420), 529}, + {pool_offset(1666), 245}, {-1}, - {pool_offset(1422), 97}, + {pool_offset(1668), 194}, + {-1}, {-1}, {-1}, + + {pool_offset(1672), 376}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1427), 497}, + {pool_offset(1677), 76}, - {pool_offset(1428), 346}, + {pool_offset(1678), 136}, + {-1}, {-1}, {-1}, - {pool_offset(1429), 359}, + {pool_offset(1682), 475}, {-1}, - {pool_offset(1431), 19}, + {pool_offset(1684), 424}, {-1}, {-1}, - {pool_offset(1434), 164}, + {pool_offset(1687), 503}, + + {pool_offset(1688), 378}, {-1}, - {pool_offset(1436), 77}, - {-1}, {-1}, + {pool_offset(1690), 316}, - {pool_offset(1439), 233}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1691), 500}, - {pool_offset(1444), 101}, + {pool_offset(1692), 513}, {-1}, {-1}, {-1}, - {pool_offset(1448), 227}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1696), 57}, - {pool_offset(1455), 128}, - {-1}, + {pool_offset(1697), 277}, - {pool_offset(1457), 30}, - {-1}, + {pool_offset(1698), 114}, - {pool_offset(1459), 110}, - {-1}, + {pool_offset(1699), 279}, - {pool_offset(1461), 166}, - {-1}, {-1}, + {pool_offset(1700), 57}, - {pool_offset(1464), 172}, + {pool_offset(1701), 95}, - {pool_offset(1465), 222}, - {-1}, + {pool_offset(1702), 302}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1467), 532}, + {pool_offset(1709), 112}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1468), 50}, + {pool_offset(1719), 68}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1469), 30}, - {-1}, {-1}, + {pool_offset(1727), 60}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1472), 283}, + {pool_offset(1733), 21}, - {pool_offset(1473), 170}, + {pool_offset(1734), 373}, - {pool_offset(1474), 170}, + {pool_offset(1735), 19}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1475), 250}, + {pool_offset(1745), 519}, {-1}, {-1}, - {pool_offset(1478), 188}, - - {pool_offset(1479), 182}, + {pool_offset(1748), 15}, {-1}, - {pool_offset(1481), 247}, - {-1}, + {pool_offset(1750), 176}, - {pool_offset(1483), 247}, + {pool_offset(1751), 624}, - {pool_offset(1484), 410}, - {-1}, {-1}, + {pool_offset(1752), 492}, - {pool_offset(1487), 198}, - {-1}, {-1}, + {pool_offset(1753), 571}, + + {pool_offset(1754), 493}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1490), 302}, + {pool_offset(1763), 542}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1492), 484}, + {pool_offset(1774), 405}, + + {pool_offset(1775), 445}, - {pool_offset(1493), 288}, + {pool_offset(1776), 290}, + {-1}, - {pool_offset(1494), 468}, + {pool_offset(1778), 32}, {-1}, {-1}, - {pool_offset(1497), 455}, + {pool_offset(1781), 147}, + {-1}, {-1}, - {pool_offset(1498), 31}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1784), 147}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1507), 573}, + {pool_offset(1790), 467}, {-1}, - {pool_offset(1509), 265}, + {pool_offset(1792), 113}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1801), 34}, {-1}, - {pool_offset(1511), 162}, + {pool_offset(1803), 553}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1808), 528}, {-1}, {-1}, - {pool_offset(1514), 470}, + {pool_offset(1811), 602}, + {-1}, - {pool_offset(1515), 229}, - {-1}, {-1}, + {pool_offset(1813), 116}, - {pool_offset(1518), 226}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1814), 172}, + {-1}, {-1}, - {pool_offset(1526), 381}, + {pool_offset(1817), 172}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1532), 151}, - {-1}, + {pool_offset(1823), 96}, + {-1}, {-1}, {-1}, - {pool_offset(1534), 21}, + {pool_offset(1827), 96}, + {-1}, - {pool_offset(1535), 496}, + {pool_offset(1829), 587}, {-1}, {-1}, - {pool_offset(1538), 34}, - {-1}, - - {pool_offset(1540), 321}, - {-1}, + {pool_offset(1832), 350}, - {pool_offset(1542), 189}, + {pool_offset(1833), 123}, {-1}, {-1}, - {pool_offset(1545), 29}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1836), 99}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1841), 85}, - {pool_offset(1555), 276}, + {pool_offset(1842), 6}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1556), 431}, + {pool_offset(1847), 413}, {-1}, {-1}, - {pool_offset(1559), 61}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {pool_offset(1850), 609}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1579), 217}, + {pool_offset(1859), 99}, {-1}, {-1}, {-1}, - {pool_offset(1583), 572}, + {pool_offset(1863), 514}, + {-1}, {-1}, - {pool_offset(1584), 78}, - {-1}, + {pool_offset(1866), 324}, + {-1}, {-1}, + + {pool_offset(1869), 88}, + + {pool_offset(1870), 103}, + {-1}, {-1}, {-1}, - {pool_offset(1586), 347}, + {pool_offset(1874), 532}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1592), 127}, + {pool_offset(1880), 177}, - {pool_offset(1593), 508}, + {pool_offset(1881), 590}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1594), 44}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1889), 543}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1599), 139}, + {pool_offset(1895), 246}, - {pool_offset(1600), 139}, - {-1}, {-1}, + {pool_offset(1896), 388}, - {pool_offset(1603), 68}, + {pool_offset(1897), 32}, {-1}, - {pool_offset(1605), 445}, - {-1}, {-1}, {-1}, + {pool_offset(1899), 465}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1609), 64}, - {-1}, {-1}, + {pool_offset(1907), 236}, + {-1}, - {pool_offset(1612), 69}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1909), 329}, {-1}, {-1}, {-1}, - {pool_offset(1625), 259}, + {pool_offset(1913), 397}, + {-1}, - {pool_offset(1626), 87}, + {pool_offset(1915), 158}, {-1}, - {pool_offset(1628), 163}, + {pool_offset(1917), 318}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1922), 506}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1930), 160}, {-1}, {-1}, - {pool_offset(1631), 163}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1933), 309}, - {pool_offset(1640), 587}, + {pool_offset(1934), 375}, {-1}, - {pool_offset(1642), 77}, + {pool_offset(1936), 407}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1647), 362}, - {-1}, + {pool_offset(1941), 160}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1649), 526}, + {pool_offset(1946), 567}, {-1}, - {pool_offset(1651), 341}, - {-1}, {-1}, {-1}, - - {pool_offset(1655), 256}, - {-1}, {-1}, - - {pool_offset(1658), 84}, - - {pool_offset(1659), 244}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1948), 193}, {-1}, - {pool_offset(1670), 15}, + {pool_offset(1950), 212}, - {pool_offset(1671), 191}, + {pool_offset(1951), 236}, {-1}, - {pool_offset(1673), 198}, - {-1}, {-1}, {-1}, + {pool_offset(1953), 144}, - {pool_offset(1677), 262}, - {-1}, {-1}, {-1}, + {pool_offset(1954), 196}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1681), 237}, + {pool_offset(1962), 9}, + {-1}, - {pool_offset(1682), 513}, + {pool_offset(1964), 367}, - {pool_offset(1683), 464}, + {pool_offset(1965), 23}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1690), 336}, + {pool_offset(1972), 311}, + {-1}, - {pool_offset(1691), 404}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1974), 428}, {-1}, {-1}, - {pool_offset(1703), 546}, + {pool_offset(1977), 573}, {-1}, {-1}, - {pool_offset(1706), 310}, - {-1}, {-1}, {-1}, + {pool_offset(1980), 48}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1710), 427}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1986), 35}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1715), 98}, + {pool_offset(1992), 276}, + {-1}, - {pool_offset(1716), 361}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1994), 580}, - {pool_offset(1723), 486}, + {pool_offset(1995), 245}, - {pool_offset(1724), 364}, - {-1}, {-1}, + {pool_offset(1996), 66}, + {-1}, {-1}, {-1}, - {pool_offset(1727), 489}, - {-1}, {-1}, + {pool_offset(2000), 576}, + {-1}, {-1}, {-1}, - {pool_offset(1730), 298}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2004), 389}, + {-1}, - {pool_offset(1740), 76}, + {pool_offset(2006), 148}, + {-1}, {-1}, + + {pool_offset(2009), 148}, {-1}, {-1}, {-1}, - {pool_offset(1744), 391}, + {pool_offset(2013), 238}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1749), 107}, + {pool_offset(2018), 381}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1750), 57}, - {-1}, + {pool_offset(2024), 285}, + {-1}, {-1}, - {pool_offset(1752), 353}, + {pool_offset(2027), 343}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(1763), 98}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2049), 235}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1772), 393}, + {pool_offset(2055), 606}, {-1}, {-1}, - {pool_offset(1775), 542}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1783), 201}, + {pool_offset(2058), 12}, - {pool_offset(1784), 24}, + {pool_offset(2059), 35}, + {-1}, - {pool_offset(1785), 297}, + {pool_offset(2061), 192}, {-1}, {-1}, {-1}, - {pool_offset(1789), 234}, - {-1}, {-1}, + {pool_offset(2065), 412}, - {pool_offset(1792), 183}, + {pool_offset(2066), 220}, - {pool_offset(1793), 538}, + {pool_offset(2067), 100}, + {-1}, {-1}, {-1}, + + {pool_offset(2071), 66}, {-1}, - {pool_offset(1795), 57}, + {pool_offset(2073), 186}, + {-1}, {-1}, {-1}, + + {pool_offset(2077), 584}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1796), 5}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2085), 533}, - {pool_offset(1801), 193}, - {-1}, {-1}, + {pool_offset(2086), 623}, - {pool_offset(1804), 550}, + {pool_offset(2087), 177}, {-1}, {-1}, - {pool_offset(1807), 477}, - - {pool_offset(1808), 68}, + {pool_offset(2090), 501}, {-1}, - {pool_offset(1810), 478}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1815), 553}, + {pool_offset(2092), 105}, {-1}, {-1}, - {pool_offset(1818), 414}, + {pool_offset(2095), 40}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1824), 592}, + {pool_offset(2101), 195}, + {-1}, {-1}, + + {pool_offset(2104), 100}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1825), 112}, + {pool_offset(2110), 272}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1835), 60}, - {-1}, + {pool_offset(2120), 173}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1837), 166}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2129), 286}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1843), 201}, + {pool_offset(2136), 383}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1844), 242}, + {pool_offset(2161), 622}, {-1}, - {pool_offset(1846), 194}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2163), 588}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2169), 15}, - {pool_offset(1856), 224}, + {pool_offset(2170), 247}, {-1}, - {pool_offset(1858), 108}, - {-1}, {-1}, {-1}, + {pool_offset(2172), 59}, - {pool_offset(1862), 250}, + {pool_offset(2173), 574}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1863), 140}, + {pool_offset(2180), 462}, + {-1}, {-1}, - {pool_offset(1864), 140}, - {-1}, + {pool_offset(2183), 199}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(1866), 32}, - {-1}, {-1}, {-1}, + {pool_offset(2195), 217}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1870), 112}, - {-1}, + {pool_offset(2201), 5}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1872), 49}, - {-1}, + {pool_offset(2206), 1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1874), 579}, + {pool_offset(2211), 140}, + {-1}, {-1}, {-1}, - {pool_offset(1875), 453}, + {pool_offset(2215), 141}, {-1}, {-1}, - {pool_offset(1878), 576}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2218), 257}, - {pool_offset(1883), 367}, + {pool_offset(2219), 190}, {-1}, - {pool_offset(1885), 432}, + {pool_offset(2221), 351}, - {pool_offset(1886), 40}, + {pool_offset(2222), 414}, {-1}, {-1}, {-1}, - {pool_offset(1890), 398}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2226), 58}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1897), 596}, + {pool_offset(2234), 164}, - {pool_offset(1898), 433}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2235), 37}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1903), 315}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2241), 480}, + {-1}, {-1}, - {pool_offset(1908), 225}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2244), 50}, - {pool_offset(1913), 334}, + {pool_offset(2245), 182}, {-1}, - {pool_offset(1915), 342}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2247), 36}, - {pool_offset(1925), 12}, + {pool_offset(2248), 204}, - {pool_offset(1926), 369}, - {-1}, + {pool_offset(2249), 331}, - {pool_offset(1928), 246}, - {-1}, + {pool_offset(2250), 257}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1930), 177}, + {pool_offset(2260), 54}, + {-1}, {-1}, - {pool_offset(1931), 103}, + {pool_offset(2263), 277}, {-1}, {-1}, {-1}, - {pool_offset(1935), 195}, - {-1}, {-1}, {-1}, + {pool_offset(2267), 416}, - {pool_offset(1939), 167}, + {pool_offset(2268), 219}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1940), 24}, + {pool_offset(2275), 254}, {-1}, - {pool_offset(1942), 378}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1947), 177}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1961), 225}, + {pool_offset(2277), 327}, {-1}, {-1}, - {pool_offset(1964), 554}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2280), 42}, + + {pool_offset(2281), 628}, + {-1}, - {pool_offset(1972), 417}, + {pool_offset(2283), 106}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(1973), 257}, + {pool_offset(2303), 251}, {-1}, {-1}, - {pool_offset(1976), 383}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {pool_offset(2306), 426}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1989), 32}, + {pool_offset(2313), 348}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(2000), 399}, + {pool_offset(2352), 201}, {-1}, {-1}, {-1}, - {pool_offset(2004), 451}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2356), 92}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2018), 227}, - - {pool_offset(2019), 272}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2361), 189}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2028), 23}, - {-1}, {-1}, {-1}, + {pool_offset(2367), 92}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2032), 152}, + {pool_offset(2372), 259}, {-1}, - {pool_offset(2034), 206}, - - {pool_offset(2035), 184}, - - {pool_offset(2036), 235}, - {-1}, {-1}, {-1}, + {pool_offset(2374), 259}, + {-1}, {-1}, - {pool_offset(2040), 593}, + {pool_offset(2377), 262}, + {-1}, {-1}, - {pool_offset(2041), 313}, + {pool_offset(2380), 523}, + {-1}, {-1}, - {pool_offset(2042), 152}, + {pool_offset(2383), 296}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2043), 208}, + {pool_offset(2389), 469}, + {-1}, {-1}, {-1}, - {pool_offset(2044), 521}, + {pool_offset(2393), 365}, {-1}, {-1}, - {pool_offset(2047), 374}, - - {pool_offset(2048), 295}, + {pool_offset(2396), 289}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2053), 412}, - {-1}, {-1}, + {pool_offset(2419), 62}, + {-1}, {-1}, {-1}, - {pool_offset(2056), 62}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2423), 251}, + {-1}, {-1}, {-1}, - {pool_offset(2063), 548}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2427), 340}, - {pool_offset(2078), 339}, + {pool_offset(2428), 433}, {-1}, {-1}, - {pool_offset(2081), 91}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2090), 51}, + {pool_offset(2431), 583}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2092), 91}, + {pool_offset(2451), 152}, + + {pool_offset(2452), 572}, {-1}, {-1}, {-1}, - {pool_offset(2096), 150}, + {pool_offset(2456), 152}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2461), 359}, {-1}, {-1}, - {pool_offset(2099), 1}, + {pool_offset(2464), 613}, + {-1}, {-1}, {-1}, + + {pool_offset(2468), 269}, - {pool_offset(2100), 144}, + {pool_offset(2469), 80}, {-1}, - {pool_offset(2102), 465}, - {-1}, {-1}, + {pool_offset(2471), 211}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2105), 144}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2478), 98}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(2110), 9}, - {-1}, {-1}, + {pool_offset(2489), 256}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2113), 337}, + {pool_offset(2507), 197}, {-1}, {-1}, {-1}, - {pool_offset(2117), 200}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2511), 196}, - {pool_offset(2122), 236}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2512), 534}, + {-1}, {-1}, {-1}, - {pool_offset(2129), 156}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2516), 135}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2145), 59}, - {-1}, + {pool_offset(2523), 198}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2147), 304}, - {-1}, {-1}, + {pool_offset(2532), 394}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2150), 409}, + {pool_offset(2546), 619}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2552), 386}, {-1}, - {pool_offset(2152), 471}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2554), 334}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2160), 66}, + {pool_offset(2561), 347}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2161), 251}, + {pool_offset(2566), 421}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2166), 251}, + {pool_offset(2571), 82}, - {pool_offset(2167), 35}, + {pool_offset(2572), 312}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2168), 252}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2579), 615}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2176), 234}, - {-1}, + {pool_offset(2585), 201}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2178), 137}, - {-1}, {-1}, {-1}, + {pool_offset(2591), 36}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2596), 464}, - {pool_offset(2182), 556}, + {pool_offset(2597), 24}, {-1}, {-1}, {-1}, - {pool_offset(2186), 185}, + {pool_offset(2601), 268}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2195), 42}, - {-1}, {-1}, {-1}, + {pool_offset(2610), 535}, + {-1}, {-1}, - {pool_offset(2199), 402}, - {-1}, + {pool_offset(2613), 597}, + {-1}, {-1}, {-1}, - {pool_offset(2201), 66}, + {pool_offset(2617), 268}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2204), 375}, + {pool_offset(2638), 291}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2205), 35}, - {-1}, + {pool_offset(2648), 175}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2207), 271}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2662), 507}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2213), 436}, + {pool_offset(2667), 262}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(2224), 255}, - {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2228), 490}, - {-1}, {-1}, {-1}, + {pool_offset(2684), 205}, + {-1}, {-1}, - {pool_offset(2232), 167}, + {pool_offset(2687), 183}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2240), 209}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2695), 447}, + {-1}, - {pool_offset(2247), 169}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2697), 219}, - {pool_offset(2252), 282}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2698), 70}, + {-1}, - {pool_offset(2261), 142}, + {pool_offset(2700), 81}, - {pool_offset(2262), 351}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2701), 431}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2270), 182}, - {-1}, + {pool_offset(2719), 208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2272), 142}, + {pool_offset(2727), 24}, {-1}, - {pool_offset(2274), 243}, - {-1}, {-1}, {-1}, - - {pool_offset(2278), 168}, + {pool_offset(2729), 82}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2279), 0}, + {pool_offset(2734), 51}, {-1}, {-1}, - {pool_offset(2282), 239}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2292), 505}, + {pool_offset(2737), 357}, {-1}, {-1}, {-1}, - {pool_offset(2296), 514}, - {-1}, {-1}, + {pool_offset(2741), 446}, - {pool_offset(2299), 226}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2742), 313}, + {-1}, - {pool_offset(2305), 36}, + {pool_offset(2744), 70}, - {pool_offset(2306), 263}, + {pool_offset(2745), 244}, - {pool_offset(2307), 164}, - {-1}, {-1}, {-1}, + {pool_offset(2746), 364}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2751), 356}, + {-1}, - {pool_offset(2311), 557}, + {pool_offset(2753), 249}, + {-1}, + + {pool_offset(2755), 200}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2312), 262}, + {pool_offset(2761), 278}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2320), 80}, - {-1}, + {pool_offset(2769), 181}, - {pool_offset(2322), 127}, - {-1}, {-1}, {-1}, + {pool_offset(2770), 391}, + {-1}, - {pool_offset(2326), 255}, + {pool_offset(2772), 242}, {-1}, {-1}, - {pool_offset(2329), 96}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2775), 345}, + {-1}, {-1}, {-1}, + + {pool_offset(2779), 63}, - {pool_offset(2336), 15}, + {pool_offset(2780), 441}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2343), 448}, + {pool_offset(2787), 78}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - {pool_offset(2354), 264}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2815), 358}, + {-1}, {-1}, {-1}, - {pool_offset(2359), 591}, + {pool_offset(2819), 625}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2364), 121}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2371), 59}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2824), 288}, {-1}, - {pool_offset(2382), 547}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2826), 8}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2390), 257}, + {pool_offset(2835), 183}, + {-1}, {-1}, - {pool_offset(2391), 583}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2838), 250}, {-1}, - {pool_offset(2402), 181}, + {pool_offset(2840), 166}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2407), 345}, + {pool_offset(2845), 208}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2414), 122}, + {pool_offset(2852), 341}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2419), 248}, - - {pool_offset(2420), 239}, + {pool_offset(2857), 278}, {-1}, {-1}, - {pool_offset(2423), 241}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2428), 133}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2434), 350}, + {pool_offset(2860), 498}, {-1}, - {pool_offset(2436), 560}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2862), 279}, {-1}, {-1}, - {pool_offset(2457), 246}, + {pool_offset(2865), 354}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2462), 168}, - {-1}, + {pool_offset(2870), 48}, - {pool_offset(2464), 450}, - {-1}, {-1}, {-1}, + {pool_offset(2871), 234}, - {pool_offset(2468), 317}, + {pool_offset(2872), 390}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2469), 264}, + {pool_offset(2879), 118}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2479), 333}, - - {pool_offset(2480), 176}, - - {pool_offset(2481), 249}, - - {pool_offset(2482), 104}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2487), 299}, + {pool_offset(2896), 145}, + {-1}, - {pool_offset(2488), 171}, + {pool_offset(2898), 188}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2493), 58}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2500), 78}, - {-1}, {-1}, + {pool_offset(2903), 150}, - {pool_offset(2503), 95}, + {pool_offset(2904), 486}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2504), 331}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2914), 150}, - {pool_offset(2510), 231}, + {pool_offset(2915), 254}, + {-1}, - {pool_offset(2511), 460}, + {pool_offset(2917), 206}, {-1}, {-1}, - {pool_offset(2514), 263}, - {-1}, {-1}, {-1}, - - {pool_offset(2518), 380}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2524), 301}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2920), 271}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2533), 372}, + {pool_offset(2925), 142}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2534), 519}, + {pool_offset(2930), 50}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2538), 208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2943), 79}, + {-1}, - {pool_offset(2546), 47}, + {pool_offset(2945), 79}, - {pool_offset(2547), 173}, + {pool_offset(2946), 456}, + {-1}, {-1}, - {pool_offset(2548), 193}, + {pool_offset(2949), 596}, + {-1}, {-1}, - {pool_offset(2549), 266}, + {pool_offset(2952), 423}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2556), 440}, + {pool_offset(2959), 118}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2557), 228}, + {pool_offset(2966), 97}, {-1}, {-1}, {-1}, - {pool_offset(2561), 37}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2970), 366}, + {-1}, {-1}, - {pool_offset(2567), 101}, + {pool_offset(2973), 337}, {-1}, - {pool_offset(2569), 407}, + {pool_offset(2975), 444}, + {-1}, {-1}, + + {pool_offset(2978), 258}, - {pool_offset(2570), 172}, + {pool_offset(2979), 267}, + {-1}, - {pool_offset(2571), 411}, + {pool_offset(2981), 280}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2577), 188}, + {pool_offset(2987), 315}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2578), 585}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2992), 288}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2584), 320}, + {pool_offset(2997), 564}, + {-1}, - {pool_offset(2585), 533}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2999), 540}, + {-1}, {-1}, - {pool_offset(2591), 248}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3002), 128}, - {pool_offset(2606), 199}, + {pool_offset(3003), 557}, - {pool_offset(2607), 392}, + {pool_offset(3004), 336}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2614), 223}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2624), 327}, + {pool_offset(3011), 126}, {-1}, {-1}, - {pool_offset(2627), 322}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3014), 191}, + {-1}, {-1}, - {pool_offset(2633), 419}, + {pool_offset(3017), 400}, + {-1}, {-1}, - {pool_offset(2634), 238}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3020), 103}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2642), 63}, + {pool_offset(3025), 425}, {-1}, - {pool_offset(2644), 265}, + {pool_offset(3027), 194}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2652), 190}, + {pool_offset(3035), 184}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2653), 179}, - {-1}, {-1}, {-1}, + {pool_offset(3050), 415}, - {pool_offset(2657), 567}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3051), 243}, - {pool_offset(2663), 275}, - {-1}, + {pool_offset(3052), 175}, - {pool_offset(2665), 277}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3053), 81}, - {pool_offset(2670), 190}, + {pool_offset(3054), 202}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2681), 48}, - {-1}, - - {pool_offset(2683), 442}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3065), 210}, {-1}, {-1}, - {pool_offset(2695), 326}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3068), 614}, {-1}, - {pool_offset(2706), 36}, - {-1}, {-1}, {-1}, - - {pool_offset(2710), 413}, + {pool_offset(3070), 207}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2724), 62}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2733), 70}, + {pool_offset(3084), 250}, {-1}, - {pool_offset(2735), 173}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3086), 454}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(2742), 423}, - {-1}, {-1}, {-1}, + {pool_offset(3097), 566}, - {pool_offset(2746), 27}, + {pool_offset(3098), 598}, {-1}, - {pool_offset(2748), 352}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2756), 434}, + {pool_offset(3100), 44}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2757), 568}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3105), 406}, + {-1}, - {pool_offset(2763), 187}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3107), 554}, {-1}, {-1}, {-1}, - {pool_offset(2776), 428}, + {pool_offset(3111), 218}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(2787), 50}, - {pool_offset(2788), 70}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3130), 49}, + {-1}, {-1}, - {pool_offset(2794), 99}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3133), 184}, + {-1}, {-1}, - {pool_offset(2804), 323}, + {pool_offset(3136), 369}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2811), 376}, + {pool_offset(3143), 437}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(2821), 386}, + {pool_offset(3156), 448}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3162), 179}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2828), 180}, + {pool_offset(3169), 260}, + {-1}, - {pool_offset(2829), 218}, + {pool_offset(3171), 4}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3186), 51}, {-1}, {-1}, - {pool_offset(2832), 430}, + {pool_offset(3189), 218}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2833), 589}, + {pool_offset(3196), 494}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3205), 225}, {-1}, - {pool_offset(2835), 584}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3207), 229}, - {pool_offset(2840), 178}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3208), 174}, + {-1}, - {pool_offset(2854), 207}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3210), 178}, + {-1}, + + {pool_offset(3212), 0}, - {pool_offset(2862), 515}, + {pool_offset(3213), 61}, + {-1}, {-1}, {-1}, - {pool_offset(2863), 479}, + {pool_offset(3217), 174}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2869), 274}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {pool_offset(3223), 363}, + {-1}, - {pool_offset(2882), 214}, + {pool_offset(3225), 62}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2894), 437}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3243), 271}, - {pool_offset(2901), 158}, + {pool_offset(3244), 186}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2909), 67}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2916), 244}, + {pool_offset(3252), 450}, + {-1}, {-1}, {-1}, - {pool_offset(2917), 175}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3256), 585}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2925), 67}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3266), 263}, + {-1}, {-1}, {-1}, - {pool_offset(2931), 119}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3270), 304}, + {-1}, - {pool_offset(2958), 117}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3272), 263}, - {pool_offset(2963), 530}, + {pool_offset(3273), 264}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2965), 238}, - {-1}, {-1}, + {pool_offset(3284), 237}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2968), 253}, - {-1}, {-1}, {-1}, + {pool_offset(3292), 380}, - {pool_offset(2972), 79}, + {pool_offset(3293), 601}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3318), 185}, {-1}, - {pool_offset(2974), 253}, + {pool_offset(3320), 267}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2989), 73}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3335), 108}, + {-1}, {-1}, {-1}, - {pool_offset(2997), 189}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, + {pool_offset(3339), 451}, + {-1}, {-1}, {-1}, - {pool_offset(3009), 510}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3343), 109}, {-1}, - {pool_offset(3020), 185}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3345), 260}, + {-1}, {-1}, {-1}, - {pool_offset(3026), 49}, + {pool_offset(3349), 253}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3031), 61}, + {pool_offset(3354), 60}, - {pool_offset(3032), 377}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3355), 83}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3037), 79}, - {-1}, {-1}, + {pool_offset(3362), 207}, - {pool_offset(3040), 20}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3363), 239}, + {-1}, + + {pool_offset(3365), 178}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - {pool_offset(3061), 195}, + {pool_offset(3375), 255}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3070), 186}, - - {pool_offset(3071), 287}, - - {pool_offset(3072), 233}, + {pool_offset(3384), 49}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3074), 355}, + {pool_offset(3395), 129}, {-1}, {-1}, - {pool_offset(3077), 578}, - - {pool_offset(3078), 569}, - - {pool_offset(3079), 95}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3087), 82}, + {pool_offset(3398), 73}, {-1}, {-1}, - {pool_offset(3090), 196}, + {pool_offset(3401), 261}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3091), 539}, + {pool_offset(3410), 610}, + {-1}, + + {pool_offset(3412), 47}, {-1}, {-1}, {-1}, - {pool_offset(3095), 134}, - {-1}, {-1}, + {pool_offset(3416), 280}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3098), 165}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3421), 20}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(3106), 165}, + {pool_offset(3432), 384}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(3116), 174}, + {pool_offset(3445), 203}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3117), 274}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3452), 189}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(3123), 296}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3463), 101}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3129), 558}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3473), 65}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(3135), 51}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3485), 273}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(3140), 178}, + {pool_offset(3497), 191}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(3141), 571}, + {pool_offset(3510), 168}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3142), 290}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3516), 124}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3151), 395}, + {pool_offset(3532), 474}, {-1}, {-1}, {-1}, - {pool_offset(3155), 343}, + {pool_offset(3536), 310}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(3170), 197}, + {pool_offset(3566), 529}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(3171), 194}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3578), 73}, + {-1}, {-1}, - {pool_offset(3176), 73}, + {pool_offset(3581), 74}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3203), 74}, + {pool_offset(3606), 222}, {-1}, {-1}, {-1}, - {pool_offset(3207), 44}, + {pool_offset(3610), 74}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(3217), 566}, + {pool_offset(3623), 231}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3220), 232}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3225), 82}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3234), 81}, + {pool_offset(3635), 270}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3240), 266}, + {pool_offset(3641), 608}, {-1}, {-1}, {-1}, - {pool_offset(3244), 207}, - {-1}, - - {pool_offset(3246), 74}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3645), 558}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3252), 541}, + {pool_offset(3661), 442}, {-1}, - {pool_offset(3254), 60}, + {pool_offset(3663), 258}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3267), 220}, + {pool_offset(3676), 97}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3280), 401}, - {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3282), 349}, + {pool_offset(3703), 411}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - {pool_offset(3303), 397}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3731), 102}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3310), 344}, + {pool_offset(3739), 393}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3762), 67}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(3774), 409}, {-1}, - {pool_offset(3330), 183}, + {pool_offset(3776), 440}, {-1}, {-1}, - {pool_offset(3333), 340}, + {pool_offset(3779), 67}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3340), 19}, + {pool_offset(3786), 27}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3376), 4}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3391), 424}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3410), 426}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3836), 247}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(3440), 534}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(3448), 176}, + {pool_offset(3849), 216}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3455), 366}, - {-1}, {-1}, + {pool_offset(3865), 599}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3458), 197}, - {-1}, {-1}, + {pool_offset(3870), 438}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3461), 42}, + {pool_offset(3893), 18}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3476), 196}, + {pool_offset(3903), 42}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3926), 478}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3936), 195}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3527), 174}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(3985), 452}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3992), 593}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3999), 80}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4007), 265}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4014), 265}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3566), 236}, + {pool_offset(4026), 477}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3567), 279}, + {pool_offset(4031), 203}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(3578), 18}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3591), 580}, {-1}, {-1}, - {pool_offset(3594), 370}, - {-1}, {-1}, {-1}, + {pool_offset(4061), 427}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3598), 191}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(4068), 270}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4083), 76}, + + {pool_offset(4084), 586}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3607), 65}, + {pool_offset(4092), 293}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3610), 180}, + {pool_offset(4104), 71}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3628), 463}, + {pool_offset(4175), 241}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3643), 81}, + {pool_offset(4190), 102}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3693), 258}, + {pool_offset(4278), 551}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3708), 199}, + {pool_offset(4302), 47}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3721), 69}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3743), 228}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(3754), 241}, + {pool_offset(4368), 65}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3768), 254}, - {-1}, {-1}, + {pool_offset(4391), 229}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4398), 69}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3771), 10}, + {pool_offset(4404), 224}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4425), 301}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4442), 549}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(4455), 550}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3842), 438}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3874), 260}, + {pool_offset(4514), 98}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3899), 80}, + {pool_offset(4566), 239}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3912), 230}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3952), 211}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(4617), 64}, + {-1}, {-1}, + + {pool_offset(4620), 10}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4627), 256}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3969), 218}, - {-1}, + {pool_offset(4635), 403}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3971), 563}, + {pool_offset(4653), 626}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4701), 197}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4012), 254}, + {pool_offset(4709), 19}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4025), 100}, + {pool_offset(4731), 274}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4043), 379}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(4063), 240}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4077), 462}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4082), 240}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4808), 439}, {-1}, {-1}, {-1}, - {pool_offset(4113), 96}, + {pool_offset(4812), 266}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4136), 76}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4163), 559}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4169), 100}, + {pool_offset(4856), 382}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4171), 47}, + {pool_offset(4876), 266}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4185), 205}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(4191), 184}, + {pool_offset(4905), 253}, + {-1}, {-1}, {-1}, - {pool_offset(4192), 71}, + {pool_offset(4909), 104}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4237), 527}, - {-1}, - - {pool_offset(4239), 249}, - {-1}, {-1}, {-1}, - - {pool_offset(4243), 138}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4250), 528}, + {pool_offset(4972), 56}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4989), 146}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4287), 102}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5035), 261}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5069), 210}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(4347), 99}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(5080), 611}, - {pool_offset(4355), 425}, - {-1}, {-1}, + {pool_offset(5081), 272}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(4358), 56}, + {pool_offset(5092), 71}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4400), 192}, + {pool_offset(5163), 374}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5171), 252}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5190), 252}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(4467), 192}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(4475), 65}, + {pool_offset(5237), 401}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30780,6 +32828,9 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5343), 72}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30792,6 +32843,9 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(5453), 185}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30804,23 +32858,9 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(4793), 368}, - {-1}, {-1}, - - {pool_offset(4796), 64}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4806), 387}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4815), 186}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4838), 594}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30830,9 +32870,6 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4926), 389}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30845,28 +32882,13 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5043), 581}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5052), 175}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5114), 213}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5121), 72}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5136), 71}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30886,9 +32908,6 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5312), 360}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30896,6 +32915,8 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(6075), 72}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30911,6 +32932,11 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(6217), 627}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30934,9 +32960,6 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5725), 72}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30987,8 +33010,9 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(6176), 595} + {pool_offset(6900), 101} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) @@ -31012,11 +33036,11 @@ unicode_lookup_property_name (register const char *str, register size_t len) -#define UNICODE_PROPERTY_VERSION 140000 -#define UNICODE_EMOJI_VERSION 1400 +#define UNICODE_PROPERTY_VERSION 160000 +#define UNICODE_EMOJI_VERSION 1600 #define PROPERTY_NAME_MAX_SIZE 61 -#define CODE_RANGES_NUM 597 +#define CODE_RANGES_NUM 629 #define PROP_INDEX_NEWLINE 0 #define PROP_INDEX_ALPHA 1 @@ -31026,7 +33050,7 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_GRAPH 5 #define PROP_INDEX_LOWER 6 #define PROP_INDEX_PRINT 7 -#define PROP_INDEX_PUNCT 8 +#define PROP_INDEX_POSIXPUNCT 8 #define PROP_INDEX_SPACE 9 #define PROP_INDEX_UPPER 10 #define PROP_INDEX_XDIGIT 11 @@ -31035,8 +33059,8 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_ASCII 14 #define PROP_INDEX_ASCIIHEXDIGIT 15 #define PROP_INDEX_AHEX 15 -#define PROP_INDEX_ADLM 16 #define PROP_INDEX_ADLAM 16 +#define PROP_INDEX_ADLM 16 #define PROP_INDEX_AHOM 17 #define PROP_INDEX_ALPHABETIC 18 #define PROP_INDEX_ANATOLIANHIEROGLYPHS 19 @@ -31044,11 +33068,11 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_ANY 20 #define PROP_INDEX_ARABIC 21 #define PROP_INDEX_ARAB 21 -#define PROP_INDEX_ARMN 22 #define PROP_INDEX_ARMENIAN 22 +#define PROP_INDEX_ARMN 22 #define PROP_INDEX_ASSIGNED 23 -#define PROP_INDEX_AVST 24 #define PROP_INDEX_AVESTAN 24 +#define PROP_INDEX_AVST 24 #define PROP_INDEX_BALINESE 25 #define PROP_INDEX_BALI 25 #define PROP_INDEX_BAMUM 26 @@ -31057,69 +33081,69 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_BASS 27 #define PROP_INDEX_BATAK 28 #define PROP_INDEX_BATK 28 -#define PROP_INDEX_BENG 29 #define PROP_INDEX_BENGALI 29 -#define PROP_INDEX_BHKS 30 +#define PROP_INDEX_BENG 29 #define PROP_INDEX_BHAIKSUKI 30 +#define PROP_INDEX_BHKS 30 #define PROP_INDEX_BIDICONTROL 31 #define PROP_INDEX_BIDIC 31 -#define PROP_INDEX_BOPO 32 #define PROP_INDEX_BOPOMOFO 32 +#define PROP_INDEX_BOPO 32 #define PROP_INDEX_BRAHMI 33 #define PROP_INDEX_BRAH 33 -#define PROP_INDEX_BRAI 34 #define PROP_INDEX_BRAILLE 34 -#define PROP_INDEX_BUGI 35 +#define PROP_INDEX_BRAI 34 #define PROP_INDEX_BUGINESE 35 -#define PROP_INDEX_BUHD 36 +#define PROP_INDEX_BUGI 35 #define PROP_INDEX_BUHID 36 +#define PROP_INDEX_BUHD 36 #define PROP_INDEX_C 37 #define PROP_INDEX_OTHER 37 -#define PROP_INDEX_CANS 38 #define PROP_INDEX_CANADIANABORIGINAL 38 -#define PROP_INDEX_CARI 39 +#define PROP_INDEX_CANS 38 #define PROP_INDEX_CARIAN 39 -#define PROP_INDEX_CI 40 +#define PROP_INDEX_CARI 39 #define PROP_INDEX_CASEIGNORABLE 40 +#define PROP_INDEX_CI 40 #define PROP_INDEX_CASED 41 -#define PROP_INDEX_AGHB 42 #define PROP_INDEX_CAUCASIANALBANIAN 42 -#define PROP_INDEX_CONTROL 43 +#define PROP_INDEX_AGHB 42 #define PROP_INDEX_CC 43 +#define PROP_INDEX_CONTROL 43 #define PROP_INDEX_CF 44 #define PROP_INDEX_FORMAT 44 #define PROP_INDEX_CHAKMA 45 #define PROP_INDEX_CAKM 45 #define PROP_INDEX_CHAM 46 -#define PROP_INDEX_CWCF 47 #define PROP_INDEX_CHANGESWHENCASEFOLDED 47 -#define PROP_INDEX_CWCM 48 +#define PROP_INDEX_CWCF 47 #define PROP_INDEX_CHANGESWHENCASEMAPPED 48 -#define PROP_INDEX_CWL 49 +#define PROP_INDEX_CWCM 48 #define PROP_INDEX_CHANGESWHENLOWERCASED 49 -#define PROP_INDEX_CWT 50 +#define PROP_INDEX_CWL 49 #define PROP_INDEX_CHANGESWHENTITLECASED 50 -#define PROP_INDEX_CWU 51 +#define PROP_INDEX_CWT 50 #define PROP_INDEX_CHANGESWHENUPPERCASED 51 -#define PROP_INDEX_CHER 52 +#define PROP_INDEX_CWU 51 #define PROP_INDEX_CHEROKEE 52 -#define PROP_INDEX_CHRS 53 +#define PROP_INDEX_CHER 52 #define PROP_INDEX_CHORASMIAN 53 +#define PROP_INDEX_CHRS 53 #define PROP_INDEX_CN 54 #define PROP_INDEX_UNASSIGNED 54 -#define PROP_INDEX_PRIVATEUSE 55 #define PROP_INDEX_CO 55 -#define PROP_INDEX_ZYYY 56 +#define PROP_INDEX_PRIVATEUSE 55 #define PROP_INDEX_COMMON 56 -#define PROP_INDEX_COPT 57 +#define PROP_INDEX_ZYYY 56 #define PROP_INDEX_COPTIC 57 +#define PROP_INDEX_COPT 57 #define PROP_INDEX_QAAC 57 #define PROP_INDEX_CS 58 #define PROP_INDEX_SURROGATE 58 -#define PROP_INDEX_XSUX 59 #define PROP_INDEX_CUNEIFORM 59 -#define PROP_INDEX_CPRT 60 +#define PROP_INDEX_XSUX 59 #define PROP_INDEX_CYPRIOT 60 +#define PROP_INDEX_CPRT 60 #define PROP_INDEX_CYPROMINOAN 61 #define PROP_INDEX_CPMN 61 #define PROP_INDEX_CYRILLIC 62 @@ -31127,737 +33151,780 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_DASH 63 #define PROP_INDEX_DEFAULTIGNORABLECODEPOINT 64 #define PROP_INDEX_DI 64 -#define PROP_INDEX_DEP 65 #define PROP_INDEX_DEPRECATED 65 -#define PROP_INDEX_DSRT 66 +#define PROP_INDEX_DEP 65 #define PROP_INDEX_DESERET 66 -#define PROP_INDEX_DEVA 67 +#define PROP_INDEX_DSRT 66 #define PROP_INDEX_DEVANAGARI 67 +#define PROP_INDEX_DEVA 67 #define PROP_INDEX_DIACRITIC 68 #define PROP_INDEX_DIA 68 -#define PROP_INDEX_DIAK 69 #define PROP_INDEX_DIVESAKURU 69 -#define PROP_INDEX_DOGR 70 +#define PROP_INDEX_DIAK 69 #define PROP_INDEX_DOGRA 70 -#define PROP_INDEX_DUPL 71 +#define PROP_INDEX_DOGR 70 #define PROP_INDEX_DUPLOYAN 71 +#define PROP_INDEX_DUPL 71 #define PROP_INDEX_EGYPTIANHIEROGLYPHS 72 #define PROP_INDEX_EGYP 72 -#define PROP_INDEX_ELBA 73 #define PROP_INDEX_ELBASAN 73 -#define PROP_INDEX_ELYM 74 +#define PROP_INDEX_ELBA 73 #define PROP_INDEX_ELYMAIC 74 +#define PROP_INDEX_ELYM 74 #define PROP_INDEX_EMOJI 75 #define PROP_INDEX_EMOJICOMPONENT 76 #define PROP_INDEX_ECOMP 76 -#define PROP_INDEX_EMOD 77 #define PROP_INDEX_EMOJIMODIFIER 77 +#define PROP_INDEX_EMOD 77 #define PROP_INDEX_EMOJIMODIFIERBASE 78 #define PROP_INDEX_EBASE 78 #define PROP_INDEX_EMOJIPRESENTATION 79 #define PROP_INDEX_EPRES 79 #define PROP_INDEX_ETHIOPIC 80 #define PROP_INDEX_ETHI 80 -#define PROP_INDEX_EXTPICT 81 #define PROP_INDEX_EXTENDEDPICTOGRAPHIC 81 -#define PROP_INDEX_EXT 82 +#define PROP_INDEX_EXTPICT 81 #define PROP_INDEX_EXTENDER 82 -#define PROP_INDEX_GEORGIAN 83 -#define PROP_INDEX_GEOR 83 -#define PROP_INDEX_GLAG 84 -#define PROP_INDEX_GLAGOLITIC 84 -#define PROP_INDEX_GOTH 85 -#define PROP_INDEX_GOTHIC 85 -#define PROP_INDEX_GRAN 86 -#define PROP_INDEX_GRANTHA 86 -#define PROP_INDEX_GRBASE 87 -#define PROP_INDEX_GRAPHEMEBASE 87 -#define PROP_INDEX_GREXT 88 -#define PROP_INDEX_GRAPHEMEEXTEND 88 -#define PROP_INDEX_GRAPHEMELINK 89 -#define PROP_INDEX_GRLINK 89 -#define PROP_INDEX_GREEK 90 -#define PROP_INDEX_GREK 90 -#define PROP_INDEX_GUJARATI 91 -#define PROP_INDEX_GUJR 91 -#define PROP_INDEX_GUNJALAGONDI 92 -#define PROP_INDEX_GONG 92 -#define PROP_INDEX_GURU 93 -#define PROP_INDEX_GURMUKHI 93 -#define PROP_INDEX_HANI 94 -#define PROP_INDEX_HAN 94 -#define PROP_INDEX_HANG 95 -#define PROP_INDEX_HANGUL 95 -#define PROP_INDEX_HANIFIROHINGYA 96 -#define PROP_INDEX_ROHG 96 -#define PROP_INDEX_HANUNOO 97 -#define PROP_INDEX_HANO 97 -#define PROP_INDEX_HATR 98 -#define PROP_INDEX_HATRAN 98 -#define PROP_INDEX_HEBREW 99 -#define PROP_INDEX_HEBR 99 -#define PROP_INDEX_HEX 100 -#define PROP_INDEX_HEXDIGIT 100 -#define PROP_INDEX_HIRAGANA 101 -#define PROP_INDEX_HIRA 101 -#define PROP_INDEX_HYPHEN 102 -#define PROP_INDEX_IDSB 103 -#define PROP_INDEX_IDSBINARYOPERATOR 103 -#define PROP_INDEX_IDST 104 -#define PROP_INDEX_IDSTRINARYOPERATOR 104 -#define PROP_INDEX_IDCONTINUE 105 -#define PROP_INDEX_IDC 105 -#define PROP_INDEX_IDS 106 -#define PROP_INDEX_IDSTART 106 -#define PROP_INDEX_IDEO 107 -#define PROP_INDEX_IDEOGRAPHIC 107 -#define PROP_INDEX_ARMI 108 -#define PROP_INDEX_IMPERIALARAMAIC 108 -#define PROP_INDEX_ZINH 109 -#define PROP_INDEX_INHERITED 109 -#define PROP_INDEX_QAAI 109 -#define PROP_INDEX_PHLI 110 -#define PROP_INDEX_INSCRIPTIONALPAHLAVI 110 -#define PROP_INDEX_INSCRIPTIONALPARTHIAN 111 -#define PROP_INDEX_PRTI 111 -#define PROP_INDEX_JAVANESE 112 -#define PROP_INDEX_JAVA 112 -#define PROP_INDEX_JOINC 113 -#define PROP_INDEX_JOINCONTROL 113 -#define PROP_INDEX_KAITHI 114 -#define PROP_INDEX_KTHI 114 -#define PROP_INDEX_KNDA 115 -#define PROP_INDEX_KANNADA 115 -#define PROP_INDEX_KATAKANA 116 -#define PROP_INDEX_KANA 116 -#define PROP_INDEX_KAYAHLI 117 -#define PROP_INDEX_KALI 117 -#define PROP_INDEX_KHAROSHTHI 118 -#define PROP_INDEX_KHAR 118 -#define PROP_INDEX_KITS 119 -#define PROP_INDEX_KHITANSMALLSCRIPT 119 -#define PROP_INDEX_KHMR 120 -#define PROP_INDEX_KHMER 120 -#define PROP_INDEX_KHOJ 121 -#define PROP_INDEX_KHOJKI 121 -#define PROP_INDEX_KHUDAWADI 122 -#define PROP_INDEX_SIND 122 -#define PROP_INDEX_L 123 -#define PROP_INDEX_LETTER 123 -#define PROP_INDEX_LC 124 -#define PROP_INDEX_CASEDLETTER 124 -#define PROP_INDEX_LAO 125 -#define PROP_INDEX_LAOO 125 -#define PROP_INDEX_LATN 126 -#define PROP_INDEX_LATIN 126 -#define PROP_INDEX_LEPC 127 -#define PROP_INDEX_LEPCHA 127 -#define PROP_INDEX_LIMBU 128 -#define PROP_INDEX_LIMB 128 -#define PROP_INDEX_LINA 129 -#define PROP_INDEX_LINEARA 129 -#define PROP_INDEX_LINB 130 -#define PROP_INDEX_LINEARB 130 -#define PROP_INDEX_LISU 131 -#define PROP_INDEX_LOWERCASELETTER 132 -#define PROP_INDEX_LL 132 -#define PROP_INDEX_LM 133 -#define PROP_INDEX_MODIFIERLETTER 133 -#define PROP_INDEX_LO 134 -#define PROP_INDEX_OTHERLETTER 134 -#define PROP_INDEX_LOGICALORDEREXCEPTION 135 -#define PROP_INDEX_LOE 135 -#define PROP_INDEX_LOWERCASE 136 -#define PROP_INDEX_LT 137 -#define PROP_INDEX_TITLECASELETTER 137 -#define PROP_INDEX_UPPERCASELETTER 138 -#define PROP_INDEX_LU 138 -#define PROP_INDEX_LYCI 139 -#define PROP_INDEX_LYCIAN 139 -#define PROP_INDEX_LYDI 140 -#define PROP_INDEX_LYDIAN 140 -#define PROP_INDEX_M 141 -#define PROP_INDEX_COMBININGMARK 141 -#define PROP_INDEX_MARK 141 -#define PROP_INDEX_MAHJ 142 -#define PROP_INDEX_MAHAJANI 142 -#define PROP_INDEX_MAKASAR 143 -#define PROP_INDEX_MAKA 143 -#define PROP_INDEX_MALAYALAM 144 -#define PROP_INDEX_MLYM 144 -#define PROP_INDEX_MAND 145 -#define PROP_INDEX_MANDAIC 145 -#define PROP_INDEX_MANI 146 -#define PROP_INDEX_MANICHAEAN 146 -#define PROP_INDEX_MARC 147 -#define PROP_INDEX_MARCHEN 147 -#define PROP_INDEX_MASARAMGONDI 148 -#define PROP_INDEX_GONM 148 -#define PROP_INDEX_MATH 149 -#define PROP_INDEX_MC 150 -#define PROP_INDEX_SPACINGMARK 150 -#define PROP_INDEX_ENCLOSINGMARK 151 -#define PROP_INDEX_ME 151 -#define PROP_INDEX_MEDEFAIDRIN 152 -#define PROP_INDEX_MEDF 152 -#define PROP_INDEX_MEETEIMAYEK 153 -#define PROP_INDEX_MTEI 153 -#define PROP_INDEX_MENDEKIKAKUI 154 -#define PROP_INDEX_MEND 154 -#define PROP_INDEX_MEROITICCURSIVE 155 -#define PROP_INDEX_MERC 155 -#define PROP_INDEX_MEROITICHIEROGLYPHS 156 -#define PROP_INDEX_MERO 156 -#define PROP_INDEX_PLRD 157 -#define PROP_INDEX_MIAO 157 -#define PROP_INDEX_MN 158 -#define PROP_INDEX_NONSPACINGMARK 158 -#define PROP_INDEX_MODI 159 -#define PROP_INDEX_MONGOLIAN 160 -#define PROP_INDEX_MONG 160 -#define PROP_INDEX_MRO 161 -#define PROP_INDEX_MROO 161 -#define PROP_INDEX_MULT 162 -#define PROP_INDEX_MULTANI 162 -#define PROP_INDEX_MYANMAR 163 -#define PROP_INDEX_MYMR 163 -#define PROP_INDEX_NUMBER 164 -#define PROP_INDEX_N 164 -#define PROP_INDEX_NABATAEAN 165 -#define PROP_INDEX_NBAT 165 -#define PROP_INDEX_NAND 166 -#define PROP_INDEX_NANDINAGARI 166 -#define PROP_INDEX_DECIMALNUMBER 167 -#define PROP_INDEX_ND 167 -#define PROP_INDEX_TALU 168 -#define PROP_INDEX_NEWTAILUE 168 -#define PROP_INDEX_NEWA 169 -#define PROP_INDEX_NKO 170 -#define PROP_INDEX_NKOO 170 -#define PROP_INDEX_LETTERNUMBER 171 -#define PROP_INDEX_NL 171 -#define PROP_INDEX_OTHERNUMBER 172 -#define PROP_INDEX_NO 172 -#define PROP_INDEX_NONCHARACTERCODEPOINT 173 -#define PROP_INDEX_NCHAR 173 -#define PROP_INDEX_NSHU 174 -#define PROP_INDEX_NUSHU 174 -#define PROP_INDEX_HMNP 175 -#define PROP_INDEX_NYIAKENGPUACHUEHMONG 175 -#define PROP_INDEX_OGHAM 176 -#define PROP_INDEX_OGAM 176 -#define PROP_INDEX_OLCK 177 -#define PROP_INDEX_OLCHIKI 177 -#define PROP_INDEX_HUNG 178 -#define PROP_INDEX_OLDHUNGARIAN 178 -#define PROP_INDEX_ITAL 179 -#define PROP_INDEX_OLDITALIC 179 -#define PROP_INDEX_NARB 180 -#define PROP_INDEX_OLDNORTHARABIAN 180 -#define PROP_INDEX_OLDPERMIC 181 -#define PROP_INDEX_PERM 181 -#define PROP_INDEX_OLDPERSIAN 182 -#define PROP_INDEX_XPEO 182 -#define PROP_INDEX_SOGO 183 -#define PROP_INDEX_OLDSOGDIAN 183 -#define PROP_INDEX_SARB 184 -#define PROP_INDEX_OLDSOUTHARABIAN 184 -#define PROP_INDEX_OLDTURKIC 185 -#define PROP_INDEX_ORKH 185 -#define PROP_INDEX_OUGR 186 -#define PROP_INDEX_OLDUYGHUR 186 -#define PROP_INDEX_ORYA 187 -#define PROP_INDEX_ORIYA 187 -#define PROP_INDEX_OSAGE 188 -#define PROP_INDEX_OSGE 188 -#define PROP_INDEX_OSMANYA 189 -#define PROP_INDEX_OSMA 189 -#define PROP_INDEX_OTHERALPHABETIC 190 -#define PROP_INDEX_OALPHA 190 -#define PROP_INDEX_ODI 191 -#define PROP_INDEX_OTHERDEFAULTIGNORABLECODEPOINT 191 -#define PROP_INDEX_OGREXT 192 -#define PROP_INDEX_OTHERGRAPHEMEEXTEND 192 -#define PROP_INDEX_OIDC 193 -#define PROP_INDEX_OTHERIDCONTINUE 193 -#define PROP_INDEX_OTHERIDSTART 194 -#define PROP_INDEX_OIDS 194 -#define PROP_INDEX_OTHERLOWERCASE 195 -#define PROP_INDEX_OLOWER 195 -#define PROP_INDEX_OTHERMATH 196 -#define PROP_INDEX_OMATH 196 -#define PROP_INDEX_OTHERUPPERCASE 197 -#define PROP_INDEX_OUPPER 197 -#define PROP_INDEX_P 198 -#define PROP_INDEX_PUNCTUATION 198 -#define PROP_INDEX_PAHAWHHMONG 199 -#define PROP_INDEX_HMNG 199 -#define PROP_INDEX_PALMYRENE 200 -#define PROP_INDEX_PALM 200 -#define PROP_INDEX_PATTERNSYNTAX 201 -#define PROP_INDEX_PATSYN 201 -#define PROP_INDEX_PATWS 202 -#define PROP_INDEX_PATTERNWHITESPACE 202 -#define PROP_INDEX_PAUCINHAU 203 -#define PROP_INDEX_PAUC 203 -#define PROP_INDEX_CONNECTORPUNCTUATION 204 -#define PROP_INDEX_PC 204 -#define PROP_INDEX_DASHPUNCTUATION 205 -#define PROP_INDEX_PD 205 -#define PROP_INDEX_PE 206 -#define PROP_INDEX_CLOSEPUNCTUATION 206 -#define PROP_INDEX_FINALPUNCTUATION 207 -#define PROP_INDEX_PF 207 -#define PROP_INDEX_PHAG 208 -#define PROP_INDEX_PHAGSPA 208 -#define PROP_INDEX_PHOENICIAN 209 -#define PROP_INDEX_PHNX 209 -#define PROP_INDEX_PI 210 -#define PROP_INDEX_INITIALPUNCTUATION 210 -#define PROP_INDEX_OTHERPUNCTUATION 211 -#define PROP_INDEX_PO 211 -#define PROP_INDEX_PREPENDEDCONCATENATIONMARK 212 -#define PROP_INDEX_PCM 212 -#define PROP_INDEX_PS 213 -#define PROP_INDEX_OPENPUNCTUATION 213 -#define PROP_INDEX_PHLP 214 -#define PROP_INDEX_PSALTERPAHLAVI 214 -#define PROP_INDEX_QUOTATIONMARK 215 -#define PROP_INDEX_QMARK 215 -#define PROP_INDEX_RADICAL 216 -#define PROP_INDEX_RI 217 -#define PROP_INDEX_REGIONALINDICATOR 217 -#define PROP_INDEX_REJANG 218 -#define PROP_INDEX_RJNG 218 -#define PROP_INDEX_RUNIC 219 -#define PROP_INDEX_RUNR 219 -#define PROP_INDEX_S 220 -#define PROP_INDEX_SYMBOL 220 -#define PROP_INDEX_SAMARITAN 221 -#define PROP_INDEX_SAMR 221 -#define PROP_INDEX_SAURASHTRA 222 -#define PROP_INDEX_SAUR 222 -#define PROP_INDEX_SC 223 -#define PROP_INDEX_CURRENCYSYMBOL 223 -#define PROP_INDEX_SENTENCETERMINAL 224 -#define PROP_INDEX_STERM 224 -#define PROP_INDEX_SHARADA 225 -#define PROP_INDEX_SHRD 225 -#define PROP_INDEX_SHAVIAN 226 -#define PROP_INDEX_SHAW 226 -#define PROP_INDEX_SIDDHAM 227 -#define PROP_INDEX_SIDD 227 -#define PROP_INDEX_SIGNWRITING 228 -#define PROP_INDEX_SGNW 228 -#define PROP_INDEX_SINH 229 -#define PROP_INDEX_SINHALA 229 -#define PROP_INDEX_SK 230 -#define PROP_INDEX_MODIFIERSYMBOL 230 -#define PROP_INDEX_MATHSYMBOL 231 -#define PROP_INDEX_SM 231 -#define PROP_INDEX_SO 232 -#define PROP_INDEX_OTHERSYMBOL 232 -#define PROP_INDEX_SD 233 -#define PROP_INDEX_SOFTDOTTED 233 -#define PROP_INDEX_SOGD 234 -#define PROP_INDEX_SOGDIAN 234 -#define PROP_INDEX_SORASOMPENG 235 -#define PROP_INDEX_SORA 235 -#define PROP_INDEX_SOYO 236 -#define PROP_INDEX_SOYOMBO 236 -#define PROP_INDEX_SUND 237 -#define PROP_INDEX_SUNDANESE 237 -#define PROP_INDEX_SYLO 238 -#define PROP_INDEX_SYLOTINAGRI 238 -#define PROP_INDEX_SYRC 239 -#define PROP_INDEX_SYRIAC 239 -#define PROP_INDEX_TGLG 240 -#define PROP_INDEX_TAGALOG 240 -#define PROP_INDEX_TAGBANWA 241 -#define PROP_INDEX_TAGB 241 -#define PROP_INDEX_TAILE 242 -#define PROP_INDEX_TALE 242 -#define PROP_INDEX_TAITHAM 243 -#define PROP_INDEX_LANA 243 -#define PROP_INDEX_TAIVIET 244 -#define PROP_INDEX_TAVT 244 -#define PROP_INDEX_TAKRI 245 -#define PROP_INDEX_TAKR 245 -#define PROP_INDEX_TAMIL 246 -#define PROP_INDEX_TAML 246 -#define PROP_INDEX_TANGSA 247 -#define PROP_INDEX_TNSA 247 -#define PROP_INDEX_TANG 248 -#define PROP_INDEX_TANGUT 248 -#define PROP_INDEX_TELUGU 249 -#define PROP_INDEX_TELU 249 -#define PROP_INDEX_TERM 250 -#define PROP_INDEX_TERMINALPUNCTUATION 250 -#define PROP_INDEX_THAA 251 -#define PROP_INDEX_THAANA 251 -#define PROP_INDEX_THAI 252 -#define PROP_INDEX_TIBT 253 -#define PROP_INDEX_TIBETAN 253 -#define PROP_INDEX_TFNG 254 -#define PROP_INDEX_TIFINAGH 254 -#define PROP_INDEX_TIRHUTA 255 -#define PROP_INDEX_TIRH 255 -#define PROP_INDEX_TOTO 256 -#define PROP_INDEX_UGAR 257 -#define PROP_INDEX_UGARITIC 257 -#define PROP_INDEX_UNIFIEDIDEOGRAPH 258 -#define PROP_INDEX_UIDEO 258 -#define PROP_INDEX_ZZZZ 259 -#define PROP_INDEX_UNKNOWN 259 -#define PROP_INDEX_UPPERCASE 260 -#define PROP_INDEX_VAII 261 -#define PROP_INDEX_VAI 261 -#define PROP_INDEX_VARIATIONSELECTOR 262 -#define PROP_INDEX_VS 262 -#define PROP_INDEX_VITH 263 -#define PROP_INDEX_VITHKUQI 263 -#define PROP_INDEX_WCHO 264 -#define PROP_INDEX_WANCHO 264 -#define PROP_INDEX_WARANGCITI 265 -#define PROP_INDEX_WARA 265 -#define PROP_INDEX_WHITESPACE 266 -#define PROP_INDEX_WSPACE 266 -#define PROP_INDEX_XIDC 267 -#define PROP_INDEX_XIDCONTINUE 267 -#define PROP_INDEX_XIDS 268 -#define PROP_INDEX_XIDSTART 268 -#define PROP_INDEX_YEZIDI 269 -#define PROP_INDEX_YEZI 269 -#define PROP_INDEX_YI 270 -#define PROP_INDEX_YIII 270 -#define PROP_INDEX_SEPARATOR 271 -#define PROP_INDEX_Z 271 -#define PROP_INDEX_ZANABAZARSQUARE 272 -#define PROP_INDEX_ZANB 272 -#define PROP_INDEX_ZL 273 -#define PROP_INDEX_LINESEPARATOR 273 -#define PROP_INDEX_ZP 274 -#define PROP_INDEX_PARAGRAPHSEPARATOR 274 -#define PROP_INDEX_ZS 275 -#define PROP_INDEX_SPACESEPARATOR 275 -#define PROP_INDEX_INBASICLATIN 276 -#define PROP_INDEX_INLATIN1SUPPLEMENT 277 -#define PROP_INDEX_INLATINEXTENDEDA 278 -#define PROP_INDEX_INLATINEXTENDEDB 279 -#define PROP_INDEX_INIPAEXTENSIONS 280 -#define PROP_INDEX_INSPACINGMODIFIERLETTERS 281 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKS 282 -#define PROP_INDEX_INGREEKANDCOPTIC 283 -#define PROP_INDEX_INCYRILLIC 284 -#define PROP_INDEX_INCYRILLICSUPPLEMENT 285 -#define PROP_INDEX_INARMENIAN 286 -#define PROP_INDEX_INHEBREW 287 -#define PROP_INDEX_INARABIC 288 -#define PROP_INDEX_INSYRIAC 289 -#define PROP_INDEX_INARABICSUPPLEMENT 290 -#define PROP_INDEX_INTHAANA 291 -#define PROP_INDEX_INNKO 292 -#define PROP_INDEX_INSAMARITAN 293 -#define PROP_INDEX_INMANDAIC 294 -#define PROP_INDEX_INSYRIACSUPPLEMENT 295 -#define PROP_INDEX_INARABICEXTENDEDB 296 -#define PROP_INDEX_INARABICEXTENDEDA 297 -#define PROP_INDEX_INDEVANAGARI 298 -#define PROP_INDEX_INBENGALI 299 -#define PROP_INDEX_INGURMUKHI 300 -#define PROP_INDEX_INGUJARATI 301 -#define PROP_INDEX_INORIYA 302 -#define PROP_INDEX_INTAMIL 303 -#define PROP_INDEX_INTELUGU 304 -#define PROP_INDEX_INKANNADA 305 -#define PROP_INDEX_INMALAYALAM 306 -#define PROP_INDEX_INSINHALA 307 -#define PROP_INDEX_INTHAI 308 -#define PROP_INDEX_INLAO 309 -#define PROP_INDEX_INTIBETAN 310 -#define PROP_INDEX_INMYANMAR 311 -#define PROP_INDEX_INGEORGIAN 312 -#define PROP_INDEX_INHANGULJAMO 313 -#define PROP_INDEX_INETHIOPIC 314 -#define PROP_INDEX_INETHIOPICSUPPLEMENT 315 -#define PROP_INDEX_INCHEROKEE 316 -#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICS 317 -#define PROP_INDEX_INOGHAM 318 -#define PROP_INDEX_INRUNIC 319 -#define PROP_INDEX_INTAGALOG 320 -#define PROP_INDEX_INHANUNOO 321 -#define PROP_INDEX_INBUHID 322 -#define PROP_INDEX_INTAGBANWA 323 -#define PROP_INDEX_INKHMER 324 -#define PROP_INDEX_INMONGOLIAN 325 -#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED 326 -#define PROP_INDEX_INLIMBU 327 -#define PROP_INDEX_INTAILE 328 -#define PROP_INDEX_INNEWTAILUE 329 -#define PROP_INDEX_INKHMERSYMBOLS 330 -#define PROP_INDEX_INBUGINESE 331 -#define PROP_INDEX_INTAITHAM 332 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKSEXTENDED 333 -#define PROP_INDEX_INBALINESE 334 -#define PROP_INDEX_INSUNDANESE 335 -#define PROP_INDEX_INBATAK 336 -#define PROP_INDEX_INLEPCHA 337 -#define PROP_INDEX_INOLCHIKI 338 -#define PROP_INDEX_INCYRILLICEXTENDEDC 339 -#define PROP_INDEX_INGEORGIANEXTENDED 340 -#define PROP_INDEX_INSUNDANESESUPPLEMENT 341 -#define PROP_INDEX_INVEDICEXTENSIONS 342 -#define PROP_INDEX_INPHONETICEXTENSIONS 343 -#define PROP_INDEX_INPHONETICEXTENSIONSSUPPLEMENT 344 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKSSUPPLEMENT 345 -#define PROP_INDEX_INLATINEXTENDEDADDITIONAL 346 -#define PROP_INDEX_INGREEKEXTENDED 347 -#define PROP_INDEX_INGENERALPUNCTUATION 348 -#define PROP_INDEX_INSUPERSCRIPTSANDSUBSCRIPTS 349 -#define PROP_INDEX_INCURRENCYSYMBOLS 350 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKSFORSYMBOLS 351 -#define PROP_INDEX_INLETTERLIKESYMBOLS 352 -#define PROP_INDEX_INNUMBERFORMS 353 -#define PROP_INDEX_INARROWS 354 -#define PROP_INDEX_INMATHEMATICALOPERATORS 355 -#define PROP_INDEX_INMISCELLANEOUSTECHNICAL 356 -#define PROP_INDEX_INCONTROLPICTURES 357 -#define PROP_INDEX_INOPTICALCHARACTERRECOGNITION 358 -#define PROP_INDEX_INENCLOSEDALPHANUMERICS 359 -#define PROP_INDEX_INBOXDRAWING 360 -#define PROP_INDEX_INBLOCKELEMENTS 361 -#define PROP_INDEX_INGEOMETRICSHAPES 362 -#define PROP_INDEX_INMISCELLANEOUSSYMBOLS 363 -#define PROP_INDEX_INDINGBATS 364 -#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSA 365 -#define PROP_INDEX_INSUPPLEMENTALARROWSA 366 -#define PROP_INDEX_INBRAILLEPATTERNS 367 -#define PROP_INDEX_INSUPPLEMENTALARROWSB 368 -#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSB 369 -#define PROP_INDEX_INSUPPLEMENTALMATHEMATICALOPERATORS 370 -#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDARROWS 371 -#define PROP_INDEX_INGLAGOLITIC 372 -#define PROP_INDEX_INLATINEXTENDEDC 373 -#define PROP_INDEX_INCOPTIC 374 -#define PROP_INDEX_INGEORGIANSUPPLEMENT 375 -#define PROP_INDEX_INTIFINAGH 376 -#define PROP_INDEX_INETHIOPICEXTENDED 377 -#define PROP_INDEX_INCYRILLICEXTENDEDA 378 -#define PROP_INDEX_INSUPPLEMENTALPUNCTUATION 379 -#define PROP_INDEX_INCJKRADICALSSUPPLEMENT 380 -#define PROP_INDEX_INKANGXIRADICALS 381 -#define PROP_INDEX_INIDEOGRAPHICDESCRIPTIONCHARACTERS 382 -#define PROP_INDEX_INCJKSYMBOLSANDPUNCTUATION 383 -#define PROP_INDEX_INHIRAGANA 384 -#define PROP_INDEX_INKATAKANA 385 -#define PROP_INDEX_INBOPOMOFO 386 -#define PROP_INDEX_INHANGULCOMPATIBILITYJAMO 387 -#define PROP_INDEX_INKANBUN 388 -#define PROP_INDEX_INBOPOMOFOEXTENDED 389 -#define PROP_INDEX_INCJKSTROKES 390 -#define PROP_INDEX_INKATAKANAPHONETICEXTENSIONS 391 -#define PROP_INDEX_INENCLOSEDCJKLETTERSANDMONTHS 392 -#define PROP_INDEX_INCJKCOMPATIBILITY 393 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONA 394 -#define PROP_INDEX_INYIJINGHEXAGRAMSYMBOLS 395 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHS 396 -#define PROP_INDEX_INYISYLLABLES 397 -#define PROP_INDEX_INYIRADICALS 398 -#define PROP_INDEX_INLISU 399 -#define PROP_INDEX_INVAI 400 -#define PROP_INDEX_INCYRILLICEXTENDEDB 401 -#define PROP_INDEX_INBAMUM 402 -#define PROP_INDEX_INMODIFIERTONELETTERS 403 -#define PROP_INDEX_INLATINEXTENDEDD 404 -#define PROP_INDEX_INSYLOTINAGRI 405 -#define PROP_INDEX_INCOMMONINDICNUMBERFORMS 406 -#define PROP_INDEX_INPHAGSPA 407 -#define PROP_INDEX_INSAURASHTRA 408 -#define PROP_INDEX_INDEVANAGARIEXTENDED 409 -#define PROP_INDEX_INKAYAHLI 410 -#define PROP_INDEX_INREJANG 411 -#define PROP_INDEX_INHANGULJAMOEXTENDEDA 412 -#define PROP_INDEX_INJAVANESE 413 -#define PROP_INDEX_INMYANMAREXTENDEDB 414 -#define PROP_INDEX_INCHAM 415 -#define PROP_INDEX_INMYANMAREXTENDEDA 416 -#define PROP_INDEX_INTAIVIET 417 -#define PROP_INDEX_INMEETEIMAYEKEXTENSIONS 418 -#define PROP_INDEX_INETHIOPICEXTENDEDA 419 -#define PROP_INDEX_INLATINEXTENDEDE 420 -#define PROP_INDEX_INCHEROKEESUPPLEMENT 421 -#define PROP_INDEX_INMEETEIMAYEK 422 -#define PROP_INDEX_INHANGULSYLLABLES 423 -#define PROP_INDEX_INHANGULJAMOEXTENDEDB 424 -#define PROP_INDEX_INHIGHSURROGATES 425 -#define PROP_INDEX_INHIGHPRIVATEUSESURROGATES 426 -#define PROP_INDEX_INLOWSURROGATES 427 -#define PROP_INDEX_INPRIVATEUSEAREA 428 -#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHS 429 -#define PROP_INDEX_INALPHABETICPRESENTATIONFORMS 430 -#define PROP_INDEX_INARABICPRESENTATIONFORMSA 431 -#define PROP_INDEX_INVARIATIONSELECTORS 432 -#define PROP_INDEX_INVERTICALFORMS 433 -#define PROP_INDEX_INCOMBININGHALFMARKS 434 -#define PROP_INDEX_INCJKCOMPATIBILITYFORMS 435 -#define PROP_INDEX_INSMALLFORMVARIANTS 436 -#define PROP_INDEX_INARABICPRESENTATIONFORMSB 437 -#define PROP_INDEX_INHALFWIDTHANDFULLWIDTHFORMS 438 -#define PROP_INDEX_INSPECIALS 439 -#define PROP_INDEX_INLINEARBSYLLABARY 440 -#define PROP_INDEX_INLINEARBIDEOGRAMS 441 -#define PROP_INDEX_INAEGEANNUMBERS 442 -#define PROP_INDEX_INANCIENTGREEKNUMBERS 443 -#define PROP_INDEX_INANCIENTSYMBOLS 444 -#define PROP_INDEX_INPHAISTOSDISC 445 -#define PROP_INDEX_INLYCIAN 446 -#define PROP_INDEX_INCARIAN 447 -#define PROP_INDEX_INCOPTICEPACTNUMBERS 448 -#define PROP_INDEX_INOLDITALIC 449 -#define PROP_INDEX_INGOTHIC 450 -#define PROP_INDEX_INOLDPERMIC 451 -#define PROP_INDEX_INUGARITIC 452 -#define PROP_INDEX_INOLDPERSIAN 453 -#define PROP_INDEX_INDESERET 454 -#define PROP_INDEX_INSHAVIAN 455 -#define PROP_INDEX_INOSMANYA 456 -#define PROP_INDEX_INOSAGE 457 -#define PROP_INDEX_INELBASAN 458 -#define PROP_INDEX_INCAUCASIANALBANIAN 459 -#define PROP_INDEX_INVITHKUQI 460 -#define PROP_INDEX_INLINEARA 461 -#define PROP_INDEX_INLATINEXTENDEDF 462 -#define PROP_INDEX_INCYPRIOTSYLLABARY 463 -#define PROP_INDEX_INIMPERIALARAMAIC 464 -#define PROP_INDEX_INPALMYRENE 465 -#define PROP_INDEX_INNABATAEAN 466 -#define PROP_INDEX_INHATRAN 467 -#define PROP_INDEX_INPHOENICIAN 468 -#define PROP_INDEX_INLYDIAN 469 -#define PROP_INDEX_INMEROITICHIEROGLYPHS 470 -#define PROP_INDEX_INMEROITICCURSIVE 471 -#define PROP_INDEX_INKHAROSHTHI 472 -#define PROP_INDEX_INOLDSOUTHARABIAN 473 -#define PROP_INDEX_INOLDNORTHARABIAN 474 -#define PROP_INDEX_INMANICHAEAN 475 -#define PROP_INDEX_INAVESTAN 476 -#define PROP_INDEX_ININSCRIPTIONALPARTHIAN 477 -#define PROP_INDEX_ININSCRIPTIONALPAHLAVI 478 -#define PROP_INDEX_INPSALTERPAHLAVI 479 -#define PROP_INDEX_INOLDTURKIC 480 -#define PROP_INDEX_INOLDHUNGARIAN 481 -#define PROP_INDEX_INHANIFIROHINGYA 482 -#define PROP_INDEX_INRUMINUMERALSYMBOLS 483 -#define PROP_INDEX_INYEZIDI 484 -#define PROP_INDEX_INOLDSOGDIAN 485 -#define PROP_INDEX_INSOGDIAN 486 -#define PROP_INDEX_INOLDUYGHUR 487 -#define PROP_INDEX_INCHORASMIAN 488 -#define PROP_INDEX_INELYMAIC 489 -#define PROP_INDEX_INBRAHMI 490 -#define PROP_INDEX_INKAITHI 491 -#define PROP_INDEX_INSORASOMPENG 492 -#define PROP_INDEX_INCHAKMA 493 -#define PROP_INDEX_INMAHAJANI 494 -#define PROP_INDEX_INSHARADA 495 -#define PROP_INDEX_INSINHALAARCHAICNUMBERS 496 -#define PROP_INDEX_INKHOJKI 497 -#define PROP_INDEX_INMULTANI 498 -#define PROP_INDEX_INKHUDAWADI 499 -#define PROP_INDEX_INGRANTHA 500 -#define PROP_INDEX_INNEWA 501 -#define PROP_INDEX_INTIRHUTA 502 -#define PROP_INDEX_INSIDDHAM 503 -#define PROP_INDEX_INMODI 504 -#define PROP_INDEX_INMONGOLIANSUPPLEMENT 505 -#define PROP_INDEX_INTAKRI 506 -#define PROP_INDEX_INAHOM 507 -#define PROP_INDEX_INDOGRA 508 -#define PROP_INDEX_INWARANGCITI 509 -#define PROP_INDEX_INDIVESAKURU 510 -#define PROP_INDEX_INNANDINAGARI 511 -#define PROP_INDEX_INZANABAZARSQUARE 512 -#define PROP_INDEX_INSOYOMBO 513 -#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDEDA 514 -#define PROP_INDEX_INPAUCINHAU 515 -#define PROP_INDEX_INBHAIKSUKI 516 -#define PROP_INDEX_INMARCHEN 517 -#define PROP_INDEX_INMASARAMGONDI 518 -#define PROP_INDEX_INGUNJALAGONDI 519 -#define PROP_INDEX_INMAKASAR 520 -#define PROP_INDEX_INLISUSUPPLEMENT 521 -#define PROP_INDEX_INTAMILSUPPLEMENT 522 -#define PROP_INDEX_INCUNEIFORM 523 -#define PROP_INDEX_INCUNEIFORMNUMBERSANDPUNCTUATION 524 -#define PROP_INDEX_INEARLYDYNASTICCUNEIFORM 525 -#define PROP_INDEX_INCYPROMINOAN 526 -#define PROP_INDEX_INEGYPTIANHIEROGLYPHS 527 -#define PROP_INDEX_INEGYPTIANHIEROGLYPHFORMATCONTROLS 528 -#define PROP_INDEX_INANATOLIANHIEROGLYPHS 529 -#define PROP_INDEX_INBAMUMSUPPLEMENT 530 -#define PROP_INDEX_INMRO 531 -#define PROP_INDEX_INTANGSA 532 -#define PROP_INDEX_INBASSAVAH 533 -#define PROP_INDEX_INPAHAWHHMONG 534 -#define PROP_INDEX_INMEDEFAIDRIN 535 -#define PROP_INDEX_INMIAO 536 -#define PROP_INDEX_INIDEOGRAPHICSYMBOLSANDPUNCTUATION 537 -#define PROP_INDEX_INTANGUT 538 -#define PROP_INDEX_INTANGUTCOMPONENTS 539 -#define PROP_INDEX_INKHITANSMALLSCRIPT 540 -#define PROP_INDEX_INTANGUTSUPPLEMENT 541 -#define PROP_INDEX_INKANAEXTENDEDB 542 -#define PROP_INDEX_INKANASUPPLEMENT 543 -#define PROP_INDEX_INKANAEXTENDEDA 544 -#define PROP_INDEX_INSMALLKANAEXTENSION 545 -#define PROP_INDEX_INNUSHU 546 -#define PROP_INDEX_INDUPLOYAN 547 -#define PROP_INDEX_INSHORTHANDFORMATCONTROLS 548 -#define PROP_INDEX_INZNAMENNYMUSICALNOTATION 549 -#define PROP_INDEX_INBYZANTINEMUSICALSYMBOLS 550 -#define PROP_INDEX_INMUSICALSYMBOLS 551 -#define PROP_INDEX_INANCIENTGREEKMUSICALNOTATION 552 -#define PROP_INDEX_INMAYANNUMERALS 553 -#define PROP_INDEX_INTAIXUANJINGSYMBOLS 554 -#define PROP_INDEX_INCOUNTINGRODNUMERALS 555 -#define PROP_INDEX_INMATHEMATICALALPHANUMERICSYMBOLS 556 -#define PROP_INDEX_INSUTTONSIGNWRITING 557 -#define PROP_INDEX_INLATINEXTENDEDG 558 -#define PROP_INDEX_INGLAGOLITICSUPPLEMENT 559 -#define PROP_INDEX_INNYIAKENGPUACHUEHMONG 560 -#define PROP_INDEX_INTOTO 561 -#define PROP_INDEX_INWANCHO 562 -#define PROP_INDEX_INETHIOPICEXTENDEDB 563 -#define PROP_INDEX_INMENDEKIKAKUI 564 -#define PROP_INDEX_INADLAM 565 -#define PROP_INDEX_ININDICSIYAQNUMBERS 566 -#define PROP_INDEX_INOTTOMANSIYAQNUMBERS 567 -#define PROP_INDEX_INARABICMATHEMATICALALPHABETICSYMBOLS 568 -#define PROP_INDEX_INMAHJONGTILES 569 -#define PROP_INDEX_INDOMINOTILES 570 -#define PROP_INDEX_INPLAYINGCARDS 571 -#define PROP_INDEX_INENCLOSEDALPHANUMERICSUPPLEMENT 572 -#define PROP_INDEX_INENCLOSEDIDEOGRAPHICSUPPLEMENT 573 -#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDPICTOGRAPHS 574 -#define PROP_INDEX_INEMOTICONS 575 -#define PROP_INDEX_INORNAMENTALDINGBATS 576 -#define PROP_INDEX_INTRANSPORTANDMAPSYMBOLS 577 -#define PROP_INDEX_INALCHEMICALSYMBOLS 578 -#define PROP_INDEX_INGEOMETRICSHAPESEXTENDED 579 -#define PROP_INDEX_INSUPPLEMENTALARROWSC 580 -#define PROP_INDEX_INSUPPLEMENTALSYMBOLSANDPICTOGRAPHS 581 -#define PROP_INDEX_INCHESSSYMBOLS 582 -#define PROP_INDEX_INSYMBOLSANDPICTOGRAPHSEXTENDEDA 583 -#define PROP_INDEX_INSYMBOLSFORLEGACYCOMPUTING 584 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONB 585 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONC 586 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIOND 587 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONE 588 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONF 589 -#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT 590 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONG 591 -#define PROP_INDEX_INTAGS 592 -#define PROP_INDEX_INVARIATIONSELECTORSSUPPLEMENT 593 -#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAA 594 -#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAB 595 -#define PROP_INDEX_INNOBLOCK 596 +#define PROP_INDEX_EXT 82 +#define PROP_INDEX_GARAY 83 +#define PROP_INDEX_GARA 83 +#define PROP_INDEX_GEORGIAN 84 +#define PROP_INDEX_GEOR 84 +#define PROP_INDEX_GLAGOLITIC 85 +#define PROP_INDEX_GLAG 85 +#define PROP_INDEX_GOTHIC 86 +#define PROP_INDEX_GOTH 86 +#define PROP_INDEX_GRANTHA 87 +#define PROP_INDEX_GRAN 87 +#define PROP_INDEX_GRAPHEMEBASE 88 +#define PROP_INDEX_GRBASE 88 +#define PROP_INDEX_GRAPHEMEEXTEND 89 +#define PROP_INDEX_GREXT 89 +#define PROP_INDEX_GRAPHEMELINK 90 +#define PROP_INDEX_GRLINK 90 +#define PROP_INDEX_GREEK 91 +#define PROP_INDEX_GREK 91 +#define PROP_INDEX_GUJARATI 92 +#define PROP_INDEX_GUJR 92 +#define PROP_INDEX_GUNJALAGONDI 93 +#define PROP_INDEX_GONG 93 +#define PROP_INDEX_GURMUKHI 94 +#define PROP_INDEX_GURU 94 +#define PROP_INDEX_GURUNGKHEMA 95 +#define PROP_INDEX_GUKH 95 +#define PROP_INDEX_HAN 96 +#define PROP_INDEX_HANI 96 +#define PROP_INDEX_HANGUL 97 +#define PROP_INDEX_HANG 97 +#define PROP_INDEX_HANIFIROHINGYA 98 +#define PROP_INDEX_ROHG 98 +#define PROP_INDEX_HANUNOO 99 +#define PROP_INDEX_HANO 99 +#define PROP_INDEX_HATRAN 100 +#define PROP_INDEX_HATR 100 +#define PROP_INDEX_HEBREW 101 +#define PROP_INDEX_HEBR 101 +#define PROP_INDEX_HEXDIGIT 102 +#define PROP_INDEX_HEX 102 +#define PROP_INDEX_HIRAGANA 103 +#define PROP_INDEX_HIRA 103 +#define PROP_INDEX_HYPHEN 104 +#define PROP_INDEX_IDSBINARYOPERATOR 105 +#define PROP_INDEX_IDSB 105 +#define PROP_INDEX_IDSTRINARYOPERATOR 106 +#define PROP_INDEX_IDST 106 +#define PROP_INDEX_IDSUNARYOPERATOR 107 +#define PROP_INDEX_IDSU 107 +#define PROP_INDEX_IDCOMPATMATHCONTINUE 108 +#define PROP_INDEX_IDCOMPATMATHSTART 109 +#define PROP_INDEX_IDCONTINUE 110 +#define PROP_INDEX_IDC 110 +#define PROP_INDEX_IDSTART 111 +#define PROP_INDEX_IDS 111 +#define PROP_INDEX_IDEOGRAPHIC 112 +#define PROP_INDEX_IDEO 112 +#define PROP_INDEX_IMPERIALARAMAIC 113 +#define PROP_INDEX_ARMI 113 +#define PROP_INDEX_INCB 114 +#define PROP_INDEX_INHERITED 115 +#define PROP_INDEX_QAAI 115 +#define PROP_INDEX_ZINH 115 +#define PROP_INDEX_INSCRIPTIONALPAHLAVI 116 +#define PROP_INDEX_PHLI 116 +#define PROP_INDEX_INSCRIPTIONALPARTHIAN 117 +#define PROP_INDEX_PRTI 117 +#define PROP_INDEX_JAVANESE 118 +#define PROP_INDEX_JAVA 118 +#define PROP_INDEX_JOINCONTROL 119 +#define PROP_INDEX_JOINC 119 +#define PROP_INDEX_KAITHI 120 +#define PROP_INDEX_KTHI 120 +#define PROP_INDEX_KANNADA 121 +#define PROP_INDEX_KNDA 121 +#define PROP_INDEX_KATAKANA 122 +#define PROP_INDEX_KANA 122 +#define PROP_INDEX_KAWI 123 +#define PROP_INDEX_KAYAHLI 124 +#define PROP_INDEX_KALI 124 +#define PROP_INDEX_KHAROSHTHI 125 +#define PROP_INDEX_KHAR 125 +#define PROP_INDEX_KHITANSMALLSCRIPT 126 +#define PROP_INDEX_KITS 126 +#define PROP_INDEX_KHMER 127 +#define PROP_INDEX_KHMR 127 +#define PROP_INDEX_KHOJKI 128 +#define PROP_INDEX_KHOJ 128 +#define PROP_INDEX_KHUDAWADI 129 +#define PROP_INDEX_SIND 129 +#define PROP_INDEX_KIRATRAI 130 +#define PROP_INDEX_KRAI 130 +#define PROP_INDEX_L 131 +#define PROP_INDEX_LETTER 131 +#define PROP_INDEX_LC 132 +#define PROP_INDEX_CASEDLETTER 132 +#define PROP_INDEX_LAO 133 +#define PROP_INDEX_LAOO 133 +#define PROP_INDEX_LATIN 134 +#define PROP_INDEX_LATN 134 +#define PROP_INDEX_LEPCHA 135 +#define PROP_INDEX_LEPC 135 +#define PROP_INDEX_LIMBU 136 +#define PROP_INDEX_LIMB 136 +#define PROP_INDEX_LINEARA 137 +#define PROP_INDEX_LINA 137 +#define PROP_INDEX_LINEARB 138 +#define PROP_INDEX_LINB 138 +#define PROP_INDEX_LISU 139 +#define PROP_INDEX_LL 140 +#define PROP_INDEX_LOWERCASELETTER 140 +#define PROP_INDEX_LM 141 +#define PROP_INDEX_MODIFIERLETTER 141 +#define PROP_INDEX_LO 142 +#define PROP_INDEX_OTHERLETTER 142 +#define PROP_INDEX_LOGICALORDEREXCEPTION 143 +#define PROP_INDEX_LOE 143 +#define PROP_INDEX_LOWERCASE 144 +#define PROP_INDEX_LT 145 +#define PROP_INDEX_TITLECASELETTER 145 +#define PROP_INDEX_LU 146 +#define PROP_INDEX_UPPERCASELETTER 146 +#define PROP_INDEX_LYCIAN 147 +#define PROP_INDEX_LYCI 147 +#define PROP_INDEX_LYDIAN 148 +#define PROP_INDEX_LYDI 148 +#define PROP_INDEX_M 149 +#define PROP_INDEX_COMBININGMARK 149 +#define PROP_INDEX_MARK 149 +#define PROP_INDEX_MAHAJANI 150 +#define PROP_INDEX_MAHJ 150 +#define PROP_INDEX_MAKASAR 151 +#define PROP_INDEX_MAKA 151 +#define PROP_INDEX_MALAYALAM 152 +#define PROP_INDEX_MLYM 152 +#define PROP_INDEX_MANDAIC 153 +#define PROP_INDEX_MAND 153 +#define PROP_INDEX_MANICHAEAN 154 +#define PROP_INDEX_MANI 154 +#define PROP_INDEX_MARCHEN 155 +#define PROP_INDEX_MARC 155 +#define PROP_INDEX_MASARAMGONDI 156 +#define PROP_INDEX_GONM 156 +#define PROP_INDEX_MATH 157 +#define PROP_INDEX_MC 158 +#define PROP_INDEX_SPACINGMARK 158 +#define PROP_INDEX_ME 159 +#define PROP_INDEX_ENCLOSINGMARK 159 +#define PROP_INDEX_MEDEFAIDRIN 160 +#define PROP_INDEX_MEDF 160 +#define PROP_INDEX_MEETEIMAYEK 161 +#define PROP_INDEX_MTEI 161 +#define PROP_INDEX_MENDEKIKAKUI 162 +#define PROP_INDEX_MEND 162 +#define PROP_INDEX_MEROITICCURSIVE 163 +#define PROP_INDEX_MERC 163 +#define PROP_INDEX_MEROITICHIEROGLYPHS 164 +#define PROP_INDEX_MERO 164 +#define PROP_INDEX_MIAO 165 +#define PROP_INDEX_PLRD 165 +#define PROP_INDEX_MN 166 +#define PROP_INDEX_NONSPACINGMARK 166 +#define PROP_INDEX_MODI 167 +#define PROP_INDEX_MODIFIERCOMBININGMARK 168 +#define PROP_INDEX_MCM 168 +#define PROP_INDEX_MONGOLIAN 169 +#define PROP_INDEX_MONG 169 +#define PROP_INDEX_MRO 170 +#define PROP_INDEX_MROO 170 +#define PROP_INDEX_MULTANI 171 +#define PROP_INDEX_MULT 171 +#define PROP_INDEX_MYANMAR 172 +#define PROP_INDEX_MYMR 172 +#define PROP_INDEX_N 173 +#define PROP_INDEX_NUMBER 173 +#define PROP_INDEX_NABATAEAN 174 +#define PROP_INDEX_NBAT 174 +#define PROP_INDEX_NAGMUNDARI 175 +#define PROP_INDEX_NAGM 175 +#define PROP_INDEX_NANDINAGARI 176 +#define PROP_INDEX_NAND 176 +#define PROP_INDEX_ND 177 +#define PROP_INDEX_DECIMALNUMBER 177 +#define PROP_INDEX_NEWTAILUE 178 +#define PROP_INDEX_TALU 178 +#define PROP_INDEX_NEWA 179 +#define PROP_INDEX_NKO 180 +#define PROP_INDEX_NKOO 180 +#define PROP_INDEX_NL 181 +#define PROP_INDEX_LETTERNUMBER 181 +#define PROP_INDEX_NO 182 +#define PROP_INDEX_OTHERNUMBER 182 +#define PROP_INDEX_NONCHARACTERCODEPOINT 183 +#define PROP_INDEX_NCHAR 183 +#define PROP_INDEX_NUSHU 184 +#define PROP_INDEX_NSHU 184 +#define PROP_INDEX_NYIAKENGPUACHUEHMONG 185 +#define PROP_INDEX_HMNP 185 +#define PROP_INDEX_OGHAM 186 +#define PROP_INDEX_OGAM 186 +#define PROP_INDEX_OLCHIKI 187 +#define PROP_INDEX_OLCK 187 +#define PROP_INDEX_OLONAL 188 +#define PROP_INDEX_ONAO 188 +#define PROP_INDEX_OLDHUNGARIAN 189 +#define PROP_INDEX_HUNG 189 +#define PROP_INDEX_OLDITALIC 190 +#define PROP_INDEX_ITAL 190 +#define PROP_INDEX_OLDNORTHARABIAN 191 +#define PROP_INDEX_NARB 191 +#define PROP_INDEX_OLDPERMIC 192 +#define PROP_INDEX_PERM 192 +#define PROP_INDEX_OLDPERSIAN 193 +#define PROP_INDEX_XPEO 193 +#define PROP_INDEX_OLDSOGDIAN 194 +#define PROP_INDEX_SOGO 194 +#define PROP_INDEX_OLDSOUTHARABIAN 195 +#define PROP_INDEX_SARB 195 +#define PROP_INDEX_OLDTURKIC 196 +#define PROP_INDEX_ORKH 196 +#define PROP_INDEX_OLDUYGHUR 197 +#define PROP_INDEX_OUGR 197 +#define PROP_INDEX_ORIYA 198 +#define PROP_INDEX_ORYA 198 +#define PROP_INDEX_OSAGE 199 +#define PROP_INDEX_OSGE 199 +#define PROP_INDEX_OSMANYA 200 +#define PROP_INDEX_OSMA 200 +#define PROP_INDEX_OTHERALPHABETIC 201 +#define PROP_INDEX_OALPHA 201 +#define PROP_INDEX_OTHERDEFAULTIGNORABLECODEPOINT 202 +#define PROP_INDEX_ODI 202 +#define PROP_INDEX_OTHERGRAPHEMEEXTEND 203 +#define PROP_INDEX_OGREXT 203 +#define PROP_INDEX_OTHERIDCONTINUE 204 +#define PROP_INDEX_OIDC 204 +#define PROP_INDEX_OTHERIDSTART 205 +#define PROP_INDEX_OIDS 205 +#define PROP_INDEX_OTHERLOWERCASE 206 +#define PROP_INDEX_OLOWER 206 +#define PROP_INDEX_OTHERMATH 207 +#define PROP_INDEX_OMATH 207 +#define PROP_INDEX_OTHERUPPERCASE 208 +#define PROP_INDEX_OUPPER 208 +#define PROP_INDEX_P 209 +#define PROP_INDEX_PUNCT 209 +#define PROP_INDEX_PUNCTUATION 209 +#define PROP_INDEX_PAHAWHHMONG 210 +#define PROP_INDEX_HMNG 210 +#define PROP_INDEX_PALMYRENE 211 +#define PROP_INDEX_PALM 211 +#define PROP_INDEX_PATTERNSYNTAX 212 +#define PROP_INDEX_PATSYN 212 +#define PROP_INDEX_PATTERNWHITESPACE 213 +#define PROP_INDEX_PATWS 213 +#define PROP_INDEX_PAUCINHAU 214 +#define PROP_INDEX_PAUC 214 +#define PROP_INDEX_PC 215 +#define PROP_INDEX_CONNECTORPUNCTUATION 215 +#define PROP_INDEX_PD 216 +#define PROP_INDEX_DASHPUNCTUATION 216 +#define PROP_INDEX_PE 217 +#define PROP_INDEX_CLOSEPUNCTUATION 217 +#define PROP_INDEX_PF 218 +#define PROP_INDEX_FINALPUNCTUATION 218 +#define PROP_INDEX_PHAGSPA 219 +#define PROP_INDEX_PHAG 219 +#define PROP_INDEX_PHOENICIAN 220 +#define PROP_INDEX_PHNX 220 +#define PROP_INDEX_PI 221 +#define PROP_INDEX_INITIALPUNCTUATION 221 +#define PROP_INDEX_PO 222 +#define PROP_INDEX_OTHERPUNCTUATION 222 +#define PROP_INDEX_PREPENDEDCONCATENATIONMARK 223 +#define PROP_INDEX_PCM 223 +#define PROP_INDEX_PS 224 +#define PROP_INDEX_OPENPUNCTUATION 224 +#define PROP_INDEX_PSALTERPAHLAVI 225 +#define PROP_INDEX_PHLP 225 +#define PROP_INDEX_QUOTATIONMARK 226 +#define PROP_INDEX_QMARK 226 +#define PROP_INDEX_RADICAL 227 +#define PROP_INDEX_REGIONALINDICATOR 228 +#define PROP_INDEX_RI 228 +#define PROP_INDEX_REJANG 229 +#define PROP_INDEX_RJNG 229 +#define PROP_INDEX_RUNIC 230 +#define PROP_INDEX_RUNR 230 +#define PROP_INDEX_S 231 +#define PROP_INDEX_SYMBOL 231 +#define PROP_INDEX_SAMARITAN 232 +#define PROP_INDEX_SAMR 232 +#define PROP_INDEX_SAURASHTRA 233 +#define PROP_INDEX_SAUR 233 +#define PROP_INDEX_SC 234 +#define PROP_INDEX_CURRENCYSYMBOL 234 +#define PROP_INDEX_SENTENCETERMINAL 235 +#define PROP_INDEX_STERM 235 +#define PROP_INDEX_SHARADA 236 +#define PROP_INDEX_SHRD 236 +#define PROP_INDEX_SHAVIAN 237 +#define PROP_INDEX_SHAW 237 +#define PROP_INDEX_SIDDHAM 238 +#define PROP_INDEX_SIDD 238 +#define PROP_INDEX_SIGNWRITING 239 +#define PROP_INDEX_SGNW 239 +#define PROP_INDEX_SINHALA 240 +#define PROP_INDEX_SINH 240 +#define PROP_INDEX_SK 241 +#define PROP_INDEX_MODIFIERSYMBOL 241 +#define PROP_INDEX_SM 242 +#define PROP_INDEX_MATHSYMBOL 242 +#define PROP_INDEX_SO 243 +#define PROP_INDEX_OTHERSYMBOL 243 +#define PROP_INDEX_SOFTDOTTED 244 +#define PROP_INDEX_SD 244 +#define PROP_INDEX_SOGDIAN 245 +#define PROP_INDEX_SOGD 245 +#define PROP_INDEX_SORASOMPENG 246 +#define PROP_INDEX_SORA 246 +#define PROP_INDEX_SOYOMBO 247 +#define PROP_INDEX_SOYO 247 +#define PROP_INDEX_SUNDANESE 248 +#define PROP_INDEX_SUND 248 +#define PROP_INDEX_SUNUWAR 249 +#define PROP_INDEX_SUNU 249 +#define PROP_INDEX_SYLOTINAGRI 250 +#define PROP_INDEX_SYLO 250 +#define PROP_INDEX_SYRIAC 251 +#define PROP_INDEX_SYRC 251 +#define PROP_INDEX_TAGALOG 252 +#define PROP_INDEX_TGLG 252 +#define PROP_INDEX_TAGBANWA 253 +#define PROP_INDEX_TAGB 253 +#define PROP_INDEX_TAILE 254 +#define PROP_INDEX_TALE 254 +#define PROP_INDEX_TAITHAM 255 +#define PROP_INDEX_LANA 255 +#define PROP_INDEX_TAIVIET 256 +#define PROP_INDEX_TAVT 256 +#define PROP_INDEX_TAKRI 257 +#define PROP_INDEX_TAKR 257 +#define PROP_INDEX_TAMIL 258 +#define PROP_INDEX_TAML 258 +#define PROP_INDEX_TANGSA 259 +#define PROP_INDEX_TNSA 259 +#define PROP_INDEX_TANGUT 260 +#define PROP_INDEX_TANG 260 +#define PROP_INDEX_TELUGU 261 +#define PROP_INDEX_TELU 261 +#define PROP_INDEX_TERMINALPUNCTUATION 262 +#define PROP_INDEX_TERM 262 +#define PROP_INDEX_THAANA 263 +#define PROP_INDEX_THAA 263 +#define PROP_INDEX_THAI 264 +#define PROP_INDEX_TIBETAN 265 +#define PROP_INDEX_TIBT 265 +#define PROP_INDEX_TIFINAGH 266 +#define PROP_INDEX_TFNG 266 +#define PROP_INDEX_TIRHUTA 267 +#define PROP_INDEX_TIRH 267 +#define PROP_INDEX_TODHRI 268 +#define PROP_INDEX_TODR 268 +#define PROP_INDEX_TOTO 269 +#define PROP_INDEX_TULUTIGALARI 270 +#define PROP_INDEX_TUTG 270 +#define PROP_INDEX_UGARITIC 271 +#define PROP_INDEX_UGAR 271 +#define PROP_INDEX_UNIFIEDIDEOGRAPH 272 +#define PROP_INDEX_UIDEO 272 +#define PROP_INDEX_UNKNOWN 273 +#define PROP_INDEX_ZZZZ 273 +#define PROP_INDEX_UPPERCASE 274 +#define PROP_INDEX_VAI 275 +#define PROP_INDEX_VAII 275 +#define PROP_INDEX_VARIATIONSELECTOR 276 +#define PROP_INDEX_VS 276 +#define PROP_INDEX_VITHKUQI 277 +#define PROP_INDEX_VITH 277 +#define PROP_INDEX_WANCHO 278 +#define PROP_INDEX_WCHO 278 +#define PROP_INDEX_WARANGCITI 279 +#define PROP_INDEX_WARA 279 +#define PROP_INDEX_WHITESPACE 280 +#define PROP_INDEX_WSPACE 280 +#define PROP_INDEX_XIDCONTINUE 281 +#define PROP_INDEX_XIDC 281 +#define PROP_INDEX_XIDSTART 282 +#define PROP_INDEX_XIDS 282 +#define PROP_INDEX_YEZIDI 283 +#define PROP_INDEX_YEZI 283 +#define PROP_INDEX_YI 284 +#define PROP_INDEX_YIII 284 +#define PROP_INDEX_Z 285 +#define PROP_INDEX_SEPARATOR 285 +#define PROP_INDEX_ZANABAZARSQUARE 286 +#define PROP_INDEX_ZANB 286 +#define PROP_INDEX_ZL 287 +#define PROP_INDEX_LINESEPARATOR 287 +#define PROP_INDEX_ZP 288 +#define PROP_INDEX_PARAGRAPHSEPARATOR 288 +#define PROP_INDEX_ZS 289 +#define PROP_INDEX_SPACESEPARATOR 289 +#define PROP_INDEX_INBASICLATIN 290 +#define PROP_INDEX_INLATIN1SUPPLEMENT 291 +#define PROP_INDEX_INLATINEXTENDEDA 292 +#define PROP_INDEX_INLATINEXTENDEDB 293 +#define PROP_INDEX_INIPAEXTENSIONS 294 +#define PROP_INDEX_INSPACINGMODIFIERLETTERS 295 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKS 296 +#define PROP_INDEX_INGREEKANDCOPTIC 297 +#define PROP_INDEX_INCYRILLIC 298 +#define PROP_INDEX_INCYRILLICSUPPLEMENT 299 +#define PROP_INDEX_INARMENIAN 300 +#define PROP_INDEX_INHEBREW 301 +#define PROP_INDEX_INARABIC 302 +#define PROP_INDEX_INSYRIAC 303 +#define PROP_INDEX_INARABICSUPPLEMENT 304 +#define PROP_INDEX_INTHAANA 305 +#define PROP_INDEX_INNKO 306 +#define PROP_INDEX_INSAMARITAN 307 +#define PROP_INDEX_INMANDAIC 308 +#define PROP_INDEX_INSYRIACSUPPLEMENT 309 +#define PROP_INDEX_INARABICEXTENDEDB 310 +#define PROP_INDEX_INARABICEXTENDEDA 311 +#define PROP_INDEX_INDEVANAGARI 312 +#define PROP_INDEX_INBENGALI 313 +#define PROP_INDEX_INGURMUKHI 314 +#define PROP_INDEX_INGUJARATI 315 +#define PROP_INDEX_INORIYA 316 +#define PROP_INDEX_INTAMIL 317 +#define PROP_INDEX_INTELUGU 318 +#define PROP_INDEX_INKANNADA 319 +#define PROP_INDEX_INMALAYALAM 320 +#define PROP_INDEX_INSINHALA 321 +#define PROP_INDEX_INTHAI 322 +#define PROP_INDEX_INLAO 323 +#define PROP_INDEX_INTIBETAN 324 +#define PROP_INDEX_INMYANMAR 325 +#define PROP_INDEX_INGEORGIAN 326 +#define PROP_INDEX_INHANGULJAMO 327 +#define PROP_INDEX_INETHIOPIC 328 +#define PROP_INDEX_INETHIOPICSUPPLEMENT 329 +#define PROP_INDEX_INCHEROKEE 330 +#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICS 331 +#define PROP_INDEX_INOGHAM 332 +#define PROP_INDEX_INRUNIC 333 +#define PROP_INDEX_INTAGALOG 334 +#define PROP_INDEX_INHANUNOO 335 +#define PROP_INDEX_INBUHID 336 +#define PROP_INDEX_INTAGBANWA 337 +#define PROP_INDEX_INKHMER 338 +#define PROP_INDEX_INMONGOLIAN 339 +#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED 340 +#define PROP_INDEX_INLIMBU 341 +#define PROP_INDEX_INTAILE 342 +#define PROP_INDEX_INNEWTAILUE 343 +#define PROP_INDEX_INKHMERSYMBOLS 344 +#define PROP_INDEX_INBUGINESE 345 +#define PROP_INDEX_INTAITHAM 346 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKSEXTENDED 347 +#define PROP_INDEX_INBALINESE 348 +#define PROP_INDEX_INSUNDANESE 349 +#define PROP_INDEX_INBATAK 350 +#define PROP_INDEX_INLEPCHA 351 +#define PROP_INDEX_INOLCHIKI 352 +#define PROP_INDEX_INCYRILLICEXTENDEDC 353 +#define PROP_INDEX_INGEORGIANEXTENDED 354 +#define PROP_INDEX_INSUNDANESESUPPLEMENT 355 +#define PROP_INDEX_INVEDICEXTENSIONS 356 +#define PROP_INDEX_INPHONETICEXTENSIONS 357 +#define PROP_INDEX_INPHONETICEXTENSIONSSUPPLEMENT 358 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKSSUPPLEMENT 359 +#define PROP_INDEX_INLATINEXTENDEDADDITIONAL 360 +#define PROP_INDEX_INGREEKEXTENDED 361 +#define PROP_INDEX_INGENERALPUNCTUATION 362 +#define PROP_INDEX_INSUPERSCRIPTSANDSUBSCRIPTS 363 +#define PROP_INDEX_INCURRENCYSYMBOLS 364 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKSFORSYMBOLS 365 +#define PROP_INDEX_INLETTERLIKESYMBOLS 366 +#define PROP_INDEX_INNUMBERFORMS 367 +#define PROP_INDEX_INARROWS 368 +#define PROP_INDEX_INMATHEMATICALOPERATORS 369 +#define PROP_INDEX_INMISCELLANEOUSTECHNICAL 370 +#define PROP_INDEX_INCONTROLPICTURES 371 +#define PROP_INDEX_INOPTICALCHARACTERRECOGNITION 372 +#define PROP_INDEX_INENCLOSEDALPHANUMERICS 373 +#define PROP_INDEX_INBOXDRAWING 374 +#define PROP_INDEX_INBLOCKELEMENTS 375 +#define PROP_INDEX_INGEOMETRICSHAPES 376 +#define PROP_INDEX_INMISCELLANEOUSSYMBOLS 377 +#define PROP_INDEX_INDINGBATS 378 +#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSA 379 +#define PROP_INDEX_INSUPPLEMENTALARROWSA 380 +#define PROP_INDEX_INBRAILLEPATTERNS 381 +#define PROP_INDEX_INSUPPLEMENTALARROWSB 382 +#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSB 383 +#define PROP_INDEX_INSUPPLEMENTALMATHEMATICALOPERATORS 384 +#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDARROWS 385 +#define PROP_INDEX_INGLAGOLITIC 386 +#define PROP_INDEX_INLATINEXTENDEDC 387 +#define PROP_INDEX_INCOPTIC 388 +#define PROP_INDEX_INGEORGIANSUPPLEMENT 389 +#define PROP_INDEX_INTIFINAGH 390 +#define PROP_INDEX_INETHIOPICEXTENDED 391 +#define PROP_INDEX_INCYRILLICEXTENDEDA 392 +#define PROP_INDEX_INSUPPLEMENTALPUNCTUATION 393 +#define PROP_INDEX_INCJKRADICALSSUPPLEMENT 394 +#define PROP_INDEX_INKANGXIRADICALS 395 +#define PROP_INDEX_INIDEOGRAPHICDESCRIPTIONCHARACTERS 396 +#define PROP_INDEX_INCJKSYMBOLSANDPUNCTUATION 397 +#define PROP_INDEX_INHIRAGANA 398 +#define PROP_INDEX_INKATAKANA 399 +#define PROP_INDEX_INBOPOMOFO 400 +#define PROP_INDEX_INHANGULCOMPATIBILITYJAMO 401 +#define PROP_INDEX_INKANBUN 402 +#define PROP_INDEX_INBOPOMOFOEXTENDED 403 +#define PROP_INDEX_INCJKSTROKES 404 +#define PROP_INDEX_INKATAKANAPHONETICEXTENSIONS 405 +#define PROP_INDEX_INENCLOSEDCJKLETTERSANDMONTHS 406 +#define PROP_INDEX_INCJKCOMPATIBILITY 407 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONA 408 +#define PROP_INDEX_INYIJINGHEXAGRAMSYMBOLS 409 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHS 410 +#define PROP_INDEX_INYISYLLABLES 411 +#define PROP_INDEX_INYIRADICALS 412 +#define PROP_INDEX_INLISU 413 +#define PROP_INDEX_INVAI 414 +#define PROP_INDEX_INCYRILLICEXTENDEDB 415 +#define PROP_INDEX_INBAMUM 416 +#define PROP_INDEX_INMODIFIERTONELETTERS 417 +#define PROP_INDEX_INLATINEXTENDEDD 418 +#define PROP_INDEX_INSYLOTINAGRI 419 +#define PROP_INDEX_INCOMMONINDICNUMBERFORMS 420 +#define PROP_INDEX_INPHAGSPA 421 +#define PROP_INDEX_INSAURASHTRA 422 +#define PROP_INDEX_INDEVANAGARIEXTENDED 423 +#define PROP_INDEX_INKAYAHLI 424 +#define PROP_INDEX_INREJANG 425 +#define PROP_INDEX_INHANGULJAMOEXTENDEDA 426 +#define PROP_INDEX_INJAVANESE 427 +#define PROP_INDEX_INMYANMAREXTENDEDB 428 +#define PROP_INDEX_INCHAM 429 +#define PROP_INDEX_INMYANMAREXTENDEDA 430 +#define PROP_INDEX_INTAIVIET 431 +#define PROP_INDEX_INMEETEIMAYEKEXTENSIONS 432 +#define PROP_INDEX_INETHIOPICEXTENDEDA 433 +#define PROP_INDEX_INLATINEXTENDEDE 434 +#define PROP_INDEX_INCHEROKEESUPPLEMENT 435 +#define PROP_INDEX_INMEETEIMAYEK 436 +#define PROP_INDEX_INHANGULSYLLABLES 437 +#define PROP_INDEX_INHANGULJAMOEXTENDEDB 438 +#define PROP_INDEX_INHIGHSURROGATES 439 +#define PROP_INDEX_INHIGHPRIVATEUSESURROGATES 440 +#define PROP_INDEX_INLOWSURROGATES 441 +#define PROP_INDEX_INPRIVATEUSEAREA 442 +#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHS 443 +#define PROP_INDEX_INALPHABETICPRESENTATIONFORMS 444 +#define PROP_INDEX_INARABICPRESENTATIONFORMSA 445 +#define PROP_INDEX_INVARIATIONSELECTORS 446 +#define PROP_INDEX_INVERTICALFORMS 447 +#define PROP_INDEX_INCOMBININGHALFMARKS 448 +#define PROP_INDEX_INCJKCOMPATIBILITYFORMS 449 +#define PROP_INDEX_INSMALLFORMVARIANTS 450 +#define PROP_INDEX_INARABICPRESENTATIONFORMSB 451 +#define PROP_INDEX_INHALFWIDTHANDFULLWIDTHFORMS 452 +#define PROP_INDEX_INSPECIALS 453 +#define PROP_INDEX_INLINEARBSYLLABARY 454 +#define PROP_INDEX_INLINEARBIDEOGRAMS 455 +#define PROP_INDEX_INAEGEANNUMBERS 456 +#define PROP_INDEX_INANCIENTGREEKNUMBERS 457 +#define PROP_INDEX_INANCIENTSYMBOLS 458 +#define PROP_INDEX_INPHAISTOSDISC 459 +#define PROP_INDEX_INLYCIAN 460 +#define PROP_INDEX_INCARIAN 461 +#define PROP_INDEX_INCOPTICEPACTNUMBERS 462 +#define PROP_INDEX_INOLDITALIC 463 +#define PROP_INDEX_INGOTHIC 464 +#define PROP_INDEX_INOLDPERMIC 465 +#define PROP_INDEX_INUGARITIC 466 +#define PROP_INDEX_INOLDPERSIAN 467 +#define PROP_INDEX_INDESERET 468 +#define PROP_INDEX_INSHAVIAN 469 +#define PROP_INDEX_INOSMANYA 470 +#define PROP_INDEX_INOSAGE 471 +#define PROP_INDEX_INELBASAN 472 +#define PROP_INDEX_INCAUCASIANALBANIAN 473 +#define PROP_INDEX_INVITHKUQI 474 +#define PROP_INDEX_INTODHRI 475 +#define PROP_INDEX_INLINEARA 476 +#define PROP_INDEX_INLATINEXTENDEDF 477 +#define PROP_INDEX_INCYPRIOTSYLLABARY 478 +#define PROP_INDEX_INIMPERIALARAMAIC 479 +#define PROP_INDEX_INPALMYRENE 480 +#define PROP_INDEX_INNABATAEAN 481 +#define PROP_INDEX_INHATRAN 482 +#define PROP_INDEX_INPHOENICIAN 483 +#define PROP_INDEX_INLYDIAN 484 +#define PROP_INDEX_INMEROITICHIEROGLYPHS 485 +#define PROP_INDEX_INMEROITICCURSIVE 486 +#define PROP_INDEX_INKHAROSHTHI 487 +#define PROP_INDEX_INOLDSOUTHARABIAN 488 +#define PROP_INDEX_INOLDNORTHARABIAN 489 +#define PROP_INDEX_INMANICHAEAN 490 +#define PROP_INDEX_INAVESTAN 491 +#define PROP_INDEX_ININSCRIPTIONALPARTHIAN 492 +#define PROP_INDEX_ININSCRIPTIONALPAHLAVI 493 +#define PROP_INDEX_INPSALTERPAHLAVI 494 +#define PROP_INDEX_INOLDTURKIC 495 +#define PROP_INDEX_INOLDHUNGARIAN 496 +#define PROP_INDEX_INHANIFIROHINGYA 497 +#define PROP_INDEX_INGARAY 498 +#define PROP_INDEX_INRUMINUMERALSYMBOLS 499 +#define PROP_INDEX_INYEZIDI 500 +#define PROP_INDEX_INARABICEXTENDEDC 501 +#define PROP_INDEX_INOLDSOGDIAN 502 +#define PROP_INDEX_INSOGDIAN 503 +#define PROP_INDEX_INOLDUYGHUR 504 +#define PROP_INDEX_INCHORASMIAN 505 +#define PROP_INDEX_INELYMAIC 506 +#define PROP_INDEX_INBRAHMI 507 +#define PROP_INDEX_INKAITHI 508 +#define PROP_INDEX_INSORASOMPENG 509 +#define PROP_INDEX_INCHAKMA 510 +#define PROP_INDEX_INMAHAJANI 511 +#define PROP_INDEX_INSHARADA 512 +#define PROP_INDEX_INSINHALAARCHAICNUMBERS 513 +#define PROP_INDEX_INKHOJKI 514 +#define PROP_INDEX_INMULTANI 515 +#define PROP_INDEX_INKHUDAWADI 516 +#define PROP_INDEX_INGRANTHA 517 +#define PROP_INDEX_INTULUTIGALARI 518 +#define PROP_INDEX_INNEWA 519 +#define PROP_INDEX_INTIRHUTA 520 +#define PROP_INDEX_INSIDDHAM 521 +#define PROP_INDEX_INMODI 522 +#define PROP_INDEX_INMONGOLIANSUPPLEMENT 523 +#define PROP_INDEX_INTAKRI 524 +#define PROP_INDEX_INMYANMAREXTENDEDC 525 +#define PROP_INDEX_INAHOM 526 +#define PROP_INDEX_INDOGRA 527 +#define PROP_INDEX_INWARANGCITI 528 +#define PROP_INDEX_INDIVESAKURU 529 +#define PROP_INDEX_INNANDINAGARI 530 +#define PROP_INDEX_INZANABAZARSQUARE 531 +#define PROP_INDEX_INSOYOMBO 532 +#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDEDA 533 +#define PROP_INDEX_INPAUCINHAU 534 +#define PROP_INDEX_INDEVANAGARIEXTENDEDA 535 +#define PROP_INDEX_INSUNUWAR 536 +#define PROP_INDEX_INBHAIKSUKI 537 +#define PROP_INDEX_INMARCHEN 538 +#define PROP_INDEX_INMASARAMGONDI 539 +#define PROP_INDEX_INGUNJALAGONDI 540 +#define PROP_INDEX_INMAKASAR 541 +#define PROP_INDEX_INKAWI 542 +#define PROP_INDEX_INLISUSUPPLEMENT 543 +#define PROP_INDEX_INTAMILSUPPLEMENT 544 +#define PROP_INDEX_INCUNEIFORM 545 +#define PROP_INDEX_INCUNEIFORMNUMBERSANDPUNCTUATION 546 +#define PROP_INDEX_INEARLYDYNASTICCUNEIFORM 547 +#define PROP_INDEX_INCYPROMINOAN 548 +#define PROP_INDEX_INEGYPTIANHIEROGLYPHS 549 +#define PROP_INDEX_INEGYPTIANHIEROGLYPHFORMATCONTROLS 550 +#define PROP_INDEX_INEGYPTIANHIEROGLYPHSEXTENDEDA 551 +#define PROP_INDEX_INANATOLIANHIEROGLYPHS 552 +#define PROP_INDEX_INGURUNGKHEMA 553 +#define PROP_INDEX_INBAMUMSUPPLEMENT 554 +#define PROP_INDEX_INMRO 555 +#define PROP_INDEX_INTANGSA 556 +#define PROP_INDEX_INBASSAVAH 557 +#define PROP_INDEX_INPAHAWHHMONG 558 +#define PROP_INDEX_INKIRATRAI 559 +#define PROP_INDEX_INMEDEFAIDRIN 560 +#define PROP_INDEX_INMIAO 561 +#define PROP_INDEX_INIDEOGRAPHICSYMBOLSANDPUNCTUATION 562 +#define PROP_INDEX_INTANGUT 563 +#define PROP_INDEX_INTANGUTCOMPONENTS 564 +#define PROP_INDEX_INKHITANSMALLSCRIPT 565 +#define PROP_INDEX_INTANGUTSUPPLEMENT 566 +#define PROP_INDEX_INKANAEXTENDEDB 567 +#define PROP_INDEX_INKANASUPPLEMENT 568 +#define PROP_INDEX_INKANAEXTENDEDA 569 +#define PROP_INDEX_INSMALLKANAEXTENSION 570 +#define PROP_INDEX_INNUSHU 571 +#define PROP_INDEX_INDUPLOYAN 572 +#define PROP_INDEX_INSHORTHANDFORMATCONTROLS 573 +#define PROP_INDEX_INSYMBOLSFORLEGACYCOMPUTINGSUPPLEMENT 574 +#define PROP_INDEX_INZNAMENNYMUSICALNOTATION 575 +#define PROP_INDEX_INBYZANTINEMUSICALSYMBOLS 576 +#define PROP_INDEX_INMUSICALSYMBOLS 577 +#define PROP_INDEX_INANCIENTGREEKMUSICALNOTATION 578 +#define PROP_INDEX_INKAKTOVIKNUMERALS 579 +#define PROP_INDEX_INMAYANNUMERALS 580 +#define PROP_INDEX_INTAIXUANJINGSYMBOLS 581 +#define PROP_INDEX_INCOUNTINGRODNUMERALS 582 +#define PROP_INDEX_INMATHEMATICALALPHANUMERICSYMBOLS 583 +#define PROP_INDEX_INSUTTONSIGNWRITING 584 +#define PROP_INDEX_INLATINEXTENDEDG 585 +#define PROP_INDEX_INGLAGOLITICSUPPLEMENT 586 +#define PROP_INDEX_INCYRILLICEXTENDEDD 587 +#define PROP_INDEX_INNYIAKENGPUACHUEHMONG 588 +#define PROP_INDEX_INTOTO 589 +#define PROP_INDEX_INWANCHO 590 +#define PROP_INDEX_INNAGMUNDARI 591 +#define PROP_INDEX_INOLONAL 592 +#define PROP_INDEX_INETHIOPICEXTENDEDB 593 +#define PROP_INDEX_INMENDEKIKAKUI 594 +#define PROP_INDEX_INADLAM 595 +#define PROP_INDEX_ININDICSIYAQNUMBERS 596 +#define PROP_INDEX_INOTTOMANSIYAQNUMBERS 597 +#define PROP_INDEX_INARABICMATHEMATICALALPHABETICSYMBOLS 598 +#define PROP_INDEX_INMAHJONGTILES 599 +#define PROP_INDEX_INDOMINOTILES 600 +#define PROP_INDEX_INPLAYINGCARDS 601 +#define PROP_INDEX_INENCLOSEDALPHANUMERICSUPPLEMENT 602 +#define PROP_INDEX_INENCLOSEDIDEOGRAPHICSUPPLEMENT 603 +#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDPICTOGRAPHS 604 +#define PROP_INDEX_INEMOTICONS 605 +#define PROP_INDEX_INORNAMENTALDINGBATS 606 +#define PROP_INDEX_INTRANSPORTANDMAPSYMBOLS 607 +#define PROP_INDEX_INALCHEMICALSYMBOLS 608 +#define PROP_INDEX_INGEOMETRICSHAPESEXTENDED 609 +#define PROP_INDEX_INSUPPLEMENTALARROWSC 610 +#define PROP_INDEX_INSUPPLEMENTALSYMBOLSANDPICTOGRAPHS 611 +#define PROP_INDEX_INCHESSSYMBOLS 612 +#define PROP_INDEX_INSYMBOLSANDPICTOGRAPHSEXTENDEDA 613 +#define PROP_INDEX_INSYMBOLSFORLEGACYCOMPUTING 614 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONB 615 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONC 616 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIOND 617 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONE 618 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONF 619 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONI 620 +#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT 621 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONG 622 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONH 623 +#define PROP_INDEX_INTAGS 624 +#define PROP_INDEX_INVARIATIONSELECTORSSUPPLEMENT 625 +#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAA 626 +#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAB 627 +#define PROP_INDEX_INNOBLOCK 628 diff --git a/src/unicode_property_data_posix.c b/src/unicode_property_data_posix.c index 29ced3c..5edb6d8 100644 --- a/src/unicode_property_data_posix.c +++ b/src/unicode_property_data_posix.c @@ -34,7 +34,7 @@ /* Generated by make_unicode_property_data.py. */ /*- - * Copyright (c) 2016-2021 K.Kosako + * Copyright (c) 2016-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -68,7 +68,7 @@ CR_NEWLINE[] = { 1, /* PROPERTY: 'Alpha': POSIX [[:Alpha:]] */ static const OnigCodePoint -CR_Alpha[] = { 722, +CR_Alpha[] = { 757, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -82,7 +82,7 @@ CR_Alpha[] = { 722, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0345, 0x0345, -0x0370, 0x0374, +0x0363, 0x0374, 0x0376, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, @@ -123,6 +123,7 @@ CR_Alpha[] = { 722, 0x0860, 0x086a, 0x0870, 0x0887, 0x0889, 0x088e, +0x0897, 0x0897, 0x08a0, 0x08c9, 0x08d4, 0x08df, 0x08e3, 0x08e9, @@ -203,8 +204,7 @@ CR_Alpha[] = { 722, 0x0bca, 0x0bcc, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, +0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, @@ -227,7 +227,7 @@ CR_Alpha[] = { 722, 0x0cd5, 0x0cd6, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -265,7 +265,7 @@ CR_Alpha[] = { 722, 0x0f00, 0x0f00, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f88, 0x0f97, 0x0f99, 0x0fbc, 0x1000, 0x1036, @@ -337,7 +337,7 @@ CR_Alpha[] = { 722, 0x1c00, 0x1c36, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, @@ -345,7 +345,7 @@ CR_Alpha[] = { 722, 0x1cf5, 0x1cf6, 0x1cfa, 0x1cfa, 0x1d00, 0x1dbf, -0x1de7, 0x1df4, +0x1dd3, 0x1df4, 0x1e00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, @@ -425,10 +425,10 @@ CR_Alpha[] = { 722, 0xa67f, 0xa6ef, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa805, 0xa807, 0xa827, 0xa840, 0xa873, @@ -519,6 +519,7 @@ CR_Alpha[] = { 722, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -556,9 +557,14 @@ CR_Alpha[] = { 722, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, +0x10d4a, 0x10d65, +0x10d69, 0x10d69, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10efc, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, @@ -567,7 +573,7 @@ CR_Alpha[] = { 722, 0x10fe0, 0x10ff6, 0x11000, 0x11045, 0x11071, 0x11075, -0x11082, 0x110b8, +0x11080, 0x110b8, 0x110c2, 0x110c2, 0x110d0, 0x110e8, 0x11100, 0x11132, @@ -582,7 +588,7 @@ CR_Alpha[] = { 722, 0x11200, 0x11211, 0x11213, 0x11234, 0x11237, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -602,6 +608,17 @@ CR_Alpha[] = { 722, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d, 0x11363, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, +0x113d1, 0x113d1, +0x113d3, 0x113d3, 0x11400, 0x11441, 0x11443, 0x11445, 0x11447, 0x1144a, @@ -640,6 +657,7 @@ CR_Alpha[] = { 722, 0x11a50, 0x11a97, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c3e, @@ -662,13 +680,19 @@ CR_Alpha[] = { 722, 0x11d93, 0x11d96, 0x11d98, 0x11d98, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x1612e, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a70, 0x16abe, @@ -677,6 +701,7 @@ CR_Alpha[] = { 722, 0x16b40, 0x16b43, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -686,12 +711,14 @@ CR_Alpha[] = { 722, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -730,16 +757,22 @@ CR_Alpha[] = { 722, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -785,12 +818,14 @@ CR_Alpha[] = { 722, 0x1f150, 0x1f169, 0x1f170, 0x1f189, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Alpha */ /* PROPERTY: 'Blank': POSIX [[:Blank:]] */ @@ -815,7 +850,7 @@ CR_Cntrl[] = { 2, /* PROPERTY: 'Digit': POSIX [[:Digit:]] */ static const OnigCodePoint -CR_Digit[] = { 62, +CR_Digit[] = { 71, 0x0030, 0x0039, 0x0660, 0x0669, 0x06f0, 0x06f9, @@ -855,6 +890,7 @@ CR_Digit[] = { 62, 0xff10, 0xff19, 0x104a0, 0x104a9, 0x10d30, 0x10d39, +0x10d40, 0x10d49, 0x11066, 0x1106f, 0x110f0, 0x110f9, 0x11136, 0x1113f, @@ -864,25 +900,33 @@ CR_Digit[] = { 62, 0x114d0, 0x114d9, 0x11650, 0x11659, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11730, 0x11739, 0x118e0, 0x118e9, 0x11950, 0x11959, +0x11bf0, 0x11bf9, 0x11c50, 0x11c59, 0x11d50, 0x11d59, 0x11da0, 0x11da9, +0x11f50, 0x11f59, +0x16130, 0x16139, 0x16a60, 0x16a69, 0x16ac0, 0x16ac9, 0x16b50, 0x16b59, +0x16d70, 0x16d79, +0x1ccf0, 0x1ccf9, 0x1d7ce, 0x1d7ff, 0x1e140, 0x1e149, 0x1e2f0, 0x1e2f9, +0x1e4f0, 0x1e4f9, +0x1e5f1, 0x1e5fa, 0x1e950, 0x1e959, 0x1fbf0, 0x1fbf9, }; /* END of CR_Digit */ /* PROPERTY: 'Graph': POSIX [[:Graph:]] */ static const OnigCodePoint -CR_Graph[] = { 703, +CR_Graph[] = { 737, 0x0021, 0x007e, 0x00a1, 0x0377, 0x037a, 0x037f, @@ -907,7 +951,7 @@ CR_Graph[] = { 703, 0x0860, 0x086a, 0x0870, 0x088e, 0x0890, 0x0891, -0x0898, 0x0983, +0x0897, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, @@ -1005,7 +1049,7 @@ CR_Graph[] = { 703, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -1035,7 +1079,7 @@ CR_Graph[] = { 703, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -1100,11 +1144,10 @@ CR_Graph[] = { 703, 0x1aa0, 0x1aad, 0x1ab0, 0x1ace, 0x1b00, 0x1b4c, -0x1b50, 0x1b7e, -0x1b80, 0x1bf3, +0x1b4e, 0x1bf3, 0x1bfc, 0x1c37, 0x1c3b, 0x1c49, -0x1c4d, 0x1c88, +0x1c4d, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cc7, 0x1cd0, 0x1cfa, @@ -1134,7 +1177,7 @@ CR_Graph[] = { 703, 0x20a0, 0x20c0, 0x20d0, 0x20f0, 0x2100, 0x218b, -0x2190, 0x2426, +0x2190, 0x2429, 0x2440, 0x244a, 0x2460, 0x2b73, 0x2b76, 0x2b95, @@ -1157,22 +1200,22 @@ CR_Graph[] = { 703, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, +0x2ff0, 0x2fff, 0x3001, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, -0x3190, 0x31e3, -0x31f0, 0x321e, +0x3190, 0x31e5, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, 0xa640, 0xa6f7, -0xa700, 0xa7ca, +0xa700, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa82c, 0xa830, 0xa839, 0xa840, 0xa877, @@ -1263,6 +1306,7 @@ CR_Graph[] = { 703, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -1306,11 +1350,15 @@ CR_Graph[] = { 703, 0x10cc0, 0x10cf2, 0x10cfa, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, 0x10e60, 0x10e7e, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10ec2, 0x10ec4, +0x10efc, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -1327,7 +1375,7 @@ CR_Graph[] = { 703, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -1350,6 +1398,17 @@ CR_Graph[] = { 703, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, 0x11400, 0x1145b, 0x1145d, 0x11461, 0x11480, 0x114c7, @@ -1361,6 +1420,7 @@ CR_Graph[] = { 703, 0x11660, 0x1166c, 0x11680, 0x116b9, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11746, @@ -1380,6 +1440,9 @@ CR_Graph[] = { 703, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -1401,6 +1464,9 @@ CR_Graph[] = { 703, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -1408,9 +1474,10 @@ CR_Graph[] = { 703, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -1423,6 +1490,7 @@ CR_Graph[] = { 703, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d79, 0x16e40, 0x16e9a, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -1431,12 +1499,14 @@ CR_Graph[] = { 703, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -1444,6 +1514,8 @@ CR_Graph[] = { 703, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, 0x1cf50, 0x1cfc3, @@ -1451,6 +1523,7 @@ CR_Graph[] = { 703, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -1478,11 +1551,14 @@ CR_Graph[] = { 703, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -1490,6 +1566,9 @@ CR_Graph[] = { 703, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -1548,10 +1627,10 @@ CR_Graph[] = { 703, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -1559,28 +1638,27 @@ CR_Graph[] = { 703, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, -0x1f8b0, 0x1f8b1, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, -0x1fb94, 0x1fbca, -0x1fbf0, 0x1fbf9, +0x1fb94, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -1590,7 +1668,7 @@ CR_Graph[] = { 703, /* PROPERTY: 'Lower': POSIX [[:Lower:]] */ static const OnigCodePoint -CR_Lower[] = { 668, +CR_Lower[] = { 675, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, @@ -1867,9 +1945,10 @@ CR_Lower[] = { 668, 0x052f, 0x052f, 0x0560, 0x0588, 0x10d0, 0x10fa, -0x10fd, 0x10ff, +0x10fc, 0x10ff, 0x13f8, 0x13fd, 0x1c80, 0x1c88, +0x1c8a, 0x1c8a, 0x1d00, 0x1dbf, 0x1e01, 0x1e01, 0x1e03, 0x1e03, @@ -2202,15 +2281,18 @@ CR_Lower[] = { 668, 0xa7c3, 0xa7c3, 0xa7c8, 0xa7c8, 0xa7ca, 0xa7ca, +0xa7cd, 0xa7cd, 0xa7d1, 0xa7d1, 0xa7d3, 0xa7d3, 0xa7d5, 0xa7d5, 0xa7d7, 0xa7d7, 0xa7d9, 0xa7d9, +0xa7db, 0xa7db, +0xa7f2, 0xa7f4, 0xa7f6, 0xa7f6, 0xa7f8, 0xa7fa, 0xab30, 0xab5a, -0xab5c, 0xab68, +0xab5c, 0xab69, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, @@ -2226,6 +2308,7 @@ CR_Lower[] = { 668, 0x10787, 0x107b0, 0x107b2, 0x107ba, 0x10cc0, 0x10cf2, +0x10d70, 0x10d85, 0x118c0, 0x118df, 0x16e60, 0x16e7f, 0x1d41a, 0x1d433, @@ -2258,12 +2341,14 @@ CR_Lower[] = { 668, 0x1d7cb, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e922, 0x1e943, }; /* END of CR_Lower */ /* PROPERTY: 'Print': POSIX [[:Print:]] */ static const OnigCodePoint -CR_Print[] = { 700, +CR_Print[] = { 733, 0x0020, 0x007e, 0x00a0, 0x0377, 0x037a, 0x037f, @@ -2288,7 +2373,7 @@ CR_Print[] = { 700, 0x0860, 0x086a, 0x0870, 0x088e, 0x0890, 0x0891, -0x0898, 0x0983, +0x0897, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, @@ -2386,7 +2471,7 @@ CR_Print[] = { 700, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -2416,7 +2501,7 @@ CR_Print[] = { 700, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -2480,11 +2565,10 @@ CR_Print[] = { 700, 0x1aa0, 0x1aad, 0x1ab0, 0x1ace, 0x1b00, 0x1b4c, -0x1b50, 0x1b7e, -0x1b80, 0x1bf3, +0x1b4e, 0x1bf3, 0x1bfc, 0x1c37, 0x1c3b, 0x1c49, -0x1c4d, 0x1c88, +0x1c4d, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cc7, 0x1cd0, 0x1cfa, @@ -2512,7 +2596,7 @@ CR_Print[] = { 700, 0x20a0, 0x20c0, 0x20d0, 0x20f0, 0x2100, 0x218b, -0x2190, 0x2426, +0x2190, 0x2429, 0x2440, 0x244a, 0x2460, 0x2b73, 0x2b76, 0x2b95, @@ -2535,22 +2619,21 @@ CR_Print[] = { 700, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x303f, +0x2ff0, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, -0x3190, 0x31e3, -0x31f0, 0x321e, +0x3190, 0x31e5, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, 0xa640, 0xa6f7, -0xa700, 0xa7ca, +0xa700, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa82c, 0xa830, 0xa839, 0xa840, 0xa877, @@ -2641,6 +2724,7 @@ CR_Print[] = { 700, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -2684,11 +2768,15 @@ CR_Print[] = { 700, 0x10cc0, 0x10cf2, 0x10cfa, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, 0x10e60, 0x10e7e, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10ec2, 0x10ec4, +0x10efc, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -2705,7 +2793,7 @@ CR_Print[] = { 700, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -2728,6 +2816,17 @@ CR_Print[] = { 700, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, 0x11400, 0x1145b, 0x1145d, 0x11461, 0x11480, 0x114c7, @@ -2739,6 +2838,7 @@ CR_Print[] = { 700, 0x11660, 0x1166c, 0x11680, 0x116b9, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11746, @@ -2758,6 +2858,9 @@ CR_Print[] = { 700, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -2779,6 +2882,9 @@ CR_Print[] = { 700, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -2786,9 +2892,10 @@ CR_Print[] = { 700, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -2801,6 +2908,7 @@ CR_Print[] = { 700, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d79, 0x16e40, 0x16e9a, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -2809,12 +2917,14 @@ CR_Print[] = { 700, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -2822,6 +2932,8 @@ CR_Print[] = { 700, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, 0x1cf50, 0x1cfc3, @@ -2829,6 +2941,7 @@ CR_Print[] = { 700, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -2856,11 +2969,14 @@ CR_Print[] = { 700, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -2868,6 +2984,9 @@ CR_Print[] = { 700, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -2926,10 +3045,10 @@ CR_Print[] = { 700, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -2937,28 +3056,27 @@ CR_Print[] = { 700, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, -0x1f8b0, 0x1f8b1, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, -0x1fb94, 0x1fbca, -0x1fbf0, 0x1fbf9, +0x1fb94, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -2966,113 +3084,183 @@ CR_Print[] = { 700, 0x100000, 0x10fffd, }; /* END of CR_Print */ -/* PROPERTY: 'Punct': POSIX [[:Punct:]] */ +/* PROPERTY: 'PosixPunct': POSIX [[:punct:]] */ static const OnigCodePoint -CR_Punct[] = { 189, -0x0021, 0x0023, -0x0025, 0x002a, -0x002c, 0x002f, -0x003a, 0x003b, -0x003f, 0x0040, -0x005b, 0x005d, -0x005f, 0x005f, -0x007b, 0x007b, -0x007d, 0x007d, -0x00a1, 0x00a1, -0x00a7, 0x00a7, -0x00ab, 0x00ab, -0x00b6, 0x00b7, +CR_PosixPunct[] = { 349, +0x0021, 0x002f, +0x003a, 0x0040, +0x005b, 0x0060, +0x007b, 0x007e, +0x00a1, 0x00a9, +0x00ab, 0x00ac, +0x00ae, 0x00b1, +0x00b4, 0x00b4, +0x00b6, 0x00b8, 0x00bb, 0x00bb, 0x00bf, 0x00bf, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x02c2, 0x02c5, +0x02d2, 0x02df, +0x02e5, 0x02eb, +0x02ed, 0x02ed, +0x02ef, 0x02ff, +0x0375, 0x0375, 0x037e, 0x037e, +0x0384, 0x0385, 0x0387, 0x0387, +0x03f6, 0x03f6, +0x0482, 0x0482, 0x055a, 0x055f, 0x0589, 0x058a, +0x058d, 0x058f, 0x05be, 0x05be, 0x05c0, 0x05c0, 0x05c3, 0x05c3, 0x05c6, 0x05c6, 0x05f3, 0x05f4, -0x0609, 0x060a, -0x060c, 0x060d, +0x0606, 0x060f, 0x061b, 0x061b, 0x061d, 0x061f, 0x066a, 0x066d, 0x06d4, 0x06d4, +0x06de, 0x06de, +0x06e9, 0x06e9, +0x06fd, 0x06fe, 0x0700, 0x070d, -0x07f7, 0x07f9, +0x07f6, 0x07f9, +0x07fe, 0x07ff, 0x0830, 0x083e, 0x085e, 0x085e, +0x0888, 0x0888, 0x0964, 0x0965, 0x0970, 0x0970, +0x09f2, 0x09f3, +0x09fa, 0x09fb, 0x09fd, 0x09fd, 0x0a76, 0x0a76, -0x0af0, 0x0af0, +0x0af0, 0x0af1, +0x0b70, 0x0b70, +0x0bf3, 0x0bfa, 0x0c77, 0x0c77, +0x0c7f, 0x0c7f, 0x0c84, 0x0c84, +0x0d4f, 0x0d4f, +0x0d79, 0x0d79, 0x0df4, 0x0df4, +0x0e3f, 0x0e3f, 0x0e4f, 0x0e4f, 0x0e5a, 0x0e5b, -0x0f04, 0x0f12, -0x0f14, 0x0f14, +0x0f01, 0x0f17, +0x0f1a, 0x0f1f, +0x0f34, 0x0f34, +0x0f36, 0x0f36, +0x0f38, 0x0f38, 0x0f3a, 0x0f3d, 0x0f85, 0x0f85, -0x0fd0, 0x0fd4, -0x0fd9, 0x0fda, +0x0fbe, 0x0fc5, +0x0fc7, 0x0fcc, +0x0fce, 0x0fda, 0x104a, 0x104f, +0x109e, 0x109f, 0x10fb, 0x10fb, 0x1360, 0x1368, +0x1390, 0x1399, 0x1400, 0x1400, -0x166e, 0x166e, +0x166d, 0x166e, 0x169b, 0x169c, 0x16eb, 0x16ed, 0x1735, 0x1736, 0x17d4, 0x17d6, -0x17d8, 0x17da, +0x17d8, 0x17db, 0x1800, 0x180a, +0x1940, 0x1940, 0x1944, 0x1945, +0x19de, 0x19ff, 0x1a1e, 0x1a1f, 0x1aa0, 0x1aa6, 0x1aa8, 0x1aad, -0x1b5a, 0x1b60, -0x1b7d, 0x1b7e, +0x1b4e, 0x1b4f, +0x1b5a, 0x1b6a, +0x1b74, 0x1b7f, 0x1bfc, 0x1bff, 0x1c3b, 0x1c3f, 0x1c7e, 0x1c7f, 0x1cc0, 0x1cc7, 0x1cd3, 0x1cd3, +0x1fbd, 0x1fbd, +0x1fbf, 0x1fc1, +0x1fcd, 0x1fcf, +0x1fdd, 0x1fdf, +0x1fed, 0x1fef, +0x1ffd, 0x1ffe, 0x2010, 0x2027, -0x2030, 0x2043, -0x2045, 0x2051, -0x2053, 0x205e, -0x207d, 0x207e, -0x208d, 0x208e, -0x2308, 0x230b, -0x2329, 0x232a, -0x2768, 0x2775, -0x27c5, 0x27c6, -0x27e6, 0x27ef, -0x2983, 0x2998, -0x29d8, 0x29db, -0x29fc, 0x29fd, +0x2030, 0x205e, +0x207a, 0x207e, +0x208a, 0x208e, +0x20a0, 0x20c0, +0x2100, 0x2101, +0x2103, 0x2106, +0x2108, 0x2109, +0x2114, 0x2114, +0x2116, 0x2118, +0x211e, 0x2123, +0x2125, 0x2125, +0x2127, 0x2127, +0x2129, 0x2129, +0x212e, 0x212e, +0x213a, 0x213b, +0x2140, 0x2144, +0x214a, 0x214d, +0x214f, 0x214f, +0x218a, 0x218b, +0x2190, 0x2429, +0x2440, 0x244a, +0x249c, 0x24e9, +0x2500, 0x2775, +0x2794, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2bff, +0x2ce5, 0x2cea, 0x2cf9, 0x2cfc, 0x2cfe, 0x2cff, 0x2d70, 0x2d70, 0x2e00, 0x2e2e, -0x2e30, 0x2e4f, -0x2e52, 0x2e5d, -0x3001, 0x3003, -0x3008, 0x3011, -0x3014, 0x301f, +0x2e30, 0x2e5d, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x2fff, +0x3001, 0x3004, +0x3008, 0x3020, 0x3030, 0x3030, -0x303d, 0x303d, +0x3036, 0x3037, +0x303d, 0x303f, +0x309b, 0x309c, 0x30a0, 0x30a0, 0x30fb, 0x30fb, +0x3190, 0x3191, +0x3196, 0x319f, +0x31c0, 0x31e5, +0x31ef, 0x31ef, +0x3200, 0x321e, +0x322a, 0x3247, +0x3250, 0x3250, +0x3260, 0x327f, +0x328a, 0x32b0, +0x32c0, 0x33ff, +0x4dc0, 0x4dff, +0xa490, 0xa4c6, 0xa4fe, 0xa4ff, 0xa60d, 0xa60f, 0xa673, 0xa673, 0xa67e, 0xa67e, 0xa6f2, 0xa6f7, +0xa700, 0xa716, +0xa720, 0xa721, +0xa789, 0xa78a, +0xa828, 0xa82b, +0xa836, 0xa839, 0xa874, 0xa877, 0xa8ce, 0xa8cf, 0xa8f8, 0xa8fa, @@ -3082,38 +3270,50 @@ CR_Punct[] = { 189, 0xa9c1, 0xa9cd, 0xa9de, 0xa9df, 0xaa5c, 0xaa5f, +0xaa77, 0xaa79, 0xaade, 0xaadf, 0xaaf0, 0xaaf1, +0xab5b, 0xab5b, +0xab6a, 0xab6b, 0xabeb, 0xabeb, -0xfd3e, 0xfd3f, +0xfb29, 0xfb29, +0xfbb2, 0xfbc2, +0xfd3e, 0xfd4f, +0xfdcf, 0xfdcf, +0xfdfc, 0xfdff, 0xfe10, 0xfe19, 0xfe30, 0xfe52, -0xfe54, 0xfe61, -0xfe63, 0xfe63, -0xfe68, 0xfe68, -0xfe6a, 0xfe6b, -0xff01, 0xff03, -0xff05, 0xff0a, -0xff0c, 0xff0f, -0xff1a, 0xff1b, -0xff1f, 0xff20, -0xff3b, 0xff3d, -0xff3f, 0xff3f, -0xff5b, 0xff5b, -0xff5d, 0xff5d, -0xff5f, 0xff65, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xff01, 0xff0f, +0xff1a, 0xff20, +0xff3b, 0xff40, +0xff5b, 0xff65, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfffc, 0xfffd, 0x10100, 0x10102, +0x10137, 0x1013f, +0x10179, 0x10189, +0x1018c, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fc, 0x1039f, 0x1039f, 0x103d0, 0x103d0, 0x1056f, 0x1056f, 0x10857, 0x10857, +0x10877, 0x10878, 0x1091f, 0x1091f, 0x1093f, 0x1093f, 0x10a50, 0x10a58, 0x10a7f, 0x10a7f, +0x10ac8, 0x10ac8, 0x10af0, 0x10af6, 0x10b39, 0x10b3f, 0x10b99, 0x10b9c, +0x10d6e, 0x10d6e, +0x10d8e, 0x10d8f, 0x10ead, 0x10ead, 0x10f55, 0x10f59, 0x10f86, 0x10f89, @@ -3128,6 +3328,8 @@ CR_Punct[] = { 189, 0x111dd, 0x111df, 0x11238, 0x1123d, 0x112a9, 0x112a9, +0x113d4, 0x113d5, +0x113d7, 0x113d8, 0x1144b, 0x1144f, 0x1145a, 0x1145b, 0x1145d, 0x1145d, @@ -3136,29 +3338,105 @@ CR_Punct[] = { 189, 0x11641, 0x11643, 0x11660, 0x1166c, 0x116b9, 0x116b9, -0x1173c, 0x1173e, +0x1173c, 0x1173f, 0x1183b, 0x1183b, 0x11944, 0x11946, 0x119e2, 0x119e2, 0x11a3f, 0x11a46, 0x11a9a, 0x11a9c, 0x11a9e, 0x11aa2, +0x11b00, 0x11b09, +0x11be1, 0x11be1, 0x11c41, 0x11c45, 0x11c70, 0x11c71, 0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, +0x11fd5, 0x11ff1, 0x11fff, 0x11fff, 0x12470, 0x12474, 0x12ff1, 0x12ff2, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, -0x16b37, 0x16b3b, -0x16b44, 0x16b44, +0x16b37, 0x16b3f, +0x16b44, 0x16b45, +0x16d6d, 0x16d6f, 0x16e97, 0x16e9a, 0x16fe2, 0x16fe2, +0x1bc9c, 0x1bc9c, 0x1bc9f, 0x1bc9f, -0x1da87, 0x1da8b, +0x1cc00, 0x1ccef, +0x1cd00, 0x1ceb3, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d164, +0x1d16a, 0x1d16c, +0x1d183, 0x1d184, +0x1d18c, 0x1d1a9, +0x1d1ae, 0x1d1ea, +0x1d200, 0x1d241, +0x1d245, 0x1d245, +0x1d300, 0x1d356, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +0x1d800, 0x1d9ff, +0x1da37, 0x1da3a, +0x1da6d, 0x1da74, +0x1da76, 0x1da83, +0x1da85, 0x1da8b, +0x1e14f, 0x1e14f, +0x1e2ff, 0x1e2ff, +0x1e5ff, 0x1e5ff, 0x1e95e, 0x1e95f, -}; /* END of CR_Punct */ +0x1ecac, 0x1ecac, +0x1ecb0, 0x1ecb0, +0x1ed2e, 0x1ed2e, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f10d, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbef, +}; /* END of CR_PosixPunct */ /* PROPERTY: 'Space': POSIX [[:Space:]] */ static const OnigCodePoint @@ -3177,7 +3455,7 @@ CR_Space[] = { 10, /* PROPERTY: 'Upper': POSIX [[:Upper:]] */ static const OnigCodePoint -CR_Upper[] = { 651, +CR_Upper[] = { 656, 0x0041, 0x005a, 0x00c0, 0x00d6, 0x00d8, 0x00de, @@ -3454,6 +3732,7 @@ CR_Upper[] = { 651, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x13a0, 0x13f5, +0x1c89, 0x1c89, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1e00, 0x1e00, @@ -3780,9 +4059,12 @@ CR_Upper[] = { 651, 0xa7c2, 0xa7c2, 0xa7c4, 0xa7c7, 0xa7c9, 0xa7c9, +0xa7cb, 0xa7cc, 0xa7d0, 0xa7d0, 0xa7d6, 0xa7d6, 0xa7d8, 0xa7d8, +0xa7da, 0xa7da, +0xa7dc, 0xa7dc, 0xa7f5, 0xa7f5, 0xff21, 0xff3a, 0x10400, 0x10427, @@ -3792,6 +4074,7 @@ CR_Upper[] = { 651, 0x1058c, 0x10592, 0x10594, 0x10595, 0x10c80, 0x10cb2, +0x10d50, 0x10d65, 0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1d400, 0x1d419, @@ -3841,7 +4124,7 @@ CR_XDigit[] = { 3, /* PROPERTY: 'Word': POSIX [[:Word:]] */ static const OnigCodePoint -CR_Word[] = { 758, +CR_Word[] = { 795, 0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, @@ -3894,7 +4177,7 @@ CR_Word[] = { 758, 0x0860, 0x086a, 0x0870, 0x0887, 0x0889, 0x088e, -0x0898, 0x08e1, +0x0897, 0x08e1, 0x08e3, 0x0963, 0x0966, 0x096f, 0x0971, 0x0983, @@ -3999,7 +4282,7 @@ CR_Word[] = { 758, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -4032,7 +4315,7 @@ CR_Word[] = { 758, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, @@ -4115,7 +4398,7 @@ CR_Word[] = { 758, 0x1c00, 0x1c37, 0x1c40, 0x1c49, 0x1c4d, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1cd0, 0x1cd2, @@ -4201,10 +4484,10 @@ CR_Word[] = { 758, 0xa67f, 0xa6f1, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa827, 0xa82c, 0xa82c, 0xa840, 0xa873, @@ -4302,6 +4585,7 @@ CR_Word[] = { 758, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -4342,10 +4626,14 @@ CR_Word[] = { 758, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d6d, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, -0x10f00, 0x10f1c, +0x10ec2, 0x10ec4, +0x10efc, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10f70, 0x10f85, @@ -4368,7 +4656,7 @@ CR_Word[] = { 758, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -4391,6 +4679,16 @@ CR_Word[] = { 758, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d3, +0x113e1, 0x113e2, 0x11400, 0x1144a, 0x11450, 0x11459, 0x1145e, 0x11461, @@ -4405,6 +4703,7 @@ CR_Word[] = { 758, 0x11650, 0x11659, 0x11680, 0x116b8, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11739, @@ -4428,6 +4727,8 @@ CR_Word[] = { 758, 0x11a50, 0x11a99, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c40, @@ -4449,13 +4750,20 @@ CR_Word[] = { 758, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f5a, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13440, 0x13455, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -4468,6 +4776,8 @@ CR_Word[] = { 758, 0x16b50, 0x16b59, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -4477,12 +4787,14 @@ CR_Word[] = { 758, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -4490,6 +4802,7 @@ CR_Word[] = { 758, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9d, 0x1bc9e, +0x1ccf0, 0x1ccf9, 0x1cf00, 0x1cf2d, 0x1cf30, 0x1cf46, 0x1d165, 0x1d169, @@ -4536,17 +4849,22 @@ CR_Word[] = { 758, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -4593,18 +4911,20 @@ CR_Word[] = { 758, 0x1f170, 0x1f189, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0100, 0xe01ef, }; /* END of CR_Word */ /* PROPERTY: 'Alnum': POSIX [[:Alnum:]] */ static const OnigCodePoint -CR_Alnum[] = { 760, +CR_Alnum[] = { 802, 0x0030, 0x0039, 0x0041, 0x005a, 0x0061, 0x007a, @@ -4619,7 +4939,7 @@ CR_Alnum[] = { 760, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0345, 0x0345, -0x0370, 0x0374, +0x0363, 0x0374, 0x0376, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, @@ -4659,6 +4979,7 @@ CR_Alnum[] = { 760, 0x0860, 0x086a, 0x0870, 0x0887, 0x0889, 0x088e, +0x0897, 0x0897, 0x08a0, 0x08c9, 0x08d4, 0x08df, 0x08e3, 0x08e9, @@ -4743,8 +5064,7 @@ CR_Alnum[] = { 760, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, 0x0be6, 0x0bef, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, +0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, @@ -4769,7 +5089,7 @@ CR_Alnum[] = { 760, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -4812,7 +5132,7 @@ CR_Alnum[] = { 760, 0x0f20, 0x0f29, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f88, 0x0f97, 0x0f99, 0x0fbc, 0x1000, 0x1036, @@ -4888,7 +5208,7 @@ CR_Alnum[] = { 760, 0x1c00, 0x1c36, 0x1c40, 0x1c49, 0x1c4d, 0x1c7d, -0x1c80, 0x1c88, +0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, @@ -4896,7 +5216,7 @@ CR_Alnum[] = { 760, 0x1cf5, 0x1cf6, 0x1cfa, 0x1cfa, 0x1d00, 0x1dbf, -0x1de7, 0x1df4, +0x1dd3, 0x1df4, 0x1e00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, @@ -4975,10 +5295,10 @@ CR_Alnum[] = { 760, 0xa67f, 0xa6ef, 0xa717, 0xa71f, 0xa722, 0xa788, -0xa78b, 0xa7ca, +0xa78b, 0xa7cd, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, -0xa7d5, 0xa7d9, +0xa7d5, 0xa7dc, 0xa7f2, 0xa805, 0xa807, 0xa827, 0xa840, 0xa873, @@ -5072,6 +5392,7 @@ CR_Alnum[] = { 760, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, +0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, @@ -5110,9 +5431,14 @@ CR_Alnum[] = { 760, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, 0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d69, +0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10efc, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, @@ -5122,7 +5448,7 @@ CR_Alnum[] = { 760, 0x11000, 0x11045, 0x11066, 0x1106f, 0x11071, 0x11075, -0x11082, 0x110b8, +0x11080, 0x110b8, 0x110c2, 0x110c2, 0x110d0, 0x110e8, 0x110f0, 0x110f9, @@ -5138,7 +5464,7 @@ CR_Alnum[] = { 760, 0x11200, 0x11211, 0x11213, 0x11234, 0x11237, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -5159,6 +5485,17 @@ CR_Alnum[] = { 760, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d, 0x11363, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, +0x113d1, 0x113d1, +0x113d3, 0x113d3, 0x11400, 0x11441, 0x11443, 0x11445, 0x11447, 0x1144a, @@ -5178,6 +5515,7 @@ CR_Alnum[] = { 760, 0x11680, 0x116b5, 0x116b8, 0x116b8, 0x116c0, 0x116c9, +0x116d0, 0x116e3, 0x11700, 0x1171a, 0x1171d, 0x1172a, 0x11730, 0x11739, @@ -5203,6 +5541,8 @@ CR_Alnum[] = { 760, 0x11a50, 0x11a97, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c3e, @@ -5228,13 +5568,21 @@ CR_Alnum[] = { 760, 0x11d98, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, +0x11f50, 0x11f59, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, 0x14400, 0x14646, +0x16100, 0x1612e, +0x16130, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, @@ -5246,6 +5594,8 @@ CR_Alnum[] = { 760, 0x16b50, 0x16b59, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, @@ -5255,12 +5605,14 @@ CR_Alnum[] = { 760, 0x16ff0, 0x16ff1, 0x17000, 0x187f7, 0x18800, 0x18cd5, -0x18d00, 0x18d08, +0x18cff, 0x18d08, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -5268,6 +5620,7 @@ CR_Alnum[] = { 760, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9e, 0x1bc9e, +0x1ccf0, 0x1ccf9, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, @@ -5300,11 +5653,14 @@ CR_Alnum[] = { 760, 0x1d7c4, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e140, 0x1e149, @@ -5312,6 +5668,10 @@ CR_Alnum[] = { 760, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, 0x1e2f0, 0x1e2f9, +0x1e4d0, 0x1e4eb, +0x1e4f0, 0x1e4f9, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5fa, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -5359,12 +5719,14 @@ CR_Alnum[] = { 760, 0x1f170, 0x1f189, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Alnum */ /* PROPERTY: 'ASCII': POSIX [[:ASCII:]] */ @@ -5384,7 +5746,7 @@ const CodeRanges[] = { CR_Graph, CR_Lower, CR_Print, - CR_Punct, + CR_PosixPunct, CR_Space, CR_Upper, CR_XDigit, @@ -5398,7 +5760,7 @@ const CodeRanges[] = { #define TOTAL_KEYWORDS 15 #define MIN_WORD_LENGTH 4 -#define MAX_WORD_LENGTH 7 +#define MAX_WORD_LENGTH 10 #define MIN_HASH_VALUE 5 #define MAX_HASH_VALUE 19 /* maximum key range = 15, duplicates = 0 */ @@ -5466,13 +5828,13 @@ hash (register const char *str, register size_t len) 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 2, 12, 5, 3, 20, - 20, 10, 20, 0, 20, 20, 9, 20, 1, 20, - 0, 20, 9, 7, 3, 6, 20, 2, 3, 20, - 20, 20, 20, 20, 20, 20, 20, 2, 12, 5, - 3, 20, 20, 10, 20, 0, 20, 20, 9, 20, - 1, 20, 0, 20, 9, 7, 3, 6, 20, 2, - 3, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 0, 14, 8, 1, 20, + 20, 12, 20, 1, 20, 20, 10, 20, 4, 20, + 1, 20, 10, 0, 1, 4, 20, 1, 1, 20, + 20, 20, 20, 20, 20, 20, 20, 0, 14, 8, + 1, 20, 20, 12, 20, 1, 20, 20, 10, 20, + 4, 20, 1, 20, 10, 0, 1, 4, 20, 1, + 1, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, @@ -5492,16 +5854,16 @@ hash (register const char *str, register size_t len) struct unicode_prop_name_pool_t { - char unicode_prop_name_pool_str5[sizeof("print")]; - char unicode_prop_name_pool_str6[sizeof("punct")]; - char unicode_prop_name_pool_str7[sizeof("alpha")]; - char unicode_prop_name_pool_str8[sizeof("alnum")]; - char unicode_prop_name_pool_str9[sizeof("xdigit")]; - char unicode_prop_name_pool_str10[sizeof("newline")]; - char unicode_prop_name_pool_str11[sizeof("upper")]; - char unicode_prop_name_pool_str12[sizeof("ascii")]; - char unicode_prop_name_pool_str13[sizeof("cntrl")]; - char unicode_prop_name_pool_str14[sizeof("space")]; + char unicode_prop_name_pool_str5[sizeof("space")]; + char unicode_prop_name_pool_str6[sizeof("alpha")]; + char unicode_prop_name_pool_str7[sizeof("print")]; + char unicode_prop_name_pool_str8[sizeof("xdigit")]; + char unicode_prop_name_pool_str9[sizeof("alnum")]; + char unicode_prop_name_pool_str10[sizeof("upper")]; + char unicode_prop_name_pool_str11[sizeof("posixpunct")]; + char unicode_prop_name_pool_str12[sizeof("newline")]; + char unicode_prop_name_pool_str13[sizeof("ascii")]; + char unicode_prop_name_pool_str14[sizeof("cntrl")]; char unicode_prop_name_pool_str15[sizeof("word")]; char unicode_prop_name_pool_str16[sizeof("lower")]; char unicode_prop_name_pool_str17[sizeof("graph")]; @@ -5510,16 +5872,16 @@ struct unicode_prop_name_pool_t }; static const struct unicode_prop_name_pool_t unicode_prop_name_pool_contents = { - "print", - "punct", + "space", "alpha", - "alnum", + "print", "xdigit", - "newline", + "alnum", "upper", + "posixpunct", + "newline", "ascii", "cntrl", - "space", "word", "lower", "graph", @@ -5534,25 +5896,25 @@ unicode_lookup_property_name (register const char *str, register size_t len) { {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(5), 7}, + {pool_offset(5), 9}, - {pool_offset(6), 8}, + {pool_offset(6), 1}, - {pool_offset(7), 1}, + {pool_offset(7), 7}, - {pool_offset(8), 13}, + {pool_offset(8), 11}, - {pool_offset(9), 11}, + {pool_offset(9), 13}, - {pool_offset(10), 0}, + {pool_offset(10), 10}, - {pool_offset(11), 10}, + {pool_offset(11), 8}, - {pool_offset(12), 14}, + {pool_offset(12), 0}, - {pool_offset(13), 3}, + {pool_offset(13), 14}, - {pool_offset(14), 9}, + {pool_offset(14), 3}, {pool_offset(15), 12}, @@ -5586,7 +5948,7 @@ unicode_lookup_property_name (register const char *str, register size_t len) -#define PROPERTY_NAME_MAX_SIZE 17 +#define PROPERTY_NAME_MAX_SIZE 20 #define CODE_RANGES_NUM 15 #define PROP_INDEX_NEWLINE 0 @@ -5597,7 +5959,7 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_GRAPH 5 #define PROP_INDEX_LOWER 6 #define PROP_INDEX_PRINT 7 -#define PROP_INDEX_PUNCT 8 +#define PROP_INDEX_POSIXPUNCT 8 #define PROP_INDEX_SPACE 9 #define PROP_INDEX_UPPER 10 #define PROP_INDEX_XDIGIT 11 diff --git a/src/unicode_unfold_key.c b/src/unicode_unfold_key.c index 654b10b..37f49b9 100644 --- a/src/unicode_unfold_key.c +++ b/src/unicode_unfold_key.c @@ -9,7 +9,7 @@ /* This gperf source file was generated by make_unicode_fold_data.py */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,12 +35,12 @@ */ #include "regint.h" -#define TOTAL_KEYWORDS 1530 +#define TOTAL_KEYWORDS 1557 #define MIN_WORD_LENGTH 3 #define MAX_WORD_LENGTH 3 #define MIN_HASH_VALUE 8 -#define MAX_HASH_VALUE 1947 -/* maximum key range = 1940, duplicates = 0 */ +#define MAX_HASH_VALUE 2248 +/* maximum key range = 2241, duplicates = 0 */ #ifdef __GNUC__ __inline @@ -55,36 +55,36 @@ hash(OnigCodePoint codes[]) { static const unsigned short asso_values[] = { - 9, 7, 4, 195, 146, 1, 304, 1948, 1948, 1948, - 1948, 1948, 1948, 11, 1948, 1948, 1948, 77, 1948, 1948, - 73, 1948, 1948, 1948, 1948, 82, 1948, 1948, 1948, 8, - 1948, 2, 3, 1948, 79, 588, 1583, 276, 1576, 582, - 1573, 574, 1648, 568, 1568, 0, 1560, 562, 1550, 553, - 1540, 918, 1645, 912, 1535, 527, 1532, 513, 1474, 547, - 1518, 536, 1511, 504, 1492, 801, 1612, 745, 1407, 658, - 1642, 651, 1639, 604, 1597, 641, 1634, 596, 1502, 635, - 1627, 621, 1619, 1157, 538, 1194, 530, 1495, 380, 1427, - 83, 1485, 906, 1314, 475, 393, 129, 1413, 924, 1439, - 1459, 1355, 1287, 1173, 1080, 1134, 350, 836, 1319, 494, - 1603, 24, 1059, 698, 1500, 944, 1479, 928, 1435, 899, - 1242, 858, 23, 1351, 283, 1343, 440, 1467, 303, 1463, - 213, 1186, 205, 1163, 243, 1144, 191, 1338, 200, 1127, - 1022, 1122, 845, 1095, 421, 1075, 194, 1068, 419, 1059, - 207, 1458, 292, 1250, 63, 1452, 1178, 1603, 613, 831, - 1, 724, 1330, 426, 1329, 414, 1312, 16, 5, 347, - 1047, 486, 6, 399, 1443, 474, 435, 388, 624, 33, - 752, 311, 1304, 293, 1297, 220, 709, 202, 1293, 377, - 1284, 336, 1274, 464, 1263, 91, 1039, 121, 1035, 81, - 1026, 71, 817, 164, 730, 154, 701, 111, 404, 101, - 1015, 135, 687, 51, 673, 368, 1009, 266, 608, 62, - 987, 254, 1008, 246, 1251, 184, 1247, 666, 1269, 456, - 1237, 447, 1005, 998, 284, 985, 1240, 954, 1230, 1218, - 1208, 1376, 1220, 175, 1521, 812, 146, 773, 761, 976, - 143, 968, 355, 518, 40, 1433, 131, 1151, 251, 238, - 1948, 887, 105, 1424, 1948, 1420, 95, 1409, 75, 1401, - 193, 1391, 23, 1089, 1948, 963, 84, 1397, 14, 1384, - 53, 1599, 229, 1591, 260, 1378, 45, 1584, 291, 792, - 63 + 9, 7, 4, 52, 130, 1, 169, 2249, 2249, 2249, + 2249, 2249, 2249, 21, 155, 2249, 2249, 78, 2249, 2249, + 100, 2249, 2249, 2249, 2249, 84, 2249, 2249, 2249, 8, + 2249, 2, 3, 2249, 834, 718, 1614, 141, 1598, 712, + 1570, 694, 1668, 706, 1606, 0, 1593, 680, 1584, 651, + 1579, 1006, 1665, 1000, 1560, 688, 1553, 410, 1539, 645, + 1545, 639, 1530, 633, 269, 988, 1662, 966, 1122, 817, + 1647, 751, 994, 743, 379, 789, 1657, 261, 959, 783, + 1651, 771, 599, 826, 381, 1151, 286, 1521, 206, 1516, + 68, 1511, 915, 1431, 1607, 1640, 697, 671, 1531, 1507, + 1434, 1420, 1367, 1257, 1387, 1243, 717, 920, 1125, 613, + 1363, 331, 178, 909, 774, 843, 1451, 829, 1422, 822, + 1026, 724, 510, 1239, 754, 1222, 1324, 1413, 1072, 1409, + 764, 949, 316, 473, 384, 27, 169, 1405, 63, 1206, + 888, 1197, 879, 1189, 873, 386, 371, 1161, 903, 1139, + 807, 347, 613, 1398, 272, 197, 1633, 1449, 279, 1180, + 1, 1383, 286, 510, 1374, 490, 228, 15, 5, 398, + 1130, 595, 6, 464, 363, 574, 566, 457, 1228, 35, + 1112, 357, 1357, 324, 1330, 240, 158, 220, 1348, 432, + 1340, 548, 1326, 539, 1318, 97, 1106, 127, 1105, 85, + 1098, 76, 902, 211, 500, 189, 848, 118, 760, 106, + 1088, 151, 866, 56, 895, 419, 584, 315, 856, 66, + 1048, 303, 1290, 295, 1275, 274, 1257, 805, 657, 443, + 1312, 531, 1081, 1074, 253, 1065, 1311, 482, 1056, 561, + 1301, 1508, 1433, 1043, 1520, 1285, 929, 1634, 392, 1034, + 183, 1022, 42, 1014, 246, 1275, 26, 1266, 76, 1502, + 2249, 604, 70, 1497, 2249, 1491, 50, 1487, 41, 1478, + 342, 1471, 26, 1251, 2249, 666, 88, 1465, 19, 1460, + 46, 1627, 44, 1621, 207, 1443, 13, 1096, 17, 427, + 9 }; return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+35] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)+1] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)]; } @@ -97,415 +97,444 @@ onigenc_unicode_unfold_key(OnigCodePoint code) {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1040a, 3465, 1}, + {0x1040a, 3480, 1}, - {0x2c0a, 2606, 1}, + {0x2c0a, 2615, 1}, - {0x040a, 1029, 1}, + {0x040a, 1035, 1}, - {0x1e0a, 1882, 1}, + {0x1e0a, 1891, 1}, - {0x1f0a, 2243, 1}, + {0x1f0a, 2252, 1}, {0x010a, 186, 1}, {0x017d, 351, 1}, - {0xa77d, 1858, 1}, + {0xa77d, 1867, 1}, - {0xab7d, 1639, 1}, + {0xab7d, 1645, 1}, {0x1f85, 154, 2}, {0x1f89, 134, 2}, - {0x0189, 619, 1}, + {0x0189, 622, 1}, - {0xab85, 1663, 1}, + {0xab85, 1669, 1}, - {0xab89, 1675, 1}, + {0xab89, 1681, 1}, - {0x1c85, 954, 1}, + {0x1c85, 960, 1}, - {0x10c85, 3783, 1}, + {0x1c89, 1864, 1}, - {0x10c89, 3795, 1}, + {0x2c84, 2759, 1}, - {0x2c84, 2750, 1}, + {0x1ffb, 2429, 1}, - {0x1ff3, 96, 2}, - - {0x1e84, 2066, 1}, + {0x1e84, 2075, 1}, {0x1f84, 149, 2}, {0x0184, 360, 1}, - {0xa784, 3264, 1}, + {0xa784, 3273, 1}, - {0xab84, 1660, 1}, + {0xab84, 1666, 1}, - {0x2ced, 2897, 1}, + {0x1ff3, 96, 2}, - {0x1c84, 954, 1}, + {0x1c84, 960, 1}, - {0x10c84, 3780, 1}, + {0x10c85, 3798, 1}, - {0x1e4c, 1981, 1}, + {0x10c89, 3810, 1}, - {0x1f4c, 2339, 1}, + {0x2ced, 2906, 1}, - {0x014c, 279, 1}, + {0x2c64, 682, 1}, - {0xa74c, 3195, 1}, + {0x0464, 1060, 1}, - {0x0057, 65, 1}, + {0x1e64, 2027, 1}, - {0x004c, 31, 1}, + {0xa684, 3108, 1}, - {0xa684, 3099, 1}, + {0x0164, 315, 1}, - {0x2c90, 2768, 1}, + {0xa764, 3240, 1}, - {0x0490, 1108, 1}, + {0x00dd, 162, 1}, + + {0x10c84, 3795, 1}, + + {0x2c90, 2777, 1}, - {0x1e90, 2084, 1}, + {0x0490, 1114, 1}, + + {0x1e90, 2093, 1}, {0x1f90, 169, 2}, - {0x0190, 628, 1}, + {0x0190, 631, 1}, - {0xa790, 3273, 1}, + {0xa790, 3282, 1}, - {0xab90, 1696, 1}, + {0xab90, 1702, 1}, - {0xa64c, 3042, 1}, + {0xa664, 3087, 1}, - {0x1c90, 1462, 1}, + {0x1c90, 1468, 1}, - {0x10c90, 3816, 1}, + {0x1fe9, 2447, 1}, - {0x1fdb, 2402, 1}, + {0x1fd9, 2441, 1}, - {0x01db, 450, 1}, + {0x01d9, 450, 1}, - {0x16e57, 4086, 1}, + {0x1ff7, 67, 3}, - {0x16e4c, 4053, 1}, + {0x01f7, 417, 1}, - {0x00db, 156, 1}, + {0x00d9, 150, 1}, + + {0xa690, 3126, 1}, - {0x1ffb, 2420, 1}, + {0xa7f5, 3366, 1}, - {0xa690, 3117, 1}, + {0x020a, 520, 1}, + + {0x1fe7, 47, 3}, - {0x104b2, 3561, 1}, + {0x10c90, 3831, 1}, - {0x2cb2, 2819, 1}, + {0x104b2, 3576, 1}, - {0x04b2, 1159, 1}, + {0x2cb2, 2828, 1}, - {0x1eb2, 2120, 1}, + {0x04b2, 1165, 1}, + + {0x1eb2, 2129, 1}, {0x1fb2, 249, 2}, - {0x01b2, 700, 1}, + {0x01b2, 706, 1}, - {0xa7b2, 709, 1}, + {0xa7b2, 715, 1}, - {0xabb2, 1798, 1}, + {0xabb2, 1804, 1}, - {0xa7f5, 3351, 1}, + {0x2c67, 2738, 1}, - {0x1cb2, 1564, 1}, + {0x1cb2, 1570, 1}, - {0x10cb2, 3918, 1}, + {0x104b8, 3594, 1}, - {0x104b8, 3579, 1}, + {0x2cb8, 2837, 1}, - {0x2cb8, 2828, 1}, + {0x04b8, 1174, 1}, - {0x04b8, 1168, 1}, + {0x1eb8, 2138, 1}, - {0x1eb8, 2129, 1}, + {0x1fb8, 2432, 1}, - {0x1fb8, 2423, 1}, + {0x01b8, 411, 1}, - {0x01b8, 408, 1}, + {0xa7b8, 3327, 1}, - {0xa7b8, 3318, 1}, + {0xabb8, 1822, 1}, - {0xabb8, 1816, 1}, + {0x1fe3, 41, 3}, - {0xab77, 1621, 1}, + {0x1cb8, 1588, 1}, - {0x1cb8, 1582, 1}, + {0x10cb2, 3933, 1}, - {0x2ca6, 2801, 1}, + {0x2ca6, 2810, 1}, - {0x04a6, 1141, 1}, + {0x04a6, 1147, 1}, - {0x1ea6, 2102, 1}, + {0x1ea6, 2111, 1}, {0x1fa6, 239, 2}, - {0x01a6, 679, 1}, - - {0xa7a6, 3306, 1}, + {0x01a6, 685, 1}, - {0xaba6, 1762, 1}, + {0xa7a6, 3315, 1}, - {0x1fe9, 2438, 1}, + {0xaba6, 1768, 1}, - {0x1ca6, 1528, 1}, + {0x00df, 24, 2}, - {0x10ca6, 3882, 1}, + {0x1ca6, 1534, 1}, - {0x2ca4, 2798, 1}, + {0x2ca4, 2807, 1}, - {0x04a4, 1138, 1}, + {0x04a4, 1144, 1}, - {0x1ea4, 2099, 1}, + {0x1ea4, 2108, 1}, {0x1fa4, 229, 2}, - {0x01a4, 390, 1}, + {0x01a4, 393, 1}, - {0xa7a4, 3303, 1}, + {0xa7a4, 3312, 1}, - {0xaba4, 1756, 1}, + {0xaba4, 1762, 1}, - {0x01f1, 483, 1}, + {0x01f1, 486, 1}, - {0x1ca4, 1522, 1}, + {0x1ca4, 1528, 1}, - {0x10ca4, 3876, 1}, + {0xff37, 3438, 1}, - {0x2ca0, 2792, 1}, + {0x10ca6, 3897, 1}, + {0xffffffff, -1, 0}, - {0x04a0, 1132, 1}, + {0x2ca0, 2801, 1}, - {0x1ea0, 2093, 1}, + {0x04a0, 1138, 1}, - {0x1fa0, 209, 2}, + {0x1ea0, 2102, 1}, - {0x01a0, 384, 1}, + {0x1fa0, 209, 2}, - {0xa7a0, 3297, 1}, + {0x01a0, 387, 1}, - {0xaba0, 1744, 1}, + {0xa7a0, 3306, 1}, - {0x1fe7, 47, 3}, + {0xaba0, 1750, 1}, - {0x1ca0, 1510, 1}, + {0x10ca4, 3891, 1}, - {0x10ca0, 3864, 1}, + {0x1ca0, 1516, 1}, - {0x2cae, 2813, 1}, + {0x2cae, 2822, 1}, - {0x04ae, 1153, 1}, + {0x04ae, 1159, 1}, - {0x1eae, 2114, 1}, + {0x1eae, 2123, 1}, {0x1fae, 239, 2}, - {0x01ae, 691, 1}, + {0x01ae, 697, 1}, - {0xa7ae, 655, 1}, + {0xa7ae, 661, 1}, - {0xabae, 1786, 1}, + {0xabae, 1792, 1}, - {0x1fe3, 41, 3}, + {0x13fb, 1855, 1}, - {0x1cae, 1552, 1}, + {0x1cae, 1558, 1}, + {0xffffffff, -1, 0}, - {0x10cae, 3906, 1}, + {0x10ca0, 3879, 1}, - {0x2cac, 2810, 1}, + {0x13fd, 1861, 1}, - {0x04ac, 1150, 1}, + {0x2cac, 2819, 1}, - {0x1eac, 2111, 1}, + {0x04ac, 1156, 1}, - {0x1fac, 229, 2}, + {0x1eac, 2120, 1}, - {0x01ac, 396, 1}, + {0x1fac, 229, 2}, - {0xa7ac, 637, 1}, + {0x01ac, 399, 1}, - {0xabac, 1780, 1}, + {0xa7ac, 640, 1}, - {0x13fb, 1849, 1}, + {0xabac, 1786, 1}, - {0x1cac, 1546, 1}, + {0x10cae, 3921, 1}, - {0x10cac, 3900, 1}, + {0x1cac, 1552, 1}, - {0x2ca2, 2795, 1}, + {0x2ca2, 2804, 1}, - {0x04a2, 1135, 1}, + {0x04a2, 1141, 1}, - {0x1ea2, 2096, 1}, + {0x1ea2, 2105, 1}, {0x1fa2, 219, 2}, - {0x01a2, 387, 1}, + {0x01a2, 390, 1}, - {0xa7a2, 3300, 1}, + {0xa7a2, 3309, 1}, - {0xaba2, 1750, 1}, + {0xaba2, 1756, 1}, - {0x10b2, 2957, 1}, + {0x10b2, 2966, 1}, - {0x1ca2, 1516, 1}, + {0x1ca2, 1522, 1}, - {0x10ca2, 3870, 1}, + {0x0389, 745, 1}, - {0x118b2, 3975, 1}, + {0x10cac, 3915, 1}, - {0x1f3d, 2318, 1}, + {0x118b2, 4056, 1}, - {0x013d, 258, 1}, + {0x03ff, 736, 1}, - {0x104b0, 3555, 1}, + {0x10402, 3456, 1}, - {0x2cb0, 2816, 1}, + {0x2c02, 2591, 1}, - {0x04b0, 1156, 1}, + {0x0402, 1011, 1}, - {0x1eb0, 2117, 1}, + {0x1e02, 1879, 1}, - {0x00dd, 162, 1}, + {0x10b8, 2984, 1}, - {0x10b8, 2975, 1}, + {0x0102, 174, 1}, - {0xa7b0, 712, 1}, + {0x10ca2, 3885, 1}, - {0xabb0, 1792, 1}, + {0x03fd, 730, 1}, - {0x118b8, 3993, 1}, + {0x118b8, 4074, 1}, + {0xffffffff, -1, 0}, - {0x1cb0, 1558, 1}, + {0x104b0, 3570, 1}, - {0x10cb0, 3912, 1}, + {0x2cb0, 2825, 1}, - {0x104d3, 3660, 1}, + {0x04b0, 1162, 1}, - {0x1fd7, 31, 3}, + {0x1eb0, 2126, 1}, - {0x01d7, 444, 1}, + {0x10a6, 2930, 1}, + {0xffffffff, -1, 0}, - {0x10a6, 2921, 1}, + {0xa7b0, 718, 1}, - {0x1fd3, 25, 3}, + {0xabb0, 1798, 1}, - {0x01d3, 438, 1}, + {0x118a6, 4020, 1}, - {0x118a6, 3939, 1}, + {0x1cb0, 1564, 1}, - {0x0389, 739, 1}, + {0x1e97, 34, 2}, - {0x00d3, 135, 1}, + {0x1f97, 204, 2}, - {0x2caa, 2807, 1}, + {0x0197, 655, 1}, - {0x04aa, 1147, 1}, + {0x10a4, 2924, 1}, - {0x1eaa, 2108, 1}, + {0xab97, 1723, 1}, - {0x1faa, 219, 2}, + {0x0390, 25, 3}, - {0x10a4, 2915, 1}, + {0x1c97, 1489, 1}, - {0xa7aa, 646, 1}, + {0x118a4, 4014, 1}, - {0xabaa, 1774, 1}, + {0x1057d, 3714, 1}, - {0x118a4, 3933, 1}, + {0x050a, 1297, 1}, - {0x1caa, 1540, 1}, + {0x10cb0, 3927, 1}, + {0xffffffff, -1, 0}, - {0x10caa, 3894, 1}, + {0x10585, 3738, 1}, - {0x2ca8, 2804, 1}, + {0x10589, 3750, 1}, - {0x04a8, 1144, 1}, + {0x03f7, 896, 1}, - {0x1ea8, 2105, 1}, + {0x10a0, 2912, 1}, - {0x1fa8, 209, 2}, + {0x03f5, 764, 1}, - {0x10a0, 2903, 1}, + {0x10c97, 3852, 1}, + {0xffffffff, -1, 0}, - {0xa7a8, 3309, 1}, + {0x118a0, 4002, 1}, - {0xaba8, 1768, 1}, + {0x10d64, 3996, 1}, - {0x118a0, 3921, 1}, + {0x1f4d, 2351, 1}, - {0x1ca8, 1534, 1}, + {0x10584, 3735, 1}, - {0x10ca8, 3888, 1}, + {0xfb02, 12, 2}, - {0x104d0, 3651, 1}, + {0x10ae, 2954, 1}, - {0x2cd0, 2864, 1}, + {0x004d, 34, 1}, - {0x04d0, 1204, 1}, + {0x1fd7, 31, 3}, - {0x1ed0, 2165, 1}, + {0x01d7, 447, 1}, - {0x10ae, 2945, 1}, + {0x118ae, 4044, 1}, - {0x0390, 25, 3}, + {0x2caa, 2816, 1}, - {0xa7d0, 3342, 1}, + {0x04aa, 1153, 1}, - {0x118ae, 3963, 1}, + {0x1eaa, 2117, 1}, - {0x00d0, 126, 1}, + {0x1faa, 219, 2}, - {0x104be, 3597, 1}, + {0x0202, 508, 1}, - {0x2cbe, 2837, 1}, + {0xa7aa, 652, 1}, - {0x04be, 1177, 1}, + {0xabaa, 1780, 1}, - {0x1ebe, 2138, 1}, + {0x10ac, 2948, 1}, - {0x1fbe, 773, 1}, + {0x1caa, 1546, 1}, - {0x10ac, 2939, 1}, + {0x0478, 1090, 1}, - {0xa7be, 3327, 1}, + {0x1e78, 2057, 1}, - {0xabbe, 1834, 1}, + {0x118ac, 4038, 1}, - {0x118ac, 3957, 1}, + {0x0178, 168, 1}, - {0x1cbe, 1594, 1}, + {0x10590, 3768, 1}, - {0x2ceb, 2894, 1}, + {0xab78, 1630, 1}, + {0xffffffff, -1, 0}, + + {0x10a2, 2918, 1}, + + {0x03a6, 822, 1}, + + {0x24b8, 2513, 1}, - {0x2c6f, 604, 1}, + {0x10caa, 3909, 1}, - {0x020a, 517, 1}, + {0x118a2, 4008, 1}, - {0x1feb, 2414, 1}, + {0x1ff9, 2417, 1}, - {0x1f6f, 2378, 1}, + {0x2ca8, 2813, 1}, - {0x10a2, 2909, 1}, + {0x04a8, 1150, 1}, + + {0x1ea8, 2114, 1}, + + {0x1fa8, 209, 2}, - {0x03f5, 758, 1}, + {0x03a4, 816, 1}, - {0x2c67, 2729, 1}, + {0xa7a8, 3318, 1}, - {0x118a2, 3927, 1}, + {0xaba8, 1774, 1}, - {0x2c98, 2780, 1}, + {0x03f1, 808, 1}, - {0x0498, 1120, 1}, + {0x1ca8, 1540, 1}, + + {0x2c98, 2789, 1}, + + {0x0498, 1126, 1}, {0x1e98, 38, 2}, @@ -513,2869 +542,2943 @@ onigenc_unicode_unfold_key(OnigCodePoint code) {0x0198, 375, 1}, - {0xa798, 3285, 1}, + {0xa798, 3294, 1}, + + {0xab98, 1726, 1}, - {0xab98, 1720, 1}, + {0x03a0, 804, 1}, - {0x03ff, 730, 1}, + {0x1c98, 1492, 1}, - {0x1c98, 1486, 1}, + {0x10b0, 2960, 1}, - {0x10c98, 3840, 1}, + {0x10ca8, 3903, 1}, - {0x10b0, 2951, 1}, + {0x1f83, 144, 2}, - {0xab73, 1609, 1}, + {0xff35, 3432, 1}, - {0xff37, 3423, 1}, + {0x118b0, 4050, 1}, - {0x118b0, 3969, 1}, + {0xab83, 1663, 1}, - {0x1f5f, 2354, 1}, + {0xa698, 3138, 1}, - {0x03a6, 816, 1}, + {0x1c83, 956, 1}, - {0xa698, 3129, 1}, + {0x0537, 1372, 1}, + {0xffffffff, -1, 0}, - {0x024c, 598, 1}, + {0x10c98, 3855, 1}, - {0x2c96, 2777, 1}, + {0x2c96, 2786, 1}, - {0x0496, 1117, 1}, + {0x0496, 1123, 1}, {0x1e96, 16, 2}, {0x1f96, 199, 2}, - {0x0196, 652, 1}, + {0x0196, 658, 1}, - {0xa796, 3282, 1}, + {0xa796, 3291, 1}, - {0xab96, 1714, 1}, + {0xab96, 1720, 1}, - {0x03a4, 810, 1}, + {0x10c83, 3792, 1}, - {0x1c96, 1480, 1}, + {0x1c96, 1486, 1}, - {0x10c96, 3834, 1}, + {0x1fdb, 2411, 1}, - {0x03f1, 802, 1}, + {0x01db, 453, 1}, - {0x10aa, 2933, 1}, + {0x1e90a, 4224, 1}, - {0x1ff7, 67, 3}, + {0x104c7, 3639, 1}, - {0x01f7, 414, 1}, + {0x00db, 156, 1}, - {0x118aa, 3951, 1}, + {0x04c7, 1195, 1}, - {0x16e5f, 4110, 1}, + {0xa696, 3135, 1}, - {0xa696, 3126, 1}, + {0x1fc7, 15, 3}, - {0x03a0, 798, 1}, + {0x01c7, 424, 1}, - {0x2ce0, 2888, 1}, + {0xa7c7, 3345, 1}, - {0x04e0, 1228, 1}, + {0x10c96, 3849, 1}, - {0x1ee0, 2189, 1}, + {0x00c7, 99, 1}, - {0x10a8, 2927, 1}, + {0x2c2a, 2711, 1}, - {0x01e0, 459, 1}, + {0x042a, 986, 1}, - {0x2c63, 1861, 1}, + {0x1e2a, 1939, 1}, - {0x118a8, 3945, 1}, + {0x1f2a, 2294, 1}, - {0x104bc, 3591, 1}, + {0x012a, 234, 1}, - {0x2cbc, 2834, 1}, + {0xa72a, 3156, 1}, - {0x04bc, 1174, 1}, + {0x10aa, 2942, 1}, - {0x1ebc, 2135, 1}, + {0x1041d, 3537, 1}, - {0x1fbc, 62, 2}, + {0x2c1d, 2672, 1}, - {0x01bc, 411, 1}, + {0x041d, 943, 1}, - {0xa7bc, 3324, 1}, + {0x118aa, 4032, 1}, - {0xabbc, 1828, 1}, + {0x1f1d, 2285, 1}, - {0x104ba, 3585, 1}, + {0x104be, 3612, 1}, - {0x2cba, 2831, 1}, + {0x2cbe, 2846, 1}, - {0x04ba, 1171, 1}, + {0x04be, 1183, 1}, - {0x1eba, 2132, 1}, + {0x1ebe, 2147, 1}, - {0x1fba, 2381, 1}, + {0x1fbe, 779, 1}, - {0x00df, 24, 2}, + {0xab77, 1627, 1}, - {0xa7ba, 3321, 1}, + {0xa7be, 3336, 1}, - {0xabba, 1822, 1}, + {0xabbe, 1840, 1}, - {0x10be, 2993, 1}, + {0x03b0, 41, 3}, - {0x1cba, 1588, 1}, + {0x1cbe, 1600, 1}, - {0x1ff9, 2408, 1}, + {0x017b, 348, 1}, - {0x118be, 4011, 1}, + {0xa77b, 3261, 1}, - {0x104b6, 3573, 1}, + {0xab7b, 1639, 1}, - {0x2cb6, 2825, 1}, + {0x2c7f, 586, 1}, - {0x04b6, 1165, 1}, + {0xff2a, 3399, 1}, - {0x1eb6, 2126, 1}, + {0x0397, 771, 1}, - {0x1fb6, 58, 2}, + {0x10a8, 2936, 1}, + + {0x017f, 52, 1}, + {0xffffffff, -1, 0}, - {0x2165, 2462, 1}, + {0xab7f, 1651, 1}, - {0xa7b6, 3315, 1}, + {0x118a8, 4026, 1}, - {0xabb6, 1810, 1}, + {0x104bc, 3606, 1}, - {0x216f, 2492, 1}, + {0x2cbc, 2843, 1}, - {0x1cb6, 1576, 1}, + {0x04bc, 1180, 1}, - {0x10402, 3441, 1}, + {0x1ebc, 2144, 1}, - {0x2c02, 2582, 1}, + {0x1fbc, 62, 2}, - {0x0402, 1005, 1}, + {0x01bc, 414, 1}, - {0x1e02, 1870, 1}, + {0xa7bc, 3333, 1}, - {0x2167, 2468, 1}, + {0xabbc, 1834, 1}, - {0x0102, 174, 1}, + {0x104ba, 3600, 1}, - {0x03b0, 41, 3}, + {0x2cba, 2840, 1}, - {0x1e90a, 4143, 1}, + {0x04ba, 1177, 1}, - {0x104c7, 3624, 1}, + {0x1eba, 2141, 1}, - {0x2161, 2450, 1}, + {0x1fba, 2390, 1}, - {0x04c7, 1189, 1}, + {0x13f9, 1849, 1}, - {0x1f59, 2345, 1}, + {0xa7ba, 3330, 1}, - {0x1fc7, 15, 3}, + {0xabba, 1828, 1}, - {0x01c7, 421, 1}, + {0x0502, 1285, 1}, - {0xa7c7, 3336, 1}, + {0x1cba, 1594, 1}, - {0x0059, 71, 1}, + {0xff33, 3426, 1}, - {0x00c7, 99, 1}, + {0x022a, 565, 1}, - {0x2c75, 2741, 1}, + {0x104b6, 3588, 1}, - {0x2c94, 2774, 1}, + {0x2cb6, 2834, 1}, - {0x0494, 1114, 1}, + {0x04b6, 1171, 1}, - {0x1e94, 2090, 1}, + {0x1eb6, 2135, 1}, - {0x1f94, 189, 2}, + {0x1fb6, 58, 2}, - {0x0194, 640, 1}, + {0x03aa, 836, 1}, - {0xab75, 1615, 1}, + {0xa7b6, 3324, 1}, - {0xab94, 1708, 1}, + {0xabb6, 1816, 1}, - {0x03aa, 830, 1}, + {0x10d65, 3999, 1}, - {0x1c94, 1474, 1}, + {0x1cb6, 1582, 1}, - {0x10c94, 3828, 1}, + {0x2c94, 2783, 1}, - {0x1057d, 3699, 1}, + {0x0494, 1120, 1}, - {0x050a, 1291, 1}, + {0x1e94, 2099, 1}, - {0x16e59, 4092, 1}, + {0x1f94, 189, 2}, - {0x1f5d, 2351, 1}, + {0x0194, 643, 1}, + {0xffffffff, -1, 0}, - {0x10585, 3723, 1}, + {0xab94, 1714, 1}, - {0x10589, 3735, 1}, + {0x10c7, 3026, 1}, - {0xa694, 3123, 1}, + {0x1c94, 1480, 1}, - {0x03a8, 823, 1}, + {0x1e4c, 1990, 1}, - {0x2c92, 2771, 1}, + {0x1f4c, 2348, 1}, - {0x0492, 1111, 1}, + {0x014c, 279, 1}, - {0x1e92, 2087, 1}, + {0xa74c, 3204, 1}, - {0x1f92, 179, 2}, - {0xffffffff, -1, 0}, + {0x03f9, 890, 1}, - {0xa792, 3276, 1}, + {0x004c, 31, 1}, + + {0xa694, 3132, 1}, + {0xffffffff, -1, 0}, - {0xab92, 1702, 1}, + {0x03a8, 829, 1}, - {0x10584, 3720, 1}, + {0x2ceb, 2903, 1}, - {0x1c92, 1468, 1}, + {0x10c94, 3843, 1}, + {0xffffffff, -1, 0}, - {0x10c92, 3822, 1}, + {0x1feb, 2423, 1}, - {0x03d0, 748, 1}, + {0xa64c, 3051, 1}, - {0x2163, 2456, 1}, + {0x054d, 1438, 1}, - {0x10bc, 2987, 1}, + {0x0474, 1084, 1}, - {0x023d, 378, 1}, + {0x1e74, 2051, 1}, - {0x16e5d, 4104, 1}, + {0x0398, 774, 1}, - {0x118bc, 4005, 1}, + {0x0174, 339, 1}, - {0xa692, 3120, 1}, + {0x10be, 3002, 1}, - {0x054c, 1429, 1}, + {0xab74, 1618, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x10ba, 2981, 1}, - {0xffffffff, -1, 0}, + {0x118be, 4092, 1}, + + {0x2c92, 2780, 1}, + + {0x0492, 1117, 1}, - {0x13f9, 1843, 1}, + {0x1e92, 2096, 1}, - {0x118ba, 3999, 1}, + {0x1f92, 179, 2}, + {0xffffffff, -1, 0}, - {0x10590, 3753, 1}, + {0xa792, 3285, 1}, - {0x2c9c, 2786, 1}, + {0xab92, 1708, 1}, - {0x049c, 1126, 1}, + {0x10578, 3702, 1}, - {0x24b8, 2504, 1}, + {0x1c92, 1474, 1}, - {0x1f9c, 189, 2}, + {0x1f8b, 144, 2}, - {0x019c, 664, 1}, + {0x018b, 366, 1}, - {0xa79c, 3291, 1}, + {0xa78b, 3279, 1}, - {0xab9c, 1732, 1}, + {0xab8b, 1687, 1}, - {0x10b6, 2969, 1}, + {0x0396, 768, 1}, - {0x1c9c, 1498, 1}, + {0x2c6f, 607, 1}, - {0x10c9c, 3852, 1}, + {0xa692, 3129, 1}, - {0x118b6, 3987, 1}, + {0x10bc, 2996, 1}, - {0x2c86, 2753, 1}, + {0x1f6f, 2387, 1}, - {0x0398, 768, 1}, + {0x0535, 1366, 1}, - {0x1e86, 2069, 1}, + {0x10c92, 3837, 1}, - {0x1f86, 159, 2}, + {0x118bc, 4086, 1}, - {0x0186, 616, 1}, + {0x10427, 3567, 1}, - {0xa786, 3267, 1}, + {0x2c27, 2702, 1}, - {0xab86, 1666, 1}, + {0x0427, 977, 1}, - {0x0147, 273, 1}, + {0x10ba, 2990, 1}, - {0x1c86, 980, 1}, + {0x10c8b, 3816, 1}, - {0x10c86, 3786, 1}, + {0x024c, 601, 1}, - {0x0047, 18, 1}, + {0x2c63, 1870, 1}, - {0x1fd9, 2432, 1}, + {0x118ba, 4080, 1}, - {0x01d9, 447, 1}, - {0xffffffff, -1, 0}, + {0x2c6e, 673, 1}, - {0x10c7, 3017, 1}, + {0x046e, 1075, 1}, - {0x00d9, 150, 1}, + {0x1e6e, 2042, 1}, - {0xa686, 3102, 1}, + {0x1f6e, 2384, 1}, - {0x13fd, 1855, 1}, + {0x016e, 330, 1}, - {0x10577, 3684, 1}, + {0xa76e, 3255, 1}, - {0x0396, 762, 1}, + {0x1e902, 4200, 1}, - {0x104b4, 3567, 1}, + {0x10b6, 2978, 1}, - {0x2cb4, 2822, 1}, + {0x24c7, 2558, 1}, - {0x04b4, 1162, 1}, + {0x10583, 3732, 1}, - {0x1eb4, 2123, 1}, + {0x01d5, 444, 1}, - {0x1fb4, 50, 2}, + {0x118b6, 4068, 1}, - {0x16e47, 4038, 1}, + {0x2c86, 2762, 1}, - {0xa7b4, 3312, 1}, + {0x00d5, 141, 1}, - {0xabb4, 1804, 1}, + {0x1e86, 2078, 1}, - {0x03f7, 890, 1}, + {0x1f86, 159, 2}, - {0x1cb4, 1570, 1}, + {0x0186, 619, 1}, - {0x2c9a, 2783, 1}, + {0xa786, 3276, 1}, - {0x049a, 1123, 1}, + {0xab86, 1672, 1}, - {0x1e9a, 0, 2}, + {0xff27, 3390, 1}, - {0x1f9a, 179, 2}, + {0x1c86, 986, 1}, + + {0xff31, 3420, 1}, {0xffffffff, -1, 0}, - {0xa79a, 3288, 1}, + {0x10416, 3516, 1}, - {0xab9a, 1726, 1}, + {0x2c16, 2651, 1}, - {0x03e0, 860, 1}, + {0x0416, 922, 1}, - {0x1c9a, 1492, 1}, + {0x1e16, 1909, 1}, - {0x10c9a, 3846, 1}, + {0xa686, 3111, 1}, - {0x0537, 1366, 1}, + {0x0116, 204, 1}, - {0x2c8e, 2765, 1}, + {0x24be, 2531, 1}, - {0x048e, 1105, 1}, + {0x037f, 893, 1}, - {0x1e8e, 2081, 1}, + {0x10c86, 3801, 1}, - {0x1f8e, 159, 2}, + {0x104b4, 3582, 1}, - {0x018e, 453, 1}, + {0x2cb4, 2831, 1}, - {0xa69a, 3132, 1}, + {0x04b4, 1168, 1}, - {0xab8e, 1690, 1}, + {0x1eb4, 2132, 1}, - {0x1e3c, 1957, 1}, + {0x1fb4, 50, 2}, + {0xffffffff, -1, 0}, - {0x1f3c, 2315, 1}, + {0xa7b4, 3321, 1}, - {0x10c8e, 3810, 1}, + {0xabb4, 1810, 1}, + {0xffffffff, -1, 0}, - {0xa73c, 3171, 1}, + {0x1cb4, 1576, 1}, - {0x2c8a, 2759, 1}, + {0x04fe, 1279, 1}, - {0x048a, 1099, 1}, + {0x1efe, 2243, 1}, - {0x1e8a, 2075, 1}, + {0x052a, 1345, 1}, - {0x1f8a, 139, 2}, + {0x01fe, 502, 1}, - {0x018a, 622, 1}, + {0x2c9a, 2792, 1}, - {0xa68e, 3114, 1}, + {0x049a, 1129, 1}, - {0xab8a, 1678, 1}, + {0x1e9a, 0, 2}, - {0x03f9, 884, 1}, + {0x1f9a, 179, 2}, - {0x1fad, 234, 2}, + {0x24bc, 2525, 1}, - {0x10c8a, 3798, 1}, + {0xa79a, 3297, 1}, - {0xa7ad, 661, 1}, + {0xab9a, 1732, 1}, - {0xabad, 1783, 1}, + {0x10577, 3699, 1}, + + {0x1c9a, 1498, 1}, {0xffffffff, -1, 0}, - {0x1cad, 1549, 1}, + {0x104c2, 3624, 1}, - {0x10cad, 3903, 1}, + {0x2cc2, 2852, 1}, - {0x2c82, 2747, 1}, + {0x24ba, 2519, 1}, - {0xa68a, 3108, 1}, + {0x1ec2, 2153, 1}, - {0x1e82, 2063, 1}, + {0x1fc2, 253, 2}, - {0x1f82, 139, 2}, + {0xa69a, 3141, 1}, - {0x0182, 357, 1}, + {0xa7c2, 3342, 1}, + {0xffffffff, -1, 0}, - {0xa782, 3261, 1}, + {0x00c2, 83, 1}, - {0xab82, 1654, 1}, + {0x10c9a, 3861, 1}, - {0x2c6d, 607, 1}, + {0xfb16, 125, 2}, - {0x1c82, 940, 1}, + {0x1057f, 3720, 1}, - {0x10c82, 3774, 1}, + {0x0394, 761, 1}, - {0x1f6d, 2372, 1}, + {0x0533, 1360, 1}, - {0xab71, 1603, 1}, + {0x24b6, 2507, 1}, - {0x2c80, 2744, 1}, + {0x2c8e, 2774, 1}, - {0x0480, 1096, 1}, + {0x048e, 1111, 1}, - {0x1e80, 2060, 1}, + {0x1e8e, 2090, 1}, - {0x1f80, 129, 2}, + {0x1f8e, 159, 2}, - {0xa682, 3096, 1}, + {0x018e, 456, 1}, - {0xa780, 3258, 1}, + {0x0216, 538, 1}, - {0xab80, 1648, 1}, + {0xab8e, 1696, 1}, - {0x053d, 1384, 1}, + {0x2c8a, 2768, 1}, - {0x1c80, 902, 1}, + {0x048a, 1105, 1}, - {0x10c80, 3768, 1}, - {0xffffffff, -1, 0}, + {0x1e8a, 2084, 1}, - {0x03fd, 724, 1}, + {0x1f8a, 139, 2}, - {0x1f8d, 154, 2}, + {0x018a, 625, 1}, - {0x0394, 755, 1}, + {0x10d61, 3987, 1}, - {0xa78d, 643, 1}, + {0xab8a, 1684, 1}, + {0xffffffff, -1, 0}, - {0xab8d, 1687, 1}, + {0xa68e, 3123, 1}, - {0xa680, 3093, 1}, + {0x2c62, 664, 1}, - {0x1f5b, 2348, 1}, + {0x0462, 1056, 1}, - {0x10c8d, 3807, 1}, + {0x1e62, 2024, 1}, - {0x10b4, 2963, 1}, + {0x10c8e, 3825, 1}, - {0x104c4, 3615, 1}, + {0x0162, 312, 1}, - {0x2cc4, 2846, 1}, + {0xa762, 3237, 1}, - {0x118b4, 3981, 1}, + {0xa68a, 3117, 1}, + {0xffffffff, -1, 0}, - {0x1ec4, 2147, 1}, + {0x104ca, 3648, 1}, - {0x1fc4, 54, 2}, + {0x2cca, 2864, 1}, - {0x01c4, 417, 1}, + {0x10c8a, 3813, 1}, - {0xa7c4, 3279, 1}, - {0xffffffff, -1, 0}, + {0x1eca, 2165, 1}, - {0x00c4, 89, 1}, + {0x1fca, 2402, 1}, - {0x104c2, 3609, 1}, + {0x01ca, 428, 1}, - {0x2cc2, 2843, 1}, + {0x0392, 754, 1}, - {0x0392, 748, 1}, + {0xa662, 3084, 1}, - {0x1ec2, 2144, 1}, + {0x00ca, 108, 1}, - {0x1fc2, 253, 2}, + {0x2c82, 2756, 1}, - {0x24be, 2522, 1}, + {0x10594, 3777, 1}, - {0xa7c2, 3333, 1}, + {0x1e82, 2072, 1}, - {0x16e5b, 4098, 1}, + {0x1f82, 139, 2}, - {0x00c2, 83, 1}, + {0x0182, 357, 1}, - {0x2c9e, 2789, 1}, + {0xa782, 3270, 1}, - {0x049e, 1129, 1}, + {0xab82, 1660, 1}, - {0x1e9e, 24, 2}, + {0x10b4, 2972, 1}, - {0x1f9e, 199, 2}, + {0x1c82, 946, 1}, {0xffffffff, -1, 0}, - {0xa79e, 3294, 1}, + {0x054c, 1435, 1}, - {0xab9e, 1738, 1}, + {0x118b4, 4062, 1}, + {0xffffffff, -1, 0}, - {0x0202, 505, 1}, + {0x1fa9, 214, 2}, - {0x1c9e, 1504, 1}, + {0x01a9, 691, 1}, - {0x10c9e, 3858, 1}, + {0xa682, 3105, 1}, - {0x2c8c, 2762, 1}, + {0xaba9, 1777, 1}, - {0x048c, 1102, 1}, + {0x16e4d, 4137, 1}, - {0x1e8c, 2078, 1}, + {0x1ca9, 1543, 1}, - {0x1f8c, 149, 2}, + {0x10c82, 3789, 1}, - {0x1f3b, 2312, 1}, + {0x2c80, 2753, 1}, - {0x013b, 255, 1}, + {0x0480, 1102, 1}, - {0xab8c, 1684, 1}, + {0x1e80, 2069, 1}, - {0x10ad, 2942, 1}, + {0x1f80, 129, 2}, - {0x039c, 785, 1}, + {0x10574, 3690, 1}, - {0x10c8c, 3804, 1}, + {0xa780, 3267, 1}, - {0x118ad, 3960, 1}, - {0xffffffff, -1, 0}, + {0xab80, 1654, 1}, - {0x2c88, 2756, 1}, - {0xffffffff, -1, 0}, + {0x0057, 65, 1}, - {0x1e88, 2072, 1}, + {0x1c80, 908, 1}, - {0x1f88, 129, 2}, + {0x10ca9, 3906, 1}, - {0xa68c, 3111, 1}, - {0xffffffff, -1, 0}, + {0x1e91d, 4281, 1}, - {0xab88, 1672, 1}, + {0x10c2, 3014, 1}, - {0x0386, 733, 1}, + {0x03d5, 822, 1}, + {0xffffffff, -1, 0}, - {0x1c88, 3038, 1}, + {0x10592, 3774, 1}, - {0x10c88, 3792, 1}, + {0xa680, 3102, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e4a, 1978, 1}, + {0x0386, 739, 1}, - {0x1f4a, 2333, 1}, + {0x10c80, 3783, 1}, - {0x014a, 276, 1}, + {0x104c4, 3630, 1}, - {0xa74a, 3192, 1}, + {0x2cc4, 2855, 1}, + {0xffffffff, -1, 0}, - {0x216d, 2486, 1}, + {0x1ec4, 2156, 1}, - {0x004a, 24, 1}, + {0x1fc4, 54, 2}, - {0xa688, 3105, 1}, + {0x01c4, 420, 1}, - {0x1041c, 3519, 1}, + {0xa7c4, 3288, 1}, - {0x2c1c, 2660, 1}, + {0x10d63, 3993, 1}, - {0x041c, 934, 1}, + {0x00c4, 89, 1}, - {0x1e1c, 1909, 1}, + {0x2c9e, 2798, 1}, - {0x1f1c, 2273, 1}, + {0x049e, 1135, 1}, - {0x011c, 213, 1}, + {0x1e9e, 24, 2}, + + {0x1f9e, 199, 2}, + {0xffffffff, -1, 0}, - {0x10573, 3672, 1}, + {0xa79e, 3303, 1}, - {0xa64a, 3038, 1}, + {0xab9e, 1744, 1}, + {0xffffffff, -1, 0}, - {0xff35, 3417, 1}, + {0x1c9e, 1510, 1}, - {0x10416, 3501, 1}, + {0x2c9c, 2795, 1}, - {0x2c16, 2642, 1}, + {0x049c, 1132, 1}, - {0x0416, 916, 1}, + {0x0531, 1354, 1}, - {0x1e16, 1900, 1}, + {0x1f9c, 189, 2}, - {0x16e4a, 4047, 1}, + {0x019c, 670, 1}, - {0x0116, 204, 1}, + {0xa79c, 3300, 1}, - {0x2cda, 2879, 1}, + {0xab9c, 1738, 1}, + {0xffffffff, -1, 0}, - {0x04da, 1219, 1}, + {0x1c9c, 1504, 1}, - {0x1eda, 2180, 1}, + {0x03fe, 733, 1}, - {0x1fda, 2399, 1}, + {0x10c9e, 3873, 1}, + {0xffffffff, -1, 0}, - {0x24bc, 2516, 1}, + {0x104cc, 3654, 1}, - {0x039a, 778, 1}, + {0x2ccc, 2867, 1}, - {0x10c4, 3011, 1}, + {0x039a, 784, 1}, - {0x00da, 153, 1}, + {0x1ecc, 2168, 1}, - {0x10414, 3495, 1}, + {0x1fcc, 71, 2}, - {0x2c14, 2636, 1}, + {0x10586, 3741, 1}, - {0x0414, 909, 1}, + {0xa7cc, 3351, 1}, - {0x1e14, 1897, 1}, + {0x10c9c, 3867, 1}, - {0x24ba, 2510, 1}, + {0x00cc, 114, 1}, - {0x0114, 201, 1}, + {0x1f8d, 154, 2}, {0xffffffff, -1, 0}, - {0x10c2, 3005, 1}, + {0xa78d, 649, 1}, - {0x038e, 839, 1}, + {0xab8d, 1693, 1}, - {0x1041a, 3513, 1}, + {0x03c2, 812, 1}, - {0x2c1a, 2654, 1}, + {0x2c8c, 2771, 1}, - {0x041a, 928, 1}, + {0x048c, 1108, 1}, - {0x1e1a, 1906, 1}, + {0x1e8c, 2087, 1}, - {0x1f1a, 2267, 1}, + {0x1f8c, 149, 2}, - {0x011a, 210, 1}, - {0xffffffff, -1, 0}, + {0x10a9, 2939, 1}, - {0x24b6, 2498, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x0516, 1315, 1}, - {0x038a, 742, 1}, + {0xab8c, 1690, 1}, + {0xffffffff, -1, 0}, - {0x10418, 3507, 1}, + {0x118a9, 4029, 1}, - {0x2c18, 2648, 1}, + {0x104b5, 3585, 1}, - {0x0418, 922, 1}, + {0x24c2, 2543, 1}, - {0x1e18, 1903, 1}, + {0x10c8d, 3822, 1}, + {0xffffffff, -1, 0}, - {0x1f18, 2261, 1}, + {0x038e, 845, 1}, - {0x0118, 207, 1}, + {0x01b5, 408, 1}, - {0x1040e, 3477, 1}, + {0xa68c, 3120, 1}, - {0x2c0e, 2618, 1}, + {0xabb5, 1813, 1}, - {0x040e, 1041, 1}, + {0x00b5, 791, 1}, - {0x1e0e, 1888, 1}, + {0x1cb5, 1579, 1}, - {0x1f0e, 2255, 1}, + {0x10c8c, 3819, 1}, - {0x010e, 192, 1}, + {0x038a, 748, 1}, - {0x1e902, 4119, 1}, + {0x2c88, 2765, 1}, {0xffffffff, -1, 0}, - {0x24c7, 2549, 1}, - - {0x1040c, 3471, 1}, + {0x1e88, 2081, 1}, - {0x2c0c, 2612, 1}, - - {0x040c, 1035, 1}, + {0x1f88, 129, 2}, - {0x1e0c, 1885, 1}, + {0x2c2f, 2726, 1}, - {0x1f0c, 2249, 1}, + {0x042f, 1002, 1}, - {0x010c, 189, 1}, + {0xab88, 1678, 1}, - {0x10408, 3459, 1}, + {0x1f2f, 2309, 1}, - {0x2c08, 2600, 1}, + {0x1c88, 3047, 1}, - {0x0408, 1023, 1}, + {0x2ce2, 2900, 1}, - {0x1e08, 1879, 1}, + {0x04e2, 1237, 1}, - {0x1f08, 2237, 1}, + {0x1ee2, 2201, 1}, - {0x0108, 183, 1}, + {0x1fe2, 36, 3}, - {0x10406, 3453, 1}, + {0x01e2, 465, 1}, - {0x2c06, 2594, 1}, + {0x10c4, 3020, 1}, - {0x0406, 1017, 1}, + {0xa688, 3114, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e06, 1876, 1}, - {0xffffffff, -1, 0}, + {0x2c75, 2750, 1}, - {0x0106, 180, 1}, - {0xffffffff, -1, 0}, + {0x10c88, 3807, 1}, - {0x0502, 1279, 1}, + {0x1e4a, 1987, 1}, - {0x10404, 3447, 1}, + {0x1f4a, 2342, 1}, - {0x2c04, 2588, 1}, + {0x014a, 276, 1}, - {0x0404, 1011, 1}, + {0xa74a, 3201, 1}, - {0x1e04, 1873, 1}, - {0xffffffff, -1, 0}, + {0xab75, 1621, 1}, - {0x0104, 177, 1}, + {0x004a, 24, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x10400, 3435, 1}, + {0x24ca, 2567, 1}, - {0x2c00, 2576, 1}, + {0x1058e, 3762, 1}, - {0x0400, 999, 1}, + {0xff2f, 3414, 1}, - {0x1e00, 1867, 1}, + {0x10d62, 3990, 1}, {0xffffffff, -1, 0}, - {0x0100, 171, 1}, + {0xa64a, 3047, 1}, {0xffffffff, -1, 0}, - {0x10575, 3678, 1}, - - {0x10594, 3762, 1}, + {0x03a9, 832, 1}, - {0x2c2a, 2702, 1}, + {0x1058a, 3753, 1}, - {0x042a, 980, 1}, + {0x1041c, 3534, 1}, - {0x1e2a, 1930, 1}, - - {0x1f2a, 2285, 1}, - - {0x012a, 234, 1}, + {0x2c1c, 2669, 1}, - {0xa72a, 3147, 1}, + {0x041c, 940, 1}, - {0x03c2, 806, 1}, + {0x1e1c, 1918, 1}, - {0x10426, 3549, 1}, + {0x1f1c, 2282, 1}, - {0x2c26, 2690, 1}, - - {0x0426, 968, 1}, - - {0x1e26, 1924, 1}, + {0x011c, 213, 1}, - {0x104b7, 3576, 1}, + {0x1041a, 3528, 1}, - {0x0126, 228, 1}, + {0x2c1a, 2663, 1}, - {0xa726, 3141, 1}, + {0x041a, 934, 1}, - {0x039e, 792, 1}, + {0x1e1a, 1915, 1}, - {0x1fb7, 10, 3}, + {0x1f1a, 2276, 1}, - {0x01b7, 706, 1}, + {0x011a, 210, 1}, - {0x10592, 3759, 1}, + {0x10418, 3522, 1}, - {0xabb7, 1813, 1}, - {0xffffffff, -1, 0}, + {0x2c18, 2657, 1}, - {0x1cb7, 1579, 1}, + {0x0418, 928, 1}, - {0x017b, 348, 1}, + {0x1e18, 1912, 1}, - {0xa77b, 3252, 1}, + {0x1f18, 2270, 1}, - {0xab7b, 1633, 1}, + {0x0118, 207, 1}, - {0x038c, 836, 1}, + {0x1040e, 3492, 1}, - {0x2c2e, 2714, 1}, + {0x2c0e, 2627, 1}, - {0x042e, 993, 1}, + {0x040e, 1047, 1}, - {0x1e2e, 1936, 1}, + {0x1e0e, 1897, 1}, - {0x1f2e, 2297, 1}, + {0x1f0e, 2264, 1}, - {0x012e, 240, 1}, + {0x010e, 192, 1}, - {0xa72e, 3153, 1}, + {0x104c1, 3621, 1}, - {0x1f8f, 164, 2}, + {0x10582, 3729, 1}, - {0x018f, 625, 1}, + {0x04c1, 1186, 1}, {0xffffffff, -1, 0}, - {0xab8f, 1693, 1}, + {0x16e4c, 4134, 1}, - {0xfb02, 12, 2}, + {0x1e916, 4260, 1}, - {0x0388, 736, 1}, + {0x10b5, 2975, 1}, - {0x10c8f, 3813, 1}, - {0xffffffff, -1, 0}, + {0x10d57, 3957, 1}, - {0x2c2c, 2708, 1}, + {0x00c1, 80, 1}, - {0x042c, 987, 1}, + {0x024a, 598, 1}, - {0x1e2c, 1933, 1}, + {0x118b5, 4065, 1}, - {0x1f2c, 2291, 1}, + {0x04f0, 1258, 1}, - {0x012c, 237, 1}, + {0x1ef0, 2222, 1}, - {0xa72c, 3150, 1}, + {0x039e, 798, 1}, - {0x2c28, 2696, 1}, + {0x01f0, 20, 2}, + {0xffffffff, -1, 0}, - {0x0428, 974, 1}, + {0x24c4, 2549, 1}, - {0x1e28, 1927, 1}, + {0x1e3e, 1969, 1}, - {0x1f28, 2279, 1}, + {0x1f3e, 2330, 1}, + {0xffffffff, -1, 0}, - {0x0128, 231, 1}, + {0xa73e, 3183, 1}, - {0xa728, 3144, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x10580, 3723, 1}, - {0x10586, 3726, 1}, + {0x039c, 791, 1}, - {0x10424, 3543, 1}, + {0x1040c, 3486, 1}, - {0x2c24, 2684, 1}, + {0x2c0c, 2621, 1}, - {0x0424, 962, 1}, + {0x040c, 1041, 1}, - {0x1e24, 1921, 1}, + {0x1e0c, 1894, 1}, - {0x0547, 1414, 1}, + {0x1f0c, 2258, 1}, - {0x0124, 225, 1}, + {0x010c, 189, 1}, - {0xa724, 3138, 1}, + {0x021c, 547, 1}, + {0xffffffff, -1, 0}, - {0x10422, 3537, 1}, + {0x10414, 3510, 1}, - {0x2c22, 2678, 1}, + {0x2c14, 2645, 1}, - {0x0422, 954, 1}, + {0x0414, 915, 1}, - {0x1e22, 1918, 1}, + {0x1e14, 1906, 1}, - {0xff33, 3411, 1}, + {0x021a, 544, 1}, - {0x0122, 222, 1}, + {0x0114, 201, 1}, - {0xa722, 3135, 1}, + {0x10406, 3468, 1}, - {0x03da, 851, 1}, + {0x2c06, 2603, 1}, - {0x104c0, 3603, 1}, + {0x0406, 1023, 1}, - {0x2cc0, 2840, 1}, + {0x1e06, 1885, 1}, - {0x04c0, 1201, 1}, + {0x0218, 541, 1}, - {0x1ec0, 2141, 1}, + {0x0106, 180, 1}, + {0xffffffff, -1, 0}, - {0xff31, 3405, 1}, + {0x1f3d, 2327, 1}, - {0x023b, 577, 1}, + {0x013d, 258, 1}, - {0xa7c0, 3330, 1}, + {0x24cc, 2573, 1}, - {0x104b3, 3564, 1}, + {0x020e, 526, 1}, - {0x00c0, 77, 1}, - {0xffffffff, -1, 0}, + {0x038c, 842, 1}, - {0x212a, 27, 1}, + {0x10408, 3474, 1}, - {0x1fb3, 62, 2}, + {0x2c08, 2609, 1}, - {0x01b3, 402, 1}, + {0x0408, 1029, 1}, - {0xa7b3, 3354, 1}, + {0x1e08, 1888, 1}, - {0xabb3, 1801, 1}, - {0xffffffff, -1, 0}, + {0x1f08, 2246, 1}, - {0x1cb3, 1567, 1}, - {0xffffffff, -1, 0}, + {0x0108, 183, 1}, - {0x2126, 826, 1}, + {0x10404, 3462, 1}, - {0x0535, 1360, 1}, + {0x2c04, 2597, 1}, - {0x10b7, 2972, 1}, + {0x0404, 1017, 1}, - {0x104b1, 3558, 1}, + {0x1e04, 1882, 1}, {0xffffffff, -1, 0}, - {0x118b7, 3990, 1}, + {0x0104, 177, 1}, - {0x024a, 595, 1}, + {0x10400, 3450, 1}, - {0x1058e, 3747, 1}, + {0x2c00, 2585, 1}, - {0x01b1, 697, 1}, + {0x0400, 1005, 1}, - {0xa7b1, 688, 1}, + {0x1e00, 1876, 1}, - {0xabb1, 1795, 1}, - {0xffffffff, -1, 0}, + {0x0147, 273, 1}, - {0x1cb1, 1561, 1}, + {0x0100, 171, 1}, - {0x10cb1, 3915, 1}, + {0x023e, 2735, 1}, - {0x053c, 1381, 1}, - {0xffffffff, -1, 0}, + {0x0047, 18, 1}, - {0x021c, 544, 1}, + {0x0388, 742, 1}, - {0x1e4e, 1984, 1}, + {0x1e56, 2005, 1}, - {0x1058a, 3738, 1}, + {0x1f56, 62, 3}, - {0x014e, 282, 1}, + {0x0156, 294, 1}, - {0xa74e, 3198, 1}, + {0xa756, 3219, 1}, - {0x1fab, 224, 2}, + {0xfb14, 109, 2}, - {0x004e, 37, 1}, + {0x0056, 62, 1}, - {0xa7ab, 631, 1}, + {0x020c, 523, 1}, - {0xabab, 1777, 1}, + {0x1058d, 3759, 1}, - {0x0216, 535, 1}, + {0x03e2, 869, 1}, - {0x1cab, 1543, 1}, + {0x10c1, 3011, 1}, - {0x10cab, 3897, 1}, + {0xfb06, 29, 2}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e97, 34, 2}, + {0xa656, 3066, 1}, - {0x1f97, 204, 2}, + {0x0214, 535, 1}, - {0x0197, 649, 1}, + {0x1058c, 3756, 1}, - {0xa64e, 3045, 1}, + {0x10426, 3564, 1}, - {0xab97, 1717, 1}, + {0x2c26, 2699, 1}, - {0x10582, 3714, 1}, + {0x0426, 974, 1}, - {0x1c97, 1483, 1}, + {0x1e26, 1933, 1}, - {0x10c97, 3837, 1}, - {0xffffffff, -1, 0}, + {0x0206, 514, 1}, - {0x16e4e, 4059, 1}, + {0x0126, 228, 1}, - {0x10571, 3666, 1}, + {0xa726, 3150, 1}, - {0x0214, 532, 1}, + {0x023d, 378, 1}, - {0x24c4, 2540, 1}, + {0x10424, 3558, 1}, - {0x2c7e, 580, 1}, + {0x2c24, 2693, 1}, - {0x047e, 1093, 1}, + {0x0424, 968, 1}, - {0x1e7e, 2057, 1}, + {0x1e24, 1930, 1}, - {0xff2a, 3384, 1}, + {0xfb04, 5, 3}, - {0x10580, 3708, 1}, + {0x0124, 225, 1}, + + {0xa724, 3147, 1}, - {0xa77e, 3255, 1}, + {0x1f59, 2354, 1}, - {0xab7e, 1642, 1}, + {0x0208, 517, 1}, + {0xffffffff, -1, 0}, - {0x021a, 541, 1}, + {0xfb00, 4, 2}, - {0x24c2, 2534, 1}, + {0x0059, 71, 1}, - {0x1fa9, 214, 2}, + {0x10588, 3747, 1}, - {0x01a9, 685, 1}, + {0x1fad, 234, 2}, - {0xff26, 3372, 1}, + {0x0204, 511, 1}, - {0xaba9, 1771, 1}, + {0xa7ad, 667, 1}, - {0x1058d, 3744, 1}, + {0xabad, 1789, 1}, - {0x1ca9, 1537, 1}, + {0x1f5f, 2363, 1}, - {0x10ca9, 3891, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x1cad, 1555, 1}, - {0x0218, 538, 1}, + {0xff26, 3387, 1}, - {0x10c0, 2999, 1}, + {0x0200, 505, 1}, - {0x10420, 3531, 1}, + {0x2c2e, 2723, 1}, - {0x2c20, 2672, 1}, + {0x042e, 999, 1}, - {0x0420, 947, 1}, + {0x1e2e, 1945, 1}, - {0x1e20, 1915, 1}, + {0x1f2e, 2306, 1}, - {0x020e, 523, 1}, + {0x012e, 240, 1}, - {0x0120, 219, 1}, + {0xa72e, 3162, 1}, - {0x10b3, 2960, 1}, + {0xff24, 3381, 1}, {0xffffffff, -1, 0}, - {0xff2e, 3396, 1}, + {0x10cad, 3918, 1}, - {0x118b3, 3978, 1}, - {0xffffffff, -1, 0}, + {0x10575, 3693, 1}, - {0x1f91, 174, 2}, + {0x004f, 40, 1}, - {0x0191, 369, 1}, + {0x054a, 1429, 1}, - {0x020c, 520, 1}, + {0x2c2c, 2717, 1}, - {0xab91, 1699, 1}, - {0xffffffff, -1, 0}, + {0x042c, 993, 1}, - {0x1c91, 1465, 1}, + {0x1e2c, 1942, 1}, - {0x10c91, 3819, 1}, - {0xffffffff, -1, 0}, + {0x1f2c, 2300, 1}, - {0x0208, 514, 1}, + {0x012c, 237, 1}, - {0x10b1, 2954, 1}, + {0xa72c, 3159, 1}, - {0x01d5, 441, 1}, + {0x2c28, 2705, 1}, - {0xff2c, 3390, 1}, + {0x0428, 980, 1}, - {0x118b1, 3972, 1}, + {0x1e28, 1936, 1}, - {0x00d5, 141, 1}, + {0x1f28, 2288, 1}, - {0x0206, 511, 1}, + {0x0128, 231, 1}, - {0x038f, 842, 1}, - {0xffffffff, -1, 0}, + {0xa728, 3153, 1}, - {0xff28, 3378, 1}, + {0x0226, 559, 1}, - {0x2cd4, 2870, 1}, + {0x03f0, 784, 1}, - {0x04d4, 1210, 1}, + {0xff2e, 3411, 1}, - {0x1ed4, 2171, 1}, + {0x24c1, 2540, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1058c, 3741, 1}, + {0x051c, 1324, 1}, - {0x0204, 508, 1}, + {0x0224, 556, 1}, - {0x10ab, 2936, 1}, + {0x104c0, 3618, 1}, - {0x053b, 1378, 1}, + {0x2cc0, 2849, 1}, - {0x00d4, 138, 1}, + {0x04c0, 1207, 1}, - {0x118ab, 3954, 1}, + {0x1ec0, 2150, 1}, - {0xff24, 3366, 1}, + {0x051a, 1321, 1}, - {0x0200, 502, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xff2c, 3405, 1}, - {0x1e91c, 4197, 1}, + {0xa7c0, 3339, 1}, {0xffffffff, -1, 0}, - {0x10588, 3732, 1}, + {0x00c0, 77, 1}, - {0xff22, 3360, 1}, - {0xffffffff, -1, 0}, + {0xab73, 1615, 1}, - {0x022a, 562, 1}, - {0xffffffff, -1, 0}, + {0x0518, 1318, 1}, - {0x04fe, 1273, 1}, + {0xff28, 3393, 1}, - {0x1efe, 2234, 1}, + {0x10422, 3552, 1}, - {0x1e916, 4179, 1}, + {0x2c22, 2687, 1}, - {0x01fe, 499, 1}, - {0xffffffff, -1, 0}, + {0x0422, 960, 1}, - {0x054a, 1423, 1}, + {0x1e22, 1927, 1}, - {0x0226, 556, 1}, + {0x050e, 1303, 1}, - {0x1041e, 3525, 1}, + {0x0122, 222, 1}, - {0x2c1e, 2666, 1}, + {0xa722, 3144, 1}, - {0x041e, 940, 1}, + {0x022e, 571, 1}, - {0x1e1e, 1912, 1}, - {0xffffffff, -1, 0}, + {0x1e54, 2002, 1}, - {0x011e, 216, 1}, - {0xffffffff, -1, 0}, + {0x1f54, 57, 3}, - {0x10a9, 2930, 1}, + {0x0154, 291, 1}, - {0x051c, 1318, 1}, + {0xa754, 3216, 1}, - {0x1e914, 4173, 1}, + {0x1e30, 1948, 1}, - {0x118a9, 3948, 1}, + {0x0054, 56, 1}, - {0x104d2, 3657, 1}, + {0x0130, 261, 2}, - {0x2cd2, 2867, 1}, + {0x1e52, 1999, 1}, - {0x04d2, 1207, 1}, + {0x1f52, 52, 3}, - {0x1ed2, 2168, 1}, + {0x0152, 288, 1}, - {0x1fd2, 20, 3}, + {0xa752, 3213, 1}, - {0x022e, 568, 1}, + {0x022c, 568, 1}, - {0x0516, 1309, 1}, + {0x0052, 49, 1}, - {0x1e91a, 4191, 1}, + {0xa654, 3063, 1}, - {0x00d2, 132, 1}, + {0x10ad, 2951, 1}, - {0x1fa7, 244, 2}, + {0x16e57, 4167, 1}, - {0x01a7, 393, 1}, - {0xffffffff, -1, 0}, + {0x053e, 1393, 1}, - {0xaba7, 1765, 1}, - {0xffffffff, -1, 0}, + {0x0228, 562, 1}, - {0x1ca7, 1531, 1}, + {0x118ad, 4041, 1}, - {0x10ca7, 3885, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xff22, 3375, 1}, - {0x1e918, 4185, 1}, + {0xa652, 3060, 1}, - {0x022c, 565, 1}, + {0x1e50, 1996, 1}, - {0x0514, 1306, 1}, + {0x1f50, 84, 2}, - {0x047c, 1090, 1}, + {0x0150, 285, 1}, - {0x1e7c, 2054, 1}, + {0xa750, 3210, 1}, - {0x0533, 1354, 1}, + {0x050c, 1300, 1}, - {0x1e90e, 4155, 1}, + {0x0050, 43, 1}, - {0x0228, 559, 1}, + {0x1fab, 224, 2}, - {0xab7c, 1636, 1}, + {0xff30, 3417, 1}, - {0x1e48, 1975, 1}, + {0xa7ab, 634, 1}, - {0x1f48, 2327, 1}, + {0xabab, 1783, 1}, - {0x051a, 1315, 1}, + {0x104b7, 3591, 1}, - {0xa748, 3189, 1}, + {0x1cab, 1549, 1}, - {0x0531, 1348, 1}, + {0x0514, 1312, 1}, - {0x0048, 21, 1}, + {0xa650, 3057, 1}, - {0x1e90c, 4149, 1}, + {0x1fb7, 10, 3}, - {0x2c6b, 2735, 1}, + {0x01b7, 712, 1}, - {0x0224, 553, 1}, + {0x2164, 2468, 1}, - {0x03ab, 833, 1}, + {0xabb7, 1819, 1}, - {0x1f6b, 2366, 1}, - {0xffffffff, -1, 0}, + {0x0506, 1291, 1}, - {0x1e908, 4137, 1}, + {0x1cb7, 1585, 1}, - {0x0518, 1312, 1}, + {0x104b1, 3573, 1}, - {0xa648, 3035, 1}, + {0x053d, 1390, 1}, - {0x0222, 550, 1}, + {0x10cab, 3912, 1}, {0xffffffff, -1, 0}, - {0x0397, 765, 1}, + {0x0222, 553, 1}, - {0x1e906, 4131, 1}, + {0x01b1, 703, 1}, - {0x050e, 1297, 1}, + {0xa7b1, 694, 1}, - {0x16e48, 4041, 1}, - {0xffffffff, -1, 0}, + {0xabb1, 1801, 1}, - {0x1e56, 1996, 1}, + {0x2c6d, 610, 1}, - {0x1f56, 62, 3}, + {0x1cb1, 1567, 1}, - {0x0156, 294, 1}, + {0x0508, 1294, 1}, - {0xa756, 3210, 1}, + {0x1f6d, 2381, 1}, - {0x1e904, 4125, 1}, + {0x10d56, 3954, 1}, - {0x0056, 62, 1}, + {0x0230, 574, 1}, - {0x050c, 1294, 1}, + {0x2c6b, 2744, 1}, {0xffffffff, -1, 0}, - {0xfb16, 125, 2}, - {0xffffffff, -1, 0}, + {0x0504, 1288, 1}, - {0x1e900, 4113, 1}, - {0xffffffff, -1, 0}, + {0x1f6b, 2375, 1}, - {0x0508, 1288, 1}, - {0xffffffff, -1, 0}, + {0x10c0, 3008, 1}, - {0xa656, 3057, 1}, - {0xffffffff, -1, 0}, + {0x1e91c, 4278, 1}, - {0x03a9, 826, 1}, - {0xffffffff, -1, 0}, + {0x10cb1, 3930, 1}, - {0x0506, 1285, 1}, - {0xffffffff, -1, 0}, + {0x0547, 1420, 1}, - {0x16e56, 4083, 1}, - {0xffffffff, -1, 0}, + {0x0500, 1282, 1}, - {0xfb14, 109, 2}, + {0x2c69, 2741, 1}, {0xffffffff, -1, 0}, - {0x24b7, 2501, 1}, + {0x1e91a, 4272, 1}, + + {0x1f69, 2369, 1}, {0xffffffff, -1, 0}, - {0x0504, 1282, 1}, + {0x0556, 1465, 1}, - {0x2ce2, 2891, 1}, + {0x104b3, 3579, 1}, + {0xffffffff, -1, 0}, - {0x04e2, 1231, 1}, + {0x1e918, 4266, 1}, - {0x1ee2, 2192, 1}, + {0x2167, 2477, 1}, - {0x1fe2, 36, 3}, + {0x1fb3, 62, 2}, - {0x01e2, 462, 1}, + {0x01b3, 405, 1}, - {0x0500, 1276, 1}, + {0xa7b3, 3369, 1}, - {0x024e, 601, 1}, + {0xabb3, 1807, 1}, - {0x10a7, 2924, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x1e90e, 4236, 1}, - {0x118a7, 3942, 1}, - - {0x0391, 745, 1}, + {0x1cb3, 1573, 1}, {0xffffffff, -1, 0}, - {0x052a, 1339, 1}, + {0x1fa7, 244, 2}, - {0x1e54, 1993, 1}, + {0x01a7, 396, 1}, - {0x1f54, 57, 3}, + {0x10d59, 3963, 1}, - {0x0154, 291, 1}, + {0xaba7, 1771, 1}, - {0xa754, 3207, 1}, - {0xffffffff, -1, 0}, + {0xab71, 1609, 1}, - {0x0054, 56, 1}, + {0x1ca7, 1537, 1}, - {0x03d5, 816, 1}, + {0x1e4e, 1993, 1}, - {0x0526, 1333, 1}, + {0x0526, 1339, 1}, - {0x1f39, 2306, 1}, + {0x014e, 282, 1}, - {0x0139, 252, 1}, + {0xa74e, 3207, 1}, + {0xffffffff, -1, 0}, - {0x10412, 3489, 1}, + {0x004e, 37, 1}, - {0x2c12, 2630, 1}, + {0x10d5f, 3981, 1}, - {0x0412, 902, 1}, + {0x1f39, 2315, 1}, - {0x1e12, 1894, 1}, + {0x0139, 252, 1}, - {0xa654, 3054, 1}, + {0x0524, 1336, 1}, - {0x0112, 198, 1}, + {0x10ca7, 3900, 1}, - {0x10410, 3483, 1}, + {0x1e48, 1984, 1}, - {0x2c10, 2624, 1}, + {0x1f48, 2336, 1}, - {0x0410, 896, 1}, + {0xa64e, 3054, 1}, - {0x1e10, 1891, 1}, + {0xa748, 3198, 1}, - {0x16e54, 4077, 1}, + {0x10ab, 2945, 1}, - {0x0110, 195, 1}, + {0x0048, 21, 1}, + + {0x104d3, 3675, 1}, {0xffffffff, -1, 0}, - {0x216b, 2480, 1}, + {0x118ab, 4035, 1}, - {0x052e, 1345, 1}, + {0x1e90c, 4230, 1}, - {0x1058f, 3750, 1}, + {0x1fd3, 25, 3}, - {0x1f3f, 2324, 1}, + {0x01d3, 441, 1}, - {0x013f, 261, 1}, + {0x10b7, 2981, 1}, - {0xfb06, 29, 2}, + {0xa648, 3044, 1}, - {0x1e52, 1990, 1}, + {0x00d3, 135, 1}, + {0xffffffff, -1, 0}, - {0x1f52, 52, 3}, + {0x118b7, 4071, 1}, - {0x0152, 288, 1}, + {0x1e914, 4254, 1}, - {0xa752, 3204, 1}, - {0xffffffff, -1, 0}, + {0x052e, 1351, 1}, - {0x0052, 49, 1}, - {0xffffffff, -1, 0}, + {0xff39, 3444, 1}, - {0xfb04, 5, 3}, + {0x16e4a, 4128, 1}, + + {0x054f, 1444, 1}, - {0x03fe, 727, 1}, + {0x10b1, 2963, 1}, - {0x052c, 1342, 1}, + {0x1e906, 4212, 1}, - {0x0220, 381, 1}, + {0x24c0, 2537, 1}, {0xffffffff, -1, 0}, - {0x24c0, 2528, 1}, + {0x118b1, 4053, 1}, - {0xfb00, 4, 2}, + {0x2c60, 2729, 1}, - {0xa652, 3051, 1}, + {0x0460, 1053, 1}, - {0x0528, 1336, 1}, + {0x1e60, 2020, 1}, - {0x1e50, 1987, 1}, + {0x052c, 1348, 1}, - {0x1f50, 84, 2}, + {0x0160, 309, 1}, - {0x0150, 285, 1}, + {0xa760, 3234, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xa750, 3201, 1}, + {0x1e908, 4218, 1}, - {0x16e52, 4071, 1}, + {0x0528, 1342, 1}, - {0x0050, 43, 1}, - {0xffffffff, -1, 0}, + {0x2c2b, 2714, 1}, - {0x104ca, 3633, 1}, + {0x042b, 990, 1}, - {0x2cca, 2855, 1}, + {0x024e, 604, 1}, - {0x0524, 1330, 1}, + {0x1f2b, 2297, 1}, - {0x1eca, 2156, 1}, + {0x1e904, 4206, 1}, - {0x1fca, 2393, 1}, + {0xa660, 3081, 1}, - {0x01ca, 425, 1}, - {0xffffffff, -1, 0}, + {0x10420, 3546, 1}, - {0xa650, 3048, 1}, + {0x2c20, 2681, 1}, - {0x00ca, 108, 1}, + {0x0420, 953, 1}, - {0x0522, 1327, 1}, + {0x1e20, 1924, 1}, - {0x03a7, 820, 1}, + {0x1e900, 4194, 1}, - {0x04f0, 1252, 1}, + {0x0120, 219, 1}, + {0xffffffff, -1, 0}, - {0x1ef0, 2213, 1}, + {0x0248, 595, 1}, - {0x16e50, 4065, 1}, + {0x10b3, 2969, 1}, - {0x01f0, 20, 2}, + {0x10573, 3687, 1}, - {0x2cd8, 2876, 1}, + {0x10d54, 3948, 1}, + {0xffffffff, -1, 0}, - {0x04d8, 1216, 1}, + {0x118b3, 4059, 1}, - {0x1ed8, 2177, 1}, + {0x03ab, 839, 1}, + {0xffffffff, -1, 0}, - {0x1fd8, 2429, 1}, + {0x10a7, 2933, 1}, {0xffffffff, -1, 0}, - {0xa7d8, 3348, 1}, + {0x10d52, 3942, 1}, {0xffffffff, -1, 0}, - {0x00d8, 147, 1}, + {0x118a7, 4023, 1}, - {0x2cd6, 2873, 1}, + {0xff2b, 3402, 1}, - {0x04d6, 1213, 1}, + {0x0522, 1333, 1}, - {0x1ed6, 2174, 1}, + {0x1041e, 3540, 1}, - {0x1fd6, 76, 2}, - {0xffffffff, -1, 0}, + {0x2c1e, 2675, 1}, - {0xa7d6, 3345, 1}, - {0xffffffff, -1, 0}, + {0x041e, 946, 1}, - {0x00d6, 144, 1}, + {0x1e1e, 1921, 1}, - {0x104c8, 3627, 1}, + {0x0554, 1459, 1}, - {0x2cc8, 2852, 1}, + {0x011e, 216, 1}, - {0x104b9, 3582, 1}, + {0x10425, 3561, 1}, - {0x1ec8, 2153, 1}, + {0x2c25, 2696, 1}, - {0x1fc8, 2387, 1}, + {0x0425, 971, 1}, - {0x01c8, 421, 1}, + {0x10d50, 3936, 1}, - {0x1fb9, 2426, 1}, - {0xffffffff, -1, 0}, + {0x24b7, 2510, 1}, - {0x00c8, 102, 1}, + {0x0552, 1453, 1}, - {0xabb9, 1819, 1}, - {0xffffffff, -1, 0}, + {0x10412, 3504, 1}, - {0x1cb9, 1585, 1}, + {0x2c12, 2639, 1}, - {0x021e, 547, 1}, + {0x0412, 908, 1}, - {0x104c6, 3621, 1}, + {0x1e12, 1903, 1}, - {0x2cc6, 2849, 1}, - {0xffffffff, -1, 0}, + {0x2165, 2471, 1}, - {0x1ec6, 2150, 1}, + {0x0112, 198, 1}, - {0x1fc6, 67, 2}, + {0x10410, 3498, 1}, - {0x054e, 1435, 1}, + {0x2c10, 2633, 1}, - {0xa7c6, 1864, 1}, + {0x0410, 902, 1}, - {0x104c5, 3618, 1}, + {0x1e10, 1900, 1}, + {0xffffffff, -1, 0}, - {0x00c6, 96, 1}, + {0x0110, 195, 1}, + {0xffffffff, -1, 0}, - {0x04c5, 1186, 1}, + {0x0550, 1447, 1}, + {0xffffffff, -1, 0}, - {0x104bb, 3588, 1}, + {0x2cda, 2888, 1}, - {0x104b5, 3570, 1}, + {0x04da, 1225, 1}, - {0x01c5, 417, 1}, + {0x1eda, 2189, 1}, - {0xa7c5, 682, 1}, + {0x1fda, 2408, 1}, - {0x1fbb, 2384, 1}, + {0x0220, 384, 1}, - {0x00c5, 92, 1}, + {0xa7da, 3363, 1}, - {0x01b5, 405, 1}, + {0xff25, 3384, 1}, - {0xabbb, 1825, 1}, + {0x00da, 153, 1}, - {0xabb5, 1807, 1}, + {0x2cd8, 2885, 1}, - {0x00b5, 785, 1}, + {0x04d8, 1222, 1}, - {0x1cb5, 1573, 1}, + {0x1ed8, 2186, 1}, - {0x1faf, 244, 2}, + {0x1fd8, 2438, 1}, + {0xffffffff, -1, 0}, - {0x01af, 399, 1}, + {0xa7d8, 3360, 1}, {0xffffffff, -1, 0}, - {0xabaf, 1789, 1}, + {0x00d8, 147, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x2c69, 2732, 1}, + {0x03a7, 826, 1}, - {0x1caf, 1555, 1}, + {0x0055, 59, 1}, - {0x10caf, 3909, 1}, + {0x2cd6, 2882, 1}, - {0x1f69, 2360, 1}, + {0x04d6, 1219, 1}, - {0x1057e, 3702, 1}, + {0x1ed6, 2183, 1}, - {0x1e920, 4209, 1}, + {0x1fd6, 76, 2}, {0xffffffff, -1, 0}, - {0x1fa5, 234, 2}, - {0xffffffff, -1, 0}, + {0xa7d6, 3357, 1}, - {0x0248, 592, 1}, + {0x021e, 550, 1}, - {0xaba5, 1759, 1}, + {0x00d6, 144, 1}, + + {0x104d0, 3666, 1}, + + {0x2cd0, 2873, 1}, + + {0x04d0, 1210, 1}, - {0x03e2, 863, 1}, + {0x1ed0, 2174, 1}, - {0x1ca5, 1525, 1}, + {0x16e47, 4119, 1}, - {0x10ca5, 3879, 1}, + {0x104b9, 3597, 1}, + + {0xa7d0, 3354, 1}, {0xffffffff, -1, 0}, - {0xff39, 3429, 1}, + {0x00d0, 126, 1}, - {0x1fa3, 224, 2}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x1fb9, 2435, 1}, - {0xaba3, 1753, 1}, + {0x0212, 532, 1}, - {0x1fa1, 214, 2}, + {0x16e56, 4164, 1}, - {0x1ca3, 1519, 1}, + {0xabb9, 1825, 1}, - {0x10ca3, 3873, 1}, + {0x104cb, 3651, 1}, - {0xaba1, 1747, 1}, - {0xffffffff, -1, 0}, + {0x1cb9, 1591, 1}, - {0x1ca1, 1513, 1}, + {0x04cb, 1201, 1}, - {0x10ca1, 3867, 1}, + {0x0210, 529, 1}, - {0x0520, 1324, 1}, + {0x1fcb, 2405, 1}, - {0x1f87, 164, 2}, + {0x01cb, 428, 1}, - {0x0187, 363, 1}, + {0xa7cb, 646, 1}, + + {0x2183, 2504, 1}, + + {0x00cb, 111, 1}, + + {0x104c8, 3642, 1}, + + {0x2cc8, 2861, 1}, {0xffffffff, -1, 0}, - {0xab87, 1669, 1}, + {0x1ec8, 2162, 1}, - {0x10591, 3756, 1}, + {0x1fc8, 2396, 1}, - {0x1c87, 1050, 1}, + {0x01c8, 424, 1}, - {0x10c87, 3789, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x10571, 3681, 1}, + {0xffffffff, -1, 0}, - {0x2c72, 2738, 1}, + {0x00c8, 102, 1}, - {0x0472, 1075, 1}, + {0x104c6, 3636, 1}, - {0x1e72, 2039, 1}, + {0x2cc6, 2858, 1}, - {0x1f4d, 2342, 1}, + {0x1f5d, 2360, 1}, - {0x0172, 336, 1}, + {0x1ec6, 2159, 1}, - {0x10b9, 2978, 1}, + {0x1fc6, 67, 2}, - {0xab72, 1606, 1}, + {0x054e, 1441, 1}, - {0x004d, 34, 1}, + {0xa7c6, 1873, 1}, - {0x118b9, 3996, 1}, + {0x104c5, 3633, 1}, - {0x2c70, 610, 1}, + {0x00c6, 96, 1}, - {0x0470, 1072, 1}, + {0x04c5, 1192, 1}, - {0x1e70, 2036, 1}, - {0xffffffff, -1, 0}, + {0x16e59, 4173, 1}, - {0x0170, 333, 1}, + {0x0539, 1378, 1}, + + {0x01c5, 420, 1}, + + {0xa7c5, 688, 1}, {0xffffffff, -1, 0}, - {0xab70, 1600, 1}, + {0x00c5, 92, 1}, - {0x2c6e, 667, 1}, + {0x0548, 1423, 1}, + {0xffffffff, -1, 0}, - {0x046e, 1069, 1}, + {0x1faf, 244, 2}, - {0x1e6e, 2033, 1}, + {0x01af, 402, 1}, - {0x1f6e, 2375, 1}, + {0x16e5f, 4191, 1}, - {0x016e, 330, 1}, + {0xabaf, 1795, 1}, - {0xa76e, 3246, 1}, + {0x212a, 27, 1}, - {0x16e4d, 4056, 1}, + {0x1caf, 1561, 1}, - {0x10c5, 3014, 1}, + {0x04fc, 1276, 1}, - {0x1e91e, 4203, 1}, + {0x1efc, 2240, 1}, - {0x0145, 270, 1}, + {0x1ffc, 96, 2}, - {0x10bb, 2984, 1}, + {0x01fc, 499, 1}, - {0x10b5, 2966, 1}, + {0x1fa5, 234, 2}, - {0x0045, 12, 1}, + {0x10d60, 3984, 1}, - {0x118bb, 4002, 1}, + {0x16e4f, 4143, 1}, - {0x118b5, 3984, 1}, + {0xaba5, 1765, 1}, + {0xffffffff, -1, 0}, - {0x04ee, 1249, 1}, + {0x1ca5, 1531, 1}, - {0x1eee, 2210, 1}, + {0x10caf, 3924, 1}, - {0x10af, 2948, 1}, + {0x1fa3, 224, 2}, - {0x01ee, 480, 1}, + {0x1fa1, 214, 2}, {0xffffffff, -1, 0}, - {0x118af, 3966, 1}, - - {0x046c, 1066, 1}, + {0xaba3, 1759, 1}, - {0x1e6c, 2030, 1}, + {0xaba1, 1753, 1}, - {0x1f6c, 2369, 1}, + {0x1ca3, 1525, 1}, - {0x016c, 327, 1}, + {0x1ca1, 1519, 1}, - {0xa76c, 3243, 1}, + {0x1f91, 174, 2}, - {0x2169, 2474, 1}, + {0x0191, 369, 1}, - {0x16e45, 4032, 1}, + {0x10ca5, 3894, 1}, - {0x10a5, 2918, 1}, + {0xab91, 1705, 1}, {0xffffffff, -1, 0}, - {0x051e, 1321, 1}, + {0x1c91, 1471, 1}, - {0x118a5, 3936, 1}, + {0x10421, 3549, 1}, - {0x0212, 529, 1}, - {0xffffffff, -1, 0}, + {0x2c21, 2684, 1}, - {0x03f0, 778, 1}, - {0xffffffff, -1, 0}, + {0x0421, 956, 1}, - {0xa66c, 3090, 1}, + {0x10ca3, 3888, 1}, - {0x10a3, 2912, 1}, + {0x10ca1, 3882, 1}, - {0x0210, 526, 1}, + {0x10b9, 2987, 1}, + {0xffffffff, -1, 0}, - {0x03d8, 848, 1}, + {0x1f49, 2339, 1}, - {0x118a3, 3930, 1}, + {0x0149, 46, 2}, - {0x10a1, 2906, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x118b9, 4077, 1}, - {0x118a1, 3924, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x10c91, 3834, 1}, - {0x03d6, 798, 1}, + {0x0049, 4296, 1}, - {0x046a, 1063, 1}, + {0x1f87, 164, 2}, - {0x1e6a, 2027, 1}, + {0x0187, 363, 1}, - {0x1f6a, 2363, 1}, + {0x0520, 1330, 1}, - {0x016a, 324, 1}, + {0xab87, 1675, 1}, + {0xffffffff, -1, 0}, - {0xa76a, 3240, 1}, + {0x1c87, 1056, 1}, - {0x0468, 1060, 1}, + {0x2c72, 2747, 1}, - {0x1e68, 2024, 1}, + {0x0472, 1081, 1}, - {0x1f68, 2357, 1}, + {0x1e72, 2048, 1}, + {0xffffffff, -1, 0}, - {0x0168, 321, 1}, + {0x0172, 336, 1}, - {0xa768, 3237, 1}, + {0x03da, 857, 1}, - {0x1057c, 3696, 1}, + {0xab72, 1612, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e46, 1972, 1}, - {0xffffffff, -1, 0}, + {0xff21, 3372, 1}, - {0xa66a, 3087, 1}, + {0x10c87, 3804, 1}, - {0xa746, 3186, 1}, + {0x2161, 2459, 1}, - {0x0548, 1417, 1}, + {0x16e54, 4158, 1}, - {0x0046, 15, 1}, + {0x03d8, 854, 1}, + + {0x1e32, 1951, 1}, {0xffffffff, -1, 0}, - {0xa668, 3084, 1}, + {0x0132, 243, 1}, + + {0xa732, 3165, 1}, - {0x2c64, 676, 1}, + {0x051e, 1327, 1}, - {0x0464, 1054, 1}, + {0x16e52, 4152, 1}, - {0x1e64, 2018, 1}, + {0x10c5, 3023, 1}, {0xffffffff, -1, 0}, - {0x0164, 315, 1}, + {0x2c70, 613, 1}, - {0xa764, 3231, 1}, + {0x0470, 1078, 1}, - {0xa646, 3032, 1}, + {0x1e70, 2045, 1}, - {0x2cde, 2885, 1}, + {0x03d6, 804, 1}, - {0x04de, 1225, 1}, + {0x0170, 333, 1}, - {0x1ede, 2186, 1}, + {0x10af, 2957, 1}, - {0x216e, 2489, 1}, + {0xab70, 1606, 1}, + {0xffffffff, -1, 0}, - {0x01de, 456, 1}, + {0x0512, 1309, 1}, - {0x16e46, 4035, 1}, + {0x118af, 4047, 1}, {0xffffffff, -1, 0}, - {0x00de, 165, 1}, + {0x16e50, 4146, 1}, - {0x1e30, 1939, 1}, + {0x03d0, 754, 1}, + {0xffffffff, -1, 0}, - {0xa664, 3078, 1}, + {0x0510, 1306, 1}, - {0x0130, 261, 2}, + {0x10a5, 2927, 1}, - {0x0556, 1459, 1}, + {0xff32, 3423, 1}, + {0xffffffff, -1, 0}, - {0x2c62, 658, 1}, + {0x10d55, 3951, 1}, - {0x0462, 1050, 1}, + {0x118a5, 4017, 1}, - {0x1e62, 2015, 1}, - {0xffffffff, -1, 0}, + {0x047c, 1096, 1}, - {0x0162, 312, 1}, + {0x1e7c, 2063, 1}, - {0xa762, 3228, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x10a3, 2921, 1}, - {0x03a5, 813, 1}, + {0x10a1, 2915, 1}, {0xffffffff, -1, 0}, - {0x216c, 2483, 1}, + {0xab7c, 1642, 1}, - {0x1e44, 1969, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x118a3, 4011, 1}, - {0xa744, 3183, 1}, + {0x118a1, 4005, 1}, - {0xa662, 3075, 1}, + {0x24b9, 2516, 1}, - {0x0044, 9, 1}, + {0x046c, 1072, 1}, - {0x03a3, 806, 1}, + {0x1e6c, 2039, 1}, - {0x0179, 345, 1}, + {0x1f6c, 2378, 1}, - {0xa779, 3249, 1}, + {0x016c, 327, 1}, - {0xab79, 1627, 1}, + {0xa76c, 3252, 1}, - {0x03a1, 802, 1}, + {0x0555, 1462, 1}, - {0x2c60, 2720, 1}, + {0x13fc, 1858, 1}, - {0x0460, 1047, 1}, + {0x24cb, 2570, 1}, - {0x1e60, 2011, 1}, + {0x046a, 1069, 1}, - {0xa644, 3029, 1}, + {0x1e6a, 2036, 1}, - {0x0160, 309, 1}, + {0x1f6a, 2372, 1}, - {0xa760, 3225, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x016a, 324, 1}, - {0x1e912, 4167, 1}, + {0xa76a, 3249, 1}, - {0x16e44, 4029, 1}, + {0x0232, 577, 1}, - {0x1e32, 1942, 1}, - {0xffffffff, -1, 0}, + {0xa66c, 3099, 1}, - {0x0132, 243, 1}, + {0x216f, 2501, 1}, - {0xa732, 3156, 1}, + {0x24c8, 2561, 1}, - {0x1e910, 4161, 1}, + {0x0468, 1066, 1}, - {0x216a, 2477, 1}, + {0x1e68, 2033, 1}, - {0xa660, 3072, 1}, + {0x1f68, 2366, 1}, - {0x0554, 1453, 1}, - {0xffffffff, -1, 0}, + {0x0168, 321, 1}, - {0x0372, 718, 1}, + {0xa768, 3246, 1}, - {0x2168, 2471, 1}, + {0xa66a, 3096, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x104cd, 3642, 1}, + {0x24c6, 2555, 1}, {0xffffffff, -1, 0}, - {0x04cd, 1198, 1}, + {0x1e920, 4290, 1}, - {0x0539, 1372, 1}, + {0x2163, 2465, 1}, {0xffffffff, -1, 0}, - {0x01cd, 429, 1}, - {0xffffffff, -1, 0}, + {0x216e, 2498, 1}, - {0x0370, 715, 1}, + {0xa668, 3093, 1}, - {0x00cd, 117, 1}, + {0x24c5, 2552, 1}, + {0xffffffff, -1, 0}, - {0x0512, 1303, 1}, + {0x1e5a, 2011, 1}, - {0x104cc, 3639, 1}, + {0x10d5d, 3975, 1}, - {0x2ccc, 2858, 1}, + {0x015a, 300, 1}, - {0x104cf, 3648, 1}, + {0xa75a, 3225, 1}, - {0x1ecc, 2159, 1}, + {0x03a5, 819, 1}, - {0x1fcc, 71, 2}, - - {0x0510, 1300, 1}, + {0x005a, 74, 1}, + {0xffffffff, -1, 0}, - {0x2164, 2459, 1}, + {0x1f8f, 164, 2}, - {0x01cf, 432, 1}, + {0x018f, 628, 1}, + {0xffffffff, -1, 0}, - {0x00cc, 114, 1}, + {0xab8f, 1699, 1}, - {0x0345, 773, 1}, + {0x03a3, 812, 1}, - {0x00cf, 123, 1}, + {0x03a1, 808, 1}, - {0x053f, 1390, 1}, + {0xa65a, 3072, 1}, - {0x104cb, 3636, 1}, + {0x16e4e, 4140, 1}, - {0x24ca, 2558, 1}, + {0x1e91e, 4284, 1}, + {0xffffffff, -1, 0}, - {0x04cb, 1195, 1}, + {0x1e58, 2008, 1}, - {0x0552, 1447, 1}, + {0x0391, 751, 1}, - {0x1fcb, 2396, 1}, + {0x0158, 297, 1}, - {0x01cb, 425, 1}, + {0xa758, 3222, 1}, - {0x03ee, 881, 1}, + {0x1e46, 1981, 1}, - {0x104c3, 3612, 1}, + {0x0058, 68, 1}, - {0x00cb, 111, 1}, + {0x10c8f, 3828, 1}, - {0x04c3, 1183, 1}, + {0xa746, 3195, 1}, - {0x104c9, 3630, 1}, + {0x16e48, 4122, 1}, - {0x1fc3, 71, 2}, + {0x0046, 15, 1}, - {0x04c9, 1192, 1}, + {0x1e912, 4248, 1}, - {0x2162, 2453, 1}, + {0x04ee, 1255, 1}, - {0x1fc9, 2390, 1}, + {0x1eee, 2219, 1}, - {0x00c3, 86, 1}, + {0xa658, 3069, 1}, - {0xa7c9, 3339, 1}, + {0x01ee, 483, 1}, - {0x104bf, 3600, 1}, + {0x104bf, 3615, 1}, - {0x00c9, 105, 1}, + {0x1e910, 4242, 1}, - {0x0550, 1441, 1}, + {0xa646, 3041, 1}, - {0x0055, 59, 1}, + {0x1e44, 1978, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x104bd, 3594, 1}, + {0xa744, 3192, 1}, - {0x0476, 1081, 1}, + {0xabbf, 1843, 1}, - {0x1e76, 2045, 1}, + {0x0044, 9, 1}, - {0xabbf, 1837, 1}, + {0x1cbf, 1603, 1}, - {0x0176, 342, 1}, + {0x2cde, 2894, 1}, - {0x1cbf, 1597, 1}, + {0x04de, 1231, 1}, - {0xab76, 1618, 1}, + {0x1ede, 2195, 1}, - {0xabbd, 1831, 1}, - {0xffffffff, -1, 0}, + {0x0372, 724, 1}, - {0x1cbd, 1591, 1}, + {0x01de, 459, 1}, {0xffffffff, -1, 0}, - {0x24c8, 2552, 1}, - {0xffffffff, -1, 0}, + {0xa644, 3038, 1}, - {0x24b9, 2507, 1}, + {0x00de, 165, 1}, - {0x16e55, 4080, 1}, + {0x104bd, 3609, 1}, - {0x2160, 2447, 1}, + {0x2cdc, 2891, 1}, - {0x1f9f, 204, 2}, + {0x04dc, 1228, 1}, - {0x019f, 673, 1}, + {0x1edc, 2192, 1}, + {0xffffffff, -1, 0}, - {0x104c1, 3606, 1}, + {0x10591, 3771, 1}, - {0xab9f, 1741, 1}, + {0xa7dc, 381, 1}, - {0x04c1, 1180, 1}, + {0xabbd, 1837, 1}, - {0x1c9f, 1507, 1}, + {0x00dc, 159, 1}, - {0x10c9f, 3861, 1}, + {0x1cbd, 1597, 1}, - {0x2132, 2444, 1}, + {0x104d2, 3672, 1}, - {0x24c6, 2546, 1}, + {0x2cd2, 2876, 1}, - {0x0245, 703, 1}, + {0x04d2, 1213, 1}, - {0x00c1, 80, 1}, + {0x1ed2, 2177, 1}, - {0x1f9d, 194, 2}, + {0x1fd2, 20, 3}, - {0x019d, 670, 1}, + {0x104bb, 3603, 1}, {0xffffffff, -1, 0}, - {0xab9d, 1735, 1}, + {0x0370, 721, 1}, - {0x24c5, 2543, 1}, + {0x00d2, 132, 1}, - {0x1c9d, 1501, 1}, + {0x1fbb, 2393, 1}, - {0x10c9d, 3855, 1}, + {0x0549, 1426, 1}, - {0x24bb, 2513, 1}, + {0x0246, 592, 1}, - {0x10cd, 3020, 1}, + {0xabbb, 1831, 1}, - {0x1e9b, 2011, 1}, + {0x10587, 3744, 1}, + {0xffffffff, -1, 0}, - {0x1f9b, 184, 2}, + {0x0587, 105, 2}, - {0xff30, 3402, 1}, + {0x104cd, 3657, 1}, {0xffffffff, -1, 0}, - {0xab9b, 1729, 1}, + {0x04cd, 1204, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x0143, 267, 1}, + {0x01cd, 432, 1}, - {0x1c9b, 1495, 1}, + {0x10572, 3684, 1}, - {0x10c9b, 3849, 1}, + {0x2162, 2462, 1}, - {0x0043, 6, 1}, + {0x00cd, 117, 1}, - {0x1e99, 42, 2}, + {0x0244, 700, 1}, - {0x1f99, 174, 2}, + {0x104c9, 3645, 1}, - {0x03de, 857, 1}, - {0xffffffff, -1, 0}, + {0x104c3, 3627, 1}, - {0xab99, 1723, 1}, + {0x04c9, 1198, 1}, - {0x1f95, 194, 2}, + {0x04c3, 1189, 1}, - {0x1c99, 1489, 1}, + {0x1fc9, 2399, 1}, - {0x10c99, 3843, 1}, + {0x1fc3, 71, 2}, - {0xab95, 1711, 1}, + {0xa7c9, 3348, 1}, {0xffffffff, -1, 0}, - {0x1c95, 1477, 1}, + {0x00c9, 105, 1}, - {0x10c95, 3831, 1}, + {0x00c3, 86, 1}, - {0x1f93, 184, 2}, + {0x0532, 1357, 1}, - {0x0193, 634, 1}, + {0x1f9f, 204, 2}, - {0x16e43, 4026, 1}, + {0x019f, 679, 1}, + {0xffffffff, -1, 0}, - {0xab93, 1705, 1}, + {0xab9f, 1747, 1}, {0xffffffff, -1, 0}, - {0x1c93, 1471, 1}, + {0x1c9f, 1513, 1}, - {0x10c93, 3825, 1}, + {0x1f5b, 2357, 1}, - {0x10c3, 3008, 1}, + {0x10570, 3678, 1}, - {0x1f83, 144, 2}, + {0x1f9d, 194, 2}, - {0x1e3a, 1954, 1}, + {0x019d, 676, 1}, + {0xffffffff, -1, 0}, - {0x1f3a, 2309, 1}, + {0xab9d, 1741, 1}, - {0xab83, 1657, 1}, + {0x1f95, 194, 2}, - {0xa73a, 3168, 1}, + {0x1c9d, 1507, 1}, - {0x1c83, 950, 1}, + {0x10bf, 3005, 1}, - {0x10c83, 3777, 1}, + {0xab95, 1717, 1}, - {0x1f49, 2330, 1}, + {0x10c9f, 3876, 1}, - {0x0149, 46, 2}, + {0x1c95, 1483, 1}, - {0x10bf, 2996, 1}, + {0x118bf, 4095, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xff32, 3408, 1}, + {0x1e9b, 2020, 1}, - {0x0049, 4215, 1}, + {0x1f9b, 184, 2}, + {0xffffffff, -1, 0}, - {0x118bf, 4014, 1}, + {0x10c9d, 3870, 1}, - {0x10bd, 2990, 1}, + {0xab9b, 1735, 1}, - {0x0246, 589, 1}, + {0x1057c, 3711, 1}, - {0x2c7f, 583, 1}, + {0x1c9b, 1501, 1}, - {0x118bd, 4008, 1}, + {0x10c95, 3846, 1}, - {0x1f81, 134, 2}, + {0x1e99, 42, 2}, - {0x0181, 613, 1}, + {0x1f99, 174, 2}, + {0xffffffff, -1, 0}, - {0x017f, 52, 1}, + {0x10bd, 2999, 1}, - {0xab81, 1651, 1}, + {0xab99, 1729, 1}, - {0xab7f, 1645, 1}, + {0x16e55, 4161, 1}, - {0x1c81, 909, 1}, + {0x1c99, 1495, 1}, - {0x10c81, 3771, 1}, + {0x118bd, 4089, 1}, - {0x0466, 1057, 1}, + {0x038f, 848, 1}, - {0x1e66, 2021, 1}, + {0x10c9b, 3864, 1}, - {0x16e49, 4044, 1}, + {0x1f93, 184, 2}, - {0x0166, 318, 1}, + {0x0193, 637, 1}, + {0xffffffff, -1, 0}, - {0xa766, 3234, 1}, + {0xab93, 1711, 1}, {0xffffffff, -1, 0}, - {0x1e5a, 2002, 1}, + {0x1c93, 1477, 1}, - {0x10c1, 3002, 1}, + {0x1f4b, 2345, 1}, - {0x015a, 300, 1}, + {0x10c99, 3858, 1}, - {0xa75a, 3216, 1}, + {0x10bb, 2993, 1}, + {0xffffffff, -1, 0}, - {0x10587, 3729, 1}, + {0x004b, 27, 1}, - {0x005a, 74, 1}, + {0x0143, 267, 1}, - {0x0587, 105, 2}, + {0x118bb, 4083, 1}, - {0x0230, 571, 1}, + {0x1e921, 4293, 1}, - {0x1e58, 1999, 1}, + {0x0043, 6, 1}, - {0xa666, 3081, 1}, + {0x10d5a, 3966, 1}, - {0x0158, 297, 1}, + {0x10c93, 3840, 1}, - {0xa758, 3213, 1}, + {0x1f81, 134, 2}, - {0x1e42, 1966, 1}, + {0x0181, 616, 1}, - {0x0058, 68, 1}, + {0x10cd, 3029, 1}, - {0xa65a, 3063, 1}, + {0xab81, 1657, 1}, - {0xa742, 3180, 1}, + {0x03ee, 887, 1}, - {0x10572, 3669, 1}, + {0x1c81, 915, 1}, - {0x0042, 3, 1}, + {0x2c7e, 583, 1}, - {0x054d, 1432, 1}, - {0xffffffff, -1, 0}, + {0x047e, 1099, 1}, - {0x16e5a, 4095, 1}, + {0x1e7e, 2066, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x03cf, 845, 1}, + {0xa77e, 3264, 1}, - {0xa658, 3060, 1}, + {0xab7e, 1648, 1}, - {0x0244, 694, 1}, - {0xffffffff, -1, 0}, + {0x10c3, 3017, 1}, - {0x10570, 3663, 1}, + {0x0145, 270, 1}, - {0xa642, 3026, 1}, - {0xffffffff, -1, 0}, + {0x10d58, 3960, 1}, + + {0x10c81, 3786, 1}, + + {0x0045, 12, 1}, + + {0x1058f, 3765, 1}, - {0x16e58, 4089, 1}, + {0x03de, 863, 1}, {0xffffffff, -1, 0}, - {0x104ce, 3645, 1}, + {0x24bf, 2534, 1}, - {0x2cce, 2861, 1}, + {0x0476, 1087, 1}, - {0x16e42, 4023, 1}, + {0x1e76, 2054, 1}, - {0x1ece, 2162, 1}, + {0x16e5d, 4185, 1}, - {0x04fa, 1267, 1}, + {0x0176, 342, 1}, + {0xffffffff, -1, 0}, - {0x1efa, 2228, 1}, + {0xab76, 1624, 1}, - {0x1ffa, 2417, 1}, + {0x03dc, 860, 1}, - {0x01fa, 493, 1}, + {0x0466, 1063, 1}, - {0x00ce, 120, 1}, + {0x1e66, 2030, 1}, + {0xffffffff, -1, 0}, - {0x0545, 1408, 1}, + {0x0166, 318, 1}, - {0x04f4, 1258, 1}, + {0xa766, 3243, 1}, - {0x1ef4, 2219, 1}, + {0x1e5e, 2017, 1}, - {0x1ff4, 101, 2}, + {0x0546, 1417, 1}, - {0x01f4, 487, 1}, + {0x015e, 306, 1}, - {0x0232, 574, 1}, - {0xffffffff, -1, 0}, + {0xa75e, 3231, 1}, - {0x2183, 2495, 1}, + {0x1e5c, 2014, 1}, - {0x04ec, 1246, 1}, + {0x24bd, 2528, 1}, - {0x1eec, 2207, 1}, + {0x015c, 303, 1}, - {0x1fec, 2441, 1}, + {0xa75c, 3228, 1}, - {0x01ec, 477, 1}, + {0x0243, 354, 1}, - {0x0376, 721, 1}, + {0xa666, 3090, 1}, + {0xffffffff, -1, 0}, - {0x2cf2, 2900, 1}, + {0x1e42, 1975, 1}, + {0xffffffff, -1, 0}, - {0x04f2, 1255, 1}, + {0xa65e, 3078, 1}, - {0x1ef2, 2216, 1}, + {0xa742, 3189, 1}, - {0x1ff2, 257, 2}, + {0x0544, 1411, 1}, - {0x01f2, 483, 1}, + {0x0042, 3, 1}, + + {0xa65c, 3075, 1}, - {0x04ea, 1243, 1}, + {0x0053, 52, 1}, + {0xffffffff, -1, 0}, - {0x1eea, 2204, 1}, + {0x24bb, 2522, 1}, - {0x1fea, 2411, 1}, + {0x104cf, 3663, 1}, - {0x01ea, 474, 1}, + {0x1e3a, 1963, 1}, - {0x10421, 3534, 1}, + {0x1f3a, 2318, 1}, - {0x2c21, 2675, 1}, + {0xa642, 3035, 1}, - {0x0421, 950, 1}, + {0xa73a, 3177, 1}, - {0x039f, 795, 1}, + {0x01cf, 435, 1}, - {0x04e8, 1240, 1}, + {0x0141, 264, 1}, - {0x1ee8, 2201, 1}, + {0x0245, 709, 1}, - {0x1fe8, 2435, 1}, + {0x00cf, 123, 1}, - {0x01e8, 471, 1}, + {0x0041, 0, 1}, + + {0x24cd, 2576, 1}, {0xffffffff, -1, 0}, - {0x1e3e, 1960, 1}, + {0x04fa, 1273, 1}, + + {0x1efa, 2237, 1}, - {0x1f3e, 2321, 1}, + {0x1ffa, 2426, 1}, - {0x2166, 2465, 1}, + {0x01fa, 496, 1}, - {0xa73e, 3174, 1}, + {0x039f, 801, 1}, {0xffffffff, -1, 0}, - {0x039d, 789, 1}, + {0x047a, 1093, 1}, - {0x04e6, 1237, 1}, + {0x1e7a, 2060, 1}, - {0x1ee6, 2198, 1}, + {0x24c9, 2564, 1}, - {0x1fe6, 88, 2}, + {0x24c3, 2546, 1}, - {0x01e6, 468, 1}, + {0x16e49, 4125, 1}, - {0x04e4, 1234, 1}, + {0xab7a, 1636, 1}, - {0x1ee4, 2195, 1}, + {0x039d, 795, 1}, - {0x1fe4, 80, 2}, + {0xff3a, 3447, 1}, - {0x01e4, 465, 1}, + {0x0051, 46, 1}, + {0xffffffff, -1, 0}, - {0x1e36, 1948, 1}, + {0x0395, 764, 1}, - {0x039b, 782, 1}, + {0x04f4, 1264, 1}, - {0x0136, 249, 1}, + {0x1ef4, 2228, 1}, - {0xa736, 3162, 1}, + {0x1ff4, 101, 2}, - {0x2cdc, 2882, 1}, + {0x01f4, 490, 1}, - {0x04dc, 1222, 1}, + {0x2cf2, 2909, 1}, - {0x1edc, 2183, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x04f2, 1261, 1}, - {0x0546, 1411, 1}, + {0x1ef2, 2225, 1}, - {0x0399, 773, 1}, + {0x1ff2, 257, 2}, - {0x00dc, 159, 1}, + {0x01f2, 486, 1}, - {0x1e40, 1963, 1}, + {0x039b, 788, 1}, + {0xffffffff, -1, 0}, - {0x0053, 52, 1}, + {0x04ec, 1252, 1}, - {0x0395, 758, 1}, + {0x1eec, 2216, 1}, - {0xa740, 3177, 1}, + {0x1fec, 2450, 1}, - {0xff3a, 3432, 1}, + {0x01ec, 480, 1}, + {0xffffffff, -1, 0}, - {0x1f8b, 144, 2}, + {0x10d5b, 3969, 1}, - {0x018b, 366, 1}, + {0x0399, 779, 1}, - {0xa78b, 3270, 1}, + {0x04ea, 1249, 1}, - {0xab8b, 1681, 1}, + {0x1eea, 2213, 1}, - {0x0393, 752, 1}, + {0x1fea, 2420, 1}, - {0x13fa, 1846, 1}, + {0x01ea, 477, 1}, - {0x10c8b, 3801, 1}, + {0x023a, 2732, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x0478, 1084, 1}, + {0x0241, 589, 1}, - {0x1e78, 2048, 1}, + {0x0393, 758, 1}, - {0xa640, 3023, 1}, + {0x04e8, 1246, 1}, - {0x0178, 168, 1}, + {0x1ee8, 2210, 1}, - {0x16e53, 4074, 1}, + {0x1fe8, 2444, 1}, - {0xab78, 1624, 1}, + {0x01e8, 474, 1}, - {0x0474, 1078, 1}, + {0x04e6, 1243, 1}, - {0x1e74, 2042, 1}, + {0x1ee6, 2207, 1}, - {0x16e40, 4017, 1}, + {0x1fe6, 88, 2}, - {0x0174, 339, 1}, + {0x01e6, 471, 1}, + {0xffffffff, -1, 0}, - {0x0141, 264, 1}, + {0x10595, 3780, 1}, - {0xab74, 1612, 1}, + {0x04e4, 1240, 1}, - {0x1e5e, 2008, 1}, + {0x1ee4, 2204, 1}, - {0x0041, 0, 1}, + {0x1fe4, 80, 2}, - {0x015e, 306, 1}, + {0x01e4, 468, 1}, + + {0x2ce0, 2897, 1}, - {0xa75e, 3222, 1}, + {0x04e0, 1234, 1}, - {0x1e5c, 2005, 1}, + {0x1ee0, 2198, 1}, {0xffffffff, -1, 0}, - {0x015c, 303, 1}, + {0x01e0, 462, 1}, - {0xa75c, 3219, 1}, + {0x104ce, 3660, 1}, - {0x10417, 3504, 1}, + {0x2cce, 2870, 1}, - {0x2c17, 2645, 1}, + {0x1e40, 1972, 1}, - {0x0417, 919, 1}, + {0x1ece, 2171, 1}, + {0xffffffff, -1, 0}, - {0x037f, 887, 1}, + {0xa740, 3186, 1}, - {0x0544, 1405, 1}, - {0xffffffff, -1, 0}, + {0x1e38, 1960, 1}, - {0xa65e, 3069, 1}, + {0x1f38, 2312, 1}, - {0x10579, 3690, 1}, + {0x00ce, 120, 1}, - {0x16e41, 4020, 1}, + {0xa738, 3174, 1}, - {0x0243, 354, 1}, + {0x0345, 779, 1}, - {0xa65c, 3066, 1}, + {0x1e36, 1957, 1}, - {0x24cd, 2567, 1}, + {0x104d1, 3669, 1}, - {0x16e5e, 4107, 1}, + {0x0136, 249, 1}, - {0x0051, 46, 1}, + {0xa736, 3171, 1}, - {0x1e38, 1951, 1}, + {0xa640, 3032, 1}, - {0x1f38, 2303, 1}, + {0x1e34, 1954, 1}, - {0x16e5c, 4101, 1}, + {0x01d1, 438, 1}, - {0xa738, 3165, 1}, + {0x0134, 246, 1}, - {0x1041d, 3522, 1}, + {0xa734, 3168, 1}, - {0x2c1d, 2663, 1}, + {0x00d1, 129, 1}, - {0x041d, 937, 1}, + {0x0376, 727, 1}, - {0x24cc, 2564, 1}, + {0x1041b, 3531, 1}, - {0x1f1d, 2276, 1}, + {0x2c1b, 2666, 1}, - {0x24cf, 2573, 1}, + {0x041b, 937, 1}, - {0x1e34, 1945, 1}, + {0x054b, 1432, 1}, - {0x0532, 1351, 1}, + {0x1f1b, 2279, 1}, - {0x0134, 246, 1}, + {0x1f3f, 2333, 1}, - {0xa734, 3159, 1}, + {0x013f, 261, 1}, - {0x16e51, 4068, 1}, + {0x0543, 1408, 1}, - {0x2c2b, 2705, 1}, + {0xff38, 3441, 1}, - {0x042b, 984, 1}, - {0xffffffff, -1, 0}, + {0x10417, 3519, 1}, - {0x1f2b, 2288, 1}, + {0x2c17, 2654, 1}, - {0x24cb, 2561, 1}, + {0x0417, 925, 1}, - {0x004f, 40, 1}, - {0xffffffff, -1, 0}, + {0x10581, 3726, 1}, + + {0xff36, 3435, 1}, - {0x023a, 2723, 1}, + {0x13fa, 1852, 1}, - {0x1041b, 3516, 1}, + {0x10419, 3525, 1}, - {0x2c1b, 2657, 1}, + {0x2c19, 2660, 1}, - {0x041b, 931, 1}, + {0x0419, 931, 1}, - {0x24c3, 2537, 1}, + {0xff34, 3429, 1}, - {0x1f1b, 2270, 1}, + {0x1f19, 2273, 1}, {0xffffffff, -1, 0}, - {0x24c9, 2555, 1}, + {0x1057e, 3717, 1}, - {0x10419, 3510, 1}, + {0x16e5a, 4176, 1}, - {0x2c19, 2651, 1}, + {0x10415, 3513, 1}, - {0x0419, 925, 1}, + {0x2c15, 2648, 1}, - {0x104d1, 3654, 1}, + {0x0415, 919, 1}, + {0xffffffff, -1, 0}, - {0x1f19, 2264, 1}, + {0x0545, 1414, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x16e4f, 4062, 1}, + {0x10413, 3507, 1}, - {0x24bf, 2525, 1}, + {0x2c13, 2642, 1}, - {0x03fa, 893, 1}, + {0x0413, 912, 1}, - {0x01d1, 435, 1}, - {0xffffffff, -1, 0}, + {0x10d5e, 3978, 1}, - {0x24bd, 2519, 1}, - - {0x00d1, 129, 1}, + {0x03cf, 851, 1}, {0xffffffff, -1, 0}, - {0x03f4, 768, 1}, + {0x10576, 3696, 1}, - {0x10415, 3498, 1}, + {0x10d5c, 3972, 1}, + {0xffffffff, -1, 0}, - {0x2c15, 2639, 1}, + {0x16e58, 4170, 1}, - {0x0415, 913, 1}, + {0x10405, 3465, 1}, - {0x10413, 3492, 1}, + {0x2c05, 2600, 1}, - {0x2c13, 2633, 1}, + {0x0405, 1020, 1}, - {0x0413, 906, 1}, + {0x16e46, 4116, 1}, - {0x03ec, 878, 1}, + {0x03fa, 899, 1}, - {0xff21, 3357, 1}, + {0x24cf, 2582, 1}, - {0x1040f, 3480, 1}, + {0x10d53, 3945, 1}, + {0xffffffff, -1, 0}, - {0x2c0f, 2621, 1}, + {0x2126, 832, 1}, - {0x040f, 1044, 1}, - {0xffffffff, -1, 0}, + {0x1040f, 3495, 1}, - {0x1f0f, 2258, 1}, - {0xffffffff, -1, 0}, + {0x2c0f, 2630, 1}, - {0x24c1, 2531, 1}, + {0x040f, 1050, 1}, - {0x0555, 1456, 1}, + {0xfb17, 117, 2}, - {0x03ea, 875, 1}, - {0xffffffff, -1, 0}, + {0x1f0f, 2267, 1}, - {0x1040d, 3474, 1}, + {0x1040d, 3489, 1}, - {0x2c0d, 2615, 1}, + {0x2c0d, 2624, 1}, - {0x040d, 1038, 1}, + {0x040d, 1044, 1}, - {0x10576, 3681, 1}, + {0x16e44, 4110, 1}, - {0x1f0d, 2252, 1}, + {0x1f0d, 2261, 1}, {0xffffffff, -1, 0}, - {0x03e8, 872, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x0542, 1405, 1}, - {0xff36, 3420, 1}, + {0x03f4, 774, 1}, - {0x1040b, 3468, 1}, + {0x0553, 1456, 1}, - {0x2c0b, 2609, 1}, + {0x1040b, 3483, 1}, - {0x040b, 1032, 1}, - {0xffffffff, -1, 0}, + {0x2c0b, 2618, 1}, - {0x1f0b, 2246, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x040b, 1038, 1}, - {0x03e6, 869, 1}, + {0xfb15, 113, 2}, - {0x10409, 3462, 1}, + {0x1f0b, 2255, 1}, - {0x2c09, 2603, 1}, + {0x10403, 3459, 1}, - {0x0409, 1026, 1}, + {0x2c03, 2594, 1}, - {0x03e4, 866, 1}, + {0x0403, 1014, 1}, - {0x1f09, 2240, 1}, + {0x053a, 1381, 1}, - {0x10405, 3450, 1}, + {0x03ec, 884, 1}, - {0x2c05, 2591, 1}, + {0xfb13, 121, 2}, - {0x0405, 1014, 1}, + {0x0541, 1402, 1}, - {0x10403, 3444, 1}, + {0x10d51, 3939, 1}, - {0x2c03, 2585, 1}, + {0x10409, 3477, 1}, - {0x0403, 1008, 1}, - {0xffffffff, -1, 0}, + {0x2c09, 2612, 1}, - {0x03dc, 854, 1}, - {0xffffffff, -1, 0}, + {0x0409, 1032, 1}, - {0x212b, 92, 1}, + {0x03ea, 881, 1}, - {0x10401, 3438, 1}, + {0x1f09, 2249, 1}, - {0x2c01, 2579, 1}, + {0x1f3b, 2321, 1}, - {0x0401, 1002, 1}, + {0x013b, 255, 1}, - {0x04fc, 1270, 1}, + {0xfb05, 29, 2}, - {0x1efc, 2231, 1}, + {0x10401, 3453, 1}, - {0x1ffc, 96, 2}, + {0x2c01, 2588, 1}, - {0x01fc, 496, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x0401, 1008, 1}, - {0x0543, 1402, 1}, + {0x1057a, 3708, 1}, - {0x04f8, 1264, 1}, + {0x03e8, 878, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1ef8, 2225, 1}, + {0x0551, 1450, 1}, - {0x1ff8, 2405, 1}, + {0x03e6, 875, 1}, - {0x01f8, 490, 1}, + {0x04f8, 1270, 1}, - {0x10427, 3552, 1}, + {0x1ef8, 2234, 1}, - {0x2c27, 2693, 1}, + {0x1ff8, 2414, 1}, - {0x0427, 971, 1}, + {0x01f8, 493, 1}, + {0xffffffff, -1, 0}, - {0x10595, 3765, 1}, + {0x03e4, 872, 1}, - {0x04f6, 1261, 1}, + {0x04f6, 1267, 1}, - {0x1ef6, 2222, 1}, + {0x1ef6, 2231, 1}, {0x1ff6, 92, 2}, {0x01f6, 372, 1}, - {0x047a, 1087, 1}, + {0x03e0, 866, 1}, + {0xffffffff, -1, 0}, - {0x1e7a, 2051, 1}, + {0x2cd4, 2879, 1}, - {0x1f4b, 2336, 1}, - {0xffffffff, -1, 0}, + {0x04d4, 1216, 1}, - {0x023e, 2726, 1}, + {0x1ed4, 2180, 1}, - {0xab7a, 1630, 1}, + {0x0179, 345, 1}, - {0x004b, 27, 1}, + {0xa779, 3258, 1}, - {0x1041f, 3528, 1}, + {0xab79, 1633, 1}, - {0x2c1f, 2669, 1}, + {0xfb03, 0, 3}, - {0x041f, 944, 1}, + {0x00d4, 138, 1}, - {0x10583, 3717, 1}, - {0xffffffff, -1, 0}, + {0x1e3c, 1966, 1}, - {0xff38, 3426, 1}, + {0x1f3c, 2324, 1}, {0xffffffff, -1, 0}, - {0x053a, 1375, 1}, + {0xa73c, 3180, 1}, - {0x2c2f, 2717, 1}, + {0x10423, 3555, 1}, - {0x042f, 996, 1}, - {0xffffffff, -1, 0}, + {0x2c23, 2690, 1}, - {0x1f2f, 2300, 1}, + {0x0423, 965, 1}, - {0x0549, 1420, 1}, - {0xffffffff, -1, 0}, + {0x24ce, 2579, 1}, - {0x16e4b, 4050, 1}, + {0x03d1, 774, 1}, - {0xff34, 3414, 1}, + {0x2c2d, 2720, 1}, - {0x2c2d, 2711, 1}, + {0x042d, 996, 1}, - {0x042d, 990, 1}, - {0xffffffff, -1, 0}, + {0x16e5b, 4179, 1}, - {0x1f2d, 2294, 1}, + {0x1f2d, 2303, 1}, + {0xffffffff, -1, 0}, - {0x10581, 3711, 1}, + {0xfb01, 8, 2}, - {0x1057f, 3705, 1}, + {0x2c29, 2708, 1}, - {0xff2b, 3387, 1}, + {0x0429, 983, 1}, - {0x2c29, 2699, 1}, + {0x023b, 580, 1}, - {0x0429, 977, 1}, - {0xffffffff, -1, 0}, + {0x1f29, 2291, 1}, - {0x1f29, 2282, 1}, + {0x1041f, 3543, 1}, - {0x10425, 3546, 1}, + {0x2c1f, 2678, 1}, - {0x2c25, 2687, 1}, + {0x041f, 950, 1}, - {0x0425, 965, 1}, + {0x10411, 3501, 1}, - {0x10423, 3540, 1}, + {0x2c11, 2636, 1}, - {0x2c23, 2681, 1}, + {0x0411, 905, 1}, - {0x0423, 959, 1}, + {0x10407, 3471, 1}, - {0x10411, 3486, 1}, + {0x2c07, 2606, 1}, - {0x2c11, 2627, 1}, + {0x0407, 1026, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x0411, 899, 1}, + {0xff23, 3378, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x10407, 3456, 1}, + {0x0540, 1399, 1}, - {0x2c07, 2597, 1}, + {0xff2d, 3408, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x0407, 1020, 1}, + {0x0538, 1375, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x24ce, 2570, 1}, + {0xff29, 3396, 1}, {0xffffffff, -1, 0}, - {0x0241, 586, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x0536, 1369, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x13fc, 1852, 1}, + {0x0534, 1363, 1}, {0xffffffff, -1, 0}, - {0x0542, 1399, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x16e4b, 4131, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x13f8, 1840, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x16e43, 4107, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x03d1, 768, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x053f, 1396, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e921, 4212, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x216d, 2495, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x216b, 2489, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x053e, 1387, 1}, + {0x16e45, 4113, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x13f8, 1846, 1}, + + {0x2169, 2483, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xff27, 3375, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x16e5e, 4188, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x0536, 1363, 1}, + {0x16e5c, 4182, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, - {0x0553, 1450, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x16e42, 4104, 1}, + {0xffffffff, -1, 0}, - {0x0540, 1393, 1}, + {0x16e53, 4155, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xff2f, 3399, 1}, + {0x16e41, 4101, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x053b, 1384, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x10578, 3687, 1}, - {0xffffffff, -1, 0}, + {0x16e51, 4149, 1}, - {0x1e917, 4182, 1}, + {0x1e91b, 4275, 1}, {0xffffffff, -1, 0}, - {0xff2d, 3393, 1}, + {0x2160, 2456, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x10574, 3675, 1}, + {0x1e917, 4263, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x0541, 1396, 1}, - {0xffffffff, -1, 0}, - - {0xff29, 3381, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xff25, 3369, 1}, + {0x212b, 92, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xff23, 3363, 1}, + {0x1e919, 4269, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e91d, 4200, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x10579, 3705, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x0551, 1444, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x1e915, 4257, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x0538, 1369, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x053c, 1387, 1}, + {0xffffffff, -1, 0}, - {0x1e91b, 4194, 1}, + {0x1e913, 4251, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x0534, 1357, 1}, - - {0x1e919, 4188, 1}, + {0x1e905, 4209, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x054f, 1438, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x1e90f, 4239, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e915, 4176, 1}, + {0x1e90d, 4233, 1}, + + {0x16e40, 4098, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e913, 4170, 1}, + {0x1e90b, 4227, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e90f, 4158, 1}, + {0x1e903, 4203, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, - - {0xfb17, 117, 2}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e90d, 4152, 1}, + {0x1e909, 4221, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e90b, 4146, 1}, + {0x1e901, 4197, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e909, 4140, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0x1e91f, 4287, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e905, 4128, 1}, + {0x1e911, 4245, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e903, 4122, 1}, + {0x1e907, 4215, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, - {0x1e901, 4116, 1}, + {0x2132, 2453, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xfb15, 113, 2}, + {0x216c, 2492, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xfb13, 121, 2}, + {0x216a, 2486, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0x1e91f, 4206, 1}, + {0x2168, 2480, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1057a, 3693, 1}, - {0xffffffff, -1, 0}, - - {0x054b, 1426, 1}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e911, 4164, 1}, - - {0xfb05, 29, 2}, - {0xffffffff, -1, 0}, - - {0x1e907, 4134, 1}, - - {0xfb03, 0, 3}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xfb01, 8, 2} + {0x2166, 2474, 1} }; diff --git a/src/unicode_wb_data.c b/src/unicode_wb_data.c index 216c982..aa078fb 100644 --- a/src/unicode_wb_data.c +++ b/src/unicode_wb_data.c @@ -1,6 +1,6 @@ /* unicode_wb_data.c: Generated by make_unicode_wb_data.py. */ /*- - * Copyright (c) 2019-2021 K.Kosako + * Copyright (c) 2019-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ * SUCH DAMAGE. */ -#define WORD_BREAK_PROPERTY_VERSION 140000 +#define WORD_BREAK_PROPERTY_VERSION 160000 /* ALetter @@ -48,7 +48,7 @@ WSegSpace ZWJ */ -static int WB_RANGE_NUM = 1031; +static int WB_RANGE_NUM = 1085; static WB_RANGE_TYPE WB_RANGES[] = { {0x00000a, 0x00000a, WB_LF }, {0x00000b, 0x00000c, WB_Newline }, @@ -105,7 +105,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x0005ef, 0x0005f2, WB_Hebrew_Letter }, {0x0005f3, 0x0005f3, WB_ALetter }, {0x0005f4, 0x0005f4, WB_MidLetter }, - {0x000600, 0x000605, WB_Format }, + {0x000600, 0x000605, WB_Numeric }, {0x00060c, 0x00060d, WB_MidNum }, {0x000610, 0x00061a, WB_Extend }, {0x00061c, 0x00061c, WB_Format }, @@ -119,7 +119,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x000671, 0x0006d3, WB_ALetter }, {0x0006d5, 0x0006d5, WB_ALetter }, {0x0006d6, 0x0006dc, WB_Extend }, - {0x0006dd, 0x0006dd, WB_Format }, + {0x0006dd, 0x0006dd, WB_Numeric }, {0x0006df, 0x0006e4, WB_Extend }, {0x0006e5, 0x0006e6, WB_ALetter }, {0x0006e7, 0x0006e8, WB_Extend }, @@ -128,8 +128,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x0006f0, 0x0006f9, WB_Numeric }, {0x0006fa, 0x0006fc, WB_ALetter }, {0x0006ff, 0x0006ff, WB_ALetter }, - {0x00070f, 0x00070f, WB_Format }, - {0x000710, 0x000710, WB_ALetter }, + {0x00070f, 0x000710, WB_ALetter }, {0x000711, 0x000711, WB_Extend }, {0x000712, 0x00072f, WB_ALetter }, {0x000730, 0x00074a, WB_Extend }, @@ -156,11 +155,11 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x000860, 0x00086a, WB_ALetter }, {0x000870, 0x000887, WB_ALetter }, {0x000889, 0x00088e, WB_ALetter }, - {0x000890, 0x000891, WB_Format }, - {0x000898, 0x00089f, WB_Extend }, + {0x000890, 0x000891, WB_Numeric }, + {0x000897, 0x00089f, WB_Extend }, {0x0008a0, 0x0008c9, WB_ALetter }, {0x0008ca, 0x0008e1, WB_Extend }, - {0x0008e2, 0x0008e2, WB_Format }, + {0x0008e2, 0x0008e2, WB_Numeric }, {0x0008e3, 0x000903, WB_Extend }, {0x000904, 0x000939, WB_ALetter }, {0x00093a, 0x00093c, WB_Extend }, @@ -299,6 +298,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x000ce2, 0x000ce3, WB_Extend }, {0x000ce6, 0x000cef, WB_Numeric }, {0x000cf1, 0x000cf2, WB_ALetter }, + {0x000cf3, 0x000cf3, WB_Extend }, {0x000d00, 0x000d03, WB_Extend }, {0x000d04, 0x000d0c, WB_ALetter }, {0x000d0e, 0x000d10, WB_ALetter }, @@ -333,7 +333,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x000e50, 0x000e59, WB_Numeric }, {0x000eb1, 0x000eb1, WB_Extend }, {0x000eb4, 0x000ebc, WB_Extend }, - {0x000ec8, 0x000ecd, WB_Extend }, + {0x000ec8, 0x000ece, WB_Extend }, {0x000ed0, 0x000ed9, WB_Numeric }, {0x000f00, 0x000f00, WB_ALetter }, {0x000f18, 0x000f19, WB_Extend }, @@ -418,7 +418,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x001920, 0x00192b, WB_Extend }, {0x001930, 0x00193b, WB_Extend }, {0x001946, 0x00194f, WB_Numeric }, - {0x0019d0, 0x0019d9, WB_Numeric }, + {0x0019d0, 0x0019da, WB_Numeric }, {0x001a00, 0x001a16, WB_ALetter }, {0x001a17, 0x001a1b, WB_Extend }, {0x001a55, 0x001a5e, WB_Extend }, @@ -446,7 +446,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x001c4d, 0x001c4f, WB_ALetter }, {0x001c50, 0x001c59, WB_Numeric }, {0x001c5a, 0x001c7d, WB_ALetter }, - {0x001c80, 0x001c88, WB_ALetter }, + {0x001c80, 0x001c8a, WB_ALetter }, {0x001c90, 0x001cba, WB_ALetter }, {0x001cbd, 0x001cbf, WB_ALetter }, {0x001cd0, 0x001cd2, WB_Extend }, @@ -564,10 +564,10 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x00a69e, 0x00a69f, WB_Extend }, {0x00a6a0, 0x00a6ef, WB_ALetter }, {0x00a6f0, 0x00a6f1, WB_Extend }, - {0x00a708, 0x00a7ca, WB_ALetter }, + {0x00a708, 0x00a7cd, WB_ALetter }, {0x00a7d0, 0x00a7d1, WB_ALetter }, {0x00a7d3, 0x00a7d3, WB_ALetter }, - {0x00a7d5, 0x00a7d9, WB_ALetter }, + {0x00a7d5, 0x00a7dc, WB_ALetter }, {0x00a7f2, 0x00a801, WB_ALetter }, {0x00a802, 0x00a802, WB_Extend }, {0x00a803, 0x00a805, WB_ALetter }, @@ -647,9 +647,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x00fd92, 0x00fdc7, WB_ALetter }, {0x00fdf0, 0x00fdfb, WB_ALetter }, {0x00fe00, 0x00fe0f, WB_Extend }, - {0x00fe10, 0x00fe10, WB_MidNum }, {0x00fe13, 0x00fe13, WB_MidLetter }, - {0x00fe14, 0x00fe14, WB_MidNum }, {0x00fe20, 0x00fe2f, WB_Extend }, {0x00fe33, 0x00fe34, WB_ExtendNumLet }, {0x00fe4d, 0x00fe4f, WB_ExtendNumLet }, @@ -711,6 +709,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x0105a3, 0x0105b1, WB_ALetter }, {0x0105b3, 0x0105b9, WB_ALetter }, {0x0105bb, 0x0105bc, WB_ALetter }, + {0x0105c0, 0x0105f3, WB_ALetter }, {0x010600, 0x010736, WB_ALetter }, {0x010740, 0x010755, WB_ALetter }, {0x010760, 0x010767, WB_ALetter }, @@ -755,9 +754,15 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x010d00, 0x010d23, WB_ALetter }, {0x010d24, 0x010d27, WB_Extend }, {0x010d30, 0x010d39, WB_Numeric }, + {0x010d40, 0x010d49, WB_Numeric }, + {0x010d4a, 0x010d65, WB_ALetter }, + {0x010d69, 0x010d6d, WB_Extend }, + {0x010d6f, 0x010d85, WB_ALetter }, {0x010e80, 0x010ea9, WB_ALetter }, {0x010eab, 0x010eac, WB_Extend }, {0x010eb0, 0x010eb1, WB_ALetter }, + {0x010ec2, 0x010ec4, WB_ALetter }, + {0x010efc, 0x010eff, WB_Extend }, {0x010f00, 0x010f1c, WB_ALetter }, {0x010f27, 0x010f27, WB_ALetter }, {0x010f30, 0x010f45, WB_ALetter }, @@ -777,9 +782,9 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x01107f, 0x011082, WB_Extend }, {0x011083, 0x0110af, WB_ALetter }, {0x0110b0, 0x0110ba, WB_Extend }, - {0x0110bd, 0x0110bd, WB_Format }, + {0x0110bd, 0x0110bd, WB_Numeric }, {0x0110c2, 0x0110c2, WB_Extend }, - {0x0110cd, 0x0110cd, WB_Format }, + {0x0110cd, 0x0110cd, WB_Numeric }, {0x0110d0, 0x0110e8, WB_ALetter }, {0x0110f0, 0x0110f9, WB_Numeric }, {0x011100, 0x011102, WB_Extend }, @@ -805,6 +810,8 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x011213, 0x01122b, WB_ALetter }, {0x01122c, 0x011237, WB_Extend }, {0x01123e, 0x01123e, WB_Extend }, + {0x01123f, 0x011240, WB_ALetter }, + {0x011241, 0x011241, WB_Extend }, {0x011280, 0x011286, WB_ALetter }, {0x011288, 0x011288, WB_ALetter }, {0x01128a, 0x01128d, WB_ALetter }, @@ -831,6 +838,20 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x011362, 0x011363, WB_Extend }, {0x011366, 0x01136c, WB_Extend }, {0x011370, 0x011374, WB_Extend }, + {0x011380, 0x011389, WB_ALetter }, + {0x01138b, 0x01138b, WB_ALetter }, + {0x01138e, 0x01138e, WB_ALetter }, + {0x011390, 0x0113b5, WB_ALetter }, + {0x0113b7, 0x0113b7, WB_ALetter }, + {0x0113b8, 0x0113c0, WB_Extend }, + {0x0113c2, 0x0113c2, WB_Extend }, + {0x0113c5, 0x0113c5, WB_Extend }, + {0x0113c7, 0x0113ca, WB_Extend }, + {0x0113cc, 0x0113d0, WB_Extend }, + {0x0113d1, 0x0113d1, WB_ALetter }, + {0x0113d2, 0x0113d2, WB_Extend }, + {0x0113d3, 0x0113d3, WB_ALetter }, + {0x0113e1, 0x0113e2, WB_Extend }, {0x011400, 0x011434, WB_ALetter }, {0x011435, 0x011446, WB_Extend }, {0x011447, 0x01144a, WB_ALetter }, @@ -855,6 +876,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x0116ab, 0x0116b7, WB_Extend }, {0x0116b8, 0x0116b8, WB_ALetter }, {0x0116c0, 0x0116c9, WB_Numeric }, + {0x0116d0, 0x0116e3, WB_Numeric }, {0x01171d, 0x01172b, WB_Extend }, {0x011730, 0x011739, WB_Numeric }, {0x011800, 0x01182b, WB_ALetter }, @@ -894,6 +916,8 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x011a8a, 0x011a99, WB_Extend }, {0x011a9d, 0x011a9d, WB_ALetter }, {0x011ab0, 0x011af8, WB_ALetter }, + {0x011bc0, 0x011be0, WB_ALetter }, + {0x011bf0, 0x011bf9, WB_Numeric }, {0x011c00, 0x011c08, WB_ALetter }, {0x011c0a, 0x011c2e, WB_ALetter }, {0x011c2f, 0x011c36, WB_Extend }, @@ -923,14 +947,30 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x011da0, 0x011da9, WB_Numeric }, {0x011ee0, 0x011ef2, WB_ALetter }, {0x011ef3, 0x011ef6, WB_Extend }, + {0x011f00, 0x011f01, WB_Extend }, + {0x011f02, 0x011f02, WB_ALetter }, + {0x011f03, 0x011f03, WB_Extend }, + {0x011f04, 0x011f10, WB_ALetter }, + {0x011f12, 0x011f33, WB_ALetter }, + {0x011f34, 0x011f3a, WB_Extend }, + {0x011f3e, 0x011f42, WB_Extend }, + {0x011f50, 0x011f59, WB_Numeric }, + {0x011f5a, 0x011f5a, WB_Extend }, {0x011fb0, 0x011fb0, WB_ALetter }, {0x012000, 0x012399, WB_ALetter }, {0x012400, 0x01246e, WB_ALetter }, {0x012480, 0x012543, WB_ALetter }, {0x012f90, 0x012ff0, WB_ALetter }, - {0x013000, 0x01342e, WB_ALetter }, - {0x013430, 0x013438, WB_Format }, + {0x013000, 0x01342f, WB_ALetter }, + {0x013430, 0x01343f, WB_Format }, + {0x013440, 0x013440, WB_Extend }, + {0x013441, 0x013446, WB_ALetter }, + {0x013447, 0x013455, WB_Extend }, + {0x013460, 0x0143fa, WB_ALetter }, {0x014400, 0x014646, WB_ALetter }, + {0x016100, 0x01611d, WB_ALetter }, + {0x01611e, 0x01612f, WB_Extend }, + {0x016130, 0x016139, WB_Numeric }, {0x016800, 0x016a38, WB_ALetter }, {0x016a40, 0x016a5e, WB_ALetter }, {0x016a60, 0x016a69, WB_Numeric }, @@ -944,6 +984,8 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x016b50, 0x016b59, WB_Numeric }, {0x016b63, 0x016b77, WB_ALetter }, {0x016b7d, 0x016b8f, WB_ALetter }, + {0x016d40, 0x016d6c, WB_ALetter }, + {0x016d70, 0x016d79, WB_Numeric }, {0x016e40, 0x016e7f, WB_ALetter }, {0x016f00, 0x016f4a, WB_ALetter }, {0x016f4f, 0x016f4f, WB_Extend }, @@ -960,6 +1002,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x01affd, 0x01affe, WB_Katakana }, {0x01b000, 0x01b000, WB_Katakana }, {0x01b120, 0x01b122, WB_Katakana }, + {0x01b155, 0x01b155, WB_Katakana }, {0x01b164, 0x01b167, WB_Katakana }, {0x01bc00, 0x01bc6a, WB_ALetter }, {0x01bc70, 0x01bc7c, WB_ALetter }, @@ -967,6 +1010,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x01bc90, 0x01bc99, WB_ALetter }, {0x01bc9d, 0x01bc9e, WB_Extend }, {0x01bca0, 0x01bca3, WB_Format }, + {0x01ccf0, 0x01ccf9, WB_Numeric }, {0x01cf00, 0x01cf2d, WB_Extend }, {0x01cf30, 0x01cf46, WB_Extend }, {0x01d165, 0x01d169, WB_Extend }, @@ -1014,11 +1058,14 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x01da9b, 0x01da9f, WB_Extend }, {0x01daa1, 0x01daaf, WB_Extend }, {0x01df00, 0x01df1e, WB_ALetter }, + {0x01df25, 0x01df2a, WB_ALetter }, {0x01e000, 0x01e006, WB_Extend }, {0x01e008, 0x01e018, WB_Extend }, {0x01e01b, 0x01e021, WB_Extend }, {0x01e023, 0x01e024, WB_Extend }, {0x01e026, 0x01e02a, WB_Extend }, + {0x01e030, 0x01e06d, WB_ALetter }, + {0x01e08f, 0x01e08f, WB_Extend }, {0x01e100, 0x01e12c, WB_ALetter }, {0x01e130, 0x01e136, WB_Extend }, {0x01e137, 0x01e13d, WB_ALetter }, @@ -1029,6 +1076,13 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x01e2c0, 0x01e2eb, WB_ALetter }, {0x01e2ec, 0x01e2ef, WB_Extend }, {0x01e2f0, 0x01e2f9, WB_Numeric }, + {0x01e4d0, 0x01e4eb, WB_ALetter }, + {0x01e4ec, 0x01e4ef, WB_Extend }, + {0x01e4f0, 0x01e4f9, WB_Numeric }, + {0x01e5d0, 0x01e5ed, WB_ALetter }, + {0x01e5ee, 0x01e5ef, WB_Extend }, + {0x01e5f0, 0x01e5f0, WB_ALetter }, + {0x01e5f1, 0x01e5fa, WB_Numeric }, {0x01e7e0, 0x01e7e6, WB_ALetter }, {0x01e7e8, 0x01e7eb, WB_ALetter }, {0x01e7ed, 0x01e7ee, WB_ALetter }, diff --git a/src/utf16_be.c b/src/utf16_be.c index 5014e18..69f99e2 100644 --- a/src/utf16_be.c +++ b/src/utf16_be.c @@ -2,7 +2,7 @@ utf16_be.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2020 K.Kosako + * Copyright (c) 2002-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -43,8 +43,9 @@ init(void) enc = ONIG_ENCODING_UTF16_BE; - name = "\000F\000A\000I\000L\000\000"; BC0_P(name, fail); + name = "\000F\000A\000I\000L\000\000"; BC0_P(name, fail); name = "\000M\000I\000S\000M\000A\000T\000C\000H\000\000"; BC0_P(name, mismatch); + name = "\000S\000K\000I\000P\000\000"; BC0_P(name, skip); name = "\000M\000A\000X\000\000"; args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; diff --git a/src/utf16_le.c b/src/utf16_le.c index 35ceb3c..11804fe 100644 --- a/src/utf16_le.c +++ b/src/utf16_le.c @@ -2,7 +2,7 @@ utf16_le.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2020 K.Kosako + * Copyright (c) 2002-2024 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -41,8 +41,9 @@ init(void) enc = ONIG_ENCODING_UTF16_LE; - name = "F\000A\000I\000L\000\000\000"; BC0_P(name, fail); + name = "F\000A\000I\000L\000\000\000"; BC0_P(name, fail); name = "M\000I\000S\000M\000A\000T\000C\000H\000\000\000"; BC0_P(name, mismatch); + name = "S\000K\000I\000P\000\000\000"; BC0_P(name, skip); name = "M\000A\000X\000\000\000"; args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; @@ -232,7 +233,7 @@ utf16le_left_adjust_char_head(const UChar* start, const UChar* s) { if (s <= start) return (UChar* )s; - if ((s - start) % 2 == 1) { + if ((s - start) % 2 != 0) { s--; } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..a508f6a --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,55 @@ +if(MSVC) + if(MSVC_VERSION LESS "1900") + # < VS2015, no "/utf-8" option, can not build test + return() + endif() +endif() + +enable_testing() + +add_executable(test_utf8 test_utf8.c) +target_link_libraries(test_utf8 onig) +if(MSVC) + target_compile_options(test_utf8 PRIVATE /utf-8) +endif(MSVC) + +add_executable(test_syntax test_syntax.c) +target_link_libraries(test_syntax onig) +if(MSVC) + target_compile_options(test_syntax PRIVATE /utf-8) +endif(MSVC) + +add_executable(test_options test_options.c) +target_link_libraries(test_options onig) +if(MSVC) + target_compile_options(test_options PRIVATE /utf-8) +endif(MSVC) + +if(NOT MSVC) + # EUC + add_executable(testc testc.c) + target_link_libraries(testc onig) + if (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU") + target_compile_options(testc PRIVATE -Wall -Wno-invalid-source-encoding) + endif() +endif(NOT MSVC) + +if(ENABLE_POSIX_API) + add_executable(testp testp.c) + target_link_libraries(testp onig) +endif() + +add_executable(testcu testu.c) +target_link_libraries(testcu onig) + +add_executable(test_regset test_regset.c) +target_link_libraries(test_regset onig) +if(MSVC) + target_compile_options(test_regset PRIVATE /utf-8) +endif(MSVC) + +add_executable(test_back test_back.c) +target_link_libraries(test_back onig) +if(MSVC) + target_compile_options(test_back PRIVATE /utf-8) +endif(MSVC) diff --git a/test/test.sh b/test/test.sh new file mode 100755 index 0000000..08c52a8 --- /dev/null +++ b/test/test.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +echo "[Oniguruma API, UTF-8 check]" +./test_utf8 | grep RESULT +echo "[Oniguruma API, SYNTAX check]" +./test_syntax | grep RESULT +echo "[Oniguruma API, Options check]" +./test_options | grep RESULT +echo "[Oniguruma API, EUC-JP check]" +./testc | grep RESULT +echo "[Oniguruma API, UTF-16 check]" +./testcu | grep RESULT +echo "" +echo "[Oniguruma API, regset check]" +./test_regset +echo "[Oniguruma API, backward search check]" +./test_back | grep RESULT diff --git a/test/test_back.c b/test/test_back.c index 9a6e4a8..52f2e58 100644 --- a/test/test_back.c +++ b/test/test_back.c @@ -1,6 +1,6 @@ /* * test_back.c - * Copyright (c) 2020-2021 K.Kosako + * Copyright (c) 2020-2024 K.Kosako */ #ifdef ONIG_ESCAPE_UCHAR_COLLISION #undef ONIG_ESCAPE_UCHAR_COLLISION @@ -64,7 +64,7 @@ static void xx(char* pattern, char* str, int from, int to, int mem, int not, r = onig_search(reg, (UChar* )str, (UChar* )(str + SLEN(str)), (UChar* )(str + SLEN(str)), (UChar* )str, region, ONIG_OPTION_NONE); - if (r < ONIG_MISMATCH) { + if (r < ONIG_MISMATCH || error_no < ONIG_MISMATCH) { char s[ONIG_MAX_ERROR_MESSAGE_LEN]; if (error_no == 0) { @@ -609,7 +609,7 @@ extern int main(int argc, char* argv[]) n("\\A(a|b\\g<1>c)\\k<1+3>\\z", "bbaccb"); x2("(?i)\\A(a|b\\g<1>c)\\k<1+2>\\z", "bBACcbac", 0, 8); x2("(?i)(?<X>aa)|(?<X>bb)\\k<X>", "BBbb", 0, 4); - x2("(?:\\k'+1'B|(A)C)*", "ACAB", 4, 4); // relative backref by postitive number + x2("(?:\\k'+1'B|(A)C)*", "ACAB", 4, 4); // relative backref by positive number x2("\\g<+2>(abc)(ABC){0}", "ABCabc", 0, 6); // relative call by positive number x2("A\\g'0'|B()", "AAAAB", 4, 5); x3("(A\\g'0')|B", "AAAAB", -1, -1, 1); diff --git a/test/test_options.c b/test/test_options.c index 7010f0f..9aa2538 100644 --- a/test/test_options.c +++ b/test/test_options.c @@ -1,6 +1,6 @@ /* * test_options.c - * Copyright (c) 2020-2021 K.Kosako + * Copyright (c) 2020-2024 K.Kosako */ #ifdef ONIG_ESCAPE_UCHAR_COLLISION #undef ONIG_ESCAPE_UCHAR_COLLISION @@ -64,7 +64,7 @@ static void xx(OnigOptionType options, char* pattern, char* str, r = onig_search(reg, (UChar* )str, (UChar* )(str + SLEN(str)), (UChar* )str, (UChar* )(str + SLEN(str)), region, options); - if (r < ONIG_MISMATCH) { + if (r < ONIG_MISMATCH || error_no < ONIG_MISMATCH) { char s[ONIG_MAX_ERROR_MESSAGE_LEN]; if (error_no == 0) { @@ -197,6 +197,11 @@ extern int main(int argc, char* argv[]) n(ONIG_OPTION_NOT_END_STRING, "ab\\Z", "ab"); n(ONIG_OPTION_NOT_END_STRING, "ab\\Z", "ab\n"); + x2(ONIG_OPTION_NONE, "a|abc", "abc", 0, 1); + x2(ONIG_OPTION_NONE, "(a|abc)\\Z", "abc", 0, 3); + x2(ONIG_OPTION_MATCH_WHOLE_STRING, "a|abc", "abc", 0, 3); + x2(ONIG_OPTION_MATCH_WHOLE_STRING, "a|abc", "a", 0, 1); + x2(ONIG_OPTION_WORD_IS_ASCII, "\\w", "@g", 1, 2); n(ONIG_OPTION_WORD_IS_ASCII, "\\w", "あ"); x2(ONIG_OPTION_NONE, "\\d", "1", 0, 3); @@ -219,6 +224,5 @@ extern int main(int argc, char* argv[]) onig_region_free(region, 1); onig_end(); - return ((nfail == 0 && nerror == 0) ? 0 : -1); } diff --git a/test/test_syntax.c b/test/test_syntax.c index b501ccd..4dcecf8 100644 --- a/test/test_syntax.c +++ b/test/test_syntax.c @@ -1,6 +1,6 @@ /* * test_syntax.c - * Copyright (c) 2019-2021 K.Kosako + * Copyright (c) 2019-2024 K.Kosako */ #ifdef ONIG_ESCAPE_UCHAR_COLLISION #undef ONIG_ESCAPE_UCHAR_COLLISION @@ -65,7 +65,7 @@ static void xx(char* pattern, char* str, int from, int to, int mem, int not, r = onig_search(reg, (UChar* )str, (UChar* )(str + SLEN(str)), (UChar* )str, (UChar* )(str + SLEN(str)), region, ONIG_OPTION_NONE); - if (r < ONIG_MISMATCH) { + if (r < ONIG_MISMATCH || error_no < ONIG_MISMATCH) { char s[ONIG_MAX_ERROR_MESSAGE_LEN]; if (error_no == 0) { @@ -205,6 +205,16 @@ static int test_look_behind() x2("(?<=a|b)c", "abc", 2, 3); x2("(?<=a|(.))\\1", "abcc", 3, 4); + // #295 + n("(?<!RMA)X", "123RMAX"); + x2("(?<=RMA)X", "123RMAX", 6, 7); + n("(?<!RMA)$", "123RMA"); + x2("(?<=RMA)$", "123RMA", 6, 6); + n("(?<!RMA)\\Z", "123RMA"); + x2("(?<=RMA)\\Z", "123RMA", 6, 6); + n("(?<!RMA)\\z", "123RMA"); + x2("(?<=RMA)\\z", "123RMA", 6, 6); + // following is not match in Perl and Java //x2("(?<=a|(.))\\1", "aa", 1, 2); @@ -213,6 +223,20 @@ static int test_look_behind() return 0; } +static int test_char_class() +{ + x2("[\\w\\-%]", "a", 0, 1); + x2("[\\w\\-%]", "%", 0, 1); + x2("[\\w\\-%]", "-", 0, 1); + + //e("[\\w-%]", "-", ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS); + x2("[\\w-%]", "a", 0, 1); + x2("[\\w-%]", "%", 0, 1); + x2("[\\w-%]", "-", 0, 1); + + return 0; +} + static int test_python_option_ascii() { x2("(?a)\\w", "a", 0, 1); @@ -259,6 +283,30 @@ static int test_python_single_multi() return 0; } +static int test_BRE_anchors() +{ + x2("a\\^b", "a^b", 0, 3); + x2("a^b", "a^b", 0, 3); + x2("a\\$b", "a$b", 0, 3); + x2("a$b", "a$b", 0, 3); + + x2("^ab", "ab", 0, 2); + x2("(^ab)", "(^ab)", 0, 5); + x2("\\(^ab\\)", "ab", 0, 2); + x2("\\\\(^ab\\\\)", "\\(^ab\\)", 0, 7); + n("\\\\\\(^ab\\\\\\)", "\\ab\\"); + x2("^\\\\\\(ab\\\\\\)", "\\ab\\", 0, 4); + + x2("ab$", "ab", 0, 2); + x2("(ab$)", "(ab$)", 0, 5); + x2("\\(ab$\\)", "ab", 0, 2); + x2("\\\\(ab$\\\\)", "\\(ab$\\)", 0, 7); + n("\\\\\\(ab$\\\\\\)", "\\ab\\"); + x2("\\\\\\(ab\\\\\\)$", "\\ab\\", 0, 4); + + return 0; +} + extern int main(int argc, char* argv[]) { OnigEncoding use_encs[1]; @@ -277,6 +325,7 @@ extern int main(int argc, char* argv[]) test_isolated_option(); test_prec_read(); test_look_behind(); + test_char_class(); e("(?<=ab|(.))\\1", "abb", ONIGERR_INVALID_LOOK_BEHIND_PATTERN); // Variable length lookbehind not implemented in Perl 5.26.1 x3("()", "abc", 0, 0, 1); @@ -291,6 +340,10 @@ extern int main(int argc, char* argv[]) test_isolated_option(); test_prec_read(); test_look_behind(); + test_char_class(); + + n("[[:digit:]]", "1"); + x2("[[:digit:]]", "g", 0, 1); x2("(?<=ab|(.))\\1", "abb", 2, 3); n("(?<!ab|b)c", "bbc"); n("(?<!b|ab)c", "bbc"); @@ -301,6 +354,9 @@ extern int main(int argc, char* argv[]) test_python_option_ascii(); test_python_z(); test_python_single_multi(); + + n("[[:digit:]]", "1"); + x2("[[:digit:]]", "g]", 0, 2); x2("(?P<name>abc)", "abc", 0, 3); x2("(?P<name>abc)(?P=name)", "abcabc", 0, 6); x2("(?P<name>abc){0}(?P>name)", "abc", 0, 3); @@ -309,6 +365,46 @@ extern int main(int argc, char* argv[]) x2("\\U00000041", "A", 0, 1); e("\\U0041", "A", ONIGERR_INVALID_CODE_POINT_VALUE); + Syntax = ONIG_SYNTAX_POSIX_BASIC; + test_BRE_anchors(); + + Syntax = ONIG_SYNTAX_GREP; + test_BRE_anchors(); + x2("zz\\|^ab", "ab", 0, 2); + x2("ab$\\|zz", "ab", 0, 2); + x2("*", "*", 0, 1); + x2("^*", "*", 0, 1); + x2("abc\\|?", "?", 0, 1); + x2("\\{1\\}", "{1}", 0, 3); + x2("^\\{1\\}", "{1}", 0, 3); + x2("\\(\\{1\\}\\)", "{1}", 0, 3); + x2("^\\(\\{1\\}\\)", "{1}", 0, 3); + x2("{1}", "{1}", 0, 3); + x2("^{1}", "{1}", 0, 3); + x2("\\({1}\\)", "{1}", 0, 3); + x2("^\\({1}\\)", "{1}", 0, 3); + x2("{1,2}", "{1,2}", 0, 5); + x2("^{1,2}", "{1,2}", 0, 5); + x2("\\({1,2}\\)", "{1,2}", 0, 5); + x2("^\\({1,2}\\)", "{1,2}", 0, 5); + + Syntax = ONIG_SYNTAX_EMACS; + x2("\\(abc\\)", "abc", 0, 3); + x2("\\(?:abc\\)", "abc", 0, 3); + x3("\\(?:abc\\)\\(xyz\\)", "abcxyz", 3, 6, 1); + + Syntax = ONIG_SYNTAX_PERL_NG; + + x2("(?i)test", "test", 0, 4); + x2("(?-i)test", "test", 0, 4); + x2("(?i)test", "TEST", 0, 4); + n("(?-i)test", "teSt"); + x2("(?i)te(?-i)st", "TEst", 0, 4); + n("(?i)te(?-i)st", "TesT"); + + x2("(abc)(?-1)", "abcabc", 0, 6); + x2("(?+1)(abc)", "abcabc", 0, 6); + x2("(abc)(?1)", "abcabc", 0, 6); fprintf(stdout, "\nRESULT SUCC: %4d, FAIL: %d, ERROR: %d (by Oniguruma %s)\n", diff --git a/test/test_utf8.c b/test/test_utf8.c index 75392e8..01c0a5c 100644 --- a/test/test_utf8.c +++ b/test/test_utf8.c @@ -1,6 +1,6 @@ /* * test_utf8.c - * Copyright (c) 2019-2022 K.Kosako + * Copyright (c) 2019-2024 K.Kosako */ #ifdef ONIG_ESCAPE_UCHAR_COLLISION #undef ONIG_ESCAPE_UCHAR_COLLISION @@ -64,7 +64,7 @@ static void xx(char* pattern, char* str, int from, int to, int mem, int not, r = onig_search(reg, (UChar* )str, (UChar* )(str + SLEN(str)), (UChar* )str, (UChar* )(str + SLEN(str)), region, ONIG_OPTION_NONE); - if (r < ONIG_MISMATCH) { + if (r < ONIG_MISMATCH || error_no < ONIG_MISMATCH) { char s[ONIG_MAX_ERROR_MESSAGE_LEN]; if (error_no == 0) { @@ -226,6 +226,27 @@ extern int main(int argc, char* argv[]) x2("[*[:xdigit:]+]", "-@^+", 3, 4); n("[[:upper]]", "A"); x2("[[:upper]]", ":", 0, 1); + n("[[:upper:]]", "a"); + x2("[[:^upper:]]", "a", 0, 1); + n("[[:lower:]]", "A"); + x2("[[:^lower:]]", "A", 0, 1); + + // Issue #253 + e("[[:::]", ":[", ONIGERR_PREMATURE_END_OF_CHAR_CLASS); + e("[[:\\]:]", ":]", ONIGERR_PREMATURE_END_OF_CHAR_CLASS); + e("[[:\\[:]", ":[", ONIGERR_PREMATURE_END_OF_CHAR_CLASS); + e("[[:\\]]", ":]", ONIGERR_PREMATURE_END_OF_CHAR_CLASS); + e("[[:u:]]", "", ONIGERR_INVALID_POSIX_BRACKET_TYPE); + e("[[:upp:]]", "", ONIGERR_INVALID_POSIX_BRACKET_TYPE); + e("[[:uppers:]]", "", ONIGERR_INVALID_POSIX_BRACKET_TYPE); + x2("[[:upper\\] :]]", "]", 0, 1); + + x2("[[::]]", ":", 0, 1); + x2("[[:::]]", ":", 0, 1); + x2("[[:\\]:]]*", ":]", 0, 2); + x2("[[:\\[:]]*", ":[", 0, 2); + x2("[[:\\]]]*", ":]", 0, 2); + x2("[\\044-\\047]", "\046", 0, 1); x2("[\\x5a-\\x5c]", "\x5b", 0, 1); x2("[\\x6A-\\x6D]", "\x6c", 0, 1); @@ -731,7 +752,7 @@ extern int main(int argc, char* argv[]) n("\\A(a|b\\g<1>c)\\k<1+3>\\z", "bbaccb"); x2("(?i)\\A(a|b\\g<1>c)\\k<1+2>\\z", "bBACcbac", 0, 8); x2("(?i)(?<X>aa)|(?<X>bb)\\k<X>", "BBbb", 0, 4); - x2("(?:\\k'+1'B|(A)C)*", "ACAB", 0, 4); // relative backref by postitive number + x2("(?:\\k'+1'B|(A)C)*", "ACAB", 0, 4); // relative backref by positive number x2("\\g<+2>(abc)(ABC){0}", "ABCabc", 0, 6); // relative call by positive number x2("A\\g'0'|B()", "AAAAB", 0, 5); x3("(A\\g'0')|B", "AAAAB", 0, 5, 1); @@ -1460,6 +1481,15 @@ extern int main(int argc, char* argv[]) n("(\\k<2>)|(?<=(\\k<1>))", ""); x2("(a|\\k<2>)|(?<=(\\k<1>))", "a", 0, 1); x2("(a|\\k<2>)|(?<=b(\\k<1>))", "ba", 1, 2); + // #295 + n("(?<!RMA)X", "123RMAX"); + x2("(?<=RMA)X", "123RMAX", 6, 7); + n("(?<!RMA)$", "123RMA"); + x2("(?<=RMA)$", "123RMA", 6, 6); + n("(?<!RMA)\\Z", "123RMA"); + x2("(?<=RMA)\\Z", "123RMA", 6, 6); + n("(?<!RMA)\\z", "123RMA"); + x2("(?<=RMA)\\z", "123RMA", 6, 6); x2("((?(a)\\g<1>|b))", "aab", 0, 3); x2("((?(a)\\g<1>))", "aab", 0, 2); @@ -1618,17 +1648,86 @@ extern int main(int argc, char* argv[]) e("()(?Ii)", "", ONIGERR_INVALID_GROUP_OPTION); e("(?:)(?Ii)", "", ONIGERR_INVALID_GROUP_OPTION); e("^(?Ii)", "", ONIGERR_INVALID_GROUP_OPTION); - e("(?Ii)$", "", ONIGERR_INVALID_GROUP_OPTION); - e("(?Ii)|", "", ONIGERR_INVALID_GROUP_OPTION); + x2("(?Ii)$", "", 0, 0); + x2("(?Ii)|", "", 0, 0); e("(?Ii)|(?Ii)", "", ONIGERR_INVALID_GROUP_OPTION); x2("a*", "aabcaaa", 0, 2); x2("(?L)a*", "aabcaaa", 4, 7); + x2("(?L)a{4}|a{3}|b*", "baaaaabbb", 1, 5); + x2("(?L)a{3}|a{4}|b*", "baaaaabbb", 1, 5); e("x(?L)xxxxx", "", ONIGERR_INVALID_GROUP_OPTION); e("(?-L)x", "", ONIGERR_INVALID_GROUP_OPTION); x3("(..)\\1", "abab", 0, 2, 1); e("(?C)(..)\\1", "abab", ONIGERR_INVALID_BACKREF); e("(?-C)", "", ONIGERR_INVALID_GROUP_OPTION); e("(?C)(.)(.)(.)(?<name>.)\\1", "abcdd", ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED); + x2("(?L)z|a\\g<0>a", "aazaa", 0, 5); + x2("(?Li)z|a\\g<0>a", "aazAA", 0, 5); + x2("(?Li:z|a\\g<0>a)", "aazAA", 0, 5); + x2("(?L)z|a\\g<0>a", "aazaaaazaaaa", 3, 12); + + // Issue #264 + n("(?iI)s", "\xc5\xbf"); + n("(?iI)[s]", "\xc5\xbf"); // FAIL + n("(?iI:s)", "\xc5\xbf"); + n("(?iI:[s])", "\xc5\xbf"); // FAIL + x2("(?iI)(?:[[:word:]])", "\xc5\xbf", 0, 2); + n("(?iI)(?W:[[:word:]])", "\xc5\xbf"); // FAIL + n("(?iI)(?W:\\w)", "\xc5\xbf"); + n("(?iI)(?W:[\\w])", "\xc5\xbf"); // FAIL + n("(?iI)(?W:\\p{Word})", "\xc5\xbf"); + n("(?iI)(?W:[\\p{Word}])", "\xc5\xbf"); // FAIL + + x2("(?iW:[[:word:]])", "\xc5\xbf", 0, 2); + x2("(?iW:[\\p{Word}])", "\xc5\xbf", 0, 2); + x2("(?iW:[\\w])", "\xc5\xbf", 0, 2); + n("(?iW:\\p{Word})", "\xc5\xbf"); + n("(?iW:\\w)", "\xc5\xbf"); + x2("(?i)\\p{Word}", "\xc5\xbf", 0, 2); + x2("(?i)\\w", "\xc5\xbf", 0, 2); + + x2("(?iW:[[:^word:]])", "\xc5\xbf", 0, 2); + x2("(?iW:[\\P{Word}])", "\xc5\xbf", 0, 2); + x2("(?iW:[\\W])", "\xc5\xbf", 0, 2); + x2("(?iW:\\P{Word})", "\xc5\xbf", 0, 2); + x2("(?iW:\\W)", "\xc5\xbf", 0, 2); + n("(?i)\\P{Word}", "\xc5\xbf"); + n("(?i)\\W", "\xc5\xbf"); + + x2("(?iW:[[:^word:]])", "s", 0, 1); + x2("(?iW:[\\P{Word}])", "s", 0, 1); + x2("(?iW:[\\W])", "s", 0, 1); + n("(?iW:\\P{Word})", "s"); + n("(?iW:\\W)", "s"); + n("(?i)\\P{Word}", "s"); + n("(?i)\\W", "s"); + + x2("[[:punct:]]", ":", 0, 1); + x2("[[:punct:]]", "$", 0, 1); + x2("[[:punct:]]+", "$+<=>^`|~", 0, 9); + n("[[:punct:]]", "a"); + n("[[:punct:]]", "7"); + x2("\\p{PosixPunct}+", "$¦", 0, 3); + + x2("\\A.*\\R", "\n", 0, 1); + x2("\\A\\O*\\R", "\n", 0, 1); + x2("\\A\\n*\\R", "\n", 0, 1); + x2("\\A\\R*\\R", "\n", 0, 1); + x2("\\At*\\R", "\n", 0, 1); + + x2("\\A.{0,99}\\R", "\n", 0, 1); + x2("\\A\\O{0,99}\\R", "\n", 0, 1); + x2("\\A\\n{0,99}\\R", "\n", 0, 1); + x2("\\A\\R{0,99}\\R", "\n", 0, 1); + x2("\\At{0,99}\\R", "\n", 0, 1); + + x2("\\A.*\\n", "\n", 0, 1); // \n + x2("\\A.{0,99}\\n", "\n", 0, 1); + x2("\\A.*\\O", "\n", 0, 1); // \O + x2("\\A.{0,99}\\O", "\n", 0, 1); + x2("\\A.*\\s", "\n", 0, 1); // \s + x2("\\A.{0,99}\\s", "\n", 0, 1); + n("a(b|)+d", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcd"); /* https://www.haijin-boys.com/discussions/5079 */ n(" \xfd", ""); /* https://bugs.php.net/bug.php?id=77370 */ @@ -1663,6 +1762,7 @@ extern int main(int argc, char* argv[]) e("(?m:*)", "abc", ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED); x2("(?:)*", "abc", 0, 0); e("^*", "abc", ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID); + e("abc|?", "", ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED); fprintf(stdout, "\nRESULT SUCC: %4d, FAIL: %d, ERROR: %d (by Oniguruma %s)\n", diff --git a/test/testc.c b/test/testc.c index 5f7c4f0..6c4125c 100644 --- a/test/testc.c +++ b/test/testc.c @@ -520,7 +520,7 @@ extern int main(int argc, char* argv[]) n("[0-9-a]", ":"); // PR#44 x3("(\\(((?:[^(]|\\g<1>)*)\\))", "(abc)(abc)", 1, 4, 2); // PR#43 x2("\\o{101}", "A", 0, 1); - x2("(?:\\k'+1'B|(A)C)*", "ACAB", 0, 4); // relative backref by postitive number + x2("(?:\\k'+1'B|(A)C)*", "ACAB", 0, 4); // relative backref by positive number x2("\\g<+2>(abc)(ABC){0}", "ABCabc", 0, 6); // relative call by positive number x2("A\\g'0'|B()", "AAAAB", 0, 5); x3("(A\\g'0')|B", "AAAAB", 0, 5, 1); diff --git a/test/testp.c b/test/testp.c index 3158925..de577a2 100644 --- a/test/testp.c +++ b/test/testp.c @@ -503,7 +503,7 @@ extern int main(int argc, char* argv[]) n("[0-9-a]", ":"); // PR#44 x3("(\\(((?:[^(]|\\g<1>)*)\\))", "(abc)(abc)", 1, 4, 2); // PR#43 x2("\\o{101}", "A", 0, 1); - x2("(?:\\k'+1'B|(A)C)*", "ACAB", 0, 4); // relative backref by postitive number + x2("(?:\\k'+1'B|(A)C)*", "ACAB", 0, 4); // relative backref by positive number x2("\\g<+2>(abc)(ABC){0}", "ABCabc", 0, 6); // relative call by positive number x2("A\\g'0'|B()", "AAAAB", 0, 5); x3("(A\\g'0')|B", "AAAAB", 0, 5, 1); diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..ed59211 --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_executable(testc_windows testc.c) +target_link_libraries(testc_windows onig) +if(NOT MSVC) + target_compile_options(testc_windows + PRIVATE -finput-charset=cp932 -fexec-charset=cp932 + ) +endif(NOT MSVC) |