texlive[73427] Build/source/libs: harfbuzz 10.2.0
commits+kakuto at tug.org
commits+kakuto at tug.org
Sun Jan 12 00:22:13 CET 2025
Revision: 73427
https://tug.org/svn/texlive?view=revision&revision=73427
Author: kakuto
Date: 2025-01-12 00:22:13 +0100 (Sun, 12 Jan 2025)
Log Message:
-----------
harfbuzz 10.2.0
Modified Paths:
--------------
trunk/Build/source/libs/README
trunk/Build/source/libs/harfbuzz/ChangeLog
trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
trunk/Build/source/libs/harfbuzz/configure
trunk/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt
trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
trunk/Build/source/libs/harfbuzz/harfbuzz-src/meson.build
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/OT/Color/COLR/COLR.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-def.py
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-indic-table.py
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/harfbuzz-config.cmake.in
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/harfbuzz-subset.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-cairo.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext-font.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-face.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft-colr.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-null.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cmap-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-os2-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-machine.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-machine.rl
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-table.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.rl
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-use-machine.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-use-machine.rl
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-common.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-gvar-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-paint.h
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-sanitize.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.h
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-input.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.h
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-utf.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/meson.build
trunk/Build/source/libs/harfbuzz/include/Makefile.am
trunk/Build/source/libs/harfbuzz/include/Makefile.in
trunk/Build/source/libs/harfbuzz/version.ac
Added Paths:
-----------
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-serialize.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-serialize.h
Removed Paths:
-------------
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-repacker.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-repacker.h
Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/README 2025-01-11 23:22:13 UTC (rev 73427)
@@ -28,7 +28,7 @@
https://sourceforge.net/projects/silgraphite/files/graphite2/
(requires C++11)
-harfbuzz 10.1.0 - checked 06nov24
+harfbuzz 10.2.0 - checked 12jan25
https://github.com/harfbuzz/harfbuzz/releases/latest
icu 76.1 - checked 27oct24 (requires C++17, e.g., g++13)
Modified: trunk/Build/source/libs/harfbuzz/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/ChangeLog 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/ChangeLog 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1,3 +1,8 @@
+2025-01-12 Akira Kakuto <kakuto at jcom.zaq.ne.jp>
+
+ Import harfbuzz-10.2.0.
+ * version.ac, include/Makefile.am: Adjusted.
+
2024-11-06 Akira Kakuto <kakuto at jcom.zaq.ne.jp>
Import harfbuzz-10.1.0.
Modified: trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1,3 +1,8 @@
+2025-01-12 Akira Kakuto <kakuto at jcom.zaq.ne.jp>
+
+ Imported harfbuzz-10.2.0 source tree from:
+ https://github.com/harfbuzz/harfbuzz/releases/download/10.2.0/
+
2024-11-06 Akira Kakuto <kakuto at jcom.zaq.ne.jp>
Imported harfbuzz-10.1.0 source tree from:
Modified: trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1,5 +1,5 @@
-Changes applied to the harfbuzz-10.1.0/ tree as obtained from:
- https://github.com/harfbuzz/harfbuzz/releases/download/10.1.0/
+Changes applied to the harfbuzz-10.2.0/ tree as obtained from:
+ https://github.com/harfbuzz/harfbuzz/releases/download/10.2.0/
Removed:
.clang-format
Modified: trunk/Build/source/libs/harfbuzz/configure
===================================================================
--- trunk/Build/source/libs/harfbuzz/configure 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/configure 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for harfbuzz (TeX Live) 10.1.0.
+# Generated by GNU Autoconf 2.72 for harfbuzz (TeX Live) 10.2.0.
#
# Report bugs to <tex-k at tug.org>.
#
@@ -604,8 +604,8 @@
# Identity of this package.
PACKAGE_NAME='harfbuzz (TeX Live)'
PACKAGE_TARNAME='harfbuzz--tex-live-'
-PACKAGE_VERSION='10.1.0'
-PACKAGE_STRING='harfbuzz (TeX Live) 10.1.0'
+PACKAGE_VERSION='10.2.0'
+PACKAGE_STRING='harfbuzz (TeX Live) 10.2.0'
PACKAGE_BUGREPORT='tex-k at tug.org'
PACKAGE_URL=''
@@ -1341,7 +1341,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-'configure' configures harfbuzz (TeX Live) 10.1.0 to adapt to many kinds of systems.
+'configure' configures harfbuzz (TeX Live) 10.2.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1413,7 +1413,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of harfbuzz (TeX Live) 10.1.0:";;
+ short | recursive ) echo "Configuration of harfbuzz (TeX Live) 10.2.0:";;
esac
cat <<\_ACEOF
@@ -1518,7 +1518,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-harfbuzz (TeX Live) configure 10.1.0
+harfbuzz (TeX Live) configure 10.2.0
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2075,7 +2075,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by harfbuzz (TeX Live) $as_me 10.1.0, which was
+It was created by harfbuzz (TeX Live) $as_me 10.2.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
@@ -5252,7 +5252,7 @@
# Define the identity of the package.
PACKAGE='harfbuzz--tex-live-'
- VERSION='10.1.0'
+ VERSION='10.2.0'
# Some tools Automake needs.
@@ -5441,9 +5441,9 @@
HB_VERSION_MAJOR=10
-HB_VERSION_MINOR=1
+HB_VERSION_MINOR=2
HB_VERSION_MICRO=0
-HB_VERSION=10.1.0
+HB_VERSION=10.2.0
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -9292,7 +9292,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by harfbuzz (TeX Live) $as_me 10.1.0, which was
+This file was extended by harfbuzz (TeX Live) $as_me 10.2.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -9360,7 +9360,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-harfbuzz (TeX Live) config.status 10.1.0
+harfbuzz (TeX Live) config.status 10.2.0
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
project(harfbuzz)
message(WARN "HarfBuzz has a Meson port and tries to migrate all the other build systems to it, please consider using it as we might remove our cmake port soon.")
@@ -6,20 +6,6 @@
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
-## Limit framework build to Xcode generator
-if (BUILD_FRAMEWORK)
- # for a framework build on macOS, use:
- # cmake -DBUILD_FRAMEWORK=ON -Bbuild -H. -GXcode && cmake --build build
- if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode")
- message(FATAL_ERROR
- "You should use Xcode generator with BUILD_FRAMEWORK enabled")
- endif ()
- set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)")
- set (CMAKE_MACOSX_RPATH ON)
- set (BUILD_SHARED_LIBS ON)
-endif ()
-
-
## Disallow in-source builds, as CMake generated make files can collide with autotools ones
if (NOT MSVC AND "${PROJECT_BINARY_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}")
message(FATAL_ERROR
@@ -73,6 +59,14 @@
set (HB_HAVE_GLIB ON)
endif ()
+if (APPLE)
+ option(BUILD_FRAMEWORK "Build as Apple Frameworks" OFF)
+endif ()
+if (BUILD_FRAMEWORK)
+ set (CMAKE_MACOSX_RPATH ON)
+ set (BUILD_SHARED_LIBS OFF)
+endif ()
+
include_directories(AFTER
${PROJECT_SOURCE_DIR}/src
${PROJECT_BINARY_DIR}/src
@@ -168,7 +162,7 @@
${PROJECT_SOURCE_DIR}/src/hb-subset-plan.cc
${PROJECT_SOURCE_DIR}/src/hb-subset-plan.hh
${PROJECT_SOURCE_DIR}/src/hb-subset-plan-member-list.hh
- ${PROJECT_SOURCE_DIR}/src/hb-subset-repacker.cc
+ ${PROJECT_SOURCE_DIR}/src/hb-subset-serialize.cc
${PROJECT_SOURCE_DIR}/src/hb-subset.cc
${PROJECT_SOURCE_DIR}/src/hb-subset.hh
${PROJECT_SOURCE_DIR}/src/hb-repacker.hh
@@ -219,7 +213,7 @@
)
set (subset_project_headers
${PROJECT_SOURCE_DIR}/src/hb-subset.h
- ${PROJECT_SOURCE_DIR}/src/hb-subset-repacker.h
+ ${PROJECT_SOURCE_DIR}/src/hb-subset-serialize.h
)
## Find and include needed header folders and libraries
@@ -506,6 +500,21 @@
if (BUILD_SHARED_LIBS)
set_target_properties(harfbuzz harfbuzz-icu PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
+
+ if (BUILD_FRAMEWORK)
+ set_target_properties(harfbuzz harfbuzz-icu PROPERTIES
+ FRAMEWORK TRUE
+ FRAMEWORK_VERSION "${HB_VERSION}"
+ PUBLIC_HEADER "${project_headers}"
+ PRODUCT_BUNDLE_IDENTIFIER "harfbuzz.harfbuzz-icu"
+ XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+ OUTPUT_NAME "harfbuzz-icu"
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
+ MACOSX_FRAMEWORK_IDENTIFIER "harfbuzz-icu"
+ MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${HB_VERSION}"
+ MACOSX_FRAMEWORK_BUNDLE_VERSION "${HB_VERSION}"
+ )
+ endif ()
endif ()
endif ()
@@ -513,12 +522,27 @@
## Define harfbuzz-subset library
if (HB_BUILD_SUBSET)
add_library(harfbuzz-subset ${subset_project_sources} ${subset_project_headers})
- list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-subset.h ${PROJECT_SOURCE_DIR}/src/hb-subset-repacker.h)
+ list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-subset.h ${PROJECT_SOURCE_DIR}/src/hb-subset-serialize.h)
add_dependencies(harfbuzz-subset harfbuzz)
target_link_libraries(harfbuzz-subset harfbuzz ${THIRD_PARTY_LIBS})
if (BUILD_SHARED_LIBS)
set_target_properties(harfbuzz harfbuzz-subset PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
+
+ if (BUILD_FRAMEWORK)
+ set_target_properties(harfbuzz harfbuzz-subset PROPERTIES
+ FRAMEWORK TRUE
+ FRAMEWORK_VERSION "${HB_VERSION}"
+ PUBLIC_HEADER "${project_headers}"
+ PRODUCT_BUNDLE_IDENTIFIER "harfbuzz.harfbuzz-subset"
+ XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+ OUTPUT_NAME "harfbuzz-subset"
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
+ MACOSX_FRAMEWORK_IDENTIFIER "harfbuzz-subset"
+ MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${HB_VERSION}"
+ MACOSX_FRAMEWORK_BUNDLE_VERSION "${HB_VERSION}"
+ )
+ endif ()
endif ()
endif ()
@@ -568,7 +592,22 @@
target_link_libraries(harfbuzz-gobject harfbuzz ${GOBJECT_LIBRARIES} ${THIRD_PARTY_LIBS})
if (BUILD_SHARED_LIBS)
- set_target_properties(harfbuzz-gobject PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
+ set_target_properties(harfbuzz harfbuzz-gobject PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
+
+ if (BUILD_FRAMEWORK)
+ set_target_properties(harfbuzz-gobject PROPERTIES
+ FRAMEWORK TRUE
+ FRAMEWORK_VERSION "${HB_VERSION}"
+ PUBLIC_HEADER "${project_headers}"
+ PRODUCT_BUNDLE_IDENTIFIER "harfbuzz.harfbuzz-gobject"
+ XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+ OUTPUT_NAME "harfbuzz-gobject"
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
+ MACOSX_FRAMEWORK_IDENTIFIER "harfbuzz-gobject"
+ MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${HB_VERSION}"
+ MACOSX_FRAMEWORK_BUNDLE_VERSION "${HB_VERSION}"
+ )
+ endif ()
endif ()
endif ()
@@ -581,6 +620,21 @@
if (BUILD_SHARED_LIBS)
set_target_properties(harfbuzz-cairo PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
+
+ if (BUILD_FRAMEWORK)
+ set_target_properties(harfbuzz-cairo PROPERTIES
+ FRAMEWORK TRUE
+ FRAMEWORK_VERSION "${HB_VERSION}"
+ PUBLIC_HEADER "${project_headers}"
+ PRODUCT_BUNDLE_IDENTIFIER "harfbuzz.harbuzz-cairo"
+ XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+ OUTPUT_NAME "harfbuzz-cairo"
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
+ MACOSX_FRAMEWORK_IDENTIFIER "harfbuzz-cairo"
+ MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${HB_VERSION}"
+ MACOSX_FRAMEWORK_BUNDLE_VERSION "${HB_VERSION}"
+ )
+ endif ()
endif ()
endif()
@@ -719,8 +773,12 @@
set (CMAKE_MACOSX_RPATH ON)
set_target_properties(harfbuzz PROPERTIES
FRAMEWORK TRUE
+ FRAMEWORK_VERSION "${HB_VERSION}"
PUBLIC_HEADER "${project_headers}"
+ PRODUCT_BUNDLE_IDENTIFIER "harfbuzz"
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+ OUTPUT_NAME "harfbuzz"
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
)
set (MACOSX_FRAMEWORK_IDENTIFIER "harfbuzz")
set (MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${HB_VERSION}")
@@ -881,7 +939,8 @@
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- FRAMEWORK DESTINATION Library/Frameworks
+ FRAMEWORK DESTINATION Library/Frameworks
+ COMPONENT runtime OPTIONAL
)
make_pkgconfig_pc_file("harfbuzz")
install(EXPORT harfbuzzConfig
@@ -893,7 +952,8 @@
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- FRAMEWORK DESTINATION Library/Frameworks
+ FRAMEWORK DESTINATION Library/Frameworks
+ COMPONENT runtime OPTIONAL
)
make_pkgconfig_pc_file("harfbuzz-icu")
endif ()
@@ -902,13 +962,19 @@
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- FRAMEWORK DESTINATION Library/Frameworks
+ FRAMEWORK DESTINATION Library/Frameworks
+ COMPONENT runtime OPTIONAL
)
make_pkgconfig_pc_file("harfbuzz-cairo")
endif ()
if (HB_BUILD_SUBSET)
install(TARGETS harfbuzz-subset
+ EXPORT harfbuzz-subset
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ FRAMEWORK DESTINATION Library/Frameworks
+ COMPONENT runtime OPTIONAL
)
make_pkgconfig_pc_file("harfbuzz-subset")
endif ()
@@ -943,9 +1009,12 @@
endif ()
if (HB_HAVE_GOBJECT)
install(TARGETS harfbuzz-gobject
+ EXPORT harfbuzz-gobject
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ COMPONENT runtime OPTIONAL
)
make_pkgconfig_pc_file("harfbuzz-gobject")
if (HB_HAVE_INTROSPECTION)
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1,3 +1,32 @@
+Overview of changes leading to 10.2.0
+Saturday, January 11, 2025
+====================================
+- Consider Unicode Variation Selectors when subsetting “cmap” table.
+- Guard hb_cairo_glyphs_from_buffer() against malformed UTF-8 strings.
+- Fix incorrect “COLR” v1 glyph scaling in hb-cairo.
+- Use locale-independent parsing of double numbers is “hb-subset” command line
+ tool.
+- Fix incorrect zeroing of advance width of base glyphs in various “Courier New”
+ font versions due to incorrect “GDEF” glyph classes.
+- Fix handling of long language codes with “HB_LEAN” configuration.
+- Update OpenType language system registry.
+- Allow all Myanmar tone marks (including visarga) in any order
+- Don’t insert U+25CC DOTTED CIRCLE before superscript/subscript digits
+- Handle Garay script as right to left script.
+- New API for serializing font tables and potentially repacking them in optimal
+ way. This was a previously experimental-only API.
+- New API for converting font variation setting from and to strings.
+- Various build fixes
+- Various subsetter and instancer fixes.
+
+- New API:
++hb_subset_serialize_link_t
++hb_subset_serialize_object_t
++hb_subset_serialize_or_fail()
++hb_subset_axis_range_from_string()
++hb_subset_axis_range_to_string()
+
+
Overview of changes leading to 10.1.0
Tuesday, November 5, 2024
====================================
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/meson.build
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/meson.build 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/meson.build 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1,6 +1,6 @@
project('harfbuzz', 'c', 'cpp',
meson_version: '>= 0.55.0',
- version: '10.1.0',
+ version: '10.2.0',
default_options: [
'cpp_eh=none', # Just to support msvc, we are passing -fno-exceptions also anyway
# 'cpp_rtti=false', # Do NOT enable, wraps inherit it and ICU needs RTTI
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/OT/Color/COLR/COLR.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/OT/Color/COLR/COLR.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/OT/Color/COLR/COLR.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1003,7 +1003,7 @@
void paint_glyph (hb_paint_context_t *c) const
{
TRACE_PAINT (this);
- (this+transform).paint_glyph (c);
+ (this+transform).paint_glyph (c); // This does a push_transform()
c->recurse (this+src);
c->funcs->pop_transform (c->data);
}
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-def.py
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-def.py 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-def.py 2025-01-11 23:22:13 UTC (rev 73427)
@@ -20,7 +20,6 @@
# Move these to harfbuzz-sections.txt when got stable
experimental_symbols = \
"""hb_shape_justify
-hb_subset_repack_or_fail
hb_subset_input_override_name_table
""".splitlines ()
symbols = [x for x in symbols if x not in experimental_symbols]
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-indic-table.py
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-indic-table.py 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-indic-table.py 2025-01-11 23:22:13 UTC (rev 73427)
@@ -102,6 +102,7 @@
'CM',
'Symbol',
'CS',
+ 'SMPst',
],
'khmer' : [
'VAbv',
@@ -435,6 +436,8 @@
indic_data = {}
for k, (cat, pos, block) in combined.items():
cat = category_map[cat]
+ if cat == 'SM' and pos == 'Not_Applicable':
+ cat = 'SMPst'
pos = position_map[pos]
indic_data[k] = (cat, pos, block)
@@ -454,7 +457,7 @@
# Keep in sync with CONSONANT_FLAGS in the shaper
consonant_categories = ('C', 'CS', 'Ra','CM', 'V', 'PLACEHOLDER', 'DOTTEDCIRCLE')
matra_categories = ('M', 'MPst')
-smvd_categories = ('SM', 'VD', 'A', 'Symbol')
+smvd_categories = ('SM', 'SMPst', 'VD', 'A', 'Symbol')
for k, (cat, pos, block) in indic_data.items():
if cat in consonant_categories:
pos = 'BASE_C'
@@ -530,6 +533,7 @@
"Repha": 'Rf',
"PLACEHOLDER": 'GB',
"DOTTEDCIRCLE": 'DC',
+ "SMPst": 'SP',
"VPst": 'VR',
"VPre": 'VL',
"Robatic": 'Rt',
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/harfbuzz-config.cmake.in
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/harfbuzz-config.cmake.in 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/harfbuzz-config.cmake.in 2025-01-11 23:22:13 UTC (rev 73427)
@@ -2,6 +2,8 @@
set_and_check(HARFBUZZ_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
+set(HARFBUZZ_VERSION "@HARFBUZZ_VERSION@")
+
# Add the libraries.
add_library(harfbuzz::harfbuzz @HB_LIBRARY_TYPE@ IMPORTED)
set_target_properties(harfbuzz::harfbuzz PROPERTIES
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/harfbuzz-subset.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/harfbuzz-subset.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/harfbuzz-subset.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -58,7 +58,7 @@
#include "hb-subset-instancer-iup.cc"
#include "hb-subset-instancer-solver.cc"
#include "hb-subset-plan.cc"
-#include "hb-subset-repacker.cc"
+#include "hb-subset-serialize.cc"
#include "hb-subset.cc"
#include "hb-ucd.cc"
#include "hb-unicode.cc"
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-cairo.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-cairo.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-cairo.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -180,7 +180,7 @@
hb_position_t x_scale, y_scale;
hb_font_get_scale (font, &x_scale, &y_scale);
- cairo_scale (cr, x_scale, y_scale);
+ cairo_scale (cr, x_scale, -y_scale);
cairo_glyph_t cairo_glyph = { glyph, 0, 0 };
cairo_set_scaled_font (cr, c->scaled_font);
@@ -597,7 +597,9 @@
hb_position_t x_scale, y_scale;
hb_font_get_scale (font, &x_scale, &y_scale);
- cairo_scale (cr, +1./x_scale, -1./y_scale);
+ cairo_scale (cr,
+ +1. / (x_scale ? x_scale : 1),
+ -1. / (y_scale ? y_scale : 1));
hb_font_draw_glyph (font, glyph, hb_cairo_draw_get_funcs (), cr);
@@ -628,7 +630,9 @@
hb_color_t color = HB_COLOR (0, 0, 0, 255);
hb_position_t x_scale, y_scale;
hb_font_get_scale (font, &x_scale, &y_scale);
- cairo_scale (cr, +1./x_scale, -1./y_scale);
+ cairo_scale (cr,
+ +1. / (x_scale ? x_scale : 1),
+ -1. / (y_scale ? y_scale : 1));
hb_cairo_context_t c;
c.scaled_font = scaled_font;
@@ -1000,6 +1004,7 @@
end = start + hb_glyph[i].cluster - hb_glyph[i+1].cluster;
else
end = (const char *) hb_utf_offset_to_pointer<hb_utf8_t> ((const uint8_t *) start,
+ (const uint8_t *) utf8, utf8_len,
(signed) (hb_glyph[i].cluster - hb_glyph[i+1].cluster));
(*clusters)[cluster].num_bytes = end - start;
start = end;
@@ -1020,6 +1025,7 @@
end = start + hb_glyph[i].cluster - hb_glyph[i-1].cluster;
else
end = (const char *) hb_utf_offset_to_pointer<hb_utf8_t> ((const uint8_t *) start,
+ (const uint8_t *) utf8, utf8_len,
(signed) (hb_glyph[i].cluster - hb_glyph[i-1].cluster));
(*clusters)[cluster].num_bytes = end - start;
start = end;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -625,6 +625,9 @@
/* Unicode-14.0 additions */
case HB_SCRIPT_OLD_UYGHUR:
+ /* Unicode-16.0 additions */
+ case HB_SCRIPT_GARAY:
+
return HB_DIRECTION_RTL;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -68,8 +68,6 @@
#define HB_NO_FACE_COLLECT_UNICODES
#define HB_NO_GETENV
#define HB_NO_HINTING
-#define HB_NO_LANGUAGE_LONG
-#define HB_NO_LANGUAGE_PRIVATE_SUBTAG
#define HB_NO_LAYOUT_FEATURE_PARAMS
#define HB_NO_LAYOUT_COLLECT_GLYPHS
#define HB_NO_LAYOUT_RARELY_USED
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext-font.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext-font.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext-font.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -34,8 +34,12 @@
#include "hb-font.hh"
#include "hb-machinery.hh"
-#if MAC_OS_X_VERSION_MIN_REQUIRED < 101100
+#if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1080) \
+ || (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 60000) \
+ || (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 90000)
# define kCTFontOrientationDefault kCTFontDefaultOrientation
+# define kCTFontOrientationHorizontal kCTFontHorizontalOrientation
+# define kCTFontOrientationVertical kCTFontVerticalOrientation
#endif
#define MAX_GLYPHS 64u
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-face.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-face.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-face.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -470,7 +470,8 @@
* @tag: The #hb_tag_t of the table to query
*
* Fetches a reference to the specified table within
- * the specified face.
+ * the specified face. Returns an empty blob if referencing table data is not
+ * possible.
*
* Return value: (transfer full): A pointer to the @tag table within @face
*
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft-colr.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft-colr.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft-colr.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -547,7 +547,9 @@
c.funcs->push_root_transform (c.data, font);
if (is_bounded)
+ {
c.recurse (paint);
+ }
c.funcs->pop_transform (c.data);
c.funcs->pop_clip (c.data);
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -931,11 +931,15 @@
hb_lock_t lock (ft_font->lock);
FT_Face ft_face = ft_font->ft_face;
+ FT_Long load_flags = ft_font->load_flags | FT_LOAD_NO_BITMAP | FT_LOAD_COLOR;
+#if (FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH) >= 21301
+ load_flags |= FT_LOAD_NO_SVG;
+#endif
+
/* We release the lock before calling into glyph callbacks, such that
* eg. draw API can call back into the face.*/
- if (unlikely (FT_Load_Glyph (ft_face, gid,
- ft_font->load_flags | FT_LOAD_COLOR)))
+ if (unlikely (FT_Load_Glyph (ft_face, gid, load_flags)))
return;
if (ft_face->glyph->format == FT_GLYPH_FORMAT_OUTLINE)
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-null.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-null.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-null.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -176,7 +176,7 @@
static inline Type& Crap () {
static_assert (hb_null_size (Type) <= HB_NULL_POOL_SIZE, "Increase HB_NULL_POOL_SIZE.");
Type *obj = reinterpret_cast<Type *> (_hb_CrapPool);
- memcpy (obj, std::addressof (Null (Type)), sizeof (*obj));
+ memcpy (reinterpret_cast<void*>(obj), std::addressof (Null (Type)), sizeof (*obj));
return *obj;
}
template <typename QType>
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cmap-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cmap-table.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cmap-table.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1397,6 +1397,9 @@
hb_vector_t<hb_pair_t<unsigned, unsigned>> obj_indices;
for (int i = src_tbl->record.len - 1; i >= 0; i--)
{
+ if (!unicodes->has(src_tbl->record[i].varSelector))
+ continue;
+
hb_pair_t<unsigned, unsigned> result = src_tbl->record[i].copy (c, unicodes, glyphs_requested, glyph_map, base);
if (result.first || result.second)
obj_indices.push (result);
@@ -1453,6 +1456,7 @@
{
+ hb_iter (record)
| hb_filter (hb_bool, &VariationSelectorRecord::nonDefaultUVS)
+ | hb_filter (unicodes, &VariationSelectorRecord::varSelector)
| hb_map (&VariationSelectorRecord::nonDefaultUVS)
| hb_map (hb_add (this))
| hb_apply ([=] (const NonDefaultUVS& _) { _.closure_glyphs (unicodes, glyphset); })
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1462,6 +1462,7 @@
unsigned int this_comp = _hb_glyph_info_get_lig_comp (&buffer->cur());
if (this_comp == 0)
this_comp = last_num_components;
+ assert (components_so_far >= last_num_components);
unsigned int new_lig_comp = components_so_far - last_num_components +
hb_min (this_comp, last_num_components);
_hb_glyph_info_set_lig_props_for_mark (&buffer->cur(), lig_id, new_lig_comp);
@@ -1487,6 +1488,7 @@
unsigned this_comp = _hb_glyph_info_get_lig_comp (&buffer->info[i]);
if (!this_comp) break;
+ assert (components_so_far >= last_num_components);
unsigned new_lig_comp = components_so_far - last_num_components +
hb_min (this_comp, last_num_components);
_hb_glyph_info_set_lig_props_for_mark (&buffer->info[i], lig_id, new_lig_comp);
@@ -1542,6 +1544,7 @@
TRACE_APPLY (nullptr);
hb_ot_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_context;
+ assert (start_index >= 1);
skippy_iter.reset (start_index - 1);
skippy_iter.set_match_func (match_func, match_data);
skippy_iter.set_glyph_data (lookahead);
@@ -1852,6 +1855,7 @@
if (match_positions != match_positions_input)
hb_free (match_positions);
+ assert (end >= 0);
(void) buffer->move_to (end);
}
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -246,6 +246,18 @@
/* sha1sum: c26e41d567ed821bed997e937bc0c41435689e85 Padauk.ttf
* "Padauk Regular" "Version 2.5", see https://crbug.com/681813 */
case HB_CODEPOINT_ENCODE3 (1004, 59092, 14836):
+ /* 88d2006ca084f04af2df1954ed714a8c71e8400f Courier New.ttf from macOS 15 */
+ case HB_CODEPOINT_ENCODE3 (588, 5078, 14418):
+ /* 608e3ebb6dd1aee521cff08eb07d500a2c59df68 Courier New Bold.ttf from macOS 15 */
+ case HB_CODEPOINT_ENCODE3 (588, 5078, 14238):
+ /* d13221044ff054efd78f1cd8631b853c3ce85676 cour.ttf from Windows 10 */
+ case HB_CODEPOINT_ENCODE3 (894, 17162, 33960):
+ /* 68ed4a22d8067fcf1622ac6f6e2f4d3a2e3ec394 courbd.ttf from Windows 10 */
+ case HB_CODEPOINT_ENCODE3 (894, 17154, 34472):
+ /* 4cdb0259c96b7fd7c103821bb8f08f7cc6b211d7 cour.ttf from Windows 8.1 */
+ case HB_CODEPOINT_ENCODE3 (816, 7868, 17052):
+ /* 920483d8a8ed37f7f0afdabbe7f679aece7c75d8 courbd.ttf from Windows 8.1 */
+ case HB_CODEPOINT_ENCODE3 (816, 7868, 17138):
return true;
}
return false;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-os2-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-os2-table.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-os2-table.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -284,8 +284,8 @@
os2_prime->usWidthClass = width_class;
}
- os2_prime->usFirstCharIndex = hb_min (0xFFFFu, c->plan->unicodes.get_min ());
- os2_prime->usLastCharIndex = hb_min (0xFFFFu, c->plan->unicodes.get_max ());
+ os2_prime->usFirstCharIndex = hb_min (0xFFFFu, c->plan->os2_info.min_cmap_codepoint);
+ os2_prime->usLastCharIndex = hb_min (0xFFFFu, c->plan->os2_info.max_cmap_codepoint);
if (c->plan->flags & HB_SUBSET_FLAGS_NO_PRUNE_UNICODE_RANGES)
return_trace (true);
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-machine.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-machine.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-machine.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -68,6 +68,7 @@
#define indic_syllable_machine_ex_Ra 15u
#define indic_syllable_machine_ex_Repha 14u
#define indic_syllable_machine_ex_SM 8u
+#define indic_syllable_machine_ex_SMPst 57u
#define indic_syllable_machine_ex_Symbol 17u
#define indic_syllable_machine_ex_V 2u
#define indic_syllable_machine_ex_VD 9u
@@ -76,251 +77,916 @@
#define indic_syllable_machine_ex_ZWNJ 5u
-#line 80 "hb-ot-shaper-indic-machine.hh"
+#line 81 "hb-ot-shaper-indic-machine.hh"
static const unsigned char _indic_syllable_machine_trans_keys[] = {
- 8u, 8u, 4u, 13u, 5u, 13u, 5u, 13u, 13u, 13u, 4u, 13u, 4u, 13u, 4u, 13u,
- 8u, 8u, 5u, 13u, 5u, 13u, 13u, 13u, 4u, 13u, 4u, 13u, 4u, 13u, 4u, 13u,
- 8u, 8u, 5u, 13u, 5u, 13u, 13u, 13u, 4u, 13u, 4u, 13u, 4u, 13u, 8u, 8u,
- 5u, 13u, 5u, 13u, 13u, 13u, 4u, 13u, 4u, 13u, 5u, 13u, 8u, 8u, 1u, 18u,
- 3u, 16u, 3u, 16u, 4u, 16u, 1u, 15u, 5u, 9u, 5u, 9u, 9u, 9u, 5u, 9u,
- 1u, 15u, 1u, 15u, 1u, 15u, 3u, 13u, 4u, 13u, 5u, 13u, 5u, 13u, 4u, 13u,
- 5u, 9u, 3u, 9u, 5u, 9u, 3u, 16u, 3u, 16u, 3u, 16u, 3u, 16u, 4u, 16u,
- 1u, 15u, 3u, 16u, 3u, 16u, 4u, 16u, 1u, 15u, 5u, 9u, 9u, 9u, 5u, 9u,
- 1u, 15u, 1u, 15u, 3u, 13u, 4u, 13u, 5u, 13u, 5u, 13u, 4u, 13u, 5u, 9u,
- 5u, 9u, 3u, 9u, 5u, 9u, 3u, 16u, 3u, 16u, 4u, 13u, 3u, 16u, 3u, 16u,
- 4u, 16u, 1u, 15u, 3u, 16u, 1u, 15u, 5u, 9u, 9u, 9u, 5u, 9u, 1u, 15u,
- 1u, 15u, 3u, 13u, 4u, 13u, 5u, 13u, 5u, 13u, 3u, 16u, 4u, 13u, 5u, 9u,
- 5u, 9u, 3u, 9u, 5u, 9u, 3u, 16u, 4u, 13u, 4u, 13u, 3u, 16u, 3u, 16u,
- 4u, 16u, 1u, 15u, 3u, 16u, 1u, 15u, 5u, 9u, 9u, 9u, 5u, 9u, 1u, 15u,
- 1u, 15u, 3u, 13u, 4u, 13u, 5u, 13u, 5u, 13u, 3u, 16u, 4u, 13u, 5u, 9u,
- 5u, 9u, 3u, 9u, 5u, 9u, 1u, 16u, 3u, 16u, 1u, 16u, 4u, 13u, 5u, 13u,
- 5u, 13u, 9u, 9u, 5u, 9u, 1u, 15u, 3u, 9u, 5u, 9u, 5u, 9u, 9u, 9u,
+ 8u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 4u, 57u,
+ 8u, 57u, 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 4u, 57u, 4u, 57u,
+ 8u, 57u, 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 4u, 57u, 8u, 57u,
+ 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 5u, 57u, 8u, 57u, 1u, 57u,
+ 3u, 57u, 3u, 57u, 4u, 57u, 1u, 57u, 5u, 57u, 5u, 57u, 9u, 9u, 5u, 9u,
+ 1u, 57u, 1u, 57u, 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 4u, 57u,
+ 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 4u, 57u,
+ 1u, 57u, 3u, 57u, 3u, 57u, 4u, 57u, 1u, 57u, 5u, 57u, 9u, 9u, 5u, 9u,
+ 1u, 57u, 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 4u, 57u, 5u, 57u,
+ 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 4u, 57u, 3u, 57u, 3u, 57u,
+ 4u, 57u, 1u, 57u, 3u, 57u, 1u, 57u, 5u, 57u, 9u, 9u, 5u, 9u, 1u, 57u,
+ 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 4u, 57u, 5u, 57u,
+ 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 4u, 57u, 4u, 57u, 3u, 57u, 3u, 57u,
+ 4u, 57u, 1u, 57u, 3u, 57u, 1u, 57u, 5u, 57u, 9u, 9u, 5u, 9u, 1u, 57u,
+ 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 4u, 57u, 5u, 57u,
+ 5u, 57u, 3u, 57u, 5u, 57u, 1u, 57u, 3u, 57u, 1u, 57u, 4u, 57u, 5u, 57u,
+ 5u, 57u, 9u, 9u, 5u, 9u, 1u, 57u, 3u, 57u, 5u, 57u, 5u, 57u, 9u, 9u,
5u, 9u, 1u, 15u, 0
};
static const char _indic_syllable_machine_key_spans[] = {
- 1, 10, 9, 9, 1, 10, 10, 10,
- 1, 9, 9, 1, 10, 10, 10, 10,
- 1, 9, 9, 1, 10, 10, 10, 1,
- 9, 9, 1, 10, 10, 9, 1, 18,
- 14, 14, 13, 15, 5, 5, 1, 5,
- 15, 15, 15, 11, 10, 9, 9, 10,
- 5, 7, 5, 14, 14, 14, 14, 13,
- 15, 14, 14, 13, 15, 5, 1, 5,
- 15, 15, 11, 10, 9, 9, 10, 5,
- 5, 7, 5, 14, 14, 10, 14, 14,
- 13, 15, 14, 15, 5, 1, 5, 15,
- 15, 11, 10, 9, 9, 14, 10, 5,
- 5, 7, 5, 14, 10, 10, 14, 14,
- 13, 15, 14, 15, 5, 1, 5, 15,
- 15, 11, 10, 9, 9, 14, 10, 5,
- 5, 7, 5, 16, 14, 16, 10, 9,
- 9, 1, 5, 15, 7, 5, 5, 1,
+ 50, 54, 53, 53, 1, 54, 54, 54,
+ 50, 53, 53, 1, 54, 54, 54, 54,
+ 50, 53, 53, 1, 54, 54, 54, 50,
+ 53, 53, 1, 54, 54, 53, 50, 57,
+ 55, 55, 54, 57, 53, 53, 1, 5,
+ 57, 57, 57, 55, 54, 53, 53, 54,
+ 53, 55, 53, 55, 55, 55, 55, 54,
+ 57, 55, 55, 54, 57, 53, 1, 5,
+ 57, 57, 55, 54, 53, 53, 54, 53,
+ 53, 55, 53, 55, 55, 54, 55, 55,
+ 54, 57, 55, 57, 53, 1, 5, 57,
+ 57, 55, 54, 53, 53, 55, 54, 53,
+ 53, 55, 53, 55, 54, 54, 55, 55,
+ 54, 57, 55, 57, 53, 1, 5, 57,
+ 57, 55, 54, 53, 53, 55, 54, 53,
+ 53, 55, 53, 57, 55, 57, 54, 53,
+ 53, 1, 5, 57, 55, 53, 53, 1,
5, 15
};
static const short _indic_syllable_machine_index_offsets[] = {
- 0, 2, 13, 23, 33, 35, 46, 57,
- 68, 70, 80, 90, 92, 103, 114, 125,
- 136, 138, 148, 158, 160, 171, 182, 193,
- 195, 205, 215, 217, 228, 239, 249, 251,
- 270, 285, 300, 314, 330, 336, 342, 344,
- 350, 366, 382, 398, 410, 421, 431, 441,
- 452, 458, 466, 472, 487, 502, 517, 532,
- 546, 562, 577, 592, 606, 622, 628, 630,
- 636, 652, 668, 680, 691, 701, 711, 722,
- 728, 734, 742, 748, 763, 778, 789, 804,
- 819, 833, 849, 864, 880, 886, 888, 894,
- 910, 926, 938, 949, 959, 969, 984, 995,
- 1001, 1007, 1015, 1021, 1036, 1047, 1058, 1073,
- 1088, 1102, 1118, 1133, 1149, 1155, 1157, 1163,
- 1179, 1195, 1207, 1218, 1228, 1238, 1253, 1264,
- 1270, 1276, 1284, 1290, 1307, 1322, 1339, 1350,
- 1360, 1370, 1372, 1378, 1394, 1402, 1408, 1414,
- 1416, 1422
+ 0, 51, 106, 160, 214, 216, 271, 326,
+ 381, 432, 486, 540, 542, 597, 652, 707,
+ 762, 813, 867, 921, 923, 978, 1033, 1088,
+ 1139, 1193, 1247, 1249, 1304, 1359, 1413, 1464,
+ 1522, 1578, 1634, 1689, 1747, 1801, 1855, 1857,
+ 1863, 1921, 1979, 2037, 2093, 2148, 2202, 2256,
+ 2311, 2365, 2421, 2475, 2531, 2587, 2643, 2699,
+ 2754, 2812, 2868, 2924, 2979, 3037, 3091, 3093,
+ 3099, 3157, 3215, 3271, 3326, 3380, 3434, 3489,
+ 3543, 3597, 3653, 3707, 3763, 3819, 3874, 3930,
+ 3986, 4041, 4099, 4155, 4213, 4267, 4269, 4275,
+ 4333, 4391, 4447, 4502, 4556, 4610, 4666, 4721,
+ 4775, 4829, 4885, 4939, 4995, 5050, 5105, 5161,
+ 5217, 5272, 5330, 5386, 5444, 5498, 5500, 5506,
+ 5564, 5622, 5678, 5733, 5787, 5841, 5897, 5952,
+ 6006, 6060, 6116, 6170, 6228, 6284, 6342, 6397,
+ 6451, 6505, 6507, 6513, 6571, 6627, 6681, 6735,
+ 6737, 6743
};
static const unsigned char _indic_syllable_machine_indicies[] = {
- 1, 0, 2, 3, 3, 4, 5, 0,
- 0, 0, 0, 4, 0, 3, 3, 4,
- 6, 0, 0, 0, 0, 4, 0, 3,
- 3, 4, 5, 0, 0, 0, 0, 4,
- 0, 4, 0, 7, 3, 3, 4, 5,
- 0, 0, 0, 0, 4, 0, 2, 3,
- 3, 4, 5, 0, 0, 0, 8, 4,
- 0, 10, 11, 11, 12, 13, 9, 9,
- 9, 9, 12, 9, 14, 9, 11, 11,
- 12, 15, 9, 9, 9, 9, 12, 9,
- 11, 11, 12, 13, 9, 9, 9, 9,
- 12, 9, 12, 9, 16, 11, 11, 12,
- 13, 9, 9, 9, 9, 12, 9, 10,
- 11, 11, 12, 13, 9, 9, 9, 17,
- 12, 9, 10, 11, 11, 12, 13, 9,
- 9, 9, 18, 12, 9, 20, 21, 21,
- 22, 23, 19, 19, 19, 24, 22, 19,
- 25, 19, 21, 21, 22, 27, 26, 26,
- 26, 26, 22, 26, 21, 21, 22, 23,
- 19, 19, 19, 19, 22, 19, 22, 26,
- 20, 21, 21, 22, 23, 19, 19, 19,
- 19, 22, 19, 28, 21, 21, 22, 23,
- 19, 19, 19, 19, 22, 19, 30, 31,
- 31, 32, 33, 29, 29, 29, 34, 32,
+ 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 2, 3, 3, 4, 5,
+ 0, 0, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 0, 3, 3, 4, 6, 0, 0,
+ 0, 0, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 6, 0,
+ 3, 3, 4, 5, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 0, 4, 0,
+ 7, 3, 3, 4, 5, 0, 0, 0,
+ 0, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5, 0, 2,
+ 3, 3, 4, 5, 0, 0, 0, 8,
+ 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 0, 10, 11,
+ 11, 12, 13, 9, 9, 9, 9, 12,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 13, 9, 14, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 14, 9,
+ 11, 11, 12, 15, 9, 9, 9, 9,
+ 12, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 15, 9, 11, 11,
+ 12, 13, 9, 9, 9, 9, 12, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 13, 9, 12, 9, 16, 11,
+ 11, 12, 13, 9, 9, 9, 9, 12,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 13, 9, 10, 11, 11,
+ 12, 13, 9, 9, 9, 17, 12, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 13, 9, 10, 11, 11, 12,
+ 13, 9, 9, 9, 18, 12, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 13, 9, 20, 21, 21, 22, 23,
+ 19, 19, 19, 24, 22, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 23, 19, 25, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 25, 19, 21, 21, 22,
+ 27, 26, 26, 26, 26, 22, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 27, 26, 21, 21, 22, 23, 19,
+ 19, 19, 19, 22, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 23,
+ 19, 22, 26, 20, 21, 21, 22, 23,
+ 19, 19, 19, 19, 22, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 23, 19, 28, 21, 21, 22, 23, 19,
+ 19, 19, 19, 22, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 23,
+ 19, 30, 31, 31, 32, 33, 29, 29,
+ 29, 34, 32, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 33, 29,
+ 35, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
29, 35, 29, 31, 31, 32, 36, 29,
- 29, 29, 29, 32, 29, 31, 31, 32,
- 33, 29, 29, 29, 29, 32, 29, 32,
+ 29, 29, 29, 32, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 36,
+ 29, 31, 31, 32, 33, 29, 29, 29,
+ 29, 32, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 33, 29, 32,
29, 30, 31, 31, 32, 33, 29, 29,
- 29, 29, 32, 29, 37, 31, 31, 32,
- 33, 29, 29, 29, 29, 32, 29, 21,
+ 29, 29, 32, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 33, 29,
+ 37, 31, 31, 32, 33, 29, 29, 29,
+ 29, 32, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 33, 29, 21,
21, 22, 38, 0, 0, 0, 0, 22,
- 0, 40, 39, 42, 43, 44, 45, 46,
- 47, 22, 23, 48, 49, 49, 24, 22,
- 50, 51, 52, 53, 54, 41, 56, 57,
- 58, 59, 4, 5, 60, 55, 55, 8,
- 4, 55, 55, 61, 55, 62, 57, 63,
- 63, 4, 5, 60, 55, 55, 55, 4,
- 55, 55, 61, 55, 57, 63, 63, 4,
- 5, 60, 55, 55, 55, 4, 55, 55,
- 61, 55, 42, 55, 55, 55, 64, 65,
- 55, 1, 60, 55, 55, 55, 55, 55,
- 42, 55, 66, 66, 55, 1, 60, 55,
- 60, 55, 55, 67, 60, 55, 60, 55,
- 60, 55, 55, 55, 60, 55, 42, 55,
- 68, 55, 66, 66, 55, 1, 60, 55,
- 55, 55, 55, 55, 42, 55, 42, 55,
- 55, 55, 66, 66, 55, 1, 60, 55,
- 55, 55, 55, 55, 42, 55, 42, 55,
- 55, 55, 66, 65, 55, 1, 60, 55,
- 55, 55, 55, 55, 42, 55, 69, 70,
- 71, 71, 4, 5, 60, 55, 55, 55,
- 4, 55, 70, 71, 71, 4, 5, 60,
- 55, 55, 55, 4, 55, 71, 71, 4,
- 5, 60, 55, 55, 55, 4, 55, 60,
- 55, 55, 67, 60, 55, 55, 55, 4,
- 55, 72, 73, 73, 4, 5, 60, 55,
- 55, 55, 4, 55, 64, 74, 55, 1,
- 60, 55, 64, 55, 66, 66, 55, 1,
- 60, 55, 66, 74, 55, 1, 60, 55,
- 56, 57, 63, 63, 4, 5, 60, 55,
- 55, 55, 4, 55, 55, 61, 55, 56,
- 57, 58, 63, 4, 5, 60, 55, 55,
- 8, 4, 55, 55, 61, 55, 76, 77,
- 78, 79, 12, 13, 80, 75, 75, 18,
- 12, 75, 75, 81, 75, 82, 77, 83,
- 79, 12, 13, 80, 75, 75, 75, 12,
- 75, 75, 81, 75, 77, 83, 79, 12,
- 13, 80, 75, 75, 75, 12, 75, 75,
- 81, 75, 84, 75, 75, 75, 85, 86,
- 75, 14, 80, 75, 75, 75, 75, 75,
- 84, 75, 87, 77, 88, 89, 12, 13,
- 80, 75, 75, 17, 12, 75, 75, 81,
- 75, 90, 77, 83, 83, 12, 13, 80,
- 75, 75, 75, 12, 75, 75, 81, 75,
- 77, 83, 83, 12, 13, 80, 75, 75,
- 75, 12, 75, 75, 81, 75, 84, 75,
- 75, 75, 91, 86, 75, 14, 80, 75,
- 75, 75, 75, 75, 84, 75, 80, 75,
- 75, 92, 80, 75, 80, 75, 80, 75,
- 75, 75, 80, 75, 84, 75, 93, 75,
- 91, 91, 75, 14, 80, 75, 75, 75,
- 75, 75, 84, 75, 84, 75, 75, 75,
- 91, 91, 75, 14, 80, 75, 75, 75,
- 75, 75, 84, 75, 94, 95, 96, 96,
- 12, 13, 80, 75, 75, 75, 12, 75,
- 95, 96, 96, 12, 13, 80, 75, 75,
- 75, 12, 75, 96, 96, 12, 13, 80,
- 75, 75, 75, 12, 75, 80, 75, 75,
- 92, 80, 75, 75, 75, 12, 75, 97,
- 98, 98, 12, 13, 80, 75, 75, 75,
- 12, 75, 85, 99, 75, 14, 80, 75,
- 91, 91, 75, 14, 80, 75, 85, 75,
- 91, 91, 75, 14, 80, 75, 91, 99,
- 75, 14, 80, 75, 87, 77, 83, 83,
- 12, 13, 80, 75, 75, 75, 12, 75,
- 75, 81, 75, 87, 77, 88, 83, 12,
- 13, 80, 75, 75, 17, 12, 75, 75,
- 81, 75, 10, 11, 11, 12, 13, 75,
- 75, 75, 75, 12, 75, 76, 77, 83,
- 79, 12, 13, 80, 75, 75, 75, 12,
- 75, 75, 81, 75, 101, 45, 102, 102,
- 22, 23, 48, 100, 100, 100, 22, 100,
- 100, 52, 100, 45, 102, 102, 22, 23,
- 48, 100, 100, 100, 22, 100, 100, 52,
- 100, 103, 100, 100, 100, 104, 105, 100,
- 25, 48, 100, 100, 100, 100, 100, 103,
- 100, 44, 45, 106, 107, 22, 23, 48,
- 100, 100, 24, 22, 100, 100, 52, 100,
- 103, 100, 100, 100, 108, 105, 100, 25,
- 48, 100, 100, 100, 100, 100, 103, 100,
- 48, 100, 100, 109, 48, 100, 48, 100,
- 48, 100, 100, 100, 48, 100, 103, 100,
- 110, 100, 108, 108, 100, 25, 48, 100,
- 100, 100, 100, 100, 103, 100, 103, 100,
- 100, 100, 108, 108, 100, 25, 48, 100,
- 100, 100, 100, 100, 103, 100, 111, 112,
- 113, 113, 22, 23, 48, 100, 100, 100,
- 22, 100, 112, 113, 113, 22, 23, 48,
- 100, 100, 100, 22, 100, 113, 113, 22,
- 23, 48, 100, 100, 100, 22, 100, 48,
- 100, 100, 109, 48, 100, 100, 100, 22,
- 100, 44, 45, 102, 102, 22, 23, 48,
- 100, 100, 100, 22, 100, 100, 52, 100,
- 114, 115, 115, 22, 23, 48, 100, 100,
- 100, 22, 100, 104, 116, 100, 25, 48,
- 100, 108, 108, 100, 25, 48, 100, 104,
- 100, 108, 108, 100, 25, 48, 100, 108,
- 116, 100, 25, 48, 100, 44, 45, 106,
- 102, 22, 23, 48, 100, 100, 24, 22,
- 100, 100, 52, 100, 20, 21, 21, 22,
- 23, 117, 117, 117, 24, 22, 117, 20,
- 21, 21, 22, 23, 117, 117, 117, 117,
- 22, 117, 119, 120, 121, 122, 32, 33,
- 123, 118, 118, 34, 32, 118, 118, 124,
- 118, 125, 120, 122, 122, 32, 33, 123,
- 118, 118, 118, 32, 118, 118, 124, 118,
- 120, 122, 122, 32, 33, 123, 118, 118,
- 118, 32, 118, 118, 124, 118, 126, 118,
- 118, 118, 127, 128, 118, 35, 123, 118,
- 118, 118, 118, 118, 126, 118, 119, 120,
- 121, 49, 32, 33, 123, 118, 118, 34,
- 32, 118, 118, 124, 118, 126, 118, 118,
- 118, 129, 128, 118, 35, 123, 118, 118,
- 118, 118, 118, 126, 118, 123, 118, 118,
- 130, 123, 118, 123, 118, 123, 118, 118,
- 118, 123, 118, 126, 118, 131, 118, 129,
- 129, 118, 35, 123, 118, 118, 118, 118,
- 118, 126, 118, 126, 118, 118, 118, 129,
- 129, 118, 35, 123, 118, 118, 118, 118,
- 118, 126, 118, 132, 133, 134, 134, 32,
- 33, 123, 118, 118, 118, 32, 118, 133,
- 134, 134, 32, 33, 123, 118, 118, 118,
- 32, 118, 134, 134, 32, 33, 123, 118,
- 118, 118, 32, 118, 123, 118, 118, 130,
- 123, 118, 118, 118, 32, 118, 119, 120,
- 122, 122, 32, 33, 123, 118, 118, 118,
- 32, 118, 118, 124, 118, 135, 136, 136,
- 32, 33, 123, 118, 118, 118, 32, 118,
- 127, 137, 118, 35, 123, 118, 129, 129,
- 118, 35, 123, 118, 127, 118, 129, 129,
- 118, 35, 123, 118, 129, 137, 118, 35,
- 123, 118, 42, 43, 44, 45, 106, 102,
- 22, 23, 48, 49, 49, 24, 22, 100,
- 42, 52, 100, 56, 138, 58, 59, 4,
- 5, 60, 55, 55, 8, 4, 55, 55,
- 61, 55, 42, 43, 44, 45, 139, 140,
- 22, 141, 142, 55, 49, 24, 22, 55,
- 42, 52, 55, 20, 143, 143, 22, 141,
- 60, 55, 55, 24, 22, 55, 60, 55,
- 55, 67, 60, 55, 55, 55, 22, 55,
- 142, 55, 55, 144, 142, 55, 55, 55,
- 22, 55, 142, 55, 142, 55, 55, 55,
- 142, 55, 42, 55, 68, 20, 143, 143,
- 22, 141, 60, 55, 55, 55, 22, 55,
- 42, 55, 146, 145, 147, 147, 145, 40,
- 148, 145, 147, 147, 145, 40, 148, 145,
- 148, 145, 145, 149, 148, 145, 148, 145,
- 148, 145, 145, 145, 148, 145, 42, 117,
- 117, 117, 117, 117, 117, 117, 117, 49,
- 117, 117, 117, 117, 42, 117, 0
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 38, 0, 40, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 40, 39,
+ 42, 43, 44, 45, 46, 47, 22, 23,
+ 48, 49, 49, 24, 22, 50, 51, 52,
+ 53, 54, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41,
+ 55, 41, 57, 58, 59, 60, 4, 5,
+ 61, 56, 56, 8, 4, 56, 56, 62,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 5, 56, 63, 58, 64, 64, 4, 5,
+ 61, 56, 56, 56, 4, 56, 56, 62,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 5, 56, 58, 64, 64, 4, 5, 61,
+ 56, 56, 56, 4, 56, 56, 62, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 5,
+ 56, 42, 56, 56, 56, 65, 66, 56,
+ 1, 61, 56, 56, 56, 56, 56, 42,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 1, 56, 67, 67, 56, 1, 61,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 1,
+ 56, 61, 56, 56, 68, 61, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 68, 56, 61,
+ 56, 61, 56, 56, 56, 61, 56, 42,
+ 56, 69, 56, 67, 67, 56, 1, 61,
+ 56, 56, 56, 56, 56, 42, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 1,
+ 56, 42, 56, 56, 56, 67, 67, 56,
+ 1, 61, 56, 56, 56, 56, 56, 42,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 1, 56, 42, 56, 56, 56, 67,
+ 66, 56, 1, 61, 56, 56, 56, 56,
+ 56, 42, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 1, 56, 70, 71, 72,
+ 72, 4, 5, 61, 56, 56, 56, 4,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 5, 56, 71, 72, 72,
+ 4, 5, 61, 56, 56, 56, 4, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 5, 56, 72, 72, 4, 5,
+ 61, 56, 56, 56, 4, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 5, 56, 61, 56, 56, 68, 61, 56,
+ 56, 56, 4, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 68, 56,
+ 73, 74, 74, 4, 5, 61, 56, 56,
+ 56, 4, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 5, 56, 65,
+ 75, 56, 1, 61, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 1, 56, 65, 56, 67,
+ 67, 56, 1, 61, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 1, 56, 67, 75, 56,
+ 1, 61, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 1, 56, 57, 58, 64, 64, 4,
+ 5, 61, 56, 56, 56, 4, 56, 56,
+ 62, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 5, 56, 57, 58, 59, 64, 4,
+ 5, 61, 56, 56, 8, 4, 56, 56,
+ 62, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 5, 56, 77, 78, 79, 80, 12,
+ 13, 81, 76, 76, 18, 12, 76, 76,
+ 82, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 13, 76, 83, 78, 84, 80, 12,
+ 13, 81, 76, 76, 76, 12, 76, 76,
+ 82, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 13, 76, 78, 84, 80, 12, 13,
+ 81, 76, 76, 76, 12, 76, 76, 82,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 13, 76, 85, 76, 76, 76, 86, 87,
+ 76, 14, 81, 76, 76, 76, 76, 76,
+ 85, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 14, 76, 88, 78, 89, 90,
+ 12, 13, 81, 76, 76, 17, 12, 76,
+ 76, 82, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 13, 76, 91, 78, 84, 84,
+ 12, 13, 81, 76, 76, 76, 12, 76,
+ 76, 82, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 13, 76, 78, 84, 84, 12,
+ 13, 81, 76, 76, 76, 12, 76, 76,
+ 82, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 13, 76, 85, 76, 76, 76, 92,
+ 87, 76, 14, 81, 76, 76, 76, 76,
+ 76, 85, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 14, 76, 81, 76, 76,
+ 93, 81, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 93, 76, 81, 76, 81, 76, 76,
+ 76, 81, 76, 85, 76, 94, 76, 92,
+ 92, 76, 14, 81, 76, 76, 76, 76,
+ 76, 85, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 14, 76, 85, 76, 76,
+ 76, 92, 92, 76, 14, 81, 76, 76,
+ 76, 76, 76, 85, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 14, 76, 95,
+ 96, 97, 97, 12, 13, 81, 76, 76,
+ 76, 12, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 13, 76, 96,
+ 97, 97, 12, 13, 81, 76, 76, 76,
+ 12, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 13, 76, 97, 97,
+ 12, 13, 81, 76, 76, 76, 12, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 13, 76, 81, 76, 76, 93,
+ 81, 76, 76, 76, 12, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 93, 76, 98, 99, 99, 12, 13, 81,
+ 76, 76, 76, 12, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 13,
+ 76, 86, 100, 76, 14, 81, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 14, 76, 92,
+ 92, 76, 14, 81, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 14, 76, 86, 76, 92,
+ 92, 76, 14, 81, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 14, 76, 92, 100, 76,
+ 14, 81, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 14, 76, 88, 78, 84, 84, 12,
+ 13, 81, 76, 76, 76, 12, 76, 76,
+ 82, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 13, 76, 88, 78, 89, 84, 12,
+ 13, 81, 76, 76, 17, 12, 76, 76,
+ 82, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 13, 76, 10, 11, 11, 12, 13,
+ 76, 76, 76, 76, 12, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 13, 76, 77, 78, 84, 80, 12, 13,
+ 81, 76, 76, 76, 12, 76, 76, 82,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 13, 76, 102, 45, 103, 103, 22, 23,
+ 48, 101, 101, 101, 22, 101, 101, 52,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 23, 101, 45, 103, 103, 22, 23, 48,
+ 101, 101, 101, 22, 101, 101, 52, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 23,
+ 101, 104, 101, 101, 101, 105, 106, 101,
+ 25, 48, 101, 101, 101, 101, 101, 104,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 25, 101, 44, 45, 107, 108, 22,
+ 23, 48, 101, 101, 24, 22, 101, 101,
+ 52, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 23, 101, 104, 101, 101, 101, 109,
+ 106, 101, 25, 48, 101, 101, 101, 101,
+ 101, 104, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 25, 101, 48, 101, 101,
+ 110, 48, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 110, 101, 48, 101, 48, 101, 101,
+ 101, 48, 101, 104, 101, 111, 101, 109,
+ 109, 101, 25, 48, 101, 101, 101, 101,
+ 101, 104, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 25, 101, 104, 101, 101,
+ 101, 109, 109, 101, 25, 48, 101, 101,
+ 101, 101, 101, 104, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 25, 101, 112,
+ 113, 114, 114, 22, 23, 48, 101, 101,
+ 101, 22, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 23, 101, 113,
+ 114, 114, 22, 23, 48, 101, 101, 101,
+ 22, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 23, 101, 114, 114,
+ 22, 23, 48, 101, 101, 101, 22, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 23, 101, 48, 26, 26, 110,
+ 48, 26, 26, 26, 22, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 110, 26, 44, 45, 103, 103, 22, 23,
+ 48, 101, 101, 101, 22, 101, 101, 52,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 23, 101, 115, 116, 116, 22, 23, 48,
+ 101, 101, 101, 22, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 23,
+ 101, 105, 117, 101, 25, 48, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 25, 101, 109,
+ 109, 101, 25, 48, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 25, 101, 105, 101, 109,
+ 109, 101, 25, 48, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 25, 101, 109, 117, 101,
+ 25, 48, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 25, 101, 44, 45, 107, 103, 22,
+ 23, 48, 101, 101, 24, 22, 101, 101,
+ 52, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 23, 101, 20, 21, 21, 22, 23,
+ 118, 118, 118, 24, 22, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 23, 118, 20, 21, 21, 22, 23, 118,
+ 118, 118, 118, 22, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 23,
+ 118, 120, 121, 122, 123, 32, 33, 124,
+ 119, 119, 34, 32, 119, 119, 125, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 33,
+ 119, 126, 121, 123, 123, 32, 33, 124,
+ 119, 119, 119, 32, 119, 119, 125, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 33,
+ 119, 121, 123, 123, 32, 33, 124, 119,
+ 119, 119, 32, 119, 119, 125, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 33, 119,
+ 127, 119, 119, 119, 128, 129, 119, 35,
+ 124, 119, 119, 119, 119, 119, 127, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 35, 119, 120, 121, 122, 49, 32, 33,
+ 124, 119, 119, 34, 32, 119, 119, 125,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 33, 119, 127, 119, 119, 119, 130, 129,
+ 119, 35, 124, 119, 119, 119, 119, 119,
+ 127, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 35, 119, 124, 119, 119, 131,
+ 124, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 131, 119, 124, 119, 124, 119, 119, 119,
+ 124, 119, 127, 119, 132, 119, 130, 130,
+ 119, 35, 124, 119, 119, 119, 119, 119,
+ 127, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 35, 119, 127, 119, 119, 119,
+ 130, 130, 119, 35, 124, 119, 119, 119,
+ 119, 119, 127, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 35, 119, 133, 134,
+ 135, 135, 32, 33, 124, 119, 119, 119,
+ 32, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 33, 119, 134, 135,
+ 135, 32, 33, 124, 119, 119, 119, 32,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 33, 119, 135, 135, 32,
+ 33, 124, 119, 119, 119, 32, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 33, 119, 124, 119, 119, 131, 124,
+ 119, 119, 119, 32, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 131,
+ 119, 120, 121, 123, 123, 32, 33, 124,
+ 119, 119, 119, 32, 119, 119, 125, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 33,
+ 119, 136, 137, 137, 32, 33, 124, 119,
+ 119, 119, 32, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 33, 119,
+ 128, 138, 119, 35, 124, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 35, 119, 130, 130,
+ 119, 35, 124, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 35, 119, 128, 119, 130, 130,
+ 119, 35, 124, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 35, 119, 130, 138, 119, 35,
+ 124, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 35, 119, 42, 43, 44, 45, 107, 103,
+ 22, 23, 48, 49, 49, 24, 22, 101,
+ 42, 52, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 23, 101, 57, 139, 59, 60,
+ 4, 5, 61, 56, 56, 8, 4, 56,
+ 56, 62, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 5, 56, 42, 43, 44, 45,
+ 140, 141, 22, 142, 143, 56, 49, 24,
+ 22, 56, 42, 52, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 142, 56, 20, 144,
+ 144, 22, 142, 61, 56, 56, 24, 22,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 142, 56, 61, 56, 56,
+ 68, 61, 56, 56, 56, 22, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 68, 56, 143, 56, 56, 145, 143,
+ 56, 56, 56, 22, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 145,
+ 56, 143, 56, 143, 56, 56, 56, 143,
+ 56, 42, 56, 69, 20, 144, 144, 22,
+ 142, 61, 56, 56, 56, 22, 56, 42,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 142, 56, 147, 146, 148, 148, 146,
+ 40, 149, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 40, 146, 148, 148, 146, 40, 149,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 40,
+ 146, 149, 146, 146, 150, 149, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 150, 146, 149,
+ 146, 149, 146, 146, 146, 149, 146, 42,
+ 118, 118, 118, 118, 118, 118, 118, 118,
+ 49, 118, 118, 118, 118, 42, 118, 0
};
static const unsigned char _indic_syllable_machine_trans_targs[] = {
@@ -330,41 +996,41 @@
93, 84, 31, 19, 98, 31, 107, 24,
113, 116, 117, 108, 26, 122, 127, 31,
134, 31, 32, 53, 79, 81, 100, 101,
- 85, 102, 123, 124, 94, 132, 137, 31,
- 33, 35, 6, 52, 38, 47, 34, 1,
- 36, 40, 0, 39, 41, 44, 45, 3,
- 48, 5, 49, 31, 54, 56, 14, 77,
- 62, 70, 55, 7, 57, 72, 64, 58,
- 13, 76, 59, 8, 63, 65, 67, 68,
- 10, 71, 12, 73, 31, 80, 20, 82,
- 96, 87, 15, 99, 16, 86, 88, 90,
- 91, 18, 95, 21, 97, 31, 31, 103,
- 105, 22, 27, 109, 118, 104, 106, 120,
- 111, 23, 110, 112, 114, 115, 25, 119,
- 28, 121, 125, 126, 131, 128, 129, 29,
- 130, 31, 133, 30, 135, 136
+ 85, 102, 123, 124, 94, 132, 137, 92,
+ 31, 33, 35, 6, 52, 38, 47, 34,
+ 1, 36, 40, 0, 39, 41, 44, 45,
+ 3, 48, 5, 49, 31, 54, 56, 14,
+ 77, 62, 70, 55, 7, 57, 72, 64,
+ 58, 13, 76, 59, 8, 63, 65, 67,
+ 68, 10, 71, 12, 73, 31, 80, 20,
+ 82, 96, 87, 15, 99, 16, 86, 88,
+ 90, 91, 18, 95, 21, 97, 31, 31,
+ 103, 105, 22, 27, 109, 118, 104, 106,
+ 120, 111, 23, 110, 112, 114, 115, 25,
+ 119, 28, 121, 125, 126, 131, 128, 129,
+ 29, 130, 31, 133, 30, 135, 136
};
static const char _indic_syllable_machine_trans_actions[] = {
1, 0, 2, 0, 2, 0, 0, 2,
2, 3, 2, 0, 2, 0, 0, 0,
- 2, 2, 2, 4, 2, 0, 5, 0,
+ 2, 2, 2, 4, 2, 0, 5, 5,
5, 0, 6, 0, 2, 7, 2, 0,
2, 0, 2, 0, 0, 2, 0, 8,
0, 11, 2, 2, 5, 0, 12, 12,
0, 2, 5, 2, 5, 2, 0, 13,
- 2, 0, 0, 2, 0, 2, 2, 0,
+ 14, 2, 0, 0, 2, 0, 2, 2,
+ 0, 2, 2, 0, 0, 2, 2, 2,
+ 0, 0, 0, 2, 15, 2, 0, 0,
+ 2, 0, 2, 2, 0, 2, 2, 2,
+ 2, 0, 2, 2, 0, 0, 2, 2,
+ 2, 0, 0, 0, 2, 16, 5, 0,
+ 5, 2, 2, 0, 5, 0, 0, 2,
+ 5, 5, 0, 0, 0, 2, 17, 18,
+ 2, 0, 0, 0, 0, 2, 2, 2,
2, 2, 0, 0, 2, 2, 2, 0,
- 0, 0, 2, 14, 2, 0, 0, 2,
- 0, 2, 2, 0, 2, 2, 2, 2,
- 0, 2, 2, 0, 0, 2, 2, 2,
- 0, 0, 0, 2, 15, 5, 0, 5,
- 2, 2, 0, 5, 0, 0, 2, 5,
- 5, 0, 0, 0, 2, 16, 17, 2,
- 0, 0, 0, 0, 2, 2, 2, 2,
- 2, 0, 0, 2, 2, 2, 0, 0,
- 0, 2, 0, 18, 18, 0, 0, 0,
- 0, 19, 2, 0, 0, 0
+ 0, 0, 2, 0, 19, 19, 0, 0,
+ 0, 0, 20, 2, 0, 0, 0
};
static const char _indic_syllable_machine_to_state_actions[] = {
@@ -414,20 +1080,20 @@
10, 10, 10, 10, 10, 10, 10, 20,
20, 27, 20, 27, 20, 20, 30, 30,
30, 30, 30, 30, 30, 1, 40, 0,
- 56, 56, 56, 56, 56, 56, 56, 56,
- 56, 56, 56, 56, 56, 56, 56, 56,
- 56, 56, 56, 56, 56, 76, 76, 76,
- 76, 76, 76, 76, 76, 76, 76, 76,
- 76, 76, 76, 76, 76, 76, 76, 76,
- 76, 76, 76, 76, 76, 76, 76, 101,
- 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 118, 118, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 101, 56, 56, 56, 56,
- 56, 56, 56, 56, 146, 146, 146, 146,
- 146, 118
+ 57, 57, 57, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 27, 102, 102, 102,
+ 102, 102, 102, 102, 119, 119, 120, 120,
+ 120, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 102, 57, 57, 57, 57,
+ 57, 57, 57, 57, 147, 147, 147, 147,
+ 147, 119
};
static const int indic_syllable_machine_start = 31;
@@ -441,7 +1107,7 @@
-#line 118 "hb-ot-shaper-indic-machine.rl"
+#line 121 "hb-ot-shaper-indic-machine.rl"
#define found_syllable(syllable_type) \
@@ -460,7 +1126,7 @@
int cs;
hb_glyph_info_t *info = buffer->info;
-#line 464 "hb-ot-shaper-indic-machine.hh"
+#line 1130 "hb-ot-shaper-indic-machine.hh"
{
cs = indic_syllable_machine_start;
ts = 0;
@@ -468,7 +1134,7 @@
act = 0;
}
-#line 138 "hb-ot-shaper-indic-machine.rl"
+#line 141 "hb-ot-shaper-indic-machine.rl"
p = 0;
@@ -476,7 +1142,7 @@
unsigned int syllable_serial = 1;
-#line 480 "hb-ot-shaper-indic-machine.hh"
+#line 1146 "hb-ot-shaper-indic-machine.hh"
{
int _slen;
int _trans;
@@ -490,7 +1156,7 @@
#line 1 "NONE"
{ts = p;}
break;
-#line 494 "hb-ot-shaper-indic-machine.hh"
+#line 1160 "hb-ot-shaper-indic-machine.hh"
}
_keys = _indic_syllable_machine_trans_keys + (cs<<1);
@@ -513,51 +1179,51 @@
{te = p+1;}
break;
case 11:
-#line 114 "hb-ot-shaper-indic-machine.rl"
+#line 117 "hb-ot-shaper-indic-machine.rl"
{te = p+1;{ found_syllable (indic_non_indic_cluster); }}
break;
- case 13:
-#line 109 "hb-ot-shaper-indic-machine.rl"
+ case 14:
+#line 111 "hb-ot-shaper-indic-machine.rl"
{te = p;p--;{ found_syllable (indic_consonant_syllable); }}
break;
- case 14:
-#line 110 "hb-ot-shaper-indic-machine.rl"
+ case 15:
+#line 112 "hb-ot-shaper-indic-machine.rl"
{te = p;p--;{ found_syllable (indic_vowel_syllable); }}
break;
- case 17:
-#line 111 "hb-ot-shaper-indic-machine.rl"
+ case 18:
+#line 113 "hb-ot-shaper-indic-machine.rl"
{te = p;p--;{ found_syllable (indic_standalone_cluster); }}
break;
- case 19:
-#line 112 "hb-ot-shaper-indic-machine.rl"
+ case 20:
+#line 114 "hb-ot-shaper-indic-machine.rl"
{te = p;p--;{ found_syllable (indic_symbol_cluster); }}
break;
- case 15:
-#line 113 "hb-ot-shaper-indic-machine.rl"
+ case 16:
+#line 116 "hb-ot-shaper-indic-machine.rl"
{te = p;p--;{ found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
- case 16:
-#line 114 "hb-ot-shaper-indic-machine.rl"
+ case 17:
+#line 117 "hb-ot-shaper-indic-machine.rl"
{te = p;p--;{ found_syllable (indic_non_indic_cluster); }}
break;
case 1:
-#line 109 "hb-ot-shaper-indic-machine.rl"
+#line 111 "hb-ot-shaper-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (indic_consonant_syllable); }}
break;
case 3:
-#line 110 "hb-ot-shaper-indic-machine.rl"
+#line 112 "hb-ot-shaper-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (indic_vowel_syllable); }}
break;
case 7:
-#line 111 "hb-ot-shaper-indic-machine.rl"
+#line 113 "hb-ot-shaper-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (indic_standalone_cluster); }}
break;
case 8:
-#line 112 "hb-ot-shaper-indic-machine.rl"
+#line 114 "hb-ot-shaper-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (indic_symbol_cluster); }}
break;
case 4:
-#line 113 "hb-ot-shaper-indic-machine.rl"
+#line 116 "hb-ot-shaper-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
case 6:
@@ -567,33 +1233,42 @@
{{p = ((te))-1;} found_syllable (indic_consonant_syllable); }
break;
case 5:
+ {{p = ((te))-1;} found_syllable (indic_non_indic_cluster); }
+ break;
+ case 6:
{{p = ((te))-1;} found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }
break;
- case 6:
+ case 7:
{{p = ((te))-1;} found_syllable (indic_non_indic_cluster); }
break;
}
}
break;
- case 18:
+ case 19:
#line 1 "NONE"
{te = p+1;}
-#line 109 "hb-ot-shaper-indic-machine.rl"
+#line 111 "hb-ot-shaper-indic-machine.rl"
{act = 1;}
break;
- case 5:
+ case 13:
#line 1 "NONE"
{te = p+1;}
-#line 113 "hb-ot-shaper-indic-machine.rl"
+#line 115 "hb-ot-shaper-indic-machine.rl"
{act = 5;}
break;
- case 12:
+ case 5:
#line 1 "NONE"
{te = p+1;}
-#line 114 "hb-ot-shaper-indic-machine.rl"
+#line 116 "hb-ot-shaper-indic-machine.rl"
{act = 6;}
break;
-#line 597 "hb-ot-shaper-indic-machine.hh"
+ case 12:
+#line 1 "NONE"
+ {te = p+1;}
+#line 117 "hb-ot-shaper-indic-machine.rl"
+ {act = 7;}
+ break;
+#line 1272 "hb-ot-shaper-indic-machine.hh"
}
_again:
@@ -602,7 +1277,7 @@
#line 1 "NONE"
{ts = 0;}
break;
-#line 606 "hb-ot-shaper-indic-machine.hh"
+#line 1281 "hb-ot-shaper-indic-machine.hh"
}
if ( ++p != pe )
@@ -618,7 +1293,7 @@
}
-#line 146 "hb-ot-shaper-indic-machine.rl"
+#line 149 "hb-ot-shaper-indic-machine.rl"
}
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-machine.rl
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-machine.rl 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-machine.rl 2025-01-11 23:22:13 UTC (rev 73427)
@@ -80,6 +80,7 @@
export CM = 16;
export Symbol= 17;
export CS = 18;
+export SMPst = 57;
c = (C | Ra); # is_consonant
@@ -86,11 +87,12 @@
n = ((ZWNJ?.RS)? (N.N?)?); # is_consonant_modifier
z = ZWJ|ZWNJ; # is_joiner
reph = (Ra H | Repha); # possible reph
+sm = SM | SMPst;
cn = c.ZWJ?.n?;
symbol = Symbol.N?;
-matra_group = z*.(M | SM? MPst).N?.H?;
-syllable_tail = (z?.SM.SM?.ZWNJ?)? (A | VD)*;
+matra_group = z*.(M | sm? MPst).N?.H?;
+syllable_tail = (z?.sm.sm?.ZWNJ?)? (A | VD)*;
halant_group = (z?.H.(ZWJ.N?)?);
final_halant_group = halant_group | H.ZWNJ;
medial_group = CM?;
@@ -110,6 +112,7 @@
vowel_syllable => { found_syllable (indic_vowel_syllable); };
standalone_cluster => { found_syllable (indic_standalone_cluster); };
symbol_cluster => { found_syllable (indic_symbol_cluster); };
+ SMPst => { found_syllable (indic_non_indic_cluster); };
broken_cluster => { found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; };
other => { found_syllable (indic_non_indic_cluster); };
*|;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-table.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-table.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-indic-table.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -48,6 +48,7 @@
#define OT_CM I_Cat(CM)
#define OT_Symbol I_Cat(Symbol)
#define OT_CS I_Cat(CS)
+#define OT_SMPst I_Cat(SMPst)
/* khmer */
#define OT_VAbv K_Cat(VAbv)
#define OT_VBlw K_Cat(VBlw)
@@ -94,7 +95,8 @@
#define _OT_R OT_Ra /* 14 chars; Ra */
#define _OT_Rf OT_Repha /* 1 chars; Repha */
#define _OT_Rt OT_Robatic /* 3 chars; Robatic */
-#define _OT_SM OT_SM /* 56 chars; SM */
+#define _OT_SM OT_SM /* 50 chars; SM */
+#define _OT_SP OT_SMPst /* 6 chars; SMPst */
#define _OT_S OT_Symbol /* 22 chars; Symbol */
#define _OT_V OT_V /* 172 chars; V */
#define _OT_VA OT_VAbv /* 18 chars; VAbv */
@@ -145,7 +147,7 @@
/* Latin-1 Supplement */
- /* 00B0 */ _(X,X), _(X,X),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X), _(X,X),
+ /* 00B0 */ _(X,X), _(X,X),_(SP,SM),_(SP,SM), _(X,X), _(X,X), _(X,X), _(X,X),
/* 00B8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 00C0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 00C8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
@@ -398,9 +400,9 @@
/* Superscripts and Subscripts */
- /* 2070 */ _(X,X), _(X,X), _(X,X), _(X,X),_(SM,SM), _(X,X), _(X,X), _(X,X),
+ /* 2070 */ _(X,X), _(X,X), _(X,X), _(X,X),_(SP,SM), _(X,X), _(X,X), _(X,X),
/* 2078 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
- /* 2080 */ _(X,X), _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X),
+ /* 2080 */ _(X,X), _(X,X),_(SP,SM),_(SP,SM),_(SP,SM), _(X,X), _(X,X), _(X,X),
#define indic_offset_0x25f8u 1592
@@ -540,6 +542,7 @@
#undef _OT_Rf
#undef _OT_Rt
#undef _OT_SM
+#undef _OT_SP
#undef _OT_S
#undef _OT_V
#undef _OT_VA
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -68,6 +68,7 @@
#define myanmar_syllable_machine_ex_PT 39u
#define myanmar_syllable_machine_ex_Ra 15u
#define myanmar_syllable_machine_ex_SM 8u
+#define myanmar_syllable_machine_ex_SMPst 57u
#define myanmar_syllable_machine_ex_VAbv 20u
#define myanmar_syllable_machine_ex_VBlw 21u
#define myanmar_syllable_machine_ex_VPre 22u
@@ -77,35 +78,35 @@
#define myanmar_syllable_machine_ex_ZWNJ 5u
-#line 81 "hb-ot-shaper-myanmar-machine.hh"
+#line 82 "hb-ot-shaper-myanmar-machine.hh"
static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
- 1u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u,
- 5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u,
- 3u, 40u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 41u,
- 3u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u,
- 5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 41u, 3u, 39u,
- 3u, 39u, 3u, 40u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 39u, 3u, 41u, 3u, 41u,
- 3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 1u, 41u, 1u, 15u, 0
+ 1u, 57u, 3u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u,
+ 3u, 57u, 3u, 57u, 3u, 57u, 5u, 57u, 1u, 15u, 3u, 57u, 3u, 57u, 3u, 57u,
+ 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u,
+ 3u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 3u, 57u,
+ 3u, 57u, 3u, 57u, 5u, 57u, 1u, 15u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u,
+ 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u,
+ 3u, 57u, 3u, 57u, 3u, 57u, 1u, 57u, 1u, 15u, 0
};
static const char _myanmar_syllable_machine_key_spans[] = {
- 41, 39, 35, 4, 39, 37, 37, 35,
- 35, 37, 37, 39, 35, 15, 37, 37,
- 38, 37, 39, 39, 37, 39, 39, 39,
- 39, 39, 35, 4, 39, 37, 37, 35,
- 35, 37, 37, 39, 35, 15, 39, 37,
- 37, 38, 37, 39, 39, 37, 39, 39,
- 39, 39, 39, 39, 39, 41, 15
+ 57, 55, 53, 53, 55, 53, 55, 55,
+ 55, 55, 55, 53, 15, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 53, 53, 55, 53, 55, 55, 55,
+ 55, 55, 53, 15, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 57, 15
};
static const short _myanmar_syllable_machine_index_offsets[] = {
- 0, 42, 82, 118, 123, 163, 201, 239,
- 275, 311, 349, 387, 427, 463, 479, 517,
- 555, 594, 632, 672, 712, 750, 790, 830,
- 870, 910, 950, 986, 991, 1031, 1069, 1107,
- 1143, 1179, 1217, 1255, 1295, 1331, 1347, 1387,
- 1425, 1463, 1502, 1540, 1580, 1620, 1658, 1698,
- 1738, 1778, 1818, 1858, 1898, 1938, 1980
+ 0, 58, 114, 168, 222, 278, 332, 388,
+ 444, 500, 556, 612, 666, 682, 738, 794,
+ 850, 906, 962, 1018, 1074, 1130, 1186, 1242,
+ 1298, 1354, 1408, 1462, 1518, 1572, 1628, 1684,
+ 1740, 1796, 1852, 1906, 1922, 1978, 2034, 2090,
+ 2146, 2202, 2258, 2314, 2370, 2426, 2482, 2538,
+ 2594, 2650, 2706, 2762, 2820
};
static const char _myanmar_syllable_machine_indicies[] = {
@@ -114,273 +115,378 @@
0, 8, 0, 9, 10, 11, 12, 0,
0, 0, 0, 0, 0, 0, 0, 13,
0, 0, 14, 15, 16, 17, 18, 19,
- 20, 0, 22, 23, 24, 24, 21, 25,
- 26, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 27, 28, 29, 30, 21,
- 21, 21, 21, 21, 21, 21, 21, 31,
- 21, 21, 32, 33, 34, 35, 36, 37,
- 38, 21, 24, 24, 21, 25, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 30, 21, 21, 21,
- 21, 21, 21, 21, 21, 39, 21, 21,
- 21, 21, 21, 21, 36, 21, 24, 24,
- 21, 25, 21, 22, 21, 24, 24, 21,
- 25, 26, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 40, 21, 21, 30,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 41, 21, 21, 42, 21, 21, 21, 36,
- 21, 41, 21, 22, 21, 24, 24, 21,
- 25, 26, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 30,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 36,
- 21, 43, 21, 24, 24, 21, 25, 36,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 44, 21,
- 21, 21, 21, 21, 21, 36, 21, 24,
- 24, 21, 25, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 44, 21, 21, 21, 21, 21,
- 21, 36, 21, 24, 24, 21, 25, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 36, 21, 22,
- 21, 24, 24, 21, 25, 26, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 40, 21, 21, 30, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 36, 21, 22, 21, 24,
- 24, 21, 25, 26, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 40, 21,
- 21, 30, 21, 21, 21, 21, 21, 21,
- 21, 21, 41, 21, 21, 21, 21, 21,
- 21, 36, 21, 22, 21, 24, 24, 21,
- 25, 26, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 40, 21, 21, 30,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 41, 21, 21, 21, 21, 21, 21, 36,
- 21, 41, 21, 24, 24, 21, 25, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 30, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 36, 21, 1,
- 1, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 1, 21, 22,
- 21, 24, 24, 21, 25, 26, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 27, 28, 21, 30, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 36, 21, 22, 21, 24,
- 24, 21, 25, 26, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 28,
- 21, 30, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 36, 21, 22, 21, 24, 24, 21,
- 25, 26, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 27, 28, 29, 30,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 36,
- 45, 21, 22, 21, 24, 24, 21, 25,
- 26, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 27, 28, 29, 30, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 36, 21,
- 22, 21, 24, 24, 21, 25, 26, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 27, 28, 29, 30, 21, 21, 21,
- 21, 21, 21, 21, 21, 31, 21, 21,
- 32, 33, 34, 35, 36, 21, 38, 21,
- 22, 21, 24, 24, 21, 25, 26, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 27, 28, 29, 30, 21, 21, 21,
- 21, 21, 21, 21, 21, 45, 21, 21,
- 21, 21, 21, 21, 36, 21, 38, 21,
- 22, 21, 24, 24, 21, 25, 26, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 27, 28, 29, 30, 21, 21, 21,
- 21, 21, 21, 21, 21, 45, 21, 21,
- 21, 21, 21, 21, 36, 21, 22, 21,
- 24, 24, 21, 25, 26, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 27,
- 28, 29, 30, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 32, 21,
- 34, 21, 36, 21, 38, 21, 22, 21,
- 24, 24, 21, 25, 26, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 27,
- 28, 29, 30, 21, 21, 21, 21, 21,
- 21, 21, 21, 45, 21, 21, 32, 21,
- 21, 21, 36, 21, 38, 21, 22, 21,
- 24, 24, 21, 25, 26, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 27,
- 28, 29, 30, 21, 21, 21, 21, 21,
- 21, 21, 21, 46, 21, 21, 32, 33,
- 34, 21, 36, 21, 38, 21, 22, 21,
- 24, 24, 21, 25, 26, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 27,
- 28, 29, 30, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 32, 33,
- 34, 21, 36, 21, 38, 21, 22, 23,
- 24, 24, 21, 25, 26, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 27,
- 28, 29, 30, 21, 21, 21, 21, 21,
- 21, 21, 21, 31, 21, 21, 32, 33,
- 34, 35, 36, 21, 38, 21, 48, 48,
+ 20, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 0, 23, 24, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 32,
+ 22, 22, 33, 34, 35, 36, 37, 38,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 25, 25, 22, 26, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 31, 22, 22, 22,
+ 22, 22, 22, 22, 22, 40, 22, 22,
+ 22, 22, 22, 22, 37, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 26, 22,
+ 25, 25, 22, 26, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 37, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 26, 22, 41, 22,
+ 25, 25, 22, 26, 37, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 26, 22, 22, 22, 22,
+ 22, 22, 37, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 26, 22, 25, 25,
+ 22, 26, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 26, 22, 22, 22, 22, 22, 22,
+ 37, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 26, 22, 23, 22, 25, 25,
+ 22, 26, 27, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 42, 22, 22,
+ 31, 22, 22, 22, 22, 22, 22, 22,
+ 22, 43, 22, 22, 44, 22, 22, 22,
+ 37, 22, 43, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 26, 22, 23, 22, 25, 25,
+ 22, 26, 27, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 31, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 37, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 26, 22, 23, 22, 25, 25,
+ 22, 26, 27, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 42, 22, 22,
+ 31, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 37, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 26, 22, 23, 22, 25, 25,
+ 22, 26, 27, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 42, 22, 22,
+ 31, 22, 22, 22, 22, 22, 22, 22,
+ 22, 43, 22, 22, 22, 22, 22, 22,
+ 37, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 26, 22, 23, 22, 25, 25,
+ 22, 26, 27, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 42, 22, 22,
+ 31, 22, 22, 22, 22, 22, 22, 22,
+ 22, 43, 22, 22, 22, 22, 22, 22,
+ 37, 22, 43, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 26, 22, 25, 25, 22, 26,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 37, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 1, 1, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 1, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 22, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 37, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 29, 22, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 37, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 37, 45,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 37, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 32,
+ 22, 22, 33, 34, 35, 36, 37, 22,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 45,
+ 22, 22, 22, 22, 22, 22, 37, 22,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 45,
+ 22, 22, 22, 22, 22, 22, 37, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 33, 22, 35, 22, 37, 22,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 45,
+ 22, 22, 33, 22, 22, 22, 37, 22,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 46,
+ 22, 22, 33, 34, 35, 22, 37, 22,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 22, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 33, 34, 35, 22, 37, 22,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 24, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 32,
+ 22, 22, 33, 34, 35, 36, 37, 22,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 48, 48, 47, 5, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 12, 47, 47, 47,
+ 47, 47, 47, 47, 47, 49, 47, 47,
+ 47, 47, 47, 47, 18, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 5, 47,
+ 48, 48, 50, 5, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 18, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 5, 50, 51, 47,
+ 48, 48, 47, 5, 18, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 5, 47, 47, 47, 47,
+ 47, 47, 18, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 5, 47, 48, 48,
47, 5, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 5, 47, 47, 47, 47, 47, 47,
+ 18, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 5, 47, 2, 47, 48, 48,
+ 47, 5, 6, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 52, 47, 47,
12, 47, 47, 47, 47, 47, 47, 47,
- 47, 49, 47, 47, 47, 47, 47, 47,
- 18, 47, 48, 48, 47, 5, 47, 2,
- 47, 48, 48, 47, 5, 6, 47, 47,
+ 47, 53, 47, 47, 54, 47, 47, 47,
+ 18, 47, 53, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 50, 47, 47, 12, 47, 47, 47, 47,
- 47, 47, 47, 47, 51, 47, 47, 52,
- 47, 47, 47, 18, 47, 51, 47, 2,
- 47, 48, 48, 47, 5, 6, 47, 47,
+ 47, 47, 5, 47, 2, 47, 48, 48,
+ 47, 5, 6, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 12, 47, 47, 47, 47,
+ 12, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 18, 47, 53, 47, 48,
- 48, 47, 5, 18, 47, 47, 47, 47,
+ 18, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 5, 47, 2, 47, 48, 48,
+ 47, 5, 6, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 52, 47, 47,
+ 12, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 54, 47, 47, 47, 47, 47,
- 47, 18, 47, 48, 48, 47, 5, 47,
+ 18, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 5, 47, 2, 47, 48, 48,
+ 47, 5, 6, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 52, 47, 47,
+ 12, 47, 47, 47, 47, 47, 47, 47,
+ 47, 53, 47, 47, 47, 47, 47, 47,
+ 18, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 54, 47,
- 47, 47, 47, 47, 47, 18, 47, 48,
- 48, 47, 5, 47, 47, 47, 47, 47,
+ 47, 47, 5, 47, 2, 47, 48, 48,
+ 47, 5, 6, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 52, 47, 47,
+ 12, 47, 47, 47, 47, 47, 47, 47,
+ 47, 53, 47, 47, 47, 47, 47, 47,
+ 18, 47, 53, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 5, 47, 48, 48, 47, 5,
47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 12, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 18, 47, 2, 47, 48, 48, 47,
- 5, 6, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 50, 47, 47, 12,
+ 47, 47, 47, 47, 47, 47, 18, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 18,
- 47, 2, 47, 48, 48, 47, 5, 6,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 50, 47, 47, 12, 47, 47,
- 47, 47, 47, 47, 47, 47, 51, 47,
- 47, 47, 47, 47, 47, 18, 47, 2,
- 47, 48, 48, 47, 5, 6, 47, 47,
+ 5, 47, 55, 55, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 50, 47, 47, 12, 47, 47, 47, 47,
- 47, 47, 47, 47, 51, 47, 47, 47,
- 47, 47, 47, 18, 47, 51, 47, 48,
- 48, 47, 5, 47, 47, 47, 47, 47,
+ 55, 47, 2, 3, 48, 48, 47, 5,
+ 6, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 9, 10, 11, 12, 47,
+ 47, 47, 47, 47, 47, 47, 47, 13,
+ 47, 47, 14, 15, 16, 17, 18, 19,
+ 20, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 12, 47, 47, 47, 47, 47, 47,
+ 5, 47, 2, 47, 48, 48, 47, 5,
+ 6, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 9, 10, 47, 12, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 18, 47, 55, 55, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 18, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 55, 47, 2, 3, 48, 48, 47,
- 5, 6, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 9, 10, 11, 12,
47, 47, 47, 47, 47, 47, 47, 47,
- 13, 47, 47, 14, 15, 16, 17, 18,
- 19, 20, 47, 2, 47, 48, 48, 47,
- 5, 6, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 9, 10, 47, 12,
+ 5, 47, 2, 47, 48, 48, 47, 5,
+ 6, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 10, 47, 12, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 18,
- 47, 2, 47, 48, 48, 47, 5, 6,
+ 47, 47, 47, 47, 47, 47, 18, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 10, 47, 12, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 18, 47, 2,
- 47, 48, 48, 47, 5, 6, 47, 47,
+ 5, 47, 2, 47, 48, 48, 47, 5,
+ 6, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 9, 10, 11, 12, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 18, 56,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 18, 56, 47, 2, 47,
- 48, 48, 47, 5, 6, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 9,
- 10, 11, 12, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 18, 47, 2, 47, 48, 48,
- 47, 5, 6, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 9, 10, 11,
- 12, 47, 47, 47, 47, 47, 47, 47,
- 47, 13, 47, 47, 14, 15, 16, 17,
- 18, 47, 20, 47, 2, 47, 48, 48,
- 47, 5, 6, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 9, 10, 11,
- 12, 47, 47, 47, 47, 47, 47, 47,
- 47, 56, 47, 47, 47, 47, 47, 47,
- 18, 47, 20, 47, 2, 47, 48, 48,
- 47, 5, 6, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 9, 10, 11,
- 12, 47, 47, 47, 47, 47, 47, 47,
- 47, 56, 47, 47, 47, 47, 47, 47,
- 18, 47, 2, 47, 48, 48, 47, 5,
+ 5, 47, 2, 47, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 18, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 5, 47, 2, 47, 48, 48, 47, 5,
+ 6, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 9, 10, 11, 12, 47,
+ 47, 47, 47, 47, 47, 47, 47, 13,
+ 47, 47, 14, 15, 16, 17, 18, 47,
+ 20, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 5, 47, 2, 47, 48, 48, 47, 5,
+ 6, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 9, 10, 11, 12, 47,
+ 47, 47, 47, 47, 47, 47, 47, 56,
+ 47, 47, 47, 47, 47, 47, 18, 47,
+ 20, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 5, 47, 2, 47, 48, 48, 47, 5,
+ 6, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 9, 10, 11, 12, 47,
+ 47, 47, 47, 47, 47, 47, 47, 56,
+ 47, 47, 47, 47, 47, 47, 18, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 5, 47, 2, 47, 48, 48, 47, 5,
+ 6, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 9, 10, 11, 12, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 14, 47, 16, 47, 18, 47,
- 20, 47, 2, 47, 48, 48, 47, 5,
+ 20, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 5, 47, 2, 47, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 56,
47, 47, 14, 47, 47, 47, 18, 47,
- 20, 47, 2, 47, 48, 48, 47, 5,
+ 20, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 5, 47, 2, 47, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 57,
47, 47, 14, 15, 16, 47, 18, 47,
- 20, 47, 2, 47, 48, 48, 47, 5,
+ 20, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 5, 47, 2, 47, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 14, 15, 16, 47, 18, 47,
- 20, 47, 2, 3, 48, 48, 47, 5,
+ 20, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 5, 47, 2, 3, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 13,
47, 47, 14, 15, 16, 17, 18, 47,
- 20, 47, 22, 23, 24, 24, 21, 25,
- 26, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 27, 28, 29, 30, 21,
- 21, 21, 21, 21, 21, 21, 21, 58,
- 21, 21, 32, 33, 34, 35, 36, 37,
- 38, 21, 22, 59, 24, 24, 21, 25,
- 26, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 27, 28, 29, 30, 21,
- 21, 21, 21, 21, 21, 21, 21, 31,
- 21, 21, 32, 33, 34, 35, 36, 21,
- 38, 21, 1, 1, 2, 3, 48, 48,
+ 20, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 5, 47, 23, 24, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 58,
+ 22, 22, 33, 34, 35, 36, 37, 38,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 23, 59, 25, 25, 22, 26,
+ 27, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 28, 29, 30, 31, 22,
+ 22, 22, 22, 22, 22, 22, 22, 32,
+ 22, 22, 33, 34, 35, 36, 37, 22,
+ 39, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 26, 22, 1, 1, 2, 3, 48, 48,
47, 5, 6, 1, 1, 47, 47, 47,
1, 47, 47, 47, 47, 9, 10, 11,
12, 47, 47, 47, 47, 47, 47, 47,
47, 13, 47, 47, 14, 15, 16, 17,
- 18, 19, 20, 47, 1, 1, 60, 60,
+ 18, 19, 20, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 5, 47, 1, 1, 60, 60,
60, 60, 60, 60, 60, 1, 1, 60,
60, 60, 1, 60, 0
};
static const char _myanmar_syllable_machine_trans_targs[] = {
- 0, 1, 26, 37, 0, 27, 29, 51,
- 54, 39, 40, 41, 28, 43, 44, 46,
- 47, 48, 30, 50, 45, 0, 2, 13,
- 0, 3, 5, 14, 15, 16, 4, 18,
- 19, 21, 22, 23, 6, 25, 20, 12,
- 9, 10, 11, 7, 8, 17, 24, 0,
- 0, 36, 33, 34, 35, 31, 32, 38,
- 42, 49, 52, 53, 0
+ 0, 1, 25, 35, 0, 26, 30, 49,
+ 52, 37, 38, 39, 29, 41, 42, 44,
+ 45, 46, 27, 48, 43, 26, 0, 2,
+ 12, 0, 3, 7, 13, 14, 15, 6,
+ 17, 18, 20, 21, 22, 4, 24, 19,
+ 11, 5, 8, 9, 10, 16, 23, 0,
+ 0, 34, 0, 28, 31, 32, 33, 36,
+ 40, 47, 50, 51, 0
};
static const char _myanmar_syllable_machine_trans_actions[] = {
- 3, 0, 0, 0, 4, 0, 0, 0,
+ 3, 0, 0, 0, 4, 5, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 0, 0,
- 6, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 6, 7, 0,
+ 0, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7,
- 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9
+ 0, 0, 0, 0, 0, 0, 0, 9,
+ 10, 0, 11, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 12
};
static const char _myanmar_syllable_machine_to_state_actions[] = {
@@ -390,7 +496,7 @@
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0
};
static const char _myanmar_syllable_machine_from_state_actions[] = {
@@ -400,17 +506,17 @@
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0
};
static const short _myanmar_syllable_machine_eof_trans[] = {
- 0, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 48, 48, 48, 48, 48, 48,
+ 0, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 48, 51, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 22, 22, 48, 61
+ 48, 23, 23, 48, 61
};
static const int myanmar_syllable_machine_start = 0;
@@ -424,7 +530,7 @@
-#line 117 "hb-ot-shaper-myanmar-machine.rl"
+#line 118 "hb-ot-shaper-myanmar-machine.rl"
#define found_syllable(syllable_type) \
@@ -443,7 +549,7 @@
int cs;
hb_glyph_info_t *info = buffer->info;
-#line 447 "hb-ot-shaper-myanmar-machine.hh"
+#line 553 "hb-ot-shaper-myanmar-machine.hh"
{
cs = myanmar_syllable_machine_start;
ts = 0;
@@ -451,7 +557,7 @@
act = 0;
}
-#line 137 "hb-ot-shaper-myanmar-machine.rl"
+#line 138 "hb-ot-shaper-myanmar-machine.rl"
p = 0;
@@ -459,7 +565,7 @@
unsigned int syllable_serial = 1;
-#line 463 "hb-ot-shaper-myanmar-machine.hh"
+#line 569 "hb-ot-shaper-myanmar-machine.hh"
{
int _slen;
int _trans;
@@ -473,7 +579,7 @@
#line 1 "NONE"
{ts = p;}
break;
-#line 477 "hb-ot-shaper-myanmar-machine.hh"
+#line 583 "hb-ot-shaper-myanmar-machine.hh"
}
_keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
@@ -491,36 +597,60 @@
goto _again;
switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
- case 6:
-#line 110 "hb-ot-shaper-myanmar-machine.rl"
+ case 8:
+#line 111 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
break;
case 4:
-#line 111 "hb-ot-shaper-myanmar-machine.rl"
+#line 112 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
- case 8:
-#line 112 "hb-ot-shaper-myanmar-machine.rl"
+ case 10:
+#line 113 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
case 3:
-#line 113 "hb-ot-shaper-myanmar-machine.rl"
+#line 114 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
- case 5:
-#line 110 "hb-ot-shaper-myanmar-machine.rl"
+ case 7:
+#line 111 "hb-ot-shaper-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
break;
- case 7:
-#line 112 "hb-ot-shaper-myanmar-machine.rl"
+ case 9:
+#line 113 "hb-ot-shaper-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
- case 9:
-#line 113 "hb-ot-shaper-myanmar-machine.rl"
+ case 12:
+#line 114 "hb-ot-shaper-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
-#line 523 "hb-ot-shaper-myanmar-machine.hh"
+ case 11:
+#line 1 "NONE"
+ { switch( act ) {
+ case 2:
+ {{p = ((te))-1;} found_syllable (myanmar_non_myanmar_cluster); }
+ break;
+ case 3:
+ {{p = ((te))-1;} found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }
+ break;
}
+ }
+ break;
+ case 6:
+#line 1 "NONE"
+ {te = p+1;}
+#line 112 "hb-ot-shaper-myanmar-machine.rl"
+ {act = 2;}
+ break;
+ case 5:
+#line 1 "NONE"
+ {te = p+1;}
+#line 113 "hb-ot-shaper-myanmar-machine.rl"
+ {act = 3;}
+ break;
+#line 653 "hb-ot-shaper-myanmar-machine.hh"
+ }
_again:
switch ( _myanmar_syllable_machine_to_state_actions[cs] ) {
@@ -528,7 +658,7 @@
#line 1 "NONE"
{ts = 0;}
break;
-#line 532 "hb-ot-shaper-myanmar-machine.hh"
+#line 662 "hb-ot-shaper-myanmar-machine.hh"
}
if ( ++p != pe )
@@ -544,7 +674,7 @@
}
-#line 145 "hb-ot-shaper-myanmar-machine.rl"
+#line 146 "hb-ot-shaper-myanmar-machine.rl"
}
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.rl
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.rl 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.rl 2025-01-11 23:22:13 UTC (rev 73427)
@@ -72,6 +72,7 @@
export A = 9;
export Ra = 15;
export CS = 18;
+export SMPst= 57;
export VAbv = 20;
export VBlw = 21;
@@ -91,15 +92,15 @@
j = ZWJ|ZWNJ; # Joiners
k = (Ra As H); # Kinzi
-
+sm = SM | SMPst;
c = C|Ra; # is_consonant
medial_group = MY? As? MR? ((MW MH? ML? | MH ML? | ML) As?)?;
main_vowel_group = (VPre.VS?)* VAbv* VBlw* A* (DB As?)?;
post_vowel_group = VPst MH? ML? As* VAbv* A* (DB As?)?;
-pwo_tone_group = PT A* DB? As?;
+tone_group = sm | PT A* DB? As?;
-complex_syllable_tail = As* medial_group main_vowel_group post_vowel_group* pwo_tone_group* SM* j?;
+complex_syllable_tail = As* medial_group main_vowel_group post_vowel_group* tone_group* j?;
syllable_tail = (H (c|IV).VS?)* (H | complex_syllable_tail);
consonant_syllable = (k|CS)? (c|IV|GB|DOTTEDCIRCLE).VS? syllable_tail;
@@ -108,7 +109,7 @@
main := |*
consonant_syllable => { found_syllable (myanmar_consonant_syllable); };
- j => { found_syllable (myanmar_non_myanmar_cluster); };
+ j | SMPst => { found_syllable (myanmar_non_myanmar_cluster); };
broken_cluster => { found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; };
other => { found_syllable (myanmar_non_myanmar_cluster); };
*|;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-use-machine.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-use-machine.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-use-machine.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -166,556 +166,556 @@
19, 20, 21, 8, 22, 23, 24, 25,
5, 26, 27, 28, 5, 29, 30, 31,
32, 33, 34, 35, 32, 1, 5, 36,
- 5, 37, 5, 5, 35, 5, 39, 40,
- 38, 41, 38, 38, 38, 38, 38, 38,
- 38, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 39, 51, 52, 53, 54, 38,
- 55, 56, 57, 38, 58, 59, 38, 60,
- 61, 62, 63, 60, 38, 38, 38, 38,
- 64, 38, 38, 63, 38, 39, 40, 38,
- 41, 38, 38, 38, 38, 38, 38, 38,
- 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 39, 51, 52, 53, 54, 38, 55,
- 56, 57, 38, 38, 38, 38, 60, 61,
- 62, 63, 60, 38, 38, 38, 38, 64,
- 38, 38, 63, 38, 39, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 41, 38, 38, 38, 38, 38, 38,
- 38, 38, 43, 44, 45, 46, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 55, 56, 57, 38, 38, 38, 38, 38,
- 61, 62, 63, 65, 38, 38, 38, 38,
- 43, 38, 41, 38, 38, 38, 38, 38,
- 38, 38, 38, 43, 44, 45, 46, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 55, 56, 57, 38, 38, 38, 38,
- 38, 61, 62, 63, 65, 38, 41, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 44, 45, 46, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 61, 62, 63,
- 38, 41, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 45, 46, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 61, 62, 63, 38, 41, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 46, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 61, 62, 63, 38, 41,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 61, 62,
- 38, 41, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 62, 38, 41, 38, 41, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 44,
- 45, 46, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 55, 56, 57, 38,
- 38, 38, 38, 38, 61, 62, 63, 65,
- 38, 41, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 44, 45, 46, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 56, 57, 38, 38, 38, 38, 38,
- 61, 62, 63, 65, 38, 41, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 44,
- 45, 46, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 57, 38,
- 38, 38, 38, 38, 61, 62, 63, 65,
- 38, 66, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 41, 38,
- 41, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 44, 45, 46, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 61,
- 62, 63, 65, 38, 41, 38, 38, 38,
- 38, 38, 38, 38, 42, 43, 44, 45,
- 46, 38, 38, 38, 38, 38, 38, 52,
- 53, 54, 38, 55, 56, 57, 38, 38,
- 38, 38, 38, 61, 62, 63, 65, 38,
- 38, 38, 38, 43, 38, 41, 38, 38,
- 38, 38, 38, 38, 38, 38, 43, 44,
- 45, 46, 38, 38, 38, 38, 38, 38,
- 52, 53, 54, 38, 55, 56, 57, 38,
- 38, 38, 38, 38, 61, 62, 63, 65,
- 38, 38, 38, 38, 43, 38, 41, 38,
- 38, 38, 38, 38, 38, 38, 38, 43,
- 44, 45, 46, 38, 38, 38, 38, 38,
- 38, 38, 53, 54, 38, 55, 56, 57,
- 38, 38, 38, 38, 38, 61, 62, 63,
- 65, 38, 38, 38, 38, 43, 38, 41,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 43, 44, 45, 46, 38, 38, 38, 38,
- 38, 38, 38, 38, 54, 38, 55, 56,
- 57, 38, 38, 38, 38, 38, 61, 62,
- 63, 65, 38, 38, 38, 38, 43, 38,
- 67, 38, 41, 38, 38, 38, 38, 38,
- 38, 38, 42, 43, 44, 45, 46, 38,
- 48, 49, 38, 38, 38, 52, 53, 54,
- 38, 55, 56, 57, 38, 38, 38, 38,
- 38, 61, 62, 63, 65, 38, 38, 38,
- 38, 43, 38, 41, 38, 38, 38, 38,
- 38, 38, 38, 38, 43, 44, 45, 46,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 55, 56, 57, 38, 38, 38,
- 38, 38, 61, 62, 63, 65, 38, 38,
- 38, 38, 43, 38, 67, 38, 41, 38,
- 38, 38, 38, 38, 38, 38, 42, 43,
- 44, 45, 46, 38, 38, 49, 38, 38,
- 38, 52, 53, 54, 38, 55, 56, 57,
- 38, 38, 38, 38, 38, 61, 62, 63,
- 65, 38, 38, 38, 38, 43, 38, 67,
- 38, 41, 38, 38, 38, 38, 38, 38,
- 38, 42, 43, 44, 45, 46, 38, 38,
- 38, 38, 38, 38, 52, 53, 54, 38,
- 55, 56, 57, 38, 38, 38, 38, 38,
- 61, 62, 63, 65, 38, 38, 38, 38,
- 43, 38, 67, 38, 41, 38, 38, 38,
- 38, 38, 38, 38, 42, 43, 44, 45,
- 46, 47, 48, 49, 38, 38, 38, 52,
- 53, 54, 38, 55, 56, 57, 38, 38,
- 38, 38, 38, 61, 62, 63, 65, 38,
- 38, 38, 38, 43, 38, 39, 40, 38,
- 41, 38, 38, 38, 38, 38, 38, 38,
- 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 38, 51, 52, 53, 54, 38, 55,
- 56, 57, 38, 38, 38, 38, 60, 61,
- 62, 63, 60, 38, 38, 38, 38, 64,
- 38, 38, 63, 38, 39, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 41, 38, 39, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 41, 38, 38, 38, 38, 38, 38, 38,
- 38, 43, 44, 45, 46, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 55,
- 56, 57, 38, 38, 38, 38, 38, 61,
- 62, 63, 65, 38, 41, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 58,
- 59, 38, 41, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 59, 38,
- 4, 69, 68, 70, 68, 68, 68, 68,
- 68, 68, 68, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 4, 80, 81, 82,
- 83, 68, 84, 85, 86, 68, 68, 68,
- 68, 87, 88, 89, 90, 91, 68, 68,
- 68, 68, 92, 68, 68, 93, 68, 4,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 70, 68, 68, 68,
- 68, 68, 68, 68, 68, 72, 73, 74,
- 75, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 84, 85, 86, 68, 68,
- 68, 68, 68, 88, 89, 90, 94, 68,
- 68, 68, 68, 72, 68, 70, 68, 68,
- 68, 68, 68, 68, 68, 68, 72, 73,
- 74, 75, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 84, 85, 86, 68,
- 68, 68, 68, 68, 88, 89, 90, 94,
- 68, 70, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 73, 74, 75, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 88, 89, 90, 68, 70, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 74,
- 75, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 88, 89, 90, 68, 70,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 75, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 88, 89,
- 90, 68, 70, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 88, 89, 68, 70, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 89, 68, 70, 68,
- 70, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 73, 74, 75, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 84,
- 85, 86, 68, 68, 68, 68, 68, 88,
- 89, 90, 94, 68, 70, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 73, 74,
- 75, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 85, 86, 68, 68,
- 68, 68, 68, 88, 89, 90, 94, 68,
- 70, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 73, 74, 75, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 86, 68, 68, 68, 68, 68, 88,
- 89, 90, 94, 68, 96, 95, 95, 95,
- 95, 95, 95, 95, 95, 95, 95, 95,
- 95, 97, 95, 70, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 73, 74, 75,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 88, 89, 90, 94, 68, 70,
- 68, 68, 68, 68, 68, 68, 68, 71,
- 72, 73, 74, 75, 68, 68, 68, 68,
- 68, 68, 81, 82, 83, 68, 84, 85,
- 86, 68, 68, 68, 68, 68, 88, 89,
- 90, 94, 68, 68, 68, 68, 72, 68,
- 70, 68, 68, 68, 68, 68, 68, 68,
- 68, 72, 73, 74, 75, 68, 68, 68,
- 68, 68, 68, 81, 82, 83, 68, 84,
- 85, 86, 68, 68, 68, 68, 68, 88,
- 89, 90, 94, 68, 68, 68, 68, 72,
- 68, 70, 68, 68, 68, 68, 68, 68,
- 68, 68, 72, 73, 74, 75, 68, 68,
- 68, 68, 68, 68, 68, 82, 83, 68,
- 84, 85, 86, 68, 68, 68, 68, 68,
- 88, 89, 90, 94, 68, 68, 68, 68,
- 72, 68, 70, 68, 68, 68, 68, 68,
- 68, 68, 68, 72, 73, 74, 75, 68,
- 68, 68, 68, 68, 68, 68, 68, 83,
- 68, 84, 85, 86, 68, 68, 68, 68,
- 68, 88, 89, 90, 94, 68, 68, 68,
- 68, 72, 68, 98, 68, 70, 68, 68,
- 68, 68, 68, 68, 68, 71, 72, 73,
- 74, 75, 68, 77, 78, 68, 68, 68,
- 81, 82, 83, 68, 84, 85, 86, 68,
- 68, 68, 68, 68, 88, 89, 90, 94,
- 68, 68, 68, 68, 72, 68, 70, 68,
- 68, 68, 68, 68, 68, 68, 68, 72,
- 73, 74, 75, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 84, 85, 86,
- 68, 68, 68, 68, 68, 88, 89, 90,
- 94, 68, 68, 68, 68, 72, 68, 98,
- 68, 70, 68, 68, 68, 68, 68, 68,
- 68, 71, 72, 73, 74, 75, 68, 68,
- 78, 68, 68, 68, 81, 82, 83, 68,
- 84, 85, 86, 68, 68, 68, 68, 68,
- 88, 89, 90, 94, 68, 68, 68, 68,
- 72, 68, 98, 68, 70, 68, 68, 68,
- 68, 68, 68, 68, 71, 72, 73, 74,
- 75, 68, 68, 68, 68, 68, 68, 81,
- 82, 83, 68, 84, 85, 86, 68, 68,
- 68, 68, 68, 88, 89, 90, 94, 68,
- 68, 68, 68, 72, 68, 98, 68, 70,
- 68, 68, 68, 68, 68, 68, 68, 71,
- 72, 73, 74, 75, 76, 77, 78, 68,
- 68, 68, 81, 82, 83, 68, 84, 85,
- 86, 68, 68, 68, 68, 68, 88, 89,
- 90, 94, 68, 68, 68, 68, 72, 68,
- 4, 69, 68, 70, 68, 68, 68, 68,
- 68, 68, 68, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 68, 80, 81, 82,
- 83, 68, 84, 85, 86, 68, 68, 68,
- 68, 87, 88, 89, 90, 91, 68, 68,
- 68, 68, 92, 68, 68, 93, 68, 4,
- 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 100, 99, 4, 95,
- 95, 95, 95, 95, 95, 95, 95, 95,
- 95, 95, 95, 97, 95, 4, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 70, 68, 68, 68, 68, 68,
- 68, 68, 68, 72, 73, 74, 75, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 84, 85, 86, 68, 68, 68, 68,
- 68, 88, 89, 90, 94, 68, 100, 99,
- 102, 103, 101, 6, 104, 104, 104, 104,
- 104, 104, 104, 104, 104, 105, 104, 106,
- 107, 68, 70, 68, 68, 68, 68, 68,
- 68, 68, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 106, 117, 118, 119, 120,
- 68, 121, 122, 123, 68, 58, 59, 68,
- 124, 125, 126, 127, 128, 68, 68, 68,
- 68, 129, 68, 68, 130, 68, 106, 107,
- 68, 70, 68, 68, 68, 68, 68, 68,
- 68, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 106, 117, 118, 119, 120, 68,
- 121, 122, 123, 68, 68, 68, 68, 124,
- 125, 126, 127, 128, 68, 68, 68, 68,
- 129, 68, 68, 130, 68, 106, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 70, 68, 68, 68, 68, 68,
- 68, 68, 68, 109, 110, 111, 112, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 121, 122, 123, 68, 68, 68, 68,
- 68, 125, 126, 127, 131, 68, 68, 68,
- 68, 109, 68, 70, 68, 68, 68, 68,
- 68, 68, 68, 68, 109, 110, 111, 112,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 121, 122, 123, 68, 68, 68,
- 68, 68, 125, 126, 127, 131, 68, 70,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 110, 111, 112, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 125, 126,
- 127, 68, 70, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 111, 112, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 125, 126, 127, 68, 70, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 112, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 125, 126, 127, 68,
- 70, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 125,
- 126, 68, 70, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 126, 68, 70, 68, 70, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 110, 111, 112, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 121, 122, 123,
- 68, 68, 68, 68, 68, 125, 126, 127,
- 131, 68, 70, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 110, 111, 112, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 122, 123, 68, 68, 68, 68,
- 68, 125, 126, 127, 131, 68, 70, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 110, 111, 112, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 123,
- 68, 68, 68, 68, 68, 125, 126, 127,
- 131, 68, 132, 95, 95, 95, 95, 95,
- 95, 95, 95, 95, 95, 95, 95, 97,
- 95, 70, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 110, 111, 112, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 125, 126, 127, 131, 68, 70, 68, 68,
- 68, 68, 68, 68, 68, 108, 109, 110,
- 111, 112, 68, 68, 68, 68, 68, 68,
- 118, 119, 120, 68, 121, 122, 123, 68,
- 68, 68, 68, 68, 125, 126, 127, 131,
- 68, 68, 68, 68, 109, 68, 70, 68,
- 68, 68, 68, 68, 68, 68, 68, 109,
- 110, 111, 112, 68, 68, 68, 68, 68,
- 68, 118, 119, 120, 68, 121, 122, 123,
- 68, 68, 68, 68, 68, 125, 126, 127,
- 131, 68, 68, 68, 68, 109, 68, 70,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 109, 110, 111, 112, 68, 68, 68, 68,
- 68, 68, 68, 119, 120, 68, 121, 122,
- 123, 68, 68, 68, 68, 68, 125, 126,
- 127, 131, 68, 68, 68, 68, 109, 68,
- 70, 68, 68, 68, 68, 68, 68, 68,
- 68, 109, 110, 111, 112, 68, 68, 68,
- 68, 68, 68, 68, 68, 120, 68, 121,
- 122, 123, 68, 68, 68, 68, 68, 125,
- 126, 127, 131, 68, 68, 68, 68, 109,
- 68, 133, 68, 70, 68, 68, 68, 68,
- 68, 68, 68, 108, 109, 110, 111, 112,
- 68, 114, 115, 68, 68, 68, 118, 119,
- 120, 68, 121, 122, 123, 68, 68, 68,
- 68, 68, 125, 126, 127, 131, 68, 68,
- 68, 68, 109, 68, 70, 68, 68, 68,
- 68, 68, 68, 68, 68, 109, 110, 111,
- 112, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 121, 122, 123, 68, 68,
- 68, 68, 68, 125, 126, 127, 131, 68,
- 68, 68, 68, 109, 68, 133, 68, 70,
- 68, 68, 68, 68, 68, 68, 68, 108,
- 109, 110, 111, 112, 68, 68, 115, 68,
- 68, 68, 118, 119, 120, 68, 121, 122,
- 123, 68, 68, 68, 68, 68, 125, 126,
- 127, 131, 68, 68, 68, 68, 109, 68,
- 133, 68, 70, 68, 68, 68, 68, 68,
- 68, 68, 108, 109, 110, 111, 112, 68,
- 68, 68, 68, 68, 68, 118, 119, 120,
- 68, 121, 122, 123, 68, 68, 68, 68,
- 68, 125, 126, 127, 131, 68, 68, 68,
- 68, 109, 68, 133, 68, 70, 68, 68,
- 68, 68, 68, 68, 68, 108, 109, 110,
- 111, 112, 113, 114, 115, 68, 68, 68,
- 118, 119, 120, 68, 121, 122, 123, 68,
- 68, 68, 68, 68, 125, 126, 127, 131,
- 68, 68, 68, 68, 109, 68, 106, 107,
- 68, 70, 68, 68, 68, 68, 68, 68,
- 68, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 68, 117, 118, 119, 120, 68,
- 121, 122, 123, 68, 68, 68, 68, 124,
- 125, 126, 127, 128, 68, 68, 68, 68,
- 129, 68, 68, 130, 68, 106, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 100, 99, 106, 95, 95, 95,
- 95, 95, 95, 95, 95, 95, 95, 95,
- 95, 97, 95, 106, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68,
- 70, 68, 68, 68, 68, 68, 68, 68,
- 68, 109, 110, 111, 112, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 121,
- 122, 123, 68, 68, 68, 68, 68, 125,
- 126, 127, 131, 68, 100, 99, 8, 9,
- 134, 11, 134, 134, 134, 134, 134, 134,
- 134, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 8, 22, 23, 24, 25, 134,
- 26, 27, 28, 134, 134, 134, 134, 32,
- 33, 34, 35, 32, 134, 134, 134, 134,
- 37, 134, 134, 35, 134, 8, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 11, 134, 134, 134, 134, 134,
- 134, 134, 134, 14, 15, 16, 17, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 26, 27, 28, 134, 134, 134, 134,
- 134, 33, 34, 35, 135, 134, 134, 134,
- 134, 14, 134, 11, 134, 134, 134, 134,
- 134, 134, 134, 134, 14, 15, 16, 17,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 26, 27, 28, 134, 134, 134,
- 134, 134, 33, 34, 35, 135, 134, 11,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 15, 16, 17, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 33, 34,
- 35, 134, 11, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 16, 17, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 33, 34, 35, 134, 11, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 17, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 33, 34, 35, 134,
- 11, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 33,
- 34, 134, 11, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 34, 134, 11, 134, 11, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 15, 16, 17, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 26, 27, 28,
- 134, 134, 134, 134, 134, 33, 34, 35,
- 135, 134, 11, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 15, 16, 17, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 27, 28, 134, 134, 134, 134,
- 134, 33, 34, 35, 135, 134, 11, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 15, 16, 17, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 28,
- 134, 134, 134, 134, 134, 33, 34, 35,
- 135, 134, 136, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 11,
- 134, 11, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 15, 16, 17, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 33, 34, 35, 135, 134, 11, 134, 134,
- 134, 134, 134, 134, 134, 13, 14, 15,
- 16, 17, 134, 134, 134, 134, 134, 134,
- 23, 24, 25, 134, 26, 27, 28, 134,
- 134, 134, 134, 134, 33, 34, 35, 135,
- 134, 134, 134, 134, 14, 134, 11, 134,
- 134, 134, 134, 134, 134, 134, 134, 14,
- 15, 16, 17, 134, 134, 134, 134, 134,
- 134, 23, 24, 25, 134, 26, 27, 28,
- 134, 134, 134, 134, 134, 33, 34, 35,
- 135, 134, 134, 134, 134, 14, 134, 11,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 14, 15, 16, 17, 134, 134, 134, 134,
- 134, 134, 134, 24, 25, 134, 26, 27,
- 28, 134, 134, 134, 134, 134, 33, 34,
- 35, 135, 134, 134, 134, 134, 14, 134,
- 11, 134, 134, 134, 134, 134, 134, 134,
- 134, 14, 15, 16, 17, 134, 134, 134,
- 134, 134, 134, 134, 134, 25, 134, 26,
- 27, 28, 134, 134, 134, 134, 134, 33,
- 34, 35, 135, 134, 134, 134, 134, 14,
- 134, 137, 134, 11, 134, 134, 134, 134,
- 134, 134, 134, 13, 14, 15, 16, 17,
- 134, 19, 20, 134, 134, 134, 23, 24,
- 25, 134, 26, 27, 28, 134, 134, 134,
- 134, 134, 33, 34, 35, 135, 134, 134,
- 134, 134, 14, 134, 11, 134, 134, 134,
- 134, 134, 134, 134, 134, 14, 15, 16,
- 17, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 26, 27, 28, 134, 134,
- 134, 134, 134, 33, 34, 35, 135, 134,
- 134, 134, 134, 14, 134, 137, 134, 11,
- 134, 134, 134, 134, 134, 134, 134, 13,
- 14, 15, 16, 17, 134, 134, 20, 134,
- 134, 134, 23, 24, 25, 134, 26, 27,
- 28, 134, 134, 134, 134, 134, 33, 34,
- 35, 135, 134, 134, 134, 134, 14, 134,
- 137, 134, 11, 134, 134, 134, 134, 134,
- 134, 134, 13, 14, 15, 16, 17, 134,
- 134, 134, 134, 134, 134, 23, 24, 25,
- 134, 26, 27, 28, 134, 134, 134, 134,
- 134, 33, 34, 35, 135, 134, 134, 134,
- 134, 14, 134, 137, 134, 11, 134, 134,
- 134, 134, 134, 134, 134, 13, 14, 15,
- 16, 17, 18, 19, 20, 134, 134, 134,
- 23, 24, 25, 134, 26, 27, 28, 134,
- 134, 134, 134, 134, 33, 34, 35, 135,
- 134, 134, 134, 134, 14, 134, 8, 9,
- 134, 11, 134, 134, 134, 134, 134, 134,
- 134, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 134, 22, 23, 24, 25, 134,
- 26, 27, 28, 134, 134, 134, 134, 32,
- 33, 34, 35, 32, 134, 134, 134, 134,
- 37, 134, 134, 35, 134, 8, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 11, 134, 8, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 11, 134, 134, 134, 134, 134, 134,
- 134, 134, 14, 15, 16, 17, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 26, 27, 28, 134, 134, 134, 134, 134,
- 33, 34, 35, 135, 134, 138, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 11,
- 134, 10, 11, 134, 4, 134, 134, 134,
- 4, 134, 134, 134, 134, 134, 8, 9,
- 10, 11, 134, 134, 134, 134, 134, 134,
- 134, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 8, 22, 23, 24, 25, 134,
- 26, 27, 28, 134, 29, 30, 134, 32,
- 33, 34, 35, 32, 134, 134, 134, 134,
- 37, 134, 134, 35, 134, 11, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 29, 30, 134, 11, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 30,
- 134, 4, 139, 139, 139, 4, 139, 141,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 142, 140, 143, 140, 143,
- 144, 140, 141, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 1, 142, 142,
- 140, 141, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 142, 140, 143,
- 140, 141, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 142, 140, 143,
- 140, 143, 140, 39, 40, 38, 41, 38,
- 38, 38, 38, 38, 38, 38, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 39,
- 51, 52, 53, 54, 38, 55, 56, 57,
- 38, 58, 59, 38, 60, 61, 62, 63,
- 60, 1, 38, 2, 38, 64, 38, 38,
- 63, 38, 0
+ 5, 37, 5, 5, 38, 5, 40, 41,
+ 39, 42, 39, 39, 39, 39, 39, 39,
+ 39, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 40, 52, 53, 54, 55, 39,
+ 56, 57, 58, 39, 59, 60, 39, 61,
+ 62, 63, 64, 61, 39, 39, 39, 39,
+ 65, 39, 39, 64, 39, 40, 41, 39,
+ 42, 39, 39, 39, 39, 39, 39, 39,
+ 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 40, 52, 53, 54, 55, 39, 56,
+ 57, 58, 39, 39, 39, 39, 61, 62,
+ 63, 64, 61, 39, 39, 39, 39, 65,
+ 39, 39, 64, 39, 40, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 42, 39, 39, 39, 39, 39, 39,
+ 39, 39, 44, 45, 46, 47, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 56, 57, 58, 39, 39, 39, 39, 39,
+ 62, 63, 64, 66, 39, 39, 39, 39,
+ 44, 39, 42, 39, 39, 39, 39, 39,
+ 39, 39, 39, 44, 45, 46, 47, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 56, 57, 58, 39, 39, 39, 39,
+ 39, 62, 63, 64, 66, 39, 42, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 45, 46, 47, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 62, 63, 64,
+ 39, 42, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 46, 47, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 62, 63, 64, 39, 42, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 47, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 62, 63, 64, 39, 42,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 62, 63,
+ 39, 42, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 63, 39, 42, 39, 42, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 45,
+ 46, 47, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 56, 57, 58, 39,
+ 39, 39, 39, 39, 62, 63, 64, 66,
+ 39, 42, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 45, 46, 47, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 57, 58, 39, 39, 39, 39, 39,
+ 62, 63, 64, 66, 39, 42, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 45,
+ 46, 47, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 58, 39,
+ 39, 39, 39, 39, 62, 63, 64, 66,
+ 39, 67, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 42, 39,
+ 42, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 45, 46, 47, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 62,
+ 63, 64, 66, 39, 42, 39, 39, 39,
+ 39, 39, 39, 39, 43, 44, 45, 46,
+ 47, 39, 39, 39, 39, 39, 39, 53,
+ 54, 55, 39, 56, 57, 58, 39, 39,
+ 39, 39, 39, 62, 63, 64, 66, 39,
+ 39, 39, 39, 44, 39, 42, 39, 39,
+ 39, 39, 39, 39, 39, 39, 44, 45,
+ 46, 47, 39, 39, 39, 39, 39, 39,
+ 53, 54, 55, 39, 56, 57, 58, 39,
+ 39, 39, 39, 39, 62, 63, 64, 66,
+ 39, 39, 39, 39, 44, 39, 42, 39,
+ 39, 39, 39, 39, 39, 39, 39, 44,
+ 45, 46, 47, 39, 39, 39, 39, 39,
+ 39, 39, 54, 55, 39, 56, 57, 58,
+ 39, 39, 39, 39, 39, 62, 63, 64,
+ 66, 39, 39, 39, 39, 44, 39, 42,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 44, 45, 46, 47, 39, 39, 39, 39,
+ 39, 39, 39, 39, 55, 39, 56, 57,
+ 58, 39, 39, 39, 39, 39, 62, 63,
+ 64, 66, 39, 39, 39, 39, 44, 39,
+ 68, 39, 42, 39, 39, 39, 39, 39,
+ 39, 39, 43, 44, 45, 46, 47, 39,
+ 49, 50, 39, 39, 39, 53, 54, 55,
+ 39, 56, 57, 58, 39, 39, 39, 39,
+ 39, 62, 63, 64, 66, 39, 39, 39,
+ 39, 44, 39, 42, 39, 39, 39, 39,
+ 39, 39, 39, 39, 44, 45, 46, 47,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 56, 57, 58, 39, 39, 39,
+ 39, 39, 62, 63, 64, 66, 39, 39,
+ 39, 39, 44, 39, 68, 39, 42, 39,
+ 39, 39, 39, 39, 39, 39, 43, 44,
+ 45, 46, 47, 39, 39, 50, 39, 39,
+ 39, 53, 54, 55, 39, 56, 57, 58,
+ 39, 39, 39, 39, 39, 62, 63, 64,
+ 66, 39, 39, 39, 39, 44, 39, 68,
+ 39, 42, 39, 39, 39, 39, 39, 39,
+ 39, 43, 44, 45, 46, 47, 39, 39,
+ 39, 39, 39, 39, 53, 54, 55, 39,
+ 56, 57, 58, 39, 39, 39, 39, 39,
+ 62, 63, 64, 66, 39, 39, 39, 39,
+ 44, 39, 68, 39, 42, 39, 39, 39,
+ 39, 39, 39, 39, 43, 44, 45, 46,
+ 47, 48, 49, 50, 39, 39, 39, 53,
+ 54, 55, 39, 56, 57, 58, 39, 39,
+ 39, 39, 39, 62, 63, 64, 66, 39,
+ 39, 39, 39, 44, 39, 40, 41, 39,
+ 42, 39, 39, 39, 39, 39, 39, 39,
+ 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 39, 52, 53, 54, 55, 39, 56,
+ 57, 58, 39, 39, 39, 39, 61, 62,
+ 63, 64, 61, 39, 39, 39, 39, 65,
+ 39, 39, 64, 39, 40, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 42, 39, 40, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 42, 39, 39, 39, 39, 39, 39, 39,
+ 39, 44, 45, 46, 47, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 56,
+ 57, 58, 39, 39, 39, 39, 39, 62,
+ 63, 64, 66, 39, 42, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 59,
+ 60, 39, 42, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 60, 39,
+ 4, 70, 69, 71, 69, 69, 69, 69,
+ 69, 69, 69, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 4, 81, 82, 83,
+ 84, 69, 85, 86, 87, 69, 69, 69,
+ 69, 88, 89, 90, 91, 92, 69, 69,
+ 69, 69, 93, 69, 69, 94, 69, 4,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 71, 69, 69, 69,
+ 69, 69, 69, 69, 69, 73, 74, 75,
+ 76, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 85, 86, 87, 69, 69,
+ 69, 69, 69, 89, 90, 91, 95, 69,
+ 69, 69, 69, 73, 69, 71, 69, 69,
+ 69, 69, 69, 69, 69, 69, 73, 74,
+ 75, 76, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 85, 86, 87, 69,
+ 69, 69, 69, 69, 89, 90, 91, 95,
+ 69, 71, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 74, 75, 76, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 89, 90, 91, 69, 71, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 75,
+ 76, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 89, 90, 91, 69, 71,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 76, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 89, 90,
+ 91, 69, 71, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 89, 90, 69, 71, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 90, 69, 71, 69,
+ 71, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 74, 75, 76, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 85,
+ 86, 87, 69, 69, 69, 69, 69, 89,
+ 90, 91, 95, 69, 71, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 74, 75,
+ 76, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 86, 87, 69, 69,
+ 69, 69, 69, 89, 90, 91, 95, 69,
+ 71, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 74, 75, 76, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 87, 69, 69, 69, 69, 69, 89,
+ 90, 91, 95, 69, 97, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 98, 96, 71, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 74, 75, 76,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 89, 90, 91, 95, 69, 71,
+ 69, 69, 69, 69, 69, 69, 69, 72,
+ 73, 74, 75, 76, 69, 69, 69, 69,
+ 69, 69, 82, 83, 84, 69, 85, 86,
+ 87, 69, 69, 69, 69, 69, 89, 90,
+ 91, 95, 69, 69, 69, 69, 73, 69,
+ 71, 69, 69, 69, 69, 69, 69, 69,
+ 69, 73, 74, 75, 76, 69, 69, 69,
+ 69, 69, 69, 82, 83, 84, 69, 85,
+ 86, 87, 69, 69, 69, 69, 69, 89,
+ 90, 91, 95, 69, 69, 69, 69, 73,
+ 69, 71, 69, 69, 69, 69, 69, 69,
+ 69, 69, 73, 74, 75, 76, 69, 69,
+ 69, 69, 69, 69, 69, 83, 84, 69,
+ 85, 86, 87, 69, 69, 69, 69, 69,
+ 89, 90, 91, 95, 69, 69, 69, 69,
+ 73, 69, 71, 69, 69, 69, 69, 69,
+ 69, 69, 69, 73, 74, 75, 76, 69,
+ 69, 69, 69, 69, 69, 69, 69, 84,
+ 69, 85, 86, 87, 69, 69, 69, 69,
+ 69, 89, 90, 91, 95, 69, 69, 69,
+ 69, 73, 69, 99, 69, 71, 69, 69,
+ 69, 69, 69, 69, 69, 72, 73, 74,
+ 75, 76, 69, 78, 79, 69, 69, 69,
+ 82, 83, 84, 69, 85, 86, 87, 69,
+ 69, 69, 69, 69, 89, 90, 91, 95,
+ 69, 69, 69, 69, 73, 69, 71, 69,
+ 69, 69, 69, 69, 69, 69, 69, 73,
+ 74, 75, 76, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 85, 86, 87,
+ 69, 69, 69, 69, 69, 89, 90, 91,
+ 95, 69, 69, 69, 69, 73, 69, 99,
+ 69, 71, 69, 69, 69, 69, 69, 69,
+ 69, 72, 73, 74, 75, 76, 69, 69,
+ 79, 69, 69, 69, 82, 83, 84, 69,
+ 85, 86, 87, 69, 69, 69, 69, 69,
+ 89, 90, 91, 95, 69, 69, 69, 69,
+ 73, 69, 99, 69, 71, 69, 69, 69,
+ 69, 69, 69, 69, 72, 73, 74, 75,
+ 76, 69, 69, 69, 69, 69, 69, 82,
+ 83, 84, 69, 85, 86, 87, 69, 69,
+ 69, 69, 69, 89, 90, 91, 95, 69,
+ 69, 69, 69, 73, 69, 99, 69, 71,
+ 69, 69, 69, 69, 69, 69, 69, 72,
+ 73, 74, 75, 76, 77, 78, 79, 69,
+ 69, 69, 82, 83, 84, 69, 85, 86,
+ 87, 69, 69, 69, 69, 69, 89, 90,
+ 91, 95, 69, 69, 69, 69, 73, 69,
+ 4, 70, 69, 71, 69, 69, 69, 69,
+ 69, 69, 69, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 69, 81, 82, 83,
+ 84, 69, 85, 86, 87, 69, 69, 69,
+ 69, 88, 89, 90, 91, 92, 69, 69,
+ 69, 69, 93, 69, 69, 94, 69, 4,
+ 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 101, 100, 4, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 98, 96, 4, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 71, 69, 69, 69, 69, 69,
+ 69, 69, 69, 73, 74, 75, 76, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 85, 86, 87, 69, 69, 69, 69,
+ 69, 89, 90, 91, 95, 69, 101, 100,
+ 103, 104, 102, 6, 105, 105, 105, 105,
+ 105, 105, 105, 105, 105, 106, 105, 107,
+ 108, 69, 71, 69, 69, 69, 69, 69,
+ 69, 69, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 107, 118, 119, 120, 121,
+ 69, 122, 123, 124, 69, 59, 60, 69,
+ 125, 126, 127, 128, 129, 69, 69, 69,
+ 69, 130, 69, 69, 131, 69, 107, 108,
+ 69, 71, 69, 69, 69, 69, 69, 69,
+ 69, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 107, 118, 119, 120, 121, 69,
+ 122, 123, 124, 69, 69, 69, 69, 125,
+ 126, 127, 128, 129, 69, 69, 69, 69,
+ 130, 69, 69, 131, 69, 107, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 71, 69, 69, 69, 69, 69,
+ 69, 69, 69, 110, 111, 112, 113, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 122, 123, 124, 69, 69, 69, 69,
+ 69, 126, 127, 128, 132, 69, 69, 69,
+ 69, 110, 69, 71, 69, 69, 69, 69,
+ 69, 69, 69, 69, 110, 111, 112, 113,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 122, 123, 124, 69, 69, 69,
+ 69, 69, 126, 127, 128, 132, 69, 71,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 111, 112, 113, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 126, 127,
+ 128, 69, 71, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 112, 113, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 126, 127, 128, 69, 71, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 113, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 126, 127, 128, 69,
+ 71, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 126,
+ 127, 69, 71, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 127, 69, 71, 69, 71, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 111, 112, 113, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 122, 123, 124,
+ 69, 69, 69, 69, 69, 126, 127, 128,
+ 132, 69, 71, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 111, 112, 113, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 123, 124, 69, 69, 69, 69,
+ 69, 126, 127, 128, 132, 69, 71, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 111, 112, 113, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 124,
+ 69, 69, 69, 69, 69, 126, 127, 128,
+ 132, 69, 133, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 98,
+ 96, 71, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 111, 112, 113, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 126, 127, 128, 132, 69, 71, 69, 69,
+ 69, 69, 69, 69, 69, 109, 110, 111,
+ 112, 113, 69, 69, 69, 69, 69, 69,
+ 119, 120, 121, 69, 122, 123, 124, 69,
+ 69, 69, 69, 69, 126, 127, 128, 132,
+ 69, 69, 69, 69, 110, 69, 71, 69,
+ 69, 69, 69, 69, 69, 69, 69, 110,
+ 111, 112, 113, 69, 69, 69, 69, 69,
+ 69, 119, 120, 121, 69, 122, 123, 124,
+ 69, 69, 69, 69, 69, 126, 127, 128,
+ 132, 69, 69, 69, 69, 110, 69, 71,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 110, 111, 112, 113, 69, 69, 69, 69,
+ 69, 69, 69, 120, 121, 69, 122, 123,
+ 124, 69, 69, 69, 69, 69, 126, 127,
+ 128, 132, 69, 69, 69, 69, 110, 69,
+ 71, 69, 69, 69, 69, 69, 69, 69,
+ 69, 110, 111, 112, 113, 69, 69, 69,
+ 69, 69, 69, 69, 69, 121, 69, 122,
+ 123, 124, 69, 69, 69, 69, 69, 126,
+ 127, 128, 132, 69, 69, 69, 69, 110,
+ 69, 134, 69, 71, 69, 69, 69, 69,
+ 69, 69, 69, 109, 110, 111, 112, 113,
+ 69, 115, 116, 69, 69, 69, 119, 120,
+ 121, 69, 122, 123, 124, 69, 69, 69,
+ 69, 69, 126, 127, 128, 132, 69, 69,
+ 69, 69, 110, 69, 71, 69, 69, 69,
+ 69, 69, 69, 69, 69, 110, 111, 112,
+ 113, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 122, 123, 124, 69, 69,
+ 69, 69, 69, 126, 127, 128, 132, 69,
+ 69, 69, 69, 110, 69, 134, 69, 71,
+ 69, 69, 69, 69, 69, 69, 69, 109,
+ 110, 111, 112, 113, 69, 69, 116, 69,
+ 69, 69, 119, 120, 121, 69, 122, 123,
+ 124, 69, 69, 69, 69, 69, 126, 127,
+ 128, 132, 69, 69, 69, 69, 110, 69,
+ 134, 69, 71, 69, 69, 69, 69, 69,
+ 69, 69, 109, 110, 111, 112, 113, 69,
+ 69, 69, 69, 69, 69, 119, 120, 121,
+ 69, 122, 123, 124, 69, 69, 69, 69,
+ 69, 126, 127, 128, 132, 69, 69, 69,
+ 69, 110, 69, 134, 69, 71, 69, 69,
+ 69, 69, 69, 69, 69, 109, 110, 111,
+ 112, 113, 114, 115, 116, 69, 69, 69,
+ 119, 120, 121, 69, 122, 123, 124, 69,
+ 69, 69, 69, 69, 126, 127, 128, 132,
+ 69, 69, 69, 69, 110, 69, 107, 108,
+ 69, 71, 69, 69, 69, 69, 69, 69,
+ 69, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 69, 118, 119, 120, 121, 69,
+ 122, 123, 124, 69, 69, 69, 69, 125,
+ 126, 127, 128, 129, 69, 69, 69, 69,
+ 130, 69, 69, 131, 69, 107, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 101, 100, 107, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 98, 96, 107, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 71, 69, 69, 69, 69, 69, 69, 69,
+ 69, 110, 111, 112, 113, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 122,
+ 123, 124, 69, 69, 69, 69, 69, 126,
+ 127, 128, 132, 69, 101, 100, 8, 9,
+ 135, 11, 135, 135, 135, 135, 135, 135,
+ 135, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 8, 22, 23, 24, 25, 135,
+ 26, 27, 28, 135, 135, 135, 135, 32,
+ 33, 34, 38, 32, 135, 135, 135, 135,
+ 37, 135, 135, 38, 135, 8, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 11, 135, 135, 135, 135, 135,
+ 135, 135, 135, 14, 15, 16, 17, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 26, 27, 28, 135, 135, 135, 135,
+ 135, 33, 34, 38, 136, 135, 135, 135,
+ 135, 14, 135, 11, 135, 135, 135, 135,
+ 135, 135, 135, 135, 14, 15, 16, 17,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 26, 27, 28, 135, 135, 135,
+ 135, 135, 33, 34, 38, 136, 135, 11,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 15, 16, 17, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 33, 34,
+ 38, 135, 11, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 16, 17, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 33, 34, 38, 135, 11, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 17, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 33, 34, 38, 135,
+ 11, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 33,
+ 34, 135, 11, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 34, 135, 11, 137, 11, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 15, 16, 17, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 26, 27, 28,
+ 135, 135, 135, 135, 135, 33, 34, 38,
+ 136, 135, 11, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 15, 16, 17, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 27, 28, 135, 135, 135, 135,
+ 135, 33, 34, 38, 136, 135, 11, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 15, 16, 17, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 28,
+ 135, 135, 135, 135, 135, 33, 34, 38,
+ 136, 135, 138, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 11,
+ 135, 11, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 15, 16, 17, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 33, 34, 38, 136, 135, 11, 135, 135,
+ 135, 135, 135, 135, 135, 13, 14, 15,
+ 16, 17, 135, 135, 135, 135, 135, 135,
+ 23, 24, 25, 135, 26, 27, 28, 135,
+ 135, 135, 135, 135, 33, 34, 38, 136,
+ 135, 135, 135, 135, 14, 135, 11, 135,
+ 135, 135, 135, 135, 135, 135, 135, 14,
+ 15, 16, 17, 135, 135, 135, 135, 135,
+ 135, 23, 24, 25, 135, 26, 27, 28,
+ 135, 135, 135, 135, 135, 33, 34, 38,
+ 136, 135, 135, 135, 135, 14, 135, 11,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 14, 15, 16, 17, 135, 135, 135, 135,
+ 135, 135, 135, 24, 25, 135, 26, 27,
+ 28, 135, 135, 135, 135, 135, 33, 34,
+ 38, 136, 135, 135, 135, 135, 14, 135,
+ 11, 135, 135, 135, 135, 135, 135, 135,
+ 135, 14, 15, 16, 17, 135, 135, 135,
+ 135, 135, 135, 135, 135, 25, 135, 26,
+ 27, 28, 135, 135, 135, 135, 135, 33,
+ 34, 38, 136, 135, 135, 135, 135, 14,
+ 135, 139, 135, 11, 135, 135, 135, 135,
+ 135, 135, 135, 13, 14, 15, 16, 17,
+ 135, 19, 20, 135, 135, 135, 23, 24,
+ 25, 135, 26, 27, 28, 135, 135, 135,
+ 135, 135, 33, 34, 38, 136, 135, 135,
+ 135, 135, 14, 135, 11, 135, 135, 135,
+ 135, 135, 135, 135, 135, 14, 15, 16,
+ 17, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 26, 27, 28, 135, 135,
+ 135, 135, 135, 33, 34, 38, 136, 135,
+ 135, 135, 135, 14, 135, 139, 135, 11,
+ 135, 135, 135, 135, 135, 135, 135, 13,
+ 14, 15, 16, 17, 135, 135, 20, 135,
+ 135, 135, 23, 24, 25, 135, 26, 27,
+ 28, 135, 135, 135, 135, 135, 33, 34,
+ 38, 136, 135, 135, 135, 135, 14, 135,
+ 139, 135, 11, 135, 135, 135, 135, 135,
+ 135, 135, 13, 14, 15, 16, 17, 135,
+ 135, 135, 135, 135, 135, 23, 24, 25,
+ 135, 26, 27, 28, 135, 135, 135, 135,
+ 135, 33, 34, 38, 136, 135, 135, 135,
+ 135, 14, 135, 139, 135, 11, 135, 135,
+ 135, 135, 135, 135, 135, 13, 14, 15,
+ 16, 17, 18, 19, 20, 135, 135, 135,
+ 23, 24, 25, 135, 26, 27, 28, 135,
+ 135, 135, 135, 135, 33, 34, 38, 136,
+ 135, 135, 135, 135, 14, 135, 8, 9,
+ 135, 11, 135, 135, 135, 135, 135, 135,
+ 135, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 135, 22, 23, 24, 25, 135,
+ 26, 27, 28, 135, 135, 135, 135, 32,
+ 33, 34, 38, 32, 135, 135, 135, 135,
+ 37, 135, 135, 38, 135, 8, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 11, 135, 8, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 11, 135, 135, 135, 135, 135, 135,
+ 135, 135, 14, 15, 16, 17, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 26, 27, 28, 135, 135, 135, 135, 135,
+ 33, 34, 38, 136, 135, 140, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 11,
+ 135, 10, 11, 135, 4, 135, 135, 135,
+ 4, 135, 135, 135, 135, 135, 8, 9,
+ 10, 11, 135, 135, 135, 135, 135, 135,
+ 135, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 8, 22, 23, 24, 25, 135,
+ 26, 27, 28, 135, 29, 30, 135, 32,
+ 33, 34, 38, 32, 135, 135, 135, 135,
+ 37, 135, 135, 38, 135, 11, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 29, 30, 135, 11, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 30,
+ 135, 4, 141, 141, 141, 4, 141, 143,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 144, 142, 145, 142, 145,
+ 146, 142, 143, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 1, 144, 144,
+ 142, 143, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 144, 142, 145,
+ 142, 143, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 144, 142, 145,
+ 142, 145, 142, 40, 41, 39, 42, 39,
+ 39, 39, 39, 39, 39, 39, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 40,
+ 52, 53, 54, 55, 39, 56, 57, 58,
+ 39, 59, 60, 39, 61, 62, 63, 64,
+ 61, 1, 39, 2, 39, 65, 39, 39,
+ 64, 39, 0
};
static const char _use_syllable_machine_trans_targs[] = {
@@ -723,21 +723,21 @@
90, 91, 116, 1, 118, 104, 92, 93,
94, 95, 108, 110, 111, 112, 113, 105,
106, 107, 99, 100, 101, 119, 120, 121,
- 114, 96, 97, 98, 126, 115, 1, 3,
- 4, 1, 17, 5, 6, 7, 8, 21,
- 23, 24, 25, 26, 18, 19, 20, 12,
- 13, 14, 29, 30, 27, 9, 10, 11,
- 28, 15, 16, 22, 1, 32, 1, 45,
- 33, 34, 35, 36, 49, 51, 52, 53,
- 54, 46, 47, 48, 40, 41, 42, 55,
- 37, 38, 39, 56, 57, 58, 43, 1,
- 44, 1, 50, 1, 1, 1, 60, 1,
- 1, 1, 62, 63, 76, 64, 65, 66,
- 67, 80, 82, 83, 84, 85, 77, 78,
- 79, 71, 72, 73, 86, 68, 69, 70,
- 87, 88, 89, 74, 75, 81, 1, 102,
- 103, 109, 117, 1, 1, 1, 123, 124,
- 125
+ 114, 96, 97, 98, 126, 115, 98, 1,
+ 3, 4, 1, 17, 5, 6, 7, 8,
+ 21, 23, 24, 25, 26, 18, 19, 20,
+ 12, 13, 14, 29, 30, 27, 9, 10,
+ 11, 28, 15, 16, 22, 1, 32, 1,
+ 45, 33, 34, 35, 36, 49, 51, 52,
+ 53, 54, 46, 47, 48, 40, 41, 42,
+ 55, 37, 38, 39, 56, 57, 58, 43,
+ 1, 44, 1, 50, 1, 1, 1, 60,
+ 1, 1, 1, 62, 63, 76, 64, 65,
+ 66, 67, 80, 82, 83, 84, 85, 77,
+ 78, 79, 71, 72, 73, 86, 68, 69,
+ 70, 87, 88, 89, 74, 75, 81, 1,
+ 102, 1, 103, 109, 117, 1, 1, 1,
+ 123, 124, 125
};
static const char _use_syllable_machine_trans_actions[] = {
@@ -745,21 +745,21 @@
0, 0, 0, 5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 0, 7, 0,
- 0, 8, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 6, 7, 0, 8, 9,
+ 0, 0, 10, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 10, 0,
+ 0, 0, 0, 0, 0, 11, 0, 12,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 11,
- 0, 12, 0, 13, 14, 15, 0, 16,
- 17, 18, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
+ 13, 0, 14, 0, 15, 16, 17, 0,
+ 18, 19, 20, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 19, 0,
- 0, 0, 0, 20, 21, 22, 0, 0,
- 0
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 21,
+ 0, 22, 0, 0, 0, 23, 24, 25,
+ 0, 0, 0
};
static const char _use_syllable_machine_to_state_actions[] = {
@@ -801,22 +801,22 @@
};
static const short _use_syllable_machine_eof_trans[] = {
- 1, 0, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 69,
- 69, 69, 69, 69, 69, 69, 69, 69,
- 69, 69, 69, 96, 69, 69, 69, 69,
- 69, 69, 69, 69, 69, 69, 69, 100,
- 96, 69, 100, 102, 105, 69, 69, 69,
- 69, 69, 69, 69, 69, 69, 69, 69,
- 69, 69, 96, 69, 69, 69, 69, 69,
- 69, 69, 69, 69, 69, 69, 100, 96,
- 69, 100, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 140, 141, 141, 141, 141, 39
+ 1, 0, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 97, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 101,
+ 97, 70, 101, 103, 106, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 97, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 101, 97,
+ 70, 101, 136, 136, 136, 136, 136, 136,
+ 136, 136, 138, 136, 136, 136, 136, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 142, 143, 143, 143, 143, 40
};
static const int use_syllable_machine_start = 1;
@@ -830,7 +830,7 @@
-#line 185 "hb-ot-shaper-use-machine.rl"
+#line 186 "hb-ot-shaper-use-machine.rl"
#define found_syllable(syllable_type) \
@@ -937,7 +937,7 @@
act = 0;
}
-#line 285 "hb-ot-shaper-use-machine.rl"
+#line 286 "hb-ot-shaper-use-machine.rl"
unsigned int syllable_serial = 1;
@@ -974,80 +974,80 @@
goto _again;
switch ( _use_syllable_machine_trans_actions[_trans] ) {
- case 6:
+ case 7:
#line 1 "NONE"
{te = p+1;}
break;
- case 14:
+ case 16:
#line 173 "hb-ot-shaper-use-machine.rl"
{te = p+1;{ found_syllable (use_virama_terminated_cluster); }}
break;
- case 12:
+ case 14:
#line 174 "hb-ot-shaper-use-machine.rl"
{te = p+1;{ found_syllable (use_sakot_terminated_cluster); }}
break;
- case 10:
+ case 12:
#line 175 "hb-ot-shaper-use-machine.rl"
{te = p+1;{ found_syllable (use_standard_cluster); }}
break;
- case 18:
+ case 20:
#line 176 "hb-ot-shaper-use-machine.rl"
{te = p+1;{ found_syllable (use_number_joiner_terminated_cluster); }}
break;
- case 16:
+ case 18:
#line 177 "hb-ot-shaper-use-machine.rl"
{te = p+1;{ found_syllable (use_numeral_cluster); }}
break;
- case 8:
+ case 10:
#line 178 "hb-ot-shaper-use-machine.rl"
{te = p+1;{ found_syllable (use_symbol_cluster); }}
break;
- case 22:
+ case 25:
#line 179 "hb-ot-shaper-use-machine.rl"
{te = p+1;{ found_syllable (use_hieroglyph_cluster); }}
break;
case 5:
-#line 180 "hb-ot-shaper-use-machine.rl"
+#line 181 "hb-ot-shaper-use-machine.rl"
{te = p+1;{ found_syllable (use_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
case 4:
-#line 181 "hb-ot-shaper-use-machine.rl"
+#line 182 "hb-ot-shaper-use-machine.rl"
{te = p+1;{ found_syllable (use_non_cluster); }}
break;
- case 13:
+ case 15:
#line 173 "hb-ot-shaper-use-machine.rl"
{te = p;p--;{ found_syllable (use_virama_terminated_cluster); }}
break;
- case 11:
+ case 13:
#line 174 "hb-ot-shaper-use-machine.rl"
{te = p;p--;{ found_syllable (use_sakot_terminated_cluster); }}
break;
- case 9:
+ case 11:
#line 175 "hb-ot-shaper-use-machine.rl"
{te = p;p--;{ found_syllable (use_standard_cluster); }}
break;
- case 17:
+ case 19:
#line 176 "hb-ot-shaper-use-machine.rl"
{te = p;p--;{ found_syllable (use_number_joiner_terminated_cluster); }}
break;
- case 15:
+ case 17:
#line 177 "hb-ot-shaper-use-machine.rl"
{te = p;p--;{ found_syllable (use_numeral_cluster); }}
break;
- case 7:
+ case 9:
#line 178 "hb-ot-shaper-use-machine.rl"
{te = p;p--;{ found_syllable (use_symbol_cluster); }}
break;
- case 21:
+ case 24:
#line 179 "hb-ot-shaper-use-machine.rl"
{te = p;p--;{ found_syllable (use_hieroglyph_cluster); }}
break;
- case 19:
-#line 180 "hb-ot-shaper-use-machine.rl"
+ case 21:
+#line 181 "hb-ot-shaper-use-machine.rl"
{te = p;p--;{ found_syllable (use_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
- case 20:
-#line 181 "hb-ot-shaper-use-machine.rl"
+ case 23:
+#line 182 "hb-ot-shaper-use-machine.rl"
{te = p;p--;{ found_syllable (use_non_cluster); }}
break;
case 1:
@@ -1054,8 +1054,32 @@
#line 178 "hb-ot-shaper-use-machine.rl"
{{p = ((te))-1;}{ found_syllable (use_symbol_cluster); }}
break;
-#line 1058 "hb-ot-shaper-use-machine.hh"
+ case 22:
+#line 1 "NONE"
+ { switch( act ) {
+ case 8:
+ {{p = ((te))-1;} found_syllable (use_non_cluster); }
+ break;
+ case 9:
+ {{p = ((te))-1;} found_syllable (use_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }
+ break;
}
+ }
+ break;
+ case 6:
+#line 1 "NONE"
+ {te = p+1;}
+#line 180 "hb-ot-shaper-use-machine.rl"
+ {act = 8;}
+ break;
+ case 8:
+#line 1 "NONE"
+ {te = p+1;}
+#line 181 "hb-ot-shaper-use-machine.rl"
+ {act = 9;}
+ break;
+#line 1082 "hb-ot-shaper-use-machine.hh"
+ }
_again:
switch ( _use_syllable_machine_to_state_actions[cs] ) {
@@ -1063,7 +1087,7 @@
#line 1 "NONE"
{ts = 0;}
break;
-#line 1067 "hb-ot-shaper-use-machine.hh"
+#line 1091 "hb-ot-shaper-use-machine.hh"
}
if ( ++p != pe )
@@ -1079,7 +1103,7 @@
}
-#line 290 "hb-ot-shaper-use-machine.rl"
+#line 291 "hb-ot-shaper-use-machine.rl"
}
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-use-machine.rl
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-use-machine.rl 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-use-machine.rl 2025-01-11 23:22:13 UTC (rev 73427)
@@ -177,6 +177,7 @@
numeral_cluster ZWNJ? => { found_syllable (use_numeral_cluster); };
symbol_cluster ZWNJ? => { found_syllable (use_symbol_cluster); };
hieroglyph_cluster ZWNJ? => { found_syllable (use_hieroglyph_cluster); };
+ FMPst => { found_syllable (use_non_cluster); };
broken_cluster ZWNJ? => { found_syllable (use_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; };
other => { found_syllable (use_non_cluster); };
*|;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag-table.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag-table.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -6,8 +6,8 @@
*
* on files with these headers:
*
- * <meta name="updated_at" content="2024-07-07 12:57 AM" />
- * File-Date: 2024-06-14
+ * <meta name="updated_at" content="2024-12-05 07:13 PM" />
+ * File-Date: 2024-11-19
*/
#ifndef HB_OT_TAG_TABLE_HH
@@ -830,6 +830,7 @@
{HB_TAG('k','f','x',' '), HB_TAG('K','U','L',' ')}, /* Kullu Pahari -> Kulvi */
{HB_TAG('k','f','y',' '), HB_TAG('K','M','N',' ')}, /* Kumaoni */
{HB_TAG('k','g','e',' '), HB_TAG_NONE }, /* Komering != Khutsuri Georgian */
+/*{HB_TAG('k','g','f',' '), HB_TAG('K','G','F',' ')},*/ /* Kube */
{HB_TAG('k','h','a',' '), HB_TAG('K','S','I',' ')}, /* Khasi */
{HB_TAG('k','h','b',' '), HB_TAG('X','B','D',' ')}, /* Lü */
{HB_TAG('k','h','k',' '), HB_TAG('M','N','G',' ')}, /* Halh Mongolian -> Mongolian */
@@ -855,6 +856,7 @@
{HB_TAG('k','l','m',' '), HB_TAG_NONE }, /* Migum != Kalmyk */
{HB_TAG('k','l','n',' '), HB_TAG('K','A','L',' ')}, /* Kalenjin [macrolanguage] */
{HB_TAG('k','m','b',' '), HB_TAG('M','B','N',' ')}, /* Kimbundu -> Mbundu */
+/*{HB_TAG('k','m','g',' '), HB_TAG('K','M','G',' ')},*/ /* Kâte */
{HB_TAG('k','m','n',' '), HB_TAG_NONE }, /* Awtuw != Kumaoni */
{HB_TAG('k','m','o',' '), HB_TAG_NONE }, /* Kwoma != Komo */
{HB_TAG('k','m','r',' '), HB_TAG('K','U','R',' ')}, /* Northern Kurdish -> Kurdish */
@@ -898,6 +900,7 @@
{HB_TAG('k','s','i',' '), HB_TAG_NONE }, /* Krisa != Khasi */
{HB_TAG('k','s','m',' '), HB_TAG_NONE }, /* Kumba != Kildin Sami */
{HB_TAG('k','s','s',' '), HB_TAG('K','I','S',' ')}, /* Southern Kisi -> Kisii */
+/*{HB_TAG('k','s','u',' '), HB_TAG('K','S','U',' ')},*/ /* Khamyang */
{HB_TAG('k','s','w',' '), HB_TAG('K','S','W',' ')}, /* S’gaw Karen */
{HB_TAG('k','s','w',' '), HB_TAG('K','R','N',' ')}, /* S'gaw Karen -> Karen */
{HB_TAG('k','t','b',' '), HB_TAG('K','E','B',' ')}, /* Kambaata -> Kebena */
@@ -911,6 +914,7 @@
{HB_TAG('k','u','y',' '), HB_TAG_NONE }, /* Kuuku-Ya'u != Kuy */
{HB_TAG('k','v','b',' '), HB_TAG('M','L','Y',' ')}, /* Kubu -> Malay */
{HB_TAG('k','v','l',' '), HB_TAG('K','R','N',' ')}, /* Kayaw -> Karen */
+ {HB_TAG('k','v','q',' '), HB_TAG('K','V','Q',' ')}, /* Geba Karen */
{HB_TAG('k','v','q',' '), HB_TAG('K','R','N',' ')}, /* Geba Karen -> Karen */
{HB_TAG('k','v','r',' '), HB_TAG('M','L','Y',' ')}, /* Kerinci -> Malay */
{HB_TAG('k','v','t',' '), HB_TAG('K','R','N',' ')}, /* Lahta Karen -> Karen */
@@ -1146,6 +1150,7 @@
{HB_TAG('n','o','d',' '), HB_TAG('N','T','A',' ')}, /* Northern Thai -> Northern Tai */
/*{HB_TAG('n','o','e',' '), HB_TAG('N','O','E',' ')},*/ /* Nimadi */
/*{HB_TAG('n','o','g',' '), HB_TAG('N','O','G',' ')},*/ /* Nogai */
+/*{HB_TAG('n','o','p',' '), HB_TAG('N','O','P',' ')},*/ /* Numanggang */
/*{HB_TAG('n','o','v',' '), HB_TAG('N','O','V',' ')},*/ /* Novial */
{HB_TAG('n','p','i',' '), HB_TAG('N','E','P',' ')}, /* Nepali */
{HB_TAG('n','p','l',' '), HB_TAG('N','A','H',' ')}, /* Southeastern Puebla Nahuatl -> Nahuatl */
@@ -1156,6 +1161,7 @@
{HB_TAG('n','s','u',' '), HB_TAG('N','A','H',' ')}, /* Sierra Negra Nahuatl -> Nahuatl */
{HB_TAG('n','t','o',' '), HB_TAG_NONE }, /* Ntomba != Esperanto */
{HB_TAG('n','u','e',' '), HB_TAG('B','A','D','0')}, /* Ngundu -> Banda */
+/*{HB_TAG('n','u','k',' '), HB_TAG('N','U','K',' ')},*/ /* Nuu-chah-nulth */
{HB_TAG('n','u','u',' '), HB_TAG('B','A','D','0')}, /* Ngbundu -> Banda */
{HB_TAG('n','u','z',' '), HB_TAG('N','A','H',' ')}, /* Tlamacazapa Nahuatl -> Nahuatl */
{HB_TAG('n','w','e',' '), HB_TAG('B','M','L',' ')}, /* Ngwe -> Bamileke */
@@ -1399,8 +1405,10 @@
{HB_TAG('s','i','z',' '), HB_TAG('B','B','R',' ')}, /* Siwi -> Berber */
/*{HB_TAG('s','j','a',' '), HB_TAG('S','J','A',' ')},*/ /* Epena */
{HB_TAG('s','j','d',' '), HB_TAG('K','S','M',' ')}, /* Kildin Sami */
+/*{HB_TAG('s','j','e',' '), HB_TAG('S','J','E',' ')},*/ /* Pite Sami */
{HB_TAG('s','j','o',' '), HB_TAG('S','I','B',' ')}, /* Xibe -> Sibe */
{HB_TAG('s','j','s',' '), HB_TAG('B','B','R',' ')}, /* Senhaja De Srair -> Berber */
+/*{HB_TAG('s','j','u',' '), HB_TAG('S','J','U',' ')},*/ /* Ume Sami */
{HB_TAG('s','k','g',' '), HB_TAG('M','L','G',' ')}, /* Sakalava Malagasy -> Malagasy */
{HB_TAG('s','k','r',' '), HB_TAG('S','R','K',' ')}, /* Saraiki */
{HB_TAG('s','k','s',' '), HB_TAG_NONE }, /* Maia != Skolt Sami */
@@ -1461,6 +1469,7 @@
{HB_TAG('t','a','q',' '), HB_TAG('B','B','R',' ')}, /* Tamasheq -> Berber */
{HB_TAG('t','a','s',' '), HB_TAG('C','P','P',' ')}, /* Tay Boi -> Creoles */
{HB_TAG('t','a','u',' '), HB_TAG('A','T','H',' ')}, /* Upper Tanana -> Athapaskan */
+/*{HB_TAG('t','b','v',' '), HB_TAG('T','B','V',' ')},*/ /* Tobo */
{HB_TAG('t','c','b',' '), HB_TAG('A','T','H',' ')}, /* Tanacross -> Athapaskan */
{HB_TAG('t','c','e',' '), HB_TAG('A','T','H',' ')}, /* Southern Tutchone -> Athapaskan */
{HB_TAG('t','c','h',' '), HB_TAG('C','P','P',' ')}, /* Turks And Caicos Creole English -> Creoles */
@@ -1623,7 +1632,7 @@
{HB_TAG('y','b','a',' '), HB_TAG_NONE }, /* Yala != Yoruba */
{HB_TAG('y','b','b',' '), HB_TAG('B','M','L',' ')}, /* Yemba -> Bamileke */
{HB_TAG('y','b','d',' '), HB_TAG('A','R','K',' ')}, /* Yangbye (retired code) -> Rakhine */
- {HB_TAG('y','c','r',' '), HB_TAG_NONE }, /* Yilan Creole != Y-Cree */
+ {HB_TAG('y','c','r',' '), HB_TAG('C','P','P',' ')}, /* Yilan Creole -> Creoles */
{HB_TAG('y','d','d',' '), HB_TAG('J','I','I',' ')}, /* Eastern Yiddish -> Yiddish */
/*{HB_TAG('y','g','p',' '), HB_TAG('Y','G','P',' ')},*/ /* Gepo */
{HB_TAG('y','i','h',' '), HB_TAG('J','I','I',' ')}, /* Western Yiddish -> Yiddish */
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-common.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-common.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-common.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -885,9 +885,9 @@
* no need to do find_shared_points () again */
hb_vector_t<char> *shared_points_bytes = nullptr;
- /* total compiled byte size as TupleVariationData format, initialized to its
- * min_size: 4 */
- unsigned compiled_byte_size = 4;
+ /* total compiled byte size as TupleVariationData format, initialized to 0 */
+ unsigned compiled_byte_size = 0;
+ bool needs_padding = false;
/* for gvar iup delta optimization: whether this is a composite glyph */
bool is_composite = false;
@@ -1219,12 +1219,21 @@
bool compile_bytes (const hb_map_t& axes_index_map,
const hb_map_t& axes_old_index_tag_map,
bool use_shared_points,
+ bool is_gvar = false,
const hb_hashmap_t<const hb_vector_t<char>*, unsigned>* shared_tuples_idx_map = nullptr)
{
+ // return true for empty glyph
+ if (!tuple_vars)
+ return true;
+
// compile points set and store data in hashmap
if (!compile_all_point_sets ())
return false;
+ /* total compiled byte size as TupleVariationData format, initialized to its
+ * min_size: 4 */
+ compiled_byte_size += 4;
+
if (use_shared_points)
{
find_shared_points ();
@@ -1253,6 +1262,13 @@
return false;
compiled_byte_size += tuple.compiled_tuple_header.length + points_data_length + tuple.compiled_deltas.length;
}
+
+ if (is_gvar && (compiled_byte_size % 2))
+ {
+ needs_padding = true;
+ compiled_byte_size += 1;
+ }
+
return true;
}
@@ -1295,7 +1311,7 @@
}
/* padding for gvar */
- if (is_gvar && (compiled_byte_size % 2))
+ if (is_gvar && needs_padding)
{
HBUINT8 pad;
pad = 0;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-gvar-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-gvar-table.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-gvar-table.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -140,6 +140,7 @@
for (tuple_variations_t& vars: glyph_variations)
if (!vars.compile_bytes (axes_index_map, axes_old_index_tag_map,
true, /* use shared points*/
+ true,
&shared_tuples_idx_map))
return false;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-paint.h
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-paint.h 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-paint.h 2025-01-11 23:22:13 UTC (rev 73427)
@@ -146,7 +146,7 @@
*
* A virtual method for the #hb_paint_funcs_t to render a color glyph by glyph index.
*
- * Return value: %true if the glyph was painted, %false otherwise.
+ * Return value: `true` if the glyph was painted, `false` otherwise.
*
* Since: 8.2.0
*/
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-sanitize.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-sanitize.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-sanitize.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -72,8 +72,8 @@
*
* === The sanitize() contract ===
*
- * The sanitize() method of each object type shall return true if it's safe to
- * call other methods of the object, and %false otherwise.
+ * The sanitize() method of each object type shall return `true` if it's safe to
+ * call other methods of the object, and `false` otherwise.
*
* Note that what sanitize() checks for might align with what the specification
* describes as valid table data, but does not have to be. In particular, we
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -36,9 +36,7 @@
#include "hb-map.hh"
#include "hb-pool.hh"
-#ifdef HB_EXPERIMENTAL_API
-#include "hb-subset-repacker.h"
-#endif
+#include "hb-subset-serialize.h"
/*
* Serialize
@@ -75,8 +73,7 @@
object_t () = default;
-#ifdef HB_EXPERIMENTAL_API
- object_t (const hb_object_t &o)
+ object_t (const hb_subset_serialize_object_t &o)
{
head = o.head;
tail = o.tail;
@@ -89,7 +86,6 @@
for (unsigned i = 0; i < o.num_virtual_links; i++)
virtual_links.push (o.virtual_links[i]);
}
-#endif
bool add_virtual_link (objidx_t objidx)
{
@@ -148,8 +144,7 @@
link_t () = default;
-#ifdef HB_EXPERIMENTAL_API
- link_t (const hb_link_t &o)
+ link_t (const hb_subset_serialize_link_t &o)
{
width = o.width;
is_signed = 0;
@@ -158,7 +153,6 @@
bias = 0;
objidx = o.objidx;
}
-#endif
HB_INTERNAL static int cmp (const void* a, const void* b)
{
@@ -400,6 +394,7 @@
{
merge_virtual_links (obj, objidx);
obj->fini ();
+ object_pool.release (obj);
return objidx;
}
}
@@ -463,9 +458,11 @@
while (packed.length > 1 &&
packed.tail ()->head < tail)
{
- packed_map.del (packed.tail ());
- assert (!packed.tail ()->next);
- packed.tail ()->fini ();
+ object_t *obj = packed.tail ();
+ packed_map.del (obj);
+ assert (!obj->next);
+ obj->fini ();
+ object_pool.release (obj);
packed.pop ();
}
if (packed.length > 1)
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.h
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.h 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.h 2025-01-11 23:22:13 UTC (rev 73427)
@@ -53,6 +53,7 @@
unsigned int num_features,
const char * const *shaper_list);
+#ifdef HB_EXPERIMENTAL_API
HB_EXTERN hb_bool_t
hb_shape_justify (hb_font_t *font,
hb_buffer_t *buffer,
@@ -64,6 +65,7 @@
float *advance, /* IN/OUT */
hb_tag_t *var_tag, /* OUT */
float *var_value /* OUT */);
+#endif
HB_EXTERN const char **
hb_shape_list_shapers (void);
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-input.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-input.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-input.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -534,7 +534,6 @@
*
* Note: input min value can not be bigger than input max value. If the input
* default value is not within the new min/max range, it'll be clamped.
- * Note: currently it supports gvar and cvar tables only.
*
* Return value: `true` if success, `false` otherwise
*
@@ -597,6 +596,144 @@
*axis_max_value = triple->maximum;
return true;
}
+
+/**
+ * hb_subset_axis_range_from_string:
+ * @str: a string to parse
+ * @len: length of @str, or -1 if str is NULL terminated
+ * @axis_min_value: (out): the axis min value to initialize with the parsed value
+ * @axis_max_value: (out): the axis max value to initialize with the parsed value
+ * @axis_def_value: (out): the axis default value to initialize with the parse
+ * value
+ *
+ * Parses a string into a subset axis range(min, def, max).
+ * Axis positions string is in the format of min:def:max or min:max
+ * When parsing axis positions, empty values as meaning the existing value for that part
+ * E.g: :300:500
+ * Specifies min = existing, def = 300, max = 500
+ * In the output axis_range, if a value should be set to it's default value,
+ * then it will be set to NaN
+ *
+ * Return value:
+ * `true` if @str is successfully parsed, `false` otherwise
+ *
+ * Since: 10.2.0
+ */
+HB_EXTERN hb_bool_t
+hb_subset_axis_range_from_string (const char *str, int len,
+ float *axis_min_value,
+ float *axis_max_value,
+ float *axis_def_value)
+{
+ if (len < 0)
+ len = strlen (str);
+
+ const char *end = str + len;
+ const char* part = strpbrk (str, ":");
+ if (!part)
+ {
+ // Single value.
+ if (strcmp (str, "drop") == 0)
+ {
+ *axis_min_value = NAN;
+ *axis_def_value = NAN;
+ *axis_max_value = NAN;
+ return true;
+ }
+
+ double v;
+ if (!hb_parse_double (&str, end, &v)) return false;
+
+ *axis_min_value = v;
+ *axis_def_value = v;
+ *axis_max_value = v;
+ return true;
+ }
+
+ float values[3];
+ int count = 0;
+ for (int i = 0; i < 3; i++) {
+ count++;
+ if (!*str || part == str)
+ {
+ values[i] = NAN;
+
+ if (part == NULL) break;
+ str = part + 1;
+ part = strpbrk (str, ":");
+ continue;
+ }
+
+ double v;
+ if (!hb_parse_double (&str, part, &v)) return false;
+ values[i] = v;
+
+ if (part == NULL) break;
+ str = part + 1;
+ part = strpbrk (str, ":");
+ }
+
+ if (count == 2)
+ {
+ *axis_min_value = values[0];
+ *axis_def_value = NAN;
+ *axis_max_value = values[1];
+ return true;
+ }
+ else if (count == 3)
+ {
+ *axis_min_value = values[0];
+ *axis_def_value = values[1];
+ *axis_max_value = values[2];
+ return true;
+ }
+ return false;
+}
+
+/**
+ * hb_subset_axis_range_to_string:
+ * @input: a #hb_subset_input_t object.
+ * @axis_tag: an axis to convert
+ * @buf: (array length=size) (out caller-allocates): output string
+ * @size: the allocated size of @buf
+ *
+ * Converts an axis range into a `NULL`-terminated string in the format
+ * understood by hb_subset_axis_range_from_string(). The client in responsible for
+ * allocating big enough size for @buf, 128 bytes is more than enough.
+ *
+ * Since: 10.2.0
+ */
+HB_EXTERN void
+hb_subset_axis_range_to_string (hb_subset_input_t *input,
+ hb_tag_t axis_tag,
+ char *buf, unsigned size)
+{
+ if (unlikely (!size)) return;
+ Triple* triple;
+ if (!input->axes_location.has(axis_tag, &triple)) {
+ return;
+ }
+
+ char s[128];
+ unsigned len = 0;
+
+ hb_locale_t clocale HB_UNUSED;
+ hb_locale_t oldlocale HB_UNUSED;
+ oldlocale = hb_uselocale (clocale = newlocale (LC_ALL_MASK, "C", NULL));
+ len += hb_max (0, snprintf (s, ARRAY_LENGTH (s) - len, "%g", (double) triple->minimum));
+ s[len++] = ':';
+
+ len += hb_max (0, snprintf (s + len, ARRAY_LENGTH (s) - len, "%g", (double) triple->middle));
+ s[len++] = ':';
+
+ len += hb_max (0, snprintf (s + len, ARRAY_LENGTH (s) - len, "%g", (double) triple->maximum));
+ (void) hb_uselocale (((void) freelocale (clocale), oldlocale));
+
+ assert (len < ARRAY_LENGTH (s));
+ len = hb_min (len, size - 1);
+ hb_memcpy (buf, s, len);
+ buf[len] = '\0';
+}
#endif
/**
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -678,7 +678,8 @@
hb_subset_plan_t *plan)
{
OT::cmap::accelerator_t cmap (plan->source);
- unsigned size_threshold = plan->source->get_num_glyphs ();
+ unsigned size_threshold = plan->source->get_num_glyphs ();
+
if (glyphs->is_empty () && unicodes->get_population () < size_threshold)
{
@@ -797,6 +798,21 @@
plan->unicodes.add_sorted_array (&arr.arrayZ->first, arr.length, sizeof (*arr.arrayZ));
plan->_glyphset_gsub.add_array (&arr.arrayZ->second, arr.length, sizeof (*arr.arrayZ));
}
+
+ // Variation selectors don't have glyphs associated with them in the cmap so they will have been filtered out above
+ // but should still be retained. Add them back here.
+
+ // However, the min and max codepoints for OS/2 should be calculated without considering variation selectors,
+ // so record those first.
+ plan->os2_info.min_cmap_codepoint = plan->unicodes.get_min();
+ plan->os2_info.max_cmap_codepoint = plan->unicodes.get_max();
+
+ hb_set_t variation_selectors_to_retain;
+ cmap.collect_variation_selectors(&variation_selectors_to_retain);
+ + variation_selectors_to_retain.iter()
+ | hb_filter(unicodes)
+ | hb_sink(&plan->unicodes)
+ ;
}
static unsigned
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -41,6 +41,13 @@
struct Feature;
}
+struct os2_info_t {
+ hb_codepoint_t min_cmap_codepoint;
+ hb_codepoint_t max_cmap_codepoint;
+};
+
+typedef struct os2_info_t os2_info_t;
+
struct head_maxp_info_t
{
head_maxp_info_t ()
@@ -180,6 +187,8 @@
//recalculated head/maxp table info after instancing
mutable head_maxp_info_t head_maxp_info;
+ os2_info_t os2_info;
+
const hb_subset_accelerator_t* accelerator;
hb_subset_accelerator_t* inprogress_accelerator;
Deleted: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-repacker.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-repacker.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-repacker.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1,58 +0,0 @@
-/*
- * Copyright © 2022 Google, Inc.
- *
- * This is part of HarfBuzz, a text shaping library.
- *
- * Permission is hereby granted, without written agreement and without
- * license or royalty fees, to use, copy, modify, and distribute this
- * software and its documentation for any purpose, provided that the
- * above copyright notice and the following two paragraphs appear in
- * all copies of this software.
- *
- * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
- * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
- * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- *
- */
-#include "hb-repacker.hh"
-
-#ifdef HB_EXPERIMENTAL_API
-
-/**
- * hb_subset_repack_or_fail:
- * @table_tag: tag of the table being packed, needed to allow table specific optimizations.
- * @hb_objects: raw array of struct hb_object_t, which provides
- * object graph info
- * @num_hb_objs: number of hb_object_t in the hb_objects array.
- *
- * Given the input object graph info, repack a table to eliminate
- * offset overflows. A nullptr is returned if the repacking attempt fails.
- * Table specific optimizations (eg. extension promotion in GSUB/GPOS) may be performed.
- * Passing HB_TAG_NONE will disable table specific optimizations.
- *
- * XSince: EXPERIMENTAL
- **/
-hb_blob_t* hb_subset_repack_or_fail (hb_tag_t table_tag,
- hb_object_t* hb_objects,
- unsigned num_hb_objs)
-{
- hb_vector_t<const hb_object_t *> packed;
- packed.alloc (num_hb_objs + 1);
- packed.push (nullptr);
- for (unsigned i = 0 ; i < num_hb_objs ; i++)
- packed.push (&(hb_objects[i]));
-
- return hb_resolve_overflows (packed,
- table_tag,
- 20,
- true);
-}
-#endif
Deleted: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-repacker.h
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-repacker.h 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-repacker.h 2025-01-11 23:22:13 UTC (rev 73427)
@@ -1,81 +0,0 @@
-/*
- * Copyright © 2022 Google, Inc.
- *
- * This is part of HarfBuzz, a text shaping library.
- *
- * Permission is hereby granted, without written agreement and without
- * license or royalty fees, to use, copy, modify, and distribute this
- * software and its documentation for any purpose, provided that the
- * above copyright notice and the following two paragraphs appear in
- * all copies of this software.
- *
- * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
- * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
- * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- *
- */
-
-#ifndef HB_SUBSET_REPACKER_H
-#define HB_SUBSET_REPACKER_H
-
-#include "hb.h"
-
-HB_BEGIN_DECLS
-
-#ifdef HB_EXPERIMENTAL_API
-/*
- * struct hb_link_t
- * width: offsetSize in bytes
- * position: position of the offset field in bytes
- * from beginning of subtable
- * objidx: index of subtable
- */
-struct hb_link_t
-{
- unsigned width;
- unsigned position;
- unsigned objidx;
-};
-
-typedef struct hb_link_t hb_link_t;
-
-/*
- * struct hb_object_t
- * head: start of object data
- * tail: end of object data
- * num_real_links: num of offset field in the object
- * real_links: pointer to array of offset info
- * num_virtual_links: num of objects that must be packed
- * after current object in the final serialized order
- * virtual_links: array of virtual link info
- */
-struct hb_object_t
-{
- char *head;
- char *tail;
- unsigned num_real_links;
- hb_link_t *real_links;
- unsigned num_virtual_links;
- hb_link_t *virtual_links;
-};
-
-typedef struct hb_object_t hb_object_t;
-
-HB_EXTERN hb_blob_t*
-hb_subset_repack_or_fail (hb_tag_t table_tag,
- hb_object_t* hb_objects,
- unsigned num_hb_objs);
-
-#endif
-
-HB_END_DECLS
-
-#endif /* HB_SUBSET_REPACKER_H */
Added: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-serialize.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-serialize.cc (rev 0)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-serialize.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -0,0 +1,57 @@
+/*
+ * Copyright © 2022 Google, Inc.
+ *
+ * This is part of HarfBuzz, a text shaping library.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ *
+ */
+
+#include "hb.hh"
+
+#include "hb-subset-serialize.h"
+#include "hb-repacker.hh"
+
+/**
+ * hb_subset_serialize_or_fail:
+ * @table_tag: tag of the table being packed, needed to allow table specific optimizations.
+ * @hb_objects: raw array of struct hb_subset_serialize_object_t, which provides
+ * object graph info
+ * @num_hb_objs: number of hb_subset_serialize_object_t in the hb_objects array.
+ *
+ * Given the input object graph info, repack a table to eliminate offset overflows and
+ * serialize it into a continuous array of bytes. A nullptr is returned if the serializing attempt fails.
+ * Table specific optimizations (eg. extension promotion in GSUB/GPOS) may be performed.
+ * Passing HB_TAG_NONE will disable table specific optimizations.
+ *
+ * Since: 10.2.0
+ **/
+HB_EXTERN hb_blob_t *
+hb_subset_serialize_or_fail (hb_tag_t table_tag,
+ hb_subset_serialize_object_t *hb_objects,
+ unsigned num_hb_objs)
+{
+ hb_vector_t<const hb_subset_serialize_object_t *> packed;
+ packed.alloc (num_hb_objs + 1);
+ packed.push (nullptr);
+ for (unsigned i = 0 ; i < num_hb_objs ; i++)
+ packed.push (&(hb_objects[i]));
+
+ return hb_resolve_overflows (packed, table_tag, 20, true);
+}
Added: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-serialize.h
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-serialize.h (rev 0)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-serialize.h 2025-01-11 23:22:13 UTC (rev 73427)
@@ -0,0 +1,83 @@
+/*
+ * Copyright © 2022 Google, Inc.
+ *
+ * This is part of HarfBuzz, a text shaping library.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ *
+ */
+
+#ifndef HB_SUBSET_SERIALIZE_H
+#define HB_SUBSET_SERIALIZE_H
+
+#include "hb.h"
+
+HB_BEGIN_DECLS
+
+/**
+ * hb_subset_serialize_link_t:
+ * @width: offsetSize in bytes
+ * @position: position of the offset field in bytes from
+ * beginning of subtable
+ * @objidx: index of subtable
+ *
+ * Represents a link between two objects in the object graph
+ * to be serialized.
+ *
+ * Since: 10.2.0
+ */
+typedef struct hb_subset_serialize_link_t {
+ unsigned int width;
+ unsigned int position;
+ unsigned int objidx;
+} hb_subset_serialize_link_t;
+
+/**
+ * hb_subset_serialize_object_t:
+ * @head: start of object data
+ * @tail: end of object data
+ * @num_real_links: number of offset field in the object
+ * @real_links: array of offset info
+ * @num_virtual_links: number of objects that must be packed
+ * after current object in the final
+ * serialized order
+ * @virtual_links: array of virtual link info
+ *
+ * Represents an object in the object graph to be serialized.
+ *
+ * Since: 10.2.0
+ */
+typedef struct hb_subset_serialize_object_t {
+ char *head;
+ char *tail;
+ unsigned int num_real_links;
+ hb_subset_serialize_link_t *real_links;
+ unsigned int num_virtual_links;
+ hb_subset_serialize_link_t *virtual_links;
+} hb_subset_serialize_object_t;
+
+HB_EXTERN hb_blob_t *
+hb_subset_serialize_or_fail (hb_tag_t table_tag,
+ hb_subset_serialize_object_t *hb_objects,
+ unsigned num_hb_objs);
+
+
+HB_END_DECLS
+
+#endif /* HB_SUBSET_SERIALIZE_H */
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc 2025-01-11 23:22:13 UTC (rev 73427)
@@ -295,7 +295,7 @@
DEBUG_MSG (SUBSET, nullptr, "OT::%c%c%c%c ran out of room; reallocating to %u bytes.",
HB_UNTAG (c->table_tag), buf_size);
- if (unlikely (buf_size > c->source_blob->length * 16 ||
+ if (unlikely (buf_size > c->source_blob->length * 256 ||
!buf->alloc (buf_size, true)))
{
DEBUG_MSG (SUBSET, nullptr, "OT::%c%c%c%c failed to reallocate %u bytes.",
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.h
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.h 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.h 2025-01-11 23:22:13 UTC (rev 73427)
@@ -203,6 +203,18 @@
float axis_max_value,
float axis_def_value);
+HB_EXTERN hb_bool_t
+hb_subset_axis_range_from_string (const char *str, int len,
+ float *axis_min_value,
+ float *axis_max_value,
+ float *axis_def_value);
+
+HB_EXTERN void
+hb_subset_axis_range_to_string (hb_subset_input_t *input,
+ hb_tag_t axis_tag,
+ char *buf,
+ unsigned size);
+
#ifdef HB_EXPERIMENTAL_API
HB_EXTERN hb_bool_t
hb_subset_input_override_name_table (hb_subset_input_t *input,
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-utf.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-utf.hh 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-utf.hh 2025-01-11 23:22:13 UTC (rev 73427)
@@ -458,6 +458,8 @@
template <typename utf_t>
static inline const typename utf_t::codepoint_t *
hb_utf_offset_to_pointer (const typename utf_t::codepoint_t *start,
+ const typename utf_t::codepoint_t *text,
+ unsigned text_len,
signed offset)
{
hb_codepoint_t unicode;
@@ -464,13 +466,13 @@
while (offset-- > 0)
start = utf_t::next (start,
- start + utf_t::max_len,
+ text + text_len,
&unicode,
HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT);
while (offset++ < 0)
start = utf_t::prev (start,
- start - utf_t::max_len,
+ text,
&unicode,
HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT);
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/meson.build
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/meson.build 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/meson.build 2025-01-11 23:22:13 UTC (rev 73427)
@@ -383,7 +383,7 @@
'hb-subset-plan.cc',
'hb-subset-plan.hh',
'hb-subset-plan-member-list.hh',
- 'hb-subset-repacker.cc',
+ 'hb-subset-serialize.cc',
'graph/gsubgpos-context.cc',
'graph/gsubgpos-context.hh',
'graph/gsubgpos-graph.hh',
@@ -398,7 +398,7 @@
hb_subset_headers = files(
'hb-subset.h',
- 'hb-subset-repacker.h'
+ 'hb-subset-serialize.h'
)
hb_gobject_sources = files(
@@ -875,6 +875,7 @@
cmake_config.set('PACKAGE_CMAKE_INSTALL_INCLUDEDIR', '${PACKAGE_PREFIX_DIR}/@0@'.format(cmake_install_includedir))
cmake_config.set('PACKAGE_CMAKE_INSTALL_LIBDIR', '${PACKAGE_PREFIX_DIR}/@0@'.format(cmake_install_libdir))
cmake_config.set('PACKAGE_INCLUDE_INSTALL_DIR', '${PACKAGE_PREFIX_DIR}/@0@/@1@'.format(cmake_install_includedir, meson.project_name()))
+cmake_config.set('HARFBUZZ_VERSION', meson.project_version())
cmake_config.set('HB_HAVE_GOBJECT', have_gobject ? 'YES' : 'NO')
cmake_config.set('HB_LIBRARY_TYPE', get_option('default_library') == 'static' ? 'STATIC' : 'SHARED')
Modified: trunk/Build/source/libs/harfbuzz/include/Makefile.am
===================================================================
--- trunk/Build/source/libs/harfbuzz/include/Makefile.am 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/include/Makefile.am 2025-01-11 23:22:13 UTC (rev 73427)
@@ -30,7 +30,7 @@
$(HARFBUZZ_SRC)/hb-shape.h \
$(HARFBUZZ_SRC)/hb-shape-plan.h \
$(HARFBUZZ_SRC)/hb-style.h \
- $(HARFBUZZ_SRC)/hb-subset-repacker.h \
+ $(HARFBUZZ_SRC)/hb-subset-serialize.h \
$(HARFBUZZ_SRC)/hb-unicode.h \
$(HARFBUZZ_BLD)/hb-version.h
Modified: trunk/Build/source/libs/harfbuzz/include/Makefile.in
===================================================================
--- trunk/Build/source/libs/harfbuzz/include/Makefile.in 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/include/Makefile.in 2025-01-11 23:22:13 UTC (rev 73427)
@@ -259,7 +259,7 @@
$(HARFBUZZ_SRC)/hb-paint.h $(HARFBUZZ_SRC)/hb-set.h \
$(HARFBUZZ_SRC)/hb-shape.h $(HARFBUZZ_SRC)/hb-shape-plan.h \
$(HARFBUZZ_SRC)/hb-style.h \
- $(HARFBUZZ_SRC)/hb-subset-repacker.h \
+ $(HARFBUZZ_SRC)/hb-subset-serialize.h \
$(HARFBUZZ_SRC)/hb-unicode.h $(HARFBUZZ_BLD)/hb-version.h \
$(HARFBUZZ_SRC)/hb-ot.h $(HARFBUZZ_SRC)/hb-ot-color.h \
$(HARFBUZZ_SRC)/hb-ot-font.h $(HARFBUZZ_SRC)/hb-ot-layout.h \
Modified: trunk/Build/source/libs/harfbuzz/version.ac
===================================================================
--- trunk/Build/source/libs/harfbuzz/version.ac 2025-01-11 21:04:50 UTC (rev 73426)
+++ trunk/Build/source/libs/harfbuzz/version.ac 2025-01-11 23:22:13 UTC (rev 73427)
@@ -8,4 +8,4 @@
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current harfbuzz version
-m4_define([harfbuzz_version], [10.1.0])
+m4_define([harfbuzz_version], [10.2.0])
More information about the tex-live-commits
mailing list.